發(fā)布時(shí)間:2020-09-26所屬分類:計(jì)算機(jī)職稱論文瀏覽:1次
摘 要: 摘要: 為提升氣象應(yīng)急預(yù)警信息發(fā)布能力,豐富氣象信息服務(wù)手段。使用物聯(lián)網(wǎng)技術(shù)、Java 語言、Spring Boot 微服務(wù)框架和樹莓派開源硬件研制了氣象智能機(jī)頂盒服務(wù)系統(tǒng)。系統(tǒng)通過研發(fā)一個(gè)能夠連接互聯(lián)網(wǎng)并利用高清顯示設(shè)備作為展示端的智能機(jī)頂盒,實(shí)現(xiàn)智能網(wǎng)格
摘要: 為提升氣象應(yīng)急預(yù)警信息發(fā)布能力,豐富氣象信息服務(wù)手段。使用物聯(lián)網(wǎng)技術(shù)、Java 語言、Spring Boot 微服務(wù)框架和樹莓派開源硬件研制了氣象智能機(jī)頂盒服務(wù)系統(tǒng)。系統(tǒng)通過研發(fā)一個(gè)能夠連接互聯(lián)網(wǎng)并利用高清顯示設(shè)備作為展示端的智能機(jī)頂盒,實(shí)現(xiàn)智能網(wǎng)格預(yù)報(bào)產(chǎn)品和應(yīng)急預(yù)警信息基于位置的精準(zhǔn)發(fā)布。該系統(tǒng)是集氣象信息處理、分發(fā)和接收為一體的氣象多媒體信息服務(wù)系統(tǒng),用戶可通過該系統(tǒng)實(shí)現(xiàn)交互式獲取精細(xì)化氣象服務(wù)。介紹了系統(tǒng)的架構(gòu)設(shè)計(jì)和軟件設(shè)計(jì),并詳細(xì)闡述了系統(tǒng)開發(fā)過程中系統(tǒng)安全性和業(yè)務(wù)可靠性等關(guān)鍵問題的解決。
關(guān)鍵詞: 物聯(lián)網(wǎng); 機(jī)頂盒; 微服務(wù)框架; 智能網(wǎng)格預(yù)報(bào); 樹莓派; 開源硬件
0 引 言
物聯(lián)網(wǎng)被稱為繼計(jì)算機(jī)、互聯(lián)網(wǎng)后,信息產(chǎn)業(yè)的第三次浪潮[1]。物聯(lián)網(wǎng)技術(shù)在氣象行業(yè)中主要應(yīng)用于氣象數(shù)據(jù)采集和氣象服務(wù)發(fā)布領(lǐng)域,對于提升氣象行業(yè)的信息化、智能化水平有著非常重要的意義。
智能機(jī)頂盒是指內(nèi)置 CPU 處理器和操作系統(tǒng),用戶可以方便地獲取定制化應(yīng)用軟件的機(jī)頂盒終端[2]。智能機(jī)頂盒在配置上具有硬件開源、功能模塊化、網(wǎng)絡(luò)接口豐富、二次開發(fā)容易等特點(diǎn)。智能機(jī)頂盒能在內(nèi)容表現(xiàn)形式、互動(dòng)性和擴(kuò)展性等方面給用戶帶來全新的體驗(yàn)[3]。
智能網(wǎng)格預(yù)報(bào)利用云計(jì)算、互聯(lián)網(wǎng) + 、人工智能等現(xiàn)代信息技術(shù)和氣象大數(shù)據(jù)應(yīng)用技術(shù)來改造傳統(tǒng)預(yù)報(bào)業(yè)務(wù),從而實(shí)現(xiàn)業(yè)務(wù)技術(shù)客觀智能,業(yè)務(wù)流程扁平高效,滾動(dòng)制作、實(shí)時(shí)同步、協(xié)同一致的網(wǎng)格預(yù)報(bào)制作[4]。這種統(tǒng)一數(shù)據(jù)源的 “一張網(wǎng)”網(wǎng)格預(yù)報(bào)業(yè)務(wù)是中國氣象部門未來業(yè)務(wù)發(fā)展方向。這種網(wǎng)格空間分辨率 5 km,逐 3 h 發(fā)布的未來 10 d 預(yù)報(bào)產(chǎn)品是實(shí)現(xiàn)基于位置的精細(xì)化氣象服務(wù)的基礎(chǔ)[5]。
我國自然災(zāi)害多發(fā)、頻發(fā),是世界上受自然災(zāi)害影響最為嚴(yán)重的國家之一,自然災(zāi)害嚴(yán)重危害了人民群眾生命財(cái)產(chǎn)安全和生產(chǎn)生活秩序。氣象信息的準(zhǔn)確、及時(shí)發(fā)布是降低自然災(zāi)害對社會(huì)公眾造成損失的基礎(chǔ)條件,也是氣象部門面臨的重要而且急迫的任務(wù)[6]。近年來國內(nèi)氣象部門在利用新技術(shù)進(jìn)行預(yù)警信息分發(fā)方面做了許多嘗試[7-9]。周捷等研究了基于多媒體技術(shù)的氣象災(zāi)害預(yù)警信息發(fā)布系統(tǒng)[10]; 陳往溪等通過采用無線廣域廣播系統(tǒng)和預(yù)警電話機(jī)組建高集成的突發(fā)災(zāi)害預(yù)警平臺(tái)[11]; 李娜等研究了短信小區(qū)廣播技術(shù)在解決高時(shí)效信息發(fā)布的應(yīng)用問題[12]。
目前寧波氣象部門已經(jīng)建設(shè)了一套涵蓋短信、電視、電話、廣播、網(wǎng)絡(luò)、顯示屏等多渠道的突發(fā)預(yù)警信息發(fā)布平臺(tái)。該平臺(tái)渠道豐富、用戶覆蓋面廣,但仍存在一些不足: 1) 信息的分發(fā)高度依賴服務(wù)提供商,發(fā)布渠道煙囪式,發(fā)布時(shí)效性不高; 2) 信息分發(fā)的智能化程度不高,難以做到靶向式發(fā)布,無法支撐基于位置的精細(xì)化氣象服務(wù)需求; 3) 信息單向發(fā)布,缺乏交互式反饋。
本文介紹的氣象智能機(jī)頂盒服務(wù)系統(tǒng),是依托寧波氣象部門現(xiàn)有的業(yè)務(wù)環(huán)境,在網(wǎng)格預(yù)報(bào)預(yù)警產(chǎn)品發(fā)布技術(shù)和物聯(lián)網(wǎng)技術(shù)的基礎(chǔ)上研發(fā)的智能化、扁平化、可視化的多媒體氣象信息發(fā)布系統(tǒng)。
1 架構(gòu)與功能設(shè)計(jì)
1. 1 環(huán)境條件
氣象智能機(jī)頂盒設(shè)備可以通過物聯(lián)網(wǎng)通信技術(shù)和服務(wù)端進(jìn)行通訊。設(shè)備硬件以當(dāng)前迅速興起的開源硬件為基礎(chǔ),其中主要用到的是樹莓派微電腦系統(tǒng)。它具有與計(jì)算機(jī)相同的功能和接口,具有多媒體處理能力,具有體積小巧、可 擴(kuò) 展 性 強(qiáng) 等 特 點(diǎn)。使 用 通 用 端 口 ( GPIO) 來控制外部設(shè)備,通過針腳賦值高低電平以實(shí)現(xiàn)對外部設(shè)備的交互。硬件功能見圖 1。
系統(tǒng)采用 Java 語言開發(fā),開發(fā)環(huán)境為 Eclipse 3. 8、Spring Boot 1. 5. 3、VUE 2. 0、NODE JS 7. 9. 0 ,運(yùn)行環(huán)境為 UBUNTU LIUNX 14. 04。
1. 2 系統(tǒng)架構(gòu)設(shè)計(jì)
系統(tǒng)通過研發(fā)一款氣象智能機(jī)頂盒客戶端設(shè)備并以此為基礎(chǔ)建立氣象信息發(fā)布系統(tǒng),系統(tǒng)不僅能以文字、圖片、圖表、聲音和高清視頻等多媒體形式將基于位置的天氣實(shí)況、天氣預(yù)報(bào)、應(yīng)急預(yù)警信息快速發(fā)布到客戶端,并通過高清晰度多媒體接口( High Definition Multimedia Interface,HDMI) 展示到 4K 高清電視、觸摸屏、戶外 LED 大屏等展示設(shè)備上。而且能通過無線物聯(lián)網(wǎng)絡(luò)技術(shù)與周邊的傳感器設(shè)備通訊,實(shí)現(xiàn)數(shù)據(jù)采集功能。
系統(tǒng)架構(gòu)圖如圖 2 所示,系統(tǒng)由服務(wù)端和客戶端兩部分組成。服務(wù)端包括數(shù)據(jù)中心、數(shù)據(jù)接口服務(wù)和系統(tǒng)管理平臺(tái)。客戶端由氣象智能機(jī)頂盒、高清顯示設(shè)備組成,機(jī)頂盒與顯示設(shè)備通過 HDMI 接口連接。
系統(tǒng)為了提升系統(tǒng)性能,提高可靠性。系統(tǒng)改進(jìn)了服務(wù)器端架構(gòu),通過引入微服務(wù)架構(gòu) ( Microservices Architecture Pattern) 技術(shù)優(yōu)化服務(wù)效率。系統(tǒng)主要由以下 3 部分組成:
1) 數(shù)據(jù)接口
服務(wù)負(fù)責(zé)響應(yīng)客戶端設(shè)備發(fā)起的數(shù)據(jù)請求,通過 WebService 數(shù)據(jù)接口的方式實(shí)現(xiàn)數(shù)據(jù)和指令的交互。
2) 系統(tǒng)管理平臺(tái)
負(fù)責(zé)管理客戶端設(shè)備以安全的通訊方式接入系統(tǒng),實(shí)現(xiàn)用戶管理和權(quán)限管理,以微服務(wù)架構(gòu)的方式發(fā)布?xì)庀笮畔ⅰ?/p>
3) 客戶端設(shè)備
負(fù)責(zé)將來自服務(wù)端的數(shù)據(jù)展示在顯示設(shè)備上,通過用戶交互方式收集服務(wù)反饋并上傳服務(wù)端。
這種設(shè)計(jì)有如下優(yōu)點(diǎn):
首先服務(wù)端采用微服務(wù)架構(gòu),微服務(wù)是去中心化的分布式軟件架構(gòu),它可以將大型的、復(fù)雜的、長期運(yùn)行的應(yīng)用程序構(gòu)建為一組相互配合的服務(wù),提高開發(fā)效率; 服務(wù)之間可以獨(dú)立部署,微服務(wù)架構(gòu)讓持續(xù)部署成為可能; 每個(gè)服務(wù)可以各自進(jìn)行擴(kuò)展; 每個(gè)服務(wù)可以根據(jù)自身的需要部署到合適的硬件上,提高了系統(tǒng)可靠性和靈活度。
其次使用數(shù)據(jù)接口服務(wù)來實(shí)現(xiàn)跨平臺(tái)的數(shù)據(jù)交換,數(shù)據(jù)接口是目前比較流行的一種互聯(lián)網(wǎng)軟件架構(gòu)。它結(jié)構(gòu)清晰、符合標(biāo)準(zhǔn)、擴(kuò)展方便,這種機(jī)制可以實(shí)現(xiàn)松耦合、應(yīng)用擴(kuò)展性和異構(gòu)系統(tǒng)間的互操作性。
再次數(shù)據(jù)計(jì)算與產(chǎn)品生成任務(wù)交給分布式的管理平臺(tái)。客戶端不需要大量的計(jì)算處理與存儲(chǔ)需 求,降低了客戶端的實(shí)現(xiàn)難度和硬件要求。
2 軟件系統(tǒng)設(shè)計(jì)
軟件系統(tǒng)采用了基于 B /S( Browser/Server) 架構(gòu)的 3 層設(shè)計(jì)模式。業(yè)務(wù)層采用 Web 服務(wù)技術(shù)完成與數(shù)據(jù)層的交互,表現(xiàn)層使用 JavaScript 技術(shù)提高人機(jī)交互體驗(yàn),而數(shù)據(jù)層由數(shù)據(jù)接口和消息隊(duì)列實(shí)現(xiàn)松耦合。在系統(tǒng)實(shí)現(xiàn)過程中,采用了多種開源軟件包,如 Tomcat、Apache、ActiveMQ 等。
2. 1 服務(wù)端軟件設(shè)計(jì)
服務(wù)端軟件負(fù)責(zé)將精細(xì)化觀測、預(yù)報(bào)、預(yù)警數(shù)據(jù)以 RESTful Web Services 數(shù)據(jù)接口的形式發(fā)布到客戶端。通過服務(wù)端軟件,系統(tǒng)管理員能實(shí)現(xiàn)對客戶端設(shè)備和服務(wù)內(nèi)容的高效管理。實(shí)現(xiàn)了通過數(shù)據(jù)接口與客戶端交換信息和通過消息隊(duì)列實(shí)時(shí)推送應(yīng)急信息到客戶端的功能。軟件流程圖見圖 3,服務(wù)端軟件主要由以下 5 個(gè)模塊組成。
1) 消息隊(duì)列模塊
負(fù)責(zé)服務(wù)端與客戶端之間的高效通信,實(shí)現(xiàn)數(shù)據(jù)和指令的交互。采用消息隊(duì)列技術(shù)來解決異構(gòu)系統(tǒng)間的解耦與異步通信問題,降低了開發(fā)難度,并提供了功能上的擴(kuò)展性。
2) 設(shè)備管理模塊
具有客戶端設(shè)備的定位功能,能確保服務(wù)的靶向性發(fā)布。并以 GIS ( Geographic Information System) 的形式為用戶提供終端管理功能。能夠?qū)崿F(xiàn)客戶端內(nèi)容展示策略配置的功能,當(dāng)配置發(fā)生變化時(shí),能夠及時(shí)存儲(chǔ)并發(fā)送內(nèi)容展示策略到客戶端。此外還具備客戶端設(shè)備訪問權(quán)限、版本管理等設(shè)備配置功能。
3) 數(shù)據(jù)加工模塊
不同的展示內(nèi)容需要不同的內(nèi)容幀來支撐,數(shù)據(jù)加工模塊負(fù)責(zé)內(nèi)容幀的生成。模塊需要定時(shí)從數(shù)據(jù)接口獲取數(shù)據(jù)并按預(yù)設(shè)的規(guī)則生成內(nèi)容幀,并按幀/時(shí)間的格式記錄到數(shù)據(jù)中心。
4) 數(shù)據(jù)服務(wù)模塊
以 Web Services 數(shù)據(jù)接口的形式與客戶端通訊,提供調(diào)用數(shù)據(jù)中心的內(nèi)容幀來響應(yīng)來自客戶端的請求,以及將客戶端上傳的數(shù)據(jù)存儲(chǔ)到數(shù)據(jù)中心的功能。該模塊實(shí)現(xiàn)對接口的標(biāo)準(zhǔn)化管理,向管理人員提供包括接口管理、權(quán)限管理等功能。
5) 應(yīng)急信息發(fā)布模塊
模塊以網(wǎng)頁提交的方式提供手動(dòng)發(fā)布應(yīng)急信息的功能。用戶可以在 GIS 地圖上圈選產(chǎn)品發(fā)布的范圍,發(fā)布的產(chǎn)品根據(jù)需要可以存儲(chǔ)到數(shù)據(jù)中心以供數(shù)據(jù)服務(wù)模塊調(diào)用,也可以通過消息隊(duì)列直接推送到客戶端。
2. 2 客戶端軟件設(shè)計(jì)
終端軟件負(fù)責(zé)定時(shí)獲取來自服務(wù)端的內(nèi)容幀,并根據(jù)管理平臺(tái)定義的內(nèi)容展示策略將各種內(nèi)容幀以文字、圖片、音頻、視頻以瀏覽器的形式輸出到顯示器,并實(shí)現(xiàn)軟件自動(dòng)管理。軟件流程圖見圖 4。
客戶端和服務(wù)端軟件通過建立消息隊(duì)列,實(shí)現(xiàn)客戶端訂閱服務(wù)端廣播的顯示事件和升級(jí)事件的功能。當(dāng)顯示事件到達(dá)時(shí),客戶端軟件將調(diào)用命令以全屏模式( kiosk) 打開一個(gè)網(wǎng)頁瀏覽器來展示內(nèi)容幀。
每個(gè)顯示事件代表需要展示的一個(gè)內(nèi)容幀,幀包括顯示的界面元素配置、展示內(nèi)容組織和展示時(shí)長等信息。幀數(shù)據(jù)優(yōu)先從本地緩存文件中獲取,如果不存在則從服務(wù)端獲取。如果網(wǎng)絡(luò)故障則使用本地存儲(chǔ)的數(shù)據(jù)。當(dāng)展示時(shí)間超過定義時(shí)長,狀態(tài)監(jiān)測機(jī)制自動(dòng)創(chuàng)建下一個(gè)展示事件并發(fā)送給瀏覽器。視頻播放幀由于視頻的時(shí)長不定且有可能被用戶暫停或者快進(jìn),因此狀態(tài)監(jiān)測機(jī)制通過捕捉視頻結(jié)束事件,并以該事件來觸發(fā)下一個(gè)顯示事件的創(chuàng)建。
相關(guān)期刊推薦:《浙江氣象》Journal of Zhejiang Meteorology(季刊)曾用刊名:浙江氣象科技,1979年創(chuàng)刊,以促進(jìn)我省氣象事業(yè)的蓬勃發(fā)展為宗旨,經(jīng)學(xué)術(shù)為主,兼顧氣象事業(yè)方方面面,是融知識(shí)性、實(shí)用性和可讀性于一體的季刊。可供氣象、農(nóng)林、水文、地理、民航、海洋、環(huán)保、地質(zhì)等部門的科技人員閱讀,亦可供有關(guān)院校師生參考。
軟件升級(jí)也是通過事件來實(shí)現(xiàn),升級(jí)事件中含有升級(jí)包的 URL 地址,當(dāng)收到升級(jí)事件推送后,客戶端將根據(jù) URL 地址下載并暫存升級(jí)包,然后觸發(fā)客戶端軟件重啟,客戶端軟件的啟動(dòng)過程中如果識(shí)別到存在新的升級(jí)包,將執(zhí)行自動(dòng)升級(jí)指令。——論文作者:錢崢1 朱純陽2 張晶晶3 林宏偉4