王新秀,崔勁松,于璐,姜珊,楊黎黎
(沈陽市氣象局,遼寧沈陽 110168)
近年來氣象事業(yè)發(fā)展迅速,各行業(yè)對氣象服務(wù)的需求不斷增長,對氣象產(chǎn)品的要求也越來越高[1]。各級氣象部門在制作氣象業(yè)務(wù)系統(tǒng)方面不斷開拓創(chuàng)新,但這些系統(tǒng)存在分散獨立、不聯(lián)通、資源不共享等問題,因此亟需建立資源集約、布局合理的一體化平臺[2]。李昱文等[3]研究的佛山市南海區(qū)智慧氣象平臺的架構(gòu)和關(guān)鍵技術(shù),推進了氣象服務(wù)與互聯(lián)網(wǎng)融合;黃芬根等[4]公共氣象服務(wù)集約化業(yè)務(wù)研究與平臺設(shè)計建立了基于互聯(lián)網(wǎng)應(yīng)用的基礎(chǔ)性技術(shù)支撐平臺;崔新強等[5]開發(fā)的湖北省級氣象服務(wù)一體化業(yè)務(wù)平臺極大地提高了氣象服務(wù)系統(tǒng)的自動化和集約化程度。當前,已有科研工作者針對基于面向服務(wù)架構(gòu)(Service-Oriented Architecture,SOA)的系統(tǒng)進行研究,杜敏[6]研究的基于SOA的省級氣象綜合業(yè)務(wù)服務(wù)平臺的設(shè)計與實現(xiàn)可以整合全省的氣象資源,并利用其自身強大的統(tǒng)計與流程控制能力;李麗等[7]針對韶關(guān)市旅游氣象信息服務(wù)平臺的建設(shè)與應(yīng)用的研究為旅游氣象服務(wù)業(yè)務(wù)的開展提供統(tǒng)一架構(gòu)的基礎(chǔ)業(yè)務(wù)支撐系統(tǒng)取得了良好的效果。
本研究面向市縣級氣象業(yè)務(wù)的應(yīng)用需求,設(shè)計搭建了一個氣象業(yè)務(wù)綜合服務(wù)平臺,方便業(yè)務(wù)人員應(yīng)用。目前該平臺已投入業(yè)務(wù)使用,為業(yè)務(wù)人員快速、準確地提供了服務(wù)產(chǎn)品,取得了較好的應(yīng)用效果。
氣象業(yè)務(wù)綜合服務(wù)平臺開發(fā)基于Java語言,數(shù)據(jù)庫使用Oracle 12C,數(shù)據(jù)源涉及基礎(chǔ)數(shù)據(jù)平臺、氣象數(shù)據(jù)前置平臺和氣象大數(shù)據(jù)云平臺;數(shù)據(jù)層進行融合、統(tǒng)一數(shù)據(jù)為上層應(yīng)用提供服務(wù);應(yīng)用層使用Web Service接口與數(shù)據(jù)層安全交互,顯示層為B/S架構(gòu)網(wǎng)站平臺。平臺架構(gòu)設(shè)計圖如圖1所示。
圖1 平臺架構(gòu)設(shè)計示意圖
1)操作系統(tǒng)使用Windows Server具有可靠性、可用性、可伸縮性和安全性,這使其成為高度可靠的平臺。
2)數(shù)據(jù)層整合沈陽市氣象局現(xiàn)有的數(shù)據(jù),融合氣象大數(shù)據(jù)為一體,為氣象業(yè)務(wù)綜合服務(wù)平臺提供豐富的數(shù)據(jù)資源。
3)應(yīng)用層使用Web Service接口與數(shù)據(jù)層的數(shù)據(jù)資源進行安全交互,是顯示層和數(shù)據(jù)資源層的中間橋梁。
4)顯示層是基于B/S架構(gòu)的Web網(wǎng)站。主要包括了預(yù)報平臺、數(shù)據(jù)查詢、災(zāi)害預(yù)警、決策服務(wù)、專業(yè)服務(wù)、科技服務(wù)、氣候資料等模塊。
系統(tǒng)主要使用Java編程語言,開發(fā)工具使用了JDeveloper 12c和Tomcat 8.0。系統(tǒng)功能示意圖如圖2所示,其承載系統(tǒng)應(yīng)用的環(huán)境包括:
圖2 系統(tǒng)功能示意圖
1)Oracle數(shù)據(jù)庫[8]:數(shù)據(jù)對象和支撐系統(tǒng)頁面。
2)Java運行時環(huán)境:原生Java程序,由系統(tǒng)計劃任務(wù)控制按時執(zhí)行。
3)TomCat服務(wù):Web Service接口、js文件接口、頁面運行。
SOA提供了一種標準的編程模型,可以將系統(tǒng)平臺中的不同功能模塊稱為服務(wù),并通過對這些服務(wù)之間定義好的接口而將其聯(lián)系起來[9]。接口采用中立方式定義,獨立于實現(xiàn)服務(wù)的硬件平臺、操作系統(tǒng)和編程語言,使得構(gòu)建在不同系統(tǒng)中的服務(wù)可以以一種統(tǒng)一和通用的方式進行交互[10]。這種具有中立的接口定義的特征稱為服務(wù)之間的松耦合。松耦合系統(tǒng)的好處有兩點:一是它的靈活性,能夠?qū)I(yè)務(wù)和信息變化做出快速反應(yīng);另一點是當每個服務(wù)的內(nèi)部結(jié)構(gòu)和實現(xiàn)發(fā)生改變時,它能夠繼續(xù)存在[11]。在SOA模型中所有的功能都定義成了獨立的服務(wù)。服務(wù)之間通過交互和協(xié)調(diào)完成業(yè)務(wù)的整體邏輯。所有的服務(wù)通過服務(wù)總線或流程管理器來連接。這種松散耦合的架構(gòu)使得各服務(wù)在交互過程中無需考慮雙方的內(nèi)部實現(xiàn)細節(jié),以及部署在什么平臺上。
氣象業(yè)務(wù)綜合服務(wù)平臺使用SOA技術(shù)實現(xiàn)了預(yù)報平臺、數(shù)據(jù)查詢、災(zāi)害預(yù)警、決策服務(wù)、專業(yè)服務(wù)、科技服務(wù)、氣候資料等模塊獨立運行,統(tǒng)一集成在一個平臺,便于使用與管理。
系統(tǒng)設(shè)計使用Web Service接口完成氣象業(yè)務(wù)綜合服務(wù)平臺與數(shù)據(jù)資源池相互交換數(shù)據(jù)的工作。Web Service技術(shù)是一個基于面向服務(wù)架構(gòu)的、低耦合的、不依賴于平臺的、自包含可編程的Web應(yīng)用程序,它使用XML標準來描述、發(fā)布和配置應(yīng)用[12]。依據(jù)Web Service規(guī)范實施的應(yīng)用之間,無論它們所使用的語言、平臺或內(nèi)部協(xié)議是什么,都可以相互交換數(shù)據(jù)。Web Service減少了應(yīng)用接口的花費。Web Service為整個企業(yè)甚至多個組織之間的業(yè)務(wù)流程的集成提供了一個通用機制[13]。
該平臺數(shù)據(jù)源從氣象大數(shù)據(jù)云平臺通過Web Service技術(shù)讀取到本地數(shù)據(jù)庫,配置好Web Service目錄結(jié)構(gòu)和class文件后,需要注冊才能正常使用,注冊是在TomCat中的web.xml配置文件如圖3所示。將本地數(shù)據(jù)庫的數(shù)據(jù)加工成JSON編碼格式的.js文件服務(wù)配置可直接發(fā)布.js擴展名的文本文件,要求文件內(nèi)使用JSON格式、數(shù)組格式和js編碼,這樣設(shè)置使用起來非常便利,網(wǎng)頁可以直接使用,并且以靜態(tài)文本發(fā)布數(shù)據(jù)安全,系統(tǒng)相應(yīng)速度快不存在安全隱患。
圖3 注冊Web Service的XML代碼塊
目前氣象業(yè)務(wù)綜合服務(wù)平臺搭建的網(wǎng)站已投入使用,網(wǎng)站首頁欄目如圖4所示,分為兩部分:預(yù)報一頁通和導(dǎo)航菜單。預(yù)報一頁通將常用的業(yè)務(wù)系統(tǒng)網(wǎng)絡(luò)鏈接地址按需分類,將目前涉及到的系統(tǒng)按內(nèi)網(wǎng)常用地址、外網(wǎng)常用地址、縣區(qū)使用網(wǎng)站分類是一種方式,另一種方式按實況監(jiān)測、衛(wèi)星雷達、數(shù)值預(yù)報、指導(dǎo)產(chǎn)品、其他進行分類,可以使預(yù)報員快捷方便地訪問所需的業(yè)務(wù)系統(tǒng)。導(dǎo)航菜單包含預(yù)報平臺、數(shù)據(jù)查詢、災(zāi)害預(yù)警、決策服務(wù)、專業(yè)服務(wù)、科技服務(wù)、氣候資料共7大模塊。7大模塊下包含了相關(guān)的子欄目,細化其分類內(nèi)容便于業(yè)務(wù)人員查找與操作,也方便了平臺維護人員對出現(xiàn)故障的模塊快速及時的進行處理。該平臺目前基本涵蓋了業(yè)務(wù)人員的所有業(yè)務(wù)相關(guān)工作。導(dǎo)航菜單的功能可以隨著業(yè)務(wù)拓展繼續(xù)增加模塊也可以在相關(guān)模塊下增加子欄目,模塊和子欄目的增加不會影響網(wǎng)站整體架構(gòu)的應(yīng)用。
圖4 網(wǎng)站首頁
數(shù)據(jù)查詢模塊羅列了日常數(shù)據(jù)查詢的子欄目便于業(yè)務(wù)人員直達想要查詢的數(shù)據(jù)。數(shù)據(jù)查詢子欄目主要包括氣象自動觀測站的分鐘數(shù)據(jù)、小時數(shù)據(jù)、日數(shù)據(jù)、旬數(shù)據(jù)、月數(shù)據(jù)以及降水情況、大風情況的服務(wù)產(chǎn)品。業(yè)務(wù)人員所要查詢的實況數(shù)據(jù)以及降水或大風天氣需要制作的服務(wù)產(chǎn)品可以在此模塊獲取。數(shù)據(jù)查詢模塊數(shù)據(jù)來源于CIMISS接口,為了提升訪問速度只提供了近3個月的數(shù)據(jù)查詢。
災(zāi)害預(yù)警模塊分為預(yù)警監(jiān)測、預(yù)警信號統(tǒng)計以及預(yù)警信息查詢。出現(xiàn)預(yù)警時會實時發(fā)出告警通知預(yù)警人員及時核對預(yù)警信息并發(fā)布預(yù)警,預(yù)警信號統(tǒng)計頁面可以幫助預(yù)警人員按預(yù)警信號顏色種類和災(zāi)害類別統(tǒng)計發(fā)布的預(yù)警信息條數(shù)。
預(yù)報平臺為預(yù)報員提供了預(yù)報編輯器可以編輯沈陽市各個區(qū)縣的天氣情況,頁面包括天氣現(xiàn)象列表、風向列表、風速列表,便于預(yù)報員直接選取無需手動輸入,頁面增加聯(lián)動功能按鈕可以將各列要素同時觸發(fā)改變,減少了很多重復(fù)操作。最終將編輯好的7天預(yù)報產(chǎn)品保存至數(shù)據(jù)庫。
決策服務(wù)[14]、專業(yè)服務(wù)、科技服務(wù)3個模塊雖然都是提供服務(wù)產(chǎn)品,但是產(chǎn)品制作及產(chǎn)品服務(wù)對象均不相同,因此針對相關(guān)服務(wù)內(nèi)容進行了詳細分類,便于業(yè)務(wù)人員查找及制作。決策服務(wù)提供了雨情、風情、雪情等模板的制作材料,主要用于發(fā)生災(zāi)害性天氣時為氣象各個部門、政府部門提供決策服務(wù)材料。專業(yè)服務(wù)主要是對公眾用戶申請的氣象災(zāi)害證明材料進行審核處理。科技服務(wù)模塊主要是為科研人員及政府部門提供所需的數(shù)據(jù)接口。
氣候資料來源于經(jīng)過人工訂正的A文件,能夠查詢1951年以來的歷史數(shù)據(jù)。該模塊可以按年、月、旬、候值查詢氣象自動觀測站的要素值。年度數(shù)據(jù)查詢,可查詢某年或多年氣象自動觀測站任意時段內(nèi)各氣象要素的年值;查詢指定值的歷史排位及大于(等于或小于)指定值的年值。月、旬、候值查詢,可查詢某月(旬、候)或多月(旬、候)氣象自動觀測站任意時段內(nèi)各氣象要素的月(旬、候)值;查詢指定值的歷史排位及大于(等于或小于)指定值的月(旬、候)值。
氣象業(yè)務(wù)綜合服務(wù)平臺的建成為沈陽市氣象局業(yè)務(wù)工作的開展提供了強有力的保障。目前該平臺已經(jīng)被沈陽市氣象局的各個業(yè)務(wù)部門使用。例如氣象臺預(yù)報員通過預(yù)報平臺模塊進行預(yù)報制作;信息中心值班員通過數(shù)據(jù)查詢模塊進行數(shù)據(jù)統(tǒng)計,在降水、大風等極端天氣過程進行實施監(jiān)測[15];氣象服務(wù)中心通過決策、專業(yè)、科技服務(wù)模塊進行服務(wù)材料的制作。經(jīng)過一段時間的試用發(fā)現(xiàn)氣象業(yè)務(wù)綜合服務(wù)平臺具有完善的服務(wù)功能、較強的可操作性,實現(xiàn)了氣象業(yè)務(wù)工作及時性、準確性、統(tǒng)一性和穩(wěn)定性的目標。該平臺集約化的模式結(jié)構(gòu)適用于各個氣象業(yè)務(wù)部門,運行穩(wěn)定具有良好的推廣性。但目前來看該平臺仍存在一些問題,尤其是氣象災(zāi)害預(yù)警的監(jiān)測需要更加準確快速的作出提醒,預(yù)警發(fā)送給用戶后反饋發(fā)送是否成功等功能仍需進一步開發(fā)及完善。