SlideShare una empresa de Scribd logo
1 de 8
INTRODUCCIÓN 
REST (Representational State Transfer), que en español significa Transferencia de estado 
representacional, es cualquier arquitectura de servicios distribuidos, como la web, REST es 
solo un estilo de arquitectura, aunque REST no es un estándar, está basado en estándares 
como: HTTP, URL, Representación de los recursos: XML/HTML/GIF/JPEG/ y Tipos 
MIME: text/xml, text/html. 
El estilo de arquitectura subyacente a la Web es el modelo REST, por lo cual Rest captura 
las características de la web que la han hecho tan exitosa. Los objetivos de este estilo de 
arquitectura son los siguientes: 
- Escalabilidad de la interacción con los componentes; una prueba de ellos es la 
variedad de clientes que pueden acceder a través de la Web. 
- Generalidad de interfaces. Gracias al protocolo HTTP, cualquier cliente puede 
interactuar con cualquier servidor HTTP sin ninguna configuración especial. 
- Compatibilidad con componentes intermedios, como tipos de proxys para Web, 
algunos de ellos, las caches; otros permiten reforzar las políticas de seguridad: 
firewalls. Y por último Gateway que permiten encapsular sistemas no propiamente 
Web. 
Rest es una familia de arquitecturas, cualquier arquitectura de servicios distribuidos que 
cumpla con una serie de requisitos se considera como una arquitectura REST. 
En una arquitectura REST, los servicios no publican un conjunto arbitrario de métodos u 
operaciones, lo que se publica son recursos y un recurso se puede considerar como una 
entidad que tiene un estado y un comportamiento, que puede ser accedido públicamente. 
Cada recurso, posee un identificador único y global, que lo distingue de otros, aunque 
ambos tuvieran exactamente los mismos datos. Cada recurso posee un estado interno, que 
no puede ser accedido directamente desde el exterior. 
Una representación de un recurso podría ser un documento XML con la información 
accesible de este, otra representación sería un documento HTML, o un JSON. 
En REST todos los recursos comparten una interfaz única y constante, y tienen las mismas 
operaciones, las cuales nos permiten manipular el estado público del recurso. 
En un sistema REST se pueden definir cuatro operaciones: 
CREATE.- El cliente envía una petición al servidor para crear un nuevo recurso. 
DELETE.- El cliente elimina un recurso del servidor. 
READ.- El cliente puede leer una representación del estado de un recurso.
UPDATE.- El cliente puede sobrescribir o grabar su copia del estado en el servidor, 
actualizando el estado del recurso. 
Estas operaciones se las puede realizar mediante los verbos (GET, POST, DELETE, 
PUT). 
HISTORIA 
REST fue introducido y definido en el año 2000 por Roy Thomas Fielding en su tesis 
doctoral en la Universidad de California en Irvine. (Capítulo 5 tesis doctoral, 2000). 
Todo esto comienza desde los inicios de internet, de hecho la web está armada en un 
estilo de arquitectura llamado REST. 
REST toma elementos de arquitecturas presentes en ese momento, algunas de las cuales 
siguen en plena vigencia (particularmente, arquitecturas cliente servidor). 
REST fue desarrollada de manera paralela a HTTP 1.0 y 1.1; las funcionalidades de 
REST y HTTP se concibieron apoyándose mutuamente y también sobre identificadores 
de recursos uniformes (URI). 
Cuando se desarrolló REST, su propósito era crear un modelo de arquitectura que 
indique como debería funcionar la Web. REST ha sido aplicado para describir la 
arquitectura Web deseada, ayudar a identificar problemas existentes, comparar 
soluciones alternativas, y asegurar que el protocolo no viole las restricciones que hacen 
que la Web funcione correctamente. 
REST ha ido evolucionando, pero posteriormente, se le ha ido dando forma para que 
encaje perfectamente en el mundo Web, usando las tecnologías existentes (URI, HTTP y 
XML), pero el uso de estas tecnologías, puede significar renunciar a parte de su esencia. 
Cuando Roy T. Fielding creó REST su disertación, perseguía unos objetivos muy 
concretos: 
• Escalabilidad de los componentes de interacción. 
• Generalidad de las interfaces. 
• Independencia en el desarrollo de componentes. 
• Sistemas intermedios para reducir el tiempo de interacción 
• Mejorar la seguridad, y encapsular los sistemas de herencia.
OVERVIEW 
La web, y el protocolo HTTP es una arquitectura REST. 
REST considera a toda información de la web como un recurso, ya sea un vídeo, archivos 
pdf, imágenes, texto plano, entre otros, los cuales tienen un identificador (URI). 
La interacción con los recursos se lleva a cabo mediante una interfaz uniforme de los 
verbos estándar HTTP (GET, POST, PUT y DELETE), que son similares a los métodos 
CRUD (Create, Read, Update, Delete) de una base de datos. 
Los recursos deben ser auto-descriptivo para procesar una solicitud de un recurso está 
contenido dentro de la misma petición y que dicha respuesta indicará también su 
almacenamiento en cache. 
Una de las características de REST es que se centra en la escalabilidad y rendimiento para 
los sistemas distribuidos. 
La diferencia con otras arquitecturas para la solicitud de información como SOAP es que 
no necesita de muchas operaciones para invocar un recurso. 
En la figura 1 se aprecia como SOAP necesita del WDSL (Lenguaje Descriptor de 
Servicios Web) para determinar una función que al final devuelva un recurso, en cambio 
REST solo con los métodos del protocolo HTTP solicita fácilmente el recurso. 
Fig 1. Diferencia entre SOAP y Rest
En resumen Rest cumple con las siguientes restricciones: 
Cliente-servidor.- Maneja la arquitectura Cliente-Servidor en donde la interfaz con el 
usuario y la lógica del negocio se encuentran separadas. 
Fig 2. Arquitectura cliente-servidor 
Sin estado.- No se llevará un registro de las transacciones tanto request y response, 
simplemente se transferirá la información. 
Fig 2. Modelo sin estado en donde no se lleva registro
Caché.- Las respuestas a una petición deben poder ser etiquetadas como cacheable o no 
cacheable. En caso de ser almacenado en caché el cliente tiene permiso de reutilizar la 
respuesta más tarde, siempre que la petición sea equivalente. 
Fig 3. Información guardada en caché 
Interfaz uniforme.- Para hacer eficiente la transferencia de datos, REST utiliza los verbos 
(GET, POST, DELETE, PUT); para manipular los recursos siempre y cuando tenga un 
identificador (URI). Además dicha peticiones deben contener el estado de la misma debido 
a que REST no se encarga de los estados. 
Sistema de capas.- REST maneja la escabilidad, para ello existe una jerarquía de capas, en 
donde cada cuenta con las funcionalidades, mejorando el procesamiento de la información. 
Fig 4. Sistemas por capas, cada una cumple su función
Tecnología y/o Framework 
Tecnología Descripción 
Tonic Es una librería para PHP para utilizar la 
técnica REST en el desarrollo de 
aplicaciones. 
FRAPI Framework para el desarrollo de aplicaciones 
que utilizaran REST en donde se utiliza el 
lenguaje de programación PHP. 
Jersey Es un framework que utiliza la API JAX-RS 
para crear servicios Web Rest en java. 
ASP.NET WEBAPI Framework para el desarrollo de los 
servicios Web que usan REST con el 
lenguaje C# 
Slim Un micro framework para construcción de 
aplicaciones Web. 
Apify Un framework similar a FRAPI, utiliza el php 
para el desarrollo de Servicios Web.
CONCLUSIONES 
 La web es un ejemplo perfecto de servicios distribuidos a nivel global totalmente 
