Tuesday, September 9, 2008

RESTful Service

REST stands for Representational State Transfer architecture, Introduced by Roy Fielding in 2000. [1]

REST is a style of software architecture for distributed system, especially for WWW.
As opposed to RPC, REST is "resource" centric, decomposed system. It examined how features such as Client-Server architecture, Stateless design, cache, layered design are used in REST.

HTTP is an example of REST.There is a example implemented with java serverlet. [2]

in [1], Fielding's dissertation, instead of saying "Creating" or "Seting up" REST, he use "Deriving" REST. His approach is " There are two common perspectives on the process of architecture design, whether it be for buildings or for software. The first is that a designer starts with nothing--a blank state, whiteboard, and builds up from familiar components until it satisfies the needs of the intended system. The second is that a designer starts with system needs as a whole, without constraints, and then incremently identifies and applies constraints to elements of the system in order to differntiate the design space and allow the forces that influence system behavior to flow naturally, in harmony with the system." REST used the latter process.

[1] http://www.ics.uci.edu/~fielding/pubs/dissertation/rest_arch_style.htm
[2] http://open.iona.com/docs/broker/5.1/connectivity_guide/N04B9CB28.04F8FAA0.html
[3] http://en.wikipedia.org/wiki/Representational_State_Transfer#REST.27s_Central_Principle:_Resources

No comments: