物联传媒 旗下网站
登录 注册
RFID世界网 >  技术文章  >  制造  >  正文

基于Jini技术的RFID中间件平台

作者:李顺虎,刘芳
来源:RFID世界网
日期:2011-11-22 11:07:19
摘要:基于EPC规范的RFID中间件设计,是RFID中间件进一步研究的基础与前提,在分布式技术广泛应用的今天,将RFID中间件与分布式技术结合也是势在必行的。本文通过对传统的应用系统模式和分布式计算模式的研究和比较,通过引入Jini技术,设计基于Jini技术的RFID中间件平台架构并介绍其配置与管理方案,并通过模拟实验验证了该中间件的正确性。

  1 相关工作

  基于EPC规范的RFID中间件设计,是RFID中间件进一步研究的基础与前提,在分布式技术广泛应用的今天,将RFID中间件与分布式技术结合也是势在必行的,目前已经有学者展开基于中间件的分布式系统开发过程的相关研究。现有的RFID中间件是采用了基于消息的中间件系统(MOM),其主要特点是支持同步和异步两种通讯方式,这使它有助于事件驱动型应用的开发,而对过程处理型应用的开发没有太多益处,其互操作性、API的一致性都比较差,造成基于MOM应用的可移植性差。同时,现在的许多分布式计算技术在RFID产品中的应用主要是集中在RFID中间件应用层面上的研究,对RFID中问件与各种商务应用平台的对接,企业的业务流程整合等方面的分布式计算技术进行融合,例如,在IBM的RFID中间件的架构中就有专门的设计模块来对RFID的中间件模块与商务应用模块之间数据的分配与管理进行研究,来适应企业中的各种分布式平台,而RFID中间件本身进行分布式管理并没有太多研究;SUN公司曾经将RFID中间件借助分布式系统进行配置与管理,但SUN推出的RFID中间件不是基于EPCglobal标准的中间件体系,无法得以普及。在基于EPC规范的RFID中间件中,在设备管理层及应用层事件的设计与研究方面,有基于Agent的设备管
理方法、轻量级ALE的嵌入式中间件技术以及分布式ALE的相关研究¨44引,然而这些研究与设计中均未能实现RFID中间件平台中的设备的自动配置与智能管理的即插即用功能。

  在众多的分布式系统中,Jini是以Java技术为核心的分布式系统.它通过使用一个简易的“即捅即用”模型,能够随时改变硬件或者软件的配置,从而提供一个支持快速配置的分布式计算环境;它使各种数字设备无需配置、安装或者人工干预,就能够在一个临时的称为服务联盟(Federations of Services)的设备集合中共同工作。联盟中的任何设备无论大小都可以自行管理,共同组成一个服务网络,联盟中的每一个成员都可以为其它成员提供资源或服务,同时又可以从其它成员那里获取自己所需的资源和服务;它提供一套完善的机制使得硬件设备或软件组件能够随时加入或者退出联盟。作为一个主动的、响应式的分布式基础结构,它提供了在分布式环境中进行服务的建立、查找、通讯和凋用的一整套机制,它本身与平台无关,采用它的器件不再受到所用软件、处理器、设备驱动器或传统网络协议的制约,只要有Java的虚拟机就可以了iS-6l。服务是Jini体系结构中一个非常重要的概念,它可以用来表示组织在一起形成Jini联盟的各个实体。Jini中的每个服务都有一个接口描述,该接口定义了客户可以向这个服务请求的所有操作,并且反应了服务的类型。这里的服务可以是硬件、软件或软硬件的结合。

  自1999年1月25日SUN的Jini规范发布以来,布式环境下网络人们对利用Jini技术实现分资源有效共享的实现机制和模式进行了研究。其研究目标嗣绕创造强有力的系统和应用程序,从而更好地利用网络资源、使用分散的资源来解决大型的问题。虽然将该目标变为成熟的现实应用还需要较长时间的努力,但Jini至少使人们构建动态的自配置、自管理和自恢复的分布式网络成为可能。有学者已经对Jini 技术等网上即插即用性、分布式系统及信息家电等相关方面进行研究。

  Jini技术的发展也是在不断开发与探索中进行,Jini系统也在实际的应用中继续改进与成熟,这为将Jini技术与RFID中间件技术结合创造了条件。由于Jini是基于Java的开源系统,具有不错的可移植性、操作性等,所以将RFID中间件与Jini技术结合成为了可能,同时利用分布式系统的优势,可以将RFID设备管理在分布式环境下得到优化,这也是RFID中间件发展的趋势。

  2 基于Jini技术的RnD中间件平台架构

  本文通过Jini分布式技术与RFID中间件技术的结合,解决分布式环境下RFID中间件中的设备配置与管理所存在的问题,实现设备的自动配置与智能管理的即插即用功能,基于Jini技术的RFID中间件平台架构如图l所示。

