摘要:面向農業領域軟件體系結構適應性模式支持農業領域應用的領域分析模型、領域設計模型以及農業領域應用系統的生成,并表現出對農業領域變化能提供良好的自動性支持,體現所謂高層感知性、適應性和自動性。為支持這種軟件開發過程模型,提出一種資源-規則-分析模型,并給出一個虛擬機架構的支撐體系。作為一個實例,在開源開發環境下對小麥生長模擬與管理決策支持系統原型進行開發和運用。
關鍵詞:特定領域體系結構; 農業特定領域體系結構; 自適應性; 開源開發環境; 小麥生長模擬; 決策支持系統; 虛擬機
中圖分類號:TP303文獻標志碼:A
文章編號:1001-3695(2008)05-1390-03
0引言
特定領域軟件體系結構(domain-specific software architecture, DSSA)是特定領域軟件開發中的重要軟件資源[1]。所謂DSSA就是一個特定應用領域中為一組應用提供組織結構參考的標準軟件體系結構。它抽象出領域中各應用系統的公共特征和動態行為,再作用于領域中各系統,實現大規模的重用,從而可以更高效、更可靠地實例化一系列軟件產品[2]。因此它具備以下特征:具有一個嚴格定義的問題域和解域;具有領域合適程度的抽象性;具有領域普遍性,可以應用于本領域中某個特定應用的開發;具有本領域開發過程中固定的、典型的可重用的軟件元素。
面向農業領域軟件體系結構(domain-agriculture software architecture, DASA)適應性模式研究是基于農業這一特定領域的軟件體系結構及適應性等方面的研究。它是支持農業領域應用的領域分析模型、領域設計模型等組成的開發基礎,目標是支持農業領域這個特定領域的應用系統的生成;它也是農業信息化系統基礎和本質的研究。
作為農業信息化的基礎性、本質性研究,對農業所涉及的對象(生物要素、環境要素、技術要素以及社會經濟要素)和過程(生長過程、業務過程以及管理過程等)要進行數字化表達、設計、控制和管理[3]?;贒ASA適應性軟件體系結構模式的研究是從農業領域及其農業信息化系統的運行角度,強調其軟件及軟件資源的自適應性,表現出對農業領域變化能提供良好的自動性支持,體現所謂高層感知性、適應性和自動性。它具體體現在:a)基于DASA的業務構件適應性。主要針對農業業務構件在組裝業務構件系統過程中對環境變化的適應性。b)連接件適應性。主要指對連接件接口、語義、約束等的修改能力,以實現業務構件間交互的動態性。c)配置適應性。主要是指軟件系統的拓撲結構依據環境變化而呈現的靜態適應和動態適應。簡言之,DASA主要目標是針對農業這一特定領域,設計通用而靈活的軟件體系結構[4],最終有效地自動生成應用軟件系統。為此,本文將著重研究一個適合農業特定領域的軟件過程模型,以及支持該過程相應的支撐軟件系統的體系結構。
國外已對眾多特定領域進行了研究(如自適應智能系統、航空電子設備系統),并給出了相應的研究成果。國內的DSSA研究主要集中在EIS(如煙草、保險行業、城市地質等)以及智能系統[5,6]。目前,關于DSSA的實現方法有兩種:a)編譯時方法,即根據軟件系統模型自動生成可執行代碼;b)運行時方法,即將軟件系統模型直接在虛擬機上運行。前者實現了代碼的自動生成,但通常實現代價比較大,不利于支撐系統的開發,且自動生成的代碼量較大,增加了代碼管理的難度;后者基于虛擬機實現,因而只涉及描述系統模型腳本,代碼量較少,有利于代碼的管理和維護。本研究將以數字農作為例,提出一個面向DASA的系統模型——資源(模型資源、知識模型資源)—規則—分析(resource-rule-analysis,RRA),通過與虛擬機架構結合,設計出一個基于RRA的DSAS,以應變于農業領域變化柔性的、自適應的智能農業信息化系統。
1基于DASA業務構件系統模型
1.1基于DASA的系統開發過程模型
面向DASA的適應性模式研究,農業領域工程是關鍵。農業領域工程包括了農業領域分析、農業領域設計和農業領域實現。農業領域分析是農業領域級的需求工程,產生農業領域模型;農業領域設計就是DASA的設計,包括了農業領域的可變性和可擴展性。DASA的研究和實現使面向農業領域的傳統軟件開發模型中,軟件開發的需求分析、設計和實現以及測試、運行維護等全生命周期轉換為基于DASA的軟件開發過程。
圖1為基于DASA的軟件開發過程模型。圖1中,DASA模型同時面對農業領域專家和軟件工程師,且構建的模型必須滿足:a)與農業領域業務特點結合,為農業領域專家所理解;b)在農業領域中具有通用性,并具有一定的柔性,即進化特性;c)與軟件體系結構DASA的拓撲相配合,為軟件工程師所理解。換句話說,DASA是領域專家與軟件工程師的共同模型。
1.2基于DASA適應性系統的形式化描述
面向DASA的適應性模式必須具備保護系統邏輯功能在不同環境條件下的正常性,將實體單元的被動性轉變為主動自主性,同時將協同方式的單一性轉變為靈活多面性,將系統演變的靜態性轉變為系統演化的動態性。所謂適應性就是軟件系統根據它運行的場景環境變化,自動地調整系統結構和算法以適應當前的情況,并且系統結構能夠采用進化的方式來平衡環境變化和系統運行的矛盾。為方便敘述DASA模型起見,本文給出如下一些定義:
定義1農業業務構件。它是農業領域相對固定、典型的可重用的軟件元素。依據W.Koyaczynski的定義[7],業務構件是業務對象的軟件化,那么農業領域業務構件則是農業業務對象(也稱農業領域對象)的構件化。它是農業業務對象在軟件實現所形成的自治的農業業務概念和可復用的軟件單元,是農業領域對象或由若干農業業務對象組成的可以完成某一特定功能的對象組合,或具有一個結構的對象組合的組合。
定義2DASA,農作領域體系結構。它是農業業務構件組合的機制或框架,連接構件間信息流和控制流提供支持的通道網絡。通常,按照擴展或定制框架所使用技術的不同,框架分為白盒框架和黑盒框架。前者主要通過繼承關系來構造框架,要求父類的內部細節對子類可見,如OO框架,它采用對象的繼承以及設計模式等機制支持其演化性或重構性;后者主要通過組合來構造框架,要求被組合的對象具有良好定義的接口,用戶只需知道被組合對象的接口而不必關心其具體實現細節,如構件化框架。構件化框架技術則是通過構件的演化、替換及重構。為兼顧兩者的優點,將一種黑白盒混合框架技術應用于構建DSSA,即采用構件化方法(黑盒)形成DASA中固定的部分設計,而反映變化熱點部分的設計,采用基于設計模式的熱點子系統(白盒)的方法,從而完成黑白盒混合的DASA框架設計[8,9]。如圖2所示。
DASA框架分為兩部分,即中間件接口層和領域業務層。接口層在整個領域框架中起著承上啟下的作用;領域業務層包括四個組成部分,即管理調度中心、業務構件庫、支持熱點的知識庫及規則庫。采用黑白混合的框架設計方法,將框架的凝固點設計成通用業務構件存到業務構件庫中,將框架中的熱點設計成基于設計模式的熱點子系統存儲到熱點知識庫中。在農業領域分析中,抽取農業領域業務規則存放到領域規則庫中。管理調度中心,即粘貼代碼,負責根據領域規則庫中的業務規則,從構件庫和熱點知識庫中選取構造塊,即業務構件或待實例化的熱點子系統,然后將其粘結起來安插在領域框架,即DASA上,完成業務邏輯的實現和運行。
定義3數字農作系統acSystem形式化地表示為
acSystem=(acEntity|data|control)(1)
1)AcEntity構件
AcEntity為農業業務實體構件或農業領域對象構件,它是系統邏輯功能集合。面向農務領域的業務對象是指農務業務領域中的業務抽象,用于刻畫農務業務處理中所涉及到的一切有意義的東西,包括靜態實體、動態的事件和處理邏輯。形式化地表示為農務業務對象∷=(業務名稱,業務定義,屬性,行為,關系,業務規則)。
AcEntity可以表示為一個四元組:
acEntity∷={name,function,code,inf|(inp,out)}(2)
其中:function為構件功能描述;code為構件二進制目標代碼實體;inf為構件接口,又分為輸入inp接口和輸出out接口。
2)Data構件
Data為實體屬性轉換為數值存放到數據庫的功能件中,即執行數據處理操作,包括定義數據和操作數據(數據的存儲及數據的增加、刪除、修改等)。
data∷=com(acEntity,val[,val]…(3)
com∷={define,store,manipulation}(4)
定義、存儲和操作又可以形式化地表示為
define∷=R(col[,col]…)…
store∷=S(R(col,vol[,vol]…)…)
manipulation∷=M{add,delete,update,query)|R}
3)Control構件
Control為控制構件,由業務規則或者外界激勵(所感知的環境場景變化)而監控acEntity構件的邏輯狀態,并完成系統進化變異以適應環境場景變化,或在領域工程指導下的集成機制。在DASA中是指作物模擬模型、知識模型的變化、更新等在acEntity構件的映射。
control:=con(acEntity,val[,val]…)(5)
控制構件可以表示為一個三元組集合con:={core,changeInf,response}。其中:core部件為系統內核模塊,負責存放輸入的信息與構件適配進化的邏輯結構??梢赃M一步表示為
core:={stateInfi,evolvedInfi,condInfi}
其中:stateInfi表示構件i當前狀態信息;evolvedInfi表示構件進化后的結果;condInfi表示構件i得到輸入信息后產生進化的條件,它將激發和指導業務構件的演化。
ChangeInf表示外界變化的信息或者規則,changeInf演繹激發構件進化的條件。Response表示外界變化而產生的響應。
從概念上講,適應性DASA具有需求、服務和操作三個抽象層次,并通過這三個抽象層次將環境的變化和動態性映射到軟件的具體實現上。具體地說,用戶層的用戶對需求進行建模,并通過配置管理器實現需求到服務之間的動態映射。
1.3基于適應性DASA 的RRA模型
1)DASA的RRA模型
本文以數字農作為例,面向DASA的系統模型,提出資源(模型資源、知識模型資源)—規則—分析的體系。其中:R表示資源,是模型資源和知識模型資源的總稱,是外部實體在DASA模型體系中的映射結果。例如作物生長模擬模型資源、作物生長知識模型資源。前者可進一步表示為作物階段發育的模擬、作物器官發育模擬、碳同化和物質積累的模擬、同化物分配與產品形成模擬、作物養分效應模擬、作物氣象環境模擬等,可歸納為圖3所示;后者進一步敘述為在充分理解和分析領域專家經驗知識特點的基礎上,基于作物與環境的定量關系,綜合和提煉出有關作物生育與管理指標的動態模型,通常包括品種選擇、產量結構、播期確定、基本苗確定、播種量確定、主要生育指標的確定、肥料運籌、水分管理以及效益分析等。
R規則是業務規則,是外部實體之間的關聯在DASA模型體系中的映射結果。
A分析是指外部環境中的狀態變化或轉換在DASA模型體系中的映射結果。領域專家的模擬模型或知識模型變化時,重用可用的構件,或者解析得出新的或修改原有構件,然后對其進行重組,以適應新的作物模擬模型或知識模型。模擬模型或者知識模型變化時,體現在DASA的適應性上。
2)基于虛擬機架構的體系實現
為實現RRA模型,本文采取虛擬機架構實現。其虛擬機架構采取層次系統模式設計,數據映射層、業務邏輯層、交互控制層、界面表示層以及規則控制層和規則映射層的內部結構采用解釋器模式設計[10]。虛擬機內部結構如圖4所示。
農業領域專家與軟件工程師建立RRA模型可以轉換為腳本形式,內部解釋器從腳本庫獲得腳本,依據模型規則庫中的規則檢查腳本的合法性與正確性,然后根據腳本語義發出指令通知解釋器仿真引擎。根據指令,解釋器仿真引擎從目錄服務處查詢相應的構件在構件庫中的位置,獲取構件,然后動態地執行該構件以完成指令要求的功能。為保證農業領域系統接口的通用性,在虛擬機中引用目錄服務,以利于透明地標志業務構件以及其他構件的物理位置,實現與其他系統的集成。
2實例
本文所述的DASA-RRA方法在數字農作系統中得到了應用。圖5為基于RRA模型構建的小麥水稻作物模擬系統。農業專家給出的作物模型資源和作物生長知識模型資源等領域模型資源將借助于虛擬機轉換為腳本形式,虛擬機中的內部解釋器從腳本庫獲得腳本,依據模型規則庫中的規則檢查腳本的合法性與正確性,然后根據腳本語義發出指令通知解釋器仿真引擎。根據指令,解釋器仿真引擎從目錄服務處查詢相應的構件在構件庫中的位置,獲取構件或加載新的業務構件,然后動態地執行該構件以完成指令要求的功能。
由此可見,領域模型(知識模型)資源及其腳本庫資源R、模型規則庫的規則R都是構建DASA重要的資源。同時,一個健壯的業務構建庫更是基于DASA軟件開發的基礎和關鍵。
3結束語
DSSA是當今軟件開發的熱點問題,基于DASA的體系結構適應性研究,有利于提高面向農業領域的軟件系統的復用度,降低農業領域軟件開發的復雜性,提高領域軟件生產率。
本文基于DASA的體系結構的研究,提出RRA模型及其虛擬機架構實現思想,旨在簡化農業領域軟件開發的復雜度,使得農業領域專家的作物生長模擬模型資源和作物生長知識模型,特別是對不同領域專家的不同模擬模型和知識模型或者修正模型能夠高效率地轉換為軟件實現。這無疑對農業領域工程指導下的農業軟件開發具有現實意義。
參考文獻:
[1]梅宏,申峻嶸.軟件體系結構研究進展[J].軟件學報,2006,17(6):1257-1275.
[2]黃雙喜,范玉順,趙彧.一類通用的適應性軟件體系風格研究[J].軟件學報,2006,17(6):1338-1348.
[3]于振華,蔡遠利.特定領域軟件體系結構研究[J].微電子學與計算機,2004,21(7):66-69.
[4]曹衛星,朱艷,田永超,等.數字農作技術研究的若干進展與發展方向[J].中國農業科學,2006,39(2):281-288.
[5]BARBARA H R, KARL P, PHILIPPE L, et al. A domain-specific software architecture for adaptive intelligent system [J]. IEEE Trans on Software Engineering, 1995,21(4):288-301.
[6]尚建嘎,劉修國,花衛華.城市地質特定領域軟件體系結構[J].地球科學——中國地質大學學報,2006,31(5):673-677.
[7]KOZACZYNSKI W. Achitecture framework for business components[C]//Proc of the 5th International Conference on Software Reuse. Washington DC: Computer Society Press, 1998:300-307.
[8]徐煥良,李緒蓉,丁秋林.基于規則庫的業務構件重組的實現[J].計算機集成制造系統, 2003,9(10):911-915.
[9]李緒蓉,徐煥良.面向業務構件的黑白混合的領域框架的設計與實現[J].小型微型計算機系統,2005,26(1):64-68.
[10]郭陟,趙曦濱,賀飛,等.面向特定領域的企業信息系統模型及軟件架構[J].計算機集成制造系統,2004,10(9):1046-1051.
[11]李陽,吳朝暉.一種動態自適應體系結構的研究[J].浙江大學學報:工學版,2005,39(2):216-222.
“本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文”