CN106990978A - 从产品生命周期管理(plm)系统向源代码管理(scm)系统导出分层数据 - Google Patents
从产品生命周期管理(plm)系统向源代码管理(scm)系统导出分层数据 Download PDFInfo
- Publication number
- CN106990978A CN106990978A CN201610979835.5A CN201610979835A CN106990978A CN 106990978 A CN106990978 A CN 106990978A CN 201610979835 A CN201610979835 A CN 201610979835A CN 106990978 A CN106990978 A CN 106990978A
- Authority
- CN
- China
- Prior art keywords
- module
- plm
- data
- scm
- systems
- 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
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q10/00—Administration; Management
- G06Q10/06—Resources, workflows, human or project management; Enterprise or organisation planning; Enterprise or organisation modelling
- G06Q10/063—Operations research, analysis or management
- G06Q10/0631—Resource planning, allocation, distributing or scheduling for enterprises or organisations
- G06Q10/06313—Resource planning in a project environment
-
- 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/25—Integrating or interfacing systems involving database management systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- 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)
- Business, Economics & Management (AREA)
- Theoretical Computer Science (AREA)
- Human Resources & Organizations (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Economics (AREA)
- Entrepreneurship & Innovation (AREA)
- Strategic Management (AREA)
- Computer Security & Cryptography (AREA)
- Databases & Information Systems (AREA)
- Educational Administration (AREA)
- Tourism & Hospitality (AREA)
- Quality & Reliability (AREA)
- General Business, Economics & Management (AREA)
- Game Theory and Decision Science (AREA)
- Development Economics (AREA)
- Operations Research (AREA)
- Biodiversity & Conservation Biology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Marketing (AREA)
- Data Mining & Analysis (AREA)
- Stored Programmes (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
传统上,PLM系统和SCM系统没有被链接。在一个实施例中,一种计算机方法包括:响应于将模块从产品生命周期管理(PLM)系统传递到源代码管理(SCM)系统的用户请求,从在PLM系统处的处理器提取来自PLM系统的数据源的对模块、模块的版本、以及模块的分层关系进行表示的数据。此外,该方法还包括:创建具有对这些模块、这些模块的版本、以及这些模块的分层关系进行表示的所提取数据的SCM系统模块。因此,PLM系统可以在于该PLM系统处受控的过程中,将模块导出到SCM系统。
Description
相关申请
本申请与下面共同提交的申请有关:
Ian Dobinson和Peter Haynes与本申请在同一天提交的、标题为“ExportingHierarchical Data From A Source Code Management(SCM)System To A ProductLifecycle Management(PLM)system”的美国申请(代理人案卷号为No.4659.1019-000),该申请已经转让给共同的受让人;
Ian Dobinson和Peter Haynes与本申请在同一天提交的、标题为“Bi-Directional Synchronization Of Data Between A Product Lifecycle Management(PLM)System And A Source Code Management(SCM)System”的美国申请(代理人案卷号为No.4659.1021-000),该申请已经转让给共同的受让人。
上述申请的全部教导通过引用并入本文。
背景技术
硬件开发者(特别是在集成电路设计团队中)通常应用分层开发方法(hierarchical development approach)来进行设计,在分层开发方法中,高层级产品对子产品进行引用,或者高层级产品是用子产品来构建的。类似地,软件开发者通常使用分层结构(hierarchy),其中较高层级的软件组件利用了可重复使用的软件模块。
源代码管理(SCM)系统在其最基础的层级处,提供用于对存储在存储器或数据库中的数据文件集进行版本控制的方式,其允许跟踪这些文件的随时间的改变。SCM系统的例子有:
a)系统,其是Dassault Systemes的缺陷管理与协作产品的一部分;
b)公众可获得的并发版本系统(CVS);
c)公众可获得的GIT修订控制系统;以及
d)具有商家支持的可获得的subversion and perforce系统。
分层SCM系统是其中数据文件可以作为包或者模块来管理的系统,所述包或模块可以包含很大数量的个体文件。这些模块或包还可以引用其它模块或包以形成数据的分层结构。
产品生命周期管理(PLM)系统提供用于对产品的整个生命周期进行管理的过程,其从开始、工程设计、制造,以至到所制造产品的服务和废弃处置。PLM系统整合了人员、数据、处理和商业系统,为公司和它们的扩展企业提供产品信息骨干。PLM系统将数据表示成一系列通过关系来连接的对象。例如,第一对象可以表示开发中的产品,其与表示正在开发该产品的组织的第二对象具有关系。这些对象还可以支持用于表示这些对象的不同发布版的修订(或版本),或者表示该对象的开发状态(例如,不同修订可以表示一个芯片的1.0版本或者该芯片的稍后2.0版本,或者还可以表示正在进行之中的朝向未来发布版的工作)。此外,这些对象还可以经由相同或相似类型的对象之间的关系,来支持分层结构。例如,表示一个芯片的对象可以具有与表示作为该芯片的一部分的CPU模块的对象的关系。在平台旗帜之下的Dassault Systemes所提供的应用,提供了PLM系统的一个例子。
发明内容
在本发明的实施例中,一种系统和方法提供了用于将分层的数据块集合的描述,从SCM系统传送(pass)到PLM系统的方案。在本发明的实施例中,一种系统和方法将数据从PLM系统传递(transfer)到支持分层设计的SCM系统。在本发明的实施例中,一种系统和方法发明手动地或者自动地将数据块的分层集合的描述,从PLM系统传送到SCM系统或者从SCM系统传送到PLM系统。
传统上,PLM系统和SCM系统并没有被链接。至少一些已知的解决方案提供用于对这两个系统中的数据进行链接的方式,提供用于将数据从SCM系统拉取到PLM系统中的有限支持。但是,先前的方式并不是高效的,在功能上是受限的,并且不允许从SCM系统对流进行控制,不允许在PLM系统中定义数据结构并随后向下推送到SCM系统中,或者不能如本发明的实施例中所示随着在另一个系统中修改了相对应的数据而自动地更新一个系统中的数据。
SCM到PLM
本发明的实施例描述了用于将数据从支持分层设计的SCM系统传递到PLM或者类似系统的方式。传送该数据包括:从SCM系统中提取数据,将该数据转换成便携式格式,所述便携式格式包括分层连接以及关于这些连接是子块的特定发布版还是开发中的版本的细节。
此外,该系统还对数据进行定制,使得该系统的各个实现能够提供目标PLM系统的对象所需要的数据。随后,该系统将数据传递到PLM系统中。
该系统创建PLM系统中的对象,其表示来自SCM系统的数据块和它们的版本,以及它们之间的分层连接。
此外,该系统还基于经由SCM系统上的定制功能传送过的另外数据,对在PLM系统中创建的数据的类型、用于连接它们的关系、以及PLM系统中的对象进行定制。
随后,该系统将已经创建的这些对象(其等同于SCM数据对象)上的信息传送回SCM系统,使得该信息可以被存储以用于跟踪目的。
在本发明的一个实施例中,根据SCM系统中的数据来在PLM系统中创建新数据。
本发明的一个实施例提供了对来自SCM系统的数据传递的初始化和控制。这允许高级定制和控制能力。此外,该系统还提供用于在SCM系统上存储跟踪信息的方案。
SCM系统对于定义系统级对象和它们的分层关系的数据进行管理。因此,在SCM系统中创建数据时,将该数据从SCM系统中插入到PLM系统是有利的。现有的解决方案并不提供如在本发明的实施例中使用从SCM系统进行控制的过程在PLM系统中直接创建数据的手段。
不同的PLM系统针对各个对象和不同的SCM系统或者特定SCM系统的不同实现,保持不同类型的信息(例如,特性/属性)。PLM系统访问可以用于填充PLM系统中的信息的不同数据集。因此,在本发明的实施例中,当从SCM系统向PLM系统传递数据时,该系统可以汇总、生成和提供该另外的信息。此外,现有的解决方案并不支持在创建数据和设置相关联的属性时的详细定制。
一旦将数据传递到PLM系统,则SCM保持与所创建的对象的链接。从SCM系统到PLM系统的链接,能够通过允许SCM系统直接链接到PLM系统中的等同对象来实现高级功能。例如,SCM系统可以实现直接显示等同的PLM系统对象的功能(如果SCM系统知道该对象是什么的话)。现有的解决方案并不提供该跟踪(例如,痕迹(breadcrumb))信息在SCM系统中的存储。
PLM到SCM
本发明的实施例是用于将分层的数据块集合的描述,从PLM系统传送到SCM系统的方案。传送该描述包括:将来自PLM系统的数据提取成便携式格式,其包括:分层连接,以及关于这些连接是子块的特定发布版还是开发中的版本的细节。此外,该系统还对数据进行定制,使得该系统的各个实现能够提供可以由目标SCM系统所使用的数据。此外,该系统还将该数据传递到SCM系统中。此外,该系统还创建SCM系统中的容器对象(containerobject),其表示来自SCM系统的对象,以及它们之间的分层连接。此外,该系统还基于经由PLM系统上的定制功能所传送的另外数据,对在SCM系统中的对象进行定制。此外,该系统还将已创建的这些对象(其等同于PLM数据对象)上的信息传送回PLM系统,使得该信息可以被存储以用于跟踪目的。
PLM系统中的数据用于多种操作,例如,用于跟踪包括产品的构件的开发状态,跟踪针对包括产品的任何构件所发现的问题(例如,缺陷(defect)、程序缺陷(bug))。
在很多情况下,使用汇总数据来获得产品的总体状态。例如,诸如计算机芯片之类的产品可以由多个部件(例如,随机存取存储器(RAM)和中央处理单元(CPU))来构成。如果发现了针对于CPU的问题,出现了相对应的缺陷,则芯片的管理员期望累积的报告,其中该报告指示该缺陷存在于某个子部件之中并因此影响该芯片。因此,PLM系统中的数据,特别是较高层级的产品对于子块的分层连接/使用,在该系统中被准确地跟踪。
可以将PLM系统视作为用于定义设计的模块以及它们之间的分层关系的主控方(master)。也就是说,该设计的结构在PLM系统中创建,并且SCM系统被用来管理用于包括该结构的模块的各个数据文件。SCM系统包含其自己的对象来表示设计的模块以及它们之间的分层关系,使得SCM系统的用户可以取回包括该设计的正确数据集,并对该数据来执行他们的操作。
本发明的实施例提供了用于使用在PLM系统中合并的定义,在SCM系统中创建这些模块以及它们之间的连接的能力。现有的解决方案并不提供使用从PLM系统进行控制的过程来在SCM系统中直接创建数据的手段。
不同的PLM系统针对各个对象,存储不同类型的信息(例如,特性/属性),并且不同的SCM系统可以存储根据PLM系统中的信息所定义的不同数据集。在本发明的实施例中,足够灵活地从PLM系统向SCM系统传送数据,以处理该另外的信息。此外,现有的解决方案并不支持在创建数据和设置相关联的属性时的详细定制。
一旦将数据传递到SCM系统,则PLM系统保持与所创建的对象的链接,SCM系统维持PLM系统中的等同的源对象的知识。这通过允许SCM系统直接链接到PLM系统中的等同对象而实现了高级功能。例如,SCM系统可以实现用于直接显示等同的PLM系统对象的功能(如果SCM系统知道该对象是什么的话)。现有的解决方案并不提供该跟踪(例如,痕迹(breadcrumb))信息在SCM系统中的存储。本发明的实施例根据PLM系统中的数据,在SCM系统中创建新的数据。
本发明的一个实施例通过以下方式,改进现有的可用解决方案:
a)允许对来自PLM系统的数据传递的初始化和控制;
b)允许基于PLM系统信息,在SCM系统中创建新的容器对象(例如,DesignSync系统中的模块)或者现有的对象的新分支;
c)提供高级定制和控制能力;以及
d)提供用于在SCM和PLM系统上存储跟踪信息的方案。
从PLM到SCM的自动更新或者从SCM到PLM的自动更新
本发明的一个实施例手动地或者自动地将分层的数据块集合的描述,从PLM系统传送到SCM系统或者从SCM系统传送到PLM系统。该系统通过使用上面所描述的系统,提取一个系统上的数据,并将该数据传递到另一个系统,来传送这些描述。此外,该系统还提供对于先前所描述的系统的扩展,以允许增量地更新目标系统上的数据。对于上面所描述的系统的扩展,还允许用户以一方的数据为开始来手动地发起更新。此外,该系统还自动地识别改变,并在两个系统之间对它们进行同步。
在一个实施例中,本发明允许在PLM或SCM系统上持续进行开发分层数据,并进行该数据的持续同步。在一个实施例中,本发明还允许对该数据进行自动地同步,因此防止由于在任何一个系统中存在过期信息而造成的任何问题。
在一个实施例中,一种系统将数据从PLM系统传递到支持分层设计的SCM系统,反之亦然。在这些实施例中,由用户发起该传递,并且该传递旨在针对于数据在系统之间的初始推送。该系统手动地或者自动地,对两个系统上的数据进行更新,并对该数据进行同步。
一种分层SCM系统允许将数据文件作为包或者模块来管理,其中这些包或者模块可以包含很大数量的个体文件。这些模块可以引用其它模块以形成数据的分层结构。
SCM系统存储其自己的对象,其中该对象表示设计的模块以及它们之间的分层关系,使得SCM系统的用户可以取回包括该设计的正确数据集,并对该数据执行操作。
随着时间,结构的定义可能以多种方式发生改变。例如,使用PLM系统的产品的架构,可以决定在通常由该设计中的某个其它团队所提供的附加的块或者替代的IP块(例如,模块、设计段、或者知识产权(IP)构件)上使用。再举一个例子,为了实现目的,使用SCM系统的产品的开发者,可以决定将一个块分割成两个部分。再举一个例子,对该设计方案的子块中的一个进行开发的团队,可能发布该模块的一个新版本,并决定在父产品中使用该新版本。
当使用本发明的实施例时,这些改变可以在开发期间的任何时间执行,并且这些改变可以从PLM系统或者SCM系统来发起。如果仅仅在这些系统中的一个系统上进行针对结构的改变,则可能面临挑战。例如,在PLM系统中做出却不在SCM系统中做出的改变,可能导致构建错误的产品,伴随着对于产品可靠性或者功能的灾难性影响。再举一个例子,在SCM系统中做出但不在PLM系统中做出的改变,可能导致对问题或者IP使用的不正确跟踪。这可能造成IP许可问题或者缺少准确的问题跟踪,其可能导致产品可靠性问题(在不具有现有程序缺陷的知识的情况下发运的产品)。
现有的解决方案并不提供用于根据另一个系统中的源定义,来手动地或者自动地增量式更新一个系统中的数据的手段。
在一个实施例中,一种计算机方法包括:响应于将模块从产品生命周期管理(PLM)系统传递到源代码管理(SCM)系统的用户请求,从在PLM系统的处理器处提取来自PLM系统的数据源的对模块、这些模块的版本、以及这些模块的分层关系进行表示的数据。此外,该方法还包括:创建具有对这些模块、这些模块的版本和这些模块的分层关系进行表示的所提取数据的SCM系统模块。
在一个实施例中,该计算机方法还包括:通过取回为了创建所述SCM系统模块所需要的与所述SCM系统的数据模块要求相匹配的另外信息,对所述提取的数据进行定制以匹配所述数据模块要求。创建SCM系统模块可以采用所定制的提取的数据。
在一个实施例中,该计算机方法包括:将PLM系统的标识映射到SCM系统的相对应标识。PLM系统的标识和SCM系统的相对应标识可以是不同的标识符,并且还表示相同的用户实体。
在一个实施例中,该计算机方法包括:在所创建的SCM系统模块中提供痕迹(breadcrumb),所述痕迹具有到PLM系统的模块的链接。此外,该方法还包括:响应于更新请求,通过访问所述痕迹,将所创建的SCM系统模块的版本与PLM系统的所被链接的模块的版本进行比较。如果PLM系统的模块是较新的版本,该方法还将SCM系统模块更新为PLM系统的模块的该较新的版本。
在一个实施例中,创建所述SCM系统模块包括:从PLM系统的数据源,创建与模块的分层关系相对应的多个SCM系统模块。
在一个实施例中,一种计算机系统包括提取模块,其被配置为:响应于将模块从产品生命周期管理(PLM)系统传递到源代码管理(SCM)系统的用户请求,从在PLM系统处的处理器提取来自PLM系统的数据源的对模块、这些模块的版本、以及这些模块的分层关系进行表示的数据。在一个实施例中,创建模块被配置为创建具有对这些模块、这些模块的版本和这些模块的分层关系进行表示的所提取数据的SCM系统模块。
此外,该计算机系统还包括定制模块,其被配置为:通过取回为了创建所述SCM系统模块所需要的与所述SCM系统的数据模块要求相匹配的另外信息,对所述提取的数据进行定制以匹配所述数据模块要求。创建SCM系统模块可以使用所定制的提取的数据。
该计算机系统包括映射模块,其被配置为将PLM系统的标识映射到SCM系统的相对应标识。PLM系统的标识和SCM系统的相对应标识可以是不同的标识符,并且还表示相同的用户实体。
在一个实施例中,该系统包括痕迹(breadcrumb)模块,其被配置为在所创建的SCM系统模块中提供痕迹,所述痕迹具有到PLM系统的模块的链接。此外,该计算机系统还可以包括比较模块,其被配置为响应于更新请求,通过访问所述痕迹,将所创建的SCM系统模块的版本与PLM系统的所被链接的模块的版本进行比较。如果PLM系统的模块是较新的版本,则比较模块可以将SCM系统模块更新为PLM系统的模块的较新的版本。
在一个实施例中,创建SCM系统模块包括:从SCM系统的数据源,创建与这些模块的分层关系相对应的多个PLM系统模块。
在一个实施例中,被配置为存储用于创建源代码管理(SCM)系统模块的指令的非暂态计算机可读介质。所述指令当被处理器加载和执行时,致使所述处理器执行以下操作:响应于将模块从产品生命周期管理(PLM)系统传递到源代码管理(SCM)系统的用户请求,从在PLM系统处的处理器提取来自PLM系统的数据源的对模块、这些模块的版本、以及这些模块的分层关系进行表示的数据。此外,这些指令还致使所述处理器创建具有对这些模块、这些模块的版本和这些模块的分层关系进行表示的所提取数据的SCM系统模块。
在一个实施例中,这些指令还致使所述处理器:通过取回为了创建所述SCM系统模块所需要的与所述SCM系统的数据模块要求相匹配的另外信息,对所述提取的数据进行定制以匹配所述数据模块要求。创建SCM系统模块可以采用所定制的提取的数据。
在一个实施例中,这些指令还致使所述处理器:将PLM系统的标识映射到SCM系统的相对应标识。PLM系统的标识和SCM系统的相对应标识可以是不同的标识符,并且还表示相同的用户实体。
在一个实施例中,这些指令致使所述处理器:在所创建的SCM系统模块中提供痕迹,所述痕迹具有与PLM系统的模块的链接。这些指令还可以致使所述处理器响应于更新请求,通过访问所述痕迹,将所创建的SCM系统模块的版本与PLM系统的所被链接的模块的版本进行比较。如果PLM系统的模块是较新的版本,则所述处理器可以将SCM系统模块更新为PLM系统的所述模块的较新的版本。
附图说明
通过对于如附图中所示出的本发明的示例性实施例的下面更详细描述,前述的内容将变得显而易见,其中,贯穿不同的视图,相同的附图标记指代相同的部件。这些附图不必依比例进行绘制,而是将重点放在说明本发明的实施例。
图1是示出本发明的示例性实施例的框图。
图2是示出PLM系统中的分层结构的示例性实施例的框图。
图3是示出根据本发明的实施例从SCM系统到PLM系统的发送模块的框图。
图4是示出本发明所采用的过程的示例性实施例的流程图。
图5是示出将PLM系统对象数据导入到SCM系统中的示例性实施例的框图。
图6是示出由本发明所采用的用于将数据从PLM系统导入到SCM系统中的过程的示例性实施例的流程图。
图7是示出由本发明采用的过程的示例性实施例的流程图,该过程在其它系统中的相对应模块发生改变时自动地更新SCM或PLM系统中的导入信息。
图8是其中可以实现本发明的实施例的计算机网络或者类似数字处理环境。
图9是图8的计算机系统中的计算机(例如,客户端处理器/设备或者服务器计算机)的示例性内部结构的图。
具体实施方式
下面将描述本发明的示例性实施例。
图1是示出本发明的示例性实施例的框图100。用户102采用与第一管理系统106和第二管理系统108相耦合的接口系统104。第一管理系统106和108的例子可以分别是SCM或者PLM。SCM和PLM二者都使用模块的分层集合来形成源代码解决方案(在SCM的情况下),或者形成产品(在PLM的情况下)。在很多情形下,PLM中的产品(例如,芯片)可能需要其设计中的源代码,并且源代码设计可能需要硬件资源。因此,可能期望用于将模块从第一管理系统106向第二管理系统108导入的系统。
第一管理系统106和第二管理系统108与可以可选地存储在相应的云网络110a-c和114a-c中的相应模块数据库112a-c和116a-c相耦合。在实施例中,模块数据库112a-c和116a-c还可以本地存储(没有示出),或者存储在单个远程服务器(没有示出)上,或者存储在多个远程服务器(没有示出)上。用户102经由接口系统104,引导用于导入的模块118从第一管理系统106发送到第二管理系统108。第一管理系统106还向第二管理系统108发送支持数据(supporting data)122。支持数据122可以包括关于模块118的分层信息,支持模块以及关于这些模块的痕迹信息。
此外,在一个实施例中,第一管理系统106和第二管理系统108可以向彼此发送相应的自动更新120a-b。在一个系统上修改导入的模块时,自动更新120a-b被发送,使得需要在另一个系统进行更新。下面进一步详细描述自动更新120a-b。
图2是示出PLM系统中的分层结构的示例性实施例的框图200。该示例性分层结构包括与随机存取存储器(RAM)204和中央处理单元(CPU)206二者相关的芯片202。芯片202具有与RAM 204和CPU 206的“使用”关系,其指示RAM 204和CPU 206是芯片202的子组件。
PLM系统中的数据用于操作,例如,对构成产品的构件(例如,芯片202、RAM 204和CPU 206)的开发状态进行跟踪。此外,PLM还可以对关于构成该产品的构件(例如,芯片202、RAM 204和CPU 206)所发现的问题208(例如,缺陷/程序缺陷)进行跟踪。问题208指示在CPU206中发现的问题。问题208还可以指示作为问题208的结果而引起的缺陷210。由于问题208直接与CPU 206有关,故将缺陷210链接到CPU 206。此外,缺陷210还具有与芯片202的‘影响’关系,这是由于CPU 206是芯片202的子组件,所以CPU 206的缺陷210影响了芯片202。
在这些情况中的大部分情形下,使用汇总数据来提供产品的总体状态。例如,诸如计算机芯片之类的产品可以由诸如RAM存储器和中央处理单元(CPU)之类的多个组件来构成。如果在CPU中发现问题并引起缺陷,则芯片的管理员可以请求累积的(rolled-up)报告,其中该报告指出该缺陷存在于子组件之中,并因此影响具有该CPU和RAM的芯片。PLM通过较高层级产品来准确地跟踪包括子块的分层连接/使用的数据。
图3是示出根据本发明的实施例将模块从SCM系统301向PLM系统350发送的框图300。
SCM系统301包括接口模块302,后者具有基于图形用户界面(GUI)和/或应用程序接口(API)的命令行接口(CLI)。向终端用户提供GUI以访问SCM系统301上的功能,以便请求代码模块的特定分层结构与PLM系统350相同步。GUI包括窗体(form),其使能了对顶层代码模块的细节的用户输入进行同步,以及对从SCM系统301向PLM推送的版本进行标识。该系统允许同时地或者并发地推送对象的多个不同版本。此外,该窗体允许用户标识是推送代码模块的分层结构,还是只推送特定的层级(例如,仅仅第一层)。此外,该系统还支持空运行(dry run)模式,其中该模式支持向用户返回对假设操作的细节进行报告却不执行操作。此外,该系统还支持报告模式,其中报告模式控制返回的输出的细节。
此外,该接口模块还例如使用产品所支持的工具命令语言(TCL)扩展语言,来提供CLI。CLI由使用相同的输入(其可以通过GUI窗体来指定)提供的命令行来构成。
此外,SCM系统301还包括分层服务模块304,后者提取关于数据模块的分层结构的信息,以便与PLM系统350进行同步。在一个示例性实施例中,例如,分层服务模块304使用SCM系统301的showhrefs功能来创建XML格式的结构,以便传送给PLM系统350进行处理。分层服务模块304将创建的结构传送给PLM系统350,并等待结果。返回结果包括执行的操作的日志(其返回报告给用户),加上由下面所描述的痕迹管理系统310进行处理的另外信息。
此外,该系统还包括与分层服务304操作性耦合的定制层306。在提取分层信息之后,定制层306允许进行该数据的修改或者扩展。这包括可以由终端用户或者系统管理员提供的可选的TCL函数。在调用TCL函数之后,将所提取的数据作为参数进行传送。TCL函数可以对数据进行修改以改变值,或者使用针对每一个数据元素的另外信息来扩展该数据。随后,将这些另外的值传送给PLM系统350。
此外,SCM系统301还包括过程配置模块308。PLM系统350被配置为响应于SCM系统301而执行的导入过程,可以根据SCM系统301来进一步配置。例如,要在PLM系统350上创建的对象的类型,可以取决于源SCM系统301。过程配置模块从数据库中读取过程配置设置,并在向PLM系统350发送数据之前,向数据应用该过程配置设置。这种示例性实现允许手动地或者经由图形工具,在注册表文件中设置配置参数。
SCM系统301还包括痕迹管理系统310。一旦PLM系统350对数据进行处理,PLM系统350就向SCM系统301返回使用关于在PLM系统350中创建的对象的信息来扩增的数据结构。在该示例性实现中,该扩增包括针对在PLM系统350中创建的数据所对应的唯一对象标识符。随后,痕迹管理系统310对该信息进行处理,并被存储成关于SCM系统301的数据的属性,使得其可用于被其它操作在SCM系统301上使用。
此外,SCM系统301还包括PLM服务器映射模块314和标识映射模块316。SCM系统301知道PLM系统350的地址,以便与其进行通信。服务器映射模块314允许将PLM系统350的寻址信息以灵活的和数据依赖的方式来提供。组织通常具有单个组织范围的PLM系统350,因此用于该系统的单一地址就足够了。但是,服务器映射模块314支持具有多个PLM或者分布式PLM(它们具有多个地址)的更复杂安装。用户或管理员可以使用配置工具(其可选地是图形化的),指定SCM系统301对象和PLM平台地址之间的映射。
此外,在不同的系统之间,用户的标识可以是不同的(例如,不同的用户名或者用户ID)。例如,SCM系统301可以通常使用用户的系统登录名来进行标识,但PLM系统350也可以使用企业范围标识或者电子邮箱地址来进行登录。可选的标识映射模块316提供一种可定制系统,其用于将用户的SCM系统301标识映射到PLM系统350上的标识。在特定的实施例中,在PLM系统350和SCM系统301之间,这些ID是相同的,故无需进行映射。
此外,SCM系统301还包括通信层。在该示例性实现中,RESTful Web服务318用于SCM系统301和PLM系统350之间的通信。也可以使用其它的通信方式,其中这些其它的通信方式提供用于将对分层进行描述的数据加上用户标识信息从SCM系统301传送到PLM系统350并提供更新的信息的返回。
PLM系统350包括标识映射模块336,以便也在PLM系统350上可选地执行标识映射。在PLM系统350和SCM系统301上提供标识映射,允许更大的灵活性,这是由于:a)如果来自所有SCM服务器的用户ID是一致的,则在PLM系统350中实现单一标识映射是足够的;b)如果各个SCM服务器具有不同的用户ID,但存在单一PLM系统350,则在每一个SCM服务器处实现标识映射是适当的。该示例性实现的在SCM系统301一方上的标识映射模块,将源自于SCM系统301的标识映射到PLM系统350上的标识符。
PLM系统350上的分层服务324接受来自于SCM系统301的数据,并且对总体过程进行控制。分层服务324调用例程来在PLM系统350中创建不同的对象,将所创建的对象链接在一起以形成PLM系统350中的分层结构。此外,分层服务324还使用痕迹信息来对数据进行扩增,并且还向SCM系统301返回操作的日志。
在创建新数据之后,PLM系统350的定制层326使用从SCM系统301传送的另外信息来对数据进行扩增,或者允许以被原始配置设置禁止的方式来以其他方式对数据进行操作。例如,如果功能的个别使用想要以与缺省情形不同的方式命名对象,则定制层326可以对这些对象进行重命名。可选的重命名方法传送关于所被导入的以及关于在PLM系统350中创建的等同的新对象的所有信息。
此外,还可以根据过程配置模块328读取和应用的设置配置,来配置PLM系统350。例如,PLM系统350可以用此方式来配置将创建的对象的类型。例如,可以经由属性文件来实现该配置,其中该属性文件具有针对于各种指定的配置参数的定制值。
对象创建模块330在PLM系统350中创建对象。对象创建模块330充分利用来自SCM系统301的信息和配置参数,来确定要创建的对象的细节。此外,创建父对象模块332可以创建相关联的父对象。在该示例性实现的情况下,这包括自动创建模块334,后者被配置为创建这些对象的另外版本,以充当根版本,或者工作在进程版本中从而支持完整的版本派生树。自动创建最新模块340可以基于上面所描述的所有收集的信息,来创建附属父对象,其中该附属父对象充当为用于正被创建的对象的容器。创建历史模块334也可以将模块的过去版本信息加载到自动创建最新模块340所创建的模块中。增加标签模块342还可以被配置为向所创建的项增加标签或者别名。
例如,对象创建涉及:缺省地创建产品对象,以及表示来自SCM系统的数据的版本加上实际导入的版本的修订。将这些新对象连接在一起,以形成产品的分层结构。
此外,可以将这些产品连接到父模型和产品线组件中,它们是在PLM系统中使用的用于产品开发过程的一般管理的其它对象类型。
图4是示出由本发明所采用的过程的示例性实施例的流程图400。响应于PLM系统根据SCM系统所发起的处理而从SCM系统接收到导入数据,PLM系统对导入数据中的项进行处理,以在PLM系统中创建对象(402)。PLM系统确定是否存在子项(404)。如果存在,则该系统对父项的每一个子项进行处理(406),并且将每一个子项连接到父项(408)。随后,PLM系统确定每一个创建的子项是否存在子项(404)。如果不存在子项,则该过程完成当前的子项分支(410)。最后所有分支都结束(410),该处理结束。
图5是示出将PLM系统550对象数据导入到SCM系统501的示例性实施例的框图500。
PLM系统550包括图形用户界面(GUI)534,以便用户发起将对象的分层结构导出到SCM系统501中。GUI 534包括窗体,其允许用户指定在SCM系统501中创建的对象是连接成锥形结构还是对等结构。锥形结构将用于该分层结构中的子对象的文件组织成位于父目录之下的物理目录。对等结构将用于分层结构中的子对象的文件,组织成并行的物理目录。此外,GUI窗体还允许用户指示所述导出是初始导出,还是更新导出。这种设置控制关于在SCM系统501中是否对项进行重新使用的因素。
此外,PLM系统550还存储SCM连接信息,其标识目标SCM系统服务器,以及表示来自PLM系统的顶层对象的对象位于该服务器上的什么位置。例如,这通过以下方式来标识:
a)存贮,其用于标识SCM服务器;
b)路径,其用于标识该对象在该服务器上的位置;以及
c)选择符(selector),其标识链接到该PLM对象的SCM对象的版本。
PLM系统550的实现可以使用API函数,直接调用导出控制模块524,其中该API函数允许对该系统的完整定制控制。
此外,PLM系统550还包括缺省分层提取模块530。例如,缺省提取模块530提供缺省的提取过程,但是,该缺省处理是可以覆盖(override)的。缺省分层提取模块530提取关于PLM系统550中的数据对象的分层结构的信息,以便导出到SCM系统501。在该示例性实现中,所述提取使用数据库查找和查询,来提取产品对象的分层结构。此外,该提取过程还创建被传送到导出控制模块524的数据结构(例如,Java数据结构)。
此外,PLM系统550还包括定制属性模块532。该定制属性模块532可以提供针对于导入的定制,甚至针对于上面所描述的缺省分层提取过程。定制属性模块532修改可以控制的属性或者配置值集合,例如,当相对于父对象或者顶层对象的存储位置,在SCM系统中创建新对象时。
此外,PLM系统550还包括作为对缺省提取模块530的替代的模块定制提取模块528。例如,定制提取模块528可以对PLM系统550中的不同类型的对象进行处理,或者指定定制方案以确定该分层结构中的哪些对象在SCM系统501中呈现,以及哪些仅仅出于PLM目的而被呈现因此不需要复制到SCM系统501中。
随后,导出控制模块524对导出过程的剩余部分进行控制。导出控制模块524被配置为:
a)调用该过程以便在标识映射模块522处执行任何标识映射;
b)调用web服务层520,以将所有数据传送到SCM服务器;
c)从SCM系统501接收回结果;
d)将到该数据的任何本地连接(例如,痕迹)存储在SCM服务器的痕迹管理模块508上;以及
e)将总体过程的报告显示回给用户(或者将此作为日志脚本返回给调用者)。
此外,PLM系统550还包括对象连接模块526。从SCM系统501传送返回的数据包括所创建的与PLM对象匹配的SCM对象的地址。每一个创建的SCM对象的地址包括实际对象标识符(例如,具有URL的形式),以及用于标识要链接到PLM对象的SCM对象的版本的选择符。将该信息与PLM对象进行一起存储,以形成与相应的SCM对象的连接。
PLM系统550包括标识映射模块522(可选的)。用户的标识在系统之间可以是不同的。例如,SCM系统501通常可以使用用户的系统登录名来进行识别,但PLM系统550可以使用组织范围的标识或者电子邮箱地址进行登录。标识映射模块522提供可定制系统,以便将用户标识(如PLM系统550所已知的)映射到SCM系统501上的标识。标识映射是可选的:在特定的系统中,用户的标识在两个系统之间是相同的,故映射是不需要的。
PLM系统550还包括通信层520,以用于PLM系统550和SCM系统501之间的通信(例如,基于SOAP的web服务)。替代地,SCM系统501、PLM系统550和SCM系统501或者另一个实体可以包括通信层520。可以使用其它的通信方式,其中这些其它的通信方式提供用于将描述分层和用户标识信息的数据,从PLM系统550传送到SCM系统510的方案,其返回更新的信息、日志输出和返回值。
SCM系统501可以包括标识映射模块502。标识映射在SCM系统501以及PLM系统550上可选地执行。在这两个系统上提供标识映射,允许更大的灵活性:a)如果在所有SCM服务器中使用的用户名是一致的,则在PLM系统中实现单一标识映射是足够的;b)如果各个SCM服务器具有不同的用户标识,但存在单一PLM系统,则在每一个SCM服务器处实现标识映射是适当的。该示例性实现的SCM一方上的标识映射模块提供用于供应的定制化功能,其将源自于PLM系统的标识映射到SCM系统上的标识符。
SCM系统501包括具有定制层506的导入控制模块504。该导入控制模块504从PLM系统550接受数据,并且对导入进行控制。导入控制模块504在SCM系统501中创建不同的对象,将它们链接在一起以形成SCM系统501中的分层结构。此外,导入控制模块504还使用痕迹信息对数据进行扩增,还向PLM系统550返回该操作的日志。
在导入该数据之前或者之后,可以对定制层506进行激活。在导入之前,随着从PLM系统550接收到数据,定制层506可以对该数据进行修订。例如,定制层506识别并删除在SCM系统510上表示不恰当的项。在导入之后,定制层506对来自SCM系统501的数据以及关于新创建的SCM对象的信息进行传送。例如,定制层506从PLM系统550接收信息,并且设置关于SCM对象的属性(例如,可以传送来自PLM系统的作者值(author value),并在SCM对象上进行设置)。
此外,SCM系统501还包括痕迹管理模块508。随着在SCM系统中创建数据,对痕迹进行存储,以便将新的SCM项与PLM系统中的对象进行链接。在该示例性实现中,从PLM系统550发送的数据包括用于SCM对象的对象标识符(例如,整数是用于这些对象的唯一标识符)。将来自PLM系统550的对象标识符设置成在SCM系统501中创建的对象的属性(例如,模块、分支和/或版本)。
此外,SCM系统501还包括数据预检查模块。此外,该SCM系统还包括模块(或对象)创建模块512。该模块创建模块512被配置为在SCM系统501中创建用于对来自PLM系统550的模块进行呈现的模块(如果还不存在该模块的话)。此外,分支创建和标签模块514还可以基于其版本进展来创建该模块的不同分支,并进一步将版本数据向这些模块加标签。分层引用创建模块516可以创建所创建的模块和现有模块之间的引用,其表示SCM系统501中的模块之间的分层关系(如同它们存在于PLM系统550上)。
图6是示出由本发明所采用的用于将数据从PLM系统导入到SCM系统中的过程的示例性实施例的流程图600。SCM系统通过对数据进行预检查来开始(602)。在实施例中,预检查可以包括:针对通过“静态”检查能发现的“粗(gross)”差错,对数据进行检查,以便防止该过程以后失败。预检查中的标准的例子,可以包括但不限于:检查传送的“选择符”值和“名称”在目标系统上是否有效。如果该数据预检查失败,则该处理结束(604)。
但是,如果预检查通过,则SCM系统对数据的顶层项进行处理(606)。SCM系统判断导入是初始导入模式,还是现有导入模式(608)。如果这是初始导入,则系统判断SCM对象是否存在于SCM系统中(610)。如果是,则导入的模块可能是预先存在的正在重新使用的模块,因此在该点之下的所有数据都是已经正确的,该处理在该点处结束(612)。如果该对象不是预先存在的模块,则不是创建新的SCM对象,可以使用到子对象的新的链接的集合来更新现有的SCM对象。创建新的子对象仍然可能是必需的。
如果该模块不存在(610)或者系统不是初始模式(608),则如果必要的话(例如,如果不存在用于表示PLM对象已经存在于SCM中的模块),SCM系统创建表示PLM对象的相对应模块,创建所创建的SCM对象具有一组版本(其包括初始版本)的开发分支(616),经由标签模块(618)来加标签。如果来自PLM系统的数据指示这些对象是SCM数据的固定发布版本,则系统向该版本化数据打标签,创建针对该SCM数据的一个版本的固定引用。但是,如果PLM数据指示该对象是处于进展之中的工作,则针对SCM数据的打标签分支来进行连接。换言之,其连接到该分支上的数据的最新版本。因此,PLM系统可以表示固定/最终的模块和处于进行之中的开发。
随后,SCM系统将子项连接到其父项(620)。对于分层中的除顶层项之外的所有项而言,该系统使用SCM命令将子项连接到其父对象,以实施该连接。在示例性系统中,其包括创建从父模块到子模块的href(分层引用),该href标识:a)子模块、b)将使用的子模块的版本(例如,作为版本选择符)、以及c)指示当从SCM系统中取回该子模块数据时,该子模块数据相对于父模块而放置在何处的href路径。该最新的路径是锥形或者对等的href路径值生效的位置。对于锥形结构而言,href路径值是文件系统上的子目录名,其将数据放置在父模块数据之下。对于href路径值处于形式“…/目录-名称”(…/directory-name)的对等结构而言,其意味着该数据与文件系统上的父模块数据平行地放置。
随后,SCM系统判断是否存在子项(622)。在其它实施例中,由于根据SCM系统和其能力,例如,可能有必要在创建父对象之前递归地创建所有子项,因此该过程的顺序可以是不同的。但是,在该例子中,递归步骤在创建父对象之前发生。如果存在子项,则系统对子项进行处理(606)。如果不存在,则SCM系统结束该过程(624)。
图7是示出由本发明采用的过程的示例性实施例的流程图700,该过程在其它系统中的相对应模块发生改变时自动地更新SCM或PLM系统中的导入信息。该自动更新过程在高层级是类似的,无论是将数据移动去往或来自PLM或者移动去往或来自SCM,但是实现细节可能不同。下文描述由SCM系统701的用户702发起的更新(其造成结构改变704),但是,类似的描述可以应用于PLM系统750、其用户722和相对应的结构改变724。
该过程开始于:SCM系统701的用户702执行造成数据的结构发生改变的操作(704)。该改变可以是下面的任意组合:
(1)增加或者删除从一个对象到子对象的分层引用。分层引用是从结构中的较高层级对象到更低层对象的引用(例如,芯片模块和CPU之间的链接);或者
(2)分层引用的修改(例如,在两个系统之间反映的分层引用的一些方面的修改)。例如,该修改可以是将使用的所引用对象的版本的改变,或者用于确定子对象数据相对于父对象而放置在文件系统中的什么位置的相对路径(例如,rel路径)的改变。
结构改变可以影响总体分层结构:增加或者修改针对子块的单一引用,可以改变从该点向下的整个分层。
在手动更新(706)中,在SCM系统701和PLM系统750上提供以用于用户访问的功能的GUI,以请求将对象的特定分层结构向其它系统导出(708)。
为了提供自动化更新,随着针对数据进行改变,自动化地触发本发明的实施例(716)。针对修改数据的结构的所有改变,都调用该触发,以确保始终执行数据的同步。事务性地调用该触发,使得如果在单一用户操作中执行了多个结构改变,则只调用该触发一次。通过一次性向目标系统传送改变,这避免了不必要的工作/数据传递。在该触发激活时,SCM系统701访问存储的痕迹,以便将PLM系统750中的对象链接到SCM系统701,或者反之亦然。这确保了将更新传送到目标系统上,以便在两个系统上表示数据。可能在第一系统中存在并不想要在第二系统上进行反映的数据。自动更新系统通过是手动的或作为引用父对象的同步的结果的块的第一同步,和基于痕迹的存在的后续自动同步,来避免反映不必要的数据。
随后,SCM系统701执行自动更新步骤(710),该步骤调用上面针对每一个系统所描述的导出过程(708)。
在PLM系统上,结合终端用户使用相同的API来执行的每一个系统,更新进程(734)执行上面所描述的相同类型的结构改变。重要的是,对更新进程(734)进行修改,以在调用系统(732)上设置旗语(semaphore)标志。该旗语标志防止随着在目标系统上进行改变(其造成将数据重新发送回调用系统,其潜在地造成无限循环)时激励(firing)自动触发。旗语(732)的实现阻止由更新进程进行的针对更新的触发,但允许该触发做出来自用户的其它改变。在类似于典型的SCM和PLM系统的多线程系统中,存在着在更新过程发生时该触发被禁用的危险。随后,该禁用阻止不同线程上的某个动作激励该触发。旗语的实现取决于正在使用的SCM和PLM系统的能力。但是,一种示例性实现包括:(1)阻挡开始所有新的线程;(2)等待所有其它运行的线程完成;(3)阻挡该触发;(4)执行更新进程所需要的更新;(5)解锁(unblock)该触发;(6)允许开始新的线程。
旗语进程(732)确保当触发被阻挡时,不发生其它操作。更复杂系统使用更新进程所需要的用于所有数据库改变的事务,并仅仅在向数据库提交该事务的时间期间,才对该触发进行阻挡,其充分利用针对数据库的事务提交是单线程的事实。
其它方向的过程开始于:PLM系统750的用户722执行使得数据的结构发生改变的操作(724)。该改变可以是下面的任意组合:
(1)增加或者删除从一个对象到子对象的分层引用。分层引用是从结构中的较高层级对象到更低层级对象的引用(例如,芯片模块和CPU之间的链接);或者
(2)分层引用的修改(例如,在两个系统之间反映的分层引用的一些方面的修改)。例如,该修改可以是将要使用的所引用对象的版本的改变,或者用于确定子对象数据相对于父对象而放置在文件系统中的什么位置的相对路径(例如,rel路径)的改变。
结构改变可以影响总体分层结构:增加或者修改针对子块的单一引用,可以改变从该点向下的整个分层。
在手动更新(726)中,在PLM系统750和SCM系统701上提供的用于用户访问的功能的GUI,以请求将对象的特定分层结构向其它系统导出(728)。
为了提供自动化更新,随着针对数据进行改变,自动化地触发本发明的实施例(736)。针对修改数据的结构的所有改变,都调用该触发,其确保始终执行数据的同步。事务性地调用该触发,使得如果在单一用户操作中执行了多个结构改变,则只调用该触发一次。通过一次性向目标系统传送改变,这避免了不必要的工作/数据传递。在该触发激活时,PLM系统750访问存储的痕迹,以便将SCM系统701中的对象链接到PLM系统750,或者反之亦然。这确保了将更新传送到目标系统上,以在两个系统上表示数据。可能在第一系统中存在并不想要在第二系统上进行反映的数据。自动更新系统通过是手动的或作为引用父对象的同步的结果的块的第一同步,和基于痕迹的存在的后续自动同步,来避免反映不必要的数据。
随后,PLM系统750执行自动更新步骤(730),该步骤调用上面针对每一个系统所描述的导出过程(728)。
在SCM系统701上,结合终端用户使用相同的API来执行的每一个系统,更新进程(714)执行上面所描述的相同类型的结构改变。重要的是,对更新进程(714)进行修改,以在调用系统(712)上设置旗语标志。该旗语标志防止随着在目标系统上进行改变(其造成将数据重新发送回调用系统,其潜在地造成无限循环)时激励自动触发。旗语(712)的实现阻止更新进程进行的针对更新的触发,但允许该触发做出来自用户的其它改变。在类似于典型的SCM和PLM系统的多线程系统中,存在着在更新过程发生时该触发被禁用的危险。随后,该禁用阻止不同线程上的某个动作激励该触发。旗语的实现取决于正在使用的SCM和PLM系统的能力。但是,一种示例性实现包括:(1)阻挡开始所有新的线程;(2)等待所有其它运行的线程完成;(3)阻挡该触发;(4)执行更新进程所需要的更新;(5)对该触发不再阻挡;(6)允许开始新的线程。
旗语进程(712)确保当触发被阻挡时,不发生其它操作。更复杂系统使用更新进程所需要的用于所有数据库改变的事务,并仅仅在向数据库提交该事务的时间期间,才对该触发进行阻挡,其充分利用针对数据库的事务提交是单线程的事实。
对上面所描述的导出和导入过程进行修改,以实现自动更新。具体而言,该过程的导出部分从源系统收集数据。在自动更新中,对任何现有的痕迹或者跟踪数据连同结构进行一起提取。该过程的导入一方执行用于对目标系统上的数据进行创建或者修改的主要工作。在自动更新中,当进行检查以查看在本系统上是否已经存在对象时,使用痕迹数据。如果存在痕迹数据,则执行存在性检查以确保存在该对象。如果已经存在对象,则从该对象到子对象的引用仍然需要进行更新。可能已经增加新的子对象,并创建相对应的新引用。可以在源系统上删除针对子对象的引用,也可以删除目标系统上的相对应引用。可以改变引用的属性(例如,当取回数据时,使用的目标路径或者href路径的版本)。
如果是静态版本,则还可以修改目标对象。PLM系统750中的对象的静态版本表示发布的项。这些静态版本不能进行修改,这是由于它们表示过去在某个固定点的状态。可能不允许针对这些项进行改变,这是由于SCM系统701自身阻止这些情况下的改变。如果尝试进行关于静态版本的改变,则导入过程准确地向SCM系统701反向报告该问题,以便用户在该层级进行校正。
对上面所描述的导出和导入过程进行修改,以实现自动更新。具体而言,该过程的导出部分从源系统收集数据。在自动更新中,对任何现有的痕迹或者跟踪数据连同结构进行一起提取。该过程的导入一方执行用于对目标系统上的数据进行创建或者修改的主要工作。在自动更新中,当进行检查以查看在本系统上是否已经存在对象时,使用痕迹数据。如果存在痕迹数据,则执行存在性检查以确保存在该对象。如果已经存在对象,则从该对象到子对象的引用仍然需要进行更新。可能已经增加新的子对象,并创建相对应的新引用。可以在源系统上删除针对子对象的引用,也可以删除目标系统上的相对应引用。可以改变引用的属性(例如,当取回数据时,使用的目标路径或者href路径的版本)。
如果是静态版本,则还可以修改目标对象。SCM系统中的对象的静态版本表示发布的项。这些静态版本不能进行修改,这是由于它们表示过去在某个固定点的状态。可能不允许针对这些项进行改变,这是由于PLM系统自身阻止这些情况下的改变。如果尝试进行关于静态版本的改变,则导入过程准确地向PLM系统反向报告该问题,以便用户在该层级进行校正。
理想地,结构的改变限于单一操作中的设计方案的单一层。例如,操作可以增加从顶层芯片到新的ALU块的引用,但并不会同时修改该芯片已经引用的CPU块之下的结构。如果对此进行保证,则可以对整个更新进程进行优化,使得在系统之间传送结构的单一层,并一次性进行更新。但是,在大多数系统中,这并不能得到保证,在给出的该例子中,ALU可以是用于在其它系统中进行表示的整个的新的分层结构。
此外,为了安全性和处理任何差错状况,强制实现整个分层的再同步。因此,该系统始终针对任何操作都发送整个结构(例如,从顶层修改的对象向下),在导入时,针对目标系统来对此进行检查。就性能和系统要求而言,该方法是更繁重的,但其是更准确的。
图8是其中可以实现本发明的实施例的计算机网络或者类似数字处理环境。
客户端计算机/设备50和服务器计算机60提供处理、存储和执行应用程序的输入/输出设备等等。可以通过通信网络70将客户端计算机/设备50链接到包括其它客户端设备/处理50和服务器计算机60的其它计算设备。通信网络70可以是远程接入网络、全球网络(例如,互联网)、计算机的全球集合、局域网或者广域网、以及当前使用相应的协议(TCP/IP、等等)来彼此之间进行通信的网关。其它电子设备/计算机网络架构也是适合的。
图9是图8的计算机系统中的计算机(例如,客户端处理器/设备50或者服务器计算机60)的示例性内部结构的图。每一个计算机50、60包含系统总线79,其中总线是用于在计算机或处理系统的部件之间进行数据传递的一组硬件连线。系统总线79在本质上是连接计算机系统的不同组成部分(例如,处理器、磁盘存储、存储器、输入/输出端口、网络端口等等),实现信息在这些组成部分之间的传递的共享管道。系统总线79连接到I/O设备接口82,以便将各个输入和输出设备(例如,键盘、鼠标、显示器、打印机、扬声器等等)连接到计算机50、60。网络接口86允许计算机连接到附接到网络(例如,图8的网络)的各种其它设备。存储器90为用于实现本发明的实施例的计算机软件指令92和数据94(例如,上面详细描述的提取模块、创建模块和映射模块)提供易失性存储。磁盘存储95为用于实现本发明的实施例的计算机软件指令92和数据94提供非易失性存储。中央处理器单元84也连接到系统总线79,并提供计算机指令的执行。
在一个实施例中,处理器例程92和数据94是计算机程序产品(其通常标记为92),其包括用于为本发明系统提供软件指令的至少一部分的非暂态计算机可读介质(如,诸如一个或多个DVD-ROM、CD-ROM、磁盘、磁带等等之类的可移动存储介质)。可以通过任何适当的软件安装过程来安装计算机程序产品92,如本领域所公知的。在另一个实施例中,还可以通过电缆通信和/或无线连接来下载软件指令的至少一部分。在其它实施例中,本发明程序是体现在传播介质(例如,无线波、红外波、激光波、声波或者通过诸如互联网之类的全球网络或其它网络进行传播的电波)上的传播信号的计算机程序传播信号产品。这些载波介质或者信号可以用于为本发明例程/程序92提供软件指令的至少一部分。
虽然已经参考本发明的示例性实施例具体地显示和描述了本发明,但本领域普通技术人员应当理解,可以在其中进行形式和细节方面的多种改变,而不脱离由所附权利要求书涵盖的本发明的保护范围。
Claims (20)
1.一种计算机方法,包括:
响应于将模块从产品生命周期管理(PLM)系统传递到源代码管理(SCM)系统的用户请求,从在所述PLM系统处的处理器提取来自所述PLM系统的数据源的对模块、所述模块的版本、以及所述模块的分层关系进行表示的数据;以及
创建具有对所述模块、所述模块的版本、和所述模块的所述分层关系进行表示的所提取数据的SCM系统模块。
2.根据权利要求1所述的计算机方法,还包括:
通过取回为了创建所述SCM系统模块所需要的与所述SCM系统的数据模块要求相匹配的另外信息,对所述提取的数据进行定制以匹配所述数据模块要求。
3.根据权利要求2所述的计算机方法,其中,创建所述SCM系统模块采用所定制的提取的数据。
4.根据权利要求1所述的计算机方法,还包括:
将所述PLM系统的标识映射到所述SCM系统的相对应标识;
其中,所述PLM系统的所述标识和所述SCM系统的所述相对应标识是不同的标识符,并且还表示相同的用户实体。
5.根据权利要求1所述的计算机方法,还包括:
在所创建的SCM系统模块中提供痕迹,所述痕迹具有到所述PLM系统的所述模块的链接。
6.根据权利要求5所述的计算机方法,还包括:
响应于更新请求,通过访问所述痕迹,将所创建的SCM系统模块的版本与所述PLM系统的所被链接的模块的版本进行比较;以及
如果所述PLM系统的所述模块是较新的版本,则将所述SCM系统模块更新为所述PLM系统的所述模块的所述较新的版本。
7.根据权利要求1所述的计算机方法,其中,创建所述SCM系统模块包括:从所述PLM系统的数据源,创建与所述模块的所述分层关系相对应的多个SCM系统模块。
8.一种计算机系统,包括:
提取模块,其被配置为:响应于将模块从产品生命周期管理(PLM)系统传递到源代码管理(SCM)系统的用户请求,从在所述PLM系统处的处理器提取来自所述PLM系统的数据源的对模块、所述模块的版本、以及所述模块的分层关系进行表示的数据;以及
创建模块,其被配置为创建具有对所述模块、所述模块的版本、和所述模块的所述分层关系进行表示的所提取数据的SCM系统模块。
9.根据权利要求8所述的计算机系统,还包括:
定制模块,其被配置为:通过取回为了创建所述SCM系统模块所需要的与所述SCM系统的数据模块要求相匹配的另外信息,对所述提取的数据进行定制以匹配所述数据模块要求。
10.根据权利要求9所述的计算机系统,其中,创建所述SCM系统模块采用所定制的提取的数据。
11.根据权利要求8所述的计算机系统,还包括:
映射模块,其被配置为将所述PLM系统的标识映射到所述SCM系统的相对应标识;
其中,所述PLM系统的所述标识和所述SCM系统的所述相对应标识是不同的标识符,并且还表示相同的用户实体。
12.根据权利要求8所述的计算机系统,还包括:
痕迹模块,其被配置为在所创建的SCM系统模块中提供痕迹,所述痕迹具有到所述PLM系统的所述模块的链接。
13.根据权利要求12所述的计算机系统,还包括:
比较模块,其被配置为响应于更新请求,通过访问所述痕迹,将所创建的SCM系统模块的版本与所述PLM系统的所被链接的模块的版本进行比较;以及
如果所述PLM系统的所述模块是较新的版本,则将所述SCM系统模块更新为所述PLM系统的所述模块的所述较新的版本。
14.根据权利要求8所述的计算机系统,其中,所述创建模块还被配置为:从所述SCM系统的数据源,创建与所述模块的所述分层关系相对应的多个PLM系统模块。
15.一种被配置为存储用于创建源代码管理(SCM)系统模块的指令的非暂态计算机可读介质,所述指令当被处理器加载和执行时,致使所述处理器执行以下操作:
响应于将模块从产品生命周期管理(PLM)系统传递到源代码管理(SCM)系统的用户请求,从在所述PLM系统处的处理器提取来自所述PLM系统的数据源的对模块、所述模块的版本、以及所述模块的分层关系进行表示的数据;以及
创建具有对所述模块、所述模块的版本、和所述模块的所述分层关系进行表示的所提取数据的SCM系统模块。
16.根据权利要求15所述的非暂态计算机可读介质,其中,所述指令还使所述处理器执行以下操作:
通过取回为了创建所述SCM系统模块所需要的与所述SCM系统的数据模块要求相匹配的另外信息,对所述提取的数据进行定制以匹配所述数据模块要求。
17.根据权利要求16所述的非暂态计算机可读介质,其中,所述SCM系统模块使用所定制的提取的数据。
18.根据权利要求15所述的非暂态计算机可读介质,其中,所述指令还使所述处理器执行以下操作:
将所述PLM系统的标识映射到所述SCM系统的相对应标识;
其中,所述PLM系统的所述标识和所述SCM系统的所述相对应标识是不同的标识符,并且还表示相同的用户实体。
19.根据权利要求15所述的非暂态计算机可读介质,其中,所述指令还使所述处理器执行以下操作:
在所创建的SCM系统模块中提供痕迹,所述痕迹具有到所述PLM系统的所述模块的链接。
20.根据权利要求19所述的非暂态计算机可读介质,其中,所述指令还使所述处理器执行以下操作:
响应于更新请求,通过访问所述痕迹,将所创建的SCM系统模块的版本与所述PLM系统的所被链接的模块的版本进行比较;以及
如果所述PLM系统的所述模块是较新的版本,则将所述SCM系统模块更新为所述PLM系统的所述模块的所述较新的版本。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/935,844 | 2015-11-09 | ||
US14/935,844 US10621526B2 (en) | 2015-11-09 | 2015-11-09 | Exporting hierarchical data from a product lifecycle management (PLM) system to a source code management (SCM) system |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106990978A true CN106990978A (zh) | 2017-07-28 |
CN106990978B CN106990978B (zh) | 2021-09-24 |
Family
ID=57286260
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610979835.5A Active CN106990978B (zh) | 2015-11-09 | 2016-11-08 | 从产品生命周期管理(plm)系统向源代码管理(scm)系统导出分层数据 |
Country Status (4)
Country | Link |
---|---|
US (1) | US10621526B2 (zh) |
EP (1) | EP3166030B1 (zh) |
JP (1) | JP6817030B2 (zh) |
CN (1) | CN106990978B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10621524B2 (en) | 2015-11-09 | 2020-04-14 | Dassault Systemes Americas Corp. | Exporting hierarchical data from a source code management (SCM) system to a product lifecycle management (PLM) system |
US10140350B2 (en) | 2015-11-09 | 2018-11-27 | Dassault Systemes Americas Corp. | Bi-directional synchronization of data between a product lifecycle management (PLM) system and a source code management (SCM) system |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060174190A1 (en) * | 2005-01-31 | 2006-08-03 | International Business Machines Corporation | Techniques supporting collaborative product development |
CN1882959A (zh) * | 2003-11-14 | 2006-12-20 | 皇家飞利浦电子股份有限公司 | 产品数据交换 |
US20080071844A1 (en) * | 2006-09-15 | 2008-03-20 | Microsoft Corporation | Detecting and managing changes in business data integration solutions |
CN101866299A (zh) * | 2008-12-11 | 2010-10-20 | 埃森哲环球服务有限公司 | 修改便携式电子设备上本地应用的执行的方法和系统 |
CN102855131A (zh) * | 2011-06-30 | 2013-01-02 | 国际商业机器公司 | 用于软件配置管理的装置和方法 |
CN103927155A (zh) * | 2013-01-16 | 2014-07-16 | 上海云点信息科技有限公司 | Plm软件移动客户端展示模式 |
Family Cites Families (27)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB2273376B (en) | 1992-12-11 | 1997-03-12 | Sony Corp | Data processing |
US7003587B1 (en) | 1996-07-18 | 2006-02-21 | Computer Associates Think, Inc. | Method and apparatus for maintaining data integrity across distributed computer systems |
US6457003B1 (en) | 1999-08-16 | 2002-09-24 | International Business Machines Corporation | Methods, systems and computer program products for logical access of data sources utilizing standard relational database management systems |
AU2001270069A1 (en) | 2000-06-23 | 2002-01-08 | The Johns-Hopkins University | Architecture for distributed database information access |
US7200619B2 (en) | 2002-05-31 | 2007-04-03 | International Business Machines Corporation | Method and process to optimize correlation of replicated with extracted data from disparate data sources |
US7801945B1 (en) | 2002-07-03 | 2010-09-21 | Sprint Spectrum L.P. | Method and system for inserting web content through intermediation between a content server and a client station |
US7809762B1 (en) | 2003-07-11 | 2010-10-05 | Bmc Software, Inc. | Outage-less database change operation |
US7555527B1 (en) | 2003-11-07 | 2009-06-30 | Symantec Operating Corporation | Efficiently linking storage object replicas in a computer network |
US8442938B2 (en) | 2005-01-14 | 2013-05-14 | Siemens Aktiengesellschaft | Child data structure update in data management system |
US7925626B2 (en) | 2006-12-20 | 2011-04-12 | International Business Machines Corporation | Immediate copy target pull of volume data |
US8010910B2 (en) | 2007-09-04 | 2011-08-30 | Microsoft Corporation | Breadcrumb list supplementing for hierarchical data sets |
JP5041990B2 (ja) * | 2007-11-29 | 2012-10-03 | 三菱電機株式会社 | ソフトウェア部品抽出支援装置 |
WO2010011688A1 (en) | 2008-07-21 | 2010-01-28 | Emn8, Inc. | System and method of providing digital media management in a quick service restaurant environment |
JP4907610B2 (ja) * | 2008-07-29 | 2012-04-04 | 日立オートモティブシステムズ株式会社 | ソフトウェア構成管理方法およびシステム |
US8676756B2 (en) | 2010-05-17 | 2014-03-18 | Invensys Systems, Inc. | Replicating time-series data values for retrieved supervisory control and manufacturing parameter values in a multi-tiered historian server environment |
WO2012016091A2 (en) | 2010-07-28 | 2012-02-02 | Nextlabs, Inc. | Protecting documents using policies and encryption |
US20120030015A1 (en) | 2010-07-29 | 2012-02-02 | Google Inc. | Automatic abstracted creative generation from a web site |
US9824091B2 (en) | 2010-12-03 | 2017-11-21 | Microsoft Technology Licensing, Llc | File system backup using change journal |
US8538926B2 (en) | 2011-03-08 | 2013-09-17 | Rackspace Us, Inc. | Massively scalable object storage system for storing object replicas |
EP2590144B1 (en) * | 2011-11-03 | 2018-10-24 | Dassault Systèmes | Designing a modeled volume represented by dexels |
US9904721B1 (en) | 2013-01-25 | 2018-02-27 | Gravic, Inc. | Source-side merging of distributed transactions prior to replication |
US9258676B2 (en) | 2013-01-29 | 2016-02-09 | Blackberry Limited | Mobile device for creating, managing and sharing location information |
US20150293947A1 (en) | 2014-04-10 | 2015-10-15 | Raghuvira Bhagavan | Validating relationships between entities in a data model |
US20170235605A1 (en) * | 2014-05-06 | 2017-08-17 | NetSuite Inc. | System and method for implementing cloud based asynchronous processors |
US9832260B2 (en) | 2014-09-23 | 2017-11-28 | Netapp, Inc. | Data migration preserving storage efficiency |
US10140350B2 (en) | 2015-11-09 | 2018-11-27 | Dassault Systemes Americas Corp. | Bi-directional synchronization of data between a product lifecycle management (PLM) system and a source code management (SCM) system |
US10621524B2 (en) | 2015-11-09 | 2020-04-14 | Dassault Systemes Americas Corp. | Exporting hierarchical data from a source code management (SCM) system to a product lifecycle management (PLM) system |
-
2015
- 2015-11-09 US US14/935,844 patent/US10621526B2/en active Active
-
2016
- 2016-11-07 EP EP16197619.6A patent/EP3166030B1/en active Active
- 2016-11-07 JP JP2016217363A patent/JP6817030B2/ja active Active
- 2016-11-08 CN CN201610979835.5A patent/CN106990978B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1882959A (zh) * | 2003-11-14 | 2006-12-20 | 皇家飞利浦电子股份有限公司 | 产品数据交换 |
US20060174190A1 (en) * | 2005-01-31 | 2006-08-03 | International Business Machines Corporation | Techniques supporting collaborative product development |
US20080071844A1 (en) * | 2006-09-15 | 2008-03-20 | Microsoft Corporation | Detecting and managing changes in business data integration solutions |
CN101866299A (zh) * | 2008-12-11 | 2010-10-20 | 埃森哲环球服务有限公司 | 修改便携式电子设备上本地应用的执行的方法和系统 |
CN102855131A (zh) * | 2011-06-30 | 2013-01-02 | 国际商业机器公司 | 用于软件配置管理的装置和方法 |
CN103927155A (zh) * | 2013-01-16 | 2014-07-16 | 上海云点信息科技有限公司 | Plm软件移动客户端展示模式 |
Also Published As
Publication number | Publication date |
---|---|
CN106990978B (zh) | 2021-09-24 |
EP3166030B1 (en) | 2022-04-20 |
JP6817030B2 (ja) | 2021-01-20 |
EP3166030A1 (en) | 2017-05-10 |
US20170132543A1 (en) | 2017-05-11 |
JP2017091532A (ja) | 2017-05-25 |
US10621526B2 (en) | 2020-04-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11163541B2 (en) | System for the discovery and provisioning of artifacts and composites | |
US7383320B1 (en) | Method and apparatus for automatically updating website content | |
US7761786B2 (en) | Reusable XPath validation expressions | |
US7735062B2 (en) | Software development system and method | |
EP3166031B1 (en) | Bi-directional synchronization of data between a product lifecycle management (plm) system and a source code management (scm) system | |
CN101146106B (zh) | 级联发现web服务 | |
EP3166029B1 (en) | Exporting hierarchical data from a source code management (scm) system to a product lifecycle management (plm) system | |
US7865900B2 (en) | Systems and methods for providing mockup business objects | |
CN109947767A (zh) | 多重租赁数据库系统中的系统共享类型 | |
US11055078B2 (en) | Systems and methods for deploying software products to environments | |
WO2011118003A1 (ja) | ウェブアプリケーション構築システム、ウェブアプリケーション構築方法、ウェブアプリケーション構築プログラムおよびウェブアプリケーション構築プログラムを記録した記録媒体 | |
EP1684170A2 (en) | Software development system and method | |
CN105550342B (zh) | 一种全透明的分布式数据库的数据处理方法 | |
CN106990978A (zh) | 从产品生命周期管理(plm)系统向源代码管理(scm)系统导出分层数据 | |
US10540397B2 (en) | Algorithm to check compatibility of business object types to prevent business catalog corruption on resource update | |
JP2009223822A (ja) | ソースコード更新通知装置およびソースコード更新通知方法 | |
CN113176920A (zh) | 一种通用的rpa元素选择器管理系统 | |
US9223639B2 (en) | In place object reconstruction | |
WO2024010595A1 (en) | Method and value constraint management server for managing value constraints associated with properties of entities | |
JP2006018721A (ja) | 帳票定義管理システム、帳票定義開発システム、及び、帳票定義管理方法 | |
Pytel et al. | Pro Active Record: Databases with Ruby and Rails |
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 |