Wednesday, April 23, 2008

More *OA with your *aaS?

Hot on the heels of * as a Service is the new and exciting name game of * Oriented Architecture.

This time, the game is a bit more tricky as you need to redefine old terms in order to allow new terms to fit in. So Service Oriented Architecture (SOA) is no longer about Service Oriented Architecture but instead about the use of acronyms like SOAP & BPEL, excluding other acronyms like REST & RIA

Lost? You should be.

This new package holiday of confusion even comes with colourful jargon like:-
"On a cruise ship, the WOA folks would be the recreation directors, chefs, entertainers, and cruise directors making it a fantastic journey. The SOA folks are working down in the hot, noisy engine room, making the ship go forward.".

Wow, let's hope you end up with the fun loving recreation people rather than those smelly old engineers (see figure 1 & 2).

Figure 1 - A typical recreation loving WOA Architect.
(click on image for larger size)



Figure 2 - A typical hidden-in-the-engine-room SOA Architect.
(click on image for larger size)



(Scenes of Morlocks and Eloi from the The Time Machine.)

For anyone requiring a bit of sanity, let me simplify it all for you.

Software as a Service is a delivery model for providing software. In today's world, the software stack is undergoing commoditisation from a product based economy (i.e. Software as a Product) to a service one (i.e. Software as a Service). This can be at any level of the stack including but not limited to application, data, framework and hardware, hence all the derivative *aaS's.

Service Oriented Architecture refers to the use and construction of services (or common, higher order components) in the construction of new services or products. The important things to remember are architecture (a deliberate or planned approach) and oriented (organised around) and services (using services). In other words, a deliberate or planned approach organised around using services.

These services might be internal or external or they might be SOAP based XML or RESTful web services using a REST architectural approach. The other *OA variants are simply subsets of SOA.

This is where the pantomine usually starts; "oh no they're not, oh yes they are" and so on. To avoid this argument, simply raise your hand if you are using an ROA or WOA. Now drop your hand if it uses services of some form or another. If you've still got your hand up, you're a *OA variant that is not a subset of SOA and I'd like to hear from you.

As for the hip and cool cruise directors and the engineers hidden in the depths of the dungeons, I prefer the somewhat less controversial terminology of Pioneers (Eloi) and Town Planners (Morlocks) when describing the people who deal with different types of organisational activities (see figure 3).

Pioneers explore the unknown and boldly go whilst Town Planners build cities. Both use common services if they've got any sense.

Figure 3 - Less controversial roles.
(click on image for larger size)