国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

高性能地震預(yù)警信息分發(fā)系統(tǒng)研究與開發(fā)

2020-06-08 01:55張盼盼
現(xiàn)代信息科技 2020年19期
關(guān)鍵詞:預(yù)警系統(tǒng)客戶端預(yù)警

摘? 要:地震會造成巨大的人員傷亡和財(cái)產(chǎn)損失,對災(zāi)區(qū)群眾而言,每提前一秒接收到地震預(yù)警信息,就可以減少群眾財(cái)產(chǎn)損失。為了以最小的延時(shí)和最高性能的方式向用戶提供地震預(yù)警信息,采用ZeroMQ的訂閱發(fā)布模式、事件驅(qū)動(dòng)模式和Protocol Buffers數(shù)據(jù)格式等軟件開發(fā)技術(shù),實(shí)現(xiàn)了地震預(yù)警信息發(fā)布系統(tǒng)總體架構(gòu)設(shè)計(jì)和程序開發(fā)。預(yù)警信息分發(fā)系統(tǒng)解決了手機(jī)APP應(yīng)用接收延時(shí)長的問題,在實(shí)時(shí)性、高性能等方面具有明顯的優(yōu)勢。

關(guān)鍵詞:地震預(yù)警;高性能;ZeroMQ;事件驅(qū)動(dòng);Protobuf

Abstract:Earthquakes can cause huge casualties and property losses. For people in the disaster areas,the earthquake early warning information received every second in advance can reduce the loss of peoples property. In order to provide users with earthquake early warning information with the smallest delay and the highest performance,the ZeroMQ subscription publishing model,event-driven model and Protocol Buffers data format and other software development technologies are used to realize the overall architecture design and program development of the earthquake early warning information publishing system. The early warning information distribution system solves the problem of long reception delay in mobile APP applications,and has obvious advantages in real-time and high-performance.

Keywords:earthquake early warning;high-performance;ZeroMQ;event-driven;Protobuf

0? 引? 言

地震預(yù)報(bào)一直是地震行業(yè)研究人員研究攻關(guān)的重要課題,一直以來沒有取得重大突破。地震預(yù)警系統(tǒng)是世界上公認(rèn)的能夠有效減輕地震災(zāi)害的新技術(shù)手段之一[1,2]。

地震預(yù)警的實(shí)現(xiàn)思路是通過設(shè)立在地震多發(fā)區(qū)或者潛在震源區(qū)的地震臺網(wǎng)以及實(shí)時(shí)通信傳輸線路對地震進(jìn)行實(shí)時(shí)監(jiān)測,利用地震P波傳播速度大于破壞性S波(速度約快3倍)和面波,以及地震波波速遠(yuǎn)小于電磁波傳播速度的原理,在盡可能短的時(shí)間內(nèi)確定地震震源位置、發(fā)震時(shí)刻、地震震級等基本參數(shù),在S波對震中造成破壞之前,啟動(dòng)預(yù)警,提醒人們緊急避險(xiǎn)[3-5]。地震預(yù)警時(shí)間計(jì)算公式為:

其中,Teew為理論預(yù)警時(shí)間,Ts和Tp分別為S波和P波走時(shí),△Td為位于預(yù)警目標(biāo)區(qū)臺站P波到達(dá)后,包含了儀器記錄、處理和傳輸延時(shí)等用時(shí)。從公式可知,為了提高預(yù)警時(shí)間,必須從Ts、Tp、△Td三個(gè)參數(shù)入手,其中,在特定的地點(diǎn)Ts和Tp是固定值??s短△Td時(shí)間是一種可行的方案,能夠有效提高理論預(yù)警時(shí)間。

針對手機(jī)APP用戶,本人設(shè)計(jì)了一套高性能解決方案,采用ZeroMQ消息中間訂閱發(fā)布高性能特點(diǎn),提出一種高可用低延時(shí)的地震預(yù)警信息推送架構(gòu),并且完成了地震預(yù)警信息發(fā)布系統(tǒng)的軟件開發(fā)。同時(shí),給需要二次開發(fā)的用戶提供客戶端SDK,可滿足業(yè)務(wù)擴(kuò)展需要,提供個(gè)性化的服務(wù)。

1? 系統(tǒng)總體架構(gòu)

