Variability in Multi-tenant Environments:             Architectural Design Patterns from Industry                         ...
Outline     Introduction     What does everything mean?     Research Approach     Example Design Patterns     Conclus...
Introduction     Software is increasingly offered ‘as a Service’ (Ma, 2007)     Customers want a product to do ‘what the...
Problem Statement     Software vendors have problems implementing variability      in their online products     We will ...
What is Multi-Tenancy? (1/2)    The ability to let different tenants share the same hardware    resources, by offering the...
What is Multi-Tenancy? (2/2)     Data Model Multi-tenancy       One database (or multiple databases balanced with the sam...
What is Variability?     The ability of a software system or artefact to be efficiently       extended, changed, customiz...
Variability moments     During design        Different product for Linux than for Windows     During compilation       ...
What are Design Patterns?    A pattern for software architecture describes a particular    recurring design problem that a...
Research Method      Case Study Research         Exact (ErpCompA)            • 20.000 users            • 7 different fea...
When do you need Multi-tenancy?11            www.productasaservice.org
Pattern Development      Identify Run-time Variability Patterns currently used         Case study at AFAS         Case ...
Example Patterns13        www.productasaservice.org
Pre/Post Update Hooks (1/3)14          www.productasaservice.org
Pre/Post Update Hooks (2/3)      Intent - To provide the possibility for tenants to have        custom functionality just...
Pre/Post Update Hooks (3/3)      Explanation – See image      Consequences - Extra optional components have to be       ...
Module Dependent Menu (1/3)17          www.productasaservice.org
Module Dependent Menu (2/3)      Intent - To provide a custom menu to all tenants, only        containing links to the fu...
Module Dependent Menu (3/3)      Explanation – See image      Consequences - To be able to use this pattern, an extra   ...
Conclusion and Further Research      Design patterns are an appropriate way to document and       communicate solutions t...
Discussion     Kabbedijk, J., Jansen, S. (2011). Variability in Multi-tenant Environments:     Architectural Design Patter...
Upcoming SlideShare
Loading in …5
×

Presentation ER2011

499 views

Published on

Published in: Technology, Business
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
499
On SlideShare
0
From Embeds
0
Number of Embeds
60
Actions
Shares
0
Downloads
6
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Presentation ER2011

  1. 1. Variability in Multi-tenant Environments: Architectural Design Patterns from Industry Jaap Kabbedijk, MSc. Dr. Slinger Jansen1 Utrecht University
  2. 2. Outline  Introduction  What does everything mean?  Research Approach  Example Design Patterns  Conclusion2 www.productasaservice.org
  3. 3. Introduction  Software is increasingly offered ‘as a Service’ (Ma, 2007)  Customers want a product to do ‘what they want’  Complying to customer specific requirements in a SaaS environment has drawbacks:  Difficulty with scalability  Difficulty with maintainability  Architectural erosion  Multi-tenancy enables software vendors to offer a SaaS product in a cost efficient way (Guo et al., 2007)3 www.productasaservice.org
  4. 4. Problem Statement  Software vendors have problems implementing variability in their online products  We will offer design patterns that help software vendors in implement variability in multi-tenant SaaS products4 www.productasaservice.org
  5. 5. What is Multi-Tenancy? (1/2) The ability to let different tenants share the same hardware resources, by offering them one shared application and database instance, while allowing them to configure the application to fit their needs as if it runs on a dedicated environment (Bezemer & Zaidman, 2010)5 www.productasaservice.org
  6. 6. What is Multi-Tenancy? (2/2)  Data Model Multi-tenancy One database (or multiple databases balanced with the same data model) is shared by all customers  Application Multi-tenancy One instance (including database) of the software product is used to serve all customers  Full Multi-tenancy Customers are all served by one single database and instance of the software product, while being able to have the functionality they want6 www.productasaservice.org
  7. 7. What is Variability?  The ability of a software system or artefact to be efficiently extended, changed, customized or configured for use in a particular context (Svahnberg, van Gurp & Bosch, 2005).  Within a SaaS product it is difficult to offer a different variant to all customers without solid design patterns enabling this.7 www.productasaservice.org
  8. 8. Variability moments  During design  Different product for Linux than for Windows  During compilation  Point to different sections of code while compiling software for a specific phone  Linking at installation  Linking a product to several additional modules  Run-time  When a user of an on-line system wants to change something8 www.productasaservice.org
  9. 9. What are Design Patterns? A pattern for software architecture describes a particular recurring design problem that arises in specific design contexts, and presents a well-proven generic scheme for its solution. The solution scheme is specified by describing its constituent components, their responsibilities and relationships, and the ways in which they collaborate (Buschmann et al., 1996)9 www.productasaservice.org
  10. 10. Research Method  Case Study Research  Exact (ErpCompA) • 20.000 users • 7 different feature modules  AFAS (ErpCompB) • 10.000 users • 9 different feature modules  Literature review  27 papers • Variability AND SaaS • Variability AND multi-tenancy10 www.productasaservice.org
  11. 11. When do you need Multi-tenancy?11 www.productasaservice.org
  12. 12. Pattern Development  Identify Run-time Variability Patterns currently used  Case study at AFAS  Case study at Exact  Identify RVPs in literature (literature study)  Come up with new RVPs (design science)12 www.productasaservice.org
  13. 13. Example Patterns13 www.productasaservice.org
  14. 14. Pre/Post Update Hooks (1/3)14 www.productasaservice.org
  15. 15. Pre/Post Update Hooks (2/3)  Intent - To provide the possibility for tenants to have custom functionality just before or after an event  Motivation - To let the software product fit the tenants business processes best, extra actions could be made available to tenants before or after an event is called  Solution – The use of a component able of calling other components before and after the update of data. The tenant-specific modules are listed in a separate table15 www.productasaservice.org
  16. 16. Pre/Post Update Hooks (3/3)  Explanation – See image  Consequences - Extra optional components have to be available in the software system in order to be able to implement this pattern  Example - In a bookkeeping program, tenants can choose, whether they want to update a third party service as well by using a component that uses the API of a third party service to make changes there. If so, the FunctionalComponent can call the third party communicator after an internal update is requested16 www.productasaservice.org
  17. 17. Module Dependent Menu (1/3)17 www.productasaservice.org
  18. 18. Module Dependent Menu (2/3)  Intent - To provide a custom menu to all tenants, only containing links to the functionality relevant to the tenant  Motivation - Displaying all possible functionality in the menu would decrease the user experience of tenants, so menus have to display only the functionality that is relevant to the tenant  Solution – Every time a tenant displays the menu, the menu is built dynamically based on the modules he has selected or bought18 www.productasaservice.org
  19. 19. Module Dependent Menu (3/3)  Explanation – See image  Consequences - To be able to use this pattern, an extra table containing user-IDs and the modules available to this user has to be implemented. Also, the extra class ModuleChecker has to be implemented  Example - In a large bookkeeping product, containing several modules that can be bought by a tenant, the menus presented to the tenant can be dynamically composed based on the tenants license19 www.productasaservice.org
  20. 20. Conclusion and Further Research  Design patterns are an appropriate way to document and communicate solutions to the variability problem  Are they the best way?  The concept on multi-tenancy should be better defined  The proposed patterns should be evaluated  How are patterns really used?20 www.productasaservice.org
  21. 21. Discussion Kabbedijk, J., Jansen, S. (2011). Variability in Multi-tenant Environments: Architectural Design Patterns from Industry. Lecture Notes in Computer Science, 6999, 151-160 www.jkabbedijk.nl www.productasaservice.org21 www.productasaservice.org

×