引用本文
肖本夫, 申源, 陈维锋, 毛利, 格桑扎西, 梁厚朗. 2020. 基于MINA框架的应急救助与地震灾情管理平台设计与实现. 震灾防御技术, 15(4): 836-845, DOI:10.11899/zzfy20200418.
权限
基于MINA框架的应急救助与地震灾情管理平台设计与实现
肖本夫 申源 陈维锋 毛利 格桑扎西 梁厚朗
(四川省地震局, 成都 610041)
[基金项目]:国家重点研发计划课题(2018YFC1504505、2019YFC1509402);地震应急青年任务(CEAEDEM201912);四川省地震局地震科技专项(LY2007);四川地震科技创新团队专项(201902)
[收稿日期]:2020-04-20
[作者简介]:肖本夫, 男, 生于1986年。工程师。主要从事地震地质、地震应急与数字地震学研究。E-mail: xiaobf_1986@hotmail.com
[通讯作者]:申源, 男, 生于1985年。工程师。主要从事地震应急救助技术、地震标准化建设与紧急地震信息发布技术。E-mail: 352048209@qq.com
摘要

针对不同用户群体应急救助和地震灾情需求,基于MINA框架,运用阿里云基础架构、微信组件和应用程序接口等技术方法,设计并构建集灾情信息收集与报送、应急救助服务、科普宣教等功能于一体的管理平台。该平台的设计与实现不仅有利于震后现场应急队员收集并准确报送实时灾情信息,还可为被救助人员提供防震减灾知识和地震应急避难场所空间分布等应急救助信息,实现了应急救助与地震灾情的综合管理,提升了震后应急救助、应急指挥和辅助决策等方面的服务能力。

关键词: MINA框架  应急救助  地震灾情  管理平台  


引言

地震作为突发性自然灾害,因具有破坏性大、突发性强、致灾面广、难以准确预报等特点,往往给人类社会带来巨大灾难。地震发生后,地震灾情信息快速获取和受灾群众对灾情的有效处置一直是地震应急工作的关注热点与重点,受灾群众自救互救、应急处置、灾害现场及各部门间地震灾情信息传递更是成为讨论的焦点,尤其在地震应急期内,快速自救互救并将灾情信息准确传至现场和后方指挥部,有助于有针对性地开展地震现场应急决策、地震应急救助等工作。

地震灾情信息与应急救助服务作为抗震救灾工作的基础,服务内容和服务方式直接影响抗震救灾工作效率。在破坏性地震应急处置规划中,美国和日本等发达国家十分重视灾害信息的收集与传递,多种技术平台及系统(如美国地质调查局网络及技术平台和日本菲尼克斯系统)可确保灾害发生后在最短时间内获取准确的灾害信息,并保证信息传递渠道较流畅。汶川地震发生前,我国地震灾情收集工作主要依靠信息人员对灾区“三网一员”人员通过电话调查、官方微博和现场应急通讯系统等手段获取灾区视频、图像等灾情信息进行。传统的灾情获取方式在一定程度上不能及时、系统的收集和存储地震现场灾情信息,也不能直观展示空间位置信息,且灾情信息收集与传递缺乏公众参与(尹章才等,2008),距协同联动的应急模式与社会日渐迫切的应急救助需求存在一定差距,不利于后方指挥部进行科学的指挥决策,也不利于救灾队伍开展救助工作(姜立新等,2011)。汶川地震发生后,我国加大了对地震灾情获取与调查手段的重视程度,对以快速获取地震灾情信息为目标的技术、系统及平台等的研究逐渐丰富,如姜立新等(2012)针对地震应急联动协作与实施协同问题,对构成地震应急指挥协同技术平台的关键问题、设计和实现方式进行了研究与探讨;帅向华等(2014)通过研究天地图应用开发技术、互联网地震灾情处理技术和灾情信息综合展示技术,设计并实现了基于天地图的互联网地震灾情处理与展示系统;杨天青等(2016)设计并研发了基于共享模式的分级分层地震灾情集成发布平台,可通过网页、手机APP等方式实时快速发布地震应急过程产生的各类灾情信息;申源等(2017)设计并实现了集日常科普知识、震后应急灾情信息等于一体的综合查询系统;刘智等(2017)基于MEMS强震台网强震观测数据、县域承灾体基础数据和手机终端获取的震后地震现场实时灾情信息,实现了县市地震灾区灾情实时评估。上述研究成果在以往破坏性地震中发挥了重要作用,并取得良好效果,但在新常态减灾与非常态救灾相统一方面仍有研究空间。

