SlideShare a Scribd company logo
Open Architecture for Developing Multitenant Software-as-a-Service Applications 
Javier Espadas 
David Concha 
David Romero 
Arturo Molina The First International Conference on Cloud Computing, GRIDs, and Virtualization
Open Architecture for Developing Multitenant Software-as-a-Service Applications 
Lisbon, Portugal, Nov 2010SaaS 
SaaS is the delivery of software applications over a hosted platform accessed through the Internet using a web browser and typically priced on a pay-as-you- go basis.
Open Architecture for Developing Multitenant Software-as-a-Service Applications 
Lisbon, Portugal, Nov 2010Background 
Software-as-a-Service (SaaS) has become the new buzz-word around software industry. 
A wide range of online applications, including e-mail, human resources, business analytics, customer relationship and enterprise planning, are available. 
Unfortunately, several SaaS providers offer their own architecture and their own implementation requirements. 
Salesforce.com, for example, provides the Force.com development platform and it uses a proprietary development model for building SaaS applications.
Open Architecture for Developing Multitenant Software-as-a-Service Applications 
Lisbon, Portugal, Nov 2010 
Traditional premise 
Current ASPs define a single static revenue models. ASPs are not able to change their revenue models in a cost-effective way. 
The current implementation of ASP only supports the notion of one service provider. 
ASP services are designed, developed and deployed as Web applications. They are managed through a Web container. 
This research work addresses these issues, by proposing an architecture for achieving an implementation capable of deploying applications over the Internet on the service premise.
Open Architecture for Developing Multitenant Software-as-a-Service Applications 
Lisbon, Portugal, Nov 2010 
Multitenant. Architecture should support for multiple tenant client. 
Single version. Applications offered as services are shared for all clients 
Logical data separation. Each application has a domain data but in the same scheme. 
Multi-supplier. Multiple SaaS vendors can deploy their application. 
Domain container. Conceptual form to evolve applications’ supplier within the platform. The proposal is a customizable portal as access point. 
Application integration. Application should be able to communicate with each other. 
SaaS requirements
Open Architecture for Developing Multitenant Software-as-a-Service Applications 
Lisbon, Portugal, Nov 2010SaaS platform architectureSaaSPlatformSubscription ServiceMetering ServiceCommunications Service(Mail, SMS) Integrations Service(Google Apps) SaaSApplicationSaaSApplicationSaaS SDKSaaS TagLibsJava LibrariesXML Configuration FilesMulti-tentantSaaSDB SaaS Core Web App SaaSApplication Deployment Manager Infrastructure ManagementSOAAuth, Log, Account
Open Architecture for Developing Multitenant Software-as-a-Service Applications 
Lisbon, Portugal, Nov 2010 
SaaS Platform technologies 
Requirement 
Technology 
Language Platform 
J2EE (Java 1.6) 
Web Container 
Apache Tomcat 6 
Web Framework 
Struts 2 
Web Services 
Apache Axis2 
Dependency Injection 
Spring 2 
Dependency Injection + Web Services integration 
WSO2 
Multi-tenancy Layer 
JoSQL + Java Annotations 
Persistence Layer 
Hibernate3andJavaPersistenceAPI(JPA) 
Database Management 
MySQL5
Open Architecture for Developing Multitenant Software-as-a-Service Applications 
Lisbon, Portugal, Nov 2010Business services 
Metering & monitoring.SaaS platform provides automatic and non-intrusive support for metering applications and tenant-based monitoring. 
Mailing.A component for sending/managing electronic mail within applications without complex configuration and programming. 
Application customization.The customization component allows the subscriber to customize their own data by adding fields to their business objects (e.g., contact, lead, bill, etc.). 
Each business component application implements its own Web services.
Open Architecture for Developing Multitenant Software-as-a-Service Applications 
Lisbon, Portugal, Nov 2010SaaS application 
Views.All the screens and forms that the user can interact with. 
Business Logic.Code for actions, business logic and data source accesses. 
Configuration files.XML or properties files. 
Database.Storage for application data; logically separated for each subscriber. 
service-app.war/ (root folder) -WEB-INF/ appService.xmlweb.xmlapplicationContext.xmlaxis2Config.xmlclasses-pages-images
Open Architecture for Developing Multitenant Software-as-a-Service Applications 
Lisbon, Portugal, Nov 2010appService.xml file 
<?xml version="1.0" encoding="UTF-8"?> 
<appService> 
<name>Contact Manager</name> 
<label>menu.contactapp</label> 
<version>1.0</version> 
<description>...</description> 
<defaultProvider>TGHEWFS</defaultProvider> 
<Role name="manager" description="..."> 
<Menu> 
<MenuItemlabel="Contacts" path="/contacts/view.action"/> 
<MenuItemlabel="Configure" path="/config/view.action"/> 
</Menu> 
</Role> 
<Role name="user" description="..."> 
<Menu> 
<MenuItemlabel="Contacts" path="/contacts/view.action"/> 
</Menu> 
</Role> 
</appService>
Open Architecture for Developing Multitenant Software-as-a-Service Applications 
Lisbon, Portugal, Nov 2010Application initializationDeployment Manager 
Reads appService.xmlRetrieves information of service, such as name, version 
Creates or updates application rolesAction classes are inspected for insertion or updateFunctions for each module are inspected for insertion or updateBoth modules and functions are synchronized with the platform databasewar file is deployed inTomcat
Open Architecture for Developing Multitenant Software-as-a-Service Applications 
Lisbon, Portugal, Nov 2010SaaS Core Web Application (SWCA) 
A web application with specific characteristics for managing tenant-based authentication, security and control access lists. 
Once the user has been authenticated through an email and password, SCWA links the user to its subscriber ID. 
SCWA forms a session cookie with all this information and stores it within the user session. 
A method getAuthenticatedUser()can be called from any application and it retrieves the session cookie of the authenticated user from the SCWA context. 
SaaSCore Web App Look for subscriberInternetGet subscriber (tenant) ID Set session cookieUserUserUserUser
Open Architecture for Developing Multitenant Software-as-a-Service Applications 
Lisbon, Portugal, Nov 2010Multitenant Persistence 
SaaS platform implements a Shared Database - Shared Schemasmechanism. 
Each service application implements its own database, separating the multitenant information with a subscriber ID key. 
The persistent layer is based on Object Relational Mapping technologies (JPA + Hibernate). 
Multitenant pre-processing implementation is achieved by setting a Struts2 interceptor in the call stack. 
class Data ModelContact «column» *PKid: BIGINT*subscriberId: BIGINT*FKindustryTypeId: BIGINT firstName: VARCHAR(100) lastName: VARCHAR(100) «FK» + FK_Contact_IndustryType(BIGINT) «PK» + PK_Contact(BIGINT) «unique» + UQ_Contact_id() IndustryType «column» *PKid: BIGINT name: VARCHAR(100) «PK» + PK_IndustryType(BIGINT) 0..* (industryTypeId = id) «FK»1
Open Architecture for Developing Multitenant Software-as-a-Service Applications 
Lisbon, Portugal, Nov 2010 
Struts2 interceptor for multitenancy 
Object action = invocation.getProxy().getAction(); 
//getting the subscriber ID from the authentication context 
long subscriberId= Auth.getSubscriberId(); 
for (Field field: clazz.getDeclaredFields() ){ 
if (field.isAnnotationPresent(Multitenant.class)){ 
Multitenant filter = (Multitenant)field.getAnnotation(Multitenant.class); 
String attribute = filter.getAttribute(); 
String property = field.getName() ; 
Object objList= BeanUtils.getProperty(action, property);String className= getClassName( objList); 
Query q = new Query ();// create and perform a query over the list 
q.parse("SELECT * FROM "+className+" WHERE "+attribute+" = "+subscriberId); 
QueryResultsqr= q.execute(list); 
List newList= qr.getResults(); 
//setting back the filtered list by tenant 
BeanUtils.setProperty(action,property,newList); 
}}
Open Architecture for Developing Multitenant Software-as-a-Service Applications 
Lisbon, Portugal, Nov 2010 
Multitenant subscriptions 
Different types of subscriptions are handled by a component called Subscription Type Management. 
A Resource Management Remote layer performs access to distributed resource managers from different and heterogeneous sources. 
Resources can be any type of accountable and billable resources such as persistent rows (e.g., contacts, leads, bills, surveys, etc.) or hardware (e.g., CPU cycles, bandwidth, storage, etc.). 
SubscriptionSubscription 1234Subscription TypeContact Premium1000 yearContact 10030 monthContact Basic2 monthApplication ServiceContact Manager ServiceSubscriberCompany ACompany BclientproviderRestriction TypePackageRestrictionActive Contacts http://companyb.com/activeContacts?wsdlTime
Open Architecture for Developing Multitenant Software-as-a-Service Applications 
Lisbon, Portugal, Nov 2010Conclusion 
A Software-as-a-Service (SaaS) platform has been described and its implementation on open source technologies. 
This platform implements a set of business services and components to deploy Web applications and manage them as SaaS applications. 
These SaaS applications use shared database schema in order to implement multi-tenancy mechanisms by logically separating their data for each subscriber. 
This platform and its business services are currentlyused for deploying industry-class SaaS solutions in real production environments.

