首页 理论教育 RFID中间件的作用和应用场景

RFID中间件的作用和应用场景

时间:2023-06-25 理论教育 版权反馈
【摘要】:同时,中间件还可提供与其他RFID支撑软件系统进行互操作等功能。

RFID中间件的作用和应用场景

物联网是把所有的物体通过各种网络连接起来,实现任何物体、任何人、任何时间、任何地点的智能化识别、信息交换与管理。从技术架构上来看,物联网可分为感知层、网络层、应用层。在这里中间件平台实现各种传感器和RFID硬件设备与应用系统之间数据传输、过滤、数据格式转换的一种中间程序,它降低了应用开发的难度,使得开发者不需要直接按面对底层架构,而通过中间件进行调用。在物联网中,软件是灵魂,中间件技术就是灵魂的核心。

978-7-111-55124-9-Chapter06-1.jpg

图6-1 物联网网络结构

如图6-1所示为EPC物联网系统,EPC系统是一个非常先进、综合和复杂的系统,其最终目标是为每一个单品建立全球的、开放的标识标准。它主要由EPC标签、读写器、SAVANT(RFID中间件)、对象名解析服务(ONS)、信息服务(EPCIS)5部分组成。而物联网中的中间件SAVANT在架构中起着关键部件的作用,SAVANT扮演RFID标签和应用程序之间的中介角色,从应用程序端使用中间件所提供一组通用的应用程序接口(Application ProgrammingInterface,API),即能连到RFID读写器,读取RFID标签数据。这样一来,即使存储RFID标签数据的数据库软件或后端应用程序增加或改由其他软件取代,或者读写RFID读写器种类增加等情况发生时,应用端不需修改也能处理,省去多对多连接的维护复杂性问题。由此可见,SAVANT是衔接相关硬件设备和业务应用的桥梁,主要实现屏蔽异构性、实现互操作和信息的预处理等。

(1)屏蔽异构性

异构性表现在计算机的软硬件之间的异构性,包括硬件(CPU和指令集、硬件结构、驱动程序等)、操作系统(不同操作系统的API和开发环境)、数据库(不同的存储和访问格式)等。造成异构的原因源自市场竞争、技术升级以及保护投资等因素。物联网中的异构性主要体现在以下几方面:

1)物联网中底层的信息采集设备种类众多,如传感器、RFID、二维码、摄像头以及GPS等,这些信息采集设备及其网关拥有不同的硬件结构、驱动程序、操作系统等。

2)不同的设备所采集的数据格式不同,这就需要中间件将所有这些数据进行格式转化,以便应用系统可直接处理这些数据。

(2)实现互操作

在物联网中,同一个信息采集设备所采集的信息可能要供给多个应用系统,不同的应用系统之间的数据也需要相互共享和互通。但是因为异构性,不同应用系统所产生的数据结果取决于计算环境,使得各种不同软件之间在不同平台之间不能移植,或者移植非常困难。而且,因为网络协议和通信机制的不同,这些系统之间还不能有效地相互集成。通过中间件可建立一个通用平台,实现各应用系统、应用平台之间的互操作。

(3)数据的预处理

物联网的感知层将采集海量的信息,如果把这些信息直接传输给应用系统,那么应用系统对于处理这些信息将不堪重负,甚至面临崩溃的危险。而且应用系统想要得到的并不是这些原始数据,而是对其有意义的综合性信息。这就需要中间件平台将这些海量信息进行过滤,融合成有意义的事件再传给应用系统。

SAVANT是一个物联网中的中间件,它的主要作用是用来加工和处理来自一个或者多个解读器的所有信息和事件流,它是处在阅读器和计算机互联网之间的一种中间件系统,对标签解读器和企业应用程序的连接起着纽带的作用,代表应用程序提供一系列的计算功能。为了减少发往信息网络系统的数据量以及防止错误识读、漏读或者多读信息,SAVANT会对标签数据进行过滤、分组、计数。中间件(SAVANT)是物联网的神经系统,是一种企业通用的管理EPC数据架构。它可以被灵活地安装在商店、本地配送中心,区域或者全国范围内的数据中心,来实现对数据的捕获、监控和传送,减少从阅读器传往工厂应用的数据量。这种分布式的结构可以简化物联网管理,提高运行效率。同时,中间件还可提供与其他RFID支撑软件系统进行互操作等功能。此外,中间件还定义了阅读器和应用两个接口。中间件如图6-2所示。

中间件应该具备两个关键特征:首先要为上层的应用层服务,这是一个基本条件;此外,又必须连接到操作系统的层面,并且保持运行工作状态。中间件研究的领域和范围很广,涉及多个行业,也涉及多个不同的研究方向,比如应用服务器、应用集成架构与技术、门户技术、工作流技术、企业级应用基础软件平台体系架构、移动中间件技术和物联网中间件技术等领域。

1.RFID中间件(SAVANT)的组成

通常情况下,物联网中的中间件具有的模块包括读写器接口、事件管理器、应用程序接口、目标信息服务和对象名解析服务等,如图6-3所示。

978-7-111-55124-9-Chapter06-2.jpg

图6-2 中间件示意图

978-7-111-55124-9-Chapter06-3.jpg

图6-3 物联网中间件模块结构

各个模块描述如下:

1)读写器接口:物联网中间件需要具备集成各种形式的读写器的功能。协议处理器确保使中间件能够通过各种网络方案连接到RFID读写器,作为RFID标准化制定主体的EPC-global组织负责制定并推广描述RFID读写器与应用程序间通过普通接口相互作用的规范。

2)事件管理器:事件管理器用来对来自于读写器接口的RFID时间数据进行过滤、聚合和排序的操作,并且再通告数据与外部系统相关联的内容。

3)应用程序接口:应用程序接口的作用是使外部应用程序系统能够控制读写器。服务器端的接收器接收应用程序的系统指令,它提供一些通信功能。

4)目标信息服务:目标信息服务由两个部分组成:一个是目标存储库,用于存储于标签物体有关的信息,使得这些信息用于以后的查询;另一个是为目标存储库提供目标存储管理的信息接口服务引擎。

5)对象名解析服务:对象名解析服务是一种目录服务,它能使每个带标签产品分配的唯一编码与一个或者多个拥有关于产品更多信息的目标信息服务的网络定位地址相匹配。

2.RFID中间件(SAVANT)的主要功能

中间件的主要功能是数据过滤、数据聚合、信息传递,具体介绍如下。

(1)数据过滤

SAVANT接收来自读写器的海量EPC数据,这些数据存在大量的冗余信息,并且也存在一些错读的信息。所以要对数据进行过滤,消除冗余数据,过滤掉“无用”信息以便传送给应用程序或上级SAVANT“有用”的信息。冗余数据包括在短期内同一台读写器对同一个数据进行重复上报,如在仓储管理中,对固定不动的货物重复上报,在进货、出货的过程中,重复检测到相同物品;多台临近的读写器对相同数据都进行上报,读写器存在一定的漏检率,这和阅读器天线的摆放位置、物品离阅读器远近、物品的质地都有关系。通常为了保证读取率,可能会在同一个地方相邻摆放多台阅读器,这样多台读写器将监测到的物品上报时,可能会出现重复。除上述问题外,很多情况下用户可能还希望得到某些特定货物的信息、新出现的货物信息、消失的货物信息或者只是某些地方的读写器读到的货物信息。用户在使用数据时,希望最小化冗余,尽量得到靠近需求的准确数据,这就要靠SAVANT来解决。对于冗余信息的解决办法是设置各种过滤器处理。可用的过滤器有很多种,典型的过滤器有4种:产品过滤器、时间过滤器、EPC码过滤器和平滑过滤器。产品过滤器只发送与某一产品或制造商相关的产品信息,也就是说,过滤器只发送某一范围或方式的EPC数据。时间过滤器可以根据时间记录来过滤事件,例如,一个时间过滤器可能只发送最近10min内的事件。EPC码过滤器可以只发送符合某个规则的EPC码。平滑过滤器负责处理那些出错的情况,包括漏读和错读。根据实际需要过滤器可以像拼装玩具一样被一个接一个地拼接起来,以获得期望的事件。例如,一个平滑过滤器可以和一个产品过滤器结合,将对反盗窃应用程序感兴趣的事件分离出来。

(2)数据聚合

从读写器接收的原始RFID数据流都是些简单零散的单一信息,为了给应用程序或者其他的RFID中间件提供有意义的信息,需要对RFID数据进行聚合处理。可以采用复杂事件处理(Complex Event Processing,CEP)技术来对RFID数据进行处理以得到有意义的事件信息。复杂事件处理是一个新兴的技术领域,用于处理大量的简单事件,并从其中整理出有价值的事件,可帮助人们通过分析诸如此类的简单事件,并通过推断得出复杂事件,把简单事件转化为有价值的事件,从中获取可操作的信息。在这里,利用数据聚合将原始的RFID数据流简化成更有意义的复杂事件,如一个标签在读写器识读范围内的首次出现及它随后的消失,如图6-4所示。通过分析一定数量的简单数据就可以判断标签进入事件和离开事件。聚合可以用来解决临时错误读取所带来的问题从而实现数据平滑。聚合类型见表6-1。

978-7-111-55124-9-Chapter06-4.jpg

图6-4 进入事件、离开事件示意图

表6-1 聚合类型

978-7-111-55124-9-Chapter06-5.jpg

(3)信息传递

