Friday, April 01, 2005

REST - Second Generation Web Services

REST - Second Generation Web Services
REST stands for REpresentational State Transfer, and is an architectural style for large-scale software design. REST was first articulated by Roy Fielding in his dissertation, which describes Fielding's view of the architecture of the "best" subset of the Web.

The REST hypothesis is that the semantics of HTTP constitutes a coordination language that is sufficiently general and complete to encompass any desired computational communication pattern.

The REST hypothesis is that the semantics of HTTP constitutes a coordination language that is sufficiently general and complete to encompass any desired computational communication pattern. I.e., the hypothesis is that GET / PUT / POST / etc. can provide all coordination semantics between discretely modeled units of programs (and in case it's not all, or there's other practical reasons for it, HTTP is sufficiently extensible to support new methods being added). REST is comparable to message passing (provably completely general) or function calling with parameters in its ability to express any computational communication / coordination pattern. Obviously, there are other operations needed to actually do the work.

One interesting aspect of REST vs. these new XML-based web services is how REST jives with the Interface Segregation Principle (The dependency of one class to another one should depend on the smallest possible interface.)-- that interfaces are defined by the client's needs, not the server's needs... and for dependency management we need smaller, fewer protocols -- not more.

The premise of REST adherents is that HTTP in and of itself has the set of "verbs" (GET, POST, etc) we need to implement web services. All we need new are lots of "nouns" (URIs).

Interesting links on REST:

REST Resources

RESTwiki

http://www.w3.org/2001/tag/

0 Comments:

Post a Comment

<< Home