martes, 16 de octubre de 2012


SOAP

Existe una tendencia muy marcada en las empresas por el desarrollo de aplicaciones que puedan trabajar sobre Internet, principalmente por la ventaja de la distribución global de la información. Las tecnologías más usadas para el desarrollo de estas aplicaciones, han sido CORBA , COM (Microsoft) y EJB. Cada una proporciona un marco de trabajo para la activación de objetos remotos, mediante la solicitud a un servidor de aplicaciones (o mediante un servidor Web) para la ejecución de servicios de aplicación. Estas tecnologías han probado ser efectivas para el establecimiento de sitios Web corporativos; sin embargo, presentan algunas desventajas como la falta de interoperabilidad (es posible, pero complejo, hacer interoperar COM y CORBA), la dependencia a la arquitectura de trabajo (COM está muy ligado a Windows, mientras que CORBA tiene muchas implementaciones de diversos fabricantes), así como el lenguaje de programación (COM usa primordialmente C++ y Visual Basic, mientras que EJB usa Java).

Esto ha llevado a la industria a considerar un nuevo modelo de computación distribuida de objetos, sin tener la dependencia de plataformas, modelos de desarrollo y lenguajes de programación usados. Inicialmente Microsoft, Userland Software y DeveloperMentor trabajaron para desarrollar este esquema. Surge entonces el primer borrador de la especificación SOAP en 1999. La versión 1.1 es la actualmente empleada por las compañías para sus desarrollos. Es apoyada abiertamente por SUN, IBM y Apache Org., entre otras empresas y desarrolladores independientes.

Los objetivos primordiales de SOAP, son:

a) Establecer un protocolo estándar de invocación de servicios remotos, basado en protocolos estándares de Internet: HTTP (Hiper Text Transport Protocol) para la transmisión y XML (eXtensible Markup Language) para la codificación de datos.

b) Independencia de plataforma, lenguaje de desarrollo e implementación (modelo de objetos).

El protocolo de comunicación HTTP es el empleado intrínsecamente para la conexión sobre Internet. Garantiza que cualquier cliente con un navegador estándar pueda conectarse con un servidor remoto. La transmisión de datos se empaqueta (serializa) con XML, que se ha convertido en el "parteaguas" del intercambio de datos, salvando las incompatibilidades entre otros protocolos, tales como el NDR (Network Data Representation) o el CDR (Common Data Representation). Por otra parte, los servidores Web pueden procesar las peticiones de usuario, empleando las tecnologías de servlets, paginas ASP (Active Server Pages) o JSP (Java Server Pages), o un servidor de aplicaciones, invocando objetos de los tipos CORBA, COM o EJB.

La especificación SOAP menciona que las aplicaciones deben ser independientes del lenguaje de desarrollo, por lo que las aplicaciones cliente y servidor pueden estar escritas con HTML, DHTML, Java, Visual Basic u otras herramientas y lenguajes disponibles. Lo importante es tener alguna implementación de SOAP (dependiendo de la herramienta de desarrollo elegida) y enlazar sus librerías con la aplicación. Aunque esto no es estrictamente necesario, es preferible trabajar usando dichas librerías, con el fin de no reescribir un código ya probado.

Las peticiones con el uso del protocolo HTTP emplean el comando POST para transmitir información entre el cliente y el servidor. Por ejemplo, una petición de servicio con HTTP sería:

POST /soap/services.asp HTTP/1.1

Host:148.204.20.10

Content-Type: text/plain

Content-Length: 11

Proyecto prueba!

La primera línea indica el método HTTP usado, el URI y la versión del protocolo. Para este ejemplo el método empleado es POST, la ruta de ejecución del servicio es /soap/services.asp y la versión de HTTP usada es la 1.1.

En las líneas siguientes se indica la dirección Internet de la máquina de servidor Web donde se enviará la petición, el tipo de contenido del mensaje (texto plano) y su longitud. Para indicar la terminación de la cabecera, se agrega un retorno de carro/línea siguiente. Finalmente, la última línea (Proyecto prueba!) es el contenido de la petición, que bajo SOAP, debe ser un texto XML.

No hay comentarios:

Publicar un comentario