Está en la página 1de 38

Revisin de los Sistemas de Comunicaciones ms empleados en Control Distribuido

Autor: Jos Luis Poza Lujn Revisores: Jos Enrique Sim Ten Juan Luis Posadas Yage

Instituto de Automtica e Universidad Politcnica de Informtica Industrial Valencia (ai2) (UPV)

Versin: 0.4 Fecha revisin: 10 de noviembre de 2009

Sistemas de comunicaciones

Contenidos
1 Introduccin............................................................................................................. 5
1.1 1.2 1.3 1.4 1.5 Resumen...................................................................................................................... 5 Historial de revisiones ............................................................................................... 5 Objetivos del documento ........................................................................................... 5 Alcance y audiencia ................................................................................................... 5 Organizacin del documento .................................................................................... 5

Sistemas distribuidos ............................................................................................... 6


2.1 2.2 Caractersticas............................................................................................................ 6 El papel de la calidad de servicio.............................................................................. 8

Sistemas de comunicaciones ................................................................................... 9


3.1
3.1.1 3.1.2 3.1.3 3.1.4

Paradigmas de comunicacin ................................................................................. 10


Paso de mensajes ................................................................................................................10 Cliente Servidor...............................................................................................................10 Sistemas de mensajera.......................................................................................................12 Transmisin de cdigo........................................................................................................12

3.2

Modelos de sistemas de comunicaciones ................................................................ 13


TCX ....................................................................................................................................13 IPT ......................................................................................................................................14 RTC ....................................................................................................................................14 IPC......................................................................................................................................15 NML ...................................................................................................................................16 MPI.....................................................................................................................................16 ACE ....................................................................................................................................16 CORBA ..............................................................................................................................17 DDS ....................................................................................................................................19 MSMQ ...........................................................................................................................20 JMS................................................................................................................................22 MidArt ...........................................................................................................................24 Jini .................................................................................................................................24 DCE ...............................................................................................................................25 El caso Microsoft: DDE, OLE, COM, DCOM y .NET .................................................26 AMPQ............................................................................................................................27

3.2.1 3.2.2 3.2.3 3.2.4 3.2.5 3.2.6 3.2.7 3.2.8 3.2.9 3.2.10 3.2.11 3.2.12 3.2.13 3.2.14 3.2.15 3.2.16

Conclusiones .......................................................................................................... 28
4.1 4.2 4.3 4.4 Una visin global...................................................................................................... 28 Contextualizacin temporal de los modelos de comunicacin ............................. 29 Caractersticas de los modelos ................................................................................ 30 Posibles reas de investigacin ............................................................................... 32

5 6

Referencias............................................................................................................. 33 ANEXO: Sistemas de comunicaciones analizados............................................... 37

3 de 38

Sistemas de comunicaciones

Figuras
Figura 1. Necesidad de las polticas de QoS en un sistema distribuido.......................................................8 Figura 2. Paradigmas de comunicacin en funcin del movimiento de datos y de cdigo.........................9 Figura 3. Modelos de comunicaciones basados en paso de mensajes. ......................................................10 Figura 4. Arquitectura de comunicaciones IPT. ........................................................................................14 Figura 5. Arquitectura de comunicaciones RTC........................................................................................15 Figura 6. Arquitectura de comunicaciones IPC.........................................................................................15 Figura 7. Arquitectura de comunicaciones NML. ......................................................................................16 Figura 8. Arquitectura de comunicaciones CORBA. .................................................................................18 Figura 9. Arquitectura de comunicaciones DDS. ......................................................................................19 Figura 10. Arquitectura de comunicaciones MSMQ..................................................................................21 Figura 11. Arquitectura de comunicaciones JMS. .....................................................................................22 Figura 12. Evolucin comparativa de las arquitecturas de Microsoft.......................................................26 Figura 13. Esquema bsico de AMPQ. ......................................................................................................27 Figura 14. Ubicacin diferentes tecnologas en funcin del tipo de comunicacin que implementan.......29 Figura 15. Ubicacin diferentes tecnologas en funcin de los aspectos de tiempo real que cubren. .......30

Tablas
Tabla 1. Tipo de comunicacin en funcin del contenido que se transmite. ...............................................9

4 de 38

Sistemas de comunicaciones

1 Introduccin
1.1 Resumen
Los sistemas distribuidos basan su funcionamiento en la posibilidad de comunicacin entre sus componentes. El sistema de comunicaciones cubre aspectos de diversa complejidad, ya que incluye cuestiones que van desde la conexin y direccionamiento de los mensajes hasta el formato en que se transmite el contenido de los mismos. En este documento se realiza una revisin de los sistemas de comunicaciones que dan soporte a la distribucin de componentes de los sistemas distribuidos. La revisin se ha planteado desde dos puntos de vista: el de los aspectos tericos de los paradigmas clsicos de comunicacin y el de la visin prctica de los sistemas actuales de comunicacin. El documento expone los sistemas separadamente para posteriormente unirlos conceptualmente y analizarlos desde una perspectiva global.

1.2 Historial de revisiones


N revisin 0.0 0.1 0.2 0.3 0.4 Fecha 2007-02 2007-04 2008-02 2008-03 2009-07 Comentarios Inicio del documento Separacin del modelo DCPS de DDS en documento aparte. Final de revisin de los paradigmas de comunicacin Separacin de la calidad de servicio como documento aparte. Revisin global del documento.

1.3 Objetivos del documento


El objetivo principal del documento es realizar un anlisis de los sistemas de comunicaciones ms empleados, sin dejar de lado aquellos que por su especial inters deban ser revisados, para as poder extraer las caractersticas ms destacables y poder aplicarlas en la eleccin del modelo de comunicaciones ms adecuado a un sistema de control distribuido.

1.4 Alcance y audiencia


El documento cubre los sistemas de comunicaciones ms empleados y conocidos en la actualidad, sin entrar en los detalles tcnicos de implementacin, ya que se trata de ofrecer una visin global de los mismos. El documento ser de utilidad a diseadores de sistemas distribuidos.

1.5 Organizacin del documento


El documento se inicia con una breve revisin sobre las caractersticas de los sistemas distribuidos y el papel de la calidad de servicio en los mismos, ya que es uno de los conceptos que van adquiriendo ms importancia. En el captulo 3 se revisan los sistemas de comunicaciones. Inicialmente se revisarn los paradigmas de comunicaciones, para continuar revisando los sistemas de comunicaciones ms relevantes. En el captulo 4 se dan las conclusiones analizando los sistemas de comunicaciones revisados en el captulo anterior por medio de una contextualizacin de los mismos y con una revisin de las caractersticas ms deseables. 5 de 38

Sistemas de comunicaciones

2 Sistemas distribuidos
Un sistema distribuido se define como aquel en que los componentes localizados en computadores, conectados en red, comunican y coordinan sus acciones nicamente mediante el paso de mensajes [Coulouris et al., 2001]. Es habitual que los sistemas distribuidos se caractericen por la concurrencia de los componentes, la ausencia de un reloj comn y la independencia en los fallos. La concurrencia permite que los recursos disponibles, incluidos los propios componentes, puedan ser utilizados simultneamente. La ausencia de de un reloj comn, o global, se debe a que la transferencia de mensajes entre los componentes no tienen una base temporal comn sino que el factor temporal est distribuida entre los componentes. Finalmente el aislado de los fallos de los componentes implica que cada componente debe tener una independencia con respecto al resto de manera que pueda seguir funcionando aunque otro componente no se encuentre disponible. Esto ltimo se puede matizar en la medida en que un componente dependa de otro para su funcionamiento. La coordinacin de los componentes de un sistema distribuido se debe realizar para lograr varios objetivos para los que dichos componentes son necesarios. Para alcanzar dichos objetivos, los componentes deber realizar diversas tareas de manera independiente y servirse concurrentemente de los recursos que tienen a su disposicin. La comunicacin entre componentes obliga a que exista un intercambio de informacin entre los mismos. Este intercambio de informacin se debe realizar a travs de los medios de comunicacin que el sistema distribuido proporciona a cada componente y adems implicar una topologa de las comunicaciones. El acceso de los componentes a los medios de comunicacin disponibles obliga a la existencia de uno o varios protocolos de comunicaciones, que forzosamente debern conocer los componentes que se comuniquen a travs de los mismos. El intercambio de informacin entre componentes supondr que deber existir una manera de enviar la informacin de manera que sea comprensible por los componentes implicados en el intercambio. Consecuentemente el contenido de los mensajes deber disponer de un lenguaje, o al menos unas normas conocidas por los agentes que intervengan en el proceso de intercambio de informacin. La existencia de un lenguaje, supone la existencia de una gramtica y consiguiente de una sintaxis. Estos aspectos del lenguaje de intercambio de informacin debern ser tenidos en cuenta a la hora de disear un sistema distribuido y de intentar lograr un alto grado de estandarizacin del mismo [FIPA, 1997].

2.1 Caractersticas
Un sistema distribuido puede tener muchas propiedades deseables, estas enriquecern el sistema de manera que lo hagan ms eficiente. Entre las propiedades deseables de un sistema distribuido se pueden destacar las siguientes [Coulouris et al., 2001]. Heterogeneidad. Se entiende como la variedad y la diferenciacin de los componentes de un sistema distribuido. Generalmente la variacin de los diversos componentes de un sistema justifica la creacin de estndares que permitan a los componentes conocer las reglas de funcionamiento con un esfuerzo mnimo de adaptacin.

6 de 38

