sábado, 12 de abril de 2014

Desnudando a REST

Representational State Transfer - REST. Es una técnica de arquitectura software basado en SOA y se fundamenta básicamente en recursos. Un recurso es cualquier cosa que tiene una URI (Uniform Resource Indentifier), pudiendo tener cero o más representaciones. El termino REST se introdujo en el 2000  en una tesis doctoral sobre la web escrita por Roy Fielding, uno de los principales autores de la especificación del protocolo HTTP. Desde entonces, REST a pasado a ser muy usado por la comunidad de desarrollo. En clase, muchos compañeros no tenían claro que era RESTful, pues no estaban seguros a qué exactamente se refiere este termino (y me incluyo). Pues bien, RESTful es el nombre que se le da a un sistema que ha seguido los principios de REST para su desarrollo. Es preciso mencionar que Roy, para crear REST, tuvo su mayor inspiración en Internet, pues concluyó que la Web era la aplicación distribuida más exitosa de la historia y la aprovecho al máximo.

Una de las principales características, o principio como prefiero llamarlo, es que REST divide el estado y la funcionalidad en recursos. De esta forma, se puede var claramente que REST esta orientada a recursos y no a métodos. Los recursos bien representados no pueden ser accesados directamente, sino, a través de representaciones de los mismos. De esta forma los otros principios de REST se manifiestan como consecuencia del mencionado. Así tenemos los siguientes principios:
  • REST usa directamente la sintaxis universal de HTTP para poder identificar el tipo de operacion sobre los recursos 
  • Un protocolo sin estado y basado en capas. Cada mensaje tiene la información necesaria para comprender la petición 


  • Uso de hipermedios (URIs) y son usados tanto para las transiciones del estado de la aplicación como para la información de la misma.   

  • Promueve mecanismos de cache y sistemas intermedios



Es imposible no comparar REST con SOAP para implementar un diseño SOA con WS. De esta forma, podremos resaltar tres grandes diferencias

 A pesar de todas estas  buenaas caracteristicas mencionadas, es preciso detallar algunas cosas no tan positivas de REST que se detallan a continuación.
  •  REST es poco flexible
  • REST no está preparado para albergar Servicios Web de gran complejidad como las aplicaciones B2B
  • REST tiene grandes problemas de seguridad al no soportar el concepto de sesión
    A manera de conclusión se puede decir que:
  1.      REST es adecuado para manejar grandes cantidades de información publica (escalabale) para grupos desconocidos de usuarios
  2.      REST no es muy adecuado para sistemas  complejos cerrados desnu

No hay comentarios:

Publicar un comentario