multi-tenancy research day

31
1 Multi-Tenancy Research Meeting: Using Design Patterns to Implement Multi-Tenancy Jaap Kabbedijk, MSc. Utrecht University

Upload: jaap-kabbedijk

Post on 26-Jan-2015

106 views

Category:

Technology


0 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Multi-tenancy Research Day

1

Multi-Tenancy Research Meeting:

Using Design Patterns to Implement Multi-Tenancy

Jaap Kabbedijk, MSc.

Utrecht University

Page 2: Multi-tenancy Research Day

2 www.productasaservice.org

Jaap Kabbedijk

PhD. Candidate @ Utrecht University

Interests: Requirements Engineering, Software Variability, SaaS, Open Source Software, Software Architecture

Graduated on the topic of “Decision making in Requirements Engineering”

First publication in the PaaS project J. Kabbedijk & S. Jansen, Variability in Multi-tenant Environments: Architectural

Design Patterns from Industry, Proceedings of the International Variability Workshop@ER, 2011

Page 3: Multi-tenancy Research Day

3 www.productasaservice.org

Outline

Motivation and goal

Case Companies

Concepts

Pattern Evaluation Method

Conclusion

Discussion

Page 4: Multi-tenancy Research Day

4 www.productasaservice.org

Research Motivation

Customers have specific requirements for the software they use

Offering specific on-premises variants can be hard to: Manage Update Maintain

Complying to customer specific requirements in a SaaS environment has drawbacks: Difficulty with scalability Difficulty with maintainability Architectural erosion

Page 5: Multi-tenancy Research Day

5 www.productasaservice.org

Main Project Goal

Minimizing the  total cost of ownership (TCO), by profiting of the economy of scale of the SaaS deployment model, while keeping flexibility in offering functionality to customers

Page 6: Multi-tenancy Research Day

6 www.productasaservice.org

What will we do?

What will we do in order to answer the question:

‘How to facilitate variability in Multi-tenant Software as a Service deployments?’

Page 7: Multi-tenancy Research Day

7 www.productasaservice.org

What will we do?

What will we do in order to answer the question:

‘How to facilitate variability in Multi-tenant Software as a Service deployments?’

Come up with Runtime Variability Patterns (RVP)

Page 8: Multi-tenancy Research Day

8 www.productasaservice.org

Case Companies

AFAS

Exact

MP-Objects

Possibly Unit4 and Mamut

Most in Truffle 100 (www.truffle100.com)

Page 9: Multi-tenancy Research Day

9 www.productasaservice.org

What is Multi-Tenancy?

Bron: Microsoft Research, 2006

Page 10: Multi-tenancy Research Day

10 www.productasaservice.org

When do you need Multi-tenancy?

Page 11: Multi-tenancy Research Day

11 www.productasaservice.org

What is Variability?

Page 12: Multi-tenancy Research Day

12 www.productasaservice.org

How to get the Patterns?

Develop Patterns

Evaluate & Test Patterns

PublishPatterns

Page 13: Multi-tenancy Research Day

13 www.productasaservice.org

Pattern Development

Identify Run-time Variability Patterns currently used Case study at AFAS Case study at Exact Case study at MP-Objects

Identify RVPs in literature (literature study)

Come up with new RVPs (design science)

Page 14: Multi-tenancy Research Day

14 www.productasaservice.org

Test and Evaluation

Identify RVP evaluation criteria

Evaluate RVPs by expert reviews

Test RVPs on small scale and large scale (testbed)

Page 15: Multi-tenancy Research Day

15 www.productasaservice.org

Expert Review Session

20 experts

Twice a year

Direct feedback from industry

Interactive voting

Direct discussion

Page 16: Multi-tenancy Research Day

16 www.productasaservice.org

Evaluation Criteria (1/2)(based on expert review session)

Scalability – How does the pattern behave if the customer base grows?

Maintainability – How easy can the software be maintained when this pattern is applied?

Reusability – How easy can this pattern be reused in other parts of the software without code duplication?

Risk – What is the risk in terms of security of implementing this pattern? What are other typical risks and possible countermeasures?

Page 17: Multi-tenancy Research Day

17 www.productasaservice.org

Evaluation Criteria (2/2)(based on expert review session)

Complexity – How complex is it to implement the pattern in a software product?

Flexibility – How well can the pattern cope with different system environments?

Required Changes – How much should be changed to a solution that does not yet implement the pattern?

Cost of Implementation – How much does the implementation of the pattern cost in total?

Page 18: Multi-tenancy Research Day

18 www.productasaservice.org

Test Tooling

Selenium SauceLabs

Tellurium

JUnit

TestComplete

TestArchitect

Page 19: Multi-tenancy Research Day

19 www.productasaservice.org

Reporting(based on expert review session)

Page 20: Multi-tenancy Research Day

20 www.productasaservice.org

Testbed

• Patterns• Comments• Evaluations

Industry

• Patterns• Comments• Evaluations

Academia

Tools Patterns

Test Data Testing Logic

Testbed

Pattern Database

Page 21: Multi-tenancy Research Day

21 www.productasaservice.org

Publish

Summarize all RVPs and test results in the RVP database (continuous)

Publish catalogue (in the end)

Page 22: Multi-tenancy Research Day

22 www.productasaservice.org

Pre/Post Update Hooks (1/3)

Page 23: Multi-tenancy Research Day

23 www.productasaservice.org

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-specic modules are listed in a separate table

Page 24: Multi-tenancy Research Day

24 www.productasaservice.org

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 requested

Page 25: Multi-tenancy Research Day

25 www.productasaservice.org

Module Dependent Menu (1/3)

Page 26: Multi-tenancy Research Day

26 www.productasaservice.org

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 bought

Page 27: Multi-tenancy Research Day

27 www.productasaservice.org

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 tenant's license

Page 28: Multi-tenancy Research Day

28 www.productasaservice.org

Discussion

Page 29: Multi-tenancy Research Day

29 www.productasaservice.org

Multi-tenancy levels

Data Model Multi-tenancy All tenant share the same database and data model

Application Multi-tenancy All tenant share the same software instance

Configurable Multi-tenancy All tenants share both database and software instance, while

being able to configure the product the way they want it

Page 30: Multi-tenancy Research Day

30 www.productasaservice.org

Variability levels

Look-and-Feel Variability Possible different variants only enable changes in the look and

feel

Data Model Variability Different variants allow for changes in the data model

Application Variability Different variants allow for changes in the product functionality

Page 31: Multi-tenancy Research Day

31 www.productasaservice.org

Thanks!

www.productasaservice.org

www.jkabbedijk.nl

www.slingerjansen.nl