Software informático que proporciona servicios a aplicaciones de software.
Middleware es un tipo de programa de software que proporciona servicios a aplicaciones de software más allá de los disponibles en el sistema operativo . Puede describirse como "pegamento de software". [1] [2]
El middleware facilita a los desarrolladores de software implementar la comunicación y la 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 aplicaciones más nuevas a sistemas heredados más antiguos, aunque el término se utilizaba desde 1968. [3]
Los servicios de acceso a bases de datos suelen caracterizarse como middleware. Algunas de ellas son implementaciones específicas del lenguaje y admiten funciones heterogéneas y otras funciones de comunicación relacionadas. [8] Ejemplos de middleware orientado a bases de datos incluyen ODBC , JDBC y monitores de procesamiento de transacciones . [9]
El middleware del sistema informático distribuido 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á algo estandarizado a través del Foro de Disponibilidad de Servicios [10] y se usa comúnmente en sistemas integrados complejos dentro de las industrias de telecomunicaciones, defensa y aeroespacial . [11]
Uso de middleware
Existen muchas definiciones con respecto a la categorización del middleware, especificando el campo en el que se utiliza o el módulo de aplicación al que sirve. En la bibliografía reciente, las principales categorías de middleware son las siguientes: [12]
Transaccional: Procesamiento de múltiples transacciones sincrónicas/asincrónicas, que actúa como un grupo de solicitudes asociadas de sistemas distribuidos, como transacciones bancarias o pagos con tarjeta de crédito.
Orientado a mensajes: colas de mensajes y arquitecturas de paso de mensajes, que admiten comunicación sincrónica/asincrónica.
De procedimiento: 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, sin embargo, este tipo de middleware incorpora principios de diseño de programación orientada a objetos. Analíticamente, su componente de software abarca referencias de objetos, excepciones y herencia de propiedades mediante solicitudes de objetos distribuidos.
Otros ejemplos
El término middleware también se utiliza en otros contextos. El middleware a veces se utiliza en un sentido similar a un controlador de software , una capa de abstracción que oculta detalles sobre dispositivos de hardware u otro software de una aplicación.
El sistema operativo Android utiliza el kernel de Linux como núcleo y también proporciona un marco de aplicación que los desarrolladores incorporan a sus aplicaciones. Además, Android proporciona una capa de middleware que incluye bibliotecas que brindan servicios como almacenamiento de datos, visualización de pantalla, multimedia y navegación web. Debido a que las bibliotecas de middleware están compiladas 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 la aplicación no necesitan preocuparse por las variaciones entre varios dispositivos Android. La capa de middleware de Android también contiene la máquina virtual ART y sus bibliotecas de aplicaciones Java principales . [13]
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 consta de una biblioteca de funciones y permite que una serie de aplicaciones (simulaciones o federados en terminología HLA) busquen estas funciones desde la biblioteca común en lugar de recrearlas para cada aplicación. [15]
Los desarrolladores de redes inalámbricas pueden utilizar middleware para afrontar los desafíos asociados con 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 que están disponibles actualmente. [dieciséis]
El sistema operativo QNX ofrece middleware para proporcionar servicios multimedia para su uso en automóviles , aviones y otros entornos. [17]
^ "Conferencia sobre middleware". middleware-conf.github.io . Consultado el 16 de diciembre de 2023 . Middleware es un software de sistema distribuido que reside entre aplicaciones y 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 abstracción de sistema única, 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}}: Mantenimiento CS1: URL no apta ( enlace )
^ Gall, Nick (30 de julio de 2005). «Origen del término middleware» . Consultado el 21 de mayo de 2008 .
^ "Inicio". IETF .
^ Etzkorn, LH (2017). Introducción al middleware: servicios web, componentes de objetos y computación en la nube. Prensa CRC. págs. 4–5. ISBN9781498754101.
^ Cracovia, 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 e hijos. págs. 27-28. ISBN9781118171851.
^ Simón, AR; Wheeler, T. (2014). Abra Computación cliente/servidor y middleware. Prensa académica. 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 la interfaz de disponibilidad del servicio" (PDF) . Foro de disponibilidad de servicios. 30 de septiembre de 2011 . Consultado el 26 de julio de 2018 .
^ Jokiaho, T.; Freidora, J. (2012). "Prefacio". Disponibilidad del servicio: principios y práctica . John Wiley e hijos. pag. xv. ISBN9781119941675.
^ Gazis, Alexandros; Katsiri, Eleftheria (15 de marzo de 2022). "Middleware 101: qué saber ahora y para el futuro". doi : 10.1145/3526211 . S2CID 247494415.{{cite journal}}: Citar diario requiere |journal=( ayuda )
^ Charlie Collins, Michael Galpin y Matthias Kaeppler, Android en la práctica, Publicaciones Manning, 2011
^ Moore, YO (2006). Introducción a la Industria del Juego . Pearson-Prentice Hall. pag. 169.ISBN _9780131687431.
^ 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 del entorno de sistemas distribuidos . Saltador. 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. Obtenido el 4 de marzo de 2009 de iEEE Distributed Systems Online Archivado el 28 de septiembre de 2011 en Wayback Machine.
^ "El software QNX 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). Conceptos básicos de RFID. Medios O'Reilly. págs. 38–44. ISBN9780596009441.
enlaces externos
La definición del diccionario de middleware en Wikcionario