经过过滤和聚合处理后的RFID数据需要传递给那些对它感兴趣的实体,如企业应用程序、EPC信息服务系统或者其他RFID中间件,这里采用消息服务机制来传递RFID信息。RFID中间件是一种面向消息(MOM)的中间件,信息以消息的形式从一个程序传送到另一个或多个程序。信息可以以异步的方式传送,所以传送者不必等待回应。面向消息的中间件包含的功能不仅是传递信息,还必须包括解释数据、安全性、数据广播、错误恢复、定位网络资源、找出符合成本的路径、消息与要求的优先次序以及延伸的除错工具等服务。通过J2EE平台中的Java消息服务(JMS)实现RFID中间件与企业应用程序或者其他SAVANT的消息传递的结构如图6-5所示。这里采用JMS的发布/订阅模式,RFID中间件发布给一个主题发布消息,企业应用程序和其他的一个或者多个SAVANT都可以订购该主题消息。其中的消息是物联网的专用语言——物理标记语言(PML)格式。这样一来,即使存储RFID标签信息的数据库软件或增加后端应用程序或改由其他软件取代,或者增加RFID读写器种类等情况发生,应用端都不需要修改也能进行数据的处理,省去了多对多连接的维护复杂性问题。

3.RFID中间件(SAVANT)体系结构

在实际应用中,我们给每件产品加上RFID标签后,在产品的生产、运输和销售过程中,不同地理位置的读写器将会不停地采集到产品电子编码的数据流,SAVANT位于读写器和信息网络的中间位置,处理来自读写器获得的所有信息和事件流。Auto-ID中心提出的SAVANT的技术体系结构是一种通用的管理EPC数据的架构,它是具有一系列特定属性的“程序模块”或者“服务”,并且被集成在一起来满足不同用户的特定需求。这些程序模块设计可以支持不同群体对模块的扩展。SAVANT连接标签识读器和企业应用程序,代表着应用程序提供一系列的计算功能,如在将数据送往应用系统之前,需要过滤、汇总、计算标签数据,压缩数据容量,减少网络流量。SAVANT向上层转发它所关注的某些事件或者事件摘要,并且能够有效地防止错误识读、漏读和重读。由于不同的客户应用程序对EPC处理的需求各不相同,为了应对应用程序的各种改进和变动,SAVANT的构造中除了包含标准的模块外,还具有某些特定的程序模块或者服务,以供用户集成并满足他们的具体需求。图6-6描述了SAVANT的组件与其他应用程序的通信状况。(www.xing528.com)

978-7-111-55124-9-Chapter06-6.jpg

图6-5 SAVANT消息传递结构

978-7-111-55124-9-Chapter06-7.jpg

图6-6 SAVANT体系结构

SAVANT为程序模块的集成器,程序模块通过两个接口与外界交互:读写器和应用程序接口。其中读写器接口提供与RFID读写器的连接方法;应用程序接口将SAVANT和外部应用程序链接起来,这些应用程序通常是现有的企业运行的应用系统程序,或为新的EPC应用程序,或为其他的SAVANT系统。应用程序接口是程序模块与外部应用的通用接口,在必要时,应用程序接口能采用SAVANT服务器本地协议与以前的扩展服务进行通信,或者采用与读写器协议类似的分层方法实现,其中高层定义命令与抽象语法底层实现了具体语法与协议的绑定。除了SAVANT定义的两个外部接口(读写器接口和应用程序接口)外,程序模块之间用它们自己定义的API函数交互。

SAVANT通常安装在商店、仓库、制造车间、运输车辆、本地配送中心、区域乃至全国性的数据中心,以实现对数据的捕获、监控和传送。典型的EPC SAVANT系统呈树形结构,现存在的一种典型的中间件(SAVANT)系统架构如图6-7所示。

978-7-111-55124-9-Chapter06-8.jpg

图6-7 SAVANT的系统架构

这种结构的叶节点叫作Edge SAVANT(ES),树的分支节点叫作Internal SAVANT(IS)。“ES”由它们在网络中的逻辑位置而得名,它们始终处在SAVANT分布式网络结构的最底层,EPC数据只有通过ES才能进入物联网的系统中。它直接与RFID读写器连接,从标签中采集EPC数据,连续地捕获、监视存储数据,并且向其他的EPC SAVANT传送。每次识读EPC SAVANT都要保存一些信息,例如标签的EPC码、扫描标签的读写器码、识读时间以及与EPC不相关的一些信息,如读写器的地理位置和观测到的温度等。在EPC SAVANT的逻辑等级中“IS”指内部节点,是“ES的父节点或者上级”,它除了从下属节点采集数据外,还负责EPC的数据合计。

