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