文献标识码:A
文章编号: 0258-7998(2010)07-0144-03
随着软件开发项目规模的逐渐增大,多人协同开发同一项目已成为普遍现实。在多人协同工作环境下,如果没有很好的版本控制和配置管理,项目开发无法顺利实施。同样,对于网络仿真领域中基于OPNET[1-2]开发的仿真项目,由于现在网络规模越来越大,技术体制众多,对其进行仿真的内容复杂、工作量庞大,而这些往往是单个建模人员难以完成的工作。因此,在基于OPNET的网络仿真工程开发过程中,也需要对OPNET模型开发进行配置管理[3],以提高工作效率。
1 OPNET模型开发配置管理需求分析
1.1 OPNET模型开发配置管理与软件开发配置管理的相似之处
在软件开发领域对配置管理有严格的要求,与其相类似,在基于OPNET开发网络仿真模型时,对模型开发也有一定要求,主要表现为:(1)软件开发配置管理和OPNET模型开发,同样需要保存模型源文件的记录;(2)在软件开发过程中,需要协同开发源代码,而对于OPNET模型开发,则需要在不同的Modeler之间协同开发OPNET仿真模型; (3)在软件开发过程中,需要重用源代码,而OPNET模型开发,在新的工程中也需要重用以前开发的OPNET模型源代码。
1.2 缺少配置管理的OPNET模型开发存在的风险
在开发大型网络仿真模型的过程中,如果不采用有效的配置管理方法,可能会造成难以预计的损失。例如:(1)开发的模型文件丢失;(2)运行仿真对所开发的模型进行验证时,无法得到预期的仿真结果;(3)不同的模型开发人员所工作的模型文件版本不同,给模型集成带来困难。以上问题对于协同开发OPNET仿真项目,特别是开发大型网络仿真模型而言,均为不利因素,甚至可能产生灾难性的后果。
1.3 OPNET模型开发配置管理的目的
基于以上原因,在OPNET模型开发过程中,需实施有效的配置管理,这样可以达到以下目的:(1)保存良好的版本记录。开发人员可以保存源代码的主要版本,在此基础上,配置管理保留了该版本的全部修改记录,这样可以使开发人员在任何时候都能获取到所需文件的所有版本。因此,不论对于团队,还是个人开发OPNET仿真模型,都能做到条理清晰,避免重复工作;(2)利于开发团队的合作。可以约定开发人员获取、更新源代码主要版本的途径,使得在并行开发模型的过程中,开发人员能有效地同步工作,从而提高模型的开发效率。
2 配置管理工具分析
目前流行的配置管理工具包括Rational ClearCase、Visual Source Safe和CVS等。Rational ClearCase是IBM用来管理和控制软件开发资源的系列软件之一,它集成了设计、开发、构建、测试和部署工具,为支持在软件全生命周期中对资源进行访问提供了较为完整的解决方案。但Rational ClearCase的安装、维护复杂,成为合格的Rational ClearCase的系统管理员需要接受专门的培训;并且Rational ClearCase不提供变更管理的功能,用户除需购买license外,还需要支付技术服务的费用。Visual Source Safe(VSS)是微软公司的Visual Studio软件工具包中的配置管理工具,没有对license进行收费(费用较低),但VSS不提供对流程的管理功能,也无法支持异地团队的开发,且VSS只能在Windows平台上运行。Concurrent Version System(CVS)除具备VSS的功能外,其C/S存取方法使得开发者可以从互联网的任何接入点检出新的代码;其无限制版本管理的检出模式避免了排它检出模式引起的人工冲突;其客户端工具可以在绝大多数平台上使用,可运行于Windows、UNIX和Mac平台之上,并能在3种平台之间有效交互,是国际上最流行最成熟的配置管理软件。例如,世界上最大的Open source社区Sourceforge.net就是用它来管理9万多个Open source项目的,并且Windows操作系统下使用的WinCVS是sourceforge.net上的开源软件,可免费下载使用。
综上比较,在OPNET模型开发的过程中采用CVS是比较明智和理想的选择。
3 基于CVS的OPNET模型开发管理
3.1 配置管理工作流程
基于CVS进行软件开发配置管理的主要工作流程如图1所示。
具体过程为: (1)在本地硬盘上,创建CVS的仓库目录;(2)把本地需要CVS进行管理的原始目录导入到CVS服务器上去,使之成为CVS服务器上仓库的“模块”;(3)在本地硬盘上创建工作目录;(4)协同工作的开发人员可以从CVS服务器的仓库导出“模块”到本地硬盘的工作目录; (5)从CVS服务器同步开发对象的所有修改到本地工作目录,在工作目录上进行工作,在此过程中可将文件的中间版本提交给CVS服务器。
3.2 配置管理要点
基于CVS进行OPNET模型开发配置管理的流程与图1完全相同,但由于OPNET模型文件的特殊性,所以在基于CVS进行配置管理时需要对其模型文件做如下特殊处理:
(1)OPNET模型具有图2所示的层次结构,因此要有效地存储OPNET模型文件,必须合理组织仓库中的目录结构,以在工作副本中继续保存这种模型层次结构。
(2)在多数应用软件开发过程中,源代码都是以文本文件形式存储,而OPNET模型源代码必须存储为二进制文件,但OPNET模型文件却不仅只包含二进制文件,所以需要针对OPNET模型中不同的文件类型,进行区别处理:
①将表1中的各种模型文件在仓库中保存为二进制文件,标识为-kb。
②将表2中的派生文件添加到“cvsignore”文件类型,使得这些文件不会被提交到CVS服务器的仓库中。因为随着模型的调试,派生文件或中间文件越来越多,将会占用大量不必要的存储空间。
(3)虽然CVS可基于“复制—调整—合并”的方式进行开发,但由于CVS不具备自动合并二进制文件的能力,所以需要手动合并OPNET模型文件,或将需要合并的二进制模型文件导出成文本文件(如EMA文件、XML文件等形式),以充分利用CVS的合并功能。
3.3 配置管理实例与经验
在开发OPNET模型过程中,利用WinCVS配置管理OPNET模型的实例如图3所示。同时在实践过程中总结了如下几点经验:
(1)开始基于CVS进行OPNET模型文件配置管理时,可能难以准确标注所有的二进制文件,所以需要在模型提交给CVS服务器之后,进行多次检出和运行仿真来确保模型的完整性和存储的正确性。
(2)由于很多OPNET模型文件较大,仓库很容易被填满,所以仅需要存储模型源文件和必要的文档文件,并使导入服务器的场景数量最小化。另外,目录结构要清晰合理,以便有利于组织不同类型的文件,提高用户自定义模型的可重用性,减少仓库中需要复制的模型数量。
(3)可采用XML方式自动合并模型文件。OPNET Modeler提供了*.pr.m、*.nd.m文件的XML表现形式。由于XML是纯文本格式的,可充分利用CVS的合并功能。
(4)在合作开发过程中,即使使用了CVS,也要有称职的管理人员,并且需要创建良好的配置管理使用流程,在开发人员之间经常沟通并达成一致。
本文将软件开发中的配置管理引入OPNET仿真模型开发领域,分析了合适的OPNET模型开发配置管理工具,探索了配置管理流程和要点。通过合理的设置,可以成功使用CVS作为OPNET模型开发强有力的辅助工具,提高OPNET模型开发工作效率。
参考文献
[1] OPNET Technologies, Inc. OPNET modeler 10.0A online documents[Z]. 2003.
[2] 张筱,林孝康.一种基于OPNET的网络半实物仿真模型[J].微计算机信息,2007,1(1): 257-259.
[3] OPNET Technology Inc. Integration of OPNET with other tools[C]. OPNETWORK’04,2004.