Variability in Multi-Tenant Enterprise Software
Total Page:16
File Type:pdf, Size:1020Kb
UTRECHT UNIVERSITY Variability in Multi-Tenant Enterprise Software by Jaap Kabbedijk A thesis submitted in partial fulfillment for the degree of Doctor in the Faculty of Science Department of Information and Computing Sciences December 2014 SIKS Dissertation Series No. 2014-29 The research reported in this thesis has been carried out under the auspices of SIKS, the Dutch Research School for Information and Knowledge Systems. The cover image is from the board game Tzolkin: The Mayan Calendar by Czech Games Edition. The photo is provided by BoardGameGeek member Joshua R. ISBN/EAN: 978-90-393-6177-1 ©2014, Jaap Kabbedijk. All rights reserved Variability in Multi-Tenant Enterprise Software Variabiliteit in Multi-tenant Bedrijfssoftware (met een samenvatting in het Nederlands) Proefschrift ter verkrijging van de graad van doctor aan de Universiteit Utrecht op gezag van de rector magnificus, prof. dr. G.J. van der Zwaan, ingevolge het besluit van het college voor promoties in het openbaar te verdedigen op dinsdag 23 december 2014 des middags te 12.45 uur door Jaap Kabbedijk geboren op 27 mei 1986 te Oosterhout Promotor: Prof.dr. S. Brinkkemper Prof.dr.ir. J.C. Wortmann Copromotor: Dr. R.L. Jansen This research was financially supported by the NWO ‘Product as a Service’ project. “Somewhere in the deeply remote past it seriously traumatized a small random group of atoms drifting through the empty sterility of space and made them cling together in the most extraordinarily unlikely patterns. These patterns quickly learnt to copy themselves (this was part of what was so extraordinary of the patterns) and went on to cause massive trouble on every planet they drifted on to. That was how life began in the Universe.” Douglas Adams, The Hitchhiker’s Guide to the Galaxy Preface Before I started my PhD., I was not really aware of what such an endeavour would entail. Now, almost four years later, I do know. I now know one can not fulfil this journey alone. The are many people to thank and I will try to do this here. Most probably I missed the most obvious, important and valuable ones. For this I apologize beforehand. If you are one of them, feel blessed; you can count yourself among my most important and valuable friends. Right after my first publication and presentation at a scientific conference, I decided the thrill and travel of academic interaction was something I would like to experience more. This was during my master studies and I made the life changing choice to become a PhD. This was a major choice. An important choice, and a choice I don’t regret. Using the enthusiasm I had when I started, the literal and intellectual travels began. On the way I learned to value the people supporting my professionally. Slinger, thank you for helping me structure and improve my studies. Thanks also for not only being an academic mentor, but also a friend for beers and laughs. Unsurprisingly, my gratitude also goes to my promotor Sjaak, who was busy at times, but always tried to help me find out what was best for me. I also express my thanks to my second promotor Hans Wortmann and the people I worked with during my research project and at the many software companies I visited. There are too many people to name them all, but Liz, Werner, Ronald, Rolf and Machiel, you are certainly among the many I should actually all thank explicitly. So, now for the people that helped me out, often not by supporting me directly in writing my thesis, but by being there for and supporting me. Of course my parents; pap en mam, bedankt dat jullie er altijd voor me zijn. Also, all my friends. There are, luckily, too many of you to write all the names down, but thank you all. Special thanks goes to Kevin, who has been my soul mate for almost ten years now. Last, but certainly not least, my love goes to Eline. Knowing what I know now, I can safely state that I learned a lot about software patterns, software architecture, research methods and the academic culture. But most importantly, I learned that a PhD., like most things in life, is enjoyed best when you have the people you love, support you. Jaap iv Contents Preface iv 1 Introduction3 1.1 Motivation................................3 1.2 Scientific Relevance...........................5 1.3 Positioning the Research........................6 1.3.1 Enterprise Software.......................7 1.3.2 Software as a Service......................8 1.3.3 Software Architecture...................... 10 1.3.4 Software Quality........................ 10 1.3.5 Software Patterns........................ 12 1.3.6 Variability............................ 13 1.4 Research Approach........................... 13 1.4.1 Research Questions....................... 14 1.4.2 Research Methods....................... 17 1.4.3 Validation and Evaluation................... 20 1.5 Dissertation Outline.......................... 21 I Variability and Multi-tenancy 25 2 Defining Multi-Tenancy 27 2.1 Introduction............................... 28 2.2 Research Method............................ 30 2.2.1 Academic Literature Collection................ 31 2.2.2 Industrial Literature Collection................ 32 2.3 Classification.............................. 34 2.3.1 Academic Literature Classification.............. 34 2.3.2 Industrial Literature Classification.............. 36 2.4 Observations............................... 37 2.4.1 Academic Paper Results.................... 38 2.4.2 Blog Post Results........................ 38 2.5 Definition................................ 40 2.6 Research Agenda............................ 43 2.7 Threats to Validity........................... 46 v vi CONTENTS 2.8 Conclusion................................ 46 3 The Role of Variability Patterns 49 3.1 Introduction............................... 50 3.2 Concepts................................. 51 3.2.1 Tenant-based Variability.................... 51 3.2.2 Variability Patterns....................... 52 3.3 Conceptual Model............................ 53 3.3.1 Application Example...................... 54 3.4 Discussion................................ 55 3.5 Conclusion................................ 56 4 Variability in Multi-tenant Systems 57 4.1 Introduction............................... 58 4.2 Research Approach........................... 59 4.2.1 Validation............................ 59 4.3 Related Work and Definitions..................... 60 4.3.1 Multi-tenancy.......................... 60 4.3.2 Variability............................ 61 4.3.3 Software Patterns........................ 62 4.4 User-Variability Trade-off....................... 63 4.5 Variability Patterns........................... 64 4.5.1 Customizable Data Views................... 64 4.5.2 Module Dependent Menu.................... 65 4.5.3 Pre/Post Update Hooks.................... 67 4.6 Conclusion and Future Research.................... 68 5 Variability Consequences of the CQRS Pattern 69 5.1 Introduction............................... 70 5.2 Related Work.............................. 71 5.3 Research Approach........................... 73 5.3.1 Research Questions....................... 74 5.3.2 Validation............................ 75 5.4 CQRS Implementation......................... 75 5.5 CQRS Sub Patterns.......................... 77 5.5.1 Event Sourcing......................... 77 5.5.2 Event Store........................... 77 5.5.3 Aggregate Root......................... 78 5.5.4 Command Handler....................... 79 5.5.5 Query Model Builder...................... 80 5.5.6 Query Handler......................... 80 5.5.7 Snapshotting.......................... 81 5.6 Variability Influences.......................... 82 5.7 Discussion and Future Research.................... 83 5.8 Conclusion................................ 84 CONTENTS vii II Selecting Patterns in Systems Design 85 6 Multi-Tenant Architecture Assessment 87 6.1 Introduction............................... 88 6.2 Research Approach........................... 89 6.2.1 Structured Literature Research................ 90 6.2.2 Expert Validation........................ 92 6.3 Multi-Tenant Architecture Assessment Model............ 93 6.4 Multi-tenant Architectures....................... 94 6.4.1 Expert Validation........................ 97 6.5 MTA Assessment Criteria....................... 98 6.5.1 Expert Evaluation....................... 100 6.6 MTA Decision Matrix......................... 101 6.7 Discussion and Conclusion....................... 104 7 Comparing Dynamical Adaptation Patterns 105 7.1 Introduction............................... 106 7.2 Related Work.............................. 107 7.3 Research Approach........................... 110 7.3.1 Validation............................ 111 7.4 Pattern Description Method...................... 111 7.5 Dynamic Functionality Adaptation Patterns............. 114 7.5.1 Problem Statement....................... 114 7.5.2 Component Interceptor Pattern................ 115 7.5.3 Event Distribution Pattern................... 116 7.5.4 Pattern Comparison...................... 118 7.6 Dynamic Data Model Extension Patterns............... 122 7.6.1 Problem Statement....................... 122 7.6.2 Datasource Router Pattern................... 124 7.6.3 Custom Property Object Pattern............... 126 7.6.4 Pattern Comparison...................... 127 7.7 Conclusion................................ 132 8 Software Pattern Evaluation Method 135 8.1 Introduction............................... 136 8.2 Related Work.............................. 137 8.3 Research Approach........................... 138 8.4 SPEM - Software Pattern Evaluation