邱忠洋 蒋骏 陈宏波 姚丽娜
摘要:为解决气象信息及时高效地以网格化形式精准靶向发布给决策者或普通用户这一实际需求,常州市气象局依托局内数据共享系统,结合常州市突发事件预警信息平台、常州市市域社会治理现代化联动指挥平台,设计研发了气象灾害防御网格化治理平台。该平台可将预警、预报、重要通知、气象防灾减灾等信息高效精准地发布至网格员使用的PC端或APP端,再由网格员扩散。技术上,气象灾害防御网格化治理平台所使用的数据共享系统引入了Token令牌管理机制,软件设计上采用了B/S数据处理架构,数据库依托Oracle,数据调取采用了Mybatis框架提供API服务。实际使用效果表明,系统灵活高效,基本满足服务的需求。
关键词:气象灾害;网格治理;Token令牌;B/S架构;Oracle数据库;API服务;Mybatis框架;气象灾害防御网格治理平台
中图分类号:TP399 文献标识码:A
文章编号:0439-8114(2023)12-0188-07
DOI:10.14088/j.cnki.issn0439-8114.2023.12.033 开放科学(资源服务)标识码(OSID):
Design and implementation of a grid governance platform for meteorological disaster prevention based on a data sharing system
QIU Zhong-yang,JIANG Jun,CHEN Hong-bo,YAO Li-na
(Changzhou Meteorological Bureau, Changzhou 213022,Jiangsu,China)
Abstract: In order to address the practical need for timely and efficient targeted release of meteorological information to decision maker or ordinary users in a grid format, the Changzhou Meteorological Bureau, relying on the internal data sharing system, combined with the Changzhou emergency warning information platform and the Changzhou municipal social governance modernization linkage command platform, had designed and developed the grid governance platform for meteorological disaster prevention.This platform could efficiently and accurately publish information such as warnings, forecasts, important notifications, meteorological disaster prevention and reduction to the PC or APP used by grid personnel, and then spread it by grid personnel. Technically, the data sharing system used in the grid governance platform for meteorological disaster prevention introduced a Token token management mechanism,the software design adopted a B/S data processing architecture, the database relied on Oracle, and the data retrieval used the Mybatis framework to provide API services.The actual use results indicated that the system was flexible and efficient, and basically met the service requirements.
Key words: meteorological disaster; grid governance; Token token; B/S architecture; Oracle database; API services; Mybatis framework; grid governance platform for meteorological disaster prevention
近年來,气象灾害呈多发频发态势,全世界各国政府普遍意识到防御气象灾害的重要性和迫切性。美国、日本在提高气象信息的传播效率、防灾减灾方面工作启动较早。美国是气象灾害频发国家,其防灾减灾的工作理念是软件重于硬件,地方重于中央,很早就提出了气象灾害网格化治理方案。在现代化预警方面建立了完备的体系,通过Internet、电视、广播等媒介实时公布气象灾害信息,指导公众防灾减灾。美国的预警系统处于世界领先地位,能够提前19 min预报,准确率达78%,预警传播高效。日本因其特殊地理位置及环境,台风、暴雨等自然灾害较多,影响较大。日本建立了整套防灾法律体系,明确国家、都道府县、市街村、公民都有防灾责任,建立了有效的网格化防灾行政体制。中国是世界上气象灾害严重的国家之一,70%的自然灾害是由气象灾害造成的,其造成的损失约占国内生产总值的1%以上,受灾害影响人口超过4亿人。中国历来重视气象灾害防御,但与先进国家相比,还有一定的差距。上海市、苏州市、杭州市等地均提出气象防灾减灾网格化治理方案设想并相继实施,本研究依托政府支持,强化面向网格员的气象灾害预警信息指导,全面打通部门与部门、部门与基层的信息通路。
随着移动互联网技术的飞速发展,信息服务不断普及并全方位涉及到各领域,作为社会服务的重要组成部分,气象部门拥有气象监测、预报、服务等职能。在做好气象预报的同时,也有责任和义务为特殊行业提供气象资料服务。大到国家,依托国家发展和改革委员会批复的“新一代天气雷达共享平台”项目,中国气象局建设了全国综合气象信息共享平台(CIMISS),集数据收集与分发、质量控制与产品生成、存储管理、共享服务、业务监控于一体的气象信息共享系统[1,2]。小到地级市,如何提供相关部门所需的气象数据信息,成为常州市气象信息部门首要解决的问题。按照以往的规定,新建的业务系统都需要单独为其建立数据库,数据的处理、更新、存储、分发过程复杂,效率低下,重复工作较多,推广也比较困难。基于此,常州市在“十三五”气象发展规划中将共享基础数据库建设作为气象信息化建设的重要一环。常州市气象局已经形成了多元数据管理的基础共享数据库,解决了数据出口来源不一致、标准不统一的问题,为气象灾害防御网格化治理平台的建设提供了业务和技术基础。极端天气灾害频发、重发引起常州市政府的高度关注。常州市也需为相关单位和决策机构提供及时、高效的气象数据信息,方便政府决策以降低因灾害带来的损失。多种灾害突发事件预警信息系统是突发事件的“消息树”,其快速传播发布事关人民群众生命财产安全、事关地方经济社会发展。坚持“人民至上、生命至上”的原则,把担当实干挺在前面,将气象灾害预警信息传播、气象防灾减灾宣传等气象防灾减灾工作有序纳入基层网格员服务事项清单,确保预警信息第一时间到村到户到人,自觉帮助群众解决“预警信息传播最后一公里”的难题,切实为群众办实事成为当前气象部门首要解决的问题。同时,在落实《江苏省城乡网格化服务管理办法》中还要进一步推动气象信息进网格,加强工作联动,建立健全气象防灾减灾融入基层网格化社会治理体系的工作机制。加快推进市域社会治理现代化联动指挥平台功能拓展,开发预警信息传播、气象防灾减灾宣传、气象灾情收集上报等模块,将常州市突发事件预警信息平台与市域社会治理现代化联动指挥平台有机对接,提升气象防灾减灾融入基层网格化社会治理体系的信息化水平。
1 系统相关技术
1.1 共享基础数据库
常州市气象局信息部门于2015年开始建设基础数据库,起初是支撑气象预报业务,后经过几年不断补充完善,数据库逐渐成熟。数据库选择了Oracle作为数据存储工具,应用数据包括实况监测、天气预报、气象预警、其他4种类型。目前依托基础数据库已经对多家单位提供了数据接口服务,其中不乏特殊需求的定制化开发。
1.1.1 Oracle数据库 Oracle数据库具备常规的数据库操作功能,同时还自带数据库开发工具和应用客户端。作为对象关系数据库的代表,Oralce具有可存储内容形式多样、可拓展性强、结构化查询共性等特点[3]。在平台建设过程中对数据库提出了明确的要求,一是需要数据库具备强大存储能力,数据吞吐量要求較高,二是数据需要支持除本单位业务系统外的多家单位业务系统,由于各单位使用的业务系统、操作系统不统一,这就需要数据库具备强大的兼容性。基于上述原因系统选择Oracle数据库作为后台数据库。气象灾害防御网格治理平台数据库包括预警预报表、卫星雷达图、用户信息表、网格员信息表、Token管理表、资料清单详情表等,部分结构如图1所示。
1.1.2 共享库的使用 对共享库的使用流程是从数据库中获取基础数据,然后形成接口,最后提供服务。基础数据存储在基础共享数据库中以元数据形式记录,包括实况监测、天气预报、气象预警、其他,具体来看包括基本站信息(分钟级的云、雨量、气压、温度、湿度、风)、加密站信息、雷达、卫星资料、大气成分(PM2.5、PM10)等。数据接口分为通用接口和专用接口2种类型,通用接口包括基础的站点信息、温压湿封监测、预报预警信息、卫星雷达数据、大气成分等,专用接口包括特殊行业所需要的定制化信息,如给定时间的雨量信息、气温信息、云信息、给定站点的风信息等,这些信息都需要通过定制化开发获得。对外服务方面,服务单位主要是指通过向常州市气象局申请获取气象信息的单位,已经达20余家,包括应急局、海事局、水利局、污水管理处、自然资源局、政法委、生态环境局、渔管委等。对应的服务单位既有通用接口需求,也有定制化需要。
1.2 系统后端架构构建
1.2.1 Spring Boot后端架构构建 气象灾害防御网格治理平台后端主要是基于Java语言的maven构建的Spring Boot,开发工具为idea,服务器使用的是轻量级阿里云应用服务器,气象灾害防御网格治理平台的数据库依赖spring-jdbc,spring-boot-starter-jdbc驱动,触发数据库访问相关的自动配置行为。考虑到气象灾害防御网格治理平台使用的Oracle是关系型数据库,用于存放持久化数据,将数据存储在硬盘中读取速度较慢,因此引入了redis缓存技术,redis是NoSQL(非关系型数据库),也是缓存数据库,可将数据存储在缓存中,缓存读取的速度较快,能够提高小程序客户端获取数据的运行效率,但是数据在时间保存上有所限制。小程序客户端同步使用了redis,取长补短。
1.2.2 Token令牌管理机制 气象灾害防御网格治理平台使用了共享数据库提供的数据接口,在供给过程中为保障数据安全采用Token令牌管理机制。传统基于服务器的验证方式都是通过在服务端存储用户的登录信息来辨别身份。这种方式一般通过存储 session 来完成,可放在内存或磁盘上。但是随着Web、应用程序以及移动端的兴起,这种验证方式逐渐暴露出问题,尤其是在可扩展性方面[4]。Token的好处在于支持跨域,无状态访问,具备去耦性能,在网络传输过程中性能更好,更加适合移动应用,因此对于移动小程序平台选择基于Token验证方式保障数据传输的安全,基于Token的身份验证流程为先由小程序客户端使用用户名、密码请求登录,气象灾害防御网格治理平台服务端收到请求,验证用户名、密码;验证成功后,网格治理服务端会签发1个Token,再把该Token发送给小程序客户端,小程序客户端收到Token后将其存储起来,小程序客户端每次向服务端请求资源的时候需要带着服务端签发的Token;气象灾害防御网格治理平台服务端收到请求,去验证客户端请求中的Token,如果验证成功,就向小程序客户端返回请求的数据。Token身份验证流程如图2所示。
1.2.3 网格治理小程序开发技术 微信小程序基于微信平台运行,是一种新的开放式应用,实现了触手可及、用完即走理念。这是一种原Serverless云服务,客户端无需配置服务器,代码程序等运行皆由云函数、云数据库、云存储协作完成。通过腾讯提供的微信公众平台,下载微信开发者工具即可进行小程序的研发。通过网格治理小程序与网格治理公众号的关联,可以实现功能互补,打造更具个性的移动平台。用户通过扫二维码的方式搜索小程序即可打开应用,不需要安装与卸载,并且解决了在微信中浏览网页卡顿等问题,提供了更加接近原生應用的体验,能够快速加载,用户使用也更加流畅。
1.2.4 小程序与后端通信 在完成小程序开发之后,需要小程序端发起网络请求。主要调用API即wx.requset,完成小程序端与Java后端接口之间的通信,因Spring Boot具有快速开发、便捷部署特性,项目采用了RESTful API。由于接口较多,细节复杂项目使用swagger自动生成相应的接口文档。Swagger可以轻松地整合到Spring Boot中,并与Spring MVC程序配合生成RESTful API文档。项目中由于存在众多接口且不同端的工作进度不一样,因此使用Postman进行接口测试。做接口测试的优势在于节约时间、缩短项目成本、提高工作效率、提高系统的稳定性。
1.2.5 Mybatis框架提供API服务 Mybatis架构可以降低气象灾害防御网格治理平台数据操作开发的复杂度,提高服务稳定性,实现数据接口统一管理,对入参、出参进行统一规范,通过配置实现数据操作。通过约定方式实现开发人员只需要配置Mapper.xml就可以提取所需数据[5]。后台Mybatis框架分为3层,一是小程序访问API接口,通过Token获取接口调用信息,进行接口权限验证,向后台的body传递操作参数信息,映射到Map中,作为参数传入,最后通过Mapper配置节点进入下一个流程。二是数据处理层,小程序在提交申请后,进行数据库操作,将返回的结果根据配置进行映射,序列化返回结果。三是基础支撑层,负责API接口层、数据处理层的基础数据支撑。气象灾害防御网格治理平台需要业务化运行,涉及对外服务的多家单位,考虑到对外服务接口使用的可扩展性、高效性、兼容性、通用性,选择Mybatis作为系统开发的ORM框架。Mybatis框架结构如图3所示。
1.3 开发语言及相关环境
气象灾害防御网格治理平台采用Java语言开发以及J2EE体系架构,Java语言是由Sun microsystems公司推出的程序设计语言。Java是面向对象、安全、跨平台、强大稳健、流行的程序设计语言。
J2EE体系架构则是将展示逻辑、业务逻辑与数据逻辑分离,充分利用操作系统的并行能力提高网络计算能力。采用分层的设计理念,结合框架式开发降低软件研发难度,降低其耦合度,增强软件的可扩展性。本研究采用Spring+Struts+Mybatis架构及分层体系结构,前端采用html5\JS\JSON等页面设计及返回技术,构建安全、稳定、高效、简单实用的中心服务端应用[6]。
2 系统设计与实现
系统设计主要包括系统的研究实践、业务系统建设、技术架构设计、Token分配数据流以及系统软件设计,其最终目的是让系统能够实现业务正常运行。实践证明设计方案可行、稳定。
2.1 业务系统研究实践
常州市作为网格化治理试点城市,共设置网格6 257个,其中基础网格4 962个、专属网格1 295个;全市共配备专职网格员3 420名、兼职网格员9 660名,实现了网格无缝隙、无重叠。按照基层社会治理“一张网”要求统筹力量、整合资源、全面铺设。作为防范化解各类风险全要素网格治理参与单位,常州市气象局积极将气象预警、防灾减灾各项重要信息推送至基层。
随着移动互联5G时代的到来,信息传播发生了重大变革,依托微信获取信息较多,常州市建立了13 080个全要素信息发布网格微信群,微信群以网格为单位,汇聚了同一居住区域或工作区域的居民,形成了可实现信息共享的微社群。微社群对气象信息的上传下达、多次传播和舆论引导起到了积极作用。微社群中的居民在线反馈信息,能够获得24 h在线服务,网格员可以通过气象灾害防御网格治理平台与气象部门进行信息互动。气象预警信息传播被纳入网格员工作清单,落实经过发布、传播和反馈3个环节。信息发布选定网格范围,定向发布,网格员依据工作职责,利用微社群公告栏、电子屏等途径进行传播。通过对接气象灾害防御网格治理平台,实现API自动推送至网格员的APP或微社群,这种方式能够实现一键式发布,3 min覆盖13 080个微信群400万名居民,精准靶向发布打通信息传播的最后一公里。居民通过微信群反馈信息,网格员通过气象灾害防御网格治理平台反馈信息。
2.2 业务系统建设
气象灾害防御网格治理平台依托于常州市社会治理现代化联动指挥平台,对接常州市突发事件预警信息平台,主要包含气象灾害预警信息、气象灾情处置、气象防灾减灾知识宣传和重要通知4个功能模块,并由气象部门PC网页端、网格员小程序端2部分组成,市、县级气象部门按管理区域分别配置平台账号。气象灾害防御网格治理平台具备气象灾害预警信息向全市网格员的APP自动推送功能,特定预警信息、气象防灾减灾知识和重要通知以人工方式不定时进行推送,网格员可通过平台以图文形式及时向气象部门报送气象灾情信息,并与值班人员进行互动交流。预警信息、气象防灾减灾知识和重要通知的推送基本实现了以县、乡镇为区域的精准靶向发布。平台从宏观角度分析,包括数据源、数据库及数据服务3个模块(图4)。
1)数据源。该模块主要任务在于统一数据源,将零散的数据资源整合到同一个数据库,目前集中处理的数据源包括CIMISS、CMACAST、省局数据库、自建数据库及外部共享数据等。
2)数据库。该模块主要是使用了Oracle共享数据库,对来源多、种类繁杂的气象数据进行自动采集、处理、分批入库。主要包括雷达图、卫星云图、自动站、大气成分、降水量、温度、湿度、气压、风、能见度等多种类型数据[7]。
3)数据服务。该模块主要展示共享基础数据库的服务和推送,优先将预警预报信息推送给网格员,然后由网格员将信息通过微信群或其他方式推送给居民。
2.3 技术架构设计
从系统设计角度分析,为方便对系统的操作和管理分级设计了菜单项,包括总菜单气象灾害防御,分级菜单包括气象预警信息、防灾减灾知识宣传、灾情处置以及重要通知,系统全局功能模块如图5所示。
1)气象预警信息。该模块设计了气象预警的录入、编辑、删除、查询功能。查詢条件可以依据所属社区、预警标题、数据来源以及创建时间和状态进行筛查。在气象预警信息模块中可以录入预警信息,完成录入后可以通过信息提示查看录入的预警信息以及对应网格员。
2)防灾减灾知识宣传。该模块用于防灾减灾知识宣传,具备新增、编辑、删除、查询功能,可进行防灾减灾知识的宣传。通过新增功能可以录入所属地区、标题、内容等信息。也可以对录入的信息进行删除。录入成功后在右下角会有信息提示,提示信息是否已经发布成功,显示内容包括所属地区、所属网格、灾情标题、时间以及网格员姓名。
3)灾情处置。该模块可以处理由网格员发布的气象灾害信息,气象部门对网格员发布的信息有审核的权利。同时,具备查询功能,可通过网格员姓名、灾情标题及上报时间进行灾情查询。
4)重要通知。该模块可以联合其他单位发布重要通知。该模块具备新增、编辑、删除及查询功能。目前已尝试发布防空警报试鸣公告。
2.4 气象灾害防御网格治理平台Token分配数据流
气象灾害防御网格治理平台Token的分配由开发单位提出申请,气象部门的管理机构进行审核分配,审核不通过则不分配账号,审核通过则分配相应的APP ID;在程序调用过程中,使用分配的账号自动生成匹配的Token数据串,在使用之前系统会对Token进行过滤、校验,若不成功将返回到账号申请阶段,若通过,则进入接口调用阶段;接口调用成功则反馈数据,数据反馈成功则进行数据解析、提取,前端调取数据,调用结束以后,Token将失效。若还需要调用接口,账号将在下一次调用中重新生成Token[8,9]。本系统在实际使用过程中考虑到有多家单位调用气象部门提供的接口,所以设置了Token方便区分,也方便后台管理且能够监测到外单位调用的频率、次数(图6)。
2.5 系统软件设计
气象灾害防御网格治理平台的模块包括网页(B/S)端用户、Mybatis后台服务及Oracle数据库。用户通过气象部门提供的账号登录后,成功获取新生成的Token。在接口的申请、审核通过后,提交操作请求,流程将通过POST/GET方式进入Mybatis后台服务模块,经过后台一系列的判断最终执行访问数据的请求,通过SQL命令调用数据库数据,数据库经过数据准备并反馈至Mybatis后台,数据以JSON方式传递。后台经过对JSON数据解析,将前端需要的数据进行页面展示。并将查询的结果以日志的方式存到数据库中[10,11]。软件数据流如图7所示。
3 系统应用与展示
软件展示方面包括系统网站信息展示、小程序推送的信息展示。气象灾害防御纳入网格管理,发生气象灾情后网格员及时到灾情发生地拍照、摄像,以图文形式及时向气象部门报送气象灾情信息。发生重大气象灾情时,网格员第一时间向气象部门初报信息,进一步了解灾情信息后再续报。在各级气象部门发布气象灾害预警信息后,网格员通过微信群等渠道快速发布,确保信息及时到户到人、到单位到人。此外,各级气象部门根据不同季节、当前主要灾害性天气类型定时或不定时向网格员发送灾害天气防御指南等气象防灾减灾知识,网格员接收到相关信息后,通过微信群等渠道发布,开展气象防灾减灾知识的宣传教育(图8、图9)。为加快推进市域社会治理现代化联动指挥平台功能拓展,开发了气象灾害预警信息、气象灾情、气象防灾减灾知识3个功能模块,提高了气象灾害防御有关工作网格化管理的信息化水平。实际使用表明,系统运行效果良好,基本达到初步的业务要求。
4 小结
在气象部门整体推进突发事件预警信息广覆盖工作过程中,常州市气象局按有职责、有设施、有制度、有名库的要求,从预警信息传播责任、体制、机制及网络等方面落实落细“基层气象灾害预警传播功能配置标准”,并提出了气象防灾减灾进网格的设想。通过常州市突发事件预警信息平台与市域社会治理现代化联动指挥平台对接,实现气象灾害预警信息向气象灾害防御网格治理平台、微信小程序的自动推送。气象灾害防御有关工作融入基层网格化社会治理体系,将气象灾害防御的触角延伸到社会治理的“最小单元”,进一步健全气象灾害防御组织体系,增强全社会对突发性气象灾害的应急处置能力、气象防灾减灾意识和公众自救互救能力。气象灾害防御网格治理平台应运而生,有效突破了气象信息发布效率低、覆盖面窄的瓶颈。本研究通过对共享基础数据库、Token令牌管理机制、Mybatis提供API服务的介绍,对气象灾害防御网格治理平台所涉及的核心技术进行说明,同时在业务系统架构、软件设计架构中做详细的解析。就目前而言系统处于应用阶段,还有很多不足和需要改进的地方。后期将研究重点放在海量数据处理和数据挖掘上,结合人工智能、大数据、云计算等将气象研究成果应用到气象服务中去。同时将全方位有重点地结合社会需求,让气象信息满足“行业+气象”的实际需要,让气象信息发挥更大的作用。
参考文献:
[1] 熊安元, 赵 芳, 王 颖, 等. 全国综合气象信息共享系统的设计与实现[J]. 应用气象学报, 2015, 26(4): 500-512.
[2] 中国气象局关于印发《气象信息化行动方案(2015—2016年)》的通知(气发〔2015〕60号文)[EB/OL]. https://www.gov.cn/xinwen/2015-08/25/content_2919718.htm,2015-08-25.
[3] 刘志成.Oracle数据库管理与应用实例教程[M]. 北京:人民邮电出版社, 2010.
[4] 林 琳.详细了解Cookie session token[J]. 计算机与网络,2019,45(22):38-40.
[5] 吕学婷,王仁波.基于Springmvc和Mybatis框架的门户网站及其内容管理系统的设计与实现[D].南昌:东华理工大学,2017.
[6] 蔡 明,陈永运. J2EE架构的研究与应用[J]. 计算机应用与软件,2004(1):42-43,128.
[7] 薛建军,周 杰,杜景林.改进型实时气象资料处理系统的设计与实现[J],计算机工程与设计,2012,33(4):1623-1628.
[8] 孙石阳,邱宗旭,刘东华,等.智能专业气象信息融合与服务系统建设初步研究[A]. 第27届中国气象学会年会雷电防护科学与技术发展分会场论文集[C].北京:中国气象学会,2010.
[9] 基于.Net Framework 4.0 Web API开发(4):ASP.NET Web APIs 基于令牌TOKEN验证的实现 [EB/OL].https://blog.csdn.net/weixin_34355715/article/details/86229348,2016-11-27.
[10] 李 浩.气象应急服务系统体系结构设计与实现[D].成都:电子科技大学,2013.
[11] 李代立,陈 榕. WebSocket在Web实时通信领域的研究[J].电脑知识与技术,2010,6(28):7923-7925,7935.