震后应急反应是减轻震害的关键措施之一。应急反应的关键是灾情数据的快速获取与处理(徐敬海等,2010胡素平等,2012),政府、抗震救灾指挥部相关部门和社会公众是震后应急反应的重要组成部分,其中,社会公众既是地震灾害的直接受害者与应急服务对象,又是地震直接感受者与灾情信息传递者。社会公众参与地震应急工作不仅可节省时间与费用,且有助于公众准实时响应信息的传递,进而使应急决策部门更好地获取灾情信息并处理危机。因此,高效快速地传递多元主体之间的灾情信息、提升各主体参与度是当前亟需解决的难题。Multi-purpose infrastructure for network applications(简称MINA)是Apache软件基金会开发的网络通信应用框架,基于该框架构建的网络通信应用程序和系统具有扩展性强和性能高等优点,可实现跨通信平台、跨操作系统的即时信息传递,现阶段MINA框架已成功应用于微信小程序开发(张锋等,2019)、生命探测系统定位终端开发(刘志博等,2017)中。为更好地处理各级政府、各级抗震救灾部门、各类救助力量、社会公众等不同用户群体对灾情服务的需求,本研究基于MINA框架、微信组件及应用程序接口,设计并构建集灾情信息收集与报送、应急救助服务、科普宣教等功能于一体的管理平台,实现跨终端、跨平台的地震灾情信息获取与管理,为应急救助和应急决策提供参考。

1 平台总体架构设计

基于MINA框架的应急救助与地震灾情管理平台是综合跨终端系统与集约化数据管理的服务平台,旨在为省、市、县三级地震工作部门、各级救助力量和社会公众等不同用户群体提供地震灾情信息服务,具有灾情收集、报送、应急救助、应急避险和统计信息管理等功能。该平台总体架构设计分为6层(图 1),分别为基础设施层、支撑层、数据资源层、应用交互层、接入层和用户层,其中,基础设施层包括基础软件、服务器、网络、备份、操作系统和数据储存设备,为便于管理和扩展,本研究主要使用阿里云基础架构的弹性云服务器ECS和SSD云储存;支撑层搭建在MySQL数据库和Apache MINA框架基础上,配合腾讯地图等软件开发工具包,可实现空间地理信息储存、调用及查询等功能;数据资源层包括基础人员信息数据库、基础地理信息数据库、科普宣教信息数据库、避难场所信息数据库与应急救助信息数据库,是平台数据的承载基础层;应用交互层作为应用和功能枢纽层,实现应急避难场所搜索及导航、伤亡和失踪人员报送及查询、数据收集及管理和地震灾情公告等功能;接入层主要采用目前应用范围较广的微信小程序作为应急救助与地震灾情信息前端展现形式,使用过程中无须安装和卸载手机应用软件,且占用手机内存少,辅以微信组件和API接口,可跨目前主流的Android系统和iOS系统终端设备,实现平台前端与后台数据管理端信息的快速交互;用户层以功能需求为原则,设计应急救助人员、被救助人员和应急决策人员三类用户,以满足不同类型用户群体的需求。


图 1 平台总体架构 Fig. 1 The overall framework of platform
2 MINA框架与基础处理流程

MINA框架实现了基于TCP/IP协议的Socket封装,具有良好的封装性、灵活扩展性,可高效完成不同计算机进程间的通信(Lee,2006),MINA框架与接口(图 2)功能如下:


