The expansion of the Internet during the 1990s brought about a new class of
centralized computing, called
application service providers (ASP). ASPs provided businesses with the service of hosting and managing specialized business applications to reduce costs through central administration and the provider's specialization in a particular business application. Two of the largest ASPs were USI, which was headquartered in the Washington, D.C., area, and Futurelink Corporation, headquartered in
Irvine, California.[11]
Software as a service essentially extends the idea of the ASP model. The term software as a service (SaaS), however, is commonly used in more specific settings:
While most initial ASPs focused on managing and hosting third-party
independent software vendors' software, contemporary[as of?] SaaS offerings are typically provided by the software developer.[12]
Whereas many initial ASPs offered more traditional
client-server applications, which require the installation of software on users'
personal computers, later implementations can be
Web applications that require only a web browser to use.[13]
Whereas the
software architecture used by most initial ASPs mandated maintaining a separate instance of the application for each business, SaaS services can utilize a
multi-tenant architecture, in which the application serves multiple businesses and users, and partitions its data accordingly. [14]
Microsoft referred to SaaS as "software plus services" for a few years.[15]
Distribution and pricing
The cloud (or SaaS) model has no physical need for indirect distribution because it is not distributed physically and is deployed almost instantaneously, thereby negating the need for traditional partners and middlemen. Unlike traditional software, which is conventionally sold as a
perpetual license with an up-front cost (and an optional ongoing support fee), SaaS providers generally price applications using a subscription fee, most commonly a monthly fee or an annual fee.[16] Consequently, the initial setup cost for SaaS is typically lower than the equivalent enterprise software. SaaS vendors typically price their applications based on some usage parameters, such as the number of users using the application. However, because in a SaaS environment customers' data reside with the SaaS vendor, opportunities also exist to charge per transaction, event, or other units of value, such as the number of processors required.[17]
The relatively low cost for
user provisioning (i.e., setting up a new customer) in a multi-tenant environment enables some SaaS vendors to offer applications using the
freemium model.[17] In this model, a free service is made available with limited functionality or scope, and fees are charged for enhanced functionality or larger scope.[17]
A key driver of SaaS growth is SaaS vendors' ability to provide a price that is competitive with on-premises software. This is consistent with the traditional rationale for outsourcing
IT systems, which involves applying
economies of scale to application operation, i.e., an outside service provider may be able to offer better, cheaper, more reliable applications.[18]
A key driver of SaaS growth is SaaS vendors' ability to provide a price that is competitive with on-premises software. This is consistent with the traditional rationale for outsourcing
IT systems, which involves applying
economies of scale to application operation, i.e., an outside service provider may be able to offer better, cheaper, more reliable applications.[19]
Architecture
Most SaaS providers offer a
multi-tenant 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.[20]
Although an exception rather than the norm, some SaaS providers use mechanisms such as
virtualization to manage a large number of customers in place of multitenancy.[21] Whether multitenancy is a necessary component of software as a service is debatable.[22]
Vertical vs horizontal SaaS
Horizontal SaaS and vertical SaaS are different models of cloud computing services.[23] Horizontal SaaS targets a broad variety of customers, generally without regard to their industry. Some popular examples of horizontal SaaS vendors are
Salesforce and
HubSpot. Vertical SaaS, on the other hand, refers to a
niche market targeting a narrower variety of customers to meet their specific requirements.[24]
Characteristics
Although not all software-as-a-service applications share all the following traits, the characteristics below are common among many of them:
Accelerated feature delivery
SaaS applications are often updated more frequently than traditional software,[25] 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.[citation needed]
The application has only a single configuration, making development testing faster.[citation needed]
The application vendor does not have to expend resources updating and maintaining backdated software versions because there is only one version.[citation needed]
The service provider has access to user behavior within the application (usually via
web analytics), making it easier to identify areas worthy of improvement.[citation needed]
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.[citation needed] Mashups further differentiate SaaS applications from on-premises software as the latter cannot be easily integrated outside a company's
firewall.[original research?]
Collaborative and social functionality
Inspired by the development of different internet networking services and the so-called web 2.0 functionality, many SaaS applications offer features that let their users
collaborate and
share information.[citation needed]
For example, many
project management applications delivered in the SaaS model offer—in addition to traditional project planning functionality—collaboration features letting users comment on tasks and plans and share documents within and outside an organization. Several other SaaS applications let users vote on and offer new feature ideas.[citation needed]
Although some collaboration-related functionality is also integrated into on-premises software, (implicit or explicit) collaboration between users or different customers is possible only with centrally hosted software.[citation needed]
OpenSaaS
OpenSaaS refers to software as a service (SaaS) based on
open-source code. Like SaaS applications, Open SaaS is a web-based application 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.[29]
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."[30]
Several important changes to the
software market and technology landscape have facilitated the acceptance and growth of SaaS:
The growing use of web-based
user interfaces by applications, along with the proliferation of associated practices (e.g.,
web design), continuously decreased the need for traditional client-server applications. Consequently, traditional software vendor's investment in software based on
fat clients has become a disadvantage (mandating ongoing support), opening the door for new software vendors' offering a
user experience perceived as more "modern".
The standardization of web page technologies (
HTML,
JavaScript,
CSS), the increasing popularity of
web development as a practice, and the introduction and ubiquity of
web application frameworks like
Ruby on Rails or
Laravel (
PHP) gradually reduced the cost of developing new software services and enabled new providers to challenge traditional vendors.
The increasing penetration of
broadband Internet access enabled remote centrally hosted applications to offer speed comparable to on-premises software.
The standardization of the
HTTPS protocol as part of the web stack provided universally available lightweight
security that is sufficient for most everyday applications.
The introduction and wide acceptance of lightweight
integrationprotocols such as
Representational State Transfer (REST) and SOAP enabled affordable integration between SaaS applications (residing in the cloud) with internal applications over wide area networks and with other SaaS applications.
Adoption challenges
Some limitations slow down the acceptance of SaaS and prohibit it from being used in some cases:
SaaS applications are hosted in the cloud, far away from the application users. This introduces
latency into the environment; for example, the SaaS model is not suitable for applications that demand response times in milliseconds (
OLTP).
Multi-tenant architectures, which drive cost efficiency for service providers, limit customization of applications for large clients, inhibiting such applications from being used in scenarios (applicable mostly to large enterprises) for which such customization is necessary.[citation needed]
Some
business applications require access to or integration with customers' current data. When such data are large in volume[vague] or sensitive (e.g. end-user's personal information), integrating them with remotely hosted software can be costly or risky or can conflict with data governance regulations.
Constitutional search/seizure warrant laws do not protect all forms of SaaS dynamically stored data. The result is that governments may be able to request data from SaaS providers without the owner's consent.[34][35][36][37]
Organizations that adopt SaaS may find they are forced into adopting new versions, which might result in unforeseen training costs, an increase in the probability that a user might make an error or instability from bugs in the newer software.[citation needed]
Should the vendor of the software go out of business or suddenly EOL the software, the user may lose access to their software unexpectedly, which could destabilize their organization's current and future projects, as well as leave the user with older data they can no longer access or modify.[citation needed]
Relying on an Internet connection means that data is transferred to and from a SaaS firm at Internet speeds rather than the potentially higher speeds of a firm's internal network.[38]
The ability of the SaaS hosting company to guarantee the uptime level agreed in the SLA (Service Level Agreement)[citation needed]
The reliance on SaaS applications and services can lead to SaaS sprawl within enterprises. These disparate applications and services can become challenging to maintain technically and administratively, leading to the proliferation of
shadow IT. [39][40]
The standard model also has limitations:
Compatibility with hardware, other software, and operating systems.[41]
Licensing and compliance problems (unauthorized copies of the software program putting the organization at risk of fines or litigation).[citation needed]
Maintenance, support, and patch revision processes.[citation needed]
Healthcare applications
According to a survey by the
Healthcare Information and Management Systems Society, 83% of US IT healthcare organizations are now using cloud services, with 9.3% planning to, whereas 67% of IT healthcare organizations are currently running SaaS-based applications.[42]
Data escrow
Software as a service data escrow is the process of keeping a copy of critical software-as-a-service application data with an independent third party. Similar to
source code escrow, where critical software
source code is stored with an independent third party, SaaS data escrow applies the same logic to the data within a SaaS application. It allows companies to protect and ensure all the data that resides within SaaS applications, protecting against
data loss.[43]
There are many and varied reasons for considering SaaS data escrow, including concerns about vendor
bankruptcy,[44][45] unplanned service outages, and potential
data loss or corruption. [citation needed]
Many businesses either ensure that they are complying with their
data governance standards or try to enhance their reporting and
business analytics against their SaaS data.[citation needed]
Criticism
One notable criticism of SaaS comes from
Richard Stallman of the
Free Software Foundation, who refers to it as Service as a Software Substitute (SaaSS).[46] He considers the use of SaaSS to be a violation of the principles of
free software.[47] According to Stallman:
With SaaSS, the users do not have even the executable file that does their computing: it is on someone else's server, where the users can't see or touch it. Thus it is impossible for them to ascertain what it really does, and impossible to change it.
^Panker, Jon; Lewis, Mark; Fahey, Evan; Vasquez, Melvin Jafet (August 2007).
"How do you pronounce IT?". TechTarget.
Archived from the original on 28 November 2016. Retrieved 24 May 2012.
^Fox, A.; Patterson, D. (3 Jan 2014). Engineering Software as a Service: An Agile Approach Using Cloud Computing. Strawberry Canyon LLC.
ASINB00CCEHNUM.[unreliable source?]
^Hacigümüş, Hakan; Balakrishna, R. Iyer; Chen, Li; Mehrotra, S. (2002). "Executing SQL over encrypted data in the database-service-provider model". Proceedings of the 2002 ACM SIGMOD international conference on Management of data. pp. 216–227.
CiteSeerX10.1.1.64.8974.
doi:
10.1145/564691.564717.
ISBN978-1581134971.
S2CID6241358.