SlideShare a Scribd company logo
1 of 12
INTRODUCCION
Los servicios web son Apis Web que son accesibles desde las Web, dentro de
una red y son ejecutadas desde un sistema. Estos servicios tienen diferentes
tipos de sistemas, entre ellos REST, éstos se comunican por mensajes XML que
cumplen con el estándar SOAP.
La transferencia de estado representacional o Representational State Transfer
(REST), es una técnica de arquitectura de software en red para sistemas
distribuidos que aprovecha de las tecnologías y protocolos de las World Wide
Web (www).
Cabe destacar que REST no es una especificación ni un estándar. Este es solo
una técnica de arquitectura que está basada en varios estándares, algunos de
ellos son:
 HTTP
 URL
 Recursos XML
Dicho servicio web REST, posee una serie de elementos que se los detalla a
continuación.
 Identificación de recursos: Los recursos deben ser totalmente accesibles,
es decir deben poseer una URI de identificación, que es única
 Manipulación de recursos: Uso de recursos HTTP que son accedidos, para
implementarlos mediante CRUD (Get, post, put delete).
 Metadatos para describir nuevos recursos: Usa métodos o tecnologías
estándar como HTTP, URI, XML, RDF, JSON, ETC
 Comunicación sin estado: no guardas las transacciones entre el cliente y
servidor.
HISTORIA
La tecnología REST se originó en el año 2000, gracias al
tema de tesis doctoral sobre la web escrita por de Roy
Fielding, desarrollada en la Universidad de California en
Irvine, en conjunto con el Consorcio World Wide Web (W3C)
en paralelo con HTTP 1.1.
Fielding desarrolló este tipo de arquitectura de desarrollo web, para identificar
los problemas que existían en la web, y así poder comparar soluciones
alternativas a estos inconvenientes y por consiguiente certificar que las
extensiones de protocolo no vulnerarían las restricciones esenciales que hacen
que la web sea exitosa. La World Wide Web (www) representa la mayor
implementación de un sistema conforme al estilo arquitectónico REST.
Por estas razones los autores describen al término REST, como cualquier
interfaz simple que se utiliza para la trasmisión de datos de un dominio específico
a través del protocolo HTTP, sin requerir de capas externas como mensajería o
seguimiento de sesión.
Transferencia de estado representacional, fue desarrollado para que consuma
menos software del lado del cliente, es decir un navegador estándar puede
acceder a cualquier aplicación y a sus recursos de datos.
Overview
La transferencia de estado representacional o Representational State Transfer
(REST), es una técnica arquitectónica para el diseño de aplicaciones en la red.
Dicho término se originó por el Doctor Roy Fielding en el año 2000, mediante su
tesis doctoral Estilos Arquitecturales y el Diseño de Arquitecturas de Software
basadas en Red, en el cual definió REST como un enfoque para desarrollar
servicios web, y para describir los principios de redes que caracteriza la World
Wide Web.
Rest fue ganando espacio en la web como una opción más simple a SOAP
(Simple Object Access Protocol) y a los servicios Web basados en el lenguaje
de descripción de servicios web WSDL. El impacto de rest fue demasiado
grande que logró desplazar a SOAP y a interfaces basadas en WSDL, por su
manera fácil de utilizar. Rest es orientado a recursos, más no a métodos.
Objetivos
Dentro de esta arquitectura se tiene varios objetivos que deben ser cumplidos.
 Escalabilidad de los componentes de interacción:
 Generalidad de interfaces: cualquier cliente puede interactuar con algún
servidor http, sin que se haga una configuración.
 Puesta en funcionamiento independiente: los servidores antiguos o
viejos tienen que ser capaces de entenderse con cliente nuevo y
viceversa.
 Compatibilidad con componentes intermedios: permite reducir la latencia
de interacción y mejorar la seguridad.
Elementos de la Arquitectura REST
Elementos de datos
Rest define varios principios arquitectónicos o características por los que se
diseñan los servicios web, se clasifican en:
Identificación de recursos
Todo recurso es identificado de manera única como en HTTP, que es un
protocolo que se basa en URIs (Uniform Resource Identifier), ésto es lo que
permite identificar un recurso. Un recurso es considerado como una entidad que
representa un concepto de negocio que puede ser accedido de manera pública,
éste posee un estado interno que no puede ser accedido desde el exterior, a lo
que se puede acceder es a las representaciones (xml, json, rdf), dicha de otra
manera se puede acceder al formato de datos que contenga este estado, para
la fácil transferencia entre el cliente y el servidor.
Manipulación de recursos
Todos los recursos comparten una interfaz uniforme formada por un conjunto
de operaciones, éstas nos permiten manipular el estado público de un recurso.
Los métodos más importantes de http son:
 Get: Obtener la representación de un recurso.(read)
 Post: Crear un nuevo recurso (create)
 Put: Actualizar un recurso (update)
 Delete: eliminar un recurso.(delete)
Éstos suelen ser confundidos con las operaciones de Base de Datos, CRUD:
create, read, update, delete. Ya que se dice que rest es crud, implementado en
la web.
Metadatos para describir nuevos recursos
Varios de los recursos de los que se habla, tienen diversos formatos, entre
ellos,html, xml, pdf, json, rdf entre otros.
Comunicación sin estado:
Rest exige que el estado sea transformado en estado del recurso lógico o
físico, y sea mantenido en el cliente. El servidor no debe guardar el estado de
la comunicación que tiene con cualquiera de los clientes en cada una de sus
peticiones.
A esta razón se la llama escalabilidad, ya que el número de clientes que se
comunican o interactúan con el servidor estaría afectado profundamente si, se
tuviera que mantener el estado del cliente.
Conector
Es un mecanismo en el que se hace posible la comunicación y coordinación
entre componentes, éste no tiene que almacenar cualquier información del
estado, esta comunicación puede ser en paralelo.
 Cliente /servidor:
Es el que inicia la comunicación a través de una petición,
mientras que el servidor es el que responde a dichas peticiones
para dar acceso a los usuarios.
 Cache:
Puede ser utilizado por un cliente para evitar que la comunicación
de red, está repetida, o por un servidor para evitar la repetición
del proceso que genera una respuesta
Componentes
Producen un conjunto de métodos definidos en los recursos, para así capturar el
estado actual, de dicho recurso.
Estos componentes se clasifican en:
 Agente usuario: usa un conector de tipo cliente, para poder iniciar la
petición y ser el receptor de la misma.
 Servidor: usa un conector de tipo servidor, que realiza la representación
de sus recursos y debe ser el último receptor de las peticiones, en las que
se solicite modificar valores de los recursos de la misma.
 Gateway: es un sistema intermedio que lo proporciona la red, se lo usa
para dar el mejor funcionamiento y seguridad a la transmisión de datos.
 Proxy: es un sistema intermedio que el cliente lo selecciona, para cumplir
con la encapsulación de la interfaz de otros servicios, y también para dar
mejor funcionamiento y seguridad a la transmisión de datos.
La diferencia entre Gateway y Proxy, es que el cliente es el encargado de ver
cuándo va a usar un proxy.
Restricciones de la Arquitectura Rest
Para poder llevar a cabo los objetivos antes mencionados, se debe cumplir con
las siguientes restricciones.
Cliente / Servidor:
Este promueve dos componente, la lógica de negocios que es parte del Servidor
y la lógica de presentación a cargo del cliente; esto permite que las
modificaciones se hagan de manera independiente en la capa de presentación,
no puede afectar la lógica de negocio.
Sin estado (Stateless)
Estos servicios web no mantienen estado asociado a un cliente, por lo que
cada petición que se realiza es independientemente de la siguiente petición.
Cacheable:
Es decir que cuando se realiza un a petición al servidor, el resto de peticiones
pueden hacer uso de las de la cache, si lo necesitan.
Interfaz uniforme
Dicha interfaz está diseñada para tener el trabajo eficiente en cuanto a
transferencias de datos de hipermedios, ya que está optimizando para la mayor
parte de la Web.
Sistemas de capas.
Permiten mejorar la conducta de la escalabilidad en internet, permitiendo tener
una arquitectura con componentes separados, esto para poder limitar el
comportamiento de diversos componentes, ya que se puede ver o modificar el
contenido de una capa, sin afectar a la otra.
Código bajo demanda
Esta restricción es opcional, ya que permite a los clientes poder descargar el y
ejecutar el código fuente a manera de scripts o applets. También posee una
desventaja que es que reduce la visibilidad y puede influir en la seguridad del
sistema
Rest y XML
Rest como está orientado a los sistemas distribuidos de hipermedia, tiene la
necesidad de crear sus representaciones a partir de recursos como lo son
videos, sonidos, html, etc., Para esto en sus comienzos apostó por XML, como
una de las soluciones para la codificación de representaciones que pueden ser
codificadas o no están estandarizadas.
XSLT con REST
XSLT es un lenguaje de estilo utilizado para transformar documentos XML en
documentos XHTML o de otros documentos basados en texto. A Través la
combinación de la interfaz REST con XSLT, es posible construir formas
respectivamente simples para recuperar datos XML desde el servicio web y
presentarlos en el navegador usando HTML.
Construcción de la XSLT
Existen dos pasos para inicializar los datos XML utilizando REST y XLST, el
primer consiste en la construcción del archivo XLST, que prácticamente permite
convertir los datos del XML en otro formato como HTML. La segunda forma
consiste en la recuperación de los datos desde el servidor web y la aplicación.
Ejemplo:
<Font face = "Arial, Helvetica, sans-serif" size = "2"> Identificador Único: <xsl:
value-of select = "@ uid" /> <br/> </ font>
<Font face = "Arial, Helvetica, sans-serif" size = "2"> Elemento Code: <xsl: value-
of select = "@ speciesCode" /> <br/> </ font>
<Font face = "Arial, Helvetica, sans-serif" size = "2">
Taxonomía informal:
<Xsl: for-each select = "// ns: taxonomyName">
<Xsl: if test = "! Posición () = 1">
<Xsl: text> - </ xsl: text>
</ Xsl: if>
<Xsl: value-of select = "@ nombre" />
</ Xsl: for-each>
</ Font>
Representación de la salida
El procesamiento de XSLT no es más que XSLT + XML que da como resultado
la salida del documento. Una vez visto como construir un XSLT, ahora se tratará
de ver cómo recuperar el documento XML desde el servidor web, utilizando la
interfaz basada en REST. Los parámetros ingresan en la interfaz establecida en
REST, en la misma forma que está en la página web o también se puede añadir
al final de la URL o al inicio de la cabecera http un POST. Una vez que los dos
parámetros se rellenan, la URL a continuación, se puede enviar mediante
programación o simplemente ingresando en el navegador donde se puede
observar los datos.
Tecnología y/o Framework
Tecnología Descripción
Ruby on Rails Este framework ofrece el módulo Active Resource, que
proporciona la infraestructura necesaria para crear de
manera sencilla recursos REST, el cual está presente en las
últimas versiones, desplazando a otros modelos como
SOAP.
.NET .NET permite el consumo del api de Bing Maps Servicios
REST. Estos son un conjunto de servicios web REST full
que permiten la recolección de recursos a través de una url
y de los métodos get y post de http. Este enfoque se utiliza
en tecnologías de Windows Store y Windows Presentation
Foundation (WPF).
Blogsfera
(blogs)
Los blogs están basados en REST, dado que implica
descargar ficheros XML (en formato RSS o Atom) que
contienen listas de enlaces a otros recursos.
Amazon
Simple
Storage
Service
(Amazon S3)
Ofrece su api REST a sus desarrolladores para que hagan
uso de su servicio web que permite almacenar datos en la
nube. Describe las diversas operaciones como: petición y
respuesta estructuras relacionadas, y códigos de error.
"Seniors
Canada On-
line"
El gobierno de Canadá ofrece una interfaz REST, la cual
proporcionar información amalgamada para los jubilados de
todos los niveles de gobierno.
“La aplicaciónREST comparte su base de datos y aplicación
de la lógica con el sitio web HTML, por lo que la parte XML
es sólo una vista fina escrita en la parte superior de todo lo
que, en paralelo con la vista HTML” (David Megginson,
2005).
Bloglines Actúa como una caché de RSS, resolviendo así el problema
de ancho de banda RSS. El Bloglines Web Services se
puede utilizar para desarrollar notificadores más avanzados.
Yahoo
Developed
Yahoo ofrece un API en REST a los desarrolladores, con la
finalidad de desarrollar y optimizar sus aplicaciones
(PlaceFinder, Flickr, Tumblr, etc.).
WCF Data
Services 4.5
de Microsoft
Es un componente de .NET para crear servicios que utilizan
el protocolo de datos abierto (OData), el que permite
consumir datos a través de Internet o intranet, a través del
uso de transferencia de estado representacional (REST).
Estos datos abiertos exponen los datos como recursos que
son direccionables por URI. Los cuales acceden a los datos
y cambiar utilizando los verbos HTTP estándar de GET,
PUT, POST y DELETE.
Restlet - java Es un marco de la API REST web líder para Java. Su API
de Java está disponible en ambos lados de cliente y
servidor, en seis ediciones compatibles: Java SE, Java EE,
Android, GAE, GWT y OSGi.
Django REST Contiene un gran conjunto de herramientas de gran alcance
y hace que sea flexible y fácil de con construir APIs Web.
Para poder hacer uso de este framework, se requiere de lo
siguiente:
 Python
 Django
Zend
Framework
Es un Framework que ofrece capacidades de cliente y
servidor. El componente del servidor posee funciones y
clases que utilizan un significativo y sencillo formato XML,
es decir al momentos que se accede a estos servicios a
través del cliente, es posible recuperar fácilmente los datos
de retorno de la llamada remota.
El servicio del servidor es Zend_Rest_Server y el del cliente
Zend_Rest_Client_Response.
Slim Este micro framework de PHP permite y ayuda a la creación
rápida de aplicaciones web (RESt) simple pero poderosa.
Permite desde el router asociar cierto pedido HTTP con
funciones anónimas.
Bullet PHP
Micro-
Framework
Es un micro framework con PHP, que permite crear con
facilidad api RESt y aplicaciones web, que cumplen con los
requisitos especificos de http. Este es un recurso orientado
a URI que viene pre-cargado con las funciones de HTTP.
Maneja un segmento a la ruta de acceso a la vez, y ejecuta
la devolución de llamada antes de procesar el siguiente
segmento.
Limonade
Es un micro marco de PHP para la creación de aplicaciones
web, de manera rápida y sencilla. Su principal objetivo es
ser simple, ligero y extremadamente flexible para los
desarrolladores.
Limonade es sumamente fácil de aprender y utilizar, le
ofrece al desarrollador todo lo que se puede usar en marco
moderno REST.
Fat-Free
Framework
Es de uso gratuito y ayuda a que la creación de un sitio web
sea fácil, posee el mismo poder y variedad que otros
herramientas y librerías como Javascript. Facilita la escritura
en programas PHP, dando un mejor aspecto, resultando
mucho más fácil de entender el código del programa,
obteniendo muy bueno resultados.
Silex Es un framework PHP, está construida sobre Symfony2 y
Pimple e inspirado por Sinatra. Ofrece la construcción de
aplicaciones web de un solo archivo simple. Pretende ser:
 Conciso: exponiendo una API intuitiva y concisa.
 Extensible: posee un sistema de extensión en torno a
micro-servicio con la finalidad de enlazar las
bibliotecas de terceros.
 Comprobable: utiliza Symfony2 de HttpKernel para la
petición y respuesta. Además respeta la
especificación HTTP.
Phalcon “Nuestra misión es darle una herramienta avanzada para el
desarrollo de sitios web y aplicaciones sin tener que
preocuparse por el rendimiento marco” (Phalcon, s.f.).
Es de código abierto para PHP 5 con extensión C,
optimizado para tener un alto rendimiento. Los
desarrolladores no necesitan saber C, ya que la
funcionalidad se presenta como clases PHP.
Utiliza los métodos HTTP:
 GETa recuperar y buscar datos
 POST para agregar datos
 PUT para actualizar los datos
 DELETE para eliminar los datos
Conclusiones
 Rest es una técnica arquitectónica para producir entornos web, no es una
especificacióno un estándar, se basa en ciertos objetivos que se los debe
cumplir conjuntamente con las restricciones para que todo salga a la
perfección.
 La arquitectura de Transferencia de Estado Representacional (REST) es
una técnica muy utilizada actualmente en el desarrollo de aplicaciones
web, debido a que posee las operaciones del protocolo HTTP, es fácil de
utilizar y completa.
 La arquitectura por capas permite reducir el riesgo de daño al momento
de modificar algún bloque, ya que afecta sólo a la capa en donde modifica
 Al aplicar la restricción de Cache, se reduce el tiempo de espera de las
interacciones, ya que mejoran la eficiencia y escalabilidad.
 En la actualidad esta técnica (REST) para el desarrollo web, posee una
gran variedad de Frameworks disponibles para poder utilizarla, los
mismos que permiten que la construcción de sistemas web sea fácil,
novedoso, y completo.
Bibliografía
Rusell, Kay (2007). Representational State Transfer (REST). Recuperado el
15/11/2014, de Computerworld. Sitio web:
http://www.computerworld.com/article/2552929/networking/representational-
state-transfer--rest-.html
s.a (s.f). REPRESENTATIONAL STATE TRANSFER: REST. Recuperado el
15/11/2014 desde Internet:
http://bibing.us.es/proyectos/abreproy/11247/fichero/Memoria%252F8-
Representational+State+Transfer+(REST).pdf
Amazon. (2006). REST API. Recuperado el 15/11/2014, de Amazon. Sitio web:
http://docs.aws.amazon.com/AmazonS3/latest/API/APIRest.html
Microsoft developer Network. (s.f.). Using the REST Services with .NET.
Recuperado el 15/11/2014, de Microsoft. Sitio web:
http://msdn.microsoft.com/en-us/library/jj819168.aspx
Bloglines. (s.f.). Servicios Bloglines. Recuperado el 15/11/2014, de Bloglines
Sitio web: http://www.bloglines.com/services/
Megginson, D. (2005). Grandes, de aplicación REST público: Mayores de
Canadá en línea. Recuperado el 15/11/2014, de Quoderat. Sitio web:
http://quoderat.megginson.com/2005/03/09/public-rest-application-seniors-
canada-online/
Microsoft developer Network. . (s.f.). WCF Data Services 4.5. Recuperado el
15/11/2014, de Microsoft Sitio web: http://msdn.microsoft.com/en-
us/library/cc668792.aspx
Wikipedia. (2014). Ruby on Rails. Recuperado el 15/11/2014, de Wikipedia Sitio
web: http://es.wikipedia.org/wiki/Ruby_on_Rails
Restlet. (s.f.). The Leading Web API Platform for Java. Recuperado el
15/11/2014, de Restlet Sitio web: http://restlet.com/
Bullet. (2012). Bullet PHP Micro-Framework. Recuperado el 15/11/2014, de
Bullet Sitio web: http://bulletphp.com/
Slim. (2012). Slim. Recuperado el 15/11/2014, de Slimframework Sitio web:
http://www.slimframework.com/
Django. (s.f.). Django Rest Framework. Recuperado el 15/11/2014, de Django
Rest. Sitio web: http://www.slimframework.com/

More Related Content

What's hot

Principios orientacion-objetos
Principios orientacion-objetosPrincipios orientacion-objetos
Principios orientacion-objetoskarlalopezbello
 
Presentacion de Modelo entidad -relación de Base de Datos
Presentacion de Modelo entidad -relación de Base de Datos Presentacion de Modelo entidad -relación de Base de Datos
Presentacion de Modelo entidad -relación de Base de Datos Yarquiri Claudio
 
