官术网_书友最值得收藏!

2.2.1 多源異構數據的統一描述與管理機制

為了實現數據的跨設備融合,需要研發統一的數據描述和管理機制(Unified Data Description and Management,UDDM)。設計新型的數據描述方案,對數據源、數據描述以及實際數據的存儲進行分析建模,該機制具有良好的可擴展性,能夠主動采集預設數據類型的數據,還能夠被動感知新的數據類型,實現對未知數據的采集。該機制具有分布式和一致性的特點,可以為數據的查詢、分析和挖掘提供便捷高效的接口。如圖2-4所示,智能工廠中的各類數據源都配有對應的工業傳感器,通過統一的數據描述和管理機制可以對數據進行感知和采集。

圖2-4 統一的數據描述和管理機制

1.節點

工業無線傳感器網絡中的節點可能具有的角色有三個:數據提供者、數據請求者和數據目錄。為了能夠執行數據融合過程中涉及的操作,上述三類節點分別具有以下三個關鍵構件:數據代理(Data Agent,DA)、用戶代理(User Agent,UA)和目錄代理(Catalog Agent,CA)。為簡單起見,在本章余下的篇幅中將數據提供者節點、數據請求者節點和數據目錄節點分別稱為DA節點、UA節點和CA節點。本章所考慮的工業無線傳感器網絡由DA、UA和CA三類節點構成。

2.目錄代理

目錄代理即CA節點,其提供存儲數據注冊信息的場所。DA節點將自身采集到的數據信息發送給CA節點進行注冊。對于UA節點發起的數據查詢,CA節點基于自身擁有的數據注冊信息進行應答。簡言之,CA節點的存在能夠增強數據融合體系結構的有效性。全體CA節點基于Chord協議構成一個結構化的對等網絡。Chord協議是一個可擴展的分布式查找協議,其提供的最重要的操作是將鍵(key)映射至節點。通過一致性哈希(consistent hashing)操作,每個數據項都可以與唯一的鍵進行關聯。鍵–值(key-value)存儲在鍵所對應的節點上。Chord協議提供了節點加入和節點離開的相應機制,能夠確保整個網絡的正常運行。Chord協議中的所有節點都是對等的,其具有自身的信息傳遞機制。傳統無線傳感器網絡中的節點周期性地給匯聚節點發送信息,盡管這樣做使得路由工作更加容易,但是靠近匯聚節點的節點承受了過多的中繼工作量。因此,這些節點的電量會比其他節點更早地枯竭。相反,在本章提出的模型中,由全體CA節點構成的Chord網絡不具有匯聚節點,整個網絡的狀態是由監測令牌(monitoring token)來進行收集和呈現的,監測令牌的詳細內容見本章的后續內容。對于傳統無線傳感器網絡中簇頭的輪換(rotation)策略,簇頭的選舉和輪換不可避免地引入了大量的額外開銷。在本章提出的模型中,Chord協議自身所具有的一致性哈希機制使得鍵被均勻地映射至Chord網絡中的所有節點。同樣,Chord協議中的查找操作也基于相同的一致性哈希機制。因此,對于全體CA節點來說,數據查詢的過程也是負載平衡的。上述特征使得本章提出的模型可以避免某些CA節點異常快速地耗盡電量。

3.統一的數據描述和管理機制

所有參與數據融合體系結構的節點(CA、DA和UA)都需要知曉該機制。具體來說,該機制包含一個用來對數據進行描述(profile)的屬性列表。表中的每個屬性都可以取一系列數值。將屬性和它們的值用表L表示,網絡中的所有節點都完全知曉這個表的內容。例如,名為“source”的屬性可以表示數據的來源,其“值”可以為熱交換器、傳送帶電機和旋擰閥等。假定表L中的屬性以及它們對應的值是提前確定好的。將屬性用集合property=pr1,pr2,…,prnp來表示,其中pri的相應取值由集合pi=pvi1,pvi2,…,pvim來表示。每個屬性用一個字節來表示,則其有m=256個不同的取值。現在,引入數據描述的定義。

定義2-1 數據描述

數據描述(data description)是指字符串desp=pv1s,pv2j,…,pv(np-i)k,其中0≤i<np且1≤s,j,k≤256。該字符串通過依次連接np-i個屬性的值來構成。當i=0時,稱desp是一個完全描述(complete description);當i≠0時,稱desp是一個不完全描述(incomplete description)。

那么,總共存在個不同的完全描述可以用來對數據進行描述。數據描述的格式如圖2-5所示。

圖2-5 數據描述

4.數據的注冊和注銷

