SlideShare una empresa de Scribd logo
 Integrantes: o Lizzette Betancourt o Robert Caraguay  Tutor: o Ing. Luis Jumbo  Fecha: o 17 / 11/ 2014  Componente: o Arquitectura de Aplicaciones OCTUBRE 2014 – FEBRERO 2015 Universidad Técnica Particular de Loja REST Representational State Transfe
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ón REST 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ón o 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/

Más contenido relacionado

La actualidad más candente

Rabbitmq
RabbitmqRabbitmq
Ejercicios directorios de Linux
Ejercicios directorios de LinuxEjercicios directorios de Linux
Ejercicios directorios de Linux
PANAFMX
 
[열린기술공방] Container기반의 DevOps - 클라우드 네이티브
[열린기술공방] Container기반의 DevOps - 클라우드 네이티브[열린기술공방] Container기반의 DevOps - 클라우드 네이티브
[열린기술공방] Container기반의 DevOps - 클라우드 네이티브
Open Source Consulting
 
¿Qué es docker?
¿Qué es docker?¿Qué es docker?
¿Qué es docker?
Diego Gabriel Calbo Elizondo
 
Prolog file
Prolog fileProlog file
Azure notification hubs
Azure notification hubsAzure notification hubs
Azure notification hubs
Dinusha Kumarasiri
 
Role based access control
Role based access controlRole based access control
Role based access control
Peter Edwards
 
Data power use cases
Data power use casesData power use cases
Data power use cases
sflynn073
 
Introduction to Docker
Introduction to DockerIntroduction to Docker
Introduction to Docker
Pubudu Jayawardana
 
DataPower Restful API Security
DataPower Restful API SecurityDataPower Restful API Security
DataPower Restful API Security
Jagadish Vemugunta
 
Introducción a los contenedores Docker
Introducción a los contenedores DockerIntroducción a los contenedores Docker
Introducción a los contenedores Docker
Carlos E. Vasquez P.
 
Exposición Sistemas operativos
Exposición Sistemas operativosExposición Sistemas operativos
Exposición Sistemas operativos
leobijildopanci
 
Solaris
SolarisSolaris
Solaris
Cesar Leonel
 
Html4
Html4Html4
HCL Sametime 12.0 on Docker - Step-By-Step.pdf
HCL Sametime 12.0 on Docker - Step-By-Step.pdf HCL Sametime 12.0 on Docker - Step-By-Step.pdf
HCL Sametime 12.0 on Docker - Step-By-Step.pdf
Ales Lichtenberg
 
Microsoft Exchange Technology Overview
Microsoft Exchange Technology OverviewMicrosoft Exchange Technology Overview
Microsoft Exchange Technology Overview
Mike Pruett
 
PROYECTO DE MIGRACIÓN A SOFTWARE LIBRE PARA EL CUMPLIMIENTO DEL DECRETO Nº 33...
PROYECTO DE MIGRACIÓN A SOFTWARE LIBRE PARA EL CUMPLIMIENTO DEL DECRETO Nº 33...PROYECTO DE MIGRACIÓN A SOFTWARE LIBRE PARA EL CUMPLIMIENTO DEL DECRETO Nº 33...
PROYECTO DE MIGRACIÓN A SOFTWARE LIBRE PARA EL CUMPLIMIENTO DEL DECRETO Nº 33...
Universidad de Los Andes / Instituto de Altos Estudios en Salud Dr. Arnoldo Gabaldón /MPPS
 
Introduction to openshift
Introduction to openshiftIntroduction to openshift
Introduction to openshift
MamathaBusi
 
Cliente web y servidor web
Cliente web y servidor webCliente web y servidor web
Cliente web y servidor web
Chamakito Edwinshito Cruz Guevara
 
Get started with Windows AutoPilot Deployment
Get started  with Windows AutoPilot DeploymentGet started  with Windows AutoPilot Deployment
Get started with Windows AutoPilot Deployment
Microsoft
 

La actualidad más candente (20)

Rabbitmq
RabbitmqRabbitmq
Rabbitmq
 
