999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

氣象自動觀測集成平臺設計

2018-08-13 11:25:48朱東紅吳東麗闕艷紅劉立業劉興良張會可郭淵杰
軟件 2018年7期
關鍵詞:用戶系統

朱東紅,吳東麗,郭 劍,闕艷紅,劉立業,劉興良,張會可,郭淵杰

?

氣象自動觀測集成平臺設計

朱東紅1,吳東麗2,郭 劍1,闕艷紅1,劉立業1,劉興良1,張會可1,郭淵杰1

(1. 中國電子科技集團公司第27研究所,河南 鄭州 450000;2. 中國氣象局氣象探測中心,北京 100081)

由于不同氣象設備數據通信協議多樣化,且氣象業務觀測要素越來越多樣化、定制化,導致每新增一種新的業務觀測,相配套的軟件從通信、應用、存儲等都需要重新設計開發,這導致了很多重復開發,造成了資源的浪費。氣象自動觀測集成平臺致力于解決不同氣象儀器廠商、不同設備間的通信協議解析、適配問題;統一設計RESTful API數據接口,為平臺上層定制化的業務應用提供有力支撐;在軟件邏輯層面實現觀測業務可定制。平臺軟件擬采用敏捷開發方法,平臺在構建初期被合理切分為多個子模塊,各個子模塊都經過測試,具備可視、可集成和可獨立運行使用的特征。經測試試用,本平臺能夠兼容、接入多種氣象觀測設備,真正實現了專業氣象領域業務軟件的集約化,大大提高了開發和交付效率。

氣象;適配;定制;集成

0 引言

隨著科技的日新月異,許多新型儀器設備進入氣象領域,越來越多的氣象業務實現了自動化觀測。然而,這些新增的觀測系統均獨立運行,通常是每新建設一種業務,就增加一套中心站軟件和應用軟件,造成了現有氣象信息中心服務器使用效率低、觀測數據重復、混亂、集約化程度低等問題,維護這些軟件及數據需要耗費大量的人力資源。并且原有業務軟件系統擴展性差,設備通信協議多種多樣,數據質量系統控制不夠完善,存儲系統雖然積累了大量氣象歷史數據,但各為系統,數據價值挖掘能力不足[1]。隨著業務系統不斷增多,值班人員工作量也將不斷增加。因此迫切需要針對現有的氣象觀測系統進行集成與管理。

針對上述問題及不斷發展的氣象觀測業務需求,平臺將致力于實現觀測業務運行集約化[2],開發涵蓋觀測數據采集、質量控制、數據傳輸、觀測產品制作和運行狀態監控、設備故障遠程診斷等各類業務及管理信息的綜合氣象觀測業務一體化平臺,實現實時監控、考核評估綜合氣象觀測業務運行狀況、實時數據質量控制、設備故障遠程診斷或人工指導下的故障診斷維修、觀測產品快速制作等功能,全面提高業務觀測管控水平。

本文從平臺技術架構、技術選型、關鍵數據與存儲結構、平臺數據處理流程、基于本平臺的應用示例等方面進行詳細闡述。

1 平臺技術架構

1.1 總體架構

