论文部分内容阅读
运行在复杂、多变的上下文环境中的软件系统经常需要根据需求和环境的变化动态调整自身的结构和行为,即需要具有运行时自适应的能力。针对传统的软件系统形态(如信息系统)的运行时自适应考虑的一般都是软件系统的内部调整,例如运行参数和体系结构的重配置等。然而,普适计算环境下的社会技术系统不仅包含软件,而且还包含硬件(如传感器)和人作为其系统元素。这种社会技术系统具有开放性和动态性的特点,其整体的行为具有很强的不确定性,经常面临系统失效的风险。因此,处于开放、动态的普适计算环境下的社会技术系统所面临的一个主要问题是如何在相关的软件、硬件和人之间的复杂社会化交互基础上实现系统的整体自修复能力,从而减少系统失效的发生。针对这一问题,本文在前期工作基础上提出了一种普适计算环境下的社会技术系统的运行时自修复方法。该方法以支持多主体的需求目标模型为基础,通过运行时上下文监控以及上下文事件与目标模型事件的映射进行运行时的潜在失效推理和自修复决策。为此,本文首先提出了一种针对社会技术系统的上下文语义建模和推理方法。该方法能够在运行时上下文监控的基础上通过基于规则的推理发现潜在的系统失效并为自修复决策提供依据。其次,针对社会技术系统运行时自修复的需要,本文提出了一种基于语义推理的服务检索与选取算法以及相应的服务质量评估策略,使得自修复过程能够动态选取并调用合适的服务以减少失效的发生。最后,针对系统开放性所导致的需求目标冲突问题,本文定义了普适计算环境下的多目标冲突模型,然后提出了相应的冲突检测和自修复策略,以保证修复后的系统运行能够最大限度地满足用户需求。为了验证方法的可行性及有效性,本文基于一个现实的应用场景,使用Java以及Arduino传感器套件设计并实现了相应的社会技术系统,并开展了案例研究。案例研究结果初步验证了本文所提出的方法的有效性:该方法能够在系统偏离预期目标时依据上下文变化及自修复策略自主地完成失效修复;当发生多个用户目标冲突时,该方法能够在可接受的时间内给出合理的冲突解决方案。