presentación web services interoperability and soap keith ballinger microsoft corporation alvaro...

27
Presentación Web Services Interoperability and SOAP Keith Ballinger Microsoft Corporation Alvaro Castromán Alfonso Odriozola

Upload: adalberto-romero

Post on 22-Jan-2016

224 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Presentación Web Services Interoperability and SOAP Keith Ballinger Microsoft Corporation Alvaro Castromán Alfonso Odriozola

Presentación

Web Services Interoperability and SOAP

Keith BallingerMicrosoft Corporation

Alvaro CastrománAlfonso Odriozola

Page 2: Presentación Web Services Interoperability and SOAP Keith Ballinger Microsoft Corporation Alvaro Castromán Alfonso Odriozola

Desarrollo

¿Qué son Web Services?

Introducción a SOAP

Contenido del Artículo

Trabajos Relacionados

Conclusiones

Page 3: Presentación Web Services Interoperability and SOAP Keith Ballinger Microsoft Corporation Alvaro Castromán Alfonso Odriozola

¿Qué son Web Services?

Colección de funciones empaquetadas como una unidad y publicada en la red

Aplicación programable a la que se tiene acceso de forma lógica utilizando los protocolos estándar de Internet

Page 4: Presentación Web Services Interoperability and SOAP Keith Ballinger Microsoft Corporation Alvaro Castromán Alfonso Odriozola

¿Qué son Web Services?

Capa intermedia entre el código de aplicación y el código de usuario

Independiza del lenguaje de implementación

Page 5: Presentación Web Services Interoperability and SOAP Keith Ballinger Microsoft Corporation Alvaro Castromán Alfonso Odriozola

¿Qué son Web Services?

Tres componentes:Service Listener: lenguaje de

transporte (HTTP, SOAP)

Service proxy: decodifica solicitudes para el código de aplicación

Código de Aplicación

Page 6: Presentación Web Services Interoperability and SOAP Keith Ballinger Microsoft Corporation Alvaro Castromán Alfonso Odriozola

¿Qué son Web Services?

Provee Just-In-Time Integration

Web Service Technology Stack:Discovery (UDDI)Description (WSDL)Packaging (XML / SOAP)Transport (TCP / SMTP / HTTP)Network (idem a OSI)

Page 7: Presentación Web Services Interoperability and SOAP Keith Ballinger Microsoft Corporation Alvaro Castromán Alfonso Odriozola

¿Qué son Web Services?

Page 8: Presentación Web Services Interoperability and SOAP Keith Ballinger Microsoft Corporation Alvaro Castromán Alfonso Odriozola

Introducción a SOAP

Simple Object Access Protocol

Provee un mecanismo simple y ligero para intercambio de información estructurada y tipeada en un ambiente descentralizado y distribuido usando XML

Page 9: Presentación Web Services Interoperability and SOAP Keith Ballinger Microsoft Corporation Alvaro Castromán Alfonso Odriozola

Introducción a SOAP

Puede ser usado desde sistemas de mensajeria hasta RPC

Consiste de tres partes: envelope encoding rules RPC representation

Page 10: Presentación Web Services Interoperability and SOAP Keith Ballinger Microsoft Corporation Alvaro Castromán Alfonso Odriozola

Introducción a SOAP

Envelope: define un marco para expresar qué es un mensaje, quién debería manejarlo, y qué es opcional o no.Los mensajes contienen: Envelope: la raíz del documento XML Header: mecanismo para agregar

características a un mensaje SOAP Body: contiene la información obligatoria

para el receptor del mensaje

Page 11: Presentación Web Services Interoperability and SOAP Keith Ballinger Microsoft Corporation Alvaro Castromán Alfonso Odriozola

Introducción a SOAP

Encoding rules: define un mecanismo de serialización para intercambiar instancias de tipos de datos definidos por aplicaciones

RPC representation: define una convensión para representar llamadas y respuestas a procedimientos remotos

Page 12: Presentación Web Services Interoperability and SOAP Keith Ballinger Microsoft Corporation Alvaro Castromán Alfonso Odriozola

SOAP Request examplePOST /test/simple.asmx

HTTP/1.1

Host: 131.107.72.13

Content-Type: text/xml; charset=utf-8

Content-Length: length

SOAPAction: "http://soapinterop.org/echoString"

<?xml version="1.0" encoding="utf-8"?>

<soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance“ xmlns:xsd="http://www.w3.org/2001/XMLSchema"xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns="http://soapinterop.org/"xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">

<soap:Body soap:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/"> <tns:echoString>

<inputString>Hola Mundo</inputString>

</tns:echoString>

</soap:Body>

</soap:Envelope>

Page 13: Presentación Web Services Interoperability and SOAP Keith Ballinger Microsoft Corporation Alvaro Castromán Alfonso Odriozola

SOAP Responce example:HTTP/1.1 200 OK Content-Type: text/xml; charset=utf-8 Content-Length: length

<?xml version="1.0" encoding="utf-8"?><soap:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema“ xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/" xmlns:tns="http://soapinterop.org/“ xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">

<soap:Body soap:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">

<tns:echoStringResponse> <Return>Hola Mundo</Return>

</tns:echoStringResponse> </soap:Body>

</soap:Envelope>

Page 14: Presentación Web Services Interoperability and SOAP Keith Ballinger Microsoft Corporation Alvaro Castromán Alfonso Odriozola

Contenido del Artículo

