El middleware es un programa informático que permite uno o varios tipos de comunicación o conectividad entre aplicaciones o componentes de una red distribuida, creando esencialmente un "pegamento de software" que une sistemas diferentes.
El middleware agiliza el desarrollo de aplicaciones y acelera el tiempo de comercialización a través de funciones inteligentes que facilitan las conexiones entre plataformas que inicialmente no fueron diseñadas para conectarse.
Entre los distintos tipos de middleware se incluyen los siguientes:
Boletín del sector
Manténgase al día sobre las tendencias más importantes e intrigantes del sector en materia de IA, automatización, datos y mucho más con el boletín Think. Consulte la Declaración de privacidad de IBM.
Su suscripción se enviará en inglés. Encontrará un enlace para darse de baja en cada boletín. Puede gestionar sus suscripciones o darse de baja aquí. Consulte nuestra Declaración de privacidad de IBM para obtener más información.
El término middleware se introdujo por primera vez a finales de la década de 1960. Se acuñó porque la versión inicial solía actuar como mediador entre el front-end de una aplicación (cliente) y un recurso de back-end. Este recurso puede ser una base de datos, una aplicación de mainframe o un dispositivo de hardware especializado desde el que el cliente puede solicitar datos. En respuesta al aumento de la computación distribuida en la década de 1980, el uso de middleware aumentó como una forma de vincular las aplicaciones más nuevas con los sistemas heredados tradicionales.
Pero el middleware actual opera mucho más allá de este alcance. El middleware del portal, por ejemplo, abarca el front-end de la aplicación, así como las herramientas para la conectividad del back-end. El middleware de base de datos suele incluir su propio almacén de datos.
El middleware ha evolucionado para desempeñar un papel esencial en el desarrollo de aplicaciones modernas nativas de la nube. Utiliza tecnología de contenedores, que permite a DevOps y a otros equipos conectarse a recursos distribuidos en entornos multinube. Esto admite la integración continua (CI) y la entrega continua (CD), CI/CD, agilizando así la codificación, las pruebas y la implementación de aplicaciones para una escalabilidad y un crecimiento empresarial rápidos.
Las empresas están aprovechando cada vez más el middleware como una oferta de servicio basada en la nube para la comunicación entre sistemas y como herramienta de gestión de datos. Según un estudio de Technavio, el mercado global de middleware como servicio (MWaaS) crecerá en 45 440 millones de dólares, con una tasa de crecimiento anual compuesta (CAGR) del 17,73 % entre 2023 y 2028. El estudio atribuye este crecimiento a la adopción generalizada del cloud computing y a un aumento de la informática sin servidor y los microservicios.1
El middleware permite a los desarrolladores crear aplicaciones sin tener que crear una integración personalizada siempre que necesiten conectarse a componentes de la aplicación (servicios o microservicios), fuentes de datos, recursos informáticos o dispositivos.
El middleware facilita la comunicación entre diferentes aplicaciones y servicios proporcionando servicios esenciales. Esta comunicación se logra mediante marcos de mensajería comunes, como la notación de objetos JavaScript (JSON), la transferencia de estado representacional (REST), el lenguaje de marcado extensible (XML), el protocolo simple de acceso a objetos (SOAP) o los servicios web. Por lo general, el middleware también proporciona servicios que permiten que los componentes escritos en varios lenguajes, como Java, C++, PHP y Python, se comuniquen entre sí.
Los componentes de arquitectura de middleware estándar incluyen lo siguiente:
Además de proporcionar interoperabilidad que ahorra trabajo, los servicios de middleware ayudan a los desarrolladores de software de las siguientes maneras.
En función de la información de solicitud del cliente o de la aplicación front-end, el middleware puede personalizar la respuesta de la aplicación back-end o del servicio. En la aplicación de comercio electrónico de un minorista, la lógica de la aplicación de middleware puede ordenar los resultados de búsqueda de productos de una base de datos de inventario back-end por ubicación de la tienda más cercana. Esta clasificación se basa en la dirección IP o la información de ubicación en el encabezado de la solicitud HTTP.
El middleware generalmente establece una conexión segura desde la aplicación front-end a las fuentes de datos back-end que utilizan seguridad de la capa de transporte (TSL) u otro protocolo de seguridad de red. Puede proporcionar capacidades de autenticación, desafiando las solicitudes de credenciales (nombre de usuario y contraseña) o certificados digitales de las aplicaciones frontend.
Cuando el tráfico de aplicaciones aumenta, el middleware empresarial puede escalar para distribuir las solicitudes de los clientes en varios servidores, en las instalaciones o en la nube. Las capacidades de procesamiento simultáneo pueden evitar problemas cuando varios clientes intentan acceder simultáneamente al mismo origen de datos back-end.
El middleware ayuda a los desarrolladores a llevar a cabo la modernización de las aplicaciones, transformando las aplicaciones heredadas monolíticas en aplicaciones en la nube construidas sobre una arquitectura de microservicios.
La automatización de middleware ayuda a los desarrolladores a optimizar y automatizar la gestión de tareas de TI complejas para mejorar la eficiencia general.
El middleware respalda las metodologías DevSecOps (que significa desarrollo, seguridad y operaciones) al ayudar a los equipos a crear aplicaciones más rápido y, al mismo tiempo, mitigar los riesgos de seguridad.
Hay muchos tipos diferentes de middleware. Algunos se centran en tipos específicos de conectividad, otros en aplicaciones, componentes de aplicaciones y dispositivos concretos. Algunos combinan capacidades de middleware para una tarea específica de desarrollo de software. Estos son algunos de los tipos de software middleware más conocidos y utilizados:
El middleware orientado a mensajes (MOM) permite que los componentes de la aplicación que utilizan diferentes protocolos de mensajería se comuniquen e intercambien mensajes. Además de traducir o transformar mensajes entre aplicaciones, MOM gestiona el enrutamiento de los mensajes, para que lleguen a los componentes adecuados en el orden adecuado. Algunos ejemplos de MOM son las colas de mensajes y agentes de mensajes.
El middleware de llamada a procedimiento remoto (RPC) permite que una aplicación active un procedimiento en otra, ya sea en el mismo equipo o en uno diferente o en una red distinta. Gracias a este proceso, ambas aplicaciones funcionan como si formaran parte de la misma aplicación en el mismo equipo.
El middleware de datos o bases de datos simplifica el acceso y la interacción con las bases de datos back-end. Normalmente, el middleware de base de datos es algún tipo de servidor de base de datos SQL.
El middleware de la interfaz de programación de aplicaciones (API) proporciona herramientas que los desarrolladores pueden usar para crear, exponer y gestionar API para sus aplicaciones para que otros desarrolladores puedan conectarse a ellas.
Algunos middleware de API incluyen herramientas para monetizar las API, lo que permite que diferentes organizaciones las utilicen, a un coste. Algunos ejemplos de middleware de API son las plataformas de gestión de API, las pasarelas de API y los portales para desarrolladores de API.
El middleware del agente de solicitudes de objetos (ORB) actúa de intermediario entre una solicitud de objeto o componente de una aplicación y su cumplimiento por parte de otro objeto o componente. Este proceso tiene lugar dentro de la red distribuida, lo que garantiza una comunicación e interacción fluidas entre los componentes.
Los agentes de solicitud de objetos (ORB) funcionan con la arquitectura común de agentes de solicitud de objetos (CORBA), que permite que un componente de software realice una solicitud a otro sin necesidad de saber dónde está alojado ni cuál es su interfaz de usuario (IU). El mecanismo de "intermediación" gestiona 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 hacen avanzar las transacciones de un paso al siguiente. Gestionan el intercambio de datos añadiendo, cambiando o eliminando datos según sea necesario hasta que se complete la transacción.
El middleware de transmisión de datos asíncrono replica un flujo de datos en un almacén intermedio, lo que permite el uso compartido de datos entre varias aplicaciones. Apache Kafka es uno de los ejemplos más conocidos de plataformas de código abierto de middleware para la transmisión de eventos en tiempo real.
El middleware de dispositivos proporciona un conjunto centrado de capacidades de integración y conectividad para desarrollar aplicaciones para un sistema operativo (SO) móvil específico.
El middleware de portal proporciona herramientas y recursos para integrar contenidos y capacidades de varias aplicaciones relacionadas "entre sí" o en una sola pantalla para crear una única aplicación compuesta.
El middleware robótico simplifica la integración de hardware, firmware y software robótico de múltiples fabricantes y ubicaciones.
Hay dos clases básicas de middleware: middleware de aplicaciones empresariales y middleware de plataforma.
El middleware de integración de aplicaciones empresariales permite a una organización establecer un centro de integración empresarial. Este sistema proporciona una forma estandarizada de conectar todas las aplicaciones, componentes de aplicaciones, procesos empresariales y fuentes de datos back-end en toda la empresa extendida.
Hasta hace aproximadamente una década, el middleware de integración de aplicaciones empresariales más frecuente era el bus de servicios empresariales (ESB), que servía como centro de integración dentro de una arquitectura orientada a servicios (SOA).
Actualmente, la plataforma de integración como servicio (iPaaS) permite a una organización conectar aplicaciones, datos, procesos y servicios a través de un cloud híbrido, la combinación de entornos locales, de nube privada y de nube pública. Esto ayuda a las organizaciones a evitar el trabajo y los gastos de 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.
Los principales proveedores de servicios cloud (CSP), como Microsoft Azure, Google Cloud, Amazon Web Services (AWS) o IBM Cloud, ofrecen soluciones iPaaS.
El middleware de plataforma (o middleware de plataforma de aplicaciones) admite el desarrollo de aplicaciones. Acelera la entrega de aplicaciones al proporcionar un entorno de alojamiento en tiempo de ejecución, como un entorno de tiempo de ejecución de Java (Java RE), contenedores o ambos, para la lógica de aplicaciones o de negocios. El middleware de plataforma puede incluir o combinar servidores de aplicaciones empresariales, servidores web, sistemas de gestión de contenidos (CMS) y otros tipos de middleware mencionados®anteriormente.
Tanto la plataforma de integración como servicio (iPaaS) como plataforma como servicio (PaaS) son soluciones informáticas basadas en la nube que sirven para diferentes propósitos. Mientras que iPaaS se centra en permitir la integración de aplicaciones, dispositivos y sistemas, PaaS proporciona a las organizaciones una plataforma para crear, ejecutar y administrar aplicaciones.
PaaS es una opción para pequeñas empresas y startups con presupuestos de TI limitados, ya que permite a los equipos crear aplicaciones de forma rentable en comparación con la creación de plataformas de desarrollo internas. iPaaS es una mejor opción para grandes organizaciones y empresas que ejecutan arquitecturas complejas y dinámicas.
Dicho esto, los servicios iPaaS a menudo funcionan con servicios cloud, incluidos PaaS y software como servicio (SaaS). Por ejemplo, las organizaciones pueden combinar iPaaS con soluciones de desarrollo PaaS (por ejemplo, Cloud Foundry, Red Hat OpenShift) o SaaS (GitHub).
El enfoque nativo de la nube es una estrategia de desarrollo de aplicaciones que utiliza tecnologías fundamentales de cloud computing para proporcionar un desarrollo, una implementación y una gestión coherentes en entornos de cloud híbrido.
Las aplicaciones nativas de la nube actuales se construyen a partir de microservicios y se implementan en contenedores que utilizan Kubernetes, una plataforma de orquestación de contenedores muy popular.
Los microservicios son componentes de aplicaciones de acoplamiento flexible que abarcan su propia pila y pueden desplegarse y actualizarse independientemente unos de otros. Se comunican mediante una combinación de API REST, agentes de mensajes y secuencias de eventos.
Los contenedores son tareas de ejecución ligeras que empaquetan el código de las aplicaciones, como los microservicios, junto con las bibliotecas y dependencias del sistema operativo necesarias para ejecutar ese código en cualquier infraestructura de TI tradicional o en la nube.
Juntas, estas y otras tecnologías relacionadas crean una potente plataforma que se desarrolla una vez y se implementa en cualquier lugar para ofrecer aplicaciones de nube híbrida nuevas y modernizar los sistemas heredados tradicionales para su uso en la nube. Sin embargo, también conducen a un entorno de desarrollo complejo que combina aún más aplicaciones informáticas, fuentes de datos, lenguajes de programación, herramientas y sistemas distribuidos.
El middleware puede resolver parte de esta complejidad. No obstante, ejecutar aplicaciones contenerizadas con middleware convencional puede añadir complejidades propias, incluida la sobrecarga de infraestructura que los contenedores fueron diseñados para eliminar. Por esta razón, las plataformas de desarrollo de aplicaciones en la nube incluyen middleware en contenedores o modulares para que solo las funciones de conectividad requeridas se puedan empaquetar en un contenedor.
El middleware apoya el desarrollo de juegos sirviendo de motor de juego. Esta capa de software ayuda a integrar a la perfección el vídeo, el audio y otros componentes cruciales del juego.
Para las instituciones financieras, el middleware integra aplicaciones y bases de datos de clientes para apoyar los servicios de banca digital, incluido el procesamiento de transacciones en tiempo real.
El acceso y el intercambio seguro de datos sanitarios han supuesto un reto. El middleware es crucial para la interoperabilidad sanitaria, lo que permite un flujo de datos fluido en diversos sistemas y aplicaciones sanitarias, como plataformas de telemedicina y registros de salud electrónicos (EHR).
Las organizaciones de comercio electrónico utilizan middleware para conectar sus plataformas en línea con servicios back-end cruciales, como el procesamiento de pedidos para mejorar la experiencia global del cliente.
En la fabricación, el middleware ayuda a garantizar que los sistemas de software empresarial, incluidas las plataformas de planificación de recursos empresariales (ERP), se integren con otras aplicaciones para proporcionar una visión unificada de las operaciones. Este enfoque ayuda a optimizar y agilizar el mantenimiento, la cadena de suministro, el control de calidad y mucho más.