Please enable JavaScript.
Coggle requires JavaScript to display documents.
Sistemas Distribuidos PC2 - Coggle Diagram
Sistemas Distribuidos PC2
Sockets
Características
Se puede leer y escribir datos mediante la funciones read() y write()
Se puede redireccionar los archivos de E/S estándar a los sockets y asi conbinar entre ellos aplicaciones de la red
Propiedades
Conservación del Orden de los Datos
No Duplicación de los Datos
Fiabilidad de la Transmisión
Conservación de los límites de los mensajes
Envío de Mensajes “urgentes”
Atributos
Protocolo: Especifica que protocolo se va a usar
Tipo: Los protocolos de internet proveen dos niveles
distintos de servicio : flujo y datagramas
Dominio: Especifica el medio de comunicación de la red
que el socket utilizará.
Tipos
Los no orientados a conexión
Los orientados a conexión
Definicion
Loa sockets son mecanismos de comunicación entre procesos que permiten que un proceso hable con otro proceso incluso estando en distintas maquinas
Aplicación de Socket
en Modelo Cliente-Servidor
en lenguaje C++
Pasos para la comunicación
entre Sockets
El proceso cliente crea un socket sin nombre.
El proceso cliente realiza una petición de conexión al socket servidor.
El cliente realiza la conexión a través de su socket mientras el proceso servidor mantiene el socket servidor original con nombre.
El proceso servidor crea un socket con nombre y espera conexión.
Funciones del cliente y del servidor
Funciones del servidor
Realizar la apertura de un socket
Avisar al sistema operativo
Avisar al sistema que atiende la conexión
Pedir y aceptar las conexiones
Escribir y recibir datos
Cierre de la comunicación
Funciones del cliente
Realizar la apertura de un socket
Solicitar conexión
Escribir y recibir datos
Cerra la comunicación
RMI
Definición
Es aquel método equivalente a las llamadas de procedimientos remotos, con la diferencia que este invoca métodos locales mediante el lenguaje Java.
Funciones
Contienen mecanismos que ofrecen la creación de servidores y objetos cuyos métodos se invocan remotamente.
Permite localizar los objetos remotos a los clientes.
Envían todos los argumentos del método como el valor devuelto por el mismo, y concurrente a ello, presentan los resultados solicitados por el cliente.
Arquitectura
Nivel de Transporte: Se encarga de la comunicación y de establecer las conexiones necesarias basado en el protocolo TCP
Nivel de Gestión de Referencias Remotas: interpreta y gestiona referencias de objetos remotos e invoca operaciones en la capa de transporte.
Nivel Stub: Se encarga del aplanamiento de los parámetros de la comunicación
Vista
Cliente de Objetos
Servidor de Objetos
Skeleton
.
Stub
Capa de Transporte
Ruta Física
Capa de Transporte
¿Por qué elegir RMI?
Los programas de RMI son más sencillos de diseñar y de aplicar las comunicaciones entre servidores y clientes
El servidor RMI es más concurrente y recurrente
Caracteristicas
Cuenta con un servicio de directorios (rmi.registry [servicio de directorios de Java])
Cuenta con el servidor de nombre: Java RMI
Definición
Middleware de componentes orientado a objetos que proporciona
Almacena para cada objeto (nombre simbolico + referencia)
Ejemplo Aplicativo con Java NetBeans
Cliente
Se importan los registros de RMI: java.rmi.registry.LocateRegistry;
java.rmi.registry.Registry
Se registra un vector como host
Se localiza el stub mediante un "Hello"
Se imprime la respuesta mediante una función remota. En este caso sayHello().
Servidor
De la interface del Java.Remote se parte con el sayHello().
Se importan la libreria de java.rmi.server.UnicastRemoteObject
Dentro del unicast se selecciona el stub colocando el objeto como la clase completa y se localiza el puerto 0.
Se crea un registro en el puerto que se desee, por ejemplo 1099
Finalmente se obtiene el registro de la conexión remota desde el puerto llamado, en este caso 1099.
Java.RMI.Remote
Se define la funcion mediante una interfaz como sayHello() por medio de un función Remote.
RPC
Definicion
Es una herramienta básica que nos brinda una interfaz sencilla para construir aplicaciones distribuidas sobre TCP/IP
Funciones
Mediante el proceso que realiza la llamada empaqueta los argumentos en un mensaje, los envía a otro proceso y espera el resultado
El proceso que ejecuta el procedimiento extrae los argumentos del mensaje, realiza la llamada de forma local, obtiene el resultado y se lo envía de vuelta al proceso que realizo la llamada
Logra acercar la semántica de las llamadas a procedimiento convencional a un entorno distribuido.
Conceptos
Servicio de red
Es una colección de uno o mas programas remotos
Programa remoto
Implementa uno o mas procedimientos remotos
Participantes
Cliente activo
Se encarga de enviar una RPC al servidor.
Servidor pasivo
Se encargar de calcular un resultado y lo devuelve al cliente
Modelos
RPC asincronas
No se espera una respuesta del Cliente
No admite parametros de salida
RPC sincronas
Necesita una respuesta del servidor para poder continuar su ejecucion
Protocolo Basico
Cliente
Localizar al servidor
Se registra en un servicio de nombres
Preparar parámetros, enviar petición
Recibir notificación, ejecutar el procedimiento y envía petición
Desempaqueta la respuesta
Servidor
Websocket
Teoria
Caracteristicas
Atraviesa Firewalls, proxiex y router
Comparte el puerto con el HTTP
La conexión se establece a través del upgrade del protocolo HTTP al protocolo
WebSocket usando las misma dirección.
Protocolos W3C y IETF Protocol
Los puertos diferentes al 80 son normalmente bloqueados por los administradores de red en las conexiones TCP comunes.
Definición
Tecnologia que brinda una comunicacion bidireccional haciendo uso de una unica conexion TCP.
Funcionalidades
Brinda una comunicacion Bidireccional
Mantiene la conexión abierta para el trafico de datos
Comunicacion Full-Duplex
Implementacion
Puede implementarse en los siguientes lenguajes:
Python
Erlang
C++
Ruby
Java
Usos utiles
Plataformas de compra y de venta,
Chats de atención al usuario
Juegos online
Actualizaciones en tiempo real de las redes sociales
Aplicación Práctica
Pre-requisitos
Conceptos básicos de
redes
Conocimientos de
Tecnologías Web
Herramientas
JBDC
Al momento de implantarlo, permite la conexión con una base de datos.
Entity Framework Core
Es una alternativa a JBDC, para aplicaciones en .NET. Este, también permite una conexión a una base de datos.
WebSocket
Se crea una aplicación basada en websockets, de esto modo, se permite la comunicación entre el cliente y el servidor
JMS
La implementación de esta herramienta proporciona el intercambio de mensajes
Conclusión
WebSocket es un protocolo actualizado, rápido y sin interrupciones que debe usarse si se tiene que establecer una comunicación constante entre el servidor y el cliente. Incluso si los datos se transfieren continuamente, webocket se asegura de que la conexión esté intacta y que los datos en el proceso están fuertemente asegurados.