Está en la página 1de 8

Middleware

Middleware o lógica de intercambio de información entre aplicaciones (interlogical) es un software que


asiste a una aplicación para interactuar o comunicarse con otras aplicaciones, o paquetes de programas, redes,
hardware o sistemas operativos. Este simplifica el trabajo de los programadores en la compleja tarea de
generar las conexiones y sincronizaciones que son necesarias en los sistemas distribuidos. De esta forma, se
provee una solución que mejora la calidad de servicio, así como la seguridad, el envío de mensajes, la
actualización del directorio de servicio, etc.1

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). El middleware abstrae de la complejidad y heterogeneidad de las
redes de comunicaciones subyacentes, así como de los sistemas operativos y lenguajes de programación,
proporcionando una API para la fácil programación y manejo de aplicaciones distribuidas. Dependiendo del
problema a resolver y de las funciones necesarias, serán útiles diferentes tipos de servicios de middleware. Por
lo general el middleware del lado cliente está implementado por el Sistema Operativo, el cual posee las
bibliotecas que ejecutan todas las funcionalidades para la comunicación a través de la red.

Índice
Definición
Historia
Taxonomía de los programas de middleware
Categoría de integración
Orientados a procedimiento o procesos
Orientados a objetos
Orientados a mensajes (MOM, Message-oriented middleware)
Orientados a componentes
Agentes
Categoría de aplicación
Middleware para acceso a información (DAM, Data Access middleware)
Middleware de escritorio
Middleware basados en la web
Middleware a tiempo real
Middleware especialistas
Categoría de nivel
Middleware a bajo nivel
Middleware a alto nivel
Aplicaciones
Véase también
Referencias
Enlaces externos

Definición
Es el software que proporciona un enlace entre aplicaciones de software independientes. Middleware a veces
se llama a la vía que conecta dos aplicaciones y pasa los datos entre ellas. Los middleware permiten que los
datos contenidos en una base de datos puedan ser accedidos a través de otra, ahorrando tiempo a los
programadores.

Historia
El origen de la palabra middleware se remonta al año 1960, en donde la palabra fue usada durante la '1960
NATO Software Engineering Conference',2 siendo una idea de cómo conectar el nuevo software con sistemas
más antiguos. Durante las décadas previas a los años 1990, fue solamente descrito como un software para la
gestión de conexión en redes, pero para cuando las tecnologías en redes alcanzaron una penetración y
visibilidad suficiente, el software middleware' había evolucionado en un conjunto de paradigmas y servicios.
De esta forma se estaba ofreciendo una manera más fácil, robusta y controlable, para construir aplicaciones
distribuidas.3

Taxonomía de los programas de middleware

Esquema taxonomía de 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. Estas poseen a su vez diferentes clases.

Categoría de integración

