En ingeniería de software , una arquitectura orientada a recursos ( ROA ) es un estilo de arquitectura de software y paradigma de programación para el diseño de apoyo y el desarrollo de software en forma de interconexión de recursos con interfaces " RESTful " . Estos recursos son componentes de software ( piezas discretas de código y / o estructuras de datos ) que se pueden reutilizar para diferentes propósitos. Los principios y directrices de diseño de ROA se utilizan durante las fases del desarrollo de software.e integración de sistemas .
REST, o Representational State Transfer, describe una serie de restricciones arquitectónicas que ejemplifican cómo surgió el diseño web. [1] Se han creado varias implementaciones concretas de estas ideas a lo largo del tiempo, pero ha sido difícil discutir el estilo arquitectónico REST sin difuminar las líneas entre el software real y los principios arquitectónicos detrás de él.
En el capítulo 5 de su tesis, Roy Fielding documenta cómo la World Wide Web está diseñada para estar restringida por la serie de limitaciones REST. Estos son todavía bastante abstractos y se han interpretado de diversas formas al diseñar nuevos marcos, sistemas y sitios web. En el pasado, se han realizado intercambios acalorados sobre si las arquitecturas REST de estilo RPC son RESTful. [1] [2]
Directrices para la aclaración
La Arquitectura Orientada a Recursos, documentada por Leonard Richardson y Sam Ruby [3], brinda consejos concretos sobre detalles técnicos específicos. El nombre de estas colecciones de directrices "Arquitectura orientada a recursos" puede permitir a los desarrolladores discutir los beneficios de una arquitectura en el contexto de ROA.
Algunas pautas ya son comunes dentro de las comunidades REST más grandes, como que una aplicación debe exponer muchos URI, uno para cada recurso, pero las cookies que representan los ID en una sesión del lado del servidor no son RESTful.
Marcos existentes
RESTful Web Services analiza muchos marcos de software que proporcionan algunas o muchas características del ROA. Estos incluyen / db, [4] Django , TurboGears , Flask , EverRest, [5] JBoss RESTEasy, [6] JBoss Seam , Spring , [7] Apache Wink, [8] Jersey , NetKernel , Recess, [9] Ruby en Rails , Symfony , Yii2, [10] Play Framework , [11] y API Platform . [12]
Infraestructura web
Si bien REST es un conjunto de pautas arquitectónicas aplicables a varios tipos de infraestructuras informáticas, la Arquitectura Orientada a Recursos (ROA) solo se combina con la web. Por lo tanto, esta arquitectura es útil principalmente para las empresas que consideran la web como la plataforma informática / editorial de elección.
El poder de la web parece residir principalmente en su capacidad para reducir las barreras de entrada para los usuarios humanos que pueden no estar altamente capacitados en el uso de maquinaria informática. Como tal, la web amplía el alcance del mercado para cualquier empresa que decida publicar parte de su contenido en formato electrónico. En la web, dicho contenido publicado se considera un recurso web .
Referencias
- ^ a b El capítulo 5 de la disertación de Fielding es "Transferencia de estado representacional (REST)" .
- ^ Fielding, Roy T .; Taylor, Richard N. (mayo de 2002), "Diseño basado en principios de la arquitectura web moderna" (PDF) , ACM Transactions on Internet Technology , 2 (2): 115–150, doi : 10.1145 / 514183.514185 , ISSN 1533-5399
- ^ Richardson y Ruby 2007 .
- ^ "API on the Fly ™: agregue automáticamente la API REST a sus bases de datos" . SlashDB .
- ^ "Archivo de código de Google - almacenamiento a largo plazo para el alojamiento de proyectos de código de Google" . code.google.com .
- ^ "RESTEasy - Comunidad JBoss" . resteasy.github.io .
- ^ "Tutorial de REST de primavera" .
- ^ "Índice" . wink.apache.org .
- ^ "recessframework.org" . ww12.recessframework.org .
- ^ "Marco de Yii" . Marco de Yii .
- ^ "Play Framework - Cree aplicaciones web modernas y escalables con Java y Scala" . www.playframework.com .
- ^ "Plataforma API - Marco REST y GraphQL para construir proyectos modernos impulsados por API en PHP" . api-platform.com .
Bibliografía
- Richardson, Leonard; Ruby, Sam (mayo de 2007). Servicios web RESTful . O'Reilly Media . ISBN 978-0-596-52926-0.
- Lucchi, R .; Millot, M .; Elfers, C. (2008). Arquitectura orientada a recursos y REST (PDF) . Investigación científica y técnica. Luxemburgo: Oficina de Publicaciones Oficiales de las Comunidades Europeas . doi : 10.2788 / 80035 . ISBN 978-92-79-09320-3. ISSN 1018-5593 .