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