Capítulo 7: Introducción a la dinámica de servicios Web

Tamaño: px
Comenzar la demostración a partir de la página:

Download "Capítulo 7: Introducción a la dinámica de servicios Web"

Transcripción

1 Servicios Web Capítulo 7: Introducción a la dinámica de servicios Web Pedro J. Álvarez alvaper@unizar.es José Ángel Bañares banares@unizar.es Departamento de Informática e Ingeniería de Sistemas

2 Índice Capítulo 7 Introducción a la dinámica de los servicios Web Conceptos relacionados con la dinámica El problema del Turista Descripción de flujos de trabajo Composición de servicios Web Coordinación de servicios Web 2

3 Índice Capítulo 7 Introducción a la dinámica de los servicios Web Estructura de los sistemas software Problema cultural Situación actual Éxito o fracaso de los servicios Web? Conceptos relacionados con la dinámica El problema del Turista 3

4 Introducción a la dinámica de los servicios Web Estructura de los sistemas software estructura estática objetos descomposición servicios Web extensión funcional... reutilización componentes software comunicación integración coordinación sincronización composición interoperabilidad... estructura dinámica sistema software 4

5 Introducción a la dinámica de los servicios Web Problema cultural... Dinámica de los sistemas?...en el mundo real integras los componentes con pedazos de código y rezas para que eso funcione correctamente... Consultor anónimo 5

6 Introducción a la dinámica de los servicios Web Situación actual Cliente de Servicios Objetos Aplicación (cliente) Invocación Proveedor de Servicio Objetos Aplicación (servicio) Búsqueda Publicación Pila de Estándares de Servicios Web Núcleo del Registro UDDI Descripciones de Servicios Registro de Servicios Estándares de Propósito General Infraestructura Común Estándares básicos (SOAP, WSDL, UDDI, etc.) XML Protocolos de Transporte (HTTP, TCP/IP, SMTP,etc.) Copyright Springer Verlag Berlin Heidelberg

7 Introducción a la dinámica de los servicios Web Situación actual (II) Cliente de Servicios Objetos Aplicación (cliente) Invocación Proveedor de Servicio Objetos Aplicación (servicio) Búsqueda Publicación Pila de Estándares de Servicios Web Núcleo del Registro UDDI Descripciones de Servicios? Registro de Servicios Estándares de Propósito General Infraestructura Común Estándares básicos (SOAP, WSDL, UDDI, etc.) XML Protocolos de Transporte (HTTP, TCP/IP, SMTP,etc.) Copyright Springer Verlag Berlin Heidelberg

8 Introducción a la dinámica de los servicios Web Éxito o fracaso de los servicios Web? éxito servicios Web software asentado fracaso software efímero tiempo 8

9 Índice Capítulo 7 Introducción a la dinámica de los servicios Web Conceptos relacionados con la dinámica Arquitectura software, frameworks y middlewares Interoperabilidad Conectores y técnicas de composición Modelos de coordinación El problema del Turista 9

10 Conceptos relacionados con la dinámica Arquitectura software Una arquitectura software es la descripción de un sistema en términos de componentes, conectores y reglas que determinan como se conectan No se trata de un software operativo, sino de un instrumento de reutilización de experiencias a nivel de diseño que dictan la construcción de nuevos sistemas software Evolucionan con el tiempo (experiencias más maduras) Reflexión: Cada sistema software es construido en base a las pautas de una única arquitectura? 10

11 Conceptos relacionados con la dinámica Arquitectura de servicios web Cliente de Servicios Objetos Aplicación (cliente) Invocación Proveedor de Servicio Objetos Aplicación (servicio) Búsqueda Publicación Núcleo del Registro UDDI Descripciones de Servicios Copyright Springer Verlag Berlin Heidelberg 2004 Registro de Servicios 11

12 Conceptos relacionados con la dinámica Arquitectura de servicios web Preguntas importantes: Cuál es el origen de la arquitectura de servicios Web? La arquitectura de Objetos Distribuidos Qué problemas de diseño motivaron su definición? Diseños orientados a la extensión Falta de estándares (pautas de diseño, tecnologías de desarrollo, distribución, plataformas de ejecución,...) No considerar de forma explícita la dinámica de los sistemas 12

13 Conceptos relacionados con la dinámica Framework Un framework se define como una colección de componentes software que se organizan y colaboran según el modelo descrito por una arquitectura Proporciona el más alto nivel de reutilización en el desarrollo de sistemas complejos destacar que los frameworks y los componentes representan diferentes niveles de abstracción en el proceso de descomposición de un sistema software Aplicación Monolítica Aplicación Aplicación middleware Interfaz Interfaz Interfaz Interfaz Framework Framework Framework Framework 13

14 Conceptos relacionados con la dinámica Middleware Un middleware proporciona un conjunto de primitivas de comunicación de alto nivel que son requeridas para el desarrollo de aplicaciones distribuidas en red El programador es liberado de detalles relacionados con la comunicación en red, control de concurrencia y/o gestión de transacciones, y puede focalizar todo su atención en el nivel de aplicación Problemas: Integración y comunicación entre middlewares heterogéneos Nuevos modelos de comunicación/coordinación más complejos Dificultad para escalar los sistemas más allá de los límites de la red local Falta de soporte para trabajar conjuntamente con redes inalámbricas 14

