Towards an Architectural Style for Multi-tenant Software Systems Dr.-Ing. Heiko Koziolek Industrial Software Systems ABB Corporate Research 1
Source: salesforce.com 2
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 3
Single-Tenancy Multi-Tenancy Tenant1 Tenant2 Tenant3 Tenant1 Tenant2 Tenant3 App App App App Database Database Database Database OS OS OS OS Hardware Hardware Hardware Hardware 4
Lack of Documentation Challenges Ad-hoc Solutions Technology Focus 5
Architectural Styles An architectural Client / style Server is a coordinated Blackboard set of architectural constraints that restricts the roles / Pipe-and-Filter features of architectural C2 elements and the allowed Peer-to-Peer relationships REST among (WWW) those elements within any architecture that conforms to that style. Mobile Code SPIAR (AJAX) [Fielding2000] Idea: Multi-tenancy Style 6
Resource Sharing Architectural Properties Architectural Properties Elasticity Maintainability Customizability 7
Cache (optional) Load Balancer SPOSAD Style for Multi-Tenancy Client Tier Application Tier Data Tier Browser Rich Client REST REST Application Threads Customization Meta-Data Manager Asynch, Synch Transfer Multi-tenant Database Data Meta-Data 8
Cache (optional) Load Balancer SPOSAD Style for Multi-Tenancy Client Tier Application Tier Data Tier Elasticity Maintainability Browser Rich Client REST REST Application Threads Customization Meta-Data Manager Asynch, Synch Transfer Multi-tenant Database Data Meta-Data Customizability Resource Sharing 9
Multi-tenant Database Private Table Layout Extension Table Layout Universal Table Layout 10
Multi-tenant Database Private Table Layout Extension Table Layout Universal Table Layout Account27 AID Name Robot Speed 1 ABC X 20 2 DEF Y 50 Account33 AID Name 1 GHI Account46 AID Name Lines 1 JKM 12 11
Multi-tenant Database Private Table Layout Extension Table Layout Universal 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 12
Multi-tenant Database Private Table Layout Extension Table Layout Universal 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 - - - 13
Single Code Base Architectural Properties Architectural Constraints Shared Data Resources STATE Customization Component Stateless Application Tier 14
Architectural Trade-offs Resource Sharing vs. Security / Availability Complexity vs. Time to market Customizability vs. Maintainability 15
Evaluation? 16
Cache (optional) Load Balancer Client Tier Application Tier Data Tier Virtual Application Components Customized Oracle RAC Browser Rich Client REST REST Application Threads Customization Meta-Data Manager Asynch, Synch Transfer Multi-tenant Database Data Meta-Data Runtime Engine Universal Table Layout 17
Cache (optional) Load Balancer Client Tier Application Tier Data Tier Web / Worker Roles Blobs, Tables, SQL Azure Browser Rich Client REST REST Application Threads Customization Meta-Data Manager Asynch, Synch Transfer Multi-tenant Database Data Meta-Data Worker Role 18
Cache (optional) Load Balancer Client Tier Application Tier Data Tier JSP / Servlet, Python Google Big Table Browser Rich Client REST REST Application Threads Customization Meta-Data Manager Asynch, Synch Transfer Multi-tenant Database Data Meta-Data App Engine Services 19
and SAP?? 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 20
Conclusions Multi-tenancy as an Architectural Style 21
22