posted 14 years ago
In the book, we try to use the term "ROA" for Resource Oriented Architecture, which is a subset or profile of REST.
One thing that ROA and SOA have in common, and in start contrast to things like WSDL and CORBA, is that instead of trying to abstract away the network, they recognize that machine boundaries are important architectural facets, e.g., places where trust boundaries often exist.
Where they differ is that SOA focuses on services (verbs), and ROA focuses on resources (noun). A concrete example to illustrate the subtle difference: Google is SOA and ROA. Google is a service (search). You send that service a request, and you get a reply. The same endpoint is also a resource. If you do a GET on Google's home page, you get an concrete representation of a form (in this case, in HTML). That form tells you how to construct requests to other resources (i.e., pages containing search results). Since those pages are resources, they can be bookmarked, linked to from JavaRanch, send over IM to your friends, etc.