地震預(yù)警是一套復(fù)雜的系統(tǒng),其中的地震預(yù)警信息分發(fā)系統(tǒng)由服務(wù)端與客戶端的SDK組成。服務(wù)端部分主要包括兩大系統(tǒng),地震預(yù)警系統(tǒng)算法服務(wù)程序和地震預(yù)警系統(tǒng)信息分發(fā)系統(tǒng),地震預(yù)警系統(tǒng)算法服務(wù)程序主要是利用算法模塊生成地震信息,地震預(yù)警系統(tǒng)信息分發(fā)完成預(yù)警信息實(shí)時(shí)推送;客戶端SDK負(fù)責(zé)提供用戶登錄服務(wù)端的接口,并提供通過訂閱方式獲取服務(wù)端推送的預(yù)警信息的接口??蛻舳说腟DK可以應(yīng)用在微信公眾號后臺系統(tǒng)、Web瀏覽器后臺服務(wù)、郵件后臺服務(wù)程序,也可以根據(jù)需要集成到各服務(wù)程序中,實(shí)現(xiàn)定制化服務(wù)。該服務(wù)采用了分層的架構(gòu)設(shè)計(jì)模式,架構(gòu)層級清晰,可實(shí)現(xiàn)數(shù)據(jù)資源與業(yè)務(wù)邏輯的解耦。系統(tǒng)架構(gòu)如圖1所示。

地震預(yù)警系統(tǒng)算法服務(wù)程序由多個(gè)應(yīng)用程序組成,屬于多進(jìn)程的應(yīng)用程序。主要由P波拾取模塊、震級計(jì)算模塊、震源定位模塊、XML結(jié)果生成模塊和日志模塊。

地震預(yù)警信息分發(fā)系統(tǒng)是地震預(yù)警系統(tǒng)的主要組成部分,主要負(fù)責(zé)預(yù)警消息的分發(fā)和用戶的管理。地震預(yù)警信息分發(fā)系統(tǒng)作為TCP協(xié)議客戶端,地震預(yù)警系統(tǒng)算法服務(wù)程序作為TCP協(xié)議服務(wù)端,地震預(yù)警信息分發(fā)系統(tǒng)從地震預(yù)警系統(tǒng)算法服務(wù)程序獲取XML格式的計(jì)算結(jié)果消息,再通過一系列的邏輯處理,最終發(fā)送給訂閱的用戶。

從物理位置和用戶類別的角度,可以將功能劃分為三大部分,分別為服務(wù)端、客戶端和綜合管理。服務(wù)端由五個(gè)子模塊構(gòu)成,綜合管理包含了五個(gè)子模塊,客戶端包含的功能模塊最多,有二十個(gè)功能模塊。系統(tǒng)功能模塊如圖2所示。

2? 處理流程

地震預(yù)警信息分發(fā)系統(tǒng)啟動(dòng)后首先進(jìn)行初始化應(yīng)用程序,主要是讀取配置文件、連接數(shù)據(jù)庫和連接業(yè)務(wù)服務(wù)器,緊接著會啟動(dòng)線程1(數(shù)據(jù)接收線程)和線程2(數(shù)據(jù)處理線程)。數(shù)據(jù)接收線程會不間斷的查詢是否有退出命令,如果有退出消息,會退出循環(huán),如果沒有會一直處理接收到的地震預(yù)警信息,并會根據(jù)預(yù)警信息分類存入到對應(yīng)的MySQL數(shù)據(jù)庫表中,然后將消息PUSH到消息隊(duì)列中,等待數(shù)據(jù)處理線程的操作。數(shù)據(jù)處理線程是以阻塞方式等待消息隊(duì)列中的地震預(yù)警消息,如果發(fā)現(xiàn)隊(duì)列中有數(shù)據(jù),就會從隊(duì)列中將數(shù)據(jù)取出,根據(jù)消息類型調(diào)用ZeroMQ的訂閱發(fā)布模式,將消息推送到消息客戶端。具體的業(yè)務(wù)處理流程如圖3所示。

根據(jù)以往程序開發(fā)的經(jīng)驗(yàn),因內(nèi)存泄漏或系統(tǒng)架構(gòu)缺陷,不少類似的系統(tǒng)經(jīng)過長時(shí)間運(yùn)行后,會出現(xiàn)系統(tǒng)性能下降,嚴(yán)重的會造成系統(tǒng)崩潰。預(yù)警系統(tǒng)對穩(wěn)定性和性能有極高的要求,針對其特點(diǎn)設(shè)計(jì)了一套測試方案,并使用Python編寫了一套測試腳本。測試的方法在5臺測試電腦上運(yùn)行測試腳本,模擬地震預(yù)警信息發(fā)布的客戶端,并根據(jù)測試需要模擬運(yùn)行不同數(shù)量的客戶端,而服務(wù)端程序向各個(gè)客戶端發(fā)送地震預(yù)警消息,統(tǒng)計(jì)所有客戶端接收到數(shù)據(jù)時(shí)間與發(fā)送數(shù)據(jù)時(shí)間的時(shí)間差,同時(shí)進(jìn)行持續(xù)3個(gè)月的穩(wěn)定性測試。測試結(jié)果如圖9所示。

單臺服務(wù)器接收上萬臺客戶端的訂閱,隨著客戶端數(shù)量的增加,耗時(shí)有所增加,但仍能夠保證客戶端在1秒內(nèi)接收到數(shù)據(jù)。單臺服務(wù)器支持的客戶端數(shù)量完全可以滿足設(shè)計(jì)的需要。在3個(gè)月的測試過程中,消耗的處理器和內(nèi)存等系統(tǒng)資源占比平穩(wěn),程序運(yùn)行穩(wěn)定可靠。如果要向更多的用戶提供預(yù)警服務(wù),需要擴(kuò)充預(yù)警后臺服務(wù)器,形成服務(wù)器集群,提升服務(wù)能力。

4.4? 網(wǎng)絡(luò)環(huán)境測試

對社會公眾的發(fā)布方式應(yīng)該盡量多渠道,實(shí)現(xiàn)高覆蓋、高時(shí)效的推送[10]。隨著社會發(fā)展,智能手機(jī)的普及,手機(jī)具備GPS定位,移動(dòng)基站定位,Wi-Fi輔助定位三種常見的定位方式。手機(jī)定位豐富,有利于預(yù)警軟件的精確定位。一般情況下,用戶會隨身攜帶手機(jī),地震發(fā)生時(shí)用戶可以及時(shí)收到預(yù)警消息。只要網(wǎng)絡(luò)正常,就可以全天候任何時(shí)間段接收預(yù)警信息[11]。從這個(gè)角度上看,手機(jī)預(yù)警實(shí)用價(jià)值比Web端的大。Android端地震預(yù)警界面如圖10和圖11所示。

用戶的網(wǎng)絡(luò)環(huán)境包括Wi-Fi、4G無線網(wǎng)絡(luò)和5G無線網(wǎng)絡(luò)環(huán)境,在Wi-Fi網(wǎng)絡(luò)環(huán)境下,從日志系統(tǒng)獲知,系統(tǒng)的平均響應(yīng)時(shí)間為210毫秒,客戶端可以100%接收到預(yù)警信息;在4G無線網(wǎng)絡(luò)環(huán)境下,因網(wǎng)絡(luò)波動(dòng)較大,系統(tǒng)的平均響應(yīng)時(shí)間為850毫秒,查閱日志記錄會發(fā)現(xiàn)不少預(yù)警信息需要通過二次推送才能完成,某種程度上增加了系統(tǒng)的響應(yīng)時(shí)間。

5? 結(jié)? 論

本文基于ZeroMQ中間件、事件驅(qū)動(dòng)和Protobuf數(shù)據(jù)格式化等編程方法或技巧,根據(jù)業(yè)務(wù)需要,設(shè)計(jì)并實(shí)現(xiàn)了核心邏輯處理流程。經(jīng)過大量測試,與已有的地震預(yù)警信息系統(tǒng)相比,在數(shù)據(jù)處理速度方面可以提高1秒以上,并發(fā)用戶數(shù)提高了25%。在網(wǎng)絡(luò)傳輸方面也有較大的優(yōu)勢。

該地震預(yù)警信息分發(fā)系統(tǒng)具有如下特點(diǎn):(1)實(shí)時(shí)性,利用事件驅(qū)動(dòng)和Protobuf數(shù)據(jù)格式化技術(shù),提高了預(yù)警消息分發(fā)的速度,預(yù)警信息發(fā)布的時(shí)效性得以保證。(2)靈活性,信息發(fā)布系統(tǒng)發(fā)布的消息跟消息類型無關(guān),比較容易將此消息擴(kuò)展,并應(yīng)用在實(shí)時(shí)性要求較高的應(yīng)用場景中,如消防報(bào)警系統(tǒng)。(3)高性能,本系統(tǒng)在單臺服務(wù)器中可以接收上萬個(gè)用戶的訂閱,并能夠及時(shí)發(fā)布預(yù)警消息。經(jīng)過綜合測試驗(yàn)證,因本系統(tǒng)的設(shè)計(jì)方案與消息類型無關(guān),僅需將數(shù)據(jù)采集模塊替換成其他業(yè)務(wù)場景,本系統(tǒng)就可以分發(fā)其他對時(shí)效性要求高的業(yè)務(wù)消息,因此本系統(tǒng)不僅僅局限在地震預(yù)警方面,對消防、氣象等應(yīng)急領(lǐng)域具備一定的借鑒價(jià)值。

系統(tǒng)也存在一些不足,如測試場景單一、客戶端APP操作界面不夠友好、缺少統(tǒng)一的后臺管理界面,此類不足會在今后繼續(xù)完善和優(yōu)化。

參考文獻(xiàn):

[1] FESTA G,PICOZZI M,CARUSO A,et al. Performance of Earthquake Early Warning Systems during the 2016–2017 Mw 5-6.5 Central Italy Sequence [J]. Seismological research letters,2018,89(1):1-12.

[2] 蔡寅,張明,趙瑞,等.地震預(yù)警信息快速發(fā)布系統(tǒng)研究 [J].震災(zāi)防御技術(shù),2019,14(1):247-258.

[3] 馬強(qiáng).地震預(yù)警技術(shù)研究及應(yīng)用 [D].哈爾濱:中國地震局工程力學(xué)研究所,2008.

[4] 殷海濤,劉希強(qiáng),李杰,等.現(xiàn)今地震預(yù)警技術(shù)及其在國內(nèi)發(fā)展?fàn)顩r的探討 [J].中國地震,2012,28(1):1-9.

[5] 張紅才,金星,李軍,等.地震預(yù)警系統(tǒng)研究及應(yīng)用進(jìn)展 [J].地球物理學(xué)進(jìn)展,2013,28(2):706-719.

[6] 蒲鳳平,陳建政.基于ZeroMQ的分布式系統(tǒng) [J].電子測試,2012(7):24-29+33.

[7] 殷昊,沈奇威,王純.Protocol Buffer在Android企業(yè)云通訊錄中的應(yīng)用 [J].電信科學(xué),2012,28(9):148-151.

[8] 史棟杰.五種快速序列化框架的性能比較 [J].電腦知識與技術(shù),2010,6(34):9710-9711+9722.

[9] 李紀(jì)欣,王康,周立發(fā),等.Google Protobuf在Linux Socket通訊中的應(yīng)用 [J].電腦開發(fā)與應(yīng)用,2013,26(4):1-5.

[10] 張紅才,金星.地震預(yù)警信息可靠度研究 [J].地震學(xué)報(bào),2014,36(4):615-630+2.

[11] 陳會忠,侯燕燕,何加勇,等.日本地震預(yù)警系統(tǒng)日趨完善 [J].國際地震動(dòng)態(tài),2011(4):10-15.

作者簡介:張盼盼(1988—),男,漢族,江蘇漣水人,工程師,碩士,主要研究方向:地震信息網(wǎng)絡(luò)、地震預(yù)警技術(shù)等。

猜你喜歡
預(yù)警系統(tǒng)客戶端預(yù)警
超級秀場 大風(fēng)預(yù)警
學(xué)校肺結(jié)核流行趨勢控制及預(yù)警系統(tǒng)監(jiān)測分析
金融系統(tǒng)中的早期預(yù)警信號及其統(tǒng)計(jì)物理性質(zhì)
俄太空預(yù)警系統(tǒng)探測到64枚導(dǎo)彈發(fā)射
虛擬專用網(wǎng)絡(luò)訪問保護(hù)機(jī)制研究
新聞客戶端差異化發(fā)展策略
交通流量增長下的空管安全預(yù)警系統(tǒng)研究
卷煙工業(yè)企業(yè)產(chǎn)品質(zhì)量預(yù)警機(jī)制的建立
淺析IEEE 802.1x及其客戶端軟件
普陀区| 兴和县| 长子县| 涞水县| 昭苏县| 庆城县| 连州市| 星座| 溧阳市| 大渡口区| 介休市| 新密市| 陇南市| 府谷县| 甘孜| 宣化县| 盖州市| 高邑县| 保定市| 类乌齐县| 论坛| 温宿县| 闻喜县| 宕昌县| 广丰县| 额敏县| 驻马店市| 宁武县| 卢氏县| 彩票| 佳木斯市| 石泉县| 苏州市| 武功县| 根河市| 常山县| 高要市| 洛浦县| 区。| 澄江县| 会同县|