基于NoSQL的PDM版本管理

2016-02-24 09:27:09夏秀峰张赫男
计算机技术与发展 2016年10期
关键词:版本号分层有效性

夏秀峰,张赫男

(1.沈阳航空航天大学 辽宁省通用航空重点实验室,辽宁 沈阳 110136;2.沈阳航空航天大学 计算机学院,辽宁 沈阳 110136)

基于NoSQL的PDM版本管理

夏秀峰1,2,张赫男2

(1.沈阳航空航天大学 辽宁省通用航空重点实验室,辽宁 沈阳 110136;2.沈阳航空航天大学 计算机学院,辽宁 沈阳 110136)

复杂的产品设计中会产生大量的中间版本,而版本模型是版本管理的基础。PDM系统依赖产品版本的管理,保证设计人员可随时访问产品的历史版本,并对设计过程进行回溯,以保证产品在生命周期内的各阶段数据的正确性。通过分析当前PDM版本管理模型存在的不足、基于关系型数据库的版本管理的缺点,提出一种分层图结构的版本构造模型,能够直观、清晰地反映版本之间的关联关系及版本进化历史记录,弥补了现有版本模型的劣势。此外,随着版本数量的增加,PDM中存储的产品数据展示出了大数据的特点,使得关系型数据库(RDB)在数据处理上力不从心。因此,以NoSQL作为底层数据库创建了基于分层图结构的版本模型,利用NoSQL数据库的优势,完善版本管理。依据版本分层图模型的特点,实现了版本追溯、版本合并及版本有效性控制等版本管理功能。

PDM版本管理;NoSQL;分层图模型;版本管理;有效性控制

0 引 言

PDM是一种管理所有与产品相关信息及过程的软件技术,是产品设计与开发过程的一个平台[1]。而PDM系统的版本管理用于管理产品生命周期内的零件、部件及产品等对象产生和变化的整个历程[2]。

产品的设计过程总是分阶段、反复而非线性的。在产品设计过程中产生的大量数据是历史设计知识的重要来源[3]。因此,在整个过程中,设计者希望保留设计过程中产生的所有版本,以便随时访问不同对象在各阶段的版本,从而回溯整个设计过程,及时对设计错误进行修改[4]。因此,应用版本管理解决复杂工程设计中的数据管理难题,是保证设计数据一致性和依赖性的重要手段[5-7]。

通过对PDM版本现状的分析,构建了基于NoSQL的版本分层图模型,弥补了传统版本管理模型的不足,避免了关系数据库对版本管理的灵活性差、扩展性差、性能差等缺点。

1 PDM版本分析

版本是一个对象在设计过程中某一时间点上有意义的快照[8]。版本管理是对版本对象以及版本间关系进行管理。版本对象不是单一存在的个体,每个版本都会有一系列演变版本,而管理版本间的关系,同版本对象的管理同样重要[9]。

1.1 传统PDM版本管理模型分析

产品设计过程中,对设计内容的不断修改,将生成更多新的版本。每个对象的版本是相关联的,都由该对象的基版本演变产生。因此,应清晰表示对象的各版本间的关系。目前,产品设计数据的版本管理有线性模型、树型模型和有向无环图结构模型[10-12],如图1所示。

图1 版本管理模型

线性模型的特点是版本的演变过程以时间为序。除版本根节点外,每个版本有且只有一个父版本;除最新版本节点外,每个版本有且只有一个子版本。该模型比较简单,不能区分替换版本和修订版本的差别,也不能完整体现版本的逻辑关系。

树型模型的特点是层次清晰,除根节点无父版本外,其余节点有且只有一个父版本。该结构主要体现在产品设计流程中,以基版本为基础,各版本不断演化的关系。版本的树型模型的局限性在于它不能反映版本合并情况(多个版本合并成一个新的版本)。

有向无环图描述模型的特点是该模型可以清晰表示版本的历史信息,弥补了树型模型的不足,可以反映版本的合并情况,完整地表示出版本间逻辑关系及版本间的依赖性,是一个比较完善的版本模型。但该模型失去了树型结构的层次性,对于版本间关系体现不够清晰。

为了能形象、完整地反映出产品设计过程中版本之间的逻辑关系和依赖关系,清晰地显示版本演化过程,并将版本间关系真实、直观地描述出来,应探索新的模型来展现版本间复杂的关联关系,以便设计者从整体上把握产品设计过程。

1.2 基于NoSQL的PDM版本管理

目前,PDM皆基于关系型数据库(RDB)予以实现,其版本管理自然也采用RDB进行管理。随着大数据时代的到来,RDB对于复杂、多样的数据表现出灵活性差、扩展性差、性能差等不足[13],采用NoSQL作为PDM的底层支撑环境是一个有益的探索和研究。从版本的组织模型上看,由于呈现明显的非结构化特征,因而基于RDB的PDM版本管理对于版本增加、修改、合并等操作显得力不从心。

NoSQL技术可以可从根本上解决RDB严格的事务管理所造成的数据库高负载时的效率低下问题;key-value存储方式使数据库操作不再是多二维表的关联查询,更多的是单表的逐渐查询及单表的简单条件查询,提高了访问速度;灵活的数据模型也解决了非结构化数据的存储问题。对于版本的增加、修改、合并,只需相应改变其键值对即可,既不需遍历多个关系,也不需要修改关系的内容,因而能更好地实现版本间复杂的关系及频繁的修改操作。

2 基于NoSQL的PDM版本分层图模型

2.1 模型定义

基于有向无环图结构,文中提出了对产品版本模型进行分层处理的思想,即对版本间的逻辑关系按层次进行划分,进而形成版本的分层图模型。其中,节点表示版本单元,两个节点之间的有序关系表示前驱版本和后继版本的继承关系,前驱的版本号、版本所在的层数及后继版本号信息,采用权值的方式进行描述。

定义1:分层图。定义分层图NW={V,E}为一个二元组,V={v0,v1,…,vm}(m=1,2,…,m)为版本节点的集合,v0为初始版本,v1,…,vm分别为v0的后继版本。E={e1,e2,…,en}为连接边的集合,其中ek=(vi,vj)(k=1,2,…,n;i,j=1,2,…,m)表示版本节点vi指向版本节点vj的连接边,vi表示为vj的一个直接前驱节点,vj表示vi的一个直接后继节点。

定义3:版本号。WV={wv1,wv2,…,wvm}为版本号集合,vq为vk的直接前驱版本集,记为Pre(vk)=(vq:WVq)(WVq⊆WV,且WVq为vq的版本号);vh为vk的直接后继版本集,记为Post(vk)=(vh:WVh)(WVh⊆WV,且WVh为vh的版本号)。

定义4:图节点的层数。设从根节点到当前节点有n多条路径可达,第i条路径的长度为Ci,定义图节点的层数C=max{Ci|i=1,2,…,n}。

以航空制造领域为例,产品结构十分复杂,因此在生产设计过程中,中间版本数量大、版本间关系也非常复杂。以一个发动机叶片为例,其版本间的结构关系如图2所示。

图2 某发动机叶片的版本关系图

采用以上数学方法可以描述为:

V={v0,v1,…,v6};

E={(v0,v1),(v0,v2),(v1,v3),(v1,v4),(v2,v4),(v2,v5),(v2,v6),(v3,v6),(v4,v6)};

C=2。

根据以上定义所构建的分层图结构模型,集中了当前三种版本模型的优点,弥补了各自不足,且能更形象地描述出各版本对象的演变过程及各版本间关系。

2.2 节点组织

版本数据组织是版本模型的构建基础。文中设计了基于NoSQL(以MongoDB为例)的版本节点数据组织,简化了数据结构和表的数量,提高了处理效率,如图3所示。

图3 版本节点组织图

