"コンポーネント間の作業要素のフローを表すリンクによって接続されたデータ処理コンポーネントを表す頂点を含むデータフローグラフの1つまたは複数の特性を表す1つまたは複数の式を評価するためのコンピューティングシステムによって実行される方法であって、1つまたは複数の変数に対する1つまたは複数の演算を含む前記1つまたは複数の式を評価するという要求を前記コンピューティングシステムによって受信する工程と、前記コンピューティングシステムによって前記1つまたは複数の式を評価する工程であって、1つまたは複数のフィールドを含むデータ構造を定義する工程と、前記データフローグラフの1つまたは複数のコンポーネントに関連する追跡情報を前記データフローグラフの実行中に収集する工程と、前記1つまたは複数のフィールドに前記追跡情報に関連する値を格納する工程と、前記1つまたは複数の式の1つまたは複数の変数を、前記1つまたは複数のフィールドに格納した値と置き換えて、前記1つまたは複数の式の評価結果を演算する工程とを含む、工程とを含む、方法。前記評価は、前記データフローグラフを実行している間に実行される、請求項1に記載の方法。前記追跡情報は、前記データフローグラフの1つまたは複数のサブグラフの1つまたは複数のコンポーネントにさらに関連する、請求項1に記載の方法。前記1つまたは複数の変数の少なくとも第1の変数は、前記1つまたは複数のサブグラフの第1のサブグラフへの参照を含む項として前記式中で表される、請求項3に記載の方法。前記第1の変数は、前記第1のサブグラフ内の第1のコンポーネントへの参照を含む、請求項4に記載の方法。前記1つまたは複数の変数の少なくとも1つは、前記データフローグラフの1つまたは複数、前記1つまたは複数のサブグラフ、および、前記1つまたは複数のコンポーネントの特性に相当する、請求項3に記載の方法。前記1つまたは複数の式を評価する工程は、事前に定義された条件に従って前記1つまたは複数の式を評価する工程を含む、請求項1に記載の方法。前記事前に定義された条件は、トリガ事象の検出を含む、請求項7に記載の方法。前記トリガ事象は、1つまたは複数の処理リソースが前記1つまたは複数の処理リソースの要求に対して不足しているかについての判断を含む、請求項8に記載の方法。前記データ構造を定義する工程は、前記データフローグラフを横断して、前記1つまたは複数のフィールドのタイプおよび数の1つまたは複数を特定する工程を含む、請求項1に記載の方法。前記データフローグラフを横断する工程は、前記1つまたは複数の式に関連する前記データフローグラフの部分を横断する工程を含む、請求項10に記載の方法。前記データフローグラフの1つまたは複数のコンポーネントに関連する追跡情報を収集する工程は、前記1つまたは複数の式に少なくとも部分的に基づいて前記追跡情報をフィルタ処理する工程を含む、請求項1に記載の方法。前記結果を1つまたは複数の閾値と比較する工程をさらに含む、請求項1に記載の方法。前記比較する工程に応じて通知を生成する工程をさらに含む、請求項13に記載の方法。前記通知に少なくとも部分的に基づいて1つまたは複数の自動化プロセスを実行する工程をさらに含む、請求項14に記載の方法。ユーザインターフェースから前記1つまたは複数の式を受信する工程をさらに含む、請求項1に記載の方法。前記1つまたは複数の式を含む事前に定義された式のセットを提供する工程をさらに含む、請求項1に記載の方法。前記評価する工程は、前記1つまたは複数の式を定期的に評価する工程をさらに含む、請求項1に記載の方法。2つ以上の結果を使用して1つまたは複数の特性に関連するヒストグラムを生成する工程をさらに含む、請求項18に記載の方法。前記1つまたは複数の式の定期的な評価結果に少なくとも部分的に基づいて、格納された過去のデータを更新する工程をさらに含む、請求項18に記載の方法。前記1つまたは複数の変数の少なくとも1つは、前記1つまたは複数の式を評価するという前記要求を前記コンピューティングシステムによって受信する前に前記過去のデータに格納された値に依存する、請求項18に記載の方法。前記1つまたは複数のフィールドの1つの中に、ベクトル形式で、前記追跡情報に関連する複数の値を格納する工程をさらに含む、請求項1に記載の方法。前記複数の値のそれぞれは、特定のパラメータのそれぞれの異なる値に関連し、前記複数の値のそれぞれは、前記特定のパラメータの前記それぞれの値に関連する追跡情報上で集約された特性の値である、請求項22に記載の方法。コンポーネント間の作業要素のフローを表すリンクによって接続されたデータ処理コンポーネントを表す頂点を含むデータフローグラフの1つまたは複数の特性を表す1つまたは複数の式を評価するためのコンピュータプログラムを格納するコンピュータ可読記憶媒体であって、前記コンピュータプログラムは、コンピュータに、1つまたは複数の変数に対する1つまたは複数の演算を含む前記1つまたは複数の式を評価するという要求を受信させ、前記1つまたは複数の式を評価させるための命令を含み、該評価は、1つまたは複数のフィールドを含むデータ構造を定義することと、前記データフローグラフの1つまたは複数のコンポーネントに関連する追跡情報を前記データフローグラフの実行中に収集することと、前記1つまたは複数のフィールドに前記追跡情報に関連する値を格納することと、前記1つまたは複数の式の1つまたは複数の変数を、前記1つまたは複数のフィールドに格納した値と置き換えて、前記1つまたは複数の式の評価結果を演算することとを含む、コンピュータ可読記憶媒体。コンポーネント間の作業要素のフローを表すリンクによって接続されたデータ処理コンポーネントを表す頂点を含むデータフローグラフの1つまたは複数の特性を表す1つまたは複数の式を評価するためのコンピューティングシステムであって、1つまたは複数の変数に対する1つまたは複数の演算を含む前記1つまたは複数の式を評価するという要求を受信するよう構成された入力デバイスまたはポートと、前記1つまたは複数の式を評価するよう構成された少なくとも1つのプロセッサとを含み、該評価は、1つまたは複数のフィールドを含むデータ構造を定義することと、前記データフローグラフの1つまたは複数のコンポーネントに関連する追跡情報を前記データフローグラフの実行中に収集することと、前記1つまたは複数のフィールドに前記追跡情報に関連する値を格納することと、前記1つまたは複数の式の1つまたは複数の変数を、前記1つまたは複数のフィールドに格納した値と置き換えて、前記1つまたは複数の式の評価結果を演算することとを含む、コンピューティングシステム。コンポーネント間の作業要素のフローを表すリンクによって接続されたデータ処理コンポーネントを表す頂点を含むデータフローグラフの1つまたは複数の特性を表す1つまたは複数の式を評価するためのコンピューティングシステムであって、1つまたは複数の変数に対する1つまたは複数の演算を含む前記1つまたは複数の式を評価するという要求を受信する手段と、前記1つまたは複数の式を評価する手段とを含み、該評価は、1つまたは複数のフィールドを含むデータ構造を定義することと、前記データフローグラフの1つまたは複数のコンポーネントに関連する追跡情報を前記データフローグラフの実行中に収集することと、前記1つまたは複数のフィールドに前記追跡情報に関連する値を格納することと、前記1つまたは複数の式の1つまたは複数の変数を、前記1つまたは複数のフィールドに格納した値と置き換えて、前記1つまたは複数の式の評価結果を演算することとを含む、コンピューティングシステム。要約一態様では、一般に、方法は、コンポーネント間の作業要素のフローを表すリンクによって接続されたデータ処理コンポーネントを表す頂点を含むデータフローグラフの1つまたは複数の特性を表す1つまたは複数の式を評価するためのコンピューティングシステムによって実行される。本方法は、1つまたは複数の変数に対する1つまたは複数の演算を含む1つまたは複数の式を評価するという要求をコンピューティングシステムによって受信する工程と、コンピューティングシステムによって1つまたは複数の式を評価する工程とを含む。評価する工程は、1つまたは複数のフィールドを含むデータ構造を定義する工程と、データフローグラフの1つまたは複数のコンポーネントに関連する追跡情報をデータフローグラフの実行中に収集する工程と、1つまたは複数のフィールドに追跡情報に関連する値を格納する工程と、1つまたは複数の式の1つまたは複数の変数を、1つまたは複数のフィールドに格納した値と置き換えて、1つまたは複数の式の評価結果を演算する工程とを含む。態様は、以下の特徴の1つまたは複数を含み得る。評価は、データフローグラフを実行している間に実行される。追跡情報は、データフローグラフの1つまたは複数のサブグラフの1つまたは複数のコンポーネントにさらに関連する。1つまたは複数の変数の少なくとも第1の変数は、1つまたは複数のサブグラフの1つの第1のサブグラフへの参照を含む項として式中で表される。第1の変数は、第1のサブグラフ内の第1のコンポーネントへの参照を含む。1つまたは複数の変数の少なくとも1つは、データフローグラフの1つまたは複数、1つまたは複数のサブグラフ、および、1つまたは複数のコンポーネントの特性に相当する。1つまたは複数の式を評価する工程は、事前に定義された条件に従って1つまたは複数の式を評価する工程を含む。事前に定義された条件は、トリガ事象の検出を含む。トリガ事象は、1つまたは複数の処理リソースが1つまたは複数の処理リソースの要求に対して不足しているかについての判断を含む。データ構造を定義する工程は、データフローグラフを横断して、1つまたは複数のフィールドのタイプおよび数の1つまたは複数を特定する工程を含む。データフローグラフを横断する工程は、1つまたは複数の式に関連するデータフローグラフの一部分を横断する工程を含む。データフローグラフの1つまたは複数のコンポーネントに関連する追跡情報を収集する工程は、1つまたは複数の式に少なくとも部分的に基づいて追跡情報をフィルタ処理する工程を含む。本方法は、結果を1つまたは複数の閾値と比較する工程をさらに含む。本方法は、比較する工程に応じて通知を生成する工程をさらに含む。本方法は、通知に少なくとも部分的に基づいて1つまたは複数の自動化プロセスを実行する工程をさらに含む。本方法は、ユーザインターフェースから1つまたは複数の式を受信する工程をさらに含む。本方法は、1つまたは複数の式を含む事前に定義された式のセットを提供する工程をさらに含む。評価する工程は、1つまたは複数の式を定期的に評価する工程をさらに含む。本方法は、2つ以上の結果を使用して1つまたは複数の特性に関連するヒストグラムを生成する工程をさらに含む。本方法は、1つまたは複数の式の定期的な評価結果に少なくとも部分的に基づいて、格納された過去のデータを更新する工程をさらに含む。1つまたは複数の変数の少なくとも1つは、1つまたは複数の式を評価するという要求をコンピューティングシステムによって受信する前に過去のデータに格納された値に依存する。本方法は、1つまたは複数のフィールドの1つの中に、ベクトル形式で、追跡情報に関連する複数の値を格納する工程をさらに含む。複数の値のそれぞれは、特定のパラメータのそれぞれの異なる値に関連し、複数の値のそれぞれは、特定のパラメータのそれぞれの値に関連する追跡情報上で集約された特性の値である。別の態様では、一般に、コンピュータ可読記憶媒体は、コンポーネント間の作業要素のフローを表すリンクによって接続されたデータ処理コンポーネントを表す頂点を含むデータフローグラフの1つまたは複数の特性を表す1つまたは複数の式を評価するためのコンピュータプログラムを格納する。コンピュータプログラムは、コンピュータに、1つまたは複数の変数に対する1つまたは複数の演算を含む1つまたは複数の式を評価するという要求を受信させ、1つまたは複数の式を評価させるための命令を含む。該評価は、1つまたは複数のフィールドを含むデータ構造を定義することと、データフローグラフの1つまたは複数のコンポーネントに関連する追跡情報をデータフローグラフの実行中に収集することと、1つまたは複数のフィールドに追跡情報に関連する値を格納することと、1つまたは複数の式の1つまたは複数の変数を、1つまたは複数のフィールドに格納した値と置き換えて、1つまたは複数の式の評価結果を演算することとを含む。別の態様では、一般に、コンポーネント間の作業要素のフローを表すリンクによって接続されたデータ処理コンポーネントを表す頂点を含むデータフローグラフの1つまたは複数の特性を表す1つまたは複数の式を評価するためのコンピューティングシステム。コンピューティングシステムは、1つまたは複数の変数に対する1つまたは複数の演算を含む1つまたは複数の式を評価するという要求を受信するよう構成された入力デバイスまたはポートと、1つまたは複数の式を評価するよう構成された少なくとも1つのプロセッサとを含む。該評価は、1つまたは複数のフィールドを含むデータ構造を定義することと、データフローグラフの1つまたは複数のコンポーネントに関連する追跡情報をデータフローグラフの実行中に収集することと、1つまたは複数のフィールドに追跡情報に関連する値を格納することと、1つまたは複数の式の1つまたは複数の変数を、1つまたは複数のフィールドに格納した値と置き換えて、1つまたは複数の式の評価結果を演算することとを含む。別の態様では、一般に、コンポーネント間の作業要素のフローを表すリンクによって接続されたデータ処理コンポーネントを表す頂点を含むデータフローグラフの1つまたは複数の特性を表す1つまたは複数の式を評価するためのコンピューティングシステム。コンピューティングシステムは、1つまたは複数の変数に対する1つまたは複数の演算を含む1つまたは複数の式を評価するという要求を受信する手段と、1つまたは複数の式を評価する手段とを含む。該評価は、1つまたは複数のフィールドを含むデータ構造を定義することと、データフローグラフの1つまたは複数のコンポーネントに関連する追跡情報をデータフローグラフの実行中に収集することと、1つまたは複数のフィールドに追跡情報に関連する値を格納することと、1つまたは複数の式の1つまたは複数の変数を、1つまたは複数のフィールドに格納した値と置き換えて、1つまたは複数の式の評価結果を演算することとを含む。態様は、以下の利点の1つまたは複数を含み得る。データフローグラフを実行環境で実行する際、データフローグラフの実行をモニタして、例えば、データフローグラフのコンポーネントによって実行されているさまざまなコンピューテーションの進行を追跡するか、または、実行されているデータ処理に関連するさまざまな特性をサンプリングすることが有用である場合が多い。いくつかの事例では、ユーザは、処理されているデータの量例えば、データの記録数もしくはバイト数、および/または、データ処理中に消費されているリソースの量例えば、コンポーネントによって使用されているCPU時間もしくはコンポーネントに関連する待ち時間の追跡を希望する場合がある。いくつかの実行環境は、ユーザインターフェースの一部であるウィンドウに表示されるさまざまな特性を示すための追跡データストリームを受信するユーザインターフェースを提供するよう構成される。本明細書に記載される技法のいくつかにより、ユーザは、ユーザがモニタリングに関心を示し得るある特定の特性を定義する式を動的かつ柔軟に提供することができる。いくつかの事例では、ユーザは、データフローグラフの実行中にそのデータフローグラフをモニタするための式を提供することができる。特性は、データフローグラフのサブグラフ内にあるデータフローグラフの一部分例えば、コンポーネントまたはデータフローリンクと関連し得る。ユーザは、システムがデータフローグラフの表現例えば、ノードがコンポーネントを表し、リンクがデータフローを表す有向グラフとしてのデータフローグラフの表現の適切な部分を横断するまたは少しずつ移動することを可能にする、十分に適格な経路の指定を可能にする表記を使用することができる。データ構造を生成して、ユーザが提供する式の評価に必要な追跡情報の一部分を保持することによって、追跡情報のライブストリームから集約され封入された適切な情報を使用して、効果的な様式で、オンザフライで式を評価することができる。ユーザは、追跡情報を理解することも読み取ることもできなければならないというわけではなく、単に、理解可能な式を生成するだけでよく、それに基づいて、システムは、適切な追跡情報を取得し、最新の情報を使用して式を評価することができる。本発明の他の特徴および利点は、以下の説明および特許請求の範囲から明らかになるであろう。説明図1は、データフローグラフの特性を評価するための技法を使用することができる例示的なデータ処理システム100を示す。システム100は、記憶装置またはオンラインデータストリームとの接続部などの1つまたは複数のデータソースを含み得るデータソース102を含み、データソースのそれぞれは、さまざまな格納形式のいずれかの形式例えば、メインフレームによって使用されるデータベース表、スプレッドシートファイル、フラットテキストファイルまたはネイティブ形式でデータを格納することができる。実行環境104は、モニタモジュール106と、実行モジュール112とを含む。モニタモジュール106は、実行モジュール112上で実行する1つまたは複数のプロセスの特性をモニタするための1つまたは複数のプロセスを含む。例えば、実行モジュール112は、頂点間の有向リンク作業要素のフローを表すによって接続された頂点データ処理コンポーネントまたはデータセットを表すを含むデータフローグラフとしてアプリケーションを実行するよう構成することができる。データ処理コンポーネントは、入力データフロー上で作業要素を受信するための任意の数の入力ポートと、出力データフロー上で作業要素を提供するための任意の数の出力ポートとを有し得る。モニタモジュール106は、1つまたは複数のデータフローグラフを実行しているときに、1つまたは複数のデータフローグラフの特性をモニタするよう構成することができる。実行環境104は、UNIX登録商標オペレーティングシステムなどの適切なオペレーティングシステムの制御下で、1つまたは複数の汎用コンピュータをホストとすることができる。例えば、実行環境104は、ローカルで接続された例えば、SMPコンピュータなどのマルチプロセッサシステムもしくはローカルで分散された例えば、クラスタもしくはMPPとして結合された複数のプロセッサ、または、リモートで接続されたもしくはリモートで分散された例えば、ローカルエリアネットワークLANおよび/もしくは広域ネットワークWANを介して結合された複数のプロセッサ、あるいは、それらの任意の組合せの、複数の中央演算処理装置CPUを使用したコンピュータシステムの構成を含む複数ノード並列演算環境を含み得る。いくつかの例では、モニタモジュール106は、データ格納システム116からデータを読み取る。例えば、モニタモジュール106は、データ格納システム116に格納された1つまたは複数の式114にアクセスすることができる。モニタモジュール106は、式114を使用して、実行モジュール112によって実行されているデータフローグラフの特性を評価することができる。以下でさらに詳細に論じられるように、モニタモジュール106は、データフローグラフに関連する追跡情報を使用して、式114を評価することができる。実行モジュール112は、入力データを処理するために実行しているデータフローグラフへの入力として、データソース102からデータを読み取る。データソース102を提供する記憶装置は、実行環境104とローカルで接続する、例えば、実行環境104を実行しているコンピュータに接続された記憶媒体例えば、ハードドライブ108に格納することも、実行環境104とリモートで接続する、例えば、リモート接続上で、実行環境104を実行しているコンピュータと連通するリモートシステム例えば、メインフレーム110をホストとすることもできる。実行モジュール112は、1つまたは複数のコンピュータプロセス例えば、データフローグラフのコンポーネントに関連するプロセスを実行することができ、モニタモジュール106は、実行モジュール112がデータフローグラフを実行しているときに、例えば、実行モジュール112が実行するグラフプロセスとともに、実行環境で実行している1つまたは複数のモニタリングプロセスも使用してデータフローグラフのアクティビティをモニタすることができる。また、データ格納システム116は、開発環境118にアクセスすることができ、開発環境118では、開発者120は、以下で説明されるように、データフローグラフの1つまたは複数の特性を表す式114を定義することも入力することもでき、評価した式の結果を使用して措置を講じることもできる。式114は、データフローグラフの異なる特性を表す1つまたは複数の変数に対する1つまたは複数の演算の観点から定義することができる。演算の結果は、ユーザがモニタを所望する特性を表す式の値をもたらす。開発環境118は、いくつかの実装形態では、データフローグラフとしてアプリケーションを開発するためのシステムである。例えば、そのような環境については、参照により本明細書に組み込まれるManagingParametersforGraphBasedApplicationsと称する米国特許出願公開第2007/0011668号に詳細に説明されている。そのようなグラフに基づくコンピューテーションを実行するシステムについては、参照により本明細書に組み込まれる米国特許第5,566,072号EXECUTINGCOMPUTATIONSEXPRESSEDASGRAPHSに記載されている。このシステムに従って作成されたデータフローグラフは、グラフコンポーネントによって表される個別のプロセスに情報を持ち込むおよび個別のプロセスから情報を引き出すための方法、プロセス間で情報を移動するための方法、ならびに、プロセスに対する実行順番を定義するための方法を提供する。このシステムは、プロセス間通信方法例えば、グラフのリンクに従った通信経路は、TCP/IPもしくはUNIX登録商標ドメインソケットを使用することも、共有メモリを使用して、プロセス間でデータを渡すこともできるを選択するアルゴリズムを含む。システム100は、異なる形式のデータベースシステムを含むさまざまなタイプのシステムからデータを受信することができる。データは、恐らくヌル値を含む、それぞれのフィールド属性または列とも呼ばれるに対する値を有する記録として組織化することができる。データソース102から最初にデータを読み取る際、実行モジュール112は、通常、そのデータソース内の記録についてのいくつかの初期のフォーマット情報から始める。状況次第では、データソースの記録構造は、初めは知られていない場合があり、代わりに、データソースの分析後に決定される場合がある。記録についての初期情報は、異なる値を表すビット数と、記録内のフィールドの順番と、ビットによって表される値のタイプ例えば、ストリング、符号付き/符号なし整数とを含み得る。図2は、データフローグラフの特性を評価するための例示的な手順200のフローチャートを示す。本手順は、システム例えば、システム100図1がデータフローグラフの1つまたは複数の特性を表す式を評価するという要求を受信する202と開始する。式を評価するという要求を受信した後、システムは、1つまたは複数のフィールドを含むデータ構造を定義する204。いくつかの例では、データ構造は、実行がモニタされているデータフローグラフの表現を横断することによってフィールドが定義されるメモリ内データ構造である。一般に、データ構造内のフィールドは、式の評価に必要なデータを保持するよう構成される。システム100は、以下でさらに詳細に説明されるように、データフローグラフの異なる部分に関連する追跡情報を集約することによって、データフローグラフの実行中に追跡情報を収集する206。一般に、追跡情報は、データフローグラフを実行している間に生成され、データフローグラフならびにそのコンポーネントおよびサブコンポーネントのオペレーションについての情報の他に、さまざまなオペレーションが消費するリソースの量についての情報も提供することができる。一旦追跡情報が収集および/もしくは集約されればまたは、追跡情報が収集および/もしくは集約されてくると、システムは、メモリ内データ構造のフィールドに、追跡情報に関連する値を格納する208。データ構造に値を格納した後、評価している式中の変数を、データ構造のフィールドに格納した値を使用して置き換える210。変数を既知の量と置き換えることで、システムは、次いで、式を評価して、結果を提供する212ことができる。図4の例に示されるように、結果は、さらなる処理タスクに使用することができる。また、結果は、以下の図3の例でさらに詳細に説明されるように、他の式を評価するために使用できる過去のデータの収集体に格納することもできる。データフローグラフは、さまざまなレベルの抽象化によって指定することができる。それ自体がコンポーネントおよびリンクを含むデータフローグラフであるサブグラフは、単一のコンポーネントとして別の包含データフローグラフ内で表すことができ、サブグラフ内でコンポーネントへの入力を提供する入力ポートと、サブグラフ内でコンポーネントからの出力を提供する出力ポートとを示す。サブグラフは、開発者が所定のサブグラフを低レベルまで掘り下げてそのサブグラフ内のコンポーネントおよびリンクを見ることを可能にする一方で、データフローグラフの開発におけるモジュール方式および再利用可能性、ならびに、データフローグラフの所定のレベルで開発者からコンポーネントおよびコンポーネント間のリンクのサブセットの複雑性を隠す能力を可能にする。図3は、実行モジュール112によって実行されるデータフローグラフ302の特性をモニタする例示的なシステム300を示し、データストア316と、式評価エンジン322と、グラフ縦断エンジン330とを含み、式評価エンジン322とグラフ縦断エンジン330の両方ともモニタモジュール106によって使用され、式324を受信して評価し、データフローグラフ302のモニタされた特性を表す結果を提供する。式324は、例えば、式評価エンジン322およびグラフ縦断エンジン330がデータ格納システム116からアクセスすることができる。データフローグラフ302は、データフロー例えば、データソース102から提供され、サブグラフによって処理された記録などのデータ要素のフローを表すリンク328によって接続された第1のサブグラフ304と第2のサブグラフ306とを含む。サブグラフ304は、データフロー例えば、データソース102から提供され、コンポーネントによって処理された記録などのデータ要素のフローを表すリンク326によって接続された第1のコンポーネントC1308と第2のコンポーネントC2310とを含む。また、システム300は、グラフ302のコンポーネントおよびサブグラフの実行に関連する追跡情報を集約する集約エンジン312も含み、集約エンジン312は、データストア316と通信可能に接続される。集約エンジン312は、以下でさらに詳細に説明されるように、データフローグラフ302ならびにそのサブグラフおよびコンポーネントに関連する追跡情報を式評価エンジン322に渡すよう構成され、式評価エンジン322もまた、データストア316と通信可能に接続される。集約エンジン312は、実行モジュール112の一部として、またはその代替として、モニタモジュール106の一部として実装することができる。1つのデータフローグラフと少数のサブグラフおよびコンポーネントのみ示されているが、データフローグラフは、モジュールの実体であり、他のデータフローグラフと接続しても、組み合わせてもよい。その上、図3の例は比較的少数のサブグラフおよびコンポーネントを示す簡単な例であるが、データフローグラフ302は任意の数のサブグラフを含み得、各サブグラフは任意の数のコンポーネントを含み得る。いくつかの例では、データストア316は、データ格納システム116のメモリ例えば、揮発性および/または不揮発性メモリに格納される。データストア316は、集約された追跡情報を格納するための少なくとも1つのデータ構造318を格納する。いくつかの例では、データ構造318は、フィールドによって定義される構造を有する記録内に1つまたは複数の追跡情報値を格納するための1つまたは複数のフィールド320A、320B、320Cおよび320Dを含む。図3の例では、グラフ縦断エンジン330は、以下でさらに詳細に説明されるように、式324を分析し、データフローグラフ302の表現を横断する際にどの情報が必要かを判断し、データ構造318の定義を決定する。この横断は、新しい式324の受信に応じて、データフローグラフ302の実行前またはデータフローグラフ302の実行中に起こり得る。データフローグラフ302の実行中は、集約エンジン312は、定義されたデータ構造318に、集約した追跡情報を入力する。式評価エンジン322は、情報が入力されたデータ構造318を使用して式324を評価する。式324を評価した後、評価結果は、データフローグラフ302の1つまたは複数の特性の表現を提供する。結果は、場合により、データストア316内の過去のデータ332の収集体に格納することができる。いくつかの例では、開発者120図1などのユーザは、式324を入力して、ユーザインターフェースを通じて評価する。ユーザは、評価のための新しい式を入力することができる例えば、ユーザは、何らかの形式のプログラミング言語もしくは式作成ツールを使用して、評価する新しい式を定義することができるか、または、ユーザは、事前に設定された式もしくはデフォルト式などの保存された式のリストから選択された式などの既存の式を入力することができる。一般に、ユーザは、1つまたは複数のデータフローグラフの特定の特性についての情報を得るために式を入力することができる。例えば、ユーザが、コンポーネントC1およびC2が消費するリソースの量例えば、1つまたは複数のCPUがコンポーネント用のプロセスの実行に費やす時間などのCPUリソースを評価することを希望すれば、ユーザは、以下の式を選択することも作成することもできる。消費されたCPUリソース=SG1.C1.cpuSG1.C2.cpu上記の式は、ドット表記式の一例である。式中の項は、データフローグラフの異なる部分に相当する名前例えば、サブグラフ、コンポーネント、ポート、リンクと、データフローグラフのそれらの部分に関連する特性とを含む。サブグラフまたはコンポーネントの名前の間に存在する式中のドットは、ドットの右側のサブグラフまたはコンポーネントがドットの左側のサブグラフまたはコンポーネント内に存在することを示す。式中の最後のドットの後にくる最後の名前は、モニタされているドットの左側の要素の特性に相当する。項SG1.C1.cpuは、コンポーネントC1308によって消費されているCPUリソースを提供し、同様に、項SG1.C2.cpuは、コンポーネントC2310によって消費されているCPUリソースを提供する。上記の式では、2つの項を足して、2つのコンポーネントC1308およびC2310によって消費されている全CPUリソースを得る。項SG1.C1.cpuおよびSG1.C2.cpuは、式の評価前または評価中にデータ構造318のフィールドから値を提供することができる変数である。CPUリソースを含むいくつかの特性は特定のパラメータによって分解することができ、そのパラメータの異なる値に対してその特性を別々にモニタすることができる。例えば、CPUリソース変数に対する複数の異なる値は、ホストパラメータのそれぞれの値に対するデータ構造318のフィールドに例えば、ベクトルとして格納することができる。特定のサブグラフの特定のコンポーネントは、異なるホストコンピュータ上で並行して実行する異なるスレッドを有し得る。各ホストコンピュータは、複数のCPUを有し得る。この例では、集約エンジン312は、各ホスト上ですべてのCPU上のCPU時間を集約して、各ホストに対してCPU時間の単一値をもたらす。これらの値は、データ構造318のフィールドにベクトル形式で格納される。フィールドを使用して式の変数に値を提供すると、場合により、全体的結果としてまたはホストによって分解された結果として、式の結果をユーザに表示することができる。式の結果を追加の処理例えば、警告を定義するために使用する場合、ユーザは、チェックして例えば、チェックボックスを使用して、全体的結果を使用すべきかまたはホストによって分解された個々の結果を使用すべきかを示すことができる。例えば、警告をいつトリガするかを決定するために式に関連する閾値を定義する際、全体のチェックボックスがチェックされていれば、式の全体的結果に関連付ける閾値を受信するための単一の入力インターフェースが提供される。全体のチェックボックスがチェックされていなければ、各ホストに対するそれぞれの結果に関連付ける複数の閾値を受信するための複数の入力インターフェースが提供される。上記の例では、式324が、データフローグラフ302の2つのコンポーネントによって消費されているCPUリソースに関連する特性を定義するが、式評価エンジン322を使用して、他の特性を表す式を評価することもできる。例えば、式を評価して、コンポーネントを通過する記録またはバイト数、入力データセットから読み取られるかまたは出力データセットに書き込まれる記録またはバイト数、経過時間などを提供することができる。いくつかの特性は、他の特性の観点から表すことができ、例えば、numrecordselapsedtimeは平均処理速度例えば、1秒当たりの記録数の単位でを表す。また、式評価エンジン322は、複数の式を同時に評価することもでき、事前に定義されたスケジュールに従って式を評価するようさらに構成することができる。例えば、式評価エンジン322は、1時間に1回、または、処理リソースがそれらのリソースの要求に対して不足しつつあるかについての判断などの1つもしくは複数のトリガ事象もしくは条件の検出時に、式324を評価するよう構成することができる。式324を評価すべきであるという指示を受信した後、グラフ縦断エンジン330は、式324の字句解析およびデータフローグラフの表現を横断することによって決定されたデータフローグラフ302の分析に基づいて、データストア316内のデータ構造318を定義する。例えば、コンポーネントへの参照に使用される項は、データフローグラフのどれほど深いレベルにコンポーネントが位置するかに応じた構造を有する。ドット表記は、データフローグラフの表現を横断して、<サブグラフ>.<コンポーネント>として表される目的とするコンポーネントに到達するための十分に適格な経路を提供する。コンポーネント間のリンクへの参照に使用される項は、<コンポーネント>_から_<コンポーネント>として表される。データ構造318は、式324中の1つまたは複数の変数の代わりとなるように最終的に式評価エンジン322に提供される値を保持するよう構成されたフィールドを含む。データ構造318を生成する前、グラフ縦断エンジン330は、データフローグラフ302の表現を横断または少しずつ移動し、式324の評価に必要なフィールド320A~Dの数およびタイプを決定する。データフローグラフ302を横断するためのいくつかの手順では、グラフ縦断エンジン330は、データフローグラフ302の最高レベルコンポーネントおよびサブグラフは、最高レベルでのノードとして表されるでデータフローグラフ302を検査することによって、および、式324の評価に関連するデータフローグラフの部分を特定するため、データフローグラフ302のノードを接続するデータフローリンクをたどって、式中の変数名をデータフローグラフの部分の名前例えば、コンポーネント、ポート、リンクと比較することによって開始する。すなわち、グラフ縦断エンジン330は、式324およびデータフローグラフ302を分析して、特定のタイプ例えば、データタイプの1つまたは複数のフィールドを定義する。例えば、上記の式では、データ構造318は2つのフィールドを有し、それぞれのタイプはCPUリソースに関連することになる。データフローグラフ302のトポロジーグラフ縦断エンジン330によって決定されるは、データ構造318内に含まれるフィールドの数およびタイプを定義する。例えば、データフローグラフが3つのトポロジーを有するノードの有向グラフとして表される場合、式に基づいて、グラフ縦断エンジン330は、ルートから式で参照されるコンポーネント/データフローを表すノード/リンクまでどの経路を横断すべきか判断することができる。式で参照されるコンポーネントまたはデータフローを表すノードまたはリンクが経路に含まれていない場合は、グラフ縦断エンジン330は、その経路を横断する必要はない。あるいは、いくつかの実装形態では、グラフ縦断エンジン330は、グラフ全体を横断することができる。データ構造318を定義すると、データフローグラフ302は実行モジュール112によって実行され、実行中は、モニタモジュール106が1つまたは複数の式の評価を管理する。評価する各式に対し、定義されたフィールドの仕様に基づいて、データ構造の対応するインスタンスを生成し、追跡情報を受信する。集約エンジン312は、実行モジュール112によって提供される追跡情報のフローからどの追跡情報を抽出すべきか示す入力を受信する。集約エンジン312は、定義されたデータ構造318のインスタンスの定義されたフィールド320A~Dを、式324の評価に関連する値で満たすよう試みる。これらの値は、データフローグラフ302の実行中に実行モジュール112によって生成される追跡情報によって提供される。実行モジュール112は、さまざまなサブグラフおよびコンポーネントを実行すると、追跡情報を生成することができ、追跡情報は、集約エンジン312によって集約される。いくつかの例では、集約エンジン312は、データフローグラフ302のプロセスとともに実行されるプロセスを使用して実装し、個々のコンポーネント、サブグラフおよびデータフローの特性を説明する追跡情報を収集することができる。適切な追跡情報をフィールドに提供するため、集約エンジン312は、データフローグラフのどの態様が式324の評価に関連するかを特定するためにデータ構造318の生成されたインスタンスを分析する。データ構造318のインスタンスを生成するプロセスは、いくつかの実装形態では、再度実行中にグラフ縦断エンジン330を使用して、データフローグラフの表現を横断し、追加情報を得る定義されたフィールドに加えてか、または、データフローグラフの構造を実証する例えば、実行前の初期の横断からかなりの時間の量が経過している場合工程を含む。データフローグラフの異なる態様には異なるタイプの集約が必要とされる場合がある。集約の1つのタイプは、低レベルからデータフローグラフのあるレベルに対する追跡情報を提供するために起こる。例えば、集約エンジン312は、ある特定の数値を、サブグラフ内の個々のコンポーネントの特性例えば、各コンポーネントに対する個々のCPU時間を表す追跡情報内に追加し、サブグラフの特性例えば、総CPU時間を表す総和を提供する。他のタイプの集約は、データフローグラフの他の態様を伴う。並行なデータフローグラフの場合、入力データフロー上で受信したデータを並行して処理する所定のコンポーネントの複数のインスタンスが存在する例えば、入力データフロー上のデータは、例えば、異なるCPUで実行することができる異なる並行インスタンス間をパーティションで区切ることができる。集約エンジン312は、並行コンポーネントの各インスタンスに対する異なる追跡情報を集約し、集約値例えば、各インスタンスに対する総CPU時間を提供する。データ構造318内の、式324の評価に関連するデータフローグラフの部分例えば、関連するデータフロー、コンポーネントまたはサブグラフに相当するフィールドに追跡情報を格納した後、式評価エンジン322は、データ構造318を受信し、格納した情報例えば、コンポーネントC1308およびC2310についての情報を使用して式324を評価する。いくつかの事例では、集約エンジン312は、式324の評価のために必要以上のそれらのコンポーネントに対する追跡情報を提供する例えば、集約エンジン312は、コンポーネントを通過する記録数など他の式で参照された変数および現在評価している式324で参照されたコンポーネントのCPU使用状況に関連する追跡情報を提供することができるが、式評価エンジン322は、不要な追跡情報をフィルタ除去し、式324の評価に必要な追跡情報のみを抽出するよう構成することができる。集約エンジン312によって関連追跡情報を収集した後、追跡情報は、データ構造318内の適切なフィールドに格納される。フィールド320A~Dは定義されたタイプのものであり、追跡情報は同じタイプのものになるようフィルタ処理されたため、フィールド320A~Dには、互換性の適切なタイプの追跡情報を提供することができる。フィールド320A~Dを関連追跡情報または、その追跡情報に関連する値で満たした後、データ構造318は、式評価エンジン322によって評価できる記録の形を取った。この時点で、式評価エンジン322は、フィールド320A~Dから値を引き出し、式324で定義された変数と置き換えることができる。式324中の変数をフィールド320A~Dからの値と置き換えた後、式評価エンジン322は、式324を評価して所望の結果を生成することができる。上記の例示的な式を使用すると、その式の評価結果は、コンポーネントC1308およびコンポーネントC2310の総CPU使用状況を示すことになる。式324の評価は、データフローグラフを実行している間に実行することができる。図4は、式の評価から結果を得た後で実行することができる2つの任意選択のオペレーション414、416を除いて、例示的な手順200図2と同様の例示的な手順400である。手順400は、システム例えば、システム100図1がデータフローグラフの1つまたは複数の特性を表す式を評価するという要求を受信する402と開始する。式を評価するという要求を受信した後、システムは、1つまたは複数のフィールドを含むデータ構造を定義する404。いくつかの例では、データ構造は、評価されているデータフローグラフの表現を横断することによってフィールドが定義されるメモリ内データ構造である。一般に、データ構造内のフィールドは、式の評価に必要なデータを保持するよう構成される。システム100は、データフローグラフの異なる部分から生成された追跡情報を集約することによって、データフローグラフから追跡情報を収集する406。一般に、追跡情報は、データフローグラフを実行している間に生成され、データフローグラフならびにそのコンポーネントおよびサブコンポーネントのオペレーションについての情報の他に、さまざまなオペレーションが消費するリソースの量についての情報も提供することができる。一旦追跡情報が収集および/もしくは集約されればまたは、追跡情報が収集および/もしくは集約されてくると、システムは、メモリ内データ構造のフィールドに、追跡情報に関連する値を格納する408。データ構造に値を格納した後、評価している式中の変数を、データ構造のフィールドに格納した値を使用して置き換える410。変数を既知の量と置き換えることで、システムは、次いで、式を評価して、結果を提供する412ことができる。結果を判断した後、システムは、結果を1つまたは複数の閾値と比較する414ことができる。例えば、システムが以前に説明された式を評価して、コンポーネントC1308およびC2310のCPU使用量例えば、80使用を表す結果を得たと仮定する。システムは、80の結果をそれらの2つのコンポーネントに関連する最大CPU使用に関連する閾値例えば、50と比較することができる。結果が閾値を超える場合、システム内で通知を生成して、その条件の管理者に警告する416ことができる。通知は、警告または警報の形であってもよく、自動化プロセスを実行させてもよい例えば、追加のCPUリソースを解放してコンポーネントC1308およびC2310に追加のリソースを提供する。いくつかの例では、結果を使用して、時間に対するまたは他の値に対する1つまたは複数の特性を示すことができる。例えば、式の評価結果を使用して、収集した過去のデータ332に基づく1つまたは複数の評価特性を表すヒストグラムまたは他の統計値を生成することができる。ヒストグラムは、レポートの形で定期的に自動的に生成してもよく、システム300の管理者が要求に応じて生成してもよい。以前に評価された式の結果は過去のデータ332に格納されるため、いくつかの式は、その変数の既定数の以前の評価上で演算された変数の平均値などの過去のデータ332の関数である項を含み得る。ユーザは、1つまたは複数のグラフを実行するジョブの性能をそのジョブの過去の性能と比較する式を書き込むことができる。そのような式を使用して、履歴ベースの警告例えば、式によって測定されたグラフ測定基準がその過去値から逸脱することをユーザに通知する警告を生成することができる。デフォルトでは、システム300は、評価された各式の指定数の過去の結果を過去のデータ332に格納するよう構成することができる例えば、最近の50回のジョブ実行から。指定数は、ユーザが構成することができる。特定の式によって定義された測定基準の値は、測定基準の過去値を含む他の式で参照することができる。以下は、過去のデータ332に依存する測定基準の過去値または統計値を参照するためにユーザが使用できる変数の構文の一例である。value:モニタされているジョブの測定基準の現在値maxvalue:格納された過去値上の測定基準の最大値minvalue:格納された過去値上の測定基準の最小値avgvalue:格納された過去値上の測定基準の平均average平均mean値stdevvalue:格納された過去値上の測定基準の標準偏差これらの変数を使用すると、ユーザは、以下のようなブール式を構築することができる。valueavgvaluestdevvalueこの式を使用して、値がその過去平均を標準偏差以上上回る場合にトリガされる警戒通知を定義することができる。履歴ベースの式を構築する際、過去のデータ内の基本的な個々の過去値へのアクセスをユーザに与えることができる。例えば、測定基準の個々の過去値は、ベクトルhistoryiとしての参照であり得、iは、どれほど前に値が捕捉されたかを示す。例えば、測定基準が、ジョブによって消費されるCPU時間を表す式によって定義される場合、最近完了したジョブ実行によって使用された総CPU時間の値は、history0として表される。次の最近完了したジョブ実行に対する値は、history1として表される。このhistoryベクトルの大きさは、historylengthとして表される。maxvalueおよびavgvalueなどの統計値は、過去値のこの数値上で計算される。historylength時間より少ない数値でジョブが実行される場合、したがって、historyiベクトルが格納された過去値historylengthより少ない数値を有する場合、システム300は、すべての格納された過去値を使用して統計値を演算する。場合により、システム300は、提供する統計値がより意味深いものであるように、統計値を提供する前に最小数の過去値例えば、少なくとも3を格納する必要がある場合がある。historyiで利用可能な個々の値を使用すると、ユーザは、履歴ベースの警告を定義することができる。例えば、以下の式は、その現在値と、最近の2回のジョブ実行上のその値の平均との差として最近のドリフトを測定基準の値で、すなわち、value2で表す。このブール式を使用して、例えば、グラフジョブがその最近の性能を特徴付ける測定基準から何らかの方法で逸脱し始めた場合にユーザに通知することができる。いくつかの例では、データフローグラフは、特定のユーザの関心に合わせて調整された追跡情報を生成することができる。例えば、多くのデータフローグラフがCPU使用状況に関連するデータを生成する一方で、データフローグラフは、特定のコンポーネントを通過するドルの枚数に関連する追跡情報を生成するよう構成することもできる例えば、ユーザが金融サービス業界にいる場合。したがって、式は、ユーザのビジネスエリアに重要な特性の評価のための強力なツールであり得る。上記で説明されるデータフローグラフの特性を評価する手法は、コンピュータ上で実行するためのソフトウェアを使用して実施することができる。例えば、ソフトウェアは、1つまたは複数のプログラムされたまたはプログラム可能なコンピュータシステムそれは、分散型、クライアント/サーバまたはグリッドなどのさまざまなアーキテクチャのものである上で実行する1つまたは複数のコンピュータプログラムの手順を形成し、コンピュータシステムはそれぞれ、少なくとも1つのプロセッサと、少なくとも1つのデータ格納システム揮発性および不揮発性メモリならびに/または格納要素を含むと、少なくとも1つの入力デバイスまたはポートと、少なくとも1つの出力デバイスまたはポートとを含む。ソフトウェアは、例えば、データフローグラフの設計および構成に関連する他のサービスを提供する大規模なプログラムの1つまたは複数のモジュールを形成することができる。グラフのノードおよび要素は、コンピュータ可読媒体に格納されたデータ構造、または、データリポジトリに格納されたデータモデルに適合する他の組織化されたデータとして実装することができる。ソフトウェアは、汎用もしくは特殊用途のプログラム可能なコンピュータによる読み取りが可能なCD-ROMなどの記憶媒体上で提供されても、ネットワークの通信媒体上で、ソフトウェアが実行されるコンピュータの記憶媒体に送達されてもよい伝播信号で符号化される。機能のすべては、特殊用途のコンピュータ上か、または、コプロセッサなどの特殊用途のハードウェアを使用して実行することができる。ソフトウェアは、ソフトウェアによって指定されるコンピューテーションの異なる部分は異なるコンピュータによって実行される分散様式で実施することができる。それぞれのそのようなコンピュータプログラムは、好ましくは、汎用もしくは特殊用途のプログラム可能なコンピュータによる読み取りが可能な記憶媒体もしくはデバイス例えば、ソリッドステートメモリもしくは媒体、または、磁気もしくは光媒体上に格納されるか、または、同記憶媒体もしくはデバイスにダウンロードされるが、それは、コンピュータシステムで記憶媒体もしくはデバイスを読み取り、本明細書に記載される手順を実行する際にコンピュータを構成および動作するためである。また、本発明のシステムは、コンピュータ可読記憶媒体として実装され、コンピュータプログラムを用いて構成されるものと考慮され得、そのように構成された記憶媒体は、特定の事前に定義された様式でコンピュータシステムを動作させ、本明細書に記載される機能を実行する。本発明の多くの実施形態について説明してきた。それにもかかわらず、本発明の精神および範囲から逸脱することなく、さまざまな変更を行うことができることが理解されよう。例えば、上記で説明された工程のいくつかは、順番に依存しないものであり得、したがって、説明されている順番とは異なる順番で実行することができる。前述の説明は、例示を意図するものであり、本発明の範囲を限定するものではなく、本発明の範囲は、添付の特許請求の範囲によって定義されることを理解されたい。例えば、上記で説明された多くの機能工程は、処理全体に実質的に影響を与えることなく、異なる順番で実行することができる。他の実施形態は、以下の特許請求の範囲内にある。"