Page 40 - 《软件学报》2021年第7期
P. 40
1958 Journal of Software 软件学报 Vol.32, No.7, July 2021
Key words: self-adaptive software; attribution theory; reusability; uncertainty of environment
当今社会广泛地依赖软件系统来帮助人们实现特定的目标.然而,具有非确定性的部署环境,例如负载量的
[1]
[2]
变化,会导致昂贵的重配置和耗时的维护任务 ,使得实现软件系统的目标并不容易 .因此,为了降低管理的复
杂度,为了在合理的成本中迅速实现预期目标,自适应系统即被提了出来.这类系统由于能够自主地在具有非确
定性的部署环境中不间断地实现系统目标和用户需求,包括性能、安全性、故障管理等,因而被认为是管理现
[3]
代软件系统不确定性的最有前景的方向 .
在已有的自适应系统研究中,最主要的一类自适应决策方法是基于规则的方法 [49] ,预先定义好的自适应规则规
定了系统的适应逻辑,指定了在部署环境发生变化时应当执行的自适应动作.也就是说,自适应行为也是由部署环境
中的事件引发的 [1014] ,即软件系统的自适应性是对外部环境因素变化的内部响应.因此,基于规则适应逻辑的自适应
系统的生命周期,包括设计阶段和运行阶段,总是将系统与环境绑定在一起.在设计阶段,识别出具有非确定性的且对
系统自适应行为有影响力的环境因素,并定义和定制出一套自适应规则形式,并通过仿真和模拟等方式来定制出具
体的自适应规则,以映射环境因素与自适应动作之间的关系.在运行时,通过 MAPE-K(Monitor 监测、Analysis 分析、
Planning 规划、Execution 执行和 Knowledge 知识)闭环并推理自适应规则以实现自适性行为 [7,8,10,14,15] .
然而,环境开放且十分复杂,存在很多设计人员在设计时未曾考虑或不能完全理解的非确定性环境因素,使
[8]
得这样设计出来的自适应规则及其系统实现会不可避免地忽略一些环境因素 .在不同的部署环境中,这些被
忽略的环境因素可能存在不同的状态,从而对系统的自适应性产生不同的影响.这就使得设计阶段制定好的自
适应规则很可能不适用于某个具体的部署环境,而如果针对某部署环境进行更新和调整的自适应规则,也不一
定能较好地适应新的部署环境,这就不可避免地限制了系统对于各种不同部署环境的自适应性.
以一个机器人系统为例,我们可以提前设计出一些规则来描述机器人应该以怎样的速度前进,才能尽快且
安全地到达目的地;或者在遇到障碍物时应调整多少角度来躲避障碍物.然而,如果我们事先不知道摩擦力的影
响,也并未在自适应规则中考虑这个环境因素,那么能够适应木地板的机器人系统及其自适应规则,很可能在湿
滑的地面上不能很好地完成目标任务 [12] .此外,在设计机器人避开障碍物的自适应规则时,需要事先知道机器人
可能遇到什么样的障碍物,然后明确如何应对这些障碍物.显然,在实际应用环境中,障碍物可能是无限的,总会
有新的、意想不到的障碍物出现,使得系统的自适应能力不足,无法应对.然而,对于一个好的自适应系统来说,
除了在一个具体的部署环境中能够适应外,还应该具有广泛的自适应性(即在各种部署环境中均具有良好的适
应性).
造成这些弊端的根本原因在于设计规则时环境因素与系统动作之间存在的绑定,从而不能处理设计时环境与
具体的部署环境、部署环境与部署环境之间存在的隐式的差异.为了应对当前的挑战,本文提出了一种基于归因理论
的自适应系统设计方法,找出自适应性行为的原因,并基于此,将适应逻辑分为两层.在认知科学领域,内因是事物变
化或发展的根本原因;而外因只是条件,需要通过内因来对事物的变化产生影响.换言之,只有当外因导致了内因的变
化时,才可能引发系统的自适应行为.因此,我们的基本思路是将自适应系统的适应逻辑分为独立设计和部署绑定两
个阶段,从而将部署环境与系统动作解耦.在设计阶段,关注和强调内因如何决定系统的自适应行为,使得系统的设计
和开发独立于实际部署环境.在部署阶段,建立部署环境的非确定性因素(即外因)与系统状态(即内因)之间的关系,并
且可以在运行时动态调整,从而将系统与具体的部署环境(即部署)绑定,实现与部署环境相关的自适应性.
我们提出了一个新的基于归因的理论来设计自适应系统的概念模型,并按照模型提出内归因层和外归因
层两层结构的实现框架.第 1 层是独立设计,通过决定性自适应规则,即内层适应逻辑,来映射出内因与自适应行
为的关系;第 2 层是部署绑定,通过影响性自适应规则,即外层适应逻辑,来连接部署环境的外因与系统内因.在
此基础上,我们通过两个案例来评估已提出的方法,在一个被广泛使用的基准电子商务网络应用以及一个具有
避免障碍物和避免滑倒翻转的机器人上进行了实验.进一步地,我们将由内外因模型实现的系统与他人工作中
的实现进行实验比较以证明内外因两层框架对于自适应系统的适用性(即对特定部署环境中的非确定性具有
自适应性,以及对各种部署环境的自适应性)、内层适应逻辑(即决定性自适应规则)的可复用性.