文章快速检索  
  高级检索
面向地震应急响应的松耦合研判模型管理机制
李勤勇1, 宋建功1, 高世伟1,2, 杜建海1, 吕江花1, 马世龙1     
1. 北京航空航天大学 计算机学院, 北京 100083;
2. 北京航天控制仪器研究所, 北京 100039
摘要: 由于面向地震应急响应系统(EERS)的研判模型有其自身特点,传统决策支持系统中模型管理方法并不能较好地满足其管理需求。提出一种面向地震应急响应的松耦合研判模型管理机制(LC-MM),包括3个部分:① 研判资源建模环境,由研判模型描述/控制语言(MDCL)和数据源描述/控制语言(DSDCL)组成;② 研判资源协同交互框架,该框架分为4层,主要包括应用环境上下文App_Context、模型调用者Model_Invoker和数据通道Data_Channel 3个Agent组件;③ 研判资源协同交互协议,该协议将研判任务、研判模型和数据源的紧耦合关系分解为上述Agent组件之间的协同交互关系。实际应用表明,LC-MM能够有效屏蔽研判资源的异构性,提高EERS的可扩展性、动态适应性以及平台无关性,能够较好地满足EERS中研判模型的管理需求。
关键词: 模型管理     数据源     决策支持系统     Agent系统     地震应急响应    
A loose-coupled mechanism of analysis model management for earthquake emergency response
LI Qinyong1, SONG Jiangong1, GAO Shiwei1,2, DU Jianhai1, LYU Jianghua1, MA Shilong1     
1. School of Computer Science and Engineering, Beijing University of Aeronautics and Astronautics, Beijing 100083, China;
2. Beijing Aerospace Control Instrument Research Institute, Beijing 100039, China
Received: 2016-04-18; Accepted: 2016-07-14; Published online: 2016-11-07 09:55
Foundation item: National Natural Science Foundation of China (61300007); the Fundamental Research Funds for the Central Universities (YWF-15-GJSYS-106, YWF-14-JSJXY-007); State Key Laboratory of Software Development Environment Free Exploration Fund (SKLSDE-2015ZX-09, SKLSDE-2014-ZX-06)
Corresponding author. LYU Jianghua, E-mail:jhlv@nlsde.buaa.edu.cn
Abstract: Because analysis models in earthquake emergency response system (EERS) have special characteristics, traditional model management methods in decision support system are not suitable well for the management requirement of analysis models. We propose a loose-coupled mechanism, called loose-coupled mechanism for model management (LC-MM), for earthquake emergency response. LC-MM is composed of three parts:1) an analysis resources modeling environment, which consists of 2 modeling languages, i.e., model description and control language (MDCL) and data source description and control language (DSDCL); 2) an Agent-based framework for analysis resources coordinating and interacting, which is divided into 4 layers and 3 Agent components, i.e., App_Context, Model_Invoker and Data_Channel; 3) a protocol for Agent-based components coordinating. The protocol changes the tight-coupled relationship between analysis models, data sources and tasks into a loose-coupled relationship through Agent components. Practical application shows that LC-MM can effectively cover up analysis resources' heterogeneity and improve the scalability, dynamic flexibility and flat-independency of EERS. The proposed mechanism can match the management requirement of analysis models in EERS.
Key words: model management     data source     decision support systems     Agent-based systems     earthquake emergency response    

地震灾害发生后,为了提高救援质量,需要及时掌握一定程度的相关区域的受灾情况。然而,由于地震后震区道路、通讯设施等均遭受不同程度的损毁,相关灾情信息很难在短时间内被有效获取[1]。灾情信息获取时间长与应急决策时间短的矛盾成为地震应急响应决策过程的主要矛盾。

地震应急响应系统是一类决策支持系统,通过实时监控震情告警信息源捕获地震事件。一旦捕获到地震事件,则立即使用相关研判模型对地震震情、灾情进行研判。研判模型一般由行业专家提出[2]。研判模型的计算需要相关区域的基础地理数据、业务数据以及实时灾情数据支持,本文中将上述数据统称为支持研判模型计算的数据源,简称数据源;将研判模型和数据源统称为研判资源。

目前地震应急响应系统在设计实现时一般将研判模型、数据源和研判任务紧耦合,封装为计算组件。这样设计的缺点在于:① 有可能阻碍应用系统的研发进度;② 不利于在系统使用过程中对研判模型进行更新和扩展;③ 不利于在系统使用过程中对数据源进行更新和扩展;④ 如果模型计算过程中出现错误或意外情况,难以进行分析和错误定位。

为了解决上述问题,相关研究者对决策支持系统中的模型管理[3]问题进行了深入研究,主要集中在4个方面[4]:模型表示[5-6]、模型集成[7]、模型组合[8-9]以及模型实现[10-11]。主要方法和技术包括结构化建模方法 (SM)[12-16]、基于过滤器空间 (filter space) 的方法[17-19]、基于面向对象的方法[20]和基于Web Service的方法[21-23]等。这些方法在一定程度上解决了传统决策支持系统中模型表示以及共享的问题。

