劉思晗,唐晨海,張龍慶,陳哲
(國家海洋環境預報中心,北京100081)
海洋站觀測資料監控可視化及系統設計研究
劉思晗,唐晨海,張龍慶,陳哲
(國家海洋環境預報中心,北京100081)
面向海洋站各類報文的監控統計,解除前臺可視化與數據提取的緊耦合關系,提供統一部署、統一維護的解決方案。系統基于asp.net MVC框架搭建,建立報文監控數據庫,將監控的各類報文接收狀態及統計信息入庫,解決單一種類報文統計效率較低的問題。通過asp.net MVC技術實現前臺頁面的搭建,實現業務邏輯、數據實體以及視圖的分離。通過面向接口的編程方式提高系統的靈活性,降低各層之間的依賴程度。使用EntityFramework實現領域模型的設計方式。通過spring.net技術實現面向切面編程,在實現MVC架構的前提下簡化開發。
海洋觀測;海洋數據;MVC;領域模型
近年來,我國風暴潮、海浪、海冰、海霧、臺風、地震海嘯及赤潮、綠潮、海水入侵等突發性的海洋災害及海上溢油等海洋環境污染事件頻發,給沿海地區造成了嚴重的生命財產損失。這凸顯了海洋環境監測和預報的重要性,也對其提出了更高的要求。我國各級政府對海洋防災減災給予了極大的重視,并投入了大量的人力和物力開展海洋觀測網和預報系統等方面的建設[1]。
海洋觀測站是我國海洋觀測網的主要組成部分,負責開展海洋氣象、潮汐、海浪、表層水溫、鹽度、海流、海冰等要素的常規觀測[2]。現有的報文收集方式為海洋站通過水文、氣象觀測設備的自動化錄入或人工觀測后,形成各類格式的編碼報文,再由通信機通過VSAT鏈路及地面專線將報文上傳至上級節點。由于報文種類繁多,同時各級節點肩負著數據接收轉發的任務,所以報文的存儲主要以文件的方式保存[3]。
舊有系統的統計模式是基于文件統計,對于批量數據統計較為困難,無法根據指定時間、要素類型批量統計[4]。且系統對于長時間序列的統計存在數據統計困難、效率較差等問題。同時,現有的報文監控平臺主要是C/S架構,在不同的監控終端需要重新安裝部署,也會造成軟件版本可控性差等問題[5]。此外,通過遠程映射的方式存在著多臺終端同時訪問增大原始報文存儲服務器的系統開銷的問題。
為了解決上述問題,更好的實現對各類海洋觀測資源的監控,增加對長時間序列觀測資料的有效統計,本系統在用戶和功能分析的基礎上,開展模塊分析和設計,通過web服務技術,實現數據源與統計分離[6],解除前臺可視化與數據提取的緊耦合關系,建立報文監控數據庫,實現報文統計的持久化需要,解決之前多種統計報文查詢效率低下的問題[7-9]。通過采用若干編程技術,提高了系統效率和靈活性,改善了人機交互體驗[10]。
本系統以監控展示為主要功能,實現海洋站觀測報文的監控展示、數據監控報警、以及數據采集分析與監控數據管理。
本系統對分類存儲后的報文文件進行解碼、質控入庫,并對解碼后的各類觀測數據進行分析、顯示;獲取系統服務器、數據庫以及網絡環境的運行狀態進行狀態監視;提供數據分析統計功能,能夠根據需求進行各類統計報表的生成,并展示監控統計結果。
針對上面的功能分析,現將本系統的功能分類如下:
(1)報文文件接收狀態入庫統計:實現對已分類存儲的報文文件狀態標記入庫;
(2)報文文件解碼質控入庫:實現原始報文文件按照對應的解碼算法進行數據解碼,對解碼后的數據進行質量控制,將質量控制后的觀測信息存入數據庫中;
(3)報文文件傳輸統計:實現對報文文件傳輸信息的管理,對報文文件傳輸統計項的定義和報文文件傳輸統計報表的生成功能以及統計報表的導出功能;
(4)站點狀態監視:實現對站點狀態的監控功能;
(5)實時報警:實現對報文文件傳輸、站點狀態、設備狀態的報警;
(6)歷史監控狀態查詢:實現按照起止時間對歷史報文接收情況的統計分析功能,查詢結果可以提供趨勢圖展示分析;
(7)系統配置管理:實現對系統的一些配置進行管理,提供例如添加、刪除、修改、查詢等功能服務。
3.1 B/S架構
為了滿足監控統計系統在局域網各電腦均可部署應用的實際需求,由于B/S部署、維護、功能擴展的統一性及便利性,系統采用B/S架構設計。
3.2 前端展示
采用jquery+easyUi編寫前端顯示,基于ajax技術實現瀏覽器與服務器之間異步請求功能,減少用戶等待時間,減輕服務器的負擔,提供良好的用戶體驗。
3.3 通過單例模式控制緩存對象
本系統在服務端定期從數據庫中查詢各海洋站點的監控狀態信息,并存儲至緩存,通過單例模式創建線程內唯一保存有站點狀態的緩存,可實現不同用戶在一定時間內訪問服務端獲取的查詢結果唯一,且可實現瀏覽器短時間內多次訪問查詢站點狀態時從緩存中讀取站點狀態信息,降低與數據庫的連接,從而降低系統開銷。
3.4 采用面向接口編程的編程思路
系統底層架構采用3層架構,在表現層(M+C)中,需要調用實現了業務邏輯接口層的業務邏輯層對象,通過spring.net實現通過配置創建具體的業務邏輯對象,降低了表現層與業務邏輯層的耦合程度。表現層通過調用業務邏輯接口層中對應的方法實現與數據庫的交互,查詢監控的相關內容。
3.5 領域模型
使用EntityFramework實現領域驅動設計(領域模型)。本系統中將各類監控報文在數據庫創建對應的數據表,并由EF創建為具體的對像模型。并由該對像模型通過與數據庫的交互,實現CRUD操作。
3.6 MVC框架設計
系統前臺web網站采用.net MVC框架設計。MVC(Model-View-Controller)模型-視圖-控制器,在分離應用程序內部關注點方面,MVC是一種強大而簡潔的方式。
4.1 框架設計
海洋站觀測資料監控可視化系統基于.net MVC技術開發,系統的總體框架為數據實體模型(基礎設施層)、系統模型層(核心業務層)、監控站點業務視圖(站點應用層以及可視化層)。系統總體架構圖如圖1所示。

