SOA: Algunos conceptos, ideas y más siglas….

La semana pasada os hablaba del concepto de SOA (Service Oriented Infraestructure), de que aspectos hay que considerar a la hora de empezar a hablar de una implementación SOA y siempre previamente a tener cualquier consideración relativa a tecnología. Siguiendo con la idea del post anterior, en esta entrada os comentaremos algunos conceptos que suelen aparecer emparejados con SOA. Partiendo de la idea básica de que desde la perspectiva de SOA, el primer paso siempre pasa por entender la problemática de negocio concreta, detectar los requerimientos y necesidades no cubiertos o mal satisfechos, para a partir de aquí definir en términos de SOA la solución que sea capaz de resolver esta probelmática.


Una vez que tenemos diseñada la solución: incluye la información necesaria para los procesos de negocio,se especifica que hay que hacer con esta información (integrarla en procesos de negocio, realizar transformaciones, etc), determinar los flujos de información y como el usuario interactua con ella,…el siguiente paso consiste en diseñar un ecosistema de servicios sobre las aplicacione existentes (ya empezamos a hablar de tecnología), definido como una capa separada que permita exponer la información de estas aplicaciones, consumirla de forma sencilla y componer estos servicios en servicios más complejos de manera que se consiga satisfacer cada vez requerimientos de negocio más complejos y completos.






image

Por lo tanto, según esta filosofía lo que se pretende es poder realizar cambios rápidos partiendo de los sistemas existentes (y cuya información exponemos definiendo una serie de servicio) como camino para que nuestra implementación SOA esté alineada con las ideas claves de la filosofía SOA:



  • Se parte siempre de las necesidades de negocio.
  • El beneficio clave es que los procesos de negocio se agilizan, no lo es la reuitilización de servicios y el consecuente ahorro de costes.
  • Implementamos funcionalidades de manera incremental y en sucesivas iteracciones vamos añadiendo nuestras capacidades hasta que al final llegamos a la implementación SOA completa y final que resuelve toda la problemática planteada.


¿Más siglas?


Pues sí, además de SOA, existen otros conceptos asociados a esta filosofía sobre los que se asienta cualquier solución o implementación SOA que se precie:



  • SOI (Service Oriented Infrestructure), que como su nombre indica hace referencia a los aspectos relativos a infraestructura tecnológica (servicios) que necesita una solución SOA. En partícular, y siguiendo las ideas comentadas, una SOI consiste en una infraestructura virualizada compuesta por una serie de elementos (de hecho, estamos hablando de un verdadero pool de recursos: servidores web, de base de datos, de aplicaciones, …) que son gestionados de una manera industrial:

    • Expuestos como un cátalogo de servicios (vs instancias discretas), lo que facilita su reutilización y asignación dinámica (se sigue claramente la filosofía de SOA).
    • Asegura pleno soporte a las soluciones e implementaciones SOA.


Como siempre, Microsoft tiene perfectamente definido que es lo que se debería entender por SOI, y como muestra aquí tenéis un poster espectácular de una SOI en plataforma Microsoft. En esta mismo enlace podéis acceder a toda la información relativa a SOI que Microsoft pone a nuestra disposición.


image



  • ESB (Enterprise Service Bus), que es una arquitectura software estándar construida a partir de implementaciones estándares (WS-*, XML, RSS, ..) que proporciona servicios a arquitecturas más complejas (viene a vertebrar una empresa) a través de un modelo de intercambio de mensajes (XML) gobernado por eventos (lo que se traduce en consumo directo de servicios o bien en modelado de procesos de negocio mediante orquestaciones, definiendo el uso de reglas de negocio, …). De ESB se puede hablar largo y tendido, aunque destacaría los siguientes mitos y hechos reales:

    • ESB no es la implementación concreta de SOA, pero si da las bases para ello. De hecho, un ESB es uno de los componentes de SOI.
    • ESB no es lo mismo que un EAI (Enterprise Application Integration) pues frente a este, ESB elimina el acoplamiento que apercía entre el servicio llamado y el protocolo de transporte utilizado (FTP, HTTP, SQL,…).
    • No sólo se basa en servicios web, sino que va más allá y trata de basarse en servicios en general.


image


Un ESB viene a ser un MOM (Message Oriented Middleware) que facilita y permite la comunicación entre distintos componentes dentro de una organización de un modo transparente, fiable y de modo síncrono / asíncrono. Para ello se utiliza XML como formato estándar de intercambio de información, las aplicaciones son expuestas como servicios a través de una serie de conectores que no están atados al protocolo de transporte, y se trata de escenarios de mensajería pura o bien escenarios más complejos que necesitan de orquestaciones y otros tipos de coordinación…¿y qué dice Microsoft con respecto a ESB?  Pues que el concepto de ESB no se tiene que quedar confinado a resolver problemáticas intra-empresa, sino que tiene que ser capaz de adaptarse a situaciones más complejas y reales:






image

Es decir, lo normal es que el día a día de una organización dependa de otros: proveedores, clientes, otras delegaciones o departamentos, etc. Por lo tanto, lo que hay que hacer es extender el bus para que:



  • Permita resolver problemáticas intra-empresa, a partir de definir lo que se llama infraestructuras SOA On-Premise, es decir, definir una serie de servicios débilmente acoplados, que expongan las aplicaciones para ser consumidas “in situ” (en la propia organización)



De hecho, en Copeplex se ha puesto en marcha un proyecto con una serie de guías e implementaciones de ESB. Cómo os podéis imaginar, toda estas implementaciones se basan en BizTalk Server 2006 (cuya R2 será lanzada oficialmente en España mañana)



  • El otro escenario que cubre un ESB según Microsoft, pero redifindo a Internet Service Bus es justo el que hemos comentado, ser capaz de interactuar con otras organizaciones, de intercambiar información, etc. En este caso, Microsoft ha definido los BizTalk Services que permiten que los servicios expuestos a través del bus puedan ser consumidos más allá de los límites de la organización y tráspasandolos de manera adecuada. Las primeras CTP’s de estos servicios las tenéis aquí.

Y hasta aquí este nuevo post relativo a ideas y otros conceptos relacionados con la filosofía y mundo SOA. Esperamos que a pesar de lo abstracto de los temas tratados, os resulte útil.

Publicado por

Juan Carlos González

Juan Carlos es Ingeniero de Telecomunicaciones por la Universidad de Valladolid y Diplomado en Ciencias Empresariales por la Universidad Oberta de Catalunya (UOC). Cuenta con más de 12 años de experiencia en tecnologías y plataformas de Microsoft diversas (SQL Server, Visual Studio, .NET Framework, etc.), aunque su trabajo diario gira en torno a SharePoint & Office 365. Juan Carlos es MVP de Office Servers & Services desde 2015 (anteriormente fue reconocido por Microsoft como MVP de Office 365 y MVP de SharePoint Server desde 2008 hasta 2015), coordinador del grupo de usuarios .NET de Cantabria (Nuberos.Net, www.nuberos.es), co-fundador y coordinador del Grupo de Usuarios de SharePoint de España (SUGES, www.suges.es), así como co-director de la revista gratuita en castellano sobre SharePoint CompartiMOSS (www.compartimoss.com). Hasta la fecha, ha publicado 8 libros sobre SharePoint & Office 365 y varios artículos en castellano y en inglés sobre ambas plataformas.

3 comentarios en “SOA: Algunos conceptos, ideas y más siglas….”

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *