高端学术
您当前的位置:核心期刊咨询网理工论文》地震预警系统的架构设计

地震预警系统的架构设计

来源:核心期刊咨询网时间:12

摘要:摘 要:地震预警系统作为复杂的大型应用系统,需要支持多源异构观测数据的多种处理操作,客观上要求系统具备因需而变的扩展性。在顶层规划中引入基于软件架构层面的设计,通过对处理流程的宏观归纳抽象,在较高级别上勾勒出系统的运行主线,给出系统运行状况的全景图,

  摘 要:地震预警系统作为复杂的大型应用系统,需要支持多源异构观测数据的多种处理操作,客观上要求系统具备因需而变的扩展性。在顶层规划中引入基于软件架构层面的设计,通过对处理流程的宏观归纳抽象,在较高级别上勾勒出系统的运行主线,给出系统运行状况的全景图,从而构建一套易定制、易扩展,具有较强适应能力的分布式地震预警应用系统。

  关键词:地震预警;软件架构;扩展演化

  引 言

  地震预警系统作为复杂的大型应用系统,通过对海量实时波形数据进行仿真变换、捡拾震相、量测幅值、烈度预测等多种处理操作,为重大工程提供紧急处置时间,有效减少大震中的人员伤亡,是防震减灾事业实现跨越发展的客观要求。

  由于地震灾害发生机理的复杂性,要求地震预警系统能够融合多源异构的观测数据,以及支持对观测数据的多种处理操作;同时随着地震科学研究的不断进步,新的观测数据格式以及新的处理算法会不断地涌现。这些需求客观上要求地震预警系统具备较好的扩展性,从而能以较小的代价支持系统的演化完善,随需应变。

  1 软件架构简介

  IEEE/ISO/IEC 24765-2017系统和软件工程词汇中将架构定义为:架构是以组件、组件之间的关系、组件与环境之间的关系为内容的某一系统的基本组织结构,以及指导上述内容设计与演化的原理。Rational统一过程(Rational Unified Process, RUP)中的软件架构则定义为:软件架构包含了关于以下问题的重要决策,软件系统的组织,选择组成系统的结构元素和它们之间的接口,以及当这些元素相互协作时所体现的行为;如何组合这些元素,使它们逐渐合成更大的子系统,用于指导这个系统组织的架构风格;这些元素以及它们的接口、协作和组合。

  软件架构并不仅仅注重软件本身的结构和行为,还注重其他特性:功能、性能、弹性、重用、可理解性、经济和技术的限制及权衡,以及美学等。

  总体来说,软件架构是对软件系统的宏观抽象概括。软件架构的设计主要受到功能需求、质量属性、约束条件等三方面的影响。

  软件架构关注的是系统的处理流程,通过对处理流程的宏观归纳抽象,在较高级别上勾勒出系统的运行主线,给出系统运行状况的全景图。

  2 方案设计

  地震预警系统的软件架构可为系统建设提供基础,是系统的核心支撑。在架构的设计中,除了描述出地震预警处理过程之外,重点则要考虑采取何种技术手段使地震预警系统具有类似“热插拔”的组合能力,支持良好的定制化进而达到随需应变的要求。

  地震预警系统包含了数据实时处理、地震定位、震级确定、地震动影响场估计等应用。这些应用从功能目標产出等方面虽然存在较大差异,但是都属于数字地震台网综合处理的一部分,在业务处理上还是存在着不少共性的。通过对这些处理过程的归纳抽象,可以发现这些应用基本都包含了数据接收、数据派发、通道处理、综合处理、外围应用等部分。因此通过对这些环节的分析研究,可以得到地震预警系统的软件架构。系统架构设计示意图如图1所示。

  2.1 数据接收

  部分主要负责从实时流服务器和归档波形服务器接收获取台站的实时波形或是归档波形。这部分需要支持同时从多个流服务器中接收波形数据,在设计中可以采用适配器(Adapter)模式来屏蔽不同波形服务器之间的差异性,如网络流、归档文件、数据库等,通过给每种波形服务器编写对应的数据获取适配器,可以为后续的地震应用处理提供统一格式的波形数据,从而简化地震业务处理的复杂程度。具体来说,数据接收部分设计需要考虑以下要求:

  (1)支持多种来源、多种格式的数据。

  (2)易于扩充,支持新的数据来源和数据格式。

  (3)为后续的数据处理提供统一格式的波形数据。

  实时地震数据接收的设计支持HTTP协议,能够实时接收Jopens6.0及以上版本流服务分发的MiniSeed格式的地震数据,波形数据的接收采用多连接管理设计,如图2所示。

  部分设计代码为:

  miniSeedReceive = new MiniSeedReceive(); miniSeedReceive.initialize([configurationManager]);

  miniSeedReceive.register([miniSeedDispatcher]);

  ……

  miniSeedReceive.startReceive();

  ……

  miniSeedReceive.stopReceive();

  2.2 数据派发

  部分从数据接收部分得到统一格式的波形数據,传递给后续的通道处理部分,作为数据与处理之间的通道。数据派发部分从波形数据中解析出台网、台站、通道等信息,根据这些参数信息把数据发送给相应的波形数据处理对象。具体来说,数据派发部分设计需要考虑以下要求:

  (1)根据需要创建波形数据的处理对象。

  (2)按照波形数据通道信息,匹配波形数据的处理对象。

  数据派发为系统后续的计算处理提供数据及台网台站参数信息,考虑到地震预警的时效性要求,数据派发的设计应充分考虑系统的处理性能,具体设计如图3所示。

  2.3 通道处理

  部分负责对数据派发部分传递过来的连续波形数据进行仿真变换等预处理,并为后续的综合处理提供预处理后的提炼信息。在这个部分数据从时间上连续不断的波形数据转变为处理后的离散波形特征信息,如P波到时、S波到时等。因此这个部分是系统计算负荷比较大的地方,往往会成为系统的性能瓶颈所在,在设计中要注意采用合适的技术手段来保障系统处理的性能效率。

  在实际的应用中,数字地震台网存在着多种地震计类型,如速度型地震计、加速度型地震计以及位移型地震计等。不同区域的台网情况并不完全一样,为了使地震预警系统具有较好的适应性,需要能在配置信息中指定台网中各个台站通道的数据处理策略,从而达到较高的灵活性和较强的可用性。

  为了能在运行时激活创建通道对应的波形数据处理对象,需要这些波形数据处理对象遵循统一规范的规约,对波形数据处理算法进行调用接口、输入数据、输出数据等方面的归一化。在实际设计中,可以采用命令(Command)模式+数据容器的方式来解决此类问题,从而以较小的代价轻松地增加对波形数据的预处理,避免大而复杂的代码块,通过技术处理,达到形式上的统一,从软件的角度以一致的方式处理波形数据的前期处理,从功能的依赖转化为消息的依赖,从直接的依赖转化为间接的依赖。具体来说,通道处理部分设计需要考虑以下要求:

  (1)实现对波形数据的仿真、处理的逻辑简化。

  (2)实现对波形数据处理的标准规范。

  (3)实现对波形数据不同处理的关联解耦。

  通道处理的设计应支持事件源的管理和通知功能,能够接收MiniSeed格式的波形数据,支持对波形数据的并发处理。通道处理是整个地震预警系统计算量最大的环节,随着地震台站的不断增加,通道处理的计算压力也越来越大,我们以不同的通道处理器来处理不同类型的地震波形数据,设计了统一的通道处理器接口IChannelProcesser。

转载请注明来自:http://www.qikan2017.com/lunwen/lig/22471.html

相关论文阅读

论文发表技巧

期刊论文问答区

优质科技期刊

最新期刊更新

精品推荐