Sunday, March 30, 2008

Can't see the wood for the trees ....

Service Orientated Architecture (SOA) is an architectural style of providing processes as services. It does not limit the use of :-

  • verbs - what you do. For example get, put, add, delete, send, fire ...
  • nouns - what you do it to. For example employees, people, camels ...

Representational State Transfer (REST) is an architectural style which defines an uniform interface and hence it limits the use of:-
  • verbs - you can only use post, get, put and delete.
REST is often described as more about nouns because it limits the number of verbs. Whereas SOA in principle is equally about verbs and nouns. I use the words in principle, because you can have many different types of SOA, such as Resource Orientated Architecture (ROA) which uses a REST approach (see figure 1).

Figure 1 - The SOA vs ROA argument in Full.
(click on image for larger size)

My favourite SOA is in fact Simon Orientated Architecture, which has one verb, DO, and one noun, STUFF. It is both more verb-like than traditional SOA having only one noun, and even more noun-like than REST having only one verb.

Unlike arguments based upon the relative use of grammar, I also find it has some sort of point.