CN110674114A - 一种分布式协同设计的数据版本控制方法和装置 - Google Patents
一种分布式协同设计的数据版本控制方法和装置 Download PDFInfo
- Publication number
- CN110674114A CN110674114A CN201910909862.9A CN201910909862A CN110674114A CN 110674114 A CN110674114 A CN 110674114A CN 201910909862 A CN201910909862 A CN 201910909862A CN 110674114 A CN110674114 A CN 110674114A
- Authority
- CN
- China
- Prior art keywords
- data
- versions
- version
- database
- subsystems
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/21—Design, administration or maintenance of databases
- G06F16/219—Managing data history or versioning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2255—Hash tables
Abstract
本发明公开一种分布式协同设计的数据版本控制方法和装置,其特征在于,包括:创建用于存储数据版本的数据库;创建用于维护数据库中数据版本的总系统;创建多个用于维护分系统中的数据版本并向主系统提交合并数据版本请求的分系统;创建多个用于维护子系统中的数据版本并向分系统提交合并数据版本请求的子系统。本发明缩减复杂产品协同设计数据迭代周期,提高数据迭代效率,在保证数据版本可追溯和最大完整性的同时减少资源占用率,大量的节省了服务器存储空间。
Description
技术领域
本发明涉及数据管理领域。更具体地,涉及一种分布式协同设计的数据版本控制方法和装置。
背景技术
复杂产品协同设计不同于普通的产品协同设计,复杂产品协同设计过程由于针对多专业多学科的产品会产生比普通设计过程更多的设计数据和设计模型文档,管理这些数据和设计模型文档,使用传统的数据版本管理控制方式已经满足不了复杂产品协同设计过程数据版本控制的需求,在设计过程中由于专业繁多,造成项目中任务分解项多,而分解的任务又会进行再次的分解,这种模式会使任务数量呈指数型增长,常规的数据版本控制采用串行的方式管理各个层级的任务负责人和设计师生成的设计数据,并通过串行节点由项目负责人或者会签审核人员进行统一的审核。该方式对于结构单一,专业跨度小的产品协同设计而言是一种不错的数据版本迭代方式,但对于复杂产品而言就会产生很多问题:首先是造成协同设计迭代周期长,数据版本的生成必须等待审核节点的逻辑关系上游节点全部完成,才能进行审核和版本的生成;其次是数据版本不具有时效性,由于迭代周期长,各节点人员不能及时的获取最新的版本数据,必须等待审核节点任务完成才能获得最新的可靠数据版本;最后,对于协同设计目前大都采用集中化的版本控制方式,但由于跨场所的原因协同设计各个任务团队人员不能在同一局域网下工作,这样就造成设计过程中对网络性能要求高,一旦出现中央服务器单点故障或者网络故障,就会造成谁都无法获取数据,也不能进行提交审核的结果,而且整个项目的历史记录保存在单一位置,就有丢失所有历史记录的风险。
因此,需要提供一种分布式协同设计的数据版本控制方法和装置。
发明内容
本发明的目的在于提供一种分布式协同设计的数据版本控制方法和装置,以满足复杂产品协同设计面对的数据版本控制需求。
为达到上述目的,本发明采用下述技术方案:
一种分布式协同设计的数据版本控制方法,包括:
创建用于存储数据版本的数据库;
创建用于维护数据库中数据版本的总系统;
创建多个用于维护分系统中的数据版本并向主系统提交合并数据版本请求的分系统;
创建多个用于维护子系统中的数据版本并向分系统提交合并数据版本请求的子系统。
进一步的,当有新的数据版本生成时,对该数据的所有版本的所有数据制作成快照并保存此快照索引。
进一步的,当新的数据版本内的数据没有变化时,在该版本设置指针,指向上一个数据版本存储的数据。
进一步的,所述总系统根据数据内容创建对应的哈希值,若两个数据版本中有内容相同的数据则生成相同的哈希值,若两个数据版本中有内容不同的数据则生成多个不同且唯一的哈希值。
进一步的,所述方法还包括创建版本映射表,用于映射数据库中的最新数据版本和上一数据版本中相同内容的数据,数据版本合并时遍历映射表,若两数据版本内容不同则均对应一个不同的哈希值。
本发明的一个实施例还公开了一种分布式协同设计的数据版本控制装置,包括:
数据库,用于存储数据版本;
总系统,与数据库连接,用于维护数据库中数据版本;
分系统,分别与总系统和数据库连接,用于维护分系统中的数据版本并向主系统提交合并数据版本请求;
子系统,分别与分系统和数据库连接,用于维护子系统中的数据版本并向分系统提交合并数据版本请求。
进一步的,所述数据库包括数据版本生成模块,用于当有新的数据版本生成时,对该数据的所有版本的所有数据制作成快照并保存此快照索引。
进一步的,所述总系统包括数据校验模块,用于根据数据内容创建对应的哈希值,若两个数据版本中有内容相同的数据则生成相同的哈希值,若两个数据版本中有内容不同的数据则生成多个不同且唯一的哈希值。
进一步的,所述总系统还包括版本映射表,用于映射数据库中的最新数据版本和上一数据版本中相同内容的数据,数据版本合并时遍历映射表,若两数据版本内容不同则均对应一个不同的哈希值。
本发明的一个实施例还公开了一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有指令,当所述计算机可读存储介质在计算机上运行时,使得所述计算机执行上述的方法。
本发明的有益效果如下:
一、针对复杂产品协同设计提出了新的数据迭代工作流方式“总体与分系统”工作流模式,提高了数据迭代效率,保证了数据版本的时效性。
二、针对复杂产品设计过程数据量大的特点,提出了一种基于快照的设计数据版本生成方式,提高查询效率,大量的节省了服务器存储空间。
三、针对不同版本中的数据产生哈希值,通过哈希值来识别数据变更情况和获取数据,保证数据版本可追溯和最大完整性的同时减少资源占用率,提高了查询的准确性。
附图说明
下面结合附图对本发明的具体实施方式作进一步详细的说明;
图1本发明一种分布式协同设计的数据版本控制方法流程图;
图2本发明分层结构工作流程示意图;
图3本发明数据版本生成方式示意图。
具体实施方式
为了更清楚地说明本发明,下面结合优选实施例和附图对本发明做进一步的说明。附图中相似的部件以相同的附图标记进行表示。本领域技术人员应当理解,下面所具体描述的内容是说明性的而非限制性的,不应以此限制本发明的保护范围。
如图1所示,本发明一个实施例公开的一种分布式协同设计的数据版本控制方法,包括:
S1、创建用于存储数据版本的数据库;
S2、创建用于维护数据库中数据版本的总系统;
S3、创建多个用于维护分系统中的数据版本并向主系统提交合并数据版本请求的分系统;
S4、创建多个用于维护子系统中的数据版本并向分系统提交合并数据版本请求的子系统。
具体的,首先创建数据库,本实施例中命名为数据仓库类,该类负责提供一系列关于数据版本的操作;在数据仓库类中创建数据版本生成函数Long generateVersion(Datadata)函数,用来将合并后的数据生成新的数据版本;创建版本检出函数Version merge(Long versionId)作为检出需要的数据版本的接口。
创建总系统,本实施例中命名为项目类,在项目类中创建任务数据合并函数Boolean TaskMerge(Data data)用于合并提交上来的任务数据,并生成哈希值;在项目类中创建Boolean pushRequest(Data data)函数,该函数为任务类提供推送请求接口。
创建分系统,本实施例中命名为任务类,在任务类中创建项目数据合并函数DataProjectMerge()提供给项目主动合并任务数据的接口;在任务类中创建pushRequest()函数,该函数为设计师类提供数据推送接口。
最后创建子系统,本实施例中命名为设计师类,在设计师类中创建数据合并请求函数boolean PullRequest()函数,用于任务类调用,用以任务类请求数据合并。
如图2所示,“总系统与分系统”的工作流模式,总系统负责维护数据库中的数据版本,分系统负责维护自己团队的数据版本,分系统下面的子系统负责维护各自的数据版本,分系统可以随时合并自己团队中子系统的最新版本数据,子系统也可以主动向分系统提出合并版本的请求,总系统同样可以合并分系统的最新版本数据,分系统同样可以主动请求总系统合并自己的版本。每个合并的过程都伴随着数据正确性和完整性的验证,处在该工作流模式中的各级可根据总系统控制的数据库进行版本基线变更。这种工作流模式将协同设计过程分成了若干个数据管理级,所有环节变基的来源都是数据库,这样就保证了数据版本的可靠性,模式中上层和下层数据传递是双向的,既可以由上级直接合并验证,也可以由下级主动请求验证,提高了数据迭代效率,保证了数据版本的时效性。
如图3所示,基于上述工作流模式本发明中提出了一种设计数据版本生成方式,即直接记录数据快照,在数据版本迭代的过程中,不需要再计算数据差异情况,而是直接记录数据的快照,在每一次生成新的版本时,只要对当前全部的数据制作一个快照并保存这个快照的索引,为了高效,如果数据没有修改,就不需要再存储该数据,而保留一个指针指向之前存储的数据。
为了保证数据的完整性和校验是否唯一,本发明采用了一种内容校验和计算方式,使用SHA-1算法计算数据的校验和,通过对数据的内容或数据目录的结构计算出一个SHA-1哈希值,作为指纹字符串,如果两个版本中有内容相同的数据则生成的校验和相同,如果不同则生成两个不同且唯一的校验和。所有保存在数据库中的数据版本都是用此校验和(哈希值)来作索引,而不是靠数据版本ID。
在设计数据表时,需要设计一张版本映射表,版本映射表用来映射数据库里的两个不同版本中相同内容的数据,表写入时刻是在数据库生成版本的时刻,表中存储的内容为前一版本的ID,前一个版本中相同数据的哈希值,后一个版本的ID,在版本遍历时首先遍历这张映射表,直到关联版本ID遍历完成,遍历完成之后会获取到每个不同版本内最终指向的数据实体,在查询数据版本时该数据实体作为对应被查询数据版本的数据内容,而不同的数据实体对应着唯一的一个哈希值。
具体的,本发明的实施例使用MessageDigest来说明如何生成新的数据版本:
版本相同情况验证:
1.实例化MessageDigest
MessageDigest sha1=MessageDigest.getInstance("SHA-1");
2.进行哈希值计算:使用指定的字节更新。
sha1.update(val.getBytes());
3.完成计算:使用指定的byte数组对数据进行最后更新,然后完成计算。
byte[]m=sha1.digest();
4.判断两个SHA1是否相同:比较两个数据版本的相等性。
MessageDigest.isEqual(digesta,digestb)
哈希值生成:
在每一次push的时候都要进行一次SHA-1Hash值的生成,它是对push内容信息的一个校验和。
实例化
MessageDigest md=MessageDigest.getInstance(“SHA1");
将数据装换成字节流
FileInputStream fis=new FileInputStream(datafile);
byte[]dataBytes=new byte[1024];
int nread=0;
哈希值计算
转换字节为16进制格式,方便显示
本发明的一个实施例还公开了一种分布式协同设计的数据版本控制装置,包括:
数据库,用于存储数据版本;
总系统,与数据库连接,用于维护数据库中数据版本;
分系统,分别与总系统和数据库连接,用于维护分系统中的数据版本并向主系统提交合并数据版本请求;
子系统,分别与分系统和数据库连接,用于维护子系统中的数据版本并向分系统提交合并数据版本请求。
进一步的,所述数据库包括数据版本生成模块,用于当有新的数据版本生成时,对该数据的所有版本的所有数据制作成快照并保存此快照索引。
进一步的,所述总系统包括数据校验模块,用于根据数据内容创建对应的哈希值,若两个数据版本中有内容相同的数据则生成相同的哈希值,若两个数据版本中有内容不同的数据则生成多个不同且唯一的哈希值。
进一步的,所述总系统还包括版本映射表,用于映射数据库中的最新数据版本和上一数据版本中相同内容的数据,数据版本合并时遍历映射表,若两数据版本内容不同则均对应一个不同的哈希值。
本领域的技术人员应明白,本申请的实施例可提供为方法、装置(设备)、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、装置(设备)和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
显然,本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定,对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动,这里无法对所有的实施方式予以穷举,凡是属于本发明的技术方案所引伸出的显而易见的变化或变动仍处于本发明的保护范围之列。
Claims (10)
1.一种分布式协同设计的数据版本控制方法,其特征在于,包括:
创建用于存储数据版本的数据库;
创建用于维护数据库中数据版本的总系统;
创建多个用于维护分系统中的数据版本并向主系统提交合并数据版本请求的分系统;
创建多个用于维护子系统中的数据版本并向分系统提交合并数据版本请求的子系统。
2.根据权利要求1所述的方法,其特征在于,当有新的数据版本生成时,对该数据的所有版本的所有数据制作成快照并保存此快照索引。
3.根据权利要求2所述的方法,其特征在于,当新的数据版本内的数据没有变化时,在该版本设置指针,指向上一个数据版本存储的数据。
4.根据权利要求1所述的方法,其特征在于,所述总系统根据数据内容创建对应的哈希值,若两个数据版本中有内容相同的数据则生成相同的哈希值,若两个数据版本中有内容不同的数据则生成多个不同且唯一的哈希值。
5.根据权利要求4所述的方法,其特征在于,所述方法还包括创建版本映射表,用于映射数据库中的最新数据版本和上一数据版本中相同内容的数据,数据版本合并时遍历映射表,若两数据版本内容不同则均对应一个不同的哈希值。
6.一种分布式协同设计的数据版本控制装置,其特征在于,包括:
数据库,用于存储数据版本;
总系统,与数据库连接,用于维护数据库中数据版本;
分系统,分别与总系统和数据库连接,用于维护分系统中的数据版本并向主系统提交合并数据版本请求;
子系统,分别与分系统和数据库连接,用于维护子系统中的数据版本并向分系统提交合并数据版本请求。
7.根据权利要求6所述的装置,其特征在于,所述数据库包括数据版本生成模块,用于当有新的数据版本生成时,对该数据的所有版本的所有数据制作成快照并保存此快照索引。
8.根据权利要求6所述的装置,其特征在于,所述总系统包括数据校验模块,用于根据数据内容创建对应的哈希值,若两个数据版本中有内容相同的数据则生成相同的哈希值,若两个数据版本中有内容不同的数据则生成多个不同且唯一的哈希值。
9.根据权利要求8所述的装置,其特征在于,所述总系统还包括版本映射表,用于映射数据库中的最新数据版本和上一数据版本中相同内容的数据,数据版本合并时遍历映射表,若两数据版本内容不同则均对应一个不同的哈希值。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中存储有指令,当所述计算机可读存储介质在计算机上运行时,使得所述计算机执行权利要求1-5中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910909862.9A CN110674114A (zh) | 2019-09-25 | 2019-09-25 | 一种分布式协同设计的数据版本控制方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910909862.9A CN110674114A (zh) | 2019-09-25 | 2019-09-25 | 一种分布式协同设计的数据版本控制方法和装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN110674114A true CN110674114A (zh) | 2020-01-10 |
Family
ID=69079224
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910909862.9A Pending CN110674114A (zh) | 2019-09-25 | 2019-09-25 | 一种分布式协同设计的数据版本控制方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110674114A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113064886A (zh) * | 2021-03-04 | 2021-07-02 | 广州中国科学院计算机网络信息中心 | 一种标识资源存储和标记管理的方法 |
CN113434174A (zh) * | 2021-06-28 | 2021-09-24 | 广联达科技股份有限公司 | 协同项目的配置方法、装置及电子设备 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101807267A (zh) * | 2009-12-09 | 2010-08-18 | 北京科东电力控制系统有限责任公司 | 在综合数据平台中实现分布式协同建模的方法 |
CN102929630A (zh) * | 2012-10-31 | 2013-02-13 | 中标软件有限公司 | 一种基于分布式协同开发环境下的代码管理方法及系统 |
US20130185252A1 (en) * | 2012-01-17 | 2013-07-18 | Jeffrey J. Palmucci | Document Revision Manager |
CN107704505A (zh) * | 2017-08-30 | 2018-02-16 | 北京仿真中心 | 一种基于协同设计的项目及任务数据版本管理方法 |
-
2019
- 2019-09-25 CN CN201910909862.9A patent/CN110674114A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101807267A (zh) * | 2009-12-09 | 2010-08-18 | 北京科东电力控制系统有限责任公司 | 在综合数据平台中实现分布式协同建模的方法 |
US20130185252A1 (en) * | 2012-01-17 | 2013-07-18 | Jeffrey J. Palmucci | Document Revision Manager |
CN102929630A (zh) * | 2012-10-31 | 2013-02-13 | 中标软件有限公司 | 一种基于分布式协同开发环境下的代码管理方法及系统 |
CN107704505A (zh) * | 2017-08-30 | 2018-02-16 | 北京仿真中心 | 一种基于协同设计的项目及任务数据版本管理方法 |
Non-Patent Citations (1)
Title |
---|
李俊男 等: "基于BIM子模型的分布式版本控制研究", 《浙江理工大学学报(自然科学版)》 * |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113064886A (zh) * | 2021-03-04 | 2021-07-02 | 广州中国科学院计算机网络信息中心 | 一种标识资源存储和标记管理的方法 |
CN113064886B (zh) * | 2021-03-04 | 2023-08-29 | 广州中国科学院计算机网络信息中心 | 一种标识资源存储和标记管理的方法 |
CN113434174A (zh) * | 2021-06-28 | 2021-09-24 | 广联达科技股份有限公司 | 协同项目的配置方法、装置及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11003645B1 (en) | Column lineage for resource dependency system and graphical user interface | |
US10140351B2 (en) | Method and apparatus for processing database data in distributed database system | |
JP7090606B2 (ja) | データベース・システムにおけるテスト・データの形成及び動作 | |
US8984013B2 (en) | Conditioning the distribution of data in a hierarchical database | |
US8996453B2 (en) | Distribution of data in a lattice-based database via placeholder nodes | |
US8315174B2 (en) | Systems and methods for generating a push-up alert of fault conditions in the distribution of data in a hierarchical database | |
JP5940560B2 (ja) | データの集合体に対する変更の管理 | |
US20110078199A1 (en) | Systems and methods for the distribution of data in a hierarchical database via placeholder nodes | |
US20080140732A1 (en) | Method and system for sharing file based data | |
Teniente et al. | Updating knowledge bases while maintaining their consistency | |
US20110161374A1 (en) | Systems and methods for conditioned distribution of data in a lattice-based database using spreading rules | |
US20110131176A1 (en) | Systems and methods for generating iterated distributions of data in a hierarchical database | |
US20200057865A1 (en) | Management of co-ownership database system | |
CN111597015B (zh) | 事务处理方法、装置、计算机设备及存储介质 | |
Tsai et al. | Towards a scalable and robust multi-tenancy SaaS | |
US11347701B2 (en) | Live zero downtime migration of databases with disparate schemata | |
US11671262B2 (en) | Asynchronously determining relational data integrity using cryptographic data structures | |
US11526465B2 (en) | Generating hash trees for database schemas | |
US8677376B2 (en) | Expressing equivalency relationships with identity graphs across multiple environments to create change list to be traversed to conform the environments | |
CN114616557A (zh) | 支持数据库中的区块链集合 | |
CN110674114A (zh) | 一种分布式协同设计的数据版本控制方法和装置 | |
WO2012130489A1 (en) | Method, system, and computer program product for maintaining data consistency between two databases | |
Zhu et al. | Towards rich Qery blockchain database | |
Wang et al. | Ess: An efficient storage scheme for improving the scalability of bitcoin network | |
Boehm et al. | EasyWinWin: a groupware-supported methodology for requirements negotiation |
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 | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20200110 |
|
RJ01 | Rejection of invention patent application after publication |