鄒一琴, 張 兵
(1.江蘇大學(xué),江蘇鎮(zhèn)江 212013; 2.常州工學(xué)院,江蘇常州 213002)
隨著農(nóng)業(yè)技術(shù)和計算機(jī)技術(shù)的發(fā)展,各類農(nóng)業(yè)資源在現(xiàn)代大型農(nóng)業(yè)工程、農(nóng)業(yè)信息服務(wù)和數(shù)字媒體應(yīng)用的科學(xué)研究中迅速增長。面對幅員遼闊的農(nóng)業(yè)資源分布和動態(tài)變化的農(nóng)業(yè)生產(chǎn)環(huán)境中的不同要素,大到水質(zhì)、土壤、氣象,小到光照度、溫濕度、灌溉、化肥和農(nóng)藥施用量,用戶必須提取、訪問、分析和利用大量分布式和異構(gòu)資源。物聯(lián)網(wǎng)的傳統(tǒng)體系結(jié)構(gòu)基于3層模式,即包括物理感知層、信息傳遞層、業(yè)務(wù)應(yīng)用層的3層結(jié)構(gòu)。由于傳統(tǒng)的物聯(lián)網(wǎng)是基于應(yīng)用的設(shè)計,它適于解決個別特定的農(nóng)業(yè)物聯(lián)網(wǎng)的應(yīng)用需求,如實(shí)時監(jiān)測、遠(yuǎn)程控制。但如何把不同物聯(lián)網(wǎng)應(yīng)用(如A區(qū)的水產(chǎn)養(yǎng)殖物聯(lián)網(wǎng)和B區(qū)的大田作物農(nóng)情監(jiān)測系統(tǒng))聯(lián)系起來,更好地為整個農(nóng)業(yè)行業(yè)服務(wù),面對農(nóng)業(yè)工程實(shí)際用例的復(fù)雜性和多樣性,這樣的3層結(jié)構(gòu)難以對農(nóng)業(yè)資源對象進(jìn)行分類、組織、管理。本研究提出了一種基于SOA(service-oriented architecture,面向服務(wù)的架構(gòu))的農(nóng)業(yè)物聯(lián)網(wǎng),依托農(nóng)業(yè)網(wǎng)格的方式把整個農(nóng)業(yè)物聯(lián)網(wǎng)的應(yīng)用通過服務(wù)封裝的形式組織起來,實(shí)現(xiàn)農(nóng)業(yè)服務(wù)無差別地注冊登記、調(diào)度管理以及服務(wù)交易。
AIoT(agricultural internet of things,農(nóng)業(yè)物聯(lián)網(wǎng))是現(xiàn)代農(nóng)業(yè)技術(shù)應(yīng)用與發(fā)展的互聯(lián)網(wǎng)加應(yīng)用。如圖1所示,在感知層利用光、溫、氣等傳感器傳感和監(jiān)測農(nóng)業(yè)生產(chǎn)和環(huán)境信息對象,在網(wǎng)絡(luò)層有效傳遞這些信息,在應(yīng)用層處理這些消息,實(shí)現(xiàn)智能監(jiān)測或生產(chǎn)應(yīng)用及信息管理。依據(jù)傳統(tǒng)的物聯(lián)網(wǎng)3層理論,其基本結(jié)構(gòu)可以分為物理感知層、信息傳輸層、服務(wù)應(yīng)用層三部分。物理感知層即農(nóng)業(yè)信息感知和監(jiān)測層,信息傳輸層即信息傳輸和智能處理層,服務(wù)應(yīng)用層別稱農(nóng)業(yè)信息服務(wù)應(yīng)用層。
SOA是一種新型的基于Web服務(wù)和云計算技術(shù)的架構(gòu)方法。它使用服務(wù)來幫助組織應(yīng)用或?qū)嵗?,通過使用面向服務(wù)的架構(gòu)和產(chǎn)品列表來決定與每個技術(shù)的供應(yīng)商站點(diǎn)的連接方式。它應(yīng)用程序的不同功能單元(稱為服務(wù)),通過這些服務(wù)之間定義良好的接口和契約聯(lián)系起來。接口采用中立的方式進(jìn)行定義,這樣能獨(dú)立于實(shí)現(xiàn)服務(wù)的硬件平臺、操作系統(tǒng)和編程語言,使構(gòu)建在各種系統(tǒng)中的服務(wù)以一種統(tǒng)一、通用的方式進(jìn)行交互。網(wǎng)格是一種用于集成或共享地理上分布的各種資源[1],包括計算機(jī)系統(tǒng)、存儲系統(tǒng)、通信系統(tǒng)、文件、數(shù)據(jù)庫、程序等。本研究基于農(nóng)業(yè)網(wǎng)格的AIoT,通過網(wǎng)格構(gòu)建農(nóng)業(yè)服務(wù),使存在于不同地理位置的農(nóng)業(yè)物聯(lián)網(wǎng)資源成為有機(jī)整體,共同完成任務(wù)。
農(nóng)業(yè)資源包括自然資源和經(jīng)濟(jì)資源[2]。自然資源包含農(nóng)業(yè)生產(chǎn)可以利用的自然環(huán)境要素,如土地資源、水資源、氣候資源和生物資源等。經(jīng)濟(jì)資源包含對農(nóng)業(yè)生產(chǎn)直接或間接發(fā)揮作用的社會經(jīng)濟(jì)因素和社會生產(chǎn)成果, 如農(nóng)業(yè)人口和勞動力的數(shù)量和質(zhì)量、農(nóng)業(yè)技術(shù)裝備以及交通運(yùn)輸、通信等農(nóng)業(yè)基礎(chǔ)設(shè)施等。這些動態(tài)變化、異地分布、表現(xiàn)形式多樣的資源都對農(nóng)業(yè)生產(chǎn)產(chǎn)生影響。而對應(yīng)的農(nóng)業(yè)應(yīng)用也是五花八門的,其中涉及的數(shù)據(jù)大小也不同,小到有幾個字節(jié)的狀態(tài)顯示,大到有百萬億字節(jié)級別的動態(tài)數(shù)據(jù)更新。而且這些數(shù)據(jù)大部分是分布式、異構(gòu)、不斷變化的。為了避免用戶直接面對如此復(fù)雜的數(shù)據(jù),需要把這些數(shù)據(jù)封裝起來,只向用戶展示最終的業(yè)務(wù)服務(wù)[3]。建立基于SOA的農(nóng)業(yè)物聯(lián)網(wǎng),首先須要建立統(tǒng)一、通用的資源節(jié)點(diǎn)。針對如何定義SOA模式下的農(nóng)業(yè)資源,如何界定在農(nóng)業(yè)生產(chǎn)過程中的各種生產(chǎn)要素,本研究提出基于語義網(wǎng)格的農(nóng)業(yè)應(yīng)用架構(gòu),并根據(jù)時空本體定義元數(shù)據(jù)。
圖2是基于農(nóng)業(yè)資源網(wǎng)格的應(yīng)用節(jié)點(diǎn)模型。這種模型是以服務(wù)為導(dǎo)向,以O(shè)GSA(open grid services architecture,開放式網(wǎng)格服務(wù)架構(gòu))的形式表達(dá)[4],它是農(nóng)業(yè)資源網(wǎng)格節(jié)點(diǎn)的三級架構(gòu)。與傳統(tǒng)的AIoT結(jié)構(gòu)相比,它封裝和隱藏農(nóng)業(yè)數(shù)據(jù),將資源網(wǎng)格節(jié)點(diǎn)的農(nóng)業(yè)信息資源格式和決策支持系統(tǒng)統(tǒng)一起來,通過資源管理中間件對農(nóng)業(yè)資源和服務(wù)進(jìn)行分類和映射。根據(jù)需要可實(shí)現(xiàn)基于農(nóng)業(yè)資源網(wǎng)格核心業(yè)務(wù)層的任務(wù)調(diào)度、資源管理以及信任等級的計算,并根據(jù)需要最終向每個網(wǎng)格節(jié)點(diǎn)的用戶分發(fā)信息服務(wù)。農(nóng)業(yè)資源網(wǎng)格節(jié)點(diǎn)的部署架構(gòu)與傳統(tǒng)結(jié)構(gòu)相似,全局站點(diǎn)級別是客戶可以看到和訪問的外觀,交互站點(diǎn)級別是AIoT的組織和管理部分,它是AIoT元素的網(wǎng)格封裝層,內(nèi)部站點(diǎn)級別是AIoT中實(shí)際具體的分布式資源。所有用戶請求都必須發(fā)送到處于最上層的全局調(diào)度層的節(jié)點(diǎn),由全局調(diào)度層對交互站點(diǎn)層的節(jié)點(diǎn)進(jìn)行集中式管理,而內(nèi)部站點(diǎn)層中的節(jié)點(diǎn)按照交互站點(diǎn)層的調(diào)度計劃完成相關(guān)任務(wù)[5]。盡管內(nèi)部站點(diǎn)的節(jié)點(diǎn)可能是分布的農(nóng)業(yè)資源,屬于不同所有者,其管理策略是非協(xié)作的;但是為了實(shí)現(xiàn)協(xié)同的農(nóng)業(yè)服務(wù),交互站點(diǎn)層的管理策略通過統(tǒng)一、協(xié)作的調(diào)度方法使其完成合作。
農(nóng)業(yè)資源具有時間性、空間性,同一農(nóng)業(yè)數(shù)據(jù)在不同時期或地理區(qū)域有不同的應(yīng)用。因此,農(nóng)業(yè)數(shù)據(jù)應(yīng)考慮到時間性和空間性?;跁r空本體的農(nóng)業(yè)元數(shù)據(jù)建模采用Web本體語言和語義Web規(guī)則語言(semantic web rule language,SWRL)來描述基于時空動態(tài)分布的農(nóng)業(yè)數(shù)據(jù)的時間原始動作和空間原始動作。根據(jù)農(nóng)業(yè)數(shù)據(jù)資源的內(nèi)涵(如規(guī)則集、多媒體集、語義片段集、線性規(guī)劃模型等)確定數(shù)據(jù)資源的層次和結(jié)構(gòu)[6],并通過采用多維結(jié)構(gòu)描述數(shù)據(jù)本體及其屬性(如數(shù)據(jù)的基本內(nèi)容、數(shù)據(jù)類型、數(shù)據(jù)表示、數(shù)據(jù)所有領(lǐng)域等)。
圖3描述了基于時空本體建立的農(nóng)業(yè)元數(shù)據(jù)模型的過程。該模型使用字典來描述和分析農(nóng)業(yè)資源的內(nèi)涵,確定應(yīng)用范圍,并定義所需的數(shù)據(jù)管理。使用自上而下的順序來確定農(nóng)業(yè)數(shù)據(jù)的層次結(jié)構(gòu),可以分為概念層面、公理層面、規(guī)則層面、方法層面。通過確定其內(nèi)容、類型、表示形式、數(shù)據(jù)字段、位置坐標(biāo),以設(shè)計農(nóng)業(yè)數(shù)據(jù)的空間結(jié)構(gòu)。利用時空本體單元,形成統(tǒng)一的農(nóng)業(yè)元數(shù)據(jù)高維模型,將數(shù)據(jù)源空間與公共時間軸連接起來,確定數(shù)據(jù)源和農(nóng)業(yè)數(shù)據(jù)網(wǎng)格系統(tǒng)的對應(yīng)關(guān)系。它使用基于XML標(biāo)準(zhǔn)的擴(kuò)展格式來表示數(shù)據(jù)的中間格式?;赪SRF(web services resource framework,網(wǎng)絡(luò)服務(wù)資源框架)的資源結(jié)構(gòu)定義各種農(nóng)業(yè)資源,不僅包括信息的靜態(tài)不變屬性,還包括變化和動態(tài)特性[7]。
這些農(nóng)業(yè)資源屬性可以劃分為基本屬性、擴(kuò)展屬性和任務(wù)屬性?;緦傩远x農(nóng)業(yè)資源的基本特征或特征,包括名稱、數(shù)量、供應(yīng)商、種類、位置、狀態(tài)等信息。擴(kuò)展屬性定義了在農(nóng)業(yè)生產(chǎn)過程中輸入的信息,包括生產(chǎn)環(huán)境、時效信息、使用流程、基本費(fèi)用、空間調(diào)度費(fèi)用信息、政策或法律因素信息等。此屬性中對時間、空間或政治屬性進(jìn)行分類。任務(wù)屬性是輸出農(nóng)業(yè)生產(chǎn)過程中的資源信息,包括生產(chǎn)能力、批量信息和完成量等生產(chǎn)信息[8]。
根據(jù)農(nóng)業(yè)資源的屬性結(jié)構(gòu),農(nóng)業(yè)資源可以以三元組的形式表示:組件=
農(nóng)業(yè)網(wǎng)格要求代理找到必要的資源時,需要網(wǎng)格任務(wù)代理人根據(jù)任務(wù)的特點(diǎn)和預(yù)算進(jìn)行農(nóng)業(yè)資源的招標(biāo),資源和客戶通過競標(biāo)獲得一定比例的使用權(quán)和任務(wù)分配。具體流程是:當(dāng)任務(wù)提交時,網(wǎng)格任務(wù)代理一直輪詢,表明農(nóng)業(yè)網(wǎng)格資源尚未分配給網(wǎng)格任務(wù)代理。網(wǎng)格任務(wù)代理使用網(wǎng)格任務(wù)代理任務(wù)列表來存儲和管理要執(zhí)行的任務(wù),并根據(jù)任務(wù)表項(xiàng)加以完成。
圖4描述了網(wǎng)格任務(wù)代理任務(wù)列表中的樹結(jié)構(gòu)。農(nóng)業(yè)網(wǎng)格任務(wù)代理任務(wù)列表由幾個任務(wù)項(xiàng)組成;農(nóng)業(yè)網(wǎng)格任務(wù)代理給出使用資源的任務(wù)主體名稱。代理商的代理人名稱是全球唯一的,可以通過信息服務(wù)映射到特定的網(wǎng)絡(luò)地址和物理地址,包括域名、公司地址、法定代表、聯(lián)系信息和虛擬地址分配。任務(wù)內(nèi)容包括任務(wù)號、請求描述、任務(wù)完成時間和任務(wù)價格;任務(wù)編號是分配給使用該服務(wù)的農(nóng)業(yè)網(wǎng)格任務(wù)代理的序列號。在同一合同中,每個任務(wù)都有唯一的任務(wù)號。
農(nóng)業(yè)網(wǎng)格任務(wù)代理獲取資源的過程如圖5所示,箭頭在垂直線方向表示發(fā)生的時間順序,具體操作可以包括以下步驟:(1)投標(biāo)。在農(nóng)業(yè)網(wǎng)格資源任務(wù)代理所在節(jié)點(diǎn)創(chuàng)建1個UDP套接字發(fā)送消息,并創(chuàng)建1個單播TCP套接字,接收來自網(wǎng)格任務(wù)代理的消息。農(nóng)業(yè)網(wǎng)格任務(wù)代理創(chuàng)建1個套接字用于監(jiān)聽資源節(jié)點(diǎn)的通告。(2)競標(biāo)成功。農(nóng)業(yè)網(wǎng)格資源提供者代理AGRPA(agricultural grid resource provider agent)監(jiān)聽網(wǎng)格任務(wù)代理發(fā)出競標(biāo)信息,從數(shù)據(jù)包中提取任務(wù)代理競標(biāo)項(xiàng),農(nóng)業(yè)網(wǎng)格資源代理首先檢查能否滿足任務(wù)代理所需資源的條件,若能滿足,再根據(jù)任務(wù)代理所出的標(biāo)價選擇出價格最高的任務(wù)代理,若不能滿足則馬上返回信息。當(dāng)競標(biāo)結(jié)果產(chǎn)生后,資源節(jié)點(diǎn)將從數(shù)據(jù)包中提取IP地址以建立TCP連接,隨后向網(wǎng)格任務(wù)代理發(fā)出資源中標(biāo)通知消息。
假設(shè)農(nóng)業(yè)網(wǎng)格資源調(diào)度者具有m個資源(m≥1)R1,R2,…,Rm,用實(shí)數(shù)隊列Si(i=1,2,…,m)表示每個資源的業(yè)務(wù)能力(包括生產(chǎn)效率、產(chǎn)品質(zhì)量、平均生產(chǎn)周期等),則建立農(nóng)業(yè)網(wǎng)格的調(diào)度模型如圖6所示,主要組成部分包括應(yīng)用接口、資源發(fā)現(xiàn)和事務(wù)處理模塊、支持啟發(fā)式調(diào)度算法管理模塊、網(wǎng)格通道列表、網(wǎng)格通道分配模塊。
調(diào)度程序的工作模式包括以下幾步:一是農(nóng)業(yè)物聯(lián)網(wǎng)用戶首先建立任務(wù)或作業(yè)(job),作業(yè)包括對用戶需求的具體描述,如須要培育5萬只大閘蟹和具體提交標(biāo)的時限,其任務(wù)會被翻譯成一系列標(biāo)準(zhǔn)的網(wǎng)格通道列表,然后通過應(yīng)用程序接口傳遞給AG資源調(diào)度器。二是資源搜索和發(fā)現(xiàn)模塊會匹配相應(yīng)節(jié)點(diǎn)的生產(chǎn)能力,通過交易模塊與網(wǎng)格信息服務(wù)模塊相互作用確定資源的信息,如評判相應(yīng)的大閘蟹培育基地,然后與資源相互作用建立農(nóng)業(yè)資源的配置和調(diào)用花費(fèi)。通過投標(biāo)和競標(biāo)達(dá)成協(xié)作的電子合同。三是系統(tǒng)根據(jù)代理者資源列表,分配網(wǎng)格通道列表中的作業(yè)在資源中協(xié)同執(zhí)行,如前述的大閘蟹培育需求因?yàn)樾枨罅烤薮螅氁峙涞讲煌拇箝l蟹生產(chǎn)基地協(xié)同執(zhí)行,通過測試和數(shù)據(jù)統(tǒng)計方法,農(nóng)業(yè)資源的生產(chǎn)能力數(shù)據(jù)被作為預(yù)測依據(jù)。四是調(diào)度管理模塊基于資源調(diào)度算法和農(nóng)業(yè)資源的生產(chǎn)能力,根據(jù)用戶需求,考慮最終期限和預(yù)算限制,最優(yōu)化策略-代價、代價-時間、時間或時間變量等要素為網(wǎng)格通道選擇合適的農(nóng)業(yè)資源。五是對每個農(nóng)業(yè)資源,網(wǎng)格通道分配模塊根據(jù)使用策略選擇網(wǎng)格通道的數(shù)量來執(zhí)行,以避免對于單一服務(wù)供應(yīng)商的農(nóng)業(yè)作業(yè)或農(nóng)業(yè)資源的空載或負(fù)載過重。
本研究提出一種基于SOA的網(wǎng)格型農(nóng)業(yè)物聯(lián)網(wǎng),用來組織和管理農(nóng)業(yè)工程應(yīng)用領(lǐng)域的所有農(nóng)業(yè)要素和資源。它使用面向服務(wù)的架構(gòu)封裝和管理傳統(tǒng)3層物聯(lián)網(wǎng)模型的應(yīng)用模型,為農(nóng)業(yè)生產(chǎn)過程中的多樣應(yīng)用的需求提供無差別的連接和管理。把多樣的物聯(lián)網(wǎng)應(yīng)用協(xié)同和聯(lián)系起來,使農(nóng)業(yè)資源更加合理高效地為農(nóng)業(yè)生產(chǎn)服務(wù)。由于篇幅原因,僅討論了基于SOA的網(wǎng)格型農(nóng)業(yè)物聯(lián)網(wǎng)應(yīng)用節(jié)點(diǎn)模型、農(nóng)業(yè)資源元數(shù)據(jù)建模以及農(nóng)業(yè)資源的獲取、認(rèn)證和面向協(xié)作的AG資源調(diào)度方法?;赟OA的網(wǎng)格型物聯(lián)網(wǎng)是一個復(fù)雜的系統(tǒng)學(xué)工程,須要不斷完善和發(fā)展,并不斷地應(yīng)用到農(nóng)業(yè)生產(chǎn)實(shí)踐中去。
[1]Lopez T S,Ranasinghe D C,Harrison M,et al. Adding sense to the internet of things—an architecture framework for smart objective systems [J]. Personal & Ubiquitous Computing,2012,16(3):291-308.
[2]Pintus A,Carboni D,Piras A. Paraimpu:a platform for a social web of things[C]. Proceedings of the 21st International Conference on World Wide Web,New York,2012:401-404.
[3]Sulistyo S,Prinz A. PMG-pro:a model-driven method for the development of service-based applications in a heterogeneous services environment[C]//In Proceeding of IEEE International Conference on Software Engineering and Service Sciences.Beijing:Ieee Press,2010:111-114.
[4]Sulistyo S,Prinz A. PMG-pro:a model-driven method for the development of service based applications[C]//Proceeding of 15th International Conference on System Design Languages(Integrating System and Software Modeling).Toulouse,2011:136-151.
[5]Liu S Q,F(xiàn)eng X L,Shao H L. Path optimization of mobile agent in grid resource discovery[J]. Computer Engineering and Design,2008,29(8):1918-1920.
[6]Zhang Q,Wang R C. Research on model of resource discovery based Mobile agent in grid environment[J]. Data Communications,2005,23(6):27-29.
[7]Zhang L. Research on semantic web based resource integration and scheduling for manufacturing grid[D]. Xi’an:Northwestern Ploytechnical University,2006.
[8]Liu Q,Shi Y J,Shao X Y. Concepts&architecture of grid manufacturing supporting cross-enterprises collaboration[J]. Computer Integrated Manufacturing System,2007,13(4):711-715.