邱忠洋 蔣駿 陳宏波 姚麗娜



摘要:為解決氣象信息及時高效地以網格化形式精準靶向發布給決策者或普通用戶這一實際需求,常州市氣象局依托局內數據共享系統,結合常州市突發事件預警信息平臺、常州市市域社會治理現代化聯動指揮平臺,設計研發了氣象災害防御網格化治理平臺。該平臺可將預警、預報、重要通知、氣象防災減災等信息高效精準地發布至網格員使用的PC端或APP端,再由網格員擴散。技術上,氣象災害防御網格化治理平臺所使用的數據共享系統引入了Token令牌管理機制,軟件設計上采用了B/S數據處理架構,數據庫依托Oracle,數據調取采用了Mybatis框架提供API服務。實際使用效果表明,系統靈活高效,基本滿足服務的需求。
關鍵詞:氣象災害;網格治理;Token令牌;B/S架構;Oracle數據庫;API服務;Mybatis框架;氣象災害防御網格治理平臺
中圖分類號:TP399? ? ? ? ?文獻標識碼:A
文章編號:0439-8114(2023)12-0188-07
DOI:10.14088/j.cnki.issn0439-8114.2023.12.033 開放科學(資源服務)標識碼(OSID):
Design and implementation of a grid governance platform for meteorological disaster prevention based on a data sharing system
QIU Zhong-yang,JIANG Jun,CHEN Hong-bo,YAO Li-na
(Changzhou Meteorological Bureau, Changzhou? 213022,Jiangsu,China)
Abstract: In order to address the practical need for timely and efficient targeted release of meteorological information to decision maker or ordinary users in a grid format, the Changzhou Meteorological Bureau, relying on the internal data sharing system, combined with the Changzhou emergency warning information platform and the Changzhou municipal social governance modernization linkage command platform, had designed and developed the grid governance platform for meteorological disaster prevention.This platform could efficiently and accurately publish information such as warnings, forecasts, important notifications, meteorological disaster prevention and reduction to the PC or APP used by grid personnel, and then spread it by grid personnel. Technically, the data sharing system used in the grid governance platform for meteorological disaster prevention introduced a Token token management mechanism,the software design adopted a B/S data processing architecture, the database relied on Oracle, and the data retrieval used the Mybatis framework to provide API services.The actual use results indicated that the system was flexible and efficient, and basically met the service requirements.
Key words: meteorological disaster; grid governance; Token token; B/S architecture; Oracle database; API services; Mybatis framework; grid governance platform for meteorological disaster prevention
近年來,氣象災害呈多發頻發態勢,全世界各國政府普遍意識到防御氣象災害的重要性和迫切性。美國、日本在提高氣象信息的傳播效率、防災減災方面工作啟動較早。美國是氣象災害頻發國家,其防災減災的工作理念是軟件重于硬件,地方重于中央,很早就提出了氣象災害網格化治理方案。在現代化預警方面建立了完備的體系,通過Internet、電視、廣播等媒介實時公布氣象災害信息,指導公眾防災減災。美國的預警系統處于世界領先地位,能夠提前19 min預報,準確率達78%,預警傳播高效。日本因其特殊地理位置及環境,臺風、暴雨等自然災害較多,影響較大。日本建立了整套防災法律體系,明確國家、都道府縣、市街村、公民都有防災責任,建立了有效的網格化防災行政體制。中國是世界上氣象災害嚴重的國家之一,70%的自然災害是由氣象災害造成的,其造成的損失約占國內生產總值的1%以上,受災害影響人口超過4億人。中國歷來重視氣象災害防御,但與先進國家相比,還有一定的差距。上海市、蘇州市、杭州市等地均提出氣象防災減災網格化治理方案設想并相繼實施,本研究依托政府支持,強化面向網格員的氣象災害預警信息指導,全面打通部門與部門、部門與基層的信息通路。
隨著移動互聯網技術的飛速發展,信息服務不斷普及并全方位涉及到各領域,作為社會服務的重要組成部分,氣象部門擁有氣象監測、預報、服務等職能。在做好氣象預報的同時,也有責任和義務為特殊行業提供氣象資料服務。大到國家,依托國家發展和改革委員會批復的“新一代天氣雷達共享平臺”項目,中國氣象局建設了全國綜合氣象信息共享平臺(CIMISS),集數據收集與分發、質量控制與產品生成、存儲管理、共享服務、業務監控于一體的氣象信息共享系統[1,2]。小到地級市,如何提供相關部門所需的氣象數據信息,成為常州市氣象信息部門首要解決的問題。按照以往的規定,新建的業務系統都需要單獨為其建立數據庫,數據的處理、更新、存儲、分發過程復雜,效率低下,重復工作較多,推廣也比較困難。基于此,常州市在“十三五”氣象發展規劃中將共享基礎數據庫建設作為氣象信息化建設的重要一環。常州市氣象局已經形成了多元數據管理的基礎共享數據庫,解決了數據出口來源不一致、標準不統一的問題,為氣象災害防御網格化治理平臺的建設提供了業務和技術基礎。極端天氣災害頻發、重發引起常州市政府的高度關注。常州市也需為相關單位和決策機構提供及時、高效的氣象數據信息,方便政府決策以降低因災害帶來的損失。多種災害突發事件預警信息系統是突發事件的“消息樹”,其快速傳播發布事關人民群眾生命財產安全、事關地方經濟社會發展。堅持“人民至上、生命至上”的原則,把擔當實干挺在前面,將氣象災害預警信息傳播、氣象防災減災宣傳等氣象防災減災工作有序納入基層網格員服務事項清單,確保預警信息第一時間到村到戶到人,自覺幫助群眾解決“預警信息傳播最后一公里”的難題,切實為群眾辦實事成為當前氣象部門首要解決的問題。同時,在落實《江蘇省城鄉網格化服務管理辦法》中還要進一步推動氣象信息進網格,加強工作聯動,建立健全氣象防災減災融入基層網格化社會治理體系的工作機制。加快推進市域社會治理現代化聯動指揮平臺功能拓展,開發預警信息傳播、氣象防災減災宣傳、氣象災情收集上報等模塊,將常州市突發事件預警信息平臺與市域社會治理現代化聯動指揮平臺有機對接,提升氣象防災減災融入基層網格化社會治理體系的信息化水平。
1 系統相關技術
1.1 共享基礎數據庫
常州市氣象局信息部門于2015年開始建設基礎數據庫,起初是支撐氣象預報業務,后經過幾年不斷補充完善,數據庫逐漸成熟。數據庫選擇了Oracle作為數據存儲工具,應用數據包括實況監測、天氣預報、氣象預警、其他4種類型。目前依托基礎數據庫已經對多家單位提供了數據接口服務,其中不乏特殊需求的定制化開發。
1.1.1 Oracle數據庫 Oracle數據庫具備常規的數據庫操作功能,同時還自帶數據庫開發工具和應用客戶端。作為對象關系數據庫的代表,Oralce具有可存儲內容形式多樣、可拓展性強、結構化查詢共性等特點[3]。在平臺建設過程中對數據庫提出了明確的要求,一是需要數據庫具備強大存儲能力,數據吞吐量要求較高,二是數據需要支持除本單位業務系統外的多家單位業務系統,由于各單位使用的業務系統、操作系統不統一,這就需要數據庫具備強大的兼容性。基于上述原因系統選擇Oracle數據庫作為后臺數據庫。氣象災害防御網格治理平臺數據庫包括預警預報表、衛星雷達圖、用戶信息表、網格員信息表、Token管理表、資料清單詳情表等,部分結構如圖1所示。
1.1.2 共享庫的使用 對共享庫的使用流程是從數據庫中獲取基礎數據,然后形成接口,最后提供服務。基礎數據存儲在基礎共享數據庫中以元數據形式記錄,包括實況監測、天氣預報、氣象預警、其他,具體來看包括基本站信息(分鐘級的云、雨量、氣壓、溫度、濕度、風)、加密站信息、雷達、衛星資料、大氣成分(PM2.5、PM10)等。數據接口分為通用接口和專用接口2種類型,通用接口包括基礎的站點信息、溫壓濕封監測、預報預警信息、衛星雷達數據、大氣成分等,專用接口包括特殊行業所需要的定制化信息,如給定時間的雨量信息、氣溫信息、云信息、給定站點的風信息等,這些信息都需要通過定制化開發獲得。對外服務方面,服務單位主要是指通過向常州市氣象局申請獲取氣象信息的單位,已經達20余家,包括應急局、海事局、水利局、污水管理處、自然資源局、政法委、生態環境局、漁管委等。對應的服務單位既有通用接口需求,也有定制化需要。
1.2 系統后端架構構建
1.2.1 Spring Boot后端架構構建 氣象災害防御網格治理平臺后端主要是基于Java語言的maven構建的Spring Boot,開發工具為idea,服務器使用的是輕量級阿里云應用服務器,氣象災害防御網格治理平臺的數據庫依賴spring-jdbc,spring-boot-starter-jdbc驅動,觸發數據庫訪問相關的自動配置行為。考慮到氣象災害防御網格治理平臺使用的Oracle是關系型數據庫,用于存放持久化數據,將數據存儲在硬盤中讀取速度較慢,因此引入了redis緩存技術,redis是NoSQL(非關系型數據庫),也是緩存數據庫,可將數據存儲在緩存中,緩存讀取的速度較快,能夠提高小程序客戶端獲取數據的運行效率,但是數據在時間保存上有所限制。小程序客戶端同步使用了redis,取長補短。
1.2.2 Token令牌管理機制 氣象災害防御網格治理平臺使用了共享數據庫提供的數據接口,在供給過程中為保障數據安全采用Token令牌管理機制。傳統基于服務器的驗證方式都是通過在服務端存儲用戶的登錄信息來辨別身份。這種方式一般通過存儲 session 來完成,可放在內存或磁盤上。但是隨著Web、應用程序以及移動端的興起,這種驗證方式逐漸暴露出問題,尤其是在可擴展性方面[4]。Token的好處在于支持跨域,無狀態訪問,具備去耦性能,在網絡傳輸過程中性能更好,更加適合移動應用,因此對于移動小程序平臺選擇基于Token驗證方式保障數據傳輸的安全,基于Token的身份驗證流程為先由小程序客戶端使用用戶名、密碼請求登錄,氣象災害防御網格治理平臺服務端收到請求,驗證用戶名、密碼;驗證成功后,網格治理服務端會簽發1個Token,再把該Token發送給小程序客戶端,小程序客戶端收到Token后將其存儲起來,小程序客戶端每次向服務端請求資源的時候需要帶著服務端簽發的Token;氣象災害防御網格治理平臺服務端收到請求,去驗證客戶端請求中的Token,如果驗證成功,就向小程序客戶端返回請求的數據。Token身份驗證流程如圖2所示。
1.2.3 網格治理小程序開發技術 ? ?微信小程序基于微信平臺運行,是一種新的開放式應用,實現了觸手可及、用完即走理念。這是一種原Serverless云服務,客戶端無需配置服務器,代碼程序等運行皆由云函數、云數據庫、云存儲協作完成。通過騰訊提供的微信公眾平臺,下載微信開發者工具即可進行小程序的研發。通過網格治理小程序與網格治理公眾號的關聯,可以實現功能互補,打造更具個性的移動平臺。用戶通過掃二維碼的方式搜索小程序即可打開應用,不需要安裝與卸載,并且解決了在微信中瀏覽網頁卡頓等問題,提供了更加接近原生應用的體驗,能夠快速加載,用戶使用也更加流暢。
1.2.4 小程序與后端通信 在完成小程序開發之后,需要小程序端發起網絡請求。主要調用API即wx.requset,完成小程序端與Java后端接口之間的通信,因Spring Boot具有快速開發、便捷部署特性,項目采用了RESTful API。由于接口較多,細節復雜項目使用swagger自動生成相應的接口文檔。Swagger可以輕松地整合到Spring Boot中,并與Spring MVC程序配合生成RESTful API文檔。項目中由于存在眾多接口且不同端的工作進度不一樣,因此使用Postman進行接口測試。做接口測試的優勢在于節約時間、縮短項目成本、提高工作效率、提高系統的穩定性。
1.2.5 Mybatis框架提供API服務 Mybatis架構可以降低氣象災害防御網格治理平臺數據操作開發的復雜度,提高服務穩定性,實現數據接口統一管理,對入參、出參進行統一規范,通過配置實現數據操作。通過約定方式實現開發人員只需要配置Mapper.xml就可以提取所需數據[5]。后臺Mybatis框架分為3層,一是小程序訪問API接口,通過Token獲取接口調用信息,進行接口權限驗證,向后臺的body傳遞操作參數信息,映射到Map中,作為參數傳入,最后通過Mapper配置節點進入下一個流程。二是數據處理層,小程序在提交申請后,進行數據庫操作,將返回的結果根據配置進行映射,序列化返回結果。三是基礎支撐層,負責API接口層、數據處理層的基礎數據支撐。氣象災害防御網格治理平臺需要業務化運行,涉及對外服務的多家單位,考慮到對外服務接口使用的可擴展性、高效性、兼容性、通用性,選擇Mybatis作為系統開發的ORM框架。Mybatis框架結構如圖3所示。
1.3 開發語言及相關環境
氣象災害防御網格治理平臺采用Java語言開發以及J2EE體系架構,Java語言是由Sun microsystems公司推出的程序設計語言。Java是面向對象、安全、跨平臺、強大穩健、流行的程序設計語言。
J2EE體系架構則是將展示邏輯、業務邏輯與數據邏輯分離,充分利用操作系統的并行能力提高網絡計算能力。采用分層的設計理念,結合框架式開發降低軟件研發難度,降低其耦合度,增強軟件的可擴展性。本研究采用Spring+Struts+Mybatis架構及分層體系結構,前端采用html5\JS\JSON等頁面設計及返回技術,構建安全、穩定、高效、簡單實用的中心服務端應用[6]。
2 系統設計與實現
系統設計主要包括系統的研究實踐、業務系統建設、技術架構設計、Token分配數據流以及系統軟件設計,其最終目的是讓系統能夠實現業務正常運行。實踐證明設計方案可行、穩定。
2.1 業務系統研究實踐
常州市作為網格化治理試點城市,共設置網格6 257個,其中基礎網格4 962個、專屬網格1 295個;全市共配備專職網格員3 420名、兼職網格員9 660名,實現了網格無縫隙、無重疊。按照基層社會治理“一張網”要求統籌力量、整合資源、全面鋪設。作為防范化解各類風險全要素網格治理參與單位,常州市氣象局積極將氣象預警、防災減災各項重要信息推送至基層。
隨著移動互聯5G時代的到來,信息傳播發生了重大變革,依托微信獲取信息較多,常州市建立了13 080個全要素信息發布網格微信群,微信群以網格為單位,匯聚了同一居住區域或工作區域的居民,形成了可實現信息共享的微社群。微社群對氣象信息的上傳下達、多次傳播和輿論引導起到了積極作用。微社群中的居民在線反饋信息,能夠獲得24 h在線服務,網格員可以通過氣象災害防御網格治理平臺與氣象部門進行信息互動。氣象預警信息傳播被納入網格員工作清單,落實經過發布、傳播和反饋3個環節。信息發布選定網格范圍,定向發布,網格員依據工作職責,利用微社群公告欄、電子屏等途徑進行傳播。通過對接氣象災害防御網格治理平臺,實現API自動推送至網格員的APP或微社群,這種方式能夠實現一鍵式發布,3 min覆蓋13 080個微信群400萬名居民,精準靶向發布打通信息傳播的最后一公里。居民通過微信群反饋信息,網格員通過氣象災害防御網格治理平臺反饋信息。
2.2 業務系統建設
氣象災害防御網格治理平臺依托于常州市社會治理現代化聯動指揮平臺,對接常州市突發事件預警信息平臺,主要包含氣象災害預警信息、氣象災情處置、氣象防災減災知識宣傳和重要通知4個功能模塊,并由氣象部門PC網頁端、網格員小程序端2部分組成,市、縣級氣象部門按管理區域分別配置平臺賬號。氣象災害防御網格治理平臺具備氣象災害預警信息向全市網格員的APP自動推送功能,特定預警信息、氣象防災減災知識和重要通知以人工方式不定時進行推送,網格員可通過平臺以圖文形式及時向氣象部門報送氣象災情信息,并與值班人員進行互動交流。預警信息、氣象防災減災知識和重要通知的推送基本實現了以縣、鄉鎮為區域的精準靶向發布。平臺從宏觀角度分析,包括數據源、數據庫及數據服務3個模塊(圖4)。
1)數據源。該模塊主要任務在于統一數據源,將零散的數據資源整合到同一個數據庫,目前集中處理的數據源包括CIMISS、CMACAST、省局數據庫、自建數據庫及外部共享數據等。
2)數據庫。該模塊主要是使用了Oracle共享數據庫,對來源多、種類繁雜的氣象數據進行自動采集、處理、分批入庫。主要包括雷達圖、衛星云圖、自動站、大氣成分、降水量、溫度、濕度、氣壓、風、能見度等多種類型數據[7]。
3)數據服務。該模塊主要展示共享基礎數據庫的服務和推送,優先將預警預報信息推送給網格員,然后由網格員將信息通過微信群或其他方式推送給居民。
2.3 技術架構設計
從系統設計角度分析,為方便對系統的操作和管理分級設計了菜單項,包括總菜單氣象災害防御,分級菜單包括氣象預警信息、防災減災知識宣傳、災情處置以及重要通知,系統全局功能模塊如圖5所示。
1)氣象預警信息。該模塊設計了氣象預警的錄入、編輯、刪除、查詢功能。查詢條件可以依據所屬社區、預警標題、數據來源以及創建時間和狀態進行篩查。在氣象預警信息模塊中可以錄入預警信息,完成錄入后可以通過信息提示查看錄入的預警信息以及對應網格員。
2)防災減災知識宣傳。該模塊用于防災減災知識宣傳,具備新增、編輯、刪除、查詢功能,可進行防災減災知識的宣傳。通過新增功能可以錄入所屬地區、標題、內容等信息。也可以對錄入的信息進行刪除。錄入成功后在右下角會有信息提示,提示信息是否已經發布成功,顯示內容包括所屬地區、所屬網格、災情標題、時間以及網格員姓名。
3)災情處置。該模塊可以處理由網格員發布的氣象災害信息,氣象部門對網格員發布的信息有審核的權利。同時,具備查詢功能,可通過網格員姓名、災情標題及上報時間進行災情查詢。
4)重要通知。該模塊可以聯合其他單位發布重要通知。該模塊具備新增、編輯、刪除及查詢功能。目前已嘗試發布防空警報試鳴公告。
2.4 氣象災害防御網格治理平臺Token分配數據流
氣象災害防御網格治理平臺Token的分配由開發單位提出申請,氣象部門的管理機構進行審核分配,審核不通過則不分配賬號,審核通過則分配相應的APP ID;在程序調用過程中,使用分配的賬號自動生成匹配的Token數據串,在使用之前系統會對Token進行過濾、校驗,若不成功將返回到賬號申請階段,若通過,則進入接口調用階段;接口調用成功則反饋數據,數據反饋成功則進行數據解析、提取,前端調取數據,調用結束以后,Token將失效。若還需要調用接口,賬號將在下一次調用中重新生成Token[8,9]。本系統在實際使用過程中考慮到有多家單位調用氣象部門提供的接口,所以設置了Token方便區分,也方便后臺管理且能夠監測到外單位調用的頻率、次數(圖6)。
2.5 系統軟件設計
氣象災害防御網格治理平臺的模塊包括網頁(B/S)端用戶、Mybatis后臺服務及Oracle數據庫。用戶通過氣象部門提供的賬號登錄后,成功獲取新生成的Token。在接口的申請、審核通過后,提交操作請求,流程將通過POST/GET方式進入Mybatis后臺服務模塊,經過后臺一系列的判斷最終執行訪問數據的請求,通過SQL命令調用數據庫數據,數據庫經過數據準備并反饋至Mybatis后臺,數據以JSON方式傳遞。后臺經過對JSON數據解析,將前端需要的數據進行頁面展示。并將查詢的結果以日志的方式存到數據庫中[10,11]。軟件數據流如圖7所示。
3 系統應用與展示
軟件展示方面包括系統網站信息展示、小程序推送的信息展示。氣象災害防御納入網格管理,發生氣象災情后網格員及時到災情發生地拍照、攝像,以圖文形式及時向氣象部門報送氣象災情信息。發生重大氣象災情時,網格員第一時間向氣象部門初報信息,進一步了解災情信息后再續報。在各級氣象部門發布氣象災害預警信息后,網格員通過微信群等渠道快速發布,確保信息及時到戶到人、到單位到人。此外,各級氣象部門根據不同季節、當前主要災害性天氣類型定時或不定時向網格員發送災害天氣防御指南等氣象防災減災知識,網格員接收到相關信息后,通過微信群等渠道發布,開展氣象防災減災知識的宣傳教育(圖8、圖9)。為加快推進市域社會治理現代化聯動指揮平臺功能拓展,開發了氣象災害預警信息、氣象災情、氣象防災減災知識3個功能模塊,提高了氣象災害防御有關工作網格化管理的信息化水平。實際使用表明,系統運行效果良好,基本達到初步的業務要求。
4 小結
在氣象部門整體推進突發事件預警信息廣覆蓋工作過程中,常州市氣象局按有職責、有設施、有制度、有名庫的要求,從預警信息傳播責任、體制、機制及網絡等方面落實落細“基層氣象災害預警傳播功能配置標準”,并提出了氣象防災減災進網格的設想。通過常州市突發事件預警信息平臺與市域社會治理現代化聯動指揮平臺對接,實現氣象災害預警信息向氣象災害防御網格治理平臺、微信小程序的自動推送。氣象災害防御有關工作融入基層網格化社會治理體系,將氣象災害防御的觸角延伸到社會治理的“最小單元”,進一步健全氣象災害防御組織體系,增強全社會對突發性氣象災害的應急處置能力、氣象防災減災意識和公眾自救互救能力。氣象災害防御網格治理平臺應運而生,有效突破了氣象信息發布效率低、覆蓋面窄的瓶頸。本研究通過對共享基礎數據庫、Token令牌管理機制、Mybatis提供API服務的介紹,對氣象災害防御網格治理平臺所涉及的核心技術進行說明,同時在業務系統架構、軟件設計架構中做詳細的解析。就目前而言系統處于應用階段,還有很多不足和需要改進的地方。后期將研究重點放在海量數據處理和數據挖掘上,結合人工智能、大數據、云計算等將氣象研究成果應用到氣象服務中去。同時將全方位有重點地結合社會需求,讓氣象信息滿足“行業+氣象”的實際需要,讓氣象信息發揮更大的作用。
參考文獻:
[1] 熊安元, 趙 芳, 王 穎, 等. 全國綜合氣象信息共享系統的設計與實現[J]. 應用氣象學報, 2015, 26(4): 500-512.
[2] 中國氣象局關于印發《氣象信息化行動方案(2015—2016年)》的通知(氣發〔2015〕60號文)[EB/OL]. https://www.gov.cn/xinwen/2015-08/25/content_2919718.htm,2015-08-25.
[3] 劉志成.Oracle數據庫管理與應用實例教程[M]. 北京:人民郵電出版社, 2010.
[4] 林 琳.詳細了解Cookie session token[J]. 計算機與網絡,2019,45(22):38-40.
[5] 呂學婷,王仁波.基于Springmvc和Mybatis框架的門戶網站及其內容管理系統的設計與實現[D].南昌:東華理工大學,2017.
[6]? 蔡 明,陳永運. J2EE架構的研究與應用[J]. 計算機應用與軟件,2004(1):42-43,128.
[7] 薛建軍,周 杰,杜景林.改進型實時氣象資料處理系統的設計與實現[J],計算機工程與設計,2012,33(4):1623-1628.
[8] 孫石陽,邱宗旭,劉東華,等.智能專業氣象信息融合與服務系統建設初步研究[A]. 第27屆中國氣象學會年會雷電防護科學與技術發展分會場論文集[C].北京:中國氣象學會,2010.
[9] 基于.Net Framework 4.0 Web API開發(4):ASP.NET Web APIs 基于令牌TOKEN驗證的實現 [EB/OL].https://blog.csdn.net/weixin_34355715/article/details/86229348,2016-11-27.
[10] 李 浩.氣象應急服務系統體系結構設計與實現[D].成都:電子科技大學,2013.
[11] 李代立,陳 榕. WebSocket在Web實時通信領域的研究[J].電腦知識與技術,2010,6(28):7923-7925,7935.