CN101572724A - 一种软件版本管理系统 - Google Patents
一种软件版本管理系统 Download PDFInfo
- Publication number
- CN101572724A CN101572724A CNA2009100256801A CN200910025680A CN101572724A CN 101572724 A CN101572724 A CN 101572724A CN A2009100256801 A CNA2009100256801 A CN A2009100256801A CN 200910025680 A CN200910025680 A CN 200910025680A CN 101572724 A CN101572724 A CN 101572724A
- Authority
- CN
- China
- Prior art keywords
- version
- server
- software
- service
- version management
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Hardware Redundancy (AREA)
Abstract
本发明公开了一种软件版本管理系统,包括两台版本库服务器,所述版本库服务器安装有通用版本管理软件,其特征在于:在两台版本库服务器间通过可互相发送本服务器的状态信息的心跳线连接,在所述版本库服务器内还安装设置有服务检测模块、心跳检测模块和数据同步模块;两台版本库服务器设置一个可在两台版本库服务器间浮动的虚拟服务地址;每台版本服务器配置有数据同步地址,用于与对端版本服务器间进行数据发送与接收;每台服务器均包含一个用于记录以上各信息配置文件。本发明可以支持多种版本管理软件,既保留了集中式版本管理系统的优点,又避免了已有版本管理系统对故障处理的不足,可实现软件版本管理系统的高可用性。
Description
技术领域
本发明涉及一种用于文件版本管理、工程配置管理、软件自动更新的软件版本管理系统,属于计算机技术领域。
背景技术
随着各领域自动化水平的提高,版本管理系统(Version ManagementSystem)从最初主要应用于软件开发领域,到目前已经被自动化系统的各个领域所广泛使用,如工程配置管理(Configuration Management)、软件自动更新、协同设计、文档管理等。可以说在任何一个大中型的工程中,都有版本管理系统应用的位置。根据设计理念的不同,版本管理系统可以分为集中式与分布式两种,其中集中式版本管理系统具有概念简单,易于维护,使用方便等优点,得到了充分发展,目前比较成熟的这类版本管理系统主要有:Visual SourceSafe、CVS、Subversion、ClearCase等。
目前许多的集中式的版本管理系统无法提供高可用性支持,一旦版本管理服务器出现故障,必将导致依赖于其的许多工作出现停顿,如软件开发、软件自动升级等。
发明内容
本发明所要解决的技术问题是提供一种许多中低端版本管理软件不能提供的高可用性集群的软件版本管理系统。
为解决上述技术问题,本发明提供一种通用的构建高可用性的软件版本管理系统,包括两台版本库服务器,所述版本库服务器安装有通用版本管理软件,其特征在于:在两台版本库服务器间通过可互相发送本服务器的状态信息的心跳线连接,在所述版本库服务器内还安装设置有以下模块:
服务检测模块,用于检测本机版本库服务是否可用;
心跳检测模块,用于通过心跳线发送本机状态信息、接收对端服务器状态信息、判断虚拟服务地址位置、根据需要配置或去除本机上的虚拟服务地址;
数据同步模块,用于监视本机版本库中发生的修改,并将修改的数据发送到对端服务器,由对端服务器将修改的数据写进对端服务器的版本库中;
两台版本库服务器设置一个可在两台版本库服务器间浮动的虚拟服务地址;
每台版本服务器配置有数据同步地址,用于与其它版本服务器间进行数据发送与接收,实现版本服务器间版本库数据的同步。
每台服务器均包含一个用于记录版本库服务器信息、心跳线信息、服务检测模块信息、心跳检测模块信息、数据同步模块信息、虚拟服务地址信息、数据同步地址信息的配置文件。
本发明所达到的有益效果:本发明的软件版本管理系统可以支持多种版本管理软件,既保留了集中式版本管理系统的优点,又避免了现有版本管理软件对故障处理的不足,可实现软件版本管理系统的高可用性。
附图说明
图1为本发明的软件版本管理系统的组成示意图;
图2为本发明的服务检测模块的工作流程图;
图3为本发明的心跳检测模块的工作流程图;
图4为本发明的数据同步模块的工作流程图。
具体实施方式
本发明无需对版本管理软件的服务端或客户端部分做任何修改,因此具有比较好的兼容性。本发明中,分别在每台版本库服务器上安装相同的版本管理软件,并且建立相同的版本仓库。采用的版本管理软件可以为CVS或Subversion等,并且在提供服务前具有相同的初始状态。
本发明中,两台服务器间采用心跳线连接。心跳线主要用于在两台服务器间相互发送本服务器的状态信息,由于信息数据量很小,通常在100字节以内,因此可以采用可靠性高、支持双向数据发送的数据通讯方式,如串口、网络等。
当使用串口连接作为心跳线时,需要用Null-modem线缆(Null Modem Cable)连接两台服务器的RS232接口。当使用网络连接作为心跳线时,为了提高系统的可靠性,需要使用服务器上一个单独的网络接口,并确保两台服务器可以使用心跳地址互相传送数据。也可同时使用串口连接和网络连接的组合连接作为心跳线,此时需要两种连接方式都正确连接。
本发明中,两台服务器上分别运行各自的服务检测模块,用于检测本机上版本库服务是否可用。出于兼容性考虑,服务检测模块采用两种检测方法:对于开放开发接口的版本管理软件,通过模拟客户端向版本管理服务发送状态查询命令,根据是否得到返回决定版本服务状态;对于未开放开发接口的版本管理软件,通过判断该软件的进程是否存在决定版本服务状态。服务检测模块按配置周期运行,并将判断结果发送给心跳检测模块。
本发明中,心跳检测模块主要作用为:
(1)通过心跳线发送本机状态信息;
(2)接收对端服务器状态信息;
(3)判断虚拟服务地址位置;
(4)根据需要配置或去除本机上的虚拟服务地址。
本机状态信息包括:本服务器上版本库服务是否正常、本服务器同步地址、本服务器是否配置虚拟服务地址。心跳检测模块根据对端服务器及本服务器状态信息,通过预定算法决定将虚拟服务地址配置在哪台服务器上。所使用的算法可以是:优先级抢占、优先级非抢占、随机决定,算法的目标是保证虚拟服务地址必须且仅能配置在一台服务器上。
本发明中,数据同步模块负责监视本机版本库中发生的修改,并将修改的数据发送到对端服务器,由对端服务器将修改的数据写进对端服务器的版本库中。数据同步模块的根据所使用的版本管理软件采用不同的实现方式,但完成的功能相同。
本发明中,两台版本库服务器采用一个虚拟服务地址对外提供版本管理服务。虚拟服务地址可以在两台服务器间浮动,虚拟服务地址的浮动由心跳检测模块完成,但同一时刻只有一台服务器会配置虚拟服务地址。本发明中所有客户端均使用虚拟服务地址访问版本库,因此同一时刻只会对一台服务器上的版本库进行访问,保证了任一时刻只进行单向数据同步,避免了双向同步可能带来的数据不一致性。
本发明中,两台服务器均各自配置数据同步地址,并保证可以通过数据同步地址进行数据发送与接收。
本发明中,两台服务器均包含一个配置文件,用于记录提供高可用性服务所需的信息。配置文件格式如下:
[LOCAL]
HOST=本服务器名
SYNC_IP=本服务器数据同步地址
[REMOTE]
HOST=对端服务器名
SYNC_IP=对端服务器数据同步地址
[COM_HB]
HB_PORT=串口心跳线使用的端口
[NET_HB]
HB_LOCAL=本服务器用于心跳的IP地址
HB_REMOTE=对端服务器用于心跳的IP地址
[COMMON]
SRV_IP=虚拟服务地址
VMS=所使用的版本管理软件
HB_INTVERAL=心跳检测周期
HB_TYPE=使用的心跳检测方式
当客户端对版本库内容进行修改操作后,数据同步模块通过同步地址自动将版本库的修改向对端服务器进行同步。
在本发明中,客户端直接与虚拟服务地址相连通,客户端仅通过虚拟服务地址访问版本管理服务,此时配置有虚拟服务地址的服务器提供实际服务。
本发明,通过虚拟服务地址提供版本管理服务,并通过两台服务器实现故障屏蔽,客户端无需处理两台服务器实际工作状态,在提高可用性的同时,没有增加客户端的复杂性。
下面结合附图详细介绍本发明的一种实施例,此方案选用Subversion软件作为版本管理软件,采用串口连接作为心跳线。
1、软、硬件准备
准备两台计算机S1与S2,分别安装Linux操作系统与Subversion软件。S1与S2间通过Null-modem线缆连接。S1与S2网卡上分别配置数据同步地址192.168.1.101与192.168.1.102。
2、初始化版本库
在S1与S2上通过命令分别建立版本库:svnadmin create/sv_root/repos/test
3、编写配置文件
S1的配置文件内容为:
[LOCAL]
HOST=S1
SYNC_IP=192.168.1.101
[REMOTE]
HOST=S2
SYNC_IP=192.168.1.102
[COM_HB]
HB_PORT=/dev/ttyS0
[COMMON]
SRV_IP=192.168.2.10
VMS=Subversion
HB_INTVERAL=2
HB_TYPE=COM
S2的配置文件内容为:
[LOCAL]
HOST=S2
SYNC_IP=192.168.1.102
[REMOTE]
HOST=S1
SYNC_IP=192.168.1.101
[COM_HB]
HB_PORT=/dev/ttyS0
[COMMON]
SRV_IP=192.168.2.10
VMS=Subversion
HB_INTVERAL=2
HB_TYPE=COM
4、启动软件模块
在S1、S2上分别启动服务检测模块srv_test,心跳检测模块hb_test,数据同步模块data_sync。
5、客户端使用
在客户端上通过地址:svn://192.168.2.10/repos/test访问版本库。假设当192.168.2.10配置在S1上时,客户端实际访问的是S1上的版本库,并且所有修改操作都通过S1上的数据同步模块同步到S2的版本库中。
6、故障处理
假设当192.168.2.10虚拟服务地址配置在S1上时,S1发生故障,如果S1上运行的Subversion出现故障,则由S1上srv_test将故障信息通知S1上hb_test,S1上hb_test将192.168.2.10虚拟服务地址去除,并将故障信息发送至S2。S2收到S1的故障信息后,将192.168.2.10虚拟服务地址配置到S2上,S2的Subversion此时开始对外提供服务,客户端实际访问的是S2上的版本库,并且所有修改操作都通过S2上的数据同步模块同步到S1的版本库中。
上述实施例不以任何形式限制本发明,凡采用等同替换或等效变换的方式所获得的技术方案,均落在本发明的保护范围内。
Claims (7)
1.一种软件版本管理系统,包括两台版本库服务器,所述版本库服务器安装有通用版本管理软件,其特征在于:在两台版本库服务器间通过可互相发送本服务器的状态信息的心跳线连接,在所述版本库服务器内还安装设置有以下模块:
服务检测模块,用于检测本机上版本库服务是否可用;
心跳检测模块,用于通过心跳线发送本机状态信息、接收对端服务器状态信息、判断虚拟服务地址位置、根据需要配置或去除本机上的虚拟服务地址;
数据同步模块,用于监视本机版本库中发生的修改,并将修改的数据发送到对端服务器,由对端服务器将修改的数据写进对端服务器的版本库中。
两台版本库服务器设置一个可在两台版本库服务器间浮动的虚拟服务地址。
每台版本服务器配置有数据同步地址,用于与其它版本服务器间进行数据发送与接收,实现版本服务器间版本库数据的同步。
每台服务器均包含一个用于记录版本库服务器信息、心跳线信息、服务检测模块信息、心跳检测模块信息、数据同步模块信息、虚拟服务地址信息、数据同步地址信息的配置文件。
2.根据权利要求1所述的软件版本管理系统,其特征在于:所述心跳线为串口连接、单独网络连接、或串口连接与单独网络连接的组合连接。
3.根据权利要求1所述的软件版本管理系统,其特征在于:所述版本管理软件为CVS、Subversion等多种具有增量备份及导入功能的版本管理软件,并且在提供服务前具有相同的初始状态。
4.根据权利要求1所述的软件版本管理系统,其特征在于:所述服务检测模块的检测方法包括两种:对于开放开发接口的版本管理软件,通过模拟客户端向版本管理服务发送状态查询命令,根据是否得到正确返回决定版本服务状态;对于未开放开发接口的版本管理软件,通过判断该软件的进程是否存在决定版本服务状态,服务检测模块按配置周期运行,并将判断结果发送给心跳检测模块。
5、根据权利要求1所述的软件版本管理系统,其特征在于:所述心跳检测模块发送的本机状态信息包括:本服务器上版本库服务是否正常、本服务器同步地址、本服务器是否配置虚拟服务地址。
6、根据权利要求1所述的软件版本管理系统,其特征在于:所述心跳检测模块根据对端服务器及本服务器状态信息,决定将虚拟服务地址配置在哪台服务器上,且保证虚拟服务地址必须且仅能配置在一台服务器上。
7、根据权利要求1所述的软件版本管理系统,其特征在于:客户端通过虚拟服务地址访问版本库。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2009100256801A CN101572724A (zh) | 2009-03-05 | 2009-03-05 | 一种软件版本管理系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNA2009100256801A CN101572724A (zh) | 2009-03-05 | 2009-03-05 | 一种软件版本管理系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN101572724A true CN101572724A (zh) | 2009-11-04 |
Family
ID=41231961
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNA2009100256801A Pending CN101572724A (zh) | 2009-03-05 | 2009-03-05 | 一种软件版本管理系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN101572724A (zh) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102185381A (zh) * | 2011-05-11 | 2011-09-14 | 河海大学 | 变电站scd模型自动转换时的scd迭代处理方法 |
CN102421032A (zh) * | 2011-11-25 | 2012-04-18 | 中山大学 | 一种用于机顶盒广告机的服务器切换方法 |
CN102546233A (zh) * | 2011-11-28 | 2012-07-04 | 中标软件有限公司 | 一种高可用集群中串口心跳的实现方法 |
CN103019718A (zh) * | 2011-12-16 | 2013-04-03 | 微软公司 | 在集中式源控制环境中使用分布式源控制 |
CN103199972A (zh) * | 2013-03-25 | 2013-07-10 | 成都瑞科电气有限公司 | 基于soa、rs485总线实现的双机热备份切换方法及热备份系统 |
CN103595707A (zh) * | 2013-10-17 | 2014-02-19 | 广东电网公司茂名供电局 | 一种基于svn的文件自动网络同步方法 |
CN104320469A (zh) * | 2014-10-29 | 2015-01-28 | 北京思特奇信息技术股份有限公司 | 一种基于svn的增量变化数据分析下载方法及系统 |
CN105739960A (zh) * | 2014-12-11 | 2016-07-06 | 上海尚景信息技术有限公司 | 可持续集成的软件研发环境架构 |
CN105893026A (zh) * | 2016-03-28 | 2016-08-24 | 乐视控股(北京)有限公司 | 软件版本管理系统及方法 |
CN108092753A (zh) * | 2017-12-15 | 2018-05-29 | 北京航天测控技术有限公司 | 一种采用硬件内存搬移同步的热备冗余系统 |
CN111988155A (zh) * | 2019-05-22 | 2020-11-24 | 烽火通信科技股份有限公司 | 一种集群设备的主备框间配置同步方法及系统 |
-
2009
- 2009-03-05 CN CNA2009100256801A patent/CN101572724A/zh active Pending
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102185381B (zh) * | 2011-05-11 | 2013-06-05 | 河海大学 | 变电站scd模型自动转换时的scd迭代处理方法 |
CN102185381A (zh) * | 2011-05-11 | 2011-09-14 | 河海大学 | 变电站scd模型自动转换时的scd迭代处理方法 |
CN102421032A (zh) * | 2011-11-25 | 2012-04-18 | 中山大学 | 一种用于机顶盒广告机的服务器切换方法 |
CN102421032B (zh) * | 2011-11-25 | 2013-07-24 | 中山大学 | 一种用于机顶盒广告机的服务器切换方法 |
CN102546233A (zh) * | 2011-11-28 | 2012-07-04 | 中标软件有限公司 | 一种高可用集群中串口心跳的实现方法 |
US10025793B2 (en) | 2011-12-16 | 2018-07-17 | Microsoft Technology Licensing, Llc | Using distributed source control in a centralized source control environment |
CN103019718A (zh) * | 2011-12-16 | 2013-04-03 | 微软公司 | 在集中式源控制环境中使用分布式源控制 |
CN103019718B (zh) * | 2011-12-16 | 2016-07-06 | 微软技术许可有限责任公司 | 在集中式源控制环境中使用分布式源控制 |
CN103199972A (zh) * | 2013-03-25 | 2013-07-10 | 成都瑞科电气有限公司 | 基于soa、rs485总线实现的双机热备份切换方法及热备份系统 |
CN103199972B (zh) * | 2013-03-25 | 2016-04-20 | 成都瑞科电气有限公司 | 基于soa、rs485总线实现的双机热备份切换方法及热备份系统 |
CN103595707A (zh) * | 2013-10-17 | 2014-02-19 | 广东电网公司茂名供电局 | 一种基于svn的文件自动网络同步方法 |
CN104320469A (zh) * | 2014-10-29 | 2015-01-28 | 北京思特奇信息技术股份有限公司 | 一种基于svn的增量变化数据分析下载方法及系统 |
CN104320469B (zh) * | 2014-10-29 | 2018-04-17 | 北京思特奇信息技术股份有限公司 | 一种基于svn的增量变化数据分析下载方法及系统 |
CN105739960A (zh) * | 2014-12-11 | 2016-07-06 | 上海尚景信息技术有限公司 | 可持续集成的软件研发环境架构 |
CN105893026A (zh) * | 2016-03-28 | 2016-08-24 | 乐视控股(北京)有限公司 | 软件版本管理系统及方法 |
CN108092753A (zh) * | 2017-12-15 | 2018-05-29 | 北京航天测控技术有限公司 | 一种采用硬件内存搬移同步的热备冗余系统 |
CN111988155A (zh) * | 2019-05-22 | 2020-11-24 | 烽火通信科技股份有限公司 | 一种集群设备的主备框间配置同步方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN101572724A (zh) | 一种软件版本管理系统 | |
US8046627B2 (en) | Server failover control method and apparatus and computer system group | |
CN102238093B (zh) | 防止业务中断的方法和装置 | |
CN111162941B (zh) | 一种Kubernetes环境自动化管理虚拟IP的方法 | |
CN103346903A (zh) | 一种双机备份的方法和装置 | |
CN101483540A (zh) | 一种高端数据通信设备中的主备倒换方法 | |
CN102355369A (zh) | 虚拟化集群系统及其处理方法和设备 | |
CN102932444A (zh) | 金融实时交易系统中的负载均衡模块 | |
CN105681077A (zh) | 故障处理方法、装置及系统 | |
CN103516802A (zh) | 一种实现跨异构虚拟交换机无缝迁移的方法和装置 | |
CN103425645A (zh) | 数据库集群单点故障的监控系统及方法 | |
CN104503907A (zh) | 一种基于linux系统的应用程序远程调试方法及系统 | |
CN107688512A (zh) | 一种优化虚拟机数据备份方法和系统 | |
CN105635311A (zh) | 一种云管理平台中资源池信息同步的方法 | |
CN105045533A (zh) | 适用于双控高可用存储系统的磁盘心跳收发方法 | |
CN105468429A (zh) | 一种高效虚拟化集群管理方法和集群节点 | |
CN112328371A (zh) | 基于k3s平台的边云交互管理边缘业务的方法 | |
CN107357800A (zh) | 一种数据库高可用零丢失解决方法 | |
CN108123826B (zh) | 一种跨区数据的交互系统及方法 | |
CN105591801B (zh) | 一种虚拟网络功能vnf故障处理方法及vnf管理设备 | |
CN104753707A (zh) | 一种系统维护方法及网络交换设备 | |
CN115348126A (zh) | 一种网络靶场实体设备接入方法、装置及实现系统 | |
CN103618634A (zh) | 集群中自动发现节点的方法 | |
CN106294031B (zh) | 一种业务管理方法和存储控制器 | |
CN103049348B (zh) | 多服务器化环境下数据容错存储的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C12 | Rejection of a patent application after its publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20091104 |