1 引言
RFID(Radio Frequency Identification)也稱射頻識(shí)別技術(shù),可實(shí)現(xiàn)更大范圍內(nèi)的物品跟蹤與信息共享,并大幅提高管理與運(yùn)作效率,,降低成本。目前RFID 應(yīng)用軟件多數(shù)都是圍繞中間件或讀寫器進(jìn)行設(shè)計(jì)[3],,本文提出并初步實(shí)現(xiàn)了面向RFID 應(yīng)用部署的可視化仿真系統(tǒng),。該系統(tǒng)利用組態(tài)技術(shù)實(shí)現(xiàn),仿真運(yùn)行基于標(biāo)簽事件驅(qū)動(dòng),并在RFID 測(cè)試數(shù)據(jù)的統(tǒng)計(jì)分析基礎(chǔ)上設(shè)計(jì)了虛擬設(shè)備仿真算法,,可以幫助用戶針對(duì)具體RFID 應(yīng)用部署場(chǎng)景建立直觀準(zhǔn)確的應(yīng)用模型系統(tǒng),。通過(guò)將應(yīng)用場(chǎng)景內(nèi)各種實(shí)物和RFID 設(shè)備等部署單元抽象為仿真模型,模擬其工作特性和相互關(guān)系[1],,來(lái)分析測(cè)試RFID 部署方案在實(shí)際應(yīng)用中出現(xiàn)的主要問(wèn)題和影響因素,,進(jìn)而提出科學(xué)合理的解決方案,,為進(jìn)行實(shí)際應(yīng)用開發(fā)提供技術(shù)支持,。
2 系統(tǒng)結(jié)構(gòu)與流程設(shè)計(jì)
2.1 體系框架
如圖1 所示,系統(tǒng)主要由用戶界面模塊,、數(shù)據(jù)處理模塊,、虛擬設(shè)備模塊以及RFID 測(cè)試數(shù)據(jù)庫(kù)和本地?cái)?shù)據(jù)庫(kù)五部分組成,它們之間接口獨(dú)立,,相互協(xié)調(diào)工作,,共享信息。在該體系架構(gòu)中,,用戶界面模塊是系統(tǒng)的用戶接口,,負(fù)責(zé)顯示各種界面控件、部署效果以及動(dòng)態(tài)仿真動(dòng)畫等,,用戶根據(jù)具體RFID 應(yīng)用場(chǎng)景和業(yè)務(wù)需求自定義部署系統(tǒng),,配置界面調(diào)用虛擬設(shè)備模塊的各種虛擬設(shè)備屬性和配置參數(shù)供用戶修改,其中用到的各種參數(shù)均從RFID 測(cè)試數(shù)據(jù)庫(kù)中下載,。虛擬設(shè)備模塊對(duì)仿真系統(tǒng)中的虛擬標(biāo)簽和虛擬讀寫器進(jìn)行統(tǒng)一管理,,實(shí)時(shí)接收運(yùn)行過(guò)程中產(chǎn)生的各種原始數(shù)據(jù)進(jìn)行相關(guān)計(jì)算,將計(jì)算結(jié)果提交數(shù)據(jù)處理模塊進(jìn)行二次數(shù)據(jù)處理(如業(yè)務(wù)規(guī)則事件觸發(fā)),,所有結(jié)果數(shù)據(jù)保存在本地?cái)?shù)據(jù)庫(kù)中,,同時(shí)將部分?jǐn)?shù)據(jù)返回至用戶界面模塊。這里需要提到的是設(shè)備驅(qū)動(dòng)子模塊,,該模塊統(tǒng)一封裝常用RFID 設(shè)備廠商驅(qū)動(dòng)并提供EPC Global 規(guī)定的讀寫器標(biāo)準(zhǔn)接口,,目的是在必要時(shí)連接RFID 實(shí)物設(shè)備對(duì)仿真系統(tǒng)某些關(guān)鍵節(jié)點(diǎn)進(jìn)行校正[6],使總體仿真結(jié)果更加準(zhǔn)確可靠,。RFID 測(cè)試數(shù)據(jù)庫(kù)作為整個(gè)系統(tǒng)的數(shù)據(jù)源實(shí)時(shí)保持更新,,它可以存儲(chǔ)在服務(wù)器數(shù)據(jù)庫(kù)中,也可以保存在本地?cái)?shù)據(jù)庫(kù)中,,供仿真系統(tǒng)下載和調(diào)用相關(guān)數(shù)據(jù),,程序代碼通過(guò)JDBC 技術(shù)來(lái)訪問(wèn)數(shù)據(jù)庫(kù)。
圖1 RFID 部署仿真系統(tǒng)體系架構(gòu)模型
2.2 RFID 測(cè)試數(shù)據(jù)庫(kù)
為了使系統(tǒng)的仿真結(jié)果準(zhǔn)確可靠,,所有虛擬設(shè)備配置參數(shù)和后臺(tái)仿真算法的數(shù)據(jù)源均由RFID 測(cè)試數(shù)據(jù)庫(kù)提供,,該數(shù)據(jù)庫(kù)為關(guān)系型數(shù)據(jù)庫(kù),主要包括讀寫器參數(shù)表,、讀寫器配置表,、標(biāo)簽-距離表,、標(biāo)簽-速度表、標(biāo)簽-角度表,、標(biāo)簽-高度表,、標(biāo)簽-介質(zhì)表、標(biāo)簽-數(shù)量表,、標(biāo)簽-溫度表,、標(biāo)簽-濕度表等數(shù)據(jù)表格,各項(xiàng)數(shù)據(jù)表格內(nèi)的測(cè)試數(shù)據(jù)均在實(shí)驗(yàn)室模擬環(huán)境測(cè)試得出,。
2.3 動(dòng)態(tài)仿真流程
系統(tǒng)動(dòng)態(tài)仿真流程如圖 2 所示,,仿真系統(tǒng)運(yùn)行之前首先載入RFID 測(cè)試數(shù)據(jù),用戶根據(jù)實(shí)際應(yīng)用需求自定義應(yīng)用部署系統(tǒng),,系統(tǒng)自動(dòng)將各項(xiàng)配置轉(zhuǎn)化為具體參數(shù)并保存,,供系統(tǒng)仿真運(yùn)行時(shí)調(diào)用。這里的運(yùn)行態(tài)基于事件驅(qū)動(dòng)設(shè)計(jì),,利用多線程并行實(shí)現(xiàn),,每個(gè)線程中仿真模擬一個(gè)或多個(gè)虛擬標(biāo)簽,若虛擬標(biāo)簽觸發(fā)虛擬讀寫器成功,,則根據(jù)用戶自定義業(yè)務(wù)邏輯規(guī)則尋找對(duì)應(yīng)的標(biāo)簽事件,,保存至本地?cái)?shù)據(jù)庫(kù)并實(shí)時(shí)顯示在系統(tǒng)界面中。當(dāng)所有線程的標(biāo)簽事件觸發(fā)完畢時(shí),,仿真系統(tǒng)運(yùn)行結(jié)束,,此時(shí)所有仿真運(yùn)行數(shù)據(jù)均保存在本地?cái)?shù)據(jù)庫(kù)中,部分?jǐn)?shù)據(jù)同時(shí)顯示在系統(tǒng)界面內(nèi)供用戶查詢,。最后啟動(dòng)數(shù)據(jù)分析挖掘模塊,,根據(jù)自定義統(tǒng)計(jì)規(guī)則和數(shù)據(jù)挖掘算法對(duì)本地?cái)?shù)據(jù)庫(kù)中的相關(guān)數(shù)據(jù)進(jìn)行整理歸納,統(tǒng)計(jì)仿真系統(tǒng)的靜態(tài)負(fù)載,、動(dòng)態(tài)負(fù)載,、流程瓶頸等指標(biāo),同時(shí)自動(dòng)生成相應(yīng)的咨詢建議供用戶參考[6],,以文字和圖表的形式反饋至系統(tǒng)界面,。
圖2 系統(tǒng)仿真流程2.4 虛擬標(biāo)簽觸發(fā)算法
判斷虛擬標(biāo)簽是否觸發(fā)指定虛擬讀寫器是仿真系統(tǒng)運(yùn)行的關(guān)鍵環(huán)節(jié),觸發(fā)概率算法的準(zhǔn)確與否直接決定仿真結(jié)果的可信性,,以下為虛擬標(biāo)簽的觸發(fā)概率算法:
下面以虛擬標(biāo)簽運(yùn)行到坐標(biāo)(x, y)時(shí)為例,,計(jì)算與坐標(biāo)為(v, w)虛擬讀寫器之間的觸發(fā)概率算法如下:
//此方法通過(guò)線程循環(huán)方式實(shí)現(xiàn)讀寫器對(duì)虛擬標(biāo)簽讀取概率的計(jì)算,t為讀寫器的讀取標(biāo)簽循環(huán)指令周期
3 系統(tǒng)實(shí)現(xiàn)
系統(tǒng)在Microsoft Windows Server 2003 操作系統(tǒng),、Eclipse 3.2 + JDK1.6 + SWT Designer6.0,,SQL Server 2000 數(shù)據(jù)庫(kù)的環(huán)境下開發(fā)。
3.1 界面實(shí)現(xiàn)
界面按照操作順序主要分為三類界面:
(1) 新建項(xiàng)目界面。用戶新建項(xiàng)目,、參數(shù)配置,、RFID 設(shè)備選擇和RFID 設(shè)備配置。
(2) 系統(tǒng)主界面,。提供可視化部署窗口,,并顯示部署系統(tǒng)動(dòng)態(tài)運(yùn)行的動(dòng)畫效果。
(3) 運(yùn)行結(jié)果分析統(tǒng)計(jì)界面,。生成統(tǒng)計(jì)結(jié)果和咨詢建議,,以文字和圖表的形式顯示。
3.2 接口實(shí)現(xiàn)
該系統(tǒng)接口主要分為兩大類:第一種是代碼模塊之間的數(shù)據(jù)傳輸接口,,這些接口由Java語(yǔ)言本身定義,。第二種接口是代碼模塊與數(shù)據(jù)庫(kù)之間的數(shù)據(jù)傳輸接口,此類接口基于JDBC技術(shù)實(shí)現(xiàn),,以XML 標(biāo)準(zhǔn)格式進(jìn)行傳輸。
3.3 功能實(shí)現(xiàn)
系統(tǒng)實(shí)現(xiàn)的主要功能有:
(1) 提供用戶對(duì)仿真部署方案的新建,、保存,、修改和刪除等功能。
(2) 對(duì)系統(tǒng)仿真部署過(guò)程中提供各種操作功能,,如添加,、刪除、修改,,參數(shù)設(shè)置等,。
(3) 以動(dòng)畫仿真和界面數(shù)據(jù)實(shí)時(shí)動(dòng)態(tài)更新等形式提供生動(dòng)的用戶交互界面。
(4) 提供對(duì)本地?cái)?shù)據(jù)庫(kù)原始數(shù)據(jù)的查詢和過(guò)濾功能,,但是用戶沒(méi)有修改權(quán)限,。
(5) 以圖表的形式提供良好直觀的仿真結(jié)果分析查詢功能。
(6) 提供對(duì)仿真系統(tǒng)流程瓶頸,、負(fù)載壓力以及潛在不穩(wěn)定節(jié)點(diǎn)等各項(xiàng)指標(biāo)的分析功能,。
(7) 提供系統(tǒng)常用維護(hù)功能,包括操作日志管理,,本地?cái)?shù)據(jù)庫(kù)數(shù)據(jù)導(dǎo)出等,。
4 總結(jié)
本文所論述的RFID 部署仿真系統(tǒng)基于組態(tài)技術(shù)和事件驅(qū)動(dòng)進(jìn)行設(shè)計(jì),可以直觀有效幫助用戶配置和部署RFID 應(yīng)用系統(tǒng),,建立虛擬設(shè)備仿真模型,,向RFID 系統(tǒng)部署用戶或開發(fā)人員提供一個(gè)良好的可視化開發(fā)平臺(tái)。該系統(tǒng)基于RFID 測(cè)試數(shù)據(jù)庫(kù)進(jìn)行設(shè)計(jì),,根據(jù)環(huán)境參數(shù)的設(shè)置模擬應(yīng)用現(xiàn)場(chǎng)RFID 設(shè)備的讀取情況,,盡量保證仿真系統(tǒng)的準(zhǔn)確性和可信性。
本文作者創(chuàng)新點(diǎn)為將組態(tài)虛擬技術(shù)應(yīng)用到RFID 應(yīng)用部署過(guò)程中,針對(duì)RFID 技術(shù)特性的設(shè)計(jì)了虛擬化設(shè)備模型和標(biāo)簽觸發(fā)規(guī)則等,,并引入了現(xiàn)場(chǎng)測(cè)試數(shù)據(jù)來(lái)修正模擬運(yùn)行結(jié)果,,從而在一定程度上解決了當(dāng)前RFID 技術(shù)不成熟和標(biāo)準(zhǔn)不統(tǒng)一對(duì)實(shí)際部署造成的各種困難。