Shifting to SaaS – part 1

The growth of SaaS is being driven by an increase in the demand for cost- and operational-efficiency in enterprise applications. The spread of the Internet and the rate at which open source is growing and gaining acceptance is an encouraging sign for vendors who intend to offer SaaS. The SaaS model consists of an application being hosted on the Internet from where it can be accessed by clients. The fee for use can be per-user, per-project, or on a subscription basis. The fee structure is a major attraction for companies that wish to offload a significant portion of their IT thereby saving on capital expenditure in terms of software licenses as well as the recurring costs of supporting, running, an upgrading the software along with hardware maintenance.

The costs of maintaining an IT staff are also reduced. SaaS offers an opportunity for increased user access 24 x 7. Vendors of legacy software are adapting to SaaS so that they can reach out to SMBs that are currently being serviced by SaaS CRM specialists such as Salesforce.com. SaaS offers vendors an extra stream of income and the opportunity for close interaction with their clients that helps them provide better service. Enterprise applications offered under a SaaS model provide vendors with a cost advantage as against the customary license-based services. Vendors need to incorporate several changes in the manner in which they run their business, the architecture of the software, and the operational structure in order to fully enjoy the benefits of offering SaaS. Salesforce.com was able to benefit from the advantages that come from being the first mover while developing a business model.

Companies wishing to emulate the success of Salesforce.com need to ensure a quick time-to-market that may initially require that product modifications of the existing systems be handed over an expert third party. Traditional software companies need to take steps so that their applications are web-enabled and can be made to work via a web browser. In a client-server application, HTML and similar technologies that can be viewed on a browser via the Internet should replace the functionalities present in the client. A SaaS vendor should try to obtain higher efficiency by distributing the purchase, sharing, and maintenance of infrastructure costs with his customers. A multi-instance software enables better and low-cost service for customers by distributing the costs among a greater number of customers.

A single-instance software can be made multi-instance by using a single set of servers for hosting multiple copies of software. Vendors can also weigh the pros and cons of using open source software in place of proprietary software. The traditional client/server applications are examples of single instance applications where computations are carried out with the help of software installed on the user’s machine. The advantage of a single instance client/server application is that it enables users to execute complex calculations that may involve a huge amount of data. This is not easily accomplished in a traditional HTML request/reply web application interface in which the pages have to be refreshed regularly.

The specifics of the application are a major factor in deciding the smoothness with which a client/server scenario can be migrated to a SaaS scenario. Rich Internet Application (RIA) technology offered by companies such as Macromedia provides web applications with the functionality of a desktop application or client. A browser plug-in or Java applet in the user’s machine is sufficient for the conversion of a client/server application to a single-tenant web application. Dedicated servers that are secure behind a firewall at the customer data center and are meant only for internal use are made use of for the installation of single-instance web applications. While offering software as a service, the major challenge for the SaaS vendor is to keep the infrastructure costs down and regulating operational expenses. Instead of having servers dedicated to individual customers, a multi-instance offers the opportunity for a better distribution of costs. However, the process of installing multiple copies on a server is a little complicated and care has to be taken that each new installation does not in any way affect the already installed copies of software. Vendors should be aware of the number of copies of a given software that can be installed on a system.

This helps in accurate allocation of system resources such as shared memory and process semaphores. Proper allocation of system resources is important for ensuring that an optimum number of users can access the software simultaneously and that the minimum performance and response time criteria are met. In case of server failure, customers are affected in a very direct manner; therefore to minimize the number of customers affected, vendors should try and keep the number of instances to around five per server. Automated software testing tools can be used for simulating user loads for a given number of instances. The size and complexity of a system are factors that affect the loading process which can take up to three weeks. While adding multiple instances it may be necessary to make slight changes in the code, an example of this would be a file with a hard-coded filename and location on a disk will have to be created at different locations for every instance so that there are no clashes between instances.

Once a multi-instance SaaS system is running smoothly and clients are getting satisfactory service, the next step can be to move to a multi-tenant architecture so that infrastructure costs are driven down further. In a multi-tenant scenario, multiple tenants can be supported on a single instance; this results in a lesser amount of hardware being utilized for supporting customers. However, the process of migrating to a multi-tenant architecture involves significant changes and the application may have to be rewritten to a large extent. It is important to analyze the prospective savings that are to accrue by moving to a multi-tenant architecture before taking such a step. Another way in which SaaS vendors can reduce costs is by trying to eliminate certain expenses completely.

This can be achieved by minimizing the use of proprietary databases and middleware and using open source software. The addition of web services for inter-process communication is an attractive option for applications that are a part of a workflow where the information is exchanged between applications. While designing SaaS architecture, it is important to keep web services in mind so that future integration of the same is simplified. Modifications required for managing a single instance multi-tenant web application include creating a user interface that provisions accounts in the system. User accounts can be conveniently administrated by adding an LDAP interface. Templates that facilitate quick customization are a help. A system management dashboard for monitoring the load on the system and managing the billing for the tenants is desirable. Multiple servers located at different locations may be required so that there is no loss of uptime during a disaster.

Leave a Reply

You must be logged in to post a comment.