摘 要:為了解決目前我國測土配方施肥軟件難以推廣的問題,采用面向構件技術設計了測土配方施肥輔助決策技術體系,并著重對其構件體系進行闡述;對測土配方施肥的作業流程進行了業務單元的劃分,并將劃分結果映射為相應的業務構件;在此基礎上,給出了按需搭建構件化測土配方施肥輔助決策系統的方法;最后,結合實例分析了構件化測土配方施肥輔助決策系統在大范圍推廣應用、節約開發成本、縮短開發周期、實現軟件重用等方面具有的優勢。
關鍵詞:構件化; 測土配方施肥; 空間分析; 施肥推薦; 軟件架構
中圖分類號:TP311 文獻標志碼:A
文章編號:10013695(2008)09274803
Research on componentoriented decisionmaking support platform
of soil testing and formulated fertilization
CHEN Tianen1,2, ZHAO Chunjiang1,2, CHEN Liping1, CHEN Hong2
(1.National Engineering Research Center for Information Technology in Agriculture, Beijing 100097, China; 2.Key Laboratory for Information Technologies in Agriculture, Ministry of Agriculture, Beijing 100097, China)
Abstract:Soil testing and formulated fertilization decisionmaking support platform was established by using componentoriented technology. The component system, as a highlight of this platform, was discussed in detail. At the platform analysis cycle,the workflow of soil testing and formulated fertilization was divided into different business units, and as the mapping result of business units, corresponding business components were developed, methods of constructing componentsbased and ondemand soil testing and formulated fertilization decisionmaking support system were also provided. Finally, advantages of componentsbased soil testing and formulated fertilization decisionmaking support system, such as lower cost and shorter system development cycles, easier deployment in different areas, etc., were discussed by a practical example.
Key words:componentoriented; soil testing and formulated fertilization; spatial analysis; fertilizer recommendation; software engineering
0 引言
測土配方施肥是以肥料田間試驗和土壤測試為基礎,根據作物需肥規律、土壤供肥性能和肥料效應,在合理施用有機肥的基礎上,提出氮、磷、鉀及中、微量元素等肥料的使用品種、數量、施肥時期和使用方法[1]。測土配方施肥是加強農田質量建設、提高作物生產能力、保護農村生態環境及保障農產品質量安全的重要技術手段。
作為農田測土配方施肥的信息化決策支持工具,測土配方施肥輔助決策系統可以對測土配方施肥實施所涉及的大量復雜信息,如區域地形、土壤類型、土壤肥力、氣象、灌溉、種植作物種類、田間試驗結果等,進行有效管理和分析;為測土配方施肥實施過程中的土壤養分測試、施肥指標體系建立、施肥推薦方案確定、區域肥料配方確定等提供決策依據。近年來,我國施肥輔助決策系統的研制取得了較大的進展:中國農業科學院土肥所開發了中國土壤肥料信息系統(SOFISC),實現了土壤肥料變化預測、土壤肥料專家系統、農業地圖集輸出等功能;南京農業大學以江蘇省大豐市為試驗區,開發了土壤管理與施肥決策系統;新疆農業大學基于GIS和Sybase SQL Anywhere數據庫的棉花、小麥、玉米計算機推薦施肥系統,實現了條田管理、土壤理化分析數據處理、肥料田間試驗回歸分析等功能;揚州市土肥站研制的縣域耕地資源管理信息系統(1996—2000)和平衡施肥專家咨詢系統(2000—2003),應用GIS對耕地、土壤、農田水利、農業經濟等方面的空間數據進行了統計分析、專題評價和施肥咨詢。上述研究成果在不同地區得到應用推廣,明顯提高了農田施肥效率和精度,對于保護耕地地力、促進作物產量增長、緩解農田面源污染起到了積極的作用。
從2005年開始,農業部連續三年在全國范圍組織實施測土配方施肥補貼項目,到2007年試點縣數量已經達到1 200個,實施面積達到6.4億畝,覆蓋了全國1/3的耕地。但是由于我國各地區域特征差異顯著,各地種植作物的需肥規律和各地農田土壤的供肥性能存在較大區別;此外,各地對于施肥輔助決策系統功能的需求也存在較大差異,由此造成了現有各種施肥輔助決策系統往往僅適用于特定地區特定作物的施肥推薦,難以在全國范圍進行推廣應用。為了配合農業部測土配方施肥項目實施,解決施肥輔助決策系統的推廣難題,本文依據農業部“測土配方技術規范(試行)修訂稿”,采用面向構件技術進行測土配方施肥輔助決策技術體系的研究,有效整合空間信息技術及各類施肥推薦運籌模型,用于開發構件化的測土配方施肥輔助決策系統。本文的工作從軟件工程的角度,為建設可在全國范圍推廣的開放式測土配方施肥輔助決策系統進行了有益的嘗試。
1 面向構件技術
面向構件技術是軟件工程發展到一定時期的產物。在經歷了結構化、模塊化和面向對象的軟件工程方法后,人們開始通過有計劃地集成現有的軟件部分來進行軟件開發,這通常被稱為基于構件的軟件工程(componentbased software engineering, CBSE),這些軟件部分被稱為構件[2,3]。早期的構件技術以CORBA、Microsoft的DCOM/COM+、Sun Microsystems的EJB(enterprise JavaBeans)為代表,實現了可插拔、可復用的功能,這個層次上的構件應用對當時的軟件開發起到了促進作用。然而,隨著技術層次構件的逐漸積累和成熟,應用軟件開發迫切需要的不再是細粒度的技術構件,而是粗粒度的應用業務構件,這類業務構件具有松耦合的特性,能體現更高層次上的抽象。以業務構件為中心的面向構件技術被稱為新一代的構件技術[2]。
1.1 構件的定義
構件的具體定義目前學術界還存在分歧,但是構件技術的基本思想已經得到普遍認可,即通過定義良好、功能獨立的軟件部分來搭建應用系統。構件不等同于模塊化編程中的子程序、面向對象方法中的類或對象,或者系統模型中的包。事實上,構件的概念既包括了上述思想,又進行了進一步的擴展[4]。構件是設計、實現和維護構件化系統的基礎。作為表達業務需求的最小單元,構件必須是一個獨立包裝、分發、交付的功能部分,具有獨立標志、屬性和功能,依賴并通過接口對外提供服務。基本業務構件可組裝形成功能更加豐富的綜合業務構件。
構件設計和劃分一般遵循以下原則[2,5]:
a)獨立,即構件表達的業務邏輯發生變化,不會影響其他業務;
b)完備,構件應充分、完整表達一個業務邏輯;
c)實用,構件代表的業務邏輯應具有實用性;
d)穩定,支持隨需應變的系統構建,充分考慮需求變化導致的影響;
e)多層次封裝,按照需求進行分層次的細節屏蔽,為開發者提供不同層面的接口;
f)數據獨立,實現數據與業務的邏輯分離。
1.2 面向構件的技術體系
構件化技術體系包涵了構件系統層面、構件功能層面和面向構件的應用系統開發層面等三部分,三者之間彼此相關,共同組成了面向構件技術體系[6]。其中:a)構件系統層面是從構件的重用性考慮,從粗到細一般分為構件庫、構件系統、構件包、構件和構件接口等,粗粒度的構件系統可以由細粒度的構件搭建形成;b)構件功能層面是對軟件應用的抽象拆分,按照不同功能,可將構件分為用戶界面構件、業務邏輯構件、流程構件、分析運算(模型)構件、數據構件等,各類構件被定義具有明確的職責分工;c)面向構件開發層面包涵了需求、建模、設計、開發/組裝、測試、部署等階段。由于上述每一階段都是以構件為基礎,均可按照構件組裝的方式進行[5,7]。
在面向構件技術體系框架內,通過組裝構件的方法,即可形成構件化應用系統,該系統的功能由構件相互協作完成,構件之間通過定義明確的接口來使用相互的服務。
2 面向構件的測土配方施肥輔助決策技術體系
測土配方施肥要求收集農田地形、土壤類型、氣象、灌溉、作物、種植習慣等信息,并分析這些因素對于施肥效果的影響;同時要進行土壤采樣測試和肥料田間實驗[8]。在此基礎上,借助特定的施肥推薦模型進行施肥品種、方法和數量的決策。雖然各地區對測土配方施肥輔助決策系統的功能需求存在差異,但是業務流程大體一致,具體的業務邏輯也比較明晰。按照構件設計劃分的原則,本文將測土配方施肥輔助決策系統的業務劃分為相對獨立、功能完備的六個業務單元,即農田土壤采樣管理單元、農田信息管理單元、試驗數據管理分析單元、農田空間信息分析單元、輔助施肥決策單元、農田地圖布局輸出單元。在面向構件測土配方施肥輔助決策技術體系中,上述業務單元被映射為業務構件,涵蓋了農田信息的采集、管理、分析、輔助施肥決策和結果輸出的過程。這些業務構件由更基本的基本構件組裝而成,最終表現為對數據的操作。
2.1 技術體系的總體結構
測土配方施肥輔助決策技術體系的總體結構如圖1所示,這是一個松散耦合的軟件體系。該體系包含一個元數據管理器和一個構件管理器,以及多個可伸縮的業務構件包,它們通過企業數據總線實現交互。該體系結構是可擴展、可加入新的業務構件包,各業務構件包允許不斷地加入新的構件。
通過選擇業務構件進行組裝,可實現根據不同的應用需求搭建測土配方施肥輔助決策系統。這些系統的業務構件通過系統配置的企業數據總線實現互操作,協同完成任務。
2.2 技術體系的構件系統
測土配方施肥輔助決策技術體系的構件系統如圖2所示。從組織結構上劃分為基礎構件、業務構件和應用系統三個層次;桌面操作系統、GPS接收模塊、GIS運行時、嵌入式操作系統和數據庫等構成的構件運行環境中為構件系統的運行提供了支撐環境。
構件系統的基礎構件層包括各種技術構件,是整個構件系統的底層基礎,也是用于組裝業務構件的基本組成單位。基礎構件包括兩類:a)作為底層技術模塊獨立開發的,實現一項具體技術功能的底層構件;b)GIS等外部系統提供的對象、包或者函數,經過必要的封裝形成技術構件,這類構件通常用于完成一項特定的處理,如空間插值、數據庫讀寫等。
業務構件層包括各種測土配方施肥的業務構件,該構件是業務流程的組成部分, 要求具備獨立性、完備性、穩定性、實用性,能提供多層封裝的接口。業務構件層決定了測土配方施肥輔助決策技術體系能提供的所有功能,通過業務構件的組合可以形成隨需應變的應用系統。
應用系統層包括利用業務構件搭建的兩類應用系統:a)適用于我國不同地區的縣級測土配方施肥輔助決策系統;b)測土配方施肥工作中通用的軟件,如3414肥效試驗管理系統、農田土壤采樣管理系統等。
2.3 技術體系的主要業務構件
測土配方施肥輔助決策技術體系的主要業務構件包括以下構件:
a)農田土壤采樣管理構件,同時部署于電腦和PDA;可提供采樣點規劃、GPS采樣導航、掌上電腦現場數據錄入、采樣數據成圖等功能。
b)農田信息管理構件,提供測土配方施肥數據的一般管理功能,包括錄入、刪除、編輯、瀏覽、查詢、匯總統計等;同時也提供了對農田柵格和矢量空間數據的常用管理功能。
c)3414試驗管理構件,用于輔助3414肥料效應試驗田間布置和管理及試驗結果統計和分析。支持多年多點3414試驗數據管理,支持進行單點試驗數據分析,也可進行多年多點試驗數據分析,進行二次肥料效應方程的擬合、回歸分析及方差分析;支持建立土壤養分豐缺指標,支持建立不同土壤肥力的推薦施肥指標。
d)農田空間信息分析構件,針對測土配方施肥的相關空間信息,提供了養分插值分析、矢量及柵格數據專題圖分析等功能。由于測土配方施肥大量涉及采樣點信息模擬區域空間信息的需求,該構件提供了基于多種不同算法的空間插值功能,包括IDW、克里金等插值算法。e)輔助施肥決策構件,支持目標產量法、地力分級法和肥料效應函數法等施肥推薦模型,提供基于地塊和區域的施肥推薦功能;并提供變量施肥機直接使用的施肥處方圖功能,以及讀寫農戶施肥信息智能卡的功能。
f)農田地圖布局輸出構件,支持大分辨率農田電子地圖、影像圖等的整飾、布局和打印輸出。2.4 應用系統搭建方法
構件化應用系統的搭建方法與一般軟件系統的建設類似,也可劃分為需求分析、系統設計、開發調試、測試部署和管理監控五個階段[8],如圖3所示。只是每一階段均以構件為基礎,因此都可以以基于構件的工作方式進行。
由于各地對測土配方施肥輔助決策系統的功能需求存在差異,如一些地區不具備相應的空間數據基礎,就必須采用非空間分析的手段實現施肥推薦。此外,不同地區的不同作物須采用不同的施肥推薦體系和施肥模型,即對某些業務構件的具體業務邏輯也有不同要求。
按照特定需求快速搭建應用系統是設計和建立測土配方施肥輔助決策技術體系的最終目的。通過該技術體系提供的業務構件和運行管理機制,可以隨需應變地搭建出適用于各個地區的測土配方施肥輔助決策系統,或者相關通用工具軟件。下面給出了系統搭建基本步驟:a)進行系統的需求分析,完成數據、業務流程和功能需求的整理;
b)進行系統的設計,設計各項業務流程,完成所需構件劃分和構件接口設計、數據層設計和元數據定制,提交元數據管理器;
c)選擇技術體系中已有構件,有必要的話,編寫技術體系中尚不存在的構件,加入技術體系的構件庫,在開發環境中完成構件組裝,并將構件配置信息提交構件管理器;
d)在系統范圍內完成各構件的單元測試,以及系統集成測試;
e)配置系統參數,進行系統部署。
3 構件化測土配方施肥輔助決策系統實例分析
為了配合農業部測土配方施肥項目,本項研究為項目試點縣之一——北京順義區開發了構件化測土配方施肥輔助決策系統。該系統結合順義區測土配方施肥工作,實現了土壤采樣規劃管理、基于GIS的農田信息管理分析、基于目標產量的施肥輔助決策,以及基于智能卡的農戶施肥推薦等功能。系統界面如圖4所示。
該系統是針對順義的特定需求,基于測土配方施肥輔助決策技術體系,通過組裝農田土壤采樣管理構件、農田信息管理構件、農田空間信息分析構件、輔助施肥決策構件、農田地圖布局輸出等業務構件形成的。與此前功能類似的系統相比,開發周期大大縮短,軟件穩定性得到提升;同時,由于該系統由一組相互協作的構件組成,系統功能的增加修改只需要增加新的構件或改動相關的構件,使得系統的擴展性大大增強,能夠通過構件插拔迅速地適應快速變化的業務需求,維護成本顯著降低。
4 結束語
本文依據農業部有關規范,開展了面向構件的測土配方施肥輔助決策技術體系的研究,為快速搭建滿足不同需求的測土配方施肥輔助決策系統提供了技術支撐。作為在此技術體系下開發構件化應用系統的一個例子,順義區測土配方施肥輔助決策系統展現了構件化技術的優勢,即開發周期短、系統穩定性好、可方便地進行功能配置及維護成本低等。筆者認為,面向構件技術作為一種先進的軟件架構技術,是建設可在全國范圍推廣的開放式測土配方施肥輔助決策系統的必然選擇;下一步將在測土配方施肥輔助決策的業務需求分析、業務單元劃分、業務構件接口定義、行業數據規范化等方面開展更加深入的研究。
參考文獻:
[1]農業部農業技術推廣中心. 測土配方施肥專家咨詢系統編制規范(試行)[S].北京: 中國農業出版社,2007.
[2]段作義,吳威,趙沁平. 基于構件的分布式虛擬現實應用系統[J]. 軟件學報,2006,17(3):546558.
[3]BROWN A W,SHORT K. On components and objects:the foundations of component based development[C]//Proc of the 5th International Symposium on Assessment of Software Tools. Washington DC: IEEE Computer Society Press,1997:112121.
[4]COX P T, SONG Baoming. A formal model for componentbased software[C]//Proc ofIEEE 2001 Symposium on Visual Multimedia Approaches to Programming and Software Engineering. Washington DC: IEEE Computer Society Press, 2001:342350.
[5]任明侖, 朱衛東, 楊善林. 基于構件的信息系統體系結構模型[J]. 小型微型計算機系統, 2004,25(7):11591163.
[6]馬亮,孫艷春. 軟件構件概念的變遷[J].計算機科學,2002,29(4):2830.
[7]楊芙清.軟件工程技術發展思索[J]. 軟件學報, 2005,16(17):2126.
[8]LARUFA J M, RAUN W R, PHILLIPS S B,et al.Optimum field element size for maximum yields in winter wheat using variable nitrogen rates[J].Journal of Plant Nutrient,2001,24(2):313325.