无线射频识别RFID中间件技术

最新更新时间:2010-10-20来源: 互联网关键字:无线射频识别  标签  阅读器  网络架构  中间件 手机看文章 扫描二维码
随时随地手机看文章

  无线射频识别(RFID)技术是一种快速、实时、准确的信息采集与处理技术,通过射频信号对实体对象进行唯一有效的标识,可广泛应用于生产、零售、物流、交通、医疗、国防、畜牧、采矿等各个行业。

  基本的RFID系统一般由3部分组成:标签、阅读器以及应用支撑软件。中间件是应用支撑软件的一个重要组成部分,是衔接硬件设备如标签、阅读器和企业应用软件如企业资源规划(ERP)、客户关系管理(CRM)等的桥梁。中间件的主要任务是对阅读器传来的与标签相关的数据进行过滤、汇总、计算、分组,减少从阅读器传往企业应用的大量原始数据、生成加入了语意解释的事件数据。可以说,中间件是RFID系统的“神经中枢”。

  对于RFID中间件的设计,有诸多问题需要考虑,如:如何实现软件的诸多质量属性、如何实现中间件与硬件设备的隔离、如何处理与设备管理功能的关系、如何实现高性能的数据处理等等。

  1  RFID网络框架结构

  无线射频识别网络的框架结构如图1所示。

  标签数据经过中间件的分组、过滤等处理上报给应用系统;应用系统负责事件数据的持久化存储,以及标签绑定的业务信息的管理。

  RFID系统共享公共服务平台提供根节点对象名称服务(ONS)、企业应用鉴权管理、标签信息发现和企业授权码管理等公共服务。其中,根节点ONS连同所有企业级RFID系统的内部ONS,组成一个ONS树,任何一个标签都可以在ONS树上找到标签所对应的标签信息库的地址,即可以进一步访问到标签对应的详细信息。

  2  中间件功能及实现原理

  一言蔽之,中间件的功能就是接受应用系统的请求,对指定的一个或者多个阅读器发起操作命令如标签清点、标签标识数据写入、标签用户数据区读写、标签数据加锁、标签杀死等,并接收、处理、向后台应用系统上报结果数据。

  其中,标签清点是最为基本、也是应用最为广泛的功能。

  2.1标签清点功能概述

  标签清点的工作流程可简单描述为:

  应用系统以规则的形式定义对标签数据的需求,规则由应用系统向中间件提出,由中间件维护。规则中定义了:需要哪些阅读器的清点数据,标签数据上报周期(事件周期)的开始和结束条件,标签数据如何过滤,标签数据如何分组,上报数据为原始清点数据、新增标签数据还是新减标签数据,标签数据包含哪些原始数据等。

  应用系统指定某项规则,向中间件提出对标签数据的预订。

  中间件根据应用系统对标签数据的预订情况,适时启动事件周期,并向阅读器下发标签清点命令。

  阅读器将一定时间周期(读取周期)中清点到的数据,发送给中间件。读取周期可由中间件与阅读器制定私下协商确定。

  中间件接由收阅读器上报的数据。

  中间件根据规则的定义,对接收数据做过滤、分组、累加等操作,并在事件周期结束时,按照规则的要求生成数据结果报告,发送给规则的预订者。过滤过程可去除重复数据、应用系统不感兴趣的数据,大大降低了组件间的传输数据量。

  此流程可参见图2。

  此处,需要说明一下逻辑阅读器的概念。

  中间件将事件源抽象为一个逻辑概念——逻辑阅读器,一个逻辑阅读器可以包含多个物理阅读,甚至可更细化为包含多个物理阅读器的多个天线。

  逻辑阅读器的划分可以根据实际的系统部署情况来确定,比如,某一个仓库两个出口部署了4个阅读器,可根据需要将这4个阅读器配置成为一个逻辑阅读器,不妨命名为“仓库出口”。应用系统在需要仓库出口的标签数据时,可基于这个逻辑阅读器下发清点命令,而逻辑阅读器名称作为部分应用程序接口(API)调用的参数。

  2.2标签清点实现原理

  如前所述,规则是整个中间件功能的关键元素。规则相当于应用系统发给中间件的订货单,定义了对货品(标签数据)的时间(事件周期)和规格(如何过滤、如何分组、报告样式等)的要求,原理描述部分参考EPCglobal相关内容[1]。

  规则、报告有自身的信息模型,表征其承载的信息,同时,规则拥有其自身的状态机模型。在接受应用系统的长期预订、单次预订时,这些预订操作会激发规则的状态变迁,如从“未被请求”状态跃迁到“已被请求”状态。

  规则由应用系统通过API定义。

  (1) 规则信息模型

  规则信息模型的描述采用了统一建模语言(UML),如图3所示。

  在面向对象的语境中,规则可表征为一个类(ECSpec)。从信息模型描述中可看出,一个规则类,与其他多个类具有关联关系,或者说拥有如下属性:一个或者多个逻辑阅读器的列表(readers)、事件周期边界定义(boundaries)、一个或者多个报告的定义(reportSpecs)、是否在报告中包含规则本身的标记(includeSpecInReports)。

  (2) 报告信息模型

  与规则信息模型类似,报告信息模型如图4所示。

  其中,事件报告组类(ECReports)拥有如下属性:规则名称(specName)、时间上报时间(date)、事件周期时长(totalMilliseconds)、事件周期结束条件(terminationCondition)、规则定义类实例(spec)、一个或者多个报告类的实例列表(reports)。

  报告类(ECReport)中包含了具体的标签数据信息。

  (3) 标签清点API

  应用系统下发的定义规则、预订数据等请求,以调用中间件提供的API的方式完成。API调用过程可采用Java RMI、SOAP等相关具体技术实现,其中最重要的API参见表1。

  其中,poll操作相当于subscribe操作收到一个事件周期的数据之后调用unsubscribe操作;immediate操作相当于define操作定义规则之后,调用poll操作,然后调用undefine操作。

  (4) 规则状态机模型

  规则从其定义开始,可能存在于3种状态:未被请求状态(Unrequested)、已被请求状态(Requested)、激活状态(Active)。

  当规则创建之后,还没有被任何客户端(即应用系统)预订,规则处于Unrequested状态;对规则的第一个预订动作将使规则跃迁到Requested状态;当事件周期开始条件满足时,规则进入Active状态;当事件周期结束条件满足时,如果规则存在预订者,则跃迁到Requested状态,否则跃迁到Unrequested状态。3  中间件系统架构

  中间件系统作为一个软件系统(或称组件),在实现一定功能、性能要求之外,可理解性、可扩展性、可修改性(或称可重构性)、可插入性、可重用性等质量属性都将作为软件设计的要求被提出来。

  近十余年来,面向对象思想几乎全面占领软件设计领域,成为最主流的分析、设计方法。而近数年来,对设计模式的研究也已日臻完善,模式几乎已成为一种“更高级编程语言”(相比于Java、C++等高级编程语言)被广泛应用。

  面向对象思想、设计模式都是以实现软件的可理解、可扩展、可修改、可插入、可重用等目标为己任的,本文也将应用面向对象思想、参考模式语言,对中间件的软件架构做一个初步的探讨,下文的例子如涉及高级编程语言,均采用Java语言[2]。

  3.1封装、隔离处理流程中的各个节点

  将中间件的业务流程中的各个节点分作不同模块处理,可以获得封装、高内聚、低耦合等优势,参见图5。

  其中,报告上传模块,负责实现不同类型的报告上传方式,如HTTP、JMS等;API接口模块,负责隔离应用系统和中间件核心业务逻辑处理模块,向应用系统提供中间件API接口;中间件核心业务逻辑处理模块,负责中间件核心业务,包括数据接收过滤、数据分组、报告生成、规则对象的状态跳转等;阅读器通信模块,负责中间件系统与阅读器的通信。

  3.2门面模式、工厂模式对外部暴露API接口

  为了避免后台应用系统,即中间件的客户端过分耦合,采用门面模式(Facade)对系统内部、外部实现清晰的隔离。处理流程可参见图6所示的序列图。客户端仅仅与Facade类建立联系,如果Facade接口定义得足够清晰,客户端可以对中间件的内部实现一无所知,这体现了面向对象中的封装性。

  类的设计参见源代码示例,从中可以看出,采用简单工厂模式(Simple Factory)能够在客户端不知情的情况下,灵活地替换API实现类的版本。中间件API接口清晰地定义了中间件提供的操作,客户端只须知道工厂类(APIFactory)能够得到中间件API接口的实例即可。

  中间件API接口MiddlewareAPI:

  publicinterfaceMiddlewareAPI{

  void define(String specName, ECSpec spec);

  void undefine(String specName);

  void subscribe(String specName, String uri);

  void unsubscribe(String specName, String uri);

  EPCReports poll(String specName);

  EPCReports immediate(ECSpec spec);

  }

  工厂类APIFactory:

  publicclassAPIFactory{

  publicstaticMiddlewareAPIgetAPIInstance(){

  }

  }

  API的实现类A:

  publicclassClient{

  publicstaticvoidmain(String[] args) {

  MiddlewareAPI api = APIFactory.getAPIInstance();

  api.define("a new spec", new EPCSpec());

  }

  }

