3.1 终端接口层
中间件架构最下层为终端接口层,其为各种类型的终端设备接口,负责把物理的硬件设备抽象为中间件的终端对象[6]。
中间件为每个终端配备一个适配器,不同种类的终端设备对应于不同类型的适配器,并且中间件可以动态地添加和删除适配器。适配器可以直接与终端设备的阅读器通信,收集标签数据然后送往阅读器接口。从阅读器接口出来的数据为统一格式的原始数据,从而保证了不同类型的阅读器可以完整地传送数据到中间件。终端管理模块主要完成不同终端的注册验证和管理控制。中间件可以通过配置终端对象的Driver、Rule、Dispatcher等参数,对不同的终端进行管理控制和数据读写。
3.2 逻辑处理层
作为中间件的核心层,逻辑处理层主要完成对终端数据的缓冲、过滤、事件处理和事件驱动控制等功能,其处理流程如图4所示。
逻辑处理层主要包括数据处理和事件处理两个部分。数据处理部分主要根据数据过滤规则,处理各种数据冗余,包括完成数据校验、数据合法性验证、删除重复和错误的信息等[7]。而事件处理部分主要根据业务规则,从数据中提取各种基本事件并判断事件类型,然后处理各种基本事件并执行相应的任务,形成相关的报告文件。
3.3 应用层
中间件架构最上层是应用层,用于提供各种应用接口。本系统主要包括本地的用户界面和远程网络接口。本地用户接口便于用户在中间件上控制各种终端对象和查看相关信息,远程网络接口方便服务器远程控制中间件和终端设备。中间件将根据服务器协议要求把数据封装成为XML(可扩展标记语言)格式,并以TCP方式发送给溯源平台服务器。为了方便中间件的管理和升级,中间件内嵌FTP和Telnet 服务程序。对外提供的标准接口为中间件提供了良好的扩展性和兼容性。
4 性能测试
经试验测试,本文设计的中间件具有如下性能:
(1)体积小,部署地点接近于数据现场。该中间件尺寸为:160 mm×80 mm×40 mm,重量大约800 g(含电池),与普通的手持式设备大小接近。
(2)功耗低。最大功耗为15 W,由于采用了屏保、待机和睡眠等节能技术,平均功耗在12 W以下。
(3)系统占用资源较少,性能较高。首先将中间件通过以太网与PC测试主机连接,在PC主机上打开cmd命令行窗口,输入Telnet 10.2.5.0(中间件IP),即可远程登录中间件;然后输入root,切换到根用户,再运行top指令。测试得到中间件性能如表1所示。
由表1可知,核心的system内存只有859 KB,加上外部中断和远程访问等进程,CPU占用率不足55%,占用内存总共不到1.5 MB,其余为用户的缓冲和处理所占用的资源和空闲资源。由此可见,该中间件系统正常运行所需的资源非常小,适合资源有限的嵌入式环境。
中间件技术是分布式食品溯源系统的中枢,它不仅能屏蔽RFID阅读器的多样性和复杂性,还能进行EPC信息的采集和处理,为各种应用提供集成平台,从而促使更丰富、更广泛的RFID应用[8]。本文针对嵌入式特点,研究了分层的嵌入式RFID中间件ERM模型,从硬件和软件两方面论述了嵌入式RFID中间件系统的设计和实现。经测试,该中间体积小、能耗低、占用资源少、性能高。