Cuando pensamos en la implementación de una arquitectura SOA en nuestra organización nunca está demás, todo lo contrario, echar un ojo a la arquitectura de referencia de uno de los grandes actores en la escena SOA. Y me refiero en esta ocasión a IBM, que junto con Oracle y  SoftwareAG son quizás los más importantes y a los que hay que tener siempre como referencia.

La arquitectura SOA que propone IBM, no es nueva, podemos verla en este artículo de Developer Works de 2007, por lo que tiene la suficiente solera para convertirse en un auténtico estándar de facto. Tanto, que muchas organizaciones definen su propia visión de SOA indicando en qué se parece o en que se diferencia de la que  propone IBM.

La arquitectura de referencia de IBM define 9 capas:

  1. Sistemas operacionales (Operational Layer):
    Es el inventario de todos las las aplicaciones existentes y que proporcionan la lógica de negocio o Core de la empresa. Aplicaciones hechas a medida, aplicaciones comperciales, sistemas legacy, bases de datos, etc.
  2. Capa de componentes de servicio (Service Components Layer):
    Es la implementación de un servicio y según IBM debe cumplir con SCA (Service Componente Architecture) y con SDO (Service Data Objects).
    Personalmente, creo que este es un punto flaco de esta arquitectura. ¿qué pasa si la lógica de la capa operacional ya se se ofrece como un servicio web? ¿es necesario hacer este componente? esto implica mucho trabajo para poca ganancia.
  3. Capa de servicios (Services Layer): 
    Esta capa contienen los servicios de negocio de la compañía. Están implementados con una tecnología estándar independiente  de la plataforma. Tiene un descriptor, WSDL, que igualmente es estándar y que define el interfaz del servicio (con qué parámetros se invoca y cuáles devuelve).
    Se pueden crear servicios compuestos, combinando otros servicios más simples.
  4. Capa de procesos de negocio (Business Process Layer):
    En esta capa se ubican los servicios compuestos, formados por la combinación de servicios más sencillos de la capa anterior. También se encuentran los procesos BPM (coreografías de servicios) que modelan casos de uso específicos y procesos de  negocio de la organización. Cada proceso se un flujo de tareas automáticas o humanas (tienen que ser realizados por una persona).
  5. Capa de consumidores (Consumers Layer):
    Aquí se encuentran todos los posibles consumidores de los servicios. Debido a la característica de multicanalidad de los propios servicios y dado la cantidad de dispositivos existentes actualmente para acceder a los mismos, los consumidores pueden ser de tipo muy heterogéneo: puede ser las aplicaciones de oficina, aplicaciones con interfaz web del canal de internet, pueden ser socios de la empresa (B2B), usuarios finales con sus smartphones, etc. etc.
    Es importante recalcar que los servicios son “agnósticos” respecto a la forma de su consumo o a la presentación que se va a hacer al usuario final.
    Todos los servicios están dados de alta en el registro de sevicios a fin de que los consumidores puedan localizar el servicio que necesiten y sean independientes de la localización física del servicio.
  6. Capa de integración (Integration Layer):
    Esta es una capa de infraestructura que proporciona las capacidades de mediación, enrutado y tranporte de la petición desde el cliente hasta el servicio concreto. Estas capacidades se implementan mediante un Enterprise Service Bus (ESB)
  7. Capa de calidad del servicio (QoS Layer):
    Esta capa proporciona la capacidad de realizar los requerimientos no funcionales necesarios, por ejemplo, monitorización de los servicios, trazas, alertas de no cumplimiento del nivel de servicio acordado (SLA), etc, asegurando que se cumplen los niveles mínimos de escalabilidad, disponibilidad y seguridad necesarios.
    Desde el punto de vista de negocio, proporciona la funcionalidad de Business Actitivity Monitor (BAM), es decir, el estado en tiempo real del proceso desde el punto de vista de negocio. Por ejemplo, se puede saber mediante un cuadro de mando, las hipotecas pedidas, las pendientes de estudio, las que están esperando la aprobación, etc, etc. Esto se hace mediante el desarrollo dentro del proceso de KPI (Key Performance Monitor) que son recogidos por el BAM y mostrados al usuario.
  8. Capa de información (Information Architecture Layer):
    En esta capa se recolecta información susceptible de formar datamarts y data wharehouses para su posterior análisis.
  9. Capa de Gobierno (Governance Layer):
    Cubre todos los aspectos relativos al ciclo de vida de los servicios. Incluidos los aspectos de seguridad, capacidad, rendimiento y seguridad de los servicios.
    Puedes ver varias entradas sobre gobierno SOA en este mismo blog: aquí y aquí.
Conclusiones:
Es muy importante que tengamos una arquitectura de referencia en mente a la hora de abordar la adopción de SOA. Por supuesto, no debemos limitarnos a coger una arquitectura “de libro” como la de IBM. Tenemos que adaptarla a nuestras necesidades. Sobre todo al principio, no es necesario hacer un “bing bang” y empezar con todos estas capas que indica IBM. Es mejor empezar “pequeño” y crecer después (ver el punto 8 de esta entrada).

Comparte esta entrada:
Share
Anuncios