基于RFID的EPC中间件的设计
扫描二维码
随时随地手机看文章
摘要:本文简述了物联网EPC技术并分析了Savant中间件软件系统的主要功能和框架结构。在深入研究EPCgloabal后,借鉴EPCgloabl的中间件标准ALE,给出了一种Savant中间件软件系统的设计思路,并从逻辑上验证了该系统的完整性与有效性。
关键词:Savant中间件;RFID;物联网;电子产品代码
0 前言
物联网的出现打破了传统的关于物品信息的存储与查询的思维,通过将物理基础设施和IT基础设施统一化,建立起一个本身具有通信能力的交互信息网络,这个网络不仅涵盖生产运行、经济管理,甚至渗透到人们个人生活的各个方面。
在应用物联网RFID技术时,首先面对的问题就是电子标签上数据的获取和有效信息的提取。作为RFID系统的重要组成部分,EPC中间件是数据采集、过滤等处理的主要单元。本文提出了一种中间件的设计思路,使上层开发者在开发RFID应用系统时无需再考虑如何与各种硬件设备交互而直接获取有价值的RFID信息。
1 EPC系统简介
EPC的全称是Electronic Product Code,即产品电子代码,是美国麻省理工学院自动识别中心(Auto-ID中心)提出的。EPC的载体是RFID电子标签,并借助互联网来实现信息传递。EPC系统为每一件商品建立全球唯一的识别标准,实现在全球范围内对商品具体信息的记录与查询,有效提高商品信息的管理水平,以及物流准确性,并且降低物流成本。
EPC系统的信息网络系统是在全球互联网的基础上,通过Savant管理软件系统、ONS对象名称解析服务系统、实体标记语言(PML)实现实物的互联。
Savant中间件的系统协议主要由RFID通信协议、应用事件管理(ALE,Application Level Event)协议等组成。ALE是EPCgobal的中间件标准,是阅读器模块和客户应用程序之间的接口协议。该协议定义了客户可以如何过滤和整合来自读写器的EPC标签,并面向不同的企业应用程序和阅读器定义了统一的接口。ALE的处理过程是:接收来自一个或多个数据源的EPC标签码:根据企业应用程序要求以一定的时间间隔整合数据,过滤重复和不感兴趣的EPC码;根据企业应用程序要求以不同的形式打包发送报告。
2 Savant中间件的功能与结构
在功能上,Savant软件系统利用ONS对象名称解析服务并调用PML服务器上的标签应用信息供Savant上层应用软件使用,所以Savant软件系统在结构上有一些用于ONS对象名称解析服务的专用接口。
处理模块与外部EPC系统的联系通过规范定义的接口,即阅读器接口和应用软件接口来实现。阅读器接口提供与标签阅读器的连接,Sav-ant通过该接口和阅读器建立连接,向阅读器发送各种命令。
按照SavantSpecification 1.0标准的描述,Savant软件系统就是处理模块与各接口模块的集成容器,其各个接口模块均有一定的标准,而能用于用户开发的是Savant软件系统的处理部分。根据功能的需要,能够得到Savant中间件软件的大体结构:
图1模型的基本功能在于其中处理模块通过输入接口模块与输出接口模块与阅读器和上层应用软件进行联系。Savantqp间件系统是一个开放式系统,其用户定义的处理模块是功能实现的主要体现部分,提供各种用户要求的功能。在输入端,Savant中间件系统主要工作是对阅读器所采集到的电子标签信息进行收集和处理,或者根据自身内部设定的命令对阅读器输出反馈指令;在输出端,其面对的是上层应用软件的调用,或者是通过ONS对象名解析服务对PML服务器上的相应商品信息进行读取。
由上可知,Savant中间件起的是连接阅读器系统与上层应用或者信息存储系统作用,因此对其设计主要在于完成信息的处理、过滤、暂存与计算。
3 Savant中间件系统的实现
本文实现Savant中间体软件系统的主要功能:a.过滤;b.定量信息存储:c.解析;d.接口控制。
3.1 过滤功能
根据第2节中所述的基本模型,并考虑到整个系统的工作效率,过滤程序应该是系统中最先工作的模块。
一个Savant软件系统是服务于特定厂商或者是针对特定类型商品的软件,所以参考TCP/IP协定中局域网IP地址子网掩码过滤处理,只需要通过一段掩码,将该系统所服务的厂商或者所针对的特定类型商品过滤出来。将特定厂商或商品掩码与原始EPC标签代码信息通过一定的逻辑运算结合起来,即可以达到过滤信息的作用。如图2所示。
3.2 解析功能
为了方便读取PML服务器上的标签信息,需将EPC代码解析成ONS服务可识别的地址域名格式。根据该解析过程的规范化的要求,利用格式化转换字符串将EPC二进制代码转换成对应的PML文件地址。
类似于普通的Internet域名地址,存储于PML服务器上的商品信息域名地址也有着标准的域名结构。EPC地址域名由EPC域前缀名与EPC域后缀名组成。而且当前使用的EPC域后缀名为一个固定的根域名:epc.objid.net。这个翻译的过程需要引入标准的域名格式,即格式化字符串。
举例说明如下:
格式化字符串由1、2、3、4组成,分别表示该位所占EPC编码中的位数
例如对于16位的EPC码,其格式化字符串可以是
1.44.3.11.2(0+1+4+4+3+1+1+2=16)
即如果这个16位的EPC码是:1001111010110010,放入格式化字符串的形式下成为了:
(1)(0011)(1101).(011).(0)(0).(10)=1.3D.3.00.2即成为EPC域前缀名。
即该1 6位E P C代码的P M L域名地址为1.3D.3.00.2.epc.objid.net。
有了格式化字符串的标准转换功能,EPC电子标签代码可唯一且一一对应地转化成PML域名地址。
3.3 存储与查询功能
由于不同的厂商或商品在种类、数量、需求量以及关注程度上都有所不同,如果每次检测标签时均向PML服务器提取信息,不仅会由于PML服务器的数据过大而降低提取效率,同时在传输过程中也容易有所延迟与损耗。因此Savant中间件软件系统需存储一定量的简单信息伴随EPC的具体信息,以便上层应用软件的读取,提升数据读取效率。
本文选择FIFO(先进先出)的存储方式进行有限存储空间的利用。
对于FIFO的实现,基本上是做结构体的向前移位操作,将在结构体数组中位置为i的结构体的内部数据完整地赋值给位置为i-1的结构体。对于最后位置的结构体,团PM-1位置,则是最新的赋值,而对于原始的第一个结构体,即0位置,会被覆盖。这个过程并不是一直无限进行下去,会有一个接口控制变量来决定是否进行移位。
3.4 接口控制功能
在Savant中间件软件系统中,需要加入接口模块与外部情况加以联系。如图3所示。
该接口模块不仅接收诸如PML服务器所传输的和阅读器所传输的信号,同时为上层应用软件提供读取信息的标志字,并且对Savant软件系统的内部模块进行控制。
在Savant中间件软件系统的内部模块之间也存在着相互控制的情况,需确定对外部情况进行联系的外部控制字以及关系到信息在系统内部传输的内部控制字。
3.5 带接口控制的整体Savant中间件软件系统结构
加入有效的控制字后,Savant中间件软件系统的功能变得完整,可以完成所需的过滤、解析、暂存等功能。依照前文所述的系统结构以及内部功能模块,本文画出了Savant中间件软件系统所集成的文正逻辑系统。如图4所示。
图4(a)逻辑程序块的主要任务集成了过滤功能与解析功能,当完成过滤后,确定该电子标签代码有效,即可进行解析操作,不需要在过滤与解析功能之间添加其他控制变量或控制信息。在完成图4(a)模块后,需要向PML服务器输出解析后的PML域名地址信息,并等待PML服务器返回该电子标签相应商品的具体信息,即进入图4(b)程序模块所代表的存储环节。由于本文采用的FIFO存储模式,需要在新的商品信息存储之前,调整存储空间中已有信息的位置,所以当图4(b)程序模块结束后,具体信息首先暂存在Savant中间件软件系统的另外开辟的存储缓冲区,并应当加入存储控制字,当该控制字有效后,存储空间进行FIFO调整,然后从另外开辟的存储缓冲区中取出待存储的信息存放至FIFO存储空间的最后位。以上即是Savant中间件软件系统的逻辑控制,三部分的逻辑控制流程图如图5所示。
4 结语
完成了Savant中间件软件系统的逻辑设计与编程设计之后,在软件平台上利用testbench文件对这些模块进行验证检验。检验结果表明所设计的savant中间件软件系统能对EPC电子标签数据进行有效地处理。