Middleware
Fondo negro y azul
Middleware

El middleware acelera el desarrollo de aplicaciones distribuidas al simplificar la conectividad entre aplicaciones, componentes de aplicaciones y fuentes de datos de back-end.

Productos destacados

WebSphere Hybrid Edition

Red Hat OpenShift on IBM Cloud

WebSphere Application Server

MQ

IBM API Connect

Event Streams


¿Qué es el middleware?

Middleware es software que permite uno o más tipos de comunicación o conectividad entre dos o más aplicaciones o componentes de aplicaciones en una red distribuida. Al facilitar la conexión de aplicaciones que no fueron diseñadas para conectarse entre sí, y al brindar funcionalidad para conectarlas de manera inteligente, el middleware agiliza el desarrollo de aplicaciones y acelera el plazo de lanzamiento.

Hay muchos tipos de middleware. Algunos, como los intermediarios de mensajes o supervisores de procesamiento de transacciones, se centran en un tipo de comunicación. Otros, como los servidores de aplicaciones web o middleware de dispositivos móviles, proporcionan la gama completa de capacidades de comunicación y conectividad necesarias para crear un tipo particular de aplicación. Incluso otros, como una oferta de plataforma de integración como servicio (iPaaS) basada en Cloud o un bus de servicio empresarial (EBS), funcionan como un núcleo de integración centralizado para conectar todos los componentes de una empresa. (Incluso hay middleware que permite a los desarrolladores crear su propio middleware personalizado).

El middleware obtuvo su nombre porque el primer middleware actuaba normalmente como un mediador entre un front-end de aplicación, o cliente, y un recurso de back-end, por ejemplo, una base de datos, una aplicación de mainframe o un dispositivo de hardware especializado, desde el cual el cliente puede solicitar datos. 

Pero el middleware actual opera mucho más allá de este ámbito. El middleware de un portal, por ejemplo, abarca el front-end de la aplicación, así como las herramientas para la conectividad del back-end; El middleware de una base de datos normalmente incluye 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 conectarse a recursos distribuidos en múltiples Clouds.


Cómo funciona el middleware

Al 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 componentes de aplicaciones (servicios o microservicios), orígenes de datos, recursos de computación o dispositivos.

Lo hace proporcionando servicios que permiten diferentes  aplicaciones y servicios para comunicarse utilizando infraestructuras de mensajería comunes como JSON (notación de objetos JavaScript), REST (transferencia de estado representacional), XML (lenguaje de marcado extensible), SOAP (protocolo simple de acceso a objetos) o 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í.

Además de proporcionar esta interoperabilidad que ahorra trabajo, el middleware también incluye servicios que ayudan a los desarrolladores

  • Configurar y controlar conexiones e integraciones. Según la información de una solicitud de cliente o de una aplicación de front-end, el middleware puede personalizar la respuesta de la aplicación o servicio de back-end. En una 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 de back-end por la ubicación de la tienda más cercana, según la dirección IP o la información de ubicación en el  encabezamiento  de solicitud HTTP.
  • Conexiones seguras y transferencia de datos. El middleware normalmente establece una conexión segura desde la aplicación de front-end a las fuentes de datos de back-end mediante seguridad de la capa de transporte (TSL) u otro protocolo de seguridad de red. Y puede proporcionar capacidades de autenticación , desafiando las solicitudes de aplicaciones de front-end para credenciales (nombre de usuario y contraseña) o certificados digitales. 
  • Gestionar el tráfico de forma dinámica  en sistemas distribuidos. Cuando el tráfico de aplicaciones aumenta, el middleware empresarial puede escalar para distribuir las solicitudes de los clientes en varios servidores, localmente o en Cloud. Y las capacidades de procesamiento simultáneo pueden evitar problemas cuando varios clientes intentan acceder al mismo origen de datos de back-end simultáneamente.

Tipos de middleware

Hay muchos tipos diferentes de middleware. Algunos se centran en tipos específicos de conectividad, otros en aplicaciones, componentes de aplicaciones y dispositivos específicos; algunos combinan capacidades 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:

  • Middleware orientado a mensajes (MOM) permite que los componentes de la aplicación que utilizan diferentes protocolos de mensajería se comuniquen para intercambiar mensajes. Además de traducir (o transformar) mensajes entre aplicaciones, MOM gestiona el enrutamiento de los mensajes para que siempre lleguen a los componentes adecuados en el orden correcto. Entre algunos ejemplos de MOM se incluyen las colas de mensajes e 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 la misma computadora o en una computadora o red diferente, como si ambas fueran parte de la misma aplicación en la misma computadora.
  • El middleware de datos o bases de datos simplifica el acceso a las bases de datos de back-end y la interacción con ellas. Normalmente, 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 API de sus aplicaciones, para que otros desarrolladores puedan conectarse a ellas. Algunos middleware de API incluyen herramientas para  monetizar  las API, lo que permite que otras organizaciones las utilicen a precio de costo. Algunos ejemplos de middleware de API incluyen plataformas de gestión de API, puertas de enlace de API y portales de desarrolladores de API.
  • El middleware de intermediario de solicitud de objetos (ORB) actúa como intermediario entre una solicitud de un objeto o componente de la aplicación,  y el cumplimiento de esa solicitud por otro objeto o componente en la red distribuida. Los ORB operan con la arquitectura de intermediario de solicitud de objeto común (CORBA), que permite que un componente de software realice una solicitud de otro sin saber dónde está alojado el otro o cómo se ve su interfaz de usuario: el "intermediario" gestiona esta información durante el intercambio.
  • El middleware transaccional proporciona servicios para soportar 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 garantizan que las transacciones avancen de un paso al siguiente (ejecutando el intercambio de datos, agregando/cambiando/eliminando datos donde sea necesario, etc.) hasta su finalización.
  • El middleware de transmisión de datos asíncrona replica una transmisión de datos en un almacén intermedio, lo que permite compartir datos entre múltiples 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 específico de capacidades de integración y conectividad  para desarrollar aplicaciones para un sistema operativo móvil específico.
  • El middleware de portal proporciona herramientas y recursos para integrar contenido y capacidades de varias aplicaciones relacionadas "en el cristal", o en una sola 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óticos de varios fabricantes y ubicaciones.

