r in a lim Apuntes de Sistemas Operativos Distribuidos Pr e Autor: Fabio E. Rivalta / Carlos Neetzel Material: dictado de clases Tema: Comunicación entre procesos (Parte 1) Fecha: 05/2007 Ve r si ón 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 Índice de contenidos Ve r si ón in a Pr e Parte 2: Llamada a procedimientos remotos (RPC) Sun/RPC CORBA RMI lim Redes de comunicación de datos El concepto de Sistema Abierto UNIX y TCP/IP Middleware Tecnologías y Modelos Comunicación en Sistemas Distribuidos r Parte 1: Redes de comunicación de datos: Objetivos: Tipos de conexiones en red Pr e lim in a r • 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 la localizació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í. Ve r si ón • 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. Conexiones: 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 C E lim A in a r B D Pr e Red de conexión total B C si E D A C E F Red jerarquica con estructura de arbol. D Re d d e co ne x io n p a rcia l 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 hijos Ve r A ón 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. B Topología de redes computacionales: Se conoce como topología de una red a la forma de interconectar los nodos de la red. r Estrella • 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. lim Inconvenientes: Bus ... F C D E Red en estrella n ón C B Ventajas: • Es Más fácil conectar nuevos nodos a la red • Requiere menos cable que una topología estrella. a) Red en canal lineal si Desventajas: Ve r A D Pr e • 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. B A in a Ventajas: Canal multi-acceso o bus • 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. Topología de redes computacionales: (Cont) Anillo A Desventajas: in a • Es Más fácil conectar nuevos nodos a la red • Requiere menos cable que una topología estrella. r Ventajas: Ve r si ón Pr e lim • 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. E D B C Red en anillo Tipos de redes: in a r • WAN - Waide Area Network • Host y Routers • MAN - Metropolitan Area Network • LAN - Locar Area Network lim • 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 Pr e Clasificación de las Redes según su uso: ón 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. Ve r si 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. Clasificación de las redes según su uso: lim in a r 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. Pr e 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. ón 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. Ve r si 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. Arquitectura de comunicaciones: in a r La arquitectura de comunicaciones se ocupa de las operaciones necesarias para que la comunicación sea exitosa o informa si no se pudo lograr. lim Además de la vinculación para establecer una comunicación entre computadoras se necesita dos cosas mas: Protocolos: Arquitectura de protocolos: Pr e 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. ón Es la estructura que conforma a un juego de protocolos que implementan las funciones de comunicación. Ve r si 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. Niveles de las comunicaciones: lim 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... Pr e • • • • • • in a r 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. • Nivel de Transporte: Se asegura del transporte de los procesos INDEPENDIENTEMENTE de la naturaleza de los procesos. si ón • 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. Ve r • 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. Dirección del Punto de acceso de Servicio (SAP) PROCESOS 1 2 3 PROCESOS Dirección de la RED Capa de Transporte 1 2 Capa de Transporte Acceso a Red RED DE COMUNICACIONES HOST A Acceso a Red HOST C PROCESOS 1 2 3 4 Capa de Transporte Acceso a Red HOST B Armado del paquete de transmisión de datos: TRANSPORT HEADER in a TRANSPORT HEADER DATOS del PROCESO TRANSPORT HEADER DATOS del PROCESO lim NETWORK ACCESS HEADER DATOS del PROCESO NETWORK ACCESS HEADER Pr e TRANSPORT HEADER r DATOS del PROCESO DATOS del PROCESO Ve r si ón 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. Estrategias: r Al diseñar un red de comunicaciones es necesario tener en cuenta cuatro aspectos: • lim Pr e • 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 durar una 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. ón • in a • Estrategias de ruteo: ¿Como se enviarán los mensajes por la red? Ve r si • 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? Estrategias: (Cont) • Estrategias de conexión: ¿Como envían dos procesos una serie de mensajes? • 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. in a • • • • • r Conmutación de circuitos: Conmutación de mensajes: lim • Pr e • 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. 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. si • • • • ón Conmutación de paquetes: Ve r • Estrategias: (Cont) r • 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) Pr e lim in a • • • Ve r si ón • 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. Estrategias: (Cont) • Paso de testigo (Token Passing) • lim in a r • 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) Ve r si ón Pr e • 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? Estrategias: (Cont) Ve r si ón Pr e lim in a r • 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 El concepto de Sistema Abierto in a r 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. Pr e lim 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. Ve r si ón 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 El modelo OSI (Open System Interconnection) Computadora 1 Computadora 2 Proce so B Aplicación 6 Presentación Protocolo de Presentación Presentación 5 Sesión Protocolo de Sesión Sesión 4 Transporte 3 Red in a Pr e lim Protocolo de Aplicación Protocolo de Transporte Transporte Protocolo de Red Red Enlace Protocolo de Enlace de Datos Enlace Física Protocolo Físico Física Ve r si ón 2 1 r 7 Proce so A Aplicación Ambiente de RED Ambiente OSI Sistema Ambiente Real Red física de DATOS El Modelo TCP/IP(Transmission Control Protocol / Internet Protocol) lim in a 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 Pr e • • • • • r Modelo construido en base a tres conceptos mas el Acceso a Red: si ón 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. Ve r Un datagrama es el conjunto de las cabeceras de control de la información de cada segmento. EF IP FTP SMTP TELNET TCP IP NET ACCESS Datos del Usuario TCP Segmento Datagramas Paquetes El Modelo TCP/IP (Transmission Control Protocol / Internet Protocol): (Cont) Ve r si ón Pr e lim in a r 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. Características y problemas del IPv4: IHL Identificación Protocol Ve r si Tiempo de Vida Tipo de Servicio ón Versión Pr e lim in a r • 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. Flags Longitud Total Desplazamiento de Fragmento Checksum del Encabezado Dirección de Origen Dirección de Destino Opciones + Padding Características y problemas del IPv6: 4 Versión 8 Prioridad 16 lim 0 in a r • El encabezado contiene 40 By. El encabezado de TCP 20 By. El de fragmentació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. Etiqueta de Flujo encabezado siguiente Pr e Longitud de Carga Dirección de Origen Dirección de Destino ón si Ve r 24 límite de salto 31 UNIX y TCP/IP: in a r • El Kernel de UNIX tiene incorporado: • TCP/IP • Variedad de Interfases para Acceso a Red llamados puertos. • Mecanismos de programación estándar (Sockets) ón Pr e lim 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 6. 7. 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). Proceso crea segundo Proceso para establecer y manejar la conexión de datos. Este proceso se ocupa de la conexión de datos y su transferencia. Ve r 5. si Transmisión por medio de FTP en UNIX RecepciónmedianteFTPenUNIX MIDDLEWARE (en Client-Server Computing): Pr e 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 SIST. OPERAT.1 HARDWARE 1 INTERFASE MIDDLEWARE SOPORTE DE APLICACIONES si HERRAMIENTAS APLICACIONES Ve r SOPORTE DE APLICACIONES ón • • • • • lim in a r 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: Servicios de la Presentación Lógica de la APLICACIÓN HERRAMIENTAS MIDDLEWARE SIST. OPERAT.2 SW de Comunic. Interacción del M iddleware Interacción de Protocolos MIDDLEWARE SW de Comunic. Servicios de Aplicaciones SIST . OPERAT . (Servidor) HARDWARE 2 INTERFASE SIST. OPERAT. (Cliente) HARDWARE 2 HARDWARE 1 Server Controlador de RED RED de COMUNICACIONES (Homogenea o Heterogenea) Workstation Client Aspectos lógicos del Middleware: Pr e • Ethernet. • Token Ring. • Fiber Distribuited Data Interface (FDDI). lim in a r • 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: • IPX/SPX de Novell. • AppleTalk de Apple. • TCP/IP. ón • Los protocolo de transporte proveen los mecanismos para mover paquetes de datos desde el cliente al servidor o viceversa ej: NetBIOS, RPC, Advanced Program-to-Program Communication (APPC), Named Pipes, Transport Level Interface (TLI) Sequenced Packet Exchange (SPX). Ve r • • • • • • si • 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: Servicios de Middleware in a r Se define tres niveles de funciones para el middleware, básicas, intermedias, avanzadas. • Servicios Básicos lim • 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. Pr e • 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. ón • 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. Ve r si • 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. Servicios de Middleware: (Cont) r • Conectividad: Este es generalmente el punto clave del middleware en una arquitectura cliente/servidor. Pr e lim in a • 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. Ve r si ón • 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. Servicios de Middleware: (Cont) Manejo de Hilos: Proveer una capacidad de explotar comunicaciones cruce de proceso (crossprocess) 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: Seteo de Prioridad: • El middleware debe brindar facilidades para permitir que algunas tares se ejecuten como “privadas” o como compartidas. ón • 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. si • Puede o no ser soportada por entornos operativos (como el caso de sistemas paralelos), el middleware debe proveer habilidad para cumplir esta función. Pr e • Ve r • lim in a • r • Servicios de Middleware: (Cont) Servicios de Seguridad: • r in a 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. ón • si • lim • 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. Pr e • Ve r • Tecnologías y Modelos: in a r Modelos Cómo se diseña el servicio lim Modelo cliente/servidor Modelos con intermediario: Modelo proxy/caché Modelo multinivel Peer-to-peer Ve r si ón Pr e Tecnologías Có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 ) Otras tecnologías o variantes de ellas Código Móvil Comunicación en Sistemas Distribuidos: lim in a r 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. Pr e El nivel de abstracción en la comunicación: • Paso de mensajes puro (Cliente-Servidor). • Llamadas a procedimientos remotos. • Modelos de objetos distribuidos. Ve r si ón 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. Comunicación en Sistemas Distribuidos: (Cont) Ve r si ón Pr e lim in a r Niveles de Comunicación: Primitivas de Comunicación: Pr e lim in a r 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. • 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. Ve r si ón • • • • • • • • 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. Primitivas de Comunicación: (Cont) • Sincronización: Síncronas vs. Asíncronas. in a r 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 lim • • • • • Ve r si ón Pr e • 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. Direccionamiento: Ve r si ón Pr e lim in a r 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. Comunicación en Grupo: Variantes de protocolos de red: IP-multicast. Emulandola por medio de protocolos de alto nivel o por las aplicaciones. in a • • r Se habilita por medio de: • • • Grupo abierto. Grupo abierto controlado. Grupo cerrado. 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). si • • • • ón 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. Ve r • • • • • Pr e Utilidad para los sistemas distribuidos: lim El direccionamiento se realiza por medio de una dirección de grupo (grupo al que pertenecen todos los receptores). Modelos de grupos: 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. Modelos con / sin estado: Ve r si ón Pr e lim in a r 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). Cliente –Servidor: Paso de mensajes: Pr e lim in a r Los modelos de comunicación basados en cliente-servidor con paso de mensajes responden al esqueleto: Los mensajes intercambiados pueden ser: si Tamaño de los datos numéricos. Ordenación de bytes. Formatos de texto: (ASCII vs EBCDIC) Ve r • • • ón • 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: Network Byte Order vs. Host Byte Order: Ve r si ón Pr e lim in a r 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 red Mecanismos para envío de mensajes: in a r 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 Pr e lim • 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 futuros Los mecanismos más usados son: • Reenvío de mensajes (V-System, Amoeba) • Tipos 1 y 2 son retornados o dejados caer para que retransmitan. • • ón • 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. 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. Ve r • si • Enlace transversal : (DEMOS/MP) • • 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. Migrando procesos, como afecta las comunicaciones: in a r 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: • si • 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. ón • Pr e lim • 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: • • • Ve r • 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 q termina 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. Migrando procesos, como afecta las comunicaciones: (Cont) Estrategias para mover el contenido parcial del PCB: Pr e lim in a r • 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: Ve r si ón • 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. Migrando procesos, como afecta las comunicaciones: (Cont) Pr e lim in a r 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. Ve r si ón 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 del proceso) 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. Llamadas a procedimientos remotos: Generalidades lim in a r Se denomina genéricamente “Llamada a procedimientos remotos (Remote Procedure Call)” 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: Ve r si ón Pr e • 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 Llamadas a procedimientos remotos: Método RPC o Sun RPC • 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). Pr e • • lim in a r 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: 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. si • • • ón Servidor: Ve r 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; } Servidor • • • • • • Cliente Elementos Necesarios: Llamadas a procedimientos remotos: Método RPC o Sun RPC (Cont) Ventajas del método: • • • r in a lim • 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. Pr e • Ve r si ón Desventajas del método: • Sólo funciona en lenguajes procedurales (C, Pascal, etc.) Llamadas a procedimientos remotos: Método RPC o Sun RPC (Cont) in a r 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 lim SISTEMA SERVIDOR PROCEDIMIENTOS INICIO LLAMADA PREPARA 1 ENTRADA ón RESGUARDO CLIENTE FIN LLAMADA CONVIERTE 9 SALIDA Ve r si BIBLIOT. ENVÍA EJECUCIÓN 2 ENTRADA RPC RECIBE 8 SALIDA 5 EJECUTA PROCEDIMIENTO REMOTO Pr e CÓDIGO DE LA APLICACIÓN CONVIERTE 4 ENTRADA RESGUARDO SERVIDOR 6 PREPARA SALIDA BIBLIOT. EJECUCIÓN RPC RECIBE 3 Y PASA 7 TRANSMITE SALIDA Llamadas a procedimientos remotos: Método RPC o Sun RPC (Cont) Ve r si ón Pr e lim in a r 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. Llamadas a procedimientos remotos: Método RPC o Sun RPC (Cont) El pasaje de parámetros y su problemática Ve r 1 si ón Pr e lim in a r • 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. 2 3 Llamadas a procedimientos remotos: Método CORBA CORBA (Common Object Request Broker Architecture): r in a lim • Pr e • 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 Object Request Broker (ORB) que ha dado su nombre a la propia norma: Common Object Request Broker Architecture (CORBA). ón • si • 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: Ve 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. si ón 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) Ve r • 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. Pr e • • • • • • lim in a 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. Pr e ón si Ve r • lim in a 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. Pr e ón si Ve r • lim in a r • Llamadas a procedimientos remotos: Método RMI in a r 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. Pr e lim 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 Ve r si ón La arquitectura de RMI consta de 3 capas: • La capa de stub/skeleton • La capa de referencia remota • Y la capa de transporte