jueves, 28 de junio de 2007

PROTOCOLO SOAP

¿Qué es SOAP?

* SOAP es un protocolo elaborado para facilitar la llamada remota de funciones a través de Internet, permitiendo que dos programas se comuniquen de una manera muy similar técnicamente a la invocación de páginas Web.

* SOAP es un protocolo para el intercambio de mensajes sobre redes de computadoras, generalmente usando HTTP. Está basado en XML, a diferencia de DCOM y CORBA que son binarios; esto facilita la lectura por parte de los humanos, pero también los mensajes resultan más largos y, por lo tanto, considerablemente más lentos de transferir.

Historia

SOAP al principio significaba Simple Object Access Protocol, luego fue Service Oriented Architecture Protocol, pero actualmente es simplemente SOAP. El acronismo inicial, fue dejado de lado en la versión 1.2, cuando se volvió una recomendación de la W3C el 24 de junio de 2003, porque su nombre daba a confusión.

SOAP fue diseñado por David Winer, Don Box, Bob Atkinson y Mohsen Al-Ghosein en 1998 con respaldo de Microsoft. Actualmente, la especificación SOAP es mantenida por el XML Protocol Working Group de la W3C.


Esquema de mensajes SOAP


Existen múltiples tipos de modelos de mensajes en SOAP pero, por lejos, el más común es el RPC, en donde un nodo de red (el cliente) envía un mensaje de solicitud a otro nodo (el servidor) y el servidor inmeditamente responde el mensaje al cliente.

Los mensajes SOAP, son idependientes del sistema operativo, y pueden transportarse en varios protocolos de internet como SMTP, MIME y HTTP.

Estandares de soluciones Soap

Las solicitudes SOAP se pueden hacer en tres estándares: GET, POST y SOAP. Los estándares GET y POST son idénticos a las solicitudes hechas por navegadores de Internet. SOAP es un estándar similar a POST, pero las solicitudes se hacen en XML y permiten recursos más sofisticados, como pasar estructuras y arreglos ("arrays").

Independientemente de cómo se haga la solicitud, las respuestas siempre son en XML. XML describe perfectamente los datos en tiempo de ejecución y evita los problemas ocasionados por cambios inadvertidos en las funciones, ya que los objetos llamados tienen la posibilidad de validar siempre los argumentos de las funciones, haciendo que el protocolo sea muy sólido.

Estandar

Así mismo, SOAP define un estándar llamado WSDL, que describe perfectamente los objetos y métodos disponibles a través de páginas XML accesibles por la Web. La idea es la siguiente: quien publica un servicio, crea también estas páginas. Quien quiera llamar el servicio, puede utilizar estas páginas como "documentación" de la llamada y también utilizarlas antes de llamar las funciones para verificar si cambió algo.

WSDL - Web Services Description Language

Es un protocolo basado en XML que describe los accesos al Web Service. Podriamos decir que es el manual de operación del web service, porque nos indica cuales son las interfaces que provee el Servicio web y los tipos de datos necesarios para la utilización del mismo.

APIs para Servicios web SOAP

Ø Existen APIs (comerciales y gratuitas) para los lenguajes más usuales

· APIs Comerciales

* Las APIs Microsoft forman parte de .NET

* cuanto a Java, existen muchas APIs de distintos fabricantes (Iona, Inprise, Oracle, IBM, Sun,...)

* Sun está estandarizando el API Java para servicios web. Consta de varias APIs que forman parte de J2EE:

· JAXM: Java API for XML Messaging

· JAX-RPC: Java API for XML-based RPC

· JAXR: Java API for XML Registries

· APIs gratuitos

* (Apache)

Ø En general, las APIs no son estándares, sin embargo,

no afecta a la interoperabilidad

Ø La interoperabilidad es posible porque los protocolos (SOAP,

WSDL, UDDI) están estandarizados

Ventajas del uso

El protocolo SOAP tiene diversas ventajas sobre otras maneras de llamar funciones de manera remota como DCOM, CORBA o directamente en TCP/IP:

  • Es sencillo de implementar, probar y usar.
  • Es un estándar de la industria, creado por un consorcio del cual Microsoft forma parte, adoptado por W3C (http://www.w3.org/TR/SOAP/) y por varias otras empresas.
  • Utiliza los mismos estándares de la Web para casi todo: la comunicación se hace mediante HTTP con paquetes virtualmente idénticos; los protocolos de autenticación y encriptación son los mismos; el mantenimiento de estado se hace de la misma forma; se implementa normalmente por el propio servidor Web.
  • Atraviesa "firewalls" y routers, que "piensan" que es una comunicación HTTP.
  • Tanto los datos como las funciones se describen en XML, lo que permite que el protocolo no sólo sea más fácil de utilizar sino que también sea muy sólido.
  • Es independiente del sistema operativo y procesador.
  • Se puede utilizar tanto de forma anónima como con autenticación (nombre/clave).

Bibliografía

Manejo de cabeceras SOAP en WebService

http://www.elguille.info/colabora/NET2005/iacono_DocMHeaderSoap.htm

Utilizando NuSOAP III

http://www.desarrolloweb.com/articulos/1907.php

SOAP Versión 1.2 Parte 0: Fundamentos en español

http://www.w3c.es/Traducciones/es/TR/2003/REC-soap12-part0-20030624/#L1244

Descarga libros gratis

http://mundogeek.net/etiqueta/pdf/

Documentación de Visual Studio

http://msdn2.microsoft.com/es-es/library/4cxy91t2(VS.80).aspx

Manejar extensiones SOAP de .NET

http://www.elguille.info/colabora/NET2006/davidel_EncriptarMensajesSoap.htm

http://soapclient.com/uddisearch.html
http://uddi.org/find.html

http://www.malditainternet.com/node/1169

No hay comentarios.: