Global Azure Lima 2024 - Integración de Datos con Microsoft Fabric
Orquestación de Servicios y SOA
1. Java Developers Mexico https://www.facebook.com/JavaDevelopersMexico
Orquestación de Servicios y SOA
SOA, o Service Oriented Architecture, es un enfoque para desarrollar sistemas empresariales
acoplando débilmente servicios interoperables - pequeñas unidades de software que ejecutan
tareas discretas cuando se le solicite - desde sistemas separados a través de diferentes dominios
de negocio. SOA emergió en los pasados 2000s, ofreciéndole a los departamentos de IT una forma
para desarrollar servicios de negocio reutilizando componentes de programas existentes en la
empresa más que escribir código de funcionalidad redundante desde cero y desarrollar nuevas
infraestructuras para soportarlas. Con SOA, las funcionalidades son expresadas como una
colección de servicios más que una sola aplicación, haciendo un cambio fundamental en la forma
en cómo los desarrolladores enfocan el diseño de arquitecturas empresariales.
Un aspecto crucial de SOA es la orquestación de servicios. Como lo mostraremos en este artículo,
los sistemas empresariales y proyectos de integración diseñados acorde a los principios de SOA
dependen depende de una exitosa orquestación de servicios. Encontrar una plataforma con
capacidades mejoradas de orquestación de servicios, es una alta prioridad para las empresas que
buscan construir sus sistemas acorde a SOA.
Orquestación de Servicios: Haciendo que una SOA trabaje
De forma similar a un workflow organizacional, la orquestación de servicios es la coordinación y
disposición de múltiples servicios expuestos como un solo servicio agregado. Los desarrolladores
utilizan orquestación de servicios para soportar la automatización de procesos de negocio
acoplando débilmente servicios a través de diferentes aplicaciones y empresas y creando
aplicaciones compuestas de “segunda-generación”. En otras palabras, la orquestación de servicios
es la combinación de interacciones de servicios para crear servicios de negocio de alto nivel.
La orquestación de servicios trabaja a través del intercambio de mensajes en la capa de dominio
de las aplicaciones empresariales. Ya que los servicios individuales no son programados para
comunicarse con otros servicios, los mensajes deben ser intercambiados acorde a la lógica de
negocio predeterminada y orden de ejecución de forma que el servicio compuesto aplicación pueda
correr como su fuera demandado por el usuario final. Esto usualmente es llevado a cabo a través
de enterprise application integration (EAI), lo cual permite la integración de datos, y el uso de un
motor central de mensajería como es un bus de servicios empresariales (ESB), el cual enruta,
transforma y enriquece mensajes.
Relacionado a la orquestación de servicios está la coreografía de servicios. Aunque ambas son
empleadas para crear servicios compuestos y aplicaciones en arquitecturas orientadas a servicios,
vale la pena señalar las diferencias. Un modelo de coreografía de servicios trabaja sin un motor de
mensajería central u orquestador mientras que un modelo de orquestación de servicios confía en
un controlador central para acoplar servicios. En el primero, los servicios participantes cada uno
conoce la lógica de negocio y secuencia y sincronización de intercambio de mensajes. En el último,
2. Java Developers Mexico https://www.facebook.com/JavaDevelopersMexico
los servicios participantes no saben que ellos están siendo orquestados como parte de un servicio
de más alto nivel; sólo el controlador central conoce la lógica de negocio y secuencia de mensajes.
Para tener un mejor sentido de la orquestación de servicios, echemos un vistazo al siguiente
ejemplo. Un corredor de préstamos quiere hacer una solicitud de préstamo en nombre de un
cliente y usa un Servicio de Solicitud de Préstamo automatizado. El corredor accesa al Servicio de
Solicitud de Préstamo en el sistema empresarial para hacer la solicitud de préstamo inicial, la cual
es enviada a un orquestador (el motor central de mensajería) que luego llama e invoca a otros
servicios en la empresa, sistemas asociados y/o la nube para procesar esa solicitud. Los sub-
servicios individuales involucrados en la solicitud de préstamo incluyen un servicio para obtener
registros de crédito de una agencia de crédito, un servicio para retomar una lista de prestamistas,
un servicio para solicitar cuotas de un servicio bancario, y un servicio para procesar cuotas con los
datos de los otros servicios. Al mismo tiempo, los servicios orquestados componen al Servicio de
Solicitud de Préstamo, el cual luego retorna una lista of cuotas de los prestamistas potenciales al
corredor quien hizo la solicitud original.
Como lo ilustra el ejemplo anterior, la orquestación de servicios es un aspecto fundamental de una
exitosa implementación de SOA. En una arquitectura verdaderamente orientada a servicios, las
nuevas aplicaciones son creadas por orquestaciones nuevas de servicios existentes - no
escribiendo código nuevo.
Los Retos de la Orquestación de Servicios y SOA
Desde la superficie, la orquestación de servicios y SOA son conceptos relativamente simples. Para
las empresas que se enfrentan con retos de integración, el disparo de los presupuestos de TI y las
infraestructuras cada vez más complejas, la construcción de nuevas aplicaciones con componentes
de software reutilizables y granulares es un enfoque comprensivamente atractivo para crear
sistemas más ágiles y competitivos y reducir el tiempo de entrada al mercado.
La orquestación de servicios y SOA, sin embargo, pueden ser difíciles de llevar a cabo sin el
conjunto correcto de herramientas. En sus primeros días, los CTOs de grandes compañías
adoptaron con entusiasmo SOA y se fueron a su implementación con un modelo quitar y
remplazar. Tal enfoque resultó en altos costos financieros así como grandes inversiones de tiempo
ya que frecuentemente requirió que los desarrolladores orquestaran servicios a través de
programación (p.e. escribir código nuevo), rechazando el propósito final de la adopción de SOA.
Lo que era necesario es una forma más simple y más flexible para ejecutar orquestaciones de
servicios e implementar SOA. El bus de servicios empresariales (ESB) emergió como el
mecanismo go-to para la orquestación de servicios y SOA.
3. Java Developers Mexico https://www.facebook.com/JavaDevelopersMexico
Usando la Plataforma Correcta para Orquestación de
Servicios y SOA
Los ESBs y otras plataformas de integración hacen al proceso de orquestación de servicios mucho
más simple y eliminan la necesidad de codificación personalizada. Los ESBs permiten la
integración de aplicaciones empresariales (EAI) y actúan como orquestadores permitiéndoles a los
servicios comunicarse entre ellos.
Los ESBs open source como lo es Mule ofrecen interoperabilidad y flexibilidad incomparable
haciendo posible la reutilización de componentes de servicio de cualquier tipo y el intercambio de
mensajes de cualquier formato en la empresa y fuera de ella. De hecho, la versión más reciente de
Mule ESB ha sido hecha más simple para ejecutar la orquestación de servicios introduciendo una
nueva forma de combinar servicios con su característica Flow. Los Flows de Mule te permiten
seleccionar y elegir componentes para generar un flujo lineal de procesos de mensajes y crear un
servicio compuesto en una forma intuitiva.
Con la plataforma correcta, SOA cumple sus promesas de alinear los procesos de negocio con los
sistemas de IT y reducir costos mientras se permanece ágil y completamente robusto para manejar
los cambios en las demandas de los clientes y la integración de nuevas aplicaciones. Cuando la
composición de nuevos servicios de negocio es hecha simple e intuitiva, SOA puede ser adoptada
de forma exitosa - una orquestación de servicios a la vez.
Visítennos en nuestro sitio de Facebook:
https://www.facebook.com/JavaDevelopersMexico
o escríbenos al correo:
it.adesales@gmail.com
Abimael Desales López