SaaS (Software as a Service) Platform Architecture

What is SaaS?

Software as a Service (SaaS), on demand software, is a software delivery model in which software and its associated data are hosted centrally and accessed using a thin-client, usually a web browser over the internet. Simply put, SaaS is a method for delivering software that provides remote access to software as a webbased service. The software service can be purchased with a monthly fee and pay as you go.

Where does the term SaaS come from?

The SAAS acronym allegedly first appeared in an article called "Strategic Backgrounder: Software As A Service", internally published in February 2001 by the Software & Information Industry’s eBusiness Division

  • Multi-tenant architecture virtualization as a alternative 
  • Pricing model o pay as we go, relatively low cost for user provisioning
  • Configuration and customization easy for application customization
  • Accelerated feature delivery o It means a much shorter release cycle
  • Open integration protocols o Typically based on HTTP, JSON,REST, SOAP

An example: 

  • Imagine you are the founder of a start-up company and you need to deal with tons of new customers
  • Buying a full version Customer Relationship Management (CRM) Software is expensive
  • With SaaS, you can buy a web-based CRM software that is pay as you go and scales to demand!

Benefits:

Save money on software license, cut cost on maintenance, and hardware purchase. Combined with lower start-up cost and a faster return on investment!

A Brief History:

In 1960s, IBM and other mainframe providers conducted time-sharing or utility computing services, offering computer power and database to banks and large organization. In 1990s with the expansion of Internet, Application Service Providers (ASP) appeared. They provided small businesses with the service of hosting and managing specialized business application. Starting from 2003, the true SaaS became popular due to the increased speed of internet connections. Ultimately, all software will be web based and pay-as-go. The idea of using software as a service first popped up in the late 1990s in order to allow sharing enduser licenses in a way that reduced cost and also shifted infrastructure demands from the company to the software provider. Does it merely save on the license cost? And more: upgrading, maintenance, hardware…

SaaS has a lot of appeal to businesses.

Here are a few reasons why:

  • Multi-tenant software architecture
  • Low cost, fast investment, shared license
  • High manageability
  • Free of deployment and support
  • Cost-effective: pay as we go
  • Customization is easy
  • Can scale well commercialization

 SaaS providers and services that are provided by them : 

ProviderServices
Salseforce.comOn-demand CRM solutions
Microsoft Office 365Online office suite
Google AppsGmail, Google Calendar, Docs, and sites
NetSuiteERP, accounting, order management, CRM, Professionals Services Automation (PSA), and e-commerce applications.
GoToMeetingOnline meeting and video-conferencing software
Constant ContactE-mail marketing, online survey, and event marketing
Oracle CRMCRM applications
Workday, IncHuman capital management, payroll, and financial management.

 Advantages of SaaS:

  • Easy to use : most SaaS applications do not require more than a web browser to run
  • Cheap : The pay as you go pricing model of SaaS makes it affordable to small businesses and individuals.
  • Scalability: SaaS application can be easily scaled up or down to meet consumer demand. Consumers do not need to worry about additional computing infrastructure to scale up.
  • Applications are less prone to data loss since data is being stored in the cloud.
  • Compared to traditional applications, SaaS applications are less clunky. They do not require users to install/uninstall binary code on their machines
  • Due to the delivery nature of Sass through the internet, SaaS applications are able to run on a wide variety of devices.
  • Allows for better collaboration between teams since the data is stored in a central location.
  • Velocity of change in SaaS applications is much faster.
  • SaaS favors a Agile development life cycle.
  • Software changes and frequent and on-demand. Most SaaS services are updated about every 2 weeks and users are most time unaware of these changes.

Drawbacks of SaaS: 

1.) Robustness: 

  • SaaS software may not be as robust (functionality wise) as traditional software applications due to browser limitations. Consider Google Doc & Microsoft Office.
  • Most SaaS applications are intolerant to slow internet connections and this can lead to erratic behavior
  • Google doc may not be synchronized well between teams in a low internet connection

2.) Privacy

  • Having all of a user’s data sit in the cloud raises security & privacy concerns.
  • SaaS providers are usually the target of hack exploits e.g. Google servers have been the target of exploits purportedly from China in the last several years

Lots of issues arise with sensitive data stored in the cloud. Common privacy questions include:

  1. Who has the access to the data?
  2. How to distribute the rights?
  3. What type of data can be saved on the cloud, and locally?
  4. What about the confidential data?
  5. Don’t we really have to worry about data sharing?
  6. Who is viewing our data, modifying the data, and re-distributing our data?
  7. With or without permission?
  8. Data sharing between private and public clouds

3.) Security

  • Attack detection, malicious code detection
  • SaaS applications are prone to attack because everything is sent over the internet
  • Data encryption and decryption
  • Communication protocols
  • Virtualization versus Multi-tenant architecture: which one is better in terms of the security?
  • Transaction processing, networking issues

4.) Reliability:

  • In the rare event of a SaaS provider going down, a wide range of dependent clients could be affected. For example, when Amazon EC2 service went down in April 2011, it took down FourSquare, Reddit, Quora and other well known applications that run on it.
  • We shall discuss each of these issues in more details in the next section
  • Although most SaaS applications are highly reliable, down time is still inevitable and can be very expensive commercial SaaS software
  • The application, data, backups, everything are in the cloud, thus making it hard to recover from the server down time. o You don’t physically own the code, they are in the cloud

Hybrid of Traditional & SaaS applications

  • Although most of our discussions have highlighted the advantages of SaaS architectures, we’ve also illustrated some of the drawbacks of SaaS most of which relate to security, privacy and reliability.
  • To address these issues while taking advantages of SaaS, hybrids have developed recently • SAP is one of the companies leading the way in this endeavor.
  • Many SaaS providers today take such an approach. A good example of which is Dropbox.
  • Dropbox creates a virtualized directory containing user files on their machine thus enabling offline access.
  • Users are also able to access their data online through a web browser. Tradition & SaaS Hybrid
  • Microsoft Office also uses a hybdrid traditional SaaS software approach. Office desktop suite can be installed locally but documents can also be accessed and shared online through Microsoft Sky Drive.

Benefits of Traditional & SaaS Hybrid

  • Applications and data can be accessed offline. This is especially useful in situations where users have limited or no internet access such as on airplanes.
  • Applications can be better secure as users may decide which applications to upload to the cloud or remain with locally.
  • Having local copies of data serve as rain-coat from complete data loss in situations where the SaaS provider is experiencing downtime.

Summary

  • SaaS greatly enhances the ability of developers to scale their application on demand and better suite customer needs
  • It encourages Agile practices by enabling providers deliver frequent updates/patches without waiting for major release cycles as in traditional applications.
  • SaaS applications however are susceptible to privacy, security and reliability concerns
  • Hybrid environments combining both SaaS and traditional application methodologies may be useful in scenarios of extremely sensitive data or where constant up-time must be maintained.
  • Use of SaaS services is pervasive in the development and deployment of modern applications
  • The SaaS methodology is very mature and would play a central to the future of computing.