不同于传统决策支持系统中使用的模型[24-25],地震应急响应过程中使用的研判模型有其自身特点和应用需求:① 研判模型输入变量包含多种数据类型:既包括普通数据也包括地理空间数据和几何数据等[26],因此可以将此类研判模型归类于地理空间模型[27];② 研判模型需要支持实时多源多数据类型的灾情数据接入[28];③ 研判模型的计算过程可以分为2个阶段,即数据获取阶段和计算阶段;④ 由于涉及海量地理空间数据,研判模型的计算过程可能持续较长时间[29],这就要求研判模型能够灵活适应计算环境。

国内外很多研究者对地理空间模型的表示和共享进行了深入研究,主要方法包括:基于脚本的方法[30-31]、基于Web Service的方法[32-33]和元模型 (meta model) 方法[34-35]。基于脚本的方法在编排模型执行顺序上具有一定优势,但缺点在于没有将研判模型、数据源以及研判任务松耦合,可扩展性不强;Web Service是一种分离具体实现过程和调用接口的有效途径,但是不管使用WSDL或是REST描述Web服务时都缺乏对空间地理对象、几何对象等复杂数据类型的描述能力,因此难以符合地震应急研判模型的表示需求;基于元模型的表示方法过于繁琐,实现较为复杂,并不符合地震应急响应的应用需求。

针对上述问题,本文提出一种面向地震应急响应的松耦合研判模型管理机制 (LC-MM)。LC-MM包括3个部分:研判资源建模环境、研判资源协同交互框架以及研判资源协同交互协议。研判资源建模环境由2种建模语言组成:研判模型描述/控制语言 (MDCL) 和数据源描述/控制语言 (DSDCL)。在研判资源建模环境的基础上,设计一种基于Agent的研判资源协同交互框架,并基于该框架设计了一组协同交互协议,该框架和协议将研判模型、数据源和研判任务之间的紧耦合关系分解为App_Context、Model_Invoker和Data_Channel 3个Agent部件之间的协同交互关系。

对LC-MM的实际应用表明,该机制能够有效降低研判模型、数据源和研判任务之间的紧耦合性,提高此类地震应急系统的可扩展性、动态适用性和平台无关性,从而为提高地震应急决策质量提供一定帮助。

1 研判资源形式化建模 1.1 研判模型

定义1 研判模型Analysis_Model=(Model_Name, Inputs, Params, PROC, Outputs)。其中:Model_Name为研判模型名称,唯一标识一个研判模型;Inputs为该研判模型的输入变量序列;Params为该研判模型的参数序列;PROC为该研判模型的计算过程;Outputs为该研判模型的输出变量序列。

以下分别给出输入变量序列Inputs、参数变量序列Params以及输出变量序列Outputs的形式化定义。

Inputs= < InputVar1, InputVar2, …, InputVarn>;

InputVar=(Input_Name, Input_Type);

Params= < Param1, Param2, …, Paramn>;

Param=(Param_Name, Param_Type);

Outputs= < OuputVar1, OutputVar2, …, OutputVarn>;

OutputVar=(Output_Name, Output_Type);

M_Control_APIS={is_exist_model, getModel, send_modelexist_flag, list_models, verify_model };

其中:Input_Name、Param_Name以及Output_Name分别为输入变量、参数变量和输出变量的名称;Input_Type、Param_Type以及Output_Type分别为输入变量、参数变量和输出变量的类型;M_Control_APIS为研判模型支持的控制引用程序端口 (API)。

在对研判模型进行形式化描述的基础上,本文设计了面向地震应急响应的研判模型描述/控制语言MDCL,使用巴克斯范式 (BNF) 描述,如下所示。

< model>::= < model_description> < model_body>;

< model_description >::= < model_name> < model_memo>;

< model_body>::= < params> < inputs> < proc> < outputs>;

< params>::={ < param>};

< param>::= < param_name> < param_type>;

< param_type>::= < simple_type> < geometry_type> < complex_type>;

< inputs>::= < input>{ < inputs>};

< input>::= < input_name> < input_type>

< input_type>::= < simple_type>

< geometry_type> < complex_type>;

< proc>::= < executeable_program> < program_executor_path>;

< proc_type>::=classdll{scripts};

< outputs>::= < output>{ < output>};

< output>::= < output_name> < output_type>;

< simple_type>::=stringfloatintdouble…;

< simple_type_coll>::={simple_type};

< geometry_type>::= < point> < line>

< polygon> < vector> < raster>;

< geometry_type_coll>::={geometry_type};

< complex_type>::={simple_type}{gis_type}intensity_circle_type|user_define_type;

< complex_type_coll>::={complex_type};

