viernes, 8 de mayo de 2015

Bienvenidos

Te doy la más cordial bienvenida a mi nuevo post, aquí compartiré  temas relacionados con Middleware, esperando le sea de gran interés y de antemano le agradecemos su visita. !!!Les aseguro  que este blog sera informativo!!!! 


Introducción

Actualmente, la existencia de nuevas arquitecturas, sistemas y plataformas más potentes y económicas hacen que muchas organizaciones se planteen la idea de trasladar sus aplicaciones corporativas, que residen en servidores centrales o mainframes, hacia nuevas plataformas. Sin embargo, los rápidos cambios de las tecnologías, hace necesario garantizar que la inversión que se realiza en el proyecto de rediseño de la aplicación tengan un resultado esperado. Esta estrategia incluye el concepto de Middleware. Además, debido a la estimulación en el crecimiento vertiginoso de aplicaciones en red, la tecnología Middleware ha cobrado una relevante importancia. La misma, cubre un espectro bastante amplio de sistemas software como objetos distribuidos y componentes, comunicación basada en envío de mensajes, aplicaciones para móviles (celulares), entre otros. 

Definiciones

Para introducirnos un poco más en el concepto de Middleware, comenzaremos ofreciendo varias definiciones de distintos autores y/o instituciones para disponer de un panorama más claro:

Definición 1: “El Middleware es un software de conectividad que ofrece un conjunto de servicios que hacen posible el funcionamiento de aplicaciones distribuidas sobre plataformas heterogéneas. Funciona como una capa de abstracción de software distribuida, que se sitúa entre las capas de aplicaciones y las capas inferiores (sistema operativo y red).”

Definición 2: “El Middleware es un módulo intermedio que actúa como conductor entre sistemas permitiendo a cualquier usuario de sistemas de información comunicarse con varias fuentes de información que se encuentran conectadas por una red.”

Definición 3: “En un sistema informático distribuido, Middleware se define como una capa de software que se encuentra o sitúa entre el sistema operativo y las aplicaciones del sistema”.

Definición 4: “Middleware es un software que permite conectar componentes softwares o aplicaciones. El mismo consiste en un conjunto de servicios que permiten que múltiples procesos corriendo en una o varias máquinas interactúen de un lado a otro de la red.” 

Definición 5: “Middleware es un concepto general relacionado con alguna programación que se utiliza para mediar entre dos programas separados y usualmente ya existentes.” 

En resumen, podríamos adoptar varios conceptos válidos de cada uno de estos enunciados y formular una definición más completa, sencilla y fácil de comprender: 

Básicamente, nos referimos a un Middleware, al software que tiene la capacidad de conectar distintos sistemas y facilitar la interacción entre un cliente y cualquier aplicación que provee un servicio (arquitectura cliente/servidor), independientemente de la plataforma. Por lo tanto, se trata de un software de capa alta (por encima de la red física y las capas de transporte) que se ubica entre el sistema operativo y las aplicaciones, manejando todas aquellas complejas tareas requeridas para proveer el acceso a datos y aplicaciones entre plataformas heterogéneas. En definitiva, El Middleware nos brinda la abstracción de la complejidad y heterogeneidad tanto de las redes de comunicaciones subyacentes como de los sistemas operativos y lenguajes de programación, proporcionando así, una API para acceder a una fácil programación y manejo de aplicaciones distribuidas.

                                       

Historia del Middleware

El origen de la palabra middleware se remonta al año 1968, en donde la palabra fue usada durante la '1968 NATO Software Engineering Conference', siendo una idea de cómo conectar el nuevo software con sistemas más antiguos. 

Si nos remontamos unas décadas atrás, la terminología Middleware tuvo su primera aparición a finales de los ’80s donde se referían a productos software de gestión en la conexión de redes. Pero, a mediados de la década del ’90, el Middleware ya había evolucionado en un conjunto de paradigmas y servicios que ofrecían ayuda para hacer más fácil y más manejable la construcción de aplicaciones distribuidas. Primeramente, a comienzos de la década del ’90, el término fue asociado por varios profesionales del mudo de los negocios con el concepto de base de datos relacionales, pero a mediados de la misma década, éste ya no era el caso. En esa misma época, varios productos comenzaban a ofrecer APIs1 para múltiples abstracciones como ser objetos distribuidos y colas de mensajes. 

Citando algunos ejemplos de los primeros tipos de Middlewares nos encontramos con Cronus, el cual se lo considera como el primer sistema de objetos distribuidos más importante. Por otro lado, el primer desarrollo de RPC se realizó alrededor del año 1982. Quality Objects (QuO) fue el primer framework de Middleware que proveía una propuesta general y extensible de la “calidad del servicio” para objetos distribuidos. TAO fue el principal sistema CORBA en proveer “calidad del servicio”. The Message Oriented Middleware Association (MOMA) fue formado en 1993, y MOM se convirtió en el tipo de Middleware más a finales de la década del ‘90. Posteriormente, se desarrollarán las características, funcionalidad y deferencia de cada uno de estos tipos. 

Por lo tanto, el término Middleware no es un concepto relativamente nuevo pero con la aparición de la tecnología basada en sistemas abiertos, el concepto Middleware toma su mayor relevancia en el mundo de la informática.

                                     


Taxonomía de los software Middleware

La taxonomía o clasificación del software middleware puede ser descrita en dos grandes categorías: una de integración y otra de aplicación. Éstas poseen a su vez diferentes clases.


Categoría de integración

El tipo de integración que incluyen posee la capacidad de unirse con sistemas heterogéneos. Cada middleware posee diferentes protocolos de comunicación o formas de operar en diferente software. Los tipos de integración se pueden ver como:

Orientados a procedimiento o procesos 

Los middleware que son orientados a procesos, utilizan una comunicación sincronizada (como por ejemplo el teléfono). Una de las características de estos, es que utilizan el client stub y el server skeleton. El client stub convierte la petición en un mensaje que es mandado al servidor; luego el server skeleton recibe el mensaje, lo convierte en la petición y llama a la aplicación del servidor donde ésta es procesada. Terminado el procesamiento, ocurre el proceso inverso. El client stub chequea los errores, envía los resultados al software que inició la petición y entonces suspenden el proceso. Las ventajas de estos middleware es que usan un tipo estándar en nombres de servicios y procesos remotos, pueden retornar respuesta aun con problemas en la red y pueden manejar múltiples tipos de formatos para datos y niveles heterogéneos de sistemas de servicio. Las desventajas son que no poseen escalabilidad, no pueden retornar la información a un programa diferente del que realizó la solicitud (reflexión) y poseen procesos muy rígidos.

Orientados a objetos

Soportan pedidos de objetos distribuidos. La comunicación entre los objetos puede ser sincronizada, sincronizada diferida o no sincronizada. Soportan múltiples pedidos similares realizados por múltiples clientes en una transacción. La forma de operar es:
1. El objeto cliente llama a un método lógico para obtener un objeto remoto.
2. Un ORB Proxy (también conocido como stub) pone en orden la información y la transmite a través del agente (broker).
3. El agente actúa como punto medio y contacta con diversas fuentes de información, obtiene sus referentes IDs, recolecta información y, en ocasiones, la reorganiza.
4. El proxy remoto (también conocido como skeleton) desordena la información que le llega del agente y se la pasa al objeto servidor.
5. El objeto servidor procesa la información y genera un resultado que es devuelto al cliente siguiendo los pasos inversos.
Las ventajas son que permiten generar reflexión y escalabilidad, que opera con múltiples tipos de información y estados y que soporta procesos múltiples. Las desventajas consisten en obtener la existencia de vínculos antes de la ejecución y de un código contenedor para algunos sistemas heredados.

Orientados a mensajes (MOM, Message-oriented middleware)

