CN106886410A - 一种软件版本管理系统 - Google Patents
一种软件版本管理系统 Download PDFInfo
- Publication number
- CN106886410A CN106886410A CN201710067102.9A CN201710067102A CN106886410A CN 106886410 A CN106886410 A CN 106886410A CN 201710067102 A CN201710067102 A CN 201710067102A CN 106886410 A CN106886410 A CN 106886410A
- Authority
- CN
- China
- Prior art keywords
- version
- metamessage
- component
- network node
- management system
- 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.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例公开了一种软件版本管理系统,其特征在于,适用于分布式集群系统,所述系统包括:版本数据库,用于分层次存储所述软件版本管理系统对所述网络节点进行软件版本管理过程中所使用到的版本元信息以及版本数据;版本元信息传播模块,用于基于所述版本数据库在所述软件版本管理系统所管理的网络节点中传播版本元信息;版本数据传输模块,用于基于所述版本数据库在所述软件版本管理系统所管理的网络节点中传播版本数据;以及版本升级回溯模块,用于基于所述版本数据库对所述网络节点的软件版本进行升级或回溯。实施本发明实施例能快速准确实现各组件的版本之间的升级和回溯,带宽需求低,同时提高软件版本管理系统的鲁棒性。
Description
技术领域
本发明涉及服务器集群领域,尤其涉及一种软件版本管理系统。
背景技术
随着系统中处理数据的体量越来越大,提供的服务越来越复杂,并发性实时性的需求越来越高,整个系统的往往由一个复杂的分布式集群构成。分布式集群的服务组件类型众多,服务组件的宿主硬件服务器分多层集群,在空间和地域上可能广泛分布,系统内各组件存在复杂的网关服务关系,且一个硬件服务器中可能存在多个组件,一个组件一般运行在多个硬件服务器中,而不同的组件之间由不同的开发团队进行维护。
在一个分布式系统中,不同的组件之间需要紧密配合进行工作,此时需要对各组件的软件版本进行维护,目前,由于组件的分布式特点,可以通过运维人员去不同的现场对组件进行维护操作,使得组件的软件版本维护操作麻烦,并且,由于需要人为检测组件的软件版本对不同组件的软件版本进行配合,将可能由于人工检测失误而造成系统的不稳定性。
发明内容
本发明实施例提供了一种软件版本管理系统,能快速准确实现各组件的版本之间的升级和回溯,带宽需求低,同时提高软件版本管理系统的鲁棒性。
本发明实施例第一方面公开了一种软件版本管理系统,所述软件版本管理系统适用于分布式集群系统,所述系统包括:
版本数据库,用于分层次存储所述软件版本管理系统对所述网络节点进行软件版本管理过程中所使用到的版本元信息以及版本数据;
版本元信息传播模块,用于基于所述版本数据库在所述软件版本管理系统所管理的网络节点中传播版本元信息;
版本数据传输模块,用于基于所述版本数据库在所述软件版本管理系统所管理的网络节点中传播版本数据;
以及版本升级回溯模块,用于基于所述版本数据库对所述网络节点的软件版本进行升级或回溯。
与现有技术相比,本发明实施例具备以下有益效果:
本发明实施例中,通过统一的软件版本管理系统,分层次存储版本数据,以及网络节点间的版本数据以及元信息的协同传输机制,能快速准确实现各组件的版本之间的升级和回溯,带宽需求低,同时提高软件版本管理系统的鲁棒性。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例公开的一种软件版本管理系统;
图2是本发明实施例提供的一种版本数据库的结构示意图;
图3是本发明实施例提供的一种版本元信息数据存储模块的结构示意图;
图4是本发明实施例提供的一种版本文件数据存储模块的结构示意图;
图5是本发明实施例提供的一种版本统一结构规范存储模块的结构示意图;
图6是本发明实施例提供的一种版本兼容性检测用例库存储模块的结构示意图;
图7是本发明实施例提供的一种版本回溯信息数据库存储模块的结构示意图;
图8-a是本发明实施例提供的一种版本元信息传播模块的结构示意图;
图8-b是本发明实施例提供一种版本元信息传播格式示意图;
图9是本发明实施例提供的一种版本数据传输模块的结构示意图;
图10是本发明实施例提供的一种版本升级回溯模块的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明的说明书和权利要求书及上述附图中的术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
本发明实施例提供了一种软件版本管理系统,能快速准确实现各组件的版本之间的升级和回溯,带宽需求低,同时提高软件版本管理系统的鲁棒性。
请参阅图1,图1是本发明实施例公开的一种软件版本管理系统。如图1所示,所述软件版本管理系统100适用于分布式集群系统,所述软件版本管理系统包括:
版本数据库110,用于分层次存储所述软件版本管理系统对所述网络节点进行软件版本管理过程中所使用到的版本元信息以及版本数据。
在本发明实施例中,通过分层次存储各组件各版本的版本元信息以及版本数据,从而可以实现对网络中的各组件版本的版本元信息以及版本数据进行统一管理,以在版本升级与回溯时,通过调用该版本数据库110中的数据,高效准确地进行版本升级与回溯。
可选地,参见图2,图2是本发明实施例提供的一种版本数据库的结构示意图。如图2所示,在本发明的一个实施例中,所述版本数据库110包括以下至少一种:
版本元信息数据存储模块111,用于存储所述多个网络节点的所述版本元信息。
可选地,在本发明的一个实施例中,所述版本元信息数据库模块111通过分层映射结构存储版本元信息,所述分层映射结构包括大版本元信息存储单元和组件版本元信息存储单元,所述大版本由组件构成,所述大版本元信息存储所述组件版本元信息的链接,所述组件版本元信息存储单元用于存储所述组件的元信息。
具体地,参见图3,图3是本发明实施例提供的一种版本元信息数据存储模块的结构示意图。如图3所示,该版本元信息数据存储模块分层存储版本元信息,其中版本分为大版本和组件版本,大版本由组件版本构成。
其中,大版本元信息存储组件版本元信息的链接,以保持数据的一致性和节省存储空间。
其中,每个大版本与各组件版本之间存在网状映射关系,具体地,同一个组件版本可由多个大版本共享,每个大版本中的组件版本可来自于批次版本组件版本。大版本与组件版本之间,通过元信息映射组成灵活的版本组合。
版本文件数据存储模块112,用于存储所述多个网络节点的版本文件数据。
可选地,在本发明的一个实施例中,所述版本文件数据存储模块112用于通过版本元信息格式存储所述组件版本元信息,所述组件版本元信息格式包括版本序列号,版本唯一标识号以及与所述组件版本元信息对应的版本数据的存储路径。
具体地,参见图4,图4是本发明实施例提供的一种版本文件数据存储模块112的结构示意图。该示意图中示出了版本元信息的格式与数据映射关系。
其中,组件版本元信息中的版本序列号随着发布的进行依次递增的版本号。包括构建的日期及构建功能版本等信息,从而可以通过版本序列号判断出两个版本之间的更新关系。
其中,版本唯一标识号由唯一标识生成算法生成,例如可以由通用识别码(Universally Unique Identifier,UUID)生成算法来生成。
其中,版本数据的存储路径可能是本地文件系统,也可能是网络地址。
在本发明实施例中,当版本数据存储在其它服务器时,版本数据的存储路径的所有在本发明中的版本元信息传播模块描述的版本元信息的传输机制得到的互联网协议(Internet Protocol,IP)地址列表。
版本统一结构规范存储模块113,用于存储所述多个网络节点在进行版本升级时所使用的数据格式规范。
可选地,在本发明的一个实施例中,所述版本统一结构规范存储模块113用于通过统一结构规范存储版本数据,所述统一结构规范包括以下部分中的至少一种:
统一配置文件格式、统一配置文件合并准则、统一升级脚本、统一部署脚本、统一版本兼容性信息库以及统一版本数据文件。
参见图5,图5示出了本发明实施例提供的一种版本统一结构规范存储模块的结构示意图。在该版本统一结构规范存储模块中,规定了版本数据的统一性结构规范,规定不管是组件版本还是大版本的格式标准。为了能够按统一的框架和流程来执行版本的部署,升级,统一规定所有组件版本必需按如图5所示的格式构成。
其中,图5中,统一版本数据文件包括可执行文件,动态库,数据模型等。
其中,统一版本兼容性信息库提供以下两个方面的信息:
本组件向其它组件提供的接口服务;
本组件依赖于其它组件的接口和服务。
本发明实施例中,通过版本统一结构规范来存储各版本数据,以实现对各组件的版本进行统一管理。
版本兼容性检测用例库存储模块114,用于存储所述多个网络节点的不同组件间的兼容性信息。
可选地,在本发明的一个实施例中,所述版本兼容性检测用例库存储模块114用于通过兼容性信息条目遍历不同组件之间的兼容性信息并存储,所述兼容性信息条目包括当前组件号、目标组件号以及目标组件接口号,所述兼容性信息条目存储在多重有向图结构中,所述多重有向图结构的边结构存储了以下至少一种:兼容性信息条件、用例具体内容,所述用例具体内容包括输入、输出以及验证准则。
具体地,参见图6,图6是本发明实施例提供的一种版本兼容性检测用例库存储模块114的结构示意图。用于实现自动的版本兼容性检查,以实现自动化的版本升级、回溯的验证等。其中,在图6中,每一个节点为系统中的一个组件类型,每一个组件类型在这个多重有向图中的都存在一个节点。
在本发明实施例中,为了管理各个版本的功能关系对验证这些各组件关系所对应的用例,提出一种兼容性检测用例涉及以下三个元素:调用发起组件、调用接收组件、调用的输入/输出。基于图6所示的版本兼容性检测用例库存储模块,通过下述步骤获取组件版本兼容性信息。
步骤1、由于每个组件在版本构建的过程中,都存储了兼容性信息,统计版本库中的组件类型总数,每一个组件类型构造一个有向图的顶点节点。
步骤2、遍历每一个组件中兼容性信息,对于一个组件,遍历读取兼容性信息条目。
具体地,读取兼容性信息条目的信息,得到当前组件号、目标组件号以及目标组件接口号,创建一条由当前组件网络节点指向目标组件网络节点的边;然后再继续读取兼容性检测用例的输入,输出,验证准则等,作为额外的信息存储的边结构中,从而基于上述信息用于确定进行兼容性检测的组件,具体地,在图6中,TestCase8(3,2,1),即用于表示组件3通过接口1调用组件2时的兼容性检测。基于上述信息对获取该兼容性信息条目对应的兼容性信息并存储。重复进行上述步骤直到获取到当前组件所有兼容性信息为止。然后对每个组件再基于上述步骤获取到各个组件的所有兼容性信息为止。最后得到所有组件的所有兼容性信息进行存储。
在本发明实施例中,当获取到各组件间的兼容性信息并统一存储在版本兼容性检测用例库存储模块,则可以在进行版本升级和回溯时通过基于该兼容性信息进行版本的升级和回溯,使得能对组件版本升级和回溯进行统一管理。
版本回溯信息数据库存储模块115,用于存储所述多个网络节点的软件版本的回溯信息。
可选地,在本发明的一个实施例中,所述版本回溯信息数据库存储模块115用于通过二级哈希Hash表结构存储版本回溯信息,所述二级Hash表结构包括第一级Hash表以及第二级Hash表,所述第一级Hash表用于存储组件之间的组件识别符号对,所述第二级Hash表用于存储所述可兼容组件对对应的兼容性检测结果。
具体地,参见图7,图7是本发明实施例提供的一种版本回溯信息数据库存储模块115的结构示意图。参见图7,在第一级Hash表结构中,其键值为组件标识,从而每一个节点对应于一对组件识别符号对,假设在系统中,某两个组件的标识号为ID(x),ID(y),则在第一级Hash表中存在键值为Key(ID(x),ID(y))的Hash表项。如果不存在,在第一级Hash表中创建该键值。
第二级Hash表结构为某两个组件的两两之间的兼容性检测结果。组件ID(x)有某个版本Version(m),组件ID(y)有某个版本Version(n),则在第一级Hash表中,键值为Key(ID(x),ID(y))的第二级子Map有键值为Key(m,n)的子Hash表项,子Hash表项存储的内容为组件ID(x)的版本Version(m)和组件ID(y)的版本Version(n)兼容性检测结果。
可以理解,通过上述二级Hash表结构,可以存储各个组件之间兼容性检测结果,从而当某个组件需要进行版本回溯回退的时候,可以快速的得到关联组件的回溯信息,即关联的组件的版本是否需要进行回溯及回溯到哪个版本,提高软件版本管理效率。
版本元信息传播模块120,用于基于所述版本数据库在所述软件版本管理系统所管理的网络节点中传播版本元信息。
可选地,在本发明的一个实施例中,参见图8-a和图8-b,图8-a是本发明实施例提供的一种版本元信息传播模块的结构示意图,图8-b是本发明实施例提供一种版本元信息传播格式示意图。如图8-a所示,该版本元信息传播模块120,包括:
接收单元121,用于接收其它网络节点发送的版本号消息,所述版本号消息包括所述其它网络节点的组件号、版本号以及存活时间(Time to Live,TTL);
存储单元122,用于当所述版本号消息在所述网络节点的版本数据库不存在时,保存所述版本号消息。
在本发明实施例中,通过该版本元信息传播模块,从而可以实现在快速高效地在网络中传递版本元信息,使网络中的每一个网络节点都掌握当前最新版本信息。
具体地,在本发明的一个实施例中,为了实现网络中的各网络节点都获取版本元信息,可以首先由版本发布者把新的版本的元信息及其相关的数据文件和其它必要的信息形成版本号消息,例如版本元信息数据、版本文件数据以及版本统一结构规范等部分的内容,设这些被注入版本号信息的节点为源节点;然后源节点在自己所有网络接口上广播新的版本号消息,从而各中间节点将接收到该版本号信息,以获取到新的版本的元信息。当中间节点通过接收单元121接收到该版本号信息时,则通过检查该中间节点中是否存储有该版本号信息中的内容,若未存储,则保存。从而实现将新的版本的元信息在各网络节点中的传播。
可选地,在本发明的一个实施例中,为了尽可以节约带宽,在开始阶段,源节点仅抽取版本号消息中的版本号向外开始广播传递过程。
更进一步,具体地,在本发明的一个实施例中,中间节点判断如果曾经收到过该版本号消息消息,也即版本号消息中的组件号和版本号相同,直接结束,如果没有收到过,则首先会在自己的版本元信息数据存储模块记录该版本号消息中的内容,然后再把该版本元消息中的TTL减1,如果结果为0,则不时行转发,直接结束,如果TTL不为0,则中间节点向这条版本元消息进入的网络接口以外的网络接口进行转发,消息按该机制在网络是传播,直到所有节点都收到或消息的TTL减为0为止。从而使得网络中的每个节点都知道当集群中,每个软件的组件的最新版本是什么,及节点自己是否有这些版本的本地拷贝。
更进一步,可选地,各网络节点将会以比较低的频度,向网络中其它网络节点广播自己掌握有的所有的组件的版本号信息,该版本号信息包括最新和历史的版本号,消息的传输过程与新注入的版本的信息的传输过程基本一致。不再详细叙述通过这个通过,可以达到两个作用:
可以理解,通过上述过程,可以使得在网络中的每个结点,都掌握了所有在网络内存在的各组件的版本号信息;以及使得新加入网络中的节点,通过一段时间的监听后,也可以掌握在网络中存在的组件版本信息,以实现对各组件版本元信息的传播。以进一步实现对各组件的软件版本的统一管理。
其中,版本数据传输模块130,用于基于所述版本数据库在所述软件版本管理系统所管理的网络节点中传播版本数据。
可选地,在本发明的一个实施例中,参见图9,图9是本发明实施例提供的一种版本数据传输模块130的结构示意图。如图9所示,该版本数据传输模块130包括:
接收单元131,用于接收其它网络节点发送的版本数据传输请求,所述版本数据传输请求包括版本号标识,所述版本数据传输请求用于所述其它网络节点向所述网络节点请求传输与所述版本号标识对应的版本数据,所述版本号标识包括组件标识和版本标识;
发送单元132,用于在所述网络节点包括与所述版本号标识对应的版本数据时,向所述其它网络节点发送所述版本数据。
具体地,1、网络中的每个网络节点根据自己掌握的版本元信息数据、版本文件数据以及版本统一结构规范,向网络中其它网络节点发起某组件某版本数据传输请求,以实现对版本数据的共享,在该版本数据传输请求中可设置所传输的数据格式为Data(Model(x)Version(y)),其中,Model(x)用于表示某组件,Version(y)用于表示某版本。
2、网络节点将按统一约定的规则,例如按固定大小切块的规则,对Data(Model(x)Version(y))进行切块,设得到的块数为(1,m),并将(1,m)进行批次划分,设为(1,n),则每批次为m*n块数据。
3、网络节点将根据上述分块按批次发起传输,它一次把当前批次m*n块同时向外发送请求,请求有这些数据块的网络节点回应它的请求。具体地,网络节点发起请求前,根据版本元信息传播模块中掌握的信息,根据一次的时间的退避,也即TTL减1。
可选地,上述过程中,由于只有少数节点拥有Data(Model(x)Version(y))的本地版本,所以大部分节点都会发起传输的请求操作。
当某个网络节点通过接收单元131接收到版本数据传输请求后,将检查自己是否掌握有相关的数据块,如果掌握,则通过发送单元132向发送该版本数据传输请求的网络节点源请求节点回复自己愿意提供数据传输服务的响应消息,同时该网络节点向远离消息源节点的方向转发此版本数据传输请求。如果该网络节点没有这样的方向,则不转发此消息。从而实现网络中各网络节点都拥有升级版本的版本数据。同时,通过上述机制,可以节约带宽。
可选地,在本发明的一个实施例中,当发起版本数据传输请求的网络节点收到多个响应请求时,会根据TTL时延选择最佳的网络节点请求版本数据。以减少无用的版本数据传输。
可以理解,通过上述过程,每个网络节点都可以掌握最新版本的版本数据,以实现对各组件的软件版本的统一管理。
其中,版本升级回溯模块140,用于基于所述版本数据库对所述网络节点的软件版本进行升级或回溯。
可选地,在本发明的一个实施例中,参见图10,图10是本发明实施例提供的一种版本升级回溯模块140的结构示意图。如图10所示,该版本升级回溯模块140包括:
检测单元141,用于确定待升级版本或待回溯版本的组件号、版本号,并基于所述版本兼容性检测用例库存储模块进行兼容性测试;
升级回溯单元142,用于在所述兼容性测试通过时,对所述网络节点升级至待升级版本或回溯至待回溯版本。
具体地,在本发明实施例中,由于每个网络节点都记录了每个组件每个版本的版本兼容性检测用例库及版本回溯信息数据库,所以可具体通过以下过程进行版本升级:
1、网络节点通过检测单元141检测当前网络节点所有的组件的待升级的版本,确定当前次升级所涉及的组件版本及具体的版本号;
2、通过版本元信息数据存储模块维护版本的元数据信息,创建一个新的大版本号,生成大版本号的一个唯一的标识号,根据待升级组件的版本号,不升级组件的版本号等信息,维护当前在版本号的组件版本映射信息。参见本发明专利A1所描述的的元信息存储结构。
3、网络节点再进行备份部署,将待升级的版本通过版本中的config/update/deloy等标准化脚本部署为一个与当前运行的版本并行运行的一个复制运行实例。
4、网络节点在这个复制的运行实现上利用版本兼容性检测用例库存储模块检测兼容性检测用例库。
5、可选地,在本发明的一个实施例中,如果通过兼容性检测,则进行版本的实际热切换,使当前的版本实际上线。同时在版本回溯信息数据库存储模块所描述的回溯信息数据库中记录已经完成的兼容性检测信息。
6、可选地,在本发明的另一个实施例中,如果没有通过兼容性检测,则中止此次升级,并清除掉复制兼容性检测环境的所有组件实例。并行相关的记录和报错。
可以理解,通过上述步骤,可以实现对版本的升级与回溯。
可以看出,本发明实施例提供的技术方案中,通过统一的软件版本管理系统,分层次存储版本数据,以及网络节点间的版本数据以及元信息的协同传输机制,能快速准确实现各组件的版本之间的升级和回溯,带宽需求低,同时提高软件版本管理系统的鲁棒性。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。
作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储器中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例方法的全部或部分步骤。而前述的存储器包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,RandomAccess Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储器中,存储器可以包括:闪存盘、只读存储器(英文:Read-Only Memory,简称:ROM)、随机存取器(英文:Random Access Memory,简称:RAM)、磁盘或光盘等。
以上对本发明实施例进行了详细介绍,本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想;同时,对于本领域的一般技术人员,依据本发明的思想,在具体实施方式及应用范围上均会有改变之处,综上上述,本说明书内容不应理解为对本发明的限制。
Claims (10)
1.一种软件版本管理系统,其特征在于,所述软件版本管理系统适用于分布式集群系统,所述系统包括:
版本数据库,用于分层次存储所述软件版本管理系统对所述网络节点进行软件版本管理过程中所使用到的版本元信息以及版本数据;
版本元信息传播模块,用于基于所述版本数据库在所述软件版本管理系统所管理的网络节点中传播版本元信息;
版本数据传输模块,用于基于所述版本数据库在所述软件版本管理系统所管理的网络节点中传播版本数据;
以及版本升级回溯模块,用于基于所述版本数据库对所述网络节点的软件版本进行升级或回溯。
2.根据权利要求1所述的软件版本管理系统,其特征在于,所述版本数据库包括以下至少一种:
版本元信息数据存储模块,用于存储所述多个网络节点的所述版本元信息;
版本文件数据存储模块,用于存储所述多个网络节点的版本文件数据;
版本统一结构规范存储模块,用于存储所述多个网络节点在进行版本升级时所使用的数据格式规范;
版本兼容性检测用例库存储模块,用于存储所述多个网络节点的不同组件间的兼容性信息;
版本回溯信息数据库存储模块,用于存储所述多个网络节点的软件版本的回溯信息。
3.根据权利要求2所述的软件版本管理系统,其特征在于,所述版本元信息数据库模块通过分层映射结构存储版本元信息,所述分层映射结构包括大版本元信息存储单元和组件版本元信息存储单元,所述大版本由组件构成,所述大版本元信息存储所述组件版本元信息的链接,所述组件版本元信息存储单元用于存储所述组件的元信息。
4.根据权利要求2所述的软件版本管理系统,其特征在于,所述版本文件数据存储模块用于通过版本元信息格式存储所述组件版本元信息,所述组件版本元信息格式包括版本序列号,版本唯一标识号以及与所述组件版本元信息对应的版本数据的存储路径。
5.根据权利要求2所述的软件版本管理系统,其特征在于,所述版本统一结构规范存储模块用于通过统一结构规范存储版本数据,所述统一结构规范包括以下部分中的至少一种:
统一配置文件格式、统一配置文件合并准则、统一升级脚本、统一部署脚本、统一版本兼容性信息库以及统一版本数据文件。
6.根据权利要求2所述的软件版本管理系统,其特征在于,所述版本兼容性检测用例库存储模块用于通过兼容性信息条目遍历不同组件之间的兼容性信息并存储,所述兼容性信息条目包括当前组件号、目标组件号以及目标组件接口号,所述兼容性信息条目存储在多重有向图结构中,所述多重有向图结构的边结构存储了以下至少一种:兼容性信息条件、用例具体内容,所述用例具体内容包括输入、输出以及验证准则。
7.根据权利要求2所述的软件版本管理系统,其特征在于,所述版本回溯信息数据库存储模块用于通过二级Hash表结构存储版本回溯信息,所述二级Hash表结构包括第一级Hash表以及第二级Hash表,所述第一级Hash表用于存储组件之间的组件识别符号对,所述第二级Hash表用于存储所述可兼容组件对对应的兼容性检测结果。
8.根据权利要求1至7任一项所述的软件版本管理系统,其特征在于,所述版本元信息传播模块,包括:
接收单元,用于接收其它网络节点发送的版本号消息,所述版本号消息包括所述其它网络节点的组件号、版本号以及存活时间TTL;
存储单元,用于当所述版本号消息在所述网络节点的版本数据库不存在时,保存所述版本号消息。
9.根据权利要求1至7任一项所述的软件版本管理系统,其特征在于,所述版本数据传输模块,包括:
接收单元,用于接收其它网络节点发送的版本数据传输请求,所述版本数据传输请求包括版本号标识,所述版本数据传输请求用于所述其它网络节点向所述网络节点请求传输与所述版本号标识对应的版本数据,所述版本号标识包括组件标识和版本标识;
发送单元,用于在所述网络节点包括与所述版本号标识对应的版本数据时,向所述其它网络节点发送所述版本数据。
10.根据权利要求1至7任一项所述的软件版本管理系统,其特征在于,所述版本升级回溯模块,包括:
检测单元,用于确定待升级版本或待回溯版本的组件号、版本号,并基于所述版本兼容性检测用例库存储模块进行兼容性测试;
升级回溯单元,用于在所述兼容性测试通过时,对所述网络节点升级至待升级版本或回溯至待回溯版本。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2017100097015 | 2017-01-06 | ||
CN201710009701 | 2017-01-06 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106886410A true CN106886410A (zh) | 2017-06-23 |
CN106886410B CN106886410B (zh) | 2018-06-19 |
Family
ID=59179187
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710067102.9A Active CN106886410B (zh) | 2017-01-06 | 2017-02-07 | 一种软件版本管理系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106886410B (zh) |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107347093A (zh) * | 2017-07-03 | 2017-11-14 | 北京京东尚科信息技术有限公司 | 用于分布式服务器系统的配置方法和装置 |
CN107678776A (zh) * | 2017-08-09 | 2018-02-09 | 上海壹账通金融科技有限公司 | 多模块版本依赖关系构建方法、装置、服务器和存储介质 |
CN107704260A (zh) * | 2017-10-31 | 2018-02-16 | 广东小天才科技有限公司 | 一种更新应用软件的软件开发工具包的方法及系统 |
CN107908421A (zh) * | 2017-09-29 | 2018-04-13 | 北京创鑫旅程网络技术有限公司 | 软件代码版本管理与发布的方法及装置 |
CN109358898A (zh) * | 2018-10-24 | 2019-02-19 | 网易(杭州)网络有限公司 | 一种信息处理方法、装置、电子设备和存储介质 |
CN109558382A (zh) * | 2018-12-06 | 2019-04-02 | Oppo广东移动通信有限公司 | 文件管理方法、电子装置及计算机可读存储介质 |
CN111684439A (zh) * | 2018-02-06 | 2020-09-18 | 思科技术公司 | 网络保证数据库版本兼容性 |
CN111736859A (zh) * | 2019-03-25 | 2020-10-02 | 成都鼎桥通信技术有限公司 | 操作系统的版本更新方法、服务器以及终端 |
CN112470119A (zh) * | 2019-07-09 | 2021-03-09 | 华为技术有限公司 | 一种分布式系统中的业务升级方法、装置及分布式系统 |
CN113590213A (zh) * | 2021-06-24 | 2021-11-02 | 深圳开源互联网安全技术有限公司 | 组件维护方法、电子设备及存储介质 |
CN113760354A (zh) * | 2021-09-07 | 2021-12-07 | 广东电网有限责任公司 | 一种调度自动化系统的本体信息版本管控方法及装置 |
CN113805961A (zh) * | 2021-08-27 | 2021-12-17 | 中国航空无线电电子研究所 | 基于兼容性列表文件的产品软硬件兼容性管理方法 |
CN116401262A (zh) * | 2023-03-06 | 2023-07-07 | 安芯网盾(北京)科技有限公司 | 数据库升级方法及装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1374589A (zh) * | 2001-03-14 | 2002-10-16 | 开碁数位科技股份有限公司 | 以模块化方式更新执行中应用软件的系统及其方法 |
CN101533356A (zh) * | 2009-04-21 | 2009-09-16 | 华为技术有限公司 | 一种实现软件在线升级的方法、装置及系统 |
CN103995721A (zh) * | 2014-05-22 | 2014-08-20 | 广州金山网络科技有限公司 | 一种应用程序的升级方法、装置及系统 |
CN104303148A (zh) * | 2012-03-22 | 2015-01-21 | 爱迪德加拿大公司 | 更新软件组件 |
CN106155742A (zh) * | 2016-06-30 | 2016-11-23 | 百度在线网络技术(北京)有限公司 | 组件更新处理方法及装置 |
-
2017
- 2017-02-07 CN CN201710067102.9A patent/CN106886410B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1374589A (zh) * | 2001-03-14 | 2002-10-16 | 开碁数位科技股份有限公司 | 以模块化方式更新执行中应用软件的系统及其方法 |
CN101533356A (zh) * | 2009-04-21 | 2009-09-16 | 华为技术有限公司 | 一种实现软件在线升级的方法、装置及系统 |
CN104303148A (zh) * | 2012-03-22 | 2015-01-21 | 爱迪德加拿大公司 | 更新软件组件 |
CN103995721A (zh) * | 2014-05-22 | 2014-08-20 | 广州金山网络科技有限公司 | 一种应用程序的升级方法、装置及系统 |
CN106155742A (zh) * | 2016-06-30 | 2016-11-23 | 百度在线网络技术(北京)有限公司 | 组件更新处理方法及装置 |
Cited By (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107347093B (zh) * | 2017-07-03 | 2021-05-25 | 北京京东尚科信息技术有限公司 | 用于分布式服务器系统的配置方法和装置 |
CN107347093A (zh) * | 2017-07-03 | 2017-11-14 | 北京京东尚科信息技术有限公司 | 用于分布式服务器系统的配置方法和装置 |
CN107678776A (zh) * | 2017-08-09 | 2018-02-09 | 上海壹账通金融科技有限公司 | 多模块版本依赖关系构建方法、装置、服务器和存储介质 |
CN107908421A (zh) * | 2017-09-29 | 2018-04-13 | 北京创鑫旅程网络技术有限公司 | 软件代码版本管理与发布的方法及装置 |
CN107908421B (zh) * | 2017-09-29 | 2022-06-24 | 北京创鑫旅程网络技术有限公司 | 软件代码版本管理与发布的方法及装置 |
CN107704260A (zh) * | 2017-10-31 | 2018-02-16 | 广东小天才科技有限公司 | 一种更新应用软件的软件开发工具包的方法及系统 |
CN111684439A (zh) * | 2018-02-06 | 2020-09-18 | 思科技术公司 | 网络保证数据库版本兼容性 |
CN111684439B (zh) * | 2018-02-06 | 2024-02-20 | 思科技术公司 | 网络保证数据库版本兼容性 |
CN109358898A (zh) * | 2018-10-24 | 2019-02-19 | 网易(杭州)网络有限公司 | 一种信息处理方法、装置、电子设备和存储介质 |
CN109558382A (zh) * | 2018-12-06 | 2019-04-02 | Oppo广东移动通信有限公司 | 文件管理方法、电子装置及计算机可读存储介质 |
CN111736859A (zh) * | 2019-03-25 | 2020-10-02 | 成都鼎桥通信技术有限公司 | 操作系统的版本更新方法、服务器以及终端 |
CN111736859B (zh) * | 2019-03-25 | 2023-08-01 | 成都鼎桥通信技术有限公司 | 操作系统的版本更新方法、服务器以及终端 |
CN112470119A (zh) * | 2019-07-09 | 2021-03-09 | 华为技术有限公司 | 一种分布式系统中的业务升级方法、装置及分布式系统 |
CN113590213A (zh) * | 2021-06-24 | 2021-11-02 | 深圳开源互联网安全技术有限公司 | 组件维护方法、电子设备及存储介质 |
CN113590213B (zh) * | 2021-06-24 | 2023-04-25 | 深圳开源互联网安全技术有限公司 | 组件维护方法、电子设备及存储介质 |
CN113805961A (zh) * | 2021-08-27 | 2021-12-17 | 中国航空无线电电子研究所 | 基于兼容性列表文件的产品软硬件兼容性管理方法 |
CN113805961B (zh) * | 2021-08-27 | 2023-09-15 | 中国航空无线电电子研究所 | 基于兼容性列表文件的产品软硬件兼容性管理方法 |
CN113760354B (zh) * | 2021-09-07 | 2023-10-20 | 广东电网有限责任公司 | 一种调度自动化系统的本体信息版本管控方法及装置 |
CN113760354A (zh) * | 2021-09-07 | 2021-12-07 | 广东电网有限责任公司 | 一种调度自动化系统的本体信息版本管控方法及装置 |
CN116401262A (zh) * | 2023-03-06 | 2023-07-07 | 安芯网盾(北京)科技有限公司 | 数据库升级方法及装置 |
CN116401262B (zh) * | 2023-03-06 | 2024-02-02 | 安芯网盾(北京)科技有限公司 | 数据库升级方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN106886410B (zh) | 2018-06-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106886410B (zh) | 一种软件版本管理系统 | |
CN101645801B (zh) | 基于集群管理的软件版本升级方法及命令交换机 | |
CN107633016B (zh) | 数据处理方法及装置和电子设备 | |
US9697066B2 (en) | Method for processing data quality exceptions in a data processing system | |
CN113328872A (zh) | 故障修复方法、装置和存储介质 | |
CN110275992B (zh) | 应急处理方法、装置、服务器及计算机可读存储介质 | |
CN105872127B (zh) | 一种ip地址管理系统 | |
CN104486125A (zh) | 配置文件的备份方法及装置 | |
CN111813788A (zh) | 信息的查询方法和装置、信息的同步方法和装置 | |
CN104468207A (zh) | 终端管理的方法、装置及系统 | |
CN111913824B (zh) | 确定数据链路故障原因的方法及相关设备 | |
CN110532021A (zh) | 分布式控制系统的组态文件的处理方法及装置 | |
CN111338869B (zh) | 配置参数管理方法、装置、设备及存储介质 | |
CN114500312B (zh) | 一种通信线路校验方法、装置、电子设备及系统 | |
CN111142929A (zh) | 一种设备生产过程中的固件配置方法、装置、设备及介质 | |
CN103902429A (zh) | 在自动化测试中进行预警的方法、服务器和系统 | |
CN110691012B (zh) | 一种报文处理方法和测试仪 | |
JP2006025434A (ja) | 大容量障害相関システム及び方法 | |
CN116506340A (zh) | 流量链路的测试方法、装置、电子设备及存储介质 | |
CN101159632B (zh) | 一种网络事件处理的方法 | |
CN114661231B (zh) | 电网监控主站系统参数变更记录的存储同步方法及装置 | |
CN114422386B (zh) | 一种微服务网关的监测方法及装置 | |
CN113050925B (zh) | 区块链智能合约修复方法及装置 | |
CN110287049A (zh) | 数据处理方法、装置和存储介质 | |
CN107493308B (zh) | 一种发送消息的方法和装置及分布式设备集群系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |