Monday, November 8, 2010

Software as a service - SaaS

Software as a service (SaaS, typically pronounced [sæs]), sometimes referred to as "software on demand," is software that is deployed over the internet and/or is deployed to run behind a firewall on a local area network or personal computer. With SaaS, a provider licenses an application to customers either as a service on demand, through a subscription, in a "pay-as-you-go" model, or (increasingly) at no charge. This approach to application delivery is part of the utility computing model where all of the technology is in the "cloud" accessed over the Internet as a service.

Advantages

  • Pay per use
  • Anytime, anywhere accessibility
  • Pay as you go
  • Instant scalability
  • Security
  • Reliability
  • APIs
SaaS was initially widely deployed for sales force automation and Customer Relationship Management (CRM). Now it has become commonplace for many business tasks, including accounting software, computerized billing, ERP software, invoicing, human resource management, financials, content management, collaboration, document management, and service desk management

History

Software as a service's acronym, SaaS, first appears in an article called "Strategic Backgrounder: Software as a Service." It was published in February 2001 by the Software & Information Industry's (SIIA) eBusiness Division. This 18 page document is one of the most complete essays pertaining to SaaS available today. SIIA developed the backgrounder to analyze the current state of the SaaS market and its near term prospects, and to provide insight for its members who may be profoundly impacted by changes implied in the SaaS mode. Software as a service is essentially an extension of the idea of the Application Service Provider (ASP) model.[3]

One of the first SaaS applications was SiteEasy, a web-site-in-a-box for small businesses, that launched in 1998 at Siteeasy.com. Developed by Atlanta-based firm WebTransit (co-founded by Gary Troutman and Drew Wilkins), SiteEasy was sold on a subscription-basis for a monthly fee to its first customer in the Fall of 1998.[4]

Loudcloud, founded in 1999 by Marc Andreessen, was one of the first to attempt to commercialize Software as a Service computing with an Infrastructure as a Service model.[5] The technology also was called "ASP's" or Application Service Providers, under the terminology of the day. Loudcloud changed its name to Opsware after selling the operations side of the business to EDS in 2002, and HP acquired Opsware in 2007[6] and EDS in 2008.[7] HP now offers the SaaS originally developed by Loudcloud as HP Software-as-a-Service.

Philosophy

Software and business professionals generally associate the term SaaS with business software, and as a possibly lower-cost way for businesses to use software as needed rather than license every application on every device. With a well-designed implementation and properly priced licenses, on-demand SaaS provides license benefits without the associated complexity and the potential high cost to equip devices with applications they may not need.

Though many Unix applications already work using the SaaS model, EULA applications did not have this flexibility before SaaS. A licensed copy of a word processor, for example, had to reside on each machine in order to create a document on that machine. The equipped program has no intrinsic value loaded on a computer that is turned off for the night. The same employee would need another fully paid license to write or edit a report at home on their own computer, while the work license is inoperative.

Key characteristics

SaaS characteristics include:[8][dead link]

  • Network-based access to, and management of, commercially available software
  • Activities managed from central locations rather than at each customer's site, enabling customers to access applications remotely via the Web
  • Application delivery typically closer to a one-to-many model (single instance, multi-tenant architecture) than to a one-to-one model, including architecture, pricing, partnering, and management characteristics
  • Centralized feature updating, which obviates the need for end-users to download patches and upgrades.
  • Frequent integration into a larger network of communicating software—either as part of a mashup or a plugin to a platform as a service

(Service oriented architecture is naturally more complex than traditional models of software deployment.)

SaaS providers generally price applications on a per-user basis and/or per business basis, sometimes with a relatively small minimum number of users and often with additional fees for extra bandwidth and storage. SaaS revenue streams to the vendor are therefore lower initially than traditional software license fees, but are also recurring, and therefore viewed as more predictable, much like maintenance fees for licensed software.

Some SaaS applications are free to the user, with revenue being derived from alternate sources such as advertising, or upgrade fees for enhanced functionality (often referred to as "freemium"). Examples of free SaaS applications include large players such as Gmail and Google Docs, as well as smaller providers like Wave Accounting and Freshbooks.

In addition to characteristics mentioned above, SaaS sometimes provides:

  • More feature requests from users, since there is frequently no marginal cost for requesting new features[citation needed]
  • Faster new feature releases, since the entire community of users benefits[citation needed]
  • Embodiment of recognized best practices, since the user community drives the software publisher to support best practice

Benefits

  • Save money by not having to purchase servers or other software to support use.
  • Faster Implementation. Customers can deploy SaaS services/products within hours rather than weeks or months.
  • Focus Budgets on competitive advantage rather than infrastructure (Low Total Cost of Ownership)
  • Monthly obligation rather than up front capital cost
  • Reduced need to predict scale of demand and infrastructure investment up front as available capacity matches demand
  • Multi-Tenant efficiency
  • Flexibility and scalability
  • Reliability

Implementation

One of the companies that sells that kind of service classifies SaaS into four "maturity levels," whose key attributes are configurability, multi-tenant efficiency, and scalability.[9] Each level is distinguished from the previous one by the addition of one of those three attributes:

  • Level 1 - Ad-hoc/custom: Each customer has a customized version of the hosted application that runs as its own instance on the host's servers. Migrating a traditional non-networked or client–server application to this level of SaaS typically requires the least development effort, and reduces operating costs by consolidating server hardware and administration.
  • Level 2 - Configurable: This adds greater program flexibility through configurable metadata, so many customers use separate instances of the same application code. This lets the vendor meet different customer needs through detailed configuration options, while simplifying common code base maintenance and updating.
  • Level 3 - Configurable, multi-tenant-efficient: This adds multi-tenancy to the second level, so a single program instance serves all customers. This enables more efficient server resource use without apparent difference to the end user, but ultimately faces scalability limits.
  • Level 4 - Scalable, configurable, multi-tenant-efficient: The fourth and final SaaS maturity level adds scalability through a multitier architecture that supports a load-balanced farm of identical application instances that run on a variable number of servers. The provider can adjust system capacity to match demand by adding or removing servers without further altering the software architecture.

SaaS architectures may also use virtualization, either in addition to multi-tenancy, or in place of it.[10] A principal virtualization benefit is that it can increase system capacity without additional programming. On the other hand, much programming may be required to construct a more efficient multi-tenant application. Combining multi-tenancy and virtualization provides still greater flexibility to tune the system for optimal performance.[11] In addition to full operating system-level virtualization, other virtualization techniques applied to SaaS include application virtualization and virtual appliances.

SaaS application development may use various types of software components and frameworks. These tools can reduce time-to-market and the cost of converting a traditional on-premise software product or building and deploying a new SaaS solution. Examples include components for subscription management, grid computing software, web application frameworks, and complete SaaS platform products

SaaS and SOA

Much like other software, SaaS can also take advantage of Service Oriented Architecture to let software applications communicate with each other. Each software service can act as a service provider, exposing its functionality to other applications via public brokers, and can also act as a service requester, incorporating data and functionality from other services. Enterprise Resource Planning (ERP) Software providers leverage SOA in building their SaaS offerings.

Software as a secure service (SaSS) is a variation of SaaS that provides security in the link to the service, content storage on the service, and non-proprietary format data backups and restores of data stored on the service.