A method and implementation to define and provision variable composite applications, and its usage in cloud computing [Elektronische Ressource] / vorgelegt von Ralph Mietzner

A method and implementation to define and provision variable composite applications, and its usage in cloud computing [Elektronische Ressource] / vorgelegt von Ralph Mietzner

English
369 Pages
Read
Download
Downloading requires you to have access to the YouScribe library
Learn all about the services we offer

Description

A Method and Implementation to Defineand Provision Variable CompositeApplications, and its Usage in CloudComputingVon der Fakultät für Informatik, Elektrotechnik und Informationstechnik derUniversität Stuttgart zur Erlangung der Würde eines Doktors derNaturwissenschaften (Dr. rer. nat.) genehmigte AbhandlungVorgelegt vonRalph Mietzneraus StuttgartHauptberichter: Prof. Dr. Frank LeymannMitberichter: Univ. Prof. Dr. Schahram DustdarTag der mündlichen Prüfung: 13. Juli 2010Institut für Architektur von Anwendungssystemender Universität Stuttgart20102CONTENTS1 Introduction 151.1 Introduction, Problem Domain and Motivation . . . . . . . . . . . 151.2 Research Issues and Contributions . . . . . . . . . . . . . . . . . . . 191.2.1 Application Metamodel and Component Dependencies . 191.2.2 Separation of Application Vendors and Providers . . . . . 201.2.3 Defining Variability in Composite Applications . . . . . . . 211.2.4 Customization of Applications . . . . . . . . . . . . . . . . . 211.2.5 An Architecture to Automatically Provision and ManageApplications . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221.2.6 QoS-Aware Provisioning . . . . . . . . . . . . . . . . . . . . 221.3 Organization of the Thesis . . . . . . . . . . . . . . . . . . . . . . . . 222 Background and Related Work 252.1 Decomposition of Applications into Components . . . . . . . . . . 262.1.1 Component-Based Software Development . . . . . . . . . 272.1.

Subjects

Informations

Published by
Published 01 January 2010
Reads 22
Language English
Document size 5 MB
Report a problem

A Method and Implementation to Define
and Provision Variable Composite
Applications, and its Usage in Cloud
Computing
Von der Fakultät für Informatik, Elektrotechnik und Informationstechnik der
Universität Stuttgart zur Erlangung der Würde eines Doktors der
Naturwissenschaften (Dr. rer. nat.) genehmigte Abhandlung
Vorgelegt von
Ralph Mietzner
aus Stuttgart
Hauptberichter: Prof. Dr. Frank Leymann
Mitberichter: Univ. Prof. Dr. Schahram Dustdar
Tag der mündlichen Prüfung: 13. Juli 2010
Institut für Architektur von Anwendungssystemen
der Universität Stuttgart
20102CONTENTS
1 Introduction 15
1.1 Introduction, Problem Domain and Motivation . . . . . . . . . . . 15
1.2 Research Issues and Contributions . . . . . . . . . . . . . . . . . . . 19
1.2.1 Application Metamodel and Component Dependencies . 19
1.2.2 Separation of Application Vendors and Providers . . . . . 20
1.2.3 Defining Variability in Composite Applications . . . . . . . 21
1.2.4 Customization of Applications . . . . . . . . . . . . . . . . . 21
1.2.5 An Architecture to Automatically Provision and Manage
Applications . . . . . . . . . . . . . . . . . . . . . . . . . . . . 22
1.2.6 QoS-Aware Provisioning . . . . . . . . . . . . . . . . . . . . 22
1.3 Organization of the Thesis . . . . . . . . . . . . . . . . . . . . . . . . 22
2 Background and Related Work 25
2.1 Decomposition of Applications into Components . . . . . . . . . . 26
2.1.1 Component-Based Software Development . . . . . . . . . 27
2.1.2 Service-Oriented Architecture . . . . . . . . . . . . . . . . . 28
2.1.3 The Role of Middleware in Composite Applications . . . . 30
2.1.4 Software Product Line Engineering . . . . . . . . . . . . . . 31
2.2 Towards Utility and Cloud Computing . . . . . . . . . . . . . . . . 34
2.2.1 As a service models . . . . . . . . . . . . . . . . . . . . . . . 35
32.2.2 Example SaaS Application . . . . . . . . . . . . . . . . . . . 38
2.2.3 PaaS Examples . . . . . . . . . . . . . . . . . . . . . . . . . . 39
2.2.4 IaaS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 43
2.2.5 Application Portals . . . . . . . . . . . . . . . . . . . . . . . . 45
2.2.6 Cloud Management Portals . . . . . . . . . . . . . . . . . . . 45
2.2.7 Provisioning Engines . . . . . . . . . . . . . . . . . . . . . . 46
2.2.8 Topology Modeling and Provisioning . . . . . . . . . . . . . 49
2.2.9 Composite Services and Applications . . . . . . . . . . . . 51
2.2.10 Cloud Interoperability . . . . . . . . . . . . . . . . . . . . . . 52
2.2.11 Package Standardization Efforts . . . . . . . . . . . . . . . . 53
2.3 Summary and Conclusion . . . . . . . . . . . . . . . . . . . . . . . . 58
3 Development of Cafe Application Templates 59
3.1 Roles in Cafe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61
3.1.1 Roles in Cafe . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
3.2 High-Level Cafe Development Process and Terminology . . . . . 63
3.2.1 Template engineering phase . . . . . . . . . . . . . . . . . . 64
3.2.2 T customization phase . . . . . . . . . . . . . . . . . 65
3.2.3 Solution engineering phase . . . . . . . . . . . . . . . . . . 65
3.2.4 Provisioning phase . . . . . . . . . . . . . . . . . . . . . . . . 65
3.3 Cafe Application Metamodel . . . . . . . . . . . . . . . . . . . . . . 66
3.3.1 Short Overview . . . . . . . . . . . . . . . . . . . . . . . . . . 67
3.3.2 Example Application Model . . . . . . . . . . . . . . . . . . 67
3.3.3 Formal Definition . . . . . . . . . . . . . . . . . . . . . . . . 69
3.3.4 Components . . . . . . . . . . . . . . . . . . . . . . . . . . . . 70
3.3.5 Component Implementations . . . . . . . . . . . . . . . . . 71
3.3.6 Multi-Tenancy Patterns . . . . . . . . . . . . . . . . . . . . . 75
3.3.7 Deployment Graph . . . . . . . . . . . . . . . . . . . . . . . . 84
3.3.8 Atomic and Composite Components . . . . . . . . . . . . . 86
3.3.9 Serialization of the Cafe Application Metamodel . . . . . 88
3.4 Cafe Variability Metamodel . . . . . . . . . . . . . . . . . . . . . . . 90
3.4.1 Requirements for a Variability Mechanism . . . . . . . . . 90
3.4.2 Short Overview . . . . . . . . . . . . . . . . . . . . . . . . . . 91
4 Contents3.4.3 Example Variability Model . . . . . . . . . . . . . . . . . . . 92
3.4.4 Formal Definition . . . . . . . . . . . . . . . . . . . . . . . . 95
3.4.5 Enabling conditions and new alternatives for refinement
variability points . . . . . . . . . . . . . . . . . . . . . . . . . 120
3.4.6 Variability Models and Component Dependencies . . . . . 123
3.4.7 Modeling Requirements on Provider Supplied Compo-
nents with Variability . . . . . . . . . . . . . . . . . . . . . . 128
3.5 Providers and their Capabilities . . . . . . . . . . . . . . . . . . . . 132
3.5.1 A Metamodel for Providers . . . . . . . . . . . . . . . . . . . 133
3.5.2 Component Binding . . . . . . . . . . . . . . . . . . . . . . . 136
3.6 Car: Cafe Application Template Archive . . . . . . . . . . . . . . . 139
3.7 Detailed Template Engineering Process . . . . . . . . . . . . . . . . 140
3.7.1 Selection of Available Components . . . . . . . . . . . . . . 142
3.7.2 Development of Missing . . . . . . . . . . . . 142
3.7.3 Variability Definition for Components . . . . . . . . . . . . 143
3.7.4 Component and Variability Integration . . . . . . . . . . . 143
3.7.5 Customization Tool Development . . . . . . . . . . . . . . . 144
3.7.6 Template Packaging . . . . . . . . . . . . . . . . . . . . . . . 145
3.8 Summary and Conclusion . . . . . . . . . . . . . . . . . . . . . . . . 145
4 Customization of Cafe Application Templates 147
4.1 Requirements for a Customization Tool . . . . . . . . . . . . . . . . 149
4.1.1 Deal with Abstraction from Implementation Details . . . 149
4.1.2 Guarantee Complete and Correct Customizations . . . . . 150
4.1.3 Customer Guidance . . . . . . . . . . . . . . . . . . . . . . . 151
4.2 Executing Variability Models . . . . . . . . . . . . . . . . . . . . . . 151
4.2.1 Different Purposes for Executable Variability Models . . . 152
4.2.2 Operational Semantics for the Cafe V Metamodel153
4.2.3 Complete and Correct Customizations . . . . . . . . . . . . 165
4.3 Generating Customization Flows from Variability Models . . . . . 169
4.3.1 Introduction to PM-Graphs . . . . . . . . . . . . . . . . . . . 170
4.3.2 Mapping Variability Models to PM-Graphs . . . . . . . . . 171
4.3.3 Guarantee Complete and Correct Customizations . . . . . 184
Contents 54.3.4 The Use of Customization Flows in Different Phases of
the Cafe Development Process . . . . . . . . . . . . . . . . . 188
4.4 Template Customization Phase . . . . . . . . . . . . . . . . . . . . . 195
4.5 Solution Engineering Phase . . . . . . . . . . . . . . . . . . . . . . . 196
4.5.1 Customization Phase . . . . . . . . . . . . . . . . . . . . . . 198
4.5.2 Solution Creation Phase . . . . . . . . . . . . . . . . . . . . 198
4.6 Summary and Conclusion . . . . . . . . . . . . . . . . . . . . . . . . 199
5 Provisioning and Management of Cafe Application Solutions 201
5.1 Service-Oriented Provisioning and Management of Cafe Applica-
tions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 203
5.1.1 Provisioning Services Offered by Different Provisioning
Engines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 204
5.1.2 Provisioning and Management Flows . . . . . . . . . . . . 207
5.2 Cafe and Interface (CPMI) . . . . . . . 210
5.2.1 Mapping Provisioning and Management Services to Com-
ponents via Component Flows . . . . . . . . . . . . . . . . . 210
5.2.2 Generic States and Operations in the CPMI . 214
5.2.3 Special Operations for Provider Components . . . . . . . . 219
5.2.4 for Single (Configurable) Instance
Components . . . . . . . . . . . . . . . . . . . . . . . . . . . . 221
5.3 Application Provisioning . . . . . . . . . . . . . . . . . . . . . . . . . 225
5.3.1 Find Realizations . . . . . . . . . . . . . . . . . . . . . . . . . 226
5.3.2 Find Correct and Complete Component Bindings . . . . . 236
5.3.3 Select the Realization Component Binding . . . . . . . . . 246
5.3.4 Component Provisioning . . . . . . . . . . . . . . . . . . . . 248
5.3.5 Executing Activities . . . . . . . . . . . . . . . 256
5.4 Optimization of Component Binding . . . . . . . . . . . . . . . . . 263
5.4.1 Generic Plugin Mechanism for Optimization Algorithms
in Cafe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 264
5.4.2 Annotating Already Provisioned Components and Provi-
sioning Services with Cost and Performance Levels . . . . 265
5.5 Summary and Conclusion . . . . . . . . . . . . . . . . . . . . . . . . 266
6 Contents6 Implementation of the Cafe Platform 269
6.1 Cafe Application Modeler . . . . . . . . . . . . . . . . . . . . . . . . 270
6.1.1 Cafe Application Model Editor . . . . . . . . . . . . . . . . . 271
6.1.2 Cafe Variability Model Editor . . . . . . . . . . . . . . . . . 272
6.1.3 Component Binding Editor . . . . . . . . . . . . . . . . . . . 273
6.1.4 Customization Flow Generator . . . . . . . . . . . . . . . . 273
6.2 Cafe System . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 275
6.2.1 Application Portal . . . . . . . . . . . . . . . . . . . . . . . . 276
6.2.2 Customization Flows . . . . . . . . . . . . . . . . . . . . . . 278
6.2.3 Template Repository . . . . . . . . . . . . . . . . . . . . . . . 279
6.2.4 Solution R . . . . . . . . . . . . . . . . . . . . . . . 280
6.2.5 Provisioning Services and Provisioned Components Repos-
itory . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 280
6.2.6 Selection Facility . . . . . . . . . . . . . . . . . . . . . . . . . 281
6.2.7 Optimization Component . . . . . . . . . . . . . . . . . . . . 282
6.2.8 Solution Creation Service . . . . . . . . . . . . . . . . . . . . 282
6.2.9 Provisioning Support Services . . . . . . . . . . . . . . . . . 283
6.2.10 Flows . . . . . . . . . . . . . . . . . . . . . . . . 283
6.2.11 Component Flows . . . . . . . . . . . . . . . . . . . . . . . . 288
6.2.12 Abstract BPEL Processes as Blueprints for Component
Flows . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 293
6.3 Summary and Conclusion . . . . . . . . . . . . . . . . . . . . . . . . 294
7 Applicability and Case Studies 295
7.1 General Applicability . . . . . . . . . . . . . . . . . . . . . . . . . . . 296
7.1.1 Application Modeling and Deployment . . . . . . . . . . . 296
7.1.2 Variability . . . . . . . . . . . . . . . . . . . . . . . 302
7.2 Ecco . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 305
7.2.1 Multi-Tenancy Patterns in eCCo . . . . . . . . . . . . . . . . 306
7.3 Decidr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 307
7.3.1 Components and Provisioning . . . . . . . . . . . . . . . . . 307
7.3.2 Headless Cafe . . . . . . . . . . . . . . . . . . . . . . . . . . . 309
Contents 77.4 Mocca Sample Application . . . . . . . . . . . . . . . . . . . . . . . 310
7.4.1 Components . . . . . . . . . . . . . . . . . . . . . . . . . . . . 310
7.4.2 Variability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 311
7.4.3 Provisioning . . . . . . . . . . . . . . . . . . . . . . . . . . . . 312
7.5 Bootstrapping Cafe: Cafe System as a Cafe Application . . . . . . 314
7.6 Further Case Studies . . . . . . . . . . . . . . . . . . . . . . . . . . . 315
7.6.1 EaaS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 315
7.6.2 Sametime 3D in the Cloud . . . . . . . . . . . . . . . . . . . 316
8 Conclusion and Outlook 317
8.1 Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 317
8.2 Future Work . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 319
8 ContentsZUSAMMENFASSUNG
Heutzutage versuchen Firmen Anwendungen, die nicht zu ihrem Kerngeschäft
gehören, möglichst kostengünstig an Betreiber auszulagern. Dieser Trend
hin zum Outsourcing von Anwendungen begünstigt die Entstehung eines
neuen Typs von IT Service Anbietern. Diese Anbieter betreiben und warten
Anwendungen für Firmen, die diese Anwendungen ausgelagert haben. Das
Geschäftsmodell dieser Anbieter basiert auf Skaleneffekten. Da der Anbieter in
der Lage ist, die Anwendungen mehrerer Kunden auf der gleichen Hardware-,
Middleware-, und Softwareplattform zu betreiben, kann er sie meist kostengün-
stiger betreiben, als die Kunden selbst. Da verschiedene Kunden verschiedene
Anforderungen hinsichtlich funktionaler und nicht-funktionaler Anforderun-
gen der Anwendungen haben, müssen sowohl die Anwendungen, als auch
die darunterliegende Middleware- und Hardwareinfrastruktur flexibel und
anpassbar sein. Um ihren Kundenstamm zu erhöhen und Skaleneffekte noch
besser auszunutzen, werden nicht nur eigene Anwendungen von den Anbietern
angeboten, sondern auch Anwendungen, die von Drittanbietern zugekauft
werden.
In dieser Dissertation wird ein Metamodell sowie zugehörige Algorithmen
und Werkzeuge eingeführt, das es Anwendungsentwicklern erlaubt, Anwen-
dungen so zu entwickeln und auszuliefern, dass sie automatisch bei einem
Anbieter installiert (provisioniert) werden könnnen. Dies sollte möglichst wenig
9bis gar kein Eingreifen von Administratoren erfordern. Darüberhinaus wurde
ein Metamodell entwickelt mit dessen Hilfe die Variabilität in Anwendungen
beschrieben werden kann. Die Definition der Variabilität einer Anwendung mit
Hilfe dieses Metamodels erlaubt die automatische Generierung von Werkzeu-
gen, die Kunden durch die Anpassung von Anwendungen leiten. Daher un-
terstützen die in dieser Arbeit eingeführten Technologien ein sogenanntes
Selbstbedienungsmodell, in dem Kunden sich in einem Anwendungsportal für
Anwendungen anmelden und von ihnen abmelden können, je nachdem, ob sie
eine bestimmte Anwendung benötigen oder nicht. Nachdem sie eine bestimmte
Anwendung ausgewählt haben, werden die Kunden durch die Anpassung
der geleitet. Diese wird dann automatisch mit den, vom Kunden
gewählten, funktionalen und nicht-funktionalen Anpassungen aufgesetzt.
Die Konzepte, die in dieser Arbeit eingeführt werden, erlauben es Anwen-
dungsentwicklern, anpassbare Anwendungen zu beschreiben und zu entwick-
eln, ohne die konkrete Infrastruktur, auf der diese Anwendungen nachher
betrieben werden, zu kennen. Anbieter können ihren Kundenstamm erhöhen,
indem sie anpassbare Anwendungen von Drittanbietern auf ihrer Infrastruktur
betreiben. Kunden können mit dem vorgestellten Ansatz eine beliebige Kombi-
nation aus Anbieter und Anwendung wählen und sind nicht auf einen Anbieter
fixiert, da nur dieser eine ganz bestimmte Anwendung anbietet. Prototypen,
die alle drei Rollen, Anwendungsentwickler, Anbieter und Kunde unterstützen
und die die beschriebenen Konzepte implementieren, werden in dieser Ar-
beit vorgestellt. Darüberhinaus wird der Ansatz in verschiedenen Fallstudien
evaluiert.
10 Zusammenfassung