周施文,于偉恒,周躍勇
(福建省地震局,福建 福州 350003)
電磁波的傳播速度比地震波快很多,而地震波中破壞性弱的縱波(P 波)比破壞性強(qiáng)的橫波(S 波)快。地震預(yù)警技術(shù)利用傳播速度中電磁波>P 波>S 波的原理,搶在S 波到達(dá)某目標(biāo)區(qū)域前,向該目標(biāo)區(qū)域發(fā)出地震預(yù)警信息,以為不同目標(biāo)區(qū)提供幾秒至幾十秒不等的地震應(yīng)急處置時(shí)間,起到減輕地震災(zāi)害的作用。2008年汶川地震之后,福建省地震局率先開(kāi)展地震預(yù)警技術(shù)實(shí)用化研究。經(jīng)過(guò)多年的努力,福建省地震局自主研發(fā)了一套地震預(yù)警系統(tǒng),并作為我國(guó)地震預(yù)警先行先試單位之一,經(jīng)福建省政府授權(quán),于2018年5月12日正式向福建省發(fā)布地震預(yù)警信息。
國(guó)家地震烈度速報(bào)與預(yù)警工程(下文簡(jiǎn)稱“國(guó)家工程”)于2018年7月正式啟動(dòng),福建省地震局自主研發(fā)的地震預(yù)警軟件作為范本軟件之一,從國(guó)家地震預(yù)警的層面出發(fā)進(jìn)行優(yōu)化、升級(jí),形成一套可在全國(guó)各省市部署運(yùn)行的地震預(yù)警軟件系統(tǒng)。作為面向大眾發(fā)布地震預(yù)警信息的系統(tǒng),地震預(yù)警系統(tǒng)功能的穩(wěn)定性、可靠性、安全性直接關(guān)系著政府單位公信力、民眾滿意度等重要問(wèn)題。國(guó)家工程遵循“邊建設(shè)邊服務(wù)”的工程建設(shè)原則,已使用地區(qū)的系統(tǒng)功能需要安全穩(wěn)定連續(xù),同時(shí)還要滿足待部署地區(qū)對(duì)于系統(tǒng)功能、算法調(diào)優(yōu)的特色差異化需求,進(jìn)而更加符合當(dāng)?shù)貙?shí)際。為很好地滿足上述要求,兼顧安全性與時(shí)效性,需要進(jìn)一步健全地震預(yù)警軟件系統(tǒng)優(yōu)化過(guò)程管理,通過(guò)制度約束、流程管控、變更審核等手段提升地震預(yù)警系統(tǒng)項(xiàng)目管理的規(guī)范化與精細(xì)化水平,同時(shí)結(jié)合優(yōu)化工作的目標(biāo)、影響范圍等合理地運(yùn)用不同的項(xiàng)目管理模式,提高總體系統(tǒng)建設(shè)質(zhì)效。
筆者所在的福建省地震局地震預(yù)警團(tuán)隊(duì),于2008年組建并開(kāi)始研發(fā)地震預(yù)警系統(tǒng)。在這些年的系統(tǒng)建設(shè)中,地震預(yù)警系統(tǒng)的功能日趨完善,性能逐步提升,而系統(tǒng)復(fù)雜度也日益增加。如圖1所示,現(xiàn)有系統(tǒng)的技術(shù)架構(gòu)包括數(shù)據(jù)接收、數(shù)據(jù)處理、信息產(chǎn)出和日志記錄四個(gè)功能大類,計(jì)14 個(gè)功能模塊。系統(tǒng)軟件界面如圖2所示。
圖1 地震預(yù)警系統(tǒng)架構(gòu)圖
圖2 福建地震預(yù)警系統(tǒng)軟件界面
對(duì)于目前正式在線運(yùn)行的地震預(yù)警系統(tǒng)而言,任何一個(gè)模塊的優(yōu)化、升級(jí)都可能對(duì)其他功能乃至整個(gè)系統(tǒng)造成影響。隨著國(guó)家工程的持續(xù)推進(jìn),符合福建省區(qū)域特點(diǎn)的地震預(yù)警系統(tǒng)需要從“個(gè)性”升級(jí)到“共性”,而后,再通過(guò)參數(shù)配置等實(shí)現(xiàn)各省份的“個(gè)性化”,從而提高地震預(yù)警的適配度和可靠性。隨著地震預(yù)警系統(tǒng)的持續(xù)推廣,優(yōu)化需求不斷增長(zhǎng),包括提升公共基礎(chǔ)支撐能力,加強(qiáng)個(gè)性系統(tǒng)對(duì)接,優(yōu)化算法模型參數(shù)等多個(gè)方面,如何做好需求管理、設(shè)計(jì)管理、代碼管理,平衡好質(zhì)量與效率之間的關(guān)系,已成為地震預(yù)警系統(tǒng)項(xiàng)目管理工作所面臨的主要挑戰(zhàn)。
常見(jiàn)的信息系統(tǒng)項(xiàng)目管理模型有瀑布模型、迭代模型、螺旋模型、增量模型、V 模型、快速原型模型、敏捷方法等,每個(gè)模型的特點(diǎn)、優(yōu)缺點(diǎn)以及適用場(chǎng)景如表1所示。
表1 項(xiàng)目管理模型歸納表
續(xù)表
根據(jù)各個(gè)項(xiàng)目管理模型的特點(diǎn),可以分為穩(wěn)態(tài)和敏態(tài)兩類,其中,瀑布模型、迭代模型、螺旋模型屬于穩(wěn)態(tài)模型,快速原型模型和敏捷方法屬于敏態(tài)模型,而增量模型和V 模型介于兩者之間。在項(xiàng)目管理實(shí)踐過(guò)程中,應(yīng)結(jié)合項(xiàng)目本身的特點(diǎn)與運(yùn)行環(huán)境選擇合適的模型,從而提高項(xiàng)目管理的質(zhì)效。
目前,地震預(yù)警系統(tǒng)的優(yōu)化主要涉及以下幾個(gè)方面:(1)生產(chǎn)問(wèn)題修復(fù)。對(duì)運(yùn)行中發(fā)現(xiàn)的問(wèn)題、漏洞等進(jìn)行修復(fù),強(qiáng)調(diào)時(shí)效性。(2)性能調(diào)優(yōu)。對(duì)數(shù)據(jù)接收、預(yù)處理、分析、結(jié)果應(yīng)用等各環(huán)節(jié)的性能進(jìn)行分析評(píng)估,對(duì)性能較差的模塊、節(jié)點(diǎn)進(jìn)行有針對(duì)性的優(yōu)化。(3)個(gè)性化功能。力求滿足各省市個(gè)性化的應(yīng)用需求。(4)算法更新。根據(jù)各省市的實(shí)際情況以及基礎(chǔ)算法的迭代更新對(duì)預(yù)警算法進(jìn)行升級(jí)。(5)新技術(shù)應(yīng)用。結(jié)合大數(shù)據(jù)、人工智能等技術(shù)的發(fā)展,對(duì)相關(guān)模塊、技術(shù)架構(gòu)等進(jìn)行升級(jí)。上述各項(xiàng)優(yōu)化任務(wù)的需求內(nèi)容、影響范圍、過(guò)程質(zhì)量要求、時(shí)效性要求等各不相同。為了更好地兼顧質(zhì)量與效率,筆者提出地震預(yù)警系統(tǒng)項(xiàng)目管理采用穩(wěn)態(tài)+敏態(tài)相結(jié)合的多元管理模式。上述各類優(yōu)化任務(wù)適用的管理模式如表2所示。
表2 系統(tǒng)優(yōu)化—管理模式對(duì)照
穩(wěn)態(tài)的管理模式對(duì)過(guò)程嚴(yán)格管控,主要適用于基礎(chǔ)性、公共性、影響面大、涉及面廣的任務(wù)建設(shè)。對(duì)地震預(yù)警系統(tǒng)而言,該模式適用于地震預(yù)警系統(tǒng)整體架構(gòu)升級(jí),因?yàn)榧軜?gòu)升級(jí)涉及對(duì)系統(tǒng)底層技術(shù)框架的調(diào)整,需要進(jìn)行充分的評(píng)估、論證,明確功能影響范圍,整體升級(jí)工作實(shí)施過(guò)程中對(duì)過(guò)程管理的要求高,對(duì)每個(gè)階段的過(guò)程產(chǎn)物要有明確的通過(guò)標(biāo)準(zhǔn),在實(shí)施過(guò)程中需要對(duì)概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)等過(guò)程文檔進(jìn)行修訂完善,也要嚴(yán)格落實(shí)代碼審查,提高代碼質(zhì)量,再結(jié)合多輪次的功能與非功能測(cè)試對(duì)系統(tǒng)功能的完備性、安全性等進(jìn)行充分的測(cè)試評(píng)估,確保升級(jí)后的系統(tǒng)滿足需求。該模式也適用于地震預(yù)警系統(tǒng)非算法類功能優(yōu)化,如數(shù)據(jù)接收、數(shù)據(jù)質(zhì)量監(jiān)測(cè)等,因?yàn)榉撬惴惞δ芑A(chǔ)、影響面大,需要對(duì)相關(guān)功能的變更影響進(jìn)行充分的論證,對(duì)功能優(yōu)化過(guò)程進(jìn)行嚴(yán)格的管理。在穩(wěn)態(tài)模式中通常會(huì)設(shè)立明確的項(xiàng)目過(guò)程域,指定各過(guò)程的負(fù)責(zé)人并明確里程碑。
2.1.1 制定清晰的項(xiàng)目過(guò)程域
主要的項(xiàng)目過(guò)程域包括:
(1)需求申請(qǐng)與受理。明確具體的需求,生成需求文檔,包括輸入、輸出、界面要素、工作流等。
(2)設(shè)計(jì)構(gòu)建。根據(jù)需求文檔進(jìn)行概要設(shè)計(jì)和詳細(xì)設(shè)計(jì),明確邏輯架構(gòu)、物理架構(gòu)、部署架構(gòu)、包設(shè)計(jì)、類設(shè)計(jì)以及數(shù)據(jù)庫(kù)設(shè)計(jì)等。
(3)編碼。執(zhí)行具體的代碼編寫(xiě),應(yīng)用SVN 等版本控制軟件對(duì)代碼進(jìn)行版本管理,利用SonarQube 等代碼掃描工具對(duì)代碼規(guī)范性進(jìn)行檢查。
(4)測(cè)試。進(jìn)行全面的功能測(cè)試和性能測(cè)試,對(duì)測(cè)試結(jié)果進(jìn)行評(píng)估。
(5)交付。驗(yàn)收測(cè)試通過(guò)后生成最終的投產(chǎn)部署包,交付運(yùn)維人員進(jìn)行部署。變更流程需嚴(yán)格管控,按規(guī)程逐級(jí)審核確認(rèn)后實(shí)施變更。
2.1.2 明確各過(guò)程的里程碑與責(zé)任人
明確各過(guò)程的里程碑與責(zé)任人,使項(xiàng)目管理做到“有的放矢、責(zé)任到人”:
(1)需求申請(qǐng)與受理。需求提出人員完成《需求文檔》,由專家組成員對(duì)文檔進(jìn)行審核,確保其內(nèi)容合理、可落地實(shí)施。
(2)設(shè)計(jì)構(gòu)建。設(shè)計(jì)編碼人員完成《設(shè)計(jì)文檔》,由專家組成員進(jìn)行評(píng)審,確保設(shè)計(jì)合理。
(3)編碼。編碼人員完成代碼編寫(xiě),由專門(mén)團(tuán)隊(duì)負(fù)責(zé)對(duì)代碼進(jìn)行規(guī)范性審核,配置人員對(duì)代碼庫(kù)進(jìn)行核對(duì)。
(4)測(cè)試。技術(shù)人員出具開(kāi)發(fā)測(cè)試結(jié)果,由測(cè)試人員對(duì)照《需求文檔》對(duì)功能進(jìn)行測(cè)試,技術(shù)人員針對(duì)測(cè)試缺陷進(jìn)行修復(fù)。
(5)交付。需求提出人員進(jìn)行驗(yàn)收測(cè)試,技術(shù)人員向運(yùn)維人員提交投產(chǎn)包。
2.1.3 嚴(yán)格控制變更流程
需求變更管理是項(xiàng)目管理中非常重要的一個(gè)環(huán)節(jié),直接影響項(xiàng)目管理質(zhì)效。嚴(yán)格控制變更流程是保障項(xiàng)目管理質(zhì)效的有效措施:
(1)評(píng)審。對(duì)各環(huán)節(jié)的關(guān)鍵產(chǎn)物進(jìn)行專家組評(píng)審或?qū)徸h。
(2)變更確認(rèn)。變更申請(qǐng)需經(jīng)技術(shù)人員所在團(tuán)隊(duì)負(fù)責(zé)人、運(yùn)維團(tuán)隊(duì)負(fù)責(zé)人同時(shí)確認(rèn),必要時(shí)由部門(mén)/中心負(fù)責(zé)人簽批,經(jīng)確認(rèn)的變更才可以實(shí)施。
基于上述的穩(wěn)態(tài)過(guò)程管理,可以顯著提升各階段產(chǎn)出物質(zhì)量,提升該項(xiàng)工作的安全性、穩(wěn)定性,同時(shí)相關(guān)過(guò)程產(chǎn)物也能作為參考資料,便于后續(xù)人員了解系統(tǒng)建設(shè)過(guò)程與功能實(shí)質(zhì)。
相較于穩(wěn)態(tài)管理,敏態(tài)管理突出“敏捷”,也就是項(xiàng)目的時(shí)效性,對(duì)過(guò)程管控的要求更多地依賴于項(xiàng)目人員,組織級(jí)的過(guò)程沉淀相對(duì)較少,適用于需求場(chǎng)景明確需要快速迭代的功能優(yōu)化、已清晰定位需要快速修補(bǔ)的生產(chǎn)漏洞以及依賴生產(chǎn)數(shù)據(jù)進(jìn)行驗(yàn)證測(cè)算的算法更新等場(chǎng)景。下文以算法類需求敏態(tài)管理為例,提出了需求快速實(shí)現(xiàn)與定期發(fā)布機(jī)制的建設(shè)思路。
2.2.1 建立算法類需求的快速實(shí)現(xiàn)機(jī)制
與功能類需求不同,算法類需求一般先在理論上進(jìn)行推導(dǎo)、求證,然后利用歷史數(shù)據(jù)對(duì)新算法進(jìn)行初步的驗(yàn)證,由于與真實(shí)生產(chǎn)環(huán)境有一定的差距,因此很難在需求評(píng)估階段判斷所提出優(yōu)化算法的準(zhǔn)確與否,需要經(jīng)過(guò)真實(shí)數(shù)據(jù)的驗(yàn)證。所以,針對(duì)算法類的需求,對(duì)需求申請(qǐng)、設(shè)計(jì)、編碼等過(guò)程進(jìn)行優(yōu)化整合,提出需求說(shuō)明、算法優(yōu)化說(shuō)明,并對(duì)相關(guān)代碼完成修改并通過(guò)評(píng)審,無(wú)需產(chǎn)出規(guī)范的需求文檔、設(shè)計(jì)文檔等材料。
2.2.2 建立定期更新發(fā)布機(jī)制
針對(duì)算法類等可能需要頻繁變更的需求,一般需要在較短時(shí)間內(nèi)實(shí)現(xiàn)需求并更新投產(chǎn),但不定時(shí)的頻繁更新會(huì)加大系統(tǒng)運(yùn)維的壓力,還會(huì)對(duì)系統(tǒng)運(yùn)行質(zhì)量造成影響,因此,針對(duì)此類更新應(yīng)建立版本火車(chē)機(jī)制。地震預(yù)警的算法涉及震相拾取、震中定位、震時(shí)判定、震級(jí)估算等,每一次地震都是獨(dú)一無(wú)二的,離線測(cè)試環(huán)境下使用的歷史地震事件數(shù)據(jù),并不一定能完全還原在線生產(chǎn)環(huán)境下的系統(tǒng)運(yùn)行情況,因此,地震預(yù)警算法評(píng)估和調(diào)優(yōu)主要以真實(shí)地震事件為驅(qū)動(dòng)。根據(jù)以往團(tuán)隊(duì)研發(fā)和運(yùn)維的經(jīng)驗(yàn),新提交的算法在生產(chǎn)環(huán)境下運(yùn)行兩周收集的數(shù)據(jù),可以初步反應(yīng)算法的可用性和可靠性;時(shí)間越長(zhǎng),收集的數(shù)據(jù)越多,不過(guò)如果算法需要進(jìn)一步優(yōu)化的話,時(shí)效性上會(huì)有所滯后。經(jīng)過(guò)綜合考慮,敏態(tài)管理下的算法更新周期設(shè)定為每?jī)芍苓M(jìn)行一次較為合適;如果該周期內(nèi)沒(méi)有事件驅(qū)動(dòng),不需要更新,那么該次更新時(shí)間點(diǎn)也可作為上次提交的驗(yàn)證點(diǎn)。
筆者所在團(tuán)隊(duì)根據(jù)上述思路對(duì)地震預(yù)警系統(tǒng)的架構(gòu)升級(jí)、算法調(diào)優(yōu)等進(jìn)行了試點(diǎn)探索并取得了一定的應(yīng)用成效。
目前省內(nèi)地震觀測(cè)臺(tái)數(shù)量不斷增加,監(jiān)測(cè)數(shù)據(jù)呈爆炸式增長(zhǎng),現(xiàn)有系統(tǒng)在部署方式、數(shù)據(jù)匯聚、處理及存儲(chǔ)、結(jié)果產(chǎn)出等方面無(wú)法滿足新一代地震監(jiān)測(cè)預(yù)警系統(tǒng)的技術(shù)要求,主要表現(xiàn)在:?jiǎn)螜C(jī)式部署,無(wú)法進(jìn)行動(dòng)態(tài)負(fù)載橫向擴(kuò)容;數(shù)據(jù)匯聚實(shí)時(shí)性與靈活性不夠,可視化能力不足;數(shù)據(jù)結(jié)果產(chǎn)出以命令行方式進(jìn)行,缺少人機(jī)交互界面。因此,團(tuán)隊(duì)?wèi)?yīng)用Flink 開(kāi)源流處理框架、Hadoop 分布式大數(shù)據(jù)處理技術(shù)對(duì)原有框架進(jìn)行升級(jí),實(shí)現(xiàn)海量信息秒級(jí)地震智能化處理軟件系統(tǒng)。海量信息秒級(jí)地震智能化處理軟件系統(tǒng)的總體架構(gòu)如圖3所示,系統(tǒng)可視化的主界面如圖4所示。
圖3 海量信息秒級(jí)地震智能化處理軟件系統(tǒng)總體架構(gòu)
圖4 海量信息秒級(jí)地震智能化處理系統(tǒng)首頁(yè)界面
針對(duì)本次架構(gòu)升級(jí)成立了專門(mén)的項(xiàng)目組,采用瀑布模型,按照信息系統(tǒng)項(xiàng)目管理流程進(jìn)行項(xiàng)目管理,制定了開(kāi)發(fā)計(jì)劃,進(jìn)行了需求分析,編寫(xiě)了需求規(guī)格說(shuō)明、概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)、數(shù)據(jù)庫(kù)設(shè)計(jì)、軟件配置管理計(jì)劃、質(zhì)量保證計(jì)劃、軟件測(cè)試說(shuō)明和測(cè)試報(bào)告等文檔,嚴(yán)格把控開(kāi)發(fā)進(jìn)度。項(xiàng)目從立項(xiàng)到驗(yàn)收歷時(shí)9 個(gè)月,各階段的實(shí)施情況與總體計(jì)劃進(jìn)度相差無(wú)幾,項(xiàng)目管理質(zhì)效顯著。軟件通過(guò)第三方機(jī)構(gòu)檢測(cè),進(jìn)入試運(yùn)行階段。
地震預(yù)警算法的評(píng)估和調(diào)優(yōu)以真實(shí)地震事件為驅(qū)動(dòng),以多臺(tái)震級(jí)的綜合策略為例,原有策略是選取參與預(yù)警震級(jí)估算的N 臺(tái)結(jié)果中的最大值作為預(yù)警第一報(bào)的震級(jí)數(shù)據(jù)。分析一個(gè)周期內(nèi)的系統(tǒng)運(yùn)行結(jié)果后,我們發(fā)現(xiàn)取最大值的策略存在將震級(jí)估算過(guò)大的漏洞,例如,N=4,正常情況下4 臺(tái)震級(jí)估算的數(shù)值應(yīng)該相近,取最大值作為預(yù)警第一報(bào)的震級(jí)不會(huì)與真實(shí)震級(jí)偏差太大。但出現(xiàn)一次地震,其中3 臺(tái)估算震級(jí)為3.5 級(jí),1 臺(tái)估算震級(jí)為4.2 級(jí),實(shí)際地震是3.5 級(jí),這樣取4 臺(tái)的最大值作為預(yù)警第一報(bào)的震級(jí)數(shù)據(jù)就產(chǎn)生了較大偏差,而估算出4.2 級(jí)的這一臺(tái)是由于監(jiān)測(cè)數(shù)據(jù)存在質(zhì)量問(wèn)題。經(jīng)過(guò)討論,我們將N 臺(tái)最大值調(diào)整為N 臺(tái)中位數(shù),編寫(xiě)了需求說(shuō)明和算法優(yōu)化說(shuō)明,對(duì)取值代碼進(jìn)行了修改,經(jīng)過(guò)測(cè)試后上線投產(chǎn),并定期按時(shí)評(píng)估。
地震預(yù)警關(guān)系民生安危,地震預(yù)警系統(tǒng)作為復(fù)雜的軟件系統(tǒng),具有高定制化、高可靠性及高處理性能等特點(diǎn),需要采取不同于常規(guī)的項(xiàng)目管理模式,以保障地震預(yù)警系統(tǒng)的成功建設(shè)和運(yùn)維。本文介紹了常見(jiàn)的項(xiàng)目管理模式,結(jié)合地震預(yù)警系統(tǒng)的特點(diǎn)和實(shí)際情況,提出了穩(wěn)態(tài)+敏態(tài)相結(jié)合的多元管理模式,并選擇技術(shù)架構(gòu)升級(jí)、算法調(diào)優(yōu)等場(chǎng)景進(jìn)行了初步應(yīng)用,滿足不同項(xiàng)目對(duì)過(guò)程質(zhì)量以及實(shí)施效率的差異性需求,提升了項(xiàng)目管理的規(guī)范化和精細(xì)化水平,提高了系統(tǒng)建設(shè)質(zhì)效,為地震預(yù)警系統(tǒng)的長(zhǎng)期穩(wěn)定運(yùn)行奠定了堅(jiān)實(shí)的基礎(chǔ)。