模块化城镇地震灾害风险评估系统设计、开发与实现1

2017-02-08 05:37陈焜浩王立新吴华平
震灾防御技术 2017年4期
关键词:功能模块插件模块化

陈焜浩 王立新 刘 智 吴华平



模块化城镇地震灾害风险评估系统设计、开发与实现1

陈焜浩1,2,3)王立新1,2,3)刘 智1,2,3)吴华平1,2,3)

1)广东省地震局,广州 510070 2)中国地震局地震监测与减灾技术重点实验室,广州 510070 3)广东省地震预警与重大工程安全诊断重点实验室,广州 510070

本文为满足不同用户对于地震灾害风险评估功能的需求,在对地震灾害风险评估成果进行分析整理的基础上,研究设计、开发并实现了由一系列通用功能模块组成的模块化地震灾害风险评估系统。在设计阶段确定了各模块的功能、所需数据及其相互关系,分割出一系列高内聚低耦合的功能模块;在此基础上确定系统使用MEF插件式开发框架,以功能模块为单位进行软件开发,形成多个具有特定功能、互相独立的工具包;使用WPF技术对该系统平台进行开发,通过整合各功能模块,最终形成多模块灵活组合调用、满足不同用户需求的城镇地震灾害风险动态评估系统。

地震灾害 风险评估 模块化系统 系统开发

引言

当地震发生后对灾情进行判断,并在此基础上调配进入灾区的救援人员以及救援物资的数量需要一定的研判时间。对于真实地震灾区受灾情况的研判,其时间的长短及其准确性对震后采取的应急措施影响重大。而在震后及时采取应急措施是减少人员伤亡的最有效方法,因此设计一套地震灾害风险评估系统,及时生成对地震灾害严重性的研判以及震后辅助决策报告,能够为地震灾害应急单位提供快速、准确的辅助信息。

目前国内外已有众多学者、机构对地震灾害风险评估系统进行了研究。高杰、王晓青等结合地理信息中数据的可视化处理,研制了基于GIS的震害风险评估系统(高杰等,2005),陈洪富(2013)提出了基于云计算的震害风险评估系统的设计思想。国外有较为成熟的震害评估系统,如美国的HAZUS系统、欧洲的ELER系统等(Schneider等,2006;Hancilar等,2010)。吸收这些系统的设计理念,结合我国地震应急工作中震害评估软件的实际应用情况,为满足不同部门及不同人员对系统差异化功能的需求,本文设计、开发并实现了模块化的城镇地震灾害风险评估系统。

基于组件的软件开发模式,是软件开发技术在经过结构化和面向对象的开发技术后,通过总结和创新将组件方法和软件工程方法学结合起来形成的一种新的软件开发模式。使用该模式开发的系统具有维护性与扩展性强、与旧系统兼容性强、模块的重用性较好等特点,能够解决地震灾害风险评估软件在使用过程中不易维护、后期功能扩展困难、新功能不兼容以及功能模块不可重复利用等问题。本系统采用松散耦合的架构设计,在具有基本功能的公共平台基础上设计一系列低耦合高内聚的功能模块(朱天梅,2012)。系统使用者可根据需求自主在系统平台框架上选择需要加载的功能模块,对系统功能进行定制;系统开发者可依据使用需求,面向不同领域用户需求开发独立的工具包供使用者自主加载,极大地提高了系统的可扩展性,使该系统可用于复杂的实际工作。

1 系统功能分析

1.1 功能模块划分

首先,依据地震灾害风险评估中常用的模块、算法和模型,对系统各个功能模块进行内部设计,并对功能模块间的数据流进行分析,确立模块间的耦合关系,以方便后续在对指定模块进行导入使用时能自动加载所必须的依赖模块,保持系统功能的正常运转。概括来说,系统要实现以下几方面功能:地震危险性分析、震害风险与评估、辅助决策分析、系统管理。如图1所示,这些功能分别由若干子功能模块构成,各功能模块的具体说明如下:

(1)地震危险性分析。由地震活动性、地震地质构造以及危险性分析结果等模块组成,包含所分析区域在地震活动性、地质构造评价等方面的研究成果,并结合地理信息图形化显示将地震活动性、地震断裂、地质构造以及不同超越概率地震动参数以地图的形式展示出来。

(2)震害风险与评估。由设定地震建筑物震害分析、人员伤亡评估以及经济损失评估等模块组成。用户在“设定地震”模块中对地震动参数进行设定输入,提供系统所需要的分析运行参数。在“建筑物震害分析”模块中,系统基于用户输入的地震动参数,结合分析区域的建筑物易损性曲线以及建筑物数据,对该地震动输入下区域建筑物的受灾程度进行量化计算。在建筑物震害分析的基础上,可进一步调用“人员伤亡评估”模块以及“经济损失评估”模块进行人员伤亡和经济损失的评估。

(3)辅助决策分析。由地震应急预案、物资供应分析、医疗救援分析以及地震灾情报告等模块组成。“地震应急预案”中包含了一系列在地震应急中所需遵循的法律法规和相关应急处置规定。“物资供应分析”和“医疗救援分析”是依据震害风险与评估中“人员伤亡评估”模块的分析结果,分析灾区在震后所需要的物资供应以及救援人员的数量,最终通过“地震灾情报告”生成相应的地震灾情辅助决策报告,供地震灾害应急部门在调配救援物资和救援人员时参考。

(4)系统管理。该部分对系统用户权限及上述所有功能模块进行管理。模块管理功能根据本系统模块化的特点,可以任意选择特定的功能模块定制生成一个新系统。在使用该功能时,系统会依据各个模块的耦合关系,自动选择所依赖的模块。

1.2 功能模块耦合分析

如前所述,本系统采用的是多模块灵活组合调用的插件式软件架构,因此各个模块可以完全独立或者具备一定的松散耦合。而部分模块的分析功能需要依赖另外模块的分析结果,如建筑物震害分析模块需要依赖设定地震模块方能运行。因此,这些模块间均采用非直接耦合或者数据耦合的方式相互关联,以保证各个模块间的强独立性。对于具备以上耦合性的模块,当用户加载其中一个模块时系统应自动加载其所依赖的模块。系统模块中具备数据耦合关系的模块如表1所示,依赖项表示其与依赖模块间的数据耦合关系。在进行模型运算前,系统将自动判断其依赖项是否满足运算输入的参数需求,若不满足,则将提示用户先行对依赖模块进行调用,获取依赖项中的输入参数后再进行下一步的运算分析。

图1 系统功能模块

表1 模块依赖关系

续表

2 系统架构设计

2.1 系统总体架构设计

本系统的总体架构分为3个层次,分别为表现层、逻辑层以及数据层,如图2所示。数据层为系统提供所分析区域的数据存储、访问、编辑以及管理功能;逻辑层通过实现各个震害分析算法,为系统提供业务服务功能;表现层为系统的使用用户提供系统交互的界面。下文将分别对系统的3个层面进行介绍。

图2 系统总体架构

(1)数据层。系统中所用的数据分为属性数据及空间数据两部分。属性数据直接以二维表的形式存放于MSSQL关系型数据库中(尹善华,2007),而空间数据将通过Spatial Database Engine(SDE)在MSSQL上建立的企业级空间数据库存放。使用MSSQL以及SDE对系统数据进行存放和维护能够应对多并发的使用情况,保障系统数据层在大访问量下的正常运转。

(2)逻辑层。系统逻辑层是通过Managed Extensibility Framework(MEF)实现系统动态组合的插件式框架设计。首先需要构建地震灾害风险动态评估系统的基础框架,为众多功能插件提供公共容器;而后通过地震灾害风险评估业务上的功能需求和业务逻辑分析,分别设计和实现各系统功能模块(王晓青等,2004;王希波,2006;姜慧等,2016);最后通过系统基础框架以及功能模块间的耦合规则,实现系统对各功能插件的自动识别及组合。

(3)表现层。该层通过Windows Presentation Foundation(WPF)技术,使用XAML设计了一系列系统面板。该层是用户调用震害风险评估系统各个功能模块的入口,也是对灾害风险评估结果进行展示的出口,最后生成地震灾后辅助决策报告。

2.2 模块架构设计

模块化架构的设计理念为:完成系统基础框架平台、即插件的宿主程序的搭建后,在后期加入的大部分功能无须更改基础平台的源代码,只要依据预先定义的基本服务接口和插件接口规范编写不同的功能模块即可。因此,本模块化城镇地震灾害风险评估系统在对系统基础框架平台不提出新需求的情况下,不需要修改宿主程序即能够依据其接口通信规范,快速地由多人分别进行不同新风险评估功能模块的开发。对于宿主程序来说并不需要获取插件的具体功能,在主程序启动时会检索插件信息,并根据预定的接口装载插件,从而形成一套具有强大可扩展能力的地震灾害风险评估软件模块体系。

