物联传媒 旗下网站
登录 注册
RFID世界网 >  技术文章  >  其他  >  正文

基于ESB的RFID中间件研究

作者:杨海东,吴文华
来源:中国科技论文在线
日期:2017-02-06 14:02:39
摘要:随着RFID 技术的迅速发展,企业需要有一个RFID 中间件,通过该中间件能实现RFID 应用系统的快速开发,以及RFID 系统与原有应用系统间的无缝集成。基于上述需求,本文提出一种基于ESB 的RFID 中间件,并对该中间件的系统架构和功能,以及在食品安全监控系统中的应用进行研究
关键词:ESBRFID中间件

  1. 引言

  近年来,随着技术的不断完善和标签价格的持续下降,越来越多的RFID 技术及产品被应用于零售、物流、仓储、生产制造、智能交通、动物识别、图书馆管理等领域,正在向人们日常生活和工作的各个方面快速渗透[1-3]。RFID 技术应用迅速发展的同时,用户也提出了不同设备与应用系统之间的接口,海量而复杂的RFID 数据处理和利用等问题,此外,新建系统与原有信息系统之间无缝集成,如何快速适应未来业务需求和硬件设备的变化也对RFID 系统的设计和集成提出了新的挑战。解决这些问题的有效方法就是构建并部署RFID中间件(Middleware)。对于应用软件开发,中间件提供了具有可移植性的标准协议和标准接口,定义了一个相对稳定的高层应用环境,不管底层的计算机硬件和系统软件怎样更新换代,只要将中间件升级更新,并保持中间件对外的接口定义不变,应用软件几乎不需任何修改,从而保护了企业在应用软件开发和维护中的投资。此外,RFID 中间件可以帮助企业解决RFID 数据采集、RFID 硬件设备兼容、RFID 应用系统与现有系统集成等问题,解决各种业务系统之间的数据共享与业务协同等问题[3-5]。

  当前,RFID 中间件平台软件主要是国外SUN、IBM、BEA 等厂商提供相关产品,并在各自市场上居于垄断的地位。这些国外产品的共同特点是功能覆盖面宽、技术先进、产品价格和服务成本高昂,只有很少的高端客户才能够负担得起[6-9]。从自主创新的角度出发,本研究将中间件技术、RFID 技术、面向服务的体系结构(Service-Oriented Architecture,SOA)和企业服务总线(Enterprise Service Bus,ESB)架构结合起来,研究和构建一个基于ESB架构的RFID 中间件产品。以增强RFID 应用系统的业务适应能力,简化RFID 应用系统开发的复杂度。缩短RFID 项目的实施周期,降低RFID 应用系统的开发成本,满足RFID 应用中涌现的信息资源交换、共享、整合等需求,提高RFID 系统的开放性和可复用性;

  2. 系统架构

  企业对 RFID 数据服务的要求简单可以概括为RFID 数据的获取、处理和维护。RFID中间件的主要作用是为企业提供RFID 的数据服务,使企业在开发RFID 应用时进行灵活的部署,减少重复开发,共享RFID 中间件服务。RFID 数据的获取需要在数据产生的现场与各种硬件设备打交道,通过各种类型的RFID 读写设备读取电子标签上的信息;由于RFID技术的特点,多个RFID 读写设备对电子标签进行高频率的读取会产生重复、冗余的数据,因此必须在数据获取后尽快对这些数据进行过滤、聚合等处理操作;维护的主要内容是对数据进行永久的存储,并为应用系统提供查询的功能。基于上述考虑,本研究将RFID 中间件分成RFID 数据采集组件、RFID 数据管理组件、ESB 构件三部分,如图1 所示。

基于ESB的RFID中间件研究

