ESB

ESB como primer paso para una implementación SOA

16th junio 2016

SOA es un modelo de componentes que interrelaciona las diferentes unidades funcionales de una aplicación, llamadas servicios, a través de interfaces bien definidas entre dichos servicios. Las interfaces se definen de una manera neutral, independiente de la plataforma de hardware, sistema operativo, o lenguaje de programación en el que el servicio se implementa. Esto permite que los servicios, construidos sobre una gran variedad de tecnologías, puedan interactuar unos con otros de una manera uniforme y universal.

Esta característica de disponer de una definición neutral de las interfaces, no fuertemente ligada a ninguna implementación particular, se conoce como acoplamiento débil entre servicios. Los beneficios de un sistema débilmente acoplado consisten en su agilidad y capacidad para sobrevivir a cambios evolutivos en la estructura e implementación década uno de los servicios individuales que constituyen la aplicación en su totalidad. El acoplamiento fuerte, por otra parte, significa que los diferentes componentes de una aplicación están íntimamente relacionados en funcionalidad y forma, lo cual hace a estas aplicaciones muy vulnerables a los cambios evolutivos, ya que cualquier modificación a uno de sus componentes termina afectando a los demás. La necesidad de contar con sistemas débilmente acoplados surge de la necesidad ya mencionada de dotar a las aplicaciones de mayor agilidad, lo cual se basa a su vez en la necesidad del negocio de adaptarse rápidamente a su ambiente cambiante. Podría decirse que, en última instancia, el propósito de una SOA es desvincular las aplicaciones de las implementaciones de los componentes que dichos procesos utilizan. A esto se le llama “separation of concerns”. La gran ventaja de esta separación es que permite cambiar la implementación de los componentes sin afectar las aplicaciones y, viceversa, modificar las aplicaciones reutilizando los mismos componentes. Es evidente que este modelo puede darle a los negocios la flexibilidad que los sistemas tradicionales no podían brindar

– Ebook gratuito: Conoce cómo implementar una arquitectura de microservices- 

En SOA los diferentes servicios habitualmente no interactúan en forma directa unos con otros sino que lo hacen utilizando la mediación de un Enterprise Service Bus (ESB).

Lo que se desea evitar es una situación en la que todos los sistemas de información están interconectados de manera caótica.

Un ESB no es simplemente un “cable” que conecta los diferentes servicios; un ESB es por el contrario un elemento que puede enrutar inteligentemente cada requerimiento al componente que lo pueda brindar, en base al tipo de servicio requerido o inclusive a los datos del requerimiento. También posee la capacidad de reformatear los datos para adaptarlos a los diferentes aplicativos participantes y provee además facilidades de manejo de eventos.

En general, las capacidades necesarias para implementar SOA son:

  •  Modelar los procesos de negocio: el analista de procesos o especialista en métodos y procedimientos aplica su conocimiento del negocio para crear gráficamente un modelo del proceso y simular en su estación de trabajo los resultados de su ejecución (tiempos, costos, ingresos, recursos).
  • Ensamblar los componentes necesarios: lo cual implica completar el proceso modelado en el paso anterior con los elementos técnicos necesarios (componentes J2EE, estructuras de datos, mensajes, etcétera) que posibiliten que aquel pueda efectivamente ejecutarse.
  • Poner en marcha (deployment): es decir, poner a ejecutar el proceso ensamblado utilizando la infraestructura de software y hardware que sea necesaria, y que puede incluir elementos tales como: un motor de procesos, un ESB, etcétera.
  • Administrar los procesos: o sea, monitorear su ejecución para poder corregir en tiempo real posibles desviaciones y situaciones de excepción que puedan estar provocando, por ejemplo, demoras indeseables, y para poder evaluar los resultados de la ejecución contra las metas de negocio definidas.

La evaluación de los resultados de los procesos puede llevar en muchos casos a la decisión de rediseñarlos para poder cumplir mejor con las metas estratégicas del negocio, lo cual nos conduce nuevamente al modelado, cerrando de ese modo el ciclo.

Disponer de una infraestructura de middleware que brinde todas estas capacidades simplifica enormemente la implementación de SOA, ya que permite a los participantes del proyecto concentrarse en las funciones específicas de negocios, tales como la lógica de los procesos, la implementación óptima de los componentes, etcétera, dejando en manos del middleware las capacidades de base.

Lo que WSO2 ha hecho es justamente definir una plataforma de middleware que brinda todas esas capacidades para que sus clientes puedan aprovecharlas en el desarrollo de sus nuevos aplicativos orientados a servicios.