1. 引言
配置管理系统是核电培训用模拟机的重要组成部分,在《核电厂操纵人员培训及考试用模拟机》标准的第6章节中对模拟机的配置管理有明确的要求。随着核电技术的不断发展,各种核电仿真技术和系统在核电站的应用广泛且深入 [1] [2] [3],除此之外,各种针对核电仿真领域专门开发的仿真系统和平台也不断出现 [4] [5] [6],由于仿真系统处理的项目数据规模越来越大,工具种类越来越多,如何对大量的核电仿真项目数据以及仿真制作工艺流程进行统一管理成为了一个亟待解决的问题。在此之前,国内还没有类似的解决这一问题的项目集成开发运行平台。核电仿真产品以全范围模拟机最具代表性,兼具了数据量大、工艺流程复杂等特点,属于系统工程。本文描述了基于核动力仿真平台的配置管理系统如何在全范围模拟机开发过程中所起到的关键作用。
配置管理系统是应用于核电仿真领域的运行数据开发和管理系统,为模拟机项目管理和参与人员提供了友好的图形化界面来更好地对项目进行开发过程控制、数据版本控制、统一工作入口、统一的机器环境配置以及日常管理和维护。系统采用C/S模式进行开发,分为服务器端软件和客户端软件,支持Windows和Linux操作系统。在配置管理系统中,服务器端的作用主要是管理文件仓库和配置库文件,允许用户创建、维护多个文件仓库和配置库。客户端软件的作用主要用户是模型开发工程师,他们从服务器端下载配置库和数据库至本地,对本地机器进行相应项目环境的配置,然后就可以在客户端中使用相关工具进行模拟机项目的开发和调试等工作,开发和调试完成后,可以将模型文件上传至服务器。
本文主要对配置管理系统的原理、运行流程、文件系统以及数据库设计等进行了介绍,此外,还对配置管理系统的配置库管理、数据库管理以及集成开发运行环境进行了说明。
2. 原理设计和功能实现
本节主要介绍配置管理系统的软件原理,此外,描述了配置管理系统的运行流程设计、文件系统设计、数据库设计和CONF间切换等关键技术。
2.1. 配置管理系统相关术语
配置项:配置管理系统管理的元数据,一般指的是一个文件。
非配置项:配置项的一种补充形式,一般只包括IC文件。
CONF:配置库,包含多个配置项和非配置项。
文件仓库:配置管理系统的底层文件存储系统。
写下载:用于修改配置项前的锁定下载,同一时刻,只允许一个用户下载某个配置项,以此避免修改冲突。
暂存区:用来临时存储上传到服务器的配置项的一个区域。
2.2. 系统原理
如图1所示,配置管理系统从软件原理上分为三层,其中第一层为用户层,分为用户登录、配置库执行、集成工具显示以及模拟机开发四个部分;
第二层为软件的功能层,主要是为系统的使用提供相应的功能支持,主要有:文件仓库管理模块、配置库管理模块、配置项管理模块、非配置项管理模块、用户登录管理模块等12个功能模块;
第三层为支撑层,主要是软件底层依赖的操作系统以及数据库。
2.3. 运行流程设计
配置管理系统的核心功能是对配置项文件变更的管理。其典型的操作场景为:
1) 工程师使用客户端从服务器端写下载指定的源码文件或者其他配置文件,修改该文件;
2) 完成修改后,上传该文件至服务器的暂存区中;
3) 系统管理员会定期对服务器暂存区中的文件进行审核,如果通过审核,文件会从暂存区转移到文件仓库目录中的相应位置,并升级该配置项版本,如果不通过,会直接将其从暂存区删除,并通知相应的工程师。
典型操作运行流程如图2所示。

Figure 2. Typical operation running process of CMS
图2. 配置管理系统的典型操作运行流程
配置项文件在本地工作目录、服务器端的暂存区和文件仓库三个区域中流转。配置项有以下五种状态:
➢ 正常:该状态下配置项可以被客户端下载,客户端可以锁定配置项以上传更新文件。
➢ 锁定:配置项已被客户端或管理员锁定,仅允许锁定配置项的客户端上传更新后的配置项,锁定的配置项仍然可以被其他客户端读下载。
➢ 暂存:客户端要变更的文件已经被上传到服务器端的暂存区中,等待管理员审核。
➢ 拒绝:上传至暂存区的文件经过配置管理员审核后被拒绝提交至文件仓库。
➢ 完成:暂存区文件经过配置管理员审核后,提交到服务器端的文件仓库中,进入版本库,同时解除对该配置项文件的锁定并删除暂存区中的相应文件。
配置项文件的流转过程和状态变化如图3、图4所示:

Figure 3. Transfer process scheme of item file
图3. 配置项文件流转过程示意图

