一种分布式环境下软件版本控制方法技术

技术编号:20074534 阅读:37 留言:0更新日期:2019-01-15 00:29
本发明专利技术公开了一种分布式环境下软件版本控制方法,该方法面向分布式环境提出分布式环境下软件状态采集记录的方法、提出分布式环境下软件版本快速扫描对比的方法、提出分布式环境下软件版本快速一致的方法。通过验证,本发明专利技术方法可以解决复杂分布式环境下各个节点软件版本状态监控、管理和快速统一,可指导云平台、集群系统等复杂分布式系统的运维、监控、部署、管理。

A Software Version Control Method in Distributed Environment

The invention discloses a software version control method in a distributed environment. The method proposes a method for collecting and recording software status in a distributed environment, a method for fast scanning and comparison of software versions in a distributed environment, and a method for fast consistency of software versions in a distributed environment. Through verification, the method of the invention can solve the problem of state monitoring, management and rapid unification of software versions of each node in complex distributed environment, and can guide the operation, maintenance, monitoring, deployment and management of complex distributed systems such as cloud platforms and cluster systems.

【技术实现步骤摘要】
一种分布式环境下软件版本控制方法
本专利技术涉及分布式系统领域,尤其涉及一种分布式环境下软件版本控制方法。
技术介绍
分布式系统是一种以网络为基础,由多个节点共同组成的复杂系统。在网络发达的今天,绝大多数的复杂系统都是基于分布式系统架构,典型的如集群系统、云平台等。由于分布式系统是由分布在不同节点的软件通过协同工作完成,单个节点状态的变更都会对整个系统的可靠性和稳定性产生影响。因此对分布式系统中各个节点的软件版本控制十分重要。传统的基于人工的软件版本检查、控制方式,不仅工作量庞大、效率低下,而且不能及时的发现版本的变更,容易造成不必要的损失。
技术实现思路
本专利技术主要解决的技术问题是提供一种分布式环境下软件版本控制方法,能够在分布式环境下自动构建软件版本库,快速实现软件版本的监控和统一。满足分布式环境下快速、高效、准确的软件版本管理要求,可指导云平台、集群系统等复杂分布式系统的运维、监控、管理等。为实现上述目的,本专利技术提供了一种分布式环境下软件版本控制方法,该方法包括以下步骤:1)在分布式环境下,由各个节点建立各自对应的本地版本库,由中心节点建立软件版本库;所述本地版本库存储各自指定目录下各个软件实体文件的状态信息,包括基本信息和软件指纹信息;所述软件版本库包括文件柜和数据库,所述文件柜存储的是各个节点的软件实体文件,所述数据库存储的是软件实体文件的状态信息;2)需要检查节点上软件版本状态时,中心节点向节点下达版本比对指令;节点比对指定目录下软件实体文件的状态信息与本地版本库中记录是否一致,若否,则节点将采集到的软件实体文件状态信息更新本地版本库,并上传到中心节点,由中心节点将接收的软件状态与软件版本库进行比对,完成后上报比对结果;3)当所述步骤2)中软件版本库与本地文件比对不一致时,则定义版本统一的标准;若以软件版本库为基准,则由中心节点向节点下达软件部署指令,并传输软件版本库中软件状态信息及实体文件;若以节点为基准,则由节点向中心节点更新软件实体文件与软件实体文件的状态信息的指令进一步地,所述步骤1)具体包括:1.1)在分布式环境下,各个节点根据中心节点下发的指令,采集各自指定目录下各个软件实体文件的状态信息,包括基本信息和软件指纹信息;1.2)在采集软件实体文件的状态信息后,将软件实体文件的状态信息记录到本地版本库。同步,在分布式环境下,将软件实体文件以及软件实体文件的状态信息通过网络上传到远程的中心节点;1.3)中心节点接收到各个节点上传的软件实体文件及软件实体文件的状态信息后,将软件实体文件记录到文件柜,将软件实体文件的状态信息记录到数据库,所述文件柜和数据库形成软件版本库。更进一步地,所述步骤1.1)具体包括:各节点对指定目录进行递归遍历,采集所有目录下实体文件的状态信息,包括基本信息与指纹信息,所述基本信息包括文件的文件名称、类型、位置、大小、占用空间、创建时间、修改时间、最后一次保存时间;软件指纹信息是通过MD5算法,将软件实体文件生成的字符串作为软件指纹信息。更进一步地,所述步骤1.2)具体包括:各个节点在本地创建一个二进制文件,用于作为本地版本库;在采集软件实体文件的状态信息后,将软件实体文件的状态信息通过序列化技术写入到节点对应的二进制文件;同时,节点将软件实体文件转换为二进制流与软件实体文件的状态信息一并通过TCP/IP协议上传到中心节点。更进一步地,所述步骤1.3)具体包括:中心节点在本地建立文件柜和数据库。当中心节点接收到节点上传的软件文件实体的二进制流后,转换为实体文件,存储到文件柜中;当中心节点接收到节点上传的软件实体文件状态信息后,记录到数据库中,文件柜和数据库共同构成了分布式环境下的软件版本库。进一步地,所述步骤2)中中心节点通过TCP/IP协议向节点下达版本比对指令。进一步地,所述步骤2)中节点比对指定目录下软件实体文件的状态信息与本地版本库中记录是否一致,若是,则直接上报比对结果,表示节点与软件版本库的版本一致;若否,则将最新的软件实体文件的状态信息更新到本地版本库,同时通过TCP/IP协议上传到中心节点,由中心节点对接收的软件状态与软件版本库进行比对,完成后上报比对结果。进一步地,所述步骤3)具体包括:若以版本库为基准,则由中心节点首先向节点发送部署指令,然后将文件柜中的文件转换为二进制流,并通过TCP/IP协议下发给节点,节点接收完成后,将二进制流转换为文件实体,覆盖本地的文件;同步地,中心节点通过TCP/IP协议向节点发送软件实体文件的状态信息,节点接收后记录到本地版本库中;若以节点为基准,则由节点向中心节点更新软件实体文件与软件实体文件的状态信息的指令,节点将软件的状态信息记录到本地版本库,同时将节点上的软件实体文件与软件实体文件的状态信息上传到软件版本库,中心节点更新软件版本库的内容。本专利技术提出分布式环境下软件状态采集记录的方法、提出分布式环境下软件版本快速扫描对比的方法、提出分布式环境下软件版本快速一致的方法。通过验证,本专利技术方法可以解决复杂分布式环境下各个节点软件版本状态监控、管理和快速统一,可指导云平台、集群系统等复杂分布式系统的运维、监控、部署、管理。附图说明图1是本专利技术在分布式环境下的部署图;图2是本专利技术提供的一种分布式环境下软件版本控制方法的算法流程图;图3为中心节点与节点之间的交互时序图。具体实施方式为了使本专利技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本专利技术进行进一步详细说明。需要说明的是,附图仅为示例性说明,并未按照严格比例绘制,而且其中可能有为描述便利而进行的局部放大、缩小,对于公知部分结构亦可能有一定缺省。图1是本专利技术在分布式环境下的部署图。本专利技术应用在分布式环境下,整个系统的部署方案如图1所示,中心节点:可以由分布式环境内的任意一台节点作为中心节点,也可以在环境中新增一个中心节点的设备。中心节点主要由硬件设备、操作系统、数据库、文件柜、软件版本库与版本控制模块组成。其中硬件设备要求具有CPU、内存、硬盘和网卡的计算机。操作系统要求提供网络访问和文件访问接口,可以采用windows、linux、vxworks、QNX、中标麒麟。数据库主要采用第三方数据库,可根据分布式环境的复杂性选择,可采用DB2、MySQL、Oracle。文件柜是由磁盘及管理模块组成。软件版本库建立在数据库和文件库的基础上,存在软件实体文件、软件状态的信息。版本控制模块负责与节点的数据通信、数据库和文件柜的访问和管理及版本控制的逻辑处理。节点:节点主要是分布式环境内的各个物理设备,硬件设备、操作系统与(被管理)应用软件是根据分布式环境的业务需要而定。其中本地版本库是由一个二进制文件组成,同时可具有加密控制,防止被篡改。代理软件主要负责与中心节点进行数据通信,接收中心节点版本控制模块的命令,完成本地目录遍历、软件基本信息采集、软件指纹信息生成、本地版本库管理及向中心节点上报状态等功能。图2是本专利技术提供的一种分布式环境下软件版本控制方法的算法流程图。如图2所示,本专利技术提供的一种分布式环境下软件版本控制方法主要包括如下步骤:1)在分布式环境下,由各个节点建立各自对应的本地版本库,由中心节点建立软件版本库。本地版本库存储各自指定目录下各个软件实体本文档来自技高网...

