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