殷軼娜,劉靜聞,黃淼婉,王秀木
(遼寧省地震局,遼寧 沈陽 110034)
APP 是application 的縮寫,通常專指手機(jī)上的應(yīng)用軟件,或稱手機(jī)客戶端。APP 開發(fā)是指專注于手機(jī)應(yīng)用軟件的開發(fā)與服務(wù)。Google Play 又稱Play 商店,是由Google 公司為Android操作系統(tǒng)所開發(fā)的移動應(yīng)用程序數(shù)字發(fā)行平臺,它作為Android 操作系統(tǒng)的官方應(yīng)用商店,允許用戶瀏覽和下載使用Android SDK 開發(fā)并透過Google 發(fā)布的應(yīng)用程序。Google Play 通過應(yīng)用內(nèi)評價(In-APP review)API 可以第一時間將APP 用戶的使用反饋推送至APP 開發(fā)者,這使得眾APP 開發(fā)者擁有了直面用戶的機(jī)會,同時Google 較為科學(xué)和易為接受的創(chuàng)收策略也吸引了國內(nèi)眾多程序開發(fā)商將研發(fā)重心轉(zhuǎn)移到Android APP 上面。2010 年,Android 平臺在國內(nèi)手機(jī)市場上呈井噴態(tài)勢發(fā)展,APP 開發(fā)的前景極其廣闊。隨著搭載Google 系統(tǒng)的智能手機(jī)越發(fā)普及、用戶對手機(jī)軟件的越發(fā)依賴,APP開發(fā)的市場需求與發(fā)展前景也逐漸蓬勃。移動互聯(lián)網(wǎng)時代是全民的移動互聯(lián)網(wǎng)時代,是每個人的時代,APP 便捷了每個人的生活,APP 開發(fā)讓每個企事業(yè)單位都開始了移動信息化進(jìn)程。
當(dāng)今,網(wǎng)絡(luò)互動交流應(yīng)用平臺日益受到社會公眾的認(rèn)可,微博、微信、手機(jī)客戶端等已被公眾廣泛使用,并取得了很好的效果。充分利用這些資源優(yōu)勢并結(jié)合地震信息服務(wù)的特點,為公眾提供了豐富的地震信息服務(wù)。社會公眾可以通過上述各種渠道及時了解地震的相關(guān)信息,并幫助公眾掌握震情災(zāi)情、地震科技動向、地震科普知識等,同時運用自救互救技能還能保護(hù)自己,拯救他人生命。
每當(dāng)?shù)卣鸢l(fā)生后,政府、社會及地震系統(tǒng)相關(guān)部門,對地震三要素(地震發(fā)生的時間、地點、震級)、災(zāi)情、震后社會響應(yīng)等重要的震情十分關(guān)心。所以如何迅速而且準(zhǔn)確的發(fā)布震情相關(guān)信息,如何高效的使工作流程推進(jìn)顯得十分重要。只有快速發(fā)布震情信息,才能為后續(xù)的啟動相關(guān)應(yīng)急預(yù)案,震情分析,抗震救災(zāi)起到關(guān)鍵作用。
遼寧省境內(nèi)有郯城—營口地震帶,是我國東部大陸區(qū)一條強(qiáng)烈地震活動帶。1668 年山東郯城8.5 級地震、1969 年渤海7.4 級地震、1974 年海城7.4 級地震就發(fā)生在這個地震帶上,據(jù)記載,本帶共發(fā)生4.7 級以上地震60 余次。其中7~7.9 級地震6 次;8 級以上地震1 次。所以遼寧省地震局信息中心及遼寧地震臺也承擔(dān)著重要的地震速報及震情發(fā)布的任務(wù)。
隨著經(jīng)濟(jì)的發(fā)展,當(dāng)前群眾百姓的幸福感和安全感已經(jīng)不再僅滿足于衣食住行方面,而開始向更高的要求邁進(jìn),其中對地震信息情況發(fā)布相較前些年關(guān)注度更高。以往,我省地震信息僅在內(nèi)部短信上發(fā)布,但對普通百姓的信息公布則相對較慢。在過去的十幾年里,往往是地震過后我局值班電話因百姓過分關(guān)注而出現(xiàn)長時間無法連通的情況。
為有效緩解上述情況,順應(yīng)科技時代的發(fā)展要求,開發(fā)了本款A(yù)PP 能夠迅速向百姓推送速報信息,使百姓能夠根據(jù)速報信息進(jìn)行迅速撤離和避險。
基于Android 平臺的遼寧地震速報智能移動終端在系統(tǒng)總體架構(gòu)上分為三個層次,即客戶端、服務(wù)器端和數(shù)據(jù)端。客戶端為最終信息發(fā)布的平臺,通過數(shù)據(jù)轉(zhuǎn)化為JSON 展示地震數(shù)據(jù)。服務(wù)端需要通過主服務(wù)器分配的賬號和密碼,定時從主服務(wù)器抓取數(shù)據(jù),然后將該數(shù)據(jù)存儲到MySQL 數(shù)據(jù)庫中,例如{level:3,latitude:45,longitude:150,time:20150924053011}表示的是震級、經(jīng)緯度、時間。將抓取到的每條數(shù)據(jù)都存在數(shù)據(jù)庫中,供客戶端查詢。
客戶端通過HttpClient 這個類,發(fā)一個http的GET 請求,例如:http://your_server.com/earthquake/record/list?time=<當(dāng)前時間>,Web 服務(wù)器從MySQL 數(shù)據(jù)庫中查詢在此時間之后的存儲記錄,為此段時間內(nèi)發(fā)生的地震次數(shù);客戶端大概每3~5 秒請求一次,如果有新的記錄,就展示出來。服務(wù)器使用PHP 可直接通過json_encode 的方式,將MySQL 中查出來的數(shù)據(jù)轉(zhuǎn)化成JSON 格式,發(fā)給客戶端。
圖1 遼寧地震速報智能終端架構(gòu)圖Fig.1 Architecture diagram of Liaoning earthquake quick report intelligent terminal
實施技術(shù)的關(guān)鍵在于利用MySQL 數(shù)據(jù)庫中的地震事件數(shù)據(jù),在Web 服務(wù)器中使用PHP語言編寫程序,完成數(shù)據(jù)抓取并轉(zhuǎn)換為JSON格式。并繪制客戶端界面,把JSON 格式轉(zhuǎn)成文字,展示在界面上。
(1)環(huán)境部署
服務(wù)器配置:型號為聯(lián)想啟天M4500-N000,顯卡獨立2G,內(nèi)存容量4G,硬盤容量1TB,雙端口網(wǎng)卡。
系統(tǒng)運行環(huán)境:RedHat Linux 64 位操作系統(tǒng),分別配置內(nèi)網(wǎng)及公網(wǎng)IP 地址。配置系統(tǒng)防火墻,開放80、3306、22 端口。
軟件環(huán)境:Web 服務(wù)器:Apache/2.2.15(Unix)。語言環(huán)境:PHP5.3.3。數(shù)據(jù)庫:MySQL5.1.73
(2)編程語言:PHP,JavaScript,Python
(3)軟件邏輯結(jié)構(gòu)圖如圖2 所示。
圖2 軟件邏輯結(jié)構(gòu)圖Fig.2 Software logic structure diagram
客戶端通過抓取EQIM 數(shù)據(jù)庫的相關(guān)數(shù)據(jù),建立MySQL 的數(shù)據(jù)庫,進(jìn)行Web 服務(wù)器平臺的搭建,編寫PHP 程序,對地震信息相關(guān)數(shù)據(jù)進(jìn)行抓取,并將數(shù)據(jù)轉(zhuǎn)化為JSON 格式。
(1)建立MySQL 數(shù)據(jù)庫,創(chuàng)建相關(guān)表,抓取EQIM 數(shù)據(jù)庫地震數(shù)據(jù)。
圖3 程序流程圖Fig.3 Program flow chart
表1 信息表數(shù)據(jù)格式
圖4 抓取地震數(shù)據(jù)Fig.4 Grab seismic data
(2)使用Python 語言,抓取EQIM 數(shù)據(jù)庫地震數(shù)據(jù),部分關(guān)鍵代碼如下:
在客戶端中,需要畫出客戶端界面,并將JSON 格式轉(zhuǎn)成文字,展示在界面上。抓取Web服務(wù)器數(shù)據(jù)后,并轉(zhuǎn)JSON 格式,使用了PHP語言,關(guān)鍵語句代碼如下:
客戶端使用Java 語言,部分客戶端讀取地震記錄的代碼如下:
本軟件利用Android Studio 為開發(fā)工具,采用Java 語言實現(xiàn)了遼寧地震數(shù)據(jù)的實時推送,服務(wù)器端部署在遼寧省地震局信息中心核心機(jī)房服務(wù)器上,通過一段時間的測試運行,系統(tǒng)運維穩(wěn)定,主要功能均已實現(xiàn)。
圖5 軟件運行界面Fig.5 Software running interface
Android 系統(tǒng)手機(jī)在現(xiàn)代社會應(yīng)用廣泛,手機(jī)APP 方便下載,使用頻繁。可以使人們及時得到地震信息,從而減輕了地震值班電話的負(fù)擔(dān)?;贏ndroid 的地震速報軟件通過Android Studio 開發(fā)工具,在地震發(fā)生時,迅速推送事實情況,使用戶迅速了解地震的位置、震級、震源深度。對工作人員對資源進(jìn)行合理的指揮與調(diào)度,從而提高了救援的效率和能力。現(xiàn)有app 版本僅實現(xiàn)了Android 系統(tǒng)的速報信息推送功能。今后可以在此基礎(chǔ)上,繼續(xù)開發(fā)其他功能,增加用戶體驗。