(57)【要約】【課題】コンピューティング環境における複数のコンポーネントに対するストリームの処理における負担を分散することによって、ストリーム処理はより容易なものとすることができる。【解決手段】  プログラム可能ユニットが、１つまたは複数のストリームを受領し、前記１つまたは複数のストリームのために実行されるべきオペレーションの決定と、これらのオペレーションをコンピューティング環境におけるいずれのコンポーネントが実行すべきであるかの決定を行う。これにより、処理および／または情報目的のためのコンピューティング環境における１つまたは複数のコンポーネントに向けて前記１つまた複数のストリームに関連するデータを送る。かかる手順により、各ストリームの粒子の多様性に応じて各コンポーネントへのストリームの送付先が判断されることとなり、この結果、コンピューティング環境全体におけるより効率的なストリームの分散処理を実現するものである。【選択図】      図１
2013513876.tif 000002
【特許請求の範囲】
【請求項１】
コンピューティング環境におけるストリーム処理を促進するコンピュータプログラムであって、前記コンピュータプログラム製品は、
処理回路によって読み取り可能であり、手順を処理回路に実行させる指示を記憶する記憶媒体を含むものであり、前記手順は、
プログラム可能ユニットによって、前記プログラム可能ユニットにより受領されるストリームの記述子を取得させる手順であって、前記プログラム可能ユニットは、前記コンピューティング環境における第一のコンポーネントによって少なくとも部分的にプログラムされる手順、
前記ストリームを、プログラム可能ユニットによって、受領させる手順、
前記プログラム可能ユニットによって、取得された記述子の類型に基づいて、前記ストリームの処理を行わせる手順であって、前記処理は、
前記ストリームに関連するデータを第一のコンポーネントに提供させる手順、
前記プログラム可能ユニットにおいて、前記ストリームのための一組のオペレーションを実行させる手順、および、
ストリームに関連する情報を、前記ストリームのための他の組のオペレーションを実行させるために、コンピューティング環境における第二のコンポーネントに送付させる手順、
のうちの少なくともいずれか１つを含む前記処理を行わせる手順、
を含む、前記コンピュータプログラム製品。
【請求項２】
前記取得がストリームのソースのうちの少なくともひとつから要約レコードの受領を含むものであって、前記要約レコードはストリームにおける特性を含むものである、請求項１に記載の前記コンピュータプログラム製品。
【請求項３】
前記第一のコンポーネントが前記プログラム可能ユニットと接続されたサーバであって、前記提供されるデータが前記要約レコードの前記サーバへの提供を含む、請求項２に記載の前記コンピュータプログラム製品。
【請求項４】
前記方法が、前記要約レコードの受領に応じた、前記サーバによるストリームデータ構造のアップデートをさらに含むものである、請求項３に記載の前記コンピュータプログラム製品。
【請求項５】
前記取得が第一のコンポーネントからのワークロード指令の受領を含むものであって、前記ワークロード指令が前記ストリームに関連する特性を記述するものである、請求項１に記載の前記コンピュータプログラム製品。
【請求項６】
前記情報が前記ストリームに関するオペレーションの実行の結果を含む、請求項１に記載の前記コンピュータプログラム製品。
【請求項７】
前記処理が、前記プログラム可能ユニットによる、前記プログラム可能ユニットによって実行される一組のオペレーションの決定、および前記第二のコンポーネントによって実行される別個のセットのオペレーションの決定をさらに含む、請求項１に記載の前記コンピュータプログラム製品。
【請求項８】
第一のコンポーネントによるプログラム可能ユニットのプログラミングの少なくとも一部分に前記決定が基づくものである、請求項７に記載の前記コンピュータプログラム製品。
【請求項９】
前記第二のコンポーネントが、前記プログラム可能ユニットと接続されたストリームクラスタのコンピューティングユニットである請求項７に記載の前記コンピュータプログラム製品。
【請求項１０】
コンピューティングユニットが、アクセラレータを含む請求項９に記載の前記コンピュータプログラム製品。
【請求項１１】
前記方法がさらに、第一のコンポーネントに対する前記ストリームの処理によるアウトプットの提供を含むものであり、前記アウトプットの提供が、前記プログラム可能ユニットおよび前記第二のコンポーネントのうちの少なくとも１つによって実行される請求項１に記載の前記コンピュータプログラム製品。
【請求項１２】
コンピューティング環境におけるストリーム処理を促進するコンピュータシステムであって、前記コンピュータシステムは、 
メモリー、および
前記メモリーとの通信を行うプロセッサーであって、前記コンピュータシステムが方法の実行を行うことができるものであり、前記プロセッサーは、
前記プログラム可能ユニットが受領するであろうストリームの記述を、プログラム可能ユニットによって取得することであって、前記プログラム可能ユニットは、前記コンピューティング環境における第一のコンポーネントによって少なくとも部分的にプログラムされていること、
前記ストリームを、プログラム可能ユニットによって受領すること、
前記記述の類型に基づき前記ストリームのプログラム可能ユニットによる処理することであって、前記処理が、
前記ストリームに関連するデータを第一のコンポーネントに提供すること、
プログラム可能ユニットにおいて、前記ストリームのための一組のオペレーションを実行すること、ならびに、
前記ストリームに関連する情報を、前記ストリームのための他の組のオペレーションを実行するために、コンピューティング環境における第二のコンポーネントに送付すること、
のうちの少なくともいずれか１つを含む前記処理すること、
を含む、前記コンピュータシステム。
【請求項１３】
前記取得が要約レコードをストリームのうちの少なくともひとつから受領するものであって、前記要約レコードはストリームにおける特性を含むものである、請求項１２に記載の前記コンピュータシステム。
【請求項１４】
前記取得が第一のコンポーネントからのワークロード指令の受領を含むものであって、前記ワークロード指令が前記ストリームに関連する特性を記述するものである、請求項１２に記載の前記コンピュータシステム。  
【請求項１５】
前記処理が、前記プログラム可能ユニットによる、前記プログラム可能ユニットによって実行される一組のオペレーションの決定、および前記第二のコンポーネントによって実行される別個のセットのオペレーションの決定をさらに含む、請求項１２に記載の前記コンピュータシステム。
【請求項１６】
第一のコンポーネントによるプログラム可能ユニットのプログラミングの少なくとも一部分に前記決定が基づくものである、請求項１５に記載の前記コンピュータシステム。
【請求項１７】
前記方法がさらに、第一のコンポーネントに対する前記ストリームの処理によるアウトプットの提供を含むものであり、前記アウトプットの提供が少なくとも１つの前記プログラム可能ユニットおよび前記第二のコンポーネントによって実行される請求項１２に記載の前記コンピュータシステム。
【請求項１８】
コンピューティング環境におけるストリーム処理を促進する方法であって、前記方法は、
プログラム可能ユニットによって、前記プログラム可能ユニットによって受領されるストリームの記述子を取得し、プログラム可能ユニットは前記コンピューティング環境における第一のコンポーネントによって、少なくとも部分的にプログラムするステップと、
前記ストリームを、プログラム可能ユニットによって、受領するステップと、
前記プログラム可能ユニットによって、取得された記述子の類型に基づいて、前記ストリームの処理を行うステップとを含むものであって、前記処理は、
ストリームに関連するデータを第一のコンポーネントに提供するステップ、
前記プログラム可能ユニットにおいて、前記ストリームのための一組のオペレーションを実行するステップ、および、
ストリームに関連する情報を、前記ストリームのための他の組のオペレーションを実行するために、コンピューティング環境における第二のコンポーネントに送付するステップ、
のうちの少なくともいずれか１つを含む前記処理であるステップ、
を含む、前記方法。
【請求項１９】
前記取得のステップが要約レコードをストリームのうちの少なくとも１つのソースから受領を含むものであって、前記要約レコードはストリームにおける特性を含むものである、請求項１８に記載の前記方法。
【請求項２０】
前記取得のステップが第一のコンポーネントからのワークロード指令の受領を含むものであって、前記ワークロード指令が前記ストリームに関連する特性を記述するものである、請求項１８に記載の前記方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はコンピューティング環境における処理の実施に関するものであり、また特にコンピューティング環境にストリーム処理の実施に関するものである。
【背景技術】
【０００２】
近年においては、サーバがストリームクラスタと接続されたストリーム処理環境が存在する。 前記ストリームクラスタは、前記サーバの処理能力を増大するために用いられる１つまたは複数のアクセラレータを含む。特にある機能が前記サーバによって実行される場合よりもより速い速度によってこれらの機能が実行されるように前記アクセラレータは最適化される。
【０００３】
より具体的には、前記サーバはストリームならびにストリームデータおよびその他の情報からの抽出(extracts)を受け取る。その後かかるデータ／情報は前記サーバから１つまたは複数のアクセラレータに処理のために送られる。前記アクセラレータが処理を完了したとき、アクセラレータはその結果を前記サーバに送付する。
【発明の概要】
【発明が解決しようとする課題】
【０００４】
このような環境の中では、前記サーバは、前記ストリームの受領、ストリームからのデータまたはその他の情報の抽出、前記アクセラレータへのデータ／情報の送付、および前記結果の受領を担当する。さらに、前記サーバは前記ストリームと関連するその他の処理を実行する。
【課題を解決するための手段】
【０００５】
かかるシステムの効率を改善するため、本発明の態様によれば、前記ストリーム処理は前記コンピューティング環境における多数のコンポーネントに分散される。すべての調整ステップを実行することは最早前記サーバが担当するものではない。
【０００６】
コンピューティング環境におけるストリーム処理を実施するためのコンピュータプログラムが導入されることにより、先行技術の有する欠点は克服されるとともに、付加的な利点がもたらされる。前記コンピュータプログラムは、プロセス回路により判読可能であり、ある方法をプロセス回路により実行するための実行指示を含む。
前記方法は、例えば、前記コンピューティング環境の第一コンポーネントによって、少なくとも部分的に、プログラムされた前記プログラム可能ユニットにより受領されるべき１つまたは複数のストリームの記述子を、プログラム可能ユニットによって取得することと、１つまたは複数のストリームを、前記プログラム可能ユニットによって、受領することと、ならびに、処理が、(1)第一のコンポーネントに１つまたは複数のストリームに関連するデータを提供すること、(2)前記プログラム可能ユニットにおいて１つまたは複数のストリームについて１つまたは複数の操作の組を行うこと、および、(3)１つまたは複数のストリームに対する１つまたは複数のオペレーションの他のセットを実行する前記コンピューティング環境の第二のコンポーネントに前記１つまたは複数のストリームに関連する情報を送付すること、の少なくとも１つを含むものである、取得された前記記述子のタイプに基づいて１つまたは複数のストリームを前記プログラム可能ユニットによって前記処理を行うことと、を含む。
【０００７】
本発明の１つまたは複数の態様に関連する方法およびシステムについてもまた本書面において説明され、請求項に記載されている。さらに、本発明の１つまたは複数の態様に関連するサービスについてもまた本書面において説明され、請求項に記載されている。
【０００８】
付加的な特徴と利点については本発明の技法を通じて認識される。本発明のその他の実施例および特質は本文において詳細に記述され、また請求項に記載された発明の一部分と考えられる。
【０００９】
１つまたは複数の本発明の態様は特に明示されており、また本明細書の末尾に記載される特許請求の範囲において一例として明確にクレームされている。本発明の前述ならびにその他の客体、特徴、および利点は  以下の添付された図面における詳細な説明により明らかにされる、
【図面の簡単な説明】
【００１０】
【図１】本発明の１つまたは複数の態様を組み込みかつ使用するための一例を記述している。
【図２Ａ】本発明の態様にしたがって用いられるストリームメタデータ構造の１つの実施例を記述している。
【図２Ｂ】本発明の態様にしたがって用いられるストリームコンポジットデータ構造の一例を記述している。
【図３Ａ】本発明の態様にしたがって用いられる要約レコードの一例を記述している。
【図３Ｂ】本発明の態様にしたがって用いられるワークロードストリーム処理指令のフォーマットの一例を記述している。
【図４】本発明の態様にしたがって用いられるインライン要約レコードに基づいてストリーム処理を実施するロジックの実施例を記述している。
【図５】本発明の態様にしたがって、ワークロード検出に基づいてストリーム処理を実施する実施例を記述している。
【図６】本発明の態様にしたがって、マルチグラニュラ抽出に基づいてストリーム処理を実施するロジックの実施例を記述している。
【図７】１つまたは複数の本発明の態様を包含するコンピュータプログラムの実施例を記述している。
【発明を実施するための形態】
【００１１】
本発明の態様にしたがって、ストリーム処理はハイブリッドコンピューティング環境またはその他の環境において実行される。ハイブリッドコンピューティング環境の一例においては、インテリジェントスイッチのような、プログラム可能ステアリングユニットが、たとえばサーバやストリームクラスタなどの、コンピューティング環境におけるマルチプルコンポーネントと接続される。前記ストリームクラスタは、１つまたは複数のアクセラレータのような、１つまたは複数のコンピューティングユニットを含む。
【００１２】
前記スイッチ（または他のプログラム可能ステアリングユニット）は、１つまたは複数のソースからストリームを受領し、かつソースまたはサーバからの受領した記述子に基づいてそれらのストリームを処理する。１つまたは複数のストリームの受領に応じて、前記スイッチはいずれのストリームのオペレーションがハイブリッドコンピューティング環境における様々なコンポーネントによって実行されるべきであるかを決定する。たとえば、前記スイッチはある組の１つまたは複数のオペレーションが当該スイッチそれ自身によって実行されるべきであること、および、他の組の１つまたは複数のオペレーション（すなわちよりコンピュートインテンシブなオペレーション）がストリームクラスタによって実行されるべきであること、を決定することができる。さらに１つまたは複数の実施例においては、前記スイッチは、前記ストリームおよび／または前記ストリーム処理に応じて、記述的なデータを前記サーバに送る。
例えば前記スイッチは、ストリームに係る一連の、相違し、かつ込み入ったオペレーションのような、ストリームのバイトが受領されるとき、イントラストリームまたはインターストリーム・コンピュテーションを実行することができる。ストリームクラスタは、たとえば、１分目に受領したビデオ画像と複合画像処理アルゴリズムを使用する６５分目のビデオ監視ストリーム入力を比較することができる。
前記スイッチは入力されるストリームのラインスピードにて実行されるストリームオペレーションを実行する。かかるオペレーションは通常は適度なメモリーフットプリントを要求する。前記ストリームクラスタは、１つまたはいくつかの抽出されたストリームデータを必要とするコンピュートかつメモリー集約的なオペレーションを実行する。 
前記適切なストリームデータが、高い計算効率とパフォーマンスを実現するために、ストリームクラスタのコンピュートユニットに直接到達するように、前記スイッチはデータを操作することができる。前記ストリームクラスタは、ストリームデータを一定期間において取得する時系列データベースをホストすることができる。
前記サーバは、一定期間において統合されるストリーム、ストリームオペレーションおよびその他のストリームデータを要約し記録する低ストアおよびカラムストア・データベースであることに特色を有する。前記マルチグラニュラシステムの複合コンポーネントが、多様なグラニューラ（細かい、中庸および粗い粒)によるストリームデータにおいて実行できるようにすることが、高い効率およびパフォーマンスを可能とする。
【００１３】
本発明の１つまたは複数の態様を組み込み、かつ使用するコンピューティング環境の実施例は図１に記述される。この例においては、サーバ１００はストリームクラスタ１１０と結合される。サーバ１００は、例えば、相互に１つまたは複数のバス１０８を介して結合された、１つまたは複数のプロセッサ１０２、メモリー１０４、そして１つまたは複数の入出力(Ｉ／Ｏ) 装置またはインタフェース１０６を含む。
例として、サーバ１００はInternational Business Machines Corporation (IBM(R)), Armonk, NewYorkにより提供されるSystem p(R), System x(R)またはSystem z(R) サーバである。 IBM(R),System p(R), System x(R)およびSystem z(R)はInternational Business Machines Corporation, Armonk, New Yorkの登録商標である。本文にて使用されるその他の名称はInternational Business MachinesCorporationまたはその他の企業の登録商標、商標または製品名称にあたる場合があります。
【００１４】
他の実施例においては、サーバは１つまたは複数の区分または領域を含む。たとえば、サーバは、International Business MachinesCorporation, Armonk, New Yorkにより提供されるロジカルに区分されたz/Architecture(R)に基づくSystem z(R) サーバとなる。前記z/Architecture(R)は、本書面に全体として参照される"z/Architecture Principles ofOperation," IBM Publication No. SA22-7832-07, February 2009において記述さる。z/Architecture(R)はInternational Business MachinesCorporation, Armonk, New Yorkの登録商標である。
【００１５】
一例においては、ストリームクラスタ１１０は１つまたは複数のコンピューティングユニット１１２を含む。たとえば、前記コンピューティングユニットは、ブレードセンターまたはシャシーのブレードのような、ハードウェアアクセラレータとなる。
たとえばアクセラレータは、InternationalBusiness Machines Corporationにより提供される IBM(R) Cell BEブレード、IBM(R) Datapowerユニット、nVidia GPUsまたはSystem p(R) もしくはSystem x(R) ブレードである。
別途の例においては、コンピューティングユニットは、System x(R)、System p(R) または System z(R) サーバのようなサーバである。これら以外にも多数の例があり得る。
前記クラスタは、異なるアクセラレータ形式の組み合わせを含む、異なるコンピューティングユニットの組み合わせを含むことができる。
【００１６】
一例においては、サーバ１０はストリームクラスタ１１０と、たとえば、PCI エクスプレス、インフィニバンド、イーサネットのようなネットワークを介して通信する。
さらに、サーバ１００およびストリームクラスタ１１０は、スイッチ１２０のような、少なくとも１つのプログラム制御ステアリングユニットと、たとえばインフィニバンドまたはイーサネットネットワークなどを介して接続される。
スイッチ１２０は、たとえば、System x(R)、System p(R) または System z(R)サーバのようなサーバ、または例としてCisco Systems, Incもしくは International BusinessMachines Corporationにより提供されるスイッチ装置である。
前記スイッチはストリームを１つまたは複数のソースから受領し、そしてこれらのストリームを本書面にて記述したとおりに処理する。
【００１７】
本発明の一態様にしたがい、ストリーム処理を実施させるため、多様な情報を維持するために多数のデータ構造（すなわちテーブル）が用いられる。
これらのデータ構造は、たとえば、以下に説明されるいずれかのストリームメタデータテーブルおよびストリームコンポジットテーブルを含む。
【００１８】
一例においては、前記ストリームメタデータテーブルは前記サーバによる維持される。図２Ａに示されるように、ストリームメタデータテーブル２００は、たとえば、１つまたは複数のエントリを含み、また各エントリはストリームを識別するストリーム名２０２およびストリームの形式（たとえばvideo、audio、dataなど）を示すストリーム形式２０４を含む。
【００１９】
前記 ストリームメタデータテーブルに加えて、サーバは、たとえば図２Ｂに示されるような、ストリームコンポジットテーブルを維持する。
ストリームコンポジットテーブル２２０は、一緒に処理が行われるストリームのコンポジットの名称２２２、前記コンポジットのストリームのリスト２２４、そして前記リストされたストリームのために実行されるオペレーションを示すオペレーションリスト２２６を含む。
【００２０】
前記のデータ構造に加えて、１つまたは複数の例においては、処理は要約レコードおよび／または負荷ストリーム処理指令の使用により実施され、これらは以下に記述される。
【００２１】
図３Ａに示されているとおり、要約レコード３００は、たとえば、一緒に処理されるストリームのリストを含むストリームリスト３０２、ストリームの前記リストにおいて実行される前記オペレーションを特定するオペレータリスト３０４、前記リスト内の各フォーマットを示すストリームヘッダーフォマットリスト３０６、および前記リスト内の各ストリームの到達時を特定する到達時リスト３０８を含む。
前記到達時は相互に連関する。たとえば、要約レコードは  Ｓ１、Ｓ２；展開（extract）（Ｓ１＋Ｓ２、オブジェクト）；フォーマット１、フォーマット２；０、７、これらにおけるストリームはＳ１およびＳ２；オペレーションは展開および集約（aggregate）（＋）、これらにおけるＳ１およびＳ２は集約され、また特定されたオブジェクトはこれらから展開される；前記フォーマットはフォーマット１およびフォーマット２（たとえばＭＰＥＧ，ハイディフィニションなど）；ならびに０および７は相対的な到達時である。
各オペレーションの前記定義はストリームのタイプに依存する。たとえば、ストリームがビデオである場合には、＋が集合として定義されることができる、しかしながら前記ストリームがデータである場合には、＋が追加オペレーターとして定義されることができる。さらに他の多数の例が想定され得る。
【００２２】
ワークロードストリーム処理指令のフォーマットについての実施例の１つは図３Ｂにおいて記述される。ワークロード処理指令３５０は、１つまたは複数のストリームが送られるもととなるソースを示すストリームソースアドレス３５２、実行されるそれらのストリームの前記オペレーションを示すストリームオペレーターリスト３５４、 およびストリームからのアウトプットの望ましいフォーマットを記述するアウトプットフォーマットリスト３５６を含む。
【００２３】
指令を処理する前記要約レコードおよび／またはワークロードストリームは、本発明の態様に基づいて、処理が予定された入力されるストリームを記述するために用いられる。本文で記述される前記実施例において、記述的情報は、この情報を記述的情報において示されたストリームを処理するために使用するプログラム可能操作ユニットに、提供される。前記プログラム可能操作ユニットは、これらの実施例において、インテリジェンスを有する（たとえば、処理ロジックのコンピュートおよびパケットを行う）スイッチである。
【００２４】
１つの実施例においては、前記スイッチは、処理される前記ストリームに応じたサーバによりプログラムされる。前記ストリームの受領に応じて、前記スイッチが、ストリームの処理に関する一定の決定が行えるように、前記サーバは前記スイッチをプログラムする。前記スイッチは１つの例として提供されるものであるが、その他のコンポーネントがプログラム可能ステアリングユニットとして用いられてもよい。
【００２５】
前記スイッチは記述的情報および１つまたは複数のストリームを受領し、かつ前記記述的情報のフォーマットに基づいてストリームを処理する。たとえばストリームの処理は、要約レコードが前記ストリームまたは前記ワークロード指令を記述するのに用いられるのか否かに応じて行われる。
前記ストリームの受領に応じて、いずれのオペレーションが実行されるのか、ならびにいずれのコンピューティング環境におけるコンポーネント（たとえば、スイッチ、ストリームクラスタおよび／またはサーバ）がオペレーションを実行するのか、を前記スイッチは決定する。たとえば１つの典型的な実施例においては、前記クラスタはコンピュート集約型オペレーションを実行し（一例においては、前記システムにて定義された形にて）、かつ前記スイッチそれ自身はよりコンピュート集約型でないオペレーションを実行する。
これは、図４−６において更なる詳細が記述されているとおり、ストリーム処理が、コンピューティング環境における様々なコンポーネント間において、分散されることを可能とするものである。
【００２６】
具体的には、図４は、要約記録を受領するストリーミング処理の１つの実施例を記述する；図５はワークロード指令が用いられるストリーミング処理の１つの実施例を記述する；そして図６は、要約レコードまたはワークロード指令のいずれかが用いられる、また統計的インフォメーションがサーバに提供される、ストリーム処理の１つの実施例を記述する。これらの例が例示されているが、その他の多数の例も例示が可能である。さらに、本発明の趣旨から離れない形にて、これらの例には変更を加えることができる。
【００２７】
図４の例においては、上記で記述された以下のフィールド：Ｓ１、Ｓ２、展開（Ｓ１＋Ｓ２、オブジェクト）；フォーマット１、フォーマット２；０、７、の要約レコードが用いられる。前記の到達時間はほぼ同じである（すなわち、双方をバッファするための十分なメモリがある）、したがって前記サーバは、Ｓ１＋Ｓ２がスイッチにおいて実行されることを要求することができる。前記展開オペレーションはストリームクラスタにおいて実行する。しかしながら、もし到達時間が十分に離れていないのであれば、ストリームをバッファし、また他の作業を実行するスイッチ上における十分なメモリは存在しないであろうため、その結果、前記サーバは補助記憶として用いられ、また前記ストリームクラスタが、前記スイッチではなく、＋オペレーションを実行することになろう。その他の例もまた可能である。
【００２８】
図４にて述べるとおり、スッテプ４００において、要約レコードは前記スイッチと連携する１つまたは複数のソースから当該スイッチに到達する。ソースはビデオレコーダー、コンピュータ、金融市場データを供給する機器、またはその他のストリームを供給可能な機器でもよい。たとえば、要約レコードはこれらのソースまたはこれらのソースの使用者によって造られ得る。
【００２９】
前記要約レコードの受領に応じて、前記スイッチは定義されたバッファ量の上限まで要約レコードに続く全てのストリームバイトについてバッファを行う（ステップ４０２）。さらに、前記ソースがバイトを送ることを、たとえば一時停止メッセージによって、マルチグラニュラシステムがセットアップされるまで停止するよう要求することができる（ステップ４０４）。このセットアップは以下に記述されるステップを含む（すなわち、ステップ４０６−４１６）。
【００３０】
前記スイッチは前記要約レコードを前記サーバに誘導する（ステップ４０６）、ならびに前記サーバは前記ストリームメタデータおよびコンポジットテーブルをアップデートする（スッテプ４０８）。たとえば、前記要約レコードの受領に応じて、前記サーバはストリームメタデータへの入力を加える。たとえば、本文にて記述される特定の要約レコード例においては、入力はＳ１およびＳ２のテーブルに加えられる。さらに、前記サーバは前記要約レコードを、コンポジットの名称（e.g., Ｓ１＋Ｓ２）、当該コンポジット（e.g., Ｓ１＋Ｓ２）のためのストリームのリスト、およびオペレーションリスト（e.g., ＋. extract）を含む前記ストリームコンポジットテーブルへの入力を加えるために使用する。
【００３１】
加えて、前記要約レコードの受領に応じて、前記サーバは、前記スイッチおよび１つまたは複数のストリームクラスタのコンピューティングユニットにストリームのオペレーションを実行させるためにプログラムを行う（ステップ４１０）。特に、前記サーバは、要約レコードにおいて特定されたいずれのオペレーションが前記スイッチにより実行されるべきであるか、および、いずれのオペレーションが前記クラスタにより実行されるべきであるかを決定するために、定義されたルールまたはヒューリスティックな方法を用いる。前記サーバはその後に、処理を実行させるために、適切な処理ロジックを前記スイッチおよびクラスタに提供する。たとえば、前記サーバは、前記スイッチにより実行されるため、および、いずれのオペレーションが前記ストリームクラスタにおいてより効率的であるかを決定するために、オペレーションのリストを格納する。前記サーバは、前記スイッチおよびオペレーションに関連するストリームクラスタにおける処理コードを起動するために、識別子を提供する。前記サーバは、もしコードが前記スイッチまたはストリームクラスタに存在しない場合には、処理コードを前記スイッチまたはストリームクラスタに直接提供することもできる。
【００３２】
前記サーバから提供された情報に基づいて、前記スイッチは自身を調整し、そのバッファおよび処理ロジックをセットアップする（スッテプ４１２）。たとえば、これは、前記スイッチによって実行される前記ストリームおよびオペレーションのための適切なサイズに前記バッファのサイジングを行い、またいずれかのハードウェア（例、フィールドプルグラム可能ゲートアレイ）またはソフトウェア（前記スイッチのプロセッサーにおける）において前記サーバから受領した前記処理ロジックを配置を行うことを含む。さらに、前記ストリームクラスタ（すなわち、１つまたは複数の前記クラスタにおけるコンピューティングユニット）もまた自身を調整し、かつ、前記スイッチが行うようにそのバッファーおよび処理ロジックをセットアップする。
【００３３】
前記サーバはその後にストリームバイトを受け入れるために前記スイッチに指示を行うことができる。すなわち、ステップ４１６に示すように、前記マルチグラニュラシステムのセットアップが既に完了された状態にあるからである。これは、例えば、前記スイッチがメモリーリソースを使い果たし、かつフロー操作・メッセージを前記ストリームソースに送らなければならない場合に起こる。前記スイッチは１つまたは複数のソースからストリームバイトを受領し、かつ、もしあれば、いずれのオペレーションを実行するか、およびいずれのオペレーションが前記ストリームクラスタにより実行されるべきであるかを、前記サーバにより指示されたとおりに、決定する。
前記スイッチは、それが実行するであろう前記オペレーションを実行し、また前記ストリームクラスタがそのオペレーションを実行することができるように、前記ストリームまたは前記ストリームクラスタへ必要なデータを送付する（ステップ４２０）。例えば、前記スイッチはＳ１およびＳ２についての＋オペレーションを実行し、かつ、オブジェクト抽出を実行する（例えば、ビデオ監視ストリームからすべての自動車を抽出する場合など）、前記ストリームクラスタの１つまたは複数のコンピューティングユニットに対する当該結果を送付する。前記の得られたアウトプットはその後前記サーバに送付される（ステップ４２０）。一例においては、前記クラスタはもたらされた前記の得られたアウトプットを前記サーバに送る。別の例においては、実行されるであろう前記オペレーションおよび前記サーバへの前記要求に応じて、前記スイッチおよび／またはクラスタはアウトプットを送る。
【００３４】
少なくとも１つのソースが終了リクエストを前記スイッチに送る（ステップ４２２）。本リクエストに応じて、各コンポーネントが前記ストリーム処理に関連する状態を保存できるように、前記スイッチは前記サーバおよび前記ストリームクラスタの双方へ前記終了リクエストを伝える。これにより処理は完了する。
【００３５】
更なる例においては、要約レコードは用いられず、その代わりに、異なるソースから受領される前記ストリームに係る前記サーバに対して、前記サーバにおけるワークロードが指示を行う。前記ワークロードは前記ストリームの前記フォーマットを知らないものであるが、前記ストリームからいかなるデータが抽出される必要があるかについては知っている。前記ワークロードはワークロード指令における、前記サーバに提供される本情報を提供する。本処理を実行する前記ロジックの１つの実施例は図５において記述される。
【００３６】
当初においては、前記サーバはストリーム処理、すなわち前記ワークロードからの指令、を受領する（ステップ５００）。この指令は１つまたは、例として、複数のストリームに対する前記ソースアドレス、１つまたは複数のストリームに対して実行される前記オペレーション、および前記望ましいアウトプットフォーマットを含む。本情報に基づいて、前記サーバは前記スイッチおよび前記ストリームクラスタを、上記の記述と類似する形にて、プログラムする（ステップ５０２）。
たとえば、前記サーバは  それらの特定されたオペレーションを実行するため、前記スイッチおよび１つまたは複数の前記クラスタのコンピューティングユニットに前記ロジックを提供する。前記ストリームの前記フォーマットはこの時点では認識されていないたえ、前記スイッチは一般的用途バッファおよび一般的用途コードを前記ストリームの当初受領に用いる（ステップ５０４）。同様に、前記ストリームクラスタは、前記１つまたは複数のストリームの初期処理において、一般的用途バッファおよび一般的用途コードを用いる(ステップ５０６) 。前記一般的用途バッファおよび一般的用途コードはバイトのシークエンスとして入力ストリームを検証する。ストリームをバイトシークエンスとして検証するバッファおよびコードはインスタンス化される。
【００３７】
しかしながら、ストリームの受領に応じて、かつ特に、前記ストリームがその特性を決定するに十分な程度に、前記スイッチは再修正を行う（ステップ５０８）。再修正は、これによってストリーム特定バッファおよび処理コードがパフォーマンス効率の改善に用いられるプロセスである。たとえば、前記スイッチは、前記入力ストリームおよび実行されるよう指定されている前記オペレーションに対して適切なバッファーサイズを決定すること、および適切なサイズに適合するように前記一般的バッファを再調整することを行う。
更に、前記スイッチは処理ロジックを前記ストリームおよび実行されるオペレーションに対してインスタンス化を行う。たとえば、前記スイッチは、関連するＱｏＳ（サービス品質）パラメーターに従って前記ストリームの前記データフォーマットの決定を行うために、前記ストリームについてのディープパケット検査を行う。前記データフォーマットの決定の後、前記スイッチは、たとえば、データ（数字、英数字）またはビデオ（ハイディフィニション、ＭＥＰＧ、未加工）またはオーディオ（様々な圧縮／暗号化スキーム）に関連する処理コードのインスタンス化を行う。
他のフォーマットもまた可能である。前記スイッチはその後、乱調または遅延のような、サービス要求の品質に基づきバッファの調節を行う。前記クラスタは、前記スイッチから受領したストリームデータ（例、ストリーム、ストリームアウトプット、その他データ）に基づいて同様に再調整を行う。
【００３８】
前記スイッチおよびストリームクラスタはその後、前記サーバにより示されたとおりに前記ストリームを処理する（ステップ５１０）。たとえば、前記スイッチは、それが実行する前記オペレーション（例、＋）を決定し、それらのオペレーションを実行し、そして前記アウトプットを前記ストリームクラスタに送る。実行されるであろう前記オペレーションおよび前記サーバよって求められた前記アウトプットに応じて、前記ストリームクラスタおよび／またはスイッチによって、前記結果はその後に前記サーバに送られる（ステップ５１２）。
【００３９】
上記に加えて、前記要約レコードまたはワークロード指令が用いられる例があり得る。本例においては、前記サービスは集合データが求められる。本ロジックの一実施例は図６において記述される。当初、各コンポーネントが前記サーバに前記要求された集合データを提供するために１つまたは複数のオペレーションを実行するように、前記サーバは前記スイッチおよび前記ストリームクラスタをプログラムする（ステップ６００）。このプログラムは、たとえば、前記サーバによって受領される要約レコードまたはワークロード指令に基づく。
【００４０】
少なくとも１つのストリームが１つまたは複数のソースから前記スイッチにインプットされる（ステップ６０２）。前記スイッチは、定期的に（前記システムに定義されるとおり）前記サーバにより求められたデータを抽出し、前記サーバにそのメタデータを送る（ステップ６０４）。前記メタデータは、たとえば、ビデオストリームにおける形式および対象物の数などのきめの粗い（coarse-grained）データを含む。しかしながら、一例においては、よりきめの細かい（finer-grained）対象物の詳細については前記ストリームクラスタによって、前記スイッチではなく、処理され得る。前記スイッチは何らかの拡張されたメモリー要求に対する補助記憶として前記サーバを用いることができる。
【００４１】
さらに、前記スイッチはデータ記録を抽出し、前記ストリームクラスタに送る（ステップ６０６）。データ記録は、たとえば、データグループの集合であり、また各データグループは、たとえば、ストリームデータのビットまたはバイトの集合である。前記ストリームクラスタは、前記サーバにより提供された前記集合特性に基づいて、前記サーバに要求された統計を提供するためにこのデータを処理する。
【００４２】
前記サーバは、前記受領されたメタデータまたはその他のサーバ分析処理要求に基づいて前記ストリームクラスタに前記データ集合特性を提供する（ステップ６０８）。これに対応して、前期ストリームクラスタは前記データ（指定されたオペレーションおよび／または規約に基づく）集約し、集約統計を、要求に応じて、前記サーバに提供する（ステップ６１０）。その他の例においては、その他の統計的オペレーションまたは分析的処理が実施されてもより。
【００４３】
ソースは１つまたは複数のストリームを終了する（ステップ６１２）。これは処理を含む。
【００４４】
前記に詳細に記述された機能は、前記コンピューティング環境の様々なコンポーネントにおけるストリーム処理機能を分散させることによって、ストリーム処理を実施することができる。たとえば、前記スイッチは前記ストリームを受領し、そして前記ストリームをパースする、前記サーバに情報を送る、あるオペレーションそれ自身を実施する、および／または、実行される前記ストリームクラスタにオペレーションを送る、インテリジェンスを有する。前記スイッチにより受領される前記１つまたは複数のストリームのハイレベル記述子は、要約サマリーにおける前記１つまたは複数のソースまたはワークロード指令における前記サーバによって、提供される。
【００４５】
前記分野における技能を有するものによって認められるであろうとおり、本発明の態様はシステム、方法またはコンピュータプログラムとして実施され得る。したがって、本発明の態様は、本文において“サーキット”、“モジュール”または“システム”としてすべて一般に言及される、包括的なハードウェア実施例、包括的なソフトウェア実施例（ファームウェア、常駐ソフトウェア、マイクロコード等を含む）、またはソフトウェアおよびハードウェア態様の組み合わせによる実施例の形態を取ることができる。さらに、本発明の態様はコンピュータ読み取り可能プログラムコードをこれに実装する１つまたは複数のコンピュータ読み取り可能媒体に実装されるコンピュータプログラムの形態を取ることができる。
【００４６】
１つまたは複数のコンピュータ読み取り可能媒体のいかなる組み合わせについても利用が可能である。前記コンピュータ読み取り可能信号媒体は、たとえば、ベースバンドまたはキャリアウェーブの一部分において、実装されたコンピュータ読み取り可能プログラムコードとともに伝播されるデータ信号を含むこともできる。そのような伝播される信号は、たとえば電磁的、光学的またはこれらの適切な組み合わせのような、ただしこれらに限られない、多様な形態を取ることできる。コンピュータ読み取り可能信号媒体は、コンピュータ読み取り可能記憶媒体ではなく、また、指令実行システム、装置または機器により用いられ、またはこれらと組み合わせるためのプログラムと、通信し、伝播し、またはこれを移行し得うるものである。
【００４７】
コンピュータ読み取り可能記憶媒体は、たとえば、ただしこれらに限られない、電気的、磁気的、工学的、赤外線によるされたまたはセミコンダクターによるシステム、装置または機器、またはこれらの適切な組み合わせである。前記コンピュータ読み取り可能記憶媒体のより詳細な例としては（非限定的リストである）は以下のものを含む：１つまたは複数の有線を有する電気的接続、持ち運び可能コンピュータディスケット、ハードディスク、ランダムアクセスメモリ（ＲＡＭ）、読み取り専用メモリ（ＲＯＭ），消去可能プログラム可能読み取り専用メモリ（ＥＰＲＯＭまたはフラッシュメモリ）、光学的ファイバー、持ち運び可能コンパクトディスク読み取り専用メモリ（ＣＤ−ＲＯＭ）、光学的記憶機器、電磁的記憶機器、またはこれらの適切な組み合わせを含む。本稿との関連において、コンピュータ可能記憶媒体は、指令実行システム、装置または機器により用いられ、またはこれらと組み合わされるプログラムを含みまたは記憶することができる何らかの有体媒体であることできる。
【００４８】
図７に示すとおり、たとえば、本発明の１つまたは複数の態様を提供し、実施するために、コンピュータプログラム製品７００は、一例においては、コンピュータ読み取り可能プログラムコード手段またはロジック（７０４）を記録するための、１つまたは複数のコンピュータ読み取り可能メディア（７０２）を含むことができる。 
【００４９】
コンピュータ読み取り可能媒体に実装されたプログラムコードは、無線、有線、光学的ファイバーケーブル、ＲＦなど、またはこれらの適切な組み合わせ、ただしこれらに限定されない、を含む適切な媒体を用いて、伝送される。
【００５０】
本発明の態様の関するオペレーションを実行するためのコンピュータプログラムコードは、Ｊａｖａ、スモールトーク、Ｃ＋＋またはこれらの類似言語のようなオブジェクト指向プログラム言語、および、“Ｃ”プログラム言語または類似のプログラム言語のような伝統的な手続き的プログラム言語を含む、１つまたは複数のプログラム言語の何れかの組み合わせによって記述されることができる。前記プログラムコードは、全体としてユーザーのコンピュータ上において、部分的に、スタンドアローンソフトウェアパッケージとして、ユーザーのコンピュータ上において、部分的にユーザーのコンピュータ上および部分的にリモートコンピュータ上において、または全体として前記リモートコンピュータ上またはサーバ上において、実行することができる。後者の場合においては、前記リモートコンピュータは、前記ユーザーのコンピュータに、ローカルエリアネットワーク（ＬＡＮ）またはワイドエリアネットワーク（ＷＡＮ）または外部コンピュータに対して行われた接続（たとえば、インターネットサービスプロバイダーを用いたインターネットを通じて）を含む、何れかの形式のネットワークを通じて接続される。
【００５１】
本発明の態様は、本発明の実施例に基づく、フローチャート描写、および／または方法のブロックダイアグラム、装置（システム）およびコンピュータプログラムを参照しつつ、本稿にて記述される。フローチャート描写および／またはブロックダイアグラム、およびフローチャート描写および／またはブロックダイアグラムにおけるブロックの組み合わせ、はコンピュータプログラム指令によって実施される。これらのコンピュータプログラム指令は、汎用目的コンピュータ、特定目的コンピュータ、またはその他のプログラム可能データ処理装置のプロセッサーに対して、前記コンピュータまたはその他のプログラム可能データ処理装置の処理を通じて実行し、かつ前記フローチャート描写および／またはブロックダイアグラムのブロックまたはブロック群において指定された機能／対応を実施させる手段を創造する、前記インストラクションのようなものを、機能を生じさせるために、提供される。    
【００５２】
これらのコンピュータプログラム指令は、前記フローチャート描写および／またはブロックダイアグラムにおけるブロックまたはブロック群において指定された機能／対応を実施させる指令を含む、製造物を生じさせる前記コンピュータ読み取り可能媒体において記憶される指令のような、特定の手段において機能を実行する、コンピュータ、他のプログラム可能データ処理装置、または他の機器に指示をなし得るコンピュータ読み取り可能媒体に、記憶されることもまた可能である。
【００５３】
前記コンピュータプログラム指令は、前記フローチャート描写および／またはブロックダイアグラムにおけるブロックまたはブロック群において指定された機能／対応を実施させるプロセスを提供する、コンピュータまたはその他のプログラム可能装置において実行される前記インストラクションのような、コンピュータに実装されたプロセスを生じさせるために、前記コンピュータ、その他のプログラム可能装置またはその他の機器上において、実行されるオペレーショナルな一例のステップを引き起こすための、コンピュータ、その他のプログラム可能データ処理装置、またはその他の機器において、ロードされることもまた可能である。
【００５４】
前記図表における前記フローチャートおよびブロックダイアグラムは、本発明の様々な実施例に従った、システム、方法およびコンピュータプログラムの可能な実施例の構造、機能およびオペレーションを記述している。これに関連して、前記フローチャートおよびブロックダイアグラムにおける各ブロックは、指定されたロジック機能を実施するための１つまたは複数の指令を構成する、モジュール、セグメントまたはコードの部分を表現している。
また、他の実施例においては、前記ブロックに記載された前記機能は、前記図表において記載された指示から生じるものであり得ることにも留意されるべきである。たとえば、連続する２つのブロックはときに、現実には、ほぼ同時に実行されることがあり、またはこれらのブロック群はときに逆の順番にて、関連する機能に応じて、実行されることがある。また、ブロックダイアグラムおよび／またはフローチャート描写の各ブロック、およびブロックダイアグラムおよび／またはフローチャート描写のけるブロック群の組み合わせは、特定機能または対応、または特定目的ハードウェアおよびコンピュータ指令の組み合わせを実行する、特定目的ハードウェア依存システムによって実施され得ることにも、留意されるべきである。
【００５５】
上記に加えて、１つまたは複数の本発明の態様は、カスタマー環境の管理をオファーするサービスプロバイダによって、提供され、オファーされ、配置され、管理され、サービス等がなされ得る。たとえば、前記サービスプロバイダーは、１つまたは複数の顧客のために本発明の１つまたは複数の態様を実行するコンピュータコードおよび／またはコンピュータ基盤を、造り、維持し、サポート等することができる。これに対し、前記サーバプロバイダーは、たとえば、サブスクリプションまたは都度料金の契約によって前記顧客から支払いを受けることができる。追加的にまたは代替的に、前記サービスプロバイダーは、１つまたは複数の第三者から広告材料の販売により料金を得ることができる。
【００５６】
本発明の１つの態様においては、アプリケーションは、本発明の１つまたは複数の態様を実行ために配置される。一例として、アプリケーションの配置は、本発明の１つまたは複数の態様を実行することがオペラブルなコンピュータ基盤の提供を含む。
【００５７】
本発明の更なる態様においては、コンピュータ基盤は、その内部にて前記コンピュータシステムと組み合わせれたコードが本発明の１つまたは複数の態様を実行することが可能である、コンピュータシステムにコンピュータ読み取り可能コードが統合されるように配置される。
【００５８】
本発明のさらなる態様においては、コンピュータシステムにコンピュータ可読コードの統合を含む、統合されたコンピューティング基盤に対するプロセスが提供される。前記コンピュータシステムは、その内部において前記コンピュータ媒体は本発明の１つまたは複数の態様を含んでいる、コンピュータ可読コード媒体を含む。前記コンピュータシステムと組み合わされた前記コードは、本発明の１つまたは複数の態様の実行を行うことが可能である。
【００５９】
様々な実施例が上記では記述されているが、これらは単なる例に過ぎない。たとえば、他のアーキテクチャのコンピューティング環境は、本発明の１つまたは複数の態様、および／または、異なる形式のサーバ、アクセラレータまたはその他のコンピューティングユニット、および／または、用いられ得るスイッチまたはその他のプログラムステアリングユニット、を組み込みまた使用することができる。さらに、様々な前記データ構造および／またはレコードまたは指令において提供される情報は、ここにおいて記述されているものよりもさらに相違していることがある。さらに、要約レコードおよび指令以外の構造も使用されることがある。他の例もまた可能である。本発明の趣旨から離れることなく、その他の多数の変更が、施されることが可能である。
【００６０】
さらに、他の形式のコンピューティング環境は、本発明の１つまたは複数の態様から利益を得ることができる。一例として、ある環境は、その内部にて特定のアーキテクチャー（たとえば、指令実行、アドレス移行のようなアーキテクチャー化された機能、アーキテクチャー化されたレジスターを含む）またはこれらのサブセットがエミュレート（例、プロセッサーおよびメモリーを有する単純なコンピュータシステムにおいて）される、エミュレータ（例、ソフトウェアまたは他のエミュレーション機構）を含むことができる。
このような環境においては、エミュレーターを実行するコンピュータがエミュレートされた機能以外の異なるアーキテクチャーを有することができるとしても、前記エミューレターの１つまたは複数のエミュレーション機能は、一つまたは複数の本発明の態様を実施することができる。一例として、エミュレーションモードにおいては、エミュレートされる特定の指示またはオペレーションはデーコードされ、また適切なエミュレーション機能は個々の指示またはオペレーションを実行するよう構築されている。
【００６１】
エミュレーション環境においては、ホストコンピュータは、たとえば、指示およびデータを記憶するメモリー；メモリーから指示を呼び出し、かつ選択的に呼び出された指示にローカルバッファリングを提供する、指示呼び出しユニット；呼び出された指示を受領し、呼び出された指示の形式を決定する指示デコードユニット；および指示を実行する指示実行ユニット、を含む。実行は、データをメモリーからレジスターにロードを行うこと；レジスターからメモリーに戻ってきたデータを記憶すること；または、前記デコードユニットの決定に応じて、数的またはロジカルなオペレーションのなんらかの形式を実行すること、を含む。たとえば、前記ユニットによって実行される前記オペレーションは、１つまたは複数のエミューレターソフトウェア内のサブルーチンとして実行される。
【００６２】
さらに、プログラムコードを記憶および／または実行するデータ処理システムは、システムバスを通じてメモリーエレメントと直接または間接に関連付けれる少なくとも１つのプロセッサーを含むものとして用いることができる。前記メモリーエレメントは、たとえば、実行過程におけるバルクストレージから発生されねばならないタイムスコードの数を減らすために、少なくともなんらかのプログラムコードの一時的な記憶を提供する、前記プログラムコード、バルクストレージ、およびキャッシュメモリーの実際の実行の間に用いられる、ローカルメモリーコードを含む。
【００６３】
インプット／アウトプットまたはＩ／Ｏ機器（キーボード、ディスプレイ、ポインティング機器、ＤＡＳＤ，テープ、ＣＤ、ＤＶＤ、サムデバイスおよびその他のメモリー媒体などを含むが、これらに限られない）は、直接またはＩ／Ｏコントローラの介在を通して、前記システムと関連づけられる。ネットワークアダプターもまた、私的または公的なネットワークの介在を通じて、その他のデータ処理システムまたはリモートプリンターまたは記憶機器と前記データ処理システムが関連付けられるように、前記システムと関連づけられる。
【００６４】
本書面にて用いられる用語は、特定の実施例の目的のために用いられているに過ぎず、また本発明を限定することを意図するものではない。本書面にて使用されているとおり、単数を意味する用語は、その意味が明確に単数を意図していない限り、複数の形態をも含めて意図されている。さらに、“含む”または“含んでいる”の用語は、明細書において用いられるときには、記述されている機能、完全体、ステップ、オペレーション、要素、および／またはコンポーネントの存在を特定するが、１つまたは複数のその他の機能、完全体、ステップ、オペレーション、要素、コンポーネントおよび／またはこれらの集合の存在を除外するものではない。
【００６５】
請求項に含まれるすべてのミーンズプラスファンクション要素に対応する構造、素材、対応および同等物は、もしあれば、明示的にクレームされた請求項のその他の構成要素との組み合わせによる当該機能を実行するための、すべての構造、素材または対応を含むことが意図されている。本発明の記述は、説明と記述の目的のために述べられているが、網羅的であることが意図するものではなく、開示された態様に本発明を制限するものではない。多数の改変またはバリエーションが存することは、本発明の範囲および趣旨から逸脱することなく当該技術の通常のスキルを有するものにとって自明である。本発明の本質および実用的な応用を最適に説明するために、また本技術分野にておいて通常のスキルを有するものが企図される特定の使用に適用するような様々な改変とともに様々な実施態様のために本発明を理解することができるように、前記実施例は選択され、記述されたものである。
【図１】
2013513876.tif 000003
【図２Ａ】
2013513876.tif 000004
【図２Ｂ】
2013513876.tif 000005
【図３Ａ】
2013513876.tif 000006
【図３Ｂ】
2013513876.tif 000007
【図４】
2013513876.tif 000008
【図５】
2013513876.tif 000009
【図６】
2013513876.tif 000010
【図７】
2013513876.tif 000011
【手続補正書】
【提出日】平成24年8月6日(2012.8.6)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
コンピューティング環境におけるストリーム処理を促進するコンピュータプログラムであって、前記コンピュータプログラムは、
手順を処理回路に実行させるものであり、前記手順は、
プログラム可能ユニットによって、前記プログラム可能ユニットにより受領されるストリームの記述子を取得させる手順であって、前記プログラム可能ユニットは、前記コンピューティング環境における第一のコンポーネントによって少なくとも部分的にプログラムされる手順、
前記ストリームを、プログラム可能ユニットによって、受領させる手順、
前記プログラム可能ユニットによって、取得された記述子の類型に基づいて、前記ストリームの処理を行わせる手順であって、前記処理は、  
前記ストリームに関連するデータを第一のコンポーネントに提供させる手順、
前記プログラム可能ユニットにおいて、前記ストリームのための一組のオペレーションを実行させる手順、および、
ストリームに関連する情報を、前記ストリームのための他の組のオペレーションを実行させるために、コンピューティング環境における第二のコンポーネントに送付させる手順、
のうちの少なくともいずれか１つを含む前記処理を行わせる手順、
を含む、前記コンピュータプログラム。
【請求項２】
前記取得がストリームのソースのうちの少なくともひとつから要約レコードの受領を含むものであって、前記要約レコードはストリームにおける特性を含むものである、請求項１に記載の前記コンピュータプログラム。
【請求項３】
前記第一のコンポーネントが前記プログラム可能ユニットと接続されたサーバーであって、前記提供されるデータが前記要約レコードの前記サーバーへの提供を含む、請求項２に記載の前記コンピュータプログラム。
【請求項４】
前記方法が、前記要約レコードの受領に応じた、前記サーバーによるストリームデータ構造のアップデートをさらに含むものである、請求項３に記載の前記コンピュータプログラム。
【請求項５】
前記取得が第一のコンポーネントからのワークロード指令の受領を含むものであって、前記ワークロード指令が前記ストリームに関連する特性を記述するものである、請求項１に記載の前記コンピュータプログラム。
【請求項６】
前記情報が前記ストリームに関するオペレーションの実行の結果を含む、請求項１に記載の前記コンピュータプログラム。
【請求項７】
前記処理が、前記プログラム可能ユニットによる、前記プログラム可能ユニットによって実行される一組のオペレーションの決定、および前記第二のコンポーネントによって実行される別個のセットのオペレーションの決定をさらに含む、請求項１に記載の前記コンピュータプログラム。
【請求項８】
第一のコンポーネントによるプログラム可能ユニットのプログラミングの少なくとも一部分に前記決定が基づくものである、請求項７に記載の前記コンピュータプログラム。
【請求項９】
前記第二のコンポーネントが、前記プログラム可能ユニットと接続されたストリームクラスターのコンピューティングユニットである請求項７に記載の前記コンピュータプログラム。
【請求項１０】
コンピューティングユニットが、アクセラレータを含む請求項９に記載の前記コンピュータプログラム。
【請求項１１】
前記方法がさらに、第一のコンポーネントに対する前記ストリームの処理によるアウトプットの提供を含むものであり、前記アウトプットの提供が、前記プログラム可能ユニットおよび前記第二のコンポーネントのうちの少なくとも１つによって実行される請求項１に記載の前記コンピュータプログラム。
【請求項１２】
メモリーおよび前記メモリーとの通信を行うプロセッサーからなるコンピューター・システムであって、請求項１、２、５、７、８および１１のいずれかに記載のすべての手順を実行する前記コンピューター・システム。
【請求項１３】
請求項１、２および５のいずれかに記載のすべての手順を実行する方法。
【国際調査報告】
2013513876.tif 000012
2013513876.tif 000013