There is growing market demand for cheaper and efficient enterprise apps to an ever expanding global market. The blend of the ubiquitous Internet along with the availability and validity of open source software program is creating substantial programs and economies for a program vendors to deliver Software as a Service (SaaS).
Software as a Service is a device in which the software product owner offers an Internet hosted version of their application (in house or at a maintained 3rd party site) that is accessed by customers from the internet site and paid for on a per-use, per-project or even subscription basis.
The SaaS model offers benefits that are significant to software vendors and their customers. The SaaS model offers customers cost effective subscription-based or perhaps per-use pricing, eliminating the need for substantial capital outlays to invest in perpetual software licenses. What’s more, it eliminates the initial outlay and on going risks and costs of installing, maintaining and supporting in house hardware and the associated IT staff. In addition, user access and application performance can be dramatically improved with Internet-based, on-demand, 24×7 systems. The SaaS model opens brand new markets to software program vendors. Established software companies can broaden the market reach of theirs by extending SaaS techniques to midsized and small enterprises. Other features include the economic benefits of predictable recurring revenue streams and strengthened relationships with customers. Software vendors migrating to or even developing products from the start as SaaS offerings have a major competitive advantage when being competitive with traditional license-model vendors.
Realizing the great things about the SaaS model may demand essential changes to a program vendor’s business model, software architecture and operational structure. This white paper provides an introduction of the issues associated with the software itself and also the improvement considerations associated with going to a SaaS model.
Time is of the essence. As with any new business model, the rewards usually go to early market entrants. Accelerating the time-to-market of your respective software deployment is important to the business achievement of yours. Outsourcing product modifications to apply your SaaS providing, with the help of an expert services group, and engaging an optimum on-demand service delivery firm will accelerate your time-to-market and insure an on-time, on-budget, on-scope implementation.
The Challenge of Transforming The Software of yours
While there are a wide variety of benefits in offering Software as a Service, regular software business enterprises might face difficulties in switching to this model. To begin with, your software program should be web enabled with all functions carried out with the individual with a web browser. If you have a client-server application, you will need to upgrade the performance implemented in the client with HTML, and most likely other technologies (XML, Java, etc.), which can be shown by a web browser over the internet. Next, in order to gain functional efficiency, your software must be multi-instance. You move from single instance to multi instance by loading multiple copies of your software on one set of servers. Multi-instance enables you to share the cost of a server across a number of customers. Additional productivity enhancements and economies may be gained by moving to multi tenant SaaS, or changing proprietary commercial software with open source software program. Web services provide an opportunity for integration together with other applications and data flows.
Single Instance Applications
Traditional client/server programs are single instance. They require software to be installed on the user’s computer to carry out computations and offer functionality. Clients frequently implement highly interactive functions and allow the user to adjust huge amounts of data. This can be very difficult to implement in a conventional HTML, request/reply web program interface that requires frequent page refreshes. Migrating from client/server to an Internet based SaaS model is greatly dependent on your specific application.
Nowadays, new Rich Internet Application (RIA) technological innovation can be purchased from Macromedia, Laszlo Systems and others that give net applications the look-and-feel and efficiency of a desktop application or even client. RIA requires minimum software be placed on the user’s client computer. The many that’s called for is a small browser plug in or even Java applet. This important shift to the user interface changes your client /server application to a single tenant web application.
Web applications might be individual instance or perhaps multi-instance. A single-instance web application is typically installed on servers that are dedicated in the customer’s data center and used only internally, behind the firewall. At installation time period, your software is configured to consume whatever system resources are needed and available on the computers.
When a web application is presented as a company over the internet, it must be hosted in a professional data center. This can minimize costs and delivery good quality service to your clients. If you’ve one instance application as well as much more than one customer, one strategy is usually to put in a new instance of your software on your own server for every client. This may work for several customers or some significant accounts, but it does not scale effectively for large numbers of customers. It also can’t be used for little and medium sized customers that cannot afford the set up costs.
Moving from Single to Multiple Instances
An answer to unique client dedicated servers is to opt for a number of copies of the software of yours on a single set of servers. This’s called multi instance. Multi-instance helps you to share the cost of a server across several customers. Most business applications employ a database and each more copy of the application installed calls for a new data source instance also.
Installing numerous copies of your software on one set of servers aren’t as simple as it sounds. Installation procedures need to be modified so that each and every example is put in without disrupting the security or even resource allocation of the other in the past installed copies of the software.
There is a cap on the number of cases that might be set up and eventually system assets is consumed. System resources include shared memory, procedure semaphores and other inner operating system parameters. Therefore the question becomes, “How lots of copies of the application of yours can you install on a server?”
Clearly, you can keep installing instances of your application until resources are exhausted. However, you must also consider the overall performance of the device under load by buyers. Typically you will discover a maximum number of simultaneous people your program must support and minimum performance or perhaps response time requirements that has got to be met to satisfy consumer commitments.
An exact answer to the “How lots of copies of the software of yours can you put in holding a server?” question is derived by test the application as additional instances are added by you. This is best done with automated testing software tools that could simulate the desired number of users setting a weight on the method.
The testing procedure can be to establish the best amount of situations as well as the resulting performance. This is accomplished by installing extra instances of your application, and carefully monitoring system resources and running user load tests using varying traffic modeling to identify the point at which regularly returns diminish.
This process of maximizing the number of situations on the servers can take a person to three months depending on the size and complexity of the system of yours, the quality of your installation activity whether you’ve previously produced automated owner load testing scripts and steps.
Minor code modifications may be required to move to multi instance. For example, if your application reads and writes a file with a hard-coded filename and place on the disk, then the file have to be generated in areas which are different for each instance to stay away from problems between each and every instance. These issues will be observed and changes will need being made during the one to 3 weeks.
Next Steps – improving Functionality and Reducing Costs
When your software application is running properly as a multi-instance SaaS application, you may wish to pursue a multi tenant architecture. In one instance, multi-tenant architecture, other clients talk about a single instance of your software. Migration from multi-instance to multi-tenant can be a major project and might even demand a rewrite of the software of yours out of the ground up. The advantages gained in making the switch to multi tenancy importance being closely examined. You could find your materials better spent in different ways.
Another possible step would be to center on going costs from your model. Many uses have dependencies on expensive proprietary databases and also middleware. savings that are Significant will be realized by migrating open source alternatives or even to more affordable. A purchase here might provide savings which are substantial in operating costs which would be transparent to your end users and extremely beneficial to your bottom line.
You may also look at adding web services for inter process communications. This could be particularly appealing if your application is an element of a workflow with information passing-to or even gathering-from another application. Designing with web services in your mind will minimize long-term integration requirements.
Just one Instance, Multi Tenant Web Application
Software organizations have produced web applications for over ten years now. These are frequently installed on the Intranet of a consumer and simply used internally, behind the firewall. This single example of the application is needed by just one customer. This’s both single-instance and single-tenant.
You saw above how you are able to install and test your software to make it multi-instance — having multiple copies running on a single server. But, each copy is a single tenant web application.
Single-tenant web applications can be modified to allow for many customer tenants on similar instance. Multi-tenant web software minimize the degree of hardware needed to support multiple customers. Furthermore, customers can self-provision their use of the software of yours by signing up for an account and typing in transaction info. This lowers, and typically eliminates, the amount of support required to have a new customer.
An example of the modifications to support multi tenant is the creation of an operator interface for user provisioning of accounts in the device. Another modification, based on the needs for integration with other enterprise systems, is an LDAP interface for convenient provisioning and administering of user accounts. Modern database technology is able to enable quick duplication of the data model so each and every customer has its own copy of each and every table in the database. This is a beautiful way to keep customer knowledge separate when stored in the single database instance used for the service.
Templates for arrangement of the program should be provided to accelerate adoption and customization of the service by new customers. Various scenarios of system usage by customers are supported by templates.
A system management dashboard showing method use by most tenants might be needed. A mechanism must be designed to measure system use for reasons of billing and also monitoring system load. Administrative accounts for client support purposes may also need to be implemented.
It may be required to enhance the reliability of the back end, using database technology to implement parallel servers at physically distant places, to assure constant up time during times of man-made or natural disasters.
Maintaining Performance of Your Multi-Tenant Web Application
Multi-tenant applications have to deal with a number of issues that happen to be not quite as pronounced in single-tenant and client/server systems. Because multi tenant systems are available over the public Internet, use may be unpredictable. Therefore, demand planning needs to be done a lot more carefully. The techniques must be instrumented to diagnose increasing usage so more hardware and bandwidth are supplied to keep service levels.
Driving Down Costs by Moving to Open Source
Lots of software designers are agnostic about the application server as well as database software program used by their applications. The customer typically dictates these choices. If your buyers want to make use of Oracle as the website, then you definitely must support this popular option. Your program must have modules to support each database technically. Business-wise, you pass along the price of the database license to the end buyer, if they don’t already own a license.
But what database will need to you choose for the software of yours when it is provided as a service? There might never be a necessity for the complex features of an expensive commercial database. Likewise, the economics of offering the software of yours as a service might preclude the expense of a commercial data source license fee.
Thus, a lot of companies converting the software of theirs to a service will choose one of the low or even no cost open source directories on the market. These database choices are now widely used and robust. Those of commercial databases are rivalled by advanced features such as redundant clustering and automated backup capabilities.
If your application doesn’t yet support one of such databases, several technical issues need to be overcome. The format and syntax of nearly all SQL utilized to access and manipulate data in a database is standard. But, almost every database vendor extends many applications and SQL use these extensions, like exclusive options to adjust and evaluate information. There can easily be many variations in how each database vendor treats cursors, triggers, data types and package variables. If you use SQL extensions in the application of yours, you will need to recode these SQL assertions to handle the target open source website.
Migration to on demand delivery models works cohesively with bootstrapped know-how deployment and investment. Even if the open source database application doesn’t have all of the characteristics you prefer to have or if they run slightly more slowly, you might have no choice economically when you first start offering your software as a service. It might not generate monetary sense that you can commit tens of a huge number of dollars in a commercial database license while you are able to only charge a few hundred dollars per subscriber. In time, as your subscriber base grows, you could choose to move to the professional database. Until you are able to afford it or even activity levels grow to levels that are high, open source database solutions may be your only useful solution.
Another fairly expensive part of your respective software is the license required for a commercial Java program server. This’s another category of a software application where a number of open source alternatives exist. By and large, conversion over to an open source application server is pretty straightforward. All should comply with the specification for Java two Enterprise Edition (J2EE) and the code of yours shouldn’t need any modifications.
Nevertheless, there are distinctions in the way you install the code of yours in the application server. The set up and set up method is extensively recorded for just about all open source application servers. You need to modify your set up method to accommodate the needs of the application server you make use of.
Once again, the business case is sharp. A large community of users makes open source program servers a safe alternative. The price of a commercial application server is hard to justify when you are simply starting out offering your software as a service. As with the conversion process to-and-from an open source website, you are able to always switch back again to a commercial program server as your subscriber base grows.
Web Services For Data Transfer and Integration
When customers install your software in the own data center of theirs, behind the firewall of theirs, they are able to incorporate the software together with other data and applications sources. When you make your software available as a company over the Internet, subsequently integration just isn’t as simple. Encryption and authentication must be provided to let secure data transfers.
The most common approach to integration and data transfers over the public Internet is with net services, the SOAP method and WSDL. If your application has an Application Programming Interface (API) in a native language as C or Java, you will need to build a web services interface that utilizes the API to speak with the software of yours and also helps bidirectional data flow with the external world using SOAP.
Time to Market
Time is of the heart. As the new SaaS model is followed, early entrants will have a significant advantage. Evolving the application of yours to web enabled, multi instance will allow you to be a SaaS player fast. Time to promote issues must be considered when determining whether to partner with pros or even get migration and infrastructure development in house.
The Benefits of Outsourcing Software Development
Outsourced developers, who’re experienced with SaaS, can certainly allow you to move ahead quickly in migrating to this brand new model. They’re able to provide set up plus load assessment to establish the optimal set up for your multi instance configuration; adapt the software of yours to migrate from multi-instance to multi-tenant; or perhaps develop a multi instance or even multi-tenant application from your client/server application.
Importantly, an outsourced developer can alter your current software product without disrupting the flow of completely new functions and enhancements that your present customers expect. With a managed outsourcing relationship, you can continue to focus on your current business while outsourced developers are creating applications to support the start up business model of yours. Outsourced developers will provide you both a cost and time savings in achieving the SaaS model.
To grab the competitive lead in your space by leveraging SaaS, you must consider working with experienced vendors to guide you through the process of transforming your application.