基于低级别读写器协议的无线射频识别中间件系统
无线射频识别(RFID)是一种通过无线射频方式进行非接触双向数据通信对目标加以识别的技术,具有快速、准确、可靠的特点。与传统的识别方式相比,RFID技术无需直接接触、无需光学可视、无需人工干预即可完成信息的输入和处理,操作十分方便快捷,因而能够广泛应用于生产、物流、交通、运输、医疗、防伪、跟踪、设备和资产管理等需要收集和处理数据的应用领域。自从RFID问世以来,其技术和产业都得到了迅速的发展,并已开始在工业自动化、商业自动化、交通运输控制管理等众多领域得到应用,成为IT产业一个新的经济增长点,具有十分广阔的市场发展前景。从RFID 的技术与应用的发展趋势来看,RFID 应用具有标识、定位与事件驱动等特点。通过标识与定位,使人类在虚拟的网络世界中识别、锁定和控制被标记物体成为一种可能。通过RFID实时产生的事件,可以驱动业务流程,实现业务流程的智能化与自动化。
RFID中间件扮演RFID标签和应用程序之间的中介角色,应用程序端使用中间件所提供的一组通用应用程序接口(API),可以连接到RFID读写器,读取RFID标签数据。这样一来,即使存储RFID标签信息的数据库软件或后端发生变化,如应用程序增加、替换或者RFID读写器数量、种类变化等情况发生时,应用端不需修改也能处理,避免多对多连接的维护复杂性。
1 RFID网络框架及中间件系统功能
在全球产品电子代码管理中心(EPCglobal)定义的RFID网络框架中,包含了RFID标签、RFID读写器、RFID中间件、RFID读写器管理、电子产品码信息服务(EPCIS)捕获应用、EPCIS存储、EPCIS访问应用、本地对象命名服务(ONS)等角色以及ONS根节点、EPC发放、标签信息转换模型、标签信息发现等公共服务[1-3].
如图1所示,RFID中间件系统位于EPCIS捕获应用(例如企业资源计划(EPR)系统等)和RFID读写器之间,根据EPCIS捕获应用设置的规则将从读写器获取的标签信息进行过滤和聚集,并按照其指定的格式和方式上报。
RFID中间件3个主要的功能:
(1)屏蔽读写器的接口差异:传统的读写器厂商都通过提供一套驱动程序来实现应用层软件对设备的控制,这些驱动程序提供了相同的设备访问功能,但各厂商之间却拥有互不相容的控制模块、命令参数甚至是支持不同空口协议。而且当厂商的驱动程序更新时,相对上层的应用软件也不得不随着相应API的改变而改变,尤其是当使用者同时使用了大量不同厂商的设备时,整体的维护成本也随之增加。RFID中间件屏蔽了读写器接口和驱动的细节,向应用系统提供了标准的ALE报告接口,使应用系统不必关心各个物理设备的具体接口和驱动,而是集中精力关注应用业务逻辑的实现。
{$page$}
(2)标签的过滤:在RFID网络中,存在大量的读写器和标签。对于一个特定的应用系统,它只会关注与其业务相关的读写器清点的标签。RFID中间件可以根据应用系统设置的ALE规则,过滤掉应用系统不关注的标签信息,大大减轻应用系统对标签信息的处理量,提高应用系统的处理效率。
(3)标签的聚集:提到标签的聚集,首先要说明逻辑读写器的概念。逻辑读写器可以包含一个或多个物理读写器,或者一个或者多个物理读写器的天线。应用系统可以通过定义逻辑读写器,使RFID中间件按其需要的方式,对RFID标签进行聚集和分组。例如某个门禁系统,在大门入口包含两个物理阅读器的天线,应用系统可以将这两个天线定义为一个名叫“大门入口”的逻辑读写器。RFID中间件在上报标签信息的时候,可以将两个天线清点的标签聚集在“大门入口”逻辑阅读器的分组中,方便应用系统对标签信息进行处理。
2 LLRP协议与ALE协议
在EPCglobal标准体系中,与中间件最相关的两个协议是LLRP与ALE协议,LLRP之所以被称为低级别,是由于其提供了对空口操作和空口协议命令参数的控制能力,提供更底层读写器操作的访问能力。ALE是EPCglobal定义的RFID应用系统和RFID中间件之间的接口规范,通过ALE接口,从应用程序端使用中间件有了一组API,通常RFID中间件接口定义了一个相对稳定的高层应用环境,不管底层的计算机硬件和系统软件怎样更新换代,只要将中间件升级更新,并保持中间件RFID采集系统的接口定义不变,应用软件几乎不需任何修改,从而保护企业在应用软件开发和维护中的重大投资。同时,使用RFID中间件有助于减轻企业二次开发时的负担,使他们升级现有软件系统时显得得心应手,同时能保证软件系统的相对稳定,及对软件系统的功能扩展等,简化了开发的复杂性等。
LLRP是EPCglobal公布的第二代读写器协议,定义了RFID读写器和客户端之间的接口。与上一代读写器协议相比,LLRP更接近读写器运行时所需的空口协议的细节,或者更明确的说是对EPCglobal Class1 Gen2协议中读写器参数和控制参数的支持。LLRP除了目前对EPCglobal C1G2的支持外,其架构也提供相应的扩展能力,可以方便的支持未来其他空口协议。
从LLRP接口的具体职责上来看,主要包括如下职责:
(1)提供方法,用来操作RFID读写器进行清点、读、写等动作,以及执行其它相关协议中的命令,如杀、锁等
(2)提供方法,在对标签进行操作时,获得健壮性报告和进行错误处理
(3)提供方法,用来在操作命令需要时传输标签密码
(4)提供方法,用来控制前向反向的无线射频(RF)链路操作,包括管理RF功率和反向灵敏度,在多读写器环境中评估冲突
(5)提供方法,用来控制标签协议操作,包括协议参数和防碰撞算法的参数
(6)提供方法,使之更易于支持新的空口协议
(7) 提供方法,用来恢复读写器出厂设置
(8)提供方法,用于读写器生产厂商在一定范围内扩展协议
{$page$}
ALE是EPCglobal定义的RFID应用系统和RFID中间件间的接口规范,包含标签内存区管理API、ALE读API、ALE写API、ALE逻辑读写器API和访问控制API共5组接口及业务功能。
(1)标签内存区管理API:包括defineTMSpec,undefineTMSpec,getTMSpec,getTMSpecNames等API,给应用系统提供了定义逻辑上的标签内存区的能力,使其可以定义其关心的RFID标签区域。
(2)ALE读API:包括define,undefine,getECSpec,getECSpecNames,subscribe,unsubscribe,poll,immediate,getSubscribers等API,给应用系统提供了定义读标签事件规则,订阅事件报告的能力,使其可根据自身业务逻辑需要,定义相应的事件规则,获取包含标签信息的事件报告。
(3)ALE写API:包括define,undefine,getECSpec,getECSpecNames,subscribe,unsubscribe,poll,immediate,getSubscribers等API,作用和ALE读API相似,不同的是这组API提供的是写标签的能力。
(4)ALE 逻辑读写器API:包括define,update,undefine,getLogicalReaderNames,getLRSpec,addReaders,setReaders,removeReaders,setProperties,getPropertyValue等API,给应用系统提供了定义逻辑读写器,修改逻辑读写器属性的能力。
(5)访问控制API:包括definePermission,updatePermission,undefinePermission,defineRole,updateRole,undefineRole,addPermissions,setPermissions,removePermissions,defineClientIdentity,updateClientIdentity,undefineClientIdentity, addRoles, removeRoles, setRoles等API,提供了设置角色,权限相关的安全方面的功能。
通过实现ALE规定的这5类API,中间件不但可以屏蔽阅读器的物理位置信息,还可以实现标签信息的过滤和聚集,使应用系统可以把主要的精力放在业务逻辑的处理上。
3 RFID中间件系统实现原理
RFID中间件系统根据EPCIS捕获应用设置的规则将从读写器获取的标签信息进行过滤和聚集,并按照其指定的格式和方式上报,其架构如图2所示,主要由设备驱动适配,规则引擎,事件处理引擎,规则库组成。
RFID中间件系统各个模块功能如下:
(1)设备驱动适配:设备驱动适配的主要功能是将各个读写器厂商不同型号、版本的读写器接口适配成对事件处理引擎统一的接口。各种标签数据和读写器事件经过设备驱动适配模块处理后,对事件处理引擎表现出统一的数据格式,使事件处理引擎可以不关心各个厂商读写器的具体接口。
(2)事件处理引擎:对读写器上报的标签数据和读写器事件进行过滤、分组、合成等操作,以便满足EPCIS捕获应用的需要。
(3)规则引擎:处理来自EPCIS捕获应用的规则,并将事件处理引擎处理后的信息,以标准的ALE接口上报给EPCIS捕获应用。
(4)规则库:用于对EPCIS捕获应用设置的规则进行持久化,以便在RFID系统重新启动时,即时加载已经设置成功的事件规则。
这种RFID中间件系统的架构,通过设备驱动适配模块,很好地实现了屏蔽读写器接口差异的功能。但是同时也存在一个很大的弊端,就是针对不同厂商的不同读写器型号,甚至是同一读写器型号的不同版本,都要开发其对应的设备驱动适配模块。由于定制开发需要的周期较长,所以这种架构的RFID中间件系统,不利于快速集成。
4 LLRP协议的实现及其优势
在RFID网络架构中,LLRP处于中间件和读写器之间。在架构上,中间件以下的部分可分为3个功能组:
(1)数据分支:标签数据处理
(2)管理分支:读写器设备管理
(3)控制分支:读写器控制和协作
LLRP涉及这3个分支的处理。
从图3可以看到,基于LLRP的RFID中间件系统,不再有针对各个厂商不同接口读写器的适配模块,而是统一采用LLRP操作和控制各个读写器进行标签的清点,读写等操作。
随着诸如超高频(UHF) C1G2等空口协议的成熟,以及读写器的大量使用,读写器的控制和协作就显得尤为重要。LLRP通过直接将空口协议相关的控制方法暴露给中间件的方式,来改进控制分支的功能;同时,LLRP也支持多空口协议以方便扩展。
如图4所示,LLRP使用消息在中间件和读写器间进行通信,消息是一种协议数据单元。按照消息传递的方向来分:
从中间件到读写器的消息包括:
(1)获取和设置读写器配置信息
(2)读写器能力获取
(3)管理读写器清点和访问操作
从读写器到中间件的消息包括:
(1)读写器状态报告
(2)射频监测信息
(3)清点和访问操作的结果
{$page$}
而对读写器具体的操作命令参数,则是通过LLRP的各种规格来声明。同样按照命令的发送方向来看:
由中间件发送给读写器的命令,包括:
(1)读写器操作:定义了清点参数和射频测量参数
(2)标签访问操作:定义了对标签访取操作。
由读写器返回给中间件的命令,包括:
(1)标签操作和射频测量的报告
(2) 事件通知:如跳频、缓存溢出等情况
(3)心跳消息:周期消息,监测与中间件之间的连接情况
5 结束语
RFID中间件系统位于EPCIS捕获应用和RFID读写器之间,根据EPCIS捕获应用设置的规则将从读写器获取的标签信息进行过滤和聚集,并按照其指定的格式和方式上报。传统的RFID中间件系统架构,可以通过设备驱动适配模块屏蔽读写器的接口差异,但是不利于快速进行集成。基于LLRP的RFID中间件系统,不再有针对各个厂商不同接口读写器的适配模块,而是统一采用LLRP操作和控制各个读写器进行标签的清点,读写等操作,可以快速集成设备,从而构建RFID系统。
6 参考文献
[1] EPCglobal Inc. The EPCglobal architecture framework, EPCglobal final version 1.3[S]. 2009.
[2] EPCglobal Inc. The application level events (ALE) specification, version 1.1, Part I: Core specification[S]. 2008.
[3] EPCglobal Inc. Low level reader protocol (LLRP), version 1.0.1[S]. 2007.