Publicado el 13 de Febrero del 2019
793 visualizaciones desde el 13 de Febrero del 2019
1,2 MB
49 paginas
Creado hace 12a (01/01/2012)
Experto Universitario Java Enterprise
Servicios Web
Sesión 1: Introducción. Invocación de
Servicios Web SOAP
Experto Universitario Java Enterprise
Puntos a tratar
• ¿Qué es un Servicio Web?
• Tipos de Servicios Web
• Arquitectura de los Servicios Web
• Tecnologías básicas para Servicios Web
• Interoperabilidad de los Servicios Web
• Servicios Web desde la vista del cliente
• Invocación de servicios JAX-WS
Servicios Web
© 2012-2013 Depto. Ciencia de la Computación e IA
Invocación Servicios Web SOAP
2
Experto Universitario Java Enterprise
Descripción de Servicio Web (WS)
• Un Servicio Web es un componente diseñado para soportar
interacciones máquina a máquina a través de la red
• El intercambio de información se lleva a cabo mediante mensajes
codificados en XML
• Estos mensajes se pueden transportar utilizando HTTP
• Normalmente constará de una interfaz (conjunto de métodos) que
podremos invocar de forma remota desde cualquier lugar de la red
• Nos permiten crear aplicaciones distribuidas en Internet
• Los servicios web son independientes de la plataforma y del
lenguaje de programación en el que estén implementados
• Nos permiten integrar aplicaciones
• Pueden combinarse con muy bajo acoplamiento para conseguir la
realización de operaciones complejas proporcionando un valor de
negocio añadido
Servicios Web
© 2012-2013 Depto. Ciencia de la Computación e IA
Invocación Servicios Web SOAP
3
Experto Universitario Java Enterprise
La cuestión clave es la interoperabilidad!!
• Su principal característica es su gran INTEROPERABILIDAD
y extensibilidad
• Los servicios Web fueron “inventados” para solucionar el
problema de la interoperabilidad entre las aplicaciones
• El uso de XML hace posible el compartir datos entre
aplicaciones con diferentes plataformas hardware y proporciona
información fácilmente procesable por las máquinas (“web para
máquinas”)
• El protocolo HTTP asegura que puedan ser llamados por
cualquier aplicación (independientemente del lenguaje de
programación y sistema operativo)
• Las características deseables de un Servicio Web son:
• Los servicios web deben ser accesibles a través de la red, deben
contener una descripción de si mismos, y deben poder ser
localizados
Servicios Web
© 2012-2013 Depto. Ciencia de la Computación e IA
Invocación Servicios Web SOAP
4
Experto Universitario Java Enterprise
Web “para humanos” vs. web “para máquinas”
Petición HTTP
Respuesta HTTP en HTML
Petición HTTP
Aplicación
Otras aplicaciones
Respuesta HTTP en XML
Servicios Web
© 2012-2013 Depto. Ciencia de la Computación e IA
Invocación Servicios Web SOAP
5
Experto Universitario Java Enterprise
Tipos de Servicios Web
• A nivel CONCEPTUAL, un servicio es un componente
software proporcionado a través de un endpoint accesible a
través de la red. Los productores y consumidores de
servicios utilizan mensajes para intercambiar información.
• A nivel TÉCNICO, los servicios pueden implementarse de
varias formas:
• Servicios Web SOAP
•Utilizan mensajes XML que siguen el estándar SOAP
•Describen su interfaz utilizando WSDL
• Servicios Web RESTful
•Utilizan estándares muy conocidos: HTTP, URI, MIME
•Tienen una infraestructura muy “ligera”
Servicios Web
© 2012-2013 Depto. Ciencia de la Computación e IA
Invocación Servicios Web SOAP
6
Experto Universitario Java Enterprise
Arquitectura de los servicios Web
• Un WS normalmente reside en una máquina remota y es
llamado por un cliente a través de la red
Aquitectura orientada a servicios
PERMITE:
• crear una descripción
abstracta del servicio
• proporcionar una
implementación concreta
• publicar y localizar un
servicio
• seleccionar una instancia
del servicio
• utilizar dicho servicio
Service
Description
Service
Registry
(2) Find
WSDL+UDDI
Service
Requestor
(3) Bind
(1) Publish
WSDL+UDDI
Service
Provider
Service
Description
Service
Servicios Web
© 2012-2013 Depto. Ciencia de la Computación e IA
Invocación Servicios Web SOAP
7
Experto Universitario Java Enterprise
Servicios web SOAP y JavaEE
• La especificación que define los servicios Web para Java EE
(JSR-109) requiere que una instancia de un servicio
(denominada Port, o componente Port) sea creada y gestionada
por un contenedor. Este Port puede ser referenciado desde un
cliente, así como desde los contenedores web y EJB
Pueden implementarse de
dos formas:
• como una clase Java
que se ejecuta en un
contenedor Web
• como un EJB de sesión
o singleton en un
contenedor EJB
El contenedor actúa como
mediador para acceder al
servicio
Servicios Web
© 2012-2013 Depto. Ciencia de la Computación e IA
Invocación Servicios Web SOAP
8
Experto Universitario Java Enterprise
Tecnologías básicas para servicios Web
• Los protocolos utilizados en los WS se organizan en
una serie de capas:
Tecnologías
básicas
Localización de Servicios
(UDDI)
Descripción de Servicios
(WSDL)
Mensajería XML
(SOAP, XML-RPC)
Transporte de Servicios
(HTTP, SMTP, FTP, BEEP, ...)
Servicios Web
© 2012-2013 Depto. Ciencia de la Computación e IA
Invocación Servicios Web SOAP
9
Experto Universitario Java Enterprise
SOAP
• Protocolo derivado de XML
• Se usa para intercambiar información entre aplicaciones
• Dos tipos:
• Mensajes orientados al documento
•Cualquier tipo de contenido
• Mensajes orientados a RPC
•Tipo más concreto que el anterior
•Nos permite realizar llamadas a procedimientos remotos
àLa petición contiene el método a llamar y los parámetros
ßLa respuesta contiene los resultados devueltos
• Nos centraremos en el primer tipo
Servicios Web
© 2012-2013 Depto. Ciencia de la Computación e IA
Invocación Servicios Web SOAP
10
Experto Universitario Java Enterprise
Elementos de SOAP
• Sobre SOAP (Envelope). Contiene:
•Descripción del mensaje (destinatario, forma de
procesarlo, definiciones de tipos)
•Cabecera (opcional) y cuerpo SOAP
• Cabecera SOAP (Header). Contiene:
•Información sobre el mensaje (obligatorio,
actores, etc)
• Cuerpo SOAP (Body). Contiene:
•Mensaje (en caso de RPC la forma del mensaje
se define por convención)
•Error (opcional)
• Error SOAP (Fault)
•Indica en la respuesta que ha habido un error en
el procesamiento de la petición
Servicios Web
© 2012-2013 Depto. Ciencia de la Computación e IA
Invocación Servicios Web SOAP
11
Experto Universitario Java Enterprise
Ejemplos mensajes SOAP
• Mensaje de petición
<?xml version="1.0"?>
<soap:Envelope xmlns:soap="http://www.w3.org/2001/12/soap-envelope"
soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding">
<soap:Body xmlns:m="http://www.example.org/stock">
<m:GetStockPrice>
<m:StockName>IBM</m:StockName>
</m:GetStockPrice>
</soap:Body>
</soap:Envelope>
• Mensaje de respuesta
<?xml version="1.0"?>
<soap:Envelope xmlns:soap="http://www.w3.org/2001/12/soap-envelope"
soap:encodingStyle="http://www.w3.org/2001/12/soap-encoding">
<soap:Body xmlns:m="http://www.example.org/stock">
<m:GetStockPriceResponse>
<m:Price>34.5</m:Price>
</m:GetStockPriceResponse>
</soap:Body>
</soap:Envelope>
Servicios Web
© 2012-2013 Depto. Ciencia de la Computación e IA
Invocación Servicios Web SOAP
12
Experto Universitario Java Enterprise
WSDL (Web Services Description Language)
• Lenguaje derivado de XML
• Describe la interfaz de los Servicios Web
• Operaciones disponibles
• Parámetros de las operaciones
• Resultados devueltos
• Tipos de datos de estos parámetros y resultados
• Además contiene la dirección del endpoint
• URL a la que hay que conectarse para acceder al servicio
• Nos permite integrar un servicio automáticamente en
nuestra aplicación, o que otros usuarios utilicen los
servicios que hayamos desarrollado nosotros
Servicios Web
© 2012-2013 Depto. Ciencia de la Computación e IA
Invocación Servicios Web SOAP
13
Experto Universitario Java Enterprise
Estructura de un documento WSDL
La parte abstracta define
el QUÉ hace el servicio:
• operaciones disponibles
• entradas, salidas y
mensajes de error
• definiciones de tipos
para los mensajes
La parte concreta define el
CÓMO Y DÓNDE del servicio:
• cómo se tiene que llamar
(formato de los datos:
SOAP)
• protocolo de acceso (red)
• dónde está el servicio (URL)
Servicios Web
© 2012-2013 Depto. Ciencia de la Computación e IA
Invocación Servicios Web SOAP
14
Experto Universitario Java Enterprise
Elementos WSDL (versión 1.1)
<definitions>
<types> tipos de datos, si no son primitivos
<message> llamadas y respuestas SOAP
<portType> (INTERFAZ) operaciones: llamada + respuesta
<binding> protocolo de red y formato de datos SOAP
<service> URL del servicio para acceder a una
colección de ports
Servicios Web
© 2012-2013 Depto. Ciencia de la Computación e IA
Invocación Servicios Web SOAP
15
Experto Universitario Java Enterprise
Ejemplo de documento WSDL (I)
<?xml version="1.0" encoding="utf-8"?>
<definitions targetNamespace="http://jaxwsHelloServer/"
name="HelloService">
<types>
<xsd:schema>
<xsd:import namespace="http://jaxwsHelloServer/"
schemaLocation="http://localhost:8080/JAXWSHelloAppServer/
jaxwsHello?xsd=1"/>
</xsd:schema>
</types>
<message name="sayHello">
<part name="parameters" element="tns:sayHello"/>
</message>
los tipos se definen
en el fichero xsd
<message name="sayHelloResponse">
<part name="parameters" element="tns:sayHelloResponse"/>
</message>
Servicios Web
© 2012-2013 Depto. Ciencia de la Computación e IA
Invocación Servicios Web SOAP
16
Experto Universitario Java Enterprise
Ejemplo de documento WSDL (II)
<portType name="Hello">
<operation name="sayHello">
<input wsam:Action="http://jaxwsHelloServer/Hello/sayHelloRequest"
message="tns:sayHello"/>
<output wsam:Action="http://jaxwsHelloServer/Hello/sayHelloResponse
Comentarios de: Sesión 1: Introducción. Invocación de Servicios Web SOAP - Servicios Web (0)
No hay comentarios