This weekend i was engaged with a rather uninteresting conversation with my wife. My wife is computer savvy but still is catching up on new technologies. Below is a brief snippet. I am hopeful that this will give you some idea on SAAS.
Wife: What? you said something?
me: Nothing. I was just talking aloud… its about SAAS.
Wife: SAAS??? (for the less informed.. SAAS means mother-in-law in hindi !!!). Are you watching those hindi serials lately?
me: Well, SAAS is a Acronym for Software As A Service.
Wife: You must be kidding. The other day you were talking about RUBY (Its another computer language, and a different story, however) and RIA(Rich Interactive Application). But SAAS?? Tell me more..
Me: Well as i said. SAAS is a new delivery model for software. Actually its NOT new at all… The concept is quite old. In older times, each industry have to generate its own electricity to operate. Later on as the scale of economies grew, electricity was provided by third parties and the industries just knew how to consume that electricity service. The technical know-how to how to produce electricity for mass consumption was taken care by these third parties.
Wife: Ok… its the same “PUSH” and “PULL” technologies on web everyone is talking about? We have Service Oriented Architecture since ages now!!!
ME: SAAS is achieved via SOA but it is a much bigger concept than the SOA itself. SAAS is a delivery model which provides many benefits over the traditional model. Its about catching the long tail.
Wife: The Long tail? …
ME: Actually, there is a concept coined by Chris Anderson, who is the author of the book “the long tail”. It talks about the fact that the future of the business is selling LESS of MORE. What is essentially means that if the distribution channel is large enough, products that have a low sales volume can collectively make up a market share which exceeds the relatively few bestsellers. So the sales drive is from small number of BIG customers to massive number of small customers. So you see … its about tapping the business opportunity created by this long tail of small customers.
To serve the above, the costs should be significantly less and thats where the new Software delivery model of SAAS comes into picture.
Here is the WIKI definition
Software as a service (SaaS, typically pronounced ‘sass’) is a model of software deployment where an application is hosted as a service provided to customers across the Internet. By eliminating the need to install and run the application on the customer’s own computer, SaaS alleviates the customer’s burden of software maintenance, ongoing operation, and support. Conversely, customers relinquish control over software versions or changing requirements; moreover, costs to use the service become a continuous expense, rather than a single expense at time of purchase. Using SaaS also can conceivably reduce the up-front expense of software purchases, through less costly, on-demand pricing. From the software vendor’s standpoint, SaaS has the attraction of providing stronger protection of its intellectual property and establishing an ongoing revenue stream. The SaaS software vendor may host the application on its own web server, or this function may be handled by a third-party application service provider (ASP). This way, end users may reduce their investment on server hardware too.
- network-based access to, and management of, commercially available software
- activities that are managed from central locations rather than at each customer’s site, enabling customers to access applications remotely via the Web
- application delivery that typically is 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 downloadable patches and upgrades.
SaaS applications are generally priced on a per-user 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.
Wife: What the deal about multi tenancy:
Multitenancy refers to the architectural principle, where a single instance of the software runs on a software-as-a-service (SaaS) vendor’s servers, serving multiple client organizations (tenants). Multitenancy is contrasted with a multi-instance architecture where separate software instances (or hardware systems) are set up for different client organizations. With a multi-tenant architecture, a software application is designed to virtually partition its data and configuration so that each client organization works with a customized virtual application instance.
Maturity levels of SAAS
SaaS architectures generally can be classified as belonging to one of below Maturity levels. whose key attributes are configurability, multi-tenant efficiency, and scalability. Each level is distinguished from the previous one by the addition of one of those three attributes:
- Level 1 – Ad-Hoc/Custom: At the first level of maturity, each customer has its own customized version of the hosted application and runs its own instance of the application 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 1 (Chaos); Every time you add a new customer, you add a new instance of the software.
- At its level, nothing is done for allowing multiple tenants running on the same instance. The only way to support multiple customers is to serve them with different copies of the software. Furthermore, because little is done to allow customization through configuration, each copy includes specific customer customizations, in the forms of custom extension code, custom processes, custom data extensions. Needless to say that although “technically” the software is delivered as a service (i.e. the software does not run on premise) economy of scale cannot be achieved as each customer runs a different instance of the software. Although this could be a starting point to validate the business model, one has to move quickly up. Managing 1000s of customer at this level is very difficult.
- Level 2 – Configurable: The second maturity level provides greater program flexibility through configurable metadata, so that many customers can use separate instances of the same application code. This allows the vendor to meet the different needs of each customer through detailed configuration options, while simplifying maintenance and updating of a common code base.
- Level 2 (Managed Chaos): Every customer runs on the same version of the software and any customizations are done via configuration. But, you still have different instances for each customer (their own website, their own virtual server, their own physical server, etc.).
- the software can be tailored for each tenant via configurations (no custom code), all the tenants use the same code. However at level 1, the architecture is still not multi-tenant, each customer runs its own copy (albeit the same). The separation can be either virtual (virtual machines on a same server) or physical (running on separate machines). Although much better than previous level, the architecture allows customization through configuration (code base is the same), the computing power is not shared among the instances and therefore the provider cannot achieve economy of scale, putting it at a competitive disadvantage vs. a multi-tenant solution.
- Level 3 – Configurable, Multi-Tenant-Efficient: The third maturity level adds multi-tenancy to the second level, so that a single program instance serves all customers. This approach enables more efficient use of server resources without any apparent difference to the end user, but ultimately is limited in its scalability.
- level 3 (Multi-Tenant, Highrise): You’ve got all customers running on a single version of the software, and they’re all running essentially on one “instance”.The good news is that you’re getting the benefits of multi-tenant (sharing resources across customers). Even better is that you’re not writing custom code for each customer — everyone essentially runs on the same version. The big challenge is that as you add more floors to your building (to stretch the analogy a bit), it gets more and more expensive. And, there are limits to how high you can build to accomodate a large number of tenants.
- At this level. the application architecture includes the multi tenancy concepts. Akin to level 1, the UI can be customizable per tenant, so can the business rules and the data model. The customization per tenant is fully performed through configuration and is performed through a self-service tool, getting around the need of provider intervention. It is almost the SaaS “perfect case”; the only big piece missing at Level 2 is the capacity to scale out; the data partitioning is such at this level that growth can only be achieved by scaling up.
- Level 4 – Scalable, Configurable, Multi-Tenant-Efficient: At the fourth and final SaaS maturity level, scalability is added through a multitier architecture supporting a load-balanced farm of identical application instances, running on a variable number of servers. The system’s capacity can be increased or decreased to match demand by adding or removing servers, without the need for any further alteration of application software architecture.
- Level 4 (Multi-Tenant, Build-Out): This is when you’ve got multi-tenant, single version of the software model. But, you can scale-out (add buildings at will). This is optimal because instead of letting the architecture decide how many tenants you put into a building, you can let the economics decide. And yes, there is an optimal number of tenants per instance and this number varies on your situation.
- At this level, the architecture allows all the capabilities of level 3 (multi-tenancy, configuration) plus the scale out of the application. New instances of the software can transparently be added onto the instance pool to dynamically support the increasing load. Appropriate data partitioning, stateless component design, shared metadata access are part of the design. In this model a Tenant Load Balancer (round robin, rule based…) is introduced, maximizing the utilization of hosting resources (CPU, storage etc.); the total load is adequately distributed over the entire infrastructure. The data is also periodically moved to average the data load per instance. The architecture is scalable, multi-tenant and customizable via configuration.
- Level 5 (Utopia): This is like Level 3, except you’ve figured out an efficient way to run different versions of the software on different “instances”. You’re doing this not because you’re writing custom code for a customer, but because you want to run different code for different customers — to try things out. The best example is having an “early adopter” instance where customers that want to use your latest and greatest features can do so. Helps them. Helps you. Helps everyone. As long as you’re efficient about release management.
Virtualization also may be used in SaaS architectures, either in addition to multi-tenancy, or in place of it. One of the principal benefits of virtualization is that it can increase the system’s capacity without additional programming. On the other hand, a considerable amount of 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. In addition to full operating system-level virtualization, other virtualization techniques applied to SaaS include application virtualization and virtual appliances.
Benefits of Saas
* Cost: the inherent economy of scale found in SaaS gives SaaS providers the ability to deliver services very cost-effectively.
* Risk mitigation: in theory, SaaS providers assume the risks of developing, maintaining, and delivering an application.
* Accessibility: as long as one has access to a web browser and an Internet connection, users in different states, countries or even continents can access the same information in real time without the delay of synchronizing off-network changes. This is a key advantage of SaaS.
* Frequent upgrades: updates are made frequently and, for the customer, effortlessly. Because the software is delivered over the Internet, hosted providers have greater flexibility in upgrading the applications and rolling out changes to customers. Traditional software vendors, by contrast, might upgrade software once a year, if that, but the customers bear the burden of reconfiguring it and paying for the newer version. Using the hosted model means customers can do more to shape the application.
* Lower total cost of ownership (TCO): traditional software, regardless of business size, can cost thousands to tens of thousands of dollars in implementation fees, hardware, maintenance, services, and support. SaaS gives companies the opportunity to enjoy a “zero touch” software application – this means zero maintenance, end user support, and administration costs. Add to this comparatively low implementation and customization costs, SaaS offers a much better TCO than on-premises offerings.
* Flexible contracts: when compared to outsourcing, this is one of the biggest advantages of SaaS. Many SaaS providers offer short-term and, in some cases, month-to-month contracts. This is the ultimate “try-before-you-buy” flexibility that can help businesses make a strategic decision with little or no liability.
* Predictability: while this may not be a pro that some businesses realize at the onset, cost, service levels, and staffing requirements all become more predictable.
* Scalability: SaaS offerings are easily able to develop with the growth of a company, maintaining performance levels and uptime.
* Business-focused IT services: While traditional IT organizations have been responsible for delivering technology, today’s businesses look to IT for thought leadership and business-enablement as well. Offloading aspects of technology delivery can free up IT executives and technicians alike to pursue high-impact projects that add value to the business.
Simply put, SaaS can save a company the headaches of ongoing maintenance, time and money in IT support and equipment costs. Additionally, the key factors that can influence and organizations choice of adopting a SaaS solution are scalability, accessibility, flexibility, and dependability, as well as massive advantage of speed to market.
Pitfalls in SAAS
* Standard product for all customers: with enterprise resource planning (ERP) and customer relationship management (CRM) products, there has traditionally been a greater deployment investment with customizing the software to fit the business. Some SaaS products offer limited customization options. These possible limitations may require adopters to change their internal operations to fit the application.
* Outages: the presence or absence of a guarantee on uptime should be an element considered when selecting an on-demand provider. Why so? Because there is always a possibility that an outage may occur, no matter how remote the possibility. Many SaaS providers will build “uptime guarantees” into their service level agreements (SLAs). That’s not to say that reliability won’t keep improving—such guarantees, as well as mounting competition, all but insures that outages will become increasingly rare.
* Single tenant: some SaaS offerings are built on what is referred to as “single-tenant” architecture. This means that these offerings were built to a single company’s specifications and make available as a SaaS. Single tenant offerings are likely to encounter the same customization and cost problems as traditional software. Recent advancements in SaaS have given rise to a “multi-tenant” architecture, allowing the vendor the ability to maximize the efficiencies of scale using a shared application and shared hardware.
* Accessibility: Just as much as it’s an argument for, accessibility can also be an argument against if one does not have access to a web browser.
* Cookie cutter: an early criticism of SaaS is that the offerings were too generalized. They also couldn’t be customized like traditional software applications and even certain shrink-wrap applications. In the early days, extensibility and integration was clumsy. It’s important to note that many SaaS providers now offer customization platforms that are extremely robust and make integration and extensibility as easy as point-and-click.
* Scale: the majority SaaS providers are aiming for the small-to-medium-business (SMB) market. Those SaaS applications may not scale to tens of thousands of concurrent users. As SaaS and business continue to evolve, this is likely to change.
After all this there was no reply from my wife.. She was already into deep sleep!!!! 😀
Note: The above conversation have adapted definitions, references and other well know articles on SaaS. I presume to present due credit to them wherever required, whether mentioned in article or not.