圖1 監控統計系統總體架構圖
數據實體模型:基礎設施層。實現了對接收到的報文文件解析、質控并入庫的過程,以及監控統計系統中對數據庫進行的各類CRUD操作。提供通用輔助操作功能,擴展方法,異常處理,日志記錄等功能。并使用EntityFramework作為對象關系映射模型(ORM),提供對象操作,倉儲操作。
系統模型層:提供與數據實體以及業務邏輯密切相關的業務功能。用于定義系統核心業務實現的數據模型的定義(與數據庫表有映射關系);提供與業務相關的數據訪問功能的實體映射、實體類型的配置,數據遷移,倉庫操作(DBSession)的定義與實現。提交與web無關的業務邏輯的實現。
監控站點業務視圖:站點應用層及可視化層。網站業務視圖模型用于定義網站業務實現的視圖模型。通過控制器(Controller)實現網站的相關操作,把從網站接收的業務視圖實體轉換為核心業務模型,傳給核心層進行業務處理;處理與http密切相關的數據(session、cookie等),處理成與http狀態無關后再交由核心層進行處理。通過視圖(View)實現Web展現。頁面展示使用easyui+jquery,實現了較好的頁面展示效果。
網站業務通過過濾器(Filter)實現對業務執行權限進行檢查,加強系統的安全性。
4.2 流程實現
本系統主要流程包括:數據分析入庫,數據庫查詢提取,系統管理以及結果可視化。
本系統的主要業務流程如圖2所示:海洋站通信機將報文文件以文件流的方式上傳至文件服務器。在文件服務器端部署有分發存儲子模塊,通過將接收到的已分類存儲的文件型報文解析,獲取標準化質控后的水文、氣象要素,并判斷其是否正常,生成各類狀態信息;同時監控服務器定時檢測與海洋站通信機的連接狀態,并監控文件服務器接收報文的情況,最終將報文及海洋站設備監控信息寫入數據庫。
統計統計模塊處理,形成海洋站觀測資料統計產品。
前臺展示服務器部署本系統網站服務端,架設IIS,memcache分布式緩存等服務端程序。最終通過展示系統進行實時發布,向值班員提供各類實時數據的顯示,并實現實時數據歷史到報的趨勢瀏覽及曲線繪制,異常警告記錄等功能。系統效果圖見圖3。