圖1為氣象自動觀測集成平臺(以下簡稱平臺)總體架構圖,平臺為基于B/S結構的上層應用提供定制化的數據服務接口,其主要由數據收集與協議適配、消息中間件、中心站、后臺管理、數據訪問接口、緩存和數據存儲等模塊組成。數據收集與協議適配模塊負責接收解析遠程設備上傳的觀測數據,消息生產、命令調試和鏈路管理。數據接收與解析:為不同的協議(設備)開發其專屬的解析動態庫(DLL),以插件的形式進行統一管理,對新設備的接入只需提供協議動態庫或者按照指定格式生成數據文件即可。消息生產:對消息中間件來說該模塊為消息生產者(Message Producer),對解析后的觀測數據,按照平臺內部的統一的數據交換格式,生產一條消息推送到消息中間件的消息隊列(Message Queue)以供中心站消費[3]。命令調試:為前端(上層應用)發出的設備調試命令提供雙向透明通道。鏈路管理:該模塊設計為能夠接入5000個設備,對每個設備的上線、離線等行為進行實時監視,為每個設備提供一條高效的通信鏈路。消息中間件模塊是數據收集與協議適配模塊和中心站模塊間的通信手段,其內部以先進先出(FIFO)的隊列數據結構作為通信載體,同時它提供多種消息模式以供選擇,并能夠通過簡單配置使消息數據定時持久化到磁盤。中心站模塊主要負責消息消費、質量控制、產品生成和推送。消息消費:對消息中間件來說中心站為消息消費者(Message Consumer),它從消息隊列取出隊頭數據,按照平臺數據規則進行消息數據解析。質量控制:對解析后的數據實施中心站級別的質量控制、輸出入庫。產品生成與推送:按照規定(國家/省級氣象局),定時從數據庫讀取觀測數據,以預定格式生成各種報文文件,通過FTP協議推送到指定服務器。后臺管理模塊負責平臺配置,例如觀測要素指標、用戶權限等。數據訪問接口提供基于用戶名和密碼的登陸認證、權限管理和Restful API數據接口,用戶登陸成功后返回給前端令牌(AccsessToken)以供后期數據請求使用。在數據訪問接口和數據存儲層增加緩存是為了提高接口并發訪問速度,減少磁盤I/O,降低數據庫負載,當用戶發起接口請求時,服務端會首先查詢緩存,如果有所需數據,直接從緩存返回,反之,再查詢數據庫。

圖1 氣象自動觀測集成平臺總體架構

1.2 技術選型

平臺需要實現的主要功能:并行高效應對數以千計的遠程設備突發式數據傳輸問題,為新設備接入提供插件式支持;為上層應用提供Restful API風格的HTTP接口;并提供接口級別的安全訪問控制功能;平臺內部進程間可靠、高效的通信技術。為實現上述功能,平臺主要使用如下技術。

平臺與上層應用、平臺內部數據收集與中心站數據交換均采用JSON格式。JSON(JavaScript Object Notation)是一種獨立于編程語言的數據傳輸格式[4],它與XML相比具有輕量化、簡潔、層次結構清晰、解析傳輸更加高效等優點。數據收集與協議適配模塊需要較強的處理效率,使用具有面向對象、靈活、執行處理效率高等特點的C++語言來開發。

為實現HTTP接口,平臺數據訪問接口(Web后端)采用Java語言開發、SSH(Spring、SpringMVC、Hibernate)框架。Spring充當容器管理角色,它融合了IoC(Inversion of Control,控制反轉)、DI(Dependency Injection,依賴注入)等重要的編程思想。對于Spring來說,所謂IoC就是由Spring來負責控制對象的生命周期和對象間的關系,所謂DI就是由Spring在程序運行時動態的將某個依賴關系注入到組件中。IoC和DI并非為程序增加了更多功能,而是為了提升組件的可重用性,并為系統搭建一個靈活、可擴展的結構平臺[5]。Hibernate用來做數據持久層,它對JDBC做了良好封裝、對系統沒有侵入性(所謂的輕量級)、提供了一級緩存和二級緩存、擯棄了以數據庫為中心的思想,使得在后端接口開發中能做到完全面向對象[6]。SpringMVC(MVC即Model、View、Controller)是整個平臺后端業務邏輯的核心,其有諸如強大的約定大于配置的契約式編程、與Spring框架集成方便、分層設計、模塊解耦等優點。處理流程為:前端控制器DispatchServlet接收HTTP請求,調用處理器映射器HandlerMapping查找相應的處理器,處理器映射器根據URL查找處理器Handler,并給前端控制器返回生成的處理器和處理器攔截器HandlerIntercepter,前端控制器調用處理器適配器HandlerAdapter,處理器適配器調用相應的處理器,處理器將出路結果以ModelAndView形式返回給處理器適配器,處理器適配器將ModelAndView返回給前端控制器,前端控制器將ModelAndView傳給視圖解析器ViewResolver,視圖解析器將解析后的View返回給前端控制器,經渲染后將模型數據填充到HTTP請求域中返回,至此,一次HTTP請求處理過程結束[7-8]。如下圖2所示:

圖2 SpringMVC執行流程

平臺數據接口安全性包括用戶認證(Authen-tication)和用戶授權(Authorization)。用戶認證是指驗證某個用戶是否為平臺系統中的合法主體,即用戶能否訪問系統;用戶授權是指驗證某個用戶是否有權限執行某個操作。本平臺用戶授權粒度為角色、權限、資源三級,即用戶屬于角色(多對一),角色擁有權限(一對多),權限擁有資源(一對多)。對于以上應用場景,Spring Security框架都有很好的支持,它支持多種主流認證方式,并提供定制化、細粒度的授權控制。其執行流程為:當Web服務器啟動時,加載Spring Security過濾器MySecur?ityFilter,同時為其注入MyInvocationMetadata SourceSe?rvice和MyAccessDecisionManager類,前者在執行時會提取數據庫中預存的用戶權限形成列表,并循環該列表,根據權限獲取對應的資源列表,將資源(URL)作為key,權限列表作為value,形成Map數據結構,當用戶登陸時調用loadUserByUsername方法,認證成功后根據用戶名從數據庫提取該用戶擁有的權限列表(UserDetails)。當用戶請求某個資源(URL)時,觸發MyAccessDecisonManager類,執行其decide方法攔截資源訪問請求,將資源和Map中的key對比,若相同,就提取出對應的value(list),即若要請求這個資源(URL),必須具有跟這個資源相對應的權限值列表(Authorizations),以此Auth?orizations進行循環和UserDetails中的權限進行對比,若有一個(也可多個)相同,即授權通過,返回資源數據,否則終止請求向下傳遞,向用戶返回信息提示未經授權的訪問。如下圖3所示:

圖3 Spring Security執行流程

所謂平臺內部間的進程通信意即數據收集與協議適配端和中心站端的數據交換,為實現此目標,平臺選用Apache下的開源消息總線ActiveMQ。它支持多種語言編寫客戶端,可以很方便的和Spring框架融合,支持諸如in-VM, TCP, SSL, NIO, UDP, JGroups, JXTA多種消息傳輸協議,支持通過JDBC和journal提供高速的消息持久化,可以采用集群部署,避免單點故障,并且用戶社區極為活躍[9]。

使用緩存提高了平臺數據訪問速度,緩存也即內存,平臺使用Redis內存數據庫作為緩存層。Redis的性能極高,其存取復雜度都是O(1),支持豐富的數據類型如String、List、Hash等,所有操作都具有原子性,如果需要,Redis也可以持久化緩存數據[10-12]。

2 數據處理流程

圖4為平臺0層數據流圖,該圖主要包含三個方向的數據流,即數據收集存儲、產品生成和終端用戶數據/命令請求。

圖4 平臺b層數據流

數據收集存儲:通過主動/被動方式獲取傳感數據,解析后封裝成平臺規定的統一消息格式(JSON格式,如{‘key1’:’value1’, …, ’keyn’: ’valuen’}),然后將數據推送(即入隊)至消息中間件ActiveMQ,ActiveMQ使用消息存儲器kahaDB對消息進行持久化,直到該消息被消費掉(即出隊)。中心站從消息中間件讀取消息,解析數據,對數據施加平臺級質量控制后入庫存儲。另外,數據收集一般要比中心站入庫速度要快(因為中心站入庫涉及磁盤I/O),這容易導致消息消費速度遠遠低于生產速度,加之某些業務系統可能對數據的實時性要求較高,因此,可以運行多個中心站以加快消息被消費處理的速度。

產品生成:中心站根據具體業務需求按時從數據庫讀取觀測數據,按照指定格式生成數據產品(一般指報文)推送至第三方數據中心。

終端用戶數據/命令:1)數據,終端客戶(瀏覽器/桌面應用)向API服務端發送HTTP登陸認證請求,認證成功后服務端按照一定的算法生成AccessToken令牌給終端用戶,終端用戶將攜帶AccessToken(放在HTTP請求頭)進行數據請求,服務端收到請求,取出AccessToken,依據數據庫中的配置,判斷該終端用戶是否有本次數據請求的權限,驗證通過后,服務端先從緩存查找是否有本次請求的數據,如果有,則直接從緩存返回數據,否則,重新去數據庫查詢后將結果返回給終端用戶,同時以本次查詢結果更新緩存,其HTTP請求序列見下圖5。2)命令,命令請求登陸認證與授權同數據請求一樣,區別在于請求到達服務端后命令被轉發至數據收集端,數據收集端根據命令參數再轉發至相應的遠程設備,命令返回后將沿著同樣的通道返回至終端用戶。

圖5 數據請求序列圖

3 關鍵存儲結構

平臺設計的核心思想是盡量避免業務軟件尤其是數據收集、中心站(處理、入庫)軟件的重復開發,提高軟件的可重用性,能夠為上層多種觀測業務提供支撐,并為新的氣象觀測業務提供靈活的接入方式。為實現上述功能,在數據庫中設計以下關鍵表結構。

(1)觀測業務分類表

表1 觀測業務分類示例

Tab.1 Examples of observed business classifications

(2)用戶信息表

表2 用戶信息示例

Tab.2 Sample User Information

(3)觀測要素字典表

表3 觀測要素字典示例

Tab.3 Examples of observational elements dictionaries

(4)觀測業務與觀測要素映射表

表4 觀測業務與觀測要素映射示例

Tab.4 Examples of observation services and observation elements mapping

平臺內部可以定義多種氣象觀測業務,并為每種業務進行編碼和命名(表1);平臺針對業務類型進行用戶系統隔離(表2),在用戶信息表中增加業務編碼字段與用戶id字段組成該表的聯合主鍵,不同的業務系統可以擁有相同的用戶id;按照氣象觀測要素建立觀測要素字典信息表(表3),該表內容盡可能全面涵蓋各種氣象觀測要素,并對該表定期按需維護以保證其完整性和一致性,表中要素編碼值即為要素在數據庫中存儲時的字段名,為平臺增加新的氣象觀測業務時,只需從該表中選取觀測要素進行組合寫入映射表中(表4),映射表中每條記錄表達了某種觀測業務下擁有的觀測要素信息(存儲時的字段名)和觀測要素的存儲位置信息(字段隸屬的表名),映射關系以JSON字符串形式存儲,數據收集端接收解析設備上傳的數據,按照觀測要素字典信息并附加業務編碼將數據重新封裝、傳輸到中心站端,中心站根據映射表解析數據并入庫。這樣做的好處在于為平臺增加新觀測業務時,只需要通過平臺管理系統進行業務配置,而不必重復開發中心站軟件;對數據收集端只需要知道觀測要素字典(以手冊形式提供)和觀測業務編號加載對應的DLL插件,重用原來的通信架構即可。

4 基于平臺的應用實例

本節通過一個應用實例(新鄭智慧園區數據監控系統)展示平臺如何通過后臺管理接入新的業務系統,并簡單介紹該系統的功能組成。

首先新建新鄭智慧園區數據監控系統,如下圖6,其次為業務系統映射觀測要素集合,即為第3節表4增加記錄。新鄭智慧園區數據監控系統主要包含9個氣象觀測要素數據:空氣溫度、空氣濕度、風速、風向、雨量、輻射、氣壓、土壤濕度、土壤溫度,如下圖7。配置完后,平臺即可收集、處理、存儲該業務系統的觀測數據,而不必重復開發平臺的數據收集與協議適配端和中心站端。

新鄭智慧園區數據監控系統主要包括基于GIS的臺站位置顯示、監控要素實時數據顯示、監控要素歷史數據查詢分析(曲線和表格)、設備故障報警、監控要素數據超限報警等,如下圖8。

5 平臺部署

圖9為平臺部署圖,平臺各個模塊均是基于Windows平臺,各個服務器既可運行在統一局域網內(LAN),也可部署在多個異構網絡環境,通過Internet互相連接通信。其中消息服務器、數據庫服務器、API接口服務器、前端服務器需要Java虛擬機支撐,安裝JDK1.8,中心站軟件采用C#開發,需要安裝.net framework 4.0,緩存服務器安裝Redis4.0.9。

6 結論