研判模型由模型描述 (model_description) 和模型体 (model_body) 组成。模型描述包括模型名称 (model_name) 和模型备注 (model_memo),模型名称唯一标识一个研判模型。模型体包括模型参数序列 (model_params)、模型输入变量序列 (model_inputs)、模型计算过程 (proc) 和模型输出变量序列 (model_outputs) 组成。

研判模型中,参数名 (param_name) 是一个字符串,参数类型可为简单类型 (simple_type) 或空间类型 (geometry_type) 或复杂类型 (complex_type);模型输入变量 (model_input) 由2个部分组成:输入变量名称 (input_name) 和输入变量类型 (input_type)。模型计算过程 (proc) 由2个部分组成:可执行程序 (executeable_program) 以及执行该程序的语言解释器或调用接口所在的路径 (program_executor_path)。模型输出变量 (model_output) 由2个部分组成:输出变量名称 (output_name) 和输出变量类型 (output_type)。

MDCL中规定简单类型由XML Schema中内置的基础数据类型组成,如string型、float型、double型等。为了适应面向地震应急响应的研判模型表示需求,MDCL中基于地理标记语言GML定义了几何类型 (geometry_type),包括点 (point)、线 (line)、面 (polygon) 以及圆形 (circle)、椭圆型 (ellipse)、矩形 (rectangle) 等。所有AMD/CL中定义的几何类型均继承了GML中的AbstractGeometryType类型,这样设计的优点在于表示相关几何对象时 (如地震影响场) 较为简单,且GML本身支持坐标投影定义以及地图单位定义,方便系统实现。如果系统需要表示MDCL中尚未定义的几何对象,用户就可以通过继承MDCL中已存在的类型定义自定义类型,这就增强了该语言的可复用性以及与外部系统交互的能力。

1.2 数据源

地震应急响应过程中使用的数据主要包括业务数据、基础地理数据和实时灾情数据等。其中,业务数据是指除基础地理数据之外,系统运行所必须的若干数据:如地震事件属性、模型参数、系统配置等,主要保存在关系数据库中;基础地理数据一般分为2类:矢量数据 (Vector Data) 和栅格数据 (Raster Data),一般存放在空间数据库中。实时灾情数据是灾害发生后通过若干信息源实时获取的数据,如死亡、受伤人数分布情况等。

定义2 数据源Data_Source定义为一个4元组,Data_Source=(DS_Name, DS_Type, DS_Addr, Data_Set),其中:DS_Name为数据源名称;DS_Type为数据源类型,DS_Type=(DB, GIS, Text, WebPage);DS_Addr为数据源地址;Data_Set为数据源包含的数据集合。

下面给出数据集合Data_Set的形式化描述:

Data_Set=set of Data

Data=(Data_Name, Data_Objects, Data_Operation)

Data_Objects=set of Data_Object

Data_Object=(Obj_Name, set of Obj_Val)

Obj_Val=DataObjecObject

Operation={GET, PUT, POST, DELETE}

DS_Control_APIS={hasDS, execute_bind, sendDataObjs}

定义3 数据请求Data_Req是对数据源中数据的请求操作,定义为Data_Req = (Req_Id, DS_Name, Operatoin, Predicates, Ret_Format),其中:Req_Id为数据请求Id; DS_Name为数据源名称; Operation表示数据操作; Predicates为用于确定数据的查询谓词集合; Ret_Format为返回数据的封装格式。

查询谓词Predicate=∨RiCi,其中:Ri为逻辑连接符;Ci为一个布尔表达式,Ci=xi op cixi为查询变量名,ci为一个常量或向量,op为一个返回True或False的布尔操作,定义op={=, ≠, >, < , ≥, ≤}∪Opspatial,Opspatial={Equals, Disjoint, Intersects, Touches, Crosses, Overlaps, Within, Contains},Opspatial为空间布尔操作集合。

DSDCL用来表示研判模型计算所需的数据以及相关操作。DSDCL由2部分组成:数据源描述语句和数据源控制API。数据源描述语言用于描述一个研判模型进行计算时所需的数据对象和相关数据操作;数据源控制API用来与相关数据源交互,如查询数据源是否存在、获取数据等操作。基于数据源和数据请求的形式化定义,给出数据源描述语言DSDCL的BNF描述,如下所示。

data_source::= < data_source_description> < data_set>;

< data_source_description>::= < ds_name> < ds_addr> < ds_type> < ds_memo>;

< ds_type>::=spatial|db|weburl|text|…;

< ds_memo>::=string;

< data_set>::={ < data>};

< data>::= < data_name> < data_type> < data_operation>{ < data_object>};

< data_object>::= < data_object_name>, { < data_object_value>};

< data_object_value>::= < data_object> < scalar>;

< data_operation>::= < operation_type> < operation_cmd>;

< operation_type>::=GET|PUT|POST|DELETE;

< operation_cmd>::=string;

数据源由2个部分组成:数据源描述 (data_source_description) 和数据集 (data_set)。数据资源描述包括数据源名称 (ds_name)、数据源地址 (ds_addr)、数据源类型 (ds_type) 以及数据源备注 (ds_memo) 组成。其中数据源名称唯一标识一个数据源。

数据 (Data) 由3个部分组成,数据名称 (data_name)、数据类型 (data_type)、数据操作 (data_operation) 和一组数据对象 (data_object) 组成。数据对象又由数据对象名称 (data_object_name) 和一组数据对象值 (data_object_value) 组成。数据对象值递归地定义为其或者是一个数据对象,或者是一个不可再分的值。数据操作 (data_operation) 定义为操作类型 (operation_type) 和操作命令 (operation_cmd),操作命令是一个字符串,由数据源支持的相关操作命令或简单函数组成。

2 研判资源协同交互框架

MDCL和DSDCL分别对研判模型和数据源进行了封装,这样做的目的是为了屏蔽其异构性。为了将研判模型、数据源和研判任务进一步松耦合。本节设计了一种基于Agent的研判资源协同交互框架。该框架基于上文描述的2种语言,将传统的研判模型与数据源的紧耦合关系分解为3个Agent组件之间的协同交互关系。

研判资源协同交互框架在架构上分为4层,如图 1所示,从上至下分别是:任务层、代理层、中间件层和资源层。任务层由研判任务对象Task组成,2.1节将给出研判任务对象的相关定义。代理层主要由应用环境上下文App_Context组成,负责相关接口调用的转发以及模型实例与数据对象的交互。中间件层包括2个核心组件:Model_Invoker负责与研判模型交互,Data_Channel负责与数据源交互。Model_Invoker组件中包括3个主要模块:模型加载器Loader、模型映射器Mapper和模型执行器Executor,详见2.3节。Data_Channel组件中包括4个主要模块:数据请求接收器Req_Receiver、数据请求分析器Req_Analyser、命令发送器Cmd_Sender和数据中心Data_Hub。资源层包括研判模型和相关数据源,其中研判模型使用第1节提出的MDCL脚本进行编写。代理层的App_Context组件与中间件层的Model_Invoker、Data_Channel组件共同构成3-Agent结构,研判模型的计算过程即转换为上述三者之间的协同交互过程。下面对该框架的中的主要部件和模块做出说明。

图 1 研判资源协同交互框架 Fig. 1 Analysis resources coordinating and interacting framework
2.1 研判任务

研判任务Task定义为一个3元组:

Task=(Name, Process, Report)

其中:Name表示研判任务名称,唯一标识一个研判任务;Process表示研判流程,定义了任务要调用的模型名称以及任务所需数据的数据源描述,即可表示为Process=(Model_Name, DSDCL_File_Name);Report表示研判任务结果表单,初始状态下包含初始参数序列 < init1, init2, …, initk>,任务执行结束后,将得到的模型研判结果填入表单。

则Task可表示为Task=(Name, < init1, init2, …, initk>, Model_Name, DSDCL_File_Name),DSDCL_File_Name表示一个使用DSDCL编写的脚本,执行该脚本即得到相关研判模型所需的相关数据对象。

2.2 应用环境上下文

应用环境上下文 (App_Context) 由数据源集合、业务数据序列和参数数据序列、初始参数序列3个部分组成。初始状态下,应用环境上下文为空。

App_Context定义为一个3元组:App_Context=({DS1, DS2, …, DSm}, < (a1, cond1, ds1), (a2, cond2, ds2), …, (an, condn, dsn)>, < init1, init2, …, initk>)。其中:{DS1, DS2, …, DSm}表示数据源集合,其中有些是参数数据,有些是业务数据; < (a1, cond1, ds1), (a2, cond2, ds2), …, (an, condn, dsn)>表示具体的业务数据序列或参数数据序列,ai=ci表示参数数据,ci为一个向量;ai=bi表示业务数据,condi是一个布尔表达式,dsi表示ai所在的数据源; < init1, init2, …, initk>表示初始参数序列,例如 < 经度、纬度、震级、深度>。

应用环境上下文由任务决定,任务和模型端、数据源端交互,然后实例化App_Context。

2.3 模型调用者

模型调用者 (Model_Invoker) 负责查询应用研判模型是否存在、对模型进行协议检查和执行研判模型的计算过程等。

Model_Invoker=(Loader, Mapper, Executor),其中:Loader为加载器,负责模型的加载,对模型进行协议检查、解析模型;Mapper为映射器,负责建立模型输入变量和参数序列到数据资源的映射,将模型输入变量和模型参数实例化;Executor为执行器,负责模型计算过程的执行。

研判模型调用者负责调用模型,由模型加载器、映射器和执行器3个部分构成。模型加载器负责加载模型,对模型进行协议检查,然后解析研判模型;映射器负责建立模型输入变量序列和参数序列到数据资源的映射,即将模型输入变量和模型参数实例化;执行器负责研判模型计算过程的执行。

2.4 数据通道

