Cloud Computing & Software as a Service

Software as a Service is an instantiation of cloud service. Cloud computing provides access to unlimited amount of digital resources anytime, anyplace, anywhere, and for everyone. If a software is installed on one’s local system, and one can access it only through one’s own device interface, then this software is termed as in-house software. We can say the same thing about the corporate-wide software installations as well. When the same software is provided from an online server and you can access it through some thin client, then this instance becomes a Software-as-a-Service (SaaS). Since in Cloud computing a software itself becomes a resource, hence the definition.

A bit of History

It all started back in the 1960s. In 1960 IBM opened up its mainframe systems to provide time-sharing and utility computing to some banks. At that time IBM introduced computing power and databases provisioning through those systems. The delivery model from the perspective of Application Service Provider was kicked in back in the 1990s. Hosting providers started supplies decoupled machines hosting user applications. At that time one could have access to websites running on hosting service provider’s systems using e.g. HTTP.

From 2000 onward, we saw a marked increase in internet connection bandwidths and computing power. So many of the companies starting migrating their software to data centres. They opened up the pay-as-you-go model, and this led to high demand for SaaS applications. And now we see SaaS everywhere e.g. Gmail, Youtube, Facebook, CRMs, Google Docs, Microsoft Drive/Office etc.

Choosing the right SaaS provider

You should ask some important questions while choosing the cloud provider which provides the SaaS app for you. You can search for such questions as

  • Is there some demo?
  • Who else is using it, and what are the testimonials. It would be great if you can talk to some of their clients
  • What kind of Service-Level Agreements do they provide? Were there any performance issues in the past? If there were any performance related issues then how did they tackle that? Have they ever had a Distributed Denial of Service attack? How did they mitigate it? What about past vulnerabilities in their software.
  • If we pay for a subscription-based model, and for some reason we lose some data or a form of control then what kind of price protection they offer? If it’s a contractual subscription e.g. annual or monthly then what would be the early exit mechanism?
  • How can I configure the software to meet my needs? Can I configure access rights for some of my personal data? What about privacy?
  • What about the robustness of the SaaS solution? SaaS solutions are somewhat less robust than their on-premise counterparts. Take e.g. Google Docs & Microsoft 365, which run in a browser, and have limitations of the browser. There is a huge investment going on in the browser space especially in terms of javascript engines. One of the prime reason for such investments is the seamless robustness provisioning of SaaS applications, compared to on-premise ones.
  • Vendor lock-in had been an issue for so long. And still many players in the market do believe it to be a solid reason to not go for a SaaS provisioning solution. One has to ask a question of how much autonomy that SaaS provider provides?
SaaS’s traditional features

The following are some of the important features that come to mind

  • Pay as you go model – relaxed subscriptions – flexible pricing – saving money on software licensing – cutting cost on maintenance and harder provisioning – American dream equivalent of Developers dream
  • Application customization and configuration – single update to one code base will reflect in all thin clients – fast and accelerated feature delivery model – only hold features that you need – even though sometimes micro management poses some issues but the SaaS provisioning is getting richer day by day and those issues are now being addressed seamlessly
  • What kind of Service-Level Agreements do they provide? Were there any performance issues in the past? If there were any performance related issues then how did they tackle that? Have they ever had a Distributed Denial of Service attack? How did they mitigate it? What about past vulnerabilities in their software.
  • Open integration protocols for interfacing, orchestration, and feature enrichment – JSON, RESTful APIs, SOAP APIs, ATOM, XML etc
  • Decoupling computation, storage, and networking from user’s own platform
  • On-demand Scalability
  • Cashflow optimization in the context of business finance accounting
Service Oriented Architecture & SaaS

In essence, Service Oriented Architecture powers the SaaS applications (whether we know it or not). In fact, SOA was one of the enablers of Web 2.0. Previously non-SaaS software was called traditional software (perhaps still), and we can compare both of them together. But SoA itself has already made SaaS a tradition for the modern world. An SOA is primarily defined as

 

Service-Oriented Architecture (SOA) is an architectural style that supports service-orientation.

Service-orientation is a way of thinking in terms of services and service-based development and the outcomes of services.

service is a logical representation of a repeatable business activity that has a specified outcome (e.g., check customer credit, provide weather data, consolidate drilling reports), is self-contained, may be composed of other services, and is a “black box” to consumers of the service

Conclusion

Given above definition, a SaaS has certain attributes which completely reflect SOA. E.g. a SaaS has a standardized service contract, it has autonomy, usability, abstraction, composability, and loose-coupling.