對于數據注冊來說,提交給CA節點的數據信息由三部分組成:數據的描述、數據提供者的ID(如設備序列號)以及訪問該數據的URL地址。需要注意的是,只有數據的完全描述可以被用來進行數據注冊。本章提出的模型給數據提供者的ID預留了32字節的空間,盡管HTTP協議沒有規定URL的最大長度,但本章的模型在設計時將其最大長度限制為2048字節。數據注冊的格式如圖2-6所示。

圖2-6 數據注冊

不妨用2m來表示Chord網絡的標識符空間。為了容納個不同的完全描述,需要滿足:

使用SHA-1作為一致性哈希函數來為CA節點和數據生成鍵,將所使用的一致性哈希函數用sHash(string)來表示。當接收到合法的數據注冊請求時,CA節點首先給發起該數據注冊請求的DA節點發送數據注冊確認(data registration acknowledgment)。然后,該CA節點從數據注冊請求中提取出數據描述和數據提供者ID并連接成一個字符串str,該數據的鍵通過key=sHash(str)得到。然后,該CA節點將<key,URL>發送給負責該key的CA節點。DA節點可以向其通信范圍內的任意CA節點進行數據注冊。只要DA節點收到某個數據注冊請求的注冊確認,那么就無須再對該數據進行注冊。當DA節點在向某個CA節點注冊一系列數據時,該CA節點突然失聯(雙方不在通信范圍內或者該CA節點失效),那么該DA節點可以聯絡其他的CA節點來對剩余的數據進行注冊。數據注銷采用和數據注冊類似的方式進行。

5.鍵的生成和查找

在非結構化的對等網絡中,基于關鍵字(keyword)的查找是可行的。然而,在結構化的對等網絡協議Chord中,針對數據名稱的一致性哈希以及分布式哈希表不允許這樣的操作。因此,只有完全匹配的方式是可行的。傳統方法采用名為反向索引(inverted index)的<keyword,node>映射方式,基于關鍵字的查詢通過冗余存儲來實現。該方法的最大弊端是常見關鍵字(common keyword),負責常見關鍵字的節點不可避免地承受了大量的存儲和應答負擔。在本章提出的模型中,鍵的產生是通過對由數據描述和數據提供者ID連接而成的字符串執行哈希操作來獲得的。數據提供者ID的存在解決了上述的常見關鍵字問題。

當具有潛在的數據查找需求時,UA節點從表中選出若干個感興趣的屬性。然后,該UA節點將和數據描述具有相同格式的數據查詢發送給CA節點。當收到數據查詢后,CA節點首先檢查屬性值是否有缺失。對于完全描述,該CA節點將自身所知曉的數據提供者ID追加在該完全描述的末尾,并對由該數據描述和數據提供者ID組成的字符串進行哈希操作。然后,該CA節點對所得的鍵進行查找。然而,由于UA節點自身的不確定性,很有可能存在一些屬性的值缺失的情況。那么,CA節點收到的就是不完全描述。對于缺失的i個屬性值,CA節點將對各個屬性使用該屬性以往最受歡迎的查詢值來進行填充,而填充進去的最受歡迎的查詢值的個數則用nmpv來表示。

CA節點在完成對原始的不完全描述的填充操作后,可得到nmpv個完全描述。然后,該CA節點將自身所知曉的數據提供者ID追加在上述完全描述的末尾,而CA節點所知曉的數據提供者的個數則用nsp來表示。對于假設的應用場景景i=1、nmpv=3和nsp=2,不完全描述的填充(filling)和追加(appending)操作如圖2-7所示。由于不完全描述經過填充和追加操作后得到6個字符串,因此需要查詢與之對應的6個不同的鍵。

圖2-7 填充和追加操作

屬性值的缺失是允許的,因為這樣可以為UA節點提供相對開放的查詢結果。由于需要查詢的數據信息是根據UA節點和CA節點的期望產生的,因此最后,完全描述和不完全描述均有可能無法得到實際的查詢結果。對于針對實際存在的數據的鍵的查詢,對該鍵負責的CA節點會給發起該查詢的初始CA節點發送數據應答。然后,查詢結果由發起該查詢的初始CA節點反饋給UA節點。

主站蜘蛛池模板: 财经| 咸宁市| 乌鲁木齐县| 沙洋县| 土默特右旗| 东乡县| 仁怀市| 内丘县| 保亭| 澄城县| 永平县| 内江市| 怀化市| 舒城县| 南通市| 通道| 德州市| 凤城市| 大化| 玉林市| 吕梁市| 红安县| 固原市| 海城市| 巴中市| 乐亭县| 明星| 桐乡市| 双柏县| 鄂托克旗| 尼木县| 黑山县| 兴安县| 子长县| 昂仁县| 涞源县| 多伦县| 新余市| 开平市| 宝鸡市| 手游|