Ejercicios directorios de Linux
Ejercicios directorios de LinuxEjercicios directorios de Linux
Ejercicios directorios de Linux
 
[열린기술공방] Container기반의 DevOps - 클라우드 네이티브
[열린기술공방] Container기반의 DevOps - 클라우드 네이티브[열린기술공방] Container기반의 DevOps - 클라우드 네이티브
[열린기술공방] Container기반의 DevOps - 클라우드 네이티브
 
¿Qué es docker?
¿Qué es docker?¿Qué es docker?
¿Qué es docker?
 
Prolog file
Prolog fileProlog file
Prolog file
 
Azure notification hubs
Azure notification hubsAzure notification hubs
Azure notification hubs
 
Role based access control
Role based access controlRole based access control
Role based access control
 
Data power use cases
Data power use casesData power use cases
Data power use cases
 
Introduction to Docker
Introduction to DockerIntroduction to Docker
Introduction to Docker
 
DataPower Restful API Security
DataPower Restful API SecurityDataPower Restful API Security
DataPower Restful API Security
 
Introducción a los contenedores Docker
Introducción a los contenedores DockerIntroducción a los contenedores Docker
Introducción a los contenedores Docker
 
Exposición Sistemas operativos
Exposición Sistemas operativosExposición Sistemas operativos
Exposición Sistemas operativos
 
Solaris
SolarisSolaris
Solaris
 
Html4
Html4Html4
Html4
 
HCL Sametime 12.0 on Docker - Step-By-Step.pdf
HCL Sametime 12.0 on Docker - Step-By-Step.pdf HCL Sametime 12.0 on Docker - Step-By-Step.pdf
HCL Sametime 12.0 on Docker - Step-By-Step.pdf
 
Microsoft Exchange Technology Overview
Microsoft Exchange Technology OverviewMicrosoft Exchange Technology Overview
Microsoft Exchange Technology Overview
 
PROYECTO DE MIGRACIÓN A SOFTWARE LIBRE PARA EL CUMPLIMIENTO DEL DECRETO Nº 33...
PROYECTO DE MIGRACIÓN A SOFTWARE LIBRE PARA EL CUMPLIMIENTO DEL DECRETO Nº 33...PROYECTO DE MIGRACIÓN A SOFTWARE LIBRE PARA EL CUMPLIMIENTO DEL DECRETO Nº 33...
PROYECTO DE MIGRACIÓN A SOFTWARE LIBRE PARA EL CUMPLIMIENTO DEL DECRETO Nº 33...
 
Introduction to openshift
Introduction to openshiftIntroduction to openshift
Introduction to openshift
 
Cliente web y servidor web
Cliente web y servidor webCliente web y servidor web
Cliente web y servidor web
 
Get started with Windows AutoPilot Deployment
Get started  with Windows AutoPilot DeploymentGet started  with Windows AutoPilot Deployment
Get started with Windows AutoPilot Deployment
 

Similar a RES - Transferencia de Estado Representacional

REST
RESTREST
Arquitectura Rest
Arquitectura RestArquitectura Rest
Arquitectura Rest
Israel Rey
 
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
XavierNavia
 
Java2 servicios web
Java2 servicios webJava2 servicios web
Java2 servicios web
Pablo Andres Cáceres Ferreira
 
Paper ieee
Paper ieeePaper ieee
Paper ieee
Victor Samaniego
 
Web services
Web servicesWeb services
Web services
Mariana Barreto
 
Web services
Web servicesWeb services
Web services
jam c
 
Scom5 Ws Ii
Scom5 Ws IiScom5 Ws Ii
Scom5 Ws Ii
Joaquín Salvachúa
 
23444719 monografia-de-web-services
23444719 monografia-de-web-services23444719 monografia-de-web-services
23444719 monografia-de-web-services
casper088
 
Rest vswebservices
Rest vswebservicesRest vswebservices
Rest vswebservices
mahumadas
 
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
OpenWebinars.net
 
ingenieria web.pptx
ingenieria web.pptxingenieria web.pptx
ingenieria web.pptx
medina2966
 
Servicios web
Servicios webServicios web
Servicios Web
Servicios WebServicios Web
Servicios Web
Rene Guaman-Quinche
 