根据分层图模型,版本节点信息由节点数据和权值数据组成。版本信息及零部件信息存储在节点中,其中,版本信息主要包括版本名、版本号、版本使用人、版本状态、该版本所在项目号、版本有效条件、修改人、修改时间等;零部件信息主要包含零部件ID信息、零部件名称信息、图号信息、设计者信息、设计时间信息等。权值数据表示为弧终点节点所在层数。

版本节点在非RDB中采用集合嵌套形式进行存储,而在RDB中,用表结构存储以上节点信息和节点间关系(如表1所示)。

表1 关系数据库表结构

在传统RDB下,通常采用的是固定分配数据方式进行存储,且将数据结构化,不免导致部分空字段浪费,且在数据处理过程中,修改、删除、更新数据要遍历所有关联表,造成巨大的系统开销,处理效率严重降低。

综上,该版本数据组织灵活简单、结构清晰,使用NoSQL进行数据存储更贴近实际操作需求,方便版本扩展。

2.3 版本存储

文中选择十字链表作为分层图模型的存储结构,可以清晰表示版本信息与版本间关系,且更方便版本追溯的操作。以图2为例,其十字链表存储结构如图4所示。

图中,用十字链表存储版本分层图模型,可以迅速准确地查找版本的直接前驱版本和直接后继版本。以版本v4为例,其前驱版本由边节点可迅速查找到v1和v2节点,而后继版本v6可通过v4的顶点节点来追溯获得。

图4 分层图模型的十字链表存储结构

3 基于NoSQL的PDM版本分层图模型管理

版本管理是PDM系统的重要部分,反映设计过程中设计对象不断演变的动态变化[2]。因此,对于上述建立的版本分层图模型,需进行的管理有版本分层图模型重构、版本分层图模型追溯、版本合并以及版本的有效性管理。版本分层图模型的重构要保证重构的版本模型准确、直观;版本的追溯要保证追溯耗时短且精准;版本的合并要保证版本间的内容与关系准确;版本的有效性控制要实时保证版本有效。

3.1 版本分层图模型的重构

版本结构图信息完全记录在数据库中,但为了直观、形象地显示版本之间的发展历程,需要根据数据库中的记录重构出版本间的关联结构图[14]。

最简单的重构方法是:依据NoSQL数据库(Key_Value)键值对的存储特点,对零部件及版本信息进行相应的检索,记录节点检索顺序、版本节点信息和版本节点关系信息。这样做的目的是保证版本分层图模型重构的准确。但是这种方式的不足之处在于节点位置混乱,且结构不规整。

为保证重组的图结构模型直观、完整,对版本分层图模型进行重构,使节点均匀、准确地分布在各个层之间而不发生混乱。

(1)

3.2 基于分层图模型的版本追溯

版本追溯需对版本演变的历史过程进行快速、准确地追溯。基于版本分层图结构模型的版本追溯步骤如下:

(1)检索位置:通过版本分层图结构模型检索版本所在的位置。

(2)查找:根据版本十字链表存储特点,依次查找该版本的前驱版本集合与后继版本集合。

(3)读取:依次读取该版本所有前驱版本与后继版本的版本号,并记录版本间关系,实现版本追溯。

采用十字链表存储结构,方便快速追溯版本历程。随着版本数量的增加,十字链表机构特点变得更有优势。

3.3 基于网结构模型的版本合并

在零部件设计过程中,对已存在的两个或两个以上的版本进行方法、思想的合并,或是内容的合并,产生新的版本,即为版本合并。图5为版本合并图。

图5 版本合并图

版本合并步骤如下:

(1)分配版本号:首先根据版本分层图模型确定最新版本号,然后由版本号分配规则,进而确定合并版本的版本号。

(2)添加:在合并版本节点信息中,添加该版本零部件信息、版本属性信息与直接前驱版本信息、直接后继版本信息。

(3)插入:修改该合并版本的直接前驱版本节点的后继节点信息,插入该合并版本。

