Un Enterprise Service Bus (ESB) es una herramienta de intermediación, o middleware, que se utiliza para distribuir el trabajo entre los componentes conectados de una aplicación. Los ESB están diseñados para proporcionar un medio uniforme de mover el trabajo, ofreciendo a las aplicaciones la capacidad de conectarse al bus y suscribirse a mensajes basados en reglas simples de política estructural y negocio.
Middleware es un término general para el software que sirve para «unir» programas separados, a menudo complejos y ya existentes. Algunos componentes de software que están frecuentemente conectados con middleware incluyen aplicaciones empresariales y servicios web.
El middleware se ubica entre el sistema operativo y las aplicaciones en diferentes servidores y simplifica el desarrollo de software que aprovechan los servicios de otras aplicaciones. Esto permite a los programadores crear software de negocios sin tener que personalizar las integraciones de manualidades para cada nueva aplicación.
Enterprise Service Bus (ESB) es una herramienta que tiene uso tanto en informática distribuida como en integración de componentes. La mejor manera de pensar en esta herramienta es visualizarla como un conjunto de conmutadores que pueden dirigir un mensaje a lo largo de una ruta específica entre los componentes de la aplicación en función del contenido del mensaje y la implementación o las políticas comerciales.
Enterprise service bus vs. microservicios
Se ha hablado frecuentemente del ESB como una forma de implementar y gestionar arquitecturas basadas en SOAP, siglas del inglés Simple Object Access Protocol, como la arquitectura tradicional orientada a servicios, pero los ESB representan una estrategia de flujo de trabajo muy diferente de la que se puede encontrar en el enfoque más desacoplado asociado con microservicios.
A diferencia de los microservicios, o estrategias similares que median las conexiones de interfaz de programación de aplicaciones entre componentes, pero no establecen flujos de trabajo, un ESB es el centro del flujo de trabajo de la aplicación. Es, en efecto, una cola de mensajes que maneja los intercambios de información a través de la aplicación.
Un ESB no dicta si los componentes que usan el bus son locales o remotos, ni impone ningún requisito específico para los lenguajes de programación. En cambio, actúa para unificar las diversas formas en que los componentes pueden recibir o enviar información a otros elementos de la aplicación.
Beneficios de un Enterprise Service Bus
Entre los beneficios a mencionar se destacan:
- Una arquitectura ESB controla la forma en que se mueve el trabajo, facilita el cambio de componentes o el agregado de componentes adicionales a una aplicación.
- Un ESB lo ve todo, también lo convierte en un lugar conveniente para hacer cumplir los requisitos de seguridad y cumplimiento, registrar condiciones normales o de excepción e incluso manejar la supervisión del rendimiento de las transacciones.
- Un ESB también proporciona equilibrio de carga en el que se pueden crear copias de múltiples copias de un componente para mejorar el rendimiento.
- También puede proporcionar soporte si un componente o sus recursos fallan.
Problemas con un ESB
El desafío, en el concepto de ESB, es que no existe un solo estándar aceptado para las características o el comportamiento. Aunque se puede argumentar que la función principal de un ESB es actuar como un bus de mensajes que dirige mensajes entre aplicaciones o componentes de acuerdo con un lenguaje de políticas, con el tiempo, el término se ha utilizado para describir todo lo que admite flujo de trabajo de alguna manera.
Por ejemplo, un proveedor interacional coloca casi una docena de herramientas de middleware en la categoría ESB, pero esas herramientas pueden incluir cualquier cantidad de funciones de ESB mencionadas anteriormente.
Sin embargo, el manejo de los mensajes de acuerdo con el lenguaje de las políticas suele ser ampliamente aceptado como una función que separa los ESB de otras herramientas de middleware. Aún así, los productos se promueven generalmente vinculándolos con conceptos y características que los compradores conocen, por lo que es fundamental para los posibles usuarios definir claramente cuáles son sus necesidades de negocio, y luego validar las características de sus candidatos de ESB contra esas necesidades.
Fuente: Search Microservices
Traducido y adaptado por la división consultoría de EvaluandoCloud.com