Anda di halaman 1dari 24

Simple Object Access Protocol

(SOAP)
Alumnos:
Abel Rodas Castillo
Cristhian Causo Gil
Curso: Desarrollo de Aplicaciones Mviles
1

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.
2

SOAP

Es un protocolo mas utilizados en los servicios WEB


para el intercambio de datos estructurados en
formato XML entre dos entidades.
SOAP (Simple Object Access Protocol) define cmo
dos objetos en diferentes procesos pueden
comunicarse por medio de intercambio de datos
XML (mensajes).
Este protocolo deriva de un protocolo creado por
Dave Winer en 1998, llamado XML-RPC (XML
Remote Procedure Call).
3

WSDL son las siglas de


Web Services Description
Language, un formato XML
que se utiliza para describir
servicios Web .
4

Resumiendo

SOAP es una manera para que un


programa que se ejecuta en un sistema
operativo para comunicarse con un
programa que se ejecuta en el mismo o un
sistema operativo diferente , utilizando
HTTP (o cualquier otro protocolo de
transporte ) y XML.
5

Caractersticas de SOAP

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).
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.
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.
8

El Papel de JSON

Como sabemos que al invocar un ws se estn


comunicando dos aplicaciones, y esto es posible, por el
protocolo SOAP que realiza un intercambio de mensajes
con estndar XML. Entre mas datos se estn
intercambiando entre las aplicaciones, los mensajes
crecern mas y el tiempo de entrega se ira incrementando.
Esto situacin ha hecho que haya surgido una nuevo
formato para el intercambio de datos con el fin de hacer
mas ligeros los mensajes de intercambio. Este nuevo
formato es JSON.
9

JSON y XML

JSON (JavaScript Object Notation) es un formato


ligero para el intercambio de datos. JSON es un
subconjunto de la notacin literal de objetos de
JavaScript que no requiere el uso de XML. La
simplicidad de JSON ha dado lugar a la
generalizacin de su uso, especialmente como
alternativa a XML. Tambin es frecuente el uso de
JSON y XML en la misma aplicacin.

10

WSDL

WSDL (Web Services Description Language) describe


la interfaz pblica a los servicios Web. Est basado
en XML y describe la forma de comunicacin, es
decir, los requisitos del protocolo y los formatos de
los mensajes necesarios para interactuar con los
servicios listados en su catlogo. Las operaciones y
mensajes que soporta se describen en abstracto y se
ligan despus al protocolo concreto de red y al
formato del mensaje.
11

Estructura del mensaje

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"
12

Estructura del mensaje

13

Ejemplo de mensaje SOAP

Como ejemplo se muestra la forma en que un cliente solicitara


informacin de un producto a un proveedor de servicios Web:

14

Ejemplo de mensaje SOAP

Y esta sera la respuesta del proveedor:

15

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.
16

Implementacin de un servicio
web SOAP

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
17
automticamente a partir de su fichero WSDL.

Implementacin de un servicio
web SOAP

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.

18

Implementacin de un servicio
web SOAP

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.
19

Implementacin de un servicio
web 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 formato Windows Communication
Foundation que es un modelo para la creacin de sistemas
orientados a servicios, similar y complementario al WSDL.
20

Proyecto en Android

Como sabemos Android usa java como lenguaje de


programacin, as que para este ejemplo necesitaremos
las librera:

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:

pruebasoap.somee.com/ServicioClientes.asmx.

21

Conclusiones

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
22
entre sus tecnologas.

Enlaces Web y Bibliografa

http://www.monografias.com/trabajos29/protocoloacceso/protocolo-acceso.shtml#ixzz3bNvGBV8n
http://www.taringa.net/posts/cienciaeducacion/17508365/Acceso-a-Servicios-Web-SOAP-enAndroid.html
http://androideity.com/2011/11/16/consumiendo-webservice-soap-json-con-android-i/
http://androideity.com/2011/11/16/consumiendo-webservice-soap-json-con-android-ii/
https://github.com/Androideity/Tutorial_WebServiceSoap
EnAndroid
23

Enlaces Web y Bibliografia

https://msdn.microsoft.com/es-es/library/bb972248.aspx
http://picarcodigo.blogspot.com/2014/05/webserviceconexiones-base-de-datos.html
https://www.youtube.com/watch?v=GipKwMGO6Nc
http://tintelligence.blogspot.mx/2014/07/codigo-fuenteconexion-android-con.html
http://www.sgoliver.net/blog/acceso-a-servicios-websoap-en-android-12/
http://www.sgoliver.net/blog/acceso-a-servicios-websoap-en-android-22/
24

Anda mungkin juga menyukai