This is the best introduction about REST (from Roger Costello).

http://www.xfront.com/REST-Web-Services.html

If I respect REST for what it is, a description of the architecture of the web. The principles it teaches are enduring and generally applicable to all forms of architecture.

REST Architecture Style

  • An architecture is defined by its constraints
  • Separate client from server
  • The client / server relationship must remain stateless
  • The client must be able to cache data
  • Uniform Interface
    • Identification of Resources
    • Manipulation of Resources through Representations
    • Self Descriptive Messages Hypermedia as the engine of application state
  • Layered System
  • Code on Demand

My main reservation about the applicability of REST to SOA and Web Services technologies is as follows:

Web services can be of two types: simple and coordinated (as shown below). If REST works well for type I, the foundation of REST (verbs) starts to fade when we go to type II (see also this presentation for a full example of type II). In other words, the notion of complex peer-to-peer relationships cannot be modeled by REST (again IMHO).

 

However, the very notion of Representational State Transfer seem to be the right concept to describe the lifecycle of information in a service oriented architecture. As soon as we loose the notion of "connection" with the system of records, the integrity of the data cannot be insured by traditional concepts: many copies of the same data may exist concurrently without any ACID relationship to the system of record. In this case the "Manipulation of Resources through Representations " is the only way possible.

  meslay