Diseño en SOA

Anuncio
Ingeniería de Software en SOA
ECSDI
LSI-FIB-UPC c b e a
Curso 2015/2016
ECSDI (LSI-FIB-UPC cbea)
Ingeniería de Software en SOA
Curso 2015/2016
1 / 44
Índice
1
Directrices para la IS en SOA
2
Modelo de referencia OASIS SOA
3
Aquitectura de referencia OASIS SOA
4
Arquitectura de servicios web W3C
ECSDI (LSI-FIB-UPC cbea)
Ingeniería de Software en SOA
Curso 2015/2016
2 / 44
Directrices para la IS en SOA
1
Directrices para la IS en SOA
2
Modelo de referencia OASIS SOA
3
Aquitectura de referencia OASIS SOA
4
Arquitectura de servicios web W3C
ECSDI (LSI-FIB-UPC cbea)
Ingeniería de Software en SOA
Curso 2015/2016
3 / 44
Directrices para la IS en SOA
Diseño de sistemas distribuidos
Hasta ahora la ingeniería del software ha visto los sistemas
computacionales como entidades monolíticas
La fase de análisis ve el sistema completo como una caja negra
A partir de ahí se especifican las funcionalidades
Se puede a posteriori distribuir algunas funcionalidades de
acuerdo con algunos requisitos funcionales o no funcionales
Problema: Se aborda la distribución estructural y funcional
demasiado tarde en el proceso
ECSDI (LSI-FIB-UPC cbea)
Ingeniería de Software en SOA
Curso 2015/2016
4 / 44
Directrices para la IS en SOA
Directrices para distribución en SOA
Diferentes grupos de estandarización han desarrollado directrices
sobre el desarrollo de arquitecturas orientadas a servicios de una
manera abstracta
OASIS
Reference Model for Service Oriented Architecture 1.0
(10/2006)
Reference Architecture Foundation for Service Oriented
Architecture 1.0 (12/2012)
W3C
W3C Web Services Architecture (2/2004)
ECSDI (LSI-FIB-UPC cbea)
Ingeniería de Software en SOA
Curso 2015/2016
5 / 44
Modelo de referencia OASIS SOA
1
Directrices para la IS en SOA
2
Modelo de referencia OASIS SOA
3
Aquitectura de referencia OASIS SOA
4
Arquitectura de servicios web W3C
ECSDI (LSI-FIB-UPC cbea)
Ingeniería de Software en SOA
Curso 2015/2016
6 / 44
Modelo de referencia OASIS SOA
¿Qué es el SOA Reference Model?
Modelo abstracto para el desarrollo de Arquitecturas Orientadas
a Servicios
Marco de referencia para entender las relaciones entre los
elementos de un entorno SOA
El modelo de referencia define SOA en un sentido abstracto
Por ejemplo, indica que se puede tener una descripción de
servicio, pero no su realización concreta, que podría ser por
ejemplo a partir de WSDL (Web Service Description Language)
ECSDI (LSI-FIB-UPC cbea)
Ingeniería de Software en SOA
Curso 2015/2016
7 / 44
Modelo de referencia OASIS SOA
SOA RM: Definición
“Un modelo de referencia es un marco abstracto para
entender las relaciones significativas entre las entidades de
un entorno y para el desarrollo de estándares consistentes o
especificaciones que soportan ese entorno.
Un modelo de referencia está basado en un conjunto
pequeño de conceptos unificadores, no está ligado
directamente a ningún estándar, tecnología u otros detalles
de la implementación concreta, simplemente busca dar una
semántica común que pueda ser usada de manera no
ambigua dentro y entre diferentes implementaciones”
(Extraído del documento SOA-RM)
ECSDI (LSI-FIB-UPC cbea)
Ingeniería de Software en SOA
Curso 2015/2016
8 / 44
Modelo de referencia OASIS SOA
Objetivo del SOA RM
Establece cuáles son los elementos que tienen en común todas
las implementaciones de SOA
Indica cuales son los elementos mínimos necesarios para la
orientación a servicios
Da una manera para poder:
Describir los conceptos esenciales
Describir sus relaciones
Describir los conceptos y relaciones sin hacer referencia a una
implementación concreta
Pretende ser un marco abstracto que permita realizar
descripciones que se usen para construir arquitecturas concretas
ECSDI (LSI-FIB-UPC cbea)
Ingeniería de Software en SOA
Curso 2015/2016
9 / 44
Modelo de referencia OASIS SOA
SOA RM - Conceptos Principales
Visibilidad
Contexto de
Ejecución
Descripción de
Servicio
Servicio
Efecto en el
Mundo Real
Interacción
Contrato y Política
ECSDI (LSI-FIB-UPC cbea)
Ingeniería de Software en SOA
Curso 2015/2016
10 / 44
Modelo de referencia OASIS SOA
SOA RM - Conceptos Principales
Servicio: Mecanismo para dar acceso a una o más capacidades,
el acceso se da mediante una interfaz y es ejecutado de manera
consistente según las especificaciones de la descripción del
servicio
Visibilidad: Para que un prestador de servicio sea accedido por
un consumidor deben poder ser visibles
Interacción: La interacción con un servicio involucra realizar una
acción hacia el servicio, habitualmente a través del intercambio
de mensajes
ECSDI (LSI-FIB-UPC cbea)
Ingeniería de Software en SOA
Curso 2015/2016
11 / 44
Modelo de referencia OASIS SOA
SOA RM - Conceptos Principales
Efecto en el mundo real: Hay un propósito asociado a la
interacción con un servicio, el resultado de esa interacción puede
ser un intercambio de información o un cambio en el estado
interno o compartido entre servicios
Descripción de servicio: Representa la información necesaria para
poder usar un servicio en términos de su existencia,
accesibilidad, funciones, restricciones, políticas y formato y
contenido de las interacciones
ECSDI (LSI-FIB-UPC cbea)
Ingeniería de Software en SOA
Curso 2015/2016
12 / 44
Modelo de referencia OASIS SOA
SOA RM - Conceptos Principales
Políticas y contratos: Una política son las condiciones o
restricciones de uso, un contrato representa el acuerdo entre
partes de prestación de servicio
Contexto de ejecución: Conjunto de elementos de
infraestructura, entidades de proceso, elementos de política y
acuerdos que se identifican como parte de la instanciación de
una interacción
ECSDI (LSI-FIB-UPC cbea)
Ingeniería de Software en SOA
Curso 2015/2016
13 / 44
Modelo de referencia OASIS SOA
SOA RM - Otros conceptos
A partir de estos conceptos se desarrollan otros conceptos
asociados:
Visibilidad: Conocimiento, voluntad de cooperación y
posibilidad de acceso
Interacción: Modelo de información, estructura, semántica,
modelo de comportamiento, modelo de acción, modelo de
proceso
Efecto en el mundo real: Estado compartido
Descripción de servicio: Interfaz de servicio, funcionalidad
Políticas y contratos: Políticas de servicio, contrato de servicio,
aserciones sobre la política, obligaciones
ECSDI (LSI-FIB-UPC cbea)
Ingeniería de Software en SOA
Curso 2015/2016
14 / 44
Aquitectura de referencia OASIS SOA
1
Directrices para la IS en SOA
2
Modelo de referencia OASIS SOA
3
Aquitectura de referencia OASIS SOA
4
Arquitectura de servicios web W3C
ECSDI (LSI-FIB-UPC cbea)
Ingeniería de Software en SOA
Curso 2015/2016
15 / 44
Aquitectura de referencia OASIS SOA
Que es el SOA Reference Arquitecture Foundation
Supone un paso de refinamiento sobre el reference model
Entra en los detalles de los conceptos de SOA-RM
Muestra como los sistemas SOA pueden ser implementados
planteado desde un nivel abstracto y de manera independiente
de las tecnologías que pueden se usadas para ello
Da una perspectiva de SOA desde el punto de sistemas
dinámicos en lugar de un sistema software estático
ECSDI (LSI-FIB-UPC cbea)
Ingeniería de Software en SOA
Curso 2015/2016
16 / 44
Aquitectura de referencia OASIS SOA
SOA-RAF: Definición
“Una arquitectura de referencia modela los elementos
arquitectónicos abstractos en un dominio de manera
independiente de las tecnologías, protocolos y productos
que son usados para una implementación específica.
Su diferencia con un modelo de referencia es que este
describe los conceptos importantes del dominio y sus
relaciones focalizándose en que los distingue; una
arquitectura de referencia elabora más allá el modelo para
mostrar una visión mas detallada mostrando qué involucra el
implementar las entidades modeladas, pero manteniéndose
independiente de una implementación particular”
(Extraído del documento SOA-RAF)
ECSDI (LSI-FIB-UPC cbea)
Ingeniería de Software en SOA
Curso 2015/2016
17 / 44
Aquitectura de referencia OASIS SOA
SOA-RAF: Elementos de SOA
SOA-RAF asume que un sistema SOA involucra:
Uso de recursos que están distribuidos más allá del entorno
cercano de los actores
Personas y sistemas interaccionando entre ellos también más
allá de su entorno cercano
Seguridad, manejo de recursos y gobernanza distribuidas
Interacción entre personas y sistemas realizado principalmente a
través de un intercambio de mensajes con fiabilidad y apropiado
para las intenciones y usos establecidos
A un sistema con estos elementos se le denomina un
ecosistema SOA
ECSDI (LSI-FIB-UPC cbea)
Ingeniería de Software en SOA
Curso 2015/2016
18 / 44
Aquitectura de referencia OASIS SOA
SOA-RAF: Puntos de vista
SOA RAF describe la arquitectura SOA desde tres puntos de
vista:
1
Participación en un ecosistema SOA, captura la visión como
un entorno para personas que realizan actividades que
involucran múltiples participantes (en particular negocios)
2
Realización del ecosistema SOA, captura los elementos de
infraestructura que son necesarios para soportar la construcción
de sistemas SOA
3
Propiedad en un sistema SOA, captura los elementos
necesarios para definir la propiedad y la gestión del sistema,
como se toman las decisiones, como se promulgan y como se
hacen efectivas
ECSDI (LSI-FIB-UPC cbea)
Ingeniería de Software en SOA
Curso 2015/2016
19 / 44
Aquitectura de referencia OASIS SOA
SOA-RAF: Participación en un ecosistema SOA
Modelos
El modelo del ecosistema SOA, define las relaciones
principales entre la estructura social y el sistema SOA, así como
el rol que realizan los participantes
El modelo de estructura social del ecosistema SOA,
introduce los elementos que hay bajo las relaciones entre los
participantes que permiten ligar sus necesidades y capacidades
El modelo de acción en un ecosistema SOA, introduce los
elementos clave que se refieren a las acciones de servicio y
definen como los efectos en el mundo real y la acción conjunta
son el objetivo que motivan las interacciones
ECSDI (LSI-FIB-UPC cbea)
Ingeniería de Software en SOA
Curso 2015/2016
20 / 44
Aquitectura de referencia OASIS SOA
SOA RAF - Participación en un ecosistema SOA
Modelo del ecosistema
ECSDI (LSI-FIB-UPC cbea)
Ingeniería de Software en SOA
Curso 2015/2016
21 / 44
Aquitectura de referencia OASIS SOA
SOA-RAF: Realización de un ecosistema SOA
Modelos
El modelo de descripción de servicio, define la información
necesaria para usar, desplegar, manejar y controlar un servicio.
Conceptos asociados: interfaz, funcionalidad políticas, métricas,
acciones, invocación, ...
El modelo de visibilidad de servicio, define los elementos que
permiten definir el conocimiento, la accesibilidad y la voluntad
de los servicios. Conceptos asociados: mediación, protocolo,
punto de contacto, presencia, ...
ECSDI (LSI-FIB-UPC cbea)
Ingeniería de Software en SOA
Curso 2015/2016
22 / 44
Aquitectura de referencia OASIS SOA
SOA-RAF: Realización de un ecosistema SOA
Modelos
El modelo de interacción con servicios, define los elementos
de las interacciones como las dependencias entre interacciones,
el intercambio de mensajes y la composición de servicios
El modelo de políticas y contratos, define los elementos
relativos a las restricciones impuestas por los dueños de los
servicio y a los acuerdos entre participantes
ECSDI (LSI-FIB-UPC cbea)
Ingeniería de Software en SOA
Curso 2015/2016
23 / 44
Aquitectura de referencia OASIS SOA
SOA-RAF: Propiedad en un ecosistema SOA
Modelos
El modelo de gobernanza, define los conceptos para que las
organizaciones puedan establecer políticas y procedimientos
suficientes para que haya una estandarización dentro y fuera de
la organización: Conceptos: Reglas, normativas, cumplimiento,
sanciones, ...
El modelo de seguridad, define los conceptos que permiten
asegurar la confianza en el ecosistema. Conceptos:
Confidencialidad, integridad, autentificación, autorización,
auditoría, control de acceso, ...
El modelo de gestión, define los conceptos que permiten
controlar los recursos de acuerdo con las políticas definidas por
la gobernanza y está ligado a todos los otros conceptos
ECSDI (LSI-FIB-UPC cbea)
Ingeniería de Software en SOA
Curso 2015/2016
24 / 44
Arquitectura de servicios web W3C
1
Directrices para la IS en SOA
2
Modelo de referencia OASIS SOA
3
Aquitectura de referencia OASIS SOA
4
Arquitectura de servicios web W3C
ECSDI (LSI-FIB-UPC cbea)
Ingeniería de Software en SOA
Curso 2015/2016
25 / 44
Arquitectura de servicios web W3C
Servicios Web W3C
Los servicios web pueden verse como un paso más en la
concreción del desarrollo e implementación de SOA
Un servicio web es identificado en el documento Web Services
Architecture del W3C como un método estándar para la
interoperabilidad entre diferentes aplicaciones software que se
ejecutan en diferentes plataformas
ECSDI (LSI-FIB-UPC cbea)
Ingeniería de Software en SOA
Curso 2015/2016
26 / 44
Arquitectura de servicios web W3C
Servicios Web W3C
“Un Servicio Web es un sistema software diseñado para
soportar la interacción máquina-máquina en una red. Su
interfaz está descrita en un formato procesable
automáticamente (WSDL).
Otros interaccionan con él según su descripción
intercambiando mensajes SOAP a través de HTTP y una
serialización XML”
ECSDI (LSI-FIB-UPC cbea)
Ingeniería de Software en SOA
Curso 2015/2016
27 / 44
Arquitectura de servicios web W3C
Servicios Web W3C - Conceptos
Servicio/Agente
Un servicio web es una noción abstracta que se implementa a
través de un agente
Servicio web: Recurso descrito por un conjunto de
funcionalidades abstractas
Agente: código software/hardware concreto que envía y recibe
mensajes
ECSDI (LSI-FIB-UPC cbea)
Ingeniería de Software en SOA
Curso 2015/2016
28 / 44
Arquitectura de servicios web W3C
Servicios Web W3C - Conceptos
Roles
Un proveedor es la persona u organización que pone a
disposición el agente que presta el servicio
Un solicitador (requester) es la persona u organización que
desea usar el servicio y provee el agente que intercambia
mensajes con el agente del proveedor
ECSDI (LSI-FIB-UPC cbea)
Ingeniería de Software en SOA
Curso 2015/2016
29 / 44
Arquitectura de servicios web W3C
Servicios Web W3C - Conceptos
Descripción/Interaccion
Descripción de servicio
Los intercambios de mensajes entre servicios están
documentados en una descripción de servicio
Este documento define todo lo necesario para la interacción
Está descripción se hace utilizando WSDL
Opcionalmente puede incluir una descripción funcional
ECSDI (LSI-FIB-UPC cbea)
Ingeniería de Software en SOA
Curso 2015/2016
30 / 44
Arquitectura de servicios web W3C
Servicios Web W3C - Conceptos
Comportamiento/Efecto
Semántica
La semántica está definida por las expectativas acerca del
comportamiento del servicio
Supone un contrato entre partes sobre el propósito y
consecuencias de la interacción
No se define la forma de su realización, pudiendo estar
documentada o no, ser implícita o explícita, formal o informal,
negociada o no negociada
ECSDI (LSI-FIB-UPC cbea)
Ingeniería de Software en SOA
Curso 2015/2016
31 / 44
Arquitectura de servicios web W3C
Proceso general de uso de SW
ECSDI (LSI-FIB-UPC cbea)
Ingeniería de Software en SOA
Curso 2015/2016
32 / 44
Arquitectura de servicios web W3C
Arquitectura de Web Services
Modelos condeptuales
1
2
3
4
El
El
El
El
Modelo
Modelo
Modelo
Modelo
Orientado a Mensajes
Orientado a Servicios
Orientado a Recursos
de Políticas
ECSDI (LSI-FIB-UPC cbea)
Ingeniería de Software en SOA
Curso 2015/2016
33 / 44
Arquitectura de servicios web W3C
Modelo Orientado a Mensajes
Se preocupa de los mensajes, su estructura, su transporte, etc
No se preocupa de las razones de los mensajes o su propósito
Conceptos:
Dirección, remitente, destinatario
Transporte
Mensaje, cuerpo del mensaje, cabecera, relación entre mensajes,
envoltorio
Patrón de intercambio de mensajes
Política de envío
ECSDI (LSI-FIB-UPC cbea)
Ingeniería de Software en SOA
Curso 2015/2016
34 / 44
Arquitectura de servicios web W3C
Modelo Orientado a Servicio
Aspectos relativos a los servicios y las acciones
Explica las relaciones entre el agente y los servicios
Conceptos:
Acción, cualquier operación que puede realizar un servicio que
resulta de la recepción de un mensaje, o resulta en el envío de
un mensaje o provoca un cambio de estado
Agente, cualquier programa que actúa en lugar de una persona
u organización (software agente) (Proveedores/Solicitadores)
Capacidad, una funcionalidad que es declarada como disponible
o pedida por un agente
Estado objetivo, un estado de un servicio o recurso que es
deseable desde el punto de vista de una persona u organización
ECSDI (LSI-FIB-UPC cbea)
Ingeniería de Software en SOA
Curso 2015/2016
35 / 44
Arquitectura de servicios web W3C
Modelo Orientado a Servicio
Conceptos:
Descripción de Servicio, documentos que describen la interfaz y
semántica
Interfaz, mensajes y patrones de intercambio de la interacción
junto a las condiciones que implican
Rol, un conjunto abstracto de tareas que se considera relevantes
para ofrecer en un servicio
Semántica, comportamiento esperado en la interacciones
Tarea, acción o combinación de acciones asociadas a un estado
objetivo
Coreografía, secuencia y condiciones en las que múltiples
agentes intercambian mensajes para realizar una tarea hacia un
estado objetivo
ECSDI (LSI-FIB-UPC cbea)
Ingeniería de Software en SOA
Curso 2015/2016
36 / 44
Arquitectura de servicios web W3C
Modelo Orientado a Recursos
Describe los conceptos relativos a la descripción, manejo,
descubrimiento y organización de recursos
Considera que un servicio web es también un recurso
Conceptos:
Recurso, cualquier cosa que pueda tener un identificador
Descripción de recurso, un documento procesable
automáticamente que permita el descubrimiento
Identificador de recurso, nombre de recurso que permite
referenciarlo de manera única
Descubrimiento, es el acto de localizar una descripción
procesable automáticamente de un recurso que era desconocido
y cumple ciertas características
Servicio de descubrimiento, un servicio que permite obtener
descripciones de servicios
ECSDI (LSI-FIB-UPC cbea)
Ingeniería de Software en SOA
Curso 2015/2016
37 / 44
Arquitectura de servicios web W3C
Modelo de Política
Se focaliza en los conceptos relacionados con las restricciones de
uso incluyendo la seguridad y calidad de servicio
Conceptos:
Auditor, mecanismo que permite vigilar el cumplimiento de las
políticas
Política, restricciones en las acciones y/o estados de los agentes
Descripción de política, documento procesable
automáticamente que describe políticas
Obligaciones, tipo de política que indica que acciones y/o
estados un agente y/o recurso deben realizar/alcanzar
Permisos, tipo de política que indica las acciones y estados
permitidos
ECSDI (LSI-FIB-UPC cbea)
Ingeniería de Software en SOA
Curso 2015/2016
38 / 44
Arquitectura de servicios web W3C
Tecnologías WS
Las tecnologías especificadas en el estándar cubren los diferentes
niveles que necesita la implementación y el despliegue de los
servicios
SOAP para la invocación
WSDL para la descripción de servicio
XML para la serialización
No obstante cualquier otra tecnología que permita realizar los
conceptos especificados es utilizable
Por ejemplo servicios web basados en REST y HTTP
ECSDI (LSI-FIB-UPC cbea)
Ingeniería de Software en SOA
Curso 2015/2016
39 / 44
Arquitectura de servicios web W3C
Tecnologías WS
ECSDI (LSI-FIB-UPC cbea)
Ingeniería de Software en SOA
Curso 2015/2016
40 / 44
Arquitectura de servicios web W3C
Uso de servicios web
1
Proveedor y solicitador toman contacto:
El solicitador contacta mediante una dirección (provista por el
proveedor u un servicio de descubrimiento) o es el proveedor el
que inicia el contacto
2
Solicitador y proveedor acuerdan la descripción del servicio y la
semántica de la interacción
Por acuerdo explícito
Como contrato fijo impuesto por el proveedor
Como un contrato fijo impuesto por el solicitador
Como un estándar definido por una tercera parte
3
4
Descripción del servicio y semántica son alineadas para poder
intercambiar mensajes (de manera fija, dinámica, razonamiento)
Los agentes intercambian mensajes
ECSDI (LSI-FIB-UPC cbea)
Ingeniería de Software en SOA
Curso 2015/2016
41 / 44
Arquitectura de servicios web W3C
Descubrimiento de servicios web
El estándar determina la existencia de un servicio de
descubrimiento
El estándar no determina la forma en la que ese descubrimiento
se realiza
Posibilidades:
Servicio de registro, el proveedor registra su descripción de
manera activa (quién, qué)
Servicio de índice, se recopila y publica la información que
publicitan los proveedores
Peer2Peer
ECSDI (LSI-FIB-UPC cbea)
Ingeniería de Software en SOA
Curso 2015/2016
42 / 44
Arquitectura de servicios web W3C
Descubrimiento de servicios web
ECSDI (LSI-FIB-UPC cbea)
Ingeniería de Software en SOA
Curso 2015/2016
43 / 44
Arquitectura de servicios web W3C
¿Son suficientes estos modelos y arquitecturas?
SOA-RM, SOA-RAF y W3C-WSA solo describen los conceptos y
elementos que aparecen en una arquitectura SOA
No dan ninguna guía sobre cómo distribuir funcionalidades
Las metodologías de ingeniería de software estándar no dan una
guía de como desarrollar sistemas completamente distribuidos
¿Dónde debemos mirar para obtener esas guías?
ECSDI (LSI-FIB-UPC cbea)
Ingeniería de Software en SOA
Curso 2015/2016
44 / 44
Descargar