【技术保护点】
1.一种分布式环境下软件版本控制方法,其特征在于,包括以下步骤:1)在分布式环境下,由各个节点建立各自对应的本地版本库,由中心节点建立软件版本库;所述本地版本库存储各自指定目录下各个软件实体文件的状态信息,包括基本信息和软件指纹信息;所述软件版本库包括文件柜和数据库,所述文件柜存储的是各个节点的软件实体文件,所述数据库存储的是软件实体文件的状态信息;2)需要检查节点上软件版本状态时,中心节点向节点下达版本比对指令;节点比对指定目录下软件实体文件的状态信息与本地版本库中记录是否一致,若否,则节点将采集到的软件实体文件状态信息更新本地版本库,并上传到中心节点,由中心节点将接收的软件状态与软件版本库进行比对,完成后上报比对结果;3)当所述步骤2)中软件版本库与本地文件比对不一致时,则定义版本统一的标准;若以软件版本库为基准,则由中心节点向节点下达软件部署指令,并传输软件版本库中软件状态信息及实体文件;若以节点为基准,则由节点向中心节点更新软件实体文件与软件实体文件的状态信息的指令。

【技术特征摘要】
1.一种分布式环境下软件版本控制方法,其特征在于,包括以下步骤:1)在分布式环境下,由各个节点建立各自对应的本地版本库,由中心节点建立软件版本库;所述本地版本库存储各自指定目录下各个软件实体文件的状态信息,包括基本信息和软件指纹信息;所述软件版本库包括文件柜和数据库,所述文件柜存储的是各个节点的软件实体文件,所述数据库存储的是软件实体文件的状态信息;2)需要检查节点上软件版本状态时,中心节点向节点下达版本比对指令;节点比对指定目录下软件实体文件的状态信息与本地版本库中记录是否一致,若否,则节点将采集到的软件实体文件状态信息更新本地版本库,并上传到中心节点,由中心节点将接收的软件状态与软件版本库进行比对,完成后上报比对结果;3)当所述步骤2)中软件版本库与本地文件比对不一致时,则定义版本统一的标准;若以软件版本库为基准,则由中心节点向节点下达软件部署指令,并传输软件版本库中软件状态信息及实体文件;若以节点为基准,则由节点向中心节点更新软件实体文件与软件实体文件的状态信息的指令。2.根据权利要求1所述的一种分布式环境下软件版本控制方法,其特征在于,所述步骤1)具体包括:1.1)在分布式环境下,各个节点根据中心节点下发的指令,采集各自指定目录下各个软件实体文件的状态信息,包括基本信息和软件指纹信息;1.2)在采集软件实体文件的状态信息后,将软件实体文件的状态信息记录到本地版本库,同步,在分布式环境下,将软件实体文件以及软件实体文件的状态信息通过网络上传到远程的中心节点;1.3)中心节点接收到各个节点上传的软件实体文件及软件实体文件的状态信息后,将软件实体文件记录到文件柜,将软件实体文件的状态信息记录到数据库,所述文件柜和数据库形成软件版本库。3.根据权利要求2所述的一种分布式环境下软件版本控制方法,其特征在于,所述步骤1.1)具体包括:各节点对指定目录进行递归遍历,采集所有目录下实体文件的状态信息,包括基本信息与指纹信息,所述基本信息包括文件的文件名称、类型、位置、大小、占用空间、创建时间、修改时间、最后一次保存时间;软件指纹信息是通过MD5算法,将软件实体文件生成的字符串...

【专利技术属性】
技术研发人员:陈晨
申请(专利权)人:南京航空航天大学金城学院
类型:发明
国别省市:江苏,32

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1