閆蕎蕎,劉 瑩,劉 雯,嚴 婧
(湖北省氣象信息與技術(shù)保障中心,湖北 武漢 430074)
?
地面氣象資料數(shù)據(jù)訪問接口設(shè)計與實現(xiàn)
閆蕎蕎,劉 瑩,劉 雯,嚴 婧
(湖北省氣象信息與技術(shù)保障中心,湖北 武漢 430074)
針對用戶對高質(zhì)量、高時效氣象數(shù)據(jù)服務(wù)的需求,在對氣象資料服務(wù)現(xiàn)狀剖析的基礎(chǔ)上,基于MDOS數(shù)據(jù)庫設(shè)計實現(xiàn)了地面氣象資料數(shù)據(jù)訪問接口。在提高數(shù)據(jù)服務(wù)效率的同時可屏蔽底層數(shù)據(jù)結(jié)構(gòu)變化對用戶應(yīng)用的影響,保證數(shù)據(jù)服務(wù)的規(guī)范性、穩(wěn)定性和安全性。
數(shù)據(jù)訪問接口;地面氣象資料;數(shù)據(jù)同步;MDOS
資料服務(wù)是氣象資料業(yè)務(wù)的落腳點,為用戶提供高時效、高質(zhì)量的數(shù)據(jù)服務(wù)是其核心。傳統(tǒng)的數(shù)據(jù)服務(wù)方式主要有:(1)經(jīng)資料主管部門批準,資料服務(wù)單位將報文數(shù)據(jù)直接通過FTP定時推送至使用單位,數(shù)據(jù)質(zhì)量較低;(2)資料使用者向資料主管部門提出申請,獲批后資料服務(wù)單位制作數(shù)據(jù)集后再提供給用戶,質(zhì)量有保證但時效較差。這種粗放式和點對點的數(shù)據(jù)服務(wù)模式,一方面不利于資源的高效利用和集約化管理,增加用戶管理數(shù)據(jù)負擔的同時資料管理部門在數(shù)據(jù)服務(wù)上存在重復勞動;另一方面,時間上的滯后越來越不能滿足用戶對數(shù)據(jù)時效的需求,數(shù)據(jù)被訂正后也很難保證不同數(shù)據(jù)副本間的一致性。
為解決傳統(tǒng)數(shù)據(jù)服務(wù)存在的問題,提高氣象資料業(yè)務(wù)對其他氣象業(yè)務(wù)的支撐能力,本文基于氣象資料業(yè)務(wù)系統(tǒng)(Meteorological Data Operational System, MDOS)設(shè)計實現(xiàn)了地面氣象資料數(shù)據(jù)訪問接口,旨在基于MDOS質(zhì)控和處理后的數(shù)據(jù),為部門內(nèi)用戶提供高質(zhì)量的數(shù)據(jù)服務(wù)。為避免數(shù)據(jù)服務(wù)對MDOS實時業(yè)務(wù)產(chǎn)生影響,利用SQL Server數(shù)據(jù)復制技術(shù)建立專門用于數(shù)據(jù)服務(wù)的共享數(shù)據(jù)庫,基于共享數(shù)據(jù)庫建立數(shù)據(jù)訪問接口;為便于監(jiān)控用戶的數(shù)據(jù)訪問行為,保證數(shù)據(jù)訪問安全,設(shè)計了基于角色和審計信息的數(shù)據(jù)訪問控制策略。最后,介紹了數(shù)據(jù)訪問接口的使用方式。
地面觀測是氣象觀測的重要組成部分,是對地球表面一定范圍內(nèi)的氣象狀況及其變化進行系統(tǒng)、連續(xù)的觀察和測定,為天氣預報、氣象情報、氣候分析、科學研究和氣象服務(wù)提供重要的依據(jù)[1]。地面氣象資料按時間尺度可分為分鐘、小時、日、旬、候、月、年值等資料;按測站類別可分為國家站、區(qū)站站、輻射站等資料;按產(chǎn)生方式可分為觀測資料和統(tǒng)計值等;按資料所代表的狀態(tài)可分為瞬時值、平均值、極端值、總量值及頻率值等。數(shù)據(jù)訪問接口在綜合考慮各種分類方式的基礎(chǔ)上結(jié)合業(yè)務(wù)需求確定。
MDOS數(shù)據(jù)庫管理系統(tǒng)使用Microsoft SQL Server 2008 R2[2]數(shù)據(jù)庫管理軟件,由原始庫、應(yīng)用庫和元數(shù)據(jù)庫組成。其中,原始庫用于存儲臺站上傳的地面觀測數(shù)據(jù)及其他子系統(tǒng)運行所需的信息;應(yīng)用庫用于存儲各類面向應(yīng)用的質(zhì)控后數(shù)據(jù)和統(tǒng)計值,各統(tǒng)計值實時滾動更新;元數(shù)據(jù)庫存儲臺站基本參數(shù)、歷史沿革等信息。為保障實時業(yè)務(wù)運行效率,原始庫僅存儲資料業(yè)務(wù)需求時間域內(nèi)的觀測資料及系統(tǒng)運行產(chǎn)生的中間過程信息,而應(yīng)用庫中的數(shù)據(jù)長期在線保存。因此,為保證數(shù)據(jù)服務(wù)的持續(xù)性,將MDOS應(yīng)用庫作為數(shù)據(jù)訪問接口設(shè)計的底層數(shù)據(jù)源。
地面氣象資料數(shù)據(jù)訪問接口設(shè)計的目的是為用戶提供高時效、高質(zhì)量數(shù)據(jù)服務(wù)的同時降低底層數(shù)據(jù)結(jié)構(gòu)變化對用戶應(yīng)用的影響。MDOS作為省級數(shù)據(jù)處理人員的核心工作平臺,為保證服務(wù)數(shù)據(jù)的質(zhì)量,接口基于MDOS實現(xiàn)是最優(yōu)選擇,但MDOS作為實時業(yè)務(wù)系統(tǒng),其運行效率至關(guān)重要。為避免數(shù)據(jù)服務(wù)對MDOS的系統(tǒng)性能產(chǎn)生影響,采用圖1所示體系結(jié)構(gòu),雖將MDOS應(yīng)用庫當作基礎(chǔ)數(shù)據(jù)源,但又不讓其直接參與數(shù)據(jù)服務(wù)。
圖1 數(shù)據(jù)訪問接口體系結(jié)構(gòu)
(1)物理層:保障系統(tǒng)運行的資源池,包含地面氣象觀測設(shè)備、通信網(wǎng)絡(luò)、應(yīng)用服務(wù)器和數(shù)據(jù)服務(wù)器等硬件設(shè)備。
(2)數(shù)據(jù)層:分兩層實現(xiàn),底層為MDOS應(yīng)用庫,上層為共享數(shù)據(jù)庫,共享數(shù)據(jù)庫基于MDOS應(yīng)用庫建立,將數(shù)據(jù)服務(wù)與MDOS業(yè)務(wù)系統(tǒng)隔離,避免對實時業(yè)務(wù)造成影響。
(3)接口層:數(shù)據(jù)訪問接口的集合,包括觀測數(shù)據(jù)接口和數(shù)據(jù)變更信息接口兩大類,基于共享數(shù)據(jù)庫建立。
(4)應(yīng)用層:數(shù)據(jù)訪問接口的應(yīng)用模式集合,用戶可通過數(shù)據(jù)庫管理系統(tǒng)客戶端、應(yīng)用程序及共享門戶網(wǎng)站等使用接口。
(5)訪問控制層:數(shù)據(jù)安全策略集合,基于用戶角色實現(xiàn)數(shù)據(jù)訪問權(quán)限控制,并建立審計信息對用戶訪問記錄進行監(jiān)控。
4.1 利用數(shù)據(jù)復制技術(shù)建立共享數(shù)據(jù)庫
SQL Server數(shù)據(jù)復制技術(shù)[3]可在數(shù)據(jù)庫間對數(shù)據(jù)表、存儲過程等數(shù)據(jù)庫對象進行復制并保證其一致性,采用發(fā)布-分發(fā)-訂閱模式實現(xiàn)。為降低數(shù)據(jù)共享服務(wù)對MDOS實時業(yè)務(wù)運行效率的影響,保證系統(tǒng)運行的穩(wěn)定性,利用數(shù)據(jù)復制技術(shù)建立專門的共享數(shù)據(jù)庫,將數(shù)據(jù)服務(wù)與實時業(yè)務(wù)隔離,同時為業(yè)務(wù)服務(wù)器配置備份服務(wù)器,防止系統(tǒng)故障時產(chǎn)生數(shù)據(jù)丟失影響業(yè)務(wù)運行。實現(xiàn)過程及其物理布局如圖2所示,業(yè)務(wù)服務(wù)器即為部署MDOS系統(tǒng)的服務(wù)器,備份服務(wù)器主要用于MDOS數(shù)據(jù)庫備份,共享數(shù)據(jù)庫部署在共享服務(wù)器,是數(shù)據(jù)服務(wù)的直接數(shù)據(jù)源,數(shù)據(jù)訪問接口建立在共享數(shù)據(jù)庫之上。
圖2 共享數(shù)據(jù)庫建立過程及物理布局
在數(shù)據(jù)同步流程中,MDOS應(yīng)用庫作為要復制的數(shù)據(jù)源而充當發(fā)布數(shù)據(jù)庫,共享數(shù)據(jù)庫因需要從MDOS應(yīng)用庫接收數(shù)據(jù)即為訂閱服務(wù)庫。為節(jié)省資源,未設(shè)置獨立的分發(fā)數(shù)據(jù)庫,而是讓MDOS應(yīng)用庫作為發(fā)布數(shù)據(jù)庫的同時擔任分發(fā)數(shù)據(jù)庫的角色。同步過程主要分為2個步驟:(1)創(chuàng)建數(shù)據(jù)快照,快照代理進程建立包含MDOS應(yīng)用庫架構(gòu)、數(shù)據(jù)庫對象和數(shù)據(jù)的快照文件,存儲于業(yè)務(wù)服務(wù)器;(2)使用數(shù)據(jù)快照:分發(fā)代理進程將數(shù)據(jù)快照文件從業(yè)務(wù)服務(wù)器移動到共享服務(wù)器,并應(yīng)用復制所需的腳本、架構(gòu)和數(shù)據(jù)。同步流程建立后,MDOS應(yīng)用庫數(shù)據(jù)發(fā)生變更時共享數(shù)據(jù)庫會同步更新。
4.2 利用存儲過程實現(xiàn)數(shù)據(jù)訪問接口
數(shù)據(jù)訪問接口使用存儲過程[4-5]實現(xiàn),存儲過程具有執(zhí)行效率高、可重用、可維護、高安全等優(yōu)點,且可通過調(diào)用系統(tǒng)存儲過程對可用戶數(shù)據(jù)訪問行為進行記載。
(1)接口定義:由接口名稱、參數(shù)列表、接口主體、返回值等部分構(gòu)成,如圖3所示。接口名稱以pro開頭,由可表述接口功能的英文單詞或其縮寫組成;接口參數(shù)間以逗號分隔,參數(shù)個數(shù)可根據(jù)需求動態(tài)確定;接口主體實現(xiàn)用戶數(shù)據(jù)訪問權(quán)限判識、請求數(shù)據(jù)獲取和訪問行為登記等功能;接口返回值為TABLE定義的數(shù)據(jù)集。
圖3 數(shù)據(jù)訪問接口框架定義
(2)接口實現(xiàn):根據(jù)業(yè)務(wù)需求共設(shè)計實現(xiàn)了23個接口,各接口的參數(shù)列表設(shè)置基本一致,由站點信息、開始時間、結(jié)束時間及要素信息等組成。站點信息和要素信息均提供完整的碼表供用戶使用,用戶可結(jié)合具體需求及權(quán)限從碼表中找到參數(shù)的可賦值范圍,獲取對應(yīng)數(shù)據(jù)。
4.3 基于角色和審計的數(shù)據(jù)訪問控制
訪問控制[6]是保證數(shù)據(jù)安全的基本手段,基于角色的訪問控制模型通過角色的概念來簡化授權(quán)和訪問控制過程并提升訪問控制的靈活性,能適應(yīng)業(yè)務(wù)策略和人員的變化。根據(jù)用戶的申請,對用戶資格認證后,設(shè)定用戶的訪問級別,并為其分配諸如“用戶名-密碼”等的身份驗證信息。有訪問需求時,用戶提供身份驗證信息,通過驗證后即可訪問其權(quán)限范圍內(nèi)的數(shù)據(jù)資源。
根據(jù)氣象資料管理辦法規(guī)定,部門內(nèi)用戶按部門取得數(shù)據(jù)的基本訪問權(quán)限,即部門對所轄范圍內(nèi)氣象臺站的觀測數(shù)據(jù)自帶訪問權(quán),故基于角色的數(shù)據(jù)訪問權(quán)限控制的實現(xiàn)用部門界定用戶角色,分為省級和地市兩大類。先設(shè)置用戶角色表,根據(jù)用戶的數(shù)據(jù)訪問申請對其進行動態(tài)維護,再關(guān)聯(lián)臺站信息表確定用戶對臺站的數(shù)據(jù)訪問權(quán)限。同時為避免異常數(shù)據(jù)訪問行為對數(shù)據(jù)服務(wù)造成沖擊,設(shè)置用戶訪問審計表,記錄用戶名、訪問時間、IP地址、訪問數(shù)據(jù)等信息,實現(xiàn)數(shù)據(jù)服務(wù)的實時監(jiān)控。
4.4 數(shù)據(jù)訪問接口的應(yīng)用模型
申請數(shù)據(jù)訪問權(quán)限后,用戶可根據(jù)實際情況通過多種方式調(diào)用數(shù)據(jù)訪問接口,常用的有:
(1)通過數(shù)據(jù)庫軟件調(diào)用:該方式可快速獲取數(shù)據(jù),但需要用戶安裝數(shù)據(jù)庫客戶端訪問工具,手動進行數(shù)據(jù)轉(zhuǎn)儲,適用于臨時或短期數(shù)據(jù)訪問。
(2)通過程序調(diào)用:利用Fortran/C/JAVA/C++等高級程序設(shè)計語言進行二次開發(fā),用戶可根據(jù)具體需求對獲取數(shù)據(jù)的時間、頻次、輸出格式等進行靈活設(shè)定,適用于流程化或長期的數(shù)據(jù)訪問。
本文基于MDOS應(yīng)用庫設(shè)計了一套地面氣象資料數(shù)據(jù)訪問接口,借助該接口可屏蔽底層數(shù)據(jù)結(jié)構(gòu)變化對用戶應(yīng)用的影響,降低數(shù)據(jù)環(huán)境和外部業(yè)務(wù)應(yīng)用之間的耦合度,保證了數(shù)據(jù)使用的規(guī)范性、穩(wěn)定性和安全性。后期須根據(jù)MDOS業(yè)務(wù)的擴充不斷完善和豐富接口種類,保證數(shù)據(jù)服務(wù)的持續(xù)性發(fā)展。在接口應(yīng)用方面,可借助業(yè)務(wù)內(nèi)網(wǎng)提供數(shù)據(jù)下載服務(wù)。
[1] 中國氣象局.地面氣象觀測規(guī)范[M].北京:氣象出版社,2003.
[2] 徐照興.SQL Server數(shù)據(jù)庫中DML觸發(fā)器的教學探討[J]. 微型機與應(yīng)用, 2014,33(23):29-31.
[3] 閆波,韓秀卓.數(shù)據(jù)復制技術(shù)在災(zāi)備系統(tǒng)中的研究與應(yīng)用[J].計算機技術(shù)與發(fā)展,2007,19(9):123-132.
[4] 孫娜,曹君.存儲過程的數(shù)據(jù)庫安全性應(yīng)用研究[J].計算機與數(shù)字工程, 2009, 37(3):154-156.
[5] 丁革媛,宋揚,袁中臣,等.利用SQL Server存儲過程提高在線考試系統(tǒng)的性能[J].微型機與應(yīng)用,2011,30(22):7-9.
[6] 鄧莉,王伯民,李慶祥,等.數(shù)據(jù)訪問控制在氣象信息服務(wù)平臺中的應(yīng)用[J].計算機工程, 2011(s1):139-141.
Design and implementation of data access interfaces for surface meteorological data
Yan Qiaoqiao, Liu Ying, Liu Wen, Yan Jing
(Hubei Meteorological Information and Technology Support Center, Wuhan 430074, China)
According to the user requirements of high quality, high efficiency of meteorological data services, data access interfaces for surface meteorological data are designed and implemented based on Meteorological Data Operational System (MDOS) by analyzing the present situation of meteorological data service. The interfaces can improve the efficiency of data services and shield the influence of the change of the underlying data structure to the user application, and ensure the standardization, stability and security of data services.
data access interfaces; surface meteorological data; data synchronization; MDOS
TP391
A
10.19358/j.issn.1674- 7720.2017.14.007
閆蕎蕎,劉瑩,劉雯,等.地面氣象資料數(shù)據(jù)訪問接口設(shè)計與實現(xiàn)[J].微型機與應(yīng)用,2017,36(14):20-22.
2016-12-26)
閆蕎蕎(1986-),女,碩士,工程師,主要研究方向:氣象資料加工處理。
劉瑩(1982-),女,碩士,高級工程師,主要研究方向:氣象資料加工處理。
劉雯(1986-),女,碩士,工程師,主要研究方向:氣象資料加工處理。