Se pueden dividir en dos tipos, espera y publicación/suscripción. El paso de espera se puede dividir en mensaje y espera. El paso de mensaje inicia con que la aplicación envía un mensaje a uno o más clientes, con el MOM del cliente. El servidor MOM, recoge las peticiones de la cola (Message Broker) en un orden o sistema de espera predeterminado. Los actos del servidor MOM son como un router y usualmente no interactúan con estas. El MOM de publicación y suscripción actúa de manera ligeramente diferente, es más orientado a eventos. Si un cliente quiere participar por primera vez, se une al bus de información. Dependiendo de su función, si es como publicador, suscriptor y ambas, este registra un evento. El publicador envía una noticia de un evento al bus de memoria. El servidor MOM envía un anuncio al subscriptor registrado cuando la información está disponible.

Orientados a componentes

Un componente es un «programa que realiza una función específica, diseñada para operar e interactuar fácilmente con otros componentes y aplicaciones». El middleware en este caso en una configuración de componentes. Los puntos fuertes de este middleware es que es configurable y reconfigurable. La reconfiguración se puede realizar en tiempo de ejecución, lo que ofrece una gran flexibilidad para satisfacer las necesidades de un gran número de aplicaciones.


Agentes

Los agentes son un tipo de middleware que posee varios componentes:
Entidades. Pueden ser objetos o procesos.
Medios de comunicación. Pueden ser canales, tuberías, etc.
Leyes. Identifican la naturaleza interactiva de los agentes. Pueden ser la sincronización o el tipo de esquema.
            Las ventajas de los middleware agentes son que la capacidad de éstos para realizar una gran cantidad de tareas en nombre del usuario y para cubrir una amplia gama de estrategias basadas en el entorno que les rodea. Sin embargo su implementación es complicada debido a la complejidad y dificultades dadas por las operaciones que manejan.

Categoría de Aplicación

La clasificación por aplicación incluye los middleware que son ajustados para aplicaciones específicas.


Middleware para acceso a la información (DAM, Data Access middleware)

Los middleware para acceso a información tienen la característica de poder interactuar con diversas fuentes de datos. En este tipo de middleware se encuentran los que procesan transacciones, gateways de bases de datos y sistemas distribuidos de transacción/procedimiento. Sus ventajas residen en la comunicación que tienen entre múltiples fuentes de datos, la conversión del lenguaje de programación de la aplicación a un lenguaje aceptado por la fuente de datos de destino y la capacidad de respuesta en un formato y lenguaje aceptable para el solicitante.
        

Middleware de escritorio

Los middleware de escritorio pueden hacer variaciones en la presentación de la información pedida por el usuario por aplicaciones de rastreo y asistencia, controlar cualquier servicio de transporte y proveer una copia de seguridad y otras operaciones de fondo. Otras pueden ser manutención y gráficas, ordenamientos, directorios de servicios, manejo de información de la base de datos, manejo de procesos, calendarización de trabajos, notificación de eventos de servicios, manejo de instalación de software, servicios de cifrado y control de accesos.

Middleware basados en la web

Este tipo de middleware asiste al usuario con la navegación web, el uso de interfaces que le permiten encontrar páginas de su interés y detectar cambios de interés del usuario basado en su historial de búsquedas. Provee de un servicio de identificación para un gran número de aplicaciones y comunicación entre procesos independiente del sistema operativo, protocolo de red y plataforma de hardware. Los middleware que se encuentran fuertemente unidos a la red se llaman servidores de aplicaciones, ya que mejoraran el rendimiento, disponibilidad, escalabilidad, seguridad, recuperación de información, y soportan la administración colaborativa y su uso. Los middleware pueden contactar directamente a la aplicación ganando mejor comunicación entre el servidor y el cliente. Otros servicios importantes dados por este tipo de middleware son servicios de directorios, emails, cadenas de suministros de gran tamaño, accesos remotos a información, descarga de archivos, accesos a programas y acceso a aplicaciones remotas.

Middleware a tiempo real