圖2 監控系統業務流程圖

圖3 監控系統主界面
本文研究的面相海洋站觀測資料的監控系統解決了之前基于文件系統的監控平臺統計長時間序列報文較為困難,且對于多種要素統計效率低下的問題。實現了對報文文件質控入庫,增加了對歷史資料的統計查詢以及對站點、網絡及硬件狀態的監控功能。監控對象覆蓋面較之前有了較大提升,可以全面深入的為預報及值班人員展現歷史及實時的各類監控資料。
本系統在運行期間較為穩定,能夠在汛期期間較好的完成監控統計的功能。顯示界面友好,可針對不同的用戶群體實現多種效果的展示。為值班員、預報員與各級管理人員提供了直觀有效的展示平臺。
該系統已部署并業務化運行一年以上,運行穩定可靠,用戶反映良好。具有很大的推廣價值和應用場景。
[1]靳熙芳,王碩.海洋環境數據智能化監控的現狀與關鍵技術[J].海洋預報,2009,26(2):95-102.
[2]方長芳,張翔,尹建平.21世紀初海洋預報系統發展現狀和趨勢[J].海洋預報,2013,30(4):93-102.
[3]李曉婷,鄭沛楠,王建豐,等.常用海洋數據資料簡介[J].海洋預報,2010,27(5):81-89.
[4]袁雪梅,蔣永國,郭忠文.海洋數據信息共享平臺關鍵技術研究與實現[J].中國海洋大學學報,2010,40(12):147-153.
[5]張明輝.基于JDBC技術的數據庫連接和訪問的研究[J].電腦與電信,2008,(6):49-51.
[6]朱樹強.海量異構海洋數據集成系統的設計與實現[D].青島:中國海洋大學,2014.
[7]魏紅宇,張峰,李四海.海洋數據挖掘技術應用[J].海洋通報, 2008,27(6):82-87.
[8]Italy GODAE OceanView Science Team.GODAE OceanView National Reports 2011:Italy MFS[R].Paris:The 3rd Meeting of the GODAE OceanView Science Team,2011.
[9]NOAA Integrated Ocean Observing System(IOOS)program[R]. The United States National Oceanic and Atmospheric Administration.2007.
[10]孟娟,郭忠文,沈飛飛,等.海洋數據平臺數據可視化查詢系統設計方案[J].中國科技信息,2013,(2):80-81.
Monitor display and system design of observation data at ocean stations
LIU Si-han,TANG Chen-hai,ZHANG Long-qing,CHEN Zhe
(National Marine Environmental Forecasting Center,Beijing 100081 China)
This system implements the monitoring and statistics for received data from each ocean station.It provides an unified deployment and unified maintaining solution by removing the tight coupling relationship between the front page and data extraction.This system builds a packet monitoring database which can be used to record the relevant information of monitored packets base on asp.net mvc framework to improve the efficiency of single variety packet statistics.One core technology of this system is the separation of controller,model and view through building the front page by asp.net mvc.The second core technology is to improve the system flexibility and reduce dependent degree of each level through programming to an interface.The third one is the usage of EntityFramework model and design methods.The last one is simplify development through implementation aspect oriented programming under the premise of implementation the MVC architecture by spring.net.
ocean observation;ocean data;MVC;domain model
P717;TP311.521
A
1003-0239(2017)01-0077-05
10.11737/j.issn.1003-0239.2017.01.010
2016-04-26;
2016-06-21。
國家海洋局海洋公益性行業科研專項(201105017)。
劉思晗(1987-),男,工程師,學士,主要從事全國海洋實時數據通訊及.net相關項目開發工作。E-mail:evaseemefly@126.com