(57)【特許請求の範囲】
【請求項１】
バージョン管理されたドメインとバージョン管理されないドメインの間でアーチファクトを相関付けるためのコンピュータ実装方法であって、
アーチファクトのセット内のアーチファクトに関して、前記バージョン管理されたドメインと前記バージョン管理されないドメインの両方の属性を含んでいるメタデータを生成するステップであって、前記メタデータが、前記バージョン管理されたドメイン内および前記バージョン管理されないドメイン内で使用される前記アーチファクトのセットと関連付けられる、前記生成するステップと、
バージョン管理されたアーチファクト定義の特定のバージョンを使用してインスタンスを作成するステップであって、前記インスタンスが、前記バージョン管理されたアーチファクト定義から直接作成された第１の部分およびバージョン管理されないアーチファクト定義から作成された第２の部分を備えている、前記作成するステップと、
前記バージョン管理されたドメイン内および前記バージョン管理されないドメイン内の前記アーチファクトの各表現間のリンクを指定するステップであって、指定されたリンクが、前記バージョン管理されたドメイン内のアーチファクトの複数のバージョン間の関係を、前記バージョン管理されないドメイン内の同じアーチファクトの単一のバージョン管理されない表現に対して定義する、前記指定するステップと、
前記バージョン管理されたドメインまたは前記バージョン管理されないドメインのいずれかからの前記アーチファクトのインスタンスの作成、インスタンスの実行、およびインスタンスの更新のうちの選択された１つを実行するために使用されるファサードのセットを提供することに応答して、前記バージョン管理されたドメインまたは前記バージョン管理されないドメインのいずれかからの前記アーチファクトのインスタンスの作成、インスタンスの実行、およびインスタンスの更新のうちの前記選択された１つを受信するステップであって、前記アーチファクトのインスタンスの作成、インスタンスの実行、およびインスタンスの更新のうちの前記選択された１つが、定義済み検証ルールのセットを使用して実行される、前記受信するステップと、
前記アーチファクト定義のすべてのバージョンを、単一のバージョン管理されない定義に相関付けるステップであって、前記単一のバージョン管理されない定義の前記アーチファクト定義も、前記アーチファクト定義のすべてのバージョンに相関付けられる、前記相関付けるステップと、
前記相関付けるステップが、アーチファクト・レベルでの相関関係の第１のレベルおよび属性レベルでの相関関係の第２のレベルをさらに含み、前記相関関係が、一意の識別子を使用してアーチファクトを定義およびインスタンスに適用可能なように関連付けるステップとを含む、方法。
【請求項２】
前記メタデータを生成するステップが、
前記バージョン管理された定義のすべてのバージョンおよび前記バージョン管理されない定義によって共有された不変の構成要素を含んでいる前記アーチファクトに一意の識別子（ＵＩＤ）を割り当てるステップであって、前記ＵＩＤが、バージョン管理された＜共通ＵＩＤ＞＿＜バージョンＩＤ＞という第１の形態およびバージョン管理されない＜共通ＵＩＤ＞という第２の形態で表され、システムが前記＜共通ＵＩＤ＞部分を使用して、同じアーチファクトのすべてのバージョンおよび関連する単一のバージョン管理されない定義を識別し、前記ＵＩＤが、関連するアーチファクトが存続する間は不変である、前記割り当てるステップと、
属性のファセットから生成するステップであって、前記ファセットが、変更された場合に、前記バージョン管理されないドメイン内の既存のインスタンスとの互換性のない前記
属性と関連付けられたインスタンス・データを作成し、特定のファセットが、前記定義が存続する間は不変であると判断され、前記特定のファセットが前記バージョン管理されたドメイン内で変更された場合、前記変更によって前記システムが前記属性を親定義への新しい追加であると識別し、前記ＵＩＤが、バージョン管理された属性とバージョン管理されない属性の両方によって全体的に共有され、＜ＵＩＤ＞＿＜不変のファセット１の値＞＿＜…＞＿＜不変のファセットｎの値＞の形式で表される、前記生成するステップとをさらに含む、請求項１に記載の方法。
【請求項３】
前記アーチファクトのインスタンスの作成、インスタンスの実行、およびインスタンスの更新のうちの選択された１つを実行するために使用されるファサードのセットを提供することに応答して、
バージョン管理されたファサードおよびバージョン管理されないファサードのうちの１つの選択を受信して、インスタンス・データを更新するステップと、
前記バージョン管理されたファサードの前記選択を受信することに応答して、前記バージョン管理された定義の特定のバージョンに対して定義された属性および前記バージョン管理された定義の当該特定のバージョンの属性に関する前記定義済み検証ルールのセットにのみアクセスするステップと、
当該ファサードに対する更新を、前記バージョン管理された定義の前記特定のバージョンに対して直接検証するステップと、
前記更新が有効であることに応答して、前記定義の前記バージョン管理されたインスタンスと前記バージョン管理されないインスタンスの間の同期を維持するために、前記バージョン管理されないファサードの対応する属性が検索されて、同じトランザクションに保存されるステップと、
前記バージョン管理されないファサードの前記選択を受信することに応答して、前記バージョン管理されない定義内の前記対応する属性へのマッピングに従って、前記バージョン管理された定義のすべてのバージョン内で定義された前記属性を公開するステップと、
前記バージョン管理されないファサードを介して行われた変更に応答して、前記対応するバージョン管理されたファサード内の検索を実行するステップであって、前記変更が当該対応するバージョン管理されたファサードにマッピングされ、前記定義済み検証ルールのセット内の対応する検証ルールが、前記特定のバージョン管理された定義による定義に従ってチェックされる、前記実行するステップと、
更新の成功に応答して、前記バージョン管理されたインスタンスおよび前記バージョン管理されないインスタンスに対する前記変更を単一のトランザクションに保存するステップと、
更新の失敗に応答して、前記変更がロールバックされるステップをさらに含む、請求項１に記載の方法。
【請求項４】
前記バージョン管理されたドメイン内の前記アーチファクト定義を更新するステップであって、前記アーチファクト定義の最新のバージョンｎに対するユーザの変更が、前記ユーザの変更を含んでいる新しいバージョンｎ＋１を作成し、前記ユーザの変更が、追加、削除、および修正のうちのいずれか１つであり、前記バージョン管理されないアーチファクト定義を同期させるために、ユーザの変更ごとに、前記バージョン管理されないアーチファクト定義への対応するマッピングが行われる、前記更新するステップをさらに含み、
前記アーチファクト定義の前記属性と関連付けられた前記定義済み検証ルールのセット内の検証ルールにおける変更に応答して、前記バージョン管理されないアーチファクト定義に対する更新が行われず、
互換性のある方法で前記バージョン管理されないアーチファクト定義に適用できるファセットの変更に応答して、前記バージョン管理されない定義内の前記属性を変更し、
互換性のある方法で前記バージョン管理されないアーチファクト定義に適用できないファセットの変更に応答して、前記バージョン管理されたアーチファクト定義の前記属性と
関連付けられた前記定義済み検証ルールのセットを使用して、新しい属性を前記バージョン管理されない定義に追加する、請求項１に記載の方法。
【請求項５】
前記定義済み検証ルールのセットが、前記アーチファクト定義の前記属性と関連付けられた１つまたは複数の定義済み検証ルールを含み、前記定義済み検証ルールのセット内の前記１つまたは複数のルールが、受信された変更を、更新された前記インスタンスがバージョン管理されないインスタンスであるか、バージョン管理されたインスタンスであるかに拘わらず、前記バージョン管理された定義内の前記１つまたは複数の定義済み検証ルールを使用して、前記バージョン管理された定義の特定のバージョンに対して検証する、請求項１に記載の方法。
【請求項６】
前記第１の部分または前記第２の部分のいずれかの検索を、前記バージョン管理された定義のすべてのバージョンおよび前記バージョン管理されない定義によって共有された不変の構成要素も共有している前記第１の部分または前記第２の部分の残りの１つを使用して実行するステップができる、請求項１に記載の方法。
【請求項７】
請求項１〜6の何れか１項に記載の方法の各ステップを、コンピュータに実行させる、コンピュータ・プログラム。
【請求項８】
請求項７に記載の前記コンピュータ・プログラムをコンピュータ可読記憶媒体に記録した、コンピュータ可読記憶媒体。
【請求項９】
バージョン管理されたドメインとバージョン管理されないドメインの間でアーチファクトを相関付けるための装置であって、
バスと、
前記バスに接続され、具現化されたプログラム命令を含んでいるメモリと、
プロセッサ・ユニットを備え、
前記プロセッサ・ユニットが前記プログラム命令を実行して、前記装置に、
アーチファクトのセット内のアーチファクトに関して、前記バージョン管理されたドメインと前記バージョン管理されないドメインの両方の属性を含んでいるメタデータを生成することであって、前記メタデータが、前記バージョン管理されたドメイン内および前記バージョン管理されないドメイン内で使用される前記アーチファクトのセットと関連付けられる、前記生成することと、
バージョン管理されたアーチファクト定義の特定のバージョンを使用してインスタンスを作成することであって、前記インスタンスが、前記バージョン管理されたアーチファクト定義から直接作成された第１の部分およびバージョン管理されないアーチファクト定義から作成された第２の部分を備えている、前記作成することと、
前記バージョン管理されたドメイン内および前記バージョン管理されないドメイン内の前記アーチファクトの各表現間のリンクを指定することであって、指定されたリンクが、前記バージョン管理されたドメイン内のアーチファクトの複数のバージョン間の関係を、前記バージョン管理されないドメイン内の同じアーチファクトの単一のバージョン管理されない表現に対して定義する、前記指定することと、
前記バージョン管理されたドメインまたは前記バージョン管理されないドメインのいずれかからの前記アーチファクトのインスタンスの作成、インスタンスの実行、およびインスタンスの更新のうちの選択された１つを実行するために使用されるファサードのセット
を提供することに応答して、前記バージョン管理されたドメインまたは前記バージョン管理されないドメインのいずれかからの前記アーチファクトのインスタンスの作成、インスタンスの実行、およびインスタンスの更新のうちの前記選択された１つを受信することであって、前記アーチファクトのインスタンスの作成、インスタンスの実行、およびインスタンスの更新のうちの前記選択された１つが、定義済み検証ルールのセットを使用して実行される、前記受信することと、
前記アーチファクト定義のすべてのバージョンを、単一のバージョン管理されない定義に相関付けることであって、前記単一のバージョン管理されない定義の前記アーチファクト定義も、前記アーチファクト定義のすべてのバージョンに相関付けられる、前記相関付けることを実行させることと、
前記相関付けることを実行させることが、アーチファクト・レベルでの相関関係の第１のレベルおよび属性レベルでの相関関係の第２のレベルをさらに含み、前記相関関係が、一意の識別子を使用してアーチファクトを定義およびインスタンスに適用可能なように関連付けることを実行させる、装置。
【請求項１０】
前記プロセッサ・ユニットが前記プログラム命令を実行して前記装置にメタデータを生成させ、前記装置に、
前記バージョン管理された定義のすべてのバージョンおよび前記バージョン管理されない定義によって共有された不変の構成要素を含んでいる前記アーチファクトに一意の識別子（ＵＩＤ）を割り当てることであって、前記ＵＩＤが、バージョン管理された＜共通ＵＩＤ＞＿＜バージョンＩＤ＞という第１の形態およびバージョン管理されない＜共通ＵＩＤ＞という第２の形態で表され、システムが前記＜共通ＵＩＤ＞部分を使用して、同じアーチファクトのすべてのバージョンおよび関連する単一のバージョン管理されない定義を識別し、前記ＵＩＤが、関連するアーチファクトが存続する間は不変である、前記割り当てることと、
属性のファセットから生成することであって、前記ファセットが、変更された場合に、前記バージョン管理されないドメイン内の既存のインスタンスとの互換性のない前記属性と関連付けられたインスタンス・データを作成し、特定のファセットが、前記定義が存続する間は不変であると判断され、前記特定のファセットが前記バージョン管理されたドメイン内で変更された場合、前記変更によって前記システムが前記属性を親定義への新しい追加であると識別し、前記ＵＩＤが、バージョン管理された属性とバージョン管理されない属性の両方によって全体的に共有され、＜ＵＩＤ＞＿＜不変のファセット１の値＞＿＜…＞＿＜不変のファセットｎの値＞の形式で表される、前記生成することとをさらに実行させる、請求項９に記載の装置。
【請求項１１】
前記アーチファクトのインスタンスの作成、インスタンスの実行、およびインスタンスの更新のうちの選択された１つを実行するために使用されるファサードのセットを提供することに応答して、前記装置に実行させるように前記プロセッサ・ユニットが前記プログラム命令を実行し、前記装置に、
バージョン管理されたファサードおよびバージョン管理されないファサードのうちの１つの選択を受信して、インスタンス・データを更新することと、
前記バージョン管理されたファサードの前記選択を受信することに応答して、前記バージョン管理された定義の特定のバージョンに対して定義された属性および前記バージョン管理された定義の当該特定のバージョンの属性に関する前記定義済み検証ルールのセットにのみアクセスすることと、
当該ファサードに対する更新を、前記バージョン管理された定義の前記特定のバージョンに対して直接検証することと、
前記更新が有効であることに応答して、前記定義の前記バージョン管理されたインスタンスと前記バージョン管理されないインスタンスの間の同期を維持するために、前記バージョン管理されないファサードの対応する属性を検索し、同じトランザクションに保存することと、
前記バージョン管理されないファサードの選択を受信することに応答して、前記バージョン管理されない定義内の前記対応する属性へのマッピングに従って、前記バージョン管理された定義のすべてのバージョン内で定義された前記属性を公開することと、
前記バージョン管理されないファサードを介して行われた変更に応答して、前記対応するバージョン管理されたファサード内の前記属性の検索を実行することであって、前記変更が当該対応するバージョン管理されたファサードにマッピングされ、前記定義済み検証ルール内の対応する検証ルールが、前記特定のバージョン管理された定義による定義に従ってチェックされる、前記実行することと、
更新の成功に応答して、前記バージョン管理されたインスタンスおよび前記バージョン管理されないインスタンスに対する前記変更を単一のトランザクションに保存することと、
更新の失敗に応答して、前記変更をロールバックすることをさらに実行させる、請求項９に記載の装置。
【請求項１２】
前記プロセッサ・ユニットが前記プログラム命令を実行して、前記装置に、
前記バージョン管理されたドメイン内の前記アーチファクト定義を更新することであって、前記アーチファクト定義の最新のバージョンｎに対するユーザの変更が、前記ユーザの変更を含んでいる新しいバージョンｎ＋１を作成し、前記ユーザの変更が、追加、削除、および修正のうちのいずれか１つであり、前記バージョン管理されないアーチファクト定義を同期させるために、ユーザの変更ごとに、前記バージョン管理されないアーチファクト定義への対応するマッピングが行われる、前記更新することをさらに実行させ、
前記アーチファクト定義の前記属性と関連付けられた前記定義済み検証ルールのセット内の検証ルールにおける変更に応答して、前記バージョン管理されないアーチファクト定義に対する更新が行われず、
互換性のある方法で前記バージョン管理されないアーチファクト定義に適用できるファセットの変更に応答して、前記バージョン管理されない定義内の前記属性を変更し、
互換性のある方法で前記バージョン管理されないアーチファクト定義に適用できないファセットの変更に応答して、前記バージョン管理されたアーチファクト定義の前記属性と関連付けられた前記定義済み検証ルールのセットを使用して、新しい属性を前記バージョン管理されない定義に追加する、請求項９に記載の装置。
【請求項１３】
前記定義済み検証ルールのセットが、前記アーチファクト定義の前記属性と関連付けられた１つまたは複数の定義済み検証ルールを備え、前記定義済み検証ルールのセット内の前記１つまたは複数のルールが、受信された変更を、更新された前記インスタンスがバージョン管理されないインスタンスであるか、バージョン管理されたインスタンスであるかに拘わらず、前記バージョン管理された定義内の前記１つまたは複数の定義済み検証ルールを使用して、前記バージョン管理された定義の特定のバージョンに対して検証する、請求項９に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、一般に、データ処理システムにおけるビジネス・プロセス管理およびケース管理に関し、より詳細には、バージョン管理されたドメイン内で定義およびインスタンス化されたアーチファクトを、データ処理システム内のバージョン管理されないドメインに相関付けることに関する。
【背景技術】
【０００２】
組織は、コンテンツまたは情報を生成する。組織は、多くの場合それを、プロセスが正式に定義されてシステムによって実行される、ある種のプロセスを通じて行うか、あるいは従業員間の人的対話およびクライアントまたはパートナーあるいはその両方との対話を通じて暗黙的に行う。コンテンツおよびプロセスは、組織のビジネスにとって重要である。したがって、それらのプロセスを正式なものにするため、および組織の運営に不可欠な情報の分類と収集を可能にするために、ソフトウェア・システムが使用される。
【０００３】
したがって、組織がビジネスを正常に実行するために必要なアプリケーションの構築において、組織内および組織外で使用できるようにするために、プロセスおよびデータの定義を設計するという要件がある。これは、文書化およびプロセスに当てはまるだけでなく、任意の種類のアーチファクト、または何が組織の中心概念を構成しているかを定義するメタデータにも当てはまる。ソフトウェア・システムにおいてメタデータを取得する方法に関して、バージョン管理された方法およびバージョン管理されない方法という２つの選択肢がある。
【０００４】
バージョン管理されたアプローチでは、特定のアーチファクトの関係および時間順序または進化を記録する。このアプローチは、特定のバージョンがそれぞれシステムの運用にとって重要であり、同じメタデータのその他の変形（すなわち、バージョン）とは無関係にアクセス可能でなければならない場合に役立つ。プロセスは、１つの例である。それらのプロセスは、通常、十分に構造化されたフロー、またはアクティビティ間の関係を定義する。また、プロセスは多くの場合、短時間存続し、同じプロセスの複数のインスタンスが同時に実行されることがある。そのため、各定義は、複数のインスタンスが、予期しない変更または互換性のない変更に起因する失敗のリスクなしに実行し続けることを可能にするバージョン管理されたアプローチから恩恵を受けることができる。同時に、新しいバージョンは、プロセスを改善することができ、すでに進行中のインスタンスに影響を与える危険を冒さずに、新しいインスタンスがその改善から直ちに恩恵を受けることを可能にする。例えば、保険金請求を扱うプロセスは、時間とともに進化できる。新しいバージョンが定義されると、その新しいバージョンを公開することができ、それと同時に、古いバージョンのインスタンスが引き続き実行されて完了する。バージョン管理されたアプローチでは、このような柔軟性が可能になる。
【０００５】
バージョン管理されないアプローチでは、基本的に、メタデータの唯一のバージョンが存在し、メタデータのそのバージョンが時間とともに進化する。コンテンツまたは情報は、このアプローチにより適している可能性がある。文書は、作成されると、通常は長時間存続する。例えば、保険契約定義は、最初に定義されるときに、数個の属性を含むだけでよいが、保険会社のビジネスが成長するにつれて、保険契約によって記録される情報を拡張する必要が生じ、それと同時に、古い保険契約は、古い保険契約を処理する新しいシステムによって引き続きアクセス可能にし、処理されなければならない。プロセス定義とは異なり、文書定義は、通常、ビジネスとともに進化し続ける単一のバージョンから恩恵を受ける。これは、情報マイニングに関して特に当てはまる。文書定義に複数のバージョンがある場合、その文書は検索が難しくなり、相互に関連するインスタンスを基本的に単一の文書定義のものに統合することが困難になる。したがって、唯一の文書定義をシステム内すべての文書間の共通リンクにすることは、重要な属性である。
【０００６】
概念の性質に応じて、定義されていることの一部の態様に関して、いずれのアプローチにも限定が生じる。プロセスによって生成されるデータについて検討する。急速に進化することが予想されるプロセス自体は、プロセスが進化する速度および同時に実行される複数のインスタンスを維持するという関連要件のため、通常は、バージョン管理されたアプローチでのみ実装することができる。ただし、プロセスと関連付けられた情報またはプロパティは、通常、バージョン管理されないアプローチの使用により適している。保険金請求プロセスの例を用いると、プロセスが完了した後（および、プロセスの複数の新しいバージョンがすでに配置された後）に長時間存続する必要のある文書およびデータが生成される場合があるが、同時にその情報は、検索可能で、その情報を作成した単一の保険金請求プロセスに関係付けられていなければならない。一般的に言って、これは、同じコインの裏表と考えることができる。組織のメタデータは、場合によっては、バージョン管理されている（請求を解決するためのプロセス）として振る舞うかアクセスされることが必要になり、それ以外の場合、バージョン管理されていない（進行中または解決済みの請求と関連付けられたデータ）として振る舞うかアクセスされることが必要になる。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】米国特許出願公開第ＵＳ２０１２／０２５４８２８号
【発明の概要】
【発明が解決しようとする課題】
【０００８】
バージョン管理されたドメインとバージョン管理されないドメインの間でアーチファクトを相関付けるための方法、プログラム、および装置を提供することである。
【課題を解決するための手段】
【０００９】
一実施形態では、バージョン管理されたドメインとバージョン管理されないドメインの間でアーチファクトを相関付けるためのコンピュータ実装方法は、アーチファクトのセット内の１つのアーチファクトに関して、バージョン管理されたドメインとバージョン管理されないドメインの両方の属性を含んでいるメタデータを生成することであって、このメタデータがバージョン管理されたドメインおよびバージョン管理されないドメインで使用されるアーチファクトのセットと関連付けられる、生成することと、バージョン管理されたアーチファクト定義の特定のバージョンを使用してインスタンスを作成することであって、このインスタンスが、バージョン管理されたアーチファクト定義から直接作成された第１の部分およびバージョン管理されないアーチファクト定義から作成された第２の部分を備える、作成することと、バージョン管理されたドメインおよびバージョン管理されないドメイン内のアーチファクトの各表現間のリンクを指定することであって、指定されたリンクが、バージョン管理されたドメイン内のアーチファクトの複数のバージョン間の関係を、バージョン管理されないドメイン内の同じアーチファクトの単一のバージョン管理されない表現に対して定義する、指定することと、バージョン管理されたドメインまたはバージョン管理されないドメインのいずれかからのアーチファクトのインスタンスの作成、インスタンスの実行、およびインスタンスの更新のうちの選択された１つの実行に使用されるファサードのセットを提供することに応答して、バージョン管理されたドメインまたはバージョン管理されないドメインのいずれかからのアーチファクトのインスタンスの作成、インスタンスの実行、およびインスタンスの更新のうちの選択された１つを受信することであって、アーチファクトのインスタンスの作成、インスタンスの実行、およびインスタンスの更新のうちの選択された１つが、ルールのセットを使用して実行される、受信することと、アーチファクト定義のすべてのバージョンを単一のバージョン管理されない定義に相関付けることであって、単一のバージョン管理されない定義のアーチファクト定義もアーチファクト定義のすべてのバージョンに相関付けられる、相関付けることとを行う。
【００１０】
第１の態様から見ると、本発明はバージョン管理されたドメインとバージョン管理されないドメインの間でアーチファクトを相関付けるためのコンピュータ実装方法を提供し、このコンピュータ実装方法は、アーチファクトのセット内の１つのアーチファクトに関して、バージョン管理されたドメインとバージョン管理されないドメインの両方の属性を含んでいるメタデータを生成することであって、このメタデータがバージョン管理されたドメインおよびバージョン管理されないドメインで使用されるアーチファクトのセットと関連付けられる、生成することと、バージョン管理されたアーチファクト定義の特定のバージョンを使用してインスタンスを作成することであって、このインスタンスが、バージョン管理されたアーチファクト定義から直接作成された第１の部分およびバージョン管理されないアーチファクト定義から作成された第２の部分を備える、作成することと、バージョン管理されたドメインおよびバージョン管理されないドメイン内のアーチファクトの各表現間のリンクを指定することであって、指定されたリンクが、バージョン管理されたドメイン内のアーチファクトの複数のバージョン間の関係を、バージョン管理されないドメイン内の同じアーチファクトの単一のバージョン管理されない表現に対して定義する、指定することと、バージョン管理されたドメインまたはバージョン管理されないドメインのいずれかからのアーチファクトのインスタンスの作成、インスタンスの実行、およびインスタンスの更新のうちの選択された１つの実行に使用されるファサードのセットを提供することに応答して、バージョン管理されたドメインまたはバージョン管理されないドメインのいずれかからのアーチファクトのインスタンスの作成、インスタンスの実行、およびインスタンスの更新のうちの選択された１つを受信することであって、アーチファクトのインスタンスの作成、インスタンスの実行、およびインスタンスの更新のうちの選択された１つが、定義済み検証ルールのセットを使用して実行される、受信することと、アーチファクト定義のすべてのバージョンを単一のバージョン管理されない定義に相関付けることであって、単一のバージョン管理されない定義のアーチファクト定義もアーチファクト定義のすべてのバージョンに相関付けられる、相関付けることとを備える。
【００１１】
好ましくは、本発明は方法を提供し、メタデータを生成することが、一意の識別子（ＵＩＤ：uniqueidentifier）を、バージョン管理された定義のすべてのバージョンおよびバージョン管理されない定義によって共有された不変の構成要素を含んでいるアーチファクトに割り当てることであって、ＵＩＤがバージョン管理された＜共通ＵＩＤ＞＿＜バージョンＩＤ＞という第１の形態およびバージョン管理されない＜共通ＵＩＤ＞という第２の形態で表され、システムが＜共通ＵＩＤ＞部分を使用して同じアーチファクトのすべてのバージョンおよび関連する単一のバージョン管理されない定義を識別し、ＵＩＤが関連するアーチファクトの存続期間を通じて不変である、割り当てることと、属性のファセットから生成することであって、ファセットが、変更された場合に、バージョン管理されないドメイン内の既存のインスタンスとの互換性のない属性と関連付けられたインスタンス・データを作成し、特定のファセットが、定義が存続する間は不変であると判断され、それらの特定のファセットがバージョン管理されたドメイン内で変更された場合に、それらの変更によってシステムが属性を親定義への新規追加であると識別し、ＵＩＤがバージョン管理された属性とバージョン管理されない属性の両方によって全体的に共有され、＜ＵＩＤ＞＿＜不変のファセット１の値＞＿＜…＞＿＜不変のファセットｎの値＞という形式で表される、生成することとをさらに備える。
【００１２】
好ましくは、本発明は方法を提供し、この方法では、アーチファクトのインスタンスの作成、インスタンスの実行、およびインスタンスの更新のうちの選択された１つを実行するために使用されるファサードのセットを提供することに応答して、バージョン管理されたファサードおよびバージョン管理されないファサードのいずれかの選択を受信してインスタンス・データを更新することと、バージョン管理されたファサードの選択を受信することに応答して、バージョン管理された定義の特定のバージョンに対して定義された属性およびバージョン管理された定義のこの特定のバージョンの属性に関する定義済み検証ルールのセットにのみアクセスすることと、このファサードに対する更新を、バージョン管理された定義の特定のバージョンに対して直接検証することと、更新が有効であることに応答して、定義のバージョン管理されたインスタンスとバージョン管理されないインスタントの間の同期を維持するために、バージョン管理されないファサードの対応する属性が検索され、同じトランザクションに保存されることと、バージョン管理されないファサードの選択を受信することに応答して、バージョン管理されない定義内の対応する属性へのマッピングに従って、バージョン管理された定義のすべてのバージョンにおいて定義された属性を公開することと、バージョン管理されないファサードを介して行われた変更に応答して、対応するバージョン管理されたファサード内の検索を実行することであって、それらの変更がこの対応するバージョン管理されたファサードにマッピングされ、特定のバージョン管理された定義に従って、定義済み検証ルールのセット内の対応する検証ルールがチェックされる、実行することと、更新の成功に応答して、バージョン管理されたインスタンスおよびバージョン管理されないインスタンスに対する変更を単一のトランザクションに保存することと、更新の失敗に応答して、変更がロールバックされることとをさらに備える。
【００１３】
好ましくは、本発明は方法を提供し、この方法は、バージョン管理されたドメイン内のアーチファクト定義を更新することであって、アーチファクト定義の最新のバージョンｎに対するユーザの変更が、ユーザの変更を含んでいる新しいバージョンｎ＋１を作成し、ユーザの変更が追加、削除、および修正のうちのいずれか１つであり、バージョン管理されないアーチファクト定義を同期させるために、ユーザの変更ごとに、バージョン管理されないアーチファクト定義への対応するマッピングが行われる、更新することをさらに備え、アーチファクト定義の属性と関連付けられた定義済み検証ルールのセット内の検証ルールにおける変更に応答して、バージョン管理されないアーチファクト定義に対する更新を行わず、互換性のある方法でバージョン管理されないアーチファクト定義に適用できるファセットの変更に応答して、バージョン管理されない定義内の属性を変更し、互換性のある方法でバージョン管理されないアーチファクト定義に適用できないファセットの変更に応答して、バージョン管理されたアーチファクト定義の属性と関連付けられた定義済み検証ルールのセットを使用して、新しい属性をバージョン管理されない定義に追加する。
【００１４】
好ましくは、本発明は方法を提供し、この方法では、定義済み検証ルールのセットが、アーチファクト定義の属性と関連付けられた１つまたは複数の定義済み検証ルールを含み、定義済み検証ルールのセット内の１つまたは複数のルールが、受信された変更を、更新されたインスタンスがバージョン管理されないインスタンスであるか、バージョン管理されたインスタンスであるかに拘わらず、バージョン管理された定義内の１つまたは複数の定義済み検証ルールを使用して、バージョン管理された定義の特定のバージョンに対して検証する。
【００１５】
好ましくは、本発明は方法を提供し、この方法では、相関付けることが、アーチファクト・レベルでの相関関係の第１のレベルおよび属性レベルでの相関関係の第２のレベルをさらに備え、この相関関係が、一意の識別子を使用してアーチファクトを定義およびインスタンスに適用可能なように関連付ける。
【００１６】
好ましくは、本発明は方法を提供し、この方法では、第１の部分または第２の部分のいずれかの検索を、バージョン管理された定義およびバージョン管理されない定義のすべてのバージョンによって共有される不変の構成要素も共有する第１の部分または第２の部分の残りの１つを使用して実行できる。
【００１７】
有利なことに、本発明は、両方のドメイン内で表された同じアーチファクトの２つのバージョンをリンクし、両方の形態でアクセスされる必要のある手段を提供する。
【００１８】
有利なことに、方法は、アーチファクトの複数のバージョン間の関係を、同じアーチファクトの単一のバージョン管理されない表現に対して定義し、それらの関係を利用して、両者を１つとして動作させる。有利なことに、本発明は、
・  アーチファクト定義のすべてのバージョンと、その単一のバージョン管理されない表現とを相互に関連付け、
・  特定のアーチファクト定義のバージョンの属性またはプロパティの定義と、バージョン管理されない表現内の属性またはプロパティの定義とを相互に関連付け、
・  バージョン管理されたアーチファクト定義に対する追加、更新、および削除などの編集の意味、および対応するバージョン管理されないアーチファクト定義に適用される編集の意味への変換を定義し、
・  アーチファクトのインスタンスに対して実行される読み取り処理および更新処理の方法を、それらがバージョン管理されたファサードに対して実行されるのか、それともバージョン管理されないファサードに対して実行されるのかに応じて定義し、
・  バージョン管理されたアーチファクトとバージョン管理されないアーチファクトのインスタンス間で、一方または他方が更新されたときにデータ更新が同期される方法を定義し、
・  属性またはプロパティの検証ルールが定義され、バージョン管理されたファサードまたはバージョン管理されないファサードを介してアーチファクト・インスタンスが更新されたときに評価される方法を定義する。
【００１９】
第２の態様から見ると、本発明はバージョン管理されたドメインとバージョン管理されないドメインの間でアーチファクトを相関付けるためのコンピュータ・プログラム製品を提供し、このコンピュータ・プログラム製品は、具現化されたプログラム命令を含んでいるコンピュータ可読記憶媒体を備え、プロセッサ・ユニットによって実行可能なプログラム命令が、プロセッサ・ユニットに、アーチファクトのセット内の１つのアーチファクトに関して、バージョン管理されたドメインとバージョン管理されないドメインの両方の属性を含んでいるメタデータを生成することであって、このメタデータがバージョン管理されたドメインおよびバージョン管理されないドメイン内で使用されるアーチファクトのセットと関連付けられる、生成することと、バージョン管理されたアーチファクト定義の特定のバージョンを使用してインスタンスを作成することであって、このインスタンスが、バージョン管理されたアーチファクト定義から直接作成された第１の部分およびバージョン管理されないアーチファクト定義から作成された第２の部分を備える、作成することと、バージョン管理されたドメインおよびバージョン管理されないドメイン内のアーチファクトの各表現間のリンクを指定することであって、指定されたリンクが、バージョン管理されたドメイン内のアーチファクトの複数のバージョン間の関係を、バージョン管理されないドメイン内の同じアーチファクトの単一のバージョン管理されない表現に対して定義する、指定することと、バージョン管理されたドメインまたはバージョン管理されないドメインのいずれかからのアーチファクトのインスタンスの作成、インスタンスの実行、およびインスタンスの更新のうちの選択された１つの実行に使用されるファサードのセットを提供することに応答して、バージョン管理されたドメインまたはバージョン管理されないドメインのいずれかからのアーチファクトのインスタンスの作成、インスタンスの実行、およびインスタンスの更新のうちの選択された１つを受信することであって、アーチファクトのインスタンスの作成、インスタンスの実行、およびインスタンスの更新のうちの選択された１つが、定義済み検証ルールのセットを使用して実行される、受信することと、アーチファクト定義のすべてのバージョンを単一のバージョン管理されない定義に相関付けることであって、単一のバージョン管理されない定義のアーチファクト定義もアーチファクト定義のすべてのバージョンに相関付けられる、相関付けることとを実行させる。
【００２０】
好ましくは、本発明はコンピュータ・プログラム製品を提供し、このコンピュータ・プログラム製品では、プロセッサ・ユニットにメタデータを生成させるためにプロセッサ・ユニットによって実行可能なプログラム命令が、プロセッサ・ユニットに、一意の識別子（ＵＩＤ）を、バージョン管理された定義のすべてのバージョンおよびバージョン管理されない定義によって共有された不変の構成要素を含んでいるアーチファクトに割り当てることであって、ＵＩＤがバージョン管理された＜共通ＵＩＤ＞＿＜バージョンＩＤ＞という第１の形態およびバージョン管理されない＜共通ＵＩＤ＞という第２の形態で表され、システムが＜共通ＵＩＤ＞部分を使用して同じアーチファクトのすべてのバージョンおよび関連する単一のバージョン管理されない定義を識別し、ＵＩＤが関連するアーチファクトの存続期間を通じて不変である、割り当てることと、属性のファセットから生成することであって、ファセットが、変更された場合に、バージョン管理されないドメイン内の既存のインスタンスとの互換性のない属性と関連付けられたインスタンス・データを作成し、特定のファセットが、定義が存続する間は不変であると判断され、それらの特定のファセットがバージョン管理されたドメイン内で変更された場合に、それらの変更によってシステムが属性を親定義への新規追加であると識別し、ＵＩＤがバージョン管理された属性およびバージョン管理されない属性によって全体的に共有され、＜ＵＩＤ＞＿＜不変のファセット１の値＞＿＜…＞＿＜不変のファセットｎの値＞という形式で表される、生成することとを実行させるために、プロセッサ・ユニットによって実行可能なプログラム命令をさらに備える。
【００２１】
好ましくは、本発明はコンピュータ・プログラム製品を提供し、このコンピュータ・プログラム製品では、アーチファクトのインスタンスの作成、インスタンスの実行、およびインスタンスの更新のうちの選択された１つを実行するために使用されるファサードのセットを提供することに応答して、プロセッサ・ユニットに実行させるようにプロセッサ・ユニットによって実行可能なプログラム命令が、プロセッサ・ユニットに、バージョン管理されたファサードおよびバージョン管理されないファサードの１つの選択を受信してインスタンス・データを更新することと、バージョン管理されたファサードの選択を受信することに応答して、バージョン管理された定義の特定のバージョンに対して定義された属性およびバージョン管理された定義のこの特定のバージョンの属性に関する定義済み検証ルールのセットにのみアクセスすることと、このファサードに対する更新を、バージョン管理された定義の特定のバージョンに対して直接検証することと、更新が有効であることに応答して、定義のバージョン管理されたインスタンスとバージョン管理されないインスタンスの間の同期を維持するために、バージョン管理されないファサードの対応する属性を検索して、同じトランザクションに保存することと、バージョン管理されないファサードの選択を受信することに応答して、バージョン管理されない定義内の対応する属性へのマッピングに従って、バージョン管理された定義のすべてのバージョンにおいて定義された属性を公開することと、バージョン管理されないファサードを介して行われた変更に応答して、対応するバージョン管理されたファサード内の対応する属性を検索することであって、それらの変更がこの対応するバージョン管理されたファサードにマッピングされ、特定のバージョン管理された定義による定義に従って、定義済み検証ルールのセット内の対応する検証ルールがチェックされる、検索することと、更新の成功に応答して、バージョン管理されたインスタンスおよびバージョン管理されないインスタンスに対する変更を単一のトランザクションに保存することと、更新の失敗に応答して、変更をロールバックすることとを実行させるために、プロセッサ・ユニットによって実行可能なプログラム命令をさらに備える。
【００２２】
好ましくは、本発明はコンピュータ・プログラム製品を提供し、このコンピュータ・プログラム製品は、プロセッサ・ユニットに、バージョン管理されたドメイン内のアーチファクト定義を更新することであって、アーチファクト定義の最新のバージョンｎに対するユーザの変更が、ユーザの変更を含んでいる新しいバージョンｎ＋１を作成し、ユーザの変更が追加、削除、および修正のうちのいずれか１つであり、バージョン管理されないアーチファクト定義を同期させるために、ユーザの変更ごとに、バージョン管理されないアーチファクト定義への対応するマッピングを行う、更新することを実行させるために、プロセッサ・ユニットによって実行可能なプログラム命令をさらに備え、アーチファクト定義の属性と関連付けられた定義済み検証ルールのセット内の検証ルールにおける変更に応答して、バージョン管理されないアーチファクト定義に対する更新を行わず、互換性のある方法でバージョン管理されないアーチファクト定義に適用できるファセットの変更に応答して、バージョン管理されない定義内の属性を変更し、互換性のある方法でバージョン管理されないアーチファクト定義に適用できないファセットの変更に応答して、バージョン管理されたアーチファクト定義の属性と関連付けられた定義済み検証ルールのセットを使用して、新しい属性をバージョン管理されない定義に追加する。
【００２３】
好ましくは、本発明はコンピュータ・プログラム製品を提供し、このコンピュータ・プログラム製品では、定義済み検証ルールのセットが、アーチファクト定義の属性と関連付けられた１つまたは複数の定義済み検証ルールを含み、定義済み検証ルールのセット内の１つまたは複数のルールが、受信された変更を、更新されたインスタンスがバージョン管理されないインスタンスであるか、バージョン管理されたインスタンスであるかに拘わらず、バージョン管理された定義内の１つまたは複数の定義済み検証ルールを使用して、バージョン管理された定義の特定のバージョンに対して検証する。
【００２４】
好ましくは、本発明はコンピュータ・プログラム製品を提供し、このコンピュータ・プログラム製品では、プロセッサ・ユニットに相関付けを実行させるためにプロセッサ・ユニットによって実行可能なプログラム命令が、プロセッサ・ユニットに、アーチファクト・レベルでの相関関係の第１のレベルおよび属性レベルでの相関関係の第２のレベルで相関付けを実行させるために、プロセッサ・ユニットによって実行可能なプログラム命令をさらに備え、この相関関係が、一意の識別子を使用してアーチファクトを定義およびインスタンスに適用可能なように関連付ける。
【００２５】
好ましくは、本発明はコンピュータ・プログラム製品を提供し、このコンピュータ・プログラム製品は、プロセッサ・ユニットに、バージョン管理された定義のすべてのバージョンおよびバージョン管理されない定義によって共有された不変の構成要素も共有する第１の部分または第２の部分の残りの１つを使用して第１の部分または第２の部分のいずれかの検索を実行させるために、プロセッサ・ユニットによって実行可能なプログラム命令をさらに備える。
【００２６】
第３の態様から見ると、本発明はバージョン管理されたドメインとバージョン管理されないドメインの間でアーチファクトを相関付けるための装置を提供し、この装置は、バスと、このバスに接続され、具現化されたプログラム命令を含んでいるメモリと、プロセッサ・ユニットとを備え、このプロセッサ・ユニットがプログラム命令を実行して、装置に、アーチファクトのセット内の１つのアーチファクトに関して、バージョン管理されたドメインとバージョン管理されないドメインの両方の属性を含んでいるメタデータを生成することであって、このメタデータがバージョン管理されたドメインおよびバージョン管理されないドメイン内で使用されるアーチファクトのセットと関連付けられる、生成することと、バージョン管理されたアーチファクト定義の特定のバージョンを使用してインスタンスを作成することであって、このインスタンスが、バージョン管理されたアーチファクト定義から直接作成された第１の部分およびバージョン管理されないアーチファクト定義から作成された第２の部分を備える、作成することと、バージョン管理されたドメインおよびバージョン管理されないドメイン内のアーチファクトの各表現間のリンクを指定することであって、指定されたリンクが、バージョン管理されたドメイン内のアーチファクトの複数のバージョン間の関係を、バージョン管理されないドメイン内の同じアーチファクトの単一のバージョン管理されない表現に対して定義する、指定することと、バージョン管理されたドメインまたはバージョン管理されないドメインのいずれかからのアーチファクトのインスタンスの作成、インスタンスの実行、およびインスタンスの更新のうちの選択された１つの実行に使用されるファサードのセットを提供することに応答して、バージョン管理されたドメインまたはバージョン管理されないドメインのいずれかからのアーチファクトのインスタンスの作成、インスタンスの実行、およびインスタンスの更新のうちの選択された１つを受信することであって、アーチファクトのインスタンスの作成、インスタンスの実行、およびインスタンスの更新のうちの選択された１つが、定義済み検証ルールのセットを使用して実行される、受信することと、アーチファクト定義のすべてのバージョンを単一のバージョン管理されない定義に相関付けることであって、単一のバージョン管理されない定義のアーチファクト定義もアーチファクト定義のすべてのバージョンに相関付けられる、相関付けることとを実行させる。
【００２７】
好ましくは、本発明は装置を提供し、この装置では、プロセッサ・ユニットが装置にメタデータを生成させるためにプログラム命令を実行し、装置に、一意の識別子（ＵＩＤ）を、バージョン管理された定義のすべてのバージョンおよびバージョン管理されない定義によって共有された不変の構成要素を含んでいるアーチファクトに割り当てることであって、ＵＩＤがバージョン管理された＜共通ＵＩＤ＞＿＜バージョンＩＤ＞という第１の形態およびバージョン管理されない＜共通ＵＩＤ＞という第２の形態で表され、システムが＜共通ＵＩＤ＞部分を使用して同じアーチファクトのすべてのバージョンおよび関連する単一のバージョン管理されない定義を識別し、ＵＩＤが関連するアーチファクトの存続期間を通じて不変である、割り当てることと、属性のファセットから生成することであって、ファセットが、変更された場合に、バージョン管理されないドメイン内の既存のインスタンスとの互換性のない属性と関連付けられたインスタンス・データを作成し、特定のファセットが、定義が存続する間は不変であると判断され、それらの特定のファセットがバージョン管理されたドメイン内で変更された場合に、それらの変更によってシステムが属性を親定義への新規追加であると識別し、ＵＩＤがバージョン管理された属性およびバージョン管理されない属性によって全体的に共有され、＜ＵＩＤ＞＿＜不変のファセット１の値＞＿＜…＞＿＜不変のファセットｎの値＞という形式で表される、生成することとをさらに実行させる。
【００２８】
好ましくは、本発明は装置を提供し、この装置では、アーチファクトのインスタンスの作成、インスタンスの実行、およびインスタンスの更新のうちの選択された１つを実行するために使用されるファサードのセットを提供することに応答して、装置に実行させるようにプロセッサ・ユニットがプログラム命令を実行し、装置に、バージョン管理されたファサードおよびバージョン管理されないファサードの１つの選択を受信してインスタンス・データを更新することと、バージョン管理されたファサードの選択を受信することに応答して、バージョン管理された定義の特定のバージョンに対して定義された属性およびバージョン管理された定義のこの特定のバージョンの属性に関する定義済み検証ルールのセットにのみアクセスすることと、このファサードに対する更新を、バージョン管理された定義の特定のバージョンに対して直接検証することと、更新が有効であることに応答して、定義のバージョン管理されたインスタンスとバージョン管理されないインスタンスの間の同期を維持するために、バージョン管理されないファサードの対応する属性を検索して、同じトランザクションに保存することと、バージョン管理されないファサードの選択を受信することに応答して、バージョン管理されない定義内の対応する属性へのマッピングに従って、バージョン管理された定義のすべてのバージョンにおいて定義された属性を公開することと、バージョン管理されないファサードを介して行われた変更に応答して、対応するバージョン管理されたファサード内の属性の検索を実行することであって、それらの変更がこの対応するバージョン管理されたファサードにマッピングされ、特定のバージョン管理された定義による定義に従って、定義済み検証ルールのセット内の対応する検証ルールがチェックされる、実行することと、更新の成功に応答して、バージョン管理されたインスタンスおよびバージョン管理されないインスタンスに対する変更を単一のトランザクションに保存することと、更新の失敗に応答して、変更をロールバックすることとをさらに実行させる。
【００２９】
好ましくは、本発明は装置を提供し、この装置では、プロセッサ・ユニットがプログラム命令を実行して、装置に、バージョン管理されたドメイン内のアーチファクト定義を更新することであって、アーチファクト定義の最新のバージョンｎに対するユーザの変更が、ユーザの変更を含んでいる新しいバージョンｎ＋１を作成し、ユーザの変更が追加、削除、および修正のいずれかであり、バージョン管理されないアーチファクト定義を同期させるために、ユーザの変更ごとに、バージョン管理されないアーチファクト定義への対応するマッピングが行われる、更新することをさらに実行させ、アーチファクト定義の属性と関連付けられた定義済み検証ルールのセット内の検証ルールにおける変更に応答して、バージョン管理されないアーチファクト定義に対する更新を行わず、互換性のある方法でバージョン管理されないアーチファクト定義に適用できるファセットの変更に応答して、バージョン管理されない定義内の属性を変更し、互換性のある方法でバージョン管理されないアーチファクト定義に適用できないファセットの変更に応答して、バージョン管理されたアーチファクト定義の属性と関連付けられた定義済み検証ルールのセットを使用して、新しい属性をバージョン管理されない定義に追加する。
【００３０】
好ましくは、本発明は装置を提供し、この装置では、定義済み検証ルールのセットが、アーチファクト定義の属性と関連付けられた１つまたは複数の定義済み検証ルールを含み、定義済み検証ルールのセット内の１つまたは複数のルールが、受信された変更を、更新されたインスタンスがバージョン管理されないインスタンスであるか、バージョン管理されたインスタンスであるかに拘わらず、バージョン管理された定義内の１つまたは複数の定義済み検証ルールを使用して、バージョン管理された定義の特定のバージョンに対して検証する。
【００３１】
好ましくは、本発明は装置を提供し、この装置では、プロセッサ・ユニットがプログラム命令を実行して装置に相関付けを実行させ、アーチファクト・レベルでの相関関係の第１のレベルおよび属性レベルでの相関関係の第２のレベルで相関付けることを装置にさらに実行させ、この相関関係が、一意の識別子を使用してアーチファクトを定義およびインスタンスに適用可能なように関連付ける。
【００３２】
次に、以下の図面を例としてのみ参照し、本発明の好ましい実施形態について説明する。
【図面の簡単な説明】
【００３３】
【図１】本開示のさまざまな実施形態で動作可能な、ネットワーク・データ処理システムの例のブロック図である。
【図２】本開示のさまざまな実施形態で動作可能な、データ処理システムの例のブロック図である。
【図３】本開示のさまざまな実施形態で動作可能な、バージョン管理されたシステムのブロック図である。
【図４】本開示のさまざまな実施形態で動作可能な、新しいバージョンをバージョン管理されたシステムに作成するプロセスのフローチャートである。
【図５】本開示の１つの実施形態に記載された、本開示のさまざまな実施形態で動作可能な、バージョン管理されないシステムのブロック図である。
【図６】本開示のさまざまな実施形態で動作可能な、バージョン管理されないシステム内の定義を変更するプロセスのフローチャートである。
【図７】本開示のさまざまな実施形態で動作可能な、ハイブリッド・システムのブロック図である。
【図８】本開示のさまざまな実施形態で動作可能な、ハイブリッド・システムのブロック図である。
【図９】本開示のさまざまな実施形態で動作可能な、新しい定義のバージョンをハイブリッド・システムのバージョン管理されないシステム部分に作成するフローチャートである。
【図１０】本開示のさまざまな実施形態で動作可能な、ハイブリッド・システム内のバージョン管理された定義から作成されたインスタンス部分に対してプロパティを変更するフローチャートである。
【図１１】本開示のさまざまな実施形態で動作可能な、ハイブリッド・システム内のバージョン管理されない定義から作成されたインスタンス部分に対してプロパティを変更するフローチャートである。
【図１２】本開示のさまざまな実施形態で動作可能な、ハイブリッド・システム内のバージョン管理されたドメインとバージョン管理されないドメインの間でアーチファクトを相関付けるためのプロセスのフローチャートである。
【発明を実施するための形態】
【００３４】
１つまたは複数の実施形態の実装例が以下で説明されるが、開示されたシステムまたは方法あるいはその両方は、任意の数の手法を使用して実装されてもよい。本開示は、本明細書で説明および記載された設計と実装の例を含む以下で説明される実装例、図面、および手法に全く限定されず、添付された特許請求の範囲内およびそれと同等のものの全範囲内で変更されてもよい。
【００３５】
当業者によって理解されるように、本開示の態様は具現化することができ、その具現化において本発明は、システム、方法、またはコンピュータ・プログラム製品あるいはこれらの組合せであってもよい。コンピュータ・プログラム製品は、プロセッサに本発明の態様を実行させるためのコンピュータ可読プログラム命令を含んでいるコンピュータ可読記憶媒体を含むことができる。
【００３６】
コンピュータ可読記憶媒体は、命令実行デバイスによって使用するための命令を保持および格納できる有形のデバイスにすることができる。コンピュータ可読記憶媒体は、例えば、電子ストレージ・デバイス、磁気ストレージ・デバイス、光ストレージ・デバイス、電磁ストレージ・デバイス、半導体ストレージ・デバイス、またはこれらの任意の適切な組合せにすることができるが、これらに限定されない。コンピュータ可読記憶媒体のさらに具体的な例の非網羅的リストは、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ（ＲＡＭ：random access memory）、読み取り専用メモリ（ＲＯＭ：read-onlymemory）、消去可能プログラマブル読み取り専用メモリ（ＥＰＲＯＭ：erasableprogrammable read-only memoryまたはフラッシュ・メモリ）、スタティック・ランダム・アクセス・メモリ（ＳＲＡＭ：static random access memory）、ポータブル・コンパクト・ディスク読み取り専用メモリ（ＣＤ−ＲＯＭ：portable compact disc read-only memory）、デジタル多用途ディスク（ＤＶＤ：digital versatile disk）、メモリ・スティック、フロッピー（Ｒ）・ディスク、パンチカードまたは命令が記録されている溝の中の隆起構造などの機械的にエンコードされるデバイス、およびこれらの任意の適切な組合せを含む。本明細書において使用されているコンピュータ可読記憶媒体は、本質的に、電波またはその他の自由に伝搬する電磁波、導波管またはその他の送信媒体を伝搬する電磁波（例えば、光ファイバ・ケーブルを通過する光パルス）、あるいはワイヤを介して送信される電気信号などの一時的信号であると解釈されるべきではない。
【００３７】
本明細書に記載されたコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体から各コンピューティング・デバイス／処理デバイスへ、またはネットワーク（例えば、インターネット、ローカル・エリア・ネットワーク、広域ネットワーク、または無線ネットワークあるいはこれらの組合せ）を介して外部コンピュータまたは外部ストレージ・デバイスへダウンロードすることができる。このネットワークは、銅伝送ケーブル、光伝送ファイバ、無線送信、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、またはエッジ・サーバあるいはこれらの組合せを備えることができる。各コンピューティング・デバイス／処理デバイス内のネットワーク・アダプタ・カードまたはネットワーク・インターフェイスは、コンピュータ可読プログラム命令をネットワークから受信し、それらのコンピュータ可読プログラム命令を各コンピューティング・デバイス／処理デバイス内のコンピュータ可読記憶媒体に格納するために転送する。
【００３８】
本発明の処理を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ（ＩＳＡ）命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、あるいは、Ｓｍａｌｌｔａｌｋ（Ｒ）、Ｃ＋＋などのオブジェクト指向プログラミング言語、および「Ｃ」プログラミング言語または同様のプログラミング言語などの従来の手続き型プログラミング言語を含む１つまたは複数のプログラミング言語の任意の組合せで記述されたソース・コードまたはオブジェクト・コードにすることができる。コンピュータ可読プログラム命令は、ユーザのコンピュータ上で全体的に実行すること、ユーザのコンピュータ上でスタンドアロン・ソフトウェア・パッケージとして部分的に実行すること、ユーザのコンピュータ上およびリモート・コンピュータ上でそれぞれ部分的に実行すること、あるいはリモート・コンピュータ上またはサーバ上で全体的に実行することができる。後者のシナリオでは、リモート・コンピュータを、ローカル・エリア・ネットワーク（ＬＡＮ：local area network）または広域ネットワーク（ＷＡＮ：wide areanetwork）を含む任意の種類のネットワークを介してユーザのコンピュータに接続することができ、または接続を、（例えば、インターネット・サービス・プロバイダを使用してインターネットを介して）外部コンピュータに対して行うことができる。一部の実施形態では、本発明の態様を実行するために、例えばプログラマブル論理回路、フィールド・プログラマブル・ゲート・アレイ（ＦＰＧＡ：field-programmable gate arrays）、またはプログラマブル・ロジック・アレイ（ＰＬＡ）を含む電子回路は、電子回路をカスタマイズするために、コンピュータ可読プログラム命令の状態情報を利用することによって、コンピュータ可読プログラム命令を実行できる。
【００３９】
本発明の態様は、本明細書において、本発明の実施形態に記載された方法、装置（システム）、およびコンピュータ・プログラム製品のフローチャート図またはブロック図あるいはその両方を参照して説明される。フローチャート図またはブロック図あるいはその両方の各ブロック、ならびにフローチャート図またはブロック図あるいはその両方に含まれるブロックの組合せは、コンピュータ可読プログラム命令によって実装できると理解されるであろう。
【００４０】
これらのコンピュータ可読プログラム命令は、コンピュータまたはその他のプログラマブル・データ処理装置のプロセッサを介して実行される命令が、フローチャートまたはブロック図あるいはその両方の１つまたは複数のブロックにおいて規定された機能／動作を実装するための手段を構築するように、汎用コンピュータ、専用コンピュータ、またはその他のプログラマブル・データ処理装置のプロセッサに提供され、マシンを生成するものであってよい。これらのコンピュータ可読プログラム命令は、命令が格納されたコンピュータ可読記憶媒体が、フローチャートまたはブロック図あるいはその両方の１つまたは複数のブロックにおいて規定された機能／動作の態様を実装する命令を含む製造品を備えるように、コンピュータ可読記憶媒体に格納され、コンピュータ、プログラマブル・データ処理装置、またはその他のデバイスあるいはこれらの組合せに特定の方法で機能するように指示するものであってもよい。
【００４１】
コンピュータ可読プログラム命令は、コンピュータ、その他のプログラマブル装置、またはその他のデバイス上で実行される命令が、フローチャートまたはブロック図あるいはその両方の１つまたは複数のブロックにおいて規定された機能／動作を実装するように、コンピュータ実装プロセスを生成するべく、コンピュータ、その他のプログラマブル・データ処理装置、またはその他のデバイス上にロードされ、コンピュータ、その他のプログラマブル装置、またはその他のデバイス上で一連の動作ステップを実行させるものであってもよい。
【００４２】
図内のフローチャートおよびブロック図は、本発明のさまざまな実施形態に記載されているシステム、方法、およびコンピュータ・プログラム製品の可能な実装のアーキテクチャ、機能、および処理を示す。これに関連して、フローチャートまたはブロック図内の各ブロックは、規定された論理機能を実装するための１つまたは複数の実行可能な命令を備える、命令のモジュール、セグメント、または部分を表すことができる。一部の代替実施形態では、ブロックに示された機能は、図に示された順序とは異なる順序で発生させることができる。例えば、実際、連続して示された２つのブロックは、含まれている機能に応じて、実質的に同時に実行するか、または場合によっては逆の順序で実行することができる。ブロック図またはフローチャート図あるいはその両方の各ブロック、ならびにブロック図またはフローチャート図あるいはその両方に含まれるブロックの組合せは、規定された機能または動作を実行するか、または専用ハードウェアとコンピュータ命令の組合せを実行する専用ハードウェアベースのシステムによって実装できるということにも注意する。
【００４３】
ここで図を参照し、特に図１〜２を参照すると、データ処理環境の例の図が示されており、この環境内で実施形態例を実装することができる。図１〜２は単なる例であり、さまざまな実施形態を実装できる環境に関して、どのような限定も主張または意味することを意図していないと理解されるべきである。図に示された環境に対して、多くの変更を行ってもよい。
【００４４】
図１は、実施形態例を実装できるデータ処理システムのネットワークの図解表現を示している。ネットワーク・データ処理システム１００は、実施形態例を実装できるコンピュータのネットワークである。ネットワーク・データ処理システム１００は、ネットワーク・データ処理システム１００内で一緒に接続されているさまざまなデバイスとコンピュータの間の通信リンクを提供するために使用される媒体である、ネットワーク１０２を含んでいる。ネットワーク１０２は、ワイヤ、無線通信リンク、または光ファイバ・ケーブルなどの接続を含んでもよい。
【００４５】
図に示された例では、サーバ１０４およびサーバ１０６が、ストレージ・ユニット１０８とともにネットワーク１０２に接続されている。加えて、クライアント１１０、１１２、および１１４がネットワーク１０２に接続されている。例えば、クライアント１１０、１１２、および１１４は、パーソナル・コンピュータまたはネットワーク・コンピュータであってもよい。図に示された例では、サーバ１０４は、ブートファイル、オペレーティング・システム・イメージ、およびアプリケーションなどのデータを、クライアント１１０、１１２、および１１４に提供する。クライアント１１０、１１２、および１１４は、サーバ１０４に接続されたクライアントであり、ネットワーク１０２を介して、この例を使用してさらに説明されるバージョン管理されたドメインおよびバージョン管理されないドメインに適用できるデータ構造、ルール、および定義を含んでいるハイブリッド・システム１１６にアクセスできる。ネットワーク・データ処理システム１００は、図に示されていない追加のサーバ、クライアント、およびその他のデバイスを含んでもよい。
【００４６】
図に示された例では、ネットワーク・データ処理システム１００は、相互に通信するための一連のプロトコルの送信制御プロトコル／インターネット・プロトコル（ＴＣＰ／ＩＰ）スイートを使用する世界全体のネットワークとゲートウェイの集合を表す、ネットワーク１０２を含むインターネットである。インターネットの中心には、主要なノード間またはホスト・コンピュータ間を接続する高速データ通信ラインのバックボーンがあり、データおよびメッセージをルーティングする多くの商用のコンピュータ・システム、政府機関のコンピュータ・システム、教育機関のコンピュータ・システム、およびその他のコンピュータ・システムで構成されている。当然、ネットワーク・データ処理システム１００は、例えばインターネット、ローカル・エリア・ネットワーク（ＬＡＮ）、または広域ネットワーク（ＷＡＮ）などの、多数の各種ネットワークとして実装されてもよい。図１は、例を示すことを意図しており、さまざま実施形態例に関する構造的限定を示すことを意図していない。
【００４７】
図２を参照すると、本開示のさまざまな実施形態で動作可能な、データ処理システムの例のブロック図が示されている。この例では、データ処理システム２００は、プロセッサ・ユニット２０４、メモリ２０６、永続的ストレージ２０８、通信ユニット２１０、入出力（Ｉ／Ｏ：input/output）ユニット２１２、およびディスプレイ２１４の間の通信を提供する通信ファブリック２０２を含んでいる。
【００４８】
プロセッサ・ユニット２０４は、メモリ２０６に読み込むことができるソフトウェアの命令を実行する役目を果たす。プロセッサ・ユニット２０４は、特定の実装に応じて、１つまたは複数のプロセッサのセットであってもよく、マルチプロセッサ・コアであってもよい。さらに、プロセッサ・ユニット２０４は、単一チップ上にメイン・プロセッサが二次プロセッサとともに存在する、１つまたは複数の異種プロセッサ・システムを使用して実装されてもよい。別の例として、プロセッサ・ユニット２０４は、同じ種類の複数のプロセッサを含んでいる対称型マルチプロセッサ・システムであってもよい。
【００４９】
メモリ２０６および永続的ストレージ２０８は、ストレージ・デバイス２１６の例である。ストレージ・デバイスは、例えばデータ、機能的形態でのプログラム・コード、またはその他の適切な情報あるいはこれらの組合せなどの、ただしこれらに限定されない情報を、一時的にまたは永続的にあるいはその両方で格納できるハードウェアの任意の部分である。これらの例では、メモリ２０６は、例えば、ランダム・アクセス・メモリあるいは任意のその他の適切な揮発性または不揮発性ストレージ・デバイスであってもよい。永続的ストレージ２０８は、特定の実装に応じて、さまざまな形態をとることができる。例えば、永続的ストレージ２０８は、１つまたは複数の構成要素またはデバイスを含むことができる。例えば、永続的ストレージ２０８は、ハード・ドライブ、フラッシュ・メモリ、書き換え可能光ディスク、書き換え可能磁気テープ、またはこれらの組合せであってもよい。永続的ストレージ２０８によって使用される媒体は、取り外し可能であってもよい。例えば、取り外し可能ハード・ドライブを、永続的ストレージ２０８に使用できる。
【００５０】
これらの例において、通信ユニット２１０は、他のデータ処理システムまたはデバイスとの通信を提供する。これらの例において、通信ユニット２１０は、ネットワーク・インターフェイス・カードである。通信ユニット２１０は、物理的通信リンクまたは無線通信リンクのいずれか、あるいはその両方を使用して通信を提供できる。
【００５１】
入出力ユニット２１２は、データ処理システム２００に接続される可能性のある他のデバイスとのデータの入力および出力を可能にする。例えば、入出力ユニット２１２は、キーボード、マウス、またはその他の適切な入力デバイスあるいはこれらの組合せを介したユーザ入力のための接続を提供できる。さらに、入出力ユニット２１２は、出力をプリンタに送信できる。ディスプレイ２１４は、情報をユーザに表示するためのメカニズムを提供する。
【００５２】
オペレーティング・システム、アプリケーション、またはプログラムあるいはこれらの組合せのためのコンピュータ実行可能な形態またはコンピュータ読み取り可能な形態での命令は、通信ファブリック２０２を介してプロセッサ・ユニット２０４と通信するストレージ・デバイス２１６内に配置できる。これらの例では、命令は、永続的ストレージ２０８上に機能的形態で存在する。これらの命令は、プロセッサ・ユニット２０４によって実行するために、メモリ２０６に読み込むことができる。さまざまな実施形態のプロセスは、メモリ２０６などのメモリ内に配置できるコンピュータ実装命令を使用してプロセッサ・ユニット２０４によって実行できる。
【００５３】
これらの命令は、プロセッサ・ユニット２０４内のプロセッサによって読み取って実行できるプログラム・コード、コンピュータ使用可能プログラム・コード、またはコンピュータ可読プログラム・コードと呼ばれる。さまざまな実施形態におけるプログラム・コードは、メモリ２０６または永続的ストレージ２０８などの、異なる物理的なまたは有形のコンピュータ可読記憶媒体上で具現化されてもよい。
【００５４】
プログラム・コード２１８は、選択的に取り外すことができるコンピュータ可読記憶媒体２２０上に機能的形態で配置され、プロセッサ・ユニット２０４によって実行するために、データ処理システム２００に読み込むか、または転送することができる。これらの例では、プログラム・コード２１８およびコンピュータ可読記憶媒体２２０が、コンピュータ・プログラム製品２２２を形成する。一例を挙げると、コンピュータ可読記憶媒体２２０は、例えば、ドライブに挿入または配置される光ディスクまたは磁気ディスク、あるいは、永続的ストレージ２０８の一部であるハード・ドライブなどのストレージ・デバイスに転送するための永続的ストレージ２０８の一部であるその他のデバイスなどの有形の形態で存在してもよい。有形の形態において、コンピュータ可読記憶媒体２２０は、データ処理システム２００に接続されたハード・ドライブ、サム・ドライブ、またはフラッシュ・メモリなどの、永続的ストレージの形態をとってもよい。コンピュータ可読記憶媒体２２０の有形の形態は、コンピュータ記録可能記憶媒体またはコンピュータ可読データ・ストレージ・デバイスとも呼ばれる。一部の例では、コンピュータ可読記憶媒体２２０は、取り外し不可能であってもよい。現在の例を使用すると、プログラム・コード２１８は、図１のハイブリッド・システム１１６の実施形態の実装において、コンピュータ実装命令を備える。
【００５５】
あるいは、プログラム・コード２１８は、通信ユニット２１０への通信リンクを介して、または入出力ユニット２１２への接続を介して、あるいはその両方を介して、コンピュータ可読記憶媒体２２０からデータ処理システム２００に転送できる。この例において、通信リンクまたは接続あるいはその両方は、物理的または無線であってもよい。
【００５６】
一部の実施形態例では、プログラム・コード２１８は、データ処理システム２００内で使用するために、ネットワークを経由して別のデバイスまたはデータ処理システムから永続的ストレージ２０８にダウンロードできる。例えば、サーバ・データ処理システム内のコンピュータ可読データ・ストレージ・デバイスに格納されるプログラム・コードは、ネットワークを経由してサーバからデータ処理システム２００にダウンロードできる。プログラム・コード２１８を提供するデータ処理システムは、サーバ・コンピュータ、クライアント・コンピュータ、またはプログラム・コード２１８を格納および送信できるその他のデバイスであってもよい。
【００５７】
図２のデータ処理システム２００を例として使用すると、バージョン管理されたドメインとバージョン管理されないドメインの間でアーチファクトを相関付けるためのコンピュータ実装プロセスが示されている。プロセッサ・ユニット２０４は、アーチファクトのセット内のアーチファクトに関して、バージョン管理されたドメインとバージョン管理されないドメインの両方の属性を含んでいるメタデータを生成し、このメタデータは、バージョン管理されたドメインおよびバージョン管理されないドメイン内で使用されるアーチファクトのセットと関連付けられる。プロセッサ・ユニット２０４は、バージョン管理されたアーチファクト定義の特定のバージョンを使用してインスタンスを作成し、このインスタンスは、バージョン管理されたアーチファクト定義から直接作成された第１の部分およびバージョン管理されないアーチファクト定義から作成された第２の部分を備える。
【００５８】
プロセッサ・ユニット２０４は、バージョン管理されたドメインおよびバージョン管理されないドメイン内のアーチファクトの各表現間のリンクを指定し、指定されたリンクは、バージョン管理されたドメイン内のアーチファクトの複数のバージョン間の関係を、バージョン管理されないドメイン内の同じアーチファクトの単一のバージョン管理されない表現に対して定義する。プロセッサ・ユニット２０４はさらに、バージョン管理されたドメインまたはバージョン管理されないドメインのいずれかからのアーチファクトのインスタンスの作成、インスタンスの実行、およびインスタンスの更新のうちの選択された１つを実行するために使用されるファサードのセットを提供することに応答して、バージョン管理されたドメインまたはバージョン管理されないドメインのいずれかからのアーチファクトのインスタンスの作成、インスタンスの実行、およびインスタンスの更新のうちの選択された１つを受信し、アーチファクトのインスタンスの作成、インスタンスの実行、およびインスタンスの更新のうちの選択された１つは、ルールのセットを使用して実行される。プロセッサ・ユニット２０４は、アーチファクト定義のすべてのバージョンを、単一のバージョン管理されない定義に相関付け、単一のバージョン管理されない定義のアーチファクト定義も、アーチファクト定義のすべてのバージョンに相関付けられる。
【００５９】
図３を参照すると、本開示のさまざまな実施形態で動作可能な、バージョン管理されたシステムのブロック図が示されている。図３は、定義バージョンを含んでいるバージョン管理されたシステム３００の形態での図１のハイブリッド・システム１１６の一部、および２つの異なるアーチファクトの関連するインスタンスを例として示している。
【００６０】
バージョン管理された使用法およびバージョン管理されない使用法の組合せを処理するために提案されたシステムの例が、米国特許出願公開第ＵＳ２０１２／０２５４８２８号に記載されており、それにおいて実装は、システムに配置できる可能性のあるバージョンごとにすべてのデータ・モデルの結合を維持する単一集約モデルの作成に依存している。この単一集約モデルは、提供されているデバイス・バージョンに基づいてシステムの動作を適応させるために、配置時および実行時に使用される。実行時に、システムはデータの単一のバージョンで動作するが、集約モデルを使用してデータの単一のバージョンを操作する方法を理解している。ただし、開示されたシステムは、同じデータのバージョン管理されないインスタンスに対する関係を維持しない。したがって、集約モデルは、システムに配置されたすべてのバージョンを一般的に操作するための方法にすぎない。
【００６１】
前述の特許出願公開とは対照的に、本開示の実施形態は、一意の識別子を使用して、モデル／インスタンス・データのバージョンを１つのバージョン管理されないモデル／インスタンス・データに相関付ける方法を定義する。本開示の実施形態は、この関係を維持するために、第３のモデルを使用しない。バージョン管理されないドメインとバージョン管理されたドメインの間で暗黙の関係が定義され、それぞれアーチファクト定義（設計時または開発時の表現）およびインスタンス・データ（実行時の表現）の両方で構成される。これらのドメインは、システムによって同時に維持される。本開示の実施形態は、いずれかのドメイン上で、設計時の定義の変更、および実行時のインスタンス・データの操作に適用できるルールも定義する。
【００６２】
設計（開発）時に、バージョン管理されたドメイン上のすべての定義が、バージョン管理されないドメイン内の対応する定義と互換性を持つことを保証するために、（バージョン管理されたおよびバージョン管理されない）モデル定義に対して相関付け処理が実行される。言い換えると、各ドメインに対応するインスタンス・データを同じ方法で表現できることを保証する。本開示の実施形態は、バージョン管理された定義に対する対応する変更に基づいて、バージョン管理されない定義に変更を適用するために、ルールを定義する。
【００６３】
実行時に、本開示の実施形態は、対応するバージョン管理された定義およびバージョン管理されない定義によって裏付けられた、バージョン管理されたインスタンス・データとバージョン管理されないインスタンス・データを相関付けるための方法を定義し、バージョン管理されたインスタンス・データおよびバージョン管理されないインスタンス・データの読み取りおよび書き込みの目的で、両方のインスタンス・データが並行して共存する。つまり、本開示の実施形態は、バージョン管理されたインスタンス・データの読み取りと書き込みを行うためのファサード、およびバージョン管理されないインスタンス・データの読み取りと書き込みを行うための別のファサードの両方を定義する。加えて、本開示の実施形態は、バージョン管理されたデータに適用された更新がバージョン管理されないデータに伝搬される方法に関するルール、およびバージョン管理されないデータに適用された更新がバージョン管理されたデータに伝搬される方法に関するルールを定義する。最後に、本開示の実施形態は、制約が定義され、バージョン管理されたインスタンス・データまたはバージョン管理されないインスタンス・データが更新されたとき適用される方法を定義する。
【００６４】
情報およびアクティビティの集合として、ケースが定義される。各アクティビティは、ケース・フォルダ内の文書およびケース・フォルダのプロパティとして、プロセス定義および情報に記録される。
【００６５】
プロセスは、前に述べた理由により、バージョン管理される。プロセスは、既存のインスタンスを壊すことなく、短時間で進化する必要がある。したがって、バージョンによる分離は、アプリケーションが問題なく進歩することを可能にする。一方、ケースに関連する情報は、長時間存続する。この情報のすべてのインスタンスは、フォルダまたは文書クラスの形態でのその構造の単一の定義に関連付けられる。
【００６６】
本開示の実施形態は、バージョン管理された属性およびバージョン管理されない属性の両方を含んでいる統一モデルを実現する。バージョン管理されたシステムは、時系列でアーチファクトの定義の進化を記録できる。バージョン管理されたシステムは、通常、これらのバージョンの時間的順序を記録する。そのため、バージョン管理されたシステムは、本質的には、定義を進化させる手段として、ただし、さらに重要なことには、特定の以前の定義と関連付けられたインスタンスを別のより新しい定義の構造に移行するための方法として、あるバージョンから別のバージョンへの変更を比較してマージするために必要な要素を提供する。バージョン管理されたシステムは、通常はバージョンの時間的順序を記録するが、あるバージョンから別のバージョンへの変更の比較およびマージは時間的順序に依存しないため、属性のマージは、バージョンの時間的順序を考慮せずに実行されてもよい。
【００６７】
メタデータは別として、上で概説したように、バージョン管理されたシステムは、アーチファクトの定義のインスタンスの分離も提供する。つまり、システムは、アーチファクトの特定のバージョンをインスタンス化することができ、インスタンス化されたアーチファクトの特定のバージョンは、同じアーチファクトの他のバージョンのインスタンスと共存する。この分離は、例えば同じ請求プロセスの２つのバージョンを、互いに干渉することなく同じシステム内で実行できるようにする。この場合も、新しいバージョンは、分離によって分けられているため、システム内の既存のインスタンスへのリスクなしに、作成して実行することができる。
【００６８】
図３の略語において、ＤＩＤは定義識別子を表し、Ｖはバージョン識別子を表し、ＩＩＤはインスタンス識別子を表す。バージョン管理された定義３０２およびバージョン管理されたインスタンス３０４を含んでいるストレージ・デバイス（例えば、図１のストレージ・ユニット１０８）は、別々のユニットとして示されているが、定義のバージョンおよび関連するインスタンスは、同じストレージ・デバイス（例えば、リレーショナル・データベース）上に容易に格納することができる。
【００６９】
バージョン１〜３を含んでいる第１の定義識別子と関連付けられたバージョン管理された定義は、識別子ＤＩＤ  １  Ｖ１  ３０６、ＤＩＤ  １  Ｖ２  ３０８、およびＤＩＤ  １、Ｖ３  ３１０として示されている。同様に、やはり複数のバージョン１〜３を含んでいる第２の定義識別子と関連付けられた定義は、識別子ＤＩＤ  ２  Ｖ１  ３１２、ＤＩＤ  ２  Ｖ２  ３１４、およびＤＩＤ  ２、Ｖ３  ３１６として示されている。
【００７０】
この例におけるインスタンスは、インスタンス識別子ＩＩＤ  １  ３１８、ＩＩＤ  ２  ３２０、ＩＩＤ  ３  ３２２、およびＩＩＤ  ４  ３２４として定義されている。インスタンスは、特定の定義のバージョンから作成される。現在の例では、識別子ＩＩＤ  １  ３１８、ＩＩＤ  ２  ３２０、ＩＩＤ  ３  ３２２と関連付けられたインスタンスは、識別子ＤＩＤ  １  Ｖ２  ３０８、ＤＩＤ  １  Ｖ３  ３１０、およびＤＩＤ  １  Ｖ２  ３０８と関連付けられた特定の定義のバージョンをそれぞれ使用して作成され、識別子ＩＩＤ  ４  ３２４と関連付けられたインスタンスは、識別子ＤＩＤ  ２  Ｖ３  ３１６と関連付けられた特定の定義のバージョンを使用して作成される。特定の定義のバージョンと、各定義のバージョンを使用して作成されたインスタンスとの間の関連付けが、点線を使用して図に示されている。
【００７１】
図４を参照すると、本開示のさまざまな実施形態で動作可能な、新しいバージョンをバージョン管理されたシステムに作成するプロセスのフローチャートが示されている。図４は、図１のハイブリッド・システム１１６の一部を使用するプロセスを、図３のバージョン管理されたシステム３００の形態で、上位レベルからの視点において示している。
【００７２】
新しいバージョンを作成する場合、プロセス４００に示された以下の処理で、アーチファクトの定義の新しいバージョンを作成する必要がある。新しいバージョンを作成できるということは、システムも、バージョン間の関係を維持できるということを意味している。
【００７３】
プロセス４００が開始され（ステップ４０２）、バージョン管理されたシステム（図３のバージョン管理されたシステム３００など）の最新のバージョンｎを使用する（ステップ４０４）。バージョン管理された定義のバージョンｎに対する変更が受信される（ステップ４０６）。受信された変更は、バージョン管理されたシステムの最新のバージョンｎに適用され、バージョン管理された定義のバージョンｎ＋１を作成する（ステップ４０８）。生成された出力は、バージョン管理された定義のバージョンｎ＋１の形態になり（ステップ４１０）、その後プロセスが終了する（ステップ４１２）。
【００７４】
最終的に、バージョン管理されたシステムはインスタンスの移行を可能にする。インスタンスの移行では、新しい（ターゲット）定義バージョンを使用して実行するために、バージョンｎなどのソース・バージョン、およびバージョンｎ＋１などのターゲット・バージョンという２つのバージョンを比較して、ソース・バージョンのインスタンスを適応させるようにデータを変形する方法を決定する必要がある。インスタンスの移行は通常、困難であり、バージョン間の変更の種類によっては、不可能な場合もある。
【００７５】
図５を参照すると、本開示のさまざまな実施形態で動作可能な、バージョン管理されないシステムのブロック図が示されている。図５は、バージョン管理されない定義を含んでいるバージョン管理されないシステム５００の形態での図１のハイブリッド・システム１１６の一部、および２つの異なるアーチファクトの関連するインスタンスを例として示している。
【００７６】
したがって、バージョン管理によって、実行に影響を与えずに頻繁な配置と進化が可能になるが、バージョン管理は、さまざまなバージョンから生成されたインスタンスの集合によって記録されたデータの統合された見方を維持するために必要なものが不足している。反対に、バージョン管理されないシステムは極めて単純である。バージョン管理されないシステムでは、アーチファクトの定義は１つのみである。この定義は、変更を定義に導入することによって、時間とともに進化する。ただし、ユーザが時間に伴うアーチファクトの発達を確認できるようにするチェックポイントまたはバージョンの概念もない。バージョン管理されないシステムでは、アーチファクトのすべてのインスタンスは、単一の定義に関連付けられる。バージョン管理されないシステム５００は、バージョン管理されないシステムの構造を示している。
【００７７】
図５の略語において、ＤＩＤは定義識別子を表し、ＩＩＤはインスタンス識別子を表す。バージョン管理されない定義５０２およびインスタンス５０４を含んでいるストレージ・デバイス（例えば、図１のストレージ・ユニット１０８）は、別々のユニットとして示されているが、定義のバージョンおよび関連するインスタンスは、同じストレージ・デバイス（例えば、リレーショナル・データベース）上に容易に格納することができる。
【００７８】
図３に示された命名規則と同様に、バージョン管理されない定義５０２の第１の定義および第２の定義と関連付けられたバージョン管理されない定義が、識別子ＤＩＤ  １  ５０６およびＤＩＤ  ２  ５０８として示されている。ただし、この場合、定義識別子にはバージョンが含まれていない。
【００７９】
バージョン管理されないインスタンス５０４の例におけるインスタンスは、インスタンス識別子ＩＩＤ  １  ５１０、ＩＩＤ  ２  ５１２、ＩＩＤ  ３  ５１４、およびＩＩＤ  ４  ５１６として定義されている。インスタンスは、特定の定義から作成される。現在の例では、バージョン管理されないシステム５００の識別子ＩＩＤ  １  ５１０、ＩＩＤ  ２  ５１２、ＩＩＤ  ３  ５１４と関連付けられたインスタンスは、識別子ＤＩＤ  １  ５０６と関連付けられた特定の定義を使用して作成され、識別子ＩＩＤ  ４  ５１６と関連付けられたインスタンスは、識別子ＤＩＤ  ２  ５０８と関連付けられた特定の定義を使用して作成される。特定の定義のバージョンと、各定義のバージョンを使用して作成されたインスタンスとの間の関連付けが、点線を使用して図に示されている。
【００８０】
図６を参照すると、本開示のさまざまな実施形態で動作可能な、バージョン管理されないシステム内の定義を変更するプロセスのフローチャートが示されている。図６は、図５のバージョン管理されないシステム５００の形態で、図１のハイブリッド・システム１１６の一部を使用するバージョン管理されないアーチファクト定義の進化のプロセスを上位レベルからの視点において示している。
【００８１】
アーチファクト定義を変更する場合、プロセス６００に示された以下の処理で、アーチファクトの変更された定義を作成する必要がある。バージョン管理されない定義を変更できるということは、システムも、更新された定義における変更を維持できるということを意味している。
【００８２】
プロセス６００が開始され（ステップ６０２）、バージョン管理されないシステム（図５のバージョン管理されないシステム５００など）内のアーチファクトのバージョン管理されない定義を使用する（ステップ６０４）。バージョン管理されないアーチファクト定義に対する変更が受信される（ステップ６０６）。受信された変更は、バージョン管理されないシステムのバージョン管理されないアーチファクト定義に適用され、元のバージョン管理されないアーチファクト定義と同じレコードに保存される（ステップ６０８）。生成された出力は、元のバージョン管理されないアーチファクト定義の更新されたアーチファクト定義の形態になり（ステップ６１０）、その後プロセス６００が終了する（ステップ６１２）。
【００８３】
バージョン管理されないシステムは、アーチファクトのバージョン間の関係を管理する必要がないという簡易性がある。すべてのインスタンスが同じ定義によって裏付けられるため、ある種の明示的なインスタンスの移行の必要性がないという簡易性もある。ただし、この簡易性には犠牲が伴う。
【００８４】
バージョン管理されないシステムは、アーチファクト定義に対して実行可能な更新の種類を制約する。この制約は、すべての既存のインスタンスが対応する更新と互換性を持たなければならないため、必要になる。この制約は、すべてのインスタンスの暗黙的に強制されるインスタンスの移行と判断することができ、この移行は必ず成功しなければならず、その結果、実行可能な更新を限定する。定義を容易に変更できるバージョン管理されたシステムとは異なり、バージョン管理されないシステムには、許容される定義の変更に関して厳密なルールがある。ただし、それらのルールが遵守されない場合、壊れたインスタンスまたは互換性のないインスタンスを修正するために、ユーザの介入が必要になる。
【００８５】
本開示の実施形態は、バージョン管理されたアプローチとバージョン管理されないアプローチの両方を使用して、両方の性質の長所を示すハイブリッド・システム（例えば、図７に示されたハイブリッド・システム７００）を定義するための方法を実装する。これは、バージョン管理された定義とバージョン管理されない定義の間の関係、およびそれらの関係がどのように使用され、アーチファクトが成熟するにつれてどのように進化するかを管理するルールを確立することによって実現される。
【００８６】
図７を参照すると、本開示のさまざまな実施形態で動作可能な、ハイブリッド・システムのブロック図が示されている。図７は、例として、バージョン管理された形態およびバージョン管理されない形態でのアーチファクト定義を含んでいるハイブリッド・システム７００の形態での図１のハイブリッド・システム１１６、および２つの異なるアーチファクトの関連する対応するインスタンスを示している。
【００８７】
バージョン管理された定義３０２およびインスタンス３０４は、別のユニットとして示されているが、定義のバージョンおよび関連するインスタンスは、バージョン管理されない定義５０２およびインスタンス５０４と同じストレージ・デバイス（例えば、リレーショナル・データベース）上に容易に格納できる。
【００８８】
図３のバージョン管理されたシステム３００でのように、バージョン１〜３を含んでいる第１のバージョン管理された定義識別子と関連付けられたアーチファクト定義は、識別子ＤＩＤ  １  Ｖ１  ３０６、ＤＩＤ  １  Ｖ２  ３０８、およびＤＩＤ  １、Ｖ３  ３１０として示されている。同様に、やはり複数のバージョン１〜３を含んでいる第２のバージョン管理された定義識別子と関連付けられたバージョン管理されたアーチファクト定義は、識別子ＤＩＤ  ２  Ｖ１  ３１２、ＤＩＤ  ２  Ｖ２  ３１４、およびＤＩＤ  ２  Ｖ３  ３１６として示されている。
【００８９】
前述したように、インスタンスは特定の定義のバージョンから作成される。この例におけるインスタンスは、インスタンス識別子ＩＩＤ  １  ３１８、ＩＩＤ  ２  ３２０、ＩＩＤ  ３  ３２２、およびＩＩＤ  ４  ３２４として定義されている。例の識別子ＩＩＤ  １  ３１８、ＩＩＤ  ２  ３２０、ＩＩＤ  ３  ３２２と関連付けられたインスタンスは、識別子ＤＩＤ  １  Ｖ２  ３０８、ＤＩＤ  １  Ｖ３  ３１０、およびＤＩＤ  １  Ｖ２  ３０８と関連付けられた特定の定義のバージョンをそれぞれ使用して作成され、識別子ＩＩＤ  ４  ３２４と関連付けられたインスタンスは、識別子ＤＩＤ  ２  Ｖ３  ３１６と関連付けられた特定の定義のバージョンを使用して作成される。
【００９０】
図３に示された命名規則と同様に、バージョン管理されない定義５０２の第１の定義および第２の定義と関連付けられたバージョン管理されない定義が、識別子ＤＩＤ  １  ５０６およびＤＩＤ  ２  ５０８として示されている。ただし、バージョン管理されないシステム５００の場合、定義識別子にはバージョンが含まれていない。
【００９１】
システムのバージョン管理された一部と同様に、インスタンスが特定の定義から作成されるが、特定のバージョンは作成されない。インスタンス（例では、バージョン管理されないインスタンス５０４）は、識別子ＩＩＤ  １  ５１０、ＩＩＤ  ２  ５１２、ＩＩＤ  ３５１４、およびＩＩＤ  ４  ５１６と関連付けられたインスタンスとして定義されている。バージョン管理されないシステム５００の識別子ＩＩＤ  １  ５１０、ＩＩＤ  ２  ５１２、ＩＩＤ  ３  ５１４と関連付けられたインスタンスは、識別子ＤＩＤ  １  ５０６と関連付けられた特定の定義を使用して作成され、識別子ＩＩＤ  ４  ５１６と関連付けられたインスタンスは、識別子ＤＩＤ  ２  ５０８と関連付けられた特定の定義を使用して作成される。
【００９２】
バージョン管理された定義３０２の識別子ＤＩＤ  １  Ｖ１  ３０６、ＤＩＤ  １  Ｖ２  ３０８、およびＤＩＤ  １、Ｖ３  ３１０と関連付けられたアーチファクト定義は、バージョン管理されない定義ＤＩＤ  １  ５０６との関係が識別され、それと相関付けられる。同様の方法で、識別子ＤＩＤ  ２  Ｖ１  ３１２、ＤＩＤ  ２  Ｖ２  ３１４、およびＤＩＤ  ２  Ｖ３  ３１６と関連付けられたアーチファクト定義は、バージョン管理されない定義ＤＩＤ  ２  ５０８との関係が識別され、それと相関付けられる。
【００９３】
識別子ＩＩＤ  １  ３１８、ＩＩＤ  ２  ３２０、ＩＩＤ  ３  ３２２、およびＩＩＤ  ４  ３２４と関連付けられたバージョン管理されたアーチファクト定義３０２と関連付けられたインスタンス３０４のインスタンス識別子も、バージョン管理されないインスタンスとの関係が識別され、それと相関付けられる。現在の例では、ハイブリッド・システム７００のバージョン管理された部分のインスタンス識別子ＩＩＤ  １  ３１８、ＩＩＤ  ２  ３２０、ＩＩＤ  ３  ３２２、およびＩＩＤ  ４  ３２４が、ハイブリッド・システム７００の対応するバージョン管理されない部分の識別子ＩＩＤ  １  ５１０、ＩＩＤ  ２  ５１２、ＩＩＤ  ３  ５１４、およびＩＩＤ  ４  ５１６と関連付けられたバージョン管理されないアーチファクト定義５０２と関連付けられたインスタンス５０４と相関付けられる。
【００９４】
現在の例で明らかなように、バージョン管理されたドメインとバージョン管理されないドメインの間の相関関係は、アーチファクト・レベル（定義）での第１のレベルおよび属性レベル（インスタンス）での第２のレベルという相関関係の２つのレベルで維持される。この相関関係は、一意の識別子を使用することにより、アーチファクトの関連付けによって記録され、定義とインスタンスの両方に適用できる。
【００９５】
アーチファクト間の関係、および両方のドメイン内の関連するアーチファクト間の相関関係は、不変の構成要素または部分を含んでいる単純な一意の識別子（ＵＩＤ）を使用して実現され、ＵＩＤは、特定の定義のすべてのバージョンおよび対応するバージョン管理されない定義によって共有される。ＵＩＤは、バージョン管理されたドメインで使用される場合は＜共通ＵＩＤ＞＿＜バージョンＩＤ＞という形態で表され、バージョン管理されないドメインで使用される場合は＜共通ＵＩＤ＞という形態で表される。
【００９６】
システムは、＜共通ＵＩＤ＞部分を使用して、同じアーチファクトのすべてのバージョンおよび関連する単一のバージョン管理されない定義を簡単に識別できる。ＵＩＤは、アーチファクトが存続する間は不変であり、アーチファクトが最初に作成されたときに割り当てられ、変更されることはない。例で示されるように、ＤＩＤは、バージョン管理された定義および対応するバージョン管理されない各定義のアーチファクト定義の識別に使用される。
【００９７】
図８を参照すると、本開示のさまざまな実施形態で動作可能な、ハイブリッド・システムのブロック図が示されている。図８は、例として、バージョン管理された形態およびバージョン管理されない形態でのアーチファクト定義を含んでいるハイブリッド・システム８００の形態での図１のハイブリッド・システム１１６、および属性間の関係を含んでいるアーチファクトの２つの異なるバージョンの関連する対応するインスタンスを示している。ハイブリッド・システム８００の例では、アーチファクトのさまざまなバージョンから単一のバージョン管理されない定義への生成された関係が示されている。図８の略語において、ＤＩＤは定義識別子を表し、Ｖはバージョン識別子を表し、ＡＩＤは属性識別子を表し、値Ａ、Ｂ、Ｃは不変のファセット値を表す。
【００９８】
ハイブリッド・システム８００は、バージョン管理されない定義５０２との関係が識別されて、それと相関付けられたバージョン管理された定義３０２を含んでいる図７のハイブリッド・システム７００の定義部分を示している。
【００９９】
バージョン管理されたアーチファクトとバージョン管理されないアーチファクトの間の関係が確立されると、オブジェクトの属性に対するアーチファクトの関係で使用されたのと同じ原則を適用することによって、属性間の関係付けおよび相関付けが実行される。アーチファクト間の関係および相関関係における前の識別と同様に、ここで属性はＵＩＤによって識別される。この場合のＵＩＤは、属性のファセットから生成された部分を含んでおり、これらのファセットが変更されると、バージョン管理されないドメイン内の既存のインスタンスとの互換性のない属性と関連付けられたインスタンス・データが作成される。したがって、これらのファセットは、定義が存続する間、不変であると考えられる。バージョン管理されたドメイン内でこれらのファセットが変更されると、この変更によってシステムが属性を（既存の定義の更新とは対照的に）各親定義への新しい追加として識別する。ＵＩＤは、バージョン管理された属性およびバージョン管理されない属性によって全体として共有される。ＵＩＤの形式は、＜ＵＩＤ＞＿＜不変のファセット１の値＞＿＜…＞＿＜不変のファセットｎの値＞として表される。＜ＵＩＤ＞部分は、システムによって割り当てられてもよく、不変なファセットの値であってもよい。
【０１００】
例えば、属性１は、Ａ、Ｂ、Ｃ、およびＤという４つのファセットを含んでいる。４つのファセットのうちの２つ（ＢおよびＣ）を変更すると、属性と関係付けられた既存のデータの互換性が失われる。その結果、属性１のＵＩＤを、＜ＵＩＤ＞＿＜Ｂの値＞＿＜Ｃの値＞として表すことができる。この表現は、アーチファクトの新しいバージョンにおいてファセットＢまたはファセットＣのいずれかが変更された場合、対応するバージョン管理されないアーチファクトが＜ＵＩＤ＞＿＜Ｂ’の値＞＿＜Ｃ’の値＞によって識別される新しい属性を受け取ることを保証する。
【０１０１】
さらに例を挙げると、プロパティが複数のファセットを含む場合、その一部は、名前、種類、表示名、濃度、および説明であってもよい。これらの各ファセットは、前に述べた理由により、既存のインスタンスを壊す危険を冒さずに、バージョン管理されたドメイン内で更新できる。ただし、同じ変更が、バージョン管理されない定義にも適用されなければならない。そのため、既存のインスタンス・データが互換性を失っている限り、変更によってプロパティ定義を変形させることはできない。例えば、プロパティ１は、名前：プロパティ１、表示名：プロパティ１、種類：文字列、濃度：複数値、および説明：これはプロパティ１である、というファセット値を使用して定義される。表示名または説明のいずれかを変更しても、データに影響を与えることはない。これらの属性が何であっても、引き続き文字列値のリストを、プロパティ定義によって記述することができる。
【０１０２】
しかし、例では、プロパティの種類または濃度のファセット値を変更すると、バージョン管理されない定義において不適合が生じる。例えば、種類のファセット値が文字列から整数に変更された場合、システムはすべての既存の文字列インスタンス・データを整数として表現できるということを保証できなくなる。同様に、濃度のファセット値が変更された場合、データを失うことなく、または不自然な変形を行うことなく、リストを単一の値に変更することは不可能である。そのため、種類および濃度は、不変であると判断され、プロパティＵＩＤの生成において使用されなければならない。
【０１０３】
例えば、生成されるＵＩＤは、次のように定義されてもよい。＜ＵＩＤ＞構成要素がプロパティ名であると仮定して、変更前の第１のケースでは、プロパティ１＿文字列＿複数として定義されてもよく、変更後の第２のケースでは、種類または濃度あるいはその両方が変更され、プロパティ１＿整数＿複数、またはプロパティ１＿文字列＿単一、あるいはプロパティ１＿整数＿単一として定義されてもよい。
【０１０４】
ハイブリッド・システム８００の例では、ＤＩＤ  １  Ｖ１  ３０６およびＤＩＤ  １  Ｖ２  ３０８として識別されたアーチファクト定義のさまざまなバージョンから単一のバージョン管理されない定義ＤＩＤ  １  ５０６への、生成された関係が示されている。バージョン管理されたアーチファクト定義とバージョン管理されないアーチファクト定義の間の相関関係は、さらに属性の関係を含んでいる。
【０１０５】
定義ＤＩＤ  １  Ｖ１  ３０６に関して、属性識別子ＡＩＤ１＿Ａ＿Ｂ  ８０２は、点線を使用して示されているように、ＤＩＤ  １  Ｖ２  ３０８および属性識別子ＡＩＤ１＿Ａ’＿Ｂ  ８０６で示されている変更された値に関連している。属性識別子ＡＩＤ１＿Ａ＿Ｂ  ８０２と属性識別子ＡＩＤ１＿Ａ’＿Ｂ  ８０６の関係は、不変なプロパティＡの値を（Ａ’に）変更した結果として、バージョンからバージョンへの進化によって発生し、それによって、新しいプロパティＡＩＤ１＿Ａ’＿Ｂ  ８０６がバージョン管理されない定義ＤＩＤ  １  ５０６に作成される。識別は、バージョンが進化したときにデータの互換性を維持するために使用される。
【０１０６】
さらに、ＡＩＤ１＿Ａ＿Ｂ  ８０２  ＡＩＤ２＿Ｂ＿Ｃ  ８０４は、バージョン管理されない定義ＤＩＤ  １  ５０２のＤＩＤ  １  ５０６内のＡＩＤ１＿Ａ＿Ｂ  ８０２  ＡＩＤ２＿Ｂ＿Ｃ  ８０４に関連している。
【０１０７】
定義ＤＩＤ  １  Ｖ２  ３０８に関しては、属性識別子ＡＩＤ２＿Ｂ＿Ｃ  ８０４および属性識別子ＡＩＤ１＿Ａ’＿Ｂ  ８０６で示されている変更された値は、バージョン管理されない定義５０２のＤＩＤ  １  ５０６内のＡＩＤ２＿Ｂ＿Ｃ  ８０４および属性識別子ＡＩＤ１＿Ａ’＿Ｂ  ８０６で示されている変更された値にそれぞれ関連している。
【０１０８】
インスタンスの作成に関しては、インスタンスはバージョン管理されたアーチファクト定義の特定のバージョンから常に作成されるが、このインスタンスは、バージョン管理されたアーチファクト定義から直接作成された１つの部分、およびバージョン管理されないアーチファクト定義から作成されたもう１つの部分という２つの部分を含めて形成される。両方の部分が共通のＩＤ属性を共有しているため、１つの部分を、他の部分を使用して検索できる。
【０１０９】
インスタンスは、あるバージョン管理された定義から別のバージョンへ移行できる。この場合、バージョン管理された定義から作成されたインスタンス部分のみを、バージョン管理されたシステムについて前に説明した方法と同じ方法で移行する必要がある。
【０１１０】
アーチファクト定義の進化が発生し、すべてのバージョン管理されないインスタンスの互換性を保証するために、特定のルールを実施することが必要になる。データが更新されたときにインスタンスに適用される検証ルールの定義は、実施の基準を提供するために使用される。アーチファクト定義の更新は、定義の新しいバージョンが作成されたときにシステムを介して伝搬され、対応するバージョン管理されない定義も更新される。
【０１１１】
アーチファクト定義の属性には、検証ルールが定義されてもよく、例えばルールは、数値属性が負の値を許可しないということを表してもよい。検証ルールは、バージョン管理されたアーチファクト定義が時間とともに進化する場合があるため、バージョン管理されたアーチファクト定義に対してのみ定義される。インスタンスの実施は、後のセクションで説明される。
【０１１２】
図９を参照すると、本開示のさまざまな実施形態で動作可能な、新しい定義のバージョンをハイブリッド・システムのバージョン管理されないシステム部分に作成するフローチャートが示されている。プロセス９００は、例として、図１のハイブリッド・システム１１６で使用されるプロセスを、定義が作成されるバージョン管理されないシステムを備えている図８のハイブリッド・システム８００の一部の形態で示す。
【０１１３】
プロセス９００が開始され（ステップ９０２）、バージョン管理された定義の最新のバージョンｎを受信し（ステップ９０４）、バージョン管理された定義のバージョン１〜ｎに対して、バージョン管理されない定義をマッピングする（ステップ９０６）。バージョン管理された定義のバージョンｎに対する変更も受信される（ステップ９０８）。
【０１１４】
プロセス９００は、バージョン管理された定義のバージョンｎ＋１を作成する（ステップ９１０）。
【０１１５】
アーチファクト定義の更新は、バージョン管理されたドメイン内でのみ実行される。ユーザが定義の最新のバージョンｎを変更した場合、新しいバージョンｎ＋１がそれらの変更とともに作成される。差分は、追加、削除、および変更にすることができる。差分ごとに、バージョン管理されないアーチファクト定義への対応するマッピングが行われなければならない。
【０１１６】
属性の削除によって、バージョン管理されないアーチファクト定義に対する変更は行われない。これは、その属性が、バージョン管理された定義の以前のバージョンによってまだ使用されるため、依然として必要とされるからである。属性の追加によって、同じファセットを含んでいるバージョン管理されない定義への属性の追加も行われる。１つの例外は、同じファセットを含んでいるプロパティが、バージョンｎよりも前のバージョンのバージョン管理された定義にすでに存在しているまれなケースである。したがって、属性の再導入によって、バージョン管理されないアーチファクト定義における変更は行われない。
【０１１７】
属性の変更は、行われた変更の内容に応じて、バージョン管理されない定義に対して同期される場合がある。属性の検証ルールのみが変更された場合、属性の変更がバージョン管理されたアーチファクト定義において排他的に維持されるため、バージョン管理されないアーチファクト定義に対する更新は行われない。ファセットが変更され、その変更をバージョン管理されないアーチファクト定義に互換性のある方法で適用できる場合、バージョン管理されない定義内の属性が変更される。これは主に、データに無関係な変更に適用され、例えば、バージョン管理されないアーチファクト定義が最新の定義のみを知っている場合、表示名または説明の変更が許容される。ファセットが変更され、その変更をバージョン管理されないアーチファクト定義に互換性のある方法で適用できない場合、関連付けられた検証ルール内で定義されているルールに従って、新しい属性がバージョン管理されない定義に追加される。これは主に、データに関係のある変更、例えば、変換できない数値から日付への属性の種類の変更に適用される。
【０１１８】
プロセス９００は、バージョン管理された定義のバージョン管理されない定義に変更をマッピングする（ステップ９１２）。プロセス９００は、バージョン管理された定義のバージョンｎ＋１を作成し（ステップ９１４）、バージョン管理された定義のバージョン１〜ｎ＋１に対してマッピングされたバージョン管理されない定義も作成し（ステップ９１６）、その後、プロセス９００を終了する（ステップ９１８）。
【０１１９】
図１０を参照すると、本開示のさまざまな実施形態で動作可能な、ハイブリッド・システム内のバージョン管理された定義から作成されたインスタンス部分に対してプロパティを変更するフローチャートが示されている。プロセス１０００は、例として、図１のハイブリッド・システム１１６で使用されるプロセスを、バージョン管理された定義のインスタンス部分内のプロパティが変更されるバージョン管理されたシステムを備えている図８のハイブリッド・システム８００の一部の形態で示す。
【０１２０】
プロセス１０００が開始され（ステップ１００２）、バージョン管理された定義のバージョンｎから作成されたインスタンスを受信し（ステップ１００４）、バージョン管理されない定義から作成されたインスタンスを受信する（ステップ１００６）。プロセス１０００は、バージョン管理された定義から作成されたインスタンス部分のプロパティに対する変更も受信する（ステップ１００８）
【０１２１】
プロセス１０００は、バージョン管理された定義のバージョンｎに対する変更を検証する（ステップ１０１０）。検証の失敗に応答して、プロセス１０００が変更をロールバックし（ステップ１０２２）、その後終了する（ステップ１０２４）。検証の成功に応答して、プロセス１０００がバージョン管理された定義から作成されたインスタンス部分を保存する（ステップ１０１２）。プロセス１０００は、バージョン管理されない定義から作成されたインスタンス部分を検索する（ステップ１０１４）。プロセス１０００は、変更をバージョン管理されない定義から作成されたインスタンス部分にマッピングする（ステップ１０１６）。
【０１２２】
プロセス１０００は、バージョン管理された定義のバージョンｎから更新されたインスタンスを作成する（ステップ１０１８）。プロセス１０００は、バージョン管理されない定義からも、更新されたインスタンスを作成する（ステップ１０２０）。その後、プロセス１０００は終了する（ステップ１０２４）。
【０１２３】
インスタンス・データの更新は、バージョン管理されたドメイン用のファサード、および対応するバージョン管理されないドメイン用のファサードという２つのファサードのいずれかを使用して実行される。クライアントが動作しているドメインに応じて、クライアントは、バージョン管理された定義またはバージョン管理されない定義それぞれの見方を含めて、アーチファクトのインスタンスとの情報のやりとりを試みることができる。
【０１２４】
バージョン管理されたファサードは、バージョン管理された定義の特定のバージョンに対して定義された属性にのみアクセスできる。また、バージョン管理されたファサードは、特定の定義のバージョンの属性に対して定義された検証ルールを直接認識する。バージョン管理されたファサードに対する更新は、定義のバージョンに対して直接検証できる。更新が有効であることが決定された場合、定義のバージョン管理されたインスタンスおよびバージョン管理されないインスタンスの同期を維持するために、バージョン管理されないファサードの対応する属性の位置が特定され、同じトランザクション内に保存される。
【０１２５】
バージョン管理されたファサードは、短時間に進化する定義の構成要素と情報をやりとりするために主に使用される。例えば、短時間存続するアクティビティは、各定義のバージョンに対して定義された検証ルールを使用して属性を確認するだけであり、長時間存続するコンテンツ上のデータは、同期した状態で維持される。
【０１２６】
図１１を参照すると、本開示のさまざまな実施形態で動作可能な、ハイブリッド・システム内のバージョン管理されない定義から作成されたインスタンス部分に対してプロパティを変更するプロセスのフローチャートが示されている。プロセス１１００は、例として、図１のハイブリッド・システム１１６で使用されるプロセスを、バージョン管理されない定義のインスタンス部分内のプロパティが変更されるバージョン管理されないシステムを備えている図８のハイブリッド・システム８００の一部の形態で示す。
【０１２７】
プロセス１１００が開始され（ステップ１１０２）、バージョン管理された定義のバージョンｎから作成されたインスタンスを受信し（ステップ１１０４）、バージョン管理されない定義から作成されたインスタンスを受信する（ステップ１１０６）。プロセス１１００は、バージョン管理されない定義から作成されたインスタンス部分のプロパティに対する変更も受信する（ステップ１１０８）。プロセス１１００は、バージョン管理された定義から作成されたインスタンス部分を検索する（ステップ１１１０）。プロセス１１００は、変更をバージョン管理された定義から作成されたインスタンス部分にマッピングする（ステップ１１１２）。
【０１２８】
プロセス１１００は、バージョン管理された定義のバージョンｎに対する変更を検証する（ステップ１１１４）。検証の失敗に応答して、プロセス１１００が変更をロールバックし（ステップ１１２２）、その後終了する（ステップ１１２４）。検証の成功に応答して、プロセス１１００がバージョン管理されない定義から作成されたインスタンス部分を保存する（ステップ１１１６）。
【０１２９】
プロセス１１００は、バージョン管理された定義のバージョンｎから更新されたインスタンスを作成する（ステップ１１１８）。プロセス１１００は、バージョン管理されない定義からも、更新されたインスタンスを作成する（ステップ１１２０）。その後、プロセス１１００は終了する（ステップ１１２４）。
【０１３０】
バージョン管理されないファサードを使用することで、バージョン管理された定義のすべてのバージョンにおいて定義された属性を効果的に公開する。これは、バージョン管理された定義のすべてのバージョンにおいて定義された属性が、バージョン管理されない定義内の対応する属性にすべてマッピングされるからである。ただし、バージョン管理されない定義には、検証ルールに関する知識がない。バージョン管理されないファサードを介して変更が行われた場合、対応するバージョン管理されたファサードが検索される。バージョン管理されないファサードを介して行われた変更を対応するバージョン管理されたファサードにマッピングすることで、特定のバージョン管理された定義による定義に従って、対応する検証ルールをチェックできる。チェックに失敗した場合、更新全体がロールバックされ、そうでない場合、バージョン管理されたインスタンスおよびバージョン管理されないインスタンスの両方に対する更新が、１つのトランザクションに保存される。
【０１３１】
バージョン管理されないファサードは、コンテンツを含めて、定義の長時間存続する部分によって主に使用される。したがって、コンテンツを重視するユーザは、バージョン管理されないファサードを使用してすべての属性を確認することができ、バージョン管理された定義の数個のバージョンに対して定義された属性のみを確認できる。インスタンスの更新時に、バージョン管理された定義に対する変更の検証を含む、バージョン管理されたインスタンス部分へ戻る同期は、各定義のバージョンによる定義に従って、有効な変更のみがインスタンスに適用されることを強制する。
【０１３２】
図１２を参照すると、本開示のさまざまな実施形態で動作可能な、ハイブリッド・システム内のバージョン管理されたドメインとバージョン管理されないドメインの間でアーチファクトを相関付けるためのプロセスのフローチャートが示されている。プロセス１２００は、例として、図１のハイブリッド・システム１１６で使用されるプロセスを、図８のハイブリッド・システム８００の一部の形態で示す。
【０１３３】
プロセス１２００が開始され（ステップ１２０２）、アーチファクトのセット内のアーチファクトに関して、バージョン管理されたドメインとバージョン管理されないドメインの両方の属性を含んでいるメタデータを生成し、このメタデータは、バージョン管理されたドメインおよびバージョン管理されないドメインで使用されるアーチファクトのセットと関連付けられる（ステップ１２０４）。プロセス１２００は、バージョン管理されたアーチファクト定義の特定のバージョンを使用してインスタンスを作成し、このインスタンスは、バージョン管理されたアーチファクト定義から直接作成された第１の部分およびバージョン管理されないアーチファクト定義から作成された第２の部分を備える（ステップ１２０６）。プロセス１２００は、バージョン管理されたドメイン内およびバージョン管理されないドメイン内のアーチファクトの各表現間のリンクを指定し、指定されたリンクは、バージョン管理されたドメイン内のアーチファクトの複数のバージョン間の関係を、バージョン管理されないドメイン内の同じアーチファクトの単一のバージョン管理されない表現に対して定義する（ステップ１２０８）。プロセス１２００は、バージョン管理されたドメインまたはバージョン管理されないドメインのいずれかからのアーチファクトのインスタンスの作成、インスタンスの実行、およびインスタンスの更新のうちの選択された１つを実行するために使用されるファサードのセットを提供することに応答して、バージョン管理されたドメインまたはバージョン管理されないドメインのいずれかからのアーチファクトのインスタンスの作成、インスタンスの実行、およびインスタンスの更新のうちの選択された１つを受信し、アーチファクトのインスタンスの作成、インスタンスの実行、およびインスタンスの更新のうちの選択された１つは、ルールのセットを使用して実行される（ステップ１２１０）。プロセス１２００は、アーチファクト定義のすべてのバージョンを、単一のバージョン管理されない定義に相関付け、この単一のバージョン管理されない定義のアーチファクト定義も、アーチファクト定義のすべてのバージョンに相関付けられ（ステップ１２１２）、その後終了する（ステップ１２１４）。
【０１３４】
したがって、実施形態例において、バージョン管理されたドメインとバージョン管理されないドメインの間でアーチファクトを相関付けるためのコンピュータ実装方法が提示される。このコンピュータ実装方法は、アーチファクトのセット内のアーチファクトに関して、バージョン管理されたドメインおよびバージョン管理されないドメインの両方の属性を含んでいるメタデータを生成することであって、このメタデータがバージョン管理されたドメインおよびバージョン管理されないドメインで使用されるアーチファクトのセットと関連付けられる、生成することと、バージョン管理されたアーチファクト定義の特定のバージョンを使用してインスタンスを作成することであって、このインスタンスが、バージョン管理されたアーチファクト定義から直接作成された第１の部分およびバージョン管理されないアーチファクト定義から作成された第２の部分を備える、作成することとを行う。
【０１３５】
この方法は、バージョン管理されたドメイン内およびバージョン管理されないドメイン内のアーチファクトの各表現間のリンクをさらに指定し、指定されたリンクは、バージョン管理されたドメイン内のアーチファクトの複数のバージョン間の関係を、バージョン管理されないドメイン内の同じアーチファクトの単一のバージョン管理されない表現に対して定義する。
【０１３６】
ファサードのセットは、バージョン管理されたドメインまたはバージョン管理されないドメインからのアーチファクトのインスタンスの作成、インスタンスの実行、およびインスタンスの更新のうちの選択された１つの実行に使用するために提供され、アーチファクトのインスタンスの作成、インスタンスの実行、およびインスタンスの更新のうちの選択された１つが、ルールのセットを使用して実行される。アーチファクト定義のすべてのバージョンは、単一のバージョン管理されない定義に相関付けられ、この単一のバージョン管理されない定義のアーチファクト定義も、アーチファクト定義のすべてのバージョンに相関付けられる。
【０１３７】
実施形態例は、バージョン管理された世界とバージョン管理されない世界の両方の属性を含んでいるメタデータを設計するためのメカニズムを提供する。さらに、この実施形態例は、両方の間のリンク、バージョン管理された見方およびバージョン管理されない見方の両方からのアーチファクトのインスタンスを作成、実行、および更新するために必要なルールを指定する。
【０１３８】
実施形態例は、アーチファクトのバージョンを記録する方法を定義せず、別のアーチファクトの単一のバージョンを定義する方法も定義しない。このような概念はよく理解されており、現在多くの場合、ソフトウェア・システムにおいて適用されている。そうではなく、実施形態例は、同じアーチファクトが両方のドメイン内で表されており、両方の形態でアクセスされる必要がある場合に、２つをリンクする方法を提案する。
【０１３９】
実施形態例は、アーチファクトの複数のバージョン間の関係を、同じアーチファクトの単一のバージョン管理されない表現に対して定義し、それらの関係を利用して、両方を１つとして動作させる。２つのシステムが（バージョン管理されたおよびバージョン管理されない）アーチファクト定義自体を記録すると仮定して、実施形態例は、アーチファクト定義のすべてのバージョンと、その単一のバージョン管理されない表現とを相互に関連付けることと、特定のアーチファクト定義のバージョンの属性（またはプロパティ）定義と、バージョン管理されない表現内の同じ属性（またはプロパティ）定義とを相互に関連付けることと、バージョン管理されたアーチファクト定義に対する追加、更新、および削除などの編集の意味、ならびに対応するバージョン管理されないアーチファクト定義に適用される編集の意味への変換を定義することと、定義されたバージョン管理されたファサードまたはバージョン管理されないファサードのいずれに対して処理が実行されるかに応じて、アーチファクトのインスタンスに対して読み取り処理および更新処理が実行される方法を定義することと、バージョン管理されたアーチファクトおよびバージョン管理されないアーチファクトのインスタンス間で、一方または他方が更新されたときに、データの更新が同期される方法を定義することと、属性（またはプロパティ）検証ルールが、定義され、バージョン管理されたファサードまたはバージョン管理されないファサードのいずれかを介してアーチファクト・インスタンスが更新されたときに評価される方法を定義することとのための方法を説明する。
【０１４０】
実施形態例は、通常、バージョン管理されたドメインおよびバージョン管理されないドメインの最良の属性を選択し、必要に応じて、本明細書ではハイブリッド・システムと呼ばれる１つのソリューションにおいて、いずれか１つのドメインを利用するためのメカニズムを提供する。バージョン管理されたアプローチを使用するシステムの場合、すべてのバージョンを共通の概念に統合する必要があるため、情報の統合が極めて困難である。バージョン管理されないアプローチを使用するシステムの場合、アーチファクトに必ず下位互換性があり、既存のインスタンスが、メタデータ内の更新に関して引き続き有効であることを保証しなければならないため、進化が困難である。
【０１４１】
実施形態例によって提案されたハイブリッド・アプローチを使用することで、通常は追加の労力をあまり伴わずに、バージョン管理されて動作できるシステム（プロセスの進化）およびバージョン管理されずに動作できるシステム（過去のプロセス・データの統合）の定義が可能になる。
【０１４２】
別の実施形態例では、バージョン管理されたドメイン内で定義されてインスタンス化されたアーチファクトをバージョン管理されないドメインに相関付けるための方法は、定義のすべてのバージョンおよびバージョン管理されない定義によって共有された不変の構成要素を含んでいる一意の識別子（ＵＩＤ）を使用してバージョン管理されたドメイン内およびバージョン管理されないドメイン内の関連するアーチファクト間の相関関係を作成することであって、このＵＩＤが、バージョン管理された＜共通ＵＩＤ＞＿＜バージョンＩＤ＞という第１の形態およびバージョン管理されない＜共通ＵＩＤ＞という第２の形態で表され、システムが、＜共通ＵＩＤ＞部分を使用して同じアーチファクトのすべてのバージョンおよび関連する単一のバージョン管理されない定義を識別し、このＵＩＤが関連するアーチファクトが存続する間は不変である、作成することと、属性のファセットから生成することであって、ファセットが、変更された場合に、バージョン管理されないドメイン内の既存のインスタンスとの互換性のない属性と関連付けられたインスタンス・データを作成し、特定のファセットが、定義が存在する間は不変であると判断され、それらのファセットがバージョン管理されたドメイン内で変更された場合、それらの変更によってシステムが属性を親定義への新しい追加であると識別し、ＵＩＤが、バージョン管理された属性とバージョン管理されない属性の両方によって全体的に共有され、＜ＵＩＤ＞＿＜不変のファセット１の値＞＿＜…＞＿＜不変のファセットｎの値＞の形式で表される、生成することと、バージョン管理されたアーチファクト定義の特定のバージョンを使用してインスタンスを作成することであって、このインスタンスが、バージョン管理されたアーチファクト定義から直接作成された第１の部分およびバージョン管理されないアーチファクト定義から作成された第２の部分を備える、作成することと、バージョン管理されたドメイン内のアーチファクト定義を更新することであって、アーチファクト定義の最新のバージョンに対するユーザの変更が、このユーザの変更を含んでいる新しいバージョンｎ＋１を作成し、このユーザの変更が、追加、削除、および修正のいずれかであり、バージョン管理されないアーチファクト定義と同期させるために、ユーザの変更ごとに、バージョン管理されないアーチファクト定義への対応するマッピングが行われる、更新することとを行い、アーチファクト定義の属性と関連付けられた検証ルールのセット内の検証ルールにおける変更に応答して、バージョン管理されないアーチファクト定義に対して更新が行われず、互換性のある方法でバージョン管理されないアーチファクト定義に適用できるファセットの変更に応答して、バージョン管理されない定義内の属性も変更され、互換性のある方法でバージョン管理されないアーチファクト定義に適用できないファセットの変更に応答して、新しい属性が、バージョン管理されたアーチファクト定義の属性と関連付けられた定義済み検証ルールのセットを使用してバージョン管理されない定義に追加され、バージョン管理されたファサードおよびバージョン管理されないファサードの１つを選択してインスタンス・データを更新し、バージョン管理されたファサードの選択に応答して、バージョン管理された定義の特定のバージョンに対して定義された属性およびバージョン管理された定義のこの特定のバージョンの属性に対して定義された検証ルールのセットにのみアクセスし、このファサードに対する更新を、バージョン管理された定義の特定のバージョンに対して直接検証し、更新が有効であることに応答して、定義のバージョン管理されたインスタンスとバージョン管理されないインスタンスの間の同期を維持するために、バージョン管理されないファサードの対応する属性が検索されて、同じトランザクションに保存され、バージョン管理されないファサードの選択に応答して、バージョン管理されない定義内の対応する属性へのマッピングに従って、バージョン管理された定義のすべてのバージョンで定義された属性を公開し、バージョン管理されないファサードを介して行われた変更に応答して、対応するバージョン管理されたファサード内を検索することであって、それらの変更がこの対応するバージョン管理されたファサードにマッピングされ、特定のバージョン管理された定義による定義に従って対応する検証ルールがチェックされる、検索することを行い、更新の成功に応答して、バージョン管理されたインスタンスおよびバージョン管理されないインスタンスに対する更新を単一のトランザクションに保存し、更新の失敗に応答して、その更新がロールバックされる。
【０１４３】
図内のフローチャートおよびブロック図は、本発明のさまざまな実施形態に記載されているシステム、方法、およびコンピュータ・プログラム製品の可能な実装のアーキテクチャ、機能、および処理を示す。これに関連して、フローチャートまたはブロック図内の各ブロックは、規定された論理機能を実装するための１つまたは複数の実行可能な命令を備えるコードのモジュール、セグメント、または部分を表すことができる。一部の代替実施形態では、ブロックに示された機能は、図に示された順序とは異なる順序で発生させることができるということにも注意する必要がある。例えば、実際、連続して示された２つのブロックは、含まれている機能に応じて、実質的に同時に実行するか、または場合によっては逆の順序で実行することができる。ブロック図またはフローチャート図あるいはその両方の各ブロック、ならびにブロック図またはフローチャート図あるいはその両方に含まれるブロックの組合せは、規定された機能または動作、あるいは専用ハードウェアとコンピュータ命令の組合せを実行する専用ハードウェアベースのシステムによって実装できるということにも注意する。
【０１４４】
添付の特許請求の範囲内のすべてのミーンズまたはステップ・プラス・ファンクション要素の対応する構造、材料、動作、および均等なものは、具体的に特許請求されるその他の特許請求される要素と組み合わせて機能を実行するための任意の構造、材料、または動作を含むことが意図されている。本発明の説明は、例示および説明の目的で提示されているが、網羅的であることは意図されておらず、開示された形態での発明に限定されない。本発明の範囲および主旨を逸脱することなく多くの変更および変形が、当業者にとって明らかとなるであろう。本発明の原理および実際的な適用を最も適切に説明するため、およびその他の当業者が、企図されている特定の用途に適しているようなさまざまな変更を伴う多様な実施形態に関して本発明を理解できるようにするために、実施形態が選択されて説明された。
【０１４５】
本発明は、完全にハードウェアである実施形態、完全にソフトウェアである実施形態、またはハードウェアとソフトウェアの両方の要素を含んでいる実施形態の形態をとることができる。好ましい実施形態において、本発明はソフトウェアにおいて実装され、そのソフトウェアは、ファームウェア、常駐ソフトウェア、マイクロコード、および当業者によって認識されることが可能なその他のソフトウェア媒体を含むが、これらに限定されない。
【０１４６】
本発明は、完全に機能するデータ処理システムの文脈で説明されているが、当業者が、本発明のプロセスを、コンピュータ実行可能命令がさまざまな形態で格納されているコンピュータ可読データ・ストレージ・デバイスの形態で配布できるということを理解することに注意することは重要である。コンピュータ可読データ・ストレージ・デバイスの例は、フロッピー（Ｒ）・ディスク、ハード・ディスク・ドライブ、ＲＡＭ、ＣＤ−ＲＯＭ、ＤＶＤ−ＲＯＭなどの記録可能な種類の媒体を含む。コンピュータ実行可能命令は、特定のデータ処理システムにおける実際の用途のためにデコードされる、符号化された形式の形態をとってもよい。
【０１４７】
プログラム・コードを含んでいるコンピュータ実行可能命令の格納または実行あるいはその両方を行うのに適したデータ処理システムは、システム・バスを介して直接的または間接的にメモリ素子に結合された１つまたは複数のプロセッサを含む。これらのメモリ素子は、プログラム・コードの実際の実行時に使用されるローカル・メモリ、バルク・ストレージ、および、実行時にバルク・ストレージからコードが取得されなければならない回数を減らすために少なくとも一部のプログラム・コードを一時的に格納するキャッシュ・メモリを含むことができる。
【０１４８】
入出力デバイスまたはＩ／Ｏデバイス（キーボード、ディスプレイ、ポインティング・デバイスなどを含むが、これらに限定されない）は、直接的に、または介在するＩ／Ｏコントローラを通じて、システムに結合できる。
【０１４９】
ネットワーク・アダプタもシステムに結合され、介在するプライベート・ネットワークまたはパブリック・ネットワークを通じて、データ処理システムを、他のデータ処理システムまたはリモート・プリンタまたはストレージ・デバイスに結合できるようにしてもよい。モデム、ケーブル・モデム、およびＥｔｈｅｒｎｅｔ（Ｒ）・カードは、現在使用可能なネットワーク・アダプタのうちの、ごくわずかの種類にすぎない。
【図１】
0006505135.tif 000002
【図２】
0006505135.tif 000003
【図３】
0006505135.tif 000004
【図４】
0006505135.tif 000005
【図５】
0006505135.tif 000006
【図６】
0006505135.tif 000007
【図７】
0006505135.tif 000008
【図８】
0006505135.tif 000009
【図９】
0006505135.tif 000010
【図１０】
0006505135.tif 000011
【図１１】
0006505135.tif 000012
【図１２】
0006505135.tif 000013