More Related Content

PPTX
ELEKS DevTalks #4: Amazon Web Services Crash Course
PPTX
Real World Azure - Dev
PPTX
Design Strategy for Data Isolation in SaaS Model
PDF
Tenant-based resource allocation model for cost-effective scaling Software-as...
PPTX
Software as a service
PPTX
Open Service Federation Framework
PPTX
Security Architecture Best Practices for SaaS Applications
PPTX
SaaS Architecture Past and Present
ELEKS DevTalks #4: Amazon Web Services Crash Course
Real World Azure - Dev
Design Strategy for Data Isolation in SaaS Model
Tenant-based resource allocation model for cost-effective scaling Software-as...
Software as a service
Open Service Federation Framework
Security Architecture Best Practices for SaaS Applications
SaaS Architecture Past and Present

What's hot (20)

PPTX
Multi Cloud Architecture Approach
PDF
Microservices for Application Modernisation
PDF
Best Practice Public Cloud Security
PDF
Presentation cloud management platform
PPTX
PPTX
Webinar Series Part 2 -Recipe for a Successful SaaS Company - Migrating Sing...
PPT
HP Cloud System Matrix Overview
PPTX
Introduction to PaaS
PDF
Gartner report on cloud360 cloud management platform
PPTX
Cloud Service Models
PDF
An Introduction to Alibaba Cloud’s Message Service
PPT
An introduction and overview to Software as a Service
PPTX
CF SUMMIT: Partnerships, Business and Cloud Foundry
PPTX
Building Multi-tenant, Configurable, High Quality Applications on .NET for an...
PPTX
Cloud proposition for banking
PDF
Paying for PaaS
PDF
Vmware Seminar Security & Compliance for the cloud with Trend Micro
PPT
Ibm cloud forum managing heterogenousclouds_final
PDF
Why a Multi-cloud Strategy is Essential
PPTX
Cloud Foundry - How Service broker integrates with AppDirect to provide catal...
Multi Cloud Architecture Approach
Microservices for Application Modernisation
Best Practice Public Cloud Security
Presentation cloud management platform
Webinar Series Part 2 -Recipe for a Successful SaaS Company - Migrating Sing...
HP Cloud System Matrix Overview
Introduction to PaaS
Gartner report on cloud360 cloud management platform
Cloud Service Models
An Introduction to Alibaba Cloud’s Message Service
An introduction and overview to Software as a Service
CF SUMMIT: Partnerships, Business and Cloud Foundry
Building Multi-tenant, Configurable, High Quality Applications on .NET for an...
Cloud proposition for banking
Paying for PaaS
Vmware Seminar Security & Compliance for the cloud with Trend Micro
Ibm cloud forum managing heterogenousclouds_final
Why a Multi-cloud Strategy is Essential
Cloud Foundry - How Service broker integrates with AppDirect to provide catal...
Ad