数据通道 (Data_Channel) 是应用系统向数据源请求数据的中介,由4个模块组成:Data_Channel=(Req_Receiver, Req_Analyser, Cmd_Sender, Data_Hub),其中:请求接收器Req_Receiver用于接收数据请求端发送的数据请求;数据请求分析器Req_Analyser负责数据请求的协议检查、解析,然后将数据请求映射为具体的数据查询命令;命令发送器Cmd_Sender用于连接数据资源,然后向数据源发送命令;数据中心Data_Hub负责将数据资源端返回的数据返回给数据请求端。

3 研判资源协同交互协议

在给出研判资源协同交互框架以后,本节提出一种研判资源协同交互协议。该交互协议分为5个阶段,本节分别对每个阶段进行简述,给出每个阶段的交互过程图以及伪代码描述。

阶段1 通过研判模型名称检查所调用的研判模型是否存在,如图 2所示。

图 2 阶段1:检查研判模型是否存在 Fig. 2 Phase 1 : Checking existence of analysis model

阶段1的伪代码描述如下所示:

步骤1 task.is_exist_model (app_context, model_name)。

步骤2 app_context.is_exist_model (model_invoker, model_name)。

步骤3 model_invoker.is_exist_model (model, model_name)。

步骤4 is_exist←model.is_exist_model (model_name)。

步骤5 model.sendExistFlag (model_invoker, is_exist)。

步骤6 model_invoker.sendExistFlag (app_context, is_exist)。

步骤7 app_context.sendMExistFlag (task, is_exist)。

阶段2 通过DSDCL脚本检查所需数据源是否存在,如图 3所示。

图 3 阶段2:检查数据源是否存在 Fig. 3 Phase 2: Checking existence of data source

阶段2的伪代码描述如下所示:

步骤1 task.is_exist_ds (app_context, dsdcl_file, init[])。

步骤2 app_context.is_exist_ds (data_channel, dsdscl_file, init[])。

步骤3 ds_name←data_channel.parse_name (dsdcl_file, init[])。

步骤4 data_channel.is_exist_ds (data_sources, ds_name)。

步骤5 is_exist←data_sources.hasDS (ds_name)。

步骤6 data_sources.sendExistFlag (data_channel, is_exist)。

步骤7 data_channel.sendExistFlag (app_context, is_exist)。

步骤8 app_context.sendDSExistFlag (task, is_exist)。

阶段3 应用环境上下文App_Context初始化,如图 4所示。

图 4 阶段3:App_Context初始化 Fig. 4 Phase 3: App_Context initialization

阶段3的伪代码描述如下所示:

步骤1 task.init_appctex (app_context, dsdcl_file, init[])。

步骤2 app_context.req_data (data_channel, dsdcl_file, init[])。

步骤3 data_req←data_channel.parse_req (dsdcl_file, init[])。

步骤4 data_cmd[], ret_data_format←data_channel.mappingCmds (data_req, init[])。

步骤5 data_channel.send_cmds (data_sources, data_cmd[], ret_data_format)。

步骤6 data_objs←data_sources.execute_bind (data_cmd[], ret_data_format)。

步骤7 data_sources.sendDataObjs (data_channel, data_objs)。

步骤8 data_channel.sendDataObjs (app_context, data_objs)。

步骤9 is_init←app_context.initializing (data_objs)。

步骤10 app_context.sendInitFlag (task, is_init)。

阶段4 研判模型实例化,如图 5所示。

图 5 阶段4:研判模型实例化 Fig. 5 Phase 4: Analysis model instancing

阶段4的伪代码描述如下所示:

步骤1 task.instModel (app_context, model_name)。

步骤2 app_context.instModel (model_invoker, model_name)。

步骤3 model_invoker.instModel (models, model_name)。

步骤4 m←model.getModel (model_name); m to model_invoker。

步骤5 is_legal←model_invoker.verify_model (m)。

步骤6 if is_legal==true go to步骤7else ERROR。

步骤7 model_invoker.mapping_model (app_context, m)。

步骤8 model_variables[]←app_context.binding_data ()。

步骤9 is_inst←model_invoker.instmodel (m, model_variables); is_inst to app_context。

步骤10 app_context.sendInstFlag (task, is_inst)。

阶段5 执行研判模型计算过程,获得计算结果,如图 6所示。

图 6 阶段5:执行研判模型计算过程 Fig. 6 Phase 5: Executing analysis model computing process

阶段5的伪代码描述如下所示:

步骤1 task.req_exec_model (app_context, model_name)。

步骤2 app_context.req_exec_model (model_invoker, model_name)。

步骤3 outputs←model_invoker.execute (model_name)。

步骤4 model_invoker.sendResult (app_context, outputs)。

步骤5 app_context.sendResult (task, outputs)。

步骤6 report←task.fillReport (outputs)。

4 应用系统

基于本文提出的LC-MM机制,设计并实现了某国际强震应用处置系统,目前该系统已稳定运行,承担了地震应急部门日常的震情监测、灾情研判和灾情汇报等工作,下面对国际强震应用处置系统进行简述。

国际强震应用处置系统架构图如图 7所示。国际强震应用处置系统在架构上分为4层,分别是资源层、组件层、业务层以及展示层。资源层主要包括研判模型和多源灾情数据源;组件层包括2个部分,即本文提出的LC-MM和基于地理信息系统 (GIS) 展示平台的用户界面设计语言 (G-UIDL) 地震研判结果可视化建模部分 (该部分将另文描述);业务层向展示层提供国际强震应用处置系统中的核心功能,包括震情接收器模块、研判任务调度模块,研判数据接口以及系统负载均衡模块等;展示层包括研判结果可视化展示界面、专家人工干预界面、研判报告生成界面以及研判资源建模环境等。研判资源建模环境如图 8所示、研判任务管理界面如图 9所示。

图 7 国际强震应用处置系统架构图 Fig. 7 Architecture of international strong earthquake handling system
图 8 研判资源建模环境界面 Fig. 8 Interface of analysis resources modeling environment
图 9 研判任务管理界面 Fig. 9 Interface of analysis task management

本文提出的LC-MM机制有以下优点:

1) 相对于传统手段,LC-MM机制可以提高地震应急响应系统的研发效率。由于地震应急响应系统既涉及各种复杂的研判模型,而研判模型的计算又需要海量的基础数据进行支持,而根据实际经验来看,研判模型和数据源往往难以同时准备充分,即研判模型和数据源有可能不匹配,这就会阻碍系统的研发进度。由于LC-MM机制将研判模型、数据源和研判任务松耦合,在开发研判模型时能够对数据源灵活配置,然后进行后续开发,而不必等到存在匹配的数据源时再进行后续开发,这就在一定程度上提高了系统的开发效率。

2) 相对于传统手段,LC-MM机制提高了地震应急响应系统的可扩展性和动态适应性。由于灾害应急领域的复杂性,研判模型需要根据最新的研究成果进行修改,数据源也需要适应灾害事件的发展而更新,以防止“数据老化”等问题;然而,如果研判模型、数据源紧耦合在系统中,则难以对研判模型和数据源进行更新和扩展。由于LC-MM框架为研判资源建立了统一的建模环境,支持对研判模型、数据源的灵活配置,这就在一定程度上解决了研判模型和数据源的更新和扩展问题,提高了系统的扩展性和可适应性。

3) 相对于传统手段,LC-MM机制提高了地震应急响应系统的平台无关性。由于将研判模型使用MDCL语言进行封装,研判模型的计算过程独立于计算环境,有助于提高系统性能。由于此类面向地震应急响应的研判模型需要对海量地理数据进行读取和运算,所以需要具有灵活的在不同的计算环境中进行迁移的能力,如果将研判模型、数据源和研判任务紧耦合,则难以实现计算环境的灵活迁移。LC-MM机制将研判模型使用MDCL语言进行描述,将研判模型的计算过程与研判模型本身松耦合,有助于快速迁移计算环境。

4) 相对于传统手段,使用LC-MM机制有助于进行错误分析和定位。传统手段将研判模型和数据资源、研判任务紧耦合,封装为计算构件,对外表现为黑盒,在系统运行时,如果计算过程出现错误,由于计算构件内部状态不可见,对错误进行分析和定位将变得困难。由于LC-MM将研判模型和数据源松耦合,分别使用MDCL语言和DSDCL语言进行描述,一旦系统出现错误,则能够较快的确定错误位置和操作原因,研判模型的计算执行过程和数据源的汇聚过程透明,利于错误分析和错误定位。

5 结论

针对地震应急响应领域中研判模型的特点和管理需求,提出一种面向地震应急响应的松耦合研判模型管理机制LC-MM,研究成果如下:

1) 分析了地震应急响应中研判模型的特点,对地震应急响应过程中的研判模型、数据源 (本文统称为研判资源) 进行形式化描述,并设计实现了研判模型描述/控制语言MDCL和数据源描述语言DSDCL,从而屏蔽研判模型和数据源的异构性。

2) 基于上述2种建模语言,设计了一种基于Agent的研判资源协同交互框架,该框架分为4层,核心组件包括应用环境上下文App_Context、模型调用者Model_Invoker以及数据通道Data_Channel。

3) 为研判资源协同交互框架提出一种研判资源协同交互协议,将研判模型的计算过程分解为Agent组件之间的协同交互过程,该协议由5个阶段组成;通过该协议将研判任务、研判模型和数据源的紧耦合关系转换为Agent组件之间的协同交互关系。

4) 基于提出的LC-MM框架,设计并实现了国际强震救援应用处置系统,目前该系统已稳定运行,从实际效果来看,LC-MM能够有效提高地震应急响应系统的可扩展性、动态适应性和平台无关性,对模型运行时出现的错误易于定位和分析,能够较好地满足地震应急响应过程中的研判模型管理需求。