interoperable, por lo tanto la web, y el protocolo HTTP es una arquitectura REST, 
porque se dedican a hacer GETs sobre URIs para obtener representaciones de las 
distintas páginas web. 
 Los servicios REST son mejores que SOAP, porque HTTP es un protocolo que 
sigue los principios REST, por lo tanto hacer servicios REST es algo que aprovecha 
toda la infraestructura de la web ya existente, es decir es usar el propio protocolo 
HTTP, los servicios REST tienen menor acoplamiento que los servicios basados en 
SOAP, aunque SOAP está ganando en cuanto a seguridad, enrutamiento y otros 
aspectos que no pueden ser direccionados con HTTP
BIBLIOGRAFÍA. 
“REPRESENTATIONAL STATE TRANSFER: REST”, (s.f.). Consultado el 15 de noviembre del 
2014. Recuperado de: http://bibing.us.es/proyectos/abreproy/11247/fichero/Memoria%252F8- 
Representational+State+Transfer+(REST).pdf 
Roy Thomas F. (2000) Architectural Styles and the Design of Network -based Software 
Architectures. University of California, Irvine. Recuperado de: 
http://www.ics.uci.edu/~fielding/pubs/dissertation/top.htm 
“RESTFUL API FRAMEWORKS EN PHP”, 3 de abril de 2012. Consultado el 15 de noviembre de 
2014. Recuperado de: http://qbit.com.mx/blog/2012/04/03/restful-api-frameworks-en-php/ 
http://www.adwe.es/general/colaboraciones/servicios-web-restful-con-http-parte-i-introduccion-y- 
bases-teoricas

