您的当前位置:首页移动中间件中上下文相关的对象模型

移动中间件中上下文相关的对象模型

2022-08-06 来源:爱问旅游网
维普资讯 http://www.cqvip.com 第24卷第5期 计算机应用与软件 V01.24 No.5 2007年5月 Computer Applications and Software Mav 2007 移动中间件中上下文相关的对象模型 王 健 唐新怀 (上海交通大学计算机科学与工程系上海200030) 摘要 在对上下文、上下文相关和反射机制的概念进行分析研究的基础上,提出了一种基于上下文视图的上下文相关对象模 型,并且定义了描述和操作上下文信息的操作元语。最后介绍了这种模型在MACAM移动中间件中的实现。 关键词 移动计算 移动中间件上下文相关反射 AN OBJECT MODULE FOR CONTEXT-AWARENESS MOBILE MIDDLEWARE Wang Jian Tang Xinhuai (Department ofComputer Science and Engineering,Shanghai Jiaotong University,Shanghai 200030,China) Abstract By surveying the concepts of context and context—awareness,we introduced a context view based context—awareness object module used in pervasive wireless network.Then we described the atomic operation of context information,and introduced an implementation of our module in MACAM mobile middleware. Keywords Mobile computing Mobile middleware Context—awareness Reflection ・根据宿主对象,可分为本地上下文和异地上下文。 1简介 上下文相关是指移动应用发现周围环境变化和根据环境变 化做出相应反应的能力。即上下文相关的应用需要具备获取上 无线移动环境下的移动计算一般具备如下三个特征:受限 下文信息的能力和根据上下文变化而自适应调整的能力。 的资源,网络环境的异构性和高度的动态性。这些特性不同于 在移动中间件的架构中,上下文相关是一个重要的组成部 传统的固定网络分布式环境,给移动系统(应用)的设计带来了 分。它负责所有上下文信息的采集、存储和管理,提供外部计算 前所未有的挑战。为此,国内外已研究了多种应用于无线移动 对象获取和修改上下文信息的接口,提供外部对象自定义上下 网络的中间件系统,如:Tspaces…,Lime 和Jini/JavaSpaces 文的接口。外部对象获取上下文信息的方式除了由外部对象主 等。它们大多是以移动应用之间的协调与交互作为其主要的研 动查询外,更多的是通过反射机制主动地将上下文信息变化情 究内容,其中大部分采用基于Linda的元组空间作为协调模型。 况通知外部对象,来实现外部对象对上下文变化的适应。上下 这些模型和系统符合移动计算所要求的异步通信方式,以及移 文相关的反射机制是指外部对象通过定制事件一反应对(E— 动组件间交互的时间去耦合和空间去耦合的特性要求。但是却 vent—Action Pairs)来自动适应上下文信息变化的方法。事件规 未能充分考虑移动中间件的另外一个重要特性,即如何能够让 定了一系列上下文信息取值所满足的条件,反应则是指一系列 移动实体感知它所处的上下文及移动环境变化所带来的各种 的动作。事件一反应对表示当指定的一系列上下文信息的取值 影响。 满足特定的条件时自动触发相应的一系列动作,从而实现对上 下文变化的自适应。 2上下文和上下文相关 3 基于上下文视图的上下文相关对象模型 我们认为,在无线移动计算领域,上下文是指所有可以描述 某个实体对象特征的信息。这个实体对象可以是某个用户、某 在我们的上下文相关对象模型中采用扩展的元组空间来描 个移动终端、某个应用或服务。简而言之,上下文是无线移动环 述上下文信息。一个元组(Tuple)由一组顺序无关的属性组成, 境中有用信息的集合。 每个属性是一个三元组: 上下文信息的特点是具有时效性、不完全的、可以有不同的 <(name,type,value),(name,type,value),…> 表达方法及高度相关的。 式中,name字段表示属性的名称,type字段表示属性的取 上下文信息的分类: 值类型,value字段表示属性的值。在一个给定的元组中,每个 ・根据信息的时效性,可分为静态上下文和动态上下文。 ・根据数据的来源,可分为传感器相关的上下文(资源上 收稿日期:2005—02—04。王健,硕士,主研领域:分布式计算与移 下文)、自定义的上下文和派生的上下文。 动中间件。 维普资讯 http://www.cqvip.com 计算机应用与软件 属性的名称必须唯一。由于增加了名称字段,对元组的匹配操 的操作被执行。反射的定义形式如下: 2007生 作不需要严格保证属性的顺序一致,因而提供了更好的灵活性。 对元组的操作是通过定义一个扩展的模板(Pattern)来进 行的: <(name,type,constraint),(name,type,constraint),…> P=react to P[remove]out(updateContext(t))execute T(t) 其中t表示触发元组,P表示反射模板,可选关键字remove 表示反射发生时将触发元组删除,out操作将经过updateContext 方法修改的触发元组添加到本地元组空间中,T(t)表示以触发 元组为参数的事务。一个事务就是将顺序执行的若干操作组合 其中name和type与元组中的定义一致,constraint是对属 性取值的限定函数。我们定义区配函数来描述用模板来匹配元 组的操作: M(0,P) V C∈P, flf∈0^£name=c.name^f.typeinstanceof C.type 成一个操作,系统确保这些操作能够连续地执行。事务执行的 中间过程和中间结果对事务外部不可见。 4 MACAM移动中间件中上下文相关的对象 ^C.constraint(f.value) 其中0表示元组。匹配函数要求,对于模式P中的每一个 限定函数C,在元组中必须有一个属性f,它的名称和C所在的 属性的名称相同;它的类型和C所在的属性的类型相同或者是 它的衍生类型;并且它的取值满足C的要求。元组的属性数量 可以超过模板中的属性,但是模式中的属性必须出现在元组中。 此外元组中的属性类型不仅限于和模式中的属性类型相同,还 可以是模式中的属性类型的子类。这两个扩展增加了灵活性, 降低了耦合度,并且符合面向对象的编程模式。 在无线移动环境中,存在大量的上下文信息。然而对一个 特定的应用而言,事实上它只关心其中一部分会对其行为构成 影响的信息,我们通过上下文视图来将应用关心的上下文信息 抽取出来。上下文视图是所有上下文信息的一个子集,是应用 对所有上下文信息的一个投影。应用通过定制限制条件来描述 一个上下文视图,所有满足限制条件的上下文信息组成了上下 文视图的内容。上下文视图的描述为: view §<T,cl,c2,…> 其中T表示全部上下文信息;c1、c2、…表示一组限制条件。 上下文视图是以应用为中心来观察和操作上下文信息的,因此 我们用view的下标r来表示是哪一个应用的上下文视图。在无 线移动环境中,限制条件包括:网络限制条件、终端限制条件、移 动Agent限制条件和数据限制条件。例如,一个在汽车上预防 交通事故的Agent定制了如下的上下文视图: 所有距离我目前所处位置100米以内(网络限制条件)的 汽车(终端限制条件)上预防交通事故的Agent(Agent限制条 件)所拥有的位置信息(数据限制条件)。 对上下文信息的基本操作包括: ・ifExists(T,P)判断是否存在满足条件的上下文,其中 P是一个模板,T是指定的上下文视图,下同。 ・getContextSet(T,P) 返回所有满足条件的上下文元组 集合。 ・getContext(T,P) 返回一个满足条件的上下文元组。 ・addContext(T,t) 添加上下文元组,其中t表示指定的 上下文元组,下同。 ・delContext(T,t)删除上下文元组。 ・addField(t,name,type,value) 增加上下文元组中的属 性,其中ntqlne表示增加的属性名称;type表示属性类型,value 表示属性值,下同。 ・delField(t,name)删除上下文元组中的属性。 ・modField(t,name,value)修改上下文元组中的属性。 在我们的上下文相关模型中,反射机制是通过模板来实现 的。通过注册一个反射将某个模板和相应的操作关联起来,当 模板匹配到上下文视图中的一个元组时,反射被触发,引起相应 模型 MACAM(Mobile Agent based Context—Awareness Middleware) 是我们开发的一种支持上下文相关的移动中间件原型系统,为 简化编程,系统采用Java语言来实现。其内部结构如图1 所示。 图1 MACAM系统结构 下面简要说明各个模块的功能: ・Network Manager和Resource Manager提供底层通信支 持和资源管理。 ・Policy Manager提供基于策略的资源分配、服务选择的 管理。 ・Service Discovery服务发现模块,探寻相邻移动终端、 路由和提供的服务,计算终端之间通信成本,构建网络逻辑拓 扑图。 ・Coordination协调冲突管理,协调不同终端或Agent间 交互与协作的管理。 ・Event Manager管理Agent的注册与注销、相邻移动终 端的进入与离开等事件。 ・Sensor Monitor传感器信息监视器,捕捉底层硬件或环 境传感器的数据,并且对原始数据进行解释和封装,供上层 使用。 ・Context.aware Manager上下文相关的核心控制模块,实 现上下文相关对象模型,提供对上下文视图的管理、事务和反射 机制、Agent迁移的管理等功能。 ・BTSpace基于平衡树结构的上下文元组空间。存储管 理上下文信息,支持扩展的Linda操作接口。每个Agent拥有自 己的私有BTSpace,随Agent的迁移而移动,终端拥有公共的 BTSpace。 在MACAM中,应用程序采用移动Agent的形式实现。移 动 计 行 的本地上下文信息,包括描述Agent本图2移动Ag nl结构 身属性的Profile。私有BTSpace与宿主 (下转第74页) 维普资讯 http://www.cqvip.com 74 计算机应用与软件 2007丘 改动的情况下,给它添加协同编辑和群体意识功能。在实现中,两 个相关组件都作为插件添加从而达到目的。另外,通过扩展现有的 面向Web服务的体系结构使系统包含一个版本控制系统。 由于JAVA语言的跨平台特性,JAVA相关技术将是实现我 反射机制通过反射注册表和反射监听对象队列来实现。首 先创建一个Reaction对象,通过Agent类的registerReaction方法 将其注册到本地反射注册表中,当反射被激活的时候,MACAM 将一个ReactionListener对象发送到涉及的各个移动终端的反射 们群体意识和协同设计特性的最合适的技术。可能用到的技术 包括JAX.RPC(java API for XML.based Remote Procedure calls), JAVA Web服务附件以及JAVA RMI等。 监听对象列表中,包括其本身。当满足反射条件的上下文元组 出现时,该触发元组被反射监听对象通过一个通知消息返回给 注册反射的终端。根据通知消息,MACAM从反射注册表中找 到反射对象,然后执行反射对象对应的操作。反射类Reaction 的定义如下: public class Reaction{ 本文没有讨论数据一致性和可靠性,但这些性质可以设想 通过使用事务模型获得。下一步的工作包括研究完全异构的软 件工具能否使用这种基于Web服务的组件,以及研究使用人工 智能技术通过检查事件历史总结他人的意图,提供更为智能的 群体意识信息。 参考文献 [1]Dewan P,Sharma A.An experiment in Interoperating Heterogeneous Collaborative Systems,6th European Conference on Computer Suppor- ted Cooperative Work—ECSCW’99,Copenhagen,Denmark,1999. [2]Fogel K,Bar M,ebrary Inc.Open source development with CVS.Coriol— is Group Books,Scottsdale,AZ,2001. [3]Gmndy J,Hosking J.Engineering plug—in software components to sup— port collbaorative work.Software—Practice&Experience,32(10): 983.1Ol3. [4]http://www.sei.emu.edu/legaey/case/case_whatis.htm1. [5]http://www.webservices.or#. [6]Kreger H.Web Services Conceptual Architecture(WSCA 1.0),May 2001. [7]Mehra A,Gmndy J,Hosking J.Adding Group Awareness to Design Tools using a Plug—in,Web Service—based Approach. [8]Mehra A G,J C,Hosking J G.Supporting Collaborative Software Design with a Plug—in,Web Services—based Architecture.In Proceedings of the ICSE 2004 Workshop on Directions in Software Engineering Environ— ments,Edinburgh,Scotland,IEE Press. [9]Younas M a I R.Developing Collaborative Editing Applications using Web Services.Proc.5th Int.Workshop on Collaborative Editing,Hel— sinki,Finland,Sept 15,2003. (上接第64页) 终端的BTSpace保持数据一致性。安全访问控制模块提供基于 安全策略的上下文共享机制。移动Agent对象继承自抽象类A— gent: public abstract class Agent{ private AgentProfile prof; private ACF acf; private BTSpaee localSpace; 移动Agent通过上下文视图来描述它所关心的上下文信 息。每个移动Agent可以定制多个上下文视图,应用代码通过 视图来访问和操作上下文信息。视图类定义如下: public class View implements BTspaceOperat0r{ ・,public VieW1 NetworkC0nstraints ne,H0stC0nstmints hc, AgentConstraints ae,DataConstraints de, Credentials k); 其中BTSpaceOperator接口,它定S ̄-j"对BTSpace的基本操 作;四种限制条件都是继承自模板类Pattern;密信k和Agent的 访问控制函数acf一起实现对数据的安全访问。 public Reaction(Pattern P.boolean ifRemove, boolean ifOut); public void setTransaction(Transaction t); 其中P是匹配的模板,ifRemove和ifOut分别表示是否删除 触发元组和是否将触发元组添加到本地空间;setTransactio ̄方 法添加事务t到反射中,事务抽象类Transaction的定义如下: public abstract class Transaction{ public Transaction(View[]involvedViews); public void execute(object o); 其中involvedViews表示事务涉及的所有上下文视图,事务 执行时中间件会将这些视图所对应的上下文信息锁定,以确保 事务的一致性;execute方法定义了具体的事务操作过程。 在MACAM中编写移动应用程序的基本过程是: 1)从Agent类中派生出应用类; 2)从Transaction类中派生出应用特定的事务类; 3)根据不同的限制条件创建上下文视图对象; 4)创建应用特定的反射对象; 5)注册并激活反射对象。 5结论 上下文相关及基于反射的自适应是移动中间件应对动态变 化的无线移动网络的重要技术手段。本文提出了基于上下文视 图的上下文相关对象模型,并介绍了在MACAM移动中间件原 型系统中的实现。进一步的工作包括:研究上下文历史相关的 事件机制、对上下文安全管理的深入探索、设计上下文信息的冲 突解决方案、完善MACAM的实现。 参考文献 [1]IBM.T spaces.http://almaden.ibm.eom/es/TSpaees. [2]Picco G P,Mushy A,Roman G C.Lime:Linda meets Mobility.In Proc.21 st Int.Conf.on Software Engineering(ICSE-99),1999:368— 377.ACM Press,May. [3]Waldo J.Javaspaces speciifcation 1.0.Technical report(March),Sun Microsystems.1998. [4]Licia Capra.Reflective Mobile Middleware for Context—Aware Applica— tions,Ph.D.Thesis.Licia Capra.October 2003. [5]Cecilia Mascolo,et a1.XMIDDLE:A Data—Sharing Middleware for Mo— bile Computing,In International Journal on Wireless Personal Commu— nications,Kluwer Academic Publisher.2002,21(1):77—103. [6]Yau S,Wang Y,Karim F.Developing Situation—Awareness in Middle— ware ofr Ubicomp Enviornments.Proc.26th Int’1 Computer Software and Applications Conferenee,COMPSAC 2002:233-238. 

因篇幅问题不能全部显示,请点此查看更多更全内容