图1 基于ESB 的RFID 中间件结构图

  基于ESB 架构的RFID 中间件的流程分析:

  (1)RFID 数据采集组件的数据采集引擎和写标签引擎被封装为web 服务,并注册到ESB 中。

  (2)RFID 数据采集组件的EPCIS 事件捕捉引擎、EPCIS 事件查询引擎、EPC 码分配服务均被封装成web 服务,注册到ESB 中。

  (3)RFID 数据采集组件通过硬件适配器与各种RFID 标签读写器连接,实现对电子标签的读写。

  (4)应用系统及EPCIS Capturing Application 角色应用程序通过ESB 调用RFID 数据采集组件的数据采集引擎服务,获取ALE 事件信息。

  (5)EPCIS Capturing Application 角色应用程序根据获得的ALE 事件信息生成EPCIS事件信息,然后通过ESB 调用RFID 中间件的EPCIS 事件捕捉引擎服务实现EPCIS 事件信息的存储。

  (6)各种应用系统,如SCM、PIM、ERP、WMS 等,通过ESB 调用RFID 数据管理组件的EPCIS 事件查询引擎服务获取EPCIS 事件信息。

  (7)应用系统也可以通过ESB 调用RFID 数据管理组件的写标签引擎服务,向电子标签载体写入EPC 代码。

  (8)RFID 数据管理组件通过ESB 调用RFID 数据采集组件的写标签引擎服务,订阅或查询写引擎的EPC 缓存状态;当写引擎的EPC 缓存中缓存数达到下限阀值或0 时,RFID数据采集组件通过ESB 调用RFID 数据管理组件的EPC 码分配服务,为EPC 缓存添加新的可用条目。

  3. 系统功能

  在基于 ESB 的RFID 中间件中,RFID 数据采集组件和RFID 数据管理组件以及各种应用系统通过把各自提供的功能封装为web 服务的方式集成到企业服务总线上,从而为企业的RFID 应用提供RFID 的数据支持和集成支持。

  3.1 RFID 数据采集组件

  RFID 数据采集组件的主要功能包括:RFID 设备管理、RFID 数据采集和处理、EPC 代码写入RFID 电子标签等。

  (1)硬件接口功能。如图1 所示,数据采集组件使用硬件适配器与底层不同的标签阅读器、标签打印机等硬件设备相连。硬件适配器支持不同协议标准的硬件设备,从而向下屏蔽RFID 设备的硬件差异。此外,数据采集组件是通过逻辑阅读器对这些硬件设备进行分组管理的。一个逻辑阅读器可以对应一个或多个物理阅读器,一个物理阅读器也可以对应一个或多个的逻辑阅读器,应用程序通过数据采集组件指定从哪些逻辑阅读器中获取数据[x]。硬件适配器与逻辑阅读器的应用,有效地实现了应用与硬件的松耦合。

  (2)EPC 数据采集和处理功能。由于RFID 阅读器在一秒钟内可以对标签进行多次的采集,而且一个标签还可能同时被多个阅读器检测到,因此在EPC 数据采集的过程中出现严重的数据冗余;这些数据如果被直接发送,必然大大增加网络的负荷;而且这些数据对应用程序而言也没有使用的价值。为此,数据采集组件提供了对采集到的EPC 数据进行处理的功能,包括:过滤、计数、分组、差量分析等。经过处理,数据采集组件生成ALE 事件供应用程序使用。ALE 事件的内容类似“在某个时间段内,阅读器检测到某一类的EPC 代码x 个,比上一次检测增加/减少了y 个”。

  (3)EPC 代码写入RFID 电子标签功能。为了可靠地把EPC 代码写入到唯一的RFID电子标签中,写入过程如下:首先检查是否具备标签写入的条件,确保读写器作用范围内可供写入的标签为单一,避免把一个EPC 码写入多个标签;检测标签是否可写、是否被锁定等;实现标签写入;如果失败则设定重试次数;对写入的内容进行校验。

  3.2RFID 数据管理组件

  数据采集组件尽管对 EPC 数据进行了处理,生成了ALE 事件,但是这些事件只是对EPC 数据进行了分组、计数、差量分析等,却没有包括商业信息在内。在RFID 应用系统中存在一些应用,它们根据数据采集组件提供的ALE 事件实现相关的操作,同时把ALE 包装成EPCIS 事件(EPCIS 事件包含EPC 相关的信息,如交易信息、组装信息等)。这里称这些应用为EPCIS Capturing Application 角色应用程序,它支持四种EPCIS 事件类型对象的生成:对象事件(Object Event)、聚合事件(Aggregation Event)、数量事件(Quantity Event)和交易事件(Transaction Event)[x]。此外,数据采集组件没有对ALE 事件进行存储,在实现EPC 写入时只能保证EPC 被写入唯一的标签,但不能保证EPC 本身唯一。

  作为RFID 中间件的另一个组成部分,数据管理组件提供以下功能:

  (1)面向EPCIS 事件的数据管理功能。数据管理组件提供EPCIS 事件捕捉引擎接口实现对EPCIS 事件的获取;在数据管理组件内通过EPCIS 事件库接口兼容各种通用的关系型数据库(如Oracle,DB2,Sybase,Microsoft SQLServer)以及XML 数据库,实现EPCIS事件的存储;对外向各种应用提供EPCIS 事件信息的查询接口。

  (2)EPC 码分配服务功能。全球统一的“物联网”要求每一张电子标签上的EPC 代码都是唯一的,同时不同厂家不同类型的产品往往使用不同区段的EPC 代码。数据管理组件的EPC 码分配服务提供对数据采集组件中要写入到电子标签上的EPC 进行集中管理和分配的功能,既保证了EPC 的唯一性,也保证了EPC 所属的区段与产品的类型相对应。

  3.3ESB 构件

  ESB 构件主要为RFID 中间件提供应用间集成的功能,此外还提供了工作流定义、安全等服务,具体如下:

  (1)异构系统的集成。企业服务总线提供了一个以“服务”为中心的基础框架。在这个框架上,各种应用可以把对外提供的功能封装为标注的web 服务,客户端与“服务”之间、“服务”与“服务”之间可以使用基于XML 的消息,通过各种因特网传输协议(如http,ftp,smtp等)实现互操作[4]。由于XML、HTTP 等技术具有与编程语言、操作系统及硬件平台无关的特性,从而方便、有效地实现了各种异构系统的集成。在平台中,RFID 数据采集组件的数据采集引擎和写标签引擎,以及RFID 数据管理组件的EPCIS 事件捕捉引擎、EPCIS 事件查询引擎和EPC 码分配服务均被封装成web 服务,注册到ESB 中。各种应用可以通过使用这些服务,实现电子标签数据的获取、EPC 代码的写入、EPC 相关信息的查询等。

  (2)工作流服务的定义。在企业服务总线中可以根据企业的业务流程需求,把现有的各种服务进行编排,动态生成新的服务供应用程序使用。

  (3)代理服务。客户端通过代理服务对web 服务和工作流服务进行访问,代理服务在客户端与服务之间提供了一个消息转换、协议转换和动态路由的功能。

  (4)安全服务。企业服务总线在客户端与服务之间提供了基于SSL 的传输层安全、基于WS-Security 的消息层安全和基于客户端授权的安全策略。

  4. 应用实例

  近年来,由于食品安全危机频繁发生,严重影响了人们的身体健康,引起了全世界的广泛关注,诸如禽流感、疯牛症、口蹄疫、孔雀石绿、苏丹红、食物中毒等大量事件的发生在严重影响人们生活。在食品安全监控系统中应用基于ESB 的RFID 中间件,可以实现对食品的生产、物流、销售、安全监督等环节进行信息跟踪,从而大量的减少安全事件的发生,保障人们的身体健康,提高人们的生活质量。

  基于ESB 的RFID 中间件在食品安全监控系统中的应用包括两方面,一是处于食品流通环节上的各企业在该中间件之上进行RFID 应用的开发,利用RFID 技术提高本企业的运行效率和信息管理水平,同时为食品安监部门提供EPC 相关的信息,即各种使用EPC 标识的食品流经该环节时的信息;二是食品安监部门利用该中间件实现对食品安全问题的跟踪和回溯。

  4.1 企业内部应用架构

  图 2 所示为食品流通过程各企业应用RFID 中间件的架构。

