吳凌杰 陳吉鋒 孟 真 嚴(yán)俊峰
(中國杭州 310013 浙江省地震局)
2004 年,全國地震速報(bào)信息共享服務(wù)系統(tǒng)(EQIM)正式投入使用,國家測震臺網(wǎng)與各省級測震臺網(wǎng)之間的地震速報(bào)信息得以快速通報(bào)、匯集和共享,為提升地震信息公共服務(wù)能力奠定了基礎(chǔ)(楊陳等,2009)。為了及時報(bào)送震情信息和接收震情反饋,國家和各省市地震局均有震情值班人員24 小時在崗值班。在此基礎(chǔ)上,大部分省地震臺網(wǎng)中心研發(fā)了震情值班管理系統(tǒng),如:蔡杏輝等(2020)設(shè)計(jì)的福建測震臺網(wǎng)震情值班信息管理系統(tǒng),實(shí)現(xiàn)了地震數(shù)據(jù)查詢、報(bào)表產(chǎn)出和系統(tǒng)管理等功能;張孟怡等(2014)設(shè)計(jì)的天津市地震局震情值班信息自動化處理系統(tǒng)實(shí)現(xiàn)了地震報(bào)警和系統(tǒng)管理等功能。在“互聯(lián)網(wǎng)+”的大背景下,微信公眾平臺、微博等為地震信息公共服務(wù)開辟了新的領(lǐng)域,如龔自祿等(2018)設(shè)計(jì)的湖北省震情速報(bào)微信公眾平臺,通過微信公眾號產(chǎn)出權(quán)威地震信息,同時具有災(zāi)情上報(bào)等交互功能,為防震減災(zāi)工作帶來便利。
浙江省屬弱震少震區(qū),但該省人口密度大,且鄰近地區(qū)作為相對多震區(qū),地震頻率高,強(qiáng)度大,在一定程度上對其省內(nèi)生產(chǎn)生活產(chǎn)生了較大的間接影響。地震事件發(fā)生后,政府、企業(yè)和社會公眾對地震三要素(發(fā)震時間、經(jīng)緯度、震級)、災(zāi)情等重要信息關(guān)注度高(馬志江等,2006;李光科等,2020)。如何快速準(zhǔn)確地發(fā)布震情信息并高效可靠地接收震情反饋關(guān)系到地震應(yīng)急預(yù)案啟動、余震趨勢研判、后續(xù)抗震救災(zāi)等一系列工作的有序開展(徐勝等,2014)。因此,根據(jù)浙江省地震局震情值班的實(shí)際工作需求和當(dāng)下網(wǎng)絡(luò)安全的嚴(yán)峻形勢(學(xué)峰,2020;戴麗金等,2021),基于Java 語言,開發(fā)震情值守信息服務(wù)平臺。本平臺借鑒了上述震情信息發(fā)布和值班系統(tǒng)建設(shè)經(jīng)驗(yàn),集成震情值班、釘釘機(jī)器人、微信公眾平臺、安全管理和系統(tǒng)管理等功能,拓寬震情信息發(fā)布和接收渠道,保障和優(yōu)化震情值班工作模式,保證了地震數(shù)據(jù)的安全性。
社交行業(yè)領(lǐng)頭產(chǎn)品微信、釘釘幾乎占據(jù)了中國市場,成為各級政府和有關(guān)部門開展公共服務(wù)和社會管理的重要平臺,其龐大的用戶量及高效的信息發(fā)布手段,已然被各行業(yè)作為擴(kuò)大影響力的重要宣傳手段之一,自然也是地震部門拓展地震服務(wù)、信息發(fā)布和傳播渠道的重要手段(賈寧等,2016;龔自祿等,2017;劉仲達(dá)等,2017)。基于上述情況,結(jié)合24 小時震情值班制度,設(shè)計(jì)震情值守信息服務(wù)平臺,旨在為政府和社會公眾提供及時、準(zhǔn)確的地震信息。該平臺將接收的地震信息,基于不同的發(fā)布策略分發(fā)至各接收端軟件,由各接收端軟件主動訂閱篩選和獲取所需地震信息,實(shí)現(xiàn)歷史地震資料查詢、災(zāi)情上報(bào)、信息定制化等多種類地震信息服務(wù),為政府應(yīng)急決策、災(zāi)情快速評估等提供緊急信息服務(wù)。
該平臺采用B/S 架構(gòu),由數(shù)據(jù)層、業(yè)務(wù)層、數(shù)據(jù)處理層、應(yīng)用層4 部分構(gòu)成。項(xiàng)目的邏輯結(jié)構(gòu)將數(shù)據(jù)存儲、業(yè)務(wù)邏輯和服務(wù)應(yīng)用分離,使其各部分結(jié)構(gòu)清晰,降低了系統(tǒng)耦合性,增強(qiáng)了系統(tǒng)的擴(kuò)展性和可維護(hù)性。該平臺基于Spring Boot 框架建立,通過混合加密API 算法進(jìn)行數(shù)據(jù)加密交互,Web 瀏覽器訪問即可進(jìn)行使用,用戶體驗(yàn)好且數(shù)據(jù)安全性高。平臺架構(gòu)見圖1。

