论文部分内容阅读
在普适计算中,上下文持续快速变化,上下文感知应用根据上下文的变化自动调整自身的状态和行为以作出适应。然而,由于不可预测的环境噪声和动态变化等诸多因素的影响,很容易造成上下文一致性错误。不幸的是,上下文一致性错误会导致上下文感知应用表现异常甚至失效。因此需要对上下文一致性错误进行自动修复。但已有的方法,有的做了太强的假设而无法满足现实中要求。有的基于各种启发式的方法来选择删除可疑的上下文,但正确性是难以保证的。有的需要人的干预而不能自动修复。总之,现有的技术不能很好的解决这个问题。为了解决这个问题,本文在一整套形式化的定义和严密的逻辑推导的基础上循序渐进地提出了三种自动修复上下文一致性错误的新技术,用以满足不同的需求。这三种修复技术分别是完整修复(complete-fixing)、保守修复(conservative-fixing)和混合修复(hybrid-fixing)。这些修复基本上分为以下三个阶段:(1)检测上下文一致性错误;(2)生成抽象修复用例;(3)具体执行以验证上下文一致错误是否已经修复。其中complete-fixing技术能够保证修复的完整性,但必须以时间效率和空间效率为代价。conservative-fixing技术在公式内部存在简单依赖关系的情况下,对共享元素加锁来保证修复的正确性。这种技术在时间效率上有了一定的提高,但在一定程度上损失了一些修复能力。hybrid-fixing技术结合了对一致性约束的静态分析和修复动作的动态产生,即使在一致性约束内部存在复杂依赖关系的情况下,也能确保所生成的修复用例必然正确。令人满意的是,这项修复技术在显著提高修复成功率的同时,并只花费了很小的时间开销。最后通过模拟实验和真实的场景,我们发现:第一,我们的技术具有有用性,能够解决一些现实的问题;第二,我们的技术具有很好的拓展性,只需要极少的工作量就可以拓展解决一些相关的问题;第三,我们的技术具有很好的灵活性,可以与相关技术——如partial constraint checking技术——进行有效的结合。总而言之,我们的技术相对与已有的技术在综合考虑修复能力、修复正确性和时间效率上都有很大优势。