Abstract. After a component based system is developed, it has to be deployed into a target environment. As the system becomes much larger and more complex and the environment becomes open and dynamic, the deployment comes to be a difficult, tiring, error-prone and time-consuming task. This paper proposes an architecture based approach to deploying large-scale component based systems into open and dynamic environments in a systematic and semi-automatic manner. It does four contributions to facilitate the deployment: Firstly, a supporting tool is developed to visualize the software architecture of the system to be deployed to help deployers understand the structure, functions and desired qualities of the system. Secondly, the tool can automatically generate the deployment information from the architecture description produced in the phase of design and this will relieve deployers of inputting hundreds or thousands of deployment elements manually. Thirdly, the tool can monitor the up-to-date resource consumptions of the machines and support to partition one system into several subsystems and deploy the subsystems onto multiple machines simultaneously. Fourthly, a set of principles are proposed for guiding the deployment with the tool. The approach, especially the tool and principles are demonstrated on J2EE (Java 2 Platform Enterprise Edition).
IntroductionComponent-Based Software Engineering (CBSE) focuses on the development of software intensive systems from pre-fabricated and reusable components, the development of components, and system maintenance and improvement by means of component replacement and customization [4][3]. As CBSE has become a prevalent approach to building the large-scale software systems, people always pay much attention to how to develop a component-based system (CBS) in a rapid, high-quality and cost-effective way but other stages of software lifecycle, especially software deployment are neglected.