无线射频识别RFID中间件技术_第1页
无线射频识别RFID中间件技术_第2页
无线射频识别RFID中间件技术_第3页
无线射频识别RFID中间件技术_第4页
无线射频识别RFID中间件技术_第5页
已阅读5页,还剩8页未读, 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、。射频识别射频识别中间件技术张健,杜江,王振宇射频识别技术是一种快速、实时、准确的信息采集和处理技术,通过射频信号唯一有效地识别物理物体,可广泛应用于生产、零售、物流、运输、医疗、国防、畜牧、矿业等各个行业。基本的射频识别系统一般由三部分组成:标签、阅读器和应用支持软件。中间件是应用支持软件的重要组成部分,是连接标签和阅读器等硬件设备与企业资源规划(ERP)和客户关系管理(CRM)等企业应用软件的桥梁。中间件的主要任务是过滤、汇总、计算和分组从阅读器传输的标签相关数据,减少从阅读器传输到企业应用的大量原始数据,并生成具有语义解释的事件数据。可以说中间件是射频识别系统的“神经中枢”。对于射频识别

2、中间件的设计,有许多问题需要考虑,如如何实现软件的多种质量属性,如何将中间件与硬件设备隔离,如何处理与设备管理功能的关系,如何实现高性能的数据处理等。1射频识别网络框架射频识别网络的框架结构如图1所示。标签数据通过中间件的分组和过滤上报给应用系统。应用系统负责事件数据的持久存储和由标签绑定的业务信息的管理。射频识别系统的共享公共服务平台提供根节点对象名称服务、企业应用认证管理、标签信息发现和企业授权码管理等公共服务。其中,所有企业射频识别系统的根节点ONS和内部ONS形成一个ONS树,任何标签都可以在ONS树中找到与该标签对应的标签信息库的地址,也就是说,可以进一步访问与该标签对应的详细信息。

3、2中间件的功能和实现原则总之,中间件的功能是接受应用系统的请求,发起标签计数、标签标识数据写入、标签用户数据区读写、标签数据锁定、标签删除等操作命令。并且接收、处理和报告结果数据到后台应用系统。其中,标签计数是最基本、应用最广泛的功能。2.1标签库存功能概述标签清单的工作流程可以简单描述为:应用系统以规则的形式定义对标签数据的需求,由应用系统向中间件提出并由中间件维护。规则定义了哪些读者需要库存数据、标签数据报告周期(事件周期)的开始和结束条件、如何过滤标签数据、如何对标签数据进行分组、报告的数据是原始库存数据、新标签数据还是新标签数据,以及标签数据包含哪些原始数据。应用系统指定一个规则,并向

4、中间件提出标签数据的预留。中间件根据应用系统对标签数据的预留,及时启动事件周期,并向阅读器发出标签计数命令。读取器在某个时间段(读取周期)向中间件发送计数的数据。阅读周期可以通过中间件和阅读器之间的私人协商来确定。中间件接收接收器和读取器报告的数据。中间件根据规则的定义对接收到的数据进行过滤、分组和累积,并在事件周期结束时,根据规则的要求生成数据结果报告,并发送给规则的订阅者。过滤过程可以删除重复数据和应用系统不感兴趣的数据,从而大大减少组件之间传输的数据量。这个过程可以在图2中看到。在这里,我们需要解释逻辑读者的概念。中间件将事件源抽象为逻辑概念为的逻辑读取器,一个逻辑读取器可以包含多个物理

5、读取器,甚至可以进一步细化为包含多个物理读取器的多个天线。逻辑读取器的划分可以根据实际的系统部署来确定。例如,在一个仓库的两个出口处部署了四个读取器,这四个读取器可以根据需要配置为逻辑读取器,这可以称为“仓库出口”。当应用系统需要仓库出口的标签数据时,它可以基于这个逻辑读取器发出库存命令,并且逻辑读取器的名称被用作一些API调用的参数。2.2标签库存的实施原则如前所述,规则是整个中间件功能的关键元素。规则相当于应用系统发送给中间件的采购订单,它定义了时间(事件周期)和规格(如何过滤、如何分组、报告风格等)的要求。)的商品(标签数据)。原理描述部分引用了EPCglobal相关内容1。规则和报告有

6、它们自己的信息模型来表示它们携带的信息,而规则有它们自己的状态机模型。当接受应用系统的长期保留和单一保留时,这些保留操作将触发规则的状态转换,例如从“未被请求”状态到“被请求”状态的转换。规则由应用系统通过应用编程接口定义。(1)规则信息模型统一建模语言(UML)用于描述规则信息模型,如图3所示。在面向对象的上下文中,规则可以被描述为一个类。从信息模型的描述中可以看出,一个规则类与其他类有关联关系,或者具有以下属性:一个或多个逻辑读取器的读取器、事件周期的边界、一个或多个报告规格的定义以及是否将规则本身包括在报告中。(2)报告信息模型与规则信息模型相似,报告信息模型如图4所示。事件报告组类(e

7、Reports)具有以下属性:规则名称(specName)、时间报告时间(日期)、事件周期持续时间(总计毫秒)、事件周期终止条件、规则定义类实例(spec)以及一个或多个报告类实例列表(报告)。报告类(e report)包含特定的标记数据信息。(3)标签库存原料药应用系统发出的定义规则和预订数据的请求是通过调用中间件提供的API来完成的。API调用过程可以通过Java RMI、SOAP和其他相关的特定技术来实现,最重要的API如表1所示。其中,轮询操作相当于订阅操作在收到一个事件周期的数据后调用取消订阅操作;立即操作相当于定义操作。定义规则后,调用轮询操作,然后调用取消定义操作。(4)规则状态

8、机模型根据定义,规则可能存在于三种状态:未请求、已请求和活动。规则创建后,没有被任何客户端(即应用系统)保留,规则处于未请求状态;规则的第一个保留操作将使规则转换到“已请求”状态;当满足事件周期开始条件时,规则进入活动状态;当满足事件周期结束条件时,如果规则中有订户,它将转换到“已请求”状态,否则将转换到“未请求”状态。3中间件系统架构作为一个软件系统(或组件),除了实现一定的功能和性能要求外,可理解性、可扩展性、可修改性(或可重构性)、可插入性和可重用性等质量属性也将作为软件设计的要求提出。近十年来,面向对象思想几乎完全占据了软件设计领域,成为最主流的分析和设计方法。近年来,设计模式的研究日

9、益完善,模式几乎已经成为一种“高级编程语言”(与Java、C等高级编程语言相比),并被广泛使用。面向对象的思想和设计模式都致力于实现可理解、可扩展、可修改、可插入和可重用软件的目标。本文还将运用面向对象的思想和参考模式语言对中间件的软件体系结构进行初步探讨。下面的例子,比如高级编程语言,都采用了Java语言2。3.1封装和隔离处理流程中的每个节点通过将中间件业务流程中的每个节点分成不同的模块,可以获得封装性、高内聚性和低耦合性的优势,如图5所示。其中,报表上传模块负责实现不同类型的报表上传方式,如HTTP和JMS应用接口模块负责将应用系统与中间件核心业务逻辑处理模块隔离,并为应用系统提供中间件

10、应用接口;中间件核心业务逻辑处理模块负责中间件核心业务,包括数据接收和过滤、数据分组、报表生成、规则对象状态跳转等。阅读器通信模块负责中间件系统和阅读器之间的通信。3.2面向外部的立面模式和工厂模式的应用编程接口为了避免后台应用系统(即中间件的客户端)的过度耦合,采用了Facade模式来实现系统内外的清晰隔离。处理流程见图6所示的序列图。客户端只与外观类建立联系。如果Facade接口被清晰地定义,那么客户端对中间件的内部实现一无所知,这反映了面向对象的封装。关于类的设计,请参见源代码示例,从中可以看出,工厂方法模式可以在客户端不知情的情况下灵活地替换API实现类的版本。中间件API接口清楚地定

11、义了中间件提供的操作,客户端只需要知道APIFactory可以获得中间件API接口的一个实例。中间件接口中间件接口:publiccinterfacemiddlewareapi 无效定义(字符串规范名称、电子证书规范);无效未定义(字符串规范名);无效订阅(字符串规范名、字符串uri);取消订阅(字符串规范名、字符串uri);电子端口轮询(字符串规范名);紧急出口(ECSpec规格);工厂级蜂房工厂:公共类工厂publicstaticmiddlewareapigetapinstance()应用编程接口的实现类:publicclassClientpublicstaticvoidmain(字符串参数

12、)MiddlewareAPI API=APIfactory . GetaPiInstance();api.define(新规范,新EPCSpec();3.3状态机状态模式模拟规则规则在其生命周期中有不同的状态,每个状态对于一系列操作有不同的表示。因此,状态模式可以用来模拟规则的状态机,不同状态的不同表示可以封装为可变因素。请参见代码示例。规则状态接口状态:公共接口状态空订阅(StringspecName,String uri);撤销订阅(StringspecName,String uri);EPCReportspoll(StringSpecName);未请求的状态类ECStateUnreque

13、sted:publicsclassecstateUnRequestediimplements ECState 请求的状态类请求的状态:publicsclassecstaterequestediimplements ECState 激活状态类ECStateActive:publicsclassecstateactiveimplements ECState 规则类ECSpec:publicsclassecspec 私有状态;publiceStateGetState()返回状态;PublicVirtusetState(EcStateState)this.state=状态;这样,当实现规则的相应操作时

14、,您可以直接将相应的操作委托给它的状态属性(ECState)。例如,ECSpec的订阅操作只需要一行代码的“状态”。挂起(规范名称,uri);只是。其中,specName和uri是临时变量,具体值在方法调用之前确定。根据当前状态字段所指向的对象,面向对象的多态性特征动态地决定了ECState接口的哪个具体实现类代码完成了工作。根据实际情况,ECState接口的实现类决定了ECSpec对象的状态属性在处理过程中是否需要修改。这里,当应用状态模式时,有必要设计多个定时器类来帮助状态机的跳转3。3.4策略模式切换多种报告上传和命令发布模式事件周期结束后,中间件需要组装报告并将其上传到规则的订阅者,即应用系统。上传的方式有很多,比如HTTP、Socket、JMS等等。中间件的核心逻辑处理模块不应该关心具体的上传技术,相应的工作应该移交给报表上传模块。核心逻辑处理模块只需要完成自己的工作,然后通过报表上传模块以一定的格式发送数据。请参见代码示例。报表发送界面报表发送方:公共接口发送方作废发送报告;通过Http发送报告的报告发送者接口实现了报告发送者类别http:publicClassReportSenderByhtPimpelementReportSender 公共无效发送报告(电子报告报告)通过套接字发送报告的报告发送者接口实现了类ReportSenderBySocket:publi

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论