Arquitectura del Software - – Tema 6 – REST: La Arquitectura de la

Transcripción

Arquitectura del Software - – Tema 6 – REST: La Arquitectura de la
La World Wide Web
Representational State Transfer
El Protocolo HTTP
Aplicando REST a la Web
Diseño de Aplicaciones RESTful
Ejemplo: Correo Interno de Facebook
Resumen
Lecturas recomendadas
Enlaces Recomendados
Preguntas
Bibliografía
Arquitectura del Software
– Tema 6 –
REST: La Arquitectura de la World Wide Web
Sergio Saugar
[email protected]
5o Ingeniería Informática
Univ. Rey Juan Carlos
Curso 2010-2011
Sergio Saugar
Arquitectura del Software
La World Wide Web
Representational State Transfer
El Protocolo HTTP
Aplicando REST a la Web
Diseño de Aplicaciones RESTful
Ejemplo: Correo Interno de Facebook
Resumen
Lecturas recomendadas
Enlaces Recomendados
Preguntas
Bibliografía
Presentación
Sergio Saugar
Despacho: Departamental II, Desp. 232
Tutorías: Miércoles 11-13 y 17-21
Correo-e: [email protected]
Sergio Saugar
Arquitectura del Software
La World Wide Web
Representational State Transfer
El Protocolo HTTP
Aplicando REST a la Web
Diseño de Aplicaciones RESTful
Ejemplo: Correo Interno de Facebook
Resumen
Lecturas recomendadas
Enlaces Recomendados
Preguntas
Bibliografía
REST: La Arquitectura de la World Wide Web
1
La World Wide Web
2
Representational State Transfer
3
El Protocolo HTTP
4
Aplicando REST a la Web
5
Diseño de Aplicaciones RESTful
6
Ejemplo: Correo Interno de Facebook
7
Lecturas recomendadas
8
Enlaces Recomendados
Sergio Saugar
Arquitectura del Software
La World Wide Web
Representational State Transfer
El Protocolo HTTP
Aplicando REST a la Web
Diseño de Aplicaciones RESTful
Ejemplo: Correo Interno de Facebook
Resumen
Lecturas recomendadas
Enlaces Recomendados
Preguntas
Bibliografía
REST: La Arquitectura de la World Wide Web
1
La World Wide Web
2
Representational State Transfer
3
El Protocolo HTTP
4
Aplicando REST a la Web
5
Diseño de Aplicaciones RESTful
6
Ejemplo: Correo Interno de Facebook
7
Lecturas recomendadas
8
Enlaces Recomendados
Sergio Saugar
Arquitectura del Software
La World Wide Web
Representational State Transfer
El Protocolo HTTP
Aplicando REST a la Web
Diseño de Aplicaciones RESTful
Ejemplo: Correo Interno de Facebook
Resumen
Lecturas recomendadas
Enlaces Recomendados
Preguntas
Bibliografía
REST: La Arquitectura de la World Wide Web
1
La World Wide Web
2
Representational State Transfer
3
El Protocolo HTTP
4
Aplicando REST a la Web
5
Diseño de Aplicaciones RESTful
6
Ejemplo: Correo Interno de Facebook
7
Lecturas recomendadas
8
Enlaces Recomendados
Sergio Saugar
Arquitectura del Software
La World Wide Web
Representational State Transfer
El Protocolo HTTP
Aplicando REST a la Web
Diseño de Aplicaciones RESTful
Ejemplo: Correo Interno de Facebook
Resumen
Lecturas recomendadas
Enlaces Recomendados
Preguntas
Bibliografía
REST: La Arquitectura de la World Wide Web
1
La World Wide Web
2
Representational State Transfer
3
El Protocolo HTTP
4
Aplicando REST a la Web
5
Diseño de Aplicaciones RESTful
6
Ejemplo: Correo Interno de Facebook
7
Lecturas recomendadas
8
Enlaces Recomendados
Sergio Saugar
Arquitectura del Software
La World Wide Web
Representational State Transfer
El Protocolo HTTP
Aplicando REST a la Web
Diseño de Aplicaciones RESTful
Ejemplo: Correo Interno de Facebook
Resumen
Lecturas recomendadas
Enlaces Recomendados
Preguntas
Bibliografía
REST: La Arquitectura de la World Wide Web
1
La World Wide Web
2
Representational State Transfer
3
El Protocolo HTTP
4
Aplicando REST a la Web
5
Diseño de Aplicaciones RESTful
6
Ejemplo: Correo Interno de Facebook
7
Lecturas recomendadas
8
Enlaces Recomendados
Sergio Saugar
Arquitectura del Software
La World Wide Web
Representational State Transfer
El Protocolo HTTP
Aplicando REST a la Web
Diseño de Aplicaciones RESTful
Ejemplo: Correo Interno de Facebook
Resumen
Lecturas recomendadas
Enlaces Recomendados
Preguntas
Bibliografía
REST: La Arquitectura de la World Wide Web
1
La World Wide Web
2
Representational State Transfer
3
El Protocolo HTTP
4
Aplicando REST a la Web
5
Diseño de Aplicaciones RESTful
6
Ejemplo: Correo Interno de Facebook
7
Lecturas recomendadas
8
Enlaces Recomendados
Sergio Saugar
Arquitectura del Software
La World Wide Web
Representational State Transfer
El Protocolo HTTP
Aplicando REST a la Web
Diseño de Aplicaciones RESTful
Ejemplo: Correo Interno de Facebook
Resumen
Lecturas recomendadas
Enlaces Recomendados
Preguntas
Bibliografía
REST: La Arquitectura de la World Wide Web
1
La World Wide Web
2
Representational State Transfer
3
El Protocolo HTTP
4
Aplicando REST a la Web
5
Diseño de Aplicaciones RESTful
6
Ejemplo: Correo Interno de Facebook
7
Lecturas recomendadas
8
Enlaces Recomendados
Sergio Saugar
Arquitectura del Software
La World Wide Web
Representational State Transfer
El Protocolo HTTP
Aplicando REST a la Web
Diseño de Aplicaciones RESTful
Ejemplo: Correo Interno de Facebook
Resumen
Lecturas recomendadas
Enlaces Recomendados
Preguntas
Bibliografía
REST: La Arquitectura de la World Wide Web
1
La World Wide Web
2
Representational State Transfer
3
El Protocolo HTTP
4
Aplicando REST a la Web
5
Diseño de Aplicaciones RESTful
6
Ejemplo: Correo Interno de Facebook
7
Lecturas recomendadas
8
Enlaces Recomendados
Sergio Saugar
Arquitectura del Software
La World Wide Web
Representational State Transfer
El Protocolo HTTP
Aplicando REST a la Web
Diseño de Aplicaciones RESTful
Ejemplo: Correo Interno de Facebook
Resumen
Lecturas recomendadas
Enlaces Recomendados
Preguntas
Bibliografía
Definición
Vista actual
Despliegue de la Web
Servicios Web
Servicios Web Restful
Índice
1
La World Wide Web
2
Representational State Transfer
3
El Protocolo HTTP
4
Aplicando REST a la Web
5
Diseño de Aplicaciones RESTful
6
Ejemplo: Correo Interno de Facebook
7
Lecturas recomendadas
8
Enlaces Recomendados
Sergio Saugar
Arquitectura del Software
La World Wide Web
Representational State Transfer
El Protocolo HTTP
Aplicando REST a la Web
Diseño de Aplicaciones RESTful
Ejemplo: Correo Interno de Facebook
Resumen
Lecturas recomendadas
Enlaces Recomendados
Preguntas
Bibliografía
Definición
Vista actual
Despliegue de la Web
Servicios Web
Servicios Web Restful
La World Wide Web
¿Qué es la Web?
“The World Wide Web (WWW, or simply Web) is an
information space in which the items of interest, referred to as
resources, are identified by global identifiers called Uniform
Resource Identifiers (URI).” (W3C)
Fue creada en 1989 por Tim Berners-Lee y Robert Cailliau
El 30 Abril de 1993, el CERN abre la red
Sergio Saugar
Arquitectura del Software
La World Wide Web
Representational State Transfer
El Protocolo HTTP
Aplicando REST a la Web
Diseño de Aplicaciones RESTful
Ejemplo: Correo Interno de Facebook
Resumen
Lecturas recomendadas
Enlaces Recomendados
Preguntas
Bibliografía
Definición
Vista actual
Despliegue de la Web
Servicios Web
Servicios Web Restful
La World Wide Web
Tecnologías que la conforman
¿Cuáles son las principales tecnologías que conforman la Web?
URI, HTTP, HTML (MIME types)
Sergio Saugar
Arquitectura del Software
La World Wide Web
Representational State Transfer
El Protocolo HTTP
Aplicando REST a la Web
Diseño de Aplicaciones RESTful
Ejemplo: Correo Interno de Facebook
Resumen
Lecturas recomendadas
Enlaces Recomendados
Preguntas
Bibliografía
Definición
Vista actual
Despliegue de la Web
Servicios Web
Servicios Web Restful
La World Wide Web
Punto de vista actual
Tim Berners Lee (“Luminaries look to the future web”, BBC
News, 30 April 2008):
“15 years will seem to be just the infancy of the web”
“To look back on the web after 15 years is in fact wrong. We
have to get a foothold on this 15 years and look forward”
Sergio Saugar
Arquitectura del Software
La World Wide Web
Representational State Transfer
El Protocolo HTTP
Aplicando REST a la Web
Diseño de Aplicaciones RESTful
Ejemplo: Correo Interno de Facebook
Resumen
Lecturas recomendadas
Enlaces Recomendados
Preguntas
Bibliografía
Definición
Vista actual
Despliegue de la Web
Servicios Web
Servicios Web Restful
La World Wide Web
Punto de vista actual
Tim Berners Lee (“Luminaries look to the future web”, BBC
News, 30 April 2008):
“What’s exciting is that people are building new social systems,
new systems of review, new systems of governance. My hope is
that those will produce... new ways of working together
effectively and fairly which we can use globally to manage
ourselves as a planet”
Sergio Saugar
Arquitectura del Software
La World Wide Web
Representational State Transfer
El Protocolo HTTP
Aplicando REST a la Web
Diseño de Aplicaciones RESTful
Ejemplo: Correo Interno de Facebook
Resumen
Lecturas recomendadas
Enlaces Recomendados
Preguntas
Bibliografía
Definición
Vista actual
Despliegue de la Web
Servicios Web
Servicios Web Restful
La World Wide Web
Punto de vista actual (cont.)
Leonard Richardson (Canonical Ltd.) y Sam Ruby (IBM Emerging Technologies) [Richardson and Ruby(2007)]:
“An amazing new technology, it promises to radically change
the way we write distributed systems”
Sin embargo:
No es una nueva tecnología
Desde un punto de vista técnico es más bien simple (HTTP,
URI, HTML)
Sergio Saugar
Arquitectura del Software
La World Wide Web
Representational State Transfer
El Protocolo HTTP
Aplicando REST a la Web
Diseño de Aplicaciones RESTful
Ejemplo: Correo Interno de Facebook
Resumen
Lecturas recomendadas
Enlaces Recomendados
Preguntas
Bibliografía
Definición
Vista actual
Despliegue de la Web
Servicios Web
Servicios Web Restful
La World Wide Web
Punto de vista actual (cont.)
Pero:
Ha cambiado la forma en la que interaccionamos y hacemos
las cosas
Ofreciéndonos una plataforma simple, ubícua que puede ser
explotada para construir sistemas distribuidos
De hecho existen 285 millones de sitios web en todo el mundo
(Netcraft - Febrero 2011)
Sergio Saugar
Arquitectura del Software
La World Wide Web
Representational State Transfer
El Protocolo HTTP
Aplicando REST a la Web
Diseño de Aplicaciones RESTful
Ejemplo: Correo Interno de Facebook
Resumen
Lecturas recomendadas
Enlaces Recomendados
Preguntas
Bibliografía
Definición
Vista actual
Despliegue de la Web
Servicios Web
Servicios Web Restful
La World Wide Web
Declaraciones en WWW2009 (Abril 2009)
Tim Berners Lee (HTML, HTTP, URL):
“(...)lo que más le sorprendió de la criatura fue, sobre todo, la
capacidad de la gente para adoptar esta tecnología, cuando al
principio era algo muy ’geek’.”
Sergio Saugar
Arquitectura del Software
La World Wide Web
Representational State Transfer
El Protocolo HTTP
Aplicando REST a la Web
Diseño de Aplicaciones RESTful
Ejemplo: Correo Interno de Facebook
Resumen
Lecturas recomendadas
Enlaces Recomendados
Preguntas
Bibliografía
Definición
Vista actual
Despliegue de la Web
Servicios Web
Servicios Web Restful
La World Wide Web
Declaraciones en WWW2009 (Abril 2009)
Vinton Cerf (TCP/IP):
“La prominencia de los nombres de dominio, que convirtió a
Internet en una herramienta publicitaria de primer orden, una
gran e inesperada función de la Red”
“(...) la posibilidad de ordenar e ’indexar’ tanta información, tal
y como hace Google, que lo hizo bien”
“(...) la capacidad de dar a la gente la posibilidad de crear y
generar valor”
“(...) es necesario desarrollar una red más sencilla, con más
información y aplicaciones y más accesible a toda la población”
Sergio Saugar
Arquitectura del Software
La World Wide Web
Representational State Transfer
El Protocolo HTTP
Aplicando REST a la Web
Diseño de Aplicaciones RESTful
Ejemplo: Correo Interno de Facebook
Resumen
Lecturas recomendadas
Enlaces Recomendados
Preguntas
Bibliografía
Definición
Vista actual
Despliegue de la Web
Servicios Web
Servicios Web Restful
La World Wide Web
Declaraciones en WWW2009 (Abril 2009)
Robert Cailliau (HTML):
“(...) lo que más me sorprende es que Google pueda seguir
creciendo aún, su escalabilidad.”
Sergio Saugar
Arquitectura del Software
La World Wide Web
Representational State Transfer
El Protocolo HTTP
Aplicando REST a la Web
Diseño de Aplicaciones RESTful
Ejemplo: Correo Interno de Facebook
Resumen
Lecturas recomendadas
Enlaces Recomendados
Preguntas
Bibliografía
Definición
Vista actual
Despliegue de la Web
Servicios Web
Servicios Web Restful
La World Wide Web
Sergio Saugar
Arquitectura del Software
La World Wide Web
Representational State Transfer
El Protocolo HTTP
Aplicando REST a la Web
Diseño de Aplicaciones RESTful
Ejemplo: Correo Interno de Facebook
Resumen
Lecturas recomendadas
Enlaces Recomendados
Preguntas
Bibliografía
Definición
Vista actual
Despliegue de la Web
Servicios Web
Servicios Web Restful
La World Wide Web
Servicios Web
¿Porqué aparecieron los servicios Web?
Sergio Saugar
Arquitectura del Software
La World Wide Web
Representational State Transfer
El Protocolo HTTP
Aplicando REST a la Web
Diseño de Aplicaciones RESTful
Ejemplo: Correo Interno de Facebook
Resumen
Lecturas recomendadas
Enlaces Recomendados
Preguntas
Bibliografía
Definición
Vista actual
Despliegue de la Web
Servicios Web
Servicios Web Restful
La World Wide Web
Servicios Web
¿Qué es un Servicio Web? – W3C –
“A Web service is a software system designed to support
interoperable machine-to-machine interaction over a network.
It has an interface described in a machine-processable format
(specifically WSDL). Other systems interact with the Web
service in a manner prescribed by its description using SOAP
messages, typically conveyed using HTTP with an XML
serialization in conjunction with other Web-related standards.”
Sergio Saugar
Arquitectura del Software
La World Wide Web
Representational State Transfer
El Protocolo HTTP
Aplicando REST a la Web
Diseño de Aplicaciones RESTful
Ejemplo: Correo Interno de Facebook
Resumen
Lecturas recomendadas
Enlaces Recomendados
Preguntas
Bibliografía
Definición
Vista actual
Despliegue de la Web
Servicios Web
Servicios Web Restful
La World Wide Web
Servicios Web
¿Qué es un Servicio Web? – Webopedia –
“The term Web services describes a standardized way of
integrating Web-based applications using the XML, SOAP,
WSDL and UDDI open standards over an Internet protocol
backbone. XML is used to tag the data, SOAP is used to
transfer the data, WSDL is used for describing the services
available and UDDI is used for listing what services are
available. Used primarily as a means for businesses to
communicate with each other and with clients, Web services
allow organizations to communicate data without intimate
knowledge of each other’s IT systems behind the firewall.”
Sergio Saugar
Arquitectura del Software
La World Wide Web
Representational State Transfer
El Protocolo HTTP
Aplicando REST a la Web
Diseño de Aplicaciones RESTful
Ejemplo: Correo Interno de Facebook
Resumen
Lecturas recomendadas
Enlaces Recomendados
Preguntas
Bibliografía
Definición
Vista actual
Despliegue de la Web
Servicios Web
Servicios Web Restful
La World Wide Web
Servicios Web
¿Qué es un Servicio Web? – Webopedia – (cont.)
“Unlike traditional client/server models, such as a Web
server/Web page system, Web services do not provide the user
with a GUI. Web services instead share business logic, data
and processes through a programmatic interface across a
network. The applications interface, not the users. Developers
can then add the Web service to a GUI (such as a Web page or
an executable program) to offer specific functionality to users.”
Sergio Saugar
Arquitectura del Software
La World Wide Web
Representational State Transfer
El Protocolo HTTP
Aplicando REST a la Web
Diseño de Aplicaciones RESTful
Ejemplo: Correo Interno de Facebook
Resumen
Lecturas recomendadas
Enlaces Recomendados
Preguntas
Bibliografía
Definición
Vista actual
Despliegue de la Web
Servicios Web
Servicios Web Restful
La World Wide Web
Servicios Web
¿Qué es un Servicio Web? – Webopedia – (cont.)
“Web services allow different applications from different sources
to communicate with each other without time-consuming
custom coding, and because all communication is in XML,
Web services are not tied to any one operating system or
programming language. For example, Java can talk with Perl,
Windows applications can talk with UNIX applications.
Web services do not require the use of browsers or HTML. ”
Sergio Saugar
Arquitectura del Software
La World Wide Web
Representational State Transfer
El Protocolo HTTP
Aplicando REST a la Web
Diseño de Aplicaciones RESTful
Ejemplo: Correo Interno de Facebook
Resumen
Lecturas recomendadas
Enlaces Recomendados
Preguntas
Bibliografía
Definición
Vista actual
Despliegue de la Web
Servicios Web
Servicios Web Restful
La World Wide Web
Servicios Web: Invocación de un servicio metereológico
POST / W e a t h e r F o r e c a s t . asmx HTTP/ 1 . 1
H o s t : www . w e b s e r v i c e x . n e t
C o n t e n t−T y p e : t e x t / xml ; c h a r s e t=u t f −8
SOAPAction: " h t t p : //www . w e b s e r v i c e x . n e t / GetWeatherByPlaceName "
<? x m l v e r s i o n=" 1 . 0 " e n c o d i n g=" u t f −8" ?>
<s o a p : E n v e l o p e x m l n s : x s i=" h t t p : //www . w3 . o r g /2 0 01 / XMLSchema−i n s t a n c e "
x m l n s : x s d=" h t t p : //www . w3 . o r g /2 0 01 / XMLSchema"
x m l n s : s o a p=" h t t p : // s c h e m a s . x m l s o a p . o r g / s o a p / e n v e l o p e / ">
<s o a p : H e a d>
<u s e r I D>0 10 2 4 3</ u s e r I D>
< t r a n s a c t i o n I D>0 2 3 9 4 8 0 0 2 3 1</ t r a n s a c t i o n I D>
</ s o a p : H e a d>
<s o a p : B o d y>
<GetWeatherByPlaceName x m l n s=" h t t p : //www . w e b s e r v i c e x . n e t ">
<PlaceName>L a s V e g a s</ PlaceName>
</ GetWeatherByPlaceName>
</ s o a p : B o d y>
</ s o a p : E n v e l o p e>
Sergio Saugar
Arquitectura del Software
La World Wide Web
Representational State Transfer
El Protocolo HTTP
Aplicando REST a la Web
Diseño de Aplicaciones RESTful
Ejemplo: Correo Interno de Facebook
Resumen
Lecturas recomendadas
Enlaces Recomendados
Preguntas
Bibliografía
Definición
Vista actual
Despliegue de la Web
Servicios Web
Servicios Web Restful
La World Wide Web
Integración de Servicios Web en la Web
El problema surge cuando intentamos ofrecer servicios
(aplicaciones) a través de la Web:
No utilizamos la web correctamente
La mayoría de los “servicios web” actuales no tienen nada que
ver con la web!
Mientras que la Web se caracteriza por su simplicidad, los
nuevos “servicios web” tienen una arquitectura (muy pesada)
para el acceso a objetos distribuidos remotos (similar a COM o
CORBA)
Sergio Saugar
Arquitectura del Software
La World Wide Web
Representational State Transfer
El Protocolo HTTP
Aplicando REST a la Web
Diseño de Aplicaciones RESTful
Ejemplo: Correo Interno de Facebook
Resumen
Lecturas recomendadas
Enlaces Recomendados
Preguntas
Bibliografía
Definición
Vista actual
Despliegue de la Web
Servicios Web
Servicios Web Restful
La World Wide Web
Integración de Servicios Web en la Web (cont.)
El problema surge cuando intentamos ofrecer servicios
(aplicaciones) a través de la Web:
Las arquitecturas de “servicios web” actuales, reinventan o
ignoran las características que, precisamente, han hecho que la
Web sea un éxito[Richardson and Ruby(2007)]
Sergio Saugar
Arquitectura del Software
La World Wide Web
Representational State Transfer
El Protocolo HTTP
Aplicando REST a la Web
Diseño de Aplicaciones RESTful
Ejemplo: Correo Interno de Facebook
Resumen
Lecturas recomendadas
Enlaces Recomendados
Preguntas
Bibliografía
Definición
Vista actual
Despliegue de la Web
Servicios Web
Servicios Web Restful
La World Wide Web
Integración de Servicios Web en la Web (cont.)
“Debilidades” de los Servicios Web actuales: [Pautasso(2007)]:
Complejidad elevada (SOAP, WSDL, UDDI, WS-*) o, por lo
menos, esa es la impresión
Proceso de estandarización problemático:
Luchas internas
Carencia de coherencia arquitectónica
Fragmentación
Sergio Saugar
Arquitectura del Software
La World Wide Web
Representational State Transfer
El Protocolo HTTP
Aplicando REST a la Web
Diseño de Aplicaciones RESTful
Ejemplo: Correo Interno de Facebook
Resumen
Lecturas recomendadas
Enlaces Recomendados
Preguntas
Bibliografía
Definición
Vista actual
Despliegue de la Web
Servicios Web
Servicios Web Restful
La World Wide Web
Integración de Servicios Web en la Web (cont.)
“Debilidades” de los Servicios Web actuales: [Pautasso(2007)]:
Proceso de estandarización problemático (cont.):
Estandarización de los estándares (WS-I, Web Services
Interoperability Organization). Encargado de desarrollar
diversos perfiles para definir de manera más exhaustiva estos
estándares.
Falta de implementaciones de referencia
¿Vuelta otra vez a los errores de CORBA?
Sergio Saugar
Arquitectura del Software
La World Wide Web
Representational State Transfer
El Protocolo HTTP
Aplicando REST a la Web
Diseño de Aplicaciones RESTful
Ejemplo: Correo Interno de Facebook
Resumen
Lecturas recomendadas
Enlaces Recomendados
Preguntas
Bibliografía
Definición
Vista actual
Despliegue de la Web
Servicios Web
Servicios Web Restful
La World Wide Web
Pila de protocolos WS
Fuente:The Web Services Protocol Stack (Lawrence Wilkes)
Sergio Saugar
Arquitectura del Software
La World Wide Web
Representational State Transfer
El Protocolo HTTP
Aplicando REST a la Web
Diseño de Aplicaciones RESTful
Ejemplo: Correo Interno de Facebook
Resumen
Lecturas recomendadas
Enlaces Recomendados
Preguntas
Bibliografía
Definición
Vista actual
Despliegue de la Web
Servicios Web
Servicios Web Restful
La World Wide Web
Nueva aproximación:
Porqué no utilizar la Web tal y como fue concebida. Esas
características han hecho que la Web sea lo que es
actualmente.
Sergio Saugar
Arquitectura del Software
La World Wide Web
Representational State Transfer
El Protocolo HTTP
Aplicando REST a la Web
Diseño de Aplicaciones RESTful
Ejemplo: Correo Interno de Facebook
Resumen
Lecturas recomendadas
Enlaces Recomendados
Preguntas
Bibliografía
Definición
Vista actual
Despliegue de la Web
Servicios Web
Servicios Web Restful
La World Wide Web
Nueva aproximación (cont.):
Es decir, las mismas características que hacen:
Que una web sea fácil de usar por un navegador también hacen
que la API de un servicio web sea fácil de usar por un
programador
Que un sitio web pueda escalar hasta límites increibles
(considerad el motor de búsquedas Google) también hacen que
los servicios web puedan ser escalables
Sergio Saugar
Arquitectura del Software
La World Wide Web
Representational State Transfer
El Protocolo HTTP
Aplicando REST a la Web
Diseño de Aplicaciones RESTful
Ejemplo: Correo Interno de Facebook
Resumen
Lecturas recomendadas
Enlaces Recomendados
Preguntas
Bibliografía
Definición
Vista actual
Despliegue de la Web
Servicios Web
Servicios Web Restful
La World Wide Web
Nueva aproximación (cont.):
Qué principios sustentan la Web?
Para guiar el diseño y desarrollo de la Web moderna, se utilizó
el estilo arquitectónico REST
REpresentational State Transfer (REST)
Un estilo arquitectónico que define recursos identificables, y
métodos para acceder y manipular el estado de dichos
recursos.
Sergio Saugar
Arquitectura del Software
La World Wide Web
Representational State Transfer
El Protocolo HTTP
Aplicando REST a la Web
Diseño de Aplicaciones RESTful
Ejemplo: Correo Interno de Facebook
Resumen
Lecturas recomendadas
Enlaces Recomendados
Preguntas
Bibliografía
Definición
Vista actual
Despliegue de la Web
Servicios Web
Servicios Web Restful
La World Wide Web
Nueva aproximación (cont.):
Entonces, ajustemos todos los servicios Web de forma que
respeten la arquitectura de la Web y se aprovechen de sus
ventajas
Sergio Saugar
Arquitectura del Software
La World Wide Web
Representational State Transfer
El Protocolo HTTP
Aplicando REST a la Web
Diseño de Aplicaciones RESTful
Ejemplo: Correo Interno de Facebook
Resumen
Lecturas recomendadas
Enlaces Recomendados
Preguntas
Bibliografía
Definición
Vista actual
Despliegue de la Web
Servicios Web
Servicios Web Restful
La World Wide Web
Conclusiones:
Las “debilidades” de los servicios Web actuales son relativas y
subjetivas
Por el momento no existe consenso, y por el contrario, hay
mucho debate
Aunque parece que hay movimientos (RESTful Services):
El 85 % de los clientes prefieren la API RESTful de Amazona
Google dejó de atender su API SOAP (03/2009) para centrarse
en su API REST (más fácil de usar)
Aunque no todo lo que se define como RESTful API lo es
(flickr, ...)
a
Sergio Saugar
Arquitectura del Software
La World Wide Web
Representational State Transfer
El Protocolo HTTP
Aplicando REST a la Web
Diseño de Aplicaciones RESTful
Ejemplo: Correo Interno de Facebook
Resumen
Lecturas recomendadas
Enlaces Recomendados
Preguntas
Bibliografía
Definición
Vista actual
Despliegue de la Web
Servicios Web
Servicios Web Restful
La World Wide Web
Algunas APIs de servicios:
http://code.google.com/intl/es/apis/gdata/docs/2.0/basics.html
http://www.opensocial.org/Technical-Resources/opensocial-spec-v09/REST-API.html
https://apiwiki.twitter.com/Twitter-API-Documentation
http://developers.facebook.com/docs/reference/rest/
http://delicious.com/help/api
http://developer.ebay.com/developercenter/rest
http://www.flickr.com/services/api/
Sergio Saugar
Arquitectura del Software
La World Wide Web
Representational State Transfer
El Protocolo HTTP
Aplicando REST a la Web
Diseño de Aplicaciones RESTful
Ejemplo: Correo Interno de Facebook
Resumen
Lecturas recomendadas
Enlaces Recomendados
Preguntas
Bibliografía
Introducción
Recursos
Principios Básicos y Características
Índice
1
La World Wide Web
2
Representational State Transfer
3
El Protocolo HTTP
4
Aplicando REST a la Web
5
Diseño de Aplicaciones RESTful
6
Ejemplo: Correo Interno de Facebook
7
Lecturas recomendadas
8
Enlaces Recomendados
Sergio Saugar
Arquitectura del Software
La World Wide Web
Representational State Transfer
El Protocolo HTTP
Aplicando REST a la Web
Diseño de Aplicaciones RESTful
Ejemplo: Correo Interno de Facebook
Resumen
Lecturas recomendadas
Enlaces Recomendados
Preguntas
Bibliografía
Introducción
Recursos
Principios Básicos y Características
Representational State Transfer
Definido por Roy Fielding en su tesis doctoral [Fielding(2000)]
REST es un estilo arquitectónico para sistemas hipermedia
distribuidos
Sergio Saugar
Arquitectura del Software
La World Wide Web
Representational State Transfer
El Protocolo HTTP
Aplicando REST a la Web
Diseño de Aplicaciones RESTful
Ejemplo: Correo Interno de Facebook
Resumen
Lecturas recomendadas
Enlaces Recomendados
Preguntas
Bibliografía
Introducción
Recursos
Principios Básicos y Características
Representational State Transfer
Se concebió como un modelo arquitectónico que explicaba
cómo debería funcionar la Web
Framework guía para el desarrollo de los protocolos estándar
de la Web
Identificar problemas existentes, comparar soluciones
alternativas, asegurar que las extensiones de los protocolos no
violan las restricciones que han hecho exitosa la Web.
Captura todos los aspectos que cubren los requisitos de
comportamiento y rendimiento de la Web
Sergio Saugar
Arquitectura del Software
La World Wide Web
Representational State Transfer
El Protocolo HTTP
Aplicando REST a la Web
Diseño de Aplicaciones RESTful
Ejemplo: Correo Interno de Facebook
Resumen
Lecturas recomendadas
Enlaces Recomendados
Preguntas
Bibliografía
Introducción
Recursos
Principios Básicos y Características
Representational State Transfer
Este estilo intenta evocar una imagen de cómo se comporta
una aplicación hipermedia distribuida bien diseñada:
Una red de recursos (estados de una máquina virtual)
El usuario va progresando a través de la aplicación
seleccionando enlaces (transiciones de estados)
El resultado de estas transiciones es otro recurso (el siguiente
estado de la aplicación)
Sergio Saugar
Arquitectura del Software
La World Wide Web
Representational State Transfer
El Protocolo HTTP
Aplicando REST a la Web
Diseño de Aplicaciones RESTful
Ejemplo: Correo Interno de Facebook
Resumen
Lecturas recomendadas
Enlaces Recomendados
Preguntas
Bibliografía
Introducción
Recursos
Principios Básicos y Características
Representational State Transfer
Entidades arquitectónicas
Elementos de datos:
Recurso, identificador de recurso, Representación
Todos los elementos de datos son accedidos a través de un
único interfaz estandarizado
Sergio Saugar
Arquitectura del Software
La World Wide Web
Representational State Transfer
El Protocolo HTTP
Aplicando REST a la Web
Diseño de Aplicaciones RESTful
Ejemplo: Correo Interno de Facebook
Resumen
Lecturas recomendadas
Enlaces Recomendados
Preguntas
Bibliografía
Introducción
Recursos
Principios Básicos y Características
Representational State Transfer
Entidades arquitectónicas
Conectores:
Client, Server, Cache, Resolver, Tunnel
Proveen interfaces genéricos para acceder y manipular el
conjunto de valores de un recurso
Todas las llamadas realizadas sobre los conectores deben ser
autocontenidas. Toda la información necesaria para entender la
solicitud se encuentra en la misma petición, no se depende de
peticiones pasadas (stateless).
Sergio Saugar
Arquitectura del Software
La World Wide Web
Representational State Transfer
El Protocolo HTTP
Aplicando REST a la Web
Diseño de Aplicaciones RESTful
Ejemplo: Correo Interno de Facebook
Resumen
Lecturas recomendadas
Enlaces Recomendados
Preguntas
Bibliografía
Introducción
Recursos
Principios Básicos y Características
Representational State Transfer
Entidades arquitectónicas
Componentes:
Origin server, Gateway, Proxy, user agent
Los componentes se comunican transfiriéndose
representaciones de recursos a través de su interfaz.
Sergio Saugar
Arquitectura del Software
La World Wide Web
Representational State Transfer
El Protocolo HTTP
Aplicando REST a la Web
Diseño de Aplicaciones RESTful
Ejemplo: Correo Interno de Facebook
Resumen
Lecturas recomendadas
Enlaces Recomendados
Preguntas
Bibliografía
Introducción
Recursos
Principios Básicos y Características
Representational State Transfer – Recursos
Recursos
Es la abstracción clave de ésta arquitectura
Se define como: “any information that can be named can be a
resource: a document, an image, a temporal service, a
collection of other resources...)”
Cada recurso tiene un identificador único
Todo los recursos comparten un interfaz homogéneo común
Sergio Saugar
Arquitectura del Software
La World Wide Web
Representational State Transfer
El Protocolo HTTP
Aplicando REST a la Web
Diseño de Aplicaciones RESTful
Ejemplo: Correo Interno de Facebook
Resumen
Lecturas recomendadas
Enlaces Recomendados
Preguntas
Bibliografía
Introducción
Recursos
Principios Básicos y Características
Representational State Transfer – Recursos
Recursos (cont.)
Un recurso puede tener distintas representaciones
(denominadas variantes)
Un recurso es un mapeado conceptual entre un identificador y
un conjunto de representaciones
Sergio Saugar
Arquitectura del Software
La World Wide Web
Representational State Transfer
El Protocolo HTTP
Aplicando REST a la Web
Diseño de Aplicaciones RESTful
Ejemplo: Correo Interno de Facebook
Resumen
Lecturas recomendadas
Enlaces Recomendados
Preguntas
Bibliografía
Introducción
Recursos
Principios Básicos y Características
Representational State Transfer – Recursos
Recursos (cont.)
Lo único que se requiere que sea estático en un recurso es la
semántica del mapeo, ya que ésta semántica es la que
distingue un recurso de otro
Por ejemplo: “la última versión” del software X es un mapeo
que puede ir variando con el tiempo, sin embargo, “la versión
1.5” de dicho software es un mapeo estático. Ambos son
recursos distintos aunque en un momento dado, pueden
apuntar al mismo sitio.
Sergio Saugar
Arquitectura del Software
La World Wide Web
Representational State Transfer
El Protocolo HTTP
Aplicando REST a la Web
Diseño de Aplicaciones RESTful
Ejemplo: Correo Interno de Facebook
Resumen
Lecturas recomendadas
Enlaces Recomendados
Preguntas
Bibliografía
Introducción
Recursos
Principios Básicos y Características
Representational State Transfer – Recursos
Recursos (cont.)
Los recursos están desvinculados de las implementaciones
concretas de los recursos:
Los clientes solo tratan con representaciones
Cambios en las implementaciones no afectan a los clientes
Las variantes de las representaciones de un recurso se negocian
en las peticiones sobre el mismo
Los clientes pueden elegir la representación más adecuada
Sergio Saugar
Arquitectura del Software
La World Wide Web
Representational State Transfer
El Protocolo HTTP
Aplicando REST a la Web
Diseño de Aplicaciones RESTful
Ejemplo: Correo Interno de Facebook
Resumen
Lecturas recomendadas
Enlaces Recomendados
Preguntas
Bibliografía
Introducción
Recursos
Principios Básicos y Características
Representational State Transfer – Representaciones
Manejando Representaciones
Una respuesta exitosa contiene la representación actual del
estado del recurso identificado
Algunas representaciones contienen enlaces a los siguientes
estados potenciales de la aplicación
HTML, XML, RDF, ...: Los formatos normalmente utilizados
para describir las representaciones son los descritos por MIME
Sergio Saugar
Arquitectura del Software
La World Wide Web
Representational State Transfer
El Protocolo HTTP
Aplicando REST a la Web
Diseño de Aplicaciones RESTful
Ejemplo: Correo Interno de Facebook
Resumen
Lecturas recomendadas
Enlaces Recomendados
Preguntas
Bibliografía
Introducción
Recursos
Principios Básicos y Características
Representational State Transfer – Principios Básicos
Principios Básicos
El estilo arquitectónico REST se rige por los siguientes
principios básicos:
Un recurso es cualquier cosa que tenga identidad y debe estar
identificado mediante algún mecanismo
El identificador de un recurso no expone detalles acerca de su
implementación
Sergio Saugar
Arquitectura del Software
La World Wide Web
Representational State Transfer
El Protocolo HTTP
Aplicando REST a la Web
Diseño de Aplicaciones RESTful
Ejemplo: Correo Interno de Facebook
Resumen
Lecturas recomendadas
Enlaces Recomendados
Preguntas
Bibliografía
Introducción
Recursos
Principios Básicos y Características
Representational State Transfer – Principios Básicos
Principios Básicos
Todos los recursos deben compartir la misma interfaz
uniforme. Los métodos definidos en esta interfaz debe ser
utilizados acorde a la semántica que se les impuso al crearlos.
Sergio Saugar
Arquitectura del Software
La World Wide Web
Representational State Transfer
El Protocolo HTTP
Aplicando REST a la Web
Diseño de Aplicaciones RESTful
Ejemplo: Correo Interno de Facebook
Resumen
Lecturas recomendadas
Enlaces Recomendados
Preguntas
Bibliografía
Introducción
Recursos
Principios Básicos y Características
Representational State Transfer – Principios Básicos
Principios Básicos
El formato de las representaciones debe estar documentado y
ser estándar.
Las representaciones deben incluir enlaces a otros recursos
relacionados (“hypermedia as the engine of application state”
¡¡HATEOAS!!)
La comunicación debe ser autocontenida (stateless)
Estos principios permiten, entre otras cosas, definir un sistema
por capas
Sergio Saugar
Arquitectura del Software
La World Wide Web
Representational State Transfer
El Protocolo HTTP
Aplicando REST a la Web
Diseño de Aplicaciones RESTful
Ejemplo: Correo Interno de Facebook
Resumen
Lecturas recomendadas
Enlaces Recomendados
Preguntas
Bibliografía
Introducción
Recursos
Principios Básicos y Características
Representational State Transfer – Características
Las características provistas por una arquitectura REST son:
Sencillez
Escalabilidad: estado en el cliente...
Rendimiento: sistema por capas...
Evolucionabilidad: interfaz inmutable, hateoas...
Visibilidad: URI
Bajo acoplamiento: entre cliente/servidor (interfaz)...
Características que por otra parte, también son deseables para
cualquier middleware distribuído
Sergio Saugar
Arquitectura del Software
La World Wide Web
Representational State Transfer
El Protocolo HTTP
Aplicando REST a la Web
Diseño de Aplicaciones RESTful
Ejemplo: Correo Interno de Facebook
Resumen
Lecturas recomendadas
Enlaces Recomendados
Preguntas
Bibliografía
Introducción
Recursos
Principios Básicos y Características
Representational State Transfer – Características
Rest hace énfasis en:
Escalabilidad en las interacciones entre componentes (cantidad
de clientes y servidores)
Generalidad en las interfaces (cualquier cliente HTTP puede
hablar con cualquier servidor sin configuración previa)
Despliegue independiente de componentes (clientes y
servidores de cualquier tiempo interactúan)
Componentes intermedios para: reducir la latencia de la
interacción (caché), reforzar la seguridad (firewalls), permitir la
adaptación entre diferentes tecnologías (gateways)...
Sergio Saugar
Arquitectura del Software
La World Wide Web
Representational State Transfer
El Protocolo HTTP
Aplicando REST a la Web
Diseño de Aplicaciones RESTful
Ejemplo: Correo Interno de Facebook
Resumen
Lecturas recomendadas
Enlaces Recomendados
Preguntas
Bibliografía
Introducción
Recursos
Principios Básicos y Características
Estilo Arquitectónico REST
Sergio Saugar
Arquitectura del Software
La World Wide Web
Representational State Transfer
El Protocolo HTTP
Aplicando REST a la Web
Diseño de Aplicaciones RESTful
Ejemplo: Correo Interno de Facebook
Resumen
Lecturas recomendadas
Enlaces Recomendados
Preguntas
Bibliografía
Breve Repaso
Índice
1
La World Wide Web
2
Representational State Transfer
3
El Protocolo HTTP
4
Aplicando REST a la Web
5
Diseño de Aplicaciones RESTful
6
Ejemplo: Correo Interno de Facebook
7
Lecturas recomendadas
8
Enlaces Recomendados
Sergio Saugar
Arquitectura del Software
La World Wide Web
Representational State Transfer
El Protocolo HTTP
Aplicando REST a la Web
Diseño de Aplicaciones RESTful
Ejemplo: Correo Interno de Facebook
Resumen
Lecturas recomendadas
Enlaces Recomendados
Preguntas
Bibliografía
Breve Repaso
El Protocolo HTTP
Breve Repaso
HTTP es un protocolo cliente-servidor
Un cliente envía un mensaje de petición a un servidor, el cuál,
después de realizar algún tipo de procesamiento, devuelve un
mensaje de respuesta que contiene un codigo de estado y el
resultado de la petición (o información acerca del código de
estado)
Sergio Saugar
Arquitectura del Software
La World Wide Web
Representational State Transfer
El Protocolo HTTP
Aplicando REST a la Web
Diseño de Aplicaciones RESTful
Ejemplo: Correo Interno de Facebook
Resumen
Lecturas recomendadas
Enlaces Recomendados
Preguntas
Bibliografía
Breve Repaso
El Protocolo HTTP
Breve Repaso
El mensaje de petición contiene:
una línea de petición,
cero o más líneas con cabeceras,
y, opcionalmente, el cuerpo del mensaje
Sergio Saugar
Arquitectura del Software
La World Wide Web
Representational State Transfer
El Protocolo HTTP
Aplicando REST a la Web
Diseño de Aplicaciones RESTful
Ejemplo: Correo Interno de Facebook
Resumen
Lecturas recomendadas
Enlaces Recomendados
Preguntas
Bibliografía
Breve Repaso
El Protocolo HTTP
Línea de Petición
Consta de tres partes separadas por espacios:
el nombre del método,
la ruta local del recurso solicitado (Request-URI),
y la versión de HTTP utilizada.
METHOD /path/to/resource HTTP/1.1
Header: value ...
Message-Body
Sergio Saugar
Arquitectura del Software
La World Wide Web
Representational State Transfer
El Protocolo HTTP
Aplicando REST a la Web
Diseño de Aplicaciones RESTful
Ejemplo: Correo Interno de Facebook
Resumen
Lecturas recomendadas
Enlaces Recomendados
Preguntas
Bibliografía
Breve Repaso
El Protocolo HTTP
Métodos HTTP
La semántica de la petición recae en el método HTTP elegido:
GET: Obtiene la representación de un recurso identificado en
la Request-URI. Puede ser parametrizado para restringir la
representación solicitada
Sergio Saugar
Arquitectura del Software
La World Wide Web
Representational State Transfer
El Protocolo HTTP
Aplicando REST a la Web
Diseño de Aplicaciones RESTful
Ejemplo: Correo Interno de Facebook
Resumen
Lecturas recomendadas
Enlaces Recomendados
Preguntas
Bibliografía
Breve Repaso
El Protocolo HTTP
Métodos HTTP (cont.)
POST: Este método es utilizado para crear nuevos recursos y
para añadir datos a un recurso ya creado.
Cuando el método es utilizado para crear recursos, el cuerpo
del mensaje de petición contiene la entidad a crear. Ésta
entidad será creada por el recurso identificado en la
Request-URI y la decisión acerca de la nueva URL del nuevo
recurso se deja al servidor
Si el método es utilizado para añadir nueva información, el
cuerpo de la petición contiene los datos que deben ser añadidos
o procesados por el recurso identificado por la Request-URI
Sergio Saugar
Arquitectura del Software
La World Wide Web
Representational State Transfer
El Protocolo HTTP
Aplicando REST a la Web
Diseño de Aplicaciones RESTful
Ejemplo: Correo Interno de Facebook
Resumen
Lecturas recomendadas
Enlaces Recomendados
Preguntas
Bibliografía
Breve Repaso
El Protocolo HTTP
Métodos HTTP (cont.)
PUT: Éste método es utilizado para crear un nuevo recurso o
para actualizar un recurso existente. El cuerpo del mensaje
codifica la entidad que va a ser publicada. Si la Request-URI
apunta a una entidad existente, entonces el cuerpo del
mensaje encapsula una actualización del mismo (completa o
parcial). En caso contrario, se crea un recurso cuya URL será
la Request-URI.
Sergio Saugar
Arquitectura del Software
La World Wide Web
Representational State Transfer
El Protocolo HTTP
Aplicando REST a la Web
Diseño de Aplicaciones RESTful
Ejemplo: Correo Interno de Facebook
Resumen
Lecturas recomendadas
Enlaces Recomendados
Preguntas
Bibliografía
Breve Repaso
El Protocolo HTTP
Métodos HTTP (cont.)
DELETE: Éste método desvincula un recurso de la
Request-URI especificada. Notad que éste método no implica
el borrado de los datos actuales mantenidos por el recurso o el
componente software que lo represente.
Sergio Saugar
Arquitectura del Software
La World Wide Web
Representational State Transfer
El Protocolo HTTP
Aplicando REST a la Web
Diseño de Aplicaciones RESTful
Ejemplo: Correo Interno de Facebook
Resumen
Lecturas recomendadas
Enlaces Recomendados
Preguntas
Bibliografía
Breve Repaso
El Protocolo HTTP
Cabeceras
HTTP define 47 cabeceras
Éstas cabeceras añaden meta-información adicional acerca del
cuerpo del mensaje o, si éste no está presente, acerca del
recurso identificado en la petición.
Sergio Saugar
Arquitectura del Software
La World Wide Web
Representational State Transfer
El Protocolo HTTP
Aplicando REST a la Web
Diseño de Aplicaciones RESTful
Ejemplo: Correo Interno de Facebook
Resumen
Lecturas recomendadas
Enlaces Recomendados
Preguntas
Bibliografía
Breve Repaso
El Protocolo HTTP
Cabeceras (cont.)
Algunas cabeceras relevantes:
Authorization: contiene credenciales de autorización que el
cliente ha codificado mediante algún esquema acordado. El
servidor decodifica las credenciales y decide si debe llevar a
cabo la petición (o no)
Host: El host objetivo de la petición
Location: Define la localización de un recurso creado
recientemente
Sergio Saugar
Arquitectura del Software
La World Wide Web
Representational State Transfer
El Protocolo HTTP
Aplicando REST a la Web
Diseño de Aplicaciones RESTful
Ejemplo: Correo Interno de Facebook
Resumen
Lecturas recomendadas
Enlaces Recomendados
Preguntas
Bibliografía
Breve Repaso
El Protocolo HTTP
Cabeceras (cont.)
Referer: Cuando se solicita una URI, esta cabecera identifica la
URL del recurso que ha “referenciado” esta petición a esta URI.
WWW-Authenticate: Esta cabecera se utiliza cuando el
servidor requiere del cliente algún tipo de autenticación. Esta
cabecera debe contener al menos un desafio de autenticación
que pueda ser aplicable a la solicitud realizada.
Sergio Saugar
Arquitectura del Software
La World Wide Web
Representational State Transfer
El Protocolo HTTP
Aplicando REST a la Web
Diseño de Aplicaciones RESTful
Ejemplo: Correo Interno de Facebook
Resumen
Lecturas recomendadas
Enlaces Recomendados
Preguntas
Bibliografía
Breve Repaso
El Protocolo HTTP
GET /private/resource HTTP/1.0
Host: localhost
Sergio Saugar
Arquitectura del Software
La World Wide Web
Representational State Transfer
El Protocolo HTTP
Aplicando REST a la Web
Diseño de Aplicaciones RESTful
Ejemplo: Correo Interno de Facebook
Resumen
Lecturas recomendadas
Enlaces Recomendados
Preguntas
Bibliografía
Breve Repaso
HTTP/1.0 401 Authorization Required
Server: Apache...
Date: Sat, 27 Nov 2004 10:18:15 GMT
WWW-Authenticate: Basic realm="Secure Area"
Content-Type: text/html
Content-Length: ...
Message Body
Sergio Saugar
Arquitectura del Software
La World Wide Web
Representational State Transfer
El Protocolo HTTP
Aplicando REST a la Web
Diseño de Aplicaciones RESTful
Ejemplo: Correo Interno de Facebook
Resumen
Lecturas recomendadas
Enlaces Recomendados
Preguntas
Bibliografía
Breve Repaso
GET /private/resource HTTP/1.0
Host: localhost
Authorization: Basic QWxhZGRpbjpvcGVuIHNlc2FtZQ==
Sergio Saugar
Arquitectura del Software
La World Wide Web
Representational State Transfer
El Protocolo HTTP
Aplicando REST a la Web
Diseño de Aplicaciones RESTful
Ejemplo: Correo Interno de Facebook
Resumen
Lecturas recomendadas
Enlaces Recomendados
Preguntas
Bibliografía
Breve Repaso
El Protocolo HTTP
Mensaje de Respuesta
Los mensajes de respuesta a peticiones HTTP se componen un
código de estado (Status-Code), algunas cabeceras y un
cuerpo del mensaje.
Sergio Saugar
Arquitectura del Software
La World Wide Web
Representational State Transfer
El Protocolo HTTP
Aplicando REST a la Web
Diseño de Aplicaciones RESTful
Ejemplo: Correo Interno de Facebook
Resumen
Lecturas recomendadas
Enlaces Recomendados
Preguntas
Bibliografía
Breve Repaso
El Protocolo HTTP
Códigos de Estado
El código de estado está compuesto por 3 dígitos
Representa el resultado del intento realizado por el servidor
para entender y satisfacer la petición del cliente.
El primer dígito del código de estado define el tipo de
respuesta
1xx
2xx
3xx
4xx
5xx
informational,
success,
redirection,
client error,
server error
Sergio Saugar
Arquitectura del Software
La World Wide Web
Representational State Transfer
El Protocolo HTTP
Aplicando REST a la Web
Diseño de Aplicaciones RESTful
Ejemplo: Correo Interno de Facebook
Resumen
Lecturas recomendadas
Enlaces Recomendados
Preguntas
Bibliografía
Breve Repaso
El Protocolo HTTP
Códigos de Estado
Algunos Códigos de Estado:
200 (“OK”): Todo ha ido bien.
201 (“Created”): El servidor envia este código cuando creó un
nuevo recurso como consecuencia de una petición del cliente.
La cabecera Location se suele utilizar junto con este código de
estado para identificar la URI del nuevo recurso.
Sergio Saugar
Arquitectura del Software
La World Wide Web
Representational State Transfer
El Protocolo HTTP
Aplicando REST a la Web
Diseño de Aplicaciones RESTful
Ejemplo: Correo Interno de Facebook
Resumen
Lecturas recomendadas
Enlaces Recomendados
Preguntas
Bibliografía
Breve Repaso
El Protocolo HTTP
Códigos de Estado (cont.)
202 (“Accepted”): La solicitud es aceptada pero no puede ser
atendida en tiempo real. Será procesada más tarde. La
cabecera Location se utiliza junto con éste código de error
para proveer la URI de un recurso “monitor”.
204 (“No Content”): La solicitud fue procesada correctamente
pero el servidor declina enviar cualquier mensaje acerca del
estado o cualquier representación.
Sergio Saugar
Arquitectura del Software
La World Wide Web
Representational State Transfer
El Protocolo HTTP
Aplicando REST a la Web
Diseño de Aplicaciones RESTful
Ejemplo: Correo Interno de Facebook
Resumen
Lecturas recomendadas
Enlaces Recomendados
Preguntas
Bibliografía
Breve Repaso
El Protocolo HTTP
Códigos de Estado (cont.)
400 (“Bad Request”): Este es el código genérico de error en el
cliente. Normalmente, se utiliza cuando la petición no ha
podido ser procesada incluso estando bien formada.
401 (“Unauthorized”): El cliente no tiene las credenciales de
autenticación adecuadas para utilizar el recurso. La cabecera
WWW-Authenticate utilizada junto con esta respuesta,
contiene al menos un desafío de autenticación que se aplica al
recurso solicitado.
Sergio Saugar
Arquitectura del Software
La World Wide Web
Representational State Transfer
El Protocolo HTTP
Aplicando REST a la Web
Diseño de Aplicaciones RESTful
Ejemplo: Correo Interno de Facebook
Resumen
Lecturas recomendadas
Enlaces Recomendados
Preguntas
Bibliografía
Breve Repaso
El Protocolo HTTP
Códigos de Estado (cont.)
403 (“Forbidden”): La solicitud del cliente está bien formada
pero el servidor rechaza procesarla. La razón está relacionada
no con credenciales de autenticación sino con la lógica de la
aplicación. Debería incluir una explicación de la razón del
rechazo.
405 (“Method Not Allowed”): El método no es soportado por
el recurso. La respuesta debe incluir una cabecera Allow que
contenga los métodos válidos para el recurso solicitado.
Sergio Saugar
Arquitectura del Software
La World Wide Web
Representational State Transfer
El Protocolo HTTP
Aplicando REST a la Web
Diseño de Aplicaciones RESTful
Ejemplo: Correo Interno de Facebook
Resumen
Lecturas recomendadas
Enlaces Recomendados
Preguntas
Bibliografía
Breve Repaso
El Protocolo HTTP
Códigos de Estado (cont.)
406 (“Not Acceptable”): El cliente ha solicitado solicitado una
representación no disponible.
Sergio Saugar
Arquitectura del Software
La World Wide Web
Representational State Transfer
El Protocolo HTTP
Aplicando REST a la Web
Diseño de Aplicaciones RESTful
Ejemplo: Correo Interno de Facebook
Resumen
Lecturas recomendadas
Enlaces Recomendados
Preguntas
Bibliografía
Breve Repaso
Cuerpo del mensaje
El cuerpo de los mensajes de respuesta puede contener una
pequeña descripción textual del código de estado devuelto.
Sergio Saugar
Arquitectura del Software
La World Wide Web
Representational State Transfer
El Protocolo HTTP
Aplicando REST a la Web
Diseño de Aplicaciones RESTful
Ejemplo: Correo Interno de Facebook
Resumen
Lecturas recomendadas
Enlaces Recomendados
Preguntas
Bibliografía
Ventajas
Fallos Comunes al Definir Sistemas RESTful
Índice
1
La World Wide Web
2
Representational State Transfer
3
El Protocolo HTTP
4
Aplicando REST a la Web
5
Diseño de Aplicaciones RESTful
6
Ejemplo: Correo Interno de Facebook
7
Lecturas recomendadas
8
Enlaces Recomendados
Sergio Saugar
Arquitectura del Software
La World Wide Web
Representational State Transfer
El Protocolo HTTP
Aplicando REST a la Web
Diseño de Aplicaciones RESTful
Ejemplo: Correo Interno de Facebook
Resumen
Lecturas recomendadas
Enlaces Recomendados
Preguntas
Bibliografía
Ventajas
Fallos Comunes al Definir Sistemas RESTful
Aplicando REST a la Web
Identificadores de Recursos
URI: identificadores para todos los recursos
Direccionamiento universal
Fácil enlazado entre recursos
La semántica del mapeo URI-Recurso no debería cambiar,
aunque la representación del recurso pueda hacerlo:
Se suele dar importancia al uso de URIs “útiles”:
http://maps.google.com/maps?f=q&hl=es
&geocode=&q=madrid&ie=UTF8&ll=40.453217,-3.703766
&spn=0.462925,1.2854&z=10&iwloc=addr
http://maps.google.com/europe/spain/madrid
Sergio Saugar
Arquitectura del Software
La World Wide Web
Representational State Transfer
El Protocolo HTTP
Aplicando REST a la Web
Diseño de Aplicaciones RESTful
Ejemplo: Correo Interno de Facebook
Resumen
Lecturas recomendadas
Enlaces Recomendados
Preguntas
Bibliografía
Ventajas
Fallos Comunes al Definir Sistemas RESTful
Aplicando REST a la Web
HTTP como interfaz homogéneo
Utilización de los métodos HTTP para definir operaciones
sobre recursos:
Interfaz simple y homogéneo para todos los recursos:
POST: Crea un nuevo recurso
GET: Recupera la representación de un recurso (idempotente)
PUT: Actualiza un recurso (o crea uno nuevo en la URI
indicada)
DELETE: Elimina un recurso
Se asocian con CRUD (Create, Retrieve, Update and Delete)
Recordad, todas las interacciones debe ser stateless
Sergio Saugar
Arquitectura del Software
La World Wide Web
Representational State Transfer
El Protocolo HTTP
Aplicando REST a la Web
Diseño de Aplicaciones RESTful
Ejemplo: Correo Interno de Facebook
Resumen
Lecturas recomendadas
Enlaces Recomendados
Preguntas
Bibliografía
Ventajas
Fallos Comunes al Definir Sistemas RESTful
Aplicando REST a la Web
Ventajas:
[Pautasso(2007)]
Sencillez
El interfaz uniforme es inmutable (evitando que los clientes
fallen)
HTTP/POX es ubícuo
Interacciones stateless/sincronas
Escalabilidad Demostrada
caching, estructura por capas (redirecciones, filtering...),
granjas de servidores (clusters)...
Sergio Saugar
Arquitectura del Software
La World Wide Web
Representational State Transfer
El Protocolo HTTP
Aplicando REST a la Web
Diseño de Aplicaciones RESTful
Ejemplo: Correo Interno de Facebook
Resumen
Lecturas recomendadas
Enlaces Recomendados
Preguntas
Bibliografía
Ventajas
Fallos Comunes al Definir Sistemas RESTful
Aplicando REST a la Web
Ventajas (cont.)
Se percibe como fácil de adoptar (dada su ligera
infraestructura)
Unifica los sitios Web y los servicios Web en aplicaciones Web
consistentes
Mejora el rendimiento de casi todas las aplicaciones Web 2.0
Sergio Saugar
Arquitectura del Software
La World Wide Web
Representational State Transfer
El Protocolo HTTP
Aplicando REST a la Web
Diseño de Aplicaciones RESTful
Ejemplo: Correo Interno de Facebook
Resumen
Lecturas recomendadas
Enlaces Recomendados
Preguntas
Bibliografía
Ventajas
Fallos Comunes al Definir Sistemas RESTful
Aplicando REST a la Web
Fallos comunes:
[Prescod(2002)]
Pensar que HTTP no es suficiente
Sobrecargar POST (en vez de utilizar DELETE, GET o PUT)
Hacer que las URIs reflejen la estructura interna de la
aplicación (en vez de vínculos semánticos)
Colocar acciones en las URIs
Sergio Saugar
Arquitectura del Software
La World Wide Web
Representational State Transfer
El Protocolo HTTP
Aplicando REST a la Web
Diseño de Aplicaciones RESTful
Ejemplo: Correo Interno de Facebook
Resumen
Lecturas recomendadas
Enlaces Recomendados
Preguntas
Bibliografía
Ventajas
Fallos Comunes al Definir Sistemas RESTful
Aplicando REST a la Web
Fallos Comunes (cont.)
Uso de sesiones en el servidor
Inventarse identificadores propios para los recursos
Sergio Saugar
Arquitectura del Software
La World Wide Web
Representational State Transfer
El Protocolo HTTP
Aplicando REST a la Web
Diseño de Aplicaciones RESTful
Ejemplo: Correo Interno de Facebook
Resumen
Lecturas recomendadas
Enlaces Recomendados
Preguntas
Bibliografía
Índice
1
La World Wide Web
2
Representational State Transfer
3
El Protocolo HTTP
4
Aplicando REST a la Web
5
Diseño de Aplicaciones RESTful
6
Ejemplo: Correo Interno de Facebook
7
Lecturas recomendadas
8
Enlaces Recomendados
Sergio Saugar
Arquitectura del Software
La World Wide Web
Representational State Transfer
El Protocolo HTTP
Aplicando REST a la Web
Diseño de Aplicaciones RESTful
Ejemplo: Correo Interno de Facebook
Resumen
Lecturas recomendadas
Enlaces Recomendados
Preguntas
Bibliografía
Diseño de Aplicaciones RESTful
Identificar Recursos
¿Cuáles son las entidades de mi sistema?
¿Qué identificador (URI) van a tener?
Sergio Saugar
Arquitectura del Software
La World Wide Web
Representational State Transfer
El Protocolo HTTP
Aplicando REST a la Web
Diseño de Aplicaciones RESTful
Ejemplo: Correo Interno de Facebook
Resumen
Lecturas recomendadas
Enlaces Recomendados
Preguntas
Bibliografía
Diseño de Aplicaciones RESTful
Seleccionar Representaciones
¿Qué representaciones van a proveer mis recursos?
¿Cómo voy a ofrecer enlaces a otros recursos dentro de ellas?
Sergio Saugar
Arquitectura del Software
La World Wide Web
Representational State Transfer
El Protocolo HTTP
Aplicando REST a la Web
Diseño de Aplicaciones RESTful
Ejemplo: Correo Interno de Facebook
Resumen
Lecturas recomendadas
Enlaces Recomendados
Preguntas
Bibliografía
Diseño de Aplicaciones RESTful
Definir Interfaz: Métodos, Códigos de estado
¿Qué operaciones soportan mis recursos?
¿Qué códigos de estado devolverán dichas operaciones?
Sergio Saugar
Arquitectura del Software
La World Wide Web
Representational State Transfer
El Protocolo HTTP
Aplicando REST a la Web
Diseño de Aplicaciones RESTful
Ejemplo: Correo Interno de Facebook
Resumen
Lecturas recomendadas
Enlaces Recomendados
Preguntas
Bibliografía
Identificando los recursos
Seleccionando la Representación
Definiendo la Interfaz
Índice
1
La World Wide Web
2
Representational State Transfer
3
El Protocolo HTTP
4
Aplicando REST a la Web
5
Diseño de Aplicaciones RESTful
6
Ejemplo: Correo Interno de Facebook
7
Lecturas recomendadas
8
Enlaces Recomendados
Sergio Saugar
Arquitectura del Software
La World Wide Web
Representational State Transfer
El Protocolo HTTP
Aplicando REST a la Web
Diseño de Aplicaciones RESTful
Ejemplo: Correo Interno de Facebook
Resumen
Lecturas recomendadas
Enlaces Recomendados
Preguntas
Bibliografía
Identificando los recursos
Seleccionando la Representación
Definiendo la Interfaz
Ejemplo: Correo Interno de Facebook
¿Cómo funciona?¿Cómo funciona algún webmail que
conozcáis?
Facebook afirma tener una API REST...
Sergio Saugar
Arquitectura del Software
La World Wide Web
Representational State Transfer
El Protocolo HTTP
Aplicando REST a la Web
Diseño de Aplicaciones RESTful
Ejemplo: Correo Interno de Facebook
Resumen
Lecturas recomendadas
Enlaces Recomendados
Preguntas
Bibliografía
Identificando los recursos
Seleccionando la Representación
Definiendo la Interfaz
Ejemplo: Correo Interno de Facebook
Algunas URIs reales de Facebook
Usuario: http://www.facebook.com/home.php?
Amigos:
http://www.facebook.com/home.php?#/friends/?ref=tn
URIs amigos:
http://www.facebook.com/profile.php?id=15611341243
Sergio Saugar
Arquitectura del Software
La World Wide Web
Representational State Transfer
El Protocolo HTTP
Aplicando REST a la Web
Diseño de Aplicaciones RESTful
Ejemplo: Correo Interno de Facebook
Resumen
Lecturas recomendadas
Enlaces Recomendados
Preguntas
Bibliografía
Identificando los recursos
Seleccionando la Representación
Definiendo la Interfaz
Ejemplo: Correo Interno de Facebook
Algunas URIs reales
Mailbox:
http://www.facebook.com/home.php?#/inbox/?ref=mb
Email: http://www.facebook.com/inbox/readmessage.
php?t=11331121389745&mbox_pos=0
Marcar como no leído:
http://www.facebook.com/inbox/readmessage.php?t=
1133123424489745&f=0&mbox_pos=0&mu
Sergio Saugar
Arquitectura del Software
La World Wide Web
Representational State Transfer
El Protocolo HTTP
Aplicando REST a la Web
Diseño de Aplicaciones RESTful
Ejemplo: Correo Interno de Facebook
Resumen
Lecturas recomendadas
Enlaces Recomendados
Preguntas
Bibliografía
Identificando los recursos
Seleccionando la Representación
Definiendo la Interfaz
Ejemplo: Correo Interno de Facebook
¿Cómo creéis que debería funciona?
Sergio Saugar
Arquitectura del Software
La World Wide Web
Representational State Transfer
El Protocolo HTTP
Aplicando REST a la Web
Diseño de Aplicaciones RESTful
Ejemplo: Correo Interno de Facebook
Resumen
Lecturas recomendadas
Enlaces Recomendados
Preguntas
Bibliografía
Identificando los recursos
Seleccionando la Representación
Definiendo la Interfaz
Ejemplo: Correo Interno de Facebook
Identificando los recursos
Recordad: las aplicaciones deben dividirse en recurso
(nombres), no en servicios (verbos)
Como entidades podríamos tener: usuarios, mailbox de un
usuario, folders de correo y mensajes
Folders del sistema: recibidos, enviados, borrador
Sergio Saugar
Arquitectura del Software
La World Wide Web
Representational State Transfer
El Protocolo HTTP
Aplicando REST a la Web
Diseño de Aplicaciones RESTful
Ejemplo: Correo Interno de Facebook
Resumen
Lecturas recomendadas
Enlaces Recomendados
Preguntas
Bibliografía
Identificando los recursos
Seleccionando la Representación
Definiendo la Interfaz
Ejemplo: Correo Interno de Facebook
Asignando las URIs
Una posible alternativa:
http://www.facebook.com/users/{userId}/mail/{folderId}/{mailId}
Sergio Saugar
Arquitectura del Software
La World Wide Web
Representational State Transfer
El Protocolo HTTP
Aplicando REST a la Web
Diseño de Aplicaciones RESTful
Ejemplo: Correo Interno de Facebook
Resumen
Lecturas recomendadas
Enlaces Recomendados
Preguntas
Bibliografía
Identificando los recursos
Seleccionando la Representación
Definiendo la Interfaz
Ejemplo: Correo Interno de Facebook
Seleccionando la Representación
Por ejemplo: XHTML y XML
XHTML para browsers (quizá junto con JSON...)
XML para otras aplicaciones
Sergio Saugar
Arquitectura del Software
La World Wide Web
Representational State Transfer
El Protocolo HTTP
Aplicando REST a la Web
Diseño de Aplicaciones RESTful
Ejemplo: Correo Interno de Facebook
Resumen
Lecturas recomendadas
Enlaces Recomendados
Preguntas
Bibliografía
Identificando los recursos
Seleccionando la Representación
Definiendo la Interfaz
Ejemplo: Correo Interno de Facebook
Definiendo la Interfaz
Pensad cómo:
Crear un mensaje en un folder del usuario?
Borrar un mensaje de cualquier folder?
Enviar un nuevo mail a otro usuario?
Modificar un mensaje como “borrador”?
Sergio Saugar
Arquitectura del Software
La World Wide Web
Representational State Transfer
El Protocolo HTTP
Aplicando REST a la Web
Diseño de Aplicaciones RESTful
Ejemplo: Correo Interno de Facebook
Resumen
Lecturas recomendadas
Enlaces Recomendados
Preguntas
Bibliografía
Identificando los recursos
Seleccionando la Representación
Definiendo la Interfaz
Ejemplo: Correo Interno de Facebook
Diagrama de estados de la aplicación (incompleto)
Sergio Saugar
Arquitectura del Software
La World Wide Web
Representational State Transfer
El Protocolo HTTP
Aplicando REST a la Web
Diseño de Aplicaciones RESTful
Ejemplo: Correo Interno de Facebook
Resumen
Lecturas recomendadas
Enlaces Recomendados
Preguntas
Bibliografía
Identificando los recursos
Seleccionando la Representación
Definiendo la Interfaz
Ejemplo: Correo Interno de Facebook
Sergio Saugar
Arquitectura del Software
La World Wide Web
Representational State Transfer
El Protocolo HTTP
Aplicando REST a la Web
Diseño de Aplicaciones RESTful
Ejemplo: Correo Interno de Facebook
Resumen
Lecturas recomendadas
Enlaces Recomendados
Preguntas
Bibliografía
Identificando los recursos
Seleccionando la Representación
Definiendo la Interfaz
Ejemplo: Correo Interno de Facebook
Sergio Saugar
Arquitectura del Software
La World Wide Web
Representational State Transfer
El Protocolo HTTP
Aplicando REST a la Web
Diseño de Aplicaciones RESTful
Ejemplo: Correo Interno de Facebook
Resumen
Lecturas recomendadas
Enlaces Recomendados
Preguntas
Bibliografía
Identificando los recursos
Seleccionando la Representación
Definiendo la Interfaz
Ejemplo: Correo Interno de Facebook
También hay que pensar en las las respuestas los métodos:
Utilizando los códigos de estado y las cabeceras auxiliares
Sergio Saugar
Arquitectura del Software
La World Wide Web
Representational State Transfer
El Protocolo HTTP
Aplicando REST a la Web
Diseño de Aplicaciones RESTful
Ejemplo: Correo Interno de Facebook
Resumen
Lecturas recomendadas
Enlaces Recomendados
Preguntas
Bibliografía
Identificando los recursos
Seleccionando la Representación
Definiendo la Interfaz
Ejemplo: Correo Interno de Facebook
Mailbox
http://www.facebook.com/users/{userId}/mail/
Metodo
GET
Contenido
Lista de folders
Repres.
XML, HTML
POST
Representación del Folder
XML, HTML
PUT
n/a
DELETE
n/a
Sergio Saugar
Acción
Devuelve una lista de los folders
definidos por el
usuario {userId}
Crea un folder de
correo con nombre determinado
Arquitectura del Software
Codigo
200 - OK, 406 Not Acceptable
201 - Created +
Location, 403 Forbidden
405 - Method Not
Allowed
405 - Method Not
Allowed
La World Wide Web
Representational State Transfer
El Protocolo HTTP
Aplicando REST a la Web
Diseño de Aplicaciones RESTful
Ejemplo: Correo Interno de Facebook
Resumen
Lecturas recomendadas
Enlaces Recomendados
Preguntas
Bibliografía
Identificando los recursos
Seleccionando la Representación
Definiendo la Interfaz
Ejemplo: Correo Interno de Facebook
Folder
http://www.facebook.com/users/{userId}/mail/{folderId}/
Metodo
GET
Contenido
Lista mensajes
Repres.
XML, HTML
POST
Mensaje
XML, HTML
PUT
n/a
Acción
Devuelve una lista de
los mensajes contenidos en el folder {folderId}
Si {folderId} es “Enviados” se envía el mensaje
al usuario indicado en el
campo destinatario. Se
crea mensaje en enviados
Codigo
200 - OK, 406 - Not
Acceptable
201 - Created + Location, 403 - Forbidden
405 - Method Not Allowed
200 - OK, 403 - Forbidden
DELETE
Sergio Saugar
Elimina el folder {folderId} del usuario {userId} sólo si fue creado
por el usuario y no tiene mensajes.
Arquitectura del Software
La World Wide Web
Representational State Transfer
El Protocolo HTTP
Aplicando REST a la Web
Diseño de Aplicaciones RESTful
Ejemplo: Correo Interno de Facebook
Resumen
Lecturas recomendadas
Enlaces Recomendados
Preguntas
Bibliografía
Identificando los recursos
Seleccionando la Representación
Definiendo la Interfaz
Ejemplo: Correo Interno de Facebook
eMail
http://www.facebook.com/users/{userId}/mail/{folderId}/{mailId}
Metodo
GET
Contenido
Representacion del correo
POST
n/a
PUT
Representacion del correo
Repres.
XML, HTML
Acción
Devuelve una representación del
correo {mailId}
XML,HTML
Actualiza el correo, sólo si es borrador
Elimina el correo
{mailId} de la
carpeta
{folderId} del usuario
{userId}
DELETE
Sergio Saugar
Arquitectura del Software
Codigo
200 - OK, 406 Not Acceptable
405 - Method Not
Allowed
200 - OK, 400 Bad Request
200 - OK, 403 Forbidden
La World Wide Web
Representational State Transfer
El Protocolo HTTP
Aplicando REST a la Web
Diseño de Aplicaciones RESTful
Ejemplo: Correo Interno de Facebook
Resumen
Lecturas recomendadas
Enlaces Recomendados
Preguntas
Bibliografía
Resumen
El estado y la funcionalidad de la aplicación está dividida entre
los recursos
Cada recurso es identificado globalmente utilizando una
sintaxis universal para enlaces hipermedia
Todos los recursos comparten un interfaz común para la
transferencia de estado entre los clientes y los recursos. Esta
interfaz está formada por :
Un conjunto restringido de operaciones bien definidas (HTTP)
Un conjunto restringido de tipos de contenido (MIME)
Sergio Saugar
Arquitectura del Software
La World Wide Web
Representational State Transfer
El Protocolo HTTP
Aplicando REST a la Web
Diseño de Aplicaciones RESTful
Ejemplo: Correo Interno de Facebook
Resumen
Lecturas recomendadas
Enlaces Recomendados
Preguntas
Bibliografía
Resumen
En definitiva una arquitectura:
Basada en cliente/servidor
Stateless
Cacheable
Layered
Sergio Saugar
Arquitectura del Software
La World Wide Web
Representational State Transfer
El Protocolo HTTP
Aplicando REST a la Web
Diseño de Aplicaciones RESTful
Ejemplo: Correo Interno de Facebook
Resumen
Lecturas recomendadas
Enlaces Recomendados
Preguntas
Bibliografía
Índice
1
La World Wide Web
2
Representational State Transfer
3
El Protocolo HTTP
4
Aplicando REST a la Web
5
Diseño de Aplicaciones RESTful
6
Ejemplo: Correo Interno de Facebook
7
Lecturas recomendadas
8
Enlaces Recomendados
Sergio Saugar
Arquitectura del Software
La World Wide Web
Representational State Transfer
El Protocolo HTTP
Aplicando REST a la Web
Diseño de Aplicaciones RESTful
Ejemplo: Correo Interno de Facebook
Resumen
Lecturas recomendadas
Enlaces Recomendados
Preguntas
Bibliografía
Reinventing Email using REST
http://prescod.net/rest/restmail/
RESTify Day Trader
http://bitworking.org/news/201/RESTify-DayTrader
A RESTful Web Service, an example (Delicious API)
http:
//www.peej.co.uk/articles/restfully-delicious.html
How to GET a Cup of Coffe
http://www.infoq.com/articles/webber-rest-workflow
Sergio Saugar
Arquitectura del Software
La World Wide Web
Representational State Transfer
El Protocolo HTTP
Aplicando REST a la Web
Diseño de Aplicaciones RESTful
Ejemplo: Correo Interno de Facebook
Resumen
Lecturas recomendadas
Enlaces Recomendados
Preguntas
Bibliografía
Putting the Web into Web Services
http://steve.vinoski.net/pdf/IEEE-Web_Services_
Interaction_Models_Part_2.pdf
RESTful Web Services Development Checklist
http://steve.vinoski.net/pdf/IEEE-RESTful_Web_
Services_Development_Checklist.pdf
Roots of the REST/SOAP Debate
http://www.prescod.net/rest/rest_vs_soap_overview
Sergio Saugar
Arquitectura del Software
La World Wide Web
Representational State Transfer
El Protocolo HTTP
Aplicando REST a la Web
Diseño de Aplicaciones RESTful
Ejemplo: Correo Interno de Facebook
Resumen
Lecturas recomendadas
Enlaces Recomendados
Preguntas
Bibliografía
Índice
1
La World Wide Web
2
Representational State Transfer
3
El Protocolo HTTP
4
Aplicando REST a la Web
5
Diseño de Aplicaciones RESTful
6
Ejemplo: Correo Interno de Facebook
7
Lecturas recomendadas
8
Enlaces Recomendados
Sergio Saugar
Arquitectura del Software
La World Wide Web
Representational State Transfer
El Protocolo HTTP
Aplicando REST a la Web
Diseño de Aplicaciones RESTful
Ejemplo: Correo Interno de Facebook
Resumen
Lecturas recomendadas
Enlaces Recomendados
Preguntas
Bibliografía
Untangled, musings of Roy T. Fielding
http://roy.gbiv.com/untangled/
Steve Vinoski’s Blog – Internet Computing Columns
http://steve.vinoski.net/blog/
internet-computing-columns/
InfoQ: Tracking change and innovation in the enterprise
software development community
http://www.infoq.com/
Sergio Saugar
Arquitectura del Software
La World Wide Web
Representational State Transfer
El Protocolo HTTP
Aplicando REST a la Web
Diseño de Aplicaciones RESTful
Ejemplo: Correo Interno de Facebook
Resumen
Lecturas recomendadas
Enlaces Recomendados
Preguntas
Bibliografía
¿¿ PREGUNTAS ??
Sergio Saugar
Arquitectura del Software
La World Wide Web
Representational State Transfer
El Protocolo HTTP
Aplicando REST a la Web
Diseño de Aplicaciones RESTful
Ejemplo: Correo Interno de Facebook
Resumen
Lecturas recomendadas
Enlaces Recomendados
Preguntas
Bibliografía
R. T. Fielding.
Architectural styles and the design of network-based software
architectures.
PhD thesis, University of California, 2000.
C. Pautasso.
Soap vs. rest - bringing the web back into web services.
http://www.iks.inf.ethz.ch/education/ss07/ws_soa/
slides/SOAPvsREST_ETH.pdf, 2007.
(link revised on February 2011).
Sergio Saugar
Arquitectura del Software
La World Wide Web
Representational State Transfer
El Protocolo HTTP
Aplicando REST a la Web
Diseño de Aplicaciones RESTful
Ejemplo: Correo Interno de Facebook
Resumen
Lecturas recomendadas
Enlaces Recomendados
Preguntas
Bibliografía
P. Prescod.
Common rest mistakes.
http://www.prescod.net/rest/mistakes/, 2002.
(link revised on February 2011).
L. Richardson and S. Ruby.
RESTful Web Services.
O’Reilly, May 2007.
ISBN 0596529260.
Sergio Saugar
Arquitectura del Software
La World Wide Web
Representational State Transfer
El Protocolo HTTP
Aplicando REST a la Web
Diseño de Aplicaciones RESTful
Ejemplo: Correo Interno de Facebook
Resumen
Lecturas recomendadas
Enlaces Recomendados
Preguntas
Bibliografía
Arquitectura del Software
– Tema 6 –
REST: La Arquitectura de la World Wide Web
Sergio Saugar
[email protected]
5o Ingeniería Informática
Univ. Rey Juan Carlos
Curso 2010-2011
Sergio Saugar
Arquitectura del Software

Documentos relacionados