Representational State Transfer (REST)

39
Representationa l State Transfer (REST) PROYECTO FIN DE CARRERA: Tutor: Antonio J. Sierra Collado Alumno: Alberto Cubo Velázquez

description

Representational State Transfer (REST). PROYECTO FIN DE CARRERA: Tutor: Antonio J. Sierra Collado Alumno: Alberto Cubo Velázquez. ÍNDICE INTRODUCCIÓN HTTP, URI, XML SOAP Y WSDL REST DEBATE REST-SOAP IMPLEMENTACIONES REST FUTURO DE REST. 1. INTRODUCCIÓN. INTRODUCCIÓN. - PowerPoint PPT Presentation

Transcript of Representational State Transfer (REST)

Page 1: Representational State Transfer (REST)

Representational State Transfer (REST)

PROYECTO FIN DE CARRERA:

Tutor: Antonio J. Sierra Collado Alumno: Alberto Cubo Velázquez

Page 2: Representational State Transfer (REST)

ÍNDICE

1. INTRODUCCIÓN

2. HTTP, URI, XML

3. SOAP Y WSDL

4. REST

5. DEBATE REST-SOAP

6. IMPLEMENTACIONES REST

7. FUTURO DE REST

Page 3: Representational State Transfer (REST)

1. INTRODUCCIÓN

Page 4: Representational State Transfer (REST)

■ Necesidad de realizar tareas en menor tiempo

Internet y Servicios Web como solución

INTRODUCCIÓN

Page 5: Representational State Transfer (REST)

SERVICIOS WEB:

Facilitan tareas a los usuarios

Ligadas al mundo Web (Internet)

Datan de las últimas dos décadas

Origen: CORBA, RPC

Actualmente SOAP tiene el monopolio

REST como alternativa a SOAP

Page 6: Representational State Transfer (REST)

IMPORTANCIA DE REST EN LA WEB

Page 7: Representational State Transfer (REST)

2. URI, HTTP Y XML

Page 8: Representational State Transfer (REST)

URI, HTTP, XML

Identificador de recursos: URI, UUID

Protocolo de Transferencia: HTTP

Descripción y estructurado de datos: XML

Bases para construir Servicios Web:

Page 9: Representational State Transfer (REST)

3. SOAP Y WSDL

Page 10: Representational State Transfer (REST)

CARACTERÍSTICAS DE SOAP:

Arquitectura de Servicios Web

Creado por IBM, Microsoft y actualmente W3C

Basada en RPC

Intercambio de información entre dos puntos mediante XML

Uso de HTTP como túnel para las comunicaciones

Descubrimiento de Servicios mediante WSDL

Page 11: Representational State Transfer (REST)

FUNCIONAMIENTO DE SOAP:

Page 12: Representational State Transfer (REST)

MENSAJES SOAP:

<?xml version="1.0"?><SOAP-ENV:Envelope

xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" SOAP- ENV:encodingStyle= "http://schemas.xmlsoap.org/soap/encoding/">

<SOAP-ENV:Header><t:Transaction xmlns:t="some-URI" SOAP-ENV:mustUnderstand="1">

5</t:Transaction>

</SOAP-ENV:Header><SOAP-ENV:Body>

<getQuote xmlns= "http://namespaces.alberto.org/xmljava/ch2/"><symbol>RHAT</symbol>

</getQuote></SOAP-ENV:Body>

</SOAP-ENV:Envelope>

Page 13: Representational State Transfer (REST)

4. REST

Page 14: Representational State Transfer (REST)

CARACTERÍSTICAS

Origen Roy Thomas Fielding, ámbito académico

Estilo de arquitectura

Describe como debería comportarse la Web

Se apoya en el uso de URI y HTTP

REST evoluciona en la red

Page 15: Representational State Transfer (REST)

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.

Page 16: Representational State Transfer (REST)

RESTRICCIONES DE REST:

Cliente Servidor

Sin estado

Caché

Sistema de capas

Interfaz Uniforme

Page 17: Representational State Transfer (REST)

RESTRICCION 1: CLIENTE-SERVIDOR

Page 18: Representational State Transfer (REST)

RESTRICCIÓN 2: SIN ESTADO

