尹常紅 胡雅超 袁文波 涂明
摘要:隨著氣象部門與各行業(yè)部門間合作逐漸深入,氣象信息對外服務(wù)越來越普遍,各行業(yè)部門對精細(xì)化氣象服務(wù)提出了更高要求。在對當(dāng)前氣象數(shù)據(jù)共享服務(wù)需求分析基礎(chǔ)上,基于數(shù)據(jù)庫相關(guān)技術(shù),設(shè)計一種通用氣象數(shù)據(jù)共享接口系統(tǒng),實現(xiàn)氣象部門與各行業(yè)部門數(shù)據(jù)共享共用。系統(tǒng)接口設(shè)計靈活,使用便捷,為推進(jìn)部門合作和信息共享具有一定意義。
關(guān)鍵詞:氣象數(shù)據(jù);行業(yè)數(shù)據(jù);數(shù)據(jù)共享;接口系統(tǒng)
1 引言
隨著科技進(jìn)步和經(jīng)濟(jì)社會發(fā)展,社會公眾和各行業(yè)部門對氣象服務(wù)的需求日益凸顯。氣象信息對外服務(wù)越來越普遍,大量的氣象數(shù)據(jù)被挖掘和分析,服務(wù)于社會。氣象服務(wù)領(lǐng)域遍布交通、農(nóng)業(yè)、能化、旅游、水利、環(huán)保、物流等各行業(yè),氣象服務(wù)業(yè)開放程度和市場化進(jìn)程日益深化,社會用戶及公眾對服務(wù)數(shù)據(jù)種類、數(shù)據(jù)服務(wù)手段和數(shù)據(jù)服務(wù)的多形式化表現(xiàn)的要求越來越高,可預(yù)見的未來還會更高,對氣象服務(wù)的需求度還會隨著預(yù)報技術(shù)的發(fā)展同步增長。
氣象數(shù)據(jù)的共享服務(wù)是氣象業(yè)務(wù)和氣象科研的重要工作,近年來國家和省級氣象部門都開展了一些相關(guān)的氣象數(shù)據(jù)共享和信息應(yīng)用的研究工作,其中中國氣象局主導(dǎo)建設(shè)的全國綜合氣象信息共享平臺(CIMISS)建成了氣象系統(tǒng)內(nèi)標(biāo)準(zhǔn)統(tǒng)一應(yīng)用規(guī)范的基礎(chǔ)氣象數(shù)據(jù)庫,CIMISS包括實時觀測數(shù)據(jù)、歷史數(shù)據(jù)和業(yè)務(wù)產(chǎn)品等14 大類,初步實現(xiàn)了各類氣象數(shù)據(jù)的統(tǒng)一規(guī)劃、分布存儲和共享共用。CIMISS在一定程度上解決了氣象數(shù)據(jù)共享應(yīng)用,尤其是行業(yè)內(nèi)部應(yīng)用的問題,但是在行業(yè)共享應(yīng)用還有待進(jìn)一步深入。
以武漢為例,隨著氣象與水務(wù)、環(huán)保、農(nóng)業(yè)、交管、綜治等各行業(yè)間合作的加強,氣象數(shù)據(jù)加工存儲與行業(yè)間共享需求日益增長。在氣象數(shù)據(jù)應(yīng)用服務(wù)中,對于海量數(shù)據(jù)存儲、高速數(shù)據(jù)交換以及并發(fā)訪問、多樣性數(shù)據(jù)處理、數(shù)據(jù)挖掘應(yīng)用等需求也需要進(jìn)一步研究解決,氣象業(yè)務(wù)服務(wù)發(fā)展急需基礎(chǔ)數(shù)據(jù)資源環(huán)境的可靠支撐。為了實現(xiàn)武漢市氣象部門與外部門的數(shù)據(jù)應(yīng)用共享,建立了氣象數(shù)據(jù)中心,數(shù)據(jù)中心采集各類氣象數(shù)據(jù)和部分其他部門數(shù)據(jù),基于該數(shù)據(jù)中心,武漢國家基本氣象觀測站開發(fā)了一套氣象數(shù)據(jù)共享接口應(yīng)用系統(tǒng),充分利用已有數(shù)據(jù)環(huán)境和業(yè)務(wù)成果,推動氣象與行業(yè)數(shù)據(jù)互聯(lián)互通、共享共用、高效利用。
2.系統(tǒng)設(shè)計概述
2.1設(shè)計原則
在系統(tǒng)設(shè)計中,遵循以下原則。
可擴展性原則:系統(tǒng)具備性能的可擴展性,當(dāng)系統(tǒng)數(shù)據(jù)量和訪問量增大,系統(tǒng)服務(wù)能力不能滿足性能要求時,支持通過平臺水平擴展增加系統(tǒng)的業(yè)務(wù)處理能力。同時功能、模塊支持外部可配置,以適應(yīng)不同的應(yīng)用環(huán)境,通過配置實現(xiàn)軟件的安裝和升級過程。
安全性原則:支持授權(quán)和身份認(rèn)證,確保授權(quán)和身份認(rèn)證有效性。在認(rèn)證方式中,需要支持加密的用戶名/密碼認(rèn)證,可以查看重置密碼歷史。支持?jǐn)?shù)據(jù)安全性,在不同系統(tǒng)之間的數(shù)據(jù)傳輸,能夠保證數(shù)據(jù)在傳輸過程中接收與發(fā)送的一致性,以及數(shù)據(jù)交換的準(zhǔn)確性和及時性。
規(guī)范性原則:數(shù)據(jù)共享接口系統(tǒng)的設(shè)計中,必須嚴(yán)格遵循軟件工程規(guī)范化原則,在不同的設(shè)計階段都需要進(jìn)行相應(yīng)的設(shè)計評審,結(jié)合評審意見完成相關(guān)的設(shè)計文檔,將規(guī)范化的管理和控制貫穿整個設(shè)計過程。在系統(tǒng)開發(fā)中,需要遵循業(yè)務(wù)技術(shù)規(guī)范,氣象數(shù)據(jù)字段定義必須與CIMISS一致,其他行業(yè)數(shù)據(jù)依照行業(yè)標(biāo)準(zhǔn)。
可維護(hù)性原則:系統(tǒng)支持對運維平臺所有模塊進(jìn)行管理,能夠主動識別所有模塊的軟件版本、部署主機,能夠?qū)崟r監(jiān)測各模塊的關(guān)鍵進(jìn)程運行狀態(tài)。同時對于涉及系統(tǒng)運行的相關(guān)參數(shù)的配置和修改,開發(fā)方便直觀的人機交互界面,便于用戶操作。系統(tǒng)出現(xiàn)異常中斷時,重新啟動方便快捷。
2.2系統(tǒng)總體架構(gòu)
氣象數(shù)據(jù)共享接口系統(tǒng)開發(fā)和實現(xiàn)滿足了武漢市行業(yè)部門與氣象部門數(shù)據(jù)交換需求,系統(tǒng)設(shè)計為四層結(jié)構(gòu):自下而上依次為數(shù)據(jù)存儲層、數(shù)據(jù)訪問層、業(yè)務(wù)邏輯層、數(shù)據(jù)表示層,系統(tǒng)總體架構(gòu)見圖1。
數(shù)據(jù)存儲層:該結(jié)構(gòu)層主要對武漢全市氣象部門的各種氣象觀測數(shù)據(jù)和由各業(yè)務(wù)單位制作的服務(wù)產(chǎn)品以及其他業(yè)務(wù)系統(tǒng)生成的數(shù)據(jù)信息進(jìn)行存儲,作為基礎(chǔ)數(shù)據(jù)支撐,提供數(shù)據(jù)共享接口系統(tǒng)對外共享的數(shù)據(jù)來源,同時存儲系統(tǒng)運行參數(shù)和用戶權(quán)限等系統(tǒng)數(shù)據(jù)。
數(shù)據(jù)訪問層:該結(jié)構(gòu)層主要實現(xiàn)對各類數(shù)據(jù)進(jìn)行分類操作,作為承上啟下的功能層,訪問層設(shè)計開發(fā)了一些視圖、存儲過程以及數(shù)據(jù)調(diào)用方法等,便于協(xié)同開發(fā)和共享調(diào)用。同時在該層中還對部分中間過程編譯為DLL文件進(jìn)行加密存儲,提高應(yīng)用安全。
業(yè)務(wù)邏輯層:該結(jié)構(gòu)層主要使用訪問層中預(yù)先開發(fā)保存的數(shù)據(jù)操作方法、視圖、過程等,同時對基礎(chǔ)數(shù)據(jù)根據(jù)既定規(guī)則進(jìn)行相關(guān)組合并用,然后以更加抽象和直觀的方式將處理之后的數(shù)據(jù)結(jié)果推送至最上層即數(shù)據(jù)表示層。
數(shù)據(jù)表示層:該結(jié)構(gòu)層主要進(jìn)行數(shù)據(jù)的可視化展示,提供Web服務(wù),數(shù)據(jù)表示層同時也定義用戶可見信息和內(nèi)容,包括各類氣象監(jiān)測數(shù)據(jù)和預(yù)報服務(wù)產(chǎn)品,系統(tǒng)運行中的告警信息和數(shù)據(jù)訪問的統(tǒng)計信息等。
2.3系統(tǒng)運行環(huán)境
武漢市氣象數(shù)據(jù)共享接口管理系統(tǒng)為B/S架構(gòu),后臺采用C#語言開發(fā),前端采用html5語言實現(xiàn),前后端完全分離。數(shù)據(jù)庫系統(tǒng)為Oracle 11g,數(shù)據(jù)庫服務(wù)器運行Linux操作系統(tǒng),前端應(yīng)用服務(wù)器運行Windows Server 2016操作系統(tǒng)。數(shù)據(jù)采集和處理使用Windows服務(wù),隨著系統(tǒng)啟動自動開啟采集和數(shù)據(jù)處理服務(wù)。
3 系統(tǒng)設(shè)計與實現(xiàn)
3.1接口技術(shù)
武漢市氣象數(shù)據(jù)共享接口管理系統(tǒng)設(shè)計功能較多,本文只討論數(shù)據(jù)接口部分的設(shè)計思路和相關(guān)技術(shù)。系統(tǒng)設(shè)計在數(shù)據(jù)接口中引入了Web Service技術(shù),通過構(gòu)建Web Service,其他行業(yè)部門能方便地獲取氣象數(shù)據(jù),數(shù)據(jù)主要以JSON格式返回。
3.1.1 Web Services
Web Services通過相關(guān)的系列標(biāo)準(zhǔn)協(xié)議提供數(shù)據(jù)服務(wù),支持網(wǎng)絡(luò)中不同主機之間的交互,保證不同平臺上應(yīng)用服務(wù)的互操作性。此外Web Service可以獨立于開發(fā)平臺以完整的形式描述所有的信息數(shù)據(jù),解決傳統(tǒng)情況下兩個平臺之間數(shù)據(jù)共享時的再集成問題。在本系統(tǒng)開發(fā)中采用Web Service技術(shù),實現(xiàn)不同實現(xiàn)平臺和軟件之間的數(shù)據(jù)通信,在API和WEB服務(wù)和開發(fā)中發(fā)揮作用。
3.1.2 JSON數(shù)據(jù)交換
在網(wǎng)絡(luò)上傳輸數(shù)據(jù)時最常用的格式有兩種:XML和JSON。XML作為一種數(shù)據(jù)信息標(biāo)記語言,在對數(shù)據(jù)信息進(jìn)行標(biāo)記時具有結(jié)構(gòu)化的特點。相比于XML,JSON則是一種更加輕量級的數(shù)據(jù)交換格式,可讀性好,易于快速編寫,可在不同平臺之間兼容性較高,進(jìn)行數(shù)據(jù)交換時可以完全獨立于語言文本格式。JSON數(shù)據(jù)格式簡單,體積小,占用帶寬小,易于解析,易于維護(hù)?;谝陨蟽?yōu)勢,本系統(tǒng)在設(shè)計中選擇JSON作為數(shù)據(jù)交換格式。
3.1.3 ODBC數(shù)據(jù)庫接口
ODBC技術(shù)為異質(zhì)數(shù)據(jù)庫的訪問提供了統(tǒng)一的數(shù)據(jù)接口。ODBC提供了讓應(yīng)用程序僅僅通過一組通用代碼就能訪問不同的DBMS,通過ODBC驅(qū)動程序動態(tài)鏈接庫,將特定的開放式數(shù)據(jù)庫連接的數(shù)據(jù)源和另一個應(yīng)用程序相連接。本系統(tǒng)在開發(fā)中通過ORACLE數(shù)據(jù)庫與現(xiàn)有系統(tǒng)完成良好對接,采集程序通過CIMISS、水務(wù)局提供的數(shù)據(jù)接口采集數(shù)據(jù)入庫,而數(shù)據(jù)查詢功能和其他業(yè)務(wù)系統(tǒng)(如氣象水務(wù)數(shù)據(jù)共享平臺)能夠方便地調(diào)用數(shù)據(jù)。系統(tǒng)Web服務(wù)對數(shù)據(jù)的訪問均通過ODBC進(jìn)行數(shù)據(jù)連接。
3.1.4 Quartz.net技術(shù)
系統(tǒng)通過Quartz實現(xiàn)數(shù)據(jù)的定時采集,加工處理。Quartz是一個作業(yè)調(diào)度系統(tǒng),可以與任何其他軟件系統(tǒng)集成或一起使用,負(fù)責(zé)在執(zhí)行預(yù)處理程序時執(zhí)行(或通知)其他軟件組件確定(調(diào)度)時間到達(dá)。Quartz非常靈活,可以單獨使用或一起使用,組件使用輕便,設(shè)置/配置較少,可以“開箱即用”,且容錯性好,可以在保留(記?。╊A(yù)定作業(yè)。
3.1.5 緩存技術(shù)
系統(tǒng)設(shè)計中使用的緩存技術(shù)包括客戶端緩存和服務(wù)器緩存。客戶端緩存主要是緩存較大數(shù)據(jù),避免與服務(wù)器反復(fù)交互增加帶寬消耗,主要包括衛(wèi)星云圖和雷達(dá)產(chǎn)品的本地緩存。服務(wù)器緩存主要是緩存經(jīng)常需要調(diào)用的數(shù)據(jù),包括整點實況、智能網(wǎng)格預(yù)報、短臨預(yù)報等,避免反復(fù)讀取數(shù)據(jù),增加服務(wù)器性能的消耗。當(dāng)用戶請求數(shù)據(jù)訪問時,系統(tǒng)將優(yōu)先與速度更快的緩存進(jìn)行交互,命中緩存后可以極大提升相應(yīng)時效和用戶體驗。
3.2數(shù)據(jù)接口設(shè)計
3.2.1系統(tǒng)數(shù)據(jù)庫設(shè)計
系統(tǒng)數(shù)據(jù)庫設(shè)計主要包括數(shù)據(jù)庫管理功能、數(shù)據(jù)庫訪問功能、數(shù)據(jù)庫存儲結(jié)構(gòu)設(shè)計、數(shù)據(jù)信息流程設(shè)計、數(shù)據(jù)庫接口設(shè)計、系統(tǒng)安全設(shè)計等。設(shè)計中采用了相關(guān)的數(shù)據(jù)庫管理技術(shù),使用了靈活的庫表結(jié)構(gòu)設(shè)計,實現(xiàn)對行業(yè)和氣象數(shù)據(jù)有針對性的加工存儲以及對共享接口系統(tǒng)的特定信息的管理等功能。數(shù)據(jù)庫表設(shè)計圍繞和服務(wù)于數(shù)據(jù)共享接口,主要包括:逐小時數(shù)據(jù)、逐日數(shù)據(jù)、接口管理、接口調(diào)用數(shù)據(jù)、系統(tǒng)管理等。數(shù)據(jù)信息流程設(shè)計如圖2。
3.2.2數(shù)據(jù)表結(jié)構(gòu)
根據(jù)數(shù)據(jù)庫存儲數(shù)據(jù)的要求,系統(tǒng)設(shè)計了系列數(shù)據(jù)表,主要包括業(yè)務(wù)數(shù)據(jù)類,用戶管理類和系統(tǒng)功能類。比如業(yè)務(wù)數(shù)據(jù)類建立了整點數(shù)據(jù)表、逐日數(shù)據(jù)表、預(yù)報服務(wù)產(chǎn)品表等,用戶管理類建立了服務(wù)用戶表、系統(tǒng)用戶表、角色表、角色權(quán)限表、用戶角色表等,系統(tǒng)功能類建立了接口表、接口權(quán)限表、功能權(quán)限表、告警閾值表等。業(yè)務(wù)類數(shù)據(jù)表的字段定義與CIMISS數(shù)據(jù)表一致,具有規(guī)范性。
本系統(tǒng)的設(shè)計中,與接口相關(guān)的數(shù)據(jù)表主要有對外服務(wù)用戶表(t_UserJk)、用戶接口權(quán)限表(t_UserJK)、接口表(t_JK)等。對外服務(wù)用戶表(t_UserJk)用于存儲對外服務(wù)的用戶信息,如武漢水務(wù)局,綜合治理辦公室等;接口表(t_JK)主要用于對幾口的基本信息進(jìn)行管理;用戶接口權(quán)限表(t_UserJK)則存儲對外接口用戶能夠調(diào)取接口的相關(guān)權(quán)限信息。相關(guān)表結(jié)構(gòu)見表1。
3.3 接口調(diào)用實例
接口管理系統(tǒng)設(shè)計了較為完整和靈活的配置功能,在接口管理業(yè)務(wù)系統(tǒng)中配置好用戶信息、用戶接口權(quán)限等,通過接口地址獲取所需要的氣象數(shù)據(jù),以JSON格式返回。
例如,配置好綜治辦用戶的接口賬戶信息、接口權(quán)限信息以及相關(guān)的數(shù)據(jù)信息,如圖3所示,訪問接口地址返回所需數(shù)據(jù)。比如綜治辦用戶需要通過數(shù)據(jù)接口方式查看2020年12月1日22時武漢市部分區(qū)域自帶氣象站觀測到的小時降水、氣溫、風(fēng)向風(fēng)速等歷史數(shù)據(jù),接口格式為:http://IP:8001/jk/hour.ashx?ywtype=getHourSkInfo&loginName=用戶名&pwd=密碼&time=時間。
圖4為瀏覽器訪問的歷史觀測數(shù)據(jù)的返回信息,返回信息包括站名(STATIONNAME)、站號(STATIONNUM)、區(qū)縣(COUNTY)、經(jīng)緯度(LONGITUDE、LATITUDE)、小時降水量(PRE_1H)、氣溫(TEM)、十分鐘平均風(fēng)向(WIN_D_AVG_10MI)、十分鐘平均風(fēng)速(WIN_S_AVG_10MI)等。
再如水務(wù)局用戶根據(jù)數(shù)據(jù)訪問需求和數(shù)據(jù)訪問權(quán)限,需要獲取武漢市全市區(qū)域自動氣象站最新的整點實時降水量,在系統(tǒng)管理后臺配置后,可以通過接口方式返回JSON格式數(shù)據(jù),返回數(shù)據(jù)要素包括站名、站號、區(qū)域、經(jīng)緯度和小時降水量等,見圖5。
4 結(jié)束語
在數(shù)據(jù)融合與共享的大環(huán)境下,氣象部門與其他行業(yè)部門交換共享的數(shù)據(jù)日益增多,相關(guān)的系統(tǒng)建設(shè)和技術(shù)開發(fā)也百花齊放。本文提出的氣象數(shù)據(jù)共享接口系統(tǒng)的設(shè)計思路能夠在相關(guān)業(yè)務(wù)開發(fā)中參考和借鑒。建設(shè)氣象數(shù)據(jù)共享接口系統(tǒng),在氣象部門與其他行業(yè)部門之間開啟了便捷的數(shù)據(jù)通道,能夠顯著提高數(shù)據(jù)交換的及時性和數(shù)據(jù)使用的完整性,為推進(jìn)部門合作信息共享提供穩(wěn)定高效的數(shù)據(jù)環(huán)境,為大城市開展精細(xì)化氣象服務(wù)和跨學(xué)科科學(xué)研究提供有力的數(shù)據(jù)支撐。
參考文獻(xiàn):
[1] 熊安元,趙芳,王穎,等.全國綜合氣象信息共享系統(tǒng)的設(shè)計與實現(xiàn)[J].應(yīng)用氣象學(xué)報,2015,26(4):500-512.
[2] 李新慶,陳海波,楊有林,等.寧夏綜合氣象信息共享與管理系統(tǒng)設(shè)計研究[J].計算機技術(shù)與發(fā)展,2019,29(5):135-141.
[3] 陳蓓青,譚德寶,田雪冬,等.大數(shù)據(jù)技術(shù)在水利行業(yè)中的應(yīng)用探討[J].長江科學(xué)院院報,2016,33(11):59-62.
[4] 何林,鄧鳳東,李亞麗,等. 陜西省氣象數(shù)據(jù)共享系統(tǒng)[J].陜西氣象,2017(6):32-35.
【通聯(lián)編輯:梁書】