图 2 MINA框架结构 Fig. 2 The frame structure of MINA

(1)I/O服务管理(IoService):套接字建立和监听接口,核心功能是建立套接字并监听连接是否被建立,可对上层提供基于事件的异步I/O接口,同时能隐藏底层I/O细节。

(2)I/O过滤链(IoFilter Chain):事件和请求过滤接口,主要功能包括协议日志过滤、编码解码过滤、线程池编码过滤等,形式上由多个I/O过滤器串联而成。

(3)I/O处理器(IoHandler):具体业务逻辑实现接口,主要用于业务数据的接收与发送。

(4)I/O会话管理(IoSession):对底层链接封装,既是客户端与服务器的特定连接,又是用户定义属性与应用数据之间的连接,有效会话需用户主动断开或网络断开,否则会话将一直保持(剧忻等,2008)。

MINA框架基础处理流程包括IoService监听来自远程对等端的连接请求及将请求与接收到的数据传至IoProcessor(I/O处理线程)。IoProcessor负责调用注册在IoService的I/O过滤链对数据进行过滤操作,经I/O过滤链处理后的数据到达IoHanlder后,由IoHanlder负责对业务逻辑进行处理(向运,2013)。

3 平台关键功能模块设计与实现

在应急救助与地震灾情信息管理平台总体架构的基础上,考虑不同用户群体的需求和目标功能,平台分为应急救助与地震灾情前端和后台数据管理端两部分,包括数据库及管理、应急避险、应急救助、应急公告4项功能模块(图 3),其中平台前端采用MINA框架设计并构建,以微信小程序作为信息交互载体,为不同用户群体提供快捷便利的应急救助与地震灾情信息获取服务。


图 3 平台功能模块 Fig. 3 The function modules of platform
3.1 应急救助与地震灾情信息管理平台前端功能模块

应急救助与地震灾情信息管理平台前端包括应急避险模块、应急救助模块和应急公告模块,主要实现地震灾情信息收集与报送、应急救助、应急避险和应急公告及科普知识推送等功能,平台前端功能模块展示如图 4所示。


图 4 平台前端功能模块展示 Fig. 4 The exhibition of main function modules of platform

(1)应急避险模块:实现应急避难场所搜索、显示和导航功能。前端通过访问手机位置,可显示手机位置附近至少5个应急避难场所位置。用户选择应急避难场所后,可通过调用内部导航模块导航至应急避难场所。其中,终端空间位置信息的获取与展示是应急避难和灾情信息传递的重要内容,当终端地图信息发生变化时,平台通过实时获取用户选择位置,采取调用地图API的形式满足该需求。主要代码如下:

