Recently, I met an executive of a top bank who was trying to roll his head around the notion of software as a service and service oriented architecture. He intimated to me that these two terms are the only things he hears from software development vendors and the internal Information Technology team. I offered an explanation that went as follows.
Software as a service represents a shift in the way software is developed and used. In traditional software development, the software executable or program code is installed on the users computer. This requires a copy of the same software for each user creating challenges in updating, maintenance and licensing.
SaaS allows software to be installed and used over the Internet or Intranet. It allows a single copy of the same software to be used by different users from a single location through the network, which may be intranet or internet. Even when multiple copies are deployed, they provide redundancy rather than a copy for each user. Under SaaS, access to the software is strictly through external Application Programming Interfaces (API). To encourage loose coupling, the mode of communication is usually message passing. Because the software is used through an external interface and most often owned by a different party, this is sometimes referred to as consuming a service.
An architecture that is based on consumption of different capabilities of software programs by way of external interfaces is called a Service Oriented Architecture (SOA). With SOA, solutions can be built faster because we rely on existing SaaS functionality and add only what is missing. Incase of failure of one SaaS provider, it is possible to switch to other providers. Moreover, most SaaS vendors allow consumers to pay for only what they consume.
He appeared to understand and promised to get back to me, and will give feedback as soon as I hear from the manager.
6,018 total views, 2 views today