周施文,于偉恒,周躍勇
(福建省地震局,福建 福州 350003)
電磁波的傳播速度比地震波快很多,而地震波中破壞性弱的縱波(P 波)比破壞性強(qiáng)的橫波(S 波)快。地震預(yù)警技術(shù)利用傳播速度中電磁波>P 波>S 波的原理,搶在S 波到達(dá)某目標(biāo)區(qū)域前,向該目標(biāo)區(qū)域發(fā)出地震預(yù)警信息,以為不同目標(biāo)區(qū)提供幾秒至幾十秒不等的地震應(yīng)急處置時間,起到減輕地震災(zāi)害的作用。2008年汶川地震之后,福建省地震局率先開展地震預(yù)警技術(shù)實(shí)用化研究。經(jīng)過多年的努力,福建省地震局自主研發(fā)了一套地震預(yù)警系統(tǒng),并作為我國地震預(yù)警先行先試單位之一,經(jīng)福建省政府授權(quán),于2018年5月12日正式向福建省發(fā)布地震預(yù)警信息。
國家地震烈度速報與預(yù)警工程(下文簡稱“國家工程”)于2018年7月正式啟動,福建省地震局自主研發(fā)的地震預(yù)警軟件作為范本軟件之一,從國家地震預(yù)警的層面出發(fā)進(jìn)行優(yōu)化、升級,形成一套可在全國各省市部署運(yùn)行的地震預(yù)警軟件系統(tǒng)。作為面向大眾發(fā)布地震預(yù)警信息的系統(tǒng),地震預(yù)警系統(tǒng)功能的穩(wěn)定性、可靠性、安全性直接關(guān)系著政府單位公信力、民眾滿意度等重要問題。國家工程遵循“邊建設(shè)邊服務(wù)”的工程建設(shè)原則,已使用地區(qū)的系統(tǒng)功能需要安全穩(wěn)定連續(xù),同時還要滿足待部署地區(qū)對于系統(tǒng)功能、算法調(diào)優(yōu)的特色差異化需求,進(jìn)而更加符合當(dāng)?shù)貙?shí)際。為很好地滿足上述要求,兼顧安全性與時效性,需要進(jìn)一步健全地震預(yù)警軟件系統(tǒng)優(yōu)化過程管理,通過制度約束、流程管控、變更審核等手段提升地震預(yù)警系統(tǒng)項(xiàng)目管理的規(guī)范化與精細(xì)化水平,同時結(jié)合優(yōu)化工作的目標(biāo)、影響范圍等合理地運(yùn)用不同的項(xiàng)目管理模式,提高總體系統(tǒng)建設(shè)質(zhì)效。
筆者所在的福建省地震局地震預(yù)警團(tuán)隊,于2008年組建并開始研發(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)出和日志記錄四個功能大類,計14 個功能模塊。系統(tǒng)軟件界面如圖2所示。

圖1 地震預(yù)警系統(tǒng)架構(gòu)圖

圖2 福建地震預(yù)警系統(tǒng)軟件界面
對于目前正式在線運(yùn)行的地震預(yù)警系統(tǒng)而言,任何一個模塊的優(yōu)化、升級都可能對其他功能乃至整個系統(tǒng)造成影響。隨著國家工程的持續(xù)推進(jìn),符合福建省區(qū)域特點(diǎn)的地震預(yù)警系統(tǒng)需要從“個性”升級到“共性”,而后,再通過參數(shù)配置等實(shí)現(xiàn)各省份的“個性化”,從而提高地震預(yù)警的適配度和可靠性。隨著地震預(yù)警系統(tǒng)的持續(xù)推廣,優(yōu)化需求不斷增長,包括提升公共基礎(chǔ)支撐能力,加強(qiáng)個性系統(tǒng)對接,優(yōu)化算法模型參數(shù)等多個方面,如何做好需求管理、設(shè)計管理、代碼管理,平衡好質(zhì)量與效率之間的關(guān)系,已成為地震預(yù)警系統(tǒng)項(xiàng)目管理工作所面臨的主要挑戰(zhàn)。
常見的信息系統(tǒng)項(xiàng)目管理模型有瀑布模型、迭代模型、螺旋模型、增量模型、V 模型、快速原型模型、敏捷方法等,每個模型的特點(diǎn)、優(yōu)缺點(diǎn)以及適用場景如表1所示。

表1 項(xiàng)目管理模型歸納表

續(xù)表
根據(jù)各個項(xiàng)目管理模型的特點(diǎn),可以分為穩(wěn)態(tài)和敏態(tài)兩類,其中,瀑布模型、迭代模型、螺旋模型屬于穩(wěn)態(tài)模型,快速原型模型和敏捷方法屬于敏態(tài)模型,而增量模型和V 模型介于兩者之間。在項(xiàng)目管理實(shí)踐過程中,應(yīng)結(jié)合項(xiàng)目本身的特點(diǎn)與運(yùn)行環(huán)境選擇合適的模型,從而提高項(xiàng)目管理的質(zhì)效。
目前,地震預(yù)警系統(tǒng)的優(yōu)化主要涉及以下幾個方面:(1)生產(chǎn)問題修復(fù)。對運(yùn)行中發(fā)現(xiàn)的問題、漏洞等進(jìn)行修復(fù),強(qiáng)調(diào)時效性。(2)性能調(diào)優(yōu)。對數(shù)據(jù)接收、預(yù)處理、分析、結(jié)果應(yīng)用等各環(huán)節(jié)的性能進(jìn)行分析評估,對性能較差的模塊、節(jié)點(diǎn)進(jìn)行有針對性的優(yōu)化。(3)個性化功能。力求滿足各省市個性化的應(yīng)用需求。(4)算法更新。根據(jù)各省市的實(shí)際情況以及基礎(chǔ)算法的迭代更新對預(yù)警算法進(jìn)行升級。(5)新技術(shù)應(yīng)用。結(jié)合大數(shù)據(jù)、人工智能等技術(shù)的發(fā)展,對相關(guān)模塊、技術(shù)架構(gòu)等進(jìn)行升級。上述各項(xiàng)優(yōu)化任務(wù)的需求內(nèi)容、影響范圍、過程質(zhì)量要求、時效性要求等各不相同。為了更好地兼顧質(zhì)量與效率,筆者提出地震預(yù)警系統(tǒng)項(xiàng)目管理采用穩(wěn)態(tài)+敏態(tài)相結(jié)合的多元管理模式。上述各類優(yōu)化任務(wù)適用的管理模式如表2所示。