本文介紹了開發設計氣象自動觀測集成平臺的必要性和緊迫性,在介紹時側重說明平臺設計的核心思路、整體架構和各個模塊的技術選型,不拘泥于具體的代碼實現。平臺實現了多種業務系統的數據統一收集、質控、存儲,在新業務接入上真正實現了通過后臺簡單配置即可收集、存儲業務數據的功能,避免了功能模塊的重復開發,提高了軟件開發效率,基本達到了當初的設計要求,在實際應用中取得了不錯的效果。

圖6 平臺后臺管理系統

圖7 業務映射

圖8 新鄭智慧園區數據監控系統

下一步的工作,將對平臺進行優化,同時從硬件、軟件方面實現平臺訪問的高并發性、平臺數據的高可用性,為上層定制化的應用系統提供穩定、高效的數據與接口支撐。同時,也為以后打造氣象觀測領域專用云平臺做一次探索和技術積淀。

圖9 平臺部署

[1] 中國氣象局, 氣象信息化發展規劃(2018-2022年)[Z]. 2017.

[2] 中國氣象局, 綜合氣象業務發展規劃(2016-2020年)[Z]. 2017.

[3] 馮雪, 孫丙宇, 方薇, 吳斌. 基于物聯網的電梯安管系統通信模塊[J]. 計算機系統應用, 2017, 26(4): 210-211.

[4] Bassett, L. 魏嘉汛譯. JSON必知必會[M]. 北京: 人民郵電出版社, 2016.

[5] Walls, C. 張衛濱譯.Spring實戰(第4版)[M]. 北京: 人民郵電出版社, 2016.

[6] Bauer, C. &G.King. 楊春花, 彭永康, 俞黎敏譯. Hibernate實戰(第二版)[M]. 北京: 人民郵電出版社, 2008.

[7] Warin, G. 張衛濱, 孫麗文譯. 精通Spring MVC 4[M]. 北京: 人民郵電出版社, 2017.

[8] 韓凌波. 基于mvc架構的普法考試系統設計與實現[J]. 軟件, 2015, 36(3): 132-133.

[9] 錢崢, 胡亞旦, 黃旋旋. 基于“消息中間件”技術的氣象信息總線[J]. 氣象科技, 2016, 44(2): 217-218.

[10] 程晗, 汪學明, 等. 基于Redis的海量智慧醫療小文件存儲架構設計[J]. 計算機應用與軟件, 2018, 35(4):87.

[11] 李鵬鵬, 鄭揚飛, 劉玉龍. Redis在即時通訊系統中的應用[J]. 軟件, 2017, 38(1): 115-116.

[12] 伍紹佳, 杜林, 廖麗. 基于云平臺的數字化校園信息門戶系統實踐研究[J]. 軟件, 2017, 38(1): 31-32.

Design of Integrated Platform for Meteorological Automatic Observation

ZHU Dong-hong1, WU Dong-li2, GUO Jian1, QUE Yan-hong1, LIU Li-ye1, LIU Xing-liang1, ZHANG Hui-ke1, GUO Yuan-jie1

(1. CETC27, Zhengzhou 450000, China; 2. Meteorological observation center of China Meteorological Administration, Beijing 100081, China)

Due to the diversity of data communication protocols of different meteorological equipments, and the more and more diverse and customized meteorological service observation elements, each new kind of business observation is needed, and the corresponding software needs to be redesigned and developed from communication, business application and storage, which leads to many repetitive development, which causes the waste of resources. The specialized Meteorological automatic observation integrated platform is devoted to solve the communication protocol parsing and matching problems between different meteorological instruments manufacturers and different equipments, unify the design of RESTful API data interface, provide strong support for the customized business application above the platform, and make the observation service in the software logic level customizable. The platform software is to adopt Agile development method, the platform is divided into several sub modules in the early stage of construction, each sub module has been tested, and has the characteristics of visualization, integration and independent operation. After testing, the platform can be compatible, access to a variety of meteorological observation equipment, truly realize the professional meteorological business software intensification, greatly improve the development and delivery efficiency.

Meteorological; Matching; Customizable; Integration

TP311. 52

A

10.3969/j.issn.1003-6970.2018.07.039