15 Conceptos relacionados con la dinámica Middleware (II) Middleware de objetos Soluciones inspiradas en la arquitectura de objetos distibuidos Cualquier objeto puede invocar la operación de otro objeto independientemente de: su localización el lenguaje de programación en el que fueron implementados la plataforma tecnológica y sistema operativo sobre el que se ejecutan Elementos clave: un objeto especial ORB (Object Request Broker) sistemas de referencia de objetos trasparente lenguaje de descripción de interfaces Ejemplos: CORBA, DCOM, RMI, EJB,... 15

16 Conceptos relacionados con la dinámica Middleware (III) Internet Respuesta a problemas de los middleware de objetos distribuidos Falta de estándares para la definición de interfaces Problemas para trabajar a escala de Internet Soluciones inspiradas en la arquitectura de servicios Web Basado en tecnologías Web: protocolo de transporte HTTP estándar de codificación de datos XML esquema de direccionamiento de recursos URI Funcionalidad de los servicios accesible a través de una interfaz única estándar basada en las operaciones del protocolo HTTP (Get, Post, Put y Delete) Peticiones codificadas en XML en base a estándares de interoperabilidad 16

17 Conceptos relacionados con la dinámica Interoperabilidad La interoperabilidad es la capacidad de dos o más componentes o frameworks para cooperar en busca de un objetivo común a pesar de sus diferencias en cuanto a las pautas de diseño, lenguajes de programación y/o plataformas de ejecución La interoperabilidad absoluta en entornos distribuidos únicamente es alcanzable considerando: Aspectos técnicos (representación interna de los datos, interfaces, plataforma software y hardware de ejecución, etc) Aspectos semánticos (diferentes modelos de conocimiento) Mecanismos para alcanzar la interoperabilidad: Estandarización de interfaces (IDL de CORBA interfaces de grano fino) Conectores explícitos y reutilizables ( patrones de diseño?) 17

18 Conceptos relacionados con la dinámica Conectores software Un conector establece una comunicación entre dos componentes o frameworks que requieren interaccionar Idealmente, debería basarse en una simple transferencia de datos entre las interfaces de los componentes Desde un punto de vista más próximo a la implementación, esta comunicación exige también una transformación de los datos Facilitan un nuevo proceso de desarrollo de aplicaciones basada en la composición de componentes o frameworks Elección de componentes/frameworks y conectores (catálogos) Existe una cultura de reutilizar la estructura estática de los sistemas software, pero no la dinámica Programación basada en roles Programación basada en aspectos 18

19 Conceptos relacionados con la dinámica Técnicas de composición Dos grandes categorías: Técnicas de caja negra Técnicas de caja blanca por qué se utilizan? Técnicas más habituales: Copiar y pegar Herencia Basadas en wrappers Basadas en intermediarios Patrones de diseño 19

20 Conceptos relacionados con la dinámica Modelos de coordinación Las técnicas de composición tienen como objetivo que los componentes o frameworks se comuniquen datos entre sí La colaboración requiere una serie de reglas que determinen cuándo y bajo que condiciones tienen lugar esas comunicaciones. La coordinación es la combinación de la capacidad de comunicación de datos y las reglas de sincronización Los middleware son una solución al problema de la colaboración entre componentes o frameworks? Se intuye que la solución pasa por combinar un middleware con algún modelo de coordinación puro (RdP, Linda,...) 20

21 Índice Capítulo 7 Introducción a la dinámica de los servicios Web Conceptos relacionados con la dinámica El problema del Turista Descripción del problema Servicios Web involucrados Composición de servicios (workflows) Coordinación de servicios Infraestructura de integración de servicios 21

22 El problema del Turista El problema del turista Objetivo Proveedor de Información Turística (Servicio Web) Posición turista La Seo? 22

23 El problema del Turista Servicios involucrados Proveedor de Información Turística (Servicio Web) Encadenamiento estático Encadenamiento dinámico Diagramas UML Redes de Petri Lenguajes de Reglas BPEL4WS... Gazetteer localización Rutómetro Servidor de Mapas Catálogo 23

24 Dinámica de los servicios Web Flujos de trabajo (workflows) Proveedor de Información Turística (Servicio Web) WfMS Interprete de flujos Qué tareas En qué orden Quién es el responsable Gazetteer localización Rutómetro Servidor de Mapas Catálogo 24

25 Dinámica de los servicios Web Coordinación de servicios Proveedor de Información Turística (Servicio Web) WfMS Basado en colas de mensajes (JMS) Basado en modelos de coordinación message broker Gazetteer localización Rutómetro Servidor de Mapas Catálogo 25

26 Dinámica de los servicios Web Infraestructura de servicios Proveedor de Información Turística (Servicio Web) WfMS message broker adaptador Gazetteer adaptador S. Localización adaptador Rutómetro adaptador S. Mapas adaptador S. Catálogo Gazetteer localización Rutómetro Servidor de Mapas Catálogo 26

27 Dinámica de los servicios Web Infraestructura de servicios (II) Proveedor de Información Turística (Servicio Web) Descripción de flujos de trabajo WfMS Composición de servicios message broker Coordinación de servicios adaptador Gazetteer adaptador S. Localización adaptador Rutómetro adaptador S. Mapas adaptador S. Catálogo Gazetteer localización Rutómetro Servidor de Mapas Catálogo 27