Software as a Service is a software licensing and delivery model in which software is licensed on a subscription basis and is centrally hosted. It is sometimes referred to as “on-demand software”, and was formerly referred to as “software plus services” by Microsoft.
SaaS applications are also known as Web-based software, on-demand software and hosted software. The term “software as a service” (SaaS) is considered to be part of the nomenclature of cloud computing, along with infrastructure as a service (IaaS), platform as a service (PaaS), desktop as a service (DaaS), managed software as a service (MSaaS), mobile backend as a service (MBaaS), datacenter as a service (DCaaS), and information technology management as a service (ITMaaS).
The vast majority of SaaS solutions are based on a multitenant architecture. With this model, a single version of the application, with a single configuration (hardware, network, operating system), is used for all customers (“tenants”). To support scalability, the application can be installed on multiple machines (called horizontal scaling). In some cases, a second version of the application is set up to offer a select group of customers access to pre-release versions of the applications (e.g., a beta version) for testing purposes. This is contrasted with traditional software, where multiple physical copies of the software — each potentially of a different version, with a potentially different configuration, and often customized — are installed across various customer sites. In this traditional model, each version of the application is based on a unique code.
There are two main varieties of SaaS:
- Vertical SaaS:
- Software which answers the needs of a specific industry (e.g., software for the healthcare, agriculture, real estate, finance industries).
- Horizontal SaaS:
- The products which focus on a software category (marketing, sales, developer tools, HR) but are industry neutral.
- Although not all software-as-a-service applications share all traits, the characteristics below are common among many SaaS applications:
Configuration and customization:
SaaS applications similarly support what is traditionally known as application configuration. In other words, like traditional enterprise software, a single customer can alter the set of configuration options (a.k.a. parameters) that affect its functionality and look-and-feel. Each customer may have its own settings (or: parameter values) for the configuration options. The application can be customized to the degree it was designed for based on a set of predefined configuration options.
For example, to support customers’ common need to change an application’s look-and-feel so that the application appears to be having the customer’s brand (or—if so desired—co-branded), many SaaS applications let customers provide (through a self-service interface or by working with application provider staff) a custom logo and sometimes a set of custom colors. The customer cannot, however, change the page layout unless such an option was designed for.
Accelerated feature delivery:
SaaS applications are often updated more frequently than traditional software, in many cases on a weekly or monthly basis. This is enabled by several factors:
- The application is hosted centrally, so an update is decided and executed by the provider, not by customers.
- The application only has a single configuration, making development testing faster.
- The application vendor does not have to expend resources updating and maintaining backdated versions of the software, because there is only a single version.
- The application vendor has access to all customer data, expediting design and regression testing.
- The solution provider has access to user behavior within the application (usually via web analytics), making it easier to identify areas worthy of improvement.
Accelerated feature delivery is further enabled by agile software development methodologies. Such methodologies, which have evolved in the mid-1990s, provide a set of software development tools and practices to support frequent software releases.
Open integration protocols:
Because SaaS applications cannot access a company’s internal systems (databases or internal services), they predominantly offer integration protocols and application programming interfaces (APIs) that operate over a wide area network. Typically, these are protocols based on HTTP, REST, and SOAP.
The ubiquity of SaaS applications and other Internet services and the standardization of their API technology has spawned the development of mashups, which are lightweight applications that combine data, presentation and functionality from multiple services, creating a compound service. Mashups further differentiate SaaS applications from on-premises software as the latter cannot be easily integrated outside a company’s firewall.
OpenSaaS refers to software as a service (SaaS) based on open source code. Similar to SaaS applications, Open SaaS is a web-based application that is hosted, supported and maintained by a service provider. While the roadmap for Open SaaS applications is defined by its community of users, upgrades and product enhancements are managed by a central provider. The term was coined in 2011 by Dries Buytaert, creator of the Drupal content management framework.
Andrew Hoppin, a former Chief Information Officer for the New York State Senate, has been a vocal advocate of OpenSaaS for government, calling it “the future of government innovation.” He points to WordPress and Why Unified as a successful example of an OpenSaaS software delivery model that gives customers “the best of both worlds, and more options. The fact that it is open source means that they can start building their websites by self-hosting WordPress and customizing their website to their heart’s content. Concurrently, the fact that WordPress is SaaS means that they don’t have to manage the website at all — they can simply pay WordPress.com to host it.”
The above is a brief about Software as a Service. Watch this space for more updates on the latest trends in Technology.