节点文献

软件自适应若干关键技术研究

Research on Key Techniques of Software Self-adaptation

【作者】 丁博

【导师】 王怀民;

【作者基本信息】 国防科学技术大学 , 计算机科学与技术, 2010, 博士

【摘要】 软件领域正在发生着一场深刻的变革,普适计算软件、超大规模软件系统、网构软件等新一代软件范型不断涌现。与传统计算机应用相比,它们表现出了环境开放、行为主动、成员异构等特点,使得软件自适应的重要性日益凸显――软件需要在运行时感知环境变化和自身状态,据此对其行为进行主动调整,以保证能够在动态开放环境下持续、高质量地提供服务。自适应是对软件能力的一种理想期望,研究者已经从不同背景和角度对其展开了研究。然而,要构造环境开放、行为主动、成员异构的分布计算软件,现有工作仍面临巨大挑战,突出表现在:(1)开放环境下自适应软件的构造方法。开放环境下,环境的变化可能超出开发阶段的预期,这就要求软件基础设施必须与具体场景解耦,且软件的自适应能力能够按需进行灵活在线调整。(2)软件群体自适应的实现机制。新一代软件系统可能涉及到大量个体意图、管理策略等异构的结点,我们不能简单地将传统软件自适应实现手段放大到群体层面,诸如群体如何动态地形成和维护、群体内部如何协同等一系列问题有待解决。本文从软件工程层面入手,针对上述挑战展开初步探索。本文首先提出融合个体和群体适应性的软件自适应概念模型,进而在此模型指导下,对自适应软件个体构造方法、集中决策的群体自适应机制、非集中决策的群体自适应机制等关键技术展开研究。本文工作的主要创新点包括:(1)提出了融合个体和群体适应性的软件自适应概念模型概念模型在指导思想层面上指明如何实现软件自适应。本文提出了名为Auxo的软件自适应概念模型,其特点是融合了个体和群体两个层次的适应性,并强调第三方在运行时对软件自适应过程的显式指导,以应对开放环境带来的挑战。(2)提出了面向开放环境的自适应软件个体构造方法借鉴自动控制领域的已有成果,本文提出了用于实现软件自适应的个体复合控制过程。该过程具有综合前馈和反馈控制、模型维护、策略分离、支持第三方在线重配置等特点。以此为基础,给出了由Auxo构件模型、Auxo单元框架、软件自适应能力在线调整方法及配套AuxoDL语言所组成的自适应软件个体构造方法。基于该方法构造的自适应软件可以实现环境和体系结构驱动的自适应行为,并且在环境超出开发阶段预期时,其自适应能力可以被第三方细粒度在线调整。(3)提出了群体动态聚合和跨个体自适应动作实现机制以集中决策的群体自适应为背景,本文提出了任务规约驱动的群体动态聚合方法及相关算法,可依据任务规约在当前计算空间中自适应地形成和维护软件群体;提出了基于代理方式实现跨个体自适应动作的方法,可以实现基于单点决策的群体自适应。(4)提出了基于分布式约束优化的群体自适应机制和算法通过若干具体实例,本文首先将非集中决策群体自适应建模为分布式约束优化问题,并指出这一建模方法可以获得兼顾个体自主决策和群体效果、隐私保持等收益。在此基础上,以具备低约束密度特点的问题为对象,提出了名为HEDA的分布式约束优化算法。该算法对个体的行为准则和交互协议进行设计,群体自适应表现为一种涌现效果。算法在求解低约束密度问题时具有明显性能优势,在保持多项式级别空间复杂度前提下,所需消息数目远少于同类已有算法。上述工作最终物化为Auxo软件体系结构风格和Auxo软件框架:前者指明如何构造(及维护)具备个体和群体适应性的软件,后者为此类软件提供必要的基础设施。本文成果已在所给大量实验和以智能汽车、智能博物馆等为背景的第三方自适应应用中得到验证。

【Abstract】 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.

节点文献中: 

本文链接的文献网络图示:

本文的引文网络