- Cloud Computing Basics
- Cloud Computing - Home
- Cloud Computing - Overview
- Cloud Computing - Planning
- Cloud Computing - Technologies
- Cloud Computing - Architecture
- Cloud Computing - Infrastructure
- Cloud Deployment Models
- Public Cloud Model
- Private Cloud Model
- Hybrid Cloud Model
- Community Cloud Model
- Cloud Service Models
- Cloud Advanced Concepts
- Cloud Computing - Management
- Cloud Computing - Data Storage
- Cloud Computing - Virtualization
- Cloud Computing - Security
- Cloud Computing - Operation
- Cloud Computing - Applications
- Cloud Computing - Providers
- Cloud Computing - Challenges
- Mobile Cloud Computing
Cloud Computing Software as a Service (SaaS)
Software-as–a-Service (SaaS) model allows to provide software application as a service to the end users. It refers to a software that is deployed on a host service and is accessible via Internet. There are several SaaS applications listed below:
- Billing and invoicing system
- Customer Relationship Management (CRM) applications
- Help desk applications
- Human Resource (HR) solutions
Some of the SaaS applications are not customizable such as Microsoft Office Suite. But SaaS provides us Application Programming Interface (API), which allows the developer to develop a customized application.
Here are the characteristics of SaaS service model:
SaaS makes the software available over the Internet.
The software applications are maintained by the vendor.
The license to the software may be subscription based or usage based. And it is billed on recurring basis.
SaaS applications are cost-effective since they do not require any maintenance at end user side.
They are available on demand.
They can be scaled up or down on demand.
They are automatically upgraded and updated.
SaaS offers shared data model. Therefore, multiple users can share single instance of infrastructure. It is not required to hard code the functionality for individual users.
All users run the same version of the software.
Using SaaS has proved to be beneficial in terms of scalability, efficiency and performance. Some of the benefits are listed below:
- Modest software tools
- Efficient use of software licenses
- Centralized management and data
- Platform responsibilities managed by provider
- Multitenant solutions
Modest software tools
The SaaS application deployment requires a little or no client side software installation, which results in the following benefits:
- No requirement for complex software packages at client side
- Little or no risk of configuration at client side
- Low distribution cost
Efficient use of software licenses
The customer can have single license for multiple computers running at different locations which reduces the licensing cost. Also, there is no requirement for license servers because the software runs in the provider's infrastructure.
Centralized management and data
The cloud provider stores data centrally. However, the cloud providers may store data in a decentralized manner for the sake of redundancy and reliability.
Platform responsibilities managed by providers
All platform responsibilities such as backups, system maintenance, security, hardware refresh, power management, etc. are performed by the cloud provider. The customer does not need to bother about them.
Multitenant solutions allow multiple users to share single instance of different resources in virtual isolation. Customers can customize their application without affecting the core functionality.
There are several issues associated with SaaS, some of them are listed below:
- Browser based risks
- Network dependence
- Lack of portability between SaaS clouds
Browser based risks
If the customer visits malicious website and browser becomes infected, the subsequent access to SaaS application might compromise the customer's data.
To avoid such risks, the customer can use multiple browsers and dedicate a specific browser to access SaaS applications or can use virtual desktop while accessing the SaaS applications.
The SaaS application can be delivered only when network is continuously available. Also network should be reliable but the network reliability cannot be guaranteed either by cloud provider or by the customer.
Lack of portability between SaaS clouds
Transferring workloads from one SaaS cloud to another is not so easy because work flow, business logics, user interfaces, support scripts can be provider specific.
Open SaaS and SOA
Open SaaS uses those SaaS applications, which are developed using open source programming language. These SaaS applications can run on any open source operating system and database. Open SaaS has several benefits listed below:
- No License Required
- Low Deployment Cost
- Less Vendor Lock-in
- More portable applications
- More Robust Solution
The following diagram shows the SaaS implementation based on SOA: