• No se han encontrado resultados

Tema 7: Tecnologías de Servicios Web. Sistemas Distribuidos Marcos López Sanz [Curso ]

N/A
N/A
Protected

Academic year: 2022

Share "Tema 7: Tecnologías de Servicios Web. Sistemas Distribuidos Marcos López Sanz [Curso ]"

Copied!
29
0
0

Texto completo

(1)

Tema 7:

Tecnologías de Servicios Web

Sistemas Distribuidos

Marcos López Sanz

(2)

Índice

 Definición y características

 Arquitectura SOA de servicios Web

Roles y operaciones

Tecnologías implicadas

 Estándares y lenguajes principales

SOAP

WSDL

Otros lenguajes

 Tecnologías

ESB

 Ejercicios

 Dudas

(3)

Definición y características

 Servicio Web

Definición:

 Módulo software auto-contenido (independiente) y auto- descrito disponible a través de una red (como Internet), que completa tareas, resuelve problemas o realiza transacciones de acuerdo a las peticiones de un usuario o aplicación

Ejemplos:

 Tarea de negocio auto-contenida

 Proceso de negocio completamente desarrollado

 Aplicación

 Recurso disponible como servicio

(4)

Definición y características

Servicios Web. Propiedades

WS son módulos de software débilmente acoplados

 Protocolos, interfaces y registros de servicios permiten la coordinación de WS con un alto grado de desacoplamiento

 Interfaz independiente de la plataforma, sistema operativo o lenguaje de programación (neutral)

WS encapsulan una funcionalidad discreta de forma semántica

 Un WS es una entidad auto-contenida que realiza una única tarea

 La interfaz define: las operaciones, los parámetros, los tipos de datos y los protocolos de acceso

WS pueden ser accedidos mediante código y no sólo como interfaz Web

WS pueden ser descubiertos y añadidos a un programa de forma dinámica

WS se describen mediante un lenguaje estándar

 Características funcionales y no funcionales

WS se distribuyen a través de Internet

 Sobre el protocolo HTTP

 Es posible integrarlos en soluciones existentes orientadas a la Web

(5)

Definición y características

Servicios Web. Tipos

Simples o de información (informational)

 Ofrecen acceso a contenidos (recursos) o permiten el acceso a aplicaciones del lado de servidor

 No suelen tener un comportamiento transaccional

 Suelen ser sin estado (‘stateless’)

 Clasificación:

• Servicios de contenido “puros”: ofrecen información

• Servicios de intercambio simple: ofrecen información obtenida de la agregación de otras fuentes

• Servicios de sindicación de información: permiten acceso a una

funcionalidad externa

(6)

Definición y características

Servicios Web. Tipos

Complejos o de negocio (composite)

 Ofrecen como funcionalidad el resultado de ensamblar o invocar múltiples servicios de, normalmente, contextos de negocio independientes (diferentes empresas)

 Suelen entenderse como coarse-grained servicios

 Suelen ser con estado (‘stateful’)

 Clasificación:

• Servicios complejos que componen WS programáticos:

ensamblado de otros WS

• Servicios complejos que componen WS interactivos: exponen la

funcionalidad a través de una capa de presentación (browser)

que cuenta con múltiples pasos para realizar una funcionalidad

(7)

Definición y características

Servicios Web. Tipos

Según el punto de vista del consumidor:

 WS reemplazable

• Necesidad de un servicio de descubrimiento

• Normalmente integrado con la funcionalidad del cliente (no suele cambiar las reglas de comunicación o interfaces)

 WS crítico

• Normalmente provisto por un solo proveedor de servicios

• Productividad ligada a la disponibilidad del servicio

(8)

Definición y características

Servicios Web. Características

Especificación de requisitos: incluida dentro de la descripción de un servicio

 Req. funcionales

• Detalles de cómo se invoca el servicio o de localización

• Centrados en la descripción sintáctica de los mensajes intercambiados

• Foco de atención en la descripción del protocolo de comunicación

 Req. no funcionales