Más contenido relacionado

La actualidad más candente

Administración de procesos en el S.O.
Administración de procesos en el S.O.Administración de procesos en el S.O.
Administración de procesos en el S.O.
Carlos Solano
 
Planificacion windows
Planificacion windowsPlanificacion windows
Planificacion windows
isack_500
 
Ejemplos de herramientas case más utilizadas
Ejemplos de herramientas case más utilizadasEjemplos de herramientas case más utilizadas
Ejemplos de herramientas case más utilizadas
Kenny Cash
 

La actualidad más candente (20)

Ventajas y desventajas de las bdoo
Ventajas y desventajas de las bdooVentajas y desventajas de las bdoo
Ventajas y desventajas de las bdoo
 
Manual de instalacion de Mongo db
Manual de instalacion de Mongo dbManual de instalacion de Mongo db
Manual de instalacion de Mongo db
 
PRESENTACIÓN RUP
PRESENTACIÓN RUPPRESENTACIÓN RUP
PRESENTACIÓN RUP
 
Administración de procesos en el S.O.
Administración de procesos en el S.O.Administración de procesos en el S.O.
Administración de procesos en el S.O.
 
Modelo evolutivo
Modelo evolutivoModelo evolutivo
Modelo evolutivo
 
Bases de datos orientadas a objetos
Bases de datos orientadas a objetosBases de datos orientadas a objetos
Bases de datos orientadas a objetos
 
Transaccion
TransaccionTransaccion
Transaccion
 
Planificacion windows
Planificacion windowsPlanificacion windows
Planificacion windows
 
Modelo SPICE
Modelo SPICEModelo SPICE
Modelo SPICE
 
Taller de Base de Datos - Unidad 6 SQL procedural
Taller de Base de Datos - Unidad 6 SQL proceduralTaller de Base de Datos - Unidad 6 SQL procedural
Taller de Base de Datos - Unidad 6 SQL procedural
 
Características sgbd
Características sgbdCaracterísticas sgbd
Características sgbd
 
Modelo GOMS
Modelo GOMSModelo GOMS
Modelo GOMS
 
Fichas tecnicas de software
Fichas tecnicas de softwareFichas tecnicas de software
Fichas tecnicas de software
 
Modelos de software ventajas y desventajas
Modelos de software ventajas y desventajasModelos de software ventajas y desventajas
Modelos de software ventajas y desventajas
 
