李兆隆 呂佳麗 鄭川 毛振江



摘要:基于云南地震應急指揮技術軟件系統現狀與使用中發現的問題,結合新的應急需求與應用技術,對其在彈性資源調用、空間算法、多線程并行運算等多個方面進行了優化,設計了云環境下的云南地震應急指揮技術軟件系統,并對新舊軟件系統的運行指標進行了對比分析。結果表明:采用了微服務架構的新軟件系統,在運算速度、資源使用效率、服務形式、運維難度等多方面均優于現用軟件系統,更加適應目前云南省內地震應急的新需求。
關鍵詞:云環境;地震災害評估;云南地震應急指揮;系統優化
中圖分類號:P315.952 ??文獻標識碼:A ??文章編號:1000-0666(2019)02-0196-08
0 引言
地震應急的損失評估與決策工作是地震應急救援的重要基礎之一,它以應急基礎數據為支撐,對地震可能造成的人員傷亡、經濟損失等進行科學的預估,為地震應急救援決策提供支持(聶高眾等,2011)。隨著地震應急指揮體系開放性、共享性和互聯程度的不斷提高,應急快速評估工作逐漸成為各級地震應急技術平臺體系應用、運維的核心業務。各省、自治區、直轄市地震局在應急指揮技術系統改造、新軟件研發方面也進行了大量嘗試。多數省局依托“十五”系統建設成果,通過硬件更替、模型替換、平臺軟件升級等方式進行了“十五”系統優化;個別省局則以“十五”系統建設、使用經驗為基礎,重新研發了本地化的指揮系統,其研發重點主要集中在性能提升、評估模型本地化與豐富產出資料方面,并針對私有云進行了部署嘗試。
本文就云南省地震局應急指揮技術系統在多年地震應急中的使用經驗與本地化研究開發中發現的問題和不足進行分析探討,結合新時期應急需求的變化以及當前新技術發展,從軟件工程的角度,提出優化改進的云計算環境下的云南地震應急指揮技術軟件系統(以下簡稱軟件系統)設計方案。
1 應急指揮技術軟件系統現狀
云南省地震局應急指揮技術系統初建于2005年,依托中國地震局“十五”項目完成建設(以下簡稱“十五”系統)。“十五”系統主要基于C/S體系結構完成各功能的程序設計,依托B/S體系結構進行統一化的界面集成,使用數據服務總線技術完成各功能的總體應用集成,通過Oracle、ArcGIS等平臺軟件完成矢量數據存儲與計算等功能(帥向華等,2009a,b)。
云南省地震局不斷以需求為引領、問題為導向、技術發展為基礎,經多年的本地化研究,在“十五”系統基礎上,進行了多次系統重構與功能更新,發展出多個地震應急指揮技術系統的組成軟件,以相對獨立分散的多個軟件逐步替代“十五”系統的多功能綜合軟件。這些組成軟件在構架上相互獨立,各自使用獨立的數據庫,完成相對獨立的軟件功能(曹彥波等,2015),其目的是使各功能軟件可以獨立部署互不影響,降低單個功能軟件的更新維護難度,并滿足極端情況下的特定功能需求。
云南省地震局目前使用的地震應急指揮技術系統(以下簡稱“現用系統”)包括評估軟件4個,信息服務軟件3個,市縣協同平臺1個。各軟件間利用類外掛程序實現系統集成,如圖1所示,可實現地震自動觸發、應急資料自動化推送等功能,并歷經云南地區近十次5.0級以上地震應急檢驗,在地震應急支撐材料產出、應急資料分發共享、數據信息移動推動等方面發揮了較大作用(李敏等,2018b)。
2 應急新需求及現有問題
隨著互聯網大潮的興起與云計算技術的發展,使得海量信息數據的匯集、存儲與集中處理成為可能,受歷史破壞性地震多發與嚴峻震情形勢的影響,云南省地震局、政府及民眾提出第一時間獲得震情、災情、預評估等信息的需求。同時,隨著行業信息化進程的不斷深入,其他部門的軟件、數據融合需求,也給對外的信息、數據加工處理、服務能力與服務方式提出了新的需求(李敏等,2017;吳艷梅等,2018)。這些需求集中表現在科技支撐材料的超快速產出、實時數據互聯網交換、差異化信息推送服務、軟件系統功能快速靈活更新、降低運維部署難度等幾個重要方面。
李兆隆等:云環境下的云南地震應急指揮技術軟件系統設計與實現在2018年云南2次5.0級以上地震應急過程中,云南省地震局專家及省政府應急辦、消防等部門均在震后10 min內,向云南省地震局應急指揮中心(軟件系統實際使用單位)提出了地震快速評估結果、專題圖件、震情災情等信息的共享要求,并且對所需信息內容的表達形式、表述方式、傳輸方法提出了各具特點的要求,詳見表1。
軟件使用者在軟件運行維護難度、系統穩定性、界面交互友好性等方面提出了新的要求。現用系統的集成方法雖在表象上解決了諸如單體功能更新、遷移部署、任務分發等方面的問題,但軟件系統構架本質上并未發生改變,軟件間的 移動鏈接推送過程數據 共享 無 無 互聯網訪問接口 互聯網接口調用功能互動、數據交換、消息通信、狀態控制、數據庫更新等核心問題仍然存在,運算效率較低,且在運行穩定性、可靠性以及后續軟件系統的擴展、外部通信等方面仍存在較大問題,無法滿足新的應急需求。
3 云環境下的云南地震應急指揮技術軟件系統設計3.1 云平臺選擇
相對較簡單的實體服務器與虛擬服務器間的選擇,云平臺的選擇需要綜合考慮云平臺運維成本、資源使用靈活性、原生資源豐富性、網絡、云平臺穩定性、數據安全性等因素,其中,云平臺安全性可粗分為機房安全、云平臺安全、軟件系統安全3個層面。相較企事業單位,互聯網服務提供商在機房與云平臺安全性方面的軟件、硬件、技術投入更高,其保障能力也較高(軟件系統安全性在于本身設計,與部署平臺無關),在不考慮公有云提供商監守自盜的情況下,公有云安全性較高(吳翰清,2012)。在當前技術環境下,可供選擇的云平臺較多,除去阿里、騰訊、百度等商用公有云平臺外,地震系統各家單位也都建設了私有云資源,云南省地震局于2016年初完成了私有云建設工作(表2)。就本軟件系統設計而言,云南省地震局自有云平臺或地震系統其他私有云平臺均可提供基礎硬件服務,同時利用第三方互聯網地圖資源、大數據展示平臺服務接入,可達到完整功能部署要求,但在計算效率、數據交換靈活性、后期功能擴充等方面較公有云平臺部署低。
經相關測試,綜合考慮數據安全、評估結果敏感性等問題,云環境下的云南地震應急指揮技術軟件系統計劃在中國地震臺網中心云平臺進行主體功能部署,在阿里云平臺進行全功能測試、演示平臺部署(本文僅就阿里云平臺部署方案進行討論)。
3.2 系統構架
基于在地震應急工作中積累的軟件使用與多次軟件研發經驗,對表1所示問題需求進行分析,云環境下的云南地震應急指揮技術軟件系統在設計時需要綜合考慮異構數據的調用和存儲、基礎平臺軟件的選擇與應用、軟件功能獨立更新部署、部署網絡環境構建等要素(李艷鵬,楊彪,2017)。同時,為保證整個軟件系統的運行穩定性及運行維護成本,還應對軟件系統部署硬件平臺及容災備份遷移機制進行合理規劃。基于上述考慮,參考前期部分軟件的云遷移試驗結果,軟件系統設計使用B/S結構完成主體功能界面,公有云平臺(阿里云)為硬件支撐平臺,互聯網為部署應用網段,開放式服務接口為功能實現形式。整體軟件系統技術構架設計分為5個層面,分別為用戶層、應用服務層、服務接口層和網絡層,如圖2所示。
3.3 數據讀寫與存儲設計
數據是軟件系統運行、運算的基礎,數據合理的規劃管理、存儲讀寫、索引查詢是高效、準確計算相關信息的重要保障。在本軟件系統的設計中,數據可分為應急基礎地理數據、系統狀態監控數據、軟件系統運行參數數據、非結構化資料數據等4類,并以存儲方式將4類數據劃分為結構化數據存儲與非結構化對象存儲2種,分別利用阿里云RDS(關系型云數據庫)、OSS(對象存儲)資源進行數據存儲及容災備份(圖3)。
為進一步保證上述數據的讀寫安全性、訪問一致性及效率,設計數據服務接口組,提供對RDS,OSS中全量數據資源的讀取、寫入、轉化、檢索等數據操作功能,隔離軟件、接口對數據庫及數據存儲的直接訪問,并對數據庫設置讀寫分離、優化查詢語句,確保數據服務接口組運行效率。
針對OSS特殊的訪問流程(私有文件系統鑒權)、計費方式(公網下載流量計費)及存儲結構(扁平化文件結構),獨立規劃對象存儲索引表與存儲對象外鏈表,并設計資料數據上傳、下載接口,進一步隔離資料數據的實際存儲位置信息,避免暴露阿里云資源訪問授權秘鑰,造成底層數據安全威脅。
設立本地離線容災備份軟件系統,每月進行數據庫全量備份,每3天進行數據庫增量備份。
3.4 功能設計
綜合考慮軟件系統運行效能、內部數據交換速率、功能運算時效、軟件系統設計時間指標等運行指標因素,以及運行維護成本、安裝部署難度、軟件功能外部共享、單體功能獨立更新等持續性維護因素后,明確軟件功能采用SaaS(Software-as-a-Service,軟件即服務)模式進行分體設計,將原系統中的功能模塊進行顆粒化拆分,將拆分后的功能獨立實現,并以服務接口形式部署對用戶開放,形成服務接口層。拆分的顆粒度以可完整提供最小運算功能為參考,如將原完整系統功能地震初評估拆分為地震評估觸發、分模型烈度圈計算、人口信息參數化查詢服務、行政區信息參數化查詢服務、分模型的人口死亡、受傷計算服務等數10個可獨立訪問服務接口。
鑒于拆分后的服務接口數量較多,在部署時,根據服務接口的服務內容、數據需求、數據交換頻率等因素,將接口劃分為9個服務組,并根據服務組的運算資源需求劃分服務器進行部署。
為保證用戶便捷地使用軟件系統功能,系統在應用服務層提供7個主體功能模塊,7個模塊均使用上述服務接口,利用工作流方式進行差異化組合完成。
3.5 用戶層設計
系統中設計用戶權限及分組管理體系,以此實現軟件系統從用戶界面、功能管理、數據訪問到最小功能服務接口的權限管理。為滿足不同技術能力及不同類型的用戶使用需求,軟件系統設計提供門戶式主頁、主體功能調用、全功能服務接口調用、在線工作流組織調試等多種軟件系統使用方式。如為外部程序開發者或信息化融合需求提供全功能細化接口,為地震應急指揮領導提供模板式輔助決策文檔,為其他地震部門提供主體功能遠程調用服務等。
3.6 網絡規劃
網絡層為軟件系統中各服務接口、功能模塊間通訊的通道,合理進行網絡劃分與網絡隔離,對軟件系統的數據交換速率、數據交換安全性、功能模塊分布式部署有著重要作用。軟件系統使用阿里云專有網絡(阿里云內網)進行數據通信,使用專有網絡安全策略進行網絡規劃管理。該系統共計劃分3個網段進行網絡隔離,并根據部署內容間的依存關系,使用安全策略進行網段內設備、端口隔離(表3)。其中除數據庫、數據庫操作接口、鑒權接口等重要資源需使用訪問中轉外,其他資源均可直接進行互聯網訪問調用。
3.7 云計算資源組織設計
參照前期云遷移試驗結果,結合近幾次地震應急評估運算量、并發量統計結果,設計軟件系統共使用常駐服務器(ECS)4臺,容災備份服務器1臺,彈性伸縮資源池1套,云數據庫1臺/套(含熱備),對象存儲資源1套,互聯網固定IP地址1個,詳見表4。
4 算法及數據分析優化
4.1 算法分析及優化
系統算法:經過分析,現用系統在運行中將評估流程分為7個部分,并用串行運算方式依次調用7個運算部分與其內部模型算法,其運算時間代價累計,導致整體運算效率較低(李敏等,2018a)。新軟件系統構架中已采用顆粒化功能服務接口方式對功能模塊進行拆分與分布式部署,并在功能實現中將原串行運算方式改為并行運算方式。在此基礎上,設計使用消息隊列對相同類型運算任務進行訂閱、分發、消費,進一步在單機單任務多線程并行運算的基礎上擴展為多機多任務多線程并行運算。
空間算法:軟件系統設計主要運算功能脫離GIS平臺軟件,基于計算機圖形學基礎算法定制軟件系統中實際使用的空間算法,擺脫龐大平臺中非必須功能引起的計算資源占用與運算效率問題。根據軟件系統各模型算法中實際空間計算需求,以點面關系、點線關系、球面角公式等基礎算法(Robert,2012),完成新軟件系統中常用的包含、相切緩沖等5種空間算法,并將算法中大量的數據篩選操作從軟件層下放至數據庫層,實際使用中將原用時90 s以上的模型計算過程壓縮到30 s以內。
4.2 數據組織分析及優化
為適應以上算法的優化,原數據結構及存儲方式必須進行相應的調整。首先,改變原矢量基礎地理數據通過中間件進行數據存儲的方式,將原面、線、點矢量對象以節點坐標數據方式直接入庫存儲,使用唯一編碼與屬性數據進行關聯;其次,使用公里網格方式對現有行政區劃、經濟、人口等數據進行賦值預處理,在提高運算精度的基礎上,避免因過于細致的空間運算對整體軟件系統造成影響;再次,對滑坡風險、人口密度、坡度、地表形態等數據進行公里網格統計預處理,將原空間運算統計過程直接變更為查詢統計過程,進一步減少空間運算的時間消耗。統一經過公里網格預處理的數據可以采用單表多列方式進行數據存儲,將原本需多次空間運算的計算過程,縮減為一次空間運算,簡化系統運算流程,提高運行穩定性。
5 系統性能驗證
基于上述技術構架與硬件環境,采用優化后的算法及數據,完成了云環境下的云南地震應急指揮技術軟件系統的設計。使用新的軟件系統與現有系統對20個模擬地震進行對比測試,主要記錄計算時長、產出報告數量、信息服務形成等幾個主要評價指標。模擬地震震中位于云南省典型 ?統已停用,僅使用歷史觸發記錄統計平均計算時長作為對比指標數據.地震多發區域,震級均設定為8.0級。由表5可以看出,新的軟件系統在幾個主要評價指標項上均優于現有系統,更加適應當前地震應急中的各類新需求。6 結論與討論
6.1 結論
云環境下的云南地震應急指揮技術軟件系統設計使用了微服務架構,采用工作流方式進行服務組織,降低了運維與后期功能改進、擴展難度;根據實際計算需求重新編寫了相關空間算法,提升了數據運算效率,并豐富了成果產出數量、質量,新增了多種形式的對外信息和數據服務。同時硬件層面使用了公有云計算資源與彈性伸縮資源池,在提高硬件資源使用效率的基礎上縮短了80%的地震評估用時。綜上,新軟件系統在運算速度、資源使用效率、服務形式、運維難度等多方面均優于現用軟件系統,更加適應目前云南省內地震應急的新需求。
6.2 推廣應用
云環境下的云南地震應急指揮技術軟件系統成果更加接近于開放Store平臺,軟件功能由平臺提供的服務組合而成,無需考慮服務本身的部署位置、實現方式。在推廣應用上,各部署節點僅需針對自身實際需求向平臺添加本地數據服務,使用平臺中的服務進行合理組織即可完成相關功能;在實現特定功能時也僅需對該功能服務進行代碼編寫,而不是進行一個完整的軟件開發。該模式的推廣有助于將原自建自用的煙囪式應用,改變為共建共用共享式應用,更加有助于地震應急技術系統的發展。
6.3 互聯網數據接入探討
為適應新技術、新需求、新形勢下的地震應急工作需要,解決地震應急期及后續抗震救災工作中的信息交換與數據處理的要求,云南省地震局在多年應用研究的基礎上,對地震應急評估軟件系統進行了新的構架并設計實現,其較高的運算效率與運行穩定性極大地增強了云南省地震局的地震應急能力。
隨著互聯網、大數據技術的發展,各類動態熱力數據的覆蓋范圍、數據精度將進一步提高,由此衍生出的基于動態熱力數據的人口、經濟評估模型研究也將逐步深入,目前使用的靜態基礎地理、人口、經濟數據與基于回歸模型的評估算法將會被逐步替代,研究、選擇、應用這些新的數據與算法將是我們下一步工作重點與發展方向。
參考文獻:
曹彥波,李兆隆,李永強,等.2015.云南地震應急快速評估模型本地化集成研究[J].地震研究,38(1):148-154.
李敏,吳艷梅,李永強.2017.云視頻技術在省級地震應急指揮系統中的應用探討[J].地震研究,40(4):655-660.
李敏,許瑞杰,李永強.2018a.云南地震應急快速評估系統優化研究[J].震災防御技術,13(1):177-186.
李敏,鄭川,李永強.2018b.云南省省、市、縣級地震應急信息協同技術系統的設計與實現[J].地震研究,41(1):141-147.
李艷鵬,楊彪.2017.分布式服務架構:原理、設計與實戰[M].北京:電子工業出版社.
聶高眾,安基文,鄧硯.2011.地震應急評估與決策指標體系的構建[J].震災防御技術,6(2):146-155.
帥向華,姜立新,劉欽,等.2009a.地震應急指揮技術系統設計與實現[J].測繪通報,(7):38-41.
帥向華,楊天青,馬朝暉,等.2009b.國家地震應急指揮技術系統[M].北京:地震出版社.
吳翰清.2012.白帽子講Web安全[M].北京:電子工業出版社.
吳艷梅,李敏,李兆隆,等.2018.基于智能手機的云南地震應急推送系統應用概述[J].中國應急救援,(4):38-42.