Servicios WEB
Servicios WEBServicios WEB
Servicios WEB
Eliza Juarez
 
Web Services
Web ServicesWeb Services
Web Services
Web ServicesWeb Services
Arquitectura Web
Arquitectura WebArquitectura Web
Arquitectura Web
lissette_torrealba
 
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
ballesterosymendoza
 
T final modulo_1
T final modulo_1T final modulo_1
T final modulo_1
José Martín Cesca
 

Similar a RES - Transferencia de Estado Representacional (20)

REST
RESTREST
REST
 
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
 
Java2 servicios web
Java2 servicios webJava2 servicios web
Java2 servicios web
 
Paper ieee
Paper ieeePaper ieee
Paper ieee
 
Web services
Web servicesWeb services
Web services
 
Web services
Web servicesWeb services
Web services
 
Scom5 Ws Ii
Scom5 Ws IiScom5 Ws Ii
Scom5 Ws Ii
 
23444719 monografia-de-web-services
23444719 monografia-de-web-services23444719 monografia-de-web-services
23444719 monografia-de-web-services
 
Rest vswebservices
Rest vswebservicesRest vswebservices
Rest vswebservices
 
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
 
ingenieria web.pptx
ingenieria web.pptxingenieria web.pptx
ingenieria web.pptx
 
Servicios web
Servicios webServicios web
Servicios web
 
Servicios Web
Servicios WebServicios Web
Servicios Web
 
Servicios WEB
Servicios WEBServicios WEB
Servicios WEB
 
Web Services
Web ServicesWeb Services
Web Services
 
Web Services
Web ServicesWeb Services
Web Services
 
Arquitectura Web
Arquitectura WebArquitectura Web
Arquitectura 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
 
T final modulo_1
T final modulo_1T final modulo_1
T final modulo_1
 

Más de Robert Caraguay

Qué es una organización
Qué es una organizaciónQué es una organización
Qué es una organización
Robert Caraguay
 
La Responsabilidad Social frente a otras teorías
La Responsabilidad Social frente a otras teoríasLa Responsabilidad Social frente a otras teorías
La Responsabilidad Social frente a otras teorías
Robert Caraguay
 
Responsabilidad Social en América Latina y el Ecuador
Responsabilidad Social en América Latina y el EcuadorResponsabilidad Social en América Latina y el Ecuador
Responsabilidad Social en América Latina y el Ecuador
Robert Caraguay
 
La RSE y su evolución en América Latina
La RSE y su evolución en América LatinaLa RSE y su evolución en América Latina
La RSE y su evolución en América Latina
Robert Caraguay
 
Empresas y Desarrollo humano
Empresas y Desarrollo humanoEmpresas y Desarrollo humano
Empresas y Desarrollo humano
Robert Caraguay
 
RESPONSABILIDAD SOCIAL EMPRESARIAL ESTRATÉGICA
RESPONSABILIDAD SOCIAL EMPRESARIAL ESTRATÉGICARESPONSABILIDAD SOCIAL EMPRESARIAL ESTRATÉGICA
RESPONSABILIDAD SOCIAL EMPRESARIAL ESTRATÉGICA
Robert Caraguay
 
Logística con Responsabilidad Social (LRS)
Logística con Responsabilidad Social (LRS)Logística con Responsabilidad Social (LRS)
Logística con Responsabilidad Social (LRS)
Robert Caraguay
 
LA LÓGICA DE LA RESPONSABILIDAD CORPORATIVA EN EL BUEN GOBIERNO - RSE
LA LÓGICA DE LA RESPONSABILIDAD CORPORATIVA EN EL BUEN GOBIERNO - RSELA LÓGICA DE LA RESPONSABILIDAD CORPORATIVA EN EL BUEN GOBIERNO - RSE
LA LÓGICA DE LA RESPONSABILIDAD CORPORATIVA EN EL BUEN GOBIERNO - RSE
Robert Caraguay
 
Comercio Justo-RSE
Comercio Justo-RSEComercio Justo-RSE
Comercio Justo-RSE
Robert Caraguay
 
