My assumption is that you have a fully functional project management application in saaspm folder as mentioned earlier. Following are the conversion steps.
Create a new table in saaspm database for global sites. This table has a minimal schema as follows (XML).
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.
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.
Similarly identify and modify tables that require ‘globalid' for domain specific settings.
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.
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.
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 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 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 such as module management, theme management, price management, subscription management, payment settings, domain management, account management etc.
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.
Global admin can install and manage themes which are made available to domain users.
Module listing and pricing can be configured. Those domain users who require specific modules need to purchase and subscribe for a specific period.
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.
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.
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.
SAAS model has many advantages over traditional web applications.
SAAS model has some disadvantages also there. A few disadvantages are here.
Any operational business model relies heavily on IT support and the help desk to achieve maximum uptime for all IT systems. This white paper addresses ways for help desk analysts and IT support staff to easily and efficiently handle their workload by simplifying and automating processes to increase time and operational cost savings, enhance productivity, and boost customer satisfaction. more