¿Qué es un bus de servicios empresariales?

El bus de servicios empresariales (ESB) es un patrón arquitectónico de software que admite el intercambio de datos en tiempo real entre aplicaciones dispares. Las grandes organizaciones tienen múltiples aplicaciones que realizan diversas funciones mediante diversos modelos de datos, protocolos y restricciones de seguridad. El ESB facilita la integración de aplicaciones al realizar operaciones como la transformación de datos, la conversión de protocolos y el enrutamiento de mensajes. Las aplicaciones pasan los datos relevantes al ESB, que los convierte y reenvía a otras aplicaciones que los necesitan.

¿Cuáles son las ventajas de un bus de servicios empresariales?

El concepto de bus de servicios empresariales (ESB) puede estandarizar y simplificar la comunicación, la mensajería y la integración entre los servicios de una organización. A continuación, ofrecemos algunos beneficios para las implementaciones de arquitectura de ESB a pequeña escala.

Integración de aplicaciones mejorada

Un ESB ofrece una plataforma central para la integración de aplicaciones empresariales. Las organizaciones pueden integrar sin problemas todos los tipos de sistemas y aplicaciones, independientemente de sus tecnologías o protocolos subyacentes. Esto facilita a las organizaciones el mantenimiento, la administración y la escalabilidad de sus aplicaciones.

Mayor eficiencia de los desarrolladores

Los desarrolladores crean aplicaciones más rápido mediante el uso de los servicios de comunicación prediseñados proporcionados por el ESB. Los equipos comparten los costos de infraestructura y aprovisionan servidores para un uso combinado. Reducen los gastos generales y los costos operativos a la vez que mejoran la eficiencia general. Un ESB también puede acelerar el tiempo de comercialización y reducir los costos de desarrollo.

Visibilidad y control mejorados

Con un ESB, las organizaciones pueden supervisar el flujo de datos y servicios entre diferentes aplicaciones e identificar y resolver con rapidez cualquier problema que pueda surgir. Esto ayuda a las organizaciones a garantizar que sus aplicaciones estén disponibles, sean fiables y seguras.

¿Cómo funciona el bus de servicios empresariales?

Un bus de servicios empresariales (ESB) funciona según los principios de la arquitectura orientada a servicios (SOA).

La arquitectura orientada a servicios (SOA, por sus siglas en inglés) es un método de desarrollo de software que utiliza componentes de software llamados servicios para crear aplicaciones empresariales. Cada uno de estos servicios brinda una capacidad empresarial y, además, muchos de ellos pueden comunicarse también con el resto de servicios mediante diferentes plataformas y lenguajes.

La plataforma ESB proporciona servicios de comunicación que las aplicaciones utilizan para interactuar entre sí. Algunos ejemplos son la transformación de mensajes, la transformación de protocolos, el enrutamiento y la autenticación.

 
(Implementación de ESB en AWS)

A continuación, analizamos los componentes clave de la arquitectura ESB.

Puntos de conexión

En una arquitectura de ESB, los puntos de conexión se pueden considerar los puntos de entrada o salida del ESB.

Por lo general, cada punto de conexión tiene una dirección o identificador único. Puede implementar puntos de conexión mediante diversas tecnologías, como la interfaz de servicio web, las colas de mensajes o los servidores FTP. Los puntos de conexión también pueden procesar diferentes tipos de mensajes, como XML, JSON o datos binarios.

La flexibilidad de la arquitectura de punto de conexión permite que el ESB se integre con una amplia gama de sistemas y aplicaciones.

Adaptador

El componente adaptador de las herramientas de ESB traduce los mensajes entre diferentes formatos y protocolos. Esto significa que las aplicaciones de software receptoras pueden consumirlas correctamente. También puede proporcionar funciones como el registro de mensajes, la supervisión, la autenticación y el manejo de errores.

Bus

El bus es el componente principal del ESB para el intercambio de mensajes entre puntos de conexión. Utiliza un conjunto de reglas o políticas basadas en varios criterios, como el tipo de mensaje, el contenido o el destino, para enrutar los mensajes.

Puede definir las políticas en la configuración del ESB para cumplir con los requisitos de los procesos empresariales complejos. Utiliza una variedad de protocolos de comunicación, como HTTP, JMS y FTP, para comunicarse con los puntos de conexión.

El bus funciona de la siguiente manera:

  1. El bus recibe el mensaje en un punto de conexión
  2. Comprueba las reglas de la política empresarial y determina la dirección de los puntos de conexión de destino
  3. Procesa el mensaje y lo envía al punto de conexión de destino

Por ejemplo, supongamos que el bus recibe un archivo XML de una aplicación conectada al punto de conexión A. El bus Determina que el archivo XML debe enviarse a los puntos de conexión B y C. El punto de conexión B requiere datos JSON, mientras que el punto de conexión C requiere una función HTTP Put. El adaptador convierte el archivo XML en JSON y el bus lo envía al punto de conexión B. El bus realiza una solicitud HTTP con XML en el punto de conexión C.

¿Cuáles son las limitaciones del bus de servicios empresariales?

La arquitectura empresarial se ha alejado del bus de servicios empresariales (ESB) debido a las siguientes limitaciones.