基于ESB的RFID中间件研究

图2 企业内部应用架构图

  (1)生产或加工企业。在数据采集现场如生产车间,RFID 数据采集组件可以控制食品生产线末端的RFID 读写器向附在产品上的电子标签写入EPC 码,也可以控制食品生产线起始的RFID 阅读器获取生产该产品所用原材料的EPC 代码。在企业总部,RFID 数据管理组件提供了对生产环节中食品EPC 代码相关信息的查询,如某一类食品何时、何地完成生产,食品对应的订单号,食品的数量,这批食品采用了哪些原材料等。

  (2)物流企业。RFID 数据采集组件可以通过部署在各个运输道口的RFID 阅读器,结合GPS 或GPRS 技术实时跟踪和定位运输容器和运输工具;可以通过部署在物流仓库出入口、叉车和各个仓位的RFID 阅读器获取出入库食品和库存的食品的EPC 代码。RFID 数据管理组件则提供了对物流环节中食品EPC 码相关信息的查询,例如某时某地某些食品被装到某台车辆,运输的目的地是某处,对应的运输合同号等,又例如某个仓库在某个时刻收到某些食品,这些食品的数量,它们在仓库中存放的位置等。

  (3)销售企业。食品零售或批发企业可以在仓库或卖场部署RFID 数据采集组件及RFID阅读器,对库存情况及销售情况进行监控,当商品存量低于一定值时及时向供货商发出订单请求以保证货源,对快过期和已过期的食品进行及时处理以保证食品的安全等。在企业总部,数据管理组件提供了对销售环节中食品EPC 码相关信息的查询,如某个时刻某类食品的库存,或者某一类食品在某一时刻被销往何处等。

  4.2 食品安监部门应用架构

  图 3 为RFID 中间件在食品安监部门的应用架构图。

