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)清点和访问操作的结果