李 鑫,段 菁,滕 飛,納 青,云海英,高榮麗
(內(nèi)蒙古自治區(qū)林業(yè)信息中心,內(nèi)蒙古 呼和浩特 010018)
大數(shù)據(jù)時(shí)代推動(dòng)林業(yè)信息化蓬勃發(fā)展,林業(yè)從“數(shù)字林業(yè)”向“智慧林業(yè)”轉(zhuǎn)變,林業(yè)信息化逐漸進(jìn)入一種新的模式[1-3]。以時(shí)空數(shù)據(jù)為主的林業(yè)數(shù)據(jù)和與之相關(guān)聯(lián)的時(shí)空要素?cái)?shù)據(jù)集越來越龐大,林業(yè)大數(shù)據(jù)已進(jìn)入全空間信息系統(tǒng)的時(shí)代。全空間信息系統(tǒng)是地理信息在大數(shù)據(jù)時(shí)代的拓展和延伸,需要對(duì)多粒度時(shí)空對(duì)象進(jìn)行展示性、分析性與探索性的表達(dá)[4-5]。
鑒于以上時(shí)空數(shù)據(jù)表達(dá)的要求,使得林業(yè)時(shí)空大數(shù)據(jù)應(yīng)用與表達(dá)的需求變得越來越復(fù)雜。因此需要形成一套以多元化認(rèn)知為主體,在不同的任務(wù)目的、空間尺度、觀察視角下,滿足不同領(lǐng)域用戶的應(yīng)用需求[6]?;谏鲜鰞?nèi)容,提出了基于MDA模型驅(qū)動(dòng)架構(gòu)技術(shù)下的林業(yè)多維時(shí)空大數(shù)據(jù)可視化應(yīng)用系統(tǒng)設(shè)計(jì)及模型構(gòu)建,該架構(gòu)建立的模型完全獨(dú)立于計(jì)算機(jī)算法和設(shè)計(jì)語言,技術(shù)實(shí)現(xiàn)上不受限制,具備靈活性大,兼容性強(qiáng)的特點(diǎn),能夠滿足不同領(lǐng)域用戶復(fù)雜多變的應(yīng)用需求[7]。
MDA(model driven architecture)模型驅(qū)動(dòng)架構(gòu)由 OMG組織在2002年提出,是貫穿整個(gè)軟件開發(fā)過程的方法,這種方法認(rèn)為一切事物都可以抽象為模型,獨(dú)立于計(jì)算機(jī)算法和設(shè)計(jì)語言,為軟件開發(fā)過程提供了一套通用的軟件設(shè)計(jì)開發(fā)指導(dǎo)依據(jù)[8]。
傳統(tǒng)的軟件開發(fā)過程包括需求分析、系統(tǒng)設(shè)計(jì)、系統(tǒng)開發(fā)、系統(tǒng)測(cè)試以及系統(tǒng)驗(yàn)收與交付,基于模型驅(qū)動(dòng)MDA架構(gòu)將開發(fā)過程抽象為模型和模型之間的轉(zhuǎn)換過程。MDA模型驅(qū)動(dòng)架構(gòu)建模[9-11]的核心技術(shù)包括元對(duì)象設(shè)施MOF、公共數(shù)據(jù)倉庫元模型CWM和統(tǒng)一建模語言UML。為了更加準(zhǔn)確地描述業(yè)務(wù)需求,保證構(gòu)建的抽象模型能夠落實(shí)到軟件開發(fā)過程中,MDA架構(gòu)構(gòu)建了分級(jí)建模體系,將模型分為3類,包括獨(dú)立計(jì)算模型CIM、平臺(tái)無關(guān)模型PIM和特定平臺(tái)模型PSM[7,16]。MDA模型架構(gòu)工作原理如圖1所示。
圖1 MDA模型驅(qū)動(dòng)架構(gòu)工作原理Fig.1 Working principle of model driven architecture
由圖1可見,MDA模型驅(qū)動(dòng)架構(gòu)將應(yīng)用程序當(dāng)做模型,對(duì)應(yīng)最終實(shí)現(xiàn)平臺(tái)的PSM模型。在MDA模型架構(gòu)開發(fā)過程中,需求分析人員應(yīng)先建立完全不包含技術(shù)設(shè)計(jì)的業(yè)務(wù)層面的CIM模型,在需求分析階段對(duì)CIM模型進(jìn)行精化得到PIM模型,然后在對(duì)應(yīng)的傳統(tǒng)開發(fā)設(shè)計(jì)階段,進(jìn)行PIM模型到PSM模型轉(zhuǎn)換,以及PSM模型到最終程序的轉(zhuǎn)換,對(duì)應(yīng)為傳統(tǒng)的開發(fā)編碼階段[12]。
模型在MDA模型驅(qū)動(dòng)架構(gòu)開發(fā)過程中起著非常重要的作用,模型構(gòu)建的準(zhǔn)確與否將直接影響軟件開發(fā)的成敗。通過在開發(fā)階段分層次的建模,明晰了各類模型的作用,解耦了傳統(tǒng)軟件模型的復(fù)雜性,保護(hù)了軟件開發(fā)各階段的工作成果。采用UML技術(shù)構(gòu)建MDA三級(jí)模型,是軟件系統(tǒng)模型的標(biāo)準(zhǔn)方法,其具有語言精煉、全面、伸縮性好、源自時(shí)間、公認(rèn)建模標(biāo)準(zhǔn)等優(yōu)點(diǎn)[8]。
1.2.1CIM建模方法
CIM模型是需求階段建立的模型,是對(duì)某個(gè)領(lǐng)域的一個(gè)業(yè)務(wù)邏輯模型描述,用來描述軟件的業(yè)務(wù)功能需求,是需求分析中邏輯模型的一個(gè)組成部分,通常通過UML中的用例圖、數(shù)據(jù)流圖描述,有時(shí)只通過文本描述也可以實(shí)現(xiàn)CIM模型的建立。當(dāng)一個(gè)業(yè)務(wù)需要系統(tǒng)功能來支持實(shí)現(xiàn)時(shí),應(yīng)基于CIM模型來創(chuàng)建軟件模型,實(shí)現(xiàn)PIM模型[13]。
1.2.2PIM建模方法
PIM模型是需求分析與設(shè)計(jì)階段建立的模型,是對(duì)軟件系統(tǒng)的描述,不考慮具體的實(shí)現(xiàn)方法和技術(shù),重點(diǎn)是描述系統(tǒng)如何更好、更合理、更準(zhǔn)確地支撐業(yè)務(wù),是系統(tǒng)需求分析中邏輯模型的重要組成部分,主要包括系統(tǒng)數(shù)據(jù)模型和行為模型,通常通過UML中的類圖、流程圖、狀態(tài)圖及順序圖描述[13-14]。PIM模型創(chuàng)建要遵循完備性、準(zhǔn)確性、一致性、無異議等原則,保證PIM模型向PSM模型轉(zhuǎn)化[12]。
1.2.3PSM建模方法
PSM模型是系統(tǒng)設(shè)計(jì)和開發(fā)階段建立的模型[15-16],是基于特定實(shí)現(xiàn)技術(shù),使用特定平臺(tái)的術(shù)語描述以實(shí)現(xiàn)業(yè)務(wù)的模型,重點(diǎn)是描述系統(tǒng)使用何種技術(shù)支撐業(yè)務(wù),是MDA為某種特定實(shí)現(xiàn)技術(shù)量身定做的一種變換規(guī)則,更接近系統(tǒng)設(shè)計(jì)物理模型,是PIM模型到具體平臺(tái)的映射[17]。
林業(yè)數(shù)據(jù)以時(shí)空數(shù)據(jù)為主,時(shí)空數(shù)據(jù)是基于統(tǒng)一時(shí)空基準(zhǔn),與位置相關(guān)聯(lián)的地理要素或現(xiàn)象的數(shù)據(jù)集,具有空間維、屬性維和時(shí)間維等基本特征[18]。林業(yè)時(shí)空數(shù)據(jù)包括林業(yè)資源調(diào)查數(shù)據(jù)、遙感影像數(shù)據(jù)、林業(yè)地圖(集)數(shù)據(jù)、地名數(shù)據(jù)及時(shí)空數(shù)據(jù)與大數(shù)據(jù)融合產(chǎn)生的數(shù)據(jù)。林業(yè)時(shí)空大數(shù)據(jù)除具有一般大數(shù)據(jù)的特征外,還具備多維時(shí)空動(dòng)態(tài)可視化特征[19]。
林業(yè)時(shí)空大數(shù)據(jù)可視化是在林業(yè)時(shí)空數(shù)據(jù)的基礎(chǔ)上,結(jié)合目前多維屬性關(guān)聯(lián)可視化、時(shí)空協(xié)同可視化、層次關(guān)聯(lián)可視化等多維時(shí)空大數(shù)據(jù)可視化分析方法[20-21],通過借助地圖和圖表圖形化的可視化手段,實(shí)現(xiàn)地圖與圖表的聯(lián)動(dòng)交互,將森林資源、林地等變化、分布、各地區(qū)對(duì)比等情況通過地理信息直觀的進(jìn)行展現(xiàn)。在地理信息、時(shí)間、業(yè)務(wù)等多維度上按照時(shí)間、空間進(jìn)行數(shù)據(jù)分析展現(xiàn),從而清晰有效地傳達(dá)與溝通信息,從數(shù)據(jù)獲取最大價(jià)值[22]。
林業(yè)多維時(shí)空可視化分析是在基礎(chǔ)地圖、林業(yè)資源數(shù)據(jù)的基礎(chǔ)上,根據(jù)業(yè)務(wù)要求采用GIS地圖、趨勢(shì)圖、對(duì)比圖、餅圖、柱圖、散點(diǎn)圖等多種展現(xiàn)樣式,對(duì)林業(yè)相關(guān)部門關(guān)注的地圖數(shù)據(jù)及業(yè)務(wù)數(shù)據(jù)進(jìn)行全面展現(xiàn),實(shí)現(xiàn)林業(yè)時(shí)空數(shù)據(jù)的綜合分析,最終通過多屏、時(shí)序、卷簾、統(tǒng)計(jì)地圖、圖表等表達(dá)方式清晰展示林業(yè)資源的變化情況及趨勢(shì),便于決策層對(duì)林業(yè)的未來保護(hù)和規(guī)劃提供輔助決策。
林業(yè)時(shí)空大數(shù)據(jù)可視化設(shè)計(jì)采用J2EE的三層架構(gòu)體系,利用模型驅(qū)動(dòng)技術(shù)的軟件開發(fā)方法,根據(jù)林業(yè)時(shí)空大數(shù)據(jù)可視化功能需求設(shè)計(jì)總體架構(gòu),架構(gòu)分為業(yè)務(wù)層(CIM模型)、數(shù)據(jù)層(PIM模型)、技術(shù)層(PSM模型)、服務(wù)層以及應(yīng)用層。具體如圖2所示。
2.2.1業(yè)務(wù)層
基于林業(yè)時(shí)空大數(shù)據(jù),開展林業(yè)資源空間分析、智能展示、地圖+業(yè)務(wù)分析、趨勢(shì)分析、分布分析等數(shù)據(jù)可視化展示。
2.2.2數(shù)據(jù)層
數(shù)據(jù)層包含存儲(chǔ)的林業(yè)監(jiān)測(cè)、規(guī)劃、管理、生產(chǎn)等各類數(shù)據(jù)資源。按照數(shù)據(jù)的形式劃分,可分為空間圖形數(shù)據(jù)、業(yè)務(wù)屬性數(shù)據(jù)以及相關(guān)的文檔、多媒體數(shù)據(jù)等;按照數(shù)據(jù)應(yīng)用的多樣性劃分,包括基礎(chǔ)地理數(shù)據(jù)、林業(yè)專題數(shù)據(jù)、公共基礎(chǔ)數(shù)據(jù)、支撐數(shù)據(jù)庫。
2.2.3技術(shù)層
采用B/S架構(gòu)風(fēng)格,前端采用JavaScript框架,并根據(jù)不同的業(yè)務(wù)需求及展示效果選擇適合代碼庫,本平臺(tái)選擇的代碼庫是目前比較流行的dojo、echarts、jquery ui,通過dojo加載地圖和地圖相關(guān)功能,echarts實(shí)現(xiàn)統(tǒng)計(jì)分析圖表展示,jquery實(shí)現(xiàn)其他功能組件。后端采用Spring MVC框架。地圖使用esri的框架ArcGIS for js。
2.2.4服務(wù)層
服務(wù)層包含用于管理數(shù)據(jù)模型并為業(yè)務(wù)應(yīng)用層提供服務(wù)的應(yīng)用服務(wù)器軟件,如ArcGIS Server、Portal for ArcGIS和Web server等,同時(shí)應(yīng)用級(jí)別的數(shù)據(jù)接口也在應(yīng)用服務(wù)層提供。通過應(yīng)用服務(wù)為分析展現(xiàn)應(yīng)用、共享應(yīng)用、報(bào)表應(yīng)用提供平臺(tái)支撐。
2.2.5應(yīng)用層
基于林業(yè)時(shí)空大數(shù)據(jù),可以支持林業(yè)資源一張圖、統(tǒng)計(jì)分析、森林資源展示、分布圖展示、林相圖展示等應(yīng)用。
圖2 系統(tǒng)設(shè)計(jì)架構(gòu)Fig.2 System design framework
CIM模型分析是對(duì)林業(yè)時(shí)空大數(shù)據(jù)可視化的業(yè)務(wù)需求分析與業(yè)務(wù)建模的過程。根據(jù)林業(yè)業(yè)務(wù)部門對(duì)林業(yè)時(shí)空大數(shù)據(jù)的查詢、統(tǒng)計(jì)以及對(duì)林業(yè)時(shí)空大數(shù)據(jù)變化情況及趨勢(shì)分析的需求,完成業(yè)務(wù)建模過程,用例圖通過形象的方式描述業(yè)務(wù)模式,通過構(gòu)建行為者、用例、通信線、系統(tǒng)邊界、用例描述、用例邊界等元素,清晰地描述系統(tǒng)功能片段[4]。林業(yè)多維時(shí)空可視化分析CIM模型如圖3所示。
PIM模型是系統(tǒng)的業(yè)務(wù)邏輯在平臺(tái)無關(guān)抽象層上的建模。為了簡(jiǎn)化問題,將林業(yè)多維時(shí)空可視化抽象為兩部分關(guān)鍵信息(數(shù)據(jù)層和表示層),分別對(duì)這兩部分進(jìn)行建模?;贑IM模型建立的PIM模型見圖4[22]。
數(shù)據(jù)層通過DataModel表示統(tǒng)一抽象數(shù)據(jù)模型,依據(jù)業(yè)務(wù)數(shù)據(jù)特點(diǎn)泛化為空間數(shù)據(jù)模型SpatialDataModel、屬性數(shù)據(jù)模型AttributeDataModel、分類模型ClassifierModel和維度模型DimensionModel。該數(shù)據(jù)模型可以靈活配置展示的指標(biāo)和維度。
展示層分地圖展示和圖表展示,地圖模型MapType在本系統(tǒng)中實(shí)例化為分布圖、林相圖、森林資源等地圖,各地圖配置不同的交互行為Operation和組件Component。
在完成了PIM層的建模工作后,采用PIM-EJBPSM轉(zhuǎn)換規(guī)則將PIM映射為響應(yīng)的EJB平臺(tái)上的PSM。PIM-EJBPSM的建模規(guī)則為:每一個(gè)PIM類生成一個(gè)主鍵類、數(shù)據(jù)類;每個(gè)PIM關(guān)聯(lián)變換為EJB關(guān)聯(lián),并歸入一個(gè)數(shù)據(jù)模式;每個(gè)PIM屬性都變換為EJB數(shù)據(jù)類的EJB屬性;每個(gè)PIM操作都變換為EJB組件的操作。轉(zhuǎn)換后的PSM模型見圖5[22]。
PSM模型系統(tǒng)基于J2EE平臺(tái),采用MVC三層建構(gòu)模式,即Controller層負(fù)責(zé)請(qǐng)求轉(zhuǎn)發(fā),Service負(fù)責(zé)業(yè)務(wù)邏輯,Dao層進(jìn)行數(shù)據(jù)持久化和查詢。數(shù)據(jù)模型貫穿三層架構(gòu),并采用統(tǒng)一的抽象數(shù)據(jù)模型EJBClass,EJBDataClass為數(shù)據(jù)類型,EJBKeyClass為主鍵類。
圖3 CIM模型Fig.3 CIM model
圖4 PIM模型Fig.4 PIM model
圖5 PSM模型Fig.5 PSM model
在模型驅(qū)動(dòng)架構(gòu)基礎(chǔ)上,采用J2EE三層架構(gòu)體系。J2EE作為核心驅(qū)動(dòng)引擎,利用Java 2平臺(tái)簡(jiǎn)化了諸多解決方案的開發(fā)、部署和管理相關(guān)復(fù)雜問題的體系結(jié)構(gòu),提供了對(duì) EJB、Serves、JSP、JDBC、CORBA以及XML技術(shù)的全面支持。平臺(tái)架構(gòu)前端采用HTML5+JavaScript編程語言,根據(jù)前端系統(tǒng)特點(diǎn)選擇不同的JavaScript框架。可視化采用ArcGIS for JavaScript 3.34,建立在dojo組件上。
平臺(tái)架構(gòu)服務(wù)端使用JAVA語言,采用Spring MVC+myBatis搭建基礎(chǔ)框架,實(shí)現(xiàn)系統(tǒng)的基本業(yè)務(wù)功能和通用功能,并在依托Spring框架集成流程管理activiti、安全認(rèn)證shiro、日志管理log4j和緩存redis組件。
從實(shí)現(xiàn)角度看,將程序代碼與元模型綁定,通過多級(jí)抽象,用戶的需求變化被控制在模型層面上,變化的波及效應(yīng)無法沖擊到代碼層,使得系統(tǒng)具有了運(yùn)行期動(dòng)態(tài)改變的能力。
隨著大數(shù)據(jù)、物聯(lián)網(wǎng)、人工智能技術(shù)的不斷發(fā)展與應(yīng)用,對(duì)林業(yè)時(shí)空大數(shù)據(jù)展現(xiàn)層需求變得越來越復(fù)雜?;贛DA模型驅(qū)動(dòng)架構(gòu),構(gòu)建林業(yè)多維時(shí)空大數(shù)據(jù)可視化應(yīng)用軟件設(shè)計(jì)開發(fā)方法,優(yōu)化了傳統(tǒng)開發(fā)方法中出現(xiàn)的生產(chǎn)效率低、可移植性差、互操作性弱等一系列問題。通過建立CIM、PIM、PSM三級(jí)模型,明晰了各類模型的作用,解耦了傳統(tǒng)軟件模型的復(fù)雜性,保證了CIM模型和PIM模型的復(fù)用性。本研究已應(yīng)用于內(nèi)蒙古林草局林業(yè)大數(shù)據(jù)管理平臺(tái)系統(tǒng)建設(shè),實(shí)際應(yīng)用表明,與傳統(tǒng)的針對(duì)模型層的開發(fā)相比,該系統(tǒng)具備良好的適應(yīng)性和擴(kuò)展性,能夠滿足不同領(lǐng)域用戶復(fù)雜多變的應(yīng)用需求,為未來林業(yè)時(shí)空大數(shù)據(jù)建設(shè)與應(yīng)用奠定了良好的基礎(chǔ)。