Вы находитесь на странице: 1из 5

SOAP INTRODUCION SOAP (Simple Object Access Protocol ) surge a partir de la especificacin realizada por Dave Winer, de la empresa

UserLand Software a finales del ao 1998, de un mecanismo basado en XML para realizar invocaciones RPC. A partir de dicha especificacin y de la unin de las empresas DevelopMentor, UserLand Software y Microsoft surge pblicamente la versin 0.9 de SOAP en septiembre de 1999. La versin 1.0 fue lanzada casi a continuacin de la versin 0.9 (diciembre de 1999) y enviada a la IETF (Internet Engineering Task Force). Este organismo hizo de esta versin una recomendacin oficial. Posteriormente se realiz la versin 1.1 de SOAP, donde, adems de las empresas mencionadas, tambin participaron Lotus e IBM, entre muchas otras empresas de desarrollo de software. Esta nueva versin fue enviada al W3C (World Wide Web Consortium) en mayo del 2000, con el propsito de formar un grupo de trabajo en el rea de los protocolos basados en XML. En julio de 2000 el grupo de trabajo en el rea de XML del W3C edita el primer W3C Working Draft de la versin 1.2 de SOAP. La especificacin del protocolo SOAP, bsicamente, describe un formato de mensajes para comunicar aplicaciones. La filosofa de SOAP, para lograr dicha comunicacin, es no inventar una nueva tecnologa, sino combinar tecnologas existentes y de amplia aceptacin en la industria de software. En particular, combina XML para la codificacin de los mensajes y HTTP como protocolo de transporte (aunque no se excluye el uso de otros protocolos de tranporte). ANTECEDENTES DEL SOAP SOAP no intenta solucionar un problema nuevo, hace ya bastantes aos que surgi la necesidad de obtener acceso distribuido a objetos y realizar llamadas a procedimientos remotos. Una de las soluciones clsicas es RPC (Remote Procedure Call), pero no es la nica. Muchas otras tecnologas han abordado este problema proporcionando buenas soluciones, pero casi todas pecan de ser cerradas, es decir, especficas para un lenguaje o plataforma. Dos son los ejemplos ms conocidos: DCOM (Distributed Component Object Model) permite a objetos en cualquier lenguaje comunicarse pero slo en plataformas Windows. RMI (Remote Method Invocation), en cambio, permite la comunicacin sobre cualquier plataforma, pero slo en lenguaje Java. Pero tambin se ha trabajado en soluciones capaces de posibilitar la comunicacin sea cual sea la plataforma o el lenguaje, por ejemplo CORBA. CORBA (Commom Object Request Broker Arquitecture) es una tecnologa que est ampliamente disponible y proporciona tanto capacidad de comunicacin como interoperabilidad. En el lado negativo, CORBA es bastante complejo y pesado, requiriendo de un perodo de aprendizaje alto que desanima a muchos programadores. Llegados a este punto se constata la necesidad de alguna tecnologa que sea a la vez til y que solucione los problemas de protocolos cerrados y/o complejos. Se busca que la creacin de aplicaciones distribuidas sea lo ms sencilla posible, y que se permita la interoperabilidad independientemente de lenguajes y plataformas. El primer intento, XML-RPC, proporciona un mecanismo simple para realizar llamadas a procedimientos remotos apoyndose en datos codificados con XML y transmitidos sobre HTTP. Aunque la idea era buena, pronto surgi una gran limitacin, XML-RPC no poda manejar estructuras de datos complejas. SOAP surge como una segunda respuesta. La idea de SOAP apareci en el mundo empresarial (grandes marcas como Microsoft, IBM, etc.), pero ha evolucionado hasta llegar a ser un proyecto del W3C. Su desarrollo le ha sido asignado a un grupo de trabajo (XML Protocol), lo que le da el caracter de protocolo abierto y a la vez un fuerte impulso.

ARQUITECTURA BSICA DE SOAP Desde el punto de vista de la presente tesis interesa usar SOAP para comunicar aplicaciones, realizando invocaciones RPC e implementando el pattern requerimiento/respuesta, por lo cual el comportamiento es similar al de una arquitectura cliente servidor, donde el proceso es iniciado por el cliente y el servidor responde al requerimiento del mismo. Este tipo de comunicacin se basa en un sistema de mensajes SOAP sincrnicos, codificados en XML que son transportados por HTTP.

En la figura se observa la arquitectura bsica de un sistema, anlogo al descripto, construdo sobre SOAP y los mensajes que definen la interaccin entre la aplicacin cliente y la aplicacin servidor. Generalmente la aplicacin cliente enva un mensaje (REQUEST va HTTP), el cual al ser recibido por la aplicacin servidor genera una respuesta (RESPONSE) que es enviada a la aplicacin cliente va HTTP. Se observa adems que en el caso de usar SOAP para realizar RPC, la invocacin RPC se mapea naturalmente al REQUEST de HTTP y la respuesta RPC se mapea al RESPOSE de HTTP. FUNCIONAMIENTO DE SOAP A continuacin se muestra un esquema del funcionamiento de SOAP

La especificacin 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 implementacin de SOAP (dependiendo de la herramienta de desarrollo elegida) y enlazar sus libreras con la aplicacin. Aunque esto no es estrictamente necesario, es preferible trabajar usando dichas libreras, con el fin de no reescribir un cdigo ya probado.

Las peticiones con el uso del protocolo HTTP emplean el comando POST para transmitir informacin entre el cliente y el servidor. Por otra parte el trmino Object en el nombre significa que se adhiere al paradigma de la programacin orientada a objetos. SOAP es un marco extensible y descentralizado que permite trabajar sobre mltiples pilas de protocolos de redes informticas. Los procedimientos de llamadas remotas pueden ser modelados en la forma de varios mensajes SOAP interactuando entre s. Estos mensajes constan de 3 secciones: envelope, header y body. Donde: 1.-Envelope (envoltura): Es el elemento raz del mensaje para describir su contenido y la forma de procesarlo. 2.-Header (encabezado): Es la informacin de identificacin del contenido. Un grupo de reglas de codificacin para expresar las instancias de tipos de datos definidos por la aplicacin. 3.-Body (cuerpo): Es el contenido del mensaje. Una convencion para representar las llamadas y las respuestas a procedimientos remotos. VENTAJAS DE LA UTILIZACIN DE SOAP Entre las ventajas de SOAP se tiene que: Es sencillo de implementar, probar y usar Atraviesa "firewalls" y routers, pues estos "piensan" que es una comunicacin HTTP. Tanto los datos como las funciones se describen en XML, lo que permite que el protocolo no slo sea ms fcil de utilizar sino que tambin sea muy slido. Es independiente del sistema operativo y procesador. Se puede utilizar tanto de forma annima como con autenticacin (nombre/clave). Facilidad para utilizar cualquier lenguaje: Los desarrolladores involucrados en nuevos proyectos pueden elegir desarrollar con el ltimo y mejor lenguaje de programacin que exista. SOAP no especifica una API, por lo que la implementacin de la API se deja al lenguaje de programacin, como en Java, y la plataforma como Microsoft .Net. No se encuentra fuertemente asociado a ningn protocolo de transporte: La especificacin de SOAP no describe como se deberan asociar los mensajes de SOAP con HTTP. Un mensaje de SOAP no es ms que un documento XML, por lo que puede transportarse utilizando cualquier protocolo capaz de transmitir texto. No est atado a ninguna infraestructura de objeto distribuido: La mayora de los sistemas de objetos distribuidos se pueden extender, y alguno de ellos admiten SOAP. Aprovecha los estndares existentes en la industria: Los principales contribuyentes a la especificacin SOAP evitaron, intencionalmente, reinventar las cosas. Optaron por extender los estndares existentes para que coincidieran con sus necesidades. Por ejemplo, SOAP aprovecha XML para la codificacin de los mensajes, en lugar de utilizar su propio sistema de tipo que ya estn definidas en la especificacin esquema de XML. Y como ya se ha mencionado SOAP no define un medio de trasporte de los mensajes, los mensajes de SOAP se pueden asociar a los protocolos de transporte existentes como HTTP y SMTP. Permite la interoperabilidad entre mltiples entornos: SOAP se desarroll sobre los estndares existentes de la industria, por lo que las aplicaciones que se ejecuten en plataformas con dichos estndares pueden comunicarse mediante mensaje SOAP con aplicaciones que se ejecuten en otras plataformas. Por ejemplo, una aplicacin de escritorio que se ejecute en un PC puede comunicarse con una aplicacin del back-end ejecutndose en un mainframe capaz de enviar y recibir XML sobre HTTP. DESVENTAJAS DE UTILIZACION DE SOAP Entre las desventajas de SOAP se tiene que: Las desventajas de la utilizacin de SOAP recaen en la dificultad para entender las especificaciones del protocolo, puesto que es un complejo esquema de codificacin en el cual

es necesario precisar que todos los mensajes se incluyan en un sobre, con el contenido del mensaje dentro de un elemento de cuerpo para que puedan ser entendidos por cada una de las aplicaciones Web que procesan el mensaje. SOAP convierte en opcionales elementos como encabezados y ofrece un amplio margen con respecto a lo que se puede incluir en el elemento de cuerpo y adems cambia los nombres de mtodos en etiquetas secundarias del cuerpo y los argumentos en etiquetas secundarias del nombre del mtodo, lo que puede generar ciertos problemas de interoperabilidad. Las especificaciones SOAP indican que 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 lo que implic problemas de interoperabilidad. CONCLUSIONES La primera versin de SOAP (Protocolo simple de acceso a objetos), se dio a conocer en 1999 y fue desarrollada por Microsoft Corp., DevelopMentor Inc. y Userland Software Inc. SOAP 1.1 fue liberada el 8 de Mayo del 2000 hasta llegar hoy en da a versiones adaptadas a paquetes tales como SOAP: Lite for Perl, Apache SOAP Ver. 2.2, Apache Axis, etc. Es un protocolo de mensajes entre computadoras. SOAP especifica el formato de mensaje que accede e invoca a los objetos, mas que un objeto en particular y permite solucionar los problemas de las tecnologas que desarrollan aplicaciones que trabajen sobre Internet (CORBA, COM, EJB entre otras), estos problemas son la falta de interoperabilidad, la dependencia a la arquitectura de trabajo, as como al lenguaje de programacin. SOAP es un protocolo ligero para el intercambio de informacin en un entorno distribuido y descentralizado. Esta basado en el protocolo XML y consiste en tres partes: una envoltura que define una estructura para describir que contiene el mensaje y como procesarlo, un conjunto de reglas de codificacin para expresar instancias de tipos de datos definidos para la aplicacin y un convenio para representar las llamadas a procedimientos remotos y las respuestas. Web Services y SOAP hoy en da estn siendo altamente utilizados en las grandes empresas del mundo pues le permiten a estas la cooperacin e integridad entre ellas cuando trabajan en un proyecto en comn, debido a que permite la interoperabilidad entre sus tecnologas.

BIBLIOGRAFIA http://www.revista.unam.mx/vol.3/num1/art3 http://www.microsoft.com/spanish/msdn/articulos/archivo/280901/voices/soapinteropbkgnd .asp http://www.microsoft.com/spanish/msdn/comunidad/mtj.net/voices/art51.asp http://www.desarrolloweb.com/articulos/1557.php?manual=54 http://es.wikipedia.org/wiki/SOAP http://pegaso.ls.fi.upm.es/sistemas_dist/temario_sistemas0304.html

Вам также может понравиться