JP5802215B2 - 複数の粒度を持つストリームを処理するためのプログラム、コンピュータシステムおよび方法 - Google Patents

複数の粒度を持つストリームを処理するためのプログラム、コンピュータシステムおよび方法 Download PDF

Info

Publication number
JP5802215B2
JP5802215B2 JP2012543578A JP2012543578A JP5802215B2 JP 5802215 B2 JP5802215 B2 JP 5802215B2 JP 2012543578 A JP2012543578 A JP 2012543578A JP 2012543578 A JP2012543578 A JP 2012543578A JP 5802215 B2 JP5802215 B2 JP 5802215B2
Authority
JP
Japan
Prior art keywords
stream
computer program
server
component
programmable unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2012543578A
Other languages
English (en)
Other versions
JP2013513876A (ja
Inventor
クリシュナマーシー、ラジャラム
パリス、カール、ジョゼフ
ボイス、チャールズ、エドワード
リュウ、ラーング−クオ
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2013513876A publication Critical patent/JP2013513876A/ja
Application granted granted Critical
Publication of JP5802215B2 publication Critical patent/JP5802215B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5044Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering hardware capabilities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/65Network streaming protocols, e.g. real-time transport protocol [RTP] or real-time control protocol [RTCP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L65/00Network arrangements, protocols or services for supporting real-time applications in data packet communication
    • H04L65/60Network streaming of media packets
    • H04L65/75Media network packet handling
    • H04L65/765Media network packet handling intermediate
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network

Description

本発明はコンピューティング環境における処理の実施に関するものであり、また特にコンピューティング環境にストリーム処理の実施に関するものである。
近年においては、サーバがストリームクラスタと接続されたストリーム処理環境が存在する。 前記ストリームクラスタは、前記サーバの処理能力を増大するために用いられる1つまたは複数のアクセラレータを含む。特にある機能が前記サーバによって実行される場合よりもより速い速度によってこれらの機能が実行されるように前記アクセラレータは最適化される。
より具体的には、前記サーバはストリームならびにストリームデータおよびその他の情報からの抽出(extracts)を受け取る。その後かかるデータ/情報は前記サーバから1つまたは複数のアクセラレータに処理のために送られる。前記アクセラレータが処理を完了したとき、アクセラレータはその結果を前記サーバに送付する。
このような環境の中では、前記サーバは、前記ストリームの受領、ストリームからのデータまたはその他の情報の抽出、前記アクセラレータへのデータ/情報の送付、および前記結果の受領を担当する。さらに、前記サーバは前記ストリームと関連するその他の処理を実行する。
かかるシステムの効率を改善するため、本発明の態様によれば、前記ストリーム処理は前記コンピューティング環境における多数のコンポーネントに分散される。すべての調整ステップを実行することは最早前記サーバが担当するものではない。
コンピューティング環境におけるストリーム処理を実施するためのコンピュータプログラムが導入されることにより、先行技術の有する欠点は克服されるとともに、付加的な利点がもたらされる。前記コンピュータプログラムは、プロセス回路により判読可能であり、ある方法をプロセス回路により実行するための実行指示を含む。
前記方法は、例えば、前記コンピューティング環境の第一コンポーネントによって、少なくとも部分的に、プログラムされた前記プログラム可能ユニットにより受領されるべき1つまたは複数のストリームの記述子を、プログラム可能ユニットによって取得することと、1つまたは複数のストリームを、前記プログラム可能ユニットによって、受領することと、ならびに、処理が、(1)第一のコンポーネントに1つまたは複数のストリームに関連するデータを提供すること、(2)前記プログラム可能ユニットにおいて1つまたは複数のストリームについて1つまたは複数の操作の組を行うこと、および、(3)1つまたは複数のストリームに対する1つまたは複数のオペレーションの他のセットを実行する前記コンピューティング環境の第二のコンポーネントに前記1つまたは複数のストリームに関連する情報を送付すること、の少なくとも1つを含むものである、取得された前記記述子のタイプに基づいて1つまたは複数のストリームを前記プログラム可能ユニットによって前記処理を行うことと、を含む。
本発明の1つまたは複数の態様に関連する方法およびシステムについてもまた本書面において説明され、請求項に記載されている。さらに、本発明の1つまたは複数の態様に関連するサービスについてもまた本書面において説明され、請求項に記載されている。
付加的な特徴と利点については本発明の技法を通じて認識される。本発明のその他の実施例および特質は本文において詳細に記述され、また請求項に記載された発明の一部分と考えられる。
1つまたは複数の本発明の態様は特に明示されており、また本明細書の末尾に記載される特許請求の範囲において一例として明確にクレームされている。本発明の前述ならびにその他の客体、特徴、および利点は 以下の添付された図面における詳細な説明により明らかにされる、
本発明の1つまたは複数の態様を組み込みかつ使用するための一例を記述している。 本発明の態様にしたがって用いられるストリームメタデータ構造の1つの実施例を記述している。 本発明の態様にしたがって用いられるストリームコンポジットデータ構造の一例を記述している。 本発明の態様にしたがって用いられる要約レコードの一例を記述している。 本発明の態様にしたがって用いられるワークロードストリーム処理指令のフォーマットの一例を記述している。 本発明の態様にしたがって用いられるインライン要約レコードに基づいてストリーム処理を実施するロジックの実施例を記述している。 本発明の態様にしたがって、ワークロード検出に基づいてストリーム処理を実施する実施例を記述している。 本発明の態様にしたがって、マルチグラニュラ抽出に基づいてストリーム処理を実施するロジックの実施例を記述している。 1つまたは複数の本発明の態様を包含するコンピュータプログラムの実施例を記述している。
本発明の態様にしたがって、ストリーム処理はハイブリッドコンピューティング環境またはその他の環境において実行される。ハイブリッドコンピューティング環境の一例においては、インテリジェントスイッチのような、プログラム可能ステアリングユニットが、たとえばサーバやストリームクラスタなどの、コンピューティング環境におけるマルチプルコンポーネントと接続される。前記ストリームクラスタは、1つまたは複数のアクセラレータのような、1つまたは複数のコンピューティングユニットを含む。
前記スイッチ(または他のプログラム可能ステアリングユニット)は、1つまたは複数のソースからストリームを受領し、かつソースまたはサーバからの受領した記述子に基づいてそれらのストリームを処理する。1つまたは複数のストリームの受領に応じて、前記スイッチはいずれのストリームのオペレーションがハイブリッドコンピューティング環境における様々なコンポーネントによって実行されるべきであるかを決定する。たとえば、前記スイッチはある組の1つまたは複数のオペレーションが当該スイッチそれ自身によって実行されるべきであること、および、他の組の1つまたは複数のオペレーション(すなわちよりコンピュートインテンシブなオペレーション)がストリームクラスタによって実行されるべきであること、を決定することができる。さらに1つまたは複数の実施例においては、前記スイッチは、前記ストリームおよび/または前記ストリーム処理に応じて、記述的なデータを前記サーバに送る。
例えば前記スイッチは、ストリームに係る一連の、相違し、かつ込み入ったオペレーションのような、ストリームのバイトが受領されるとき、イントラストリームまたはインターストリーム・コンピュテーションを実行することができる。ストリームクラスタは、たとえば、1分目に受領したビデオ画像と複合画像処理アルゴリズムを使用する65分目のビデオ監視ストリーム入力を比較することができる。
前記スイッチは入力されるストリームのラインスピードにて実行されるストリームオペレーションを実行する。かかるオペレーションは通常は適度なメモリーフットプリントを要求する。前記ストリームクラスタは、1つまたはいくつかの抽出されたストリームデータを必要とするコンピュートかつメモリー集約的なオペレーションを実行する。
前記適切なストリームデータが、高い計算効率とパフォーマンスを実現するために、ストリームクラスタのコンピュートユニットに直接到達するように、前記スイッチはデータを操作することができる。前記ストリームクラスタは、ストリームデータを一定期間において取得する時系列データベースをホストすることができる。
前記サーバは、一定期間において統合されるストリーム、ストリームオペレーションおよびその他のストリームデータを要約し記録する低ストアおよびカラムストア・データベースであることに特色を有する。前記マルチグラニュラシステムの複合コンポーネントが、多様なグラニューラ(細かい、中庸および粗い粒)によるストリームデータにおいて実行できるようにすることが、高い効率およびパフォーマンスを可能とする。
本発明の1つまたは複数の態様を組み込み、かつ使用するコンピューティング環境の実施例は図1に記述される。この例においては、サーバ100はストリームクラスタ110と結合される。サーバ100は、例えば、相互に1つまたは複数のバス108を介して結合された、1つまたは複数のプロセッサ102、メモリー104、そして1つまたは複数の入出力(I/O) 装置またはインタフェース106を含む。
例として、サーバ100は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またはその他の企業の登録商標、商標または製品名称にあたる場合があります。
他の実施例においては、サーバは1つまたは複数の区分または領域を含む。たとえば、サーバは、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の登録商標である。
一例においては、ストリームクラスタ110は1つまたは複数のコンピューティングユニット112を含む。たとえば、前記コンピューティングユニットは、ブレードセンターまたはシャシーのブレードのような、ハードウェアアクセラレータとなる。
たとえばアクセラレータは、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) サーバのようなサーバである。これら以外にも多数の例があり得る。
前記クラスタは、異なるアクセラレータ形式の組み合わせを含む、異なるコンピューティングユニットの組み合わせを含むことができる。
一例においては、サーバ10はストリームクラスタ110と、たとえば、PCI エクスプレス、インフィニバンド、イーサネットのようなネットワークを介して通信する。
さらに、サーバ100およびストリームクラスタ110は、スイッチ120のような、少なくとも1つのプログラム制御ステアリングユニットと、たとえばインフィニバンドまたはイーサネットネットワークなどを介して接続される。
スイッチ120は、たとえば、System x(R)、System p(R) または System z(R)サーバのようなサーバ、または例としてCisco Systems, Incもしくは International BusinessMachines Corporationにより提供されるスイッチ装置である。
前記スイッチはストリームを1つまたは複数のソースから受領し、そしてこれらのストリームを本書面にて記述したとおりに処理する。
本発明の一態様にしたがい、ストリーム処理を実施させるため、多様な情報を維持するために多数のデータ構造(すなわちテーブル)が用いられる。
これらのデータ構造は、たとえば、以下に説明されるいずれかのストリームメタデータテーブルおよびストリームコンポジットテーブルを含む。
一例においては、前記ストリームメタデータテーブルは前記サーバによる維持される。図2Aに示されるように、ストリームメタデータテーブル200は、たとえば、1つまたは複数のエントリを含み、また各エントリはストリームを識別するストリーム名202およびストリームの形式(たとえばvideo、audio、dataなど)を示すストリーム形式204を含む。
前記 ストリームメタデータテーブルに加えて、サーバは、たとえば図2Bに示されるような、ストリームコンポジットテーブルを維持する。
ストリームコンポジットテーブル220は、一緒に処理が行われるストリームのコンポジットの名称222、前記コンポジットのストリームのリスト224、そして前記リストされたストリームのために実行されるオペレーションを示すオペレーションリスト226を含む。
前記のデータ構造に加えて、1つまたは複数の例においては、処理は要約レコードおよび/または負荷ストリーム処理指令の使用により実施され、これらは以下に記述される。
図3Aに示されているとおり、要約レコード300は、たとえば、一緒に処理されるストリームのリストを含むストリームリスト302、ストリームの前記リストにおいて実行される前記オペレーションを特定するオペレータリスト304、前記リスト内の各フォーマットを示すストリームヘッダーフォマットリスト306、および前記リスト内の各ストリームの到達時を特定する到達時リスト308を含む。
前記到達時は相互に連関する。たとえば、要約レコードは S1、S2;展開(extract)(S1+S2、オブジェクト);フォーマット1、フォーマット2;0、7、これらにおけるストリームはS1およびS2;オペレーションは展開および集約(aggregate)(+)、これらにおけるS1およびS2は集約され、また特定されたオブジェクトはこれらから展開される;前記フォーマットはフォーマット1およびフォーマット2(たとえばMPEG,ハイディフィニションなど);ならびに0および7は相対的な到達時である。
各オペレーションの前記定義はストリームのタイプに依存する。たとえば、ストリームがビデオである場合には、+が集合として定義されることができる、しかしながら前記ストリームがデータである場合には、+が追加オペレーターとして定義されることができる。さらに他の多数の例が想定され得る。
ワークロードストリーム処理指令のフォーマットについての実施例の1つは図3Bにおいて記述される。ワークロード処理指令350は、1つまたは複数のストリームが送られるもととなるソースを示すストリームソースアドレス352、実行されるそれらのストリームの前記オペレーションを示すストリームオペレーターリスト354、 およびストリームからのアウトプットの望ましいフォーマットを記述するアウトプットフォーマットリスト356を含む。
指令を処理する前記要約レコードおよび/またはワークロードストリームは、本発明の態様に基づいて、処理が予定された入力されるストリームを記述するために用いられる。本文で記述される前記実施例において、記述的情報は、この情報を記述的情報において示されたストリームを処理するために使用するプログラム可能操作ユニットに、提供される。前記プログラム可能操作ユニットは、これらの実施例において、インテリジェンスを有する(たとえば、処理ロジックのコンピュートおよびパケットを行う)スイッチである。
1つの実施例においては、前記スイッチは、処理される前記ストリームに応じたサーバによりプログラムされる。前記ストリームの受領に応じて、前記スイッチが、ストリームの処理に関する一定の決定が行えるように、前記サーバは前記スイッチをプログラムする。前記スイッチは1つの例として提供されるものであるが、その他のコンポーネントがプログラム可能ステアリングユニットとして用いられてもよい。
前記スイッチは記述的情報および1つまたは複数のストリームを受領し、かつ前記記述的情報のフォーマットに基づいてストリームを処理する。たとえばストリームの処理は、要約レコードが前記ストリームまたは前記ワークロード指令を記述するのに用いられるのか否かに応じて行われる。
前記ストリームの受領に応じて、いずれのオペレーションが実行されるのか、ならびにいずれのコンピューティング環境におけるコンポーネント(たとえば、スイッチ、ストリームクラスタおよび/またはサーバ)がオペレーションを実行するのか、を前記スイッチは決定する。たとえば1つの典型的な実施例においては、前記クラスタはコンピュート集約型オペレーションを実行し(一例においては、前記システムにて定義された形にて)、かつ前記スイッチそれ自身はよりコンピュート集約型でないオペレーションを実行する。
これは、図4−6において更なる詳細が記述されているとおり、ストリーム処理が、コンピューティング環境における様々なコンポーネント間において、分散されることを可能とするものである。
具体的には、図4は、要約記録を受領するストリーミング処理の1つの実施例を記述する;図5はワークロード指令が用いられるストリーミング処理の1つの実施例を記述する;そして図6は、要約レコードまたはワークロード指令のいずれかが用いられる、また統計的インフォメーションがサーバに提供される、ストリーム処理の1つの実施例を記述する。これらの例が例示されているが、その他の多数の例も例示が可能である。さらに、本発明の趣旨から離れない形にて、これらの例には変更を加えることができる。
図4の例においては、上記で記述された以下のフィールド:S1、S2、展開(S1+S2、オブジェクト);フォーマット1、フォーマット2;0、7、の要約レコードが用いられる。前記の到達時間はほぼ同じである(すなわち、双方をバッファするための十分なメモリがある)、したがって前記サーバは、S1+S2がスイッチにおいて実行されることを要求することができる。前記展開オペレーションはストリームクラスタにおいて実行する。しかしながら、もし到達時間が十分に離れていないのであれば、ストリームをバッファし、また他の作業を実行するスイッチ上における十分なメモリは存在しないであろうため、その結果、前記サーバは補助記憶として用いられ、また前記ストリームクラスタが、前記スイッチではなく、+オペレーションを実行することになろう。その他の例もまた可能である。
図4にて述べるとおり、スッテプ400において、要約レコードは前記スイッチと連携する1つまたは複数のソースから当該スイッチに到達する。ソースはビデオレコーダー、コンピュータ、金融市場データを供給する機器、またはその他のストリームを供給可能な機器でもよい。たとえば、要約レコードはこれらのソースまたはこれらのソースの使用者によって造られ得る。
前記要約レコードの受領に応じて、前記スイッチは定義されたバッファ量の上限まで要約レコードに続く全てのストリームバイトについてバッファを行う(ステップ402)。さらに、前記ソースがバイトを送ることを、たとえば一時停止メッセージによって、マルチグラニュラシステムがセットアップされるまで停止するよう要求することができる(ステップ404)。このセットアップは以下に記述されるステップを含む(すなわち、ステップ406−416)。
前記スイッチは前記要約レコードを前記サーバに誘導する(ステップ406)、ならびに前記サーバは前記ストリームメタデータおよびコンポジットテーブルをアップデートする(スッテプ408)。たとえば、前記要約レコードの受領に応じて、前記サーバはストリームメタデータへの入力を加える。たとえば、本文にて記述される特定の要約レコード例においては、入力はS1およびS2のテーブルに加えられる。さらに、前記サーバは前記要約レコードを、コンポジットの名称(e.g., S1+S2)、当該コンポジット(e.g., S1+S2)のためのストリームのリスト、およびオペレーションリスト(e.g., +. extract)を含む前記ストリームコンポジットテーブルへの入力を加えるために使用する。
加えて、前記要約レコードの受領に応じて、前記サーバは、前記スイッチおよび1つまたは複数のストリームクラスタのコンピューティングユニットにストリームのオペレーションを実行させるためにプログラムを行う(ステップ410)。特に、前記サーバは、要約レコードにおいて特定されたいずれのオペレーションが前記スイッチにより実行されるべきであるか、および、いずれのオペレーションが前記クラスタにより実行されるべきであるかを決定するために、定義されたルールまたはヒューリスティックな方法を用いる。前記サーバはその後に、処理を実行させるために、適切な処理ロジックを前記スイッチおよびクラスタに提供する。たとえば、前記サーバは、前記スイッチにより実行されるため、および、いずれのオペレーションが前記ストリームクラスタにおいてより効率的であるかを決定するために、オペレーションのリストを格納する。前記サーバは、前記スイッチおよびオペレーションに関連するストリームクラスタにおける処理コードを起動するために、識別子を提供する。前記サーバは、もしコードが前記スイッチまたはストリームクラスタに存在しない場合には、処理コードを前記スイッチまたはストリームクラスタに直接提供することもできる。
前記サーバから提供された情報に基づいて、前記スイッチは自身を調整し、そのバッファおよび処理ロジックをセットアップする(スッテプ412)。たとえば、これは、前記スイッチによって実行される前記ストリームおよびオペレーションのための適切なサイズに前記バッファのサイジングを行い、またいずれかのハードウェア(例、フィールドプルグラム可能ゲートアレイ)またはソフトウェア(前記スイッチのプロセッサーにおける)において前記サーバから受領した前記処理ロジックを配置を行うことを含む。さらに、前記ストリームクラスタ(すなわち、1つまたは複数の前記クラスタにおけるコンピューティングユニット)もまた自身を調整し、かつ、前記スイッチが行うようにそのバッファーおよび処理ロジックをセットアップする。
前記サーバはその後にストリームバイトを受け入れるために前記スイッチに指示を行うことができる。すなわち、ステップ416に示すように、前記マルチグラニュラシステムのセットアップが既に完了された状態にあるからである。これは、例えば、前記スイッチがメモリーリソースを使い果たし、かつフロー操作・メッセージを前記ストリームソースに送らなければならない場合に起こる。前記スイッチは1つまたは複数のソースからストリームバイトを受領し、かつ、もしあれば、いずれのオペレーションを実行するか、およびいずれのオペレーションが前記ストリームクラスタにより実行されるべきであるかを、前記サーバにより指示されたとおりに、決定する。
前記スイッチは、それが実行するであろう前記オペレーションを実行し、また前記ストリームクラスタがそのオペレーションを実行することができるように、前記ストリームまたは前記ストリームクラスタへ必要なデータを送付する(ステップ420)。例えば、前記スイッチはS1およびS2についての+オペレーションを実行し、かつ、オブジェクト抽出を実行する(例えば、ビデオ監視ストリームからすべての自動車を抽出する場合など)、前記ストリームクラスタの1つまたは複数のコンピューティングユニットに対する当該結果を送付する。前記の得られたアウトプットはその後前記サーバに送付される(ステップ420)。一例においては、前記クラスタはもたらされた前記の得られたアウトプットを前記サーバに送る。別の例においては、実行されるであろう前記オペレーションおよび前記サーバへの前記要求に応じて、前記スイッチおよび/またはクラスタはアウトプットを送る。
少なくとも1つのソースが終了リクエストを前記スイッチに送る(ステップ422)。本リクエストに応じて、各コンポーネントが前記ストリーム処理に関連する状態を保存できるように、前記スイッチは前記サーバおよび前記ストリームクラスタの双方へ前記終了リクエストを伝える。これにより処理は完了する。
更なる例においては、要約レコードは用いられず、その代わりに、異なるソースから受領される前記ストリームに係る前記サーバに対して、前記サーバにおけるワークロードが指示を行う。前記ワークロードは前記ストリームの前記フォーマットを知らないものであるが、前記ストリームからいかなるデータが抽出される必要があるかについては知っている。前記ワークロードはワークロード指令における、前記サーバに提供される本情報を提供する。本処理を実行する前記ロジックの1つの実施例は図5において記述される。
当初においては、前記サーバはストリーム処理、すなわち前記ワークロードからの指令、を受領する(ステップ500)。この指令は1つまたは、例として、複数のストリームに対する前記ソースアドレス、1つまたは複数のストリームに対して実行される前記オペレーション、および前記望ましいアウトプットフォーマットを含む。本情報に基づいて、前記サーバは前記スイッチおよび前記ストリームクラスタを、上記の記述と類似する形にて、プログラムする(ステップ502)。
たとえば、前記サーバは それらの特定されたオペレーションを実行するため、前記スイッチおよび1つまたは複数の前記クラスタのコンピューティングユニットに前記ロジックを提供する。前記ストリームの前記フォーマットはこの時点では認識されていないたえ、前記スイッチは一般的用途バッファおよび一般的用途コードを前記ストリームの当初受領に用いる(ステップ504)。同様に、前記ストリームクラスタは、前記1つまたは複数のストリームの初期処理において、一般的用途バッファおよび一般的用途コードを用いる(ステップ506) 。前記一般的用途バッファおよび一般的用途コードはバイトのシークエンスとして入力ストリームを検証する。ストリームをバイトシークエンスとして検証するバッファおよびコードはインスタンス化される。
しかしながら、ストリームの受領に応じて、かつ特に、前記ストリームがその特性を決定するに十分な程度に、前記スイッチは再修正を行う(ステップ508)。再修正は、これによってストリーム特定バッファおよび処理コードがパフォーマンス効率の改善に用いられるプロセスである。たとえば、前記スイッチは、前記入力ストリームおよび実行されるよう指定されている前記オペレーションに対して適切なバッファーサイズを決定すること、および適切なサイズに適合するように前記一般的バッファを再調整することを行う。
更に、前記スイッチは処理ロジックを前記ストリームおよび実行されるオペレーションに対してインスタンス化を行う。たとえば、前記スイッチは、関連するQoS(サービス品質)パラメーターに従って前記ストリームの前記データフォーマットの決定を行うために、前記ストリームについてのディープパケット検査を行う。前記データフォーマットの決定の後、前記スイッチは、たとえば、データ(数字、英数字)またはビデオ(ハイディフィニション、MEPG、未加工)またはオーディオ(様々な圧縮/暗号化スキーム)に関連する処理コードのインスタンス化を行う。
他のフォーマットもまた可能である。前記スイッチはその後、乱調または遅延のような、サービス要求の品質に基づきバッファの調節を行う。前記クラスタは、前記スイッチから受領したストリームデータ(例、ストリーム、ストリームアウトプット、その他データ)に基づいて同様に再調整を行う。
前記スイッチおよびストリームクラスタはその後、前記サーバにより示されたとおりに前記ストリームを処理する(ステップ510)。たとえば、前記スイッチは、それが実行する前記オペレーション(例、+)を決定し、それらのオペレーションを実行し、そして前記アウトプットを前記ストリームクラスタに送る。実行されるであろう前記オペレーションおよび前記サーバよって求められた前記アウトプットに応じて、前記ストリームクラスタおよび/またはスイッチによって、前記結果はその後に前記サーバに送られる(ステップ512)。
上記に加えて、前記要約レコードまたはワークロード指令が用いられる例があり得る。本例においては、前記サービスは集合データが求められる。本ロジックの一実施例は図6において記述される。当初、各コンポーネントが前記サーバに前記要求された集合データを提供するために1つまたは複数のオペレーションを実行するように、前記サーバは前記スイッチおよび前記ストリームクラスタをプログラムする(ステップ600)。このプログラムは、たとえば、前記サーバによって受領される要約レコードまたはワークロード指令に基づく。
少なくとも1つのストリームが1つまたは複数のソースから前記スイッチにインプットされる(ステップ602)。前記スイッチは、定期的に(前記システムに定義されるとおり)前記サーバにより求められたデータを抽出し、前記サーバにそのメタデータを送る(ステップ604)。前記メタデータは、たとえば、ビデオストリームにおける形式および対象物の数などのきめの粗い(coarse-grained)データを含む。しかしながら、一例においては、よりきめの細かい(finer-grained)対象物の詳細については前記ストリームクラスタによって、前記スイッチではなく、処理され得る。前記スイッチは何らかの拡張されたメモリー要求に対する補助記憶として前記サーバを用いることができる。
さらに、前記スイッチはデータ記録を抽出し、前記ストリームクラスタに送る(ステップ606)。データ記録は、たとえば、データグループの集合であり、また各データグループは、たとえば、ストリームデータのビットまたはバイトの集合である。前記ストリームクラスタは、前記サーバにより提供された前記集合特性に基づいて、前記サーバに要求された統計を提供するためにこのデータを処理する。
前記サーバは、前記受領されたメタデータまたはその他のサーバ分析処理要求に基づいて前記ストリームクラスタに前記データ集合特性を提供する(ステップ608)。これに対応して、前期ストリームクラスタは前記データ(指定されたオペレーションおよび/または規約に基づく)集約し、集約統計を、要求に応じて、前記サーバに提供する(ステップ610)。その他の例においては、その他の統計的オペレーションまたは分析的処理が実施されてもより。
ソースは1つまたは複数のストリームを終了する(ステップ612)。これは処理を含む。
前記に詳細に記述された機能は、前記コンピューティング環境の様々なコンポーネントにおけるストリーム処理機能を分散させることによって、ストリーム処理を実施することができる。たとえば、前記スイッチは前記ストリームを受領し、そして前記ストリームをパースする、前記サーバに情報を送る、あるオペレーションそれ自身を実施する、および/または、実行される前記ストリームクラスタにオペレーションを送る、インテリジェンスを有する。前記スイッチにより受領される前記1つまたは複数のストリームのハイレベル記述子は、要約サマリーにおける前記1つまたは複数のソースまたはワークロード指令における前記サーバによって、提供される。
前記分野における技能を有するものによって認められるであろうとおり、本発明の態様はシステム、方法またはコンピュータプログラムとして実施され得る。したがって、本発明の態様は、本文において“サーキット”、“モジュール”または“システム”としてすべて一般に言及される、包括的なハードウェア実施例、包括的なソフトウェア実施例(ファームウェア、常駐ソフトウェア、マイクロコード等を含む)、またはソフトウェアおよびハードウェア態様の組み合わせによる実施例の形態を取ることができる。さらに、本発明の態様はコンピュータ読み取り可能プログラムコードをこれに実装する1つまたは複数のコンピュータ読み取り可能媒体に実装されるコンピュータプログラムの形態を取ることができる。
1つまたは複数のコンピュータ読み取り可能媒体のいかなる組み合わせについても利用が可能である。前記コンピュータ読み取り可能信号媒体は、たとえば、ベースバンドまたはキャリアウェーブの一部分において、実装されたコンピュータ読み取り可能プログラムコードとともに伝播されるデータ信号を含むこともできる。そのような伝播される信号は、たとえば電磁的、光学的またはこれらの適切な組み合わせのような、ただしこれらに限られない、多様な形態を取ることできる。コンピュータ読み取り可能信号媒体は、コンピュータ読み取り可能記憶媒体ではなく、また、指令実行システム、装置または機器により用いられ、またはこれらと組み合わせるためのプログラムと、通信し、伝播し、またはこれを移行し得うるものである。
コンピュータ読み取り可能記憶媒体は、たとえば、ただしこれらに限られない、電気的、磁気的、工学的、赤外線によるされたまたはセミコンダクターによるシステム、装置または機器、またはこれらの適切な組み合わせである。前記コンピュータ読み取り可能記憶媒体のより詳細な例としては(非限定的リストである)は以下のものを含む:1つまたは複数の有線を有する電気的接続、持ち運び可能コンピュータディスケット、ハードディスク、ランダムアクセスメモリ(RAM)、読み取り専用メモリ(ROM),消去可能プログラム可能読み取り専用メモリ(EPROMまたはフラッシュメモリ)、光学的ファイバー、持ち運び可能コンパクトディスク読み取り専用メモリ(CD−ROM)、光学的記憶機器、電磁的記憶機器、またはこれらの適切な組み合わせを含む。本稿との関連において、コンピュータ可能記憶媒体は、指令実行システム、装置または機器により用いられ、またはこれらと組み合わされるプログラムを含みまたは記憶することができる何らかの有体媒体であることできる。
図7に示すとおり、たとえば、本発明の1つまたは複数の態様を提供し、実施するために、コンピュータプログラム製品700は、一例においては、コンピュータ読み取り可能プログラムコード手段またはロジック(704)を記録するための、1つまたは複数のコンピュータ読み取り可能メディア(702)を含むことができる。
コンピュータ読み取り可能媒体に実装されたプログラムコードは、無線、有線、光学的ファイバーケーブル、RFなど、またはこれらの適切な組み合わせ、ただしこれらに限定されない、を含む適切な媒体を用いて、伝送される。
本発明の態様の関するオペレーションを実行するためのコンピュータプログラムコードは、Java、スモールトーク、C++またはこれらの類似言語のようなオブジェクト指向プログラム言語、および、“C”プログラム言語または類似のプログラム言語のような伝統的な手続き的プログラム言語を含む、1つまたは複数のプログラム言語の何れかの組み合わせによって記述されることができる。前記プログラムコードは、全体としてユーザーのコンピュータ上において、部分的に、スタンドアローンソフトウェアパッケージとして、ユーザーのコンピュータ上において、部分的にユーザーのコンピュータ上および部分的にリモートコンピュータ上において、または全体として前記リモートコンピュータ上またはサーバ上において、実行することができる。後者の場合においては、前記リモートコンピュータは、前記ユーザーのコンピュータに、ローカルエリアネットワーク(LAN)またはワイドエリアネットワーク(WAN)または外部コンピュータに対して行われた接続(たとえば、インターネットサービスプロバイダーを用いたインターネットを通じて)を含む、何れかの形式のネットワークを通じて接続される。
本発明の態様は、本発明の実施例に基づく、フローチャート描写、および/または方法のブロックダイアグラム、装置(システム)およびコンピュータプログラムを参照しつつ、本稿にて記述される。フローチャート描写および/またはブロックダイアグラム、およびフローチャート描写および/またはブロックダイアグラムにおけるブロックの組み合わせ、はコンピュータプログラム指令によって実施される。これらのコンピュータプログラム指令は、汎用目的コンピュータ、特定目的コンピュータ、またはその他のプログラム可能データ処理装置のプロセッサーに対して、前記コンピュータまたはその他のプログラム可能データ処理装置の処理を通じて実行し、かつ前記フローチャート描写および/またはブロックダイアグラムのブロックまたはブロック群において指定された機能/対応を実施させる手段を創造する、前記インストラクションのようなものを、機能を生じさせるために、提供される。
これらのコンピュータプログラム指令は、前記フローチャート描写および/またはブロックダイアグラムにおけるブロックまたはブロック群において指定された機能/対応を実施させる指令を含む、製造物を生じさせる前記コンピュータ読み取り可能媒体において記憶される指令のような、特定の手段において機能を実行する、コンピュータ、他のプログラム可能データ処理装置、または他の機器に指示をなし得るコンピュータ読み取り可能媒体に、記憶されることもまた可能である。
前記コンピュータプログラム指令は、前記フローチャート描写および/またはブロックダイアグラムにおけるブロックまたはブロック群において指定された機能/対応を実施させるプロセスを提供する、コンピュータまたはその他のプログラム可能装置において実行される前記インストラクションのような、コンピュータに実装されたプロセスを生じさせるために、前記コンピュータ、その他のプログラム可能装置またはその他の機器上において、実行されるオペレーショナルな一例のステップを引き起こすための、コンピュータ、その他のプログラム可能データ処理装置、またはその他の機器において、ロードされることもまた可能である。
前記図表における前記フローチャートおよびブロックダイアグラムは、本発明の様々な実施例に従った、システム、方法およびコンピュータプログラムの可能な実施例の構造、機能およびオペレーションを記述している。これに関連して、前記フローチャートおよびブロックダイアグラムにおける各ブロックは、指定されたロジック機能を実施するための1つまたは複数の指令を構成する、モジュール、セグメントまたはコードの部分を表現している。
また、他の実施例においては、前記ブロックに記載された前記機能は、前記図表において記載された指示から生じるものであり得ることにも留意されるべきである。たとえば、連続する2つのブロックはときに、現実には、ほぼ同時に実行されることがあり、またはこれらのブロック群はときに逆の順番にて、関連する機能に応じて、実行されることがある。また、ブロックダイアグラムおよび/またはフローチャート描写の各ブロック、およびブロックダイアグラムおよび/またはフローチャート描写のけるブロック群の組み合わせは、特定機能または対応、または特定目的ハードウェアおよびコンピュータ指令の組み合わせを実行する、特定目的ハードウェア依存システムによって実施され得ることにも、留意されるべきである。
上記に加えて、1つまたは複数の本発明の態様は、カスタマー環境の管理をオファーするサービスプロバイダによって、提供され、オファーされ、配置され、管理され、サービス等がなされ得る。たとえば、前記サービスプロバイダーは、1つまたは複数の顧客のために本発明の1つまたは複数の態様を実行するコンピュータコードおよび/またはコンピュータ基盤を、造り、維持し、サポート等することができる。これに対し、前記サーバプロバイダーは、たとえば、サブスクリプションまたは都度料金の契約によって前記顧客から支払いを受けることができる。追加的にまたは代替的に、前記サービスプロバイダーは、1つまたは複数の第三者から広告材料の販売により料金を得ることができる。
本発明の1つの態様においては、アプリケーションは、本発明の1つまたは複数の態様を実行ために配置される。一例として、アプリケーションの配置は、本発明の1つまたは複数の態様を実行することがオペラブルなコンピュータ基盤の提供を含む。
本発明の更なる態様においては、コンピュータ基盤は、その内部にて前記コンピュータシステムと組み合わせれたコードが本発明の1つまたは複数の態様を実行することが可能である、コンピュータシステムにコンピュータ読み取り可能コードが統合されるように配置される。
本発明のさらなる態様においては、コンピュータシステムにコンピュータ可読コードの統合を含む、統合されたコンピューティング基盤に対するプロセスが提供される。前記コンピュータシステムは、その内部において前記コンピュータ媒体は本発明の1つまたは複数の態様を含んでいる、コンピュータ可読コード媒体を含む。前記コンピュータシステムと組み合わされた前記コードは、本発明の1つまたは複数の態様の実行を行うことが可能である。
様々な実施例が上記では記述されているが、これらは単なる例に過ぎない。たとえば、他のアーキテクチャのコンピューティング環境は、本発明の1つまたは複数の態様、および/または、異なる形式のサーバ、アクセラレータまたはその他のコンピューティングユニット、および/または、用いられ得るスイッチまたはその他のプログラムステアリングユニット、を組み込みまた使用することができる。さらに、様々な前記データ構造および/またはレコードまたは指令において提供される情報は、ここにおいて記述されているものよりもさらに相違していることがある。さらに、要約レコードおよび指令以外の構造も使用されることがある。他の例もまた可能である。本発明の趣旨から離れることなく、その他の多数の変更が、施されることが可能である。
さらに、他の形式のコンピューティング環境は、本発明の1つまたは複数の態様から利益を得ることができる。一例として、ある環境は、その内部にて特定のアーキテクチャー(たとえば、指令実行、アドレス移行のようなアーキテクチャー化された機能、アーキテクチャー化されたレジスターを含む)またはこれらのサブセットがエミュレート(例、プロセッサーおよびメモリーを有する単純なコンピュータシステムにおいて)される、エミュレータ(例、ソフトウェアまたは他のエミュレーション機構)を含むことができる。
このような環境においては、エミュレーターを実行するコンピュータがエミュレートされた機能以外の異なるアーキテクチャーを有することができるとしても、前記エミューレターの1つまたは複数のエミュレーション機能は、一つまたは複数の本発明の態様を実施することができる。一例として、エミュレーションモードにおいては、エミュレートされる特定の指示またはオペレーションはデーコードされ、また適切なエミュレーション機能は個々の指示またはオペレーションを実行するよう構築されている。
エミュレーション環境においては、ホストコンピュータは、たとえば、指示およびデータを記憶するメモリー;メモリーから指示を呼び出し、かつ選択的に呼び出された指示にローカルバッファリングを提供する、指示呼び出しユニット;呼び出された指示を受領し、呼び出された指示の形式を決定する指示デコードユニット;および指示を実行する指示実行ユニット、を含む。実行は、データをメモリーからレジスターにロードを行うこと;レジスターからメモリーに戻ってきたデータを記憶すること;または、前記デコードユニットの決定に応じて、数的またはロジカルなオペレーションのなんらかの形式を実行すること、を含む。たとえば、前記ユニットによって実行される前記オペレーションは、1つまたは複数のエミューレターソフトウェア内のサブルーチンとして実行される。
さらに、プログラムコードを記憶および/または実行するデータ処理システムは、システムバスを通じてメモリーエレメントと直接または間接に関連付けれる少なくとも1つのプロセッサーを含むものとして用いることができる。前記メモリーエレメントは、たとえば、実行過程におけるバルクストレージから発生されねばならないタイムスコードの数を減らすために、少なくともなんらかのプログラムコードの一時的な記憶を提供する、前記プログラムコード、バルクストレージ、およびキャッシュメモリーの実際の実行の間に用いられる、ローカルメモリーコードを含む。
インプット/アウトプットまたはI/O機器(キーボード、ディスプレイ、ポインティング機器、DASD,テープ、CD、DVD、サムデバイスおよびその他のメモリー媒体などを含むが、これらに限られない)は、直接またはI/Oコントローラの介在を通して、前記システムと関連づけられる。ネットワークアダプターもまた、私的または公的なネットワークの介在を通じて、その他のデータ処理システムまたはリモートプリンターまたは記憶機器と前記データ処理システムが関連付けられるように、前記システムと関連づけられる。
本書面にて用いられる用語は、特定の実施例の目的のために用いられているに過ぎず、また本発明を限定することを意図するものではない。本書面にて使用されているとおり、単数を意味する用語は、その意味が明確に単数を意図していない限り、複数の形態をも含めて意図されている。さらに、“含む”または“含んでいる”の用語は、明細書において用いられるときには、記述されている機能、完全体、ステップ、オペレーション、要素、および/またはコンポーネントの存在を特定するが、1つまたは複数のその他の機能、完全体、ステップ、オペレーション、要素、コンポーネントおよび/またはこれらの集合の存在を除外するものではない。
請求項に含まれるすべてのミーンズプラスファンクション要素に対応する構造、素材、対応および同等物は、もしあれば、明示的にクレームされた請求項のその他の構成要素との組み合わせによる当該機能を実行するための、すべての構造、素材または対応を含むことが意図されている。本発明の記述は、説明と記述の目的のために述べられているが、網羅的であることが意図するものではなく、開示された態様に本発明を制限するものではない。多数の改変またはバリエーションが存することは、本発明の範囲および趣旨から逸脱することなく当該技術の通常のスキルを有するものにとって自明である。本発明の本質および実用的な応用を最適に説明するために、また本技術分野にておいて通常のスキルを有するものが企図される特定の使用に適用するような様々な改変とともに様々な実施態様のために本発明を理解することができるように、前記実施例は選択され、記述されたものである。

Claims (12)

  1. コンピューティング環境におけるストリーム処理を促進するコンピュータプログラムであって、前記コンピュータプログラムは、
    手順を処理回路に実行させるものであり、前記手順は、
    プログラム可能ユニットによって、前記プログラム可能ユニットにより受領されるストリームの記述子を取得させる手順であって、前記プログラム可能ユニットは、前記コンピューティング環境における第一のコンポーネントによって少なくとも部分的にプログラムされる手順、
    前記ストリームを、プログラム可能ユニットによって、受領させる手順、
    前記プログラム可能ユニットによって、取得された記述子の類型に基づいて、前記ストリームの処理を行わせる手順であって、前記処理は、
    前記ストリームに関連するデータを第一のコンポーネントに提供させる手順、
    前記プログラム可能ユニットにおいて、前記ストリームのための一組のオペレーションを実行させる手順、および、
    ストリームに関連する情報を、前記ストリームのための他の組のオペレーションを実行させるために、コンピューティング環境における第二のコンポーネントに送付させる手順、
    のうちの少なくともいずれか1つを含む前記処理を行わせる手順であって、前記処理は、
    前記プログラム可能ユニットによる、前記プログラム可能ユニットによって実行される一組のオペレーションの決定、および前記第二のコンポーネントによって実行される前記一組のオペレーションにおけるデータに比してより粒度の細かいデータに関する別個のセットのオペレーションの決定、
    を含む、前記コンピュータプログラム。
  2. 前記取得がストリームのソースのうちの少なくともひとつから要約レコードの受領を含むものであって、前記要約レコードはストリームにおける特性を含むものである、請求項1に記載の前記コンピュータプログラム。
  3. 前記第一のコンポーネントが前記プログラム可能ユニットと接続されたサーバーであって、前記提供されるデータが前記要約レコードの前記サーバーへの提供を含む、請求項2に記載の前記コンピュータプログラム。
  4. 前記処理が、前記要約レコードの受領に応じた、前記サーバーによるストリームデータ構造のアップデートをさらに含むものである、請求項3に記載の前記コンピュータプログラム。
  5. 前記取得が第一のコンポーネントからのワークロード指令の受領を含むものであって、前記ワークロード指令が前記ストリームに関連する特性を記述するものである、請求項1に記載の前記コンピュータプログラム。
  6. 前記情報が前記ストリームに関するオペレーションの実行の結果を含む、請求項1に記載の前記コンピュータプログラム。
  7. 第一のコンポーネントによるプログラム可能ユニットのプログラミングの少なくとも一部分に前記決定が基づくものである、請求項に記載の前記コンピュータプログラム。
  8. 前記第二のコンポーネントが、前記プログラム可能ユニットと接続されたストリームクラスターのコンピューティングユニットである請求項に記載の前記コンピュータプログラム。
  9. コンピューティングユニットが、アクセラレータを含む請求項に記載の前記コンピュータプログラム。
  10. 前記処理がさらに、第一のコンポーネントに対する前記ストリームの処理によるアウトプットの提供を含むものであり、前記アウトプットの提供が、前記プログラム可能ユニットおよび前記第二のコンポーネントのうちの少なくとも1つによって実行される請求項1に記載の前記コンピュータプログラム。
  11. メモリーおよび前記メモリーとの通信を行うプロセッサーからなるコンピューター・システムであって、請求項1、2、5、7、および10のいずれかに記載のすべての手順を実行する前記コンピューター・システム。
  12. 請求項1、2および5のいずれかに記載のすべての手順を実行する方法。
JP2012543578A 2009-12-15 2010-11-25 複数の粒度を持つストリームを処理するためのプログラム、コンピュータシステムおよび方法 Active JP5802215B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/637,972 US8892762B2 (en) 2009-12-15 2009-12-15 Multi-granular stream processing
US12/637,972 2009-12-15
PCT/EP2010/068205 WO2011073008A1 (en) 2009-12-15 2010-11-25 Multi-granular stream processing

Publications (2)

Publication Number Publication Date
JP2013513876A JP2013513876A (ja) 2013-04-22
JP5802215B2 true JP5802215B2 (ja) 2015-10-28

Family

ID=43618340

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012543578A Active JP5802215B2 (ja) 2009-12-15 2010-11-25 複数の粒度を持つストリームを処理するためのプログラム、コンピュータシステムおよび方法

Country Status (6)

Country Link
US (1) US8892762B2 (ja)
JP (1) JP5802215B2 (ja)
CN (1) CN102656860B (ja)
DE (1) DE112010004809B4 (ja)
GB (1) GB2488454B (ja)
WO (1) WO2011073008A1 (ja)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8892762B2 (en) 2009-12-15 2014-11-18 International Business Machines Corporation Multi-granular stream processing
US8819183B2 (en) * 2009-12-15 2014-08-26 International Business Machines Corporation Concurrent execution of request processing and analytics of requests
US8874638B2 (en) * 2009-12-15 2014-10-28 International Business Machines Corporation Interactive analytics processing
ES2694101T3 (es) * 2011-10-03 2018-12-18 Affirmed Networks, Inc. Distribución de contenido móvil
EP2819013B1 (en) 2013-06-24 2019-11-27 Alcatel Lucent Automated adaption of a Codec
US10721323B2 (en) * 2018-06-19 2020-07-21 Salesforce.Com, Inc. High-performance data streaming
CN114860684A (zh) * 2021-02-04 2022-08-05 华为技术有限公司 一种流数据存储系统中流数据访问方法及装置

Family Cites Families (53)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4636947A (en) * 1984-03-14 1987-01-13 Docutel/Olivetti Corporation ATM task scheduling system for simultaneous peripheral device transactions processing
US6704861B1 (en) * 1993-06-17 2004-03-09 Hewlett-Packard Development Company, L.P. Mechanism for executing computer instructions in parallel
US5526409A (en) * 1993-10-26 1996-06-11 Visa International Service Association Adaptive communication system within a transaction card network
US5533204A (en) * 1994-04-18 1996-07-02 Compaq Computer Corporation Split transaction protocol for the peripheral component interconnect bus
US7096003B2 (en) * 1996-08-08 2006-08-22 Raymond Anthony Joao Transaction security apparatus
US6442533B1 (en) * 1997-10-29 2002-08-27 William H. Hinkle Multi-processing financial transaction processing system
US6665728B1 (en) * 1998-12-30 2003-12-16 Intel Corporation Establishing optimal latency in streaming data applications that use data packets
JP2000353066A (ja) 1999-06-11 2000-12-19 Canon Inc 情報処理装置、情報処理方法、及び記憶媒体
US6813251B1 (en) * 1999-07-27 2004-11-02 Intel Corporation Split Transaction protocol for a bus system
US6647381B1 (en) * 1999-10-27 2003-11-11 Nec Usa, Inc. Method of defining and utilizing logical domains to partition and to reorganize physical domains
US7159233B2 (en) * 2000-01-28 2007-01-02 Sedna Patent Services, Llc Method and apparatus for preprocessing and postprocessing content in an interactive information distribution system
US6941513B2 (en) * 2000-06-15 2005-09-06 Cognisphere, Inc. System and method for text structuring and text generation
US7389531B2 (en) * 2000-06-16 2008-06-17 Entriq Inc. Method and system to dynamically present a payment gateway for content distributed via a network
US6407680B1 (en) * 2000-12-22 2002-06-18 Generic Media, Inc. Distributed on-demand media transcoding system and method
US7327704B2 (en) 2001-10-03 2008-02-05 Motorola, Inc. Method and apparatus for facilitating dormant mode, packet data mobile handoffs
EP1454249A4 (en) * 2001-12-15 2006-07-19 Thomson Licensing SYSTEM AND METHOD FOR DISTRIBUTING DATA RIVERS OF SEVERAL DATA TYPES AT DIFFERENT PRIORITY LEVELS
CN1232068C (zh) 2002-01-21 2005-12-14 华为技术有限公司 锁定网络设备的方法
US20030191805A1 (en) * 2002-02-11 2003-10-09 Seymour William Brian Methods, apparatus, and systems for on-line seminars
US6868439B2 (en) * 2002-04-04 2005-03-15 Hewlett-Packard Development Company, L.P. System and method for supervising use of shared storage by multiple caching servers physically connected through a switching router to said shared storage via a robust high speed connection
CN1232086C (zh) 2002-08-07 2005-12-14 华为技术有限公司 实现组播代理多粒度用户管理的方法
US20040039691A1 (en) * 2002-08-15 2004-02-26 Barratt Robert E. Electronic funds transaction system
US7296263B1 (en) * 2002-12-12 2007-11-13 F5 Networks, Inc. Method and system for performing operations on data using XML streams
US20040167863A1 (en) * 2003-02-21 2004-08-26 Knowles W. Jeffrey System and method of transferring data through transaction process
US8209375B2 (en) * 2003-03-07 2012-06-26 Ricoh Co., Ltd. Communication of compressed digital images with restricted access and server/client hand-offs
US7353299B2 (en) * 2003-05-29 2008-04-01 International Business Machines Corporation Method and apparatus for managing autonomous third party data transfers
AU2003274013A1 (en) * 2003-10-15 2005-05-11 Ntt Docomo, Inc Apparatus and method for controlling an operation of a plurality of communication layers
US7478400B1 (en) * 2003-12-31 2009-01-13 Symantec Operating Corporation Efficient distributed transaction protocol for a distributed file sharing system
US7761375B2 (en) * 2004-03-16 2010-07-20 Hewlett-Packard Development Company, L.P. Transaction switch and a method for use thereof
KR101214326B1 (ko) * 2004-07-09 2012-12-21 텔레폰악티에볼라겟엘엠에릭슨(펍) 멀티미디어 통신 시스템에서 여러 서비스를 제공하는 방법및 장치
US7797720B2 (en) * 2004-10-22 2010-09-14 Microsoft Corporation Advanced trick mode
US7987272B2 (en) * 2004-12-06 2011-07-26 Cisco Technology, Inc. Performing message payload processing functions in a network element on behalf of an application
US7574405B2 (en) * 2004-12-23 2009-08-11 General Electric Captical Corporation Apparatus and method for verifying source of funds regarding financial transactions
JP2007004595A (ja) * 2005-06-24 2007-01-11 Hitachi Ltd コンピュータ制御方法、コンピュータ、情報処理システム、及びプログラム
US7505686B2 (en) * 2005-09-01 2009-03-17 Alcatel-Lucent Usa Inc. Highly scalable multi-granular node architecture
JP2006146951A (ja) 2005-12-28 2006-06-08 Nec Corp コンテンツ動的ミラーリングシステム
US20080082647A1 (en) * 2006-09-29 2008-04-03 Dennis Baker Connection reservation in dynamic node allocation computing environments
US7743161B2 (en) * 2006-10-10 2010-06-22 Ortiva Wireless, Inc. Digital content buffer for adaptive streaming
JP4606404B2 (ja) * 2006-12-01 2011-01-05 富士通株式会社 計算資源管理プログラムおよび計算資源管理装置
US8086827B2 (en) * 2006-12-28 2011-12-27 Intel Corporation Mechanism for irrevocable transactions
CN101611380A (zh) * 2007-01-30 2009-12-23 尼玛实验室公司 推测性吞吐量计算
JP2008197783A (ja) 2007-02-09 2008-08-28 Canon Inc データ処理装置、ネットワークシステム、及びコンピュータプログラム
US8108234B2 (en) * 2007-03-13 2012-01-31 Sap Ag System and method for deriving business processes
US20090028142A1 (en) * 2007-07-25 2009-01-29 Schmidt Brian K Streaming data content in a network
US20090132582A1 (en) * 2007-11-15 2009-05-21 Kim Moon J Processor-server hybrid system for processing data
US8726289B2 (en) * 2008-02-22 2014-05-13 International Business Machines Corporation Streaming attachment of hardware accelerators to computer systems
CA2722949A1 (en) * 2008-04-29 2009-11-05 Visa U.S.A. Inc. Device including user exclusive data tag
CN100570569C (zh) 2008-06-13 2009-12-16 南京邮电大学 网格计算环境下的作业跨域控制方法
US8499059B2 (en) * 2009-05-04 2013-07-30 Rovi Solutions Corporation System and methods for buffering of real-time data streams
US20110126197A1 (en) * 2009-11-25 2011-05-26 Novell, Inc. System and method for controlling cloud and virtualized data centers in an intelligent workload management system
US20110137795A1 (en) * 2009-12-03 2011-06-09 Mastercard International, Inc. Automated teller machine system
US8874638B2 (en) * 2009-12-15 2014-10-28 International Business Machines Corporation Interactive analytics processing
US8819183B2 (en) * 2009-12-15 2014-08-26 International Business Machines Corporation Concurrent execution of request processing and analytics of requests
US8892762B2 (en) 2009-12-15 2014-11-18 International Business Machines Corporation Multi-granular stream processing

Also Published As

Publication number Publication date
DE112010004809T8 (de) 2012-10-11
CN102656860B (zh) 2016-02-17
DE112010004809B4 (de) 2021-10-07
US20110145429A1 (en) 2011-06-16
GB2488454B (en) 2016-06-08
DE112010004809T5 (de) 2012-09-20
WO2011073008A1 (en) 2011-06-23
CN102656860A (zh) 2012-09-05
GB201206886D0 (en) 2012-06-06
JP2013513876A (ja) 2013-04-22
GB2488454A (en) 2012-08-29
US8892762B2 (en) 2014-11-18

Similar Documents

Publication Publication Date Title
JP5802215B2 (ja) 複数の粒度を持つストリームを処理するためのプログラム、コンピュータシステムおよび方法
US11842216B2 (en) Data processing unit for stream processing
US10296386B2 (en) Processing element management in a streaming data system
US9146775B2 (en) Operator graph changes in response to dynamic connections in stream computing applications
KR102622820B1 (ko) 세그먼트화된 데이터 스트림 프로세싱을 위한 선입 선출 기능
US11201836B2 (en) Method and device for managing stateful application on server
KR102601576B1 (ko) 단계 지원 작업 흐름을 위한 방법 및 장치
CN114467076A (zh) 用于步进工作流的方法和装置
JP7416351B2 (ja) タスクおよびワークフローのステートレス並列処理のための方法、装置およびコンピュータプログラム
US20120166585A1 (en) Apparatus and method for accelerating virtual desktop
CN114217996A (zh) 混音方法和装置
US7460550B2 (en) Storage structure and method utilizing multiple protocol processor units
US9282041B2 (en) Congestion profiling of computer network devices
Dong et al. A containerized media cloud for video transcoding service
US10560527B2 (en) Network service chains using hardware logic devices in an information handling system
CN105354080B (zh) 一种任务处理方法及装置
CN111459653A (zh) 集群调度方法、装置和系统以及电子设备
CN116668564A (zh) 多模态网络报文处理方法、装置、设备及可读存储介质
CN109165051A (zh) 一种Linux通用软件快速SaaS化的应用系统及方法
KR20180046632A (ko) 스트리밍 기반의 분산 트랜스코더
US20140095648A1 (en) Storage and Transmission of Log Data In a Networked System
CN105242972A (zh) 一种计算机资源解放系统及方法
KR20150087052A (ko) 클라우드 스트리밍 서비스 시스템, 클라우드 스트리밍 서비스 방법 및 이를 위한 서버
KR20160011031A (ko) 빅 데이터 분석을 위한 웹 서비스 간 데이터 전달 방법 및 구조

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20130905

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20141112

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20141209

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150226

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20150804

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20150828

R150 Certificate of patent or registration of utility model

Ref document number: 5802215

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150