You are on page 1of 14

Ao de la Diversificacin Productiva y Fortalecimiento

de la Educacin

Informe de Trabajo
Universidad San Pedro

Facultad: Ingeniera.
Escuela: Ingeniera Informtica y de Sistemas.
Curso: Desarrollo de Aplicaciones Mviles.
Tema: SOAP (Simple Object Access Protocol).
Docente: Ing. Johnny Ezequiel Montero Minaya.
Ciclo: VII
Turno: Noche - Grupo A.
Alumnos:
Causo Gil, Cristian Darwin.
Rodas Castillo, Abel Enrique.

Barranca - Per
2015

Contenido
1. Ttulo:.......................................................................................................... 3
2. Introduccin:.............................................................................................. 3
3. Contenido:.................................................................................................. 3
3.1. Definicin:............................................................................................ 3
3.2........................................................................................ Caracteristicas
4
3.3. Historia................................................................................................. 4
3.4..........................................................................Estructura del Mensaje
6
3.5.................................................................Ejemplos de mensajes SOAP
7
3.6.................................................................................................... Ventajas
7
3.7............................................................................................. Desventajas
8
3.8.........................................Implementacin de un servicio web SOAP
8
3.9.................................Creando un Proyecto con SOAP y Web service.
9
4. Conclusiones............................................................................................ 13
5. Referencia Bibliogrfica.........................................................................13
6.

Anexo:....................................................................................................... 13

1.Ttulo:
Simple Object Access Protocol (SOAP) .
2. Introduccin:
La mayora de los sitios webs grandes (Google, Bancos,
Facebook, Microsoft, etc.) usan aplicaciones que utilizan
servicios webs (web services). Un web service es un conjunto
de protocolos y estndares que sirven para intercambiar datos
entre aplicaciones. As que distintas aplicaciones de software
desarrolladas en lenguajes de programacin diferentes, y
ejecutadas sobre cualquier plataforma, pueden utilizar los
servicios web para intercambiar datos en redes de
ordenadores como Internet, esto significa que los ws aportan
interoperabilidad..

3.Contenido:
3.1. Definicin:
SOAP (siglas de Simple Object Access Protocol) es un
protocolo estndar que define cmo dos objetos en diferentes
procesos pueden comunicarse por medio de intercambio de
datos XML. Este protocolo deriva de un protocolo creado por
Dave Winer en 1998, llamado XML-RPC. SOAP fue creado por
Microsoft, IBM y otros. Est actualmente bajo el auspicio de la
W3C. Es uno de los protocolos utilizados en los servicios Web.

3.2. Caracteristicas
Bsicamente SOAP Es un paradigma de mensajera de una
direccin sin estado, que puede ser utilizado para formar
protocolos ms complejos y completos segn las necesidades
de las aplicaciones que lo implementan. Puede formar y
construir la capa base de una "pila de protocolos de web
service", ofreciendo un framework de mensajera bsica en el
cual los web services se pueden construir. Este protocolo est
basado en XML y se conforma de tres partes:

Sobre (envelope): el cual define qu hay en el mensaje y


cmo procesarlo
Conjunto de reglas de codificacin para expresar instancias de
tipos de datos
La Convencin para representar llamadas a procedimientos y
respuestas.
El protocolo SOAP tiene tres caractersticas principales:
Extensibilidad (seguridad y WS-routing son extensiones
aplicadas en el desarrollo).
Neutralidad (SOAP puede ser utilizado sobre cualquier
protocolo de transporte como HTTP, SMTP, TCP o JMS).
Independencia (SOAP permite cualquier modelo de
programacin).
Como ejemplo de cmo el modelo SOAP pueda ser utilizado,
consideraremos un mensaje SOAP que podra ser enviado a un
web service para realizar la bsqueda de algn precio en una
base de datos, indicando para ello los parmetros necesitados
en la consulta. El servicio podra retornar un documento en
formato XML con el resultado, un ejemplo, precios,
localizacin o caractersticas. Teniendo los datos de respuesta
en un formato estandarizado procesable (en ingls
"parseable"), ste puede ser integrado directamente en un
sitio Web o aplicacin externa.
La arquitectura SOAP est formada por varias capas de
especificacin: MEP (Message Exchange Patterns) para el
formato del mensaje, enlaces subyacentes del protocolo de
transporte, el modelo de procesamiento de mensajes, y la
capa de extensibilidad del protocolo. SOAP es el sucesor de
XML-RPC, a pesar de que toma el transporte y la neutralidad
de la interaccin, as como el envelope / header / body, de
otros modelos (probablemente de WDDX).
3.3. Historia
La preocupacin por los sistemas distribuidos y de cmo
diferentes mquinas podan comunicarse entre s surgi en la
dcada de los 90. Hasta ese momento, era suficiente con que
las aplicaciones de un mismo ordenador pudieran establecer
una comunicacin.

