CN107025108B - 从源代码管理(scm)***将分级数据导出到产品生命周期管理(plm)*** - Google Patents
从源代码管理(scm)***将分级数据导出到产品生命周期管理(plm)*** Download PDFInfo
- Publication number
- CN107025108B CN107025108B CN201610977797.XA CN201610977797A CN107025108B CN 107025108 B CN107025108 B CN 107025108B CN 201610977797 A CN201610977797 A CN 201610977797A CN 107025108 B CN107025108 B CN 107025108B
- Authority
- CN
- China
- Prior art keywords
- module
- plm
- scm
- data
- version
- 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
- 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/06311—Scheduling, planning or task assignment for a person or group
- G06Q10/063114—Status monitoring or status determination for a person or group
-
- 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
-
- 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
- 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
- G06F16/258—Data format conversion from or to a database
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
-
- 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/0637—Strategic management or analysis, e.g. setting a goal or target of an organisation; Planning actions based on goals; Analysis or evaluation of effectiveness of goals
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Human Resources & Organizations (AREA)
- Theoretical Computer Science (AREA)
- Entrepreneurship & Innovation (AREA)
- Strategic Management (AREA)
- Economics (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Educational Administration (AREA)
- General Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Quality & Reliability (AREA)
- Game Theory and Decision Science (AREA)
- Development Economics (AREA)
- Marketing (AREA)
- Operations Research (AREA)
- Tourism & Hospitality (AREA)
- General Business, Economics & Management (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Computer Security & Cryptography (AREA)
- Stored Programmes (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
传统地,PLM***和SCM***尚未链接。在实施例中,计算机方法包括,响应于用户请求而将模块从源代码管理(SCM)***传输到产品生命周期管理(PLM)***,由SCM***中的处理器从SCM***的数据源提取表示模块、模块的版本以及模块的分级关系的数据。该方法还包括创建PLM***模块,该PLM***模块具有表示模块、模块的版本以及模块的分级关系的所提取的数据。因此,SCM***能够在SCM***中控制的过程中将模块导出到PLM***。
Description
相关申请
本申请涉及转让给共同的受让人并且与本申请在同一日提交的Ian Dobinson和Peter Haynes做出的“Exporting Hierarchical Data From A Product LifecycleManagement(PLM)System To A Source Code Management(SCM)System”(代理人案号4659.1020-000)以及转让给共同的受让人并且与本申请在同一日提交的Ian Dobinson和Peter Haynes做出的“Bi-Directional Synchronization of Data Between A ProductLifecycle Management(PLM)System And A Source Code Management(SCM)System”(代理人案号4659.1021-000)的共同提交的美国申请。
上述申请的整个教导通过引用方式合并于本文中。
背景技术
硬件开发者,尤其是集成电路设计共同体中的硬件开发者,通常将分级开发方法应用于设计,其中高级产品参考子产品或者构建于子产品之外。类似地,软件开发者通常使用分级,更高级的软件组件使用可重用软件区块。
源代码管理(SCM)***在其最基础级上提供了对存储在存储器或数据库中的数据文件集合进行版本控制的手段,这允许跟踪那些文件随时间的变化。SCM***的示例是:
b)公共可用的Concurrent Versioning System(CVS);
c)公共可用的GIT修订控制***;以及
d)在商业支持下可用的Subversion and Perforce***。
分级SCM***这样的***:其中数据文件能够被管理为包或模块,包或模块可以包含大量的单独的文件。模块或包还可以引用其他模块或包而形成分级的数据。
产品生命周期管理(PLM)***提供了用于从开端、工程设计、制造、到所制造的产品的服务和处置来管理产品的整个生命周期的过程。PLM***集成了人、数据、过程和商业***,并且提供了用于公司及其扩展企业的产品信息构架。PLM***将数据表示为由关系连接的一系列对象。例如,第一对象可以代表开发中的产品,其与表示正在开发产品的组织的第二对象有关系。这些对象还可以支持表示对象的不同发布或者表示对象的开发状态的修订(或版本)(例如,不同的修订可能代表芯片的版本1.0或者芯片的后来的2.0版本,或者还可能表示处于朝向未来发布的进展中的工作)。这些对象还可以支持经由相同或相似类型的对象之间的关系的分级。例如,表示芯片的对象可以与表示作为该芯片的部分的CPU模块的对象有关系。由Platform旗下的Dassault Systemes所提供的应用提供了PLM***的示例。
发明内容
在本发明的实施例中,***和方法提供了用于将分级的数据块集合的描述从SCM***传递到PLM***的方案。在本发明的实施例中,***和方法将数据从PLM***传输到支持分级设计的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***,使得该信息能够存储以用于跟踪目的。
在实施例中,本发明在PLM***中根据SCM***中的数据创建新数据。
本发明的实施例提供了从SCM***进行数据传输的初始化和控制。这允许有先进的定制和控制能力。该***进一步提供用于存储关于SCM***的跟踪信息的方案。
SCM***管理定义***级对象及其分级关系的数据。因此,有益的是数据在其在SCM***中被创建时从SCM******PLM***。现有的解决方案没有提供一种如本发明的实施例那样利用从SCM***控制的过程来在PLM***内直接创建数据的手段。
不同的PLM***保存用于单独的对象的不同类型,以及不同的SCM***或者具体SCM***的不同实现方式的信息(例如,属性/特性)。PLM***对能够用于填充到PLM***中的信息中的不同的数据集具有访问权。因此,在本发明的实施例中,当从SCM***将数据传输到PLM***时,***能够聚集、生成并且供给该附加信息。现有的解决方案还不支持创建数据和相关联的属性设置的具体定制。
一旦数据已经传输到PLM***,SCM保留到所创建的对象的链接。从SCM***到PLM***的链接能够通过允许SCM***直接链接到PLM***中的等同对象来实现先进的功能。例如,SCM***能够实现如下功能:如果SCM***得知该对象是什么,则直接显示等同的PLM***对象。现有的解决方案没有提供将该跟踪(例如,痕迹(breadcrumb))信息存储在SCM***内。
PLM至SCM
本发明的实施例是一种用于将分级的数据块集合的描述从PLM***传递到SCM***的方案。传递描述包括:从PLM***提取数据变为便携格式,包括分级连接以及那些连接是否是到子块的特定发布或者到开发中的版本的细节。***进一步定制该数据,使得***的单独的实现方式能够提供由目标SCM***所使用的数据。该***进一步将该数据传输到SCM***。该***进一步在SCM***中创建表示来自SCM***的对象以及对象之间的分级连接的容器对象。该***进一步经由PLM***上的定制功能,基于所传递的附加数据来定制SCM***中的对象。该***进一步将关于等同于PLM数据对象的、已经创建的对象的信息传递回PLM***,使得该信息能够被存储以用于跟踪目的。
PLM***中的数据用于许多操作,例如,跟踪包含产品的部分的开发状况以及跟踪针对包括产品的任意部分所发现的问题(例如,缺陷、漏洞)。
在许多情况下,采用汇总数据来得到产品的总体状况。例如,诸如计算机芯片的产品可能由多个组件构成,诸如随机存取存储器(RAM)和中央处理单元(CPU)。如果针对CPU发现了问题并且提出了对应的缺陷,则芯片的管理者期望汇总报告,该汇总报告表明该缺陷存在于一些子组件并且因此影响了芯片:因此,在***中精确地跟踪PLM***中的数据,尤其是较高级产品对子块的分级连接/使用。
PLM***能够被视为用于定义设计的块以及它们之间的分级关系的主控。也即,设计的结构创建于PLM***中并且SCM***用于管理用于包括结构的块的单独的数据文件。SCM***包含其自身的对象以表示设计的块以及它们之间的分级关系,使得SCM***的用户能够取得正确的包括设计的数据集并且对该数据执行它们的操作。
本发明的实施例提供了利用已经在PLM***内放到一起的定义来在SCM***内创建块以及它们之间的连接的能力。现有的解决方案未提供利用从PLM***控制的过程来在SCM***内直接创建数据的手段。
不同的PLM***存储用于单独的对象的不同类型的信息(例如属性、特性),并且不同的SCM***可以存储从PLM***中的信息定义的不同数据集。在本发明的实施例中,从PLM***传输数据到SCM***足够灵活来处理这种附加信息。现有的解决方案不支持数据的创建和相关联的属性设置的过程的详细定制。
一旦数据被传输到SCM***,PLM***保留到所创建的对象的链接并且SCM***维护在PLM***中的等同的源对象的知识。这使得通过允许SCM***直接链接到PLM***中的等同对象来实现先进的功能。例如,SCM***可以实现如下功能:如果SCM***知道该对象是什么则直接显示等同的PLM***对象。现有的解决方案不能提供将该跟踪(或痕迹)信息存储在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许可问题或者缺失对问题的精确跟踪,可能导致产品可靠性问题(在没有现有漏洞的认知的情况下运送产品)。
现有的解决方案没有提供一种手动地或者自动地由另一***中的源定义来增量地更新一个***中的数据的手段。
在实施例中,计算机方法包括,响应于用户请求而将模块从源代码管理(SCM)***传输到产品生命周期管理(PLM)***,由SCM***中的处理器,从SCM***的数据源提取表示模块、模块的版本和模块的分级关系的数据。该方法还包括:创建PLM***模块,该PLM***模块具有表示模块、模块的版本和模块的分级关系的所提取的数据。
在实施例中,该方法还包括,通过取回创建与数据模块要求相匹配的PLM***模块所需的附加信息,定制所提取的数据以与PLM***的数据模块要求相匹配。创建PLM***模块能够采用定制的提取的数据。
在实施例中,该方法还包括将SCM***的标识映射到PLM***的对应的标识。所述SCM***的标识和所述PLM***的对应的标识可以是不同的标识符并且还表示相同的用户实体。
在实施例中,该方法还包括在所创建的SCM***模块中提供具有到所述PLM***的模块的链接的痕迹。该方法还可以包括,响应于更新请求,通过访问所述痕迹而将所创建的PLM***模块的版本与所述SCM***的所链接的模块的版本进行比较。如果所述SCM***的模块是较新的版本,则将所述PLM***模块更新为所述SCM***的模块的较新版本。
在实施例中,创建所述PLM***模块包括创建与来自所述SCM***的数据源的所述模块的分级关系相对应的多个PLM***模块。
在实施例中,计算机***包括处理器和其中存储有计算机代码指令的存储器。该存储器与所述处理器可操作地耦合,使得所述计算机代码指令将所述处理器配置为实现:提取模块,其被配置为,响应于用户请求而将模块从源代码管理(SCM)***传输到产品生命周期管理(PLM)***,由SCM***的处理器,从所述SCM***的数据源提取表示模块、模块的版本以及模块的分级关系的数据。计算机代码指令还将处理器配置为实现创建模块,创建模块被配置为创建具有表示模块、模块的版本以及模块的分级关系的所提取的数据的PLM***模块。
在实施例中,该***还包括定制模块,定制模块被配置为,通过取回创建与数据模块要求相匹配的PLM***模块所需的附加信息,定制所提取的数据以与所述PLM***的数据模块要求相匹配。创建所述PLM***模块可以采用定制的提取的数据。
在实施例中,计算机***还可以包括映射模块,其被配置为将所述SCM***的标识映射到所述PLM***的对应的标识。所述SCM***的标识和所述PLM***的对应的标识可以是不同的标识符并且还表示相同的用户实体。
在实施例中,计算机***还包括痕迹模块,其被配置为在所创建的SCM***模块中提供具有到所述PLM***的模块的链接的痕迹。该***还可以包括比较模块,其被配置为,响应于更新请求,通过访问所述痕迹来将所创建的PLM***模块的版本与所述SCM***的链接的模块的版本进行比较。如果所述SCM***的模块是较新的版本,则所述比较模块将所述PLM***模块更新成所述SCM***的模块的较新版本。
在实施例中,创建所述PLM***模块包括创建与来自所述SCM***的数据源的模块的分级关系相对应的多个PLM***模块。
在实施例中,一种非暂时性计算机可读介质,其被配置为存储用于创建产品生命周期管理(PLM)模块的指令。所述指令在被加载并且由处理器执行时使得所述处理器,响应于用户请求以将模块从源代码管理(SCM)***传输到产品生命周期管理(PLM)***,由所述SCM***中的处理器,从所述SCM***的数据源提取表示模块、所述模块的版本和所述模块的分级关系的数据。该指令进一步使得处理器创建PLM***模块,所述PLM***模块具有表示模块、模块的版本和模块的分级关系的所提取的数据。
在实施例中,该指令进一步使得处理器,通过取回创建与数据模块要求相匹配的PLM***模块所需的附加信息,定制所提取的数据以与所述PLM***的数据模块要求相匹配。创建所述PLM***模块可以采用定制的提取的数据。
在实施例中,该指令进一步使得处理器,将所述SCM***的标识映射到所述PLM***的对应的标识。所述SCM***的标识和所述PLM***的对应的标识可以是不同的标识符并且还表示相同的用户实体。
在实施例中,该指令进一步使得处理器,在所创建的SCM***模块中提供具有到所述PLM***的模块的链接的痕迹。该指令进一步使得处理器,响应于更新请求,通过访问所述痕迹而将所创建的PLM***模块的版本与所述SCM***的所链接的模块的版本进行比较。如果所述SCM***的模块是较新的版本,则所述指令将所述PLM***模块更新为所述SCM***的模块的较新版本。
附图说明
前面所述将从本发明的示例性实施例的以下更具体的描述中变得明显,如附图所示的,在附图中相似的附图标记在不同的视图中指代相同的部件。附图不一定按比例绘制,相反重点应放在图示说明本发明的实施例。
图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-110c和114a-114c上的相应的模块数据库112a-112c和116a-116c耦合。在实施例中,模块数据库112a-112c和116a-116c还可以本地存储(未示出),或者存储在单一远程服务器(未示出)上,或者在多个远程服务器(未示出)上。用户102,经由接口***104,引导待导入模块118从第一管理***106被发送到第二管理***108。第一管理***106还将支持数据122发送到第二管理***108。支持数据122可以包括关于模块118、支持模块的分级信息以及关于模块的痕迹信息。
此外,在一个实施例中,第一管理***106和第二管理***108可以将相应的自动更新120a-120b发送给彼此。自动更新120a-120b在一个***上修改所导入的模块而使得需要在另一***上进行更新时被发送。自动更新120a-120b将详细描述于下文。
图2是示出了PLM***中的分级的示例性实施例的框图200。示例的分级包括芯片202,其与随机存取存储器(RAM)204和中央处理单元(CPU)206二者相关。芯片202与RAM 204和CPU 206具有“使用”关系,表明RAM 204和CPU 206是芯片22的子组件。
PLM***中的数据用于操作,例如,跟踪构成产品的件(例如,芯片202、RAM 204和CPU 206)的开发状态。PLM还可以跟踪在构成产品的件(诸如,芯片202、RAM 204和CPU 206)中所发现的问题208(例如,缺陷/漏洞)。问题208指示关于CPU 206所发现的问题。问题208还可以指示由于问题208所出现的缺陷210。缺陷210链接到CPU 206,因为问题208直接与CPU 206相关。缺陷210还与芯片202具有‘影响’关系,因为CPU 206是芯片202的子组件,因此CPU 206所存在的缺陷210影响芯片202。
在这些情况中的多种情况下,汇总数据用于提供产品的总体状况。例如,诸如计算机芯片的产品可以由多个组件(诸如,RAM存储器和中央处理单元(CPU))构成。如果发现CPU有问题并且出现了缺陷,则芯片的管理者可以请求表明该缺陷存在于子组件内并且因此影响具有CPU和RAM的芯片的汇总报告。PLM精确地跟踪包括较高级产品对子块的分级连接/使用的数据。
图3是示出了根据本发明的实施例的将模块从SCM***301发送到PLM***350的框图300。
SCM***301包括接口模块302,接口模块302具有基于应用编程接口(API)的图形用户接口(GUI)和/或命令行接口(CLI)。GUI为终端用户提供以访问SCM***301上的功能从而请求代码模块的具体分级与PLM***350同步。GUI包括使顶级代码模块的细节的用户输入同步以及将版本的标识从SCM***301推送到PLM的形式。***允许同时或同期地推送对象的多个不同的版本。另外,该形式允许用户标识是推送代码模块的分级还是仅推送特定的级(例如,仅第一级)。该***还支持干运行模式(dry run mode),其支持将假设操作的细节报告给用户,而不实施操作。该***还支持报告模式,其控制返回的输出的细节。
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将数据结构返回到被增加了关于在PLM***350中创建的对象的信息的SCM***301。在示例性的实现方式中,增加包括用于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上的标识的可定制***。在特定的实施例中,ID在PLM***350与SCM***301之间相同并且不需要映射。
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中创建的等同新对象的全部信息。
PLM***350可进一步通过提供由过程配置模块328读和应用的设置来配置。例如,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包括便于用户开始将对象分级导出到SCM***501的图形用户接口(GUI)534。GUI 534包括允许用户规定在SCM***501中所创建的对象是否连接作为锥形结构或对等结构的形式。锥形结构将分级中的子对象的文件组织成在父目录的目录下的物理目录。对等结构将分级中的子对象的文件组织成并行的物理目录。GUI形式还允许用户规定导出是初始导出还是更新导出。该设置控制关于条目是否在SCM***501内重用的因素。
PLM***550还存储SCM连接信息,其标识目标SCM***服务器以及在该服务器上的哪里定位有表示来自PLM***的顶级对象的对象。例如,这是经由:
a)库,其标识SCM服务器;
b)路径,其标识对象在该服务器上的位置;以及
c)选择器,其标识链接到PLM对象的SCM对象的版本。
PLM***550的实现能够利用API函数来直接调用导出控制模块524,允许***的全面定制控制。
PLM***550还包括默认分级提取模块530。例如,默认提取模块530提供默认提取过程,然而默认过程可以被重写。默认分级提取模块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的形式)以及标识SCM对象的版本以便链接到PLM对象的选择器。该信息以PLM对象存储来形成与对应的SCM对象的连接。
PLM***550包括标识映射模块522(任选地)。用户的标识可以在***之间不同。例如,SCM***501典型地能够使用用户的***登录名来用于标识,但是PLM***550可能使用组织域标识或电子邮件地址进行登录。标识映射模块522提供了可定制***,用于将PLM***550所知道的用户标识映射到SCM***501的标识。标识映射是任选的:在特定的***中,用户的标识在两个***之间不同,并且映射是不必要的。
PLM***550还包括通信层520(例如,基于SOAP的web服务),用于在PLM***550与SCM***501之间通信。可替代地,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可以在导入数据之前或之后被激活。在导入之前,定制层506能够在数据从PLM***550被接收到时修订该数据。例如,定制层506标识并去除不适合在SCM***510上表示的条目。在导入后,定制层506被传递有来自SCM***501的数据以及关于新创建的SCM对象的信息。例如,定制层506接收来自PLM***550的信息并且设置SCM对象上的属性(例如,作者值能够从PLM***传递并且在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)。在实施例中,预校验可以包括校验数据的“过失”误差,这可通过“静态”校验来发现,从而防止过程后来失败。预校验中的标准的示例可以包括但不限于,校验所传递的“选择器”值和“名称”在目标***上是有效的。如果数据预校验失败,则过程结束(604)。
然而,如果预校验通过,则SCM***处理数据的顶级条目(606)。SCM***判定导入是初始导入模式还是现有导入模式(608)。如果这是初始导入,则***判定SCM对象是否存在于SCM***中(610)。如果是,则导入的模块可能是重新使用的预存在模块,并且因此在该点以下的全部数据已经是正确的,并且过程可以在该点结束(612)。如果对象不是预先存在的模块,而不是创建新的SCM对准,则现有的SCM对象能够更新为到子对象的新链接集合。仍可以需要创建新的子对象。
如果模块不存在(610)或者***不处于初始模式(608),如果SCM***有必要创建表示PLM对象的对应模块(例如,如果不存在表示已经存在于SCM中的PLM对象的模块)(614),则***创建具有包括初始版本的版本集合的所创建的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示出的是示出了本发明所采用的在另一***中的对应模块变化时自动更新SCM或PLM***中的导入信息的过程的示例性实施例的流程图700。自动更新过程在高级别上是相似的,无论是将数据从PLM移到SCM,还是从SCM移到PLM,然而实现细节可以不同。下面描述了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***上,更新过程(734)利用相同的API关于终端用户所执行的每个***执行相同类型的上述结构改变。重要的是,修改更新过程(734)以在调用***上设置旗号标记。旗号标记防止在对目标***做出改变时击发自动触发程序,这使得数据被重新送回调用***,可能导致无限循环。实现旗号(732)阻止了触发程序进行由更新过程所做的更新,但是允许触发程序做出来自用户的其他改变。在多线程***中,比如典型的SCM***和PLM***,存在触发程序在更新过程发生的同时被禁用的危险。禁用则阻止了对不同的线程的某些作用击发触发程序。旗号的实现取决于所使用的SCM***和PLM***的能力。然而,一个示例的实现包括(1)阻止全部新线程开始;(2)等待其他所有运行的线程结束;(3)阻止触发程序;(4)执行更新过程所需的更新;(5)解除对触发程序的阻止;以及(6)允许新线程开始。
旗号过程(732)确保了在触发程序被阻止的同时不发生其他操作。更精巧的***采用更新过程所需的全部数据库改变的事务并且仅在当该事务正在提交给数据库时的期间才阻止触发程序,利用了事务提交给数据库是单线程的事实。
当PLM***750的用户722执行导致改变数据的结构的操作时,沿其他方向的过程开始(724)。该改变可以是如下任意组合:
(1)从一个对象到子对象的分级引用的添加或去除。分级引用是从结构中的较高级对象到较低级对象的引用(例如,芯片模块与CPU之间的链接);或者
(2)分级引用的修改(例如,在两个***之间反映的分级引用的某方面的修改)。该修改可以是例如待使用的引用对象的版本的改变或者是待使用来决定子对象数据相对于父对象放入文件***中的何处的相对路径(例如,ref路径)的改变。
结构改变会影响整体分级结构:添加或修改对子块的单一引用能够从该点向下改变整个分级。
在手动更新(726)中,在PLM***750和SCM***701上为用户提供的GUI访问功能来请求将对象的具体分级导出(728)到另一***。
为了提供自动更新,本发明的实施例在对数据做出改变时自动地触发(726)。针对修改数据的结构的全部改变调用触发程序,确保数据的同步总是执行。触发程序被交互地调用,使得如果在单次用户操作中执行了多个结构改变,则仅调用触发程序一次。这通过将改变一次传递到目标***来避免不必要的工作/数据传输。在触发程序激活时,PLM***750访问存储的痕迹以将SCM***701中的对象链接到PLM***750,反之亦然。这确保了对于在两个***上所表示的数据,更新被传递到目标***。在第一***中存在不打算反映在第二***上的数据。自动更新***通过如下来避免反映不必要的数据:手动或者由于引用父对象的同步引起的块的第一同步,以及随后基于痕迹的存在的自动同步。
PLM***750随后执行自动更新步骤(730),其调用上文对于每个***所描述的导出过程(728)。
在SCM***701上,更新过程(714)利用相同的API关于终端用户所执行的每个***执行相同类型的上述结构改变。重要的是,修改更新过程(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提供了执行应用程序等的处理、存储和输入/输出设备。客户端计算机/设备50还能够通过通信网70链接到其他计算设备,包括其他的客户端设备/过程50以及服务器计算机60。通信网70可以是远程访问网络、全局网络(例如,因特网)、世界范围内的计算机的集合、局域网或广域网、以及当前使用相应的协议(TCP/IP,等)彼此通信的网关的部分。其他电子设备/计算机网络体系结构是适合的。
图9是在图8的计算机***中的计算机(例如,客户端处理器/设备50或者服务器计算机60)的示例的内部结构的示意图。每个计算机50、60包含了***总线79,其中总线是用于计算机或处理***的组件之间的数据传输的硬件线路的集合。***总线79实质上是连接实现了元件之间的信息传输的计算机***的不同元件(例如,处理器、磁盘存储设备、存储器、输入/输出端口、网络端口等)的共享导管。附接到***总线79的是I/O设备接口82,其用于将各个输入和输出设备(例如,键盘、鼠标、显示器、打印机、扬声器等)连接到计算机50、60。网络接口86允许计算机连接到与网络(例如,图8的网络70)附接的其他各种设备。存储器90提供了用于实现本发明的实施例(例如,上文详述的提取模块、创建模块和映射模块)的计算机软件指令92和数据94的易失性存储器。磁盘存储设备95提供了用于实现本发明的实施例的计算机软件指令92和数据94的非易失性存储。中央处理单元84也附接到***总线79并且提供以用于计算机指令的执行。
在一个实施例中,处理器例程92和数据94是计算机程序产品(通常表示为92),包括提供用于本发明***的软件指令的至少一部分的非暂时性计算机可读介质(例如,可移除存储介质,诸如一个或多个DVD-ROM、CD-ROM、磁盘、磁带等)。计算机程序产品92能够由任何适合的软件安装程序来安装,这是本领域公知的。在另一实施例中,软件指令的至少部分还可以经由电缆通信和/或无线连接下载。在其他实施例中,本发明程序是具体体现为传播介质(例如,无线电波、红外波、激光波、声波或经由诸如因特网的全局网络或其他网络传播的电波)上的传播信号的计算机程序传播信号产品。该载波介质或信号可以用来提供用于本发明例程/程序92的软件指令的至少部分。
虽然参考本发明的示例性实施例特别地显示和描述了本发明,但是本领域技术人员将理解的是,可以在其中做出形式和细节上的各种改变,而不背离随附的权利要求所涵盖的本发明的范围。
Claims (20)
1.一种计算机方法,包括:
响应于将模块从源代码管理SCM***传输到产品生命周期管理PLM***的用户请求,由所述SCM***中的处理器,从所述SCM***的数据源提取表示模块、所述模块的版本和所述模块的分级关系的数据;以及
创建PLM***模块,所述PLM***模块具有表示所述模块、所述模块的版本和所述模块的分级关系的提取的数据;
阻止新更新线程在所述PLM***处开始;
等待其他运行的线程完成;
阻止触发开始自动更新过程;
执行所述更新过程所需的更新;
解除对所述触发的阻止;以及
允许新线程开始。
2.如权利要求1所述的计算机方法,还包括:
通过取回创建与数据模块要求相匹配的所述PLM***模块所需的附加信息,定制所提取的数据以与所述PLM***的所述数据模块要求相匹配。
3.如权利要求2所述的计算机方法,其中,创建所述PLM***模块采用定制的提取的数据。
4.如权利要求1所述的计算机方法,还包括:
将所述SCM***的标识映射到所述PLM***的对应的标识;
其中,所述SCM***的标识和所述PLM***的对应的标识是不同的标识符并且还表示相同的用户实体。
5.如权利要求1所述的计算机方法,还包括:
在所创建的PLM***模块中提供具有到所述SCM***的模块的链接的痕迹。
6.如权利要求5所述的计算机方法,还包括:
响应于更新请求,通过访问所述痕迹而将所创建的PLM***模块的版本与所述SCM***的所链接的模块的版本进行比较;以及
如果所述SCM***的模块是较新的版本,则将所述PLM***模块更新为所述SCM***的模块的较新版本。
7.如权利要求1所述的计算机方法,其中,创建所述PLM***模块包括创建与来自所述SCM***的数据源的所述模块的分级关系相对应的多个PLM***模块。
8.一种计算机***,包括:
处理器;以及
存储器,其中,存储有计算机代码指令,所述存储器与所述处理器能够操作地耦合,使得所述计算机代码指令将所述处理器配置为:
响应于将模块从源代码管理SCM***传输到产品生命周期管理PLM***的用户请求,由所述SCM***的处理器,从所述SCM***的数据源提取表示所述模块、所述模块的版本以及所述模块的分级关系的数据;
创建具有表示所述模块、所述模块的版本以及所述模块的分级关系的所提取的数据的PLM***模块;
阻止新更新线程在所述PLM***处开始;
等待其他运行的线程完成;
阻止触发开始自动更新过程;
执行所述更新过程所需的更新;
解除对所述触发的阻止;以及
允许新线程开始。
9.如权利要求8所述的计算机***,其中,所述处理器还被配置为:
通过取回创建与数据模块要求相匹配的PLM***模块所需的附加信息,来定制所提取的数据以与所述PLM***的数据模块要求相匹配。
10.如权利要求9所述的计算机***,其中,创建所述PLM***模块采用定制的提取的数据。
11.如权利要求8所述的计算机***,其中,所述处理器还被配置为:
将所述SCM***的标识映射到所述PLM***的对应的标识;
其中,所述SCM***的标识和所述PLM***的对应的标识是不同的标识符并且还表示相同的用户实体。
12.如权利要求8所述的计算机***,其中,所述处理器还被配置为:
在所创建的PLM***模块中提供具有到所述SCM***的模块的链接的痕迹。
13.如权利要求12所述的计算机***,其中,所述处理器还被配置为:
响应于更新请求,通过访问所述痕迹来将所创建的PLM***模块的版本与所述SCM***的链接的模块的版本进行比较;以及
如果所述SCM***的模块是较新的版本,则将所述PLM***模块更新成所述SCM***的模块的较新版本。
14.如权利要求8所述的计算机***,其中,创建所述PLM***模块包括创建与来自所述SCM***的数据源的模块的分级关系相对应的多个PLM***模块。
15.一种非暂时性计算机可读介质,其被配置为存储用于创建产品生命周期管理PLM模块的指令,所述指令在被加载并且由处理器执行时使得所述处理器:
响应于将模块从源代码管理SCM***转移到产品生命周期管理PLM***的用户请求,由所述SCM***中的处理器,从所述SCM***的数据源提取表示模块、所述模块的版本和所述模块的分级关系的数据;
创建PLM***模块,所述PLM***模块具有表示所述模块、所述模块的版本以及所述模块的分级关系的所提取的数据;
阻止新更新线程在所述PLM***处开始;
等待其他运行的线程完成;
阻止触发开始自动更新过程;
执行所述更新过程所需的更新;
解除对所述触发的阻止;以及
允许新线程开始。
16.如权利要求15所述的非暂时性计算机可读介质,其中,所述指令还使得所述处理器:
通过取回创建与数据模块要求相匹配的所述PLM***模块所需的附加信息,定制所提取的数据以与所述PLM***的所述数据模块要求相匹配。
17.如权利要求16所述的非暂时性计算机可读介质,其中,创建所述PLM***模块采用定制的提取的数据。
18.如权利要求15所述的非暂时性计算机可读介质,其中,所述指令还使得所述处理器:
将所述SCM***的标识映射到所述PLM***的对应的标识;
其中,所述SCM***的标识和所述PLM***的对应的标识是不同的标识符并且还表示相同的用户实体。
19.如权利要求15所述的非暂时性计算机可读介质,其中,所述指令还使得所述处理器:
在所创建的PLM***模块中提供具有到所述SCM***的模块的链接的痕迹。
20.如权利要求19所述的非暂时性计算机可读介质,其中,所述指令还使得所述处理器:
响应于更新请求,通过访问所述痕迹而将所创建的PLM***模块的版本与所述SCM***的所链接的模块的版本进行比较;以及
如果所述SCM***的模块是较新的版本,则将所述PLM***模块更新为所述SCM***的模块的较新版本。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US14/935,789 | 2015-11-09 | ||
US14/935,789 US10621524B2 (en) | 2015-11-09 | 2015-11-09 | Exporting hierarchical data from a source code management (SCM) system to a product lifecycle management (PLM) system |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107025108A CN107025108A (zh) | 2017-08-08 |
CN107025108B true CN107025108B (zh) | 2021-06-15 |
Family
ID=57286259
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610977797.XA Active CN107025108B (zh) | 2015-11-09 | 2016-11-08 | 从源代码管理(scm)***将分级数据导出到产品生命周期管理(plm)*** |
Country Status (4)
Country | Link |
---|---|
US (1) | US10621524B2 (zh) |
EP (1) | EP3166029B1 (zh) |
JP (1) | JP6917695B2 (zh) |
CN (1) | CN107025108B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
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 |
US10621526B2 (en) | 2015-11-09 | 2020-04-14 | Dassault Systemes Americas Corp. | Exporting hierarchical data from a product lifecycle management (PLM) system to a source code management (SCM) system |
US10311030B1 (en) * | 2017-05-05 | 2019-06-04 | Jpmorgan Chase Bank, N.A. | Method and system for implementing an automated migration tool |
US10403123B2 (en) * | 2017-10-31 | 2019-09-03 | Global Tel*Link Corporation | Augmented reality system for guards of controlled environment residents |
US11693868B2 (en) * | 2020-06-08 | 2023-07-04 | Apriori Technologies, Inc. | Insight generation based on retrieved PLM data |
US11669310B2 (en) * | 2020-12-31 | 2023-06-06 | Nb Ventures, Inc. | Codeless development of enterprise application |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040002944A1 (en) * | 2002-07-01 | 2004-01-01 | Andreas Hauser | Integration of heterogeneous applications |
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 |
CN101611410A (zh) * | 2006-12-22 | 2009-12-23 | 哈里斯施特拉特克斯网络运行公司 | 制造***和方法 |
CN102902529A (zh) * | 2011-09-07 | 2013-01-30 | 微软公司 | 变换的上下文知晓数据源管理 |
US20130116984A1 (en) * | 2011-11-03 | 2013-05-09 | Dassault Systemes | Designing a Modeled Volume Represented by Dexels |
Family Cites Families (25)
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 |
WO2002001416A2 (en) | 2000-06-23 | 2002-01-03 | 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 |
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 |
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 |
US10621526B2 (en) | 2015-11-09 | 2020-04-14 | Dassault Systemes Americas Corp. | Exporting hierarchical data from a product lifecycle management (PLM) system to a source code management (SCM) system |
-
2015
- 2015-11-09 US US14/935,789 patent/US10621524B2/en active Active
-
2016
- 2016-11-07 JP JP2016217357A patent/JP6917695B2/ja active Active
- 2016-11-07 EP EP16197618.8A patent/EP3166029B1/en active Active
- 2016-11-08 CN CN201610977797.XA patent/CN107025108B/zh active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20040002944A1 (en) * | 2002-07-01 | 2004-01-01 | Andreas Hauser | Integration of heterogeneous applications |
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 |
CN101611410A (zh) * | 2006-12-22 | 2009-12-23 | 哈里斯施特拉特克斯网络运行公司 | 制造***和方法 |
CN102902529A (zh) * | 2011-09-07 | 2013-01-30 | 微软公司 | 变换的上下文知晓数据源管理 |
US20130116984A1 (en) * | 2011-11-03 | 2013-05-09 | Dassault Systemes | Designing a Modeled Volume Represented by Dexels |
Also Published As
Publication number | Publication date |
---|---|
EP3166029A1 (en) | 2017-05-10 |
US20170132556A1 (en) | 2017-05-11 |
JP2017091531A (ja) | 2017-05-25 |
US10621524B2 (en) | 2020-04-14 |
CN107025108A (zh) | 2017-08-08 |
EP3166029B1 (en) | 2022-08-24 |
JP6917695B2 (ja) | 2021-08-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107025108B (zh) | 从源代码管理(scm)***将分级数据导出到产品生命周期管理(plm)*** | |
CN107038519B (zh) | 用于***之间的双向数据同步的方法和*** | |
CN109840429B (zh) | 智能合约部署、调用方法和装置 | |
Grinberg | Flask web development | |
US11561956B2 (en) | Key pattern management in multi-tenancy database systems | |
US10482080B2 (en) | Exchanging shared containers and adapting tenants in multi-tenancy database systems | |
US8321856B2 (en) | Supplying software updates synchronously | |
US10452646B2 (en) | Deploying changes in a multi-tenancy database system | |
US10740093B2 (en) | Advanced packaging techniques for improving work flows | |
EP2246782A1 (en) | Application modification framework | |
US20090271777A1 (en) | Method for distributing update modules for computer software over a network | |
US9274783B2 (en) | Dynamic delivery and integration of static content into cloud | |
CN106575227B (zh) | 自动软件更新框架 | |
CN103248524A (zh) | 基于柔性测试技术的测试数据版本控制方法、装置及*** | |
US20200104107A1 (en) | Systems and methods for deploying software products to environments | |
CN107169000A (zh) | 静态资源发布方法及装置 | |
US20170329698A1 (en) | System and Method for Provisioning a Virtual Machine Test Environment | |
US10540397B2 (en) | Algorithm to check compatibility of business object types to prevent business catalog corruption on resource update | |
CN106990978B (zh) | 从产品生命周期管理(plm)***向源代码管理(scm)***导出分层数据 | |
US10146664B2 (en) | Virtual test environment for webpages with automation features | |
Le Zou et al. | On synchronizing with web service evolution | |
CN116954593A (zh) | 软件开发方法、装置、设备及存储介质 | |
CN118012453A (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 |