基于以上开发思路,在本系统的具体开发中,采用了基于.NET的MEF类库进行模块架构的设计与构建。系统开发所采用的MEF类库的架构图如图3所示。MEF的核心是可组合组件ComposablePart,架构图中的Part1、Part2、PartN即为MEF架构的可组合组件,它是由ComposablePartDefintion来描述和创建的。每一个可组合组件通过定义ExportDefintion向模块化城镇地震灾害风险评估系统基础框架平台提供功能,系统平台通过定义ImportDefinition来引用该组件的功能,通过这种耦合定义形成一个可动态组合的模块化系统。在新创建一个可组合功能插件后,只需要将该组件放在系统指定的插件目录下,系统基础框架平台即可以在进行初始化工作时通过ValueResolver搜索组件所在的目录来加载该功能插件,实现功能模块的自由组合。

图3 MEF架构

3 系统整体实现

基于以上对模块化城镇地震灾害风险评估系统的业务功能分析及其技术架构的设计,本系统使用基于.NET Framework的C#编程语言进行源代码的编写,使用基于WPF技术的XAML语言设计系统的整体界面,通过MSSQL数据库进行数据存储并使用ArcGIS Server发布空间数据。系统进行了整体框架的搭建,并在此基础上完成了对上述设计的功能模块的开发。图4显示了具有完整功能的系统主界面,图5为系统在某设定地震下计算得到的建筑物震害分析结果示例:通过设定地震参数下计算出来的峰值加速度值,结合易损性矩阵以及建筑物结构类型等对建筑物震害进行分析运算,对运算结果在各个乡镇范围内用扇形图表示建筑物5个破坏等级的面积比,其中分别用5种设色来表述建筑物的5个破坏等级。

图4 系统主界面

图5 系统运行结果

如前所述,为了管理众多功能模块和满足不同用户需求,系统实现了模块管理功能,用于生成给予特定用户以具有特定功能的模块组合而成的新系统。图6为系统的模块管理界面,管理员可任意选择所需的功能模块,系统会自动判别并调用所选取模块对应的依赖模块,最终生成一个能独立运行的子系统。例如,图6中只选取了“建筑物震害分析”模块,生成的子系统中(图7)已自动调用其所依赖的“设定地震”模块,从而保证了系统的独立运行。通过这种方式,实现了功能模块按需组合的系统设计理念,也为系统后续添加的新插件模块提供了高效的模块管理方案。

图6 模块管理界面

图7 模块化生成的仅有建筑物震害分析功能的子系统界面

4 结语

本文通过分析以往地震灾害风险评估系统的设计和开发经验,提出、设计并实现了一套模块化城镇地震灾害风险评估系统软件。用.NET Framework开发平台,结合MSSQL数据库、SDE空间数据库引擎,利用WPF矢量化界面显示技术和MEF插件式开发框架完成了编程开发。该系统可满足城镇地震灾害风险评估工作中对不同用户提供不同功能的自主组合需求,并为未来添加新的功能模块、进行系统功能的升级提供了更有效的解决方案。

陈洪富,孙柏涛,陈相兆等,2013. HAZ-China地震灾害损失评估系统研究.土木工程学报,46(S2):294—300.

高杰,冯启民,莫善军,2005.城市地震灾害预测及其信息管理通用程序研究.世界地震工程,21(1):75—80.

姜慧,王立新,严琨等,2016.大型桥梁地震安全性在线监测与评估系统研究.震灾防御技术,11(2):261—271.

王希波,2006.城市地震应急辅助决策系统研究.南京:东南大学.

王晓青,丁香,2004.基于GIS的地震现场灾害损失评估系统.自然灾害学报,13(1):118—125.

尹善华,2007.对象模式与关系数据模式的映射研究.长沙:中南大学.

朱天梅,2012.基于程序聚类的软件模块化质量演化监控技术研究.上海:复旦大学.

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)、广东省公益研究与能力建设专项(2015A020217007)

2017-04-12

陈焜浩,男,生于1992年。助理工程师。研究方向:地理信息。E-mail:20122600047@m.scnu.edu.cn

王立新,男,生于1976年。正研级高工。研究方向:地震工程、震害预测。E-mail:wlxustc@hotmail.com

陈焜浩,王立新,刘智,吴华平,2017.模块化城镇地震灾害风险评估系统设计、开发与实现.震灾防御技术,12(4):947—955.

猜你喜欢
功能模块插件模块化
模块化自主水下机器人开发与应用
模块化住宅
自编插件完善App Inventor与乐高机器人通信
马勒推出新型模块化混动系统
基于OSGi的军用指挥软件插件机制研究
ACP100模块化小型堆研发进展
基于jQUerY的自定义插件开发
商业模式是新媒体的核心
基于ASP.NET标准的采购管理系统研究
高校二手交易网络平台功能及技术框架分析与设计