燕 云,盧 山,劉天龍,趙 雷,羅 斐
(遼寧省地震局,遼寧 沈陽 110034)
近年來,在國(guó)家政策的支持下,地震觀測(cè)系統(tǒng)正經(jīng)歷著數(shù)字化、網(wǎng)絡(luò)化、規(guī)模化的歷史性跨越,地震觀測(cè)儀器已成為了具有重要科學(xué)價(jià)值和戰(zhàn)略價(jià)值的“國(guó)家科學(xué)觀測(cè)設(shè)施”。因此,對(duì)地震學(xué)科中的各種數(shù)據(jù),進(jìn)行現(xiàn)代化、高質(zhì)量、系統(tǒng)化的質(zhì)量監(jiān)控與管理,便成為了一個(gè)亟待解決的問題。
遼寧地震前兆臺(tái)網(wǎng)觀測(cè)臺(tái)站包括國(guó)家級(jí)臺(tái)站、省級(jí)臺(tái)站和市縣臺(tái)站,觀測(cè)類型包括“十五”觀測(cè)、“九五”觀測(cè)、人工與模擬觀測(cè)等,涉及形變、重力、地磁、地電和地下流體五個(gè)學(xué)科多個(gè)專業(yè)領(lǐng)域和多種觀測(cè)手段。觀測(cè)采樣方式為數(shù)字化采樣、模擬采樣和人工采樣并存。2017年遼寧區(qū)域臺(tái)網(wǎng)向國(guó)家中心報(bào)數(shù)臺(tái)站總數(shù)49個(gè),其中國(guó)家級(jí)臺(tái)站9個(gè),省級(jí)臺(tái)站17個(gè),市縣級(jí)臺(tái)站23個(gè),目前在運(yùn)行儀器171臺(tái)套,測(cè)項(xiàng)分量466個(gè)?!笆濉鳖愋蛢x器數(shù)量為103套、“九五”類型儀器為10套、“人工”類型儀器為40套、“模擬”類型儀器為18套。我省在全國(guó)各省級(jí)地震前兆臺(tái)網(wǎng)中屬于儀器數(shù)量較多的省份[1]。
因此有必要針對(duì)遼寧省地震前兆監(jiān)控?cái)?shù)據(jù)的監(jiān)控、整合和展示開發(fā)一套系統(tǒng)平臺(tái),方便更多的地震專業(yè)人員更充分地使用已有數(shù)據(jù)資源,減少資料收集、查詢、保管等工作,提高了技術(shù)人員使用數(shù)據(jù)、分析數(shù)據(jù)的工作效率。
建設(shè)分為兩個(gè)主要部分:硬件建設(shè)和軟件開發(fā)。
地震前兆臺(tái)網(wǎng)中心:由6臺(tái)65寸液晶電視機(jī)組成的大屏幕、及配套的工作站主機(jī)、操作臺(tái)及4臺(tái)臺(tái)式機(jī)(其中新更換2臺(tái))、服務(wù)器1臺(tái)、音頻系統(tǒng)1套。
圖1 地震前兆臺(tái)網(wǎng)中心硬件系統(tǒng)結(jié)構(gòu)Fig.1 Hardware system structure of Liaoning Earthquake Precursor Network Center
儀器維修中心:由2臺(tái)65寸液晶電視機(jī)組成的大屏幕、操作臺(tái)及2臺(tái)臺(tái)式機(jī)。
軟件開發(fā)主要包括,基于C/S(客戶端/服務(wù)器端)模式開發(fā)的可執(zhí)行程序——遼寧地震前兆臺(tái)網(wǎng)運(yùn)維監(jiān)控系統(tǒng),和基于B/S(瀏覽器端/服務(wù)器端)模式網(wǎng)絡(luò)版的——遼寧省地震局前兆監(jiān)控系統(tǒng),共用同一套數(shù)據(jù)庫和服務(wù)器,從而形成一套完整的監(jiān)控體系。
按當(dāng)前流行的程序設(shè)計(jì)方法,可將數(shù)據(jù)應(yīng)用程序分為兩類,一類是兩層結(jié)構(gòu)的數(shù)據(jù)應(yīng)用程序,另一類是三層結(jié)構(gòu)的數(shù)據(jù)應(yīng)用程序。遼寧省地震前兆監(jiān)控與數(shù)據(jù)處理平臺(tái)結(jié)合遼寧地震前兆臺(tái)網(wǎng)運(yùn)維監(jiān)控系統(tǒng)的用戶特點(diǎn),為了提高系統(tǒng)效率,采用了經(jīng)典的兩層結(jié)構(gòu)的系統(tǒng)架構(gòu),兩層結(jié)構(gòu)的特點(diǎn)是數(shù)據(jù)庫服務(wù)器管理數(shù)據(jù),而客戶端顯示、訪問和處理數(shù)據(jù)。這種架構(gòu)的特點(diǎn)是客戶端負(fù)荷比較大,但有效地減輕了服務(wù)器端的壓力。由于用戶監(jiān)控管理的客戶端是專用的,可以滿足這種需求[5]。
遼寧省地震局前兆監(jiān)控系統(tǒng)采用的是三層結(jié)構(gòu)的系統(tǒng)架構(gòu),包含展示層、業(yè)務(wù)層和持久層。提高了系統(tǒng)的靈活性、可移植性和穩(wěn)定性,符合不同部門工作人員的需求,便于后期維護(hù)和軟件升級(jí)。
圖2 三層結(jié)構(gòu)模型Fig.2 Three-tier architecture model
該平臺(tái)研發(fā)了一套適合于遼寧省地震局地震前兆臺(tái)網(wǎng)中心日常工作的綜合性平臺(tái),并且已經(jīng)投入使用,實(shí)現(xiàn)了對(duì)遼寧省地震前兆臺(tái)網(wǎng)所有儀器設(shè)備的全面監(jiān)控和管理,對(duì)收集的信息進(jìn)行統(tǒng)計(jì)分析,并通過大屏幕來進(jìn)行集中監(jiān)視。主要包括以下七個(gè)功能。
與有網(wǎng)絡(luò)攝像頭的臺(tái)站進(jìn)行視頻連接,將視頻接到綜合監(jiān)控平臺(tái)上,在1個(gè)屏幕上進(jìn)行集中監(jiān)視。具備一些常用的視頻監(jiān)視功能[3-4]。
實(shí)現(xiàn)了遼寧地震前兆臺(tái)網(wǎng)所有(地震前兆)臺(tái)站的空間分布的可視化、可縮放,點(diǎn)擊某臺(tái)站時(shí),以窗口方式顯示該臺(tái)站的簡(jiǎn)要基礎(chǔ)信息,可將某臺(tái)站放大至顯示臺(tái)站內(nèi)部的測(cè)點(diǎn)分布。定期連通儀器,巡查儀器的運(yùn)行狀態(tài),在1個(gè)屏幕上以空間分布圖的方式進(jìn)行集中監(jiān)視。運(yùn)行狀態(tài)分為正常、故障兩種。可按多種條件篩選儀器,如學(xué)科名稱、型號(hào)。
實(shí)現(xiàn)了多個(gè)臺(tái)項(xiàng)的觀測(cè)數(shù)據(jù)曲線的顯示,可定時(shí)自動(dòng)從數(shù)據(jù)庫更新曲線。在這個(gè)屏幕上也可切換為顯示實(shí)時(shí)曲線(短時(shí)間顯示)??砂炊喾N條件篩選儀器,如學(xué)科手段、測(cè)項(xiàng)。
包括兩種情況,一是遼寧地震前兆臺(tái)網(wǎng)中心,二是東北片區(qū)儀器維修中心。地震前兆臺(tái)網(wǎng)中心是實(shí)現(xiàn)了儀器信息的列表顯示,可按多種條件篩選儀器,如按時(shí)間段(當(dāng)年、當(dāng)月、任意時(shí)間段)、學(xué)科手段、測(cè)項(xiàng)??娠@示儀器生命周期的各種統(tǒng)計(jì)信息,儀器類型統(tǒng)計(jì)信息、儀器故障統(tǒng)計(jì)信息等;東北片區(qū)儀器維修中心是在片區(qū)維修中心,顯示片區(qū)儀器維修情況,包括接收的儀器總套數(shù)、已修復(fù)的儀器套數(shù)、報(bào)廢的儀器套數(shù)、在修的儀器套數(shù)等,可按多種條件篩選儀器,如時(shí)間段(當(dāng)年、當(dāng)月、任意時(shí)間段)、省、學(xué)科手段、測(cè)項(xiàng)。
實(shí)現(xiàn)了顯示信息節(jié)點(diǎn)臺(tái)站的地震前兆數(shù)據(jù)庫空間使用情況,對(duì)剩余空間小于一定比例的臺(tái)站以高亮顯示。
實(shí)現(xiàn)了對(duì)臺(tái)站每日日常工作的流程化管理,每完成一項(xiàng)工作,就點(diǎn)個(gè)按鈕,在監(jiān)控大屏上,集中展示每個(gè)臺(tái)站日常工作完成情況。
儀器的狀態(tài)信息是本項(xiàng)目要監(jiān)控和管理的重要信息,因此,需要完善目前地震前兆臺(tái)網(wǎng)儀器的管理,實(shí)現(xiàn)對(duì)每臺(tái)儀器整個(gè)生命周期的運(yùn)行情況進(jìn)行全程跟蹤管理,形成儀器完整檔案。這個(gè)功能是管理模塊,主要用于全面采集儀器的各種狀態(tài)信息,并進(jìn)行統(tǒng)計(jì)分析,產(chǎn)出統(tǒng)計(jì)分析報(bào)告。
由于C/S模型——遼寧省地震前兆臺(tái)網(wǎng)運(yùn)維監(jiān)控系統(tǒng)與B/S模型——遼寧省地震局前兆監(jiān)控系統(tǒng)采用兩種不同語言進(jìn)行編譯,先分別對(duì)兩個(gè)模型的關(guān)鍵技術(shù)進(jìn)行介紹。
該系統(tǒng)采用.NET平臺(tái)進(jìn)行開發(fā)。采用C#開發(fā),與后臺(tái)數(shù)據(jù)庫的連接通過Oracle客戶端進(jìn)行。由于本系統(tǒng)的開發(fā)和部署環(huán)境及節(jié)點(diǎn)范圍與“前兆臺(tái)網(wǎng)數(shù)據(jù)處理系統(tǒng)”相同,因此為了簡(jiǎn)化部署,將本系統(tǒng)集成在“前兆臺(tái)網(wǎng)數(shù)據(jù)處理系統(tǒng)”中,通過更新“前兆臺(tái)網(wǎng)數(shù)據(jù)處理系統(tǒng)”的可執(zhí)行文件QZPROCESS.EXE文件直接部署[5]。
圖3 .NET平臺(tái)編譯過程Fig.3 Compilation process of.NET platform
.NET框架由兩個(gè)主要部分組成:公共語言運(yùn)行時(shí)庫 (Common Language Runtime,CLR)和.NET框架類庫,它與操作平臺(tái)以及Visual Studio.NET的關(guān)系如下圖所示。
公共語言運(yùn)行時(shí)庫(CLR)管理著編譯過的.NET程序的執(zhí)行情況,CLR的角色類似于Java虛擬機(jī),CLR是所有.NET語言的運(yùn)行時(shí)庫,它的功能是執(zhí)行和管理以任何能夠用于.NET平臺(tái)的語言編寫的所有代碼,還可處理和管理程序運(yùn)行過程中的其他一些方面,如:類型、版本以及其他相關(guān)信息、垃圾收集、代碼檢查、代碼訪問的安全性等。在執(zhí)行代碼的過程中,CLR使用另一種編譯器將IL語言編譯為特定于程序運(yùn)行平臺(tái)的機(jī)器代碼[5]。
B/S模式(網(wǎng)頁)采用了最先進(jìn)的MVC架構(gòu),用JAVA和JS編寫,部署在專門的服務(wù)器上,服務(wù)器操作系統(tǒng)為最新的Linux系統(tǒng),Web服務(wù)器采用開源的Apache Tomcat,前臺(tái)頁面主要用HTML語言及CSS語言實(shí)現(xiàn),利用百度地圖 API、Jquery、Echarts、Fusionchart等插件實(shí)現(xiàn)了數(shù)據(jù)的可視化地圖和圖表展示[2]。
圖4 MVC模型的關(guān)系和功能Fig.4 Relationships and functions of MVC model
本節(jié)將對(duì)該平臺(tái)的建設(shè)完成后的實(shí)際運(yùn)行情況進(jìn)行展示,并且針對(duì)較為典型的儀器運(yùn)行監(jiān)控和數(shù)據(jù)曲線監(jiān)控進(jìn)行操作顯示[2]。
圖5 監(jiān)控平臺(tái)整體效果圖Fig.5 The overall effect map of monitoring platform
“儀器運(yùn)行監(jiān)控”功能用于對(duì)儀器運(yùn)行進(jìn)行監(jiān)視。它以一定時(shí)間間隔定期連接儀器、獲取儀器狀態(tài)信息并進(jìn)行分析來判斷儀器運(yùn)行是否正常,當(dāng)儀器運(yùn)行不正常時(shí)通過聲音發(fā)出警報(bào)。
圖6 儀器運(yùn)行監(jiān)控界面Fig.6 The monitoring interface of the instrument operation
圖6可分為以下幾部分:
(1)左上是省局所有儀器的列表,用于從中選擇要監(jiān)視的儀器。
(2)左下是用戶選擇要監(jiān)視的儀器列表。從左上的儀器列表中點(diǎn)擊某儀器后,點(diǎn)擊“添加監(jiān)視”按鈕可將該儀器添加到要監(jiān)視的儀器列表中。點(diǎn)擊“全部添加”可將所有儀器添加到要監(jiān)視的儀器列表中。
(3)點(diǎn)擊本列表框中的某儀器或連續(xù)選擇多臺(tái)儀器,再點(diǎn)擊“刪除監(jiān)視”按鈕,可將這些儀器從刪除列表中刪除。
(4)設(shè)置監(jiān)視參數(shù)
①“刷新間隔(分)”:?jiǎn)?dòng)監(jiān)視后,軟件將每隔一定時(shí)間間隔對(duì)監(jiān)視的儀器進(jìn)行巡查一次。這里設(shè)置的就是巡查的間隔時(shí)間,以分鐘為單位,缺省為60分鐘。建議間隔不要小于5分鐘,以免太密集的儀器巡查會(huì)對(duì)儀器的正常觀測(cè)產(chǎn)生影響。
②“允許時(shí)鐘差(秒)”:巡查儀器時(shí)會(huì)檢查儀器的時(shí)鐘與運(yùn)行軟件的計(jì)算機(jī)的時(shí)鐘進(jìn)行對(duì)比,兩種相差超過這個(gè)值時(shí),就會(huì)被作為一項(xiàng)異常,顯示在右邊的窗口中。
③“聲音報(bào)警”:設(shè)置在巡查儀器發(fā)現(xiàn)異常時(shí),是否通過聲音報(bào)警。
(5)點(diǎn)擊“啟動(dòng)監(jiān)視”按鈕,將對(duì)要監(jiān)視的儀器列表框中的儀器啟動(dòng)監(jiān)視,它對(duì)所有要監(jiān)視的儀器逐臺(tái)進(jìn)行連接、登錄,登錄成功后獲取儀器狀態(tài)信息并進(jìn)行分析來判斷儀器運(yùn)行是否正常。
(6)點(diǎn)擊“停止監(jiān)視”按鈕,將停止對(duì)所有儀器的監(jiān)視。在需要時(shí),可再次點(diǎn)擊“啟動(dòng)監(jiān)視”按鈕啟動(dòng)監(jiān)視。
(7)點(diǎn)擊“數(shù)據(jù)監(jiān)視”按鈕,從儀器調(diào)取當(dāng)天0時(shí)開始的數(shù)據(jù),在單獨(dú)的窗體中繪圖顯示,并按上面設(shè)置的時(shí)間間隔刷新數(shù)據(jù)。這個(gè)功能顯示的是一個(gè)準(zhǔn)實(shí)時(shí)的數(shù)據(jù)曲線。這個(gè)按鈕點(diǎn)擊啟動(dòng)了數(shù)據(jù)監(jiān)視之后,就會(huì)變?yōu)椤巴V箶?shù)據(jù)監(jiān)視”,此時(shí)點(diǎn)擊后,就停止準(zhǔn)實(shí)時(shí)的數(shù)據(jù)曲線刷新。
(8)右下角是一個(gè)餅圖,顯示的是正常與異常儀器的數(shù)量。
(9)窗體右下底部有兩個(gè)功能按鈕:
①“查看前XX天數(shù)據(jù)”:從儀器調(diào)取前XX天數(shù)據(jù),并繪圖顯示。天數(shù)可從下列列表中選擇,其值從1~14天。
②“查看前XX天日志”:從儀器調(diào)取前XX天運(yùn)行日志,并列表顯示。天數(shù)可從下列列表中選擇,其值從1~14天。
“數(shù)據(jù)監(jiān)控”功能通過數(shù)據(jù)曲線圖對(duì)數(shù)據(jù)進(jìn)行監(jiān)視。這個(gè)功能與上面“儀器運(yùn)行監(jiān)控”中的數(shù)據(jù)監(jiān)視不同之處在于,這個(gè)功能是從數(shù)據(jù)庫中讀取數(shù)據(jù)并繪圖顯示,而“儀器運(yùn)行監(jiān)控”中的數(shù)據(jù)監(jiān)視是從儀器直接讀取數(shù)據(jù)并繪圖顯示[2]。
圖7 數(shù)據(jù)曲線監(jiān)控主界面Fig.7 The main monitoring interface of data curve
窗體左邊是選項(xiàng),用于過濾臺(tái)項(xiàng)列表框中的臺(tái)項(xiàng)。選項(xiàng)包括區(qū)域、采樣率、數(shù)據(jù)類型、測(cè)項(xiàng)等。
窗體右邊是臺(tái)項(xiàng)列表框,它以樹的形式列出臺(tái)項(xiàng)。每個(gè)臺(tái)項(xiàng)前都有一個(gè)復(fù)選框,打勾表示選中。
點(diǎn)擊“開始”按鈕,將對(duì)所有選中的臺(tái)項(xiàng)開始進(jìn)行監(jiān)視。本模塊將按指定時(shí)間間隔,從數(shù)據(jù)庫中讀取最新數(shù)據(jù),刷新曲線圖。
圖8 數(shù)據(jù)曲線波形顯示界面Fig.8 The display monitoring interface of data curve waveform
地震前兆應(yīng)急監(jiān)控與數(shù)據(jù)處理項(xiàng)目是遼寧地震前兆臺(tái)網(wǎng)運(yùn)維監(jiān)控平臺(tái)建設(shè),它的目標(biāo)是本著統(tǒng)一規(guī)劃、逐步實(shí)施的原則,實(shí)現(xiàn)對(duì)遼寧省地震前兆臺(tái)網(wǎng)所有儀器設(shè)備的全面監(jiān)控和管理,對(duì)收集的信息進(jìn)行統(tǒng)計(jì)分析,并通過大屏幕系統(tǒng)進(jìn)行集中監(jiān)視,清除管理死角,提高工作效率。