Resource-oriented architecture
![]() | It has been suggested that this article be merged into Representational State Transfer. (Discuss) Proposed since July 2007. |
Resource Oriented Architecture (or, ROA) is the architecture of the [1] web. Based on the seminal concept known as [2] REST, or Representational State Transfer (see Roy Thomas Fielding's Doctoral Thesis "Architectural Styles and the Design of Network-based Software Architectures" [3]), this architecture proposes that the central abstraction on the web is a resource.
The first published notion of Resource Oriented Architecture seem to have been the blog entry, posted on August 8, 2006 ([4] "Replacing Service Oriented Architecture with Resource Oriented Architecture" by Alex Bunardzic). Following a rather lively debate around this newly introduced concept, an important book ([5] "RESTful Web Services", by Leonard Richardson & Sam Ruby) was published in May 2007.
Why the Web?
While REST is a set of architectural guidelines applicable to various types of computing infrastructures, Resource Oriented Architecture (ROA) is only coupled with the web. This architecture is therefore useful mostly to businesses that consider the web as the computing/publishing platform of choice.
The power of the web seems to mostly reside in its ability to lower the barriers to entry for human users who may not be highly trained in using computing machinery. As such, the web widens the market reach for any business that decides to publish some of its content in electronic format.
On the web, such published content is regarded as a resource [6]. Resource Oriented Architecture then takes this situation and elaborates on its initial premises, by offering a fairly uniform and low-tech entry point for the businesses/individuals to join the conversation.
Join the Conversation
The web is abuzz with incessant streams of simultaneous conversations. Some of the conversation threads occurring on the web are of a quite serious nature, such as a communication taking place between the team of remotely located doctors, etc. Some of these conversations may be more trivial and frivolous, such as a community of baseball card collectors exchanging snippets if baseball trivia.
As in real life, one crucial aspect of any conversation lies in its openness for many interested third parties to join in. The easier it is to join in the conversation at any point, the more powerful the overall system can potentially get.
Resource Oriented Architecture specializes in offering the lowest possible barrier to entry when it comes to the third party joining any conversation of interest. Thanks to it being deeply rooted in REST, ROA offers easy discoverability of resources engaged in some conversation. On top of that, ROA, through its REST foundation, offers a fairly uniform way to represent the resources partaking in the conversation. For any participating resource, ROA affords easy uniform way to elicit a transfer of the state of some other resource.
And finally, ROA also offers the ability for any third party that may have just joined the conversation, to easily review the 'minutes' of the conversation that had transpired thus far.