羅 勇,趙曉云
(山西省地震局,太原 030021)
地震信息多平臺快速發(fā)布系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
羅 勇,趙曉云
(山西省地震局,太原 030021)
針對地震日常信息和地震應(yīng)急信息發(fā)布不及時、發(fā)布工作量大的問題,本系統(tǒng)通過EQIM系統(tǒng)和地震日報數(shù)據(jù)庫獲取數(shù)據(jù),經(jīng)過數(shù)據(jù)的解析和重組生成地震速報、地震快報和地震日報等信息,利用網(wǎng)站內(nèi)容管理平臺、微信公眾平臺及微博的信息推送接口,實(shí)現(xiàn)了地震信息的多平臺快速發(fā)布,已應(yīng)用在日常工作中,提高了地震行業(yè)的服務(wù)水平,并展示了系統(tǒng)應(yīng)用情況及運(yùn)行狀態(tài)。
地震信息;互聯(lián)網(wǎng)+;多平臺;新媒體;發(fā)布
地震速報、地震目錄等信息對震后應(yīng)急處置、民眾學(xué)習(xí)參考、地震科普宣傳教育有重要作用,如何將這些地震信息快速生成并通過媒體發(fā)布具有較大的研究意義。如今,互聯(lián)網(wǎng)發(fā)展迅速,“互聯(lián)網(wǎng)+”成為新時代中國發(fā)展的潮流,“互聯(lián)網(wǎng)+地震”的概念在地震行業(yè)應(yīng)運(yùn)而生?;诨ヂ?lián)網(wǎng)媒體具有信息發(fā)布及傳播的速度和受眾面遠(yuǎn)遠(yuǎn)高于傳統(tǒng)媒體這一特點(diǎn),如何將地震行業(yè)產(chǎn)出的地震信息通過互聯(lián)網(wǎng)快速、準(zhǔn)確、多維度地向公眾發(fā)布,為社會提供更好的服務(wù),成為地震信息發(fā)布服務(wù)研究的焦點(diǎn)。
微博是一種允許用戶及時更新簡短文本(通常少于140字)并可以公開發(fā)布的微型博客形式,它允許任何人閱讀或者只能由用戶選擇的群組閱讀。隨著網(wǎng)絡(luò)技術(shù)的發(fā)展,微博在人們?nèi)粘P畔鞑シ绞街邪缪葜匾慕巧K梢允谷藗兏涌焖?、方便地獲取到各種信息,從微博的留言等信息得到對某一事件各種不同的意見和聲音,從而對信息有更加全面地了解。微博的這些優(yōu)點(diǎn),促使各個行業(yè)使用微博進(jìn)行信息發(fā)布或者宣傳。汶川地震時,通過微博傳遞災(zāi)情信息起到了良好的效果,使人們更加及時客觀地了解地震現(xiàn)場信息。
微信由騰訊公司于2010年籌劃啟動,據(jù)騰訊發(fā)布的公告顯示,截止到2016年3月微信注冊用戶已達(dá)到9.27億人,成為一個受眾面非常廣的平臺。微信公眾平臺在2012年8月23日正式上線,通過這一平臺,個人和企業(yè)都可以打造一個微信的公眾號,可以向訂閱用戶群發(fā)文字、圖片、語音、視頻、圖文消息5個類別的內(nèi)容。在地震行業(yè),地震部門可以把地震信息及時有效地發(fā)布給微信用戶,并且可以把微信公眾平臺當(dāng)作宣傳的陣地,擴(kuò)大地震科普知識的受眾面。
本系統(tǒng)基于EQIM地震數(shù)據(jù)系統(tǒng)和山西省地震日報數(shù)據(jù)庫發(fā)布的權(quán)威地震數(shù)據(jù),經(jīng)過數(shù)據(jù)提取、整理、重組,形成地震信息,利用網(wǎng)站、微信、微博這些新媒體的信息發(fā)布接口,將地震信息按要求快速、準(zhǔn)確地發(fā)布在地震信息網(wǎng)站、微信公眾號及官方微博,為公眾提供了及時的參考信息及研究資料,同時減少了地震信息發(fā)布人員的工作量,提高了工作效率。
按照系統(tǒng)功能需求,本系統(tǒng)由數(shù)據(jù)訪問層、數(shù)據(jù)處理層、數(shù)據(jù)推送層及用戶訪問層組成(圖1)。
數(shù)據(jù)訪問層封裝了對于數(shù)據(jù)庫訪問的底層細(xì)節(jié),采用數(shù)據(jù)庫連接池,適用于連接本地及遠(yuǎn)程數(shù)據(jù)庫。
數(shù)據(jù)處理層負(fù)責(zé)定時喚醒,進(jìn)行數(shù)據(jù)的采集、加工和入庫的工作,封裝了日志的讀寫細(xì)節(jié),其中數(shù)據(jù)庫日志,用于保存數(shù)據(jù)采集情況,同時記錄處理數(shù)據(jù)采集線程的異常,最后根據(jù)數(shù)據(jù)生成用于推送的固定格式的信息。
數(shù)據(jù)推送層負(fù)責(zé)控制各線程的加載、停止,根據(jù)信息發(fā)布平臺推動接口的要求,將生成的數(shù)據(jù)信息推送到不同的信息發(fā)布平臺。
用戶訪問層以WEB的方式提供設(shè)置系統(tǒng)工作參數(shù),同時也提供一些數(shù)據(jù)入庫的查詢功能。
圖1 系統(tǒng)總體架構(gòu)圖
地震信息多平臺快速發(fā)布系統(tǒng)包括客戶端和服務(wù)器端,客戶端主要負(fù)責(zé)系統(tǒng)狀態(tài)的顯示、系統(tǒng)的設(shè)置、人工發(fā)布信息的錄入,服務(wù)器端主要負(fù)責(zé)自動發(fā)布信息數(shù)據(jù)的處理以及生成信息的推送。
系統(tǒng)的客戶端開發(fā)語言為html,JavaScript,Jsp;服務(wù)器端采用的開發(fā)語言為Servlet。系統(tǒng)具體環(huán)境配置如下:
1)操作系統(tǒng):windows server2008;
2)數(shù)據(jù)庫:Mysql;
3)Web服務(wù)器:Tomcat。
2.1 數(shù)據(jù)庫設(shè)計(jì)
按照系統(tǒng)功能的要求數(shù)據(jù)庫設(shè)計(jì)為6個表,分別為:
1)發(fā)布信息表,主要存儲發(fā)布信息的屬性信息及內(nèi)容;
2)速報數(shù)據(jù)表,主要存儲速報地震的時間、地點(diǎn)(經(jīng)緯度)、震源深度及地震震級等數(shù)據(jù);
3)日報數(shù)據(jù)表,主要存儲編目地震的時間、地點(diǎn)(經(jīng)緯度)、震源深度、地震震級以及震中位置名稱等數(shù)據(jù);
4)信息推送表,用于存儲推送至網(wǎng)站、微博、微信的狀態(tài);
5)信息模板表,用于存儲發(fā)布信息的樣式等內(nèi)容;
6)參數(shù)設(shè)置表,用于存儲系統(tǒng)各類個性化設(shè)置的內(nèi)容,比如系統(tǒng)同時推送多個微博、微信號的添加等。
2.2 數(shù)據(jù)處理機(jī)制設(shè)計(jì)
根據(jù)《地震速報技術(shù)管理規(guī)定》(以下稱“規(guī)定”),各省級地震局均已建成自動EQIM系統(tǒng),可從中國地震臺網(wǎng)中心實(shí)時獲取正式速報結(jié)果(CC/CD)。根據(jù)中國地震局《關(guān)于開展自動地震速報信息服務(wù)的通知》,從2013年4月1日起啟動自動地震速報服務(wù),自動地震速報綜合觸發(fā)結(jié)果(AU)和正式速報結(jié)果(CC/CD)在多種媒體公開發(fā)布。中國地震臺網(wǎng)中心正式實(shí)施的“自動地震速報信息服務(wù)”,在2~5 min可發(fā)布國內(nèi)M≥4.0地震的自動定位速報結(jié)果,在10~15 min可發(fā)布國內(nèi)M≥4.0地震的正式速報結(jié)果。本省內(nèi)M≥3.0或省會城市M≥2.5地震的速報結(jié)果也可以在多種媒體公開發(fā)布[1]。系統(tǒng)速報信息的數(shù)據(jù)基于EQIM系統(tǒng),按照規(guī)定經(jīng)過提取、整理、重組生成地震信息。
山西地震臺網(wǎng)365×24 h不間斷對山西省內(nèi)的地震活動情況進(jìn)行監(jiān)測,獲取到的地震數(shù)據(jù)經(jīng)過工作人員的處理后將地震的三要素信息存入地震日報數(shù)據(jù)庫。系統(tǒng)發(fā)布的地震日報、周報、月報信息的基礎(chǔ)數(shù)據(jù)都來源于此數(shù)據(jù)庫。
2.2.1 地震速報數(shù)據(jù)的獲取
系統(tǒng)數(shù)據(jù)采集線程按照一定的時間間隔(按照系統(tǒng)要求取60 s)對EQIM數(shù)據(jù)庫進(jìn)行輪詢,如果有新數(shù)據(jù)的注入,讀取數(shù)據(jù)庫各個字段的數(shù)據(jù),主要包括臺網(wǎng)代碼、經(jīng)度、緯度、發(fā)震時間、震級、震源深度及震中位置,然后將獲取到的字段數(shù)據(jù)插入到預(yù)先設(shè)置好的地震速報模板中。地震速報模板分為自動速報和正式速報2種,具體為 :
1)“中國地震臺網(wǎng)自動測定:{發(fā)震時間}在{震中位置}({緯度},{經(jīng)度})發(fā)生{震級}級地震,最終結(jié)果以正式速報為準(zhǔn)?!?/p>
2)“中國地震臺網(wǎng)正式測定:{發(fā)震時間} 在{震中位置}({緯度},{經(jīng)度})發(fā)生{震級}級地震,震源深度{震源深度}千米?!?/p>
地震速報信息還包括地震的震中分布圖,本系統(tǒng)通過調(diào)用百度地圖的定位api,使用經(jīng)度、緯度將震中位置標(biāo)在地圖上并按照一定的圖片尺寸生成震中位置圖插入地震速報信息中,形成“圖片”+“文字”形式的地震速報信息(圖2)[2]。
圖2 地震速報信息樣式
2.2.2 地震日報、周報、月報數(shù)據(jù)的獲取
地震日報是某一地區(qū)一天內(nèi)所有地震信息的統(tǒng)計(jì),每一個地震的信息包括發(fā)震時刻、緯度、經(jīng)度、震級、震源深度和地點(diǎn)。地震日報信息內(nèi)容包括地震目錄及震中位置分布圖(圖3)。系統(tǒng)數(shù)據(jù)采集線程在每天的17:00從地震日報數(shù)據(jù)庫中獲取前一天的所有地震信息,然后對這些信息進(jìn)行統(tǒng)計(jì)、整理,形成表格樣式的地震目錄。系統(tǒng)根據(jù)每個地震的發(fā)震位置和震級大小將預(yù)設(shè)的地震圖標(biāo)標(biāo)注在山西省地圖上,形成震中分布圖。
圖3 地震日報信息樣式圖
地震周報及月報信息的獲取方式類似于地震日報信息,區(qū)別在于將數(shù)據(jù)采集線程統(tǒng)計(jì)地震的時間設(shè)置為一周和一個月,在每周一和月初生成地震周報和月報信息[3]。
2.3 信息發(fā)布機(jī)制設(shè)計(jì)
地震信息通過網(wǎng)站、微博、微信3個平臺進(jìn)行發(fā)布,3個互聯(lián)網(wǎng)媒體的發(fā)布方式有各自的特點(diǎn)。地震信息網(wǎng)站是地震信息發(fā)布的主要互聯(lián)網(wǎng)媒體,一般重要的官方信息都是由官方網(wǎng)站發(fā)布,以網(wǎng)站作為地震信息的載體,可以為公眾提供較為豐富全面的信息。微博信息發(fā)布的特點(diǎn)是公眾可以在微博中發(fā)表自己的觀點(diǎn)和看法,有較強(qiáng)的互動性。通過微信公眾平臺進(jìn)行地震信息的群發(fā)可以最快的速度傳遞給每一位微信用戶。
2.3.1 網(wǎng)站地震信息發(fā)布
有感地震,特別是省內(nèi)有感地震發(fā)生后,公眾會集中訪問山西省地震局的門戶網(wǎng)站,在網(wǎng)站的首頁顯示彈出窗口以便公眾集中獲取此次地震的相關(guān)信息。根據(jù)地震的大小,網(wǎng)站維護(hù)人員在網(wǎng)站后臺預(yù)先制作展示內(nèi)容不同的2種專題模板,省內(nèi)地震3.0≤M<5.0或者太原市內(nèi)2.5≤M<5.0時,采用展示內(nèi)容較少的“小”專題模板;當(dāng)M≥5.0時,采用展示內(nèi)容較為豐富的“大”專題模板。系統(tǒng)的數(shù)據(jù)采集線程生成地震速報信息后,通過判斷發(fā)震地點(diǎn)和震級確定地震速報信息推送的網(wǎng)站專題地址,調(diào)用網(wǎng)站后臺預(yù)留的信息推送接口,將信息推送到相應(yīng)的地震專題中。網(wǎng)站后臺系統(tǒng)監(jiān)控2個專題的信息發(fā)布情況,如果有信息的發(fā)布,后臺系統(tǒng)將在網(wǎng)站首頁的預(yù)留位置彈出相應(yīng)專題的鏈接,實(shí)現(xiàn)了地震速報信息在網(wǎng)頁上的快速發(fā)布及地震專題的開啟[4]。網(wǎng)站彈出窗口實(shí)現(xiàn)原理圖如圖4:
圖4 網(wǎng)站彈出窗口實(shí)現(xiàn)原理圖
實(shí)現(xiàn)網(wǎng)站按照地震彈出不同窗口的關(guān)鍵代碼如下:
public List
//判斷是否需要開啟專題,bulletin為速報數(shù)據(jù),
String place=bulletin.getLocation_cname();
//獲取地震地點(diǎn)
double level=bulletin.getM();
//獲取地震等級
if(!place.contains(“山西”))return null;
//不是山西的返回null,不開啟
double little=place.contains(“太原市”)?2.5:3;
//小專題開啟等級
double big=5;
//大專題開啟等級
int isright=level>=big?1:((level>=little&&level
//獲取開啟專題狀態(tài),
if(isright==-1)return null;
//不符合開啟條件返回null,代表不開啟專題
List
//獲取專題開啟參數(shù)
return acts;
//獲取專題開啟參數(shù)
}
地震日報、周報、月報信息的網(wǎng)站發(fā)布,通過調(diào)用網(wǎng)站后臺系統(tǒng)的信息發(fā)布接口,把系統(tǒng)數(shù)據(jù)采集線程獲取到的信息按照一天、一周、一個月的時間間隔發(fā)布在網(wǎng)站的地震日報欄目下。
2.3.2 微信地震信息發(fā)布
接口微信公眾平臺后,系統(tǒng)可以調(diào)用微信的群發(fā)接口將生成的地震速報及日報、周報、月報信息群發(fā)至48小時活躍用戶。由于微信公眾平臺的限制,48小時活躍用戶是指用戶給公眾號發(fā)送的最后一次消息(文字、圖片、視頻、地理位置、菜單互動)開始的48小時之內(nèi)的用戶[5]。用戶收到的微信推送消息相當(dāng)于地震信息的摘要及標(biāo)題圖,當(dāng)用戶點(diǎn)擊打開該消息時,會自動鏈接到系統(tǒng)設(shè)置回調(diào)地址,該地址是系統(tǒng)為微信消息搭建的響應(yīng)式地震信息靜態(tài)web頁面,它能夠根據(jù)訪問設(shè)備自動調(diào)整頁面的大小。通過這些推送消息和回調(diào)頁面的設(shè)置,實(shí)現(xiàn)了微信地震信息詳細(xì)內(nèi)容的展示。關(guān)鍵實(shí)現(xiàn)代碼如下:
public String sandNews(String title, String description, String picUrl, String url,List
//推送接口,title為標(biāo)題,description為描述,picUrl為縮略圖,url為回調(diào)地址,list賬號信息
if(description.length()>70)
//判斷描述長度是否大于70
description=description.substring(0, 70)+“……”;
//大于70進(jìn)行縮略處理
StringBuffer buffer=new StringBuffer();
for(WeiboWeixinSetting setting : list){
//循環(huán)賬號
UserManager userManager = new UserManager(setting.getAppId(), setting.getAppSecret());
//初始化連接
List
//獲取關(guān)注用戶列表
CustomerMsg customerMsg;
for(String toUserOpenId : userList){
//循環(huán)每個關(guān)注用戶
customerMsg = new CustomerMsg(toUserOpenId,userManager.accessToken);
//獲取推送參數(shù)
customerMsg.sendNew(title, description.toString(), picUrl.toString(), url);
//推送信息
buffer.append(setting.getId()).append(“-”);
//存儲推送的ID
}
return ids;
//返回推送的賬號
}
2.3.3 微博地震信息發(fā)布
微博的信息發(fā)布平臺類似于網(wǎng)站的后臺管理系統(tǒng),本系統(tǒng)的微博發(fā)布平臺為新浪微博,新浪微博建立了開放平臺以更好地發(fā)揮微博的功能優(yōu)勢,系統(tǒng)調(diào)用微博的文字和圖片發(fā)布接口[6],將獲取到的地震快報信息按照“圖片”+“文字”的排版,在快報信息生成即時發(fā)布在官方微博上,而地震日報、周報、月報的信息根據(jù)信息瀏覽的方便性,以單獨(dú)“圖片”的形式,按照網(wǎng)站發(fā)布地震日報、周報、月報的時間間隔發(fā)布在官方微博上[7]。實(shí)現(xiàn)關(guān)鍵代碼如下:
public String sandNews(String text, String strUrl,List
//推送接口,text為描述,strUrl為圖片網(wǎng)絡(luò)地址,list賬號信息
if(text.length()>100)
//判斷描述長度是否大于100
text=text.substring(0,100)+“...”;
//大于100進(jìn)行縮略處理
StringBuffer buffer=new StringBuffer();
for(WeiboWeixinSetting setting : settings){
Timeline timeline = new Timeline(setting.getToken());
//初始化連接
text = java.net.URLEncoder.encode(text,“UTF-8”);
//對文字進(jìn)行轉(zhuǎn)換
mageItem image = new ImageItem(getImageByte(strUrl));
//對圖片進(jìn)行轉(zhuǎn)換
Status status = timeline.uploadStatus(text, image);
//推送信息
buffer.append(setting.getId()).append(“-”);
}
return ids;
//返回推送的賬號
}
2.4 系統(tǒng)配置功能設(shè)計(jì)
本系統(tǒng)通過邏輯控制層實(shí)現(xiàn)手工設(shè)置添加多個推送的網(wǎng)站地址、微信賬號及微博賬號,方便系統(tǒng)管理人員對信息發(fā)布媒體賬號的管理。
系統(tǒng)日志層和錯誤處理層記錄了系統(tǒng)的運(yùn)行狀態(tài),當(dāng)系統(tǒng)出現(xiàn)故障時可以查詢情況,減少了系統(tǒng)維護(hù)人員的工作量。
綜合管理模塊分為文章管理、模板管理、用戶管理。文章管理模塊可以對采集到的地震信息進(jìn)行在線編輯,實(shí)現(xiàn)了地震信息一次編輯多個媒體同時發(fā)布。模板管理可以對速報、日報等地震信息的模板樣式進(jìn)行修改,避免了通過代碼修改信息模板的缺點(diǎn)。通過用戶管理模塊,系統(tǒng)管理員可以管理系統(tǒng)的注冊用戶及用戶的操作權(quán)限。
2.5 系統(tǒng)運(yùn)行情況
目前,本系統(tǒng)已經(jīng)正式應(yīng)用于山西省地震局的日常地震信息發(fā)布中(圖5)。
2016年3月12日山西運(yùn)城4.4級地震,山西省地震局網(wǎng)站成功實(shí)現(xiàn)地震專題的自動開啟(圖6)。
圖5 系統(tǒng)主界面
圖6 山西省地震局網(wǎng)站地震專題開啟情況
圖7為地震專題詳細(xì)內(nèi)容,微信公眾平臺的信息推送如圖8所示,圖9為山西省地震局官方微博的日常地震信息的推送結(jié)果。系統(tǒng)實(shí)現(xiàn)了預(yù)先設(shè)定的功能,在日常工作和應(yīng)急工作中運(yùn)行正常,滿足了工作的要求。
圖7 地震專題頁面
圖8 微信推送頁面
本系統(tǒng)將地震信息自動地發(fā)布在網(wǎng)站、微信和微博上,實(shí)現(xiàn)了地震信息的多平臺自動發(fā)布,解決了人工發(fā)布信息的速度慢、準(zhǔn)確率相對較低的問題,尤其是在地震應(yīng)急處置的時候更能突顯出自動發(fā)布的優(yōu)勢。采用統(tǒng)一的數(shù)據(jù)源,實(shí)現(xiàn)發(fā)布在各個平臺上信息的一致性,也減輕了應(yīng)急人員的重復(fù)性工作。利用地震信息控制山西省地震局門戶網(wǎng)站地震專題的開啟,第一時間為公眾集中發(fā)布有感地震信息,提高了網(wǎng)站的服務(wù)質(zhì)量,增強(qiáng)了地震應(yīng)急能力。目前,本技術(shù)已經(jīng)應(yīng)用于山西省地震局日常工作中,但信息發(fā)布頁面的布局、微信的群發(fā)對象范圍以及系統(tǒng)對發(fā)布信息的合法性和缺失信息的自動補(bǔ)充等問題還需要作進(jìn)一步的研究和開發(fā)。
圖9 微博推送頁面
[1] 中國地震局. 地震速報技術(shù)管理規(guī)定(中震測發(fā)[2013]26號)[R]. 北京: 中國地震局, 2013.
[2] 蘭賀元, 王方雄, 孫迪. 大連市地震信息網(wǎng)絡(luò)發(fā)布系統(tǒng)的設(shè)計(jì)與開發(fā)[J]. 測繪與空間地理信息, 2012, 35(8): 53-55, 58.
[3] 李紅, 蔡寅, 李永紅, 等. 地震速報信息快速提取及WEB信息發(fā)布功能的設(shè)計(jì)與實(shí)現(xiàn)[J]. 震災(zāi)防御技術(shù), 2015, 10(1): 184-191.
[4] 林洋, 張穎, 范開紅. 網(wǎng)站地震速報信息快速發(fā)布技術(shù)設(shè)計(jì)與實(shí)現(xiàn)[J]. 地震研究, 2013, 36(4): 540-544.
[5] 葉佳寧, 何霆. 地震信息微信自動發(fā)布系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J]. 華北地震科學(xué), 2014, 32(4): 23-28.
[6] 新浪互聯(lián)網(wǎng)信息服務(wù)有限公司. 微博JAVA二次開發(fā)[EB/OL]. [2013-07-15]. http://open.weibo.com/wiki/.
[7] 葉佳寧, 何霆. 地震信息微博自動發(fā)布系統(tǒng)的設(shè)計(jì)與應(yīng)用[J]. 華南地震, 2012, 32(4): 82-87.
Design and Implementation of Multi-platform Seismic Information Quick Release System
LUO Yong, ZHAO Xiao-yun
(Earthquake Administration of Shanxi Province,Taiyuan 030021, China)
In order to manage and release the large amounts of earthquake daily information and emergency information in time, we developed a multi-platform seismic information quick release system. The system gets data from the EQIM system and the earthquake daily report database. Through data analysis and recombination, the system can generate earthquake rapid report, seismic quick catalog and seismic daily catalog and other seismic information, and release them through web content management platform, wechat public platform and microblog platform by information push interface. The system implements the rapid release of earthquake information through multi-platform, and has been used in daily work. Applications and system running state is shown in the paper.
seismic information; internet plus; multi-platform; new media; release
2016-11-14
基于官方微信地震應(yīng)急專題開發(fā)(SBK-1719)
羅勇(1986—),男,山西盂縣人,工程師,主要研究網(wǎng)站管理與維護(hù)、WebGIS的應(yīng)用與開發(fā)等.E-mail:406483898@qq.com
P315-392
A
1003-1375(2017)02-0021-09
10.3969/j.issn.1003-1375.2017.02.004
羅勇,趙曉云.地震信息多平臺快速發(fā)布系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[J].華北地震科學(xué),2017,35(2):21-29.