¿Profesor TIC o profesor TAC?
¿Profesor TIC o profesor TAC?¿Profesor TIC o profesor TAC?
¿Profesor TIC o profesor TAC?
Robert Caraguay
 
REQUERIMIENTOS NO FUNCIONALES
REQUERIMIENTOS NO FUNCIONALESREQUERIMIENTOS NO FUNCIONALES
REQUERIMIENTOS NO FUNCIONALES
Robert Caraguay
 
Style case use - estilos de casos de uso
Style case use - estilos de casos de usoStyle case use - estilos de casos de uso
Style case use - estilos de casos de uso
Robert Caraguay
 
Casos de uso del negocio
Casos de uso del negocioCasos de uso del negocio
Casos de uso del negocio
Robert Caraguay
 
Diagrama contexto
Diagrama contexto Diagrama contexto
Diagrama contexto
Robert Caraguay
 
Artefactos arquitectonicos - GTI
Artefactos arquitectonicos - GTIArtefactos arquitectonicos - GTI
Artefactos arquitectonicos - GTI
Robert Caraguay
 
Crear wbs para proyectos de software
Crear wbs para proyectos de softwareCrear wbs para proyectos de software
Crear wbs para proyectos de software
Robert Caraguay
 
Sistemas (Modos) de Producción Económicos
Sistemas (Modos) de Producción EconómicosSistemas (Modos) de Producción Económicos
Sistemas (Modos) de Producción Económicos
Robert Caraguay
 
Periodo del Militarismo Nacional o Urvinista
Periodo del Militarismo Nacional o UrvinistaPeriodo del Militarismo Nacional o Urvinista
Periodo del Militarismo Nacional o Urvinista
Robert Caraguay
 
Subestimación de Quito en la Gran Colombia
Subestimación de Quito en la Gran ColombiaSubestimación de Quito en la Gran Colombia
Subestimación de Quito en la Gran Colombia
Robert Caraguay
 
Leyes de Kirchhoff - Guía de problemas 3
Leyes de Kirchhoff - Guía de problemas 3Leyes de Kirchhoff - Guía de problemas 3
Leyes de Kirchhoff - Guía de problemas 3
Robert Caraguay
 

Más de Robert Caraguay (20)

Qué es una organización
Qué es una organizaciónQué es una organización
Qué es una organización
 
La Responsabilidad Social frente a otras teorías
La Responsabilidad Social frente a otras teoríasLa Responsabilidad Social frente a otras teorías
La Responsabilidad Social frente a otras teorías
 
Responsabilidad Social en América Latina y el Ecuador
Responsabilidad Social en América Latina y el EcuadorResponsabilidad Social en América Latina y el Ecuador
Responsabilidad Social en América Latina y el Ecuador
 
La RSE y su evolución en América Latina
La RSE y su evolución en América LatinaLa RSE y su evolución en América Latina
La RSE y su evolución en América Latina
 
Empresas y Desarrollo humano
Empresas y Desarrollo humanoEmpresas y Desarrollo humano
Empresas y Desarrollo humano
 
RESPONSABILIDAD SOCIAL EMPRESARIAL ESTRATÉGICA
RESPONSABILIDAD SOCIAL EMPRESARIAL ESTRATÉGICARESPONSABILIDAD SOCIAL EMPRESARIAL ESTRATÉGICA
RESPONSABILIDAD SOCIAL EMPRESARIAL ESTRATÉGICA
 
Logística con Responsabilidad Social (LRS)
Logística con Responsabilidad Social (LRS)Logística con Responsabilidad Social (LRS)
Logística con Responsabilidad Social (LRS)
 
LA LÓGICA DE LA RESPONSABILIDAD CORPORATIVA EN EL BUEN GOBIERNO - RSE
LA LÓGICA DE LA RESPONSABILIDAD CORPORATIVA EN EL BUEN GOBIERNO - RSELA LÓGICA DE LA RESPONSABILIDAD CORPORATIVA EN EL BUEN GOBIERNO - RSE
LA LÓGICA DE LA RESPONSABILIDAD CORPORATIVA EN EL BUEN GOBIERNO - RSE
 
