Software de computadora que proporciona servicios a aplicaciones de software.
El middleware es un tipo de programa informático que proporciona servicios a las aplicaciones de software más allá de los disponibles en el sistema operativo . Se lo puede describir como un "pegamento de software". [1] [2]
El middleware facilita a los desarrolladores de software la implementación de comunicaciones y de entrada/salida, para que puedan centrarse en el propósito específico de su aplicación. Ganó popularidad en la década de 1980 como una solución al problema de cómo vincular las aplicaciones más nuevas con los sistemas heredados más antiguos, aunque el término se venía utilizando desde 1968. [3]
Los servicios de acceso a bases de datos suelen caracterizarse como middleware. Algunos de ellos son implementaciones específicas de lenguajes y admiten características heterogéneas y otras características de comunicación relacionadas. [7] Algunos ejemplos de middleware orientado a bases de datos incluyen ODBC , JDBC y monitores de procesamiento de transacciones . [8]
El middleware de los sistemas informáticos distribuidos se puede dividir en dos categorías: los que proporcionan servicios en tiempo humano (como el servicio de solicitudes web) y los que funcionan en tiempo de máquina. Este último middleware está estandarizado en cierta medida a través del Service Availability Forum [9] y se utiliza habitualmente en sistemas integrados complejos dentro de las industrias de telecomunicaciones, defensa y aeroespacial . [10]
Uso de middleware
Se han definido muchas categorías de middleware, en función del campo en el que se utiliza o del 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 sincrónicas/asincrónicas, que sirven como un grupo de solicitudes asociadas de sistemas distribuidos, como transacciones bancarias o pagos con tarjeta de crédito.
Orientado a mensajes: arquitecturas de colas de mensajes y paso de mensajes que admiten comunicación sincrónica/asincrónica.
Procedimental: Arquitecturas remotas y locales para conectar, pasar y recuperar respuestas de software de comunicaciones de sistemas asincrónicos, 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 a través de solicitudes de objetos distribuidos.
Otros ejemplos
El término middleware también se utiliza en otros contextos. A veces, middleware se utiliza en un sentido similar al de un controlador de software , una capa de abstracción que oculta detalles sobre dispositivos de hardware u otro software a una aplicación.
El sistema operativo Android utiliza el núcleo Linux en su núcleo y también proporciona un marco de aplicación que los desarrolladores incorporan en sus aplicaciones. Además, Android proporciona una capa de middleware que incluye bibliotecas que proporcionan servicios como almacenamiento de datos, visualización de pantalla, multimedia y navegación web. Debido a que las bibliotecas de middleware se compilan en lenguaje de máquina , los servicios se ejecutan rápidamente. Las bibliotecas de middleware también implementan funciones específicas del dispositivo, por lo que las aplicaciones y el marco de aplicación 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 de aplicaciones Java centrales . [12]
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.
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 encuentra entre el código de la aplicación y la infraestructura de tiempo de ejecución . El middleware generalmente consiste en una biblioteca de funciones y permite que varias aplicaciones (simulaciones o federaciones en la terminología de HLA) extraigan estas funciones de la biblioteca común en lugar de recrearlas para cada aplicación. [14]
Los desarrolladores de redes inalámbricas pueden utilizar middleware para afrontar los desafíos asociados con una red de sensores inalámbrica (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 , aviones y otros entornos. [16]
^ "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 une aplicaciones, bases de datos o dispositivos distribuidos. Su función principal es coordinar y permitir la comunicación entre diferentes capas o componentes, aislando al mismo tiempo gran parte de la complejidad de la distribución en una única abstracción de sistema bien probada y bien entendida.
^ "¿Qué es el middleware?". Middleware.org . Definición de tecnología. 2008. Archivado desde el original el 29 de junio de 2012. Consultado el 11 de agosto de 2013 .{{cite web}}: CS1 maint: URL no apta ( enlace )
^ Gall, Nick (30 de julio de 2005). «Origen del término middleware» . Consultado el 21 de mayo de 2008 .
^ Etzkorn, LH (2017). Introducción al middleware: servicios web, componentes de objetos y computación en la nube. CRC Press. pp. 4–5. ISBN9781498754101.
^ Krakowiak, Sacha. "¿Qué es el middleware?". ObjectWeb.org. Archivado desde el original el 7 de mayo de 2005. Consultado el 6 de mayo de 2005 .
^ Luckham, DC (2011). Procesamiento de eventos para empresas: organización de la empresa en tiempo real. John Wiley & Sons. págs. 27-28. ISBN9781118171851.
^ Simon, AR; Wheeler, T. (2014). Computación abierta cliente/servidor y middleware. Academic Press. págs. 43–49. ISBN9781483214276.
^ Arregoces, M.; Portolani, M. (2003). Fundamentos del centro de datos. Prensa de Cisco. págs. 92–93. ISBN9781587140747.
^ "Especificación de interfaz de disponibilidad de servicio" (PDF) . Foro de disponibilidad de servicio. 30 de septiembre de 2011. Consultado el 26 de julio de 2018 .
^ Jokiaho, T.; Fryer, J. (2012). "Prólogo". Disponibilidad del servicio: principios y práctica . John Wiley & Sons. pág. xv. ISBN9781119941675.
^ Gazis, Alexandros; Katsiri, Eleftheria (15 de marzo de 2022). "Middleware 101: Qué saber ahora y para el futuro". Cola . 20 : 10–23. doi : 10.1145/3526211 . S2CID 247494415.
^ Charlie Collins, Michael Galpin y Matthias Kaeppler, Android en la práctica, Manning Publications, 2011
^ Moore, ME (2006). Introducción a la industria de los videojuegos . Pearson Prentice Hall. pág. 169. ISBN9780131687431.
^ 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: el informe sobre el entorno de sistemas distribuidos . Springer. págs. 41–4. ISBN9783540455820.
^ Hadim, S. y Mohamed, N. (2006). Desafíos y enfoques del middleware para redes de sensores inalámbricos. 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.
^ "QNX Software se une al Consorcio ITS de Internet de Japón". Comunicados de prensa de QNX . QNX. 6 de mayo de 2008. Consultado el 26 de julio de 2018 .
^ Glover, B.; Bhatt, H. (2006). Fundamentos de RFID. O'Reilly Media. Págs. 38-44. ISBN9780596009441.
Enlaces externos
La definición del diccionario de middleware en Wikcionario