Ofrece una introducción a los problemas de interoperabilidad relativos a las llamadas RPC con SOAP

Tres problemas de interoperabilidad: HTTP XML SOAP

Page 15: Presentación Web Services Interoperability and SOAP Keith Ballinger Microsoft Corporation Alvaro Castromán Alfonso Odriozola

Contenido del Artículo

Actualidad:

plataformas heterogéneas para la creación de aplicaciones

utilizando sus propios protocolos

disponen de una capacidad limitada para compartir datos

Page 16: Presentación Web Services Interoperability and SOAP Keith Ballinger Microsoft Corporation Alvaro Castromán Alfonso Odriozola

Contenido del Artículo

Tendencia:

estándares para los formatos y el intercambio de datos

evolución rápida hacia un nuevo paradigma informático

perfecta integración de Web Services entre las barreras de hardware y software.

Page 17: Presentación Web Services Interoperability and SOAP Keith Ballinger Microsoft Corporation Alvaro Castromán Alfonso Odriozola

Contenido del Artículo

Ej. problemas de transporte (HTTP):

encabezado HTTP SOAPAction SOAPAction: “http://tempuri.org/” SOAPAction:

no todas las API cliente HTTP permiten establecer un valor nulo en un encabezado HTTP

Page 18: Presentación Web Services Interoperability and SOAP Keith Ballinger Microsoft Corporation Alvaro Castromán Alfonso Odriozola

Contenido del Artículo

Soluciones: reparar los API cliente asegurarse de que los servidores no

requieran un valor nulo

Una forma de evitar estos problemas: asegurase de que la API HTTP utilizada sea

sólida y ya conocida para trabajar en el Web

Page 19: Presentación Web Services Interoperability and SOAP Keith Ballinger Microsoft Corporation Alvaro Castromán Alfonso Odriozola

Contenido del ArtículoEj. problemas de XML: Byte Order Mark (BOM)

especificación de la codificación de los datos HTTP: en el encabezado Content-Type XML: insertando un conjunto de bytes que especifiquen la codificación

en UTF-16 se necesita el BOM, incluso si está presente el Content-Type

en UTF-8 no es obligatorio

Page 20: Presentación Web Services Interoperability and SOAP Keith Ballinger Microsoft Corporation Alvaro Castromán Alfonso Odriozola

Contenido del Artículo

Algunas implementaciones envian la marca BOM para UTF-8 (esto es opcional)

Otras no pueden procesar XML sin BOM

Page 21: Presentación Web Services Interoperability and SOAP Keith Ballinger Microsoft Corporation Alvaro Castromán Alfonso Odriozola

Contenido del ArtículoLa solución en este caso consiste en evitar el envio, a menos que sea necesario

El manejo correcto de BOM resulta esencial en el procesamiento de mensajes UTF-16

La mejor solución una vez reconocidos los problemas consiste en hacer referencia a las especificaciones reales

Page 22: Presentación Web Services Interoperability and SOAP Keith Ballinger Microsoft Corporation Alvaro Castromán Alfonso Odriozola

Contenido del Artículo

Ej. problemas de SOAP:

si recibe un encabezado SOAP con un atributo mustUnderstand establecido como “1”, deberá entenderlo o generar un error

numerosas implementaciones no lo hicieron al principio

Page 23: Presentación Web Services Interoperability and SOAP Keith Ballinger Microsoft Corporation Alvaro Castromán Alfonso Odriozola

Contenido del Artículo

Ejemplo de mustUnderstand:

<SOAP-ENV:Header> <Foo SOAP-ENV:mustUnderstand="1"> ¡Hola! </Foo>

</SOAP-ENV:Header>

Page 24: Presentación Web Services Interoperability and SOAP Keith Ballinger Microsoft Corporation Alvaro Castromán Alfonso Odriozola

Temas Relacionados

Problemas en Apache SOAP:

Transporte: los APIs Apache SOAP del lado del cliente no tienen dificultad en generar valore null en SOAPAction

XML: si está codificado en UTF-8 e incluye un BOM la

solicitud fallará al usar Apache Xerces otro problema está relacionado con XML Schema,

hoy en día hay tres versiones

Page 25: Presentación Web Services Interoperability and SOAP Keith Ballinger Microsoft Corporation Alvaro Castromán Alfonso Odriozola

Temas Relacionados

SOAP:

no implementa el concepto de cabecera mustUnderstand de SOAP

Dependiendo de xsi:type: todo valor tipado debe ser explicitamente tipado en el envelope usando el atributo xsi:type

Apache SOAP no proporciona soporte para retornar más de un valor ya que se van más allá del ámbito de Java

Page 26: Presentación Web Services Interoperability and SOAP Keith Ballinger Microsoft Corporation Alvaro Castromán Alfonso Odriozola

Conclusiones

Se presenta una introducción práctica a problemas actuales de interoperabilidad con SOAP RPC

Puntos fuertes: división de problemas en tres tipos es preciso en su enfoque

Puntos débiles: es poco profundo en los temas tratados menciona pocos problemas

Page 27: Presentación Web Services Interoperability and SOAP Keith Ballinger Microsoft Corporation Alvaro Castromán Alfonso Odriozola

Conclusiones

Los objetivos planteados fueron alcanzados

Contribuciones: informa que existen estos tres tipos de problemas

Los artículos futuros tratarán: transmisión de mensajes del estilo "document" SOAP a través de SMTP y otros transportes WSDL y varias pruebas de encabezado SOAP