En 1990, surgieron los modelos COM y CORBA. El primero,


Component Object Model fue creado por Microsoft, y el
segundo, CORBA, por el Object Management Group. No
obstante, estos dos modelos presentaban un hndicap muy
importante: no eran fcilmente interoperables ya que las dos
mquinas que llevaran a cabo la comunicacin deban
soportar COM o CORBA, por tanto nicamente se poda utilizar
con dos mquinas COM o dos mquinas CORBA. Ms adelante,
Microsoft cre DCOM y Sun, RMI (Remote Method Invocation).
Aunque estos mtodos permitan establecer una conexin
entre ordenadores a travs de la red, tampoco eran
interoperables ya que RMI est disponible nicamente para
Java, y por tanto, es dependiente del lenguaje de
programacin. Por todo ello, Microsoft empez a interesarse
por la computacin distribuida basada en XML en el ao 1997.
Su objetivo era terminar con los problemas de
interoperabilidad de las soluciones anteriores y permitir que
las aplicaciones se conectaran mediante RPCs (Remote
Procedure Calls), utilizando los estndares de comunicacin
XML y HTTP.
SOAP fue diseado como un protocolo de acceso a objetos en
1998 por Dave Winer, Don Box, Bob Atkinson y Mohsen AlGhosein por Microsoft, donde Atkinson y Al-Ghosein
trabajaban en aquel entonces. La especificacin SOAP
actualmente es mantenida por el XML Protocol Working Group
del World Wide Web Consortium.
La versin SOAP 1.1 se present en el ao 2000 e IBM
particip en su creacin. Esta participacin result muy
positiva ya que se produjeron cambios significativos y
cruciales para su posterior uso: se dise de una forma ms
modular y escalable, eliminando los problemas derivados de
una tecnologa propietaria, en este caso de Microsoft.
Adems, IBM llev a cabo una implementacin de SOAP en
Java y SOAP se integr en Web Services J2EE.
SOAP originalmente significaba "Simple Object Access
Protocol", pero esta sigla se abandon con la versin 1.2 de la

norma. La versin 1.2 se convirti en una recomendacin del


W3C el 24 de junio de 2003. El acrnimo se confunde a veces
con SOA, siglas de arquitectura orientada a servicios, pero las
siglas no estn relacionados.
Despus que SOAP se introdujo por primera vez, se convirti
en la capa subyacente de un conjunto ms complejo de los
web services, basada en la WSDL (Web Services Description
Language) y UDDI (Universal Description Discovery and
Integration). Estos servicios, especialmente UDDI, han
demostrado ser de mucho menos inters, pero una
apreciacin de ellos da una comprensin ms completa del
esperado rol de SOAP comparado a como los web services
estn actualmente desarrollados.
3.4. Estructura del Mensaje
Un mensaje SOAP es un documento XML ordinario con una
estructura definida en la especificacin del protocolo. Dicha
estructura la conforman las siguientes partes:
Envelope (obligatoria): raz que de la
estructura, es la parte que identifica
al mensaje SOAP como tal.
Header: esta parte es un mecanismo
de extensin ya que permite enviar
informacin relativa a como debe ser
procesado el mensaje. Es una
herramienta para que los mensajes
puedan ser enviados de la forma ms
conveniente para las aplicaciones. El
elemento "Header" se compone a su
vez de "Header Blocks" que delimitan
las unidades de informacin necesarias para el header.
Body (obligatoria): contiene la informacin relativa a la
llamada y la respuesta.
Fault: bloque que contiene informacin relativa a errores
que se hayan producido durante el procesado del
mensaje y el envio desde el "SOAP Sender" hasta el
"Ultimate SOAP Receiver"

En los prximos apartados de este documento se podr


apreciar esta estructura con ejemplos concretos.

3.5. Ejemplos de mensajes SOAP


Como ejemplo se muestra la forma en que un cliente
solicitara informacin de un producto a un proveedor de
servicios Web:

Y esta sera la respuesta del proveedor:

3.6. Ventajas
Debido al uso de XML permite invocar procedimientos
remotos de muchos lenguajes, por lo tanto, presenta una
gran interoperabilidad.
Al utilizar una comunicacin va HTTP es fcilmente
escalable, adems de ser casi siempre permitido por los
cortafuegos.
Puede ser implementado utilizando cualquier lenguaje y
ejecutado en cualquier plataforma.

Es posible utilizarlo mediante usuario annimo y


