一種基于ISA100.11a標(biāo)準(zhǔn)的無線傳感網(wǎng)的通信中轉(zhuǎn)方法
【專利摘要】本發(fā)明提供了一種基于ISA100.11a標(biāo)準(zhǔn)的無線傳感網(wǎng)的通信中轉(zhuǎn)方法,將中間件部署在工業(yè)現(xiàn)場網(wǎng)絡(luò)中,處于網(wǎng)關(guān)和用戶之間,將一般性的網(wǎng)關(guān)服務(wù)轉(zhuǎn)變?yōu)槊嫦蛴脩粜枨蟮木唧w化監(jiān)控訪問接口,方便從用戶角度建立相關(guān)的無線傳感網(wǎng)監(jiān)控平臺。中間件采用一種命令驅(qū)動機(jī)制進(jìn)行運(yùn)作,每個具體的命令代表了用戶需要監(jiān)控的實際內(nèi)容,中間件使用命令調(diào)用相應(yīng)的網(wǎng)關(guān)服務(wù),網(wǎng)關(guān)根據(jù)調(diào)用內(nèi)容回復(fù)用戶所需要的監(jiān)控數(shù)據(jù),最終再由中間件將監(jiān)控數(shù)據(jù)送給用戶。本發(fā)明能夠在網(wǎng)關(guān)服務(wù)的基礎(chǔ)上面向用戶的具體監(jiān)控需求,提供更直觀的監(jiān)控接口,優(yōu)化了用戶對無線傳感網(wǎng)實施監(jiān)控的渠道與過程,保障了用戶監(jiān)控訪問的穩(wěn)定性和實時性。
【專利說明】
一種基于ISA100.11 a標(biāo)準(zhǔn)的無線傳感網(wǎng)的通信中轉(zhuǎn)方法
技術(shù)領(lǐng)域
[0001] 本發(fā)明涉及一種無線傳感網(wǎng)的通信中轉(zhuǎn)方法,屬于工業(yè)無線傳感網(wǎng)技術(shù)領(lǐng)域,主 要用于在ISA100.11 a無線傳感網(wǎng)系統(tǒng)中向用戶提供系統(tǒng)的監(jiān)控接口。
【背景技術(shù)】
[0002] ISA100.11a標(biāo)準(zhǔn)作為工業(yè)無線傳感網(wǎng)的重要標(biāo)準(zhǔn)之一,得到越來越多的研究與應(yīng) 用。ISA100.11a標(biāo)準(zhǔn)基于IEEE 802.15.4,支持多種無線網(wǎng)絡(luò)拓?fù)洌ㄐ切?、網(wǎng)格型、星網(wǎng) 結(jié)合型等,符合該標(biāo)準(zhǔn)的無線設(shè)備可以按照任意拓?fù)浞绞竭B接。為了擴(kuò)大網(wǎng)絡(luò)覆蓋范圍并 提升總體性能,ISA100.11a標(biāo)準(zhǔn)引入了骨干網(wǎng)的概念,具體為可兼容IPv6的高速網(wǎng)絡(luò),一般 由以太網(wǎng)或Wi-Fi承擔(dān),并且規(guī)定了由骨干路由器設(shè)備作為無線傳輸和骨干網(wǎng)傳輸之間的 橋梁。ISA100.11a標(biāo)準(zhǔn)還規(guī)定了網(wǎng)關(guān)和系統(tǒng)管理器這兩種設(shè)備,它們在骨干網(wǎng)上與骨干路 由器進(jìn)行高速通信;網(wǎng)關(guān)負(fù)責(zé)ISA100.11a協(xié)議數(shù)據(jù)與外部工業(yè)現(xiàn)場網(wǎng)絡(luò)協(xié)議數(shù)據(jù)之間的轉(zhuǎn) 換,并向用戶提供相應(yīng)的網(wǎng)絡(luò)訪問服務(wù);系統(tǒng)管理器則總管無線傳感網(wǎng)的資源分配與調(diào)度, 包括無線拓?fù)洹⒃O(shè)備列表維護(hù)等功能。
[0003] 除上述內(nèi)容之外,ISA100.11a標(biāo)準(zhǔn)未再規(guī)定其他的符合該標(biāo)準(zhǔn)的無線傳感網(wǎng)系統(tǒng) 的設(shè)備角色。因此,對于用戶而言,只能通過網(wǎng)關(guān)應(yīng)用層提供的一些服務(wù)來實現(xiàn)對無線傳感 網(wǎng)的監(jiān)控,如發(fā)布訂閱服務(wù)、客戶服務(wù)器服務(wù)等。但是ISA100.11a標(biāo)準(zhǔn)所規(guī)定的網(wǎng)關(guān)服務(wù)都 屬于一般性服務(wù),應(yīng)用層具體如何使用這些服務(wù)并未做出規(guī)定。即就是說,用戶如何對 ISA100.11a無線網(wǎng)絡(luò)執(zhí)行具體的拓?fù)洳樵?、設(shè)備列表、網(wǎng)絡(luò)通信質(zhì)量等操作需要自行實現(xiàn)。
【發(fā)明內(nèi)容】
[0004] 為了克服現(xiàn)有技術(shù)的不足,本發(fā)明提供一種基于ISA100.11a標(biāo)準(zhǔn)的無線傳感網(wǎng)的 通信中轉(zhuǎn)方法,能夠在網(wǎng)關(guān)服務(wù)的基礎(chǔ)上面向用戶的具體監(jiān)控需求,提供更直觀的監(jiān)控接 □ 〇
[0005] 本發(fā)明解決其技術(shù)問題所采用的技術(shù)方案是:
[0006] 步驟1,在基于ISAlOO.lla標(biāo)準(zhǔn)的無線傳感網(wǎng)WSN的網(wǎng)絡(luò)拓?fù)渲校诰W(wǎng)關(guān)和用戶之 間部署中間件;
[0007] 步驟2,創(chuàng)建一個數(shù)據(jù)庫,用于存儲用戶和中間件之間的交互數(shù)據(jù),所述的交互數(shù) 據(jù)包括兩類:一類是用戶所需要的ISAlOO.lla無線網(wǎng)絡(luò)參數(shù),至少包括設(shè)備列表、網(wǎng)絡(luò)拓?fù)?連接、設(shè)備信道信息、設(shè)備的傳感器控制器參數(shù)、設(shè)備通信契約、網(wǎng)絡(luò)總體性能指標(biāo)和設(shè)備 之間的無線通信質(zhì)量的監(jiān)控數(shù)據(jù);另一類是控制用戶和中間件之間數(shù)據(jù)交互的命令參數(shù);
[0008] 所述的命令參數(shù)包括兩方面,一是命令概念的定義,二是代表用戶請求的實例化 命令數(shù)據(jù);所述的命令概念定義了命令的名稱和內(nèi)容,不同的內(nèi)容代表了用戶訪問 ISAlOO.lla網(wǎng)絡(luò)不同參數(shù)的需求;設(shè)備列表命令的內(nèi)容是獲取WSN所有設(shè)備的列表;網(wǎng)絡(luò)拓 撲命令的功能是獲取WSN的網(wǎng)絡(luò)拓?fù)?信道調(diào)度命令的功能是報告設(shè)備的時隙與信道分配; 設(shè)備信息命令的功能是報告指定設(shè)備的傳感器控制器參數(shù);網(wǎng)絡(luò)健康命令的功能是報告 WSN的網(wǎng)絡(luò)狀況;設(shè)備鄰居命令的功能是報告設(shè)備的鄰居節(jié)點通信;契約路由命令的功能是 更新網(wǎng)絡(luò)的契約與路由;所述的實例化命令數(shù)據(jù)是代表用戶請求的命令概念的具體化對 象。
[0009] 步驟3,根據(jù)用戶請求在數(shù)據(jù)庫中創(chuàng)建實例化命令數(shù)據(jù);實例化命令數(shù)據(jù)包括命令 類型、命令狀態(tài)和請求數(shù)據(jù);
[0010] 創(chuàng)建實例化命令數(shù)據(jù)的途徑包括用戶向數(shù)據(jù)庫中插入實例化命令數(shù)據(jù),和中間件 向數(shù)據(jù)庫中插入實例化命令數(shù)據(jù)。
[0011 ] 所述的命令狀態(tài)包括新建New、已發(fā)送Sent、已響應(yīng)Responded和失敗Failed,新插 入數(shù)據(jù)庫對應(yīng)表中的實例化命令數(shù)據(jù)的命令狀態(tài)都賦值為New。
[0012] 步驟4,所述中間件按照設(shè)定的周期查詢數(shù)據(jù)庫中是否存在新建命令,即命令狀態(tài) 為New的實例化命令數(shù)據(jù);如果存在新建命令,將新建命令從數(shù)據(jù)庫中讀取出來,剔除掉格 式非法的錯誤命令,將有效命令寫入未處理命令緩存中;將剔除掉的錯誤命令的命令狀態(tài) 置為Fai led,并在數(shù)據(jù)庫中更新其對應(yīng)的字段;
[0013] 所述數(shù)據(jù)庫的接口設(shè)計為多線程連接池,連接池維護(hù)著若干數(shù)據(jù)庫連接,每個連 接對應(yīng)一個處理SQL語句的線程,中間件在訪問數(shù)據(jù)庫時即激活一個空閑線程并使用對應(yīng) 的連接去執(zhí)行數(shù)據(jù)庫訪問任務(wù),訪問結(jié)束后連接依然有效同時對應(yīng)線程置為等待;查詢操 作由只讀連接完成,且只讀連接由多個查詢操作共享;增、刪、改操作由可寫連接完成,且每 個可寫連接只能由一個寫入操作獨(dú)占。
[0014]步驟5,所述未處理命令緩存按照寫入順序?qū)嵗顢?shù)據(jù)發(fā)送給網(wǎng)關(guān),由命令 調(diào)用網(wǎng)關(guān)服務(wù)的方式將用戶的請求傳達(dá)至WSN,并且將數(shù)據(jù)庫中所記錄的實例化命令數(shù)據(jù) 的狀態(tài)屬性值由New更新為Sent;
[0015] 所述的網(wǎng)關(guān)服務(wù)由ISA100.11a協(xié)議標(biāo)準(zhǔn)定義,包括警報管理服務(wù)Alert、大塊數(shù)據(jù) 傳輸服務(wù)BulkTransfer、客戶服務(wù)器服務(wù)ClientServer、發(fā)布訂閱服務(wù)PublishSubscribe、 系統(tǒng)報告服務(wù)SystemReport和時間服務(wù)TimeService ;命令和網(wǎng)關(guān)服務(wù)之間是多對多的對 應(yīng)關(guān)系;所述的設(shè)備列表命令調(diào)用系統(tǒng)報告服務(wù);網(wǎng)絡(luò)拓?fù)涿钫{(diào)用系統(tǒng)報告服務(wù);信道調(diào) 度命令調(diào)用系統(tǒng)報告服務(wù);設(shè)備信息命令調(diào)用客戶服務(wù)器服務(wù)、發(fā)布訂閱服務(wù)、系統(tǒng)報告服 務(wù)和時間服務(wù);網(wǎng)絡(luò)健康命令調(diào)用警報管理服務(wù)、系統(tǒng)報告服務(wù)和時間服務(wù);設(shè)備鄰居命令 調(diào)用警報管理服務(wù)、系統(tǒng)報告服務(wù)和時間服務(wù);契約路由命令調(diào)用系統(tǒng)報告服務(wù)。
[0016] 步驟6,網(wǎng)關(guān)在ISA100.11a規(guī)定方式下完成服務(wù)的執(zhí)行,并將結(jié)果數(shù)據(jù)作為實例化 命令數(shù)據(jù)的響應(yīng)數(shù)據(jù)送入中間件;中間件把對應(yīng)的實例化命令數(shù)據(jù)轉(zhuǎn)入已處理命令緩存 中;并對響應(yīng)數(shù)據(jù)進(jìn)行甄別,剔除錯誤數(shù)據(jù)和超時數(shù)據(jù),得到正確響應(yīng)數(shù)據(jù);
[0017] 所述響應(yīng)數(shù)據(jù)的甄別包括以下內(nèi)容:對比WSN響應(yīng)數(shù)據(jù)和所對應(yīng)實例化命令數(shù)據(jù) 的請求數(shù)據(jù)剔除錯誤數(shù)據(jù),對比WSN響應(yīng)數(shù)據(jù)的時間戳和所對應(yīng)實例化命令數(shù)據(jù)的更新時 間剔除超時數(shù)據(jù)。
[0018] 步驟7,數(shù)據(jù)庫更新實例化命令數(shù)據(jù)的最終狀態(tài),錯誤數(shù)據(jù)和超時數(shù)據(jù)所對應(yīng)的實 例化命令數(shù)據(jù)的命令狀態(tài)更新為Fa i 1 ed,正確響應(yīng)數(shù)據(jù)所對應(yīng)的實例化命令數(shù)據(jù)的命令狀 態(tài)更新為Responded;將步驟6得到的正確響應(yīng)數(shù)據(jù)作為最新的WSN參數(shù)存入數(shù)據(jù)庫相對應(yīng) 的表中,以供用戶查看。
[0019] 所述的中間件按照設(shè)定的周期清理數(shù)據(jù)庫中超過設(shè)定存儲時間的歷史數(shù)據(jù)。
[0020] 本發(fā)明的有益效果是:使用自定義的命令驅(qū)動機(jī)制調(diào)用ISA100.11a網(wǎng)關(guān)所提供的 各種服務(wù),從而提供了面向用戶的具體監(jiān)控需求的直觀化的控制接口,使用戶應(yīng)用可以方 便的根據(jù)需要獲得相關(guān)的無線傳感網(wǎng)狀態(tài)參數(shù)并實施一定的控制功能。此外,中間件的存 在極大的優(yōu)化了用戶對無線傳感網(wǎng)實施監(jiān)控的渠道與過程,未處理和已處理命令緩存區(qū)和 多線程連接池的設(shè)計保障了用戶監(jiān)控訪問的穩(wěn)定性和實時性。
【附圖說明】
[0021] 圖1是基于ISA100.11a標(biāo)準(zhǔn)的無線傳感網(wǎng)系統(tǒng)及所述中間件的拓?fù)洹?br>[0022]圖2是中間件的內(nèi)部軟件結(jié)構(gòu)。
[0023]圖3是命令概念定義的類圖。
[0024]圖4是實例化命令的狀態(tài)圖。
[0025] 圖5是中間件角度的命令處理流程圖。
【具體實施方式】
[0026] 本發(fā)明解決其技術(shù)問題所采用的技術(shù)方案是:在ISA100.11a的網(wǎng)絡(luò)拓?fù)渲袑⑺?述中間件方法實現(xiàn)為軟件模塊并部署于網(wǎng)關(guān)和用戶之間作為Socket通信中轉(zhuǎn),可將網(wǎng)關(guān)的 一般性服務(wù)轉(zhuǎn)換為面向用戶需求的具體化監(jiān)控接口。此外,中間件方法需要有額外配套的 數(shù)據(jù)庫來幫助實現(xiàn),以便存儲用戶所需要的監(jiān)控數(shù)據(jù),這些數(shù)據(jù)的內(nèi)容至少應(yīng)涵蓋設(shè)備列 表、網(wǎng)絡(luò)拓?fù)溥B接、設(shè)備信道信息、設(shè)備的傳感器控制器參數(shù)、設(shè)備通信契約、網(wǎng)絡(luò)總體性能 指標(biāo)和設(shè)備之間的無線通信質(zhì)量這七個方面,所謂契約(Contract)是ISA100.11a協(xié)議標(biāo)準(zhǔn) 所定義的無線通信資源。以下按照所述中間件方法的實現(xiàn)步驟給出本
【發(fā)明內(nèi)容】
的詳細(xì)描 述。
[0027] 步驟1,以模塊化方式創(chuàng)建中間件軟件實體,軟件實體中各個子模塊之間的互動方 式和具體作用可在后續(xù)步驟中逐步體現(xiàn)。
[0028]首先在中間件軟件實體中定義三大模塊,分別是:網(wǎng)關(guān)接口模塊、數(shù)據(jù)庫接口模塊 和命令管理模塊。
[0029] 所述網(wǎng)關(guān)接口模塊,負(fù)責(zé)使用命令調(diào)用網(wǎng)關(guān)的相關(guān)服務(wù),以及接收網(wǎng)關(guān)響應(yīng)命令 的回復(fù)數(shù)據(jù)。在網(wǎng)關(guān)接口模塊內(nèi)部定義三個子模塊,分別是:未處理命令模塊、已處理命令 模塊和WSN響應(yīng)數(shù)據(jù)模塊。
[0030] 所述數(shù)據(jù)庫接口模塊,負(fù)責(zé)讀取和寫入數(shù)據(jù)庫的基本操作,并采用連接池的設(shè)計 方法提升接口性能。在數(shù)據(jù)庫接口模塊內(nèi)部定義四個子模塊,分別是:只讀連接模塊、可寫 連接模塊、連接池模塊和線程池模塊。
[0031] 所述命令管理模塊,負(fù)責(zé)將用戶創(chuàng)建的實例化命令送入網(wǎng)關(guān)以及將網(wǎng)關(guān)響應(yīng)命令 的數(shù)據(jù)再送回給數(shù)據(jù)庫以供用戶查看,是中間件的核心模塊。在命令管理模塊內(nèi)部定義十 個子模塊,分別是:查找新命令模塊、命令排錯檢查模塊、已響應(yīng)命令模塊、失敗命令處理模 塊、命令記錄更新模塊、WSN數(shù)據(jù)分類管理模塊、錯誤數(shù)據(jù)剔除模塊、WSN數(shù)據(jù)更新模塊、定時 數(shù)據(jù)清理模塊和周期命令建立模塊。
[0032] 步驟2,創(chuàng)建一個數(shù)據(jù)庫,該數(shù)據(jù)庫作為中間件方法的軟件實體的額外輔助部分幫 助中間件方法實現(xiàn)其功能。數(shù)據(jù)庫主要用于存儲用戶和中間件之間的交互數(shù)據(jù),這些數(shù)據(jù) 按用途可分為兩類:一類是用戶所需要的ISA100.11a無線網(wǎng)絡(luò)參數(shù),即上述設(shè)備列表、網(wǎng)絡(luò) 拓?fù)溥B接、設(shè)備信道信息、設(shè)備的傳感器控制器參數(shù)、設(shè)備通信契約、網(wǎng)絡(luò)總體性能指標(biāo)和 設(shè)備之間的無線通信質(zhì)量這至少七個方面的監(jiān)控數(shù)據(jù);另一類是控制用戶和中間件之間數(shù) 據(jù)交互的自定義命令參數(shù),所有的ISA100.11a無線網(wǎng)絡(luò)參數(shù)都需要通過對自定義命令參數(shù) 的使用來獲取。
[0033] 自定義的命令參數(shù)包括兩方面,一是命令概念的定義,二是代表用戶請求的實例 化命令數(shù)據(jù)。其中,命令概念定義了命令的名稱和內(nèi)容,不同的內(nèi)容代表了用戶訪問 ISA100.11a網(wǎng)絡(luò)不同參數(shù)的需求,而實例化命令數(shù)據(jù)則是在中間件方法運(yùn)轉(zhuǎn)的過程中代表 用戶請求的命令概念的具體化對象。中間件方法將常用的ISA100.11a網(wǎng)絡(luò)參數(shù)訪問需求所 對應(yīng)的命令統(tǒng)稱為周期性命令,其他自定義的命令則稱為非周期性命令,所有的命令定義 都可以根據(jù)需求進(jìn)行擴(kuò)展和縮減。
[0034] 在本步驟中,至少應(yīng)在數(shù)據(jù)庫建立后創(chuàng)建周期性命令概念的定義數(shù)據(jù),基本的周 期性命令定義如下:
[0035] 表1周期性命令說明
[0036]
Luuj/j 兵〒,對勝卞;設(shè)雙煙,墳奮列衣偭令對勝j墳奮列衣力囬;鬥瑨和樸偭令對勝j 網(wǎng)絡(luò)拓?fù)溥B接方面;信道調(diào)度命令對應(yīng)了設(shè)備信道信息方面;設(shè)備信息命令對應(yīng)了設(shè)備的 傳感器控制器參數(shù)方面;網(wǎng)絡(luò)健康命令對應(yīng)了網(wǎng)絡(luò)總體性能指標(biāo)方面;設(shè)備鄰居命令對應(yīng) 了設(shè)備之間的無線通信質(zhì)量方面;契約路由對應(yīng)了設(shè)備通信契約方面。
[0038]步驟3,根據(jù)用戶請求在步驟1建立的數(shù)據(jù)庫中創(chuàng)建實例化的命令數(shù)據(jù)。實例化的 命令需要指明其具體是命令概念定義中的哪一種命令,還要指出實例化命令在中間件方法 運(yùn)轉(zhuǎn)中所處的狀態(tài),此外需要包括用戶請求可能存在的請求數(shù)據(jù),所謂可能存在是因為許 多命令種類本身的名稱已經(jīng)足夠代表請求內(nèi)容。本發(fā)明不具體規(guī)定實例化命令在數(shù)據(jù)庫中 的詳細(xì)格式,可以根據(jù)需要進(jìn)行定義,但必須具備指明命令類型、命令狀態(tài)和請求數(shù)據(jù)的功 能,這里以設(shè)備列表命令為例列出一種可參考的實例化命令組織結(jié)構(gòu)如下。 Γ00^91
[0040]創(chuàng)建實例化命令數(shù)據(jù)的具體途徑有兩種,一是代表用戶的客戶端、web等媒介向數(shù) 據(jù)庫對應(yīng)的表中插入實例化命令數(shù)據(jù),二是所述中間件的命令管理模塊中的周期命令建立 子模塊通過數(shù)據(jù)庫接口模塊向?qū)?yīng)的表中插入實例化命令數(shù)據(jù)。
[0041]命令狀態(tài)是采用狀態(tài)機(jī)模式管控實例化命令所定義的屬性,共有四種狀態(tài)屬性, 分別是:新建(New)、已發(fā)送(Sent)、已響應(yīng)(Responded)和失敗(Failed)。在本步驟中,新插 入數(shù)據(jù)庫的實例化命令數(shù)據(jù)的狀態(tài)屬性都賦值為New,其他狀態(tài)屬性的變化在后續(xù)步驟中 體現(xiàn)。
[0042]步驟4,所述中間件的命令管理模塊會通過數(shù)據(jù)庫接口模塊定時查詢數(shù)據(jù)庫中是 否有步驟3所產(chǎn)生的狀態(tài)為New的新建命令,具體由命令管理模塊中的查找新命令子模塊負(fù) 責(zé)。如果存在新建命令,查找新命令子模塊會將這些狀態(tài)為New的命令從數(shù)據(jù)庫中讀取出 來,再由命令排錯檢查子模塊剔除掉格式非法的錯誤命令數(shù)據(jù),最后將有效的命令數(shù)據(jù)存 入網(wǎng)關(guān)接口模塊的未處理命令緩存子模塊中。對于剔除掉的錯誤命令數(shù)據(jù),應(yīng)將其狀態(tài)屬 性置為Fai 1 ed,并由查找新命令子模塊在數(shù)據(jù)庫中更新其對應(yīng)的字段。
[0043]為了提升對步驟1建立的數(shù)據(jù)庫的訪問性能,將中間件的數(shù)據(jù)庫接口模塊設(shè)計為 多線程連接池的方式。連接池維護(hù)著一定數(shù)量的數(shù)據(jù)庫連接,每個連接對應(yīng)一個處理SQL語 句的線程,中間件在訪問數(shù)據(jù)庫時即激活一個空閑線程并使用對應(yīng)的連接去執(zhí)行數(shù)據(jù)庫訪 問任務(wù),訪問結(jié)束后連接依然有效同時對應(yīng)線程置為等待。查詢操作由只讀連接完成,且只 讀連接可以由多個查詢操作共享;增、刪、改這三種寫入操作由可寫連接完成,且每個可寫 連接只能由一個寫入操作獨(dú)占。連接池的規(guī)模取決于中間件所依賴的硬件平臺、操作系統(tǒng) 和數(shù)據(jù)庫系統(tǒng)的綜合性能,數(shù)據(jù)庫連接數(shù)量可視情況而定本發(fā)明不作特殊要求。
[0044] 步驟5,所述中間件網(wǎng)關(guān)接口模塊中的未處理命令緩存子模塊會按照先后順序?qū)?實例化命令發(fā)送給網(wǎng)關(guān),由命令調(diào)用網(wǎng)關(guān)服務(wù)的方式將用戶的請求傳達(dá)至ISA100.11a網(wǎng) 絡(luò),并且在該步驟中由命令管理模塊的命令記錄更新子模塊將數(shù)據(jù)庫中所記錄的實例化命 令數(shù)據(jù)的狀態(tài)屬性值由New更新為Sent。
[0045] 所謂網(wǎng)關(guān)服務(wù)由ISA100.11a協(xié)議標(biāo)準(zhǔn)定義,包括警報管理服務(wù)(Alert)、大塊數(shù)據(jù) 傳輸服務(wù)(BulkTransfer)、客戶服務(wù)器服務(wù)(ClientServer)、發(fā)布訂閱服務(wù) (PublishSubscribe)、系統(tǒng)報告服務(wù)(SystemReport)和時間服務(wù)(TimeService)。命令和網(wǎng) 關(guān)服務(wù)之間是多對多的對應(yīng)關(guān)系,一種命令可能會調(diào)用多個服務(wù),不同的命令也可能會用 到同一種服務(wù),應(yīng)視命令概念定義的情況而定。本發(fā)明所述的基本周期性命令所調(diào)用的網(wǎng) 關(guān)服務(wù)如下:設(shè)備列表命令調(diào)用系統(tǒng)報告服務(wù);網(wǎng)絡(luò)拓?fù)涿钫{(diào)用系統(tǒng)報告服務(wù);信道調(diào)度 命令調(diào)用系統(tǒng)報告服務(wù);設(shè)備信息命令調(diào)用客戶服務(wù)器服務(wù)、發(fā)布訂閱服務(wù)、系統(tǒng)報告服務(wù) 和時間服務(wù);網(wǎng)絡(luò)健康命令調(diào)用警報管理服務(wù)、系統(tǒng)報告服務(wù)和時間服務(wù);設(shè)備鄰居命令調(diào) 用警報管理服務(wù)、系統(tǒng)報告服務(wù)和時間服務(wù);契約路由命令調(diào)用系統(tǒng)報告服務(wù)。
[0046] 步驟6,網(wǎng)關(guān)在ISA100.11a規(guī)定方式下完成服務(wù)的執(zhí)行,并將結(jié)果數(shù)據(jù)作為實例化 命令的響應(yīng)數(shù)據(jù)送入中間件網(wǎng)關(guān)接口模塊的WSN響應(yīng)數(shù)據(jù)子模塊。同時,未處理命令緩存子 模塊會把相應(yīng)的具體命令數(shù)據(jù)轉(zhuǎn)入已處理命令緩存子模塊。命令管理模塊進(jìn)一步對響應(yīng)數(shù) 據(jù)進(jìn)行甄別管理后轉(zhuǎn)入WSN數(shù)據(jù)更新子模塊,主要在于錯誤數(shù)據(jù)和超時數(shù)據(jù)的剔除,具體的 甄別由WSN數(shù)據(jù)分類管理子模塊負(fù)責(zé),剔除則由錯誤數(shù)據(jù)剔除子模塊負(fù)責(zé)。數(shù)據(jù)的甄別方法 主要依賴于唯一標(biāo)識實例化命令的命令I(lǐng)D,通過該ID可以知曉某個WSN響應(yīng)數(shù)據(jù)所對應(yīng)的 實例化命令,對比WSN響應(yīng)數(shù)據(jù)和所對應(yīng)實例化命令的請求數(shù)據(jù)可以剔除錯誤數(shù)據(jù),對比 WSN響應(yīng)數(shù)據(jù)的時間戳和所對應(yīng)實例化命令的更新時間則可以剔除超時數(shù)據(jù),錯誤數(shù)據(jù)和 超時數(shù)據(jù)所對應(yīng)的實例化命令數(shù)據(jù)都要從已處理命令緩存子模塊之中轉(zhuǎn)入失敗命令處理 子模塊,正確完成的實例化命令數(shù)據(jù)則轉(zhuǎn)入已響應(yīng)命令子模塊。
[0047]步驟7,命令記錄更新子模塊通過數(shù)據(jù)庫接口模塊將實例化命令的最終狀態(tài)在數(shù) 據(jù)庫對應(yīng)記錄中更新,失敗命令處理子模塊之中的實例化命令將在數(shù)據(jù)庫中更新其狀態(tài)為 Failed,已響應(yīng)命令子模塊之中的實例化命令將在數(shù)據(jù)庫中更新其狀態(tài)為Responded JSN 數(shù)據(jù)更新子模塊則將步驟6得到的最新ISA100.11a無線網(wǎng)絡(luò)參數(shù)存入數(shù)據(jù)庫相對應(yīng)的表 中,以供用戶查看。
[0048]另外需要補(bǔ)充的是,中間件命令管理模塊中的定時數(shù)據(jù)清理子模塊會定期通過數(shù) 據(jù)庫接口模塊清理數(shù)據(jù)庫中時間較久遠(yuǎn)的歷史數(shù)據(jù),以維護(hù)數(shù)據(jù)庫的大小和性能,判斷數(shù) 據(jù)是否為歷史數(shù)據(jù)的時間閾值可視軟硬件綜合性能的實際情況而定。
[0049] 下面結(jié)合附圖和實施例對本發(fā)明進(jìn)一步說明,本發(fā)明包括但不僅限于下述實施 例。
[0050] 圖1表現(xiàn)了中間件在ISA100.1 la無線網(wǎng)絡(luò)拓?fù)渲械牟渴鸱桨?,其中?shù)據(jù)庫是直接 面向用戶的外殼,用戶可以用客戶端、web或其他任意訪問數(shù)據(jù)庫的典型方法來獲取對 ISA100.11a無線網(wǎng)絡(luò)的監(jiān)控。因此,本發(fā)明所述中間件方法必然由創(chuàng)建數(shù)據(jù)庫開始。
[0051] 步驟1,以模塊化方式創(chuàng)建如圖2所示的中間件軟件實體。結(jié)合圖1進(jìn)一步明確中間 件在ISA100.1 la宏觀網(wǎng)絡(luò)系統(tǒng)中的角色:如圖1所示,中間件是一個獨(dú)立的軟件模塊,它與 網(wǎng)關(guān)在工業(yè)現(xiàn)場網(wǎng)絡(luò)中進(jìn)行Socket通信。工業(yè)現(xiàn)場網(wǎng)絡(luò)通常是以太網(wǎng)。骨干網(wǎng)可以是以太 網(wǎng)或Wi-Fi等支持IPv6和UDP通信的網(wǎng)絡(luò)。無線傳感網(wǎng)和骨干網(wǎng)范圍內(nèi)的設(shè)備和模塊都是 ISAlOO.lla標(biāo)準(zhǔn)已經(jīng)規(guī)定的。本發(fā)明所述中間件及其方法未在ISAlOO.lla標(biāo)準(zhǔn)之中提及, 而是為了更好的實現(xiàn)面向用戶需求的目標(biāo)而額外設(shè)計的軟件模塊。考慮到Wi-Fi和 ISA 100.11a同屬2.4GHz的范圍,故一般來講可以將骨干網(wǎng)與工業(yè)現(xiàn)場網(wǎng)絡(luò)按照統(tǒng)一的局域 以太網(wǎng)實現(xiàn),如此則網(wǎng)關(guān)、系統(tǒng)管理器、中間件、數(shù)據(jù)庫等都將是局域網(wǎng)中的軟件實體,互相 之間以支持IPv6的UDP方式進(jìn)行Socket通信。
[0052]本步驟創(chuàng)建中間件軟件實體時,首先在內(nèi)部分別定義三個模塊,即網(wǎng)關(guān)接口模塊、 數(shù)據(jù)庫接口模塊以及居于核心位置的命令管理模塊。網(wǎng)關(guān)接口模塊負(fù)責(zé)銜接ISAlOO.lla網(wǎng) 關(guān)服務(wù)和中間件中的命令,代表用戶的具體監(jiān)控需求的命令將調(diào)用相關(guān)的網(wǎng)關(guān)服務(wù),網(wǎng)關(guān) 服務(wù)調(diào)用完成的結(jié)果則作為對應(yīng)命令的響應(yīng)回答,故網(wǎng)關(guān)接口模塊起到了功能語言翻譯的 作用。數(shù)據(jù)庫接口模塊負(fù)責(zé)將網(wǎng)關(guān)傳來的監(jiān)控數(shù)據(jù)存儲到數(shù)據(jù)庫中,故數(shù)據(jù)庫接口模塊的 核心在于對數(shù)據(jù)庫系統(tǒng)的訪問,其具體方式則會隨著所采用的數(shù)據(jù)庫系統(tǒng)的不同而有所差 異。命令管理模塊是中間件的主要功能所在,一方面負(fù)責(zé)將數(shù)據(jù)庫中新建的實例化命令送 給網(wǎng)關(guān)以調(diào)用其服務(wù),另一方面負(fù)責(zé)分類管理來自網(wǎng)關(guān)的監(jiān)控數(shù)據(jù)同時完成實例化命令的 生命周期。以下對網(wǎng)關(guān)接口模塊、數(shù)據(jù)庫接口模塊和命令管理模塊作進(jìn)一步細(xì)化。
[0053]圖2中的網(wǎng)關(guān)接口模塊定義了兩個可變長度的命令隊列緩存區(qū),分別存儲未處理 命令和已處理命令。未處理命令緩存區(qū)將來自數(shù)據(jù)庫的新建實例化命令按請求時間排序以 準(zhǔn)備送給網(wǎng)關(guān),已處理的實例化命令則轉(zhuǎn)存入已處理命令緩存區(qū)以待命令管理模塊依次送 給數(shù)據(jù)庫。雙緩存區(qū)的設(shè)計可以防止Socket傳輸擁塞和可能的數(shù)據(jù)丟失現(xiàn)象。例如某時間 段有大量新建實例化命令加入未處理命令隊列后,由于緩存隊列的機(jī)制使得Socket傳輸不 會擁塞,等待時間過長來不及處理就超時的實例化命令可直接標(biāo)記為失敗命令并轉(zhuǎn)至已處 理命令隊列。另外需要在網(wǎng)關(guān)接口模塊中定義WSN響應(yīng)數(shù)據(jù)子模塊,專門存儲網(wǎng)關(guān)根據(jù)命令 請求所返回的相關(guān)無線傳感網(wǎng)數(shù)據(jù)。
[0054] 圖2中的數(shù)據(jù)庫接口定義了多線程連接池來提升數(shù)據(jù)庫訪問的效率和穩(wěn)定性。連 接池維護(hù)著一定數(shù)量的數(shù)據(jù)庫連接,包括只讀連接與可寫連接兩種,每個連接對應(yīng)一個處 理SQL語句的線程,可以實現(xiàn)對數(shù)據(jù)庫系統(tǒng)的并行訪問效果。連接池中的連接數(shù)量即多線程 連接池的規(guī)模取決于數(shù)據(jù)庫系統(tǒng)本身及其所在的操作系統(tǒng)和硬件平臺的綜合條件。數(shù)據(jù)庫 接口模塊的進(jìn)一步實現(xiàn)在后續(xù)步驟體現(xiàn)。
[0055] 圖2中的命令管理模塊定義了十個子模塊,即查找新命令模塊、命令排錯檢查模 塊、已響應(yīng)命令模塊、失敗命令處理模塊、命令記錄更新模塊、WSN數(shù)據(jù)分類管理模塊、錯誤 數(shù)據(jù)剔除模塊、WSN數(shù)據(jù)更新模塊、定時數(shù)據(jù)清理模塊和周期命令建立模塊,每個子模塊對 應(yīng)命令管理活動的其中一個環(huán)節(jié)。宏觀上可以將命令管理模塊內(nèi)的十個子模塊劃分為三個 部分:命令管理模塊之中的最上部分的查找新命令模塊和命令排錯檢查模塊共同完成命令 請求的功能;命令管理模塊之中的中間部分的命令記錄更新模塊、已響應(yīng)命令模塊和失敗 命令處理模塊共同完成命令響應(yīng)的功能;命令管理模塊之中的最下部分的其他模塊共同完 成用戶數(shù)據(jù)更新功能。各個子模塊在中間件方法運(yùn)行步驟中所起到的作用在后續(xù)步驟中體 現(xiàn)。
[0056] 步驟2,創(chuàng)建如圖1中所指出的數(shù)據(jù)庫。數(shù)據(jù)庫的部署位置與中間件的部署位置可 以位于同一個硬件平臺上,也可以分別部署于不同硬件平臺上。如果數(shù)據(jù)庫與中間件位于 同一硬件平臺,則二者之間使用所建立的數(shù)據(jù)庫系統(tǒng)提供的本地連接方式互通,否則只能 使用數(shù)據(jù)庫系統(tǒng)提供的遠(yuǎn)程連接方式。
[0057] 中間件的數(shù)據(jù)庫中所要存儲的數(shù)據(jù)按用途可分為兩類:一類是用戶所需要的 ISAlOO.lla無線網(wǎng)絡(luò)參數(shù),至少包括ISAlOO.lla無線網(wǎng)絡(luò)相關(guān)的七個方面的監(jiān)控數(shù)據(jù),分 別是:設(shè)備列表、網(wǎng)絡(luò)拓?fù)溥B接、設(shè)備信道信息、設(shè)備的傳感器控制器參數(shù)、設(shè)備通信契約、 網(wǎng)絡(luò)總體性能指標(biāo)和設(shè)備之間的無線通信質(zhì)量;另一類是控制用戶和中間件之間數(shù)據(jù)交互 的自定義命令參數(shù),包括命令概念的定義和代表用戶請求的實例化命令數(shù)據(jù)兩方面,實例 化命令數(shù)據(jù)代表了具有時效性的具體用戶請求,在中間件方法運(yùn)行時根據(jù)用戶需求動態(tài)創(chuàng) 建。在數(shù)據(jù)庫所存儲的所有數(shù)據(jù)中,命令概念的定義需要作為靜態(tài)數(shù)據(jù)長期穩(wěn)定的存在于 數(shù)據(jù)庫中,因為命令概念是實例化命令建立的參照。
[0058]針對命令概念,中間件方法將常用的ISA100.11a網(wǎng)絡(luò)參數(shù)訪問需求所對應(yīng)的命令 統(tǒng)稱為周期性命令,其他自定義的命令則稱為非周期性命令,所有的命令定義都可以根據(jù) 需求進(jìn)行擴(kuò)展和縮減。如圖3所示,本發(fā)明所述中間件方法所定義的周期性命令至少包括表 1的7種命令,命令的功能涵蓋了上述ISAlOO.lla無線網(wǎng)絡(luò)相關(guān)的七個方面的監(jiān)控數(shù)據(jù)。具 體的涵蓋方式為:設(shè)備列表命令對應(yīng)了設(shè)備列表方面;網(wǎng)絡(luò)拓?fù)涿顚?yīng)了網(wǎng)絡(luò)拓?fù)溥B接 方面;信道調(diào)度命令對應(yīng)了設(shè)備信道信息方面;設(shè)備信息命令對應(yīng)了設(shè)備的傳感器控制器 參數(shù)方面;網(wǎng)絡(luò)健康命令對應(yīng)了網(wǎng)絡(luò)總體性能指標(biāo)方面;設(shè)備鄰居命令對應(yīng)了設(shè)備之間的 無線通信質(zhì)量方面;契約路由對應(yīng)了設(shè)備通信契約方面。
[0059] 在數(shù)據(jù)庫中,可以按照表1的內(nèi)容創(chuàng)建一個數(shù)據(jù)庫表來保存長期存在的命令概念 定義數(shù)據(jù),為了使用方便,可以為每一種命令定義一個唯一的編號來代替命令名稱作為識 別主鍵或標(biāo)識以提高使用效率。
[0060] 步驟3,用戶開始發(fā)出訪問ISA100.11a無線網(wǎng)絡(luò)的用戶請求,具體活動是用戶在數(shù) 據(jù)庫中創(chuàng)建代表其請求內(nèi)容的實例化命令數(shù)據(jù)。實例化的命令需要指明其具體是命令概念 定義中的哪一種命令,還要指出實例化命令在中間件方法運(yùn)轉(zhuǎn)中所處的狀態(tài),此外需要包 括用戶請求可能存在的請求數(shù)據(jù),所謂可能存在是因為許多命令種類本身的名稱已經(jīng)足夠 代表請求內(nèi)容。每一條實例化命令數(shù)據(jù)的記錄就代表一個具體的用戶請求,中間件將根據(jù) 這些實例化命令的具體內(nèi)容來調(diào)用網(wǎng)關(guān)服務(wù)以獲取相關(guān)ISA100.11a無線網(wǎng)絡(luò)參數(shù)。
[0061] 實例化的命令數(shù)據(jù)應(yīng)具有狀態(tài)屬性,狀態(tài)是采用狀態(tài)機(jī)模式管控實例化命令所定 義的,共有四種屬性取值,分別是:新建(New)、已發(fā)送(Sent)、已響應(yīng)(Responded)和失敗 (Failed),圖4為實例化命令的狀態(tài)圖。在本步驟中,新插入數(shù)據(jù)庫的實例化命令數(shù)據(jù)的狀 態(tài)屬性都賦值為New,其他狀態(tài)屬性的變化在后續(xù)步驟中體現(xiàn)。
[0062]本發(fā)明不具體規(guī)定實例化命令在數(shù)據(jù)庫中的詳細(xì)格式,可以根據(jù)需要進(jìn)行定義, 但必須具備指明命令類型、命令狀態(tài)和請求數(shù)據(jù)的功能,這里以設(shè)備列表命令為例列出一 種可參考的實例化命令組織結(jié)構(gòu)如下,可以按該結(jié)構(gòu)的內(nèi)容在數(shù)據(jù)庫中建表存儲。
[0063]
'[0064] 對于周期性實例化命令數(shù)據(jù)而言,既可以由用戶通過客戶端、web或直接訪問的方 式在數(shù)據(jù)庫中建立實例化命令數(shù)據(jù),也可以由中間件的周期命令建立子模塊定時通過數(shù)據(jù) 庫接口模塊在數(shù)據(jù)庫中建立實例化命令數(shù)據(jù),這主要是考慮到實現(xiàn)常用的ISA100.11a網(wǎng)絡(luò) 參數(shù)訪問需求的自動化更新效果。
[0065] 步驟4,所述中間件的查找新命令子模塊將數(shù)據(jù)庫中狀態(tài)為New的新建實例化命令 讀取出來,由命令排錯檢查子模塊剔除格式錯誤的實例化命令后,一起存入未處理命令子 模塊緩存隊列之中。查找新命令子模塊所負(fù)責(zé)的新命令讀取任務(wù)可以在中間件方法中不斷 循環(huán)進(jìn)行,以此保證用戶的請求能夠得到及時處理,如圖5中"查找新命令"的流程。對于排 錯剔除掉的實例化命令,應(yīng)及時將其在數(shù)據(jù)庫中的狀態(tài)記錄由New更新為Fai led,該工作由 查找新命令子模塊通過數(shù)據(jù)庫接口模塊完成,圖4中的"錯誤剔除"體現(xiàn)了實例化命令在本 步驟中的狀態(tài)變化。
[0066] 大部分對數(shù)據(jù)庫的數(shù)據(jù)讀取任務(wù)都在本步驟中執(zhí)行,為了進(jìn)一步提升數(shù)據(jù)訪問性 能,將中間件的數(shù)據(jù)庫接口模塊設(shè)計為步驟2提到的多線程連接池的方式并進(jìn)一步實現(xiàn)。連 接池的每個連接對應(yīng)一個處理SQL語句的線程,中間件在訪問數(shù)據(jù)庫時即激活一個空閑線 程并使用對應(yīng)的連接去執(zhí)行數(shù)據(jù)庫訪問任務(wù),訪問結(jié)束后連接依然有效同時對應(yīng)線程置為 等待。查詢操作由只讀連接完成,且只讀連接可以由多個查詢操作共享;增、刪、改這三種寫 入操作由可寫連接完成,且每個可寫連接只能由一個寫入操作獨(dú)占。連接池的規(guī)模取決于 中間件所依賴的硬件平臺、操作系統(tǒng)和數(shù)據(jù)庫系統(tǒng)的綜合性能,數(shù)據(jù)庫連接數(shù)量可視情況 而定本發(fā)明不作特殊要求。
[0067] 值得注意的是,雖然大部分?jǐn)?shù)據(jù)庫系統(tǒng)都允許多個查詢操作共享使用同一個連 接,但建議根據(jù)數(shù)據(jù)庫系統(tǒng)的性能指標(biāo)對只讀連接的共享查詢數(shù)量設(shè)置一個上限,以免可 能造成的數(shù)據(jù)庫訪問阻塞;此外,執(zhí)行增、刪、改操作時,雖然每個只讀連接都是單個SQL語 句獨(dú)占的,但仍要注意可能出現(xiàn)的邏輯上的數(shù)據(jù)矛盾與同步問題。一般而言,考慮到 ISA100.1 la無線傳感網(wǎng)自身存在物理上的規(guī)模上限,因而對數(shù)據(jù)庫的并發(fā)訪問量不太容易 出現(xiàn)性能瓶頸,本發(fā)明所提出的多線程連接池方式已足夠應(yīng)對,但不排除以后隨著 ISA100.11a無線網(wǎng)絡(luò)技術(shù)的進(jìn)步所帶來的數(shù)據(jù)膨脹的可能。
[0068] 步驟5,所述中間件網(wǎng)關(guān)接口模塊中的未處理命令緩存子模塊按照先后順序?qū)?例化命令發(fā)送給網(wǎng)關(guān),并由命令調(diào)用網(wǎng)關(guān)服務(wù)的方式將用戶的請求傳達(dá)至ISA100.11a網(wǎng) 絡(luò),并且在該步驟中由命令管理模塊的命令記錄更新子模塊將數(shù)據(jù)庫中所記錄的實例化命 令數(shù)據(jù)的狀態(tài)屬性值由New更新為Sent,表示實例化命令已經(jīng)發(fā)送至ISA100.11a網(wǎng)絡(luò)中并 等待返回結(jié)果。
[0069] 本步驟和步驟4中將實例化命令由數(shù)據(jù)庫讀入中間件的過程,體現(xiàn)了實例化命令 的狀態(tài)屬性由New更新為Sent的變化,如圖5的"排錯發(fā)送"所示。本步驟的活動在圖5中體現(xiàn) 為"發(fā)送命令"流程,表示中間件已經(jīng)將實例化命令送入ISA100.11a網(wǎng)絡(luò)中執(zhí)行。
[0070] 網(wǎng)關(guān)服務(wù)由ISA100.11a協(xié)議標(biāo)準(zhǔn)定義,包括警報管理服務(wù)(Alert)、大塊數(shù)據(jù)傳輸 服務(wù)(BulkTransfer)、客戶服務(wù)器服務(wù)(ClientServer)、發(fā)布訂閱服務(wù) (PublishSubscribe)、系統(tǒng)報告服務(wù)(SystemReport)和時間服務(wù)(TimeService)。本步驟的 核心就是解決命令調(diào)用何種網(wǎng)關(guān)服務(wù)來實現(xiàn)請求內(nèi)容的問題,命令和網(wǎng)關(guān)服務(wù)之間應(yīng)該是 多對多的對應(yīng)關(guān)系,一種命令可能會調(diào)用多個服務(wù),不同的命令也可能會用到同一種服務(wù), 應(yīng)視命令概念定義的情況而定。
[0071] 例如,本發(fā)明定義的設(shè)備信息命令可以獲取設(shè)備的傳感器讀數(shù),該命令的設(shè)計思 路為:首先按照ISA100.11a協(xié)議的規(guī)定可知,傳感器讀數(shù)由網(wǎng)關(guān)的發(fā)布訂閱服務(wù)從帶傳感 器的無線節(jié)點上獲取,因此該命令需要調(diào)用發(fā)布訂閱服務(wù);其次,用戶獲取設(shè)備讀數(shù)時往往 需要獲取對應(yīng)設(shè)備的信息,這些信息按照ISA100.11a協(xié)議的內(nèi)容一般由系統(tǒng)報告服務(wù)向系 統(tǒng)管理器定時發(fā)送,因此該命令還需要調(diào)用系統(tǒng)報告服務(wù);最后,用戶獲取設(shè)備讀數(shù)時必然 要了解該讀數(shù)的最新時間,而無線節(jié)點的任何最新上傳數(shù)據(jù)都帶有時間戳,這些時間信息 按照ISA100.11a協(xié)議的內(nèi)容一般由網(wǎng)關(guān)的時間服務(wù)進(jìn)行管理,因此該命令還需要調(diào)用時間 服務(wù)。綜上,設(shè)備信息命令獲取無線節(jié)點傳感器參數(shù)時需要調(diào)用發(fā)布訂閱服務(wù)、系統(tǒng)報告服 務(wù)和時間服務(wù)。如果是訪問控制器,則根據(jù)ISA100.11a協(xié)議的規(guī)定需要使用客戶服務(wù)器服 務(wù)來下發(fā)控制指令,因此設(shè)備信息命令執(zhí)行無線節(jié)點控制時需要調(diào)用客戶服務(wù)器服務(wù)。
[0072] 無論對命令的概念定義作出何種擴(kuò)展和縮減,都必須以網(wǎng)關(guān)所能夠提供的服務(wù)為 參考,實際上ISA100.11a協(xié)議所規(guī)定的網(wǎng)關(guān)服務(wù)一般而言足以滿足無線網(wǎng)絡(luò)監(jiān)控要求。本 發(fā)明所述的基本周期性命令所調(diào)用的網(wǎng)關(guān)服務(wù)如下:設(shè)備列表命令調(diào)用系統(tǒng)報告服務(wù);網(wǎng) 絡(luò)拓?fù)涿钫{(diào)用系統(tǒng)報告服務(wù);信道調(diào)度命令調(diào)用系統(tǒng)報告服務(wù);設(shè)備信息命令調(diào)用客戶 服務(wù)器服務(wù)、發(fā)布訂閱服務(wù)、系統(tǒng)報告服務(wù)和時間服務(wù);網(wǎng)絡(luò)健康命令調(diào)用警報管理服務(wù)、 系統(tǒng)報告服務(wù)和時間服務(wù);設(shè)備鄰居命令調(diào)用警報管理服務(wù)、系統(tǒng)報告服務(wù)和時間服務(wù);契 約路由命令調(diào)用系統(tǒng)報告服務(wù)。
[0073]步驟6,中間件從網(wǎng)關(guān)獲得對已發(fā)送的實例化命令的處理結(jié)果,將網(wǎng)關(guān)返回的響應(yīng) 數(shù)據(jù)存入WSN響應(yīng)數(shù)據(jù)子模塊,同時將已完成的實例化命令數(shù)據(jù)從未處理命令緩存隊列模 塊轉(zhuǎn)入已處理命令緩存隊列模塊。本步驟的關(guān)鍵是進(jìn)一步對響應(yīng)數(shù)據(jù)進(jìn)行甄別,甄別方法 主要依賴于唯一標(biāo)識實例化命令的命令I(lǐng)D,通過該ID可以知曉某個WSN響應(yīng)數(shù)據(jù)所對應(yīng)的 實例化命令,對比WSN響應(yīng)數(shù)據(jù)和所對應(yīng)實例化命令的請求數(shù)據(jù)可以剔除錯誤數(shù)據(jù),對比 WSN響應(yīng)數(shù)據(jù)的時間戳和所對應(yīng)實例化命令的更新時間則可以剔除超時數(shù)據(jù),若長期得不 到響應(yīng)數(shù)據(jù)的已發(fā)送實例化命令也應(yīng)在超過時間閾值后作為超時命令剔除。甄別任務(wù)由 WSN分類管理子模塊完成,甄別不通過的錯誤響應(yīng)數(shù)據(jù)則由錯誤數(shù)據(jù)剔除子模塊負(fù)責(zé)刪除, 甄別通過的正確響應(yīng)數(shù)據(jù)存入WSN數(shù)據(jù)更新子模塊以準(zhǔn)備寫入數(shù)據(jù)庫中。
[0074]錯誤數(shù)據(jù)和超時數(shù)據(jù)所對應(yīng)的實例化命令數(shù)據(jù)都要從已處理命令緩存子模塊之 中轉(zhuǎn)入失敗命令處理子模塊,正確完成的實例化命令數(shù)據(jù)則轉(zhuǎn)入已響應(yīng)命令子模塊。實際 上,在本步驟中的實例化命令的狀態(tài)屬性已經(jīng)發(fā)生變化,即圖4由已發(fā)送狀態(tài)變更為已響應(yīng) 狀態(tài)或者失敗狀態(tài),但暫未在數(shù)據(jù)庫的實例化命令的對應(yīng)記錄中體現(xiàn),具體會在下一個步 驟中由命令記錄更新子模塊更新之。
[0075]步驟7,命令記錄更新子模塊通過數(shù)據(jù)庫接口模塊將實例化命令的最終狀態(tài)在數(shù) 據(jù)庫對應(yīng)記錄中更新,失敗命令處理子模塊之中的實例化命令將在數(shù)據(jù)庫中更新其狀態(tài)為 Failed,已響應(yīng)命令子模塊之中的實例化命令將在數(shù)據(jù)庫中更新其狀態(tài)為Responded JSN 數(shù)據(jù)更新子模塊則將步驟6得到的最新ISA100.11a無線網(wǎng)絡(luò)參數(shù)存入數(shù)據(jù)庫相對應(yīng)的表 中,以供用戶查看。圖4和圖5都表現(xiàn)了失敗命令重建的內(nèi)容,此種狀態(tài)變化或流程可以選擇 性實現(xiàn),即由用戶或中間件自身決定是否將數(shù)據(jù)庫中已經(jīng)更新為Failed狀態(tài)的失敗命令重 新置為New狀態(tài)以使得中間件在下一次查找新命令的循環(huán)中得以將其再次處理,這種失敗 命令重發(fā)的功能可以由命令記錄更新子模塊實現(xiàn)。
【主權(quán)項】
1. 一種基于ISAlOO . I Ia標(biāo)準(zhǔn)的無線傳感網(wǎng)的通信中轉(zhuǎn)方法,其特征在于包括下述步 驟: 步驟1,在基于ISA100.1 la標(biāo)準(zhǔn)的無線傳感網(wǎng)WSN的網(wǎng)絡(luò)拓?fù)渲?,在網(wǎng)關(guān)和用戶之間部 署中間件; 步驟2,創(chuàng)建一個數(shù)據(jù)庫,用于存儲用戶和中間件之間的交互數(shù)據(jù),所述的交互數(shù)據(jù)包 括兩類:一類是用戶所需要的ISA100.1 la無線網(wǎng)絡(luò)參數(shù),至少包括設(shè)備列表、網(wǎng)絡(luò)拓?fù)溥B 接、設(shè)備信道信息、設(shè)備的傳感器控制器參數(shù)、設(shè)備通信契約、網(wǎng)絡(luò)總體性能指標(biāo)和設(shè)備之 間的無線通信質(zhì)量的監(jiān)控數(shù)據(jù);另一類是控制用戶和中間件之間數(shù)據(jù)交互的命令參數(shù); 步驟3,根據(jù)用戶請求在數(shù)據(jù)庫中創(chuàng)建實例化命令數(shù)據(jù);實例化命令數(shù)據(jù)包括命令類 型、命令狀態(tài)和請求數(shù)據(jù); 步驟4,所述中間件按照設(shè)定的周期查詢數(shù)據(jù)庫中是否存在新建命令,即命令狀態(tài)為 New的實例化命令數(shù)據(jù);如果存在新建命令,將新建命令從數(shù)據(jù)庫中讀取出來,剔除掉格式 非法的錯誤命令,將有效命令寫入未處理命令緩存中;將剔除掉的錯誤命令的命令狀態(tài)置 為Fai led,并在數(shù)據(jù)庫中更新其對應(yīng)的字段; 步驟5,所述未處理命令緩存按照寫入順序?qū)嵗顢?shù)據(jù)發(fā)送給網(wǎng)關(guān),由命令調(diào)用 網(wǎng)關(guān)服務(wù)的方式將用戶的請求傳達(dá)至WSN,并且將數(shù)據(jù)庫中所記錄的實例化命令數(shù)據(jù)的狀 態(tài)屬性值由New更新為Sent; 步驟6,網(wǎng)關(guān)在ISA100.1 la規(guī)定方式下完成服務(wù)的執(zhí)行,并將結(jié)果數(shù)據(jù)作為實例化命令 數(shù)據(jù)的響應(yīng)數(shù)據(jù)送入中間件;中間件把對應(yīng)的實例化命令數(shù)據(jù)轉(zhuǎn)入已處理命令緩存中;并 對響應(yīng)數(shù)據(jù)進(jìn)行甄別,剔除錯誤數(shù)據(jù)和超時數(shù)據(jù),得到正確響應(yīng)數(shù)據(jù); 步驟7,數(shù)據(jù)庫更新實例化命令數(shù)據(jù)的最終狀態(tài),錯誤數(shù)據(jù)和超時數(shù)據(jù)所對應(yīng)的實例化 命令數(shù)據(jù)的命令狀態(tài)更新為Failed,正確響應(yīng)數(shù)據(jù)所對應(yīng)的實例化命令數(shù)據(jù)的命令狀態(tài)更 新為Responded;將步驟6得到的正確響應(yīng)數(shù)據(jù)作為最新的WSN參數(shù)存入數(shù)據(jù)庫相對應(yīng)的表 中,以供用戶查看。2. 根據(jù)權(quán)利要求1所述的基于ISA100.1 la標(biāo)準(zhǔn)的無線傳感網(wǎng)的通信中轉(zhuǎn)方法,其特征 在于:所述的命令參數(shù)包括兩方面,一是命令概念的定義,二是代表用戶請求的實例化命令 數(shù)據(jù);所述的命令概念定義了命令的名稱和內(nèi)容,不同的內(nèi)容代表了用戶訪問ISA100.1 la 網(wǎng)絡(luò)不同參數(shù)的需求;設(shè)備列表命令的內(nèi)容是獲取WSN所有設(shè)備的列表;網(wǎng)絡(luò)拓?fù)涿畹墓?能是獲取WSN的網(wǎng)絡(luò)拓?fù)?信道調(diào)度命令的功能是報告設(shè)備的時隙與信道分配;設(shè)備信息命 令的功能是報告指定設(shè)備的傳感器控制器參數(shù);網(wǎng)絡(luò)健康命令的功能是報告WSN的網(wǎng)絡(luò)狀 況;設(shè)備鄰居命令的功能是報告設(shè)備的鄰居節(jié)點通信;契約路由命令的功能是更新網(wǎng)絡(luò)的 契約與路由;所述的實例化命令數(shù)據(jù)是代表用戶請求的命令概念的具體化對象。3. 根據(jù)權(quán)利要求1所述的基于ISA100.1 la標(biāo)準(zhǔn)的無線傳感網(wǎng)的通信中轉(zhuǎn)方法,其特征 在于:創(chuàng)建實例化命令數(shù)據(jù)的途徑包括用戶向數(shù)據(jù)庫中插入實例化命令數(shù)據(jù),和中間件向 數(shù)據(jù)庫中插入實例化命令數(shù)據(jù)。4. 根據(jù)權(quán)利要求1所述的基于ISA100.1 la標(biāo)準(zhǔn)的無線傳感網(wǎng)的通信中轉(zhuǎn)方法,其特征 在于:所述的命令狀態(tài)包括新建New、已發(fā)送Sent、已響應(yīng)Responded和失敗Fai led,新插入 數(shù)據(jù)庫對應(yīng)表中的實例化命令數(shù)據(jù)的命令狀態(tài)都賦值為New。5. 根據(jù)權(quán)利要求1所述的基于ISA100.1 la標(biāo)準(zhǔn)的無線傳感網(wǎng)的通信中轉(zhuǎn)方法,其特征 在于:所述數(shù)據(jù)庫的接口設(shè)計為多線程連接池,連接池維護(hù)著若干數(shù)據(jù)庫連接,每個連接對 應(yīng)一個處理SQL語句的線程,中間件在訪問數(shù)據(jù)庫時即激活一個空閑線程并使用對應(yīng)的連 接去執(zhí)行數(shù)據(jù)庫訪問任務(wù),訪問結(jié)束后連接依然有效同時對應(yīng)線程置為等待;查詢操作由 只讀連接完成,且只讀連接由多個查詢操作共享;增、刪、改操作由可寫連接完成,且每個可 寫連接只能由一個寫入操作獨(dú)占。6. 根據(jù)權(quán)利要求1所述的基于ISA100.1 la標(biāo)準(zhǔn)的無線傳感網(wǎng)的通信中轉(zhuǎn)方法,其特征 在于:所述的網(wǎng)關(guān)服務(wù)由ISA100.1 la協(xié)議標(biāo)準(zhǔn)定義,包括警報管理服務(wù)Alert、大塊數(shù)據(jù)傳 輸服務(wù)BulkTransf er、客戶服務(wù)器服務(wù)ClientServer、發(fā)布訂閱服務(wù)Publ ishSubscribe、系 統(tǒng)報告服務(wù)SystemReport和時間服務(wù)TimeService;命令和網(wǎng)關(guān)服務(wù)之間是多對多的對應(yīng) 關(guān)系;所述的設(shè)備列表命令調(diào)用系統(tǒng)報告服務(wù);網(wǎng)絡(luò)拓?fù)涿钫{(diào)用系統(tǒng)報告服務(wù);信道調(diào)度 命令調(diào)用系統(tǒng)報告服務(wù);設(shè)備信息命令調(diào)用客戶服務(wù)器服務(wù)、發(fā)布訂閱服務(wù)、系統(tǒng)報告服務(wù) 和時間服務(wù);網(wǎng)絡(luò)健康命令調(diào)用警報管理服務(wù)、系統(tǒng)報告服務(wù)和時間服務(wù);設(shè)備鄰居命令調(diào) 用警報管理服務(wù)、系統(tǒng)報告服務(wù)和時間服務(wù);契約路由命令調(diào)用系統(tǒng)報告服務(wù)。7. 根據(jù)權(quán)利要求1所述的基于ISA100.1 la標(biāo)準(zhǔn)的無線傳感網(wǎng)的通信中轉(zhuǎn)方法,其特征 在于:所述響應(yīng)數(shù)據(jù)的甄別包括以下內(nèi)容:對比WSN響應(yīng)數(shù)據(jù)和所對應(yīng)實例化命令數(shù)據(jù)的請 求數(shù)據(jù)剔除錯誤數(shù)據(jù),對比WSN響應(yīng)數(shù)據(jù)的時間戳和所對應(yīng)實例化命令數(shù)據(jù)的更新時間剔 除超時數(shù)據(jù)。
【文檔編號】H04W40/22GK105898820SQ201610394189
【公開日】2016年8月24日
【申請日】2016年6月6日
【發(fā)明人】王鼎衡, 張建奇, 成斐鳴
【申請人】西安航天自動化股份有限公司