摘要
System management is becoming increasingly complex and brings high costs, especially with the advent of cloud computing. Cloud computing involves numerous platforms often of virtual machines (VMs) and middleware has to be managed to make the whole system work cost- effectively after an application is deployed. In order to re- duce management costs, in particular for the manual activi- ties, many computer programs have been developed remove or reduce the complexity and difficulty of system mamnage- ment. These programs are usually hard-coded in languages like Java and C++, which bring enough capability and flexi- bility but also cause high programming effort and cost. This paper proposes an architecture for developing management programs in a simple but powerful way. First of all, the man- ageability of a given platform (via APIs, configuration files, and scripts) is abstracted as a runtime model of the plat- form's software architecture, which can automatically and immediately propagate any observable runtime changes of the target platforms to the corresponding architecture mod- els, and vice versa. The management programs are devel- oped using modeling languages, instead of those relatively low-level programming languages. Architecture-level man- agement programs bring many advantages related to perfor- mance, interoperability, reusability, and simplicity. An experiment on a real-world cloud deployment and comparison with traditional programming language approaches demonstrate the feasibility, effectiveness, and benefits of the new model based approach for management program development.
System management is becoming increasingly complex and brings high costs, especially with the advent of cloud computing. Cloud computing involves numerous platforms often of virtual machines (VMs) and middleware has to be managed to make the whole system work cost- effectively after an application is deployed. In order to re- duce management costs, in particular for the manual activi- ties, many computer programs have been developed remove or reduce the complexity and difficulty of system mamnage- ment. These programs are usually hard-coded in languages like Java and C++, which bring enough capability and flexi- bility but also cause high programming effort and cost. This paper proposes an architecture for developing management programs in a simple but powerful way. First of all, the man- ageability of a given platform (via APIs, configuration files, and scripts) is abstracted as a runtime model of the plat- form's software architecture, which can automatically and immediately propagate any observable runtime changes of the target platforms to the corresponding architecture mod- els, and vice versa. The management programs are devel- oped using modeling languages, instead of those relatively low-level programming languages. Architecture-level man- agement programs bring many advantages related to perfor- mance, interoperability, reusability, and simplicity. An experiment on a real-world cloud deployment and comparison with traditional programming language approaches demonstrate the feasibility, effectiveness, and benefits of the new model based approach for management program development.