Articulo de referencia

Middleware

El middleware es un tipo de programa informático que proporciona servicios a las aplicaciones de software más allá de los que ofrece el sistema operativo . Se puede describir co...

El middleware es un tipo de programa informático que proporciona servicios a las aplicaciones de software más allá de los que ofrece el sistema operativo . Se puede describir como un "pegamento de software". [ 1 ] [ 2 ]

El middleware facilita a los desarrolladores de software la implementación de la comunicación y la entrada/salida, permitiéndoles centrarse en el propósito específico de su aplicación. Ganó popularidad en la década de 1980 como solución al problema de cómo conectar aplicaciones más recientes con sistemas heredados más antiguos, aunque el término ya se utilizaba desde 1968. [ 3 ]

En aplicaciones distribuidas

Arquitectura de software: Middleware

El término se usa comúnmente para el software que permite la comunicación y la gestión de datos en aplicaciones distribuidas . Un taller de la IETF en 2000 definió el middleware como "aquellos servicios que se encuentran por encima del conjunto de servicios de la capa de transporte (es decir, sobre TCP/IP) pero por debajo del entorno de la aplicación" (es decir, por debajo de las API de nivel de aplicación ). En este sentido más específico, el middleware puede describirse como el guion ("-") en cliente-servidor , o el -to- en peer-to-peer . El middleware incluye servidores web , servidores de aplicaciones , sistemas de gestión de contenido y herramientas similares que dan soporte al desarrollo y la entrega de aplicaciones. [ 4 ]

ObjectWeb define el middleware como: "La capa de software que se encuentra entre el sistema operativo y las aplicaciones en cada lado de un sistema de computación distribuida en una red". [ 5 ] Los servicios que pueden considerarse middleware incluyen la integración de aplicaciones empresariales , la integración de datos , el middleware orientado a mensajes (MOM), los intermediarios de solicitudes de objetos (ORB) y el bus de servicios empresariales (ESB). [ 6 ]

Los servicios de acceso a bases de datos suelen caracterizarse como middleware. Algunos de ellos son implementaciones específicas de lenguaje y admiten características heterogéneas y otras características de comunicación relacionadas. [ 7 ] Ejemplos de middleware orientado a bases de datos incluyen ODBC , JDBC y monitores de procesamiento de transacciones . [ 8 ]

El middleware de los sistemas de computación distribuida se puede dividir, a grandes rasgos, en dos categorías: aquellos que proporcionan servicios en tiempo humano (como el procesamiento de solicitudes web) y aquellos que se ejecutan en tiempo máquina. Este último middleware está estandarizado en cierta medida a través del Service Availability Forum [ 9 ] y se utiliza comúnmente en sistemas embebidos complejos dentro de las industrias de telecomunicaciones, defensa y aeroespacial . [ 10 ]

Uso de middleware

Se han definido muchas categorías de middleware, según el campo en el que se utiliza o el módulo de aplicación al que sirve. Una bibliografía reciente identificó las principales categorías de middleware de la siguiente manera: [ 11 ]

  • Transaccional: Procesamiento de múltiples transacciones síncronas/asíncronas, que funcionan como un conjunto de solicitudes asociadas de sistemas distribuidos, como transacciones bancarias o pagos con tarjeta de crédito.
  • Orientado a mensajes: Arquitecturas de cola de mensajes y paso de mensajes que admiten comunicación síncrona/asíncrona.
  • Procedimental: Arquitecturas remotas y locales para conectar, transmitir y recuperar respuestas de software de comunicaciones de sistemas asíncronos, como una operación de llamada.
  • Orientado a objetos: Similar al middleware procedimental, pero incorpora principios de diseño de programación orientada a objetos . Analíticamente, su componente de software abarca referencias a objetos, excepciones y herencia de propiedades mediante solicitudes de objetos distribuidas.

Otros ejemplos

El término middleware también se utiliza en otros contextos. A veces , se emplea en un sentido similar al de controlador de software , una capa de abstracción que oculta a la aplicación los detalles sobre los dispositivos de hardware u otro software.

  • El sistema operativo Android utiliza el núcleo Linux y proporciona un marco de aplicaciones que los desarrolladores integran en sus aplicaciones. Además, Android ofrece una capa de middleware que incluye bibliotecas que proporcionan servicios como almacenamiento de datos, visualización de pantalla, multimedia y navegación web. Dado que las bibliotecas de middleware se compilan a lenguaje máquina , los servicios se ejecutan rápidamente. Estas bibliotecas también implementan funciones específicas del dispositivo, por lo que las aplicaciones y el marco de aplicaciones no necesitan preocuparse por las variaciones entre dispositivos Android. La capa de middleware de Android también contiene la máquina virtual ART y sus bibliotecas principales de aplicaciones Java . [ 12 ]
  • El middleware también se refiere al software que separa dos o más API y proporciona servicios como limitación de velocidad, autenticación y registro de eventos.
  • El software de motores de juegos como Gamebryo y RenderWare a veces se describe como middleware porque proporciona servicios para simplificar el desarrollo de juegos. [ 13 ]
  • En la tecnología de simulación, el middleware se utiliza generalmente en el contexto de la arquitectura de alto nivel (HLA) que se aplica a muchas simulaciones distribuidas. Es una capa de software que se sitúa entre el código de la aplicación y la infraestructura de tiempo de ejecución . El middleware generalmente consta de una biblioteca de funciones y permite que varias aplicaciones —simulaciones o federados en la terminología HLA— accedan a estas funciones desde la biblioteca común en lugar de recrearlas para cada aplicación. [ 14 ]
  • En los ordenadores x86, UEFI/BIOS es un software intermedio entre el sistema operativo y el hardware .
  • Los desarrolladores de redes inalámbricas pueden usar middleware para afrontar los desafíos asociados a una red de sensores inalámbricos (WSN). La implementación de una aplicación de middleware permite a los desarrolladores de WSN integrar sistemas operativos y hardware con la amplia variedad de aplicaciones disponibles actualmente. [ 15 ]
  • El sistema operativo QNX ofrece middleware para proporcionar servicios multimedia para su uso en automóviles , aeronaves y otros entornos. [ 16 ]
  • Los kits de software de identificación por radiofrecuencia (RFID) proporcionan middleware para filtrar datos brutos ruidosos y redundantes. [ 17 ]