基于ESB的RFID中间件研究

图3 食品安全监管部门应用架构图

  食品安监部门通过对食品供应链各环节的食品质量进行检测,或者通过消费者的投诉,发现存在安全问题的食品EPC 码。食品安全监控部门的监控程序根据这些EPC 代码,通过网络对食品供应链各环节提供的信息进行查询分析,找出问题的起源及所有有问题的环节,实现对食品安全的监控。食品安全监控主要通过两种方式进行:

  (1)食品安全追踪。食品安全追踪是指食品安监部门在发现食品安全问题时,利用食品供应链各个环节相关企业所提供的信息查询服务,从上往下对食品的生产→物流→销售进行跟踪,从而发现所有存在问题的环节,并且及时召回有问题的产品。

  当发现某生产企业存在食品安全问题后,食品安监部门的安监程序可以通过该企业RFID 数据管理组件提供的web 查询服务,迅速获取到该厂家违规生产期间生产的产品信息(产品的EPC 代码及产品属性等),根据产品的EPC 代码可以追踪到产品的库存信息和销售信息,通过销售信息,可以进一步知道问题食品被销往哪些企业,并对这些企业进行类似的追踪过程。以企业RFID 数据管理组件提供的EPC 相关信息为线索,可以实现从上往下对这种多分叉树状网络上的各个节点(企业)进行遍历,实现对问题食品快速、全面的回收。

  (2)食品安全回溯。当出现食品安全事故时,食品安全监控程序直接利用相关企业提供的查询服务,从下往上进行回溯,向上层层追踪,最终确定造成质量问题的原因,确定产品的原产地和特征。例如卫生部门发生人感染禽流感疑似案例,感染者曾食用某超市购买的鸡肉;食品安全监控程序可以通过该超市的数据服务获得所有可疑鸡只的EPC 相关信息,包括可疑鸡只的EPC 代码、运送可疑鸡只的运输车辆的EPC 代码、相关的运输合同信息和供货合同信息等;根据运输合同信息食品安监程序向上回溯到物流环节,对当日可疑鸡只的运输过程进行调查,例如根据车辆装货信息 (包括车辆的EPC 代码,车厢货物的EPC 代码等),判断车辆是否还装载了来自其它养殖场的家禽;根据超市的供货合同或运输车辆上货物的EPC 代码,进一步向上回溯到有关的养殖场;相关部门可以迅速对该养殖场的家禽进行检疫,以确定问题的起源。

  5. 结论

  本文对 RFID 中间件技术和ESB 技术进行了研究,RFID 中间件技术为企业提供数据服务,ESB 技术为RFID 中间件以及企业的其它应用提供底层的安全、集成、业务流程编排等服务,两者相辅相成,实现了RFID 应用系统与企业现有业务系统及将来要开发的系统之间的数据交换、共享,具有良好的互操作性和可扩展性。此外,基于配置的实现方式,即RFID中间件的逻辑阅读器管理、RFID 数据获取和管理、ESB 构件中的服务注册、工作流和代理服务定制、消息转换、安全策略的应用等,都只要通过图形配置窗口进行相关设置就可以完成,而无需编程实现,体现了该中间件的灵活性。(华南理工大学自动化科学与工程学院/杨海东,吴文华)

  参考文献

  [1] 面向服务的体系结构SOA 简介[EB/OL]. http://tech.51cto.com/

  [2] ALE1.0, Application Level Event Standard Version 1.0[S],EPCglobal, Sep 2005

  [3]RFTagAware Enterprise Server Administrator’s Guide [EB/OL]. http://edocs.bea.com/rfid/rftagaware/pdf/ESAdministratorsGuide1_1.pdf, Jun 2005

  [4] David Chappell, Tyler Jewell. Java Web Services.O'Reilly, Mar 2002: 231

  [5] 成修治,李宇成. RFID 中间件的结构设计. 计算机应用,2008,28(4):1055-1060

  [6] 邓海生,李军怀. 基于SOA 的RFID 中间件的研究与实现. 计算机技术与应用, 2007,10:131-134

  [7] 蒋泰,彭利明. 杂事件处理在RFID 中间件中的应用. 现代计算机. 2008,2:11-14

  [8] THOMPSON C. Smartdevices and soft controllers[J]. IEEE Inter-netComputing, 2005, 9(1): 82-85.

  [9] THOMPSON C, PAZANDAK P, TENNANTH. Talk to your seman-ticWeb[J]. IEEE InternetComputing, 2005,9(6): 75-78