APP下载

基于天擎系统的气象资料下载平台设计

2022-12-27李高洁郭捷乔文文杜建华孙周军

广东气象 2022年6期
关键词:插件实例终端

李高洁,郭捷,乔文文,杜建华,孙周军,3

(1.广东省气象探测数据中心,广东 广州 5 1 0 6 4 0;2.海南省南海气象防灾减灾重点实验室,海南 海口 570203;3.广东省气象公共服务中心,广东 广州 510640)

中国气象局组织研发的气象大数据云平台(简称天擎)是支撑气象业务的基础平台,其具有海量存储能力与强大的数据输出能力,涵盖数据的传输与采集、加工与处理、存储与服务、分析与监控生命周期,实现了观测数据、业务产品、分析产品、设备信息、政务信息、社会行业等数据全集的统一管理和服务,支撑国家与省级的气象业务系统,形成了“云+端”的气象业务模式[1-3]。

天擎通过服务接口为各级气象应用系统提供唯一的数据接入服务,规范与统一了数据的出口与格式,也提高了获取数据的技术门槛。科研人员需利用计算机编程语言调用服务接口,将返回数据进行解析后使用,对科研人员提出了具备高级开发语言编程能力的要求。如何面对数据需求,提供方便快捷的数据获取方法,迎合科研用户个性化数据需求,解决获取数据的便捷性问题迫在眉睫。本研究提出了一种气象数据自动化下载的软件模型(简称终端软件),通过可视化界面创建资料下载任务、设定调度参数和选择数据处理格式模板,兼容天擎所有数据格式,实现科研人员零编程从天擎系统获取气象数据。

1 需求分析

天擎系统解决了国、省统一集约的数据支撑环境,但对于科研用户,在不熟悉资料清单、观测频次、观测要素和存储格式的情况下,使用起来仍有不便之处。

(1)用户开发环境多样化。天擎提供了比较详细的开发实例文档,如针对主流的操作系统Linux、HP-UX、Windows等,提供多种语言的客户端开发包C#、Java、C/C++、Fortran、Python等,但对于BCB、Visual Basic等在用的编程语言没有提供相应的开发示例和说明文档。

(2)海量数据存储的业务应用能力不足。在满足天气、气侯、人影、政务等气象应用的同时,不同业务开发水平的科研人员不能及时有效的获取数据信息,只能摸索数据的格式特性,找对应的解码工具进行二次开发,增加了开发成本和数据使用成本[4]。

(3)科研人员对气象业务数据、地球科学数据、社会行业数据的算法和实际应用钻研较深入,但对于获取数据的新技术关注较少,对于日新月异的结构化和非结构化数据存储[5]规则关注度不够,导致不能以最有效的方式获取数据。

科研人员非常渴望能够通过“可见即可得”的方式,以拖拉拽的方式得到天擎数据。

2 系统设计

2.1 系统架构

1)采用B/S架构。

软件要服务于气象业务和科研人员,其对数据的个性化定制需求较高,要求能够随时随地及时地查看数据清单、查看接口的元信息、管理定制的下载任务和任务调度情况等功能。因此,采用B/S软件架构[7-8],能够通过浏览器完成用户的相关操作。

2)采用Nutz框架。

软件需要实现用户访问、接口元数据、任务计划管理、定时任务执行和数据预处理等后台管理功能,并提供HTTP服务,承载前端页面和后台服务的运行。Nutz开发框架能够满足要求:(1)支持Ioc注入机制,通过配置方式引入对应的通用软件功能,简化开发工作量;(2)内嵌了Tomcat、Jetty等Web容器,软件后台服务和前端页面一体发布,不依赖外部Web容器便可在本机运行,简化项目部署和运行;(3)提供大部分配置的默认值,简化了应用开发调试的难度,通过注解减少配置,提高代码可读性和开发效率。

3)采用H5可视化技术。

软件提供H5界面供用户访问和交互操作,用户的软件运行环境、使用的浏览器各不相同,在开发Web页面时需要考虑访问性能和兼容性。H5即HTML5技术是超文本标记语言第5代(HyperText Markup Language 5)的缩写,是构建Web应用内容的语言[6],它具有如下优点:(1)解决不同浏览器的兼容性问题,H5是万维网联盟(W3C)发布的标准,各厂商的浏览器均会支持和实现这一标准;(2)通过H5响应式页面设计,支持多种屏幕尺寸和分辨率下页面的正常显示,使网页适应不同的用户的访问环境。

2.2 功能设计

本软件采用云+端模式运行,其中云端包含气象数据服务与云控任务管理服务两部分。数据服务以天擎服务接口为基础提供数据供给;云控管理服务终端软件的下载任务管理、任务调度、用户鉴权、格式转换、在线升级、上线状态监控等功能提供可视化交互功能。

1)数据服务。

