Un bus de servicio de empresa (ESB) es un combinado de arquitectura de software (¿normalmente middlewares?) que proporciona servicios fundamentales para arquitecturas complejas a través de un sistema de mensajes (el bus) basado en normas reconocidas y que responde a eventos.
- Modelo de arquitectura usado para diseñar e implementar comunicación entre software que interactúa mutuamente entre sí en un SOA.
- ¿Qué hace un ESB?
- Monitoriza y controla el enrutado de una petición al servicio de respuesta. (Intercambio de mensajes de servicios).
- Resuelve los conflictos de comunicación entre servicios.
- Controla el deployment y el control de versiones de los servicios.
- Pone en orden el uso de servicios redundantes.
- Sirve servicios básicos como:
- event handling
- data transformation and mapping
- message and event queuing and sequencing
- security or exception handling
- protocol conversion
- Fuerza la calidad en la comunicación entre servicios.
- El ESB debe reemplazar todo contacto directo con la aplicación: toda la comunicación se realiza pasando por el ESB.
En general, el ESB:
- Expone el catálogo de servicios (el listado de servicios del que dispongo).
- Conoce los contratos de cada servicio (¿qué hace cada uno? (mapping) ¿qué necesita?)