Ir al contenido

Middleware

De Wikipedia, la enciclopedia libre

Middleware, tambi�n conocido como l�gica de intercambio de informaci�n entre aplicaciones (interlogical) o agente intermedio, es un sistema de software que ofrece servicios y funciones comunes para las aplicaciones. En general, el middleware se encarga de las tareas de gesti�n de datos, servicios de aplicaciones, mensajer�a, autenticaci�n y gesti�n de API. 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.

Se encarga de las tareas de gesti�n de datos servicios de aplicaciones mensajer�a auto indicaci�n y gestiones de apps. Tambi�n facilita el acceso a una red y aumenta la velocidad de ejecuci�n del sistema.

Es definido en dos categor�as conocidas como integraci�n y aplicaci�n. Cada middleware dispone de ciertos protocolos y paradigmas.

Est� basado y orientado a los procedimientos de interacci�n de los datos de modo que se ejecuta la sincronizaci�n de un proceso en espec�fico.

El middleware abarca desde servidores web hasta sistemas de autenticaci�n y herramientas de mensajer�a:

- Automatizaci�n empresarial inteligente - Transmisi�n de datos - Integraci�n completa - Automatizaci�n empresarial inteligente - Transmisi�n de datos - Integraci�n completa

Definici�n

[editar]

El middleware es todo software que se sit�a entre el sistema operativo y las aplicaciones que corren sobre �l. Este funciona como una capa de traducci�n que posibilita la comunicaci�n y la administraci�n de datos en aplicaciones distribuidas. El middleware busca proporcionarles a los sistemas distribuidos la propiedad de la transparencia, esto es, enmascarar la naturaleza heterog�nea del sistema. Esto se logra proporcionando las siguientes caracter�sticas:

  • Ofrecer la capacidad de solicitar y recibir datos de manera transparente.
  • Liberando a los dise�adores y administradores del sistema de problemas de implementaci�n derivados de la complejidad del sistema operativo.

En la pr�ctica el middleware se representa mediante procesos u objetos dentro de un conjunto de equipos que interact�an entre s� para implementar la comunicaci�n y el intercambio de recursos para las aplicaciones distribuidas.

Historia

[editar]

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

[editar]
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

[editar]

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

[editar]

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

[editar]

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)

[editar]

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

[editar]

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

[editar]

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

[editar]

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)

[editar]

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

[editar]

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

[editar]

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

[editar]

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

[editar]

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

[editar]

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

Middleware a bajo nivel

[editar]

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

[editar]

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 petición-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

[editar]

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

[editar]

Existen muchas especificaciones e implementaciones comerciales de middleware:

Referencias

[editar]
  1. Karne, Bishop. «A Survey of middleware». 
  2. Gall, Nick (29 de julio de 2005). «Origin of the term middleware». 
  3. D., Bakken (29 de julio de 2005). «Middleware». 
  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 Archivado el 12 de octubre de 2009 en 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 Archivado el 28 de septiembre de 2011 en Wayback Machine.
  8. Kai Oswald Seidler. «MOMENT». Fp7-moment.eu. Archivado desde el original el 28 de febrero de 2009. Consultado el 19 de agosto de 2010. 
  9. Charles, J. (1999). Middleware moves to the forefront(requiere suscripción). Technology News. Retrieved March 2, 2009.
  10. «EBU middleware report Tech 3300» (PDF). Consultado el 19 de agosto de 2010. 
  11. «EBU middleware reports Tech 3300s» (PDF). Consultado el 19 de agosto de 2010. 

Enlaces externos

[editar]