陳焜浩 王立新 劉 智 吳華平
?
模塊化城鎮(zhèn)地震災(zāi)害風(fēng)險評估系統(tǒng)設(shè)計、開發(fā)與實現(xiàn)1
陳焜浩1,2,3)王立新1,2,3)劉 智1,2,3)吳華平1,2,3)
1)廣東省地震局,廣州 510070 2)中國地震局地震監(jiān)測與減災(zāi)技術(shù)重點實驗室,廣州 510070 3)廣東省地震預(yù)警與重大工程安全診斷重點實驗室,廣州 510070
本文為滿足不同用戶對于地震災(zāi)害風(fēng)險評估功能的需求,在對地震災(zāi)害風(fēng)險評估成果進(jìn)行分析整理的基礎(chǔ)上,研究設(shè)計、開發(fā)并實現(xiàn)了由一系列通用功能模塊組成的模塊化地震災(zāi)害風(fēng)險評估系統(tǒng)。在設(shè)計階段確定了各模塊的功能、所需數(shù)據(jù)及其相互關(guān)系,分割出一系列高內(nèi)聚低耦合的功能模塊;在此基礎(chǔ)上確定系統(tǒng)使用MEF插件式開發(fā)框架,以功能模塊為單位進(jìn)行軟件開發(fā),形成多個具有特定功能、互相獨立的工具包;使用WPF技術(shù)對該系統(tǒng)平臺進(jìn)行開發(fā),通過整合各功能模塊,最終形成多模塊靈活組合調(diào)用、滿足不同用戶需求的城鎮(zhèn)地震災(zāi)害風(fēng)險動態(tài)評估系統(tǒng)。
地震災(zāi)害 風(fēng)險評估 模塊化系統(tǒng) 系統(tǒng)開發(fā)
當(dāng)?shù)卣鸢l(fā)生后對災(zāi)情進(jìn)行判斷,并在此基礎(chǔ)上調(diào)配進(jìn)入災(zāi)區(qū)的救援人員以及救援物資的數(shù)量需要一定的研判時間。對于真實地震災(zāi)區(qū)受災(zāi)情況的研判,其時間的長短及其準(zhǔn)確性對震后采取的應(yīng)急措施影響重大。而在震后及時采取應(yīng)急措施是減少人員傷亡的最有效方法,因此設(shè)計一套地震災(zāi)害風(fēng)險評估系統(tǒng),及時生成對地震災(zāi)害嚴(yán)重性的研判以及震后輔助決策報告,能夠為地震災(zāi)害應(yīng)急單位提供快速、準(zhǔn)確的輔助信息。
目前國內(nèi)外已有眾多學(xué)者、機(jī)構(gòu)對地震災(zāi)害風(fēng)險評估系統(tǒng)進(jìn)行了研究。高杰、王曉青等結(jié)合地理信息中數(shù)據(jù)的可視化處理,研制了基于GIS的震害風(fēng)險評估系統(tǒng)(高杰等,2005),陳洪富(2013)提出了基于云計算的震害風(fēng)險評估系統(tǒng)的設(shè)計思想。國外有較為成熟的震害評估系統(tǒng),如美國的HAZUS系統(tǒng)、歐洲的ELER系統(tǒng)等(Schneider等,2006;Hancilar等,2010)。吸收這些系統(tǒng)的設(shè)計理念,結(jié)合我國地震應(yīng)急工作中震害評估軟件的實際應(yīng)用情況,為滿足不同部門及不同人員對系統(tǒng)差異化功能的需求,本文設(shè)計、開發(fā)并實現(xiàn)了模塊化的城鎮(zhèn)地震災(zāi)害風(fēng)險評估系統(tǒng)。
基于組件的軟件開發(fā)模式,是軟件開發(fā)技術(shù)在經(jīng)過結(jié)構(gòu)化和面向?qū)ο蟮拈_發(fā)技術(shù)后,通過總結(jié)和創(chuàng)新將組件方法和軟件工程方法學(xué)結(jié)合起來形成的一種新的軟件開發(fā)模式。使用該模式開發(fā)的系統(tǒng)具有維護(hù)性與擴(kuò)展性強(qiáng)、與舊系統(tǒng)兼容性強(qiáng)、模塊的重用性較好等特點,能夠解決地震災(zāi)害風(fēng)險評估軟件在使用過程中不易維護(hù)、后期功能擴(kuò)展困難、新功能不兼容以及功能模塊不可重復(fù)利用等問題。本系統(tǒng)采用松散耦合的架構(gòu)設(shè)計,在具有基本功能的公共平臺基礎(chǔ)上設(shè)計一系列低耦合高內(nèi)聚的功能模塊(朱天梅,2012)。系統(tǒng)使用者可根據(jù)需求自主在系統(tǒng)平臺框架上選擇需要加載的功能模塊,對系統(tǒng)功能進(jìn)行定制;系統(tǒng)開發(fā)者可依據(jù)使用需求,面向不同領(lǐng)域用戶需求開發(fā)獨立的工具包供使用者自主加載,極大地提高了系統(tǒng)的可擴(kuò)展性,使該系統(tǒng)可用于復(fù)雜的實際工作。
首先,依據(jù)地震災(zāi)害風(fēng)險評估中常用的模塊、算法和模型,對系統(tǒng)各個功能模塊進(jìn)行內(nèi)部設(shè)計,并對功能模塊間的數(shù)據(jù)流進(jìn)行分析,確立模塊間的耦合關(guān)系,以方便后續(xù)在對指定模塊進(jìn)行導(dǎo)入使用時能自動加載所必須的依賴模塊,保持系統(tǒng)功能的正常運轉(zhuǎn)。概括來說,系統(tǒng)要實現(xiàn)以下幾方面功能:地震危險性分析、震害風(fēng)險與評估、輔助決策分析、系統(tǒng)管理。如圖1所示,這些功能分別由若干子功能模塊構(gòu)成,各功能模塊的具體說明如下:
(1)地震危險性分析。由地震活動性、地震地質(zhì)構(gòu)造以及危險性分析結(jié)果等模塊組成,包含所分析區(qū)域在地震活動性、地質(zhì)構(gòu)造評價等方面的研究成果,并結(jié)合地理信息圖形化顯示將地震活動性、地震斷裂、地質(zhì)構(gòu)造以及不同超越概率地震動參數(shù)以地圖的形式展示出來。
(2)震害風(fēng)險與評估。由設(shè)定地震建筑物震害分析、人員傷亡評估以及經(jīng)濟(jì)損失評估等模塊組成。用戶在“設(shè)定地震”模塊中對地震動參數(shù)進(jìn)行設(shè)定輸入,提供系統(tǒng)所需要的分析運行參數(shù)。在“建筑物震害分析”模塊中,系統(tǒng)基于用戶輸入的地震動參數(shù),結(jié)合分析區(qū)域的建筑物易損性曲線以及建筑物數(shù)據(jù),對該地震動輸入下區(qū)域建筑物的受災(zāi)程度進(jìn)行量化計算。在建筑物震害分析的基礎(chǔ)上,可進(jìn)一步調(diào)用“人員傷亡評估”模塊以及“經(jīng)濟(jì)損失評估”模塊進(jìn)行人員傷亡和經(jīng)濟(jì)損失的評估。
(3)輔助決策分析。由地震應(yīng)急預(yù)案、物資供應(yīng)分析、醫(yī)療救援分析以及地震災(zāi)情報告等模塊組成?!暗卣饝?yīng)急預(yù)案”中包含了一系列在地震應(yīng)急中所需遵循的法律法規(guī)和相關(guān)應(yīng)急處置規(guī)定?!拔镔Y供應(yīng)分析”和“醫(yī)療救援分析”是依據(jù)震害風(fēng)險與評估中“人員傷亡評估”模塊的分析結(jié)果,分析災(zāi)區(qū)在震后所需要的物資供應(yīng)以及救援人員的數(shù)量,最終通過“地震災(zāi)情報告”生成相應(yīng)的地震災(zāi)情輔助決策報告,供地震災(zāi)害應(yīng)急部門在調(diào)配救援物資和救援人員時參考。
(4)系統(tǒng)管理。該部分對系統(tǒng)用戶權(quán)限及上述所有功能模塊進(jìn)行管理。模塊管理功能根據(jù)本系統(tǒng)模塊化的特點,可以任意選擇特定的功能模塊定制生成一個新系統(tǒng)。在使用該功能時,系統(tǒng)會依據(jù)各個模塊的耦合關(guān)系,自動選擇所依賴的模塊。
如前所述,本系統(tǒng)采用的是多模塊靈活組合調(diào)用的插件式軟件架構(gòu),因此各個模塊可以完全獨立或者具備一定的松散耦合。而部分模塊的分析功能需要依賴另外模塊的分析結(jié)果,如建筑物震害分析模塊需要依賴設(shè)定地震模塊方能運行。因此,這些模塊間均采用非直接耦合或者數(shù)據(jù)耦合的方式相互關(guān)聯(lián),以保證各個模塊間的強(qiáng)獨立性。對于具備以上耦合性的模塊,當(dāng)用戶加載其中一個模塊時系統(tǒng)應(yīng)自動加載其所依賴的模塊。系統(tǒng)模塊中具備數(shù)據(jù)耦合關(guān)系的模塊如表1所示,依賴項表示其與依賴模塊間的數(shù)據(jù)耦合關(guān)系。在進(jìn)行模型運算前,系統(tǒng)將自動判斷其依賴項是否滿足運算輸入的參數(shù)需求,若不滿足,則將提示用戶先行對依賴模塊進(jìn)行調(diào)用,獲取依賴項中的輸入?yún)?shù)后再進(jìn)行下一步的運算分析。
圖1 系統(tǒng)功能模塊
表1 模塊依賴關(guān)系
續(xù)表
本系統(tǒng)的總體架構(gòu)分為3個層次,分別為表現(xiàn)層、邏輯層以及數(shù)據(jù)層,如圖2所示。數(shù)據(jù)層為系統(tǒng)提供所分析區(qū)域的數(shù)據(jù)存儲、訪問、編輯以及管理功能;邏輯層通過實現(xiàn)各個震害分析算法,為系統(tǒng)提供業(yè)務(wù)服務(wù)功能;表現(xiàn)層為系統(tǒng)的使用用戶提供系統(tǒng)交互的界面。下文將分別對系統(tǒng)的3個層面進(jìn)行介紹。
圖2 系統(tǒng)總體架構(gòu)
(1)數(shù)據(jù)層。系統(tǒng)中所用的數(shù)據(jù)分為屬性數(shù)據(jù)及空間數(shù)據(jù)兩部分。屬性數(shù)據(jù)直接以二維表的形式存放于MSSQL關(guān)系型數(shù)據(jù)庫中(尹善華,2007),而空間數(shù)據(jù)將通過Spatial Database Engine(SDE)在MSSQL上建立的企業(yè)級空間數(shù)據(jù)庫存放。使用MSSQL以及SDE對系統(tǒng)數(shù)據(jù)進(jìn)行存放和維護(hù)能夠應(yīng)對多并發(fā)的使用情況,保障系統(tǒng)數(shù)據(jù)層在大訪問量下的正常運轉(zhuǎn)。
(2)邏輯層。系統(tǒng)邏輯層是通過Managed Extensibility Framework(MEF)實現(xiàn)系統(tǒng)動態(tài)組合的插件式框架設(shè)計。首先需要構(gòu)建地震災(zāi)害風(fēng)險動態(tài)評估系統(tǒng)的基礎(chǔ)框架,為眾多功能插件提供公共容器;而后通過地震災(zāi)害風(fēng)險評估業(yè)務(wù)上的功能需求和業(yè)務(wù)邏輯分析,分別設(shè)計和實現(xiàn)各系統(tǒng)功能模塊(王曉青等,2004;王希波,2006;姜慧等,2016);最后通過系統(tǒng)基礎(chǔ)框架以及功能模塊間的耦合規(guī)則,實現(xiàn)系統(tǒng)對各功能插件的自動識別及組合。
(3)表現(xiàn)層。該層通過Windows Presentation Foundation(WPF)技術(shù),使用XAML設(shè)計了一系列系統(tǒng)面板。該層是用戶調(diào)用震害風(fēng)險評估系統(tǒng)各個功能模塊的入口,也是對災(zāi)害風(fēng)險評估結(jié)果進(jìn)行展示的出口,最后生成地震災(zāi)后輔助決策報告。
模塊化架構(gòu)的設(shè)計理念為:完成系統(tǒng)基礎(chǔ)框架平臺、即插件的宿主程序的搭建后,在后期加入的大部分功能無須更改基礎(chǔ)平臺的源代碼,只要依據(jù)預(yù)先定義的基本服務(wù)接口和插件接口規(guī)范編寫不同的功能模塊即可。因此,本模塊化城鎮(zhèn)地震災(zāi)害風(fēng)險評估系統(tǒng)在對系統(tǒng)基礎(chǔ)框架平臺不提出新需求的情況下,不需要修改宿主程序即能夠依據(jù)其接口通信規(guī)范,快速地由多人分別進(jìn)行不同新風(fēng)險評估功能模塊的開發(fā)。對于宿主程序來說并不需要獲取插件的具體功能,在主程序啟動時會檢索插件信息,并根據(jù)預(yù)定的接口裝載插件,從而形成一套具有強(qiáng)大可擴(kuò)展能力的地震災(zāi)害風(fēng)險評估軟件模塊體系。
基于以上開發(fā)思路,在本系統(tǒng)的具體開發(fā)中,采用了基于.NET的MEF類庫進(jìn)行模塊架構(gòu)的設(shè)計與構(gòu)建。系統(tǒng)開發(fā)所采用的MEF類庫的架構(gòu)圖如圖3所示。MEF的核心是可組合組件ComposablePart,架構(gòu)圖中的Part1、Part2、PartN即為MEF架構(gòu)的可組合組件,它是由ComposablePartDefintion來描述和創(chuàng)建的。每一個可組合組件通過定義ExportDefintion向模塊化城鎮(zhèn)地震災(zāi)害風(fēng)險評估系統(tǒng)基礎(chǔ)框架平臺提供功能,系統(tǒng)平臺通過定義ImportDefinition來引用該組件的功能,通過這種耦合定義形成一個可動態(tài)組合的模塊化系統(tǒng)。在新創(chuàng)建一個可組合功能插件后,只需要將該組件放在系統(tǒng)指定的插件目錄下,系統(tǒng)基礎(chǔ)框架平臺即可以在進(jìn)行初始化工作時通過ValueResolver搜索組件所在的目錄來加載該功能插件,實現(xiàn)功能模塊的自由組合。
圖3 MEF架構(gòu)
基于以上對模塊化城鎮(zhèn)地震災(zāi)害風(fēng)險評估系統(tǒng)的業(yè)務(wù)功能分析及其技術(shù)架構(gòu)的設(shè)計,本系統(tǒng)使用基于.NET Framework的C#編程語言進(jìn)行源代碼的編寫,使用基于WPF技術(shù)的XAML語言設(shè)計系統(tǒng)的整體界面,通過MSSQL數(shù)據(jù)庫進(jìn)行數(shù)據(jù)存儲并使用ArcGIS Server發(fā)布空間數(shù)據(jù)。系統(tǒng)進(jìn)行了整體框架的搭建,并在此基礎(chǔ)上完成了對上述設(shè)計的功能模塊的開發(fā)。圖4顯示了具有完整功能的系統(tǒng)主界面,圖5為系統(tǒng)在某設(shè)定地震下計算得到的建筑物震害分析結(jié)果示例:通過設(shè)定地震參數(shù)下計算出來的峰值加速度值,結(jié)合易損性矩陣以及建筑物結(jié)構(gòu)類型等對建筑物震害進(jìn)行分析運算,對運算結(jié)果在各個鄉(xiāng)鎮(zhèn)范圍內(nèi)用扇形圖表示建筑物5個破壞等級的面積比,其中分別用5種設(shè)色來表述建筑物的5個破壞等級。
圖4 系統(tǒng)主界面
圖5 系統(tǒng)運行結(jié)果
如前所述,為了管理眾多功能模塊和滿足不同用戶需求,系統(tǒng)實現(xiàn)了模塊管理功能,用于生成給予特定用戶以具有特定功能的模塊組合而成的新系統(tǒng)。圖6為系統(tǒng)的模塊管理界面,管理員可任意選擇所需的功能模塊,系統(tǒng)會自動判別并調(diào)用所選取模塊對應(yīng)的依賴模塊,最終生成一個能獨立運行的子系統(tǒng)。例如,圖6中只選取了“建筑物震害分析”模塊,生成的子系統(tǒng)中(圖7)已自動調(diào)用其所依賴的“設(shè)定地震”模塊,從而保證了系統(tǒng)的獨立運行。通過這種方式,實現(xiàn)了功能模塊按需組合的系統(tǒng)設(shè)計理念,也為系統(tǒng)后續(xù)添加的新插件模塊提供了高效的模塊管理方案。
圖6 模塊管理界面
圖7 模塊化生成的僅有建筑物震害分析功能的子系統(tǒng)界面
本文通過分析以往地震災(zāi)害風(fēng)險評估系統(tǒng)的設(shè)計和開發(fā)經(jīng)驗,提出、設(shè)計并實現(xiàn)了一套模塊化城鎮(zhèn)地震災(zāi)害風(fēng)險評估系統(tǒng)軟件。用.NET Framework開發(fā)平臺,結(jié)合MSSQL數(shù)據(jù)庫、SDE空間數(shù)據(jù)庫引擎,利用WPF矢量化界面顯示技術(shù)和MEF插件式開發(fā)框架完成了編程開發(fā)。該系統(tǒng)可滿足城鎮(zhèn)地震災(zāi)害風(fēng)險評估工作中對不同用戶提供不同功能的自主組合需求,并為未來添加新的功能模塊、進(jìn)行系統(tǒng)功能的升級提供了更有效的解決方案。
陳洪富,孫柏濤,陳相兆等,2013. HAZ-China地震災(zāi)害損失評估系統(tǒng)研究.土木工程學(xué)報,46(S2):294—300.
高杰,馮啟民,莫善軍,2005.城市地震災(zāi)害預(yù)測及其信息管理通用程序研究.世界地震工程,21(1):75—80.
姜慧,王立新,嚴(yán)琨等,2016.大型橋梁地震安全性在線監(jiān)測與評估系統(tǒng)研究.震災(zāi)防御技術(shù),11(2):261—271.
王希波,2006.城市地震應(yīng)急輔助決策系統(tǒng)研究.南京:東南大學(xué).
王曉青,丁香,2004.基于GIS的地震現(xiàn)場災(zāi)害損失評估系統(tǒng).自然災(zāi)害學(xué)報,13(1):118—125.
尹善華,2007.對象模式與關(guān)系數(shù)據(jù)模式的映射研究.長沙:中南大學(xué).
朱天梅,2012.基于程序聚類的軟件模塊化質(zhì)量演化監(jiān)控技術(shù)研究.上海:復(fù)旦大學(xué).
Hancilar U., Tuzun C., Yenidogan C., et al., 2010. ELER software-a new tool for urban earthquake loss assessment. Natural Hazards and Earth System Sciences, 10(12): 2677—2696.
Schneider P. J., Schauer B. A., 2006. HAZUS—its development and its future. Natural Hazards Review, 7(2): 40—44.
Design, Development and Implementation of the Modular Urban Earthquake Disaster Risk Assessment System
Chen Kunhao1, 2, 3), Wang Lixin1, 2, 3), Liu Zhi1, 2, 3)and Wu Huaping1, 2, 3)
1) Earthquake Administration of Guangdong Province, Guangzhou 510070, China 2) Key Laboratory of Earthquake Monitoring and Disaster Mitigation Technology, CEA, Guangzhou 510070, China 3) Key Laboratory of Earthquake Early Warning and Safety Diagnosis of Major Projects,Guangdong Province, Guangzhou 510070, China
In order to meet the requirements of different users for different earthquake disaster risk assessment functions, based on the analysis results of earthquake disaster risk assessment, we developed a modular earthquake disaster risk assessment system which consists of a series of modules with general functions. In the design phase, the function of each module and its relationship with other modules were determined, and a series of necessary functional modules with high cohesion and low coupling were designed. On this basis, the MEF plug-in development framework was used and the software was developed, in order to form a number of independent toolkits with specific functions. The WPF technology was adopted to develop the system platform and integrate all the modules. Finally, an urban earthquake disaster risk dynamic assessment system which can select and combine modules flexibly to meet the needs of different users was implemented.
Earthquake disaster; Risk assessment; Modular system; System development
10.11899/zzfy20170422
“十二五”國家科技支撐計劃課題(2015BAK18B01)、廣東省公益研究與能力建設(shè)專項(2015A020217007)
2017-04-12
陳焜浩,男,生于1992年。助理工程師。研究方向:地理信息。E-mail:20122600047@m.scnu.edu.cn
王立新,男,生于1976年。正研級高工。研究方向:地震工程、震害預(yù)測。E-mail:wlxustc@hotmail.com
陳焜浩,王立新,劉智,吳華平,2017.模塊化城鎮(zhèn)地震災(zāi)害風(fēng)險評估系統(tǒng)設(shè)計、開發(fā)與實現(xiàn).震災(zāi)防御技術(shù),12(4):947—955.