相關申請
本申請涉及轉讓給共同的受讓人并且與本申請在同一日提交的iandobinson和peterhaynes做出的“exportinghierarchicaldatafromaproductlifecyclemanagement(plm)systemtoasourcecodemanagement(scm)system”(代理人案號4659.1020-000)以及轉讓給共同的受讓人并且與本申請在同一日提交的iandobinson和peterhaynes做出的“bi-directionalsynchronizationofdatabetweenaproductlifecyclemanagement(plm)systemandasourcecodemanagement(scm)system”(代理人案號4659.1021-000)的共同提交的美國申請。
上述申請的整個教導通過引用方式合并于本文中。
背景技術:
硬件開發(fā)者,尤其是集成電路設計共同體中的硬件開發(fā)者,通常將分級開發(fā)方法應用于設計,其中高級產品參考子產品或者構建于子產品之外。類似地,軟件開發(fā)者通常使用分級,更高級的軟件組件使用可重用軟件區(qū)塊。
源代碼管理(scm)系統(tǒng)在其最基礎級上提供了對存儲在存儲器或數(shù)據庫中的數(shù)據文件集合進行版本控制的手段,這允許跟蹤那些文件隨時間的變化。scm系統(tǒng)的示例是:
a)
b)公共可用的concurrentversioningsystem(cvs);
c)公共可用的git修訂控制系統(tǒng);以及
d)在商業(yè)支持下可用的subversionandperforce系統(tǒng)。
分級scm系統(tǒng)這樣的系統(tǒng):其中數(shù)據文件能夠被管理為包或模塊,包或模塊可以包含大量的單獨的文件。模塊或包還可以引用其他模塊或包而形成分級的數(shù)據。
產品生命周期管理(plm)系統(tǒng)提供了用于從開端、工程設計、制造、到所制造的產品的服務和處置來管理產品的整個生命周期的過程。plm系統(tǒng)集成了人、數(shù)據、過程和商業(yè)系統(tǒng),并且提供了用于公司及其擴展企業(yè)的產品信息構架。plm系統(tǒng)將數(shù)據表示為由關系連接的一系列對象。例如,第一對象可以代表開發(fā)中的產品,其與表示正在開發(fā)產品的組織的第二對象有關系。這些對象還可以支持表示對象的不同發(fā)布或者表示對象的開發(fā)狀態(tài)的修訂(或版本)(例如,不同的修訂可能代表芯片的版本1.0或者芯片的后來的2.0版本,或者還可能表示處于朝向未來發(fā)布的進展中的工作)。這些對象還可以支持經由相同或相似類型的對象之間的關系的分級。例如,表示芯片的對象可以與表示作為該芯片的部分的cpu模塊的對象有關系。由
技術實現(xiàn)要素:
在本發(fā)明的實施例中,系統(tǒng)和方法提供了用于將分級的數(shù)據塊集合的描述從scm系統(tǒng)傳遞到plm系統(tǒng)的方案。在本發(fā)明的實施例中,系統(tǒng)和方法將數(shù)據從plm系統(tǒng)傳輸?shù)街С址旨壴O計的scm系統(tǒng)。在本發(fā)明的實施例中,系統(tǒng)和方法發(fā)明手動地或者自動地將分級的數(shù)據塊集合的描述從plm系統(tǒng)傳遞到scm系統(tǒng)或者從scm系統(tǒng)傳遞到plm系統(tǒng)。
傳統(tǒng)地,plm系統(tǒng)和scm系統(tǒng)尚未鏈接。至少一些已知的解決方案提供了對兩個系統(tǒng)中的數(shù)據進行鏈接的方式,并且提供了將數(shù)據從scm系統(tǒng)拉入plm系統(tǒng)的有限的支持。然而,先前的方式不高效,功能受限,并且不允許從scm系統(tǒng)控制流程,如本發(fā)明的實施例中,允許數(shù)據結構在plm系統(tǒng)中定義,然后下推至scm系統(tǒng),或者隨著對應的數(shù)據在另一系統(tǒng)中被修改而將一個系統(tǒng)中的數(shù)據自動更新。
scm至plm
本發(fā)明的一個實施例描述了一種將數(shù)據從支持分級設計的scm系統(tǒng)傳輸?shù)絧lm或類似系統(tǒng)的手段。傳遞數(shù)據包括從scm系統(tǒng)提取數(shù)據以及將數(shù)據轉換成便攜格式,包括分級連接以及那些連接是否是子塊的具體發(fā)布或開發(fā)中的版本的細節(jié)。
該系統(tǒng)還定制該數(shù)據,使得系統(tǒng)的單獨的實現(xiàn)方式能夠提供目標plm系統(tǒng)的對象所需的數(shù)據。系統(tǒng)隨后將該數(shù)據傳輸?shù)絧lm系統(tǒng)。
該系統(tǒng)在plm系統(tǒng)中創(chuàng)建表示來自scm系統(tǒng)的數(shù)據塊及其版本以及它們之間的分級連接的對象。
該系統(tǒng)進一步經由scm系統(tǒng)上的定制功能基于所傳遞的附加數(shù)據來定制在plm系統(tǒng)中創(chuàng)建的數(shù)據的類型、用于連接數(shù)據的關系以及plm系統(tǒng)中的對象。
系統(tǒng)隨后將關于等同于scm數(shù)據對象的、已經創(chuàng)建的對象的信息傳回scm系統(tǒng),使得該信息能夠存儲以用于跟蹤目的。
在實施例中,本發(fā)明在plm系統(tǒng)中根據scm系統(tǒng)中的數(shù)據創(chuàng)建新數(shù)據。
本發(fā)明的實施例提供了從scm系統(tǒng)進行數(shù)據傳輸?shù)某跏蓟涂刂啤_@允許有先進的定制和控制能力。該系統(tǒng)進一步提供用于存儲關于scm系統(tǒng)的跟蹤信息的方案。
scm系統(tǒng)管理定義系統(tǒng)級對象及其分級關系的數(shù)據。因此,有益的是數(shù)據在其在scm系統(tǒng)中被創(chuàng)建時從scm系統(tǒng)插入plm系統(tǒng)?,F(xiàn)有的解決方案沒有提供一種如本發(fā)明的實施例那樣利用從scm系統(tǒng)控制的過程來在plm系統(tǒng)內直接創(chuàng)建數(shù)據的手段。
不同的plm系統(tǒng)保存用于單獨的對象的不同類型,以及不同的scm系統(tǒng)或者具體scm系統(tǒng)的不同實現(xiàn)方式的信息(例如,屬性/特性)。plm系統(tǒng)對能夠用于填充到plm系統(tǒng)中的信息中的不同的數(shù)據集具有訪問權。因此,在本發(fā)明的實施例中,當從scm系統(tǒng)將數(shù)據傳輸?shù)絧lm系統(tǒng)時,系統(tǒng)能夠聚集、生成并且供給該附加信息。現(xiàn)有的解決方案還不支持創(chuàng)建數(shù)據和相關聯(lián)的屬性設置的具體定制。
一旦數(shù)據已經傳輸?shù)絧lm系統(tǒng),scm保留到所創(chuàng)建的對象的鏈接。從scm系統(tǒng)到plm系統(tǒng)的鏈接能夠通過允許scm系統(tǒng)直接鏈接到plm系統(tǒng)中的等同對象來實現(xiàn)先進的功能。例如,scm系統(tǒng)能夠實現(xiàn)如下功能:如果scm系統(tǒng)得知該對象是什么,則直接顯示等同的plm系統(tǒng)對象?,F(xiàn)有的解決方案沒有提供將該跟蹤(例如,痕跡(breadcrumb))信息存儲在scm系統(tǒng)內。
plm至scm
本發(fā)明的實施例是一種用于將分級的數(shù)據塊集合的描述從plm系統(tǒng)傳遞到scm系統(tǒng)的方案。傳遞描述包括:從plm系統(tǒng)提取數(shù)據變?yōu)楸銛y格式,包括分級連接以及那些連接是否是到子塊的特定發(fā)布或者到開發(fā)中的版本的細節(jié)。系統(tǒng)進一步定制該數(shù)據,使得系統(tǒng)的單獨的實現(xiàn)方式能夠提供由目標scm系統(tǒng)所使用的數(shù)據。該系統(tǒng)進一步將該數(shù)據傳輸?shù)絪cm系統(tǒng)。該系統(tǒng)進一步在scm系統(tǒng)中創(chuàng)建表示來自scm系統(tǒng)的對象以及對象之間的分級連接的容器對象。該系統(tǒng)進一步經由plm系統(tǒng)上的定制功能,基于所傳遞的附加數(shù)據來定制scm系統(tǒng)中的對象。該系統(tǒng)進一步將關于等同于plm數(shù)據對象的、已經創(chuàng)建的對象的信息傳遞回plm系統(tǒng),使得該信息能夠被存儲以用于跟蹤目的。
plm系統(tǒng)中的數(shù)據用于許多操作,例如,跟蹤包含產品的部分的開發(fā)狀況以及跟蹤針對包括產品的任意部分所發(fā)現(xiàn)的問題(例如,缺陷、漏洞)。
在許多情況下,采用匯總數(shù)據來得到產品的總體狀況。例如,諸如計算機芯片的產品可能由多個組件構成,諸如隨機存取存儲器(ram)和中央處理單元(cpu)。如果針對cpu發(fā)現(xiàn)了問題并且提出了對應的缺陷,則芯片的管理者期望匯總報告,該匯總報告表明該缺陷存在于一些子組件并且因此影響了芯片:因此,在系統(tǒng)中精確地跟蹤plm系統(tǒng)中的數(shù)據,尤其是較高級產品對子塊的分級連接/使用。
plm系統(tǒng)能夠被視為用于定義設計的塊以及它們之間的分級關系的主控。也即,設計的結構創(chuàng)建于plm系統(tǒng)中并且scm系統(tǒng)用于管理用于包括結構的塊的單獨的數(shù)據文件。scm系統(tǒng)包含其自身的對象以表示設計的塊以及它們之間的分級關系,使得scm系統(tǒng)的用戶能夠取得正確的包括設計的數(shù)據集并且對該數(shù)據執(zhí)行它們的操作。
本發(fā)明的實施例提供了利用已經在plm系統(tǒng)內放到一起的定義來在scm系統(tǒng)內創(chuàng)建塊以及它們之間的連接的能力?,F(xiàn)有的解決方案未提供利用從plm系統(tǒng)控制的過程來在scm系統(tǒng)內直接創(chuàng)建數(shù)據的手段。
不同的plm系統(tǒng)存儲用于單獨的對象的不同類型的信息(例如屬性、特性),并且不同的scm系統(tǒng)可以存儲從plm系統(tǒng)中的信息定義的不同數(shù)據集。在本發(fā)明的實施例中,從plm系統(tǒng)傳輸數(shù)據到scm系統(tǒng)足夠靈活來處理這種附加信息?,F(xiàn)有的解決方案不支持數(shù)據的創(chuàng)建和相關聯(lián)的屬性設置的過程的詳細定制。
一旦數(shù)據被傳輸?shù)絪cm系統(tǒng),plm系統(tǒng)保留到所創(chuàng)建的對象的鏈接并且scm系統(tǒng)維護在plm系統(tǒng)中的等同的源對象的知識。這使得通過允許scm系統(tǒng)直接鏈接到plm系統(tǒng)中的等同對象來實現(xiàn)先進的功能。例如,scm系統(tǒng)可以實現(xiàn)如下功能:如果scm系統(tǒng)知道該對象是什么則直接顯示等同的plm系統(tǒng)對象?,F(xiàn)有的解決方案不能提供將該跟蹤(或痕跡)信息存儲在scm系統(tǒng)內。本發(fā)明的實施例根據plm系統(tǒng)中的數(shù)據在scm系統(tǒng)中創(chuàng)建新數(shù)據。
本發(fā)明的實施例通過如下改進了先前可用的解決方案:
a)允許從plm系統(tǒng)進行數(shù)據傳輸?shù)某跏蓟涂刂疲?/p>
b)允許基于plm系統(tǒng)信息來在scm系統(tǒng)中創(chuàng)建新容器對象(例如,designsync系統(tǒng)中的模塊)或現(xiàn)有對象的新分支;
c)提供先進的定制和控制能力;以及
d)提供存儲關于scm和plm系統(tǒng)的跟蹤信息的方案。
從plm到scm的自動更新或者從scm到plm的自動更新
本發(fā)明的實施例將分級的數(shù)據塊集合的描述手動地或者自動地從plm系統(tǒng)傳遞到scm系統(tǒng),或者從scm系統(tǒng)傳遞到plm系統(tǒng)。該系統(tǒng)通過采用上述系統(tǒng)提取一個系統(tǒng)上的數(shù)據并且將該數(shù)據傳輸?shù)搅硪幌到y(tǒng)來傳遞描述。該系統(tǒng)還提供對先前所描述的系統(tǒng)的擴展以允許對目標系統(tǒng)上數(shù)據的增量更新。對上述系統(tǒng)的擴展進一步允許用戶手動開始以一側的數(shù)據為起始的更新。該系統(tǒng)進一步自動標識變化且在兩個系統(tǒng)之間同步這些變化。
在實施例中,本發(fā)明允許在plm或scm系統(tǒng)上分級數(shù)據的不間斷的開發(fā)以及該數(shù)據的持續(xù)同步。在實施例中,本發(fā)明進一步允許自動同步數(shù)據,從而防止由于在任一系統(tǒng)內存在過期信息導致的任何問題。
在實施例中,系統(tǒng)將數(shù)據從plm系統(tǒng)傳輸?shù)街С址旨壴O計的scm系統(tǒng),反之亦然。在這些實施例中,傳輸是由用戶啟動的,并且旨在用于系統(tǒng)之間的初始數(shù)據推送。系統(tǒng)手動地或者自動地更新兩個系統(tǒng)上的數(shù)據并且同步數(shù)據。
分級scm系統(tǒng)允許將數(shù)據文件管理為包或模塊,其可以包含大量的單獨的文件。這些模塊可以引用其它模塊而形成數(shù)據的分級。
scm系統(tǒng)存儲其自身的表示設計的塊和塊之間的分級關系的對象,使得scm系統(tǒng)的用戶能夠取得包括設計的正確的數(shù)據集并且對該數(shù)據執(zhí)行操作。
隨時間推移,結構的定義可以通過多種方式來變化。例如,可以利用plm系統(tǒng)決定產品的體系結構在通常由設計中的某其它組提供的附加塊或者可替代的ip塊(例如,模塊、設計段或知識產權(ip)件)采用。作為另一示例,可以利用scm系統(tǒng)決定產品的開發(fā)者將塊分割成兩個部分用于實現(xiàn)的目的。作為又一示例,開發(fā)設計的子塊中的一個的團隊可以發(fā)布該塊的新版本并且可以決定在父產品中采用新版本。
當使用本發(fā)明的實施例時,可以在開發(fā)期間的任何時候執(zhí)行改變并且改變可以從plm系統(tǒng)或scm系統(tǒng)開始。如果對僅一個系統(tǒng)上的結構做了改變,則會出現(xiàn)麻煩。例如,在plm系統(tǒng)中所做的變化而沒有在scm系統(tǒng)中做出變化會導致正在構建錯誤的產品,對于產品可靠性或功能產生災難性的影響。作為另一示例,在scm系統(tǒng)中所做的改變,而沒有在plm系統(tǒng)中做出改變,會導致問題的不正確跟蹤,或者ip使用的不正確跟蹤。這會導致ip許可問題或者缺失對問題的精確跟蹤,可能導致產品可靠性問題(在沒有現(xiàn)有漏洞的認知的情況下運送產品)。
現(xiàn)有的解決方案沒有提供一種手動地或者自動地由另一系統(tǒng)中的源定義來增量地更新一個系統(tǒng)中的數(shù)據的手段。
在實施例中,計算機方法包括,響應于用戶請求而將模塊從源代碼管理(scm)系統(tǒng)傳輸?shù)疆a品生命周期管理(plm)系統(tǒng),由scm系統(tǒng)中的處理器,從scm系統(tǒng)的數(shù)據源提取表示模塊、模塊的版本和模塊的分級關系的數(shù)據。該方法還包括:創(chuàng)建plm系統(tǒng)模塊,該plm系統(tǒng)模塊具有表示模塊、模塊的版本和模塊的分級關系的所提取的數(shù)據。
在實施例中,該方法還包括,通過取回創(chuàng)建與數(shù)據模塊要求相匹配的plm系統(tǒng)模塊所需的附加信息,定制所提取的數(shù)據以與plm系統(tǒng)的數(shù)據模塊要求相匹配。創(chuàng)建plm系統(tǒng)模塊能夠采用定制的提取的數(shù)據。
在實施例中,該方法還包括將scm系統(tǒng)的標識映射到plm系統(tǒng)的對應的標識。所述scm系統(tǒng)的標識和所述plm系統(tǒng)的對應的標識可以是不同的標識符并且還表示相同的用戶實體。
在實施例中,該方法還包括在所創(chuàng)建的scm系統(tǒng)模塊中提供具有到所述plm系統(tǒng)的模塊的鏈接的痕跡。該方法還可以包括,響應于更新請求,通過訪問所述痕跡而將所創(chuàng)建的plm系統(tǒng)模塊的版本與所述scm系統(tǒng)的所鏈接的模塊的版本進行比較。如果所述scm系統(tǒng)的模塊是較新的版本,則將所述plm系統(tǒng)模塊更新為所述scm系統(tǒng)的模塊的較新版本。
在實施例中,創(chuàng)建所述plm系統(tǒng)模塊包括創(chuàng)建與來自所述scm系統(tǒng)的數(shù)據源的所述模塊的分級關系相對應的多個plm系統(tǒng)模塊。
在實施例中,計算機系統(tǒng)包括處理器和其中存儲有計算機代碼指令的存儲器。該存儲器與所述處理器可操作地耦合,使得所述計算機代碼指令將所述處理器配置為實現(xiàn):提取模塊,其被配置為,響應于用戶請求而將模塊從源代碼管理(scm)系統(tǒng)傳輸?shù)疆a品生命周期管理(plm)系統(tǒng),由scm系統(tǒng)的處理器,從所述scm系統(tǒng)的數(shù)據源提取表示模塊、模塊的版本以及模塊的分級關系的數(shù)據。計算機代碼指令還將處理器配置為實現(xiàn)創(chuàng)建模塊,創(chuàng)建模塊被配置為創(chuàng)建具有表示模塊、模塊的版本以及模塊的分級關系的所提取的數(shù)據的plm系統(tǒng)模塊。
在實施例中,該系統(tǒng)還包括定制模塊,定制模塊被配置為,通過取回創(chuàng)建與數(shù)據模塊要求相匹配的plm系統(tǒng)模塊所需的附加信息,定制所提取的數(shù)據以與所述plm系統(tǒng)的數(shù)據模塊要求相匹配。創(chuàng)建所述plm系統(tǒng)模塊可以采用定制的提取的數(shù)據。
在實施例中,計算機系統(tǒng)還可以包括映射模塊,其被配置為將所述scm系統(tǒng)的標識映射到所述plm系統(tǒng)的對應的標識。所述scm系統(tǒng)的標識和所述plm系統(tǒng)的對應的標識可以是不同的標識符并且還表示相同的用戶實體。
在實施例中,計算機系統(tǒng)還包括痕跡模塊,其被配置為在所創(chuàng)建的scm系統(tǒng)模塊中提供具有到所述plm系統(tǒng)的模塊的鏈接的痕跡。該系統(tǒng)還可以包括比較模塊,其被配置為,響應于更新請求,通過訪問所述痕跡來將所創(chuàng)建的plm系統(tǒng)模塊的版本與所述scm系統(tǒng)的鏈接的模塊的版本進行比較。如果所述scm系統(tǒng)的模塊是較新的版本,則所述比較模塊將所述plm系統(tǒng)模塊更新成所述scm系統(tǒng)的模塊的較新版本。
在實施例中,創(chuàng)建所述plm系統(tǒng)模塊包括創(chuàng)建與來自所述scm系統(tǒng)的數(shù)據源的模塊的分級關系相對應的多個plm系統(tǒng)模塊。
在實施例中,一種非暫時性計算機可讀介質,其被配置為存儲用于創(chuàng)建產品生命周期管理(plm)模塊的指令。所述指令在被加載并且由處理器執(zhí)行時使得所述處理器,響應于用戶請求以將模塊從源代碼管理(scm)系統(tǒng)傳輸?shù)疆a品生命周期管理(plm)系統(tǒng),由所述scm系統(tǒng)中的處理器,從所述scm系統(tǒng)的數(shù)據源提取表示模塊、所述模塊的版本和所述模塊的分級關系的數(shù)據。該指令進一步使得處理器創(chuàng)建plm系統(tǒng)模塊,所述plm系統(tǒng)模塊具有表示模塊、模塊的版本和模塊的分級關系的所提取的數(shù)據。
在實施例中,該指令進一步使得處理器,通過取回創(chuàng)建與數(shù)據模塊要求相匹配的plm系統(tǒng)模塊所需的附加信息,定制所提取的數(shù)據以與所述plm系統(tǒng)的數(shù)據模塊要求相匹配。創(chuàng)建所述plm系統(tǒng)模塊可以采用定制的提取的數(shù)據。
在實施例中,該指令進一步使得處理器,將所述scm系統(tǒng)的標識映射到所述plm系統(tǒng)的對應的標識。所述scm系統(tǒng)的標識和所述plm系統(tǒng)的對應的標識可以是不同的標識符并且還表示相同的用戶實體。
在實施例中,該指令進一步使得處理器,在所創(chuàng)建的scm系統(tǒng)模塊中提供具有到所述plm系統(tǒng)的模塊的鏈接的痕跡。該指令進一步使得處理器,響應于更新請求,通過訪問所述痕跡而將所創(chuàng)建的plm系統(tǒng)模塊的版本與所述scm系統(tǒng)的所鏈接的模塊的版本進行比較。如果所述scm系統(tǒng)的模塊是較新的版本,則所述指令將所述plm系統(tǒng)模塊更新為所述scm系統(tǒng)的模塊的較新版本。
附圖說明
前面所述將從本發(fā)明的示例性實施例的以下更具體的描述中變得明顯,如附圖所示的,在附圖中相似的附圖標記在不同的視圖中指代相同的部件。附圖不一定按比例繪制,相反重點應放在圖示說明本發(fā)明的實施例。
圖1是示出了本發(fā)明的示范性的實施例的框圖。
圖2是示出了plm系統(tǒng)的分級的示例性實施例的框圖。
圖3是示出了根據本發(fā)明的實施例的將模塊從scm系統(tǒng)發(fā)送到plm系統(tǒng)的框圖。
圖4是示出了由本發(fā)明采用的過程的示例性實施例的流程圖。
圖5是示出了將plm系統(tǒng)對象數(shù)據導入scm系統(tǒng)的示例性實施例的框圖。
圖6是示出了由本發(fā)明采用用于將數(shù)據從plm系統(tǒng)導入到scm系統(tǒng)的過程的示例性實施例的流程圖。
圖7示出的是示出了本發(fā)明所采用的在另一系統(tǒng)中的對應模塊變化時自動更新scm或plm系統(tǒng)中的導入的信息的過程的示例性實施例的流程圖。
圖8示出了可以實現(xiàn)本發(fā)明的實施例的計算機網絡或類似的數(shù)字處理環(huán)境。
圖9是在圖8的計算機系統(tǒng)中的計算機(例如,客戶端處理器/設備或服務器計算機)的示例的內部結構的示意圖。
具體實施方式
本發(fā)明的示例性實施例的描述如下。
圖1是示出了本發(fā)明的示例性實施例的框圖100。用戶102采用與第一管理系統(tǒng)106和第二管理系統(tǒng)108耦合的接口系統(tǒng)104。第一管理系統(tǒng)106和第二管理系統(tǒng)108的示例分別可以是scm或plm。scm和plm均采用模塊的分級集合來在scm的情況下形成源代碼解決方案或者在plm的情況下形成產品。在許多情形下,plm中的產品,諸如芯片,可能在其設計中需要源代碼,并且源代碼設計可能需要硬件資源。因此,用于將模塊從第一管理系統(tǒng)106導入第二管理系統(tǒng)108的系統(tǒng)是期望的。
第一管理系統(tǒng)106和第二管理系統(tǒng)108與能夠任選地存儲在相應的云網絡110a-110c和114a-114c上的相應的模塊數(shù)據庫112a-112c和116a-116c耦合。在實施例中,模塊數(shù)據庫112a-112c和116a-116c還可以本地存儲(未示出),或者存儲在單一遠程服務器(未示出)上,或者在多個遠程服務器(未示出)上。用戶102,經由接口系統(tǒng)104,引導待導入模塊118從第一管理系統(tǒng)106被發(fā)送到第二管理系統(tǒng)108。第一管理系統(tǒng)106還將支持數(shù)據122發(fā)送到第二管理系統(tǒng)108。支持數(shù)據122可以包括關于模塊118、支持模塊的分級信息以及關于模塊的痕跡信息。
此外,在一個實施例中,第一管理系統(tǒng)106和第二管理系統(tǒng)108可以將相應的自動更新120a-120b發(fā)送給彼此。自動更新120a-120b在一個系統(tǒng)上修改所導入的模塊而使得需要在另一系統(tǒng)上進行更新時被發(fā)送。自動更新120a-120b將詳細描述于下文。
圖2是示出了plm系統(tǒng)中的分級的示例性實施例的框圖200。示例的分級包括芯片202,其與隨機存取存儲器(ram)204和中央處理單元(cpu)206二者相關。芯片202與ram204和cpu206具有“使用”關系,表明ram204和cpu206是芯片22的子組件。
plm系統(tǒng)中的數(shù)據用于操作,例如,跟蹤構成產品的件(例如,芯片202、ram204和cpu206)的開發(fā)狀態(tài)。plm還可以跟蹤在構成產品的件(諸如,芯片202、ram204和cpu206)中所發(fā)現(xiàn)的問題208(例如,缺陷/漏洞)。問題208指示關于cpu206所發(fā)現(xiàn)的問題。問題208還可以指示由于問題208所出現(xiàn)的缺陷210。缺陷210鏈接到cpu206,因為問題208直接與cpu206相關。缺陷210還與芯片202具有‘影響’關系,因為cpu206是芯片202的子組件,因此cpu206所存在的缺陷210影響芯片202。
在這些情況中的多種情況下,匯總數(shù)據用于提供產品的總體狀況。例如,諸如計算機芯片的產品可以由多個組件(諸如,ram存儲器和中央處理單元(cpu))構成。如果發(fā)現(xiàn)cpu有問題并且出現(xiàn)了缺陷,則芯片的管理者可以請求表明該缺陷存在于子組件內并且因此影響具有cpu和ram的芯片的匯總報告。plm精確地跟蹤包括較高級產品對子塊的分級連接/使用的數(shù)據。
圖3是示出了根據本發(fā)明的實施例的將模塊從scm系統(tǒng)301發(fā)送到plm系統(tǒng)350的框圖300。
scm系統(tǒng)301包括接口模塊302,接口模塊302具有基于應用編程接口(api)的圖形用戶接口(gui)和/或命令行接口(cli)。gui為終端用戶提供以訪問scm系統(tǒng)301上的功能從而請求代碼模塊的具體分級與plm系統(tǒng)350同步。gui包括使頂級代碼模塊的細節(jié)的用戶輸入同步以及將版本的標識從scm系統(tǒng)301推送到plm的形式。系統(tǒng)允許同時或同期地推送對象的多個不同的版本。另外,該形式允許用戶標識是推送代碼模塊的分級還是僅推送特定的級(例如,僅第一級)。該系統(tǒng)還支持干運行模式(dryrunmode),其支持將假設操作的細節(jié)報告給用戶,而不實施操作。該系統(tǒng)還支持報告模式,其控制返回的輸出的細節(jié)。
接口模塊還提供cli,例如,利用由
scm系統(tǒng)301還包括分級服務模塊304,其提取關于數(shù)據模塊分級的信息以便與plm系統(tǒng)350同步。在示例性實施例中,分級服務模塊304例如采用scm系統(tǒng)301的showhrefs函數(shù)來創(chuàng)建xml格式的結構以便傳遞到plm系統(tǒng)350進行處理。分級服務模塊304將所創(chuàng)建的結構傳遞給plm系統(tǒng)350并且等待結果。返回的結果包括被報告給用戶的所執(zhí)行的操作的記錄,加上由下文所述的痕跡管理系統(tǒng)310所處理的附加信息。
該系統(tǒng)還包括與分級服務304可操作地耦合的定制層306。定制層306,在分級信息的提取之后,允許數(shù)據的修改或擴展。這包括能夠由終端用戶或系統(tǒng)管理者提供的任選的tcl函數(shù)。tcl函數(shù),在被調用時,將提取的數(shù)據作為變元來傳遞。tcl函數(shù)能夠修改數(shù)據以改變值,或者利用用于每個數(shù)據元素的附加信息來擴展數(shù)據。附加值隨后被傳遞到plm系統(tǒng)350。
scm系統(tǒng)301還包括過程配置模塊308。plm系統(tǒng)350被配置為響應于scm系統(tǒng)301而實施的導入過程可以進一步從scm系統(tǒng)301配置。例如,在plm系統(tǒng)350上要創(chuàng)建的對象的類型可取決于源scm系統(tǒng)301。過程配置模塊從數(shù)據庫讀取過程配置設置并且在將數(shù)據發(fā)送到plm系統(tǒng)350之前將過程配置設置應用于數(shù)據。示例的實現(xiàn)方式允許手動地或者經由圖形工具來在注冊文件中設置配置參數(shù)。
scm系統(tǒng)301還包括痕跡管理系統(tǒng)310。一旦plm系統(tǒng)350處理了數(shù)據,plm系統(tǒng)350將數(shù)據結構返回到被增加了關于在plm系統(tǒng)350中創(chuàng)建的對象的信息的scm系統(tǒng)301。在示例性的實現(xiàn)方式中,增加包括用于plm系統(tǒng)350中所創(chuàng)建的數(shù)據的唯一對象標識符。該信息隨后由痕跡管理系統(tǒng)310來處理并且與scm系統(tǒng)301的數(shù)據一起存儲為屬性,使得其可供其它操作在scm系統(tǒng)301上使用。
scm系統(tǒng)301還包括plm服務器映射模塊314以及標識映射模塊316。scm系統(tǒng)301知道plm系統(tǒng)350的地址而與其通信。服務器映射模塊314允許plm系統(tǒng)350以靈活的以及數(shù)據相關的方式提供尋址信息。組織通常具有單個組織域plm系統(tǒng)350,并且因此該系統(tǒng)的單一地址可滿足。然而,服務器映射模塊314支持具有多個plm或者具有多個地址的分布式plm的更復雜的設施。用戶或管理者能夠利用任選地為圖形的配置工具來規(guī)定scm系統(tǒng)301對象與plm平臺地址之間的映射。
另外,用戶的標識能夠在系統(tǒng)之間不同(例如,不同的用戶名或用戶id)。例如,scm系統(tǒng)301可以典型地采用用戶的系統(tǒng)登錄名以用于標識,但是plm系統(tǒng)350可以使用公司域標識或電子郵件地址來登錄。任選的標識映射模塊316提供了用于將用戶的scm系統(tǒng)301標識映射到plm系統(tǒng)350上的標識的可定制系統(tǒng)。在特定的實施例中,id在plm系統(tǒng)350與scm系統(tǒng)301之間相同并且不需要映射。
scm系統(tǒng)301還包括通信層。在樣本的實現(xiàn)中,restfulweb服務318用于scm系統(tǒng)301與plm系統(tǒng)350之間的通信。可以使用其它的通信手段,其提供用于將描述分級的數(shù)據以及另外用戶標識信息從scm系統(tǒng)301傳遞到plm系統(tǒng)350的方案以及提供更新后信息的返回。
plm系統(tǒng)350包括標識映射模塊336以便任選地執(zhí)行同樣到plm系統(tǒng)350上的標識映射。提供到plm系統(tǒng)350和scm系統(tǒng)301上的標識映射,系統(tǒng)允許更大的靈活性,因為a)如果來自全部scm服務器的用戶id一致,則在plm系統(tǒng)350中實現(xiàn)單一標識映射是足夠的,以及b)如果單獨的scm服務器具有不同的用戶id,但是存在單個plm系統(tǒng)350,則在每個scm服務器處實現(xiàn)標識映射是恰當?shù)摹J纠詫崿F(xiàn)的scm系統(tǒng)301側的標識映射模塊將來自scm系統(tǒng)301的標識映射到plm系統(tǒng)350上的標識符。
在plm系統(tǒng)350上的分級服務324接受來自scm系統(tǒng)301的數(shù)據并且控制整個過程。分級服務324調用例程來創(chuàng)建plm系統(tǒng)350中的不同的對象并且將所創(chuàng)建的對象鏈接在一起而形成plm系統(tǒng)350中的分級。分級服務324還為數(shù)據增加痕跡信息并且還將操作的記錄返回scm系統(tǒng)301。
在新數(shù)據創(chuàng)建之后,plm系統(tǒng)350的定制層326為數(shù)據增加已經從scm系統(tǒng)301傳遞的附加信息或者允許以受原配置設置禁止的方式操縱數(shù)據。例如,如果功能的單獨使用想要不同于默認地來對對象進行命名,則定制層326可以重命名對象。任選的重命名方法傳遞有關所導入的以及在plm系統(tǒng)350中創(chuàng)建的等同新對象的全部信息。
plm系統(tǒng)350可進一步通過提供由過程配置模塊328讀和應用的設置來配置。例如,plm系統(tǒng)350能夠配置以此方式創(chuàng)建的對象的類型。例如,配置可以經由具有用于各規(guī)定的配置參數(shù)的可定制值的屬性文件。
對象創(chuàng)建模塊330在plm系統(tǒng)350中創(chuàng)建對象。對象創(chuàng)建模塊330利用來自scm系統(tǒng)301的信息和配置參數(shù)來確定待創(chuàng)建的對象的細節(jié)。另外,創(chuàng)建父對象模塊332可以創(chuàng)建相關聯(lián)的父對象。在樣本實現(xiàn)的情況下,這包括被配置為創(chuàng)建對象的附加版本以充當根版本或者在過程版本中工作以支持版本的整個派生樹的自動創(chuàng)建模塊334。自動創(chuàng)建最新模塊340能夠創(chuàng)建充當模塊基于所采集的上述全部信息所創(chuàng)建的對象的容器的輔助父對象。創(chuàng)建歷史模塊334能夠同樣將模塊的過去的版本信息加載到由自動創(chuàng)建最新模塊340所創(chuàng)建的模塊中。添加標簽模塊342還可以被配置為將標簽或別名添加到所創(chuàng)建的條目上。
例如,對象創(chuàng)建涉及到默認的產品對象的創(chuàng)建以及對表示來自scm系統(tǒng)的數(shù)據的版本,還有實際導入的版本的修訂。新對象連接在一起而形成產品分級。
另外,產品能夠連接到父模型以及產品線組件,它們是在plm系統(tǒng)中使用用于產品開發(fā)過程的一般管理的其它對象類型。
圖4是示出了由本發(fā)明所采用的過程的示例性實施例的流程圖400。響應于plm系統(tǒng)從scm系統(tǒng)所開始的過程接收到來自scm系統(tǒng)的導入數(shù)據,plm系統(tǒng)處理導入數(shù)據中的條目以在plm系統(tǒng)中創(chuàng)建對象(402)。plm系統(tǒng)判定子條目是否存在(404)。如果是,則系統(tǒng)處理父條目中的每個子條目(406)并且將每個子條目連接到父條目(408)。然后,plm系統(tǒng)判定每個所創(chuàng)建的子條目是否存在子條目(404)。如果沒有存在子條目,則過程結束當前子條目分支(410)。最終,全部的分支結束(410)并且該過程結束。
圖5是示出了將plm系統(tǒng)550對象導入scm系統(tǒng)501的示例性實施例的框圖500。
plm系統(tǒng)550包括便于用戶開始將對象分級導出到scm系統(tǒng)501的圖形用戶接口(gui)534。gui534包括允許用戶規(guī)定在scm系統(tǒng)501中所創(chuàng)建的對象是否連接作為錐形結構或對等結構的形式。錐形結構將分級中的子對象的文件組織成在父目錄的目錄下的物理目錄。對等結構將分級中的子對象的文件組織成并行的物理目錄。gui形式還允許用戶規(guī)定導出是初始導出還是更新導出。該設置控制關于條目是否在scm系統(tǒng)501內重用的因素。
plm系統(tǒng)550還存儲scm連接信息,其標識目標scm系統(tǒng)服務器以及在該服務器上的哪里定位有表示來自plm系統(tǒng)的頂級對象的對象。例如,這是經由:
a)庫,其標識scm服務器;
b)路徑,其標識對象在該服務器上的位置;以及
c)選擇器,其標識鏈接到plm對象的scm對象的版本。
plm系統(tǒng)550的實現(xiàn)能夠利用api函數(shù)來直接調用導出控制模塊524,允許系統(tǒng)的全面定制控制。
plm系統(tǒng)550還包括默認分級提取模塊530。例如,默認提取模塊530提供默認提取過程,然而默認過程可以被重寫。默認分級提取模塊530提取關于plm系統(tǒng)550中的數(shù)據對象分級的信息以便導出到scm系統(tǒng)501。在樣本實現(xiàn)中,提取采用數(shù)據庫查找和查詢來提取產品對象的分級。提取過程進一步創(chuàng)建傳遞到導出控制模塊524的數(shù)據結構(例如,java數(shù)據結構)。
plm系統(tǒng)550還包括定制屬性模塊532。定制屬性模塊532能夠提供對導入的定制,或者甚至提供對上述的默認分級提取過程的定制。定制屬性模塊532修改一組屬性或配置值,其能夠控制例如相對于父或頂級對象的存儲位置在哪里創(chuàng)建scm系統(tǒng)中的新對象。
plm系統(tǒng)550還包括作為默認提取模塊530的替代的模塊定制提取模塊528。定制提取模塊528可以例如處理plm系統(tǒng)550中的不同類型的對象,或者規(guī)定用于確定分級中的哪些對象在scm系統(tǒng)501中進行表示以及哪些對象僅為plm目的而呈現(xiàn)并且因此不需要拷貝到scm系統(tǒng)501的定制方案。
導出控制模塊524隨后控制其余的導出過程。導出控制模塊524被配置為:
a)調用過程來執(zhí)行在標識映射模塊522處的任何標識映射;
b)調用web服務層520以將全部數(shù)據傳遞到scm服務器;
c)接收自scm系統(tǒng)501返回的結果;
d)將任何到數(shù)據的本地連接(例如,痕跡)存儲到scm服務器的痕跡管理模塊508上;以及
e)顯示返回給用戶的整個過程的報告(或者將這作為記錄腳本返回給調用者)。
plm系統(tǒng)550還包括對象連接模塊526。從scm系統(tǒng)501傳回的數(shù)據包括與plm對象的創(chuàng)建的scm對象的地址相匹配。每個創(chuàng)建的scm對象的地址包括實際對象標識符(例如,以url的形式)以及標識scm對象的版本以便鏈接到plm對象的選擇器。該信息以plm對象存儲來形成與對應的scm對象的連接。
plm系統(tǒng)550包括標識映射模塊522(任選地)。用戶的標識可以在系統(tǒng)之間不同。例如,scm系統(tǒng)501典型地能夠使用用戶的系統(tǒng)登錄名來用于標識,但是plm系統(tǒng)550可能使用組織域標識或電子郵件地址進行登錄。標識映射模塊522提供了可定制系統(tǒng),用于將plm系統(tǒng)550所知道的用戶標識映射到scm系統(tǒng)501的標識。標識映射是任選的:在特定的系統(tǒng)中,用戶的標識在兩個系統(tǒng)之間不同,并且映射是不必要的。
plm系統(tǒng)550還包括通信層520(例如,基于soap的web服務),用于在plm系統(tǒng)550與scm系統(tǒng)501之間通信。可替代地,scm系統(tǒng)501、plm系統(tǒng)550和scm系統(tǒng)501、或者另一實體可以包括通信層520。其它通信手段可被采用,其提供將描述分級的數(shù)據和用戶標識信息從plm系統(tǒng)550傳遞到scm系統(tǒng)510、返回更新的信息、記錄輸出以及返回值的方案。
scm系統(tǒng)501可以包括標識映射模塊502。標識映射任選地執(zhí)行在scm系統(tǒng)501以及plm系統(tǒng)550上。在兩個系統(tǒng)上提供標識映射允許有更大的靈活性:a)如果在全部scm服務器上使用的用戶名一致,則在plm系統(tǒng)中實現(xiàn)單一標識映射是足夠的;b)如果單獨的scm服務器具有不同的用戶標識,但是存在單個plm系統(tǒng),則在每個scm服務器上實現(xiàn)標識映射是恰當?shù)?。在樣本實現(xiàn)的scm側的標識映射模塊提供了待供給的定制函數(shù),其將來自plm系統(tǒng)的標識映射到scm系統(tǒng)上的標識符。
scm系統(tǒng)501包括具有定制層506的導入控制模塊504。導入控制模塊504接受來自plm系統(tǒng)550的數(shù)據并且控制導入。導入控制模塊504在scm系統(tǒng)501中創(chuàng)建不同的對象并且將它們鏈接在一起而在scm系統(tǒng)501中形成分級。導入控制模塊504進一步為數(shù)據增加痕跡信息并且還將操作的記錄返回plm系統(tǒng)550。
定制層506可以在導入數(shù)據之前或之后被激活。在導入之前,定制層506能夠在數(shù)據從plm系統(tǒng)550被接收到時修訂該數(shù)據。例如,定制層506標識并去除不適合在scm系統(tǒng)510上表示的條目。在導入后,定制層506被傳遞有來自scm系統(tǒng)501的數(shù)據以及關于新創(chuàng)建的scm對象的信息。例如,定制層506接收來自plm系統(tǒng)550的信息并且設置scm對象上的屬性(例如,作者值能夠從plm系統(tǒng)傳遞并且在scm對象上設置)。
scm系統(tǒng)501還包括痕跡管理模塊508。由于在scm系統(tǒng)中創(chuàng)建數(shù)據,痕跡被存儲以將新scm條目與plm系統(tǒng)中的對象鏈接。在示例性的實現(xiàn)中,從plm系統(tǒng)550發(fā)送的數(shù)據包括用于scm對象的對象標識符(例如,整數(shù)是對象的唯一標識符)。來自plm系統(tǒng)550的對象標識符被設置為在scm系統(tǒng)501中所創(chuàng)建的對象(例如,模塊、分支和/或版本)的屬性。
scm系統(tǒng)501還包括數(shù)據預校驗模塊。scm系統(tǒng)另外包括模塊(或對象)創(chuàng)建模塊512。模塊創(chuàng)建模塊512被配置為,如果模塊尚未存在,則在scm系統(tǒng)501中創(chuàng)建表示來自plm系統(tǒng)550的模塊的模塊。分支創(chuàng)建與加標簽模塊514進一步能夠基于其版本進展來創(chuàng)建模塊的不同分支并且能夠進一步將版本數(shù)據作為標簽加到模塊上。分級引用創(chuàng)建模塊516能夠創(chuàng)建所創(chuàng)建的模塊與表示scm系統(tǒng)501中的模塊在存在于plm系統(tǒng)550上時之間的分級關系的現(xiàn)有模塊之間的引用。
圖6是示出了本發(fā)明所采用的用來從plm系統(tǒng)將數(shù)據導入到scm系統(tǒng)的過程的示例性實施例的流程圖600。scm系統(tǒng)開始預校驗數(shù)據(602)。在實施例中,預校驗可以包括校驗數(shù)據的“過失”誤差,這可通過“靜態(tài)”校驗來發(fā)現(xiàn),從而防止過程后來失敗。預校驗中的標準的示例可以包括但不限于,校驗所傳遞的“選擇器”值和“名稱”在目標系統(tǒng)上是有效的。如果數(shù)據預校驗失敗,則過程結束(604)。
然而,如果預校驗通過,則scm系統(tǒng)處理數(shù)據的頂級條目(606)。scm系統(tǒng)判定導入是初始導入模式還是現(xiàn)有導入模式(608)。如果這是初始導入,則系統(tǒng)判定scm對象是否存在于scm系統(tǒng)中(610)。如果是,則導入的模塊可能是重新使用的預存在模塊,并且因此在該點以下的全部數(shù)據已經是正確的,并且過程可以在該點結束(612)。如果對象不是預先存在的模塊,而不是創(chuàng)建新的scm對準,則現(xiàn)有的scm對象能夠更新為到子對象的新鏈接集合。仍可以需要創(chuàng)建新的子對象。
如果模塊不存在(610)或者系統(tǒng)不處于初始模式(608),如果scm系統(tǒng)有必要創(chuàng)建表示plm對象的對應模塊(例如,如果不存在表示已經存在于scm中的plm對象的模塊)(614),則系統(tǒng)創(chuàng)建具有包括初始版本的版本集合的所創(chuàng)建的scm對象的開發(fā)分支(616),并且經由標簽模塊來添加標簽(618)。如果來自plm系統(tǒng)的數(shù)據表明該對象是scm數(shù)據的固定發(fā)布版本,則該系統(tǒng)加上版本數(shù)據這一標簽,創(chuàng)建到scm數(shù)據的版本的固定引用。然而,如果plm數(shù)據表明對象是進展中的工作,則實現(xiàn)到scm數(shù)據的加標簽分支的連接。換言之,其連接到該分支上的數(shù)據的最新版本。plm系統(tǒng)能夠因此表示固定/最終模塊和進展中的開發(fā)。
scm系統(tǒng)則將子條目連接到其父條目(620)。對于分級中的除了頂級條目之外的所有條目,系統(tǒng)利用scm命令將子條目連接到其父對象以實現(xiàn)該連接。在示例的
scm系統(tǒng)隨后判定子條目是否存在(622)。在其它實施例中,過程的次序可以不同,這是因為取決于scm系統(tǒng)及其能力,例如,可能需要在創(chuàng)建父對象之前遞歸地創(chuàng)建全部子條目。然而,在該實施例中,遞歸步驟發(fā)生于創(chuàng)建父對象之前。如果子條目存在,則系統(tǒng)處理子條目(606)。如果不存在,則scm系統(tǒng)結束過程(624)。
圖7示出的是示出了本發(fā)明所采用的在另一系統(tǒng)中的對應模塊變化時自動更新scm或plm系統(tǒng)中的導入信息的過程的示例性實施例的流程圖700。自動更新過程在高級別上是相似的,無論是將數(shù)據從plm移到scm,還是從scm移到plm,然而實現(xiàn)細節(jié)可以不同。下面描述了scm系統(tǒng)701的用戶702開始的更新,其導致結構變化704,然而,相似的描述可應用于plm系統(tǒng)750,其用戶722和對應的結構變化724。
當scm系統(tǒng)701的用戶702執(zhí)行操作而導致數(shù)據的結構變化時,過程開始(704)。該變化可以是如下的任意組合:
(1)從一個對象到子對象的分級引用的添加或去除。分級引用是從結構中的較高級對象到較低級對象的引用(例如,在芯片模塊與cpu之間的鏈接);或者
(2)分級引用的修改(例如,在兩個系統(tǒng)之間反映出的分級引用的一些方面的修改)。該修改可以是例如在待使用的引用對象的版本中的變化或者是待使用以決定子對象數(shù)據相對于父對象放置在文件系統(tǒng)中的哪里的相對路徑(例如,rel路徑)中的變化。
結構變化會影響整體分級結構:添加或修改到子塊的單一引用會從該點向下變到整個分級。
在手動更新中(706),在scm系統(tǒng)701和plm系統(tǒng)750上為用戶所提供的gui訪問功能以請求將對象的具體分級導出(708)到另一系統(tǒng)。
為了提供自動更新,本發(fā)明的實施例在對數(shù)據做出改變時自動觸發(fā)(716)。對于修改數(shù)據的結構的全部改變都調用觸發(fā)程序,確保總是執(zhí)行數(shù)據的同步。觸發(fā)程序被交互地調用,使得如果在單次用戶操作中執(zhí)行多個結構改變則僅調用觸發(fā)程序一次。這通過將改變一次傳遞給目標系統(tǒng)而避免了不必要的工作/數(shù)據傳輸。在觸發(fā)程序激活時,scm系統(tǒng)701訪問存儲的痕跡以將plm系統(tǒng)750中的對象鏈接到scm系統(tǒng)701,或者反之亦然。這確保了用于兩個系統(tǒng)上所表示的數(shù)據的更新被傳遞到目標系統(tǒng)。在第一系統(tǒng)中可能有不打算反映在第二系統(tǒng)上的數(shù)據。自動更新系統(tǒng)通過如下操作來避免反映不必要的數(shù)據:手動地或者由于引用父對象的同步引起的塊的第一同步,以及基于痕跡的存在的后續(xù)自動同步。
scm系統(tǒng)701隨后執(zhí)行自動更新步驟(710),其調用導出過程,這在上文針對每個系統(tǒng)進行了描述(708)。
在plm系統(tǒng)上,更新過程(734)利用相同的api關于終端用戶所執(zhí)行的每個系統(tǒng)執(zhí)行相同類型的上述結構改變。重要的是,修改更新過程(734)以在調用系統(tǒng)上設置旗號標記。旗號標記防止在對目標系統(tǒng)做出改變時擊發(fā)自動觸發(fā)程序,這使得數(shù)據被重新送回調用系統(tǒng),可能導致無限循環(huán)。實現(xiàn)旗號(732)阻止了觸發(fā)程序進行由更新過程所做的更新,但是允許觸發(fā)程序做出來自用戶的其他改變。在多線程系統(tǒng)中,比如典型的scm系統(tǒng)和plm系統(tǒng),存在觸發(fā)程序在更新過程發(fā)生的同時被禁用的危險。禁用則阻止了對不同的線程的某些作用擊發(fā)觸發(fā)程序。旗號的實現(xiàn)取決于所使用的scm系統(tǒng)和plm系統(tǒng)的能力。然而,一個示例的實現(xiàn)包括(1)阻止全部新線程開始;(2)等待其他所有運行的線程結束;(3)阻止觸發(fā)程序;(4)執(zhí)行更新過程所需的更新;(5)解除對觸發(fā)程序的阻止;以及(6)允許新線程開始。
旗號過程(732)確保了在觸發(fā)程序被阻止的同時不發(fā)生其他操作。更精巧的系統(tǒng)采用更新過程所需的全部數(shù)據庫改變的事務并且僅在當該事務正在提交給數(shù)據庫時的期間才阻止觸發(fā)程序,利用了事務提交給數(shù)據庫是單線程的事實。
當plm系統(tǒng)750的用戶722執(zhí)行導致改變數(shù)據的結構的操作時,沿其他方向的過程開始(724)。該改變可以是如下任意組合:
(1)從一個對象到子對象的分級引用的添加或去除。分級引用是從結構中的較高級對象到較低級對象的引用(例如,芯片模塊與cpu之間的鏈接);或者
(2)分級引用的修改(例如,在兩個系統(tǒng)之間反映的分級引用的某方面的修改)。該修改可以是例如待使用的引用對象的版本的改變或者是待使用來決定子對象數(shù)據相對于父對象放入文件系統(tǒng)中的何處的相對路徑(例如,ref路徑)的改變。
結構改變會影響整體分級結構:添加或修改對子塊的單一引用能夠從該點向下改變整個分級。
在手動更新(726)中,在plm系統(tǒng)750和scm系統(tǒng)701上為用戶提供的gui訪問功能來請求將對象的具體分級導出(728)到另一系統(tǒng)。
為了提供自動更新,本發(fā)明的實施例在對數(shù)據做出改變時自動地觸發(fā)(726)。針對修改數(shù)據的結構的全部改變調用觸發(fā)程序,確保數(shù)據的同步總是執(zhí)行。觸發(fā)程序被交互地調用,使得如果在單次用戶操作中執(zhí)行了多個結構改變,則僅調用觸發(fā)程序一次。這通過將改變一次傳遞到目標系統(tǒng)來避免不必要的工作/數(shù)據傳輸。在觸發(fā)程序激活時,plm系統(tǒng)750訪問存儲的痕跡以將scm系統(tǒng)701中的對象鏈接到plm系統(tǒng)750,反之亦然。這確保了對于在兩個系統(tǒng)上所表示的數(shù)據,更新被傳遞到目標系統(tǒng)。在第一系統(tǒng)中存在不打算反映在第二系統(tǒng)上的數(shù)據。自動更新系統(tǒng)通過如下來避免反映不必要的數(shù)據:手動或者由于引用父對象的同步引起的塊的第一同步,以及隨后基于痕跡的存在的自動同步。
plm系統(tǒng)750隨后執(zhí)行自動更新步驟(730),其調用上文對于每個系統(tǒng)所描述的導出過程(728)。
在scm系統(tǒng)701上,更新過程(714)利用相同的api關于終端用戶所執(zhí)行的每個系統(tǒng)執(zhí)行相同類型的上述結構改變。重要的是,修改更新過程(714)以在調用系統(tǒng)上設置旗號標記(712)。旗號標記防止在對目標系統(tǒng)做出改變時擊發(fā)自動觸發(fā)程序,這使得數(shù)據被重新送回調用系統(tǒng),可能導致無限循環(huán)。實現(xiàn)旗號(712)阻止了觸發(fā)程序進行由更新過程所做的更新,但是允許觸發(fā)程序做出來自用戶的其他改變。在多線程系統(tǒng)中,比如典型的scm系統(tǒng)和plm系統(tǒng),存在觸發(fā)程序在更新過程發(fā)生的同時被禁用的危險。禁用則阻止了對不同的線程的某些作用擊發(fā)觸發(fā)程序。旗號的實現(xiàn)取決于所使用的scm系統(tǒng)和plm系統(tǒng)的能力。然而,一個示例的實現(xiàn)包括(1)阻止全部新線程開始;(2)等待其他所有運行的線程結束;(3)阻止觸發(fā)程序;(4)執(zhí)行更新過程所需的更新;(5)解除對觸發(fā)程序的阻止;以及(6)允許新線程開始。
旗號過程(712)確保了在觸發(fā)程序被阻止的同時不發(fā)生其他操作。更復雜的系統(tǒng)采用用于更新過程所需的全部數(shù)據庫改變的事務并且僅在當該事務正在提交給數(shù)據庫時的期間才阻止觸發(fā)程序,利用了事務提交給數(shù)據庫是單線程的事實。
針對自動更新來修改上述的導出過程和導入過程。具體地,過程的導出部分從源系統(tǒng)采集數(shù)據。在自動更新中,任何現(xiàn)有的痕跡或跟蹤數(shù)據連同結構一起被提取。過程的導入側執(zhí)行工作的大部分來創(chuàng)建或修改目標系統(tǒng)上的數(shù)據。在自動更新中,當檢查對象是否已經存在于系統(tǒng)上時,使用痕跡數(shù)據。如果存在痕跡數(shù)據,則執(zhí)行存在檢查以確保對象存在。如果對象已經存在,則從該對象到子對象的引用仍需要更新。新的子對象可能已經添加,并且已經創(chuàng)建了對應的新引用。到子對象的引用可能已經在源系統(tǒng)上去除,并且在目標系統(tǒng)上的對應的引用可能也需要去除。引用的特性(例如,當取得數(shù)據時所使用的href路徑或目標路徑的版本)可能已經改變。
同樣,如果目標對象是靜態(tài)版本,則也不可能修改目標對象。在plm系統(tǒng)750中的對象的靜態(tài)版本代表了發(fā)布的條目。這些靜態(tài)版本不能修改,因為它們代表了在過去的固定點的狀態(tài)。改變可能對于這些條目而言是不允許的,因為scm系統(tǒng)701本身防止在這樣的情況下的改變。如果嘗試在靜態(tài)版本上的改變,則導入過程精確地將問題報告給scm系統(tǒng)701,以便用戶在該級處進行校正。
針對自動更新來修改上述的導出和導入過程。具體地,過程的導出部分從源系統(tǒng)采集數(shù)據。在自動更新中,任何現(xiàn)有的痕跡或跟蹤數(shù)據連同結構一起被提取。過程的導入側執(zhí)行工作的大部分以創(chuàng)建或修改目標系統(tǒng)上的數(shù)據。在自動更新中,當檢查對象是否已經存在于系統(tǒng)上時,使用痕跡數(shù)據。如果存在痕跡數(shù)據,則執(zhí)行存在檢查以確保對象存在。如果對象已經存在,則從該對象到子對象的引用仍需要更新。新的子對象可能已經添加,并且可能已經創(chuàng)建了對應的新引用。對子對象的引用可能已經在源系統(tǒng)上去除,并且在目標系統(tǒng)上的對應的引用也需要去除。引用的特性(例如,當取得數(shù)據時所使用的目標路徑或href路徑的版本)可能已經改變。
同樣,如果目標對象是靜態(tài)版本,則也不可能修改目標對象。在scm系統(tǒng)中的對象的靜態(tài)版本代表了發(fā)布的條目。這些靜態(tài)版本不能修改,因為它們代表了在過去的固定點的狀態(tài)。改變可能對于這些條目而言是不允許的,因為plm系統(tǒng)本身防止在這樣的情況下的改變。如果嘗試在靜態(tài)版本上的改變,則導入過程精確地將問題報告給plm系統(tǒng),以便用戶在該級處進行校正。
理想地,結構的改變在單次操作內限于設計的單層。例如,操作可能添加從頂級芯片到新alu塊的引用,但是不會同時修改芯片已經引用的cpu塊下的結構。如果這得以保障,則可以優(yōu)化整個更新過程以使結構的單層在系統(tǒng)之間傳遞并且一次更新。然而,在多數(shù)系統(tǒng)中,這不能得到保障,并且在給定的示例中,alu可以是在另一系統(tǒng)中所要表示的整個新分級結構。
另外,為了安全以及處理任何錯誤狀況,過程強制整個分級的重新同步。因此,系統(tǒng)對于任意操作總是發(fā)送整個結構(例如,從頂級修改的對象向下),并且在導入時針對目標系統(tǒng)對此進行校驗。該方法從性能和系統(tǒng)要求方面看更繁重,但是更精確。
圖8示出了可以實現(xiàn)本發(fā)明的實施例的計算機網絡或類似的數(shù)字處理環(huán)境。
客戶端計算機/設備50以及服務器計算機60提供了執(zhí)行應用程序等的處理、存儲和輸入/輸出設備??蛻舳擞嬎銠C/設備50還能夠通過通信網70鏈接到其他計算設備,包括其他的客戶端設備/過程50以及服務器計算機60。通信網70可以是遠程訪問網絡、全局網絡(例如,因特網)、世界范圍內的計算機的集合、局域網或廣域網、以及當前使用相應的協(xié)議(tcp/ip,
圖9是在圖8的計算機系統(tǒng)中的計算機(例如,客戶端處理器/設備50或者服務器計算機60)的示例的內部結構的示意圖。每個計算機50、60包含了系統(tǒng)總線79,其中總線是用于計算機或處理系統(tǒng)的組件之間的數(shù)據傳輸?shù)挠布€路的集合。系統(tǒng)總線79實質上是連接實現(xiàn)了元件之間的信息傳輸?shù)挠嬎銠C系統(tǒng)的不同元件(例如,處理器、磁盤存儲設備、存儲器、輸入/輸出端口、網絡端口等)的共享導管。附接到系統(tǒng)總線79的是i/o設備接口82,其用于將各個輸入和輸出設備(例如,鍵盤、鼠標、顯示器、打印機、揚聲器等)連接到計算機50、60。網絡接口86允許計算機連接到與網絡(例如,圖8的網絡70)附接的其他各種設備。存儲器90提供了用于實現(xiàn)本發(fā)明的實施例(例如,上文詳述的提取模塊、創(chuàng)建模塊和映射模塊)的計算機軟件指令92和數(shù)據94的易失性存儲器。磁盤存儲設備95提供了用于實現(xiàn)本發(fā)明的實施例的計算機軟件指令92和數(shù)據94的非易失性存儲。中央處理單元84也附接到系統(tǒng)總線79并且提供以用于計算機指令的執(zhí)行。
在一個實施例中,處理器例程92和數(shù)據94是計算機程序產品(通常表示為92),包括提供用于本發(fā)明系統(tǒng)的軟件指令的至少一部分的非暫時性計算機可讀介質(例如,可移除存儲介質,諸如一個或多個dvd-rom、cd-rom、磁盤、磁帶等)。計算機程序產品92能夠由任何適合的軟件安裝程序來安裝,這是本領域公知的。在另一實施例中,軟件指令的至少部分還可以經由電纜通信和/或無線連接下載。在其他實施例中,本發(fā)明程序是具體體現(xiàn)為傳播介質(例如,無線電波、紅外波、激光波、聲波或經由諸如因特網的全局網絡或其他網絡傳播的電波)上的傳播信號的計算機程序傳播信號產品。該載波介質或信號可以用來提供用于本發(fā)明例程/程序92的軟件指令的至少部分。
雖然參考本發(fā)明的示例性實施例特別地顯示和描述了本發(fā)明,但是本領域技術人員將理解的是,可以在其中做出形式和細節(jié)上的各種改變,而不背離隨附的權利要求所涵蓋的本發(fā)明的范圍。