1
Towards an
Architectural StyleforMulti-tenant
Software Systems
Industrial Software SystemsABB Corporate Research
Dr.-Ing. Heiko Koziolek
2
Source: salesforce.com
3
28.04.2008: „SAPs neue
Mittelstandssoftware ‚Business By Design‘ klemmt“
25.10.2008:„SAP will sich von
Outsourcing-Tochter trennen“
19.02.2009:„SAP dementiert Verkaufsstopp
für ‚Business by Design‘“
Source: heise.de
4
Single-Tenancy Multi-Tenancy
Tenant1 Tenant2 Tenant3
App
Database
OS
Hardware
Tenant1
App
Database
OS
Hardware
Tenant2
App
Database
OS
Hardware
Tenant3
App
Database
OS
Hardware
5
Challenges
Technology Focus
Lack ofDocumentation
Ad-hocSolutions
6
Architectural Styles
Client /
Server
Pipe-and-
Filter
Peer-to-Peer
Mobile Code
Blackboard
C2
REST
(WWW)
SPIAR (AJAX)
Idea: Multi-tenancy Style
An architectural style is a coordinated set of architectural constraints that restricts the roles / features of architectural elements and the allowed relationships among those elements within any architecture that conforms to that style.
[Fielding2000]
7
Architectural Properties
Maintainability
Elasticity
Customizability
Resource Sharing Architectural
Properties
8
SPOSAD Style for Multi-Tenancy
Client Tier Application Tier Data Tier
Browser
Rich Client
Multi-tenant Database
Meta-Data
DataAsynch, Synch
TransferLoad
Bala
ncer Application
Threads
Meta-DataManagerC
ach
e (
op
tion
al)
REST
Customization
REST
9
SPOSAD Style for Multi-Tenancy
Client Tier Application Tier Data Tier
Browser
Rich Client
Multi-tenant Database
Meta-Data
DataAsynch, Synch
TransferLoad
Bala
ncer Application
Threads
Meta-DataManagerC
ach
e (
op
tion
al)
REST
Customization
REST
Resource Sharing
Elasticity Maintainability
Customizability
10
Private Table LayoutExtension Table LayoutUniversal Table Layout
Multi-tenant Database
11
Private Table LayoutExtension Table LayoutUniversal Table Layout
Account27
AID Name Robot
Speed
1 ABC X 20
2 DEF Y 50
Account46
AID Name Lines
1 JKM 12
Account33
AID Name
1 GHI
Multi-tenant Database
12
Private Table LayoutExtension Table LayoutUniversal Table Layout
Account-Extension
Tenant ID Row AID Name
27 0 1 ABC
27 1 2 DEF
33 0 1 GHI
46 0 1 JKM
Industrial-Account
Tenant ID
Row Robot Speed
27 0 X 20
27 1 Y 50
Telecommunication-Account
Tenant ID
Row Lines
46 0 12
Multi-tenant Database
13
Private Table LayoutExtension Table LayoutUniversal Table Layout
Universal
Tenant ID
Table Col1 Col2 Col3 Col4 Col5 Col6
27 0 1 ABC X 20 - -
27 0 2 DEF Y 50 - -
33 1 1 GHI - - - -
46 2 1 JKM 12 - - -
Multi-tenant Database
14
Architectural Properties
Single Code Base
Stateless Application Tier
STATE
Shared Data Resources
Customization Component
Architectural
Constraints
15
Architectural Trade-offs
Complexity vs. Time to market
Resource Sharingvs. Security / Availability
Customizabilityvs. Maintainability
16
Evaluation?
17
Client Tier Application Tier Data Tier
Browser
Rich Client
Multi-tenant Database
Meta-Data
DataAsynch, Synch
TransferLoad
Bala
ncer Application
Threads
Meta-DataManagerC
ach
e (
op
tion
al)
REST
Customization
REST
Virtual Application Components
Customized Oracle RAC
Runtime EngineUniversal Table
Layout
18
Client Tier Application Tier Data Tier
Browser
Rich Client
Multi-tenant Database
Meta-Data
DataAsynch, Synch
TransferLoad
Bala
ncer Application
Threads
Meta-DataManagerC
ach
e (
op
tion
al)
REST
Customization
REST
Web / WorkerRoles
Blobs, Tables, SQL Azure
Worker Role
19
Client Tier Application Tier Data Tier
Browser
Rich Client
Multi-tenant Database
Meta-Data
DataAsynch, Synch
TransferLoad
Bala
ncer Application
Threads
Meta-DataManagerC
ach
e (
op
tion
al)
REST
Customization
REST
JSP / Servlet,Python
Google Big Table
App Engine Services
20
27.01.2010
„Mit dem Featurepack 2.5, das Mitte dieses Jahres erscheint,
bekommt Business ByDesign eine Multi-Tenant-Architektur“
Peter Lorenz Leiter SME Solutions SAP
Source: isreport.de
…and SAP? ?
21
Conclusions
Multi-tenancy as an Architectural Style
22