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
Challenges
   Lack of        Ad-hoc     Technology
Documentation    Solutions      Focus




                                          5
Architectural Styles

An architectural /style is a coordinated set of
         Client Server  Blackboard
architectural constraints that restricts
         Pipe-and-Filter  C2
the roles / features of architectural elements
and the  Peer-to-Peer
        allowed relationshipsREST (WWW)
                               among those elements
within any architecture that conforms to that style.
         Mobile Code          SPIAR (AJAX) [Fielding2000]



   Idea: Multi-tenancy Style
                                                              6
Resource Sharing                     Elasticity
                   Architectural
                    Architectural
                    Properties
                     Properties




     Maintainability            Customizability
                                                  7
SPOSAD Style for Multi-Tenancy

Client Tier                              Application Tier                            Data Tier



                                                          Application                Multi-tenant
  Browser             Cache (optional)


                                          Load Balancer
                                                           Threads                    Database
               REST
                                                                          Asynch,
                                                          Customization    Synch         Data
               REST                                                       Transfer
                                                           Meta-Data                  Meta-Data
 Rich Client
                                                            Manager




                                                                                                    8
SPOSAD Style for Multi-Tenancy

Client Tier                               Application Tier                              Data Tier

                                         Elasticity                     Maintainability

                                                            Application                 Multi-tenant
  Browser             Cache (optional)


                                            Load Balancer
                                                             Threads                     Database
               REST
                                                                             Asynch,
                                                            Customization     Synch         Data
               REST                                                          Transfer
                                                             Meta-Data                    Meta-Data
 Rich Client
                                                              Manager




                        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     Account33
           1       ABC        X     20        AID     Name
           2       DEF        Y     50        1       GHI


                  Account46
                  AID     Name     Lines
                  1       JKM      12


                                                                       11
Multi-tenant Database

Private Table Layout       Extension Table Layout           Universal Table Layout

                                      Industrial-Account
                                      Tenant ID     Row         Robot   Speed
 Account-Extension
                                      27            0           X       20
 Tenant ID   Row     AID   Name
                                      27            1           Y       50
 27          0       1     ABC
 27          1       2     DEF          Telecommunication-Account
 33          0       1     GHI          Tenant ID       Row     Lines
 46          0       1     JKM          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
Shared
Single Code Base
                   Architectural
                    Architectural      Data Resources
                    Constraints
                     Properties


                               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
Client Tier                               Application Tier                            Data Tier
                      Virtual Application                                        Customized
                         Components                                              Oracle RAC

                                                           Application                Multi-tenant
  Browser              Cache (optional)


                                           Load Balancer
                                                            Threads                    Database
               REST
                                                                           Asynch,
                                                           Customization    Synch         Data
               REST                                                        Transfer
                                                            Meta-Data                  Meta-Data
 Rich Client
                                                             Manager



                                                                            Universal Table
                                                Runtime Engine
                                                                                Layout


                                                                                                     17
Client Tier                              Application Tier                              Data Tier
                          Web / Worker                                            Blobs, Tables,
                             Roles                                                 SQL Azure

                                                            Application                Multi-tenant
  Browser             Cache (optional)


                                          Load Balancer
                                                             Threads                    Database
               REST
                                                                            Asynch,
                                                            Customization    Synch         Data
               REST                                                         Transfer
                                                             Meta-Data                  Meta-Data
 Rich Client
                                                              Manager



                                                      Worker Role


                                                                                                      18
Client Tier                              Application Tier                                  Data Tier
                                JSP / Servlet,
                                                                                    Google Big Table
                                   Python

                                                                Application                Multi-tenant
  Browser             Cache (optional)


                                          Load Balancer
                                                                 Threads                    Database
               REST
                                                                                Asynch,
                                                                Customization    Synch         Data
               REST                                                             Transfer
                                                                 Meta-Data                  Meta-Data
 Rich Client
                                                                  Manager



                                                          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

