74
Introduction Research Approach More in depth Till now and further on PhD. Colloquium Tenant-dependent Variability Patterns in Online Business Software Jaap Kabbedijk, MSc. Utrecht University June 05, 2012

PhD. Colloquium

Embed Size (px)

DESCRIPTION

Presentation given about my research during the PhD. colloquium at Utrecht University

Citation preview

Page 1: PhD. Colloquium

Introduction Research Approach More in depth Till now and further on

PhD. ColloquiumTenant-dependent Variability Patterns in Online

Business Software

Jaap Kabbedijk, MSc.

Utrecht University

June 05, 2012

Page 2: PhD. Colloquium

Introduction Research Approach More in depth Till now and further on

Outline

Introduction

Research Approach

More in depthMulti-tenancySoftware Patterns

Till now and further on

Page 3: PhD. Colloquium

Introduction Research Approach More in depth Till now and further on

Who am I?

• Jaap Kabbedijk

• Business Informatics

• PhD. candidate• Multi-tenancy• Online variability• Variability patterns

• Running, Fiction

Page 4: PhD. Colloquium

Introduction Research Approach More in depth Till now and further on

Personal

Page 5: PhD. Colloquium

Introduction Research Approach More in depth Till now and further on

Page 6: PhD. Colloquium

Introduction Research Approach More in depth Till now and further on

Professional

Page 7: PhD. Colloquium

Introduction Research Approach More in depth Till now and further on

Requirements Engineering: Customer Involvement

Kabbedijk J., Brinkkemper S., Jansen S., van der Veldt B. (2009).Customer Involvement in Requirements Management: Lessonsfrom Mass Market Software Development. 17th IEEE InternationalRequirements Engineering Conference, 281-286

Page 8: PhD. Colloquium

Introduction Research Approach More in depth Till now and further on

Requirements Engineering: Decision Making

Kabbedijk J., Wnuk K., Regnell B., Brinkkemper S. (2010). WhatDecision Characteristics Influence Decision Making inMarket-Driven Large-Scale Software Product Line Development?16th International Working Conference on RequirementsEngineering: Foundation for Software Quality, 42-53

Page 9: PhD. Colloquium

Introduction Research Approach More in depth Till now and further on

Software Ecosystems

Kabbedijk J., Jansen S. (2011). Steering Insight: An Explorationof the ruby Software Ecosystem. 2nd International Conference onSoftware Business. Lecture Notes in Business InformationProcessing(80),44-55

Page 10: PhD. Colloquium

Introduction Research Approach More in depth Till now and further on

PaaS: the reason I’m here now

Page 11: PhD. Colloquium

Introduction Research Approach More in depth Till now and further on

Product as a Service

• 4 year project

• Started 01/01/2011

• Two perspectives

• Two PhD’s

• NWO/ICT-Regie funded

• Cooperation challenge

Page 12: PhD. Colloquium

Introduction Research Approach More in depth Till now and further on

So now I research...

Tenant-dependent Variability Patterns in Online BusinessSoftware

Page 13: PhD. Colloquium

Introduction Research Approach More in depth Till now and further on

Outline

Introduction

Research Approach

More in depthMulti-tenancySoftware Patterns

Till now and further on

Page 14: PhD. Colloquium

Introduction Research Approach More in depth Till now and further on

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 SaaSenvironment has drawbacks:

• Difficulty with scalability• Difficulty with maintainability• Architectural erosion

Page 15: PhD. Colloquium

Introduction Research Approach More in depth Till now and further on

Main Project Goal

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

Page 16: PhD. Colloquium

Introduction Research Approach More in depth Till now and further on

What will we do?

What will we do in order to answer the question:

“How to facilitate variability in Multi-tenant Software as aService deployments?”

Variability patterns!

Page 17: PhD. Colloquium

Introduction Research Approach More in depth Till now and further on

What will we do?

What will we do in order to answer the question:

“How to facilitate variability in Multi-tenant Software as aService deployments?”

Variability patterns!

Page 18: PhD. Colloquium

Introduction Research Approach More in depth Till now and further on

Case Companies

• AFAS

• Exact

• MP-Objects

• Mendix

• Centric

• 15 others!

Page 19: PhD. Colloquium

Introduction Research Approach More in depth Till now and further on

How to get the patterns?

Page 20: PhD. Colloquium

Introduction Research Approach More in depth Till now and further on

Gathering patterns

• Through case studies

• Out of literature

• Using the Seminar on Software Patterns

Page 21: PhD. Colloquium

Introduction Research Approach More in depth Till now and further on

