(58)【調査した分野】(Int.Cl.,DB名)
要約オブジェクトのうちの1又は2以上に記憶された要約情報に従って、関心があるものとして指定されたそれぞれのノードが、それぞれのアイコンによって表され、複数の残りのノードが、関心のある複数のノードに接続された共通のアイコンによって表される、有向グラフの少なくとも一部の視覚的表現としてデータ系統図を生じさせるステップをさらに含む、請求項1に記載の方法。
共通のアイコンに関連する詳細を見たいというユーザの望みを示すユーザ入力を受け取り、前記ユーザ入力に応じて、前記共通のアイコンによって表される複数の残りのノードをトラバースし、要約情報に関連する前記複数の残りのノードを含む有向グラフのパスのトラバースに基づいてデータ系統図において前記残りのノードを視覚的に表すステップをさらに含む、請求項2に記載の方法。
有向グラフを通り抜ける1又は2以上のパスの少なくとも一部に関して、パスをトラバースすることが、目標ノードから上流方向に前記パスの第1の部分をトラバースすることと、前記目標ノードから下流方向に前記パスの第2の部分をトラバースすることとを含む、請求項4に記載の方法。
パスの第1の部分をトラバースすることが、関心のある第1の上流のノードから関心のある第2の上流のノードまで関心のある前記第1の上流のノードに関連する要約オブジェクトに対応するリンクをトラバースすることをさらに含む、請求項6に記載の方法。
パスの第2の部分をトラバースすることが、関心のある第1の下流のノードから関心のある第2の下流のノードまで関心のある前記第1の下流のノードに関連する要約オブジェクトに対応するリンクをトラバースすることをさらに含む、請求項8に記載の方法。
1又は2以上の要約オブジェクトが、2又は3以上の要約オブジェクトを含み、系統図を生じさせるステップが、前記2又は3以上の要約オブジェクトの少なくとも一部を共通のアイコンによって表される要約ノードへと統合することをさらに含む、請求項2に記載の方法。
2又は3以上の要約オブジェクトの少なくとも一部を要約ノードへと統合することが、前記2又は3以上の要約オブジェクトの前記少なくとも一部によってリンクされた関心のあるノードの間の関係を分析して、前記2又は3以上の要約オブジェクトの前記少なくとも一部を統合することが可能であるかどうかを決定することを含む、請求項10に記載の方法。
関心のあるノードの間の関係を分析することが、2又は3以上の要約オブジェクトの少なくとも一部が関心のある共通の下流のノードに関連付けられると決定することを含む、請求項11に記載の方法。
コンピューティングシステムが、関心があるものとして指定されたその他のノードの位置に対するノードの少なくとも一部の位置に基づいて前記ノードの前記少なくとも一部に関する関心の指定を生じさせる、請求項14に記載の方法。
コンピューティングシステムが、ノードの少なくとも一部が、関心があるものとして指定されたその他のノードとデータ構造を共有することに基づいて前記ノードの前記少なくとも一部に関する関心の指定を生じさせる、請求項14に記載の方法。
コンピューティングシステムが、複数の別々の相互に接続されたサブシステムを含み、有向グラフの一部が、前記サブシステムの少なくとも一部の間に分散される、請求項2に記載の方法。
データ系統を決定することが、各トラバースされたノードについて、前記トラバースされたノードが第1のノードの印に関連付けられず、又は前記トラバースされたノードが前記第1のノードの印に関連付けられ、第1のサブセットの少なくとも1つの印が付けられた値に関連付けられている場合に、前記トラバースされたノードを前記データ系統に追加すること、又は前記トラバースさられたノードが前記第1のノードの印に関連付けられ、前記第1のサブセットの少なくとも1つの印が付けられた値に関連付けられていない場合に、前記トラバースされたノードを前記データ系統から除外することを含む、請求項19に記載の方法。
複数のノードのノードをトラバースする前に、前記複数のノードを分析して、第1のノードの印に関連付けられ、前記第1のノードの印についての複数の可能な印が付けられた値の第1のサブセットの少なくとも1つの印が付けられた値に関連付けられていない前記複数のノードの第1のサブセットを決定するステップをさらに含む、請求項19に記載の方法。
トラバースされたノードをデータ系統に追加するか、又は前記トラバースされたノードを前記データ系統から除外するかを決定することが、前記トラバースされたノードが複数のノードの第1のサブセットに含まれるかどうかを決定することを含む、請求項22に記載の方法。
トラバースされたノードをデータ系統に追加するかどうかを決定することが、前記トラバースされたノードが複数のノードの第1のサブセットに含まれていない場合に、前記トラバースされたノードを前記データ系統に追加することと、前記トラバースされたノードが前記複数のノードの前記第1のサブセットに含まれている場合に、前記トラバースされたノードを前記データ系統から除外することとを含む、請求項23に記載の方法。
データ系統図内のコンテナオブジェクトの展開された視覚的表現が、(1)1又は2以上のデータ変換ノード又はデータノード、(2)1又は2以上の要約オブジェクト、又は(3)1又は2以上のコンテナオブジェクトのうちの少なくとも2つの視覚的表現を含む、請求項1に記載の方法。
データ系統図内のコンテナオブジェクトの展開された視覚的表現が、(1)1又は2以上のデータ変換ノード又はデータノード、(2)1又は2以上の要約オブジェクト、及び(3)1又は2以上のコンテナオブジェクトの視覚的表現を含む、請求項25に記載の方法。
有向グラフが、データノードとデータ要素を変換する計算を表すデータ変換ノードとの間の有向リンクを含み、データノードとデータ変換ノードとの間の前記有向リンクが、計算と前記計算の実行中に前記計算によって受け取られるか又は生成されるデータ要素との間のそれぞれの系統の関係を表す、請求項1に記載の方法。
コンピュータ可読媒体に非一時的形態で記憶された、コンピューティングシステムにおいて系統情報を管理するためのソフトウェアであって、コンピューティングシステムに、請求項1〜12及び17〜24のいずれかに記載の方法を実行させるための命令を含む、前記ソフトウェア。
【発明の概要】
【課題を解決するための手段】
【0005】
一態様においては、概して、コンピューティングシステムにおいて系統情報を管理するための方法が、データ要素を変換する計算を表す1又は2以上のデータ変換ノード、及びデータ要素を表す1又は2以上のデータノードを含み、計算と計算の実行中に計算によって受け取られるか又は生成されるデータ要素との間のそれぞれの系統の関係を表す有向リンクを含む有向グラフの識別情報を入力デバイス又はポートを介して受け取るステップと、少なくとも1つのプロセッサを使用して、有向グラフ内のパスに基づいて要約情報を計算し、要約情報を1又は2以上の要約オブジェクト(summary object)に記憶するステップとを含み、計算は、有向グラフの複数のノードに関する関心の指定を受け取ることと、関心のある複数のノードに含まれない残りのノードに関する1又は2以上の要約オブジェクトを生じさせることであって、1又は2以上の要約オブジェクトのうちの第1の要約オブジェクトが、残りのノードのうちの1又は2以上を確かに含み、関心のある第1のノード及び関心のある第2のノード以外に関心のあるいかなるノードも含まない第1のノードと第2のノードとの間の第1のパスに基づく要約情報を含む、生じさせることとを含む。
【0006】
態様は、以下の特徴のうちの1又は2以上を含み得る。
【0007】
第1の要約オブジェクトを生じさせることは、関心のある第1のノードと関心のある第2のノードとの間の第1のパスをトラバースして、関心があるものとして指定されていない1又は2以上の残りのノードを第1のパスに沿って特定することと、特定された1又は2以上の残りのノードに関する要約情報を形成することとを含む。
【0008】
前記方法は、要約オブジェクトのうちの1又は2以上に記憶された要約情報に従って、関心があるものとして指定されたそれぞれのノードが、独自のアイコンによって表され、複数の残りのノードが、関心のある複数のノードに接続された共通のアイコンによって表される、有向グラフの少なくとも一部の視覚的表現としてデータ系統図を生じさせるステップをさらに含む。
【0009】
前記方法は、共通のアイコンに関連する詳細を見たいというユーザの望みを示すユーザ入力を受け取り、ユーザ入力に応じて、共通のアイコンによって表される複数の残りのノードをトラバースし、要約情報に関連する複数の残りのノードを含む有向グラフのパスのトラバースに基づいてデータ系統図において残りのノードを視覚的に表すステップをさらに含む。
【0010】
前記方法は、1若しくは2以上のデータ変換ノードのうちの1つ又は1若しくは2以上のデータノードのうちの1つの目標ノードとしての指定を受け取るステップをさらに含み、データ系統図を生じさせるステップは、有向グラフを通り抜ける1又は2以上のパスをトラバースすることを含み、1又は2以上のパスのうちのそれぞれのパスは、関心のある2又は3以上のノード及び目標ノードを含む。
【0011】
有向グラフを通り抜ける1又は2以上のパスの少なくとも一部に関して、パスをトラバースすることは、目標ノードから上流方向にパスの第1の部分をトラバースすることと、目標ノードから下流方向にパスの第2の部分をトラバースすることとを含む。
【0012】
パスの第1の部分をトラバースすることは、目標ノードに関心のあるノードであるものとして印が付けられているかどうかを決定すること、及び目標ノードが関心のあるノードであると決定される場合に、目標ノードから関心のある第1の上流のノードまで目標ノードに関連する要約オブジェクトに対応するリンクをトラバースすること、そうでなければ、目標ノードが関心のあるノードであると決定されない場合に、関心があるものとして指定されていない1又は2以上のデータ変換ノード又はデータノードをトラバースすることを含む、目標ノードと関心のある第1の上流のノードとの間の有向グラフの元のパスをトラバースすることを含む。
【0013】
パスの第1の部分をトラバースすることは、関心のある第1の上流のノードから関心のある第2の上流のノードまで関心のある前記第1の上流のノードに関連する要約オブジェクトに対応するリンクをトラバースすることをさらに含む。
【0014】
パスの第2の部分をトラバースすることは、目標ノードに関心のあるノードであるものとして印が付けられているかどうかを決定すること、及び目標ノードが関心のあるノードであると決定される場合に、目標ノードから関心のある第1の下流のノードまで目標ノードに関連する要約オブジェクトに対応するリンクをトラバースすること、そうでなければ、目標ノードが関心のあるノードであると決定されない場合に、関心があるものとして指定されていない1又は2以上のデータ変換ノード又はデータノードをトラバースすることを含む、目標ノードと関心のある第1の下流のノードとの間の有向グラフの元のパスをトラバースすることを含む。
【0015】
パスの第2の部分をトラバースすることは、関心のある第1の下流のノードから関心のある第2の下流のノードまで関心のある第1の下流のノードに関連する要約オブジェクトに対応するリンクをトラバースすることをさらに含む。
【0016】
1又は2以上の要約オブジェクトは、2又は3以上の要約オブジェクトを含み、系統図を生じさせるステップは、2又は3以上の要約オブジェクトの少なくとも一部を共通のアイコンによって表される要約ノード(summary node)へと統合することをさらに含む。
【0017】
2又は3以上の要約オブジェクトの少なくとも一部を要約ノードへと統合することは、2又は3以上の要約オブジェクトの少なくとも一部によってリンクされた関心のあるノードの間の関係を分析して、2又は3以上の要約オブジェクトの少なくとも一部を統合することが可能であるかどうかを決定することを含む。
【0018】
関心のあるノードの間の関係を分析することは、2又は3以上の要約オブジェクトの少なくとも一部が関心のある共通の下流のノードに関連付けられると決定することを含む。
【0019】
ノードの少なくとも一部に関する関心の指定は、ユーザから受け取られる。
【0020】
ノードの少なくとも一部に関する関心の指定は、コンピューティングシステムによって生じさせられる。
【0021】
コンピューティングシステムは、関心があるものとして指定されたその他のノードの位置に対するノードの少なくとも一部の位置に基づいてノードの少なくとも一部に関する関心の指定を生じさせる。
【0022】
コンピューティングシステムは、ノードの少なくとも一部が関心があるものとして指定されたその他のノードとデータ構造を共有すること基づいてノードの少なくとも一部に関する関心の指定を生じさせる。
【0023】
コンピューティングシステムは、複数の別々の相互に接続されたサブシステムを含み、有向グラフの一部は、サブシステムの少なくとも一部の間に分散される。
【0024】
サブシステムの少なくとも一部は、共通のアイコンによって表される。
【0025】
別の態様においては、概して、コンピューティングシステムにおいて系統情報を管理するためのソフトウェアが、コンピュータ可読媒体に非一時的形態で記憶され、ソフトウェアは、コンピューティングシステムに、データ要素を変換する計算を表す1又は2以上のデータ変換ノード、及びデータ要素を表す1又は2以上のデータノードを含み、計算と計算の実行中に計算によって受け取られるか又は生成されるデータ要素との間のそれぞれの系統の関係を表す有向リンクを含む有向グラフの識別情報を入力デバイス又はポートを介して受け取らせ、少なくとも1つのプロセッサを使用して、有向グラフ内のパスに基づいて要約情報を計算し、要約情報を1又は2以上の要約オブジェクトに記憶させるための命令を含み、計算は、有向グラフの複数のノードに関する関心の指定を受け取ることと、関心のある複数のノードに含まれない残りのノードに関する1又は2以上の要約オブジェクトを生じさせることであって、1又は2以上の要約オブジェクトのうちの第1の要約オブジェクトが、残りのノードのうちの1又は2以上を確かに含み、関心のある第1のノード及び関心のある第2のノード以外に関心のあるいかなるノードも含まない第1のノードと第2のノードとの間の第1のパスに基づく要約情報を含む、生じさせることとを含む。
【0026】
別の態様においては、概して、コンピューティングシステムにおいて系統情報を管理するためのコンピューティングシステムが、データ要素を変換する計算を表す1又は2以上のデータ変換ノード、及びデータ要素を表す1又は2以上のデータノードを含み、計算と計算の実行中に計算によって受け取られるか又は生成されるデータ要素との間のそれぞれの系統の関係を表す有向リンクを含む有向グラフの識別情報を受け取るための入力デバイス又はポートと、有向グラフ内のパスに基づいて要約情報を計算し、要約情報を1又は2以上の要約オブジェクトに記憶するための少なくとも1つのプロセッサとを含み、計算は、有向グラフの複数のノードに関する関心の指定を受け取ることと、関心のある複数のノードに含まれない残りのノードに関する1又は2以上の要約オブジェクトを生じさせることであって、1又は2以上の要約オブジェクトのうちの第1の要約オブジェクトが、残りのノードのうちの1又は2以上を確かに含み、関心のある第1のノード及び関心のある第2のノード以外に関心のあるいかなるノードも含まない第1のノードと第2のノードとの間の第1のパスに基づく要約情報を含む、生じさせることとを含む。
【0027】
別の態様においては、概して、コンピューティングシステムにおいて系統情報を管理するためのコンピューティングシステムが、データ要素を変換する計算を表す1又は2以上のデータ変換ノード、及びデータ要素を表す1又は2以上のデータノードを含み、計算と計算の実行中に計算によって受け取られるか又は生成されるデータ要素との間のそれぞれの系統の関係を表す有向リンクを含む有向グラフの識別情報を受け取るための手段と、少なくとも1つのプロセッサを使用して、有向グラフ内のパスに基づいて要約情報を計算し、要約情報を1又は2以上の要約オブジェクトに記憶するための手段とを含み、計算は、有向グラフの複数のノードに関する関心の指定を受け取ることと、関心のある複数のノードに含まれない残りのノードに関する1又は2以上の要約オブジェクトを生じさせることであって、1又は2以上の要約オブジェクトのうちの第1の要約オブジェクトが、残りのノードのうちの1又は2以上を確かに含み、関心のある第1のノード及び関心のある第2のノード以外に関心のあるいかなるノードも含まない第1のノードと第2のノードとの間の第1のパスに基づく要約情報を含む、生じさせることとを含む。
【0028】
態様は、以下の利点のうちの1又は2以上を含む可能性がある。
【0029】
データ処理システムの複雑さが増したので、データ系統図も次第に複雑になっており、単一のビューの中にそれぞれのアイコンによって表される多くのデータ系統ノード(例えば、データノード及びデータ変換ノード)を提示する。データ系統図においてユーザに対して提示されるデータノードの数が増えるにつれて、データ系統図は理解するのが難しくなる可能性がある。
【0030】
本明細書において説明される手法は、所与のデータ処理システム内で、通常、特定のデータノードがユーザの特定の関心を集めるという認識を利用する。例えば、ユーザの特定の関心を集める一種のデータノードは、特定の種類の情報(例えば、個人を特定できる情報)を記憶することが知られている系統内の任意のデータノードである可能性がある。
【0031】
本明細書において説明される手法においては、ユーザの関心を集めず、互いに関連するトポロジーを共有するデータ系統ノードの組が、データ系統図において単一のアイコンによって表される要約ノードにまとめられる。要約ノードに含まれないデータ系統図内の残りのノードは、ユーザの「大きな関心」を集める(つまり、「関心がある」ものとして指定されていないその他のノードとは対称的に「関心がある」ものとして指定されたノード)。結果は、要約ノードによって示されたユーザ(又は意図される観客)の関心を集めるものとして指定された詳細のみを示す要約されたデータ系統図であり、要約されたデータ系統図においては、すべての省略された詳細が、要約ノードによって示される。
【0032】
一態様においては、概して、データ系統図生成システムが、そのデータ系統図生成システムが表示するデータ系統図の一部を要約するように構成される。データ系統図は、特定のトポロジーを有し、システムによってアクセスされ得る1又は2以上のデータ構造に記憶される対応する「データ系統グラフ」のスクリーン上の表現である。システムがデータ系統グラフ内の大きな関心のあるノードの指定を受け取った後、(下でより詳細に説明される)「要約オブジェクト」の形態で要約情報を記憶するように強化された「強化されたデータ系統グラフ」が生じさせられる。システムは、強化されたデータ系統グラフを使用して、表示するための要約されたデータ系統図を生じさせる。システムによって生じさせられた要約されたデータ系統図は、データ系統図の大きな関心のある部分だけを示し、データ系統図の関心の低い部分を要約し、それによって、データ系統図の複雑さを減らす。
【0033】
利点の中でもとりわけ、手法は、関心の低いデータ系統ノードを抑制しながら大きな関心のあるデータ系統ノードを強調し、それによって、より理解しやすいデータ系統図を提供する。これは、例えば、潜在的にデータ系統図内に表示される可能性があるデータ系統ノードの数は非常に多い(例えば、数千又は数百万)ので、それらのデータ系統ノードは、実際に関心のある比較的少数のデータ系統ノード(例えば、数十又は数百)の位置を視覚的に分かりにくくする。したがって、結果として得られる要約された系統図は、人間のユーザの関心を集める可能性がある関連する系統情報の知覚を改善するために情報の人間の知覚及び受け取りの物理的条件を考慮に入れるようにして提示される。
【0034】
説明される手法はデータ系統図内により少ないデータ系統ノードを表示するので、説明される手法によって生じさせられるデータ系統図は、以前の手法によって生じさせられるデータ系統図よりもより迅速に計算され、表示される。
【0035】
本発明のその他の特徴及び利点は、以下の説明及び請求項から明らかになるであろう。
【発明を実施するための形態】
【0037】
図1は、データ系統要約技術が使用され得るコンピューティングシステム100の例を示す。システム100は、ストレージデバイス、又はオンラインデータストリームへの接続などのデータの1又は2以上のソースを含み得るデータソース102を含み、それらの1又は2以上のソースのそれぞれは、さまざまな記憶フォーマット(例えば、データベーステーブル、スプレッドシートファイル、フラットテキストファイル、又はメインフレームによって使用されるネイティブフォーマット)のいずれかでデータを記憶又は提供し得る。実行環境104は、データ処理システム112を含む。実行環境104は、例えば、UNIXオペレーティングシステムのバージョンなどの好適なオペレーティングシステムの制御下の1又は2以上の多目的コンピュータを含むデータ処理システム112においてホストされる可能性がある。例えば、データ処理システム112は、ローカルの(例えば、対称型マルチプロセッシング(SMP,symmetric multi-processing)コンピュータなどのマルチプロセッサシステム)又はローカルに分散された(例えば、クラスタ若しくは超並列処理(MPP,massively parallel processing)システムとして接続された複数のプロセッサか、或いは遠隔の又は遠隔に分散された(例えば、ローカルエリアネットワーク(LAN,local area network)及び/若しくは広域ネットワーク(WAN,wide-areanetwork)を介して接続された複数のプロセッサ)か、或いはこれらの任意の組合せかのいずれかの複数の中央演算処理装置(CPU,central processing unit)或いはプロセッサコアを用いるコンピュータシステムの構成を含むマルチノード並列コンピューティング環境を含む可能性がある。
【0038】
データソース102を提供するストレージデバイスは、実行環境104のローカルにあり、例えば、実行環境104をホストするコンピュータに接続されたストレージ媒体(例えば、ハードドライブ108)に記憶される可能性があり、又は実行環境104の遠隔にあり、例えば、(例えば、クラウドコンピューティングインフラストラクチャによって提供される)リモート接続を介して実行環境104をホストするコンピュータと通信する遠隔システム(例えば、メインフレーム110)においてホストされる可能性がある。
【0039】
システム100は、開発者がデータ処理コンピュータプログラム117(例えば、データフローグラフ)を規定し、実行環境104によってアクセスされ得るデータストレージシステム116にプログラムを記憶することができる開発環境118を含む。データ処理システム112は、コンピュータプログラム117に従ってデータソースからのデータを処理して出力データ114を生じさせる。出力データ114は、データソース102若しくはデータストレージシステム116に戻して記憶されるか、又はそうでなければ使用される可能性がある。開発環境118は、一部の実施形態において、(データ処理構成要素又はデータセットを表す)頂点間の(作業要素(work element)、すなわち、データのフローを表す)有向リンクによって接続された頂点を含むデータフローグラフとしてアプリケーションを開発するためのシステムである。例えば、そのような環境は、参照により本明細書に組み込まれる「Managing Parameters for Graph-Based Applications」と題された米国特許出願公開第2007/0011668号明細書により詳細に説明されている。そのようなグラフに基づく計算を実行するためのシステムは、参照により本明細書に組み込まれる「EXECUTING COMPUTATIONS EXPRESSED AS GRAPHS」と題された米国特許第5,966,072号明細書に説明されている。このシステムによって作成されるデータフローグラフは、プロセス間で情報を移動するため及びプロセスに関する実行の順序を定義するためにグラフの構成要素によって表される個々のプロセスに情報を出し入れするための方法を提供する。このシステムは、任意の利用可能な方法からプロセス間通信の方法を選択するアルゴリズムを含む(例えば、グラフのリンクに従った通信パスは、TCP/IP若しくはUNIXドメインソケットを使用するか、又はプロセス間でデータを渡すために共有メモリを使用する可能性がある)。
【0040】
システム100は、ユーザ121(例えば、企業ユーザ又はデータ設計者)がデータ系統図を要求し、見ることができる企業環境119を含む。データ系統図を生じさせるために、企業環境119は、コンピュータプログラム117の異なる部分に対応する計算を表すデータ変換ノード(例えば、異なるデータフローグラフ又はデータフローグラフ内の異なる構成要素)を特徴付けるメタデータと、データ系統図を生じさせるためにコンピュータプログラム117によってアクセスされるか又は生じさせられるデータノード(例えば、データソース102からのデータセット又は出力データ114に対応するデータセット)を特徴付けるメタデータとを含むシステムメタデータ120を分析することができるデータ系統モジュール115を含む。場合によっては、データ系統モジュール115は、例えば、メタデータが利用可能でないか又は不完全である場合、コンピュータプログラム117及び記憶されたデータを直接分析することもできる。一部の実施形態において、システム100は、そのようなメタデータのための別個のストレージシステムを含む。
【0041】
図2を参照して、データ系統モジュール115は、入力としてユーザ121からシステムメタデータ120及び1又は2以上のコマンド123を受け取り、出力としてユーザ121に提示するための要約されたデータ系統
図122を生じさせる。データ系統モジュール115は、印を付けられたデータ系統グラフ計算モジュール124及びデータ系統要約モジュール126を含む。データ系統要約モジュール126は、要約リンク計算モジュール128及び要約されたデータ系統図計算モジュール130を含む。
【0042】
動作中、データ系統モジュール115によって受け取られたシステムメタデータ120は、ユーザ121からのコマンド123と一緒に、印を付けられたデータ系統グラフ計算モジュール124に提供される。ユーザ121からのコマンド123の少なくとも一部は、データ系統分析のための目標データノードの指示と、一部の例においては、大きな関心のある1又は2以上のデータノードの指示とを含む。極めて広く、用語「データノード」は、本明細書の一部の例において使用されるとき、データセット(例えば、データベース)及び/又はデータセットの特定のフィールドに関する。一部の例において、大きな関心があるものとして印を付けられるデータノードは、概して、企業システム119の2人以上のユーザの関心を集め、一方、目標データノードとして印を付けられるデータノードは、所与の時間に企業システム119の所与のユーザの特定の関心を集める。
【0043】
印を付けられたデータ系統グラフ計算モジュール124は、ユーザ121からのコマンドに従ってシステムメタデータ120を処理して、印を付けられたデータ系統グラフ125を生じさせる。極めて広く、印を付けられたデータ系統グラフ125は、ノード間の依存関係を表すリンクによって1又は2以上の変換ノードと相互に接続された1又は2以上のデータノードを含む。ユーザ121が目標データノード又は大きな関心のあるデータノードであるものとして示したデータノードは、印を付けられたデータ系統グラフ125内でそのように(例えば、ブルズアイ記号によって)印を付けられる。
【0044】
印を付けられたデータ系統グラフ125は、データ系統要約モジュール126に提供され、印を付けられたデータ系統グラフ125は、まず、要約リンク計算モジュール128に提供される。下でより詳細に説明されるように、要約リンク計算モジュール128は、ユーザ121が大きな関心があるものとして印をつけたノードの間のいくつかの要約リンクを生じさせる。要約リンクを特徴付ける情報は、要約オブジェクトに記憶される。それぞれの要約リンクは、2つの大きな関心のあるデータノードの間のデータの依存関係のパスを表し、パスに沿って存在する関心の低いすべてのデータ変換ノード又はデータノードを省略する。要約リンク計算モジュール128は、印を付けられたデータ系統グラフ125を記憶するデータ構造内に計算された要約リンクを特徴付ける要約オブジェクトを記憶することによって、強化されたデータ系統グラフ127を出力として生じさせる。
【0045】
強化されたデータ系統グラフ127は、要約されたデータ系統図計算モジュール130に提供される。下でより詳細に説明されるように、要約されたリンク計算モジュール130は、強化されたデータ系統グラフ127を処理して、要約されたデータ系統
図122を生じさせる。そのようにするために、要約されたデータ系統図計算モジュール130は、要約されたデータ系統
図122内に大きな関心のあるノードを細大漏らさず表示しながら、(強化されたデータ系統グラフ127内の要約リンクを処理することに基づいて)関心が低いものとして示されたノードを「要約ノード」へとグループ化する。結果として得られた要約されたデータ系統
図122は、データ系統モジュール115から出され、ユーザ121に提供される。
【0046】
図3を参照すると、流れ
図300が、強化されたデータ系統グラフ127を生じさせるために
図2の要約リンク計算モジュール128によって従われるステップを示す。第1のステップ334において、印を付けられたデータ系統グラフ125が受け取られる。印を付けられたデータ系統グラフ125は、大きな関心があるものとして印を付けられる印を付けられたデータ系統グラフ125内のそれぞれのデータノードに対して動作する処理ループ336に与えられる。
【0047】
ステップ338において、大きな関心があるものとして印を付けられた(ノード「X」として指定された)それぞれのデータノードに関して、そのデータノードの上流の近隣のノード(すなわち、大きな関心のあるデータノードにデータを供給するデータノード)のすべてが、データノードのリストの一番下に追加される。それから、データノードのリストの一番上のデータノードが、ステップ340においてリストから削除され、データノード「Y」として指定される。ステップ342において、テストが、データノードYに大きな関心があるものとして印が付けられているかどうかを決定する。データノードYに大きな関心があるものとして印が付けられていない場合、ステップ344において、データノードYの上流の近隣のノードのすべてが、データノードのリストの一番下に追加される。そうでなければ、データノードYに大きな関心があるものとして印が付けられている場合、ステップ346において、データノードYとデータノードXとの間の要約リンクが記憶される。上述のように、要約リンクは、データノードYとデータノードXとの間のデータの依存関係の特定のパスに沿ったすべての大きな関心のないノード(データノードと変換ノードとの両方)を省略することによってそのパスを要約する。
【0048】
ステップ346において要約リンクを記憶するか又はステップ344においてデータノードYの上流の近隣のノードを追加した後、データノードのリストが空であるかどうかを決定するために、ステップ348においてテストが実行される。リストが空でない場合、プロセスは、ステップ340にループして戻り、データノードのリストの一番上から次のデータノードを削除し、新しいデータノードを「Y」として指定し、上述のステップを繰り返す。そうでなければ、データノードのリストが空である場合、プロセスは350において終了し、強化されたデータ系統グラフ127を生じさせるためのプロセスが完了する。
【0049】
図4を参照すると、流れ
図451は、要約されたデータ系統
図122を生じさせるために
図2の要約されたデータ系統図計算モジュール130によって従われるプロセスを示す。第1のステップ452において、強化されたデータ系統グラフ127中の目標データノードが特定される。それから、特定された目標データノードが、処理ループ454に与えられ、処理ループ454は、上流方向と下流方向との両方にそれぞれの特定された目標データノードに関して実行される。極めて広く、処理ループ454のそれぞれの反復は、目標データノードから強化されたデータ系統グラフ127の端のデータノードへのパスをトラバースする(つまり、歩く(walk))。ノード間のパスをトラバースすること(又はパスを「歩くこと」)は、パスに沿ったそれぞれのノードを調べて、特定の特性を有するそのパスに沿ったすべてのノードを特定することを含む。
【0050】
処理ループ454内で、目標データノードに大きな関心があるものとして印が付けられているかどうかを決定するために、ステップ456においてテストが実行される。データノードに大きな関心があるものとして印が付けられている場合、ステップ458において、アルゴリズムは、目標データノードから次のデータノードに接続された要約リンクを歩く。データノードに大きな関心があるものとして印が付けられていない場合、ステップ460において、アルゴリズムは、次のデータノードまで元のリンク(すなわち、非要約リンク)を歩く。
【0051】
ステップ462において、アルゴリズムが目標データノードに関するそのアルゴリズムの歩きの終わりに到達したかどうかを決定するためにテストが実行される。そうである場合、要約されたデータ系統図生成ステップ465による後の使用のために、ステップ464において、目標データノードに関する歩きに関連するリンクが記憶される。アルゴリズムが目標データノードに関するそのアルゴリズムの歩きの終わりに到達していなかった場合、アルゴリズムはステップ456に戻り、目標データノードから現在の歩きに沿った次のデータノードに関して上述のプロセスが繰り返される。上述のように、上述のプロセスは、目標データノードから上流方向と下流方向の両方に繰り返される。
【0052】
特定された目標データノードのすべてが処理ループ454によって処理された後、処理ループ454の出力が、要約されたデータ系統図生成ステップ465に与えられる。概して、要約されたデータ系統図生成ステップは、処理ループの出力内の要約リンクを要約ノードにまとめて、要約されたデータ系統
図122を生じさせる。要約リンクを要約ノードにまとめるためのプロセスは、下で提示される例においてより詳細に説明される。
【0053】
ステップ466において、要約されたデータ系統図生成ステップ465によって生成された要約されたデータ系統
図122が、ユーザ121に対して表示される。
【0054】
1 例1
図5を参照すると、印を付けられたデータ系統グラフ500の一例が、いくつかのデータノードD
1−D
8及びいくつかのデータ変換ノードT
1−T
6を含む。データノード及びデータ変換ノードは、ノード間のデータの依存関係を表すリンク568によって相互に接続される。概して、リンク568は、ページの左側からページの右側に向かう方向にデータが流れるという意味で方向がある。印を付けられたデータ系統グラフ500において、特定のデータノード(すなわち、D
2、D
3、D
4、D
6、及びD
8)は、大きな関心があるものとして印を付けられており、データノードのうちの2つ(すなわち、D
3及びD
4)は、目標データノードであるものとして印を付けられている。目標データノードD
3及びD
4の両方は、コンテナ570内に置かれる。概して、コンテナは、コンピュータプログラム内でシステム又はサブシステムの境界を表す構造である。所与のコンテナ内のノードの一部若しくはすべてが、ユーザ121の大きな関心を集める可能性があり、又は所与のコンテナ内のノードのいずれも、ユーザ121の大きな関心を集めない可能性がある。
【0055】
図3と
図6との両方を参照すると、印を付けられたデータ系統グラフ500が
図2の要約リンク計算モジュール128に与えられるとき、
図3に示された手順が、要約リンクS
A−S
Gを生じさせるために、印を付けられたデータ系統グラフに適用される。簡潔にするために、
図3の手順の適用は、印を付けられたデータ系統グラフ500内の大きな関心のあるデータノードのうちの1つ(すなわち、D
8)に関してのみ説明される。しかし、手順は、印を付けられたデータ系統グラフ500内の大きな関心のあるデータノードの各々に関して実行されることを理解されたい。
【0056】
大きな関心のあるデータノードD
8に関して、データノードD
8は、まず、「X」として指定される。ステップ338において、Xの上流の近隣のノードD
7及びD
5が、データノードのリストに追加される。ステップ340において、D
7が、リストから削除され、「Y」として指定される。ステップ342において、Yに大きな関心があるものとして印が付けられているかどうかを決定するためにテストが実行される。テストは、答えNOを返す。テストがNOを返したので、手順はステップ344に進み、Yの上流の近隣のノードD
3及びD
4がデータノードのリストの一番下に追加される。ステップ348において、データノードのリストが空であるかどうかを決定するためにテストが実行される。テストは、答えNOを返す。
【0057】
テストがNOを返したので、手順はステップ340にループして戻り、D
5がデータノードのリストから削除され、「Y」として指定される。ステップ342において、Yに大きな関心があるものとして印が付けられているかどうかを決定するためにテストが実行される。テストは、答え「NO」を返す。テストがNOを返したので、手順はステップ344に進み、Yの上流の近隣のノードD
2がデータノードのリストの一番下に追加される。ステップ348において、データノードのリストが空であるかどうかを決定するためにテストが実行される。テストは、答えNOを返す。
【0058】
テストがNOを返したので、手順はステップ340にループして戻り、D
3がリストから削除され、「Y」として指定される。ステップ342において、Yに大きな関心があるものとして印が付けられているかどうかを決定するためにテストが実行される。テストは、答え「YES」を返す。テストがYESを返したので、手順はステップ346に進み、Y(D
3)とX(D
8)との間の要約リンク(S
D)が記憶される。ステップ348において、データノードのリストが空であるかどうかを決定するためにテストが実行される。テストは、答えNOを返す。
【0059】
テストがNOを返したので、手順はステップ340にループして戻り、D
4がリストから削除され、「Y」として指定される。ステップ342において、Yに大きな関心があるものとして印が付けられているかどうかを決定するためにテストが実行される。テストは、答え「YES」を返す。テストがYESを返したので、手順はステップ346に進み、Y(D
4)とX(D
8)との間の要約リンク(S
G)が記憶される。ステップ348において、データノードのリストが空であるかどうかを決定するためにテストが実行される。テストは、答え「NO」を返す。
【0060】
テストがNoを返したので、手順はステップ340にループして戻り、D
2がリストから削除され、「Y」として指定される。ステップ342において、Yに大きな関心があるものとして印が付けられているかどうかを決定するためにテストが実行される。テストは、答え「YES」を返す。テストがYESを返したので、手順はステップ346に進み、Y(D
2)とX(D
8)との間の要約リンク(S
C)が記憶される。ステップ348において、データノードのリストが空であるかどうかを決定するためにテストが実行される。テストは、答え「YES」を返す。
【0061】
リストは空であり、手順はD
8データノードに関する要約リンクを計算することを終了しており、D
8に関する要約ノードのリストは、S
D=D
8→D
3、S
G=D
8→D
4、及びS
C=D
8→D
2である。
【0062】
要約リンク計算モジュール128は、印を付けられたデータ系統グラフ500内で大きな関心があるものとして印を付けられたすべてのデータノードに関して上の要約リンク計算手順を実行する。
【0063】
図6を参照すると、要約リンクを含む強化されたデータ系統グラフ127が、要約リンクの結果として得られたリストがS
A=D
4→D
2、S
B=D
4→D
2、S
C=D
8→D
2、S
D=D
8→D
3、S
E=D
6→D
3、S
F=D
6→D
4、及びS
G=D
8→D
4であることを示す。
【0064】
ここで
図4と
図7との両方を参照すると、強化されたデータ系統グラフ127が、
図2の要約されたデータ系統図計算モジュール130に与えられ、要約されたデータ系統図計算モジュール130が、
図4に示された手順を適用して、要約されたデータ系統
図122を生じさせる。最初、手順のステップ452において、強化されたデータ系統グラフ127内の目標データノードが、データノードD
3及びD
4として特定される。D
3及びD
4の各々に関して、上流方向と下流方向との両方に、
図4のステップ454の手順が実行される。簡潔にするために、
図4の手順の適用は、強化されたデータ系統グラフ127内の目標データノードのうちの1つ(すなわち、D
4)に関してのみ説明される。しかし、手順は、強化されたデータ系統グラフ127内の目標データノードの各々に関して上流方向と下流方向との両方に実行されることを理解されたい。
【0065】
目標データノードD
4に関して、D
4に大きな関心があるものとして印が付けられているかどうかを決定するために、ステップ456においてテストが実行される。D
4に大きな関心があるものとして印がつけられるので、テストは答え「YES」を返す。D
4に大きな関心があるものとして印がつけられるので、手順はステップ458に進み、D
4に接続された要約リンク(すなわち、S
A、S
B、S
F、S
G)の各々が「歩かれる」。特に、下流方向に、2つの要約リンクS
F及びS
Gがある。ステップ458において、要約リンクS
Fが、データノードD
6まで歩かれる。ステップ462において、D
6が強化されたデータ系統グラフ127の端(つまり、歩きの終わり)にあるかどうかを決定するためにテストが実行される。D
6が端にあるので、テストは答え「YES」を返す。テストが答えYESを返したので、歩かれたリンクが、後の要約された系統生成ステップ465において使用するためにステップ464において記憶される。同様に、ステップ458において、要約リンクS
Gが、データノードD
8まで歩かれる。ステップ462において、D
8が強化されたデータ系統グラフ127の端にあるかどうかを決定するためにテストが実行される。D
8が端にあるので、テストは答え「YES」を返す。テストが答えYESを返したので、歩かれたリンクが、後の要約された系統生成ステップ465において使用するためにステップ464において記憶される。
【0066】
上流方向に、2つの要約リンクS
A及びS
Bがある。ステップ458において、要約リンクS
Aが、データノードD
2まで歩かれる。ステップ462において、D
2が強化されたデータ系統グラフ127の端(つまり、歩きの終わり)にあるかどうかを決定するためにテストが実行される。D
2が端にあるので、テストは答え「YES」を返す。テストが答えYESを返したので、歩かれたリンクが、後の要約された系統生成ステップ465において使用するためにステップ464において記憶される。同様に、ステップ458において、要約リンクS
Bが、データノードD
2まで歩かれる。ステップ462において、D
2が強化されたデータ系統グラフ127の端にあるかどうかを決定するためにテストが実行される。D
2が端にあるので、テストは答え「YES」を返す。テストが答えYESを返したので、歩かれたリンクが、後の要約されたデータ系統図生成ステップ465において使用するためにステップ464において記憶される。
【0067】
図4の手順が目標データノードD
3に関して繰り返され、D
3からD
6までの要約リンクS
Eが歩かれ、D
3からD
8までの要約リンクS
Dが歩かれる結果となる。歩かれたリ
ンクが、要約された系統生成ステップ465によって後で使用するために記憶される。
図7を参照すると、強化されたデータ系統グラフ127は、太破線で示される、
図4の手順によって歩かれた要約リンクを示す。
【0068】
目標データノードD
3及びD
4に関してステップ464によって記憶された歩かれた要約リンクは、記憶された要約リンクから要約ノードを生じさせるステップ465に与えられる。要約ノードは、要約されたデータ系統
図122をユーザに対して表示するデータ系統表示ステップ466に与えられる。
【0069】
図8を参照すると、要約されたデータ系統図生成ステップ465が、
図4の手順のループ454の出力を受け取る。手順のループ454の出力は、印を付けられたデータ系統グラフからの大きな関心のあるデータノードと、目標データノードD
3及びD
4と、この場合はたまたますべて要約リンクである
図4のステップ464によって記憶されたリンクとを含む。一部の例においては、それぞれの要約リンクに関して、要約されたデータ系統図生成ステップ465が、リンクのそれぞれの終わり(すなわち、右端の終わり及び左端の終わり)を同じラベル(例えば、要約リンクの名前)でラベル付けする。この例において、要約リンクS
Aは、S
Aとラベル付けされたその要約リンクS
Aの右端の終わり及びS
Aとラベル付けされたその要約リンクS
Aの左端の終わりを有する。要約リンクS
B、S
D、S
E、S
F、及びS
Gは、同じ方法でラベル付けされる。
【0070】
それぞれの大きな関心のあるデータノードに関して、大きな関心のあるデータノードにリンクの右端の終わりを接続された(1又は2以上の)すべての要約リンクが特定される。2つ以上の要約リンクの右端の終わりが大きな関心のあるデータノードに接続される場合、大きな関心のあるデータノードに接続されたそれぞれの要約リンクの右端の終わりは、それらの右端の終わりのそれぞれのラベルを要約ノードのラベルによって置き換える。例えば、要約リンクS
A及びS
Bの右端の終わりは、大きな関心のあるデータノードD
4に接続される。要約リンクS
A及びS
Bの右端の終わりのラベルは、両方とも要約ノードのラベル「X」によって置き換えられる。同様に、要約リンクS
E及びS
Fの右端の終わりのラベルは、要約ノードのラベル「Y」によって置き換えられ、要約リンクS
D及びS
Gの右端の終わりのラベルは、要約ノードのラベル「Z」によって置き換えられる。
【0071】
それぞれの大きな関心のあるデータノードに関して、大きな関心のあるデータノードにリンクの左端の終わりを接続された(1又は2以上の)すべての要約リンクが特定される。リンクの右端の終わりに同じ要約ノードのラベルを有する特定された要約リンクのうちの2又は3以上の任意の組に関して、要約リンクの左端の終わりのラベルが、要約リンクの右端の終わりの要約ノードのラベルによって置き換えられる。例えば、要約リンクS
A及び要約リンクS
Bは、それら要約リンクの左端の終わりを大きな関心のあるデータノードD
2に接続されている。S
AとS
Bとの両方の右端の終わりのラベルは、両方とも(上述のように)要約ノードのラベル「X」を割り当てられる。この状況を特定すると、要約されたデータ系統図生成ステップ465は、要約リンクS
A及び要約リンクS
Bの左端の終わりのラベルを要約ノードのラベル「X」によって置き換える。
【0072】
図8と
図9との両方を参照すると、それぞれの一意の要約ノードのラベルに関して、要約されたデータ系統図生成ステップ465が、ラベルに対応する要約ノードを生じさせる。右端の終わりが所与の要約ノードのラベルを有するすべての要約リンクに関して、要約リンクの右端の終わりは、要約ノードから適切な大きな関心のあるデータノードまで延びる単一の出力リンクにまとめられる。
【0073】
例えば、要約リンクS
Aと要約リンクS
Bとの両方は、それらの要約リンクの右端の終わりを要約ノードのラベル「X」によってラベル付けされている。
図9において、要約ノードX 972は、要約ノードX 972から大きな関心のあるデータノードD
4まで延びる単一の出力リンクを用いて生じさせられる。単一の出力リンクは、要約リンクS
Aの右端の終わり及び要約リンクS
Bの右端の終わりの組合せを表す。同様に、
図9において、要約ノードY 974は、大きな関心のあるデータノードD
6まで延びる単一の出力リンクを用いて生じさせられる。要約ノードY 974と大きな関心のあるデータノードD
6との間の単一の出力リンクは、要約リンクS
Eの右端の終わり及び要約リンクS
Fの右端の終わりの組合せを表す。また、
図9において、要約ノードZ 976は、大きな関心のあるデータノードD
8まで延びる単一の出力リンクを用いて生じさせられる。要約ノードZ 976と大きな関心のあるデータノードD
8との間の単一の出力リンクは、要約リンクS
Dの右端の終わり及び要約リンクS
Gの右端の終わりの組合せを表す。
【0074】
左端の終わりが所与の要約ノードのラベルを有するすべての要約リンクに関して、要約リンクの左端の終わりは、適切な大きな関心のあるデータノードから要約ノードへと延びる単一の入力リンクにまとめられる。例えば、
図8においては、要約リンクS
Aの左端の終わりと要約リンクS
Bの左端の終わりとの両方が、要約ノードのラベル「X」によってラベル付けされる。
図9においては、単一の入力リンクが、大きな関心のあるデータノードD
2から要約ノードX 972へと延びる。単一の入力リンクは、要約リンクS
Aの左端の終わり及び要約リンクS
Bの左端の終わりの組合せを表す。
【0075】
最後に、左端の終わりが要約リンクの元の要約リンクのラベルを有するそれぞれの要約リンクに関して、要約リンクの左端の終わりに接続されたデータノードとデータノードから下流の隣の構成要素との間に、その隣の構成要素が大きな関心のあるデータノードであるか又は要約ノードであるかにかかわらず、リンクが生じさせられる。
【0076】
図9から分かるように、結果として得られる要約されたデータ系統
図122は、大きな関心のあるデータノード及び目標データノードに関するデータ系統の全体的な要約を保ちながら、関心の低いデータノード及びデータ変換ノードを要約ノード972、974、976内に隠す。
図9においては、コンテナ570が展開された状態で示されていることに留意されたい。一部の例においては、要約されたデータ系統
図122がユーザ121に対して表示されるとき、目標ノードを含むすべてのコンテナが展開された状態で示され、一方、目標ノードを含まないすべてのコンテナは縮約された状態で示される。
【0077】
2 例2
一部の例においては、印を付けられたデータ系統グラフ内の目標データノードに大きな関心があるものとして印が付けられていない場合、目標データノードは、目標データノードと大きな関心のあるすべての近隣のデータノードとの間の元のリンクと一緒に、要約から除外される。例えば、
図10を参照すると、印を付けられたデータ系統グラフ1000の第2の例は、
図5の印を付けられたデータ系統グラフ500と同じデータノードD
1−D
8、データ変換ノードT
1−T
6、及びリンク1168を含む。
図10の印を付けられたデータ系統グラフ1000は、データノードD
3には
図10においては大きな関心のあるデータノードであるものとして印が付けられておらず、
図10の印を付けられたデータ系統グラフが、
図5の印を付けられたデータ系統グラフ500の場合のようにデータノードD
3及びD
4ではなくD
7に目標データノードとして印を付けているという点で
図5の印を付けられたデータ系統グラフ500と異なる。データノードD
7は、目標データノードとして印を付けられているが、大きな関心のあるデータノードであるものとして印を付けられてはいないことに留意されたい。大きな関心のあるデータノードD
4は、コンテナ1070内に置かれる。
【0078】
図11を参照すると、印を付けられたデータ系統グラフ1000が
図2の要約リンク計算モジュール128に与えられるとき、
図3に示された手順が、要約リンクS
A−S
Eを生じさせるために、印を付けられたデータ系統グラフに適用される。簡潔にするために、印を付けられたデータ系統グラフ1000に関する要約リンクの生成の詳細な説明は、この第2の例に関しては省略される。
【0079】
ここで
図4と
図12との両方を参照すると、強化されたデータ系統グラフ1127が、
図2の要約されたデータ系統図計算モジュール130に与えられ、要約されたデータ系統図計算モジュール130が、
図4に示された手順を適用して、要約されたデータ系統
図122を生じさせる。最初、手順のステップ452において、強化されたデータ系統グラフ1127内の目標データノードが、データノードD
7として特定される。D
7から上流方向と下流方向との両方に関して、
図4の手順454が、強化されたデータ系統グラフ1127に対して実行される。
【0080】
初めに、ステップ456において、D
7に大きな関心があるものとして印が付けられているかどうかを決定するためにテストが実行される。D
7に大きな関心があるものとして印がつけられていないので、テストは答え「NO」を返す。D
7に大きな関心があるものとして印がつけられていないので、手順はステップ460に進み、D
7に接続された元のリンクの各々が歩かれる。特に、下流方向に、歩くべき(つまり、変換ノードT
6を経由するデータノードD
7からデータノードD
8までの)単一のリンクが存在する。D
7からD
8までのリンクが歩かれ、ステップ462において、D
8が強化されたデータ系統グラフ1127の端(つまり、歩きの終わり)にあるかどうかを決定するためにテストが実行される。D
8が端にあるので、テストは答え「YES」を返す。テストが答えYESを返したので、変換ノードT
6を含む歩かれた元のリンクが、後の要約された系統生成ステップ465において使用するためにステップ464において記憶される。
【0081】
上流方向には、歩くべき3つのリンク(データノードD
7からデータノードD
1までの第1のリンク、データ変換ノードT
2を経由するデータノードD
7からデータノードD
2までの第2のリンク、及びデータ変換T
3を経由するデータノードD
7からデータノードD
2までの第3のリンク)が存在する。手順454は、まず、第1のリンクを歩く。D
7に大きな関心があるものとして印がつけられていないので、手順はステップ460に進み、データノードD
3まで元のリンクを歩く。ステップ462において、データノードD
3が現在の歩きの終わりであるかどうかを決定するためにテストが実行される。テストは、答え「NO」を返し、手順は、データノードD
3に大きな関心があるものとして印が付けられているかどうかを決定するためのステップを実行するステップ456にループして戻る。テストは、答え「NO」を返し、手順は、データ変換ノードT
1を経由してデータノードD
3からデータノードD
1まで元のリンクを歩くステップ460に進む。ステップ462において、データノードD
1が強化されたデータ系統グラフ1127の端にあるかどうかを決定するためにテストが実行される。D
1が端にあるので、テストは答え「YES」を返す。テストが答え「YES」を返したので、変換ノードT
5及びT
1を含む歩かれた元のリンクが、後の要約された系統生成ステップ465において使用するためにステップ464において記憶される。
【0082】
それから、手順454は、第2のリンクを歩く。D7に大きな関心があるものとして印がつけられていないので、手順454はステップ460に進み、ステップ460において、データ変換ノードT
5を経由してデータノードD
7からデータノードD
4まで元のリンクを歩く。ステップ462において、データノードD
4が現在の歩きの終わりであるかどうかを決定するためにテストが実行される。テストは、「NO」を返し、手順は、ステップ456にループして戻り、データノードD
4に大きな関心のあるデータノードであるものとして印が付けられているかどうかを決定するためにテストが実行される。テストは、「YES」を返し、手順は、ステップ458に進み、要約リンクS
AがデータノードD
2まで歩かれる。ステップ462において、データノードD
2が強化されたデータ系統グラフ1127の端にあるかどうかを決定するためにテストが実行される。D
2が端にあるので、テストは「YES」を返す。テストが答え「YES」を返したので、(データ変換ノードT
5を含む)D
7からD
4までの元のリンク及び要約リンクS
Aを含む歩かれたリンクが、後の要約された系統生成ステップ465において使用するためにステップ464において記憶される。
【0083】
最後に、手順454は、第3のリンクを歩く。D
7に大きな関心があるものとして印がつけられていないので、手順454はステップ460に進み、ステップ460において、データ変換ノードT
5を経由してデータノードD
7からデータノードD
4まで元のリンクを歩く。ステップ462において、データノードD
4が現在の歩きの終わりであるかどうかを決定するためにテストが実行される。テストは、「NO」を返し、手順は、ステップ456にループして戻り、データノードD
4に大きな関心のあるデータノードであるものとして印が付けられているかどうかを決定するためにテストが実行される。テストは、「YES」を返し、手順は、ステップ458に進み、要約リンクS
BがデータノードD
2まで歩かれる。ステップ462において、データノードD
2が強化されたデータ系統グラフ127の端にあるかどうかを決定するためにテストが実行される。D
2が端にあるので、テストは「YES」を返す。テストが答え「YES」を返したので、(データ変換ノードT
5を含む)D
7からD
4までの元のリンク及び要約リンクS
Bを含む歩かれたリンクが、後の要約された系統生成ステップ465において使用するためにステップ464において記憶される。
【0084】
目標データノードD
7に関してステップ464によって記憶された歩かれたリンクは、記憶された要約リンクから要約ノードを生じさせるステップ465に与えられる。それから、ステップ465は、生じさせられた要約ノードをステップ464において記憶された元のリンクと統合して、要約されたデータ系統
図122を生じさせる。要約されたデータ系統
図122は、要約されたデータ系統
図122をユーザに対して表示するデータ系統表示ステップ466に与えられる。
【0085】
図13を参照すると、要約されたデータ系統図生成ステップ465が、
図4の手順のループ454の出力を受け取る。手順のループ454の出力は、印を付けられたデータ系統グラフからの大きな関心のあるデータノードと、目標データノードD
7と、
図4のステップ464によって記憶されたリンク(要約リンクと元のリンクとの両方)とを含む。前の例の場合と同様に、それぞれの要約リンクに関して、要約されたデータ系統図生成ステップ465は、リンクのそれぞれの終わり(すなわち、右端の終わり及び左端の終わり)を同じラベル(例えば、要約リンクの名前)でラベル付けする。この例において、要約リンクS
Aは、S
Aとラベル付けされたその要約リンクS
Aの右端の終わり及びS
Aとラベル付けされたその要約リンクS
Aの左端の終わりを有する。同様に、要約リンクS
Bは、S
Bとラベル付けされたその要約リンクS
Bの右端の終わり及びS
Bとラベル付けされたその要約リンクS
Bの左端の終わりを有する。D
1、T
1、及びT
3は、ステップ464によって記憶された歩かれたリンクの一部であるが、D
1、T
1、及びD
3のいずれも2つの大きな関心のあるデータノードの間のパス上にないので、D
1、T
1、及びT
3は、
図13の図に含まれないことに留意されたい。
【0086】
それぞれの大きな関心のあるデータノードに関して、大きな関心のあるデータノードにリンクの右端の終わりを接続された(1又は2以上の)すべての要約リンクが特定される。2つ以上の要約リンクの右端の終わりが大きな関心のあるデータノードに接続される場合、大きな関心のあるデータノードに接続されたそれぞれの要約リンクの右端の終わりは、それらの右端の終わりのそれぞれのラベルを要約ノードのラベルによって置き換える。例えば、要約リンクS
A及びS
Bの右端の終わりは、大きな関心のあるデータノードD
4に接続される。要約リンクS
A及びS
Bの右端の終わりのラベルは、両方とも要約ノードのラベル「X」によって置き換えられる。
【0087】
それぞれの大きな関心のあるデータノードに関して、大きな関心のあるデータノードにリンクの左端の終わりを接続された(1又は2以上の)すべての要約リンクが特定される。リンクの右端の終わりに同じ要約ノードのラベルを有する特定された要約リンクのうちの2又は3以上の任意の組に関して、要約リンクの左端の終わりのラベルが、要約リンクの右端の終わりの要約ノードのラベルによって置き換えられる。例えば、要約リンクS
A及び要約リンクS
Bは、それら要約リンクの左端の終わりを大きな関心のあるデータノードD
2に接続されている。S
AとS
Bとの両方の右端の終わりのラベルは、両方とも(上述のように)要約ノードのラベル「X」を割り当てられる。この状況を特定すると、要約されたデータ系統図生成ステップ465は、要約リンクS
A及び要約リンクS
Bの左端の終わりのラベルを要約ノードのラベル「X」によって置き換える。
【0088】
図13と
図14との両方を参照すると、それぞれの一意の要約ノードのラベルに関して、要約されたデータ系統図生成ステップ465が、ラベルに対応する要約ノードを生じさせる。右端の終わりが所与の要約ノードのラベルを有するすべての要約リンクに関して、要約リンクの右端の終わりは、要約ノードから適切な大きな関心のあるデータノードまで延びる単一の出力リンクにまとめられる。
【0089】
例えば、要約リンクS
Aと要約リンクS
Bとの両方は、それらの要約リンクの右端の終わりを要約ノードのラベル「X」によってラベル付けされている。
図14において、要約ノードX 1472は、要約ノードX 1472から大きな関心のあるデータノードD
4まで延びる単一の出力リンクを用いて生じさせられる。単一の出力リンクは、要約リンクS
Aの右端の終わり及び要約リンクS
Bの右端の終わりの組合せを表す。
【0090】
左端の終わりが所与の要約ノードのラベルを有するすべての要約リンクに関して、要約リンクの左端の終わりは、適切な大きな関心のあるデータノードから要約ノードへと延びる単一の入力リンクにまとめられる。例えば、
図13においては、要約リンクS
Aの左端の終わりと要約リンクS
Bの左端の終わりとの両方が、要約ノードのラベル「X」によってラベル付けされる。
図14においては、単一の入力リンクが、大きな関心のあるデータノードD
2から要約ノードX 1472へと延びる。単一の入力リンクは、要約リンクS
Aの左端の終わり及び要約リンクS
Bの左端の終わりの組合せを表す。
【0091】
データ変換ノードT
6を経由するデータノードD
7とデータノードD
8との間のリンク及びデータ変換ノードT
5を経由するデータノードD
7とデータノードD
4との間のリンクなどのすべての元のリンクが、印を付けられたデータ系統グラフ1000のそれらのリンクの元の形態で含まれる。
【0092】
図14から分かるように、結果として得られる要約されたデータ系統
図122は、大きな関心のあるデータノード及び目標データノードに関するデータ系統の全体的な要約を保ちながら、関心の低いデータノード及び関心の低いデータ変換ノードをX要約ノード1472内に隠す。
図14においては、コンテナ1070が展開された状態で示されていることに留意されたい。一部の例においては、要約されたデータ系統
図122がユーザ121に対して表示されるとき、コンテナ1070は、いかなる目標データノードも含まないので、縮約された状態で示される可能性がある。
【0093】
3 例3
上述の例は系統要約メカニズムを示すのに有用であるが、実世界の実施形態においては、系統要約手法が働くデータフローグラフは例で説明されたデータフローグラフよりもずっと大きく、ずっと複雑であることに留意することが重要である。
【0094】
例えば、
図15を参照すると、例示的なデータフローグラフに関するデータ系統レポート1500がいくつかのコンテナオブジェクト1502を含み、それらのコンテナオブジェクト1502の一部は入れ子にされる。コンテナオブジェクトの各々は、1又は2以上のデータフローグラフ構成要素1504を含む。データフロー1506の複雑な網目が、データフローグラフ構成要素1504を相互に接続する。データフローグラフ構成要素1504の数の多さ及び構成要素1504を相互に接続するデータフロー1506の複雑さが原因で、例示的なデータ系統レポート1500は、データ系統の要約のための理想的な候補である。
【0095】
図16を参照すると、要約されたデータ系統レポート1600は、
図15のデータ系統レポート1500に対してデータ系統の要約を実行した結果である。要約されたデータ系統レポート1600は、要約されたデータフローグラフ構成要素、データフロー、及びコンテナオブジェクトを象徴するいくつかのクラウドアイコン1608を含む。図から明らかなように、要約されたデータ系統レポート1600は、より少ないデータフローグラフ構成要素及びより少ないデータフローを含み、単純化された、より容易に理解されるデータ系統レポートをもたらす。
【0096】
図17を参照すると、要約されたデータ系統レポート1700の別の例の一部の詳細なビューが、第1のクラウドアイコン1710を含むクラウドアイコン1608のより詳細なビューを示す。特に、それぞれのクラウドアイコン1608は、テキスト「...」を有するハイパーリンクを含み、「+」記号を含むことが示される。所与のクラウドアイコン1608のこれらの態様のどちらかをクリックすることは、クラウドアイコン1608の展開を引き起こし、所与のクラウドアイコンによって表されるデータフローグラフ構成要素、データフロー、及びコンテナオブジェクトを露わにする。例えば、
図18を参照すると、ユーザが第1のクラウドアイコン1710を展開するために「+」記号をクリックするとき、第1のクラウドアイコン1710が展開され、データ系統レポート1700において第1のクラウドアイコン1710によって要約されたコンテナオブジェクト、データフローグラフ構成要素、及びデータフローのすべてを示す。第1のクラウドアイコン1710によって前に要約されたそれぞれの構成要素は、データフローグラフ構成要素がクラウドアイコン(すなわち、第1のクラウドアイコン1710)によって前に要約されたことを示すより小さなバージョンのクラウドアイコン1712を含むことに留意されたい。
【0097】
一部の例において、要約されたデータ系統は、1又は2以上のその他の形態の系統明確化メカニズムと一緒に系統図内に含まれる可能性がある。例えば、系統図は、ユーザが関心のないノードを含むレンダリングされた系統図の部分をまとめるためのユーザの入力に動的に応答する反復的な明確化メカニズムを含む可能性がある。再び
図17を参照すると、クラウドアイコン1608によって表された要約された部分を展開する(及びまとめる)能力に加えて、ユーザは、(参照により本明細書に組み込まれる「VISUALIZING RELATIONSHIPS BETWEEN DATA ELEMENTS AND GRAPHICALREPRESENTATIONS OF DATA ELEMENT ATTRIBUTES」と題された米国特許出願公開第2010/0138431号明細書として公開された米国特許出願第12/629,466号明細書により詳細に説明されているように)「−」記号によって表されるユーザインターフェース要素1714及びデータセットノード1716などの内側に入れ子にされたデータセットノードを有するコンテナオブジェクト1502をまとめ、まとめられた部分を展開する能力を有する。含まれ得る明確化メカニズムの別の例は、(参照により本明細書に組み込まれる「FILTERING DATA LINEAGE DIAGRAMS」と題された米国特許第62/114,684号明細書により詳細に説明されているように)ノードに関連するタグ(tag)値に基づいて系統図にノードを追加するか又は系統図からノードを除外するフィルタリング機能である。これらの3つのメカニズムのうちの任意の2つ又はさらにはこれらのメカニズムのうちの3つすべてを組み合わせることによって、結果として得られる系統図を明確化する力は、メカニズムが互いを補足し合い、データ系統図のどの部分がレンダリングされるかに関するユーザの細かな制御を可能にする相乗的な柔軟性を与えるので大きく高められる。
【0098】
異なる明確化メカニズムが、同時に使用される可能性があり、それぞれのメカニズムが、その特定のメカニズムが系統の特定の部分に適用されるかどうかをユーザが明示的に制御することを可能にする。例えば、系統図の左側に、ユーザは、ユーザが展開する可能性があり、又は展開しない可能性がある、クラウドオブジェクトを中に含むコンテナオブジェクトを展開する可能性があり、右側に、ユーザは、ユーザが展開する可能性があり、又は展開しない可能性がある、コンテナオブジェクトを中に含むクラウドオブジェクトを展開する可能性がある。この細かな制御は、系統図の異なる部分において再帰的に適用される可能性があり、システムは、ユーザのインタラクションに基づいて更新された系統図を動的にレンダリングする。フィルタリングは、系統図の選択された部分にのみ適用されるようにフィルタリングを制限することによって細かなレベルで制御される可能性もある。また、これらの3つの例以外の明確化メカニズムが、より一層の制御のために含まれる可能性もある。例えば、系統図のレンダリングは、(目標ノードからのホップを単位とする)最大半径、又はユーザの制御の下で一度にレンダリングされる連続的なホップにのみ制限される。
【0099】
4 メタデータの連合
一部の例において、上述の系統の要約は、連合させられたメタデータの提示を簡略化するために使用され得る。例えば、特定の組織は、メタデータを保持するためのいくつかの個々のリポジトリを有する。個々のリポジトリに分散されるメタデータの少なくとも一部を管理するために中央リポジトリが使用される。一部の例において、個々のリポジトリのうちの1つが、中央リポジトリとして指定される。その他の例においては、別個のエンティティが、中央リポジトリとして指定される。
【0100】
概して、中央リポジトリは、企業資産(例えば、企業のグロッサリー(corporate glossary)又はその他の企業資産)を管理し、必要に応じて企業資産を個々のリポジトリの間に分散させる。企業資産を中央リポジトリにおいて管理させることによって、企業の用語(corporate terminology)を含む企業資産の一貫性が組織をまたがって保たれる。
【0101】
特定の高レベルのユーザは、中央リポジトリを使用して高レベルのデータ系統図を得ることができ、高レベルのデータ系統図は、単一のデータ系統図へと組み合わされる個々のリポジトリのメタデータの系統のすべてを含む。そのような高レベルのデータ系統図を生じさせるために、中央リポジトリは、複数の個々のリポジトリからメタデータを取り出す。
【0102】
上述のデータ系統要約手法は、個々のリポジトリの一部又は個々のリポジトリ全体を要約ノードにグループ化し、グループ化された部分がユーザの関心が低いことを示すために使用され得る。一部の例において、グループ化された部分に関するメタデータの系統は、ユーザがグループに関する要約ノードを展開し、個々のリポジトリに関する系統への関心を示すまで個々のリポジトリから取得されない。
【0103】
5 代替形態
一部の例において、印を付けられたデータ系統グラフ内のすべてのノードは、初め、関心が低いものとして印を付けられる。それから、ユーザが、特定のデータノードを大きな関心があるものとして選択的に(例えば、ユーザインターフェースを通じてか又はプログラム的にかのどちらかで)指定する。一部の例において、手法は、データ系統内のノード
とデータ系統内のその他のノードとの間の関係に基づいてそのノードに大きな関心があるものとして自動的に印をつける。例えば、ノードが大きな関心のあるノードと同じデータセット内にある場合、ノードはやはり大きな関心があるものとして印を付けられる可能性がある。一部の例においては、特定のノードが、データ系統内の大きな関心のあるノードに対するその特定のノードの相対的な位置が原因で大きな関心があるものとして印を付けられる可能性がある。例えば、大きな関心があるノードに隣接する特定のノードも、大きな関心があるものとして印を付けられる可能性がある。
【0104】
一部の例においては、ユーザが、それぞれのデータノードを2つのカテゴリ、すなわち、「詳細」(つまり、データ系統図の詳細なビューにおいてのみ表示される関心の低いデータノード)又は「要約」(つまり、データ系統図の詳細なビューと要約されたビューとの両方において表示される大きな関心のあるノード)のうちの1つに分類する。一部の例において、ノードが関心が低いものであるのか又は大きな関心があるものであるのかを決定するカテゴリは、「システムアーキテクチャ」又は「規制(regulatory)」などの、ノードが表すアイテムの性質を特徴付けるカテゴリに基づく。
【0105】
一部の例においては、トポロジー内の関心の低いデータノードの集合を特定するために、データノードが、データノード間のいかなる階層とも無関係にまとめられる。出力データセット毎に関心の低いノードの単一の組が存在することを必要とする規則が、実装される。一部の例において、組は、重複する要素を含む可能性がある。一部の例において、要約ノードは、単一の出力データノードに関連付けられた物理的/論理的グループに関連付けられる。その他の例において、要約ノードは、出力ノードの物理的/論理的グループに関連付けられた関心の低いノードが存在しない場合、最も関心の低いノードを含む物理的/論理的グループに関連付けられる。
【0106】
一部の例において、要約ノードは、クラウドアイコンによってデータ系統図内に表される。その他の例においては、その他の種類の要約ノードアイコンが使用される。一部の例において、要約ノードは、その要約ノードの中身についての情報をほとんど又は全く表示しない。その他の例において、要約ノードは、それらの要約ノードの内容について限られた量の情報(例えば、それらの要約ノードに含まれるノードの数、それらの要約ノードに含まれるシステムの数など)を表示する。一部の例において、ユーザは、要約ノード内のリンクをクリックして、系統の要約されたセクションに関する情報の吹き出しを表示することができる。それから、ユーザは、それぞれの要約されたセクションを展開して、要約ノードについての展開された詳細を見ることができる。一部の例においては、ユーザがデータ系統図の要約されたセクションを展開するとき、要約リンクによって要約され、データ系統図の要約されたセクションに関連付けられた元のリンクが、データ系統図の要約されたセクションに関するデータ系統図を決定するために歩かれる。そして、要約されたセクションのデータ系統図が、ユーザに対して表示される。それから、ユーザは、展開された詳細をクリックして、要約された系統に戻ることができる。つまり、ユーザが、詳細をドリルダウンし(つまり、要約ノードを展開し)、要約ノード毎に再びまとめることを可能にされる。このようにして、ユーザは、それらのユーザがそのようにすることを選択する場合、特定の詳細にナビゲートすることができる。
【0107】
6 実施形態
上述のデータ系統要約手法は、例えば、好適なソフトウェア命令を実行するプログラミング可能なコンピューティングシステムを用いて実装される可能性があり、又はフィールドプログラマブルゲートアレイ(FPGA,field-programmable gate array)などの好適なハードウェアで、若しくは何らかの混成の形態で実装される可能性がある。例えば、プログラミングされる手法において、ソフトウェアは、それぞれが少なくとも1つのプロセッサ、(揮発性及び/又は不揮発性メモリ及び/又はストレージ要素を含む)少なくとも1つのデータストレージシステム、(少なくとも1つの入力デバイス又はポートを用いて入力を受け取るため、及び少なくとも1つの出力デバイス又はポートを用いて出力を与えるための)少なくとも1つのユーザインターフェースを含む(分散、クライアント/サーバ、又はグリッドなどのさまざまなアーキテクチャである可能性がある)1又は2以上のプログラミングされた又はプログラミング可能なコンピューティングシステムで実行される1又は2以上のコンピュータプログラムの手順を含み得る。ソフトウェアは、例えば、データフローグラフの設計、構成、及び実行に関連するサービスを提供するより大きなプログラムの1又は2以上のモジュールを含む可能性がある。プログラムのモジュール(例えば、データフローグラフの要素)は、データリポジトリに記憶されたデータモデルに準拠するデータ構造又はその他の編成されたデータとして実装され得る。
【0108】
ソフトウェアは、CD−ROM又は(例えば、多目的若しくは専用のコンピューティングシステム若しくはデバイスによって読み取り可能な)その他のコンピュータ可読媒体などの有形の非一時的媒体上に提供されるか、或いはそのソフトウェアが実行されるコンピューティングシステムの有形の非一時的媒体にネットワークの通信媒体を介して配信される(例えば、伝搬信号に符号化される)可能性がある。処理の一部又はすべては、専用のコンピュータで、又はコプロセッサ若しくはフィールドプログラマブルゲートアレイ(FPGA)若しくは専用の特定用途向け集積回路(ASIC,application-specific integrated circuit)などの専用のハードウェアを用いて実行される可能性がある。処理は、ソフトウェアによって規定された計算の異なる部分が異なるコンピューティング要素によって実行される分散された方法で実装される可能性がある。それぞれのそのようなコンピュータプログラムは、本明細書において説明された処理を実行するためにストレージデバイスの媒体がコンピュータによって読み取られるときにコンピュータを構成し、動作させるために、多目的又は専用のプログラミング可能なコンピュータによってアクセスされ得るストレージデバイスのコンピュータ可読ストレージ媒体(例えば、ソリッドステートメモリ若しくは媒体、又は磁気式若しくは光学式媒体)に記憶されるか又はダウンロードされることが好ましい。本発明のシステムは、コンピュータプログラムで構成された有形の非一時的媒体として実装されると考えられる可能性もあり、そのように構成された媒体は、本明細書において説明された処理ステップのうちの1又は2以上を実行するために特定の予め定義された方法でコンピュータを動作させる。
【0109】
本発明のいくつかの実施形態が、説明された。しかしながら、上述の説明は、添付の請求項の範囲によって定義される本発明の範囲を例示するように意図されており、限定するように意図されていないことを理解されたい。したがって、その他の実施形態も、添付の請求項の範囲内にある。例えば、本発明の範囲を逸脱することなくさまざまな修正がなされ得る。さらに、上述のステップの一部は、順序に依存しない可能性があり、したがって、説明された順序とは異なる順序で実行される可能性がある。