Modelos o Ciclos de vida de software
Modelos o Ciclos de vida de softwareModelos o Ciclos de vida de software
Modelos o Ciclos de vida de software
 
Ejemplos de herramientas case más utilizadas
Ejemplos de herramientas case más utilizadasEjemplos de herramientas case más utilizadas
Ejemplos de herramientas case más utilizadas
 
UML
UMLUML
UML
 
Front end y Back-end
Front end y Back-end Front end y Back-end
Front end y Back-end
 
Areas donde implementamos los sistemas distribuidos
Areas donde implementamos los sistemas distribuidosAreas donde implementamos los sistemas distribuidos
Areas donde implementamos los sistemas distribuidos
 
Preparando el entorno de la base de datos Oracle 11g Administration I-Z052-03
Preparando el entorno de la base de datos Oracle 11g Administration I-Z052-03Preparando el entorno de la base de datos Oracle 11g Administration I-Z052-03
Preparando el entorno de la base de datos Oracle 11g Administration I-Z052-03
 

Destacado

REST, JERSEY & SOAP
REST, JERSEY & SOAPREST, JERSEY & SOAP
REST, JERSEY & SOAP
ea2014G3
 
Spicologia observacion
Spicologia observacionSpicologia observacion
Spicologia observacion
jennifer234
 
Ets y embarazo
Ets  y embarazo Ets  y embarazo
Ets y embarazo
Jessy
 

Destacado (20)

REST, JERSEY & SOAP
REST, JERSEY & SOAPREST, JERSEY & SOAP
REST, JERSEY & SOAP
 
Automatic API REST Droidcon
Automatic API REST DroidconAutomatic API REST Droidcon
Automatic API REST Droidcon
 
SEMINARIO: Servicios REST. Bases de la tecnología y soporte con Spring MVC
SEMINARIO: Servicios REST. Bases de la tecnología y soporte con Spring MVCSEMINARIO: Servicios REST. Bases de la tecnología y soporte con Spring MVC
SEMINARIO: Servicios REST. Bases de la tecnología y soporte con Spring MVC
 
Taller Android Party: Automatic API REST + Notificaciones PUSH
Taller Android Party: Automatic API REST + Notificaciones PUSHTaller Android Party: Automatic API REST + Notificaciones PUSH
Taller Android Party: Automatic API REST + Notificaciones PUSH
 
Introducción a REST - SymfonyVLC
Introducción a REST - SymfonyVLCIntroducción a REST - SymfonyVLC
Introducción a REST - SymfonyVLC
 
Cqrs api v2
Cqrs api v2Cqrs api v2
Cqrs api v2
 
Pousada na Praia do Santinho
Pousada na Praia do SantinhoPousada na Praia do Santinho
Pousada na Praia do Santinho
 
Requisitos de créditos jovenes (2)
Requisitos de créditos jovenes (2)Requisitos de créditos jovenes (2)
Requisitos de créditos jovenes (2)
 
A punto, presentado por Julian Garcia, www.apuntonorte.com
A punto, presentado por Julian Garcia, www.apuntonorte.comA punto, presentado por Julian Garcia, www.apuntonorte.com
A punto, presentado por Julian Garcia, www.apuntonorte.com
 
7 días para desintoxicarte de la tecnología
7 días para desintoxicarte de la tecnología7 días para desintoxicarte de la tecnología
7 días para desintoxicarte de la tecnología
 
Sustainability Report - 2005 - 2006
Sustainability Report - 2005 - 2006Sustainability Report - 2005 - 2006
Sustainability Report - 2005 - 2006
 
Revista Virtual "Lambayeque Exporta Ya",Edic. N°02, Junio 2012
Revista Virtual "Lambayeque Exporta Ya",Edic. N°02, Junio 2012Revista Virtual "Lambayeque Exporta Ya",Edic. N°02, Junio 2012
Revista Virtual "Lambayeque Exporta Ya",Edic. N°02, Junio 2012
 