• Tiempo de respuesta, seguridad, autorización, fiabilidad, escalabilidad…

• El consumidor debe entender que estas propiedades influyen en la

codificación de los mensajes intercambiados (cabeceras SOAP)

(9)

Definición y características

Servicios Web. Características

Estado: mantenimiento del contexto de ejecución entre diferentes invocaciones

 El protocolo de acceso al servicio es siempre “sin conexión” (el concepto de sesión no lo maneja el

canal/protocolo de intercambio de mensajes sino el WS)

 Opciones:

• Stateless: sin estado

• Stateful: con estado

(10)

Definición y características

Servicios Web. Características

Desacoplamiento: grado de dependencia existente entre 2 aplicaciones

El consumidor no tiene constancia del lenguaje de implementación del proveedor, de su plataforma de despliegue, etc.

Tightly coupled vs. Loosely coupled:

 Patrón de interacción: síncrono vs. asíncrono

 Estilo de mensajes: tipo RPC vs. basado en documentos

 Ruta de los mensajes: hard-coded vs. enrutamiento

 Plataforma subyacente: homogénea vs. heterogénea

 Protocolo de unión (binding): estático vs. dinámico (late binding)

 Objetivo: reutilización vs. flexibilidad/aplicabilidad amplia

(11)

Definición y características

Servicios Web. Características

Granularidad

 Atómicos (simples)

 Complejos (estructuras de datos complejas)

Sincronismo

 Síncronos (tipo RPC)

• Conversación de ida y vuelta

• Respuesta inmediata requerida

 Asíncronos (basados en documentos)

• La idea es que el cliente envía toda la información en un documento compuesto en vez de parámetros simples

Descripción completa

 WSDL: mecanismo uniforme para describir interfaces de servicio

abstractas

(12)

SOA con Servicios Web

Obtenido de W3.org

(13)

SOA con Servicios Web

 Operaciones en SOA

Publicar (publish) un servicio de tal forma que los usuarios u otras aplicaciones puedan encontrarlo.

Consta de 2 operaciones:

 Describir el servicio. Categorías de información descrita:

• Información de negocio (sobre el proveedor o quien implementa el servicio)

• Información de servicio (sobre la naturaleza del servicio, qué hace)

• Información técnica (sobre detalles de implementación y formas de invocación)

 Registrar el servicio:

(14)

SOA con Servicios Web

 Operaciones en SOA:

Descubrir (find) un servicio

Consta de 2 operaciones:

 Descubrir el servicio

• Preguntar al registro por un servicio que “cuadre” con las

necesidades del peticionario (tipo de servicio, rango de precio, productos asociados, etc.)

• En tiempo de ejecución (run-time, dinámicamente) o en tiempo de diseño (diseño)

 Seleccionar el servicio:

• Decidir qué servicio invocar

• Métodos: manual (el peticionario lo selecciona manualmente) o

automática (en base a una serie de preferencias pre-establecidas)

(15)

SOA con Servicios Web

 Operaciones en SOA:

Vincular e interactuar (bind) con un servicio:

 El peticionario invoca o inicia una interacción en tiempo de ejecución

 Se usan los detalles de descripción del servicio para localizar y contactar con el servicio

 Tipos de invocación:

• Directa: usa la información del descriptor de servicio

• Mediación: usa al servicio de descubrimiento (discovery agency)

para intercambiar los mensajes con el servicio

(16)

SOA con Servicios Web

 Conjunto de lenguajes y tecnologías de WS

Extraído de www.querix.com

(17)

SOA con Servicios Web

Lenguajes y tecnologías de WS

Estándares básicos (‘enabling technology standards’):

 Sobre los protocolos de Internet (transporte  HTTP)

 Intercambio de mensajes: XML, XMLSchema

Estándares principales (‘core service standards’)

 SOAP (Simple Object Access Protocol):

• Protocolo de mensajes basado en XML utilizado para intercambiar información entre servicios Web

• Implementa un modelo de comunicación pregunta/respuesta

 WSDL (Web Service Description Language):

• Forma de especificar los datos, operaciones, contratos y funcionalidades (capabilities) ofrecidas por un servicio Web

• Gramática basada en XML que describe los servicios Web como colecciones de endpoints (puertos remotos) capaces de intercambiar mensajes

 UDDI (Universal Discovery, Description and Integration)

• Directorio público que permite la publicación online de servicios (WSDL) y su eventual descubrimiento

(18)

SOA con Servicios Web

 Conjunto de lenguajes y tecnologías de WS

Estándares de composición y colaboración

 Coordinación basada en orquestación de flujos de trabajo (‘composición de servicios’):

• Describe la lógica de ejecución de aplicaciones basadas en servicios Web mediante la definición de sus flujos de control (ejecución condicional, secuencial, paralela o excepcional) y el establecimiento de reglas para gestionar los datos de negocio no observables

• Ejemplo: BPEL (Business Process Execution Language)

 Coordinación basada en coreografías (‘colaboración de servicios’):

• Describen colaboraciones de servicios Web (entre empresas) mediante la definición del comportamiento común observable

• Los intercambios de información se producen a través de los puntos de contacto compartidos cuando las reglas de ordenación de mensajes se cumplen

• Ejemplo: WS-CDL (Web Services Choreography Description Language)

(19)

SOA con Servicios Web

 Conjunto de lenguajes y tecnologías de WS

Otros estándares de composición y colaboración

 Coordinación/Transacción:

• Esfuerzos para conseguir interacciones transaccionales entre servicios

• WS-Coordination y WS-Transaction complementan BPEL para ofrecer mecanismos que definan protocolos específicos para

sistemas de procesamiento de transacciones o sistemas de flujos de trabajo

 Estándares de valor añadido

• Soportan interacciones de negocio complejas  embebidos en SOAP

• Mecanismos de seguridad y autenticación, autorización, confianza,

privacidad, conversaciones seguras, gestión de contratos, etc.

(20)

 Relación entre lenguajes WS

Extraído de www.querix.com

(21)

SOA con Servicios Web

Calidad de Servicio (Quality of Service, QoS)

Definición:

 Habilidad de los servicios Web para responder a las invocaciones esperadas y a realizarlas al nivel exigido y acordado por el proveedor y sus consumidores

Medición de QoS:

 Se mide el grado en el que las aplicaciones, sistemas,

redes y otros elementos de infraestructura soportan la

disponibilidad de servicios a un determinado nivel de

rendimiento bajo cualquier condición de acceso y carga

(22)

SOA con Servicios Web

Calidad de Servicio (Quality of Service, QoS)

Aspectos:

 Disponibilidad (availability): ausencia de tiempos en los que el servicio no está disponible (downtimes)

 Accesibilidad: grado en el que una petición a un servicio Web es servida. Tasa de éxito de invocación a un servicio

 Adecuación a estándares (conformance): grado de cumplimiento de un estándar (especificado en un SLA)

 Integridad: grado en el que un servicio Web realiza sus tareas de acuerdo a su descripción WSDL y a los acuerdos especificados en el contrato SLA

 Rendimiento:

• Throughput: número de peticiones servidas en un tiempo determinado

• Latencia: tiempo que pasa desde que se envía una petición y se recibe la respuesta

 Fiabilidad (reliability): habilidad de un servicio para funcionar correctamente y consistentemente ofreciendo la misma calidad de servicio independientemente de fallos de sistema o red.

 Escalabilidad: habilidad para servir peticiones a pesar de las variaciones en el volumen de peticiones

 Seguridad: aspectos tales como autenticación, autorización, integridad de mensajes y confidencialidad.

 Transaccionalidad

(23)

SOA con Servicios Web

Service-Level Agreement (SLA)

Definición:

 Contrato formal (agreement) entre un proveedor y un cliente que formaliza los detalles de un servicio Web de tal forma que recoge las expectativas y

entendimientos tanto del proveedor del servicio como del consumidor 