La información en tiempo real es caracterizada porque la información correcta en un instante puede no serlo en otro. Los middleware en tiempo real soportan las peticiones sensibles al tiempo y políticas de planificación. Esto se realiza con servicios que mejoran la eficiencia de las aplicaciones de usuario. Los middleware en tiempo real se pueden dividir en diferentes aplicaciones: 
Aplicación de base de datos en tiempo real.
Sensor de procesamiento.
Transmisión de información.
La información que pasa a través de un middleware en tiempo real se ha incrementado dramáticamente con la introducción de Internet, redes inalámbricas, y las nuevas aplicaciones basadas en la difusión. Las ventajas de este tipo de middleware son que proveen un proceso de decisión que determina el mejor criterio para resolver procesos sensibles al tiempo, y la posibilidad de ayudar a los sistemas operantes en la localización de recursos cuando tienen tiempos límites de operación. Los middleware multimedia son una rama mayor en los middleware en tiempo real. Éstos pueden manejar una gran variedad de información. Estos tipos pueden ser textos, imágenes de todo tipo (GPS, imágenes, etc.), procesadores de lenguajes naturales, música y video. La información debe ser recopilada, integrada y entonces enviada al usuario sensible del tiempo. Los dispositivos multimedia pueden incluir una mezcla de dispositivos tanto físicos (parlantes, cámaras, micrófono) como lógicos.

Middleware especialistas

En muchos casos los middleware proveen una tarea muy específica que no se puede ajustar a las categorías anteriores. Un ejemplo serían middlewares médicos.

Evolución Middleware


Hoy en día las compañías no pueden ignorar el grave problema que implica desarrollar y adaptar software al ritmo que imponen los negocios. Los requisitos varían con mucha frecuencia y las aplicaciones no logran ser desarrolladas y/o adaptadas al ritmo requerido. La globalización y fusión de empresas, el crecimiento de Internet, entre otros factores, han acentuado aún más estos problemas llevando el software desarrollado, que normalmente había sido desarrollado para una plataforma específica, a un ambiente distribuido heterogéneo. Esto involucra, en consecuencia, La necesidad de considerar una amplia gama de aspectos como lo son la integración de datos heterogéneos, la interacción entre diversos sistemas, los distintos sistemas operativos, el middleware, las tecnologías web, cuestiones de escalabilidad y performance, por citar algunos de ellos.
La evolución de las tecnologías cliente/servidor sumada al advenimiento de nuevas tecnologías como XML, web services , la plataforma J2EE, la comunicación asíncrona por medio de mensajes, el uso de application servers , son algunos de los conocimientos que permiten llevar a cabo el desarrollo de aplicaciones modernas. 

La evolución de las aplicaciones distribuidas se dio de la siguiente forma:
·         Aplicaciones monolíticas.
·         Arquitectura cliente/servidor.
·         Arquitectura de tres capas.
·         Arquitectura de N capas.


De Interfaz de Usuario

Aquí es donde su aplicación presenta información a los usuarios y acepta entradas o respuestas del usuario para usar por su programa. Idealmente, la IU no desarrolla ningún procesamiento de negocios o reglas de validación de negocios. Por el contrario, la IU debería relegar sobre la capa de negocios para manipular estos asuntos. Esto es importante, especialmente hoy en día, debido a que es muy común para una aplicación tener múltiples IU, o para sus clientes o usuarios, que le solicitan que elimine una IU y la remplace con otra.

                           Figura 4. Ejemplo de interfaz de usuario.

Algunas tecnologías de interfaz de usuario son:
·         API Win 32.
·         HTMAL.
·         Dell HTML.
·         Lenguajes de scrips.


De Aplicación

La adopción de un diseño distribuido de aplicaciones empresariales, aumenta la reusabilidad, reduce la cantidad de recursos, y los costes necesarios de desarrollo y mantenimiento.

Este nuevo enfoque de diseño pone en manos de los desarrolladores no solo la funcionalidad que demandan las aplicaciones, sino también la seguridad, rapidez y flexibilidad.

