国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

專業(yè)氣象跨平臺發(fā)布系統及關鍵技術實現

2021-05-19 03:03:16徐碧裕葉朗明徐加民于東海胡麗華
氣象科技 2021年2期
關鍵詞:跨平臺消息氣象

徐碧裕 葉朗明* 徐加民 于東海 胡麗華

(1 廣東省江門市氣象局,江門 529000; 2 廣東省江門市新會區(qū)氣象局,新會 529100)

*通信作者,Email:ye_langming@126.com

引言

專業(yè)氣象服務是在社會相關行業(yè)對氣象服務具有特殊需求的前提下產生的,是氣象服務組織為經濟社會各行各業(yè)和用戶提供的滿足特定需求的專業(yè)化、精細化、個性化氣象服務[1]。專業(yè)氣象服務集約化發(fā)展是以先進的“互聯網+”技術為依托,通過構建“云+網+端”平臺,有效實現了專業(yè)氣象服務的全面互聯互通[2]。傳統氣象信息接收渠道如手機短信、傳真、報紙、電視、Email等,已然不能夠滿足專業(yè)氣象用戶對于便利性的需求[3]。微信作為目前最為流行最受歡迎的免費即時通訊工具,其用戶群正在日漸激增,功能也越來越強大。因為它擁有傳統電話、短信等手段無法比擬的特點,可以精準、快速、主動地傳播消息,方便有效的互動特性受到了無數用戶和團體、機構的關注與青睞[4]。因此,近年來越來越多學者開始研究將氣象信息發(fā)布融合到當下熱門社交軟件微信App提供的公眾號或企業(yè)號平臺中,這就涉及到氣象信息跨平臺發(fā)布問題。對于微信平臺氣象信息推送系統,許多學者已有研究[5-9],但前人研究的推送系統終端一般為微信服務號,對象是公眾,具有普適性;每個行業(yè)氣象用戶具體需求不同,借助微信企業(yè)號應用,搭建滿足專業(yè)氣象定制化需求的系統更加有意義。本文以“江門市氣象公共服務中心”企業(yè)號為例,以不同行業(yè)氣象用戶為對象,搭建了跨平臺發(fā)布系統,實現了專業(yè)氣象信息移動端自動提醒。

每個行業(yè)專業(yè)氣象用戶所關注的氣象要素都不相同,航運及公路交通行業(yè)關注能見度、風力、降雨等;能源電力行業(yè)關注氣溫、濕度、降雨等。許多用戶工作地點在戶外,搭建能實現差異化、個性化服務的跨平臺發(fā)布系統,實現氣象信息的可移動性、便捷獲取性成為開展專業(yè)氣象服務的現實需求。

1 平臺選擇及系統設計

1.1 平臺選擇

微信企業(yè)號信息發(fā)送條數不受限制,不產生費用,最高每分鐘可群發(fā)200次消息,支持保密消息,防止成員轉發(fā),支持高級接口權限,可根據需要為每個行業(yè)氣象用戶群組定制獨立應用,能實現專業(yè)化、精細化、個性化的功能和菜單[10-11]。新浪云應用SAE在平臺搭建時免架構設計、免運維,能從容應對流量爆發(fā)式增長。上述2個平臺優(yōu)點適應了專業(yè)氣象服務特性,可以提高信息發(fā)布效率,減少專業(yè)氣象服務硬件投入和人力資源成本,使系統安全性和穩(wěn)定性得到保障。

1.2 系統設計

專業(yè)氣象跨平臺發(fā)布系統總體框架包括硬件支撐層、數據層、服務層和業(yè)務應用層4部分(圖1)。

(1)硬件支撐層。為平臺提供安全、穩(wěn)定運行環(huán)境,提供SAE云空間,并按實際需要進行動態(tài)分配;借助邊界隔離內部和外部網絡,阻擋外部網絡入侵。

(2)數據層。主要包含用戶數據、管理數據、氣象數據。氣象數據是基于Spring框架、讀寫分離的Oracle 10g數據庫,主要包含氣象站點數據、圖形產品和NetCDF格式的格點數據;氣象臨時數據則存放于KVDB高速緩存和Storage分布式存儲中。

