JP2017521759A - バージョン管理されたドメインとバージョン管理されないドメインの間でアーチファクトを相関付けるためのコンピュータ実装方法、コンピュータ・プログラム、および装置 - Google Patents

バージョン管理されたドメインとバージョン管理されないドメインの間でアーチファクトを相関付けるためのコンピュータ実装方法、コンピュータ・プログラム、および装置 Download PDF

Info

Publication number
JP2017521759A
JP2017521759A JP2016570114A JP2016570114A JP2017521759A JP 2017521759 A JP2017521759 A JP 2017521759A JP 2016570114 A JP2016570114 A JP 2016570114A JP 2016570114 A JP2016570114 A JP 2016570114A JP 2017521759 A JP2017521759 A JP 2017521759A
Authority
JP
Japan
Prior art keywords
versioned
definition
artifact
unversioned
instance
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2016570114A
Other languages
English (en)
Other versions
JP6505135B2 (ja
Inventor
カルバハレス、セバスティアン
シュヴァルツ、サッシャ
ダン、コイ
ダン、ダオ−クィン、リ
ワトソン、トーマス
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2017521759A publication Critical patent/JP2017521759A/ja
Application granted granted Critical
Publication of JP6505135B2 publication Critical patent/JP6505135B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/23Updating
    • G06F16/2308Concurrency control
    • G06F16/2315Optimistic concurrency control
    • G06F16/2329Optimistic concurrency control using versioning

Abstract

【課題】バージョン管理されたドメインとバージョン管理されないドメインの間でアーチファクトを相関付けるためのコンピュータ実装方法、コンピュータ・プログラム製品、および装置を提供する。【解決手段】バージョン管理されたドメインとバージョン管理されないドメインの間でアーチファクトを相関付けるためのコンピュータ実装方法の実施形態は、アーチファクトのセット内のアーチファクトに関して、バージョン管理されたドメインとバージョン管理されないドメインの両方の属性を含んでいるメタデータを生成することと、バージョン管理されたアーチファクト定義の特定のバージョンを使用してインスタンスを作成することであって、このインスタンスが、バージョン管理されたアーチファクト定義から直接作成された第1の部分およびバージョン管理されないアーチファクト定義から作成された第2の部分を備える、作成することと、バージョン管理されたドメインおよびバージョン管理されないドメイン内のアーチファクトの各表現間のリンクを指定することと、アーチファクトのインスタンスの作成、インスタンスの実行、およびインスタンスの更新のうちの選択された1つをバージョン管理されたドメインまたはバージョン管理されないドメインのいずれかを使用して実行するためのファサードのセットを提供することと、アーチファクト定義のすべてのバージョンを単一のバージョン管理されない定義に相関付けることとを行う。【選択図】図3

Description

本開示は、一般に、データ処理システムにおけるビジネス・プロセス管理およびケース管理に関し、より詳細には、バージョン管理されたドメイン内で定義およびインスタンス化されたアーチファクトを、データ処理システム内のバージョン管理されないドメインに相関付けることに関する。
組織は、コンテンツまたは情報を生成する。組織は、多くの場合それを、プロセスが正式に定義されてシステムによって実行される、ある種のプロセスを通じて行うか、あるいは従業員間の人的対話およびクライアントまたはパートナーあるいはその両方との対話を通じて暗黙的に行う。コンテンツおよびプロセスは、組織のビジネスにとって重要である。したがって、それらのプロセスを正式なものにするため、および組織の運営に不可欠な情報の分類と収集を可能にするために、ソフトウェア・システムが使用される。
したがって、組織がビジネスを正常に実行するために必要なアプリケーションの構築において、組織内および組織外で使用できるようにするために、プロセスおよびデータの定義を設計するという要件がある。これは、文書化およびプロセスに当てはまるだけでなく、任意の種類のアーチファクト、または何が組織の中心概念を構成しているかを定義するメタデータにも当てはまる。ソフトウェア・システムにおいてメタデータを取得する方法に関して、バージョン管理された方法およびバージョン管理されない方法という2つの選択肢がある。
バージョン管理されたアプローチでは、特定のアーチファクトの関係および時間順序または進化を記録する。このアプローチは、特定のバージョンがそれぞれシステムの運用にとって重要であり、同じメタデータのその他の変形(すなわち、バージョン)とは無関係にアクセス可能でなければならない場合に役立つ。プロセスは、1つの例である。それらのプロセスは、通常、十分に構造化されたフロー、またはアクティビティ間の関係を定義する。また、プロセスは多くの場合、短時間存続し、同じプロセスの複数のインスタンスが同時に実行されることがある。そのため、各定義は、複数のインスタンスが、予期しない変更または互換性のない変更に起因する失敗のリスクなしに実行し続けることを可能にするバージョン管理されたアプローチから恩恵を受けることができる。同時に、新しいバージョンは、プロセスを改善することができ、すでに進行中のインスタンスに影響を与える危険を冒さずに、新しいインスタンスがその改善から直ちに恩恵を受けることを可能にする。例えば、保険金請求を扱うプロセスは、時間とともに進化できる。新しいバージョンが定義されると、その新しいバージョンを公開することができ、それと同時に、古いバージョンのインスタンスが引き続き実行されて完了する。バージョン管理されたアプローチでは、このような柔軟性が可能になる。
バージョン管理されないアプローチでは、基本的に、メタデータの唯一のバージョンが存在し、メタデータのそのバージョンが時間とともに進化する。コンテンツまたは情報は、このアプローチにより適している可能性がある。文書は、作成されると、通常は長時間存続する。例えば、保険契約定義は、最初に定義されるときに、数個の属性を含むだけでよいが、保険会社のビジネスが成長するにつれて、保険契約によって記録される情報を拡張する必要が生じ、それと同時に、古い保険契約は、古い保険契約を処理する新しいシステムによって引き続きアクセス可能にし、処理されなければならない。プロセス定義とは異なり、文書定義は、通常、ビジネスとともに進化し続ける単一のバージョンから恩恵を受ける。これは、情報マイニングに関して特に当てはまる。文書定義に複数のバージョンがある場合、その文書は検索が難しくなり、相互に関連するインスタンスを基本的に単一の文書定義のものに統合することが困難になる。したがって、唯一の文書定義をシステム内すべての文書間の共通リンクにすることは、重要な属性である。
概念の性質に応じて、定義されていることの一部の態様に関して、いずれのアプローチにも限定が生じる。プロセスによって生成されるデータについて検討する。急速に進化することが予想されるプロセス自体は、プロセスが進化する速度および同時に実行される複数のインスタンスを維持するという関連要件のため、通常は、バージョン管理されたアプローチでのみ実装することができる。ただし、プロセスと関連付けられた情報またはプロパティは、通常、バージョン管理されないアプローチの使用により適している。保険金請求プロセスの例を用いると、プロセスが完了した後(および、プロセスの複数の新しいバージョンがすでに配置された後)に長時間存続する必要のある文書およびデータが生成される場合があるが、同時にその情報は、検索可能で、その情報を作成した単一の保険金請求プロセスに関係付けられていなければならない。一般的に言って、これは、同じコインの裏表と考えることができる。組織のメタデータは、場合によっては、バージョン管理されている(請求を解決するためのプロセス)として振る舞うかアクセスされることが必要になり、それ以外の場合、バージョン管理されていない(進行中または解決済みの請求と関連付けられたデータ)として振る舞うかアクセスされることが必要になる。
米国特許出願公開第US2012/0254828号
バージョン管理されたドメインとバージョン管理されないドメインの間でアーチファクトを相関付けるための方法、プログラム、および装置を提供することである。
一実施形態では、バージョン管理されたドメインとバージョン管理されないドメインの間でアーチファクトを相関付けるためのコンピュータ実装方法は、アーチファクトのセット内の1つのアーチファクトに関して、バージョン管理されたドメインとバージョン管理されないドメインの両方の属性を含んでいるメタデータを生成することであって、このメタデータがバージョン管理されたドメインおよびバージョン管理されないドメインで使用されるアーチファクトのセットと関連付けられる、生成することと、バージョン管理されたアーチファクト定義の特定のバージョンを使用してインスタンスを作成することであって、このインスタンスが、バージョン管理されたアーチファクト定義から直接作成された第1の部分およびバージョン管理されないアーチファクト定義から作成された第2の部分を備える、作成することと、バージョン管理されたドメインおよびバージョン管理されないドメイン内のアーチファクトの各表現間のリンクを指定することであって、指定されたリンクが、バージョン管理されたドメイン内のアーチファクトの複数のバージョン間の関係を、バージョン管理されないドメイン内の同じアーチファクトの単一のバージョン管理されない表現に対して定義する、指定することと、バージョン管理されたドメインまたはバージョン管理されないドメインのいずれかからのアーチファクトのインスタンスの作成、インスタンスの実行、およびインスタンスの更新のうちの選択された1つの実行に使用されるファサードのセットを提供することに応答して、バージョン管理されたドメインまたはバージョン管理されないドメインのいずれかからのアーチファクトのインスタンスの作成、インスタンスの実行、およびインスタンスの更新のうちの選択された1つを受信することであって、アーチファクトのインスタンスの作成、インスタンスの実行、およびインスタンスの更新のうちの選択された1つが、ルールのセットを使用して実行される、受信することと、アーチファクト定義のすべてのバージョンを単一のバージョン管理されない定義に相関付けることであって、単一のバージョン管理されない定義のアーチファクト定義もアーチファクト定義のすべてのバージョンに相関付けられる、相関付けることとを行う。
第1の態様から見ると、本発明はバージョン管理されたドメインとバージョン管理されないドメインの間でアーチファクトを相関付けるためのコンピュータ実装方法を提供し、このコンピュータ実装方法は、アーチファクトのセット内の1つのアーチファクトに関して、バージョン管理されたドメインとバージョン管理されないドメインの両方の属性を含んでいるメタデータを生成することであって、このメタデータがバージョン管理されたドメインおよびバージョン管理されないドメインで使用されるアーチファクトのセットと関連付けられる、生成することと、バージョン管理されたアーチファクト定義の特定のバージョンを使用してインスタンスを作成することであって、このインスタンスが、バージョン管理されたアーチファクト定義から直接作成された第1の部分およびバージョン管理されないアーチファクト定義から作成された第2の部分を備える、作成することと、バージョン管理されたドメインおよびバージョン管理されないドメイン内のアーチファクトの各表現間のリンクを指定することであって、指定されたリンクが、バージョン管理されたドメイン内のアーチファクトの複数のバージョン間の関係を、バージョン管理されないドメイン内の同じアーチファクトの単一のバージョン管理されない表現に対して定義する、指定することと、バージョン管理されたドメインまたはバージョン管理されないドメインのいずれかからのアーチファクトのインスタンスの作成、インスタンスの実行、およびインスタンスの更新のうちの選択された1つの実行に使用されるファサードのセットを提供することに応答して、バージョン管理されたドメインまたはバージョン管理されないドメインのいずれかからのアーチファクトのインスタンスの作成、インスタンスの実行、およびインスタンスの更新のうちの選択された1つを受信することであって、アーチファクトのインスタンスの作成、インスタンスの実行、およびインスタンスの更新のうちの選択された1つが、定義済み検証ルールのセットを使用して実行される、受信することと、アーチファクト定義のすべてのバージョンを単一のバージョン管理されない定義に相関付けることであって、単一のバージョン管理されない定義のアーチファクト定義もアーチファクト定義のすべてのバージョンに相関付けられる、相関付けることとを備える。
好ましくは、本発明は方法を提供し、メタデータを生成することが、一意の識別子(UID:uniqueidentifier)を、バージョン管理された定義のすべてのバージョンおよびバージョン管理されない定義によって共有された不変の構成要素を含んでいるアーチファクトに割り当てることであって、UIDがバージョン管理された<共通UID>_<バージョンID>という第1の形態およびバージョン管理されない<共通UID>という第2の形態で表され、システムが<共通UID>部分を使用して同じアーチファクトのすべてのバージョンおよび関連する単一のバージョン管理されない定義を識別し、UIDが関連するアーチファクトの存続期間を通じて不変である、割り当てることと、属性のファセットから生成することであって、ファセットが、変更された場合に、バージョン管理されないドメイン内の既存のインスタンスとの互換性のない属性と関連付けられたインスタンス・データを作成し、特定のファセットが、定義が存続する間は不変であると判断され、それらの特定のファセットがバージョン管理されたドメイン内で変更された場合に、それらの変更によってシステムが属性を親定義への新規追加であると識別し、UIDがバージョン管理された属性とバージョン管理されない属性の両方によって全体的に共有され、<UID>_<不変のファセット1の値>_<…>_<不変のファセットnの値>という形式で表される、生成することとをさらに備える。
好ましくは、本発明は方法を提供し、この方法では、アーチファクトのインスタンスの作成、インスタンスの実行、およびインスタンスの更新のうちの選択された1つを実行するために使用されるファサードのセットを提供することに応答して、バージョン管理されたファサードおよびバージョン管理されないファサードのいずれかの選択を受信してインスタンス・データを更新することと、バージョン管理されたファサードの選択を受信することに応答して、バージョン管理された定義の特定のバージョンに対して定義された属性およびバージョン管理された定義のこの特定のバージョンの属性に関する定義済み検証ルールのセットにのみアクセスすることと、このファサードに対する更新を、バージョン管理された定義の特定のバージョンに対して直接検証することと、更新が有効であることに応答して、定義のバージョン管理されたインスタンスとバージョン管理されないインスタントの間の同期を維持するために、バージョン管理されないファサードの対応する属性が検索され、同じトランザクションに保存されることと、バージョン管理されないファサードの選択を受信することに応答して、バージョン管理されない定義内の対応する属性へのマッピングに従って、バージョン管理された定義のすべてのバージョンにおいて定義された属性を公開することと、バージョン管理されないファサードを介して行われた変更に応答して、対応するバージョン管理されたファサード内の検索を実行することであって、それらの変更がこの対応するバージョン管理されたファサードにマッピングされ、特定のバージョン管理された定義に従って、定義済み検証ルールのセット内の対応する検証ルールがチェックされる、実行することと、更新の成功に応答して、バージョン管理されたインスタンスおよびバージョン管理されないインスタンスに対する変更を単一のトランザクションに保存することと、更新の失敗に応答して、変更がロールバックされることとをさらに備える。
好ましくは、本発明は方法を提供し、この方法は、バージョン管理されたドメイン内のアーチファクト定義を更新することであって、アーチファクト定義の最新のバージョンnに対するユーザの変更が、ユーザの変更を含んでいる新しいバージョンn+1を作成し、ユーザの変更が追加、削除、および修正のうちのいずれか1つであり、バージョン管理されないアーチファクト定義を同期させるために、ユーザの変更ごとに、バージョン管理されないアーチファクト定義への対応するマッピングが行われる、更新することをさらに備え、アーチファクト定義の属性と関連付けられた定義済み検証ルールのセット内の検証ルールにおける変更に応答して、バージョン管理されないアーチファクト定義に対する更新を行わず、互換性のある方法でバージョン管理されないアーチファクト定義に適用できるファセットの変更に応答して、バージョン管理されない定義内の属性を変更し、互換性のある方法でバージョン管理されないアーチファクト定義に適用できないファセットの変更に応答して、バージョン管理されたアーチファクト定義の属性と関連付けられた定義済み検証ルールのセットを使用して、新しい属性をバージョン管理されない定義に追加する。
好ましくは、本発明は方法を提供し、この方法では、定義済み検証ルールのセットが、アーチファクト定義の属性と関連付けられた1つまたは複数の定義済み検証ルールを含み、定義済み検証ルールのセット内の1つまたは複数のルールが、受信された変更を、更新されたインスタンスがバージョン管理されないインスタンスであるか、バージョン管理されたインスタンスであるかに拘わらず、バージョン管理された定義内の1つまたは複数の定義済み検証ルールを使用して、バージョン管理された定義の特定のバージョンに対して検証する。
好ましくは、本発明は方法を提供し、この方法では、相関付けることが、アーチファクト・レベルでの相関関係の第1のレベルおよび属性レベルでの相関関係の第2のレベルをさらに備え、この相関関係が、一意の識別子を使用してアーチファクトを定義およびインスタンスに適用可能なように関連付ける。
好ましくは、本発明は方法を提供し、この方法では、第1の部分または第2の部分のいずれかの検索を、バージョン管理された定義およびバージョン管理されない定義のすべてのバージョンによって共有される不変の構成要素も共有する第1の部分または第2の部分の残りの1つを使用して実行できる。
有利なことに、本発明は、両方のドメイン内で表された同じアーチファクトの2つのバージョンをリンクし、両方の形態でアクセスされる必要のある手段を提供する。
有利なことに、方法は、アーチファクトの複数のバージョン間の関係を、同じアーチファクトの単一のバージョン管理されない表現に対して定義し、それらの関係を利用して、両者を1つとして動作させる。有利なことに、本発明は、
・ アーチファクト定義のすべてのバージョンと、その単一のバージョン管理されない表現とを相互に関連付け、
・ 特定のアーチファクト定義のバージョンの属性またはプロパティの定義と、バージョン管理されない表現内の属性またはプロパティの定義とを相互に関連付け、
・ バージョン管理されたアーチファクト定義に対する追加、更新、および削除などの編集の意味、および対応するバージョン管理されないアーチファクト定義に適用される編集の意味への変換を定義し、
・ アーチファクトのインスタンスに対して実行される読み取り処理および更新処理の方法を、それらがバージョン管理されたファサードに対して実行されるのか、それともバージョン管理されないファサードに対して実行されるのかに応じて定義し、
・ バージョン管理されたアーチファクトとバージョン管理されないアーチファクトのインスタンス間で、一方または他方が更新されたときにデータ更新が同期される方法を定義し、
・ 属性またはプロパティの検証ルールが定義され、バージョン管理されたファサードまたはバージョン管理されないファサードを介してアーチファクト・インスタンスが更新されたときに評価される方法を定義する。
第2の態様から見ると、本発明はバージョン管理されたドメインとバージョン管理されないドメインの間でアーチファクトを相関付けるためのコンピュータ・プログラム製品を提供し、このコンピュータ・プログラム製品は、具現化されたプログラム命令を含んでいるコンピュータ可読記憶媒体を備え、プロセッサ・ユニットによって実行可能なプログラム命令が、プロセッサ・ユニットに、アーチファクトのセット内の1つのアーチファクトに関して、バージョン管理されたドメインとバージョン管理されないドメインの両方の属性を含んでいるメタデータを生成することであって、このメタデータがバージョン管理されたドメインおよびバージョン管理されないドメイン内で使用されるアーチファクトのセットと関連付けられる、生成することと、バージョン管理されたアーチファクト定義の特定のバージョンを使用してインスタンスを作成することであって、このインスタンスが、バージョン管理されたアーチファクト定義から直接作成された第1の部分およびバージョン管理されないアーチファクト定義から作成された第2の部分を備える、作成することと、バージョン管理されたドメインおよびバージョン管理されないドメイン内のアーチファクトの各表現間のリンクを指定することであって、指定されたリンクが、バージョン管理されたドメイン内のアーチファクトの複数のバージョン間の関係を、バージョン管理されないドメイン内の同じアーチファクトの単一のバージョン管理されない表現に対して定義する、指定することと、バージョン管理されたドメインまたはバージョン管理されないドメインのいずれかからのアーチファクトのインスタンスの作成、インスタンスの実行、およびインスタンスの更新のうちの選択された1つの実行に使用されるファサードのセットを提供することに応答して、バージョン管理されたドメインまたはバージョン管理されないドメインのいずれかからのアーチファクトのインスタンスの作成、インスタンスの実行、およびインスタンスの更新のうちの選択された1つを受信することであって、アーチファクトのインスタンスの作成、インスタンスの実行、およびインスタンスの更新のうちの選択された1つが、定義済み検証ルールのセットを使用して実行される、受信することと、アーチファクト定義のすべてのバージョンを単一のバージョン管理されない定義に相関付けることであって、単一のバージョン管理されない定義のアーチファクト定義もアーチファクト定義のすべてのバージョンに相関付けられる、相関付けることとを実行させる。
好ましくは、本発明はコンピュータ・プログラム製品を提供し、このコンピュータ・プログラム製品では、プロセッサ・ユニットにメタデータを生成させるためにプロセッサ・ユニットによって実行可能なプログラム命令が、プロセッサ・ユニットに、一意の識別子(UID)を、バージョン管理された定義のすべてのバージョンおよびバージョン管理されない定義によって共有された不変の構成要素を含んでいるアーチファクトに割り当てることであって、UIDがバージョン管理された<共通UID>_<バージョンID>という第1の形態およびバージョン管理されない<共通UID>という第2の形態で表され、システムが<共通UID>部分を使用して同じアーチファクトのすべてのバージョンおよび関連する単一のバージョン管理されない定義を識別し、UIDが関連するアーチファクトの存続期間を通じて不変である、割り当てることと、属性のファセットから生成することであって、ファセットが、変更された場合に、バージョン管理されないドメイン内の既存のインスタンスとの互換性のない属性と関連付けられたインスタンス・データを作成し、特定のファセットが、定義が存続する間は不変であると判断され、それらの特定のファセットがバージョン管理されたドメイン内で変更された場合に、それらの変更によってシステムが属性を親定義への新規追加であると識別し、UIDがバージョン管理された属性およびバージョン管理されない属性によって全体的に共有され、<UID>_<不変のファセット1の値>_<…>_<不変のファセットnの値>という形式で表される、生成することとを実行させるために、プロセッサ・ユニットによって実行可能なプログラム命令をさらに備える。
好ましくは、本発明はコンピュータ・プログラム製品を提供し、このコンピュータ・プログラム製品では、アーチファクトのインスタンスの作成、インスタンスの実行、およびインスタンスの更新のうちの選択された1つを実行するために使用されるファサードのセットを提供することに応答して、プロセッサ・ユニットに実行させるようにプロセッサ・ユニットによって実行可能なプログラム命令が、プロセッサ・ユニットに、バージョン管理されたファサードおよびバージョン管理されないファサードの1つの選択を受信してインスタンス・データを更新することと、バージョン管理されたファサードの選択を受信することに応答して、バージョン管理された定義の特定のバージョンに対して定義された属性およびバージョン管理された定義のこの特定のバージョンの属性に関する定義済み検証ルールのセットにのみアクセスすることと、このファサードに対する更新を、バージョン管理された定義の特定のバージョンに対して直接検証することと、更新が有効であることに応答して、定義のバージョン管理されたインスタンスとバージョン管理されないインスタンスの間の同期を維持するために、バージョン管理されないファサードの対応する属性を検索して、同じトランザクションに保存することと、バージョン管理されないファサードの選択を受信することに応答して、バージョン管理されない定義内の対応する属性へのマッピングに従って、バージョン管理された定義のすべてのバージョンにおいて定義された属性を公開することと、バージョン管理されないファサードを介して行われた変更に応答して、対応するバージョン管理されたファサード内の対応する属性を検索することであって、それらの変更がこの対応するバージョン管理されたファサードにマッピングされ、特定のバージョン管理された定義による定義に従って、定義済み検証ルールのセット内の対応する検証ルールがチェックされる、検索することと、更新の成功に応答して、バージョン管理されたインスタンスおよびバージョン管理されないインスタンスに対する変更を単一のトランザクションに保存することと、更新の失敗に応答して、変更をロールバックすることとを実行させるために、プロセッサ・ユニットによって実行可能なプログラム命令をさらに備える。
好ましくは、本発明はコンピュータ・プログラム製品を提供し、このコンピュータ・プログラム製品は、プロセッサ・ユニットに、バージョン管理されたドメイン内のアーチファクト定義を更新することであって、アーチファクト定義の最新のバージョンnに対するユーザの変更が、ユーザの変更を含んでいる新しいバージョンn+1を作成し、ユーザの変更が追加、削除、および修正のうちのいずれか1つであり、バージョン管理されないアーチファクト定義を同期させるために、ユーザの変更ごとに、バージョン管理されないアーチファクト定義への対応するマッピングを行う、更新することを実行させるために、プロセッサ・ユニットによって実行可能なプログラム命令をさらに備え、アーチファクト定義の属性と関連付けられた定義済み検証ルールのセット内の検証ルールにおける変更に応答して、バージョン管理されないアーチファクト定義に対する更新を行わず、互換性のある方法でバージョン管理されないアーチファクト定義に適用できるファセットの変更に応答して、バージョン管理されない定義内の属性を変更し、互換性のある方法でバージョン管理されないアーチファクト定義に適用できないファセットの変更に応答して、バージョン管理されたアーチファクト定義の属性と関連付けられた定義済み検証ルールのセットを使用して、新しい属性をバージョン管理されない定義に追加する。
好ましくは、本発明はコンピュータ・プログラム製品を提供し、このコンピュータ・プログラム製品では、定義済み検証ルールのセットが、アーチファクト定義の属性と関連付けられた1つまたは複数の定義済み検証ルールを含み、定義済み検証ルールのセット内の1つまたは複数のルールが、受信された変更を、更新されたインスタンスがバージョン管理されないインスタンスであるか、バージョン管理されたインスタンスであるかに拘わらず、バージョン管理された定義内の1つまたは複数の定義済み検証ルールを使用して、バージョン管理された定義の特定のバージョンに対して検証する。
好ましくは、本発明はコンピュータ・プログラム製品を提供し、このコンピュータ・プログラム製品では、プロセッサ・ユニットに相関付けを実行させるためにプロセッサ・ユニットによって実行可能なプログラム命令が、プロセッサ・ユニットに、アーチファクト・レベルでの相関関係の第1のレベルおよび属性レベルでの相関関係の第2のレベルで相関付けを実行させるために、プロセッサ・ユニットによって実行可能なプログラム命令をさらに備え、この相関関係が、一意の識別子を使用してアーチファクトを定義およびインスタンスに適用可能なように関連付ける。
好ましくは、本発明はコンピュータ・プログラム製品を提供し、このコンピュータ・プログラム製品は、プロセッサ・ユニットに、バージョン管理された定義のすべてのバージョンおよびバージョン管理されない定義によって共有された不変の構成要素も共有する第1の部分または第2の部分の残りの1つを使用して第1の部分または第2の部分のいずれかの検索を実行させるために、プロセッサ・ユニットによって実行可能なプログラム命令をさらに備える。
第3の態様から見ると、本発明はバージョン管理されたドメインとバージョン管理されないドメインの間でアーチファクトを相関付けるための装置を提供し、この装置は、バスと、このバスに接続され、具現化されたプログラム命令を含んでいるメモリと、プロセッサ・ユニットとを備え、このプロセッサ・ユニットがプログラム命令を実行して、装置に、アーチファクトのセット内の1つのアーチファクトに関して、バージョン管理されたドメインとバージョン管理されないドメインの両方の属性を含んでいるメタデータを生成することであって、このメタデータがバージョン管理されたドメインおよびバージョン管理されないドメイン内で使用されるアーチファクトのセットと関連付けられる、生成することと、バージョン管理されたアーチファクト定義の特定のバージョンを使用してインスタンスを作成することであって、このインスタンスが、バージョン管理されたアーチファクト定義から直接作成された第1の部分およびバージョン管理されないアーチファクト定義から作成された第2の部分を備える、作成することと、バージョン管理されたドメインおよびバージョン管理されないドメイン内のアーチファクトの各表現間のリンクを指定することであって、指定されたリンクが、バージョン管理されたドメイン内のアーチファクトの複数のバージョン間の関係を、バージョン管理されないドメイン内の同じアーチファクトの単一のバージョン管理されない表現に対して定義する、指定することと、バージョン管理されたドメインまたはバージョン管理されないドメインのいずれかからのアーチファクトのインスタンスの作成、インスタンスの実行、およびインスタンスの更新のうちの選択された1つの実行に使用されるファサードのセットを提供することに応答して、バージョン管理されたドメインまたはバージョン管理されないドメインのいずれかからのアーチファクトのインスタンスの作成、インスタンスの実行、およびインスタンスの更新のうちの選択された1つを受信することであって、アーチファクトのインスタンスの作成、インスタンスの実行、およびインスタンスの更新のうちの選択された1つが、定義済み検証ルールのセットを使用して実行される、受信することと、アーチファクト定義のすべてのバージョンを単一のバージョン管理されない定義に相関付けることであって、単一のバージョン管理されない定義のアーチファクト定義もアーチファクト定義のすべてのバージョンに相関付けられる、相関付けることとを実行させる。
好ましくは、本発明は装置を提供し、この装置では、プロセッサ・ユニットが装置にメタデータを生成させるためにプログラム命令を実行し、装置に、一意の識別子(UID)を、バージョン管理された定義のすべてのバージョンおよびバージョン管理されない定義によって共有された不変の構成要素を含んでいるアーチファクトに割り当てることであって、UIDがバージョン管理された<共通UID>_<バージョンID>という第1の形態およびバージョン管理されない<共通UID>という第2の形態で表され、システムが<共通UID>部分を使用して同じアーチファクトのすべてのバージョンおよび関連する単一のバージョン管理されない定義を識別し、UIDが関連するアーチファクトの存続期間を通じて不変である、割り当てることと、属性のファセットから生成することであって、ファセットが、変更された場合に、バージョン管理されないドメイン内の既存のインスタンスとの互換性のない属性と関連付けられたインスタンス・データを作成し、特定のファセットが、定義が存続する間は不変であると判断され、それらの特定のファセットがバージョン管理されたドメイン内で変更された場合に、それらの変更によってシステムが属性を親定義への新規追加であると識別し、UIDがバージョン管理された属性およびバージョン管理されない属性によって全体的に共有され、<UID>_<不変のファセット1の値>_<…>_<不変のファセットnの値>という形式で表される、生成することとをさらに実行させる。
好ましくは、本発明は装置を提供し、この装置では、アーチファクトのインスタンスの作成、インスタンスの実行、およびインスタンスの更新のうちの選択された1つを実行するために使用されるファサードのセットを提供することに応答して、装置に実行させるようにプロセッサ・ユニットがプログラム命令を実行し、装置に、バージョン管理されたファサードおよびバージョン管理されないファサードの1つの選択を受信してインスタンス・データを更新することと、バージョン管理されたファサードの選択を受信することに応答して、バージョン管理された定義の特定のバージョンに対して定義された属性およびバージョン管理された定義のこの特定のバージョンの属性に関する定義済み検証ルールのセットにのみアクセスすることと、このファサードに対する更新を、バージョン管理された定義の特定のバージョンに対して直接検証することと、更新が有効であることに応答して、定義のバージョン管理されたインスタンスとバージョン管理されないインスタンスの間の同期を維持するために、バージョン管理されないファサードの対応する属性を検索して、同じトランザクションに保存することと、バージョン管理されないファサードの選択を受信することに応答して、バージョン管理されない定義内の対応する属性へのマッピングに従って、バージョン管理された定義のすべてのバージョンにおいて定義された属性を公開することと、バージョン管理されないファサードを介して行われた変更に応答して、対応するバージョン管理されたファサード内の属性の検索を実行することであって、それらの変更がこの対応するバージョン管理されたファサードにマッピングされ、特定のバージョン管理された定義による定義に従って、定義済み検証ルールのセット内の対応する検証ルールがチェックされる、実行することと、更新の成功に応答して、バージョン管理されたインスタンスおよびバージョン管理されないインスタンスに対する変更を単一のトランザクションに保存することと、更新の失敗に応答して、変更をロールバックすることとをさらに実行させる。
好ましくは、本発明は装置を提供し、この装置では、プロセッサ・ユニットがプログラム命令を実行して、装置に、バージョン管理されたドメイン内のアーチファクト定義を更新することであって、アーチファクト定義の最新のバージョンnに対するユーザの変更が、ユーザの変更を含んでいる新しいバージョンn+1を作成し、ユーザの変更が追加、削除、および修正のいずれかであり、バージョン管理されないアーチファクト定義を同期させるために、ユーザの変更ごとに、バージョン管理されないアーチファクト定義への対応するマッピングが行われる、更新することをさらに実行させ、アーチファクト定義の属性と関連付けられた定義済み検証ルールのセット内の検証ルールにおける変更に応答して、バージョン管理されないアーチファクト定義に対する更新を行わず、互換性のある方法でバージョン管理されないアーチファクト定義に適用できるファセットの変更に応答して、バージョン管理されない定義内の属性を変更し、互換性のある方法でバージョン管理されないアーチファクト定義に適用できないファセットの変更に応答して、バージョン管理されたアーチファクト定義の属性と関連付けられた定義済み検証ルールのセットを使用して、新しい属性をバージョン管理されない定義に追加する。
好ましくは、本発明は装置を提供し、この装置では、定義済み検証ルールのセットが、アーチファクト定義の属性と関連付けられた1つまたは複数の定義済み検証ルールを含み、定義済み検証ルールのセット内の1つまたは複数のルールが、受信された変更を、更新されたインスタンスがバージョン管理されないインスタンスであるか、バージョン管理されたインスタンスであるかに拘わらず、バージョン管理された定義内の1つまたは複数の定義済み検証ルールを使用して、バージョン管理された定義の特定のバージョンに対して検証する。
好ましくは、本発明は装置を提供し、この装置では、プロセッサ・ユニットがプログラム命令を実行して装置に相関付けを実行させ、アーチファクト・レベルでの相関関係の第1のレベルおよび属性レベルでの相関関係の第2のレベルで相関付けることを装置にさらに実行させ、この相関関係が、一意の識別子を使用してアーチファクトを定義およびインスタンスに適用可能なように関連付ける。
次に、以下の図面を例としてのみ参照し、本発明の好ましい実施形態について説明する。
本開示のさまざまな実施形態で動作可能な、ネットワーク・データ処理システムの例のブロック図である。 本開示のさまざまな実施形態で動作可能な、データ処理システムの例のブロック図である。 本開示のさまざまな実施形態で動作可能な、バージョン管理されたシステムのブロック図である。 本開示のさまざまな実施形態で動作可能な、新しいバージョンをバージョン管理されたシステムに作成するプロセスのフローチャートである。 本開示の1つの実施形態に記載された、本開示のさまざまな実施形態で動作可能な、バージョン管理されないシステムのブロック図である。 本開示のさまざまな実施形態で動作可能な、バージョン管理されないシステム内の定義を変更するプロセスのフローチャートである。 本開示のさまざまな実施形態で動作可能な、ハイブリッド・システムのブロック図である。 本開示のさまざまな実施形態で動作可能な、ハイブリッド・システムのブロック図である。 本開示のさまざまな実施形態で動作可能な、新しい定義のバージョンをハイブリッド・システムのバージョン管理されないシステム部分に作成するフローチャートである。 本開示のさまざまな実施形態で動作可能な、ハイブリッド・システム内のバージョン管理された定義から作成されたインスタンス部分に対してプロパティを変更するフローチャートである。 本開示のさまざまな実施形態で動作可能な、ハイブリッド・システム内のバージョン管理されない定義から作成されたインスタンス部分に対してプロパティを変更するフローチャートである。 本開示のさまざまな実施形態で動作可能な、ハイブリッド・システム内のバージョン管理されたドメインとバージョン管理されないドメインの間でアーチファクトを相関付けるためのプロセスのフローチャートである。
1つまたは複数の実施形態の実装例が以下で説明されるが、開示されたシステムまたは方法あるいはその両方は、任意の数の手法を使用して実装されてもよい。本開示は、本明細書で説明および記載された設計と実装の例を含む以下で説明される実装例、図面、および手法に全く限定されず、添付された特許請求の範囲内およびそれと同等のものの全範囲内で変更されてもよい。
当業者によって理解されるように、本開示の態様は具現化することができ、その具現化において本発明は、システム、方法、またはコンピュータ・プログラム製品あるいはこれらの組合せであってもよい。コンピュータ・プログラム製品は、プロセッサに本発明の態様を実行させるためのコンピュータ可読プログラム命令を含んでいるコンピュータ可読記憶媒体を含むことができる。
コンピュータ可読記憶媒体は、命令実行デバイスによって使用するための命令を保持および格納できる有形のデバイスにすることができる。コンピュータ可読記憶媒体は、例えば、電子ストレージ・デバイス、磁気ストレージ・デバイス、光ストレージ・デバイス、電磁ストレージ・デバイス、半導体ストレージ・デバイス、またはこれらの任意の適切な組合せにすることができるが、これらに限定されない。コンピュータ可読記憶媒体のさらに具体的な例の非網羅的リストは、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ(RAM:random access memory)、読み取り専用メモリ(ROM:read-onlymemory)、消去可能プログラマブル読み取り専用メモリ(EPROM:erasableprogrammable read-only memoryまたはフラッシュ・メモリ)、スタティック・ランダム・アクセス・メモリ(SRAM:static random access memory)、ポータブル・コンパクト・ディスク読み取り専用メモリ(CD−ROM:portable compact disc read-only memory)、デジタル多用途ディスク(DVD:digital versatile disk)、メモリ・スティック、フロッピー(R)・ディスク、パンチカードまたは命令が記録されている溝の中の隆起構造などの機械的にエンコードされるデバイス、およびこれらの任意の適切な組合せを含む。本明細書において使用されているコンピュータ可読記憶媒体は、本質的に、電波またはその他の自由に伝搬する電磁波、導波管またはその他の送信媒体を伝搬する電磁波(例えば、光ファイバ・ケーブルを通過する光パルス)、あるいはワイヤを介して送信される電気信号などの一時的信号であると解釈されるべきではない。
本明細書に記載されたコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体から各コンピューティング・デバイス/処理デバイスへ、またはネットワーク(例えば、インターネット、ローカル・エリア・ネットワーク、広域ネットワーク、または無線ネットワークあるいはこれらの組合せ)を介して外部コンピュータまたは外部ストレージ・デバイスへダウンロードすることができる。このネットワークは、銅伝送ケーブル、光伝送ファイバ、無線送信、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、またはエッジ・サーバあるいはこれらの組合せを備えることができる。各コンピューティング・デバイス/処理デバイス内のネットワーク・アダプタ・カードまたはネットワーク・インターフェイスは、コンピュータ可読プログラム命令をネットワークから受信し、それらのコンピュータ可読プログラム命令を各コンピューティング・デバイス/処理デバイス内のコンピュータ可読記憶媒体に格納するために転送する。
本発明の処理を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ(ISA)命令、マシン命令、マシン依存命令、マイクロコード、ファームウェア命令、状態設定データ、あるいは、Smalltalk(R)、C++などのオブジェクト指向プログラミング言語、および「C」プログラミング言語または同様のプログラミング言語などの従来の手続き型プログラミング言語を含む1つまたは複数のプログラミング言語の任意の組合せで記述されたソース・コードまたはオブジェクト・コードにすることができる。コンピュータ可読プログラム命令は、ユーザのコンピュータ上で全体的に実行すること、ユーザのコンピュータ上でスタンドアロン・ソフトウェア・パッケージとして部分的に実行すること、ユーザのコンピュータ上およびリモート・コンピュータ上でそれぞれ部分的に実行すること、あるいはリモート・コンピュータ上またはサーバ上で全体的に実行することができる。後者のシナリオでは、リモート・コンピュータを、ローカル・エリア・ネットワーク(LAN:local area network)または広域ネットワーク(WAN:wide areanetwork)を含む任意の種類のネットワークを介してユーザのコンピュータに接続することができ、または接続を、(例えば、インターネット・サービス・プロバイダを使用してインターネットを介して)外部コンピュータに対して行うことができる。一部の実施形態では、本発明の態様を実行するために、例えばプログラマブル論理回路、フィールド・プログラマブル・ゲート・アレイ(FPGA:field-programmable gate arrays)、またはプログラマブル・ロジック・アレイ(PLA)を含む電子回路は、電子回路をカスタマイズするために、コンピュータ可読プログラム命令の状態情報を利用することによって、コンピュータ可読プログラム命令を実行できる。
本発明の態様は、本明細書において、本発明の実施形態に記載された方法、装置(システム)、およびコンピュータ・プログラム製品のフローチャート図またはブロック図あるいはその両方を参照して説明される。フローチャート図またはブロック図あるいはその両方の各ブロック、ならびにフローチャート図またはブロック図あるいはその両方に含まれるブロックの組合せは、コンピュータ可読プログラム命令によって実装できると理解されるであろう。
これらのコンピュータ可読プログラム命令は、コンピュータまたはその他のプログラマブル・データ処理装置のプロセッサを介して実行される命令が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックにおいて規定された機能/動作を実装するための手段を構築するように、汎用コンピュータ、専用コンピュータ、またはその他のプログラマブル・データ処理装置のプロセッサに提供され、マシンを生成するものであってよい。これらのコンピュータ可読プログラム命令は、命令が格納されたコンピュータ可読記憶媒体が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックにおいて規定された機能/動作の態様を実装する命令を含む製造品を備えるように、コンピュータ可読記憶媒体に格納され、コンピュータ、プログラマブル・データ処理装置、またはその他のデバイスあるいはこれらの組合せに特定の方法で機能するように指示するものであってもよい。
コンピュータ可読プログラム命令は、コンピュータ、その他のプログラマブル装置、またはその他のデバイス上で実行される命令が、フローチャートまたはブロック図あるいはその両方の1つまたは複数のブロックにおいて規定された機能/動作を実装するように、コンピュータ実装プロセスを生成するべく、コンピュータ、その他のプログラマブル・データ処理装置、またはその他のデバイス上にロードされ、コンピュータ、その他のプログラマブル装置、またはその他のデバイス上で一連の動作ステップを実行させるものであってもよい。
図内のフローチャートおよびブロック図は、本発明のさまざまな実施形態に記載されているシステム、方法、およびコンピュータ・プログラム製品の可能な実装のアーキテクチャ、機能、および処理を示す。これに関連して、フローチャートまたはブロック図内の各ブロックは、規定された論理機能を実装するための1つまたは複数の実行可能な命令を備える、命令のモジュール、セグメント、または部分を表すことができる。一部の代替実施形態では、ブロックに示された機能は、図に示された順序とは異なる順序で発生させることができる。例えば、実際、連続して示された2つのブロックは、含まれている機能に応じて、実質的に同時に実行するか、または場合によっては逆の順序で実行することができる。ブロック図またはフローチャート図あるいはその両方の各ブロック、ならびにブロック図またはフローチャート図あるいはその両方に含まれるブロックの組合せは、規定された機能または動作を実行するか、または専用ハードウェアとコンピュータ命令の組合せを実行する専用ハードウェアベースのシステムによって実装できるということにも注意する。
ここで図を参照し、特に図1〜2を参照すると、データ処理環境の例の図が示されており、この環境内で実施形態例を実装することができる。図1〜2は単なる例であり、さまざまな実施形態を実装できる環境に関して、どのような限定も主張または意味することを意図していないと理解されるべきである。図に示された環境に対して、多くの変更を行ってもよい。
図1は、実施形態例を実装できるデータ処理システムのネットワークの図解表現を示している。ネットワーク・データ処理システム100は、実施形態例を実装できるコンピュータのネットワークである。ネットワーク・データ処理システム100は、ネットワーク・データ処理システム100内で一緒に接続されているさまざまなデバイスとコンピュータの間の通信リンクを提供するために使用される媒体である、ネットワーク102を含んでいる。ネットワーク102は、ワイヤ、無線通信リンク、または光ファイバ・ケーブルなどの接続を含んでもよい。
図に示された例では、サーバ104およびサーバ106が、ストレージ・ユニット108とともにネットワーク102に接続されている。加えて、クライアント110、112、および114がネットワーク102に接続されている。例えば、クライアント110、112、および114は、パーソナル・コンピュータまたはネットワーク・コンピュータであってもよい。図に示された例では、サーバ104は、ブートファイル、オペレーティング・システム・イメージ、およびアプリケーションなどのデータを、クライアント110、112、および114に提供する。クライアント110、112、および114は、サーバ104に接続されたクライアントであり、ネットワーク102を介して、この例を使用してさらに説明されるバージョン管理されたドメインおよびバージョン管理されないドメインに適用できるデータ構造、ルール、および定義を含んでいるハイブリッド・システム116にアクセスできる。ネットワーク・データ処理システム100は、図に示されていない追加のサーバ、クライアント、およびその他のデバイスを含んでもよい。
図に示された例では、ネットワーク・データ処理システム100は、相互に通信するための一連のプロトコルの送信制御プロトコル/インターネット・プロトコル(TCP/IP)スイートを使用する世界全体のネットワークとゲートウェイの集合を表す、ネットワーク102を含むインターネットである。インターネットの中心には、主要なノード間またはホスト・コンピュータ間を接続する高速データ通信ラインのバックボーンがあり、データおよびメッセージをルーティングする多くの商用のコンピュータ・システム、政府機関のコンピュータ・システム、教育機関のコンピュータ・システム、およびその他のコンピュータ・システムで構成されている。当然、ネットワーク・データ処理システム100は、例えばインターネット、ローカル・エリア・ネットワーク(LAN)、または広域ネットワーク(WAN)などの、多数の各種ネットワークとして実装されてもよい。図1は、例を示すことを意図しており、さまざま実施形態例に関する構造的限定を示すことを意図していない。
図2を参照すると、本開示のさまざまな実施形態で動作可能な、データ処理システムの例のブロック図が示されている。この例では、データ処理システム200は、プロセッサ・ユニット204、メモリ206、永続的ストレージ208、通信ユニット210、入出力(I/O:input/output)ユニット212、およびディスプレイ214の間の通信を提供する通信ファブリック202を含んでいる。
プロセッサ・ユニット204は、メモリ206に読み込むことができるソフトウェアの命令を実行する役目を果たす。プロセッサ・ユニット204は、特定の実装に応じて、1つまたは複数のプロセッサのセットであってもよく、マルチプロセッサ・コアであってもよい。さらに、プロセッサ・ユニット204は、単一チップ上にメイン・プロセッサが二次プロセッサとともに存在する、1つまたは複数の異種プロセッサ・システムを使用して実装されてもよい。別の例として、プロセッサ・ユニット204は、同じ種類の複数のプロセッサを含んでいる対称型マルチプロセッサ・システムであってもよい。
メモリ206および永続的ストレージ208は、ストレージ・デバイス216の例である。ストレージ・デバイスは、例えばデータ、機能的形態でのプログラム・コード、またはその他の適切な情報あるいはこれらの組合せなどの、ただしこれらに限定されない情報を、一時的にまたは永続的にあるいはその両方で格納できるハードウェアの任意の部分である。これらの例では、メモリ206は、例えば、ランダム・アクセス・メモリあるいは任意のその他の適切な揮発性または不揮発性ストレージ・デバイスであってもよい。永続的ストレージ208は、特定の実装に応じて、さまざまな形態をとることができる。例えば、永続的ストレージ208は、1つまたは複数の構成要素またはデバイスを含むことができる。例えば、永続的ストレージ208は、ハード・ドライブ、フラッシュ・メモリ、書き換え可能光ディスク、書き換え可能磁気テープ、またはこれらの組合せであってもよい。永続的ストレージ208によって使用される媒体は、取り外し可能であってもよい。例えば、取り外し可能ハード・ドライブを、永続的ストレージ208に使用できる。
これらの例において、通信ユニット210は、他のデータ処理システムまたはデバイスとの通信を提供する。これらの例において、通信ユニット210は、ネットワーク・インターフェイス・カードである。通信ユニット210は、物理的通信リンクまたは無線通信リンクのいずれか、あるいはその両方を使用して通信を提供できる。
入出力ユニット212は、データ処理システム200に接続される可能性のある他のデバイスとのデータの入力および出力を可能にする。例えば、入出力ユニット212は、キーボード、マウス、またはその他の適切な入力デバイスあるいはこれらの組合せを介したユーザ入力のための接続を提供できる。さらに、入出力ユニット212は、出力をプリンタに送信できる。ディスプレイ214は、情報をユーザに表示するためのメカニズムを提供する。
オペレーティング・システム、アプリケーション、またはプログラムあるいはこれらの組合せのためのコンピュータ実行可能な形態またはコンピュータ読み取り可能な形態での命令は、通信ファブリック202を介してプロセッサ・ユニット204と通信するストレージ・デバイス216内に配置できる。これらの例では、命令は、永続的ストレージ208上に機能的形態で存在する。これらの命令は、プロセッサ・ユニット204によって実行するために、メモリ206に読み込むことができる。さまざまな実施形態のプロセスは、メモリ206などのメモリ内に配置できるコンピュータ実装命令を使用してプロセッサ・ユニット204によって実行できる。
これらの命令は、プロセッサ・ユニット204内のプロセッサによって読み取って実行できるプログラム・コード、コンピュータ使用可能プログラム・コード、またはコンピュータ可読プログラム・コードと呼ばれる。さまざまな実施形態におけるプログラム・コードは、メモリ206または永続的ストレージ208などの、異なる物理的なまたは有形のコンピュータ可読記憶媒体上で具現化されてもよい。
プログラム・コード218は、選択的に取り外すことができるコンピュータ可読記憶媒体220上に機能的形態で配置され、プロセッサ・ユニット204によって実行するために、データ処理システム200に読み込むか、または転送することができる。これらの例では、プログラム・コード218およびコンピュータ可読記憶媒体220が、コンピュータ・プログラム製品222を形成する。一例を挙げると、コンピュータ可読記憶媒体220は、例えば、ドライブに挿入または配置される光ディスクまたは磁気ディスク、あるいは、永続的ストレージ208の一部であるハード・ドライブなどのストレージ・デバイスに転送するための永続的ストレージ208の一部であるその他のデバイスなどの有形の形態で存在してもよい。有形の形態において、コンピュータ可読記憶媒体220は、データ処理システム200に接続されたハード・ドライブ、サム・ドライブ、またはフラッシュ・メモリなどの、永続的ストレージの形態をとってもよい。コンピュータ可読記憶媒体220の有形の形態は、コンピュータ記録可能記憶媒体またはコンピュータ可読データ・ストレージ・デバイスとも呼ばれる。一部の例では、コンピュータ可読記憶媒体220は、取り外し不可能であってもよい。現在の例を使用すると、プログラム・コード218は、図1のハイブリッド・システム116の実施形態の実装において、コンピュータ実装命令を備える。
あるいは、プログラム・コード218は、通信ユニット210への通信リンクを介して、または入出力ユニット212への接続を介して、あるいはその両方を介して、コンピュータ可読記憶媒体220からデータ処理システム200に転送できる。この例において、通信リンクまたは接続あるいはその両方は、物理的または無線であってもよい。
一部の実施形態例では、プログラム・コード218は、データ処理システム200内で使用するために、ネットワークを経由して別のデバイスまたはデータ処理システムから永続的ストレージ208にダウンロードできる。例えば、サーバ・データ処理システム内のコンピュータ可読データ・ストレージ・デバイスに格納されるプログラム・コードは、ネットワークを経由してサーバからデータ処理システム200にダウンロードできる。プログラム・コード218を提供するデータ処理システムは、サーバ・コンピュータ、クライアント・コンピュータ、またはプログラム・コード218を格納および送信できるその他のデバイスであってもよい。
図2のデータ処理システム200を例として使用すると、バージョン管理されたドメインとバージョン管理されないドメインの間でアーチファクトを相関付けるためのコンピュータ実装プロセスが示されている。プロセッサ・ユニット204は、アーチファクトのセット内のアーチファクトに関して、バージョン管理されたドメインとバージョン管理されないドメインの両方の属性を含んでいるメタデータを生成し、このメタデータは、バージョン管理されたドメインおよびバージョン管理されないドメイン内で使用されるアーチファクトのセットと関連付けられる。プロセッサ・ユニット204は、バージョン管理されたアーチファクト定義の特定のバージョンを使用してインスタンスを作成し、このインスタンスは、バージョン管理されたアーチファクト定義から直接作成された第1の部分およびバージョン管理されないアーチファクト定義から作成された第2の部分を備える。
プロセッサ・ユニット204は、バージョン管理されたドメインおよびバージョン管理されないドメイン内のアーチファクトの各表現間のリンクを指定し、指定されたリンクは、バージョン管理されたドメイン内のアーチファクトの複数のバージョン間の関係を、バージョン管理されないドメイン内の同じアーチファクトの単一のバージョン管理されない表現に対して定義する。プロセッサ・ユニット204はさらに、バージョン管理されたドメインまたはバージョン管理されないドメインのいずれかからのアーチファクトのインスタンスの作成、インスタンスの実行、およびインスタンスの更新のうちの選択された1つを実行するために使用されるファサードのセットを提供することに応答して、バージョン管理されたドメインまたはバージョン管理されないドメインのいずれかからのアーチファクトのインスタンスの作成、インスタンスの実行、およびインスタンスの更新のうちの選択された1つを受信し、アーチファクトのインスタンスの作成、インスタンスの実行、およびインスタンスの更新のうちの選択された1つは、ルールのセットを使用して実行される。プロセッサ・ユニット204は、アーチファクト定義のすべてのバージョンを、単一のバージョン管理されない定義に相関付け、単一のバージョン管理されない定義のアーチファクト定義も、アーチファクト定義のすべてのバージョンに相関付けられる。
図3を参照すると、本開示のさまざまな実施形態で動作可能な、バージョン管理されたシステムのブロック図が示されている。図3は、定義バージョンを含んでいるバージョン管理されたシステム300の形態での図1のハイブリッド・システム116の一部、および2つの異なるアーチファクトの関連するインスタンスを例として示している。
バージョン管理された使用法およびバージョン管理されない使用法の組合せを処理するために提案されたシステムの例が、米国特許出願公開第US2012/0254828号に記載されており、それにおいて実装は、システムに配置できる可能性のあるバージョンごとにすべてのデータ・モデルの結合を維持する単一集約モデルの作成に依存している。この単一集約モデルは、提供されているデバイス・バージョンに基づいてシステムの動作を適応させるために、配置時および実行時に使用される。実行時に、システムはデータの単一のバージョンで動作するが、集約モデルを使用してデータの単一のバージョンを操作する方法を理解している。ただし、開示されたシステムは、同じデータのバージョン管理されないインスタンスに対する関係を維持しない。したがって、集約モデルは、システムに配置されたすべてのバージョンを一般的に操作するための方法にすぎない。
前述の特許出願公開とは対照的に、本開示の実施形態は、一意の識別子を使用して、モデル/インスタンス・データのバージョンを1つのバージョン管理されないモデル/インスタンス・データに相関付ける方法を定義する。本開示の実施形態は、この関係を維持するために、第3のモデルを使用しない。バージョン管理されないドメインとバージョン管理されたドメインの間で暗黙の関係が定義され、それぞれアーチファクト定義(設計時または開発時の表現)およびインスタンス・データ(実行時の表現)の両方で構成される。これらのドメインは、システムによって同時に維持される。本開示の実施形態は、いずれかのドメイン上で、設計時の定義の変更、および実行時のインスタンス・データの操作に適用できるルールも定義する。
設計(開発)時に、バージョン管理されたドメイン上のすべての定義が、バージョン管理されないドメイン内の対応する定義と互換性を持つことを保証するために、(バージョン管理されたおよびバージョン管理されない)モデル定義に対して相関付け処理が実行される。言い換えると、各ドメインに対応するインスタンス・データを同じ方法で表現できることを保証する。本開示の実施形態は、バージョン管理された定義に対する対応する変更に基づいて、バージョン管理されない定義に変更を適用するために、ルールを定義する。
実行時に、本開示の実施形態は、対応するバージョン管理された定義およびバージョン管理されない定義によって裏付けられた、バージョン管理されたインスタンス・データとバージョン管理されないインスタンス・データを相関付けるための方法を定義し、バージョン管理されたインスタンス・データおよびバージョン管理されないインスタンス・データの読み取りおよび書き込みの目的で、両方のインスタンス・データが並行して共存する。つまり、本開示の実施形態は、バージョン管理されたインスタンス・データの読み取りと書き込みを行うためのファサード、およびバージョン管理されないインスタンス・データの読み取りと書き込みを行うための別のファサードの両方を定義する。加えて、本開示の実施形態は、バージョン管理されたデータに適用された更新がバージョン管理されないデータに伝搬される方法に関するルール、およびバージョン管理されないデータに適用された更新がバージョン管理されたデータに伝搬される方法に関するルールを定義する。最後に、本開示の実施形態は、制約が定義され、バージョン管理されたインスタンス・データまたはバージョン管理されないインスタンス・データが更新されたとき適用される方法を定義する。
情報およびアクティビティの集合として、ケースが定義される。各アクティビティは、ケース・フォルダ内の文書およびケース・フォルダのプロパティとして、プロセス定義および情報に記録される。
プロセスは、前に述べた理由により、バージョン管理される。プロセスは、既存のインスタンスを壊すことなく、短時間で進化する必要がある。したがって、バージョンによる分離は、アプリケーションが問題なく進歩することを可能にする。一方、ケースに関連する情報は、長時間存続する。この情報のすべてのインスタンスは、フォルダまたは文書クラスの形態でのその構造の単一の定義に関連付けられる。
本開示の実施形態は、バージョン管理された属性およびバージョン管理されない属性の両方を含んでいる統一モデルを実現する。バージョン管理されたシステムは、時系列でアーチファクトの定義の進化を記録できる。バージョン管理されたシステムは、通常、これらのバージョンの時間的順序を記録する。そのため、バージョン管理されたシステムは、本質的には、定義を進化させる手段として、ただし、さらに重要なことには、特定の以前の定義と関連付けられたインスタンスを別のより新しい定義の構造に移行するための方法として、あるバージョンから別のバージョンへの変更を比較してマージするために必要な要素を提供する。バージョン管理されたシステムは、通常はバージョンの時間的順序を記録するが、あるバージョンから別のバージョンへの変更の比較およびマージは時間的順序に依存しないため、属性のマージは、バージョンの時間的順序を考慮せずに実行されてもよい。
メタデータは別として、上で概説したように、バージョン管理されたシステムは、アーチファクトの定義のインスタンスの分離も提供する。つまり、システムは、アーチファクトの特定のバージョンをインスタンス化することができ、インスタンス化されたアーチファクトの特定のバージョンは、同じアーチファクトの他のバージョンのインスタンスと共存する。この分離は、例えば同じ請求プロセスの2つのバージョンを、互いに干渉することなく同じシステム内で実行できるようにする。この場合も、新しいバージョンは、分離によって分けられているため、システム内の既存のインスタンスへのリスクなしに、作成して実行することができる。
図3の略語において、DIDは定義識別子を表し、Vはバージョン識別子を表し、IIDはインスタンス識別子を表す。バージョン管理された定義302およびバージョン管理されたインスタンス304を含んでいるストレージ・デバイス(例えば、図1のストレージ・ユニット108)は、別々のユニットとして示されているが、定義のバージョンおよび関連するインスタンスは、同じストレージ・デバイス(例えば、リレーショナル・データベース)上に容易に格納することができる。
バージョン1〜3を含んでいる第1の定義識別子と関連付けられたバージョン管理された定義は、識別子DID 1 V1 306、DID 1 V2 308、およびDID 1、V3 310として示されている。同様に、やはり複数のバージョン1〜3を含んでいる第2の定義識別子と関連付けられた定義は、識別子DID 2 V1 312、DID 2 V2 314、およびDID 2、V3 316として示されている。
この例におけるインスタンスは、インスタンス識別子IID 1 318、IID 2 320、IID 3 322、およびIID 4 324として定義されている。インスタンスは、特定の定義のバージョンから作成される。現在の例では、識別子IID 1 318、IID 2 320、IID 3 322と関連付けられたインスタンスは、識別子DID 1 V2 308、DID 1 V3 310、およびDID 1 V2 308と関連付けられた特定の定義のバージョンをそれぞれ使用して作成され、識別子IID 4 324と関連付けられたインスタンスは、識別子DID 2 V3 316と関連付けられた特定の定義のバージョンを使用して作成される。特定の定義のバージョンと、各定義のバージョンを使用して作成されたインスタンスとの間の関連付けが、点線を使用して図に示されている。
図4を参照すると、本開示のさまざまな実施形態で動作可能な、新しいバージョンをバージョン管理されたシステムに作成するプロセスのフローチャートが示されている。図4は、図1のハイブリッド・システム116の一部を使用するプロセスを、図3のバージョン管理されたシステム300の形態で、上位レベルからの視点において示している。
新しいバージョンを作成する場合、プロセス400に示された以下の処理で、アーチファクトの定義の新しいバージョンを作成する必要がある。新しいバージョンを作成できるということは、システムも、バージョン間の関係を維持できるということを意味している。
プロセス400が開始され(ステップ402)、バージョン管理されたシステム(図3のバージョン管理されたシステム300など)の最新のバージョンnを使用する(ステップ404)。バージョン管理された定義のバージョンnに対する変更が受信される(ステップ406)。受信された変更は、バージョン管理されたシステムの最新のバージョンnに適用され、バージョン管理された定義のバージョンn+1を作成する(ステップ408)。生成された出力は、バージョン管理された定義のバージョンn+1の形態になり(ステップ410)、その後プロセスが終了する(ステップ412)。
最終的に、バージョン管理されたシステムはインスタンスの移行を可能にする。インスタンスの移行では、新しい(ターゲット)定義バージョンを使用して実行するために、バージョンnなどのソース・バージョン、およびバージョンn+1などのターゲット・バージョンという2つのバージョンを比較して、ソース・バージョンのインスタンスを適応させるようにデータを変形する方法を決定する必要がある。インスタンスの移行は通常、困難であり、バージョン間の変更の種類によっては、不可能な場合もある。
図5を参照すると、本開示のさまざまな実施形態で動作可能な、バージョン管理されないシステムのブロック図が示されている。図5は、バージョン管理されない定義を含んでいるバージョン管理されないシステム500の形態での図1のハイブリッド・システム116の一部、および2つの異なるアーチファクトの関連するインスタンスを例として示している。
したがって、バージョン管理によって、実行に影響を与えずに頻繁な配置と進化が可能になるが、バージョン管理は、さまざまなバージョンから生成されたインスタンスの集合によって記録されたデータの統合された見方を維持するために必要なものが不足している。反対に、バージョン管理されないシステムは極めて単純である。バージョン管理されないシステムでは、アーチファクトの定義は1つのみである。この定義は、変更を定義に導入することによって、時間とともに進化する。ただし、ユーザが時間に伴うアーチファクトの発達を確認できるようにするチェックポイントまたはバージョンの概念もない。バージョン管理されないシステムでは、アーチファクトのすべてのインスタンスは、単一の定義に関連付けられる。バージョン管理されないシステム500は、バージョン管理されないシステムの構造を示している。
図5の略語において、DIDは定義識別子を表し、IIDはインスタンス識別子を表す。バージョン管理されない定義502およびインスタンス504を含んでいるストレージ・デバイス(例えば、図1のストレージ・ユニット108)は、別々のユニットとして示されているが、定義のバージョンおよび関連するインスタンスは、同じストレージ・デバイス(例えば、リレーショナル・データベース)上に容易に格納することができる。
図3に示された命名規則と同様に、バージョン管理されない定義502の第1の定義および第2の定義と関連付けられたバージョン管理されない定義が、識別子DID 1 506およびDID 2 508として示されている。ただし、この場合、定義識別子にはバージョンが含まれていない。
バージョン管理されないインスタンス504の例におけるインスタンスは、インスタンス識別子IID 1 510、IID 2 512、IID 3 514、およびIID 4 516として定義されている。インスタンスは、特定の定義から作成される。現在の例では、バージョン管理されないシステム500の識別子IID 1 510、IID 2 512、IID 3 514と関連付けられたインスタンスは、識別子DID 1 506と関連付けられた特定の定義を使用して作成され、識別子IID 4 516と関連付けられたインスタンスは、識別子DID 2 508と関連付けられた特定の定義を使用して作成される。特定の定義のバージョンと、各定義のバージョンを使用して作成されたインスタンスとの間の関連付けが、点線を使用して図に示されている。
図6を参照すると、本開示のさまざまな実施形態で動作可能な、バージョン管理されないシステム内の定義を変更するプロセスのフローチャートが示されている。図6は、図5のバージョン管理されないシステム500の形態で、図1のハイブリッド・システム116の一部を使用するバージョン管理されないアーチファクト定義の進化のプロセスを上位レベルからの視点において示している。
アーチファクト定義を変更する場合、プロセス600に示された以下の処理で、アーチファクトの変更された定義を作成する必要がある。バージョン管理されない定義を変更できるということは、システムも、更新された定義における変更を維持できるということを意味している。
プロセス600が開始され(ステップ602)、バージョン管理されないシステム(図5のバージョン管理されないシステム500など)内のアーチファクトのバージョン管理されない定義を使用する(ステップ604)。バージョン管理されないアーチファクト定義に対する変更が受信される(ステップ606)。受信された変更は、バージョン管理されないシステムのバージョン管理されないアーチファクト定義に適用され、元のバージョン管理されないアーチファクト定義と同じレコードに保存される(ステップ608)。生成された出力は、元のバージョン管理されないアーチファクト定義の更新されたアーチファクト定義の形態になり(ステップ610)、その後プロセス600が終了する(ステップ612)。
バージョン管理されないシステムは、アーチファクトのバージョン間の関係を管理する必要がないという簡易性がある。すべてのインスタンスが同じ定義によって裏付けられるため、ある種の明示的なインスタンスの移行の必要性がないという簡易性もある。ただし、この簡易性には犠牲が伴う。
バージョン管理されないシステムは、アーチファクト定義に対して実行可能な更新の種類を制約する。この制約は、すべての既存のインスタンスが対応する更新と互換性を持たなければならないため、必要になる。この制約は、すべてのインスタンスの暗黙的に強制されるインスタンスの移行と判断することができ、この移行は必ず成功しなければならず、その結果、実行可能な更新を限定する。定義を容易に変更できるバージョン管理されたシステムとは異なり、バージョン管理されないシステムには、許容される定義の変更に関して厳密なルールがある。ただし、それらのルールが遵守されない場合、壊れたインスタンスまたは互換性のないインスタンスを修正するために、ユーザの介入が必要になる。
本開示の実施形態は、バージョン管理されたアプローチとバージョン管理されないアプローチの両方を使用して、両方の性質の長所を示すハイブリッド・システム(例えば、図7に示されたハイブリッド・システム700)を定義するための方法を実装する。これは、バージョン管理された定義とバージョン管理されない定義の間の関係、およびそれらの関係がどのように使用され、アーチファクトが成熟するにつれてどのように進化するかを管理するルールを確立することによって実現される。
図7を参照すると、本開示のさまざまな実施形態で動作可能な、ハイブリッド・システムのブロック図が示されている。図7は、例として、バージョン管理された形態およびバージョン管理されない形態でのアーチファクト定義を含んでいるハイブリッド・システム700の形態での図1のハイブリッド・システム116、および2つの異なるアーチファクトの関連する対応するインスタンスを示している。
バージョン管理された定義302およびインスタンス304は、別のユニットとして示されているが、定義のバージョンおよび関連するインスタンスは、バージョン管理されない定義502およびインスタンス504と同じストレージ・デバイス(例えば、リレーショナル・データベース)上に容易に格納できる。
図3のバージョン管理されたシステム300でのように、バージョン1〜3を含んでいる第1のバージョン管理された定義識別子と関連付けられたアーチファクト定義は、識別子DID 1 V1 306、DID 1 V2 308、およびDID 1、V3 310として示されている。同様に、やはり複数のバージョン1〜3を含んでいる第2のバージョン管理された定義識別子と関連付けられたバージョン管理されたアーチファクト定義は、識別子DID 2 V1 312、DID 2 V2 314、およびDID 2 V3 316として示されている。
前述したように、インスタンスは特定の定義のバージョンから作成される。この例におけるインスタンスは、インスタンス識別子IID 1 318、IID 2 320、IID 3 322、およびIID 4 324として定義されている。例の識別子IID 1 318、IID 2 320、IID 3 322と関連付けられたインスタンスは、識別子DID 1 V2 308、DID 1 V3 310、およびDID 1 V2 308と関連付けられた特定の定義のバージョンをそれぞれ使用して作成され、識別子IID 4 324と関連付けられたインスタンスは、識別子DID 2 V3 316と関連付けられた特定の定義のバージョンを使用して作成される。
図3に示された命名規則と同様に、バージョン管理されない定義502の第1の定義および第2の定義と関連付けられたバージョン管理されない定義が、識別子DID 1 506およびDID 2 508として示されている。ただし、バージョン管理されないシステム500の場合、定義識別子にはバージョンが含まれていない。
システムのバージョン管理された一部と同様に、インスタンスが特定の定義から作成されるが、特定のバージョンは作成されない。インスタンス(例では、バージョン管理されないインスタンス504)は、識別子IID 1 510、IID 2 512、IID 3514、およびIID 4 516と関連付けられたインスタンスとして定義されている。バージョン管理されないシステム500の識別子IID 1 510、IID 2 512、IID 3 514と関連付けられたインスタンスは、識別子DID 1 506と関連付けられた特定の定義を使用して作成され、識別子IID 4 516と関連付けられたインスタンスは、識別子DID 2 508と関連付けられた特定の定義を使用して作成される。
バージョン管理された定義302の識別子DID 1 V1 306、DID 1 V2 308、およびDID 1、V3 310と関連付けられたアーチファクト定義は、バージョン管理されない定義DID 1 506との関係が識別され、それと相関付けられる。同様の方法で、識別子DID 2 V1 312、DID 2 V2 314、およびDID 2 V3 316と関連付けられたアーチファクト定義は、バージョン管理されない定義DID 2 508との関係が識別され、それと相関付けられる。
識別子IID 1 318、IID 2 320、IID 3 322、およびIID 4 324と関連付けられたバージョン管理されたアーチファクト定義302と関連付けられたインスタンス304のインスタンス識別子も、バージョン管理されないインスタンスとの関係が識別され、それと相関付けられる。現在の例では、ハイブリッド・システム700のバージョン管理された部分のインスタンス識別子IID 1 318、IID 2 320、IID 3 322、およびIID 4 324が、ハイブリッド・システム700の対応するバージョン管理されない部分の識別子IID 1 510、IID 2 512、IID 3 514、およびIID 4 516と関連付けられたバージョン管理されないアーチファクト定義502と関連付けられたインスタンス504と相関付けられる。
現在の例で明らかなように、バージョン管理されたドメインとバージョン管理されないドメインの間の相関関係は、アーチファクト・レベル(定義)での第1のレベルおよび属性レベル(インスタンス)での第2のレベルという相関関係の2つのレベルで維持される。この相関関係は、一意の識別子を使用することにより、アーチファクトの関連付けによって記録され、定義とインスタンスの両方に適用できる。
アーチファクト間の関係、および両方のドメイン内の関連するアーチファクト間の相関関係は、不変の構成要素または部分を含んでいる単純な一意の識別子(UID)を使用して実現され、UIDは、特定の定義のすべてのバージョンおよび対応するバージョン管理されない定義によって共有される。UIDは、バージョン管理されたドメインで使用される場合は<共通UID>_<バージョンID>という形態で表され、バージョン管理されないドメインで使用される場合は<共通UID>という形態で表される。
システムは、<共通UID>部分を使用して、同じアーチファクトのすべてのバージョンおよび関連する単一のバージョン管理されない定義を簡単に識別できる。UIDは、アーチファクトが存続する間は不変であり、アーチファクトが最初に作成されたときに割り当てられ、変更されることはない。例で示されるように、DIDは、バージョン管理された定義および対応するバージョン管理されない各定義のアーチファクト定義の識別に使用される。
図8を参照すると、本開示のさまざまな実施形態で動作可能な、ハイブリッド・システムのブロック図が示されている。図8は、例として、バージョン管理された形態およびバージョン管理されない形態でのアーチファクト定義を含んでいるハイブリッド・システム800の形態での図1のハイブリッド・システム116、および属性間の関係を含んでいるアーチファクトの2つの異なるバージョンの関連する対応するインスタンスを示している。ハイブリッド・システム800の例では、アーチファクトのさまざまなバージョンから単一のバージョン管理されない定義への生成された関係が示されている。図8の略語において、DIDは定義識別子を表し、Vはバージョン識別子を表し、AIDは属性識別子を表し、値A、B、Cは不変のファセット値を表す。
ハイブリッド・システム800は、バージョン管理されない定義502との関係が識別されて、それと相関付けられたバージョン管理された定義302を含んでいる図7のハイブリッド・システム700の定義部分を示している。
バージョン管理されたアーチファクトとバージョン管理されないアーチファクトの間の関係が確立されると、オブジェクトの属性に対するアーチファクトの関係で使用されたのと同じ原則を適用することによって、属性間の関係付けおよび相関付けが実行される。アーチファクト間の関係および相関関係における前の識別と同様に、ここで属性はUIDによって識別される。この場合のUIDは、属性のファセットから生成された部分を含んでおり、これらのファセットが変更されると、バージョン管理されないドメイン内の既存のインスタンスとの互換性のない属性と関連付けられたインスタンス・データが作成される。したがって、これらのファセットは、定義が存続する間、不変であると考えられる。バージョン管理されたドメイン内でこれらのファセットが変更されると、この変更によってシステムが属性を(既存の定義の更新とは対照的に)各親定義への新しい追加として識別する。UIDは、バージョン管理された属性およびバージョン管理されない属性によって全体として共有される。UIDの形式は、<UID>_<不変のファセット1の値>_<…>_<不変のファセットnの値>として表される。<UID>部分は、システムによって割り当てられてもよく、不変なファセットの値であってもよい。
例えば、属性1は、A、B、C、およびDという4つのファセットを含んでいる。4つのファセットのうちの2つ(BおよびC)を変更すると、属性と関係付けられた既存のデータの互換性が失われる。その結果、属性1のUIDを、<UID>_<Bの値>_<Cの値>として表すことができる。この表現は、アーチファクトの新しいバージョンにおいてファセットBまたはファセットCのいずれかが変更された場合、対応するバージョン管理されないアーチファクトが<UID>_<B’の値>_<C’の値>によって識別される新しい属性を受け取ることを保証する。
さらに例を挙げると、プロパティが複数のファセットを含む場合、その一部は、名前、種類、表示名、濃度、および説明であってもよい。これらの各ファセットは、前に述べた理由により、既存のインスタンスを壊す危険を冒さずに、バージョン管理されたドメイン内で更新できる。ただし、同じ変更が、バージョン管理されない定義にも適用されなければならない。そのため、既存のインスタンス・データが互換性を失っている限り、変更によってプロパティ定義を変形させることはできない。例えば、プロパティ1は、名前:プロパティ1、表示名:プロパティ1、種類:文字列、濃度:複数値、および説明:これはプロパティ1である、というファセット値を使用して定義される。表示名または説明のいずれかを変更しても、データに影響を与えることはない。これらの属性が何であっても、引き続き文字列値のリストを、プロパティ定義によって記述することができる。
しかし、例では、プロパティの種類または濃度のファセット値を変更すると、バージョン管理されない定義において不適合が生じる。例えば、種類のファセット値が文字列から整数に変更された場合、システムはすべての既存の文字列インスタンス・データを整数として表現できるということを保証できなくなる。同様に、濃度のファセット値が変更された場合、データを失うことなく、または不自然な変形を行うことなく、リストを単一の値に変更することは不可能である。そのため、種類および濃度は、不変であると判断され、プロパティUIDの生成において使用されなければならない。
例えば、生成されるUIDは、次のように定義されてもよい。<UID>構成要素がプロパティ名であると仮定して、変更前の第1のケースでは、プロパティ1_文字列_複数として定義されてもよく、変更後の第2のケースでは、種類または濃度あるいはその両方が変更され、プロパティ1_整数_複数、またはプロパティ1_文字列_単一、あるいはプロパティ1_整数_単一として定義されてもよい。
ハイブリッド・システム800の例では、DID 1 V1 306およびDID 1 V2 308として識別されたアーチファクト定義のさまざまなバージョンから単一のバージョン管理されない定義DID 1 506への、生成された関係が示されている。バージョン管理されたアーチファクト定義とバージョン管理されないアーチファクト定義の間の相関関係は、さらに属性の関係を含んでいる。
定義DID 1 V1 306に関して、属性識別子AID1_A_B 802は、点線を使用して示されているように、DID 1 V2 308および属性識別子AID1_A’_B 806で示されている変更された値に関連している。属性識別子AID1_A_B 802と属性識別子AID1_A’_B 806の関係は、不変なプロパティAの値を(A’に)変更した結果として、バージョンからバージョンへの進化によって発生し、それによって、新しいプロパティAID1_A’_B 806がバージョン管理されない定義DID 1 506に作成される。識別は、バージョンが進化したときにデータの互換性を維持するために使用される。
さらに、AID1_A_B 802 AID2_B_C 804は、バージョン管理されない定義DID 1 502のDID 1 506内のAID1_A_B 802 AID2_B_C 804に関連している。
定義DID 1 V2 308に関しては、属性識別子AID2_B_C 804および属性識別子AID1_A’_B 806で示されている変更された値は、バージョン管理されない定義502のDID 1 506内のAID2_B_C 804および属性識別子AID1_A’_B 806で示されている変更された値にそれぞれ関連している。
インスタンスの作成に関しては、インスタンスはバージョン管理されたアーチファクト定義の特定のバージョンから常に作成されるが、このインスタンスは、バージョン管理されたアーチファクト定義から直接作成された1つの部分、およびバージョン管理されないアーチファクト定義から作成されたもう1つの部分という2つの部分を含めて形成される。両方の部分が共通のID属性を共有しているため、1つの部分を、他の部分を使用して検索できる。
インスタンスは、あるバージョン管理された定義から別のバージョンへ移行できる。この場合、バージョン管理された定義から作成されたインスタンス部分のみを、バージョン管理されたシステムについて前に説明した方法と同じ方法で移行する必要がある。
アーチファクト定義の進化が発生し、すべてのバージョン管理されないインスタンスの互換性を保証するために、特定のルールを実施することが必要になる。データが更新されたときにインスタンスに適用される検証ルールの定義は、実施の基準を提供するために使用される。アーチファクト定義の更新は、定義の新しいバージョンが作成されたときにシステムを介して伝搬され、対応するバージョン管理されない定義も更新される。
アーチファクト定義の属性には、検証ルールが定義されてもよく、例えばルールは、数値属性が負の値を許可しないということを表してもよい。検証ルールは、バージョン管理されたアーチファクト定義が時間とともに進化する場合があるため、バージョン管理されたアーチファクト定義に対してのみ定義される。インスタンスの実施は、後のセクションで説明される。
図9を参照すると、本開示のさまざまな実施形態で動作可能な、新しい定義のバージョンをハイブリッド・システムのバージョン管理されないシステム部分に作成するフローチャートが示されている。プロセス900は、例として、図1のハイブリッド・システム116で使用されるプロセスを、定義が作成されるバージョン管理されないシステムを備えている図8のハイブリッド・システム800の一部の形態で示す。
プロセス900が開始され(ステップ902)、バージョン管理された定義の最新のバージョンnを受信し(ステップ904)、バージョン管理された定義のバージョン1〜nに対して、バージョン管理されない定義をマッピングする(ステップ906)。バージョン管理された定義のバージョンnに対する変更も受信される(ステップ908)。
プロセス900は、バージョン管理された定義のバージョンn+1を作成する(ステップ910)。
アーチファクト定義の更新は、バージョン管理されたドメイン内でのみ実行される。ユーザが定義の最新のバージョンnを変更した場合、新しいバージョンn+1がそれらの変更とともに作成される。差分は、追加、削除、および変更にすることができる。差分ごとに、バージョン管理されないアーチファクト定義への対応するマッピングが行われなければならない。
属性の削除によって、バージョン管理されないアーチファクト定義に対する変更は行われない。これは、その属性が、バージョン管理された定義の以前のバージョンによってまだ使用されるため、依然として必要とされるからである。属性の追加によって、同じファセットを含んでいるバージョン管理されない定義への属性の追加も行われる。1つの例外は、同じファセットを含んでいるプロパティが、バージョンnよりも前のバージョンのバージョン管理された定義にすでに存在しているまれなケースである。したがって、属性の再導入によって、バージョン管理されないアーチファクト定義における変更は行われない。
属性の変更は、行われた変更の内容に応じて、バージョン管理されない定義に対して同期される場合がある。属性の検証ルールのみが変更された場合、属性の変更がバージョン管理されたアーチファクト定義において排他的に維持されるため、バージョン管理されないアーチファクト定義に対する更新は行われない。ファセットが変更され、その変更をバージョン管理されないアーチファクト定義に互換性のある方法で適用できる場合、バージョン管理されない定義内の属性が変更される。これは主に、データに無関係な変更に適用され、例えば、バージョン管理されないアーチファクト定義が最新の定義のみを知っている場合、表示名または説明の変更が許容される。ファセットが変更され、その変更をバージョン管理されないアーチファクト定義に互換性のある方法で適用できない場合、関連付けられた検証ルール内で定義されているルールに従って、新しい属性がバージョン管理されない定義に追加される。これは主に、データに関係のある変更、例えば、変換できない数値から日付への属性の種類の変更に適用される。
プロセス900は、バージョン管理された定義のバージョン管理されない定義に変更をマッピングする(ステップ912)。プロセス900は、バージョン管理された定義のバージョンn+1を作成し(ステップ914)、バージョン管理された定義のバージョン1〜n+1に対してマッピングされたバージョン管理されない定義も作成し(ステップ916)、その後、プロセス900を終了する(ステップ918)。
図10を参照すると、本開示のさまざまな実施形態で動作可能な、ハイブリッド・システム内のバージョン管理された定義から作成されたインスタンス部分に対してプロパティを変更するフローチャートが示されている。プロセス1000は、例として、図1のハイブリッド・システム116で使用されるプロセスを、バージョン管理された定義のインスタンス部分内のプロパティが変更されるバージョン管理されたシステムを備えている図8のハイブリッド・システム800の一部の形態で示す。
プロセス1000が開始され(ステップ1002)、バージョン管理された定義のバージョンnから作成されたインスタンスを受信し(ステップ1004)、バージョン管理されない定義から作成されたインスタンスを受信する(ステップ1006)。プロセス1000は、バージョン管理された定義から作成されたインスタンス部分のプロパティに対する変更も受信する(ステップ1008)
プロセス1000は、バージョン管理された定義のバージョンnに対する変更を検証する(ステップ1010)。検証の失敗に応答して、プロセス1000が変更をロールバックし(ステップ1022)、その後終了する(ステップ1024)。検証の成功に応答して、プロセス1000がバージョン管理された定義から作成されたインスタンス部分を保存する(ステップ1012)。プロセス1000は、バージョン管理されない定義から作成されたインスタンス部分を検索する(ステップ1014)。プロセス1000は、変更をバージョン管理されない定義から作成されたインスタンス部分にマッピングする(ステップ1016)。
プロセス1000は、バージョン管理された定義のバージョンnから更新されたインスタンスを作成する(ステップ1018)。プロセス1000は、バージョン管理されない定義からも、更新されたインスタンスを作成する(ステップ1020)。その後、プロセス1000は終了する(ステップ1024)。
インスタンス・データの更新は、バージョン管理されたドメイン用のファサード、および対応するバージョン管理されないドメイン用のファサードという2つのファサードのいずれかを使用して実行される。クライアントが動作しているドメインに応じて、クライアントは、バージョン管理された定義またはバージョン管理されない定義それぞれの見方を含めて、アーチファクトのインスタンスとの情報のやりとりを試みることができる。
バージョン管理されたファサードは、バージョン管理された定義の特定のバージョンに対して定義された属性にのみアクセスできる。また、バージョン管理されたファサードは、特定の定義のバージョンの属性に対して定義された検証ルールを直接認識する。バージョン管理されたファサードに対する更新は、定義のバージョンに対して直接検証できる。更新が有効であることが決定された場合、定義のバージョン管理されたインスタンスおよびバージョン管理されないインスタンスの同期を維持するために、バージョン管理されないファサードの対応する属性の位置が特定され、同じトランザクション内に保存される。
バージョン管理されたファサードは、短時間に進化する定義の構成要素と情報をやりとりするために主に使用される。例えば、短時間存続するアクティビティは、各定義のバージョンに対して定義された検証ルールを使用して属性を確認するだけであり、長時間存続するコンテンツ上のデータは、同期した状態で維持される。
図11を参照すると、本開示のさまざまな実施形態で動作可能な、ハイブリッド・システム内のバージョン管理されない定義から作成されたインスタンス部分に対してプロパティを変更するプロセスのフローチャートが示されている。プロセス1100は、例として、図1のハイブリッド・システム116で使用されるプロセスを、バージョン管理されない定義のインスタンス部分内のプロパティが変更されるバージョン管理されないシステムを備えている図8のハイブリッド・システム800の一部の形態で示す。
プロセス1100が開始され(ステップ1102)、バージョン管理された定義のバージョンnから作成されたインスタンスを受信し(ステップ1104)、バージョン管理されない定義から作成されたインスタンスを受信する(ステップ1106)。プロセス1100は、バージョン管理されない定義から作成されたインスタンス部分のプロパティに対する変更も受信する(ステップ1108)。プロセス1100は、バージョン管理された定義から作成されたインスタンス部分を検索する(ステップ1110)。プロセス1100は、変更をバージョン管理された定義から作成されたインスタンス部分にマッピングする(ステップ1112)。
プロセス1100は、バージョン管理された定義のバージョンnに対する変更を検証する(ステップ1114)。検証の失敗に応答して、プロセス1100が変更をロールバックし(ステップ1122)、その後終了する(ステップ1124)。検証の成功に応答して、プロセス1100がバージョン管理されない定義から作成されたインスタンス部分を保存する(ステップ1116)。
プロセス1100は、バージョン管理された定義のバージョンnから更新されたインスタンスを作成する(ステップ1118)。プロセス1100は、バージョン管理されない定義からも、更新されたインスタンスを作成する(ステップ1120)。その後、プロセス1100は終了する(ステップ1124)。
バージョン管理されないファサードを使用することで、バージョン管理された定義のすべてのバージョンにおいて定義された属性を効果的に公開する。これは、バージョン管理された定義のすべてのバージョンにおいて定義された属性が、バージョン管理されない定義内の対応する属性にすべてマッピングされるからである。ただし、バージョン管理されない定義には、検証ルールに関する知識がない。バージョン管理されないファサードを介して変更が行われた場合、対応するバージョン管理されたファサードが検索される。バージョン管理されないファサードを介して行われた変更を対応するバージョン管理されたファサードにマッピングすることで、特定のバージョン管理された定義による定義に従って、対応する検証ルールをチェックできる。チェックに失敗した場合、更新全体がロールバックされ、そうでない場合、バージョン管理されたインスタンスおよびバージョン管理されないインスタンスの両方に対する更新が、1つのトランザクションに保存される。
バージョン管理されないファサードは、コンテンツを含めて、定義の長時間存続する部分によって主に使用される。したがって、コンテンツを重視するユーザは、バージョン管理されないファサードを使用してすべての属性を確認することができ、バージョン管理された定義の数個のバージョンに対して定義された属性のみを確認できる。インスタンスの更新時に、バージョン管理された定義に対する変更の検証を含む、バージョン管理されたインスタンス部分へ戻る同期は、各定義のバージョンによる定義に従って、有効な変更のみがインスタンスに適用されることを強制する。
図12を参照すると、本開示のさまざまな実施形態で動作可能な、ハイブリッド・システム内のバージョン管理されたドメインとバージョン管理されないドメインの間でアーチファクトを相関付けるためのプロセスのフローチャートが示されている。プロセス1200は、例として、図1のハイブリッド・システム116で使用されるプロセスを、図8のハイブリッド・システム800の一部の形態で示す。
プロセス1200が開始され(ステップ1202)、アーチファクトのセット内のアーチファクトに関して、バージョン管理されたドメインとバージョン管理されないドメインの両方の属性を含んでいるメタデータを生成し、このメタデータは、バージョン管理されたドメインおよびバージョン管理されないドメインで使用されるアーチファクトのセットと関連付けられる(ステップ1204)。プロセス1200は、バージョン管理されたアーチファクト定義の特定のバージョンを使用してインスタンスを作成し、このインスタンスは、バージョン管理されたアーチファクト定義から直接作成された第1の部分およびバージョン管理されないアーチファクト定義から作成された第2の部分を備える(ステップ1206)。プロセス1200は、バージョン管理されたドメイン内およびバージョン管理されないドメイン内のアーチファクトの各表現間のリンクを指定し、指定されたリンクは、バージョン管理されたドメイン内のアーチファクトの複数のバージョン間の関係を、バージョン管理されないドメイン内の同じアーチファクトの単一のバージョン管理されない表現に対して定義する(ステップ1208)。プロセス1200は、バージョン管理されたドメインまたはバージョン管理されないドメインのいずれかからのアーチファクトのインスタンスの作成、インスタンスの実行、およびインスタンスの更新のうちの選択された1つを実行するために使用されるファサードのセットを提供することに応答して、バージョン管理されたドメインまたはバージョン管理されないドメインのいずれかからのアーチファクトのインスタンスの作成、インスタンスの実行、およびインスタンスの更新のうちの選択された1つを受信し、アーチファクトのインスタンスの作成、インスタンスの実行、およびインスタンスの更新のうちの選択された1つは、ルールのセットを使用して実行される(ステップ1210)。プロセス1200は、アーチファクト定義のすべてのバージョンを、単一のバージョン管理されない定義に相関付け、この単一のバージョン管理されない定義のアーチファクト定義も、アーチファクト定義のすべてのバージョンに相関付けられ(ステップ1212)、その後終了する(ステップ1214)。
したがって、実施形態例において、バージョン管理されたドメインとバージョン管理されないドメインの間でアーチファクトを相関付けるためのコンピュータ実装方法が提示される。このコンピュータ実装方法は、アーチファクトのセット内のアーチファクトに関して、バージョン管理されたドメインおよびバージョン管理されないドメインの両方の属性を含んでいるメタデータを生成することであって、このメタデータがバージョン管理されたドメインおよびバージョン管理されないドメインで使用されるアーチファクトのセットと関連付けられる、生成することと、バージョン管理されたアーチファクト定義の特定のバージョンを使用してインスタンスを作成することであって、このインスタンスが、バージョン管理されたアーチファクト定義から直接作成された第1の部分およびバージョン管理されないアーチファクト定義から作成された第2の部分を備える、作成することとを行う。
この方法は、バージョン管理されたドメイン内およびバージョン管理されないドメイン内のアーチファクトの各表現間のリンクをさらに指定し、指定されたリンクは、バージョン管理されたドメイン内のアーチファクトの複数のバージョン間の関係を、バージョン管理されないドメイン内の同じアーチファクトの単一のバージョン管理されない表現に対して定義する。
ファサードのセットは、バージョン管理されたドメインまたはバージョン管理されないドメインからのアーチファクトのインスタンスの作成、インスタンスの実行、およびインスタンスの更新のうちの選択された1つの実行に使用するために提供され、アーチファクトのインスタンスの作成、インスタンスの実行、およびインスタンスの更新のうちの選択された1つが、ルールのセットを使用して実行される。アーチファクト定義のすべてのバージョンは、単一のバージョン管理されない定義に相関付けられ、この単一のバージョン管理されない定義のアーチファクト定義も、アーチファクト定義のすべてのバージョンに相関付けられる。
実施形態例は、バージョン管理された世界とバージョン管理されない世界の両方の属性を含んでいるメタデータを設計するためのメカニズムを提供する。さらに、この実施形態例は、両方の間のリンク、バージョン管理された見方およびバージョン管理されない見方の両方からのアーチファクトのインスタンスを作成、実行、および更新するために必要なルールを指定する。
実施形態例は、アーチファクトのバージョンを記録する方法を定義せず、別のアーチファクトの単一のバージョンを定義する方法も定義しない。このような概念はよく理解されており、現在多くの場合、ソフトウェア・システムにおいて適用されている。そうではなく、実施形態例は、同じアーチファクトが両方のドメイン内で表されており、両方の形態でアクセスされる必要がある場合に、2つをリンクする方法を提案する。
実施形態例は、アーチファクトの複数のバージョン間の関係を、同じアーチファクトの単一のバージョン管理されない表現に対して定義し、それらの関係を利用して、両方を1つとして動作させる。2つのシステムが(バージョン管理されたおよびバージョン管理されない)アーチファクト定義自体を記録すると仮定して、実施形態例は、アーチファクト定義のすべてのバージョンと、その単一のバージョン管理されない表現とを相互に関連付けることと、特定のアーチファクト定義のバージョンの属性(またはプロパティ)定義と、バージョン管理されない表現内の同じ属性(またはプロパティ)定義とを相互に関連付けることと、バージョン管理されたアーチファクト定義に対する追加、更新、および削除などの編集の意味、ならびに対応するバージョン管理されないアーチファクト定義に適用される編集の意味への変換を定義することと、定義されたバージョン管理されたファサードまたはバージョン管理されないファサードのいずれに対して処理が実行されるかに応じて、アーチファクトのインスタンスに対して読み取り処理および更新処理が実行される方法を定義することと、バージョン管理されたアーチファクトおよびバージョン管理されないアーチファクトのインスタンス間で、一方または他方が更新されたときに、データの更新が同期される方法を定義することと、属性(またはプロパティ)検証ルールが、定義され、バージョン管理されたファサードまたはバージョン管理されないファサードのいずれかを介してアーチファクト・インスタンスが更新されたときに評価される方法を定義することとのための方法を説明する。
実施形態例は、通常、バージョン管理されたドメインおよびバージョン管理されないドメインの最良の属性を選択し、必要に応じて、本明細書ではハイブリッド・システムと呼ばれる1つのソリューションにおいて、いずれか1つのドメインを利用するためのメカニズムを提供する。バージョン管理されたアプローチを使用するシステムの場合、すべてのバージョンを共通の概念に統合する必要があるため、情報の統合が極めて困難である。バージョン管理されないアプローチを使用するシステムの場合、アーチファクトに必ず下位互換性があり、既存のインスタンスが、メタデータ内の更新に関して引き続き有効であることを保証しなければならないため、進化が困難である。
実施形態例によって提案されたハイブリッド・アプローチを使用することで、通常は追加の労力をあまり伴わずに、バージョン管理されて動作できるシステム(プロセスの進化)およびバージョン管理されずに動作できるシステム(過去のプロセス・データの統合)の定義が可能になる。
別の実施形態例では、バージョン管理されたドメイン内で定義されてインスタンス化されたアーチファクトをバージョン管理されないドメインに相関付けるための方法は、定義のすべてのバージョンおよびバージョン管理されない定義によって共有された不変の構成要素を含んでいる一意の識別子(UID)を使用してバージョン管理されたドメイン内およびバージョン管理されないドメイン内の関連するアーチファクト間の相関関係を作成することであって、このUIDが、バージョン管理された<共通UID>_<バージョンID>という第1の形態およびバージョン管理されない<共通UID>という第2の形態で表され、システムが、<共通UID>部分を使用して同じアーチファクトのすべてのバージョンおよび関連する単一のバージョン管理されない定義を識別し、このUIDが関連するアーチファクトが存続する間は不変である、作成することと、属性のファセットから生成することであって、ファセットが、変更された場合に、バージョン管理されないドメイン内の既存のインスタンスとの互換性のない属性と関連付けられたインスタンス・データを作成し、特定のファセットが、定義が存在する間は不変であると判断され、それらのファセットがバージョン管理されたドメイン内で変更された場合、それらの変更によってシステムが属性を親定義への新しい追加であると識別し、UIDが、バージョン管理された属性とバージョン管理されない属性の両方によって全体的に共有され、<UID>_<不変のファセット1の値>_<…>_<不変のファセットnの値>の形式で表される、生成することと、バージョン管理されたアーチファクト定義の特定のバージョンを使用してインスタンスを作成することであって、このインスタンスが、バージョン管理されたアーチファクト定義から直接作成された第1の部分およびバージョン管理されないアーチファクト定義から作成された第2の部分を備える、作成することと、バージョン管理されたドメイン内のアーチファクト定義を更新することであって、アーチファクト定義の最新のバージョンに対するユーザの変更が、このユーザの変更を含んでいる新しいバージョンn+1を作成し、このユーザの変更が、追加、削除、および修正のいずれかであり、バージョン管理されないアーチファクト定義と同期させるために、ユーザの変更ごとに、バージョン管理されないアーチファクト定義への対応するマッピングが行われる、更新することとを行い、アーチファクト定義の属性と関連付けられた検証ルールのセット内の検証ルールにおける変更に応答して、バージョン管理されないアーチファクト定義に対して更新が行われず、互換性のある方法でバージョン管理されないアーチファクト定義に適用できるファセットの変更に応答して、バージョン管理されない定義内の属性も変更され、互換性のある方法でバージョン管理されないアーチファクト定義に適用できないファセットの変更に応答して、新しい属性が、バージョン管理されたアーチファクト定義の属性と関連付けられた定義済み検証ルールのセットを使用してバージョン管理されない定義に追加され、バージョン管理されたファサードおよびバージョン管理されないファサードの1つを選択してインスタンス・データを更新し、バージョン管理されたファサードの選択に応答して、バージョン管理された定義の特定のバージョンに対して定義された属性およびバージョン管理された定義のこの特定のバージョンの属性に対して定義された検証ルールのセットにのみアクセスし、このファサードに対する更新を、バージョン管理された定義の特定のバージョンに対して直接検証し、更新が有効であることに応答して、定義のバージョン管理されたインスタンスとバージョン管理されないインスタンスの間の同期を維持するために、バージョン管理されないファサードの対応する属性が検索されて、同じトランザクションに保存され、バージョン管理されないファサードの選択に応答して、バージョン管理されない定義内の対応する属性へのマッピングに従って、バージョン管理された定義のすべてのバージョンで定義された属性を公開し、バージョン管理されないファサードを介して行われた変更に応答して、対応するバージョン管理されたファサード内を検索することであって、それらの変更がこの対応するバージョン管理されたファサードにマッピングされ、特定のバージョン管理された定義による定義に従って対応する検証ルールがチェックされる、検索することを行い、更新の成功に応答して、バージョン管理されたインスタンスおよびバージョン管理されないインスタンスに対する更新を単一のトランザクションに保存し、更新の失敗に応答して、その更新がロールバックされる。
図内のフローチャートおよびブロック図は、本発明のさまざまな実施形態に記載されているシステム、方法、およびコンピュータ・プログラム製品の可能な実装のアーキテクチャ、機能、および処理を示す。これに関連して、フローチャートまたはブロック図内の各ブロックは、規定された論理機能を実装するための1つまたは複数の実行可能な命令を備えるコードのモジュール、セグメント、または部分を表すことができる。一部の代替実施形態では、ブロックに示された機能は、図に示された順序とは異なる順序で発生させることができるということにも注意する必要がある。例えば、実際、連続して示された2つのブロックは、含まれている機能に応じて、実質的に同時に実行するか、または場合によっては逆の順序で実行することができる。ブロック図またはフローチャート図あるいはその両方の各ブロック、ならびにブロック図またはフローチャート図あるいはその両方に含まれるブロックの組合せは、規定された機能または動作、あるいは専用ハードウェアとコンピュータ命令の組合せを実行する専用ハードウェアベースのシステムによって実装できるということにも注意する。
添付の特許請求の範囲内のすべてのミーンズまたはステップ・プラス・ファンクション要素の対応する構造、材料、動作、および均等なものは、具体的に特許請求されるその他の特許請求される要素と組み合わせて機能を実行するための任意の構造、材料、または動作を含むことが意図されている。本発明の説明は、例示および説明の目的で提示されているが、網羅的であることは意図されておらず、開示された形態での発明に限定されない。本発明の範囲および主旨を逸脱することなく多くの変更および変形が、当業者にとって明らかとなるであろう。本発明の原理および実際的な適用を最も適切に説明するため、およびその他の当業者が、企図されている特定の用途に適しているようなさまざまな変更を伴う多様な実施形態に関して本発明を理解できるようにするために、実施形態が選択されて説明された。
本発明は、完全にハードウェアである実施形態、完全にソフトウェアである実施形態、またはハードウェアとソフトウェアの両方の要素を含んでいる実施形態の形態をとることができる。好ましい実施形態において、本発明はソフトウェアにおいて実装され、そのソフトウェアは、ファームウェア、常駐ソフトウェア、マイクロコード、および当業者によって認識されることが可能なその他のソフトウェア媒体を含むが、これらに限定されない。
本発明は、完全に機能するデータ処理システムの文脈で説明されているが、当業者が、本発明のプロセスを、コンピュータ実行可能命令がさまざまな形態で格納されているコンピュータ可読データ・ストレージ・デバイスの形態で配布できるということを理解することに注意することは重要である。コンピュータ可読データ・ストレージ・デバイスの例は、フロッピー(R)・ディスク、ハード・ディスク・ドライブ、RAM、CD−ROM、DVD−ROMなどの記録可能な種類の媒体を含む。コンピュータ実行可能命令は、特定のデータ処理システムにおける実際の用途のためにデコードされる、符号化された形式の形態をとってもよい。
プログラム・コードを含んでいるコンピュータ実行可能命令の格納または実行あるいはその両方を行うのに適したデータ処理システムは、システム・バスを介して直接的または間接的にメモリ素子に結合された1つまたは複数のプロセッサを含む。これらのメモリ素子は、プログラム・コードの実際の実行時に使用されるローカル・メモリ、バルク・ストレージ、および、実行時にバルク・ストレージからコードが取得されなければならない回数を減らすために少なくとも一部のプログラム・コードを一時的に格納するキャッシュ・メモリを含むことができる。
入出力デバイスまたはI/Oデバイス(キーボード、ディスプレイ、ポインティング・デバイスなどを含むが、これらに限定されない)は、直接的に、または介在するI/Oコントローラを通じて、システムに結合できる。
ネットワーク・アダプタもシステムに結合され、介在するプライベート・ネットワークまたはパブリック・ネットワークを通じて、データ処理システムを、他のデータ処理システムまたはリモート・プリンタまたはストレージ・デバイスに結合できるようにしてもよい。モデム、ケーブル・モデム、およびEthernet(R)・カードは、現在使用可能なネットワーク・アダプタのうちの、ごくわずかの種類にすぎない。

Claims (20)

  1. バージョン管理されたドメインとバージョン管理されないドメインの間でアーチファクトを相関付けるためのコンピュータ実装方法であって、
    アーチファクトのセット内のアーチファクトに関して、前記バージョン管理されたドメインと前記バージョン管理されないドメインの両方の属性を含んでいるメタデータを生成することであって、前記メタデータが、前記バージョン管理されたドメイン内および前記バージョン管理されないドメイン内で使用される前記アーチファクトのセットと関連付けられる、前記生成することと、
    バージョン管理されたアーチファクト定義の特定のバージョンを使用してインスタンスを作成することであって、前記インスタンスが、前記バージョン管理されたアーチファクト定義から直接作成された第1の部分およびバージョン管理されないアーチファクト定義から作成された第2の部分を備えている、前記作成することと、
    前記バージョン管理されたドメイン内および前記バージョン管理されないドメイン内の前記アーチファクトの各表現間のリンクを指定することであって、指定されたリンクが、前記バージョン管理されたドメイン内のアーチファクトの複数のバージョン間の関係を、前記バージョン管理されないドメイン内の同じアーチファクトの単一のバージョン管理されない表現に対して定義する、前記指定することと、
    前記バージョン管理されたドメインまたは前記バージョン管理されないドメインのいずれかからの前記アーチファクトのインスタンスの作成、インスタンスの実行、およびインスタンスの更新のうちの選択された1つを実行するために使用されるファサードのセットを提供することに応答して、前記バージョン管理されたドメインまたは前記バージョン管理されないドメインのいずれかからの前記アーチファクトのインスタンスの作成、インスタンスの実行、およびインスタンスの更新のうちの前記選択された1つを受信することであって、前記アーチファクトのインスタンスの作成、インスタンスの実行、およびインスタンスの更新のうちの前記選択された1つが、定義済み検証ルールのセットを使用して実行される、前記受信することと、
    前記アーチファクト定義のすべてのバージョンを、単一のバージョン管理されない定義に相関付けることであって、前記単一のバージョン管理されない定義の前記アーチファクト定義も、前記アーチファクト定義のすべてのバージョンに相関付けられる、前記相関付けることとを含む、方法。
  2. メタデータを生成することが、
    前記バージョン管理された定義のすべてのバージョンおよび前記バージョン管理されない定義によって共有された不変の構成要素を含んでいる前記アーチファクトに一意の識別子(UID)を割り当てることであって、前記UIDが、バージョン管理された<共通UID>_<バージョンID>という第1の形態およびバージョン管理されない<共通UID>という第2の形態で表され、システムが前記<共通UID>部分を使用して、同じアーチファクトのすべてのバージョンおよび関連する単一のバージョン管理されない定義を識別し、前記UIDが、関連するアーチファクトが存続する間は不変である、前記割り当てることと、
    属性のファセットから生成することであって、前記ファセットが、変更された場合に、前記バージョン管理されないドメイン内の既存のインスタンスとの互換性のない前記属性と関連付けられたインスタンス・データを作成し、特定のファセットが、前記定義が存続する間は不変であると判断され、前記特定のファセットが前記バージョン管理されたドメイン内で変更された場合、前記変更によって前記システムが前記属性を親定義への新しい追加であると識別し、前記UIDが、バージョン管理された属性とバージョン管理されない属性の両方によって全体的に共有され、<UID>_<不変のファセット1の値>_<…>_<不変のファセットnの値>の形式で表される、前記生成することとをさらに含む、請求項1に記載の方法。
  3. 前記アーチファクトのインスタンスの作成、インスタンスの実行、およびインスタンスの更新のうちの選択された1つを実行するために使用されるファサードのセットを提供することに応答して、
    バージョン管理されたファサードおよびバージョン管理されないファサードのうちの1つの選択を受信して、インスタンス・データを更新することと、
    前記バージョン管理されたファサードの前記選択を受信することに応答して、前記バージョン管理された定義の特定のバージョンに対して定義された属性および前記バージョン管理された定義の当該特定のバージョンの属性に関する前記定義済み検証ルールのセットにのみアクセスすることと、
    当該ファサードに対する更新を、前記バージョン管理された定義の前記特定のバージョンに対して直接検証することと、
    前記更新が有効であることに応答して、前記定義の前記バージョン管理されたインスタンスと前記バージョン管理されないインスタンスの間の同期を維持するために、前記バージョン管理されないファサードの対応する属性が検索されて、同じトランザクションに保存されることと、
    前記バージョン管理されないファサードの前記選択を受信することに応答して、前記バージョン管理されない定義内の前記対応する属性へのマッピングに従って、前記バージョン管理された定義のすべてのバージョン内で定義された前記属性を公開することと、
    前記バージョン管理されないファサードを介して行われた変更に応答して、前記対応するバージョン管理されたファサード内の検索を実行することであって、前記変更が当該対応するバージョン管理されたファサードにマッピングされ、前記定義済み検証ルールのセット内の対応する検証ルールが、前記特定のバージョン管理された定義による定義に従ってチェックされる、前記実行することと、
    更新の成功に応答して、前記バージョン管理されたインスタンスおよび前記バージョン管理されないインスタンスに対する前記変更を単一のトランザクションに保存することと、
    更新の失敗に応答して、前記変更がロールバックされることとをさらに含む、請求項1に記載の方法。
  4. 前記バージョン管理されたドメイン内の前記アーチファクト定義を更新することであって、前記アーチファクト定義の最新のバージョンnに対するユーザの変更が、前記ユーザの変更を含んでいる新しいバージョンn+1を作成し、前記ユーザの変更が、追加、削除、および修正のうちのいずれか1つであり、前記バージョン管理されないアーチファクト定義を同期させるために、ユーザの変更ごとに、前記バージョン管理されないアーチファクト定義への対応するマッピングが行われる、前記更新することをさらに含み、
    前記アーチファクト定義の前記属性と関連付けられた前記定義済み検証ルールのセット内の検証ルールにおける変更に応答して、前記バージョン管理されないアーチファクト定義に対する更新が行われず、
    互換性のある方法で前記バージョン管理されないアーチファクト定義に適用できるファセットの変更に応答して、前記バージョン管理されない定義内の前記属性を変更し、
    互換性のある方法で前記バージョン管理されないアーチファクト定義に適用できないファセットの変更に応答して、前記バージョン管理されたアーチファクト定義の前記属性と関連付けられた前記定義済み検証ルールのセットを使用して、新しい属性を前記バージョン管理されない定義に追加する、請求項1に記載の方法。
  5. 前記定義済み検証ルールのセットが、前記アーチファクト定義の前記属性と関連付けられた1つまたは複数の定義済み検証ルールを含み、前記定義済み検証ルールのセット内の前記1つまたは複数のルールが、受信された変更を、更新された前記インスタンスがバージョン管理されないインスタンスであるか、バージョン管理されたインスタンスであるかに拘わらず、前記バージョン管理された定義内の前記1つまたは複数の定義済み検証ルールを使用して、前記バージョン管理された定義の特定のバージョンに対して検証する、請求項1に記載の方法。
  6. 前記相関付けることが、アーチファクト・レベルでの相関関係の第1のレベルおよび属性レベルでの相関関係の第2のレベルをさらに含み、前記相関関係が、一意の識別子を使用してアーチファクトを定義およびインスタンスに適用可能なように関連付ける、請求項1に記載の方法。
  7. 前記第1の部分または前記第2の部分のいずれかの検索を、前記バージョン管理された定義のすべてのバージョンおよび前記バージョン管理されない定義によって共有された不変の構成要素も共有している前記第1の部分または前記第2の部分の残りの1つを使用して実行することができる、請求項1に記載の方法。
  8. バージョン管理されたドメインとバージョン管理されないドメインの間でアーチファクトを相関付けるためのコンピュータ・プログラム製品であって、前記コンピュータ・プログラム製品が、具現化されたプログラム命令を含んでいるコンピュータ可読記憶媒体を備え、プロセッサ・ユニットによって実行可能な前記プログラム命令が、前記プロセッサ・ユニットに、
    アーチファクトのセット内のアーチファクトに関して、前記バージョン管理されたドメインと前記バージョン管理されないドメインの両方の属性を含んでいるメタデータを生成することであって、前記メタデータが、前記バージョン管理されたドメイン内および前記バージョン管理されないドメイン内で使用される前記アーチファクトのセットと関連付けられる、前記生成することと、
    バージョン管理されたアーチファクト定義の特定のバージョンを使用してインスタンスを作成することであって、前記インスタンスが、前記バージョン管理されたアーチファクト定義から直接作成された第1の部分およびバージョン管理されないアーチファクト定義から作成された第2の部分を備えている、前記作成することと、
    前記バージョン管理されたドメイン内および前記バージョン管理されないドメイン内の前記アーチファクトの各表現間のリンクを指定することであって、指定されたリンクが、前記バージョン管理されたドメイン内のアーチファクトの複数のバージョン間の関係を、前記バージョン管理されないドメイン内の同じアーチファクトの単一のバージョン管理されない表現に対して定義する、前記指定することと、
    前記バージョン管理されたドメインまたは前記バージョン管理されないドメインのいずれかからの前記アーチファクトのインスタンスの作成、インスタンスの実行、およびインスタンスの更新のうちの選択された1つを実行するために使用されるファサードのセットを提供することに応答して、前記バージョン管理されたドメインまたは前記バージョン管理されないドメインのいずれかからの前記アーチファクトのインスタンスの作成、インスタンスの実行、およびインスタンスの更新のうちの前記選択された1つを受信することであって、前記アーチファクトのインスタンスの作成、インスタンスの実行、およびインスタンスの更新のうちの前記選択された1つが、定義済み検証ルールのセットを使用して実行される、前記受信することと、
    前記アーチファクト定義のすべてのバージョンを、単一のバージョン管理されない定義に相関付けることであって、前記単一のバージョン管理されない定義の前記アーチファクト定義も、前記アーチファクト定義のすべてのバージョンに相関付けられる、前記相関付けることとを実行させる、コンピュータ・プログラム製品。
  9. プロセッサ・ユニットにメタデータを生成させるために前記プロセッサ・ユニットによって実行可能な前記プログラム命令が、前記プロセッサ・ユニットに、
    前記バージョン管理された定義のすべてのバージョンおよび前記バージョン管理されない定義によって共有された不変の構成要素を含んでいる前記アーチファクトに一意の識別子(UID)を割り当てることであって、前記UIDが、バージョン管理された<共通UID>_<バージョンID>という第1の形態およびバージョン管理されない<共通UID>という第2の形態で表され、システムが前記<共通UID>部分を使用して、同じアーチファクトのすべてのバージョンおよび関連する単一のバージョン管理されない定義を識別し、前記UIDが、関連するアーチファクトが存続する間は不変である、前記割り当てることと、
    属性のファセットから生成することであって、前記ファセットが、変更された場合に、前記バージョン管理されないドメイン内の既存のインスタンスとの互換性のない前記属性と関連付けられたインスタンス・データを作成し、特定のファセットが、前記定義が存続する間は不変であると判断され、前記特定のファセットが前記バージョン管理されたドメイン内で変更された場合、前記変更によって前記システムが前記属性を親定義への新しい追加であると識別し、前記UIDが、バージョン管理された属性とバージョン管理されない属性の両方によって全体的に共有され、<UID>_<不変のファセット1の値>_<…>_<不変のファセットnの値>の形式で表される、前記生成することとを実行させるために、プロセッサ・ユニットによって実行可能なプログラム命令をさらに備える、請求項8に記載のコンピュータ・プログラム製品。
  10. 前記アーチファクトのインスタンスの作成、インスタンスの実行、およびインスタンスの更新のうちの選択された1つを実行するために使用されるファサードのセットを提供することに応答して、プロセッサ・ユニットに実行させるように前記プロセッサ・ユニットによって実行可能なプログラム命令が、プロセッサ・ユニットによって実行可能なプログラム命令をさらに備え、前記プログラム命令が、前記プロセッサ・ユニットに、
    バージョン管理されたファサードおよびバージョン管理されないファサードのうちの1つの選択を受信して、インスタンス・データを更新することと、
    前記バージョン管理されたファサードの選択を受信することに応答して、前記バージョン管理された定義の特定のバージョンに対して定義された属性および前記バージョン管理された定義の当該特定のバージョンの属性に関する前記定義済み検証ルールのセットにのみアクセスすることと、
    当該ファサードに対する更新を、前記バージョン管理された定義の前記特定のバージョンに対して直接検証することと、
    前記更新が有効であることに応答して、前記定義の前記バージョン管理されたインスタンスと前記バージョン管理されないインスタンスの間の同期を維持するために、前記バージョン管理されないファサードの対応する属性を検索し、同じトランザクションに保存することと、
    前記バージョン管理されないファサードの選択を受信することに応答して、前記バージョン管理されない定義内の前記対応する属性へのマッピングに従って、前記バージョン管理された定義のすべてのバージョン内で定義された前記属性を公開することと、
    前記バージョン管理されないファサードを介して行われた変更に応答して、前記対応するバージョン管理されたファサード内の対応する属性を検索することであって、前記変更が当該対応するバージョン管理されたファサードにマッピングされ、前記定義済み検証ルールのセット内の対応する検証ルールが、前記特定のバージョン管理された定義による定義に従ってチェックされる、前記検索することと、
    更新の成功に応答して、前記バージョン管理されたインスタンスおよび前記バージョン管理されないインスタンスに対する前記変更を単一のトランザクションに保存することと、
    更新の失敗に応答して、前記変更をロールバックすることとを実行させる、請求項8に記載のコンピュータ・プログラム製品。
  11. プロセッサ・ユニットによって実行可能なプログラム命令をさらに備え、前記プログラム命令が、前記プロセッサ・ユニットに、
    前記バージョン管理されたドメイン内の前記アーチファクト定義を更新することであって、前記アーチファクト定義の最新のバージョンnに対するユーザの変更が、前記ユーザの変更を含んでいる新しいバージョンn+1を作成し、前記ユーザの変更が、追加、削除、および修正のうちのいずれか1つであり、前記バージョン管理されないアーチファクト定義を同期させるために、ユーザの変更ごとに、前記バージョン管理されないアーチファクト定義への対応するマッピングを行う、前記更新することを実行させ、
    前記アーチファクト定義の前記属性と関連付けられた前記定義済み検証ルールのセット内の検証ルールにおける変更に応答して、前記バージョン管理されないアーチファクト定義に対する更新を行わず、
    互換性のある方法で前記バージョン管理されないアーチファクト定義に適用できるファセットの変更に応答して、前記バージョン管理されない定義内の前記属性を変更し、
    互換性のある方法で前記バージョン管理されないアーチファクト定義に適用できないファセットの変更に応答して、前記バージョン管理されたアーチファクト定義の前記属性と関連付けられた前記定義済み検証ルールのセットを使用して、新しい属性を前記バージョン管理されない定義に追加する、請求項8に記載のコンピュータ・プログラム製品。
  12. 前記定義済み検証ルールのセットが、前記アーチファクト定義の前記属性と関連付けられた1つまたは複数の定義済み検証ルールを含み、前記定義済み検証ルールのセット内の前記1つまたは複数のルールが、受信された変更を、更新された前記インスタンスがバージョン管理されないインスタンスであるか、バージョン管理されたインスタンスであるかに拘わらず、前記バージョン管理された定義内の前記1つまたは複数の定義済み検証ルールを使用して、前記バージョン管理された定義の特定のバージョンに対して検証する、請求項8に記載のコンピュータ・プログラム製品。
  13. プロセッサ・ユニットに相関付けを実行させるために前記プロセッサ・ユニットによって実行可能なプログラム命令が、前記プロセッサ・ユニットに、アーチファクト・レベルでの相関関係の第1のレベルおよび属性レベルでの相関関係の第2のレベルで相関付けを実行させるためにプロセッサ・ユニットによって実行可能なプログラム命令をさらに備え、この相関関係が、一意の識別子を使用してアーチファクトを定義およびインスタンスに適用可能なように関連付ける、請求項8に記載のコンピュータ・プログラム製品。
  14. プロセッサ・ユニットによって実行可能なプログラム命令をさらに備え、前記プログラム命令が、前記プロセッサ・ユニットに、前記第1の部分または前記第2の部分のいずれかの検索を、前記バージョン管理された定義のすべてのバージョンおよび前記バージョン管理されない定義によって共有された不変の構成要素も共有している前記第1の部分または前記第2の部分の残りの1つを使用して実行させる、請求項8に記載のコンピュータ・プログラム製品。
  15. バージョン管理されたドメインとバージョン管理されないドメインの間でアーチファクトを相関付けるための装置であって、
    バスと、
    前記バスに接続され、具現化されたプログラム命令を含んでいるメモリと、
    プロセッサ・ユニットとを備え、
    前記プロセッサ・ユニットが前記プログラム命令を実行して、前記装置に、
    アーチファクトのセット内のアーチファクトに関して、前記バージョン管理されたドメインと前記バージョン管理されないドメインの両方の属性を含んでいるメタデータを生成することであって、前記メタデータが、前記バージョン管理されたドメイン内および前記バージョン管理されないドメイン内で使用される前記アーチファクトのセットと関連付けられる、前記生成することと、
    バージョン管理されたアーチファクト定義の特定のバージョンを使用してインスタンスを作成することであって、前記インスタンスが、前記バージョン管理されたアーチファクト定義から直接作成された第1の部分およびバージョン管理されないアーチファクト定義から作成された第2の部分を備えている、前記作成することと、
    前記バージョン管理されたドメイン内および前記バージョン管理されないドメイン内の前記アーチファクトの各表現間のリンクを指定することであって、指定されたリンクが、前記バージョン管理されたドメイン内のアーチファクトの複数のバージョン間の関係を、前記バージョン管理されないドメイン内の同じアーチファクトの単一のバージョン管理されない表現に対して定義する、前記指定することと、
    前記バージョン管理されたドメインまたは前記バージョン管理されないドメインのいずれかからの前記アーチファクトのインスタンスの作成、インスタンスの実行、およびインスタンスの更新のうちの選択された1つを実行するために使用されるファサードのセットを提供することに応答して、前記バージョン管理されたドメインまたは前記バージョン管理されないドメインのいずれかからの前記アーチファクトのインスタンスの作成、インスタンスの実行、およびインスタンスの更新のうちの前記選択された1つを受信することであって、前記アーチファクトのインスタンスの作成、インスタンスの実行、およびインスタンスの更新のうちの前記選択された1つが、定義済み検証ルールのセットを使用して実行される、前記受信することと、
    前記アーチファクト定義のすべてのバージョンを、単一のバージョン管理されない定義に相関付けることであって、前記単一のバージョン管理されない定義の前記アーチファクト定義も、前記アーチファクト定義のすべてのバージョンに相関付けられる、前記相関付けることとを実行させる、装置。
  16. 前記プロセッサ・ユニットが前記プログラム命令を実行して前記装置にメタデータを生成させ、前記装置に、
    前記バージョン管理された定義のすべてのバージョンおよび前記バージョン管理されない定義によって共有された不変の構成要素を含んでいる前記アーチファクトに一意の識別子(UID)を割り当てることであって、前記UIDが、バージョン管理された<共通UID>_<バージョンID>という第1の形態およびバージョン管理されない<共通UID>という第2の形態で表され、システムが前記<共通UID>部分を使用して、同じアーチファクトのすべてのバージョンおよび関連する単一のバージョン管理されない定義を識別し、前記UIDが、関連するアーチファクトが存続する間は不変である、前記割り当てることと、
    属性のファセットから生成することであって、前記ファセットが、変更された場合に、前記バージョン管理されないドメイン内の既存のインスタンスとの互換性のない前記属性と関連付けられたインスタンス・データを作成し、特定のファセットが、前記定義が存続する間は不変であると判断され、前記特定のファセットが前記バージョン管理されたドメイン内で変更された場合、前記変更によって前記システムが前記属性を親定義への新しい追加であると識別し、前記UIDが、バージョン管理された属性とバージョン管理されない属性の両方によって全体的に共有され、<UID>_<不変のファセット1の値>_<…>_<不変のファセットnの値>の形式で表される、前記生成することとをさらに実行させる、請求項15に記載の装置。
  17. 前記アーチファクトのインスタンスの作成、インスタンスの実行、およびインスタンスの更新のうちの選択された1つを実行するために使用されるファサードのセットを提供することに応答して、前記装置に実行させるように前記プロセッサ・ユニットが前記プログラム命令を実行し、前記装置に、
    バージョン管理されたファサードおよびバージョン管理されないファサードのうちの1つの選択を受信して、インスタンス・データを更新することと、
    前記バージョン管理されたファサードの前記選択を受信することに応答して、前記バージョン管理された定義の特定のバージョンに対して定義された属性および前記バージョン管理された定義の当該特定のバージョンの属性に関する前記定義済み検証ルールのセットにのみアクセスすることと、
    当該ファサードに対する更新を、前記バージョン管理された定義の前記特定のバージョンに対して直接検証することと、
    前記更新が有効であることに応答して、前記定義の前記バージョン管理されたインスタンスと前記バージョン管理されないインスタンスの間の同期を維持するために、前記バージョン管理されないファサードの対応する属性を検索し、同じトランザクションに保存することと、
    前記バージョン管理されないファサードの選択を受信することに応答して、前記バージョン管理されない定義内の前記対応する属性へのマッピングに従って、前記バージョン管理された定義のすべてのバージョン内で定義された前記属性を公開することと、
    前記バージョン管理されないファサードを介して行われた変更に応答して、前記対応するバージョン管理されたファサード内の前記属性の検索を実行することであって、前記変更が当該対応するバージョン管理されたファサードにマッピングされ、前記定義済み検証ルール内の対応する検証ルールが、前記特定のバージョン管理された定義による定義に従ってチェックされる、前記実行することと、
    更新の成功に応答して、前記バージョン管理されたインスタンスおよび前記バージョン管理されないインスタンスに対する前記変更を単一のトランザクションに保存することと、
    更新の失敗に応答して、前記変更をロールバックすることとをさらに実行させる、請求項15に記載の装置。
  18. 前記プロセッサ・ユニットが前記プログラム命令を実行して、前記装置に、
    前記バージョン管理されたドメイン内の前記アーチファクト定義を更新することであって、前記アーチファクト定義の最新のバージョンnに対するユーザの変更が、前記ユーザの変更を含んでいる新しいバージョンn+1を作成し、前記ユーザの変更が、追加、削除、および修正のうちのいずれか1つであり、前記バージョン管理されないアーチファクト定義を同期させるために、ユーザの変更ごとに、前記バージョン管理されないアーチファクト定義への対応するマッピングが行われる、前記更新することをさらに実行させ、
    前記アーチファクト定義の前記属性と関連付けられた前記定義済み検証ルールのセット内の検証ルールにおける変更に応答して、前記バージョン管理されないアーチファクト定義に対する更新が行われず、
    互換性のある方法で前記バージョン管理されないアーチファクト定義に適用できるファセットの変更に応答して、前記バージョン管理されない定義内の前記属性を変更し、
    互換性のある方法で前記バージョン管理されないアーチファクト定義に適用できないファセットの変更に応答して、前記バージョン管理されたアーチファクト定義の前記属性と関連付けられた前記定義済み検証ルールのセットを使用して、新しい属性を前記バージョン管理されない定義に追加する、請求項15に記載の装置。
  19. 前記定義済み検証ルールのセットが、前記アーチファクト定義の前記属性と関連付けられた1つまたは複数の定義済み検証ルールを備え、前記定義済み検証ルールのセット内の前記1つまたは複数のルールが、受信された変更を、更新された前記インスタンスがバージョン管理されないインスタンスであるか、バージョン管理されたインスタンスであるかに拘わらず、前記バージョン管理された定義内の前記1つまたは複数の定義済み検証ルールを使用して、前記バージョン管理された定義の特定のバージョンに対して検証する、請求項15に記載の装置。
  20. 前記プロセッサ・ユニットが前記プログラム命令を実行して前記装置に相関付けを実行させ、前記装置に、アーチファクト・レベルでの相関関係の第1のレベルおよび属性レベルでの相関関係の第2のレベルで相関付けをさらに実行させ、前記相関関係が、一意の識別子を使用してアーチファクトを定義およびインスタンスに適用可能なように関連付ける、請求項15に記載の装置。
JP2016570114A 2014-06-11 2015-06-10 バージョン管理されたドメインとバージョン管理されないドメインの間でアーチファクトを相関付けるためのコンピュータ実装方法、コンピュータ・プログラム、および装置 Active JP6505135B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CA2854022 2014-06-11
CA2854022A CA2854022C (en) 2014-06-11 2014-06-11 Artifact correlation between domains
PCT/IB2015/054380 WO2015189780A1 (en) 2014-06-11 2015-06-10 Artifact correlation between domains

Publications (2)

Publication Number Publication Date
JP2017521759A true JP2017521759A (ja) 2017-08-03
JP6505135B2 JP6505135B2 (ja) 2019-04-24

Family

ID=54784090

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016570114A Active JP6505135B2 (ja) 2014-06-11 2015-06-10 バージョン管理されたドメインとバージョン管理されないドメインの間でアーチファクトを相関付けるためのコンピュータ実装方法、コンピュータ・プログラム、および装置

Country Status (5)

Country Link
US (2) US10037351B2 (ja)
JP (1) JP6505135B2 (ja)
CN (1) CN106415539B (ja)
CA (1) CA2854022C (ja)
WO (1) WO2015189780A1 (ja)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2854022C (en) 2014-06-11 2023-05-23 Ibm Canada Limited - Ibm Canada Limitee Artifact correlation between domains
US10628437B1 (en) * 2016-03-28 2020-04-21 United Services Automobile Association (Usaa) Systems and methods for traceability and impact analysis across data islands
US11838221B2 (en) * 2022-01-13 2023-12-05 Verizon Patent And Licensing Inc. Systems and methods for multi-cloud virtualized instance deployment and execution
US11755311B1 (en) * 2023-02-15 2023-09-12 Snowflake Inc. Versioned schema

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10187560A (ja) * 1996-12-20 1998-07-21 Mitsubishi Electric Corp 文書配送システム及び配送情報管理プログラムを記録した媒体
JP2005092544A (ja) * 2003-09-18 2005-04-07 Nippon Telegr & Teleph Corp <Ntt> ワークフロー世代管理処理方法,ワークフロー処理システムおよびワークフロー制御プログラム
JP2010231714A (ja) * 2009-03-30 2010-10-14 Mitsubishi Electric Information Systems Corp 文書管理装置及び文書管理プログラム
US20110209159A1 (en) * 2010-02-22 2011-08-25 Avaya Inc. Contextual correlation engine
US20120130906A1 (en) * 2010-11-23 2012-05-24 Boris Klinker Deployment mechanism for non-versioning business process artifacts
US8392464B2 (en) * 2007-02-16 2013-03-05 Microsoft Corporation Easily queriable software repositories

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7120646B2 (en) * 2001-04-09 2006-10-10 Health Language, Inc. Method and system for interfacing with a multi-level data structure
US7774831B2 (en) * 2002-12-24 2010-08-10 International Business Machines Corporation Methods and apparatus for processing markup language messages in a network
US7130863B2 (en) * 2003-09-24 2006-10-31 Tablecode Software Corporation Method for enhancing object-oriented programming through extending metadata associated with class-body class-head by adding additional metadata to the database
US20060236319A1 (en) * 2005-04-15 2006-10-19 Microsoft Corporation Version control system
US8429610B2 (en) * 2005-12-20 2013-04-23 International Business Machines Corporation Computer method and apparatus for providing version-aware impact analysis
US7840936B2 (en) * 2005-12-29 2010-11-23 Sap Ag Support of a platform-independent model including descriptions of modeling language entities
US8171466B2 (en) * 2006-05-16 2012-05-01 Oracle International Corporation Hitless application upgrade for SIP server architecture
US8453052B1 (en) * 2006-08-16 2013-05-28 Google Inc. Real-time document sharing and editing
GB0619147D0 (en) * 2006-09-28 2006-11-08 Ibm A method, apparatus or software for managing software component version identifications in a componentised software system
US7870276B1 (en) * 2006-12-18 2011-01-11 Emc Corporation Interface plugin
US20110238402A1 (en) * 2010-03-23 2011-09-29 Fujitsu Limited System and methods for remote maintenance in an electronic network with multiple clients
US20120254828A1 (en) 2011-04-04 2012-10-04 Model Based Management Technologies, Llc Flexible Modeling Architecture For Management Systems
US9141378B2 (en) * 2011-09-15 2015-09-22 Sonatype, Inc. Method and system for evaluating a software artifact based on issue tracking and source control information
US8863297B2 (en) * 2012-01-06 2014-10-14 Mobile Iron, Inc. Secure virtual file management system
US9461876B2 (en) * 2012-08-29 2016-10-04 Loci System and method for fuzzy concept mapping, voting ontology crowd sourcing, and technology prediction
US10229170B2 (en) * 2013-03-13 2019-03-12 Dreamworks Animation L.L.C. File system manager for customized resource allocation
US9275095B2 (en) * 2013-07-31 2016-03-01 International Business Machines Corporation Compressing a multi-version database
US9128972B2 (en) * 2013-09-21 2015-09-08 Oracle International Corporation Multi-version concurrency control on in-memory snapshot store of oracle in-memory database
US9251469B2 (en) 2013-10-30 2016-02-02 International Business Machines Corporation Dynamic load balancing based on question difficulty
US10720071B2 (en) 2013-12-23 2020-07-21 International Business Machines Corporation Dynamic identification and validation of test questions from a corpus
WO2015143416A1 (en) * 2014-03-21 2015-09-24 Ptc Inc. Systems and methods for developing and using real-time data applications
CA2854022C (en) 2014-06-11 2023-05-23 Ibm Canada Limited - Ibm Canada Limitee Artifact correlation between domains
US10394773B2 (en) * 2015-01-02 2019-08-27 International Business Machines Corporation Determining when a change set was delivered to a workspace or stream and by whom

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10187560A (ja) * 1996-12-20 1998-07-21 Mitsubishi Electric Corp 文書配送システム及び配送情報管理プログラムを記録した媒体
JP2005092544A (ja) * 2003-09-18 2005-04-07 Nippon Telegr & Teleph Corp <Ntt> ワークフロー世代管理処理方法,ワークフロー処理システムおよびワークフロー制御プログラム
US8392464B2 (en) * 2007-02-16 2013-03-05 Microsoft Corporation Easily queriable software repositories
JP2010231714A (ja) * 2009-03-30 2010-10-14 Mitsubishi Electric Information Systems Corp 文書管理装置及び文書管理プログラム
US20110209159A1 (en) * 2010-02-22 2011-08-25 Avaya Inc. Contextual correlation engine
US20120130906A1 (en) * 2010-11-23 2012-05-24 Boris Klinker Deployment mechanism for non-versioning business process artifacts

Also Published As

Publication number Publication date
WO2015189780A1 (en) 2015-12-17
CA2854022C (en) 2023-05-23
US10037351B2 (en) 2018-07-31
CA2854022A1 (en) 2015-12-11
CN106415539B (zh) 2019-08-23
CN106415539A (zh) 2017-02-15
JP6505135B2 (ja) 2019-04-24
US20180300366A1 (en) 2018-10-18
US20150363453A1 (en) 2015-12-17
US11204910B2 (en) 2021-12-21

Similar Documents

Publication Publication Date Title
US10558642B2 (en) Mechanism for deprecating object oriented data
US9128996B2 (en) Uniform data model and API for representation and processing of semantic data
US20200167135A1 (en) Computing Expression Medium, Development Environment, and Device Communication and Control Architecture
US7895156B2 (en) Method, system, and computer program product for implementing a model exchange framework generating a synchronization record in response to a model exchange request using fusion technology
US8364683B2 (en) Importing and reconciling resources from disjoint name spaces to a common namespace
CN106164866B (zh) 客户端侧web状态的高效迁移
US10262008B2 (en) Filename-based inference of repository actions
JP4738908B2 (ja) ハードウェア/ソフトウェアインターフェースシステムにより管理可能な情報の単位のピアツーピア同期化のための競合処理を提供するためのシステムおよび方法
CN103649945B (zh) 最近使用的文档列表的自动同步
US7523141B2 (en) Synchronization operations involving entity identifiers
US9910640B2 (en) Modeling representational state transfer application programming interfaces
US11204910B2 (en) Artifact correlation between domains
US8707171B2 (en) Service registry policy editing user interface
US10902028B2 (en) Managing a classification system and associated selection mechanism
US20080163264A1 (en) Directory Service that Provides Information from a Plurality of Disparate Data Sources
US11068468B2 (en) Extensible validation framework
US10884646B2 (en) Data management system for storage tiers
US20200104391A1 (en) Ensuring integrity of records in a not only structured query language database
US10067749B2 (en) Generating consumer-oriented APIs from a UI model
US8868578B2 (en) Building information technology services from a library of elements
CN106970971B (zh) 改进型中心锚链模型的描述方法
Jackson et al. The “C” in MVC
US20130124577A1 (en) Efficient update of a discovery library adapter book
JP2013140573A (ja) 関連推定プログラム,関連推定装置および関連推定方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180307

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190115

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190208

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20190305

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190326

R150 Certificate of patent or registration of utility model

Ref document number: 6505135

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150