(57)【特許請求の範囲】
【請求項１】
グラフに基づくデータ処理のためにデータセットオブジェクトを管理する方法であって、
１つ又は複数のデータセットオブジェクトのグループをデータ記憶システムに記憶することであって、前記データセットオブジェクトのそれぞれは各データセットを表し、前記グループは第１のデータセットオブジェクトを含み、前記第１のデータセットオブジェクトは、データセットからデータレコードを読み取るように前記第１のデータセットオブジェクトを構成するデータソースモードと、前記データセットにデータレコードを書き込むように前記第１のデータセットオブジェクトを構成するデータシンクモードとを少なくとも含む複数のモードを含むこと、
前記第１のデータセットオブジェクトと、データ処理システムでデータを処理するデータフローグラフの少なくとも第１のノードとの間の関連付けを生成することであって、前記第１のノードは、前記データフローグラフ内のリンクにより表されるデータフロー内のデータのソース又はシンクを表し、前記第１のデータセットオブジェクトは、異なる変換ロジックが前記第１のノードで処理されるデータに適用される複数のモードを含み、前記第１のデータセットオブジェクトは、前記複数のモードのうちのあるモードにしたがって前記データフローグラフの前記第１のノードと対話すること
を含む方法。
【請求項２】
前記関連付けられたデータセットオブジェクトと前記関連付けられたノードとの間の関連付けを生成することは、
前記データフローグラフに対応するデータ構造にアクセスすることであって、前記データフローグラフは、前記第１のノードを含む複数のノード及び前記ノードを接続するリンクを含み、前記リンクは、前記ノード間のデータフローを表すこと、
ユーザ入力に基づいて前記グループから選択された前記第１のデータセットオブジェクトを受信することであって、前記第１のデータセットオブジェクトは前記複数のモードを含み、各モードは、変換ロジック及び入力ポート又は出力ポートのうちの少なくとも１つを含む、受信すること、
ユーザ入力に基づいて前記第１のデータセットオブジェクトに対して選択されたモードを受信すること、
前記選択されたモードを受信した後、前記データフローグラフに前記第１のノードを生成することであって、前記第１のノードは、前記選択されたモードの変換ロジック、任意の入力ポート、及び任意の出力ポートを含むこと、
リンクを使用して、前記第１のノードを前記データフローグラフ内の少なくとも１つのノードに接続すること、
を含む、請求項１に記載の方法。
【請求項３】
前記第１のデータセットオブジェクトは少なくとも１つのパラメータをさらに含み、前記第１のノードは前記パラメータの値をさらに含む、請求項２に記載の方法。
【請求項４】
前記複数のモードのうちの第１のモードの前記変換ロジックは、データストアからデータレコードを読み取る変換ロジックを含む、請求項２に記載の方法。
【請求項５】
前記複数のモードのうちの第２のモードの前記変換ロジックは、データレコードを前記データストアに書き込む変換ロジックを含む、請求項４に記載の方法。
【請求項６】
前記第１のノードは、前記第１のデータセットオブジェクトを識別する情報を含む、請求項２に記載の方法。
【請求項７】
ユーザ入力に基づいて前記グループから選択された前記第１のデータセットオブジェクトを受信すること、
複数のデータフローグラフを識別することであって、前記データフローグラフのそれぞれは、前記第１のデータセットオブジェクトを識別するノードを含むこと、
をさらに含む、請求項１に記載の方法。
【請求項８】
前記データセットオブジェクトの各モードは、ノード及び前記ノードを接続するリンクを含む別個のデータフローグラフで表され、前記リンクは前記ノード間のデータフローを表す、請求項１に記載の方法。
【請求項９】
前記関連付けられたデータセットオブジェクトと前記関連付けられたノードとの間の関連付けを生成することは、
前記第１のノードを含む前記データフローグラフを含む複数のデータフローグラフに対応するデータ構造にアクセスすることであって、各データフローグラフは、複数のノード及び前記ノードを接続するリンクを含み、前記ノードは変換ロジックを含み、前記リンクは前記ノード間のデータフローを表すこと、
同じデータストアにアクセスする前記複数のデータフローグラフの複数のノードを識別することであって、少なくとも１つの識別されたノードは１つ又は複数のパラメータを含むこと、
データセットオブジェクトを生成することであって、
前記識別されたノードの前記変換ロジックに基づいて、前記生成されたデータセットオブジェクトの複数のモードを識別すること、
前記識別されたノードに関連付けられたパラメータに基づいて、前記生成されたデータオブジェクトのパラメータを識別すること
を含むこと、
前記生成されたデータセットオブジェクトを前記グループに記憶すること、
を含む、請求項１に記載の方法。
【請求項１０】
前記生成されたデータセットオブジェクトを識別する情報に基づいて、前記複数のノードのそれぞれを更新して、前記データストアにアクセスすることをさらに含む、請求項９に記載の方法。
【請求項１１】
同じデータストアにアクセスする前記複数のデータフローグラフの複数のノードを識別することは、
前記複数のデータフローグラフのそれぞれを実行すること、
前記データフローグラフの実行中、前記複数のデータフローグラフの前記ノードのパラメータに割り当てられたパラメータ値を記録すること、
前記記録されたパラメータ値に基づいて前記複数のノードを識別すること、
を含む、請求項９に記載の方法。
【請求項１２】
グラフに基づくデータ処理のためにデータセットオブジェクトを管理するコンピュータプログラムを記憶するコンピュータ可読記憶媒体であって、前記コンピュータプログラムは、計算システムに、
１つ又は複数のデータセットオブジェクトのグループをデータ記憶システムに記憶することであって、前記データセットオブジェクトのそれぞれは各データセットを表し、前記グループは第１のデータセットオブジェクトを含み、前記第１のデータセットオブジェクトは、データセットからデータレコードを読み取るように前記第１のデータセットオブジェクトを構成するデータソースモードと、前記データセットにデータレコードを書き込むように前記第１のデータセットオブジェクトを構成するデータシンクモードとを少なくとも含む複数のモードを含むこと、
前記グループ内の前記第１のデータセットオブジェクトと、データ処理システムでデータを処理するデータフローグラフの少なくとも第１のノードとの間の関連付けを生成することであって、前記第１のノードは、前記データフローグラフ内のリンクにより表されるデータフロー内のデータのソース又はシンクを表し、前記第１のデータセットオブジェクトは、異なる変換ロジックが前記第１のノードで処理されるデータに適用される複数のモードを含み、前記第１のデータセットオブジェクトは、前記複数のモードのうちのあるモードにしたがって前記データフローグラフの前記第１のノードと対話すること
を行わせる命令を含む、コンピュータ可読記憶媒体。
【請求項１３】
グラフに基づくデータ処理のためにデータセットオブジェクトを管理する計算システムであって、
１つ又は複数のデータセットオブジェクトのグループを記憶するデータ記憶システムであって、前記データセットオブジェクトのそれぞれは各データセットを表し、前記グループは第１のデータセットオブジェクトを含み、前記第１のデータセットオブジェクトは、データセットからデータレコードを読み取るように前記第１のデータセットオブジェクトを構成するデータソースモードと、前記データセットにデータレコードを書き込むように前記第１のデータセットオブジェクトを構成するデータシンクモードとを少なくとも含む複数のモードを含む、データ記憶システムと、
前記データ記憶システムに結合され、前記グループ内の前記第１のデータセットオブジェクトと、データ処理システムでデータを処理するデータフローグラフの少なくとも第１のノードとの間の関連付けを生成するように構成される少なくとも１つのプロセッサであって、前記第１のノードは、前記データフローグラフ内のリンクにより表されるデータフロー内のデータのソース又はシンクを表し、前記第１のデータセットオブジェクトは、異なる変換ロジックが前記第１のノードで処理されるデータに適用される複数のモードを含み、前記第１のデータセットオブジェクトは、前記複数のモードのうちのあるモードにしたがって前記データフローグラフの前記第１のノードと対話する、少なくとも１つのプロセッサと、
を含む、計算システム。
【請求項１４】
グラフに基づくデータ処理のためにデータセットオブジェクトを管理する計算システムであって、
１つ又は複数のデータセットオブジェクトのグループを記憶する手段であって、前記データセットオブジェクトのそれぞれは各データセットを表し、前記グループは第１のデータセットオブジェクトを含み、前記第１のデータセットオブジェクトは、データセットからデータレコードを読み取るように前記第１のデータセットオブジェクトを構成するデータソースモードと、前記データセットにデータレコードを書き込むように前記第１のデータセットオブジェクトを構成するデータシンクモードとを少なくとも含む複数のモードを含む、手段と、
前記グループ内の前記第１のデータセットオブジェクトと、データ処理システムでデータを処理するデータフローグラフの少なくとも第１のノードとの間の関連付けを生成する手段であって、前記第１のノードは、前記データフローグラフ内のリンクにより表されるデータフロー内のデータのソース又はシンクを表し、前記第１のデータセットオブジェクトは、異なる変換ロジックが前記第１のノードで処理されるデータに適用される複数のモードを含み、前記第１のデータセットオブジェクトは、前記複数のモードのうちのあるモードにしたがって前記データフローグラフの前記第１のノードと対話する、手段と、
を含む、計算システム。
【請求項１５】
前記関連付けられたデータセットオブジェクトと前記関連付けられたノードとの間の関連付けを生成することは、
前記データフローグラフに対応するデータ構造にアクセスすることであって、前記データフローグラフは、前記第１のノードを含む複数のノード及び前記ノードを接続するリンクを含み、前記リンクは、前記ノード間のデータフローを表すこと、
ユーザ入力に基づいて前記グループから選択された前記第１のデータセットオブジェクトを受信することであって、前記第１のデータセットオブジェクトは前記複数のモードを含み、各モードは、変換ロジック及び入力ポート又は出力ポートのうちの少なくとも１つを含む、受信すること、
ユーザ入力に基づいて前記第１のデータセットオブジェクトに対して選択されたモードを受信すること、
前記選択されたモードを受信した後、前記データフローグラフに前記第１のノードを生成することであって、前記第１のノードは、前記選択されたモードの変換ロジック、任意の入力ポート、及び任意の出力ポートを含むこと、
リンクを使用して、前記第１のノードを前記データフローグラフ内の少なくとも１つのノードに接続すること、
を含む、請求項１２に記載のコンピュータ可読記憶媒体。
【請求項１６】
前記第１のデータセットオブジェクトは少なくとも１つのパラメータをさらに含み、前記第１のノードは前記パラメータの値をさらに含む、請求項１５に記載のコンピュータ可読記憶媒体。
【請求項１７】
前記複数のモードのうちの第１のモードの前記変換ロジックは、データストアからデータレコードを読み取る変換ロジックを含む、請求項１５に記載のコンピュータ可読記憶媒体。
【請求項１８】
前記複数のモードのうちの第２のモードの前記変換ロジックは、データレコードを前記データストアに書き込む変換ロジックを含む、請求項１７に記載のコンピュータ可読記憶媒体。
【請求項１９】
前記第１のノードは、前記第１のデータセットオブジェクトを識別する情報を含む、請求項１５に記載のコンピュータ可読記憶媒体。
【請求項２０】
前記コンピュータプログラムは、前記計算システムに、
ユーザ入力に基づいて前記グループから選択された前記第１のデータセットオブジェクトを受信すること、
複数のデータフローグラフを識別することであって、前記データフローグラフのそれぞれは、前記第１のデータセットオブジェクトを識別するノードを含むこと、
を行わせる命令をさらに含む、請求項１２に記載のコンピュータ可読記憶媒体。
【請求項２１】
前記データセットオブジェクトの各モードは、ノード及び前記ノードを接続するリンクを含む別個のデータフローグラフで表され、前記リンクは前記ノード間のデータフローを表す、請求項１２に記載のコンピュータ可読記憶媒体。
【請求項２２】
前記関連付けられたデータセットオブジェクトと前記関連付けられたノードとの間の関連付けを生成することは、
前記第１のノードを含む前記データフローグラフを含む複数のデータフローグラフに対応するデータ構造にアクセスすることであって、各データフローグラフは、複数のノード及び前記ノードを接続するリンクを含み、前記ノードは変換ロジックを含み、前記リンクは前記ノード間のデータフローを表すこと、
同じデータストアにアクセスする前記複数のデータフローグラフの複数のノードを識別することであって、少なくとも１つの識別されたノードは１つ又は複数のパラメータを含むこと、
データセットオブジェクトを生成することであって、
前記識別されたノードの前記変換ロジックに基づいて、前記生成されたデータセットオブジェクトの複数のモードを識別すること、
前記識別されたノードに関連付けられたパラメータに基づいて、前記生成されたデータオブジェクトのパラメータを識別すること
を含むこと、
前記生成されたデータセットオブジェクトを前記グループに記憶すること、
を含む、請求項１２に記載のコンピュータ可読記憶媒体。
【請求項２３】
前記コンピュータプログラムは、前記計算システムに、
前記生成されたデータセットオブジェクトを識別する情報に基づいて、前記複数のノードのそれぞれを更新して、前記データストアにアクセスすること
を行わせる命令をさらに含む、請求項２２に記載のコンピュータ可読記憶媒体。
【請求項２４】
同じデータストアにアクセスする前記複数のデータフローグラフの複数のノードを識別することは、
前記複数のデータフローグラフのそれぞれを実行すること、
前記データフローグラフの実行中、前記複数のデータフローグラフの前記ノードのパラメータに割り当てられたパラメータ値を記録すること、
前記記録されたパラメータ値に基づいて前記複数のノードを識別すること、
を含む、請求項２２に記載のコンピュータ可読記憶媒体。
【請求項２５】
前記関連付けられたデータセットオブジェクトと前記関連付けられたノードとの間の関連付けを生成することは、
前記データフローグラフに対応するデータ構造にアクセスすることであって、前記データフローグラフは、前記第１のノードを含む複数のノード及び前記ノードを接続するリンクを含み、前記リンクは、前記ノード間のデータフローを表すこと、
ユーザ入力に基づいて前記グループから選択された前記第１のデータセットオブジェクトを受信することであって、前記第１のデータセットオブジェクトは前記複数のモードを含み、各モードは、変換ロジック及び入力ポート又は出力ポートのうちの少なくとも１つを含む、受信すること、
ユーザ入力に基づいて前記第１のデータセットオブジェクトに対して選択されたモードを受信すること、
前記選択されたモードを受信した後、前記データフローグラフに前記第１のノードを生成することであって、前記第１のノードは、前記選択されたモードの変換ロジック、任意の入力ポート、及び任意の出力ポートを含むこと、
リンクを使用して、前記第１のノードを前記データフローグラフ内の少なくとも１つのノードに接続すること、
を含む、請求項１３に記載の計算システム。
【請求項２６】
前記第１のデータセットオブジェクトは少なくとも１つのパラメータをさらに含み、前記第１のノードは前記パラメータの値をさらに含む、請求項２５に記載の計算システム。
【請求項２７】
前記複数のモードのうちの第１のモードの前記変換ロジックは、データストアからデータレコードを読み取る変換ロジックを含む、請求項２５に記載の計算システム。
【請求項２８】
前記複数のモードのうちの第２のモードの前記変換ロジックは、データレコードを前記データストアに書き込む変換ロジックを含む、請求項２７に記載の計算システム。
【請求項２９】
前記第１のノードは、前記第１のデータセットオブジェクトを識別する情報を含む、請求項２５に記載の計算システム。
【請求項３０】
前記少なくとも１つのプロセッサは、
ユーザ入力に基づいて前記グループから選択された前記第１のデータセットオブジェクトを受信すること、
複数のデータフローグラフを識別することであって、前記データフローグラフのそれぞれは、前記第１のデータセットオブジェクトを識別するノードを含むこと、
を行うようにさらに構成される、請求項１３に記載の計算システム。
【請求項３１】
前記データセットオブジェクトの各モードは、ノード及び前記ノードを接続するリンクを含む別個のデータフローグラフで表され、前記リンクは前記ノード間のデータフローを表す、請求項１３に記載の計算システム。
【請求項３２】
前記関連付けられたデータセットオブジェクトと前記関連付けられたノードとの間の関連付けを生成することは、
前記第１のノードを含む前記データフローグラフを含む複数のデータフローグラフに対応するデータ構造にアクセスすることであって、各データフローグラフは、複数のノード及び前記ノードを接続するリンクを含み、前記ノードは変換ロジックを含み、前記リンクは前記ノード間のデータフローを表すこと、
同じデータストアにアクセスする前記複数のデータフローグラフの複数のノードを識別することであって、少なくとも１つの識別されたノードは１つ又は複数のパラメータを含むこと、
データセットオブジェクトを生成することであって、
前記識別されたノードの前記変換ロジックに基づいて、前記生成されたデータセットオブジェクトの複数のモードを識別すること、
前記識別されたノードに関連付けられたパラメータに基づいて、前記生成されたデータオブジェクトのパラメータを識別すること
を含むこと、
前記生成されたデータセットオブジェクトを前記グループに記憶すること、
を含む、請求項１３に記載の計算システム。
【請求項３３】
前記少なくとも１つのプロセッサは、
前記生成されたデータセットオブジェクトを識別する情報に基づいて、前記複数のノードのそれぞれを更新して、前記データストアにアクセスすること
を行うようにさらに構成される、請求項３２に記載の計算システム。
【請求項３４】
同じデータストアにアクセスする前記複数のデータフローグラフの複数のノードを識別することは、
前記複数のデータフローグラフのそれぞれを実行すること、
前記データフローグラフの実行中、前記複数のデータフローグラフの前記ノードのパラメータに割り当てられたパラメータ値を記録すること、
前記記録されたパラメータ値に基づいて前記複数のノードを識別すること、
を含む、請求項３２に記載の計算システム。
【請求項３５】
前記関連付けられたデータセットオブジェクトと前記関連付けられたノードとの間の関連付けを生成することは、
前記データフローグラフに対応するデータ構造にアクセスすることであって、前記データフローグラフは、前記第１のノードを含む複数のノード及び前記ノードを接続するリンクを含み、前記リンクは、前記ノード間のデータフローを表すこと、
ユーザ入力に基づいて前記グループから選択された前記第１のデータセットオブジェクトを受信することであって、前記第１のデータセットオブジェクトは前記複数のモードを含み、各モードは、変換ロジック及び入力ポート又は出力ポートのうちの少なくとも１つを含む、受信すること、
ユーザ入力に基づいて前記第１のデータセットオブジェクトに対して選択されたモードを受信すること、
前記選択されたモードを受信した後、前記データフローグラフに前記第１のノードを生成することであって、前記第１のノードは、前記選択されたモードの変換ロジック、任意の入力ポート、及び任意の出力ポートを含むこと、
リンクを使用して、前記第１のノードを前記データフローグラフ内の少なくとも１つのノードに接続すること、
を含む、請求項１４に記載の計算システム。
【請求項３６】
前記第１のデータセットオブジェクトは少なくとも１つのパラメータをさらに含み、前記第１のノードは前記パラメータの値をさらに含む、請求項３５に記載の計算システム。
【請求項３７】
前記複数のモードのうちの第１のモードの前記変換ロジックは、データストアからデータレコードを読み取る変換ロジックを含む、請求項３５に記載の計算システム。
【請求項３８】
前記複数のモードのうちの第２のモードの前記変換ロジックは、データレコードを前記データストアに書き込む変換ロジックを含む、請求項３７に記載の計算システム。
【請求項３９】
前記第１のノードは、前記第１のデータセットオブジェクトを識別する情報を含む、請求項３５に記載の計算システム。
【請求項４０】
ユーザ入力に基づいて前記グループから選択された前記第１のデータセットオブジェクトを受信する手段と、
複数のデータフローグラフを識別する手段であって、前記データフローグラフのそれぞれは、前記第１のデータセットオブジェクトを識別するノードを含む、手段と、
をさらに含む、請求項１４に記載の計算システム。
【請求項４１】
前記データセットオブジェクトの各モードは、ノード及び前記ノードを接続するリンクを含む別個のデータフローグラフで表され、前記リンクは前記ノード間のデータフローを表す、請求項１４に記載の計算システム。
【請求項４２】
前記関連付けられたデータセットオブジェクトと前記関連付けられたノードとの間の関連付けを生成することは、
前記第１のノードを含む前記データフローグラフを含む複数のデータフローグラフに対応するデータ構造にアクセスすることであって、各データフローグラフは、複数のノード及び前記ノードを接続するリンクを含み、前記ノードは変換ロジックを含み、前記リンクは前記ノード間のデータフローを表すこと、
同じデータストアにアクセスする前記複数のデータフローグラフの複数のノードを識別することであって、少なくとも１つの識別されたノードは１つ又は複数のパラメータを含むこと、
データセットオブジェクトを生成することであって、
前記識別されたノードの前記変換ロジックに基づいて、前記生成されたデータセットオブジェクトの複数のモードを識別すること、
前記識別されたノードに関連付けられたパラメータに基づいて、前記生成されたデータオブジェクトのパラメータを識別すること
を含むこと、
前記生成されたデータセットオブジェクトを前記グループに記憶すること、
を含む、請求項１４に記載の計算システム。
【請求項４３】
前記生成されたデータセットオブジェクトを識別する情報に基づいて、前記複数のノードのそれぞれを更新して、前記データストアにアクセスする手段をさらに含む、請求項４２に記載の計算システム。
【請求項４４】
同じデータストアにアクセスする前記複数のデータフローグラフの複数のノードを識別することは、
前記複数のデータフローグラフのそれぞれを実行すること、
前記データフローグラフの実行中、前記複数のデータフローグラフの前記ノードのパラメータに割り当てられたパラメータ値を記録すること、
前記記録されたパラメータ値に基づいて前記複数のノードを識別すること、
を含む、請求項４２に記載の計算システム。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本願は、２０１０年１０月２５日に出願された米国仮特許出願第６１／４０６，４３８号の優先権を主張するものであり、この特許出願を参照により本明細書に援用する。
【０００２】
背景
本記載はデータセットオブジェクトの管理に関する。
【背景技術】
【０００３】
データフローグラフはデータを処理する。データフローグラフは、データソース、データシンク、及びコンポーネントを含む。データソース、データシンク、及びコンポーネントは、データをあるコンポーネントから別のコンポーネントに、又はデータソースからコンポーネントに、又はコンポーネントからデータシンクに流れるようにする接続により接続される。データフローグラフは、接続を表すリンク（弧とも呼ばれる）により接続されるデータソース、データシンク、及びコンポーネントを表すノード（頂点とも呼ばれる）を有する有向グラフで視覚的に表すことができる。
【発明の概要】
【課題を解決するための手段】
【０００４】
概要
一態様では、一般には、グラフに基づくデータ処理のためにデータセットオブジェクトを管理する方法は、１つ又は複数のデータセットオブジェクトのグループをデータ記憶システムに記憶することであって、データセットオブジェクトのそれぞれは各データセットを表す、記憶すること、及びグループ内の少なくとも第１のデータセットオブジェクトと、データ処理システムでデータを処理するデータフローグラフの少なくとも第１のノードとの間の関連付けを生成することを含み、第１のノードは、データフローグラフ内のリンクにより表されるデータフロー内のデータのソース又はシンクを表し、第１のデータセットオブジェクトは、異なる変換ロジックが第１のノードで処理されるデータに適用される複数のモードを含む。
【０００５】
態様は以下の特徴のうちの１つ又は複数を含み得る。
【０００６】
関連付けられたデータセットオブジェクトと関連付けられたノードとの関連付けを生成することは、データフローグラフに対応するデータ構造にアクセスすることであって、データフローグラフは、第１のノードを含む複数のノード及びノードを接続するリンクを含み、リンクは、ノード間のデータフローを表す、アクセスすること、ユーザ入力に基づいてグループから選択された第１のデータセットオブジェクトを受信することであって、第１のデータセットオブジェクトは複数のモードを含み、各モードは、変換ロジック及び入力ポート又は出力ポートのうちの少なくとも１つを含む、受信すること、ユーザ入力に基づいて第１のデータセットオブジェクトに選択されたモードを受信すること、選択されたモードを受信した後、データフローグラフに第１のノードを生成することであって、第１のノードは、選択されたモードの変換ロジック、任意の入力ポート、及び任意の出力ポートを含む、生成すること、並びにリンクを使用して、第１のノードをデータフローグラフ内の少なくとも１つのノードに接続すること、を含む。
【０００７】
第１のデータセットオブジェクトは少なくとも１つのパラメータをさらに含み、第１のノードはパラメータの値をさらに含む。
【０００８】
複数のモードのうちの第１のモードの変換ロジックは、データストアからデータレコードを読み取る変換ロジックを含む。
【０００９】
複数のモードのうちの第２のモードの変換ロジックは、データレコードをデータストアに書き込む変換ロジックを含む。
【００１０】
第１のノードは、第１のデータセットオブジェクトを識別する情報を含む。
【００１１】
この方法は、ユーザ入力に基づいてグループから選択された第１のデータセットオブジェクトを受信すること、及び複数のデータフローグラフを識別することであって、データフローグラフのそれぞれは、第１のデータセットオブジェクトを識別するノードを含む、識別することをさらに含み得る。
【００１２】
データセットオブジェクトの各モードは、ノード及びノードを接続するリンクを含む別個のデータフローグラフで表され、リンクはノード間のデータフローを表す。
【００１３】
関連付けられたデータセットオブジェクトと関連付けられたノードとの関連付けを生成することは、第１のノードを含むデータフローグラフを含む複数のデータフローグラフに対応するデータ構造にアクセスすることであって、各データフローグラフは、複数のノード及びノードを接続するリンクを含み、ノードは変換ロジックを含み、リンクはノード間のデータフローを表す、アクセスすること、同じデータストアにアクセスする複数のデータフローグラフの複数のノードを識別することであって、少なくとも１つの識別されたノードは１つ又は複数のパラメータを含む、識別すること、データセットオブジェクトを生成することであって、識別されたノードの変換ロジックに基づいて、生成されたデータセットオブジェクトの複数のモードを識別すること、及び識別されたノードに関連付けられたパラメータに基づいて、生成されたデータオブジェクトのパラメータを識別することを含む、生成すること、生成されたデータセットオブジェクトをグループに記憶することを含む。
【００１４】
この方法は、生成されたデータセットオブジェクトを識別する情報に基づいて、複数のノードのそれぞれを更新して、データストアにアクセスすることをさらに含み得る。
【００１５】
同じデータストアにアクセスする複数のデータフローグラフの複数のノードを識別することは、複数のデータフローグラフのそれぞれを実行すること、データフローグラフの実行中、複数のデータフローグラフのノードのパラメータに割り当てられたパラメータ値を記録すること、及び記録されたパラメータ値に基づいて複数のノードを識別することを含む。
【００１６】
別の態様では、一般に、コンピュータ可読記憶媒体は、グラフに基づくデータ処理のためにデータセットオブジェクトを管理するコンピュータプログラムを記憶する。コンピュータプログラムは、計算装置に、１つ又は複数のデータセットオブジェクトのグループをデータ記憶システムに記憶することであって、データセットオブジェクトのそれぞれは各データセットを表す、記憶すること、及びグループ内の少なくとも第１のデータセットオブジェクトと、データ処理システムでデータを処理するデータフローグラフの少なくとも第１のノードとの関連付けを生成することであって、第１のノードは、データフローグラフ内のリンクにより表されるデータフロー内のデータのソース又はシンクを表し、第１のデータセットオブジェクトは、異なる変換ロジックが第１のノードで処理されるデータに適用される複数のモードを含む、生成することを行わせる命令を含む。
【００１７】
別の態様では、一般に、グラフに基づくデータ処理のためにデータセットオブジェクトを管理する計算システム。計算システムは、１つ又は複数のデータセットオブジェクトのグループを記憶するデータ記憶システムであって、データセットオブジェクトのそれぞれは各データセットを表す、データ記憶システムと、データ記憶システムに結合され、グループ内の少なくとも第１のデータセットオブジェクトと、データ処理システムでデータを処理するデータフローグラフの少なくとも第１のノードとの関連付けを生成するように構成される少なくとも１つのプロセッサであって、第１のノードは、データフローグラフ内のリンクにより表されるデータフロー内のデータのソース又はシンクを表し、第１のデータセットオブジェクトは、異なる変換ロジックが第１のノードで処理されるデータに適用される複数のモードを含む、少なくとも１つのプロセッサとを含む
【００１８】
別の態様では、一般に、グラフに基づくデータ処理のためにデータセットオブジェクトを管理する計算システム。計算システムは、１つ又は複数のデータセットオブジェクトのグループを記憶する手段であって、データセットオブジェクトのそれぞれは各データセットを表す、手段と、グループ内の少なくとも第１のデータセットオブジェクトと、データ処理システムでデータを処理するデータフローグラフの少なくとも第１のノードとの関連付けを生成する手段であって、第１のノードは、データフローグラフ内のリンクにより表されるデータフロー内のデータのソース又はシンクを表し、第１のデータセットオブジェクトは、異なる変換ロジックが第１のノードで処理されるデータに適用される複数のモードを含む、手段とを含む。
【００１９】
態様は、以下の利点のうちの１つ又は複数を含むことができる。データセットオブジェクトを、複数のデータフローグラフで再使用し得る。データレコードの更新を簡易化し得る。データの従属性を特定し得る。アプリケーション開発を簡易化し得る。
【００２０】
本発明の他の特徴及び利点が以下の説明及び特許請求の範囲から明らかになろう。
【図面の簡単な説明】
【００２１】
【図１】データセットオブジェクト技法を使用することができる例示的なデータ処理システム１００を示す。
【図２Ａ】データセットオブジェクトの管理に使用することができる例示的な手順２００のフローチャートを示す。
【図２Ｂ】データセットオブジェクトの管理に使用することができる例示的な手順２００のフローチャートを示す。
【図３】開発環境のユーザインタフェース例を示す。
【図４】データセットオブジェクトに関連付けられた例示的なパーソナリティを示す。
【図５】カタログ内のデータフローグラフとデータセットオブジェクトとの関係を示す。
【図６】カタログ内のデータセットオブジェクへの既存のノードの関連付けを示す。
【図７】パラメータ値に基づいてデータセットオブジェクトへのノードの関連付けを示す。
【発明を実施するための形態】
【００２２】
説明
図１は、データセットオブジェクト技法を使用することができる例示的なデータ処理システム１００を示す。システム１００はデータソース１０２を含み、データソース１０２は、記憶装置又はオンラインデータストリームへの接続等の１つ又は複数のデータソースを含み得、各データソースは、任意の様々な記憶フォーマット（例えば、データベーステーブル、スプレッドシートファイル、平文ファイル、又はメインフレームで使用されるネイティブフォーマット）でデータを記憶し得る。実行環境１０４は、事前実行モジュール１０６及び実行モジュール１１２を含む。実行環境１０４は、ＵＮＩＸ（登録商標）オペレーティングシステム等の適したオペレーティングシステムの制御下で１つ又は複数の汎用コンピュータでホストし得る。例えば、実行環境１０４は、ローカルである（例えば、ＳＭＰコンピュータ等のマルチプロセッサシステム）か、又はローカルに分散する（例えば、クラスタとして結合された複数のプロセッサ又はＭＰＰ）か、又はリモートであるか、又はリモートに分散する（例えば、ローカルエリアネットワーク（ＬＡＮ）及び／又は広域ネットワーク（ＷＡＮ）を介して結合された複数のプロセッサ）か、又はこれらの任意の組み合わせである複数の中央演算処理装置（ＣＰＵ）を使用するコンピュータシステムの構成を含む複数ノード並列計算環境を含むことができる。
【００２３】
事前実行モジュール１０６は、データフローグラフ及びデータフローグラフのコンパイル、実行環境１０４がアクセス可能なデータ記憶システム１１６への／からのコンパイルされたデータフローグラフの記憶／ロード等の他の実行可能プログラム、又はデータフローグラフの管理に関連付けられた他のタスクを実行する準備として、様々なタスクを実行するように構成される。実行モジュール１１２は、データをデータソース１０２から読み取り、データフローグラフの形態で表現されるプログラムを含む実行可能プログラムを使用してデータを処理する。
【００２４】
データソース１０２を提供する記憶装置は、実行環境１０４にローカルであってもよく、例えば、実行環境１０４を実行するコンピュータに接続された記憶媒体（例えば、ハードドライブ１０８）に記憶されてもよく、又は実行環境１０４からリモートであってもよく、例えば、リモート接続を介して実行環境１０４を実行するコンピュータと通信するリモートシステム（例えば、メインフレーム１１０）でホストしてもよい。
【００２５】
実行モジュール１１２は、実行環境１０４がアクセス可能なデータ記憶システム１１６に記憶されたデータセットオブジェクトのカタログ１１４を使用して、データフローグラフを実行する。カタログ１１４は、事前処理モジュール１０６により管理されて、より詳細に後述するように、異なるモードに構成することができるデータセットオブジェクトを提供する。カタログは、データセットオブジェクトのグループをデータ構造又は特定のロケーション（例えば、ファイルシステムディレクトリ）に記憶し得、又は様々なロケーションに記憶されたデータオブジェクトのグループを識別する情報を含み得る。いくつかの実施態様では、カタログは、検索又は他の動作を可能にするインデックス又はメタデータ等の情報を含む。開発者１２０がデータフローグラフを開発し、カタログ１１４と対話することが可能な開発環境１１８も、データ記憶システム１１６にアクセス可能である。
【００２６】
開発環境１１８は、いくつかの実施態様では、有向リンク（作業要素の流れを表す）で接続される頂点（コンポーネント又はデータセットを表す）を含むデータフローグラフとしてアプリケーションを開発するシステムである。例えば、そのような環境については、「Managing Parameters for Graph-Based Applications」という名称の米国特許出願公開第２００７／００１１６６８号により詳細に説明されており、この公開出願を参照により本明細書に援用する。そのようなグラフに基づく計算を実行するシステムは、米国特許第５，５６６，０７２号、EXECUTING COMPUTATIONS EXPRESSED AS GRAPHSに記載されており、この特許を参照により本明細書に援用する。このシステムに従って作成されたデータフローグラフは、グラフコンポーネントにより表される個々のプロセス内外への情報を取得する方法、例えば、プロセス間で情報を移動させ、プロセスの実行順序を定義する方法を提供する。このシステムは、プロセス間通信方法を選ぶアルゴリズムを含む（例えば、グラフのリンクに従う通信路は、ＴＣＰ／ＩＰ又はＵＮＩＸ（登録商標）ドメインソケットを使用することができ、又は共有メモリを使用して、プロセス間でデータを渡すことができる）。
【００２７】
実行モジュール１１２は、異なる形態のデータベースシステムを含む様々なタイプのシステムからデータを受信することができる。データは、ヌル値を含むことが可能な、各フィールド（「属性」又は「列」とも呼ばれる）に値を有するレコードとして編成し得る。データソースから最初にデータを読み取る際、実行モジュール１１２は通常、そのデータソース内のレコードについてのいくらかの初期フォーマット情報で開始する。いくつかの状況では、データソースのレコード構造は、最初に分からず、代わりに、データソースの分析後に特定し得る。レコードについての初期情報は、別個の値を表すビット数、レコード内のフィールドの順序、及びビットで表される値のタイプ（例えば、文字列、署名付き／署名なし整数）を含むことができる。
【００２８】
開発環境１１８は、実行環境１０４で実行すべきデータフローグラフの構築及び／又は編集を行うために開発者１２０が使用するインタフェースを提供する。データフローグラフには、データ記憶システム１１６に記憶される実行可能データ構造が関連付けられ、データフローグラフは、開発環境１１８において、ノード及びノードを接続するリンクを含む有向グラフとして表現される。開発環境は、開発中のデータフローグラフに対応するデータ構造にアクセスすることが可能である。データフローグラフのノードは、データソース、データシンク、及びデータ処理コンポーネントを表す。リンクは、ノード間のデータフローを表す。開発環境１１８は、データセットオブジェクトのカタログ１１４へのアクセスを提供することも可能である。カタログ１１４は、データ記憶システム１１６内のデータストア又は別のデータストア内に配置し得る。
【００２９】
カタログ１１４は、ユーザ入力に基づいて選択することができる１つ又は複数のデータセットオブジェクトを含む。データセットオブジェクトは、データセットオブジェクトが提供する機能を決める複数のモード（「パーソナリティ」と呼ばれる）を含むデータフローグラフノードである。例えば、データセットオブジェクトは、データソースパーソナリティ及びデータシンクパーソナリティを含み得る。データセットオブジェクトが、データフローグラフ内のノードとして使用されるように選択される場合、データセットオブジェクトは、例えば、ユーザ入力に基づいてパーソナリティの１つを採用する。例えば、開発環境１１８は、データフローグラフ（例えば、リンクで接続されたノード）の表現を含むカタログ及びカンバスの表現を含むグラフィカルユーザインタフェース（ＧＵＩ）を含み得る。ユーザ（例えば、開発者１２０）は、データセットオブジェクトをカタログからカンバスにドラッグアンドドロップすることができる。データセットオブジェクトの表現がカンバスに配置されると、ユーザはデータセットオブジェクトのパーソナリティを選択することができる。
【００３０】
選択されたパーソナリティを使用して、データフローグラフに新しいノードを生成する。選択されたパーソナリティには、何らかの方法でデータを変更する変換ロジックが関連付けられる。例えば、データソースパーソナリティは、データレコードをデータストア（例えば、データベーステーブル、ファイル、又は他のデータストア）から読み取り、何らかの変換を実行する変換ロジックを含むことができる。データシンクパーソナリティは、何らかの変換を実行した後、データレコードをデータストアに書き込む変換ロジックを含むことができる。いくつかの実施態様では、データセットオブジェクトのパーソナリティの変換ロジックは、データフローグラフを使用して実施することができる。いくつかの実施態様では、データセットオブジェクトの各パーソナリティには、ノード及びノードを接続するリンクを含む異なる各データフローグラフが関連付けられる。
【００３１】
各パーソナリティは、入力ポート（例えば、データシンクパーソナリティ）を有してもよく、出力ポート（例えば、データソースパーソナリティ）を有してもよく、入力ポート及び出力ポートの両方（例えば、データ変換パーソナリティ）を有してもよく、又はポートを全く有さなくてもよい（例えば、ルックアップテーブルパーソナリティ）。データセットオブジェクトに選択されたパーソナリティを受信することにより生成される新しいノードは、選択されたパーソナリティの変換ロジック及びポートを反映する。いくつかの実施態様では、データセットオブジェクトは、データソースのロケーションを識別する。データセットオブジェクトは、データソースのロケーションを識別するパラメータを含み得る。いくつかの実施態様では、パラメータは、データフローグラフの実行中に決定される値を含む動的パラメータを使用して、データソースのロケーションを識別する。データソースにアクセスするデータセットオブジェクトは、データのフォーマットを識別するとともに、データが圧縮又は暗号化されているか否かを識別することができる。
【００３２】
生成されたノードは、リンクを使用して、生成されたノードをデータフローグラフ内の少なくとも１つのノードに接続することにより、データフローグラフに組み込むことができる。いくつかの実施態様では、生成されたノードは、データソースからのデータをデータフローグラフに提供するか、又はデータフローグラフからのデータをデータストアに記憶する。
【００３３】
図２Ａは、データセットオブジェクトを管理するシステムにより実施することができる例示的なプロセス２００のフローチャートを示す。便宜上、プロセスについてプロセスを実行するシステムに関連して説明する。
【００３４】
プロセス２００は、データフローグラフに対応するデータ構造にアクセスする２０２。データ構造は、ノード及びノードを接続するリンクを含み、リンクはノード間のデータフローを表す。
【００３５】
プロセス２００は、データセットオブジェクトのカタログを提供する２０４。上述したように、カタログは１つ又は複数のデータセットオブジェクトを含むことができる。
【００３６】
プロセス２００は、カタログから選択されたデータセットオブジェクトを受信する２０６。例えば、ユーザは、データセットオブジェクトをカタログからカンバスにドラッグすることにより、データカタログからデータセットオブジェクトを選択することができる。上述したように、データセットオブジェクトは複数のパーソナリティを含み、各パーソナリティは、変換ロジックと、少なくとも１つの入力ポート及び／又は少なくとも１つの出力ポートとを含む。
【００３７】
プロセス２００は、データセットオブジェクトに選択されたパーソナリティを受信する２０８。上述したように、ユーザは、例えば、ラジオボタン又はドロップダウンメニュー上の値を選択することにより、選択されたデータセットオブジェクトのパーソナリティを選択することができる。
【００３８】
プロセス２００は、データフローグラフ内にノードを生成する２１０。生成されたノードは、選択されたパーソナリティの変換ロジック及び任意の入力及び出力ポートを含む。
【００３９】
プロセス２００は、生成されたノードをデータフロー内の少なくとも１つのノードに接続する２１２。
【００４０】
図２Ｂは、データセットオブジェクトを管理するシステムにより実施することができる例示的なプロセス２３０のフローチャートを示す。便宜上、プロセスについて、プロセスを実行するシステムに関連して説明する。
【００４１】
プロセス２３０は、複数のデータフローグラフにアクセスする（２３２）。上述したように、各データフローグラフは、ノード及びノードを接続するリンクを含む。ノードは変換ロジックを含み、リンクはノード間のデータフローを表す。
【００４２】
プロセス２３０は、同じデータストアにアクセスする複数のノードを識別する２３４。各ノードはパラメータ及び変換ロジックを含む。
【００４３】
プロセス２３０は、データセットオブジェクトを生成する２３６。データセットオブジェクトを生成するために、プロセスは、複数のノードの変換ロジックに基づいて複数のパーソナリティを識別する２３８。プロセス２３０は、ノードに関連付けられたパラメータに基づいてパラメータも識別する２４０。プロセス２３０は、生成されたデータセットオブジェクトをデータカタログに記憶する２４２。
【００４４】
図３は、開発環境、例えば、図１の開発環境１１８のユーザインタフェース例３００を示す。ユーザインタフェース３００は、複数のデータセットオブジェクト３０４ａ〜ｅを含むデータセットオブジェクトのカタログ３０２を含む。ユーザインタフェース３００はカンバス３０６も含み、カンバス３０６において、ユーザはデータフローを作成又は変更することができる。カンバスは、データフローグラフに含まれるノードの表現を表示する。この例では、データフローグラフは、第１のデータソース３１０、第２のデータソース３１２、第１のコンポーネントノード３１４、第２のコンポーネントノード３１６、データシンク３２０、及びルックアップテーブル３０８を含む。データフローグラフを通してのデータの流れは、リンクにより定義される。例えば、第１のデータソース３１０は出力ポート３２２を含み、出力ポート３２２は、リンク３２６によりコンポーネントノード３１４の入力ポート３２４に接続される。
【００４５】
ユーザ（図示せず）は、データセットオブジェクト（例えば、データセットオブジェクト３０４ｂ）をカタログ３０２からカンバス３０６にドラッグして、新しいノード３１８を生成する。ユーザは、例えば、属性インタフェース要素３３２上のラジオボタンを使用してパーソナリティを選択することにより、新しいノード３１８のパーソナリティを選択する。パーソナリティが選択されると、新しいノード３１８は、パーソナリティに関連付けられた入力ポート、出力ポート、及び／又は変換ロジックを提示する。後述するように、新しいオブジェクトは、ユーザが設定し得るパラメータを含むこともできる。
【００４６】
図４は、データセットオブジェクトに関連付けられた例示的なパーソナリティを示す。データセットオブジェクト４００には、１つ又は複数のパラメータ４１４を関連付けることができる。例えば、データセットオブジェクト４００には、ラベル、ファイル名、レコードフォーマット、データベーステーブル名、又は他の任意の情報を定義する値を有するパラメータを関連付けることができる。いくつかの実施態様では、パラメータ値を実行時に動的に決定することができる。
【００４７】
データセットオブジェクト４００は複数のパーソナリティを含むことができ、各自の特徴を有する各パーソナリティは、各自の入力ポート、出力ポート、及び／又は変換ロジックを含む。例えば、データセットオブジェクトはデータソースパーソナリティ４０４を含むことができ、データソースパーソナリティ４０４は、ファイル、データベーステーブル、又は他のデータ構造からデータを読み取り、データフローグラフに提供する。データセットオブジェクト４００はデータシンクパーソナリティ４１０を含むこともでき、データシンクパーソナリティ４１０は、入力ポートでデータレコードフローを受け入れ、データストア、例えば、データベーステーブル、ファイル、又は他の何らかのデータストアに記憶する。データセットオブジェクト４００はパラレルデータソースパーソナリティ４０２を含むことができ、パラレルデータソースパーソナリティ４０２は、データを複数のパラレルデータ構造から読み取り、データフローグラフに提供する。同様に、データセットオブジェクト４００は、データレコードストリームを複数のデータストアに提供するパラレルデータシンクパーソナリティ４１２を含むことができる。
【００４８】
データセットオブジェクト４００は、ルックアップテーブルパーソナリティ４１８を含むことができる。一般に、ルックアップテーブルは入力ポート又は出力ポートを含まない。ルックアップテーブルパーソナリティは、他のノードでの高速データ参照のためにデータソースをメモリに読み出す。
【００４９】
データセットオブジェクト４００は、１つ又は複数のコンポーネントパーソナリティ、例えば、パーソナリティ４０６を含むことができる。一般に、コンポーネントパーソナリティは、少なくとも１つの入力ポート及び少なくとも１つの出力ポートを含み得、データフローに対して演算を実行する。例えば、コンポーネントは、データフローをフィルタリングして、特定の値を有するデータレコードを識別し得る。
【００５０】
いくつかの実施態様では、パラメータにデータセットオブジェクトパーソナリティを関連付けることができる。例えば、パラレルデータシンクパーソナリティ４１２に、データフローを分割すべきファイルの名前を定義するパラメータ４１６が関連付けられる。
【００５１】
いくつかの状況では、データセットオブジェクトは複数のデータシンク及びデータソースを含むことができる。例えば、データセットオブジェクトは、データをデータベーステーブルに書き込む第１のデータシンクパーソナリティ、データをフラットファイルに書き込む第２のデータシンクパーソナリティ、及びファイル転送プロトコル（ＦＴＰ）を使用してデータをリモートサーバに書き込む第３のデータシンクパーソナリティを含むことができる。同様に、データセットオブジェクトは、データベーステーブルからデータを読み取る第１のデータソースパーソナリティ、データをフラットファイルから読み取る第２のデータソースパーソナリティ、及びＦＴＰを使用してリモートサーバ上のデータにアクセスする第３のデータソースパーソナリティを含むことができる。いくつかの実施態様では、他のプロトコル及びデータアクセス方法を使用することができる（例えば、ハイパーテキスト転送プロトコル（ＨＴＴＰ）及び拡張可能マークアップ言語（ＸＭＬ）ドキュメント）。いくつかの実施態様では、データセットオブジェクトのすべてのデータソースパーソナリティは、同一の出力を生成し、データセットオブジェクトのすべてのデータシンクパーソナリティは、同一の入力を受け入れる。したがって、どのデータソースパーソナリティ又はデータシンクパーソナリティがデータフローグラフに含まれるかは、データフローグラフ内のその他のノードにトランスペアレントであり得る。
【００５２】
上述したように、いくつかの実施態様では、データセットパーソナリティには、データに対して変換を実行するデータフローグラフとして実施される変換ロジックを関連付けることができる。例えば、データセットオブジェクトのデータソースパーソナリティは、ＸＭＬファイルを読み取り、処理のために、階層ＸＭＬデータを一連のシーケンシャルレコードに変換し得る。同様に、データセットオブジェクトのデータシンクパーソナリティは、一連のシーケンシャルレコードを受け入れ、レコードを階層ＸＭＬデータに変換して、ＸＭＬファイルに記憶し得る。
【００５３】
データセットオブジェクトに関連付け得る他のパーソナリティは、データソースからのデータをリフレッシュするパーソナリティ及びデータソースにおいてレコードを更新するパーソナリティを含む。
【００５４】
図５は、カタログ内のデータフローグラフ間及びデータセットオブジェクト間の関係を示す。カタログからのデータセットオブジェクトが、データフローグラフ内のノードの生成に使用される場合、コンポーネントとデータセットオブジェクトとの関係が維持される。この例では、データセットオブジェクト５０４を使用して、データフローグラフ５０６ａ内にノード５０８ａを生成した。同様に、同じデータセットオブジェクト５０４を使用して、データフローグラフ５０５ｂ〜ｅ内でノード５０８ｂ〜ｅを生成した。
【００５５】
線５１０ａで表されているように、カタログ５０２はデータセットオブジェクト５０４とノード５０８ａとの関係を維持する。線５１０ｂ〜ｅで表されるように、データセットオブジェクト５０４とノード５０８ｂ〜ｅとの関係も、線５１０ｂ〜ｅで表されるように、同様に維持される。いくつかの実施態様では、ノード５０８ａ〜ｅは、ノードの生成に使用されたデータセットオブジェクト５０４の識別情報を維持する。
【００５６】
いくつかの実施態様では、データフローグラフ５０６ａ〜ｅは、データセットオブジェクト５０４を参照することによりノード５０８ａ〜ｅを実施する。この実施態様では、データセットオブジェクト５０４のパーソナリティに行われた変更は、データフローグラフ５０６ａ〜ｅの実行に自動的に反映される。
【００５７】
開発環境、例えば、図１の開発環境１１８のユーザは、維持された関係を使用して、データフローグラフ間の従属性を分析することができる。例えば、ユーザは、データセットオブジェクト５０４及びデータセットオブジェクトにより識別されるデータソースへの変更により影響を受けるデータフローグラフ５０６ａ〜ｅのそれぞれを識別することができる。識別されたデータフローグラフは、変更を達成するために、必要に応じて変更することができる。
【００５８】
図６は、カタログ内のデータセットオブジェクトへの既存のノードの関連付けを示す。いくつかの状況では、ユーザは、カタログからのデータセットオブジェクトを使用せずにデータストアにアクセスする、生成されたノード（例えば、データソース、データシンク、又はルックアップテーブル）を有し得る。これは、データフローグラフの作成時に適切なデータセットオブジェクトが存在しなかったか、又は同様に、開発者が、提供されたデータフローグラフの使用を怠ったために発生し得る。図１を参照すると、データ記憶システム１１６及び潜在的に実行環境１０４と併せて開発環境１１８は、これらのノードを識別し、後述するように、適切なデータセットオブジェクトに関連付けることができる。
【００５９】
図６を再び参照すると、データシンク６１２は、データストア６１８のシンクであり、データストア６１８にアクセスする変換ロジックを含む。開発環境は、カタログ内のデータセットオブジェクト６２０が、データストア６１８のシンクでもあるデータシンクパーソナリティ（図示せず）を含むことを特定する。矢印６２４で表されるように、データシンク６１２にはデータセットオブジェクト６２０が関連付けられる。いくつかの実施態様では、データシンク６１２内の変換ロジックは、データセットオブジェクト６２０のデータシンクパーソナリティ内の変換ロジックで置換される。他の実施態様では、変換ロジックは置換されない。いくつかの状況では、データシンク６１２は、別個のパーソナリティとしてデータセットオブジェクト６２０に追加し得る（例えば、データセットオブジェクト６２０がデータシンクパーソナリティを含まない場合）。
【００６０】
別の状況では、データシンク６１４はデータストア６２６のシンクであり、データストア６２６にアクセスする変換ロジックを含む。開発環境は、データシンク６１４に対応するデータセットオブジェクトがカタログ６２２に存在しないと特定する。その結果、開発環境は、データシンク６１４に基づいてデータシンクパーソナリティ（図示せず）を有する新しいデータセットオブジェクト６３０を作成する。新しいデータセットオブジェクト６３０は、カタログ６２２に追加される。新しいデータセットオブジェクト６３０にはデータシンク６１４が関連付けられる。
【００６１】
いくつかの実施態様では、開発環境は、ノードのパラメータの値に基づいてノード（データソース、データシンク、ルックアップテーブル、又は他のコンポーネント）を関連付けることができる。例えば、データセットオブジェクトのパラメータ及びパラメータ値が、ノードのパラメータ及びパラメータ値に一致する場合、ノードにデータセットオブジェクトを関連付けることができる。いくつかの実施態様では、パラメータ及びパラメータ値が厳密に一致しない場合であっても、ノード及びデータセットオブジェクトを関連付け得る。例えば、いくつかのパラメータは、必要なパラメータとして見なされ得る（例えば、ノード及びデータセットオブジェクトを関連付けるには、パラメータ及びパラメータ値の両方が一致しなければならない）。他のパラメータは、存在する必要がないか、又はデータセットオブジェクトに関連付けるべきノードのデータセットオブジェクトのパラメータ値に一致する必要がない任意選択的なパラメータと見なされ得る。
【００６２】
上述したように、いくつかのパラメータは、グラフが実行されるまで決定されない値を有することができる。この状況では、システムは、実行中、データフローグラフのノードのパラメータの値を追跡することができる。実行中に決定されるパラメータ及びパラメータ値は、上述したように、データセットオブジェクトのパラメータ及びパラメータ値と比較することができる。
【００６３】
図７を参照すると、いくつかの実施態様では、実行中に決定されるパラメータ及びパラメータ値は、実行中、データセットオブジェクトに関連付けられた他のノードのパラメータ及びパラメータ値と比較される。例えば、データカタログ７０２は、値「$inputfile」を有するパラメータ７０６「FileName」を有するデータセットオブジェクト７０４を含み、「$inputfile」は、パラメータ７０６が、値が実行中に決定される動的パラメータであることを示す。接続線７０８により表されるように、データセットオブジェクト７０４には、データセットオブジェクト７０４のデータソースパーソナリティとして以前に生成されたデータソース７１０が関連付けられる。実行中、パラメータ７１２「FileName」の値は、「X:＼Input_20101001.dat」であると決定される。データセットオブジェクト７０４に関連付けられないデータシンク７１４は、値「X:＼Input_20101001.dat」を有するパラメータ７１６「FileName」を含む。一致するパラメータ７０６及び７１６並びにデータセットオブジェクト７０４にすでに関連付けられた別のパラメータ７１２の値に一致するパラメータ７１６の値に基づいて、データシンク７１４は、データセットオブジェクト７０４のデータシンクパーソナリティとして、データセットオブジェクト７０４に関連付けられると決定される。一般に、データセットオブジェクトへのノード（データソース、データシンク、又はルックアップテーブル）の一致では、複数のパラメータ及びパラメータ値が一致する必要があり得る。例えば、データセットオブジェクトへのノードの関連付けでは、データストアのロケーション及びレコードフォーマットを識別するパラメータが一致する必要があり得る。
【００６４】
上述したデータセットオブジェクト手法は、コンピュータで実行されるソフトウェアを使用して実施することができる。例えば、ソフトウェアは、それぞれが少なくとも１つのプロセッサ、少なくとも１つのデータ記憶システム（揮発性及び不揮発性メモリ及び／又は記憶要素を含む）、少なくとも１つの入力装置又はポート、及び少なくとも１つの出力装置又はポートを含むプログラムされるか、又はプログラム可能な１つ又は複数のコンピュータシステム（分散、クライアント／サーバ、又はグリッド等の様々なアーキテクチャであり得る）で実行される１つ又は複数のコンピュータプログラム内のプロシージャを形成する。ソフトウェアは、例えば、データフローグラフの設計及び構成に関連する他のサービスを提供するより大きなプログラムの１つ又は複数のモジュールを形成し得る。グラフのノード及び要素は、コンピュータ可読媒体に記憶されたデータ構造又はデータリポジトリに記憶されたデータモデルに準拠する他の編成データとして実施することができる。
【００６５】
ソフトウェアは、汎用又は専用プログラマブルコンピュータにより可読のＣＤ−ＲＯＭ等の記憶媒体に提供してもよく、又はコンピュータにネットワークの通信媒体を介して送られ（伝播信号に符号化される）、コンピュータで実行されてもよい。すべての機能は、汎用コンピュータで実行されてもよく、又はコプロセッサ等の専用ハードウェアを使用して実行されてもよい。ソフトウェアは、ソフトウェアにより指定される計算の異なる部分が異なるコンピュータにより実行される分散様式で実施してもよい。そのような各コンピュータプログラムは、好ましくは、汎用又は汎用プログラマブルコンピュータにより可読の記憶媒体又は装置（例えば、固体状態メモリ、固体状態媒体、磁気媒体、又は光学媒体）に記憶又はダウンロードされて、記憶媒体又は装置がコンピュータシステムにより読み取られ、本明細書に記載のプロシージャを実行する場合、コンピュータを構成し動作させる。本発明によるシステムは、コンピュータ可読記憶媒として実施され、コンピュータプログラムが構成されるものと見なすこともでき、そうして構成された記憶媒体は、コンピュータシステムを特定の事前定義された様式で動作させて、本明細書に記載の機能を実行させる。
【００６６】
本発明のいくつかの実施形態について説明した。それにも関わらず、本発明の趣旨及び範囲から逸脱せずに様々な変更を行い得ることが理解されよう。例えば、上述したステップのうちのいくつかは順序から独立し得、したがって、説明された順序と異なる順序で実行することもできる。上記説明が例示を目的とし、本発明の範囲を限定せず、本発明の範囲が、添付の特許請求の範囲により定義されることを理解されたい。例えば、上述したいくつかの機能ステップは、全体処理に実質的に影響せずに異なる順序で実行し得る。他の実施形態も以下の特許請求の範囲内にある。
【図１】
0005902185.tif 000002
【図２Ａ】
0005902185.tif 000003
【図２Ｂ】
0005902185.tif 000004
【図３】
0005902185.tif 000005
【図４】
0005902185.tif 000006
【図５】
0005902185.tif 000007
【図６】
0005902185.tif 000008
【図７】
0005902185.tif 000009