论文研究-一种面向情境的情境感知应用编程框架.pdf

所需积分/C币:9 2019-09-07 14:19:13 535KB .PDF
58
收藏 收藏
举报

随着信息技术的快速发展,各种各样的环境信息影响着我们生活中的各种决策,因此提供一种智能化的应用程序,能够根据用户当前的情境信息为用户提供所需要的最适合的服务变得越来越重要。许多遗产软件并不支持情境感知功能,目前的一些主要的编程语言和编程框架并没有提供一个很好的方式来支持这种情境感知应用程序的开发。提出了一个新的面向情境的编程框架,支持情境信息的定义、封装、发布,支持对应用行为的驱动和约束,允许应用快速响应非预期情境。通过该框架可以快速开发情境感知应用,也可以以非侵入的方式改造遗产软件,使之具有情境感知能力。
陈秀,余萍,徐锋:一种面向情境的情境感知应用编程框架 2013,49(16)49 易用性;有的没有考虑情境信息的历史记录.通过这些记出现的情境信息,在需要改变的行为之前动态增加对情境 录可以在系统初始化或者重新启动的时侯提供参考,有助信息变量的检查,根据用户以及当前新出现的情境来判断 于对系统情境感知行为的优化;没有考虑到对遗产软件的程序该如何继续运行,可以返回原来的流程继续执行,或 重用和非侵入式升级等。因此夲文将提供一个新的编程者重新定义一个仝新的适应性方法替代原有的操作。这 框架来支持这些功能。 个框架主要涉及三个关键部分,即情境信息的定义,应用程 序中的自适应行为,以及对应用程序行为的约束,即规则。 3基」分布式的一个情境感知编程框架 CAPF CAPF对这三个部分进行封装,使之更易于为程序员所使用。 31CAPF概述 通过对比和总结已有情境感知应用的几类开发方法 本文提岀了一个面向情境的情境感知应用编稈框架( Context Application aware Application Programming Framcwork, CAPF)o is 框架具冇以下特点:(1)给出一个通用的情境定义模型,将 CAPE 情境作为 First Class Entity,考虑情境信息的来源和对情 contexts 境信息服务的封装。由于情境感知器可能分布在不同的 地方,呈现分布性的特点,因此将系统搭建在OSG1的平 台上,通过它将各个组件以分布式服务的形式提供给用户 contcxt 使用;(2)支持对情境信息进行基于规则的聚合,提高情境 信息的易用性;(3)支持对情境信息的记录和情境感知行 Adaptation 为的推理,便于应用程序的自动恢复和自适应2(4)支持用 Functions 非侵入的方式对不具备情境感知能力的遗产软件增加情 图1CAPF功能图 境感知能力,提高遗产软作的可复用性;(5)支持应用程序 在这个框架中,把情境信息分为 Base context和Con 对非预期情境的感知和适应。CAPF的核心思想在于通过 posite Contcxt。前者是抬一些基础的,可以从感知器接收 提供一个编程框架使开发和改造情境感知应用变得更加 简单、快速和高效,并通过编程辅助工县降低情境信息和的原始数据; Composite Contex是指从 Base context演化 情境感知应用的开发难度、提高开发效率 出来的一些更高层次意义上的情境信息,通过对Basc 32CAPF原理 Context的运算,可以得出对程序员来说更易于理解的更有 在CAPF中,将情境( Context)定义为与用户操作软件意义的信息。 Basc context与 Compositc Contcxt之间的 的环境及和用户行为有关的一些元素,可以通过环境中的 演化关系可以通过一些运算规则来表达。情境信息由 传感器获取其数值。情境感知則是指一种能够根据当前 个xm1配置文件 contexts. xml提供,将应用程序屮需要用 的情境做出相应行为的能力。一个具有情境感知能力的到的情境信息采用xml节点这种通用的易于理解的方式表 应用程序能够根据当前用户的特性以及当前环境为用户现出来,具体配置文件格式如图2所示;各个感知器程序以 做出一个最适合的决策减少用户的人为干预:假设需要服务的形式注册倒OSGi服务平台上,然后应用程序可以 获取的情境信息叫以由各种感知器获取待到,比如温度感监听这些服务来动态获取当前所关注的情境信息。 知器、光感知器,也可以由系统提供,比如当前的时间。这 lwmi="1, enterin·"? 些感知器是呈分布性的,因此可以采用服务的形式注册到 staeertaat nase'arch. sensar. arion. ei shtmesseeso OSGi平台,OSGi服务平台提供在多种网络设备1无需 catrine .t wcshtmess" typew Intege walu /EeC可 重启的动态改变构造的功能,因此感知器可以是动态地停 时 stunt nana ar,, grant.Ammtsmtsr 止和启动。当感知器服务停止的时候,CAPF框架采用预 preaent tysesZeewwer-valueaw"/a t/conters 定义的默认的情境值代替当前值进行计算。这个框架解 <asecentat nase"rch, serges.bright. towrrseesor) 决了情境感知应用开发中的两个问题:(1)通过这个框架 6t上加t考 terrot vala 可以在加入新的情境信息后,通过组合原有应用的操作达 /DCtt》 到自适应当前环境的目的,从而减少人为干预,实现情境 (Ceeposlteteitewt nise " tapettonteat (aacCertent reftretes'emersemoor> 感知。(2)由于情境信息存在动态性和多变性,通过这个框 t加以 wwas"tep" tpa strYn 架可以实现对原应用系统部分行为的替代,或者增加一些 greater TeNe sneer. teero tiee 28 新的行为,对原应用系统实现非侵入式的升级改造,使之 ontput alars"Low 能迅速对新出现的情境信息进行自适应。如图1所示:在 下r,t caput 原应用程序中,许多操作需要用户于动操作。通过CAPF, /飞”》 GtoeeeslteCoteL 可用情境信息代替用户的手动操作来驱动应用程序执行 k/contexts 各种动作,在原有应用程序的流程中,也可以结合当前新 图2cont 文件 502013,49(16) Computer Engineering and Applications计算机工程与应用 框架中的规则配置文件为 activators. xml activators,的应用程序,CAPF指的就是整个框架,AdOn是指新添加 xml中包含两部分,如图3所示,第一部分为拦截器,主要是的情境感知能力的模块。 用来拦截原来系统中的一些方法,在当前的情境条件下应 用程序可能会执行与原来不一样的行为,因此拦截这个方 Target CAPF n 法,通过对当前情境的分析来决定是否继续执行这个方[ loop Comb nedfragnct 取传感信息() 法,或者执行一个新的方法,这个新的方法可以由后来的 开发者自行定义,应用程序中的自适应行为指的就是这些 新定义的具有情境感知功能的行为。在图3中设置拦截 2:统根据Xm文件输入进行理( Smartroom中的 turnOnalllights方法,可以根据是否满足 3:汍行原有程序的方法( 条作“ grcatcr PrcscntScnsor prcscnt2”来决定之后程序的 4触发定义的拦截器) 行为,可以继续执行原来的 turnOnAlILights方法,也可以在 根据当前⊥下立信息进行判所() Room Proxy定义新的方法执行;另外一部分就是对应用程 hent 序行为的约束,即用户定义的一些规则。每一条规则都包 继续执行原有的方法)7:执行新的方法 含两个部分,一部分是用来判断当前的情境是否满足的条 件,另外一部分是满足前一部分中的条件后系统所会执行 的动作。规则中的条件是采用前级表达式的方式,条件表 达式的语法规则如图4所示,目前支持的属性运算操作符 图5应用程序基本的运行流程图 包括 equal, nequal, greater,less,操作数是由类名和属性名 组成,在其他所有需要条件表达式的地方都遵循以下的语 1)当情境信息发生变化时CAP立即捕获这个变化 法。在行为部分,通过 action-set的方式将所要执行的功作 (2)CAPF框架提供推理功能,根据最新的 Context和 放在一个集合,通过xm文件的定义,可以使这些行为按规则米得到应用程厅该执行的动作 照一定的方式执行。 3)应用 执行该 4)如果设置冇拦截器,拦截器拦截到当前的操作。 t如t (5)CAPF框架根据当前情境进行判断: thee"*ts". (6.1)继续执行原有方法。 中?a.dm,p. nalloenetsaimrwnyG/ 以同时te, T rendition (2)或者是执行用户定义的新的方法。 33CAPF实现 arale nagara:" 图6为CAPF的总体框架,可以分为以下几个模块,左 water praemsesor pert 2 边是( Contcxt sensor模块,框架中提供了一个感知器的接 ucb taciet-art typ"aramex"a 口,通过继承这个接口为应用程序提供统一的数据传输方 aacn AemveLtowtl cinssa'oroh iost Ne<Lsro. morison mthadaturoitontr-( 法和数据格式。中间则是框架的主体部分,包括:底层的 netodetunoltgit// 支撑模块,提倛一些基础性的操作支撑,比如对配置文件 ceLa nmeeTrntionts"t2ass"anhs,a时国, mtmde'trwontigntr /a 的解析,对数据库的操作以及日志操作;情境建模模坎主 urirtstty inte 要是负责根据配置文件来获取当前需要获取的感知器的 cle maranta?" 信息,即周围存在的,可以并且需要利用到的情境信息 care:>wter Towser.t hn 2i(/editing sotIMe-s:t trpe stave") 需要用到的感知器不存在的时侯,就采用配置文件中的默 dac上ian" creltrconditiseer 认值。规则建模模块主要是贠责根据规则配置文件建立 seedy turnatAcoreie:as们 规则模型。规则引擎模块就是根据情境建模秈规则建模 后的输入进行推理,最后通过 Action activator模块来执行 annuLet 在当前环境下相应的行为,实现了动态自适应。右边是应 Aacttasto Context New A Sensor C 图3 activators.xml文件 Module Rule Action E Activator Features operator: :equal nequal I greater le Rule enso Module operand: =class attribute and compared value Context Old Al Framework in frastructure ensot expr: :AND (expr(expr)I OR (expr)(expr)I NOT(expr) 图4条件表达式的语法 OSGi ramework 图5表现了应用程序基本的运行流程。 Target为原来 图6CAPF实现架构图 陈秀,余萍,徐锋:一种面向情境的情境感知应用编程框架 2013,49(16) 用程序模块,在原有应用的基础上可以增加新的功能。整着人数、光线强度以及室内温度的变化,系统会自动调整 个框架基于Java实现,利用了Java本身的反射特性以及教室设施的状态,减少能源的消耗,减少人的参与,实现教 cgib中的代理机制。感知器程序和应用程序都是以服务室的自动化,智能化。使用CAPF框架的时候需要的两个 的形式运行在OSGi平台,多个应用程序可以从同一个xm1文件 contexts.xml和 activators. xml分别如图2、图3所 Sensor中荻取数据,保证了数据来源的一致性。 示。部分新增代码如图8所示,用户只需要编写这样两个 在开发情境感知应用程序或者是修改遗产钦件的时XML文件以及与情境感知增强相关的java文件就可以用 候,通过CAPF框架,将与情境相关的新的功能作为一个切来驱动遗产软件,在不改变遗产软件源代码的情况下使之 面与原软件分离开来,通过简单的配置文件的方式在需要具有情境感知能力。由于CAPF提供了大量的API和完善 的时候注入系统中,可以避免对原来系统代码的直接修的基础管家,实际代码量将大大缩减。 改,降低更新维护系统的成本。通过这样一个开发框架, 就可以很容易地获取情境信息,并通过规则的匹配来引 public class RoomProxy extends ContextProxy 起相应的行为,在开发过程中简化了程序员的工作,减少 public Object intercept( Object arg0, Method argl, Object[l arg2 了人力的参与。 MethodProxy arg3 )throws Throwable i 34小结 if(lcheck ContextConditions()) 在使用传统的面向对象的开发方法中,新的情境因素 do something();∥i 的加入将会导致需要对应用程序进行的重新编程、编译、 部署和运行;在开发过程中也需要对不同的情境信息进行 处理,使用大量的条件分支语句来匹配情境与应用程序的 eturn arg3 Invokesupertarg return null 行为,这些都增加了软件开发的复杂度,降低了软件的可 复用性,也不利于软件的维护。使用CAPF框架则可以避 public class Activator extends ContextActivator 免这些问题,通过将 Context相关的逻辑与应用程序的主体 public void start( Bundle Context bc )throws Exception 逻辑分离开来,将大大降低开发的复杂度,提高程序的模 super: start(bc) 块化程度,并且还开发了一个 Eclipse插件来辅助这个框 架,使开发过程更加快速便利 图8部分新增代码 4使用CAPF开发应用程序 4.2与其他实现方式的比较 4.1实例展示 首先框架的解决方案更具有灵活性。在语言层面上 为了展示前文所描述的面向情境的应用程序开发框最早的COP的实现是基于Ja的反射机制,并没有实现对 槊设计了一个智能教室的示例如图7所示。这个例子说编译器的扩展。面向对象的編程方式和面向方面的编程 明了使用CAPF框架开发情境感知应用的方法,开发过程 方法已经能解决大部分的问题了,但是 Context不断涌现及 以使用该框架的优点。原有的应用程厅中,用户需要于其具有的不确定性,使得对程序的动态性要求更高。其次 动控制应用UI上的按钮来控制房间的光照,空调、窗帘。 若欲使用非侵入的方式修改遗产软件,如果重新设计一种 使用CAPF将这个应用稈序改造成一个具有情境感知能力语法就需要重写原有应用的代码,与本文的目标背道而 的智能教室应用程序。在智能教室中包含有几个感知器,驰。在CAPF的定义中, Context Awareness不仅仗只是切 可以感知到在教室里面的人数( present),感知到外界的光 面,还包括情境之间的相互关系和对应用程序的共同影 线强度( brightness),室内的温度( temperature),如图4右侧 响,因此纯粹基于切面的解决方案也不能满足需求。本文 所示。在应用程序屮加入了一些新的逻辑,这些逻辑是根 据当前情境信息来设置的。通过制定相应的一些规则,随 的框架容易理解,易于使用,能够快速地利用它来建立情 境感知应用原型。 在各种的情境感知编程框架中,选取一些具有的代表 性的框架进行比较,如表1所示:(1)首先考虑是否攴持感 知器与应用程序之间的通信,可以看到 Context toolkit提 供了分布式的感知器与感知器之间、应用程序与感知器之 间的通信;在CAPF中,感知器和应用程序都运行在OSGi 的平台上,它们之间也可以进行通信;IPM则没有提到这 方面;JCAF是一个基于分布式的面向服务的基础框架明 以服务的形式管理情境信息,并且服务与服务,服务与实 体之问可以通过P2P的方式进行通信。(2)从情境信息推理 图7智能教宣 方面,前三个框架都支持,CAPF和 Context toolkit通过将 2013,49(16) Computer Engineering and Applications计算机工程与应用 条件语句存储在配置文件中,而IPM则是将不同的条件语 (3)优化其相应的 Eclipse辅助开发L具。 句分别放在不同的同位素文件中,但是这一做法会导致同 位素文件数目太多。JCAF攴持将情境信息进行转换聚合,参考文献 但是并没有显式地对情境信息进行推理。(3)从支持的情[] Brown p the stick- e document: a framework for creating 境感知类型来看,可以分为基于事件的情境感知和基于流 contcxt-awarc applications[ C]/Proceedings of Elcctronic Pub 程的情境感知。基于事件的情境感知是指当 Context发生 lishing.1996:259-272 变化的时候,根据定义的事件,应用程序能够白动改变行2] Schilit b, heimer M Disseminating active map information 为以适应当前的环境;基于流程的情境感知则是指在控制 to mobile hosts[J].IEEE Network, 1994, 8(5): 22-32 流中对情境进行判断以达到选择最合适的行为的目的。[3] Dey A K, Abowdg D. A conceptual framework and a toolkit Context Toolkit中实现了第一种,IPM圳通过匹配模型实 for supporting rapid prototyping of context-aware applica- 现了第二种,CAF是基于事件的,因此实现了第一和,而本 tions[J]. Human-Computer Interactions( HCI)Journal, 2001,16 文的框架两者都实现了,可在控制流中设冒拦截器,亦支 (24):7-166 持对感知器进行监控,一发生变化就触发事件通知应用程pe9AK. erstanding and using context[2].Perso 序,这样从两方面都提高了感知的实时性和精确性。在模 [5] Appeltauer M, Hirschfeld R, Haupt M, et al. ContextJ-context 块化方面,这些编程框架的提出都在一定程度上提高了程 oriented Programming with Java C]/Proceedings of the 3rd 序的模块化程度,有利于程序的复用。最后CAPF具有其 Ph D Retreat of the hpi research School on Service-oriente 他框架都不具备的特点,它能够采用非侵入的方式为不具 Systems Engineering, 2009 胬情境感知能力旳应用程序添加情境感知功能,有助于遺 [6 Salber D, Dey A k, Abowd G D The Context toolkit: aiding the 产钦件的重用。 development of context-enabled applications[c],proceeding 表1不同情境感知编程框架比较 of chi.1999:434-441 17 Costanza P, Hirschfeld R Language constructs for context 解决方案 oriented programming an overview of contextLIC]/Proceedings 特性 Context CAPF IPM JCAF of the 2005 Dynamic Languages Symposium. S.I.: ACM Toolkit Press 2005 支持感知器与应用程序之间的通信支持支持不支持支持 基于情境的推理 支持支持支持部分支持 18 Keays R, Rakotonirainy A Context-oriented programming 支持基于流程的情境感知不艾持支持支持个支持 Proccedings of the 3rd ACM International Workshop on 支持基于事件的情境感知支持支持不支持支持 Data Engineering for Wireless and Mobile Access, San Di 将情境信息与应用逻辑解耥支持支持支持支持 go,CA,USA,2003:9-16 非侵入式的情境感知能力增强不支持支持不支持不支持[9] Bardram j e. The java context awareness framework( caf)a service infrastructure and programming framework for con 5总结与展望 tcxt-awarc applications[C]ILccturc Notes in Computer Sci 本文提出了一个面向情境的编程框架,可定义不同的 ,2005 情境信息,将情境信息分成 Base context和 Composite [10 Szanto K Extending the Java context awareness framework ontext,高级的情境信息可以由低级的情境信息计算而 for Android[z]. 2010 来,通过基于规则的聚合提供一个更有效更易用的情境信 Saiyu Q, Min X Isotope programming model for context aware 息给用户。通过使用这个框架可以有效地将情境相关行 application[]. International Journal of Software Engineering and Its Applications, 2007. 1(1): 53 为与其他系统的行为分离开来,减少了代码的混乱,提高 模块化程度。使用这个框架还可以在不改变原来程序代121 Kiczales G, Lamping J. Mendhekar A, et al. Aspect-oriented 码的基础上进行扩充升级,使不具备情境感知能力的应用 programming[M]. Berlin Heidelberg: Springer, 1997. 变得具有情境感知能力使应用程序的升级更加方便。对3]meE. Gybels K, Denker M, al. Contexl-aw are aspects[c]// 于原有应用程序无法满足非预期情境信息出现而出现的 Software Composition. Berlin Heidelberg Springer, 2006 27-242 些新的自适应需求,可以利用CAPF采用非入侵的方式 1 14 Rho 'T', Schmatz M, Cremers A B Towards context-sensitive 将新功能添加到应用中。 service aspects J. Work on Object Technology for Ambient 然而本文下作还存在一些不足,CAPF框架还存在 Intelligence and Pervasive Computing, 2006 些缺陷,功能也不够全面。下一步将继续从以下几个方面[1s] Junbin, Yong c,DiH,eta. Extended Isotope Programming 来完善这个框架: Model for Pervasive Computing Environment[C]//Third In (1)扩展情境的定义,加入个人习惯、喜好等主观的情 tcrnational Confcrencc on Convcrgcncc and Hybrid Infor 境信息,从而更加人性化,智能化 mation Technology. [S 1 ]: IEEE, 2008, 1: 94-101 (2)在框架中加入数据挖掘的方法,挖掘一些潜在的[l6] OSGi Alliance: OSGi Service PlatformIM][S.: IOS Press, 关联 2003

...展开详情
试读 6P 论文研究-一种面向情境的情境感知应用编程框架.pdf
立即下载 低至0.43元/次 身份认证VIP会员低至7折
一个资源只可评论一次,评论内容不能少于5个字
您会向同学/朋友/同事推荐我们的CSDN下载吗?
谢谢参与!您的真实评价是我们改进的动力~
关注 私信
上传资源赚钱or赚积分
最新推荐
论文研究-一种面向情境的情境感知应用编程框架.pdf 9积分/C币 立即下载
1/6
论文研究-一种面向情境的情境感知应用编程框架.pdf第1页
论文研究-一种面向情境的情境感知应用编程框架.pdf第2页

试读结束, 可继续阅读

9积分/C币 立即下载 >