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 2010 2 CONTENTS 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 3 2.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 Template 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 Contents 3.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 Components . 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 Variability 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 5 4.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 Provisioning and Management Interface (CPMI) . 210 5.2.1 Mapping Provisioning and Management Services to Com- ponents via Component Flows . 210 5.2.2 Generic Component States and Operations in the CPMI . 214 5.2.3 Special Operations for Provider Components . 219 5.2.4 Special Operations 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 Provisioning 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 Contents 6 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 Repository . 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 Provisioning 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 Modeling . 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 7 7.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 Contents ZUSAMMENFASSUNG 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.
Details
-
File Typepdf
-
Upload Time-
-
Content LanguagesEnglish
-
Upload UserAnonymous/Not logged-in
-
File Pages369 Page
-
File Size-