(57)【要約】【課題】受信ノード及び送信ノード間の通信の代理要求及び代理応答を行うシステムにおいて、受信ノードの要求送信からデータ受信完了までの時間を短縮する。【解決手段】第１のノードと、第１のノードと異なるネットワークに存在し、第１のノードからＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）を通じてデータを取得する第２のノードと、第１のノード及び第２のノードを管理する管理装置と、を有する情報システムにおいて、ＷＡＮとの境界に位置する情報処理装置は、管理装置からの通信を監視し、管理装置から第２のノードへ送信される、第２のノードが第１のノードへ要求パケットを送信する契機となるパケットを検出する検出部と、検出部によって該パケットが検出され、第１のノードが自装置と同じネットワークに存在する場合に、第１のノードに要求パケットを送信して代理要求を行う代理要求部と、を備える。【選択図】図８
2014060615.tif 000002
【特許請求の範囲】
【請求項１】
第１のノードと、前記第１のノードとは異なるネットワークに存在し、前記第１のノードからＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）を通じてデータを取得する第２のノードと、前記第１のノード及び前記第２のノードを管理する管理装置と、を有する情報システムにおいて、ＷＡＮとの境界に位置する情報処理装置であって、
前記管理装置からの通信を監視し、前記管理装置から前記第２のノードへ送信される、前記第２のノードが前記第１のノードへ要求パケットを送信する契機となるパケットを検出する検出部と、
前記検出部によって前記パケットが検出され、前記第１のノードが自装置と同じネットワークに存在する場合に、前記第１のノードに前記要求パケットを送信して代理要求を行う代理要求部と、
を備える情報処理装置。
【請求項２】
前記パケットは、前記データを特定する情報を含み、
前記検出部は、前記パケットから前記データを特定する情報を抽出し、
前記代理要求部は、前記データを特定する情報を用いて前記要求パケットを生成する、請求項１に記載の情報処理装置。
【請求項３】
前記代理要求部は、前記第１のノードと前記第２のノードとの間でセッションが確立していない状態で、前記検出部によって前記パケットが検出され、前記第１のノードが自装置と同じネットワークに存在する場合に、前記第２のノードが使用するポート番号を代理で生成し、該ポート番号を用いて前記第１のノードにセッション確立を要求する前記要求パケットを送信する、
請求項１に記載の情報処理装置。
【請求項４】
前記代理要求部は、前記ポート番号を、前記第２のノードと同じネットワークに存在しＷＡＮの境界に位置する他の情報処理装置に通知する、
請求項３に記載の情報処理装置。
【請求項５】
前記代理要求部は、前記第１のノードとのセッションが確立した場合に、前記第１のノードに対して、前記データを要求する第２の要求パケットを送信する、
請求項３又は４に記載の情報処理装置。
【請求項６】
前記第２のノードが内部ネットワークに存在する場合に、前記第１のノードから受信した前記データを格納する格納部と、
前記第２のノードから前記データを要求するパケットを受信した場合に、前記格納部から前記データを読み出し、前記第１のノードの代理として、前記データを前記第２のノードに送信する代理応答部と、
をさらに備える請求項１から５のいずれか一項に記載の情報処理装置。
【請求項７】
第１のノードと、前記第１のノードと異なるネットワークに存在し、前記第１のノードからＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）を通じてデータを取得する第２のノードと、前記第１のノード及び前記第２のノードを管理する管理装置と、前記第１のノードが存在するネットワークとＷＡＮとの境界に位置する情報処理装置を有する情報システムにおいて、前記管理装置と同じネットワークに存在し、前記管理装置の通信を監視する監視装置であって、
前記管理装置からの通信を監視し、前記管理装置から前記第２のノードへ送信される、前記第２のノードが前記第１のノードへ要求パケットを送信する契機となるパケットを検出する検出部と、
前記検出部によって前記パケットが検出され、前記第２のノードが自装置と同じネットワークに存在する場合に、前記情報処理装置が前記第１のノードに対して代理要求をする契機となる通知を送信する送信部と、
を備える監視装置。
【請求項８】
第１のノードと、前記第１のノードと異なるネットワークに存在し、前記第１のノードからＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）を通じてデータを取得する第２のノードと、前記第１のノード及び前記第２のノードを管理する管理装置と、を有する情報システムにおいて、ＷＡＮとの境界に位置する情報処理装置が、
前記管理装置からの通信を監視し、前記管理装置から前記第２のノードへ送信される、前記第２のノードが前記第１のノードへ要求パケットを送信する契機となるパケットを検出し、
前記パケットが検出され、前記第１のノードが自装置と同じネットワークに存在する場合に、前記第１のノードに前記要求パケットを送信して代理要求を行う、
情報処理方法。
【請求項９】
第１のノードと、前記第１のノードと異なるネットワークに存在し、前記第１のノードからＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）を通じてデータを取得する第２のノードと、前記第１のノード及び前記第２のノードを管理する管理装置と、前記第１のノードが存在するネットワークとＷＡＮとの境界に位置する情報処理装置を有する情報システムにおいて、前記管理装置と同じネットワークに存在し、前記管理装置の通信を監視する監視装置に、
前記管理装置からの通信を監視させ、前記管理装置から前記第２のノードへ送信される、前記第２のノードが前記第１のノードへ要求パケットを送信する契機となるパケットを検出させ、
前記パケットが検出され、前記第２のノードが同じネットワークに存在する場合に、前記情報処理装置が前記第１のノードに対して代理要求をする契機となる通知を送信させる、
ための監視プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置，監視装置，情報処理方法，及び監視プログラムに関する。
【背景技術】
【０００２】
ＴＣＰ（Transmission Control Protocol）は、コネクション型のプロトコルである。
ＴＣＰでは、データの到達性を保証するため、受信ノードは所定数のデータパケットを受信する度に送信ノードへ受信応答（ＡＣＫ）を送信する。送信ノードはＡＣＫの受信を待って次の所定数のデータパケットを送信する。このように、ＡＣＫを用いることによって、ＴＣＰを用いた通信では、受信ノードが要求を送信してから、全てのデータパケットを受信するまでに時間を要することがあった。
【０００３】
ＷＡＮを介して通信が行われる場合には、通信に要する時間を短縮するための方法の一つとして、ＷＡＮ高速化装置を用いることがある。ＷＡＮ高速化装置は、例えば、ＬＡＮ等の内部ネットワークとＷＡＮとの境界に位置し、内部ネットワーク内の装置のプロキシとして動作する。なお、ＷＡＮ高速化装置は、ＴＣＰ／ＩＰモデルのアプリケーション層レベルのプロキシとしてではなく、下位のトランスポート層又はインターネット層レベルでの中継又は転送を行うプロキシである。
【０００４】
図１は、ＷＡＮ高速化装置の動作例を示す図である。図１では、送信ノードＰ２と受信ノードＰ３とは、互いにＷＡＮを介して接続される異なるネットワークに属する。ＷＡＮ高速化装置Ｐ１Ａは、送信ノードＰ２が属するネットワークのプロキシである。ＷＡＮ高速化装置Ｐ１Ｂは、受信ノードＰ３が属するネットワークのプロキシである。ＷＡＮ高速化装置Ｐ１Ａにとっては、内部ネットワークは送信ノードＰ２が属するネットワークであり、外部ネットワークはＷＡＮ及び受信ノードＰ３が属するネットワークである。ＷＡＮ高速化装置Ｐ１Ｂにとっては、内部ネットワークは受信ノードＰ３が属するネットワークであり、外部ネットワークはＷＡＮ及び送信ノードＰ２が属するネットワークである。
【０００５】
ＷＡＮ高速化装置Ｐ１Ａは、送信ノードＰ２からデータパケットを受信する（ＯＰ１１１）と、このデータパケットを受信ノードＰ３に転送する（ＯＰ１１２）。これとともに、ＷＡＮ高速化装置Ｐ１Ａは、受信ノードＰ３からのＡＣＫを待たずに、疑似的にＡＣＫパケットを生成して（疑似ＡＣＫパケット）、送信ノードＰ２に送信する（ＯＰ１１２）。送信ノードＰ２は、疑似ＡＣＫパケットを受信すると、次のデータパケットを送信する（ＯＰ１１５）。その後は、同様にして、ＷＡＮ高速化装置Ｐ１Ａは、データパケットを受信ノードＰ３に転送するとともに、疑似ＡＣＫを送信ノードＰ２に送信する。
【０００６】
一方、受信ノードＰ３のプロキシであるＷＡＮ高速化装置Ｐ１Ｂは、ＷＡＮ経由でデータパケットを受信すると、受信ノードＰ３に送信する（ＯＰ１１３）。ＷＡＮ高速化装置Ｐ１Ｂには、送信側のＷＡＮ高速化装置Ｐ１Ａからデータパケットが次々と到着しており（ＯＰ１１６）、これらのデータパケットはＷＡＮ高速化装置Ｐ１Ｂにバッファリングされる。受信ノードＰ３からＡＣＫを受信したら（ＯＰ１１４）、ＷＡＮ高速化装置Ｐ１Ｂは、次のデータパケットをバッファから読み出し、受信ノードＰ３に送信する（ＯＰ１１７）。通常のＴＣＰを用いた通信では、受信ノードＰ３がＡＣＫを送信してから次のパケットデータを受信するまでには、少なくとも１ＲＴＴ（Round Trip Time:往復遅延時間）を要していた。これに比べて、ＷＡＮ高速化装置Ｐ１Ａが疑似パケットを送信ノードＰ２に送信することによって、時間を短縮することができる。
【０００７】
ＷＡＮ高速化装置Ｐ１Ａ及びＰ１Ｂとの間の通信は、例えば、装置のベンダ独自のプロ
トコルを用いて処理される。また、ＴＣＰコネクションの接続や切断時に送信されるＳＹＮパケット、ＦＩＮパケットについては、ＷＡＮ高速化装置Ｐ１Ａによる疑似ＡＣＫパケットによる応答はなされず、中継転送される。
【０００８】
通常、ＴＣＰのプロキシは、パケット転送時に、受信パケットの送信元ＩＰアドレス，送信元ＴＣＰポート番号，宛先ＩＰアドレス，宛先ＴＣＰポート番号を書き換える。一方、透過プロキシは、受信パケットの送信元ＩＰアドレス，送信元ＴＣＰポート番号，宛先ＩＰアドレス，宛先ＴＣＰポート番号を書き換えることなく、接続相手になりすまして代理応答する。そのため、透過プロキシは、ノードにプロキシの存在を意識させない。
【０００９】
図１に示される例では、ＷＡＮ高速化装置の動作の説明の簡略化のため省略したが、通常、ＴＣＰを用いた通信において、送信ノードがデータパケットを送信する契機は、受信ノードからの要求の受信となる。例えば、図１に示される例では、ＯＰ１１１の前に、受信ノードＰ３から送信ノードＰ２へデータを要求する要求パケットが送信される。図１に示されるＯＰ１１１からＯＰ１１８を１つの要求パケットによって要求されるデータの送信処理とすると、ＯＰ１１８の後に次のデータを要求する要求パケットが受信ノードＰ３から送信され、ＯＰ１１１−ＯＰ１１８の処理が繰り返し実行される。すなわち、次のデータの送信は、送信ノードＰ２が受信ノードＰ３からの要求パケットを受信しないと開始されない。
【００１０】
そこで、通信に係る時間を短縮するために、ＰＣからの要求に先行して先読み代理サーバが先読み要求を行う方法がある（例えば、特許文献１）。この方法では、先読み代理サーバは、ＷＥＢサーバからＷＥＢ閲覧装置に送信されるＷＥＢ情報を転送する際に、このＷＥＢ情報からＷＥＢ閲覧装置が次に要求すると予測される先読み対象のＷＥＢ情報を要求するための先読み要求データをＷＥＢサーバに送信する。さらに、先読み代理サーバは、当該先読み要求データに対応するＷＥＢ情報を取得し、情報蓄積サーバに先読みしたＷＥＢ情報を転送する。情報蓄積サーバは、先読み代理サーバから転送された先読みしたＷＥＢ情報を蓄積し、ＷＥＢ閲覧装置からの要求データに対応するＷＥＢ情報をＷＥＢ閲覧装置に送信する。
【先行技術文献】
【特許文献】
【００１１】
【特許文献１】特開２０１１−０３９８９９号公報
【発明の概要】
【発明が解決しようとする課題】
【００１２】
しかしながら、送信ノード又は受信ノードからのデータを監視していても、次に要求されるデータを、受信ノードからの要求を待たずに、送信ノードから読み出せない場合があった。例えば、１つのマスタノードに対して複数のスレーブノードが存在する分散クラスタにおいて、スレーブノード間でデータの送受信が行われる場合である。
【００１３】
本発明の一態様は、受信ノード及び送信ノード間の通信の代理要求及び代理応答を行うシステムにおいて、受信ノードの要求送信からデータ受信完了までの時間を短縮する情報処理装置，監視装置，情報処理方法，及び監視プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１４】
本発明の態様の一つは、
第１のノードと、前記第１のノードとは異なるネットワークに存在し、前記第１のノードからＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）を通じてデータを取得する第２のノードと、前記第１のノード及び第２のノードを管理する管理装置と、を有する情報シス
テムにおいて、ＷＡＮとの境界に位置する情報処理装置であって、
前記管理装置からの通信を監視し、前記管理装置から前記第２のノードへ送信される、前記第２のノードが前記第１のノードへ要求パケットを送信する契機となるパケットを検出する検出部と、
前記検出部によって前記パケットが検出され、前記第１のノードが自装置と同じネットワークに存在する場合に、前記第１のノードに前記要求パケットを送信して代理要求を行う代理要求部と、
を備える情報処理装置である。
【００１５】
本発明の他の態様の一つは、
第１のノードと、前記第１のノードと異なるネットワークに存在し、前記第１のノードからＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）を通じてデータを取得する第２のノードと、前記第１のノード及び第２のノードを管理する管理装置と、前記第１のノードが存在するネットワークとＷＡＮとの境界に位置する情報処理装置を有する情報システムにおいて、前記管理装置と同じネットワークに存在し、前記管理装置の通信を監視する監視装置であって、
前記管理装置からの通信を監視し、前記管理装置から前記第２のノードへ送信される、前記第２のノードが前記第１のノードへ要求パケットを送信する契機となるパケットを検出する検出部と、
前記検出部によって前記パケットが検出され、前記第２のノードが自装置と同じネットワークに存在する場合に、前記情報処理装置が前記第１のノードに対して代理要求をする契機となる通知を送信する送信部と、
を備える監視装置である。
【００１６】
本発明の他の態様の一つは、上述した情報処理装置が上述した処理を実行する情報処理方法である。また、本発明の他の態様は、コンピュータを上述した監視装置として機能させる監視プログラム、及び当該プログラムを記録したコンピュータ読み取り可能な記録媒体を含むことができる。コンピュータ等が読み取り可能な記録媒体には、データやプログラム等の情報を電気的、磁気的、光学的、機械的、または化学的作用によって蓄積し、コンピュータ等から読み取ることができる記録媒体をいう。
【発明の効果】
【００１７】
開示の情報処理装置，監視装置，情報処理方法，及び監視プログラムによれば、受信ノード及び送信ノード間の通信の代理要求及び代理応答を行うシステムにおいて、受信ノードの要求送信からデータ受信完了までの時間を短縮することができる。
【図面の簡単な説明】
【００１８】
【図１】ＷＡＮ高速化装置の動作例を示す図である。
【図２】Ｈａｄｏｏｐを用いたシステムの構成の一例を示す図である。
【図３】Ｈａｄｏｏｐにおける分散処理の例を示す図である。
【図４】Ｈａｄｏｏｐにおける中間データの送受信のシーケンスの一例を示す図である。
【図５】ＷＡＮによって接続される異なるデータセンタでＨａｄｏｏｐが運用される場合のシステム構成の一例である。
【図６】図５に示されるシステムにおける中間データの送受信のシーケンスの一例を示す図である。
【図７】ＷＡＮ高速化装置のハードウェア構成の一例を示す図である。
【図８】第１実施形態におけるＷＡＮ高速化装置の機能ブロックの一例を示す図である。
【図９】中間データ用セッション管理テーブルの一例を示す図である。
【図１０】ＷＡＮ高速化装置の代理要求又は代理応答に係る処理のフローチャートの一例である。
【図１１】図５に示されるシステムにおける代理要求又は代理応答に係る処理のシーケンス図の一例である。
【図１２】Ｒｅｄｕｃｅタスクノード側のＷＡＮ高速化装置が保持する、ＴＣＰセッション関連付けテーブルの一例である。
【図１３】第２実施形態における中間データの送受信の前のＴＣＰセッション確立の処理のシーケンスの一例を示す図である。
【図１４】第１変形例のシステムを示す図である。
【図１５】第２変形例のシステムを示す図である。
【発明を実施するための形態】
【００１９】
以下、図面に基づいて、本発明の実施の形態を説明する。以下の実施形態の構成は例示であり、本発明は実施形態の構成に限定されない。
【００２０】
＜第１実施形態＞
第１実施形態では、分散処理のフレームワークの一例として、Ｈａｄｏｏｐを用いたシステムについて説明する。
【００２１】
図２は、Ｈａｄｏｏｐを用いたシステムの構成の一例を示す図である。Ｈａｄｏｏｐは、巨大なデータの処理を並列で高速に行うためのフレームワークである。Ｈａｄｏｏｐは、システムに１つのマスタ（図中、Ｈａｄｏｏｐ  Ｍａｓｔｅｒと表示）と複数のスレーブ（図中、Ｈａｄｏｏｐ  Ｓｌａｖｅ）を有するマスタスレーブ型のフレームワークである。マスタは、Ｊｏｂ  Ｔｒａｃｋｅｒとして動作する。Ｊｏｂ  Ｔｒａｃｋｅｒは、ジョブの進行状況を管理し、Ｍａｐタスク及びＲｅｄｕｃｅタスクへの処理の割り振りを行う。各スレーブは、Ｔａｓｋ  Ｔｒａｃｋｅｒとして動作する。Ｔａｓｋ  Ｔｒａｃｋｅｒは、各スレーブ上で、Ｍａｐタスク群，Ｒｅｄｕｃｅタスク群を起動し、各タスクの進行状況を管理する。なお、第１実施形態では、ジョブは複数のタスクの群であるとする。以降、Ｍａｐタスクを実行するＴａｓｋ  ＴｒａｃｋｅｒをＭａｐタスクノードと称する。Ｒｅｄｕｃｅタスクを実行するＴａｓｋ  ＴｒａｃｋｅｒをＲｅｄｕｃｅタスクノードと称する。
【００２２】
図３は、Ｈａｄｏｏｐにおける分散処理の例を示す図である。Ｈａｄｏｏｐでは、入力データは分割され、各Ｍａｐタスクによって中間データが生成される。この中間データはＲｅｄｕｃｅタスクによって集計されて、各Ｒｅｄｕｃｅタスクによって出力される結果が出力データとなる。いずれのＴａｓｋ  ＴｒａｃｋｅｒがＭａｐタスクを実行するか、又は、Ｒｅｄｕｃｅタスクを実行するかは、ジョブごとにＪｏｂ  Ｔｒａｃｋｅｒによって動的に決定される。
【００２３】
Ｊｏｂ  ＴｒａｃｋｅｒとＴａｓｋ  Ｔｒａｃｋｅｒとは、定期的にＨｅａｒｔ  Ｂｅａｔと呼ばれるメッセージを交換し、タスク又はジョブの進行状況を通知し合う。Ｔａｓｋ  ＴｒａｃｋｅｒからＪｏｂ  Ｔｒａｃｋｅｒへは、Ｈｅａｒｔ  Ｂｅａｔによって、生存確認およびＭａｐタスク又はＲｅｄｕｃｅタスクの状況を通知する。Ｊｏｂ  ＴｒａｃｋｅｒからＴａｓｋ  Ｔｒａｃｋｅｒへは、Ｈｅａｒｔ  Ｂｅａｔ  Ｒｅｓｐｏｎｓｅが返され、必要に応じてコマンドが送られる。
【００２４】
Ｍａｐタスクでの処理が完了すると、Ｍａｐタスクは自ノードのＴａｓｋ  Ｔｒａｃｋｅｒに完了を通知する。Ｔａｓｋ  Ｔｒａｃｋｅｒは、Ｊｏｂ  ＴｒａｃｋｅｒにＭａｐタスクの完了を通知し、Ｊｏｂ  Ｔｒａｃｋｅｒは、Ｒｅｄｕｃｅタスクの実行を割り当てたＴａｓｋ  ＴｒａｃｋｅｒにＭａｐタスクの完了を通知する。Ｒｅｄｕｃｅタスクは
、Ｍａｐタスクの処理結果、すなわち、中間データをＭａｐタクスのＴａｓｋ  Ｔｒａｃｋｅｒから受け取る。この中間データの送受信は、ＨＴＴＰを用いて行われる。
【００２５】
図４は、Ｈａｄｏｏｐにおける中間データの送受信のシーケンスの一例を示す図である。中間データの送受信は、ＲｅｄｕｃｅタスクノードからＨＴＴＰ  ＧＥＴ要求が送信されることによって開始される（ＯＰ２０１）。このＨＴＴＰ  ＧＥＴ要求の応答として、Ｍａｐタスクノードは中間データを送信する（ＯＰ２０２）。
【００２６】
同一のＭａｐタスクノード上で実行されている複数のＭａｐタスクに対しては、Ｒｅｄｕｃｅタスクは順番通りにしか中間データを要求できない。同一のＭａｐタスクノード上でＭａｐタスク＃１、Ｍａｐタスク＃２が実行されている場合、Ｒｅｄｕｃｅタスクは、Ｍａｐタスク＃１の中間データ最後のデータパケットを受信し（ＯＰ２０３）、このデータパケットに対する受信確認応答（ＡＣＫ）の送信する（ＯＰ２０４）。その後、Ｒｅｄｕｃｅタスクは、次のＭａｐタスク＃２の中間データを要求するＨＴＴＰ  ＧＥＴ要求を送信する（ＯＰ２０５）。したがって、Ｍａｐタスク＃１の中間データの送信完了（ＯＰ２０３）から、次のＭａｐタスク＃２の中間データの送信開始（ＯＰ２０５）までに少なくとも１ＲＴＴ分の間が発生する。
【００２７】
図５は、ＷＡＮによって接続される異なるデータセンタ間でＨａｄｏｏｐが運用される場合のシステム構成の一例である。図５では、データセンタ１００とデータセンタ２００とにまたがってＨａｄｏｏｐが運用されている。データセンタ１００及びデータセンタ２００は、それぞれ、例えば、ＬＡＮ等により構築されている。また、データセンタ１００とデータセンタ２００との間にはＷＡＮが存在する。
【００２８】
データセンタ１００には、Ｔａｓｋ  Ｔｒａｃｋｅｒ２，Ｊｏｂ  Ｔｒａｃｋｅｒ３，ＷＡＮ高速化装置１Ａが含まれる。図５では、Ｔａｓｋ  Ｔｒａｃｋｅｒ２は、Ｍａｐタスクノードである。ＷＡＮ高速化装置１Ａにとって、内部ネットワークとはデータセンタ１００のネットワークである。また、ＷＡＮ高速化装置１Ａにとって、外部ネットワークとは、ＷＡＮ及びデータセンタ２００のネットワークである。
【００２９】
データセンタ２００には、Ｔａｓｋ  Ｔｒａｃｋｅｒ４とＷＡＮ高速化装置１Ｂが含まれる。図５では、Ｔａｓｋ  Ｔｒａｃｋｅｒ４は、Ｒｅｄｕｃｅタスクノードである。ＷＡＮ高速化装置１Ｂにとって、内部ネットワークとはデータセンタ２００のネットワークである。また、ＷＡＮ高速化装置１Ｂにとって、外部ネットワークとは、ＷＡＮ及びデータセンタ１００のネットワークである。データセンタ間のＷＡＮ通信は、ＷＡＮ高速化装置１Ａ，１Ｂによって行われる。
【００３０】
図５に示される例のように、異なるデータセンタでＨａｄｏｏｐを運用する場合には、ＷＡＮ通信にかかる時間が長くなるため、前述のＲＴＴ分の隙間が大きくなり、ジョブ全体の実行時間に与える影響も大きくなる。
【００３１】
図６は、図５に示されるシステムにおける中間データの送受信のシーケンスの一例を示す図である。Ｊｏｂ  Ｔｒａｃｋｅｒ３は、全ＭａｐタスクからＭａｐタスク完了を受けると、Ｒｅｄｕｃｅタスクの割り振りを行う。図６に示される例では、Ｊｏｂ  Ｔｒａｃｋｅｒ３が、Ｍａｐタスクノード２によって生成されたＭａｐタスク＃１、＃２の中間データをＲｅｄｕｃｅタスクノード４に割り当てた場合の中間データの送受信の例である。なお、ＷＡＮ高速化装置１Ａ、１Ｂは、透過プロキシであるとする。
【００３２】
ＯＰ１では、Ｊｏｂ  Ｔｒａｃｋｅｒ３から、Ｍａｐタスク＃１の中間データの取得の指示となるorg.apache.hadoop.mapred.TaskCompletionEventメッセージがＲｅｄｕｃｅタ
スクノード４に送信される。ＯＰ２では、Ｊｏｂ  Ｔｒａｃｋｅｒ３から、Ｍａｐタスク＃２の中間データの取得の指示となるorg.apache.hadoop.mapred.TaskCompletionEventメッセージがＲｅｄｕｃｅタスクノード４に送信される。
【００３３】
ＯＰ３では、Ｊｏｂ  Ｔｒａｃｋｅｒ３から指示を受けたＲｅｄｕｃｅタスクノード４によって、Ｍａｐタスク＃１の中間データ（以降、中間データ＃１とする）の受信要求としてＨＴＴＰ  ＧＥＴ要求がＭａｐタスクノード２に送信される。なお、Ｒｅｄｅｕｃｅタスクノードは、同一のＭａｐタスクノードからの中間データは順番通りにしか受信できないため、まずは、ＯＰ３では、中間データ＃１の受信要求が送信される。
【００３４】
ＯＰ４では、Ｒｅｄｕｃｅタスクノード４から中間データ＃１の受信要求を受けたＭａｐタスクノード２によって、中間データ＃１のデータパケットが送信される。ＯＰ５では、ＷＡＮ高速化装置１Ａは、Ｍａｐタスクノード２から送信された中間データ＃１のデータパケットをＲｅｄｕｃｅタスクノード４に転送するとともに、Ｍａｐタスクノード２に疑似ＡＣＫを送信し、代理応答する。
【００３５】
ＯＰ６では、ＷＡＮ高速化装置１Ｂは、ＷＡＮ経由で中間データ＃１のデータパケットを受信し、Ｒｅｄｕｃｅタスクノード４に転送する。ＯＰ７では、中間データ＃１のデータパケットを受信したＲｅｄｕｃｅタスクノード４がＡＣＫを送信する。このＡＣＫは、ＷＡＮ高速化装置１Ｂによって終端される。
【００３６】
ＯＰ４−ＯＰ７と同様の処理が、中間データ＃１の全データパケットの受信完了まで繰り返される（ＯＰ８−ＯＰ１１）。
【００３７】
ＯＰ１２では、Ｒｅｄｕｃｅタスクノード４は、中間データ＃１の最後のデータパケットに対する受信応答（ＡＣＫ）を送信したので（ＯＰ１１）、次の中間データ＃２の受信要求としてＨＴＴＰ  ＧＥＴ要求を送信する。以降、中間データ＃１の送受信の動作と同様の動作が行われる。
【００３８】
ＷＡＮを介して通信する異なるデータセンタ上でＨａｄｏｏｐを運用する場合には、同一データセンタ内での場合に比べて、Ｍａｐタスクノード２とＲｅｄｕｃｅタスクノード４との距離は長くなり、その分ＲＴＴも大きくなる。そのため、ＷＡＮ高速化装置を導入することによって、ＷＡＮ高速化装置が疑似ＡＣＫにより代理応答をするので、１つの中間データの送受信に要する時間は短く抑えることができる。しかしながら、Ｒｅｄｕｃｅタスクノード４が最初に中間データの受信要求を送信してから該中間データを受信するまでには（例えば、図６のＯＰ３−ＯＰ６）、１ＲＴＴ分の時間を要し、同一データセンタ内でＨａｄｏｏｐを運用する場合に比べて、ＲＴＴが大きい分、時間を要することになる。また、Ｍａｐタスクノードにおいて、１つの中間データの送信が完了してから、次の中間データの送信が開始されるまでには（例えば、図６のＯＰ８からＯＰ１３までの時間）、依然として、１ＲＴＴ以上の間が空くことになる。
【００３９】
第１実施形態では、ＷＡＮ高速化装置１Ａは、内部ネットワークから外部ネットワークへの通信を監視し、Ｊｏｂ  Ｔｒａｃｋｅｒ３から送信される中間データの取得の指示をスヌーピングする。ＷＡＮ高速化装置１Ａは、スヌーピングによって得られた情報を用いて、Ｒｅｄｕｃｅタスクノード４からの中間データの要求パケットを待たずに、Ｍａｐタスクノード２に対して代理要求を行う。以降、ＷＡＮ高速化装置１Ａ及び１Ｂを区別しない場合には、ＷＡＮ高速化装置１と表記する。
【００４０】
また、第１実施形態では、ＷＡＮ高速装置１には、例えば、ユーザによって、Ｊｏｂ  Ｔｒａｃｋｅｒ３のＩＰアドレスとＴＣＰポート番号とが設定されていることを前提とす
る。Ｊｏｂ  ＴｒａｃｋｅｒのＩＰアドレスとＴＣＰポート番号とは、Ｈａｄｏｏｐのコンフィグファイルにおいて、mapred.job.trackerにおいて記述されている。
【００４１】
加えて、第１実施形態では、ＷＡＮ高速化装置１には、Ｍａｐ  Ｔａｓｋノードが使用するＴＣＰポート番号が設定されていることを前提とする。ＭａｐタスクノードとなったＴａｓｋ  Ｔｒａｃｋｅｒが使用するＴＣＰポート番号はシステムにおいて一意であり、このＴＣＰポート番号は、Ｈａｄｏｏｐのコンフィグファイルにおいて、mapred.task.tracker.http.addressにおいて記述されている。また、第１実施形態では、Ｍａｐタスクノード２とＲｅｄｕｃｅタスクノード４との間のＴＣＰセッションは確立されていることを前提とする。
【００４２】
＜ＷＡＮ高速化装置の構成＞
図７は、ＷＡＮ高速化装置１のハードウェア構成の一例を示す図である。ＷＡＮ高速化装１置は、例えば、サーバとしての専用のコンピュータ，汎用のコンピュータである。第１実施形態では、ＷＡＮ高速化装置１は、ＴＣＰのプロキシとして動作するコンピュータであるとする。
【００４３】
ＷＡＮ高速化装置１は、プロセッサ１０１，主記憶装置１０２，入力装置１０３，出力装置１０４，補助記憶装置１０５，可搬記録媒体駆動装置１０６，ネットワークインタフェース１０７を備える。また、これらはバス１０９により互いに接続されている。
【００４４】
入力装置１０３は、例えば、タッチパネル，キーボード等である。入力装置１０３から入力されたデータは、プロセッサ１０１に出力される。
【００４５】
可搬記録媒体駆動装置１０６は、可搬記録媒体１１０に記録されるプログラムや各種データを読出し、プロセッサ１０１に出力する。可搬記録媒体１１０は、例えば、ＳＤカード，ｍｉｎｉＳＤカード，ｍｉｃｒｏＳＤカード，ＵＳＢ（Universal Serial Bus）フラッシュメモリ，ＣＤ（Compact Disc），ＤＶＤ(Digital Versatile Disc)，又はフラッシュメモリカードのような記録媒体である。
【００４６】
ネットワークインタフェース１０７は、ネットワークとの情報の入出力を行うインタフェースである。ネットワークインタフェース１０７は、有線のネットワーク、および、無線のネットワークと接続する。ネットワークインタフェース１０７は、例えば、ＮＩＣ（Network Interface Card），無線ＬＡＮ（Local Area Network）カード等である。ネットワークインタフェース１０７で受信されたデータ等は、プロセッサ１０１に出力される。
【００４７】
補助記憶装置１０５は、様々なプログラムや、各プログラムの実行に際してプロセッサ１０１が使用するデータを格納する。補助記憶装置１０５は、例えば、ＥＰＲＯＭ（Erasable Programmable ROM）、又はハードディスクドライブ（Hard Disc Drive）等の不揮発性のメモリである。補助記憶装置１０５は、例えば、オペレーティングシステム（ＯＳ），代理処理プログラム，その他様々なアプリケーションプログラムを保持する。
【００４８】
主記憶装置１０２は、プロセッサ１０１に、補助記憶装置１０５に格納されているプログラムをロードする記憶領域および作業領域を提供したり、バッファとして用いられたりする。主記憶装置１０２は、例えば、ＲＡＭ（Random Access Memory）のような半導体メモリである。
【００４９】
プロセッサ１０１は、例えば、ＣＰＵ（Central Processing Unit）である。プロセッ
サ１０１は、補助記憶装置１０５又は可搬記録媒体１１０に保持されたＯＳや様々なアプリケーションプログラムを主記憶装置１０２にロードして実行することによって、様々な
処理を実行する。プロセッサ１０１は、１つに限られず、複数備えられてもよい。
【００５０】
出力装置１０４は、プロセッサ１０１の処理の結果を出力する。出力装置１０４は、スピーカ等の音声出力装置，ディスプレイ，プリンタを含む。
【００５１】
例えば、ＷＡＮ高速化装置１は、プロセッサ１０１が補助記憶装置１０５に保持される代理処理プログラムを主記憶装置１０２にロードして実行する。ＷＡＮ高速化装置１は、代理処理プログラムの実行を通じて、内部データセンタと外部データセンタとの間の通信を監視する。さらに、ＷＡＮ高速化装置１は、Ｊｏｂ  Ｔｒａｃｋｅｒ３から送信される中間データの取得の指示をスヌーピングし、Ｍａｐタスクノード２に対する代理要求やＲｅｄｕｃｅタスクノード４に対する代理応答（代理処理）を行う。なお、ＷＡＮ高速化装置１のハードウェア構成は、一例であり、上記に限られず、実施の形態に応じて適宜構成要素の省略や置換、追加が可能である。代理処理プログラムは、例えば、可搬記録媒体１１０に記録されていてもよい。
【００５２】
図８は、第１実施形態におけるＷＡＮ高速化装置１の機能ブロックの一例を示す図である。ＷＡＮ高速化装置１は、例えば、プロセッサ１０１が補助記憶装置１０５に格納される代理処理プログラムを実行することによって、代理要求処理部１１，受信処理部１２，受信側ＩＰ処理部１３，受信側ＴＣＰ処理部１４，転送処理部１５，ＴＣＰ代理応答処理部１６，送信側ＴＣＰ処理部１７，送信側ＩＰ処理部１８，送信処理部１９として動作する。ＷＡＮ高速化装置１の各機能ブロックは、プロセッサ１０１のソフトウェア処理によって実現されることに限られず、ハードウェアによって実現されてもよい。例えば、ＷＡＮ高速化装置１の各機能ブロックを実現するハードウェアには、ＬＳＩ（Large Scale Integration），ＦＰＧＡ（Field-Programmable Gate Array）等がある。なお、第１実施形態では、ＷＡＮ高速化装置１は、透過プロキシとして動作することとする。また、以下の各機能ブロックについての説明は、便宜上、図５に示されるシステム構成を前提として説明する。以降、Ｍａｐタスクノード２側のＷＡＮ高速化装置１ＡとＲｅｄｕｃｅタスクノード４側のＷＡＮ高速化装置１Ｂとの共通の処理、Ｍａｐタスクノード２側のＷＡＮ高速化装置１Ａの処理、Ｒｅｄｕｃｅタスクノード４側のＷＡＮ高速化装置１Ｂの処理、に分けて説明する。なお、Ｈａｄｏｏｐでは、Ｍａｐタスクノード及びＲｅｄｕｃｅタスクノードは、Ｊｏｂ  Ｔｒａｃｋｅｒが動的に決定する。そのため、ＷＡＮ高速化装置１は、Ｍａｐタスクノード２側のＷＡＮ高速化装置１Ａとしても、Ｒｅｄｕｃｅタスクノード４側のＷＡＮ高速化装置１Ｂとしても動作する。
【００５３】
（共通の処理）
受信処理部１２，受信側ＩＰ処理部１３，受信側ＴＣＰ処理部１４は、それぞれ、受信パケットについて、ＴＣＰ／ＩＰ参照モデルのネットワークインタフェース層，インターネット層，トランスポート層に係る処理を行う。具体的には、受信側ＩＰ処理部１３は、受信パケットのＩＰヘッダから得られる情報に係る処理を行う。受信側ＴＣＰ処理部１４は、受信パケットのＴＣＰヘッダ及びアプリケーションのヘッダから得られる情報に係る処理を行い、受信パケットを転送処理部１５に出力する。また、受信側ＴＣＰ処理部１４は、ＴＣＰのＡＣＫの応答を要するパケットを検出し、ＴＣＰ代理応答処理部１６に通知する。受信パケットがＡＣＫの返信を要するパケットであることは、例えば、ＴＣＰパケットの種類（ＴＣＰ  ＳＹＮパケット等）、ＴＣＰヘッダ内のシーケンス番号，確認応答番号等により検出される。
【００５４】
ＴＣＰ代理応答処理部１６は、代理応答に係る処理を行う。具体的には、受信側ＴＣＰ処理部１４から通知を受けると、ＴＣＰ代理応答処理部１６は、クライアントとして疑似ＡＣＫを生成し、転送処理部１５に出力する。
【００５５】
転送処理部１５は、受信側ＴＣＰ処理部１４から入力されるパケット，ＴＰＣ代理応答処理部１６から入力される疑似ＡＣＫ等を送信側ＴＣＰ処理部１７に出力する。
【００５６】
送信側ＴＣＰ処理部１７，送信側ＩＰ処理部１８，送信処理部１９は、それぞれ、転送処理部１５によって転送される送信パケットについて、トランスポート層，インターネット層，ネットワークインタフェース層に係る処理を行う。
【００５７】
代理要求処理部１１は、Ｍａｐタスクノード２に代理要求を行う。代理要求処理部１１は、デコード処理部１１１，ＨＴＴＰ代理処理部１１２，ＴＣＰ／ＩＰヘッダ生成部１１３，中間データ用セッション管理テーブル１１４，先読用バッファ１１５を含む。中間データ用セッション管理テーブル１１４および先読用バッファ１１５は、例えば、主記憶装置１０２の記憶領域に格納される。
【００５８】
Ｈａｄｏｏｐでは、Ｍａｐタスクの実行完了はＪｏｂ  Ｔｒａｃｋｅｒ３に集約される。全Ｍａｐタスクが完了したら、Ｊｏｂ  Ｔｒａｃｋｅｒ３によってＲｅｄｕｃｅタスクノード４にＭａｐタスクの完了を通知するorg.apache.hadoop.mapred.TaskCompletionEventメッセージが送信される。org.apache.hadoop.mapred.TaskCompletionEventメッセージには、送信先のＲｅｄｅｃｅタスクに割り当てられた中間データを保持するＭａｐタスクノード２のＩＰアドレスとＴＣＰポート番号と、ＭａｐタスクＩＤと、が含まれている。Ｒｅｄｕｃｅタスクノード４は、org.apache.hadoop.mapred.TaskCompletionEventメッセージを受信すると、org.apache.hadoop.mapred.TaskCompletionEventメッセージが示す中間データを有するＭａｐタスクノード２に対し、中間データを要求するＨＴＴＰ  ＧＥＴ要求を送信する。
【００５９】
したがって、ＷＡＮ高速化装置１では、Ｍａｐタスクノード２への代理要求及びＲｅｄｕｃｅタスクノード４への代理応答を行うために、Ｊｏｂ  Ｔｒａｃｋｅｒ３から送信されるorg.apache.hadoop.mapred.TaskCompletionEventメッセージを検出する。ＷＡＮ高速化装置１がorg.apache.hadoop.mapred.TaskCompletionEventメッセージを検出する処理は、以下の通りである。
【００６０】
受信側ＴＣＰ処理部１４は、受信パケットの送信元ＩＰアドレス，送信元ＴＣＰポート番号がＪｏｂ  Ｔｒａｃｋｅｒ３のものである場合には、受信パケットを転送処理部１５に出力するとともに、代理要求処理部１１に受信パケットのコピーを出力する。なお、ＷＡＮ高速化装置１には、予めＪｏｂ  Ｔｒａｃｋｅｒ３のＩＰアドレスと使用するＴＣＰポート番号とが、例えば、ユーザ設定により主記憶装置１０２の記憶領域に格納されている。
【００６１】
代理要求処理部１１のデコード処理部１１１は、受信側ＴＣＰ処理部１４から入力された、送信元がＪｏｂ  Ｔｒａｃｋｅｒ３である受信パケットのコピーのペイロード部をデコードして、受信パケットに含まれるメッセージを確認する。メッセージが、org.apache.hadoop.mapred.TaskCompletionEventメッセージである場合には、デコード処理部１１１は、org.apache.hadoop.mapred.TaskCompletionEventメッセージから、Ｍａｐタスクノード２のＩＰアドレス，Ｍａｐタスクノード２のポート番号，ＭａｐタスクＩＤを抽出する。また、デコード処理部１１１は、Ｒｅｄｕｃｅタスクノード４のＩＰアドレスとして、org.apache.hadoop.mapred.TaskCompletionEventメッセージを含む受信パケットの宛先ＩＰアドレスを抽出する。このように、他の装置宛てのパケットから情報を抽出することを、スヌーピング、と称する。デコード処理部１１１は、org.apache.hadoop.mapred.TaskCompletionEventメッセージを含む受信パケットから抽出したＭａｐタスクノード２のＩＰアドレス，Ｒｅｄｅｕｃｅタスクノード４のＩＰアドレスを中間データ用セッション管理テーブル１１４に登録する。メッセージが、org.apache.hadoop.mapred.TaskCompletionE
ventメッセージでない場合には、デコード処理部１１１は、受信パケット（コピー）を廃棄する。デコード部１１１は、「検出部」の一例である。org.apache.hadoop.mapred.TaskCompletionEventメッセージは、「要求パケットを送信する契機となるパケット」の一例である。
【００６２】
図９は、中間データ用セッション管理テーブル１１４の一例を示す図である。中間データ用セッション管理テーブル１１４は、Ｍａｐタスクノード２とＲｅｄｕｃｅタスクノード４との間に確立された、中間データの送受信に用いられるＴＣＰセッションの情報を保持する。
【００６３】
中間データ用セッション管理テーブル１１４には、ＭａｐタスクノードのＩＰアドレス，ＲｅｄｕｃｅタスクノードのＩＰアドレス，ＲｅｄｕｃｅタスクノードのＴＣＰポート番号が格納される。ＭａｐタスクノードのＩＰアドレス，ＲｅｄｕｃｅタスクノードのＩＰアドレスは、デコード処理部１１１によって、org.apache.hadoop.mapred.TaskCompletionEventメッセージを含む受信パケットから抽出され、登録される。Ｒｅｄｕｃｅタスクノードのポート番号は、例えば、ＷＡＮ高速化装置１が保持するＴＣＰセッションの管理情報（図示せず）の該当のＴＣＰセッションの情報から抽出され、登録される。このＴＣＰセッション管理情報は、例えば、転送処理部１５によって管理されており、主記憶装置１０２の記憶領域に格納されている。
【００６４】
なお、第１実施形態では、中間データの送受信に用いられるＴＣＰセッションのＭａｐタスクノードのポート番号は一意であることを想定しているため、中間データ用セッション管理テーブル１１４にはＭａｐタスクノードのポート番号は格納されていない。ただし、これに限られず、中間データの送受信に用いられるＴＣＰセッションのＭａｐタスクノードのポート番号が一意でない場合には、中間データ用セッション管理テーブル１１４にＭａｐタスクノードのポート番号が格納される。
【００６５】
（Ｍａｐタスクノード２側のＷＡＮ高速化装置１Ａの処理）
ＷＡＮ高速化装置１は、自装置がＭａｐタスクノード２側のＷＡＮ高速化装置１Ａとして動作することについて、org.apache.hadoop.mapred.TaskCompletionEventメッセージによって示されるＭａｐタスクノード２とＲｅｄｕｃｅタスクノード４とのＩＰアドレスによって判定する。この判定は、例えば、ＨＴＴＰ代理処理部１１２によって行われる。Ｍａｐタスクノード２が内部ネットワークに存在し、且つ、Ｒｅｄｕｃｅタスクノード４が外部ネットワークに存在する場合には、ＷＡＮ高速化装置１は、自装置がＭａｐタスクノード２側のＷＡＮ高速化装置１Ａとして動作することを判定する。
【００６６】
図８に戻って、ＷＡＮ高速化装置１ＡのＨＴＴＰ代理処理部１１２は、受信パケットから抽出された情報から、代理要求パケットを生成する。第１実施形態では、代理要求パケットはＨＴＴＰ  ＧＥＴ要求である。ＨＴＴＰ代理処理部１１２は、ＨＴＴＰ  ＧＥＴ要求によるデータの要求先となるＵＲＩを、org.apache.hadoop.mapred.TaskCompletionEventメッセージから抽出されたＭａｐタスクＩＤを用いて生成する。第１実施形態のＨＴＴＰ代理処理部１１２は、「代理要求部」の一例である。ＨＴＴＰ  ＧＥＴ要求は、「要求パケット」の一例である。
【００６７】
ＭａｐタスクＩＤは、org.apache.hadoop.mapred.TaskCompletionEventメッセージ内で、attempt_<number1>_<number2>_m_<number3>_<number4>と記述されている。Ｊｏｂ  Ｉ
Ｄは、job_<number1>_<number2>と記述されている。<number1>は、日時である。<number2>は、該日時で実行されたジョブのシーケンス番号である。<number3>は、<number2>で示
されるジョブ内でのＭａｐタスクのシーケンス番号である。<number4>は、<number3>で示されるＭａｐタスク内でのタクスのシーケンス番号である。ＨＴＴＰ  ＧＥＴ要求に含ま
れる要求先のＵＲＩは、例えば、以下の通りに生成される。
URI=/mapOutput?job=job_<numbe1>_<number2>&map=attempt_<number1>_<number2>_m_<number3>_<number4>
【００６８】
ＷＡＮ高速化装置１ＡのＴＣＰ／ＩＰヘッダ生成部１１３は、ＨＴＴＰ代理処理部１１２によって生成された代理要求パケットのＴＣＰ／ＩＰヘッダを生成する。宛先ＩＰアドレスには、org.apache.hadoop.mapred.TaskCompletionEventメッセージから抽出されたＭａｐタスクノード２のＩＰアドレスが設定される。宛先ポート番号には、org.apache.hadoop.mapred.TaskCompletionEventメッセージから抽出されたＭａｐタスクノード２のＴＣＰポート番号が設定される。送信元ＩＰアドレスには、org.apache.hadoop.mapred.TaskCompletionEventメッセージを含む受信パケットの宛先ＩＰアドレスであるＲｅｄｕｃｅタスクノード４のＩＰアドレスが設定される。送信元ポート番号には、Ｍａｐタスクノード２のＩＰアドレスとＲｅｄｕｃｅタスクノード４のＩＰアドレスとによって中間データ用セッション管理テーブル１１４から抽出されるＲｅｄｕｃｅタスクノード４のＴＣＰポート番号が設定される。その後、代理要求パケットは、転送処理部１５，送信側ＴＣＰ処理部１７，送信側ＩＰ処理部１８，送信処理部１９でそれぞれ処理されて、Ｍａｐタスクノード２に送信される。
【００６９】
代理要求パケットの送信タイミングは、例えば、Ｊｏｂ  Ｔｒａｃｋｅｒ３からのorg.apache.hadoop.mapred.TaskCompletionEventメッセージの受信直後である。また、同一のＭａｐタスクに対して複数の代理要求が発生した場合には、Ｍａｐタスクノード２からの１つの中間データの受信の完了後に次の中間データの代理要求パケットを送信してもよい。すなわち、同一のＭａｐタスクノード２から複数の中間データの取得を行う場合には、複数の中間データに対する代理要求パケットの送信処理は、並行して行われてもよいし、中間データの受信完了毎に行われてもよい。
【００７０】
該代理要求パケットに対する応答としてＭａｐタスクノード２から送信される中間データのデータパケットは、Ｍａｐタスクノード２側のＷＡＮ高速化装置１Ａにおいて、外部ネットワークに転送される。このとき、中間データのパケットが転送されるとともに、ＴＣＰ代理応答処理部１６によって疑似ＡＣＫが生成され、Ｍａｐタスクノード２に対して疑似ＡＣＫが送信される。
【００７１】
（Ｒｅｄｕｃｅタスクノード４側のＷＡＮ高速化装置１Ｂの処理）
ＷＡＮ高速化装置１は、自装置がＲｅｄｕｃｅタスクノード４側のＷＡＮ高速化装置１Ｂとして動作することについて、org.apache.hadoop.mapred.TaskCompletionEventメッセージによって示されるＭａｐタスクノード２とＲｅｄｕｃｅタスクノード４とのＩＰアドレスによって判定する。Ｍａｐタスクノード２が外部ネットワークに存在し、且つ、Ｒｅｄｕｃｅタスクノード４が内部ネットワークに存在する場合には、ＷＡＮ高速化装置１は、自装置がＲｅｄｕｃｅタスクノード４側のＷＡＮ高速化装置１Ｂとして動作することを判定する。
【００７２】
ＷＡＮ高速化装置１ＢのＨＴＴＰ代理処理部１１２は、org.apache.hadoop.mapred.TaskCompletionEventメッセージを受信した場合、ＨＴＴＰ応答データ（中間データ）を待ち受けるための処理を行う。
【００７３】
ＷＡＮ高速化装置１Ｂの受信側ＴＣＰ処理部１４は、受信パケットを監視し、中間データ用セッション管理テーブル１１４に登録されるＴＣＰセッションのパケットを検出する。この検出されるパケットは、Ｍａｐタスクノード２から送信される中間データのパケットである。具体的には、宛先ＩＰアドレス，宛先ポート番号，送信元ＩＰアドレス，送信元ポート番号が、それぞれ、Ｒｅｄｕｃｅタスクノード４のＩＰアドレス，Ｒｅｄｕｃｅ
タスクノード４のＴＣＰポート番号，Ｍａｐタスクノード２のＩＰアドレス，Ｍａｐタスクノード２のポート番号に一致する受信パケットである。受信側ＴＣＰ処理部１４は、検出した中間データのデータパケットを先読用バッファ１１５に格納する。
【００７４】
また、ＷＡＮ高速化装置１Ｂの受信側ＴＣＰ処理部１４は、受信パケットを監視し、Ｒｅｄｕｃｅタスクノード４からＭａｐタスクノード２へ送信されるＨＴＴＰ  ＧＥＴ要求を検出する。このＨＴＴＰ  ＧＥＴ要求は、宛先ＩＰアドレス，宛先ポート番号，送信元ＩＰアドレス，送信元ポート番号が、それぞれ、Ｍａｐタスクノード２のＩＰアドレス，Ｍａｐタスクノード２のポート番号，Ｒｅｄｕｃｅタスクノード４のＩＰアドレス，Ｒｅｄｕｃｅタスクノード４のポート番号に一致することによって検出される。
【００７５】
Ｒｅｄｕｃｅタスクノード４からのＨＴＴＰ  ＧＥＴ要求を検出した場合には、ＴＣＰ代理応答処理部１６は、先読用バッファ１１５に、ＨＴＴＰ  ＧＥＴ要求に含まれるＭａｐタスクＩＤの中間データのデータパケットが格納されているか否を判定する。先読用バッファ１１５に該当のＭａｐタスクＩＤの中間データのデータパケットが格納されている場合には、ＴＣＰ代理応答処理部１６は、先読用バッファ１１５から該データパケットを抽出し、代理でＲｅｄｕｃｅタスクノード４に送信する（代理応答）。先読用バッファ１１５に該当のＭａｐタスクＩＤの中間データのデータパケットが格納されていない場合には、ＴＣＰ代理応答処理部１６は、検出したＨＴＴＰ  ＧＥＴ要求を一旦保持する。その後、該当ＭａｐタスクＩＤの中間データのデータパケットを受信したら、受信側ＴＣＰ処理部１４は先読用バッファ１１５に格納し、ＴＣＰ代理応答処理部１６は先読用バッファ１１５からデータパケットを順番に読出し、Ｒｅｄｕｃｅタスクノード４に送信する。
【００７６】
＜動作例＞
図１０は、ＷＡＮ高速化装置１の代理要求又は代理応答に係る処理のフローチャートの一例である。図１０に示される処理は、ＷＡＮ高速化装置１がパケットを受信する毎に実行される。
【００７７】
Ｓ１では、受信側ＴＣＰ処理部１４は、受信パケットの送信元がＪｏｂ  Ｔｒａｃｋｅｒ３であるか否かを判定する。この判定では、受信パケットの送信元ＩＰアドレス，送信元ポート番号が、Ｊｏｂ  Ｔｒａｃｋｅｒ３のＩＰアドレス，ポート番号に一致する受信パケットが検出される。受信パケットの送信元がＪｏｂ  Ｔｒａｃｋｅｒ３である場合には（Ｓ１：Ｙｅｓ）、受信パケットのコピーが生成され、受信パケット（コピー）はデコード処理部１１１に出力される。次に、処理がＳ２に進む。受信パケットの送信元がＪｏｂ  Ｔｒａｃｋｅｒ３ではない場合には（Ｓ１：Ｎｏ）、図１０に示される処理が終了する。
【００７８】
Ｓ２では、デコード処理部１１１が、Ｓ１において検出された受信パケット（コピー）をデコードする。次に処理がＳ３に進む。
【００７９】
Ｓ３では、デコード処理部１１１は、受信パケットがorg.apache.hadoop.mapred.TaskCompletionEventメッセージであるか否かを判定する。受信パケットがorg.apache.hadoop.mapred.TaskCompletionEventメッセージである場合には（Ｓ３：Ｙｅｓ）、処理がＳ４に進む。受信パケットがorg.apache.hadoop.mapred.TaskCompletionEventメッセージでない場合には（Ｓ３：Ｎｏ）、デコード処理部１１１は、受信パケット（コピー）を廃棄し、その後、図１０に示される処理が終了する。
【００８０】
Ｓ４では、デコード処理部１１１は、受信パケットから、ＭａｐタスクノードのＩＰアドレス，Ｍａｐタスクノードのポート番号，ＭａｐタスクＩＤと、ＲｅｄｕｃｅタスクノードのＩＰアドレスとして宛先ＩＰアドレスを抽出する。ＭａｐタスクノードのＩＰアド
レス，ＲｅｄｕｃｅタスクノードのＩＰアドレスは、Ｒｅｄｕｃｅタスクノードのポート番号とともに中間データ用セッション管理テーブル１１４に登録される。以降、Ｓ４において、org.apache.hadoop.mapred.TaskCompletionEventメッセージを含む受信パケットから、Ｍａｐタスクノード２のＩＰアドレスとポート番号，宛先ＩＰアドレスとしてＲｅｄｕｃｅタスクノード４のＩＰアドレスとが抽出されたとして説明する。次に処理がＳ５に進む。
【００８１】
Ｓ５では、ＨＴＴＰ代理処理部１１２は、受信パケットが示すＭａｐタスクノード２が内部ネットワークに存在し、且つ、Ｒｅｄｕｃｅタスクノード４が外部ネットワークに存在するか、否かを判定する。この判定は、Ｍａｐタスクノード２及びＲｅｄｕｃｅタスクノード４のＩＰアドレスによって判定される。Ｍａｐタスクノード２が内部ネットワーク内に存在し、且つ、Ｒｅｄｕｃｅタスクノード４が外部ネットワークに存在する場合には（Ｓ５：Ｙｅｓ）、ＷＡＮ高速化装置１は、例えば、図５におけるＭａｐタスクノード２側のＷＡＮ高速化装置１Ａであることが示され、処理がＳ６に進む。Ｍａｐタスクノード２が内部ネットワーク内に存在しない、又は、Ｒｅｄｕｃｅタスクノード４が外部ネットワークに存在しない場合には（Ｓ５：Ｎｏ）、処理がＳ８に進む。
【００８２】
Ｓ６及びＳ７の処理は、図５におけるＭａｐタスクノード２側のＷＡＮ高速装置１Ａが実行する処理である。Ｓ６では、ＨＴＴＰ代理処理部１１２は、代理要求メッセージとして、ＨＴＴＰ  ＧＥＴ要求を生成する。このＨＴＴＰ  ＧＥＴ要求には、org.apache.hadoop.mapred.TaskCompletionEventメッセージから抽出されたタスクＩＤより生成されたＵＲＩが含まれる。次に処理がＳ７に進む。
【００８３】
Ｓ７では、ＴＣＰ／ＩＰヘッダ生成部１１３は、ＨＴＴＰ代理処理部１１２によって生成されたＨＴＴＰ  ＧＥＴメッセージのＴＣＰ／ＩＰヘッダを生成し、代理要求パケットを生成する。この代理パケットの宛先ＩＰアドレス，宛先ポート番号，送信元ＩＰアドレス，送信元ポート番号は、それぞれ、Ｍａｐタスクノード２のＩＰアドレス，Ｍａｐタスクノード２のポー番号，Ｒｅｄｕｃｅタスクノード４のＩＰアドレス，Ｒｅｄｕｃｅタスクノード４のポート番号となる。この代理要求パケットは、転送処理部１５，送信側ＴＣＰ処理部１７，送信側ＩＰ処理部１８，送信処理部１９を経由して、Ｍａｐタスクノードに送信される。これによって、図１０に示される処理は終了する。その後、Ｍａｐタスクノード２から中間データのデータパケットを受信すると、ＷＡＮ高速化装置１Ａは、該データパケットを外部ネットワークに転送する。中間データのデータパケットは、ＷＡＮ高速化装置１Ｂにバッファされ、Ｒｅｄｕｃｅタスクノード４からのＨＴＴＰ  ＧＥＴ要求がＷＡＮ高速化装置１Ｂに届くと、ＷＡＮ高速化装置１Ｂによって、Ｒｅｄｕｃｅタスクノード４に送信される。
【００８４】
Ｓ８では、ＨＴＴＰ代理処理部１１２は、受信パケットが示すＭａｐタスクノード２が外部ネットワークに存在し、且つ、Ｒｅｄｕｃｅタスクノード４が内部ネットワークに存在するか、否かを判定する。Ｍａｐタスクノード２が外部ネットワーク内に存在し、且つ、Ｒｅｄｕｃｅタスクノード４が内部ネットワークに存在する場合には（Ｓ８：Ｙｅｓ）、ＷＡＮ高速化装置１は、例えば、図５におけるＲｅｄｕｃｅタスクノード４側のＷＡＮ高速化装置１Ｂであることが示され、処理がＳ９に進む。
【００８５】
Ｓ９の処理は、図５におけるＲｅｄｕｃｅタスクノード４側のＷＡＮ高速装置１Ｂが実行する処理である。Ｓ９では、ＨＴＴＰ代理処理部１１２は、中間データのデータパケットの待ち受け処理を行う。これによって、図１０に示される処理が終了する。その後、ＷＡＮ高速化装置１Ａによって転送された中間データのデータパケットがＷＡＮ高速化装置１Ｂに届くと、ＷＡＮ高速化装置１Ｂは、データパケットを先読用バッファ１１５に格納する。Ｒｅｄｕｃｅタスクノード４からＨＴＴＰ  ＧＥＴ要求を受信すると、ＷＡＮ高速
化装置１Ｂは、先読用バッファ１１５から該当する中間データのデータパケットを読み出し、Ｒｅｄｕｃｅタスクノード４に送信する。
【００８６】
Ｓ８において、Ｍａｐタスクノード２が外部ネットワーク内に存在しない、又は、Ｒｅｄｕｃｅタスクノード４が内部ネットワークに存在しない場合には（Ｓ８：Ｎｏ）、図１０に示される処理が終了する。ＷＡＮ高速化装置１は、プロキシであり、内部ネットワーク内で完結する通信は取り扱わない。Ｍａｐタスクノード２及びＲｅｄｕｃｅタスクノード４がともに内部ネットワークに存在する場合には、中間データの送受信ではＷＡＮを経由しないため、ＷＡＮ高速化装置１は代理処理を行わずともよい。また、Ｍａｐタスクノード２及びＲｅｄｕｃｅタスクノード４がともに外部ネットワークに存在する場合には、そもそもＷＡＮ高速化装置１にＪｏｂ  Ｔｒａｃｋｅｒ３からのorg.apache.hadoop.mapred.TaskCompletionEventメッセージは届かない。
【００８７】
図１１は、図５に示されるシステムにおける代理要求又は代理応答に係る処理のシーケンス図の一例である。図１１では、Ｊｏｂ  Ｔｒａｃｋｅｒ３がＲｅｄｕｃｅタスクノード４に対して、Ｍａｐタスクノード２から中間データを取得するよう指示する内容が含まれたorg.apache.hadoop.mapred.TaskCompletionEventメッセージが送信された場合の各装置の処理のシーケンスが示される。なお、図１１に示される例では、ＷＡＮ高速化装置１Ａは、Ｍａｐタスクノード２に対して複数の中間データを要求する場合には、１つの中間データの受信完了後に次の中間データの代理要求を行うこととする。また、以降の説明でのＭａｐタスクＩＤは、実際の記述とは異なるものの、便宜上簡略化してタスクＩＤ＃１，＃２と表記する。
【００８８】
ＯＰ２１では、Ｊｏｂ  Ｔｒａｃｋｅｒ３は、Ｒｅｄｕｃｅタスクノード４にorg.apache.hadoop.mapred.TaskCompletionEventメッセージを送信する。このorg.apache.hadoop.mapred.TaskCompletionEventメッセージには、Ｍａｐタスクノード２のＩＰアドレス及びポート番号、タスクＩＤ＃１が含まれる。
【００８９】
ＯＰ２２では、ＷＡＮ高速化装置１Ａは、Ｊｏｂ  Ｔｒａｃｋｅｒ３によって送信されたorg.apache.hadoop.mapred.TaskCompletionEventメッセージを受信する。ＷＡＮ高速化装置１Ａは、このorg.apache.hadoop.mapred.TaskCompletionEventメッセージをＲｅｄｕｃｅタスクノード４に転送するとともに、内容をスヌーピングし、Ｍａｐタスクノード２にタスクＩＤ＃１の中間データに対するＨＴＴＰ  ＧＥＴ要求を送信する（図１０、Ｓ１−Ｓ７）。
【００９０】
ＯＰ２３では、ＷＡＮ高速化装置１Ｂは、ＷＡＮ高速化装置１Ａによって転送されたorg.apache.hadoop.mapred.TaskCompletionEventメッセージを受信する。ＷＡＮ高速化装置１Ｂは、このorg.apache.hadoop.mapred.TaskCompletionEventメッセージをＲｅｄｕｃｅタスクノード４に転送するとともに、内容をスヌーピングし、タスク＃１の中間データのデータパケットを待ち受ける（図１０、Ｓ１−Ｓ５、Ｓ８−Ｓ９）。
【００９１】
ＯＰ２４では、Ｊｏｂ  Ｔｒａｃｋｅｒ３は、再びＲｅｄｕｃｅタスクノード４にorg.apache.hadoop.mapred.TaskCompletionEventメッセージを送信する。このorg.apache.hadoop.mapred.TaskCompletionEventメッセージには、Ｍａｐタスクノード２のＩＰアドレス及びポート番号、タスクＩＤ＃２が含まれる。
【００９２】
ＯＰ２５では、ＷＡＮ高速化装置１Ａは、Ｊｏｂ  Ｔｒａｃｋｅｒ３によって送信されたorg.apache.hadoop.mapred.TaskCompletionEventメッセージを受信する。ＷＡＮ高速化装置１Ａは、このorg.apache.hadoop.mapred.TaskCompletionEventメッセージをＲｅｄｕｃｅタスクノード４に転送するとともに、内容をスヌーピングする。なお、この時点では
、ＯＰ２２において受信したorg.apache.hadoop.mapred.TaskCompletionEventメッセージに含まれるタスクＩＤ＃１の中間データに対して代理要求処理を行っているため、Ｍａｐタスクノード２にタスクＩＤ＃２の中間データに対するＨＴＴＰ  ＧＥＴ要求は送信しない（図１０、Ｓ１−Ｓ７）。
【００９３】
ＯＰ２６では、ＷＡＮ高速化装置１Ｂは、ＷＡＮ高速化装置１Ａによって転送されたorg.apache.hadoop.mapred.TaskCompletionEventメッセージを受信する。ＷＡＮ高速化装置１Ｂは、このorg.apache.hadoop.mapred.TaskCompletionEventメッセージをＲｅｄｕｃｅタスクノード４に転送する。なお、この時点では、ＷＡＮ高速化装置１Ｂは、すでに中間データの待ち受け状態になっているため、待ち受け処理を行わない。
【００９４】
ＯＰ２７では、Ｍａｐタスクノード２がＷＡＮ高速化装置１Ａから送信されたＨＴＴＰ
ＧＥＴ要求を受信し、タスクＩＤ＃１の中間データのデータパケットを送信する。このタスクＩＤ＃１の中間データは、ＯＰ２１においてＪｏｂ  Ｔｒａｃｋｅｒ３から送信されたorg.apache.hadoop.mapred.TaskCompletionEventメッセージによって示されるタスクＩＤの中間データである。
【００９５】
ＯＰ２８では、ＷＡＮ高速化装置１Ａは、Ｍａｐタスクノード２によって送信されたタスクＩＤ＃１の中間データのデータパケットを受信する。ＷＡＮ高速化装置１Ａは、タスクＩＤ＃１の中間データのデータパケットをＲｅｄｕｃｅタスクノード４に転送するとともに、代理応答として、Ｍａｐタスクノード２にＡＣＫを送信する。
【００９６】
ＯＰ２９では、ＷＡＮ高速化装置１Ｂは、ＷＡＮ高速化装置１Ａによって転送されたタスクＩＤ＃１の中間データのデータパケットを受信し、先読用バッファ１１５に格納する。
【００９７】
ＯＰ３０では、Ｒｅｄｕｃｅタスクノード４は、タスクＩＤ＃１の中間データに対するＨＴＴＰ  ＧＥＴ要求をＭａｐタスクノード２に送信する。
【００９８】
ＯＰ３１では、ＷＡＮ高速化装置１Ｂは、Ｒｅｄｕｃｅタスクノード４からのタスクＩＤ＃１の中間データに対するＨＴＴＰ  ＧＥＴ要求を受信する。ＯＰ３２では、ＷＡＮ高速化装置１Ｂは、先読用バッファ１１５内にタスクＩＤ＃１の中間データのデータパケットが格納されているので、該データパケットを読出し、Ｒｅｄｕｃｅタスクノード４に送信する（代理応答）。
【００９９】
ＯＰ３２では、Ｒｅｄｕｃｅタスクノード４は、タスクＩＤ＃１の中間データのデータパケットを受信し、ＡＣＫを送信する。このＡＣＫは、Ｍａｐタスクノード２に宛てて送信されるが、ＷＡＮ高速化装置１Ｂによって終端される。
【０１００】
ＯＰ３３では、Ｍａｐタスクノード２は、タスクＩＤ＃１の中間データの最後のデータパケットを送信する。
【０１０１】
ＯＰ３４では、ＷＡＮ高速化装置１Ａは、Ｍａｐタスクノード２によって送信されたタスクＩＤ＃１の中間データの最後のデータパケットを受信する。ＷＡＮ高速化装置１Ａは、タスクＩＤ＃１の中間データの最後のデータパケットをＲｅｄｕｃｅタスクノード４に転送するとともに、代理応答として、Ｍａｐタスクノード２にＡＣＫを送信する。
【０１０２】
ＯＰ３５では、ＷＡＮ高速化装置１Ｂは、ＷＡＮ高速化装置１Ａによって転送されたタスクＩＤ＃１の中間データの最後のデータパケットを受信し、先読用バッファ１１５に格納し、順番が来たら、該最後のデータパケットをＲｅｄｕｃｅタスクノード４に送信する
。ＯＰ３６では、Ｒｅｄｕｃｅタスクノード４は、タスクＩＤ＃１の最後のデータパケットを受信し、ＡＣＫを送信する。
【０１０３】
ＯＰ３７では、ＷＡＮ高速化装置１Ａは、ＯＰ３４において、タスクＩＤ＃１の中間データの受信が完了したので、タスクＩＤ＃２の中間データに対するＨＴＴＰ  ＧＥＴ要求をＭａｐタスクノード２に送信する。以降、ＯＰ２７−ＯＰ３６と同様にして、タスクＩＤ＃２の中間データの送受信が行われる。
【０１０４】
＜第１実施形態の作用効果＞
第１実施形態では、Ｊｏｂ  Ｔｒａｃｋｅｒ３から送信されるorg.apache.hadoop.mapred.TaskCompletionEventメッセージをＷＡＮ高速化装置１Ａがスヌーピングし、Ｍａｐタスクノード２に代理要求を行う。Ｍａｐタスクノード２から送信された中間データは、ＷＡＮ高速化装置１Ａの転送によってＷＡＮ高速化装置１Ｂの先読用バッファ１１５にバッファされる。これによって、Ｒｅｄｕｃｅタスクノード４がＨＴＴＰ  ＧＥＴ要求を送信したときには、ＷＡＮ高速化装置１Ｂに該当の中間データがバッファされており、ＷＡＮ高速化装置１ＢからＲｅｄｕｃｅタスクノード４に中間データが送信される。したがって、第１実施形態によれば、Ｒｅｄｕｃｅタスクノード４がＨＴＴＰ  ＧＥＴ要求を送信してから、中間データを受信するまでの時間を短縮することができる。
【０１０５】
また、同一のＭａｐタスクノード２からタスクＩＤ＃１，＃２の中間データを取得する場合には、ＷＡＮ高速化装置１Ａは、タスクＩＤ＃１の中間データの受信完了後に、Ｍａｐタスクノード２に対してＨＴＴＰ  ＧＥＴ要求を送信する。この代理要求は、Ｒｅｄｕｃｅタスクノード４からのタスクＩＤ＃２の中間データに対するＨＴＴＰ  ＧＥＴ要求を待たずに行われる。これによって、Ｍａｐタスクノード２がタスクＩＤ＃１の中間データの最後のデータパケットを送信してから、次のタスクＩＤ＃２の中間データの最初のデータパケットを送信するまでの時間を短縮することができる。また、タスクＩＤ＃２の中間データの先読みができ、Ｒｅｄｕｃｅタスクノード４がタスクＩＤ＃１の中間データの受信完了からタスクＩＤ＃２の中間データの受信開始までの時間を短縮することができる。
【０１０６】
また、第１実施形態によれば、Ｊｏｂ  Ｔｒａｃｋｅｒ，Ｔａｓｋ  Ｔｒａｃｋｅｒ等のＨａｄｏｏｐノードや既存のインフラに変更を加えることがないため、敷設コストや運用コストを少なく抑えることができる。また、中間データの通信に要する時間を短縮することによって、Ｈａｄｏｏｐ  Ｊｏｂ全体の実行時間を短縮することができる。
【０１０７】
＜第２実施形態＞
第１実施形態では、中間データの送受信よりも前に、Ｍａｐタスクノード２とＲｅｄｕｃｅタスクノード４との間にＴＣＰセッションが確立しており、Ｒｅｄｕｃｅタスクノード４のポート番号が判明していることを前提とした。第２実施形態では、この前提を取り除き、中間ノードの送受信開始時に、Ｍａｐタスクノード２とＲｅｄｕｃｅタスクノード４との間のＴＣＰセッションを確立する場合について説明する。なお、第２実施形態についても、図５に示されるシステムを前提として説明する。また、第２実施形態では、第１実施形態と共通する説明については、省略される。
【０１０８】
第１実施形態では、Ｊｏｂ  Ｔｒａｃｋｅｒ３からのorg.apache.hadoop.mapred.TaskCompletionEventメッセージの受信よりも前に、Ｍａｐタスクノード２とＲｅｄｕｃｅタスクノード４との間のＴＣＰセッションが確立している。そのため、ＷＡＮ高速化装置１は、Ｒｅｄｕｃｅタスクノード４のポート番号を事前に取得することができ、org.apache.hadoop.mapred.TaskCompletionEventメッセージの受信を契機に、Ｍａｐタスクノード２への代理要求や、中間データの待ち受け処理を行うことができる。
【０１０９】
一方、第２実施形態では、Ｊｏｂ  Ｔｒａｃｋｅｒ３からのorg.apache.hadoop.mapred.TaskCompletionEventメッセージの受信時には、Ｍａｐタスクノード２とＲｅｄｕｃｅタスクノード４との間のＴＣＰセッションが確立してない。そのため、まず、ＷＡＮ高速化装置１は、Ｊｏｂ  Ｔｒａｃｋｅｒ３からorg.apache.hadoop.mapred.TaskCompletionEventメッセージを受信したら、Ｍａｐタスクノード２とＲｅｄｕｃｅタスクノード４との間のＴＣＰセッションを確立する処理を実行する。ＷＡＮ高速化装置１が、Ｍａｐタスクノード２とＲｅｄｕｃｅタスクノード４との間のＴＣＰセッションの確立する場合には、Ｍａｐタスクノード２とＲｅｄｕｃｅタスクノード４とのＩＰアドレス及びポート番号を用いる。ＷＡＮ高速化装置１は、org.apache.hadoop.mapred.TaskCompletionEventメッセージから、Ｍａｐタスクノード２のＩＰアドレスとポート番号，Ｒｅｄｕｃｅタスクノード４のＩＰアドレスは、取得可能である。しかしながら、ＷＡＮ高速化装置１は、Ｒｅｄｕｃｅタスクノード４のポート番号については取得できない。
【０１１０】
そこで、第２実施形態では、org.apache.hadoop.mapred.TaskCompletionEventメッセージを受信すると、Ｍａｐタスクノード２側のＷＡＮ高速化装置１Ａが、Ｒｅｄｕｃｅタスクノード４の代理ポート番号を生成する。ＷＡＮ高速化装置１Ａは、この代理ポート番号を用いて、ＴＣＰセッションの確立、代理要求を行う。
【０１１１】
Ｍａｐタスクノード側のＷＡＮ高速化装置１Ａのデコード処理部１１１は、Ｊｏｂ  Ｔｒａｃｋｅｒ３からのorg.apache.hadoop.mapred.TaskCompletionEventメッセージから、Ｍａｐタスクノード２のＩＰアドレスとポート番号，ＭａｐタスクＩＤを抽出する。また、デコード処理部１１１は、該メッセージを含む受信パケットの宛先ＩＰアドレスをＲｅｄｕｃｅタスクノード４のＩＰアドレスとして抽出する。抽出されたＭａｐタスクノード２のＩＰアドレス，Ｒｅｄｕｃｅタスクノード４のＩＰアドレスは、中間データ用セッション管理テーブル１１４に登録される。ここまでは、第１実施形態と同様である。
【０１１２】
第１実施形態では、中間データ用セッション管理テーブル１１４のＲｅｄｕｃｅタスクノードのポート番号は、例えば、ＷＡＮ高速化装置１が保持するＴＣＰセッションの管理情報（図示せず）の既に確立されている該当のＴＣＰセッションの情報から抽出され、登録された。第２実施形態では、抽出したＭａｐタスクノード２のＩＰアドレスとポート番号、Ｒｅｄｕｃｅタスクノード４のＩＰアドレスに合致するＴＣＰセッションが確立されていない場合には、ＨＴＴＰ代理処理部１１２が、代理ポート番号を生成し、中間データ用セッション管理テーブル１１４にＲｅｄｕｃｅタスクノードのポート番号として登録する。この代理ポート番号は、例えば、未使用のポート番号の中からランダムに選択される。
【０１１３】
次に、ＷＡＮ高速化装置１ＡのＨＴＴＰ代理処理部１１２は、Ｍａｐタスクノード２とＴＣＰセッションを確立するために、ＴＣＰ  ＳＹＮパケットを生成し、Ｍａｐタスクノード２に送信する。このＴＣＰ  ＳＹＮパケットの宛先ＩＰアドレス，宛先ポート番号，送信元ＩＰアドレスは、org.apache.hadoop.mapred.TaskCompletionEventメッセージを含む受信パケットから抽出されたＭａｐタスクノード２のＩＰアドレス，Ｍａｐタスク２のポート番号，Ｒｅｄｅｕｃｅタスクノード４のＩＰアドレスである。送信元ポート番号は、中間データ用セッション管理テーブル１１４に格納されるＲｅｄｕｃｅタスクノードの代理ポート番号である。この後の、Ｍａｐタスクノード２とのＴＣＰセッション確立に係る処理は、例えば、ＴＣＰ代理応答処理部１６によって行われる。第２実施形態におけるＴＣＰ  ＳＹＮパケットは、「要求パケット」の一例である。
【０１１４】
Ｍａｐタスクノード２とのＴＣＰセッションが確立されると、ＨＴＴＰ代理処理部１１２は、Ｒｅｄｕｃｅタスクノード４側のＷＡＮ高速化装置１ＢにＲｅｄｕｃｅタスクノード４の代理ポート番号を通知する。この生成したＲｅｄｕｃｅタスクノード４の代理ポー
ト番号の通知には、例えば、ＷＡＮ高速化装置間で用いられるプロトコルを用いてもよく、通知の方法は限定されない。
【０１１５】
また、ＨＴＴＰ処理部１１２は、Ｍａｐタスクノード２とのＴＣＰセッションの確立を契機に、ＨＴＴＰ  ＧＥＴ要求を生成し、Ｍａｐタスクノード２に送信する。このＨＴＴＰ  ＧＥＴ要求の送信元ポート番号にも、生成されたＲｅｄｕｃｅタスクノード４の代理ポート番号が用いられる。
【０１１６】
以後、この生成した代理ポート番号を用いて、ＷＡＮ高速化装置１Ａは、第１実施形態と同様にして、中間データの送受信を行う。
【０１１７】
Ｒｅｄｕｃｅタスクノード４側のＷＡＮ高速化装置１Ｂは、第２実施形態では、中間データ用セッション管理テーブル１１４に代えて、ＴＣＰセッション関連付けテーブルを保持する。ＴＣＰセッション関連付けテーブルは、ＷＡＮ高速化装置１ＢとＲｅｄｕｃｅタスクノード４間のＴＣＰセッションと、ＷＡＮ高速化装置１ＢとＭａｐタスクノード２間のＴＣＰセッションとの関連付けを管理するテーブルである。ＴＣＰセッション関連付けテーブルは、例えば、主記憶装置１０２の記憶領域に生成される。ＴＣＰセッション関連付けテーブルの詳細は、図１２で後述する。
【０１１８】
Ｒｅｄｕｃｅタスクノード４側のＷＡＮ高速化装置１Ｂは、ＷＡＮ高速化装置１Ａから通知された、ＷＡＮ高速化装置１Ａによって生成されたＲｅｄｕｃｅタスクノード４のポート番号を、ＴＣＰセッション関連付けテーブルに格納する。ＷＡＮ高速化装置１Ａからの通知の検出及びＴＣＰセッション関連付けテーブルへの格納は、該通知に用いられるプロトコルによって、受信側ＴＣＰ処理部１４又は受信側ＩＰ処理部１３によって行われる。
【０１１９】
ＴＣＰセッションが確立していない場合には、Ｊｏｂ  Ｔｒａｃｋｅｒ３からのorg.apache.hadoop.mapred.TaskCompletionEventメッセージを受信すると、Ｒｅｄｕｃｅタスクノード４は、Ｍａｐタスクノード２とのＴＣＰセッションの確立を開始する。Ｒｅｄｕｃｅタスクノード４側のＷＡＮ高速化装置１Ｂは、Ｒｅｄｕｃｅタスクノード４からのＴＣＰ  ＳＹＮパケットを終端し、ＴＣＰ  ＳＹＮパケットに含まれるＲｅｄｕｃｅタスクノード４が実際に使用するポート番号を取得する。このポート番号は、Ｍａｐタスクノード２側のＷＡＮ高速化装置１Ａによって生成されたポート番号と対応付けて、ＴＣＰセッション関連付けテーブルに格納される。
【０１２０】
なお、Ｒｅｄｕｃｅタスクノード４にorg.apache.hadoop.mapred.TaskCompletionEventメッセージが届く前に、ＷＡＮ高速化装置１Ｂは、該メッセージをスヌーピングしており、Ｒｅｄｕｃｅタスクノード４とＭａｐタスクノード２とのＩＰアドレスを取得している。したがって、ＷＡＮ高速化装置１Ｂでは、受信側ＴＣＰ処理部１４が、宛先ＩＰアドレス，送信元ＩＰアドレスが、それぞれ、Ｍａｐタスクノード２のＩＰアドレス，Ｒｅｄｕｃｅタスクノード４のＩＰアドレスであるＴＣＰ  ＳＹＮパケットを検出する。ＴＣＰ  ＳＹＮパケットから抽出されたＲｅｄｕｃｅタスクノード４のポート番号のＴＣＰセッション関連付けテーブルへの登録も、受信側ＴＣＰ処理部１４によって行われる。
【０１２１】
Ｒｅｄｕｃｅタスクノード４側のＷＡＮ高速化装置１ＢのＴＣＰ代理応答処理部１６は、代理でＲｅｄｕｃｅタスクノード４とＴＣＰセッションを確立する。Ｒｅｄｕｃｅタスクノード４とのＴＣＰセッションが確立し、Ｒｅｄｕｃｅタスクノード４からＨＴＴＰ  ＧＥＴ要求を受信すると、ＴＣＰ代理応答処理部１６が、先読用バッファ１１５から該当のデータパケットを読出し、送信する。このとき、中間データのデータパケットは、宛先ポート番号が送信側ＴＣＰ処理部１７によって、書き換えられる。この宛先ポート番号の
書き換えは、ＴＣＰセッション関連付けテーブルを参照して行われる。具体的には、中間データのデータパケットの宛先ポート番号は、Ｍａｐタスクノード２側のＷＡＮ高速化装置１Ａによって生成されたＲｅｄｕｃｅタスクノード４のポート番号から、実際に用いられるＲｅｄｕｃｅタスクノード４のポート番号に書き換えられる。
【０１２２】
図１２は、Ｒｅｄｕｃｅタスクノード４側のＷＡＮ高速化装置１Ｂが保持する、ＴＣＰセッション関連付けテーブルの一例である。セッション関連付けテーブルには、ＭａｐタスクノードのＩＰアドレス，ＲｅｄｕｃｅタスクノードのＩＰアドレス，代理Ｒｅｄｕｃｅタスクノードポート番号，Ｒｅｄｕｃｅタスクノードのポート番号が格納される。なお、第２実施形態においても、第１実施形態と同様に、Ｍａｐタスクノードのポート番号が一意であることを想定しているため、図１２に示されるＴＣＰセッション関連付けテーブルにはＭａｐタスクノードのポート番号は格納されていない。ただし、これに限られず、Ｍａｐタスクノードのポート番号が一意でない場合には、ＴＣＰセッション関連付けテーブルにＭａｐタスクノードのポート番号が格納される。
【０１２３】
ＭａｐタスクノードのＩＰアドレス及びＲｅｄｕｃｅタスクノードのＩＰアドレスは、org.apache.hadoop.mapred.TaskCompletionEventメッセージのスヌーピングにより取得される。代理Ｒｅｄｕｃｅタスクノードポート番号は、Ｍａｐタスクノード２側のＷＡＮ高速化装置１Ａによって生成された代理ポート番号である。代理Ｒｅｄｕｃｅタスクノードポート番号は、Ｍａｐタスクノード２側のＷＡＮ高速化装置１Ａからの通知によって取得される。Ｒｅｄｕｃｅタスクノードのポート番号は、ＴＣＰセッション確立時のＴＣＰ  ＳＹＮパケットから取得される。
【０１２４】
＜動作例＞
図１３は、第２実施形態における中間データの送受信の前のＴＣＰセッション確立の処理のシーケンスの一例を示す図である。図１３では、Ｊｏｂ  Ｔｒａｃｋｅｒ３がＲｅｄｕｃｅタスクノード４に対して、Ｍａｐタスクノード２から中間データを取得するよう指示する内容が含まれたorg.apache.hadoop.mapred.TaskCompletionEventメッセージが送信された場合の各装置の処理のシーケンスが示される。なお、図１３に示される例では、Ｍａｐタスクノード２とＲｅｄｕｃｅタスクノード４との間のＴＣＰセッションは確立していないこととする。
【０１２５】
ＯＰ４１では、Ｊｏｂ  Ｔｒａｃｋｅｒ３は、Ｒｅｄｕｃｅタスクノード４にorg.apache.hadoop.mapred.TaskCompletionEventメッセージを送信する。ＯＰ４２では、ＷＡＮ高速化装置１Ａは、Ｊｏｂ  Ｔｒａｃｋｅｒ３によって送信されたorg.apache.hadoop.mapred.TaskCompletionEventメッセージを受信する。ＷＡＮ高速化装置１Ａは、このorg.apache.hadoop.mapred.TaskCompletionEventメッセージをＲｅｄｕｃｅタスクノード４に転送するとともに、内容をスヌーピングする。このとき、ＷＡＮ高速化装置１Ａは、Ｒｅｄｕｃｅタスクノード４の代理ポート番号を生成し、この代理ポート番号を送信元ポート番号として、Ｍａｐタスクノード２にＴＣＰ  ＳＹＮパケットを送信する。
【０１２６】
ＯＰ４３では、ＷＡＮ高速化装置１Ｂは、ＷＡＮ高速化装置１Ａによって転送されたorg.apache.hadoop.mapred.TaskCompletionEventメッセージを受信する。ＷＡＮ高速化装置１Ｂは、このorg.apache.hadoop.mapred.TaskCompletionEventメッセージをＲｅｄｕｃｅタスクノード４に転送するとともに、内容をスヌーピングし、ＴＣＰセッション関連付けテーブルに情報を登録する。
【０１２７】
ＯＰ４４，ＯＰ４５では、Ｍａｐタスクノード２とＷＡＮ高速化装置１Ａとの間でＴＣＰセッションの確立処理が行われる。
【０１２８】
ＯＰ４６では、ＷＡＮ高速化装置１Ａは、ＷＡＮ高速化装置１Ｂに、生成したＲｅｄｕｃｅタスクノードの代理ポート番号を通知する。ＷＡＮ高速化装置１Ｂは、通知されたＲｅｄｅｕｃｅタスクノード４の代理ポート番号をＴＣＰセッション関連付けテーブルに登録する。また、ＷＡＮ高速化装置１Ｂは、代理ポート番号を開放し、ＷＡＮ高速化装置１Ａによって転送される中間データを待ち受ける。
【０１２９】
ＯＰ４７では、ＷＡＮ高速化装置１Ａは、Ｒｅｄｕｃｅタスクノード４の代理ポート番号を用いて、Ｍａｐタスクノード２にＨＴＴＰ  ＧＥＴ要求を送信する。ＯＰ４８では、ＨＴＴＰ  ＧＥＴ要求を受信したＭａｐタスクノード２が中間データを送信する。ＯＰ４９では、ＷＡＮ高速化装置１Ａは、Ｍａｐタスクノード２によって送信された中間データのデータパケットを受信する。ＷＡＮ高速化装置１Ａは、中間データのデータパケットをＲｅｄｕｃｅタスクノード４に転送するとともに、代理応答として、Ｍａｐタスクノード２にＡＣＫを送信する。
【０１３０】
ＯＰ５０では、Ｊｏｂ  Ｔｒａｃｋｅｒ３からorg.apache.hadoop.mapred.TaskCompletionEventメッセージを受信したＲｅｄｕｃｅタスクノード４が、Ｍａｐタスクノード２とＴＣＰセッションを確立するために、ＴＣＰ  ＳＹＮパケットを送信する。このＴＣＰ  ＳＹＮパケットには、送信元ポート番号に実際にＲｅｄｕｃｅタスクノード４が使用するポート番号が格納されている。このＴＣＰ  ＳＹＮパケットを受信すると、ＷＡＮ高速化装置１Ｂは、ＷＡＮ高速化装置１Ａから通知された代理ポート番号と関連付けて、ＴＣＰ
ＳＹＮパケットの送信元ポート番号（Ｒｅｄｕｃｅタスクノード４のポート番号）をＴＣＰセッション関連付けテーブルに登録する。以降、Ｒｅｄｕｃｅタスクノード４とＷＡＮ高速化装置１Ｂとの間でＴＣＰセッション確立の処理が行われる。これ以降の、中間データの送受信は、ＷＡＮ高速化装置１Ｂにおいて、送信元ポート番号が書き換えられる点以外は、第１実施形態に準じる。
【０１３１】
＜第２実施形態の作用効果＞
第２実施形態では、Ｍａｐタスクノード２とＲｅｄｕｃｅタスクノード４との間にＴＣＰセッションが確立していない。そのため、ＷＡＮ高速化装置１Ａは、org.apache.hadoop.mapred.TaskCompletionEventメッセージを検出すると、Ｍａｐタスクノード２とのＴＣＰセッション確立の処理を実行する。このとき、Ｒｅｄｕｃｅタスクノード４のポート番号が未知であるため、ＷＡＮ高速化装置１Ａは、代理ポート番号を生成し、この代理ポート番号を用いてＴＣＰセッションの確立、中間データの取得を行う。これによって、ＴＣＰセッションか確立していない場合に、Ｒｅｄｕｃｅタスクノードにorg.apache.hadoop.mapred.TaskCompletionEventメッセージが到着してから、中間データが届くまでに要する時間を短縮することができる。
【０１３２】
第１実施形態及び第２実施形態では、ＷＡＮ高速化装置１は、透過プロキシであるとして説明を行った。ただし、これに限られず、第１実施形態及び第２実施形態で説明された代理要求処理及び代理応答処理は、ＷＡＮ高速化装置１が非透過プロキシの場合でも適用可能である。ＷＡＮ高速化装置１が非透過プロキシの場合には、内部ネットワークと外部ネットワークの通信の中継時に、パケットの宛先又は送信元の書き換え処理が加わる。また、第１実施形態及び第２実施形態では、Ｈａｄｏｏｐシステムを例に説明を行ったが、これに限られない。第１実施形態及び第２実施形態で説明された代理要求処理及び代理応答処理は、データを送受信するノードとは異なる第３者のノードからのパケット受信を契機に、データの送受信が開始されるシステムに適用可能である。例えば、第１実施形態及び第２実施形態で説明された代理要求処理及び代理応答処理が適用可能なシステムにはＢｕｌｋ  Ｓｙｎｃｈｒｏｎｏｕｓ  Ｐａｒａｌｌｅｌ，Ａｐａｃｈｅ  Ｓ４，Ｓｔｏｒｍ等がある。
【０１３３】
＜変形例＞
図１４は、第１変形例のシステムを示す図である。第１変形例では、Ｊｏｂ  Ｔｒａｃｋｅｒ３のＷＡＮ高速化装置１Ａ側に監視装置５を設置する。
【０１３４】
Ｈａｄｏｏｐでは、どのＴａｓｋ  ＴｒａｃｋｅｒにおいてＭａｐタスク又はＲｅｄｕｃｅタスクが実行されるのかは、Ｊｏｂ  Ｔｒａｃｋｅｒ３によって動的に決定される。図５に示されるシステムのように、Ｊｏｂ  Ｔｒａｃｋｅｒ３とＲｅｄｕｃｅタスクノード４とが異なるネットワークに存在する場合には、ＷＡＮ高速化装置１Ａにおいて、org.apache.hadoop.mapred.TaskCompletionEventメッセージを検出することができる。これによって、ＷＡＮ高速化装置１Ａは、内部ネットワークに存在するＭａｐタスクノード２にＨＴＴＰ  ＧＥＴ要求やＴＣＰ  ＳＹＮパケットを送信することができ、中間ノードの送受信にかかる時間を短縮することができる。
【０１３５】
一方、図１３に示されるシステムでは、Ｔａｓｋ  Ｔｒａｃｋｅｒ２がＲｅｄｅｃｅタスクノードとなり、Ｔａｓｋ  Ｔｒａｃｋｅｒ４がＭａｐタスクノードとなる。そのため、org.apache.hadoop.mapred.TaskCompletionEventメッセージの送受信は、内部ネットワーク内で完結してしまい、ＷＡＮ高速化装置１Ａで検出することができない。
【０１３６】
そこで、第３実施形態では、監視装置５がＪｏｂ  Ｔｒａｃｋｅｒ３から送信されるパケットを監視し、org.apache.hadoop.mapred.TaskCompletionEventメッセージ又は必要な情報を外部のネットワークに存在するＭａｐタスクノード４と同じネットワークに存在するＷＡＮ高速化装置１Ｂに通知する。この通知を受けると、ＷＡＮ高速化装置１Ｂは、第実施形態及び第２実施形態で説明されたように、Ｍａｐタスクノード４に対して、ＨＴＴＰ  ＧＥＴ要求又はＴＣＰ  ＳＹＮパケットを送信し、代理要求を行う。
【０１３７】
監視装置５は、例えば、サーバ等のコンピュータであって、ハードウェア構成は、図７に示されるものとほぼ同様である。また、監視装置５は、第１実施形態及び第２実施形態におけるＷＡＮ高速化装置１の、org.apache.hadoop.mapred.TaskCompletionEventメッセージの検出にかかる機能ブロックを有する。そのため、監視装置５の機能ブロックは、例えば、図８で示されるものから、代理要求又は代理応答にかかる処理を行うＴＣＰ代理応答処理部１６，ＨＴＴＰ代理処理部１１２，中間データ用セッション管理テーブル１１４，先読用バッファ１１５，ＴＣＰ／ＩＰヘッダ生成部１１３等を除いたものとなる。
【０１３８】
監視装置５は、例えば、Ｊｏｂ  Ｔｒａｃｋｅｒ３から送信されたorg.apache.hadoop.mapred.TaskCompletionEventメッセージを検出した場合に、このメッセージをカプセル化して、Ｍａｐタスクノード４側のＷＡＮ高速化装置１Ｂに通知してもよい。または、監視装置５は、org.apache.hadoop.mapred.TaskCompletionEventメッセージから必要な情報を抽出して、Ｍａｐタスクノード４側のＷＡＮ高速化装置１Ｂに通知してもよい。必要な情報とは、例えば、org.apache.hadoop.mapred.TaskCompletionEventメッセージに含まれる、Ｍａｐタスクノード４のＩＰアドレスとポート番号，ＭａｐタスクＩＤ，Ｒｅｄｕｃｅタスクノード２のＩＰアドレスである。なお、どのＴａｓｋ  Ｔｒａｃｋｅｒ（Ｍａｐタスクノード）がどのＷＡＮ高速化装置１と同じネットワークに存在するかについては、事前に監視装置５に設定されていることとする。
【０１３９】
監視装置５を設置することによって、Ｊｏｂ  ＴｒａｃｋｅｒとＲｅｄｕｃｅタスクノードとが同じネットワークに存在する場合でも、第１及び第２実施形態で説明されたＷＡＮ高速化装置１の代理要求又は代理応答の処理を適用することができる。
【０１４０】
図１５は、第２変形例のシステムを示す図である。第２変形例では、第１変形例における監視装置５の処理を、監視アプリケーション３１としてＪｏｂ  Ｔｒａｃｋｅｒ３に搭
載し、Ｊｏｂ  Ｔｒａｋｅｒ３に実行させる。Ｊｏｂ  Ｔｒａｃｋｅｒは、Ｈａｄｏｏｐシステムにおいて１台であるので、実装コストや初期投資を低く抑えることができる。
【符号の説明】
【０１４１】
１        ＷＡＮ高速化装置
１１      代理要求処理部
１２      受信処理部
１３      受信側ＩＰ処理部
１４      受信側ＴＣＰ処理部
１５      転送処理部
１６      ＴＣＰ代理応答処理部
１７      送信側ＴＣＰ処理部
１８      送信側ＩＰ処理部
１９      送信処理部
１１１    デコード処理部
１１２    ＨＴＴＰ代理処理部
１１３    ＴＣＰ／ＩＰヘッダ生成部
１１４    中間データ用セッション管理テーブル
１１５    先読用バッファ
【図１】
2014060615.tif 000003
【図２】
2014060615.tif 000004
【図３】
2014060615.tif 000005
【図４】
2014060615.tif 000006
【図５】
2014060615.tif 000007
【図６】
2014060615.tif 000008
【図７】
2014060615.tif 000009
【図８】
2014060615.tif 000010
【図９】
2014060615.tif 000011
【図１０】
2014060615.tif 000012
【図１１】
2014060615.tif 000013
【図１２】
2014060615.tif 000014
【図１３】
2014060615.tif 000015
【図１４】
2014060615.tif 000016
【図１５】
2014060615.tif 000017