Software as a Service (SaaS) and Its Usage
Basically there are four layers in the model of cloud computing:
- Business Process as a Service
- Software as a Service
- Platform as a Service
- Infrastructure as a Service

In this article we are going to discuss Software as a Service (SaaS) layer of cloud computing model. Software as a Service i.e. SaaS actually refers to the situation where the service provider provides customer the software applications by means of deployment over the internet. Sometimes SaaS is also called software on demand.
History:
Software as a service actually existed before cloud the computing concept in the form of Application Service Providers (ASP). Earlier Application Service Providers specialized in hosting simple applications like email service and Customer Relationship Management (CRM) applications.
Kinds of SaaS Applications:
Different kinds of SaaS applications are:
- Development Tools: This consists of a software application that is basically used for product development and management.
- Business Applications: Business applications help different businesses accomplish their tasks in a fast, accurate and secure manner.
Benefits of SaaS:
From the customer’s point of view, the benefits of SaaS are:
- The SaaS vendor handles all the aspects of operating, maintaining and supporting all hardware, software and communication technologies.
- No special hardware is required.
- Economical because the price is based on usage and no upfront costs are involved.
- Accessible from everywhere at all times.
- Security.
- Instant scalability.
- Highly reliable.
Methods of running SaaS:
There are two distinct methods of running Software as a Service:
- Simple Multi Tenancy SaaS: Here each customer has his own resources, segregated from those of the other customers. It is described as a relatively inefficient form of multi tenancy
- Fine Grain Multi Tenancy SaaS: It also offers the same level of segregation but it is far more efficient from the perspective of software engineering. Except for the customer data and access capabilities, all resources are shared. This results in highly economical service. In other words SaaS multi tenancy is a software architectural model that allows multiple customers to share the single instance of the application.
Software written for SaaS application differs from the software that is written for on-the-premise kind of deployment. The main difference between SaaS application and traditional client server based on the premise application is that every SaaS application is inherently web centric (as it is always deployed over the internet). SaaS application can be consumed by any user over a standard HTTP medium (i.e. it is available from any browser). Normal traditional software applications meant for on-the-premises deployment cannot work in SaaS environment as these are not usually web centric.
Some of the issues to be considered when designing software for SaaS applications include functionality, architecture, usability, performance, scalability, security, compatibility, availability, fault tolerance, modularity, maintainability etc.
Typical examples of common SaaS applications include ERP, CRM, insurance, banking, CAD/CAM, spreadsheet, word processor, database applications, project management etc.

Some of the issues to be considered when designing software for SaaS applications include functionality, architecture, usability, performance, scalability, security, compatibility, availability, fault tolerance, modularity, maintainability etc.