January 18, 2004

Extending REST

[via Bill de hOra]

Rohit Khare, co-founder and former CTO of KnowNow has posted his PhD dissertation (PDF) to the web entitled "Decentralizing REST". There is also a 10 page summary report available too.

Abstract

Because it takes time and trust to establish agreement, traditional consensus-based architectural styles cannot safely accommodate resources that change faster than it takes to transmit notification of that change, nor resources that must be shared across independent agencies.

The alternative is decentralization: permitting independent agencies to make their own decisions. Our definition contrasts with that of distribution, in which several agents share control of a single decision. Ultimately, the physical limits of network latency and the social limits of independent agency call for solutions that can accommodate multiple values for the same variable.

Our approach to this challenge is architectural: proposing constraints on the configuration of components and connectors to induce particular desired properties of the whole application. Specifically, we present, implement, and evaluate variations of the World Wide Web's REpresentational State Transfer (REST) architectural style that support distributed and decentralized systems.

In Rohit's own words:

Academically ... the central insight of my work can be summarized by the injunction "Decentralization ? Distribution" ... Basically, distributed systems are about letting multiple parties come to consensus on a single decision; decentralization requires permitting independent parties to make their own decisions.

The result is a sequel of sorts to Dr. Roy Fielding's pioneering work on the REpresentational State Transfer architectural style for the World Wide Web. Starting with the ordinary request/response style of interaction characteristic of today's Web, I attempted to shift from the classic "ACID" transaction properties to our new "BASE" measures of decentralization (Best-effort networking, Approximate estimates, Self-centered trust management, and Efficient encoding) by successively adding new features to REST. The final result was Asynchronous, Routed REST with Estimates and decentralized Decision functions (ARRESTED).

So ARRESTED (nice name!) builds the following functionality around REST:

  • Asynchronous event notification
  • Routing messages through active proxies
  • Estimating current representations based upon past ones
  • Decision functions that select the current value of a shared resource

I suspect Rohit's ARRESTED concepts will prompt some very interesting thinking in the Web Services world in the next few weeks / months / years.

Hopefully the roles that WS-Addressing and the new WS-Eventing specifications can play in this area for XML Web Services should already be fairly obvious. Then the challenge will be how easy it would be to put this together with the REST-based ideas of resource references (EPR's in WS-Addressing), generic interfaces (CRUD) and resource representation snapshots, and adding some of the ED functionality from Rohit's thesis to create an ARWebSED system.

Entry categories: Architecture Web Services
Posted by Jorgen Thelin at January 18, 2004 04:52 PM - [PermaLink]
 
Traceback List
Comments
So which of REST's constraints won't be found in ARWebSED? 1/2 8-) Mark. Posted by: Mark Baker on January 19, 2004 06:14 AM