Sistemas de comunicaciones Extensibilidad. Este concepto es similar en algunos casos a la compatibilidad que el sistema puede ofrecer a nuevos componentes. La extensibilidad del sistema tambin justifica el uso de estndares, cuanto menos las normas del sistema deben ser conocidas por los componentes. Tambin suele hablarse de sistemas abiertos cuando se refiere a sistemas extensibles. Seguridad. Actualmente, es una de las propiedades que proporciona mayor vala a un sistema distribuido. Sobre seguridad hay tres aspectos que son importantes tener en cuenta: disponibilidad, confidencialidad e integridad. La disponibilidad se refiere a que los recursos del sistema estn accesibles para aquellos componentes que lo requieran, en el instante en que sea necesario. Confidencialidad es la proteccin que el sistema proporciona para no ser accesible por componentes no autorizados. Asimismo la confidencialidad debe proporcionar la suficiente seguridad a un componente, que los componentes con los que est trabajando son realmente los que l requera para trabajar, es decir, adems de evitar la intrusin, un sistema confiable debe proporcionar suficientes garantas para evitar la suplantacin. Finalmente la integridad se refiere a la proteccin que el sistema suministra contra la alteracin, ya sea accidental como provocada, de los datos que circulan por el sistema. Escalabilidad. Un sistema distribuido es escalable en la medida en que se pueden aumentar sus componentes si que esto conlleve una prdida de efectividad debida a los cambios. El objetivo final de un sistema, con respecto a la escalabilidad, es que apenas deben realizarse cambios en el mismo pese al aumento de los componentes. Normalmente es un gran logro que un sistema que se adapta a las necesidades de los componentes cuando la cantidad de estos cambia, no requiera de modificaciones. Soporte a fallos. Los componentes de un sistema distribuido pueden fallar y es normal que esos fallos antes o despus se produzcan. Un fallo en uno o varios componentes har que el resultado del sistema sea diferente o de menor calidad que el esperado, por ello la prevencin y tratamiento de los fallos es un aspecto que deber tener muy en cuenta un sistema distribuido. Algunas caractersticas que deben tener los sistemas distribuidos con respecto a los fallos son la deteccin, el enmascaramiento, la tolerancia y la recuperacin. La deteccin del fallo debe realizarse lo antes posible para evitar que los errores en el procesamiento tengan consecuencias colaterales en el resto de los componentes. Una vez detectado el fallo, ste debe enmascararse o atenuarse, es decir que aunque el fallo es conocido, los componentes no se ven afectados. La tolerancia a fallos implica que los componentes conozcan el fallo y reaccionen frente al mismo de una manera conocida y controlada. Finalmente la recuperacin es la fase en la que el sistema, una vez solucionado el fallo, vuelve a funcionar segn los requerimientos. Concurrencia. La concurrencia es la capacidad que tiene un sistema para que un recurso, pueda ser utilizado simultneamente. Realmente la simultaneidad puede no ser completa, sino a efectos de los componentes que acceden al recurso. La concurrencia supondr el uso de diversas estrategias de acceso al recurso con el objetivo de mantener la integridad de la informacin. Transparencia. La transparencia de un sistema es la ocultacin al usuario de los detalles que son propios de la gestin interna del sistema. De esta manera, los usuarios de un sistema no lo perciben con ms detalles que el estrictamente

7 de 38

Sistemas de comunicaciones necesario. La transparencia se logra de diversas maneras, pero fundamentalmente a partir del encapsulado de componentes y del uso de interfaces. A medida que un sistema distribuido de soporte a las propiedades anteriores sus componentes, y consiguientemente el sistema en su conjunto vern aumentada su eficiencia e incrementado su valor. Para poder proporcionar estas caractersticas, se deber realizar un esfuerzo considerable, tanto en el diseo, como en la monitorizacin, gestin y control del sistema, por lo que estos aspectos debern ser tratados con especial atencin en el desarrollo del sistema.

2.2 El papel de la calidad de servicio


Para lograr que un sistema distribuido cumpla unos requisitos adecuados, o lo que es lo mismo, que logre cumplir las caractersticas que se le requieren, es necesario determinar unos parmetros en los que basar las caractersticas. Estos parmetros, deben ser mesurables y representativos. En los sistemas distribuidos basados en componentes que ofrecen unos servicios a las aplicaciones que sobre ellos funcionan, los parmetros que se miden y permiten determinar el buen funcionamiento del sistema, se conocen como parmetros de calidad de servicio, se pueden observar en la figura 1.

Figura 1. Necesidad de las polticas de QoS en un sistema distribuido.

Los parmetros de calidad de servicio proporcionan un medio por el que poder tomar decisiones acerca de los componentes, y de los mismos servicios, del sistema. Para poder cumplir esos requisitos se debe gestionar los parmetros entre los componentes. La gestin, incluida la negociacin, de los parmetros de calidad de servicio entre los componentes se realiza por medio de polticas de calidad de servicio.

8 de 38

Sistemas de comunicaciones

3 Sistemas de comunicaciones
La topologa de las conexiones en las comunicaciones se refiere a cmo se conectan los componentes que se van a comunicar. Desde este punto de vista se pueden distinguir diversos modelos, tal como se describe en [Liu, 2004]. Para determinar el correcto mbito en el que se puede ubicar cada uno de los paradigmas de comunicaciones, se puede atender al contenido que es comunicado, que puede ser datos, cdigo o ambas cosas. En la tabla 1, se puede ver esta organizacin.
Tabla 1. Tipo de comunicacin en funcin del contenido que se transmite.
Contenido de la comunicacin Datos Cdigo No S No S No No S S Tipo de comunicacin No existe comunicacin. No hay transferencia de informacin, consecuentemente no es un paradigma de comunicacin. Comunicacin clsica. El cdigo del emisor enva la informacin al receptor por medio de los datos que el cdigo del receptor procesar. Cdigo mvil. El emisor transfiere cdigo al receptor, generalmente posteriormente se transfieren los datos a procesar. Movimiento de componentes. Se transfiere el cdigo y los datos con los que trabajar, por lo que normalmente se entiende como movimiento de procesos.

Los paradigmas de comunicacin que se presentan en [Liu, 2004] se pueden organizar en funcin del contenido en los tres grupos anteriores. El ms importante es el de las comunicaciones nicas de datos, donde se pueden ubicar prcticamente todos los paradigmas clsicos de comunicacin.

Figura 2. Paradigmas de comunicacin en funcin del movimiento de datos y de cdigo.

Cuando el contenido de los datos es cdigo, entonces se pasa a hablar de movilidad. La transferencia de cdigo precisa del soporte de comunicaciones de los paradigmas anteriores, y adicionalmente la infraestructura necesaria para la ejecucin del cdigo. En la figura 2, se puede observar la clasificacin de los paradigmas ms importantes de comunicaciones en funcin de la organizacin anterior.

9 de 38

Sistemas de comunicaciones Como se puede observar, en la transmisin de datos, hay tres grupos importantes, en funcin del papel que toman cada uno de los componentes de la comunicacin. Estos son, de menor a mayor complejidad, los pasos de mensajes, el modelo cliente-servidor y los sistemas de mensajera. Los esquemas de estos tres modelos pueden verse en la figura 3.

Figura 3. Modelos de comunicaciones basados en paso de mensajes.

El modelo de paso de mensajes es muy sencillo ya que la comunicacin la realizan los procesos directamente. El modelo cliente-servidor implica el uso de servicios especializados en conectar y recibir informacin. Finalmente el modelo basado en sistemas de mensajera, establece unos servicios comunes a los elementos de comunicacin. Realmente el paso de mensajes es la base de los modelos cliente-servidor y de los sistemas de mensajera, ya que todos ellos implican paso de mensajes. El modelo cliente-servidor introduce el concepto de proceso especfico servidor que ofrece unos servicios comunes a los procesos que son clientes de l. El modelo basado en un sistema de mensajera unifica cada nodo como cliente y servidor simultneamente, lo que implica que en todos los nodos se debe tener un proceso especializado en la comunicacin, que normalmente es comn en todos los nodos. En este ltimo caso suele hablarse de middleware a los procesos que intervienen en la gestin del sistema de mensajera [Gaddah and Kunz, 2003].

3.1 Paradigmas de comunicacin


3.1.1 Paso de mensajes
Es el paradigma ms sencillo de comunicacin a nivel de procesos. Consiste en que dos procesos se comuniquen con mensajes bsicos entre ellos. Un proceso enva una solicitud a otro que, al recibirla, puede generar una respuesta. Para este tipo de comunicacin, slo son necesarias dos operaciones de gestin de la comunicacin: conexin y desconexin, y dos operaciones de transferencia de la informacin: enviar y recibir. La programacin basada en sockets est basada en este paradigma.

3.1.2 Cliente Servidor


Cliente-Servidor. El paradigma cliente-servidor se basa en la asignacin de dos funcionalidades diferentes a cada uno de los componentes que se comunican. El proceso servidor proporciona una serie de servicios y espera la llegada de peticiones por parte de los clientes. En este modelo, el servidor tiene un papel pasivo, dedicndose a esperar las solicitudes de los clientes, que son los que toman el papel activo.

10 de 38

Sistemas de comunicaciones La mayor parte de los protocolos de Internet siguen este paradigma. El modelo clienteservidor abarca diferentes formas de implementacin, en funcin de los elementos que se comunican los clientes y los servidores. Se pueden distinguir los siguientes. Llamada a procedimiento remoto. Ms conocido por sus siglas en ingls RPC (Remote Procedure Call), este paradigma intenta tratar el software distribuido de la misma forma que el local, de manera que en lugar de comunicarse con un mensaje que contiene informacin, ste mensaje es una llamada a un procedimiento o funcin, de la misma manera que podra hacerlo en local. Esta llamada evita que los componentes deban conocer todos los detalles del procesamiento, dejando que cada uno de ellos comparta los procedimientos que al resto pueden serles de utilidad. El proceso que llama al procedimiento remoto, debe conocer la interfaz de la llamada para poder realizar el paso de argumentos de manera correcta. Al finalizar el procedimiento, el proceso invocado devuelve el resultado al proceso que realiz la llamada. Objetos distribuidos. Al igual que el paradigma de llamada a procedimiento remoto extiende el paradigma de programacin funcional a procesos distribuidos, el paradigma de objetos distribuidos extiende a un sistema distribuido el paradigma de programacin orientada a objetos. En este paradigma, las aplicaciones acceden directamente a objetos que se encuentran distribuidos en la red, de la misma manera que lo podran hacer a los locales. Para poder ser accedidos, los objetos deben proporcionar mtodos que sea posible invocar como servicios. A esta caracterstica del paradigma de objetos distribuidos se le conoce como Invocacin remota de mtodos o RMI (Remote Method Invocation) y es el componente principal del paradigma, funcionando de una manera muy similar a las llamadas a procedimientos remotos. Otros componentes son los servicios de red para el acceso a los objetos. El agente gestor de peticiones a objetos, ms conocido como object middleware y el espacio de objetos. Componentes distribuidos. Los servicios de componentes son una extensin del modelos de objetos, pero ampliado a la programacin basada en componentes. En ocasiones, el modelo de componentes se incluye dentro del paradigma de objetos distribuidos ya que, tanto objetos como componentes coinciden en esquemas y patrones de actuacin. El modelo de componentes es ms una tecnologa y aplicacin prctica que un modelo en s, lo que hace que cada fabricante tenga sus propios esquemas. Existen varias tecnologas basadas en este modelo; entre ellas cabe destacar, debido a su difusin, Microsofts COM y su versin distribuida Microsoft DCOM, Java Bean, y Enterprise Java Bean (EJB). Realmente estas tecnologas son libreras de objetos diseadas especficamente para la interaccin de los mismos de manera distribuida. Por ello la diferenciacin entre el paradigma de objetos distribuidos y el de componentes distribuidos es escasa. Servicios distribuidos. A partir de las arquitecturas de sistemas distribuidos, basados en componentes, cada componente puede ofrecer al resto del sistema una serie de servicios. El conjunto de los servicios ofrecidos conforma el paradigma de servicios distribuidos.