[page]

  3.3状态模式模拟规则的状态机

  规则在其生命周期中拥有不同的状态,在每个状态对一系列操作都有着不同的表现,于是可以利用状态模式(state)来模拟规则的状态机,将不同状态的不同表现作为可变化因素封装起来,参见代码示例。

  规则状态接口ECState:

  publicinterfaceECState{

  voidsubscribe(StringspecName,String uri);

  voidunsubscribe(StringspecName,String uri);

EPCReportspoll(StringspecName);

  }

  未被请求状态类ECStateUnrequested:

  publicclassECStateUnrequestedimplements ECState {

  }

  已被请求状态类ECStateRequested:

  publicclassECStateRrequestedimplements ECState {

  }

  激活状态类ECStateActive:

  publicclassECStateActiveimplements ECState {

  }

  规则类ECSpec:

  publicclassECSpec{

  privateECStatestate;

  publicECStategetState(){

  return state;

  }

  publicvoidsetState(ECStatestate) {

  this.state = state;

  }

  }

  这样,在针对规则实施相应操作的时候,就可以直接把相应操作委派给其状态属性(ECState)去做即可。比如,ECSpec的subscribe操作,只需一行代码“state.suscribe(specName, uri);”即可。其中,specName、uri为临时变量,具体取值在方法调用之前确定。

  由面向对象的多态性特征,根据state字段目前所指向的对象来动态确定由ECState接口的哪一个具体的实现类的代码来完成工作。ECState接口的实现类根据实际情况确定是否需要在处理过程中修改ECSpec对象的状态属性(state),此处在应用状态模式时,需要设计多个定时器类来辅助状态机的跳转[3]。

  3.4策略模式切换多种报告上传、命令下发方式

  事件周期结束之后,中间件需要组装报告上传给规则的预订者,即应用系统。上传的方式有多种,如HTTP、Socket、JMS等等。中间件的核心逻辑处理模块不应该关心具体的上传技术,相应工作应交给报告上传模块来做,核心逻辑处理模块只须完成自己的工作,然后把一定格式的数据通过报告上传模块发送,参见代码示例。

  报告发送接口ReportSender:

  publicinterfaceReportSender{

  voidsendReport(ECReportsreports);

  }

  通过Http方式发送报告的ReportSender接口实现类ReportSenderByHttp:

  publicclassReportSenderByHttpimplements ReportSender {

  public void sendReport(ECReports reports) {

  }

  }

  通过Socket方式发送报告的ReportSender接口实现类ReportSenderBySocket:

  publicclassReportSenderBySocketimplements ReportSender {

  publicvoidsendReport(ECReportsreports) {

  }

  }

  通过JMS方式发送报告的ReportSender接口实现类ReportSenderByJms:

  publicclassReportSenderByJmsimplements ReportSender {

  publicvoidsendReport(ECReportsreports) {

  }

  }

  报告发送示例客户端类

  SendReportWorker:

  publicclassSendReportWorker{

  privateReportSendersender;

  privateECReportsreports;

  publicvoidsetReports(ECReportsreports) {

  this.reports = reports;

  }

  publicstaticvoidmain(String[] args) {

  SendReportWorker worker = new

  SendReportWorker();

  worker.sender.sendReport(reports);

  }

  publicvoidsetSender(ReportSendersender) {

  this.sender = sender;

  }

  }

  这样,发送消息的工人类可通过设置ReportSender的实例来灵活设置其发送方式。

  同样,中间件的清点命令下发,即中间件与阅读器之间的接口,也存在多种方式,如Socket、SOAP等,也可采用类似的设计。

  3.5观察者模式处理上报消息

  阅读器的消息上报转换为消息对象,对消息对象的接收、分发可采用经典的观察者模式实现。 4  中间件发展方向

  4.1与阅读器管理系统的融合

  中间件是阅读器与后台应用系统之间的桥梁,而阅读器通常有设备管理需求,比如软件版本下载、设备告警管理、参数配置等等,阅读器管理系统也是直接与阅读器交互的软件模块。于是,如何处理好中间件与阅读器管理系统之间的关系成为一个亟待解决的问题。

  从软件部署(部署在同一台主机上)、软件模块重用(重用阅读器通信模块)等角度考虑,中间件与阅读器管理系统的融合势必成为中间件本身的一个优势。

  4.2对多标准标签的支持

  RFID技术在国内外的发展和应用方兴未艾,国际上多个标准组织都试图统一RFID标准,但在一定的时期内,势必出现多标签并存的情况。于是,对多标准标签的支持也是中间件系统的一个发展方向。

  4.3对多厂商阅读器的支持

  中间件与阅读器之间的接口、通信方式以及信息格式,也无法做到统一标准。对多厂商阅读器的支持、至少对少数几家主流厂商的阅读器的支持,已经是对中间件所提出的基本要求。

