SOA frente a ESB
SOA es un conjunto de conceptos arquitectónicos utilizados para el desarrollo e integración de servicios. Un servicio es un paquete publicitado de funcionalidad que se ofrece a través de la web. ESB es una pieza de software de infraestructura que proporciona una construcción de arquitectura de software para proporcionar servicios básicos para arquitecturas complejas. ESB se puede utilizar como una plataforma en la que se realiza SOA.
¿Qué es SOA?
SOA (Arquitectura orientada a servicios) es un conjunto de conceptos arquitectónicos utilizados para el desarrollo e integración de servicios. SOA se ocupa de la informática distribuida en la que los consumidores consumen un conjunto de servicios interoperables. Múltiples consumidores pueden consumir un solo servicio y viceversa. Por lo tanto, SOA se usa a menudo para integrar múltiples aplicaciones que usan diferentes plataformas. Para que SOA funcione correctamente, los servicios deben estar acoplados de forma flexible con los sistemas operativos y las tecnologías de las aplicaciones subyacentes. Los desarrolladores de SOA crean servicios utilizando unidades de funcionalidad y los ponen a disposición a través de Internet. Los servicios web se pueden utilizar para implementar la arquitectura SOA. En ese caso, los servicios web se convierten en las unidades de funcionalidad de SOA accesibles a través de Internet. Los servicios web pueden ser utilizados por cualquier persona sin preocuparse por las plataformas o los lenguajes de programación utilizados para desarrollarlos. SOA se basa directamente en el principio de orientación a servicios, que habla de servicios con una interfaz simple a la que los usuarios pueden acceder de forma independiente, sin preocuparse por la implementación real de la plataforma del servicio.
¿Qué es ESB?
ESB (Enterprise Service Bus) es una pieza de software de infraestructura que proporciona una construcción de arquitectura de software para proporcionar servicios básicos para arquitecturas complejas. Pero existe una discusión considerable sobre si llamar a ESB un estilo arquitectónico o un producto de software o incluso un grupo de productos. Proporciona los servicios a través de un motor basado en estándares y basado en eventos para la mensajería (que en realidad es el bus de servicio). Además de este motor de mensajería, se proporciona una capa de abstracción para permitir que los arquitectos exploten las facilidades que ofrece el bus, sin escribir ningún código real. ESB generalmente se implementa a través de infraestructuras de middleware basadas en estándares.
El uso del término "bus" en ESB se debe al hecho de que ESB proporciona una función muy similar al bus físico de la computadora, pero a un nivel de abstracción mucho más alto. Una de las principales ventajas de tener un ESB es la capacidad de reducir el número de puntos de contacto; facilitando así la adaptación a los cambios. ESB se puede utilizar como una plataforma en la que se realiza SOA. ESB puede incorporar los conceptos de transformación/enrutamiento (relacionados con el flujo) a SOA. Además, al probar la abstracción para puntos finales (en SOA), ESB promueve un acoplamiento débil entre servicios.
¿Cuál es la diferencia entre SOA y ESB?
Existen algunas diferencias clave entre SOA y ESB. SOA es un modelo arquitectónico para implementar aplicaciones basadas en servicios débilmente acoplados. ESB es una pieza de software de infraestructura que ayuda a los desarrolladores a desarrollar servicios y comunicarse entre servicios a través de API adecuadas. ESB se puede utilizar como una plataforma en la que se realiza SOA. ESB es solo el medio a través del cual fluyen los servicios. ESB proporciona facilidades para la composición y despliegue de servicios, que a su vez implementan SOA.