¿Qué es el middleware?

Fondo de exposición renderizado en 3D

¿Qué es el middleware?

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:

  • Agentes de mensajes o monitores de procesamiento de transacciones que se centran en un tipo de comunicación.
  • Servidores de aplicaciones web o middleware de dispositivos móviles que proporcionan toda la gama de capacidades de comunicación y conectividad necesarias para crear un tipo particular de aplicación.
  • Plataforma de integración basada en la nube como servicio (iPaaS)bus de servicios empresariales (EBS) que funciona como un centro de integración centralizado para conectar todos los componentes de una empresa.
  • Middleware que permite a los desarrolladores construir su propio middleware personalizado.

Las últimas noticias tecnológicas, respaldadas por los insights de expertos

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.

¡Gracias! Ya está suscrito.

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.

Orígenes del middleware

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)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

webMethods Hybrid Integration

Reinvente la integración para la era de la IA

IBM Web Methods Hybrid Integración muestra cómo las empresas pueden conectar perfectamente las aplicaciones en la nube y las aplicaciones on premises, lo que permite una transformación digital Ágil y Escalable. 

¿Cómo funciona el middleware?

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í.

Componentes de middleware

Los componentes arquitectónicos de middleware estándar incluyen lo siguiente:

  • Consola de administración de middleware: la consola de administración ofrece a los desarrolladores una visión general de los eventos, actividades y configuraciones de middleware, etc.
  • Interfaz de cliente: la interfaz del cliente en el frontend se comunica con aplicaciones backend, bases de datos, microservicios u otros servicios.
  • Interfaz interna de middleware: la interfaz interna de middleware permite a las instancias de middleware comunicarse entre sí con un protocolo especial de middleware.
  • Interfaz de la plataforma: la interfaz de la plataforma se conecta a servidores backend y diferentes sistemas operativos (SO), lo que garantiza las funciones de middleware en todas las plataformas.
  • Administrador de contratos: el administrador de contratos define las reglas de intercambio de datos que deben seguir las aplicaciones.
  • Administrador de sesiones: el administrador de sesiones garantiza una comunicación segura entre el middleware y las aplicaciones, y que no se agote el tiempo de espera.
  • Administrador de bases de datos: el administrador de bases de datos proporciona integración con diferentes bases de datos en función de requisitos específicos (por ejemplo, datos on-prem o basados en la nube).
  • Monitor de tiempo de ejecución: el monitor de tiempo de ejecución rastrea todos los movimientos de datos de middleware y proporciona informes de actividad para los desarrolladores de software.

Casos de uso de middleware para desarrolladores de software

Además de proporcionar una interoperabilidad que ahorra trabajo, los servicios de middleware ayudan a los desarrolladores de software de las siguientes maneras.

Configurar y controlar conexiones e integraciones

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.

Proteger las conexiones y la transferencia de datos

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.

Gestionar el tráfico de forma dinámica en todos los sistemas distribuidos

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.

Optimice las aplicaciones existentes

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.

Reducir las tareas manuales

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.

Admite DevSecOps

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.

Tipos de middleware

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:

  • Middleware orientado a mensajes (MOM)
  • Middleware de llamada a procedimiento remoto (RPC)
  • Middleware de datos o bases de datos
  • Middleware de interfaz de programación de aplicaciones (API)
  • Middleware de Object Request Broker (ORB)
  • Middleware transaccional
  • Middleware de transmisión de datos asincrónicos
  • Middleware de dispositivo
  • Middleware del portal
  • Middleware de robótica
  • Middleware de integración de aplicaciones empresariales

Middleware orientado a mensajes (MOM)

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.

Middleware de llamada a procedimiento remoto (RPC)

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.

Middleware de datos o bases de datos

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 .

Middleware de interfaz de programación de aplicaciones (API)

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.

Middleware de Object Request Broker (ORB)

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.

Middleware transaccional

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.

Middleware de transmisión de datos asincrónicos

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.

Middleware de dispositivo

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.

Middleware del portal

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.

Middleware de robótica

El middleware robótico simplifica la integración de hardware, firmware y software robóticos de múltiples fabricantes y ubicaciones.

Categorías de middleware

Existen dos clases básicas de middleware: middleware de aplicación empresarial y middleware de plataforma.

Middleware de integración de aplicaciones empresariales

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.

Middleware de plataforma

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.

¿Cuál es la diferencia entre iPaaS y PaaS?

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).

Middleware y aplicaciones nativas de la nube

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.

Casos de uso de la industria para middleware

Dispositivo de juegos

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.

Servicios financieros

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.

Atención médica

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).

Comercio electrónico

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.

Manufactura

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.