陳 勇 王曉懿(北京全路通信信號研究設計院有限公司, 北京 100073)

陳勇,男,碩士畢業于中國科學院國家空間科學中心,項目工程師。主要研究方向包括組件化開發方法、組件和服務安全管理、海量空間數據管理。曾參與信號系統設計開發平臺項目、多項航天型號項目。
隨著高速鐵路和城市軌道交通的大規模建設,控制列車安全高速運行的通信信號系統的地位日益重要。與此相對應的是,通信信號系統相關的軟件產品數量與日俱增、產品規模越來越大、產品復雜度和安全性要求也越來越高,傳統的軟件開發和管理已不能滿足軌道交通通信信號系統軟件產品的研發需求。從高速鐵路的CTCS-3到城市軌道交通的CBTC,與其相關的軟件開發技術正快速的從低層次的編程問題轉向基于組件化技術的系統集成。
基于組件化技術開發會帶來很多的優勢,原來對系統級的粗粒度控制細化到了組件級別的細粒度控制,一個復雜系統的構建就是組件最終進行集成后的結果。每個組件都有自己獨立的版本,組件可以獨立編譯、測試、部署、管理。其次產品組件化后可以真正實現完整意義上的按組件進行產品配置、集成和銷售,用戶可以選擇購買哪些組件,并進行靈活的組裝。另外對于需求、開發、測試、打包、發布中的配置管理也完全可以控制到組件層面,即具有開放性、靈活性、可管理性、安全性和透明性等特點。
然而,基于組件的開發技術仍然面臨著許多問題,特別是安全相關的組件。通常對軌道交通通信信號系統安全相關的組件安全等級要求比較高,安全產品必須要符合IR IS標準和通過歐標安全SIL4級認證。擁有一個符合企業產品需求的安全、高效的組件化技術開發平臺和組件庫來確保組件的安全并實現組織級的復用和對組件的整個生命周期進行有效的管理已顯得越來越重要。西門子、阿爾斯通都在公司層次上建立了相應的組件設計開發平臺和組件庫,并依托平臺推出系列產品。
本文根據軌道交通通信信號系統軟件開發的特點,研究設計了一個滿足組件化開發和管理需求的組件庫。該組件庫集成了IBM成熟的相關商用工具,從組件的入庫、組件審核、組件狀態和權限管理各環節來確保組件的安全性,為用戶提供高效、安全的組件服務。
本文介紹的組件庫是某大型信號設計開發平臺(簡稱平臺)的子系統,它是基于軌道交通通信信號系統行業需求,根據軌道交通行業的組件化應用特點,結合IR IS體系標準,能為企業提供安全、高效、可靠的組件服務。組件庫基于Gw t、H ib ern a te和Sp r in g的J2EE架構,集成IBM的需求管理工具Ra tiona l Doors和變更控制解決方案Rational Change的相關功能并進行二次開發,提供組件文檔模板自動生成、入庫前的組件基線自動生成、組件完整性檢查、組件入庫審核、審核流程定制、組件查詢(支持對需求和測試案例的查詢和推薦)、組件權限管理、組件狀態管理、組件下載、用戶個人主頁布局和內容的定制,組件統計等功能,如圖1所示。訪問方式提供基于B/S和C/S兩種,且能跨平臺部署。

首先介紹組件庫管理的組件的特點。本組件庫中定義一個完整的標準通用組件一般包括需求、UM L描述的設計、代碼和目標系統(可執行程序或者庫文件)、測試案例和測試腳本、文檔、以及這個組件所依賴的組件。組件的依賴組件可以是本地新建組件,也可以是遠程組件庫中的已有組件。組件根據應用場景分類為項目組件、子系統組件、 標準通用組件,測試組件,分引擎組件5種類型。組件按照安全完整性等級(Safety Integrity Level)則又分為SIL0級(非安全組件)、SIL1級(低安全等級)、SIL2(一般安全等級)、SIL3級(高安全等級)、SIL4級(最高安全等級)等5級。組件在新建時, 組件庫所在的平臺能根據組件類型和安全級別為組件自動生成所需的各種文檔模板,特別是需要符合IR IS規范的組件文檔。組件庫還可以根據不同的組件類型和SIL安全級別為其配置不同的審核流程,并進行分類管理。組件使用項目組名(Group)、組件名稱(A r tifact)、組件當前版本(Version)作為其唯一標識符(簡稱GAV) 。一個按照IR IS規范生成的SIL4級的默認項目組件結構如圖2所示。