Page 19: Representational State Transfer (REST)

RESTRICCIÓN 3: CACHÉ

Page 20: Representational State Transfer (REST)

RESTRICCIÓN 4: SISTEMA DE CAPAS

Page 21: Representational State Transfer (REST)

RESTRICCIÓN 5: INTERFAZ UNIFORME

La implementación se separa del servicio que proporciona.

Mecanismos para conseguirlo:

Recursos e identificación de recursos

Manipulación de recursos a través de sus representaciones

Mensajes Auto-descriptivos

Hipermedios como el motor de estado de la aplicación

Page 22: Representational State Transfer (REST)

RECURSOS

• REST es orientado a recursos y no a métodos

Page 23: Representational State Transfer (REST)

IDENTIFICACIÓN DE RECURSOS

• URI Física

• URI Lógica

Page 24: Representational State Transfer (REST)

MANIPULACIÓN DE RECURSOS

Un cliente manipula la representación de un recurso en vez de su implementación.

Page 25: Representational State Transfer (REST)

MENSAJES AUTO-DESCRIPTIVOS

Toda la información necesaria para procesar el mensaje se encuentra en el propio mensaje.

Usa HTTP como protocolo de aplicación.

Page 26: Representational State Transfer (REST)

HIPERMEDIO COMO EL MOTOR DE ESTADO

Page 27: Representational State Transfer (REST)

MÉTODOS DE REST

Usa los métodos de HTTP

Cumple con la restricción de interfaz uniforme

Page 28: Representational State Transfer (REST)

BENEFICIOS OBTENIDOS AL USAR REST

Mejora el tiempo de respuesta gracias al mecanismo Caché y los mensajes auto-descriptivos

Mejora la seguridad debido a los mensajes auto-descriptivos y el uso de los métodos HTTP

Page 29: Representational State Transfer (REST)

5. DEBATE REST-SOAP

Page 30: Representational State Transfer (REST)

DEBATE REST-SOAP

Inicio junto con la disertación de Roy Fielding

Los adeptos a REST buscan los puntos débiles de SOAP

A veces toma un tono político al unir SOAP con Microsoft

Principales autores: Paul Prescod, Tim Bray, Robert McMillan, Sam Ruby…

Page 31: Representational State Transfer (REST)

DIFERENCIAS ENTRE REST Y SOAP

SOAP REST

Origen en el ámbito académico Origen en el ámbito de las empresas

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 de mensajes

Propone HTTP como nivel de aplicación

Page 32: Representational State Transfer (REST)

CRÍTICAS DE REST HACIA SOAP

SOAP no es transparente, apuesta por el encapsulamiento

SOAP no dispone de un sistema de direccionamiento global

SOAP puede derivar en agujeros de seguridad

SOAP no aprovecha muchas de las ventajas de HTTP al usarlo solamente como túnel

SOAP no puede hacer uso de los mecanismos Caché

Page 33: Representational State Transfer (REST)

CRÍTICAS DE SOAP HACIA REST

REST es poco flexible

REST no está preparado para albergar Servicios Web de gran complejidad como las aplicaciones B2B

REST falla a la hora de realizar Servicios Web que necesiten procesado de datos

REST tiene grandes problemas de seguridad al no soportar el concepto de sesión

Page 34: Representational State Transfer (REST)

6. IMPLEMENTACIONES

Page 35: Representational State Transfer (REST)

AMAZON

Pionera en el uso de REST en 2002, muy comentado en la Web

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

Page 36: Representational State Transfer (REST)

eBay

Desarrolló una API REST en 2004

Consulta de productos a través del método GetSearchResults()

Ejemplo de uso: http://rest.api.ebay.com/restapi?CallName=GetSearchResults&RequestToken =xyz123&RequestUserId=ebayuser&Query=toy%20boat&Schema=1

Fallo, usa un método con parámetros para invocar un producto

Page 37: Representational State Transfer (REST)

RESTLETS

API desarrollada en 2006

Funcionando aunque en fase de depuración

Acerca REST a los desarrolladores Java

Realiza las mismas funciones de los Servlets pero al estilo REST

Page 38: Representational State Transfer (REST)

7. FUTURO DE REST

Page 39: Representational State Transfer (REST)

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