(57)【要約】【課題】ＳＣＭシステムが、ＳＣＭシステムにて制御される処理において、モジュールをＰＬＭシステムにエクスポートすることができる方法を提供する。【解決手段】従来、ＰＬＭシステムとＳＣＭシステムとはリンクされていない。実施形態において、コンピュータ方法は、ソースコード管理（ＳＣＭ）システムから製品ライフサイクル管理（ＰＬＭ）システムにモジュールを転送するというユーザリクエストに応答して、ＳＣＭシステムのプロセッサから、モジュールを表すデータ、モジュールのバージョン、およびモジュールの階層的な関係性を、ＳＣＭシステムのデータソースから抽出するステップを含む。方法は、モジュール、モジュールのバージョン、モジュールの階層的な関係性を表す抽出されたデータを有するＰＬＭシステムモジュールを作成するステップをさらに含む。【選択図】図３
2017091531.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータ方法であって、
ソースコード管理（ＳＣＭ）システムから製品ライフサイクル管理（ＰＬＭ）システムにモジュールを転送するというユーザリクエストに応答して、前記ＳＣＭシステムのプロセッサから、モジュール、前記モジュールのバージョン、および前記モジュールの階層的な関係性、を表すデータを、前記ＳＣＭシステムのデータソースから抽出するステップと、
前記モジュール、前記モジュールのバージョン、前記モジュールの階層的な関係性を表す前記抽出されたデータを有するＰＬＭシステムモジュールを作成するステップと
を含むことを特徴とする方法。
【請求項２】
データモジュール要件と一致する前記ＰＬＭシステムモジュールを作成するために必要な追加の情報を検索することによって、前記抽出されたデータをカスタマイズして前記ＰＬＭシステムの前記データモジュール要件と一致するようにするステップをさらに含むことを特徴とする請求項１に記載のコンピュータ方法。
【請求項３】
前記ＰＬＭシステムモジュールを作成するステップは、前記カスタマイズされた抽出されたデータを用いることを特徴とする請求項２に記載のコンピュータ方法。
【請求項４】
前記ＳＣＭシステムのアイデンティティを、前記ＰＬＭシステムの対応するアイデンティティにマッピングするステップ、をさらに含み
前記ＳＣＭシステムのアイデンティティと前記ＰＬＭシステムの対応するアイデンティティとは、別個の識別子であり、同一のユーザエンティティも表していることを特徴とする請求項１に記載のコンピュータ方法。
【請求項５】
前記作成されたＳＣＭシステムモジュールにおいて、前記ＰＬＭシステムの前記モジュールへのリンクを有するブレッドクラムを提供するステップをさらに含むことを特徴とする請求項１に記載のコンピュータ方法。
【請求項６】
更新リクエストに応答して、前記ブレッドクラムにアクセスすることにより、前記作成されたＰＬＭシステムモジュールのバージョンを、前記ＳＣＭシステムのリンクされたモジュールのバージョンと比較するステップと、
前記ＳＣＭシステムの前記モジュールが、より新しいバージョンである場合、前記ＰＬＭシステムモジュールを、前記ＳＣＭシステムの前記モジュールの前記より新しいバージョンに更新するステップと
をさらに含むことを特徴とする請求項５に記載のコンピュータ方法。
【請求項７】
前記ＰＬＭシステムモジュールを作成するステップは、前記モジュールの階層的な関係性に対応する複数の前記ＰＬＭシステムモジュールを、前記ＳＣＭシステムのデータソースから作成するステップを含むことを特徴とする請求項１に記載のコンピュータ方法。
【請求項８】
コンピュータシステムであって、
プロセッサと、
コンピュータコード命令が記憶されるメモリであって、前記プロセッサと動作可能に連結されて、前記コンピュータコード命令が、前記プロセッサを
ソースコード管理（ＳＣＭ）システムから製品ライフサイクル管理（ＰＬＭ）システムにモジュールを転送するというユーザリクエストに応答して、前記ＳＣＭシステムのプロセッサから、モジュール、前記モジュールのバージョン、および前記モジュールの階層的な関係性、を表すデータを、前記ＳＣＭシステムのデータソースから抽出するように構成される抽出モジュール、ならびに
前記モジュール、前記モジュールのバージョン、前記モジュールの階層的な関係性を表す前記抽出されたデータを有するＰＬＭシステムモジュールを作成するように構成される作成モジュール
を実装するように構成する、メモリと
を備えることを特徴とするコンピュータシステム。
【請求項９】
データモジュール要件と一致する前記ＰＬＭシステムモジュールを作成するために必要な追加の情報を検索することによって、前記抽出されたデータをカスタマイズして前記ＰＬＭシステムの前記データモジュール要件と一致するようにするように構成されるカスタマイズモジュールをさらに備えることを特徴とする請求項８に記載のコンピュータシステム。
【請求項１０】
前記ＰＬＭシステムモジュールを作成することは、カスタマイズされた抽出されたデータを用いることを特徴とする請求項９に記載のコンピュータシステム。
【請求項１１】
前記ＳＣＭシステムのアイデンティティを、前記ＰＬＭシステムの対応するアイデンティティにマッピングするように構成されるマッピングモジュールをさらに備え、
前記ＳＣＭシステムのアイデンティティと前記ＰＬＭシステムの対応するアイデンティティとは、別個の識別子であり、同一のユーザエンティティも表していることを特徴とする請求項８に記載のコンピュータシステム。
【請求項１２】
前記作成されたＳＣＭシステムモジュールにおいて、前記ＰＬＭシステムのモジュールへのリンクを有するブレッドクラムを提供するように構成されるブレッドクラムモジュールをさらに備えることを特徴とする請求項８に記載のコンピュータシステム。
【請求項１３】
更新リクエストに応答して、前記ブレッドクラムにアクセスすることにより、前記作成されたＰＬＭシステムモジュールのバージョンを、前記ＳＣＭシステムのリンクされたモジュールのバージョンと比較するように構成される比較モジュールと、
前記ＳＣＭシステムのモジュールが、より新しいバージョンである場合、前記ＰＬＭシステムモジュールを、前記ＳＣＭシステムの前記モジュールの前記より新しいバージョンに更新することと
をさらに備えることを特徴とする請求項１２に記載のコンピュータシステム。
【請求項１４】
前記ＰＬＭシステムモジュールを作成することは、前記モジュールの前記階層的な関係性に対応する複数のＰＬＭシステムモジュールを、前記ＳＣＭシステムのデータソースから作成することを含むことを特徴とする請求項８に記載のコンピュータシステム。
【請求項１５】
製品ライフサイクル管理（ＰＬＭ）モジュールを作成するための命令を記憶するように構成される非一時的コンピュータ可読媒体であって、前記命令は、プロセッサによりロードされて実行されるとき、前記プロセッサに、
ソースコード管理（ＳＣＭ）システムから製品ライフサイクル管理（ＰＬＭ）システムにモジュールを転送するというユーザリクエストに応答して、前記ＳＣＭシステムのプロセッサから、モジュール、前記モジュールのバージョン、および前記モジュールの階層的な関係性、を表すデータを、前記ＳＣＭシステムのデータソースから抽出させ、
前記モジュール、前記モジュールのバージョン、前記モジュールの階層的な関係性を表す前記抽出されたデータを有するＰＬＭシステムモジュールを作成させる
ことを特徴とする非一時的コンピュータ可読媒体。
【請求項１６】
前記命令が、前記プロセッサにさらに、
データモジュール要件と一致する前記ＰＬＭシステムモジュールを作成するために必要な追加の情報を検索することによって、前記抽出されたデータをカスタマイズさせ前記ＰＬＭシステムの前記データモジュール要件と一致するようにすることを特徴とする請求項１５に記載の非一時的コンピュータ可読媒体。
【請求項１７】
前記ＰＬＭシステムモジュールを作成することは、前記カスタマイズされた抽出されたデータを用いることを特徴とする請求項１６に記載の非一時的コンピュータ可読媒体。
【請求項１８】
前記命令が、前記プロセッサにさらに、
前記ＳＣＭシステムのアイデンティティを、前記ＰＬＭシステムの対応するアイデンティティにマッピングさせ、
前記ＳＣＭシステムのアイデンティティと前記ＰＬＭシステムの対応するアイデンティティとは、別個の識別子であり、同一のユーザエンティティも表していることを特徴とする請求項１５に記載の非一時的コンピュータ可読媒体。
【請求項１９】
前記命令が、前記プロセッサにさらに、
前記作成されたＳＣＭシステムモジュールにおいて、前記ＰＬＭシステムの前記モジュールへのリンクを有するブレッドクラムを提供させることを特徴とする請求項１５に記載の非一時的コンピュータ可読媒体。
【請求項２０】
前記命令が、前記プロセッサにさらに、
更新リクエストに応答して、前記ブレッドクラムにアクセスすることにより、前記作成されたＰＬＭシステムモジュールのバージョンを、前記ＳＣＭシステムのリンクされたモジュールのバージョンと比較させ、
前記ＳＣＭシステムのモジュールが、より新しいバージョンである場合、前記ＰＬＭシステムモジュールを、前記ＳＣＭシステムの前記モジュールの前記より新しいバージョンに更新させる
ことを特徴とする請求項１９に記載の非一時的コンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願
本出願は、同時に出願された、同一の出願人に譲渡され、本願と同日に出願された、Ｉａｎ  ＤｏｂｉｎｓｏｎおよびＰｅｔｅｒ  Ｈａｙｎｅｓによる米国特許出願明細書「Ｅｘｐｏｒｔｉｎｇ  Ｈｉｅｒａｒｃｈｉｃａｌ  Ｄａｔａ  Ｆｒｏｍ  Ａ  Ｐｒｏｄｕｃｔ  Ｌｉｆｅｃｙｃｌｅ  Ｍａｎａｇｅｍｅｎｔ（ＰＬＭ）Ｓｙｓｔｅｍ  Ｔｏ  Ａ  Ｓｏｕｒｃｅ  Ｃｏｄｅ  Ｍａｎａｇｅｍｅｎｔ（ＳＣＭ）Ｓｙｓｔｅｍ」（整理番号４６５９．１０２０−０００）と、同一の出願人に譲渡され、本願と同日に出願された、Ｉａｎ  Ｄｏｂｉｎｓｏｎ  およびＰｅｔｅｒ  Ｈａｙｎｅｓによる、「Ｂｉ−Ｄｉｒｅｃｔｉｏｎａｌ  Ｓｙｎｃｈｒｏｎｉｚａｔｉｏｎ  Ｏｆ  Ｄａｔａ  Ｂｅｔｗｅｅｎ  Ａ  Ｐｒｏｄｕｃｔ  Ｌｉｆｅｃｙｃｌｅ  Ｍａｎａｇｅｍｅｎｔ（ＰＬＭ）Ｓｙｓｔｅｍ  Ａｎｄ  Ａ  Ｓｏｕｒｃｅ  Ｃｏｄｅ  Ｍａｎａｇｅｍｅｎｔ（ＳＣＭ）Ｓｙｓｔｅｍ」（整理番号４６５９．１０２１−０００）と、に関する。
【０００２】
上記出願の教示の全体が、参照としてここに組み込まれる。
【背景技術】
【０００３】
ハードウェア開発者は、特に集積回路設計のコミュニティにおいては、一般に、設計のための階層的な開発の手法を適用し、それにおいて、高レベルの製品が下位の製品を参照する、すなわち、下位の製品から作出される。同様に、ソフトウェア開発者は、一般に、再利用可能なソフトウェアのブロックを使用するより高レベルのソフトウェアコンポーネントと共に、階層を使用する。
【０００４】
ソースコード管理（Ｓｏｕｒｃｅ  Ｃｏｄｅ  Ｍａｎａｇｅｍｅｎｔ（ＳＣＭ））システムは、その最も基本的なレベルで、メモリまたはデータベースに記憶されたデータファイルのセットをバージョン管理するための手段を提供し、このことが、それらファイルに対する経時的な変更をトラッキングすることを可能にする。ＳＣＭシステムの例は、
ａ）ＤｅｓｉｇｎＳｙｎｃ（登録商標）システム、これはダッソーシステムズ社の、欠陥の管理およびコラボレーションについての製品の一部である、
ｂ）公表されて入手可能な並行型の（concurrent）バージョン管理システム（ＣＶＳ）、
ｃ）公表されて入手可能なＧＩＴリビジョン管理システム、
ｄ）商業用サポートにより入手可能な、ＳｕｂｖｅｒｓｉｏｎシステムおよびＰｅｒｆｏｒｃｅシステム、
がある。
【０００５】
階層的なＳＣＭシステムは、データファイルがパッケージまたはモジュールとして管理されることが可能であるものの１つであり、多数の個別のファイルを含んでもよい。モジュールがさらに、または、パッケージが、他のモジュールまたはパッケージを参照して、データの階層を形成することができる。
【０００６】
製品ライフサイクル管理（Ｐｒｏｄｕｃｔ  Ｌｉｆｅｃｙｃｌｅ  Ｍａｎａｇｅｍｅｎｔ（ＰＬＭ））システムは、開始から、工学的設計、製造、製造された製品のサービスおよび廃棄までの、製品の全ライフサイクルを管理する処理を提供する。ＰＬＭシステムは、人、データ、処理、およびビジネスシステムを統合し、企業およびその拡大される事業のための製品情報のバックボーンを提供する。ＰＬＭシステムは、関係性により結合される一連のオブジェクトとして、データを表す。例えば、第１のオブジェクトが、開発中の製品を表すことができ、これは、製品を開発している組織を表す第２のオブジェクトとの関係性を有する。これらのオブジェクトはまた、オブジェクトの異なるリリースを表す、または、オブジェクトの開発状態を表す、リビジョン（またはバージョン）をサポートすることができる（例えば、異なるリビジョンが、チップのバージョン１．０もしくはこのチップの後継の２．０バージョンを表すことができ、または、将来のリリースに向けて進行中である作業を表すこともできる）。これらのオブジェクトはまた、同じ型または同様の型のオブジェクトの間の関係性を介して、階層をサポートすることができる。例えば、チップを表すオブジェクトは、そのチップの一部であるＣＰＵモジュールを表すオブジェクトとの関係性を有することができる。ダッソーシステムズ社により、３Ｄエクスペリエンス（登録商標）プラットフォームというバナーで提供されるアプリケーションが、ＰＬＭシステムの例を提供する。
【発明の概要】
【０００７】
本発明の実施形態において、システムおよび方法は、データブロックの階層的なセットについての記述を、ＳＣＭシステムからＰＬＭシステムに渡すためのスキームを提供する。本発明の実施形態において、システムおよび方法は、ＰＬＭシステムからＳＣＭシステムに、階層的な設計をサポートするデータを転送する。本発明の実施形態において、システムおよび方法の発明は、データブロックの階層的なセットについての記述を、ＰＬＭシステムからＳＣＭシステムに、またはＳＣＭシステムからＰＬＭシステムに、手動または自動的に渡す。
【０００８】
従来、ＰＬＭシステムとＳＣＭシステムとは、リンクされていなかった。少なくともいくつかの既知のソリューションが、２つのシステムにおいてデータをリンクする手法を提供し、ＳＣＭシステムからＰＬＭシステムにデータを引き込むための限定されたサポートを提供する。しかし、以前の様式は効率的ではなく、機能性が限定され、フローがＳＣＭシステムから制御されることを考慮に入れておらず、データ構造がＰＬＭシステムにおいて定義されて、ＳＣＭシステムにプッシュダウンされること、または、本発明の実施形態のように、一方のシステムにおける自動的なデータ更新が、他方のシステムにおいて対応するデータが修正されるのに応じて行われる、ことを考慮していない。
【０００９】
ＳＣＭからＰＬＭへ
【００１０】
本発明の実施形態は、階層的な設計をサポートするＳＣＭシステムから、ＰＬＭまたは同様のシステムに、データを転送するための手段について記述する。データを渡すことは、ＳＣＭシステムからデータを抽出すること、および、階層的な結合と、それらの結合が、サブブロックの特定のリリースであるのか、開発中のバージョンであるのかについての詳細と、を含むポータブルフォーマットにデータを変換すること、を含む。
【００１１】
システムは、そのデータをさらにカスタマイズし、システムの個別の実装が、対象のＰＬＭシステムのオブジェクトにより必要とされるデータを提供できるようになる。そして、システムは、そのデータをＰＬＭシステムに転送する。
【００１２】
システムは、ＳＣＭシステムからのデータのブロック、それらのバージョン、およびそれらの階層的な結合、を表すオブジェクトを、ＰＬＭシステムにおいて作成する。
【００１３】
システムは、ＰＬＭシステムにおいて作成されるデータの型、それらを結合するために使用される関係性、および、ＳＣＭシステム上のカスタマイズ機能を介して渡される追加のデータに基づく、ＰＬＭシステムにおけるオブジェクト、をさらにカスタマイズする。
【００１４】
そして、システムは、ＳＣＭデータオブジェクトと等価な作成されたオブジェクトに関する情報を、ＳＣＭシステムに戻して渡すため、この情報は、トラッキングする目的で記憶されることが可能である。
【００１５】
実施形態において、本発明は、ＳＣＭシステムにおけるデータから、ＰＬＭシステムにおける新しいデータを作成する。
【００１６】
本発明の実施形態は、ＳＣＭシステムからのデータ転送の初期化および制御を提供する。これは、進歩したカスタマイズ能力および制御の能力を可能にする。システムは、ＳＣＭシステムに関するトラッキング情報を記憶するためのスキームをさらに提供する。
【００１７】
ＳＣＭシステムは、システムレベルオブジェクトと、それらの階層的な関係性とを定義するデータを管理する。従って、データが、ＳＣＭシステムにおいて作成される時に、ＳＣＭシステムからＰＬＭシステムに挿入されることは、有利である。既存のソリューションは、本発明の実施形態におけるように、ＳＣＭシステムから制御される処理を使用して、ＰＬＭシステム内でデータを直接作成する手段を提供しない。
【００１８】
異なるＰＬＭシステムが、個別のオブジェクトについて異なる種類の情報（例えば、プロパティ／属性）、異なるＳＣＭシステム、または特定のＳＣＭシステムの異なる実装、を保持する。ＰＬＭシステムは、ＰＬＭシステムにおける情報を埋めるために使用されることが可能なデータの異なるセットに対するアクセスを有する。従って、本発明の実施形態において、システムは、データをＳＣＭシステムからＰＬＭシステムに転送するときに、この追加の情報を、統合、生成、および供給することができる。既存のソリューションはさらに、関連付けられた属性のデータおよび設定を作成する、詳細なカスタマイズをサポートしない。
【００１９】
データが一旦ＰＬＭシステムに転送されると、ＳＣＭは、作成されたオブジェクトへのリンクを維持する。ＳＣＭシステムからＰＬＭシステムへのリンクは、ＳＣＭシステムがＰＬＭシステムにおける等価のオブジェクトへ直接リンクすることを可能にすることにより、進歩した機能性を有効にすることができる。例えば、ＳＣＭシステムは、等価のＰＬＭシステムオブジェクトを、ＳＣＭシステムがそのオブジェクトが何であるかを分かっている場合に、直接表示する関数を実装することができる。既存のソリューションは、ＳＣＭシステム内にこのトラッキング情報（例えば、ブレッドクラム）の記憶装置を提供しない。
【００２０】
ＰＬＭからＳＣＭへ
【００２１】
本発明の実施形態は、データブロックの階層的なセットについての記述を、ＰＬＭシステムからＳＣＭシステムに渡すためのスキームである。記述を渡すことは、階層的な結合と、それらの結合が、サブブロックの特定のリリースであるのか、開発中のバージョンであるのかについての詳細と、を含むポータブルフォーマットで、ＰＬＭシステムからデータを抽出すること、を含む。システムは、そのデータをさらにカスタマイズし、システムの個別の実装が、対象のＳＣＭシステムにより使用されるデータを提供できるようになる。システムは、そのデータをＳＣＭシステムにさらに転送する。システムは、ＳＣＭシステムからのオブジェクト、およびそれらの階層的な結合、を表すコンテナオブジェクトを、ＳＣＭシステムにおいてさらに作成する。システムは、ＰＬＭシステム上のカスタマイズ機能を介して渡される追加のデータに基づく、ＳＣＭシステムにおけるオブジェクトをさらにカスタマイズする。システムはさらに、ＰＬＭデータオブジェクトと等価な作成されたオブジェクトに関する情報を、ＰＬＭシステムに戻して渡すため、この情報は、トラッキングする目的で記憶されることが可能である。
【００２２】
ＰＬＭシステムにおけるデータは、例えば、製品を備えるピースの開発ステータスをトラッキングすること、および、製品を備えるピースのいずれかに対して発見された問題（例えば、欠陥、バグ）をトラッキングすること、などの多くの操作に使用される。
【００２３】
多くの場合において、ロールアップデータが用いられて、製品の全体的なステータスを入手する。例えば、コンピュータチップなど製品は、ランダムアクセスメモリ（ＲＡＭ）および中央処理装置（ＣＰＵ）などの複数のコンポーネントから構成されてもよい。問題がＣＰＵに対して発見され、対応する欠陥が引き起こされると、チップの管理者は、この欠陥が、あるサブコンポーネントに存在し、チップに影響を及ぼすことを提示する、ロールアップレポートを所望する。ＰＬＭシステムにおけるデータ、特に、より高レベルの製品による、サブブロックの階層的な結合／使用におけるデータは、従って、システムにおいて正確にトラッキングされる。
【００２４】
ＰＬＭシステムは、設計のブロックと、それらの間の階層的な関係性とを定義するためのマスタとして考慮されることができる。すなわち、設計の構造は、ＰＬＭシステムにおいて作成され、ＳＣＭシステムは、構造を備えるブロックのための個別のデータファイルを管理するために使用される。ＳＣＭシステムは、それ自身のオブジェクトを包含して、設計のブロックと、それらの間の階層的な関係性とを表すため、ＳＣＭシステムのユーザが、設計を備えるデータの正しいセットをフェッチすること、およびそのデータに対する自分の操作を実行することができる。
【００２５】
本発明の実施形態は、ＰＬＭシステムにおいて組み立てられた定義を使用して、ＳＣＭシステム内にブロックと、それらの間の結合とを作成する能力を提供する。既存のソリューションは、ＰＬＭシステムから制御される処理を使用して、ＳＣＭシステム内でデータを直接作成する手段を提供しない。
【００２６】
異なるＰＬＭシステムが、個別のオブジェクトについて異なる種類の情報（例えば、プロパティ／属性）を記憶し、異なるＳＣＭシステムが、ＰＬＭシステムにおける情報から定義されるデータの異なるセットを記憶することができる。本発明の実施形態において、ＰＬＭシステムからＳＣＭシステムにデータを転送することは、この追加の情報に対処するには十分にフレキシブルである。既存のソリューションは、関連付けられた属性のデータおよび設定を作成する処理の詳細なカスタマイズをサポートしない。
【００２７】
データが一旦ＳＣＭシステムに転送されると、ＰＬＭシステムは、作成されたオブジェクトへのリンクを維持し、ＳＣＭシステムは、ＰＬＭシステムにおける等価のソースオブジェクトの知見を持続する。これは、ＳＣＭシステムがＰＬＭシステムにおける等価のオブジェクトへ直接リンクすることを可能にすることにより、進歩した機能性を有効にする。例えば、ＳＣＭシステムは、等価のＰＬＭシステムオブジェクトを、ＳＣＭシステムがそのオブジェクトが何であるかを分かっている場合に、直接表示する関数を実装することができる。既存のソリューションは、ＳＣＭシステム内にこのトラッキング情報（すなわち、ブレッドクラム）の記憶装置を提供しない。本発明の実施形態は、ＰＬＭシステムにおけるデータから、ＳＣＭシステムにおける新しいデータを作成する。
【００２８】
本発明の実施形態は、以前の利用できるソリューションを以下のことにより向上させる。
ａ）ＰＬＭシステムからのデータ転送の初期化および制御を可能にすること。
ｂ）新しいコンテナオブジェクト（例えば、ＤｅｓｉｇｎＳｙｎｃシステムにおけるモジュール）または既存のオブジェクトの新しい分岐が、ＰＬＭシステム情報に基づき、ＳＣＭシステムにおいて作成されることを可能にすること。
ｃ）進歩したカスタマイズ能力および制御の能力を提供すること。
ｄ）ＳＣＭシステムおよびＰＬＭシステムに関するトラッキング情報を記憶するためのスキームを提供すること。
【００２９】
ＰＬＭからＳＣＭへの自動更新、またはＳＣＭからＰＬＭへの自動更新
【００３０】
本発明の実施形態は、データブロックの階層的なセットについての記述を、ＰＬＭシステムからＳＣＭシステムに、またはＳＣＭシステムからＰＬＭシステムに、手動または自動的に渡す。システムは、上記に記述されたシステムを用いることにより記述を渡して、一方のシステム上のデータを抽出し、そのデータを他方のシステムに転送する。システムはさらに、前に記述されたシステムに拡張を提供して、対象のシステム上のデータの漸増の更新を可能にする。上記で記述されたシステムに対する拡張はさらに、ユーザが、一方の側のデータで開始する更新を、手動で起動することを可能にする。システムはさらに、自動的に変更を識別し、それらを２つのシステム間で同期させる。
【００３１】
実施形態において、本発明は、ＰＬＭシステムまたはＳＣＭシステムのいずれかでの階層的なデータの開発の継続と、そのデータの継続される同期と、を可能にする。実施形態において、本発明はさらに、データが自動的に同期されることを可能にし、従って、期限切れの情報がいずれかのシステムに存在することによる任意の問題を回避する。
【００３２】
実施形態において、システムは、ＰＬＭシステムからＳＣＭシステムに、またその逆に、階層的な設計をサポートするデータを転送する。これらの実施形態において、転送は、ユーザにより起動され、システム間のデータの最初のプッシュとすることが意図される。システムは、手動または自動のいずれかで、両システム上でデータを更新し、データを同期する。
【００３３】
階層的なＳＣＭシステムは、データファイルがパッケージまたはモジュールとして管理されることを可能にし、これは多数の個別のファイルを含むことができる。それらのモジュールは、他のモジュールを参照して、データの階層を形成することができる。
【００３４】
ＳＣＭシステムは、設計のブロックと、それらの間の階層的な関係性とを表すそれ自身のオブジェクトを記憶するため、ＳＣＭシステムのユーザが、設計を備えるデータの正しいセットをフェッチすること、およびそのデータに対する操作を実行することができる。
【００３５】
時と共に、構造の定義は多くの手法で変更してもよい。例えば、製品の設計者は、ＰＬＭシステムを使用して、典型的には、設計におけるいくつかの他のグループにより提供される、追加のブロックまたは代替のＩＰブロック（例えば、モジュール、設計セグメント、または知的財産（ＩＰ）のピース）を用いると決定することができる。別の例として、製品の開発者は、ＳＣＭシステムを使用して、実装の目的で、ブロックを２つのパーツに分割することを決定することができる。さらに別の例として、設計のサブブロックのうちの１つを開発しているチームが、そのブロックの新しいバージョンをリリースすることができ、親製品においてその新しいバージョンを用いると決定することができる。
【００３６】
変更は、開発中の任意の時に実行されることが可能であり、本発明の実施形態を使用しているときに、ＰＬＭシステムまたはＳＣＭシステムのいずれかから起動されることが可能である。変更が、システムの一方のみの構造に対してなされると、チャレンジが起こり得る。例えば、ＰＬＭシステムにおいてなされたがＳＣＭシステムにおいてはなされなかった変更は、製品信頼性または機能性に壊滅的な影響を受けた、不良の製品が作られる結果となり得る。別の例として、ＳＣＭシステムにおいてなされたがＰＬＭシステムにおいてはなされなかった変更は、問題またはＩＰ使用の間違ったトラッキングをもたらすことになり得る。これは、ＩＰライセンスの問題または課題の正確なトラッキングの欠如、を生じさせ、製品信頼性の問題（既存のバグの知見が無い状態で出荷される製品）をもたらす可能性がある。
【００３７】
既存のソリューションは、手動または自動のいずれでも、一方のシステムにおけるデータを、他方におけるソース定義から漸増的に更新するための手段を提供しない。
【００３８】
実施形態において、コンピュータ方法は、ソースコード管理（ＳＣＭ）システムから製品ライフサイクル管理（ＰＬＭ）システムにモジュールを転送するというユーザリクエストに応答して、ＳＣＭシステムのプロセッサから、モジュールを表すデータ、モジュールのバージョン、およびモジュールの階層的な関係性を、ＳＣＭシステムのデータソースから抽出するステップを含む。方法は、モジュール、モジュールのバージョン、モジュールの階層的な関係性を表す抽出されたデータを有するＰＬＭシステムモジュールを作成するステップをさらに含む。
【００３９】
実施形態において、方法は、データモジュール要件と一致するＰＬＭシステムモジュールを作成するために必要な追加の情報を検索することによって、抽出されたデータをカスタマイズしてＰＬＭシステムのデータモジュール要件と一致するようにするステップをさらに含む。ＰＬＭシステムモジュールを作成するステップは、カスタマイズされた抽出されたデータを用いることができる。
【００４０】
実施形態において、方法は、ＳＣＭシステムのアイデンティティを、ＰＬＭシステムの対応するアイデンティティにマッピングするステップをさらに含む。ＳＣＭシステムのアイデンティティとＰＬＭシステムの対応するアイデンティティとは、別個の識別子であり、同一のユーザエンティティも表すことができる。
【００４１】
実施形態において、方法は、作成されたＳＣＭシステムモジュールにおいて、ＰＬＭシステムのモジュールへのリンクを有するブレッドクラムを提供するステップをさらに含む。方法は、更新リクエストに応答して、ブレッドクラムにアクセスすることにより、作成されたＰＬＭシステムモジュールのバージョンを、ＳＣＭシステムのリンクされたモジュールのバージョンと比較するステップを含むこともできる。ＳＣＭシステムのモジュールが、より新しいバージョンである場合、ＰＬＭシステムモジュールを、ＳＣＭシステムのモジュールの、より新しいバージョンに更新する。
【００４２】
実施形態において、ＰＬＭシステムモジュールを作成するステップは、モジュールの階層的な関係性に対応する複数のＰＬＭシステムモジュールを、ＳＣＭシステムのデータソースから作成するステップを含む。
【００４３】
実施形態において、コンピュータシステムは、プロセッサと、コンピュータコード命令が記憶されるメモリとを含む。メモリは、プロセッサと動作可能に連結されて、コンピュータコード命令が、プロセッサを、抽出モジュールを実装するように構成し、抽出モジュールは、ソースコード管理（ＳＣＭ）システムから製品ライフサイクル管理（ＰＬＭ）システムにモジュールを転送するというユーザリクエストに応答して、ＳＣＭシステムのプロセッサから、モジュールを表すデータ、モジュールのバージョン、およびモジュールの階層的な関係性を、ＳＣＭシステムのデータソースから抽出するように構成される。コンピュータコード命令は、プロセッサを、作成モジュールを実装するようにさらに構成し、作成モジュールは、モジュール、モジュールのバージョン、モジュールの階層的な関係性を表す抽出されたデータを有するＰＬＭシステムモジュールを作成するように構成される。
【００４４】
実施形態において、システムは、データモジュール要件と一致するＰＬＭシステムモジュールを作成するために必要な追加の情報を検索することによって、抽出されたデータをカスタマイズしてＰＬＭシステムのデータモジュール要件と一致するようにするように構成されるカスタマイズモジュールをさらに含む。ＰＬＭシステムモジュールを作成することは、カスタマイズされた抽出されたデータを用いることができる。
【００４５】
実施形態において、コンピュータシステムはまた、ＳＣＭシステムのアイデンティティを、ＰＬＭシステムの対応するアイデンティティにマッピングするように構成されるマッピングモジュールを含むことができる。ＳＣＭシステムのアイデンティティとＰＬＭシステムの対応するアイデンティティとは、別個の識別子であり、同一のユーザエンティティも表すことができる。
【００４６】
実施形態において、コンピュータシステムは、作成されたＳＣＭシステムモジュールにおいて、ＰＬＭシステムのモジュールへのリンクを有するブレッドクラムを提供するように構成されるブレッドクラムモジュールをさらに含む。システムは、更新リクエストに応答して、ブレッドクラムにアクセスすることにより、作成されたＰＬＭシステムモジュールのバージョンを、ＳＣＭシステムのリンクされたモジュールのバージョンと比較するように構成される比較モジュールをさらに含むことができる。ＳＣＭシステムのモジュールが、より新しいバージョンである場合、比較モジュールはＰＬＭシステムモジュールを、ＳＣＭシステムのモジュールの、より新しいバージョンに更新する。
【００４７】
実施形態において、ＰＬＭシステムモジュールを作成することは、モジュールの階層的な関係性に対応する複数のＰＬＭシステムモジュールを、ＳＣＭシステムのデータソースから作成することを含む。
【００４８】
実施形態において、非一時的コンピュータ可読媒体が、製品ライフサイクル管理（ＰＬＭ）モジュールを作成するための命令を記憶するように構成される。命令は、プロセッサによりロードされて実行されるとき、プロセッサに、ソースコード管理（ＳＣＭ）システムから製品ライフサイクル管理（ＰＬＭ）システムにモジュールを転送するというユーザリクエストに応答して、ＳＣＭシステムのプロセッサから、モジュールを表すデータ、モジュールのバージョン、およびモジュールの階層的な関係性を、ＳＣＭシステムのデータソースから抽出させる。命令は、プロセッサにさらに、モジュール、モジュールのバージョン、モジュールの階層的な関係性を表す抽出されたデータを有するＰＬＭシステムモジュールを作成させる。
【００４９】
実施形態において、命令が、プロセッサにさらに、データモジュール要件と一致するＰＬＭシステムモジュールを作成するために必要な追加の情報を検索することによって、抽出されたデータをカスタマイズさせＰＬＭシステムのデータモジュール要件と一致するようにする。ＰＬＭシステムモジュールを作成することは、カスタマイズされた抽出されたデータを用いることができる。
【００５０】
実施形態において、命令が、プロセッサにさらに、ＳＣＭシステムのアイデンティティを、ＰＬＭシステムの対応するアイデンティティにマッピングさせる。ＳＣＭシステムのアイデンティティとＰＬＭシステムの対応するアイデンティティとは、別個の識別子であり、同一のユーザエンティティも表すことができる。
【００５１】
実施形態において、命令が、プロセッサにさらに、作成されたＳＣＭシステムモジュールにおいて、ＰＬＭシステムのモジュールへのリンクを有するブレッドクラムを提供させる。命令が、プロセッサにさらに、更新リクエストに応答して、ブレッドクラムにアクセスすることにより、作成されたＰＬＭシステムモジュールのバージョンを、ＳＣＭシステムのリンクされたモジュールのバージョンと比較させる。ＳＣＭシステムのモジュールが、より新しいバージョンである場合、命令が、ＰＬＭシステムモジュールを、ＳＣＭシステムのモジュールのより新しいバージョンに更新する。
【図面の簡単な説明】
【００５２】
上記の内容は、添付の図面で例示されるように、本発明の実施形態の例についての以下のより具体的な記述から明らかとなるであろう。図面においては、同類の参照符号は異なる図面においても同一部品を指す。図面は必ずしも縮尺どおりではなく、代わりに、本発明の実施形態を説明することに重点が置かれている。
【図１】本発明の例示の実施形態を説明するブロック図である。
【図２】ＰＬＭシステムにおける階層の一例の実施形態を説明するブロック図である。
【図３】本発明の実施形態に係る、ＳＣＭシステムからＰＬＭシステムにモジュールを送ることを説明するブロック図である。
【図４】本発明により用いられる処理の一例の実施形態を説明するフロー図である。
【図５】ＰＬＭシステムオブジェクトデータを、ＳＣＭシステムにインポートする一例の実施形態を説明するブロック図である。
【図６】ＰＬＭシステムからＳＣＭシステムにデータをインポートするための、本発明により用いられる処理の一例の実施形態を説明するフロー図である。
【図７】ＳＣＭまたはＰＬＭシステムにおいてインポートされた情報を、他方のシステムにおける対応するモジュールに対する変更の際に、動的に更新する、本発明により用いられる処理の一例の実施形態を説明するフロー図を説明する図である。
【図８】本発明の実施形態が実装され得る、コンピュータネットワークまたは同様のデジタル処理環境を説明する図である。
【図９】図８のコンピュータシステムにおけるコンピュータ（例えば、クライアントプロセッサ／デバイスまたはサーバコンピュータ）の一例の内部の構造の図である。
【発明を実施するための形態】
【００５３】
本発明の例の実施形態についての記述が後に続く。
【００５４】
図１は、本発明の例示の実施形態を説明するブロック図１００である。ユーザ１０２が、第１の管理システム１０６と第２の管理システム１０８とに連結されるインターフェースシステム１０４を用いる。第１の管理システム１０６および第２の管理システム１０８の例は、それぞれＳＣＭまたはＰＬＭのいずれかであってよい。ＳＣＭおよびＰＬＭの両方が、モジュールの階層的収集物を用いて、ＳＣＭの場合はソースコードソリューションを、ＰＬＭの場合は製品を、形成する。多くの状況において、チップなどの、ＰＬＭにおける製品が、その設計においてソースコードを必要とする可能性があり、ソースコード設計が、ハードウェアリソースを必要とする可能性がある。従って、第１の管理システム１０６から第２の管理システム１０８にモジュールをインポートするためのシステムが、望ましいことになる。
【００５５】
第１の管理システム１０６および第２の管理システム１０８は、それぞれのクラウドネットワーク１１０ａから１１０ｃおよび１１４ａから１１４ｃに選択的に記憶されることが可能な、それぞれのモジュールデータベース１１２ａから１１２ｃおよび１１６ａから１１６ｃに、連結される。実施形態において、モジュールデータベース１１２ａから１１２ｃおよび１１６ａから１１６ｃはまた、ローカルに（図示せず）、または単一のリモートサーバ（図示せず）上に、または複数のリモートサーバ（図示せず）上に、記憶されることが可能である。ユーザ１０２は、インターフェースシステム１０４を介して、インポートするモジュール１１８を、第１の管理システム１０６から第２の管理システム１０８に送られるように差し向ける。第１の管理システム１０６は、サポートデータ１２２を、第２の管理システム１０８にさらに送る。サポートデータ１２２は、モジュール１１８、サポートモジュール、およびモジュールに関するブレッドクラム情報、についての階層情報を含むことができる。
【００５６】
さらに、第１の管理システム１０６および第２の管理システム１０８は、一実施形態において、それぞれの自動更新１２０ａから１２０ｂをお互いに送ることが可能である。自動更新１２０ａから１２０ｂは、インポートされたモジュールが一方のシステム上で修正される際に送られ、更新は他方のシステム上で必要とされる。自動更新１２０ａから１２０ｂは、以下でさらに詳細に記述される。
【００５７】
図２は、ＰＬＭシステムにおける階層の一例の実施形態を説明するブロック図２００である。例の階層は、チップ２０２を含み、これは、ランダムアクセスメモリ（ＲＡＭ）２０４および中央処理装置（ＣＰＵ）２０６の両方に関連する。チップ２０２は、ＲＡＭ２０４およびＣＰＵ２０６の両方との「使用する」関係性を有し、ＲＡＭ２０４およびＣＰＵ２０６がチップ２０２のサブコンポーネントであることを提示する。
【００５８】
ＰＬＭシステムにおけるデータは、操作、例えば、製品（例えば、チップ２０２、ＲＡＭ２０４、およびＣＰＵ２０６）を構成するピースの開発ステータスをトラッキングすること、に使用される。ＰＬＭはまた、チップ２０２、ＲＡＭ２０４、およびＣＰＵ２０６、などの製品を構成するピースで発見された問題２０８（例えば、欠陥／バグ）をトラッキングすることが可能である。問題２０８は、ＣＰＵ２０６で発見された課題を提示する。問題２０８は、問題２０８の結果、引き起こされた欠陥２１０を、さらに提示することが可能である。問題２０８がＣＰＵ２０６と直接関係するため、欠陥２１０はＣＰＵ２０６とリンクされる。ＣＰＵ２０６がチップ２０２のサブコンポーネントであり、ＣＰＵ２０６と関係する欠陥２１０が、チップ２０２に影響を及ぼすため、欠陥２１０は、チップ２０２との「影響を及ぼす」関係性をさらに有する。
【００５９】
これらの場合の多くにおいて、ロールアップデータが使用されて、製品の全体的なステータスを提供する。例えば、コンピュータチップなど製品は、ＲＡＭメモリおよび中央処理装置（ＣＰＵ）などの複数のコンポーネントから構成されることが可能である。問題がＣＰＵで発見され、欠陥が引き起こされると、チップの管理者は、欠陥がサブコンポーネントに存在し、ＣＰＵおよびＲＡＭを持つチップに影響を及ぼすことを提示する、ロールアップレポートを要求してもよい。ＰＬＭは、より高レベルの製品による、サブブロックの階層的な結合／使用を含むデータを、正確にトラッキングする。
【００６０】
図３は、本発明の実施形態に係る、ＳＣＭシステム３０１からＰＬＭシステム３５０にモジュールを送ることを説明するブロック図３００である。
【００６１】
ＳＣＭシステム３０１は、グラフィカルユーザインターフェース（ＧＵＩ）および／またはアプリケーションプログラミングインターフェース（ＡＰＩ）に基づくコマンドラインインターフェース（ＣＬＩ）、を有するインターフェースモジュール３０２を含む。ＧＵＩが提供されて、エンドユーザは、ＳＣＭシステム３０１上の機能性にアクセスして、コードモジュールの特定の階層が、ＰＬＭシステム３５０と同期されることをリクエストする。ＧＵＩは、最上レベルのコードモジュールの詳細のユーザ入力が同期されることを可能にし、ＳＣＭシステム３０１からＰＬＭにプッシュされるバージョンの識別を可能にする、フォームを含む。システムは、オブジェクトの複数の異なるバージョンが、同時にまたは同時期に、プッシュされることを可能にする。加えて、フォームは、コードモジュールの階層をプッシュするのか、または、具体的なレベルのみ（例えば、第１のレベルのみ）をプッシュするのか、をユーザが識別すること可能にする。システムはまた、操作を行うことなく、ユーザに階層の操作の詳細を報告することをサポートする、ドライランモードをサポートする。システムは、返された出力の詳細を制御する、報告モードをさらにサポートする。
【００６２】
インターフェースモジュールはまた、例えば、ＤｅｓｉｇｎＳｙｎｃ（登録商標）の製品によりサポートされるツールコマンド言語（tool command language（ＴＣＬ））拡張言語を使用して、ＣＬＩを提供する。ＣＬＩは、ＧＵＩフォームを介して指定されることが可能な同一の入力が提供されることが可能な、コマンドラインから成る。
【００６３】
ＳＣＭシステム３０１はまた、ＰＬＭシステム３５０と同期されるデータモジュールの階層に関する情報を抽出する、階層サービスモジュール３０４を含む。一例の実施形態において、階層サービスモジュール３０４は、例えば、ＳＣＭシステム３０１のｓｈｏｗｈｒｅｆ関数を用いて、処理のためにＰＬＭシステム３５０に渡される、ＸＭＬ形式の構造を作成する。階層サービスモジュール３０４は、その作成された構造をＰＬＭシステム３５０に渡し、結果を待機する。返送結果は、実行された操作のログを含み、これは、ユーザに報告される、以下に記述されるブレッドクラム管理システム３１０により処理される追加情報である。
【００６４】
システムは、階層サービスモジュール３０４に操作可能に連結されるカスタマイズレイヤ３０６を、さらに含む。カスタマイズレイヤ３０６は、階層的な情報の抽出の後、データの修正または拡張を可能にする。これは、エンドユーザまたはシステム管理人により提供されることが可能な選択的なＴＣＬ関数のものを含む。ＴＣＬ関数は、呼び出される際に、抽出されたデータが引数として渡される。ＴＣＬ関数は、データを修正して値を変更すること、または、データ要素ごとに追加情報を用いてデータを拡張すること、ができる。そして、追加の値はＰＬＭシステム３５０に渡される。
【００６５】
ＳＣＭシステム３０１は、処理構成モジュール３０８をさらに含む。ＰＬＭシステム３５０が、ＳＣＭシステム３０１に応答して行うように構成されるインポート処理は、ＳＣＭシステム３０１から、さらに構成されることが可能である。例えば、ＰＬＭシステム３５０上で作成されるオブジェクトの型は、ソースＳＣＭシステム３０１に依存してもよい。処理構成モジュールは、データベースから処理構成設定を読み込み、処理構成設定をデータに適用した後に、そのデータをＰＬＭシステム３５０に送る。例の実装は、構成パラメータが、手動、またはグラフィカルツールを介してのいずれかで、レジストリファイルに設定されることを可能にする。
【００６６】
ＳＣＭシステム３０１は、ブレッドクラム管理システム３１０をさらに含む。ＰＬＭシステム３５０が一旦データを処理すると、ＰＬＭシステム３５０は、ＰＬＭシステム３５０において作成されたオブジェクトについての情報が補充されたデータ構造を、ＳＣＭシステム３０１に返す。例の実装において、補充物は、ＰＬＭシステム３５０において作成されたデータの一意的なオブジェクト識別子を含む。そして、この情報は、ブレッドクラム管理システム３１０により処理され、ＳＣＭシステム３０１のデータと共にプロパティとして記憶され、ＳＣＭシステム３０１上で使用する他の操作に利用可能である。
【００６７】
ＳＣＭシステム３０１は、ＰＬＭサーバマッピングモジュール３１４、およびアイデンティティマッピングモジュール３１６をさらに含む。ＳＣＭシステム３０１では、ＰＬＭシステム３５０と通信するためのＰＬＭシステム３５０のアドレスを分かっている。ＰＬＭサーバマッピングモジュール３１４は、ＰＬＭシステム３５０アドレス指定情報が、フレキシブルかつデータに依存する様式で提供されることを可能にする。組織は、一般に単一の組織規模のＰＬＭシステム３５０を持ち、従って、そのシステムについて単一のアドレスで十分である。しかし、ＰＬＭサーバマッピングモジュール３１４は、複数のアドレスを有する複数のＰＬＭまたは分散されたＰＬＭを用いた、より複雑なインストールをサポートする。ユーザまたは管理人は、構成ツールを使用して、ＳＣＭシステム３０１オブジェクトとＰＬＭプラットフォームアドレスとの間のマッピングを指定することが可能であり、構成ツールは選択的にグラフィカルである。
【００６８】
加えて、ユーザのアイデンティティは、システム間で異なるものとすることができる（例えば、異なるユーザ名またはユーザＩＤ）。例えば、ＳＣＭシステム３０１は典型的には、識別用のユーザのシステムログイン名を用いることができるが、ＰＬＭシステム３５０は、ログインするための全社規模のアイデンティティまたは電子メールアドレスを使用してもよい。選択的なアイデンティティマッピングモジュール３１６は、ユーザのＳＣＭシステム３０１のアイデンティティを、ＰＬＭシステム３５０上のアイデンティティにマッピングするためのカスタマイズ可能なシステムを提供する。特別な実施形態において、ＩＤは、ＰＬＭシステム３５０とＳＣＭシステム３０１との間で同一であり、マッピングが必要とされない。
【００６９】
ＳＣＭシステム３０１は、通信レイヤをさらに含む。サンプルの実装において、レストフルウェブサービス（RESTful Web Service）３１８が、ＳＣＭシステム３０１とＰＬＭシステム３５０との間の通信に使用される。階層を記述するデータと、ユーザアイデンティティ情報とを、ＳＣＭシステム３０１からＰＬＭシステム３５０に渡すためのスキームを提供し、かつ、更新された情報の返送を提供する、他の通信の手段が使用されることが可能である。
【００７０】
ＰＬＭシステム３５０は、アイデンティティマッピングモジュール３３６を含んで、アイデンティティマッピングを同様に、ＰＬＭシステム３５０上で選択的に実行する。ＰＬＭシステム３５０およびＳＣＭシステム３０１のシステムにアイデンティティマッピングを提供することは、より大きなフレキシビリティを可能にし、何故なら、ａ）全てのＳＣＭサーバからのユーザＩＤが一致する場合、ＰＬＭシステム３５０において単一のアイデンティティマッピングを実装することで十分であり、また、ｂ）個別のＳＣＭサーバが異なるユーザＩＤを有するが、単一のＰＬＭシステム３５０が存在する場合、各ＳＣＭサーバでのアイデンティティマッピングの実装が、適切である、からである。例の実装の、ＳＣＭシステム３０１側でのアイデンティティマッピングモジュールは、ＳＣＭシステム３０１から来るアイデンティティを、ＰＬＭシステム３５０での識別子にマッピングする。
【００７１】
ＰＬＭシステム３５０上の階層サービス３２４は、ＳＣＭシステム３０１からのデータを受領し、全体的な処理を制御する。階層サービス３２４は、ルーチンを呼び出して、ＰＬＭシステム３５０において異なるオブジェクトを作成し、作成されたオブジェクトをまとめてリンクして、ＰＬＭシステム３５０において階層を形成する。階層サービス３２４はまた、ブレッドクラム情報を用いてデータの補充を行い、ＳＣＭシステム３０１に操作のログを返送する。
【００７２】
新しいデータの作成の後、ＰＬＭシステム３５０のカスタマイズレイヤ３２６は、ＳＣＭシステム３０１から渡されていた追加の情報を用いてデータを補充し、または、データが、元の構成設定によって禁止される手法で別のやり方で取り扱われることを可能にする。例えば、機能性の個別の使用が、オブジェクトにデフォルトと異なる名前を付けたい場合、カスタマイズレイヤ３２６は、オブジェクトをリネームすることが可能である。選択的リネーム方法は、重要であるものの全ての情報と、ＰＬＭシステム３５０において作成される等価の新しいオブジェクトが、渡される。
【００７３】
ＰＬＭシステム３５０は、処理構成モジュール３２８により読み込まれ、適用される設定の提供により、さらに構成されることができる。例えば、ＰＬＭシステム３５０は、この手法で作成されるオブジェクトの型を構成することができる。例えば、構成は、種々の指定された構成パラメータについてカスタマイズされた値を有するプロパティファイルを介するものとすることができる。
【００７４】
オブジェクト作成モジュール３３０は、ＰＬＭシステム３５０においてオブジェクトを作成する。オブジェクト作成モジュール３３０は、ＳＣＭシステム３０１からの情報と、構成パラメータとを活用して、作成されるオブジェクトの詳細を判定する。加えて、作成親オブジェクトモジュール３３２は、関連付けられた親オブジェクトを作成することができる。サンプルの実装の場合、これは、オブジェクトの追加のバージョンを作成するように構成される自動作成モジュール３３４を含んで、ルートバージョンとして動作するか、処理バージョンで働き、バージョンの導出木全体をサポートする。自動作成最新モジュール３４０は、上述の集められた情報の全てに基づき、モジュールにより作成されているオブジェクトのための、コンテナとして動作する付随する親オブジェクトを作成することができる。自動作成モジュール３３４は、モジュールの過去バージョン情報を、自動作成最新モジュール３４０により作成されるモジュールに、同様にロードすることが可能である。追加タグモジュール３４２は、タグまたはエイリアスを、作成されたアイテムに追加するように、さらに構成されることができる。
【００７５】
例えば、オブジェクト作成は、デフォルトで製品オブジェクト、および、ＳＣＭシステムからのデータのバージョンを表すリビジョンと、実際にインポートされているバージョンと、を作成することを伴う。新しいオブジェクトは、まとめて結合されて、製品の階層を形成する。
【００７６】
加えて、製品は、親モデルと製品ラインのコンポーネントに結合されることができ、これらコンポーネントは、製品開発処理の総括的管理のためにＰＬＭシステムにおいて使用される、他のオブジェクト型である。
【００７７】
図４は、本発明により用いられる処理の一例の実施形態を説明するフロー図４００である。ＰＬＭシステムが、ＳＣＭシステムにより起動された処理から、ＳＣＭシステムからインポートデータを受け取ることに応答して、ＰＬＭシステムが、インポートデータのアイテムを処理して、ＰＬＭシステムにおいてオブジェクトを作成する（４０２）。ＰＬＭシステムは、サブアイテムが存在するかどうかを判定する（４０４）。存在する場合、システムは、親の各サブアイテムを処理し（４０６）、各サブアイテムを親アイテムに結合する（４０８）。次に、ＰＬＭシステムは、作成された各サブアイテムごとに、サブアイテムが存在するかどうかを判定する（４０４）。サブアイテムが存在しない場合、処理は、現在のサブアイテムの分岐について終了する（４１０）。最終的に、全ての分岐が終了し（４１０）、処理が終了する。
【００７８】
図５は、ＰＬＭシステム５５０オブジェクトデータを、ＳＣＭシステム５０１にインポートする一例の実施形態を説明するブロック図５００である。
【００７９】
ＰＬＭシステム５５０は、ユーザが、オブジェクトの階層をＳＣＭシステム５０１にエクスポートすることを起動するためのグラフィカルユーザインターフェース（ＧＵＩ）５３４を含む。ＧＵＩ５３４は、ＳＣＭシステム５０１において作成されたオブジェクトが、円錐構造またはピア構造として結合されるかどうかを、ユーザが指定することを可能にするフォームを含む。円錐構造は、階層におけるサブオブジェクトのためのファイルを、親のディレクトリの下にある物理ディレクトリに編成する。ピア構造は、階層におけるサブオブジェクトのためのファイルを、並列の物理ディレクトリに編成する。ＧＵＩフォームはまた、ユーザが、エクスポートが、最初のエクスポートであるか、更新のエクスポートであるかを指定することを可能にする。この設定は、アイテムが、ＳＣＭシステム５０１内で再利用されるかどうかに関する要因を制御する。
【００８０】
ＰＬＭシステム５５０はまた、ＳＣＭ結合情報を記憶し、この情報は、対象のＳＣＭシステムサーバを識別し、かつ、そのサーバ上のどこに、ＰＬＭシステムからの最上レベルのオブジェクトを表すオブジェクトが配置されるかを識別する。例えば、これは以下を介する。
ａ）ＳＣＭサーバを識別するストア、
ｂ）そのサーバ上のオブジェクトの位置を識別するパス、および
ｃ）ＰＬＭオブジェクトにリンクされるＳＣＭオブジェクトのバージョンを識別するセレクタ。
【００８１】
ＰＬＭシステム５５０の実装は、ＡＰＩ関数を使用するエクスポート制御モジュール５２４を直接呼び出すことができ、システムの完全なカスタム制御を可能にする。
【００８２】
ＰＬＭシステム５５０はまた、デフォルト階層抽出モジュール５３０を含む。例えば、デフォルト階層抽出モジュール５３０は、デフォルト抽出処理を提供するが、デフォルト処理はオーバーライドされることができる。デフォルト階層抽出モジュール５３０は、ＳＣＭシステム５０１にエクスポートされる、ＰＬＭシステム５５０におけるデータオブジェクトの階層に関する情報を抽出する。サンプルの実装において、抽出は、データベースのルックアップおよびクエリを用いて、製品オブジェクトの階層を抽出する。抽出処理は、エクスポート制御モジュール５２４に渡されるデータ構造（例えば、Ｊａｖａデータ構造）をさらに作成する。
【００８３】
ＰＬＭシステム５５０はまた、カスタムプロパティモジュール５３２を含む。カスタムプロパティモジュール５３２は、カスタマイズをインポートに、さらには上述のデフォルト階層抽出処理にも、提供することが可能である。カスタムプロパティモジュール５３２は、プロパティまたは構成の値のセットを修正し、例えば、これにより、ＳＣＭシステムにおいて新しいオブジェクトが、親または最上レベルのオブジェクトの記憶場所に相対してどこに作成されるのかを制御することができる。
【００８４】
ＰＬＭシステム５５０はまた、デフォルト階層抽出モジュール５３０の代替としてカスタム抽出モジュール５２８を含む。カスタム抽出モジュール５２８は、例えば、ＰＬＭシステム５５０における異なるオブジェクトの型を処理すること、または、階層におけるどのオブジェクトがＳＣＭシステム５０１において表されるのか、および、どれがＰＬＭの目的で単に存在し、従ってＳＣＭシステム５０１にはコピーされる必要が無いのか、を判定するためのカスタムスキームを指定すること、が可能である。
【００８５】
次に、エクスポート制御モジュール５２４が、残りのエクスポート処理を制御する。エクスポート制御モジュール５２４は、以下を行うように構成される。
ａ）処理を呼び出して、アイデンティティマッピングモジュール５２２にて任意のアイデンティティマッピングを実行する、
ｂ）ウェブサービスレイヤ５２０を呼び出して、全てのデータをＳＣＭサーバに渡す、
ｃ）ＳＣＭシステム５０１から戻される結果を受け取る、
ｄ）ＳＣＭサーバのブレッドクラム管理モジュール５０８上のデータに対する任意のローカルな結合（例えば、ブレッドクラム）を記憶する、および
ｅ）ユーザに、全体的な処理のレポートを表示する（または、これをログスクリプトとして、呼び出し側に返送する）。
【００８６】
ＰＬＭシステム５５０は、オブジェクト結合モジュール５２６をさらに含む。ＳＣＭシステム５０１から戻って渡されるデータは、ＰＬＭオブジェクトと一致する作成されたＳＣＭオブジェクトのアドレスを含む。各作成されたＳＣＭオブジェクトのアドレスは、実際のオブジェクト識別子（例えば、ＵＲＬの形式で）と、ＰＬＭオブジェクトにリンクするＳＣＭオブジェクトのバージョンを識別するセレクタと、の両方を含む。この情報は、ＰＬＭオブジェクトと共に記憶されて、対応するＳＣＭオブジェクトとの結合を形成する。
【００８７】
ＰＬＭシステム５５０は、アイデンティティマッピングモジュール５２２を（選択的に）含む。ユーザのアイデンティティは、システム間で異なるものとすることができる。例えば、ＳＣＭシステム５０１は典型的には、識別用のユーザのシステムログイン名を使用することができるが、ＰＬＭシステム５５０は、ログインするための組織規模のアイデンティティまたは電子メールアドレスを使用してもよい。アイデンティティマッピングモジュール５２２は、ユーザのアイデンティティをＰＬＭシステム５５０が分かっている通りに、ＳＣＭシステム５０１上のアイデンティティにマッピングするためのカスタマイズ可能なシステムを提供する。アイデンティティマッピングは選択的である。特別なシステムにおいて、ユーザのアイデンティティは、２つのシステムの間で同一であり、マッピングが必要ない。
【００８８】
ＰＬＭシステム５５０は、ＰＬＭシステム５５０とＳＣＭシステム５０１との間の通信のためのウェブサービスレイヤ５２０，（例えば、ＳＯＡＰベースのウェブサービス）をさらに含む。あるいは、ＳＣＭシステム５０１、ＰＬＭシステム５５０、およびＳＣＭシステム５０１、または別のエンティティが、ウェブサービスレイヤ５２０を含むことができる。階層を記述するデータと、ユーザアイデンティティ情報とを、ＰＬＭシステム５５０からＳＣＭシステム５０１に渡し、更新された情報を返送し、出力のログを取り、および、値を返送する、ためのスキームを提供する他の通信の手段が用いられることが可能である。
【００８９】
ＳＣＭシステム５０１は、アイデンティティマッピングモジュール５０２を含むことができる。アイデンティティマッピングは、ＳＣＭシステム５０１でもＰＬＭシステム５５０でも、選択的に実行される。両システムにアイデンティティマッピングを提供することは、より大きなフレキシビリティを可能にし、ａ）全てのＳＣＭサーバにおいて使用されるユーザ名が一致する場合、ＰＬＭシステムにおいて単一のアイデンティティマッピングを実装することで十分であり、また、ｂ）個別のＳＣＭサーバが異なるユーザアイデンティティを有するが、単一のＰＬＭシステムが存在する場合、各ＳＣＭサーバでのアイデンティティマッピングの実装が、適切である。サンプルの実装のＳＣＭ側のアイデンティティマッピングモジュールは、ＰＬＭシステムから来るアイデンティティをＳＣＭシステム上の識別子にマッピングする、供給されるカスタマイズされた関数を提供する。
【００９０】
ＳＣＭシステム５０１は、カスタマイズレイヤ５０６を有するインポート制御モジュール５０４を含む。インポート制御モジュール５０４は、ＰＬＭシステム５５０からデータを受領し、インポートを制御する。インポート制御モジュール５０４は、ＳＣＭシステム５０１において異なるオブジェクトを作成し、それらをまとめてリンクして、ＳＣＭシステム５０１において階層を形成する。インポート制御モジュール５０４は、ブレッドクラム情報を用いてデータをさらに補充し、また、ＰＬＭシステム５５０に操作のログの返送を行う。
【００９１】
カスタマイズレイヤ５０６は、データをインポートする前または後のいずれかに、作動されることが可能である。インポートするに先立って、カスタマイズレイヤ５０６は、ＰＬＭシステム５５０から受け取られた通りに、データを訂正することができる。例えば、カスタマイズレイヤ５０６は、ＳＣＭシステム５１０を表現するには不適切なアイテムを、識別して削除する。インポートの後、カスタマイズレイヤ５０６には、ＳＣＭシステム５０１からのデータと、新しく作成されたＳＣＭオブジェクトに関する情報との両方が渡される。例えば、カスタマイズレイヤ５０６は、ＰＬＭシステム５５０から情報を受け取り、ＳＣＭオブジェクト上にプロパティを設定する（例えば、作成者の値は、ＰＬＭシステムから渡され、ＳＣＭオブジェクト上に設定されることが可能である）。
【００９２】
ＳＣＭシステム５０１は、ブレッドクラム管理モジュール５０８をさらに含む。データがＳＣＭシステムにおいて作成されると、ブレッドクラムが記憶されて、新しいＳＣＭアイテムを、ＰＬＭシステムにおけるオブジェクトにリンクさせる。例の実装において、ＰＬＭシステム５５０から送られるデータは、ＳＣＭオブジェクトのオブジェクト識別子を含む（例えば、整数は、オブジェクトの一意的な識別子である）。ＰＬＭシステム５５０からのオブジェクト識別子は、ＳＣＭシステム５０１において作成されたオブジェクトのプロパティとして設定される（例えば、モジュール、分岐、および／またはバージョン）。
【００９３】
ＳＣＭシステム５０１は、データ事前チェックモジュールをさらに含む。ＳＣＭシステムは、加えて、モジュール（またはオブジェクト）作成モジュール５１２を含む。モジュール作成モジュール５１２は、ＰＬＭシステム５５０からのモジュールを表すモジュールを、そのモジュールがまだ存在しない場合に、ＳＣＭシステム５０１において作成するように構成される。分岐作成およびタギングモジュール５１４は、モジュールの異なる分岐を、そのバージョン進行に基づきさらに作成することができ、バージョニングデータをモジュールにさらにタグ付けすることができる。階層的参照作成モジュール５１６は、ＳＣＭシステム５０１におけるモジュール間の階層的な関係性を、ＰＬＭシステム５５０上で存在する通りに表す、作成されたモジュールと既存のモジュールとの間の参照を作成することができる。
【００９４】
図６は、ＰＬＭシステムからＳＣＭシステムにデータをインポートするための、本発明により用いられる処理の一例の実施形態を説明するフロー図６００である。ＳＣＭシステムは、データを事前チェックすることにより始まる（６０２）。実施形態において、事前チェックは、処理が後で失敗することを回避するために、「静的」チェックにより発見されることが可能な「総体的な」エラーのデータをチェックすることを含むことができる。事前チェックにおける基準の例は、渡された「セレクタ」値および「名前」が対象のシステム上で有効であることをチェックすること、を含むことができるが、これに限定されない。データ事前チェックが失敗の場合、処理は終了する（６０４）。
【００９５】
しかし、事前チェックが通る場合、ＳＣＭシステムは、データの最上レベルのアイテムを処理する（６０６）。ＳＣＭシステムは、インポートが、最初のインポートモードにあるのか、既存のインポートモードにあるのかを判定する（６０８）。これが最初のインポートである場合、システムは、ＳＣＭオブジェクトがＳＣＭシステムに存在するかどうかを判定する（６１０）。存在する場合、インポートされたモジュールは、再使用されている事前に存在するモジュールである可能性があり、従って、このポイントから下の全てのデータは既に正しく、処理はこのポイントで終了することができる（６１２）。オブジェクトが事前に存在するモジュールではない場合、新しいＳＣＭオブジェクトを作成するのではなく、既存のＳＣＭオブジェクトは、サブオブジェクトとのリンクの新しいセットを用いて更新されることが可能である。それでも、新しいサブオブジェクトを作成することは、必要であるものとしてもよい。
【００９６】
モジュールが存在しない場合（６１０）、またはシステムが最初のモードではない場合（６０８）、ＳＣＭシステムは、必要に応じて、ＰＬＭオブジェクトを表す対応するモジュールを作成し（例えば、ＳＣＭに既に存在するＰＬＭオブジェクトを表すモジュールが無い場合）（６１４）、最初のバージョンを含むバージョンのセットを有する作成されたＳＣＭオブジェクトの開発分岐を作成し（６１６）、タグモジュールを介してタグを追加する（６１８）。ＰＬＭシステムからのデータが、オブジェクトがＳＣＭデータの確定されたリリースされたバージョンであることを提示する場合、システムはバージョニングデータをタグ付けし、ＳＣＭデータのバージョンに対して、確定された参照を作成する。しかし、ＰＬＭデータが、オブジェクトが作業途中であることを提示する場合、結合が、ＳＣＭデータのタグ付けされた分岐に対して作られる。換言すると、それは、その分岐のデータの最新バージョンと結合する。ＰＬＭシステムは、従って、確定された／最終化されたモジュールと、進行中の開発との両方を表すことができる。
【００９７】
次に、ＳＣＭシステムは、サブアイテムをその親に結合する（６２０）。階層における最上レベルのアイテムを除く全てについて、システムは、ＳＣＭコマンドを使用して、サブアイテムをその親オブジェクトに結合して、その結合を達成する。例のＤｅｓｉｇｎＳｙｎｃ（登録商標）システムにおいて、これは、親モジュールから子モジュールへのｈｒｅｆ（階層的参照）を作成することを含み、このｈｒｅｆは、ａ）子モジュール、ｂ）使用する子モジュールのバージョン（例えば、バージョンセレクタとして）、およびｃ）子モジュールデータが、ＳＣＭシステムからフェッチされるときに、親モジュールに相対してどこに置かれるかを提示するｈｒｅｆパス、を識別する。この最後のものは、円錐またはピアのｈｒｅｆパス値が効力を生じる場所である。円錐構造については、ｈｒｅｆパス値は、ファイルシステム上のサブディレクトリ名であり、これは、データを親モジュールデータより下に置く。ピア構造については、ｈｒｅｆパス値は、「．．／ディレクトリ名」の形式であり、データがファイルシステム上で親モジュールデータと並列に置かれるということを意味する。
【００９８】
次に、ＳＣＭシステムは、サブアイテムが存在するかどうかを判定する（６２２）。他の実施形態において、処理の順番は異なっていてもよく、何故なら、ＳＣＭシステムとその能力に依存して、例えば、親オブジェクトを作成する前に、再帰的に全てのサブアイテムを作成することが必要となることがあるからである。しかし、この例においては、親オブジェクトを作成する前に、再帰的なステップが発生する。サブアイテムが存在する場合、システムはサブアイテムを処理する（６０６）。存在しない場合、ＳＣＭシステムは処理を終了する（６２４）。
【００９９】
図７は、ＳＣＭまたはＰＬＭシステムにおいてインポートされた情報を、他方のシステムにおける対応するモジュールに対する変更の際に、自動的に更新する、本発明により用いられる処理の一例の実施形態を説明するフロー図７００を説明する。自動更新処理は、データをＰＬＭからＳＣＭに移動させるのか、ＳＣＭからＰＬＭに移動させるのかに関わらず、高レベルで同様であるが、実装の詳細が異なってもよい。以下は、ＳＣＭシステム７０１のユーザ７０２により起動された更新が、構造変更７０４を生じさせることを記述するが、同様の記述が、ＰＬＭシステム７５０、そのユーザ７２２、および対応する構造変更７２４に適用できる。
【０１００】
処理は、ＳＣＭシステム７０１のユーザ７０２が、データの構造に対する変更を生じさせる操作を実行すると、始まる（７０４）。かかる変更は以下の任意の組み合わせとすることができる。
【０１０１】
（１）一のオブジェクトからサブオブジェクトへの階層的参照の追加または削除。階層的参照は構造におけるより高レベルのオブジェクトから、より低レベルのオブジェクトへの参照であり（例えば、チップモジュールとＣＰＵとの間のリンク）、または
【０１０２】
（２）階層的参照の修正（例えば、２つのシステム間で反映される階層的参照のいくつかの態様の修正）である。かかる修正は、例えば、使用され、参照されるオブジェクトのバージョンにおける変更、または、サブオブジェクトデータが、親オブジェクトに相対してファイルシステム内のどこに置かれるのかを決定するために使用される、相対パス（例えば、ｒｅｌパス）における変更、とすることができる。
【０１０３】
構造変更は、全体的な階層構造に影響を及ぼすことができ、単一の参照をサブブロックに対して追加または修正することが、そのポイントから下方に向かう全階層に対して変更となり得る。
【０１０４】
手動の更新（７０６）では、ＳＣＭシステム７０１およびＰＬＭシステム７５０上でユーザのために提供されるＧＵＩが、機能性にアクセスして、オブジェクトの特定の階層のエクスポートを、他方のシステムにリクエストする（７０８）。
【０１０５】
自動化された更新を提供するために、本発明の実施形態はデータに対して変更がなされると、自動的にトリガされる（７１６）。トリガは、データの構造を修正する全ての変更について呼び出され、データの同期が常に実行されることを確保する。トリガは、トランザクショナルに呼び出されるため、複数の構造変更が単一のユーザ操作で実行される場合に、トリガは１回だけ呼び出される。これが、対象のシステムに対する変更を１回渡すことにより、不要な作業／データ転送を防ぐ。トリガが作動する際に、記憶されて、ＰＬＭシステム７５０におけるオブジェクトをＳＣＭシステム７０１に、またはその逆にリンクさせるブレッドクラムに、ＳＣＭシステム７０１がアクセスする。これが、両システム上で表されているデータについて、更新が対象のシステムに渡されることを確保する。第２のシステム上で反映されることが意図されない、第１のシステムにおけるデータがあってもよい。自動更新システムは、ブロックの第１の同期が、手動であるか、または、参照する親オブジェクトの同期の結果であるかのいずれかによって、および、後に続く自動的な同期がブレッドクラムの存在に基づくことによって、不要なデータを反映することを防ぐ。
【０１０６】
次に、ＳＣＭシステム７０１は、自動更新ステップを実行し（７１０）、これが、エクスポート処理を呼び出し、これは、各システムについて上述されている（７０８）。
【０１０７】
ＰＬＭシステムでは、エンドユーザが同一のＡＰＩを使用して実行する各システムに関連して上述された同一の種類の構造的変更を、更新処理（７３４）が実行する。重要なこととして、更新処理（７３４）が修正されて、セマフォフラグを呼び出しシステム上に設定する（７３２）ことがあげられる。セマフォフラグは、変更が対象のシステム上でなされると、自動的なトリガが発動するのを回避し、これが、データを、呼び出しシステムに逆に再送信させ、潜在的には、無限ループを生じさせる。セマフォを実装すること（７３２）が、更新処理によりなされる更新のためのトリガを遮断するが、トリガが、ユーザからの他の変更を行うことを可能にする。典型的なＳＣＭシステムおよびＰＬＭシステムのような、マルチスレッド化されたシステムにおいては、更新処理が発生する間にトリガが無効にされる危険がある。無効化が次に、トリガの発動から、異なるスレッド上のいくつかの動作を遮断する。セマフォの実装は、使用されているＳＣＭシステムおよびＰＬＭシステムの能力に依存する。しかし、一例の実装は、（１）全ての新しいスレッドの開始を遮断すること、（２）全ての他の稼働中のスレッドが終了するのを待つこと、（３）トリガを遮断すること、（４）更新処理により必要とされる更新を実行すること、（５）トリガを遮断解除すること、および（６）新しいスレッドが開始されることを可能にすること、を含む。
【０１０８】
セマフォ処理（７３２）は、トリガが遮断されている間、他の操作が発生しないことを確保する。より高性能のシステムは、更新処理に必要な全てのデータベース変更のトランザクションを用いて、このトランザクションがデータベースにコミットされている時間の最中のみ、トリガを遮断し、データベースに対するトランザクションコミットメントが単一スレッドにされるという事実を活用する。
【０１０９】
他方の処理は、ＰＬＭシステム７５０のユーザ７２２が、データの構造に対する変更を生じさせる操作を実行すると、始まる（７２４）。かかる変更は以下の任意の組み合わせとすることができる。
【０１１０】
（１）一のオブジェクトからサブオブジェクトへの階層的参照の追加または削除。階層的参照は構造におけるより高レベルのオブジェクトから、より低レベルのオブジェクトへの参照であり（例えば、チップモジュールとＣＰＵとの間のリンク）、または
【０１１１】
（２）階層的参照の修正（例えば、２つのシステム間で反映される階層的参照のいくつかの態様の修正）である。かかる修正は、例えば、使用され、参照されるオブジェクトのバージョンにおける変更、または、サブオブジェクトデータが、親オブジェクトに相対してファイルシステム内のどこに置かれるのかを決定するために使用される、相対パス（例えば、ｒｅｌパス）における変更、とすることができる。
【０１１２】
構造変更は、全体的な階層構造に影響を及ぼすことができ、単一の参照をサブブロックに対して追加または修正することが、そのポイントから下方に向かう全階層に対して変更となり得る。
【０１１３】
手動の更新（７２６）では、ＰＬＭシステム７５０およびＳＣＭシステム７０１上でユーザのために提供されるＧＵＩが、機能性にアクセスして、オブジェクトの特定の階層のエクスポートを、他方のシステムにリクエストする（７２８）。
【０１１４】
自動化された更新を提供するために、本発明の実施形態はデータに対して変更がなされると、自動的にトリガされる（７３６）。トリガは、データの構造を修正する全ての変更について呼び出され、データの同期が常に実行されることを確保する。トリガは、トランザクショナルに呼び出されるため、複数の構造変更が単一のユーザ操作で実行される場合に、トリガは１回だけ呼び出される。これが、対象のシステムに対する変更を１回渡すことにより、不要な作業／データ転送を防ぐ。トリガが作動する際に、記憶されて、ＳＣＭシステム７０１におけるオブジェクトをＰＬＭシステム７５０に、またはその逆にリンクさせるブレッドクラムに、ＰＬＭシステム７５０がアクセスする。これが、両システム上で表されているデータについて、更新が対象のシステムに渡されることを確保する。第２のシステム上で反映されることが意図されない、第１のシステムにおけるデータがあってもよい。自動更新システムは、ブロックの第１の同期が、手動であるか、または、参照する親オブジェクトの同期の結果であるかのいずれかによって、および、後に続く自動的な同期がブレッドクラムの存在に基づくことによって、不要なデータを反映することを防ぐ。
【０１１５】
次に、ＰＬＭシステム７５０は、自動更新ステップを実行し（７３０）、これが、エクスポート処理を呼び出し、これは、各システムについて上述されている（７２８）。
【０１１６】
ＳＣＭシステム７０１では、エンドユーザが同一のＡＰＩを使用して実行する各システムに関連して上述された同一の種類の構造的変更を、更新処理（７１４）が実行する。重要なこととして、更新処理（７１４）が修正されて、セマフォフラグを呼び出しシステム上に設定することがあげられる（７１２）。セマフォフラグは、変更が対象のシステム上でなされると、自動的なトリガが発動するのを回避し、これが、データを、呼び出しシステムに逆に再送信させ、潜在的には、無限ループを生じさせる。セマフォを実装すること（７１２）が、更新処理によりなされる更新のためのトリガを遮断するが、トリガが、ユーザからの他の変更を行うことを可能にする。典型的なＳＣＭシステムおよびＰＬＭシステムのような、マルチスレッド化されたシステムにおいては、更新処理が発生する間にトリガが無効にされる危険がある。無効化が次に、トリガの発動から、異なるスレッド上のいくつかの動作を遮断する。セマフォの実装は、使用されているＳＣＭシステムおよびＰＬＭシステムの能力に依存する。しかし、一例の実装は、（１）全ての新しいスレッドの開始を遮断すること、（２）全ての他の稼働中のスレッドが終了するのを待つこと、（３）トリガを遮断すること、（４）更新処理により必要とされる更新を実行すること、（５）トリガを遮断解除すること、および（６）新しいスレッドが開始されることを可能にすること、を含む。
【０１１７】
セマフォ処理（７１２）は、トリガが遮断されている間、他の操作が発生しないことを確保する。より高性能のシステムは、更新処理に必要な全てのデータベース変更のトランザクションを用いて、このトランザクションがデータベースにコミットされている時間の最中のみ、トリガを遮断し、データベースに対するトランザクションコミットメントが単一スレッドにされるという事実を活用する。
【０１１８】
上述のエクスポート処理およびインポート処理は、自動更新するために修正される。具体的には、処理のエクスポート部分が、ソースシステムからデータを集める。自動更新において、任意の既存のブレッドクラムまたはトラッキングデータが、構造に沿って抽出される。処理のインポート側は、対象のシステム上でデータを作成または修正する作業の大部分を実行する。自動更新において、オブジェクトがシステム上に既に存在するかどうかを確かめるチェックをするときに、ブレッドクラムデータが使用される。ブレッドクラムデータがある場合、存在チェックが実行されて、オブジェクトが存在することを確保する。オブジェクトが既に存在する場合、そのオブジェクトからサブオブジェクトへの参照は、なお更新されることが必要であるかもしれない。新しいサブオブジェクトが追加されていてもよく、対応する新しい参照が作成されてもよい。サブオブジェクトへの参照は、ソースシステム上では削除されていてもよく、対象のシステム上の対応する参照は、同様に削除される必要があるかもしれない。参照の属性（例えば、データをフェッチするときに使用される対象のパスまたはｈｒｅｆパスのバージョン）は、変更されていてもよい。
【０１１９】
対象のオブジェクトを修正することは、それが静的バージョンである場合は、可能でないこともありうる。ＰＬＭシステム７５０におけるオブジェクトの静的バージョンは、リリースされたアイテムを表す。これら静的バージョンは、それらが過去における確定されたポイントでの状態を表すため、修正されることができない。ＳＣＭシステム７０１自体が、かかる場合の変更を回避するため、かかるアイテムには、変更が可能とされない可能性がある。静的バージョン上での変更が企図される場合、インポート処理は、ユーザがそのレベルで補正するように、ＳＣＭシステム７０１に問題を正確に報告する。
【０１２０】
上述のエクスポート処理およびインポート処理は、自動更新するために修正される。具体的には、処理のエクスポート部分が、ソースシステムからデータを集める。自動更新において、任意の既存のブレッドクラムまたはトラッキングデータが、構造に沿って抽出される。処理のインポート側は、対象のシステム上でデータを作成または修正する作業の大部分を実行する。自動更新において、オブジェクトがシステム上に既に存在するかどうかを確かめるチェックをするときに、ブレッドクラムデータが使用される。ブレッドクラムデータがある場合、存在チェックが実行されて、オブジェクトが存在することを確保する。オブジェクトが既に存在する場合、そのオブジェクトからサブオブジェクトへの参照は、なお更新されることが必要であるかもしれない。新しいサブオブジェクトが追加されていてもよく、対応する新しい参照が作成されてもよい。サブオブジェクトへの参照は、ソースシステム上では削除されていてもよく、対象のシステム上の対応する参照は、同様に削除される必要があるかもしれない。参照の属性（例えば、データをフェッチするときに使用される対象のパスまたはｈｒｅｆパスのバージョン）は、変更されていてもよい。
【０１２１】
対象のオブジェクトを修正することは、それが静的バージョンである場合は、可能でないこともありうる。ＳＣＭシステムにおけるオブジェクトの静的バージョンは、リリースされたアイテムを表す。これら静的バージョンは、それらが過去における確定されたポイントでの状態を表すため、修正されることができない。ＰＬＭシステム自体が、かかる場合の変更を回避するため、かかるアイテムには、変更が可能とされない可能性がある。静的バージョン上での変更が企図される場合、インポート処理は、ユーザがそのレベルで補正するように、ＰＬＭシステムに問題を正確に報告する。
【０１２２】
理想的には、構造の変更は、単一の操作内の設計の単一のレイヤに限定される。例えば、操作は、最上レベルのチップから新しいＡＬＵブロックへの参照を追加するかもしれないが、チップが既に参照しているＣＰＵブロックより下の構造を、同時に修正はしない。それが保証される場合、全部の更新処理が最適化されることが可能であるため、構造の単一のレイヤがシステム間で渡され、一度で更新される。しかし、ほとんどのシステムにおいて、これが保証されることはできず、与えられた例においては、ＡＬＵは、全部が新しい階層構造であり得、他方のシステムにおいて表される。
【０１２３】
加えて、安全のため、および、任意のエラー状態に対処するため、処理は、全階層の再同期を強制的に行う。従って、システムは、構造全体を（例えば、最上レベルの修正されたオブジェクトから下に）任意の操作について常に送り、しかも、これが、インポート中の対象のシステムに対してチェックされる。このアプローチは、パフォーマンスおよびシステム要件の観点からは非常に大変であるが、より正確である。
【０１２４】
図８は、本発明の実施形態が実装され得る、コンピュータネットワークまたは同様のデジタル処理環境を説明する。
【０１２５】
クライアントコンピュータ／デバイス５０およびサーバコンピュータ６０が、アプリケーションプログラムなどを実行する、処理デバイス、記憶デバイス、および入力／出力デバイスを提供する。クライアントコンピュータ／デバイス５０はまた、通信ネットワーク７０を通して、他のクライアントコンピュータ／デバイス５０およびサーバコンピュータ６０、を含む他のコンピューティングデバイスにリンクされることが可能である。通信ネットワーク７０は、リモートアクセスネットワーク、グローバルネットワーク（例えば、インターネット）、コンピュータのワールドワイドコレクション、ローカルエリアネットワークまたはワイドエリアネットワーク、およびゲートウェイの一部とすることができ、これらは、現在、それぞれのプロトコル（ＴＣＰ／ＩＰ、Ｂｌｕｅｔｏｏｔｈ（登録商標）、など）を使用してお互いに通信する。他の電子デバイス／コンピュータネットワークアーキテクチャは適したものとなる。
【０１２６】
図９は、図８のコンピュータシステムにおけるコンピュータ（例えば、クライアントコンピュータ／デバイス５０またはサーバコンピュータ６０）の一例の内部の構造の図である。各コンピュータ５０、６０は、システムバス７９を包含し、それにおいて、バスは、コンピュータまたは処理システムのコンポーネント間でデータ転送に使用されるハードウェア回線のセットである。システムバス７９は、基本的には、要素間の情報の転送を可能にする、コンピュータシステムの異なる要素（例えば、プロセッサ、ディスク記憶装置、メモリ、入力／出力ポート、ネットワークポート、など）を結合する共用コンジット（shared conduit）である。システムバス７９には、Ｉ／Ｏデバイスインターフェース８２が取り付けられ、これは種々の入力デバイスおよび出力デバイス（例えば、キーボード、マウス、ディスプレイ、プリンタ、スピーカ、など）をコンピュータ５０、６０に接続させるためのものである。ネットワークインターフェース８６は、コンピュータが、ネットワークに取り付けられた種々の他のデバイスに接続することを可能にする（例えば、図８のネットワーク７０）。メモリ９０は、本発明の実施形態を実装するために使用されるルーチン／プログラム９２およびデータ９４（例えば、上記で詳述された、抽出モジュール、作成モジュール、およびマッピングモジュール）のための、揮発性記憶装置を提供する。ディスク記憶装置９５は、本発明の実施形態を実装するために使用されるルーチン／プログラム９２およびデータ９４のための、不揮発性記憶装置を提供する。中央処理装置８４もまたシステムバス７９に取り付けられ、コンピュータ命令の実行を提供する。
【０１２７】
一実施形態において、プロセッサルーチン９２およびデータ９４は、コンピュータプログラム製品（総括的に、９２で参照される）であり、少なくとも本発明システムのソフトウェア命令の一部分を提供する非一時的コンピュータ可読媒体（例えば、１または複数のＤＶＤ−ＲＯＭ、ＣＤ−ＲＯＭ、ディスケット、テープなど取り外し可能な記憶媒体）を含む。ルーチン／プログラム９２は、従来技術で周知であるように、任意の適したソフトウェアインストール手続きによりインストールされることが可能である。別の実施形態において、ソフトウェア命令の少なくとも一部分はまた、ケーブル通信および／または無線接続を介してダウンロードされてもよい。他の実施形態において、本発明プログラムは、伝搬媒体上の伝播信号上（例えば、無線波、赤外線波、レーザ波、音波、またはインターネットまたは他のネットワークなどのグローバルネットワークを介して伝播される電波）で具現化されるコンピュータプログラム伝播信号製品である。かかる搬送媒体または信号は用いられて、本発明ルーチン／プログラム９２のソフトウェア命令の少なくとも一部分を提供することができる。
【０１２８】
本発明を、本発明の実施形態の例を参照して特別に示し、記述してきたが、当業者により、添付の特許請求の範囲に包含される本発明の範囲から逸脱することなく、形態および詳細において種々の変更が可能なことが理解されるであろう。
【図１】
2017091531.tif 000003
【図２】
2017091531.tif 000004
【図３】
2017091531.tif 000005
【図４】
2017091531.tif 000006
【図５】
2017091531.tif 000007
【図６】
2017091531.tif 000008
【図７】
2017091531.tif 000009
【図８】
2017091531.tif 000010
【図９】
2017091531.tif 000011