Вы находитесь на странице: 1из 30

SOAP

Tecnologías Software para


Internet
2004
Qué es SOAP ?
Protocolo XML para:
 Intercambiar información
 Estructurada
 En la Web

Tecnologías Software para Internet, Erick Arauco, Udep Ets - 2004 2


Características de SOAP

Basado en mensajes

Los mensajes están escritos en XML

Tecnologías Software para Internet, Erick Arauco, Udep Ets - 2004 3


Por qué SOAP ?

Antes de SOAP
 DCOM  Windows por algún lado 
 CORBA  ORB (Especie de Bus que interconecta
los objetos del Sistema) Corba determina como
opera un ORB 
 RMI  Java por algún lado 

Con SOAP
 Se esconde la implementación de los servicios

Tecnologías Software para Internet, Erick Arauco, Udep Ets - 2004 4


Ninguna semántica de Transporte

Los mensajes SOAP vienen


transmitidos desde un protocolo de
transporte indefinido
App. Origen App. Destino

SOAP SOAP

Protocolo de Transporte
Tecnologías Software para Internet, Erick Arauco, Udep Ets - 2004 5
Transporte: Otra visión
Posibles configuraciones

SOAP SOAP
SOAP
TCP SMTP
FTP
SOAP TCP SOAP
TCP
UDP HTTP
TCP

Tecnologías Software para Internet, Erick Arauco, Udep Ets - 2004 6


Componentes de SOAP
SOAP envelope
 QUE cosa hay en el mensaje, QUIEN
debería recibirlo, y si es opcional u
obligatorio

SOAP encoding rules


 Mecanismo de serialización que puede ser
usado para intercambiar tipos de datos

Tecnologías Software para Internet, Erick Arauco, Udep Ets - 2004 7


Componentes de SOAP
SOAP RPC representation
 Convención que puede ser usada para
representar llamadas a procedimientos
remotos y relativas respuestas

SOAP binding
 Convención para intercambio de SOAP
envelopes

Tecnologías Software para Internet, Erick Arauco, Udep Ets - 2004 8


Uso de SOAP
El uso principal de SOAP reside
actualmente en los Remote Procedure
Calls (RPCs)

Tecnologías Software para Internet, Erick Arauco, Udep Ets - 2004 9


RPC y SOAP
En SOAP las llamadas RPC son
implementadas con 2 mensajes:
Solicitud (Request) y Respuesta
(Response)
1. Request

Client Server
2. Response

Tecnologías Software para Internet, Erick Arauco, Udep Ets - 2004 10


RPC
El problema principal en un mecanismo
RPC consiste en la serialización /
deserialización de los datos

Tecnologías Software para Internet, Erick Arauco, Udep Ets - 2004 11


RPC en SOAP
Encapsulación de RPC en una representación
uniforme (XML) para la solicitud y la
respuesta
SOAP ofrece un modo „default“ para
serializar datos

Tecnologías Software para Internet, Erick Arauco, Udep Ets - 2004 12


Sintaxis SOAP

13
Algunas reglas de Sintaxis

Un mensaje SOAP
 Debe estar codificado usando XML
 Debe poseer un Envelope SOAP
 Puede poseer un Header SOAP
 Debe poseer un Body SOAP

Tecnologías Software para Internet, Erick Arauco, Udep Ets - 2004 14


El mensaje SOAP
Es un documento
Envelope SOAP
XML con
 Un Envelope SOAP
(obligatorio) Header SOAP
 Un Header SOAP
(opcional)
 Un Body SOAP Body SOAP
(obligatorio)

Tecnologías Software para Internet, Erick Arauco, Udep Ets - 2004 15


<SOAP-ENV:Envelope>

Envelope es el elemento raíz del


mensaje XML
SOAP-ENV : namespace utilizado
Ej:
<SOAP-ENV:Envelope
xmlns:SOAP-ENV=„http://www.w3.org/2002/12/soap-envelope“
xmlns:xsd=„http://www.w3.org/2001/XMLSchema“>
...
</SOAP-ENV:Envelope>

Tecnologías Software para Internet, Erick Arauco, Udep Ets - 2004 16


<SOAP-ENV:Header>

Usado para agregar características a un


mensaje SOAP en modo
descentralizado, es decir sin ningún
acuerdo entre el emisor y receptor
Opcional

