Conversion of Web Applications to SAAS Model

Updated: February 19, 2011

Conversion Steps

My assumption is that you have a fully functional project management application in saaspm folder as mentioned earlier. Following are the conversion steps.

Create global site's table (master)

Create a new table in saaspm database for global sites. This table has a minimal schema as follows (XML).

101

3cc1224dcdb34dc16b24b24843714b06cbc30d4f

demo1admin

demo1pass

A

demo1.najeem.com

102

59b5093df9d6e465786829a3036878d80b716833

demo2admin

demo2pass

A

demo2.najeem.com

Create Bootstrap

Create a bootstrap file with the following code.

$g = new GlobalSite;

$con = $g->Connection();

echo 'Site ID is '. $g->siteID($_SERVER['HTTP_HOST'],$con);

Here I'm calling a custom class file that I have created for getting database connection and then global SiteID.

$_SERVER['HTTP_HOST'] will give the current web site domain name. siteID method will return unique global site ID (globalid) for that domain.

After all we have identified which domain is requesting the system resources. Based on the globalid, site specific information can be loaded or transferred to the requester.

Enhance Schema for SAAS

Since we are converting an existing application (saaspm) to SAAS model, we have to customize the database schema of application. There is only one additional field in the schema which is the globalid. Revised schema for table ‘users' is as follows.

1

102

najeem

Administrator

e10adc3949ba59abbe56e057f20f883e

test@najeem.com

t

0

0

f

en

Similarly identify and modify tables that require ‘globalid' for domain specific settings.

Code customization

In order to fit with new schema and resource isolation or filtering based on globalid (unique and domain specific), you have to enhance the sql queries through out the application.

A basic example is to change queries with proper ‘WHERE' condition to account the globalid filtering.

Installation

After updating required SQL queries in application, it's ready to port. If you want to install SAAS project management application in a new server, you can export the modified database and move the updated script files and do your configuration for global site. Create your SAAS admin interface.

Run Application

End User

End user can browse the web site as http://demo1.najeem.com or http://demo2.najeem.com . Session handling is based on individual domain and hence user from demo1 can't login or access demo2 and vice versa.

Site Admin

Site admin can access project management admin section and manage his web site settings, users, projects etc. Site admin of demo1 can't access demo2 as explained before.

SAAS Admin

SAAS application settings, components, modules, accessibility, payment etc can be managed from SAAS global admin. SAAS admin interface is a custom development or an enhanced admin interface of project management application. Here any additional functionality can be implemented for payment, SLA etc.

Global Settings

Global settings such as module management, theme management, price management, subscription management, payment settings, domain management, account management etc.

Module Management

Global admin can install and uninstall plug and play modules from this interface. Based on domain user's subscription level, these modules are made available to those domains.

Theme management

Global admin can install and manage themes which are made available to domain users.

Pricing and Subscription

Module listing and pricing can be configured. Those domain users who require specific modules need to purchase and subscribe for a specific period.

SLA

No restrictions in subscription as will help to start / close account any time. Service Level Agreement specifies the Terms of service (TOS) and that will help the domain user to use the service.

Scalability

SAAS application has a centralized application engine and module repository. Module updates will directly affect all web sites. It will help to add new modules and expand application. Core application updates can be done centrally.

Security

Application security is centrally managed and domain specific security is maintained based on globalid. Apart from traditional web sites, SAAS application has limitations that domain user has no access to source of application.

Advantages

SAAS model has many advantages over traditional web applications.

  • SAAS provides one centralized application engine which is very easy to maintain
  • Domain user has no head ache of web site hosting and maintenance.
  • Domain user has flexible SLA to start or terminate service.
  • Very easy and less time consuming to set up a new web site in SAAS
  • SAAS reduces cost in a great extent.
  • Secure and powerful

Disadvantages

SAAS model has some disadvantages also there. A few disadvantages are here.

  • All web sites under the SAAS framework will go down if the central application goes down.
  • It consumes much higher bandwidth for all shared web sites.
  • It required load balancers and clustered servers to run the services.
  • Data is storing in 3rd party database and hence its marketability is suspicious.

Featured Research