基于公有云的山东省公共气象服务数据产品支撑系统的设计与实现

2020-11-25 01:08任广治毕献忠
陕西气象 2020年6期
关键词:气象产品服务

任广治,毕献忠

(山东省气象服务中心,济南 250031)

中国气象局提出了“公共气象服务要集约化、规模化、品牌化发展”的战略要求,姚胜[1]也认为“随着信息技术的不断发展,人们对目前的气象服务工作也有了更多的要求,所以当下的气象服务平台改革迫在眉睫”。以山东省气象部门为例,公共气象服务多年来存在一定的短板:一是服务方式还是多以气象网站、气象短信、12121、影视等为主,各自为战,资源分散,难以形成统一的品牌效应;二是在当今物联网、云计算、大数据等新一代互联网技术的迅猛发展下,传统服务方式不同程度地面临着用户量萎缩,服务能力不强等诸多现实问题;三是省级公共气象服务数据处理、应用能力不足,指导地市气象局开展公共气象服务的手段缺乏。与此同时,国内气象服务相关系统研究正逐步开展起来,姜殿荣等[2]设计了基于MVC架构的新媒体公众气象服务平台,实现了数据的交互、共享和内部功能模块间的数据交互。何林等[3]利用AngularJS框架实现了气象数据共享的前台界面。王锡良[4]采用插件式开发技术开发了基于OSGi.NET插件框架的公共气象服务平台。王婉等[5]开发了基于智慧气象的数据接口,已为微信、微博、手机APP、网站等多个系统及保险公司、市政等多个单位提供数据支撑。王垒、韩涛[6-7]等探索采用面向服务的大数据来解决气象服务供给能力不足的问题。公共气象服务需要紧跟社会发展需求,不断依靠气象自身数据、业务、技术优势,结合国家气象信息化发展战略,积极融入互联网时代,“互联网+智慧气象”首要功能就是要让各行各业可以通过类似API[8]的方式通过公有云轻松获取到他们需要的气象信息,同时通过创新服务产品,在更高的层次上引领社会对气象服务的个性化需求,从而进一步提升气象服务内涵,激发公共气象服务活力。而要实现上述目标,高效、稳定的数据产品支撑系统设计和实现就显得尤其重要。

1 系统设计思路

山东省气象部门建设公共气象服务数据产品支撑系统主要是为了能在较短时间内、较低的投入下,有效提升公共气象服务部门在气象服务技术、数据、产品三个方面的研发和应用支撑能力,实现技术可靠、数据标准、产品模块化。系统设计还要充分利用当前社会资源,通过借助公有云平台成熟的软硬件系统、完善的网络资源优势,快速搭建支撑系统。同时要充分满足社会对气象服务不断增加的需求,将数据与形式有机融合,改变过去“以文本预报代替专业服务”的模式。数据支撑系统架构设计注重开放性和拓展性,不断提高数据共享能力,通过设定一定的授权机制和监管制度,在遵守服务约定的前提下,让那些授权部门或用户通过公有云发布的API方式获取丰富的气象数据和产品。

2 系统架构及主要技术

2.1 系统架构

系统整体架构(见图1)借鉴分层架构设计,自下而上分为5个逻辑层,分别为:基础数据层、云数据层、接口层、产品层、应用层。基础数据层硬件部署在山东省气象局机房,云数据层、接口层和产品层部署在公有云平台上,应用层则根据具体需要部署在本地化系统平台中。各层次之间松散耦合,资源复用率高,从而降低开发维护成本,提高了开发的综合效率。

基础数据层:负责与CIMISS系统对接,主要通过MUSIC接口获取系统所需的地面实况观测数据;负责从省局业务内网获取雷达、卫星云图数据、常规文本预报产品;负责通过虚拟化计算环境进行原始数据的验证、加工和矢量图片生成处理等工作;负责利用Rsnyc技术,将基础数据层的数据产品同步到公有云平台。

图1 山东省公共气象服务数据产品支撑系统架构

云数据层:负责构建数据管理平台,设计数据库表结构和作业任务,设计原始数据的存储路径;负责设计数据处理调度机制自动完成原始数据的入库或文件分类存储工作,定期删除超时数据或文件,保证数据库和磁盘空间伸缩性。

接口层:作为核心数据引擎层,负责设计开发、管理数据API程序,并设计有效的授权机制,鉴别用户访问API的权限;负责为产品层通过REST的调用模式提供以JSON格式为主的数据。

产品层:负责将接口层获取的数据包装加工,嵌入到地图(WEBGIS)、曲线、图表或文字中,不断开发表现形式多样的模块化气象服务产品。对于个别不适合开发数据API的产品,也可以通过产品层直接调用云数据层的数据;负责统计分析用户使用产品的习惯,科学规划产品设计,调整产品布局。

应用层:负责开发设计用于客户端展示的各类应用。无论是APP、WEB网站、大屏幕显示还是微信、微博都以后台数据和产品作为支撑,根据用户需求,灵活配置所要展示的模块化产品,从而做到以人为本,按需设计。

2.2 开发环境

Linux操作系统具有开放、稳定、多用户多任务等优势特点,十分适合公共气象服务系统的开发和运行支撑。而且Linux支撑了丰富的应用软件,比如Apache、SSH、MySQL、PHP、Fortran77等,通过个性化的配置,能较快地搭建起具有一定服务规模的服务器运行环境。鉴于此,整个支撑系统除了应用层外,其他各个逻辑层的开发环境都是基于Linux操作系统,然后再根据具体开发内容的要求,增加相关模块或数据库软件。而应用层主要考虑开发者在可视化界面下便于调试客户端程序,而选择了Windows操作系统以及Eclipse等开发工具(表1)。

表1 各逻辑层次主要开发环境

2.3 关键技术

2.3.1 API技术 山东省公共气象服务数据产品支撑系统中接口层的API正是本着开放、共享、标准化的原则设计管理API各个组件(表2)。经过授权的开发者,通过HTTP方式调用API,获取需要的数据(主要为JSON格式)。开发者不必考虑这些气象数据来源于何处,也不用考虑平台兼容性,获取的数据从格式到内容都保持了高度的一致性和标准化,从而大大降低了开发成本,提高了数据利用效率。

在设计API过程中,注重将API参数细化(表3),零碎的数据更易于重组,便于产品层组合出更多的应用产品,也给前端产品开发者创造了更大的空间。下面以API-1为例,说明用户如何调用API。

表2 山东省公共气象服务数据产品支撑系统开发的API列表

调用URL:http://hostname/api/surface/getsurfelebytime/?times=20190523031500& elements=station_id_c,tem,prs&staIds=54823&key=系统分配给用户的key值。

表3 API-1参数表

2.3.2 WEB前端技术 有了数据基础,支撑系统还需要丰富的产品来应用,本着“移动优先”的原则,在支撑系统设计开发中,重点应用了以下技术。

(1)HTML5+CSS3+jQuery+组件

采用HTML5主要是为桌面端和移动端带来无缝衔接的丰富内容,利用CSS3来定义样式使得页面效果更加生动整洁,利用jQuery库增加页面的交互效果,通过调用高德、百度地图的JS API、Highcharts API等组件,更使得开发的气象服务产品形式灵活多样。

(2)Bootstrap框架

Bootstrap是基于HTML5和CSS3开发的开源成熟框架,其更强大的作用在于开发响应式布局、移动优先的 WEB应用。利用该框架,支撑系统产品层中的各类形式的气象服务产品得以轻松地部署移植在各个应用场合中,大大提高了开发效率。

(3)Hybrid APP

Hybrid APP[9]兼具原生代码良好的用户交互体验和HTML5跨平台开发WEB的优势,除了必要的APP框架和信息获取通过Java编程外,其他模块多采用HTML5页面完成。Hybrid APP还可以根据用户关注和访问统计,随时增减产品或修改界面,而这些后台的升级操作,用户无须重新安装APP,便可感受到产品的不断更新。

3 应用概况

目前,山东省公共气象服务数据产品支撑系统建设已经初具规模,高度自动化处理技术的业务化也使得公共气象服务业务流程得到优化。结合用户需求,在公有云平台上为海量气象数据开发的数据API接口已有20多个,为公共气象服务提供稳定、快速的数据访问途径;开发的基于WEB的模块化产品已有30多个,被灵活地嵌入APP、网站、微信、大屏幕等服务媒介上,完全自主研发的基于Android的“齐鲁风云” APP,集约化实现了省、市、县三级应用,在2017—2019年山东省汛期气象服务、重大活动保障工作中发挥了重要的辅助决策作用。尤其在“温比亚”、“利奇马”台风影响山东期间,该APP凭借数据及时、产品丰富、响应快速的优势,成为了各级气象部门服务当地政府的掌上移动气象台,服务品牌效应明显。青岛、威海、烟台、聊城、东营、莱芜、青州等多个市县气象局,浪潮集团大数据中心,山东高速集团,威海消防等部门也通过支撑系统构建了本地化的服务产品和应用平台。以上实践证明,该系统的建设达到了公共气象服务集约化、易扩展的发展目标,系统的数据、产品支撑能力也得到了具体体现。

4 系统特点

(1)充分利用公有云,实现公共气象服务数据共享与利用。

考虑到公共气象服务的目标用户群,整个系统平台大部分内容构建在公有云平台上,通过租赁云主机、宽带,部署安装服务系统,实现了公共气象服务的数据存储、信息共享、接口调用、组件开发等多个功能需求,并通过不断优化公有云服务器访问策略,使得每个API的响应时间控制在0.5 s之内。

(2)重视各类气象服务数据的完整性、有效性,降低服务差错。

系统服务以“数据为王”,公共气象服务更是要求气象信息“及时、可靠、准确”,为此系统对大量的气象服务数据做了完整性、有效性验证,针对气温、降水、风力等敏感要素设计了有效的数据差错修复机制,最大程度降低平台服务差错率。

(3)多种产品模块高度复用,根据需要可灵活移植。

系统努力打造“产品超市”的概念,开发的API及产品模块注重细粒度化,目的是便于用户在不同的操作系统、不同的客户端高度复用移植、灵活组合,从而设计出更加个性化、精细化的应用产品。

(4)统一标准,开放性强,易于扩展和管理。

“开放、共享”是今后公共气象服务必须面对的现实要求。为此系统在设计的每一个环节都注重标准的统一,从数据存储的格式、路径、命名规范到API的授权、验证、错误码的规范等多个细节做到明确定义,便于今后新增产品的扩展和规范管理,同时有助于系统在安全可靠的前提下尽可能地做到充分的开放与共享。

5 结语

公共气象服务数据产品支撑系统有效解决了气象服务过程中主要存在的瓶颈难题,为公共气象服务向更广阔、更深层次的发展奠定了技术基础。整个支撑系统完全自主开发,降低了开发成本。支撑系统的应用有效地提升了公共气象服务的综合能力和总体水平。下一步将围绕该系统核心架构,重点在公有云数据安全、大数据技术应用、多部门多行业衔接等方面加大创新设计,为公共气象服务提供强大的数据支撑。

猜你喜欢
气象产品服务
气象树
《内蒙古气象》征稿简则
服务在身边 健康每一天
服务在身边 健康每一天
服务在身边 健康每一天
大国气象
美丽的气象奇观
招行30年:从“满意服务”到“感动服务”
2015产品LOOKBOOK直击
新产品