The Role of Variability Patterns in Multi-tenant Business Software
Upcoming SlideShare
Loading in...5
×
 

The Role of Variability Patterns in Multi-tenant Business Software

on

  • 504 views

 

Statistics

Views

Total Views
504
Views on SlideShare
492
Embed Views
12

Actions

Likes
0
Downloads
6
Comments
0

1 Embed 12

http://jkabbedijk.nl 12

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

The Role of Variability Patterns in Multi-tenant Business Software The Role of Variability Patterns in Multi-tenant Business Software Presentation Transcript

  • Introduction Conceptual Model Conclusion and Discussion The Role of Variability Patterns in Multi-tenant Business Software Jaap Kabbedijk & Slinger Jansen Utrecht University August 20, 2012
  • Introduction Conceptual Model Conclusion and Discussion Outline Introduction Conceptual Model Conclusion and Discussion
  • Introduction Conceptual Model Conclusion and Discussion What is it about? The Role of Variability Patterns in Multi-tenant Business Software
  • Introduction Conceptual Model Conclusion and Discussion On-premises Software
  • Introduction Conceptual Model Conclusion and Discussion ASP
  • Introduction Conceptual Model Conclusion and Discussion Multi-user Software
  • Introduction Conceptual Model Conclusion and Discussion Multi-tenant Software
  • Introduction Conceptual Model Conclusion and Discussion So, what changes? • One code base • Customizations are fairly • One configurable easy instance • Every customer own • Tenants don’t need instance to maintain the • Customer has to take care software of install/update
  • Introduction Conceptual Model Conclusion and Discussion So, what is important? The software product needs to be configurable based on the tenant’s needs.
  • Introduction Conceptual Model Conclusion and Discussion So, what is important? The software product needs to be configurable based on the tenant’s needs. Tenant Based Variability
  • Introduction Conceptual Model Conclusion and Discussion How to achieve this?
  • Introduction Conceptual Model Conclusion and Discussion Solving a problem • You want a room to be light • You want to be able to look outside • You don’t want the room to be cold / wet
  • Introduction Conceptual Model Conclusion and Discussion Solving a problem • You want a room to be light • You want to be able to look outside • You don’t want the room to be cold / wet Use a window!
  • Introduction Conceptual Model Conclusion and Discussion It all started in 1977... • Christopher Alexander • Architect / Landscape planner • Identified towns as collections of patterns • 253 patterns forming together a pattern language
  • Introduction Conceptual Model Conclusion and Discussion Street Cafe “The street cafe provides a unique setting, special to cities: a place where people can sit lazily, legitimately, be on view, and watch the world go by... Encourage local cafes to spring up in each neighborhood. Make them intimate places, with several rooms, open to a busy path, where people can sit with coffee or a drink and watch the world go by. Build the front of the cafe so that a set of tables stretch out of the cafe, right into the street.” Christopher Alexander, A Pattern Language, p. 437,439
  • Introduction Conceptual Model Conclusion and Discussion First Software Pattern: MVC • Model View Controller • Smalltalk-80 • Data is separate from representation • Still used today
  • Introduction Conceptual Model Conclusion and Discussion Big break through: GoF • Gang of Four (1994) • Gamma, Helm, Johnson, Vlissides • 23 patterns, became the most famous patterns • Object Oriented
  • Introduction Conceptual Model Conclusion and Discussion Software Patterns A proven solution to a recurring problem, presented in a structured and understandable way. Based on Gamma et al. (1995) and Buschmann et al. (1996)
  • Introduction Conceptual Model Conclusion and Discussion Outline Introduction Conceptual Model Conclusion and Discussion
  • Introduction Conceptual Model Conclusion and Discussion How can patterns help?
  • Introduction Conceptual Model Conclusion and Discussion Software Product Domain
  • Introduction Conceptual Model Conclusion and Discussion Software Pattern
  • Introduction Conceptual Model Conclusion and Discussion Example - SPD • Online Supply Chain Management System • 120 customers of different sizes • Customers have different workflows • Some workflow elements are fixed • Some workflow elements are optional and dependent on the customer • How to do this?
  • Introduction Conceptual Model Conclusion and Discussion Example - SP • Different companies have different requirements • All customers use the same instance of the software product • Create a component in the workflow, capable of calling other components just before or after it will perform its own action • This enables flexible workflows • This may cause performance issues if the system load is high
  • Introduction Conceptual Model Conclusion and Discussion So that is how patterns help!
  • Introduction Conceptual Model Conclusion and Discussion Outline Introduction Conceptual Model Conclusion and Discussion
  • Introduction Conceptual Model Conclusion and Discussion Discussion • ‘Goodness’ • Recurrence • Patterns are general solutions. No implementations • Evaluation != Validation
  • Introduction Conceptual Model Conclusion and Discussion Conclusion • By collecting all patterns, a complete catalogue for variability patterns can be created • By documenting solutions in a structured way, comparing solutions becomes possible • By documenting forces and consequences a pattern language for variability patterns can hopefully be created
  • Introduction Conceptual Model Conclusion and Discussion Questions j.kabbedijk@uu.nl www.jkabbedijk.nl