农业气象测报业务系统上传数据文件格式和传输方式的改进*

2021-03-26 06:18成兆金庄立伟张媛媛吴门新赵煜飞
中国农业气象 2021年3期
关键词:台站客户端气象

成兆金,庄立伟,张媛媛,吴门新,李 轩,赵煜飞

农业气象测报业务系统上传数据文件格式和传输方式的改进*

成兆金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日进行农业气象人工观测标准格式数据存储与传输业务切换。

1 资料与方法

1.1 农业气象测报系统

AgMODOS采用面向对象技术与模块化结构技术,以Visual Basic开发工具[13-14]、Access数据库存储系统,应用ADO数据访问接口读写系统观测参数和各类观测资料,通过FlexCell组件设计与操作,完成作物、土壤水分、自然物候和畜牧气象等各类观测资料的输入与报文、报表的分析处理与传输。系统广泛应用于全国农业气象观测站、农业气象试验站, 以及省一级的业务管理部门,实现了农业气象观测资料录入、传输、管理等业务的信息化[15-17]。农业气象观测站上传的数据文件,是指农业气象观测站(含农业气象试验站)通过人工观测或仪器自动记录的数据,按一定规则记录形成的实时数据文件,包括作物要素数据、土壤水分要素数据、自然物候要素数据、畜牧要素数据和灾害要素数据共五大类。

1.2 农业气象XML数据结构

农业气象观测数据由XML声明和实体数据两部分构成。XML声明部分位于数据格式的第一行,表示XML数据的开始。XML声明部分有且仅有一个,定义XML语言的版本和所使用的语言字符集,位于数据格式的第一行。内容为

实体数据部分包括若干数据段,每个数据段包括若干元素和子元素。XML格式[18-19]中必须有且仅有一个根要素,标签为

数据内容部分位于根要素之下,可包括1个或多个台站观测数据,每个台站的观测数据位于标签之内。

每个台站的观测数据包含6个数据段,除台站基本信息数据段必须存在以外,作物、土壤水分、自然物候、畜牧气象和农业气象灾害可以根据观测规范选择出现或不出现。各数据段对应的标签分别为:

台站基本信息数据段,标签为

作物数据段,标签为

土壤水分数据段,标签为

自然物候数据段,标签为

畜牧气象要素数据段,标签为

农业气象灾害数据段,标签为

每个数据段可包括多个要素集和要素。

1.3 开发关键技术

消息服务客户端软件,利用Java语言,采用RabbitMQ消息队列等技术,完成消息服务传输模块的开发。农业气象观测上传数据文件编制模块和消息服务传输模块继承AgMODOS开发技术框架,由Visual Basic 6语言开发完成,运用XML可扩展标识语言,完成输出标准格式的农业气象观测数据文件,调用消息服务客户端软件,实现观测数据文件的实时传输与管理,如图1所示。

2 结果与分析

2.1 XML文件编制

XML文件编制模块是AgMODOS系统的核心模块之一,由“记录簿”、“浏览文件”、“读取状况”、“编报信息”、“选项”、“分析时间”和“编报方式”栏目及功能按钮、信息处理提示等组成(图2),通过改进原模块的数据组织方式,遵循农业气象观测数据XML格式技术规程,完成实时或历史观测数据的有序组织,形成一定标准格式的数据文件。

(1)分析时间:包含分析的观测记录年度、起始时间和终止时间范围,用于控制分析年度内的记录簿相应年度存储的观测数据。

(2)记录簿:记录簿列表框列出该分析年度内台站所有的观测记录簿信息,用于选择是否参与上传数据编报。

(3)浏览文件:可以直接浏览生成的上传数据文件,阅读文件内容。

(4)读取状态:查询作物、土壤水分、自然物候、畜牧气象等观测项目编报情况,记录开始时间、终止时间、操作时间、读取次数等内容。

(5)编报信息:提供编制文件过程中的详细信息,包括发生不明的项目(名称)及采用的编码。

(6)选项:设置规定上传的要素,快速定位编报的记录簿信息;设置“编报小时”和“编报分种”文件参数;设置是否编制“未进入下个发育期”、“分蘖动态观测密度”、“标注要素名称”和“土壤水分常数”等附加内容。

(7)编报方式:系统提供常规、更正、补充、年度以及自定义等五种制作文件编报方式。

常规报:自动编报模式(默认方式),日常业务使用。系统分析、处理自上次发报以后(包括最后一天)到当前发报日期的未发报观测数据,要求新观测记录的时间必须是延续上次的记录时间。

更正报:若发报后发现观测数据错误而重新输入(修正)观测数据,则编制更正报。系统重新分析、处理上次发报期间的已发观测数据,不包括期间新补充的观测数据,生成Z文件更正报。更正“次数”下拉列表中选择当前更正的次数,从A到Z编码,对应于1~26次,更正报一般要求在3d内修正数据及编报。

补充报:若发报后发现期间漏、少输入观测数据而补充输入观测数据,则编制补充报。给定起始时间和终止时间范围,系统重新分析、处理该期间新补充、未编发的数据,不包括期间已发的数据。

自定义:自定义重新编发任何时段观测数据的报文,包括已发或未发报的数据。在“起始时间”栏下选择重置初始制作日期,在“终止时间”栏下选择重置终止制作日期。

年度报:编制年度内的观测数据,以年度报文件命名方式输出。起始时间和终止时间为所有观测记录的时间范围,系统已默认给出最大化值域,一般不需要更改。

2.2 消息服务传输

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消息队列中的消息,监听到消息之后,对消息的属性进行解析封装,对消息的消息体进行解析封装为文件,从消息属性中获取文件名,从而将消息还原为文件格式,送入文件收发处理环节进行后续处理。

3 结论与讨论

(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

猜你喜欢
台站客户端气象
你的手机安装了多少个客户端
“人民网+客户端”推出数据新闻
——稳就业、惠民生,“数”读十年成绩单
气象树
基于ETL技术的台站信息同步应用研究
专栏:红色气象 别有洞天
地震台站基础信息完善及应用分析
一种适用于高铁沿线的多台站快速地震预警方法
大国气象
一种具备干扰台站剔除的多台站定位方法
媒体客户端的发展策略与推广模式