‘garantía de QoS’

Posibles contenidos:

 Propósito

 Implicados

 Período de validez

 Ámbito

 Restricciones

 Objetivos de nivel de servicio (indicadores de calidad)

 Penalizaciones

 Servicios opcionales

 Términos de exclusión (lo que no se cubre por el SLA)

 Administración (monitorización, autoridad, etc.)

(24)

Estándares de Servicios Web

Estándar WSDL 1.1/2.0. Componentes:

WSDL 1.1 WSDL 2.0 Descripción

Service Service Conjunto de funciones que el servicio expone y que son accesibles mediante protocolos de Internet

Port Endpoint Define la dirección (o punto de conexión) a un WS. Normalmente es una URL para acceso HTTP

Binding Binding

Especifica la interfaz y define el tipo de enlazado SOAP (RPC o document) y el protocolo de transporte (protocolo SOAP).

También contiene la definición de las operaciones

PortType Interface Define un servicio Web, las operaciones que pueden realizarse y los mensajes necesarios para realizar dicha operación

Operation Operation Define las acciones SOAP (operaciones) y la forma en la que se codifica el mensaje SOAP

Message n/a

Los mensajes están asociados a las operaciones, contienen información necesaria para invocar la operación.

Cada mensaje está compuesto de una o varias partes lógicas y tiene asociado un tipo determinado (Type en XML Schema)

Types Types Describe el tipo de los datos mediante XML Schema

(25)

Ejemplo de

mensaje SOAP

(26)

Ejemplo de WSDL

Extraído de Wikipedia

(27)

WSDL

 Ejemplo de implementación de Servicio Web (JAX)

(28)

WSDL

 Ejemplo de invocación de un servicio Web desde .Net (uso del paquete org.apache.soap)

String URLString = "http://localhost/WebService1/Service1.asmx";

String TargetNamespace = "http://localhost/WebService1/Service1";

String SOAPAction = "http://Walkthrough/XmlWebServices/sendMessage";

URL url = new URL (URLString);

//Preparar la invocación Call call = new Call();

call.setTargetObjectURI (TargetNamespace);

call.setMethodName ("sendMessage");

call.setEncodingStyleURI (Constants.NS_URI_SOAP_ENC);

Response resp = call.invoke (url, SOAPAction);

(29)

Ejercicios

 ¿Por qué es importante WSDL para los servicios Web?

 ¿Qué diferencia un WS de una aplicación

basada en Web?

Referencias

Documento similar

2710 de 2017, la cual establece “En desarrollo del plan de acción para la implementación del protocolo IPv6, el MinTIC, a través de la Subdirección de Estándares y Arquitectura de

metodologías y tecnologías fundamentales de bases de datos en entornos web, con el objetivo de que sea capaz de diseñar e implementar bases de datos, tanto relacionales como

Tema: Internet Algunos otros servicios disponibles en Internet aparte de la Web son: -Acceso remoto a otras máquinas SSH y telnet, -Transferencia de archivos FTP, -Correo

Ideas y Soluciones Creativas, Institución de servicios de Diseño de Imagen Corporativa, Comunicación Visual y Desarrollo sitios Web, ubicada en la ciudad de Envigado, se

Turista alemán entusiasta de Cervantes dispuesto a conocer más sobre el trabajo y la vida de Cervantes.

Aunque los Servicios Web, semánticos o no, estén diseñados para interactuar con agentes, no se debe olvidar que el usuario final de estos servicios puede ser un huma-

(Q FRQWUDVWH ORV FOLHQWHV \ VHUYLGRUHV TXH XVDQ 8'3 VH FDUDFWHUL]DQ SRU QR WHQHU JDUDQWtDV VREUH OD ILDELOLGDG GH OD HQWUHJD &XDQGR XQ FOLHQWH HQYtD

Es evidente que cuanto mayor sea este valor, significará que se han producido menos conexiones, y con ello menos tráfico, esta última variable, es sólo la redundancia de que con