论文部分内容阅读
普适计算(Ubiquitous Computing)作为一种新的计算模式,其本质特征是信息空间与物理空间的融合和计算对人的透明性。智能空间(Smart Space)作为普适计算典型、具体而集中的体现,受到国内外学术界与工业界的广泛关注。诸如MIT、GIT、CMU、UIUC以及清华大学等国内外知名大学都开展了对智能空间积极的探索;而诸如微软、IBM以及HP等知名企业也有相应的研究计划。智能空间基础设施持续变化、用户需求多变等特性决定了智能空间及其应用系统的开发不应也不可能是一蹴而就的,而是“增量式的”:需要在系统部署运行之后不断重新认识所部属的空间环境以及用户新的需求、调整或打破已有假设,并在此基础上进一步增加新的应用或完善现有应用。然而,近年来普适计算研究领域的研究集中于感知数据处理技术以及新型应用研制两个方面,缺乏针对智能空间应用系统增量式开发的系统性工作。针对这一现状,本文的研究工作主要围绕如何实现能空间及其应用系统的增量式开发这一问题而展开。针对这一问题,本文首先对智能空间及其应用系统的增量式开发需求进行分析。在此基础上,本文提出了三点基本思路:从软件模型角度入手,明确智能空间应用系统的软件构成及其相互关系;从开发技术角度,提供对智能空间应用系统便捷、完整、统一的增量开发支持;从运行/演化支撑的角度,解决智能应用系统的增量式动态部署以及多应用冲突处理问题。具体而言,本文的主要创新点如下:第一,本文系统分析了智能空间及其应用系统的特征和增量式开发需求,以关注分离原则为指导,提出了一个以“环境主体部分与业务逻辑显式分离”为内涵的智能空间应用系统软件模型,为系统的设计、开发、运行和维护提供统一的指导。该软件模型将智能空间应用系统视为由环境主体部分与业务逻辑部分这两个相互独立并相互作用的部分所构成。其中,环境主体是对应用系统所处的真实环境的及时的数字化映像,是应用业务逻辑与真实运行环境交互的桥梁;业务逻辑部分实现系统的业务功能,它依靠环境主体获取系统的环境状态信息、调节指定的环境要素状态。整个应用系统可以封装为一系列configuration。不同configuration应对系统所处的不同环境条件并提供类似的功能或服务。系统行为的动态变化在大尺度上体现为不同configuration的切换,小尺度上体现为在一个configuration下对系统功能的细粒度调整。第二,为了支持应用业务逻辑的增量式开发与动态部署,本文对传统对象模型进行了扩充,提出了可调节对象模型。可调节对象模型将应用业务逻辑视为由一系列相互交互的可调节对象(adapt-ready object)所构成。每个可调节对象的行为通过其操作方法所刻画,而每个操作方法的具体执行行为则由一系列的操作变体(operation variant)的组合而实现。而可调节对象对外提供接口,可以动态对其某个具体操作方法添加、替换、删除或重组其操作变体。基于可调节对象模型,我们的核心业务即可以通过一系列的可调节对象来承载,而系统的适应性业务则可以通过相应操作变体来承载,通过操作变体的动态重组的方式来动态调节单个对象乃至整个系统的行为。第三,应对智能空间部署应用的增多而带来的多个应用之间的潜在冲突问题,我们提出了两套冲突避免策略:策略1尝试显示刻画应用间的影响,将一个智能空间中的所有应用及其之间的相互影响建模为一个Influence Graph,并在此基础上给出了一个基于遗传算法的解决手段。经试验验证,较暴力求解算法而言,该算法能够在可接受的有限时间内找到一个足够好的应用配置方案;策略2则从应用对共享的环境的要求和影响的角度出发,将多应用冲突处理这一问题转换为一个约束满足问题(Constraint Satisfaction Problem, CSP),并给出一个高效的求解算法。特别的,策略2采用了(1)一个两阶段效用预估手段和(2)两个有效的应用排序技术。经实验验证,较已有同类工作而言,策略2可以节省超过90%的一致性检测开销,具备更好的实用性。最后,在智能空间应用系统软件模型基础之上,我们对智能空间应用增量式开发方法和框架展开研究。与智能空间应用系统软件模型对应,我们将整个系统的开发分为业务逻辑开发和环境主体开发两大部分;而针对每一部分,则可进一步划分为初始开发和增量开发两个阶段。初始开发阶段依据初始的系统功能需求,完成对环境的初步建模以及相关环境设施的开发和部署,实现系统与上下文无关的核心业务逻辑。增量开发阶段则负责实现系统的适应性行为的阶段性开发。依据应用新的需求,对现有环境模型进行扩展,开发并部署相应的环境设施,开发一系列的操作变体并进一步定义(或修改)一系列的configuration,完成适应性行为的增量开发与发布。为了对上述开发过程提供统一的支持,我们还设计并实现了一组编程语言(AdaptJ+CfgL)以及相应集成开发环境。