论文部分内容阅读
摘要:该文给出了使用Agent来封装隐藏底层设备编程接口差异的方法,使用XML消息来统一设备间、设备与软件组件间的通信机制,提出一套基于Agents和XML消息的RFID中间件构建的应用系統框架。
关键词:RFID中间件;agent;XML消息
中图分类号:TP311文献标识码:A 文章编号:1009-3044(2008)36-2719-01
Study and Implementation of RFID Middleware Technology
CAI Chuan-zhong
(Anhui Institute of Architecture and Industry ,Hefei 230022,China)
Abstract: This article presents the method of using agent to hide the programming interface differences between the underlying device, the communication mechanism of using XML message to Unify between devices, equipment and software Component ,and put forward a set of applications system framework built by the RFID middleware based agents and XML message.
Key words:RFID middleware; agent; XML message
无线射频识别技术(radio frequency identification)是利用射频通信实现的非接触式自动识别目标对象并获取目标对象相关信息的,是自动识别领域的重要分支。目前RFID技术已被广泛应用于制造、物流、医疗、交通运输、零售、国防、安全等众多领域。
然而企业在选用RFID系统的时候,不同厂商生产的RFID产品具有不同的编程接口,现有企业应用系统组件如何同RFID系统相结合,成为企业成功应用RFID系统的瓶颈和障碍。而中间件可以屏蔽不同厂商RFID设备的多样性和复杂性,提供统一编程接口,使各种系统之间可以相互操作,为后台业务系统提供强大支撑,从而可以驱动更为广泛、更为丰富的RFID应用,可称为是RFID运作的“神经中枢”。本文主要针对如何屏蔽硬件设备不同的编程接口问题,使用Agents作为硬件设备代理提供统一编程界面,硬件设备之间通过XML消息进行交互使得硬件设备或应用系统彼此之问可以相互操作,从而设计实现了一套使用Agents代理和XML消息的RFID中间件。
1 主要技术
1.1 Agent
在开发RFID应用中涉及到不同厂商的RFID读写器、标签打印机等产品,还要考虑到与其他系统的结合,例如与视频监控系统、现有企业ERP、SCM 系统的结合,要围绕数据库来保存和读取信息,还要提供可视化图形界面给用户。如何对RFID应用中涉及到的这些产品、实体与系统进行建模,成为RFID中间件设计的重要问题。在本文中对这些概念进行统一建模,每种产品、实体与系统都作为一个Agent,每个Agent负责自己所负责的产品、实体或系统的操作与交互。而对于外部应用则提供统一的编程接口。RFID应用开发基于Agents提供的编程接口进行开发,使得具体的应用逻辑与特定的底层设备、实体或系统无关。
Agent为代理基类,提供了统一的编程接口。发布一种消息类型(Publish)、注册一种消息类~(Subscribe)、传送一则消息到指定地址(该操作会返回一则对应的消息,对应Send)、发送一则消息到指定地址(该操作不返回消息,对应Post)和处理收到的消息(pro~esssmessage1。代理之间的不同主要体现在每个代理因抽象的实体不同而导致处理的消息种类不同以及对特定消息的处理方式不同。一种代理处理一组特定的消息类型。各派生子类都要针对其所抽象的实体定义一组与该实体相关的特定的消息类型,并且在processnlessage函数中对这些消息进行处理。在Agent内部,有一个传输类(transport)来提供所有的通信功能,该传输类主要提供两种类型的通信功能:1)点对点方式,主要针对单一通信需求(例如发送一条命令打开读写器);2)多播方式,主要针对有多个接受方的通信需求(例如一个读写器关闭,所有对读写器状态敏感的代理都将收到该消息)。在传输类在实现时有两种类型的套接字:l1UDP套接字(UDPSocket),用来处理点对点的单一通信方式;21多播套接字(MCSocket),用来处理多播通信功能.实现时各接收方首先注册到特定消息组。当有代理发布特定消息时,该多播套接字就将该消息发布到特定消息组里的各接收代理。无论是点对点方式或是多播方式,当代理接收到消息的时候,其内部的传输类会委托一个XML消息翻译类(XML Translator)来将收到的XML消息转换为特定的消息对象(parse函数完成该功能),以备代理处理该消息。
1.2 XML消息
RFID应用中涉及到的产品、实体与系统之间需要通信交互,以完成命令控制和数据交互,而不同的产品、系统有着不同的数据格式要求,而且通信机制和通信协议也不尽相同。统一各产品、实体或系统之问的交互数据格式和通信机制,对于RFID 应用的快速开发具有重要的意义。本文使用XML消息来统一数据格式,在基于UDP/IP的网络环境中进行通信,有效地解决了数据格式和通信协议不一致的问题。与读写器代理相关的一组消息中每种消息都包括消息头和消息体两部分,消息头消息包含在Message类里面,相应的消息体信息则包含在MessageBody类里面。Message类和MessageBody类都包含一个方法,用于将该消息转换为对应的XML字符串。转换后的XML字符串在网络中进行传输,在接收代理接收该XML字符串后,该代理使用内部的XML翻译类来将该XML字符串转换为相应的消息类对象。为了使XML翻译类能够将各种消息对应的XML字符串转换为对应的消息类对象,各MessageBody派生子类须满足以下规定:1)在其构造器中设置”MessageType”字段以标识该特定消息的种类;2)为其每个属性都实现一个相应的方法,该方法接收一个代表该属性值的字符串为参数。将该属性设置为相应的值。
2 系统设计
以某仓库管理系统的系统架构为例,其中使用了Agents和XML消息的RFID中间件的组成通过使用读写器代理。隐藏了读写器之间的编程接口的差别。应用程序对读写器的操作与具体厂商的读写器编程接口无关.使得继续添加其他厂商的读写器变得简单:标签打印机代理也是如此:通过应用代理,使得RFID技术与现有的应用系统实现无缝连接,应用代理为各应用系统提供所需的数据信息;数据库代理屏蔽了各种不同的数据库管理系统的差别,提供统一的数据库操作接口。该仓储管理系统使用的是Microsoft SQL Server数据库管理系统:通过界面代理.实现了可视化界面对各种设备和应用组件的操作和通信:摄像头代理实现了视频图像的采集与摄像头操作,为仓储管理系统提供图像资料数据。各种设备与软件之间通过基于UDP/IP网络上传输的XML消息进行通信。
3 系统实现
在基于代理和XML消息的RFID中问件的基础上开发实现的RHD仓储管理系统主要是针对企业生产实践中的产品出入库管理设计。用标签来标示各种实体。包括货架、叉车和操作员,在仓库门上布置了读写器,当操作员驾驶装载有货架的叉车通过仓库大门时.通过读写器读取到与操作员、叉车和货架相关的标签信息.之后查询数据库得到相应的实体信息.记录该次出入库操作,并辅助有摄像头作监控,记录出入库时的视频信息。出入库记录可用于之后与企业其他应用系统(ERP系统、SCM系统等)结合,并产生出入库统计,与企业生产管理相结合。RFID仓储管理系统,可以用总控制台来控制各种设备.包括打开和关闭仓库大门上的读写器。添加和删除读写器;添加和删除标签打印机,控制标签打印机打印标签信息;连接和断开数据库,执行数据库奋询;开肩和关闭摄像头,采集视频数据数据库面板中的具体数据库管理系统来管理相应的数据库。本系统采用的Microsoft SQL Server数据库管理系统读写器面板中包含现在已经启动的读写器列表,點击相应的读写器,可以设置该读写器的相应属性,包括记录标签的事件类型、记录标签的种类和读写器的读写周期,设置对读写器采集的标签数据是否过滤。标签打印机面板包括系统中已经启用的标签打印机.通过相应的控制面板可以完成相应的打印机操作。通过该系统实现,可以看到使用基于代理和XML消息的RFID中间件可以快速的进行RFID应用系统的开发,节省了系统开发时间,降低了系统开发难度。
4 结束语
本文通过使用Agents很好地解决了不同的RF1D底层设备具有不同的编程接口对RFID应用系统开发难度的影响问题,使用设备代理,提供了统一编程界面。使用XML消息进行交互,使得不同设备具有不同的数据格式和通信协议、不同的软件组件要求不同形式的数据问题得到了有效的解决,得设备或软件彼此之间可以相互操作。这套使用代理和XML消息的RFID中间件,可以用于快速开发RFID应用系统,实现与现有系统的无缝连接,具有灵活性、可扩展性和容错性的特点。
参考文献:
[1] 单玉峰.射频识别(RFID) 原理与应用[M].北京:电子工业出版社,2008:23-67.
[2] 刘发贵,蒋瑞林,胡耀民.RFID中间件及其仓储管理的应用[J].计算机工程,2006,32(13):272-276.
[3] 邓海生,李军怀.RFID中间件研究与设计[J].计算机技术与发展,2008,18(11):55-57.
[4] 张智文.射频识别技术理论与实践[M].北京:中国科学技术出版社,2008:145-213.
关键词:RFID中间件;agent;XML消息
中图分类号:TP311文献标识码:A 文章编号:1009-3044(2008)36-2719-01
Study and Implementation of RFID Middleware Technology
CAI Chuan-zhong
(Anhui Institute of Architecture and Industry ,Hefei 230022,China)
Abstract: This article presents the method of using agent to hide the programming interface differences between the underlying device, the communication mechanism of using XML message to Unify between devices, equipment and software Component ,and put forward a set of applications system framework built by the RFID middleware based agents and XML message.
Key words:RFID middleware; agent; XML message
无线射频识别技术(radio frequency identification)是利用射频通信实现的非接触式自动识别目标对象并获取目标对象相关信息的,是自动识别领域的重要分支。目前RFID技术已被广泛应用于制造、物流、医疗、交通运输、零售、国防、安全等众多领域。
然而企业在选用RFID系统的时候,不同厂商生产的RFID产品具有不同的编程接口,现有企业应用系统组件如何同RFID系统相结合,成为企业成功应用RFID系统的瓶颈和障碍。而中间件可以屏蔽不同厂商RFID设备的多样性和复杂性,提供统一编程接口,使各种系统之间可以相互操作,为后台业务系统提供强大支撑,从而可以驱动更为广泛、更为丰富的RFID应用,可称为是RFID运作的“神经中枢”。本文主要针对如何屏蔽硬件设备不同的编程接口问题,使用Agents作为硬件设备代理提供统一编程界面,硬件设备之间通过XML消息进行交互使得硬件设备或应用系统彼此之问可以相互操作,从而设计实现了一套使用Agents代理和XML消息的RFID中间件。
1 主要技术
1.1 Agent
在开发RFID应用中涉及到不同厂商的RFID读写器、标签打印机等产品,还要考虑到与其他系统的结合,例如与视频监控系统、现有企业ERP、SCM 系统的结合,要围绕数据库来保存和读取信息,还要提供可视化图形界面给用户。如何对RFID应用中涉及到的这些产品、实体与系统进行建模,成为RFID中间件设计的重要问题。在本文中对这些概念进行统一建模,每种产品、实体与系统都作为一个Agent,每个Agent负责自己所负责的产品、实体或系统的操作与交互。而对于外部应用则提供统一的编程接口。RFID应用开发基于Agents提供的编程接口进行开发,使得具体的应用逻辑与特定的底层设备、实体或系统无关。
Agent为代理基类,提供了统一的编程接口。发布一种消息类型(Publish)、注册一种消息类~(Subscribe)、传送一则消息到指定地址(该操作会返回一则对应的消息,对应Send)、发送一则消息到指定地址(该操作不返回消息,对应Post)和处理收到的消息(pro~esssmessage1。代理之间的不同主要体现在每个代理因抽象的实体不同而导致处理的消息种类不同以及对特定消息的处理方式不同。一种代理处理一组特定的消息类型。各派生子类都要针对其所抽象的实体定义一组与该实体相关的特定的消息类型,并且在processnlessage函数中对这些消息进行处理。在Agent内部,有一个传输类(transport)来提供所有的通信功能,该传输类主要提供两种类型的通信功能:1)点对点方式,主要针对单一通信需求(例如发送一条命令打开读写器);2)多播方式,主要针对有多个接受方的通信需求(例如一个读写器关闭,所有对读写器状态敏感的代理都将收到该消息)。在传输类在实现时有两种类型的套接字:l1UDP套接字(UDPSocket),用来处理点对点的单一通信方式;21多播套接字(MCSocket),用来处理多播通信功能.实现时各接收方首先注册到特定消息组。当有代理发布特定消息时,该多播套接字就将该消息发布到特定消息组里的各接收代理。无论是点对点方式或是多播方式,当代理接收到消息的时候,其内部的传输类会委托一个XML消息翻译类(XML Translator)来将收到的XML消息转换为特定的消息对象(parse函数完成该功能),以备代理处理该消息。
1.2 XML消息
RFID应用中涉及到的产品、实体与系统之间需要通信交互,以完成命令控制和数据交互,而不同的产品、系统有着不同的数据格式要求,而且通信机制和通信协议也不尽相同。统一各产品、实体或系统之问的交互数据格式和通信机制,对于RFID 应用的快速开发具有重要的意义。本文使用XML消息来统一数据格式,在基于UDP/IP的网络环境中进行通信,有效地解决了数据格式和通信协议不一致的问题。与读写器代理相关的一组消息中每种消息都包括消息头和消息体两部分,消息头消息包含在Message类里面,相应的消息体信息则包含在MessageBody类里面。Message类和MessageBody类都包含一个方法,用于将该消息转换为对应的XML字符串。转换后的XML字符串在网络中进行传输,在接收代理接收该XML字符串后,该代理使用内部的XML翻译类来将该XML字符串转换为相应的消息类对象。为了使XML翻译类能够将各种消息对应的XML字符串转换为对应的消息类对象,各MessageBody派生子类须满足以下规定:1)在其构造器中设置”MessageType”字段以标识该特定消息的种类;2)为其每个属性都实现一个相应的方法,该方法接收一个代表该属性值的字符串为参数。将该属性设置为相应的值。
2 系统设计
以某仓库管理系统的系统架构为例,其中使用了Agents和XML消息的RFID中间件的组成通过使用读写器代理。隐藏了读写器之间的编程接口的差别。应用程序对读写器的操作与具体厂商的读写器编程接口无关.使得继续添加其他厂商的读写器变得简单:标签打印机代理也是如此:通过应用代理,使得RFID技术与现有的应用系统实现无缝连接,应用代理为各应用系统提供所需的数据信息;数据库代理屏蔽了各种不同的数据库管理系统的差别,提供统一的数据库操作接口。该仓储管理系统使用的是Microsoft SQL Server数据库管理系统:通过界面代理.实现了可视化界面对各种设备和应用组件的操作和通信:摄像头代理实现了视频图像的采集与摄像头操作,为仓储管理系统提供图像资料数据。各种设备与软件之间通过基于UDP/IP网络上传输的XML消息进行通信。
3 系统实现
在基于代理和XML消息的RFID中问件的基础上开发实现的RHD仓储管理系统主要是针对企业生产实践中的产品出入库管理设计。用标签来标示各种实体。包括货架、叉车和操作员,在仓库门上布置了读写器,当操作员驾驶装载有货架的叉车通过仓库大门时.通过读写器读取到与操作员、叉车和货架相关的标签信息.之后查询数据库得到相应的实体信息.记录该次出入库操作,并辅助有摄像头作监控,记录出入库时的视频信息。出入库记录可用于之后与企业其他应用系统(ERP系统、SCM系统等)结合,并产生出入库统计,与企业生产管理相结合。RFID仓储管理系统,可以用总控制台来控制各种设备.包括打开和关闭仓库大门上的读写器。添加和删除读写器;添加和删除标签打印机,控制标签打印机打印标签信息;连接和断开数据库,执行数据库奋询;开肩和关闭摄像头,采集视频数据数据库面板中的具体数据库管理系统来管理相应的数据库。本系统采用的Microsoft SQL Server数据库管理系统读写器面板中包含现在已经启动的读写器列表,點击相应的读写器,可以设置该读写器的相应属性,包括记录标签的事件类型、记录标签的种类和读写器的读写周期,设置对读写器采集的标签数据是否过滤。标签打印机面板包括系统中已经启用的标签打印机.通过相应的控制面板可以完成相应的打印机操作。通过该系统实现,可以看到使用基于代理和XML消息的RFID中间件可以快速的进行RFID应用系统的开发,节省了系统开发时间,降低了系统开发难度。
4 结束语
本文通过使用Agents很好地解决了不同的RF1D底层设备具有不同的编程接口对RFID应用系统开发难度的影响问题,使用设备代理,提供了统一编程界面。使用XML消息进行交互,使得不同设备具有不同的数据格式和通信协议、不同的软件组件要求不同形式的数据问题得到了有效的解决,得设备或软件彼此之间可以相互操作。这套使用代理和XML消息的RFID中间件,可以用于快速开发RFID应用系统,实现与现有系统的无缝连接,具有灵活性、可扩展性和容错性的特点。
参考文献:
[1] 单玉峰.射频识别(RFID) 原理与应用[M].北京:电子工业出版社,2008:23-67.
[2] 刘发贵,蒋瑞林,胡耀民.RFID中间件及其仓储管理的应用[J].计算机工程,2006,32(13):272-276.
[3] 邓海生,李军怀.RFID中间件研究与设计[J].计算机技术与发展,2008,18(11):55-57.
[4] 张智文.射频识别技术理论与实践[M].北京:中国科学技术出版社,2008:145-213.