圖1 平臺架構(gòu)Fig.1 Platform architecture
數(shù)據(jù)層由EQIM 地震速報(bào)數(shù)據(jù)庫和平臺數(shù)據(jù)庫2 部分組成,封裝了各類數(shù)據(jù)的操作方法。數(shù)據(jù)層通過EQIM 數(shù)據(jù)庫獲取地震信息,將實(shí)時震情信息傳輸至業(yè)務(wù)層,進(jìn)行震情判定、分發(fā)、傳輸和圖表生成等操作。震情值守信息服務(wù)平臺數(shù)據(jù)庫部署在Docker 容器中,可實(shí)現(xiàn)數(shù)據(jù)庫的快速部署,可利用率和可移植性較高。數(shù)據(jù)層從該平臺數(shù)據(jù)庫獲取業(yè)務(wù)數(shù)據(jù)傳輸至業(yè)務(wù)層,用于平臺整體業(yè)務(wù)運(yùn)行。
業(yè)務(wù)層主要對EQIM 地震速報(bào)數(shù)據(jù)庫獲取的地震信息和平臺業(yè)務(wù)數(shù)據(jù)進(jìn)行處理。對獲取的地震信息進(jìn)行數(shù)據(jù)脫敏,基于震情值守、釘釘和微信用戶的業(yè)務(wù)規(guī)則處理震情信息,并對獲取的地震信息進(jìn)行入庫管理。同時,業(yè)務(wù)層具備接收用戶災(zāi)情反饋信息入庫和展示功能,可為后續(xù)應(yīng)急搶險和抗震救災(zāi)提供決策依據(jù)。業(yè)務(wù)層的構(gòu)建有利于快速產(chǎn)出震情服務(wù)產(chǎn)品和接收震情反饋信息,可多層次、多方面、多角度地拓展地震信息化服務(wù)思路和改進(jìn)地震信息化服務(wù)方法。
數(shù)據(jù)處理層主要針對,在當(dāng)下復(fù)雜的網(wǎng)絡(luò)安全環(huán)境中,使用應(yīng)用程序接口(Application Programming Interface,API)導(dǎo)致的用戶賬號密碼被截獲、表單數(shù)據(jù)被篡改和業(yè)務(wù)數(shù)據(jù)泄露等問題(崔喜萌等,2020)。數(shù)據(jù)處理層的作用是,對使用API 和應(yīng)用層交互的數(shù)據(jù)。使用AES 和RSA 兩種加密算法(雷敏等,2014;冷飛等,2017),并結(jié)合API 運(yùn)行機(jī)制,進(jìn)行加/解密運(yùn)算,算法流程見圖2。具體流程為:當(dāng)應(yīng)用層和業(yè)務(wù)層進(jìn)行業(yè)務(wù)數(shù)據(jù)交互時,發(fā)送方根據(jù)AES 密鑰規(guī)則生成明文密鑰key,將明文P 和key 使用AES 算法生成密文C,使用接收方RSA 公鑰對key 進(jìn)行加密生成密文密鑰keys,將keys 和P 通過網(wǎng)絡(luò)傳輸給接收方;接收方收到后使用其RSA 私鑰將keys 還原為key,并將密文C 還原為明文P。本算法根據(jù)B/S 架構(gòu)和API 的運(yùn)行機(jī)制,在應(yīng)用層與業(yè)務(wù)層建立通信時,將各自的RSA 公鑰互換,并在每次傳輸數(shù)據(jù)時隨機(jī)生成新的明文密鑰key,可有效保證數(shù)據(jù)傳輸?shù)臏?zhǔn)確性和安全性。數(shù)據(jù)處理層在嚴(yán)峻的網(wǎng)絡(luò)安全形勢下,為平臺數(shù)據(jù)安全提供了有力保障。

圖2 數(shù)據(jù)處理層算法Fig.2 Algorithm of data processing
應(yīng)用層主要提供專業(yè)震情服務(wù)、社會震情服務(wù)和震情值班服務(wù)。專業(yè)震情服務(wù)主要依托短信、傳真、釘釘和B/S 架構(gòu)數(shù)據(jù)服務(wù)等手段,主要包括提供震情速報(bào)信息、震情反饋和輔助決策等服務(wù)內(nèi)容。其主要服務(wù)對象為行業(yè)內(nèi)用戶、應(yīng)急管理部門和政府部門。社會震情服務(wù)主要依托釘釘、微信公眾號和B/S 架構(gòu)數(shù)據(jù)服務(wù)等手段,以按需提供震情速報(bào)信息和震情反饋為主要服務(wù)內(nèi)容,以社會大眾為主要服務(wù)對象。震情值班服務(wù)主要依托B/S架構(gòu)數(shù)據(jù)服務(wù),可實(shí)現(xiàn)地震報(bào)告的自動處置,提高了震情值守的工作效率,保障了震情報(bào)告的準(zhǔn)確性,優(yōu)化了震情值班的工作模式。
震情值守信息服務(wù)平臺主要采用Java、html5、JavaScript語言和Spring Boot框架進(jìn)行開發(fā)。平臺被部署在Docker 容器中,整體部署方便且安全。該平臺主要由震情值守模塊、釘釘模塊、微信公眾號模塊、安全管理模塊和系統(tǒng)管理模塊組成,各模塊功能見圖3。

圖3 系統(tǒng)模塊Fig.3 System module
震情值守模塊主要為震情值班工作人員設(shè)計(jì),旨在提高值班工作效率和震情報(bào)告的準(zhǔn)確性。本模塊下設(shè)4 個功能,分別為值班管理、通訊錄管理、震情推送和值班大屏。值班管理主要功能為值班人員排班、值班次數(shù)統(tǒng)計(jì)以及值班績效管理和值班信息提醒等。通訊錄功能主要是將地震部門和應(yīng)急部門人員信息分類保存,依托短信平臺實(shí)現(xiàn)值班短信提醒和震情信息等各類信息的短信推送,其管理功能是對人員信息的增刪查改和分類操作。震情推送功能包括震情簡報(bào)和短信推送。平臺會監(jiān)聽EQIM 地震速報(bào)數(shù)據(jù)庫,當(dāng)有地震事件發(fā)生時進(jìn)行自動判斷,當(dāng)震情位置和震級達(dá)到相應(yīng)條件時(根據(jù)震情值守手冊規(guī)定),自動向通訊錄里的相應(yīng)人員發(fā)送震情短信,同時播放報(bào)警信息通知值班工作人員。如需對地震事件進(jìn)行上報(bào)操作,工作人員只需點(diǎn)擊地震事件就會自動生成震情簡報(bào),人工核對后即可快速上報(bào),操作完成后平臺將自動保存數(shù)據(jù),以方便查閱。報(bào)送流程見圖4。

圖4 地震信息報(bào)送流程Fig.4 Flow chart of earthquake information reporting
值班大屏功能整合了html5、css、JavaScript 語言以及Ajax 和GIS 引擎等技術(shù),具有震情信息展示、地震信息服務(wù)等功能,供震情值班人員使用。使用值班賬號登錄平臺,自動跳轉(zhuǎn)至值班大屏界面。值班大屏展示內(nèi)容有:最新地震震中位置與浙江省各大城市的直線距離、各渠道震情信息推送情況、基于GIS 引擎技術(shù)構(gòu)建的3D 地圖展示的最新地震信息、值班人員排班表、地震信息列表、情短信列表和震情簡報(bào)列表。值班大屏將最新震情信息通過可視化方式進(jìn)行展示,并通過精確數(shù)據(jù)展示最新地震對浙江省各城市的影響,提高了震情值班工作效率,有利于地震應(yīng)急工作的有序開展。值班大屏樣式見圖5。

