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