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