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