Similar to Open Architecture for Developing Multitenant Software-as-a-Service Applications (20)

PPTX
Keeping the Noisy Neighbors Happy
PDF
Cloud application services (saa s) – multi tenant data architecture
PDF
PDF
IRJET - Application Development Approach to Transform Traditional Web Applica...
PPT
SWsoft Hosting Solutions for SaaS
PDF
SaaS Introduction-May2014
PPT
S+S Architecture Overview
PDF
Force.Com Multitenancy
PDF
Modern Application Development for the Enterprise
PPTX
Developing saas application in azure
PDF
Architecting SaaS
PDF
Build end-to-end solutions with BlueMix, Avi Vizel & Ziv Dai, IBM
PDF
Software Architecture and Architectors: useless VS valuable
PPT
ArcReady - Architecting Modern Distributed Applications
PDF
SaaS Architecture.pdf
PDF
microservices-is-it-the-holy-grail-a-perspective.pdf
PPT
SAAS - Software as a Service
PDF
Productive Expansion on Amazon Web Services with BlazeClan
ODP
Open Source SOA@OpenFest.org
PPTX
Azure Application Architecture Guide
Keeping the Noisy Neighbors Happy
Cloud application services (saa s) – multi tenant data architecture
IRJET - Application Development Approach to Transform Traditional Web Applica...
SWsoft Hosting Solutions for SaaS
SaaS Introduction-May2014
S+S Architecture Overview
Force.Com Multitenancy
Modern Application Development for the Enterprise
Developing saas application in azure
Architecting SaaS
Build end-to-end solutions with BlueMix, Avi Vizel & Ziv Dai, IBM
Software Architecture and Architectors: useless VS valuable
ArcReady - Architecting Modern Distributed Applications
SaaS Architecture.pdf
microservices-is-it-the-holy-grail-a-perspective.pdf
SAAS - Software as a Service
Productive Expansion on Amazon Web Services with BlazeClan
Open Source SOA@OpenFest.org
Azure Application Architecture Guide
Ad

Recently uploaded (20)

PDF
Empathic Computing: Creating Shared Understanding
PPTX
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
PDF
Reach Out and Touch Someone: Haptics and Empathic Computing
PPTX
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
PPTX
A Presentation on Artificial Intelligence
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PDF
Network Security Unit 5.pdf for BCA BBA.
PDF
Review of recent advances in non-invasive hemoglobin estimation
PPTX
Cloud computing and distributed systems.
PDF
cuic standard and advanced reporting.pdf
PPTX
Digital-Transformation-Roadmap-for-Companies.pptx
PDF
Electronic commerce courselecture one. Pdf
PDF
Chapter 3 Spatial Domain Image Processing.pdf
PDF
Advanced methodologies resolving dimensionality complications for autism neur...
Empathic Computing: Creating Shared Understanding
PA Analog/Digital System: The Backbone of Modern Surveillance and Communication
Dropbox Q2 2025 Financial Results & Investor Presentation
The Rise and Fall of 3GPP – Time for a Sabbatical?
Diabetes mellitus diagnosis method based random forest with bat algorithm
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
Reach Out and Touch Someone: Haptics and Empathic Computing
Detection-First SIEM: Rule Types, Dashboards, and Threat-Informed Strategy
A Presentation on Artificial Intelligence
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
“AI and Expert System Decision Support & Business Intelligence Systems”
Network Security Unit 5.pdf for BCA BBA.
Review of recent advances in non-invasive hemoglobin estimation
Cloud computing and distributed systems.
cuic standard and advanced reporting.pdf
Digital-Transformation-Roadmap-for-Companies.pptx
Electronic commerce courselecture one. Pdf
Chapter 3 Spatial Domain Image Processing.pdf
Advanced methodologies resolving dimensionality complications for autism neur...

Open Architecture for Developing Multitenant Software-as-a-Service Applications

  • 1. Open Architecture for Developing Multitenant Software-as-a-Service Applications Javier Espadas David Concha David Romero Arturo Molina The First International Conference on Cloud Computing, GRIDs, and Virtualization
  • 2. Open Architecture for Developing Multitenant Software-as-a-Service Applications Lisbon, Portugal, Nov 2010SaaS SaaS is the delivery of software applications over a hosted platform accessed through the Internet using a web browser and typically priced on a pay-as-you- go basis.
  • 3. Open Architecture for Developing Multitenant Software-as-a-Service Applications Lisbon, Portugal, Nov 2010Background Software-as-a-Service (SaaS) has become the new buzz-word around software industry. A wide range of online applications, including e-mail, human resources, business analytics, customer relationship and enterprise planning, are available. Unfortunately, several SaaS providers offer their own architecture and their own implementation requirements. Salesforce.com, for example, provides the Force.com development platform and it uses a proprietary development model for building SaaS applications.
  • 4. Open Architecture for Developing Multitenant Software-as-a-Service Applications Lisbon, Portugal, Nov 2010 Traditional premise Current ASPs define a single static revenue models. ASPs are not able to change their revenue models in a cost-effective way. The current implementation of ASP only supports the notion of one service provider. ASP services are designed, developed and deployed as Web applications. They are managed through a Web container. This research work addresses these issues, by proposing an architecture for achieving an implementation capable of deploying applications over the Internet on the service premise.
  • 5. Open Architecture for Developing Multitenant Software-as-a-Service Applications Lisbon, Portugal, Nov 2010 Multitenant. Architecture should support for multiple tenant client. Single version. Applications offered as services are shared for all clients Logical data separation. Each application has a domain data but in the same scheme. Multi-supplier. Multiple SaaS vendors can deploy their application. Domain container. Conceptual form to evolve applications’ supplier within the platform. The proposal is a customizable portal as access point. Application integration. Application should be able to communicate with each other. SaaS requirements
  • 6. Open Architecture for Developing Multitenant Software-as-a-Service Applications Lisbon, Portugal, Nov 2010SaaS platform architectureSaaSPlatformSubscription ServiceMetering ServiceCommunications Service(Mail, SMS) Integrations Service(Google Apps) SaaSApplicationSaaSApplicationSaaS SDKSaaS TagLibsJava LibrariesXML Configuration FilesMulti-tentantSaaSDB SaaS Core Web App SaaSApplication Deployment Manager Infrastructure ManagementSOAAuth, Log, Account
  • 7. Open Architecture for Developing Multitenant Software-as-a-Service Applications Lisbon, Portugal, Nov 2010 SaaS Platform technologies Requirement Technology Language Platform J2EE (Java 1.6) Web Container Apache Tomcat 6 Web Framework Struts 2 Web Services Apache Axis2 Dependency Injection Spring 2 Dependency Injection + Web Services integration WSO2 Multi-tenancy Layer JoSQL + Java Annotations Persistence Layer Hibernate3andJavaPersistenceAPI(JPA) Database Management MySQL5
  • 8. Open Architecture for Developing Multitenant Software-as-a-Service Applications Lisbon, Portugal, Nov 2010Business services Metering & monitoring.SaaS platform provides automatic and non-intrusive support for metering applications and tenant-based monitoring. Mailing.A component for sending/managing electronic mail within applications without complex configuration and programming. Application customization.The customization component allows the subscriber to customize their own data by adding fields to their business objects (e.g., contact, lead, bill, etc.). Each business component application implements its own Web services.
  • 9. Open Architecture for Developing Multitenant Software-as-a-Service Applications Lisbon, Portugal, Nov 2010SaaS application Views.All the screens and forms that the user can interact with. Business Logic.Code for actions, business logic and data source accesses. Configuration files.XML or properties files. Database.Storage for application data; logically separated for each subscriber. service-app.war/ (root folder) -WEB-INF/ appService.xmlweb.xmlapplicationContext.xmlaxis2Config.xmlclasses-pages-images
  • 10. Open Architecture for Developing Multitenant Software-as-a-Service Applications Lisbon, Portugal, Nov 2010appService.xml file <?xml version="1.0" encoding="UTF-8"?> <appService> <name>Contact Manager</name> <label>menu.contactapp</label> <version>1.0</version> <description>...</description> <defaultProvider>TGHEWFS</defaultProvider> <Role name="manager" description="..."> <Menu> <MenuItemlabel="Contacts" path="/contacts/view.action"/> <MenuItemlabel="Configure" path="/config/view.action"/> </Menu> </Role> <Role name="user" description="..."> <Menu> <MenuItemlabel="Contacts" path="/contacts/view.action"/> </Menu> </Role> </appService>
  • 11. Open Architecture for Developing Multitenant Software-as-a-Service Applications Lisbon, Portugal, Nov 2010Application initializationDeployment Manager Reads appService.xmlRetrieves information of service, such as name, version Creates or updates application rolesAction classes are inspected for insertion or updateFunctions for each module are inspected for insertion or updateBoth modules and functions are synchronized with the platform databasewar file is deployed inTomcat
  • 12. Open Architecture for Developing Multitenant Software-as-a-Service Applications Lisbon, Portugal, Nov 2010SaaS Core Web Application (SWCA) A web application with specific characteristics for managing tenant-based authentication, security and control access lists. Once the user has been authenticated through an email and password, SCWA links the user to its subscriber ID. SCWA forms a session cookie with all this information and stores it within the user session. A method getAuthenticatedUser()can be called from any application and it retrieves the session cookie of the authenticated user from the SCWA context. SaaSCore Web App Look for subscriberInternetGet subscriber (tenant) ID Set session cookieUserUserUserUser
  • 13. Open Architecture for Developing Multitenant Software-as-a-Service Applications Lisbon, Portugal, Nov 2010Multitenant Persistence SaaS platform implements a Shared Database - Shared Schemasmechanism. Each service application implements its own database, separating the multitenant information with a subscriber ID key. The persistent layer is based on Object Relational Mapping technologies (JPA + Hibernate). Multitenant pre-processing implementation is achieved by setting a Struts2 interceptor in the call stack. class Data ModelContact «column» *PKid: BIGINT*subscriberId: BIGINT*FKindustryTypeId: BIGINT firstName: VARCHAR(100) lastName: VARCHAR(100) «FK» + FK_Contact_IndustryType(BIGINT) «PK» + PK_Contact(BIGINT) «unique» + UQ_Contact_id() IndustryType «column» *PKid: BIGINT name: VARCHAR(100) «PK» + PK_IndustryType(BIGINT) 0..* (industryTypeId = id) «FK»1
  • 14. Open Architecture for Developing Multitenant Software-as-a-Service Applications Lisbon, Portugal, Nov 2010 Struts2 interceptor for multitenancy Object action = invocation.getProxy().getAction(); //getting the subscriber ID from the authentication context long subscriberId= Auth.getSubscriberId(); for (Field field: clazz.getDeclaredFields() ){ if (field.isAnnotationPresent(Multitenant.class)){ Multitenant filter = (Multitenant)field.getAnnotation(Multitenant.class); String attribute = filter.getAttribute(); String property = field.getName() ; Object objList= BeanUtils.getProperty(action, property);String className= getClassName( objList); Query q = new Query ();// create and perform a query over the list q.parse("SELECT * FROM "+className+" WHERE "+attribute+" = "+subscriberId); QueryResultsqr= q.execute(list); List newList= qr.getResults(); //setting back the filtered list by tenant BeanUtils.setProperty(action,property,newList); }}
  • 15. Open Architecture for Developing Multitenant Software-as-a-Service Applications Lisbon, Portugal, Nov 2010 Multitenant subscriptions Different types of subscriptions are handled by a component called Subscription Type Management. A Resource Management Remote layer performs access to distributed resource managers from different and heterogeneous sources. Resources can be any type of accountable and billable resources such as persistent rows (e.g., contacts, leads, bills, surveys, etc.) or hardware (e.g., CPU cycles, bandwidth, storage, etc.). SubscriptionSubscription 1234Subscription TypeContact Premium1000 yearContact 10030 monthContact Basic2 monthApplication ServiceContact Manager ServiceSubscriberCompany ACompany BclientproviderRestriction TypePackageRestrictionActive Contacts http://companyb.com/activeContacts?wsdlTime
  • 16. Open Architecture for Developing Multitenant Software-as-a-Service Applications Lisbon, Portugal, Nov 2010Conclusion A Software-as-a-Service (SaaS) platform has been described and its implementation on open source technologies. This platform implements a set of business services and components to deploy Web applications and manage them as SaaS applications. These SaaS applications use shared database schema in order to implement multi-tenancy mechanisms by logically separating their data for each subscriber. This platform and its business services are currentlyused for deploying industry-class SaaS solutions in real production environments.