loadLocation(){

     var that = this;

    this.data.mapCtx.getCenterLocation({

       type: 'gcj02',

       success: function(res) {

        console.log('getCenterLocation', res)

        that.setData({

           longitude: res.longitude.toFixed(6) * 1,

          latitude: res.latitude.toFixed(6) * 1

          })

           wx.request({

url: 'https://restapi.amap.com/v3/geocode/regeo',

             data: {

                 location: ` $\text { \$\{res.longitude }\}, \$\{\text { res.latitude }\}$ `

             },

             method: 'GET',

            success: (res) = > {

              if (res.statusCode == 200 & & res.data.status == '1') {

               that.setData({

                 location: res.data.regeocode.formatted_address,

                 address: res.data.regeocode

(2)应急救助模块:实现应急呼救与地震灾情上报功能。平台预存常用应急部门联系方式,点击即可拨打电话。同时,通过该模块可读取终端经纬度,完成准实时应急救助位置、人员伤亡情况和地震灾害损失等灾情信息报送,后台管理端可及时对人员伤亡等地震灾情信息进行统计。此外,该模块具备人员寻找信息上传功能,用户可通过前端报送失踪人员信息。主要代码如下:

const app = getApp();

var $ = require("../../utils/request.js")

Page({

   onLoad() {

     var that = this;

     console.log($)

     $.get('/addbook/getall', function (res) {

       var temp = {};

       for (let item of res.data) {

         if (!temp[item.department]){

         temp[item.department] = { key: item.department, list: []};

(3)应急公告模块:发布应急科普知识宣传教育公告和地震应急避险、地震灾情、应急救助信息公告。该功能模块主要采用推送模式,由管理后台将各类与应急安全有关的知识和技能推送至应急知识学习板块。同时,该模块可推送应急避险情况、最新地震灾情、应急建议和救助情况等公告信息。主要代码如下:

< wxs src="../../../wxs/format.wxs" module="format" > < /wxs >

< view class="container-layout" >

   < map id="myMap" latitude="{{eq.lat}}" longitude="{{eq.lon}}" markers="{{markers}}" scale="10" show-compass="true" show-scale='true' enable-satellite='{{enableSatellite}}' >

< /map >

< view class="eq-info" >

< view class="title" > {{eq.name}} < /view >

< view > 发震时刻:{{eq.eqtime}} < /view >

< view > 震级大小:{{format.formatM(eq.m)}} < /view >

< view > 震中位置:东经: {{eq.lon}}°北纬: {{eq.lat}}° < /view >

< view > 震源深度:{{eq.depth}}km < /view >

< view > 参考位置:{{eq.place}} < /view >

< view class="distance" > 距您:{{eq.dist.text}} < /view >

< /view >

< /view >

3.2 应急救助与地震灾情信息管理平台后台数据管理端功能模块

应急救助与地震灾情信息管理平台后台数据管理端包括平台数据管理模块和数据库模块。

(1)平台数据管理模块:主要功能包括数据库信息管理、信息编辑及发布管理、登录人员权限管理、信息发布权限管理、访问量统计管理和其他基本管理功能。

(2)数据库模块:实现数据存储与管理功能。该数据库主要包括以下信息:应急避难场所名称与经纬度;终端识别号与微信账号信息;灾情上报者姓名、联系方式、经纬度;伤亡人员及需应急救助的人员姓名、年龄、特征描述、照片等信息。数据库具体构成见表 1

表 1 应急救助与地震灾情信息管理平台后台数据管理端数据库模块构成 Table 1 qInformation data structure of the management platform of emergency assistance and seismic disaster
4 平台应用示范

根据平台总体架构及核心功能模块设计方案,开发了基于MINA框架的应急救助与地震灾情管理平台,并于2020年2月正式上线。由于涉及跨终端、跨平台功能需求,因此,对于不同用户群体采用差异化登录方式。其中,客户端可通过扫描微信小程序二维码或在微信小程序入口输入“应急救助犬”两种方式登录。后台数据管理端主要采用Browser/Server(B/S)网络结构模式,在Web浏览器中直接访问域名或IP地址均可完成登录。为保持功能及流程的完整性,本文以应急救助功能模块为例进行应用示范说明。首先通过微信小程序主界面进入应急救助功能模块(图 4(b)),选择人员伤亡上报信息表或失踪人员救助信息表,填入需要上报的应急救助信息(图 5(a))。为便于用户二次编辑和信息确认,模块设置了“保存”和“保存并提交”2个选项,分别对应可二次编辑的“我的上报”(图 5(b))和不可二次编辑的“状态查询”(图 5(c))。微信小程序上报的应急救助信息需经后台数据管理端(图 6)审核后,才能在客户端进行应急公告。考虑到大规模应急救助事件多属非常规突发性事件,具有短时间内信息量呈爆发式增长的特点,因此,在客户端特别增设了支持模糊查询的人员搜寻功能模块(图 5(d))。


图 5 应急救助模块展示 Fig. 5 The exhibition of emergency assistance function module

图 6 应急救助信息审核 Fig. 6 Emergency assistance information review
5 结语

本研究基于MINA框架,针对不同用户群体对应急救助与地震灾情信息的需求,提出应急救助与地震灾情信息管理平台总体架构和功能设计方案,运用阿里云基础架构、微信组件和应用程序接口等技术,实现应急救助与地震灾情信息管理平台的研发。该平台不仅可完成准实时地震灾情信息收集与报送,还可对应急救助和地震灾情信息进行综合管理。对于应急救助与地震灾情信息管理平台前端,采用微信小程序作为灾情信息的传递方式,区别于基于Android和iOS等智能终端操作系统的第三方应用程序,可不依赖于智能终端的类型和配置,设备仅需具备微信功能即可使用,且不占用手机内存空间,在满足不同终端、不同用户受众最大化原则的基础上,实现跨终端系统的目标。对于应急救助与地震灾情信息管理平台后台数据管理端,运用阿里云基础架构的弹性可伸缩计算服务和云储存服务,在保证数据及计算服务安全的前提下,可同时具备弹性的扩容能力和稳定的计算能力。下一步工作中将进一步设计和完善协同管理功能,如通过搭建基于微信公众平台等一对多的媒体性方式,增强对服务对象的推广与协同管理,进而达到为应急救助、应急指挥和辅助决策提供参考信息的目的。

致谢: 感谢审稿专家建设性的修改意见,平台后续开发得到中国地震局地球物理研究所杨大克研究员的宝贵建议,在此一并表示感谢。
参考文献
胡素平, 帅向华, 2012. 网络地震灾情信息智能处理模型与地震烈度判定方法研究[J]. 震灾防御技术, 7(4): 420-430. DOI:10.3969/j.issn.1673-5722.2012.04.011
姜立新, 帅向华, 聂高众, 等, 2011. 地震应急联动信息服务技术平台设计探讨[J]. 震灾防御技术, 6(2): 156-163. DOI:10.3969/j.issn.1673-5722.2011.02.007
姜立新, 帅向华, 聂高众, 等, 2012. 地震应急指挥协同技术平台设计研究[J]. 震灾防御技术, 7(3): 294-302. DOI:10.3969/j.issn.1673-5722.2012.03.008
剧忻, 苗放, 2008. 基于MINA开发高性能网络应用程序——以实现XMPP协议Openfire3[J]. 3.3为例.重庆工学院学报(自然科学版), 22(10): 121-125, 160.
刘智, 姜慧, 陈焜浩, 2017. 准实时地震灾情综合评估系统的研发[J]. 震灾防御技术, 12(4): 834-844.
刘志博, 邓中亮, 2017. 基于MINA的定位终端通信设计与实现[J]. 软件, 38(1): 1-5.
申源, 陈维锋, 郭红梅, 等, 2017. 城镇地震防灾与应急处置一体化综合查询系统研究[J]. 震灾防御技术, 12(4): 914-923.
帅向华, 刘钦, 甄盟, 等, 2014. 基于天地图的互联网地震灾情快速获取与处理系统设计与实现[J]. 震灾防御技术, 9(3): 479-486.
向运, 2013. 基于Apache Mina的智能家居服务器设计与实现[J]. 西安: 长安大学.
徐敬海, 聂高众, 刘伟庆, 等, 2010. 多源异构地震灾情分类与编码研究[J]. 灾害学, 25(S1): 286-290.
杨天青, 姜立新, 董曼, 等, 2016. 基于共享模式的地震灾情集成发布平台设计与实现[J]. 震灾防御技术, 11(2): 375-383.
尹章才, 章光, 李井冈, 等, 2008. 基于PPGIS的社会化震害信息获取模型研究[J]. 灾害学, 23(3): 135-139. DOI:10.3969/j.issn.1000-811X.2008.03.029
张锋, 邓闯, 李建, 等, 2019. 基于微信"小程序"的公众气象服务应用[J]. 气象科技, 47(2): 361-366.
Lee T., 2006. Introduction to MINA(2020-2-25)[2020-3-23]. http://mina.apache.org/mina-project/resources/ACAsia2006.