El middleware es software que permite uno o más tipos de comunicación o conectividad entre aplicaciones o componentes de aplicaciones en una red distribuida. Al facilitar la conexión de aplicaciones que no han sido diseñadas para conectarse entre sí y al proporcionar la funcionalidad para conectarlas de manera inteligente, el middleware agiliza el desarrollo de aplicaciones y acelera la comercialización.
Hay muchos tipos de middleware. Algunos, como los intermediarios de mensajes o los monitores de procesamiento de transacciones, se centran en un tipo de comunicación. Otros, como los servidores de aplicaciones web o el middleware de dispositivos móviles, proporcionan el rango completo de prestaciones de conectividad y comunicación necesarias para crear un tipo determinado de aplicación. Todavía otros, como una oferta de plataforma de integración como servicio (iPaaS) basada en la nube o un bus de servicio empresarial (EBS), funcionan como un hub de integración centralizado para conectar todo los componentes de una empresa (incluso hay middleware que permite a los desarrolladores crear su propio middleware personalizado).
El middleware recibe su nombre porque el primer middleware normalmente actuaba como mediador entre una aplicación frontal, o cliente, y un recurso de fondo, por ejemplo, una base de datos, una aplicación de mainframe o un dispositivo de hardware especializado, desde el cual el cliente podía solicitar datos.
Pero el middleware ahora opera más allá de este ámbito. El middleware de portal, por ejemplo, engloba tanto la aplicación frontal como las herramientas para la conectividad de fondo; el middleware de base de datos ya suele incluir su propio almacén de datos. Y como leerá a continuación, una clase emergente de middleware aprovecha la tecnología de contenedores para ayudar a los desarrolladores a conectar los recursos distribuidos en varias nubes.
En el nivel más básico, el middleware permite a los desarrolladores crear aplicaciones sin tener que crear una integración personalizada cada vez que necesitan conectarse a los componentes de la aplicación (servicios o microservicios), fuentes de datos, recursos informáticos o dispositivos.
Para ello, proporciona servicios que habilitan la comunicación entre diferentes aplicaciones y servicios mediante marcos comunes de mensajería como JSON (JavaScript Object Notation), REST (Representational State Transfer), XML (Extensible Markup Language), SOAP (Simple Object Access Protocol) o servicios web. Por lo general, el middleware también proporciona servicios que permiten que componentes escritos en varios lenguajes, como Java, C++, PHP y Python, se comuniquen entre sí.
Además de proporcionar esta interoperatividad, que supone un ahorro de trabajo, el middleware también incluye servicios que ayudan a los desarrolladores.
Hay muchos tipos diferentes de middleware. Algunos se centran en tipos de conectividad específicos, otros en aplicaciones específicas, componentes de aplicación y dispositivos; algunos combinan prestaciones de middleware para una tarea de desarrollo específica. Algunos de los tipos de software de middleware más conocidos y más utilizados incluyen:
El middleware orientado a mensajes (MOM) permite que los componentes de la aplicación utilicen diferentes protocolos de mensajería para intercambiar mensajes. Además de traducir, o transformar, mensajes entre aplicaciones, MOM gestiona el direccionamiento de los mensajes para que siempre obtengan los componentes apropiados en el orden correcto. Ejemplos de MOM son las colas de mensajes y los intermediarios de mensajes.
El middleware de llamada a procedimiento remoto (RPC) permite que una aplicación active un procedimiento en otra aplicación, que se ejecuta en el mismo sistema o en otro sistema o red, como si ambos formaran parte de la misma aplicación en el mismo sistema.
El middleware de datos o base de datos simplifica el acceso y la interacción con las bases de datos de fondo. Por lo general, el middleware de base de datos es una forma de servidor de base de datos SQL.
El middleware de API (interfaz de programación de aplicaciones) proporciona herramientas que los desarrolladores pueden utilizar para crear, exponer y gestionar las API para sus aplicaciones, para que otros desarrolladores puedan conectarse a ellas. Algún middleware de API incluye herramientas para monetizar las API, ya que facilita que otras organizaciones las utilicen a cambio de un coste. Ejemplos de middleware de API incluyen las plataformas de gestión de API, pasarelas de API y portales de desarrollador de API.
El middleware de intermediario para solicitudes de objeto (ORB) actúa como intermediario entre una solicitud de un objeto de aplicación o componente y la resolución de esta solicitud por otro objeto o componente sobre la red distribuida. Los ORB funcionan con la arquitectura CORBA (Common Object Request Broker), que permite que un componente de software realice una solicitud de otro sin saber dónde está alojado, o qué aspecto tiene su IU: el "intermediario" maneja esta información durante el intercambio.
El middleware transaccional proporciona servicios para apoyar la ejecución de transacciones de datos a través de una red distribuida. El middleware transaccional más conocido son los monitores de procesamiento de transacciones (TPM), que se aseguran que las transacciones se ejecuten paso a paso: realizar el intercambio de datos, añadir/cambiar/eliminar datos donde sea necesario, etc., hasta finalizar.
El middleware de transmisión de datos asíncrona replica una secuencia de datos en un almacén intermedio, permitiendo el uso compartido de datos entre varias aplicaciones. Apache Kafka es uno de los ejemplos más conocidos de middleware para la transmisión de datos en tiempo real.
El middleware de dispositivo proporciona un conjunto definido de prestaciones de integración y conectividad para el desarrollo de aplicaciones para un sistema operativo móvil específico.
El middleware de portal proporciona herramientas y recursos para integrar contenido y prestaciones de varias aplicaciones relacionadas "en el cristal", o en una única pantalla, para crear una única aplicación compuesta.
El middleware de robótica simplifica el proceso de integración de hardware, firmware y software robótico de varios fabricantes y ubicaciones.
El middleware de integración de aplicaciones empresariales permite que una organización establezca un hub de integración empresarial: una forma estandarizada de conectar todas las aplicaciones, los componentes de aplicación, los procesos de negocio y los orígenes de datos de fondo en la empresa extendida.
Hasta hace unos diez años, el middleware de integración de aplicaciones empresariales más frecuente era el bus de servicio empresarial (ESB), que sirvió como hub de integración dentro de una arquitectura orientada a servicios (SOA). Actualmente, iPaaS permite que una organización conecte aplicaciones, datos, procesos y servicios en entornos locales, de nube privada y nube pública, sin el trabajo ni el gasto que implica comprar, instalar, gestionar y mantener el middleware de integración (y el hardware en el que se ejecuta) dentro de su propio centro de datos.
El middleware de plataforma (o middleware de plataforma de aplicaciones) también puede dar soporte al desarrollo de aplicaciones y acelerar la entrega de aplicaciones al proporcionar un entorno de alojamiento en tiempo de ejecución, como un entorno de ejecución Java (Java RE), o contenedores, o ambos, para la lógica de negocio o de aplicación. El middleware de plataforma puede incluir o combinar servidores de aplicaciones empresariales, servidores web y sistemas de gestión de contenidos, así como los demás tipos de middleware enumerados anteriormente.
El enfoque nativo en la nube se aplica al desarrollo de aplicaciones y aprovecha las tecnologías fundamentales de cloud computing, con el objetivo de proporcionar un desarrollo, despliegue y gestión coherentes en entornos locales, de nube privada o de nube pública.
En términos prácticos, las aplicaciones nativas en la nube actuales son aplicaciones creadas a partir de microservicios y desplegadas en contenedores orquestados mediante Kubernetes. Los microservicios son componentes de aplicación débilmente acoplados que incluyen su propia pila, se pueden desplegar y actualizar independientemente unos de otros, y comunicarse entre sí mediante una combinación de API REST, intermediarios de mensajes y secuencias de sucesos. Los contenedores son ejecutables ligeros que empaquetan código de aplicación, como microservicios, junto con solo las bibliotecas del sistema operativo y las dependencias necesarias para ejecutar este código en cualquier TI tradicional o infraestructura de nube.
Juntas, estas tecnologías y otras relacionadas crean una potente plataforma que se desarrolla una vez y se implementa en cualquier lugar para ofrecer nuevas aplicaciones de nube híbrida y para modernizar sistemas tradicionales existentes para su uso en la nube. Pero también facilitan un complejo entorno de desarrollo que combina aún más aplicaciones de software, orígenes de datos, lenguajes de programación, herramientas y sistemas distribuidos.
El middleware puede resolver parte de esta complejidad, pero ejecutar aplicaciones en contenedores con middleware convencional también conlleva sus propias dificultades, así como el tipo de sobrecarga de infraestructura que los contenedores han sido diseñados para eliminar. Por esta razón, las plataformas de desarrollo de aplicaciones en la nube más populares como Cloud Foundry (enlace externo a IBM) y Red Hat Open Shift evolucionó para incluir middleware en contenedores, que es middleware modularizado para que solo las funciones de conectividad requeridas puedan empaquetarse en un contenedor.
Un entorno de ejecución de servidor Java flexible y altamente seguro para aplicaciones empresariales.
Gestione su ecosistema de API en varias nubes, incluida la mejora de las tareas de socialización y monetización.
Desde sus flujos de trabajo de negocio hasta sus operaciones de TI, le ayudamos con la automatización basada en IA. Descubra cómo se están transformando las empresas más destacadas.
Los intermediarios de mensajes son una tecnología de comunicación entre aplicaciones que admite arquitecturas nativas en la nube, basadas en microservicios, sin servidor y de nube híbrida.
iPaaS es una solución en la nube que estandariza y simplifica la integración en entornos en local y en la nube.
Las API REST proporcionan una forma flexible y ligera de integrar aplicaciones. Han surgido como el método más común para conectar componentes en arquitecturas de aplicaciones de microservicios.