SlideShare a Scribd company logo
1 of 16
Download to read offline
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

What's hot

Microservices for Application Modernisation
Microservices for Application ModernisationMicroservices for Application Modernisation
Microservices for Application ModernisationAjay Kumar Uppal
 
AWS Partner Presentation - Datapipe - Deploying Hybrid IT, AWS Summit 2012 - NYC
AWS Partner Presentation - Datapipe - Deploying Hybrid IT, AWS Summit 2012 - NYCAWS Partner Presentation - Datapipe - Deploying Hybrid IT, AWS Summit 2012 - NYC
AWS Partner Presentation - Datapipe - Deploying Hybrid IT, AWS Summit 2012 - NYCAmazon Web Services
 
Best Practice Public Cloud Security
Best Practice Public Cloud SecurityBest Practice Public Cloud Security
Best Practice Public Cloud SecurityJason Singh
 
Presentation cloud management platform
Presentation   cloud management platformPresentation   cloud management platform
Presentation cloud management platformxKinAnx
 
Webinar Series Part 2 -Recipe for a Successful SaaS Company - Migrating Sing...
Webinar Series Part 2 -Recipe for a Successful SaaS Company -  Migrating Sing...Webinar Series Part 2 -Recipe for a Successful SaaS Company -  Migrating Sing...
Webinar Series Part 2 -Recipe for a Successful SaaS Company - Migrating Sing...Techcello
 
HP Cloud System Matrix Overview
HP Cloud System Matrix OverviewHP Cloud System Matrix Overview
HP Cloud System Matrix OverviewRien du Pre
 
Introduction to PaaS
Introduction to PaaSIntroduction to PaaS
Introduction to PaaSChris Haddad
 
Gartner report on cloud360 cloud management platform
Gartner report on cloud360 cloud management platformGartner report on cloud360 cloud management platform
Gartner report on cloud360 cloud management platformCognizant
 
An Introduction to Alibaba Cloud’s Message Service
An Introduction to Alibaba Cloud’s Message ServiceAn Introduction to Alibaba Cloud’s Message Service
An Introduction to Alibaba Cloud’s Message ServiceAlibaba Cloud
 
CF SUMMIT: Partnerships, Business and Cloud Foundry
CF SUMMIT: Partnerships, Business and Cloud FoundryCF SUMMIT: Partnerships, Business and Cloud Foundry
CF SUMMIT: Partnerships, Business and Cloud FoundryNima Badiey
 
Building Multi-tenant, Configurable, High Quality Applications on .NET for an...
Building Multi-tenant, Configurable, High Quality Applications on .NET for an...Building Multi-tenant, Configurable, High Quality Applications on .NET for an...
Building Multi-tenant, Configurable, High Quality Applications on .NET for an...Techcello
 
Cloud proposition for banking
Cloud proposition for bankingCloud proposition for banking
Cloud proposition for bankingAjay Kumar Uppal
 
Paying for PaaS
Paying for PaaSPaying for PaaS
Paying for PaaSWSO2
 
Vmware Seminar Security & Compliance for the cloud with Trend Micro
Vmware Seminar Security & Compliance for the cloud with Trend MicroVmware Seminar Security & Compliance for the cloud with Trend Micro
Vmware Seminar Security & Compliance for the cloud with Trend MicroGraeme Wood
 
Ibm cloud forum managing heterogenousclouds_final
Ibm cloud forum managing heterogenousclouds_finalIbm cloud forum managing heterogenousclouds_final
Ibm cloud forum managing heterogenousclouds_finalMauricio Godoy
 
Why a Multi-cloud Strategy is Essential
Why a Multi-cloud Strategy is EssentialWhy a Multi-cloud Strategy is Essential
Why a Multi-cloud Strategy is EssentialAlibaba Cloud
 

What's hot (20)

Multi Cloud Architecture Approach
Multi Cloud Architecture ApproachMulti Cloud Architecture Approach
Multi Cloud Architecture Approach
 
Microservices for Application Modernisation
Microservices for Application ModernisationMicroservices for Application Modernisation
Microservices for Application Modernisation
 
