曹龍全,蔡 然,吳啟星,劉 葉
(深圳市氣象服務(wù)中心,廣東 深圳 518000)
隨著氣象信息化和氣象大數(shù)據(jù)的高速發(fā)展,全國各地氣象事業(yè)的發(fā)展呈現(xiàn)出高度信息化、集約化的現(xiàn)象。尤其是近年來,新型智慧城市建設(shè)與智慧氣象建設(shè)進一步融合,氣象部門逐漸開發(fā)建立了各種各樣的信息系統(tǒng)[1-4],同時也迫切需要吸引更多的社會力量參與到氣象數(shù)據(jù)的增值服務(wù)與開發(fā)中。然而,原有的氣象數(shù)據(jù)及研發(fā)管理模式已經(jīng)無法適應(yīng)當(dāng)前形式[5-8]:一方面是研發(fā)網(wǎng)絡(luò)與辦公和業(yè)務(wù)網(wǎng)絡(luò)混用、通訊系統(tǒng)監(jiān)控缺失、數(shù)據(jù)的交換機制不全、研發(fā)與測試環(huán)境缺乏等現(xiàn)象,都給信息安全的管理帶來了隱患;另一方面是生產(chǎn)環(huán)境與測試環(huán)境混用,眾多氣象業(yè)務(wù)系統(tǒng)在開發(fā)過程中直接利用實際業(yè)務(wù)數(shù)據(jù),這對數(shù)據(jù)安全造成了極大的威脅,一旦出錯將直接影響實際業(yè)務(wù)應(yīng)用。因此,當(dāng)前迫切需要開展氣象行業(yè)大數(shù)據(jù)采集研發(fā)的中間測試環(huán)境服務(wù),搭建一個有效的中間測試平臺,將研發(fā)網(wǎng)絡(luò)與辦公、業(yè)務(wù)網(wǎng)絡(luò)分離,避免測試數(shù)據(jù)與實際業(yè)務(wù)數(shù)據(jù)混用,加強系統(tǒng)監(jiān)控,對維護氣象業(yè)務(wù)的穩(wěn)定運行,保證氣象行業(yè)數(shù)據(jù)的安全,都會起到積極作用[9-10]。
氣象行業(yè)數(shù)據(jù)中間測試平臺(以下簡稱“中試平臺”)的主要建設(shè)內(nèi)容應(yīng)包括數(shù)據(jù)梳理、數(shù)據(jù)預(yù)處理、建立測試應(yīng)用庫和測試用戶庫及文件系統(tǒng)、數(shù)據(jù)存儲入庫(數(shù)據(jù)同步)、數(shù)據(jù)使用規(guī)劃、監(jiān)控系統(tǒng)等6個部分。
中試平臺在規(guī)劃和建設(shè)方面遵循了可靠性、安全性、健壯性等原則,具體如下:
可靠性:系統(tǒng)應(yīng)具有完整的可用性,在運行期間,需要確保系統(tǒng)故障率低于國家標(biāo)準(zhǔn)。
安全性:許多檔案資料具有保密性,系統(tǒng)必須能保障數(shù)據(jù)的安全性,防止其被非法獲取或破壞,在存儲過程中,還應(yīng)在硬件損壞情況下保障數(shù)據(jù)不被破壞,并能快速恢復(fù)系統(tǒng)。
健壯性:本系統(tǒng)需要在發(fā)生各種突發(fā)事件時均能正常運行,支持?jǐn)?shù)據(jù)各種各樣的數(shù)據(jù)的采集和處理,支持多種類型的查詢方式,并支持將來業(yè)務(wù)流程及管理手段的更新。
易用性:系統(tǒng)設(shè)計中,充分考慮人性化的設(shè)計思路,包括用戶界面、用戶流程等。
可擴展性:系統(tǒng)設(shè)計中,考慮今后系統(tǒng)的擴展性,預(yù)留二次開發(fā)的空間,并可根據(jù)需要產(chǎn)生不同的報表,以達(dá)到系統(tǒng)再次開發(fā)增值的目的。
本平臺主要采用Python和JAVA兩種開發(fā)語言,兼顧了軟件易用性和數(shù)據(jù)采集、分析效率。Python的設(shè)計風(fēng)格清晰劃一,這使得Python成為一門易讀、易維護,并且被大量用戶所歡迎的、用途廣泛的語言。Python和其他大多數(shù)語言(如C語言)的區(qū)別在于,一個模塊的界限,完全是由每行的首字符在這一行的位置來決定的(而C語言是用一對花括號{}來確定模塊的邊界,與字符的位置毫無關(guān)系)。不可否認(rèn)的是,Python通過強制程序員們縮進字符(包括if,for和函數(shù)定義等所有需要使用模塊的地方),確實使得程序更加清晰和美觀。另外,Python本身被設(shè)計為可擴充的,并非所有的特性和功能都集成到語言核心。Python提供了豐富的API和工具,以便程序員能夠輕松地使用C語言、C++、Cython來編寫擴充模塊。Python編譯器本身也可以被集成到其它需要腳本語言的程序內(nèi)。
本平臺采用先進的數(shù)據(jù)庫連接池技術(shù),加快數(shù)據(jù)庫訪問速度并支持多用戶同時訪問:數(shù)據(jù)庫連接池技術(shù)不必在需要連接時才建立連接、運算完畢后關(guān)閉連接,因而極大地加快了數(shù)據(jù)庫的訪問速度;同時數(shù)據(jù)庫連接池支持多線程運行,不同的用戶可以使用連接池中不同的連接進行數(shù)據(jù)訪問,避免個別用戶占滿連接數(shù)的情況,極大地提高了系統(tǒng)的適應(yīng)性能。此外,本平臺使用了SSL數(shù)據(jù)安全層密鑰,使數(shù)據(jù)連接更加安全可靠,JAVA語言與APPLICATION SERVER為SSL安全連接提供了自然支持。
氣象行業(yè)大數(shù)據(jù)采集及中試環(huán)境服務(wù)主要包含兩大系統(tǒng)功能,一是數(shù)據(jù)處理,包括數(shù)據(jù)梳理、數(shù)據(jù)預(yù)處理、建立測試應(yīng)用庫和測試用戶庫及文件系統(tǒng)、數(shù)據(jù)存儲入庫(數(shù)據(jù)同步)和數(shù)據(jù)使用規(guī)劃。二是監(jiān)控平臺建設(shè),包括接口監(jiān)控子平臺和硬件監(jiān)控子平臺。
數(shù)據(jù)處理主要從以下幾個部分展開,一是數(shù)據(jù)梳理,聚集氣象局各個業(yè)務(wù)系統(tǒng)的相關(guān)數(shù)據(jù)并進行詳細(xì)的統(tǒng)計分析,并且形成數(shù)據(jù)字典,其中包括數(shù)據(jù)的數(shù)量、組成及類型等相關(guān)信息。二是數(shù)據(jù)預(yù)處理,根據(jù)數(shù)據(jù)分析的情況,把所有待處理入庫的數(shù)據(jù)按照數(shù)據(jù)類型進行歸納整合,并判斷是否需要設(shè)計新的數(shù)據(jù)表結(jié)構(gòu);如果需要設(shè)計新的數(shù)據(jù)表,則將根據(jù)分析結(jié)果設(shè)計并形成結(jié)構(gòu)清晰、存儲合理且擁有良好數(shù)據(jù)接口的數(shù)據(jù)表結(jié)構(gòu)。三是建立測試應(yīng)用庫和測試用戶庫及文件系統(tǒng),即在中試平臺服務(wù)器上建立測試數(shù)據(jù)庫。四是數(shù)據(jù)存儲入庫(數(shù)據(jù)同步),其中,氣象局中心庫數(shù)據(jù)儲存到測試應(yīng)用庫,氣象局用戶庫數(shù)據(jù)儲存到測試用戶庫,氣象局文件系統(tǒng)數(shù)據(jù)儲存到文件系統(tǒng)。五是數(shù)據(jù)使用規(guī)劃,對測試數(shù)據(jù)庫的數(shù)據(jù),前期梳理之后打上標(biāo)簽,業(yè)務(wù)系統(tǒng)使用數(shù)據(jù)需要設(shè)定使用權(quán)限和標(biāo)簽數(shù)據(jù)流向,并進行監(jiān)控。
監(jiān)控平臺建設(shè)包括接口監(jiān)控子平臺和硬件監(jiān)控子平臺,其中接口監(jiān)控子平臺通過接口調(diào)用數(shù)據(jù),從而設(shè)定數(shù)據(jù)使用權(quán)限,同時要根據(jù)前期數(shù)據(jù)梳理階段的數(shù)據(jù)標(biāo)簽進行數(shù)據(jù)流向監(jiān)控,數(shù)據(jù)使用各個環(huán)節(jié)嚴(yán)格把關(guān),以保證數(shù)據(jù)使用的安全性;硬件監(jiān)控子平臺通過第三方監(jiān)控軟件(zabbix)監(jiān)控中試平臺所有硬件(如服務(wù)器等設(shè)備)的運行情況,從而能及時發(fā)現(xiàn)和處理故障。
氣象行業(yè)大數(shù)據(jù)中間測試平臺建設(shè)總體功能如圖1所示。
圖1 中間測試平臺建設(shè)總體功能圖Fig.1 Overall function diagram of intermediate test platform construction
深圳市氣象服務(wù)中心開發(fā)建設(shè)了中試平臺,于2018年投入使用。該中試平臺為各開發(fā)廠商提供了一個完全封閉的開發(fā)測試環(huán)境。開發(fā)廠商必須通過虛擬云桌面使用中試平臺,利用接口調(diào)取氣象數(shù)據(jù),且廠商調(diào)取的數(shù)據(jù)僅能儲存在虛擬云桌面上,因此,整個開發(fā)測試環(huán)境與外界完全隔離。氣象局通過zabbix監(jiān)控服務(wù)器的運行情況,通過數(shù)據(jù)監(jiān)控接口監(jiān)控用戶每小時、每天、每個月的數(shù)據(jù)調(diào)用量以及調(diào)用的數(shù)據(jù)類型等指標(biāo)。
中試平臺應(yīng)用庫(ORACLE)數(shù)據(jù)來源于深圳市氣象局中心庫,中試平臺用戶庫(ORACLE)數(shù)據(jù)來源于氣象局用戶庫,中試平臺應(yīng)用庫(MYSQL)數(shù)據(jù)來源于廠商MYSQL數(shù)據(jù)庫,中試平臺文件系統(tǒng)數(shù)據(jù)來源于氣象局文件系統(tǒng)服務(wù)器。
中試平臺共使用了4臺服務(wù)器,其中中試平臺應(yīng)用庫(ORACLE)和中試平臺用戶庫(ORACLE)各占用一臺,中試平臺應(yīng)用庫(MYSQL)和文件系統(tǒng)共同占用一臺,接口平臺和監(jiān)控平臺共同占用一臺。整個平臺的邏輯架構(gòu)如圖2所示。
圖2 中間測試平臺邏輯架構(gòu)圖Fig.2 Logical architecture diagram of intermediate test platform
中試平臺搭建完成投入使用后,軟件開發(fā)廠商入駐中試平臺進行開發(fā)測試,需要執(zhí)行申請、調(diào)試、配置接口、測試(測試內(nèi)容包括了功能測試、壓力測試、回歸測試、用戶測試、業(yè)務(wù)流程測試以及文檔檢查等)、合格判定等步驟。
自2018年中試平臺建立應(yīng)用以來,極大提升了氣象大數(shù)據(jù)支撐應(yīng)用和共享服務(wù)能力:一是提升了平臺業(yè)務(wù)支撐能力,利用中試平臺規(guī)范各業(yè)務(wù)系統(tǒng)及各開發(fā)公司管理模式,實現(xiàn)“測試、開發(fā)、生產(chǎn)”場景分離,明確數(shù)據(jù)、網(wǎng)絡(luò)權(quán)限管理機制,嚴(yán)格把控數(shù)據(jù)接口使用規(guī)則,保障全局業(yè)務(wù)系統(tǒng)安全穩(wěn)健運行。二是增強了數(shù)據(jù)開放共享服務(wù)能力,匯集氣象數(shù)據(jù)資源并進行產(chǎn)品整合,融合跨行業(yè)數(shù)據(jù),建立氣象服務(wù)主題庫,定制化氣象數(shù)據(jù)產(chǎn)品,協(xié)同創(chuàng)新數(shù)據(jù)共享機制,推動實現(xiàn)普惠氣象服務(wù)水平,進一步提升氣象數(shù)據(jù)使用價值。三是提高了數(shù)據(jù)智能化應(yīng)用能力,著力將大數(shù)據(jù)、云計算等技術(shù)運用到多維氣象綜合觀測、精準(zhǔn)氣象預(yù)測預(yù)報和高效公共服務(wù)業(yè)務(wù)中,提升氣象數(shù)據(jù)在線加工、挖掘分析能力,將觀測、預(yù)測、服務(wù)數(shù)據(jù)與氣象大數(shù)據(jù)云平臺對接,實現(xiàn)硬件“入云”、數(shù)據(jù)“接云”、服務(wù)“云端”的氣象云生態(tài)模式,加快氣象產(chǎn)品智能化應(yīng)用步伐。總的來說,中試平臺對內(nèi)實現(xiàn)了大數(shù)據(jù)規(guī)范化管理,保障基礎(chǔ)平臺運行高效、穩(wěn)定;對外提升了氣象數(shù)據(jù)使用價值和數(shù)據(jù)共享服務(wù)能力,打通了氣象數(shù)據(jù)與行業(yè)、科研機構(gòu)及氣象愛好者的服務(wù)鏈路。
2019年4月,深圳市某公司為深圳市氣象局緊急開發(fā)一個深圳市城市安全氣象決策支持平臺,平臺以現(xiàn)有的氣象觀測數(shù)據(jù)為基礎(chǔ),為政府相關(guān)部門應(yīng)對各類氣象災(zāi)害天氣的減災(zāi)防災(zāi)及快速聯(lián)動提供決策服務(wù)依據(jù)。該平臺基于“以風(fēng)險為中心”的公共安全管理理念,整合各類信息資源,并在此基礎(chǔ)上通過相關(guān)風(fēng)險評估最終為城市安全決策、事故應(yīng)急處置提供可靠的信息支撐,涉及數(shù)據(jù)交互、用戶表單存儲、資料分揀、信息識別等方面的內(nèi)容。該平臺在開發(fā)期間恰逢持續(xù)暴雨天氣過程,在以往的開發(fā)過程中,此類功能開發(fā)完成后,需在沒有天氣過程的時候進行測試,以免影響正常的業(yè)務(wù)系統(tǒng)運行及數(shù)據(jù)傳輸。由于該平臺的整個開發(fā)過程完全在中間測試平臺進行,且通過接口調(diào)取測試庫數(shù)據(jù),因此并未受到天氣過程影響,也并未對其他業(yè)務(wù)系統(tǒng)造成任何影響,最終從開發(fā)到上線用時不到一周,有效提高了開發(fā)效率,同時也為數(shù)據(jù)傳輸安全等方面的工作起到了極大的保障作用。
氣象行業(yè)數(shù)據(jù)中間測試平臺的建立,實現(xiàn)了數(shù)據(jù)和產(chǎn)品格式的統(tǒng)一化,將專用格式解析為通用格式,由專家級數(shù)據(jù)利用轉(zhuǎn)變?yōu)楣こ處熂墧?shù)據(jù)利用,在降低數(shù)據(jù)使用門檻的同時便于進行集中管理;同時中試平臺搭建的測試環(huán)境規(guī)范了數(shù)據(jù)使用和開發(fā)流程,有效的解決了數(shù)據(jù)混用的問題,為今后更大范圍的數(shù)據(jù)共享、數(shù)據(jù)合作的安全性方面起到了有力的參考作用。該平臺的成功經(jīng)驗,也將向周邊兄弟單位進行有效的推廣。
隨著氣象災(zāi)害預(yù)警系統(tǒng)功能模塊的不斷更新和豐富,以及開發(fā)上線業(yè)務(wù)系統(tǒng)逐漸增多,中試平臺無論在開發(fā)環(huán)境的承載量,還是在測試數(shù)據(jù)承載力和存儲讀寫方面的壓力都會不斷增大。因此,我們還將繼續(xù)開展更多中間測試環(huán)境服務(wù)的升級,為將來更加復(fù)雜的開發(fā)和測試業(yè)務(wù)需求做好充分的準(zhǔn)備。