版本合并中添加前驱版本号集合,只需在MongoDB数据库中添加相应集合,而在关系型数据中不仅仅是添加了一条数据,还要对具有该属性的多个表结构进行相应修改。因此,对于版本合并特点,NoSQL数据库更为适合。

3.4 基于版本分层图模型的有效性控制

在生产设计过程中,产品的零部件信息修改频繁,导致一个零部件具有多个版本。并且客户需求使得零部件版本的有效性不同。对版本的有效性进行配置,是版本管理的重中之重[15]。

有效性是更改的生效零部件进行控制,零部件的更改和具体客户是紧密相联的,且零部件的每次更改都会产生相应的版本。一个更改应用到哪些产品,或更改对于产品的生产流程有变化,必须对相应的产品进行版本的有效性配置,以便及时对产品过程进行调整。版本有效性是一个中心环节,将更改、客户、构型等信息组成一个有机结合的统一整体。因此,有效性是体现并落实更改的必须途径和唯一手段。

版本的有效性,它是一个相对概念,即一段时间内,版本有效,它并不是持续连续的。版本有效性通过相应的产品有效体现。

零部件之间的相互整合进而形成产品,根据零部件及其版本的有效性不同,直接影响产品的构成。所以对版本有效性控制的管理,是保证产品生产的必要条件。

4 基于NoSQL的PDM版本分层图模型维护

对版本分层图模型进行维护,是保证模型持久正确的唯一手段。由于版本的自身特性,版本的维护只有增加、修改操作。所有版本均不能被删除。

4.1 版本的添加

添加一个新版本时,判断该版本是否为合并版本。对相应的版本做出相应的方法选择。

(1)非合并版本的添加。首先对版本模型进行分析,得到当前版本的版本号,再根据版本号规则,进而确定新版本的版本号。然后确定版本添加位置,添加新版本。以图2为例,新版本为v3节点下的版本v7。代码如图6所示(以MongoDB为例)。

(2)合并版本的添加。需根据版本合并方法进行处理。

4.2 版本的修改

版本修改主要包括两点:一是对版本中零部件信息的修改;二是对版本的属性信息进行相应修改。

(1)对版本零部件信息的修改,需保留修改前的版本。因此,要增加版本节点,生成新版本,不可直接更改版本内部零部件信息。

图6 版本添加代码

(2)对版本属性信息的修改,无需保留修改前版本,可直接对其进行修改,覆盖原有文件。例如,节点版本v8,版本号设置错误,只需直接修改版本号即可。代码如下:

>db.version.update({version_name:“v8”},...{“$set”:{version_state:“发放版本”}})

5 结束语

基于NoSQL数据库的PDM版本管理是文中研究内容的重点。采用分层图模型对复杂版本间的关系进行处理,这样可以直观、清晰地表示版本演变过程,使结构更加合理。基于版本数据特点,采用NoSQL数据库,更方便对版本进行版本追溯、版本合并以及版本有效性控制。最终实现对产品设计流程的掌握,更好地对设计过程中的版本进行管理。

[1] 张劲松,刘清华,钟毅芳,等.基于PDM的版本管理研究[J].华中科技大学学报:自然科学版,2001,29(12):33-36.

[2] 高奇微,莫欣农.产品数据管理(PDM)及其实施[M].北京:机械工业出版社,1998.

[3] 冯国奇,崔东亮,王成恩,等.一种基于网状版本模型的复杂产品设计数据管理方法研究[J].管理工程学报,2009,23(1):82-87.

[4] 童秉枢,李建明.产品数据管理(PDM)技术[M].北京:清华大学出版社,2000.

[5]LeeSW,AhnJH,KimHJ.Aschemaversionmodelforcomplexobjectsinobjectorienteddatabases[J].JournalofSystemArchitecture,2006,52(10):563-577.