Middleware de integración de aplicaciones empresariales


El middleware de integración de aplicaciones empresariales permite que una organización establezca un centro de integración empresarial, una forma estandarizada de conectar todas las aplicaciones, componentes de aplicaciones, procesos de negocio y orígenes de datos de back-end en la empresa extendida.

Hasta hace unos diez años, el middleware de integración de aplicaciones empresariales más común era el bus de servicio empresarial (ESB), que sirvió como centro de integración dentro de una arquitectura orientada a servicios (SOA). Hoy en día, un modelo alojado en Cloud llamado plataforma de integración como servicio o iPaaS, permite que una organización conecte aplicaciones, datos, procesos y servicios en entornos locales, de Cloud privada y Cloud pública, sin 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.

Middleware de plataforma


El middleware de plataforma (o middleware de plataforma de aplicación) puede dar aún más 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 de Java (Java RE) o contenedores, o ambos, para aplicaciones o lógica empresarial. El middleware de plataforma puede incluir o combinar aplicaciones empresariales  servidores, servidores web y sistemas de gestión de contenido, así como los otros tipos de middleware enumerados anteriormente.


Middleware y aplicaciones nativas de Cloud

El nativo de Cloud es un enfoque de desarrollo de aplicaciones que aprovecha las tecnologías fundamentales de computación en Cloud, con el objetivo de proporcionar un desarrollo, implementación y gestión consistentes en entornos locales, de Cloud privada o de Cloud pública. 

En la práctica, hoy en día las aplicaciones nativas de Cloud son aplicaciones creadas a partir de microservicios y desplegadas en contenedores orquestados usando Kubernetes. Los microservicios son componentes de aplicaciones poco acoplados que abarcan su propia pila y se pueden implementar y actualizar de forma independiente entre sí, y comunicarse entre sí mediante una combinación de API REST, intermediarios de mensajes y flujos de eventos. Los contenedores son ejecutables ligeros que empaquetan el código de la aplicación, como los microservicios, junto con las bibliotecas y dependencias del sistema operativo necesarias para ejecutar ese código en cualquier infraestructura tradicional de TI o Cloud.

Juntas, estas tecnologías y las asociadas, crean una plataforma poderosa que se desarrolla una vez y se implementa en cualquier lugar para ofrecer nuevas aplicaciones de Cloud híbrida totalmente nuevas, y para modernizar  sistemas heredados tradicionales para su uso en Cloud. Pero también conducen a un entorno de desarrollo complejo 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 la ejecución de aplicaciones en contenedores con middleware convencional puede agregar complejidades propias, así como el tipo de sobrecarga de infraestructura que los contenedores fueron diseñados para eliminar. Por esta razón, las plataformas populares de desarrollo de aplicaciones en Cloud, como Cloud Foundry (enlace externo a IBM) y Red Hat Open Shift  evolucionaron para incluir middleware en contenedores: middleware modularizado de modo que solo las funciones de conectividad necesarias se puedan empaquetar en un contenedor.


Middleware e IBM Cloud®

A medida que las organizaciones aceleran su transformación digital, dentro de la cual el middleware juega un papel clave, se agranda la necesidad de automatización. El cambio hacia una mayor automatización debe comenzar con pequeños proyectos exitosos, que luego puede escalar y optimizar para otros procesos y en otras partes de su organización.

Al trabajar con IBM, tendrá acceso a las funcionalidades de automatización basadas en inteligencia artificial, incluidos los flujos de trabajo preintegrados, para ayudar a acelerar la innovación haciendo que cada proceso sea más inteligente.

Dé el siguiente paso:

Empiece con una cuenta de IBM Cloud hoy mismo.


Soluciones relacionadas

Automatización basada en IA

Desde sus flujos de trabajo de negocios hasta sus operaciones de TI, lo tenemos cubierto con automatización basada en IA. Descubra cómo las empresas líderes se están transformando.


WebSphere Application Server

Un entorno de tiempo de ejecución de servidor Java flexible y muy seguro para aplicaciones empresariales


IBM API Connect

Gestione su ecosistema de API en múltiples Clouds, incluyendo el estímulo de iniciativas de socialización y monetización


Event Streams

IBM Event Streams, una plataforma de flujo de eventos basada en Apache Kafka, puede ayudarlo a reaccionar a los eventos en tiempo real para obtener experiencias de cliente más atractivas.


Red Hat OpenShift on IBM Cloud

Red Hat OpenShift en IBM Cloud aprovecha OpenShift en entornos públicos e híbridos para obtener velocidad, capacidad de respuesta al mercado, escalabilidad y confiabilidad.