高國弘 緱曉輝
(1.中國氣象局旱區(qū)特色農(nóng)業(yè)氣象災(zāi)害監(jiān)測預(yù)警與風(fēng)險管理重點(diǎn)實(shí)驗(yàn)室 寧夏回族自治區(qū)銀川市 750002)(2.寧夏氣象防災(zāi)減災(zāi)重點(diǎn)實(shí)驗(yàn)室 寧夏回族自治區(qū)銀川市 750002)
為向公眾、企業(yè)、政府等公共氣象服務(wù)用戶提供及時、豐富的服務(wù),氣象部門充分利用信息傳播技術(shù),先后建成了聲訊電話、傳真、郵件、網(wǎng)站、短信、大喇叭、電子屏、微博、微信、APP、小程序等多種氣象信息發(fā)布平臺。這些平臺各自獨(dú)立,造成了一定程度的資源浪費(fèi)和重復(fù)建設(shè)。為實(shí)現(xiàn)發(fā)布平臺間信息共享、集約化發(fā)布,全國氣象部門相繼開展了“氣象信息一鍵式發(fā)布”技術(shù)方法研究。早在2012年鄭立軍等建設(shè)了浙江桐廬縣數(shù)字電視氣象預(yù)警全頻道一鍵式發(fā)布系統(tǒng),2014年楊昱等開展了天津一鍵式氣象服務(wù)信息發(fā)布技術(shù)研究,張亞、王瑩、莫云音、林紅、王新秀等分別在安徽、廣東、海南、上海、遼寧等省市開展了氣象預(yù)警信息一鍵式、多渠道發(fā)布技術(shù)研究。寧夏于2014年建設(shè)了農(nóng)村氣象預(yù)報預(yù)警信息一鍵式發(fā)布平臺,實(shí)現(xiàn)了鄉(xiāng)村大喇叭、顯示屏信息統(tǒng)一發(fā)布。這些一鍵式發(fā)布平臺,大都基于統(tǒng)一的平臺錄入信息并驅(qū)動所有接入的發(fā)布渠道發(fā)布信息的模式建立。
“以信息化驅(qū)動氣象現(xiàn)代化,建設(shè)智慧氣象”是氣象行業(yè)落實(shí)國家信息化發(fā)展戰(zhàn)略的重要舉措。為充分利用云計算、大數(shù)據(jù)、物聯(lián)網(wǎng)、移動互聯(lián)網(wǎng)和機(jī)器智能等現(xiàn)代信息技術(shù),推進(jìn)信息技術(shù)與氣象業(yè)務(wù)的深度融合,寧夏氣象局組織建設(shè)了“寧夏智能化綜合氣象業(yè)務(wù)服務(wù)共享管理平臺(Ningxia Intelligent Integrated Meteorological Service Sharing Management Platform,NXIIMSSMP)”。該平臺由基礎(chǔ)數(shù)據(jù)庫、業(yè)務(wù)產(chǎn)品庫、服務(wù)產(chǎn)品庫3 個數(shù)據(jù)庫,智能化天氣預(yù)報業(yè)務(wù)系統(tǒng)、智能化氣候業(yè)務(wù)系統(tǒng)、智能化農(nóng)業(yè)氣象業(yè)務(wù)系統(tǒng)、智能化氣象信息業(yè)務(wù)系統(tǒng)、智能化氣象服務(wù)系統(tǒng)5個省級業(yè)務(wù)系統(tǒng),1 個智能化氣象信息綜合發(fā)布系統(tǒng),以及相應(yīng)的氣象信息共享與管理系統(tǒng)組成。5 個省級業(yè)務(wù)系統(tǒng),近20 個市縣級業(yè)務(wù)系統(tǒng),均需利用各種發(fā)布渠道向各自的用戶發(fā)布信息,這就向?qū)儆贜XIIMSSMP 總出口的氣象信息發(fā)布系統(tǒng),提出了多平臺對多發(fā)布渠道、多用戶群,自動發(fā)布?xì)庀笮畔⒌男滦枨?。再者,為充分利用各級氣象部門優(yōu)勢資源,形成集約化技術(shù)合力,天氣預(yù)報、氣候預(yù)測、農(nóng)業(yè)氣象、氣象信息等業(yè)務(wù)系統(tǒng)制作的產(chǎn)品大部分不事先指定服務(wù)對象,最終由各對外服務(wù)部門確定通過何種渠道發(fā)送給那些用戶。因此,要實(shí)現(xiàn)服務(wù)產(chǎn)品發(fā)布的智能化,從而實(shí)現(xiàn)NXIIMSSMP 系統(tǒng)的全流程智能化,就必須研究服務(wù)產(chǎn)品與服務(wù)對象、發(fā)布渠道的智能化匹配與分發(fā)技術(shù)。
整個NXIIMSSMP 可以看作是一個分布式氣象服務(wù)產(chǎn)品制作與發(fā)布體系。依據(jù)NXIIMSSMP 總體設(shè)計,各省級智能化氣象業(yè)務(wù)系統(tǒng)與各市縣級綜合氣象服務(wù)系統(tǒng)制作的公共服務(wù)產(chǎn)品均存入“氣象服務(wù)產(chǎn)品庫”,該庫在存入產(chǎn)品時,利用三方消息件,向智能化氣象信息綜合發(fā)布系統(tǒng)(下簡稱“綜合發(fā)布系統(tǒng)”)推送產(chǎn)品入庫信息,綜合發(fā)布系統(tǒng)利用產(chǎn)品入庫信息,提取服務(wù)產(chǎn)品,并向各發(fā)布渠道轉(zhuǎn)發(fā)。為確保突發(fā)事件預(yù)警信息發(fā)送時效,綜合發(fā)布系統(tǒng)還為省級突發(fā)事件預(yù)警信息發(fā)布系統(tǒng)(下簡稱“省突系統(tǒng)”)開通“綠色通道”,即省突系統(tǒng)與綜合發(fā)布系統(tǒng)實(shí)現(xiàn)直連。因此,綜合發(fā)布系統(tǒng)有兩類氣象服務(wù)數(shù)據(jù)來源。以上各系統(tǒng)均處于氣象業(yè)務(wù)寬帶網(wǎng)(內(nèi)網(wǎng))。
短信、聲訊、傳真、郵件、大喇叭、顯示屏、微博、微信、FTP、服務(wù)云等需以推送方式接收信息的渠道,設(shè)計了Web API 渠道對接接口和發(fā)布結(jié)果回傳接口,由綜合發(fā)布系統(tǒng)調(diào)用各渠道信息發(fā)布接口,以主動推送方式發(fā)布信息,各渠道系統(tǒng)調(diào)用綜合發(fā)布系統(tǒng)結(jié)果回傳接口,實(shí)現(xiàn)結(jié)果數(shù)據(jù)的回傳;其他網(wǎng)站、APP、小程序及各行業(yè)氣象信息應(yīng)用系統(tǒng)等需通過互聯(lián)網(wǎng)主動獲取信息的渠道,由綜合發(fā)布系統(tǒng)將信息推送至位于互聯(lián)網(wǎng)的氣象服務(wù)云,由服務(wù)云以API 接口方式提供各客戶端主動調(diào)取信息。因此服務(wù)云既是發(fā)布渠道之一,也可看作綜合發(fā)布系統(tǒng)的組成部分。綜合發(fā)布系統(tǒng)還需與“天鏡”省級氣象信息監(jiān)控系統(tǒng)連接,向天鏡傳輸服務(wù)產(chǎn)品發(fā)送狀況等監(jiān)控數(shù)據(jù)。綜合發(fā)布系統(tǒng)與產(chǎn)品制作、產(chǎn)品存儲、天鏡及發(fā)布渠道之間的位置關(guān)系見圖1。
圖1:智能化氣象信息綜合發(fā)布系統(tǒng)在氣象信息體系中所處位置
綜合發(fā)布系統(tǒng)由產(chǎn)品管理、服務(wù)對象管理、渠道管理、系統(tǒng)管理、系統(tǒng)監(jiān)控5 大模塊組成,其系統(tǒng)架構(gòu)見圖2。產(chǎn)品管理模塊首先以兩個數(shù)據(jù)輸入接口分別與氣象服務(wù)產(chǎn)品庫、省突系統(tǒng)互聯(lián)。氣象服務(wù)產(chǎn)品庫在收到各業(yè)務(wù)系統(tǒng)存入的服務(wù)產(chǎn)品時,即以RabbitMQ 的生產(chǎn)者(Producer)方式向綜合發(fā)布系統(tǒng)推送產(chǎn)品,綜合發(fā)布系統(tǒng)以消息消費(fèi)(Consumer)方式接收產(chǎn)品并落地暫存數(shù)據(jù)庫,同時利用KMP 算法將服務(wù)產(chǎn)品關(guān)鍵字與服務(wù)對象需求關(guān)鍵字進(jìn)行匹配,匹配成功即通過為服務(wù)對象設(shè)定的發(fā)布渠道向該對象發(fā)布信息;產(chǎn)品管理模塊設(shè)置Web API 接口供省突系統(tǒng)以HTTP 協(xié)議訪問傳遞預(yù)警信息。服務(wù)對象管理模塊向省市縣三級系統(tǒng)操作員提供服務(wù)對象(用戶)管理能力,各級操作員可錄入本級收集的用戶,設(shè)定用戶所需產(chǎn)品、關(guān)注區(qū)域、發(fā)布單位、接收渠道等關(guān)鍵字,供產(chǎn)品管理模塊調(diào)取匹配。渠道管理模塊依據(jù)各發(fā)布渠道系統(tǒng)廠商提供的接口規(guī)范,研發(fā)不同的接口與之互聯(lián)發(fā)送信息。系統(tǒng)管理模塊提供系統(tǒng)操作員管理功能并為操作員分配不同的角色,為角色授予不同的權(quán)限;該模塊還負(fù)責(zé)同步服務(wù)產(chǎn)品庫中的發(fā)布單位、產(chǎn)品類型、地域信息數(shù)據(jù)到綜合發(fā)布系統(tǒng),供產(chǎn)品管理模塊與服務(wù)對象管理模塊建立匹配關(guān)系;此外該模塊還負(fù)責(zé)管理系統(tǒng)“字典”表及其他系統(tǒng)參數(shù)設(shè)置調(diào)整工作。系統(tǒng)監(jiān)控模塊監(jiān)測產(chǎn)品接收、用戶匹配、各渠道發(fā)送成功率、用戶關(guān)注量等數(shù)據(jù),同時生成日志或統(tǒng)計報表并通過本系統(tǒng)監(jiān)控大屏或傳輸給“天鏡”系統(tǒng)展示。
圖2:智能化氣象信息綜合發(fā)布系統(tǒng)總體架構(gòu)
是一種改進(jìn)的字符串匹配算法,由D.E.Knuth,J.H.Morris和V.R.Pratt 提出,人稱克努特—莫里斯—普拉特操作(簡稱KMP 算法)。KMP 算法的核心是利用匹配失敗后的信息,盡量減少模式串與主串的匹配次數(shù)以達(dá)到快速匹配的目的。該算法的用途廣泛,是正則表達(dá)式的基礎(chǔ)。本研究采用改進(jìn)的KMP 模式匹配算法,優(yōu)化服務(wù)產(chǎn)品與服務(wù)對象、發(fā)布渠道的匹配算法。
MQ 全稱為Message Queue,是一種分布式應(yīng)用程序的通信方法,它是消費(fèi)者(Consumer)-生產(chǎn)者(Producer)模型的一個典型的代表,Producer 往消息隊(duì)列中不斷寫入消息,而另一端Consumer 則可以讀取或者訂閱隊(duì)列中的消息。RabbitMQ 則是MQ 產(chǎn)品的典型代表,是一款基于AMQP(高級消息隊(duì)列協(xié)議)協(xié)議可復(fù)用的企業(yè)消息系統(tǒng)。業(yè)務(wù)上,可以實(shí)現(xiàn)服務(wù)提供者和消費(fèi)者之間的數(shù)據(jù)解耦,提供高可用性的消息傳輸機(jī)制,在實(shí)際生產(chǎn)中應(yīng)用相當(dāng)廣泛。因前期已建成的氣象服務(wù)數(shù)據(jù)庫采用RabbitMQ 推送數(shù)據(jù),本研究完成了以Consumer 消息消費(fèi)方式接收數(shù)據(jù)的接口軟件開發(fā)。
API 應(yīng)用程序編程接口(Application Programming Interface)是一些預(yù)先定義的函數(shù),這些函數(shù)是由某個軟件開放給開發(fā)人員使用的,幫助開發(fā)者實(shí)現(xiàn)某種功能,開發(fā)人員無須訪問源碼、無須理解其內(nèi)部工作機(jī)制細(xì)節(jié),只需知道如何使用即可。Web API 則是基于HTTP 協(xié)議的網(wǎng)頁化API。本研究開發(fā)兩個Web API 分別供省突、天鏡系統(tǒng)與綜合發(fā)布系統(tǒng)對接;引用微博、微信、短信、大喇叭平臺提供的Web API 接口,向此類渠道發(fā)送信息并接收各渠道返回的用戶關(guān)注量、成功接收數(shù)、設(shè)備在線率等管理信息。
FTP 文件傳輸協(xié)議(File Transfer Protocol)。SFTP 為安全文件傳送協(xié)議(Secure FTP),可以為傳輸文件提供一種安全的加密方法。SFTP 為SSH(安全外殼協(xié)議)的一部分,由于這種傳輸方式使用了加密/解密技術(shù),所以傳輸效率比普通的FTP 要低得多,如果對網(wǎng)絡(luò)安全性要求更高時,可使用SFTP 代替FTP。綜合發(fā)布系統(tǒng)提供FTP、SFTP及被動、主動FTP 等模式選擇,以連接不同要求的發(fā)布渠道。其中大喇叭/顯示屏、傳真、聲訊、云網(wǎng)站等平臺采用FTP或SFTP 傳播文件類型產(chǎn)品,并提供一個專門的FTP 接口供渠道拓展。
綜合發(fā)布系統(tǒng)采用的服務(wù)器配置為至強(qiáng)2.4GHz 雙核CPU、32GB 內(nèi)存、1TB 硬盤,Windows Server 2012 操作系統(tǒng)、Oracle 11g 數(shù)據(jù)庫管理系統(tǒng)、Tomcat 7.0 互聯(lián)網(wǎng)信息服務(wù)器;系統(tǒng)基于B/S 架構(gòu)開發(fā),開發(fā)語言為Java、JavaScript、Html5、CSS3。
各種發(fā)布渠道所需的服務(wù)產(chǎn)品格式不盡相同,為制作、存儲、轉(zhuǎn)發(fā)等各環(huán)節(jié)都帶來了困難,因此需要首先設(shè)計一個綜合的服務(wù)產(chǎn)品標(biāo)準(zhǔn)格式,供NXIIMSSMP 各系統(tǒng)共同遵守,以標(biāo)準(zhǔn)化促進(jìn)智能化、集約化。所制定格式的標(biāo)準(zhǔn)數(shù)據(jù)表見表1。
表1:氣象服務(wù)產(chǎn)品格式標(biāo)準(zhǔn)數(shù)據(jù)表
表1是數(shù)據(jù)交換時的基本字段,NXIIMSSMP 中各系統(tǒng)為了各自操作便利,可增加若干輔助字段。表中產(chǎn)品類型、影響區(qū)域、制作單位三個字段數(shù)據(jù)由氣象服務(wù)產(chǎn)品庫設(shè)定并管理,其他系統(tǒng)每日定時下載更新,以保持?jǐn)?shù)據(jù)的統(tǒng)一。綜合發(fā)布系統(tǒng)引用此三個字段作為產(chǎn)品匹配關(guān)鍵字。依據(jù)發(fā)送渠道的不同,表中各字段及文件類型可選擇填寫。
在綜合發(fā)布系統(tǒng)中建立服務(wù)對象管理子系統(tǒng),用于管理氣象產(chǎn)品數(shù)據(jù)的接收對象,對象類型包括屬于個人或單位的決策氣象服務(wù)用戶、專業(yè)氣象服務(wù)用戶及面向公眾服務(wù)的大喇叭電子屏、微博賬號、微信公眾號、FTP 地址、云網(wǎng)站等三類。該子系統(tǒng)提供省市縣三級服務(wù)對象數(shù)據(jù)增、刪、改管理能力,以及相應(yīng)的自上而下逐級管理能力,供各級氣象部門存放自己收集的服務(wù)對象基本信息、服務(wù)產(chǎn)品接收類型、方式、發(fā)布單位等信息。子系統(tǒng)的核心庫表——服務(wù)對象數(shù)據(jù)表見表2。
表2:服務(wù)對象數(shù)據(jù)表
發(fā)布系統(tǒng)引用其中的關(guān)注區(qū)域、所需產(chǎn)品、發(fā)布單位三個關(guān)鍵字段用于與服務(wù)產(chǎn)品匹配,引用接收渠道關(guān)鍵字段向發(fā)布渠道系統(tǒng)推送產(chǎn)品信息。
引用表1產(chǎn)品格式標(biāo)準(zhǔn),根據(jù)匹配到的服務(wù)對象接收渠道不同,發(fā)送內(nèi)容有所區(qū)別,因此制定產(chǎn)品發(fā)送原則見表3。
表3:各渠道服務(wù)產(chǎn)品發(fā)送原則
產(chǎn)品與對象智能匹配發(fā)送模塊是綜合發(fā)布系統(tǒng)的核心。該模塊數(shù)據(jù)流程見圖3所示。當(dāng)Consumer 或Web API 接口收到外部系統(tǒng)發(fā)來服務(wù)產(chǎn)品時整個流程被啟動,隨即用接收到的服務(wù)產(chǎn)品相應(yīng)關(guān)鍵字分別與每一個服務(wù)對象對應(yīng)關(guān)鍵字一一比較,匹配成功即依照服務(wù)對象指定的接收渠道及產(chǎn)品發(fā)送原則,通過不同的發(fā)布渠道向服務(wù)對象(用戶)發(fā)送服務(wù)產(chǎn)品。
圖3:氣象服務(wù)產(chǎn)品智能匹配發(fā)送流程
為提高匹配效率,本研究采用改進(jìn)的KMP 模式匹配算法,優(yōu)化服務(wù)對象與服務(wù)產(chǎn)品的匹配算法,同時,將匹配算法線程數(shù)設(shè)定在1000 條,以提高匹配效率。實(shí)測,在發(fā)布渠道系統(tǒng)及網(wǎng)絡(luò)環(huán)境正常情況下,本系統(tǒng)響應(yīng)時間≤15s。
智能化氣象信息綜合發(fā)布系統(tǒng)是智能化氣象業(yè)務(wù)系統(tǒng)的末端,是氣象信息流的總出口,只有實(shí)現(xiàn)了氣象信息的智能化發(fā)布,方能達(dá)成氣象業(yè)務(wù)系統(tǒng)的全流程智能化。采用本文所述技術(shù)方案建成的寧夏智能化氣象信息綜合發(fā)布系統(tǒng),實(shí)現(xiàn)了個人(決策、專業(yè))服務(wù)對象與公眾對象融合管理,服務(wù)產(chǎn)品與發(fā)布渠道、服務(wù)對象智能化匹配,產(chǎn)品發(fā)布全流程監(jiān)控、留痕與評估,多氣象業(yè)務(wù)系統(tǒng)對多發(fā)布渠道的智能化集約發(fā)布。省市縣各級業(yè)務(wù)人員只需在采集服務(wù)對象數(shù)據(jù)時配置相應(yīng)的內(nèi)容,在向氣象服務(wù)產(chǎn)品庫存放產(chǎn)品時選擇相應(yīng)的關(guān)鍵字,之后服務(wù)產(chǎn)品通過何種發(fā)布渠道發(fā)送,發(fā)給那些服務(wù)對象,再無需人工干預(yù),完全由綜合發(fā)布系統(tǒng)智能選擇、自動完成,極大地提高了發(fā)送時效及工作效率。