scom5 ws ii
TRANSCRIPT
Aplicaciones y Servicios WebII (REST)
Joaquín Salvachú[email protected]://jsalvachua.blogspot.com
Índice
Problema a resolverArquitecturaSOAPWSDLUDDIConclusiones
Que es RESTREpresentational StateTransfer.
Arquitectura de aplicaciones Web descrita por Roy Fielding en su tesis doctoral (uno de los principales desarrolladores del proyecto Apache).
http://www.ics.uci.edu/~fielding/pubs/dissertation/
Arquitectura desacoplada y escalable para aplicaciones Web.
Rest y HTTP
REST es una abstracción que puede implementarse sobre cualquier protocolo. La mejor forma de implementarlo es sobre HTTP.Encaja perfectamente con el protocol (diferencia con SOAP).
Principios sobre REST
Recursos IdentificablesInterfaz de acceso uniformeComunicación sin estadoRepresentación de los recursosHypermedia.
Identificador de recursos
Cada recurso representara una entidad real o virtual de la aplicación ( un usuario, un libro, un coche). En la Web esto ser realizará mediante el uso de URI.
Cada URI añade valor a la red.
Interfaz uniformeUna vez que tenemos localizado el recursos podemos interactuar con él. Uso de los verbos de las acciones de HTTP: GET (copia solo lectura) PUT (cambiar parte ) POST (añadir) DELETE (eliminarlo)
Posibilidad de optimizar mediante el uso de caches.
Representación de los recursos
Que es lo que obtenemos al acceder al URI del recurso.Pueden existir varios : HTML, PDF, XML.
HTTP nos facilita el tipo (MiME) y permite la negociación de ello. Habitualmente es XML. Necesidad de representaciones “bien conocidas”.
Comunicación sin estado El servidor NO necesita mantener el estado de la conversación con cada cliente.
Enfoque dispara y olvida (“fire and forget”). Mayor ventaja de esta arquitectura.El estado esta explicito en las llamadas. Incrementa exponencialmente la escalabilidad.Muy bajo acoplamiento
Hypermedia
Todas las transiciones de estado son mediante el uso de links. Permite delegar,Los enlaces deberían estar proporcionados por el servidor, no por el cliente. Permite un modelo distribuido y de fácil evolución.
Diseño de una aplicación REST
Identificar recursos y diseñar los URI.Seleccionar los formatos de comunicación.
Identificar la semántica de los métodos.
Seleccionar los códigos de respuesta/error.
Ventajas de RESTfull HTTPSoporte universal y simple desde cualquier lenguaje y plataforma.Escalabilidad demostrada.Soporte para redirección, cache, diferentes representaciones.Integración real para comunicación B2B.
Funciona con XML, pero también con otros formatos.
Comunicación asíncrona
HTTP es petición - respuesta.
Posiblidad de usar 202 Accepted202 Accepted como respuesta.
Necesidad de monitorizar o pasar un URI para ser notificado.
Mensaje Fiable / encriptación
Uso de HTTPS Capa SSL/TLS
Posibilidad de usar el protocolo ATOM y ATOM-PP
Enfoque KISS
Conclusiones
REST es la arquitectura para el mayor sistema distribuido del mundo (la web).
Mayor adopción frente a los problema de los Web Services.
Comparación con WS
Mejor uso del protocolo HTTP (protocolo a nivel de aplicación). Mayor facilidad de uso. Soporte directo y transparente de las aplicaciones.
Complejidad de WS-*