Está en la página 1de 32

Introduccin a Servicios Web

Objetivos
Describir que son los servicios web
Describir la funcin de SOAP, WSDL y UDDI en
los servicios Web
Comparacin basada en SOAP y servicios Web
Describir cmo los servicios web permiten el
desarrollo de aplicaciones SOA

Servicios Web
Proporcionar un marco de mensajera sencilla e
interoperable
Son de fcil acceso desde entornos heterogneos
Los servicios deben ser:

ligeramente acoplado
Modular
Auto-descripcin
En base a los protocolos estndar de Internet y XML
Lenguaje y plataforma neutral

Servicios Web
Servicios Web son una tecnologa que especifica un
enfoque interoperable comn para la comunicacin a
travs de Internet.
Estas normas incluyen tpicamente:
XML: Los documentos que contienen la informacin que se
intercambia entre las partes
SOAP: Un formato estndar para la mensajera a travs de
una red
Web Service Description Language (WSDL): El lenguaje que
proporciona una descripcin de los servicios Web
Universal Description, Discovery y la Integracin (UDDI): un
directorio distribuido basado en Web para publicar y
buscar informacin acerca de los servicios Web

SOAP
SOAP es un formato de mensajes basado en
XML basado en el World Wide Web
Consortium (W3C).
El propsito de SOAP es intercambiar
informacin estructurada travs de la red.
El intercambio de documentos.
Invocar operaciones entre aplicaciones.
HTTP es la forma ms comn de intercambio
de mensajes SOAP.

WSDL
WSDL es un lenguaje basado en XML para los
servicios Web de modelado.
Las definiciones WSDL proporcionan metadatos
bsicos sobre los servicios Web, incluyendo:

Descripcin de la interfaz
Informacin de tipos de dato: Formato del mensaje
Informacin de Binding: Protocolo de red
Informacin de direccin: la ubicacin de servicios

WSDL utiliza un esquema XML para describir un


servicio Web en forma de un documento WSDL.

UDDI
Proporciona un modelo de datos estndar para el
almacenamiento de informacin de la
organizacin y sus servicios web
Utiliza la API de SOAP para publicar y localizar
servicios Web en su registro
Se describe en un conjunto de especificaciones
que cubren por separado API de programacin,
estructuras de datos comunes, cuestiones
administrativas, y otros temas relacionados

Interaccin de Servicios Web


Service
registrar
(UDDI)

2
Look up
the
service
via UDDI.

3
Retrieve the service
description
via WSDL.

Service requester

Publish
the service
via UDDI.

Connect via SOAP.

Service provider

Servicios Web y SOA


Los servicios Web son una plataforma ideal para
SOA porque:
Los servicios Web estn diseados para lograr la
interoperabilidad
Las Interfaces de servicios web son buenos para
permitir el desarrollo de los servicios que encapsulan
funciones de la empresa
Las especificaciones bsicas y avanzadas de servicios
Web contribuyen significativamente a la capacidad de
implementar soluciones habilitadas para SOA

SOAP y WSDL

Objetivos
Describir la estructura de un mensaje SOAP y la
funcin de cada elemento de SOAP
Describir los modelos de mensajera disponibles
al crear servicios web basados en SOAP
Describir el papel que juega WSDL en el modelo
de servicios Web y los elementos primarios
contenidos en un archivo WSDL
Comparar el uso de WSDL en el estilo de
documentos y servicios de tipo RPC
Crear un archivo WSDL simple usando JDeveloper

XML Namespace and XML Schema


En el desarrollo de Servicios Web con XML, es
importante:
Usar espacios de nombres para interpretar la etiqueta
en el contexto adecuado
Sintaxis: namespace: atributo = URI

Emplear esquemas XML (XSD) para validar la


integridad de los documentos XML
Un esquema XML define la sintaxis de un documento XML.
Un esquema XML contiene un elemento raz denominado
schema y una secuencia de definiciones de tipos de datos
globales.
Un tipo de datos global puede ser primitivo o complejo.

SOAP: Mensajes XML para Servicios


Web
SOAP es el corazn del marco de mensajera
interoperable de los Servicios Web:
SOAP se basa en XML
El formato de mensaje SOAP est definido por un esquema XML,
que utiliza espacios de nombres XML para hacer SOAP extensible.

SOAP usa el protocolo HTTP


Mensajes SOAP pueden pasar a travs de firewalls.

SOAP soporta la transferencia de llamadas a


procedimiento remoto (RPC) y la informacin de estilo
del documento a travs de Internet

Comunicacin con SOAP


Comunicacin con SOAP incluye:
Un mensaje de solicitud
Un mensaje de respuesta

SOAP sobre HTTP


HTTP POST se utiliza para manejar el intercambio de
mensajes SOAP request/response.
HTTP GET se usa para recuperar las definiciones de
interfaz WSDL de los servicios

