Please enable JavaScript.
Coggle requires JavaScript to display documents.
Segundo módulo de Sistemas Distribuidos - Coggle Diagram
Segundo módulo de Sistemas Distribuidos
Remote Method Invocation(RMI)
Objetivos
Mecanismos para crear servidores y objetos cuyos métodos se puedan invocar remotamente.
Mecanismos que permiten a los clientes localizar los objetos remotos.
Compuesta por
CLIENTE
Debe conseguir referencias para esos objetos remotos y, en ese momento, puede hacer uso de ellas para realizar llamadas remotas.
SERVIDOR
Se encarga de crear los objetos remotos, hacerlos accesibles y permanecer a la espera de llamadas para esos objetos remotos
Arquitectura
Capa de Stub/Skeletons
Permite localizar objetos remotos para invocar sus métodos como si fueran locales.
Capa de referencias remotas
Crea y gestiona las referencias a objetos remotos, manteniendo para ello una tabla de objetos distribuidos
Capa de transporte
Capa de transporte del conjunto de protocolos TCP/IP. RMI por defecto usa TCP, aunque admite otros.
Características
Se basa en una interfaz remota Java
Proporciona mayor abstracción, lo que facilita el desarrollo
de software.
Ventajas
Portable a traves de plataformas con soporte JAVA.
Bajo costo al convertir sistema existente.
Soporta paso de objetos por referencia y/o valor.
Distribuir una aplicación de forma muy transparente, sin realizar demasiados cambios ene el código.
Desventajas
No soportado por otros lenguajes
Disminuye el rendimiento con el crecimiento del sistema
WebSockets
Definición
Protocolo de comunicación que puede intercambiar información con TCP
Canal de comunicación sobre un único socket TCP
Diseñada para ser implementada en navegadores y servidores web
Características
Intercambio de información bidireccional y full duplex
Comparte puerto con protocolo HTTP
Normalizada por por IETF como RF 6455
Atraviesa firewalls, proxiexs y routers
Conexión surge por un upgrade del protocolo TCP
Mejoras con respecto a HTTP
Deja de ser half duplex para ser full duplex
Tráfico deja de ser unidireccional para ser bidireccional
En lugar de esperar la respuesta del servidor o cliente, pasan a ser simultáneos
Deja de usar headers que ocupan 1000Mb a frames de 2MB
Al dejar de establecer una conexión a cada momento, permite ahorrar 100ms
Solo sube información cuando es necesario, a diferencia de HTTP que envía constantemente para verificar la conexión
Esquema URL
ws
wss
Negociación del protocolo
Cliente envía una petición de negociación Websocket
El servidor envía una respuesta de negociación Websocket
Las peticiones son parecidas a HTTP
Cuando se establece la conexión, las tramas pueden empezar a enviarse en ambos sentidos
Las tramas de texto usan terminadores mientras que las tramas binarias usan un prefijo de longitud
Sockets
Punto final de enlace de comunicación
Es bidireccional entre 2 programas
Tipos:
Datagram Socket: no se garantiza la entrega en un entorno de red
Stream Socket: entorno de red está garantizada
Sin procesar: normalmente orientados a datagramas
paquetes secuenciados: conservan los límites de los registros
Def: está vinculado a un número de puerto para que la capa TCP pueda identificar la aplicación a la que están destinados los datos
Generalmente usados en apps cliente-servidor
se introdujeron por primera vez en 2.1BSD
RPC
El mensaje RPC se identifica mediante tres campos enteros
NUM-VERSION: Es el número de versión del programa.
NUM-PROCEDURE: Es el número de procedimiento remoto.
NUM-PROG: Se trata del número de un programa remoto.
Ventajas
Permite la modularización coherente (Procesos se distribuyen aligerando carga de ordenadores)
Excelente escalabilidad de las arquitectura Cliente-Servidor
Gestiona Comunicación entre procesos de manera fiable.
Funciones
El mensaje son enviados por el “stub” del cliente al sistema remoto, lo cual requiere una llamada del sistema.
Los mensajes son transferidos al sistema remoto empleando protocolos con o sin conexión.
El cliente llama a un procedimiento local llamado “stub” del cliente, el cual
aparenta ser el procedimiento servidor que el cliente desea llamar
Un procedimiento “stub” del servidor espera en el sistema remoto la solicitud
del cliente.
Utilización
Métodos Remotos
Mayor Nivel de Abstracción
Envió y recepción de mensajes transparentes
Primitivas Básica de Comunicación
Operaciones de Envió y Recepción entre Cliente y Servidor
Fallos en Cliente y Servidor
Cliente RPC :Cuando no se recibe la respuesta se vuelve a reenviar la petición e incluir identificador de petición.