陳 勇 王曉懿(北京全路通信信號研究設(shè)計(jì)院有限公司, 北京 100073)
陳勇,男,碩士畢業(yè)于中國科學(xué)院國家空間科學(xué)中心,項(xiàng)目工程師。主要研究方向包括組件化開發(fā)方法、組件和服務(wù)安全管理、海量空間數(shù)據(jù)管理。曾參與信號系統(tǒng)設(shè)計(jì)開發(fā)平臺項(xiàng)目、多項(xiàng)航天型號項(xiàng)目。
隨著高速鐵路和城市軌道交通的大規(guī)模建設(shè),控制列車安全高速運(yùn)行的通信信號系統(tǒng)的地位日益重要。與此相對應(yīng)的是,通信信號系統(tǒng)相關(guān)的軟件產(chǎn)品數(shù)量與日俱增、產(chǎn)品規(guī)模越來越大、產(chǎn)品復(fù)雜度和安全性要求也越來越高,傳統(tǒng)的軟件開發(fā)和管理已不能滿足軌道交通通信信號系統(tǒng)軟件產(chǎn)品的研發(fā)需求。從高速鐵路的CTCS-3到城市軌道交通的CBTC,與其相關(guān)的軟件開發(fā)技術(shù)正快速的從低層次的編程問題轉(zhuǎn)向基于組件化技術(shù)的系統(tǒng)集成。
基于組件化技術(shù)開發(fā)會(huì)帶來很多的優(yōu)勢,原來對系統(tǒng)級的粗粒度控制細(xì)化到了組件級別的細(xì)粒度控制,一個(gè)復(fù)雜系統(tǒng)的構(gòu)建就是組件最終進(jìn)行集成后的結(jié)果。每個(gè)組件都有自己獨(dú)立的版本,組件可以獨(dú)立編譯、測試、部署、管理。其次產(chǎn)品組件化后可以真正實(shí)現(xiàn)完整意義上的按組件進(jìn)行產(chǎn)品配置、集成和銷售,用戶可以選擇購買哪些組件,并進(jìn)行靈活的組裝。另外對于需求、開發(fā)、測試、打包、發(fā)布中的配置管理也完全可以控制到組件層面,即具有開放性、靈活性、可管理性、安全性和透明性等特點(diǎn)。
然而,基于組件的開發(fā)技術(shù)仍然面臨著許多問題,特別是安全相關(guān)的組件。通常對軌道交通通信信號系統(tǒng)安全相關(guān)的組件安全等級要求比較高,安全產(chǎn)品必須要符合IR IS標(biāo)準(zhǔn)和通過歐標(biāo)安全SIL4級認(rèn)證。擁有一個(gè)符合企業(yè)產(chǎn)品需求的安全、高效的組件化技術(shù)開發(fā)平臺和組件庫來確保組件的安全并實(shí)現(xiàn)組織級的復(fù)用和對組件的整個(gè)生命周期進(jìn)行有效的管理已顯得越來越重要。西門子、阿爾斯通都在公司層次上建立了相應(yīng)的組件設(shè)計(jì)開發(fā)平臺和組件庫,并依托平臺推出系列產(chǎn)品。
本文根據(jù)軌道交通通信信號系統(tǒng)軟件開發(fā)的特點(diǎn),研究設(shè)計(jì)了一個(gè)滿足組件化開發(fā)和管理需求的組件庫。該組件庫集成了IBM成熟的相關(guān)商用工具,從組件的入庫、組件審核、組件狀態(tài)和權(quán)限管理各環(huán)節(jié)來確保組件的安全性,為用戶提供高效、安全的組件服務(wù)。
本文介紹的組件庫是某大型信號設(shè)計(jì)開發(fā)平臺(簡稱平臺)的子系統(tǒng),它是基于軌道交通通信信號系統(tǒng)行業(yè)需求,根據(jù)軌道交通行業(yè)的組件化應(yīng)用特點(diǎn),結(jié)合IR IS體系標(biāo)準(zhǔn),能為企業(yè)提供安全、高效、可靠的組件服務(wù)。組件庫基于Gw t、H ib ern a te和Sp r in g的J2EE架構(gòu),集成IBM的需求管理工具Ra tiona l Doors和變更控制解決方案Rational Change的相關(guān)功能并進(jìn)行二次開發(fā),提供組件文檔模板自動(dòng)生成、入庫前的組件基線自動(dòng)生成、組件完整性檢查、組件入庫審核、審核流程定制、組件查詢(支持對需求和測試案例的查詢和推薦)、組件權(quán)限管理、組件狀態(tài)管理、組件下載、用戶個(gè)人主頁布局和內(nèi)容的定制,組件統(tǒng)計(jì)等功能,如圖1所示。訪問方式提供基于B/S和C/S兩種,且能跨平臺部署。
首先介紹組件庫管理的組件的特點(diǎn)。本組件庫中定義一個(gè)完整的標(biāo)準(zhǔn)通用組件一般包括需求、UM L描述的設(shè)計(jì)、代碼和目標(biāo)系統(tǒng)(可執(zhí)行程序或者庫文件)、測試案例和測試腳本、文檔、以及這個(gè)組件所依賴的組件。組件的依賴組件可以是本地新建組件,也可以是遠(yuǎn)程組件庫中的已有組件。組件根據(jù)應(yīng)用場景分類為項(xiàng)目組件、子系統(tǒng)組件、 標(biāo)準(zhǔn)通用組件,測試組件,分引擎組件5種類型。組件按照安全完整性等級(Safety Integrity Level)則又分為SIL0級(非安全組件)、SIL1級(低安全等級)、SIL2(一般安全等級)、SIL3級(高安全等級)、SIL4級(最高安全等級)等5級。組件在新建時(shí), 組件庫所在的平臺能根據(jù)組件類型和安全級別為組件自動(dòng)生成所需的各種文檔模板,特別是需要符合IR IS規(guī)范的組件文檔。組件庫還可以根據(jù)不同的組件類型和SIL安全級別為其配置不同的審核流程,并進(jìn)行分類管理。組件使用項(xiàng)目組名(Group)、組件名稱(A r tifact)、組件當(dāng)前版本(Version)作為其唯一標(biāo)識符(簡稱GAV) 。一個(gè)按照IR IS規(guī)范生成的SIL4級的默認(rèn)項(xiàng)目組件結(jié)構(gòu)如圖2所示。
組件通過需求、設(shè)計(jì)、測試階段的開發(fā)和階段審核后,會(huì)提交到組件庫進(jìn)行最后的入庫審核,以便成為正式的發(fā)布組件并供其他人員查閱、復(fù)用。組件入庫的方式有兩種:從平臺的客戶端入庫或者從瀏覽器W EB方式提交入庫。這里僅介紹從平臺客戶端入庫的流程:在組件庫客戶端(平臺的客戶端),首先會(huì)檢查該組件的本地依賴組件是否存在,如果不存在,則提示錯(cuò)誤,隨后會(huì)根據(jù)組件類型和安全性等級進(jìn)行組件的完整性檢查,完整性是根據(jù)IR IS規(guī)范所需求的文檔列表,逐個(gè)檢查組件里的文檔是否齊全,并提示用戶還缺少哪些文檔。接下來會(huì)自動(dòng)把存于IBM Rational Doors中的需求和測試案例按照一定規(guī)則生成入庫基線,并自動(dòng)根據(jù)配置的模板導(dǎo)出Doo rs中的需求和測試案例生成一個(gè)信息無損的文件,填寫正確的組件庫地址就可以進(jìn)行組件上傳。上傳過程中,會(huì)自動(dòng)計(jì)算組件的依賴組件,判斷依賴環(huán),生成依賴樹,從依賴樹的葉子節(jié)點(diǎn)往上逐個(gè)提交組件內(nèi)容,直至全部提交完畢。組件庫服務(wù)器端監(jiān)聽到上傳的組件后,進(jìn)行一系列的檢查確認(rèn)后,保存組件后自動(dòng)向Change發(fā)起組件審核流程,如果上傳失敗服務(wù)器端則會(huì)回滾并提示錯(cuò)誤,圖3給出一個(gè)流程的示意圖。
組件庫服務(wù)器通過對IBM Rational Change進(jìn)行二次開發(fā),向Ch an ge發(fā)起配置的審核流程。管理員可以根據(jù)各個(gè)組件的類別和安全級別,配置不同級別和不同復(fù)雜度的審核流程。各角色的用戶登錄C h an ge后,按照分配的權(quán)限和流程向?qū)?,?zhí)行對應(yīng)的審核任務(wù),系統(tǒng)自動(dòng)進(jìn)行組件狀態(tài)的遷移,從而完成各自的評審職責(zé)。當(dāng)最終待審核對象審核通過或未通過的狀態(tài)遷移完成后,Ch an ge服務(wù)器會(huì)向組件庫服務(wù)器發(fā)送審核通知,獲取待審核組件的審核結(jié)果及其他相關(guān)信息,進(jìn)行存檔并遷移組件狀態(tài)。如果審核結(jié)果為發(fā)布,則會(huì)自動(dòng)發(fā)布組件并為用戶發(fā)送通知。最后,組件庫需要為發(fā)布的組件建立搜索索引,以便提供該組件相關(guān)文檔的全文搜索服務(wù)。Ch an ge服務(wù)器向組件庫服務(wù)器審核結(jié)果反饋順序圖如圖4所示。
組件庫向用戶提供了豐富的瀏覽方式,用戶不但可以通過組件分類用列表和圖標(biāo)的形式瀏覽,還可以通過搜索條件定制自己感興趣的組件列表,在首頁通過w id g e t圖標(biāo)或列表的方式進(jìn)行瀏覽。一個(gè)用戶通過w idget定制的個(gè)人主頁如圖5所示。
用戶可以點(diǎn)擊組件圖標(biāo),通過組件詳細(xì)信息頁來瀏覽組件詳細(xì)信息。組件的詳細(xì)信息包括組件的元數(shù)據(jù)信息、組件組成的文件列表、組件的完整性信息以及組件和它的依賴組件之間的關(guān)系圖和被依賴關(guān)系圖。如圖6所示。
組件庫用戶權(quán)限管理本著安全、便利的設(shè)計(jì)原則,通過集成IBM Rational Directory Server(RDS)工具進(jìn)行二次開發(fā),為用戶和組件分配權(quán)限。組件庫,DOORS,CH ANGE中的所有用戶由RDS來進(jìn)行統(tǒng)一管理。通過實(shí)施各用戶組的分級控制,各用戶組管理員能管理本組用戶的權(quán)限,且組與組之間通過用戶組名的關(guān)系可以進(jìn)行權(quán)限繼承,即下級用戶組可以繼承上級用戶的權(quán)限。如圖7所示。
實(shí)踐表明,上述的組件庫能夠有效的對組件進(jìn)行管理,并能大大加強(qiáng)組件入庫、審核、管理等方面的安全性。由于組件庫服務(wù)器集成了多個(gè)第三方軟件且功能較多,篇幅有限,故本文沒有深入的探討技術(shù)細(xì)節(jié),某些關(guān)鍵技術(shù)將另文詳細(xì)闡述。
[1]傅世善.傅世善鐵路信號論文選集[M].北京:中國鐵道出版社,2012.
[2] IBM Corporation IBM Rational DOORS API Manual Release 9.2.2009.
[3] IBM Corporation IBM Rational CHANGE Admin help. 2009.