(57)【特許請求の範囲】
【請求項１】
１つまたは複数のデータ処理システムによって行われる方法であって、
データ処理システム中の第１の構成要素を表す少なくとも第１のノードにより、ノードを含む第１のバージョンのグラフ中の第１のノードを選択するユーザ入力を受け取る工程と、
前記第１のノードにより表される前記第１の構成要素を記述する、第１のメタデータオブジェクトの第１のデータ系統を受け取る工程であって、前記第１のメタデータオブジェクトはタイプおよび第１のバージョンタグを有し、前記第１のデータ系統は、そこから前記第１のメタデータオブジェクトが得られた１つまたは複数のデータセットまたは変換、あるいは、前記第１のメタデータオブジェクトを読み込んだ１つまたは複数のデータセットまたは変換を記述する、工程と、
ノードを含む第２のバージョンのグラフから第２のノードを選択するユーザ入力を受け取る工程と、
前記第２のノードにより表される前記第２の構成要素を記述する、第２のメタデータオブジェクトの第２のデータ系統を受け取る工程であって、前記第２のメタデータオブジェクトは前記第１のメタデータオブジェクトと同じタイプを有しおよび、第２のバージョンタグを有し、前記第２のデータ系統は、そこから前記第２のメタデータオブジェクトが得られた１つまたは複数のデータセットまたは変換、あるいは、前記第２のメタデータオブジェクトを読み込んだ１つまたは複数の他のデータセットまたは変換を記述する、工程と、
メタデータオブジェクトを指す外部キーを一覧表示するデータベースにアクセスする工程と、
前記第１のメタデータオブジェクトの前記第１のデータ系統と前記第２のメタデータオブジェクトの前記第２のデータ系統の間の依存関係の差分を識別する際に、前記第１のバージョンタグを有する前記第１のメタデータオブジェクトを指す外部キーの１つ以上の第１のキー、および、前記第２のバージョンタグを有する前記第２のメタデータオブジェクトを指す外部キーの１つ以上の第２のキーの比較を行う工程と、
前記識別された前記第１のデータ系統と前記第２のデータ系統との間の依存関係の差分を反映させる表現で、前記データ処理システム中の構成要素間の依存関係の表現を生成する工程と
を含む方法。
【請求項２】
前記第１のノードの前記タイプが、データセットのフィールド、データセットの列、データセット、または変換、からなる群の１つである、請求項１に記載の方法。
【請求項３】
前記第１のグラフが、データ処理システムの構成要素を表すノードと、前記データ処理システムの構成要素間のデータの流れを表す有向エッジとを含む、請求項１に記載の方法。
【請求項４】
前記表現における差分が、前記第１のメタデータオブジェクトと前記第２のメタデータオブジェクトとの間の構造的な差分に限定される、請求項１に記載の方法。
【請求項５】
前記第１のメタデータオブジェクトがメタデータオブジェクトの第１のバージョンであり、前記第２のメタデータオブジェクトが前記メタデータオブジェクトの第２のバージョンである、請求項１に記載の方法。
【請求項６】
前記第１のバージョンのメタデータオブジェクトに対応する一意のタグと参照表とを使用して前記第１のバージョンの前記メタデータオブジェクトにアクセスする工程と、
前記第２のバージョンの前記メタデータオブジェクトに対応する一意のタグと前記参照表とを使用して前記第２のバージョンの前記メタデータオブジェクトにアクセスする工程と
をさらに含む、請求項５に記載の方法。
【請求項７】
前記第１のバージョンの前記メタデータオブジェクトと前記第２のバージョンの前記メタデータオブジェクトとが、改訂の履歴において祖先−子孫の関係を有する、請求項５に記載の方法。
【請求項８】
前記第１のバージョンの前記メタデータオブジェクトと前記第２のバージョンの前記メタデータオブジェクトとが、改訂の履歴において共通の祖先を有するが、どちらのバージョンのメタデータオブジェクトも他方のバージョンのメタデータオブジェクトの子孫ではない、請求項５に記載の方法。
【請求項９】
前記第１のバージョンの前記メタデータオブジェクトと前記第２のバージョンの前記メタデータオブジェクトが、同時に用いられているデータ処理システムの各実装を記述する、請求項５に記載の方法。
【請求項１０】
コンピュータプログラム命令が符号化された非一時的なコンピュータ記憶媒体であって、前記コンピュータプログラム命令は、１つまたは複数のコンピュータによって実行されると、前記１つまたは複数のコンピュータに、
システム中の第１の構成要素を表す少なくとも第１のノードにより、ノードを含む第１のバージョンのグラフ中の第１のノードを選択するユーザ入力を受け取る工程と、
前記第１のノードにより表される前記第１の構成要素を記述する、第１のメタデータオブジェクトの第１のデータ系統を受け取る工程であって、前記第１のメタデータオブジェクトはタイプおよび第１のバージョンタグを有し、前記第１のデータ系統は、そこから前記第１のメタデータオブジェクトが得られた１つまたは複数のデータセットまたは変換、あるいは、前記第１のメタデータオブジェクトを読み込んだ１つまたは複数のデータセットまたは変換を記述する、工程と、
ノードを含む第２のバージョンのグラフから第２のノードを選択するユーザ入力を受け取る工程と、
前記第２のノードにより表される前記第２の構成要素を記述する、第２のメタデータオブジェクトの第２のデータ系統を受け取る工程であって、前記第２のメタデータオブジェクトは前記第１のメタデータオブジェクトと同じタイプを有しおよび、第２のバージョンタグを有し、前記第２のデータ系統は、そこから前記第２のメタデータオブジェクトが得られた１つまたは複数のデータセットまたは変換、あるいは、前記第２のメタデータオブジェクトを読み込んだ１つまたは複数の他のデータセットまたは変換を記述する、工程と、
メタデータオブジェクトを指す外部キーを一覧表示するデータベースにアクセスする工程と、
前記第１のメタデータオブジェクトの前記第１のデータ系統と前記第２のメタデータオブジェクトの前記第２のデータ系統の間の依存関係の差分を識別する際に、前記第１のバージョンタグを有する前記第１のメタデータオブジェクトを指す外部キーの１つ以上の第１のキー、および、前記第２のバージョンタグを有する前記第２のメタデータオブジェクトを指す外部キーの１つ以上の第２のキーの比較を行う工程と、
前記識別された前記第１のデータ系統と前記第２のデータ系統との間の依存関係の差分を反映させる表現で、前記データ処理システム中の構成要素間の依存関係の表現を生成する工程と
を含む動作を行わせる媒体。
【請求項１１】
前記第１のノードの前記タイプが、データセットのフィールド、データセットの列、データセット、または変換、からなる群の１つである、請求項１０に記載の媒体。
【請求項１２】
前記第１のグラフが、データ処理システムの構成要素を表すノードと、前記データ処理システムの構成要素間のデータの流れを表す有向エッジとを含む、請求項１０に記載の媒体。
【請求項１３】
前記表現における差分が、前記第１のメタデータオブジェクトと前記第２のメタデータオブジェクトとの間の構造的な差分に限定される、請求項１０に記載の媒体。
【請求項１４】
前記第１のメタデータオブジェクトがメタデータオブジェクトの第１のバージョンであり、前記第２のメタデータオブジェクトが前記メタデータオブジェクトの第２のバージョンである、請求項１０に記載の媒体。
【請求項１５】
前記第１のバージョンのメタデータオブジェクトに対応する一意のタグと参照表とを使用して前記第１のバージョンの前記メタデータオブジェクトにアクセスする工程と、
前記第２のバージョンの前記メタデータオブジェクトに対応する一意のタグと参照表とを使用して前記第２のバージョンの前記メタデータオブジェクトにアクセスする工程と
をさらに含む、請求項１４に記載の媒体。
【請求項１６】
前記第１のバージョンの前記メタデータオブジェクトと前記第２のバージョンの前記メタデータオブジェクトとが、改訂の履歴において祖先−子孫の関係を有する、請求項１４に記載の媒体。
【請求項１７】
前記第１のバージョンの前記メタデータオブジェクトと前記第２のバージョンの前記メタデータオブジェクトとが、改訂の履歴において共通の祖先を有するが、どちらのバージョンのメタデータオブジェクトも他方のバージョンのメタデータオブジェクトの子孫ではない、請求項１４に記載の媒体。
【請求項１８】
前記第１のバージョンの前記メタデータオブジェクトと前記第２のバージョンの前記メタデータオブジェクトが、同時に用いられているデータ処理システムの各実装を記述する、請求項１４に記載の媒体。
【請求項１９】
１つまたは複数のコンピュータと、命令を記憶する１つまたは複数の記憶装置とを備えるシステムであって、前記命令は、前記１つまたは複数のコンピュータによって実行されると、前記１つまたは複数のコンピュータに、
システム中の第１の構成要素を表す少なくとも第１のノードにより、ノードを含む第１のバージョンのグラフ中の第１のノードを選択するユーザ入力を受け取る工程と、
前記第１のノードにより表される前記第１の構成要素を記述する、第１のメタデータオブジェクトの第１のデータ系統を受け取る工程であって、前記第１のメタデータオブジェクトはタイプおよび第１のバージョンタグを有し、前記第１のデータ系統は、そこから前記第１のメタデータオブジェクトが得られた１つまたは複数のデータセットまたは変換、あるいは、前記第１のメタデータオブジェクトを読み込んだ１つまたは複数のデータセットまたは変換を記述する、工程と、
ノードを含む第２のバージョンのグラフから第２のノードを選択するユーザ入力を受け取る工程と、
前記第２のノードにより表される前記第２の構成要素を記述する、第２のメタデータオブジェクトの第２のデータ系統を受け取る工程であって、前記第２のメタデータオブジェクトは前記第１のメタデータオブジェクトと同じタイプを有しおよび、第２のバージョンタグを有し、前記第２のデータ系統は、そこから前記第２のメタデータオブジェクトが得られた１つまたは複数のデータセットまたは変換、あるいは、前記第１のメタデータオブジェクトを読み込んだ１つまたは複数の他のデータセットまたは変換を記述する、工程と、
メタデータオブジェクトを指す外部キーを一覧表示するデータベースにアクセスする工程と、
前記第１のメタデータオブジェクトの前記第１のデータ系統と前記第２のメタデータオブジェクトの前記第２のデータ系統の間の依存関係の差分を識別する際に、前記第１のバージョンタグを有する前記第１のメタデータオブジェクトを指す外部キーの１つ以上の第１のキー、および、前記第２のバージョンタグを有する前記第２のメタデータオブジェクトを指す外部キーの１つ以上の第２のキーの比較を行う工程と、
前記識別された前記第１のデータ系統と前記第２のデータ系統との間の依存関係の差分を反映させる表現で、前記データ処理システム中の構成要素間の依存関係の表現を生成する工程と
を含む動作を行わせるように動作可能であるシステム。
【請求項２０】
前記第１のノードの前記タイプが、データセットのフィールド、データセットの列、データセット、または変換、からなる群の１つである、請求項１９に記載のシステム。
【請求項２１】
前記第１のグラフが、データ処理システムの構成要素を表すノードと、前記データ処理システムの構成要素間のデータの流れを表す有向エッジとを含む、請求項１９に記載のシステム。
【請求項２２】
前記表現における差分が、前記第１のメタデータオブジェクトと前記第２のメタデータオブジェクトとの間の構造的な差分に限定される、請求項１９に記載のシステム。
【請求項２３】
前記第１のメタデータオブジェクトがメタデータオブジェクトの第１のバージョンであり、前記第２のメタデータオブジェクトが前記メタデータオブジェクトの第２のバージョンである、請求項１９に記載のシステム。
【請求項２４】
前記第１のバージョンのメタデータオブジェクトに対応する一意のタグと参照表とを使用して前記第１のバージョンの前記メタデータオブジェクトにアクセスする工程と、
前記第２のバージョンの前記メタデータオブジェクトに対応する一意のタグと参照表とを使用して前記第２のバージョンの前記メタデータオブジェクトにアクセスする工程と
をさらに含む、請求項２３に記載のシステム。
【請求項２５】
前記第１のバージョンの前記メタデータオブジェクトと前記第２のバージョンの前記メタデータオブジェクトとが、改訂の履歴において祖先−子孫の関係を有する、請求項２３に記載のシステム。
【請求項２６】
前記第１のバージョンの前記メタデータオブジェクトと前記第２のバージョンの前記メタデータオブジェクトとが、改訂の履歴において共通の祖先を有するが、どちらのバージョンのメタデータオブジェクトも他方のバージョンのメタデータオブジェクトの子孫ではない、請求項２３に記載のシステム。
【請求項２７】
前記第１のバージョンの前記メタデータオブジェクトと前記第２のバージョンの前記メタデータオブジェクトが、同時に用いられているデータ処理システムの各実装を記述する、請求項２３に記載のシステム。
【請求項２８】
１つまたは複数のコンピュータと、命令を記憶する１つまたは複数の記憶装置とを備えるシステムであって、前記命令は、前記１つまたは複数のコンピュータによって実行されると、前記１つまたは複数のコンピュータに、
システム中の第１の構成要素を表す少なくとも第１のノードにより、ノードを含む第１のバージョンのグラフ中の第１のノードを選択するユーザ入力を受け取る手段と、
前記第１のノードにより表される前記第１の構成要素を記述する、第１のメタデータオブジェクトの第１のデータ系統を受け取る手段であって、前記第１のメタデータオブジェクトはタイプおよび第１のバージョンタグを有し、前記第１のデータ系統は、そこから前記第１のメタデータオブジェクトが得られた１つまたは複数のデータセットまたは変換、あるいは、前記第１のメタデータオブジェクトを読み込んだ１つまたは複数のデータセットまたは変換を記述する手段と、
ノードを含む第２のバージョンのグラフから第２のノードを選択するユーザ入力を受け取る手段と、
前記第２のノードにより表される前記第２の構成要素を記述する、第２のメタデータオブジェクトの第２のデータ系統を受け取る手段であって、前記第２のメタデータオブジェクトは前記第１のメタデータオブジェクトと同じタイプを有しおよび、第２のバージョンタグを有し、前記第２のデータ系統は、そこから前記第２のメタデータオブジェクトが得られた１つまたは複数のデータセットまたは変換、あるいは、前記第１のメタデータオブジェクトを読み込んだ１つまたは複数の他のデータセットまたは変換を記述する、手段と、
メタデータオブジェクトを指す外部キーを一覧表示するデータベースにアクセスする手段と、
前記第１のメタデータオブジェクトの前記第１のデータ系統と前記第２のメタデータオブジェクトの前記第２のデータ系統の間の依存関係の差分を識別する際に、前記第１のバージョンタグを有する前記第１のメタデータオブジェクトを指す外部キーの１つ以上の第１のキー、および、前記第２のバージョンタグを有する前記第２のメタデータオブジェクトを指す外部キーの１つ以上の第２のキーの比較を行う手段と、
前記識別された前記第１のデータ系統と前記第２のデータ系統との間の依存関係の差分を反映させる表現で、前記データ処理システム中の構成要素間の依存関係の表現を生成する手段と
を含む動作を行わせるように動作することが可能であるシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
優先権の主張
本願は、２０１３年３月１５日に出願された米国特許出願第６１／７９０，０７４号に対する優先権を主張し、同出願の内容は参照によりすべてが本明細書に組み込まれる。
【０００２】
本明細書の記載は、データ処理システムの複数のバージョンを維持し、比較するためのシステムに関する。
【背景技術】
【０００３】
企業は、データウェアハウジング（warehousing）、顧客関係管理、データマイニングなどの複雑なデータ処理システムを使用してデータを管理している。多くのデータ処理システムでは、データは、データベースファイル、運用システム、フラットファイル、インターネット等の多くの種々のデータソースから引き出されて中央の保存場所に入れられる。しばしば、データは変換されてからデータシステムに投入される。変換は、例えば、浄化、統合、および抽出を含む。データや、その入手元、およびデータシステムに記憶されたデータに行われた変換を追跡するために、メタデータを使用することができる。メタデータ（「データについてのデータ」と呼ばれることもある）は、他のデータの属性、形式、由来、履歴、相互関係等を記述するデータである。メタデータの管理は複雑なデータ処理システムでは中心的な役割を果たすことがある。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
時に、データベースのユーザは、あるデータがどのようにして種々のデータソースから得られるのかを調べたいことがある。例えば、データベースのユーザは、データセットやデータオブジェクトがどのように生成されたのか、またはどの入手元からデータセットやデータオブジェクトが取り込まれたのかを知りたいことがある。データセットをそれが得られる入手元までさかのぼって追跡することをデータ系統（lineage）の追跡（または「上流データ系統の追跡」）と呼ぶ。時に、データベースのユーザは、あるデータセットがどのように使用されてきたのか（「下流データ系統の追跡」または「インパクト解析」と呼ばれる）、例えばどのアプリケーションが所与のデータセットを読み出したかを調べたいことがある。データベースのユーザは、データセットがどのように他のデータセットに関係するかを知ることに関心を持つこともある。例えば、ユーザは、データセットに変更が加えられているのか、どの出力表が影響を受けるのかを知りたい場合がある。
【課題を解決するための手段】
【０００５】
一般に、本明細書に記載される主題の革新的な態様の１つは、ノードを含む第１のグラフ中の第１のノードを選択するユーザ入力を受け取る動作を含みうる方法として実施することができる。上記方法は、第１のノードに関連付けられた第１のオブジェクトの第１のデータ系統を受け取る動作も含み、第１のオブジェクトはタイプを有し、第１のデータ系統は、第１のオブジェクトと１つまたは複数のデータセットまたは変換との間の関係を記述する。上記方法は、ノードを含む第２のグラフから第２のノードを選択するユーザ入力を受け取る工程も含む。上記方法は、第２のノードに関連付けられた第２のオブジェクトの第２のデータ系統を受け取る動作も含み、第２のオブジェクトは第１のオブジェクトと同じタイプを有し、第２のデータ系統は、第１のオブジェクトと１つまたは複数の他のデータセットまたは変換との間の関係を記述する。上記方法は、第１のノードおよび第１のデータ系統と、第２のノードおよび第２のデータ系統との比較を行う動作も含む。上記方法は、比較に基づいてレポートを生成する動作も含む。
【０００６】
この態様の他の実施形態は、それに対応するコンピュータシステム、装置、および１つまたは複数のコンピュータ記憶装置に記録されたコンピュータプログラムを含み、それぞれが上記方法の動作を行うように構成される。１つまたは複数のコンピュータのシステムは、ソフトウェア、ファームウェア、ハードウェア、またはそれらの組み合わせをシステムにインストールし、それが動作時にシステムに動作を行わせることによって特定の動作を行うように構成することができる。１つまたは複数のコンピュータプログラムは、データ処理装置によって実行されるとその装置に動作を行わせる命令を含むことによって特定の動作を行うように構成することができる。
【０００７】
上記および他の実施形態はそれぞれ、任意選択により、以下の特徴の１つまたは複数を単独で、または組み合わせで含むことができる。第１のノードのタイプは、データセットのフィールド、データセットの列、データセット、または変換、からなる群の１つとすることができる。グラフは、データ処理システムの構成要素を表すノードと、データ処理システムの構成要素間のデータの流れを表す有向エッジとを含むことができる。差分は、第１のオブジェクトと第２のオブジェクトとの間の構造的な差分に限定されてもよい。第１のオブジェクトはオブジェクトの第１のバージョンであり、第２のオブジェクトは当該オブジェクトの第２のバージョンであってもよい。上記方法は、第１のバージョンのオブジェクトに対応する一意のタグと参照表とを使用して第１のバージョンのオブジェクトにアクセスする工程も含むことができる。上記方法は、第２のバージョンのオブジェクトに対応する一意のタグと参照表とを使用して第２のバージョンのオブジェクトにアクセスする工程も含むことができる。第１のバージョンのオブジェクトと第２のバージョンのオブジェクトとは、改訂の履歴において祖先−子孫（ancestor-descendant）の関係を有する場合もある。第１のバージョンのオブジェクトと第２のバージョンのオブジェクトとは、改訂の履歴において共通の祖先を有するが、どちらのバージョンのオブジェクトも他方のバージョンのオブジェクトの子孫ではない場合もある。第１のバージョンのオブジェクトと第２のバージョンのオブジェクトは、同時に用いられているデータ処理システムの各実装を記述する場合もある。
【０００８】
態様は、以下の利点の１つまたは複数を備えることができる。一部の実装は、多構成要素のデータ処理システム内の変化のインパクト解析を可能にすることができる。一部の実装は、多構成要素のデータ処理システムの代替バージョン同士の比較を容易にすることができる。一部の実装は、複雑な多構成要素のデータ処理システムの保守管理を容易にすることができる。一部の実装は、多構成要素のデータ処理システムの開発および保守管理の費用を低減することができる。
【０００９】
本発明の他の特徴および利点は以下の説明および特許請求の範囲から明らかになろう。
【図面の簡単な説明】
【００１０】
【図１】データ処理システムの複数のバージョンについてのメタデータを管理するシステムのブロック図である。
【図２Ａ】データ処理システムを記述する２つのバージョンのメタデータ間の差分を反映したデータ系統グラフの一例を示す図である。
【図２Ｂ】データ処理システムを記述する２つのバージョンのメタデータ間の差分を反映したデータ系統グラフの一例を示す図である。
【図２Ｃ】データ処理システムを記述する２つのバージョンのメタデータ間の差分を反映したデータ系統グラフの一例を示す図である。
【図３Ａ】２つの異なるアプリケーションのデータセットを比較するレポートの一例を示す図である。
【図３Ｂ】２つのデータセットを比較するレポートの一例を示す図である。
【図３Ｃ】ディレクトリを比較するレポートの一例を示す図である。
【図３Ｄ】フィールドまたは列を比較するレポートの一例を示す図である。
【図３Ｅ】データ処理システムを記述する２つのバージョンのメタデータ間の差分を反映したデータ系統表の一例を示す図である。
【図４】データ処理システムのバージョン同士を比較するデータ系統の表現を生成する例示的処理のフローチャートである。
【発明を実施するための形態】
【００１１】
メタデータはデータを記述するデータである。メタデータは技術的な内容である場合があり、すなわちデータ構造の仕様、例えばデータ構造のレコード形式、画像の大きさ、画像の色深度等を記述することができる。メタデータは業務に関連する場合もあり、すなわち、データについての非構造的情報、例えば、データ構造のレコードのシステム、画像が撮影された時刻、撮影者の名前等を提供する場合もある。
【００１２】
メタデータは、基礎となるシステムやデータソースの変更に応じて変化する場合がある。１つのシステムが複数バージョンのメタデータを記憶する場合がある。ユーザが、変更後のメタデータを以前のバージョンのメタデータと比較したい、または複数バージョンのメタデータ同士を比較したい場合がある。
【００１３】
実装によっては、構成要素間に依存関係がある多構成要素のコンピューティングシステムについての複数バージョンのメタデータを比較することができる。ユーザは、バージョン間の変化が及ぼすシステム規模の影響を判定することができる。そのような技術のいくつかを使用して、メタデータの枝分かれしたバージョンや並行関係にあるバージョン（例えば、異なる地理的場所に配置されたデータ処理システムのインスタンスを表す）を比較することができる。複数バージョンのメタデータのデータ系統を単一のインターフェースで比較することができる。例えば、データ系統の図式表現を色分けして、それらメタデータバージョンによって記述されるコンピューティングシステムの構成要素のうちバージョン間で同じである構成要素、または異なる構成要素を示すことができる。システムレベルの影響をコーディング（例えば色分け）でさらに強調表示して、ある構成要素の出力が上流の変更によって変更されるが構成要素自体には変化がない場合にそのことを示すことができる。
【００１４】
データ系統同士の比較は、構成要素間の依存関係を反映する、システム構成要素の表形式の一覧で表すこともできる。メタデータの構造的な比較（例えば影響の大きい変更をコメントの変更と区別する）も可能にすることができる。実装によっては、メタデータの各バージョンが、参照表を使用して各種のシステム構成要素に対応付けられた一意のバージョンタグを有する。
【００１５】
図１は、データ処理システムの複数のバージョンについてのメタデータを管理するシステムのブロック図である。環境１００はデータソース１０２を含み、これは、記憶装置やオンラインのデータストリームへの接続などの１つまたは複数のデータソースを含むことができ、各データソースは各種の記憶形式でデータを記憶することができる（例えばデータベース表、表計算ファイル、フラットテキストファイル、またはメインフレームで使用される固有形式等）。データ処理システム１２０は、データ処理構成要素（処理構成要素Ａ１２２，．．．，処理構成要素Ｚ１２４）を含む。データ処理システム１２０は、ＵＮＩＸオペレーティングシステム等の適切なオペレーティングシステムの制御下で、１つまたは複数の汎用コンピュータにホストすることができる。例えば、データ処理システム１２０内の処理構成要素（例えば処理構成要素Ａ１２２）は、複数の中央演算装置（CPU）を使用するコンピュータシステムの構成を含む多ノード並列演算環境を備えることができ、ＣＰＵ群は、ローカル（例えばSMPコンピュータなどのマルチプロセッサシステム）、またはローカル分散型（例えばクラスタやMPPとして結合された複数のプロセッサ）、またはリモート、またはリモート分散型（例えばローカルエリアネットワーク（LAN）および／またはワイドエリアネットワーク（WAN）を介して結合された複数のプロセッサ）、またはそれらの任意の組み合わせである。
【００１６】
実装によっては、データ処理システムは、異なる技術に基づく処理構成要素（例えば異なるプログラミング言語で書かれたソフトウェアや、異なるオペレーティングシステムを実行する別々のコンピューティング装置にホストされたモジュール等）を含むという意味で異種混成型である。
【００１７】
データ処理システム１２０は、データソース１０２のデータにアクセスし、処理構成要素（例えば１２２および１２４）を使用してそのデータを処理することによって出力データを生成する。出力データは、記憶される、かつ／またはデータ処理システム１２０のユーザによって直接消費される場合がある。実装によっては、出力データは送出される場合もあり、例えば、データソース１０２の１つまたは複数のデータソースに書き戻されたり、他のデータシンクに書き出される場合がある。
【００１８】
メタデータ管理システム１３０は、データ処理システム１２０および／またはその外部データソース１０２の動作を記述するメタデータを収集する。データ処理システム１２０の構成要素（例えば処理構成要素Ａ１２２および／または外部のメインフレームデータソース１１０）を記述するメタデータは、メタデータオブジェクトレコードとして、データストレージシステム１４０のリレーショナルデータベース１４２に記憶することができる。メタデータ管理システム１３０は、外部データソース１０２の記述を含む、データ処理システムの１つまたは複数のバージョンを記述するメタデータを保持し、ユーザ（例えばユーザ１５０）がユーザ端末１５２のユーザインターフェースを通じてメタデータと対話できるようにする。例えば、ユーザ端末１５２はグラフィカルユーザインターフェースを備えることができ、ユーザ１５０はそのインターフェースを使用してメタデータ管理システム１２０と対話することができる。ユーザは、データ処理システム１２０の各種バージョンの構成要素を記述するメタデータを照会および／または編集できる場合もある。
【００１９】
メタデータ管理システム１３０がユーザ１５０に提供する機能の１つは、データ系統の表現（例えばデータ系統グラフ、データ系統表、またはデータ処理システム１２０の構成要素間の依存関係を反映する他の表現）を生成し、調査する能力である。
【００２０】
事例によっては、データストレージ１４０はベースデータストアとインターフェースデータストアの両方を含む場合がある。ベースデータストアは技術的なメタデータを記憶することができ、アプリケーションを、グラフや変換などそれらに関連付けられたメタデータと共に保持することができる。技術的なメタデータの記憶に加えて、ベースデータストアは依存関係の分析を含む各種分析を行い（例えば下記で詳細に説明するデータ系統の算出等）、またはそのような分析の結果を受け取って記憶することもできる。事例によっては、ベースデータストアとインターフェースデータストアを組み合わせ、単一のデータストアとして実装することもできる。
【００２１】
技術的なメタデータは各種機能に関して開発者に有用であるが、より高レベルのメタデータを分析し、操作する必要がある事例が多く存在する。時に「企業」メタデータまたは「業務」メタデータと呼ばれるこのより高レベルのメタデータは、しばしばデータ分析で有用である。業務メタデータのいくつかの例には、どの従業員がそのデータを担当するかを示すデータの管理責任や、ファイルおよびファイル内のフィールドについての業務上の定義であるデータ辞書がある。業務メタデータはデータの技術的な記述を越え、インターフェースデータストアなど、ベースデータストアとは別のプラットフォームに記憶される場合もある。
【００２２】
データストレージ１４０にメタデータオブジェクトの形態で記憶される情報は、アプリケーションとそのアプリケーションによって処理されるデータについての各種分析を可能にする。例えば、下記でさらに説明するように、ユーザはデータ系統についての疑問に対する回答を得ることができる（例えば「所与の値がどこから得られたのか？」、「出力値はどのように算出されたのか？」、「どのアプリケーションがこのデータを生成し、このデータに依存するか？」）。開発者は提案される変更の結果を把握することができる（例えば「これが変化すると、他にどれが影響を受けるか？」「このソース形式が変わると、どのアプリケーションが影響を受けるか？」）。ユーザ／開発者は、技術的なメタデータと業務メタデータの両方に関する疑問の回答も得ることができる（例えば「どのグループがこのデータの生成と使用に責任を負っているか？」「このアプリケーションを最後に変更したのは誰か？」「どのような変更を行ったのか？」）。
【００２３】
データストレージ１４０は、記憶されたメタデータオブジェクトの状態を追跡することができる。データストレージ１４０に記憶されたオブジェクトにはバージョンが付与され、それにより、前週、前月、または前年における状況を調べて、それを現在の状況と比較することができる。データストレージ１４０は、動向分析（「例えば担当するデータがどの程度の速さで増大しているか？」）や、容量計画（「そのアプリケーションが実行にどれほどの時間を要したか？」「どれほどの量のデータをどれほどの速度で処理したか？」「アプリケーションがどのリソースを消費したか？」「いつもう一台サーバを追加する必要があるか？」）を可能にするジョブ追跡または実行の情報を収集することができる。
【００２４】
場合によっては、データストレージ１４０、または他のデータソースから関係（系統情報など）を抽出することができる。インターフェースデータストアは、データ系統の高レベルの要約を保持することができる。系統情報（または他のデータ依存関係分析）は、システム１００の内部で自動的に算出するか、または外部のシステムもしくは手動入力から受け取ることができる。例えば、システム１００は、コードを分析する人間によって収集、作成された系統情報を受け取ることができる。系統情報は、各種の所定形式（例えば表計算）のファイルからデータストレージ１４０に取り込むことができる。
【００２５】
例えば、データ系統表現は、データストレージ１４０に記憶されたメタデータオブジェクトを表すデータおよび／または処理ノードの端から端までの系統、すなわち、所与の開始オブジェクトが依存するオブジェクト（ソース）と、所与の開始オブジェクトが影響を及ぼすオブジェクト（ターゲット）を表示する。実装によっては、データ処理システム１２０を記述するメタデータの２つ以上のバージョン間の差分を反映するデータ系統表現を生成することができる。例えば、構成要素（例えばグラフのノードや、表の１つまたは複数のセル）の表現を色分けすることにより、その構成要素について２つのバージョン間の差分を表すことができる。例えば、２つのバージョンについての差分情報をデータ系統の表現の上に重ねることにより、ユーザが、データ処理システム１２０の２つのバージョン間の切り替えが及ぼすシステム規模の影響をより容易に判定できるようにすることができる。それにより、データ処理システムの保守管理費用と、発生する可能性のあるシステム故障時間を低減することができる。
【００２６】
データソース１０２を提供する記憶装置は、データ処理システム１２０に対してローカル、例えばデータ処理システム１２０の１つまたは複数の処理構成要素を実行するコンピュータに接続された記憶媒体（例えばハードドライブ１０８）に記憶しても、または、データ処理システム１２０に対してリモート、例えば、データ処理システム１２０の１つまたは複数の処理構成要素を実行するコンピュータとリモート接続を介して通信状態にあるリモートシステム（例えばメインフレーム１１０）にホストしてもよい。実装によっては、データソース１０２内の１つまたは複数のデータソース装置は、それらの装置が別のエンティティによって操作され、それらの装置から入手できるメタデータはデータソースを識別するために必要な情報だけを記述し、データ処理システム１２０がそのデータソースからデータを抽出できるようにする（例えば識別情報とアプリケーションプログラミングインターフェース（API）情報だけに限定される）という意味で、データ処理システム１２０の外部にある。
【００２７】
図２Ａは、例示的なデータ系統グラフ２００の第１のバージョンの模式図を示す。グラフは、データストア間および変換間の依存関係を示している。データは、１つまたは複数のデータソースから１つまたは複数のデータシンク（データストアと総称する）へのデータの流れを処理するデータ系統グラフのノードで表される一連のデータ処理構成要素を通じて渡される。基礎となるデータ処理システムの各種データ処理構成要素はどれでも、別々の処理装置で実行されるプロセスで実装することができ、または、複数のデータ処理構成要素が、１つの処理装置で実行される１つまたは複数のプロセスで実装される場合もある。実装によっては、入力データレコードは、到着すると同時に連続的に処理される場合もある（例えばクレジットカード処理の要求に応じて等）。実装によっては、データは、データ系統グラフ２００で表されるシステムによって処理される入力データレコードの組を識別するバッチの単位で処理される場合もある。
【００２８】
この例では、データソース「Ｕ．Ｓ．フィード」２０２が「変換Ａ」２０４の変換にデータを提供する。変換Ａ  ２０４は、「Ｕ．Ｓ．フィード」２０２から提供されたデータに操作を行い、その結果を「中間データセット１」２０６のデータストアに記憶する。中間データセット１  ２０６データストアおよび「メキシコフィード」２０８データストアは、「変換Ｂ」２１０の変換にデータを提供する。変換Ｂ  ２１０の変換は、メキシコフィード２０８から提供されたデータおよび中間データセット１  ２０６を使用し、その結果を「出力データセット」２１２データストアに記憶する。
【００２９】
図２Ｂは、例示的なデータ系統グラフ２２０の第２のバージョンの模式図を示す。第２のバージョンは、例えば、上記で図２Ａに関して説明したデータ系統グラフの第１のバージョンのより最近のバージョンまたは更新されたバージョンである。第２のバージョンもデータ系統であり、第１のバージョンのデータ系統と並行である場合がある。
【００３０】
この例では、データソース「Ｕ．Ｓ．フィード」２２２は「変換Ａ」２２４の変換にデータを提供する。変換Ａ  ２２４は、「Ｕ．Ｓ．フィード」２２２から提供されたデータに操作を行い、その結果を「中間データセット１」２２６データストアに記憶する。データソース「メキシコフィード」２２８および「ブラジルフィード」２３８は、「変換Ｃ」２３０の変換にデータを提供する。変換Ｃ  ２３０の変換は、「メキシコフィード」２２８から提供されたデータに操作を行い、その結果を「中間データセット２」２３２データストアに記憶する。
【００３１】
中間データセット１  ２２６データストアおよび「中間データセット２  ２３２データストアは、「変換Ｂ」２３４の変換にデータを提供する。変換Ｂ  ２３４の変換は、中間データセット１  ２２６および中間データセット２  ２３２から提供されたデータを使用し、その結果を「出力データセット」２３６データストアに記憶する。
【００３２】
図２Ｃは、データ処理システムを記述するメタデータの２つのバージョンについての例示的なデータ系統グラフ２４０の模式図を示す。この例では、上記で識別した第１のバージョンと第２のバージョンの比較。データ系統グラフ２４０はメタデータの２つのバージョン間の差分の表示を含んでいる。図の例では、色分けに相当する網掛けパターンで差分を示している。
【００３３】
この例では、データソース「Ｕ．Ｓ．フィード」２４２は「変換Ａ」２４６の変換にデータを提供する。変換Ａ  ２４６は、「Ｕ．Ｓ．フィード」２４２から提供されたデータに操作を行い、その結果を「中間データセット１」２４８データストアに記憶する。データソース「メキシコフィード」２５０および「ブラジルフィード」２６０は「変換Ｃ」２５２の変換にデータを提供する。変換Ｃ  ２５２の変換は、「メキシコフィード」２５０から提供されたデータに操作を行い、その結果を「中間データセット２」２５４データストアに記憶する。
【００３４】
中間データセット１  ２４８データストアおよび「中間データセット２  ２５４データストアは、「変換Ｂ」２５６の変換にデータを提供する。変換Ｂ  ２５６の変換は、中間データセット１  ２４８および中間データセット２  ２５４から提供されたデータを使用し、その結果を「出力データセット」２５８データストアに記憶する。
【００３５】
ノード２５２、２５４、２６０の網掛けは、それらに対応するデータ処理システムの構成要素とデータストアが、このデータ系統の表現で比較される２つのバージョンの一方だけ（例えば第２のバージョンだけ）に存在することを示している。例えば、基礎となるデータ処理システムの第２のバージョンでは、変換Ｃは、ある基準に一致しないレコードをデータフローから削除する（例えばメキシコシティ在住でない顧客に対応するすべてのレコードを削除する）。基礎となるデータ処理システムの第１のバージョンには変換Ｃが存在せず、そのため、メキシコシティの顧客を含むすべてのレコードが、データ処理システム内でデータフローの次の構成要素に渡される。渡されたレコードはデータストア２に記憶することができる。ノード２４８で表される変換Ｂの構成要素は網掛けされていないが、これはこの構成要素が両方のバージョンに出現することを意味する。各バージョンで、変換Ｂは、Ｕ．Ｓ．フィード、メキシコフィード、およびブラジルフィードから得られたレコードに操作を行って、出力データセットにデータを入れる。変換Ｂの構成要素自体は、中間データセット１、およびメキシコフィード（バージョン１の場合）または中間データセット２（バージョン２の場合）のどちらかから受け取られるデータを記憶または表示のために形式設定することができる。例えば、レポートは、第１のバージョンでは商品注文からあがった総収益の合計を含み、レポートは、第２のバージョンではメキシコシティの在住者からの商品注文からあがった総収益の合計を含むことができる。変換Ｃおよび出力データセットは変化がないが、一方のバージョンでは上流構成要素の変換Ｃが挿入されているのに対し、もう一方のバージョンでは挿入されていないため、それぞれの出力が２つのバージョン間で異なる可能性がある。データ系統グラフ２４０を調査するユーザは、比較される２つのバージョン間で変換Ｃが差分であることを容易に判断し、さらに、そのノードの下流にあるノード自体は２つのバージョン間で同じであっても、それら下流ノードで表されるすべての構成要素の出力も変わってくる可能性があることを判断することができる。したがって、２つのバージョン間の変化の影響が及ぶ範囲を迅速に判定することができる。
【００３６】
実装によっては（図示せず）、データ系統の上流の変更が原因で対応する構成要素の出力が変化する可能性のあるノードであってそれ自体は変更のないノードをより明瞭に強調表示して、そのようなノードのステータスの追加的な表示を付加することができる。例えば、変更のあったノードの下流にあるノードを第２の網掛けまたは色で網掛けまたは色分けして、そのステータスをより明瞭に表すことができる。
【００３７】
例えば、変換Ｂ（ノード２５６で表される）は、中間データセット１から得られる情報を中間データセット２と組み合わせることができる。その一連のレコードはデータストア２５８に記憶される。ノード２４６およびノード２４８の縞模様の網掛けは、それらのノードで表される構成要素が比較対象のバージョン両方に存在するが、それらのノードが２つのバージョンで異なることを意味する。データ系統グラフ２００を調査するユーザは、それらの差分がどこに出現するか、および２つのバージョン間の差分の影響の及ぶ範囲を容易に判断することができる。
【００３８】
例えば、データ系統グラフ２４０は、メタデータ管理システム１３０によって生成され、図１のユーザ端末１５２のグラフィカルユーザインターフェースを通じてユーザ１５０に表示することができる。
【００３９】
システム内の異なる構成要素についてのメタデータ間の差分を識別して強調表示するレポートを生成することができる。下記でさらに述べるように、データソース、データセット、ディレクトリ、ならびにフィールドおよび列に基づいてデータセットを比較するレポートを生成することができる。上記のようにデータ系統で識別されるデータ処理システムを記述する２つのバージョンのメタデータ間の差分を識別し、強調表示するレポートも生成することができる。実装によっては、そのようなレポートは、データ系統グラフの所定の区間に基づいて、データセット、データ構成要素、および変換を識別することができる。例えば、１番目の区間２６２は「最終データソース」と識別することができ、２番目の区間２６４は「最初の変換」と識別することができ、３番目の区間２６６は「中間データセット」と識別することができ、４番目の区間２６８は「第２の変換」と識別することができ、５番目の区間２７０は「レポート」と識別することができる。
【００４０】
図３Ａは、データソースに基づいて２つの異なるアプリケーションのデータセットを比較するレポートの一例を示す。レポート３００は、データ処理システム内のアプリケーションを記述するデータセット間の差分を識別する。レポート３００の各行は、１つのアプリケーションで使用されるデータセットを表す。レポート３００の各列は、アプリケーション、この例では「Ｕ．Ｓ．フィード」のデータソース３０２および「メキシコフィード」のデータソース３０４を表す。
【００４１】
レポート３００で比較されるデータ処理システムのアプリケーションに存在する２つのバージョンのデータセット間の差分は網掛けで示される。縞模様の行（例えば縞模様の行３０６および３１０）は、その行または列に対応するデータセット（例えば「City-name.rej」データセットおよび「Customer.err」データセット）が両方のバージョンに存在するが、２つのバージョン間で異なる（例えば変更が加えられている）ことを示す。網掛けされた行および列（例えば網掛けされた行３０８および３１２）は、その行に対応するデータセット（例えば「Bogo_promos.dat」データセットおよび「Dg_Issues」データセット）が比較される２つのバージョンのうち一方のみに存在することを示す。
【００４２】
図３Ｂは、２つのデータセットを比較するレポートの一例を示す。レポート３２０は、データ処理システム内のアプリケーションを記述するデータセット間の差分を識別する。レポート３２０の各行は、データセット各々にあるデータ要素を表す。レポート３２０の各列は、データセット、この例では、「customer.dat」３２２および「customer.dat（２）」３２４と名付けられた２つのバージョンの顧客データセットを表す。
【００４３】
レポート３２０で比較される２つのバージョンのデータセット間の差分は網掛けで示される。縞模様の行（例えば縞模様の行３３０）は、その行または列に対応するデータ要素（例えば「Cust_birthday」のデータ要素）が両方のデータセットに存在するが２つのバージョン間で異なる（例えば変更が加えられている）ことを示す。網掛けされた行および列（例えば網掛けされた行３２８および３３２）は、その行に対応するデータ要素（例えば「Main_postcode」データセットおよび「Main_zipcode」データ要素）が、比較される２つのバージョンのうち一方のみに存在することを示す。
【００４４】
図３Ｃは、ディレクトリを比較するレポートの一例を示す。レポート３４０は、コンピュータシステムで使用されるディレクトリ間の差分を識別する。レポート３４０の各行は、そのディレクトリに記憶されたファイルを表す。レポート３４０の各列は、ディレクトリ、この例では、「Workarea（１）」ディレクトリ３４２および「Workarea（２）」ディレクトリ３４４内のファイルを表す。
【００４５】
２つのディレクトリ間の差分は網掛けで示される。縞模様の行（例えば縞模様の行３４６および３５０）は、その行または列に対応するファイル（例えば「Promotions.rej」ファイルおよび「Customers.rej」ファイル）が両方のバージョンに存在するが、２つのディレクトリ間で異なっている（例えば変更が加えられている）ことを示す。網掛けされた行および列（例えば網掛けされた行３４８および３５２）は、その行に対応するファイル（例えば「Cust_payments.dat」ファイルおよび「Promotions.dat」ファイル）が２つのディレクトリの一方のみに存在することを示す。
【００４６】
図３Ｄは、フィールドまたは列を比較するレポートの一例を示す。レポート３６０は、１つまたは複数のデータセット中のフィールドまたは列間の差分を識別する。レポート３６０の行は、フィールドまたは列の特性を表す。特性は追加的な列３６１で識別することができる。レポート３６０の各列は、データセットのフィールドまたは列、この例では「Cust_Birthday」フィールド３６２および「Cust_Birthday（２）」フィールド３６４を表す。
【００４７】
２つのフィールド間または列間の差分は網掛けで示される。縞模様の行（例えば縞模様の行３６６および３７０）は、その行または列に対応する各特性（例えば「データセット」特性および「ネイティブ型」特性）の値が両方のフィールドに存在するが、２つのフィールド間で異なっていることを示す。網掛けされた行および列（例えば網掛けされた行３６８および３７２）は、その行に対応する特性（例えば「デフォルト値」特性および「業務条件」特性）が２つのフィールドの一方のみに存在することを示す。
【００４８】
図３Ｅは、データ処理システムを記述する２つのバージョンのメタデータ間の差分を反映したデータ系統表３８０の一例を示す。この例では、データ系統表３８０は、図２Ｃのデータ系統図２４０に反映された、図２Ａのデータ系統図２００と図２Ｂのデータ系統図２２０との差分を反映している。
【００４９】
表の見出し行３８２は、図２Ｃに関して上述したようにデータ系統図の区間を識別する。１番目の列２８６は、データ系統図のレポート領域２６２に関連するデータ系統図の構成要素を識別し、２番目の列２８７は、データ系統図２６８の第２の変換の区間に関連するデータ系統図の構成要素を識別する。３番目の列２８８は、中間データセットの区間２６６に関連するデータ系統図の構成要素を識別する。４番目の列２８９は、最初の変換の区間２６４に関連するデータ系統図の構成要素を識別する。５番目の列２９０は、最終データソースの区間２６２に関連するデータ系統図の構成要素を識別する。
【００５０】
行２８４は、出力データセットに関連付けられた構成要素を示す。この例では、出力データセットのフィールドの大きさが拡大して、それが変換Ｂ、中間データセット１、中間データセット２、変換Ａ、変換Ｃ、Ｕ．Ｓ．フィード、メキシコフィード、およびブラジルフィードに関連付けられていることを視覚的に識別することができる。フィールドごとに、フィールドの大きさを調整して構成要素間の関係を明確に示す。例えば、メキシコフィードおよびブラジルフィードは変換Ｃに関連付けられており、すなわち、図２Ｃを参照すると、メキシコフィード２５０およびブラジルフィード２６０は変換Ｃ２５２にデータを供給する。そのため、変換Ｃのフィールド２９４の大きさは、メキシコフィードのフィールドおよびブラジルフィードのフィールド２９６と視覚的に関連付けられるのに十分な大きさとなっている。
【００５１】
データ系統の２つの構成要素間の差分は網掛けで示すことができる。縞模様のフィールド（例えば縞模様のフィールド２９１、２９２）は、それらの構成要素がデータ系統図の両方のバージョンに存在するが、同じように変更されていることを示す。例えば、中間データセット１は、中間データセット１  ２０６として図２Ａのデータ系統図２００に存在すると共に、中間データセット１  ２２６として図２Ｂのデータ系統図２２０にも存在するが、レポートで反映されるデータセットには何らかの変更が行われている。
【００５２】
塗りつぶされたフィールド（例えば塗りつぶされたフィールド２９３、２９４、および２９６）は、複数のバージョンが比較される場合に、その構成要素がデータ系統図の１つのみに存在する、またはデータ系統図の少なくとも１つに存在しないことを示す。例えば、変換Ｃは、図２Ｂのデータ系統図２２０には存在するが、図２Ａのデータ系統図２００には存在しない。
【００５３】
データ系統のどの要素についてのメタデータでも比較を行うことができる。例えば、データセットのバージョンとデータ変換構成要素を比較することができる。図４に、例示的なメタデータバージョン比較処理４００のフローチャートを示す。例えば、処理４００は図１のメタデータ管理システム１３０によって行うことができる。
【００５４】
処理４００はバージョン比較の要求が受け取られる４０２と開始することができる。実装によっては、要求は、他のバージョンが比較される対象となる基本バージョンまたは基準バージョンの明示的または暗黙的な識別を含む場合もある。要求は、それについてのメタデータを入手することが可能なデータ処理システムのさらに一つの追加的バージョンの識別を含む場合もある。実装によっては、要求は、基本バージョンを指定せずに、データ処理システムを記述するメタデータの２つまたはそれ以上のバージョンを識別する情報を含む。例えば、バージョンを識別する情報は、データ処理システムのバージョンに関連付けられた一意のバージョンタグを含むことができる。
【００５５】
比較の要求で識別されるバージョンは互いと様々な関係を有する可能性がある。実装によっては、第１のバージョンのメタデータと第２のバージョンのメタデータが改訂の履歴において祖先−子孫の関係を有する。例えば、第１のバージョンが第２のバージョンのより最近の改訂である、または第２のバージョンが第１のバージョンのより最近の改訂である場合がある。実装によっては、第１のバージョンのメタデータと第２のバージョンのメタデータが改訂の履歴で共通の祖先を有するが、どちらのバージョンのメタデータも他方のバージョンのメタデータの子孫ではない。例えば、第１のバージョンと第２のバージョンが、それらより古い第３のバージョンから共に派生した並行した代替の開発経路に対応する場合がある。実装によっては、第１のバージョンのメタデータと第２のバージョンのメタデータが、同時に用いられているデータ処理システムの各実装を記述する。例えば、第１のバージョンのメタデータは、第１の地理的領域（例えば北アメリカ）に配置されたデータ処理システムのインスタンスを記述し、第２のバージョンのメタデータは、第２の地理的領域（例えばヨーロッパ）に配置されたデータ処理システムのインスタンスを記述する。別の例では、第１のバージョンのメタデータがデータ処理システムの試験モードのインスタンスを記述し、第２のバージョンのメタデータがデータ処理システムの生産モードのインスタンスを記述する。
【００５６】
実装によっては、要求は、要求を受け取る処理装置にローカルに接続されたハードウェア（例えばコンピュータモニタや、キーボードおよび／またはマウス）を含むユーザインターフェース（例えばグラフィカルユーザインターフェース）を通じて受け取られる。例えば、要求は、図１のメタデータ管理システム１３０のユーザインターフェースを通じて受け取られる４０２。実装によっては、要求は、遠隔の処理装置からネットワークインターフェースを通じてサーバによって受け取られる。例えば、要求は、遠隔の処理装置で動作するユーザ端末１５２からメタデータ管理システム１３０のネットワークインターフェースを通じて受け取られる４０２。
【００５７】
データ処理システムを記述する第１のバージョンのメタデータが取得される４０４。実装によっては、第１のバージョンのメタデータに対応する一意のタグおよび参照表を使用して、第１のバージョンのメタデータについてのメタデータにアクセスする。例えば、リレーショナルデータベースが、データ処理システムの構成要素に関連付けられたメタデータオブジェクトを指す外部キーを一覧表示する参照表を含むことができる。実装によっては、データ処理システムの構成要素を記述するメタデータオブジェクトが、外部キーとして１つまたは複数のバージョンタグを含むことができる。第１のバージョンのメタデータを取得する４０４と、リレーショナルデータベースを照会して、第１のバージョンに対応するバージョンタグを含むすべてのメタデータオブジェクトを返すことができる。例えば、図１のメタデータ管理システム１３０により、データストレージ１４０にあるリレーショナルデータベース１４２から第１のバージョンのメタデータを取得することができる４０４。
【００５８】
データ処理システムの構成要素間の依存関係の表現が生成される４０６。表現は、データ処理システムを記述する第１のバージョンのメタデータに基づく第１のデータ系統を反映することができる。実装によっては、表現は、データ処理システムの構成要素を表すノードと、データ処理システムの構成要素間のデータの流れを表す有向エッジとを持つグラフを含むことができる。例えば、図２は、データ処理システムの構成要素間の依存関係を反映するデータ系統グラフの一例を示す。実装によっては、表現は、データ処理システムの構成要素を一覧表示する表を含むことができる。例えば、図３は、データ処理システムの構成要素間の依存関係を反映するデータ系統表の一例を示す。実装によっては、表現は、保存されたファイル、ネットワークを通じて送信されたデータのパケット、またはデータ処理システムの構成要素間の依存関係を反映する他のデータを含む場合もある。例えば、表現は、図１のメタデータ管理システム１３０によって生成することができる４０６。
【００５９】
データ処理システムを記述する第２のバージョンのメタデータが取得される４０８。実装によっては、第２のバージョンのメタデータについてのメタデータは、第２のバージョンのメタデータに対応する一意のタグおよび参照表を使用してアクセスされる。例えば、リレーショナルデータベースが、データ処理システムの構成要素に関連付けられたメタデータオブジェクトを指す外部キーを一覧表示する参照表を含むことができる。外部キーの一部は、データ処理システムを記述するメタデータの基本バージョンまたは基準バージョンに関連付けられたメタデータオブジェクトを指すことができる。他の外部キーは、基本バージョンまたは基準バージョンとは異なるメタデータオブジェクトを指すことができる。その理由は、対応するデータ処理システムの構成要素についてのメタデータオブジェクトは、バージョンタグに関連付けられたバージョンと異なるため、またはメタデータオブジェクトが、基本バージョンまたは基準バージョンに存在しない構成要素に対応するためである。場合によっては、基本バージョンまたは基準バージョンに存在するメタデータオブジェクトが、バージョンタグに関連付けられたバージョンに存在しないことがある。
【００６０】
実装によっては、バージョンタグは、そのバージョンタグに関連付けられた参照表中の値で明示的に置き換えられない限り、基本バージョンまたは基準バージョンのすべてのメタデータオブジェクトに暗黙的に関連付けられる。例えば、バージョンタグに対応する参照表の項目は、基本バージョンとの差分のみを記号化することができる。構成要素を記述するメタデータオブジェクトが基本バージョン中で省略される場合、参照表は、そのメタデータオブジェクトを指す外部キーを有する項目を含むことができる。バージョンタグに関連付けられたバージョンで構成要素を記述するメタデータオブジェクトに（基本バージョンと比較して）変更が加えられた場合、参照表は、基本バージョンに関連付けられたメタデータオブジェクトと、バージョンタグに関連付けられたメタデータオブジェクトとの両方を指す外部キーを有する項目を含むことができる。バージョンタグに関連付けられたバージョンで構成要素を記述するメタデータオブジェクトが省略される場合、参照表は、基本バージョンに関連付けられたメタデータオブジェクトを指す外部キーと、その削除を反映する空キーとを持つ項目を含むことができる。
【００６１】
実装によっては、基本バージョンすなわち基準バージョンがない場合があり、各バージョンタグは、その特定のバージョンに関連付けられたメタデータオブジェクトの任意の集まりを指す外部キーの組に関連付けられる。
【００６２】
例えば、図１のメタデータ管理システム１３０により、データストレージ１４０にあるリレーショナルデータベース１４２から第１のバージョンのメタデータを取得する４０４ことができる。
【００６３】
データ処理システム内の構成要素間の依存関係の表現を増強して４１０、第１のデータ系統と、データ処理システムを記述する第２のバージョンのメタデータに基づく第２のデータ系統との差分を反映する。実装によっては、２つのバージョンのそれぞれのバージョンタグに関連付けられたメタデータオブジェクトを指す外部キーのリストを比較することによって差分が検出される場合もある。実装によっては、第２のバージョンだけについてのメタデータオブジェクトを指す外部キーのリストを読み出すことによって差分が検出される場合もあり、その場合、リストは基本バージョンまたは基準バージョンである第１のバージョンとの差分を明示的に示す形式で生成および／または記憶されている。実装によっては、２つのそれぞれのバージョンタグに関連付けられたメタデータオブジェクトを直接比較することによって差分が検出される。
【００６４】
差分は表現中で各種方式で表すことができる。例えば、表現の特定の要素を色分けして、データ処理システムの構成要素を記述するメタデータオブジェクトの（第１のバージョンと比較した）削除または変更を反映することができる。（第１のバージョンと比較した）追加的な（例えば新しい）メタデータオブジェクトを反映する表示または他のデータを表現に追加してもよい。実装によっては、表現はデータ系統グラフを含み、２つのバージョンのメタデータ間の差分を少なくとも部分的にノードの色分けによって反映して、第１のバージョンのメタデータと第２のバージョンのメタデータの間で変更された構成要素を示す。実装によっては、２つのバージョンのメタデータ間の差分を少なくとも部分的にノードの色分けで反映して、データ系統の上流の変化が原因で第１のバージョンのメタデータと第２のバージョンのメタデータとで出力が変わる構成要素を示す。例えば、（第１のバージョンと比較して）第２のバージョンでそれ自体が変更されているメタデータオブジェクトを表すノードに第１の色（例えば黄色）を適用し、それ自体は変更が加えられていないが、データ系統の上流の変更が原因で異なる出力を生成する可能性のあるメタデータオブジェクトを表すノードに第２の色（例えば赤）を適用することができる。
【００６５】
実装によっては、表現はデータ系統表を含み、２つのバージョンのメタデータ間の差分を表のセルの色分けで少なくとも部分的に反映して、第１のバージョンのメタデータと第２のバージョンのメタデータの間で変化のあった構成要素を示す。実装によっては、２つのバージョンのメタデータ間の差分を少なくとも部分的に表のセルの色分けによって反映して、データ系統の上流の変化が原因で第１のバージョンのメタデータと第２のバージョンのメタデータとで出力が変わる構成要素を示す。例えば、（第１のバージョンと比較して）第２のバージョンでそれ自体に変更が加えられているメタデータオブジェクトを表すセルに第１の色（例えば黄色）を適用し、それ自体は変更されていないが、データ系統の上流の変更が原因で異なる出力を生成する可能性のあるメタデータオブジェクトを表すセル（例えば上流の依存関係を示す１つのセルや、影響を受けるメタデータに関連付けられたセルの行または列）に第２の色（例えば赤）を適用することができる。
【００６６】
実装によっては、表現中で反映される差分は、第１のバージョンのメタデータと第２のバージョンのメタデータの構造的な差分に限定される。例えば、メタデータオブジェクトのコメント部分の変化は除外して表現に反映させず、一方、データ処理に影響する可能性のあるメタデータオブジェクトの構造的な（例えば大幅な）変化は表現に反映させることができる。
【００６７】
例えば、図１のメタデータ管理システム１３０により表現を増強することができる４１０。
【００６８】
バージョンの比較要求の処理は、その要求で識別されるすべてのバージョンが少なくとも１つの他のバージョンと比較されるまで４１２継続することができる。例えば、表現をさらに増強して、第１のデータ系統と、データ処理システムを記述する第３のバージョンのメタデータに基づく第３のデータ系統との差分を反映することができる。実装によっては、第１のバージョン以外の各バージョンが第１のバージョン（例えば指定された基本バージョンまたは基準バージョン）と比較される場合もある。
【００６９】
識別されたバージョンがすべて比較され、その比較を反映するように表現が増強されると４１２、表現を記憶、送信、および／または表示することができる７１４。例えば、表現は、データ系統グラフやデータ系統表を生成するために読み出されて使用される可能性のあるファイルを含む場合があり、そのファイルをメタデータ管理システム１２０により図１のデータストレージ１４０に記憶することができる。実装によっては、１つまたは複数のネットワークプロトコルメッセージのペイロードに表現を符号化して、そのメッセージを電子通信ネットワークを介して（例えばメタデータ管理システム１３０のネットワークインターフェースを通じて）（例えばユーザ端末１５２に）送信することができる。実装によっては、グラフィカルユーザインターフェースを通じて表現をユーザに表示することができる。例えば、表現は、ユーザ端末１５２のグラフィカルユーザインターフェースを通じて、データ系統グラフやデータ系統表としてユーザ１５０に表示することができる。
【００７０】
上記のメタデータバージョン比較の手法は、コンピュータで実行されるソフトウェアを使用して実装することができる。例えば、ソフトウェアは、プログラムされた、またはプログラム可能な１つまたは複数のコンピュータシステム（分散、クライアント／サーバ、またはグリッドなどの各種アーキテクチャをとることができる）で実行される１つまたは複数のコンピュータプログラム中のプロシージャを形成し、各コンピュータシステムは、少なくとも１つのプロセッサ、少なくとも１つのデータ記憶システム（揮発性および不揮発性メモリならびに／または記憶素子を含む）、少なくとも１つの入力装置またはポート、および少なくとも１つの出力装置またはポートを含む。ソフトウェアは、例えばデータフローグラフの設計および構成に関連する他のサービスを提供する、より大きなプログラムの１つまたは複数のモジュールを形成することも可能である。グラフのノードおよび要素は、コンピュータ読取り可能媒体に記憶されたデータ構造として、またはデータ保存場所に記憶されたデータモデルに準拠した他の組織化されたデータとして実装することができる。
【００７１】
ソフトウェアは、汎用または特殊目的のプログラム可能コンピュータで読取り可能なＣＤ−ＲＯＭなどの記憶媒体で提供する、または、ネットワークの通信媒体を通じて、実行されるコンピュータの記憶媒体に（伝搬信号に符号化した状態で）配信することもできる。すべての機能は、特殊目的のコンピュータで行うか、またはコプロセッサなどの特殊目的のハードウェアを使用して行うことができる。ソフトウェアは、ソフトウェアによって指示される演算の異なる部分が異なるコンピュータで行われる分散方式で実装することもできる。そのような各コンピュータプログラムは、好ましくは、汎用または特殊目的のプログラム可能コンピュータで読取り可能な有形の非一時的記憶媒体または装置（例えば固体素子メモリもしくは媒体、または磁気媒体もしくは光学媒体）に記憶されるか、またはダウンロードされて、記憶媒体または装置がコンピュータシステムによって読み取られるとコンピュータを構成し、動作させて、本明細書に記載の手順を行う。本発明のシステムは、コンピュータプログラムを備えて構成されたコンピュータ読取り可能記憶媒体として実装されると考えることもでき、その場合は、そのように構成された記憶媒体が、本明細書に記載の機能を行うようにコンピュータシステムを特定の事前定義された方式で動作させる。
【００７２】
本発明のいくつかの実施形態について説明した。ただし、本発明の主旨および範囲から逸脱することなく各種の変更を加えることが可能であることは理解されよう。例えば、上記の工程の一部は順序に依存せず、したがって説明した順序と異なる順序で行うことができる。
【００７３】
前述の説明は例示を目的するものであり、本発明の範囲を限定するものではないことを理解されたい。本発明の範囲は添付の特許請求の範囲によって定義される。例えば、上記の機能工程のいくつかは、全体的な処理に実質的な影響を与えることなく、異なる順序で行うことができる。図２および図３の例で説明され、本願全体で参照される商品注文に関する特定のデータ処理の詳細事項は、メタデータ管理システムとそれに関連する処理の能力を例示するものに過ぎないことを強調しておく。ここに提示される特定のデータ処理システムの詳細は必須の特徴ではなく、特許請求の範囲を限定するものとは解釈すべきでない。以下の特許請求の範囲内に他の実施形態がある。
【図１】
0006618461.tif 000002
【図２Ａ】
0006618461.tif 000003
【図２Ｂ】
0006618461.tif 000004
【図２Ｃ】
0006618461.tif 000005
【図３Ａ】
0006618461.tif 000006
【図３Ｂ】
0006618461.tif 000007
【図３Ｃ】
0006618461.tif 000008
【図３Ｄ】
0006618461.tif 000009
【図３Ｅ】
0006618461.tif 000010
【図４】
0006618461.tif 000011