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