1.02.2009

SOA: Arquitectura y Modelo Conceptual

En el post anterior vimos la definición de SOA. En este post, vamos a analizar conceptualmente que es SOA, y le vamos a dar un vistazo general a una arquitectura orientada a servicios en conjunto con todas sus capas.

SOA esta basado en un estilo de arquitectura que define un modelo de interacción entre 3 partes principales:

  • El proveedor del servicio: publica la descripción del servicio y brinda la implementación del mismo.
  • El consumidor del servicio: invoca el servicio utilizando el URI de la descripción del servicio directamente o puede encontrar la descripción del servicio  a través de un registro de servicio.
  • El service broker: brinda y mantiene el registro del servicio – aunque no muy de moda ultimamente.

En la siguiente figura podemos ver la relación entre las partes.

 image

Arquitectura Básica en SOA

La definición de la arquitectura SOA describe una serie de patrones o guías para crear servicios que sean independientes, relacionados, y alineados con el negocio. Dada la separación entre la descripción, la implementación y el “binding” del servicio, es posible tener gran flexibilidad en lo que se refiere a nuevas oportunidades de negocio – B2B.

Para poder obtener estas características, se deben de cumplir con una serie de lineamientos que nos van a permitir llegar a tener una arquitectura orientada a servicios dentro de la organización.

Una arquitectura SOA se puede ver de manera parcial y abstracta a través de un arquitectura n-layer de servicios que se alinean con los procesos del negocio. La siguiente figura nos muestra esta arquitectura n-layer.

image

En la figura anterior, podemos ver que existen una capa de aplicaciones que acceden los procesos de negocio a través de workflows que orquestan – organizan - el funcionamiento de dichos proceso. Estos procesos organizan el consumo de los servicios los cuales a su vez acceden los componentes de negocio de la organización que brinda el procesamiento requerido para la función deseada. Los componentes de negocio por lo general tienen un capa de acceso a datos que les permite acceder distintos repositorios de datos de aplicaciones que funcionan actualmente en la empresa – de aplicaciones legacy.

En el siguiente post vamos a analizar cada una de estas capas en detalle.

2 comentarios:

Anónimo dijo...

Mas que un comentario es una consulta. Ahora con los ADO.NET Data Services me suena a que son "Servicios" para acceso a Datos. Como encaja eso dentro de la arquitectura de SOA? No se si estoy preguntando algo sin sentido, pero no me queda claro.
Saludos Diego!!!

Luis D. Rojas dijo...

Miguel, en los próximos días vamos a escribir al respecto. Dejame decirte que ADO.NET data services es un concepto muy orientado a S+S, y por lo tanto es procesamiento en la nube. Pero vamos a tomar en cuenta tu consulta y vamos a ubicar estas funcionlidades dentro de una arquitectura SOA