Balisage Paper: REST Oriented Architectures (ROA): Taking a resourceful approach to web data
Kurt Cagle is an author and XML Developer with more than fifteen books and hundreds of articles on XML based technologies such as XSLT, SVG, XUL, XForms, computer ethics and more, and writes the blog UnderstandingXML.com. He has most recently been working with the Firefox browser and Mozilla technologies, as well as XML based languages such as XBL, trying to push what he sees as the re-emergence of client-based programming. He lives in the Pacific Northwest with his wife and daughters, where he can usually be found staring out the window at the falling rain while drinking coffee at local coffeehouses.
Copyright © 2008 Kurt Cagle
Resource Oriented Architectures use the fundamental characteristics of the web itself in order to provide and update content on the web. While much of the philosophy concerning REST has been around since the early 1990s, the tools for turning these philosophies into working systems are only now becoming feasible. The fundamental tenets of ROA — that the web itself is primarily a giant database, that resources are abstractions that can be manifest in different representations, that a query-oriented resource architecture is more robust than a verb-oriented services architecture, and that a common publishing and syndication protocol is necessary to make such an architectural system work — are being adopted increasingly by people who realize that services oriented architecture are not effective at getting data from users or providing it to them in an easy to use way, but that ROA can do precisely that.
Such a shift in perception is necessary but will nonetheless take a while to happen. It's necessary because the amount of information on the web is piling up faster than it can be indexed, and because under the current architectures the cost of developing "editors" for that data is prohibitive compared to the value of that information. It's necessary because the data within organizations is getting more complex than can be readily handled with a name/value approach to application development, and is increasingly contained within non-traditional data sources — Excel spreadsheets or Microsoft Word documents, for instance, or external data streams.
Adoption will take time, however, because such an approach reduces the competitive barrier impedence that corporations can utilize to sell services, because it will take time to educate people in the underlying technologies and because there is a long-standing belief that ROA and SOA systems are incompatible. The rapidity at which companies lined up behind AtomPub, on the other hand, points to the fact that many IT organizations recognize the value to themselves that an AtomPub-type architecture opens up, while the educational curve is frankly true of most technologies — it will happen, slower than its proponents may hope but faster than its critics anticipate.