(3)服務層。服務端開發(fā)采用ThinkPHP5開發(fā)框架,它使用面向對象的開發(fā)結構和MVC(模型-視圖-控制器)模式,封裝了CURD和一些常用操作,在緩存機制、分布式數據庫、多數據庫連接和切換、認證機制及擴展性方面均有獨特的表現。該框架結合微信企業(yè)號API接口和企業(yè)號JS-SDK接口,實現對氣象數據的動態(tài)監(jiān)控;新浪云SAE提供閾值判定和消息推送服務;IDEA(Integrated Database for Easy Access,廣東省氣象探測數據中心提供的歷史一體化數據訪問平臺)提供氣象基礎數據服務。

(4)業(yè)務應用層。微信企業(yè)號內含多個行業(yè)應用,如“江門供電”、“廣中江高速”、“川島航線”等,每個應用中均有“氣象要素閾值推送”、“氣象預警信號推送”、“氣象常規(guī)產品推送”、“基于WebGIS的氣象要素實況查詢”4大功能模塊;后臺管理系統則集成于新浪云服務器中,提供用戶管理、權限管理、運維監(jiān)控、定時任務、日志分析、代碼管理等6大功能。

圖1 跨平臺發(fā)布系統的總體架構

2 關鍵技術實現

2.1 SAE與企業(yè)號多應用API對接

