1 引言
RFID(Radio Frequency Identification)也称射频识别技术,可实现更大范围内的物品跟踪与信息共享,并大幅提高管理与运作效率,降低成本。目前RFID 应用软件多数都是围绕中间件或读写器进行设计[3],本文提出并初步实现了面向RFID 应用部署的可视化仿真系统。该系统利用组态技术实现,仿真运行基于标签事件驱动,并在RFID 测试数据的统计分析基础上设计了虚拟设备仿真算法,可以帮助用户针对具体RFID 应用部署场景建立直观准确的应用模型系统。通过将应用场景内各种实物和RFID 设备等部署单元抽象为仿真模型,模拟其工作特性和相互关系[1],来分析测试RFID 部署方案在实际应用中出现的主要问题和影响因素,进而提出科学合理的解决方案,为进行实际应用开发提供技术支持。
2 系统结构与流程设计
2.1 体系框架
如图1 所示,系统主要由用户界面模块、数据处理模块、虚拟设备模块以及RFID 测试数据库和本地数据库五部分组成,它们之间接口独立,相互协调工作,共享信息。在该体系架构中,用户界面模块是系统的用户接口,负责显示各种界面控件、部署效果以及动态仿真动画等,用户根据具体RFID 应用场景和业务需求自定义部署系统,配置界面调用虚拟设备模块的各种虚拟设备属性和配置参数供用户修改,其中用到的各种参数均从RFID 测试数据库中下载。虚拟设备模块对仿真系统中的虚拟标签和虚拟读写器进行统一管理,实时接收运行过程中产生的各种原始数据进行相关计算,将计算结果提交数据处理模块进行二次数据处理(如业务规则事件触发),所有结果数据保存在本地数据库中,同时将部分数据返回至用户界面模块。这里需要提到的是设备驱动子模块,该模块统一封装常用RFID 设备厂商驱动并提供EPC Global 规定的读写器标准接口,目的是在必要时连接RFID 实物设备对仿真系统某些关键节点进行校正[6],使总体仿真结果更加准确可靠。RFID 测试数据库作为整个系统的数据源实时保持更新,它可以存储在服务器数据库中,也可以保存在本地数据库中,供仿真系统下载和调用相关数据,程序代码通过JDBC 技术来访问数据库。
图1 RFID 部署仿真系统体系架构模型
2.2 RFID 测试数据库
为了使系统的仿真结果准确可靠,所有虚拟设备配置参数和后台仿真算法的数据源均由RFID 测试数据库提供,该数据库为关系型数据库,主要包括读写器参数表、读写器配置表、标签-距离表、标签-速度表、标签-角度表、标签-高度表、标签-介质表、标签-数量表、标签-温度表、标签-湿度表等数据表格,各项数据表格内的测试数据均在实验室模拟环境测试得出。
2.3 动态仿真流程
系统动态仿真流程如图 2 所示,仿真系统运行之前首先载入RFID 测试数据,用户根据实际应用需求自定义应用部署系统,系统自动将各项配置转化为具体参数并保存,供系统仿真运行时调用。这里的运行态基于事件驱动设计,利用多线程并行实现,每个线程中仿真模拟一个或多个虚拟标签,若虚拟标签触发虚拟读写器成功,则根据用户自定义业务逻辑规则寻找对应的标签事件,保存至本地数据库并实时显示在系统界面中。当所有线程的标签事件触发完毕时,仿真系统运行结束,此时所有仿真运行数据均保存在本地数据库中,部分数据同时显示在系统界面内供用户查询。最后启动数据分析挖掘模块,根据自定义统计规则和数据挖掘算法对本地数据库中的相关数据进行整理归纳,统计仿真系统的静态负载、动态负载、流程瓶颈等指标,同时自动生成相应的咨询建议供用户参考[6],以文字和图表的形式反馈至系统界面。
图2 系统仿真流程2.4 虚拟标签触发算法
判断虚拟标签是否触发指定虚拟读写器是仿真系统运行的关键环节,触发概率算法的准确与否直接决定仿真结果的可信性,以下为虚拟标签的触发概率算法:
下面以虚拟标签运行到坐标(x, y)时为例,计算与坐标为(v, w)虚拟读写器之间的触发概率算法如下:
//此方法通过线程循环方式实现读写器对虚拟标签读取概率的计算,t为读写器的读取标签循环指令周期
3 系统实现
系统在Microsoft Windows Server 2003 操作系统、Eclipse 3.2 + JDK1.6 + SWT Designer6.0,SQL Server 2000 数据库的环境下开发。
3.1 界面实现
界面按照操作顺序主要分为三类界面:
(1) 新建项目界面。用户新建项目、参数配置、RFID 设备选择和RFID 设备配置。
(2) 系统主界面。提供可视化部署窗口,并显示部署系统动态运行的动画效果。
(3) 运行结果分析统计界面。生成统计结果和咨询建议,以文字和图表的形式显示。
3.2 接口实现
该系统接口主要分为两大类:第一种是代码模块之间的数据传输接口,这些接口由Java语言本身定义。第二种接口是代码模块与数据库之间的数据传输接口,此类接口基于JDBC技术实现,以XML 标准格式进行传输。
3.3 功能实现
系统实现的主要功能有:
(1) 提供用户对仿真部署方案的新建、保存、修改和删除等功能。
(2) 对系统仿真部署过程中提供各种操作功能,如添加、删除、修改,参数设置等。
(3) 以动画仿真和界面数据实时动态更新等形式提供生动的用户交互界面。
(4) 提供对本地数据库原始数据的查询和过滤功能,但是用户没有修改权限。
(5) 以图表的形式提供良好直观的仿真结果分析查询功能。
(6) 提供对仿真系统流程瓶颈、负载压力以及潜在不稳定节点等各项指标的分析功能。
(7) 提供系统常用维护功能,包括操作日志管理,本地数据库数据导出等。
4 总结
本文所论述的RFID 部署仿真系统基于组态技术和事件驱动进行设计,可以直观有效帮助用户配置和部署RFID 应用系统,建立虚拟设备仿真模型,向RFID 系统部署用户或开发人员提供一个良好的可视化开发平台。该系统基于RFID 测试数据库进行设计,根据环境参数的设置模拟应用现场RFID 设备的读取情况,尽量保证仿真系统的准确性和可信性。
本文作者创新点为将组态虚拟技术应用到RFID 应用部署过程中,针对RFID 技术特性的设计了虚拟化设备模型和标签触发规则等,并引入了现场测试数据来修正模拟运行结果,从而在一定程度上解决了当前RFID 技术不成熟和标准不统一对实际部署造成的各种困难。