Service Oriented Architecture: what is SOA? And what are SaaS, DaaS and PaaS?
There’s a lot of unnecessary bumf out there at the moment and a bucketload of people who are sounding off about Service Oriented Architecture … unfortunately, most of them don’t know their SaaS from their PaaS, their PaaS from their SOA and their DaaS from their PaaS.
Hopefully I know my SaaS from my elbow so I’m going to try and bring together what some observers have said and add my own take on it; I’ll also try to avoid any corporate nonsense words and PAINSINTHEASS (The P and the A stand for Pointless Acronyms, you can dream up what the rest stand for…)
Hopefully, I shouldn’t have to explain too much as this diagram should help: (by the way, feel free to use the diagram if you want but please include a link back to this blog 🙂 )
So here’s the run-down:
We’ll start from the bottom and work our way up.
Data as a Service is the outsourcing of data management. Someone “in the cloud” hosts the data you need. This can be:
- “Public” Data, e.g. Geographic Coordinates, Business Data from Dun & Bradstreet, Addresses etc.
- “Private” Data, e.g. your company’s personnel files, stocktakes, questionnaire results, whatever.
This Data as a Service may give you access to information like Dun & Bradstreet’s Business Data without you having to sell half your stock to use it. In this respect people offering Data as a Service are like middle-men; they buy the licence for the information and let you use it for a reduced rate.
With private data, the incentive to take the data-hosting outside of your company’s hallowed walls is that the DaaS service provider will probably offer some way to hook software or interfaces up to your data more easily than if you had to fiddle with a SQL server. So in short it stops your hands getting grubby with too much development.
I hope you’re still with me! Now we move on to…
Software as a Service, or SaaS, which is the outsourcing of software. Someone “in the cloud” has built a nifty piece of software and is hosting it on their server. If you want to use it, rather than offering you a download or mailing you a CD, they let you use the software as a service: you subscribe to the software rather than “buy” it outright.
It’s the perfect partner for DaaS: one service company could both host the software you need to use and host the data that it uses: for instance, it could host address data (zip/postal codes etc.), as well as the software that hooks into this data – an intuitive data-lookup tool and form-filler, for instance.
A Platform as a Service is an effective way to roll out all these bits of software that people are making. If a company has invested a lot of time, effort and money into developing a piece of software, they want to send it out into the world as quickly and efficiently as possible. And with so many people out there making so much software, end-users like to have them delivered over familiar platforms.
Here’s a great example: look at Facebook and all of the programs you can add into it: poker, friend wheels, vampire games, etc. Facebook is the platform; those cute little games are the software. Imagine all those little games set up on their own websites… would you ever use them? Would you even know about them? The thinking behind a platform as a service is sound. If anyone needs any more convincing, look at Scrabulous: after existing solely on its own website, attracting a (not unhealthy) 20,000 users, the application was launched on Facebook in 2007. On the Facebook platform, it attracted nearly a million devotees, with 500,000 people playing daily. Ultimately, though, Scrabulous had to be taken off Facebook for copyright infringement! I doubt whether it still has 500,000 active users.
In the world of business enterprise, Salesforce.com offers a Customer Relations Management (CRM) platform that software as a service vendors can plug their applications into.
In the Software-and-Platform-as-a-Service model, the end user is divorced from the development of the application. They probably don’t think for a second about how the service they use was developed and delivered to them; they just plug in and play. But! There’s more than one way to skin a cat. As well as delivering their software through a familiar platform, software developers can offer their applications up for mashups.
A note on Mashups
If the end-user has the technical know-how, they can bundle up several bits of software together to make a new product with, say, a familiar interface. They may wish to use this mashup themselves, or they may even wish to offer the mashup to others through their website.
A great example of this is Google Maps. Let’s consider this scenario: a services company buys geographic data and offers it to users on a subscription basis (Data as a Service). They develop basic hosted software that plans a route along roads from this data and offer this up too (Software as a Service). Now, the user can choose to mashup this software with Google Maps to make a visual representation of the route the software plans. Or they can create a mashup from any other programs out there; perhaps they don’t like Google Maps and choose to plug it into MultiMap instead. Whatever.
So that’s a run-down of DaaS, SaaS and PaaS, as well as a mention for Mashups.
DaaS, SaaS and PaaS are all web services. As has been explained, they are all services rolled out over the web.
This leaves Service-Oriented Architecture, or SOA. In short, SOA is how any or all of these web services operate and interact. The name, really, is quite self-explanatory. SOA is not software, it’s not a computer, it’s not the internet and it’s not your neighbour’s dog. It’s just a way of describing how the web services DaaS, SaaS and PaaS work together in a system. To quote Bradley F. Shimmin (Principal Analyst of Application Infrastructure, Current Analysis LLC):
SOA is all about how software is structured and SaaS is all about how software is used.
The clue’s in the word “architecture” really, isn’t it…? If we were talking about a house, we wouldn’t assume “architecture” to mean a brick, or a window. “Architecture” is not specifically any of these things, but it is all of these things: it’s how the discrete individual elements form a whole. To take the house analogy further, we could take Data-as-a-Service to be the foundations of a Service-Oriented Architecture; Software-as-a-Service is there with the bricks; The Platform-as-a-Service could be the housing estate the house is built on and marketed through. If we were going to get needlessly complex we could say that SOAP and WSDL were like the mortar gluing the house together, but I said we’d stray away from PAINSINTHEASS.
So SOA is the term for the whole picture.
Of course, to make things a little bit more tricky, the architecture is seldom completely service-oriented. Perhaps I subscribe to geographic data-as-a-service but build my own in-house software (say, a store locator wizard). Or maybe I buy my data as a one-off acquisition on a CD (say, a list of local businesses), host the data on a MySQL server, but to use the data in an application (say I want to have a “local business lookup” feature on my website), subscribe to a software service (with perhaps a pay-per-lookup pricing model). Both can be seen as having a Service-Oriented Architecture, but of course not every step on the road to delivering something to the end-user has to be provided as a service.
I hope this little rundown helps.
Here are some of the advantages of SaaS and DaaS.