Tecnologías Software para Internet, Erick Arauco, Udep Ets - 2004 17


<SOAP-ENV:Body>

El <Body> se encuentra para definir el


contenido de una aplicación
Ej:

<SOAP-ENV:Envelope>
<SOAP-ENV:Body>
...
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Tecnologías Software para Internet, Erick Arauco, Udep Ets - 2004 18


Uso de <SOAP-ENV:Body>

El <Body> es usado para definir


información obligatoria que llegara al
último destinatario
Serialización
<Fault>: Bloque interno particular para
el reporte de errores

Tecnologías Software para Internet, Erick Arauco, Udep Ets - 2004 19


WSDL – Web Services Description
Language

20
WSDL – Introducción

Descripción de una interfaz en


vocabulario XML para describir
exactamente como los solicitantes
pueden tener acceso a los Web Services
Este vocabulario es llamado WSDL

Tecnologías Software para Internet, Erick Arauco, Udep Ets - 2004 21


WSDL – Concepto

Especifica W3c
(http://www.w3.org/tr/wsdl) para
describir servicios de red en XML
Archivo XML que describe un servicio
ofrecido
Un servicio es un conjunto de
operaciones

Tecnologías Software para Internet, Erick Arauco, Udep Ets - 2004 22


WSDL – Un documento wsdl

Archivo XML
<definitions ...>
<types ...>
<message ...>
<portType ...>
<binding ...>
<service ...>
<port ...>
</service ...>
</definitions>

Tecnologías Software para Internet, Erick Arauco, Udep Ets - 2004 23


WSDL – Elemento raíz

<definitions>

<definitions name=„AddrBook“
targetNamespace=„http://......
xmlns:wsdlns=„http://....
xmlns:typens=„http://....
xmlns:soap=„http://....
xmlns:xsd=„http://......>

</definitions>

Tecnologías Software para Internet, Erick Arauco, Udep Ets - 2004 24


WSDL – Estructura de un
documento
<types>: descripción de tipos de datos
<message>: descripción de los mensajes
<portType>: descripción de las operaciones
<binding>: información sobre el protocolo
de transporte y tipos de datos
<service>: información sobre el end-point

Tecnologías Software para Internet, Erick Arauco, Udep Ets - 2004 25


WSDL – <types>
<types>
<schema targetNamespace ........>
<complexType name=„Addr“>
<sequence>
<element name=„name“ type=„string“/>
<element name=„street“ type=„string“/>
<element name=„city“ type=„string“/>
<element name=„phone“ type=„string“/>
</sequence>
</compleyType>
</schema>
</types>

Tecnologías Software para Internet, Erick Arauco, Udep Ets - 2004 26


WSDL – <message>
Define el formato de los datos en cada
transmisión
Compuesto por el elemento <part>
<message name=„AddrBook.GetAddr“>
<part name=„Name“ type=„xsd:string“/>
</message>

<message name=„AddrBook.GetAddrResponse“>
<part name=„Result“ type=„typens:Addr“/>
</message>

Tecnologías Software para Internet, Erick Arauco, Udep Ets - 2004 27


WSDL – <portType>
Describe una operación

<portType name=„AddrBookSoapPortType“>
<operation name=„GetAddr“ parameterOrder=„Name“>
<input message=„wsdlns:AddrBook.GetAddr“/>
<output message=„wsdlns:AddrBook.GetAddrResponse“/>
</operation>
</portType>

Tecnologías Software para Internet, Erick Arauco, Udep Ets - 2004 28


Pasemos al Tomcat
Axis 1.1
 Descomprimir en la carpeta „webapps“ del Tomcat
 http://localhost:8080/axis/ (Verificar correcta
instalación del Axis)
Creamos nuestra clase WsUser.java
Compilamos
Creamos nuestro file DeployUser.wsdd para
levantar el servicio
Levantar el servicio
java org.apache.axis.client.AdminClient -
lhttp://localhost:8080/axis/services/AdminService deploy.wsdd

Tecnologías Software para Internet, Erick Arauco, Udep Ets - 2004 29


Ejemplo 1
Utilizando el mismo servicio
WsUser.java
Definamos nuestro cliente J2ME

Tecnologías Software para Internet, Erick Arauco, Udep Ets - 2004 30

Вам также может понравиться