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