Este documento presenta una introducción a los servicios web y las diferentes tecnologías para comunicar aplicaciones a través de la web. Explica cómo las aplicaciones evolucionaron de estar aisladas a distribuirse y compartir datos e interoperar mediante protocolos estandarizados. Describe tecnologías como XML-RPC, SOAP y REST para realizar llamadas a procedimientos remotos y comunicar aplicaciones de forma distribuida.
13-Unidad 3. WebServices-3.3. Inicio de Proyecto (Desarrollo)
1. Introduccióna
ServiciosWeb
Mg. Luis
Fernando
Aguas
Estructura de
una aplicación
¿Cómo se
comunicanlas
aplicaciones?
HTTP como
protocolo de
transporte
XML-RPC
SOAP
REST
Conclusiones
Créditosy
Licencia
Ciencias de la Ingeniería
Carrera de Sistemas
Plataformas de Desarrollo 2
Unidad 3. Webservices
3.3 Inicio de Proyecto
(Desarrollo)
Autor(es): Mg. Luis Fernando Aguas Bucheli
+593 984015184
@Aguaszoft
Laguas@uisrael.edu.ec
Aguaszoft@Outlook.es
2. Introduccióna
ServiciosWeb
Mg. Luis
Fernando
Aguas
Estructura de
una aplicación
¿Cómo se
comunicanlas
aplicaciones?
HTTP como
protocolo de
transporte
XML-RPC
SOAP
REST
Conclusiones
Créditosy
Licencia
“No puedes derrotar a la persona que nunca se
rinde”
(Anónimo)
Ciencias de la Ingeniería
Carrera de Sistemas
Plataformas de Desarrollo 2
3. Introduccióna
ServiciosWeb
Mg. Luis
Fernando
Aguas
Estructura de
una aplicación
¿Cómo se
comunicanlas
aplicaciones?
HTTP como
protocolo de
transporte
XML-RPC
SOAP
REST
Conclusiones
Resultados de Aprendizaje
Créditosy
Licencia
• Desarrollar soluciones informáticas
mediante metodologías, herramientas y
estándares que satisfagan los
requerimientos de las organizaciones sobre
la base de los principios de la sociedad de la
información
5. Introduccióna
ServiciosWeb
Mg. Luis
Fernando
Aguas
Estructura de
una aplicación
¿Cómo se
comunicanlas
aplicaciones?
HTTP como
protocolo de
transporte
XML-RPC
SOAP
REST
Conclusiones
Objetivos
Créditosy
Licencia
• Adquirir los conceptos básicos
relacionados con el web Service
• Reconocer las características del diseño
de web Service
6. Introduccióna
ServiciosWeb
Mg. Luis
Fernando
Aguas
Estructura de
una aplicación
¿Cómo se
comunicanlas
aplicaciones?
HTTP como
protocolo de
transporte
XML-RPC
SOAP
REST
Conclusiones
La visión del desconocimiento
La aplicación es un
bloque
Todas las operaciones
están dentro de la
misma aplicación.
Los datos están en la
propia aplicación.
Créditosy
Licencia
7. Introducción a
ServiciosWeb
Mg. Luis
Fernando
Aguas
Estructura de
una aplicación
¿Cómo se
comunicanlas
aplicaciones?
HTTP como
protocolo de
transporte
XML-RPC
SOAP
Una visión un poco más realista
La aplicación está
formada por
componentes.
Algunas operaciones
no pertenecen a la
aplicación.
Los datos están en
sitios externos. REST
Conclusiones
Créditosy
Licencia
8. Introducción a
ServiciosWeb
Mg. Luis
Fernando
Aguas
Estructura de
una aplicación
¿Cómo se
comunicanlas
aplicaciones?
HTTP como
protocolo de
transporte
Una visión un poco más óptima
Componentes en
diferentes
ordenadores.
Comunicación
mediante protocolos.
Desacoplamiento
entre aplicaciones.
XML-RPC
SOAP
REST
Conclusiones
Créditosy
Licencia
9. Introducción a
ServiciosWeb
Mg. Luis
Fernando
Aguas
Estructura de
una aplicación
¿Cómo se
comunicanlas
aplicaciones?
HTTP como
protocolo de
transporte
Una visión un poco distribuida
Compartición de
datos entre
aplicaciones.
Posible medio de
comunicación entre
aplicaciones. XML-RPC
SOAP
REST
Conclusiones
Créditosy
Licencia
10. Introducción a
ServiciosWeb
Mg. Luis
Fernando
Aguas
Estructura de
una aplicación
¿Cómo se
comunicanlas
aplicaciones?
HTTP como
protocolo de
transporte
XML-RPC
Una visión distribuida
Partes de la
aplicación en otros
ordenadores.
Solicitud de servicios.
Mayor
desacoplamiento
entre aplicaciones. SOAP
REST
Conclusiones
Créditosy
Licencia
11. Introducción a
ServiciosWeb
Mg. Luis
Fernando
Aguas
Estructura de
una aplicación
¿Cómo se
comunicanlas
aplicaciones?
HTTP como
protocolo de
transporte
Una visión realmente distribuida
Componentes
reaprovechables.
Simplificación de
desarrollo.
XML-RPC
SOAP
REST
Conclusiones
Créditosy
Licencia
12. Introducción a
ServiciosWeb
Mg. Luis
Fernando
Aguas
Estructura de
una aplicación
¿Cómo se
comunicanlas
aplicaciones?
HTTP como
protocolo de
transporte
XML-RPC
SOAP
REST
Conclusiones
Créditosy
Licencia
Abundantes escenarios
Conexión a Base de Datos
Aplicaciones clientes-servidor.
Conexiones FTP/Telnet
Navegador Web
13. Introducción a
ServiciosWeb
Mg. Luis
Fernando
Aguas
Estructura de
una aplicación
¿Cómo se
comunicanlas
aplicaciones?
HTTP como
protocolo de
transporte
XML-RPC
SOAP
Ya... ¿pero cómo?
Protocolos ad-hoc.
Las aplicaciones se mandan mensajes unas a otras.
Los mensajes pueden ser órdenes a ejecutar.
Los interlocutores deben tener la lógica para enviar
mensajes.
REST
Conclusiones
Créditosy
Licencia
14. Introducción a
ServiciosWeb
Mg. Luis
Fernando
Aguas
Estructura de
una aplicación
¿Cómo se
comunicanlas
aplicaciones?
HTTP como
protocolo de
transporte
XML-RPC
SOAP
Pidiendo cosas... RPC
Remote Procedure Call
Llamadas a operaciones en aplicaciones remotas.
Se mandan los parámetros y la orden a ejecutar. Se
recibe el resultado.
Hay muy diversas implementaciones
Java RMI
.NET Remoting
¡¡CORBA!!
REST
Conclusiones
Créditosy
Licencia
15. Introducción a
ServiciosWeb
Mg. Luis
Fernando
Aguas
Estructura de
una aplicación
¿Cómo se
comunicanlas
aplicaciones?
HTTP como
protocolo de
transporte
XML-RPC
SOAP
REST
Pidiendo cosas... RPC
Ejemplo de RPC
objeto.metodo();
El método podría ejecutarse en remoto...
Normalmente se acompañan de lenguajes de
descripción
Facilidad de programación
Estandarización
Automatización
Conclusiones
Créditosy
Licencia
16. Introducción a
ServiciosWeb
Mg. Luis
Fernando
Aguas
Estructura de
una aplicación
¿Cómo se
comunicanlas
aplicaciones?
HTTP como
protocolo de
transporte
XML-RPC
SOAP
Formatos ad-hoc
Se ajustan el 100% al problema
Pueden ser optimizados y modificados
Tienen una adopción más rápida en escenarios
simples
REST
Conclusiones
Créditosy
Licencia
17. Introducción a
ServiciosWeb
Mg. Luis
Fernando
Aguas
Estructura de
una aplicación
¿Cómo se
comunicanlas
aplicaciones?
HTTP como
protocolo de
transporte
XML-RPC
SOAP
REST
Conclusiones
Créditosy
Licencia
Formatos ad-hoc
Cada implementación empieza de cero
Requieren un proceso de diseño del protocolo
Requiere la adopción del protocolo por parte del cliente
y el servidor
18. Introducción a
ServiciosWeb
Mg. Luis
Fernando
Aguas
Estructura de
una aplicación
¿Cómo se
comunicanlas
aplicaciones?
HTTP como
protocolo de
transporte
XML-RPC
SOAP
REST
Conclusiones
Créditosy
Licencia
¿Qué se necesita?
Estándar reconocido
Múltiples implementaciones
Soporte de envío de mensajes
Formato ‘simple’ que soporte cosas complejas
20. Introducción a
ServiciosWeb
Mg. Luis
Fernando
Aguas
Estructura de
una aplicación
¿Cómo se
comunicanlas
aplicaciones?
HTTP como
protocolo de
transporte
XML-RPC
SOAP
REST
Conclusiones
Estructurando el mensaje
XML permite representar entidades
Los mensajes consisten de entidades (Llamada a
método, tipos, parámetro, valor de retorno, fallo. ..)
El formato permite intercambiar mensajes equivalentes
a llamadas de métodos
Créditosy
Licencia
21. Introducción a
ServiciosWeb
Mg. Luis
Fernando
Aguas
Estructura de
una aplicación
¿Cómo se
comunicanlas
aplicaciones?
HTTP como
protocolo de
transporte
XML-RPC
SOAP
REST
Conclusiones
Estructurando el mensaje
Ejemplo de RPC
<?xml version="1.0"?>
<methodCall>
<methodName>examples.getStateName</methodName>
<params>
<param>
<value><i4>40</i4></value>
</param>
</params>
</methodCall>
Créditosy
Licencia
22. Introducción a
ServiciosWeb
Mg. Luis
Fernando
Aguas
Estructura de
una aplicación
¿Cómo se
comunicanlas
aplicaciones?
HTTP como
protocolo de
transporte
XML-RPC
SOAP
REST
Implementaciones
PHP
C++
Java
.NET
Ruby
Python
Objetive-C (Mac)
Perl
Action Script
Conclusiones
Créditosy
Licencia
¡Haskell!
23. Introducción a
ServiciosWeb
Mg. Luis
Fernando
Aguas
Estructura de
una aplicación
¿Cómo se
comunicanlas
aplicaciones?
HTTP como
protocolo de
transporte
XML-RPC
SOAP
REST
Ventajas
Todo lenguaje...
Capaz de realizar peticiones HTTP puede realizar la
comunicación.
Capaz de procesar XML puede procesar la respuesta.
Conclusiones
Créditosy
Licencia
XML-RPC = HTTP + XML
24. Introducción a
ServiciosWeb
Mg. Luis
Fernando
Aguas
Estructura de
una aplicación
¿Cómo se
comunicanlas
aplicaciones?
HTTP como
protocolo de
transporte
XML-RPC
SOAP
REST
Más información sobre el servicio
XML-RPC describe las llamadas que se pueden
realizar.
Más información podría llevar a una mayor
automatización.
XML-RPC no está preparado para crecer.
Conclusiones
Créditosy
Licencia
25. Introducción a
ServiciosWeb
Mg. Luis
Fernando
Aguas
Estructura de
una aplicación
¿Cómo se
comunicanlas
aplicaciones?
HTTP como
protocolo de
transporte
XML-RPC
SOAP
REST
Conclusiones
Créditosy
Licencia
Más información sobre el servicio
SOAP permite una mayor descripción
Más información => mayor automatización.
Más información => más funcionalidad
26. Introducción a
ServiciosWeb
Mg. Luis
Fernando
Aguas
Estructura de
una aplicación
¿Cómo se
comunicanlas
aplicaciones?
HTTP como
protocolo de
transporte
XML-RPC
SOAP
REST
Conclusiones
Créditosy
Licencia
Datos sobre SOAP
Evolución de XML-RPC
Formato adoptado por el W3C
Está en su versión 2.0, aunque la más soportada es la
1.1
Forma parte del conjunto WS-*
27. Introducción a
ServiciosWeb
Mg. Luis
Fernando
Aguas
Estructura de
una aplicación
¿Cómo se
comunicanlas
aplicaciones?
HTTP como
protocolo de
transporte
XML-RPC
SOAP
Describiendo el servicio
SOAP recupera los lenguajes de descripción de
servicio.
Se describen tipos, operaciones, excepciones, ‘puntos
de entrada’ y más
La descripción se realiza mediante un fichero WSDL
REST
Conclusiones
Créditosy
Licencia
28. Introducción a
ServiciosWeb
Mg. Luis
Fernando
Aguas
Estructura de
una aplicación
¿Cómo se
comunicanlas
aplicaciones?
HTTP como
protocolo de
transporte
XML-RPC
SOAP
Describiendo el servicio
Ejemplo de WSDL
<?xml version="1.0" encoding="UTF-8"?>
<description xmlns="http://www.w3.org/ns/wsdl"
xmlns:tns="http://www.example.com/wsdl20sample"
xmlns:whttp="http://www.w3.org/ns/wsdl/http"
xmlns:wsoap="http://www.w3.org/ns/wsdl/soap"
REST
Conclusiones
Créditosy
Licencia
targetNamespace="http://www.example.com/wsdl20sample">
...
</description>
29. Introducción a
ServiciosWeb
Mg. Luis
Fernando
Aguas
Estructura de
una aplicación
¿Cómo se
comunicanlas
aplicaciones?
HTTP como
protocolo de
transporte
XML-RPC
Creando tipos
En XML-RPC se pueden crear estructuras nuevas
EN SOAP se permite la definición de nuevos tipos
Uso de XML-Schema
SOAP
REST
Conclusiones
Créditosy
Licencia
30. Introducción a
ServiciosWeb
Mg. Luis
Fernando
Aguas
Estructura de
una aplicación
¿Cómo se
comunicanlas
aplicaciones?
HTTP como
protocolo de
transporte
XML-RPC
SOAP
REST
Conclusiones
Créditos y
Creando tipos
Ejemplo de WSDL - Tipos
<types>
<xs:schema
xmlns="http://www.example.com/wsdl20sample"
xmlns:xs="http://www.w3.org/2001/XMLSchema" target-
Namespace="http://www.example.com/wsdl20sample">
<xs:element name="request">
<xs:complexType>
<xs:attribute name="method" type="xs:string"
use="required"/>
</xs:complexType>
</xs:element>
</xs:schema>
Licencia
</types>
31. Introducción a
ServiciosWeb
Mg. Luis
Fernando
Aguas
Estructura de
una aplicación
¿Cómo se
comunicanlas
aplicaciones?
HTTP como
protocolo de
transporte
XML-RPC
SOAP
REST
Definiendo la interface
Se define qué operaciones se permiten
Se definen los parámetros y respuestas
Se definen las excepciones
Conclusiones
Créditosy
Licencia
32. Introducción a
ServiciosWeb
Mg. Luis
Fernando
Aguas
Estructura de
una aplicación
¿Cómo se
comunicanlas
aplicaciones?
HTTP como
protocolo de
transporte
XML-RPC
SOAP
REST
Conclusiones
Definiendo la interface
Ejemplo de WSDL - Interfaces
<interface name="RESTfulInterface">
<fault name="ClientError" element="tns:response"/>
<operation name="Get"
pattern="http://www.w3.org/ns/wsdl/in-out">
<input messageLabel="GetMsg" element="tns:request"/>
<output messageLabel="SuccessfulMsg"
element="tns:response"/>
</operation>
</interface>
Créditosy
Licencia
33. Introducción a
ServiciosWeb
Mg. Luis
Fernando
Aguas
Estructura de
una aplicación
¿Cómo se
comunicanlas
aplicaciones?
HTTP como
protocolo de
transporte
XML-RPC
SOAP
REST
Especificando la capa de transporte
SOAP permite a priori varias capas de transporte, no
solo HTTP.
Se pueden especificar varios protocolos de transporte.
Conclusiones
Créditosy
Licencia
34. Introducción a
ServiciosWeb
Mg. Luis
Fernando
Aguas
Estructura de
una aplicación
¿Cómo se
comunicanlas
aplicaciones?
HTTP como
protocolo de
transporte
XML-RPC
SOAP
REST
Conclusiones
Especificando la capa de transporte
Ejemplo de WSDL - Binding
<binding name="RESTfulInterfaceHttpBinding"
interface="tns:RESTfulInterface"
type="http://www.w3.org/ns/wsdl/http">
<operation ref="tns:Get" whttp:method="GET"/>
<operation ref="tns:Post" whttp:method="POST"
whttp:inputSerialization="application/x-www-form-
urlencoded"/>
<operation ref="tns:Put" whttp:method="PUT"
whttp:inputSerialization="application/x-www-form-
urlencoded"/>
<operation ref="tns:Delete" whttp:method="DELETE"/>
Créditosy
Licencia</binding>
35. Introducción a
ServiciosWeb
Mg. Luis
Fernando
Aguas
Estructura de
una aplicación
¿Cómo se
comunicanlas
aplicaciones?
HTTP como
protocolo de
transporte
XML-RPC
SOAP
REST
Indicando el punto de entrada
Se puede indicar la URL en la que responderá el
servicio web
Hay un solo punto de entrada para todas las
operaciones
SOAP indica en el mensaje la operación concreta que
deseamos
Conclusiones
Créditosy
Licencia
36. Introducción a
ServiciosWeb
Mg. Luis
Fernando
Aguas
Estructura de
una aplicación
¿Cómo se
comunicanlas
aplicaciones?
HTTP como
protocolo de
transporte
XML-RPC
SOAP
REST
Indicando el punto de entrada
Ejemplo de WSDL - Servicicios
<service name="RESTfulService"
interface="tns:RESTfulInterface">
<endpoint name="RESTfulServiceHttpEndpoint"
binding="tns:RESTfulInterfaceHttpBinding"
address="http://www.example.com/rest/"/>
</service>
Conclusiones
Créditosy
Licencia
37. Introducción a
ServiciosWeb
Mg. Luis
Fernando
Aguas
Estructura de
una aplicación
¿Cómo se
comunicanlas
aplicaciones?
HTTP como
protocolo de
transporte
XML-RPC
SOAP
El ecosistema WS-*
Conjunto de especificaciones sobre servicios web
SOAP
Cada especificación se especializa en un aspecto de
los Servicios Web
Juntos forman un conjunto bastante coherente
REST
Conclusiones
Créditosy
Licencia
38. Introducción a
ServiciosWeb
Mg. Luis
Fernando
Aguas
Estructura de
una aplicación
¿Cómo se
comunicanlas
aplicaciones?
HTTP como
protocolo de
transporte
XML-RPC
SOAP
El ecosistema WS-*
WS-Addressing: Encaminamiento de mensajes SOAP.
WS-Transfer: Transferencia de recursos involucrados
en WS-Adressing
WS-Eventing: Suscripción a otros Servicios Web
WS-Policy: Soporte de políticas (de uso, de servicio...)
WS-Security: Aspectos de seguridad
WS-BPEL y WS-Choreography: Relaciones entre
servicios web para definir procesos de negocio REST
Conclusiones
Créditosy
Licencia
39. Introducción a
ServiciosWeb
Mg. Luis
Fernando
Aguas
Estructura de
una aplicación
¿Cómo se
comunicanlas
aplicaciones?
HTTP como
protocolo de
transporte
XML-RPC
¿Suficiente descripción?
La toma de decisiones no se automatiza
Necesidad de aplicar sistemas de razonamiento e
inferencia
Web Semántica + Servicios Web = Servicios Web
Semánticos
SOAP
REST
Conclusiones
Créditosy
Licencia
40. Introducción a
ServiciosWeb
Mg. Luis
Fernando
Aguas
Estructura de
una aplicación
¿Cómo se
comunicanlas
aplicaciones?
HTTP como
protocolo de
transporte
XML-RPC
SOAP
REST
Conclusiones
Créditosy
Licencia
Implementación
El desarrollo de un WSDL puede ser muy duro
El procesado de los mensajes y sus respuestas ya no
es trivial
Existencia de múltiples herramientas deautomatización
‘Necesidad’ de dichas herramientas
41. Introducción a
ServiciosWeb
Mg. Luis
Fernando
Aguas
Estructura de
una aplicación
¿Cómo se
comunicanlas
aplicaciones?
HTTP como
protocolo de
transporte
XML-RPC
SOAP
REST
Conclusiones
Créditosy
Licencia
Generación de código
Ejemplos:
PHP: NuSOAP
JAVA: wsdl2java
.NET: Visual Studio
42. Introducción a
ServiciosWeb
Mg. Luis
Fernando
Aguas
Estructura de
una aplicación
¿Cómo se
comunicanlas
aplicaciones?
HTTP como
protocolo de
transporte
XML-RPC
SOAP
REST
Generación de código
Se indica el fichero descriptor
La herramienta genera clases que se encargan de toda
la comunicación por HTTP
Se crean clases que simbolizan las operaciones y
tienen métodos para realizar la llamada.
En lenguajes dinámicos las clases se crean al vuelo
Conclusiones
Créditosy
Licencia
43. Introducción a
ServiciosWeb
Mg. Luis
Fernando
Aguas
Estructura de
una aplicación
¿Cómo se
comunicanlas
aplicaciones?
HTTP como
protocolo de
transporte
XML-RPC
SOAP
REST
Generación de WSDL
Ejemplos:
PHP: NuSOAP
PHP (Symfony): ckWebService
JAVA: java2wsdl
.NET: Visual Studio
Conclusiones
Créditosy
Licencia
44. Introducción a
ServiciosWeb
Mg. Luis
Fernando
Aguas
Estructura de
una aplicación
¿Cómo se
comunicanlas
aplicaciones?
HTTP como
protocolo de
transporte
XML-RPC
SOAP
REST
Conclusiones
Créditosy
Licencia
Generación de WSDL
Se indican las operaciones a exponer
La herramienta genera la descripción de los servicios
Se crean tipos para hacer corresponder con los
remotos
45. Introducción a
ServiciosWeb
Mg. Luis
Fernando
Aguas
Estructura de
una aplicación
¿Cómo se
comunicanlas
aplicaciones?
HTTP como
protocolo de
transporte
XML-RPC
SOAP
REST
Conclusiones
Créditosy
Licencia
Ventajas
Mayor descripción del servicio
Más funcionalidades (especificaciones para seguridad,
orquestación de servicios...)
Herramientas que facilitan el desarrollo
46. Introducción a
ServiciosWeb
Mg. Luis
Fernando
Aguas
Estructura de
una aplicación
¿Cómo se
comunicanlas
aplicaciones?
HTTP como
protocolo de
transporte
XML-RPC
SOAP
REST
Ventajas
Más estables y fiables (la descripción indica los
detalles sobre la comunicación)
las modificaciones solo requieren ejecutar de nuevo la
herramenta de generación de código
Usados en entornos donde se requiere muy alta
fiabilidad
Conclusiones
Créditosy
Licencia
47. Introducción a
ServiciosWeb
Mg. Luis
Fernando
Aguas
Estructura de
una aplicación
¿Cómo se
comunicanlas
aplicaciones?
HTTP como
protocolo de
transporte
XML-RPC
SOAP
REST
Back to basics
SOAP exige una descripción más detallada
SOAP da soporte a muchas funcionalidades extra
(seguridad, confianza...)
SOAP requiere herramientas adecuadas
SOAP es demasiado complejo.
Conclusiones
Créditosy
Licencia
48. Introducción a
ServiciosWeb
Mg. Luis
Fernando
Aguas
Estructura de
una aplicación
¿Cómo se
comunicanlas
aplicaciones?
HTTP como
protocolo de
transporte
XML-RPC
SOAP
REST
Back to basics
HTTP es un método de transporte válido
HTTP ofrece alguna funcionalidad extra (HTTPS para
conexiones seguras)
HTTP dispone de diversos ‘verbos’ para distintas
acciones (GET, POST, PUT. .. )
Conclusiones
Créditosy
Licencia
49. Introducción a
ServiciosWeb
Mg. Luis
Fernando
Aguas
Estructura de
una aplicación
¿Cómo se
comunicanlas
aplicaciones?
HTTP como
protocolo de
transporte
XML-RPC
SOAP
REST
Filosofía REST
Las peticiones se hacen a recursos, no a métodos
No es ‘dame los datos del alumno 1’ sino ‘acceder al
alumno 1’
Cada recurso equivale a un punto de entrada para el
servicio web
SOAP disponía de 1 punto de acceso
Los métodos que se pueden invocar son los del
estándar HTTP
Para el mismo punto de acceso (recurso) se pueden
ejecutar distintas acciones
Está basado en HTTP Conclusiones
Créditosy
Licencia
50. Introducción a
ServiciosWeb
Mg. Luis
Fernando
Aguas
Estructura de
una aplicación
¿Cómo se
comunicanlas
aplicaciones?
HTTP como
protocolo de
transporte
XML-RPC
SOAP
REST
Filosofía REST
Concepto publicado por Roy Fielding en su tesis doctoral.
REST enables intermediate processing by constraining
messages to be self-descriptive: interaction is stateless
between requests, standard methods and media types are
used to indicate semantics and exchange information, and
responses explicitly indicate cacheability.
Conclusiones
Créditosy
Licencia
51. Introducción a
ServiciosWeb
Mg. Luis
Fernando
Aguas
Estructura de
una aplicación
¿Cómo se
comunicanlas
aplicaciones?
HTTP como
protocolo de
transporte
XML-RPC
SOAP
REST
Filosofía REST
No es un estándar
No define formatos
Es una manera de desarrollar servicios web
Conclusiones
Créditosy
Licencia
52. Introducción a
ServiciosWeb
Mg. Luis
Fernando
Aguas
Estructura de
una aplicación
¿Cómo se
comunicanlas
aplicaciones?
HTTP como
protocolo de
transporte
XML-RPC
SOAP
REST y CRUD
En un sistema basado en métodos (RPC) hay ‘n’
acciones posibles
En un sistema basado en recursos (RES) hay ‘n’
recursos, pero solo 4 acciones básicas
Un recurso:
Se crea
Se obtiene
Se actualiza
Se elimina REST
Conclusiones
Créditosy
Licencia
53. Introducción a
ServiciosWeb
Mg. Luis
Fernando
Aguas
Estructura de
una aplicación
¿Cómo se
comunicanlas
aplicaciones?
HTTP como
protocolo de
transporte
XML-RPC
REST y CRUD
Problema básico de gestión de datos: CRUD
CREATE
RETRIEVE
UPDATE
DELETE
SOAP
REST
Conclusiones
Créditosy
Licencia
54. Introducción a
ServiciosWeb
Mg. Luis
Fernando
Aguas
Estructura de
una aplicación
¿Cómo se
comunicanlas
aplicaciones?
HTTP como
protocolo de
transporte
XML-RPC
SOAP
REST
Conclusiones
Créditosy
Licencia
REST y CRUD
Problema básico de gestión de datos: CRUD => PGPD
CREATE => PUT
RETRIEVE => GET
UPDATE => POST
DELETE => DELETE
55. Introducción a
ServiciosWeb
Mg. Luis
Fernando
Aguas
Estructura de
una aplicación
¿Cómo se
comunicanlas
aplicaciones?
HTTP como
protocolo de
transporte
XML-RPC
SOAP
REST
Método PUT
RFC 2616, HTTP PUT
The PUT method requests that the enclosed entity be
Conclusiones
Créditosy
Licencia
stored under the supplied Request-URI.
If the Request-URI refers to an already existing resource,
the enclosed entity SHOULD be considered as a modified
version of the one residing on the origin server.
57. Introducción a
ServiciosWeb
Mg. Luis
Fernando
Aguas
Estructura de
una aplicación
¿Cómo se
comunicanlas
aplicaciones?
HTTP como
protocolo de
transporte
XML-RPC
SOAP
REST
Conclusiones
Créditosy
Licencia
Método GET
RFC 2616, HTTP GET
The GET method means retrieve whatever information (in
the form of an entity) is identified by the Request-URI.
59. Introducción a
ServiciosWeb
Mg. Luis
Fernando
Aguas
Estructura de
una aplicación
¿Cómo se
comunicanlas
aplicaciones?
HTTP como
protocolo de
transporte
XML-RPC
SOAP
REST
Conclusiones
Créditosy
Licencia
Método POST
RFC 2616, HTTP POST
The POST method is used to request that the origin server
accept the entity enclosed in the request as a new
subordinate of the resource identified by the Request-URI in
the Request-Line.
60. Introducción a
ServiciosWeb
Mg. Luis
Fernando
Aguas
Estructura de
una aplicación
¿Cómo se
comunicanlas
aplicaciones?
HTTP como
protocolo de
transporte
XML-RPC
SOAP
REST
Conclusiones
Créditosy
Licencia
Método POST
RFC 2616, HTTP POST
- Annotation of existing resources;
- Extending a database through an append operation.
62. Introducción a
ServiciosWeb
Mg. Luis
Fernando
Aguas
Estructura de
una aplicación
¿Cómo se
comunicanlas
aplicaciones?
HTTP como
protocolo de
transporte
XML-RPC
SOAP
REST
Conclusiones
Créditosy
Licencia
Método DELETE
RFC 2616, HTTP DELETE
The DELETE method requests that the origin server delete
the resource identified by the Request-URI.
64. Introducción a
ServiciosWeb
Mg. Luis
Fernando
Aguas
Estructura de
una aplicación
¿Cómo se
comunicanlas
aplicaciones?
HTTP como
protocolo de
transporte
XML-RPC
SOAP
REST
Conclusiones
Créditosy
Licencia
REST y otros protocolos
REST no detalla formatos
XML-RPC podría implementarse sobre REST
SOAP 2.0 permite crear servicios web RESTful
65. Introducción a
ServiciosWeb
Mg. Luis
Fernando
Aguas
Estructura de
una aplicación
¿Cómo se
comunicanlas
aplicaciones?
HTTP como
protocolo de
transporte
XML-RPC
SOAP
Definición del servicio
REST no habla de definición de servicio
La respuesta puede tener el formato que se quiera
(XML, JSON, HTML. . .)
REST no contempla el lanzamiento de excepciones
HTTP posee códigos de error para indicar problemas
Puede usarse un lenguaje de descripción sobre REST
REST
Conclusiones
Créditosy
Licencia
66. Introducción a
ServiciosWeb
Mg. Luis
Fernando
Aguas
Estructura de
una aplicación
¿Cómo se
comunicanlas
aplicaciones?
HTTP como
protocolo de
transporte
XML-RPC
SOAP
Funcionalidades añadidas
Las funcionalidades están presentes en HTTP
Seguridad mediante HTTPS
Autenticación mediante HTTP-Auth
Gestión de errores
Posibilidad de incorporar certificados digitales
Manejo de sesiones en el servidor
REST
Conclusiones
Créditosy
Licencia
67. Introducción a
ServiciosWeb
Mg. Luis
Fernando
Aguas
Estructura de
una aplicación
¿Cómo se
comunicanlas
aplicaciones?
HTTP como
protocolo de
transporte
XML-RPC
Comunicación entre aplicaciones
Una aplicación aislada está muy limitada.
La separación de funciones permite optimizar
desarrollos y aplicaciones
La comunicación puede realizarse entre distintos
ordenadores
Las aplicaciones pueden comunicarse con varias
aplicaciones
SOAP
REST
Conclusiones
Créditosy
Licencia
68. Introducción a
ServiciosWeb
Mg. Luis
Fernando
Aguas
Estructura de
una aplicación
¿Cómo se
comunicanlas
aplicaciones?
HTTP como
protocolo de
transporte
XML-RPC
Formatos de comunicación
Un formato ad-hoc es rápido de diseñar (mal)
Un formato estándar puede no ajustarse al 100%
Un formato estandar cuenta con más experiencia
Un formato estándar contará con implementación
HTTP es un formato estándar de comunicaciones
SOAP
REST
Conclusiones
Créditosy
Licencia
69. Introducción a
ServiciosWeb
Mg. Luis
Fernando
Aguas
Estructura de
una aplicación
¿Cómo se
comunicanlas
aplicaciones?
HTTP como
protocolo de
transporte
XML-RPC
Servicios Web
Intercambio de mensajes a través de HTTP
XML-RPC: Formato básico de llamada a procedimiento
remoto.
SOAP: Formato RPC más elaborado y con varios
estándares a su alrededor
REST: Filosofía de desarrollo de Servicios Web
basada en HTTP
SOAP
REST
Conclusiones
Créditosy
Licencia
71. Introducción a
ServiciosWeb
Mg. Luis
Fernando
Aguas
Estructura de
una aplicación
¿Cómo se
comunicanlas
aplicaciones?
HTTP como
protocolo de
transporte
XML-RPC
SOAP
Licencia
Estas transparencias se publican bajo licencia Creative
Commons y se pueden redistribuir o modificar bajo las
siguientes condiciones:
Se dé reconocimiento al autor de estas transparencias.
No se use con propósitos comerciales.
Se distribuya con la misma licencia.
Texto de la licencia: http:
//creativecommons.org/licenses/by-nc-sa/3.0/
REST
Conclusiones
Créditosy
Licencia