AWS Partner Presentation - Datapipe - Deploying Hybrid IT, AWS Summit 2012 - NYC
AWS Partner Presentation - Datapipe - Deploying Hybrid IT, AWS Summit 2012 - NYCAWS Partner Presentation - Datapipe - Deploying Hybrid IT, AWS Summit 2012 - NYC
AWS Partner Presentation - Datapipe - Deploying Hybrid IT, AWS Summit 2012 - NYC
 
Best Practice Public Cloud Security
Best Practice Public Cloud SecurityBest Practice Public Cloud Security
Best Practice Public Cloud Security
 
Presentation cloud management platform
Presentation   cloud management platformPresentation   cloud management platform
Presentation cloud management platform
 
XaaS Overview
XaaS OverviewXaaS Overview
XaaS Overview
 
Webinar Series Part 2 -Recipe for a Successful SaaS Company - Migrating Sing...
Webinar Series Part 2 -Recipe for a Successful SaaS Company -  Migrating Sing...Webinar Series Part 2 -Recipe for a Successful SaaS Company -  Migrating Sing...
Webinar Series Part 2 -Recipe for a Successful SaaS Company - Migrating Sing...
 
HP Cloud System Matrix Overview
HP Cloud System Matrix OverviewHP Cloud System Matrix Overview
HP Cloud System Matrix Overview
 
Introduction to PaaS
Introduction to PaaSIntroduction to PaaS
Introduction to PaaS
 
Gartner report on cloud360 cloud management platform
Gartner report on cloud360 cloud management platformGartner report on cloud360 cloud management platform
Gartner report on cloud360 cloud management platform
 
Cloud Service Models
Cloud Service ModelsCloud Service Models
Cloud Service Models
 
An Introduction to Alibaba Cloud’s Message Service
An Introduction to Alibaba Cloud’s Message ServiceAn Introduction to Alibaba Cloud’s Message Service
An Introduction to Alibaba Cloud’s Message Service
 
An introduction and overview to Software as a Service
An introduction and overview to Software as a Service An introduction and overview to Software as a Service
An introduction and overview to Software as a Service
 
CF SUMMIT: Partnerships, Business and Cloud Foundry
CF SUMMIT: Partnerships, Business and Cloud FoundryCF SUMMIT: Partnerships, Business and Cloud Foundry
CF SUMMIT: Partnerships, Business and Cloud Foundry
 
Building Multi-tenant, Configurable, High Quality Applications on .NET for an...
Building Multi-tenant, Configurable, High Quality Applications on .NET for an...Building Multi-tenant, Configurable, High Quality Applications on .NET for an...
Building Multi-tenant, Configurable, High Quality Applications on .NET for an...
 
Cloud proposition for banking
Cloud proposition for bankingCloud proposition for banking
Cloud proposition for banking
 
Paying for PaaS
Paying for PaaSPaying for PaaS
Paying for PaaS
 
Vmware Seminar Security & Compliance for the cloud with Trend Micro
Vmware Seminar Security & Compliance for the cloud with Trend MicroVmware Seminar Security & Compliance for the cloud with Trend Micro
Vmware Seminar Security & Compliance for the cloud with Trend Micro
 
Ibm cloud forum managing heterogenousclouds_final
Ibm cloud forum managing heterogenousclouds_finalIbm cloud forum managing heterogenousclouds_final
Ibm cloud forum managing heterogenousclouds_final
 
Why a Multi-cloud Strategy is Essential
Why a Multi-cloud Strategy is EssentialWhy a Multi-cloud Strategy is Essential
Why a Multi-cloud Strategy is Essential
 

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

Enterprise Cloud Analytics
Enterprise Cloud AnalyticsEnterprise Cloud Analytics
Enterprise Cloud Analyticsiosrjce
 
Programming IoT Gateways with macchina.io
Programming IoT Gateways with macchina.ioProgramming IoT Gateways with macchina.io
Programming IoT Gateways with macchina.ioGünter Obiltschnig
 
Pune microsoft azure developers 2nd meetup
Pune microsoft azure developers 2nd meetupPune microsoft azure developers 2nd meetup
Pune microsoft azure developers 2nd meetupratneshsinghparihar
 
Azure + WP7 - CodePaLOUsa
Azure + WP7 - CodePaLOUsaAzure + WP7 - CodePaLOUsa
Azure + WP7 - CodePaLOUsaSam Basu
 
