multi-tenancy research day

Post on 26-Jan-2015

106 Views

Category:

Technology

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

 

TRANSCRIPT

1

Multi-Tenancy Research Meeting:

Using Design Patterns to Implement Multi-Tenancy

Jaap Kabbedijk, MSc.

Utrecht University

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

3 www.productasaservice.org

Outline

Motivation and goal

Case Companies

Concepts

Pattern Evaluation Method

Conclusion

Discussion

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

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

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?’

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)

8 www.productasaservice.org

Case Companies

AFAS

Exact

MP-Objects

Possibly Unit4 and Mamut

Most in Truffle 100 (www.truffle100.com)

9 www.productasaservice.org

What is Multi-Tenancy?

Bron: Microsoft Research, 2006

10 www.productasaservice.org

When do you need Multi-tenancy?

11 www.productasaservice.org

What is Variability?

12 www.productasaservice.org

How to get the Patterns?

Develop Patterns

Evaluate & Test Patterns

PublishPatterns

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)

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)

15 www.productasaservice.org

Expert Review Session

20 experts

Twice a year

Direct feedback from industry

Interactive voting

Direct discussion

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?

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?

18 www.productasaservice.org

Test Tooling

Selenium SauceLabs

Tellurium

JUnit

TestComplete

TestArchitect

19 www.productasaservice.org

Reporting(based on expert review session)

20 www.productasaservice.org

Testbed

• Patterns• Comments• Evaluations

Industry

• Patterns• Comments• Evaluations

Academia

Tools Patterns

Test Data Testing Logic

Testbed

Pattern Database

21 www.productasaservice.org

Publish

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

Publish catalogue (in the end)

22 www.productasaservice.org

Pre/Post Update Hooks (1/3)

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

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

25 www.productasaservice.org

Module Dependent Menu (1/3)

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

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

28 www.productasaservice.org

Discussion

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

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

31 www.productasaservice.org

Thanks!

www.productasaservice.org

www.jkabbedijk.nl

www.slingerjansen.nl

top related