趙俊香,朱培育,朱佳苗,施俊杰
(上海市地震局崇明地震臺(tái),上海 202164)
通過(guò)水氡觀測(cè)來(lái)進(jìn)行地震分析預(yù)報(bào)在國(guó)內(nèi)外地震前兆研究中占有重要地位,尤其是在我國(guó)地震地下流體學(xué)科研究中,與水位并列成為兩大主測(cè)項(xiàng)而受到重視[1-2]。科研人員在分析會(huì)商時(shí),選擇的測(cè)點(diǎn)數(shù)據(jù)越多,結(jié)果越真實(shí)、可靠。
目前,上海共有8個(gè)水氡測(cè)報(bào)點(diǎn)。崇明地震臺(tái)作為中國(guó)地震局專(zhuān)業(yè)臺(tái)站,其水氡數(shù)據(jù)已納入國(guó)家“十五”數(shù)據(jù)庫(kù),每日的氡測(cè)值通過(guò)前兆數(shù)據(jù)管理系統(tǒng)上傳。其余7個(gè)測(cè)報(bào)點(diǎn)的氡值數(shù)據(jù)分別由各測(cè)報(bào)點(diǎn)過(guò)一段時(shí)間通過(guò)郵件方式上報(bào)市局。市局的相關(guān)工作人員打開(kāi)郵箱,將各測(cè)報(bào)點(diǎn)的氡值分別復(fù)制、粘貼到自己創(chuàng)建的CSV文件中,一個(gè)測(cè)點(diǎn)一個(gè)文件。整個(gè)過(guò)程繁瑣且費(fèi)時(shí),數(shù)據(jù)的時(shí)效性差,且只有主樣氡值,無(wú)輔助測(cè)項(xiàng)數(shù)據(jù)。對(duì)于各測(cè)報(bào)點(diǎn)來(lái)說(shuō),由于相互之間不能進(jìn)行數(shù)據(jù)共享,不利于測(cè)報(bào)點(diǎn)科研人員開(kāi)展工作,數(shù)據(jù)的利用率較低。
互聯(lián)網(wǎng)技術(shù)的興起使數(shù)據(jù)庫(kù)的共享成為可能,特別是B/S結(jié)構(gòu)的運(yùn)用,使得這種共享變得更為簡(jiǎn)單。在這種結(jié)構(gòu)下,用戶界面可完全通過(guò)Web瀏覽器實(shí)現(xiàn),一部分事務(wù)邏輯在前端實(shí)現(xiàn),但是主要的事務(wù)邏輯在服務(wù)器端實(shí)現(xiàn)。文章設(shè)計(jì)和開(kāi)發(fā)出一套實(shí)現(xiàn)水氡數(shù)據(jù)上傳、下載與圖形顯示的管理系統(tǒng),解決上海區(qū)縣各水氡測(cè)點(diǎn)數(shù)據(jù)傳輸滯后、無(wú)法共享的問(wèn)題。
目前,較為常用的網(wǎng)頁(yè)編程語(yǔ)言有三種:ASP.NET、PHP、JSP。ASP.NET借鑒ASP以前版本的最大優(yōu)點(diǎn),參照J(rèn)ava、VB語(yǔ)言的開(kāi)發(fā)優(yōu)勢(shì)并加入許多新特色,具備開(kāi)發(fā)網(wǎng)站應(yīng)用程序的一切解決方案,同時(shí)使程序代碼看起來(lái)更潔凈、更簡(jiǎn)單[3-4]。鑒于此,系統(tǒng)研發(fā)采用ASP.NET網(wǎng)頁(yè)編程語(yǔ)言。
在數(shù)據(jù)庫(kù)的選取上,就數(shù)據(jù)量看,ACCESS數(shù)據(jù)庫(kù)能滿足需求,但其安全系數(shù)較低,運(yùn)行速度較慢,所以程序選用安全性更好、速度更快的SQL Server[5]數(shù)據(jù)庫(kù)。
在實(shí)現(xiàn)用戶與數(shù)據(jù)庫(kù)互通問(wèn)題上,由于服務(wù)器端架設(shè)在局域網(wǎng)內(nèi)部,而用戶沒(méi)有專(zhuān)線接入服務(wù)器,所以通過(guò)使用花生殼的動(dòng)態(tài)域名解析服務(wù)[6],實(shí)現(xiàn)外網(wǎng)訪問(wèn)內(nèi)網(wǎng)的功能。
經(jīng)需求分析和反復(fù)設(shè)計(jì),確定系統(tǒng)包含3大功能模塊就可以涵蓋測(cè)報(bào)點(diǎn)的日常工作,基本滿足局分析人員和測(cè)報(bào)點(diǎn)科研人員的研究工作。系統(tǒng)的功能模塊如圖1所示。