Algunas tecnologías de aplicación son:
·         CORBA.
·         DNA.
·         EJB.
·         XML.

Figura 5. Ejemplo de interfaz de aplicación.


De Base de Datos

La evolución de las bases de datos distribuidas se debe por una parte a razones organizacionales las cuales han demandado que mayores capacidades sean incorporadas a las bases de datos, tales como la integración de información desde distintos sitios donde se encuentre la empresa distribuida hacia algún sitio por ejemplo, para una consulta. Por otra parte, el desarrollo de las tecnologías de comunicación han permitido enlazar datos con aplicaciones que se encuentran en sitios distintos y remotos, por ejemplo las transacciones bancarias realizadas en máquinas-cajeros automáticos (ATM) que se encuentran ubicados en centros comerciales, empresas y escuelas, no serían posibles si no tuviéramos sistemas de comunicación para enlazarnos a bases de datos localizadas en diferentes sitios financieros.

Algunas tecnologías de base de datos son:
·         OLEB
·         ADO.
·         XML.
·         SQL.
·         Herramientas para modelado (UML).


Figura 6. Ejemplo de tecnología de base de datos.


De Comunicación De Datos

La construcción de aplicaciones distribuidas ha emergido como la arquitectura predominante para la construcción de aplicaciones multiplataforma en la mayor parte de las empresas.

Este cambio radical en los modelos de computación, desde los sistemas monolíticos basados en mainframe y los tradicionales sistemas cliente-servidor, hacia sistemas distribuidos multiplataforma altamente modularles, representa el desarrollo rápido y avance de la investigación en el mundo del desarrollo de aplicaciones, tal y como se pone de manifiesto en las últimas tendencias de las grandes empresas de tecnología, como Sun con su estrategia Sun One, o Microsoft con DotNET (.Net).
Algunas tecnologías de comunicación de datos son:
·         Intranet.
·         Internet.

Figura 7. Ejemplo de una tecnología de comunicación de datos.

De Conexión Entre Capas

Como tecnología, las arquitecturas de capas proporcionan una gran cantidad de beneficios para las empresas que necesitan soluciones flexibles y fiables para resolver complejos problemas inmersos en cambios constantes.

Todas las aplicaciones basadas en capas permitirán trabajar con clientes ligeros, tal como navegadores de Internet, WebTV, Teléfonos Inteligentes, PDAs (Personal Digital Assistants o Asistentes Personales Digitales) y muchos otros dispositivos preparados para conectarse a Internet.

De este modo, las arquitecturas de capas se están posicionando rápidamente como la piedra angular de los desarrollos de aplicaciones empresariales y las compañías están adoptando esta estrategia a una velocidad de vértigo como mecanismo de posicionamiento en la economía emergente que tiene su base en la red (lo que se ha venido a denominar "Nueva Economía").

Actualmente, la Red (Internet, intranets y extranets) es el ordenador o, como diría Sun Microsystems, el ordenador es la Red. Este paradigma está creando un cambio fundamental en los modelos de computación que, a su vez, proporciona desafíos y oportunidades como nunca antes había se habían producido.

Una  tecnología de conexión de capas es:
·         Arquitectura DAO.

Aplicaciones

Los servicios de middleware proporcionan un conjunto más funcional de la API s para permitir una aplicación a:

·         Localizar claramente a través de la red, proporcionando así una interacción con otro servicio o aplicación
·         Los datos filtrados para que sean utilizables en un ambiente público a través de anonymization process para la protección de la privacidad(por ejemplo)
·         Ser independiente del servicio de red
·         Ser fiable y siempre disponible
·         Añadir los atributos complementarios como semántica en comparación con el sistema operativo y servicios de red.