图1 基于Jini的RFID中间件平台架构

  在对基于Jini的RFID中间件平台的设计时,主要是利用RMI通信方式解决RFID设备在网络中的自动识别和“即插即用”、RFID中间件在分布式环境下的自动配置的问题,确保RFID中问件进行通信时能有效地借助基于EPCglobal规范的RFID中间件通信模块进行通信,并且能对中间件的配置进行“定制”;而在网络环境下做好了以上的步骤后,RFID设备与中间件即在网络环境下成功加载,阅读器管理层(Manager)在接入网络后,通过Jini平台找到可以使用的RFID中间件的设备代理层(Agent),它们之间的通信即可正常进行而无需Jini平台的干预。

  基于Jini的RFID中间件平台的设计,其主要思路如下:

  RFID设备作为服务接入Jini网络:首先,在实验室的环境下用软件虚拟了RFID设备,将其按照Jini的规范封装成服务;然后,通过Jini系统的发现(Dis—covery)协议和加入(Join)协议使设备服务成为Jini联盟中的一员。

  RFID中间件设备代理层(Agent)的配置:RFID设备服务接入Jini后,要想正常运行必须要将RHD中间件设备代理层(Agent)进行正确配置。首先。A—gent接入Jini网络(还没有进行配置的AgentO),在网络中找到Jini的查找服务(LookupServiee)的地址并且注册,让自己作为Jini联盟中的一员;然后,Agent0在查找服务(LookupServiee)中查询配置自己需要的服务,按照预留的服务接口来找到实现这些接口的服务对象,查找服务(I_ookupService)匹配到合适的服务之后会将服务的副本和服务提供者的地址返回给还未配置的AgentO,AgentO通过地址找到服务的提供者(如图1中所示:正常运行的RFID中间件Agentl),从而获得服务实例。当然,前提条件是在ini网络中应该存在多台正常运行的RFID中问件,而Agent(}要配置自己,可以从一个或者多个服务提供者中获取服务对象。

  阅读器管理层(Manager)与设备代理层(Agent)的通信:Manager要想获得标签数据则需要与设备代理层进行通信,Manager可以作为一个客户接入Jini中,在Jini中通过查找服务(100kup service)找到某台设备的地址(IP地址),就绪的Agent已经在Jini联盟中获得了配置自己的设备管理服务对象,当Manager获得了Agent的IP地址后,Manager能够与Agent建立实际的通信通道进行通信,从而获得标签数据等信息。同时,Manager与Agent中保留了传统的XML配置方式,在Manager与Agent之问已经建立了端对端的连接后,它们之问的通信无需Jini进行干预,所以它们既可以按照设备默认的配置获得数据,也可以通过XML方式自己来定制设备的配置信息,使设备按照需要进行工作。

{$page$}

  RFID中间件在Jini中的管理优化:由于Manager与Agent之间是透明的,Manager依靠Jini平台为其分配需要的Agent,而在实际的运行中发现,Manager从Jini中获取的Agent有的时候是处于工作状态,从而使获得的服务无效,这样就造成效率上的损失,因为Manager是在获得服务实例之后才能判断该服务是否可以使用。所以,针对这样的情况,本文进一步进行了优化管理,让Manager在Jini中查找时就能获知Agent的状态,从而改进管理。

  3 咖中间件在Jini中的配置与管理

  在基于Jini技术的RFID中问件平台中,RFID设备作为服务加入到Jini中.RFID中间件将自动进行配置.设备要工作需要配置好设备代理层(Agent),它是RFID中间件的一部分,负责对RFID阅读器设备的管理。首先,对两种设备代理层(Agent)进行区分:Agentl和Agent0。

  (1)AgentI——包含RFID中间件设备代理层的“设备管理服务”集合和一个“配置服务端”,Jini联盟中至少有一个Agentl。

  (2)AgentO——代表某台在Jini中还未被配置的RFID中间件,具有一个“配置客户端”。这里Agentl和AgentO都要有Jini环境,“配置服务端”和“配置客户端”在后面将有详细介绍。同上将配置Agent所需要的服务统称为“设备管理服务”。

  在基于Jini技术的RFID中间件平台中,对Agent的配置非常关键,其简单的配置流程如图2所示。

  在设备接入后.正常运行的Agentl一旦监听到Jini的查找服务中有RFID设备服务对象进行了注册,它会在Jini的查找服务(LookupService)上根据服务的属性等信息来查询设备服务对象,查找服务(LookupServiee)会将查询后的结果返回.如果Agentl决定使用,查找服务(LookupServiee)会将服务的副本返回给Agentl,Agentl在从中获得服务提供者信息,与服务提供者进行通信,获得RFID设备服务对象,同时定义生成各种设备管理服务的服务对象,并将这些服务对象与RFID设备服务对象绑定,在Jini上注册;而未被配置的Agent0在监听到Jini的查找服务中有RFID设备管理服务对象注册后,会在Jini的查找服务(LookupServiee)上查询相关的服务信息,查找服务
