Apuntes de Sistemas Operativos Distribuidos · •Posibilidad de desconectar elementos de red sin...
Transcript of Apuntes de Sistemas Operativos Distribuidos · •Posibilidad de desconectar elementos de red sin...
Apuntes de Sistemas Operativos DistribuidosApuntes de Sistemas Operativos Distribuidos
Autor: Fabio E. Rivalta / Carlos NeetzelMaterial: dictado de clasesTema: Comunicación entre procesos (Parte 1)Fecha: 05/2007
Bibliografía utilizada:• Apuntes de sistemas operativos distribuidos - Carlos Neetzel• Sistemas operativos distribuidos – Andrew S. Tanenbaum• Sistemas Distribuidos – George Coulouris y otros• Apuntes de Internet (ver referencias para mayor detalle
Versión
Prel
imina
r
Índice de contenidos
Parte 1:Redes de comunicación de datosEl concepto de Sistema AbiertoUNIX y TCP/IPMiddlewareTecnologías y ModelosComunicación en Sistemas Distribuidos
Parte 2:Llamada a procedimientos remotos (RPC)
Sun/RPCCORBARMI
Versión
Prel
imina
r
Redes de comunicación de datos:Objetivos:
• Su objetivo principal es lograr que todos sus programas datos y equipo estén disponible para cualquier punto de la red que lo solicite, sin importar lalocalización física del recurso y del usuario.
• Otro de sus objetivos consiste en proporcionar una alta confiabilidad.• Otro objetivo es el económico, debido a que los computadores pequeños tiene
una mejor relación costo / rendimiento, en comparación con la que ofrece las máquinas grandes.
• También es un poderoso medio de comunicación entre personas que se encuentran en lugares distantes entre sí.
Tipos de conexiones en red• Las instalaciones del sistema pueden conectarse físicamente de varias maneras
y cada configuración tiene sus ventajas y desventajas. Las configuraciones se construyen según los siguientes criterios:
• Costo básico: ¿Cuánto cuesta enlazar las distintas instalaciones del sistema?• Velocidad de comunicaciones: ¿Cuánto se tarda en enviar un mensaje de la
instalación A a la B?• Confiabilidad: Si falla una instalación o enlace del sistema, ¿es posible que aún
sigan comunicándose las demás instalaciones?• Las distintas conexiones se representan como grafos cuyos nodos corresponden
a las instalaciones. Una arista del nodo A al nodo B corresponde a una conexión directa entre las dos instalaciones.
Versión
Prel
imina
r
Conexiones:
A
B
C
E D
Red de conexión total
A
B
C
E D
Red de conex ion parcia l A
B
C D
E
F
Red jerarquica con estructura de arbol.
Conexión total: Cada instalación esta enlazada directamente con todas las demás instalaciones del sistema. El costo básico de esta instalación es muy elevado. Los mensajes entre instalaciones pueden enviarse con gran rapidez. Además estos sistemas son muy confiables ya que deben averiarse muchos enlaces para particionar el sistema
Conexión parcial: Hay un enlace directo entre algunos, pero no todos, los pares de instalaciones. El costo básico de esta configuración es menor al de una red de conexión total. Es mas lenta la comunicación de mensajes y no es tan confiable como un sistema de conexión total.
Conexión Jerárquica: En una red de jerarquía las instalaciones se organizan como un árbol. Cada instalación, excepto la raíz, tiene un solo padre y varios hijosVersión
Prel
imina
r
Topología de redes computacionales:Se conoce como topología de una red a la forma de interconectar los nodos de la red.
C F
A
B
D E Red en estrella
EstrellaVentajas:
• Gran facilidad de instalación• Posibilidad de desconectar elementos de red sin causar problemas.• Facilidad para la detección de fallo y su reparación.
Inconvenientes:• Requiere más cable que la topología de BUS.• Un fallo en el concentrador provoca el aislamiento de todos los
nodos a él conectados.• Se han de comprar hubs, switchs o concentradores.
Canal multi-acceso o bus
...
a) Red en canal lineal
D A B C n
BusVentajas:
• Es Más fácil conectar nuevos nodos a la red• Requiere menos cable que una topología estrella.
Desventajas:• Toda la red se caería se hubiera una ruptura en el
cable principal.• Se requiere terminadores.• Es difícil detectar el origen de un problema cuando toda
la red cae.• No se debe utilizar como única solución en un gran
edificio.Vers
ión P
relim
inar
Topología de redes computacionales: (Cont)
AnilloVentajas:
• Es Más fácil conectar nuevos nodos a la red• Requiere menos cable que una topología estrella.
Desventajas:• Toda la red se caería se hubiera una ruptura en el
cable principal.• Es difícil detectar el origen de un problema cuando toda
la red cae.• Generalmente se hace circular un Token que al pasar
por cada nodo de la red se le incorpora o saca los paquetes que son para dicho nodo.
Red en anillo
A
B
C D
E
Versión
Prel
imina
r
Tipos de redes:• WAN - Waide Area Network
• Host y Routers• MAN - Metropolitan Area Network• LAN - Locar Area Network
• Ethernet con CSMA/CD (Carrier Sense Multiple Access / Collision Detection)• LocalTalk Apple con SCMA/CA. (Carrier Sense Multiple Access / Collision Avoidance)• Token Ring IBM (Token Passing)
• DAN - Desk Area Network
Clasificación de las Redes según su uso:Redes dedicadas o exclusivas: Son las que por motivo de seguridad, velocidad o ausencia de otro tipo de red, conectan dos o más puntos de forma exclusiva. Este tipo de red puede estructurarse en redes punto a punto o redes multipunto.
Redes punto a punto: Permiten la conexión en línea directa entre terminales y computadoras. La ventaja es la alta velocidad de transmisión y la seguridad que presenta al no existir conexión con otros usuarios. Su desventaja es el precio muy elevado de este tipo de red.
Redes multipunto: Permite la unión de varios terminales a su correspondiente computadora compartiendo una única línea de transmisión. La ventaja es el abaratamiento de su costo, aunque pierde velocidad y seguridad. Este tipo de redes requiere amplificadores y difusores de señal o de multiplexores que permiten compartir líneas dedicadas.
Versión
Prel
imina
r
Clasificación de las redes según su uso:
Redes compartidas: Son las que se une un gran número de usuarios, compartiendo todas las necesidades de transmisión e incluso con transmisiones de otras naturalezas. Las redes más usuales son las de conmutación de paquetes y las de conmutación de circuitos.
Redes de conmutación de paquetes: Son las que existen nodos de concentración con procesadores que regulan el tráfico de paquetes.
Paquete: es una pequeña parte de la información que cada usuario desea transmitir. Cada paquete se compone de la información, el identificador del destino y algunos caracteres de control.
Redes de conmutación de circuitos: Son redes en las que los centros de conmutación establecen un circuito dedicado entre dos estaciones que se comunican.
Redes digitales de servicios integrados (RDSI): Se basan en desarrollos tecnológicos de conmutación y transmisión digital. La RDSI es una red totalmente digital de uso general capaz de integrar una gran gama de servicios como son la voz, datos, imagen y texto. La RDSI requiere de la instalación de centrales digitales.
Versión
Prel
imina
r
Arquitectura de comunicaciones:
La arquitectura de comunicaciones se ocupa de las operaciones necesarias para que la comunicación sea exitosa o informa si no se pudo lograr.
Además de la vinculación para establecer una comunicación entre computadoras se necesita dos cosas mas:
Protocolos:Es el conjunto (Set) de reglas que gobiernan el intercambio de datos entre dos entidades. Un protocolo implica 3 temas: la Sintaxis, la Semántica y el Timing o velocidad de las comunicaciones.
Arquitectura de protocolos:Es la estructura que conforma a un juego de protocolos que implementan las funciones de comunicación.
Las comunicaciones implican a tres agentes:• Procesos: son las entidades que se comunican.• Hosts: son los sistemas computacionales donde se encuentran los Procesos:• Redes o Networks: interconectan a los Hosts y transmiten los datos entre ellos.
Versión
Prel
imina
r
Niveles de las comunicaciones:
La transmisión de datos se realiza de un Proceso a otro Proceso. Las comunicaciones en los siguientes tres niveles independientes:
• Nivel de acceso a Red: Aplicación y Red tienen que ser Independientes.• Capa especifica para manejo de Red.• Intercambio de datos entre Host y Red .• Host le provee destino (igual Host que destino).• Host (fuente) puede pedir ciertos servicios.• Protocolo de este nivel DEPENDE del tipo de Red: • Conmutación de circuito o Conmutación paquetes LAN, Etc...
• Nivel de Transporte: Se asegura del transporte de los procesos INDEPENDIENTEMENTE de la naturaleza de los procesos.
2 1
Capa de Transporte
PROCESOS
Acceso a Red
HOST C
Capa de Transporte
PROCESOS
Acceso a Red
HOST A
2 1
Capa de Transporte
PROCESOS
Acceso a Red
HOST B
RED DE COMUNICACIONES
2 1 3
Dirección del Punto de acceso de Servicio (SAP)
Dirección de la RED
4 3
• Seguridad del intercambio de datos:
• Todos los datos llegan a destino (Proceso destino).
• Todos los datos llegan en el mismo orden en que fueron enviados.
• Nivel de Proceso: Protocolos necesarios por la VARIEDAD de Aplicaciones.
• Por cada tipo de Aplicación se necesita un protocolo propio a esa Aplicación.
Versión
Prel
imina
r
DATOS del PROCESO
DATOS del PROCESOTRANSPORTHEADER
TRANSPORTHEADER
DATOS del PROCESONETWORK ACCESSHEADER
TRANSPORTHEADER
DATOS del PROCESONETWORK ACCESSHEADER
TRANSPORTHEADER
DATOS del PROCESO
Se presentan cuatro aspectos importantes de la comunicación en cuanto al trabajo interno:
Nombre: ¿Cómo hacen los procesos PARA UBICARSE.?Estrategia de Ruteo: ¿Cómo hacen los mensajes PARA PASAR POR LA RED?Estrategia de Comunicación: ¿Cómo hacen dos Procesos PARA MANDARSE UNA SECUENCIA DE MENSAJES? .Contención: La Red es un recurso compartido, ¿CÓMO RESOLVER EL CONFLICTO DE SU DEMANDA?.
Estas cuatro preguntas, en la arquitectura de comunicaciones, llevan a plantearse un nuevo conjunto de interrogantes en los aspectos del diseño que deben ser resuelto mediante diferentes estrategias.
Armado del paquete de transmisión de datos:
Versión
Prel
imina
r
Estrategias:
Al diseñar un red de comunicaciones es necesario tener en cuenta cuatro aspectos:
• Estrategias de ruteo: ¿Como se enviarán los mensajes por la red?• Ruteo fijo: Se especifica por adelantado una ruta de A a B y no cambia a menos que
una falla en el hardware invalide esta ruta. Se mantiene hasta el final de la comunicación. Su aspecto negativo es que no puede adaptarse a los cambios de la carga, del trafico de la ruta pero los mensajes se entregaran en el orden en que fueron enviados.
• Circuito virtual: Se determina un camino entre dos nodos (de A a B) que va a duraruna sesión puede cambiar entre sesión y sesión.
• Ruteo Dinámico: Se elige el camino solo cuando un mensaje es enviado. Cada nodo intermedio decide donde mandarlo. La ruta para enviar un mensaje de la instalación A a la Instalación B se elige en el momento de enviar el mensaje. Generalmente se elige la ruta menos congestionada en ese momento.
• Estrategias de conexión: ¿Como envían dos procesos una serie de mensajes?• Conflictos: Dado que la red es un recurso compartido, ¿Como solucionamos las
demandas de uso conflictivas?• Estrategias de diseño: ¿Cual es el diseño global para la comunicación entre
aplicaciones?Versión
Prel
imina
r
Estrategias: (Cont)
• Estrategias de conexión: ¿Como envían dos procesos una serie de mensajes?• Conmutación de circuitos:
• Se establece un enlace físico permanente. • Este enlace se asigna para todo el tiempo que dura la comunicación • Ningún otro proceso puede utilizarlo durante ese periodo. • Las desventajas es que requiere tiempo de preparación, • Pero provoca menos tiempo de procesamiento adicional para enviar cada mensaje.
• Conmutación de mensajes: • Se establece un enlace temporal durante el tiempo que dura la transferencia de un mensaje. • Los enlaces físicos se asignan dinámicamente según se requiera y durante un periodo breve. • Cada mensaje es un bloque de datos, junto con cierta información (fuente, destino, y códigos
de corrección de errores) que permite a la red de comunicaciones entregar correctamente el mensaje a su destino.
• Tiene como aspecto negativo que requiere menos tiempo para la preparación del mensaje pero necesita mas tiempo de procesamiento adicional por cada mensaje.
• Conmutación de paquetes: • Los mensajes generalmente tienen longitud variable. • Generalmente Comunicación con mensajes de longitud fija llamados paquetes. • Es posible que un mensaje lógico tenga que dividirse en varios paquetes, • Cada uno de los cuales se envía por separado a su destino y puede seguir rutas diferentes
por la red. • Para formar el mensaje hay que reensamblar los paquetes conforme llegan. • Los mensajes entran en memoria no necesitan bajar a disco. • Al igual que la conmutación de mensajes requiere menos tiempo de preparación y pierde
mas tiempo de procesamiento adicional con el agregado de que debe dividir los mensajes en paquetes y luego reagruparlos.Vers
ión P
relim
inar
Estrategias: (Cont)
• Conflictos: Dado que la red es un recurso compartido, ¿Como solucionamos las demandas de uso conflictivas?
• Un enlace puede conectar varios nodos. • Es posible que estos quieran transmitir simultáneamente información por un enlace. • En este caso se mezcla la información transmitida y hay que descartar la que no
corresponde a ese nodo. • Es necesario notificar el problema a los nodos para que estos puedan retransmitir la
información.Se han desarrollado técnicas para evitar las colisiones repetidas en un enlace:
• CSMA/CD (Carrier Sence Multipple Access/ Collision Detection) • Escuchar antes de transmitir un mensaje por un enlace, para determinar si en ese
momento se esta transmitiendo otro mensaje en ese mismo instante por el enlace. • Esta técnica se denomina detección de portadora con acceso múltiple. • Si el enlace esta libre, la instalación puede comenzar a transmitir de lo contrario debe
esperar y seguir escuchando hasta que el enlace quede libre. • Si dos o mas nodos comienzan a transmitir en el mismo instante entonces ambos
registraran una detección de colisión y dejaran de transmitir. • Cada nodo intentará hacerlo de nuevo, después de un cierto periodo aleatorio de
tiempo.• El problema principal con esta estrategia es que cuando el sistema esta muy ocupado
pueden ocurrir muchas colisiones y degradarse el rendimiento.
Versión
Prel
imina
r
Estrategias: (Cont)
• Paso de testigo (Token Passing)• Un tipo de mensaje único, conocido como testigo, circula continuamente por el sistema. • Un nodo que desea transmitir información espera a que llegue el testigo; lo saca de la
red y comienza a transmitir sus mensajes. • Cuando termina vuelve a transmitir el testigo lo que permite que otro nodo reciba y
quite el testigo para comenzar la transmisión de sus mensajes.• El sistema debe detectar si se ha perdido el testigo y en tal caso generar uno nuevo.
• Ranura de mensaje (Message slots)• Por el sistema circulan constantemente varias ranuras de mensaje de longitud fija. • Cada ranura puede contener un mensaje de longitud fija e información de control
(origen, destino y si la ranura esta vacía o llena). • Un nodo que esta listo para transmitir debe esperar que llegue una ranura vacía, en la
cual insertará su mensaje ajustando la información de control adecuada.• La ranura con su mensaje prosigue entonces por la red y al llegar a un nodo, este
examina la información de control para ver si le corresponde o no el mensaje en la ranura.
• Si no es para ese nodo, la ranura con el mensaje vuelve a circular; de lo contrario, el nodo toma el mensaje, restablece la información de control indicando que la ranura esta vacía, y luego puede enviar un mensaje propio o liberar la ranura.
• Como una ranura solo puede contener mensajes de longitud fija, en ocasiones hay que dividir el mensaje lógico en paquetes mas chicos, cada uno de los cuales se envía en una ranura diferente.
• Estrategias de diseño: ¿Cual es el diseño global para la comunicación entre aplicaciones?Vers
ión P
relim
inar
Estrategias: (Cont)
• Estrategias de diseño: ¿Cual es el diseño global para la comunicación entre aplicaciones?
• Al diseñar una red de comunicaciones debemos tratar con la complejidad inherente de la coordinación de operaciones sincrónicas que se comunican en un entorno potencialmente lento y propenso a errores.
• La tarea del diseño es definir una serie de niveles y servicios desempeñados por cada uno.
• La división debe agrupar lógicamente a las funciones y debe disponer suficientes niveles para hacer que el manejo de cada uno no sea muy complicado.
• Básicamente hay dos modelos: • Modelo OSI• Modelo TCP/IP
Versión
Prel
imina
r
El concepto de Sistema Abierto
La interconexión de sistemas abiertos se basa en el concepto de aplicaciones distribuidas cooperativas. Una aplicación distribuida es cualquier actividad en la que interviene el intercambio de información entre dos sistemas abiertos.
El objetivo del esfuerzo de OSI es definir un conjunto de estándares que habilitará a los sistemas abiertos ubicados en cualquier lugar del mundo para cooperar, interconectándolos mediante servicios de comunicaciones estándares y ejecutando protocolos OSI estándares.
Un sistema abierto puede implementarse de cualquier forma que esté de acuerdo con un conjunto mínimo de estándares que permitan conseguir la comunicación con otros sistemas abiertos
Versión
Prel
imina
r
Red física de DATOS
Red
Transporte
Sesión
Enlace
Presentación
Aplicación
Física
Red
Transporte
Sesión
Enlace
Presentación
Aplicación
Física
Protocolo de AplicaciónProtocolo de PresentaciónProtocolo de
SesiónProtocolo de TransporteProtocolo de
RedProtocolo de Enlace de
DatosProtocolo
Físico
ProcesoA
ProcesoB
7
6
5
4
32
1
Ambiente de RED
Ambiente OSI
Sistema Ambiente Real
Computadora 1 Computadora 2
El modelo OSI (Open System Interconnection)
Versión
Prel
imina
r
El TCP secuencia numeralmente los segmentos que serán mandados a un puerto de destino particular de tal manera que si los segmentos llegan desordenados, entonces la entidad TCP del destinatario los reordena.
El Modelo TCP/IP(Transmission Control Protocol / Internet Protocol)
Modelo construido en base a tres conceptos mas el Acceso a Red:
• Capa de proceso o de aplicación (FTP, SMTP, TELNET, etc...).• Capa Host to host o capa de transporte (TCP).• Capa Internet (IP).• Capa de Acceso a Red y • Capa física
NET ACCESS
IPTCP
FTPSMTP
TELNET
Segmento
Datagramas
Paquetes
Datos del Usuario
TCP
IP
E F
Un datagrama es el conjunto de las cabeceras de control de la información de cada segmento. Vers
ión P
relim
inar
El Modelo TCP/IP (Transmission Control Protocol / Internet Protocol): (Cont)
El protocolo de datagrama del usuario (UDP- User Datagram Protocol) provee el servicio de conexión para los procedimientos a nivel de las aplicaciones:
• No existe ninguna garantía de mensajería ni una preservación de la secuencia ni ninguna protección contra la duplicación.
• El UDP permite a un procedimiento mandar mensajes a otro procedimiento con un mínimo de mecanismos de protocolos.
• Esencialmente adhiere una capacidad de dirección de un puerto al IP.• El campo de protocolo indica cuándo el TCP, UDP u otro tipo de protocolo de
capa “alta” es usado por el IP.
Versión
Prel
imina
r
Características y problemas del IPv4:
• Ofrece soportes para aplicaciones simples. Por ejemplo: • Correo electrónico, • File Transfer • Acceso remoto (mediante Telnet o SSH).
• Provee servicios pobres para una gran cantidad de aplicaciones multimediales.• Las redes empresariales crecen en complejidad (Client-Server). • Las Aplicaciones hoy día requieren soporte de:
• Tráfico en Tiempo Real• Mecanismos de Control de Gestión flexibles.• Funciones de seguridad mejoradas.
Opciones + PaddingDirección de DestinoDirección de Origen
Checksum del EncabezadoProtocolTiempo de VidaDesplazamiento de FragmentoFlagsIdentificación
Longitud TotalTipo de Servicio
IHLVersión
Versión
Prel
imina
r
Características y problemas del IPv6:
• El encabezado contiene 40 By. El encabezado de TCP 20 By. El defragmentación 8 bytes. El resto de los encabezados son de longitud Variable.
• El IPv6 resuelve los problemas del IPv4 e incorpora las siguientes mejoras:• Espacio de direcciones expandido de 128 bits.
0 4 8 16 24 31
Destinode
DirecciónOrigen
deDirección
límite de saltoencabezado siguiente
Longitud de CargaEtiqueta de FlujoPrioridadVersión
Versión
Prel
imina
r
UNIX y TCP/IP:
• El Kernel de UNIX tiene incorporado:• TCP/IP• Variedad de Interfases para Acceso a Red llamados puertos.
• Mecanismos de programación estándar (Sockets)
Transmisión por medio de FTP en UNIX
Al hacer un pedido (request) con FTP:1. Se crea un Proceso.2. Este Proceso abre una Conexión TCP con el
Destino.3. Se crea un segundo proceso que asiste con el
manejo de la Transferencia. El primer Proceso trata con la transferencia de datos.
4. Mientras que el Segundo Proceso trata con las respuestas para el Control de la Conexión. Al Terminar, el server cierra la conexión y avisa al usuario
Recepción mediante FTP en UNIX
5. Se crea un Proceso que toma el control de la conexión. Proceso que se va a dedicar al último request llegado. (aplicación se desvincula de la situación y sigue esperando nuevos request).
6. Proceso crea segundo Proceso para establecer y manejar la conexión de datos.
7. Este proceso se ocupa de la conexión de datos y su transferencia.
Versión
Prel
imina
r
MIDDLEWARE (en Client-Server Computing):
Es una Categoría de software que reside entre una aplicación y la Red cuya principal función es el envío de mensajes, o la organización de sesiones, entre los Nodos de la red para luego ejecutar (entre bastidores) con el fin de proveer datos y conectar las partes. Surge como solución a aspectos no cubiertos por los estándares Físico-Lógicos en cuanto al procesamiento distribuido.Se ocupa:
• Del ruteo apropiado de datos.• De la incompatibilidad de las plataformas integrándolas.• De ejecuta en cada ambiente.• De garantizar la transparencia de accesos a los recursos• De utilizar técnicas de Message passing o Remote Procedure Call (RPC) para sus
comunicaciones.
APLICACIONES
APLICACIONESSOPORTE DE
HERRAMIENTAS
SIST. OPERAT.1
HARDWARE 1
APLICACIONES
APLICACIONESSOPORTE DE
HERRAMIENTAS
SIST. OPERAT.2
HARDWARE 2
RED de COMUNICACIONES (Homogenea o Heterogenea)
INTERFASE INTERFASE
Controlador de RED
MIDDLEWARE
Servicios de la
APLICACIÓNMIDDLEWARE
SIST. OPERAT. (Cliente)
HARDWARE 1
PresentaciónLógica de la
SW de Comunic. AplicacionesSIST. OPERAT. (Servidor)
HARDWARE 2
SW de Comunic.
Servicios deMIDDLEWAREInteracción del Middleware
Interacción de Protocolos
Workstation Client
ServerVersión
Prel
imina
r
Aspectos lógicos del Middleware:
• Se deben definir los protocolos que el middleware debe soportar para lograr conectividad que permita a programas o procesos comunicarse en forma transparente.
• Los protocolos se dividen en tres grupos: de medios, de transporte y protocolos cliente/servidor.
• Los protocolos de medios determinan el tipo de conexión física usada en la red ej: • Ethernet.• Token Ring.• Fiber Distribuited Data Interface (FDDI).
• Los protocolo de transporte proveen los mecanismos para mover paquetes de datos desde el cliente al servidor o viceversa ej:
• IPX/SPX de Novell.• AppleTalk de Apple.• TCP/IP.
• Un protocolo cliente/servidor define la manera en que los clientes requieren la información al servidor y como el servidor le responde a esos requerimientos. Ej:
• NetBIOS, • RPC, • Advanced Program-to-Program Communication (APPC), • Named Pipes, • Transport Level Interface (TLI) • Sequenced Packet Exchange (SPX).Vers
ión P
relim
inar
Servicios de Middleware
Se define tres niveles de funciones para el middleware, básicas, intermedias, avanzadas.
• Servicios Básicos• Son un mínimo nivel de funciones que se deben esperar de una arquitectura
middleware. • Deben proveer transparencia, en otras palabras que se invisible al usuario.
• Diferentes protocolos: A bajo nivel esto incluye tecnologías como IPX/SPX y TCP/IP. El Middleware debe proveer soporte para una cantidad importante de protocolos para cubrir los actuales y futuros estándares.
• Diferencias en TCP/IP’s: (hay por lo menos 15 variantes de este “estándar”) El middleware necesita ser capaz de operar sobre todas o la mayoría de estas implementaciones.
• Traslación de Protocolos: Cuando parte de la red de una empresa opera con un protocolo y otra parte lo hace con otros, los mensajes tendrán que pasar por múltiples protocolos sin problema.
Versión
Prel
imina
r
Servicios de Middleware: (Cont)
• Conectividad: Este es generalmente el punto clave del middleware en una arquitectura cliente/servidor.
• Hay un numero de propiedades estándar de APIs que pueden ser usadas para establecer conectividad.
• Estas APIs pueden ser de propósito general o orientadas a SQL y de hecho, estándares basado en objetos como OLE o DSOM y sus procesos de mensajes también pueden ser usados para establecer conectividad.
• Un producto middleware debe soportar estándares comunes en este área como ODBC, DBLib, OLI, DRDA, SQL/API y X/Open.
• Optimización de Consultas (Query): Para acceso a DBMS distribuido. • Cuando un JOIN requiere de datos que están ubicados en lugares distintos, el
middleware debe proveer inteligencia para navegación para completar el Query.• En referencia a la navegación distribuida, la existencia de diferentes estructuras de
archivos y esquemas de índices en varios sitios se requiere un enfoque inteligente para evitar costos en la ejecución del Query.
• La lógica del middleware debe trabajar en forma relacional, no relacional, estructura de archivos plano u orientado a objeto.
• Llamadas Procedimiento Remoto (RPC):• Diferentes motores de DBMS soportan diferentes formas de procedimientos remotos. • Hay otras formas de procedimientos remotos tales como OSF, DCE que el
middleware debe soportar sin problemas.Versión
Prel
imina
r
Servicios de Middleware: (Cont)
• Manejo de Hilos:• Proveer una capacidad de explotar comunicaciones cruce de proceso (cross-
process) y sistemas basados en transacciones seguras, tales como CICS o IMS/DS. Estos permiten el manejo de múltiples procesos simultáneamente. Ya que en diferentes entornos el manejo de estas funciones difiere, el middleware debe enmascarar estas diferencias, haciendo mas fácil el diseño de aplicaciones que puedan correr bien en los entornos cliente/servidor.
• EL Balance de Carga: • Puede o no ser soportada por entornos operativos (como el caso de sistemas
paralelos), el middleware debe proveer habilidad para cumplir esta función. • Seteo de Prioridad:
• El middleware debe brindar facilidades para permitir que algunas tares se ejecuten como “privadas” o como compartidas.
• Servicios Intermedios: • Posiblemente algunos de los servicios que se presentan como de categoría
intermedia podrían pertenecer a servicios avanzados dado que no hay una línea definida para ello.
Versión
Prel
imina
r
Servicios de Middleware: (Cont)
• Servicios de Seguridad: • El middleware debe manejar múltiples entornos de seguridad ofreciendo una
interfase heterogénea para los usuarios.• Cada entorno operativo puede tener distintos mecanismo de seguridad que difieren
entre si como controles de login o productos de seguridad separados como RACF o Top Secret, también administradores de Base de Datos pueden tener restricciones de seguridad.
• El uso de “recursos confiables” permite el mapeo de IDs auténticos dentro del sistema. Por ejemplo un ID valido puede mapear a alguien en un Sistema Digital, eliminando que el usuario necesite distintas passwords para cada subsistema.
• Comunicación entre procesos de un Job• Cuando un Job se divide en varios coprocesos paralelos y se ejecutan en distintos
sitios.• Para reducir los costos de comunicación es necesario que esos coprocesos se
comuniquen directamente unos con otros independiente de su locación.
Versión
Prel
imina
r
Tecnologías y Modelos:
TecnologíasCómo se realiza la programación.
• Paso de mensajes:• Berkeley Sockets• Java Sockets
• Llamadas a procedimientos remotos• Sun RPC
• Objetos distribuidos:• Java RMI• CORBA
• Servicios web:• SOAP (Simple Object Access
Protocol )
ModelosCómo se diseña el servicio
Modelo cliente/servidor
Modelos con intermediario:Modelo proxy/cachéModelo multinivel
Peer-to-peer
Otras tecnologías o variantes de ellas Código Móvil
Versión
Prel
imina
r
Comunicación en Sistemas Distribuidos:
Permite la interacción entre aplicaciones y servicios del sistema.Existen varios modelos de comunicación entre procesos:
• Memoria compartida (Sólo multiprocesador no distribuido).• Paso de mensajes.
El nivel de abstracción en la comunicación:• Paso de mensajes puro (Cliente-Servidor).• Llamadas a procedimientos remotos.• Modelos de objetos distribuidos.
Los diferentes mecanismos de comunicación se caracterizan por los siguientes factores:• Rendimiento: Latencia, ratio de transferencia, ancho de banda, ...• Escalabilidad: Número de elementos activos.• Fiabilidad: Pérdida de mensajes.• Seguridad:Cifrado, certificación, ...• Movilidad: Equipos móviles.• Calidad de Servicio (QoS): Reserva y garantía de anchos de banda.• Comunicación en grupo: Multicast.
Versión
Prel
imina
r
Comunicación en Sistemas Distribuidos: (Cont)
Niveles de Comunicación:
Versión
Prel
imina
r
Primitivas de Comunicación:
Cada una de las funciones de comunicación de una tecnología determinada. Las primitivas básicas son:
• Envío: send(destino,mensaje).• Recepción: receive(fuente,mensaje).
Otras primitivas:• Conexión: connect(destino).• Desconexión: close().
Cada una de las primitivas tiene las siguientes características:• Boqueantes vs No-bloqueantes.
• Bloqueantes:• Lo más natural, fácil de usar.• Necesitamos threads o múltiples procesos.• Send se bloquea hasta que se envía el mensaje.• Recv se bloquea hasta que se recibe el
mensaje.
• No bloqueantes:• Más difíciles de usar, en ocasiones más
eficientes.• Send retorna inmediatamente copia el mensaje
para enviarlo, o guarda un puntero.• Recv retorna si no hay mensaje que recibir.• Interrupciones para notificar envío/recepción.
Versión
Prel
imina
r
Primitivas de Comunicación: (Cont)
• Sincronización: Síncronas vs. Asíncronas.• Esta característica afecta no tanto a la primitiva como a la transmisión en sí.• Comunicación síncrona: Envío y recepción se realizan de forma simultanea.• Comunicación asíncrona: El envío no requiere que el receptor este esperando.• La comunicación asíncrona usa un buffer de almacenamiento.• Implica ciertas condiciones de bloque en envío y recepción.
• Fiabilidad: Fiables vs. No-fiables• El envío fiable de datos garantiza que un mensaje enviado ha sido recibido por el
receptor.• Implica la retransmisión de mensajes de validación (ACKs).• La fiabilidad la puede garantizar:• El protocolo de comunicación (TCP si y UDP no).• Los elementos emisor y receptor.
Versión
Prel
imina
r
Direccionamiento:
Información válida para la identificación de elementos del sistema. Posibles receptores de un mensaje.Mecanismos:
• Dirección dependiente de la localización:• Por ejemplo: dirección máquina + dirección puerto local.• No proporciona transparencia.
• Dirección independiente de la localización (dir. lógica):• Facilita transparencia.• Necesidad de proceso de localización:
• Mediante broadcast.• Uso de un servidor de localización que mantiene relaciones entre
direcciones lógicas y físicas.• Uso de caché en clientes para evitar localización.
Versión
Prel
imina
r
Comunicación en Grupo:
Se habilita por medio de:• Variantes de protocolos de red: IP-multicast.• Emulandola por medio de protocolos de alto nivel o por las aplicaciones.
El direccionamiento se realiza por medio de una dirección de grupo (grupo al que pertenecen todos los receptores).Modelos de grupos:
• Grupo abierto.• Grupo abierto controlado.• Grupo cerrado.
Utilidad para los sistemas distribuidos:• Ofrecer tolerancia a fallos basado en servicios replicados.• Localizar objetos en sistemas distribuidos.• Mejor rendimiento mediante datos replicados.• Actualizaciones múltiples.• Operaciones colectivas en cálculo paralelo.
Problemática:• Comunicación fiable es difícil.• Escalabilidad de las tecnologías (Internet con MBone).• Gestión de grupos.• Encaminamiento (Flooding, Spanning Tree, RPB, TRPB, RPM).
Orden en la Comunicación en Grupo:• FIFO: Los mensajes de una fuente llegan a cada receptor en el orden que son enviados.• Causal: Los mensajes enviados por dos emisores distintos son recibidos en el orden relativo en el que
se han enviado.• Total: Todos los mensajes (de varias fuentes) enviados a un grupo son recibidos en el mismo orden por
todos los elementos.Vers
ión P
relim
inar
Modelos con / sin estado:
Servicio Con estado vs. Sin estado:Determina si el servidor mantiene información de los clientes o no.
• Ventajas de servicio con estado:• Mensajes de petición más cortos.• Mejor rendimiento (se mantiene información en memoria).• Favorece estrategias de optimización:• Estrategias predictivas: análisis del patrón de operaciones del cliente.
• Ventajas de servicio sin estado:• Más tolerantes a fallos (rearranque del servidor).• Peticiones autocontenidas.• Reduce el número de mensajes: no hay comienzos/finales de sesión.• Más económicos para el servidor (no consume recursos de memoria)• Servicios inherentes con estado (cerrojos distribuidos).• Estado sobre servicios sin estado (HTTP+cookies).
Versión
Prel
imina
r
Cliente –Servidor: Paso de mensajes:
Los mensajes intercambiados pueden ser:• Mensajes de texto (por ejemplo: HTTP).• Mensajes con formato (binarios). Una característica de éste método es que tanto emisor y
receptor deben coincidir en la interpretación de los bytes transmitidos. Se presentan problemas con:
• Tamaño de los datos numéricos.• Ordenación de bytes.• Formatos de texto: (ASCII vs EBCDIC)
Los modelos de comunicación basados en cliente-servidor con paso de mensajes responden al esqueleto:
Versión
Prel
imina
r
Network Byte Order vs. Host Byte Order:
Existen dos formas para ordenar los bytes:• El más significativo primero: Network Byte Order o "Big-Endian Byte Order“• El menos significativo primero: Host Byte Order o “Little -Endian Byte Order"
Siempre debe convertirse los datos a Network Byte Order antes de enviarlos por la redVersión
Prel
imina
r
Mecanismos para envío de mensajes:
Cuando se mueven los procesos debe asegurarse que lleguen a su nueva locación:• Mensajes en ruta (emitidos por terceros y no recibidos el nodo origen del
proceso migrado)• Mensajes pendientes. Pueden ser de 3 tipos
• Tipo 1: recibidos en el nodo origen luego que se ha congelado el proceso y no se ha reiniciado en el sitio destino
• Tipo 2: recibidos en el nodo origen cuando el proceso se inició en el sitio destino• Tipo 3: enviados al proceso desde otros nodos luego que éste reinició en el sitio
destino• Mensajes futurosLos mecanismos más usados son:
• Reenvío de mensajes (V-System, Amoeba)• Tipos 1 y 2 son retornados o dejados caer para que retransmitan.
• Sitio origen (AIX TCF, Sprite )• Cada sitio tiene información sobre el traslado del proceso.• Es inseguro por caídas de los sitios intermedios, los sitios origen siguen cargados.
• Enlace transversal : (DEMOS/MP)• Los tipo 1 son encolados en el sitio fuente, luego de notificada la ubicación del proceso le
son enviados como parte del proceso de migración.• Para los tipo 2 y 3 es dejada una dirección adelantada en el sitio fuente apuntado al sitio
destino llamada link.• Actualización del link (Charlotte)
• Desde el sitio origen se manda a todos los demás kernels un mensaje de actualización de la nueva ubicación.Vers
ión P
relim
inar
Migrando procesos, como afecta las comunicaciones:
Cuando un proceso es migrado es necesario no solo pasar parte o toda la información que el proceso tiene en el sistema origen al sistema destino, sino que también se deben realizar las siguientes tareas que afectan la forma en que se comunica:
• Destruir el proceso en la fuente del sistema y crearlo en el otro sistema. Esto es un movimiento de parámetros del proceso, no una replicación.
• La imagen del proceso, o sea, una parte del bloque de control del proceso (PCB), debe ser movido. Es importante destacar que no se puede copiar el PCB en forma directa sino que se deberá generar uno nuevo en el sistema destino y copiarle los datos del PCB en el equipo origen.
• Transferencia de los datos:• Cualquier conexión (link) entre este proceso y otros procesos, como por ejemplo el paso de
mensajes y señales, debe ser actualizado o redireccionado al nuevo sitio.• Una estrategia es transmitir todo el archivo al nuevo nodo, y a partir de ese momento todo
acceso al archivo es local. Cuando el usuario ya no requiere acceso al archivo, se envía de regreso una copia al nodo origen.
• El otro enfoque consiste en transferir al nodo destino solo las porciones del archivo que en ese momento realmente son necesarias para la tarea actual. Si se requiere otra porción, se efectúa otra transferencia y, cuando el usuario ya no quiera acceder al archivo, todas las porciones modificadas se mandan de regreso origen.
• Migración de cálculos:• El proceso p invoca un procedimiento predefinido del nodo destino, el cuál se ejecuta y devuelve
a p los resultados.• Como alternativa, el proceso p puede enviar un mensaje al nodo destino. El sistema operativo del
nodo destino crea un nuevo proceso q cuya función es realizar la tarea solicitada y cuando qtermina su ejecución, envía a p el resultado por medio del sistema de mensajes.
• Obsérvese que en este esquema los procesos p y q pueden ejecutarse concurrentemente y, de hecho, puede haber varios procesos concurrentes en distintas instalaciones.
Versión
Prel
imina
r
Migrando procesos, como afecta las comunicaciones: (Cont)
Estrategias para mover el contenido parcial del PCB:• Intenso (todos): Transfiere el espacio de dirección entero en el momento de la migración. • Intenso (sucio): Transfiere sólo aquellas páginas del espacio de dirección que están en
memoria central y fueron modificados. Requiere soporte de paginación remota.• Precopia: El proceso continúa ejecutando en el nodo fuente mientras el espacio de
dirección es copiado a otro nodo.• Copia por referencia: Esta es una variación de la anterior en la cual las páginas son
traídas sólo cuando son referenciadas. • Mover (flushing): Las páginas de los procesos son limpiadas desde la memoria central de
la fuente moviendo las páginas viejas al disco. Después se realiza una copia por referencia.
Problemas que se encuentran al mover el PCB:• Espacio de Direccionamiento: Suponiendo memoria virtual (paginación o segmentación):
dos estrategias.• Transferir todo el espacio de direccionamiento en el momento de la migración. Si el
espacio de direccionamiento es grande y sólo se necesita una parte esto es CARO.• Transferir solo lo que está en Memoria Central. El resto se transfiere por demanda.
La máquina de origen siga pendiente del proceso (mientras viva) para la paginación o la segmentación.
• Archivos asignados al Proceso Migrado:• Si va a seguir accediendo al Archivo y es el único, conviene migrar el Archivo
también.• Si el proceso va y vuelve en seguida, conviene dejar el Archivo o solo moverlo ante
una solicitud de I/O.Vers
ión P
relim
inar
Migrando procesos, como afecta las comunicaciones: (Cont)
Qué pasa con los Mensajes y las Señales:• El destino de los mensajes y las señales pendientes, se puede tratar mediante
un mecanismo de almacenamiento temporal, durante la migración, para dirigirlos posteriormente a su nuevo destino.
• Puede hacer falta mantener una información de desvío en el emplazamiento inicial durante algún tiempo, para asegurar que llegan todos los mensajes y las señales pendientes.
• Los Mensajes que lleguen para el proceso durante la migración son guardados, por el sistema temporalmente y después reenviados.
Ejemplo de Self Migration: AIX (IBM). • El proceso P decide que debe migrarse, por lo que solicita al SO que seleccione
una máquina de destino. Y le mande un mensaje con la IMAGE (imagen delproceso) y un archivo con la información necesaria para que el SO receptor pueda trabajar.
• En la máquina destino, el Kernel crea un hijo y le asigna como información del proceso los datos recibidos del SO origen.
• El Hijo toma los datos de la imagen transferida como ser: contexto, argumentos, stack, etc. que necesita para completar la operación.
• El Proceso Original P es suspendido durante la migración tanto en el equipo origen como en el destino. Cuando el proceso de migración termina se destruye a ese proceso del sistema origen, quedando una sola copia en el equipo destino.
Versión
Prel
imina
r
Llamadas a procedimientos remotos: Generalidades
Se denomina genéricamente “Llamada a procedimientos remotos (Remote ProcedureCall)” al proceso por el cual un proceso le pide la ejecución parcial o total de una determinada problemática a otro proceso que se encuentra ejecutándose en forma concurrente ya sea dentro o fuera del equipo computacional donde se encuentra el proceso que necesita los servicios.De esta manera la primer forma de comunicación de este tipo son las llamadas entre procesos catalogados cliente-servidor, que es la primera de las formas de hacer RPC.Algunos métodos para hacer RPC:
• Independientes al paradigma de programación:• Cliente – Servidor: Es muy de bajo nivel, ya que en cada tipo de aplicación hay que
realizar todo el proceso de comunicación, manejo de errores, etc.• Para programación procedural:
• Sun RPC: Propuesto por Birrel y Nelson en 1985. Es un protocolo que desarrollo la empresa SUN donde toda la parte del manejo de la comunicación está implementado a nivel de bibliotecas comunes, por lo que los programadores solo deben ocuparse de realizar las funciones servidor y los clientes que las consumen, pero no de toda la problemática de la comunicación propiamente dicha. Como ejemplos de éste tipo de servicios podemos tomar al NFS o NIS.
• Para programación orientada a objetos: Llegaron a su culminación en 1990 con DCE (Distributed Computing Environment), se basan en consumir métodos en forma remota, los más importantes son:
• CORBA / ICE ZeroC• RMI• DCOM
Versión
Prel
imina
r
Llamadas a procedimientos remotos: Método RPC o Sun RPC
Se usa para encapsular la comunicación entre dos procesos actuando uno como cliente y el otro como servidor. Lo fundamental de la técnica es permitir que programas que se están ejecutando en la misma máquina o en máquinas diferentes interactúen mediante una simple semántica de mensajes y consuman los procedimientos publicados, como si los dos programas estuvieran en la misma máquina, y sin que esto sea una problemática para el programador. Funcionamiento General de RPC:
Cliente:• Es el proceso que realiza una la llamada a una función.• Dicha llamada empaqueta los argumentos en un mensaje y se los envía a otro
proceso.• Queda la espera del resultado (a través de otro mensaje).
Servidor:• Se recibe un mensaje consistente en varios argumentos.• Los argumentos son usados para llamar una función en el servidor.• El resultado de la función se empaqueta en un mensaje que se envía al cliente.
Elementos Necesarios:• Código cliente.• Código del servidor.• Formato de representación.• Definición de la interfase.• Localización del servidor.• Semánticas de fallo.
...
...x=buscar(1556)...
int buscar(int cod){......return val;
}
Clie
nte
ServidorVers
ión P
relim
inar
Llamadas a procedimientos remotos: Método RPC o Sun RPC (Cont)
Ventajas del método:• La llamada a procedimientos es una abstracción muy usada, aceptada y bien
comprendida.• Permite que las interfases remotas se especifiquen como un conjunto de operaciones con
nombre y tipo determinado. De este modo, la interfase puede documentarse de forma clara y los programas distribuidos pueden chequearse para detectar errores de tipo.
• Como la interfase es estándar y está definida de forma precisa, el código de comunicaciones de una aplicación puede generarse automáticamente.
• Los productores de software pueden escribir módulos clientes y servidores que pueden trasladarse entre computadores y SO con pocas modificaciones.
• Puede considerarse como un refinamiento de mensajes confiable y bloqueantes.
Desventajas del método:• Sólo funciona en lenguajes procedurales (C, Pascal, etc.)
Versión
Prel
imina
r
Llamadas a procedimientos remotos: Método RPC o Sun RPC (Cont)
Código Cliente/Código Servidor:Las funciones de abstracción de una llamada RPC para el intercambio de mensajes se
denominan resguardos (stubs).
SISTEMA CLIENTE
CÓDIGO DE LA APLICACIÓN
PREPARAENTRADA
CONVIERTESALIDA
INICIOLLAMADA
FINLLAMADA
BIBLIOT.EJECUCIÓN
RPC
ENVÍAENTRADA
RECIBESALIDA
RESGUARDOCLIENTE 1
28
9
5
3
PROCEDIMIENTOS
EJECUTAPROCEDIMIENTO
REMOTO
SISTEMA SERVIDOR
RECIBEY PASA
RESGUARDOSERVIDOR
PREPARASALIDA
TRANSMITESALIDA
CONVIERTEENTRADA
BIBLIOT.EJECUCIÓN
RPC
4
6
7
Versión
Prel
imina
r
Llamadas a procedimientos remotos: Método RPC o Sun RPC (Cont)
Sobre los resguardos (stubs):• Se generan automáticamente por el software de RPC en base a la interfase del
servicio.• Son independientes de la implementación que se haga tanto del lado del cliente
como del servidor. Sólo dependen de la interfase definida para la comunicación.• Tareas que realizan:
• Localizan al servidor.• Empaquetan los parámetros y construyen los mensajes.• Envían el mensaje al servidor.• Espera la recepción del mensaje y devuelven los resultados.
Versión
Prel
imina
r
Llamadas a procedimientos remotos: Método RPC o Sun RPC (Cont)
El pasaje de parámetros y su problemática• El paso de parámetros por valor es sencillo para las llamadas a procedimientos remotos,
ya los parámetros se copian simplemente en el mensaje y se envían al sistema remoto. • Las llamadas por referencia son más complicadas de implementar, porque es necesario
que exista un único puntero para cada objeto, válido en todo el sistema.• Otro problema es cómo representar los parámetros y los resultados en los mensajes. Si el
programa cliente y el servidor están construido en los mismos lenguajes de programación, sobre el mismo tipo de máquinas y con el mismo SO, los requisitos de representación no son un problema, pero si esto no ocurre se pueden presentar problemas de representación. Para solucionar esto el mejor enfoque para este problema es ofrecer un formato estándar para los objetos comunes, como los enteros, números en coma flotante, caracteres y cadenas de caracteres. De esta forma, los parámetros propios de cualquier máquina pueden convertirse a la representación estándar y viceversa. Para solucionar esto se utiliza XDR (external data representation) que es un estándar que define la representación de tipos de datos.
1
2
3 Versión
Prel
imina
r
Llamadas a procedimientos remotos: Método CORBA
CORBA (Common Object Request Broker Architecture):• Es un estándar definido en 1991 por la OMG (Object Management Group) para tratar la problemática de
realizar aplicaciones distribuidas en el paradigma de orientación a objetos.• CORBA es una especificación para la tecnología de la gestión de objetos distribuidos (DOM). La
tecnología DOM proporciona una interfase de alto nivel OO situada en la cima de los servicios básicos de la programación distribuida. El nivel más alto de la especificación es denominado arquitectura de gestión de objetos (OMA)
• Una aplicación definida sobre OMA esta compuesta por una serie de objetos distribuidos que cooperan entre sí.
• Esta norma cubre cinco grandes ámbitos que constituyen los sistemas de objetos distribuidos:• IDL: Un lenguaje de descripción de interfases, llamado Lenguaje de Definición de
Interfases IDL (Interface Definition Language), existen muchas traducciones de este lenguaje de especificación IDL a lenguajes de implementación (como pueden ser C++, Java, ADA, etc.) y una infraestructura de distribución de objetos llamada ObjectRequest Broker (ORB) que ha dado su nombre a la propia norma: Common ObjectRequest Broker Architecture (CORBA).
Versión
Prel
imina
r
Llamadas a procedimientos remotos: Método CORBA (Cont)
• Servicios: Una descripción de servicios, conocidos con el nombre de Servicios CORBA: (CorbaServices), Proporcionan funciones elementales necesarias para cualquier tipo de entorno distribuido, independientemente del entorno de aplicación. Estas especificaciones cubren los servicios de nombrado, de persistencia, de eventos, de transacciones, la notificación asíncrona de eventos o la creación y migración de objetos etc. El número de servicios se amplía continuamente para añadir nuevas capacidades a los sistemas desarrollados con CORBA. Están pensados para grandes sistemas.
• Naming Service : Permite a un cliente encontrar un objeto, a través de su nombre.• Event Service: Permite a los clientes y servidores enviar mensajes o eventos.• Security Service: Permite dar permisos a objetos o grupos de objetos.• Trading Service: Permite a los clientes encontrar objetos dada una restricción.• Transaction Service: Permite tener transacciones distribuidas bajo two phase commit• Persistent State Service: Servicio de persistencia de objetos.
• Facilidades Comunes: Una descripción de servicios orientados al desarrollo de aplicaciones finales, estructurados sobre los objetos y servicios CORBA. Con el nombre de Facilidades CORBA (CorbaFacilities), estas especificaciones cubren servicios de alto nivel, como las interfases de usuario, los documentos compuestos, la administración de sistemas y redes, etc. La ambición es aquí bastante amplia ya que CorbaFacilities pretende definir colecciones de objetos prefabricados para aplicaciones habituales en la empresa: creación de documentos, administración de sistemas informáticos, etc. (También denominadas Facilidades Horizontales)Vers
ión P
relim
inar
Llamadas a procedimientos remotos: Método CORBA (Cont)
• Interfases de Dominio: Una descripción de servicios verticales denominados Dominios CORBA (CorbaDomains), que proveen funcionalidad de interés para usuarios finales en campos de aplicación particulares. Proporcionan funciones complejas, al igual que las Facilidades, pero restringidas a campos de aplicación muy concretos Por ejemplo, existen proyectos en curso en sectores como: telecomunicaciones, finanzas, medicina, etc. (También denominadas Facilidades Verticales)
• GIOP (General Inter-ORB Protocol): Un protocolo genérico de intercomunicación, el Protocolo General Inter-ORB GIOP, que define los mensajes y el empaquetado de los datos que se transmiten entre los objetos. Además define implementaciones, de ese protocolo genérico, sobre diferentes protocolos de transporte, lo que permite la comunicación entre los diferentes ORBs consiguiendo la interoperabilidad de elementos de diferentes vendedores. Por ejemplo el IIOP para redes con la capa de transporte TCP.
Versión
Prel
imina
r
Llamadas a procedimientos remotos: Método CORBA (Cont)
• Interfases de Dominio: Una descripción de servicios verticales denominados Dominios CORBA (CorbaDomains), que proveen funcionalidad de interés para usuarios finales en campos de aplicación particulares. Proporcionan funciones complejas, al igual que las Facilidades, pero restringidas a campos de aplicación muy concretos Por ejemplo, existen proyectos en curso en sectores como: telecomunicaciones, finanzas, medicina, etc. (También denominadas Facilidades Verticales)
• GIOP (General Inter-ORB Protocol): Un protocolo genérico de intercomunicación, el Protocolo General Inter-ORB GIOP, que define los mensajes y el empaquetado de los datos que se transmiten entre los objetos. Además define implementaciones, de ese protocolo genérico, sobre diferentes protocolos de transporte, lo que permite la comunicación entre los diferentes ORBs consiguiendo la interoperabilidad de elementos de diferentes vendedores. Por ejemplo el IIOP para redes con la capa de transporte TCP.
Versión
Prel
imina
r
Llamadas a procedimientos remotos: Método RMI
La idea básica de RMI (Remote Method Invocation) es que, objetos ejecutándose en una Virtual Machine (VM) sean capaces invocar métodos de objetos ejecutándose en otra VM. Las VM's pueden estar en la misma máquina o en máquinas distintas conectadas por una red ya que esto no es una limitación del método.
Como principales características podemos encontrar las siguientes:• Sencillez en su implementación• Transparencia, el programador puede trabajar con los objetos igual que si
estuviese en su máquina local• Implementación 100% Java (es también su principal desventaja)• Independencia del protocolo de comunicación
La arquitectura de RMI consta de 3 capas:• La capa de stub/skeleton• La capa de referencia remota• Y la capa de transporte
Versión
Prel
imina
r