黃 志,黃 珩,梁維亮,梁苑苑
(1.廣西壯族自治區(qū)氣象信息中心,南寧 530022;2.河池市氣象局,廣西 河池 547000;3.廣西壯族自治區(qū)氣象臺,南寧 530022)
隨著云計算、大數(shù)據(jù)等新型技術(shù)的發(fā)展與應(yīng)用,氣象部門順應(yīng)技術(shù)發(fā)展趨勢,運用云存儲與云計算平臺以及大數(shù)據(jù)技術(shù),實時收集、處理、存儲和分析海量氣象大數(shù)據(jù),以分布式節(jié)點存儲、多節(jié)點并行計算等方式提供智能、可線性擴容的氣象大數(shù)據(jù)處理能力,建立統(tǒng)一的氣象大數(shù)據(jù)環(huán)境,構(gòu)建開放、智能的眾創(chuàng)業(yè)務(wù)平臺和監(jiān)控平臺,有效提升服務(wù)支撐能力,讓數(shù)據(jù)和計算能力成為普惠社會和經(jīng)濟的基礎(chǔ)[1],氣象大數(shù)據(jù)云平臺“天擎”(CMADaaS)作為全國氣象部門信息化的核心平臺應(yīng)運而生。
“天擎”作為全國氣象部門信息化的核心平臺,上線后將替代CIMISS 作為國省新一代統(tǒng)一數(shù)據(jù)環(huán)境,助力氣象業(yè)務(wù)高質(zhì)量、協(xié)同創(chuàng)新發(fā)展[2-3]。中國氣象局正在積極推進氣象業(yè)務(wù)技術(shù)體制改革,并明確提出構(gòu)建以氣象大數(shù)據(jù)云平臺為“云”、氣象業(yè)務(wù)系統(tǒng)為“端”的“云+端”的氣象技術(shù)體制,實現(xiàn)數(shù)據(jù)管理、加工處理、應(yīng)用服務(wù)的高度集約;推進氣象業(yè)務(wù)系統(tǒng)與氣象大數(shù)據(jù)云平臺的深度融合,實現(xiàn)各項業(yè)務(wù)和系統(tǒng)之間有效銜接和有機互動。
“天擎”作為全國氣象部門信息化“數(shù)算一體”的核心平臺,是促進形成“云+端”業(yè)務(wù)模式新格局的核心軟件技術(shù)平臺,是消除“數(shù)據(jù)孤島”、“應(yīng)用煙囪”,推進資源整合、流程再造,發(fā)揮數(shù)據(jù)聚集規(guī)模效應(yīng),實現(xiàn)業(yè)務(wù)集約高效的關(guān)鍵。2020 年12 月,“天擎”1.0 完成全國部署并進入業(yè)務(wù)試運行階段,形成了“1+31”的業(yè)務(wù)布局;山東省率先開展了對“天擎”平臺部署和業(yè)務(wù)試運行[4],青海省就“天擎”的數(shù)據(jù)接口與CIMISS 系統(tǒng)的MUSIC 接口進行了比對分析,論述了“天擎”不僅解決CIMISS 服務(wù)接口現(xiàn)狀問題,而且降低存儲技術(shù)開發(fā)難度,解耦應(yīng)用與數(shù)據(jù),直接支撐業(yè)務(wù)系統(tǒng),能與現(xiàn)有業(yè)務(wù)系統(tǒng)實現(xiàn)平穩(wěn)銜接[5]。廣西氣象部門相關(guān)業(yè)務(wù)單位如廣西壯族自治區(qū)氣象信息中心、廣西壯族自治區(qū)氣象災(zāi)害防御技術(shù)中心也率先對其所轄重要業(yè)務(wù)系統(tǒng)開展基于“天擎”的融入再造工作,并取得了初步的成效。本文以氣象短時臨近“三小時”強降水精細化氣象預(yù)警服務(wù)處理流程為例(以下簡稱“三小時”預(yù)警服務(wù)),針對其業(yè)務(wù)處理流程從數(shù)據(jù)注冊、數(shù)據(jù)存儲、處理流程再造、算法融入“天擎”加工流水線以及“天境”運行監(jiān)控全過程設(shè)計,探討各相關(guān)關(guān)鍵環(huán)節(jié)的設(shè)計和實現(xiàn)方法,為今后業(yè)務(wù)系統(tǒng)基于“天擎”的“云+端”服務(wù)模式改造融入提供技術(shù)支撐和解決思路。
“天擎”繼承了CIMISS 的全部標準規(guī)范,優(yōu)化數(shù)據(jù)匯聚、加工、服務(wù)和應(yīng)用支撐全流程,全面提升數(shù)據(jù)交換和存儲服務(wù)時效。它的一個顯著的功能就是提供“數(shù)算一體”的平臺化服務(wù),具備了全面支撐“云+端”的氣象業(yè)務(wù)的能力。其中“天擎”的DPL(Data Processing Line)加工流水線子系統(tǒng),是“天擎”的一個特色模塊,它以提升氣象數(shù)據(jù)的加工處理能力、優(yōu)化數(shù)據(jù)加工處理流程為主要目標,是進行“天擎”業(yè)務(wù)應(yīng)用系統(tǒng)剝離算法、算法上云,產(chǎn)品直接云上存儲,進行云化改造的核心功能模塊?!疤烨妗盌PL 中的“算法”是指為解決一個特定問題、生成一類數(shù)據(jù)產(chǎn)品或?qū)崿F(xiàn)一個業(yè)務(wù)邏輯所定義的有序指令集。包括源代碼和可執(zhí)行文件兩種形態(tài),其中源代碼供接口開放平臺和眾創(chuàng)支撐平臺封裝使用,可執(zhí)行文件供加工流水線加載使用;DPL 的“加工處理任務(wù)”是針對相對靜態(tài)的算法添加了一定的策略并在加工流水線上動態(tài)執(zhí)行,稱為發(fā)布一個加工處理任務(wù)。所以“天擎”的DPL 能夠?qū)崿F(xiàn)某個加工處理任務(wù)在流水線上運行前進行算法部署、資源分配、執(zhí)行策略配置等相關(guān)功能,以及解決所有任務(wù)運行過程中的調(diào)度問題,并具備對整個加工流水線的任務(wù)進行綜合監(jiān)視和控制的能力。今后在業(yè)務(wù)系統(tǒng)融入“天擎”的過程中,對業(yè)務(wù)系統(tǒng)的各個業(yè)務(wù)處理流程進行分解,并改造成適合“天擎”DPL 運行的加工流水線,是業(yè)務(wù)系統(tǒng)進行“天擎”融入改造的關(guān)鍵環(huán)節(jié),并助力“天擎”最終實現(xiàn)數(shù)據(jù)管理、加工處理、應(yīng)用服務(wù)的高度集約。個人或業(yè)務(wù)系統(tǒng)模塊算法的“天擎”DPL設(shè)計與融入流程如表1 所示。
表1 “天擎”DPL 設(shè)計與融入流程
“三小時”預(yù)警服務(wù)是氣象短時臨近預(yù)報的重要業(yè)務(wù),該服務(wù)根據(jù)“三小時”強降水精細化氣象預(yù)警工作流程和服務(wù)標準,視降雨發(fā)生發(fā)展情況逐小時或逐3h 開展一次精細化服務(wù)或暴雨預(yù)警服務(wù)。該服務(wù)主要啟動標準是通過實時統(tǒng)計全區(qū)自動站的1h、3h、6h、24h 累計降水量,如超過規(guī)定的閾值和該站點的歷史極值,則發(fā)布的預(yù)警信息。該服務(wù)(算法)的區(qū)級降水閾值判斷標準如下:
(1)全區(qū)范圍內(nèi)有1 個自動氣象站前1h 雨量≥80mm,如果有站點1h 雨量實況突破當?shù)貧v史極值的。
(2)全區(qū)范圍內(nèi)有1 個自動氣象站前3h 雨量≥100mm,如果有站點3h 雨量實況≥200mm(沿海站點≥300mm)。
(3)全區(qū)范圍內(nèi)有1 個自動氣象站前6h 雨量≥150mm,如果有站點6h 雨量實況≥250mm(沿海站點≥350mm)。
(4)全區(qū)范圍內(nèi)有1 個自動氣象站前24h 雨量≥250mm,如果有站點24h 雨量實況≥300mm(沿海站點≥400mm)。
該服務(wù)原處理流程是外掛單機版的應(yīng)用程序,通過讀取CIMISS 的地面小時數(shù)據(jù)進行累加和閾值判斷,結(jié)果回寫外置數(shù)據(jù)庫。本服務(wù)原處理流程如圖1 所示。
圖1 三小時預(yù)警服務(wù)原處理流程圖
“天擎”實行“氣政通”個人實名認證登錄,個人用戶可以通過OA 賬戶自動登錄“天擎”PORTAL?!疤烨妗钡馁~戶按照功能分為兩類:MUSIC 接口賬戶和應(yīng)用融入賬戶。MUSIC 接口賬戶用于通過接口調(diào)取氣象數(shù)據(jù),應(yīng)用融入賬戶用于進行系統(tǒng)融入改造。按照氣象大數(shù)據(jù)云平臺業(yè)務(wù)管理規(guī)定,賬戶使用分兩種情況:業(yè)務(wù)系統(tǒng)使用、個人科研使用,分別有不同的管理要求。
“天擎”開放的資源有數(shù)據(jù)(數(shù)據(jù)存儲、數(shù)據(jù)訪問、數(shù)據(jù)管理、數(shù)據(jù)歸檔、公共元數(shù)據(jù)等)、算法(算法計算資源,算法庫管理,產(chǎn)品加工調(diào)度等)、接口(數(shù)據(jù)服務(wù)接口、接口眾創(chuàng)服務(wù)、接口管理與發(fā)布等)。本服務(wù)需要進行DPL 業(yè)務(wù)流程再造,在此過程中會涉及到產(chǎn)品數(shù)據(jù)四級編碼注冊、數(shù)據(jù)存儲、MUSIC接口的應(yīng)用以及天鏡的運行監(jiān)控。所以需要注冊“天擎”應(yīng)用融入賬戶,才能擁有在“天擎”規(guī)范下進行數(shù)據(jù)公共元注冊(MMD)、數(shù)據(jù)存儲設(shè)計(SOD)、MUSIC數(shù)據(jù)接口發(fā)布、匹配的算力資源等功能權(quán)限,實現(xiàn)對數(shù)據(jù)產(chǎn)品在“天擎”環(huán)境下的數(shù)據(jù)融入,并進行后續(xù)的DPL 加工流水線的設(shè)計和部署運行。
“天擎”遵循和繼承了CIMISS 資料的四級編號規(guī)范,氣象資料四級編碼規(guī)則為X.YYYY.NNNN.MZZZ,第1 位“X”大寫字母標識14 大類資料的簡碼;第2 級“YYYY”資料編碼4 位數(shù)字標識國家級和省級編碼分段(廣西為“6800-6999”),目前已初步固化分配至各單位。第3 級”NNNN”資料編碼4位數(shù)為2 級資料下面的小類,作為各個單位自身各業(yè)務(wù)系統(tǒng)的分類,由廣西壯族自治區(qū)氣象局各直屬單位和市氣象局為自己的業(yè)務(wù)系統(tǒng)自定義編碼段。
確定了四級編碼之后,應(yīng)用融入賬戶需要完成該數(shù)據(jù)產(chǎn)品四級編碼的公共元數(shù)據(jù)(MMD)注冊,在注冊的過程中完成擬發(fā)布的數(shù)據(jù)產(chǎn)品分類、數(shù)據(jù)產(chǎn)品表結(jié)構(gòu)設(shè)計方案的提交[6-10]和所需的MUSIC 接口;在MMD 審核通過之后,存儲管理模塊(SOD)會將提交的表結(jié)構(gòu)的數(shù)據(jù)庫字段與MUSIC 接口字段進行映射綁定,并自動完成物理表的創(chuàng)建和對應(yīng)的MUSIC 接口發(fā)布。圖2 為“天擎”環(huán)境下數(shù)據(jù)注冊發(fā)布流程圖。
圖2 “天擎”業(yè)務(wù)數(shù)據(jù)注冊流程
MUSIC 是用戶從“天擎”數(shù)據(jù)環(huán)境中獲取數(shù)據(jù)或產(chǎn)品的應(yīng)用編程接口,采用瘦客戶端模式。MUSIC API 支持windows、Linux 以及AIX 操作系統(tǒng),包含常用的開發(fā)語言工具包主要有.NET、Java、PHP、C/C++、Python 等,其他語言開發(fā)包將根據(jù)用戶需求給予支持。本算法基于“天擎”提供的Java 客戶端開發(fā)包,客戶端開發(fā)包由一組庫文件(或jar 包)加配置信息(Client.config)組成,通過加載客戶端庫文件即可調(diào)用接口函數(shù),實現(xiàn)從“天擎”數(shù)據(jù)環(huán)境中獲取數(shù)據(jù)或產(chǎn)品功能,用戶在進行應(yīng)用程序開發(fā)時只需要完成算法邏輯流程的程序編寫以及最終的程序封裝。
本服務(wù)數(shù)據(jù)處理、數(shù)據(jù)存儲以后最終預(yù)警產(chǎn)品獲取可按“天擎”的“云+端”融入改造要求進行“云”端業(yè)務(wù)融入改造,而預(yù)警信息發(fā)布流程“端”則置于“天擎”環(huán)境外運行?!疤烨妗杯h(huán)境下的DPL 改造融入流程如下圖3 所示。
圖3 “天擎”環(huán)境下的DPL 改造融入流程
目前DPL 只支持可執(zhí)行的運行程序,所以用戶提交的算法必須以可執(zhí)行的形態(tài)運行[1]。落實到具體操作部署,即個人業(yè)務(wù)賬戶在“天擎”PORTAL“我的算法”模塊下對封裝好的jar 包在線進行DPL 算法注冊,并提交至DPL 管理后臺經(jīng)管理員對該算法進行審核生效后,個人用戶加載該算法至DPL 集群相關(guān)運算節(jié)點對應(yīng)的權(quán)限運行目錄,并通過設(shè)置定時觸發(fā)的形式來啟動該算法加工流水線的運行。
個人應(yīng)用融入賬戶基于DPL 模塊可以實現(xiàn)個人算法的有效管理(算法分類存儲、版本管理、檢索下載、授權(quán)使用、運行管理等),同時可申請他人算法的使用權(quán)限;用戶在具備算法使用權(quán)限(本人算法或已被他人授權(quán)的算法)的基礎(chǔ)上,使用任務(wù)定義功能可以創(chuàng)建自己的加工處理任務(wù),并可以配置任務(wù)的調(diào)度策略,進一步通過任務(wù)管理功能,可以對任務(wù)進行啟停操作,生成自己的產(chǎn)品[1]。
目前“天擎”DPL 的業(yè)務(wù)運行監(jiān)控環(huán)節(jié),依據(jù)天鏡標準接口改造升級所有加工處理流程,增加發(fā)送DI 和EI 信息的業(yè)務(wù)功能,并通過接口的形式對接天鏡系統(tǒng),并在天鏡顯示其運行狀況。DPL 的算法管理Web 前端對接“天擎”個人“我的算法”管理接口,所以個人賬戶在“天擎”PORTAL 通過“我的算法”管理頁面,可直觀的看到DPL 算法任務(wù)各個環(huán)節(jié)的調(diào)度計劃以及下次執(zhí)行時間,同時通過“日志查看”可以看到各環(huán)節(jié)執(zhí)行時的日志輸出。
經(jīng)本算法統(tǒng)計處理的結(jié)果通過MUSIC 接口回寫到上述已注冊和發(fā)布的“天擎”數(shù)據(jù)表,并通過MUSIC 接口查詢讀取數(shù)據(jù),初步形成了數(shù)據(jù)、算力、算法在“天擎”環(huán)境下集約化管理和共享??蛻舳酥恍枰ㄟ^接口直接讀取預(yù)警數(shù)據(jù)并生成預(yù)警信息和發(fā)布,使得“端”的處理流程大大簡化,程序代碼大幅精簡,實現(xiàn)了對“端”的輕量化改造。
本文以實際業(yè)務(wù)需求為導(dǎo)向,遵循“天擎”業(yè)務(wù)融入標準和應(yīng)用規(guī)范,基于“天擎”DPL 實現(xiàn)了對原有業(yè)務(wù)處理流程的改造融入,一方面解決了實際業(yè)務(wù)中的需求,另一方面形成了一套可執(zhí)行、可參考、實操性強的“天擎”DPL 設(shè)計與應(yīng)用樣例,為今后各氣象業(yè)務(wù)系統(tǒng)的“云+端”融入改造積累了可借鑒的經(jīng)驗。
后續(xù)工作可基于“天鏡”的ES 庫(ElasticSearch)自定義更多的EI 和DI 信息,以豐富“天鏡”的監(jiān)控內(nèi)容;同時積極開展基于Docker 的DPL 運行環(huán)境的研究,從而全面提升DPL 的運行支撐環(huán)境的兼容性,以利于后續(xù)更好地開展“天擎”融入工作。
“天擎”環(huán)境下的業(yè)務(wù)改造融入降低了對商業(yè)化軟件框架的開發(fā)要求,支持多樣化的開發(fā)語言并提供開發(fā)包,采用基于接口的開發(fā)形式降低了算法融入的開發(fā)難度。今后通過進行相關(guān)技術(shù)培訓和不斷深入探索,推動全區(qū)氣象數(shù)據(jù)、算力、算法的集約化管理和高效共享,為形成“云上部署、終端應(yīng)用”的氣象云生態(tài)打下基礎(chǔ)[11-17]。