郭延臣 徐沛東 王振 郝亞沖 李代偉
(宇航動力學國家重點實驗室 陜西省西安市 710043)
隨著我國航天測控事業(yè)的不斷發(fā)展,航天測控任務相關支持系統(tǒng)的運行和維護模式也需要進行相應的優(yōu)化和調(diào)整,其中綜合指揮顯示軟件作為任務測控信息監(jiān)視平臺,是相關決策人員和崗位技術人員進行任務監(jiān)視、操作和控制的重要支持軟件,這就要求指揮顯示軟件具有部署廣泛、實時更新等特點。目前我單位的現(xiàn)實情況是安裝使用綜合指揮顯示軟件的客戶端工作站部署分散、應用場景廣泛,而且綜合指揮顯示軟件針對不同的決策人員和崗位人員側(cè)重的部署內(nèi)容也有所不同,日常情況下軟件系統(tǒng)的不同部分由不同的崗位人員進行更新部署和維護,系統(tǒng)更新維護具有文件種類繁雜、大文件多、提交源頭廣、部署工作站多、版本更新頻繁、部署更新實效性和正確性要求高、文件版本迭代邏輯復雜、糾錯強、出現(xiàn)異常自動化定位排查迅速等特點,另外系統(tǒng)的多崗位、多角色的維護以及多版本的管理都是需要著重考慮的因素。
為了解決這些實際問題,針對我單位的現(xiàn)實情況,本文探討對集中管理部署系統(tǒng)進行了優(yōu)化設計,系統(tǒng)的版本管理運用SSH 協(xié)議建立開發(fā)庫、受控庫、產(chǎn)品庫(簡稱三庫),構建“流水式”軟件同步與集成機制,對各任務維護的頁面、資源、參數(shù)字典等相關的半成品、測試品、發(fā)布品進行集中管理和版本控制;系統(tǒng)的版本部署設計構建“分布式”發(fā)布更新模式,實現(xiàn)了實時、分級和錯峰三種部署機制,并設計了自動、手動、遠控等三種部署方式。增加了崗位角色設計,為各個角色設計不同的使用權限和操作規(guī)范,實現(xiàn)了用戶的定制化服務,極大的提升了系統(tǒng)的運行效率和用戶的使用體驗。
綜合指揮顯示軟件按照維護崗位劃分為軟件版本和配置文件版本兩大類,版本管理功能實現(xiàn)對這兩類版本的管理和維護,完成版本提交管理、版本沖突管理、版本庫管理和版本發(fā)布管理等功能。
版本提交管理功能提供軟件版本和配置文件版本的提交服務,提供多崗位人員、多團隊分布式提交版本功能。
版本沖突管理對提交后的版本進行沖突檢查,完成版本的一致性檢查和正確性檢查,確保版本功能正常可用。
版本庫管理負責集中存儲管理顯示平臺和組件的正式發(fā)布版軟件、不同任務裝訂的配置文件及頁面文件等,管理綜合顯示軟件的維護成果、最終產(chǎn)品,保存并記錄維護的各版本信息,提供軟件包、配置文件、顯示頁面及頁面模板的版本管理功能,保存所有更新版本,并提供版本的檢索和下載功能。
版本發(fā)布管理集中管理各個顯示工作站的更新內(nèi)容,并查詢檢索收集各個顯示工作站的版本信息和運行狀態(tài),確保各個顯示工作站按照任務需求和崗位需求進行差異化更新部署綜合指揮顯示系統(tǒng)軟件。
版本管理功能為系統(tǒng)維護人員提供分布式成果提交、測試、發(fā)布等的環(huán)境功能,各系統(tǒng)維護人員和測試人員利用版本管理客戶端下載基礎版本、提交維護成果、集成測試、發(fā)布任務版本;支撐多個團隊分布式協(xié)作維護,確保維護人員在不影響其他系統(tǒng)測運控任務執(zhí)行的情況下,開展本系統(tǒng)的獨立維護,為高密度任務重疊情況下的系統(tǒng)維護更新提供強大支持。
版本部署功能實現(xiàn)指揮顯示軟件工作站上的軟件版本和版本服務器上的軟件版本的同步更新部署,能夠在盡量短的時間內(nèi)完成更新部署工作,在更新開始前能夠監(jiān)控各顯示終端的軟件版本信息和運行狀態(tài),在更新結(jié)束后檢查收集顯示終端的軟件版本號,能夠同時向多網(wǎng)段、多臺顯示工作站分布式和差異化更新發(fā)布軟件包、配置文件及顯示頁面文件。
版本部署功能具有軟件版本和配置文件版本的檢查能力,一個完整的部署流程包括提交和更新,提交流程是系統(tǒng)維護角色將提交的版本與服務器版本庫中管理的版本進行對比,系統(tǒng)根據(jù)版本狀態(tài)更新服務器中的軟件版本或是配置文件版本;更新流程是系統(tǒng)定時(時間間隔可根據(jù)需要修改配置文件中對應參數(shù))將服務器版本庫中管理的版本和終端工作站的文件版本進行比對和檢查,包括檢查指揮顯示軟件包、配置文件、頁面文件或頁面模板文件,然后把需要更新的文件推送部署到本地工作站。終端用戶能夠通過連接產(chǎn)品庫,根據(jù)需要手動進行版本更新部署,確保全網(wǎng)段更新部署指揮顯示軟件的最新版本。
角色管理包括維護角色管理和使用角色管理。維護角色是軟件版本和配置文件版本的提供者、發(fā)布者和管理者,按照維護的具體內(nèi)容劃分為多個角色;使用角色是指揮顯示軟件的終端用戶,按照工作需求分為重點角色和若干普通角色,重點角色和普通角色所關心和關注的內(nèi)容不同,軟件版本和配置文件版本需要區(qū)別部署和管理,版本發(fā)布管理服務根據(jù)使用角色差異化推送部署軟件版本和配置文件版本。
2.4.1 異常修復
根據(jù)上一版集中管理部署系統(tǒng)的使用情況,系統(tǒng)在運行過程中會出現(xiàn)某些異常,導致部署更新流程無法成功執(zhí)行,這種情況時有發(fā)生,新版集中管理部署系統(tǒng)為了解決這一問題,在軟件架構方面做了一定程度的優(yōu)化,增加設計了系統(tǒng)自動修復的功能,那就是在工作站終端增加生成最新文件版本號并和服務器版本號比對的功能,從而在某些情況下實現(xiàn)了系統(tǒng)運行異常的自動修復功能。
2.4.2 日志存儲
根據(jù)上一版集中管理部署系統(tǒng)的使用情況,系統(tǒng)在運行過程中能夠生成常規(guī)日志,用于記錄日常更新的文件名稱和更新時間等信息,常規(guī)日志在系統(tǒng)運行過程中會大量產(chǎn)生并占用工作站磁盤空間,新版集中管理部署系統(tǒng)增加了對常規(guī)日志的定時清除功能,并且增加了生成系統(tǒng)運行異常日志的功能。
分布式軟件集中管理部署系統(tǒng)主要分為版本提交和版本部署兩個操作流程,版本提交采用“流水線”方式,版本部署采用“分布式”方式,維護角色按照任務需求文件進行軟件研發(fā)和配置頁面定制生成,之后把文件提交到版本管理庫,版本管理庫調(diào)用版本更新服務對相應的顯示工作站發(fā)布更新命令并進行版本更新部署和推送,顯示工作站完成更新部署后在本地生成最新版本號并向版本管理服務器返回更新結(jié)束消息,本次版本更新部署流程結(jié)束。更新部署流程完成之后,使用角色可以在顯示工作站使用正確的軟件版本開展后續(xù)工作。操作流程如圖1所示。
圖1:操作流程示意圖
3.1.1 版本管理庫
版本管理庫運用SSH 協(xié)議建立開發(fā)庫、受控庫、產(chǎn)品庫(簡稱三庫),構建“流水式”軟件同步與集成機制,對各任務維護的頁面、資源、參數(shù)字典等相關的半成品、測試品、發(fā)布品進行集中管理和版本控制,為后續(xù)擴大系統(tǒng)規(guī)模,增加輔助功能和更深層次數(shù)據(jù)應用鋪平了道路。
版本管理庫集中管理綜合顯示軟件的維護成果、最終產(chǎn)品,保存并記錄維護的各版本信息。版本控制功能包部署在顯示服務器,版本管理軟件提供軟件包、配置文件、顯示頁面及頁面模板的版本管理功能,保存所有更新版本,并提供版本的檢索(SVN 提供)和下載功能。
版本管理功能包括版本管理庫、版本管理服務器、版本管理客戶端等三個模塊,版本管理庫包括開發(fā)庫、受控庫、產(chǎn)品庫。
版本管理軟件為系統(tǒng)維護人員提供分布式成果提交、測試、發(fā)布等的環(huán)境功能,各系統(tǒng)維護人員和測試人員利用版本管理客戶端下載基礎版本、提交維護成果、集成測試、發(fā)布任務版本;終端用戶通過連接產(chǎn)品庫,進行版本同步,確保維護維護成果全網(wǎng)絡更新。
3.1.2 版本兼容性
當有新的升級內(nèi)容時,新版本軟件應兼容歷史版本配置或頁面文件,已經(jīng)穩(wěn)定運行的軟件版本不受影響,不同終端間允許前后版本的并行運行。
3.1.3 版本匯報
顯示工作站完成更新部署后在本地生成最新版本號,然后向版本管理服務器返回更新結(jié)束消息,匯報本次更新流程結(jié)束,版本管理服務器也可以通過遠控軟件監(jiān)控各顯示終端的軟件版本信息和運行狀態(tài)。
版本部署功能主要分為實時部署、分級部署和錯峰部署三種部署機制,實時部署主要針對任務等級高、實時性強的版本文件,要實現(xiàn)崗位人員在創(chuàng)建提交新版本后第一時間向終端工作站發(fā)布部署的請求,在版本文件開始更新時,工作站文件版本與服務器版本升級庫進行版本對比,根據(jù)比對結(jié)果下載并安裝變更的軟件包、配置信息、顯示頁面、資源文件等文件片段,實現(xiàn)最小化下載和更新;分級部署主要針對多任務、多用戶的部署需求,為不同任務、不同用戶差異化部署版本文件,充分利用系統(tǒng)設計中增加版本管理服務器這一特點,強化了版本管理軟件的服務端功能,將原有版本管理軟件的多機客戶端主動資源搶奪更新模式改變?yōu)榭蛻舳吮粍禹憫掌髻Y源分配更新模式,該模式的優(yōu)點是服務器端軟件根據(jù)服務器的計算和網(wǎng)絡資源,以及客戶端工作站的活躍度對客戶端軟件版本更新順序進行排序和優(yōu)化,保證了重點客戶端工作站的準實時更新;錯峰部署主要考慮到網(wǎng)絡帶寬和工作站資源利用效率等因素,對工作機房內(nèi)的工作站按區(qū)域和優(yōu)先級不同分批次進行更新,把版本文件按照更新部署優(yōu)先級進行排序,對優(yōu)先級高的文件盡快發(fā)布部署,對優(yōu)先級低的文件可以延遲部署,有效的避免了多機同時升級導致的網(wǎng)絡擁堵,能夠高效的完成軟件版本升級服務,同時,可通過部署多臺服務器實現(xiàn)負載均衡,對于大量的客戶端請求進行分流,減少服務器的運行壓力。對于不同的更新模式,其實際的更新流程是相同的,具體流程如表1所示。
表1:更新流程
版本文件部署功能提供自動、手動、遠控等三種部署方式,自動部署是版本部署服務器定時向顯示軟件工作站發(fā)布更新文件版本,時間間隔通過系統(tǒng)配置文件進行設置;手動部署是崗位人員操作顯示軟件工作站的更新軟件從顯示服務器主動索取文件版本,是自動部署模式的補充;遠控部署是系統(tǒng)維護人員通過操作遠程控制軟件,檢查指定的顯示軟件工作站,對需要更新的文件版本進行定向更新部署,遠程控制部署管理工作由綜合顯示、升級管理、麒麟操作系統(tǒng)Shell 指令集、expect應答響應等多個軟件配合完成,幫助系統(tǒng)維護人員批量管理工作機房顯示軟件工作站,有效隔離不同系統(tǒng)的管理范圍,防止系統(tǒng)間交叉管理引起混亂。
不同的部署機制和部署方式針對于不同的任務場景和使用環(huán)境,在實際使用中要根據(jù)具體情況具體應用。
角色管理包括維護角色管理和使用角色管理,系統(tǒng)在登錄時需要進行角色授權,根據(jù)登陸角色屬性賦予維護權限或者是使用權限。
對于維護角色,負責對軟件和配置文件進行提供、發(fā)布和管理,系統(tǒng)會分配多個崗位ID,每個崗位ID 會授予不同系統(tǒng)或任務文件的提供、發(fā)布和管理權限。
對于使用角色,是指揮顯示軟件的終端用戶,具有軟件的瀏覽和使用權限,并且具有差異化的軟件顯示風格、操作習慣、工具使用權限等屬性。對于每次任務場景,系統(tǒng)統(tǒng)一分配和管理若干重點使用角色和若干普通使用角色,例如包括指揮決策人員、中心各專業(yè)崗位人員、飛控試驗隊人員、外協(xié)人員等,系統(tǒng)為每個角色配置指定的ID 信息,每個ID 被授予指揮顯示軟件不同崗位顯示頁面的瀏覽權限和使用權限,當某角色ID 切換計算機終端時,將頁面推送內(nèi)容、顯示風格、控件操作、視角變化、工具應用等也會隨之進行跟隨切換,并且以遠控指令方式向服務端角色管理服務上報提交。
維護角色和使用角色的各個崗位ID在登錄系統(tǒng)時,系統(tǒng)會根據(jù)ID 的權限和屬性在計算機終端初始化指揮顯示軟件的相關配置并賦予不同權限,并且以日志的形式存儲各個崗位ID 的登錄信息和操作信息。
3.4.1 異常修復
運行在工作站的版本更新程序每隔固定時間會比對工作站和服務器的文件版本,具體為比對文件的MD5碼,如果發(fā)現(xiàn)工作站文件和服務器文件的MD5 碼不一致,就會進行更新下載,當所有文件更新完畢后,工作站更新程序自動生成一個最新的文件版本號并保存在工作站指定路徑,并把這個版本號提交給服務器,標志本次更新工作完成。如果本地無法生成最新的文件版本號,或者本地生成的文件版本號與服務器端版本號不一致,則標志本次更新工作沒有完成,版本更新程序會檢查異常文件節(jié)點并進行相應處置,完成后再次進行文件更新操作,按此操作循環(huán)執(zhí)行直到本地生成最新的文件版本號,并且和服務器端版本號比對一致,完成文件更新流程。
3.4.2 日志存儲
集中管理部署系統(tǒng)的日志主要分為操作日志和系統(tǒng)日志,操作日志記錄崗位人員的相關操作(包括對文件的創(chuàng)建、提交、更新、刪除等操作)信息;系統(tǒng)日志是系統(tǒng)運行時自動生成的日志,主要包含兩類,一種是常規(guī)日志,用于記錄正常提交和部署的文件名稱和時間等信息,常規(guī)日志在系統(tǒng)運行過程中會大量產(chǎn)生并占用磁盤空間,系統(tǒng)會定時自動清除;另一種是異常日志,記錄系統(tǒng)運行異常(比如文件更新失敗等情況)時的相關現(xiàn)場信息,以便于技術人員對更新異常情況進行問題定位和排查解決。系統(tǒng)在早期設計時沒有考慮生成異常日志,導致系統(tǒng)在運行出現(xiàn)異常時無法準確定位和排查解決,經(jīng)過優(yōu)化設計后增加了輸出異常日志的功能,通過一段時間的實際使用,異常日志相較于常規(guī)日志,包含更有價值的現(xiàn)場故障信息,也是技術支持人員更加關注的內(nèi)容,為分析處理問題和解決系統(tǒng)異常提供了重要參考。
為了滿足我單位日益增長的航天測控任務需求,對作為任務重要支撐的綜合指揮顯示軟件的文件管理、版本控制和更新部署能力也提出了更高的要求,因此需要優(yōu)化文件管理架構,提升軟件部署效能。通過對歷史集中管理系統(tǒng)的分析研究,本文介紹的分布式文件集中管理系統(tǒng)采用全新的開發(fā)庫、受控庫、產(chǎn)品庫設計模式,優(yōu)化了文件管理模式,提高了系統(tǒng)的可靠性、可用性和擴展性,實現(xiàn)了對多網(wǎng)段、多節(jié)點的計算機工作站的分布式更新部署功能,實現(xiàn)了大量文件的管理和實時高效部署能力,提升了部署自動化效能,并且添加了多角色的管理和使用,支持多角色對文件的并行上傳下載功能,提升了用戶的使用體驗,在我單位的實際使用過程中起到了良好的效果。