摘 要:隨著社會經(jīng)濟(jì)的發(fā)展,人們對氣象的關(guān)注日益增加。為滿足不斷增長的氣象產(chǎn)品需求,內(nèi)蒙古自治區(qū)烏海市設(shè)計(jì)并開發(fā)氣象產(chǎn)品制作發(fā)布系統(tǒng),得到了業(yè)務(wù)人員的一致認(rèn)可。對此,以烏海市氣象產(chǎn)品制作發(fā)布系統(tǒng)為研究對象,分析了烏海市氣象產(chǎn)品制作發(fā)布系統(tǒng)技術(shù)線路,介紹了其功能設(shè)計(jì),并探討了其技術(shù)創(chuàng)新點(diǎn)。
關(guān)鍵詞:氣象產(chǎn)品;烏海市;氣象信息化
中圖分類號:P409 文獻(xiàn)標(biāo)志碼:B 文章編號:2095–3305(2024)12–0-03
隨著時(shí)代進(jìn)步,氣象服務(wù)向著集約化、標(biāo)準(zhǔn)化、信息化、精細(xì)化、自動化的方向在發(fā)展,為了減輕業(yè)務(wù)人員的工作負(fù)擔(dān)并高效服務(wù)社會,實(shí)現(xiàn)一鍵式多手段的氣象信息快速制作發(fā)布,有效監(jiān)控氣象信息發(fā)布效果,保證氣象信息發(fā)布渠道的有效性和安全性,內(nèi)蒙古自治區(qū)烏海市設(shè)計(jì)并開發(fā)氣象產(chǎn)品制作發(fā)布系統(tǒng)具有重要意義。
1 烏海市氣象產(chǎn)品制作發(fā)布系統(tǒng)技術(shù)線路
烏海市氣象產(chǎn)品制作發(fā)布系統(tǒng)通過計(jì)算機(jī)技術(shù),從氣象大數(shù)據(jù)云平臺(天擎)讀取烏海市每小時(shí)的天氣實(shí)況和未來7 d的天氣預(yù)報(bào)等氣象數(shù)據(jù),并按規(guī)定格式存入數(shù)據(jù)庫。然后,根據(jù)整理好的氣象產(chǎn)品模板,系統(tǒng)自動合成服務(wù)產(chǎn)品,并通過電子郵件等技術(shù)實(shí)現(xiàn)對烏海市現(xiàn)有氣象產(chǎn)品的自動發(fā)送功能。
烏海市氣象產(chǎn)品制作發(fā)布系統(tǒng)采用了以下技術(shù)線路作為Web開發(fā)方案。首先,相關(guān)部門選擇了基于CentOS 7的開源操作系統(tǒng),其是一種穩(wěn)定、安全、高效且兼容性強(qiáng)的操作系統(tǒng)。其次,將MySQL作為關(guān)系型數(shù)據(jù)庫管理系統(tǒng),其具有輕量、快速、可靠和易用的特點(diǎn),支持多種數(shù)據(jù)類型、存儲引擎、事務(wù)、索引、視圖和觸發(fā)器等功能,適合用作Web應(yīng)用的數(shù)據(jù)存儲。再次,運(yùn)行了Tomcat,這是一種開源的Java Web服務(wù)器,具有輕量、高性能和易擴(kuò)展的特點(diǎn),支持Servlet、JSP、EL、JSTL等技術(shù),提供了HTTP服務(wù)器、連接池、負(fù)載均衡和集群等功能,適用于Web應(yīng)用的運(yùn)行容器。最后,選擇了Java作為開發(fā)語言,這是一種跨平臺的面向?qū)ο蟮木幊陶Z言,具有簡潔、健壯、高效和靈活的特點(diǎn),支持多線程、異常處理、泛型、反射和注解等特性,提供了豐富的類庫、框架和工具。
此外,相關(guān)部門還使用了Spring、Spring MVC和MyBatis這一流行的Java Web開發(fā)框架組合,以進(jìn)一步優(yōu)化開發(fā)過程。Spring是一種輕量級的控制反轉(zhuǎn)(IoC)和面向切面(AOP)的容器框架,具有松耦合、可測試、可配置的特點(diǎn),提供了事務(wù)管理、依賴注入、切面編程、事件驅(qū)動等功能,適合用作Web應(yīng)用的核心層;Spring MVC是一種基于Spring的模型—視圖—控制器(MVC)的Web框架,具有靈活、強(qiáng)大、易擴(kuò)展的特點(diǎn),提供了請求映射、數(shù)據(jù)綁定、視圖解析、異常處理、攔截器等功能,適合用作Web應(yīng)用的表現(xiàn)層;MyBatis是一種基于SQL的持久層框架,具有簡單、輕量、高效的特點(diǎn),提供了對象映射、動態(tài)SQL、緩存、插件等功能,適合用作Web應(yīng)用的數(shù)據(jù)訪問層。
1.1 部署服務(wù)器
烏海市氣象產(chǎn)品制作發(fā)布系統(tǒng)所用服務(wù)器的操作系統(tǒng)為CentOS7,后臺數(shù)據(jù)庫為MySQL,Web服務(wù)器為Tomcat,計(jì)算機(jī)開發(fā)語言為Java,軟件架構(gòu)為Spring+Spring MVC+MyBatis+Tomcat,部署方案如下:
首先,將SSM項(xiàng)目打包成一個(gè)war文件,然后將其上傳到服務(wù)器上的Tomcat的webApps目錄下,或者使用Tomcat的管理界面進(jìn)行部署。同時(shí)也可以將項(xiàng)目部署到多個(gè)Tomcat節(jié)點(diǎn)上,實(shí)現(xiàn)負(fù)載均衡和高可用性。
其次,需要將MySQL數(shù)據(jù)庫的數(shù)據(jù)導(dǎo)出成一個(gè)sql文件,然后將其上傳到服務(wù)器上的MySQL的數(shù)據(jù)目錄下,或者使用MySQL的命令行或圖形界面進(jìn)行導(dǎo)入。也可以將數(shù)據(jù)庫分布到多個(gè)MySQL節(jié)點(diǎn)上,實(shí)現(xiàn)分庫分表和讀寫分離。
最后,需要配置Nginx作為Web服務(wù)器,實(shí)現(xiàn)對Tomcat和MySQL的反向代理和動態(tài)路由。需要修改Nginx的配置文件,添加Tomcat和MySQL的集群和代理信息,以及靜態(tài)資源的映射。也可以配置Nginx的緩存、壓縮、安全等功能,提高Web應(yīng)用的性能和安全性。
1.2 前后端分離
前后端分離的開發(fā)模式中,前端技術(shù)人員專注于前端工作,包括頁面設(shè)計(jì)、框架搭建及將后端返回的數(shù)據(jù)渲染到頁面上。他們無須理解后端復(fù)雜的代碼。與此同時(shí),后端技術(shù)人員負(fù)責(zé)提供接口給前端,確保數(shù)據(jù)傳輸和業(yè)務(wù)邏輯的正確性。
以上做法的最終目標(biāo)是實(shí)現(xiàn)前端和服務(wù)端的完全獨(dú)立。前端項(xiàng)目分為瀏覽器和控制層,服務(wù)端項(xiàng)目分為服務(wù)層、DAO層等。在項(xiàng)目開發(fā)過程中,前后端完全分開,前端負(fù)責(zé)展示和交互,后端負(fù)責(zé)業(yè)務(wù)服務(wù)。在生產(chǎn)發(fā)布時(shí)分開部署,從而實(shí)現(xiàn)前后端的最大限度解耦。
前后端分離的實(shí)現(xiàn)方式主要有2種:API接口實(shí)現(xiàn),前端通過調(diào)用后端提供的API接口獲取數(shù)據(jù)和執(zhí)行操作;微服務(wù)架構(gòu)實(shí)現(xiàn),將應(yīng)用拆分成多個(gè)小的服務(wù),前端通過調(diào)用這些服務(wù)來實(shí)現(xiàn)應(yīng)用功能[1]。
2 功能設(shè)計(jì)
在設(shè)計(jì)該系統(tǒng)時(shí),相關(guān)部門考慮了未來的需求變化和擴(kuò)展性,使系統(tǒng)能夠靈活適應(yīng)新的需求和功能,減少重大修改或重寫的需求;將軟件功能分解為模塊,每個(gè)模塊具有清晰的職責(zé)和功能。通過模塊化設(shè)計(jì),可以提高代碼的可維護(hù)性、可測試性和可重用性;在功能設(shè)計(jì)中注重系統(tǒng)的安全性和保密性。采取適當(dāng)?shù)陌踩胧?,如身份?yàn)證、數(shù)據(jù)加密、訪問控制等,以保護(hù)敏感信息和防止未經(jīng)授權(quán)的訪問。
烏海市氣象產(chǎn)品制作發(fā)布系統(tǒng)主要功能模塊:各類氣象數(shù)據(jù)的讀取與保存;天氣實(shí)況和天氣預(yù)報(bào)在地圖上的顯示;短期城鎮(zhèn)天氣預(yù)報(bào)、短時(shí)預(yù)報(bào)、短期區(qū)域天氣預(yù)報(bào)、中期逐日天氣預(yù)報(bào)、空氣污染氣象條件等級預(yù)報(bào)、烏海地區(qū)24 h天氣預(yù)報(bào)、晚間預(yù)報(bào)、各類氣象生活指數(shù)預(yù)報(bào)的自動合成;各類氣象產(chǎn)品發(fā)布策略的設(shè)計(jì)與保存;根據(jù)不同產(chǎn)品制定特定的發(fā)布策略,實(shí)現(xiàn)產(chǎn)品的一鍵式發(fā)布。
2.1 氣象數(shù)據(jù)的讀取與存放
該系統(tǒng)中所用到的氣象數(shù)據(jù)主要有全市所有氣象觀測站的地面觀測數(shù)據(jù)、7 d內(nèi)的城鎮(zhèn)天氣預(yù)報(bào)數(shù)據(jù)。氣象觀測數(shù)據(jù)從氣象大數(shù)據(jù)云平臺讀取,內(nèi)容有整點(diǎn)氣溫、風(fēng)向、風(fēng)速、濕度、降水量等。城鎮(zhèn)天氣預(yù)報(bào)數(shù)據(jù)也從氣象大數(shù)據(jù)云平臺讀取,數(shù)據(jù)讀取后,系統(tǒng)對數(shù)據(jù)進(jìn)行解碼,將實(shí)例化到本地?cái)?shù)據(jù)。天氣實(shí)況和天氣預(yù)報(bào)數(shù)據(jù)以各自統(tǒng)一的格式存放在數(shù)據(jù)庫中。
2.2 各類氣象產(chǎn)品的生成
烏海市氣象服務(wù)的短信內(nèi)容主要有短期城鎮(zhèn)天氣預(yù)報(bào)、短時(shí)預(yù)報(bào)、短期區(qū)域天氣預(yù)報(bào)等。在天氣預(yù)報(bào)生成的時(shí)間點(diǎn),后臺會自動讀取天氣預(yù)報(bào),然后根據(jù)預(yù)報(bào)內(nèi)容模板,解析模板中需要的數(shù)據(jù),將讀取到的預(yù)報(bào)數(shù)據(jù)填充到產(chǎn)品中,同時(shí)對產(chǎn)品內(nèi)容進(jìn)行格式定制,最終生成各類氣象服務(wù)產(chǎn)品。值班人員可通過平臺查閱內(nèi)容,確保自動生產(chǎn)的產(chǎn)品內(nèi)容正確無誤。
2.3 各類氣象產(chǎn)品的一鍵式發(fā)布
氣象產(chǎn)品的一鍵式發(fā)布是一種基于計(jì)算機(jī)網(wǎng)絡(luò)技術(shù)的氣象產(chǎn)品發(fā)布方式,可以實(shí)現(xiàn)氣象產(chǎn)品快速、準(zhǔn)確和高效地發(fā)布?xì)庀笮畔?,為氣象行業(yè)的相關(guān)單位和個(gè)人提供全方位的服務(wù)。業(yè)務(wù)人員通過系統(tǒng)實(shí)現(xiàn)一鍵式發(fā)布,無須關(guān)心系統(tǒng)后臺流程,只需選擇產(chǎn)品,確認(rèn)產(chǎn)品內(nèi)容無誤后,選擇發(fā)布策略,點(diǎn)擊發(fā)布即可實(shí)現(xiàn)同一產(chǎn)品多渠道發(fā)布。
3 技術(shù)創(chuàng)新點(diǎn)
3.1 前后端分離技術(shù)
3.1.1 前后端分離技術(shù)的優(yōu)勢
第一,前后端職責(zé)明確。前后端分離技術(shù)使得前端和后端的職責(zé)更加明確,前端只需關(guān)注用戶界面和交互邏輯,后端只需關(guān)注數(shù)據(jù)處理和業(yè)務(wù)邏輯,不需要互相干擾或等待。這樣可以提高開發(fā)效率,避免不必要的溝通和協(xié)調(diào)成本[2]。
第二,前后端可獨(dú)立開發(fā)和部署。前后端分離技術(shù)使得前端和后端可以獨(dú)立開發(fā)和部署,不需要依賴對方的進(jìn)度或環(huán)境。前端和后端可以采用不同的技術(shù)棧和框架,選擇適合自己的開發(fā)工具和方法。前端和后端可以根據(jù)自己的需求和資源,靈活地調(diào)整開發(fā)和部署的策略和頻率。
第三,前后端可復(fù)用和擴(kuò)展。前后端分離技術(shù)使得前端和后端可以更容易地復(fù)用和擴(kuò)展,提高應(yīng)用的可維護(hù)性和可擴(kuò)展性。前端可以通過組件化的方式,將用戶界面和交互邏輯封裝成可復(fù)用的組件,方便在不同的頁面或應(yīng)用中使用。后端可以通過接口化的方式,將數(shù)據(jù)處理和業(yè)務(wù)邏輯封裝成可復(fù)用的接口,方便在不同的平臺或設(shè)備中調(diào)用。前端和后端可以通過模塊化的方式,將功能分解成可獨(dú)立的模塊,方便在不同的場景或需求中增加或刪除。
3.1.2 前后端分離技術(shù)的實(shí)現(xiàn)方式
第一,基于Ajax的前后端分離。這是一種最常見的前后端分離技術(shù),利用Ajax(Asynchronous Java- Script and XML)技術(shù)實(shí)現(xiàn)前端和后端的異步通信。前端通過Ajax向后端發(fā)送請求,后端通過Ajax返回響應(yīng),通常采用JSON(JavaScript Object Notation)格式作為數(shù)據(jù)交換的格式。這種方式可以實(shí)現(xiàn)前端和后端的數(shù)據(jù)交互,而不需要刷新頁面,提高了用戶體驗(yàn)和頁面性能。
第二,基于RESTful的前后端分離。這是一種較新的前后端分離技術(shù),利用RESTful(Representational State Transfer)架構(gòu)風(fēng)格實(shí)現(xiàn)前端和后端的資源交互。
前端通過RESTful向后端發(fā)送請求,后端通過RESTful
返回響應(yīng),通常采用HTTP(Hypertext Transfer Protocol)方法和狀態(tài)碼作為數(shù)據(jù)交換的方式。這種方式可以實(shí)現(xiàn)前端和后端的資源定位,而不需要關(guān)注具體的實(shí)現(xiàn)細(xì)節(jié),提高了開發(fā)的靈活性和可擴(kuò)展性。
第三,基于GraphQL的前后端分離。這也是一種較新的前后端分離技術(shù),利用GraphQL(Graph Query Language)語言實(shí)現(xiàn)前端和后端的數(shù)據(jù)查詢。前端通過GraphQL向后端發(fā)送查詢,后端通過GraphQL返回結(jié)果,通常采用GraphQL格式作為數(shù)據(jù)交換的格式。這種方式可以實(shí)現(xiàn)前端和后端的數(shù)據(jù)定制,而不需要獲取多余的數(shù)據(jù),提高了數(shù)據(jù)的有效性和性能。
3.2 氣象產(chǎn)品的合成與發(fā)送
氣象服務(wù)中有各類各樣的氣象產(chǎn)品,需要值班人員去制作。該平臺利用各類產(chǎn)品預(yù)先設(shè)計(jì)好的模板,再根據(jù)氣象數(shù)據(jù)自動合成為不同格式的氣象產(chǎn)品,通過電子郵件、手機(jī)短信等發(fā)布渠道發(fā)送,節(jié)約值班人員時(shí)間,提高氣象信息的及時(shí)率,讓值班人員將更多的精力放在產(chǎn)品預(yù)報(bào)準(zhǔn)確率和產(chǎn)品內(nèi)容上。氣象產(chǎn)品的一鍵式發(fā)布是一種高效、準(zhǔn)確、方便和自動化的氣象產(chǎn)品發(fā)布方式,能夠提高發(fā)布效率和發(fā)布質(zhì)量,為氣象行業(yè)的相關(guān)單位和個(gè)人提供全方位的服務(wù)。
3.3 數(shù)據(jù)直聯(lián)氣象大數(shù)據(jù)云
系統(tǒng)中所用到的所有數(shù)據(jù),包括天氣實(shí)況數(shù)據(jù)、預(yù)報(bào)數(shù)據(jù),均通過氣象大數(shù)據(jù)云調(diào)取,這樣既節(jié)省了本地資源的開支,又通過直連云接口,統(tǒng)一數(shù)據(jù)源,提高系統(tǒng)運(yùn)行效率。
3.4 服務(wù)產(chǎn)品的自動生產(chǎn)
氣象服務(wù)中的產(chǎn)品自動生成是指利用計(jì)算機(jī)和自動化技術(shù),通過處理氣象數(shù)據(jù)和應(yīng)用相關(guān)模型,自動產(chǎn)生各種氣象產(chǎn)品的過程。以下是產(chǎn)品自動生成的一般步驟:
第一,數(shù)據(jù)獲取與處理。從各種氣象數(shù)據(jù)源獲取氣象觀測數(shù)據(jù),如溫度、濕度、氣壓、風(fēng)速和降水量等。對獲取的數(shù)據(jù)進(jìn)行質(zhì)量控制和處理,確保數(shù)據(jù)的準(zhǔn)確性和一致性。
第二,數(shù)據(jù)分析與模型應(yīng)用。對氣象數(shù)據(jù)進(jìn)行分析和應(yīng)用相關(guān)的氣象模型,如數(shù)值天氣預(yù)報(bào)模型、氣候模型等。通過模型應(yīng)用,預(yù)測未來的天氣情況、氣候變化趨勢等。
第三,產(chǎn)品設(shè)計(jì)與規(guī)劃。根據(jù)用戶需求和應(yīng)用場景,設(shè)計(jì)和規(guī)劃不同類型的氣象產(chǎn)品。確定產(chǎn)品的內(nèi)容、格式、布局和展示方式等。
第四,自動化生成與定制化?;诋a(chǎn)品設(shè)計(jì)和規(guī)劃,利用自動化技術(shù),將分析的氣象數(shù)據(jù)、圖表、圖像等元素自動生成到產(chǎn)品模板中。根據(jù)用戶的需求和參數(shù)進(jìn)行定制化,生成特定時(shí)間、地區(qū)和氣象現(xiàn)象的產(chǎn)品。
第五,質(zhì)量控制與驗(yàn)證。對生成的產(chǎn)品進(jìn)行質(zhì)量控制和驗(yàn)證,確保數(shù)據(jù)的準(zhǔn)確性和一致性。檢查產(chǎn)品的格式、內(nèi)容和可讀性等,以確保生成的產(chǎn)品符合要求。通過產(chǎn)品自動生成,可以提高氣象服務(wù)的效率和準(zhǔn)確性,減少人工操作的工作量,并確保生成的產(chǎn)品具有一致的質(zhì)量和風(fēng)格。
3.5 服務(wù)產(chǎn)品的一鍵式
氣象服務(wù)中的一鍵式發(fā)布是指通過簡單的操作,將服務(wù)產(chǎn)品快速地發(fā)布到不同的平臺和渠道,以便用戶能夠及時(shí)獲取氣象信息。一鍵式發(fā)布的過程和相關(guān)發(fā)布方式如下:
(1)產(chǎn)品生成與準(zhǔn)備。根據(jù)用戶需求和氣象數(shù)據(jù),生成相應(yīng)的服務(wù)產(chǎn)品,如天氣預(yù)報(bào)、臨期預(yù)報(bào)、氣象分析報(bào)告等,確保產(chǎn)品的準(zhǔn)確性和完整性。
(2)選擇發(fā)布方式。根據(jù)用戶需求和平臺渠道,選擇合適的發(fā)布方式。常見的發(fā)布渠道包括電子郵箱、短信、氣象產(chǎn)品庫和綜合信息網(wǎng)等。
(3)電子郵箱發(fā)布。將生成的產(chǎn)品以電子郵件的形式發(fā)送給訂閱用戶的電子郵箱。用戶可以通過訂閱服務(wù),及時(shí)收到相關(guān)產(chǎn)品的更新和通知。
(4)短信發(fā)布。將生成的產(chǎn)品以短信的形式發(fā)送給用戶的手機(jī)號碼。短信通知可以在用戶手機(jī)上直接顯示氣象信息,方便用戶實(shí)時(shí)獲取。
(5)內(nèi)蒙古氣象產(chǎn)品庫發(fā)布。將生成的產(chǎn)品上傳至內(nèi)蒙古氣象產(chǎn)品庫,該平臺是一個(gè)集中存儲和共享氣象產(chǎn)品的數(shù)據(jù)庫。用戶可以在該平臺上檢索和下載所需的氣象產(chǎn)品。
(6)綜合信息網(wǎng)發(fā)布。將生成的產(chǎn)品發(fā)布到綜合信息網(wǎng)或氣象服務(wù)網(wǎng)站上,供廣大用戶訪問和使用。用戶可以通過網(wǎng)站瀏覽器訪問,并獲取最新的氣象產(chǎn)品和信息。
在一鍵式發(fā)布過程中,可以利用自動化技術(shù)和軟件系統(tǒng),將產(chǎn)品批量發(fā)布到各個(gè)渠道,提高發(fā)布的效率和準(zhǔn)確性。同時(shí),對發(fā)布的產(chǎn)品進(jìn)行質(zhì)量控制和驗(yàn)證,確保產(chǎn)品的準(zhǔn)確性和可讀性。此外,通過多種發(fā)布方式的組合,可以滿足不同用戶的需求和使用習(xí)慣,確保氣象服務(wù)產(chǎn)品能夠快速、準(zhǔn)確地傳達(dá)給用戶,幫助他們作出合理的決策和應(yīng)對氣象變化。
4 結(jié)束語
烏海市氣象產(chǎn)品制作發(fā)布系統(tǒng)自2021年投入使用,致力于為用戶提供及時(shí)、準(zhǔn)確的氣象服務(wù)產(chǎn)品,減少值班人員工作量,讓值班人員有更多的時(shí)間去審核產(chǎn)品信息,提高服務(wù)質(zhì)量,得到了業(yè)務(wù)人員的一致認(rèn)可。在未來,該系統(tǒng)研究還應(yīng)不斷創(chuàng)新與發(fā)展,在提高社會生產(chǎn)力、改善人民生活等方面發(fā)揮更大價(jià)值。
參考文獻(xiàn)
[1] 何步江.巴彥淖爾公眾氣象服務(wù)平臺的設(shè)計(jì)與實(shí)現(xiàn)[J].現(xiàn)代農(nóng)業(yè),2018(9):90-91.
[2] 王云,萬紅衛(wèi),戴喜紅,等.專業(yè)氣象服務(wù)產(chǎn)品自動制作與發(fā)布系統(tǒng)[J].陜西氣象,2009(1):44-45.
收稿日期:2024-07-31
作者簡介:何步江(1992—),男,寧夏固原人,工程師,研究方向?yàn)闅庀蠓?wù)、機(jī)器學(xué)習(xí)及數(shù)據(jù)分析。#通信作者:王祺(1990—),男,內(nèi)蒙古烏海人,工程師,研究方向?yàn)榫W(wǎng)絡(luò)安全、氣象信息技術(shù),E-mail:408645751@qq.com。