表2 系統(tǒng)優(yōu)化—管理模式對照
穩(wěn)態(tài)的管理模式對過程嚴(yán)格管控,主要適用于基礎(chǔ)性、公共性、影響面大、涉及面廣的任務(wù)建設(shè)。對地震預(yù)警系統(tǒng)而言,該模式適用于地震預(yù)警系統(tǒng)整體架構(gòu)升級,因?yàn)榧軜?gòu)升級涉及對系統(tǒng)底層技術(shù)框架的調(diào)整,需要進(jìn)行充分的評估、論證,明確功能影響范圍,整體升級工作實(shí)施過程中對過程管理的要求高,對每個階段的過程產(chǎn)物要有明確的通過標(biāo)準(zhǔn),在實(shí)施過程中需要對概要設(shè)計、詳細(xì)設(shè)計等過程文檔進(jìn)行修訂完善,也要嚴(yán)格落實(shí)代碼審查,提高代碼質(zhì)量,再結(jié)合多輪次的功能與非功能測試對系統(tǒng)功能的完備性、安全性等進(jìn)行充分的測試評估,確保升級后的系統(tǒng)滿足需求。該模式也適用于地震預(yù)警系統(tǒng)非算法類功能優(yōu)化,如數(shù)據(jù)接收、數(shù)據(jù)質(zhì)量監(jiān)測等,因?yàn)榉撬惴惞δ芑A(chǔ)、影響面大,需要對相關(guān)功能的變更影響進(jìn)行充分的論證,對功能優(yōu)化過程進(jìn)行嚴(yán)格的管理。在穩(wěn)態(tài)模式中通常會設(shè)立明確的項(xiàng)目過程域,指定各過程的負(fù)責(zé)人并明確里程碑。
2.1.1 制定清晰的項(xiàng)目過程域
主要的項(xiàng)目過程域包括:
(1)需求申請與受理。明確具體的需求,生成需求文檔,包括輸入、輸出、界面要素、工作流等。
(2)設(shè)計構(gòu)建。根據(jù)需求文檔進(jìn)行概要設(shè)計和詳細(xì)設(shè)計,明確邏輯架構(gòu)、物理架構(gòu)、部署架構(gòu)、包設(shè)計、類設(shè)計以及數(shù)據(jù)庫設(shè)計等。
(3)編碼。執(zhí)行具體的代碼編寫,應(yīng)用SVN 等版本控制軟件對代碼進(jìn)行版本管理,利用SonarQube 等代碼掃描工具對代碼規(guī)范性進(jìn)行檢查。
(4)測試。進(jìn)行全面的功能測試和性能測試,對測試結(jié)果進(jìn)行評估。
(5)交付。驗(yàn)收測試通過后生成最終的投產(chǎn)部署包,交付運(yùn)維人員進(jìn)行部署。變更流程需嚴(yán)格管控,按規(guī)程逐級審核確認(rèn)后實(shí)施變更。
2.1.2 明確各過程的里程碑與責(zé)任人
明確各過程的里程碑與責(zé)任人,使項(xiàng)目管理做到“有的放矢、責(zé)任到人”:
(1)需求申請與受理。需求提出人員完成《需求文檔》,由專家組成員對文檔進(jìn)行審核,確保其內(nèi)容合理、可落地實(shí)施。
(2)設(shè)計構(gòu)建。設(shè)計編碼人員完成《設(shè)計文檔》,由專家組成員進(jìn)行評審,確保設(shè)計合理。
(3)編碼。編碼人員完成代碼編寫,由專門團(tuán)隊負(fù)責(zé)對代碼進(jìn)行規(guī)范性審核,配置人員對代碼庫進(jìn)行核對。
(4)測試。技術(shù)人員出具開發(fā)測試結(jié)果,由測試人員對照《需求文檔》對功能進(jìn)行測試,技術(shù)人員針對測試缺陷進(jìn)行修復(fù)。
(5)交付。需求提出人員進(jìn)行驗(yàn)收測試,技術(shù)人員向運(yùn)維人員提交投產(chǎn)包。
2.1.3 嚴(yán)格控制變更流程
需求變更管理是項(xiàng)目管理中非常重要的一個環(huán)節(jié),直接影響項(xiàng)目管理質(zhì)效。嚴(yán)格控制變更流程是保障項(xiàng)目管理質(zhì)效的有效措施:
(1)評審。對各環(huán)節(jié)的關(guān)鍵產(chǎn)物進(jìn)行專家組評審或?qū)徸h。
(2)變更確認(rèn)。變更申請需經(jīng)技術(shù)人員所在團(tuán)隊負(fù)責(zé)人、運(yùn)維團(tuán)隊負(fù)責(zé)人同時確認(rèn),必要時由部門/中心負(fù)責(zé)人簽批,經(jīng)確認(rèn)的變更才可以實(shí)施。
基于上述的穩(wěn)態(tài)過程管理,可以顯著提升各階段產(chǎn)出物質(zhì)量,提升該項(xiàng)工作的安全性、穩(wěn)定性,同時相關(guān)過程產(chǎn)物也能作為參考資料,便于后續(xù)人員了解系統(tǒng)建設(shè)過程與功能實(shí)質(zhì)。
相較于穩(wěn)態(tài)管理,敏態(tài)管理突出“敏捷”,也就是項(xiàng)目的時效性,對過程管控的要求更多地依賴于項(xiàng)目人員,組織級的過程沉淀相對較少,適用于需求場景明確需要快速迭代的功能優(yōu)化、已清晰定位需要快速修補(bǔ)的生產(chǎn)漏洞以及依賴生產(chǎn)數(shù)據(jù)進(jìn)行驗(yàn)證測算的算法更新等場景。下文以算法類需求敏態(tài)管理為例,提出了需求快速實(shí)現(xiàn)與定期發(fā)布機(jī)制的建設(shè)思路。
2.2.1 建立算法類需求的快速實(shí)現(xiàn)機(jī)制
與功能類需求不同,算法類需求一般先在理論上進(jìn)行推導(dǎo)、求證,然后利用歷史數(shù)據(jù)對新算法進(jìn)行初步的驗(yàn)證,由于與真實(shí)生產(chǎn)環(huán)境有一定的差距,因此很難在需求評估階段判斷所提出優(yōu)化算法的準(zhǔn)確與否,需要經(jīng)過真實(shí)數(shù)據(jù)的驗(yàn)證。所以,針對算法類的需求,對需求申請、設(shè)計、編碼等過程進(jìn)行優(yōu)化整合,提出需求說明、算法優(yōu)化說明,并對相關(guān)代碼完成修改并通過評審,無需產(chǎn)出規(guī)范的需求文檔、設(shè)計文檔等材料。
2.2.2 建立定期更新發(fā)布機(jī)制
針對算法類等可能需要頻繁變更的需求,一般需要在較短時間內(nèi)實(shí)現(xiàn)需求并更新投產(chǎn),但不定時的頻繁更新會加大系統(tǒng)運(yùn)維的壓力,還會對系統(tǒng)運(yùn)行質(zhì)量造成影響,因此,針對此類更新應(yīng)建立版本火車機(jī)制。地震預(yù)警的算法涉及震相拾取、震中定位、震時判定、震級估算等,每一次地震都是獨(dú)一無二的,離線測試環(huán)境下使用的歷史地震事件數(shù)據(jù),并不一定能完全還原在線生產(chǎn)環(huán)境下的系統(tǒng)運(yùn)行情況,因此,地震預(yù)警算法評估和調(diào)優(yōu)主要以真實(shí)地震事件為驅(qū)動。根據(jù)以往團(tuán)隊研發(fā)和運(yùn)維的經(jīng)驗(yàn),新提交的算法在生產(chǎn)環(huán)境下運(yùn)行兩周收集的數(shù)據(jù),可以初步反應(yīng)算法的可用性和可靠性;時間越長,收集的數(shù)據(jù)越多,不過如果算法需要進(jìn)一步優(yōu)化的話,時效性上會有所滯后。經(jīng)過綜合考慮,敏態(tài)管理下的算法更新周期設(shè)定為每兩周進(jìn)行一次較為合適;如果該周期內(nèi)沒有事件驅(qū)動,不需要更新,那么該次更新時間點(diǎn)也可作為上次提交的驗(yàn)證點(diǎn)。
筆者所在團(tuán)隊根據(jù)上述思路對地震預(yù)警系統(tǒng)的架構(gòu)升級、算法調(diào)優(yōu)等進(jìn)行了試點(diǎn)探索并取得了一定的應(yīng)用成效。
目前省內(nèi)地震觀測臺數(shù)量不斷增加,監(jiān)測數(shù)據(jù)呈爆炸式增長,現(xiàn)有系統(tǒng)在部署方式、數(shù)據(jù)匯聚、處理及存儲、結(jié)果產(chǎn)出等方面無法滿足新一代地震監(jiān)測預(yù)警系統(tǒng)的技術(shù)要求,主要表現(xiàn)在:單機(jī)式部署,無法進(jìn)行動態(tài)負(fù)載橫向擴(kuò)容;數(shù)據(jù)匯聚實(shí)時性與靈活性不夠,可視化能力不足;數(shù)據(jù)結(jié)果產(chǎn)出以命令行方式進(jìn)行,缺少人機(jī)交互界面。因此,團(tuán)隊?wèi)?yīng)用Flink 開源流處理框架、Hadoop 分布式大數(shù)據(jù)處理技術(shù)對原有框架進(jìn)行升級,實(shí)現(xiàn)海量信息秒級地震智能化處理軟件系統(tǒng)。海量信息秒級地震智能化處理軟件系統(tǒng)的總體架構(gòu)如圖3所示,系統(tǒng)可視化的主界面如圖4所示。

