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)