(57)【要約】      （修正有）【課題】 データフローと外部データファイルの整合性を検査する。【解決手段】  少なくとも１つの外部データファイルの各々に対し、外部データファイルからの少なくとも１つのカラムの使用について記述する使用データを備えるデータフローモデルを記憶するステップと、外部データファイルの各々の少なくとも１つのカラムについて記述するデータを含むメタデータを記憶するステップと、記憶されたメタデータを使用して、データフローモデルと外部データファイルとの整合性があるかどうかを決定するステップとを備えた。【選択図】  図３
2006031687.tif 000002
【特許請求の範囲】
【請求項１】
各々の外部データファイルが情報のカラムを含む少なくとも１つの前記外部データファイルを使用するデータフローに関するデータフロー情報を作成する方法であって、
前記少なくとも１つのデータファイルの各々に対し、前記外部データファイルからの少なくとも１つのカラムの使用について記述する使用データを備えるデータフローモデルを記憶するステップと、
前記少なくとも１つの外部データファイルの各々の少なくとも１つのカラムについて記述するデータを含むメタデータを記憶するステップと、
前記記憶されたメタデータを使用して、前記データフローモデルと前記外部データファイルとの整合性があるかどうかを決定するステップと
を備えたことを特徴とする方法。
【請求項２】
前記少なくとも１つのカラムについて記述するデータは、前記少なくとも１つのカラムに関連する型データを備えたことを特徴とする請求項１に記載の方法。
【請求項３】
前記記憶されたメタデータを使用して、前記データフローモデルと前記外部データファイルとの整合性があるかどうかを決定するステップは、
各外部データファイルに対し、前記記憶されたメタデータが、前記外部データファイルの現在の状態と整合性があることを確認するステップ
を備えたることを特徴とする請求項１に記載の方法。
【請求項４】
前記記憶されたメタデータが、前記外部データファイルの現在の状態と整合性があることを確認するステップは、
前記記憶されたメタデータに記述された各カラムが、前記外部データファイルにあるかどうかを決定するステップと、
前記外部データファイル中の各カラムが、前記記憶されたメタデータに記述されているかどうかを決定するステップと
を備えたことを特徴とする請求項３に記載の方法。
【請求項５】
前記少なくとも１つのカラムについて記述するデータは、前記カラムに記憶されたデータの型について記述する型のデータを備え、前記記憶されたメタデータが前記外部データファイルの現在の状態と整合性があることを確認するステップは、
前記記憶されたメタデータに記述された各カラムの前記型のデータが、前記外部データファイルの前記カラムの前記型データと整合性があるかどうかを決定するステップをさらに備えたことを特徴とする請求項４に記載の方法。
【請求項６】
前記記憶されたメタデータを使用して、前記データフローモデルと前記外部データファイルとの整合性があるかどうかを決定するステップは、
前記記憶されたメタデータが前記外部データファイルの前記現在の状態と整合性があることを示す妥当性検査状態を提供するステップをさらに備えたことを特徴とする請求項３に記載の方法。
【請求項７】
前記記憶されたメタデータを使用して、前記データフローモデルと前記外部データファイルとの整合性があるかどうかを決定するステップは、
前記記憶されたメタデータが前記外部データファイルの前記現在の状態と整合性がない場合は、前記非整合性を解消するステップをさらに備えたことを特徴とする請求項３に記載の方法。
【請求項８】
前記非整合性を解消するステップは、
前記非整合性を解消するように前記ユーザに問い合わせるステップを備えたことを特徴とする請求項７に記載の方法。
【請求項９】
前記非整合性を解消するステップは、
前記データフローのインタフェースを使用して前記非整合性を解消するステップを備えたことを特徴とする請求項７に記載の方法。
【請求項１０】
前記外部データファイルの各々に記憶された前記現在のデータを反映するデータを含むように、前記記憶されたメタデータを再同期するステップをさらに備えたことを特徴とする請求項１に記載の方法。
【請求項１１】
前記使用データに記述された前記外部データファイルからの少なくとも１つのカラムの前記各々の使用が前記外部データファイルの各々に対する現在の状態から提供されたかどうかを決定することにより、前記データフローモデルと前記外部データファイルとに整合性があるかどうかを決定するステップをさらに備えたことを特徴とする請求項１に記載の方法。
【請求項１２】
前記使用データに記述された前記外部データファイルからの少なくとも１つのカラムの前記各々の使用が前記外部データファイルの各々に対する現在の状態から提供されたかどうかを決定することにより、前記データフローモデルと前記外部データファイルとに整合性があるかどうかを決定するステップは、
前記データフローモデルが前記外部データファイルの前記現在の状態と整合性があるかどうかを示す妥当性検査状態を提供するステップを備えたことを特徴とする請求項１１に記載の方法。
【請求項１３】
前記使用データに記述された前記外部データファイルからの少なくとも１つのカラムの前記各々の使用が前記外部データファイルの各々に対する現在の状態から提供されたかどうかを決定することにより、前記データフローモデルと前記外部データファイルとに整合性があるかどうかを決定するステップは、
前記記憶されたメタデータが前記外部データファイルの前記現在の状態と整合性がない場合には、前記非整合性を解消するステップを備えたことを特徴とする請求項１１に記載の方法。
【請求項１４】
前記非整合性を解消するステップは、
前記非整合性を解消するように前記ユーザに問い合わせるステップを備えたことを特徴とする請求項１３に記載の方法。
【請求項１５】
前記非整合性を解消するステップは、
前記データフローのインタフェースを使用して前記非整合性を解消するステップを備えたことを特徴とする請求項１３に記載の方法。
【請求項１６】
前記外部データファイルの前記現在の状態を反映するよう前記データフローを再同期するステップをさらに備えたことを特徴とする請求項１１に記載の方法。
【請求項１７】
前記記憶されたメタデータを使用して、前記データフローモデルと前記外部データファイルとの整合性があるかどうかを決定するステップは、
前記記憶されたメタデータが、前記データフローと整合性があることを確認するステップを備えたことを特徴とする請求項１に記載の方法。
【請求項１８】
前記記憶されたメタデータが、前記データフローと整合性があることを確認するステップは、
前記使用データに記述された前記外部データファイルからの少なくとも１つのカラムの前記使用それぞれが、前記記憶されたメタデータと整合性があるかどうかを決定するステップを備えたことを特徴とする請求項１７に記載の方法。
【請求項１９】
前記使用データに記述された前記外部データファイルからの少なくとも１つのカラムの前記各々使用が、前記記憶されたメタデータと整合性がない場合は、前記非整合性を解消するステップをさらに備えたことを特徴とする請求項１８に記載の方法。
【請求項２０】
オペレーティングシステム、複数のコンピュータ実行可能命令が格納されたコンピュータ可読媒体、コプロセッシングデバイス、コンピューティングデバイス、および、請求項１に記載の方法を行うコンピュータ実行可能命令を搬送する変調データ信号の少なくとも１つを備えたことを特徴とするシステム。
【請求項２１】
前記データフローモデルは、データフローに関する情報を含み、前記情報は、少なくとも１つの外部データファイルの各々に対し、前記外部データファイルからの少なくとも１つのカラムの使用を記述する使用データを含むデータフローモデルを評価する方法であって、
前記少なくとも１つの外部データファイルの各々の少なくとも１つのカラムについて記述するデータを含むメタデータを取り出すステップと、
前記メタデータを使用して、前記データフローモデルと前記メタデータとの整合性があるかどうかを決定するステップと
を備えたことを特徴とする方法。
【請求項２２】
前記記憶されたメタデータを使用して、前記データフローモデルと前記メタデータとの整合性があるかどうかを決定するステップは、
前記記憶されたメタデータが前記メタデータに整合性があるかどうかを示す妥当性検査状態を提供するステップを備えたことを特徴とする請求項２１に記載の方法。
【請求項２３】
前記記憶されたメタデータを使用して、前記データフローモデルと前記メタデータとの整合性があるかどうかを決定するステップは、
前記記憶されたメタデータが前記外部データファイルの前記現在の状態と整合性がない場合は、前記非整合性を解消するステップを備えたことを特徴とする請求項２１に記載の方法。
【請求項２４】
前記非整合性を解消するステップは、前記非整合性を解消するように前記ユーザに問い合わせるステップを備えたことを特徴とする請求項２３に記載の方法。
【請求項２５】
前記非整合性を解消するステップは、前記データフローのインタフェースを使用して前記非整合性を解消するステップを備えたことを特徴とする請求項２３に記載の方法。
【請求項２６】
各前記外部データファイルの各々に記憶された前記現在のデータを反映するデータを含むように、前記記憶されたメタデータを再同期するステップをさらに備えたことを特徴とする請求項２１に記載の方法。
【請求項２７】
各前記外部データファイルの各々は情報のカラムを含み、少なくとも１つの外部データファイルを使用するデータフローに関するデータフロー情報を作成するデータフローモデルのシステムであって、
前記少なくとも１つの外部データファイルの各々に対し、前記外部データファイルからの少なくとも１つまたは複数のカラムの使用を記述する使用データを含むデータフローモデルを記憶するデータフローモデルの記憶機能と、
前記少なくとも１つの外部データファイルの各々の少なくとも１つのカラムを記述するデータを含むメタデータを記憶するメタデータの記憶機能と、
前記記憶されたメタデータを使用して、前記データフローモデルと前記外部データファイルとの整合性があるかどうかを決定する整合性の検査機能と
を備えたことを特徴とするシステム。
【請求項２８】
前記少なくとも１つのカラムについて記述するデータは、前記少なくとも１つのカラムに関連する型のデータを備えたことを特徴とする請求項２７に記載のデータフローモデルのシステム。
【請求項２９】
前記整合性の検査機能は、各外部データファイルに対し、前記記憶されたメタデータが前記外部データファイルの現在の状態と整合性があることを確認することを特徴とする請求項２７に記載のデータフローモデルのシステム。
【請求項３０】
前記整合性の検査機能は、
前記記憶されたメタデータが前記外部データファイルの前記現在の状態と整合性があるかどうかを示す妥当性検査状態を提供する妥当性検査状態の決定機能を備えたことを特徴とする請求項２９に記載のデータフローモデルのシステム。
【請求項３１】
各前記外部データファイルの各々に記憶された前記現在のデータを反映するデータを含むよう前記記憶されたメタデータを変更するメタデータの再同期機能をさらに備えたことを特徴とする請求項２７に記載のデータフローモデルのシステム。
【請求項３２】
前記整合性の検査機能は、
前記記憶されたメタデータが前記データフローと整合性があることを確認する整合性の確認機能を備えたことを特徴とする請求項２７に記載のデータフローモデルのシステム。
【請求項３３】
前記整合性の確認機能は、前記使用データに記述された前記外部データファイルからの少なくとも１つのカラムの前記各々の使用が、前記記憶されたメタデータと整合性があるかどうかを決定することを特徴とする請求項３２に記載のデータフローモデルのシステム。
【請求項３４】
前記使用データに記述された前記外部データファイルからの少なくとも１つのカラムの前記各々の使用が、前記記憶されたメタデータと整合性がない場合は、前記非整合性を解消する解消機能をさらに備えたことを特徴とする請求項３２に記載のデータフローモデルのシステム。
【請求項３５】
前記データフローモデルはがデータフローに関する情報を含み、前記情報が、少なくとも１つの外部データファイルの各々に対し、前記外部データファイルからの少なくとも１つのカラムの使用を記述する使用データを含み、データフローモデルを評価するデータフローモデルのシステムであって、
前記少なくとも１つの外部データファイルの各々の少なくとも１つのカラムを記述するデータを含むメタデータを記憶するメタデータの記憶機能と、
前記メタデータを使用して、前記データフローモデルと前記外部データファイルとの整合性があるかどうかを決定する整合性の検査機能と
を備えたことを特徴とするシステム。
【請求項３６】
前記整合性の検査機能は、前記記憶されたメタデータが前記メタデータと整合性があるかどうかを示す妥当性検査状態の指示機能を備えたことを特徴とする請求項３５に記載のデータフローモデルのシステム。
【請求項３７】
前記記憶されたメタデータが前記外部データファイルの前記現在の状態と整合性がない場合は、前記非整合性を解消する非整合性の解消機能をさらに備えたことを特徴とする請求項３４に記載のデータフローモデルのシステム。
【請求項３８】
各前記外部データファイルの各々に記憶された前記現在のデータを反映するデータを含むように、前記記憶されたメタデータを再同期する再同期機能をさらに備えたことを特徴とする請求項３５に記載のデータフローモデルのシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般には、情報技術の分野に関し、より詳細には、データフローに関するメタデータの作成および更新ならびにデータフローの妥当性を検査することを可能にするメタデータの使用に関する。
【背景技術】
【０００２】
大きなデータの集まりを、複雑な方法で使用することができる。例えば、ファイル、データベース、および他のデータ記憶手段の中などのデータの集まりを、一連の長い動作の一部として開く、問合せる、または使用することができ、異なる変換の動作をデータに行い、結果のデータを記憶することを伴う。
【０００３】
例えば、図１は、２つのデータ入力と２つのデータ出力を有するデータフローのブロック図である。図１に示すように、ファイルＡとデータベーステーブルＡの両方が開かれる。図１に示すように、ファイルＡ１０００からデータが読み出され、データベーステーブルＡ１０１０からデータが読み出される。それら２つのデータセットに結合１０２０が行われる。結合の結果を調べて、結合されたデータの各レコードについて、関連付けられた年齢ファイルに記憶された値が５０未満であるかどうかを決定する（ボックス１０３０）。関連付けられた年齢フィールドが５０未満のレコードは、性別１０４０で集約され、データベーステーブルＢ１０５０に格納される。関連付けられた年齢フィールドが５０未満でないレコードは、ファイルＢ１０６０に格納される。
【０００４】
大きく複雑なデータの集まりの使用を可能にするために、ＥＴＬ（Ｅｘｔｒａｃｔ  Ｔｒａｎｓｆｏｒｍ  Ｌｏａｄ）ツールが開発されている。そうしたツールは、データの集まりを使用する操作を行うための自動化された方法を提供する。ＥＴＬツールは、データの抽出すなわちデータソースからのデータの取り出し、データの変換すなわち抽出されたデータの利用、そしてデータのロード、すなわち変換の結果を後の使用のための格納というタスクを自動化する。例えば、図１に示された動作がＥＴＬツールによって行われる。
【０００５】
そのようなＥＴＬ機能を容易に使用できるようにし、利用できる機能を拡大するために、ファイルまたは他のデータの集まりを使用するプロセスの視覚的な設計を可能にする設計ツールが開発されている。そのような設計ツールの１つが、マイクロソフト社から入手することができるＤａｔａ  Ｔｒａｎｓｆｏｒｍａｔｉｏｎ  Ｓｅｒｖｉｃｅｓ（ＤＴＳ）として知られる。ＤＴＳでは、ユーザは、ファイル、データベース、または他のデータの集まりのデータを使用することができるプロセスを視覚的に設計することができる。ＤＴＳにより設計されるプロセス中の操作には、限定はしないが、標準的なＥＴＬツールを通じて利用できる動作を含めることができる。例えば、ＤＴＳで設計されたデータフローでは、ユーザは、所定のファイルを削除し、他のファイルを取得し（例えば指定されたソースからファイル転送プロトコル（ＦＴＰ）により）、こうして取得された各ファイルに特定のＥＴＬプロセスを行うことを指定することができる。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
ＥＴＬツールまたはＤＴＳなどの設計ツールにより設計されるデータフローは、その使用に先立って設計される。これは、データフローの使用時にあいまい性につながる可能性がある。例えば、データソースを開き、データソースの各レコードについて、特定のカラム（ｃｏｌｕｍｎ）ＡとカラムＣにある情報を読み出すデータフローが設計される。しかし、実行時にデータソースを開くと、データソースは、各レコードにつき、カラムＡ、カラムＢ、カラムＣ、およびカラムＤに情報を含んでいるとする。
【０００７】
データフローの設計者は、データソースにカラムＢが含まれていることを知っていた可能性がある。その場合、カラムＢから読み出すための時間と他の計算上のコストを最小限にするために、カラムＢから情報を読み出さないようにする設計上の選択が行われている場合がある。したがって、カラムＢを含めるべきかどうかを実行時にユーザに尋ねると、不必要な混乱と遅れを生じさせる可能性がある。
【０００８】
一方、データフローの設計者は、カラムＤがデータソースに含まれることになることを知らず、データフローのユーザは、カラムＤをデータフローに含めると有用であることを発見する可能性がある。したがって、カラムＤを含めるべきかどうかを実行時にユーザに尋ねることは有用であることになる。
【０００９】
しかし、データが意図的にデータソースから含められなかった状況と、データソースが変更された状況とを見分ける方法はない。したがって、実行時にユーザに不必要な質問がなされるか、または、有用なデータが失われてしまう可能性がある。
【００１０】
さらに加えて、データの集まりには他の変更が加えられる可能性もある。例えば、カラムＡの型が、予想される型から変更されている可能性がある。これは、データフローでカラムＡに設計された操作と両立する場合も、しない場合もある。データの型が多少変更されていると、操作は正常に進行する可能性があるが、予期せぬ結果が生じる可能性がある。しかし、その変更が予期されたものか、そうでなかったかを区別する方法はない。上と同じように、変更が予期されたものであった場合でもデータの型の非互換性についてユーザに意見が求められるか、またはユーザに意見が求められず、その場合は問題に発展する可能性がある。
【００１１】
したがって、従来技術のこうした不利点を克服するシステムおよび方法が必要とされる。本発明は、上述の必要性に対処し、本明細書に明らかにされる追加的な利点でそれらの必要性を解決する。
【課題を解決するための手段】
【００１２】
本発明は、データフローに使用される外部のデータファイル（あるいはデータの集まり）の内容に関する外部のメタデータを記憶することを可能にする。そのような情報を記憶することにより、後に、データの集まりに変更が生じているかどうか、生じている場合はどのような動作をとることが可能であるかを判断するために、データの集まりの内容を調べ、外部メタデータを使用することができる。データフローについて記述するデータフロー情報と、データフローで使用されるデータの集まりに関する記憶された外部メタデータとを調べて、その情報に整合性がある（ｃｏｎｓｉｓｔｅｎｔ）かどうかを決定する。整合性がない場合は、ユーザに意見を求めるか、または自動的な手段（型の変換など）を行わせることができる。
【００１３】
データの集まりを利用することができない時でも、データフローが、外部メタデータに反映されたデータの集まりとの整合性があるかどうかを決定するために、外部のメタデータを使用することができる。整合性を保証するようにデータフローを変更することができる。
【００１４】
外部メタデータの再同期により、外部のメタデータを更新して、外部メタデータの記憶から引き続き利益が得られるようにすることができる。
【００１５】
本発明の他の特徴は、下記で述べる。
【００１６】
前述の課題を解決するための手段と以下の好ましい実施形態の詳細な説明は、添付図面と併せて読むと、より理解される。本発明を例示する目的ために、図面には本発明の典型的な構成を示すが、本発明は、ここに開示される特定の方法および手段に限定されない。
【発明を実施するための最良の形態】
【００１７】
（例示的コンピューティング環境）
図２に、本発明のいくつかの態様を実装することが可能な例示的コンピューティング環境を示す。コンピューティングシステム環境１００は、適切なコンピューティング環境の一例に過ぎず、本発明の使用または機能の範囲について何らの限定を示唆するものではない。また、コンピューティング環境１００は、例示的動作環境１００に示す構成要素の１つまたは組み合わせに関連する依存性または必要性を有するものとも解釈すべきでない。
【００１８】
本発明は、多数の他の汎用または専用のコンピューティングシステム環境または構成で機能する。本発明に使用するのに適する可能性のあるよく知られるコンピューティングシステム、環境、および／または構成の例には、限定はしないが、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルドあるいはラップトップデバイス、マルチプロセッサシステム、マイクロプロセッサを利用したシステム、セットトップボックス、プログラム可能な家庭電化製品、ネットワークＰＣ、ミニコンピュータ、メインフレームコンピュータ、組み込みシステム、あらゆる上記のシステムまたはデバイスを含む分散コンピューティング環境などがある。
【００１９】
本発明は、コンピュータによって実行されるプログラムモジュールなどのコンピュータ実行可能命令との一般的関連で説明することができる。一般に、プログラムモジュールには、特定のタスクを行うか、特定の抽象データ型を実装するルーチン、プログラム、オブジェクト、コンポーネント、データ構造などが含まれる。本発明は、通信ネットワークあるいは他のデータ通信媒体を通じてつながれた遠隔の処理デバイスによってタスクを実行する分散コンピューティング環境で実施することもできる。分散コンピューティング環境では、プログラムモジュールおよび他のデータは、メモリ記憶装置を含むローカルおよびリモート両方のコンピュータ記憶媒体に置くことができる。
【００２０】
図２を参照すると、本発明を実装する例示的システムは、コンピュータ１１０の形態の汎用コンピューティングデバイスを含む。コンピュータ１１０の構成要素には、限定はしないが、処理装置１２０、システムメモリ１３０、およびシステムメモリを含む様々なシステム構成要素を処理装置１２０に結合するシステムバス１２１を含むことが可能である。処理装置１２０は、マルチスレッドプロセッサで支援されるような複数の論理処理装置を表すことができる。システムバス１２１は、あらゆる様々なバスアーキテクチャを使用した、メモリバスあるいはメモリコントローラ、周辺バス、およびローカルバスを含む数種のバス構造のいずれでもよい。限定ではなく例として、そのようなアーキテクチャには、ＩＳＡ（Ｉｎｄｕｓｔｒｙ  Ｓｔａｎｄａｒｄ  Ａｒｃｈｉｔｅｃｔｕｒｅ）バス、ＭＣＡ（Ｍｉｃｒｏ  Ｃｈａｎｎｅｌ  Ａｒｃｈｉｔｅｃｔｕｒｅ）バス、ＥＩＳＡ（Ｅｎｈａｎｃｅｄ  ＩＳＡ）バス、ＶＥＳＡ（Ｖｉｄｅｏ  Ｅｌｅｃｔｒｏｎｉｃｓ  Ｓｔａｎｄａｒｄｓ  Ａｓｓｏｃｉａｔｉｏｎ）ローカルバス、およびＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ）バス（メザニンバスとも知られる）がある。システムバス１２１は、通信デバイス間の２地点間接続、スイッチングファブリックなどとして実装することもできる。
【００２１】
コンピュータ１１０は、通例、いろいろなコンピュータ可読媒体を含む。コンピュータ可読媒体は、コンピュータ１１０によるアクセスが可能な利用可能媒体でよく、揮発性および不揮発性の媒体、取り外し可能および固定の媒体を含む。限定ではなく例として、コンピュータ可読媒体は、コンピュータ記憶媒体と通信媒体を含むことができる。コンピュータ記憶媒体には、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータなどの情報を記憶するあらゆる方法または技術として実装された、揮発性および不揮発性、取り外し可能および固定の媒体が含まれる。コンピュータ記憶媒体には、限定はしないが、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリまたは他のメモリ技術、ＣＤ−ＲＯＭ、デジタル多用途ディスク（ＤＶＤ）または他の光ディスク記憶、磁気カセット、磁気テープ、磁気ディスク記憶または他の磁気記憶装置、もしくは所望の情報を記憶するために使用することができ、コンピュータ１１０によるアクセスが可能なあらゆる他の媒体が含まれる。通信媒体は、通例、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータを、搬送波や他の転送機構などの変調データ信号として組み立て、およびあらゆる情報伝達媒体を含む。用語の「変調データ信号」とは、信号に情報を符号化するような方法で、情報の特性の１つまたは複数を設定または変化させた信号を意味する。限定ではなく例として、通信媒体には、有線ネットワークまたは直接配線接続などの有線媒体、ならびに、音波、ＲＦ、赤外線および他の無線媒体などの無線媒体が含まれる。あらゆる上記の媒体の組み合わせもコンピュータ可読媒体の範囲内に含まれるであろう。
【００２２】
システムメモリ１３０は、読み取り専用メモリ（ＲＯＭ）１３１やランダムアクセスメモリ（ＲＡＭ）１３２などの揮発性および／または不揮発性メモリの形態のコンピュータ記憶媒体を含む。起動時などにコンピュータ１１０内の要素間の情報転送を助ける基本ルーチンを含んだ基本入出力システム１３３（ＢＩＯＳ）は、通例、ＲＯＭ１３１に記憶される。ＲＡＭ１３２は、通例、処理装置１２０により即時アクセスできるおよび／または現在操作されているデータおよび／またはプログラムモジュールを保持する。限定ではなく例として、図２には、オペレーティングシステム１３４、アプリケーションプログラム１３５、他のプログラムモジュール１３６、およびプログラムデータ１３７を例示する。
【００２３】
コンピュータ１１０は、他の取り外し可能／固定、揮発性／不揮発性のコンピュータ記憶媒体も含むことができる。単なる例として、図２には、固定、不揮発性の磁気媒体に対する読み取りまたは書き込みを行うハードディスクドライブ１４０、取り外し可能、不揮発性の磁気ディスク１５２に対する読み取りまたは書き込みを行う磁気ディスクドライブ１５１、ＣＤ−ＲＯＭや他の光学媒体などの取り外し可能、不揮発性の光ディスク１５６に対する読み取りまたは書き込みを行う光ディスクドライブ１５５を示す。例示的動作環境で使用することができる他の取り外し可能／固定、揮発性／不揮発性のコンピュータ記憶媒体には、限定はしないが、磁気テープカセット、フラッシュメモリカード、デジタル多用途ディスク、デジタルビデオテープ、固体素子ＲＡＭ、固体素子ＲＯＭなどを含む。ハードディスクドライブ１４１は、通例、インタフェース１４０などの固定メモリインタフェースを通じてシステムバス１２１に接続され、磁気ディスクドライブ１５１および光ディスクドライブ１５５は、通例、インタフェース１５０などの取り外し可能メモリインタフェースによりシステムバス１２１に接続される。
【００２４】
上述し、図２に例示するドライブおよびドライブに関連付けられたコンピュータ記憶媒体は、コンピュータ可読命令、データ構造、プログラムモジュール、および他のデータの記憶をコンピュータ１１０に提供する。図２では、例えば、ハードディスクドライブ１４１によって、オペレーティングシステム１４４、アプリケーションプログラム１４５、他のプログラムモジュール１４６、およびプログラムデータ１４７を記憶するとして例示する。これらの構成要素は、オペレーティングシステム１３４、アプリケーションプログラム１３５、他のプログラムモジュール１３６、およびプログラムデータ１３７と同じでも異なってもよいことに留意されたい。オペレーティングシステム１４４、アプリケーションプログラム１４５、他のプログラムモジュール１４６、およびプログラムデータ１４７には、それらが少なくとも異なるコピーであることを例示するために、本明細書では異なる参照符号を付与している。ユーザは、キーボード１６２および、一般にはマウス、トラックボールまたはタッチパッドと称されるポインティングデバイス１６１などの入力装置を通じてコンピュータ２０にコマンドおよび情報を入力することができる。他の入力装置（図示せず）には、マイクロフォン、ジョイスティック、ゲームパッド、衛星受信アンテナ、スキャナなどがを含むことができる。上記および他の入力装置は、多くの場合、システムバスに結合されたユーザ入力インタフェース１６０を通じて処理装置１２０に接続されるが、パラレルポート、ゲームポートまたはユニバーサルシリアルバス（ＵＳＢ）などの他のインタフェースおよびバス構造により接続してもよい。モニタ１９１または他の型の表示装置も、ビデオインタフェース１９０などのインタフェースを介してシステムバス１２１に接続される。モニタに加えて、コンピュータは、スピーカ１９７やプリンタ１９６などの他の周辺出力装置も含むことができ、それらは、出力周辺インタフェース１９５を通じて接続することができる。
【００２５】
コンピュータ１１０は、リモートコンピュータ１８０などの１つまたは複数のリモートコンピュータとの論理接続を使用するネットワーク環境で動作することができる。リモートコンピュータ１８０は、パーソナルコンピュータ、サーバ、ルータ、ネットワークＰＣ、ピアデバイスまたは他の一般的なネットワークノードであり、図２にはメモリ記憶装置１８１のみを例示するが、通例、コンピュータ１１０との関連で上述した要素の多くまたはすべてを含む。図２に示す論理接続は、ローカルエリアネットワーク（ＬＡＮ）１７１およびワイドエリアネットワーク（ＷＡＮ）１７３を含むが、他のネットワークを含むこともできる。このようなネットワーキング環境は、オフィス、企業内のコンピュータネットワーク、イントラネット、およびインターネットに一般的に見られる。
【００２６】
ＬＡＮネットワーキング環境で使用される場合、コンピュータ１１０は、ネットワークインタフェースまたはアダプタ１７０を通じてＬＡＮ１７１に接続される。ＷＡＮネットワーキング環境で使用される場合、コンピュータ１１０は通例、モデム１７２またはインターネットなどのＷＡＮ１７３の上で通信を確立するための他の手段を含む。モデム１７２は、内蔵型でも外付け型でもよく、ユーザ入力インタフェース１６０、または他の適切な機構を介してシステムバス１２１に接続することができる。ネットワーク環境では、コンピュータ１１０との関連で図示するプログラムモジュールあるいはその一部は、遠隔のメモリ記憶装置に記憶することができる。限定ではなく例として、図２では、リモートアプリケーションプログラム１８５がメモリデバイス１８１に存在するとして例示する。示されたネットワーク接続は典型的なものであり、コンピュータ間に通信リンクを確立する他の手段を使用してよいことは理解されよう。
【００２７】
（外部メタデータ処理システム）
データフローが作成される場合、データフローの結果として入力および出力データの集まりを識別する。データフロー用の入力および出力データの集まりが問合わされ、データの集まりごとに、外部のメタデータ（データフローのために使用される外部のデータソースについてのメタデータ）が取り出され、格納される。データの集まりとしてのメタデータは、データの集まりの中の使用可能な情報について記述する。
【００２８】
一実施形態では、各入力または出力データの集まりは、レコード（ｒｅｃｏｒｄ）情報を含む。各レコードにつき、いくつかのカラムが格納される。データの集まりのために取り出される外部のメタデータは、データの集まりの中の使用可能な各カラムについて、いろいろのメタデータの記述するカラムを格納する。  
データ型：カラムに格納されたデータの型
長さ：カラムに格納されたデータの長さ
精度：カラムに格納されたデータの精度
コードページ：カラムのデータ型が文字に基づく場合、カラムに格納されたデータのコードページ。コードページは、コードページ中の各文字に数値が割り当てられ、順序付けられた文字のセットである。
スケール：データがまったく数字だけ（ｎｕｍｅｒｉｃ  ｉｎ  ｎａｔｕｒｅ）である場合、カラムに格納されたデータのスケール。スケールは、データ中の小数点の右にある桁数である。
【００２９】
他の実施形態では、他のいろいろのメタデータの記述する利用可能なカラムを格納することもできる。
【００３０】
外部メタデータは、初めに、データフローが設定または構成される場合に格納される。最初のバージョンの外部メタデータは、データフローが設計された場合に存在したとおりのデータの集まりを記述する。そして、データフローに変更が生じたかどうかを決定するために、実行時にデータフローのために外部のメタデータを使用することができる。以下で説明するように、外部メタデータを、再同期を通じて更新することができる。
【００３１】
（妥当性検査と再同期）
データフローを使用しようとする場合、外部メタデータを使用して、現時点で存在するとおりのデータの集まりでデータフローの使用の妥当性を検査することができる。こうして、データの集まりに対する関連する変更を検出することができる。さらに加えて、検出された変更をどのように解決できるかを決定するために、妥当性検査情報を使用することができる。
【００３２】
図３は、本発明の一実施形態による、少なくとも１つの外部データファイルを使用するデータフローに関するデータフロー情報を作成する方法のフロー図である。図３に示すように、ステップ３００では、データフローモデルを格納する。データフローモデルは、データフローを記述し、データフローにおける、いくつかの外部データファイル（データの集まり）の各々から少なくとも１つのカラムの使用を記述する情報を含む。ステップ３１０では、メタデータを格納する。格納された外部メタデータは、外部のデータファイル／データの集まりに存在するカラムについて記述する。次いでステップ３２０では、格納されたメタデータを使用して、データフローモデルと外部のデータファイルに整合性があるかどうかを決定する。これを妥当性検査と称する。
【００３３】
妥当性検査は、接続状態であっても切断状態であってもよい。接続状態の妥当性検査では、データの集まりを（接続状態で）利用することができ、集まりを問合せして、データの集まりの内容に関する情報を決定し、その情報を、格納された外部メタデータと比較することができる場合に行われる。接続状態の妥当性検査では、現在のデータの集まりの各々の関連する状態が外部のメタデータに十分に表されているかどうか、または、データの集まりの何らかの変更または破損が原因で問題が存在するかどうかを決定する。一実施形態では、各々のデータの集まりに対する妥当性状態が決定される。問題が存在することを示す妥当性状態がデータの集まりに割り当てられる場合は、ユーザに問い合わせてどのような動作をとるべきかを決定する。さらに加えて、接続状態の妥当性検査では、各々のデータの集まりの関連する状態と、データフローによって必要とされる情報とを比較する。この場合も、そのような状態情報を使用して、データフローの実行時に問題を発生させる可能性のある、データの集まりの変更を検出する。
【００３４】
切断状態の妥当性検査では、外部のメタデータと、データフローによって必要とされる情報とを比較し、データの集まりのあらゆる変更を参照しない。ユーザは、例えばデータの集まりを利用できない時に、切断状態の妥当性検査を行うことを選択することができる。したがって、例えば、データの集まりへのユーザアクセスを提供するネットワークから切断されている間、データの集まりに現在での接続を持たないユーザでも切断状態の妥当性検査を行うことができる。このような妥当性検査により、ユーザは、データの集まりへの接続を必要とせずに、問題につながる可能性のあるデータフローへの変更を識別することができる。
【００３５】
再同期は、データフローと現在のデータの集まりとの互換性（接続状態の再同期の場合）または現在格納されている外部メタデータとの互換性（切断状態の再同期の場合）を維持するために、データフローを変更する。データフロー中の残りのオブジェクトへの変更を最小に抑え、必要とされるユーザ対話をできるだけ少なくする修正が行われる。
【００３６】
（接続状態の妥当性検査および再同期）
上述のように、接続状態での妥当性検査が行われる場合、データの集まりを再度問合わせて、データの集まりに対する外部メタデータを決定する。データの集まりに対する格納された外部メタデータとの比較が行われる。相違が存在する場合は、そのように検出される。
【００３７】
表１に示すように、妥当性検査時に発生する可能性のあるシナリオがいくつかある。
【００３８】
【表１】
2006031687.tif 000003
【００３９】
１番目のシナリオでは、データの集まりにカラムが存在するが、格納された外部メタデータには存在しない。したがって、外部メタデータの作成時に存在したそのカラムが、それ以後データの集まりから削除されたと推測される。２番目のシナリオでは、格納された外部メタデータの収集時に存在しなかったカラムが、現在、データの集まりに存在し、したがって、データの集まりにカラムが追加されたと推測される。３番目および４番目のシナリオでは、過去にデータの集まりにカラムが存在し、現在、格納された外部メタデータにも存在する。３番目のシナリオでは、格納された外部メタデータに収集された型の情報は、データの集まりの中の型の情報と整合性がある。したがって、カラムに対する外部メタデータの変更は検出されない。しかし、４番目のシナリオでは、カラムが、データの集まり中でデータ型を変更している。このようなシナリオでは、一実施形態において、ユーザに不一致を通知する。一実施形態では、ユーザに、格納された外部メタデータ中のデータ型を修正する機会を与えることができる。
【００４０】
加えて、一実施形態では、データの集まりに対するデータフローによって実際に使用されるカラムを参照した妥当性検査も行われる。発生する可能性のあるシナリオを表２に示す。
【００４１】
【表２】
2006031687.tif 000004
【００４２】
したがって、表２の１番目のシナリオから分かるように、データフローにカラムが存在するが、データの集まりには存在しない場合は、妥当性検査の問題が発生する。データフローで使用されているカラムが、データの集まりに存在しない。このようなシナリオでは、一実施形態において、妥当性検査の問題を解決するためにユーザ入力を要求する。
【００４３】
２番目および３番目のシナリオでは、妥当性検査の問題が発生しない。データの集まり中のカラムはデータフローで参照されないか、または、データの集まりの中のカラムがデータフローの中で参照され、かつすべての型情報が一致する。これらのシナリオでは、妥当性検査の問題が発生しない。カラムがデータフローで使用されないか、または、カラムが使用され、型情報が予想される通りであるかのいずれかである。
【００４４】
４番目のシナリオでは、カラムがデータの集まりに存在し、データフローで参照されるが、型の情報が変更されている。そのような場合、一実施形態では、この不整合を解決する試みが行われる。型に互換性があり、あらゆる型の不整合を解決できる変換が存在する場合は、変換を使用することができ、不整合が解消される。型に互換性があるが、何らかの他の方法（例えばデータフロー中で実装されるメソッドを介するなど）でデータフローによって状態を修正することができる場合も、不整合を解消することができる。しかし、型に互換性がなく、状態を別の方法で修正することができない場合は、非互換性のために妥当性検査を完了することができない。一実施形態では、非互換性を解決するようにユーザを促す。
【００４５】
妥当性検査の結果、妥当性検査の状態を返すことができる。例えば、一実施形態では、妥当性検査の状態ＩＳＶＡＬＩＤは、妥当性検査に何の問題もないことを表す。妥当性検査の状態ＩＳＢＲＯＫＥＮは、問題が存在するが、問題が、ユーザにより、またはデータフロー中のメソッドを通じて解決可能であることを意味する。例えば、上述のように、型の不整合を解決することができる型の不整合の変換を利用できる可能性がある。妥当性検査の状態ＮＥＥＤＳＮＥＷＭＥＴＡＤＡＴＡは、再同期（以下で説明する）を実行すべきことを意味する。妥当性検査の状態ＩＳＣＯＲＲＵＰＴは、容易には解決することができない問題を意味する。
【００４６】
データの集まりが変更された場合、格納されたメタデータは、以前の時点におけるデータの集まりの状態を反映している。再同期は、格納された外部メタデータを、データの集まりの情報（接続状態の再同期）またはデータフローの情報（切断状態での再同期）と再同期する。
【００４７】
接続状態の再同期の場合は、見つかるデータの集まり情報と一致するように、格納された外部メタデータが変更される。一実施形態では、格納された外部メタデータに見つからないカラムがデータの集まりに存在することが判明した場合、そのカラムに関する情報が、格納された外部メタデータに追加される。格納された外部メタデータとデータの集まりとの両方にカラムが存在するが、型の情報が変更されている場合は、データの集まりからの新しい型の情報で、格納された外部メタデータを更新する。
【００４８】
同様に、接続状態での再同期では、データフローを更新することにより、データの集まりの情報の変更を反映する。データフローで参照されるカラムがもはやデータの集まりで利用することができなくなると、カラムはデータフローから削除される。さらに加えて、妥当性検査を参照して上述したように、格納された外部メタデータおよびデータフローに情報が見つかるカラムの型が変更された場合は、相違を解消する方法があり、可能な場合は再同期で相違が解消される。一実施形態では、データフローの公開されたメソッドを呼び出して、不整合を解消することができ、データフローが変更される。別の実施形態では、ユーザに要求を行うことにより不整合を解消する。
【００４９】
（切断状態での妥当性検査および再同期）
上述のように、切断状態の妥当性検査が行われる際には、データの集まりに問合わせが行われない。格納された外部メタデータをデータフローと比較して、それらに整合性があることを確実にする。可能性のあるシナリオを表３に示す。
【００５０】
【表３】
2006031687.tif 000005
【００５１】
したがって、表３の１番目のシナリオから分かるように、データフローにカラムが存在するが、格納された外部メタデータに存在しない場合は、妥当性検査の問題が発生する。データフローで使用されているカラムが、格納された外部メタデータにより、データの集まりに存在すると示されない。そのようなシナリオでは、一実施形態では、妥当性検査の問題を解決するためにユーザ入力が要求される。
【００５２】
２番目および３番目のシナリオでは、妥当性検査の問題は発生しない。格納された外部メタデータに存在すると示されるカラムは、データフローで参照されないか、または、格納された外部メタデータに存在すると示されるカラムが、データフローで参照され、かつすべての型の情報が一致する。これらのシナリオでは、妥当性検査の問題が発生しない。カラムがデータフローで使用されないか、または、カラムが使用され、型の情報が予想通りであるかのいずれかである。
【００５３】
４番目のシナリオでは、格納された外部メタデータにカラムが存在し、データフローで参照されるが、型の情報が変更されている。そのような場合、一実施形態では、不整合を解消する試みがなされる。型に互換性があり、あらゆる型の不整合を解消することができる変換が存在する場合は、変換を使用することができ、したがって不整合が解消される。型に互換性があるが、何らかの他の方法（例えばデータフローコンポーネントのインタフェースを介するなど）でデータフローにより状態を修正することができる場合も、不整合を解消することができる。しかし、型に互換性がなく、別の方法で状態を修正することができない場合は、非互換性のために妥当性検査を完了することができない。一実施形態では、非互換性を解決するようにユーザが促される。
【００５４】
図４は、本発明の一実施形態によるデータフローモデルを評価する方法のフロー図である。ステップ４００では、外部データファイルについて記述するメタデータが取り出される。ステップ４１０で、取り出したメタデータを使用して、データフローモデルとメタデータが整合するかどうかを決定する。
【００５５】
切断状態の妥当性検査ではなく切断状態の再同期が実行される場合は、格納された外部メタデータに反映されたデータの集まりの解釈と一致するようにデータフローが変更される。したがって、一実施形態では、データフローにカラムが存在するが、格納された外部メタデータには存在しない場合は、格納された外部メタデータにカラムがないことにより示されるように、データの集まりでカラムを利用できないという解釈を反映するようにデータフローのカラムが削除される。さらに加えて、データフローおよび格納された外部メタデータが１つのカラムについて異なる型の情報を含む場合は、可能である場合にはその相違が解消される。一実施形態では、データフローの公開されたメソッドを呼び出して不整合を解消することができ、データフローが変更される。別の実施形態では、ユーザに要求を行うことにより不整合を解消する。
【００５６】
（結論）
上述の例は、単に説明の目的ために提供されたものであり、本発明を限定するものとは解釈すべきでないことに留意されたい。本発明について様々な実施形態を参照して説明したが、本明細書で使用された語は、限定の語ではなく、説明と例示の語であることは理解されよう。さらに、本発明について特定の手段、材料、および実施形態を参照して説明したが、本発明は、本明細書に開示される特定の詳細に限定されず、本発明は、頭記の特許請求の範囲に述べられるような、機能的に均等なすべての構造、方法、および使用法に及ぶ。当業者は、本明細書の利益と教示を得て、多数の改変を本発明に加えることができ、その態様における本発明の範囲と主旨から逸脱することなく変更を加えることができる。
【図面の簡単な説明】
【００５７】
【図１】データフローの図である。
【図２】本発明の態様を実装することが可能な例示的コンピューティング環境のブロック図である。
【図３】本発明の一実施形態による、少なくとも１つの外部データファイルを使用してデータフローに関するデータフロー情報を作成する方法のフロー図である。
【図４】本発明の一実施形態による、データフローモデルを評価する方法のフロー図である。
【図１】
2006031687.tif 000006
【図２】
2006031687.tif 000007
【図３】
2006031687.tif 000008
【図４】
2006031687.tif 000009