More Related Content

PPTX
The SPOSAD Architectural Style for Multi-tenant Software Applications
PDF
dvprimer-concepts
PPTX
Obtenga más de Microsoft SQL Server 2012 en el entorno de nube privada
PDF
Data Virtualization Primer -
PDF
Windows Sql Azure Cloud Computing Platform
PDF
SQL Server 2008 R2 Parallel Data Warehouse
PPTX
Sql Server 2012
PPT
The Story of How an Oracle Classic Stronghold successfully embraced SOA
The SPOSAD Architectural Style for Multi-tenant Software Applications
dvprimer-concepts
Obtenga más de Microsoft SQL Server 2012 en el entorno de nube privada
Data Virtualization Primer -
Windows Sql Azure Cloud Computing Platform
SQL Server 2008 R2 Parallel Data Warehouse
Sql Server 2012
The Story of How an Oracle Classic Stronghold successfully embraced SOA

What's hot (19)

PDF
Denny Lee\'s Data Camp v1.0 talk on SSRS Best Practices for IT
PDF
Anaeko A-DAS Datasheet V1.4
PDF
Data Stagev8
PPTX
Ssrs introduction session 1
PPTX
DB Luminous... Know Your Data
PPTX
Building applications using sql azure
PPTX
The Art & Sience of Optimization
PDF
SNIA white paper-sw defined storage
PDF
Challenges Management and Opportunities of Cloud DBA
PPTX
Service Mapping
PPTX
Enterprise Manager DBaaS
PPTX
Multi tenant architecture
PPTX
Why you should(n't) run your databases in the cloud
PPTX
Introduction to Business Intelligence in Microsoft SQL Server 2008 R2
PDF
Microsoft SQL Server - SQL Server 2008 R2 Editions Datasheet
PPTX
Office 2010 Programming
PPTX
SaaS transformation with OCE - uEngineCloud
PDF
Task Factory - Pragmatic Works
PPTX
Introducing SQL Server Data Services
Denny Lee\'s Data Camp v1.0 talk on SSRS Best Practices for IT
Anaeko A-DAS Datasheet V1.4
Data Stagev8
Ssrs introduction session 1
DB Luminous... Know Your Data
Building applications using sql azure
The Art & Sience of Optimization
SNIA white paper-sw defined storage
Challenges Management and Opportunities of Cloud DBA
Service Mapping
Enterprise Manager DBaaS
Multi tenant architecture
Why you should(n't) run your databases in the cloud
Introduction to Business Intelligence in Microsoft SQL Server 2008 R2
Microsoft SQL Server - SQL Server 2008 R2 Editions Datasheet
Office 2010 Programming
SaaS transformation with OCE - uEngineCloud
Task Factory - Pragmatic Works
Introducing SQL Server Data Services
Ad

Viewers also liked (9)

PDF
[Sencha 엔터프라이즈 웹애플리케이션 세미나] Enterprise Level Web Application w_ Ext JS 5
PPTX
Rapid Performance Modeling by transforming Use Case Maps to Palladio Componen...
PDF
[Sencha 엔터프라이즈 웹애플리케이션 세미나] BYOD - Sencha space
PDF
RESTful API Design, Second Edition
PPTX
Design Beautiful REST + JSON APIs
PDF
Launching a Rocketship Off Someone Else's Back
PDF
Consumer Driven Contracts and Your Microservice Architecture
PDF
Montreal Girl Geeks: Building the Modern Web
PDF
Hype vs. Reality: The AI Explainer
[Sencha 엔터프라이즈 웹애플리케이션 세미나] Enterprise Level Web Application w_ Ext JS 5
Rapid Performance Modeling by transforming Use Case Maps to Palladio Componen...
[Sencha 엔터프라이즈 웹애플리케이션 세미나] BYOD - Sencha space
RESTful API Design, Second Edition
Design Beautiful REST + JSON APIs
Launching a Rocketship Off Someone Else's Back
Consumer Driven Contracts and Your Microservice Architecture
Montreal Girl Geeks: Building the Modern Web
Hype vs. Reality: The AI Explainer
Ad

Similar to Towards an Architectural Style for Multi-tenant Software Applications (20)

PPT
E force dnw rewrite-draft-v7-080607
PPTX
6.Live Framework 和Mesh Services
PPTX
Introducing SQL Server Data Services
PDF
02 Ms Online Identity Session 1
PPTX
The Hybrid Windows Azure Application
PDF
PHP Day 2011 PHP goes to the cloud
PDF
Times Ten in-memory database when time counts - Laszlo Ludas
PDF
Building reliable systems from unreliable components
PDF
Private Cloud reduces risk calculations by 50%
 
PPTX
Tech Ed 09 - Arc302 - Analysis and Architecture
PDF
MySQL Cluster
PPTX
SQL Azure Federation and Scalability
PPT
Enterprise architecture for telecom sector
PDF
2012 CloudStack Design Camp in Taiwan--- CloudStack Overview-2
PPTX
Patterns of Cloud Applications Using Microsoft Azure Services Platform
PDF
Mach Technology
PPTX
Windows azure uk universities overview march 2012
PPTX
X commerce open stack beijing keynote - 2012-08-10 final
PDF
Jazz for Service Management - OMNIbus
E force dnw rewrite-draft-v7-080607
6.Live Framework 和Mesh Services
Introducing SQL Server Data Services
02 Ms Online Identity Session 1
The Hybrid Windows Azure Application
PHP Day 2011 PHP goes to the cloud
Times Ten in-memory database when time counts - Laszlo Ludas
Building reliable systems from unreliable components
Private Cloud reduces risk calculations by 50%
 
Tech Ed 09 - Arc302 - Analysis and Architecture
MySQL Cluster
SQL Azure Federation and Scalability
Enterprise architecture for telecom sector
2012 CloudStack Design Camp in Taiwan--- CloudStack Overview-2
Patterns of Cloud Applications Using Microsoft Azure Services Platform
Mach Technology
Windows azure uk universities overview march 2012
X commerce open stack beijing keynote - 2012-08-10 final
Jazz for Service Management - OMNIbus

More from Heiko Koziolek (20)

PPTX
Bottleneck Identification and Performance Modeling of OPC UA Communication Mo...
PPTX
Architectural Decision Forces at Work: Experiences in an Industrial Consultan...
PPTX
OpenPnP: a Plug-and-Produce Architecture for the Industrial Internet of Things
PPTX
Tool-Driven Technology Transfer in Software Engineering
PPTX
Self-commissioning Industrial IoT Systems
PPTX
IoT challenges for Smart Manufacturing
PDF
Software Architecture in Process Automation: UML & the "Smart Factory"
PPTX
Plug-and-Produce based on Standardized Industrie 4.0 Asset Admin Shells
PPTX
6 Years of Performance Modeling at ABB
PPTX
Towards the Automation Cloud: Architectural Challenges for a Novel Smart Ecos...
PPTX
MORPHOSIS: A Case Study on Lightweight Architecture Sustainability Analysis
PDF
Sustainability Evaluation of Software Architectures: A Systematic Review
PPTX
2011 05-27-icse
PPTX
ICSE 2011: Q-ImPrESS - An Industrial Case Study on Quality Impact Prediction
PPTX
Towards Software Sustainability Guides for Industrial Software Systems
PPTX
Q-ImPrESS
PPTX
A Large-Scale Industrial Case Study on Architecture-based Software Reliabilit...
PPSX
PerOpteryx
PPTX
Evolving Industrial Software Architectures into a Software Product Line: A Ca...
PPTX
A Model Transformation from the Palladio Component Model to Layered Queueing ...
Bottleneck Identification and Performance Modeling of OPC UA Communication Mo...
Architectural Decision Forces at Work: Experiences in an Industrial Consultan...
OpenPnP: a Plug-and-Produce Architecture for the Industrial Internet of Things
Tool-Driven Technology Transfer in Software Engineering
Self-commissioning Industrial IoT Systems
IoT challenges for Smart Manufacturing
Software Architecture in Process Automation: UML & the "Smart Factory"
Plug-and-Produce based on Standardized Industrie 4.0 Asset Admin Shells
6 Years of Performance Modeling at ABB
Towards the Automation Cloud: Architectural Challenges for a Novel Smart Ecos...
MORPHOSIS: A Case Study on Lightweight Architecture Sustainability Analysis
Sustainability Evaluation of Software Architectures: A Systematic Review
2011 05-27-icse
ICSE 2011: Q-ImPrESS - An Industrial Case Study on Quality Impact Prediction
Towards Software Sustainability Guides for Industrial Software Systems
Q-ImPrESS
A Large-Scale Industrial Case Study on Architecture-based Software Reliabilit...
PerOpteryx
Evolving Industrial Software Architectures into a Software Product Line: A Ca...
A Model Transformation from the Palladio Component Model to Layered Queueing ...

Recently uploaded (20)

PDF
DP Operators-handbook-extract for the Mautical Institute
DOCX
search engine optimization ppt fir known well about this
PDF
Zenith AI: Advanced Artificial Intelligence
PDF
sustainability-14-14877-v2.pddhzftheheeeee
PDF
A novel scalable deep ensemble learning framework for big data classification...
PDF
From MVP to Full-Scale Product A Startup’s Software Journey.pdf
PDF
A Late Bloomer's Guide to GenAI: Ethics, Bias, and Effective Prompting - Boha...
PDF
Developing a website for English-speaking practice to English as a foreign la...
PDF
Taming the Chaos: How to Turn Unstructured Data into Decisions
PDF
TrustArc Webinar - Click, Consent, Trust: Winning the Privacy Game
PDF
Assigned Numbers - 2025 - Bluetooth® Document
PDF
STKI Israel Market Study 2025 version august
PDF
Unlock new opportunities with location data.pdf
PPTX
Chapter 5: Probability Theory and Statistics
PDF
1 - Historical Antecedents, Social Consideration.pdf
PPTX
Modernising the Digital Integration Hub
PDF
Transform Your ITIL® 4 & ITSM Strategy with AI in 2025.pdf
PDF
Enhancing emotion recognition model for a student engagement use case through...
PPT
Module 1.ppt Iot fundamentals and Architecture
PPT
What is a Computer? Input Devices /output devices
DP Operators-handbook-extract for the Mautical Institute
search engine optimization ppt fir known well about this
Zenith AI: Advanced Artificial Intelligence
sustainability-14-14877-v2.pddhzftheheeeee
A novel scalable deep ensemble learning framework for big data classification...
From MVP to Full-Scale Product A Startup’s Software Journey.pdf
A Late Bloomer's Guide to GenAI: Ethics, Bias, and Effective Prompting - Boha...
Developing a website for English-speaking practice to English as a foreign la...
Taming the Chaos: How to Turn Unstructured Data into Decisions
TrustArc Webinar - Click, Consent, Trust: Winning the Privacy Game
Assigned Numbers - 2025 - Bluetooth® Document
STKI Israel Market Study 2025 version august
Unlock new opportunities with location data.pdf
Chapter 5: Probability Theory and Statistics
1 - Historical Antecedents, Social Consideration.pdf
Modernising the Digital Integration Hub
Transform Your ITIL® 4 & ITSM Strategy with AI in 2025.pdf
Enhancing emotion recognition model for a student engagement use case through...
Module 1.ppt Iot fundamentals and Architecture
What is a Computer? Input Devices /output devices

Towards an Architectural Style for Multi-tenant Software Applications

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

Editor's Notes

  • #3: Salesforce-Amerikanische Silicon Valley FirmaEiner der berühmtestenSoftware as a Service providerCustomerRelationship SoftwareUmsatz 2009: 1 Mrd US$, 47000 Kunden, über 1.1 Mio Benutzer, auf angeblich weniger als 1000 ServernKunden: z.B. Deutsche Bank, Allianz VersicherungSalesforce.com zählt zu den am schnellsten wachsenden Technologieunternehmen weltweit. Laut Forbes wächst nur Google schneller (Stand: Januar 2008).Technisch beeindruckend: hohe Skalierbarkeit, steigende Anzahl an Transaktion: mehr als 14 MrdTransaction pro Quartalsinkende Antwortzeiten: weniger als Viertelsekunde mittlere Antwortzeit pro ausgelieferter Seite
  • #4: SAP Business By DesignVoll integrierte Enterprise ResourcePlanning Lösung für kleine und mittelständische Unternehmen in einer gehostetenSaaS LösungEntwicklung seit 2003, angekündigt 2007 für 2008, 2010 noch nicht voll ausgerolltGerüchte: Entwicklungskosten bei über 500 Mio EuroKlemmt:-"Das System hat noch nicht die erforderliche Performance und hat noch zu viele Aussetzer", zitiert die Zeitung einen SAP-Entwickler. Es müsse noch viel zu viel aufwendig nachjustiert werden.- massive Performance-Probleme in der früherern Entwicklung, unterstützte nur 10 Benutzer pro ServerVerkaufsstopp?- Ursprünglich hatte man in Walldorf mit 10,000 zahlenden Kunden bis zum Jahr 2010 kalkuliert, doch derzeit scheint es davon noch keine 100 zu geben. -SAP sei mit seinen Diensten einfach zu teuer, und außerdem gebe es speziell bei Mittelständlern anhaltende Ängste, ihre wertvollen Geschäftsdaten einem Software-Dienstleister außerhalb ihrer Kontrolle anzuvertrauen. Die Probleme von Business by Design haben verschiedene Ursachen. Meiner Meinung nach ist eine dieser Ursachen, dass SAP auf eine single-tenant Architektur und nicht auf eine multi-tenant Architektur gesetzt hat
  • #5: Tenant = Organization, Unternehmen mit Mitarbeitern als BenutzerMTEine applikation / eine Code Basis, zentrale Updates/Patches, spezielle Vorrichtungen für Kundenspezifische AnforderungenEine DB, geteilte Schemata, gemeinsame TabellenEin OSEine Hardware, verteilt, LastverteilungSkalierbarkeit durch Lastverteilung auf Cluster, spezielle Datenbankabfragen, wenig overheads, minimum an mehrfach Vorhandenen RessourcenST- Angepasste Applikation pro Kunde (Firma)DB pro Kunde Viele OS LizenzenServer pro KundeVorteil Sicherheit, Nachteil: Skalierbarkeit, schwierig sich an Lastspitzen anzupassen
  • #6: Was ist also das Problem? Die Herausforderung?Documentation:Kein Handbuch für Multi-tenancyarchitekturen, keine BücherKaum wissenschaftlich LiteraturDas Umsetzen von Multi-tenancy wird weitläufig noch als Wettbewerbsvorteil gesehen und daher verschleiertKonstruktion schwierig, ohne Hilfestellung/Doku sehr teuerAd-hoc SolutionsTry-and-error Prinzip, kein Erfahrungsschatz, Wissen wird von Unternehmen nicht weitergeben Wacklige LösungenArchitekten können trade-offs (Zielkonflikte) nur schwierig einschätzenTechnologieGuides für Microsoft-Produkte und SaaS, Guides von IBM für Java Produkte und SaaSHöhere Abstraktion fehltArchitekturkonzepte nicht formal und technologie-unabhängig dokumentiert
  • #7: Jetzt die Lösungidee, mein Ansatz!Was könnte die Lösung sein?Fielding, REST, WWW, 2000: Ein Architekturstil ist eine koordinierte Menge von architektonischen Bedingungen / Einschränkungen, die die Rolle der Architekturelement und deren Beziehungen zu einander einschränken.Beispiele: Client-Server, der Server arbeitet nur auf Anfrage, verschickt keine eigenen AnfragenPipe-and-Filter: es gibt keinen Zwischenspeicher, alle Informationen für die Berechnungen werden zwischen den Komponenten weitergereichtUsw.Modernere Stile sind REST für das WWW und SPIAR for AJAX AnwendungenDie Idee ist nun, Multi-tenancy in diese Liste einzureihen und explizit als Architektur Stil zu dokumentieren.Dokumentationsschema nach Perry und Wolf: Komponenten, Konnektoren, Daten Elemente und constraints auf diesen Elementen
  • #8: ArchitecturalProperties = Ziele, können auch als Anforderungen verstanden werden,Hier 4 der wichtigsten:ResourceSharing:Möglichst viel Hardware und Software soll gemeinsam genutzt werdeVerhindert die Verschwendung von Ressource, kompliziert aber Isolation von ClientsBeispiele: -Kosteneinsparung für Datenbankadministration durch gemeinsame Datenbanken-Speichereinsparung durch nicht-dedizierte ServerElasticity:Hier könnte auch Scalability stehen, also die Fähigkeit mit wachsender Anfragelast zurecht zukommen (siehe Salesforcefolie)Elasticity schließt auch das Stoppen von Servern mit ein wenn die Anfragelast sinkt, daher werden die Ressourcen am effektivsten genutztWichtig für MT systeme wegen der hohen Anzahl an Tenants und der potentziell sehr großen Anfragelast mit LastspitzenMaintainability:Einsparung von Wartungskosten durch eine einzelne Anwendung und Codebasis für alle TenantsBugs müssen nur einmal behoben werdenBugfixes müssen nur einmal eingespielt werden, es müssen keine Fixes von Kunden installiert werden, dies erfolg zentralCustomizability:-bei nur einer geteilten Anwendung: Anpassungen an eigene Geschäftprozesse und Datenmodelle notwendig-Kunden geben sich nicht mit Standardlösungen zufrieden
  • #9: SPOSAD steht für Shared, Polymorphic, ScalableApplication and Data- Hier jetzt Teil der Lösung, high-level Ansicht der Komponenten und Connectoren die in diesem Stil zum Einsatz kommenBasiert auf multi-tierarchitektur: clienttier, evtl. presentationtier, applicationtier, datatierClient: Web Browser (Internet Explorer), Rich Client (Eclipse RCP)Synchrone REST Kommunikation mit ApplicationtierOptionale Cache, Lastverteiler für meherer Server ApplicationThreads, stellen Präsentation und Business Logic bereit, basieren auf gleichem Code sind aber für verschiedene Tenants über Metadata anpassbarMeta-Data Manager verwaltet Meta-Daten (z.B. proprietäre Datenfelder, GUI, Workflows, Forms, usw.) und passt den Applikationscode anMulti-tenant Datenbank, gemeinsam genutzt von allen Tenants, Enthält Daten (Kundennr, Konto, usw.) und Meta-daten (Datentypen, proprietäre Erweiterungen)Asynchrone KommunikationAndere Sichten hier nicht gezeigt, Virtualisierung kann drunterliegenErstmal nur highlevel, man kann die einzelnen Komponenten noch aufschlüsseln und die Kommunikationsbeziehungen detailierter beschreibenWie bilden sich nun die gewünschten Architektureigenschaften ab?
  • #10: ResourceSharing vor allem in der Datenbank aber auch in der Infrastruktur (App Container, VM, OS, Hardware)Elasticity z.B. durch LoadBalancer, die auto-scaling unterstützen also auch downgraden.Maintainbility durch gemeinsame Code-basis der ApplicationThreads, nur einmalige Wartung notwendingCustomizability durch Meta-data Manager, der tenant-spezfischen Anpassungen durchführen kannDatenbank im folgenden noch mal genauer, verschieden Schemata zum ResourceSharing möglich
  • #11: VorherComponent&connectorView, jetzt Information View, wie sind die Daten strukturiert
  • #12: Jeder Tenant bekommt seine eigenen Tabellen mit möglicherweise eigenen Datenfeldern 27, 33, 46 sind die TenantidsVorteil: keine komplizierten Joins notwendig, einfach zu implementierenNachteil: Overhead für die Erstellung und Verwaltung von vielen kleinen Tabellen bei großer Anzahl von Tenants
  • #13: Gemeinsame Daten werden in einer großen Tabelle gehalten für alle TenantsTenant-spezifische Erweiterungen über eigene TabellenVorteil: weniger Tabellen, weniger OverheadNachteil: möglicherweise aufwändige, ineffiziente Joins um die Daten zu rekonstuieren
  • #14: -Daten aller Tenants in einer einzigen Tabelle, Spalten im Varchar Datentyp für beliebige Erweiterungen-Vorteil: sehr geringer Verwaltungs- und Speicheroverhead-Nachteil: Rekonstruktion der Datentypen, Backups, Rowlevelaccesscontrolusw-> keine one-size-fitsit all Lösung, jedoch ist das Universal Table Layout dasjenige mit dem meisten ResourceSharing- Wird so von force.com genutzt, eine Tabelle mit 500 variablen Spalten für alle 50000 tenants, spezielle Query-Optimierungs Routinen
  • #15: Nach der Definition von Fielding zeichnen vor allem die Einschränkungen einen Stil ausHier 4 der wichtigsten EinschränkungenNur eine Code-Basis für alle Tenants: Einsparung von Wartungskosten, mehrere Codebasen angepasst für individuelle Tenants/Clients sind nicht zulässingGemeinsame Datenressourcen: keine eigenen Datenbanken pro Tenant zur Einsparung von OverheadsEs gibt eine Komponente zur Anpassung der Applikation an Kundenanforderungen: keine StandardapplikationKein client-spezifischer Zustand darf im Application Tier gehalten werden: Erhöht die Skalierbarkeit, keine Wartezeiten für ApplikationsthreadssEvaluation schwierig. Es müssten erste Applikationen nach dem Stil gebaut werden und dann getestet werden, ob sie die angestrebten Architektureigenschaften erfüllenAuch der Aufwand für die Entwicklung auf Basis des Stils müsste mit einer Ad-hoc Entwicklung verglichen werdenDas ist bisher auch für andere Stile nicht gemacht worden.- Hier nur sehr eingeschränkte Form der Evaluierung: Vergleich der Architekturkonzepte mit den Konzepten der neuen PaaS Plattformen
  • #17: Force.com basiert auf der Salesforce Infrastruktur, lässt es zu dort eigene Applikationen zu erstellenWindows Azure ist Microsofts Antwort auf Cloud computing, viele MS technologien, .NET, basiert auf Windows Server 2008Google AppEngine: Java und Python Welt
  • #22: Die Idee ist MT als Architekturstil zu dokumentierenVorteileLeichtere Entwicklung für zukünftige Projekte, schränkt den Entwurfsraum einKosteneinsparungen durch weniger Try-and-errorIngenieursmäßiger Ansatz, best PracticesTechnologieagnostik, keine Spezifika von .NET oder Enterprise Java, Fokus auf ArchitekturkonzepteQuantifizierung und Konkretisierung von Trade-offs, ZielkonfliktenFuture Work: stilbeschreibung verfeinern, detaillieren, Evaluation verbessern, SaaSapplikationen untersuchen