phd. colloquium
DESCRIPTION
Presentation given about my research during the PhD. colloquium at Utrecht UniversityTRANSCRIPT
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
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
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
Introduction Research Approach More in depth Till now and further on
Personal
Introduction Research Approach More in depth Till now and further on
Introduction Research Approach More in depth Till now and further on
Professional
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
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
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
Introduction Research Approach More in depth Till now and further on
PaaS: the reason I’m here now
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
Introduction Research Approach More in depth Till now and further on
So now I research...
Tenant-dependent Variability Patterns in Online BusinessSoftware
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
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
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
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!
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!
Introduction Research Approach More in depth Till now and further on
Case Companies
• AFAS
• Exact
• MP-Objects
• Mendix
• Centric
• 15 others!
Introduction Research Approach More in depth Till now and further on
How to get the patterns?
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
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?
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?
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
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
Introduction Research Approach More in depth Till now and further on
Multi-tenancy
Introduction Research Approach More in depth Till now and further on
Where do you want to live?
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
Introduction Research Approach More in depth Till now and further on
What does this have to do with software?
Introduction Research Approach More in depth Till now and further on
Traditional Delivery Life Cycle
Introduction Research Approach More in depth Till now and further on
Traditional Deployment Model
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
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
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
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
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.
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?
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
Introduction Research Approach More in depth Till now and further on
Overview ASP to Multi-tenancy
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
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!
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
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
Introduction Research Approach More in depth Till now and further on
Run-time variability
Introduction Research Approach More in depth Till now and further on
How to get the variability in a software product?
Introduction Research Approach More in depth Till now and further on
Software Patterns
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
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
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
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
Introduction Research Approach More in depth Till now and further on
GoF examples
• Composite
• Abstract Factory
• Singleton
• Observer
• Memento
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
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
Introduction Research Approach More in depth Till now and further on
POSA: classification
• Architectural Patterns
• Design Patterns
• Idioms
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.”
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.”
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.”
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”
Introduction Research Approach More in depth Till now and further on
So, we need...
• Context
• Problem
• Solution
Is this it? Do we miss something?
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
Introduction Research Approach More in depth Till now and further on
If one of both lacks...
• Bad Pattern
• Dysfunctional Pattern
• Anti-Pattern
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
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
Introduction Research Approach More in depth Till now and further on
But also
• Example(s)
• Diagram(s)
• Details
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
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
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?
Introduction Research Approach More in depth Till now and further on
Pre/Post Update Hooks (1/3)
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
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
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)
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
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
Introduction Research Approach More in depth Till now and further on
And now?
• Do something with the patternseminar
• Evaluate patterns
• Publish!
Introduction Research Approach More in depth Till now and further on
Questions