What is Cloud Computing Software as a Service (SaaS)
Software as a Service (SaaS)
Cloud computing provides the facility to access shared resources and common infrastructure, offering services on demand over the network to perform operations that meet changing business needs.
Software as a Service (SaaS) model allows to provide software application as a service to the end users.
What is SaaS?
According to Wikipedia, Software as a service (SaaS) is a software licensing and delivery model in which software is licensed on a subscription basis and is centrally hosted.
SaaS is one of 4 main cloud computing Services alongside infrastructure as a service (IaaS), platform as a service (PaaS) and Function as a Service (FaaS).
Examples of SaaS applications are:
- Billing and invoicing system
- Customer Relationship Management (CRM) applications
- Help desk applications
- Human Resource (HR) solutions
Some of these SaaS applications like Microsoft Office Suite are not customizable however SaaS provides us with Application Programming Interface (API) which allows the developer to build a customized application.
Open Software as a Service (Open SaaS)
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 advantages such as:
- No License Required
- Low Deployment Cost
- Less Vendor Lock-in
- More portable applications
- More Robust Solution
Software as a Service Architecture
Much like any other software, Software as a Service can also take advantage of Service Oriented Architecture to enable software applications to communicate with each other. Each software service can act as a service provider, exposing its functionality to other applications through public brokers, and can also act as a service requester, incorporating data and functionality from other services. It is important to understand that the SaaS methodology requires system architecture capable of supporting peak usage demands and the ability to process large numbers of transactions in a secure and reliable environment.
The software would need to meet certain criteria to work on a model such as this. The application would need to be well architected to sustain and provide the scalability, ease of use of the traditional desktop applications.
Characteristics of SaaS Service Model
Although the basic definition of cloud computing could also be used in Software as a Service, there are basic differences SaaS have when compared to other forms of cloud computing.
- Network or Online Access
- Centralized Management
- Powerful Communication Features
- 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.
Advantages of Software as a Service
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 of 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 service 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.
Rather than purchasing software to install, or additional hardware to support it, customers subscribe to a SaaS offering. Transitioning costs to a recurring operating expense allows many businesses to exercise better and more predictable budgeting. Users can also terminate SaaS offerings at any time to stop those recurring costs.
Cloud services like SaaS offer high Vertical scalability, which gives customers the option to access more or fewer services or features on demand.
Rather than purchasing new software, customers can rely on a SaaS provider to automatically perform updates and patch management. This further reduces the burden on in-house IT staff.
Accessibility and persistence.
Since SaaS vendors deliver applications over the internet, users can access them from any internet-enabled device and location.
SaaS applications are often customizable and can be integrated with other business applications, especially across applications from a common software provider.
Difference between SaaS, IaaS and PaaS
Just like I mentioned earlier SaaS is one of the 4 major cloud service models, along with IaaS, PaaS and FaaS but in this comparison we will be focusing on only three which are SaaS, IaaS and PaaS. All three models involve cloud providers that deliver their own hosted data center resources to customers over the internet.
Where the models differ is in the completeness of the product. SaaS products are complete and fully managed applications. IaaS is largely outsourcing data center resources, and PaaS delivers a development platform and other tools hosted by the provider’s data center.
SaaS application users do not have to download software, manage any existing IT infrastructures or deal with any aspect of the software management. Vendors handle maintenance, upgrades, support, security and all other aspects of managing the software.
IaaS is used by companies that want to outsource their data center and computer resources to a cloud provider. IaaS providers host infrastructure components such as servers, storage, networking hardware and virtualization resources. Customer organizations using IaaS services must still manage their data use, applications and operating systems (OSes).
PaaS provides a framework of resources for an organization’s in-house developers. This hosted platform enables developers to create customized applications. The vendor manages the data center resources that support the tools. Customer organizations using PaaS services do not have to manage their OSes, but must manage applications and data use.
Software as a Service Limitations and Risks
- Cloud Security Challenges
- Difficulty switching vendors
- Technical Issues
- Users don’t have control over versioning
- Complete dependence on Internet
- Browser based risks
- Lack of portability between SaaS and clouds
SaaS providers typically use one of many subscription-based pricing models for customers.
Free, or ad-based.
A service may be free for users, with the SaaS provider generating revenue through selling advertisement space. In this model, there is typically an option to upgrade to a paid tier that doesn’t include intrusive ads.
Customers are granted access to the software’s full suite of features for a fixed monthly or annual subscription fee.
Pricing is determined by how many people will be using the service for each subscription. There is a fixed price for every user.
Per user tiers.
Pricing tiers are based on a range of how many active users can exist on a single subscription.
Customers may have free access to a service but will be required to pay for storage if they wish to continue using the product after they pass the free limit.
Pay-as-you-go, or usage-based.
The more customers use the service, the more they are billed and vice versa.
Per active user.
This incorporates aspects of the “per-user” and “pay-as-you- go” strategies. Subscribers are billed per user, but only if the user has been actively using the service beyond a defined threshold.
Price tiers are determined by the amount of features the subscriber seeks. In this model, reduced versions of the software with limited features are available for a lower price than the maximum functionality tier. Additional feature tiers in between the minimum and maximum functionality tiers may also exist.
The service will be generally free to use with an entry-level tier. However, there will typically be functional restrictions in place that are designed to upsell customers to a paid tier.