Middleware

Middleware

Middleware es un software que asiste a una aplicación para interactuar o comunicarse con otras aplicaciones, software, redes, hardware y/o sistemas operativos. Éste simplifica el trabajo de los programadores en la compleja tarea de generar las conexiones que son necesarias en los sistemas distribuidos. De esta forma se provee una solución que mejora la calidad de servicio, seguridad, envío de mensajes, 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 que resolver y de las funciones necesarias, serán útiles diferentes tipo 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.

Contenido

Definición

El software que proporciona un enlace entre aplicaciones de software independiente. 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. Ahorra el tiempo a los programadores..

Historia

El origen de la palabra Middleware se remonta al año 1968, en donde la palabra es usada durante la 1968 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 90s, fue solamente descrito como un software para la gestión de conexión en redes, 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 software middleware

Esquema taxonmí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. Esta a su vez es desarmada en otras, las cuales son descritas a continuación:

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 a 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 esta es procesada. Terminado el procesamiento el proceso inverso ocurre. El “client stub” chequea los errores, envía los resultados al software que inicio la petición y entonces suspenden el proceso. Las ventajas de estos middleware es que usan un tipo estándar en nombres de servicios, procesos remotos, pueden retornar respuesta aun con problemas en la red, 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 realizo 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 primero con el objeto cliente que llama a un método lógico para obtener un objeto remoto. Un ORB Proxy (también conocido como stub) pone en orden la información y la transmite a través del agente (broker). El agente actua como punto medio que contacta un número de fuentes de información, obtener sus referentes IDs, recolectar información y a veces reorganizarla. El objeto servidor recibe el mensaje desde el agente y el proxy remoto (también conocido como Skeleton) desordena la información. La información es ingresada a un objeto servidor sirviente en donde un particular procesos es realizador. El resultado es devuelto de forma inversa a lo explicado. Las ventajas es que permiten generar reflexión y escalabilidad. También opera con múltiples tipos de información y estados y soporta procesos múltiples. Las desventajas incluyen pre vínculos antes de la ejecución y la necesidad de un código contenedor para algunos sistemas heredados.

Orientados a mensajes (MOM)

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 una 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 es disponible.

Orientados a componentes

Un componente es "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, los medios de comunicación y las leyes. Las entidades pueden ser objetos o procesos, los medios pueden ser canales, tuberías, etc. Mientras que las leyes identifican la naturaleza interactiva de los agentes, como son la sincronización o el tipo de esquema. Las fortalezas de los middleware agentes son que pueden realizar una gran cantidad de tareas en nombre del usuario y que pueden 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 que se necesita para entender 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.

DAM

Los middleware para acceso a información (Data Access middleware DAM), 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. Las fortalezas que posee este tipo de middleware es la comunicación que tiene 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 provee una copia de seguridad y otras operaciones de fondo. Otras pueden ser mantención e graficas, 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 interface 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 interprocesos independiente del sistema operativo, protocolo de red y plataforma de hardware. Los middleware que se encuentran fuertemente unido a la red se llaman servidores de aplicaciones, ya que mejorar 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, descargar archivos, accesos a programas y acceso aplicaciones remotas.

Middleware a tiempo real

La información en tiempo real es caracterizada por que la información correcta de este 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 y 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 fortalezas de este tipo de middleware son que proveen un proceso de decisión que determinar el mejor criterio para resolver procesos sensibles al tiempo y puedes ayudar a los sistemas operantes en la localización de recursos cuando tienen tiempos límites de operación. Los multimedia middleware es 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 como lógicos, en el caos de los físicos están los parlantes, cámaras, micrófonos, etc.

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.

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 [[Los analistas Middleware |] 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

Existen muchas especificaciones e implementaciones de Middleware comerciales:

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

Referencias

  1. Karne, Bishop. «[triton.towson.edu/~karne/research/middlew/surveym.pdf A Survey of middleware]».
  2. Gall, Nick (30 de julio de 2005). «Origin of the term middleware».
  3. D., Bakken (30 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 autoverificationUso incorrecto de la plantilla enlace roto (enlace roto disponible en Internet Archive; véase el historial y la última versión).. 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
  8. Kai Oswald Seidler. «MOMENT». Fp7-moment.eu. Consultado el 19-08-2010.
  9. Charles, J. (1999). Middleware moves to the forefrontPlantilla:Subscription. Technology News. Retrieved March 2, 2009.
  10. «EBU middleware report Tech 3300» (PDF). Consultado el 19-08-2010.
  11. «EBU middleware reports Tech 3300s» (PDF). Consultado el 19-08-2010.

Enlaces externos


Wikimedia foundation. 2010.

Игры ⚽ Нужна курсовая?

Mira otros diccionarios:

  • Middleware — (deutsch „Diensteschicht“ oder „Zwischenanwendung“) bezeichnet in der Informatik anwendungsneutrale Programme, die so zwischen Anwendungen vermitteln, dass die Komplexität dieser Applikationen und ihre Infrastruktur verborgen wird.[1] Man kann… …   Deutsch Wikipedia

  • Middleware — Middleware,   Software für den objektorientierten, direkten Datenaustausch zwischen Anwendungsprogrammen, die unter verschiedenen Betriebssystemen oder in heterogenen Netzen arbeiten. Beispiele für Middleware Standards sind Corba, Java RMI oder… …   Universal-Lexikon

  • middleware — The generic term for those software technologies that sit somewhere between operating systems (like Windows) and applications programs (like word processors or web browsers), and that allow the seamless sharing of data, applications and other… …   Law dictionary

  • Middleware — This article is about integration software. For video game engine software, see Game engine#Game middleware. Middleware is computer software that connects software components or people and their applications. The software consists of a set of… …   Wikipedia

  • Middleware — En architecture informatique, un middleware (anglicisme) est un logiciel tiers qui crée un réseau d échange d informations entre différentes applications informatiques. Le réseau est mis en œuvre par l utilisation d une même technique d échange d …   Wikipédia en Français

  • middleware —    A category of software that shields an application from the underlying mechanics of a network so that the developers of an application do not have to know in advance which network and communications protocols will be used. Middleware is often… …   Dictionary of networking

  • middleware — tarpinė programinė įranga statusas T sritis informatika apibrėžtis Programinė įranga, atliekanti tarpininko vaidmenį keičiantis duomenimis tarp skirtingų programų, sistemų, platformų, kai tiesioginis keitimasis tarp jų neįmanomas arba nėra… …   Enciklopedinis kompiuterijos žodynas

  • Middleware analyst — Middleware analysts are computer software engineers with a specialization in products that connect two different computer systems together. These products can be open source or proprietary. As the term implies, the software, tools, and… …   Wikipedia

  • Middleware-Software-System für Betreiber-Funktionssteuerung — Middleware Software Systeme für Betreiber Funktionssteuerung sind Middleware Systeme im Bereich des Fernseh und Rundfunks, welche die Steuerung der Signalübertragung von Massenmedien (vorwiegend Fernsehen und Radio) über das Übertragungsnetz des… …   Deutsch Wikipedia

  • Middleware RFID — El Middleware RFID es una forma diferente de enfocar el clásico middleware conocido en el entorno informático. Así, debido al reciente desarrollo exponencial de la tecnología RFID, las funciones del Middleware RFID no se ajustan a las clásicas… …   Wikipedia Español

Compartir el artículo y extractos

Link directo
Do a right-click on the link above
and select “Copy Link”