Véase también

Referencias

  1. "Conferencia de middleware" . middleware-conf.github.io . Consultado el 16 de diciembre de 2023. El middleware es un software de sistema distribuido que reside entre las aplicaciones y las plataformas subyacentes (sistemas operativos, bases de datos, hardware) y/o conecta aplicaciones, bases de datos o dispositivos distribuidos. Su función principal es coordinar y facilitar la comunicación entre diferentes capas o componentes, aislando gran parte de la complejidad de la distribución en una única abstracción de sistema, bien probada y comprendida.
  2. "¿Qué es el middleware?" . Middleware.org . Defining Technology. 2008. Archivado del original el 29 de junio de 2012. Consultado el 11 de agosto de 2013 .
  3. Gall, Nick (30 de julio de 2005). "Origen del término middleware " . Recuperado el 21 de mayo de 2008 .
  4. Etzkorn, LH (2017). Introducción al middleware: servicios web, componentes de objetos y computación en la nube . CRC Press. págs. 4–5 . ISBN  9781498754101.
  5. Krakowiak, Sacha. "¿Qué es el middleware?" . ObjectWeb.org. Archivado del original el 7 de mayo de 2005. Consultado el 6 de mayo de 2005 .
  6. Luckham, DC (2011). Procesamiento de eventos para empresas: Organización de la empresa en tiempo real . John Wiley & Sons. págs. 27–28 . ISBN  9781118171851.
  7. Simon, AR; Wheeler, T. (2014). Open Client/Server Computing and Middleware . Academic Press. pp. 43–49 . ISBN  9781483214276.
  8. Arregoces, M.; Portolani, M. (2003). Fundamentos del centro de datos . Prensa de Cisco. págs. 92-93 . ISBN  9781587140747.
  9. "Especificación de la interfaz de disponibilidad del servicio" (PDF) . Foro de disponibilidad del servicio. 30 de septiembre de 2011. Archivado del original (PDF) el 4 de agosto de 2016. Consultado el 26 de julio de 2018 .
  10. Jokiaho, T.; Fryer, J. (2012). «Prólogo» . Disponibilidad del servicio: principios y práctica . John Wiley & Sons. pág. xv. ISBN  9781119941675.
  11. Gazis, Alexandros; Katsiri, Eleftheria (15 de marzo de 2022). "Middleware 101: Lo que hay que saber ahora y para el futuro" . ACM Queue . 20 : 10–23 . doi : 10.1145/3526211 . S2CID 247494415 . 
  12. Charlie Collins, Michael Galpin y Matthias Kaeppler, Android en la práctica, Manning Publications, 2011
  13. Moore, ME (2006). Introducción a la industria de los videojuegos . Pearson Prentice Hall. pág. 169. ISBN  9780131687431.
  14. Becchini, R.; Chilaev, P.; Krivtsov, V.; et al. (2003). «Capítulo 4: Middleware» . En Drira, K.; Martelli, A.; Villemur, T. (eds.). Entornos cooperativos para la ingeniería de sistemas distribuidos: Informe sobre el entorno de sistemas distribuidos . Springer. pp. 41–44 . ISBN   9783540455820.
  15. Hadim, S. y Mohamed, N. (2006). Desafíos y enfoques del middleware para redes de sensores inalámbricas. IEEE Distributed Systems Online, vol. 7, número 3. Recuperado el 4 de marzo de 2009 de IEEE Distributed Systems Online. Archivado el 28 de septiembre de 2011 en Wayback Machine.
  16. "QNX Software se une al consorcio japonés de ITS de Internet" . Comunicados de prensa de QNX . QNX. 6 de mayo de 2008. Consultado el 26 de julio de 2018 .
  17. Glover, B.; Bhatt, H. (2006). RFID Essentials . O'Reilly Media. págs. 38–44 . ISBN  9780596009441.
  • Logotipo de WikcionarioDefinición de middleware en Wikcionario