圖5 值班大屏界面Fig.5 On-duty screen interface
微信公眾號是騰訊公司為政府、企業(yè)等推出的資訊和服務(wù)平臺,憑借龐大的微信用戶數(shù)量和超強(qiáng)的用戶粘性,目前已經(jīng)成為一種主流的微信互動和營銷方式。公眾平臺的開發(fā)接入是提供服務(wù)的基礎(chǔ)。開發(fā)者與微信公眾平臺接口對接后,按照微信公眾平臺開發(fā)規(guī)范,根據(jù)自身業(yè)務(wù)需求進(jìn)行開發(fā)。微信公眾號模塊主要功能有震情接收設(shè)置、震情推送、震情反饋、歷史地震查詢和震情年月報(bào)推送。震情接收設(shè)置有接收震級、接收地區(qū)和夜間免打擾功能。免打擾功能開啟后,夜間23 時至次日8 時發(fā)生的地震事件統(tǒng)一在8 時后補(bǔ)推。用戶可自行設(shè)定地區(qū)、震情和接收時間。平臺監(jiān)聽到地震事件后,按照公眾平臺關(guān)注用戶的接收設(shè)置推送震情信息。用戶也可在有震感時選擇震情反饋功能進(jìn)行上報(bào),上報(bào)內(nèi)容包括手機(jī)號、時間、位置、震動感受、現(xiàn)場圖片和文字描述。若情況緊急,平臺將通過內(nèi)置百度地圖自動獲取用戶位置。用戶提交上報(bào)內(nèi)容后,后臺將提示震情值班人員查看處理。歷史地震查詢功能允許用戶查詢歷史地震相關(guān)信息。震情年月報(bào)推送功能,即系統(tǒng)在每月1日、每年1 月1 日以模板消息向用戶推送上月和去年的國內(nèi)、國外各級地震統(tǒng)計(jì)數(shù)據(jù)。
釘釘作為智能化辦公平臺,目前被政府、學(xué)校和企業(yè)廣泛使用。利用釘釘推送震情信息,拓寬了地震信息化服務(wù)的渠道。釘釘模塊以釘釘機(jī)器人為基礎(chǔ),向用戶提供震情信息推送、反饋和地震年月報(bào)服務(wù)。平臺通過Webhook 地址與釘釘機(jī)器人通信,只需在平臺增加用戶提交的Webhook 地址,即可向用戶提供震情信息服務(wù)。震情信息以模板消息為基礎(chǔ),通過百度地圖靜態(tài)API,將震中位置圖嵌入模板消息,直觀展示地震位置。
為應(yīng)對當(dāng)前復(fù)雜的網(wǎng)絡(luò)環(huán)境,平臺在使用混合加密API 算法保證數(shù)據(jù)傳輸安全的基礎(chǔ)上,增加了安全管理模塊。該模塊功能包括實(shí)時環(huán)境監(jiān)控、實(shí)時日志顯示/記錄和Druid 數(shù)據(jù)源監(jiān)控。實(shí)時環(huán)境監(jiān)控主要包括系統(tǒng)硬件環(huán)境以及JVM 運(yùn)行內(nèi)存監(jiān)控,實(shí)時日志顯示/記錄是將平臺后臺運(yùn)行產(chǎn)出的日志記錄到服務(wù)器的同時實(shí)時顯示到頁面中。2個功能均由Websocket 協(xié)議實(shí)現(xiàn),日志功能還整合了Logback 日志模塊。Druid 是由阿里開源的一個高效數(shù)據(jù)查詢系統(tǒng),集合了開源和商業(yè)數(shù)據(jù)庫連接池的優(yōu)秀特性,同時加入日志監(jiān)控,可以較好地監(jiān)控?cái)?shù)據(jù)池連接和SQL 語句的執(zhí)行情況,并將監(jiān)控?cái)?shù)據(jù)可視化。安全模塊針對平臺進(jìn)行了全方位監(jiān)控,同時將運(yùn)維數(shù)據(jù)可視化處理,為平臺運(yùn)維提供便利。
系統(tǒng)管理模塊包括系統(tǒng)設(shè)置、用戶管理和權(quán)限管理。系統(tǒng)設(shè)置包括是否開啟API 加密功能設(shè)置、系統(tǒng)公告設(shè)置、系統(tǒng)初始密碼設(shè)置等功能。系統(tǒng)公告使用UEditor 富文本編輯器組件編輯震情值守規(guī)章制度。用戶管理主要管理平臺登錄用戶信息,具有軟刪除、限制IP 登錄和賬號過期設(shè)置等功能。權(quán)限管理基于Spring Security,將用戶分為主管理員、運(yùn)維管理員和震情值班員3 類,主管理員具有平臺所有管理權(quán)限,運(yùn)維管理員僅有平臺運(yùn)維權(quán)限,震情值班員登錄系統(tǒng)后頁面跳轉(zhuǎn)至值班大屏。用戶權(quán)限由數(shù)據(jù)庫動態(tài)加載,而非代碼固定。
結(jié)合24 小時震情值班制度,基于B/S 架構(gòu)和Spring Boot 框架,開發(fā)震情值守信息服務(wù)平臺,通過微信、釘釘、傳真、短信等方式,為地震部門、應(yīng)急管理等部門和社會公眾快速提供地震服務(wù)相關(guān)產(chǎn)品的同時,提供信息個性化定制、災(zāi)情上報(bào)、歷史地震數(shù)據(jù)查詢/展示等功能,滿足不同群體的需求,進(jìn)一步拓寬了地震信息的發(fā)布手段、渠道和服務(wù)覆蓋范圍,提升了震情服務(wù)能力和水平。隨著平臺的逐步推廣,微信和釘釘用戶量都將不斷增加,今后需對平臺并發(fā)處理數(shù)據(jù)能力做進(jìn)一步提升,以保證用戶接收和反饋震情信息的時效性。