DCOM (Distributed Component Object Model)
Es una tecnología de Microsoft para proveer servicios de comunicación entre componentes u objetos OLE (documentos que se pueden incorporar a documentos complejos) situados en distintas máquinas conectadas a través de una red LAN, WAN e incluso Internet. Extiende la funcionalidad de COM (Component Object Model), que basa su creación y comunicación entre componentes del mismo ordenador.[1]
Los documentos complejos a su vez son documentos compuestos distribuidos que están compuestos por varios documentos, que también pueden ser documentos compuestos denominados componentes que se agregan dentro de un determinado marco. Estos documentos se presentan de forma visual o auditiva al usuario. Un documento compuesto es el resultado de la interacción entre contenedores (lugares) y servidores (cosas). Es decir, cosas que se instalan dentro de los lugares.
Características:
- Los documentos compuestos pueden ser generados en tiempo de ejecución.
- La gestión de documentos compuestos es un protocolo que permite la comunicación entre distintas aplicaciones que gestionen diferentes tipos de documentos.
- La utilización de aplicaciones realizadas en distintos lenguajes es mucho más fácil si se hace mediante un documento compuesto que si se hace en forma convencional (pasando de una ventana a otra, ejecutando distintos software para cada aplicación etc.).
Ventajas
- La arquitectura de los componentes distribuidos, permite repartir los objetos en varias computadoras de la red LAN, WAN e Internet.
- Los diferentes objetos componentes pueden ser gestionados y presentados por aplicaciones distintas.
- Para crear los documentos compuestos no necesariamente se tiene que ser programador.
Desventajas
- No es multiplataforma, poco soporte para plataformas no Windows.
- Requiere conocimientos previos de los métodos con el fin de utilizar su funcionalidad.
- Exige modificaciones a los sistemas existentes no compatibles con los estándares para poder habilitar su interoperatibilidad.
RMI (Remote Method Invocations)[2]
Herramienta de Java para soporte de objetos distribuidos, es una extensión núcleo del lenguaje. RMI se puede combinar con JNI (Java Native Interface) para acceder a servidores y con JDBC (Java Database Conectivity) para acceder a bases de datos.
Características:
- RMI no tiene las funcionalidades de Corba pero puede realizar invocaciones remotas sin salir del entorno Java.
- Implementa el mecanismo de invocación de objetos remotos para el lenguaje Java.
- Las invocaciones remotas equivalen a las invocaciones locales, Por lo tanto, el valor de un argumento o resultado puede ser el objeto de alguna clase. Es decir, no solo se transfieren datos entre los objetos cliente/servidor, sino también objetos completos, implementaciones de objetos que se pueden ejecutar una vez recibidas.
- La transferencia se realiza mediante la serialización, que consiste en obtener una secuencia de bytes que representen el estado de dicho objeto, que es básicamente el estado de sus campos del objeto (pueden ser enviados a través de la red, guardarse en un fichero para su posterior uso, recomponer el objeto original etc.).
Ventajas:[3]
- RMI puede ser utilizado por cualquier programador Java
- RMI puede usarse con protocolos SSL o HTTPS
- RMI no necesita saber las direcciones explicitas de los servidores. Es suficiente con que sepa los nombres de estos y el registro RMI donde se han registrado.
- La instalación y configuración de los clientes es fácil, basta con tener acceso a una intranet o internet
- Aprovecha las ventajas de la orientación a objetos (polimorfismo).
Desventajas:
- RMI solo se usa en Java, aunque con el JDK1.3 ya se puede tener interoperabilidad con Corba.
- RMI no tiene control de las transacciones, que permita revertir las modificaciones si las mismas no se realizaron
- RMI no es multilenguaje.
CORBA[4]
Common Object Request Broker Architecture (CORBA) es un estándar definido por Object Management Group (OMG) que permite invocar métodos de objetos remotos sin importar el lenguaje en el cual estén construidos y que corren en diferentes computadoras, puedan trabajar juntos; es decir, facilita el desarrollo de aplicaciones distribuidas en entornos heterogéneos.
Características:
- Independencia en el lenguaje de programación y sistema operativo: CORBA fue diseñado para liberar a los ingenieros de las limitaciones en cuanto al diseño del software.
- Posibilidad de interacción entre diferentes tecnologías: uno de los principales beneficios de la utilización de CORBA es la posibilidad de normalizar las interfaces entre las diversas tecnologías y poder así combinarlas.
- Transparencia de distribución: ni cliente ni servidor necesitan saber si la aplicación está distribuida o centralizada, pues el sistema se ocupa de todo eso.
- Transparencia de localización: el cliente no necesita saber dónde ejecuta el servicio y el servicio no necesita saber dónde ejecuta el cliente.
- Integración de software existente: se amortiza la inversión previa reutilizando el software con el que se trabaja, incluso con sistemas heredados.
- Activación de objetos: los objetos remotos no tienen por qué estar en memoria permanentemente, y se hace de manera invisible para el cliente.
Ventajas[5]
- Es un sistema heterogéneo, los elementos interconectados HW y SW de diferentes fabricantes pueden integrarse.
- El cliente puede extender la funcionalidad del servidor
- Es de fácil instalación para el usuario.
- No se requiere instalación de servidor.
- Puede presentar problemas de saturación, embotellamiento interrupción o perdidas de mensajes en la red.
- Bajo seguridad, es posible acceso a todo el sistema por parte de los usuarios.
- Las especificaciones tardan en desarrollarse, y en consecuencia las implementaciones tardan en salir al mercado
Referencias:
- Mateos, Mariano Raboso y Otros (2009) INTEGRACION DE COMPONENTES COM DE MATLAB/SIMULINK EN EL ENTORNO CASE XBDK, PARA EL MODELADO DE SISTEMAS DE CONFORMACION DE HAZ/MATLAB/SIMULINK COM COMPONENT INTEGRATION FOR XBDK CASE ENVIRONMENT, ORIENTED TO BEAMFORMING APPLICATIONS. pp, 129-135 En: Revista Chilena de Ingeniería 17.1
- Benet Campderrich Falgueras (2003): Ingeniería del software. Barcelona
- Miguel Angel Abian (2012): Java y las Redes. pp 248-249 (https://www.scribd.com/doc/91196304/25/Ventajas-e-inconvenientes-de-la-RMI).
- Wikipedia (12 de abril de 2016) ( https://es.wikipedia.org/wiki/CORBA).
- Universidad Central Colombia (12 de abril de 2016) (https://www.ucentral.edu.co/images/editorial/nomadas/docs/nomadas_17_15_tecnologia.PDF)