圖3 海量信息秒級地震智能化處理軟件系統(tǒng)總體架構(gòu)

圖4 海量信息秒級地震智能化處理系統(tǒng)首頁界面
針對本次架構(gòu)升級成立了專門的項(xiàng)目組,采用瀑布模型,按照信息系統(tǒng)項(xiàng)目管理流程進(jìn)行項(xiàng)目管理,制定了開發(fā)計劃,進(jìn)行了需求分析,編寫了需求規(guī)格說明、概要設(shè)計、詳細(xì)設(shè)計、數(shù)據(jù)庫設(shè)計、軟件配置管理計劃、質(zhì)量保證計劃、軟件測試說明和測試報告等文檔,嚴(yán)格把控開發(fā)進(jìn)度。項(xiàng)目從立項(xiàng)到驗(yàn)收歷時9 個月,各階段的實(shí)施情況與總體計劃進(jìn)度相差無幾,項(xiàng)目管理質(zhì)效顯著。軟件通過第三方機(jī)構(gòu)檢測,進(jìn)入試運(yùn)行階段。
地震預(yù)警算法的評估和調(diào)優(yōu)以真實(shí)地震事件為驅(qū)動,以多臺震級的綜合策略為例,原有策略是選取參與預(yù)警震級估算的N 臺結(jié)果中的最大值作為預(yù)警第一報的震級數(shù)據(jù)。分析一個周期內(nèi)的系統(tǒng)運(yùn)行結(jié)果后,我們發(fā)現(xiàn)取最大值的策略存在將震級估算過大的漏洞,例如,N=4,正常情況下4 臺震級估算的數(shù)值應(yīng)該相近,取最大值作為預(yù)警第一報的震級不會與真實(shí)震級偏差太大。但出現(xiàn)一次地震,其中3 臺估算震級為3.5 級,1 臺估算震級為4.2 級,實(shí)際地震是3.5 級,這樣取4 臺的最大值作為預(yù)警第一報的震級數(shù)據(jù)就產(chǎn)生了較大偏差,而估算出4.2 級的這一臺是由于監(jiān)測數(shù)據(jù)存在質(zhì)量問題。經(jīng)過討論,我們將N 臺最大值調(diào)整為N 臺中位數(shù),編寫了需求說明和算法優(yōu)化說明,對取值代碼進(jìn)行了修改,經(jīng)過測試后上線投產(chǎn),并定期按時評估。
地震預(yù)警關(guān)系民生安危,地震預(yù)警系統(tǒng)作為復(fù)雜的軟件系統(tǒng),具有高定制化、高可靠性及高處理性能等特點(diǎn),需要采取不同于常規(guī)的項(xiàng)目管理模式,以保障地震預(yù)警系統(tǒng)的成功建設(shè)和運(yùn)維。本文介紹了常見的項(xiàng)目管理模式,結(jié)合地震預(yù)警系統(tǒng)的特點(diǎn)和實(shí)際情況,提出了穩(wěn)態(tài)+敏態(tài)相結(jié)合的多元管理模式,并選擇技術(shù)架構(gòu)升級、算法調(diào)優(yōu)等場景進(jìn)行了初步應(yīng)用,滿足不同項(xiàng)目對過程質(zhì)量以及實(shí)施效率的差異性需求,提升了項(xiàng)目管理的規(guī)范化和精細(xì)化水平,提高了系統(tǒng)建設(shè)質(zhì)效,為地震預(yù)警系統(tǒng)的長期穩(wěn)定運(yùn)行奠定了堅實(shí)的基礎(chǔ)。