SoaML: Modelando SOA

abril 21, 2012

share

Archived

SoaML es extensión del UML (Lenguaje unificado de modelado) utilizado para el modelado de servicios y arquitecturas orientadas a servicios. Este puede ser incluido con facilidad en la mayoría de las herramientas de UML.

Si lo utilizamos con herramientas MDA (Model Driven Architecture) podremos producir XSD, WSDL, Java, BPEL, etc. De manera rápida y sencilla. Estos artefactos tecnológicos generados podrán ser lo suficientemente completos como para ejecutar servicios directamente o podrán ser utilizados como plantillas para que los desarrolladores añadan el código correspondiente.

Inicios de SoaML:

SoaML fue adoptada en 2009 por el OMG después de un proceso de tres años que involucró a varios participantes de pequeñas y grandes empresas, así como integrantes del mundo académico. SoaML se basa en las experiencias previas, las metodologías y productos de estos expertos en SOA y está diseñada para apoyar las mejores prácticas de esta arquitectura, intentando lograr una normalización de términos y anotaciones.

Las organizaciones son más eficaces cuando logran comprender la relación existente entre sus servicios tecnológicos y el negocio. SoaML proporciona la capacidad de crear una arquitectura donde queda explicito la colaboración existente entre los diferentes intervinientes a través de cada uno de los servicios publicados y muestra como estos se conectan con otras partes de la arquitectura, como son los procesos, la información y las reglas de negocio.

Características y beneficios de SoaML

– Modelado de Servicio a nivel de sistema.
– Modelado del negocio.
– Fomenta y apoya el acoplamiento entre sistemas y unidades de negocio.
– Permite integrar procesos de negocio, información y modelos de datos en UML.
– Permite modelar contratos e interfaces de servicio.
– Facilita la representación del orden en el que se suceden los mensajes en un servicio.
– Representación de los participantes y los componentes que proporcionan y utilizan los servicios.
– Modelado de la evolución de los servicios con los hitos.

Modelado de la Arquitectura

SOA consiste en un la interacción de diferentes roles proveedores y consumidores de servicios para lograr un objetivo, es por eso que para su representación se utiliza un modelo de colaboración como el que se muestra a continuación:

soa_4

 

Modelado del Servicio

Cada servicio definido en la arquitectura posee información especifica a si mismo que suele ser representada en el modelo de negocio.
A través de un ServiceContract podremos definir desde la coreografía del servicio hasta su contrato de invocación e interfaces.

soa_9

De la figura anterior podemos ver que el recuadro “Opt” dentro de la coreografía representa que el componente Quote es opcional, a diferencia de Order que no lo es.
Las líneas existentes en la coreografía corresponden a los diferentes tipos de mensajes que participan de la invocación del servicio, los cuales, como vemos a continuación, pueden ser representados a través de un modelo de clases.

soa_7

Modelado del Proceso de Negocios

 A continuación veremos un diagrama que permite modelar el proceso de negocio, en donde  las columnas verticales representan a cada uno de los participantes del proceso, los rectángulos con bordes redondeados corresponden a las actividades que cada participante realiza, mientras que los rectángulos representan el punto donde los mensajes son intercambiados entre las actividades de los diferentes participantes.

soa_8