唐朝勝 +劉世洪 段玉聰
摘要:在已知決策支持系統(tǒng)(DSS)模型表達形式的基礎上,探索其計算機實現(xiàn)過程中的自動化。針對目前模型驅(qū)動工程中有關DSS模型的研究集中于領域模型構建機制及平臺的搭建,而對模型復合及求解等生成機制方面的研究關注不足,本研究提出了一種基于WF工作流等技術來完成DSS模型從創(chuàng)建到復合運行的自動化策略,并實現(xiàn)了相應的框架原型。該框架提供了人性化的模型生成環(huán)境,所有實現(xiàn)細節(jié)對模型研究者而言均為黑盒抽象,使用者無需編程即可完成模型的生成。此策略為DSS模型構建的工程化、智能化提供了一種新的思路。
關鍵詞:決策支持系統(tǒng)(DSS)模型;模型驅(qū)動;WF工作流;框架
中圖分類號: TP311.52;S126文獻標志碼: A
文章編號:1002-1302(2016)12-0397-05
收稿日期:2015-10-16
基金項目:國家自然科學基金(編號:61363007)。
作者簡介:唐朝勝(1975—),男,湖南資興人,副教授,主要從事軟件工程、作物信息化研究。E-mail:tcsjk@163.com。
通信作者:劉世洪,研究員,主要從事農(nóng)業(yè)信息化研究。E-mail:liushihong@caas.cn。
決策支持系統(tǒng)(Decision Support System,DSS)是以計算機技術為基礎的對決策支持的知識信息系統(tǒng),用于處理決策過程中的半結構化和非結構化問題[1]。一般而言,決策者使用DSS不是直接依靠數(shù)據(jù)進行決策,而是依靠模型庫中的模型進行決策,所以DSS是由“模型驅(qū)動”的[2]。因此有關模型的表達、存儲及執(zhí)行等模型生成方面的研究顯得尤為重要。良好的模型生成環(huán)境有助于高質(zhì)量DSS模型的構建及運行,如通過配置Hadoop云環(huán)境,可實現(xiàn)模型的并行計算[3];或以面向服務為架構,設計作物模型區(qū)域應用Web服務組合框架等來解決作物模型與GIS集成環(huán)境問題[4]。
近年來,將模型驅(qū)動工程等新興開發(fā)方法應用于DSS模型綜合生成環(huán)境的研究成為新熱點。如有學者提出基于問題求解的模型表示方法[5]、定性定量相結合的綜合集成模型構造方法[6]、基于模型驅(qū)動開發(fā)理論的設計流程建模工具[7]或作物生長模型可視化設計工具[8],以及綜合作物系統(tǒng)模擬技術、知識工程及自適應軟件開發(fā)方法,運用系統(tǒng)分析和知識建模手段,采用模型描述腳本功能構建作物生長模型來設計智能化作物集成建模輔助系統(tǒng)[9]。
模型驅(qū)動工程的優(yōu)點是采用相關領域的建模語言,構建可視化模型,使領域?qū)<液驮O計人員專注于業(yè)務邏輯而無需過早考慮平臺相關的實現(xiàn)細節(jié)。然而領域模型構建后,最終還需要通過自動(半自動)的層層轉(zhuǎn)換完成從設計到實現(xiàn)的過渡。雖然采用模型驅(qū)動工程開發(fā)方法將有助于構建領域模型PIM(平臺無關模型),但目前針對將PIM轉(zhuǎn)化為PSM(平臺相關模型)的代碼框架構建以及模型的復合和運行方面的研究仍顯不足。從系統(tǒng)的計算機實現(xiàn)角度看,仍存在模型轉(zhuǎn)換過程中過度依賴于程序代碼等現(xiàn)象,缺乏自動化和智能化、面向建模人員的模型構建、復合及運行的系統(tǒng)環(huán)境。
由于微軟的WF提供了良好的工作流建模環(huán)境,可以在此平臺上進行二次開發(fā),內(nèi)嵌的WF工作流引擎可完成工作流的解析,因此設想DSS子模型的復合和求解過程即為一個工作流模型構建及運行的過程:(1)DSS子模型可視為一個包含求解算法的活動;(2)子模型的復合即為在工作流平臺下將多個活動按照規(guī)則構建工作流模型的過程;(3)復合模型的運行則是這些活動在工作流引擎的調(diào)度下完成的運算。
為此,本研究在已知模型表達形式的基礎上,提出一個面向建模人員、無需編程即可覆蓋模型從構建到復合運行過程的模型自動生成策略,并采用WF工作流及動態(tài)編譯等技術實現(xiàn)相應的原型框架。最后以作物生長模型為例,對模型的生成過程進行了驗證。
1系統(tǒng)總體設計
1.1系統(tǒng)設計策略及流程
模型自動生成策略的基本思想是首先提供一個模型構建環(huán)境,支持多種算術表達式符號的創(chuàng)建;其次完成模型運算的自動解析及存儲表達;最后創(chuàng)建WF自定義工作流設計器,實現(xiàn)模型程序集的構建、導入、復合和運行。綜合以上思路,得到如下設計流程圖(圖1)。
[TPTCS1.tif]
1.2系統(tǒng)架構
本框架設計主要包括系統(tǒng)架構設計以及模塊設計兩大部分。架構設計是基礎,模塊設計是核心。體系架構設計的目的是根據(jù)設計目標,確定總體結構中各模塊的分工、任務邊界以及協(xié)作機制。根據(jù)設計流程,確定整體架構3個層次:(1)獨立開放的模型創(chuàng)建環(huán)境;(2)自動快捷的模型文件轉(zhuǎn)換環(huán)境;(3)操作簡便的模型復合及運行環(huán)境。
1.3模塊設計
模塊是從用戶需求角度,對體系結構功能和任務有機地劃分。模塊設計時,需根據(jù)各模塊任務、邊界和工作流程,構建清晰的數(shù)據(jù)結構,完成模塊菜單以及人機交互界面設計,同時完成模塊的輸入輸出等功能[10]。結合框架的核心功能,設計了模型創(chuàng)建模塊、模型解析模塊、模型轉(zhuǎn)換模塊、模型復合及運行模塊等4個模塊。模塊之間可獨立運行,但又相互協(xié)作,無縫銜接,貫穿整個生成周期。
1.3.1模型創(chuàng)建模塊
微軟的VS2010開發(fā)環(huán)境下,結合第三方控件MathMLControl實現(xiàn)模型創(chuàng)建模塊。建模用戶可借助其數(shù)學公式編輯功能以及可視化工具箱,有效地完成較復雜的數(shù)學表達形式。保存后自動將模型表達轉(zhuǎn)換為符合MathML語法格式的XML類型文件。
1.3.2模型解析模塊
針對文檔數(shù)學公式中所涉及的MathML各種符號表達,如標志符、操作符、數(shù)字、文本等,模塊將依據(jù)后述的文法規(guī)則,采用遞歸下降語法和語義分析方法,結合標準的C#函數(shù)將其解析成C#中間代碼。解析程序使用的核心類(圖2)對應算術和代數(shù)運算符、分式和根式運算符、上下標等符號的表示以及相應的語義解析。
1.3.3模型轉(zhuǎn)換模塊
該模塊提供將C#中間代碼轉(zhuǎn)化為標準XAML工作流文件的轉(zhuǎn)換環(huán)境。為實現(xiàn)轉(zhuǎn)換過程的通用化,采用了VS2010中的T4文本模板。所設計的模板可以根據(jù)模型公式左右兩邊的變量自動生成輸入及輸出參數(shù)。最后采用動態(tài)編譯執(zhí)行技術將包含模型參數(shù)及運算流程的中間代碼序列化為XAML文件。
1.3.4模型復合及運行模塊
此模塊提供工作流文檔復合和運行的環(huán)境,其核心就是一個內(nèi)嵌WF工作流引擎[11]、能獨立運行、界面友好的可承載自定義流程設計器。包括如下功能:
(1)模型導入。模型導入的過程即為動態(tài)加載工作流文件的過程,其實質(zhì)是將帶自定義輸入?yún)?shù)的XAML文檔進行反序列化,并將文件中的對象轉(zhuǎn)換為工作流活動實例,最后以圖形方式呈現(xiàn)在設計器畫布中。
(2)模型保存。模型保存過程是將設計器中的工作流定義序列化為XAML文件。這些已序列化的定義內(nèi)容可以重新加載以便編輯或檢測,也可以傳遞給生成系統(tǒng)以供編譯,加載并調(diào)用。
(3)模型動態(tài)編譯和復合設計。模塊具備動態(tài)編譯當前已加載的工作流模型并保存為程序集的功能。進行模型復合設計時,設計者可以將多個模型程序集加載至活動工具箱,并結合WWF內(nèi)置的Flowchart、Sequence、Parallel等活動一起完成工作流程的設計。
(4)模型運行。一旦模型復合設計完畢,內(nèi)置的WF工作流引擎將根據(jù)設計的流程運行。
2系統(tǒng)關鍵問題及實現(xiàn)
2.1模型表達及轉(zhuǎn)換
生成過程的不同階段,模型的表達形式有所不同。因此,如何將不同階段模型的表達形式進行轉(zhuǎn)換是系統(tǒng)框架設計中優(yōu)先考慮的問題。
2.1.1模型符號表達及存儲
在模型構建環(huán)境中,引入了第三方控件MathMLControl。它是一個數(shù)學公式可視化控件,不僅包含了大量的數(shù)學相關符號,如算術運算符號、導數(shù)符號、積分符號等,還提供了強大的數(shù)學公式編輯功能,可有效進行諸如上標、下標等形式的組合,從而完成較復雜的數(shù)學表達形
[FK(W20][TPTCS2.tif]
式。此外,模型存儲采用了基于XML標準的MathML(MathMarkupLanguage,數(shù)學標記語言)作為模型存儲形式,主要基于:(1)XML作為一種標準的、可擴展的、半結構化的標記語言,目前已經(jīng)成為許多領域內(nèi)常見的數(shù)據(jù)表示和交換的標準,為模型系統(tǒng)功能的擴展提供支持。(2)MathML作為計算機之間交換數(shù)學信息的一種標準,是由W3C(萬維網(wǎng)聯(lián)盟)在XML的基礎上制定而成的。利用它可以解決同一數(shù)學模型在不同平臺的差異性。由于它提供一個可視化的模型構建環(huán)境,幫助我們顯示、操作和共享數(shù)學表達式,有力地支撐了模型的集成與開發(fā),降低了統(tǒng)一管理各領域模型的難度[12]。其正則文法公式如下所示:
Exp→Term{BinocularOp Term}|
BinocularOp→
LogicMo→Not
DualMo→Abs|Lb|Rb
Term→Factor{BinocularOp Factor}|
Factor→
BiMark→
通過分析,可以發(fā)現(xiàn)XML文件內(nèi)部不僅包含了基本模型符號的表達,也包含了模型數(shù)值或邏輯運算符號的組織形式,是模型表達的結構形式與模型運算推理過程的有機結合。
2.1.2工作流模型表達
工作流文件XAML(eXtensible Application Markup Language,可擴展應用程序標記語言)是微軟為構建應用程序用戶界面而創(chuàng)建的一種新的描述性語言,提供了一種便于擴展和定位的語法來定義和程序邏輯分離的用戶界面,用戶可在創(chuàng)建過程中添加代碼,同時也可將文件保存到數(shù)據(jù)庫中。在實際運行時利用工作流引擎對文件所包含的工作流活動進行解析。在模型復合及運行階段,包含模型運算過程的XAML文件既能被可承載的自定義工作流設計器所識別和解析,也能快捷地轉(zhuǎn)換為模型程序集,方便模型的復合。
2.1.3不同模型表達形式的轉(zhuǎn)換
由于XML文件不能直接轉(zhuǎn)為XAML格式,必須借助一種中間過渡形式完成轉(zhuǎn)換。由于MathML符合上下文無關文法,當給定一個表達式句子,就可以得到一棵相應的語法樹,這也為MathML的數(shù)學語義轉(zhuǎn)換(如映射到其他數(shù)學系統(tǒng)中的表達式)、解析以及動態(tài)編譯提供了方便。因此首先將MathML語法結構解析轉(zhuǎn)化為包含C#運算函數(shù)的程序代碼,然后采用T4模板以及動態(tài)編譯技術將該中間代碼形式轉(zhuǎn)換為包含程序執(zhí)行流程的工作流文件。其中所有的轉(zhuǎn)換細節(jié)均采用黑盒抽象,對建模用戶而言是透明的,實現(xiàn)了轉(zhuǎn)換過程的自動化。
2.2WF工作流設計器構建
為了方便創(chuàng)建、修改、監(jiān)視工作流以及動態(tài)生成和加載程序集,設計器需解決如下問題:(1)可創(chuàng)建一個空的應用程序作為宿主;(2)提供GUI環(huán)境,包括工作流設計、工具箱和屬性等窗格,滿足良好的人機交互,即一旦將工具箱中的活動拖動到設計畫布上時,屬性網(wǎng)格可根據(jù)突出顯示的活動進行更新,從而保證了呈現(xiàn)于不同窗口中的活動類、活動類實例對象以及對象屬性之間的聯(lián)動;(3)內(nèi)嵌WF工作流引擎。
2.3模型程序集編譯、復合運行
雖然DSS子模型對應的XAML文件可以在不被編譯成為程序集的情況下動態(tài)地被加載和運行,但我們更希望模型能夠以程序集的形式被包含,以方便更多的應用程序共享和使用(尤其在模型的復合階段)。此外,模塊還可以導入已有的程序集,加載其中包含模型的工作流活動類至活動工具箱。這樣DSS模型的復合也變成了按需將這些自定義的活動拖拽至設計器形成復合鏈的過程。
復合模型的運行一般離不開模型之間數(shù)據(jù)的交換。為解決參數(shù)數(shù)據(jù)的傳遞問題,即讓一個模型的輸出成為另一個模型的輸入,在最初設計模型工作流參數(shù)類型時將它們定義為輸入/輸出雙向類型。由于設計器內(nèi)嵌的WF工作流引擎支持運行時動態(tài)創(chuàng)建新的雙向參數(shù),這樣可將原本運行于不同進程之間相互隔離的模型參數(shù)通過這些中間參數(shù)串接起來,從而實現(xiàn)了數(shù)據(jù)的交流。
3框架應用案例
3.1作物模型特征及模型選取
作物生長模擬模型簡稱作物模型,是作物科學中引進系統(tǒng)分析方法和應用計算機后興起的新型研究領域[13]。它是對作物生長發(fā)育生理生態(tài)過程基本規(guī)律及其相互關系的量化表達,因此具有基礎性、量化性及一般性的特征[14]。已知影響作物產(chǎn)量重要的因素之一是凈光合率(作物生長率)[15]。包含如下子模型:
(1)總有效光吸收模型
[JZ]Iabs=0.5·(1-ρ)·I0·(1-e-k·L);
(2)CO2總同化量模型
[JZ]Ag=E·Iabs;
(3)維持呼吸消耗量模型
[JZ]Rm=TC·MC·W;
(4)溫度校正系數(shù)TC
[JZ]TC=Q10[JB([][SX(]T-Tref10[SX)][JB)]];
(5)凈光合率-作物生長率
[JZ][SX(]dwdt[SX)]=CVF·[JB((][SX(]3344[SX)]·Ag-Rm[JB))]。
3.2模型生成過程驗證
根據(jù)設計流程,這些作物模型對應的工作流活動應由前述的4個模塊相互協(xié)作共同完成。以總有效光吸收模型為例,模型從創(chuàng)建、解析、轉(zhuǎn)換以及活動生成的整個過程如圖3所示。其他模型活動的生成過程類似,這里不再贅述。
活動創(chuàng)建后,下一步就是構建工作流模型,即如何組織這些活動形成有效的工作流程。工作流的定義方式一般可采用腳本語言(如ESP、ECA規(guī)則)、圖形(擴展的Petri-net)以及混合模式等[16]。如有學者采用ESP規(guī)則定義了DSS模型集成過程[17],或采用ECA規(guī)則[18]描述企業(yè)工作流過程,以及利用ECA規(guī)則和模糊Petri-net來定義工作流異常流程等[19]。我們采用了ECA規(guī)則與WF-net混合形式對工作流模型進行定義以及實現(xiàn)(限于篇幅,另文詳述)。通過模型公式可以看出,總有效光吸收模型Iabs輸出結果為CO2總同化量的輸入,構成串行順序。同理,溫度校正系數(shù)TC的輸出為維持呼吸消耗量的輸入?yún)?shù)之一,它們之間也是串行關系。兩條串行線運行的結果分別又作為凈光合率的兩個參數(shù)輸入,且由于它們之間相互獨立,故又構成并行關系(圖4)。輸入相關參數(shù)值后,工作流模型運行結果如圖5所示,與預期結果一致。
4結論
基于已知模型的表達形式,通過建??丶瓿赡P偷膭?chuàng)建,將模型的運算過程轉(zhuǎn)化為可處理的工作流模型,并在模型實例化和復合階段為模型動態(tài)創(chuàng)建數(shù)據(jù)交換所需的輔助參數(shù),最后完成模型的執(zhí)行。從模型工程的角度看,側重于PIM的物理實現(xiàn),其框架原型具備了良好的智能性和可擴展性,經(jīng)過實踐檢驗,其最大特點是:
(1)人機界面友好。提供了方便、人性化的模型創(chuàng)建以及運行環(huán)境,具備豐富的數(shù)學符號表達以及支持拖拽功能來完成模型的復合。
(2)通用性強。采用了通用的XML文件作為存儲中介,并能方便地轉(zhuǎn)化為工作流專用文件XAML。
(3)自動化程度高。模型參數(shù)類型及個數(shù)能自動識別。能在復合階段動態(tài)地創(chuàng)建輔助參數(shù)。
(4)透明性好。建模過程不依賴于程序代碼,避免了建模者與程序代碼的直接接觸。
除了進一步優(yōu)化集成系統(tǒng)框架外,還需從以下幾個方面進行探索:①支持更復雜的模型復合以及求解算法的改進;②模型的持久化及數(shù)據(jù)庫的管理;③有效地將PIM設計與實現(xiàn)對接;④支持網(wǎng)絡服務應用的擴展。
[HS2*2]參考文獻:
[1]Er M C. Decision Support Systems:a summary,problems and future trends [J]. Decision Support Systems,1988,4(3):355-363.
[2]張治. DSS模型庫管理系統(tǒng)設計[J]. 河南科技大學學報:自然科學版,2004,25(5):38-42.
[3]趙青松,陳林,孫波,等. 基于Hadoop 的云環(huán)境下作物生長模型算法的實現(xiàn)與測試[J]. 農(nóng)業(yè)工程學報,2013,29(8):179-184.
[4]姜海燕,茅金輝,胥曉明,等. 基于面向服務架構和 WebGIS 的小麥生產(chǎn)管理支持系統(tǒng)[J]. 農(nóng)業(yè)工程學報,2012,28(8):159-166.
[5]胡東波. 模型驅(qū)動的決策支持系統(tǒng)研究[D]. 長沙:中南大學,2009.
[6]陳雪龍. 面向復雜決策問題的模型構造與管理方法研究[D]. 大連:大連理工大學,2008.
[7]唐文煒,沈備軍,陳德來. 模型驅(qū)動的業(yè)務流程建模工具[J]. 計算機工程,2009,35(24):262-264.
[8]趙鑫. 基于ECore的作物生長模型構建及模型設計工具研究[D]. 南京:南京農(nóng)業(yè)大學,2013.
[9]姜海燕. 基于生長模型的智能化作物集成建模輔助系統(tǒng)研究[J]. 中國農(nóng)業(yè)科學,2008,41(3):695-703.
[10]張維理. 智能化海量空間信息分析與地圖制圖軟件包IMAT設計及構建[J]. 中國農(nóng)業(yè)科學,2014,47(16):3250-3263.
[11]Bukivics B. Pro WF:Windows workflow in .net 4[M]. Apress,2010.
[12]王晨亮. 基于工作流的資源環(huán)境建??蚣艿脑O計與實現(xiàn)[D]. 濟南:山東科技大學,2010.
[13]高亮之. 農(nóng)業(yè)模型學基礎[M]. 香港:天馬圖書有限公司,2004.
[14]薛林,鄭國清,戴廷波. 作物生長模擬模型研究進展[J]. 河南農(nóng)業(yè)科學,2011,40(3):19-24.
[15]曹衛(wèi)星,羅衛(wèi)紅. 作物系統(tǒng)模擬及智能管理[M]. 北京:高等教育出版社,2003.
[16]Chen L,Li M L,Cao J,et al. An ECA rule-based workflow design tool for shanghai grid[C]//2013 IEEE international conference on services computing. IEEE Computer Society,2005:325-328.
[17]劉松. 事件和參數(shù)雙因素驅(qū)動的智能模型集成機制[J]. 計算機工程與應用,2012,48(8):28-31.
[18]Yongchareon S,Liu C,Yu J,et al. A view framework for modeling and change validation of artifact-centric inter-organizational business processes [J]. Information Systems,2015,47:51-81.
[19]Ye Y,Jiang Z,Diao X,et al. Extended event-condition-action rules and fuzzy Petri nets based exception handling for workflow management [J]. Expert Systems with Applications,2011,38(9):10847-10861.