Figure 4. State transition scheme of item
图4. 配置项状态转换示意图
2.4. 文件系统设计
配置管理系统的文件系统指的是文件仓库、CONF、配置项和非配置项的集合。其中文件仓库中存储的是配置项的所有版本,每个文件版本称为该文件的一个快照。
文件系统中可存储多个文件仓库,一个文件仓库又可包含若干个CONF,每个CONF是若干配置项和非配置项的组合。每个配置项对应文件仓库中同名文件的某个快照,除了配置项之外,每个CONF中还会包含若干个非配置项,当客户端下载CONF时,它们会随着一起被下载。配置项、非配置项、CONF以及文件仓库组成了配置管理系统的文件系统内容。如图5所示。
2.5. 数据库设计和CONF间的切换
在模拟机开发中,要求可执行程序文件(工程师站、教练员站等)、建模文件(图形化、非图形化)、配置文件和数据库中数据版本匹配,才能正常运行。此外,由于项目需要,常常在服务器端创建多个CONF,在构建CONF的时候,需要在多个CONF之间进行切换。为了保证切换CONF后数据的正确性以及稳定性,系统采用了数据库冗余的设计。
如图6所示,在服务器端,simcms是系统中所有CONF的公共数据库,主要记录用户信息、文件仓库信息、操作日志信息以及系统参数信息等。每个CONF都有专属的数据库。除此之外,配置库中的配置项信息、基线信息、配置项类别信息以及版本信息等都保存在数据库中。在切换CONF时,系统首先会识别CONF编码,然后连接到该CONF对应的数据库。采用这种方案,不仅可以保证CONF切换之后数据的正确性,还可以确保每个CONF之间的数据保持独立性和完整性。
3. 软件设计和开发
3.1. 系统基本架构
配置管理系统采用了中心化的C/S架构。服务器管理所有用户信息以及项目开发数据并维护所有文件的版本信息。客户端以在线登陆和离线登陆两种方式进入系统。在线登陆模式下,首先需要与服务器通信进行身份验证,通过后才能进行配置项的下载和上传,服务器也可以向客户端推送消息,指导客户端用户进行下载更新以帮助工程师更好地进行项目的开发,如图7所示。在离线模式下,客户端也能使用集成开发运行环境管理功能在本地进行项目开发,为异地开发和办公提供了另一种良好的开发模式。配置管理系统主要由人机界面层、功能模块层以及工具集三大部分组成,服务器端和客户端框架如图8和图9所示:

Figure 8. Software architecture of server
图8. 服务器端软件架构

Figure 9. Software architecture of client
图9. 客户端软件架构
3.2. 模块设计和开发
配置管理系统包含多个功能模块。分别是:文件仓库管理模块、配置库管理模块、配置项管理模块、非配置项管理模块、暂存区管理模块、文件配置管理模块、用户信息管理模块、日志管理模块、数据库管理模块、网络通信模块、集成开发运行环境管理模块、集成工具管理模块以及消息管理模块等,目前系统已经实现了所有的功能模块。下面主要对三个常用模块:配置库管理模块、数据库管理模块以及集成开发运行环境管理模块进行介绍。
3.2.1. 配置库管理
配置库管理模块主要负责CONF的新建、删除、复制、切换、下载、查询以及版本管理。
1) 配置库的存储结构
存储结构是配置库在磁盘中保存各个配置项/非配置项的方式,表现为目录和文件之间的层次结构,存储结构用于指导配置项和非配置项文件的新增和更新。根据配置项的分类来建立CONF的存储目录结构。
目前配置项按照类别进行划分,如表1所示。

Table 1. Classification table of item
表1. 配置项分类表
2) 配置库的逻辑结构
逻辑结构描述了可编译的配置项和所属系统的逻辑关系,确定配置项的编译依赖关系和编译规则。配置项的逻辑结构信息存储在CONF对应的配置文件中,不同CONF的逻辑结构可能不同,因此每个CONF都有各自的逻辑结构配置文件。
3.2.2. 数据库管理
数据库管理模块主要负责数据表的下载和本地导入。对于这些数据库,在服务器端将它们的数据导出成一个dump文件,作为CONF的一个非配置项,客户端只需要下载它们并使用数据库管理工具在本地导入就可以使用它们。如图10所示。
3.2.3. 集成开发运行环境管理
集成开发运行环境管理模块负责对平台所有工具以及其运行环境进行统一管理。目前,配置管理系统已经集成了多种模拟机仿真相关工具。比如:模拟机、工程师站、教练员站等。除此之外,集成开发运行环境管理模块还可以根据需要调整每个工具的显示位置以及增减工具的显示数量。其主要功能包括:显示管理、环境变量管理以及启停管理,工具的启动过程如图11所示。当多个相关工具同时运行时,配置管理系统便构建了一套集成开发运行环境,可以支持开发者同时利用多个工具进行项目的开发,如图12所示。

Figure 12. Integrated development & running environment
图12. 集成开发运行环境
3.3. 系统主要指标参数
目前,配置管理系统的主要指标参数如下:
1) 并发访问:配置管理系统服务器最多可支持200个用户的并发访问;
2) 配置库备份恢复:对于配置库中所有配置项小于1000个,总存储空间小于1GB的情况,备份和恢复时间小于20分钟;
3) 配置项查询:单个配置项查询可在1秒内返回结果,复杂查询在10秒内返回结果;
4) 管理的配置库数量:至少支持管理100个配置库;
5) 管理的用户数:至少支持管理200个用户。
4. 结论
与其它核电仿真领域的类似系统相比,配置管理系统主要有以下优点:
1) 采用图形化界面进行项目管理,提高了软件的易用性;
2) 高度集成的模拟机软件开发调试环境;
3) 方便有效的配置项管理模式;
4) 可靠的配置项变更冲突解决方案;
5) 集成的可扩充编译模式,无需记忆各种软件命令;
6) 一键安装和配置部署,快速建立开发和运行环境;
7) 服务器和客户端特有的消息通知机制,指导快速更新;
8) 工作区的管理使单机多项目开发成为现实。
本文介绍的适用于核电模拟机项目整个开发、维护过程的配置管理系统,不仅可以集成多种核电仿真相关工具,而且可以对核电模拟机项目进行科学、高效的管理。随着基于核动力仿真平台研发项目的不断推进,配置管理系统已开发完成并应用,该系统也会随着核动力仿真平台应用过程中新功能的增加而进行持续的改进。目前本文介绍的配置管理系统已经应用于华龙一号全范围模拟机研制以及快堆工程验证平台研制等项目中,随着我国核电仿真技术的不断发展,该系统也会随着模拟机项目的开发而不断得到完善。