Logo Studenta

TIPOS DE SOAP

¡Este material tiene más páginas!

Vista previa del material en texto

ACCESO A SERVICIOS Y 
SOAP
Juan Carlos Araujo H
docenteibp@gmail.com
Aplicaciones web: Escenario típico
Figura extraída de “Understanding Web Services”: http://www7.software.ibm.com/vad.nsf/Data/Document4362
http://www7.software.ibm.com/vad.nsf/Data/Document4362
Servicios web: Escenario típico
Figura extraída de “Understanding Web Services”: 
http://www7.software.ibm.com/vad.nsf/Data/Document4362
Fernando Pérez Costoya 
José María Peña Sánchez
http://www7.software.ibm.com/vad.nsf/Data/Document4362
Integración de servicios web
Figura extraída de “Understanding Web Services”: 
http://www7.software.ibm.com/vad.nsf/Data/Document4362
CostJosé María Peña Sánchez
http://www7.software.ibm.com/vad.nsf/Data/Document4362
Protocolos para acceder a los 
Servicios Web
•HTTP-GET. 
•HTTP-POST.
•SOAP.
HTTP-GET
• Forma en que normalmente se solicita una página Web, 
ejemplo:
http://www.acme.com/inicio.aspx?id=David&equipo=mexico
• ASP.NET puede obtener los valores con:
• Request.QueryString(“id”)
• Request.QueryString(“equipo”)
Cuando se usa el método “GET” para el envío de datos en un 
formulario.
http://www.acme.com/inicio.aspx?id=David&equipo=mexico
HTTP-POST
• En vez de adjuntar los parámetros al URL, se colocan en el 
mensaje de petición HTTP. Es la manera común que usan los 
formularios HTML.
<form method=“post”>
<input type=“Text” id=“id”>
…
</form>
• ASP.NET los puede recuperar con:
Request.Form(“id”)
Protocolo de transporte: HTTP
• UsotípicodeoperaciónPOSTdeHTTP:
– datosde formulario ypágina derespuesta
• UsodePOSTparapeticióny respuestadeRPC
– Universalmentedisponible
– Atraviesael firewall de la organización
POST/~ssoo/consultaBD.cgi 
HTTP/1.0 Content-length: 76
.....................
DNI=87654321&MAT=980000&Asignatura=sod&Curso=2002&Convocatoria=Jun&Tipo=acta
HTTP/1.1 200 OK
Content-Type: text/html;charset=iso-8859-1
.....................
<HTML>
Protocolo de comunicación:
SOAP
• SimpleObjectAccessProtocol (CandidateRecommendation)
• SOAP=HTTP+XML
– EspecificacómomandarmensajesXMLsobreHTTP
– Defineel contenedor del mensaje (tambienenXML)
– Protocologeneral, nosólo para RPC, tambiénunidireccional
• Estructura demensajecontenedorSOAP:
– Sobre(Envelope): Cabecera (Header) [opcional] +Cuerpo(Body)
• Cabecera : info. complementaria (p.ej. enRPCunIDde transacción)
• Cuerpo: contieneel mensajeoriginal
• SOAPparaRPC:
– Enpetición: Identificador enPOSTidentifica destinodeRPC
• Seguridad:
– UsandoHTTPS(SSL)
– Nuevapropuesta:WS-Security
SOAP
SOAP
• Simple Object Access Protocol
• Tecnología de mensajería basada en XML que especifica todas las
reglas necesarias para ubicar servicios web, integrarlos en
aplicaciones y establecer la comunicación entre ellos
• Recomendación: http://www.w3.org/TR/soap
• Implementaciones de SOAP:
–http://www.soapware.org/directory/4/implementations
–IBM Web Services Toolkit
–Microsoft SOAP Toolkit 3.0
–Sun Java Web Services Developer Pack 1.3
–PHP-SOAP, NuSOAP
http://www.w3.org/TR/soap
http://www.soapware.org/directory/4/implementations
SOAP
• Basado en XML para transmitir información.
• Además de soportar pares nombre/valor, soporta datos 
complejos como datos enriquecidos, clases y objetos.
• SOAP también transmite sobre HTTP pero no esta limitado al 
modelo de petición/respuesta.
Componentes de SOAP
SOAP
• Envelope: define los espacios de nombres 
(namespaces) que serán empleados en el resto del 
mensaje. Los valores típicos son:
–xmlns:SOAP-ENV→ SOAP Envelope namespace
–xmlns:xsi→ XML Schema for Instances
–xmlns:xsd→ XML Schema for DataTypes
• Header: elemento opcional que proporciona 
información auxiliar para los procesos de 
autentificación, las transacciones y los pagos
• Body: es la parte principal del mensaje y contiene el 
nombre del método y los parámetros necesarios para 
invocar el servicio web
SOAP Y XML
SOAP
• Con SOAP podemos intercambiar cualquier documento XML, 
pero no otro tipo (imágenes, documentos PDF, etc.)
• SOAP with Attachment (SwA) → SOAP Message Transmission 
Optimization Mechanism:
–Permite añadir datos que no sean XML al mensaje
–Parte adjunta (attachment)
Anatomía de un mensaje SOAP
SOAP y HTTP
Encabezado 
HTTP
Envoltura
Header (opcional)
Cuerpo
Un ejemplo de SOAP en RPC
POST/StockQuoteHTTP/1.1
......................
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" 
SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
<SOAP-ENV:Body>
<m:GetLastTradePricexmlns:m="http://example.com/stockquote.xsd">
<symbol>DIS</symbol>
</m:GetLastTradePrice>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
HTTP/1.1200 OK
...............
<SOAP-ENV:Envelopexmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" 
SOAP-ENV:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"/>
<SOAP-ENV:Body>
<m:GetLastTradePriceResponse xmlns:m="http://example.com/stockquote.xsd">
<Price>34.5</Price>
</m:GetLastTradePriceResponse>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
P
e
tic
ió
n
R
e
s
p
u
e
s
ta
http://schemas.xmlsoap.org/soap/envelope/
http://schemas.xmlsoap.org/soap/encoding/
http://example.com/stockquote.xsd
http://schemas.xmlsoap.org/soap/envelope/
http://schemas.xmlsoap.org/soap/encoding/
http://example.com/stockquote.xsd
Desarrollo de un servicio Web
• Programaciónde biblioteca de servicio
– Enalgunos entornoshayque incluir informaciónespecífica
• EnVisualStudio .Net: etiqueta [WebMethod] sobre métodos exportados
• Generación automática de fichero WSDL
– Generalmente,dentrode la generacióndeaplicación deservicio
• EnVisualStudio .Net:Proyecto de tipo WebService
• Enservidor: fichero WSDLinforma sobre cómoactivar servicio
– Normalmente, lo haceunservidor webconsoportedeserviciosweb
• Desarrollode cliente:
– Obtener ficheroWSDLygenerarproxypara aplicación cliente
• EnVisualStudio .Net: “AddWebReference”
Modelo de programación de los 
Servicios Web
• El modelo de programación sobre el cual está basado .NET es 
el de software como servicio, a través de SOA (Service 
Oriented Architecture - Arquitectura Orientada a Servicios). 
• En base a este modelo los servicios se exponen una 
funcionalidad bien definida a la aplicación que la requiera. De 
manera que la aplicación final ejecuta un conjunto de estos 
servicios, añade su lógica particular y le presenta una interfaz 
al usuario final.
Modelo de programación de los 
Servicios Web
• Un servicio funciona como una aplicación independiente, no 
una isla. Teniendo sus propias reglas de negocio, datos, 
procedimientos de administración y operación. 
• Expone toda su funcionalidad utilizando una interfaz basada en 
mensajes, por lo tanto carece de una interfaz de usuario. 
SOA
• SOA contiene tres actores: 
• Un solicitante de servicio, 
• un proveedor de servicios, y 
• un registro de servicios.
Un solicitante de servicio
• es responsable de encontrar una descripción de servicio 
publicada en uno o más registros de servicios y de utilizar las 
descripciones de servicio para lograr invocar los servicios Web 
hospedados por los proveedores de servicios
Un proveedor de servicio
• es responsable de crear una descripción de servicio, 
publicando o publicitando la descripción del servicio en uno o 
más registros de servicios, y recibir mensajes de invocación de 
servicios Web de uno o más solicitantes
Un registro de servicios
• Es es responsable de anunciar descripciones de servicios Web 
publicadas por los proveedores de servicios y permitir los 
solicitantes de servicios buscar en la colección de descripción 
de servicios contenidos en el registro de servicios. 
• Una vez encontrada la información, el servicio del registro no 
es necesario y el resto de la interacción se da directamente 
entre el solicitante del servicio y el proveedor de servicio
Proceso de los Servicios Web
Modelo de Servicios Web entre 
Cliente y Servidor
En el modelo de servicio Web: 
1. Crea el archivo .asmx que incluye el espacio de 
nombre,clases, propiedades y métodos. 
2. Declara métodos como métodos Web que pueden 
accederse por Internet.
Ejemplo .asmx simple
REFERENCIAS BIBLIOGRÁFICAS
Textos:
• Eric Newcomer (2018) Understanding Web Services- XML, WSDL, SOAP and UDDI.
Kindle Edition, 606 pages
Published November 30th 2018 by Packt Publishing
• Introducción a Web Services con herramientas de desarrollo Microsoft. Por Oscar
González Moreno
Equipo Grupo Danysoft.
Referencias electrónicas
• Como Crear y Consumir un Web Service en ASP.NET (C#)
https://www.youtube.com/watch?v=dl1xfgMxpbU