论文部分内容阅读
上下文被定义为“任何用于描述实体状态的信息”,实体可以是“任何在人机交互中相关的对象”,如人,地点等。目前,在智能手机为代表的可移动设备中,上下文信息的来源十分广泛,从内置于可移动设备中的传感器(如GPS,加速传感器),到来自网络的Web服务(如Google Map API),再到手持设备中大量的用户信息(如通话记录)。
丰富的上下文信息的获取使得上下文感知应用的开发急速增长,同时也产生了一个问题——如何快速有效地管理并组合这些上下文感知应用。事实上,在互联网领域,已有大量的关于服务组合系统的研究工作披露。同时,在可移动设备上的服务组合系统也逐渐进入研究视界,但考虑到隐私和带宽问题,将所有上下文发送到服务器上再作组合或混搭的方式并不能被接受;因此,寻求一种上下文服务的管理和组合方法,并通过一种系统级工具加以实现,应该具有一定的学术研究价值和实际应用价值。
在本文中,我们首先分析了在Web领域中的服务组合和混搭技术,着重介绍了服务发现,管理,调用以及组合和混搭时所采用的关键技术;另~方面,针对服务组合的一般步骤和相关文献的报道,我们阐述了服务组合及其自动化的系统框架通常所需要的主要功能组件以及相互协作步骤。
随后,我们结合可移动平台上上下文信息源的特点和服务组合的一般方案,提出了可移动平台上的服务组合方法。上下文信息服务以组件的方式运行于系统之中。同时,我们定义了适合在可移动平台上使用的上下文信息源描述语言CSDL(Context Source Description Language)和上下文过程描述语言CPDL(ContextProcessing Description Language):前者对上下文信息源服务进行了描述:包括服务的标识符,接口,图形界面的标识符等相关信息;后者用于描述上下文信息源服务之间逻辑功能的组合和图形界面的混搭,CPDL是面向终端用户的描述性编程语言,用于引导终端用户开发自己所需的个性化应用。
接着,我们在NOKIA的N900智能手持手机上设计并实现了上下文信息服务组合和混搭的原型系统框架。该框架被划分为多个功能独立且相互协作的功能模块,包括CSDL服务管理模块,CPDL解析模块,CPDL运行时引擎以及WSDL自动转化模块等。各个模块相互合作,在原型框架下实现上下文信息服务的管理,调用,组合以及混搭。通过QT以及D—BUS等关键技术,CPDL被转化为标准C++语言,并借助于进程间的通讯以及QT图形控件的组合等手段实现了服务组合和混搭。并且,基于此原型框架,我们实现了一个由三个服务组合和混搭而形成的“寻路”应用,进一步验证系统的可用性和有效性。
最后,我们对以上提到的服务组合方案进行了探讨。通过引入实体的概念,并综合考虑实体的从属关系和服务的输入输出实体,将构建一张包括所有可用服务的有向图。通过考察有向图中的有效路径,以实现服务组合的自动化发现。同时,在有向图的某些适当部位添加描述服务非功能性的属性值,可以对所有可能的服务组合进行质量评估。