将查询结果返回,如果Agent0认为返回的服务信息符合,决定采用,查询服务会将服务的副本返回给Agent0,从中获得服务提供者(这里是Agentl)信息,与服务提供者通信,获得服务实例,从而完成配置。

  4 测试与分析

  为了验证RFID设备在Jini平台上的“即插即用”性,本文通过软件模拟RFID阅读器,将虚拟阅读器按照Jini的规范封装成服务,Jini的配置服务端(ContigServer)开启,监听设备服务(VirtualReader)是否加入到Jini中,如图2所示。

图2等待设备加入

  设备加入后,对设备进行配置,如图3所示。

图3 配置Agent

  设备加入到Jini之后,配置服务端监听到设备加入,会对设备的Agent进行自动配置,通过以上测,可以看到RFID设备在Jini中的即插即用。

{$page$}

  同时进行性能上的检测。对Agent的配置,以使用的方法是XML进行配置,通过XML的方式将配置信息传递到Agent,Agent按照配置信息生成配置象并进行映射。而现在在Jini平台上采用RMI技术进行配置,设备在Jini中被识别并注册之后,配置服务端会以RMI的方式将生成的服务对象传递到Agent,从而完成配置。本文将两种配置方式的性能进行比较,测试结果如下:

  一台Manager服务器配置多个Agent,采用两种方式进行配置的:

  (1)Xml方式进行配置:配置1个Agent耗时9秒;配置2个Agent耗时19秒;配置3个Agent耗时26秒;配置4个Agent耗时37秒;配置5个Agent耗时45秒。

  (2)RMI方式进行配置:配置1个Agent耗时3秒;配置2个Agent耗时4秒;配置3个Agent耗时3秒;配置4个Agent耗时3秒;配置5个Agent耗时3秒。

  图4中黑实线条是采用XML方式对RFID中间件检进行配置的时间曲线,黑虚线条是采用RMI方式对RFID中间件进行配置的时间曲线。由图4中可以看出,随着Agent数量的增加,采用XML方式进行中间置的时间也会增加,近似成正比的增加,而采用对RMI方式进行配置的时间不随Agent数量的增加而增,几乎保持水平。从而说明了采用RMI的方式进行间件配置时,时间减少,效率增加,同时配置时间的长短不会随着Agent的增加而改变。

  通过以上的测试分析,可以看出在Jini中对RFID中间件进行配置的效率得到了提高。本文是在对网络的拥塞考虑较少的情况下进行的测试,在实际中会受到网络环境的影响,数据会有所偏差。当然,在两种方式的比较中,虽然XML方式的效率较低,但这种配置方式不受编程语言、操作平台等限制,而RMI方式只能适用于Java语言的编程与实现,所以在本文中将两种方式都加以保留。

  5 结束语

  本文通过对传统的应用系统模式和分布式计算模式的研究和比较,对传统的RFID中间件进行了分析,提出了RFID中间件在分布式环境下进行管理的思想。通过引入Jini技术,设计基于Jini技术的RFID中间件平台架构并介绍其配置与管理方案。通过模拟实验验证了该中间件的正确性。

  在RFID中间件与Jini技术结合的研究中,笔者的进一步工作将加强RFID中间件在Jini中的管理优化。在本文中只是因为出现了实际的问题,针对该问题进行了改进,但为了更加优化管理,对多个Manager接入Jini联盟时,可以按照优先级进行管理,并设计快速选择的调度算法;可以更好地利用租赁机制,让租期长短更合理,使资源的分配更合理;同时,在需要的时候,还可以利用Jini的事务管理机制,在Jini联盟中实现分布式数据库。