CN101924768B - 一种分布式rfid中间件的通信控制方法 - Google Patents
一种分布式rfid中间件的通信控制方法 Download PDFInfo
- Publication number
- CN101924768B CN101924768B CN 201010260156 CN201010260156A CN101924768B CN 101924768 B CN101924768 B CN 101924768B CN 201010260156 CN201010260156 CN 201010260156 CN 201010260156 A CN201010260156 A CN 201010260156A CN 101924768 B CN101924768 B CN 101924768B
- Authority
- CN
- China
- Prior art keywords
- service
- jini
- rfid
- equipment
- agent
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Computer And Data Communications (AREA)
Abstract
本发明提供了一种分布式RFID中间件的通信控制方法,以及关于RFID中间件数据通信的可靠性优化。所述分布式RFID中间件通信机制包括:RFID设备作为服务接入Jini网络,RFID中间件设备代理层(Agent)的配置,以及阅读器管理层(Manager)与设备代理层的通信。所述关于RFID中间件数据通信的可靠性优化通过在设备管理层中增加通信通道的维护模块,针对Agent正常或异常关闭并重新启动程序、Manager正常或异常关闭并重新启动程序、空闲时网络异常情况下的RFID数据通信进行各种处理来实现。
Description
技术领域
本发明设计一种RFID中间件在分布式环境下的通信机制,以及对RFID中间件数据通信进行可靠性的优化。
技术背景
随着社会生产力的飞速发展,RFID(Radio Frequency IdentificationTechnology)技术也在各个领域中得到更多的关注与应用,人们对RFID应用的安全与“自适应”的要求越来越高,人们对智能化的程度要求也越来越高。
目前,RFID在各个领域的应用正越来越广泛的展开,RFID中间件产品虽然初具规模,但在RFID数据通信时出现的问题也越来越受到人们的关注。如何保证RFID中间件的通信的可靠性,已经成为RFID产品在实际的应用中亟待解决的问题之一。本发明针对通信可靠性的研究,使得RFID数据的传输得到保障。
而将RFID中间件在分布式环境下得到应用,是RFID技术发展的趋势,也是对RFID中间件技术应用研究的一次大胆尝试。本发明提出了将RFID中间件技术与Jini(Java Intelligent Network Infrastructure)平台结合的解决方案,利用“即插即用”的运行机制,结合分布式的编程模式,融合面向服务的思想,使得RFID服务能在网络环境下自动接入、应用程序或资源能得到共享、数据通信能够更加高效快速的进行。同时,提出的这种解决方案,对构建强壮的分布式应用***有非常重要的指导意义和现实应用价值。
发明内容
本发明的一个目的在于解决RFID中间件与Jini的结合,实现RFID中间件在分布式环境下的通信,完成RFID设备“即插即用”的功能。并且还能够对网络异常情况下的RFID数据通信进行各种处理,实现对RFID中间件数据通信关于可靠性的优化。
为了实现发明目的,采用的技术方案如下:
(1)RFID设备作为服务接入Jini网络
首先,将RFID设备按照Jini的规范封装成服务,然后,通过Jini***的发现(Discovery)协议和加入(Join)协议使设备服务成为Jini联盟中的一员。
(2)RFID中间件设备代理层(Agent)的配置
首先,Agent接入Jini网络,在网络中找到Jini的查找服务(LookupService)的地址并且注册,让自己作为Jini联盟中的一员;然后,Agent在查找服务中查询配置自己需要的服务,按照预留的服务接口来找到实现这些接口的服务对象,查找服务匹配到合适的服务之后会将服务的副本和服务提供者的地址返回给还未配置的Agent,Agent通过地址找到服务的提供者(通常为已经配置成功的RFID中间件Agent),从而获得服务实例。
(3)阅读器管理层(Manager)与设备代理层的通信
Manager作为一个客户接入Jini中,在Jini中通过查找服务找到某台设备的地址(IP地址),就绪的Agent已经在Jini联盟中获得了配置自己的设备管理服务对象,当Manager获得了Agent的IP地址后,Manager能够与Agent建立实际的通信通道进行通信,从而获得标签数据等信息。
在设备管理层中增加通信通道的维护模块。针对Agent正常关闭并重新启动程序、Manager正常关闭并重新启动程序、Agent异常终止并重新启动程序、Manager异常终止并重新启动程序,空闲时网络异常的情况进行关于通信可靠性的优化处理。
附图说明
图1为基于Jini的RFID中间件平台的结构。
图2为RFID中间件通信优化设计框架。
具体实施方式
下面结合附图对本发明做进一步的说明。
一、为了解决RFID中间件与Jini的结合,实现RFID中间件在分布式环境下的通信,本发明提出的基于Jini的RFID中间件平台的结构如图1所示,采取的实施步骤如下:
1、RFID设备在Jini中的管理
(1)RFID设备服务生成
首先,定义设备接口AbstractDeviceModel,使AbstractDeviceModel接口继承Java.rmi.Remote,并且使接口中的方法抛出java.rmi.RemoteException异常。然后,定义服务代理VirtualReade来实现设备接口,以及net.jini.lookup.ServiceIDListener和java.io.Serializable接口。
AbstractDeviceModel是一个外露RFID设备服务的接口,在Jini联盟中的其它成员可以引用它,而VirtualReader是RFID设备服务,它实现了AbstractDeviceModel接口,并且将VirtualReader服务实例在Jini中注册,从而其他的成员可以通过Jini的查找服务查询该服务对象。
(2)定位Jini查找服务
本发明使用net.jini.discovery.LookupDiscoveryManager类,在已知的固定终端上以广播的方式查找出所有的查找服务,并且在此类的构造函数中也加入DiscoveryListener***,方便快速找到查找服务。
(3)RFID设备服务对象在Jini中的注册
首先定义ServiceItem对象,并将RFID服务实例自身作为参数注入;然后定义Entry[]对象,设置设备信息;调用ServiceRegistrar对象的register( )方法,将RFID设备服务注册到查找服务,同时返回一个ServiceRegistration对象。
2、RFID中间件在Jini中的配置与管理
首先定义两种设备代理层:Agent1和Agent0。Agent1包含RFID中间件设备代理层的“设备管理服务”集合和一个“配置服务端”,Jini联盟中至少有一个Agent1。Agent0代表某台在Jini中还未被配置的RFID中间件,具有一个“配置客户端”。
(1)设备管理服务的生成
将Agent1中的设备管理模块的相关类(ReaderDevice、DataSelector、Source、NotificationChannel、ReadPoint、TagSelector、Trigger)封装成服务。
这些服务实现java.io.Serializable接口和net.jini.lookup.ServiceIDListener接口,同时也继承对应的设备配置服务接口,这些管理服务的接口与设备管理服务一一对应,均要继承Java.rmi.Remote类,同时接口中的方法必须抛出java.rmi.RemoteException异常。
(2)设备管理服务的实现
Agent1中的配置服务端(ConfigServer)用于生成和管理设备管理服务对象。首先,使用LookupDiscoveryManager类找到查找服务,返回ServiceRegistrar类对象;第二,定义设备管理服务中的ReaderDevice服务对象。第三,用net.jini.lookup.JoinManager类,将ReaderDevice服务对象注册到查找服务中。
(3)设备管理服务的获得
在Agent0配置客户端中的ConfigClient进行查询与获得服务。首先,定位Jini的查找服务,同时返回ServiceRegistrar对象。第二,通过ReaderDevice服务暴露的接口ReaderDeviceModel建立服务匹配模板类(ServiceTemplate)。第三,调用ServiceRegistrar对象的lookup( )方法来进行查询,在lookup( )方法中需要注入事先定义的ServiceTemplate对象。第四,在Jini的查找服务中找到了设备管理服务对象之后,查找服务会返回ServiceItem类型对象,从ServiceItem对象中,Agent0可以获得服务提供者(Agent1)的相关信息,例如服务提供者的地址等等;最后,Agent0和Agent1能够直接建立通信,通过RMI机制,将服务对象传递给Agent0,完成配置。
3、阅读器管理层(Manager)与设备代理层(Agent)通信
Manager作为Client接入Jini中,从Jini的查找服务中查询到配置完成的Agent,获得其IP地址。
按照EPC规范,Manger和Agent之间建立起两条通道(CommandChannel和NotificationChannel)分别进行命令通信和报文通信。
二、为了实现RFID中间件通信的可靠性优化,本发明采取的实施步骤如下:
1、Agent正常或异常关闭并重新启动程序
Agent与Manager重新建立网络联接,Manager重新对Agent进行配置。在Manager进行设备的重新配置时,会检测到已经有Readerdevice对象存在,如果此时通信通道已经关闭,则Manager命令Agent删除Readerdevice对象,Manager也删除Readerdevice对象副本,重新建立新的Readerdevice对象。
2、Manager正常关闭并重新启动程序
Manager端发送goodbye命令,Agent收到命令后,首先判断报文缓冲池中是否有报文,如果有报文,先将报文发送完毕,发完之后,关闭报文通道,如果缓冲池中已经没有报文了,就直接关闭报文通道,在进行以上的处理之后,Agent发送“goodbye”命令的回复给Manager,然后关闭命令通道;Manager端在收到命令的回复后,关闭报文和命令通道。
3、Manager异常终止并重新启动程序
当Agent检测到通信断开,就停止从阅读器中接收数据的线程,然后查看报文缓冲区中是否还有数据没有发出,如果有数据,就将数据发送完毕,在停止发送数据的线程,然后关闭报文和命令通道;如果没有数据,就直接停止数据发送的线程,关闭报文和命令通道。在TimerNotification类中增加一个stop( )方法,用于线程的控制,检测报文缓冲区中是否还有报文,如果有报文将其发完,然后关闭线程和通道;如果没有报文,直接关闭线程和通道。
4、空闲时网络异常情况
在Manager与Agent分别启用一个Timer线程,每隔一段时间发送一个小的检测数据包,从Manager与Agent开始建立连接的时候“心跳包”线程就开始运行,检测数据包通过命令通道发送,当命令传输完毕后,命令通道处于空闲,此时可以用来发送检测数据包;然后,在两端另起一个Timer线程,用于计算最后一次检测数据包到达的时间与当前时间的差值,如果断网,差值时间过长,即可被检测到。
Claims (6)
1.一种分布式RFID中间件的通信控制方法,其特征在于包括如下步骤:
1)将RFID设备作为服务接入Jini网络;
2)将RFID中间件设备代理层Agent在Jini网络进行配置;
3)将阅读器管理层Manager接入Jini网络并与设备代理层进行通信;
所述步骤1)的具体操作为:首先将RFID设备按照Jini的规范封装成服务,然后通过Jini***的发现协议和加入协议使设备服务成为Jini联盟中的一员;
所述步骤1)进一步包括如下步骤:
11)RFID设备服务生成
首先定义设备接口AbstractDeviceModel,使AbstractDeviceModel接口继承Java.rmi.Remote,并且使接口中的方法抛出java.rmi.RemoteException异常,然后定义服务代理VirtualReade来实现设备接口,以及net.jini.Iookup.ServicelDListener和java.io.Serializable接口;
所述AbstractDeviceModel是一个外露RFID设备服务的接口,在Jini联盟中的其它成员能够引用它,而VirtualReader是RFID设备服务,它实现了AbstractDeviceModel接口,并且将VirtualReader服务实例在Jini中注册,从而其他的成员能够通过Jini的查找服务查询该服务对象;
12)定位Jini查找服务
使用net.jini.discovery.LookupDiscoveryManager类在已知的固定终端上以广播的方式查找出所有的查找服务,并且在此类的构造函数中也加入DiscoveryListener***,方便快速找到查找服务;
13)RFID设备服务对象在Jini中的注册
首先定义ServiceItem对象,并将RFID服务实例自身作为参数注入,然后定义Entry[]对象,设置设备信息,调用ServiceRegistrar对象的register()方法,将RFID设备服务注册到查找服务,同时返回一个ServiceRegistration对象。
2.根据权利要求1所述的分布式RFID中间件的通信控制方法,其特征在于所述步骤2)的具体操作为:首先Agent接入Jini网络,在网络中找到Jini的查找服务的地址并且注册,以作为Jini联盟中的一员;然后Agent在查找服务中查询配置需要的服务,按照预留的服务接口找到实现这些接口的服务对象,查找服务匹配到合适的服务之后将服务的副本和服务提供者的地址返回给还未配置的Agent,Agent通过地址找到服务的提供者,从而获得服务实例。
3.根据权利要求2所述的分布式RFID中间件的通信控制方法,其特征在于所述步骤2)首先定义两种设备代理层:Agent1和Agent0,Agent1包含RFID中间件设备代理层的“设备管理服务”集合和一个“配置服务端”,Jini联盟中至少有一个Agent1,而Agent0代表某台在Jini中还未被配置的RFID中间件,具有一个“配置客户端”,然后进一步包括如下步骤:
21)设备管理服务的生成
将Agent1中的设备管理模块的相关类,包括ReaderDevice、DataSelector、Source、NotificationChannel、ReadPoint、TagSelector、Trigger封装成服务;这些服务实现java.io.Serializable接口和net.jini.Iookup.ServicelDListener接口,同时也继承对应的设备配置服务接口,这些管理服务的接口与设备管理服务一一对应,均要继承Java.rmi.Remote类,同时接口中的方法抛出java.rmi.RemoteException异常;
22)设备管理服务的实现
Agent1中的配置服务端ConfigServer用于生成和管理设备管理服务对象,首先使用LookupDiscoveryManager类找到查找服务,返回ServiceRegistrar类对象,然后定义设备管理服务中的ReaderDevice服务对象,最后用net.jini.Iookup.JoinManager类将ReaderDevice服务对象注册到查找服务中;
23)设备管理服务的获得
在Agent0配置客户端中的ConfigClient进行查询与获得服务,第一定位Jini的查找服务,同时返回ServiceRegistrar对象,第二通过ReaderDevice服务暴露的接口ReaderDeviceModel建立服务匹配模板类ServiceTemplate,第三调用ServiceRegistrar对象的lookup()方法来进行查询,在lookup()方法中需要注入事先定义的ServiceTemplate对象,第四在Jini的查找服务中找到了设备管理服务对象之后,查找服务会返回Serviceltem类型对象,从Serviceltem对象中,Agent0能够获得服务提供者Agent1的相关信息,最后,Agent0和Agent1能够直接建立通信,通过RMI机制,将服务对象传递给Agent0,完成配置。
4.根据权利要求1所述的分布式RFID中间件的通信控制方法,其特征在于所述步骤3)的具体操作为:Manager作为一个客户接入Jini中,在Jini中通过查找服务找到设备的地址,当Manager获得了设备对应的Agent的IP地址后,Manager能够与Agent建立实际的通信通道进行通信,从而获得标签数据等信息。
5.根据权利要求4所述的分布式RFID中间件的通信控制方法,其特征在于所述步骤3)Manager作为Client接入Jini中,从Jini的查找服务中查询到配置完成的Agent,获得其IP地址,Manger和Agent之间建立起两条通道,CommandChannel和NotificationChannel分别进行命令通信和报文通信。
6.根据权利要求1所述的分布式RFID中间件的通信控制方法,其特征在于还包括对网络异常情况下的RFID数据通信进行各种处理,实现对RFID中间件数据通信可靠性的优化处理步骤,具体通过在设备管理层中增加通信通道的维护模块,包括针对Agent正常关闭并重新启动程序、Manager正常关闭并重新启动程序、Agent异常终止并重新启动程序、Manager异常终止并重新启动程序,空闲时网络异常的情况进行关于通信可靠性的优化处理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010260156 CN101924768B (zh) | 2010-08-20 | 2010-08-20 | 一种分布式rfid中间件的通信控制方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN 201010260156 CN101924768B (zh) | 2010-08-20 | 2010-08-20 | 一种分布式rfid中间件的通信控制方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101924768A CN101924768A (zh) | 2010-12-22 |
CN101924768B true CN101924768B (zh) | 2013-05-15 |
Family
ID=43339412
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN 201010260156 Active CN101924768B (zh) | 2010-08-20 | 2010-08-20 | 一种分布式rfid中间件的通信控制方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101924768B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102281197A (zh) * | 2011-08-12 | 2011-12-14 | 华南理工大学 | 一种rfid路由器架构*** |
CN102609744A (zh) * | 2012-02-14 | 2012-07-25 | 南京三宝科技股份有限公司 | 一种基于bls架构的uhf电子标签读写器 |
CN107733922B (zh) * | 2017-11-20 | 2020-12-08 | 百度在线网络技术(北京)有限公司 | 用于调用服务的方法和装置 |
CN110830538B (zh) * | 2018-08-13 | 2022-06-14 | 华为技术有限公司 | 一种消息传输方法、装置及存储介质 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101634946A (zh) * | 2009-08-20 | 2010-01-27 | 华南理工大学 | 一种rfid构件的生成方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
EP2368519A1 (en) * | 2007-03-06 | 2011-09-28 | Astra Tech AB | Dental implant, abutment structure and method for implanting a dental implant |
-
2010
- 2010-08-20 CN CN 201010260156 patent/CN101924768B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101634946A (zh) * | 2009-08-20 | 2010-01-27 | 华南理工大学 | 一种rfid构件的生成方法 |
Non-Patent Citations (4)
Title |
---|
A Novel Distributed Complex Event Processing for RFID Application;Tao Ku1,YunLong Zhu KunYuan Hu Lin Nan;《IEEE Third 2008 International Conference on Convergence and Hybrid Information Technology》;20081231;摘要,1部分 * |
RFID中间件的结构设计;成修治, 李宇成;《计算机应用》;20080430;第28卷(第4期);摘要,0-3部分 * |
Tao Ku1,YunLong Zhu KunYuan Hu Lin Nan.A Novel Distributed Complex Event Processing for RFID Application.《IEEE Third 2008 International Conference on Convergence and Hybrid Information Technology》.2008,摘要,1部分. |
成修治, 李宇成.RFID中间件的结构设计.《计算机应用》.2008,第28卷(第4期),摘要,0-3部分. |
Also Published As
Publication number | Publication date |
---|---|
CN101924768A (zh) | 2010-12-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109246220B (zh) | 一种消息推送***及方法 | |
CN103001838B (zh) | 传感器设备标识的生成及使用方法、***和相关设备 | |
KR20170020311A (ko) | 무선 센서 네트워크 | |
CN101408899A (zh) | 一种网站多数据源切换方法和装置 | |
CN102982141A (zh) | 一种实现分布式数据库代理的方法及装置 | |
CN101924768B (zh) | 一种分布式rfid中间件的通信控制方法 | |
CN105610605A (zh) | 一种消息反向推送、网管***报警及状态更新的方法 | |
CN106993043B (zh) | 基于代理的数据通信***和方法 | |
CN105635050B (zh) | 数据交互方法及*** | |
CN1939035A (zh) | 用于在计算机设备之间传送数据的方法和设备 | |
CN104079599A (zh) | 一种消息实时同步方法以及集装箱码头作业*** | |
CN110471391A (zh) | 一种智能楼宇管理方法及*** | |
CN102185860A (zh) | 用于集成电路制造设备的标准化底层控制驱动*** | |
CN102448057A (zh) | 一种物联网***及其组网方法 | |
CN108322536A (zh) | 一种基于m2m终端的物联网服务平台 | |
CN104991817A (zh) | 一种信息***可配置集成方法及*** | |
CN104144180A (zh) | 一种物联网管理方法、物联网客户端及物联网平台 | |
CN103796343B (zh) | M2m网关设备及其应用方法 | |
CN101771724A (zh) | 异构分布式信息集成方法、装置及*** | |
CN111201804B (zh) | 启用数据连续***的方法、装置和计算机可读存储介质 | |
CN107579990A (zh) | 合同管理方法及服务器 | |
Abiteboul et al. | The AXML artifact model | |
KR101017824B1 (ko) | 유비쿼터스 환경에서의 공간정보서비스 시스템 및 그 방법 | |
CN105516271A (zh) | 业务处理***、业务处理方法及装置 | |
CN102006178A (zh) | 一种snmp网络管理方法和*** |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |