Thursday, March 1, 2012

Representational state transfer (REST)

Roy Fielding in year 2000 for the first time introduced the term Representational state transfer (REST) to the software world. This is an architectural practice used for distributed hypermedia, while the largest implementation being the World Wide Web.


The Core 
In essence the REST Architecture consists of three parts:

  1. Client: This is where all the request get initiated.
  2. Server: Where the respond to a request is processed which can be in different forms.
  3. Network: This is the means through which the client and server correspond. (Usually not mentions as a part of the Architecture)
Now the other pieces which make up this architecture are : Resources, Representation of the Resource, and State of the resource.
In this architecture state of the client constantly in transformation as it progresses in its requests. The server in response has many states to consider in a given time since it can be responding to many clients at a given time, in essence the sever is stateless.
This architecture is a great bases for a well designed browser based application.
Below you'll find links for several good resources for REST:

Short papers or Presentations:
Roy Thomas Fielding: Architectural Styles and the Design of Network-based Software Architectures
RESTful Web services
Rest of REST
What is REST
SOA with REST
RESTful Web Services for Java
RESTful Java with JAX-RS
RESTfulWeb Services Developer'sGuide

Books:
RESTful Web Service
RESTful Java with JAX-RS
Service Design Patterns: Fundamental Design Solutions for SOAP/WSDL and RESTful Web Services

No comments:

Post a Comment