一种面向普适计算环境的构件化上下文处理方法

文档序号:6459036阅读:135来源:国知局

专利名称::一种面向普适计算环境的构件化上下文处理方法
技术领域
:本发明涉及普适计算领域,具体涉及一种面向普适计算环境的构件化上下文处理方法。
背景技术
:计算技术的发展与普及使计算机得以融入人们的工作和生活,"无时无处不在而又不可见"的普适计算时代正在到来。普适计算实现了物理世界和信息世界的无缝整合,而这一整合的关键在于对上下文的处理。所谓上下文是指物理世界和信息世界可检测的环境信息,例如光强、压力、位置、网络带宽、计算资源状态等。普适计算环境下的应用系统能觉察环境中有关的上下文,并据此对自身进行调整,从而使得用户能够近乎潜意识的获取计算服务,计算得以真正融入生活。例如,在智能博物馆场景中,普适计算环境下的应用1M可以按照游客当前位置、游客在展台停留时间等上下文提供个性化的文物介绍给游客,从而使游客获得更佳的参观体验。普适计算环境下的上下文由上下文名称和上下文值组成,对上下文的处理包括上下文的获取、加工和分发上下文获取是指从传感器直接获取原始数据;上下文加工是对原始数据进行筛选、汇集和去除冗余等处理;上下文分发是指将加工后的上下文发送给感兴趣的软件实体(如特定应用程序)。1994年,Schilit提出键值(Key-Value)对的方法处理上下文,该方法将上下文组织成形式为上下文项和上下文值的表结构进行存储和处理,直观简单,但不适合复杂上下文的处理。2002年美国佐治亚大学的Dey等开发了ContextToolkit工具管理上下文,该工具将传感器在中间件层以对象的方式封装为具有统一接口的软件实体Widget,Widget获取的上下文可供应用程序直接使用。SOCAM中的contextprovider,EEM框架中的ContextRepresenter等均釆用了类似的技术方案,但它们普遍基于过程的上下文访问接口,上下文处理过程在编译时被固化到程序中,可重用性和灵活性不强。构件是具有约定式规范接口以及明确依赖环境的软件组装单元,可以实现二进制级别的大粒度重用,提高软件开发效率和质量。构件接口是构件方法与属性的集合,其中方法是构件对外提供的功能,属性是构件对外暴露的状态。构件容器是构件的运行环境,通过容器与构件之间的标准化接口可以很方便地进行构件的部署与升级,降低应用系统开发和维护的复杂度。OMG(ObjectManagementGroup)对象管理组织制定的CORBA(CommonObjectRequestBrokerArchitecture)标准是分布式异构系统互操作的工业标准,CORBA构件模型(CORBAComponentModel,CCM)是OMG组织制定的一个完整的用于开发和部署分布式应用的服务器端构件模型规范,包括构件容器、构件开发方法等内容,是目前主流的构件规范之一。构件技术所具有的支持对较大规模的数据的获取和加工、高度可重用性、可灵活地动态配置管理等特性对普适计算环境下上下文的处理具有重要意义,如何将构件技术与普适计算环境下的上下文处理技术相结合,提供一种普适计算环境中的构件化上下文处理方法是本领域技术人员极为关注的技术难题。目前还没有公开技术资料涉及构件和上下文处理有机结合的成果或成熟技术方案。
发明内容本发明要解决的技术问题是为普适计算环境提供高度可重用、可灵活地动态配置管理的处理上下文的方法。为了实现上述目的,本发明使用符合CCM规范的构件封装上下文获取和加工过程,对符合CCM规范的构件容器扩展以完成上下文的分发。本发明包括以下五个步骤第一步,对符合CCM规范的构件容器进行扩展以支持上下文处理,包括增加上下文列表和策略执行部件,方法是(1)增加上下文列表以存储上下文信息。在CCM构件容器中增加上下文列表。上下文列表为二维表格,表格中每一项记录一个上下文,包括构件名(CORBA字符串类型)、上下文名称(CORBA字符串类型)和上下文值(CORBAAny类型)三个字段。其中构件名是指封装该上下文获取和加工过程的构件名称。此外,上下文列表设计有新增记录、刷新记录和读取记录的接口,供构件和容器中的策略执行部件访问。(2)增加策略执行部件以执行策略。上下文处理包括上下文获取、加工和分发。上下文的获取和加工过程被封装成构件,而上下文如何分发则以策略描述,并在构件容器中由策略执行部件执行。策略为基于XML(ExtensibleMarkupLanguage)的一组"条件-动作"规则,说明当上下文发生变化时应调用的构件及构件方法。策略执行部件负责解释执行策略,监视上下文列表中的值并据之调用构件。策略执行部件由策略载入接口、策略执行者、策略执行者指针数组、上下文列表监视部件组成。其中*策略载入接口是一个CORBA对象,它使用符合W3C(WorldwideWebConsortium,万维网协会)标准的XML解释器解析待载入策略,并动态生成相应策略执行者。*策略执行者由一组CORBA对象和一组驱动接口组成,CORBA对象釆用结构(struct)的数据结构来存放策略所有信息,每一项对应一条策略,包括策略条件、动作类型、构件名、构件方法数据项。驱动接口对外提供驱动方法,驱动方法首先通过条件检查语句确定策略的条件部份是否满足,在满足时通过CORBA的POA(PortableObjectAdapter,对象适配器)定位和调用该策略对应的构件。*策略执行者指针数组是二维指针数组,第一维是策略条件部分所涉及的上下文,第二维是该策略所对应的策略执行者的指针。所有策略执行者的指针均存储在该数组中。*上下文列表监视部件是一个CORBA对象。它定期调用上下文列表的读取记录接口以获取上下文值的变化,当上下文值变化时依据对应的上下文名称在策略执行者指针数组的第一维中进行查找,若匹配上则调用该项策略执行者指针数组第二维对应的策略执行者的驱动方法;第二步,基于CCM规范开发构件,以封装上下文获取和加工过程上下文获取和加工的过程以构件的形式封装,首先根据CCM规范开发构件,然后在其构件实现中调用调用容器中上下文列表的接口每一个封装上下文获取和加工过程的构件均在该构件的初始化函数中调用容器中上下文列表的新增记录接口,将本构件所提供的上下文加到上下文列表中,并在构件的其它部份调用上下文列表的刷新记录接口来更新上下文列表中所存储的上下文值。第三步,开发策略以描述如何进行上下文分发如前所述,策略为一组条件判断的规则,说明当上下文发生变化时应调用的构件及构件方法。策略结构为"IF-THEN"形式,IF部份以"上下文名称,上下文值的变化描述"形式指定哪个上下文发生何种变化,THEN部份说明此时应当调用哪个构件来进行处理。策略以XML格式的文件存储在存储器中。第四步,载入和运行构件使用符合CMM构件容器标准的构件载入机制加载封装了上下文获取和加工过程的构件和其它普通构件,并使用CMM构件容器标准的构件实例化机制驱动这些构件的运行。封装了上下文获取和加工过程的构件持续地将最新的上下文通过上下文列表的刷新记录接口存入上下文列表。第五步,载入和激活策略。策略载入接口从硬盘或者传感器等嵌入式设备的存储器中读取XML格式的策略文件,动态生成相应的策略执行者。上下文列表监视部件从上下文列表读取记录的接口获知上下文值的变化,当上下文值变化时依据上下文名称在策略执行者指针数组的第一维中进行查找,若匹配上则调用该项策略执行者指针数组第二维对应的驱动方法,驱动策略执行者执行其CORBA对象中所存储的策略,调用该策略对应的构件方法,完成上下文分发动作。采用本发明可以达到如下的有益效果通过将构件技术引入到普适计算上下文处理过程中,使得上下文获取和加工过程具备高度可重用性,使得上下文的获取、加工和分发具有可灵活的动态管理和配置的特点。具体而言,有如下一些有益效果1.本发明以构件的形式封装上下文的获取和加工过程,支持对较大规模的上下文数据的获取和加工,同时使得上下文的获取和加工过程可以被二进制级大粒度重用;同时构件自身具有可灵活的动态管理和配置的特点,使得上下文的获取和加工过程可以依环境或需求不同而通过标准构件技术进行动态管理或配置。2.本发明使用策略来描述如何进行上下文的分发,且策略被构件容器解释执行,从而应用程序在开发和运行时,可以根据环境或用户需求为应用程序配置不同的策略,使得上下文的分发可重用,应用程序能更好地为用户提供服务。3.CCM等传统构件技术未考虑上下文处理机制,无法有效应用于普适计算环境。本发明在保持与CCM构件技术兼容性的基础上,通过扩充使之能够支持普适计算环境下上下文的处理。图l是本发明的总体流程图2是本发明第一步中对CCM构件容器进行扩展的示意图。具体实施例方式下面结合实施例对本发明做进一步说明实施例以火警监控场景为例。考虑到通常火警监控系统由烟雾传感器、喷淋阀门、火警灯等组成,我们设计了如下火警监控场景某房间内部有基于烟雾浓度传感器、喷淋阀门和火警灯,当探测到房间内部某个区域烟雾浓度高于指定阀值时,执行火警响应动作火警灯闪动、喷淋阀门打开。如图1所示,其上下文处理步骤如下第一步,如图2所示,对符合CCM规范的构件容器进行扩展,增加上下文列表和策略执行部件。上下文列表中按照上下文的构件名、名称和上下文值的格式存储上下文,策略执行部件由动态生成的策略执行者、策略执行者指针数组、上下文列表监视部件、策略载入接口组成。第二步,基于CCM规范开发构件以封装上下文获取和加工过程本实施例中烟雾浓度为待处理的上下文,开发烟雾浓度获取构件以封装该上下文获取和加工过程。烟雾浓度构件的开发流程是首先使用CCM的IDL3(InterfaceDeclarationLanguage)定义构件接口,再使用具体的编程语言编写实现。在编写实现时,在构件初始化函数中调用上下文列表的新增记录接口,将本构件所提供的烟雾浓度上下文加到上下文列表中;定期从烟雾传感器读取烟雾浓度值,并调用上下文列表的刷新记录接口更新上下文列表中所存储的烟雾浓度上下文值。此外,本实施例中还开发一个火警响应构件,完成火警灯闪动、喷淋阀门打开的功能,对外提供火警响应开启和关闭的方法AlarmOn()和AlarmOff()。该构件是普通CCM构件,开发方法与普通CCM构件完全一致。第三步,开发策略以描述如何进行上下文分发使用XML描述如下策略"当烟雾浓度上下文值大于[阈值]时,则调用火警响应构件的AlamrOn()方法"、"当烟雾浓度上下文值小于[阈值]时,则调用火警响应构件的AlamrOff()方法"。其中[阈值]为某一具体的值,实际场景中当烟雾浓度大于该值即认为发生火警。并将策略存为XML格式的策略文件。第四步,载入和运行构件通过构件容器载入和运行烟雾浓度获取构件及火警响应构件。烟雾浓度获取构件定期将最新的烟雾浓度存入到构件容器的上下文列表中。第五步,载入和激活策略策略载入接口从存储器中读取第三步生成的策略文件,动态生成相应的策略执行者。上下文列表监视部件从上下文列表读取记录的接口获知烟雾浓度上下文值的变化,当烟雾浓度上下文值变化时依据上下文名称在策略执行者指针数组的第一维中进行查找,若匹配上则调用该项策略执行者指针数组的第二维对应的驱动方法,驱动该策略执行者执行其存储的策略,完成调用火警响应构件的AlarmOn()或AlarmOff()方法,对火警灯和喷淋阀门进行控制。在本实施例中,烟雾浓度获取构件可以被智能家居或其它应用重用,同时当烟雾浓度传感器升级或是欲进行基于红外的火警探测时,只需使用CCM的构件动态部署机制动态切换或升级构件即可;当火警监测应用程序被用于厨房、洛室等具有不同火警阈值的场所时,只需由管理员或用户在线修改策略即可。本实施例是本发明的一个简单实现,该过程可以方便的推广到其它智能博物馆监控等基于构件的大型普适计算应用中,为普适计算环境提供高度可重用、可灵活地动态配置管理的处理上下文的方法。权利要求1.一种面向普适计算环境的构件化上下文处理方法,其特征在于包括以下五个步骤第一步,对符合CCM规范的构件容器进行扩展,增加上下文列表以存储上下文信息,增加策略执行部件以执行策略,方法是首先在CCM构件容器中增加上下文列表,上下文列表为二维表格,表格中每一项记录一个上下文,包括构件名、上下文名称和上下文值三个字段,构件名指封装该上下文获取和加工过程的构件名称,上下文列表设计有新增记录、刷新记录和读取记录的接口;再在CCM构件容器中增加策略执行部件,策略执行部件由策略执行者、策略执行者指针数组、上下文列表监视部件、策略载入接口组成策略载入接口是一个CORBA对象,它使用符合W3C标准的XML解释器解析待载入策略,并动态生成相应策略执行者;策略执行者由一组CORBA对象和一组驱动接口组成,CORBA对象采用结构的数据结构来存放策略所有信息,每一项对应一条策略,包括策略条件、动作类型、构件名、构件方法数据项;驱动接口对外提供驱动方法,驱动方法通过条件检查语句确定策略的条件部份是否满足,在满足时通过CORBA的对象适配器POA定位和调用该策略对应的构件;策略执行者指针数组是二维指针数组,第一维是策略条件部分所涉及的上下文,第二维是该策略所对应的策略执行者的指针;上下文列表监视部件是一个CORBA对象,它定期调用上下文列表的读取记录接口以获取上下文值的变化;第二步,基于CCM规范开发构件,以封装上下文获取和加工过程首先根据CCM规范开发构件,然后调用调用上下文列表的接口每一个封装上下文获取和加工过程的构件均在该构件的初始化函数中调用上下文列表的新增记录接口,将本构件所提供的上下文加到上下文列表中,并在构件的其它部份调用上下文列表的刷新记录接口来更新上下文列表中所存储的上下文值;第三步,开发策略以描述如何进行上下文分发,策略为一组条件判断的规则,说明当上下文发生变化时应调用的构件及构件方法,每个策略以文件形式存储在存储器中;第四步,载入和运行构件使用符合CMM构件容器标准的构件载入机制加载封装了上下文获取和加工过程的构件和其它普通构件,并使用CMM构件容器标准的构件实例化机制驱动这些构件的运行,封装了上下文获取和加工过程的构件持续地将最新的上下文通过上下文列表的刷新记录接口存入上下文列表;第五步,载入和激活策略策略载入接口从存储器中读取策略文件,动态生成相应的策略执行者;上下文列表监视部件从上下文列表读取记录的接口获知上下文值的变化,当上下文值变化时依据上下文名称在策略执行者指针数组的第一维中进行查找,若匹配上则调用该项策略执行者指针数组第二维对应的驱动方法,驱动策略执行者执行其CORBA对象中所存储的策略,调用该策略对应的构件方法,完成上下文分发动作。2.如权利要求1所述的面向普适计算环境的构件化上下文处理方法,其特征在于所述策略为"IF-THEN"形式,IF部份以"上下文名称,上下文值的变化描述"形式指定哪个上下文发生何种变化,THEN部份说明此时应当调用哪个构件来进行处理。3.如权利要求1所述的面向普适计算环境的构件化上下文处理方法,其特征在于策略文件为XML格式。全文摘要本发明公开了一种面向普适计算环境的构件化上下文处理方法,要解决的技术问题是为普适计算环境提供高度可重用、可灵活地动态配置管理的处理上下文的方法。技术方案是先对符合CCM规范的构件容器增加上下文列表和策略执行部件,再基于CCM规范开发封装上下文获取和加工过程的构件,然后开发策略以描述如何进行上下文分发,接着载入和运行构件,完成上下文获取、加工过程,最后载入和激活策略,完成上下文分发过程。本发明支持对较大规模的上下文数据的获取和加工,同时上下文的获取和加工过程既可被重用,又可以动态管理或配置,使用策略来描述如何进行上下文的分发使得上下文的分发可重用,能有效应用于普适计算环境。文档编号G06F9/46GK101295261SQ20081003157公开日2008年10月29日申请日期2008年6月25日优先权日2008年6月25日发明者博丁,进冯,史殿习,欧阳建权,王怀民申请人:中国人民解放军国防科学技术大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1