There’s growing market demand for cheaper and efficient business software to an ever expanding global market. The combination of the ubiquitous Internet as well as the availability and authenticity of open source software program is creating sizable programs and economies for a software application vendors to provide Software as a Service (SaaS).
Software as a Service is a device in which the software seller provides an Internet hosted model of their application (in house or at a handled 3rd party site) which is accessed by customers from the website and paid for on a per use, per-project or subscription basis.
Benefits that are significant to software vendors and the customers of theirs are offered by the SaaS model. The SaaS model offers customers cost-effective subscription based or perhaps per use pricing, eliminating the need for substantial capital outlays to buy perpetual software licenses. Additionally, it gets rid of the initial outlay and on going risks and costs of installing, supporting and maintaining 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 vendors. Established software companies can broaden the market reach of theirs by extending SaaS solutions to midsized and small enterprises. The financial benefits of predictable recurring revenue streams and strengthened relationships with customers are included by other advantages. Software vendors migrating to or perhaps producing products from the start as SaaS offerings have a major competitive advantage when being competitive with traditional license-model vendors.
Realizing the advantages of the SaaS model may require fundamental changes to a software vendor’s business model, operational structure and software architecture. This white paper provides an introduction of the problems linked to the software application itself and the improvement considerations associated with going to some SaaS model.
Time is of the heart. As with any new business model, the advantages usually go to early market entrants. Accelerating the time-to-market of your respective software deployment is vital to your business achievement. Outsourcing product modifications to implement your SaaS supplying, with the aid of an expert services team, and engaging an optimal on-demand service delivery firm will hasten 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 multitude of benefits in offering Software as a Service, standard software organizations could possibly face difficulties in making the switch to this particular model. To begin with, your software must be web enabled with all functions performed with the person with a web browser. If you have a client-server application, you have to upgrade the operation implemented in the client with HTML, and potentially other products (XML, etc.), Java, which could be viewable by a web browser on the internet. Then, in order to get functional efficiency, your software should be multi instance. You move from single instance to multi instance by loading several copies of the software of yours on one set of servers. Multi-instance allows you to share the cost of a server across a number of customers. Additional productivity enhancements and economies may be achieved by moving to multi tenant SaaS, or replacing proprietary industrial software with open source software. An opportunity for integration along with other data and applications flows is provided by web services.
Single Instance Applications
Traditional client/server applications are single instance. They require software to be placed on the user’s computer system to carry out computations and offer functionality. Clients frequently implement highly interactive functions and allow the user to shape copious amounts of data. This could be quite difficult to apply in a conventional HTML, request/reply web application interface that will require frequent page refreshes. Migrating from client/server to an Internet-based SaaS model is hugely determined by the specific application of yours.
Today, brand new Rich Internet Application (RIA) engineering is available from Macromedia, Laszlo Systems along with others that give internet applications the look-and-feel as well as functionality of a desktop application or client. RIA requires little or no software program be installed on the user’s client pc. The the majority of that’s required is a small browser plug-in or perhaps Java applet. This fundamental change to the user interface changes your client /server application to a single tenant web application.
Web applications might be individual instance or even multi-instance. A single-instance web application is commonly installed on servers that are dedicated in the customer’s data center and also used just internally, behind the firewall. At installation time frame, your program is configured to consume whatever system resources are involved and available on the computers.
When a web program is offered as a company on the internet, it must be hosted in a professional data center. This will minimize costs and delivery good quality service to your consumers. If you have a single instance application as well as over one customer, one approach may be to use a new instance of the software of yours on your own server for every client. This might work for a few customers or some big accounts, but it doesn’t scale effectively for many more customers. It also cannot be utilized for small and medium sized customers that cannot afford the set-up costs.
Moving from Single to Multiple Instances
An answer to individual client dedicated servers is to opt for multiple copies of the software of yours on a single set of servers. This is called multi-instance. Multi-instance helps you to share the price of a server across a number of customers. Most business applications utilize a database and each additional content of the software program installed requires a new data source instance also.
Installing numerous copies of your software on only one set of servers may not be as easy as it sounds. Installation procedures need being modified so that every example is put in without disrupting the security or even resource allocation of the other previously installed copies of the program.
There’s a maximum to the number of occasions which can be installed and ultimately system resources is consumed. System materials include shared memory, procedure semaphores and other inner operating system parameters. So the question becomes, “How lots of copies of your software are you able to opt for on a server?”
Obviously, you can keep installing instances of the software of yours until resources are depleted. However, you must also think about the performance of the device under load by buyers. Typically there are a maximum number of simultaneous users your software program has to support and minimum performance or response time requirements that must be met to fulfill consumer commitments.
An accurate answer to the “How a lot of copies of the software of yours can you put in holding a server?” concern is derived by test the software as you add additional instances. This is best achieved with automated testing software aids which could mimic the desired number of users putting a ton on the process.
The testing process is usually to figure out the best quantity of situations as well as the resulting performance. This’s accomplished by installing additional instances of the application of yours, and carefully monitoring system resources and running user load tests utilizing adjustable traffic modeling to determine the place at that typically returns diminish.
This process of maximizing how many instances on the servers can take one to 3 days dependant upon the size and complexity of your system, the quality of your respective system activity whether you’ve already created automated owner lot testing scripts and methods.
Minor code changes 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 should be produced in locations that are different for each instance to stay away from problems between every single instance. These issues is found and adjustments are going to need to become produced during the one to 3 weeks.
Next Steps – Reducing Costs and improving Functionality
As soon as your program is running efficiently as a multi-instance SaaS application, you may want to pursue a multi tenant architecture. In a single instance, multi tenant architecture, a number of clients talk about a single instance of the software of yours. Migration from multi instance to multi-tenant can be a significant project and may even demand a rewrite of the application of yours from the ground up. The advantages acquired in moving to multi tenancy need to be closely examined. You might find your materials much better spent in different ways.
Another possible step would be to focus on driving costs out of your model. Many opportunities have dependencies on costly proprietary databases as well as middleware. Significant savings will be realized by migrating open source alternatives or to more affordable. An investment here might provide savings which are significant in operating costs that could be transparent to the end users of yours and incredibly helpful to the bottom line of yours.
You might additionally think about adding web services for inter process communications. This is particularly appealing if your application is part of a workflow with info passing to or even gathering-from another application. Designing with web services in your mind will minimize long term integration requirements.
An individual Instance, Multi Tenant Web Application
Software corporations have designed web applications for over 10 years now. These’re frequently placed on the Intranet of a customer and just used internally, behind the firewall. This single instance of the application is needed by only one customer. This’s both single-instance and single-tenant.
You saw above how you can put up and test your software to make it multi-instance — having several copies performing in one server. Nevertheless, each copy is a single-tenant web application.
Single-tenant web applications could be changed to support many customer tenants on similar instance. Multi-tenant web programs minimize the degree of hardware needed to support multiple customers. Also, customers can self-provision the use of theirs of the software of yours by signing up for an account and putting in transaction information. This decreases, and often eliminates, the level of support required to set up a new customer.
An example of the modifications to support multi tenant is the construction of an operator interface for consumer provisioning of accounts in the system. Another modification, depending on the requirements for integration with other business systems, is an LDAP user interface for convenient provisioning and administering of user accounts. Modern database technology can enable fast duplication of the data model so every customer has its own copy of every table within the database. This is a stylish way to continue customer data separate when stored in the single database instance used for the service.
Templates for setup of the application should be provided to accelerate customization and adoption of the service by new customers. Different scenarios of system usage by customers are supported by templates.
A system management dashboard showing process use by all tenants might be needed. A mechanism must be available to measure system use for uses of billing and monitoring system load. Administrative accounts for purchasers support purposes may also need to be implemented.
It can be needed to enhance the reliability of the back-end, utilizing database know-how to implement parallel servers at physically distant places, to ensure frequent up time during periods of man-made or natural disasters.
Maintaining Performance of Your Multi Tenant Web Application
Multi-tenant applications have to deal with a number of problems that happen to be significantly less pronounced in single tenant and client/server systems. Because multi tenant systems can be found over the public Internet, consumption might be unpredictable. Therefore, demand planning should be done more carefully. The systems should be instrumented to diagnose increasing usage so more bandwidth and hardware are supplied to maintain service levels.
Driving Down Costs by Moving to Open Source
Lots of software developers are agnostic about the application server and database application utilized by their applications. The customer generally dictates these choices. If your buyers want to use Oracle as the database, then you definitely should support this popular choice. Your software program must have modules to help each database technically. Business-wise, you pass along the price of the database license to the end purchaser, in case they do not by now own a license.
But what database must you choose for the software of yours when it’s offered as a service? There might not be a need for the technical capabilities of an expensive commercial database. Likewise, the economics of extending your software as a service might preclude the expense of a commercial data source license fee.
Thus, many companies converting their software to a service is going to choose one of the low or perhaps no cost open source directories available today. These database choices are now widely used and robust. Advanced features such as redundant clustering and automated backup capabilities rival those of commercial databases.
If your application does not however support one of these databases, some technical issues have to be overcome. The format and also syntax of almost all SQL employed to access and manipulate details in a database is standard. However, nearly every database vendor extends many applications and SQL use these extensions, including specific functions to adjust as well as compare information. There can be many variations in how each database vendor treats cursors, triggers, data types and package variables. If you utilize SQL extensions in your application, you are going to need to recode these SQL assertions to handle the target open source database.
Migration to on demand delivery models works cohesively with bootstrapped know-how deployment and investment. Even in case the open source database application does not have all of the features you desire to have and if they run slightly slower, you could have no alternative left economically when you initially start offering your software as a service. It might not generate financial sense for you to invest tens of a huge number of dollars in a commercial database license while you are able to merely charge a couple of 100 dollars per subscriber. Over time, as the subscriber base of yours grows, you may choose to change to the commercial database. Until you are able to afford it or activity levels grow to levels that are high, open source database solutions might be your single useful solution.
Another relatively costly part of your software is the license needed for a commercial Java program server. This is another category of a program where many open source choices exist. By and large, conversion over to a wide open source program server is comparatively straightforward. All have to comply with the specification for Java 2 Enterprise Edition (J2EE) and the code of yours shouldn’t need any modifications.
But, there are disparities in the way you install the code of yours within the application server. The setting up and set up process is documented for just about all open source program servers. You should modify your system process to support the requirements of the application server you make use of.
Once more, the business case is crisp and clear. A large community of buyers makes open source program servers a safe alternative. The price of a commercial program server is challenging to justify when you’re merely starting out offering your software as a service. As with the conversion to-and-from an open source database, you can always switch back to a commercial program server as your subscriber base grows.
Web Services For Data Integration and Transfer
When customers install your software in their own data center, behind the firewall of theirs, they are in a position to add the software along with other data and applications sources. When you make the software of yours available as a system over the Internet, subsequently integration is not as easy. authentication and Encryption must be offered to let secure data transfers.
The most used approach to data transfers and integration over the public Internet is by using web services, the SOAP process and WSDL. If your program has an Application Programming Interface (API) in a native language as C or Java, you will need to create a web services interface which often utilizes the API to communicate with your software and helps bidirectional data flow with the external world using SOAP.
Time to Market
Time is of the essence. As the brand new SaaS model is embraced, early entrants are going to have a major advantage. Evolving your application to web enabled, multi instance will allow you to become a SaaS player fast. Time to promote problems should be considered when determining whether to partner with pros or perhaps get migration and infrastructure development in-house.
The Benefits of Outsourcing Software Development
Outsourced developers, who’re experienced with SaaS, can easily allow you to progress quickly in migrating to this particular brand new model. They’ll offer set up plus load testing 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 develop a multi-instance or multi-tenant program out of your client/server application.
Importantly, an outsourced designer can alter your existing software product without disrupting the flow of new functions and enhancements that your present customers expect. With a maintained outsourcing relationship, you can continue to focus on your current business while outsourced developers are creating applications to support the business model of yours. Outsourced developers are going to provide you both a charge and time savings in attaining the SaaS model.
To grab the competitive lead in your space by leveraging SaaS, you need to consider working with knowledgeable vendors to guide you through the process of transforming your application.