SAVNAT的程序模块可以由Auto-ID标准委员会定义,或者由用户和第三方生产商来定义。Auto-ID标准委员会定义的模块叫作标准程序模块。这些标准模块需要应用在SAVANT的所有应用实例中。其他模块可以根据用户定义包含或者不包含在一些具体实例中,这些叫作可选程序模块。主要介绍3个必需的标准程序模块:事件管理系统(Event Management System,EMS)、实时内存事件数据库(Real-time In-Memory Event Database,RIED)和任务管理系统(Task Management System,TMS)。

(1)事件管理系统(EMS)

EMS配置在“ES”端,用于收集读取的标签信息,其主要功能是:

1)能够允许不同类型的读写器将信息写入到适配器;

2)从读写器收集标准格式的EPC数据;

3)允许过滤器对EPC数据进行过滤处理;

4)将处理后的数据写入RIED或本地数据库,或通过HTTP/JMS/SOAP广播到远程服务器。

对事件进行缓冲,使得数据记录器,数据过滤器和适配器能够互不干扰地工作。当事件产生并传递给适配器后,被编入一个队列,从这个队列,事件自动转寄到过滤器,根据不同过滤器的定义,将不同的事件过滤出来,如时间过滤器只允许特定时间标记的事件通过。数据记录器将事件存储到数据库或者将事件传递到某种网络连接,如Socket、http等。图6-8示意了一个EMS中不同类型的读写器、队列、不同类型的过滤器和不同类型的记录器系统工作过程。

978-7-111-55124-9-Chapter06-9.jpg

图6-8 SAVANT事件处理过程

(2)实时内存事件数据库(RIED)

它是SAVANT特有的一种存储容器优化的数据库,为满足SAVANT在逻辑网络中的数据传输速度要求而设立,用以存储“边缘EPC SAVANT”的事件信息,维护来自读写器的信息,并提供过滤和提供记录时间的框架。记录器要将事件记录到数据库,但数据库通常不能在1s内处理上千个事物,因此需要由RIED提供与数据库通信的接口,以解决访问速度匹配。应用程序一般使用JDBC或用本地接口访问RIED。RIED提供诸如SELECT、UP-DATE、INSERT、DELETE等SQL操作,支持定义在SQL92中的子集,RIED同时还提供快照功能,以维护数据库不同时间的数据快照。RIED的模型如图6-9所示,由8个组件构成。

978-7-111-55124-9-Chapter06-10.jpg

图6-9 RIED的模型图

1)JDBC接口:使远程的机器能使用标准的SQL查询访问RIED,并使用标准的URL定位RIED;

2)DML解析器:解析SQL数据修改语言,包括标准SQL命令,是整个SQL92 DML规范的子集;

3)查询优化器:将DML解析器的输出转化为RIED可查询的执行计划,定义的搜索路径用来找到一个有效的执行计划;

4)本地查询处理器:处理直接来自应用程序(或SQL解析器)的执行计划;

5)排序区:为本地查询处理器执行排序、分组和连接操作,采用哈希表来进行链接和分组操作,使用高效排序算法进行排序操作;

6)数据结构:采用“有效线程安全持久数据结构”来存储不同的数据快照,该数据结构实现持久创建新的数据快照,这种数据结构在RIED的实时操作中是必需的;

7)DDL解析器:DDL解析器处理计划定义文档和初始化内存模型中的不同数据结构,还提供查找定义在DDL中的查询路径功能;

8)回滚缓冲:RIED中执行的事物可提交或者回滚,该缓冲保持所有更新直至事物提交。

(3)任务管理系统(TMS)

EPC SAVANT使用定制的任务来执行数据管理和数据监控,通常,一个任务可被看作多任务系统的一个线程,TMS的功能恰似操作系统的任务管理,它把由外部应用程序定制的任务转为SAVANT可执行的程序,写入任务进度表,使SAVANT具有多任务执行功能。SAVANT支持的任务有3种类型:一次性任务、循环性任务和永久性任务。

另外,TMS还要提供通常多任务操作系统所不具有的特性。如:

1)具有时间段任务的外部接口;

2)从冗余的类服务器中随机选择加载Java虚拟机的类库;

3)调度程序维护任务的持久化信息数据,在SAVANT瘫痪或任务瘫痪后能实现重启。

TMS简化了分布式EPC SAVANT的维护。企业用户只需通过保障类服务器上的任务的更新及与更新相关SAVANT上的调度任务,就可维护EPC SAVANT,但硬件和核心软件必须定期更新,如OS(Operating System)和Java虚拟机。

为TMS编写的任务可访问所有EPC SAVANT的工具。TMS任务可执行各种企业应用操作,如数据收集,发送或收集另一EPC SAVANT的产品信息;PML查询,查询ONS、PML服务器随机动态/静态产品实例信息;远程任务调度,调度或删除另一EPC SAVANT上的任务;告警职员,在一些定义的事件(如货架缺货、失窃、物品过期等)发生时,向相关人员发送告警;远程更新,发送产品信息给远程的供应链管理系统。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