跨平臺發(fā)布系統中,為了統一管理企業(yè)號的多個行業(yè)應用,實現微信消息轉發(fā)、自定義菜單、獲取成員狀態(tài)等功能,開發(fā)者通過對接SAE和企業(yè)號應用API接口,開啟應用回調模式?;卣{模式時,企業(yè)號應用URL、Token、EncodingAESKey是必須的3個參數:URL是企業(yè)號應用接收企業(yè)號推送請求的訪問地址,支持HTTP或HTTPS協議;Token由企業(yè)任意填寫,用于生成簽名;EncodingAESKey用于消息體的加密,是AES密鑰的Base64編碼。

當提交以上信息時,企業(yè)號應用將發(fā)送GET請求到填寫的URL上,GET請求攜帶4個參數msg_signature(微信加密簽名)、timestamp(時間戳)、nonce(隨機數)、echostr(隨機字符串),企業(yè)號應用在獲取時做urldecode解碼處理,否則驗證不成功。企業(yè)號通過參數msg_signature對請求進行校驗,如果確認此次GET請求來自企業(yè)號,那么它會對echostr參數解密并原樣返回echostr明文,此時接入驗證生效,回調模式開啟[12-13]。

2.2 基于KVDB緩存的接口訪問憑證

微信企業(yè)號應用發(fā)送消息時,需要調用消息群發(fā)高級接口,為了確保接口通信安全性,微信企業(yè)號要求訪問高級接口要先獲取接口訪問憑證(即access_token)進行權限驗證。還規(guī)定了access_token有效期為7200 s,重復獲取將導致上次獲取的失效,同時access_token API每天的訪問次數被限制為2000次。如果每次調用高級接口都去請求access_token API獲取access_token,在調用頻繁的情況下將很快達到access_token API每天訪問限制,導致后續(xù)訪問全部被微信服務器拒絕,消息無法成功發(fā)送[14]。因此,需要定期在程序中保存獲取到的多個應用access_token值,以便調用消息群發(fā)高級接口。

KVDB是新浪云開發(fā)的分布式key-value數據存儲服務,用來支持公有云計算平臺上的海量key-value存儲[15]。KVDB支持的存儲容量很大,支持億萬級數據容量,遠遠滿足跨平臺發(fā)布系統的數據緩存需求。KVDB采用無狀態(tài)對等的分布式架構,在任一節(jié)點發(fā)生故障時,仍然保持正常運行。KVDB提供穩(wěn)定可靠的NoSQL鍵值數據庫服務,數據保持3份冗余,支持前綴檢索,讀寫均能達到10萬QPS(Query Per Second,即每秒查詢率)。

借助新浪云KVDB緩存以及定時任務,系統實現了對企業(yè)號下所有應用不同access_token值的自動更新、存儲以及快速讀取,提高了接口訪問憑證的穩(wěn)定性和調用效率,進一步提高了閾值消息發(fā)送效率。

2.3 定時任務云托管及消息異步執(zhí)行

新浪云SAE中提供2種定時任務方式:①是每隔一定時間執(zhí)行;②是在某個特定時間點執(zhí)行。定時任務服務可以用來定期觸發(fā)應用執(zhí)行一些后臺任務,定期獲取access_token值、定期輪詢閾值條件、定期推送消息等。定時任務的執(zhí)行以 HTTP 方式觸發(fā),觸發(fā)后真正執(zhí)行的是應用中定義的 HTTP 回調函數。定時任務采用分布式架構,支持N/2節(jié)點冗余;任務執(zhí)行的方式是 HTTP 調用(GET 方法),它具備以下優(yōu)點:支持超長的任務執(zhí)行時間,最長為1800 s;任務執(zhí)行精準度高,誤差小于10 s;普通應用最大可以并發(fā)執(zhí)行12個定時任務。

在執(zhí)行消息推送時,如果群發(fā)用戶很多,使用輪詢一對一發(fā)送的方式將出現極大的延遲,跨平臺發(fā)布系統采用任務隊列的消息異步執(zhí)行方式。SAE任務隊列是一種分布式隊列服務,提供異步離線隊列服務;提供針對HTTP方式的異步任務執(zhí)行,如給500個用戶同時發(fā)送預警消息,頁面容易超時,而異步離線隊列,能實現任務非阻塞執(zhí)行,也支持失敗回調。

2.4 閾值條件觸發(fā)消息推送機制

跨平臺發(fā)布系統的核心代碼主要搭載在新浪云應用SAE的SVN代碼倉中(SVN是Subversion的簡稱,是一個開放源代碼的版本控制系統),通過新浪云服務器的定時任務功能,定期執(zhí)行SVN倉代碼,來獲取和處理存放在Storage存儲空間的氣象數據,當檢測到變量達到設定的閾值時,在KVDB緩存中進行變量新、舊值替換,并將新的變量存入KVDB中(避免重復推送,下一時刻再進行閾值判定),最后執(zhí)行消息推送代碼(圖2)。

圖2 跨平臺發(fā)布系統的關鍵流程

在系統關鍵流程中,如果設定的閾值條件是任意氣象要素值,則可以實現任意氣象要素的超閾值推送;如果將預警信號發(fā)布時間作為閾值條件,并加上預警信號類型以及升、降級條件判斷,則可以實現預警信號更新時的消息推送;如果將文件時間作為閾值條件,則可以實現文件更新時消息提醒功能。

以上3種不同閾值條件的消息推送,實現了氣象信息發(fā)布平臺與微信企業(yè)號專業(yè)氣象服務產品“無縫”對接,均由跨平臺發(fā)布系統完成。

3 應用成效

3.1 氣象實況及超閾值推送模塊

氣象實況模塊可以查詢當前氣象站點的多個氣象要素:氣溫、降水、小時極大風等;跨平臺發(fā)布系統使氣象數據在多個平臺間流轉,可以根據用戶需求設定閾值,實現氣象要素超閾值自動推送提醒,實現微信企業(yè)號應用定制化服務。如“川島航線”專業(yè)用戶在出現陣風8級時將停航,設定陣風超7級時,企業(yè)號應用推送提醒消息。在文獻[16]中,已詳細闡述極大風超閾值推送原理在“川島航線”氣象專業(yè)服務中的應用。借助實況風力閾值推送,企業(yè)適時安排停、售票業(yè)務,生產經營得以順利開展。在大風天氣過程時,持續(xù)、加密的閾值推送也為企業(yè)爭取了更多通航時間,創(chuàng)造了更多經濟效益。

3.2 氣象預警推送模塊

氣象預警模塊主要針對跨越不同市縣的專業(yè)氣象用戶。因氣象預警是屬地發(fā)布原則,為滿足用戶需求,跨平臺發(fā)布系統實現了微信企業(yè)號中多個應用、不同屬地氣象預警信號同步發(fā)布。如“廣中江高速”關注江門蓬江、江海和鶴山的預警信息(圖3);“江門供電”關注全市各區(qū)縣預警,在氣象信息發(fā)布平臺更新預警時,微信企業(yè)號同步更新,多個應用預警更新時差小,達到了“一次發(fā)布,多頭同步”的效果。截至2020年6月,“江門供電”已有411人加入微信企業(yè)號,用戶根據系統推送的氣象預警,適時啟動內部應急響應,安排電力檢修、巡查工作。在2018年一次回訪中,用戶反饋在跨平臺發(fā)布系統查詢天氣實況很方便,戶外作業(yè)也能第一時間接收各地預警推送消息,對帶電作業(yè)幫助很大。

3.3 氣象預報服務產品推送模塊

跨平臺發(fā)布系統檢測文件時間,當文件時間出現變化,推送更新消息。如《廣中江高速氣象專報》以PDF格式發(fā)布,在氣象信息發(fā)布平臺發(fā)布后,系統同步在微信企業(yè)號中實現自動推送(圖4)。據用戶反饋,微信企業(yè)號推送的《氣象專報》類產品,較傳統的傳真、郵件方式更加及時,也方便接收。

圖3 微信企業(yè)號中“廣中江高速”應用的沿線預警信號消息推送: (a)預警信號升級消息,(b)預警信號降級消息,(c)預警發(fā)布及解除消息

圖4 微信企業(yè)號應用《專報》更新推送及大風超閾值推送: (a)《專報》更新推送消息,(b)PDF格式的專報內容,(c)川島航線大風超閾值推送

3.4 WebGIS實況顯示模塊

WebGIS是Web(World Wide Web)技術應用于GIS(Geographic Information System)開發(fā)的產物[17-18]。跨平臺發(fā)布系統借助WebGIS技術及百度地圖API開放接口,運用HTML5+CSS+JavaScript技術實現Web版地理信息與氣象實況相疊加,實現高速沿線氣象實況顯示。如在“中開高速”氣象服務中,可從百度地圖API接口標記出項目途經點;點擊列表中的站點名稱,能跳轉并直接在地圖上顯示該站點位置以及當前氣象站實況信息(圖5)??缙脚_發(fā)布系統完成了高速公路沿線氣象站實況數據的逐5 min自動更新,2019年某次局地降雨過程,另一“開春高速”6標段用戶根據項目沿線點天氣情況,適時調整混凝土澆筑計劃,避免了損失;據該用戶事后評估反饋,至少節(jié)約了6車混凝土,同時避免了雨天在山間行駛的風險。

圖5 基于WebGIS的中開高速線路途經點及沿線氣象站分布: (a)高速沿線附近區(qū)域站列表,(b)中開高速線路途經點標記,(c)沿線氣象站實況要素顯示

4 結論

本文借助新浪云服務器SAE、微信企業(yè)號優(yōu)勢,搭建了專業(yè)氣象跨平臺發(fā)布系統,給出了系統架構、發(fā)布流程和關鍵技術。系統減少了氣象信息發(fā)布成本,解決了專業(yè)氣象信息跨平臺同步發(fā)布問題,實現了移動端氣象信息的自動提醒。

專業(yè)氣象跨平臺發(fā)布系統已在“江門市氣象公共服務中心”企業(yè)號中應用,給“川島航線”、“江門供電”、“廣中江高速”等專業(yè)用戶帶來極大便利,并創(chuàng)造了一定的經濟效益。這將為全國各地“互聯網+氣象”專業(yè)氣象跨平臺發(fā)布提供一個良好的建設思路。

猜你喜歡
跨平臺消息氣象
氣象樹
《內蒙古氣象》征稿簡則
內蒙古氣象(2021年2期)2021-07-01 06:19:58
氣象戰(zhàn)士之歌
心聲歌刊(2019年5期)2020-01-19 01:52:52
一張圖看5G消息
跨平臺APEX接口組件的設計與實現
測控技術(2018年9期)2018-11-25 07:44:58
大國氣象
基于QT的跨平臺輸電鐵塔監(jiān)控終端軟件設計與實現
基于OPC跨平臺通信的電機監(jiān)測與診斷系統
基于B/S的跨平臺用戶界面可配置算法研究
消息
金乡县| 丹东市| 从化市| 大埔县| 新田县| 宝丰县| 贡山| 巴东县| 青铜峡市| 紫金县| 沿河| 双辽市| 安吉县| 罗山县| 岑溪市| 云浮市| 年辖:市辖区| 杂多县| 彰化市| 天津市| 安平县| 江达县| 开江县| 蕲春县| 邮箱| 会同县| 彰武县| 广宁县| 河北省| 凤庆县| 松阳县| 宜良县| 西青区| 芦山县| 特克斯县| 鲁山县| 郴州市| 邹平县| 南陵县| 阜新市| 伊宁县|