mediante autentificacin.
Es posible transmitirlo mediante cualquier protocolo de
transporte capaz de transmitir texto, tpicamente HTTP o
SMTP.
3.7. Desventajas
Debido al uso de XML para el paso de mensajes, SOAP es
considerablemente ms lento que otros middleware
como CORBA ya que los datos binarios se codifican como
texto. Para contrarrestar este punto dbil en el caso de
XML con cdigo binario incrustado se desarroll un
mtodo optimizado de transmisin de mensajes.
Depende del WSDL (Web Services Description
Language).
Al contrario que Java, PHP o Python ciertos lenguajes no
ofrecen un apoyo adecuado para su uso ya sea a nivel de
integracin o de soporte IDE.
3.8. Implementacin de un servicio web SOAP
Todos los lenguajes de uso mayoritario en el desarrollo de
sistemas web implementan o incluyen algn tipo de soporte
para la implementacin tanto de web services SOAP como de
los clientes que los consumen. Adems de libreras que
implementan el protocolo a nivel bsico, encontramos otras
que implementan diferentes escenarios de uso y establecen
interfaces ms sencillas simplificando la programacin.
Estas libreras, utilizadas en conjunto con frameworks de
desarrollo de sistemas web agilizan el proceso de desarrollo
tanto del web service como de sus clientes, en especial si se
genera un fichero WSDL que comunique a los clientes las
caractersticas del servicio.
JAVA: dentro de su librera estndar se encuentran
implementaciones concretas a las que se da soporte
oficial. Tambin podemos encontrar libreras de terceros
que, tal y como se ha comentado, ayudan al
desarrollador simplificando las interfaces e
implementando los casos de uso ms habituales. Cabe

destacar que los IDEs ms utilizados ofrecen soporte


para la creacin de servicios web SOAP que, entre otras
cosas, generan automticamente el fichero WSDL y
permiten disear de forma visual el API y las llamadas
que contendr. En cuanto el servidor a utilizar, se
pueden considerar las opciones tpicas en Java: Tomcat,
Glashfish, etc. An as, la eleccin del servidor puede
suponer algunas ventajas, por ejemplo, Glashfish genera
una sencilla interfaz web para probar las diferentes
llamadas del servicio. Adems, la mayora de
herramientas permiten la generacin del cliente del
servicio automticamente a partir de su fichero WSDL.
PHP: ofrece soporte y unas libreras de apoyo habilitando
la extensin SOAP en el servidor. Se ha desarrollado un
gran nmero de libreras de terceros, que combinadas
con el uso de frameworks MVC, simplifican las interfaces
e implementan los escenarios de uso ms habituales.
Tambin son habituales las implementaciones de clientes
para servicios web pblicos concretos.
Python: no ofrece un soporte en sus libreras estandar,
sin embargo, existe un gran nmero de paquetes de
terceros que permiten la implementacin de servicios
web SOAP y sus clientes. En el mbito del desarrollo de
servicios web en Python, predomina la utilizacin del
Framework Django que se puede combinar con
cualquiera de las implementaciones de SOAP.
.NET: dentro del Framework se ofrecen herramientas
similares a las de Java para el diseo visual del servicio y
la creacin automtica de WSDL . Tambin da soporte
para la creacin de los clientes a partir del fichero de
definicin del servicio. En el caso de .NET, el IDE
destacado es Visual Studio. En cuanto a libreras
encontramos que el ecosistema .NET ofrece mltiples
opciones en varios lenguajes, aunque la apuesta actual
de Microsoft para el desarrollo web es su Framework .NET
MVC. Se debe tener en cuenta, que Microsoft cre el

3.9. Creando un Proyecto con SOAP y Web service.


Como sabemos Android usa java como lenguaje de
programacin, as que para este ejemplo necesitaremos
las librera:
o ksoap2-android es una biblioteca ligera y eficiente
para web services basados en el protocolo SOAP.
Adems para este proyecto necesitaremos un web
service previamente creado:
o

http://abelrodas-001-site1.myasp.net/ServicioClientes.asmx

4.Conclusiones
SOAP es un protocolo ligero
para el intercambio de
informacin
en
un
entorno
distribuido y

descentralizado. Est 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.

5.Referencia Bibliogrfica

http://www.monografias.com/trabajos29/protocolo-acceso/protocoloacceso.shtml#ixzz3bNvGBV8n
http://www.taringa.net/posts/ciencia-educacion/17508365/Acceso-aServicios-Web-SOAP-en-Android.html

http://androideity.com/2011/11/16/consumiendo-web-service-soapjson-con-android-i/
http://androideity.com/2011/11/16/consumiendo-web-service-soapjson-con-android-ii/
https://github.com/Androideity/Tutorial_WebServiceSoapEnAndroid
https://msdn.microsoft.com/es-es/library/bb972248.aspx
http://picarcodigo.blogspot.com/2014/05/webservice-conexionesbase-de-datos.html
http://tintelligence.blogspot.mx/2014/07/codigo-fuente-conexionandroid-con.html
http://www.sgoliver.net/blog/acceso-a-servicios-web-soap-en-android12/
http://www.sgoliver.net/blog/acceso-a-servicios-web-soap-en-android22/

6. Anexo:

https://www.youtube.com/watch?v=GipKwMGO6Nc

You might also like