[6]DanilovicM,BrowningTR.Managingcomplexproductdevelopmentprojectswithdesignstructurematricesanddomainmappingmatrices[J].InternationalJournalofProjectManagement,2007,25(3):300-314.

[7]OshriI,NewellS.Componentsharingincomplexproductsandsystems:challenges,solutions,andpracticalimplications[J].

IEEETransactionsonEngineeringManagement,2005,52(4):509-521.

[8]BaEH,HuWC,YoOWS.Documentconfigurationcontrolprocessescapturedinaworkflow[J].ComputersinIndustry,2004,53(2):117-131.

[9]MezianeF,RezguiY.Adocumentmanagementmethodologybasedonsimilaritycontents[J].InformationSciences,2004,158(1):15-36.

[10] 徐立臻,徐宏炳.面向对象数据库系统中的版本管理[J].东南大学学报:自然科学版,1999,29(3):34-38.

[11] 张 维,何卫平,刘 平,等.PDM实施中的版本管理研究与应用[J].组合机床与自动化加工技术,2001(6):11-12.

[12] 刘方鑫,李 毅.变量化图形CAD系统中的版本管理[J].计算机应用,2000,20(S):111-112.

[13] 陆嘉恒.大数据挑战与NoSQL数据库技术[M].北京:电子工业出版社,2013:7-8.

[14] 冯向兵,莫 蓉,桂元坤.PDM中版本管理的图模型表达方法与实现技术[J].航空制造技术,2008(12):89-92.

[15] 夏秀峰,富 钢,丛丽晖,等.一种基于SQL的层次查询方法[J].微处理机,2001(1):42-44.

Version Management of PDM Based on NoSQL

XIA Xiu-feng1,2,ZHANG He-nan2

(1.Key Lab of General Aviation of Liaoning Province,Shenyang Aerospace University, Shenyang 110136,China; 2.School of Computer Science,Shenyang Aerospace University,Shenyang 110136,China)

The complex product design will produce a large amount of intermediate version,and the version of the model is the basis of version management.Product Data Management (PDM) system depends on version management,which makes sure that the design personnel can access to the product version of history at any time.And back to the design process,to ensure that products in the stages of life cycle data is correct.As analyzing the shortage of existing version management model of PDM,a new version model of the hierarchical structure is proposed,which can reflect the relationship between the version and the version history clearly and intuitively and make up for the disadvantages of version model.With the increasing of version number,product data stored in PDM shows the characteristics of big data,making the RDB incapable on data processing.So the version model based on hierarchical structure is constructed with NoSQL as the underlying database,taking the advantages of NoSQL to improve the version management.According to the characteristics of the model,the version management functions like version tracking,version merging and effective version control are realized.

version management of PDM;NoSQL;hierarchical graph model;version management;validity control

2016-02-06

2016-05-11

时间:2016-09-19

航空科学基金(2013ZG54032)

夏秀峰(1964-),男,博士,教授,CCF高级会员,研究方向为数据库理论与技术;张赫男(1991-),女,硕士研究生,研究方向为管理信息系统与数据库。

http://www.cnki.net/kcms/detail/61.1450.TP.20160919.0842.044.html

TP31

A

1673-629X(2016)10-0022-05

10.3969/j.issn.1673-629X.2016.10.005

猜你喜欢
版本号分层有效性
如何提高英语教学的有效性
甘肃教育(2020年6期)2020-09-11 07:45:28
制造业内部控制有效性的实现
提高家庭作业有效性的理论思考
甘肃教育(2020年12期)2020-04-13 06:24:56
一种沉降环可准确就位的分层沉降仪
工程与建设(2019年2期)2019-09-02 01:34:14
认识vSphere安装程序
雨林的分层
有趣的分层
深入浅出 全面获知系统版本号
船舶严重横倾时应急行动的有效性
中国航海(2014年1期)2014-05-09 07:54:30
多种方法查看系统版本号
电脑迷(2014年8期)2014-04-29 08:53:03