JP5449627B2 - メッセージのグループの順序化された処理 - Google Patents

メッセージのグループの順序化された処理 Download PDF

Info

Publication number
JP5449627B2
JP5449627B2 JP2013533990A JP2013533990A JP5449627B2 JP 5449627 B2 JP5449627 B2 JP 5449627B2 JP 2013533990 A JP2013533990 A JP 2013533990A JP 2013533990 A JP2013533990 A JP 2013533990A JP 5449627 B2 JP5449627 B2 JP 5449627B2
Authority
JP
Japan
Prior art keywords
message
messages
node
group
child
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.)
Expired - Fee Related
Application number
JP2013533990A
Other languages
English (en)
Other versions
JP2013545174A (ja
Inventor
ウィリアム ケイ. ザ サード ジョンソン,
マーティン アンソニー セラノ,
Original Assignee
アティヴィオ, インコーポレイテッド
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 アティヴィオ, インコーポレイテッド filed Critical アティヴィオ, インコーポレイテッド
Publication of JP2013545174A publication Critical patent/JP2013545174A/ja
Application granted granted Critical
Publication of JP5449627B2 publication Critical patent/JP5449627B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L51/00User-to-user messaging in packet-switching networks, transmitted according to store-and-forward or real-time protocols, e.g. e-mail
    • H04L51/04Real-time or near real-time messaging, e.g. instant messaging [IM]
    • H04L51/043Real-time or near real-time messaging, e.g. instant messaging [IM] using or handling presence information
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/40Information retrieval; Database structures therefor; File system structures therefor of multimedia data, e.g. slideshows comprising image and additional audio data
    • 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/54Interprogram communication
    • G06F9/546Message passing systems or structures, e.g. queues

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Multimedia (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Transfer Between Computers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Multi Processors (AREA)

Description

高処理量データフロー処理は、一般に、ノードが計算リソースを表し、エッジがノード間のデータ伝送経路を表す、有向グラフを使用して、データフローを表すことによって実装される。そのような場合、ノードは、非同期データ伝送を使用することによって、相互から非干渉化することができる。この非干渉化は、各計算ノードが次のメッセージの処理を開始することができる前に、下流ノードが処理を完了するのを待つ必要がないので、各計算ノードが可能な限り効率的に実行することを可能にする。ある場合には、複数の計算ノードは、並列に実行され、単一計算ノードとして、一緒に作用し、したがって、多くの作業ユニットを同時に処理することができる。
Staged Event Driven Architecture(SEDA)は、計算ノード間に有界待ち行列を挿入することによって、このアプローチを向上させる。ノードAが作業を別のノードBに転送しようとする場合、ノードAとBとの間の待ち行列が一杯である場合、Aは、Bが待ち行列からのいくつかの作業を実行するまで、ブロッキングを行う。Aのこのブロッキングは、Aが新しい作業を実行し、順に、その入力待ち行列を一杯にしないように防止し、任意の先行オペレーションをブロッキングする。そのような技法を利用する、プロセスの一例は、複数の形態のドキュメント(電子メール、PDF、マルチメディア、ブログ掲載等)がすべて、後続読み出しのために、検索エンジンによって処理およびインデックス化される必要がある、検索エンジンのドキュメント取り込みである。
大量のデータを処理することができるスケーラブルなシステムは、そのような非同期有向グラフモデルを使用することによって提供することができる。いくつかのアプリケーションでは、ドキュメントは、順番に処理される必要があり得る。しかしながら、非同期有向グラフモデルに基づくシステムは、概して、ドキュメントが順番に処理されることを保証することができない。特許文献1に描写される、この問題に対する以前の解決策の1つは、全メッセージが順番に処理されるシステムである。
米国特許出願公開第2010/0005147号明細書
処理が有向グラフによって表される高並列非同期データフロー処理システムは、従属メッセージのグループを生成し、処理し、そのようなグループ内のメッセージを順番に処理する処理ノードを含むことができる。他のメッセージは、処理ノードによって受信される順番に処理することができる。
従属メッセージのグループを識別するために、メッセージ識別子がメッセージに適用される。メッセージの処理は、子メッセージを生成し得る。子メッセージは、親メッセージの関連付けられたメッセージ識別子を組み込むメッセージ識別子が割り当てられる。親メッセージのメッセージ識別子は、関連子メッセージの数を示すように注釈付けされる。
メッセージのグループが順番に処理ノードによって処理される場合、処理ノードは、グループ内のメッセージが記憶されるバッファを維持する。メッセージが受信されると、そのメッセージ識別子は、それがグループ内にあるかどうか、該当する場合、その親ノード、および、親ノードである場合にそれが有する子ノードの数を示す。この情報から、グループ内の全メッセージが受信されたかどうかを決定することができる。グループ内の全メッセージが受信されると、処理ノードは、メッセージを順番に処理することができる。
本発明はさらに、例えば、以下を提供する。
(項目1)
メッセージを使用してデータを処理するためのコンピュータシステムであって、
有向グラフによって表される態様で相互接続されている複数の独立非同期処理ノードを備え、
前記複数の処理ノードは、メッセージのグループを出力するように構成されている第1のノードを含み、
前記複数の処理ノードは、前記第1のノードによって出力されたメッセージのグループ内のメッセージを順番に処理するように構成されている第2のノードを含む、
コンピュータシステム。
(項目2)
各メッセージは、一意の識別子を有し、
メッセージのグループ内において、前記メッセージの一意の識別子は、ツリーによって表される、項目1に記載のコンピュータシステム。
(項目3)
子メッセージの前記一意の識別子は、親メッセージを示し、親メッセージの前記一意の識別子は、子メッセージの数を示す、項目2に記載のコンピュータシステム。
(項目4)
前記第1のノードは、
親メッセージのメッセージ識別子を受信する入力と、子メッセージに対するメッセージ識別子を提供する出力とを有するメッセージ識別子生成器と、
前記子メッセージに対する前記メッセージ識別子を受信する入力を有するメッセージタッガーであって、前記子メッセージは、前記第1のノードによって出力され、前記メッセージタッガーは、前記メッセージ識別子を前記子メッセージに関連付ける、メッセージタッガーと
を備えている、項目1に記載のコンピュータシステム。
(項目5)
前記第2のノードは、
メッセージのグループ内のメッセージを記憶するためのバッファと、
他のメッセージを記憶するための入力待ち行列と、
バッファマネージャと
を備え、前記バッファマネージャは、
入力メッセージがメッセージのグループ内にあるかどうかを検出することと、
前記メッセージがメッセージのグループ内にある場合、前記メッセージが親ノードであるかどうか決定することと、
前記メッセージが親ノードではない場合、前記メッセージを前記バッファに置くことと、
前記メッセージが親ノードである場合、子ノードの数を決定し、前記メッセージを前記バッファに置くことと
を行うように構成されている、項目1に記載のコンピュータシステム。
(項目6)
前記バッファマネージャは、前記メッセージのグループからの全メッセージが前記第2のノードによって受信されたかどうかを検出するように構成されている、項目5に記載のコンピュータシステム。
(項目7)
前記バッファマネージャは、前記メッセージ識別子からの親ノードおよび子ノードの数を前記バッファ内のメッセージの数と比較することによって、前記メッセージのグループからの全メッセージが受信されたかどうかを検出する、項目6に記載のコンピュータシステム。
(項目8)
前記第2のノードは、メッセージプロセッサをさらに備え、前記メッセージプロセッサは、前記入力待ち行列および前記バッファからのメッセージを処理し、前記メッセージプロセッサは、前記バッファマネージャがメッセージのグループからの全メッセージが受信されたかどうかを検出した後に、互に対して順番に、前記バッファ内の前記メッセージのグループを処理する、項目6に記載のコンピュータシステム。
(項目9)
前記第1のノードは、
入力メッセージを受信するための入力であって、前記入力メッセージは、一意の識別子を伴う親メッセージである、入力と、
前記親メッセージを処理するための第1のメッセージプロセッサであって、前記第1のメッセージプロセッサは、メッセージのグループ内の1つ以上の子メッセージを提供する出力を有する、第1のメッセージプロセッサと、
前記子メッセージを提供する出力と
を備え、
各子メッセージは、前記親メッセージを示す前記一意の識別子を有し、親メッセージの前記一意の識別子は、子メッセージの数を示すように修正されている、項目1に記載のコンピュータシステム。
(項目10)
前記第2のノードは、
メッセージのグループ内のメッセージを記憶するためのバッファと、
他のメッセージを記憶するための入力待ち行列と、
第2のメッセージプロセッサであって、前記入力待ち行列および前記バッファからのメッセージを処理する第2のメッセージプロセッサと、
バッファマネージャと
を備え、前記バッファマネージャは、
入力メッセージがメッセージのグループ内にあるかどうかを検出することと、
前記メッセージがメッセージのグループ内にある場合、前記メッセージが親ノードであるかどうか決定することと、
前記メッセージが親ノードではない場合、前記メッセージを前記バッファに置くことと、
前記メッセージが親ノードである場合、子ノードの数を決定し、前記メッセージを前記バッファに置くことと
を行うように構成され、
前記バッファマネージャは、前記メッセージのグループからの全メッセージが前記第2のノードによって受信されたかどうかを検出するようにさらに構成され、前記メッセージプロセッサは、前記バッファマネージャが前記メッセージのグループからの全メッセージが受信されたかどうかを検出した後に、前記バッファ内のメッセージのグループを順番に処理する、項目9に記載のコンピュータシステム。
図1は、有向グラフを使用して、処理を表す高並列非同期データフロー処理システムを実装する例示的コンピュータシステムのブロック図である。 図2は、メッセージ識別子がどのようにメッセージに割り当てられるかを描写する、流れ図である。 図3A−3Dは、有向グラフを使用して、ドキュメント取り込みシステム内の複数の処理ノードを表す追加の実施例のブロック図である。 図3A−3Dは、有向グラフを使用して、ドキュメント取り込みシステム内の複数の処理ノードを表す追加の実施例のブロック図である。 図3A−3Dは、有向グラフを使用して、ドキュメント取り込みシステム内の複数の処理ノードを表す追加の実施例のブロック図である。 図3A−3Dは、有向グラフを使用して、ドキュメント取り込みシステム内の複数の処理ノードを表す追加の実施例のブロック図である。 図4は、メッセージのグループを生成する処理ノードのための例示的構造のブロック図である。 図5は、メッセージのグループを処理する処理ノードのための例示的構造のブロック図である。 図6は、図4におけるような処理ノードがどのように動作し得るかの実施例を描写する流れ図である。 図7は、図5におけるような処理ノードがどのように動作し得るかの実施例を描写する流れ図である。
インデックス化され、検索可能であるデータ記憶装置へのドキュメントの処理および取り込みは、多数のステップを伴い、そのうちのいくつかは、特定の順序で実行され、その他は、並行して処理される。本明細書で使用される場合、用語「ドキュメント」とは、.pdfファイル、ビデオ、オーディオ、電子メール等の非構造化データ、またはXMLファイル、.csvファイル、あるいはデータベースソースから受信したデータ等の構造化データを指し得る。ドキュメント処理および取り込みを促進するために、ドキュメントは、一意のメッセージIDを有するメッセージ内に保持される。
いくつかのドキュメント(例えば、複数の添付ファイルを有する電子メール)は、さらに他のドキュメントを含む。そのようなドキュメントは、ドキュメントを処理する、複数の処理スレッドの可能性、ドキュメントの異なる部分に対しする異なる処理時間の可能性、および、ドキュメントの再帰的処理の可能性を導入する。そのようなドキュメントからのデータのデータベースへの収容がドキュメントの処理の完了に依存する場合、そのような可能性は、ドキュメントの処理に有意な複雑性を導入する。
図1は、ドキュメントを処理するための、高並列非同期データフロー処理システムを実装する例示的コンピュータシステムを例証し、有向グラフを使用して処理を表す。1つ以上のドキュメント110は、レコードベースのデータベース管理システム(RDBMS)等、ドキュメント記憶装置100を介して、システムに入力を供給する。ドキュメント110は、メッセージ111内に挿入され、メッセージ111も各々は、一意のメッセージ識別子を有する。処理ノード120a−cは、メッセージ111を受信し、適宜、それら内のドキュメントを処理する。各処理ノード120a−cは、複数のスレッドプールを備え、複数のスレッドプールは、同時に、多くのメッセージ111の処理を可能にし得る。入力待ち行列125a−dは、各処理ノードに先行する。入力待ち行列125a−dは、各ノードがリソースを過剰に投入せずにメッセージを処理することを可能にし、待ち行列が一杯になる場合に、先行ノードをブロッキングする。したがって、入力待ち行列125a−dは、スレッドプールとともに、全体的システムにかかる負荷を抑制する。各メッセージは、処理された後、例えば、インデックス化された検索可能データ記憶装置140に取り込まれ得る。
そのようなシステムは、典型的には、プラットフォーム(例えば、オペレーティングシステムおよびアプリケーション処理フレームワークを伴うコンピュータ)を使用して実装され、プラットフォームは、仕様に準拠するプログラマによって作成されるアプリケーションを処理するように設計されている。例えば、プログラマは、高並列任意有向グラフを形成する相互接続された処理ノードを伴うアプリケーションを作成する。
そのようなアプリケーションでは、アプリケーションプログラマは、特定の処理ノードが、メッセージを生成し得るか、または、メッセージを互に対して特定の順番で処理するかどうか決定するであろう。大部分のメッセージは、順番に処理される必要はない。順序化されたメッセージ処理を必要としない処理ノードは、メッセージ順序化を考慮することなく他のノードと並行して稼動することができる。しかしながら、いくつかの処理ノードは、単一メッセージから、複数のメッセージ、すなわち、メッセージのグループを作成し、このメッセージのグループ内のメッセージは、互に対して順番に処理される必要があり得る。また、処理ノードは、メッセージのグループから、メッセージのうちの1つ以上を受信し得、互に対して順番に受信したメッセージを処理する必要があり得る。グループ内にない他のメッセージは、グループに対して、任意の順番で処理することができる。アプリケーションプログラマは、処理ノードが従属メッセージのグループを生成するかどうか、および処理ノードが、順番に、従属メッセージのグループからのメッセージを処理するかどうか決定するであろう。
一般に、メッセージ順序化は、従属メッセージを一緒にグループ化することによって、このシステム内に維持される。例として、メッセージのグループは、ツリーとしてメッセージ間の従属を表すメッセージ識別子を使用することによって識別され得る。個々のノードおよび処理されるメッセージの特性は、順序化制約が満たされ、再帰的処理が全体的システム性能に影響を及ぼすことなく可能にされるように、メッセージフローを方向付けるために使用される。例えば、いくつかの処理ノードは、順序化されたメッセージ処理を必要としないことがあり、いくつかのメッセージタイプは、任意の特定の順番で処理されることを必要としない。
任意の処理ノードは、順序化された処理を必要とするメッセージのグループからのメッセージを処理しているかどうかを検出するように構成されることができる。例えば、図1では、処理ノード130は、メッセージのグループからのメッセージを検出し、次いで、処理を停止し、メッセージのグループ内の受信したメッセージに先行するメッセージの受信を待つ。グループの順序化されたメッセージ処理を必要とする処理ノードは、そのように注釈付けされ、メッセージ識別子に基づいて、順番に、メッセージのグループ内のメッセージを配信する修正入力待ち行列によって先行される。
図2は、メッセージ識別子をメッセージに割り当てるための方法200を説明する流れ図である。ステップ210では、メッセージ識別子を伴うメッセージが受信される。次に、220では、メッセージが処理され、1つ以上の子メッセージが生成される。例えば、電子メール等のメッセージは、複数の添付ファイルを含み得、子メッセージは、各添付ファイルに対して生成される。230では、子メッセージは、親メッセージのメッセージ識別子を組み込むようにエンコードされるメッセージ識別子が割り当てられる。240では、親メッセージのメッセージ識別子は、子メッセージの数を示すように注釈付けされる。この注釈は、処理ノードが全関連メッセージが受信された場合を把握することを可能にする。方法200は、特定のシーケンスで発生するように示されるが、他の実施形態では、同様に、他のシーケンスも可能である。従属メッセージのグループを生成する、処理ノードは、このメッセージ識別子割当プロセスを実装する。
例えば、ステップ210において、メッセージ識別子「1」を有し、複数の添付ファイルを含む電子メールメッセージであるメッセージが受信されると仮定する。220では、電子メール処理ノードは、電子メールメッセージを処理し、各添付ファイルに対して、子メッセージを生成する。各添付ファイルは、親のメッセージ識別子を組み込むメッセージの中に挿入される。この場合、親識別子は、「1」である。したがって、2つの添付ファイルがある場合、第1の添付ファイルは、マルチパートメッセージ識別子「1.1」を伴うメッセージの中に挿入され、第2の添付ファイルは、識別子「1.2」を伴うメッセージの中に挿入されるであろう。240では、親メッセージのメッセージ識別子は、2つの子メッセージを有するように注釈付けされる。さらに、子ドキュメント「1.1」が2つの子を有すると仮定する。220では、子メッセージが生成され、230では、子メッセージは、ID「1.1.1」および「1.1.2」が割り当てられる。子ドキュメント「1.1」は、次いで、240において、2つの子を有するように注釈付けされる。
図3A−3Dは、有向グラフを使用して、ドキュメント取り込みシステム内の複数の処理ステップ(ノード)を表す、例示的アプリケーションを例証する。1つ以上のドキュメントソースが処理ノード302を介して、システムに入力を提供する。ソースとして、ファイルシステムリポジトリ、電子メールサーバ、物理的媒体(例えば、CD−ROM、DVD)、音声認識システムから変換されたテキスト、データベース等が挙げられ得る。処理ノード302は、外部ソースからのドキュメント、または、追加のドキュメントが処理中に「発見」され、システムに戻るようにルーティングされる場合のドキュメントの処理ステップへの取り込みを管理する。ドキュメントは、最初に、ドキュメントタイプスプリッタ304にルーティングされる。スプリッタ304は、どの後続処理ノード(または、複数のノード)にメッセージを送信すべきかを決定する。例えば、システムは、電子メールテキスト(ある場合には、ヘッダ情報および/またはルーティング情報ならびに電子メールテキストを含み得る)を処理するための電子メールノード306、pkZIPまたはいくつかの他のファイルアーカイブまたは圧縮プログラムを使用して作成されるドキュメントを処理するための.zip処理ノード308、Microsoft Word(または、GOOGLE DOCS、Open Office等の他のワード処理プログラム)を使用して作成されるドキュメントを処理するための.doc処理ノード310、およびポータブルドキュメント形式におけるドキュメントを処理するための.pdf処理ノード312を含み得る。図示されない処理ノードの他の例として、画像を処理するための.jpg処理ノード、動画を処理するための.mpegノード、オーディオを処理するための.aviノード、種々の構造化データ形式を処理するためのノード等が挙げられる。提供される実施例では、4つの異なる処理ノードが存在する。しかしながら、任意の数のノードが可能であって、典型的には、システムに利用可能なドキュメントの数およびタイプに基づく。ある場合には、アプリケーションは、そのタイプの多数のドキュメントが頻繁に見られる場合、および/またはプロセスがリソース集約的である場合、同一機能を果たす複数の処理ノード(例えば、.jpgファイル専用の3つのノード)を含み得る。
いくつかの事例では、処理ノードは、メッセージを、さらなる分析を受ける追加のメッセージに分割する。例えば、電子メールは、1つ以上の添付ファイルを有し得、それらの各々この、異なる処理ノードにおいて、異なる処理を受ける。さらに、ドキュメントインデックスの完全性を維持するために、2つ以上の構成要素を有するドキュメントは、全構成要素が正常に処理されない限り、かつそれまで、インデックスに書き込まれるべきではない事例も存在し得る。言い換えると、電子メールへのある添付ファイルの処理が失敗する場合、電子メールのテキスト(および、正常に処理された他の構成要素または添付ファイル)は、インデックスに書き込まれるべきではない。いくつかの実装は、部分的ドキュメントインデックス化を可能にし得る一方、他の実装では、本制約は、例外なく、実施され得る。ある場合には、ルールを使用して、どの「失敗」が容認可能とみなされ、どれが致命的であるかを決定し得る。図2に関連して上に描写されたメッセージ識別子は、この目的のために、親メッセージ、例えば、電子メールを含むメッセージを、子メッセージ(例えば、電子メール添付ファイル)に関連付けるように使用される。親メッセージは、生成される子メッセージの数を示すように注釈付けされる。
一般に、各処理ノードは、メッセージ待ち行列を含む。メッセージ待ち行列は、特定のノードにおいて、処理を待つ複数のメッセージを記憶するために使用される。メッセージ待ち行列は、順番から外れて処理待ち行列に到着した場合に、そのメッセージ識別子に基づいて、従属メッセージのグループ内のメッセージを並べ替えることもできる。
図3Aは、一実施形態による、単純な電子メールメッセージ(例えば、メッセージテキストを有するが、添付ファイルを有していない、電子メール)がどのように処理されるかを例証する。電子メールがシステムに入るのに伴って、0のメッセージIDが割り当てられたメッセージに挿入され、ドキュメントタイプスプリッタ待ち行列304aに転送される。ドキュメントは、次いで、リソースが利用可能である場合、スプリッタ304に進む。スプリッタ304は、それを電子メールとして認識し、電子メール処理ノード306による処理に備えて、メッセージを電子メール待ち行列306aに転送する。
電子メールが添付ファイルを含む事例では、電子メールを含むメッセージは、電子メールに関連付けられた子メッセージが存在することを示すように注釈付けされ、それによって、インデクサは、インデックス待ち行列318を処理する場合、全ての関連メッセージが受信されたときを把握し得る。新しい「子」メッセージが下流処理のために生成されると、現在のメッセージは、「子を有する」としてマークされ、新しい子メッセージは、親IDを組み込むようにエンコードされるメッセージIDに割り当てられる。そのようなメッセージの相互参照は、メッセージがすべてのその子(または、その親および兄弟メッセージ)が処理のために、後続処理ノードに到着するまで、その後続処理ノードに保持されることを可能にする。
処理を要求するメッセージ(例えば、電子メールノード306におけるメッセージID0)は、処理され、インデックス待ち行列318に転送され、利用可能である場合、インデックスに解放される。
図3B−3Dは、電子メールメッセージが2つの添付ファイル(.pdfファイルと、複数の圧縮された.docファイルを含む、.zipファイル)を有する、若干より複雑な場合を例証する。図3Bを具体的に参照すると、電子メールノード306において処理後、各添付ファイルは、次のマルチパートメッセージIDが割り当てられ、処理ノード302に戻るように再ルーティングされ、ドキュメント待ち行列304aに置かれる。ドキュメントスプリッタ304は、.pdfファイルを含む子メッセージを.pdf待ち行列312aに、.zipファイルを含む子メッセージを.zip待ち行列308aに転送する。これらの2つの子メッセージは、親メッセージID 0を用いてエンコードされ、それらのそれぞれの処理ノード308および312で処理される。.zipファイルを処理する間に、.zipノード308は、.zipファイル内に含まれる複数のファイルが存在することを認識し、メッセージに関連するn個の子メッセージが存在するという指示によって、メッセージに注釈付けする(nは、.zipファイル内に含まれるファイルの数を表す)。子メッセージは、次いで、インデックス待ち行列318に転送される。インデックサは、同一メッセージIDを有する全メッセージが受信されたことを決定する。しかしながら、インデックサは、.zip子メッセージが2つの追加の子メッセージ(.docファイル)が存在するという指示を含むので、2つのメッセージを処理しないことがある。したがって、インデックサは、それらのファイルの処理が完了するのを待つ。
次に、図3Cを参照すると、.zipファイルコンテンツは、マルチパートメッセージ識別子が割り当てられ、処理ノード302に戻るように再ルーティングされ、ドキュメント待ち行列304aに転送される。スプリッタ304は、新しいマルチパートメッセージIDを有する2つの.docファイルを.doc待ち行列310aに転送する。新しいマルチパートメッセージIDを有する全メッセージがインデックス待ち行列318にルーティングされる。インデックスは、メッセージをインデックス内に記憶する前に、初期マルチパートメッセージID(2つの子)および新しいマルチパートメッセージID(1つの子)を有するオリジナルメッセージ内に記述される子メッセージの受信を待つであろう。図3Dは、メッセージID 0ならびにインデックス待ち行列318に置かれるその子メッセージ(.zipファイルおよび.pdfファイル)および孫メッセージ(.docファイル)の階層リストを有するメッセージを例証する。
図4は、メッセージのグループを生成する、処理ノードのための例示的構造のブロック図である。
処理ノードは、概して、現在のメッセージ418を処理するメッセージプロセッサ400を含む。このメッセージプロセッサ400は、メッセージを処理した結果として、結果402を生成し得る。例えば、これは、.zipファイルに関連付けられたメタデータの処理を含み得る。メッセージプロセッサ400は、処理されている現在のメッセージの子メッセージである、1つ以上の出力メッセージ404も出力し得る。例えば、この処理ノードが.zipファイルを処理するためのものである場合、zipファイルの以前のコンテンツを削除するためのメッセージ(zipファイルの以前のバージョンの処理の結果)が生成される。加えて、.zipファイル内の各ドキュメントは、出力メッセージ404となる。メッセージプロセッサ400は、次いで、ID生成器406に、トリガ408を通して、現在のメッセージのメッセージ識別子412を使用して、子メッセージのためのメッセージ識別子410を生成するように命令するであろう。ID生成器406は、次いで、現在のメッセージ識別子412を更新し、追加の子メッセージを有することを示す。メッセージタッガー(message tagger)414は、子メッセージ識別子410によって、出力メッセージ404にタグ付けし、タグ付けされたメッセージ416を出力する。メッセージプロセッサ400が2つ以上の子メッセージを出力する場合、各子メッセージが出力されるのに伴って、現在のメッセージのメッセージ識別子412が更新され、生成された子メッセージの数を反映する。現在のメッセージ418は、次いで、結果402およびID生成器406によって修正されたメッセージ識別子によって増加され、出力される。図5は、メッセージのグループを処理する処理ノードのための例示的構造のブロック図である。
処理ノードは、概して、現在のメッセージを処理するメッセージプロセッサ500を含む。このメッセージプロセッサ500は、メッセージの処理の結果、結果502を出力し得る。従属メッセージのグループを順番に処理する処理ノードは、グループの全メッセージが受信されるまで、グループからのメッセージを記憶するためのソートバッファまたは待ち行列506を使用し、親メッセージが受信された後、グループ内のメッセージの処理を開始することができる。グループからのメッセージの処理開始まで、その入力待ち行列504からの他のメッセージを処理することができる。グループ内のメッセージ処理の間、メッセージプロセッサ500は、入力待ち行列504からのメッセージも処理し得る。
処理ノードは、各入力メッセージ508を処理し、モジュール「グループ?」510によって示されるように、メッセージが従属メッセージのグループ内にあるかどうか決定する(メッセージ識別子によって示されるように)。メッセージがグループ内でない場合、入力待ち行列504に置かれ、メッセージプロセッサ500によって、随時、処理することができる。メッセージがグループ内である場合、メッセージがモジュール「親?」512によって示されるように、グループの親ノードであるか、またはグループ内の親ノードであるかどうかも決定される(メッセージ識別子によって示されるように)。メッセージがグループ内にあるかどうか、および/または親ノードであるかどうかは、バッファマネージャ514に示される。バッファマネージャは、従属メッセージのグループ内の着信メッセージを追跡し、それらをバッファ506に置く。バッファマネージャは、グループ内の全メッセージが受信されたかどうかも決定し(メッセージ識別子を確認することによって)、「グループ完了」指示子をメッセージプロセッサ500に提供する。メッセージプロセッサ500は、次いで、順番に、バッファから、グループのメッセージの処理を開始することができる。次に、図4におけるような処理ノードがどのように動作し得るかを説明する流れ図が図6に関連して描写される。
処理ノードは、ステップ600において、現在のメッセージを受信し、現在のメッセージ識別子を記憶する。処理ノードは、現在のメッセージの処理を開始する602。子メッセージが現在のメッセージを処理することによって生成される場合、子メッセージが生成される604。子メッセージ識別子が、次いで、生成される606。現在のメッセージ識別子は、次いで、更新され608、現在のメッセージが少なくとも1つの子メッセージを有することを反映する。この子メッセージが第1の子メッセージである場合、現在のメッセージ識別子は、子メッセージの数のインジケータを追加するように変更され、子メッセージの数のインジケータは1に設定される。そうでなければ、子メッセージの数は、インクリメントされる。子メッセージは、次いで、ステップ610において、そのメッセージ識別子によってタグ付けされ、出力される。追加の子メッセージが612における決定に伴って、検出される場合、このプロセスは、ステップ604から610まで反復する。ステップ612の前後両方において、現在のメッセージの処理は、継続し、最終的には、完了する(614に示されるように)。
次に、図5におけるような処理ノードがどのように動作し得るかを説明する流れ図が図7に関連して描写される。
図7では、処理ノードは、入力メッセージを受信する700。メッセージがそのメッセージ識別子を確認することによって、従属メッセージのグループ内にあるかどうか決定される702。メッセージがグループ内にない場合、入力待ち行列に置かれる704。メッセージがグループ内にある場合、メッセージが親ノードであるかどうか決定される706。メッセージが親ノードではない場合、バッファに置かれる708。メッセージが親ノードである場合、子ノードの数が、例えば、そのメッセージ識別子から、子ノードの数を抽出することによって、決定される710。メッセージは、次いで、バッファに置かれる708。処理ノードは、次いで、メッセージのグループからの全メッセージがバッファ内に存在するかどうか決定する712。全メッセージが受信された場合、処理ノードは、グループの処理を開始することができると命令される714。グループからのメッセージが処理され、バッファに置かれた後、またはメッセージが入力待ち行列に置かれた場合、処理ノードは、700において、次の着信メッセージの処理に備えている。処理ノードは、入力メッセージが入力待ち行列またはバッファに方向付けられている間、入力待ち行列内またはバッファ内の完了グループからのメッセージを処理し得る。
明細書全体を通して描写される、処理ノードおよびその構成要素およびモジュールは、全体的または部分的に、任意の好適なプログラミング言語または複数の言語(C++、C#、java、Visual Basic、LISP、BASIC、PERL等)を使用して、1つ以上のプロセッサ上で動作する、1つ以上のコンピュータプログラムの組み合わせとして、および/またはハードウェアデバイス(例えば、ASIC、FPGA、プロセッサ、メモリ、記憶装置、および同等物)として、実装することができる。
本発明の方法およびシステムの実装は、1つのコンピュータシステム内における集中方式において、または異なる要素がいくつかの相互接続されたコンピュータシステムにわたって分配される分散方式において実現することができる。任意の種類のコンピュータシステムまたは本明細書に描写される方法を実行するために適合される他の装置が本明細書に描写される機能を果たすために好適である。
ハードウェアおよびソフトウェアの典型的組み合わせは、ロードおよび実行されると、本明細書に描写される方法を実行するように、コンピュータシステムを制御する、コンピュータプログラムを伴う汎用コンピュータシステムであり得る。本発明はまた、本明細書に描写される方法の実装を有効にする全特徴を備え、コンピュータシステム内にロードされると、これらの方法を実行可能である、コンピュータプログラム製品内に埋め込むことができる。
本文脈におけるコンピュータプログラムまたはアプリケーションは、任意の言語、コード、または表記において、直接、あるいはa)別の言語、コード、または表記への変化、b)異なる材料形態における複製の一方または両方後、情報処理能力を有するシステムに、特定の機能を行われるように意図された一式の命令の任意の表現を意味する。有意に、本発明は、その精神または本質的属性から逸脱することなく、他の具体的形態で具現化することができる。前述の実施形態は、したがって、あらゆる観点から、本明細書に描写される本発明に対する限定ではなく、例証とみなされる。

Claims (15)

  1. メッセージを使用してデータを処理するためのコンピュータシステムであって、
    複数の独立非同期処理ノードを備え、前記処理ノードは、1つ以上のコンピュータ上で稼動する1つ以上のコンピュータプログラムを備え、前記処理ノードは、有向グラフによって表される態様で相互接続されており、
    前記複数の処理ノードは、メッセージのグループを出力するように構成されている第1のノードを含み、
    前記複数の処理ノードは、前記第1のノードによって出力されたメッセージのグループ内のメッセージを順番に処理するように構成されている第2のノードを含み、
    前記第2のノードは、
    メッセージのグループ内のメッセージを記憶するためのメモリ内のバッファと、
    他のメッセージを記憶するためのメモリ内の入力待ち行列と、
    バッファマネージャと
    を備え、前記バッファマネージャは、
    入力メッセージがメッセージのグループ内にあるかどうかを検出することと、
    前記メッセージがメッセージのグループ内にある場合、前記メッセージが親ノードであるかどうか決定することと、
    前記メッセージが親ノードではない場合、前記メッセージを前記バッファに置くことと、
    前記メッセージが親ノードである場合、子ノードの数を決定し、前記メッセージを前記バッファに置くことと
    を行うように構成されている、
    コンピュータシステム。
  2. 各メッセージは、一意の識別子を有し、
    メッセージのグループ内において、前記メッセージの一意の識別子は、ツリーによって表される、請求項1に記載のコンピュータシステム。
  3. 子メッセージの前記一意の識別子は、親メッセージを示し、親メッセージの前記一意の識別子は、子メッセージの数を示す、請求項2に記載のコンピュータシステム。
  4. 前記第1のノードは、
    親メッセージのメッセージ識別子を受信する入力と、子メッセージに対するメッセージ識別子を提供する出力とを有するメッセージ識別子生成器と、
    前記子メッセージに対する前記メッセージ識別子を受信する入力を有するメッセージタッガーであって、前記子メッセージは、前記第1のノードによって出力され、前記メッセージタッガーは、前記メッセージ識別子を前記子メッセージに関連付ける、メッセージタッガーと
    を備えている、請求項1に記載のコンピュータシステム。
  5. 前記バッファマネージャは、前記メッセージのグループからの全メッセージが前記第2のノードによって受信されたかどうかを検出するように構成されている、請求項1に記載のコンピュータシステム。
  6. 前記バッファマネージャは、前記メッセージ識別子からの親ノードおよび子ノードの数を前記バッファ内のメッセージの数と比較することによって、前記メッセージのグループからの全メッセージが受信されたかどうかを検出する、請求項5に記載のコンピュータシステム。
  7. 前記第2のノードは、メッセージプロセッサをさらに備え、前記メッセージプロセッサは、前記入力待ち行列および前記バッファからのメッセージを処理し、前記メッセージプロセッサは、前記バッファマネージャがメッセージのグループからの全メッセージが受信されたかどうかを検出した後に、互に対して順番に、前記バッファ内の前記メッセージのグループを処理する、請求項5に記載のコンピュータシステム。
  8. メッセージを使用してデータを処理するためのコンピュータシステムであって、
    各メッセージは、一意の識別子を有し、前記コンピュータシステムは、複数の独立非同期処理ノードを備え、前記処理ノードは、1つ以上のコンピュータ上で稼動する1つ以上のコンピュータプログラムを備え、前記処理ノードは、有向グラフによって表される態様で相互接続されており、
    前記処理ノードは、
    少なくとも1つの第1のノードであって、前記少なくとも1つの第1のノードは、
    入力メッセージを受信するための入力であって、前記入力メッセージは、一意の識別子を伴う親メッセージである、入力と、
    前記親メッセージを処理するための第1のメッセージプロセッサであって、前記第1のメッセージプロセッサは、メッセージのグループ内の1つ以上の子メッセージを提供する出力を有する、第1のメッセージプロセッサと、
    前記子メッセージを提供する出力と
    を備え、
    各子メッセージは、前記親メッセージを示す一意の識別子を有し、親メッセージの前記一意の識別子は、子メッセージの数を示すように修正されている、少なくとも1つの第1のノードと、
    少なくとも1つの第2のノードであって、前記少なくとも1つの第2のノードは、
    メッセージのグループ内のメッセージを記憶するためのメモリ内のバッファと、
    他のメッセージを記憶するためのメモリ内の入力待ち行列と、
    第2のメッセージプロセッサであって、前記入力待ち行列および前記バッファからのメッセージを処理する第2のメッセージプロセッサと、
    バッファマネージャと
    を備え、前記バッファマネージャは、
    入力メッセージがメッセージのグループ内にあるかどうかを検出することと、
    前記メッセージがメッセージのグループ内にある場合、前記メッセージが親ノードであるかどうか決定することと、
    前記メッセージが親ノードではない場合、前記メッセージを前記バッファに置くことと、
    前記メッセージが親ノードである場合、子ノードの数を決定し、前記メッセージを前記バッファに置くことと
    を行うように構成され、
    前記バッファマネージャは、前記メッセージのグループからの全メッセージが前記第2のノードによって受信されたかどうかを検出するようにさらに構成され、前記メッセージプロセッサは、前記バッファマネージャが前記メッセージのグループからの全メッセージが受信されたかどうかを検出した後に、前記バッファ内のメッセージのグループを順番に処理する、少なくとも1つの第2のノードと
    を含む、コンピュータシステム。
  9. ンピュータプログラム命令が記憶されたコンピュータ読み取り可能な記憶装置であって
    前記コンピュータプログラム命令は、コンピュータによって処理されると、前記コンピュータにメッセージを使用してデータを処理するためのシステムを実装するように命令し、
    前記システムは、複数の独立非同期処理ノードを備え、
    前記処理ノードは、1つ以上のコンピュータ上で稼動する1つ以上のコンピュータプログラムを備え、前記処理ノードは、有向グラフによって表される態様で相互接続されており、
    前記複数の処理ノードは、メッセージのグループを出力するように構成されている第1のノードを含み、
    前記複数の処理ノードは、前記第1のノードによって出力されたメッセージのグループ内のメッセージを順番に処理するように構成されている第2のノードを含み、
    前記第2のノードは、
    メッセージのグループ内のメッセージを記憶するためのメモリ内のバッファと、
    他のメッセージを記憶するためのメモリ内の入力待ち行列と、
    バッファマネージャと
    を備え、前記バッファマネージャは、
    入力メッセージがメッセージのグループ内にあるかどうかを検出することと、
    前記メッセージがメッセージのグループ内にある場合、前記メッセージが親ノードであるかどうか決定することと、
    前記メッセージが親ノードではない場合、前記メッセージを前記バッファに置くことと、
    前記メッセージが親ノードである場合、子ノードの数を決定し、前記メッセージを前記バッファに置くことと
    を行うように構成されている、
    コンピュータ読み取り可能な記憶装置
  10. 各メッセージは、一意の識別子を有し、
    メッセージのグループ内において、前記メッセージの一意の識別子は、ツリーによって表される、請求項9に記載のコンピュータ読み取り可能な記憶装置
  11. 子メッセージの前記一意の識別子は、親メッセージを示し、親メッセージの前記一意の識別子は、子メッセージの数を示す、請求項10に記載のコンピュータ読み取り可能な記憶装置
  12. 前記第1のノードは、
    親メッセージのメッセージ識別子を受信する入力と、子メッセージに対するメッセージ識別子を提供する出力とを有するメッセージ識別子生成器と、
    前記子メッセージに対する前記メッセージ識別子を受信する入力を有するメッセージタッガーであって、前記子メッセージは、前記第1のノードによって出力され、前記メッセージタッガーは、前記メッセージ識別子を前記子メッセージに関連付ける、メッセージタッガーと
    を備えている、請求項9に記載のコンピュータ読み取り可能な記憶装置
  13. 前記バッファマネージャは、前記メッセージのグループからの全メッセージが前記第2のノードによって受信されたかどうかを検出するように構成されている、請求項9に記載のコンピュータ読み取り可能な記憶装置
  14. 前記バッファマネージャは、前記メッセージ識別子からの親ノードおよび子ノードの数を前記バッファ内のメッセージの数と比較することによって、前記メッセージのグループからの全メッセージが受信されたかどうかを検出する、請求項13に記載のコンピュータ読み取り可能な記憶装置
  15. 前記第2のノードは、メッセージプロセッサをさらに備え、前記メッセージプロセッサは、前記入力待ち行列および前記バッファからのメッセージを処理し、前記メッセージプロセッサは、前記バッファマネージャがメッセージのグループからの全メッセージが受信されたかどうかを検出した後に、互に対して順番に、前記バッファ内の前記メッセージのグループを処理する、請求項13に記載のコンピュータ読み取り可能な記憶装置
JP2013533990A 2010-10-15 2011-10-13 メッセージのグループの順序化された処理 Expired - Fee Related JP5449627B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/905,211 US8495656B2 (en) 2010-10-15 2010-10-15 Ordered processing of groups of messages
US12/905,211 2010-10-15
PCT/US2011/056054 WO2012051366A2 (en) 2010-10-15 2011-10-13 Ordered processing of groups of messages

Publications (2)

Publication Number Publication Date
JP2013545174A JP2013545174A (ja) 2013-12-19
JP5449627B2 true JP5449627B2 (ja) 2014-03-19

Family

ID=45420937

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013533990A Expired - Fee Related JP5449627B2 (ja) 2010-10-15 2011-10-13 メッセージのグループの順序化された処理

Country Status (5)

Country Link
US (2) US8495656B2 (ja)
EP (1) EP2628098A2 (ja)
JP (1) JP5449627B2 (ja)
CA (1) CA2813135C (ja)
WO (1) WO2012051366A2 (ja)

Families Citing this family (30)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5654983B2 (ja) * 2008-06-17 2015-01-14 アティヴィオ,インコーポレイテッド 順序メッセージ処理
WO2011086549A2 (en) * 2010-01-12 2011-07-21 Correlix Ltd. Method and system for analysis of message transactions in a distributed system
US8495656B2 (en) 2010-10-15 2013-07-23 Attivio, Inc. Ordered processing of groups of messages
US8806656B2 (en) * 2011-02-18 2014-08-12 Xerox Corporation Method and system for secure and selective access for editing and aggregation of electronic documents in a distributed environment
US9595074B2 (en) 2011-09-16 2017-03-14 Imagination Technologies Limited Multistage collector for outputs in multiprocessor systems
US20150172412A1 (en) * 2012-07-06 2015-06-18 Cornell University Managing dependencies between operations in a distributed system
KR101612682B1 (ko) * 2012-08-02 2016-04-14 아마데우스 에스.에이.에스. 분산 및 병렬 환경에서 비동기 메시지를 시퀀싱하는 방법, 시스템 및 컴퓨터 프로그램 제품
EP2693337B1 (en) * 2012-08-02 2017-05-17 Amadeus S.A.S. Method, system and computer program products for sequencing asynchronous messages in a distributed and parallel environment
US8903767B2 (en) 2012-08-02 2014-12-02 Amadeus S.A.S. Method, system and computer program product for sequencing asynchronous messages in a distributed and parallel environment
US10185605B2 (en) * 2012-08-31 2019-01-22 Sap Se In-order message processing with message-dependency handling
KR101410442B1 (ko) * 2012-09-14 2014-06-20 주식회사 더존정보보호서비스 사용자 행위분석 기반 디지털 포렌식 감사 시스템
US8806507B1 (en) * 2013-01-31 2014-08-12 Red Hat, Inc. Dynamic provisioning of message groups
EP2811437A1 (en) * 2013-06-07 2014-12-10 Accenture Global Services Limited Computer system, computer-implemented method and computer program product for sequencing incoming messages for processing at an application
US9571414B2 (en) * 2014-06-27 2017-02-14 Amazon Technologies, Inc. Multi-tiered processing using a distributed strict queue
US9577961B2 (en) * 2014-06-27 2017-02-21 Amazon Technologies, Inc. Input/output management in a distributed strict queue
US9575820B2 (en) * 2014-06-27 2017-02-21 Amazon Technologies, Inc. Client control in a distributed strict queue
US9577878B2 (en) * 2014-06-27 2017-02-21 Amazon Technologies, Inc. Geographic awareness in a distributed strict queue
US9584593B2 (en) * 2014-06-27 2017-02-28 Amazon Technologies, Inc. Failure management in a distributed strict queue
US9591101B2 (en) * 2014-06-27 2017-03-07 Amazon Technologies, Inc. Message batching in a distributed strict queue
US20160217302A1 (en) * 2015-01-23 2016-07-28 Karim Kassam High-speed, hacker-resistant computer data storage and retrieval system
JP6367147B2 (ja) * 2015-05-26 2018-08-01 株式会社Atl−Sd 並列データ処理方法、及びその方法を利用した並列データ処理回路、その並列データ処理回路を組み込んだオーディオミキサー
EP3099027B1 (en) 2015-05-26 2017-09-13 Urban Software Institute GmbH Computer system and method for message routing with content and reference passing
US9979682B2 (en) 2015-09-01 2018-05-22 Microsoft Technology Licensing, Llc Command propagation optimization
US10163076B2 (en) 2015-09-01 2018-12-25 Microsoft Technology Licensing, Llc Consensus scheduling for business calendar
US9882854B2 (en) 2015-09-01 2018-01-30 Microsoft Technology Licensing, Llc Email parking lot
US9929989B2 (en) 2015-09-01 2018-03-27 Microsoft Technology Licensing, Llc Interoperability with legacy clients
US9977666B2 (en) 2015-09-01 2018-05-22 Microsoft Technology Licensing, Llc Add a new instance to a series
JP6775452B2 (ja) * 2017-03-22 2020-10-28 Kddi株式会社 監視システム、プログラムおよび監視方法
ES2898755T3 (es) 2017-06-08 2022-03-08 Amadeus Sas Procesamiento de mensajes multiestándar
US10284515B2 (en) 2017-06-08 2019-05-07 Amadeus S.A.S. Multi-standard message processing

Family Cites Families (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5630173A (en) * 1992-12-21 1997-05-13 Apple Computer, Inc. Methods and apparatus for bus access arbitration of nodes organized into acyclic directed graph by cyclic token passing and alternatively propagating request to root node and grant signal to the child node
JPH06318158A (ja) * 1993-05-07 1994-11-15 Nippon Telegr & Teleph Corp <Ntt> チャネルのキュー発散検証方法
US5588117A (en) 1994-05-23 1996-12-24 Hewlett-Packard Company Sender-selective send/receive order processing on a per message basis
JPH0983541A (ja) 1995-09-19 1997-03-28 Fujitsu Ltd エラー処理方法および装置
US6341302B1 (en) 1998-09-24 2002-01-22 Compaq Information Technologies Group, Lp Efficient inter-task queue protocol
JP4094752B2 (ja) 1998-11-27 2008-06-04 株式会社日立製作所 トランザクション処理方法及びその実施装置並びにその処理プログラムを記録した媒体
US7600131B1 (en) 1999-07-08 2009-10-06 Broadcom Corporation Distributed processing in a cryptography acceleration chip
US20020111986A1 (en) 2000-12-05 2002-08-15 Wolfson Charles D. Integration of messaging functions and database operations
US20020128919A1 (en) 2001-03-06 2002-09-12 Cedric-Gaya Rime Order processing system
JP2002314606A (ja) 2001-04-10 2002-10-25 Mitsubishi Electric Corp Atm通信システム及びatm通信方法
US20020194327A1 (en) 2001-06-14 2002-12-19 International Business Machines Corporation Method for sensing the status of a client from a server
CA2411991A1 (en) 2001-11-19 2003-05-19 Linear Systems Ltd. Transmitting digital video signals over an ip network
GB0129672D0 (en) 2001-12-12 2002-01-30 Ibm Method and system for preserving message order when parallel processing messages
US7349398B1 (en) 2001-12-31 2008-03-25 Redback Networks, Inc. Method and apparatus for out-of-order processing of packets
US20030158883A1 (en) 2002-02-04 2003-08-21 Drudis Antoni N. Message processing
JP2003283539A (ja) 2002-03-20 2003-10-03 Canon Inc 通信ネットワーク、端末インタフェース装置、ノード装置、伝送制御方法、記憶媒体、及びプログラム
US7061942B2 (en) 2002-05-31 2006-06-13 Skystream Networks Inc. Apparatus for redundant multiplexing and remultiplexing of program streams and best effort data
US7613160B2 (en) 2002-12-24 2009-11-03 Intel Corporation Method and apparatus to establish communication with wireless communication networks
US20050038824A1 (en) 2003-08-15 2005-02-17 Joachim Kenntner Quality of service in asynchronous message transfer
US7761514B2 (en) * 2003-11-26 2010-07-20 International Business Machines Corporation Method and apparatus for providing dynamic group management for distributed interactive applications
US7434225B2 (en) * 2003-12-18 2008-10-07 International Business Machines Corporation Context information associated with message flows in a messaging system
JP2006031292A (ja) 2004-07-14 2006-02-02 Fuji Xerox Co Ltd 文書処理装置、文書処理方法及び文書処理プログラム
US8189786B2 (en) 2005-05-25 2012-05-29 Zenith Electronics Llc Encryption system
US8015256B2 (en) 2005-11-23 2011-09-06 Medicalis Corp. Method and apparatus for parallel sequencing of messages between disparate information systems
GB0524021D0 (en) 2005-11-25 2006-01-04 Ibm A system for preserving message order
US20070143442A1 (en) * 2005-12-20 2007-06-21 Nec Laboratories America, Inc. Scalable Publish/Subscribe Broker Network Using Active Load Balancing
US8194690B1 (en) * 2006-05-24 2012-06-05 Tilera Corporation Packet processing in a parallel processing environment
US7856415B2 (en) * 2006-09-01 2010-12-21 Dell Products L.P. System and method for mapping events into a data structure
MX2009010705A (es) * 2007-04-04 2009-10-20 Thomson Licensing Establecimiento de arbol de distribucion de multi-difusion y mantenimiento en un sistema de comunicacion inalambrica de rele de multiples saltos.
US7836143B2 (en) * 2007-04-25 2010-11-16 International Business Machines Corporation Message communications of particular message types between compute nodes using DMA shadow buffers
ATE429119T1 (de) * 2007-05-18 2009-05-15 Sap Ag Verfahren und system zum schutz einer nachricht vor einem xml-angriff beim austausch in einem verteilten und dezentralisierten netzwerksystem
US8295203B2 (en) * 2007-08-24 2012-10-23 At&T Intellectual Property I, L.P. Methods and systems to store state used to forward multicast traffic
US7783714B2 (en) 2007-12-20 2010-08-24 Sap Ag Message transport manager and methods for using the same
JP5654983B2 (ja) 2008-06-17 2015-01-14 アティヴィオ,インコーポレイテッド 順序メッセージ処理
US8271996B1 (en) * 2008-09-29 2012-09-18 Emc Corporation Event queues
JP2012518222A (ja) * 2009-02-13 2012-08-09 ヴィシアーク アーベー 移動通信端末で電子メールメッセージと添付ファイルを処理する方法
JP5708976B2 (ja) * 2010-06-16 2015-04-30 株式会社ジェイテクト 車両用操舵装置
US8495656B2 (en) 2010-10-15 2013-07-23 Attivio, Inc. Ordered processing of groups of messages

Also Published As

Publication number Publication date
WO2012051366A2 (en) 2012-04-19
US20140052798A1 (en) 2014-02-20
CA2813135C (en) 2016-03-08
CA2813135A1 (en) 2012-04-19
US8495656B2 (en) 2013-07-23
EP2628098A2 (en) 2013-08-21
JP2013545174A (ja) 2013-12-19
US8875155B2 (en) 2014-10-28
US20120096475A1 (en) 2012-04-19
WO2012051366A3 (en) 2012-08-02

Similar Documents

Publication Publication Date Title
JP5449627B2 (ja) メッセージのグループの順序化された処理
JP6505123B2 (ja) ビッグ・データ・リポジトリにおけるデータ・セットの処理
JP5654983B2 (ja) 順序メッセージ処理
Subramaniyaswamy et al. Unstructured data analysis on big data using map reduce
JP4879580B2 (ja) ユーザ・インタフェースに自動探索メニューを与えるシステムおよび方法
US8255399B2 (en) Data classifier
JP6427592B2 (ja) データ型に関連するデータプロファイリング操作の管理
JP6933736B2 (ja) 知識グラフにおけるデータモデルを取得する方法、装置、機器及び媒体
US20140215003A1 (en) Data processing method, distributed processing system, and program
WO2007085187A1 (fr) Procédé d&#39;extraction de données, procédé de production de fichiers d&#39;index et moteur de recherche
US10911379B1 (en) Message schema management service for heterogeneous event-driven computing environments
US11907296B2 (en) Method and system for traversing an object graph using traversal context objects
US20140279973A1 (en) Efficient dvcs storage system
WO2014201402A1 (en) Systems and methods for searching chemical structures
Gulati et al. Apache Spark 2. x for Java developers
US20170193079A1 (en) Smart exchange database index
Lacroix et al. Resource descriptions, ontology, and resource discovery
JP7470769B1 (ja) クラウドのapiの変更を分析する方法
Punyamurthula Dynamic model generation and semantic search for open source projects using big data analytics
Bernaschi et al. Forensic disk image indexing and search in an HPC environment
US10223405B2 (en) Retrieval control method and retrieval server
JP2022522214A (ja) 移動中のデータの処理技術
Mokriš Scheduling software for the parallel running of NGS analytical pipelines
Topchyan Architecture enabling Data Driven Projects for a Modern Enterprise
Karam et al. Handling sharable queries in both streaming and stored XML documents

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130905

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20131127

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: 20131220

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20131224

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees