Upload
heiko-koziolek
View
2.668
Download
1
Embed Size (px)
DESCRIPTION
Multi-tenant software applications serve different organizations from a single instance and help to save development, maintenance, and administration costs. The architectural concepts of these applications and their relation to emerging platform-as-a-service (PaaS) environments are still not well understood, so that it is hard for many developers to design and implement such an application. Existing attempts at a structured documentation of the underlying concepts are either technology-specific or restricted to certain details. We propose documenting the concepts as a new architectural style. This paper initially describes the architectural properties, elements, views, and constraints of this style. We illustrate how the architectural elements are implemented in current PaaS environments, such as Force.com, Windows Azure, and Google App Engine.
Citation preview
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