Comercio Justo-RSE
Comercio Justo-RSEComercio Justo-RSE
Comercio Justo-RSE
 
¿Profesor TIC o profesor TAC?
¿Profesor TIC o profesor TAC?¿Profesor TIC o profesor TAC?
¿Profesor TIC o profesor TAC?
 
REQUERIMIENTOS NO FUNCIONALES
REQUERIMIENTOS NO FUNCIONALESREQUERIMIENTOS NO FUNCIONALES
REQUERIMIENTOS NO FUNCIONALES
 
Style case use - estilos de casos de uso
Style case use - estilos de casos de usoStyle case use - estilos de casos de uso
Style case use - estilos de casos de uso
 
Casos de uso del negocio
Casos de uso del negocioCasos de uso del negocio
Casos de uso del negocio
 
Diagrama contexto
Diagrama contexto Diagrama contexto
Diagrama contexto
 
Artefactos arquitectonicos - GTI
Artefactos arquitectonicos - GTIArtefactos arquitectonicos - GTI
Artefactos arquitectonicos - GTI
 
Crear wbs para proyectos de software
Crear wbs para proyectos de softwareCrear wbs para proyectos de software
Crear wbs para proyectos de software
 
Sistemas (Modos) de Producción Económicos
Sistemas (Modos) de Producción EconómicosSistemas (Modos) de Producción Económicos
Sistemas (Modos) de Producción Económicos
 
Periodo del Militarismo Nacional o Urvinista
Periodo del Militarismo Nacional o UrvinistaPeriodo del Militarismo Nacional o Urvinista
Periodo del Militarismo Nacional o Urvinista
 
Subestimación de Quito en la Gran Colombia
Subestimación de Quito en la Gran ColombiaSubestimación de Quito en la Gran Colombia
Subestimación de Quito en la Gran Colombia
 
Leyes de Kirchhoff - Guía de problemas 3
Leyes de Kirchhoff - Guía de problemas 3Leyes de Kirchhoff - Guía de problemas 3
Leyes de Kirchhoff - Guía de problemas 3
 

Último

APLICACIONES EN INTERNET-GOOGLE.20240pdf
APLICACIONES EN INTERNET-GOOGLE.20240pdfAPLICACIONES EN INTERNET-GOOGLE.20240pdf
APLICACIONES EN INTERNET-GOOGLE.20240pdf
jordanovillacorta09
 
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...
micarnavaltupatrimon
 
DuckDuckGo (Motor de Busqueda) - JRM - APSTI I A
DuckDuckGo (Motor de Busqueda) -  JRM - APSTI I ADuckDuckGo (Motor de Busqueda) -  JRM - APSTI I A
DuckDuckGo (Motor de Busqueda) - JRM - APSTI I A
DarnotOcxalFlorianoP
 
Casos de éxito en Negocios online: Estrategias WPO que funcionan - Presentac...
Casos de éxito en Negocios online: Estrategias WPO que funcionan - Presentac...Casos de éxito en Negocios online: Estrategias WPO que funcionan - Presentac...
Casos de éxito en Negocios online: Estrategias WPO que funcionan - Presentac...
Javier Martinez Seco
 
DIAPOSITIVA DE LA MEMORIA RAM.PPXT.-MARIATRUJILLO.
DIAPOSITIVA DE LA MEMORIA RAM.PPXT.-MARIATRUJILLO.DIAPOSITIVA DE LA MEMORIA RAM.PPXT.-MARIATRUJILLO.
DIAPOSITIVA DE LA MEMORIA RAM.PPXT.-MARIATRUJILLO.
Maria Celeste Trujillo Cruz
 
sesión 8 tipos de componentes SMD SOFTWARE
sesión 8 tipos de componentes SMD SOFTWAREsesión 8 tipos de componentes SMD SOFTWARE
sesión 8 tipos de componentes SMD SOFTWARE
YanelyMedalithBM
 
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...
micarnavaltupatrimon
 
Introduccion al Lenguaje de Programación C++
Introduccion al Lenguaje de Programación  C++Introduccion al Lenguaje de Programación  C++
Introduccion al Lenguaje de Programación C++
PaulDelgadoSoto
 