参考文献
[1] 聂高众, 安基文, 邓砚. 地震应急灾情服务进展[J]. 地震地质, 2012 (4): 782–791.
NIE G Z, AN J W, DENG Y. Advances in earthquake emergency disaster service[J]. Seismology and Geology, 2012 (4): 782–791. (in Chinese)
[2] 帅向华, 姜立新, 王栋梁. 国家地震应急指挥软件系统研究[J]. 自然灾害学报, 2009, 18 (3): 99–104.
SHUAI X H, JIANG L X, WANG D L. Study of national earthquake emergency command software system[J]. Journal of Natural Disasters, 2009, 18 (3): 99–104. (in Chinese)
[3] POWER D J, SHARDA R. Model-driven decision support systems:Concepts and research directions[J]. Decision Support Systems, 2007, 43 (3): 1044–1061. DOI:10.1016/j.dss.2005.05.030
[4] KRISHNAN R, CHARI K. Model management:Survey, future research directions and a bibliography[J]. Interactive Transactions of OR/MS, 2000, 3 (1): 3–24.
[5] 刘懿. 松耦合模型驱动的流域水资源管理决策支持系统研究及应用[D]. 武汉: 华中科技大学, 2013.
LIU Y.Research on loose-coupling model-driven decision support system for basin water resources management[D].Wuhan:Huazhong University of Science & Technology, 2013(in Chinese).
[6] 胡东波. 模型驱动的决策支持系统研究[D]. 长沙: 中南大学, 2009.
HU D B.A study on model-driven decision support system[D].Changsha:Central South University, 2009(in Chinese).
[7] 蔡树彬, 明仲, 李师贤, 等. 基于本体的模型集成[J]. 电子学报, 2009, 37 (4): 713–719.
CAI S B, MING Z, LI S X, et al. Ontology based model integration[J]. Acta Electronica Sinica, 2009, 37 (4): 713–719. (in Chinese)
[8] 邵荃, 翁文国, 何长虹, 等. 突发事件模型库中模型的层次网络表示方法[J]. 清华大学学报 (自然科学版), 2009, 49 (5): 625–628.
SHAO Q, WENG W G, HE C H, et al. Representation method for hierarchy network models for emergency analyses[J]. Journal of Tsinghua University (Science and Technology), 2009, 49 (5): 625–628. (in Chinese)
[9] HUANG H, HE L, CHEN X, et al. Automatic composition of heterogeneous models based on semantic Web Services[J]. International Journal of Parallel Programming, 2015, 43 (3): 339–358. DOI:10.1007/s10766-013-0279-0
[10] 李牧南, 彭宏. 基于Agent的模型表示与模型复合[J]. 计算机应用, 2006, 26 (4): 891–894.
LI M N, PENG H. Model representation and model composite based on Agent[J]. Computer Applications, 2006, 26 (4): 891–894. (in Chinese)
[11] 仲秋雁, 张笑楠, 王恒. 应急决策支持系统中模型表示方法研究[J]. 计算机应用与软件, 2011, 28 (5): 184–188.
ZHONG Q Y, ZHANG X N, WANG H. Research on model presentation method in emergency decision support system[J]. Computer Applications and Software, 2011, 28 (5): 184–188. (in Chinese)
[12] ARTHUR M G. An introduction to structured modeling[J]. Management Science, 1987, 33 (5): 547–588. DOI:10.1287/mnsc.33.5.547
[13] AMIT D, OMAR E. On semantic annotation of decision models[J]. Information Systems and E-business Management, 2013, 11 (1): 93–117. DOI:10.1007/s10257-011-0184-2
[14] DEOKAR A V, EL-GAYAR O F, ALJAFARI R.Developing a semantic web-based distributed model management system:Experiences and lessons learned[C]//Hawaii International Conference on System Sciences.Piscataway, NJ:IEEE Press, 2010:1-10.
[15] EL-GAYAR O, TANDEKAR K. An XML-based schema definition for model sharing and reuse in a distributed environment[J]. Decision Support Systems, 2007, 43 (3): 791–808. DOI:10.1016/j.dss.2006.12.010
[16] DEOKAR A V, EL-GAYAR O F, TASKIN N, et al.An ontology-based approach for model representation, sharing and reuse[C]//Proceedings of 14th Americas Conference on Information Systems, AMCIS.Atlanta, GA:AIS/ICIS Administrative Office, 2008:1-9.
[17] CHARI K. Model composition using filter spaces[J]. Information Systems Research, 2002, 13 (1): 15–35. DOI:10.1287/isre.13.1.15.95
[18] CHARI K. Model composition in a distributed environment[J]. Decision Support Systems, 2003, 35 (3): 399–413. DOI:10.1016/S0167-9236(02)00116-1
[19] KAUSHAL C, TARUN K S. An implementation of a graph-based modeling system for structured modeling (GBMS/SM)[J]. Decision Support Systems, 1998, 22 (2): 103–120. DOI:10.1016/S0167-9236(97)00056-0
[20] THADTHONG B, VILAS W. ODDM:A framework for modelbases[J]. Decision Support Systems, 2008, 44 (3): 689–709. DOI:10.1016/j.dss.2007.09.005
[21] HAN X, LIU Y, XU B, et al.Meta Web Service based distributed model management and composition approach[C]//International Conference on Intelligent Systems and Knowledge Engineering.Piscataway, NJ:IEEE Press, 2010:117-122.
[22] LIU O, MA J.A Web Services approach to model management in DSS[C]//Pacific Asia Conference on Information Systems, PACIS 2005.Bangkok:DBLP, 2005:31-35.
[23] THERANI M. A Web Services framework for distributed model management[J]. Information Systems Frontiers, 2007, 9 (1): 9–27. DOI:10.1007/s10796-006-9015-2
[24] LEE K, HUH S. A model-solver integration framework for autonomous and intelligent model solution[J]. Decision Support Systems, 2006, 42 (2): 926–944. DOI:10.1016/j.dss.2005.08.003
[25] IYER B, SHANKARANARAYANAN G, LENARD M L. Model management decision environment:A Web Service prototype for spreadsheet models[J]. Decision Support Systems, 2005, 40 (2): 283–304. DOI:10.1016/j.dss.2004.01.008
[26] JAISWAL K S, WALD D J, EARLE P S, et al.Earthquake casualty models within the USGS prompt assessment of global earthquakes for response (PAGER) system[M]//SPENCE R, SO E, SCAWTHORN C.Human Casualties in Earthquakes.[S.l.]:Springer Nederlands, 2010:83-94..
[27] 冯敏, 尹芳, EULISSN H. 基于开放互操作标准的分布式地理空间模型共享研究[J]. 遥感学报, 2009, 13 (6): 1060–1073.
FENG M, YIN F, EULISS N H. Distributed geospatial model sharing based on open interoperability standards[J]. Journal of Remote Sensing, 2009, 13 (6): 1060–1073. (in Chinese)
[28] 胡迪. 地理模型的服务化封装方法研究[D]. 南京: 南京师范大学, 2012.
HU D.Research on service encapsulation method of geographical model[D].Nanjing:Nanjing Normal University, 2012(in Chinese).
[29] RICHARD J, DAN C, LUCY B. UncertWeb:Processing service:Making models easier to access on the Web[J]. Transactions in GIS, 2012, 16 (6): 921–939. DOI:10.1111/tgis.2012.16.issue-6
[30] 闾国年. 地理分析导向的虚拟地理环境:框架、结构与功能[J]. 中国科学:地球科学, 2011, 41 (4): 549–561.
LV G N. Geographic analysis-oriented virtual geographic environment:Framework, structure and functions[J]. Science China:Earth Science, 2011, 41 (4): 549–561. (in Chinese)
[31] AKBAR M, ALIABADI S, PATEL R, et al. A fully automated and integrated multi-scale forecasting scheme for emergency preparedness[J]. Environmental Modelling & Software, 2013, 39 : 24–38.
[32] MIN F, SHUGUANG L, NED H E, et al. Prototyping an online wetland ecosystem services model using open model sharing standards[J]. Environmental Modelling & Software, 2011, 26 (4): 458–468.
[33] GRANELL C, DÍAZ L, SCHADE S, et al. Enhancing integrated environmental modelling by designing resource-oriented interfaces[J]. Environmental Modelling & Software, 2013, 39 : 229–246.
[34] WEN Y N, CHENG M, LU G N, et al. Prototyping an open environment for sharing geographical analysis models on cloud computing platform[J]. International Journal of Digital Earth, 2012, 6 (4): 1–27.
[35] WEI W, PENGFEI L, NENGCHENG C, et al. A geospatial decision meta-model for heterogeneous model management:A regional transportation planning case study[J]. Arabian Journal for Science and Engineering, 2015, 41 (3): 1–14.
http://dx.doi.org/10.13700/j.bh.1001-5965.2016.0312
北京航空航天大学主办。
0

文章信息

李勤勇, 宋建功, 高世伟, 杜建海, 吕江花, 马世龙
LI Qinyong, SONG Jiangong, GAO Shiwei, DU Jianhai, LYU Jianghua, MA Shilong
面向地震应急响应的松耦合研判模型管理机制
A loose-coupled mechanism of analysis model management for earthquake emergency response
北京航空航天大学学报, 2017, 43(4): 720-730
Journal of Beijing University of Aeronautics and Astronsutics, 2017, 43(4): 720-730
http://dx.doi.org/10.13700/j.bh.1001-5965.2016.0312

文章历史

收稿日期: 2016-04-18
录用日期: 2016-07-14
网络出版时间: 2016-11-07 09:55

相关文章

工作空间