SaaS platform
A SaaS Platform is a computer program or collection of more than one computer program that acts as a host to applications that reside On It. The platform manages underlying computer hardware and software resources and uses those resources to endow its hosted applications with multi-tenant, on-demand capabilities that are found in Software as a service applications. GeneRally, hosted applications are written to target the platform and support a single user. The platform absorbs the responsibility of distributing the application as a service to multiple users over the Internet. The SaaS Platform can be considered a layer of abstraction above the traditional application server, creating a computing platform that parallels the value offered by the traditional operating system, only in a web-centric fashion. The SaaS platform is rooted in the need to reduce the time and difficulty associated with developing highly available, enterprise grade business applications that are to be Delivered on-demand.
Responsibilities
Aside from enhancing a hosted application with one-to-many capabilities, SaaS platforms generally take on a larger set of responsibilities. The list below highlights some of these.
Tenancy Partitioning
One of the major responsibilities of any SaaS platform is offering tenancy partitioning services. Applications written in a single tenant fashion generally have little or no concept of serving multiple customers. For example, the application database schema May Be geared for catering to a single tenant (customer), preventing multiple customers from storing data in the same database. Furthermore, execution may not be partitioned so Situations may arise where inadvertent state sharing occurs between tenants that otherwise should have been isolated from one another. SaaS platforms are responsible for Providing multi-tenancy aspects when needed.
Scaling
SaaS applications purposefully aggregate demand for all customers and users to one physical or virtual location. Being able to support this aggregation is therefore a requirement of any SaaS application. To achieve this sort of scaling, the application must be architected in a fashion that is conducive to scaling as well as having the support required of any auxiliary pieces. SaaS platforms attempt to remove the work associated with scaling by commoditizing the scaling portion
Monitoring & Metering
A SaaS application is required to meter and monitor usage from both data and execution standpoints. This is generally closely tied to both scaling and monetization models. Much of this is extracted into a platform layer, where the platform becomes responsible for metering tenant and user usage, as well as monitoring for system events.
Distributed Services
Traditional, on-premise software relies on a variety of services to accomplish the task of executing business logic. These on-premise services, such as logging or job scheduling, tend to become overly complex if used in a distributed system that generally backs most SaaS applications. SaaS platforms provide distributed equivalents of many such services, giving similar or even augmented capability when comparing to on-premise counterparts.
SaaS platform companies are currently introducing themselves to the market. Generally, their platforms can be categorized based on focus: either vertically aligned, horizontally aligned, product-centric, or general purpose. Although each is categorically different, the platforms generally adhere to most of the basic principals outlined above.
Lock-in
One topic that frequently surfaces within SaaS and SaaS platform circles is the topic of lock-in. Much like other technologies, SaaS platforms offer varying degrees of openness. On the proprietary side, an example is the upcoming Salesforce.com's AppExchange and it's underlying Apex platform, which requires the use of a proprietary programming language and technology stack. Generally, this is considered a lock-in approach to the platform concept. Lock-in through new programming languages and frameworks tends to increase adoption risk and require that any existing technology (such as open source components) be ignored or integrated in through adapter mechanisms if possible. Arguments supporting lock-in style platforms tend to originate from the claim that a new language and framework is needed to support SaaS applications.
Conversely, SaaS platform newcomers such as Apprenda and SaaSWizard, have announced intentions to introduce platforms to the market that present little to no technological lock-in. The goal is to allow the use of existing technologies to provide implementation logic, while attaching SaaS functionality to the software through the platform. Criticisms tend to focus on the fact that providing SaaS functionality in an easy-to-implement fashion is difficult to do using existing technologies, and could prove burdensome for providers.
See also
- SaaS
- SaaS ecosystem
- Saasu
- SaaS+