TARJETA MADRE DE DAYRON FABRI RUIZ-1.pptx
TARJETA MADRE DE DAYRON FABRI RUIZ-1.pptxTARJETA MADRE DE DAYRON FABRI RUIZ-1.pptx
TARJETA MADRE DE DAYRON FABRI RUIZ-1.pptx
dayronfabricioruizmo
 
herramientaswebpdfwww.edu.pe.edu.institutoluisevalcarcel
herramientaswebpdfwww.edu.pe.edu.institutoluisevalcarcelherramientaswebpdfwww.edu.pe.edu.institutoluisevalcarcel
herramientaswebpdfwww.edu.pe.edu.institutoluisevalcarcel
Eduardo455921
 

Último (10)

APLICACIONES EN INTERNET-GOOGLE.20240pdf
APLICACIONES EN INTERNET-GOOGLE.20240pdfAPLICACIONES EN INTERNET-GOOGLE.20240pdf
APLICACIONES EN INTERNET-GOOGLE.20240pdf
 
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...
 
DuckDuckGo (Motor de Busqueda) - JRM - APSTI I A
DuckDuckGo (Motor de Busqueda) -  JRM - APSTI I ADuckDuckGo (Motor de Busqueda) -  JRM - APSTI I A
DuckDuckGo (Motor de Busqueda) - JRM - APSTI I A
 
Casos de éxito en Negocios online: Estrategias WPO que funcionan - Presentac...
Casos de éxito en Negocios online: Estrategias WPO que funcionan - Presentac...Casos de éxito en Negocios online: Estrategias WPO que funcionan - Presentac...
Casos de éxito en Negocios online: Estrategias WPO que funcionan - Presentac...
 
DIAPOSITIVA DE LA MEMORIA RAM.PPXT.-MARIATRUJILLO.
DIAPOSITIVA DE LA MEMORIA RAM.PPXT.-MARIATRUJILLO.DIAPOSITIVA DE LA MEMORIA RAM.PPXT.-MARIATRUJILLO.
DIAPOSITIVA DE LA MEMORIA RAM.PPXT.-MARIATRUJILLO.
 
sesión 8 tipos de componentes SMD SOFTWARE
sesión 8 tipos de componentes SMD SOFTWAREsesión 8 tipos de componentes SMD SOFTWARE
sesión 8 tipos de componentes SMD SOFTWARE
 
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...
Mi Carnaval, Aplicación web para la gestión del carnaval y la predicción basa...
 
Introduccion al Lenguaje de Programación C++
Introduccion al Lenguaje de Programación  C++Introduccion al Lenguaje de Programación  C++
Introduccion al Lenguaje de Programación C++
 
TARJETA MADRE DE DAYRON FABRI RUIZ-1.pptx
TARJETA MADRE DE DAYRON FABRI RUIZ-1.pptxTARJETA MADRE DE DAYRON FABRI RUIZ-1.pptx
TARJETA MADRE DE DAYRON FABRI RUIZ-1.pptx
 
herramientaswebpdfwww.edu.pe.edu.institutoluisevalcarcel
herramientaswebpdfwww.edu.pe.edu.institutoluisevalcarcelherramientaswebpdfwww.edu.pe.edu.institutoluisevalcarcel
herramientaswebpdfwww.edu.pe.edu.institutoluisevalcarcel
 

RES - Transferencia de Estado Representacional

  • 1.  Integrantes: o Lizzette Betancourt o Robert Caraguay  Tutor: o Ing. Luis Jumbo  Fecha: o 17 / 11/ 2014  Componente: o Arquitectura de Aplicaciones OCTUBRE 2014 – FEBRERO 2015 Universidad Técnica Particular de Loja REST Representational State Transfe
  • 2. 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.
  • 3. 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.
  • 4. 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:
  • 5. 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.
  • 6.  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.
  • 7. 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.
  • 8. 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.
  • 9. 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ón REST 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.).
  • 10. 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
  • 11. 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
  • 12. Conclusiones  Rest es una técnica arquitectónica para producir entornos web, no es una especificación o 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.
  • 13. 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/