Spicologia observacion
Spicologia observacionSpicologia observacion
Spicologia observacion
 
Colectivo Ornitológico Cigüeña Negra Actividades 2013
Colectivo Ornitológico Cigüeña Negra Actividades 2013 Colectivo Ornitológico Cigüeña Negra Actividades 2013
Colectivo Ornitológico Cigüeña Negra Actividades 2013
 
Hoja de vida
Hoja de vidaHoja de vida
Hoja de vida
 
VIA VAB-600 Springboard Linux BSP Development Guide
VIA VAB-600 Springboard Linux BSP Development GuideVIA VAB-600 Springboard Linux BSP Development Guide
VIA VAB-600 Springboard Linux BSP Development Guide
 
7 Myths About Email Marketing Timing [a WGM Infographic]
7 Myths About Email Marketing Timing [a WGM Infographic]7 Myths About Email Marketing Timing [a WGM Infographic]
7 Myths About Email Marketing Timing [a WGM Infographic]
 
Seda news october12-final
Seda news october12-finalSeda news october12-final
Seda news october12-final
 
Ets y embarazo
Ets  y embarazo Ets  y embarazo
Ets y embarazo
 
El manual de clase, un mundo por descubrir
El manual de clase, un mundo por descubrirEl manual de clase, un mundo por descubrir
El manual de clase, un mundo por descubrir
 

Similar a Arquitectura Rest

Presentación sobre el protocolo RESTAPI.
Presentación sobre el protocolo RESTAPI.Presentación sobre el protocolo RESTAPI.
Presentación sobre el protocolo RESTAPI.
JosdeJessQuintanaDaz
 

Similar a Arquitectura Rest (20)

RES - Transferencia de Estado Representacional
RES - Transferencia de Estado RepresentacionalRES - Transferencia de Estado Representacional
RES - Transferencia de Estado Representacional
 
Paper ieee
Paper ieeePaper ieee
Paper ieee
 
REST
RESTREST
REST
 
T final modulo_1
T final modulo_1T final modulo_1
T final modulo_1
 
Scom5 Ws Ii
Scom5 Ws IiScom5 Ws Ii
Scom5 Ws Ii
 
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
 
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
 
Rest vswebservices
Rest vswebservicesRest vswebservices
Rest vswebservices
 
Servicios web
Servicios webServicios web
Servicios web
 
10-Unidad 3: Diseños de Vista-3.2 Usos Web Services
10-Unidad 3: Diseños de Vista-3.2 Usos Web Services10-Unidad 3: Diseños de Vista-3.2 Usos Web Services
10-Unidad 3: Diseños de Vista-3.2 Usos Web Services
 
Ingeneria de software III
Ingeneria de software IIIIngeneria de software III
Ingeneria de software III
 
Ingeneria de software iii
Ingeneria de software iiiIngeneria de software iii
Ingeneria de software iii
 
Rest vswebservices
Rest vswebservicesRest vswebservices
Rest vswebservices
 
Web Services
Web ServicesWeb Services
Web Services
 
Web Services
Web ServicesWeb Services
Web Services
 
S7-DAW-2022S1.pptx
S7-DAW-2022S1.pptxS7-DAW-2022S1.pptx
S7-DAW-2022S1.pptx
 
S4-PD2-2.2. REST
S4-PD2-2.2. RESTS4-PD2-2.2. REST
S4-PD2-2.2. REST
 
Presentación sobre el protocolo RESTAPI.
Presentación sobre el protocolo RESTAPI.Presentación sobre el protocolo RESTAPI.
Presentación sobre el protocolo RESTAPI.
 
Web 2 pamela sanchez
Web 2 pamela sanchezWeb 2 pamela sanchez
Web 2 pamela sanchez
 
Servicios Web
Servicios WebServicios Web
Servicios Web
 

Más de Israel Rey

Más de Israel Rey (20)

Análisis de Procesos
Análisis de ProcesosAnálisis de Procesos
Análisis de Procesos
 
