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