• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

      觀察者模式在地震預(yù)警系統(tǒng)中的應(yīng)用

      2021-03-13 14:38:43周躍勇李水龍于偉恒周施文
      現(xiàn)代信息科技 2021年15期
      關(guān)鍵詞:觀察者預(yù)警系統(tǒng)波形

      周躍勇 李水龍 于偉恒 周施文

      摘? 要:觀察者模式定義對(duì)象間一對(duì)多的依賴關(guān)系,通過(guò)松耦合設(shè)計(jì)使對(duì)象間的依賴最小化。從地震預(yù)警系統(tǒng)研發(fā)的角度來(lái)看,波形數(shù)據(jù)的實(shí)時(shí)接收與高效處理是一個(gè)關(guān)鍵難點(diǎn)。通過(guò)應(yīng)用觀察者模式,實(shí)現(xiàn)了波形接收與數(shù)據(jù)處理的功能解耦,允許系統(tǒng)動(dòng)態(tài)靈活地加入新的波形數(shù)據(jù),提升了系統(tǒng)的可擴(kuò)展性,使得系統(tǒng)具備較好的演化能力,能夠較好地適應(yīng)新的業(yè)務(wù)需求。

      關(guān)鍵詞:地震預(yù)警;觀察者模式;發(fā)布-訂閱模式;功能解耦

      中圖分類(lèi)號(hào):TP311;P315? ? ? ? ? ? ? ? ? ?文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):2096-4706(2021)15-0128-03

      Abstract: The observer pattern defines one-to-many dependencies among objects, and minimizes the dependencies among objects through loose coupling design. From the perspective of the research and development of earthquake early warning system, the real-time receiving and efficient processing of waveform data is a key difficulty. Through the application of observer pattern, the function decoupling of waveform receiving and data processing is realized, which allows the system to dynamically and flexibly add new waveform data, improves the scalability of the system, and makes the system have better evolution ability, and can better adapt to new business requirements.

      Keywords: earthquake early warning; observer pattern; publish-subscribe mode; function decoupling

      0? 引? 言

      地震預(yù)警,是在地震發(fā)生后,基于地震發(fā)生地附近地震臺(tái)站實(shí)時(shí)觀測(cè)到的地震波初期信息,快速估計(jì)地震參數(shù)并預(yù)測(cè)地震對(duì)周?chē)貐^(qū)的影響程度,搶在破壞性地震波到達(dá)震中周?chē)念A(yù)警目標(biāo)區(qū)之前,發(fā)出主要震動(dòng)的強(qiáng)度和到達(dá)時(shí)間的預(yù)警信息。預(yù)警目標(biāo)區(qū)內(nèi)民眾和企業(yè)可以根據(jù)預(yù)警信息啟動(dòng)地震應(yīng)急處置措施,以達(dá)到減少地震人員傷亡以及降低地震次生災(zāi)害損失的目的。

      我國(guó)自2001年起開(kāi)啟地震預(yù)警技術(shù)研究,并在汶川地震后,開(kāi)始加速地震預(yù)警系統(tǒng)的研究和建設(shè),相繼建成福建、首都圈和甘肅等地震預(yù)警示范系統(tǒng)。2010年,“國(guó)家地震烈度速報(bào)與預(yù)警工程”獲得立項(xiàng),2015年6月項(xiàng)目獲得國(guó)家發(fā)展改革委批準(zhǔn),項(xiàng)目完成后我國(guó)五大重點(diǎn)預(yù)警區(qū)地震臺(tái)網(wǎng)平均臺(tái)間距達(dá)到12公里。對(duì)地震預(yù)警系統(tǒng)的研發(fā)來(lái)說(shuō),波形數(shù)據(jù)的實(shí)時(shí)接收與高效處理是一個(gè)難點(diǎn)問(wèn)題,尤其是隨著國(guó)家工程的落地實(shí)施,全國(guó)地震臺(tái)網(wǎng)臺(tái)站規(guī)模不斷增加,對(duì)地震預(yù)警系統(tǒng)的處理能力提出了更高的要求。為了實(shí)現(xiàn)地震事件的定位、震級(jí)量算以及震動(dòng)場(chǎng)預(yù)測(cè)等功能,需要對(duì)波形數(shù)據(jù)進(jìn)行多種形式的在線處理,以適應(yīng)海量多源異構(gòu)數(shù)據(jù)的高效處理。為了更好地支持地震預(yù)警的高效處理和功能擴(kuò)展,需要在波形數(shù)據(jù)的實(shí)時(shí)接收與高效處理之間建立靈活的動(dòng)態(tài)關(guān)聯(lián),允許根據(jù)實(shí)際情況在需要時(shí)引入新的波形數(shù)據(jù)處理能力。

      這需要我們?cè)谘邪l(fā)地震預(yù)警系統(tǒng)時(shí),尋找支持在波形數(shù)據(jù)源與后續(xù)處理之間提供靈活可擴(kuò)展關(guān)聯(lián)的技術(shù)手段,觀察者模式能夠較好地解決地震預(yù)警系統(tǒng)的靈活擴(kuò)展問(wèn)題,本文以福建省地震局研發(fā)的地震預(yù)警系統(tǒng)為例,介紹觀察者模式在地震預(yù)警系統(tǒng)中的應(yīng)用。

      1? 觀察者模式

      觀察者模式是一種行為模式,定義對(duì)象間的一種一對(duì)多的依賴關(guān)系,當(dāng)一個(gè)對(duì)象的狀態(tài)發(fā)生改變時(shí),所有依賴于它的對(duì)象都將得到通知并被自動(dòng)更新,也被稱為發(fā)布—訂閱模式,該模式中的關(guān)鍵對(duì)象是主題和觀察者。

      2? 應(yīng)用場(chǎng)景分析

      從上文可知,觀察者模式能夠在緊密協(xié)作的對(duì)象間建立起靈活的關(guān)聯(lián),達(dá)到功能解耦的目的,很適合應(yīng)用于地震預(yù)警系統(tǒng),搭建一套靈活可擴(kuò)展的動(dòng)態(tài)關(guān)聯(lián)機(jī)制,解決波形數(shù)據(jù)接收與高效處理之間的難點(diǎn)問(wèn)題。

      通常,對(duì)波形數(shù)據(jù)進(jìn)行接收和處理的典型做法為:在接收到新的波形數(shù)據(jù)后,依次調(diào)用仿真變換、震相撿拾、卓越周期計(jì)算、幅值量測(cè)等處理過(guò)程。這是一個(gè)串行的調(diào)用處理流程,只有在整個(gè)處理過(guò)程完成后,才能接收下一批新的波形數(shù)據(jù)。對(duì)于7×24小時(shí)無(wú)間斷、每個(gè)通道每秒采樣上百次的地震監(jiān)測(cè)來(lái)說(shuō),處理過(guò)程中很容易形成堵塞導(dǎo)致數(shù)據(jù)滯后,從而影響對(duì)地震事件的實(shí)時(shí)監(jiān)測(cè)處理。圖1是常規(guī)處理流程示意圖。

      應(yīng)用觀察者模式后,以波形數(shù)據(jù)接收為主題,以仿真變換、震相撿拾、卓越周期計(jì)算、幅值量測(cè)等處理作為觀察者,與主題之間建立起動(dòng)態(tài)的關(guān)聯(lián)。當(dāng)有新的波形數(shù)據(jù)到達(dá)時(shí),這些觀察者及時(shí)得到通知,從而取得剛到的波形數(shù)據(jù),獨(dú)立進(jìn)行各自的計(jì)算操作,同時(shí)可以繼續(xù)接收下一批新的波形數(shù)據(jù),形成不間斷的循環(huán)處理流程。通過(guò)觀察者模式的應(yīng)用,有效提升了整個(gè)環(huán)節(jié)的處理效率,保證了地震預(yù)警的時(shí)間效能。圖2是應(yīng)用觀察者模式的處理流程示意圖。

      3? 方案設(shè)計(jì)與實(shí)現(xiàn)

      在觀察者模式中,主題與觀察者的互動(dòng)協(xié)作包含兩部分內(nèi)容:

      (1)主題提供的注冊(cè)、注銷(xiāo)功能,供觀察者調(diào)用從而完成兩者之間的動(dòng)態(tài)關(guān)聯(lián),以及當(dāng)主題的狀態(tài)發(fā)生變化時(shí)用于告訴觀察者的通知功能。

      (2)主題的狀態(tài)發(fā)生變化觸發(fā)觀察者對(duì)應(yīng)的處置操作的功能。第一部分的功能較為通用,第二部分的功能與具體的應(yīng)用情景有關(guān)。在設(shè)計(jì)解決方案時(shí),可以根據(jù)通用程度的不同而分層實(shí)現(xiàn)兩部分的功能。

      為了提高解決方案的復(fù)用能力,在系統(tǒng)里首先設(shè)計(jì)一套通用的觀察者模式框架,實(shí)現(xiàn)觀察者模式的注冊(cè)、注銷(xiāo)、通知等基礎(chǔ)功能。在解決具體應(yīng)用問(wèn)題時(shí),根據(jù)實(shí)際業(yè)務(wù)的要求,在繼承通用框架資源的基礎(chǔ)上,實(shí)現(xiàn)具體的主題和處理接口,從而保持資源復(fù)用和靈活擴(kuò)展之間的平衡。

      圖3是通用觀察者框架的示意類(lèi)圖,利用了Java語(yǔ)言的模板機(jī)制,較好地實(shí)現(xiàn)了觀察者模式通用處理邏輯與業(yè)務(wù)處理邏輯的分離。

      以下是通用觀察者框架實(shí)現(xiàn)的部分核心代碼。類(lèi)AbstractObservable<E>是利用模版機(jī)制實(shí)現(xiàn)的抽象主題,解耦了注冊(cè)、注銷(xiāo)、通知等通用邏輯與具體的業(yè)務(wù)處理邏輯(由觀察者E實(shí)現(xiàn))的分離。

      public abstract class AbstractObservable<E> {//E:觀察者實(shí)現(xiàn)的接口

      protected List<E> observers = new CopyOnWrite ArrayList<E>();

      //添加新的觀察者

      public void register(E observer) {

      if (!observers.contains(observer)) {

      observers.add(observer);

      }

      }

      //注銷(xiāo)指定觀察者

      public void unregister(E observer) {

      if (observers.contains(observer)) { observers.remove(observer);

      }

      }

      //依次通知觀察者

      protected final void invoke(Object[] obs) {

      ArrayList<E> errors = new ArrayList<E>();

      for (E observer: observers) {

      try {

      invokeObserver(observer, obs);

      }catch(Exception e) {

      logger.error(“”+observer, e);

      errors.add(observer);

      }

      }

      }

      //子類(lèi)必須覆蓋本函數(shù)

      protected abstract void invokeObserver(E observer, Object[] obs);

      }

      具體到波形數(shù)據(jù)接收與處理,仿真變換、震相撿拾、震級(jí)量測(cè)等處理的算法邏輯的差異性是比較大的,需要對(duì)這些處理進(jìn)行抽象提煉,形成統(tǒng)一標(biāo)準(zhǔn)的操作接口。

      由此設(shè)計(jì)了IDataArrive接口,用于定義波形數(shù)據(jù)處理的標(biāo)準(zhǔn)函數(shù)規(guī)格。以下是關(guān)于波形數(shù)據(jù)接收處理的觀察者模式具體實(shí)現(xiàn)的核心代碼。類(lèi)DataArriveObservable是波形數(shù)據(jù)到達(dá)的具體主題,繼承了抽象主題AbstractObservable <IDataArrive>,此處用接口IDataArrive代表了模版E的實(shí)現(xiàn)。

      public class DataArriveObservable extends Abstract Observable<IDataArrive> {

      //供外部調(diào)用通知觀察者

      public void notifyObservers(byte[] data) {

      Object[] obs = new Object[]{data};

      super.invoke(obs);

      }

      //通知具體觀察者

      protected void invokeObserver(IDataArrive observer, Object[] obs) {

      byte[] data = (byte[])obs[0];

      observer.dataArrive(data);

      }

      }

      public interface IDataArrive {

      public void dataArrive(byte[] data);

      }

      圖4是波形數(shù)據(jù)接收處理的觀察者實(shí)現(xiàn)的調(diào)用序列圖。

      地震預(yù)警系統(tǒng)需要7×24小時(shí)實(shí)時(shí)不間斷地高效處理海量臺(tái)站的地震波形數(shù)據(jù),圖5為系統(tǒng)運(yùn)行后臺(tái)界面。

      4? 結(jié)? 論

      通過(guò)在地震預(yù)警系統(tǒng)中應(yīng)用觀察者模式,結(jié)合配置信息,允許系統(tǒng)動(dòng)態(tài)靈活地加入新的波形數(shù)據(jù),提升了系統(tǒng)的可擴(kuò)展性,隨著對(duì)地震預(yù)警技術(shù)研究的不斷深入,基于觀察者模式的地震預(yù)警系統(tǒng)能夠?qū)崿F(xiàn)模塊化擴(kuò)展和升級(jí)完善,使得系統(tǒng)具備較好的演化能力,能夠較好地適應(yīng)新的業(yè)務(wù)需求。隨著國(guó)家地震烈度速報(bào)與預(yù)警工程的實(shí)施,我國(guó)地震臺(tái)網(wǎng)規(guī)??焖僭黾?,地震臺(tái)站數(shù)量由千臺(tái)級(jí)邁向萬(wàn)臺(tái)級(jí),觀察者模式實(shí)現(xiàn)了波形接收與數(shù)據(jù)處理的功能解耦,為地震預(yù)警系統(tǒng)由單臺(tái)處理向集群化處理的轉(zhuǎn)變奠定了技術(shù)基礎(chǔ)。

      參考文獻(xiàn):

      [1] 埃里克·伽瑪.設(shè)計(jì)模式——可復(fù)用面向?qū)ο筌浖幕A(chǔ) [M].李英軍,等譯.北京:機(jī)械工業(yè)出版社,2019.

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

      [3] 張紅才.地震預(yù)警系統(tǒng)關(guān)鍵技術(shù)研究 [D].哈爾濱:中國(guó)地震局工程力學(xué)研究所,2014.

      [4] 李山有,金星,馬強(qiáng),等.地震預(yù)警系統(tǒng)與智能應(yīng)急控制系統(tǒng)研究 [J].世界地震工程,2004(4):21-26.

      [5] 馬強(qiáng).強(qiáng)震觀測(cè)數(shù)據(jù)實(shí)時(shí)處理方法的研究 [D].哈爾濱:中國(guó)地震局工程力學(xué)研究所,2002.

      [6] 趙鶴,洪玫,楊秋輝,等.基于觀察者模式的實(shí)時(shí)系統(tǒng)驗(yàn)證方法 [J].計(jì)算機(jī)科學(xué),2017,44(12):156-162+174.

      作者簡(jiǎn)介:周躍勇(1975—),男,漢族,福建連城人,工程師,碩士研究生,研究方向:地震預(yù)警與烈度速報(bào)技術(shù)研究與系統(tǒng)研發(fā)。

      3618500338290

      猜你喜歡
      觀察者預(yù)警系統(tǒng)波形
      觀察者
      對(duì)《壓力容器波形膨脹節(jié)》2018版新標(biāo)準(zhǔn)的理解及分析
      民用飛機(jī)機(jī)載跑道入侵預(yù)警系統(tǒng)仿真驗(yàn)證
      一種基于CNN遷移學(xué)習(xí)的井下煙、火智能感知預(yù)警系統(tǒng)
      基于ZigBee與GPRS的輸電桿塔傾斜監(jiān)測(cè)預(yù)警系統(tǒng)
      電子制作(2019年11期)2019-07-04 00:34:36
      冷靜而又理性的觀察者——德國(guó)華人作家劉瑛訪談
      基于LFM波形的靈巧干擾效能分析
      橋、隧安全防范聲光預(yù)警系統(tǒng)
      基于ARM的任意波形電源設(shè)計(jì)
      大連臺(tái)使用CTS-1記錄波形特點(diǎn)
      永昌县| 清河县| 襄垣县| 马龙县| 铜梁县| 金湖县| 白沙| 本溪| 九寨沟县| 吐鲁番市| 琼结县| 新兴县| 伽师县| 南宫市| 巴林左旗| 昭苏县| 柳州市| 高淳县| 甘肃省| 宁乡县| 罗平县| 瑞丽市| 建始县| 渭源县| 天门市| 沈丘县| 仁寿县| 通城县| 准格尔旗| 芮城县| 稷山县| 南川市| 田林县| 遵义县| 卫辉市| 峨眉山市| 类乌齐县| 封丘县| 五大连池市| 老河口市| 株洲市|