Spiga
Blog Widget by LinkWithin

REST (Representational State Transfer): 1, Introducción

Si bien el desarrollo de servicios web basados en SOAP, WSDL y el resto de especificaciones WS-*, son ampliamente utilizados en las empresas como base de la comunicación entre aplicaciones, existen otras opciones, como REST, que pueden ser tan (o más) adecuadas para este propósito.

REST (REpresentational State Transfer o, castellanizándolo, Transferencia de Estado Representacional) es un estilo de arquitectura software especialmente pensada para sistemas distribuidos, como la World Wide Web. El término REST fue acuñado por Roy Fielding (uno de los autores de la especificación HTTP) en su tesis doctoral presentada en el año 2000. A partir de entonces, el término ha sido ampliamente utilizado.

¿Por qué se llama Representational State Transfer? El nombre se basa en que el cliente que accede a una aplicación web va cambiando su estado en función de los enlaces que se van eligiendo (que devuelven representaciones de los recursos accedidos). Este enfoque plantea una aplicación web como una máquina de estados virtual, dónde las transiciones entre los mismos son hiperenlaces. Según palabras del propio Roy Fielding:

Representational State Transfer trata de evocar una imagen de cómo se comporta una aplicación web bien desarrollada: una red de páginas web (una máquina de estados virtual), dónde el usuario progresa a través de una aplicación seleccionando una serie de enlaces (transiciones entre estados), pasando a la siguiente página (que representan el siguiente estado de la aplicación) que será transferida al usuario y renderizada para su uso.

El siguiente diagrama marca un ejemplo de máquina de estados virtual (muy simplificada) para una tienda on-line


(Enlace al segundo post de introducción a REST)

4 comentarios:

  luiX_

10:25 p. m.

¿es cosa mía o los flujos "log-in" y "log-out" tienen los nombres intercambiados entre si?

Vamos, que me parece más lógico un flujo "log-in" HACIA la zona de compras, que un flujo "log-out", más cuando no te has identificado todavía en ningún sitio.

De todas formas, no sé si es que se parece a los diagramas "de toda la vida" o no le veo el gran cambio. A lo mejor es que a los que me refiero son éstos mismos. xDDD

  JoSeK

8:35 a. m.

Estabas totalmente en lo cierto, al hacerlo rápido cambié los flujos :P

Lo que he puesto es un diagrama de "los de toda la vida" para que represente la forma de ver de REST acerca de las aplicaciones web. Es bastante similar a cómo se han desarrollado muchas aplicaciones tradicionales. La gracia de REST, de todas formas, la irás viendo en los próximos posts, que tampoco quería que me saliera uno enorme ;)

  JoSeK

8:35 a. m.

P.D: Muchas gracias por corregirme lo del diagrama, que vaya cagadilla :P ;)

  Anónimo

6:25 a. m.

Heya! I just wanted to ask if you ever have any
trouble with hackers? My last blog (wordpress) was hacked and I ended up
losing a few months of hard work due to no
data backup. Do you have any methods to stop hackers?

Here is my website: View my web page