Saturday, April 19, 2008

REST is Gathering Support

Udi Dahan, an active enterprise software community member, posted a great podcast on using Rest for large scale projects.

Here's my summary:

  1. Most of the on-line REST examples focus on simple active record, crud-ish systems. The resources are things like Customer, Catalog, Catalog item, Order, etc.

  2. Business operations can be treated as resources too. Transfer balance, Sunset product, Change name just happen to be resources that affect more than one entity. The classic Transfer balance operation, for example, affects two bank accounts. The transfer balance operation itself, however, has its own attributes such as transfer initiation date, transfer initiator, transfer approver (perhaps), etc.

  3. RESTful HTTP GETs leverage the extensive caching infrastructure that the Web is built upon.

Does this mean that every large system should be RESTful? No. Does this mean that REST deserves serious consideration when designing SOA based systems? Absolutely yes.

At the end of the podcast, he mentions his concern for a lack of REST service description tools. The community is working on this. Check out WADL for details.

1 comment:

  1. WADL doesn't have value in a properly designed ReST architectures. It enforces strong coupling of the client and the server's URI space at compile-time.

    ReST systems are by definition hypermedia-driven, hence generating lists of URIs and their potential media types is redundant and actually quite nefast.