基于微信企业号的天镜·内蒙古移动端研究与实现
2022-04-18张彩云
张彩云
(内蒙古自治区气象信息中心,内蒙古 呼和浩特 010050)
1 背景
2018年内蒙古作为全国试点省之一,率先完成了天镜省级通用版本基础平台的部署工作,并开展了试运行。天镜·内蒙古按照全国气象业务监控信息管理标准规范,建成全流程、一体化、可视化、开放的气象综合业务实时监控系统,提高了集约化后的气象业务运行质量与效率;支持自治区级资源池、网络平台、安全系统、机房场地环境监控系统,实现了统一监控管理;以监控告警为核心,运维流程为驱动,打造了一个集数据采集、收集、加工处理、存储服务、分析应用、告警分析、运维流程、知识分享为一体的监控告警平台,对自治区、盟市、旗县(台站)观测数据时效进行监控和告警,协助维护人员进行传输和应用环节等节点的统一管理。通过天镜平台实现了对数据全流程、核心业务系统、基础设施资源池、网络、机房环境等的综合监视与集中告警。伴随移动互联网、手机App应用的迅速发展,移动客户端的使用数据量正在超越PC端,无论是工作还是生活都给用户带来了便携性和及时性。随着气象信息化、现代化的不断发展,目前内蒙古自治区气象局在移动应用端的开发已有一定的成果,如:为保障第十四届冬季运动会开发的“冬运会赛场气象信息”小程序,为全区观测业务及管理人员提供气象传输故障告警信息的“传输宝”,提供数据疑误信息的“数据宝”,提供气象观测设备运行监控信息的“观测宝”等。这些移动端应用均为全区各级气象工作者提供了及时、准确的信息,让各业务人员能够“随时、随地”的掌握数据及设备的实时运行情况。
目前各移动端独立运行,各自维护一套用户信息,而且用户需要分别关注,才能收到各应用的推送信息,为了减轻管理人员和业务人员的工作量,笔者研究通过微信企业号,实现多个移动端的整合。
2 研究目的
研究目的包括统一发布渠道、统一用户管理、统一应用管理、集中告警管理4个部分。
统一发布渠道:注册、认证后创建天镜·内蒙古移动端,建立天镜·内蒙古微信企业号统一发布渠道,实现对现有移动应用端的整合功能。管理人员通过网页扫码登录到微信企业号后台进行系统管理维护。
统一用户管理:分析研究天镜·内蒙古、传输宝、数据宝等各应用系统用户组织结构,按照部门组织架构、业务应用需求合理设计用户组织结构,整合目前各移动端用户,避免同时维护多套通讯录,并根据业务需求对用户进行权限设置,确保每个应用模块都能获取到正确的用户组及用户信息,根据订阅情况,实现将信息推送到相应业务人员查阅。
统一应用管理:完成传输宝、数据宝等应用的整合,通过天镜·内蒙古移动端实现数据传输故障信息、数据疑误信息的自动推送功能,同时为用户提供站点运行状况、数据传输、数据质量的实时在线查询功能,实现数据全流程监视。
集中告警管理:对天镜·内蒙古告警集中管理平台的数据全流程、核心业务系统、基础设施资源池、网络、机房环境等告警信息进行分析判断,接入天镜·内蒙古移动端,按照用户订阅需求统一发布。
3 系统设计
3.1 系统总体架构设计
移动端整体架构分为数据层、应用层、管理层、界面应用层。系统整体架构如图1所示。
图1 系统整体架构
数据层:以天镜·内蒙古、传输宝、数据宝等系统数据为数据支撑。
应用层:应用层为系统的核心部分,是直面所有用户的应用,具有良好的兼容性、可移植性,且运行稳定、维护方便。主要实现用户统一身份安全认证、设置管理权限分配、统计和通知信息推送等功能。它基于跨系统和数据库平台的中间软件构建,主要作用是为终端信息交互的实现提供全面的、可扩展的、维护便捷的、标准的项目支撑。包括天镜告警通知、传输宝、数据宝等应用,通过调取微信企业号API接口将告警推送到微信企业号对应的应用。
管理层:通过微信企业号后台管理系统对用户、应用、系统进行统一管理和配置。
界面应用层:微信企业号自建应用收到消息后按照用户订阅,分级分类推送到用户的微信应用。采用 HTML5 标准为基础设计开发,支持多种终端及微信平台的直接访问,实现界面组件化。包含多种智能终端应用系统,并支持 PC 系统以 WEB方式获取服务平台的信息。
3.2 流程设计
本研究从网络安全架构及系统复杂度方面进行考虑,具体流程设计如图2所示。
图2 流程设计
天镜·内蒙古接入流程:通过内网业务区的爬虫等技术获取各监控系统的告警信息以及天镜采集模块采集到的数据生成的告警信息存入天镜ES数据库,在互联网DMZ区部署的微信代理程序将微信企业号中的用户信息关联到天镜·内蒙古平台,通过告警关联配置告警推送规则,将告警信息按用户订阅需求推送到微信企业号移动端。
数据宝接入流程:通过内网业务区的疑误信息判断程序将MDOS产生的疑误信息推送到互联网DMZ区的数据库,对接微信企业号API接口将疑误告警信息对外发布到微信企业号。同时在互联网区部署的WEB界面程序将疑误信息以不同的统计方式展示到微信企业号移动端。
传输宝接入流程:通过内网业务区的传输故障判断程序根据天镜生成的节目表和收发DI判断的故障信息推送到互联网DMZ区的数据库,对接微信企业号API接口将故障信息对外发布到微信企业号。同时在互联网区部署的WEB界面程序将故障信息和中心站各台站运行状态数据以不同的统计方式展示到微信企业号移动端。
3.3 开发实现流程
①用户使用移动端App操作相关功能时会发起请求,微信企业号 App 将用户请求执行 URL重定向,企业微信后台执行静默验证操作,验证应用程序发送的 corpID 和 secret 参数是否正确。 ②如正确则获取有效Token,返回正确的code值,然后系统会话通过 HTTP跳转到信息采集后台的 URL。 ③Java 服务后台的 Servlet 处理程序会执行相关的微信企业号 API 调用,依据提交的正确code 进行会话处理。 ④若请求数据包基于 OAuth2 协议回调成功,返回 userid 等所需的机构基础数据。Java服务后台在获取机构基础数据后,执行信息化需求采集处理相关业务方法,处理业务逻辑,获取业务数据。⑤服务器后台数据处理完毕后,通过进一步的视图渲染处理,最终以 HTML5 的自适应版移动界面呈现处理结果。
3.4 用户组织架构设计
通过微信企业号的集成,把传输宝、数据宝、天镜·内蒙古的用户组织架构进行统一整合,实现各系统用户统一管理,避免同时维护多套用户信息。以传输宝的用户组织架构为基础进行整合,按部门进行设计,一级部门为内蒙古气象局,二级部门为盟市名称,三级部门为旗县局。每个人角色不同,可同时选择多个所在部门,根据不同业务的订阅需求,配置不同的部门信息,确保推送信息精确化。用户信息提供批量导入、导出功能。
图3 基于微信企业号应用开发实现流程
图4 用户架构
3.5 消息推送开发
微信企业号支持推送文本、图片、视频、文件、图文等类型的消息,本项目推送的内容为文本,请求方式采用POST方式请求,请求地址为:https://qyapi.weixin.qq.com/cgi-bin/message/send?access_token=ACCESS_TOKEN,其中ACCESS_TOKEN为接口凭证,在创建应用时自动创建。传输宝将判障程序将判障结果存入DMZ区数据库,根据故障台站号到数据库中获取该站所订阅的用户信息,构造出标准的请求内容,将要推送的告警信息发送给订阅人。请求消息体示例如下所示:
1.{
2. "touser" : "张敏|李强",
3. "toparty" : "44",
4. "msgtype" : "text",
5. "agentid" : 1,
6. "text" : {
7. "content" : "【自动土壤水分-考核】 n 北京时05日17:00 [1]满都拉气象站(53149)当前时次缺报,请及时填报故障。 href="http://www.tqonline.top/cts-pro-h5/fault/faultLinkedList?stationtypeid=181&data_type=E&detail_hour=2021-06-05+09%3A00%3A00&userId=iphoneNum
8. ",点击登记故障原因"
9. },
10. "safe":0,
11. "enable_id_trans": 0,
12. "enable_duplicate_check": 0,
13. "duplicate_check_interval": 1800
14. }
4 移动端展示界面设计
4.1 传输查询界面设计
能够查询当前时次各种资料类型的传输缺报情况。能够支持全部报类当前时次的缺报汇总展示;能够查看当前时次的缺报详情;查询时只显示当前用户订阅的站。
4.2 异常详查界面设计
查询近24 h各种资料的缺报情况,能够按资料类型过滤,查询时只显示当前用户订阅的站。按照资料大类组织目录结构,点击资料大类后,会显示相应的资料小类,最后点击进行查询。
4.3 故障填报界面设计
根据后台生成的故障信息填报故障原因,能够查看订阅的站点当前未填报的故障、历史未填写的故障和已经填写完成的故障。在故障填报时,仅需选择下拉框中的故障选项进行填写,提升移动端操作的实用性。
4.4 上线啦界面设计
通过“上线啦”模块实时查询区域站、无人站、交通站站点运行情况,在搜索框中输入站号后,查询结果分为两部分,上半部分设计显示当前站的基本信息,包括站号、站名、经纬度、心跳包时间、通信成功时间,通过以上基本信息的显示,便于业务和管理人员核实站点信息的正确性,以及站点在线运行情况。下半部分按观测时间顺序显示该站点观测要素数据内容,显示内容包括常规数据小时雨量、分钟雨量、气压、海平面气压、气温、最高气温、最低气温、湿度、风速、水汽压、露点温度、地面温度等要素,以及草面温度、能见度等其他要素数据。
4.5 数据质量查询界面设计
经过处理的数据可用率存储在DMZ区数据库中,移动端数据宝提供一定时间范围内数据质量查询功能,查询的条件可以选择按要素、按站点、按盟市查询,同时支撑图标格式显示当天数据可用率统计情况。
4.6 数据服务查询界面设计
气象数据服务系统在线统计的数据接口访问统计结果实时存入数据库中,通过设计界面在移动端可通过接口下载量、接口访问时长、接口访问量不同维度查询近1日、近1月各单位对接口访问情况。移动端展示的内容包括:单位名称、访问用户、接口名称、资料名称、下载量。
4.7 我的订阅查询界面设计
通过我的订阅菜单,每个用户都能按盟市旗县、台站不同维度的分组查询当前用户订阅的台站数量及站号,确保辖区内或关心的台站全部已订阅、疑误信息都能够收到,查询结果以树形结构展示。
5 效果展示
天镜·内蒙古移动端的首页包括传输宝、数据宝、告警通知3个移动端模块,传输宝提供数据传输的告警、查询信息,数据宝提供数据质控控制的相关告警、展示信息,告警通知推送各业务系统运行告警信息。通过通信录,可以查看全区各级部门人员信息。
图5 效果展示
6 结束语
笔者研究的基于微信企业号的天镜·内蒙古移动端,成功整合了传输宝、数据宝、天镜告警平台移动端的发布渠道,基于策略实现了告警信息管理,分类、分级、分站、分人推送各种告警信息,解决了用户需要关注多个应用才能接收各系统信息推送的问题。