CLOUD COMPUTING: SECURITY ISSUES AND CHALLENGES
CLOUD COMPUTING: SECURITY ISSUES AND CHALLENGESCLOUD COMPUTING: SECURITY ISSUES AND CHALLENGES
CLOUD COMPUTING: SECURITY ISSUES AND CHALLENGESP singh
 
ColbyBackesPortfolio_HighRes
ColbyBackesPortfolio_HighResColbyBackesPortfolio_HighRes
ColbyBackesPortfolio_HighResColby Backes
 
Cloud for dummies easycloud
Cloud for dummies   easycloudCloud for dummies   easycloud
Cloud for dummies easycloudAlessandro Greco
 
OpenStack Identity - Keystone (liberty) by Lorenzo Carnevale and Silvio Tavilla
OpenStack Identity - Keystone (liberty) by Lorenzo Carnevale and Silvio TavillaOpenStack Identity - Keystone (liberty) by Lorenzo Carnevale and Silvio Tavilla
OpenStack Identity - Keystone (liberty) by Lorenzo Carnevale and Silvio TavillaLorenzo Carnevale
 
Technology Overview
Technology OverviewTechnology Overview
Technology OverviewLiran Zelkha
 
Building Event Driven (Micro)services with Apache Kafka
Building Event Driven (Micro)services with Apache KafkaBuilding Event Driven (Micro)services with Apache Kafka
Building Event Driven (Micro)services with Apache KafkaGuido Schmutz
 
Microservice architecture
Microservice architectureMicroservice architecture
Microservice architectureTouraj Ebrahimi
 
ECS19 - Bill Ayers - UNLOCK YOUR BUSINESS KNOWLEDGE WITH THE MICROSOFT GRAPH,...
ECS19 - Bill Ayers - UNLOCK YOUR BUSINESS KNOWLEDGE WITH THE MICROSOFT GRAPH,...ECS19 - Bill Ayers - UNLOCK YOUR BUSINESS KNOWLEDGE WITH THE MICROSOFT GRAPH,...
ECS19 - Bill Ayers - UNLOCK YOUR BUSINESS KNOWLEDGE WITH THE MICROSOFT GRAPH,...European Collaboration Summit
 
Suiteflex Application Development
Suiteflex Application DevelopmentSuiteflex Application Development
Suiteflex Application DevelopmentNetSuite
 
Stream analytics
Stream analyticsStream analytics
Stream analyticsrebeccatho
 
OpenStack Identity - Keystone (kilo) by Lorenzo Carnevale and Silvio Tavilla
OpenStack Identity - Keystone (kilo) by Lorenzo Carnevale and Silvio TavillaOpenStack Identity - Keystone (kilo) by Lorenzo Carnevale and Silvio Tavilla
OpenStack Identity - Keystone (kilo) by Lorenzo Carnevale and Silvio TavillaLorenzo Carnevale
 
MindSphere: The cloud-based, open IoT operating system. Damiano Manocchia
MindSphere: The cloud-based, open IoT operating system. Damiano ManocchiaMindSphere: The cloud-based, open IoT operating system. Damiano Manocchia
MindSphere: The cloud-based, open IoT operating system. Damiano ManocchiaData Driven Innovation
 

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

[IJET-V2I2P8] Authors:Ms. Madhushree M.Kubsad
[IJET-V2I2P8] Authors:Ms. Madhushree M.Kubsad[IJET-V2I2P8] Authors:Ms. Madhushree M.Kubsad
[IJET-V2I2P8] Authors:Ms. Madhushree M.Kubsad
 
Enterprise Cloud Analytics
Enterprise Cloud AnalyticsEnterprise Cloud Analytics
Enterprise Cloud Analytics
 
C017341216
C017341216C017341216
C017341216
 
Programming IoT Gateways with macchina.io
Programming IoT Gateways with macchina.ioProgramming IoT Gateways with macchina.io
Programming IoT Gateways with macchina.io
 
Pune microsoft azure developers 2nd meetup
Pune microsoft azure developers 2nd meetupPune microsoft azure developers 2nd meetup
Pune microsoft azure developers 2nd meetup
 
Azure + WP7 - CodePaLOUsa
Azure + WP7 - CodePaLOUsaAzure + WP7 - CodePaLOUsa
Azure + WP7 - CodePaLOUsa
 
CLOUD COMPUTING: SECURITY ISSUES AND CHALLENGES
CLOUD COMPUTING: SECURITY ISSUES AND CHALLENGESCLOUD COMPUTING: SECURITY ISSUES AND CHALLENGES
CLOUD COMPUTING: SECURITY ISSUES AND CHALLENGES
 
ColbyBackesPortfolio_HighRes
ColbyBackesPortfolio_HighResColbyBackesPortfolio_HighRes
ColbyBackesPortfolio_HighRes
 
Cloud for dummies easycloud
Cloud for dummies   easycloudCloud for dummies   easycloud
Cloud for dummies easycloud
 
OpenStack Identity - Keystone (liberty) by Lorenzo Carnevale and Silvio Tavilla
OpenStack Identity - Keystone (liberty) by Lorenzo Carnevale and Silvio TavillaOpenStack Identity - Keystone (liberty) by Lorenzo Carnevale and Silvio Tavilla
OpenStack Identity - Keystone (liberty) by Lorenzo Carnevale and Silvio Tavilla
 
Technology Overview
Technology OverviewTechnology Overview
Technology Overview
 
Building Event Driven (Micro)services with Apache Kafka
Building Event Driven (Micro)services with Apache KafkaBuilding Event Driven (Micro)services with Apache Kafka
Building Event Driven (Micro)services with Apache Kafka
 
Microservice architecture
Microservice architectureMicroservice architecture
Microservice architecture
 
ECS19 - Bill Ayers - UNLOCK YOUR BUSINESS KNOWLEDGE WITH THE MICROSOFT GRAPH,...
ECS19 - Bill Ayers - UNLOCK YOUR BUSINESS KNOWLEDGE WITH THE MICROSOFT GRAPH,...ECS19 - Bill Ayers - UNLOCK YOUR BUSINESS KNOWLEDGE WITH THE MICROSOFT GRAPH,...
ECS19 - Bill Ayers - UNLOCK YOUR BUSINESS KNOWLEDGE WITH THE MICROSOFT GRAPH,...
 
Cloud
Cloud Cloud
Cloud
 
Suiteflex Application Development
Suiteflex Application DevelopmentSuiteflex Application Development
Suiteflex Application Development
 
Stream analytics
Stream analyticsStream analytics
Stream analytics
 
Cloud Mashup
Cloud MashupCloud Mashup
Cloud Mashup
 
OpenStack Identity - Keystone (kilo) by Lorenzo Carnevale and Silvio Tavilla
OpenStack Identity - Keystone (kilo) by Lorenzo Carnevale and Silvio TavillaOpenStack Identity - Keystone (kilo) by Lorenzo Carnevale and Silvio Tavilla
OpenStack Identity - Keystone (kilo) by Lorenzo Carnevale and Silvio Tavilla
 
MindSphere: The cloud-based, open IoT operating system. Damiano Manocchia
MindSphere: The cloud-based, open IoT operating system. Damiano ManocchiaMindSphere: The cloud-based, open IoT operating system. Damiano Manocchia
MindSphere: The cloud-based, open IoT operating system. Damiano Manocchia
 

Recently uploaded

SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptxLBM Solutions
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphNeo4j
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksSoftradix Technologies
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machinePadma Pradeep
 

Recently uploaded (20)

SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Key Features Of Token Development (1).pptx
Key  Features Of Token  Development (1).pptxKey  Features Of Token  Development (1).pptx
Key Features Of Token Development (1).pptx
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge GraphSIEMENS: RAPUNZEL – A Tale About Knowledge Graph
SIEMENS: RAPUNZEL – A Tale About Knowledge Graph
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Pigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food ManufacturingPigging Solutions in Pet Food Manufacturing
Pigging Solutions in Pet Food Manufacturing
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Benefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other FrameworksBenefits Of Flutter Compared To Other Frameworks
Benefits Of Flutter Compared To Other Frameworks
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Install Stable Diffusion in windows machine
Install Stable Diffusion in windows machineInstall Stable Diffusion in windows machine
Install Stable Diffusion in windows machine
 

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.