El middleware es un software que permite uno o más tipos de comunicación o conectividad entre aplicaciones o componentes en una red distribuida, creando esencialmente un "pegamento de software" que une diferentes sistemas.
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 de la industria
Manténgase al día sobre las tendencias más importantes e intrigantes de la industria sobre IA, automatización, datos y más con el boletín Think. Consulte la Declaración de privacidad de IBM.
Su suscripción se entregará en inglés. En cada boletín, encontrará un enlace para darse de baja. 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 normalmente actuaba 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 a los sistemas heredados tradicionales.
Pero el middleware actual opera mucho más allá de este alcance. El middleware del portal, por ejemplo, abarca el frontend de la aplicación, así como herramientas para la conectividad del backend. El middleware de base de datos suele incluir su propio almacén de datos.
El middleware evolucionó para desempeñar un papel esencial en el desarrollo de aplicaciones modernas nativas de la nube. Emplea tecnología de contenedores, que permite a DevOps y otros equipos conectarse a recursos distribuidos en entornos multinube. Esto soporta la integración continua (CI) y la entrega continua (CD)—CI/CD—, lo que agiliza la programación, las pruebas y el despliegue de aplicaciones para un rápido escalamiento y crecimiento del negocio.
Las empresas aprovechan 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. Un estudio de Technavio proyectó que el mercado global de middleware como servicio (MWaaS) aumentaría en 45.440 millones de dólares, a una tasa de crecimiento anual compuesta (CAGR) del 17.73 % en 2023-2028. El estudio atribuye este crecimiento a la adopción generalizada de la computación en la nube y al aumento de la computación sin servidor y los microservicios.1
El middleware permite a los desarrolladores construir aplicaciones sin crear una integración personalizada siempre que necesiten conectarse a componentes de aplicaciones (servicios o microservicios), fuentes de datos, recursos informáticos o dispositivos.
El middleware facilita la comunicación entre diferentes aplicaciones y servicios al proporcionar servicios esenciales. Logra esta comunicación a través de infraestructuras 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. Normalmente, 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 arquitectónicos de middleware estándar incluyen lo siguiente:
Además de proporcionar una interoperabilidad que ahorra trabajo, los servicios de middleware ayudan a los desarrolladores de software de las siguientes maneras.
Según la información de solicitud de la aplicación cliente o frontend, el middleware puede personalizar la respuesta de la aplicación o servicio de backend. En la aplicación de un minorista de comercio electrónico, 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 de back-end por la ubicación de almacenar 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 de la aplicación frontend a las fuentes de datos backend que utilizan Transport Layer Security (TSL) u otro protocolo de seguridad de red. Puede proporcionar capacidades de autenticación, solicitudes desafiantes de aplicaciones frontend para credenciales (nombre de usuario y contraseña) o certificados digitales.
Cuando el tráfico de aplicaciones aumenta, el middleware empresarial puede escalar para distribuir las solicitudes de los clientes en varios servidores, on-premises 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 backend.
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 basadas en la arquitectura de microservicios.
La automatización de Middleware ayuda a los desarrolladores a optimizar y automatizar la administración de tareas complejas de TI 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.
Existen muchos tipos de middleware. Algunos se enfocan en tipos específicos de conectividad, otros en aplicaciones particulares, componentes de aplicaciones y dispositivos. Algunos combinan capacidades de middleware para una tarea específica de desarrollo de software. Estos son algunos de los tipos de software de middleware más conocidos y utilizados:
El middleware orientado a mensajes (MOM) permite que los componentes de la aplicación que emplean 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, por lo que siempre llegan a los componentes adecuados en el orden apropiado. Ejemplos de MOM incluyen 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 aplicación, ya sea en la misma computadora o en una computadora o red diferente. Este proceso hace que ambas aplicaciones funcionen como si fueran parte de la misma aplicación en la misma computadora.
El middleware de datos o bases de datos simplifica el acceso y la interacción con las bases de datos de back-end. Normalmente, el middleware de base de datos es algún tipo de servidor de base de datos SQL .
El middleware de 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 empleen, a un costo. Algunos ejemplos de middleware de API son las plataformas de gestión de API, las puertas de enlace de API y los portales para desarrolladores de API.
El middleware Object Request Broker (ORB) actúa como intermediario entre una solicitud de un objeto o componente de aplicación y su cumplimiento por parte de otro objeto o componente. Este proceso ocurre dentro de la red distribuida, lo que garantiza una comunicación e interacción fluidas entre los componentes.
Los intermediarios de solicitud de objetos (ORB) operan con la arquitectura común de intermediario de solicitud de objetos (CORBA), que permite que un componente de software realice una solicitud de otro sin saber dónde está alojado el otro o cómo es su interfaz de usuario (IU). El mecanismo de "intermediación" gestiona esta información durante el intercambio.
El middleware transaccional proporciona servicios para respaldar la ejecución de transacciones de datos en una red distribuida. El middleware transaccional más conocido son los monitores de procesamiento de transacciones (TPM), que impulsan las transacciones de un paso al siguiente. Gestionan el intercambio de datos agregando, 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 intercambio de datos entre múltiples aplicaciones. Apache Kafka es uno de los ejemplos más conocidos de plataformas de software medio de código abierto para la transmisión de eventos en tiempo real.
El middleware de dispositivos proporciona un conjunto enfocado de capacidades de integración y conectividad para desarrollar aplicaciones para un sistema operativo móvil (SO) específico.
El middleware de portal proporciona herramientas y recursos para integrar contenidos y capacidades de varias aplicaciones relacionadas "en el cristal" 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óticos de múltiples fabricantes y ubicaciones.
Existen dos clases básicas de middleware: middleware de aplicación empresarial y middleware de plataforma.
El middleware de integración de aplicaciones empresariales permite a una organización establecer un centro de integración empresarial. Esto proporciona una forma estandarizada de conectar todas las aplicaciones, componentes de aplicaciones, procesos de negocio y fuentes de datos de 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).
Hoy en día, la plataforma de integración como servicio (iPaaS) permite a una organización conectar aplicaciones, datos, procesos y servicios a través de una nube híbrida : 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 en la nube como Microsoft Azure, Google Cloud, Amazon Web Services (AWS) o IBM Cloud ofrecen soluciones iPaaS.
El middleware de plataforma (o middleware de plataforma de aplicación) soporta el desarrollo de aplicaciones. Acelera la entrega de aplicaciones proporcionando un entorno de alojamiento en tiempo de ejecución -como un entorno en tiempo de ejecución Java (Java RE), contenedores o ambos- para la lógica de las aplicaciones o del negocio. El middleware de plataforma puede incluir o combinar servidores de aplicaciones empresariales, servidores web, sistemas de gestión de contenido (CMS) y otros tipos de middleware mencionados anteriormente.
Tanto la plataforma de integración como servicio (iPaaS) iPaaS como la 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 gestionar aplicaciones.
PaaS es una opción popular para pequeñas empresas y empresas emergentes con cotizaciones de TI limitados, ya que permite a los equipos crear aplicaciones de manera 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 junto con los servicios en la nube, incluidos PaaS y software como servicio (SaaS). Por ejemplo, las organizaciones pueden combinar iPaaS con PaaS (por ejemplo, Foundry de nube, Red Hat OpenShift) o soluciones de desarrollo SaaS (GitHub).
Nativo de la nube es un enfoque de desarrollo de aplicaciones que usa tecnologías fundamentales de computación en la nube para proporcionar un desarrollo, despliegue y gestión congruentes en entornos de nube híbrida.
Las aplicaciones nativas de la nube de hoy en día se crean a partir de microservicios y se implementan en contenedores que emplean Kubernetes, una plataforma de orquestación de contenedores ampliamente empleada.
Los microservicios son componentes de aplicaciones débilmente acoplados que abarcan su propia pila y se pueden implementar y actualizar de forma independiente entre sí. Se comunican mediante una combinación de API REST, agentes de mensajes y flujos de eventos.
Los contenedores son tareas de ejecución ligeras que empaquetan código de aplicación, como microservicios, junto con las bibliotecas del sistema operativo y las dependencias necesarias para ejecutar ese código en cualquier nube o infraestructura de TI tradicional.
Juntas, estas y otras tecnologías relacionadas crean una poderosa plataforma de desarrollo único y despliegue en cualquier lugar para ofrecer aplicaciones de nube híbrida totalmente 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 de software, fuentes de datos, lenguajes de programación, herramientas y sistemas distribuidos.
El middleware puede resolver parte de esta complejidad. Sin embargo, la ejecución de aplicaciones en contenedores con middleware convencional puede agregar complejidades propias, incluida la sobrecarga de infraestructura para la que se diseñaron los contenedores. 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 respalda el desarrollo de juegos al servir como motor de juego. Esta capa de software ayuda a integrar sin problemas video, audio y otros componentes cruciales del juego.
Para las instituciones financieras, El middleware integra aplicaciones y bases de datos de clientes para dar soporte a los servicios bancarios digitales, incluido el procesamiento de transacciones en tiempo real.
Ha sido difícil acceder a los datos de estado y Compartirlos de forma segura. El middleware es crucial para la interoperabilidad de la atención médica, ya que permite un flujo de datos fluido en varios sistemas y aplicaciones de atención médica, como plataformas de telemedicina e historias clínicas electrónicas (EHR).
Las organizaciones de comercio electrónico emplean middleware para conectar sus plataformas en línea con servicios back-end cruciales, como el procesamiento de pedidos, para mejorar la experiencia general del cliente.
En la fabricación, el middleware ayuda a garantizar que los sistemas de software empresarial, incluidas las plataformas de planeació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 más.