发布时间:2020-09-26所属分类:计算机职称论文浏览:1次
摘 要: 摘要: 为提升气象应急预警信息发布能力,丰富气象信息服务手段。使用物联网技术、Java 语言、Spring Boot 微服务框架和树莓派开源硬件研制了气象智能机顶盒服务系统。系统通过研发一个能够连接互联网并利用高清显示设备作为展示端的智能机顶盒,实现智能网格
摘要: 为提升气象应急预警信息发布能力,丰富气象信息服务手段。使用物联网技术、Java 语言、Spring Boot 微服务框架和树莓派开源硬件研制了气象智能机顶盒服务系统。系统通过研发一个能够连接互联网并利用高清显示设备作为展示端的智能机顶盒,实现智能网格预报产品和应急预警信息基于位置的精准发布。该系统是集气象信息处理、分发和接收为一体的气象多媒体信息服务系统,用户可通过该系统实现交互式获取精细化气象服务。介绍了系统的架构设计和软件设计,并详细阐述了系统开发过程中系统安全性和业务可靠性等关键问题的解决。
关键词: 物联网; 机顶盒; 微服务框架; 智能网格预报; 树莓派; 开源硬件
0 引 言
物联网被称为继计算机、互联网后,信息产业的第三次浪潮[1]。物联网技术在气象行业中主要应用于气象数据采集和气象服务发布领域,对于提升气象行业的信息化、智能化水平有着非常重要的意义。
智能机顶盒是指内置 CPU 处理器和操作系统,用户可以方便地获取定制化应用软件的机顶盒终端[2]。智能机顶盒在配置上具有硬件开源、功能模块化、网络接口丰富、二次开发容易等特点。智能机顶盒能在内容表现形式、互动性和扩展性等方面给用户带来全新的体验[3]。
智能网格预报利用云计算、互联网 + 、人工智能等现代信息技术和气象大数据应用技术来改造传统预报业务,从而实现业务技术客观智能,业务流程扁平高效,滚动制作、实时同步、协同一致的网格预报制作[4]。这种统一数据源的 “一张网”网格预报业务是中国气象部门未来业务发展方向。这种网格空间分辨率 5 km,逐 3 h 发布的未来 10 d 预报产品是实现基于位置的精细化气象服务的基础[5]。
我国自然灾害多发、频发,是世界上受自然灾害影响最为严重的国家之一,自然灾害严重危害了人民群众生命财产安全和生产生活秩序。气象信息的准确、及时发布是降低自然灾害对社会公众造成损失的基础条件,也是气象部门面临的重要而且急迫的任务[6]。近年来国内气象部门在利用新技术进行预警信息分发方面做了许多尝试[7-9]。周捷等研究了基于多媒体技术的气象灾害预警信息发布系统[10]; 陈往溪等通过采用无线广域广播系统和预警电话机组建高集成的突发灾害预警平台[11]; 李娜等研究了短信小区广播技术在解决高时效信息发布的应用问题[12]。
目前宁波气象部门已经建设了一套涵盖短信、电视、电话、广播、网络、显示屏等多渠道的突发预警信息发布平台。该平台渠道丰富、用户覆盖面广,但仍存在一些不足: 1) 信息的分发高度依赖服务提供商,发布渠道烟囱式,发布时效性不高; 2) 信息分发的智能化程度不高,难以做到靶向式发布,无法支撑基于位置的精细化气象服务需求; 3) 信息单向发布,缺乏交互式反馈。
本文介绍的气象智能机顶盒服务系统,是依托宁波气象部门现有的业务环境,在网格预报预警产品发布技术和物联网技术的基础上研发的智能化、扁平化、可视化的多媒体气象信息发布系统。
1 架构与功能设计
1. 1 环境条件
气象智能机顶盒设备可以通过物联网通信技术和服务端进行通讯。设备硬件以当前迅速兴起的开源硬件为基础,其中主要用到的是树莓派微电脑系统。它具有与计算机相同的功能和接口,具有多媒体处理能力,具有体积小巧、可 扩 展 性 强 等 特 点。使 用 通 用 端 口 ( GPIO) 来控制外部设备,通过针脚赋值高低电平以实现对外部设备的交互。硬件功能见图 1。
系统采用 Java 语言开发,开发环境为 Eclipse 3. 8、Spring Boot 1. 5. 3、VUE 2. 0、NODE JS 7. 9. 0 ,运行环境为 UBUNTU LIUNX 14. 04。
1. 2 系统架构设计
系统通过研发一款气象智能机顶盒客户端设备并以此为基础建立气象信息发布系统,系统不仅能以文字、图片、图表、声音和高清视频等多媒体形式将基于位置的天气实况、天气预报、应急预警信息快速发布到客户端,并通过高清晰度多媒体接口( High Definition Multimedia Interface,HDMI) 展示到 4K 高清电视、触摸屏、户外 LED 大屏等展示设备上。而且能通过无线物联网络技术与周边的传感器设备通讯,实现数据采集功能。
系统架构图如图 2 所示,系统由服务端和客户端两部分组成。服务端包括数据中心、数据接口服务和系统管理平台。客户端由气象智能机顶盒、高清显示设备组成,机顶盒与显示设备通过 HDMI 接口连接。
系统为了提升系统性能,提高可靠性。系统改进了服务器端架构,通过引入微服务架构 ( Microservices Architecture Pattern) 技术优化服务效率。系统主要由以下 3 部分组成:
1) 数据接口
服务负责响应客户端设备发起的数据请求,通过 WebService 数据接口的方式实现数据和指令的交互。
2) 系统管理平台
负责管理客户端设备以安全的通讯方式接入系统,实现用户管理和权限管理,以微服务架构的方式发布气象信息。
3) 客户端设备
负责将来自服务端的数据展示在显示设备上,通过用户交互方式收集服务反馈并上传服务端。
这种设计有如下优点:
首先服务端采用微服务架构,微服务是去中心化的分布式软件架构,它可以将大型的、复杂的、长期运行的应用程序构建为一组相互配合的服务,提高开发效率; 服务之间可以独立部署,微服务架构让持续部署成为可能; 每个服务可以各自进行扩展; 每个服务可以根据自身的需要部署到合适的硬件上,提高了系统可靠性和灵活度。
其次使用数据接口服务来实现跨平台的数据交换,数据接口是目前比较流行的一种互联网软件架构。它结构清晰、符合标准、扩展方便,这种机制可以实现松耦合、应用扩展性和异构系统间的互操作性。
再次数据计算与产品生成任务交给分布式的管理平台。客户端不需要大量的计算处理与存储需 求,降低了客户端的实现难度和硬件要求。
2 软件系统设计
软件系统采用了基于 B /S( Browser/Server) 架构的 3 层设计模式。业务层采用 Web 服务技术完成与数据层的交互,表现层使用 JavaScript 技术提高人机交互体验,而数据层由数据接口和消息队列实现松耦合。在系统实现过程中,采用了多种开源软件包,如 Tomcat、Apache、ActiveMQ 等。
2. 1 服务端软件设计
服务端软件负责将精细化观测、预报、预警数据以 RESTful Web Services 数据接口的形式发布到客户端。通过服务端软件,系统管理员能实现对客户端设备和服务内容的高效管理。实现了通过数据接口与客户端交换信息和通过消息队列实时推送应急信息到客户端的功能。软件流程图见图 3,服务端软件主要由以下 5 个模块组成。
1) 消息队列模块
负责服务端与客户端之间的高效通信,实现数据和指令的交互。采用消息队列技术来解决异构系统间的解耦与异步通信问题,降低了开发难度,并提供了功能上的扩展性。
2) 设备管理模块
具有客户端设备的定位功能,能确保服务的靶向性发布。并以 GIS ( Geographic Information System) 的形式为用户提供终端管理功能。能够实现客户端内容展示策略配置的功能,当配置发生变化时,能够及时存储并发送内容展示策略到客户端。此外还具备客户端设备访问权限、版本管理等设备配置功能。
3) 数据加工模块
不同的展示内容需要不同的内容帧来支撑,数据加工模块负责内容帧的生成。模块需要定时从数据接口获取数据并按预设的规则生成内容帧,并按帧/时间的格式记录到数据中心。
4) 数据服务模块
以 Web Services 数据接口的形式与客户端通讯,提供调用数据中心的内容帧来响应来自客户端的请求,以及将客户端上传的数据存储到数据中心的功能。该模块实现对接口的标准化管理,向管理人员提供包括接口管理、权限管理等功能。
5) 应急信息发布模块
模块以网页提交的方式提供手动发布应急信息的功能。用户可以在 GIS 地图上圈选产品发布的范围,发布的产品根据需要可以存储到数据中心以供数据服务模块调用,也可以通过消息队列直接推送到客户端。
2. 2 客户端软件设计
终端软件负责定时获取来自服务端的内容帧,并根据管理平台定义的内容展示策略将各种内容帧以文字、图片、音频、视频以浏览器的形式输出到显示器,并实现软件自动管理。软件流程图见图 4。
客户端和服务端软件通过建立消息队列,实现客户端订阅服务端广播的显示事件和升级事件的功能。当显示事件到达时,客户端软件将调用命令以全屏模式( kiosk) 打开一个网页浏览器来展示内容帧。
每个显示事件代表需要展示的一个内容帧,帧包括显示的界面元素配置、展示内容组织和展示时长等信息。帧数据优先从本地缓存文件中获取,如果不存在则从服务端获取。如果网络故障则使用本地存储的数据。当展示时间超过定义时长,状态监测机制自动创建下一个展示事件并发送给浏览器。视频播放帧由于视频的时长不定且有可能被用户暂停或者快进,因此状态监测机制通过捕捉视频结束事件,并以该事件来触发下一个显示事件的创建。
相关期刊推荐:《浙江气象》Journal of Zhejiang Meteorology(季刊)曾用刊名:浙江气象科技,1979年创刊,以促进我省气象事业的蓬勃发展为宗旨,经学术为主,兼顾气象事业方方面面,是融知识性、实用性和可读性于一体的季刊。可供气象、农林、水文、地理、民航、海洋、环保、地质等部门的科技人员阅读,亦可供有关院校师生参考。
软件升级也是通过事件来实现,升级事件中含有升级包的 URL 地址,当收到升级事件推送后,客户端将根据 URL 地址下载并暂存升级包,然后触发客户端软件重启,客户端软件的启动过程中如果识别到存在新的升级包,将执行自动升级指令。——论文作者:钱峥1 朱纯阳2 张晶晶3 林宏伟4
SCISSCIAHCI