Construir un BSC
Construir un BSCConstruir un BSC
Construir un BSC
 
Caso CoE y Gobierno BPM
Caso CoE y Gobierno BPMCaso CoE y Gobierno BPM
Caso CoE y Gobierno BPM
 
Mejora Continua en Multifabrik
Mejora Continua en MultifabrikMejora Continua en Multifabrik
Mejora Continua en Multifabrik
 
Integración: Proceso siniestro de una aseguradora
Integración: Proceso siniestro de una aseguradoraIntegración: Proceso siniestro de una aseguradora
Integración: Proceso siniestro de una aseguradora
 
Aplicación de BPM para iniciativas Blockchain
Aplicación de BPM para iniciativas BlockchainAplicación de BPM para iniciativas Blockchain
Aplicación de BPM para iniciativas Blockchain
 
Análisis BPMS
Análisis BPMSAnálisis BPMS
Análisis BPMS
 
Decálogo de Beneficios Implantación BPM
Decálogo de Beneficios Implantación BPMDecálogo de Beneficios Implantación BPM
Decálogo de Beneficios Implantación BPM
 
Modelado DMN
Modelado DMNModelado DMN
Modelado DMN
 
Mapas cognitivos y Mapas causales para comprender el proceso de negocio
Mapas cognitivos y Mapas causales para comprender el proceso de negocioMapas cognitivos y Mapas causales para comprender el proceso de negocio
Mapas cognitivos y Mapas causales para comprender el proceso de negocio
 
Automatización e implementación de Procesos en un Motor BPM
Automatización e implementación de Procesos en un Motor BPMAutomatización e implementación de Procesos en un Motor BPM
Automatización e implementación de Procesos en un Motor BPM
 
Análisis de Procesos con Adonis
Análisis de Procesos con AdonisAnálisis de Procesos con Adonis
Análisis de Procesos con Adonis
 
Modelización y Análisis de Procesos bajo BPMN
Modelización y Análisis de Procesos bajo BPMNModelización y Análisis de Procesos bajo BPMN
Modelización y Análisis de Procesos bajo BPMN
 
Software testing
Software testingSoftware testing
Software testing
 
Instalación de Jmeter
Instalación de JmeterInstalación de Jmeter
Instalación de Jmeter
 
Qa Testing - Cucumber
Qa Testing - CucumberQa Testing - Cucumber
Qa Testing - Cucumber
 
Crear archivo war desde Jenkins
Crear archivo war desde JenkinsCrear archivo war desde Jenkins
Crear archivo war desde Jenkins
 
Crear war en jenkins
Crear war en jenkinsCrear war en jenkins
Crear war en jenkins
 
Innovación educativa enfocada a la acción tutorial
Innovación educativa enfocada a la acción tutorialInnovación educativa enfocada a la acción tutorial
Innovación educativa enfocada a la acción tutorial
 
Requerimientos de usuario y del sistema
Requerimientos de usuario y del sistemaRequerimientos de usuario y del sistema
Requerimientos de usuario y del sistema
 