天擎服务接口提供数据的响应流程如图1所示。软件向天擎服务接口发起调用请求时,首先通过接口网关进行用户认证、服务路由检索、流量控制和负载分流等访问权限认证后,根据请求参数组装数据检索、统计、更新等程式操作,将具体程式在站点数据、文件产品、数值模式等数据存储体中进行执行,检索出对应的气象业务数据,按照要求的格式进行转换和封装,将结果返回给调用请求发起端。本终端软件即是整个服务流程中发起请求的客户端。

图1 天擎服务接口数据服务流程示意图

2)云控任务管理服务。

云控任务管理主要是利用可视化技术实现的用户管理交互和对终端软件发起相关服务请求的响应。主要功能如下:

(1)鉴权认证服务。通过在气象大数据云平台服务接口注册成功的用户,已经通过安全认证,可直接登录气象数据自动化下载平台进行创建任务。根据服务接口的权限类型,访问对应的资料清单和接口清单列表。

(2)元数据管理服务。天擎定义了丰富的数据接口,用户登录终端软件时,接口元数据服务将该用户能够访问的数据资料种类、接口访问权限等信息组织成结构化数据,传输到终端本地,便于用户在终端上能够快速的查看数据的元数据信息以及接口的具体使用说明。

(3)下载流量控制。为了避免大规模的数据访问请求,天擎自身具有限流控制,对访问量过大的用户,会自动暂停提供服务。为避免终端软件造成天擎超负荷,本软件根据任务提交的定时计划判别出数据请求量,如果达到预设的阈值,就会暂停提交的任务计划,优先保障天擎正常提供服务。

(4)终端状态监控。终端运行时定期向云控平台上报调用速度、状态信息和其他附件采集信息,云控平台提供集中查看每个终端软件的当前下载速率、运行IP、登录账户、登录时间等信息。天擎管理人员可以判别某终端为异常,可强制某终端软件下线,优先保障天擎服务正常运行。

(5)软件智能升级。终端软件运行在本机,用户可以手工触发或启动触发检查是否有最新版本发布。在具备更新条件时,则自动启动更新进程,向云控管理服务发出更新请求和传递更新包,终端软件会替换更新模块和自动重启。

3 关键技术

3.1 模型定义

软件的正常运行是由任务模型、任务模型管理器、任务实例和任务调度管理器关键组件互相配合完成。

(1)任务模型:该模型是数据下载任务的具体定义,包括任务基本信息、下载数据的时间范围、任务调度参数、接口调用参数、数据处理参数等。①任务的基本信息是由任务模型以Restful API接口方式读取天擎服务接口的基本参数信息,包括用户登录的账户、密码、读取数据的接口URL、数据返回格式、接口参数值;②数据下载任务的定义是任务模型产生的具体任务节点计划,任务计划的调度模式以及任务计划的参数实施,包括调度任务的时间范围、时间间隔、延迟执行时间、失败调度任务需要重复执行次数和时间偏移量。

(2)任务实例:该模型是数据下载任务的最小单元,保存了数据下载任务的所有运行信息和监控信息,监控信息包括任务执行状态、任务创建时间、任务生成开始结束时间、任务完成情况已生成数量/应生成数量,任务运行的详细信息包括数据访问完整URL、输出数据文件名、文件保存路径、任务失败再执行次数等运行情况的详细日志信息。

(3)任务实例集。该模型是待执行任务实例的集合。任务实例集分为3种情况:①全部为立即下载数据任务,即全部为下载历史数据的任务实例,需要按照随机顺序逐个执行;②立即下载数据任务与未来下载数据任务并存,即用户下载的数据包含历史数据和后续产生的数据,终端软件会将当天与第2天未生成的数据的下载任务实例预先生成;③全部为未来下载数据任务,即用户只下载创建任务时刻以后的生产数据。

(4)任务模型管理器。该模型任务模型的管理调度,关于任务模型的操作都由其负责处理,如任务模型新建、修改、克隆、删除任务模型,对任务模型进行启动、暂停和中止,以及定时或手工生成第2天下载任务实例。

(5)任务实例调度[9-10]。该模型是负责调度和执行数据下载任务。定时检索1 h内需要被执行的任务实例放入队列,对任务队列进行遍历,达到执行条件时则执行具体下载操作;对平台中的任务计划进行统计、分类、定期清除,统计已完成的任务计划、失败的任务计划和待执行的任务计划。

3.2 运行流程

图2详细描述了任务模型、任务实例到任务具体执行的全部运行流程。

图2 任务调度运行流程示意图

(1)任务可视化定制过程。用户在web交互页面选择需要下载的数据及使用的数据访问接口,填写任务创建表单,提交表单后模型管理器按照任务模型定义封装信息、创建任务,保存到软件内嵌数据库的任务模型表。此外,模型管理器负责提供任务模型的查询和管理,包括数据下载任务的启动、暂停、停止、删除、克隆等操作。

(2)任务实例生成过程。任务创建后,任务模型管理器根据任务模型定义的数据下载时间和当前时间判断任务类型,包含3种情况:若任务结束时间早于当前时间,任务模型为历史数据调取模型,管理器会一次性生成所有时次的数据下载任务实例;若任务开始时间早于当前时间,且结束时间晚于当前时间或用户没有设置任务结束时间,任务模型为混合数据下载任务,管理器首先生成当天以前所有时次的数据下载任务实例,并每天定时生成第2天的任务实例;若任务开始时间晚于当前时间,且结束时间晚于当前时间或用户没有设置任务结束时间,任务模型为未来数据下载任务,管理器根据时间区间,每天提前生成第2天的任务实例。

(3)任务实例执行过程。同一个任务模型所属的所有任务实例构成任务实例集,任务实例执行完毕后会记录相应的任务完成情况,如下载是否成功、下载数据大小、任务完成时间等等,软件通过上述信息统计任务执行情况供用户查询。

(4)任务调度器运行过程。任务调度器负责统一调度和执行任务实例,根据任务实例定义的任务执行时间触发下载线程,从数据接口平台检索下载数据,并根据接口调用情况及返回结果,判断数据下载是否成功,若下载不成功则按照策略进行重试。

以上过程中,科研人员利用平台提供的可视化界面进行参数的设置,后续下载任务的执行则由软件平台自行运行。整个过程无需进行编程,且有友好的操作与监视管理界面。

3.3 插件技术

科研人员对科研数据格式有多种需求。因此,采用插件化设计模式,定义了格式转换实现的抽象类和接口,并预先实现了NETCDF、GRIB、PNG等格式转换插件,与数据接口进行绑定,由科研人员按需选择,减少编制数据格式转换的开发工作,以及减小了格式转换与数据下载的耦合度。插件运行的具体过程如下:(1)在软件配置文件中定义插件清单,记录插件名称及插件实现类,软件启动时加载插件清单到内存。(2)用户打开任务创建表单,软件读取插件清单,将插件列表及每个插件对应的运行参数设置以表单的形式展现,由用户进行选择和输入;用户完成任务创建,任务模型保存插件基本信息以及对应的运行参数。(3)软件执行数据下载任务实例,完成从数据接口调用数据后,根据格式转换插件配置,得到插件类名称和路径,利用动态加载技术得到对应插件类实例,执行格式转换操作。

目前已实现的格式转换插件功能包括:将多个任务实例的检索结果合并到同一文件;若调用的接口为文件信息检索接口,则解析接口返回结果中的文件列表及下载URL,从接口平台将对应的数据文件下载保存到指定目录;将接口返回的网格数据封装转换为NETCDF格式。

4 业务应用

4.1 性能测试

用终端软件从天擎数据服务接口测试下载1、7、30 d,1年的中国地面逐小时全要素数据的结构化存储数据的耗时性能;测试下载1、7、30 d,1年的欧洲中心数值预报产品的地面气压要素的非结构化存储数据的耗时性能,结果如表1所示。

表1 结构化和非结构化数据下载性能测试结果

根据表1结果中对结构化存储数据和非结构存储数据下载性能的测试结果显示,终端软件成功下载数据,数据下载速率稳定,下载量的大小影响下载速率且并未因下载数据量大导致天擎服务接口发生故障。

4.2 典型应用

终端软件业务应用以来,每年共享给服务用户的数据量达到100 TB,业务共享单位达到20多个。特别在利用终端软件配置了网格化实况能见度、自动站观测等数据的下载任务,定时从服务接口下载数据传输给香港天文台,支持了粤港澳大湾区天气网站系统的建设。该软件的应用成果验证了气象大数据云平台服务接口的应用可行性,也对服务接口的推广应用起到了推动作用。

5 结论

基于天擎系统的气象资料下载软件针对提高获取数据技术门槛的问题,结合可视化交互、任务调度和数据格式模板适配技术,为科研提供便捷、零编程的数据获取几种方法。

1)终端软件的任务模型设计与调度模型的思路和实现方法,可用于其他领域的业务调度模型。

2)终端软件在气象行业的实际应用中,对于气象部门推动天擎数据环境支撑业务的发展模式起到较大的推动作用。

3)在向非气象部门进行数据共享中,终端软件可以屏蔽数据源结构的异构性,是一种很好的数据下载软件。

猜你喜欢

插件实例终端
X美术馆首届三年展:“终端〉_How Do We Begin?”
自编插件完善App Inventor与乐高机器人通信
通信控制服务器(CCS)维护终端的设计与实现
GSM-R手持终端呼叫FAS失败案例分析
基于jQUerY的自定义插件开发
基于Revit MEP的插件制作探讨
完形填空Ⅱ
完形填空Ⅰ
ABB Elastimold 10kV电缆终端及中间接头
插件体系结构软件的原理和实现