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

Transcript of Presentación Web Services Interoperability and SOAP Keith Ballinger Microsoft Corporation Alvaro...

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