Estructura Bsica de SOAP


Un mensaje SOAP es un documento XML
que consiste de :
Una seccin obligatoria envelope
como un elemento al top
Seccin Header opcional
Seccin Fault obligatoria.

Response

Request

Ejemplo de mensajes SOAP


<soap:Envelope
xmlns:soap="http://schemas.xmlsoap.org/soap/
envelope/"
Xmlns:ns="http://mypackage/">
<soap:Body>
<ns:add>
<num1>1</num1>
<num2>1.1f</num2>
</ns:add>
</soap:Body>
</soap:Envelope>
<soap:Envelope ...
xmlns:ns="http://mypackage/">
<soap:Body>
<ns:addResponse>
<result>2.1</result>
</ns:addResponse>
</soap:Body>
</soap:Envelope>

SOAP
namespace
Application
namespace
SOAP
Operation
(RPC style)

Examinando mensajes SOAP usando


HTTP Analyzer

Request

Response

WSDL
Un documento WSDL
describe:
Qu hace el servicio?
Cmo se accede al
servicio?
Dnde se encuentra el
servicio?
En l se definen los
mensajes y Las
operaciones de un
servicio en XML.

WSDL document
Types
Messages
Port types
Bindings
Services

Un documento WSDL bsico


<?xml version='1.0'?>
2 <definitions targetNamespace=urn:Math
xmlns=http://schemas.xmlsoap.org/wsdl/
xmlns:sxd=http://www.w3.org/2001/XMLSchema
xmlns:soap=http://schemas.xmlsoap.org/wsdl/soap/>
7
8
9
10
11
12
13
14
15

<types/>
<message name='MathRequest'>
<part name='x' type='xsd:double'/>
<part name='y' type='xsd:double'/>
</message>
<message name='MathResponse'>
<part name='return' type='xsd:double'/>
</message>

Un documento WSDL bsico


16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33

<portType name='Math'>
<operation name='Add' parameterOrder='x y'>
<input message='tns:MathRequest'/>
<output message='tns:MathResponse'/>
</operation>
...
</portType>
<!-- Look at the binding later-->
<service name='MathService'>
<port name='Math' binding='tns:MathBinding'>
<soap:address location=
'http://localhost:7071/Math-context-root/MathPort'/>
</port>
</service>
</definitions>

Definir la estructura de los contenidos


en el Cuerpo de SOAP
La estructura del contenido del cuerpo SOAP se
define por las definiciones de tipo de esquema
XML:
Declarado explcitamente en WSDL
Importada desde una definicin de esquema XML
(XSD)

WSDL Binding
El elemento de Binding mapea un portType
como un conjunto de :
Los protocolos de red, tales como SOAP, MIME
Estilos Mensajera: RPC o documento
Estilos de codificacin: Literal o SOAP Encoding

Pasos para crear un archivo WSDL


usando JDeveloper
Los principales pasos para crear un archivo WSDL
utilizando WSDL Editor de JDeveloper:
1. Cree o importe un XSD.
2. Crear un tipo de documento WSDL del servicio Web
en su proyecto con la opcin Crear portType
seleccionado.
3. Se crea una operacin de portType por defecto para
agregar elementos de entrada y salida.
4. Crear un enlace SOAP mediante el componente de
binding en la paleta de componentes.
5. Creacin de un servicio mediante el componente de
servicio en la paleta de componentes.

Crear un archivo WSDL usando JDev

Component
Palette

Property Editor

Crear un archivo WSDL usando JDev

Mapeo de un mtodo en Java al WSDL


Java method:

public String add(int param1, float param2);

WSDL:
...
<message name="addRequest">
<part name="param1" type="xsd:int"/>
<part name="param2" type="xsd:float"/>
</message>
...
<portType name="MyWebService">
<operation name="add">
<input message="ns:addRequest"/>
...
</operation>
</portType>
...

Mapeo de un mtodo en Java al WSDL


WSDL:
...
<binding name="MyWebServiceSoapHttp" ... >
<soap:binding style="rpc" ... />
<operation name="add">
<soap:operation ... />
<input>
<soap:body use="encoded" ... />
</input>
...
</operation>
</binding>
...

Creando un Servicio Web desde un


WSDL
Los pasos para la creacin de servicios web
desde un archivo WSDL son:
Generar los artefactos de un archivo WSDL
existente utilizando JDeveloper
Agregar lgica de negocios para el archivo de
implementacin JWS.
Compilar y generar el servicio Web de despliegue.

Un ejemplo de un archivo Java


generado desde un WSDL

Un ejemplo de un archivo Java


generado desde un WSDL

EJERCICIO 4-1
30 minutos
EJERCICIO 4-2
30 minutos

También podría gustarte