0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

使用OSGi技术实现ALE引擎的设计

电子设计 来源:郭婷 作者:电子设计 2019-07-16 08:01 次阅读

引 言

无线射频识别技术(Radio Frequency Identification,以下简称RFID)是从20 世纪90 年代 兴起的一项自动识别技术,它利用无线射频方式进行非接触双向通信,以达到识别目的并交 换数据。随着RFID 技术和应用的发展,RFID 系统日趋复杂,RFID 中间件的出现很好地解 决了将物理基础架构收集到的信息传递给企业应用程序的问题。中间件的主要任务是对读写器传来的与标签相关的事件、数据进行过滤、汇集和计算,减少从读写器传往企业应用的巨 量原始数据、增加抽象出的有意义的信息量,并提供应用程序级别的接口来查询RFID 事件 。

ALE是应用层事件简称,最初作为Savant 应用的一部分开发而成,如今归属于国际 标准组织EPCglobal,它是旨在把低层的电子产品代码(EPC)数据和高层的企业系统相互连 接的EPCglobal 网络计划的一部分,现在已成为标准。RFID 中间件应该提供符合ALE 标 准的接口供企业系统或者第三方组件访问,扩大中间件的适用范围,因此设计和开发可重构 的、可靠的ALE 引擎对实现成熟的RFID 中间具有重要意义。

1 相关研究

1.1 应用层事件(ALE)标准

RFID 读写器在工作时不停地读取标签,造成同一个标签在短时间内可能被读到很多次, 这些数据如果直接发送给应用程序将为通信网络带来很大的负担,所以需要RFID 中间件对 这些原始数据进行一层收集和过滤的处理。ALE 的出现就是为了减少原始数据的冗余性,为 应用系统从大量数据中提炼出有效的业务逻辑。ALE 层介于应用业务逻辑和原始标签读取层 之间,它接收从数据源(一个或多个读写器)中读取的标签信息,而后按照时间间隔等条件 收集数据,将重复或不敢兴趣的EPC 数据剔除过滤,同时可以进行计数及组合等操作,最 后将这些信息对应用系统进行汇报。

在 ALE 中,应用系统可以定义这些内容:在什么地方(地点可以映射一个或多个读写 器及天线)读取标签,将在怎样的时间间隔内(决定时间、某个外部事件触发)收集数据, 如何过滤数据,如何整理数据报告内容(按照公司商品还是标签分类),标签出现或消失 时是否对外报告,以及统计读取到的标签数目等。

ALE 标准定义的是一组接口,它不牵涉到具体实现。在EPCglobal 组织的规划中,支 持ALE 标准是RFID 中间件的最基本的一个功能;这样,在统一的标准下,应用层上的调用 方式就可统一,应用系统也就可以快速部署。因此,实现ALE 引擎对RFID 中间件具有重要 意义。

1.2 OSGi

OSGi(Open Systems Gateway Initiative)[4]规范为网络服务定义了一个标准的、面向组件 的计算环境,在此环境中软件组件可以从运行中被安装、升级或者移除而不需要中断设备的 操作,还可以动态的发现和使用其他库或者应用程序。采用OSGi 的一种考虑是因为中间件 的开发要依据组件概念来进行设计,这些组件被开发为软件包,通过引用的方式来进行互调。 在OSGi 框架中,应用程序可以单独进行部署,以软件包的形式进行开发。正确的使用该模 型可以使软件包进行重用和快速替换,并且使第三方软件包重用成为可能。

2 引擎设计

如图1所示,ALE引擎由引擎内核、数据处理和事件处理三大模块组成,它们结合起来 满足ALE标准所要求的接口功能。

使用OSGi技术实现ALE引擎的设计

2.1 事件处理模块

事件处理模块分为四个字模块:应用层事件接口是符合 ALE 标准的程序接口,提供标 准的方法供应用程序调用以获取ALE 标准的功能;事件请求模块分析应用程序的事件请求,即ALE 标准中定义的ECSpec ,并根据请求对事件报告组建模块、引擎内核、数据过滤模 块、数据分组模块和数据格式转换模块进行相应的配置;事件报告组建模块负责按照应用程 序的事件请求生成数据报告,数据报告有统一的格式,但是应用程序可以指定报告的种类(当 前读取标签/消失标签/新增标签)和数据分组的规则;根据ALE 标准应用程序可以以异步 的方式请求数据报告,报告分发模块提供了以异步方式向事件报告订阅者发送报告的功能, 发送方式可以是HTTP, FTP, Web Service 等多种方式。

2.2 引擎内核