Arquitectura Rest

  • 1. INTRODUCCIÓN REST (Representational State Transfer), que en español significa Transferencia de estado representacional, es cualquier arquitectura de servicios distribuidos, como la web, REST es solo un estilo de arquitectura, aunque REST no es un estándar, está basado en estándares como: HTTP, URL, Representación de los recursos: XML/HTML/GIF/JPEG/ y Tipos MIME: text/xml, text/html. El estilo de arquitectura subyacente a la Web es el modelo REST, por lo cual Rest captura las características de la web que la han hecho tan exitosa. Los objetivos de este estilo de arquitectura son los siguientes: - Escalabilidad de la interacción con los componentes; una prueba de ellos es la variedad de clientes que pueden acceder a través de la Web. - Generalidad de interfaces. Gracias al protocolo HTTP, cualquier cliente puede interactuar con cualquier servidor HTTP sin ninguna configuración especial. - Compatibilidad con componentes intermedios, como tipos de proxys para Web, algunos de ellos, las caches; otros permiten reforzar las políticas de seguridad: firewalls. Y por último Gateway que permiten encapsular sistemas no propiamente Web. Rest es una familia de arquitecturas, cualquier arquitectura de servicios distribuidos que cumpla con una serie de requisitos se considera como una arquitectura REST. En una arquitectura REST, los servicios no publican un conjunto arbitrario de métodos u operaciones, lo que se publica son recursos y un recurso se puede considerar como una entidad que tiene un estado y un comportamiento, que puede ser accedido públicamente. Cada recurso, posee un identificador único y global, que lo distingue de otros, aunque ambos tuvieran exactamente los mismos datos. Cada recurso posee un estado interno, que no puede ser accedido directamente desde el exterior. Una representación de un recurso podría ser un documento XML con la información accesible de este, otra representación sería un documento HTML, o un JSON. En REST todos los recursos comparten una interfaz única y constante, y tienen las mismas operaciones, las cuales nos permiten manipular el estado público del recurso. En un sistema REST se pueden definir cuatro operaciones: CREATE.- El cliente envía una petición al servidor para crear un nuevo recurso. DELETE.- El cliente elimina un recurso del servidor. READ.- El cliente puede leer una representación del estado de un recurso.
  • 2. UPDATE.- El cliente puede sobrescribir o grabar su copia del estado en el servidor, actualizando el estado del recurso. Estas operaciones se las puede realizar mediante los verbos (GET, POST, DELETE, PUT). HISTORIA REST fue introducido y definido en el año 2000 por Roy Thomas Fielding en su tesis doctoral en la Universidad de California en Irvine. (Capítulo 5 tesis doctoral, 2000). Todo esto comienza desde los inicios de internet, de hecho la web está armada en un estilo de arquitectura llamado REST. REST toma elementos de arquitecturas presentes en ese momento, algunas de las cuales siguen en plena vigencia (particularmente, arquitecturas cliente servidor). REST fue desarrollada de manera paralela a HTTP 1.0 y 1.1; las funcionalidades de REST y HTTP se concibieron apoyándose mutuamente y también sobre identificadores de recursos uniformes (URI). Cuando se desarrolló REST, su propósito era crear un modelo de arquitectura que indique como debería funcionar la Web. REST ha sido aplicado para describir la arquitectura Web deseada, ayudar a identificar problemas existentes, comparar soluciones alternativas, y asegurar que el protocolo no viole las restricciones que hacen que la Web funcione correctamente. REST ha ido evolucionando, pero posteriormente, se le ha ido dando forma para que encaje perfectamente en el mundo Web, usando las tecnologías existentes (URI, HTTP y XML), pero el uso de estas tecnologías, puede significar renunciar a parte de su esencia. Cuando Roy T. Fielding creó REST su disertación, perseguía unos objetivos muy concretos: • Escalabilidad de los componentes de interacción. • Generalidad de las interfaces. • Independencia en el desarrollo de componentes. • Sistemas intermedios para reducir el tiempo de interacción • Mejorar la seguridad, y encapsular los sistemas de herencia.
  • 3. OVERVIEW La web, y el protocolo HTTP es una arquitectura REST. REST considera a toda información de la web como un recurso, ya sea un vídeo, archivos pdf, imágenes, texto plano, entre otros, los cuales tienen un identificador (URI). La interacción con los recursos se lleva a cabo mediante una interfaz uniforme de los verbos estándar HTTP (GET, POST, PUT y DELETE), que son similares a los métodos CRUD (Create, Read, Update, Delete) de una base de datos. Los recursos deben ser auto-descriptivo para procesar una solicitud de un recurso está contenido dentro de la misma petición y que dicha respuesta indicará también su almacenamiento en cache. Una de las características de REST es que se centra en la escalabilidad y rendimiento para los sistemas distribuidos. La diferencia con otras arquitecturas para la solicitud de información como SOAP es que no necesita de muchas operaciones para invocar un recurso. En la figura 1 se aprecia como SOAP necesita del WDSL (Lenguaje Descriptor de Servicios Web) para determinar una función que al final devuelva un recurso, en cambio REST solo con los métodos del protocolo HTTP solicita fácilmente el recurso. Fig 1. Diferencia entre SOAP y Rest
  • 4. En resumen Rest cumple con las siguientes restricciones: Cliente-servidor.- Maneja la arquitectura Cliente-Servidor en donde la interfaz con el usuario y la lógica del negocio se encuentran separadas. Fig 2. Arquitectura cliente-servidor Sin estado.- No se llevará un registro de las transacciones tanto request y response, simplemente se transferirá la información. Fig 2. Modelo sin estado en donde no se lleva registro
  • 5. Caché.- Las respuestas a una petición deben poder ser etiquetadas como cacheable o no cacheable. En caso de ser almacenado en caché el cliente tiene permiso de reutilizar la respuesta más tarde, siempre que la petición sea equivalente. Fig 3. Información guardada en caché Interfaz uniforme.- Para hacer eficiente la transferencia de datos, REST utiliza los verbos (GET, POST, DELETE, PUT); para manipular los recursos siempre y cuando tenga un identificador (URI). Además dicha peticiones deben contener el estado de la misma debido a que REST no se encarga de los estados. Sistema de capas.- REST maneja la escabilidad, para ello existe una jerarquía de capas, en donde cada cuenta con las funcionalidades, mejorando el procesamiento de la información. Fig 4. Sistemas por capas, cada una cumple su función
  • 6. Tecnología y/o Framework Tecnología Descripción Tonic Es una librería para PHP para utilizar la técnica REST en el desarrollo de aplicaciones. FRAPI Framework para el desarrollo de aplicaciones que utilizaran REST en donde se utiliza el lenguaje de programación PHP. Jersey Es un framework que utiliza la API JAX-RS para crear servicios Web Rest en java. ASP.NET WEBAPI Framework para el desarrollo de los servicios Web que usan REST con el lenguaje C# Slim Un micro framework para construcción de aplicaciones Web. Apify Un framework similar a FRAPI, utiliza el php para el desarrollo de Servicios Web.
  • 7. CONCLUSIONES  La web es un ejemplo perfecto de servicios distribuidos a nivel global totalmente interoperable, por lo tanto la web, y el protocolo HTTP es una arquitectura REST, porque se dedican a hacer GETs sobre URIs para obtener representaciones de las distintas páginas web.  Los servicios REST son mejores que SOAP, porque HTTP es un protocolo que sigue los principios REST, por lo tanto hacer servicios REST es algo que aprovecha toda la infraestructura de la web ya existente, es decir es usar el propio protocolo HTTP, los servicios REST tienen menor acoplamiento que los servicios basados en SOAP, aunque SOAP está ganando en cuanto a seguridad, enrutamiento y otros aspectos que no pueden ser direccionados con HTTP
  • 8. BIBLIOGRAFÍA. “REPRESENTATIONAL STATE TRANSFER: REST”, (s.f.). Consultado el 15 de noviembre del 2014. Recuperado de: http://bibing.us.es/proyectos/abreproy/11247/fichero/Memoria%252F8- Representational+State+Transfer+(REST).pdf Roy Thomas F. (2000) Architectural Styles and the Design of Network -based Software Architectures. University of California, Irvine. Recuperado de: http://www.ics.uci.edu/~fielding/pubs/dissertation/top.htm “RESTFUL API FRAMEWORKS EN PHP”, 3 de abril de 2012. Consultado el 15 de noviembre de 2014. Recuperado de: http://qbit.com.mx/blog/2012/04/03/restful-api-frameworks-en-php/ http://www.adwe.es/general/colaboraciones/servicios-web-restful-con-http-parte-i-introduccion-y- bases-teoricas