圖1 系統(tǒng)功能模塊圖Fig.1 Function module diagram of the system
系統(tǒng)采用B/S架構(gòu)[7-8],如圖2所示,主要分為用戶層、應(yīng)用層和數(shù)據(jù)層。用戶層又名表示層,即瀏覽器,主要完成用戶和后臺(tái)的交互及最終結(jié)果的輸出功能;應(yīng)用層為Internet Web服務(wù)器和花生殼動(dòng)態(tài)域名解析服務(wù),Web服務(wù)器接受用戶的請(qǐng)求,并與后臺(tái)數(shù)據(jù)服務(wù)器中的數(shù)據(jù)庫(kù)連接,進(jìn)行數(shù)據(jù)處理申請(qǐng),然后將數(shù)據(jù)處理的結(jié)果返回給Web服務(wù)器,再由Web服務(wù)器傳給用戶層。花生殼動(dòng)態(tài)域名解析服務(wù)解決公網(wǎng)IP地址不固定的問(wèn)題,通過(guò)端口映射,實(shí)現(xiàn)外網(wǎng)訪問(wèn)內(nèi)網(wǎng)的功能;數(shù)據(jù)層即數(shù)據(jù)庫(kù)服務(wù)器端。數(shù)據(jù)庫(kù)服務(wù)器應(yīng)用戶請(qǐng)求進(jìn)行數(shù)據(jù)庫(kù)輸入、查詢、修改、下載等各種處理,負(fù)責(zé)數(shù)據(jù)響應(yīng)和更新,完成數(shù)據(jù)存儲(chǔ)。

圖2 系統(tǒng)架構(gòu)圖Fig.2 System architecture diagram
在瀏覽器中輸入系統(tǒng)網(wǎng)址進(jìn)入系統(tǒng)界面,輸入事先設(shè)置好的用戶名和密碼后直接進(jìn)入數(shù)據(jù)輸入界面(見(jiàn)圖3)。這里設(shè)計(jì)有兩個(gè)區(qū)域:測(cè)項(xiàng)輸入?yún)^(qū)和水氡主、副樣顯示區(qū)。在測(cè)項(xiàng)輸入?yún)^(qū),取樣水溫和流量設(shè)置成前一天的數(shù)據(jù),這兩個(gè)量基本不變,批量輸入時(shí)直接跳過(guò),節(jié)省時(shí)間,數(shù)據(jù)輸入結(jié)束按“提交”即可;水氡主、副樣顯示區(qū)可顯示當(dāng)前日之前一個(gè)月的主、副樣數(shù)據(jù)圖形,覆蓋原有記錄選項(xiàng),相當(dāng)于修改,勾選此項(xiàng),選擇需修改的日期,清空原有數(shù)據(jù),重新輸入完畢后提交,即完成修改操作。
數(shù)據(jù)查詢界面如圖4所示,包含數(shù)據(jù)下載和圖形繪制功能,用戶根據(jù)需要可選擇下載或需繪制圖形的日期段、測(cè)點(diǎn)及測(cè)項(xiàng),下載的數(shù)據(jù)以文本文件的格式保存到本地計(jì)算機(jī),繪制的圖形直接在界面顯示。
在編程過(guò)程中,查詢?nèi)我鉁y(cè)項(xiàng)組合的圖形顯示是一個(gè)難點(diǎn)。由于帶繪圖的測(cè)項(xiàng)和測(cè)項(xiàng)總數(shù)均是隨機(jī)的,圖形框也最好是動(dòng)態(tài)增減,如果是預(yù)設(shè),除了全選外,必會(huì)在網(wǎng)頁(yè)留下空區(qū),嚴(yán)重影響網(wǎng)頁(yè)的美觀。設(shè)計(jì)時(shí)為實(shí)現(xiàn)圖形框動(dòng)態(tài)增減的關(guān)鍵代碼如下。
ReadDat() ’讀取數(shù)據(jù)模塊;
Panel1.Controls.Clear() ’清除原有的圖形框;
If Rn0Index Then;
Panel1.Controls.Add(ChartRn0) ’添加圖形框;
ChartRn0.Titles(0).Text = CMB_Station.Text.Trim + " 主樣" ’繪圖;
ChartRn0.Series(0).Points.DataBindXY(x, Rn0) ;
End If。

圖3 數(shù)據(jù)輸入界面Fig.3 Data input interface

圖4 數(shù)據(jù)查詢界面 Fig.4 Data query interface
該系統(tǒng)有效解決了上海區(qū)縣水氡數(shù)據(jù)的上傳、共享不及時(shí)等問(wèn)題,為局預(yù)報(bào)人員和區(qū)縣的科研人員使用數(shù)據(jù)提供了方便。據(jù)了解,其他觀測(cè)手段的地方測(cè)點(diǎn),只有小部分入國(guó)家數(shù)據(jù)庫(kù),大部分?jǐn)?shù)據(jù)產(chǎn)出之后的利用率較低,如何實(shí)現(xiàn)這些數(shù)據(jù)的有效利用,筆者認(rèn)為此文的思路可以借鑒。