Es el tipo de integración que 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 verifica 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 aún 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 (marshalling o
serializació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 (unmarshalling o deserialización)
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 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, correos electrónicos, 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. Estos 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.

Categoría de nivel

La clasificación por niveles se diferencia en dos tipos: middleware a bajo nivel y middleware a alto nivel.

Middleware a bajo nivel

Middleware que ofrecen funcionalidades esenciales, generalmente relacionadas con cambios sobre el soporte
básico TCP/UDP + IP.

Sus principales características son:

Serialización (en inglés, Marshalling): la serialización es el proceso de transformación de un


objeto, que se encuentra en un medio de almacenamiento, a un formato de datos adecuado
para el almacenamiento o la transmisión.
Multicast sobre IP: IP Multicast es un método para transmitir datagramas IP a un grupo de
receptores interesados.
Red superpuesta: una red superpuesta, es una red virtual de nodos enlazados lógicamente
que está construida sobre una o más redes subyacentes.

Middleware a alto nivel

Este nivel se dedica a la comunicación e invocación remota. Es un middleware centrado en el envío y


recepción de datos, es decir, en cómo se comunican los procesos en un sistema distribuido.

Se diferencian tres tipos:

Llamada a procedimiento remoto (en inglés, Remote Procedure Call, RPC): la Llamada a
procedimiento remoto es un programa que utiliza una computadora para ejecutar código en otra
máquina remota sin la necesidad de preocuparse por la comunicación entre ambas máquinas.
Remote Method Invocation (RMI): Java Remote Method Invocation es un mecanismo ofrecido
por Java para invocar a un método de forma remota. Es una extensión de RPC para la
transferencia directa de objetos distribuidos.
Protocolos de petición-respuesta: el protocolo peticion-respuesta incluye una serie de
protocolos que proporcionan soporte, relativamente de bajo nivel, para solicitar la ejecución de
una operación remota. Sientan las bases de Remote Procedure Call (RPC) y (Remote Method
Invocation (RMI).

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.4

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.6

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 desarrolladores. Para integrar los sistemas operativos y hardware con la amplia
variedad de aplicaciones diferentes que están disponibles actualmente.7

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.8

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.9 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.10 11

Véase también
Middleware RFID
SOAP
CORBA
Message-oriented middleware

Existen muchas especificaciones e implementaciones comerciales de middleware:

JBOSS
Middleware RFID Data Suite
Tuxedo
Tibco
webMethods
IBM WebSphere MQ (antes MQSeries)
JMS
CICS
Borland Visibroker
SAP PI SAP Process Integration

Referencias
1. Karne, Bishop. «A Survey of middleware» (http://triton.towson.edu/~karne/research/middlew/surv
eym.pdf).
2. Gall, Nick (29 de julio de 2005). «Origin of the term middleware» (http://ironick.typepad.com/ironi
ck/2005/07/update_on_the_o.html).
3. D., Bakken (29 de julio de 2005). «Middleware» (http://www.dia.uniroma3.it/~cabibbo/ids/altrui/mi
ddleware-bakken.pdf).
4. Peng, C, Chen, S, Chung, J, Roy-Chowdhury, A, and Srinivasan, V. (1998). Accessing existing
business data from the World Wide Web. IBM Systems Journal, 37(1), 115-132. Retrieved March
7, 2009, from ABI/INFORM Global database. (Document ID: 26217517)
5. Bougettaya, A, Malik, Z, Rezgui, A, and Korff, L. (2006). A Scalable Middleware for Web
Databases. Journal of Database Management, 17(4), 20-39,41-46. Retrieved March 7, 2009,
from ABI/INFORM Global database. (Document ID: 1155773301)
6. Bagwell, H. (2008). Middleware: providing value beyond autoverification (http://www.devicelink.co
m/ivdt/archive/08/07/007.html) Archivado (https://web.archive.org/web/20091012130823/http://w
ww.devicelink.com/ivdt/archive/08/07/007.html) el 12 de octubre de 2009 en la Wayback
Machine.. IVDT. Retrieved March 3, 2009.
7. Hadim, S. and Mohamed, N. (2006). Middleware challenges and approaches for wireless sensor
networks. IEEE Distributed Systems Online vol 7. Issue 3. Retrieved March 4, 2009 from iEEE
Distributed Systems Online (http://dsonline.computer.org/portal/site/dsonline/menuitem.3a529f38
32e8f1e13587e0606bcd45f3/index.jsp) Archivado (https://web.archive.org/web/2011092821125
1/http://dsonline.computer.org/portal/site/dsonline/menuitem.3a529f3832e8f1e13587e0606bcd45
f3/index.jsp) el 28 de septiembre de 2011 en la Wayback Machine.
8. Kai Oswald Seidler. «MOMENT» (https://web.archive.org/web/20090228220426/http://www.fp7-
moment.eu/). Fp7-moment.eu. Archivado desde el original (http://www.fp7-moment.eu/) el 28 de
febrero de 2009. Consultado el 19 de agosto de 2010.
9. Charles, J. (1999). Middleware moves to the forefront (http://ieeexplore.ieee.org/ielx5/2/16523/00
762786.pdf)(requiere suscripción). Technology News. Retrieved March 2, 2009.
10. «EBU middleware report Tech 3300» (http://tech.ebu.ch/docs/tech/tech3300.pdf) (PDF).
Consultado el 19 de agosto de 2010.
11. «EBU middleware reports Tech 3300s» (http://tech.ebu.ch/docs/tech/tech3300s.pdf) (PDF).
Consultado el 19 de agosto de 2010.

Enlaces externos
middleware.objectweb.org (https://web.archive.org/web/20050507151935/http://middleware.obje
ctweb.org/).
Digital Rights Management Middleware (https://web.archive.org/web/20061115160702/http://kno
wledgebase.aegisdrm.com/knowledgebase_middleware_drm.htm).
mig-idl.sourceforge.net (http://mig-idl.sourceforge.net/) Middleware Interfaces Generator for C++
with XML-RPC.
middleware.internet2.edu (http://middleware.internet2.edu/) Internet2 Middleware Initiative.
www.opensubsystems.org/core (http://www.opensubsystems.org/core/index.html) Middleware
Abstraction Layer.

Obtenido de «https://es.wikipedia.org/w/index.php?title=Middleware&oldid=125759821»

Esta página se editó por última vez el 4 may 2020 a las 09:17.

El texto está disponible bajo la Licencia Creative Commons Atribución Compartir Igual 3.0; pueden aplicarse cláusulas
adicionales. Al usar este sitio, usted acepta nuestros términos de uso y nuestra política de privacidad.
Wikipedia® es una marca registrada de la Fundación Wikimedia, Inc., una organización sin ánimo de lucro.

También podría gustarte