Evaluating the patterns (1/2)

• Scalability - How does the software product behave if thecustomer base grows?

• Maintainability - How easy can the software be maintainedwhen this pattern is applied?

• Reusability - How is the reuse of parts of the softwareinfluenced when applying this pattern?

• Security - What is the risk in terms of security ofimplementing this pattern?

Page 22: PhD. Colloquium

Introduction Research Approach More in depth Till now and further on

Evaluating the patterns (2/2)

• Complexity - How complex is the the implementation of theresulting software product?

• Flexibility - How well can the pattern cope with differentsystem environments?

• Required Changed - How much should be changed to asolution that does not yet implement the pattern?

Page 23: PhD. Colloquium

Introduction Research Approach More in depth Till now and further on

How to evaluate them?

• Project workshops

• Case company interviews

• Case company evaluation sessions

• Academic focus groups

Page 24: PhD. Colloquium

Introduction Research Approach More in depth Till now and further on

Outline

Introduction

Research Approach

More in depthMulti-tenancySoftware Patterns

Till now and further on

Page 25: PhD. Colloquium

Introduction Research Approach More in depth Till now and further on

Multi-tenancy

Page 26: PhD. Colloquium

Introduction Research Approach More in depth Till now and further on

Where do you want to live?

Page 27: PhD. Colloquium

Introduction Research Approach More in depth Till now and further on

Pros and cons

House Apartment

Effective use of land - +Privacy + -Infrastructure sharing - +Maintenance cost sharing - +Freedom + -

House:Privacy and FreedomApartment:Cost and Efficiency

Page 28: PhD. Colloquium

Introduction Research Approach More in depth Till now and further on

What does this have to do with software?

Page 29: PhD. Colloquium

Introduction Research Approach More in depth Till now and further on

Traditional Delivery Life Cycle

Page 30: PhD. Colloquium

Introduction Research Approach More in depth Till now and further on

Traditional Deployment Model

Page 31: PhD. Colloquium

Introduction Research Approach More in depth Till now and further on

Traditional: Characteristics

• Think about the ‘House’ example

• Customers have to install and update their own software

• Customers manage their own data

• Every customers needs his own server to deploy the product

• Customizations can easily be done per customer

Page 32: PhD. Colloquium

Introduction Research Approach More in depth Till now and further on

Traditional: Disadvantages

• High initial costs for customers

• Hard to keep up with updates

• Lack of expert knowledge

• High change of data loss

Page 33: PhD. Colloquium

Introduction Research Approach More in depth Till now and further on

Application Server Provider

• Data not responsibility customer

• Application is hosted at a thirdparty

• Multiple products are hosted onthe same machine

• More efficient use of servercompared to the traditional way

• Every customer has his ownproduct on the server

Page 34: PhD. Colloquium

Introduction Research Approach More in depth Till now and further on

Different Environments

• Data not responsibility customer

• Everyone uses the sameproduct, but gets his ownenvironment and database

• Only one codebase

• Reasonably scalable

Page 35: PhD. Colloquium

Introduction Research Approach More in depth Till now and further on

Multi-user Solution

• Software as a Service (thinkabout the ‘apartment’ example)

• Data not responsibility customer

• A product is offered completelyas a ‘service’

• Possibility to serve large numberof customers with a limitedamount of servers

• Facebook, Grooveshark, etc.

Page 36: PhD. Colloquium

Introduction Research Approach More in depth Till now and further on

Perfect Solution?

• Lower cost for customers

• Higher safety of data for the customer

• Efficient server use for the hosting provider

• But...where are the customizations?

Page 37: PhD. Colloquium

Introduction Research Approach More in depth Till now and further on

Multi-tenancy

• Data not responsibility customer

• A product is offered completely‘as a service’

• Possibility to serve large numberof customers with a limitedamount of servers

• Tenants (customers) can havespecific functionality

• Combination between the‘house’ and ‘apartment’ example

Page 38: PhD. Colloquium

Introduction Research Approach More in depth Till now and further on

Overview ASP to Multi-tenancy

Page 39: PhD. Colloquium

Introduction Research Approach More in depth Till now and further on

Multi-tenancy: Holy Grail?

• A hosted solution

• Sharing of:• Hardware• Software• Development Cost• Deployment Cost• Maintenance Cost

• Possibility for variability in theproduct

Page 40: PhD. Colloquium

Introduction Research Approach More in depth Till now and further on

Why is not everything multi-tenant?

• It is a hype, but many people do not know what it is exactly

• Great flexibility in a product can make it difficult to maintain

