Font Size: a A A

Research On Key Techniques Of Software Self-adaptation

Posted on:2011-01-13Degree:DoctorType:Dissertation
Country:ChinaCandidate:B DingFull Text:PDF
GTID:1118360308485654Subject:Computer Science and Technology
Abstract/Summary:PDF Full Text Request
A revolution is taking place in software technology. New software paradigms, such as Pervasive Computing Software, Ultra-Large-Scale Systems (ULS) and Internetware, are being proposed one after another. In contrast with traditional computer applications, they demonstrate a set of new characteristics, including the openness of their environment, the proactivity of their behavior and the heterogeneity of their constituents. As a result, software adaptability is getting more and more important: To ensure the continuous and high-quality services in an open and dynamic environment, software has to be able to detect the environmental changes as well as its internal states and adjust its behavior accordingly.Adaptability is an ambitious goal and many software engineering researchers have made efforts towards it from different angles and backgrounds. However, to construct distributed computing software with the above-mentioned characteristics, we still confront a set of huge challenges. The most prominent ones are: (1) The approach to construct self-adaptive software in an open environment."Open"means that the environmental changes may exceed the expectations at the development stage. As a result, the software infrastructure should be decoupled from concrete environments, and software adaptability should be able to be flexibly adjusted at runtime. (2) The method to realize collective adaptation actions. Future software systems may involve a great quantity of nodes with heterogeneous intentions and administration policies. As a result, we cannot simply magnify traditional software adaptation mechanisms to the collective. Instead, we have to deal with a set of new issues, such as the dynamic formation of the collective and the cooperation mechanisms in the collective.This dissertation launches the research in view of the above two challenges and mainly focuses in the software engineering field. Firstly, we propose a conceptual model for software self-adaptation which reconciles both individual and collective adaptability. And then, under the guidance of this model, we study a set of key techniques, including the approach to construct self-adaptive software individuals, the centralized decision-based adaptation mechanisms in a collective and the decentralized adaptation mechanisms in a collective. The main contributions of this dissertation are as follows:(1) A conceptual model for software self-adaptation that reconciles both individual and collective adaptability.The conceptual model for software self-adaptation specifies the way to realize adaptation with regard to the guiding ideology. This dissertation propose such a model named Auxo, which reconciles both individual and collective adaptability, and lays emphasize on allowing a third-party to guide the self-adaptation process at runtime to address the challenges posed by the environment openness.(2) An approach to construct self-adaptive software individuals in open environments.Inspired by the achievements in the Automatic Control Theory, we propose a compound control process for the self-adaptive software individuals being characterized by the combination of feed-forward and feedback control, the maintenance of meta-level models, the separation of policies, and the support of third-party reconfiguration, etc. To reify this process, we propose an engineering approach for the construction of self-adaptive software, which is made up of four parts: the Auxo component model, the Auxo Unit framework, the method to adjust adaptability at runtime and a dedicated language named AuxoDL. With this approach, we can built software individuals with the adaptability to its external environment and its internal architecture, and the adaptability can be adjusted with fine granularity at runtime.(3) Approaches to realize collective aggregation and cross-individual adaptation.Taking collective adaptation based on centralized decision as the background, we propose an approach to realize collective aggregation and its key algorithm. As a result, software collective can be dynamically and adaptively formed and maintained in the current computing space based on a predefined task specification. Besides, we propose a method to realize cross-individual and centralized decision-based adaptation actions based on the proxy mechanism.(4) Mechanisms to realize decentralized adaptation through Distributed Constraint Optimization.Firstly, we model several instances of decentralized adaptation as Distributed Constraint Optimization Problems (DCOPs), and conclude that this modeling method can gain the benefit of reconciling individual's autonomy and collective's preference as well as keeping the individual's privacy. And then, aims at DCOPs with low constraint density, we propose a dedicated distributed constraint optimization algorithm nmaed HEDA. This algorithm specifies the behavior rules of individuals and the interacting protocols among them. As a result, the adaptation is emerged at the collective level. In contrast with existing algorithms, it can solve problems with low constraint density by less messages while still keeping polynomial space complexity.Those above research works are materialized as Auxo software architecture style and Auxo software framework: the former specifies how to construct software with individual and collective adaptability, and the latter provides an infrastructure for this kind of software. Those achievements have been validated by a lot of experiments as well as third-party self-adaptive applications which is set in the smart car and the smart museum.
Keywords/Search Tags:Software self-adaptation, Software architecture, Software framework, Component model, Distributed constraint optimization
PDF Full Text Request
Related items