REST
REpresentational State
Transfer
PROGRAMA DE DOCTORADO:
Avances en Informática
(2006-2007)
Javier González Pisano
¿Qué es REST?
Origen: Fielding, Roy T. “Architectural Styles and
the Design of Network-based Software
Architectures.” Tesis Doctoral, Universidad de
California, 2000.
Describe un estilo de arquitectura que utilizar como
modelo en los servicios de computación Web.
Estilo de arquitectura: Conjunto coordinado de
restricciones que controlan el funcionamiento y
características de los elementos de la arquitectura y
permite las relaciones de unos con otros.
Describe cómo debería comportarse la Web
NO es un estándar
Javier González Pisano
¿Por qué ha triunfado la
Web?
Escalabilidad en interacciones entre
componentes
Generalidad en las interfaces
Desarrollo independiente de componentes
Existencia de componentes intermediarios
(proxys)
Javier González Pisano
Principios de REST
El estado y la funcionalidad de las aplicaciones se divide en
recursos
REST es orientado a recursos y no a métodos
No se accede directamente a los recursos, sino a representaciones de
los mismos
Sistema basado en Sistema basado en
SOAP REST
Servicio
Recurso
Acceso
CUENTA
USUARIO CUENTA USUARIO BANCARIA
BANCARIA
=123
=123
Javier González Pisano
Principios de REST II
Todo recurso es identificado de forma única global mediante
una sintaxis universal. Como en HTTP los recursos se identifican
mediante URIs (Uniform Resource Identifier).
Conjunto potencialmente infinito de recursos.
Todos los recursos comparten un interfaz uniforme formado por:
Conjunto de operaciones limitado para transferencia de estado
En HTTP GET, PUT, POST, DELETE
Conjunto limitado de tipos de contenidos
En HTTP se identifican mediante tipos MIME: XML , HTML...
Javier González Pisano
Principios de REST III
Un protocolo cliente/servidor, sin estado y basado en capas
Cada mensaje contiene la información necesaria para
comprender la petición (mensajes autocontenidos, como
HTTP)
ESTADO A
ESTADO A
ESTADO B
ESTADO B RED ESTADO C
ESTADO C
Javier González Pisano
Principios de REST IV
Uso de hipermedios, tanto para la información de la
aplicación como para las transiciones de estado de la
aplicación.
A través de sucesivas peticiones de recursos cambia el
estado de la aplicación.
Javier González Pisano
Principios de REST V
Promueve mecanismos caché y sistemas
intermedios
Javier González Pisano
Ventajas de REST
Mejora el tiempo de respuesta gracias al mecanismo
Caché y los mensajes auto-descriptivos.
Disminución de carga en servidor
Mayor escalabilidad al no requerir mantenimiento de
estado en el servidor
Facilita desarrollo de clientes (menor dependencia del
servidor).
Mayor estabilidad frente a futuros cambios
Permite evolución independiente de los tipos de
documentos al procesar éstos en el cliente.
Javier González Pisano
Diferencias entre REST y SOAP
SOAP REST
Orientado a RPC Orientado a recursos
Servidor almacena parte del estado El estado se mantiene sólo en el
cliente, y no se permiten las
sesiones
Usa HTTP como túnel para el paso Propone HTTP como nivel de
de mensajes aplicación
Javier González Pisano
Ejemplo
Sistema basado en SOAP Sistema REST
Énfasis en diversidad de Énfasis en diversidad de
operaciones (verbos) recursos (nombres)
User {} Location{}
getUser() Registro del recurso User
addUser() (accesible con HTTP
removeUser() GET):
updateUser() <usuario>
<nombre>Benito Pérez</nombre>
getLocation()
<genero>masculino</genero>
addLocation() <localizacion
removeLocation() href="http://www.example.org/locations/
spain/oviedo"> Oviedo, Spain
updateLocation()
</localizacion>
listUsers() </usuario>
Javier González Pisano
Soap vs REST: Críticas
SOAP no es transparente, REST es poco flexible
apuesta por el REST no está preparado
encapsulamiento para albergar Servicios
SOAP no dispone de un Web de gran complejidad
sistema de como las aplicaciones B2B
direccionamiento global REST tiene grandes
SOAP puede derivar en problemas de seguridad al
agujeros de seguridad no soportar el concepto de
SOAP no aprovecha sesión
muchas de las ventajas de
HTTP al usarlo solamente
como túnel
SOAP no puede hacer uso
de los mecanismos Caché
Javier González Pisano
Uso de REST
Adecuado para grandes cantidades de
información pública para grupos
desconocidos de usuarios
No adecuado para sistemas complejos
cerrados
Javier González Pisano
Ejemplo de Implementaciones
AMAZON
Pionera en el uso de REST en 2002
Base de datos con todos los productos que vende
Los productos se acceden como recursos, no como métodos de
búsqueda
API disponible en associates.amazon.com
Posible carencia, si realiza servicios más sofisticados puede que
deba migrar a SOAP
EBAY
Desarrolló una API REST en 2004
Consulta de productos a través del método GetSearchResults()
OTROS: YOUTUBE, YAHOO, FLICKR, etc..
En ocasiones siguen la arquitectura “sin querer”.
Javier González Pisano
Futuro de REST
SOAP mantiene el monopolio de los Servicios
Web
Carencia de documentación
Escasas implementaciones y ejemplos
prácticos para acercar REST al programador
común
Única solución, crear organización o entidad
que agrupe el disperso y escaso trabajo que
existe sobre REST
Javier González Pisano
Gracias por vuestra
atención
Javier González Pisano