樂 毅, 范國華, 吳云志, 張友華, 吳國棟
(安徽農(nóng)業(yè)大學(xué)信息與計算機學(xué)院,安徽合肥 230036)
可持續(xù)農(nóng)業(yè)是現(xiàn)代農(nóng)業(yè)的發(fā)展趨勢,其核心是保護人類生存的自然環(huán)境以及保護農(nóng)業(yè)賴以存續(xù)和發(fā)展的自然資源[1]。有害生物綜合防治IPM(Integrated Pest Management,簡稱 IPM)概念自從1961年Geiser等首先提出后,經(jīng)過40多年的發(fā)展,已經(jīng)成為現(xiàn)代農(nóng)業(yè)科學(xué)技術(shù)革命的典范。目前IPM概念已經(jīng)被人們普遍接受,IPM形式在世界各國廣泛傳播,如在美國人們對身體健康及影響健康的環(huán)境因子特別關(guān)注,對農(nóng)作物施用化學(xué)物質(zhì)(包括化肥、農(nóng)藥)特別敏感,對有機食物的喜愛促進(jìn)了IPM事業(yè)的發(fā)展。聯(lián)合國糧農(nóng)組織以項目的形式實施東南亞國家水稻IPM項目多年(1983年至今),世界銀行也在多國組織開展水稻、小麥、棉花、果樹、蔬菜、玉米、大豆等作物的IPM研究與推廣工作。安徽省自1988年參加“中國/FAO亞洲水稻IPM 項目”以來又于2000年開始實施棉花等IPM項目[2]。
安徽省有害生物綜合治理一直是由植保部門實施的,傳統(tǒng)的植保信息管理系統(tǒng)是以地區(qū)為中心自我研發(fā)和維護的一個獨立的封閉系統(tǒng),使得系統(tǒng)存在以下幾方面的問題:信息采集方式多樣,數(shù)據(jù)格式不統(tǒng)一,地區(qū)之間存在較大差異;各地區(qū)之間數(shù)據(jù)離散化和利益局部化,全省植保數(shù)據(jù)不能實現(xiàn)充分共享和利用;數(shù)據(jù)更新手段落后,預(yù)測手段原始,經(jīng)驗占有主導(dǎo)地位;同時使用多種設(shè)計語言、開發(fā)環(huán)境、信息存儲模式等不盡相同,實現(xiàn)的功能經(jīng)常是針對一種或者一類病蟲害,不同功能的IPM系統(tǒng)無法實現(xiàn)整合重用,不能從整體和全局角度考慮。
本文提出了一種采用SOA(Service-Oriented Architectures,簡稱SOA)架構(gòu)思想構(gòu)建省級植保IPM系統(tǒng)的解決方案。SOA架構(gòu)下的IPM系統(tǒng)采取面向服務(wù)的架構(gòu)思想,采用交互式和重用性開發(fā)模式,開發(fā)周期短,以業(yè)務(wù)服務(wù)為中心,獨立于具體實現(xiàn)業(yè)務(wù)服務(wù)的硬件平臺、操作系統(tǒng)和編程語言等細(xì)節(jié),服務(wù)是敏捷和松耦合的,能夠升級單個服務(wù)或服務(wù)消費者而無需重寫整個應(yīng)用,也能夠取消已經(jīng)不再適用于新需求的現(xiàn)有服務(wù),因而能夠靈活方便地實現(xiàn)不同功能的IPM系統(tǒng)業(yè)務(wù)服務(wù)的整合重用。
SOA是一種以服務(wù)為導(dǎo)向的軟件開發(fā)思想,服務(wù)之間通過簡單、精確定義的接口進(jìn)行通信,獨立于具體實現(xiàn)服務(wù)的硬件平臺、操作系統(tǒng)和編程語言,是易于管理的各種粗粒度、松耦合的服務(wù)架構(gòu)模型。其目的是為了適應(yīng)不斷變化的業(yè)務(wù)需求,最大限度地重用應(yīng)用系統(tǒng)中已有的業(yè)務(wù)服務(wù),快速方便地實現(xiàn)所有業(yè)務(wù)服務(wù)的整合應(yīng)用,以提高軟件適應(yīng)性和開發(fā)效率[3,4]。
IPM是一種農(nóng)田有害生物種群管理策略和管理系統(tǒng),它從生態(tài)學(xué)和系統(tǒng)論的觀點出發(fā),針對整個農(nóng)田生態(tài)系統(tǒng),研究生物種群動態(tài)和相聯(lián)系的環(huán)境,采用盡可能相互協(xié)調(diào)的有效防治措施并充分發(fā)揮自然抑制因素的作用,將有害生物種群控制在經(jīng)濟損害允許水平以下,并使防治措施對農(nóng)田生態(tài)系統(tǒng)內(nèi)外的不良影響減少到最低限度,以獲得最佳的經(jīng)濟、生態(tài)和社會效益[5,6]。
安徽省植保數(shù)據(jù)共享平臺建設(shè)內(nèi)容:①省級共享平臺建設(shè),實現(xiàn)多樣數(shù)據(jù)采集,全省共享,動態(tài)維護的管理方式,建立全省植保信息化共享平臺;②地區(qū)之間信息交換和共享,建立覆蓋全省植保信息網(wǎng)絡(luò),實現(xiàn)植保網(wǎng)的互聯(lián)互通,實現(xiàn)群防群治的全省有害生物防治預(yù)警網(wǎng)絡(luò);③建立覆蓋全省植保服務(wù)網(wǎng)絡(luò),建立省市縣三級植保網(wǎng)絡(luò)和覆蓋全省農(nóng)村的聲訊和網(wǎng)站查詢和咨詢系統(tǒng),建立24 h短信服務(wù)機制,提高農(nóng)村植保覆蓋面,拓展植保服務(wù)三農(nóng)的深度;④建立科學(xué)植保分析統(tǒng)計和預(yù)測決策系統(tǒng),依托共享信息數(shù)據(jù),設(shè)計符合決策要求的數(shù)據(jù)倉庫和智能決策支持軟件,為農(nóng)民朋友提供科學(xué)及時的植保分析信息、預(yù)測結(jié)果和防治方法。
通過對SOA的實踐,設(shè)計出了基于SOA的IPM系統(tǒng)的實驗框架,框架由應(yīng)用接口層、服務(wù)實現(xiàn)層、系統(tǒng)核心管理層以及數(shù)據(jù)層組成,如圖1所示。
圖1 實驗框架圖
(1)IPM Client Web。它處理整個應(yīng)用的用戶界面部分,也可以用其它的 MVC架構(gòu),Struts2是目前的主流MVC架構(gòu),在實際系統(tǒng)中大量被采用。用戶輸入病害、蟲害、農(nóng)藥名稱查詢相應(yīng)的信息;管理員添加病害、蟲害、農(nóng)藥信息;專家輸入咨詢編號獲得用戶咨詢的問題信息;輸入統(tǒng)計數(shù)據(jù)獲得病蟲害發(fā)生周期和發(fā)生級別,輸入作物名稱或月份獲得相關(guān)的周期預(yù)測信息記錄,輸入客戶端編號獲得監(jiān)測信息,然后做出相應(yīng)的處理。
(2)信息系統(tǒng)總線。該模塊將各種服務(wù)進(jìn)行集成管理,是 SOA架構(gòu)的核心技術(shù)[7,8]。使用BEA AquaLogic Service Bus,集中管理各種Web Service,并在所管理的服務(wù)之間實現(xiàn)消息路由,作為信息處理的代理。
(3)IPM Web Service接口。該模塊建立標(biāo)準(zhǔn)化的業(yè)務(wù)服務(wù)接口,是SOA得以提供標(biāo)準(zhǔn)化服務(wù)的基礎(chǔ),將業(yè)務(wù)服務(wù)接口層和業(yè)務(wù)服務(wù)實現(xiàn)層完全分離開來,實現(xiàn)不同IPM業(yè)務(wù)服務(wù)系統(tǒng)之間的集成。使用Session Bean實現(xiàn)IPM應(yīng)用服務(wù)的業(yè)務(wù)邏輯,將Web服務(wù)器和應(yīng)用服務(wù)器分離開來,并提供遠(yuǎn)程分布式調(diào)用接口。
(4)信息存儲模塊。該模塊存儲和管理IPM系統(tǒng)相關(guān)信息,使用Entity Bean封裝了應(yīng)用服務(wù)對數(shù)據(jù)庫的所有操作,實現(xiàn)業(yè)務(wù)邏輯層和數(shù)據(jù)庫操作層的分離,即不需要在業(yè)務(wù)邏輯層編寫SQL語句。
(1)查詢服務(wù)。用戶通過查詢服務(wù)輸入相關(guān)信息便可以快速方便地獲得所需要的病害、蟲害、農(nóng)藥信息。
(2)咨詢服務(wù)。用戶遇到病蟲害疑難問題時,可以通過咨詢服務(wù)提交問題咨詢農(nóng)業(yè)專家,使問題得到經(jīng)濟快速的解決。
煉山是造林的一個重要工序,對于造林的效果有很大幫助,不僅能夠收集林木所需的草木灰,而且能夠改變土壤環(huán)境,去除病菌。因此,為了能夠更好的改善造林技術(shù),早造林的前一年冬季需要進(jìn)行相應(yīng)程度的煉山,對林地進(jìn)行清理,伐根要求在20cm以下。煉山應(yīng)在上一年伐區(qū)于次年1月底前完成;當(dāng)年伐區(qū)當(dāng)年造林的在交付伐區(qū)后1個月內(nèi)完成。
(3)預(yù)測服務(wù)。專家通過預(yù)測服務(wù)預(yù)測未來一年里可能發(fā)生的病蟲害及其發(fā)生程度,并制定相應(yīng)的防治計劃發(fā)布給用戶,用戶瀏覽預(yù)測信息后采取有效的措施防治病蟲害,降低經(jīng)濟損失。
(4)監(jiān)測服務(wù)??蛻舳吮O(jiān)測儀器監(jiān)測農(nóng)田的氣溫、降雨量、日照時長及識別已經(jīng)發(fā)生的病蟲害,然后將監(jiān)測信息反饋給服務(wù)系統(tǒng)。專家通過監(jiān)測信息預(yù)測出短期內(nèi)可能發(fā)生的病蟲害,并制定出相應(yīng)的防治措施。
首先在Eclipse+Struts+Spring Framework環(huán)境下創(chuàng)建基于Struts的IPM MVC Web應(yīng)用,在此基礎(chǔ)上創(chuàng)建Session Bean實現(xiàn)Java分布式應(yīng)用開發(fā),接著建立數(shù)據(jù)庫并創(chuàng)建相應(yīng)的Entity Bean實現(xiàn)對數(shù)據(jù)庫表的操作,然后基于Axis創(chuàng)建IPM Web Services提供標(biāo)準(zhǔn)化的業(yè)務(wù)服務(wù)接口,最后基于已有的 IPM Web Services創(chuàng)建SOA架構(gòu)下的IPM業(yè)務(wù)服務(wù),并實現(xiàn)所有業(yè)務(wù)服務(wù)的整合應(yīng)用。
在所有服務(wù)中間,預(yù)測服務(wù)是整個IPM 的最重要的一個服務(wù)。預(yù)測服務(wù)的效率體現(xiàn)了IPM服務(wù)的高低,因為在農(nóng)業(yè)病蟲害管理中,“防重于治”是農(nóng)業(yè)病蟲害治理的一個核心原則。安徽省的數(shù)據(jù)農(nóng)業(yè)病蟲害預(yù)測預(yù)報工作起步較晚,各方面的數(shù)據(jù)錄入并不完善,一組數(shù)據(jù)項中僅有一條或者幾條數(shù)據(jù),為預(yù)測帶來了不便,在設(shè)計中使用植保氣候功能區(qū)劃分方式解決這個問題。把全省劃分為:江南丘陵、長江沿岸等6個植保功能區(qū),解決預(yù)測決策中屬性值缺失的問題,實踐應(yīng)用取得了較好的決策效果。整個預(yù)測服務(wù)使用帶有決策權(quán)重的決策樹為核心算法進(jìn)行預(yù)測分析,效果顯著,預(yù)測準(zhǔn)確率達(dá)到90%以上[9],如三化螟的預(yù)測過程如圖2所示。
圖2 帶權(quán)重決策樹的預(yù)測分析
全省的信息網(wǎng)部署了分布式本體知識,解決了安徽省南北方方言差異大和農(nóng)民植保術(shù)語不規(guī)范的問題,利用本體庫中同義詞實現(xiàn)智能快速植保信息檢索和發(fā)布。本體利用語義網(wǎng)為信息載體,語義網(wǎng)為Internet上的信息檢索提供計算機可以理解的植保語義,從而能夠滿足農(nóng)民朋友用不規(guī)范的方言對Web上異構(gòu)、分布式信息的有序檢索和訪問,實現(xiàn)了網(wǎng)上信息資源在語言的語義層次上全方位互聯(lián),并在此基礎(chǔ)上實現(xiàn)了更高層次的基于知識智能決策應(yīng)用。對于基于SOA的植保網(wǎng)絡(luò),載有本體的語義網(wǎng)可以提供植保術(shù)語的語義環(huán)境支持,從而提高面向植保咨詢服務(wù)應(yīng)用的智能程度和互操作能力。沒有植保同義詞語義的支持,服務(wù)應(yīng)用只能在語法層次上進(jìn)行互操作。而在本體語義網(wǎng)的支持下,面向服務(wù)的應(yīng)用可以在語義層次上達(dá)到互操作,服務(wù)查詢匹配的準(zhǔn)確度會有較大提高,對地區(qū)方言和不規(guī)范術(shù)語查詢也能得到很好的支持。
基于語義網(wǎng)的本體分布式結(jié)構(gòu)[10],如圖3所示。
圖3 植保語義本體分布式結(jié)構(gòu)圖
本體語義Web服務(wù)是安徽植保網(wǎng)的重要研究領(lǐng)域,通過本體庫的地區(qū)建設(shè)解決本體建設(shè)中領(lǐng)域知識需要專門人員參與的難點,實現(xiàn)領(lǐng)域知識和存儲結(jié)構(gòu)的分布式部署。通過Web服務(wù)的植保術(shù)語語義的描述,使專業(yè)人員和農(nóng)村用戶均能一致地理解和使用Web服務(wù),并實現(xiàn)Web服務(wù)的自動發(fā)現(xiàn)、組合、互操作和監(jiān)控,因此植保本體和規(guī)則學(xué)習(xí)技術(shù)及Web服務(wù)技術(shù)將使得SOA更具有智能和自動服務(wù),在持久層描述上實現(xiàn)了植保信息的數(shù)據(jù)集成。
基于SOA的有害生物治理管理系統(tǒng)使用JavaEE的Spring Framework企業(yè)業(yè)務(wù)架構(gòu)集成相關(guān)服務(wù)組件模塊。
(1)數(shù)據(jù)查詢和集成模塊,使用Spring框架按照服務(wù)總線協(xié)議規(guī)范集成服務(wù)模塊,對傳統(tǒng)的業(yè)務(wù)、異構(gòu)數(shù)據(jù)庫實現(xiàn)集成和封裝異構(gòu)訪問服務(wù),實現(xiàn)訪問接口的一致性。
(2)數(shù)據(jù)源服務(wù)是提供格式一致的數(shù)據(jù),在XML數(shù)據(jù)格式的基礎(chǔ)上對結(jié)構(gòu)化和半結(jié)構(gòu)化數(shù)據(jù)以及基于語義Web的本體數(shù)據(jù)進(jìn)行統(tǒng)一格式數(shù)據(jù)訪問,支持?jǐn)?shù)據(jù)訪問同步,保持系統(tǒng)數(shù)據(jù)一致性。
(3)服務(wù)流程控制模塊(含智能分析),使用Web Services實現(xiàn)單個業(yè)務(wù)流程服務(wù)發(fā)布,使用Spring特有組件對服務(wù)流程進(jìn)行定制,并且對檢索實現(xiàn)某種語義層次分析,達(dá)到語義層次上檢索的一致性。
(4)服務(wù)視圖模塊,主要支持用戶界面的重用,實現(xiàn)對WebGIS視圖和JavaEE企業(yè)架構(gòu)視圖服務(wù)整合[11-18]。
根據(jù)上述設(shè)計策略,設(shè)計出了基于SOA的IPM系統(tǒng)的實驗架構(gòu),實現(xiàn)了IPM系統(tǒng)業(yè)務(wù)服務(wù)的構(gòu)建、發(fā)布和管理,完成了IPM系統(tǒng)業(yè)務(wù)服務(wù)的整合和應(yīng)用,封裝了負(fù)載均衡算法和集群管理模式。在實驗過程中使用WebGIS對安徽植保信息進(jìn)行基于地理信息的管理,實驗結(jié)果如圖4和圖5所示。
圖4 安徽省稻飛虱查詢結(jié)果
圖5 安徽省稻飛病蟲趨勢圖
實驗結(jié)果表明,SOA架構(gòu)下的IPM系統(tǒng)解決了傳統(tǒng)IPM系統(tǒng)難以整合重用的問題,能夠準(zhǔn)確有效地管理已有的IPM業(yè)務(wù)服務(wù),能夠靈活方便地實現(xiàn)不同功能的IPM系統(tǒng)業(yè)務(wù)服務(wù)的整合重用。
基于SOA的有害生物治理管理系統(tǒng)的實現(xiàn)分為3個階段:選擇語義查詢服務(wù)作為SOA的切入點,引入了SOA架構(gòu),該階段已經(jīng)完成;建立一個基于JavaEE應(yīng)用集成平臺,該平臺獨立于應(yīng)用,使用SpringFrameWork業(yè)務(wù)組件實現(xiàn)應(yīng)用復(fù)用與組合應(yīng)用;所有服務(wù)組件已經(jīng)服務(wù)化,所有的服務(wù)在系統(tǒng)架構(gòu)內(nèi)實現(xiàn)應(yīng)用共享和相互調(diào)用,設(shè)計一個組件協(xié)調(diào)中心,后面2個階段是今后一段時期內(nèi)的主要任務(wù)。
[1]陳士謙,田傳國.新世紀(jì)呼喚安全的植物保護技術(shù)[EB/OL].[2010-04-10].http://www.yizailing.com/chinese/theory/hope1.htm.
[2]春 牛.IPM基礎(chǔ)知識[EB/OL].[2010-04-21].http://www.pjny.g ov.cn/bbs/print.asp?id=135.
[3]Hao He.What is service-oriented architecture?[EB/OL].[2010-04-20].http://www.xml.com/pub/a/ws/2003/09/30/soa.html.
[4]Kno rr E,Rist O.10 steps to SOA[EB/OL].[2010-04-20].http://www. infoworld. com/article/05/11/07/45FEsoaintro-1.html.
[5]肖悅巖,季伯衡,楊之為,等.植物病害流行與預(yù)測[M].北京:中國農(nóng)業(yè)大學(xué)出版社,1998:50-146.
[6]花日茂,陳 軍.安徽主要農(nóng)作物病蟲草害綜合防治[M].北京:中國農(nóng)業(yè)科技出版社,2001:1-30.
[7]梁愛虎.精通SOA:基于服務(wù)總線的 Struts+EJB+Web Service整合應(yīng)用開發(fā)[M].北京:電子工業(yè)出版社,2007:129-182.
[8]孫衛(wèi)琴.精通Struts:基于 MVC的 Java Web設(shè)計與開發(fā)[M].北京:電子工業(yè)出版社,2005:425-438.
[9]孫淮寧,胡學(xué)鋼.一種基于屬性貢獻(xiàn)度的決策樹學(xué)習(xí)算法[J].合肥工業(yè)大學(xué)學(xué)報:自然科學(xué)版,2009,32(8):1137-1141.
[10]喻 堅,韓燕波.面向服務(wù)的計算:原理和應(yīng)用[M]北京:清華大學(xué)出版社,2006:24-25.
[11]馮 靚,李立特,王振強,等.基于SOA思想的電子口岸信息平臺系統(tǒng)[J].計算機應(yīng)用與軟件,2007,24(9):117-119.
[12]譚文安,楊 赟,許益成.基于SOA的新農(nóng)村服務(wù)集成建模[J].上海第二工業(yè)大學(xué)學(xué)報,2008,25(3):174-179.
[13]李永鋒,趙小明.面向服務(wù)的旅游資源信息服務(wù)框架結(jié)構(gòu)[J].合肥工業(yè)大學(xué)學(xué)報:自然科學(xué)版,2008,31(4):522-526.
[14]李德仁,黃俊華,邵振峰.面向服務(wù)的數(shù)字城市共享平臺框架的設(shè)計與實現(xiàn)[J].武漢大學(xué)學(xué)報:信息科學(xué)版,2008,33(9):881-885.
[15]張惠芬,王 兵,汝勁松,等.SOA在上海市民服務(wù)信息系統(tǒng)中應(yīng)用的研究[J].計算機應(yīng)用與軟件,2008,25(10):187-189.
[16]林培龍,劉柏嵩.基于SOA的電子政務(wù)決策支持系統(tǒng)研究[J].合肥工業(yè)大學(xué)學(xué)報:自然科學(xué)版,2009,32(6):862-865.
[17]周進(jìn)剛,趙大哲,紀(jì) 勇.基于SOA的政務(wù)綜合服務(wù)系統(tǒng)研究[J].計算機技術(shù)與發(fā)展,2008,18(10):89-92.
[18]楊象馳,李鵬飛.基于SOA的郵政物流信息系統(tǒng)規(guī)劃[J].計算機工程與設(shè)計,2007,28(19):4825-4827.