朱東紅(1986-),男,工程師,主要研究方向:分布式計算;吳東麗(1977-),女,副研究員,主要研究方向:農業氣象觀測和農業氣象災害風險評估;郭劍(1986-),男,工程師,主要研究方向:地理信息系統;闕艷紅(1986-),女,工程師,主要研究方向:控制工程;劉立業(1992-),男,工程師,主要研究方向:自動化;劉興良(1995-),男,工程師,主要研究方向:軟件工程;張會可(1990-),女,工程師,主要研究方向:電子與通信工程;郭淵杰(1984-),男,工程師,主要研究方向:嵌入式系統。

本文著錄格式:朱東紅,吳東麗,郭劍,等. 氣象自動觀測集成平臺設計[J]. 軟件,2018,39(7):182-190

猜你喜歡
用戶系統
Smartflower POP 一體式光伏系統
工業設計(2022年8期)2022-09-09 07:43:20
WJ-700無人機系統
ZC系列無人機遙感系統
北京測繪(2020年12期)2020-12-29 01:33:58
基于PowerPC+FPGA顯示系統
半沸制皂系統(下)
連通與提升系統的最后一塊拼圖 Audiolab 傲立 M-DAC mini
關注用戶
商用汽車(2016年11期)2016-12-19 01:20:16
關注用戶
商用汽車(2016年6期)2016-06-29 09:18:54
關注用戶
商用汽車(2016年4期)2016-05-09 01:23:12
Camera360:拍出5億用戶
創業家(2015年10期)2015-02-27 07:55:08
主站蜘蛛池模板: 色偷偷男人的天堂亚洲av| 婷婷丁香色| 99视频在线观看免费| 日韩东京热无码人妻| 国产一区免费在线观看| 看你懂的巨臀中文字幕一区二区 | 欧美中文一区| 久久99精品久久久久纯品| 五月婷婷伊人网| 欧美日韩中文国产| 国产女人在线观看| 亚洲国产日韩在线成人蜜芽| 国产精品人人做人人爽人人添| 国产精品网曝门免费视频| 成人在线观看不卡| 国产精品精品视频| 成人久久精品一区二区三区| 狼友视频国产精品首页| 欧美一区福利| 无码一区二区三区视频在线播放| 人妻无码中文字幕第一区| 成人福利在线视频免费观看| 视频二区中文无码| 亚洲天堂视频网站| 久久国产精品国产自线拍| 色婷婷成人| 久久综合亚洲色一区二区三区| 成人伊人色一区二区三区| 四虎国产成人免费观看| 国产成人三级| 成人av专区精品无码国产| 91在线高清视频| 国产精品手机在线播放| 制服丝袜一区| 国产成人亚洲欧美激情| yy6080理论大片一级久久| 亚洲欧美日本国产综合在线| 情侣午夜国产在线一区无码| 呦女亚洲一区精品| 日韩第八页| 国产呦精品一区二区三区网站| 国产人碰人摸人爱免费视频| 中文字幕永久视频| 日韩二区三区无| 亚洲成网站| 91无码网站| 四虎永久在线精品国产免费 | 人人艹人人爽| 一级毛片在线免费视频| 欧美福利在线播放| 福利一区三区| 欧美色视频在线| 亚洲欧美精品日韩欧美| 波多野结衣中文字幕一区| 免费一级无码在线网站| 91青青视频| 免费一级无码在线网站| 香港一级毛片免费看| 亚洲视频三级| 成人av专区精品无码国产 | 性欧美精品xxxx| 久久婷婷六月| 91九色视频网| 精品久久综合1区2区3区激情| 国产毛片高清一级国语| 在线观看亚洲国产| 麻豆AV网站免费进入| 国产男人的天堂| 久久永久免费人妻精品| 狠狠色丁香婷婷综合| 欧美一级色视频| 国产精品九九视频| 久久综合色视频| 欧美一级在线看| 在线观看国产小视频| Aⅴ无码专区在线观看| 午夜国产理论| 亚洲床戏一区| 日韩最新中文字幕| 国产精品视频猛进猛出| 欧美亚洲另类在线观看| 国产成人亚洲综合a∨婷婷|