Ingeniería de Software en SOA ECSDI LSI-FIB-UPC cbea Curso 2014/2015 ECSDI (LSI-FIB-UPC cbea) Ingeniería de Software en SOA Curso 2014/2015 1 / 51
Í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 2014/2015 2 / 51
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 2014/2015 3 / 51
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 El principal problema es que 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 2014/2015 4 / 51
Directrices para la IS en SOA Directrices para distribución en SOA Diferentes grupos han elaborado documentos con directrices sobre como desarrollar 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 2014/2015 5 / 51
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 2014/2015 6 / 51
Modelo de referencia OASIS SOA Qué es el SOA Reference Model? Es un modelo abstracto para el desarrollo de Arquitecturas Orientadas a Servicios Es un 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 puedes 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 2014/2015 7 / 51
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 2014/2015 8 / 51
Modelo de referencia OASIS SOA Objetivo del SOA RM Permite establecer cuáles son los elementos que tienen en común todas las implementaciones de SOA Indica cuales son los elementos mínimos que son 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 2014/2015 9 / 51
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 2014/2015 10 / 51
Modelo de referencia OASIS SOA SOA RM - Conceptos Principales Servicio: Es un mecanismo para dar acceso a una o más capacidades donde el acceso se da mediante una interfaz y es ejecutado de manera consistente según las especificaciones de la descripción del servicio ECSDI (LSI-FIB-UPC cbea) Ingeniería de Software en SOA Curso 2014/2015 11 / 51
Modelo de referencia OASIS SOA SOA RM - Conceptos Principales 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 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 ECSDI (LSI-FIB-UPC cbea) Ingeniería de Software en SOA Curso 2014/2015 12 / 51
Modelo de referencia OASIS SOA SOA RM - Conceptos Principales 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 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 2014/2015 13 / 51
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 2014/2015 14 / 51
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 2014/2015 15 / 51
Aquitectura de referencia OASIS SOA Qué 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 2014/2015 16 / 51
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 2014/2015 17 / 51
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 2014/2015 18 / 51
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 2014/2015 19 / 51
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 2014/2015 20 / 51
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 2014/2015 21 / 51
Aquitectura de referencia OASIS SOA SOA RAF - Participación en un ecosistema SOA Estructura Social ECSDI (LSI-FIB-UPC cbea) Ingeniería de Software en SOA Curso 2014/2015 22 / 51
Aquitectura de referencia OASIS SOA SOA RAF - Participación en un ecosistema SOA Participantes, Actores, Partes Interesadas (Stakeholders) ECSDI (LSI-FIB-UPC cbea) Ingeniería de Software en SOA Curso 2014/2015 23 / 51
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 2014/2015 24 / 51
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 2014/2015 25 / 51
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 2014/2015 26 / 51
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 2014/2015 27 / 51
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 2014/2015 28 / 51
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 2014/2015 29 / 51
Arquitectura de servicios web W3C Servicios Web W3C - Conceptos Un servicio web es una noción abstracta que se implementa a través de un agente Un servicio web es un recurso descrito por un conjunto de funcionalidades abstractas Un agente es el código de software/hardware concreto que envía y recibe mensajes Un proveedor es la persona u organización que ponen 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 proveedor ECSDI (LSI-FIB-UPC cbea) Ingeniería de Software en SOA Curso 2014/2015 30 / 51
Arquitectura de servicios web W3C Servicios Web W3C - Conceptos 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 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 2014/2015 31 / 51
Arquitectura de servicios web W3C Proceso general de uso de SW ECSDI (LSI-FIB-UPC cbea) Ingeniería de Software en SOA Curso 2014/2015 32 / 51
Arquitectura de servicios web W3C Arquitectura de Web Services Modelos condeptuales 1 El Modelo Orientado a Mensajes 2 El Modelo Orientado a Servicios 3 El Modelo Orientado a Recursos 4 El Modelo de Políticas ECSDI (LSI-FIB-UPC cbea) Ingeniería de Software en SOA Curso 2014/2015 33 / 51
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 2014/2015 34 / 51
Arquitectura de servicios web W3C Modelo Orientado a Mensajes ECSDI (LSI-FIB-UPC cbea) Ingeniería de Software en SOA Curso 2014/2015 35 / 51
Arquitectura de servicios web W3C Modelo Orientado a Servicios Se preocupa de los aspectos relativos a los servicios y las acciones Explica las relaciones entre el agente y los servicios que provee/pide Conceptos: Acción, Agente, Capacidad, Estado objetivo, Descripción de Servicio, Interfaz, Rol, Semántica, Tarea, Coreografía ECSDI (LSI-FIB-UPC cbea) Ingeniería de Software en SOA Curso 2014/2015 36 / 51
Arquitectura de servicios web W3C Modelo Orientado a Servicios Detalle 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 Descripción de Servicio, documentos que describen la interfaz y semántica ECSDI (LSI-FIB-UPC cbea) Ingeniería de Software en SOA Curso 2014/2015 37 / 51
Arquitectura de servicios web W3C Modelo Orientado a Servicios Detalle Conceptos: 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 2014/2015 38 / 51
Arquitectura de servicios web W3C Modelo Orientado a Servicios ECSDI (LSI-FIB-UPC cbea) Ingeniería de Software en SOA Curso 2014/2015 39 / 51
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, Descripción de recurso, Identificador de recurso, Descubrimiento, Servicio de descubrimiento ECSDI (LSI-FIB-UPC cbea) Ingeniería de Software en SOA Curso 2014/2015 40 / 51
Arquitectura de servicios web W3C Modelo Orientado a Recursos Detalle 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 2014/2015 41 / 51
Arquitectura de servicios web W3C Modelo Orientado a Recursos ECSDI (LSI-FIB-UPC cbea) Ingeniería de Software en SOA Curso 2014/2015 42 / 51
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, Política, Descripción de política, Obligaciones, Permisos ECSDI (LSI-FIB-UPC cbea) Ingeniería de Software en SOA Curso 2014/2015 43 / 51
Arquitectura de servicios web W3C Modelo de Política Detalle 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 2014/2015 44 / 51
Arquitectura de servicios web W3C Modelo de Política ECSDI (LSI-FIB-UPC cbea) Ingeniería de Software en SOA Curso 2014/2015 45 / 51
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 2014/2015 46 / 51
Arquitectura de servicios web W3C Tecnologías WS ECSDI (LSI-FIB-UPC cbea) Ingeniería de Software en SOA Curso 2014/2015 47 / 51
Arquitectura de servicios web W3C Uso de servicios web 1 Proveedor y solicitador toman contacto: 1 El solicitador inicia el contacto a partir de la dirección provista por el proveedor u obtenida a partir de un servicio de descubrimiento 2 El proveedor inicia el contacto 2 El solicitador y proveedor se ponen de acuerdo en 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 estandar definido por una tercera parte 3 La descripción del servicio y la semántica son alineadas para poder intercambiar mensajes (de manera fija, dinámica, razonamiento) 4 Los agentes intercambian mensajes ECSDI (LSI-FIB-UPC cbea) Ingeniería de Software en SOA Curso 2014/2015 48 / 51
Arquitectura de servicios web W3C Descubrimiento de servicios web Cuando el solicitador quiere acceder a un servicio que no conoce debe descubrirlo 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 2014/2015 49 / 51
Arquitectura de servicios web W3C Descubrimiento de servicios web ECSDI (LSI-FIB-UPC cbea) Ingeniería de Software en SOA Curso 2014/2015 50 / 51
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 2014/2015 51 / 51