文獻標識碼: A
文章編號: 0258-7998(2010)07-0144-03
隨著軟件開發(fā)項目規(guī)模的逐漸增大,多人協(xié)同開發(fā)同一項目已成為普遍現(xiàn)實。在多人協(xié)同工作環(huán)境下,如果沒有很好的版本控制和配置管理,項目開發(fā)無法順利實施。同樣,對于網(wǎng)絡仿真領域中基于OPNET[1-2]開發(fā)的仿真項目,由于現(xiàn)在網(wǎng)絡規(guī)模越來越大,技術體制眾多,對其進行仿真的內容復雜、工作量龐大,而這些往往是單個建模人員難以完成的工作。因此,在基于OPNET的網(wǎng)絡仿真工程開發(fā)過程中,也需要對OPNET模型開發(fā)進行配置管理[3],以提高工作效率。
1 OPNET模型開發(fā)配置管理需求分析
1.1 OPNET模型開發(fā)配置管理與軟件開發(fā)配置管理的相似之處
在軟件開發(fā)領域對配置管理有嚴格的要求,與其相類似,在基于OPNET開發(fā)網(wǎng)絡仿真模型時,對模型開發(fā)也有一定要求,主要表現(xiàn)為:(1)軟件開發(fā)配置管理和OPNET模型開發(fā),同樣需要保存模型源文件的記錄;(2)在軟件開發(fā)過程中,需要協(xié)同開發(fā)源代碼,而對于OPNET模型開發(fā),則需要在不同的Modeler之間協(xié)同開發(fā)OPNET仿真模型; (3)在軟件開發(fā)過程中,需要重用源代碼,而OPNET模型開發(fā),在新的工程中也需要重用以前開發(fā)的OPNET模型源代碼。
1.2 缺少配置管理的OPNET模型開發(fā)存在的風險
在開發(fā)大型網(wǎng)絡仿真模型的過程中,如果不采用有效的配置管理方法,可能會造成難以預計的損失。例如:(1)開發(fā)的模型文件丟失;(2)運行仿真對所開發(fā)的模型進行驗證時,無法得到預期的仿真結果;(3)不同的模型開發(fā)人員所工作的模型文件版本不同,給模型集成帶來困難。以上問題對于協(xié)同開發(fā)OPNET仿真項目,特別是開發(fā)大型網(wǎng)絡仿真模型而言,均為不利因素,甚至可能產生災難性的后果。
1.3 OPNET模型開發(fā)配置管理的目的
基于以上原因,在OPNET模型開發(fā)過程中,需實施有效的配置管理,這樣可以達到以下目的:(1)保存良好的版本記錄。開發(fā)人員可以保存源代碼的主要版本,在此基礎上,配置管理保留了該版本的全部修改記錄,這樣可以使開發(fā)人員在任何時候都能獲取到所需文件的所有版本。因此,不論對于團隊,還是個人開發(fā)OPNET仿真模型,都能做到條理清晰,避免重復工作;(2)利于開發(fā)團隊的合作??梢约s定開發(fā)人員獲取、更新源代碼主要版本的途徑,使得在并行開發(fā)模型的過程中,開發(fā)人員能有效地同步工作,從而提高模型的開發(fā)效率。
2 配置管理工具分析
目前流行的配置管理工具包括Rational ClearCase、Visual Source Safe和CVS等。Rational ClearCase是IBM用來管理和控制軟件開發(fā)資源的系列軟件之一,它集成了設計、開發(fā)、構建、測試和部署工具,為支持在軟件全生命周期中對資源進行訪問提供了較為完整的解決方案。但Rational ClearCase的安裝、維護復雜,成為合格的Rational ClearCase的系統(tǒng)管理員需要接受專門的培訓;并且Rational ClearCase不提供變更管理的功能,用戶除需購買license外,還需要支付技術服務的費用。Visual Source Safe(VSS)是微軟公司的Visual Studio軟件工具包中的配置管理工具,沒有對license進行收費(費用較低),但VSS不提供對流程的管理功能,也無法支持異地團隊的開發(fā),且VSS只能在Windows平臺上運行。Concurrent Version System(CVS)除具備VSS的功能外,其C/S存取方法使得開發(fā)者可以從互聯(lián)網(wǎng)的任何接入點檢出新的代碼;其無限制版本管理的檢出模式避免了排它檢出模式引起的人工沖突;其客戶端工具可以在絕大多數(shù)平臺上使用,可運行于Windows、UNIX和Mac平臺之上,并能在3種平臺之間有效交互,是國際上最流行最成熟的配置管理軟件。例如,世界上最大的Open source社區(qū)Sourceforge.net就是用它來管理9萬多個Open source項目的,并且Windows操作系統(tǒng)下使用的WinCVS是sourceforge.net上的開源軟件,可免費下載使用。
綜上比較,在OPNET模型開發(fā)的過程中采用CVS是比較明智和理想的選擇。
3 基于CVS的OPNET模型開發(fā)管理
3.1 配置管理工作流程
基于CVS進行軟件開發(fā)配置管理的主要工作流程如圖1所示。
具體過程為: (1)在本地硬盤上,創(chuàng)建CVS的倉庫目錄;(2)把本地需要CVS進行管理的原始目錄導入到CVS服務器上去,使之成為CVS服務器上倉庫的“模塊”;(3)在本地硬盤上創(chuàng)建工作目錄;(4)協(xié)同工作的開發(fā)人員可以從CVS服務器的倉庫導出“模塊”到本地硬盤的工作目錄; (5)從CVS服務器同步開發(fā)對象的所有修改到本地工作目錄,在工作目錄上進行工作,在此過程中可將文件的中間版本提交給CVS服務器。
3.2 配置管理要點
基于CVS進行OPNET模型開發(fā)配置管理的流程與圖1完全相同,但由于OPNET模型文件的特殊性,所以在基于CVS進行配置管理時需要對其模型文件做如下特殊處理:
(1)OPNET模型具有圖2所示的層次結構,因此要有效地存儲OPNET模型文件,必須合理組織倉庫中的目錄結構,以在工作副本中繼續(xù)保存這種模型層次結構。
(2)在多數(shù)應用軟件開發(fā)過程中,源代碼都是以文本文件形式存儲,而OPNET模型源代碼必須存儲為二進制文件,但OPNET模型文件卻不僅只包含二進制文件,所以需要針對OPNET模型中不同的文件類型,進行區(qū)別處理:
①將表1中的各種模型文件在倉庫中保存為二進制文件,標識為-kb。
②將表2中的派生文件添加到“cvsignore”文件類型,使得這些文件不會被提交到CVS服務器的倉庫中。因為隨著模型的調試,派生文件或中間文件越來越多,將會占用大量不必要的存儲空間。
(3)雖然CVS可基于“復制—調整—合并”的方式進行開發(fā),但由于CVS不具備自動合并二進制文件的能力,所以需要手動合并OPNET模型文件,或將需要合并的二進制模型文件導出成文本文件(如EMA文件、XML文件等形式),以充分利用CVS的合并功能。
3.3 配置管理實例與經(jīng)驗
在開發(fā)OPNET模型過程中,利用WinCVS配置管理OPNET模型的實例如圖3所示。同時在實踐過程中總結了如下幾點經(jīng)驗:
(1)開始基于CVS進行OPNET模型文件配置管理時,可能難以準確標注所有的二進制文件,所以需要在模型提交給CVS服務器之后,進行多次檢出和運行仿真來確保模型的完整性和存儲的正確性。
(2)由于很多OPNET模型文件較大,倉庫很容易被填滿,所以僅需要存儲模型源文件和必要的文檔文件,并使導入服務器的場景數(shù)量最小化。另外,目錄結構要清晰合理,以便有利于組織不同類型的文件,提高用戶自定義模型的可重用性,減少倉庫中需要復制的模型數(shù)量。
(3)可采用XML方式自動合并模型文件。OPNET Modeler提供了*.pr.m、*.nd.m文件的XML表現(xiàn)形式。由于XML是純文本格式的,可充分利用CVS的合并功能。
(4)在合作開發(fā)過程中,即使使用了CVS,也要有稱職的管理人員,并且需要創(chuàng)建良好的配置管理使用流程,在開發(fā)人員之間經(jīng)常溝通并達成一致。
本文將軟件開發(fā)中的配置管理引入OPNET仿真模型開發(fā)領域,分析了合適的OPNET模型開發(fā)配置管理工具,探索了配置管理流程和要點。通過合理的設置,可以成功使用CVS作為OPNET模型開發(fā)強有力的輔助工具,提高OPNET模型開發(fā)工作效率。
參考文獻
[1] OPNET Technologies, Inc. OPNET modeler 10.0A online documents[Z]. 2003.
[2] 張筱,林孝康.一種基于OPNET的網(wǎng)絡半實物仿真模型[J].微計算機信息,2007,1(1): 257-259.
[3] OPNET Technology Inc. Integration of OPNET with other tools[C]. OPNETWORK’04,2004.