关键字:无线射频识别  标签  阅读器  网络架构  中间件 编辑:金海 引用地址:无线射频识别RFID中间件技术

上一篇:TD-SCDMA直放站系统中的ALC控制原理
下一篇:新型低功耗无线标准-ZigBee

推荐阅读最新更新时间:2023-10-12 20:17

中国移动牵手亚马逊 一部Kindle阅读器跨越两个世界
    新浪手机讯 6月27日中午消息,今日中国移动和亚马逊联合推出Kindle X咪咕阅读器,售价为658元,将于7月10日正式发货。 Kindle X咪咕阅读器售价   电子书牵手网络二次元   随着互联网兴起,轻薄的电子书逐渐替代了厚重的纸质书籍,这其中亚马逊Kindle阅读器是电子书中的佼佼者,目前亚马逊Kindle阅读器在中国目前已经超过46万册,作品遍及海内外,从海外畅销的《哈利波特》全集,到最近热销的《人们的名义》,只需一个小巧的Kindle阅读器就可以搞定。 Kindle X咪咕阅读器   尽管46万册的数目来说已是庞大,但为了用户的选择性更高,日前亚马逊联合中国移动打造了一款Kindle X咪咕阅读器,将目前主流
[手机便携]
使用奥地利微电子AS3911阅读器芯片的新款非接触式支付终端获得EMV认证
中国,2013年4月23日——领先的高性能模拟IC和传感器供应商奥地利微电子公司(SIX股票代码:AMS)宣布NBS支付方案使用奥地利微电子AS3911阅读器芯片的一系列新支付终端获得EMV认证。 NBS支付方案(NBSPS)的510和710系列NOIRE终端现可使用具有万事达、PayPass和 Visa payWave标志的非接触式卡接受支付。 NBSPS终端内的AS3911 RFID阅读器芯片具有射频和模拟前端,可读取满足EMV标准要求的任何非接触式支付卡。由奥地利微电子开发的参考设计,与最先进的非接触式支付系统非常类似,为希望生产满足EMV认证终端的制造商提供现成的蓝图。 由于AS3911具有高(1 W)射
[半导体设计/制造]
RFID特殊标签在医疗领域的应用
      匹兹堡大学科研队已经完成了对专用骨科标签和RFID系统的开发、测试,该系统通过射频信号读取无源标签,目前已经通过专利注册。        美国匹兹堡大学研究人员已经开发出一种骨科标签系统,将内嵌传感器的RFID标签附加到骨科仪器,从而使植入人体的标签来跟踪设备在体内的使用情况。人体内标签发出的信号通过皮肤组织传到皮肤外的读写器中。该系统不仅可以追踪人体的植入环境,而且可以对骨科仪器本身有一定的防伪性。        大学实验室对该解决方案进行了检测, 由学校工程院的Marlin Mickle教授主持,他同时也是骨科标签公司科学技术顾问委员会的主席。该公司主要为骨科设备制造商供应特定标签,同时也提供手持标签阅读器(这种
[网络通信]
基于MSP430单片机的低功耗主动式RFID标签设计
引言   射频识别(RFID)技术近年来在国内外得到了迅速发展。对于需要电池供电的便携式系统,功耗也越来越受到人们的重视。本文将具体阐述基于MSP430F2012和CC1100低功耗设计理念的双向主动式标签的软硬件实现方法。 低功耗设计 低功耗概述   功耗基本定义为能量消耗的速率,可分为瞬态功耗和平均功耗两类。两者意义不同,有不同的应用背景和优化策略,通常被笼统地概括为低功耗设计。实际研究中可根据不同情况区分为:   (1)瞬态功耗优化:目标是降低峰值功耗,解决电路可靠性问题。   (2)平均功耗优化:目标是降低给定时间内的能量消耗,主要针对电池供电的便携电子设备,以延长电池寿命或减轻设备重量
[单片机]
美国颁布了新的led电光源标签要求
    美国联邦贸易委员会于近期颁布了新的电光源标签要求,根据法规要求,从2011年6月起在美国销售的电光源包装上须加贴新标签,不符合新标签要求的电光源将不允许在美国境内销售。     新标签要求增加光通量、每年耗能成本、平均寿命、色温、含汞量等与电光源能源效率和含有毒有害物质有关的信息。     业内认为,这些内容将使消费者能够清楚地识别不同电光源的节能和环保水平,在鼓励使用自镇流萤光灯、LED灯等高能效产品的同时,使白炽灯泡等低能效的电光源产品最终退出美国市场。
[电源管理]
联邦快递采用蓝牙标签保障疫苗冷链安全
支持蓝牙的传感器用于大规模的物流活动中,以便跟踪COVID-19疫苗的卡车和飞机。 在美国,联邦快递和UPS在运送疫苗方面发挥着领导作用。 Fedex宣布将使用其专利的SenseAware ID(一种蓝牙低能耗传感器),该ID附加在疫苗运输中。代理商可以近乎实时地跟踪每批货物的位置。 该传感器仅重7盎司,还可以检测GPS以及温度,湿度,压力,震动和光照的变化。如果带有传感器的包裹通过地理围栏,则可以发送警报。包裹位置每两秒钟通过蓝牙传输到Wi-Fi接入点或FedEx Express网络网关中。 联邦快递的SenseAware ID FedEx Surround平台对该技术进行了补充,该平台依靠AI和预测工具来
[物联网]
联邦快递采用蓝牙<font color='red'>标签</font>保障疫苗冷链安全
基于STM32的LF RFID阅读器研究
射频识别技术(Radio Frequency Identification,RFID)是从八十年代起走向成熟的一项自动识别技术。RFID利用射频方式进行非接触双向通信,以达到识别目的并交换数据,主要通过空间耦合(交变磁场或电磁场)实现无接触信息传递并通过所传递的信息达到识别目的。 RFID技术在近年取得了长足的发展,目前已广泛应用的频段分布在LF、HF、UHF和徽波频段,各频段的RFID系统均有各自的优点和相应的应用范围。对于LF频段的RFID系统而言,最明显的优点在于拥有很好的穿透性能,如可穿透液体物质,建筑物,人体等,且各种动物体细胞和各种气体分子对LF频段的能量吸收很小。 可见LF RFID系统可以在需要良好穿透性
[单片机]
基于STM32的LF RFID<font color='red'>阅读器</font>研究
为并行计算寻求多种途径
  电子产业没有投入足够的时间、精力以及资金去解决并行计算中迫切需要的的技术突破。是时候在这个领域投资多个大型项目,多方利益相关者需要快速步入这个板块。   David A. Patterson是美国加州大学伯克利分校有经验的计算机科学教授及研究员,描述了这个问题的严重性。   微处理器制造商已经碰上了“功耗壁垒”,破坏了他们传统的设计技术,并且使他们趋向多核架构。但是这只是将问题转移至并行软件的需求,而并行软件是研究员在过去40年进展较小的领域。   如果研究人员不解决这个问题,多核架构将快速超越软件的能力。如果新的软件不能利用改进的芯片,以此为依靠的计算机产业和其他许多产业的增长将充满危险。针对这种挑战,产业
[焦点新闻]
小广播
最新模拟电子文章
换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved