320 likes | 651 Views
RFID 中间件的实现. 徐 展 0755-86110606 深圳立格射频科技有限公司. 提纲. 什么是 RFID 中间件 为什么要使用 RFID 中间件 RFID 中间件的需求 RFID 中间件的标准 ALE 接口介绍 ALE 实现介绍 RFID 中间件的技术实现 RFID 中间件产品. 什么是 RFID 中间件.
E N D
RFID 中间件的实现 徐 展 0755-86110606深圳立格射频科技有限公司
提纲 • 什么是RFID中间件 • 为什么要使用 RFID中间件 • RFID中间件的需求 • RFID中间件的标准 • ALE接口介绍 • ALE实现介绍 • RFID中间件的技术实现 • RFID中间件产品
什么是RFID中间件 RFID 中间件是用来加工和处理来自读写器的所有信息和事件流的软件,是连接读写器和企业应用的纽带,使用中间件提供一组通用的应用程序接口(API),即能连到RFID读写器,读取RFID标签数据 。它要对标签数据进行过滤、分组和计数,以减少发往信息网络系统的数据量并防止错误识读、多读信息。
为什么要使用 RFID中间件 • 如何将现有的系统与新的RFID Reader连接 ? 这个问题的本质是用户应用系统与硬件接口的问题。在RFID应用中,通透性是整个应用的关键,正确抓取数据、确保数据读取的可靠性、以及有效地将数据传送到后端系统都是必须考虑的问题。
中间件在系统中的作用及位置 为什么要使用 RFID中间件
为什么要使用 RFID中间件 RFID中间件与系统集成
为什么要使用 RFID中间件 • 数据过滤和收集 去除阅读器产生冗余、错误的标签数据。 生成报告时只上传关心的数据(分组统计的)。 • RFID基础设施管理 典型的企业级应用需要管理成百上千的阅读器(可能是不同牌子的) ,RFID中间件提供对其进行配置管理,实时监控阅读器的状态。
RFID中间件的需求 • 数据处理尽量靠近源头 • 大量RFID数据存在于系统“边缘”; • 让有价值的数据进入中央系统; • 对数据进行清理、筛选、整合和汇总; • 屏蔽各种错误与异常,避免给中央系统带来麻烦。
RFID中间件的需求 • 对事件进行层层抽象,转化为有价值的事件 • RFID应用领域面临着大量简单事件; • 实现简单事件向有价值事件的转化。
RFID应用框架 RFID中间件的标准
RFID中间件的标准 • EPCglobal 受业界委托而成立的非盈利组织,由国际物品编码协会(EAN)和美国统一代码委员会(UCC)共同投资,主要负责 EPC网络的全球化标准,以便快速、自动、准确地识别供应链中流通的商品。
RFID中间件的标准 • RFID阅读器和RFID中间件之间,定义了读写器访问协议和管理接口 • RFID中间件和EPCIS捕获应用之间,定义了RFID事件过滤和采集接口(ALE) ALE:Application Level Events
ALE接口介绍 EPCglobal推荐的ALE(Application Level Events)接口包含了以下几个部分: • ECSpec定义/取消定义 • EC:Event Cycle • ECReport获取 • 其它辅助接口
ALE接口介绍 • ALE的基本操作 应用发一个请求到ALE的接口要求读或写标签,ALE Engine处理从读写器传回来的数据报生报告回给应用。形象点可以看成给我一份从仓库1号门读到EPC码的清单 (ECSpec定义及发送),ALE Engine生成一份仓库1号门读到EPC码的清单报告送回(ECReport获取)。
ALE接口介绍 • ECSpec用来描述事件周期间隔或事件触发机制,ECReport的格式,事件过滤和组合规则等。 <ale:ECSpec includeSpecInReports="true"> <logicalReaders> <logicalReader>AITReader</logicalReader> </logicalReaders> <boundarySpec> <duration unit="MS">1000</duration> </boundarySpec> <reportSpecs> <reportSpec reportIfEmpty="false" reportName="AITReaderReport" reportOnlyOnChange="false"> <reportSet set="ADDITIONS"/> <filterSpec> <includePatterns> <includePattern>urn:epc:pat:sgtin-64:*.*.*.*</includePattern> </includePatterns> </filterSpec> <output includeCount="false" includeEPC="true" includeRawDecimal="false" includeRawHex="true" includeTag="true"/> </reportSpec> </reportSpecs> </ale:ECSpec>
ALE接口介绍 • ECReport是EPC事件的汇集,还包括其它相关的信息,譬如逻辑阅读器名称,ECSpec信息等。 <ale:ECReports specName="sampleECSpec" xmlns:ale="urn:epcglobal:ale:xsd:1"> <reports> <report reportName=" AITReaderReport "> <group> <groupList> <member> <tag>urn:epc:tag:gid-64-i:10.50.5</tag> </member> <member> <tag>urn:epc:tag:gid-64-i:10.40.4</tag> </member> </groupList> <groupCount> <count>2</count> </groupCount> </group> </report> </reports> </ale:ECReports>
ALE接口介绍 • define(specName:string, spec:ECSpec) : void • 定义ECSpec • undefine(specName:string) : void • 取消已定义的ECSpec • getECSpec(specName:string) : ECSpec //returns ECSpec object • 得到ECSpec • getECSpecNames() : List// returns a list of specNames as strings • 得到ECSpec的名字 • subscribe(specName:string, notificationURI:string) : void • 订阅一个ECSpec • unsubscribe(specName:string, notificationURI:string) : void • 取消订阅一个ECSpec • poll(specName:string) : ECReports //returns ECReports object • Poll ECSpec • immediate(spec:ECSpec) : ECReports • 定义ECSpecspec, poll并取消定义 • getSubscribers(specName:String) : List // of notification URIs • 查看谁在订阅指定的 ECSpec • 。。。。。。
ALE实现介绍 • RFID中间件和RFID读写器之间存在一个读周期(Read Cycle) 。 • ALE接口规范定义了一个事件周期(Event Cycle),一个事件周期会包含一个或多个读周期,因此,RFID中间件在这一事件周期内读取的所有标签信息被聚合起来,然后通过过滤机制,发布成为一个ECReport。
读周期和事件周期的关系图 ALE实现介绍
evGlimpsed event time evLost event ALE实现介绍 • 阅读器在每个read cycle 结束的时候会产生大量tag数据,即使在内部 进行了过滤操作,当系统中存在大量物理阅读器的时候,产生的数据量会 对网络带宽和CPU使用带来极大的压力,需要引入Event Generation/Smoothing机制。如下图所示,引入事件通知机制事件的数量从6 个降低到了2个。
time ALE实现介绍 • 由于在有些情况下 RFID Tags并不能够每次都被物理阅读器发现,即使他们处于天线的有效范围内,所以真实的时间图不会像上面一样理想,而是会像下图所示。 • 有三个read cycle 并没有读到tag ,虽然tag仍然在天线区域内,如果仍然像上面那样处理事件生成的话,就会生成四个发现事件和四个消失事件,Smoothing机制就可以有效地避免这种问题。
immediate, when no startTrigger specified subscribe or poll, when no startTrigger specified immediate Start trigger received or repeatPeriod elapsed define subscribe or poll Unre-quested) Re-quested Active unsubscribe of last subscriber Stop trigger received, duration elapsed, or field stable for stableFieldInterval undefine Stop condition reached, and only requester was poll Stop condition reached, and only requester was immediate ALE实现介绍
ALE实现介绍 从上图描述的ALE工作机制,大家可以看到,有两种机制(同步和异步)之分。 • 在同步工作机制下,客户端直接调用immediate()接口,通知开始工作,如需要触发器触发,其状态切换到请求状态,如无需触发器触发,其状态直接切换到工作状态;在需要触发器触发的情况下,基于ECSpec定义的采集方式(或触发器启动,或周期轮询),聚合单一事件周期内所有读周期获取的EPC信息,生成ECReport,发送给客户端,其状态切换到工作状态。 • 在异步工作机制下,第一步是定义ECSpec,告诉Edge Server如何生成ECReport,其状态切换到未请求状态;第二步是通过调用subscribe(订阅)或者poll(抽取),告诉Edge Server其采集EPC操作开始工作,如需要触发器触发,其状态切换到请求状态,如无需触发器触发,其状态直接切换到工作状态;在需要触发器触发的情况下,基于ECSpec定义的采集方式(或触发器启动,或周期轮询),聚合单一事件周期内所有读周期获取的EPC信息,生成ECReport,发送给客户端,其状态切换到工作状态
RFID中间件的技术实现 • 实现ALE规范的所有必需要求 - 实现ALE接口规范所描述的工作状态机 - 支持多类EPC事件接收客户端(HTTP,TCP,FILE) - 处理ECSpec,ECReport等XML,为第三方应用提供Web Service接口
RFID中间件的技术实现 • 集成业界主流的RFID读写器 - Symbol/Matrix读写器 - Zebra读写器 - Intermec读写器 - ThinkMagic读写器 - Alien读写器 - Avery读写器 - SAMSys读写器 - Printronix读写器 - Awid读写器
RFID中间件的技术实现 • 提供RFID中间件自身的配置管理 - 配置读写器集成参数,实现不同读写器的集成 - 配置ALE接口参数,实现第三方应用的访问 - 配置中间件工作参数,实现RFID中间件在特殊环境下适应性工作 - 提供集中管理
RFID中间件的技术实现 • 提供对RFID读写器的监控、基本配置和管理 - 支持多个RFID读写器的同时访问,监控 - 支持对不同RFID读写器的基本配置和管理
RFID中间件的技术实现 • 提供灵活扩展的框架,支持ALE规范的升级和快速集成新的RFID读写器 - 提供版本维护机制,支持ALE规范的升级 - 提供开发工具包,快速集成新的RFID读写器
RFID中间件产品 • AIT AIT LYNKO-ALE,具有自主产权 • BEA BEA EDGE SERVER • IBM IBM RFID ALE Engine • SUN Sun Java System RFID
公司介绍 • 深圳立格射频科技有限公司 专业的射频自动识别技术(RFID)整体解决方案提供商 • 资源优势 • 我们拥有中国第一条专业的电子标签封装线 ,具备各种频率、各种规格的电子标签封装生产能力 ; • 拥有自主知识产权的基于RFID应用的中间件软件产品; • 以及其他应用软件的开发、系统咨询、系统集成服务 ;