Git y Jenkins. El futuro en la gestión del ciclo de vida de aplicaciones
Git y Jenkins. El futuro en la gestión del ciclo de vida de aplicacionesGit y Jenkins. El futuro en la gestión del ciclo de vida de aplicaciones
Git y Jenkins. El futuro en la gestión del ciclo de vida de aplicacionesParadigma Digital
 
Introduction to Spring Framework
Introduction to Spring FrameworkIntroduction to Spring Framework
Introduction to Spring Framework Serhat Can
 
Perl 101 - The Basics of Perl Programming
Perl  101 - The Basics of Perl ProgrammingPerl  101 - The Basics of Perl Programming
Perl 101 - The Basics of Perl ProgrammingUtkarsh Sengar
 
Sesion 2 2 conceptos claves de analisis y diseno
Sesion 2 2 conceptos claves de analisis y disenoSesion 2 2 conceptos claves de analisis y diseno
Sesion 2 2 conceptos claves de analisis y disenoJulio Pari
 
Ventajas y desventajas de los modelos de bd
Ventajas y desventajas de los modelos de bdVentajas y desventajas de los modelos de bd
Ventajas y desventajas de los modelos de bdIrene Lorza
 
Programación Orientada a Objetos - Otras relaciones entre clases
Programación Orientada a Objetos - Otras relaciones entre clasesProgramación Orientada a Objetos - Otras relaciones entre clases
Programación Orientada a Objetos - Otras relaciones entre clasesAlvaro Enrique Ruano
 
Java Persistence API (JPA) Step By Step
Java Persistence API (JPA) Step By StepJava Persistence API (JPA) Step By Step
Java Persistence API (JPA) Step By StepGuo Albert
 
Spring framework IOC and Dependency Injection
Spring framework  IOC and Dependency InjectionSpring framework  IOC and Dependency Injection
Spring framework IOC and Dependency InjectionAnuj Singh Rajput
 
Strategy Pattern
Strategy PatternStrategy Pattern
Strategy PatternGuo Albert
 
Gitlab Training with GIT and SourceTree
Gitlab Training with GIT and SourceTreeGitlab Training with GIT and SourceTree
Gitlab Training with GIT and SourceTreeTeerapat Khunpech
 
Herencia y Polimorfismo
Herencia y PolimorfismoHerencia y Polimorfismo
Herencia y Polimorfismonestor_moren
 

What's hot (20)

Patron builder
Patron builderPatron builder
Patron builder
 
Principios orientacion-objetos
Principios orientacion-objetosPrincipios orientacion-objetos
Principios orientacion-objetos
 
Apache CouchDB
Apache CouchDBApache CouchDB
Apache CouchDB
 
Presentacion de Modelo entidad -relación de Base de Datos
Presentacion de Modelo entidad -relación de Base de Datos Presentacion de Modelo entidad -relación de Base de Datos
Presentacion de Modelo entidad -relación de Base de Datos
 
Git y Jenkins. El futuro en la gestión del ciclo de vida de aplicaciones
Git y Jenkins. El futuro en la gestión del ciclo de vida de aplicacionesGit y Jenkins. El futuro en la gestión del ciclo de vida de aplicaciones
Git y Jenkins. El futuro en la gestión del ciclo de vida de aplicaciones
 
Introduction to Spring Framework
Introduction to Spring FrameworkIntroduction to Spring Framework
Introduction to Spring Framework
 
Perl 101 - The Basics of Perl Programming
Perl  101 - The Basics of Perl ProgrammingPerl  101 - The Basics of Perl Programming
Perl 101 - The Basics of Perl Programming
 
Sesion 2 2 conceptos claves de analisis y diseno
Sesion 2 2 conceptos claves de analisis y disenoSesion 2 2 conceptos claves de analisis y diseno
Sesion 2 2 conceptos claves de analisis y diseno
 
Ventajas y desventajas de los modelos de bd
Ventajas y desventajas de los modelos de bdVentajas y desventajas de los modelos de bd
Ventajas y desventajas de los modelos de bd
 
Dependency Injection
Dependency InjectionDependency Injection
Dependency Injection
 
Programación Orientada a Objetos - Otras relaciones entre clases
Programación Orientada a Objetos - Otras relaciones entre clasesProgramación Orientada a Objetos - Otras relaciones entre clases
Programación Orientada a Objetos - Otras relaciones entre clases
 
Java Persistence API (JPA) Step By Step
Java Persistence API (JPA) Step By StepJava Persistence API (JPA) Step By Step
Java Persistence API (JPA) Step By Step
 
Spring framework IOC and Dependency Injection
Spring framework  IOC and Dependency InjectionSpring framework  IOC and Dependency Injection
Spring framework IOC and Dependency Injection
 
Strategy Pattern
Strategy PatternStrategy Pattern
Strategy Pattern
 
Bd nosql clave valor
Bd nosql clave valorBd nosql clave valor
Bd nosql clave valor
 
Servicios web
Servicios webServicios web
Servicios web
 
Git / Guía Básica
Git / Guía BásicaGit / Guía Básica
Git / Guía Básica
 
Gitlab Training with GIT and SourceTree
Gitlab Training with GIT and SourceTreeGitlab Training with GIT and SourceTree
Gitlab Training with GIT and SourceTree
 
Herencia y Polimorfismo
Herencia y PolimorfismoHerencia y Polimorfismo
Herencia y Polimorfismo
 
Sling Models Overview
Sling Models OverviewSling Models Overview
Sling Models Overview
 

Viewers also liked

Prospectus groupe cerco_20131
Prospectus groupe cerco_20131Prospectus groupe cerco_20131
Prospectus groupe cerco_20131Alain CAPO CHICHI
 
Servicio de envios en Colombia
Servicio de envios en ColombiaServicio de envios en Colombia
Servicio de envios en ColombiaHermes Ruiz
 
CMSday 2013 - Doper votre audience en optimisant votre référencement ?
CMSday 2013 - Doper votre audience en optimisant votre référencement ?CMSday 2013 - Doper votre audience en optimisant votre référencement ?
CMSday 2013 - Doper votre audience en optimisant votre référencement ?Smile I.T is open
 
Innovation de rupture 6 conseils pour innover
Innovation de rupture 6 conseils pour innoverInnovation de rupture 6 conseils pour innover
Innovation de rupture 6 conseils pour innoverFarWind Consulting
 
Nous avons quelque chose à vous dire
Nous avons quelque chose à vous direNous avons quelque chose à vous dire
Nous avons quelque chose à vous direStephanie Etcedric
 
Le géofencing à La Vache Noire, premières expériences
Le géofencing à La Vache Noire, premières expériencesLe géofencing à La Vache Noire, premières expériences
Le géofencing à La Vache Noire, premières expériencesGinger
 
CMSday 2013 - Les atouts du modèle open source
CMSday 2013 - Les atouts du modèle open sourceCMSday 2013 - Les atouts du modèle open source
CMSday 2013 - Les atouts du modèle open sourceSmile I.T is open
 
Startupweekend
StartupweekendStartupweekend
Startupweekenddescl
 
Manual de estudio_habilitante_juzgados_de_letras_de_trabajo
Manual de estudio_habilitante_juzgados_de_letras_de_trabajoManual de estudio_habilitante_juzgados_de_letras_de_trabajo
Manual de estudio_habilitante_juzgados_de_letras_de_trabajocristofer Magduglas
 
Presentación conferencia dr. jamg nayarit 25 ene 2013
Presentación conferencia dr. jamg nayarit 25 ene 2013Presentación conferencia dr. jamg nayarit 25 ene 2013
Presentación conferencia dr. jamg nayarit 25 ene 2013Saida Mellina Villegas
 
20110311 ecran geantv3
20110311   ecran geantv320110311   ecran geantv3
20110311 ecran geantv3jylaw
 
Le dispositif d'accompagnement des collectivités et aux associations de Loire
Le dispositif d'accompagnement des collectivités et aux associations de LoireLe dispositif d'accompagnement des collectivités et aux associations de Loire
Le dispositif d'accompagnement des collectivités et aux associations de LoireMission Val de Loire
 
Ateos
AteosAteos
AteosPlof
 
Alexander Sutherlan Neill
Alexander Sutherlan NeillAlexander Sutherlan Neill
Alexander Sutherlan NeillNazaretAG
 

Viewers also liked (20)

Prospectus groupe cerco_20131
Prospectus groupe cerco_20131Prospectus groupe cerco_20131
Prospectus groupe cerco_20131
 
Etude isobar like
Etude isobar likeEtude isobar like
Etude isobar like
 
Servicio de envios en Colombia
Servicio de envios en ColombiaServicio de envios en Colombia
Servicio de envios en Colombia
 
Beta
Beta Beta
Beta
 
Beta
Beta Beta
Beta
 
CMSday 2013 - Doper votre audience en optimisant votre référencement ?
CMSday 2013 - Doper votre audience en optimisant votre référencement ?CMSday 2013 - Doper votre audience en optimisant votre référencement ?
CMSday 2013 - Doper votre audience en optimisant votre référencement ?
 
Innovation de rupture 6 conseils pour innover
Innovation de rupture 6 conseils pour innoverInnovation de rupture 6 conseils pour innover
Innovation de rupture 6 conseils pour innover
 
Nous avons quelque chose à vous dire
Nous avons quelque chose à vous direNous avons quelque chose à vous dire
Nous avons quelque chose à vous dire
 
Le géofencing à La Vache Noire, premières expériences
Le géofencing à La Vache Noire, premières expériencesLe géofencing à La Vache Noire, premières expériences
Le géofencing à La Vache Noire, premières expériences
 
CMSday 2013 - Les atouts du modèle open source
CMSday 2013 - Les atouts du modèle open sourceCMSday 2013 - Les atouts du modèle open source
CMSday 2013 - Les atouts du modèle open source
 
Simulation budget, website paianet, 13 01-21
Simulation budget, website paianet, 13 01-21Simulation budget, website paianet, 13 01-21
Simulation budget, website paianet, 13 01-21
 
Startupweekend
StartupweekendStartupweekend
Startupweekend
 
Manual de estudio_habilitante_juzgados_de_letras_de_trabajo
Manual de estudio_habilitante_juzgados_de_letras_de_trabajoManual de estudio_habilitante_juzgados_de_letras_de_trabajo
Manual de estudio_habilitante_juzgados_de_letras_de_trabajo
 
Presentación conferencia dr. jamg nayarit 25 ene 2013
Presentación conferencia dr. jamg nayarit 25 ene 2013Presentación conferencia dr. jamg nayarit 25 ene 2013
Presentación conferencia dr. jamg nayarit 25 ene 2013
 
20110311 ecran geantv3
20110311   ecran geantv320110311   ecran geantv3
20110311 ecran geantv3
 
Guías docentes
Guías docentesGuías docentes
Guías docentes
 
Le dispositif d'accompagnement des collectivités et aux associations de Loire
Le dispositif d'accompagnement des collectivités et aux associations de LoireLe dispositif d'accompagnement des collectivités et aux associations de Loire
Le dispositif d'accompagnement des collectivités et aux associations de Loire
 
Ateos
AteosAteos
Ateos
 
Alexander Sutherlan Neill
Alexander Sutherlan NeillAlexander Sutherlan Neill
Alexander Sutherlan Neill
 
21 25 mars
21 25 mars21 25 mars
21 25 mars
 

Similar to Introducción a la Arquitectura REST

Similar to Introducción a la Arquitectura REST (20)

RES - Transferencia de Estado Representacional
RES - Transferencia de Estado RepresentacionalRES - Transferencia de Estado Representacional
RES - Transferencia de Estado Representacional
 
Arquitectura Rest
Arquitectura RestArquitectura Rest
Arquitectura Rest
 
Arquitectura-orientada-a-Servicios.-v-2017.01-Prof.-L.-Straccia.pptx
Arquitectura-orientada-a-Servicios.-v-2017.01-Prof.-L.-Straccia.pptxArquitectura-orientada-a-Servicios.-v-2017.01-Prof.-L.-Straccia.pptx
Arquitectura-orientada-a-Servicios.-v-2017.01-Prof.-L.-Straccia.pptx
 
Web services
Web servicesWeb services
Web services
 
Paper ieee
Paper ieeePaper ieee
Paper ieee
 
Servicios Web
Servicios WebServicios Web
Servicios Web
 
Java2 servicios web
Java2 servicios webJava2 servicios web
Java2 servicios web
 
Rest clase 4 - curso front-end 2014 - open webinars
Rest   clase 4 - curso front-end 2014 - open webinarsRest   clase 4 - curso front-end 2014 - open webinars
Rest clase 4 - curso front-end 2014 - open webinars
 
Scom5 Ws Ii
Scom5 Ws IiScom5 Ws Ii
Scom5 Ws Ii
 
Servicios web
Servicios webServicios web
Servicios web
 
02 - Servicios SOAP.pptx
02 - Servicios SOAP.pptx02 - Servicios SOAP.pptx
02 - Servicios SOAP.pptx
 
Servicios WEB
Servicios WEBServicios WEB
Servicios WEB
 
ingenieria web.pptx
ingenieria web.pptxingenieria web.pptx
ingenieria web.pptx
 
Charla Web Services
Charla Web ServicesCharla Web Services
Charla Web Services
 
Servicios web
Servicios webServicios web
Servicios web
 
Desarrollo de la web (laura ballesteros & gicela mendoza) 11.3
Desarrollo de la web (laura ballesteros & gicela mendoza) 11.3Desarrollo de la web (laura ballesteros & gicela mendoza) 11.3
Desarrollo de la web (laura ballesteros & gicela mendoza) 11.3
 
Web Services
Web ServicesWeb Services
Web Services
 
Web Services
Web ServicesWeb Services
Web Services
 
Apli t1 ejr
Apli t1 ejrApli t1 ejr
Apli t1 ejr
 
Presentación sobre el protocolo RESTAPI.
Presentación sobre el protocolo RESTAPI.Presentación sobre el protocolo RESTAPI.
Presentación sobre el protocolo RESTAPI.
 

Introducción a la Arquitectura REST

  • 1. INTRODUCCION Los servicios web son Apis Web que son accesibles desde las Web, dentro de una red y son ejecutadas desde un sistema. Estos servicios tienen diferentes tipos de sistemas, entre ellos REST, éstos se comunican por mensajes XML que cumplen con el estándar SOAP. La transferencia de estado representacional o Representational State Transfer (REST), es una técnica de arquitectura de software en red para sistemas distribuidos que aprovecha de las tecnologías y protocolos de las World Wide Web (www). Cabe destacar que REST no es una especificación ni un estándar. Este es solo una técnica de arquitectura que está basada en varios estándares, algunos de ellos son:  HTTP  URL  Recursos XML Dicho servicio web REST, posee una serie de elementos que se los detalla a continuación.  Identificación de recursos: Los recursos deben ser totalmente accesibles, es decir deben poseer una URI de identificación, que es única  Manipulación de recursos: Uso de recursos HTTP que son accedidos, para implementarlos mediante CRUD (Get, post, put delete).  Metadatos para describir nuevos recursos: Usa métodos o tecnologías estándar como HTTP, URI, XML, RDF, JSON, ETC  Comunicación sin estado: no guardas las transacciones entre el cliente y servidor.
  • 2. HISTORIA La tecnología REST se originó en el año 2000, gracias al tema de tesis doctoral sobre la web escrita por de Roy Fielding, desarrollada en la Universidad de California en Irvine, en conjunto con el Consorcio World Wide Web (W3C) en paralelo con HTTP 1.1. Fielding desarrolló este tipo de arquitectura de desarrollo web, para identificar los problemas que existían en la web, y así poder comparar soluciones alternativas a estos inconvenientes y por consiguiente certificar que las extensiones de protocolo no vulnerarían las restricciones esenciales que hacen que la web sea exitosa. La World Wide Web (www) representa la mayor implementación de un sistema conforme al estilo arquitectónico REST. Por estas razones los autores describen al término REST, como cualquier interfaz simple que se utiliza para la trasmisión de datos de un dominio específico a través del protocolo HTTP, sin requerir de capas externas como mensajería o seguimiento de sesión. Transferencia de estado representacional, fue desarrollado para que consuma menos software del lado del cliente, es decir un navegador estándar puede acceder a cualquier aplicación y a sus recursos de datos.
  • 3. Overview La transferencia de estado representacional o Representational State Transfer (REST), es una técnica arquitectónica para el diseño de aplicaciones en la red. Dicho término se originó por el Doctor Roy Fielding en el año 2000, mediante su tesis doctoral Estilos Arquitecturales y el Diseño de Arquitecturas de Software basadas en Red, en el cual definió REST como un enfoque para desarrollar servicios web, y para describir los principios de redes que caracteriza la World Wide Web. Rest fue ganando espacio en la web como una opción más simple a SOAP (Simple Object Access Protocol) y a los servicios Web basados en el lenguaje de descripción de servicios web WSDL. El impacto de rest fue demasiado grande que logró desplazar a SOAP y a interfaces basadas en WSDL, por su manera fácil de utilizar. Rest es orientado a recursos, más no a métodos. Objetivos Dentro de esta arquitectura se tiene varios objetivos que deben ser cumplidos.  Escalabilidad de los componentes de interacción:  Generalidad de interfaces: cualquier cliente puede interactuar con algún servidor http, sin que se haga una configuración.  Puesta en funcionamiento independiente: los servidores antiguos o viejos tienen que ser capaces de entenderse con cliente nuevo y viceversa.  Compatibilidad con componentes intermedios: permite reducir la latencia de interacción y mejorar la seguridad. Elementos de la Arquitectura REST Elementos de datos Rest define varios principios arquitectónicos o características por los que se diseñan los servicios web, se clasifican en:
  • 4. Identificación de recursos Todo recurso es identificado de manera única como en HTTP, que es un protocolo que se basa en URIs (Uniform Resource Identifier), ésto es lo que permite identificar un recurso. Un recurso es considerado como una entidad que representa un concepto de negocio que puede ser accedido de manera pública, éste posee un estado interno que no puede ser accedido desde el exterior, a lo que se puede acceder es a las representaciones (xml, json, rdf), dicha de otra manera se puede acceder al formato de datos que contenga este estado, para la fácil transferencia entre el cliente y el servidor. Manipulación de recursos Todos los recursos comparten una interfaz uniforme formada por un conjunto de operaciones, éstas nos permiten manipular el estado público de un recurso. Los métodos más importantes de http son:  Get: Obtener la representación de un recurso.(read)  Post: Crear un nuevo recurso (create)  Put: Actualizar un recurso (update)  Delete: eliminar un recurso.(delete) Éstos suelen ser confundidos con las operaciones de Base de Datos, CRUD: create, read, update, delete. Ya que se dice que rest es crud, implementado en la web. Metadatos para describir nuevos recursos Varios de los recursos de los que se habla, tienen diversos formatos, entre ellos,html, xml, pdf, json, rdf entre otros. Comunicación sin estado: Rest exige que el estado sea transformado en estado del recurso lógico o físico, y sea mantenido en el cliente. El servidor no debe guardar el estado de la comunicación que tiene con cualquiera de los clientes en cada una de sus peticiones. A esta razón se la llama escalabilidad, ya que el número de clientes que se comunican o interactúan con el servidor estaría afectado profundamente si, se tuviera que mantener el estado del cliente. Conector Es un mecanismo en el que se hace posible la comunicación y coordinación entre componentes, éste no tiene que almacenar cualquier información del estado, esta comunicación puede ser en paralelo.
  • 5.  Cliente /servidor: Es el que inicia la comunicación a través de una petición, mientras que el servidor es el que responde a dichas peticiones para dar acceso a los usuarios.  Cache: Puede ser utilizado por un cliente para evitar que la comunicación de red, está repetida, o por un servidor para evitar la repetición del proceso que genera una respuesta Componentes Producen un conjunto de métodos definidos en los recursos, para así capturar el estado actual, de dicho recurso. Estos componentes se clasifican en:  Agente usuario: usa un conector de tipo cliente, para poder iniciar la petición y ser el receptor de la misma.  Servidor: usa un conector de tipo servidor, que realiza la representación de sus recursos y debe ser el último receptor de las peticiones, en las que se solicite modificar valores de los recursos de la misma.  Gateway: es un sistema intermedio que lo proporciona la red, se lo usa para dar el mejor funcionamiento y seguridad a la transmisión de datos.  Proxy: es un sistema intermedio que el cliente lo selecciona, para cumplir con la encapsulación de la interfaz de otros servicios, y también para dar mejor funcionamiento y seguridad a la transmisión de datos. La diferencia entre Gateway y Proxy, es que el cliente es el encargado de ver cuándo va a usar un proxy. Restricciones de la Arquitectura Rest Para poder llevar a cabo los objetivos antes mencionados, se debe cumplir con las siguientes restricciones. Cliente / Servidor: Este promueve dos componente, la lógica de negocios que es parte del Servidor y la lógica de presentación a cargo del cliente; esto permite que las modificaciones se hagan de manera independiente en la capa de presentación, no puede afectar la lógica de negocio. Sin estado (Stateless) Estos servicios web no mantienen estado asociado a un cliente, por lo que cada petición que se realiza es independientemente de la siguiente petición.
  • 6. Cacheable: Es decir que cuando se realiza un a petición al servidor, el resto de peticiones pueden hacer uso de las de la cache, si lo necesitan. Interfaz uniforme Dicha interfaz está diseñada para tener el trabajo eficiente en cuanto a transferencias de datos de hipermedios, ya que está optimizando para la mayor parte de la Web. Sistemas de capas. Permiten mejorar la conducta de la escalabilidad en internet, permitiendo tener una arquitectura con componentes separados, esto para poder limitar el comportamiento de diversos componentes, ya que se puede ver o modificar el contenido de una capa, sin afectar a la otra. Código bajo demanda Esta restricción es opcional, ya que permite a los clientes poder descargar el y ejecutar el código fuente a manera de scripts o applets. También posee una desventaja que es que reduce la visibilidad y puede influir en la seguridad del sistema Rest y XML Rest como está orientado a los sistemas distribuidos de hipermedia, tiene la necesidad de crear sus representaciones a partir de recursos como lo son videos, sonidos, html, etc., Para esto en sus comienzos apostó por XML, como una de las soluciones para la codificación de representaciones que pueden ser codificadas o no están estandarizadas. XSLT con REST XSLT es un lenguaje de estilo utilizado para transformar documentos XML en documentos XHTML o de otros documentos basados en texto. A Través la combinación de la interfaz REST con XSLT, es posible construir formas respectivamente simples para recuperar datos XML desde el servicio web y presentarlos en el navegador usando HTML.
  • 7. Construcción de la XSLT Existen dos pasos para inicializar los datos XML utilizando REST y XLST, el primer consiste en la construcción del archivo XLST, que prácticamente permite convertir los datos del XML en otro formato como HTML. La segunda forma consiste en la recuperación de los datos desde el servidor web y la aplicación. Ejemplo: <Font face = "Arial, Helvetica, sans-serif" size = "2"> Identificador Único: <xsl: value-of select = "@ uid" /> <br/> </ font> <Font face = "Arial, Helvetica, sans-serif" size = "2"> Elemento Code: <xsl: value- of select = "@ speciesCode" /> <br/> </ font> <Font face = "Arial, Helvetica, sans-serif" size = "2"> Taxonomía informal: <Xsl: for-each select = "// ns: taxonomyName"> <Xsl: if test = "! Posición () = 1"> <Xsl: text> - </ xsl: text> </ Xsl: if> <Xsl: value-of select = "@ nombre" /> </ Xsl: for-each> </ Font> Representación de la salida El procesamiento de XSLT no es más que XSLT + XML que da como resultado la salida del documento. Una vez visto como construir un XSLT, ahora se tratará de ver cómo recuperar el documento XML desde el servidor web, utilizando la interfaz basada en REST. Los parámetros ingresan en la interfaz establecida en REST, en la misma forma que está en la página web o también se puede añadir al final de la URL o al inicio de la cabecera http un POST. Una vez que los dos parámetros se rellenan, la URL a continuación, se puede enviar mediante programación o simplemente ingresando en el navegador donde se puede observar los datos.
  • 8. Tecnología y/o Framework Tecnología Descripción Ruby on Rails Este framework ofrece el módulo Active Resource, que proporciona la infraestructura necesaria para crear de manera sencilla recursos REST, el cual está presente en las últimas versiones, desplazando a otros modelos como SOAP. .NET .NET permite el consumo del api de Bing Maps Servicios REST. Estos son un conjunto de servicios web REST full que permiten la recolección de recursos a través de una url y de los métodos get y post de http. Este enfoque se utiliza en tecnologías de Windows Store y Windows Presentation Foundation (WPF). Blogsfera (blogs) Los blogs están basados en REST, dado que implica descargar ficheros XML (en formato RSS o Atom) que contienen listas de enlaces a otros recursos. Amazon Simple Storage Service (Amazon S3) Ofrece su api REST a sus desarrolladores para que hagan uso de su servicio web que permite almacenar datos en la nube. Describe las diversas operaciones como: petición y respuesta estructuras relacionadas, y códigos de error. "Seniors Canada On- line" El gobierno de Canadá ofrece una interfaz REST, la cual proporcionar información amalgamada para los jubilados de todos los niveles de gobierno. “La aplicaciónREST comparte su base de datos y aplicación de la lógica con el sitio web HTML, por lo que la parte XML es sólo una vista fina escrita en la parte superior de todo lo que, en paralelo con la vista HTML” (David Megginson, 2005). Bloglines Actúa como una caché de RSS, resolviendo así el problema de ancho de banda RSS. El Bloglines Web Services se puede utilizar para desarrollar notificadores más avanzados. Yahoo Developed Yahoo ofrece un API en REST a los desarrolladores, con la finalidad de desarrollar y optimizar sus aplicaciones (PlaceFinder, Flickr, Tumblr, etc.).
  • 9. WCF Data Services 4.5 de Microsoft Es un componente de .NET para crear servicios que utilizan el protocolo de datos abierto (OData), el que permite consumir datos a través de Internet o intranet, a través del uso de transferencia de estado representacional (REST). Estos datos abiertos exponen los datos como recursos que son direccionables por URI. Los cuales acceden a los datos y cambiar utilizando los verbos HTTP estándar de GET, PUT, POST y DELETE. Restlet - java Es un marco de la API REST web líder para Java. Su API de Java está disponible en ambos lados de cliente y servidor, en seis ediciones compatibles: Java SE, Java EE, Android, GAE, GWT y OSGi. Django REST Contiene un gran conjunto de herramientas de gran alcance y hace que sea flexible y fácil de con construir APIs Web. Para poder hacer uso de este framework, se requiere de lo siguiente:  Python  Django Zend Framework Es un Framework que ofrece capacidades de cliente y servidor. El componente del servidor posee funciones y clases que utilizan un significativo y sencillo formato XML, es decir al momentos que se accede a estos servicios a través del cliente, es posible recuperar fácilmente los datos de retorno de la llamada remota. El servicio del servidor es Zend_Rest_Server y el del cliente Zend_Rest_Client_Response. Slim Este micro framework de PHP permite y ayuda a la creación rápida de aplicaciones web (RESt) simple pero poderosa. Permite desde el router asociar cierto pedido HTTP con funciones anónimas. Bullet PHP Micro- Framework Es un micro framework con PHP, que permite crear con facilidad api RESt y aplicaciones web, que cumplen con los requisitos especificos de http. Este es un recurso orientado a URI que viene pre-cargado con las funciones de HTTP. Maneja un segmento a la ruta de acceso a la vez, y ejecuta la devolución de llamada antes de procesar el siguiente segmento. Limonade Es un micro marco de PHP para la creación de aplicaciones web, de manera rápida y sencilla. Su principal objetivo es
  • 10. ser simple, ligero y extremadamente flexible para los desarrolladores. Limonade es sumamente fácil de aprender y utilizar, le ofrece al desarrollador todo lo que se puede usar en marco moderno REST. Fat-Free Framework Es de uso gratuito y ayuda a que la creación de un sitio web sea fácil, posee el mismo poder y variedad que otros herramientas y librerías como Javascript. Facilita la escritura en programas PHP, dando un mejor aspecto, resultando mucho más fácil de entender el código del programa, obteniendo muy bueno resultados. Silex Es un framework PHP, está construida sobre Symfony2 y Pimple e inspirado por Sinatra. Ofrece la construcción de aplicaciones web de un solo archivo simple. Pretende ser:  Conciso: exponiendo una API intuitiva y concisa.  Extensible: posee un sistema de extensión en torno a micro-servicio con la finalidad de enlazar las bibliotecas de terceros.  Comprobable: utiliza Symfony2 de HttpKernel para la petición y respuesta. Además respeta la especificación HTTP. Phalcon “Nuestra misión es darle una herramienta avanzada para el desarrollo de sitios web y aplicaciones sin tener que preocuparse por el rendimiento marco” (Phalcon, s.f.). Es de código abierto para PHP 5 con extensión C, optimizado para tener un alto rendimiento. Los desarrolladores no necesitan saber C, ya que la funcionalidad se presenta como clases PHP. Utiliza los métodos HTTP:  GETa recuperar y buscar datos  POST para agregar datos  PUT para actualizar los datos  DELETE para eliminar los datos
  • 11. Conclusiones  Rest es una técnica arquitectónica para producir entornos web, no es una especificacióno un estándar, se basa en ciertos objetivos que se los debe cumplir conjuntamente con las restricciones para que todo salga a la perfección.  La arquitectura de Transferencia de Estado Representacional (REST) es una técnica muy utilizada actualmente en el desarrollo de aplicaciones web, debido a que posee las operaciones del protocolo HTTP, es fácil de utilizar y completa.  La arquitectura por capas permite reducir el riesgo de daño al momento de modificar algún bloque, ya que afecta sólo a la capa en donde modifica  Al aplicar la restricción de Cache, se reduce el tiempo de espera de las interacciones, ya que mejoran la eficiencia y escalabilidad.  En la actualidad esta técnica (REST) para el desarrollo web, posee una gran variedad de Frameworks disponibles para poder utilizarla, los mismos que permiten que la construcción de sistemas web sea fácil, novedoso, y completo.
  • 12. Bibliografía Rusell, Kay (2007). Representational State Transfer (REST). Recuperado el 15/11/2014, de Computerworld. Sitio web: http://www.computerworld.com/article/2552929/networking/representational- state-transfer--rest-.html s.a (s.f). REPRESENTATIONAL STATE TRANSFER: REST. Recuperado el 15/11/2014 desde Internet: http://bibing.us.es/proyectos/abreproy/11247/fichero/Memoria%252F8- Representational+State+Transfer+(REST).pdf Amazon. (2006). REST API. Recuperado el 15/11/2014, de Amazon. Sitio web: http://docs.aws.amazon.com/AmazonS3/latest/API/APIRest.html Microsoft developer Network. (s.f.). Using the REST Services with .NET. Recuperado el 15/11/2014, de Microsoft. Sitio web: http://msdn.microsoft.com/en-us/library/jj819168.aspx Bloglines. (s.f.). Servicios Bloglines. Recuperado el 15/11/2014, de Bloglines Sitio web: http://www.bloglines.com/services/ Megginson, D. (2005). Grandes, de aplicación REST público: Mayores de Canadá en línea. Recuperado el 15/11/2014, de Quoderat. Sitio web: http://quoderat.megginson.com/2005/03/09/public-rest-application-seniors- canada-online/ Microsoft developer Network. . (s.f.). WCF Data Services 4.5. Recuperado el 15/11/2014, de Microsoft Sitio web: http://msdn.microsoft.com/en- us/library/cc668792.aspx Wikipedia. (2014). Ruby on Rails. Recuperado el 15/11/2014, de Wikipedia Sitio web: http://es.wikipedia.org/wiki/Ruby_on_Rails Restlet. (s.f.). The Leading Web API Platform for Java. Recuperado el 15/11/2014, de Restlet Sitio web: http://restlet.com/ Bullet. (2012). Bullet PHP Micro-Framework. Recuperado el 15/11/2014, de Bullet Sitio web: http://bulletphp.com/ Slim. (2012). Slim. Recuperado el 15/11/2014, de Slimframework Sitio web: http://www.slimframework.com/ Django. (s.f.). Django Rest Framework. Recuperado el 15/11/2014, de Django Rest. Sitio web: http://www.slimframework.com/