• Single point of failure

• Safety

• But most of all...most companies don’t know HOW toimplement variability!

Page 41: PhD. Colloquium

Introduction Research Approach More in depth Till now and further on

What is variability?

• Possibility to adapt a software product to a specific situation• Different platform• Different country• Different customer wishes

Page 42: PhD. Colloquium

Introduction Research Approach More in depth Till now and further on

Variability Moments

• During Design - Different product for Linux than forWindows

• During Compilation - Point to different sections of codewhile compiling software for a specific phone

• Linking at installation - Linking a product to severaladditional modules

• Run-time - When a user of an on-line system wants tochange something

Page 43: PhD. Colloquium

Introduction Research Approach More in depth Till now and further on

Run-time variability

Page 44: PhD. Colloquium

Introduction Research Approach More in depth Till now and further on

How to get the variability in a software product?

Page 45: PhD. Colloquium

Introduction Research Approach More in depth Till now and further on

Software Patterns

Page 46: PhD. Colloquium

Introduction Research Approach More in depth Till now and further on

It all started in 1977...

• Christopher Alexander

• Architect / Landscapeplanner

• Identified towns ascollections of patterns

• 253 patterns formingtogether a patternlanguage

Page 47: PhD. Colloquium

Introduction Research Approach More in depth Till now and further on

Street Cafe

“The street cafe provides a unique setting, special tocities: a place where people can sit lazily, legitimately, beon view, and watch the world go by... Encourage localcafes to spring up in each neighborhood. Make themintimate places, with several rooms, open to a busy path,where people can sit with coffee or a drink and watch theworld go by. Build the front of the cafe so that a set oftables stretch out of the cafe, right into the street.”

Christopher Alexander, A Pattern Language, p. 437,439

Page 48: PhD. Colloquium

Introduction Research Approach More in depth Till now and further on

First Software Pattern: MVC

• Model View Controller

• Smalltalk-80

• Data is separate fromrepresentation

• Still used today

Page 49: PhD. Colloquium

Introduction Research Approach More in depth Till now and further on

Big break through: GoF

• Gang of Four (1994)

• Gamma, Helm, Johnson,Vlissides

• 23 patterns, became themost famous patterns

• Object Oriented

Page 50: PhD. Colloquium

Introduction Research Approach More in depth Till now and further on

GoF examples

• Composite

• Abstract Factory

• Singleton

• Observer

• Memento

Page 51: PhD. Colloquium

Introduction Research Approach More in depth Till now and further on

GoF: Describing a pattern

• Name

• Intent - What does the pattern do?

• Motivation - How does the solution solve the problem?

• Applicability - When can the pattern be applied?

• Structure - Graphical representation

• Consequences - What happens when the solution isimplemented? Both benefits and liabilities

• Known Uses - A good example of real use. Preferably indifferent domains

Page 52: PhD. Colloquium

Introduction Research Approach More in depth Till now and further on

POSA: A System of Patterns

• Pattern-Oriented SoftwareArchitecture

• Buschman et al.

• Five volumes: 1996 to2007

• Not only OO

Page 53: PhD. Colloquium

Introduction Research Approach More in depth Till now and further on

POSA: classification

• Architectural Patterns

• Design Patterns

• Idioms

Page 54: PhD. Colloquium

Introduction Research Approach More in depth Till now and further on

Architectural Patterns

“An architectural pattern expresses a fundamentalstructural organization schema for software systems. Itprovides a set of predefined subsystems, specifies theirresponsibilities, and includes rules and guidelines fororganizing the relationships between them.”

Page 55: PhD. Colloquium

Introduction Research Approach More in depth Till now and further on

Design Patterns

“A design pattern provides a scheme for refining thesubsystems or components of a software system, or therelationships between them. It describes acommonly-recurring structure of communicatingcomponents that solves a general design problem within aparticular context.”

Page 56: PhD. Colloquium

Introduction Research Approach More in depth Till now and further on

Idioms

“An idiom is a low-level pattern specific to aprogramming language. an idiom describes how toimplement particular aspects of components or therelationships between them using the features of thegiven language.”

Page 57: PhD. Colloquium

Introduction Research Approach More in depth Till now and further on

Recap

“A pattern is a solution to a problem that arises within aspecific context”

Page 58: PhD. Colloquium

Introduction Research Approach More in depth Till now and further on

So, we need...

• Context

• Problem

• Solution

Is this it? Do we miss something?

Page 59: PhD. Colloquium

Introduction Research Approach More in depth Till now and further on

We also need

• Goodness

• Recurrence

