CN106990978B - 从产品生命周期管理(plm)***向源代码管理(scm)***导出分层数据 - Google Patents
从产品生命周期管理(plm)***向源代码管理(scm)***导出分层数据 Download PDFInfo
- Publication number
- CN106990978B CN106990978B CN201610979835.5A CN201610979835A CN106990978B CN 106990978 B CN106990978 B CN 106990978B CN 201610979835 A CN201610979835 A CN 201610979835A CN 106990978 B CN106990978 B CN 106990978B
- Authority
- CN
- China
- Prior art keywords
- module
- scm
- plm
- data
- scm 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.)
- Active
Links
Images
Classifications
-
- 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
- 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/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)
- Marketing (AREA)
- Educational Administration (AREA)
- Game Theory and Decision Science (AREA)
- Biodiversity & Conservation Biology (AREA)
- Operations Research (AREA)
- Quality & Reliability (AREA)
- Tourism & Hospitality (AREA)
- General Business, Economics & Management (AREA)
- Development Economics (AREA)
- Life Sciences & Earth Sciences (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***的例子有:
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)模式,其中该模式支持向用户返回对假设操作的细节进行报告却不执行操作。此外,该***还支持报告模式,其中报告模式控制返回的输出的细节。
此外,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***模块;并且
将旗语发送到所述SCM***,所述旗语被配置为在所述SCM***处使得:
阻止新的更新线程的发起;
等待现有运行的更新线程完成;
阻止开始自动更新过程;
响应于所创建的SCM***模块来执行更新;
对所述旗语取消设置以允许在所述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***模块;并且
将旗语发送到所述SCM***,所述旗语被配置为在所述SCM***处使得:
阻止新的更新线程的发起;
等待现有运行的更新线程完成;
阻止开始自动更新过程;
响应于所创建的SCM***模块来执行更新;
对所述旗语取消设置以允许在所述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***模块;并且
将旗语发送到所述SCM***,所述旗语被配置为在所述SCM***处使得:
阻止新的更新线程的发起;
等待现有运行的更新线程完成;
阻止开始自动更新过程;
响应于所创建的SCM***模块来执行更新;
对所述旗语取消设置以允许在所述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 CN106990978A (zh) | 2017-07-28 |
CN106990978B true 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 (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1882959A (zh) * | 2003-11-14 | 2006-12-20 | 皇家飞利浦电子股份有限公司 | 产品数据交换 |
CN101866299A (zh) * | 2008-12-11 | 2010-10-20 | 埃森哲环球服务有限公司 | 修改便携式电子设备上本地应用的执行的方法和*** |
Family Cites Families (31)
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 |
US6957214B2 (en) | 2000-06-23 | 2005-10-18 | 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 |
US7343386B2 (en) * | 2005-01-31 | 2008-03-11 | International Business Machines Corporation | Techniques supporting collaborative product development |
US7987159B2 (en) * | 2006-09-15 | 2011-07-26 | Microsoft Corporation | Detecting and managing changes in business data integration solutions |
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 | 三菱電機株式会社 | ソフトウェア部品抽出支援装置 |
MX2011000797A (es) | 2008-07-21 | 2011-04-21 | Emn8 Inc | Sistema y metodo para proveer manejo de medios digitales en un medio ambiente de restaurante de servicio rapido. |
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 |
CN102855131B (zh) * | 2011-06-30 | 2016-01-13 | 国际商业机器公司 | 用于软件配置管理的装置和方法 |
EP2590144B1 (en) * | 2011-11-03 | 2018-10-24 | Dassault Systèmes | Designing a modeled volume represented by dexels |
CN103927155A (zh) * | 2013-01-16 | 2014-07-16 | 上海云点信息科技有限公司 | Plm软件移动客户端展示模式 |
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 (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1882959A (zh) * | 2003-11-14 | 2006-12-20 | 皇家飞利浦电子股份有限公司 | 产品数据交换 |
CN101866299A (zh) * | 2008-12-11 | 2010-10-20 | 埃森哲环球服务有限公司 | 修改便携式电子设备上本地应用的执行的方法和*** |
Also Published As
Publication number | Publication date |
---|---|
EP3166030A1 (en) | 2017-05-10 |
US10621526B2 (en) | 2020-04-14 |
CN106990978A (zh) | 2017-07-28 |
EP3166030B1 (en) | 2022-04-20 |
JP6817030B2 (ja) | 2021-01-20 |
JP2017091532A (ja) | 2017-05-25 |
US20170132543A1 (en) | 2017-05-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107025108B (zh) | 从源代码管理(scm)***将分级数据导出到产品生命周期管理(plm)*** | |
CN109840429B (zh) | 智能合约部署、调用方法和装置 | |
CN107038519B (zh) | 用于***之间的双向数据同步的方法和*** | |
US9740476B2 (en) | Version control for customized applications | |
US7684964B2 (en) | Model and system state synchronization | |
US9075633B2 (en) | Configuration of life cycle management for configuration files for an application | |
US8010962B2 (en) | Infrastructure for the automation of the assembly of schema maintenance scripts | |
US9477727B2 (en) | Abstracting data for use by a mobile device having occasional connectivity | |
US20100192006A1 (en) | Database change verifier | |
US9274783B2 (en) | Dynamic delivery and integration of static content into cloud | |
US11055078B2 (en) | Systems and methods for deploying software products to environments | |
US20150365275A1 (en) | Cloud environment configuration for cloud applications | |
US10339113B2 (en) | Method and system for effecting incremental changes to a repository | |
CN101421726A (zh) | 偶尔连接的应用服务器 | |
CN102722439B (zh) | 一种提高flash组件运行稳定性的方法、装置及*** | |
US9053134B2 (en) | View variants in database schema mapping | |
US20200326936A1 (en) | System and method for code synchronization between mainframe environment and distributed environment | |
US20160179474A1 (en) | Automated model derivation and alignment | |
CN106990978B (zh) | 从产品生命周期管理(plm)***向源代码管理(scm)***导出分层数据 | |
US10540397B2 (en) | Algorithm to check compatibility of business object types to prevent business catalog corruption on resource update | |
US20210263911A1 (en) | Smart repository based on relational metadata | |
CN110825395A (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 |