Service Oriented Architecture: Con Biztalk? Pablo Abbate Servicios Profesionales Danysoft SOA supone una nueva forma de pensar acerca de la arquitectura IT para las empresas. De hecho, es una asociación entre los procesos de negocio y las IT. Es la evolución natural de los patrones de diseño implementados en los sistemas orientados a objetos. SOA define un paradigma y una arquitectura en la cual un grupo de componentes de software relacionados entre sí, autónomos y con un alto nivel de abstracción son los responsables de llevar a cabo una función de un proceso de negocio. Dichos procesos pueden comunicarse entre sí dentro de la misma empresa o, incluso, pueden comunicarse con otros procesos de negocios externos expuestos para tal propósito. SOA ha tomado relevancia en estos últimos tiempos debido a las tecnologías basadas en estándares abiertos que permiten que los sistemas heterogéneos puedan comunicarse entre sí. La arquitectura basada en servicio (SOA) según sus principios requiere: Tener un comportamiento claramente definido publicado a través de un contrato de interfase. Tener interfases que estén localizables en la red o poseer endpoints. Ser descubrible dinámicamente y ser usable Enfatizar en la interoperabilidad. Uno de los mayores aciertos de SOA es el uso de contratos con los que otras aplicaciones pueden interactuar para reducir significativamente la dependencia en la codificación y la necesidad de utilizar, conocer y/o escribir APIs. Las aplicaciones dentro de una empresa son envueltas (wrapped) por medio del uso de contratos y así se convierten en proveedoras de servicios. Dicho proceso de empaquetamiento abstrae la complejidad de las aplicaciones individuales y permite la creación de servicios desacoplados. Si se quiere utilizar un enfoque SOA en una empresa, se deberían poder clasificar a todos los procesos de negocios como servicios, lo que significaría, una interacción de mensajes semánticamente relacionados a través de los servicios los cuales los transformen, procesen o enruten (routing) para cumplir con el objetivo del negocio. Los servicios Web y SOA: Los servicios web no necesariamente son orientados a servicio, aunque si aportan una solución en la implementación de la estrategia SOA. Los WS se autodescriben utilizando WSDL y pueden ser accedidos mediante SOAP. Los WS son unidades lógicas que permiten que programas escritos en diferentes lenguajes o diferentes plataformas puedan comunicarse entre sí utilizando un protocolo estándar por Internet. De igual manera, y gracias al uso de estándares (XML, SOAP, etc.) las aplicaciones también son capaces de intercambiar datos mediante los WS, lo que enriquece aún más la potencia de esta tecnología. 18/07/2006 Valor añadido Danysoft 902 123146 www.danysoft.com Página 1.5
Por estos motivos, los WS suponen la mejor alternativa para implementar SOA Y Biztalk? Pero, Dónde encaja Biztalk dentro de esta filosofía?. Bueno, Microsoft Biztalk Server (BTS) es un producto middleware que facilita la colaboración e integración entre aplicaciones en escenarios EAI o B2B. BTS es capaz de ejecutar procesos de negocio que implementen escenarios de integración o workflows complejos, transformar datos de un formato a otro, enrutar mensajes basado en su contenido, realizar operaciones relacionadas con la seguridad tal como cifrado o firmado, capturar información de análisis para los administradores o para los analistas, comunicarse con múltiples protocolos y mecanismos, y un largo etcétera. BTS permite exponer sus orquestaciones como web services. La orquestación recibe solicitudes y envía respuestas utilizando un puerto lógico de dos vías que se encuentra físicamente enlazado al momento de poner en funcionamiento a dicha orquestación. Además, gracias al conjunto de adaptadores ofrecidos con el producto o por terceros, BTS puede conectarse con un sinnúmero de sistemas heterogéneos tales como SAP, PeopleSoft, Siebel y otros. En resumen, la caja de herramientas ideal para construir una arquitectura orientada a servicios. Patrones de diseño con Biztalk: A través del tiempo se han ido diseñando patrones en donde Biztalk ofrece valor en SOA, los dos más interesantes son Service Broker y Service Agregator. Service Broker: un service broker se sitúa entre el cliente y el web service y provee servicios de browkering en representación del web service al cliente. Gracias al uso de este patrón se puede agregar una segunda frontera de control que permite controlar el acceso al web service interno. Si posteriormente se desea encaminar los mensajes conforme a su contenido solo se tiene que agregar el nuevo web service y utilizar BTS para hacer routing de los mensajes entrantes. El service broker puede operar en modalidad request-response o one-way. Si lo hace en modalidad request-response deberá proveer alguna operación de tipo síncrona-asíncrona como es el caso de BTS.
Si bien esta arquitectura puede disminuir la performance porque impone un salto adicional a los mensajes, resulta muy adecuada para escenarios en donde la seguridad es un factor importante o bien donde el routing de mensajes es indispensable. Service Agregator: este patrón de desarrollo consiste en la exposición de una fachada de servicios que integra la sumatoria de n servicios internos en una sola interfase que es la que ve y consume el cliente. Gracias a este diseño, es posible crear procesos de negocios más amplios que implementen reglas de negocio que regulen la interacción de los servicios internos. Esto se podría llevar a cabo mediante una orquestación que llame a los servicios internos e integre el resultado en un solo mensaje que es, a su vez, enviado al cliente que realizó la solicitud. En este tipo de patrón se puede aprovechar la potencia del motor de reglas de negocio, gestión de transacciones distribuidas, así como manipulación y transformación de mensajes.
Conclusión: Está visto que cada vez más arquitectos se inclinan por diseñar arquitecturas orientadas a servicio dentro de los entornos corporativos. Sin embargo, los procesos de integración entre estos servicios requieren codificación, transformación, seguridad y gestión de mensajes. Es juntamente en estos aspectos en donde BTS aporta valor al equipo de desarrollo. BTS esconde, en gran parte, la complejidad de los procesos mediante sus orquestaciones: un lenguaje común para el mutuo acuerdo entre el analista de negocio, el arquitecto de la aplicación y el desarrollador. Gracias al enfoque distribuido, es realmente sencillo descomponer a las soluciones empresariales en servicios autónomos e independientes que colaboran entre sí en un escenario desacoplado. Quienes hayan tenido la oportunidad de trabajar en proyectos de integración de mediana o alta complejidad utilizando Biztalk sabrán de lo que estoy hablando. A aquellos que tienen por delante un desafío de estas características les recomiendo que no dejen de mirar lo que este producto tiene para ofrecer.
Para más información. Contacte con los servicios profesionales Danysoft en el 902 123146, o en info@danysoft.com, le ofrecemos servicios de consultoría, desarrollo y gestión de licencias para cubrir sus necesidades de procesos de negocio e integración.