組件通過需求、設計、測試階段的開發和階段審核后,會提交到組件庫進行最后的入庫審核,以便成為正式的發布組件并供其他人員查閱、復用。組件入庫的方式有兩種:從平臺的客戶端入庫或者從瀏覽器W EB方式提交入庫。這里僅介紹從平臺客戶端入庫的流程:在組件庫客戶端(平臺的客戶端),首先會檢查該組件的本地依賴組件是否存在,如果不存在,則提示錯誤,隨后會根據組件類型和安全性等級進行組件的完整性檢查,完整性是根據IR IS規范所需求的文檔列表,逐個檢查組件里的文檔是否齊全,并提示用戶還缺少哪些文檔。接下來會自動把存于IBM Rational Doors中的需求和測試案例按照一定規則生成入庫基線,并自動根據配置的模板導出Doo rs中的需求和測試案例生成一個信息無損的文件,填寫正確的組件庫地址就可以進行組件上傳。上傳過程中,會自動計算組件的依賴組件,判斷依賴環,生成依賴樹,從依賴樹的葉子節點往上逐個提交組件內容,直至全部提交完畢。組件庫服務器端監聽到上傳的組件后,進行一系列的檢查確認后,保存組件后自動向Change發起組件審核流程,如果上傳失敗服務器端則會回滾并提示錯誤,圖3給出一個流程的示意圖。

組件庫服務器通過對IBM Rational Change進行二次開發,向Ch an ge發起配置的審核流程。管理員可以根據各個組件的類別和安全級別,配置不同級別和不同復雜度的審核流程。各角色的用戶登錄C h an ge后,按照分配的權限和流程向導,執行對應的審核任務,系統自動進行組件狀態的遷移,從而完成各自的評審職責。當最終待審核對象審核通過或未通過的狀態遷移完成后,Ch an ge服務器會向組件庫服務器發送審核通知,獲取待審核組件的審核結果及其他相關信息,進行存檔并遷移組件狀態。如果審核結果為發布,則會自動發布組件并為用戶發送通知。最后,組件庫需要為發布的組件建立搜索索引,以便提供該組件相關文檔的全文搜索服務。Ch an ge服務器向組件庫服務器審核結果反饋順序圖如圖4所示。

組件庫向用戶提供了豐富的瀏覽方式,用戶不但可以通過組件分類用列表和圖標的形式瀏覽,還可以通過搜索條件定制自己感興趣的組件列表,在首頁通過w id g e t圖標或列表的方式進行瀏覽。一個用戶通過w idget定制的個人主頁如圖5所示。
用戶可以點擊組件圖標,通過組件詳細信息頁來瀏覽組件詳細信息。組件的詳細信息包括組件的元數據信息、組件組成的文件列表、組件的完整性信息以及組件和它的依賴組件之間的關系圖和被依賴關系圖。如圖6所示。


組件庫用戶權限管理本著安全、便利的設計原則,通過集成IBM Rational Directory Server(RDS)工具進行二次開發,為用戶和組件分配權限。組件庫,DOORS,CH ANGE中的所有用戶由RDS來進行統一管理。通過實施各用戶組的分級控制,各用戶組管理員能管理本組用戶的權限,且組與組之間通過用戶組名的關系可以進行權限繼承,即下級用戶組可以繼承上級用戶的權限。如圖7所示。

實踐表明,上述的組件庫能夠有效的對組件進行管理,并能大大加強組件入庫、審核、管理等方面的安全性。由于組件庫服務器集成了多個第三方軟件且功能較多,篇幅有限,故本文沒有深入的探討技術細節,某些關鍵技術將另文詳細闡述。
[1]傅世善.傅世善鐵路信號論文選集[M].北京:中國鐵道出版社,2012.
[2] IBM Corporation IBM Rational DOORS API Manual Release 9.2.2009.
[3] IBM Corporation IBM Rational CHANGE Admin help. 2009.