(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】5940560
(24)【登録日】2016年5月27日
(45)【発行日】2016年6月29日
(54)【発明の名称】データの集合体に対する変更の管理
(51)【国際特許分類】
G06F 12/00 20060101AFI20160616BHJP
G06F 17/30 20060101ALI20160616BHJP
【FI】
G06F12/00 513D
G06F17/30 240A
【請求項の数】51
【全頁数】17
(21)【出願番号】特願2013-549581(P2013-549581)
(86)(22)【出願日】2012年1月13日
(65)【公表番号】特表2014-507713(P2014-507713A)
(43)【公表日】2014年3月27日
(86)【国際出願番号】US2012021286
(87)【国際公開番号】WO2012097278
(87)【国際公開日】20120719
【審査請求日】2015年1月13日
(31)【優先権主張番号】61/433,082
(32)【優先日】2011年1月14日
(33)【優先権主張国】US
(73)【特許権者】
【識別番号】509123208
【氏名又は名称】アビニシオ テクノロジー エルエルシー
(74)【代理人】
【識別番号】100079108
【弁理士】
【氏名又は名称】稲葉 良幸
(74)【代理人】
【識別番号】100109346
【弁理士】
【氏名又は名称】大貫 敏史
(72)【発明者】
【氏名】ゴウルド,ジョエル
(72)【発明者】
【氏名】パーキンス,ティモシー
(72)【発明者】
【氏名】ウェイス,アダム
【審査官】
井上 宏一
(56)【参考文献】
【文献】
特開2000− 29896(JP,A)
【文献】
特開平10−133920(JP,A)
【文献】
特開2009−211599(JP,A)
【文献】
特開2006− 85224(JP,A)
【文献】
特開2000−267909(JP,A)
【文献】
特開2004−246405(JP,A)
【文献】
米国特許出願公開第2009/0094291(US,A1)
【文献】
米国特許第06240414(US,B1)
(58)【調査した分野】(Int.Cl.,DB名)
G06F 12/00
G06F 17/30
(57)【特許請求の範囲】
【請求項1】
少なくとも1つのプロセッサを含むコンピューティングシステムにおける、記録の集合体に対する変更を管理するための方法であって、
前記少なくとも1つのプロセッサは、
データ格納システムに記録の第1のセットを格納するステップであって、前記記録の第1のセットは、前記記録の集合体の第1のバージョンを表す、ステップと、
ユーザインターフェース上で受信された入力によって指定される、前記記録の集合体に対する提案された変更を検証するステップと
を含み、前記検証するステップは、
前記提案された変更を検証するための検証基準に基づいて前記データ格納システムへのクエリを行い、前記クエリを行うステップに応じて第1の結果を受信するステップと、
前記記録の集合体に未だ適用されていない変更を表す記録の第2のセットを処理して、第2の結果を生成するステップであって、前記記録の第2セットによって表される前記変更は、前記入力によって指定される前記提案された変更と異なる、該生成するステップと、
前記第2の結果に基づいて前記第1の結果を更新して、第3の結果を生成するステップと、
前記第3の結果を処理して、前記検証基準に従って前記提案された変更が有効かどうかを決定するステップと
を実行する、方法。
【請求項2】
前記記録の第1のセットは、1つ以上のソース値を1つ以上のターゲット値にマッピングするメタデータマップをそれぞれ有する記録を含む、請求項1に記載の方法。
【請求項3】
前記第3の結果を処理するステップは、1つ以上のソース値の同じセットが、2つ以上の異なるメタデータマップにより、1つ以上のターゲット値の2つ以上の異なるセットにマッピングされた場合、又は1つ以上のソース値の2つ以上の異なるセットが、2つ以上の異なるメタデータマップにより、1つ以上のターゲット値の前記同じセットにマッピングされる場合は前記提案された変更を無効にするステップを含む、請求項2に記載の方法。
【請求項4】
前記第3の結果を処理するステップは、前記提案された変更の適用により、前記記録の第1のセットに既に含まれる他の記録と重複する重複記録が1つ以上作成されることになるかどうかを特定するステップを含む、請求項1に記載の方法。
【請求項5】
前記提案された変更の適用により、1つ以上の重複記録が作成されることになるかどうかを特定するステップは、1つ以上の重複行を特定するステップを含む、請求項4に記載の方法。
【請求項6】
ソース値をそれぞれのターゲット値にマッピングする1つの行より多くの行に固有のソース値が出現しないことを保証するための前記検証基準として、1つ以上のソース値を使用することで、前記1つ以上の重複行が特定される、請求項5に記載の方法。
【請求項7】
前記記録の第2のセットは、ユーザインターフェースに入力されている前記記録の第1のセットに対する提案された変更を表す1つ以上の変更セットを含む、請求項1に記載の方法。
【請求項8】
前記入力は、以前に保存された変更セットに関連する変更を前記記録の第1のセットに適用するという命令を含む、請求項1に記載の方法。
【請求項9】
前記記録の集合体に対する前記提案された変更を検証するステップは、前記入力によって前記ユーザインターフェースで指定される他の提案された変更に対して、前記提案された変更を検証するステップを含む、請求項1に記載の方法。
【請求項10】
前記ユーザインターフェースは、記録セットの1つ以上のサブセットを選択可能に表示するための1つ以上のフィルタを含む、請求項1に記載の方法。
【請求項11】
前記少なくとも1つのプロセッサが、
前記提案された変更が有効でない場合に通知を生成するステップをさらに実行する、請求項1に記載の方法。
【請求項12】
前記通知は、前記検証基準に違反する前記提案された変更の一部を特定する、請求項11に記載の方法。
【請求項13】
記録の集合体に対する変更を管理するためのコンピュータプログラムを格納するコンピュータ可読記憶媒体であって、前記コンピュータプログラムは、コンピューティングシステムに、
データ格納システムに記録の第1のセットを格納させるための命令であって、前記記録の第1のセットは、前記記録の集合体の第1のバージョンを表す、命令と、
ユーザインターフェース上で受信された入力によって指定される、前記記録の集合体に対する提案された変更を検証させるための命令と
を含み、前記検証することは、
前記提案された変更を検証するための検証基準に基づいて前記データ格納システムへのクエリを行い、前記クエリを行うことに応じて第1の結果を受信することと、
前記記録の集合体に未だ適用されていない変更を表す記録の第2のセットを処理して、第2の結果を生成することであって、前記記録の第2セットによって表される前記変更は、前記入力によって指定される前記提案された変更と異なる、該生成することと、
前記第2の結果に基づいて前記第1の結果を更新して、第3の結果を生成することと、
前記第3の結果を処理して、前記検証基準に従って前記提案された変更が有効かどうかを決定することと
を含む、コンピュータ可読記憶媒体。
【請求項14】
記録の集合体に対する変更を管理するためのコンピューティングシステムであって、
記録の第1のセットを格納するデータ格納システムであって、前記記録の第1のセットは、前記記録の集合体の第1のバージョンを表す、データ格納システムと、
ユーザインターフェース上で受信された入力によって指定される、前記記録の集合体に対する提案された変更を検証するよう構成された少なくとも1つのプロセッサと
を含み、前記検証することは、
前記提案された変更を検証するための検証基準に基づいて前記データ格納システムへのクエリを行い、前記クエリを行うことに応じて第1の結果を受信することと、
前記記録の集合体に未だ適用されていない変更を表す記録の第2のセットを処理して、第2の結果を生成することであって、前記記録の第2セットによって表される前記変更は、前記入力によって指定される前記提案された変更と異なる、該生成することと、
前記第2の結果に基づいて前記第1の結果を更新して、第3の結果を生成することと、
前記第3の結果を処理して、前記検証基準に従って前記提案された変更が有効かどうかを決定することと
を含む、コンピューティングシステム。
【請求項15】
前記記録の第1のセットは、1つ以上のソース値を1つ以上のターゲット値にマッピングするメタデータマップをそれぞれ有する記録を含む、請求項13に記載のコンピュータ可読記憶媒体。
【請求項16】
前記第3の結果を処理することは、1つ以上のソース値の同じセットが、2つ以上の異なるメタデータマップにより、1つ以上のターゲット値の2つ以上の異なるセットにマッピングされた場合、又は1つ以上のソース値の2つ以上の異なるセットが、2つ以上の異なるメタデータマップにより、1つ以上のターゲット値の前記同じセットにマッピングされる場合は前記提案された変更を無効にさせるための命令をさらに含む、請求項15に記載のコンピュータ可読記憶媒体。
【請求項17】
前記第3の結果を処理することは、前記提案された変更の適用により、前記記録の第1のセットに既に含まれる他の記録と重複する重複記録が1つ以上作成されることになるかどうかを特定することを含む、請求項13に記載のコンピュータ可読記憶媒体。
【請求項18】
前記提案された変更の適用により、1つ以上の重複記録が作成されることになるかどうかを特定することは、1つ以上の重複行を特定することを含む、請求項17に記載のコンピュータ可読記憶媒体。
【請求項19】
ソース値をそれぞれのターゲット値にマッピングする1つの行より多くの行に固有のソース値が出現しないことを保証するための前記検証基準として、1つ以上のソース値を使用することで、前記1つ以上の重複行が特定される、請求項18に記載のコンピュータ可読記憶媒体。
【請求項20】
前記記録の第2のセットは、ユーザインターフェースに入力されている前記記録の第1のセットに対する提案された変更を表す1つ以上の変更セットを含む、請求項13に記載のコンピュータ可読記憶媒体。
【請求項21】
前記入力は、以前に保存された変更セットに関連する変更を前記記録の第1のセットに適用するという命令を含む、請求項13に記載のコンピュータ可読記憶媒体。
【請求項22】
前記記録の集合体に対する前記提案された変更を検証することは、前記入力によって前記ユーザインターフェースで指定される他の提案された変更に対して、前記提案された変更を検証することを含む、請求項13に記載のコンピュータ可読記憶媒体。
【請求項23】
前記ユーザインターフェースは、記録セットの1つ以上のサブセットを選択可能に表示するための1つ以上のフィルタを含む、請求項13に記載のコンピュータ可読記憶媒体。
【請求項24】
前記コンピュータプログラムは、前記コンピューティングシステムに、
前記提案された変更が有効でない場合に通知を生成させる命令をさらに含む、請求項13に記載のコンピュータ可読記憶媒体。
【請求項25】
前記通知は、前記検証基準に違反する前記提案された変更の一部を特定する、請求項24に記載のコンピュータ可読記憶媒体。
【請求項26】
前記記録の第1のセットは、1つ以上のソース値を1つ以上のターゲット値にマッピングするメタデータマップをそれぞれ有する記録を含む、請求項14に記載のコンピューティングシステム。
【請求項27】
前記第3の結果を処理することは、1つ以上のソース値の同じセットが、2つ以上の異なるメタデータマップにより、1つ以上のターゲット値の2つ以上の異なるセットにマッピングされた場合、又は1つ以上のソース値の2つ以上の異なるセットが、2つ以上の異なるメタデータマップにより、1つ以上のターゲット値の前記同じセットにマッピングされる場合は前記提案された変更を無効にすることを含む、請求項26に記載のコンピューティングシステム。
【請求項28】
前記第3の結果を処理することは、前記提案された変更の適用により、前記記録の第1のセットに既に含まれる他の記録と重複する重複記録が1つ以上作成されることになるかどうかを特定することを含む、請求項14に記載のコンピューティングシステム。
【請求項29】
前記提案された変更の適用により、1つ以上の重複記録が作成されることになるかどうかを特定することは、1つ以上の重複行を特定することを含む、請求項28に記載のコンピューティングシステム。
【請求項30】
ソース値をそれぞれのターゲット値にマッピングする1つの行より多くの行に固有のソース値が出現しないことを保証するための前記検証基準として1つ以上のソース値を使用することで、前記1つ以上の重複行が特定される、請求項29に記載のコンピューティングシステム。
【請求項31】
前記記録の第2のセットは、ユーザインターフェースに入力されている前記記録の第1のセットに対する提案された変更を表す1つ以上の変更セットを含む、請求項14に記載のコンピューティングシステム。
【請求項32】
前記入力は、以前に保存された変更セットに関連する変更を前記記録の第1のセットに適用するという命令を含む、請求項14に記載のコンピューティングシステム。
【請求項33】
前記記録の集合体に対する前記提案された変更を検証することは、前記入力によって前記ユーザインターフェースで指定される他の提案された変更に対して、前記提案された変更を検証することを含む、請求項14に記載のコンピューティングシステム。
【請求項34】
前記ユーザインターフェースは、記録セットの1つ以上のサブセットを選択可能に表示するための1つ以上のフィルタを含む、請求項14に記載のコンピューティングシステム。
【請求項35】
前記プロセッサは、
前記提案された変更が有効でない場合に通知を生成するようさらに構成される、請求項14に記載のコンピューティングシステム。
【請求項36】
前記通知は、前記検証基準に違反する前記提案された変更の一部を特定する、請求項35に記載のコンピューティングシステム。
【請求項37】
前記記録の第2のセットは、前記記録の集合体に対する前記提案された変更を指定する前記入力を受信する前に前記データ格納システムに格納される、請求項1に記載の方法。
【請求項38】
前記記録の第2のセットは、前記記録の集合体に対する前記提案された変更を指定する前記入力を受信する前に前記データ格納システムに格納される、請求項13に記載のコンピュータ可読記憶媒体。
【請求項39】
前記記録の第2のセットは、前記記録の集合体に対する前記提案された変更を指定する前記入力を受信する前に前記データ格納システムに格納される、請求項14に記載のコンピューティングシステム。
【請求項40】
前記記録の第2のセットにより表される前記変更は、既に提案され、検証されている、請求項1に記載の方法。
【請求項41】
前記第1の結果は、前記提案された変更により影響される情報を含む前記記録の第1のセット内の記録を示す、請求項40に記載の方法。
【請求項42】
前記第2の結果は、前記提案された変更と潜在的に矛盾する前記記録の第2のセット内に矛盾する記録があるか否かを示す、請求項41に記載の方法。
【請求項43】
前記第2の結果は、前記提案された変更により影響される情報を含む矛盾の記録内または前記記録の第1のセット内の記録を示す、請求項42に記載の方法。
【請求項44】
前記記録の第2のセットにより表される前記変更は、既に提案され、検証されている、請求項13に記載のコンピュータ可読記録媒体。
【請求項45】
前記第1の結果は、前記提案された変更により影響される情報を含む前記記録の第1のセット内の記録を示す、請求項44に記載のコンピュータ可読記録媒体。
【請求項46】
前記第2の結果は、前記提案された変更と潜在的に矛盾する前記記録の第2のセット内に矛盾する記録があるか否かを示す、請求項45に記載のコンピュータ可読記録媒体。
【請求項47】
前記第2の結果は、前記提案された変更により影響される情報を含む矛盾の記録内または前記記録の第1のセット内の記録を示す、請求項46に記載のコンピュータ可読記録媒体。
【請求項48】
前記記録の第2のセットにより表される前記変更は、既に提案され、検証されている、請求項14に記載のコンピューティングシステム。
【請求項49】
前記第1の結果は、前記提案された変更により影響される情報を含む前記記録の第1のセット内の記録を示す、請求項48に記載のコンピューティングシステム。
【請求項50】
前記第2の結果は、前記提案された変更と潜在的に矛盾する前記記録の第2のセット内に矛盾する記録があるか否かを示す、請求項49に記載のコンピューティングシステム。
【請求項51】
前記第2の結果は、前記提案された変更により影響される情報を含む矛盾の記録内または前記記録の第1のセット内の記録を示す、請求項50に記載のコンピューティングシステム。
【発明の詳細な説明】
【技術分野】
【0001】
関連出願の相互参照
本願は、2011年1月14日に出願された米国特許出願第61/433,082号の優先権を主張し、同特許は、参照により本明細書に組み込まれる。
【0002】
背景
この説明は、データの集合体に対する変更の管理に関する。
【背景技術】
【0003】
データベースシステムなどのコンピューティングシステムは、データの集合体に対する変更を管理するためのさまざまなメカニズムを提供する。ある事例では、ユーザは、データベースに格納されたデータに対する変更を提案して実施する。一般に、データベースは、格納されたデータをどのように変更することができるかを定義する規則を含む。
【発明の概要】
【課題を解決するための手段】
【0004】
要約
一態様では、一般に、記録の集合体に対する変更を管理するための方法は、データ格納システムに記録の第1のセットを格納するステップであって、記録の第1のセットは、記録の集合体の第1のバージョンを表す、ステップを含む。本方法は、ユーザインターフェース上で受信された入力によって指定される、記録の集合体に対する提案された変更を検証するステップをさらに含む。検証するステップは、提案された変更に関連する検証基準に基づいてデータ格納システムへのクエリを行い、クエリを行うステップに応じて第1の結果を受信するステップと、記録の集合体に未だ適用されていない変更を表す記録の第2のセットを処理して、第2の結果を生成するステップと、第2の結果に基づいて第1の結果を更新して、第3の結果を生成するステップと、第3の結果を処理して、検証基準に従って提案された変更が有効かどうかを決定するステップとを含む。
【0005】
別の態様では、一般に、コンピュータ可読記憶媒体は、記録の集合体に対する変更を管理するためのコンピュータプログラムを格納する。コンピュータプログラムは、コンピューティングシステムに、データ格納システムに記録の第1のセットを格納させるための命令であって、記録の第1のセットは、記録の集合体の第1のバージョンを表す、命令と、ユーザインターフェース上で受信された入力によって指定される、記録の集合体に対する提案された変更を検証させるための命令とを含む。検証するステップは、提案された変更に関連する検証基準に基づいてデータ格納システムへのクエリを行い、クエリを行うステップに応じて第1の結果を受信するステップと、記録の集合体に未だ適用されていない変更を表す記録の第2のセットを処理して、第2の結果を生成するステップと、第2の結果に基づいて第1の結果を更新して、第3の結果を生成するステップと、第3の結果を処理して、検証基準に従って提案された変更が有効かどうかを決定するステップとを含む。
【0006】
別の態様では、一般に、記録の集合体に対する変更を管理するためのコンピューティングシステムは、記録の第1のセットを格納するデータ格納システムであって、記録の第1のセットは、記録の集合体の第1のバージョンを表す、データ格納システムと、ユーザインターフェース上で受信された入力によって指定される、記録の集合体に対する提案された変更を検証するよう構成された少なくとも1つのプロセッサとを含む。検証するステップは、提案された変更に関連する検証基準に基づいてデータ格納システムへのクエリを行い、クエリを行うステップに応じて第1の結果を受信するステップと、記録の集合体に未だ適用されていない変更を表す記録の第2のセットを処理して、第2の結果を生成するステップと、第2の結果に基づいて第1の結果を更新して、第3の結果を生成するステップと、第3の結果を処理して、検証基準に従って提案された変更が有効かどうかを決定するステップとを含む。
【0007】
別の態様では、一般に、記録の集合体に対する変更を管理するためのコンピューティングシステムは、記録の第1のセットを格納するための手段であって、記録の第1のセットは、記録の集合体の第1のバージョンを表す、手段と、ユーザインターフェース上で受信された入力によって指定される、記録の集合体に対する提案された変更を検証するための手段とを含む。検証するステップは、提案された変更に関連する検証基準に基づいてデータ格納システムへのクエリを行い、クエリを行うステップに応じて第1の結果を受信するステップと、記録の集合体に未だ適用されていない変更を表す記録の第2のセットを処理して、第2の結果を生成するステップと、第2の結果に基づいて第1の結果を更新して、第3の結果を生成するステップと、第3の結果を処理して、検証基準に従って提案された変更が有効かどうかを決定するステップとを含む。
【0008】
態様は、以下の特徴の1つまたは複数を含み得る。記録の第1のセットは、1つまたは複数のソース値をそれぞれのターゲット値にマッピングするメタデータマップを含む。提案された変更は、1つまたは複数のソース値の1つが2つ以上の異なるターゲット値にマッピングされた場合は無効になる。第3の結果を処理するステップは、提案された変更の適用により、1つまたは複数の重複記録が作成されることになるかどうかを特定するステップを含む。提案された変更の適用により、1つまたは複数の重複記録が作成されることになるかどうかを特定するステップは、1つまたは複数の重複行を特定するステップを含む。1つまたは複数の重複行は、検証基準として1つまたは複数のソース値を使用することで特定される。記録の第2のセットは、ユーザインターフェースに入力されている記録の第1のセットに対する提案された変更を表す1つまたは複数の変更セットを含む。入力は、以前に保存された変更セットに関連する変更を記録の第1のセットに適用するという命令を含む。記録の集合体に対する提案された変更を検証するステップは、入力によってユーザインターフェースで指定される他の提案された変更に対して、提案された変更を検証するステップを含む。ユーザインターフェースは、記録セットの1つまたは複数のサブセットを選択可能に表示するための1つまたは複数のフィルタを含む。提案された変更が有効でない場合は通知が生成される。通知は、検証基準に違反する提案された変更の一部を特定する。
【0009】
態様は、以下の利点の1つまたは複数を含み得る。例えば、本明細書に記載される技法を使用して、さまざまなデータベースおよびファイルの整合性および精度を維持することができる。また、本明細書に記載される技法により、管理者は、1つまたは複数の記録システムを効率的に維持することができる。
【0010】
発明の他の特徴および利点は、以下の説明および特許請求の範囲から明らかになるであろう。
【図面の簡単な説明】
【0011】
図面の説明
【
図1】グラフベースのコンピューテーションを実行するためのシステムのブロック図である。
【
図2】記録の集合体に対する変更を管理するための例示的な手順のフローチャートである。
【
図3】例示的なコンピューティング環境のスクリーンショットである。
【
図4A】例示的なコンピューティング環境のスクリーンショットである。
【
図4B】例示的なコンピューティング環境のスクリーンショットである。
【発明を実施するための形態】
【0012】
説明
図1は、データの集合体(例えば、記録として構造化されたデータ)に対する変更を管理するための技法を使用できる例示的なコンピューティング環境100を示す。システム100は、記憶装置またはオンラインデータストリームとの接続部などの1つまたは複数のデータソースを含み得るデータ格納システム112を含み、それぞれは、さまざまな格納形式のいずれかの形式(例えば、メインフレームによって使用されるデータベース表、スプレッドシートファイル、フラットテキストファイルまたはネイティブ形式)でデータを格納することができる。
【0013】
処理環境106は、処理エンジン108と、検証エンジン110とを含む。処理環境106は、UNIX(登録商標)オペレーティングシステムなどの適切なオペレーティングシステムの制御下で、1つまたは複数の汎用コンピュータをホストとすることができる。例えば、処理環境106は、ローカルで接続された(例えば、SMPコンピュータなどのマルチプロセッサシステム)もしくはローカルで分散された(例えば、クラスタもしくはMPPとして結合された複数のプロセッサ)、または、リモートで接続されたもしくはリモートで分散された(例えば、ローカルエリアネットワーク(LAN)および/または広域ネットワーク(WAN)を介して結合された複数のプロセッサ)、あるいは、それらの任意の組み合わせの、複数の中央演算処理装置(CPU)を使用したコンピュータシステムの構成を含む複数ノード並列演算環境を含み得る。
【0014】
データ格納システム112を提供する記憶装置は、処理環境106とローカルで接続する、例えば、処理環境106を実行しているコンピュータに接続された記憶媒体(例えば、ハードドライブ)に格納することもでき、処理環境106とリモートで接続する、例えば、リモート接続上で、処理環境106を実行しているコンピュータと連通するリモートシステム(例えば、メインフレーム)をホストとすることもできる。
【0015】
処理環境106(および/または処理エンジン108などのその関連コンポーネント)は、異なる形式のデータベースシステムを含むさまざまなタイプのシステムからデータを受信することができる。データは、恐らくヌル値を含む、それぞれのフィールド(「属性」または「列」とも呼ばれる)に対する値を有する記録として組織化することができる。データソースから最初にデータを読み取る際、処理環境106は、通常、そのデータソース内の記録についてのいくつかの初期のフォーマット情報から始める。状況次第では、データソースの記録構造は、初めは知られていない場合があり、代わりに、データソースの分析後に決定される場合がある。記録についての初期情報は、異なる値を表すビット数と、記録内のフィールドの順番と、ビットによって表される値のタイプ(例えば、ストリング、符号付き/符号なし整数)とを含み得る。
【0016】
また、コンピューティング環境100は、ユーザ101から処理環境106にコマンドを通信するよう構成されたユーザインターフェース102も含む。ある例では、以下でさらに詳細に説明されるように、ユーザ101は、ユーザインターフェース102を使用して、提案された記録変更104を入力することができる。例えば、ユーザ101は、記録セット116内の表からの行もしくは列の追加および/もしくは削除、または、表の1つもしくは複数のフィールドの値に対する変更を含む提案された記録変更104を入力することによって、データ格納システム112に格納された記録セット116内の1つまたは複数の記録の変更を試みることができる。また、ユーザインターフェース102は、コンピュータディスプレイ、スピーカおよび同様のものなど、さまざまな出力デバイスを使用して、処理環境106からユーザ101に情報を通信することもできる。例えば、ユーザインターフェース102は、データ格納システム112に格納された情報をグラフで表すことができるグラフ表示(例えば、データベース表の列と行を表すグリッドを表示することによって)を含み得る。
【0017】
処理エンジン108および検証エンジン110は、提案された記録変更104およびデータ格納システム112から検索された情報を使用して、データ格納システム112に格納された記録セット116に対する変更を検証および/または実施する。データ格納システム112から検索された情報は、1つまたは複数の未定の記録変更114(例えば、まだ実施されていないが、既に検証および/または保存が行われている可能性がある記録セット116に対する変更)に関連する情報を含み得る。いくつかの例では、未定の記録変更は、「変更セット」と呼ばれる。一般に、処理エンジン108は、1つまたは複数の記録セットを変更するための命令を表すデータを含む記録データを受信して処理する。処理エンジン108は、提案された記録変更104、未定の記録変更114および記録セット116からのデータを使用して、データ格納システム112に格納された記録セット116を変更するための命令を生成または実行することができる。ある例では、検証エンジン110は、記録の集合体を変更するため、命令が実行される前に(例えば、処理エンジン108によって)記録の集合体を変更するための命令を検証する。処理環境106は処理エンジン108と検証エンジン110の両方を含むが、処理環境106は、任意の数の個別のタスクエンジン間でそのタスクを分割することができる。例えば、単一のタスクエンジンは、処理エンジン108と検証エンジン110の両方の機能を実行することが可能である。同様に、処理エンジン108および検証エンジン110によって実行されるタスクは、多数のサブタスクエンジン間で分割することが可能である。
【0018】
データ格納システム112に格納されたデータは、処理環境106でアクセス可能である。また、データ格納システム112は、開発者101がデータ格納システム112に格納されたデータに対する変更を提案して実施することができるユーザインターフェース102でも直接または間接的にアクセス可能である。ある例では、ユーザインターフェース102は、頂点間の有向リンク(作業要素のフローを表す)によって接続された頂点(コンポーネントまたはデータセットを表す)を含むデータフローグラフなどのアプリケーションを開発するための開発環境に関連する。例えば、そのような環境については、参照により本明細書に組み込まれる「Managing Parameters for Graph-Based Applications」と称する米国特許出願公開第2007/0011668号でさらに詳細に説明されている。そのようなグラフベースのコンピューテーションを実行するシステムについては、参照により本明細書に組み込まれる米国特許第5,566,072号「EXECUTING COMPUTATIONS EXPRESSED AS GRAPHS」で説明されている。このシステムに従って作成されたデータフローグラフは、グラフコンポーネントによって表される個別のプロセスに情報を持ち込む、および個別のプロセスから情報を引き出すための方法、プロセス間で情報を移動するための方法、ならびに、プロセスに対する実行順番を定義するための方法を提供する。このシステムは、プロセス間通信方法(例えば、グラフのリンクに従った通信経路は、TCP/IPもしくはUNIX(登録商標)ドメインソケットを使用することも、共有メモリを使用して、プロセス間でデータを渡すこともできる)を選択するアルゴリズムを含む。
【0019】
図2は、記録の集合体に対する変更を管理するための例示的な手順200のフローチャートを示す。手順200は、コンピューティング環境100のモジュールの1つまたは複数(例えば、処理エンジン108)によって実行することができる。
【0020】
記録の第1のセットが、データ格納システムに格納される(202)。記録の第1のセットは、記録の集合体の第1のバージョンを表す。ある例では、記録の集合体は、メタデータマップなど、データ処理の際に使用するために正確に維持および更新すべき情報の集合体を表す。一般に、メタデータマップは、2つの異なるシステム間での値の変換を指定することができる。例えば、第1のシステムが値M(男性)およびF(女性)を使用して「性別」フィールドを定義し、第2のシステムが値0(男性)および1(女性)を使用して性別フィールドを定義する場合、メタデータマップを使用して、第1の(「ソース」)システムから第2の(「ターゲット」)システムへ値を変換することができる(例えば、M→0、F→1)。マッピングは、単一フィールド間またはフィールドセット間で行うことができる(例えば、第1のシステムから第2のシステムに複数の列をマッピングする)。例えば、人物の性別を表す第1の列および人物が居住する州を表す第2の列を含む記録を格納する第1のシステムについて考慮する。この例では、性別コードは州に依存し得、第1の性別コードマッピングはある州に対して使用され、第2の性別コードマッピングは別の州に対して使用される。MA州の記録は、値1を男性にマッピングし得るが、NY州の記録は、値3を男性にマッピングし得る。この例では、MA/0の組み合わせは、男性にマッピングし、MA/1の組み合わせは、女性にマッピングし、NY/3の組み合わせは、男性にマッピングする。
【0021】
ある例では、メタデータマップは、1つの(および唯一の)ソース値から1つのターゲット値への変換を提供する。これらの例では、そのような変換はエラーを引き起こす恐れがあるため、メタデータマップは、M→0およびF→0に対する変換を提供することはできない。この様式の変換は、2つの異なるソース値が同じターゲット値にマッピングされることになるため、「M」と「F」との区別を本質的に破壊することになる。それに応じて、多くの場合、各ターゲット値は、1つのソース値にのみ関連し得る。他の実装形態では、ターゲットシステムが2つの異なるソース値(例えば、MとF)間の区別を維持することが望ましくない場合は、複数のソース値を同じターゲット値にマッピングすることが可能である。
【0022】
入力によって指定される記録の集合体に対する提案された変更が、検証される(204)。ある例では、提案された変更を検証するステップ(204)は、手順206、208、210および212を含む検証プロセス205を含む。すなわち、提案された変更を検証するステップ(204)では、提案された変更に関連する検証基準に基づいてデータ格納システムへのクエリを行い、クエリを行うステップに応じて第1の結果を受信する(206)。例えば、提案された記録変更104についての情報を受信した後、処理エンジン108は、データ格納システム112へのクエリを行う。ある例では、データ格納システム112へのクエリを行うステップにより、データ格納システム112は、提案された変更104によって影響を受ける行および/または列に関連する行および/または列を特定する第1の結果を返すことになる。クエリが基づく検証基準は、特定の行のソースまたはターゲット列からの値のセットを表す。例えば、ソース列検証基準を使用して、提案された変更104の実施が記録セット116内の重複行をもたらさないことを検証することができ、ターゲット列からの値を使用して、ソース値とターゲット値との間のマッピングが可逆的なものであることを検証することができる(例えば、ターゲット値の各セットがユニークなものであることを確認するため)。処理エンジン108は、提案された記録変更104の検証において後に使用するために、第1の結果を格納することができる(例えば、ローカルメモリに)。
【0023】
第2の結果を生成するため、記録の集合体に未だ適用されていない変更を表す記録の第2のセット(「変更セット」)が、処理される(208)。例えば、処理エンジン108は、第2の結果を生成するため、提案された記録変更104と矛盾し得る変更を表す、データ格納システム112に格納された未定の記録変更114を処理することができる。例えば、提案された記録変更104が行Xの値を修正するという命令を含む場合、処理エンジンは、行Xに関連する未定の記録変更114からいかなる情報も抽出することができる。未定の記録変更114から抽出された情報は、第2の結果として格納される(例えば、ローカルメモリに)。ある実施形態では、処理エンジン108は、未定の記録変更114を考慮することなく、提案された記録変更104を検証するため、第1の結果を検証エンジン110に渡すことができる。同様に、処理エンジン108は、提案された記録変更104を考慮することなく、未定の記録変更114を検証するため、第2の結果を検証エンジン110に渡すことができる。ある例では、
図4A、4Bに示される環境および技法の1つまたは複数(以下でさらに詳細に説明される)を使用して、変更セットを生成することができる。
【0024】
第1の処理結果が、第2の結果に基づいて更新されて、第3の結果が、生成される(210)。例えば、上記で論じられる方法で第1および第2の結果を生成した後、処理エンジン108は、第2の結果からの情報を用いて第1の結果を更新して、第3の結果を生成することができる。ある例では、第3の結果は、第1および第2の結果において特定された行および/または列を含む。第3の結果を処理して、検証基準に従って提案された変更が有効かどうかを決定することができる(212)。例えば、処理エンジン108は、第3の結果および提案された記録変更104を検証エンジン110に渡すことができる。次いで、検証エンジン110は、提案された記録変更104を比較して(例えば、提案された記録変更104において特定された検証基準を使用して)、提案された記録変更104が有効かどうかを決定することができる(214)。記録セットに対する提案された変更が有効かどうかを決定するステップは、重複ソース値をチェックするステップ、ソース値の各セットがターゲット値のユニークなセットにマッピングされることを実証するステップおよびいかなる範囲(例えば、日付範囲)も重複しないことを実証するステップの1つまたは複数を含み得る。
【0025】
提案された変更が無効である(いいえ)と決定された場合は、提案された変更が、拒否される(218)。また、1つまたは複数のユーザ通知が、生成され得る(220)。ある例では、通知は、提案された変更が無効になった1つまたは複数の理由を特定することができる。例えば、提案された変更が未定の記録変更114において削除されている行を修正するという命令を含むことが原因で、検証エンジン110が提案された変更を拒否すれば、提案された記録変更104と未定の記録変更114との間の矛盾を特定する通知をユーザインターフェース102上で生成することができる。
【0026】
提案された変更が有効である(はい)と決定された場合は、提案された変更が、記録の集合体に適用され得る。例えば、検証エンジン110が検証基準に従って提案された変更104が有効であることを決定すれば、処理エンジン108(または別の適切な実体)は、提案された記録変更104において提供された命令に従って、記録セット116を修正することができる。例えば、提案された記録変更104が記録セット116の行を修正するという命令を含み、検証エンジン110が検証基準に従って提案された変更104が有効であることを決定する場合は、処理エンジン108は、提案された記録変更104において特定された記録セット116の行を修正することができる。
【0027】
ある例では、検証基準に基づいて外部の表からの行についてクエリを行う検証プロセス、それはソース値セットまたはターゲット値セットのいずれかであり得る。次いで、データ格納システム(例えば、メタデータ格納リポジトリ)は、外部の行の更新または削除を表す現在の変更セットに関して、保存された行に対してクエリを受け得る。ある例では、データ格納システムのこのクエリは、オーバーライドの本質は結果として得られた行がもはや検証基準に適合しないことを意味し得るため、検証基準を使用しない場合がある。保存されたオーバーライドに基づいて、もはや検証基準に適合しない外部の行は、データ格納システムから除去することができる。次いで、データ格納システムは、検証基準に適合する行に対してクエリを受け得る。既に検証セット内にある外部の行のユニークな識別子に適合する、結果として得られた行の一部またはすべては、対応する外部の行を置き換えることができる。次いで、検証基準に適合する他の行は、セットに追加することができる。最終的に、ユーザインターフェースからのいかなる未保存の変更も、最新の変更が検証基準に適合するかどうかに基づいて、検証セットから、同じユニークな識別子を有する既存の行を置き換えるまたは除去することができる。検証基準に適合し、新しい行(例えば、外部の表に対する挿入)を表す未保存の行は、検証セットに追加することができる。次いで、行の最終セットを使用して、検証を適用することができる。
【0028】
図3は、例えば、ユーザインターフェース102上で表示され得る環境300の例示的なスクリーンショットである。ユーザ(例えば、ユーザ101)は、環境300を使用して、1つまたは複数の記録を閲覧したり相互作用したりすることができる。環境300は、ファイルエクスプローラ312を提供し、ファイルエクスプローラ312は、1つまたは複数の組織システムを使用して、ファイルの構成を表示する。この例では、ファイルは階層構造に組織化される(例えば、親「Mappings」は子ノード「Maps」を含み、子ノード「Maps」は順に多くの下位の子ノードファイルを含む)。ユーザは、ファイルエクスプローラをナビゲートして、選択されたファイル303などの1つまたは複数のファイルを選択して表示することができる。
【0029】
ファイルが選択された後、選択されたファイル303に関連するデータに1つまたは複数のフィルタ314を適用することができる。フィルタ314の適用は、例えば、環境300で表示されるデータのタイプまたは量を変更することができる。例えば、選択されたファイル303にフィルタ314を適用して、ターゲット値が入力されていない行の表示を抑制することができる。
【0030】
この例では、選択されたファイル303は、メタデータマップである。上記で論じられるように、一般に、メタデータマップは、2つの異なるシステム間での値の変換であり得る。
図3では、メタデータマップは、第1の行304を含む5つの行302を含む。また、メタデータマップは、第1の列308と第2の列310を含む2つの列306も含む。第1の行304を参照すると、第1の列308は、ある1つのメタデータに対するソース値(P001)を表す。第2の列310は、同じある1つのメタデータに対するターゲット値(Y)を表す。したがって、この例では、第1の列308および第2の列310は、選択されたファイル303の第1の行304に対するメタデータマップを定義し、ソース値P001をターゲット値「Y」にマッピングする。
【0031】
図4Aおよび4Bは、例示的な環境400A、400Bであり、無効な提案された変更に関連する行が閲覧環境に自動的に提供され、その結果、ユーザは、規則違反の視覚表示を見ることができる技法のデモンストレーションを行う。
図4Aは、上記で説明される環境300(
図3)と同様の環境400Aの例示的なスクリーンショットである。環境400Aは、選択されたファイルに関連するメタデータを表示し、第1の行404を含む。この例では、フィルタ402により、環境400Aは、ソース値が値「P002」を有する行のみを表示し、この行は第1の行404を含む。第1の行404の第1の列は、ソース値406 P002を含み、これは、第1の行404の第2の列のターゲット値408「N」にマッピングされる。それに応じて、第1の行404は、ソース値406 P002に対するメタデータマップを表す。
【0032】
図4Bは、ユーザ(または他の実体)が無効な変更を表す第2の行410を追加した環境400Bを示す。上記で説明されるように、無効な変更により、通知で示されるタイプの行を本来なら抑制することになるフィルタが存在するにもかかわらず、規則違反(例えば、検証基準の違反)をユーザに通知するための通知が生成されることになり得る。例えば、
図4Aと同様に、フィルタ402は有効な状態を保ち、これにより、通常、表示される行をソース値が値P002を有する行に制限することができる。しかし、この例では、第2の行410が追加されており(例えば、提案された変更104として)、これは、ソース値412「P003」をターゲット値414「X」にマッピングすることを提案する。提案された変更を分析すると同時に、提案された変更は、第1の結果(例えば、記録セット116に関連する第1の結果)および第2の結果(例えば、未定の記録変更114に関連する第2の結果)の一方または両方に対して無効になる。この例では、検証基準は単一のソース値を2つ以上のターゲット値にマッピングすることはできないと指定しているため、ターゲット値X 414へのソース値412 P003の提案されたマッピングは、矛盾する行409で示される、ターゲット値407「Y」へのソース値412 P003の既存のマッピングと矛盾するため、無効である。
【0033】
検証プロセスは、さまざまな技法を使用してトリガすることができる。例えば、ユーザは、記録の集合体に対する提案された変更を検証することを検証エンジン110(
図1)に指示する「変更を検証する」コントロールを起動することができる。また、検証プロセスは、ユーザインターフェース(例えば、環境400A、400B)に変更が入力された後でトリガすることもできる。ある例では、検証プロセスは、リアルタイムで起こり得、ユーザがユーザインターフェースに変更を入力する(例えば、タイプする)と、記録の集合体に対する変更を検証することができる。したがって、検証プロセスは、格納された(例えば、外部に格納された)記録の集合体、格納された未定の記録変更のセット(例えば、変更セット)およびユーザインターフェースに現れるが、変更セットとして未だ保存されていない、または記録の集合体に未だ適用されていない変更に対して、提案された変更を検証することができる(例えば、ユーザインターフェースにおける第1の変更は、未だ実施されていない、または変更セットとして未だ保存されていないユーザインターフェースにおける他の変更に対して検証することができる)。
【0034】
提案された変更が無効になった後、矛盾する行409は、そうでなければP002以外のソース値を有する行を抑制することになるフィルタ402を適用するにもかかわらず、環境400Bにおいてレンダリングすることができる。この場合、矛盾する行409は、無効な提案された変更を表す違反する行(行410)に隣接してレンダリングされる。それに加えて、1つまたは複数の通知414、416を生成して、無効な提案された変更にユーザの注目を集めることができる。無効な提案された変更を訂正するため、ユーザは、違反した検証規則を満たすため、提案された変更の削除、または、提案された変更および/もしくは矛盾する値の修正のいずれかを行うことができる。
【0035】
また、環境400Bは、ユーザによって起動され得る保存コントロール418と、保存&提出コントロール420とを含む。ある例では、保存コントロール418の起動は、ユーザによって入力されたいかなる提案された変更も保存するが、提案された変更を記録セットに適用することはない(例えば、保存コントロール418の起動に応じて、記録セットに関連するデータが変更されることはない)。代わりに、保存コントロール418の起動により、記録セットに未だ適用されていない保存された提案された変更(例えば、
図1に示される未定の記録変更114)を含むファイル(例えば、変更セット)が生成され得る。保存&提出コントロール420は、提案された変更の保存と記録セットへのそれらの適用の両方を行うためにユーザによって起動され得る。したがって、提案された変更が有効であると決定されれば(例えば、
図2に関連して説明されるプロセス200によって)、提案された変更に従って記録セットが変更されることになる。ある例では、ユーザは、変更セットをさらに編集するため、または、変更セットで示される変更を実施するため、変更セットにアクセスすることができる。記録の集合体への変更セットの実施は、プロセス200(
図2)と同様の検証プロセス次第である。変更セットを実施する(例えば、変更セットの提案された変更を記録の集合体に適用する)と、変更セットは提案された変更104を表し得、未定の記録変更114は有効になった変更セットとは異なる1つまたは複数の変更セットであり得る。
【0036】
上記で説明される記録の集合体に対する変更を管理するための技法は、コンピュータ上で実行するためのソフトウェアを使用して実施することができる。例えば、ソフトウェアは、1つまたは複数のプログラムされたまたはプログラム可能なコンピュータシステム(それは、分散型、クライアント/サーバまたはグリッドなどのさまざまなアーキテクチャのものである)上で実行する1つまたは複数のコンピュータプログラムの手順を形成し、コンピュータシステムはそれぞれ、少なくとも1つのプロセッサと、少なくとも1つのデータ格納システム(揮発性および不揮発性メモリならびに/または格納要素を含む)と、少なくとも1つの入力デバイスまたはポートと、少なくとも1つの出力デバイスまたはポートを含む。ソフトウェアは、例えば、データフローグラフの設計および構成に関連する他のサービスを提供する大規模なプログラムの1つまたは複数のモジュールを形成することができる。グラフのノードおよび要素は、コンピュータ可読媒体に格納されたデータ構造、または、データリポジトリに格納されたデータモデルに適合する他の組織化されたデータとして実装することができる。
【0037】
ソフトウェアは、汎用または特殊用途のプログラム可能なコンピュータによる読み取りが可能なCD−ROMなどの記憶媒体上で提供されても、ネットワークの通信媒体上で、ソフトウェアが実行されるコンピュータに送達されてもよい(伝播信号で符号化される)。機能のすべては、特殊用途のコンピュータ上で、または、コプロセッサなどの特殊用途のハードウェアを使用して実行することができる。ソフトウェアは、ソフトウェアによって指定されるコンピューテーションの異なる部分は異なるコンピュータによって実行される分散様式で実施することができる。それぞれのそのようなコンピュータプログラムは、好ましくは、汎用もしくは特殊用途のプログラム可能なコンピュータによる読み取りが可能な記憶媒体もしくはデバイス(例えば、ソリッドステートメモリもしくは媒体、または、磁気もしくは光媒体)上に格納されるか、または、同記憶媒体もしくはデバイスにダウンロードされるが、それは、コンピュータシステムで記憶媒体もしくはデバイスを読み取り、本明細書に記載される手順を実行する際にコンピュータを構成および動作するためである。また、本発明のシステムは、コンピュータ可読記憶媒体として実装され、コンピュータプログラムを用いて構成されるものと考慮され得、そのように構成された記憶媒体は、特定の事前に定義された様式でコンピュータシステムを動作させ、本明細書に記載される機能を実行する。
【0038】
本発明の多くの実施形態について説明してきた。それにもかかわらず、本発明の精神および範囲から逸脱することなく、さまざまな変更を行うことができることが理解されよう。例えば、上記で説明されたステップのいくつかは、順番に依存しないものであり得、したがって、説明されている順番とは異なる順番で実行することができる。
【0039】
前述の説明は、例示を意図するものであり、本発明の範囲を限定するものではなく、本発明の範囲は、添付の特許請求の範囲によって定義されることを理解されたい。例えば、上記で説明された多くの機能ステップは、処理全体に実質的に影響を与えることなく、異なる順番で実行することができる。他の実施形態は、以下の特許請求の範囲内にある。