Complejidad

Se requieren conocimientos técnicos especializados para implementar y mantener un ESB, lo que lo hace complejo y caro. Los bloqueos de proveedores dificultan el cambio a otra solución de ESB y limitan las opciones de integración de datos. Los equipos experimentan tiempos de espera prolongados, ya que solo el equipo de administración central del ESB puede integrar nuevas aplicaciones empresariales.

Escalabilidad

El software del ESB introduce una latencia adicional en la comunicación debido a las capas agregadas de abstracción y procesamiento. A medida que aumenta el número de puntos de conexión y la asignación de servicios de comunicación, el ESB se convierte en un obstáculo y afecta al rendimiento. El costo de implementar la alta disponibilidad y la recuperación de desastres para los servidores del ESB también aumenta.

Dificultad de actualización

Realizar mejoras en una integración de ESB puede provocar inestabilidad en otros componentes conectados y requiere pruebas importantes antes de las actualizaciones. La financiación de las actualizaciones de los proyectos de ESB requiere la colaboración de varios equipos, lo que puede resultar difícil.

¿Qué tecnologías están reemplazando a los buses de servicio empresarial?

En la actualidad, el uso de buses de servicios empresariales (ESB) se limita principalmente a los sistemas heredados que requieren integraciones complejas. El patrón arquitectónico de ESB ha sido reemplazado por la arquitectura de microservicios, entre otras tecnologías.

Una arquitectura de microservicios se compone de componentes de software muy pequeños y completamente independientes con sus propios protocolos de comunicación que se exponen a través de API ligeras. Básicamente, es el trabajo del consumidor utilizar el microservicio a través de su API, lo que elimina la necesidad de un ESB centralizado.

Para obtener más información, puede leer acerca de los microservicios y las API.

El auge de la computación en la nube y la arquitectura de microservicios ha llevado a la aparición de nuevas tecnologías que a menudo se consideran alternativas a los ESB. Hablaremos sobre algunas de ellas a continuación.

Puertas de enlace de API

Las puertas de enlace de API son componentes ligeros que proporcionan un único punto de entrada para que los clientes accedan a varios servicios. A menudo se utilizan para administrar las API, reforzar la seguridad y gestionar el tráfico.

Malla de servicios

Una malla de servicios es una capa de infraestructura dedicada a gestionar la comunicación de servicio a servicio dentro de una arquitectura de microservicios. Proporciona funciones como la detección de servicios, el equilibrio de carga y la gestión del tráfico.

Arquitectura basada en eventos

En una arquitectura basada en eventos, los servicios se comunican mediante la gestión de eventos asincrónica en lugar de solicitudes sincrónicas. Un evento es un cambio de estado, o una actualización, como un elemento que se coloca en un carro de compras de un sitio web de comercio electrónico. Los eventos pueden llevar el estado (el elemento comprado, su precio y una dirección de entrega) o pueden ser identificadores (una notificación de que se envió una orden).

¿Qué es un bus de eventos?

Muchas organizaciones han pasado de los buses de servicio empresarial (ESB) a los buses de eventos. Un bus de eventos es una canalización que recibe eventos. Conecta los componentes de la aplicación en función de los eventos, lo que facilita la creación de aplicaciones escalables basadas en eventos.

 

Las reglas asociadas al bus de eventos evalúan los eventos a medida que llegan. Cada regla comprueba si un evento coincide con los criterios de la regla. Se asocia una regla a un bus de eventos específico, por lo que la regla solo se aplica a los eventos recibidos por ese bus de eventos.

Un productor publica un evento en el bus de eventos. El bus de eventos filtra y evalúa los eventos a medida que llegan en función de reglas preconfiguradas y, a continuación, envía los eventos a los consumidores. Los servicios del productor y los servicios del consumidor se desacoplan, lo que les permite escalarse, actualizarse e implementarse de manera independiente.

¿Cómo puede AWS cumplir con sus requisitos de integración de aplicaciones?

Amazon Web Services (AWS) ofrece un conjunto de servicios de integración de aplicaciones. Dichos servicios permiten la comunicación entre componentes desasociados dentro de microservicios, sistemas distribuidos y aplicaciones sin servidor. Si tiene curiosidad, consulte más información en Integración de aplicaciones en AWS.

Por ejemplo, puede utilizar estos servicios para cumplir con sus requisitos:

  • Amazon API Gateway para crear, publicar, mantener, supervisar y proteger las API a cualquier escala para cargas de trabajo y aplicaciones web sin servidor
  • Amazon EventBridge para crear un bus de eventos que conecte los datos de las aplicaciones de sus propias aplicaciones, el software como servicio (SaaS) y los servicios de AWS
  • Amazon Simple Queue Service (Amazon SQS) para crear una cola de mensajes que envíe, almacene y reciba mensajes entre los componentes de la aplicación en cualquier volumen

Para comenzar con la integración de aplicaciones en AWS cree una cuenta hoy mismo.

Siguientes pasos en AWS

Regístrese para obtener una cuenta gratuita

Obtenga acceso instantáneo al nivel Gratuito de AWS.

Regístrese 
Comenzar a crear en la consola

Comience a crear en la consola de administración de AWS.

Iniciar sesión