駱瀟龍
摘 要:智慧農業是現代化農業發展的必然趨勢。將農業生產活動中的感知數據共享在網絡中使之可以被檢索發現是農產品監管以及精細耕作的前提。然而農產品與感知數據間關系復雜,無法使用爬蟲獲取全部關聯信息,因此現有的檢索方案無法有效解決農產品關聯資源數據的查詢需求,所以本文提出了一種基于標識服務的資源數據檢索方法,借助標識明確了產品的關聯關系。最后針對查詢效率進行了測評,并驗證了本方案在異構網絡環境中具有良好的擴展性。
關鍵詞:智慧農業;檢索服務;關聯資源發現;可擴展性
1 前言
智慧農業是物聯網[1] 應用發展的重要方向之一[2],它作為農業生產的高級階段可以為其帶來不可估量的推動力和無可限量的前景。目前智慧農業的定義各有不同[3-4],但其本質都是物聯網技術在農業中的應用,包括各種感知設備對農業生產活動的數據感知,監控,處理等,為農業生產者、消費者提供各種有價值的數據服務。各種數據服務的支撐是各種感知數據。通過這些數據,消費者可以獲取更多農產品信息,國家監管部門可以對農業生產進行監管,農業服務提供商可以為農戶提供精準的生產建議。要想更好的利用這些感知數據,就需要將這些數據共享在網絡中使他們可以被檢索到。
然而智慧農業中的感知數據具有規模巨大、時空關聯、冗余度高、多維標量等特征[5],這就決定了檢索數據資源時面臨著更多的挑戰。傳統的互聯網檢索針對的資源主要是以靜態文檔型為主的網頁數據[9],這些數據一旦發布內容很少發生變化[7],因此互聯網搜索引擎可以通過爬蟲獲取網頁關鍵字,建立倒排索引實現資源搜索。而智慧農業中的資源大多都是從現實世界中抽象出的對象以及實時描述對象的感知數據信息。由于對象之間關系復雜[6],一個對象的感知信息同樣也可以描述與它相關的其他對象,但是這些暗含的關系無法通過爬蟲全部獲取并建立索引。因此傳統互聯網的搜索方式無法有效的解決通過對象查詢其全部關聯感知數據的檢索需求。同時,智慧農業中數據規模巨大且主要以開放查詢接口的方式共享數據。而用戶希望通過統一的查詢服務獲取網絡中不同應用提供的數據服務。因此物聯網檢索面向的是大規模異構的網絡環境,這需要檢索系統具有很強的擴展性。
為了解決上述問題,本文開展了物聯網資源檢索方案的研究。使用標識的方式表述對象間的關系,同時使用分布式索引樹的方式維護現實中的關聯關系,并在此基礎上設計檢索方法,使之能在異構的物聯網環境中獲取所有與查詢對象相關的數據資源。最后針對查詢效率進行了測評,并驗證了本方案在異構網絡環境中具有良好的擴展性。
2 相關工作
在物聯網環境中,資源對象的搜索問題一直被學術界所重視,當前已有很多工作基于不同的出發點對物聯網檢索技術進行了研究,并取得了不少成果。
Snoogle[8,10] 系統在現實實體上部署傳感器保存關于實體的一組關鍵字的文本描述。索引節點(index point)保存管理范圍內的傳感器,所有索引節點由關鍵索引節點(key index point)統一維護。查詢請求根據地區范圍發送到索引節點或關鍵索引節點,根據關鍵字匹配返回最符合的結果。這中集中管理的方式使得Snoogle系統無法應用于大規模異構的網絡環境,可擴展性不高。
MAX[11]系統為物理實體分配帶有關鍵字的標簽(RFID)并部署在子站(Sub-station)中。基站(Base-station),從邏輯上講它表述的是一個靜態且不可動的地方,負責管理該范圍內的子站。最上層的 MAX 服務器管理維持著所有基站和其位置信息的目錄。搜索時,服務器逐層廣播,獲取關鍵字匹配的標簽列表。這樣雖然能在索引維護上減少資源消耗,但是嚴重增加了通信開銷,因此同樣不適用于大規模異構的網絡環境。
WoT[11-15]的核心思想是借助互聯網的基礎設施資源將物理實體的資源和服務以網頁的形式共享出來,從而使物聯網的資源檢索服務轉化為了Web服務的發現過程[16-17]。Dyser[18]系統就是基于WoT思想上實現的一種物聯網實時搜索引擎。
Dyser檢索系統使用現有網絡基礎設施以Web頁面的形式發布傳感器和物理實體的資源服務,并創建物理實體的索引,使用戶可以快速的搜索到符合指定狀態的物理實體。該系統提出了利用歷史數據信息建立實體預測模型的方式來實現對動態屬性的搜索。Dyser是一個具有靈活性、擴展性、普適性的全局搜索服務。但是該系統需要人工提前確定物理實體與傳感器之間的關系,同時傳感器無法自動與所有相關實體對象建立關系,從而使用戶無法獲取到與對象相關的全部感知數據資源。
以上的這些相關工作都在一定程度上解決了在網絡中搜索指定實體對象的問題,但是對于一些實際的應用場景,尤其針對像智慧農業中資源數據規模巨大存在異構,對象間具有關聯性的情況,它們在具體實現時還是無法滿足檢索到對象全部相關感知數據的查詢需求。因此本文在以上方案的基礎上研究一種基于標識服務的檢索方法來解決上述需求。
3 智慧農業中基于標識服務的資源檢索方法
在智慧農業中,物聯網標識是一個非常重要的資源[19],它與資源對象擁有相同生命周期。通過標識不僅可以對資源數據進行統一的查詢,而且還可以在標識中保存對象間的關系,方便用戶通過標識獲取對象相關資源數據。因此考慮使用標識服務解決智慧農業中相關資源數據的查詢問題。
3.1 智慧農業場景及問題
結合現實中的實際情況,本文設計了智慧農業的四層體系結構如圖1所示。該結構自底向上分為對象感知層、數據層、基礎服務層和應用層。感知層是由各種感知設備組成的異構網絡,負責捕獲農場中的感知信息。數據層主要負責保存感知數據以及實體對象描述信息并提供查詢接口。在應用層用戶提出各種獲取數據的需求。而基礎服務層在整個體系中則起著至關重要的作用。它需要向下組織數據層共享的資源數據查詢接口,向上接收應用層的請求并返回相應的資源給用戶。劉陽等人[20]認為標識是與物品具有同樣生命周期的重要屬性,基于此他提出了建立國家物聯網標識管理公共服務平臺(后文簡稱國家平臺)實現基礎服務層,為用戶提供解析、發現等公共服務。該系統可以有效應對農產品信息呈現的異構、復雜、分散等特點,使任意農場系統的標識都能定位到相應的信息服務器上,從而達到整合各個農場的資源信息,為用戶提供統一服務的目的。
雖然國家平臺解決了部分資源獲取的問題,但是依然無法解決如何根據標識發現全部與該產品對象相關的數據資源的問題。例如部署在農場大棚中的溫度傳感器實時記錄著該大棚的溫度變化情況。然而這些溫度數據同樣也可以用來描述生長在該大棚下蔬菜產品。但傳感器在記錄溫度數據時不會關聯到大棚中的蔬菜產品。因此僅僅通過產品標識無法查詢到這些傳感器產生的感知數據。為了解決這個問題本文提出使用帶有層級關系的產品標識保存對象之間的關聯關系,使用分布式的樹狀結構維護對象與對象,對象與感知數據之間的關聯關系。并設計基于對象關系樹的檢索方法使用戶可以通過產品標識查詢到相關傳感器的數據信息。
3.2 基于標識服務的檢索方法
3.2.1 基本定義與說明
定義1(資源對象)資源對象(O)是指從現實世界的實體中抽象出來的虛擬數字對象。用戶可以與網絡中的資源對象進行交互獲取現實實體的信息。資源對象的屬性信息(OI)表示為一個n元組,其中Ki:Vi代表描述資源對象某個屬性特征的鍵值對。
定義2(屬性)根據已定義的資源對象,描述對象某方面特征的數據稱為該對象的屬性(property)。屬性在資源對象中一般表達為
該分布式樹狀結構由網絡中的各個服務器共同維護,每個服務器維護自己所管理的資源對象的屬性信息以及資源對象之間的關聯關系。每個對象節點的建立只用在所屬的父對象節點上注冊即可。這種分布式層次樹狀結構將資源對象信息的管理權交給對象的所有者,各個對象節點只用關心與子節點的關系即可維護全網范圍內對象間的關系。而資源對象的對象標識則可以通過該對象在整個樹形結構中的位置來生成。
4.2 對象與屬性關聯關系的維護
在農場的各個對象中部署了大量的傳感器,這些傳感器以預設頻率周期性采集用于描述監測目標某種特征的感知數據信息。各種感知數據可以抽象為以下形式
其中relativeLocation可稱為相對地址也可以稱為描述對象。這個屬性表示了傳感器部署的相對位置,如南沙資訊科園霍英東大樓3樓A301室。同時也可以理解為傳感器監控的資源對象。property表示的是傳感器描述的是監控對象哪一方面的屬性。例如溫度傳感器一般描述的是監控對象的溫度屬性。視頻傳感器則可以根據需求表述為監控對象的路況屬性(監控某個交通路口),安全屬性(監控敏感區域)等。timeStamp表示監控數據采集的時間點。reading則表示傳感器采集生成的具體數據。如一個表示溫度的讀數,一段視頻數據流,一個表示光照強度的數值。
根據上述公共的4個部分我們可以把這些感知數據都理解為描述在某時間點的資源對象某一屬性所抽象的數據值。因此傳感器產生的感知數據即為資源對象的動態屬性。資源對象除了動態屬性外還有靜態屬性。靜態屬性的內容通常是不隨時間的變化而頻繁發生改變的文本描述信息。這些屬性內容以屬性記錄(Recordproperty)的形式保存在相應的對象節點中。屬性記錄具體內容如下:
其中,Name表示屬性的名稱。Type表示屬性的類型。根據定義2,Type可以分為以傳感器數據為主的動態屬性(D-property)和以文本描述為主的靜態屬性(S-property)。若Type為靜態屬性那么Info中則直接保存該屬性的文本描述。與靜態屬性不同,作為動態屬性的感知數據被不同傳感器采集后保存在不同的數據服務器中。由于對象節點無法維護海量的感知數據,同時數據服務器也不可能將全部數據再發送一份到對象節點中,只能以開放查詢接口的方式共享數據。因此,如果Type為動態屬性那么Info中則保存感知數據的取數接口。
在智慧農業場景中,傳感器在部署完成后它所監控的對象以及描述對象何種屬性就固定不變了,而且一個傳感器所產生的全部數據是由固定系統維護保存的。這種固定監測環境數據的感知設備也不會頻繁進入或離開網絡,因此本文采用人工發起請求的方式向農場資源對象下注冊動態屬性。注冊時需要提供傳感器所監控對象的對象標識、表征對象的屬性以及傳感器數據的取數地址。首先通過國家平臺解析對象標識確定傳感器所監控的對象節點,然后向該對象節點發起對象屬性注冊請求。該請求包括傳感器表征對象的屬性以及感知數據的取數接口并說明屬性的類型為動態屬性。為了獲取數據方便我們建議數據維護廠商使用REST架構的Web服務來實現取數接口。同時傳感器數據具有很強的時間關聯性,不同時間點表示的數據意義大不相同,因此廠商提供的取數接口應該支持以時間為條件的查詢請求。注冊成功后傳感器取數接口作為表征該對象的動態屬性被注冊到相應對象節點下,從而建立了對象與感知數據的關聯關系。而靜態屬性一般由資源對象的所有者自行維護,當有新的靜態屬性加入時,則在對象節點下自行加入相應的屬性記錄即可。
5 基于對象關系樹的相關信息檢索方法
在物聯網資源檢索中用戶有獲取檢索對象相關信息的需求。根據上文所述對象標識含有與該產品相關的全部對象,因此在檢索時需要遍歷這些對象,獲取與查詢對象相關的全部信息。雖然相關對象間屬性表述的內容是可以共享的,但是從時間的角度上說子對象只存在于父對象的一定時間范圍內。例如溫室中的濕度數據同樣可以表示在溫室中生長蔬菜的濕度屬性,然而傳感器記錄的濕度數據是溫室全生命周期內數據,蔬菜產品只存于溫室中一定時間范圍內,在獲取相關數據信息時也只能獲取蔬菜這段時間范圍內的感知數據信息。因此在獲取產品相關對象的感知數據時必須帶有產品與其他對象相關聯的時間范圍。為此本文所提出了基于標識服務的資源檢索方法,檢索服務器處理過程歸納如圖4:
(1)用戶通過掃碼等技術手段獲取物理實體上的對象標識(IDO),使用該對象標識向國家平臺的檢索服務器發起查詢請求。
(2)檢索服務器在收到此對象標識后首先解析對象標識,定位到資源對象對應的對象節點(ONode)中,在對象節點中可以獲取該資源對象的屬性信息(OI)并添加到檢索結果集Robj中。
(3)本文中默認查詢對象在相關對象中存在的時間(duration)作為靜態屬性保存在對象節點中。在獲取產品對象全部屬性信息后,首先提取該時間段作為后續查詢的前提。如果對象屬性中未包含該時間段則終止查詢,將Robj直接返回給用戶。
(4)在查詢對象存在時間段確定的情況下,根據對象標識“O1.O2.O3.…On”循環查詢上一級相關對象的子對象記錄(RecordsubNode),根據ExtendProperty字段的內容,獲取子對象繼承的屬性記錄(Recordproperty)將其加入到相關屬性列表中(Listproperty),直到遍歷完全部相關對象即上一級相關對象標識變為物聯網根對象“cniotroot.cn”時終止。
(5)遍歷Listproperty中全部屬性記錄(Recordproperty),該屬性的Type為靜態屬性(S-property)則將記錄中Name作為key,Info作為value加入到Robj中。如果該屬性的Type為動態屬性(D-property),則以對象存在時間段為條件,向該記錄中Info對應的數據取數接口發送請求。最后以返回結果作為value以記錄中Name作為Key保存至Robj中。
(6)此時Robj不僅包含查詢對象的信息,還包括相關對象中可以表達該對象特征的信息
[13]Guinard D,Trifa V,Wilde E.A resource oriented architecture for the Web of Things[A].Internet of Things(IOT)[C].2011:1-8.
[14]Guinard D.A Web of things application architecture[J].DissDgen?ssischeTechnischeHochschule Eth Zürich Nr,2011.
[15]Christophe B,Boussard M,Lu M,et al.The web of things vision:Things as a service and interaction patterns.[J].Bell Labs Technical Journal,2011,16(1):55-61.
[16]Ostermaier B,Ro?Mer K,Mattern F,et al.A real-time search engine for the Web of Things[A].Internet of Things(IOT)[C].2010:1-8.
[17]劉陽.基于標識服務的物聯網資源管理關鍵技術研究[D].中國科學院大學,2014.
[18]Tian Y,Liu Y,Yan Z,et al.RNS-A Public Resource Name Service Platform for the Internet of Things[A].Green Computing and Communications(GreenCom),2012 IEEE International Conference on[C].2012:234-239.
[19]劉鵬.RFID網絡發現服務關鍵技術研究[D].中國科學院大學,2015.
[20]Fielding R T.Architectural styles and the design of network-based software architectures[D].University of California,Irvine,2000.
(作者單位:重慶郵電大學計算機學院)