成兆金,莊立偉,張媛媛,吳門新,李 軒,趙煜飛
農業氣象測報業務系統上傳數據文件格式和傳輸方式的改進*
成兆金1,莊立偉2**,張媛媛3,吳門新2,李 軒2,趙煜飛4
(1.山東省日照市氣象局,日照 276826;2.國家氣象中心,北京 100081;3.華云信息技術工程有限公司,北京100081;4.國家氣象信息中心,北京 100081)
隨著現代氣象觀測技術的迅速發展,氣象資料的數量及類型急劇增加。目前基于傳統的TCP/IP協議的FTP文件傳輸方式以及TXT格式的純文本報文文件,已無法滿足大數量、多種類的觀測數據高時效傳輸和存儲要求。為滿足氣象信息化標準體系建設的需求,著重研究了Java消息服務傳輸和新XML數據文件格式技術在AgMODOS中的開發應用,包括RabbitMQ消息隊列技術中的消息中間件技術、消息傳輸架構設計、觀測數據消息過濾與封裝、數據緩存、數據補傳等。業務試運行結果表明:XML格式文件內容正確,消息傳輸穩定,無丟失,99%的觀測數據從臺站到國家局在1s以內完成傳輸,并通過交換控制策略將數據及時轉發給業務單位,大幅提升了農業氣象觀測數據傳輸的時效性和服務能力。
農業氣象測報業務系統;XML數據格式文件;Java消息傳輸
為實現農業氣象觀測業務信息化、自動化,陳懷亮等[1-3]研發了農業氣象管理系統,系統具備資料錄入、錯情檢查、資料查詢、機制報表、數據入庫以及服務等功能。莊立偉等[4-7]研發了農業氣象測報業務系統軟件(AgMODOS),并于2010年1月1日在全國農業氣象觀測站正式投入業務運行,該系統主要基于微機開發,實現了農業氣象觀測資料的處理、加工、存儲、傳輸信息化,報文文件采用TXT格式存儲、FTP方式傳輸。隨著時代的發展,農業氣象業務服務內容已由當年單一的糧食作物觀測增至當前種類繁多的糧食、蔬菜、果樹、花卉、林木、自然物候、土壤水分、畜牧氣象等諸多方面[8],由于農業氣象觀測資料地區差異性強,觀測要素種類多、內容雜,缺乏統一、規范的數據技術標準及其存儲和管理方法,為有效規范農業氣象業務數據、高效傳輸、制作標準規范的產品,莊立偉[9]遵照《QX/T 435-2018 農業氣象數據庫設計規范》6.2 的新規定,采用XML語言,設計開發了新XML數據格式文件模塊。XML是一種可擴展的標識語言(eXtensibleMarkupLangu age),簡單、易讀寫,是數據交換的唯一公共語言,滿足農業氣象觀測數據不斷增加和變化的需求。王恩文等[10-12]利用Java語言,采用RabbitMQ消息隊列技術,設計開發了消息傳輸服務模塊,目前,氣象通訊傳輸多采用RabbitMQ消息隊列技術,能支持多種客戶端,臺站通過消息傳輸客戶端將生產的觀測數據進行消息封裝后發布到消息隊列(Message Queue)中,省級消息服務器從隊列中獲取消息后,以秒級的時間推送到國家級消息服務器,能夠完成高時效的數據傳輸。
本研究在AgMODOS的基礎上,改進觀測數據上傳文件編制和文件傳輸模塊,以XML標準化格式要求,重新組織作物、自然物候、土壤水分、畜牧氣象和農業氣象災害五大類觀測資料所形成的上傳文件內容結構。引入Java的消息服務機制,研發臺站客戶端的消息服務軟件,進行有效的文件傳輸監控與管理,與全國各省氣象部門部署的消息服務器形成一體,實現多點對單點或多點的快速信息傳輸。系統已于2020年9月在全國農業氣象觀測站業務試運行,2020年12月1日進行農業氣象人工觀測標準格式數據存儲與傳輸業務切換。
AgMODOS采用面向對象技術與模塊化結構技術,以Visual Basic開發工具[13-14]、Access數據庫存儲系統,應用ADO數據訪問接口讀寫系統觀測參數和各類觀測資料,通過FlexCell組件設計與操作,完成作物、土壤水分、自然物候和畜牧氣象等各類觀測資料的輸入與報文、報表的分析處理與傳輸。系統廣泛應用于全國農業氣象觀測站、農業氣象試驗站, 以及省一級的業務管理部門,實現了農業氣象觀測資料錄入、傳輸、管理等業務的信息化[15-17]。農業氣象觀測站上傳的數據文件,是指農業氣象觀測站(含農業氣象試驗站)通過人工觀測或儀器自動記錄的數據,按一定規則記錄形成的實時數據文件,包括作物要素數據、土壤水分要素數據、自然物候要素數據、畜牧要素數據和災害要素數據共五大類。
農業氣象觀測數據由XML聲明和實體數據兩部分構成。XML聲明部分位于數據格式的第一行,表示XML數據的開始。XML聲明部分有且僅有一個,定義XML語言的版本和所使用的語言字符集,位于數據格式的第一行。內容為。
實體數據部分包括若干數據段,每個數據段包括若干元素和子元素。XML格式[18-19]中必須有且僅有一個根要素,標簽為
數據內容部分位于根要素之下,可包括1個或多個臺站觀測數據,每個臺站的觀測數據位于
每個臺站的觀測數據包含6個數據段,除臺站基本信息數據段必須存在以外,作物、土壤水分、自然物候、畜牧氣象和農業氣象災害可以根據觀測規范選擇出現或不出現。各數據段對應的標簽分別為:
臺站基本信息數據段,標簽為
作物數據段,標簽為
土壤水分數據段,標簽為
自然物候數據段,標簽為
畜牧氣象要素數據段,標簽為
農業氣象災害數據段,標簽為
每個數據段可包括多個要素集和要素。
消息服務客戶端軟件,利用Java語言,采用RabbitMQ消息隊列等技術,完成消息服務傳輸模塊的開發。農業氣象觀測上傳數據文件編制模塊和消息服務傳輸模塊繼承AgMODOS開發技術框架,由Visual Basic 6語言開發完成,運用XML可擴展標識語言,完成輸出標準格式的農業氣象觀測數據文件,調用消息服務客戶端軟件,實現觀測數據文件的實時傳輸與管理,如圖1所示。
XML文件編制模塊是AgMODOS系統的核心模塊之一,由“記錄簿”、“瀏覽文件”、“讀取狀況”、“編報信息”、“選項”、“分析時間”和“編報方式”欄目及功能按鈕、信息處理提示等組成(圖2),通過改進原模塊的數據組織方式,遵循農業氣象觀測數據XML格式技術規程,完成實時或歷史觀測數據的有序組織,形成一定標準格式的數據文件。
(1)分析時間:包含分析的觀測記錄年度、起始時間和終止時間范圍,用于控制分析年度內的記錄簿相應年度存儲的觀測數據。
(2)記錄簿:記錄簿列表框列出該分析年度內臺站所有的觀測記錄簿信息,用于選擇是否參與上傳數據編報。
(3)瀏覽文件:可以直接瀏覽生成的上傳數據文件,閱讀文件內容。
(4)讀取狀態:查詢作物、土壤水分、自然物候、畜牧氣象等觀測項目編報情況,記錄開始時間、終止時間、操作時間、讀取次數等內容。
(5)編報信息:提供編制文件過程中的詳細信息,包括發生不明的項目(名稱)及采用的編碼。
(6)選項:設置規定上傳的要素,快速定位編報的記錄簿信息;設置“編報小時”和“編報分種”文件參數;設置是否編制“未進入下個發育期”、“分蘗動態觀測密度”、“標注要素名稱”和“土壤水分常數”等附加內容。
(7)編報方式:系統提供常規、更正、補充、年度以及自定義等五種制作文件編報方式。
常規報:自動編報模式(默認方式),日常業務使用。系統分析、處理自上次發報以后(包括最后一天)到當前發報日期的未發報觀測數據,要求新觀測記錄的時間必須是延續上次的記錄時間。
更正報:若發報后發現觀測數據錯誤而重新輸入(修正)觀測數據,則編制更正報。系統重新分析、處理上次發報期間的已發觀測數據,不包括期間新補充的觀測數據,生成Z文件更正報。更正“次數”下拉列表中選擇當前更正的次數,從A到Z編碼,對應于1~26次,更正報一般要求在3d內修正數據及編報。
補充報:若發報后發現期間漏、少輸入觀測數據而補充輸入觀測數據,則編制補充報。給定起始時間和終止時間范圍,系統重新分析、處理該期間新補充、未編發的數據,不包括期間已發的數據。
自定義:自定義重新編發任何時段觀測數據的報文,包括已發或未發報的數據。在“起始時間”欄下選擇重置初始制作日期,在“終止時間”欄下選擇重置終止制作日期。
年度報:編制年度內的觀測數據,以年度報文件命名方式輸出。起始時間和終止時間為所有觀測記錄的時間范圍,系統已默認給出最大化值域,一般不需要更改。
2.2.1 消息服務整體架構
消息服務傳輸使用C/S架構[20-21](Client/ Server,即客戶端服務器端架構),消息傳輸服務的客戶端在全國農氣臺站部署,消息處理程序在國家級/省級部署。
消息傳輸服務系統是在國內氣象通信系統2.0基礎上進行升級建設,整個數據傳輸流程采用分層設計理念[22],包含數據層、服務層、通訊層和展示層,實現農業氣象觀測XML標準格式數據發送、數據接收、數據過濾/封裝[23]、數據緩存和數據補傳。
消息服務的整體架構如圖3所示。
數據層包括文件系統、緩存數據庫和數據庫,其中文件系統提供給文件采集和歸檔使用,數據庫用來提供監控信息使用。
服務層包括消息傳輸客戶端和消息處理程序兩部分。其中消息傳輸客戶端包括文件觀察、事件監聽、事件處理、消息封裝、消息發送等功能,消息處理程序包括消息接收、消息處理、消息歸檔、生成監控信息等功能。
通訊層采用RabbitMQ消息中間件,進行消息的傳輸。
展示層包括終端監控等。
2.2.2 消息傳輸客戶端
(1)交換服務微代理
交換服務微代理包括數據采集、數據過濾與封裝、數據發送三部分。
數據采集使用Common.io文件監聽技術,對要觀察的目錄進行監控、設置相應的監控參數、對發現的文件和新增事件進行監聽。
數據過濾包括文件名過濾和資料時效過濾。監聽到文件之后對文件名進行識別,如果是已配置的農業氣象觀測資料,則進行采集,并從文件名中提取業務時次、臺站號等要素信息;同時對傳輸客戶端接收目錄中的資料進行時效判斷,對超過規定時間范圍的資料數據,不再進行傳輸發送。
數據封裝是將采集到的農業氣象觀測XML標準格式數據封裝為由消息屬性和消息體兩部分構成的消息。其中消息屬性信息,主要包括數據接收服務器IP、發送者身份信息、編報中心、MD5校驗碼等。
數據發送是將數據封裝形成的消息發送到數據接收服務器,對發送成功的數據文件轉移到Sending及Sendback文件夾,如果發送失敗,重新調用回調接口,進行數據補發。
(2)消息傳輸服務管理
消息傳輸服務管理模塊由“傳輸內容”、“參數配置”、“傳輸日志”頁面及“檢測消息服務”、“啟動消息服務”、“推送”等功能按鈕組成(圖4)。結合消息服務客戶端,啟動及檢測消息服務的狀態,以及上傳文件的推送、接收或發生重復、錯誤等信息。
①傳輸內容:包含“發生信息”和“傳輸文件”兩部分,提供觀測員準確掌握XML文件上傳情況。“發送信息”欄,可查閱待傳、成功、備份、重復或錯誤的傳輸文件信息;“傳輸文件”欄,列表待傳或在傳輸狀態下的文件信息。
②參數配置:窗口設置對消息傳輸的參數配置功能,包括服務器地址、端口、用戶名、密碼、編報中心、發送者、監視路徑,以及啟動/關閉消息監控和自動推送功能。其中服務器、端口、用戶名和密碼按照每個省(市、區)給定的地址配置,發送者和監視路徑根據客戶端安裝參數自動獲取。所有消息傳輸的參數配置均由系統自動獲取完成,也可通過“加載配置文件”獲取。
③傳輸日志:傳輸記錄日志采用Org.slf4j. Logger日志方法,采用常見的ERROR、WARN、INFO、DEBUG四種級別輸出,可以詳細展示日志記錄時間與位置,且自定義日志輸出內容。項目啟動時會生成當天的日志文件,如:Info-xxxx-xx-xx.log,每天一個文件記錄當天所有日志信息(日志內容當天累計追加),同時還會生成一個臨時日志文件Info.log,可供查看當次項目啟動到再次啟動之間的記錄信息(項目啟動內容會刷新)。
2.2.3 消息處理程序
消息處理程序部署在國家級,實時監聽RabbitMQ消息隊列中的消息,監聽到消息之后,對消息的屬性進行解析封裝,對消息的消息體進行解析封裝為文件,從消息屬性中獲取文件名,從而將消息還原為文件格式,送入文件收發處理環節進行后續處理。
(1)本研發主要是基于原AgMODOS的架構技術,并引入Java消息服務傳輸技術,遵循農業氣象觀測數據XML文件格式規程,解決了農業氣象人工觀測資料新長Z文件TXT格式、FTP傳輸的不足。2019?2020年2a的全國6省(區)業務試點運行和上傳數據評估結果表明,上傳文件及時、文件入庫解譯正確、各項觀測數據齊全,達到了業務運行能力,實現了農業氣象觀測資料的標準化格式存儲和傳輸,對推進氣象數據標準化建設,進一步提升國家級以及省地縣農業氣象監測業務服務的支撐能力具有重要意義。
(2)消息服務交換服務微代理的配置管理功能,繼承了消息服務客戶端軟件的管理配置,支持配置的臺站號、省中心代碼編號、臺站類別、傳輸方式等。為了滿足升級對臺站運行情況的監視,在系統中擴展了臺站的配置信息,區分主站、備份站的類別。該功能支持用戶通過界面或配置文件方式實現對服務端地址的配置、分發/收集協議的選擇。其中,根據規范對站點信息進行配置,包括臺站名稱、站號、所屬省(市、區)等站點相關信息,增加臺站是主站還是備份站的區分信息。此主站、備份站的類別區分信息,可以給省級提供臺站運行的檢測信息,滿足省級對臺站運行狀況的遠程監控。
(3)消息傳輸系統基于Java的jdk1.8.0開發,一方面消息服務客戶端對Java版本一致性要求較高,Java版本的自動升級對本系統應用有影響;另一方面Java系統環境變量必須人工設置,操作繁瑣,給基層臺站的應用造成一定的難度。將來需要進一步完善消息服務客戶端軟件,適應于計算機Win7及以上各版本操作系統兼容的需求,做到自動配置Java的系統環境變量。
[1] 陳懷亮,王良宇,張雪芬.農業氣象觀測記錄報表資料管理系統設計方法[J].中國農業氣象,2004,25(3):63-66.
Chen H L,Wang L Y,Zhang X F.Design methodology on management system on agro-meteorological observation report forms data[J].Chinese Journal of Agrometeorology, 2004,25(3):63-66.(in Chinese)
[2] 張淑杰,班顯秀.農業氣象情報業務系統的設計與實現[J].中國農業氣象,2004,25(3):67-69.
Zhang S J,Ban X X.design and implementation of agrometeorological information service system[J].Chinese Journal of Agrometeorology,2004,25(3):67-69.(in Chinese)
[3] 楊太明,馬曉群,張愛民,等.農業氣象觀測報表制作及管理系統[J].中國農業氣象,2002,23(2):37-40.
Yang T M,Ma X Q,Zhang A M,et al.Study on the system for production and management of agrometeorological observation report[J].Chinese Journal of Agrometeorology, 2002,23(2):37-40.(in Chinese)
[4] 莊立偉,衛建國,毛留喜.軟件設計模式在農業氣象系統開發中的應用[J].應用氣象學報,2011,22(5):631-640.
Zhuang L W,Wei J G,Mao L X.The application of software design patterns in agrometeorology software systems development[J].Journal of Applied Meteorological Science, 2011,22(5):631-640.(in Chinese)
[5] 成兆金,莊立偉.農業氣象測報業務系統的輸入技術[J].氣象科技,2011,39(3):352-355.
Cheng Z J,Zhuang W.Inputting techniques of agricultural meteorological observation and reporting system[J]. Meteorological Science and Technology,2011,39(3):352-355.(in Chinese)
[6] 成兆金,莊立偉,李軒,等.農業氣象測報工作基數統計系統開發與應用[J].氣象科技,2019,47(2):367-372.
Cheng Z J,Zhuang L W,Li X,et al.Development and application of a basic data statistical system for agrometeorological observation reports[J].Meteorological Science and Technology, 2019,47(2):367-372.(in Chinese)
[7] 成兆金,莊立偉,吳門新,等.農業氣象觀測記錄年報表審核系統設計與實現[J].干旱氣象,2019,37(3):490-495.
Cheng Z J,Zhuang L W,Wu M X,et al.Agrometeorological observation report verification system design and implementation[J].Journal of Arid Meteorology,2019,37(3): 490-495.(in Chinese)
[8] 毛留喜,呂厚荃.國家級農業氣象業務技術綜述[J].氣象, 2010,36(7):75-80.
Mao L X,Lv H Q.Overview of national level agrometeorological operational techniques[J].Meteorological Monthly[J].2010,36(7):75-80.(in Chinese)
[9] 中國氣象局.QX/T435-2018 農業氣象數據庫設計規范[S].北京:氣象出版社,2018.
ChinaMeteorologicalAdministration.Meteorological industry standard QX/T435-2018 specification of agrometeorological database design[S].Beijing:China Meteorological Press,2018. (in Chinese)
[10] 王恩文.消息隊列技術在氣象軟件系統中的應用[J].氣象科技進展,2018,8(6):167-171.
Wang E W.Application of message queue technology in meteorological software[J].Advances in Meteorological Science and Technology,2018,8(6):167-171.(in Chinese)
[11] 胡英楣,王甫棣,譚小華,等.有狀態消息隊列在國內氣象通信系統的應用[J].計算機系統應用,2020,29(3):121-126.
Hu Y M,Wang F D,Tan X H,et al.Application of stateful message queue technology in national meteorological communication system[J].Computer Systems & Applications, 2020,29(3):121-126.(in Chinese)
[12] 余永城,翁秋華,段卿,等.RabbitMQ在氣象通信系統中的應用研究[J].計算機技術與發展,2020,30(4):216-220.
Yu Y C,Weng Q H,Duan Q,et al.research on application of rabbitmq in meteorological communication system. [J]Computer Technology and Development,2020,30(4): 216-220.(in Chinese)
[13] 姚俊萌,馮利平,黃文霖,等.常用農業氣候指標計算軟件的研制[J].中國農業氣象,2012,33(4):595-602.
Yao J M,Feng L P,Huang W L,et al.Development of common agro-climatic index computing software[J]. Chinese Journal of Agrometeorology,2012,33(4):595-602.(in Chinese)
[14] 劉麗,劉清,宋國強,等.基于GIS組件的農業氣象信息服務系統[J].中國農業氣象,2006,27(4):305-309.
Liu l,Liu Q,Song G Q,et al.Agro-meteorological information service systems based on comGIS[J].Chinese Journal of Agrometeorology,2006,27(4):305-309.(in Chinese)
[15] 樊新燕.淺談基層如何巧妙利用農業氣象觀測記錄年報表審核系統[J].石河子科技,2017(4):17-18.
Fan X Y.How to skillfully use the agricultural meteorological observation record annual report audit system at the grass-roots level[J].Shihezi Science and Technology,2017(4):17-18.(in Chinese)
[16] 徐淑華,孫麗莉,李玉春,等.農業氣象測報業務系統與農氣觀測規范相關技術規定統一的分析[J].黑龍江氣象,2017, 34(3):37-39.
Xu S H,Sun L L,Li Y C,et al.Analysis of the unification of the agrometeorological observing data operation system and the related technical regulations of the agricultural gas observation code[J].Heilongjiang Meteorology,2017,34(3): 37-39.(in Chinese)
[17] 宋善俊,梁良.農業氣象測報業務系統軟件使用中的注意事項[J].吉林氣象,2014(1):34-45.
Song S J,Liang L.Points for attention in the use of agrometeorological observing data operation system software[J].Jilin Meteorology,2014(1):34-45.(in Chinese)
[18] 陳道遠,孫兆輝.基于XML配置的Excel通用導入組件設計與應用[J].電腦編程技巧與維護,2019(8):99-100.
Chen D Y,Sun Z H.Design and application of Excel Universal Import Component based on XML configuration[J]. Computer Programming Skills & Maintenance,2019(8):99-100.(in Chinese)
[19] 賀挺,楊柳,陳真玄,等.一種支持動態XML文檔的存儲模式設計與應用[J].水利信息化,2020(4):27-30.
He T,Yang L,Chen Z X,et al.Design and application of storage mode supporting for dynamic XML documents[J]. Water Resources Informatization,2020(4):27-30.(in Chinese)
[20] 王磊,王皓.基于C/S架構的機場地理信息系統的設計與實現[J].信息技術與網絡安全,2020,39(3):68-72.
Wang L,Wang H.Design and implementation of airport geographic information system based on C/S architecture[J]. Information Technology and Network Security,2020,39(3): 68-72.(in Chinese)
[21] 吳門新,莊立偉,侯英雨,等.中國農業氣象業務系統(CAgMSS)設計與實現[J].應用氣象學報,2019,30(5):513-527.
Wu M X,Zhuang L W,Hou Y Y,et al.The design and implementation of China Agricultural Meteorological Service System(CAgMSS)[J].Journal of Applied Meteorological Science,2019,30(5):513-527.(in Chinese)
[22] 趙四強,莊立偉,王建林,等.國家級農業氣象產量預報業務自動化系統[J].中國農業氣象,1992,13(5):45-49.
Zhao S Q,Zhuang L W,Wang J L,et al.Automation system of national agricultural meteorological output forecast operation[J].Chinese Journal of Agrometeorology,1992, 13(5):45-49.(in Chinese)
[23] 張來恩,王鵬,韓鑫強.CTS2.0消息封裝及交換控制策略設計及實踐[J].氣象科技進展,2018,8(1):271-273.
Zhang L E,Wang P,Han X Q.Design and practice of CTS2.0 message encapsulation and exchange control strategy[J]. Advances in Meteorological Science and Technology,2018, 8(1):271-273.(in Chinese)
Improvement of the Format and Transmission Mode of the Uploaded Data File in the Agrometeorological Observing Data Operation System
CHENG Zhao-jin1,ZHUANG Li-wei2,ZHANG Yuan-yuan3,WU Men-xin2,LI Xuan2,ZHAO Yu-fei4
(1.Rizhao Meteorological Bureau, Rizhao 276826, China;2.National Meteorological Center, Beijing 100081;3.Huayun Information Technology Engineering Co.LTD, Beijing 100081;4.National Meteorological Information Center, Beijing 100081)
With the rapid development of modern meteorological observation technology, the quantity and type of meteorological data is increased sharply. At present, the FTP file transfer method based on traditional TCP/IP protocol and pure text message file in TXT format can no longer meet the high-time transmission and storage requirements of large quantity and multi-type observation data. To meet the needs of meteorological informatization standard system construction, this paper studies the Java message service transmission and new technology development and application of XML data file formats in AgMODOS including the message middleware technology, message transmission architecture design, observation data message filtering and encapsulation, data cache and data supplementary transfer etc. in RabbitMQ message queue technology. The results of the trial operation of the service show that the CONTENT of the XML format file is correct, the message transmission is stable, and there is no loss. 99% of the observation data are transmitted from the station to the national bureau within 1s, and the data are transmitted to the business unit timely through the exchange control strategy, and the timeliness and service capacity of the agricultural meteorological observation data transmission are greatly improved.
Agrometeorological observing data operation system; XML data format file; Java message transfer
10.3969/j.issn.1000-6362.2021.03.008
成兆金,莊立偉,張媛媛,等.農業氣象測報業務系統上傳數據文件格式和傳輸方式的改進[J].中國農業氣象,2021,42(3):243-249
2020?09?23
國家重點研發計劃(2016YFA0600301);山東省氣象局氣象科學技術研究項目(2017sdqxm17)
莊立偉,研究員,從事農業氣象業務服務技術研究及應用系統研發,E-mail:Zhuanglw@cma.gov.cn
成兆金,E-mail:czjau@163.com