張立志,李 俊,呂燕枚,王廣會(huì),王艷彬
(赤峰市水利規(guī)劃設(shè)計(jì)研究院,內(nèi)蒙古 赤峰 024000)
基于元數(shù)據(jù)和模型驅(qū)動(dòng)的水利信息共享平臺(tái)
張立志,李 俊,呂燕枚,王廣會(huì),王艷彬
(赤峰市水利規(guī)劃設(shè)計(jì)研究院,內(nèi)蒙古 赤峰 024000)
隨著水利信息化建設(shè)的不斷深入,迫切需要搭建水利信息共享平臺(tái),為整合數(shù)據(jù)資源,建成數(shù)據(jù)中心提供支撐。按照水利信息化“五統(tǒng)一”要求,提出基于元數(shù)據(jù)和模型驅(qū)動(dòng)的平臺(tái)建設(shè)方案,描述采用 SOA 思想的平臺(tái)架構(gòu)和功能,著重介紹基于元數(shù)據(jù)的水利業(yè)務(wù)系統(tǒng)模型體系和基于模型驅(qū)動(dòng)的水利業(yè)務(wù)系統(tǒng)構(gòu)建技術(shù)。平臺(tái)的應(yīng)用能提高水利業(yè)務(wù)系統(tǒng)的開發(fā)速度和質(zhì)量,降低開發(fā)維護(hù)成本。
水利信息;元數(shù)據(jù);模型驅(qū)動(dòng);SOA;信息共享;共享平臺(tái)
2011年《關(guān)于加快水利改革發(fā)展的決定》的中央一號(hào)文件出臺(tái)以來,赤峰市水利局注重在水利工程建設(shè)時(shí),信息化項(xiàng)目同步推進(jìn),根據(jù)自身業(yè)務(wù)需要,遵循水利信息化標(biāo)準(zhǔn)和規(guī)范,建成了山洪災(zāi)害監(jiān)測(cè)預(yù)警、工礦企業(yè)水資源遠(yuǎn)程監(jiān)控、地下水監(jiān)測(cè)、節(jié)水增糧等水利業(yè)務(wù)系統(tǒng),在提高山洪災(zāi)害防治能力,強(qiáng)化水資源管理,推進(jìn)農(nóng)業(yè)高效節(jié)水等方面發(fā)揮了積極作用。由于負(fù)責(zé)實(shí)施的軟件企業(yè)不同,采用的技術(shù)方案存在很大差異,沒有充分考慮信息共享和集成,分散建設(shè)的業(yè)務(wù)應(yīng)用和數(shù)據(jù)庫(kù)導(dǎo)致信息資源共享程度不高,數(shù)據(jù)異構(gòu)嚴(yán)重,業(yè)務(wù)協(xié)同難以實(shí)現(xiàn),“數(shù)據(jù)孤島”問題凸顯。如山洪災(zāi)害監(jiān)測(cè)預(yù)警系統(tǒng),全市 12 個(gè)旗縣區(qū)的系統(tǒng)由 2 家軟件公司負(fù)責(zé)實(shí)施,需進(jìn)行整合集成。
為有效破解“數(shù)據(jù)孤島”問題,赤峰市水利局迫切需要搭建多業(yè)務(wù)綜合應(yīng)用支撐平臺(tái),提供統(tǒng)一的運(yùn)行基礎(chǔ)架構(gòu),實(shí)現(xiàn)平臺(tái)公用、資源共享。為此提出基于元數(shù)據(jù)和模型驅(qū)動(dòng)的水利信息共享平臺(tái)建設(shè)方案,從技術(shù)體系架構(gòu)上保證軟件的靈活性,在應(yīng)用上具有“快速適應(yīng)水利業(yè)務(wù)變化,深度滿足用戶個(gè)性化需求”的能力。
元數(shù)據(jù)描述的是數(shù)據(jù)的背景、內(nèi)容、結(jié)構(gòu)及生命周期管理,為各種形態(tài)的數(shù)字化信息單元和資源集合提供規(guī)范、普遍的描述方法及檢索工具[1]。作為平臺(tái)開發(fā)語言,元數(shù)據(jù)被定義為通過其數(shù)據(jù)的修改改變程序行為的數(shù)據(jù),在支撐快速開發(fā)平臺(tái)設(shè)計(jì)方面發(fā)揮了重要作用[2];作為描述語言,在水利科學(xué)數(shù)據(jù)共享[3]、信息資源目錄體系構(gòu)建[4]方面,也起到資源發(fā)現(xiàn)、知識(shí)管理的作用。隨著數(shù)字資源的猛增,已經(jīng)發(fā)展成為一種管理、發(fā)現(xiàn)和使用數(shù)據(jù)的重要工具與手段。
OMG(Object Management Group)于 2001年提出模型驅(qū)動(dòng)架構(gòu)(MDA,Model-Driven Architecture)的軟件開發(fā)方式[5],模型驅(qū)動(dòng)是指利用模型指導(dǎo)系統(tǒng)開發(fā)的全過程,包括系統(tǒng)理解、設(shè)計(jì)、開發(fā)、架構(gòu)、部署、集成、維護(hù)等系統(tǒng)生命周期相關(guān)的全過程[6],將業(yè)務(wù)邏輯封裝在模型中,并將這些模型應(yīng)用到開發(fā)、代碼生成、測(cè)試及維護(hù)中。模型驅(qū)動(dòng)開發(fā)是一種能夠?qū)⒛P团c實(shí)現(xiàn)更緊密地聯(lián)系在一起的開發(fā)方法,在很大程度上提升了軟件開發(fā)的抽象層次,增強(qiáng)了軟件的可移植性、維護(hù)性,提高了軟件開發(fā)的效率。
2.1 平臺(tái)架構(gòu)及功能
按照水利信息化“五統(tǒng)一”的要求,緊緊圍繞水利中心工作,以需求為導(dǎo)向,以應(yīng)用為核心,基于 J2EE 技術(shù)規(guī)范,采用面向服務(wù)的體系架構(gòu),集開發(fā)與運(yùn)行環(huán)境于一體,構(gòu)建具有較強(qiáng)開放性和擴(kuò)展性的水利信息共享平臺(tái)。
2.1.1 平臺(tái)架構(gòu)
水利信息共享平臺(tái)總體架構(gòu)如圖 1 所示,有以下 6 個(gè)層次:
1)表示層。根據(jù)定義的業(yè)務(wù)表示模型自動(dòng)繪制生成水利業(yè)務(wù)系統(tǒng)的用戶頁面。
圖1 水利信息共享平臺(tái)架構(gòu)
2)控制層。是水利信息共享平臺(tái)的指揮中樞,接收 Web 用戶向平臺(tái)發(fā)出的請(qǐng)求進(jìn)行集中管理,根據(jù)指令調(diào)用相應(yīng)的業(yè)務(wù)服務(wù),發(fā)送平臺(tái)對(duì) Web 用戶請(qǐng)求做出的響應(yīng)。
3)業(yè)務(wù)服務(wù)層。按功能模塊實(shí)現(xiàn)水利業(yè)務(wù)邏輯的封裝,為外界提供訪問接口。
4)系統(tǒng)安全層。實(shí)現(xiàn)水利用戶登錄的合法性驗(yàn)證,提供基于角色的多層次多粒度訪問控制機(jī)制,全過程監(jiān)控用戶操作記錄。
5)數(shù)據(jù)訪問層。利用數(shù)據(jù)維護(hù)、檢索引擎完成各種水利業(yè)務(wù)數(shù)據(jù)的維護(hù)和查詢。
6)物理數(shù)據(jù)層。負(fù)責(zé)水利數(shù)據(jù)的存儲(chǔ),包括元和業(yè)務(wù)數(shù)據(jù),支持多種主流數(shù)據(jù)庫(kù)。
2.1.2 平臺(tái)功能
水利信息共享平臺(tái)內(nèi)嵌多種系統(tǒng)工具,采用Model-View-Control(MVC)框架,快速構(gòu)建水利業(yè)務(wù)系統(tǒng),完成數(shù)據(jù)實(shí)體的定義、用戶界面的設(shè)計(jì)、業(yè)務(wù)流程的設(shè)計(jì)、業(yè)務(wù)邏輯的擴(kuò)展、系統(tǒng)的配置和發(fā)布。另外,開放的體系架構(gòu)能實(shí)現(xiàn)與已有業(yè)務(wù)系統(tǒng)的無縫集成,實(shí)現(xiàn)開發(fā)、運(yùn)行、維護(hù)的“一站式”服務(wù),大大縮短軟件項(xiàng)目的實(shí)施周期。
2.2 平臺(tái)關(guān)鍵技術(shù)
2.2.1 基于元數(shù)據(jù)的水利業(yè)務(wù)系統(tǒng)模型體系
1)業(yè)務(wù)實(shí)體元數(shù)據(jù)模型。包含業(yè)務(wù)對(duì)象和邏輯,元數(shù)據(jù)模型定義了業(yè)務(wù)對(duì)象字段的基本屬性(數(shù)據(jù)類型、長(zhǎng)度、標(biāo)簽、顯示格式等)和擴(kuò)展屬性(是否必錄、啟用等);描述了業(yè)務(wù)邏輯,封裝了業(yè)務(wù)規(guī)則和完整性約束,業(yè)務(wù)規(guī)則作用于業(yè)務(wù)對(duì)象,業(yè)務(wù)對(duì)象遵從業(yè)務(wù)規(guī)則進(jìn)行運(yùn)作。完整性約束是對(duì)業(yè)務(wù)對(duì)象的數(shù)據(jù)一致性、規(guī)則的強(qiáng)制性規(guī)定與約束,是平臺(tái)正常運(yùn)轉(zhuǎn)的保障。另外,在已有業(yè)務(wù)實(shí)體的基礎(chǔ)上,可以通過復(fù)用方式創(chuàng)建新的業(yè)務(wù)實(shí)體,支持業(yè)務(wù)實(shí)體之間的繼承、關(guān)聯(lián)關(guān)系。針對(duì)當(dāng)前水利業(yè)務(wù)系統(tǒng)中數(shù)據(jù)不統(tǒng)一、規(guī)范的問題,按照水利部頒布的有關(guān)規(guī)范和標(biāo)準(zhǔn),規(guī)范數(shù)據(jù)庫(kù)設(shè)計(jì),實(shí)現(xiàn)系統(tǒng)間的數(shù)據(jù)互操作。
2)頁面展現(xiàn)元數(shù)據(jù)模型。定義頁面視圖(包括布局信息、表單控件屬性)、操作及元素的授權(quán),將頁面的邏輯、表示和數(shù)據(jù)分離開來,形成一個(gè)與平臺(tái)無關(guān)的抽象頁面定義。根據(jù)水利業(yè)務(wù)類型多樣化的特點(diǎn),平臺(tái)基于元數(shù)據(jù)模型提供了多種頁面模板,頁面布局管理器根據(jù)用戶授權(quán)、頁面模板動(dòng)態(tài)加載頁面,靈活控制頁面展示方式,定制出個(gè)性化表單頁面,易于維護(hù)。
3)業(yè)務(wù)流程元數(shù)據(jù)模型。包括工作流過程的定義和活動(dòng),轉(zhuǎn)移信息,工作流相關(guān)數(shù)據(jù),參與者和應(yīng)用程序的聲明等。在元數(shù)據(jù)模型中,過程定義與活動(dòng)、工作流相關(guān)數(shù)據(jù)之間是一對(duì)多的關(guān)系,即 1 個(gè)工作流定義由多個(gè)活動(dòng)與工作流相關(guān)數(shù)據(jù)組成。業(yè)務(wù)流程定義的結(jié)果以元數(shù)據(jù)的方式保存在數(shù)據(jù)庫(kù)中,運(yùn)行時(shí)由工作流引擎根據(jù)元數(shù)據(jù)的描述驅(qū)動(dòng)業(yè)務(wù)流程。
水利業(yè)務(wù)系統(tǒng)是在執(zhí)行引擎和 3 種元數(shù)據(jù)模型基礎(chǔ)上搭建的,執(zhí)行引擎是支撐水利業(yè)務(wù)系統(tǒng)即時(shí)運(yùn)行的內(nèi)核,元數(shù)據(jù)模型為水利業(yè)務(wù)系統(tǒng)邏輯結(jié)構(gòu)提供了直觀易懂的描述信息。當(dāng)收到水利業(yè)務(wù)系統(tǒng)的調(diào)用請(qǐng)求時(shí),執(zhí)行引擎將業(yè)務(wù)系統(tǒng)元數(shù)據(jù)轉(zhuǎn)化成響應(yīng)程序的運(yùn)行實(shí)例,完成相應(yīng)的信息處理功能。執(zhí)行引擎由數(shù)據(jù)處理、權(quán)限控制、頁面交互、Web服務(wù)、報(bào)表生成等部件協(xié)同工作,運(yùn)行機(jī)制如圖 2所示。
圖2 基于元數(shù)據(jù)的水利業(yè)務(wù)系統(tǒng)模型體系工作機(jī)制
2.2.2 基于模型驅(qū)動(dòng)的水利業(yè)務(wù)系統(tǒng)構(gòu)建技術(shù)
在基于模型驅(qū)動(dòng)的水利業(yè)務(wù)系統(tǒng)構(gòu)建過程中,綜合運(yùn)用以下 5 種關(guān)鍵技術(shù):
1)EJB(Enterprise JavaBean)組件技術(shù)。EJB組件定義 remote 和 home 接口,開發(fā)人員將重點(diǎn)放在水利業(yè)務(wù)邏輯規(guī)則實(shí)現(xiàn)上,通過配置的部署文件對(duì) EJB 組件進(jìn)行描述,打包后部署在應(yīng)用服務(wù)器上,通過標(biāo)準(zhǔn)接口向外界發(fā)布服務(wù)供客戶端調(diào)用。EJB 組件技術(shù)具有良好的封裝性,實(shí)現(xiàn)了模塊間高聚合、低耦合的設(shè)計(jì)目標(biāo)。
2)代碼自動(dòng)生成技術(shù)。基于模型驅(qū)動(dòng)的代碼自動(dòng)生成技術(shù)以水利業(yè)務(wù)系統(tǒng)的數(shù)據(jù)模型為基礎(chǔ),參照對(duì)類和對(duì)象的詳細(xì)設(shè)計(jì)中的規(guī)范說明信息,代碼生成引擎根據(jù)不同的代碼模板自動(dòng)生成可執(zhí)行的代碼,實(shí)現(xiàn)基本的數(shù)據(jù)增加、刪除、修改、查詢等操作。代碼自動(dòng)生成技術(shù)將業(yè)務(wù)開發(fā)和系統(tǒng)開發(fā)分離,避免重復(fù)開發(fā),提高了軟件開發(fā)效率。
3)基于 Web Service 的信息集成技術(shù)。Web Service 使用 XML 和 HTTP 等成熟的標(biāo)準(zhǔn)及技術(shù),描述、發(fā)現(xiàn)、配置、協(xié)調(diào)和發(fā)布水利業(yè)務(wù)系統(tǒng),為水利業(yè)務(wù)系統(tǒng)間的業(yè)務(wù)流程的集成提供通用機(jī)制?;?Web Service 的信息集成技術(shù)具有松耦合、跨平臺(tái)、易擴(kuò)展等特點(diǎn),依據(jù) Web Service 規(guī)范實(shí)施的水利業(yè)務(wù)系統(tǒng)之間,無論使用的語言、平臺(tái)或內(nèi)部協(xié)議是什么,都可以相互交換數(shù)據(jù),幫助用戶輕松實(shí)現(xiàn)水利業(yè)務(wù)系統(tǒng)間的互操作、無縫集成。
4)對(duì)象—關(guān)系映射技術(shù)(O/R Mapping)。平臺(tái)通過 O/R Mapping 的方式封裝了對(duì)水利數(shù)據(jù)庫(kù)的訪問,實(shí)現(xiàn)了面向?qū)ο蟮臄?shù)據(jù)訪問方式,簡(jiǎn)化了以數(shù)據(jù)為中心的應(yīng)用程序中與數(shù)據(jù)持久化相關(guān)的編程任務(wù),使開發(fā)人員能夠?qū)㈤_發(fā)重點(diǎn)專注于實(shí)現(xiàn)面向?qū)ο蟮臉I(yè)務(wù)模型和邏輯,避免通過寫 SQL 語句創(chuàng)建或維護(hù)數(shù)據(jù)表,同時(shí)還為實(shí)現(xiàn)多數(shù)據(jù)庫(kù)的支持建立良好基礎(chǔ)。
5)基于單點(diǎn)登錄的訪問控制技術(shù)。單點(diǎn)登錄提供統(tǒng)一的機(jī)制管理用戶的身份驗(yàn)證,在多個(gè)水利業(yè)務(wù)系統(tǒng)中,用戶只需要登錄 1 次就可以訪問所有相互信任的業(yè)務(wù)系統(tǒng),可使用多個(gè)系統(tǒng)的資源。基于單點(diǎn)登錄的訪問控制技術(shù)提高了網(wǎng)絡(luò)用戶的效率,減少了網(wǎng)絡(luò)操作的成本,增強(qiáng)了網(wǎng)絡(luò)安全性。
提出的基于元數(shù)據(jù)和模型驅(qū)動(dòng)的水利信息共享平臺(tái),為水利業(yè)務(wù)系統(tǒng)的快速構(gòu)建提供了統(tǒng)一的運(yùn)行和管理環(huán)境,以元數(shù)據(jù)為數(shù)據(jù)組織方式完成水利業(yè)務(wù)模型的建立,以模型驅(qū)動(dòng)為軟件業(yè)務(wù)構(gòu)建方法完成水利業(yè)務(wù)系統(tǒng)開發(fā),是一種高效的系統(tǒng)開發(fā)和維護(hù)模式,為水利軟件平臺(tái)研究和開發(fā)提供了借鑒。今后水利信息共享平臺(tái)在任務(wù)調(diào)度、報(bào)表設(shè)計(jì)等方面還需要優(yōu)化。
[1] 李軍,周成虎. 地球空間數(shù)據(jù)元數(shù)據(jù)標(biāo)準(zhǔn)初探[J]. 地理科學(xué)進(jìn)展,1998,17 (4) : 55-63.
[2] 蔡昭權(quán),盧慶武,鄭宗暉,等. 基于元數(shù)據(jù)的快速開發(fā)平臺(tái)設(shè)計(jì)與實(shí)現(xiàn)[J]. 計(jì)算機(jī)工程,2009,35 (9): 60-65.
[3] 朱星明,張行南,白婧怡,等. 水利科學(xué)數(shù)據(jù)共享元數(shù)據(jù)理論的應(yīng)用探討[J]. 水利學(xué)報(bào),2005,36 (8): 1-5.
[4] 朱躍龍,許峰,馮鈞,等. 水利信息資源目錄體系構(gòu)建研究[J]. 水利信息化,2010 (1): 4-8.
[5] OMG. Model Driven Architecture [EB/OL]. [2015-03-25]. http://www.omg.org/mda/presentations.htm.
[6] Wil van der Aalst, Kees van Hee. Workflow Management: Models, Methods and Systems[M]. Cambridge: MIT Press, 2002: 214-241.
Water Resources Information Sharing Platform based on Meta-Data and Model-Driven Tarim River Basin
ZHANG Lizhi, LI Jun, LV Yanmei, WANG Guanghui, WANG Yanbin
(Chifeng Water Resources Planning and Designing Institute, Chifeng 024000, China)
With the intensifying of water resources informatization construction,it is urgent to build water conservancy information sharing platform for supporting the integration of data resources and data center building. According to the requirement of "five unification", this paper proposes the platform construction scheme based on meta-data and model-driven, describes the architecture and function of platform adopting SOA, emphatically introduces the model system of water conservancy business system based on meta-data and the construction technology of water conservancy business system based on model-driven. The application of the platform improves the speed and quality of development for water conservancy business system, and reduces the costs of development and maintenance.
water resources information; meta-data; model-driven; SOA; information sharing; sharing platform
TP39
A
1674-9405(2015)04-0008-03
2015-04-02
張立志(1981-),男,內(nèi)蒙古赤峰人,工程師,主要從事水利信息化工作。