データストリームを処理するためのコンピュータ実装方法であって、a処理すべき前記データストリームのうち複数の属性を含む第1のタプルを受信するステップと、b1つ以上のコンピュータプロセッサの動作によって、少なくとも前記受信した第1のタプル内の前記複数の属性のうち1つ以上の属性に部分的に基づき、前記データストリームの前記受信した第1のタプルを処理するための推定処理時間を計算するステップと、c前記計算した推定処理時間が所定のしきい値時間を超えないことを決定する場合、基本実行パスを使用して前記データストリームの前記受信した第1のタプルを第1の態様で処理するステップと、d前記計算した推定処理時間が前記所定のしきい値時間を超えることを決定する場合、前記受信した第1のタプルを前記第1の態様で処理するのに比べて前記基本実行パス内の処理遅延が減少するように、前記データストリームの前記受信した第1のタプルを第2の態様で処理するステップを有する、方法。前記計算した推定処理時間が前記所定のしきい値時間を超えることを決定する場合、前記データストリームの前記受信した第1のタプルを廃棄するステップをさらに有する、請求項1記載の方法。前記計算した推定処理時間が前記所定のしきい値時間を超えることを決定する場合、アイドル資源が使用可能になるときに処理するように、前記データストリームの前記受信した第1のタプルを格納するステップと、前記基本実行パス内の少なくとも1つのアイドル資源が使用可能であることを決定する場合、前記基本実行パスを使用して前記格納した第1のタプルを処理するステップをさらに有する、請求項1記載の方法。前記計算した推定処理時間が前記所定のしきい値時間を超えることを決定する場合、代替実行パスを使用して前記データストリームの前記受信した第1のタプルを処理するステップをさらに有する、請求項1記載の方法。前記計算した推定処理時間が前記所定のしきい値時間を超えることを決定する場合、代替実行パスを使用して前記データストリームの全ての後続タプルを処理するステップをさらに有する、請求項4記載の方法。前記ステップcが、c1前記基本実行パスを使用して前記データストリームの前記受信した第1のタプルを処理するための実際の実行時間を計算するステップと、c2前記実際の実行時間及び前記処理した第1のタプルの識別子を履歴データに格納するステップを有する、請求項1記載の方法。前記ステップbが、他のタプルを処理するステップから収集した履歴データに基づく、請求項1記載の方法。コンピュータプロセッサと、データストリームを処理するためのプログラムを保持するメモリを備えるシステムであって、前記プログラムが、前記コンピュータプロセッサに、a処理すべき前記データストリームのうち複数の属性を含む第1のタプルを受信するステップと、b少なくとも前記受信した第1のタプル内の前記複数の属性のうち1つ以上の属性に部分的に基づき、前記データストリームの前記受信した第1のタプルを処理するための推定処理時間を計算するステップと、c前記計算した推定処理時間が所定のしきい値時間を超えないことを決定する場合、基本実行パスを使用して前記データストリームの前記受信した第1のタプルを第1の態様で処理するステップと、d前記計算した推定処理時間が前記所定のしきい値時間を超えることを決定する場合、前記受信した第1のタプルを前記第1の態様で処理するのに比べて前記基本実行パス内の処理遅延が減少するように、前記データストリームの前記受信した第1のタプルを第2の態様で処理するステップを実行させる、システム。前記プログラムが、前記コンピュータプロセッサに、前記計算した推定処理時間が前記所定のしきい値時間を超えることを決定する場合、前記データストリームの前記受信した第1のタプルを廃棄するステップをさらに実行させる、請求項8記載のシステム。前記プログラムが、前記コンピュータプロセッサに、前記計算した推定処理時間が前記所定のしきい値時間を超えることを決定する場合、アイドル資源が使用可能になるときに処理するように、前記データストリームの前記受信した第1のタプルを格納するステップと、前記基本実行パス内の少なくとも1つのアイドル資源が使用可能であることを決定する場合、前記基本実行パスを使用して前記格納した第1のタプルを処理するステップをさらに実行させる、請求項8記載のシステム。前記プログラムが、前記コンピュータプロセッサに、前記計算した推定処理時間が前記所定のしきい値時間を超えることを決定する場合、代替実行パスを使用して前記データストリームの前記受信した第1のタプルを処理するステップをさらに実行させる、請求項8記載のシステム。1つ以上の計算ノード上で動作する複数の処理要素をさらに備え、前記複数の処理要素内の1つ以上の処理要素が、指定した実行パスに従って前記データストリームの1つ以上のタプルをパイプライン式に処理するように構成され、前記複数の処理要素内の各処理要素が、前記データストリームの1つ以上のタプルについて1つ以上の動作を実行することにより当該タプルを処理するように構成される、請求項8記載のシステム。前記ステップcが、c1前記基本実行パスを使用して前記データストリームの前記受信した第1のタプルを処理するための実際の実行時間を計算するステップと、c2前記実際の実行時間及び前記処理した第1のタプルの識別子を履歴データに格納するステップを有する、請求項8記載のシステム。前記ステップbが、他のタプルを処理するステップから収集した履歴データに基づく、請求項8記載のシステム。データストリームを処理するためのコンピュータプログラムであって、コンピュータに、a処理すべき前記データストリームのうち複数の属性を含む第1のタプルを受信するステップと、b前記受信した第1のタプル内の前記複数の属性のうち少なくとも1つ以上の属性に基づき、前記データストリームの前記受信した第1のタプルを処理するための推定処理時間を計算するステップと、c前記計算した推定処理時間がしきい値時間を超えないことを決定する場合、基本実行パスを使用して前記データストリームの前記受信した第1のタプルを第1の態様で処理するステップと、d前記計算した推定処理時間が前記しきい値時間を超えることを決定する場合、前記受信した第1のタプルを前記第1の態様で処理するのに比べて前記基本実行パス内の処理遅延が減少するように、前記データストリームの前記受信した第1のタプルを第2の態様で処理するステップを実行させる、コンピュータプログラム。前記コンピュータに、前記基本実行パス内の少なくとも1つの処理要素の現在のワークロードをモニタするステップと、前記現在のワークロードに基づき前記しきい値時間を調整するステップをさらに実行させる、請求項15記載のコンピュータプログラム。前記調整するステップが、前記現在のワークロードが第1のワークロード値を超えることを決定する場合、前記基本実行パス内の前記少なくとも1つの処理要素の全体的なワークロードを削減するように前記しきい値時間を減少させるステップと、前記現在のワークロードが第2のワークロード値未満であることを決定する場合、前記基本実行パス内の前記少なくとも1つの処理要素の全体的なワークロードを増大するように前記しきい値時間を増加させるステップを有する、請求項16記載のコンピュータプログラム。データストリームを処理するためのコンピュータ実装方法であって、a処理すべき前記データストリームのうち複数の属性を含む第1のタプルを受信するステップと、b1つ以上のコンピュータプロセッサの動作によって、少なくとも前記受信した第1のタプルに関連するメタデータに部分的に基づき、前記データストリームの前記受信した第1のタプルを処理するための推定処理時間を計算するステップと、c前記計算した推定処理時間が所定のしきい値時間を超えないことを決定する場合、基本実行パスを使用して前記データストリームの前記受信した第1のタプルを第1の態様で処理するステップと、d前記計算した推定処理時間が前記所定のしきい値時間を超えることを決定する場合、前記基本実行パス内の1つ以上の処理要素に対する遅延を最小化するように、前記データストリームの前記受信した第1のタプルを第2の態様で処理するステップを有する、方法。前記データストリームの前記受信した第1のタプルを記述するメタデータを収集するステップをさらに有する、請求項18記載の方法。前記メタデータが、i前記複数の属性内の属性の数、ii前記複数の属性内の1つ以上の属性の長さ、及びiii前記複数の属性内の1つ以上の属性のタイプのうち少なくとも1つを含む、請求項19記載の方法。しかし、このモデルは、特定のリアルタイムアプリケーションの性能要件を満たすことができない。例えば、データベースシステムが着信データを受信し且つ格納することができるレートは、処理可能又は評価可能なデータの量を制限することがある。その結果、大量のデータをリアルタイムに処理すべきデータベースアプリケーションの能力を制限することがある。本発明の実施形態は、データストリームを処理するためのコンピュータ実装方法、システム及びコンピュータプログラムを提供する。当該方法、システム及びコンピュータプログラムは、処理すべき前記データストリームのうち複数の属性を含む第1のタプルを受信することを含む。また、当該方法、システム及びコンピュータプログラムは、少なくとも前記受信した第1のタプル内の前記複数の属性のうち1つ以上の属性に部分的に基づき、前記データストリームの前記受信した第1のタプルを処理するための推定処理時間を計算することを含む。さらに、当該方法、システム及びコンピュータプログラムは、前記計算した推定処理時間が所定のしきい値時間を超えないことを決定する場合、基本実行パスprimaryexecutionpathを使用して前記データストリームの前記受信した第1のタプルを第1の態様で処理することを含む。さらに、当該方法、システム及びコンピュータプログラムは、前記計算した推定処理時間が前記所定のしきい値時間を超えることを決定する場合、前記受信した第1のタプルを前記第1の態様で処理するのに比べて前記基本実行パス内の処理遅延を削減するように、前記データストリームの前記受信した第1のタプルを第2の態様で処理することを含む。本発明の代替実施形態は、データストリームを処理するためのコンピュータ実装方法、システム及びコンピュータプログラムを提供する。当該方法、システム及びコンピュータプログラムは、処理すべき前記データストリームのうち複数の属性を含む第1のタプルを受信することを含む。また、当該方法、システム及びコンピュータプログラムは、i前記受信した第1のタプル内の前記複数の属性のうち1つ以上の属性、及びii前記受信した第1のタプルに関連するメタデータのうち少なくとも1つに部分的に基づき、前記データストリームの前記受信した第1のタプルを処理するための推定処理時間を計算することを含む。さらに、当該方法、システム及びコンピュータプログラムは、前記計算した推定処理時間が所定のしきい値時間を超えないことを決定する場合、基本実行パスを使用して前記データストリームの前記受信した第1のタプルを第1の態様で処理することを含む。さらに、当該方法、システム及びコンピュータプログラムは、前記計算した推定処理時間が前記所定のしきい値時間を超えることを決定する場合、前記受信した第1のタプルを前記第1の態様で処理するのに比べて前記基本実行パス内の処理遅延を削減するように、前記データストリームの前記受信した第1のタプルを第2の態様で処理することを含む。本発明は、しきい値時間内に処理できそうもない着信ストリームデータを識別し且つ当該着信ストリームデータを基本実行パスから除去することにより、ストリームアプリケーション内のボトルネックを防止することができるという効果を奏する。ストリームベースのコンピューティング及びストリームベースのデータベースコンピューティングは、データベースシステム用の開発途上の技術として出現している。現に使用可能な製品は、ストリーミングデータがデータベースファイルに到達する前に、当該ストリーミングデータを処理し且つ照会するためのアプリケーションをユーザが作成することを可能にする。この新たな技術を使用すると、ユーザは、インバウンドのデータレコードが未完了inflightである間に、これらのデータレコードに適用すべき処理論理を指定することができ、その結果を非常に短い時間しばしばミリ秒の間に得ることができる。このタイプの処理を使用してアプリケーションを構築すると、新しいプログラミングパラダイムが開かれて、多種多様な革新的アプリケーション、システム及びプロセスを開発することが可能になるばかりか、アプリケーションプログラマ及びデータベース開発者にとって新たな挑戦を提示する。ストリームアプリケーションでは、各オペレータは、データが1つの処理要素から例えば、TCP/IPソケットを介して次の処理要素にフローするように、互いに他のオペレータに接続される。スケーラビリティに到達するためには、多数の小さな実行可能コード部分複数のオペレータを作成することにより、アプリケーションを複数のノードにわたって分散させるとともに、複数のノード上に複数の処理要素を複製し且つそれらの間のロードバランシングが行われる。ストリームアプリケーション内の複数の処理要素及び複数のオペレータを互いに融合化fuseすることにより、より大きな処理要素を形成することができる。そのようにすると、複数の処理要素が共通の処理空間を共有することが可能になり、その結果、例えば、TCP/IPソケットを使用するプロセス間通信技術を使用する場合に比べて、遙かに速いオペレータ間の通信を行うことができる。さらに、複数の処理要素は、ストリームアプリケーションを通してのデータのフローを表すオペレータグラフに動的に挿入するか又は当該オペレータグラフから動的に除去することができ、またこれらの処理要素は、ランタイム中にストリームアプリケーションに融合化するか又は当該ストリームアプリケーションから融合化解除unfuseすることができる。ストリームアプリケーションの1つの利点は、ユーザが、当該アプリケーションを通してのデータの処理フローの粒度を制御できるということである。言いかえれば、ユーザは、処理要素ごとに着信データについて種々の動作を実行する特定のオペレータを指定することができ、また、これらのオペレータ及びこれらのオペレータが実行される順序を修正することにより、ストリームアプリケーションを動的に変更することができる。さらに、ストリームアプリケーションは、処理中の任意のボトルネックを制限しつつ、大量のデータを扱うことができる。それにも拘わらず、多くのケースでは、依然としてボトルネックが発生して、ストリームアプリケーションの複数の部分を低下させるであろう。さらに、追加のデータが受信される場合、かかるボトルネックによって惹起される問題は、継続的に増大することがある。このため、着信データをできるだけリアルタイムに近い態様で処理しなければならないストリームアプリケーションについては、潜在的な任意のボトルネックを回避しなければならない。というのは、かかるボトルネックは、アプリケーションの性能及び着信データをリアルタイムに処理するというアプリケーションの能力に厳しい影響を及ぼすことがあるからである。本発明の実施形態は、しきい値時間内に処理できそうもない着信ストリームデータを識別し且つ当該着信ストリームデータを基本実行パスから除去するための技術を提供する。特に、本発明の実施形態は、データストリームの受信タプルreceivedtuple用の推定処理時間を計算し且つ当該計算した推定処理時間に基づき、当該受信タプルを処理すべきか否かを決定するための技術を提供する。例えば、所与の処理要素が一のタプルを処理するための平均処理時間が5ミリ秒であると仮定する。もし、本発明の実施形態が、特定のタプルを受信し且つ所与の処理要素が当該特定のタプルを処理するのに約5分を要するであろうということを計算すれば、本発明の実施形態は、所与の処理要素がこのタプルを処理するのを禁止することができる。このため、本発明の実施形態は、ストリームアプリケーション内のボトルネックを防止することができる。さらに、特定の実施形態では、基本実行パスの外部で、他の資源を使用して当該特定のタプルを処理することができる。以下、本発明の実施形態を参照して説明する。しかし、本発明は、開示された特定の実施形態に制限されないことを理解されたい。むしろ、以下で説明する特徴及び要素の任意の組み合わせは、互いに異なる実施形態に関係するか否かに拘わらず、本発明を実装し且つ実施するように意図される。さらに、本発明の実施形態は、他の可能な解決手段及び/又は従来技術に比べて優れた効果を奏することができるが、所与の実施形態が特定の効果を奏するか否かは、本発明を制限するものではない。従って、以下で説明する本発明の側面、特徴、実施形態及び利点は、単に例示であるに過ぎず、請求項において明示的に記載されている場合を除き、請求項に係る発明を制限する要素であると見なすべきではない。同様に、本発明という用語が使用されているとしても、このことは、本明細書に開示した任意の発明的主題の一般化として解すべきではなく、請求項において明示的に記載されている場合を除き、請求項に係る発明を制限する要素であると見なすべきではない。本発明の側面は、システム、方法又はコンピュータプログラムとして具体化することができる。従って、本発明の側面は、完全にハードウェアの実施形態、完全にソフトウェアの実施形態ファームウェア、常駐ソフトウェア、マイクロコード等を含む又はソフトウェア及びハードウェア要素を組み合わせた実施形態の形式を取ることができ、これらの全てを一般に回路、モジュール又はシステムと称することができる。さらに、本発明の側面は、コンピュータ可読プログラムコードを1つ以上のコンピュータ可読媒体内に具体化した、コンピュータプログラムの形式を取ることができる。1つ以上のコンピュータ可読媒体の任意の組み合わせを使用することができる。コンピュータ可読媒体は、コンピュータ可読信号媒体又はコンピュータ可読ストレージ媒体から成る。例えば、コンピュータ可読ストレージ媒体は、電子、磁気、光学、電磁気、赤外線、半導体式のシステム若しくは装置又はこれらの任意の適切な組み合わせ等から成る。コンピュータ可読ストレージ媒体の特定の例は、1つ以上の線を有する電気接続、可搬式のコンピュータディスケット、ハードディスク、ランダムアクセスメモリRAM、読み取り専用メモリROM、消去可能プログラマブル読み取り専用メモリEPROM又はフラッシュメモリ、光ファイバ、可搬式のコンパクトディスク読み取り専用メモリCD-ROM、光ストレージ装置、磁気ストレージ装置又はこれらの任意の適切な組み合わせ等から成る。本明細書の文脈では、コンピュータ可読ストレージ媒体は、命令実行システム等に関連して又はこれらによって使用するためのプログラムを保持し又は格納することができる、任意の有形的媒体から成る。コンピュータ可読信号媒体は、伝搬されるデータ信号の形式を有することもあるが、その場合には、ベースバンド内に又は搬送波の一部として、コンピュータ可読プログラムコードを具体化することができる。かかる伝搬される信号は、電磁気、光学、又はこれらの任意の適切な組み合わせ等を含む、種々の形式のうち任意の形式を取る。コンピュータ可読信号媒体は、コンピュータ可読ストレージ媒体ではなく、命令実行システム又は装置等に関連して又はこれらによって使用するためのプログラムを通信し、伝搬し、移送することができる、任意のコンピュータ可読媒体から成る。コンピュータ可読媒体上に具体化されたプログラムコードは、無線、有線、光ファイバケーブル、RF、又はこれらの任意の適切な組み合わせ等を含む、適切な任意の媒体を使用して伝送することができる。本発明の動作を実行するためのコンピュータプログラムコードは、Java登録商標、Smalltalk、C等のようなオブジェクト指向プログラミング言語及びCプログラミング言語又は同様のプログラミング言語のような通常の手続き的プログラミング言語を含む、1つ以上のプログラミング言語の任意の組み合わせで書くことができる。プログラムコードは、独立のソフトウェアパッケージとしてユーザコンピュータ上で完全に実行することができ、その一部をユーザコンピュータ上で且つ他の一部を遠隔コンピュータ上で実行することができ、或いは遠隔コンピュータ又はサーバ上で完全に実行することができる。後者のシナリオでは、遠隔コンピュータは、ローカルエリアネットワークLAN又は広域ネットワークWANを含む任意のタイプのネットワークを通してユーザコンピュータに接続することができ、或いはその接続を例えば、インターネットサービスプロバイダを使用するインターネットを通して外部コンピュータに行うことができる。以下では、本発明の実施形態に従った、方法、装置システム及びコンピュータプログラムのフローチャート又はブロック図を参照して、本発明の側面を説明する。フローチャート又はブロック図の各ブロック、複数ブロックの組み合わせは、コンピュータプログラム命令によって実装することができる。これらのコンピュータプログラム命令を、汎用コンピュータ、専用コンピュータ又は他のプログラム可能なデータ処理装置のプロセッサに提供すると、当該コンピュータ又は他のプログラム可能なデータ処理装置のプロセッサを介して実行される命令は、フローチャート又はブロック図のブロックで指定された機能/行為を実装するための手段を作成する。また、これらのコンピュータプログラム命令をコンピュータ可読媒体内に格納すると、当該コンピュータ可読媒体内に格納された命令が、フローチャート又はブロック図のブロックで指定された機能/行為を実装するための命令を含む製品を生産することを目的として、コンピュータ、他のプログラム可能なデータ処理装置又は他の装置に対し特定の態様で機能するように指示することができる。また、これらのコンピュータプログラム命令を、コンピュータ、他のプログラム可能なデータ処理装置又は他の装置にロードすると、当該コンピュータ、他のプログラム可能なデータ処理装置又は他の装置上で実行される諸命令が、フローチャート又はブロック図のブロックで指定された機能/行為を実装するためのプロセスを提供することを目的として、一のコンピュータ実装プロセスを生成するように当該コンピュータ、他のプログラム可能なデータ処理装置又は他の装置上で一連の動作ステップを実行させることができる。本発明の実施形態は、クラウドコンピューティングインフラストラクチャを通してエンドユーザに提供することができる。一般に、クラウドコンピューティングは、ネットワーク経由のサービスとしてスケーラブルなコンピューティング資源を提供することを意味する。より正式には、クラウドコンピューティングは、コンピューティング資源とその下部にある技術的アーキテクチャ例えば、サーバ、ストレージ、ネットワークの間の抽象化を提供するコンピューティング能力であって、最小限の管理努力又はサービスプロバイダとのやりとりで迅速にプロビジョン及び解放することができる、構成可能なコンピューティング資源の共有プールへの簡便で且つオンデマンドのネットワークアクセスを可能にするものと定義することができる。従って、クラウドコンピューティングは、仮想的なコンピューティング資源例えば、ストレージ、データ、アプリケーション、さらに完全な仮想化コンピューティングシステムを提供するために使用される下部の物理的なシステムには関係なく、ユーザがクラウド内のコンピューティング資源にアクセスすることを可能にする。一般に、クラウドコンピューティング資源は、従量課金制に基づいてユーザに提供され、ユーザには、実際に使用したコンピューティング資源例えば、ユーザが消費したストレージ空間の量又はユーザがインスタンス化した仮想化システムの数のみについて使用料金が課される。ユーザは、クラウド内に存在する任意の資源を、任意の時間に、しかもインターネット上の任意の場所からアクセスすることができる。本発明の文脈では、ユーザは、クラウド内で使用可能なアプリケーション又は関係するデータにアクセスすることができる。例えば、ストリームアプリケーションを作成するために使用される各ノードは、クラウドサービスプロバイダがホストする仮想計算機とすることができる。そのようにすると、ユーザは、クラウド例えば、インターネットに接続されたネットワークに接続済みの任意のコンピューティングシステムからこの情報にアクセスすることができる。図1及び図2は、本発明の一実施形態に従った、ストリームアプリケーションを実行するように構成されたコンピューティングインフラストラクチャ100を例示する。図示のように、コンピューティングインフラストラクチャ100は、管理システム105及び各々が通信ネットワーク120に接続されている複数の計算ノード1301-4を含む。また、管理システム105は、オペレータグラフ132及びストリームマネージャ134を含む。以下で詳述するように、オペレータグラフ132は、1つ以上のソース処理要素PEから開始して1つ以上のシンクPEに至る、ストリームアプリケーションを表す。一般に、本明細書では、ソースからシンクへのこのフローを実行パスと称する。一般に、データ要素は、ストリームアプリケーションのソースPEに流入し、当該PEによって処理される。典型的には、処理要素は、ストリームからデータ要素のN-タプルを受信するとともに、データ要素のN-タプルをストリームに出力する但し、当該ストリームが終了する箇所のシンクPEを除く。もちろん、一の処理要素によって受信されるN-タプルは、下流に送信されるN-タプルと同じである必要がない。さらに、これらの処理要素は、N-タプルとは異なる形式で、データを受信又は出力するように構成することができる例えば、これらの処理要素は、XMLドキュメントとしてマークアップされたデータを交換することができる。さらに、各処理要素は、受信タプルについて任意の形式のデータ処理機能を実行するように構成することができる。かかるデータ処理機能は、例えば、データベーステーブルへの書き込み又はデータの結合、分割、読み取り等の他のデータベース動作に加えて、他のデータ分析機能又は動作を実行することを含む。ストリームマネージャ134は、計算ノード1301-4上で走行中のストリームアプリケーションをモニタし且つオペレータグラフ134の構造を変更するように構成することができる。ストリームマネージャ134は、例えば、コンピューティングインフラストラクチャ100内の複数の計算ノード130の処理ロードを管理するために、1つの計算ノード130からの処理要素PEを他の計算ノード130に移動させることができる。さらに、ストリームマネージャ134は、計算ノード1301-4上で走行中の処理要素又はこれらの処理要素に流入するデータタプルを挿入し、移動し、融合化し、融合化解除し、又は他の態様で修正することにより、ストリームアプリケーションを制御することができる。本発明の一実施形態では、管理システム105は、複数のオペレータグラフ132を維持することがある。かかる実施形態では、1つのオペレータグラフ132は、一般又はデフォルト処理フローを表す基本のオペレータグラフとして指定され、他のオペレータグラフは、代替処理フローを表すことがある。図2は、計算ノード1301-4上で走行中の10個の処理要素PE1~PE10を含む、オペレータグラフを例示する。各処理要素は、それ自体のプロセスIDPID及びメモリ空間を有する独立的に走行するプロセスとして実行することができるが、PID及びメモリ空間を有する単一のプロセスとして走行するように複数の処理要素を融合化することもできる。2つ以上の処理要素が独立的に走行しているケースでは、ネットワークソケット例えば、TCP/IPソケットを使用してプロセス間通信を行うことができる。しかし、複数のプロセスが互いに融合化される場合は、融合化した諸処理要素は、複数の処理要素及び各処理要素内の複数のオペレータ間でN-タプル又は他のデータを引き渡すために、より高速の通信技術を使用することができる。図示のように、オペレータグラフ132は、ソース135で開始し処理要素PE1に流入する、シンク1401-2で終了する処理要素PE6及びPE10から流出する。計算ノード1301は、処理要素PE1~PE3を含む。ソース135は、処理要素PE1に流入し、処理要素PE1が出力するタプルは、PE2及びPE3が受信する。例えば、PE1は、一のタプル内で受信したデータ要素を分割し、幾つかのデータ要素をPE2に引き渡すとともに、他のデータ要素をPE3に引き渡すことができる。PE2に流入するデータは、PE2内に保持されるオペレータによって処理され、その後、結果的なタプルは、計算ノード1302上のPE4に出力される。同様に、PE4が出力するデータタプルは、シンクPE61401に流入する。同様に、PE3からPE5に流出するデータタプルも、PE61401に到達する。従って、PE6は、この例示的なオペレータグラフのシンクであることに加えて、PE4及びPE5からの受信タプルを組み合わせて、結合動作を実行するように構成することができる。また、この例示的なオペレータグラフは、PE3から計算ノード1303上のPE7に流出するデータタプルを示しており、PE8に流入するデータタプルがPE7にループバックすることも示している。PE8が出力したデータタプルは、計算ノード1304上のPE9に流入し、PE9は、シンクPE101402が処理すべきタプルを出力する。図3は、本発明の一実施形態に従った、図1及び図2の計算ノード130をより詳細に示す。図示のように、計算ノード130は、中央演算処理装置CPU205、ネットワークインタフェース215、相互接続220、メモリ225及びストレージ230を含む。また、計算ノード130は、I/O装置212例えば、キーボード、ディスプレイ及びマウスを接続するために使用されるI/O装置インタフェース210を含む。CPU205は、メモリ225内に格納したプログラミング命令を検索し且つこれを実行する。同様に、CPU205は、アプリケーションデータをメモリ225内に格納し且つこれをメモリ225から検索する。相互接続220は、プログラミング命令及びアプリケーションデータを、CPU205、I/O装置インタフェース210、ストレージ230、ネットワークインタフェース215及びメモリ225の間で送信するために使用される。CPU205は、単一のCPU、複数のCPU、複数の処理コアを有する単一のCPU等を表す。また、メモリ225は、一般にランダムアクセスメモリを表す。ストレージ230は、例えば、ハードディスクドライブ、ソリッドステート装置SSD又はフラッシュメモリストレージドライブから構成され、不揮発性データを格納することができる。この例では、メモリ225は、複数の処理要素PE235、推定処理時間EPTコンポーネント245及びストリーム接続データ255を含む。各PE235は、オペレータ240の集合を含む。前述のように、各オペレータ240は、一の処理要素例えば、PE235に流入するデータを処理し且つ当該PE内の他のオペレータ240及びストリームアプリケーション内の他のPEにデータを出力するように構成された、実行可能なコードの小さなチャンクを提供することができる。これらのPEは、同じ計算ノード上にあるか、又はデータ通信ネットワーク120を介してアクセス可能な他の計算ノード上にある。ストリーム接続データ255は、計算ノード130上のPE間の接続例えば、2つの別個のPE235間のTCP/IPソケット接続を表すとともに、ストリームアプリケーション内の上流及び下流のPEを有する他の計算ノード130への接続例えば、TCP/IPソケット又は他のプロセス間データ通信機構を介する接続を表す。バッファ化ストリームデータ260は、上流の処理要素又はストリームアプリケーションのデータソースから計算ノード130に流入するデータ用のストレージ空間を表す。例えば、バッファ化ストリームデータ260は、1つのPE235によって処理されることを待機中のデータタプルを含むことができる。また、バッファ化ストリームデータ260は、PE235によって実行されたデータ処理の結果を格納することができる。これらの結果は、下流の処理要素に送信されるであろう。EPTコンポーネント245は、1つのPE235上で処理すべきデータストリームの着信タプルを受信する。一般に、これらの受信タプルは、ソース135から着信するか、又はシステム100内の他のPEの出力である。所与のタプルを受信する際、EPTコンポーネント245は、所与のタプルを処理するための推定処理時間を計算する。一実施形態では、推定処理時間は、所与のタプル内に保持される1つ以上の属性に基づいて計算される。他の実施形態では、推定処理時間は、所与のタプルに関して収集したメタデータに基づいて計算される。さらに他の実施形態では、推定処理時間は、PE235を使用して処理した他のタプルから収集済みの履歴データに基づいて計算される。一旦推定処理時間を計算すると、EPTコンポーネント245は、推定処理時間が所定のしきい値時間を超えるか否かを決定する。もし、推定処理時間が所定のしきい値時間を超えなければ、EPTコンポーネント245は、所与のタプルを処理すべき適切なPE235に送信する。一方、推定処理時間が所定のしきい値時間を超えれば、EPTコンポーネント245は、所与のタプルを基本実行パスから除去する。本発明の一実施形態では、EPTコンポーネント245は、所与のタプルを処理すべき代替実行パスalternateexecutionpathに送信する。例えば、基本実行パスが、第1のPE235を使用して所与のタプルを処理すべきことを指定するものと仮定する。もし、推定処理時間が所定のしきい値時間を超えることを決定すれば、EPTコンポーネント245は、代替実行パスに従って、所与のタプルを第2のPE235に送付する。本発明の他の実施形態では、推定処理時間が所定のしきい値時間を超えることを決定する場合、EPTコンポーネント245は、所与のタプルの処理を遅延させる。例えば、EPTコンポーネント245は、基本実行パスが指定したPE235がアイドルになるまで、所与のタプルの処理を遅延させる。代替実施形態では、推定処理時間が所定のしきい値時間を超えることを決定する場合、EPTコンポーネント245は、データストリームの所与のタプルを廃棄する。かかる代替実施形態では、EPTコンポーネント245は、所与のタプルが廃棄されたことを指示するメッセージを生成する。補足的に説明すると、EPTコンポーネント245は、当該生成済みのメッセージをログファイル内に格納するか、又は例えば、モニタのようなI/O装置212を使用して当該メッセージをユーザに伝えることができる。図4は、本発明の一実施形態に従った、図1のサーバコンピューティングシステム105をより詳細に示す。図示のように、サーバコンピューティングシステム105は、CPU305、ネットワークインタフェース315、相互接続320、メモリ325及びストレージ330を含む。また、サーバコンピューティングシステム105は、I/O装置312例えば、キーボード、ディスプレイ及びマウスを当該サーバコンピューティングシステム105に接続するI/Oデバイスインタフェース310を含む。図3のCPU205のように、CPU305は、メモリ325及びストレージ330内に格納したプログラミング命令を検索し且つ実行するように構成される。同様に、CPU305は、アプリケーションデータをメモリ325及びストレージ330に格納し且つこれを検索するように構成される。相互接続320は、プログラム命令及びアプリケーションデータのようなデータを、CPU305、I/O装置インタフェース310、ストレージ330、ネットワークインタフェース305及びメモリ325の間で移動させるように構成される。CPU205のように、CPU305は、単一のCPU、複数のCPU、複数の処理コアを有する単一のCPU等を表す。メモリ325は、一般にランダムアクセスメモリを表す。ネットワークインタフェース315は、通信ネットワーク120を介してデータを送信するように構成される。ストレージ330は、単一のユニットとして図示されているが、これを固定ディスクドライブ、取り外し可能メモリカード、光ストレージ、SSD又はフラッシュメモリ装置のような固定式及び/又は取り外し可能ストレージ装置の組み合わせ、ネットワーク接続ストレージNAS、又はストレージエリアネットワークSAN装置とすることができる。図示のように、メモリ325は、ストリームマネージャ134を格納する。さらに、ストレージ330は、基本オペレータグラフ335及び代替オペレータグラフ340を含む。一般に、ストリームマネージャ134は、データストリームの一部として受信したタプルを、基本オペレータグラフ335に従って、処理すべきPE235に送付することができる。前述のように、本発明の一実施形態では、推定処理時間が所定のしきい値時間を超えることを決定する場合、EPTコンポーネント245は、所与のタプルを、代替実行パスに従って、第2のPE235に送付する。かかるシナリオでは、代替実行パスは、代替オペレータグラフ240によって指定することができる。さらに、EPTコンポーネント245は、ストリームマネージャ134に対し、データストリームについて受信された全ての後続タプルを代替オペレータグラフ340に従ってPE235に送付すべきことを通知するように構成することができる。図5は、本発明の一実施形態に従った、ストリームアプリケーション内の複数の計算ノードを例示する。図示のように、計算ノード1302は、3つの処理要素2352、2353及び2354PE1~PE3を含む。この例では、処理要素2352は、N-タプルデータストリームを受信し、N-タプルを処理要素2353及び2354PE2及びPE3に出力する。次に、処理要素PE2及びPE3は、N-タプルを計算ノード1303上の処理要素2355に出力する。この例では、PE135PE1は、属性<名前、所属部門、給与、性別>を含むタプルを受信する。PE1は、このN-タプルを取り、PE1が受信したタプル内の性別値に基づき、PE2に送信される1組のタプル及びPE3に送信される他の1組のタプルを生成する。次に、PE2及びPE3は、PE1から受信した各タプルについてデータベースへの書き込みを行い、そしてPE4に送信されるタプルの属性<名前、所属部門、給与>を生成する。一旦これを受信すると、PE4は、第三者のウェブサービスにアクセスして、ストリームアプリケーション内のさらなる下流に送信されるタプルを生成する。この例の説明を継続すると、図示のストリームアプリケーションは、受信タプルをできるだけリアルタイムに近い態様で処理することを必要とするものであることがある。そのため、ストリームアプリケーションは、複数のタプルをパイプライン式に処理することができる。本明細書では、パイプライン式処理は、第1の処理要素による処理の結果が次の処理要素によって処理され、当該次の処理要素による処理の結果が後続の処理要素によって処理され、以後同様の処理が実行されるという形式の任意の処理を意味する。従って、図5に示す例を使用すると、この処理がパイプライン化されていると云われる理由は、PE1による処理の結果が処理のためにPE2又はPE3の何れかに供給され、そしてPE2及びPE3の結果がさらなる処理のためにPE4に供給されるという点にある。この処理のパイプライン化のために、処理するのにより長い時間を要するデータの特定のタプルは、特定のタプルの処理を遅延させるだけでなく、受信した全ての後続タプルの処理も同様に遅延させることがある。例えば、一のタプルが平均して5ミリ秒ごとに受信され且つ例示したストリームアプリケーションが一のタプルを処理するのに平均して4ミリ秒を要すると仮定すれば、ストリームアプリケーションは、未処理タプルのバックログを有することなしに、受信タプルを処理することができるであろう。しかし、受信した特定のタプルを処理するのに5分を要するものとさらに仮定する。このことが生じ得るのは、例えば、特定のタプルが特定の属性を保持し、その処理が、第三者サービスにアクセスすることを必要とすることがあるからである。例えば、属性所属部門が値技術部を保持すれば、ストリームアプリケーションは、技術部特有の第三者の給与計算サービスにアクセスするように構成することができる。もし、ストリームアプリケーション及び第三者サービスの間の接続が現に問題を有していれば、特定のタプルの処理を完了するのに通常よりもかなり長い時間を要することがある例えば、4ミリ秒対5分。そのため、説明中の例では、特定のタプルの処理は、他のタプルの平均処理時間より遙かに長い時間を必要とするので、ストリームアプリケーションは、5分の処理時間中に受信した他の全てのタプルのバックログを有し、従ってこれらのタプルの処理が遅延されることになろう。さらに、属性所属部門の値技術部を保持する他のタプルが受信される場合、バックログ従って、遅延は、継続的に増大するであろう。本発明の実施形態は、属性プロファイリングに基づいて、処理するのに過度に長い時間を要すると予測される特定のランタイムデータを除去することができる。本発明の実施形態に従って、EPTコンポーネント245は、各受信タプルが処理される前に、当該各受信タプルをプロファイルする。このプロファイリングは、タプル内に保持される属性、当該属性の値、当該属性に関するメタデータ、他のタプルの処理から収集した履歴データなどを考慮に入れることができる。一旦プロファイルが生成されると、EPTコンポーネント245は、受信タプル用の推定処理時間を計算する。次に、EPTコンポーネント245は、推定処理時間が所定のしきい値時間より小さいか又はそれに等しいかを決定し、そうであれば、基本実行パスすなわち、受信タプルのための標準的な実行パスに従って、受信タプルを処理すべき適切な処理要素に送信する。しかし、推定処理時間が所定のしきい値時間を超えることを決定すれば、EPTコンポーネント245は、処理要素を使用して受信タプルを処理する動作を回避することができる。その代わりに、受信タプルは、代替実行パスを使用して処理することができる。本発明の他の実施形態では、受信タプルの処理は、後の時間例えば、処理要素がアイドルになるとき、又は接続がもはや問題を有しないときまで遅延させることができる。さらに他の実施形態では、受信タプルは単に廃棄して、処理しないようにすることができる。本発明の実施形態は、推定処理時間がしきい値時間を超える場合には基本実行パスを使用する受信タプルの処理を回避することによって、特定のタプルがストリームアプリケーション内にバックログを作成する状況を回避するのを支援する。さらに、本発明の実施形態は、特定のタプル内に保持されるデータがストリームアプリケーションにとって失われないように、特定のタプルの処理を遅延させるか又は再送付するように構成することができる。これらの利点がストリームアプリケーションに特に適切であるのは、受信データをその受信時にできるだけリアルタイムに近い態様で処理する必要がある場合である。さらに、本発明の実施形態は、所定のしきい値時間を使用するのではなく、1つ以上のファクタに基づき、しきい値時間を計算するように構成することができる。本発明の一実施形態では、EPTコンポーネント245は、システムのワークロード又は予測ワークロードに基づき、しきい値時間を計算する。例えば、ピーク処理時間帯の間は、システム資源は高いデマンドがあるので、EPTコンポーネント245は、しきい値時間を比較的短い時間にセットする。他の例として、オフピーク処理時間帯の間は、システム資源がアイドルであるか又は最大能力よりも低いレベルで動作しているので、EPTコンポーネント245は、しきい値時間を比較的長い時間にセットする。有利なことに、本発明の実施形態は、このようにして一種のロードバランシングを行うことができる。というのは、システムが重いワークロードの下で動作している場合は、処理時間の点で長い照会を制限することができるからである。図6は、本発明の一実施形態に従った、ランタイムデータの予測除去方法500をフローチャートの形式で例示する。図示のように、方法500はステップ520で開始し、そこでEPTコンポーネント245は、処理すべきタプルを受信する。一実施形態では、このタプルは、EPTコンポーネント245に直接に送信することができる。代替実施形態では、EPTコンポーネント245は、処理要素235がタプルを受信する前に、この処理要素235に送信されたタプルをインターセプトすることができる。一旦このタプルを受信すると、EPTコンポーネント245は、この受信タプル用のプロファイルを生成するステップ522。一般に、このプロファイルは、受信タプルに関係する情報を含む。例えば、このプロファイルは、どのような属性が受信タプル内に保持されているかという情報に加えて、これらの属性の値に関する情報を含むことができる。さらに、このプロファイルは、受信タプルに関するメタデータを含むことができる。典型的なメタデータは、受信タプル内に保持される属性の数、受信タプル内に保持される属性のサイズ、受信タプル内に保持される属性のタイプ、受信タプルが属するグループ等を含む。さらに、このプロファイルは、以前に処理したタプルについて収集した情報を含むことができる。一旦受信タプル用のプロファイルを生成すると、EPTコンポーネント245は、受信タプルを処理するための推定処理時間を計算するステップ524。EPTコンポーネント245は、受信タプル用の生成済みプロファイルに基づき、この決定を行う。例えば、EPTコンポーネント245は、受信タプルが属性所属部門の値販売部を含むという理由で、このタプルを処理するのに約15ミリ秒を要するだろうということを決定する。一旦推定処理時間を計算すると、EPTコンポーネント245は、推定処理時間を所定のしきい値時間と比較するステップ526。もし、推定処理時間がしきい値時間より大きいことを決定すれば、EPTコンポーネント245は、受信タプルを廃棄するステップ530。次に、EPTコンポーネント245は、廃棄タプルに関する情報をログするステップ532。一実施形態では、EPTコンポーネント245は、受信タプル内に保持される属性の値もログする。そのようにすると、受信タプルを後の時点で処理することができる。代替実施形態では、EPTコンポーネント245は、これに代えて、受信タプルを処理すべき代替実行パスに送付することができる。さらに、EPTコンポーネント245は、受信タプルが属するデータストリームから受信される全ての後続タプルを代替実行パスに送付するように構成することができる。一方、推定処理時間がしきい値時間よりも大きくないことを決定すれば、EPTコンポーネント245は、受信タプルを基本実行パスに従った適切な処理要素に送信し、そこで受信タプルが処理されるステップ528。一旦受信タプルが処理されるか、又は廃棄タプルに関する情報をログすると、EPTコンポーネント245は、処理すべき他のタプルが存在するか否かを決定するステップ534。そうであれば、方法500はステップ520で再び開始し、そこでEPTコンポーネント245は、処理すべき次のタプルを受信する。さもなければ、方法500は終了する。方法500を使用することの1つの利点は、基本実行パスを使用すると相当な遅延を引き起こしそうなタプルの処理を、ストリームアプリケーションが回避できるということにある。そのため、方法500は、しきい値時間内に処理が完了すると予測されるタプルだけを処理することによって、ボトルネック効果を引き起こし且つストリームアプリケーション内に処理すべきタプルのバックログを作成しそうな任意のタプルの処理を回避することを支援する。さらに、本発明の実施形態は、その処理時間がしきい値時間を超えそうなタプルの処理を遅延させるか、又は代替実行パスを使用してこれらのタプルを処理するように構成することができる。そのため、これらのタプル内に保持されるデータは失われないし、これらのタプルを処理することにより基本実行パスが遅延されることもないであろう。図7は、本発明の一実施形態に従った、タプルのプロファイル方法600をフローチャートの形式で例示する。図示のように、方法600はステップ620で開始し、そこでEPTコンポーネント245は、受信タプルに関するメタデータを計算する。前述のように、典型的なメタデータは、受信タプル内に保持される属性の数、受信タプル内に保持される属性のサイズ、受信タプル内に保持される属性のタイプ及び受信タプルが属するグループを含む。もちろん、これらの例は、説明の便宜上のものであるに過ぎず、受信タプルに関する他のメタデータも収集することもできる。一旦メタデータを計算すると、EPTコンポーネント245は、受信タプル内に保持される属性の値を分析するステップ622。例えば、EPTコンポーネント245は、受信タプルが属性所属部門の値技術部を保持することを決定する。次に、EPTコンポーネント245は、受信タプルに関係する履歴データを検索するステップ624。例えば、受信タプルが値技術部を有する属性所属部門を保持していれば、EPTコンポーネント245は、属性所属部門の値技術部を保持していた他のタプルの処理に関係する履歴データを検索する。一旦履歴データを検索すると、EPTコンポーネント245は、検索されたタプル用のプロファイルを作成するステップ626。受信タプル用のプロファイルを生成した後、EPTコンポーネント245は、生成されたプロファイルを使用して受信タプルの処理時間を推定することができる。例えば、EPTコンポーネント245は、特定のタプルが属性所属部門の値技術部を保持するという理由で、このタプルを処理するのに50ミリ秒を要するであろうということを推定する。他の例として、このプロファイルは、他の関係するタプルの処理に関する履歴情報を保持することができる。例えば、一のプロファイルは、属性所属部門の値技術部を保持する3つのタプルが、10ミリ秒、20ミリ秒及び30ミリ秒の処理時間でそれぞれ処理されたことを指示する情報を保持することがある。そのため、EPTコンポーネント245は、属性所属部門の値技術部を保持する一のタプルの推定処理時間が、以前の3つのレコード時間の平均となり、従って20ミリ秒になるであろうということを決定することができる。EPTコンポーネント245は、これら及び他のファクタを考慮することによって、受信タプル用の完全なプロファイルを生成し、これを使用して、受信タプル用の正確な推定処理時間を計算することができる。さらに、前述の例は、受信タプル内の単一の属性を分析することに注目しているが、本発明の実施形態は、受信タプル用の推定処理時間を計算する際に、受信タプル内の複数又は全ての属性に加えて、他の関係する情報をも調べることができる。図面のうちフローチャート及びブロック図は、本発明の種々の実施形態に従った、システム、方法及びコンピュータプログラムの可能な実装のアーキテクチャ、機能性及び動作を示す。この点に関連して、フローチャート又はブロック図内の各ブロックは、指定された論理機能を実装するための1つ以上の実行可能命令から成る、モジュール、セグメント又はコード部分を表すことがある点に留意されたい。また、幾つかの代替的実装では、ブロック内に表記した機能を図面に示した順序とは異なる順序で実施することができる点にも留意されたい。例えば、特定の機能性に依存して、連続的に示した2つのブロックを実質的に並列に実施したり、これらのブロックを反対の順序で実施することができる。さらに、ブロック図又はフローチャートの各ブロック及び複数ブロックの組み合わせは、指定された機能又は行為を実行する専用のハードウェアベースのシステム又は専用ハードウェア及びコンピュータ命令の組み合わせによって実装することができる点にも留意されたい。前述の説明は、本発明の実施形態に向けられているが、本発明の基本的な範囲から逸脱することなく、他の実施形態を考案することができる。本発明の範囲は、以下の請求項の記載によって決定される。