Middleware ofrece algunas ventajas únicas tecnológicas para los negocios y la industria. Por ejemplo, los sistemas tradicionales de bases de datos suelen ser desplegados en entornos cerrados, donde los usuarios acceden al sistema sólo a través de una red restringida o intranet (por ejemplo, red interna de una empresa). Con el crecimiento de la World Wide Web, los usuarios pueden acceder a prácticamente cualquier base de datos para las que tengan derechos de acceso adecuados desde cualquier parte del mundo. Middleware aborda el problema de diferentes niveles de interoperabilidad entre las estructuras de base de datos diferente. Middleware facilita el acceso a la herencia de un sistema de gestión de bases de datos (DBMS) o aplicaciones a través de un servidor web, sin tener en cuenta las características específicas de base de datos.

Las empresas frecuentemente utilizan las aplicaciones de middleware para vincular la información de bases de datos de sus departamentos, tales como nóminas, ventas y contabilidad, o bases de datos alojadas en múltiples localizaciones geográficas.5 En el mercado de la salud que es altamente competitivo, los laboratorios hacen un amplio uso de aplicaciones de middleware para minería de datos y sistema informático del laboratorio (LIS), y para combinar los sistemas de información durante fusiones de hospitales. Los Middleware ayudan a reducir la brecha entre LISs separados en una red de salud recién formado a raíz de una compra del hospital.

Los desarrolladores de redes inalámbricas pueden utilizar middleware para afrontar los retos asociados a los de sensores inalámbricos de red (WSN), o tecnologías WSN. La implementación de una aplicación de middleware permite WSN [[Los analistas Middleware |] desarrolladores]. Para integrar los sistemas operativos y hardware con la amplia variedad de aplicaciones diferentes que están disponibles actualmente.

Los middleware pueden ayudar a los desarrolladores de software a no tener que escribir APIs para todos los programas de control, que actúa como una interfaz de programación independiente para sus aplicaciones. Para la Internet del Futuro, el funcionamiento de la red a través del monitoreo de tráfico en escenarios multi-dominio, utilizando herramientas de mediación (middleware) es una poderosa ayuda, ya que permiten operadores, investigadores y [proveedores de servicios] para supervisar Calidad de servicio y analizar los eventuales fracasos en servicio de telecomunicaciones.

Por último, el comercio electrónico utiliza middleware para ayudar en el manejo de transacciones rápidas y seguras a través de muchos tipos diferentes de entornos informáticos. En resumen, el middleware se ha convertido en un elemento crítico en una amplia gama de industrias, gracias a su capacidad de reunir los recursos a través de diferentes redes o plataformas de computación.


En 2004 los miembros de la Unión Europea de Radiodifusión (UER), han realizado un estudio de Middleware con respecto a la integración de sistemas en entornos de difusión. Se trataba de sistema de expertos en ingeniería de diseño de 10 principales cadenas europeas, se trabajó durante un período de 12 meses para entender el efecto de productos, principalmente de software, basado en técnicas de producción de medios de comunicación y el diseño del sistema de radiodifusión. Los informes resultantes 3300S Tecnología 3300 y Tech fueron publicados y están disponibles gratuitamente desde el sitio web de la UER.

Protocolos Middleware

A continuación se mencionan algunos protocolos utilizado de acuerdo al tipo de  Middleware.

Drivers a DBMS

Acceso a DBMS desde un programa u otro DBMS.

Protocolo ODBC.
Open DataBase Connectivity (ODBC) es un estándar de acceso a las bases de datos desarrollado por SQL Access Group en 1992. El objetivo de ODBC es hacer posible el acceder a cualquier dato desde cualquier aplicación, sin importar qué sistema de gestión de bases de datos (DBMS) almacene los datos. ODBC logra esto al insertar una capa intermedia (CLI) denominada nivel de Interfaz de Cliente SQL, entre la aplicación y el DBMS. El propósito de esta capa es traducir las consultas de datos de la aplicación en comandos que el DBMS entienda. Para que esto funcione tanto la aplicación como el DBMS deben ser compatibles con ODBC, esto es que la aplicación debe ser capaz de producir comandos ODBC y el DBMS debe ser capaz de responder a ellos. Desde la versión 2.0 el estándar soporta SAG y SQL.

Protocolo JDBC.
Java Database Connectivity (JDBC) es un derivado inspirado en el mismo, una interfaz de programación de aplicaciones que permite la ejecución de operaciones sobre bases de datos desde el lenguaje de programación Java independientemente del sistema operativo donde se ejecute o de la base de datos a la cual se accede utilizando el dialecto SQL del modelo de base de datos que se utilice.

Remote Procedure Call (RPC, RMI, Remoting)

Invocación a procedimientos remotos como si fueran locales al programa.

Protocolo RPC.
La Llamada a Procedimiento Remoto (RPC) (del inglés, Remote Procedure Call) es un protocolo que permite a un programa de ordenador ejecutar código en otra máquina remota sin tener que preocuparse por las comunicaciones entre ambos. El protocolo es un gran avance sobre los sockets usados hasta el momento. De esta manera el programador no tenía que estar pendiente de las comunicaciones, estando éstas encapsuladas dentro de las RPC.

Protocolo RMI.
RMI (Java Remote Method Invocation) es un mecanismo ofrecido por Java para invocar un método de manera remota. Forma parte del entorno estándar de ejecución de Java y proporciona un mecanismo simple para la comunicación de servidores en aplicaciones distribuidas basadas exclusivamente en Java. Si se requiere comunicación entre otras tecnologías debe utilizarse CORBA o SOAP en lugar de RMI.

Web Services

Invocación a procedimientos a través de HTTP.

Protocolo HTTP.
Hypertext Transfer Protocol o HTTP (en español protocolo de transferencia de hipertexto) es el protocolo usado en cada transacción de la World Wide Web. HTTP define la sintaxis y la semántica que utilizan los elementos de software de la arquitectura web (clientes, servidores, proxies) para comunicarse. Es un protocolo orientado a transacciones y sigue el esquema petición-respuesta entre un cliente y un servidor.

Protocolo SMTP.
El Simple Mail Transfer Protocol (SMTP) (Protocolo para la transferencia simple de correo electrónico), es un protocolo de red utilizado para el intercambio de mensajes de correo electrónico entre computadoras u otros dispositivos (PDA, teléfonos móviles, etc.).

Protocolo FTP.
FTP (siglas en inglés de File Transfer Protocol, 'Protocolo de Transferencia de Archivos') en informática, es un protocolo de red para la transferencia de archivos entre sistemas conectados a una red TCP (Transmission Control Protocol), basado en la arquitectura cliente-servidor. Desde un equipo cliente se puede conectar a un servidor para descargar archivos desde él o para enviarle archivos, independientemente del sistema operativo utilizado en cada equipo.

Message Oriented Middleware (MOM)

Envío de mensajes entre aplicaciones.

Protocolo XMPP.
XMPP es un protocolo abierto que se creó para ser usado en sistemas de mensajería instantánea originalmente, está basado en XML. Originalmente se conocía como Jabber, y el proyecto fue iniciado en 1998 por Jeremie Miller. Actualmente XMPP y sus múltiples extensiones soportan mensajería instantánea, videoconferencia, vista del estado en linea de los usuarios, y transferencia de archivos a través de clientes.
¿Dónde lo usamos?
Debido a que es un protocolo abierto y confiable, muchas empresas lo adoptaron como el estándar para sus servicios de chat, entre las que podemos mencionar servicios tan populares como Whatsapp, Facebook Messenger, y Gtalk. XMPP funciona de manera completamente descentralizada, está documentado, y puede ser usado en cualquier proyecto. Existen muchos clientes y servidores libres que se pueden usar de manera gratuita.

Object Request Broker – ORP

Capaz de distribuir y compartir los objetos de una aplicación a través de redes heterogéneas.

Protocolo CORBA.
Common Object Request Broker Architecture (CORBA) es un estándar definido por Object Management Group (OMG) que permite que diversos componentes de software escritos en múltiples lenguajes de programación y que corren en diferentes computadoras, puedan trabajar juntos; es decir, facilita el desarrollo de aplicaciones distribuidas en entornos heterogéneos.