1 Provisioning and Maintenance 1
1.1 History of Software Maintenance 1
1.1.1 Maintenance in Software Engineering 1
1.1.2 Dynamic Maintenance 3
1.2 Maintenance Provisioning 4
1.2.1 Server Provisioning 4
1.2.2 User Provisioning 5
1.3 Characteristics and Challenges 6
1.3.1 Provisioning Characteristics 6
1.3.2 Challenges 7
1.4 Distributed and Service-Oriented Dynamic Provisioning 10
1.4.1 Target System 10
1.4.2 Related Products 12
1.4.3 Related Standards 15
1.5 Summary 15
References 16
2 Grid and Distributed Systems 21
2.1 Fundamental Concepts 21
2.2 The Principles of Grids 22
2.2.1 Service-Oriented Architecture 22
2.2.2 Open Grid Service Architecture 23
2.3 Grid Middleware 24
2.3.1 Globus Toolkit 24
2.3.2 CGSP 26
2.3.3 gLite 28
2.3.4 UNICORE 30
2.3.5 ProActive 31
2.4 Dynamic Provisioning in Middleware 33
2.4.1 Provisioning of Middleware 33
2.4.2 Provisioning Using Middleware 34
2.5 ChinaGrid and Related Projects 34
2.5.1 CGSV 34
2.5.2 GPE4CGSP 36
2.5.3 Application Grids 38
2.6 Summary 39
References 40
3 Highly Available Dynamic Deployment Infrastructure 41
3.1 Motivation 41
3.2 Principle of Dynamic Deployment Infrastructure 45
3.2.1 Dynamic Deployer Core 47
3.2.2 Deploy Approach Manager 47
3.2.3 Service Package Manager 48
3.3 Service-Level vs.Container-Level 49
3.3.1 HAND-C:Container-Level Deployment 49
3.3.2 HAND-S:Service-Level Deployment 51
3.3.3 Service Dependency 52
3.3.4 Avoid Deadlock 53
3.3.5 Time Cost Analysis 53
3.4 Performance Analysis 56
3.4.1 Dynamic Deployment Experiments 56
3.4.2 Capability and Availability in Dynamic Environment 61
3.4.3 GAR File Transfer Performance 63
3.5 Summary 64
References 64
4 Service-Oriented Dependency-Aware Maintenance 67
4.1 Dependency-Aware Maintenance 67
4.2 Motivations 70
4.2.1 Concepts 70
4.2.2 Dependencies in a Grid 72
4.2.3 Maintaining Solution and Dependencies 73
4.2.4 Objectives 74
4.3 Definitions 75
4.4 Design of Cobweb Guardian 78
4.4.1 Architecture 78
4.4.2 Environment Dependency-Aware Maintenance in Three Granularities 79
4.4.3 Deployment Dependency-Aware Propagating Maintenance 80
4.4.4 Invocation Dependency-Aware Grouping Maintenance 81
4.4.5 Grouping Maintenance with Feedback 83
4.5 Evaluations 84
4.5.1 Test Environment 84
4.5.2 Deployment Dependency-Aware Propagation 85
4.5.3 Invocation Dependency-Aware Grouping 86
4.5.4 Environment Dependency-Aware Maintenance in Different Granularities 89
4.5.5 Evaluation for Dynamicity 90
4.6 Summary 91
References 91
5 Asynchronous Provisioning Strategy for Heterogeneous Grids 93
5.1 Motivation 93
5.2 Asynchronous Provisioning Model 94
5.2.1 Traditional Maintaining Solutions 94
5.2.2 Definitions for Asynchronous Maintenance 95
5.2.3 Specification 97
5.3 Maintenance Algorithms 98
5.3.1 The Virtual Maintainer 98
5.3.2 HAND Handler 100
5.4 Time Sequence Analysis 102
5.5 Characteristics Discussion 103
5.5.1 Transient Fault Tolerance 103
5.5.2 Archive Pending Tasks 104
5.5.3 Applicability 105
5.6 Correctness Proof 105
5.7 Evaluations 108
5.7.1 Environment Settings 108
5.7.2 Metrics 109
5.7.3 Applications 109
5.7.4 Overheads 110
5.7.5 Evaluations in Cluster and Grid 110
5.8 Summary 113
References 113
6 Orchestrating Provisioning among Heterogeneous Middleware 115
6.1 Introduction 115
6.2 Related Works 118
6.2.1 Interoperability 118
6.2.2 Dynamic Provisioning 119
6.2.3 Scheduling in a Distributed System 119
6.3 Orchestrating Model 120
6.3.1 Definitions 120
6.3.2 Optional Solutions for Resourceless Execution 121
6.3.3 Classic Formulation 122
6.4 Problem Formulation for Resourceless Orchestration 124
6.4.1 Constraints for Provisioning 125
6.4.2 Optimization Goal 126
6.5 Implementation of Orchestrator 126
6.6 Evaluations 126
6.6.1 Environment Setup 127
6.6.2 Application GridBean 129
6.6.3 Abbreviation 129
6.6.4 Running Applications Separately on Specific Middleware 129
6.6.5 Orchestration with Specific Demands 132
6.7 Summary 133
References 134
7 Implementation of Dynamic Provisioning with Community Services 137
7.1 Introduction 137
7.2 Implementation of Essential Components 139
7.2.1 Service Repository 139
7.2.2 Administration Console Client 140
7.2.3 Virtual Maintainer 142
7.2.4 Maintenance Workers 142
7.2.5 Dependency Probes 143
7.2.6 Working Flow 144
7.2.7 Lessons 147
7.3 Community Services that Apply the Dynamic Provisioning System 148
7.3.1 Bioinformatic Services 148
7.3.2 Image Processing Services 148
7.3.3 Massive Data Processing Services 150
7.3.4 CFD Grid 150
7.4 Summary 151
References 151
8 Conclusions and Future Challenges 153
8.1 Conclusions 153
8.2 Future Challenges 154
References 155
Glossary 157
Index 169