SaaS, SOA and Web Services

user1900858 picture user1900858 · Jan 11, 2013 · Viewed 10.8k times · Source

This question may be foolish, but I am really confused.

I want to implement a Software as a Service (SaaS), and I thought that I can use Visual Studio and WCF to do it. But I've read that WCF and Web Services are a SOA implementation and not a SaaS.

Can I use WCF to implement a SaaS? What's the relation between SaaS, SOA and Web Services?

Answer

Bogdan picture Bogdan · Jan 11, 2013

SaaS is just a method of software delivery. Think of it this way: You are a software provider and you need to provide your clients with software applications that they want to use. But you don't sell them a DVD and say: "Here! Go install this on your servers and use it". You instead host the application on your own servers and - for a subscription fee - provide users access to it over the web. It's externalization of applications (e.g. email, human resources application, accounting and taxes etc).

When we talk SaaS, we talk fully functional standalone applications that offer some business service.

SOA is something similar but at a lower level. It doesn't provide business service but instead provides small isolated processes as a service.

SOA is an architecture style to building software. The idea is that you build your application by putting together (or interacting with) a set of stateless, reusable, decoupled network services (e.g. web services).

I think what confuses people is the term "service". Both SaaS and SOA provide "services". But it's the target that's different: SOA offers services to other applications as opposed to SaaS that offers services to users.

You can off course use SOA to build your SaaS application. It's not mandatory but its often preferable. With SaaS you provide services to more clients and having it built on top of a SOA architecture makes the application easier to scale than a more monolithic "do it all" application.

TL;DR: I'll paraphrase something I've read on a blog:

Deciding to deliver tax capabilities over the web, is SaaS.
Enabling the tax application to integrate with IRS for e-filing and internal return verification, is SOA.