Until we say something about that, it is still a proto-pattern

Page 60: PhD. Colloquium

Introduction Research Approach More in depth Till now and further on

If one of both lacks...

• Bad Pattern

• Dysfunctional Pattern

• Anti-Pattern

Page 61: PhD. Colloquium

Introduction Research Approach More in depth Till now and further on

Diagrammability

• Christopher Alexander stated:

“If you can’t draw a diagram of it, it isn’t a pattern”

• Beware...it is not always the other way around

• UML is no silver bullet

• A diagram has to be interpreted, not implemented

Page 62: PhD. Colloquium

Introduction Research Approach More in depth Till now and further on

So, what do I want to find?

• Identification - Name and classification for identifying thepattern

• Context - Situation giving rise to a problem

• Problem - Set of forces repeatedly arising in the context

• Solution - Configuration to balance the forces

• Consequences - Consequences arising from application of thepattern. General, but specifically aimed at variability

Page 63: PhD. Colloquium

Introduction Research Approach More in depth Till now and further on

But also

• Example(s)

• Diagram(s)

• Details

Page 64: PhD. Colloquium

Introduction Research Approach More in depth Till now and further on

Outline

Introduction

Research Approach

More in depthMulti-tenancySoftware Patterns

Till now and further on

Page 65: PhD. Colloquium

Introduction Research Approach More in depth Till now and further on

Publication: Variability in Multi-tenant Environments

Need for Variability

Nee

d f

or

reso

urc

e sh

arin

g

CustomSoftwareSolution

StandardMulti-tenant

Solution

SPLSolution

ConfigurableMulti-tenant

Solution

PA

AS

IAA

Sa

b

a

b

a+b

a = Business Growthb = Customer Requirements Growth

Kabbedijk J., Jansen S. (2011). Variability in Multi-tenantEnvironments: Architectural Design Patterns from Industry.Variability at the 30th International Conference on ConceptualModeling (LNCS), 6999, 151-160

Page 66: PhD. Colloquium

Introduction Research Approach More in depth Till now and further on

Pattern Example

• In a warehousing system, customer A wants an SMS to besend to the truck driver when an order is picked, after whichthe order is removed from the system. Customer B howeverdoes not want any SMS to be send, but does want anapproval by a manager before a picked order is removedfrom the system

• How can we solve this workflow related problem?

Page 67: PhD. Colloquium

Introduction Research Approach More in depth Till now and further on

Pre/Post Update Hooks (1/3)

Page 68: PhD. Colloquium

Introduction Research Approach More in depth Till now and further on

Pre/Post Update Hooks (2/3)

• Intent - To provide the possibility for tenants to have customfunctionality just before or after an event

• Motivation - To let the software product fit the tenantsbusiness processes best, extra actions could be made availableto tenants before or after an event is called

• Solution - The use of a component able of calling othercomponents before and after the update of data. Thetenant-specific modules are listed in a separate table

Page 69: PhD. Colloquium

Introduction Research Approach More in depth Till now and further on

Pre/Post Update Hooks (3/3)

• Explanation - See image

• Consequences - Extra optional components have to beavailable in the software system in order to be able toimplement this pattern

• Example - In a bookkeeping program, tenants can choose,whether they want to update a third party service as well byusing a component that uses the API of a third party serviceto make changes there. If so, the FunctionalComponent cancall the third party communicator after an internal update isrequested

Page 70: PhD. Colloquium

Introduction Research Approach More in depth Till now and further on

Publication: CQRS

Kabbedijk J., Jansen S., Brinkkemper S. (2012). A Case Study ofthe Variability Consequences of the CQRS Pattern in OnlineBusiness Software. 17th European Conference on PatternLanguages of Programs (EuroPLoP)

Page 71: PhD. Colloquium

Introduction Research Approach More in depth Till now and further on

Seminar on Software Patterns

• 26 students in 13 groups

• 16 different case companies

• Reviewed research approach

• Reviewed proto-pattern

• Reviewed draft-paper

Page 72: PhD. Colloquium

Introduction Research Approach More in depth Till now and further on

Student Projects

Numerous student projects on:

• Pattern Adoption

• Variability Patterns

• SaaS flexibility

• Variable SaaS pricing

• Multi-tenancy Deployment Patterns

• Multi-tenancy Literature Study

Page 73: PhD. Colloquium

Introduction Research Approach More in depth Till now and further on

And now?

• Do something with the patternseminar

• Evaluate patterns

• Publish!

Page 74: PhD. Colloquium

Introduction Research Approach More in depth Till now and further on

Questions