事件管理是 ALE 引擎中最核心的功能,引擎内核模块负责管理事件的生命周期,如图 2 所示。在ALE 模型中有几个最基本的概念:读周期(Read Cycle),事件周期(Event Cycle)和事件周期定义(ECSpec)。读周期是和读写器交互的最小时间单元,一个读周期的 结果是一组EPCs 集合,读周期的时间长短和具体的天线、无线射频协议有关,读周期的输 出就是ALE 层的数据。事件周期可以是一个或多个读周期,它是从用户的角度来看待 读写器的,并可以将一个或多个读写器当作一个整体,是ALE 接口和用户交互的最小时间 单元。应用业务逻辑层的客户在ALE 中定义好ECSpec 之后,就可接收相应的事件周期的 数据报告。

使用OSGi技术实现ALE引擎的设计

2.3 数据处理模块

数据处理模块分为四个子模块:数据队列模块负责缓存数据,当读写器读取到一个标签 时会把数据放入相应的队列,其他的数据处理模块会把数据从队列中取出然后进行处理,当 队列满了或者超时数据会从队列中删除;数据格式转换模块根据应用的要求对数据做出格式 转换;数据过滤模块根据ECSpec的定义对数据进行过滤,过滤规则包括“包含模式”和 “排除模式”两种模式[3],最后出现在报告中的标签信息至少要与“包含模式”列表中的一 个模式匹配,并且不能与任何出现在“排除模式”中的模式匹配;数据分组模块根据ECSpec 的定义对过滤后的数据进行分组和统计。

3 引擎内核实现

引擎内核采用事件驱动的方式实现,见图 3。

使用OSGi技术实现ALE引擎的设计

图3 引擎内核实现

一个 ECSpec 在内核里对应着一个事件周期管理者,应用层对于ALE 读接口的调用会 映射到具体的事件周期管理者上,由事件周期管理者来完成接口提供的功能。当一个 ECSpec 被定义时(即调用define 或immediate 方法),引擎就会为这个ECSpec 创建 对应的事件周期管理者,同时创建一个事件周期对象和各种触发器。当ALE 接口调用请求 者第一次对某个ECSpec 发出调用请求时(例如调用subscribe, poll, immediate 方法) 将激活对应的事件周期管理者,此时由这个事件周期管理者所控制的事件周期对象和各个触 发器也被激活,事件周期对象开始按照ECSpec 中所定义的边界条件开始和结束激活状态, 并收集RFID 标签数据。当最后一个接口调用请求的调用方法返回时,事件周期管理者再次 进入休眠状态,对应的事件周期对象和各个触发器也停止运行,直到被再次唤醒或者随着该 ECSpec 的撤销被撤销。

ECSpec 会在未请求、已请求和活跃状态三种状态的之间迁移,状态策略模块根据状 态转换的规则转换ECSpec 的状态。外部调用请求会导致状态的变迁,不同的状态下接收 到相同的调用请求除了执行不同的操作外还可能使ECSpec 变迁为不同的后继状态,因此 这里使用了状态模式。每一时刻ECSpec 都会处于某一种状态中,事件周期管理者接收到 接口调用请求后都会把请求代理给状态策略模块,由当前状态策略决定对调用如何响应和确 定后继状态是什么。

ALE 标准中定义了事件周期触发器,并且具体定义了一个时间触发器。在引擎中,除了 这个时间触发器外,所有事件周期边界条件都被看作是一种触发器,因此抽象出一个触发器 接口Trigger 。事件周期中定义的各种的边界条件, 如duation, repeatPeriod, stableSetInterval 等等都是抽象Tigger 的具体实现。因此抽象Trigger 可以理解为影响事 件周期开始和结束的触发条件,而ALE 标准中所定义的ECTrigger 成为抽象Trigger 的其中 一种具体实现。在具体触发器的创建过程中使用了抽象工厂模式,事件周期管理者在初始化 的时候调用工厂方法创建各种具体的触发器。

4 结 论

使用事件驱动的方式设计和实现了 ALE 引擎,减低了各模块之间的耦合度,有利于引 擎的维护和扩展。抽象了事件周期触发器概念,令所有边界触发条件和触发器能够统一管理 和工作,简化了把用户自定义的触发器加入引擎的过程,令触发器系统有更好的扩展性。作 为RFID 中间件中重要的部分,该引擎为可重构的RFID 中间件提供了很好的支持。而采用 OSGi 技术实现ALE 引擎得以实现诸如动态更新数据处理和事件处理组件的需求,对于中小 型企业应用RFID 技术,可以动态地组合ALE 引擎的功能,不再需要一次性购买大量复杂 的RFID中间件产品,从而形成了一种快速的和可扩展的RFID 中间件解决方案,降低了RFID 应用技术的成本。


声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • RFID
    +关注

    关注

    383

    文章

    5784

    浏览量

    234671
  • 无线
    +关注

    关注

    31

    文章

    5304

    浏览量

    171467
  • 通信网络
    +关注

    关注

    20

    文章

    1992

    浏览量

    51550
收藏 人收藏

    评论

    相关推荐

    基于Notes的OA工作流引擎的设计和实现

    Domino/Notes平台上实现了工作流引擎实现了的工作流引擎由后台类实现业务逻辑和前端类实现
    发表于 04-24 09:22

    请问nand中的ALE该怎么算?

    ; NANDFLASH_ALE = (blocknum & 0x0003) > 2; NANDFLASH_ALE = (blocknum & 0x0c00) >> 10
    发表于 10-28 09:30

    求助,关于单片机ALE引脚的问题

    单片机不访问外部锁存器的时候ALE断有正脉冲信号输出,此频率约为始终振荡频率的1/6,每当访问外部数据存储器时候。两个机械周期中ALE只出现一次,及丢失一个ALE脉冲,这句话是不是有毛病,我觉的应该丢失3个啊
    发表于 11-03 08:14

    基于Web的地图服务引擎的设计与实现

    论文结合实时栅格地图渲染引擎和矢量地图发布引擎的优点,提出一种新的基于Web的地图服务引擎的设计方案和实现过程,并采用栅格地图预渲染入库的方式,显著地改善了
    发表于 12-14 16:23 20次下载

    RFID中间件ALE引擎设计与实现

    无线射频识别技术(RFID)中间件为应用系统封装底层RFID设备操作细节、处理设备收集的数据、提供应用程序级别的接口来控制RFID读写器和查询RFID事件。本文介绍了一个支持EPCglobal
    发表于 01-25 14:12 18次下载

    短波快速跳频系统下新的ALE呼叫方法

    文章对于第三代短波ALE(快速链路建立)进行了研究,对其中的关键技术进行了讨论.并在美军3G-ALE 标准的基础上,根据短波信道的传播特性,针对窄带接收的短波快速跳频通信
    发表于 01-27 11:56 22次下载

    基于OSGI家庭网关的多媒体系统设计

    随着家庭网络技术和多媒体技术的飞速发展,如何实现数字家庭中多媒体服务智能化和人性化已成为当今研究的热点。本文介绍一种基于OSGI家庭网关和UPNP AV架构扩展的媒体共享系统
    发表于 02-26 13:48 18次下载

    基于OSGI的智能家庭系统设计

    为了解决普适环境下智能家庭各类设备组网困难的问题,本系统采用OSGi(Open Service Gateway Initiative)服务框架和LonWorks现场总线技术,利用低压电力线载波手段来设计和实现智能家庭系统。
    发表于 04-28 10:36 35次下载
    基于<b class='flag-5'>OSGI</b>的智能家庭系统设计

    OSGi原理与最佳实践_王昊

    本书基于作者多年使用0SGi的经验而编写,涵盖了0SGi从/kfqN深入的知识体系,从OSGi的简介开始,介绍OSGi的作用及基本概念;其后进入OSGi实战,结合实例讲解如何基于OSGi
    发表于 12-23 15:35 0次下载
    <b class='flag-5'>OSGi</b>原理与最佳实践_王昊

    基于JAVA技术的搜索引擎的研究与实现

    本文还利用Java技术对搜索引擎的三个核心部分即网络蜘蛛、网页索引、搜索进行了实现。索引和搜索部分借助Lucene全文搜索引擎库中的Java类进行
    发表于 05-07 14:14 35次下载
    基于JAVA<b class='flag-5'>技术</b>的搜索<b class='flag-5'>引擎</b>的研究与<b class='flag-5'>实现</b>

    如何控制51单片机的ALE引脚

    ALE/PROG: 当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。
    发表于 08-09 17:33 1次下载
    如何控制51单片机的<b class='flag-5'>ALE</b>引脚

    使用单片机实现ADC0808中断方式AD的ALE输出CLK的仿真文件免费下载

    使用单片机实现ADC0808中断方式AD的ALE输出CLK的仿真文件免费下载
    发表于 03-21 09:43 11次下载

    使用51单片机实现ADC0808查询方式AD ALE输出CLK的仿真文件

    本文档的主要内容详细介绍的是使用51单片机实现ADC0808查询方式AD ALE输出CLK的仿真文件免费下载。
    发表于 03-22 16:36 12次下载

    OpenDaylight中的OSGi

    从写单个类的打印Hello World小程序到OSGi模块化开发,确实存在较大的难度,本文将从模块化、OSGI模型以及OSGI在OpenDaylight中的应用等方面进行介绍。
    的头像 发表于 02-14 15:05 495次阅读
    OpenDaylight中的<b class='flag-5'>OSGi</b>

    基于OSGI的智能家庭系统的设计与实现

    电子发烧友网站提供《基于OSGI的智能家庭系统的设计与实现.pdf》资料免费下载
    发表于 10-27 10:41 0次下载
    基于<b class='flag-5'>OSGI</b>的智能家庭系统的设计与<b class='flag-5'>实现</b>