在 ALE 中,应用系统可以定义这些内容:在什么地方(地点可以映射一个或多个读写 器及天线)读取标签,将在怎样的时间间隔内(决定时间、某个外部事件触发)收集数据, 如何过滤数据,如何整理数据报告内容(按照公司、商品还是标签分类),标签出现或消失 时是否对外报告,以及统计读取到的标签数目等。
ALE 标准定义的是一组接口,它不牵涉到具体实现。在EPCglobal 组织的规划中,支 持ALE 标准是RFID中间件的最基本的一个功能;这样,在统一的标准下,应用层上的调用 方式就可统一,应用系统也就可以快速部署。因此,实现ALE 引擎对RFID中间件具有重要意义。
1.2 OSGi
OSGi(Open Systems Gateway Initiative)[4]规范为网络服务定义了一个标准的、面向组件 的计算环境,在此环境中软件组件可以从运行中被安装、升级或者移除而不需要中断设备的 操作,还可以动态的发现和使用其他库或者应用程序。采用OSGi的一种考虑是因为中间件 的开发要依据组件概念来进行设计,这些组件被开发为软件包,通过引用的方式来进行互调。 在OSGi框架中,应用程序可以单独进行部署,以软件包的形式进行开发。正确的使用该模 型可以使软件包进行重用和快速替换,并且使第三方软件包重用成为可能。
2 引擎设计
如图1所示,ALE引擎由引擎内核、数据处理和事件处理三大模块组成,它们结合起来 满足ALE标准所要求的接口功能。
图1 ALE引擎架构
2.1 事件处理模块
事件处理模块分为四个字模块:应用层事件接口是符合 ALE 标准的程序接口,提供标 准的方法供应用程序调用以获取ALE标准的功能;事件请求模块分析应用程序的事件请求,即ALE 标准中定义的ECSpec ,并根据请求对事件报告组建模块、引擎内核、数据过滤模 块、数据分组模块和数据格式转换模块进行相应的配置;事件报告组建模块负责按照应用程 序的事件请求生成数据报告,数据报告有统一的格式,但是应用程序可以指定报告的种类(当 前读取标签/消失标签/新增标签)和数据分组的规则;根据ALE标准应用程序可以以异步 的方式请求数据报告,报告分发模块提供了以异步方式向事件报告订阅者发送报告的功能, 发送方式可以是HTTP, FTP, Web Service 等多种方式。