11 de 38

Sistemas de comunicaciones

3.1.3 Sistemas de mensajera


Sistema de mensajes. Los sistemas de mensajes, constituyen un paradigma basado en una capa intermedia (middleware) que gestiona el paso de mensajes entre componentes. Por ello, se suele hablar de una capa intermedia del paradigma de paso de mensajes. El nombre ms conocido de este paradigma es Message-Oriented Middleware (MOM). Existen dos modelos de implementacin de este paradigma: punto a punto (point to point) y publicacin/suscripcin (publish/subscribe). En el modelo punto a punto, el sistema de mensaje emplea colas que permiten desacoplar el emisor del receptor. Cuando un componente desea enviar un mensaje a otro, deposite el mensaje en la cola del receptor (lo que implica conocerlo) y se desentiende del mensaje. En el modelo de publicacin/suscripcin, cada mensaje es asociado a un evento especfico, de manera que los componentes que estn interesados en recibir los mensajes asociados al evento, se suscriben al mismo. El sistema de mensajes es el responsable de la gestin completa de los mensajes. peer to peer. Con algunos conflictos en la traduccin, suele hablarse de modelo entre pares, o entre iguales. En este paradigma las funcionalidades de cada componente son las mismas. En este caso las operaciones que puede hacer cada componente son: solicitud y respuesta. Protocolos como VoIP, usado por skype, estn basados en este paradigma. Generalmente se suele combinar este paradigma con el de cliente servidor para establecer las conexiones. Publish-subscriber. Este modelo soporta las comunicaciones de un emisor a muchos receptores con soporte a la redundancia tanto en las publicaciones, como en los receptores que se suscriben a las fuentes de informacin.

3.1.4 Transmisin de cdigo


Paralelamente al movimiento de datos hacia los nodos de ejecucin se puede plantear la posibilidad de mover el cdigo hacia los datos o mover tanto datos como cdigo. Cada uno de estos casos es un paradigma que se puede enmarcar dentro de la transmisin de cdigo. En el caso de mover slo cdigo suele hablarse de cdigo mvil, en el caso de mover cdigo y datos ya se pasa a hablar de objetos, componentes o agentes mviles, dependiendo del paradigma de programacin en el que se trate. Cdigo mvil. En todos los paradigmas anteriores, la informacin que se transmita en la red del sistema distribuido eran eventos y datos orientados a que un componente externo ofreciese alguna funcionalidad. Sin embargo, el conocimiento acerca del procesamiento de los datos, el cdigo, deba residir previamente en el componente al que se le solicitaba que realizase alguna accin. En el paradigma de cdigo mvil, lo que se transmite, de manera complementaria a los datos, es el cdigo. Esto supone un paso ms en la abstraccin del sistema distribuido. La posibilidad de que parte del conocimiento pase de un componente a otro introduce nuevas posibilidades en cuanto al aprendizaje y evolucin del sistema. Objetos y componentes mviles. El cdigo puede viajar con los datos para ser procesados (cdigo + estado) o bien con ms informacin relativa a la ejecucin en el nodo (cdigo + contexto).

12 de 38

Sistemas de comunicaciones Agentes mviles. El modelo de agentes distribuidos surge de manera paralela a la programacin basada en agentes. Es similar al paradigma de objetos distribuidos (y por analoga al de componentes distribuidos), y se caracteriza por estar basado en la tecnologa de agentes. Los agentes son una abstraccin mayor que los objetos y componentes. Los agentes interactan entre ellos intercambiando informacin y reaccionando a eventos de manera que son completamente independientes llegando a apreciarse comportamientos en la forma de actuar.

3.2 Modelos de sistemas de comunicaciones


En la mayor parte de los paradigmas vistos anteriormente de comunicacin en los sistemas distribuidos debe existir un mdulo de conectividad que permita la interconexin de los componentes. Cuando ste mdulo no pertenece a las aplicaciones que comunican, se le conoce como middleware. La traduccin literal del trmino es elementos de en medio, algunos autores hacen una traduccin completa y hablan de soporte lgico de intermediacin, aunque suele aceptarse el trmino software de conectividad aunque est asimilado el trmino en ingls. La capa intermedia suele ser un software que se sita entre los servicios de la red y las aplicaciones; esta capa est encargada de proporcionar diversos servicios, necesarios para aumentar la efectividad de la comunicacin, entre ellos estn la identificacin, autenticacin, autorizacin, la estructuracin jerrquica y movilidad. Actualmente se pueden localizar desde libreras que dan soporte a la comunicacin de forma sencilla, como IPC, DCE o MPI que no definen en s mismas una arquitectura pero ofrecen el sistema de intercambio de mensajes bsico, hasta sistemas comerciales que encapsulan la arquitectura y ofrecen un entorno de desarrollo completo, como Apache ActiveMQ, o IBM Web Sphere MQ que dan un soporte a colas de mensaje con una potencia muy grande. Los sistemas de comunicacin pueden ofrecer la comunicacin, por medio de diversos paradigmas, generalmente encapsulndolos en niveles superiores. Existen una gran cantidad de entornos de herramientas que dan soporte a las comunicaciones en los sistemas de control inteligente. Algunos de los entornos son genricos y se emplean la comunicacin de una gran cantidad de sistemas distribuidos, mientras que otros son especficos de una arquitectura de control. A continuacin se realiza una revisin de los principales entornos de comunicaciones, tanto genricos como especficos y se encuadran en alguno de los paradigmas presentados anteriormente.

3.2.1 TCX
TCX [Fedor, 1994] es el sistema de comunicaciones que da soporte a la arquitectura TCA (Task Control Architrecture) desarrollado a partir de 1990 por Chris Fedor en la Universidad de Carnegie Mellon. Es un sistema de comunicaciones basado en el modelo de paso de mensajes, que ha sido empleado en una gran cantidad de sistemas de control inteligente, especialmente en sistemas de navegacin de robots, y que ha dado lugar a un producto [Fong, 1998], comercializado como FPT (Fourth Planet Communication) aplicado en diversos robots en la Universidad de Carnegie Mellon [Fong et al., 2001]. TCX est escrito en C, funciona a partir de sockets sobre TCP/IP y se encuentra disponible para una gran cantidad de plataformas. TCX se emplea para dar soporte, tanto al modelo cliente/servidor como al de publicacin/suscripcin.

13 de 38

Sistemas de comunicaciones El componente principal es un servidor al que se conectan todos los mdulos, este servidor funciona como un mdulo ms dentro de la arquitectura. El servidor mantiene las colas de mensajes, creando una cola por cada mdulo que se inicializa, y que sirve de identificador del mdulo de comunicaciones. La evolucin de TCX son los sistemas IPT, RTC e IPC.

3.2.2 IPT
IPT (Inter-Process Toolkit) es un sistema de comunicaciones basado en el modelo de paso de mensajes, desarrollado por Jay Gowdy a partir del modelo establecido por TCX e incrementando su funcionalidad, lo que hace que TCX sea un subconjunto de IPT. Est orientado a la investigacin en el control de robots [Gowdy, 1996]. En la figura 4, se puede observar un esquema del funcionamiento. La comunicacin acerca de la estructura del sistema distribuido la realizan los servidores IPT. Los servidores proporcionan a los componentes, organizados en dominios, la informacin necesaria para localizar los mdulos necesarios para comunicarse. Las transferencias de datos la realizan los componentes directamente entre ellos, aunque es necesaria la intervencin de los servidores IPT para registrar los mensajes.

Figura 4. Arquitectura de comunicaciones IPT.

IPT est escrito en C++, y emplea sockets sobre TCP/IP para las comunicaciones de red. IPT extiende el concepto de servidor que tena TCX, el resultado es un sistema donde los mdulos mantienen una comunicacin punto a punto. El servidor IPT proporciona principalmente dos servicios: el primero es conectar mdulos a partir de una tabla de enrutamiento que abstrae los componentes de los detalles de la red, y como segundo servicio proporciona un espacio para convertir los nombres de los mensajes en nmeros nicos con los que trabajar. Cada cliente, se registra en el servidor y determina una serie de rutas en las que est interesado.

3.2.3 RTC
RTC (Real-Time Communications) est desarrollado por Jorgen Pedersen [Pedersen, 1998] para dar soporte a diversos proyectos de robots de NREC (National Robotics Engineering Consortium) en la Universidad de Carnegie Mellon. RTC es un sistema de comunicaciones muy similar a IPT, extendiendo su funcionalidad con el soporte a memoria compartida y a tiempo real. En cuanto a esquema y componentes no difiere mucho de IPT (figura 5).

14 de 38

Sistemas de comunicaciones

Figura 5. Arquitectura de comunicaciones RTC.

La diferencia fundamental con IPT es que en RTC los mensajes se envan directamente entre componentes, una vez han gestionado la localizacin y las colas en el servidor. El fundamento del soporte a tiempo real del sistema es el desdoblamiento del medio en que se envan los mensajes, de manera que los mensajes de tiempo real se comunican va memoria compartida, mientras que el resto de mensajes se comunican por medio de los protocolos de red.

3.2.4 IPC
IPC (Inter Process Communication) la desarroll Reid Simmons [Simmons and James, 2001] para la misin Deep Space 1 del programa New Millennium de la NASA, aunque finalmente no se emple, s que es usado por una gran cantidad de proyectos de la Universidad Carnegie Mellon y la NASA. Proporciona soporte tanto para mensajes centralizados como para mensajes peer to peer, tambin tiene soporte a tiempos y mejora el paso de mensajes que realizaba el sistema bsico de TCX. IPC aade a las arquitecturas anteriores el concepto de servidor centralizado, por medio del cual el mdulo de control se comunica directamente con los mdulos de comunicaciones (figura 6).

Figura 6. Arquitectura de comunicaciones IPC.

15 de 38

Sistemas de comunicaciones IPC es una librera que requiere un servidor central al que suscribirse los mdulos de comunicacin de los procesos que requieren recibir los mensajes a los que se han suscrito. Adems se tiene un mdulo de control con diferentes funcionalidades entre las que se encuentran las de sincronizacin temporal, envo de mensajes para sincronizacin de tareas de tiempos limitados y similares.

3.2.5 NML
NML (Neutral Messaging Language) es un paquete de servicios de comunicaciones basado en la informacin [Shackleford et al., 2000]. Est diseado en el National Institute of Standards and Technology (NIST). En la figura 7, pueden verse los componentes bsicos de funcionamiento. El componente principal es un buffer de memoria compartida, en la que los productores de informacin escriben sus datos y los consumidores los leen.

Figura 7. Arquitectura de comunicaciones NML.

En los casos en los que es posible, se emplea la tecnologa de memoria compartida, mientras que si se debe realizar la transferencia de informacin a travs de una red, se debe emplear un servidor que gestiona las lecturas y escrituras. Inicialmente se ha desarrollado para las comunicaciones entre robots basados en mensajes sncronos, aunque tambin tiene un soporte a los mensajes asncronos. Actualmente se emplea en la arquitectura NASREM. El sistema permite cambios en la configuracin, pero no mientras est realizando transferencias.

3.2.6 MPI
Message Passing Interface (MPI) o Interfaz de Paso de Mensajes, es un protocolo estndar de paso de mensajes para ser utilizado entre procesadores con el objetivo de realizar procesamiento paralelo. El protocolo se ha extendido a otros mbitos aparte del interior de los computadores. Se debe destacar que MPI no define una arquitectura sino un protocolo de comunicacin, que bsicamente considera una red de nodos iguales con intercambio de mensajes entre ellos. Entre las caractersticas ms relevantes de MPI estn la sencillez de los mtodos, el control de tiempo real y la gran extensin ya que todos los sistemas operativos suelen dar soporte a la comunicacin entre procesos por medio de sta interfaz. Se debe destacar que MPI tiene una capacidad de portabilidad y escalabilidad muy grande, desde los sistemas multiprocesadores a los sistemas distribuidos, considerando cada nodo un sistema de procesamiento que se comunica con el resto.

3.2.7 ACE
ACE (Adaptive Communication Environment, es un entorno de cdigo abierto orientado a C++ iniciado por Douglas C. Schmidt en la Universidad de California Irvine 16 de 38

Sistemas de comunicaciones [Schmidt, 1993]. De este sistema destaca el hecho de estar basado en patrones de diseo [Gamma et al, 1994]. Los patrones de diseo son patrones de soluciones aplicables a situaciones similares en la implementacin de software. Uno de los objetivos principales de los patrones de diseo es ofrecer un esquema de actuacin reutilizable en diferentes situaciones a lo largo del proceso de diseo del software. Los patrones de diseo en los que se basa ACE son los siguientes. Conviene revisar la bibliografa correspondiente para comprender el funcionamiento de algunos y su inclusin en un modelo de objetos distribuidos, ya que algunos no estn incluidos en los 23 patrones estndares de facto. Patrones de manejo de eventos (Event Handling Patterns): Reactor, AcceptorConnector, Pro-actor, Items de finalizacin asncrona (Asynchronous Completion Token) Patrones de sincronizacin (Synchronization Patterns): Scoped Locking, Strategized Locking, Thread-Safe Interface, Double-Checked Locking Optimization. Patrones de concurrencia (Concurrency Patterns): Thread-Specific Storage, Monitor Object, Active Object, Half-Synch/Half-Asynch, Leader/Follower. Patrones de servicio de acceso y configuracin (Service Access and Configuration Patterns): Component Configurator, Interceptor, Extension Interface, Wrapper Facade.

ACE proporciona tipos comunes de datos y de mtodos, lo que hace que pueda considerarse un sistema basado en un modelo de objetos distribuidos. Proporciona una forma estandarizada para una gran cantidad de sistemas operativos que permite, entre otros aspectos, gestionar la comunicacin entre procesos, gestin de threads y de memoria. Actualmente es empleado en multitud de proyectos comerciales de Motorola o Boeing.

3.2.8 CORBA
En los paradigmas orientados a objetos, la unidad bsica sobre la que se disea el sistema es el objeto a transmitir. En los paradigmas anteriores la base del sistema era la informacin, sin embargo un objeto contiene la informacin (atributos) y unas capacidades de procesamiento (mtodos). El hecho de que los objetos encapsulen la mayor parte de su funcionalidad hace que sea ms sencillo invocar una accin de un objeto que ejecutar un procedimiento como se haca en RPC, por tanto la abstraccin que debe realizar el sistema en estos casos es mucho mayor. El mejor de los referentes de estos sistemas es la arquitectura CORBA (Common Object Resource Broker Architecture) [OMG, 1991].

17 de 38

Sistemas de comunicaciones

Figura 8. Arquitectura de comunicaciones CORBA.

La ltima de las especificaciones CORBA [OMG, 1995] ha sido desarrollada por la Organizacin Internacional OMG (Object Management Group). OMG se fund en 1989 y est formada por un consorcio de 800 empresas. CORBA permite el desarrollo de software para entornos distribuidos heterogneos separando la especificacin de las aplicaciones de su implementacin. Los componentes y el funcionamiento pueden observarse en la figura 8. La especificacin de una aplicacin u objeto constituye su interfaz (ORB interface), que es independiente del lenguaje de desarrollo e indica el conjunto de servicios ofrecidos al resto de aplicaciones u objetos y la forma de invocarlos. CORBA proporciona un lenguaje estndar para definir interfaces independiente del lenguaje de programacin llamado OMG IDL o CORBA IDL (Interface Definition Language). Los procesos cliente emplean dicha interfaz para comunicarse entre ellos. Para realizar dicha comunicacin se emplea un ncleo importante de la arquitectura que es el ORB (Object Request Broker) Process que es el encargado de gestionar y sincronizar todas las comunicaciones. Como arquitectura, CORBA tiene una gran variedad de implementaciones ya que se ha estandarizado como modelo de objetos distribuidos. De entre las implementaciones destacar (por orden alfabtico): Borland Visibroker [Visigenic, 1998] como sistema comercial lo inici la empresa Visigenic que posteriormente compr Borland. Existen diferentes versiones en funcin del lenguaje orientado a objetos que se desee emplear: VisiBroker for Java, VisiBroker for C++ compatible por completo con ANSI C++, finalmente VisiBroker Smart Agent proporciona un sistema dinmico distribuido con servicio de nombres, directorios, soporte a tolerancia de fallos y ajuste de carga del sistema. JacORB. Es una plataforma CORBA implementada completamente en JAVA y de libre distribucin. Es de especial inters ya que implementa las polticas de calidad de servicio de DDS, modelo que se ver ms adelante. La compaa PrismTech da soporte comercial a la distribucin. Orbix [Iona, 1997]. Es un producto comercial que implementa la especificacin de CORBA, actualmente comercializado por la compaa IONA. TAO [Schmidt et al., 1998] es una implementacin de CORBA con soporte a tiempo real. El nombre es el acrnimo de The Ace ORB. Es la evolucin de ACE, proporcionando adems un inicio de calidad de servicio entre componentes. Actualmente hay versiones para diversos sistemas operativos.

18 de 38

Sistemas de comunicaciones Cabe destacar que diversos componentes de CORBA se emplean habituamente como parte de otros entornos de desarrollo de sistemas distribuidos. Como ejemplo ms paradigmtico de esto est OpenFusion que ana parte de la implementacin TAO con el enriquecimiento de mdulos de CORBA y la ampliacin con sistemas de calidad de servicio o de tolerancia a fallos. OpenFusion lo gestiona PrismTeche, empresa dedicada tambin a comercializar el modelo DDS, que se ver a continuacin.

3.2.9 DDS
Data Distribution Service for Real-time Systems (DDS) es una especificacin de sistema de publicacin y suscripcin con soporte a tiempo real, que complementa a CORBA. La especificacin corresponde a OMG (Object Management Group). Las primeras especificaciones provienen de 2003, y actualmente hay una versin de enero de 2007. DDS se trata de un sistema de comunicaciones basado en la informacin ms complejo que los anteriores. El paradigma que emplea es el de productores y consumidores (figura 9), aunque no se distinguen entre ellos, y todos estn encapsulados por medio de mdulos. Este encapsulado hace que los productores desconozcan donde se consume la informacin que envan al sistema, y de manera anloga, los consumidores desconocen dnde es producida la informacin. Aunque el origen fsico de la informacin se desconozca, s que se conoce el origen lgico de la misma, ya que los consumidores se registran (o suscriben) a un agente de comunicaciones que es el encargado de gestionar las mismas.

Figura 9. Arquitectura de comunicaciones DDS.

La fiabilidad de las comunicaciones es responsabilidad del agente DDS. Los cambios en la topologa del sistema se pueden realizar cuando este est funcionando, lo que le confiere cierta potencia en comparacin con los sistemas anteriores, donde la configuracin del mismo era esttica a lo largo de todo el proceso. La especificacin describe dos niveles de interfaces [Houston, 1998]. El ms bajo, y obligatorio si se quiere cumplir con la especificacin, es el DCPS (Data-Centric Publish-Subscribe), y tiene el objetivo de proporcionar la eficiencia en la entrega correcta de la informacin a los destinatarios. La segunda de las capas, es DLRL (Data Local Reconstruction Layer); es una capa opcional que tiene como objetivo integrar DDS en la capa de aplicacin. De entre los componentes importantes de DDS cabe destacar los siguientes. DomainParticipantFactory. Es una instancia nica del punto de entrada para las aplicaciones que empleen los servicios de DDS.

19 de 38

Sistemas de comunicaciones DomainParticipant. Es el punto de entrada de las compunicaciones para un dominio concreto. Representa a la aplicacin que emplea DDS dentro de un dominio especfico y proporciona los componentes de DDS necesarios para la comunicacin. Topic. Instaciacin de un componente TopicDescription, que es la descripcin bsica de un dato que puede ser publicado y al que se pueden suscribir otros componentes. ContentFilteredTopic o MultiTopi. TopicDescription especializados. Publisher. Objeto responsable de la diseminacin de datos cuando estos deben ser publicados. DataWriter. Objeto que permite a una aplicacin instanciar un valor de un dato para que sea publicado por un Topic. Subscriber. Objeto responsible de la rececpcin de los datos resultante de las suscripciones. DataReader. Objeto que permite a la aplicacin declarar los datos en los que est interesada recibir informacin (creando una subscripcin usando un Topic, ContentFilteredTopic o MultiTopic) y accede a los datos recibidos usando un Subscriber asociado. NDDS [RTI, 1999] con origen en los sistemas de tiempo real [Castellote et al., 1997], siendo actualmente uno de los entornos de desarrollo de DDS ms empleados. Proyecto Open DDS [Busch, 2007], en el que se ofrece una implementacin de cdigo abierto en C++ del modelo DDS. El soporte comercial lo ofrece la compaa Object Computing, Inc. OpenSplice [PrismTech, 2007]. Es la distribucin del modelo DDS que realiza la empresa PrismTech. El sistema que ofrecen est muy probado y se vende como sistema de comunicaciones para misiones crticas. MilSOFT DDS [MilSOFT, 2006]. Desarrollado por la empresa del mismo nombre, es un sistema DDS con soporte para JAVA, a travs de la capa JNI.

Como arquitectura, DDS tiene diversas implementaciones, entre ellas destacan:

Se puede apreciar que DDS tiene una difusin muy similar a CORBA, eso se debe a que DDS es un enriquecimiento de CORBA, tal como destaca la OMG en su descripcin del modelo de comunicaciones. La gran ventaja sobre CORBA est en la estandarizacin de las polticas de calidad de servicio y en la gran simplicidad del modelo DDS frente a CORBA.

3.2.10 MSMQ
MSMQ es una herramienta de Microsoft para realizar el manejo de colas de mensajes. La misma viene con Windows NT/2000 y cuenta con una interfaz que permite escribir programas en lenguaje C o utilizando componentes COM para realizar el envo y recepcin de mensajes [Lewis, 1999]. MSMQ provee otras funcionalidades como ser la autenticacin y el encriptado de mensajes, y el uso de transacciones externas, por ejemplo administradas por SQL Server, lo que facilita la implementacin de las aplicaciones que utilizan la cola de mensajes como forma de realizar sus tareas. Adems 20 de 38

Sistemas de comunicaciones se cuenta con la herramienta MSMQ Triggers que permite disparar procesos cada vez que un mensaje con ciertas caractersticas llega a la cola. La definicin de los triggers permite disparar los procesos por ejemplo cuando la etiqueta o el cuerpo del mensaje contienen determinado texto; cuando la prioridad del mensaje es igual, mayor o menor a cierto valor; cuando el usuario que enva el mensaje es un usuario determinado. Los componentes y el esquema de funcionamiento pueden verse en la figura 10.

Figura 10. Arquitectura de comunicaciones MSMQ.

Para acceder a una cola en .NET existe una API llamada System.Messaging. Inicialmente est pensada para trabajar con MSMQ pero realmente la API es extensible para soportar otros sistemas basados en colas. System.Messaging proporciona clases que permiten conectar, supervisar y administrar las colas de mensajes en la red, as como enviar, recibir o leer mensajes. La clase principal de System.Messaging es MessageQueue. Los miembros de la clase MessageQueue incluyen diversos mtodos para leer y escribir mensajes en la cola. Send. El mtodo Send permite a la aplicacin escribir mensajes en la cola. Las sobrecargas del mtodo permiten enviar el mensaje con una clase Message (que proporciona un control exhaustivo sobre la informacin enviada) o cualquier otro. Receive. Los mtodos Receive, ReceiveById, y ReceiveByCorrelationId proporcionan funciones para leer los mensajes de una cola. Al igual que el mtodo Send, estos incluyen sobrecargas compatibles con el procesamiento de colas transaccionales. Dichos mtodos ofrecen adems sobrecargas con parmetros de tiempo de espera que permiten que el proceso contine si la cola est vaca. Dado que dichos mtodos son ejemplos de procesamiento sincrnico, estos interrumpen el subproceso actual hasta que haya un mensaje disponible, salvo que se especifique un tiempo de espera. Peek. El mtodo Peek se asemeja a Receive, aunque no quita un mensaje de la cola una vez que se haya ledo. Dado que Peek no modifica el contenido de la cola, existen dos sobrecargas que admiten procesamiento transaccional. Sin embargo, como Peek y Receive leen los mensajes de la cola sincrnicamente, las sobrecargas del mtodo permiten que se especifique un tiempo de espera para impedir que el subproceso espere de forma indefinida.

Los mtodos BeginPeek, EndPeek, BeginReceive y EndReceive ofrecen formas de leer los mensajes de la cola asincrnicamente. No interrumpen el subproceso actual mientras esperan a que llegue un mensaje a la cola. 21 de 38

Sistemas de comunicaciones Otros mtodos de la clase MessageQueue proporcionan funciones para recuperar listas de colas segn los criterios especificados y averiguar si determinadas colas existen. GetPrivateQueuesByMachine permite recuperar las colas privadas de un equipo. Los mtodos derivados de Get, son GetPublicQueuesByCategory, GetPublicQueuesByLabel y GetPublicQueuesByMachine que ofrecen algunas formas de recuperar las colas pblicas segn unos criterios comunes. Una sobrecarga de GetPublicQueues ofrece mayor nivel de detalle para seleccionar las colas segn una serie de criterios de bsqueda. Finalmente, otros mtodos de la clase MessageQueue son los que crean y eliminan colas de Message Queue Server, utilizan un enumerador de mensajes para desplazarse entre los mensajes de una cola, utilizan un enumerador de cola para iterar las colas del sistema, mtodos para establecer derechos de acceso o para trabajar directamente con el contenido de las colas.

3.2.11 JMS
Java Message Service aparece con el objetivo de aislar de las interfaces y de la configuracin del servicio de mensajera. En la especificacin J2EE, JMS proporciona las interfaces para la comunicacin por medio del servicio de mensajera JAVA [Hapner et al., 2002].

Figura 11. Arquitectura de comunicaciones JMS.

JMS Admite tanto mensajes punto a punto, como de publicacin/suscripcin (figura 11). Cuando un mensaje es slo entre un emisor y un receptor, se emplea el dominio punto a punto. En este modelo, para asegurar que un mensaje llega al receptor, aunque ste no est disponible, se encola el mensaje en una cola FIFO para ser recibido por el destinatario cuando ste est accesible. Cuando el mensaje puede provenir de diferentes fuentes hacia diferentes destinos se emplea el dominio de publicacin/suscripcin. En el modelo de publicacin/suscripcin se tienen varios clientes que pueden publicar informacin (tpicos) o eventos y otros que se suscriben a esos tpicos. Ambos modelos pueden ser sncronos mediante el mtodo receive() y asncronos por medio de un MessageListener que es el responsable de escuchar los posibles cambios en los tpicos a los que se suscriba un cliente. Las aplicaciones JMS constan de tres elementos principales. Objetos administrados: Objetos JMS que gestionan la conexin y los mensajes. Mensajes: informacin que intercambian los clientes JMS.

22 de 38

Sistemas de comunicaciones Clientes JMS. Son las aplicaciones que envan o reciben mensajes empleando JMS.

Los objetos administrados son los elementos que emplea JMS para enviar y recibir mensajes a travs de JMS. Estos objetos son los que deben implementar las interfaces JMS y estn situados en JNDI (Java Naming and Directory Interface) para que cualquier cliente pueda solicitar el uso de cualquier objeto administrado. Hay dos tipos de objetos administrados. ConnectionFactory: Se emplea para crear una conexin al proveedor del sistema de mensajes. Destination: Son los destinos de los mensajes que se envan y a su vez el contenedor de los mensajes que se reciben.

Los mensajes estn formados por tres elementos: Header (cabecera), Properties (propiedades) y body (cuerpo del mensaje). La cabecera contiene una serie de campos que permiten a los proveedores y a los clientes identificar las caractersticas generales de los mensajes con los que trabajan. Las propiedades un conjunto de caractersticas de cada mensaje en particular. Finalmente el cuerpo del mensaje es el contenedor de la informacin que se desea intercambiar. El cuerpo puede ser de diferentes tipos. StreamMessage: Contiene una cadena secuencial de datos que la aplicacin debe conocer. MapMessage: Contiene campos con pares nombre-valor. TextMessage: Contiene una cadena de caracteres. ObjectMessage: Contiene un objeto que implemente la interfaz serializable. BytesMessage: Contiene una cadena de bytes.

Se considera clientes en JMS tanto a los componentes que suministran los mensajes, como a los que los reciben. Para poder comunicarse todos deben seguir unos pasos muy concretos. 1. Solicitar, a travs de JNDI, un objeto del tipo ConnectionFactory. 2. Conseguir, por medio de JNDI, un destino a travs de un objeto Destination. 3. Usar el ConnectionFactory para conseguir un objeto Connection. 4. Usar el objeto Destination para crear un objeto Session. Una vez creados los objetos, se pasa al intercambio de mensajes. Como se trata de intercambio de informacin entre objetos, ya no hay una aplicacin que enva y otra que recibe, sino que son varias las aplicaciones que reciben los mensajes, en concreto aquellas que estn suscritas a la cola a la que se envan los mensajes desde un objeto especfico. JMS est ampliamente extendido ya que, como sistema muy ligado a JAVA es de gran inters cuando se busca la compatibilidad. Existen gran cantidad de productos que soportan JMS, pero entre ellos cabe destacar Active MQ de Apache por la importancia de la compaa y la amplia implantacin como servidor. JMS se emplea como sistema de mensajera de soporte al sistema de colas. Sun Microsystems tiene su propia implementacin Sun Java System Message Queue (SJSMQ).

23 de 38

Sistemas de comunicaciones

3.2.12 MidArt
MidArt [Mizunuma et al., 1996] es el acrnimo de Middleware and network Architecture for distributed Real-Time systems. MidArte trata de simplificar la complejidad inherente en CORBA, aislando a las aplicaciones de los detalles de la red y proporcionando transacciones en tiempo real. Para ello organiza el sistema en tres capas con funciones especficas. Cada capa se compone de diversos mdulos. Capa de gestin. Es la capa responsable de las interacciones entre los programas que se ejecutan en diferentes nodos, y que no precisan de soporte de tiempo real en sus transacciones. Se compone de un nico mdulo, Global Manager (GM), que a su vez tiene dos componentes: el Global Server (GS) y el Global Connection Admission Control (GCAC). Capa de aplicacin. Tiene un nico componente, el Application Programming Interface (API), es una librera que permite a las aplicaciones invocar los servicios de MidArte. Capa de intermediacin o middleware. Tiene un nico componente, el Local Server Process (LSP), que se compone de diversos mdulos: Local Sever (LS), Real-Time Channel based Reactive Memory (RT-CRM), Selective Channels (SC), Scheduler, Fault Tolerance y Local Connection Admission Control (LCAC).

MidArt se caracteriza por la simplificacin y el reparto de las tareas de la comunicacin de forma organizada y bien definida en mdulos, componentes y capas. Las libreras de desarrollo estn orientadas a objetos y los componentes que implementan las capas son objetos instanciados a partir de las clases que proporciona la librera. Por ello puede considerarse que el sistema es orientado a objetos, aunque distribuya mensajes entre ellos.

3.2.13 Jini
Jini no son unas iniciales, aunque al estar relacionado con JAVA suele encontrarse alguna interpretacin de las siglas. Jini es una extensin de JAVA cuyo objetivo es facilitar la integracin de sistemas distribuidos. Jini se basa en el principio del ofrecimiento y uso de servicios en un sistema distribuido, entendindose como servicio desde un hardware hasta una aplicacin concreta, pasando por el concepto clsico de servicio. Los servicios se agrupan en entidades llamadas federaciones, que realmente son federaciones de mquinas virtuales de JAVA. Los orgenes de JINI son similares a los de JAVA, a partir del ao 1994 comienzan a ser necesarias las transacciones entre procesos con localizaciones separadas en la red. Los conceptos bsicos y componentes que se encargan de proveer dichas caractersticas son los siguientes. Servicios. Es el concepto bsico de JINI, prcticamente todo se considera un servicio: dispositivos, datos, almacenamiento, procesamiento de datos como filtrado o los clculos realizados con los datos. En definitiva, todo aquello que pueda ser til para un usuario u otros servicios. Servicio Lookup. Mtodo por el que se localizan los servicios disponibles en una comunidad JINI. Es el punto de inicio y de interaccin entre un servicio y un usuario de dicho servicio.

24 de 38

Sistemas de comunicaciones RMI: Remote Method Invocation. RMI es el RPC de JAVA que trabaja a nivel de objetos. Seguridad. Se basa en un modelo de lista de control que valida, permite accesos y supervisa las acciones de los servicios. Asignaciones de tiempos, o mtodos por los que se asigna el tiempo a los recursos de los servicios y a los servicios. En el modelo de JINI se permite la exclusividad en el uso de un recurso durante un periodo de tiempo. Transacciones Son protocolos para el envo de mensajes entre servicios. Las operaciones entre uno varios servicios se pueden aunar en una sola transaccin. Eventos Los eventos, no podan faltar en un sistema as. En este caso adems, el sistema debe ser capaz de soportar eventos distribuidos. Si un nuevo dispositivo se une a la federacin Jini, si un servicio desea notificar algo a un usuario,.. en muchas circunstancias los la notificacin de eventos remotos resulta indispensable.

El hecho de trabajar con servicios, implica que los principales componentes de un sistema basado en JINI son el servidor, el cliente y las interacciones entre ellos. Uno de los puntos fuertes en los que se basa sta tecnologa es en la ligereza del cdigo que implementa el ncleo de JINI, es del orden de 40KB en la versin actual. Emplear un ncleo muy sencillo tiene la ventaja de poder ser empotrado en casi cualquier dispositivo, desde grandes computadores a pequeos procesadores con capacidad muy limitada.

3.2.14 DCE
Distributed Computing Environment (DCE), OSF DCE es un conjunto de servicios que puede utilizarse separadamente o en combinacin, en ambientes de desarrollo de computacin distribuida. Los servicios son los siguientes: Servicio de llamada a procedimiento remoto o DCE Remote Procedure Call (DCE RPC). Servicio de Directorios o DCE Directory Service, que permite a usuarios y aplicaciones almacenar, retener y manipular informacin. Servicio de seguridad o DCE Security Service Servicio de manejo de hilos o DCE Threads. Servicio de tiempo o DCE Distributed Time. Sistema de archivos distribuido o DCE Distributed File System (DCE DFS). Servicio de soporte para computadoras sin disco local o DCE Diskless Support Service. Servicio de integracin a computadoras personales.

DCE RPC es utilizado como nico mecanismo de comunicacin entre el cliente y el servidor en otros servicios que componen DCE que no pertenezcan al modelo. Actualmente DCE es distribuida bajo la licencia LGPL por la organizacin The Open Group. Tambin existen una serie de distribuciones comerciales de DCE de IBM o HP.

25 de 38

Sistemas de comunicaciones

3.2.15 El caso Microsoft: DDE, OLE, COM, DCOM y .NET


Un ejemplo de la evolucin de los sistemas de comunicaciones dentro de la misma empresa es el caso de Microsoft, donde se ha ido evolucionando desde un modelo sin soporte a la distribucin basado en el paso de mensajes hasta un modelo de distribucin de componentes. En la figura 12, se puede ver cmo cada modelo ha ido progresando, en paralelo con los intentos de estandarizacin en los que Microsoft participaba.

Figura 12. Evolucin comparativa de las arquitecturas de Microsoft.

El sistema inicial de comunicaciones del que parten los sistemas operativos de Microsoft es el DDE (Dynamic Data Exchange) consistente en el paso de mensajes entre aplicaciones en forma de mensajes, lo que implica el mantenimiento de un servidor DDE. Algunas aplicaciones continan emplendolo, aunque normalmente ya no se emplea ya que cualquiera de las tecnologas posteriores proporciona mejores prestaciones. Para el soporte de sistemas distribuidos hay una versin llamada NetDDE que no es ms que el uso de comandos DDE sobre las tecnologas posteriores El siguiente paso en la comunicacin de procesos es la tecnologa OLE (Object Linking and Embedding), los cambios que incluye con respecto a DDE son el uso de la tecnologa de objetos, la posibilidad de mantener dinmicamente los enlaces entre aplicaciones y el uso del concepto de incrustar objetos dentro de otra aplicacin con la posibilidad de intercambiar informacin con el origen de forma dinmica. En 1996 la versin 2 de OLE pasa a llamarse ActiveX orientando la tecnologa al mbito concreto de la Web. La evolucin de OLE, aunque paralela a ActiveX, pas a llamarse COM (Component Object Model) en la que se ofrece una interfaz independiente del lenguaje de programacin para la comunicacin de diferentes objetos. La independencia del modelo se logra por medio de una interfaz comn y de un conjunto de criterios comunes a la hora de programar componentes COM. La extensin de COM a un sistema distribuido, de forma oficial, aunque oficiosamente ya exista con ActiveX, se llam DCOM (Distributed Component Object Model). DCOM aade caractersticas de DCE al modelo COM en cuanto a la serializacin de informacin y recoleccin de basura en el sistema distribuido. Cabe destacar que DCOM no es en s mismo una tecnologa de Microsoft, sino un modelo que tambin han desarrollado otras compaas, por ejemplo Open Group tiene una implementacin llamada COMsource; Microsoft cumple con el 26 de 38

Sistemas de comunicaciones modelo sin cambiarle el nombre, lo que hace que formalmente sea recomendable llamarlo Microsoft DCOM. Actualmente Microsoft tiene como modelo de sistema distribuido el .NET. Esto ha aadido algo de confusin ya que tambin denomina por ese nombre el Framework para el funcionamiento de la mayor parte de las aplicaciones desarrolladas para Windows XP y posteriores. El impulso que se le da al lenguaje C# ha hecho que tambin se llame .NET a dicho lenguaje. En cuanto a modelos de comunicacin distribuida, .NET no es ms que la evolucin de DCOM y ActiveX uniendo a todo el sistema y aadiendo los servicios Web al modelo. Adems emplea XML como norma en el formato de los mensajes, lo que supone un gran avance hacia los sistemas abiertos con semntica autocontenida. Formalmente no se puede considerar .NET como un modelo de comunicaciones ya que es algo mucho ms extenso.

3.2.16 AMPQ
Actualmente la tendencia es ofrecer un middleware orientado a transacciones de mensajes entre servicios, a ste tipo de middleware tambin se les conoce como Message Oriented Middleware (MOM). Cabe destacar un estndar de facto llamado Advanced Message Queuing Protocol (AMQP), iniciado en 2004 y empleado en diversos sistemas como OpenAMQ, Rabbit MQ Apache Qpid o Red Hat Enterprise MRG. El funcionamiento de AMPQ, a grandes rasgos, puede verse en la figura 13. Se puede apreciar cmo no existe gestin de publicacin-subscripcin sino gestin de mensajes entre aplicaciones las aplicaciones que los publican y las que los reciben.

Figura 13. Esquema bsico de AMPQ.

AMPQ se diferencia de los sistemas de publicacin y subscripcin en la ubicacin de las colas de mensajes, ya que emplea elementos especficos para la gestin de dichas colas. Hay una excelente comparacin de AMPQ con DDS en [Pardo-Castellote, 2007].

27 de 38

Sistemas de comunicaciones

4 Conclusiones
4.1 Una visin global
Todos los paradigmas anteriores pertenecen a un conjunto cuyos componentes son no excluyentes ya que en muchos casos se emplean de manera conjunta en una arquitectura. Dependiendo del sistema que se deba implementar, un modelo podr ser vlido para lograr unos objetivos y un cambio de los objetivos puede hacer vlido otro modelo. En todos los paradigmas existe un objetivo comn de ocultar, o facilitar, al usuario los detalles de las comunicaciones. Sin embargo, a medida que los sistemas se hacen ms complejos, adems de ocultarse los detalles del mismo, se adaptan a los requerimientos de programacin del sistema. Muchas aplicaciones, especialmente las aplicaciones de tiempo real estn centradas en los datos, o lo que es lo mismo, precisan recibir datos de diferentes fuentes, o distribuirlos a diferentes destinos. Por tanto las arquitecturas de comunicaciones de los sistemas de control emplearn arquitecturas orientadas a distribuir datos, no invocar servicios remotamente como cliente/servidor o llamadas de funciones como RPC. De entre los modelos de comunicaciones, uno de los mtodos en los que se basan las comunicaciones, de manera ms frecuente, es el uso de mensajes, tambin conocidos en ocasiones como MOM (Message Oriented Middleware). Los servicios de mensajera de capacitan una comunicacin asncrona entre componentes de un sistema. Los servicios de mensajera ocultan el origen del mensaje, por lo que sirven tanto para intercambiar mensajes entre componentes de un mismo servidor como los mensajes que provienen de otros servidores en un sistema distribuido. Para que un servicio de mensajera pueda emplearse en un sistema distribuido, los nodos que se comunican deben estar programados para reconocer un formato de mensaje comn. El contenido del mensaje puede ser variable; existen mensajes orientados a campos, tanto de longitud fija, como variable o indexado, mapas de informacin con pares de nombre valor, o incluso texto. Un paso ms de complejidad, pero tambin de potencia supone el empleo de mensajes cuyo contenido es un objeto serializado. Actualmente se estn desarrollando sistemas donde el contenido de los mensajes es cdigo, con lo que los programas que se ejecutan en los servidores varan, no solo en la informacin con la que trabajan, sino en los algoritmos y conocimientos con los que procesan dicha informacin. Las aplicaciones que emplean los servicios de mensajera para intercambiar informacin no precisan un acoplamiento slido, es decir el emisor y el receptor pueden cambiarse o sustituirse sin que ello afecte a las aplicaciones. Cuanto ms se aslen las aplicaciones de la aplicacin del servicio de mensajes, mayor capacidad de acoplamiento tendrn, ya que no impondrn restricciones a las aplicaciones, que potencialmente puedan usar el servicio. A diferencia del modelo de comunicacin de intercambio de mensajes, los sistemas de mensajera no bloquean al emisor cuando ste enva el mensaje, y se queda a la espera de una respuesta. Adems, no es necesario que el receptor permanezca desocupado cuando espera la llegada del prximo mensaje. El servicio de mensajes se encarga de organizar y gestionar los mensajes en las colas hasta que se puedan aceptar.

28 de 38

Sistemas de comunicaciones La gestin de la entrega y de la coherencia del mensaje tambin es responsabilidad del servicio de mensajera, lo que descarga de muchas responsabilidades a las aplicaciones que se comunican a travs de dicho servicio y permiten que stas puedan simplificarse.

4.2 Contextualizacin comunicacin

temporal

de

los

modelos

de

En la figura 14, se pueden observar las arquitecturas anteriores en funcin del ao de aparicin de la tecnologa y del modelo principal de comunicaciones que emplean. De los sistemas anteriores se puede observar cmo la evolucin puede ser dentro de un mismo paradigma, como hacen NML, IPC y RTC que se basan todos ellos en TCX [Gowdy, 2000], o cambiar la tecnologa aunque la funcionalidad sea similar, como el caso de Microsoft con DDE, OLE, COM y DCOM. En otras tecnologas se ha preferido no cambiarla y mantener la funcionalidad, es el caso de CORBA y DDS, ambos propuestos por la OMG.

Figura 14. Ubicacin diferentes tecnologas en funcin del tipo de comunicacin que implementan.

Se puede ver cmo los modelos de comunicacin estn muy relacionados con los modelos de programacin existentes en el momento. Hasta la generalizacin de la programacin orientada a objetos, el modelo empleado se basaba en libreras que proporcionaban funciones de comunicacin basadas en mensajera. Son los casos de TCX, DDE o MPI. Adems, el modelo de cliente-servidor haca que los servidores de mensajera tambin tuviesen aparicin como modelos iniciales. Son los casos de DCE, y de JINI que aparece como servicio de mensajera de JAVA, prcticamente en el mismo momento de aparicin del lenguaje. Con la generalizacin de la programacin orientada a objetos, aparecen modelos de comunicacin basados en dicho paradigma, como ACE o el ampliamente utilizado CORBA y sus variaciones entre las que destaca MidArt como ejemplo de soporte a tiempo real. La programacin basada en componentes tiene su sistema de comunicaciones paradigmtico con COM y DCOM de Microsoft. 29 de 38

Sistemas de comunicaciones La combinacin de los servicios de mensajera y objetos da lugar al interesante modelo DDS donde se busca simplificar la programacin de las comunicaciones, ofreciendo la misma potencia que los anteriores modelos. La evolucin a un sistema middleware, especialmente como aplicaciones, da lugar a los modelos de colas de mensajes, como JMS, MSMQ o el modelo ms reciente AMPQ.

4.3 Caractersticas de los modelos


Los modelos vistos anteriormente cubren prcticamente todas las caractersticas deseables en un sistema de comunicaciones que implemente un control inteligente. De entre ellas cabe destacar que algunos de ellos permiten implementar diferentes paradigmas de comunicaciones y pasar de un modelo cliente-servidor a un modelo Publicacin-subscripcin sin problemas. Todos los modelos, evidentemente, se sustentan en un paso de mensajes. Sin embargo, algunos de ellos ocultan los detalles de la gestin del paso de mensajes, sta caracterstica es deseable, especialmente si lo que se desea es implementar un middleware o emplear las caractersticas de ocultacin de la comunicacin en el caso de la computacin distribuida. La gestin de las colas de mensajes es otro de los aspectos ms interesantes a destacar de los modelos anteriores. Todos usan colas para el envo de los mensajes, y al igual que los detalles del envo o recepcin de los mensajes en las colas, es deseable que los usuarios no deban ocuparse de la gestin de stos aspectos. Sin embargo, en muchas ocasiones, s que se debe actuar sobre el envo de mensajes, especialmente cuando se desea un comportamiento concreto de los aspectos temporales o de flujo de mensajes. En estos casos, lo ms habitual es que se ofrezcan caractersticas concretas de control de flujo o de tiempo real. En la figura 15, se puede observar la ubicacin de los principales modelos vistos anteriormente en funcin del soporte que ofrecen al tiempo real. Se puede apreciar cmo los sistemas de mensajera directa, que no implementan un paradigma de forma implcita, son los que ofrecen mejor soporte al tiempo real, mientras que los sistemas basados en servicios o colas de mensajes ofrecen un control de tiempo bsico.

Figura 15. Ubicacin diferentes tecnologas en funcin de los aspectos de tiempo real que cubren.

Cabe destacar que para los modelos JMS o CORBA, existen implementaciones con control temporal y de flujo. Estos modelos estn desarrollados directamente para cubrir las carencias en stos aspectos que tienen los modelos iniciales, pero en ocasiones se considera ms un enriquecimiento adicional del modelo que una caracterstica del 30 de 38

Sistemas de comunicaciones mismo. Sin embargo, hay algunas evoluciones como MidArt en el modelo de objetos o DDS en el modelo de mensajera que s implementan un control de tiempo real estricto como caracterstica destacable. Resumiendo las caractersticas anteriores de los sistemas, se puede decir entre las caractersticas ms deseables de un sistema de comunicaciones estn las siguientes. Implementacin de un paradigma de comunicacin o soporte a varios paradigmas. Para los componentes que emplean el sistema de comunicaciones, es interesante poder utilizar un modelo cliente-servidor, como un peer to peer. Gestin de las comunicaciones sncronas y asncronas. Los componentes que empleen el sistema de comunicaciones deben poder comunicarse de forma asncrona, o lo que es lo mismo a iniciativa del componente, o de forma sncrona a iniciativa del sistema de comunicaciones. Agrupamiento de los componentes de comunicacin o soporte a la organizacin de los mismos, en funcin de caractersticas deseables del usuario y no de las caractersticas de los componentes. Configuracin dinmica del sistema. Es importante que el sistema de comunicaciones permita variar la mayor cantidad de caractersticas posibles, sin necesidad de detener la actividad de los componentes que lo emplean: portabilidad y escalabilidad. Descubrimiento del sistema. El sistema de comunicaciones debe ofrecer la posibilidad de informar de los cambios de configuracin a los componentes que lo emplean, o informar de la configuracin a los nuevos componentes. Control temporal o soporte a tiempo real. Los componentes deben conocer algunos aspectos como el tiempo que tarda un mensaje en llegar, o poder solicitar al sistema de comunicaciones la entrega en un periodo concreto. Sencillez en la interfaz de comunicaciones, en componentes y en protocolos empleados. En algunos modelos de comunicacin, la complejidad de stos aspectos ha provocado que su uso no sea tan extendido pese a ser unos modelos muy vlidos. Gestin de la calidad de servicio. El aspecto del comportamiento del sistema en funcin de unos parmetros es importante puesto que permite sintonizar las comunicaciones con los requerimientos de los componentes.

Finalmente la gestin de dichas caractersticas puede hacerse de diversas formas: por medio de la configuracin del modelo de comunicaciones empleado, por medio de caractersticas de cada componente, pero destaca especialmente la configuracin de las comunicaciones por medio de la configuracin del comportamiento en lugar de la definicin de unas caractersticas especficas. Para la configuracin del comportamiento del sistema de comunicaciones en funcin de los requerimientos de los usuarios aparece el concepto de calidad de servicio, o QoS (Quality of Service) por sus siglas en ingls. A continuacin se analizar el papel que la calidad de servicio toma en la configuracin de las comunicaciones para poder reconocer qu caractersticas son relevantes en la definicin de parmetros de comportamiento del sistema de comunicaciones.

31 de 38

Sistemas de comunicaciones

4.4 Posibles reas de investigacin


Todos los paradigmas de comunicaciones tienen sistemas que los implementan y adems tienen vigencia actual, es decir, la aparicin del paradigma de servicio de mensajera no excluye la posibilidad de usar el paradigma del paso de mensajes clsico. Eso hace que la investigacin en los sistemas de comunicaciones no siga una lnea unidimensional hacia una tendencia, sino que abarque un amplio rango. Otro de los aspectos en los que es posible desarrollar lneas de investigacin es el centrado en el control temporal de las mismas. Eso implica tanto el desarrollo de sistemas con soporte a un control bsico de retardos en mensajes como el soporte a l cumplimiento de plazos de tiempo real estricto. Dada la importancia del tema, la calidad de servicio se ha dejado para posteriores documentos, sin embargo es posiblemente una de las reas ms interesantes en cuanto a lneas de investigacin ya que implica todos los aspectos mencionados anteriormente. En posteriores estudios se desarrollarn estas cuestiones con mayor detalle.

32 de 38

Sistemas de comunicaciones

5 Referencias
[Busch, 2007] Don Busch. Introduction to OpenDDS. Object Computing, Inc. (OCI) 2007. [Coulouris et al., 2001] Coulouris, G., Dollimore, J., Kindberg, T. Sistemas Distribuidos, Conceptos y diseo. Tercera Edicin. Addison Wesley. Madrid. 2001. [Fedor, 1994] Fedor, C. TCX: an interprocess communication system for building robotic architectures. Technical report, Robotics Institute, Carnegie Mellon University, 1994. [FIPA, 1997] Foundation for Intelligent Physical Agents: FIPA 97 Specfication. Part 2, Agent Communication Language, (1997). [Fong et al., 2001] Fong, T.W. C. Thorpe, and C. Baur. A safeguarded teleoperation controller. In IEEE International Conference on Advanced Robotics 2001, Budapest, Hungary, August 2001 [Fong, 1998] Fong, T.W. Fourth planet communicator. Fourth Planet Inc., 1998. [Gaddah and Kunz, 2003] Gaddah A., and Kunz, T. A survey of middleware paradigms for mobile computing. Technical Report SCE-03-16. Carleton University Systems and Computing Engineering. (2003) [Gamma et al, 1994] Gamma, e., Helm, R., Johnson, R., Vlissides, J. Design Patterns. Elements of Reusable Object-Oriented Software. Addison Wesley, 1994 [Gowdy, 1996] Gowdy, J. IPT: An Object Oriented Toolkit for Interprocess Communication. Technical report CMU-RI-TR-96-07, Robotics Institute, Carnegie Mellon University, March, 1996. [Gowdy, 2000] Gowdy, J. A Qualitative Comparison of Interprocess Communications Toolkits for Robotics. Tech. report CMURI-TR-00-16, Robotics Institute, Carnegie Mellon University, June, 2000 [Hapner et al., 2002] M. Hapner, R. Sharma, J. Fialli, and K. Stout, JMS specification, Sun Microsystems Inc., 4150 Network Circle, Santa Clara, CA 95054 USA, 1.1 edition, April 2002, http://java.sun.com/products/jms/docs.html [Houston, 1998] P. Houston. Building distributed applications with message queuing middleware white paper. Technical report, Microsoft Corporation, 1998.

33 de 38

Sistemas de comunicaciones [Iona, 1997] IONA. Orbix 2.2 Programming guide. IONA Technologies Ltd. Mar. 1997. [Lewis, 1999] Lewis, R.: Advanced Messaging Applications with MSMQ and MQ Series. Que Publishing, 1999. [Liu, 2004] Liu, M.L., Distributed Computing: Applications. Addison-Wesley, 2004. [MilSOFT, 2006] MilSOFT, (2006), MilSOFT http://dds.milsoft.com.tr DDS Principles and

Middleware,

[Mizunuma et al., 1996] Mizunuma, I., Shen, C., Takegaki, M. 1996. Middleware for distributed industrial real-time systems on ATM networks, 17th IEEE Real-Time Systems Symposium. [OMG, 1991] Object Management Group. The Common Object Request Broker: Architecture and Specification. 1.1 ed., December 1991. [OMG, 1995] Object Management Group, The Common Object Request Broker: Architecture and Specification. 2.0 ed., July 1995. [Pardo-Castellote, 2007] Pardo-Castellote, G. Analysis of the Advanced Message Queuing Protocol (AMQP) and comparison with the RealTime Publish Subscribe Protocol (DDS-RTPS Interoperability Protocol). Real-Time Innovations, Inc. 2007. [Pedersen, 1998] Pedersen, J.D. Robust communications for high bandwidth real-time systems. Technical Report CMU-RI-TR-98-13, Carnegie Mellon University, Robotics Institute, May 1998. [Poza et al., 2009] J.L. Poza, J.L. Posadas y J.E. Sim. Arquitecturas de control distribuido. Technical Report. Universidad Politcnica de Valencia. 2009. [PrismTech, 2007] PrismTech Ltd. (2007) www.prismtech.com [RTI, 1999] Real-Time Innovations. NDDS: The Real-Time PublishSubscribe Middleware (1999). www.rti.com [Schmidt et al., 1998] D. Schmidt, D. Levine, and S. Mungee. The Design and Performance of Real-time Object Request Brokers. Computer Communications, 21(4):294324, April 1998. [Schmidt, 1993] Schmidt, Douglas C. The ADAPTIVE Communication Environment An Object-Oriented Network Programming Toolkit for Developing Communication Software. 1993. 11thth and 12th th th Sun user group conferences. California

34 de 38

Sistemas de comunicaciones [Shackleford et al., 2000] W. Shackleford J. Michaloski, F. Proctor. The neutral message language: A model and method for message passing in heterogeneous environments. In Proceedings of the World Automation Conference, Maui, Hawaii, June 2000. [Simmons and James, 2001] R. Simmons y D. James. Inter Process Communication: A Reference Manual, February 2001. [Visigenic, 1998] Visigenic. Visibroker for C++ 3.2 Programmers guide. Visigenic Software Inc. Mar. 1998.

35 de 38

Sistemas de comunicaciones

6 ANEXO: Sistemas de comunicaciones analizados


Sistema .NET ACE ActiveMQ Borland Visibroker CICS COM CORBA DCDT DCE DCOM DDS DSOM ETHNOS IPC IPT Jacorb JINI JMS MidArt MPI MSMQ NDDS NDDS NML OpenCore OpenDDS OpenFusion N/S ADAPTIVE Communication Environmet Active Message Ques N/S Customer Information Control System Component Object Model Common Object Request Broker Architecture Device Communities Development Toolkit Distributed Computing Environment Distributed Component Object Model Data Distribution Service Distributed System Object Model Expert Tribe in a Hybrid Network Operating System Inter Process Communication Inter Process Toolkit Java and CORBA N/S Java Message Service Middleware and Network Architecture for Distributed Real Time Systems Message Passing Interface Message Queue RTI Data Distribution Service Network Data Delivery Service Neutral Messaging Language N/S N/S N/S Significado Paradigma (Modelos) Distributed Components Distributed Objects Message Oriented Middleware Distributed Objects Transaction Oriented Middleware No es distribuido Distributed Objects Publish/Subscribe Client/Server Distributed Components Publish/Subscribe Distributed Objects Publish/Subscribe Publish/Subscribe Publish/Subscribe Publish/Subscribe Servicios Message Oriented Middleware Distributed Objects Paso de mensajes Paso de mensajes Publish/Subscribe Publish/Subscribe Message passing Message passing Publish/Subscribe Distributed Objects Microsoft Object Computing Inc Apache Borland IBM Microsoft OMG Univ. Brescia OSF Microsoft OMG IBM Univ. Genova Univ. Carnegie Mellon Univ. Carnegie Mellon Varios (free) SUN Microsystems SUN Microsystems Mitshubishi y otros MPI Forum Microsoft RTI Univ. Stanford NIST OpenSubsystems Object Computing Inc PrismTech 1994 www.mpi-forum.org 1997 www.microsoft.com/windowsserver2003/technologies/msmq 2001 www.rti.com 1994 arl.stanford.edu/users/pardo/ndds.html 2000 No localizada 2004 www.opensubsystems.org/core/ 2006 www.opendds.org 2000 www.prismtechnologies.com Compaa Ao Web 2002 http://msdn.microsoft.com/netframework/ 1993 http://www.cs.wustl.edu/~schmidt/ACE.html 2006 www.activemq.org 2004 www.borland.com 1980 www-306.ibm.com/software/htp/cics/ 1988 www.microsoft.com/com 1995 www.corba.org 2001 No localizada 1993 http://www.opengroup.org/dce/ 1995 www.microsoft.com/com 2004 portals.omg.org/dds 1990 www.ibm.com 1999 No localizada 1991 www.cs.cmu.edu/~IPC 1996 No localizada 1997 www.jacorb.org 1999 www.jini.org 2001 java.sun.com/products/jms/

37 de 38

Sistemas de comunicaciones

OpenSplice Orbix ORiN RTC SJSMQ SOM SPLICE TAO TCX TelRip Tibco Tuxedo UPnP WebSphere MQ

N/S Open Resource interface for the Network/Open Robot interface for the Network Real-Time Communications Sun Java System Message Queue System Object Model Subscription Paradigm for the Logical Interconnection of Concurrent Engines The ACE ORB N/S TeleRobotics Interconnection Protocol N/S Transactions for Unix, Extended for Distributed Operations Universal Plug&Play N/S

Publish/Subscribe Distributed Objects Message passing Publish/Subscribe Message Oriented Middleware No es distribuido Publish/Subscribe Publish/Subscribe Publish/Subscribe Publish/Subscribe Service Oriented Middleware Transaction Oriented Middleware Message passing Message passing

PrismTech

2006 www.prismtechnologies.com

ORIN Forum Univ. Carnegie Mellon SUN Microsystems IBM US Navy Object Computing Inc Univ. Carnegie Mellon Univ. Rice TIBCO BEA Systems Microsoft IBM

1998 www.orin.jp 1998 No localizada 2005 www.sun.com/software/products/message_queue/ 1990 www.ibm.com 1993 No localizada 2000 http://www.theaceorb.com/ 1990 No localizada 1992 No localizada 1997 www.tibco.com 1984 www.beasys.es 1999 www.upnp.org 1992 www.ibm.com/webspheremq/

38 de 38