JP2013196379A - 中継装置、情報処理システム、中継プログラム、中継方法 - Google Patents

中継装置、情報処理システム、中継プログラム、中継方法 Download PDF

Info

Publication number
JP2013196379A
JP2013196379A JP2012062779A JP2012062779A JP2013196379A JP 2013196379 A JP2013196379 A JP 2013196379A JP 2012062779 A JP2012062779 A JP 2012062779A JP 2012062779 A JP2012062779 A JP 2012062779A JP 2013196379 A JP2013196379 A JP 2013196379A
Authority
JP
Japan
Prior art keywords
message
relay
session
server
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.)
Granted
Application number
JP2012062779A
Other languages
English (en)
Other versions
JP5928040B2 (ja
Inventor
Koichiro Amamiya
宏一郎 雨宮
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2012062779A priority Critical patent/JP5928040B2/ja
Priority to US13/736,690 priority patent/US8984055B2/en
Publication of JP2013196379A publication Critical patent/JP2013196379A/ja
Application granted granted Critical
Publication of JP5928040B2 publication Critical patent/JP5928040B2/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
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/14Session management
    • H04L67/146Markers for unambiguous identification of a particular session, e.g. session cookie or URL-encoding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/563Data redirection of data network streams

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Information Transfer Between Computers (AREA)
  • Computer And Data Communications (AREA)

Abstract

【課題】スループットを向上させる。
【解決手段】メッセージ中継装置10は、情報処理サーバ4〜4b上で動作するプログラムによって確立された情報処理サーバ4〜4bとクライアントとの間のセッションを識別するセッション識別子と、サーバ識別子との対応関係情報を記憶する。そして、メッセージ中継装置10は、ロードバランサ3から受信したメッセージに含まれるセッション識別子を記憶しているか否かを判別する。その後、メッセージ中継装置10は、受信したメッセージに含まれるセッション識別子を記憶していないと判別した場合には、メッセージに含まれるセッション識別子が示すセッションを確立したプログラムに応じて、受信したメッセージを情報処理サーバ4〜4bに転送する際の中継方式を選択する。その後、メッセージ中継装置10は、選択した中継方式を用いて、メッセージを転送する。
【選択図】図5

Description

本発明は、中継装置、情報処理システム、中継プログラム、中継方法に関する。
従来、クライアントとの間にセッションを確立することで、クライアントに継続したサービスを提供する情報処理システムが知られている。このような情報処理システムの一例として、クライアントにサービスを提供する複数のサーバと、クライアントからのメッセージを各サーバに振分けるメッセージ中継装置とを有する情報処理システムが知られている。
まず、図33を用いて、クライアントとの間にセッションを確立することで、クライアントに継続したサービスを提供する情報処理システムについて説明する。図33は、セッションを確立する処理を説明するための図である。図33に示す例では、クライアント70は、サーバ71に対して、リクエストメッセージを送信する。
すると、サーバ71は、クライアント70との間に確立したセッションを示すセッションID#12と、クライアント70に継続したサービスを提供するためのセッションデータとを対応付けて記憶する。そして、サーバ71は、生成したセッションID#12を含む応答メッセージをクライアント70に送信する。
ここで、クライアント70は、セッションID#12を含む後続のリクエストメッセージをサーバ71に送信する。すると、サーバ71は、リクエストメッセージに含まれるセッションID#12と対応付けたセッションデータ#12を用いて、クライアント70に応答メッセージを送信することで、継続したサービスを提供する。
ここで、情報処理システムは、クライアントの数が増大すると、1台のサーバではサービスの提供が困難となる。そこで、メッセージ中継装置が複数のサーバにクライアントからのリクエストを振分けることで、各サーバの負荷を分散するメッセージ中継装置が知られている。
ここで、図34を用いて、複数のサーバにリクエストを振分けることで、各サーバの付加を分散するメッセージ中継装置について説明する。図34は、メッセージ中継装置の技術を説明するための図である。図34に示す例では、メッセージ中継装置72は、セッションIDとセッションを確立したサーバとを対応付けたメッセージ中継情報73を有する。そして、メッセージ中継装置72は、クライアントからメッセージを受信すると、メッセージ中継情報73を用いて、メッセージに含まれるセッションIDと対応付けたサーバを判別し、判別したサーバにメッセージを転送する。
例えば、図34に示す例では、メッセージ中継装置72は、セッションID#11とサーバ71のアドレスとを対応付けて記憶する。そして、メッセージ中継装置72は、クライアント70からセッションID#11を含むメッセージを受信した場合は、メッセージをサーバ71に転送することで、メッセージの振り分け先となるサーバの一意性を保障する。
ここで、サービスを提供するサーバの数が増加すると、メッセージ中継装置の処理負荷が増加し、メッセージの振り分けがボトルネックとなる場合がある。そこで、複数のメッセージ中継装置が同一のメッセージ中継情報を有し、クライアントからのメッセージを各メッセージ中継装置に分配する情報処理システムが知られている。
図35は、複数のメッセージ中継装置を有する情報処理システムを説明するための図である。図35に示す例では、情報処理システムは、メッセージ中継情報73を記憶するメッセージ中継装置72と、メッセージ中継情報77を記憶するメッセージ中継装置76とを有する。また、情報処理システムは、L(Level)3−L4ヘッダに応じて、クライアントからのメッセージを各メッセージ中継装置72、76に振分けるロードバランサ78を有する。
例えば、メッセージ中継装置72は、ロードバランサ78から振分けられたメッセージに含まれるセッションIDがメッセージ中継情報73に存在しない場合や、メッセージにセッションIDが含まれない場合は、メッセージを任意のサーバに転送する。そして、メッセージ中継装置72は、メッセージを転送したサーバから応答とセッションIDとを受信すると、メッセージを転送したサーバのアドレスと、セッションIDとを対応付けてメッセージ中継情報73に格納する。
また、メッセージ中継装置72は、メッセージ中継装置76にメッセージ中継情報73のデータを送信し、メッセージ中継情報73とメッセージ中継情報77とを同期させる。その後、メッセージ中継装置72は、ロードバランサ78を介して、サーバから受信した応答とセッションIDとをメッセージ発行元のクライアントへ転送する。この結果、各メッセージ中継装置72、76は、メッセージ中継情報73、77が同一内容となるので、同一のセッションIDを有するメッセージを同一のサーバに振分ける一意性を保障する。
次に、図36を用いて、メッセージ中継装置がクライアントにサーバからの応答を転送する処理の流れについて説明する。図36は、応答を転送する処理の一例を説明するための図である。例えば、メッセージ中継装置は、応答を受信する(ステップS1)。次に、メッセージ中継装置は、受信した応答からセッションID抽出し(ステップS2)、応答がセッションIDを有するか否かを判別する(ステップS3)。
そして、メッセージ中継装置は、応答がセッションIDを有すると判別すると(ステップS3肯定)、セッションIDをキーとして、メッセージ中継情報を検索する(ステップS4)。そして、メッセージ中継装置は、検索結果がヒットしたか否かを判別し(ステップS5)、ヒットした場合には(ステップS5肯定)、応答をクライアントに転送する(ステップS9)。
一方、メッセージ中継装置は、検索結果がヒットしなかった場合は(ステップS5否定)、メッセージ中継情報を更新する(ステップS6)。そして、メッセージ中継装置は、更新結果を他のメッセージ中継装置に反映させるため、他のメッセージ中継装置に、メッセージ中継情報を配布する(ステップS7)。
次に、メッセージ中継装置は、全てのメッセージ中継装置に配布したか否かを判別し(ステップS8)、配布した場合には(ステップS8肯定)、応答をクライアントに転送し(ステップS9)、処理を終了する。なお、メッセージ中継装置は、応答がセッションIDを有さない場合は(ステップS3否定)、メッセージ中継情報の更新を行わずに応答をクライアントに転送し(ステップS9)、処理を終了する。
特開2011−082898号公報 特開2008−259114号公報
しかしながら、各メッセージ中継装置がメッセージ中継情報を同期させる技術では、新たなセッションが確立されるたびに、各メッセージ中継装置が記憶するメッセージ中継情報を同期させてから、メッセージをクライアントに転送する。このため、メッセージ中継装置は、クライアントに提供するサービスのセッションの更新頻度が多くなると、頻繁にメッセージ中継情報を同期させるので、スループットが低下し、情報処理システムの性能を低下させるという問題がある。
なお、メッセージ中継装置のスループットを向上させるため、メッセージ中継情報を複数のメッセージ中継装置が分割して記憶する手法も考えれる。例えば、メッセージ中継装置は、それぞれ異なるセッションIDを含むメッセージ中継情報を記憶する。そして、メッセージ中継装置は、受信したメッセージのセッションIDが自身のメッセージ中継情報に含まれない場合は、他のメッセージ中継装置にメッセージを転送し、転送先のメッセージ中継装置からサーバに転送する手法が考えられる。または、メッセージ中継装置は、メッセージのセッションIDと対応付けられたサーバを他のメッセージ中継装置に問合せ、送信先のサーバを識別する手法も考えられる。
しかし、メッセージのサイズが大きい場合は、メッセージを転送する際の処理負荷が増大する。このため、メッセージ中継情報を複数のメッセージ中継装置が分割して記憶する手法では、メッセージのサイズが大きい場合は、メッセージ中継装置のスループットが低下し、情報処理システムの性能を低下させてしまう。
1つの側面では、本発明は、メッセージ中継装置のスループットを向上させることを目的とする。
1つの側面では、クライアントが発行するメッセージをサーバに転送する中継装置である。この中継装置は、サーバ上で動作するプログラムによって確立されたサーバとクライアントとの間のセッションを識別するセッション識別子と、サーバ識別子との対応関係情報を記憶する。そして、中継装置は、振分け装置から受信したメッセージに含まれるセッション識別子を記憶しているか否かを判別する。その後、中継装置は、受信したメッセージに含まれるセッション識別子を記憶していないと判別した場合には、メッセージに含まれるセッション識別子が示すセッションを確立したプログラムに応じて、受信したメッセージをサーバに転送する際の中継方式を選択する。その後、中継装置は、選択した中継方式を用いて、メッセージを転送する。
1つの側面では、メッセージ中継装置のスループットを向上させることができる。
図1は、実施例1に係る情報処理システムを説明するための図である。 図2は、各サービスがセッションを更新する頻度を説明するための図である。 図3は、メッセージの中継方法を説明するための図である。 図4は、実施例1に係るメッセージ中継装置と方式選択サーバが実行する処理を説明するための図である。 図5は、実施例1に係るメッセージ中継装置の機能構成を説明するための図である。 図6は、方式選択テーブルの一例を説明するための図である。 図7は、メッセージ中継情報の一例を説明するための図である。 図8は、メッセージ中継装置リストの一例を説明するための図である。 図9は、リソース消費量DBの一例を説明するための図である。 図10は、セッション更新頻度計算用カウンタの一例を説明するための図である。 図11は、実施例1に係るメッセージの一例を説明するための図である。 図12は、各処理に要するリソース量を算出する処理を説明するための図である。 図13は、実施例1に係る方式選択サーバの機能構成を説明するための図である。 図14は、リソース量の一例を説明するための図である。 図15は、メッセージ中継情報の配布に必要なリソース量の一例を説明するための図である。 図16は、スループットの予測値の一例を説明するための図である。 図17は、中継方式決定部が選択する中継方式の一例を説明するための図である。 図18は、メッセージの処理負荷が小さい際のスループット性能を説明するための図である。 図19は、メッセージの処理負荷が大きい際のスループット性能を説明するための図である。 図20は、リクエストの中継処理の流れを説明するためのフローチャートである。 図21は、応答の中継処理の流れを説明するためのフローチャートである。 図22は、メッセージ中継装置がリクエストを受信した際に実行する処理の流れを説明するためのフローチャートである。 図23は、メッセージ中継装置がメッセージ中継情報を受信した際に実行する処理の流れを説明するためのフローチャートである。 図24は、メッセージ中継装置がサーバアドレスの問合せを受信した際に実行する処理の流れを説明するためのフローチャートである。 図25は、メッセージ中継装置が転送メッセージを受信した際に実行する処理の流れを説明するためのフローチャートである。 図26は、メッセージ中継装置が応答を受信した際に実行する処理の流れを説明するためのフローチャートである。 図27は、セッションの更新頻度を収集する際の計算リソースを説明するための図である。 図28は、メッセージ中継処理で消費する計算リソース量を説明するための図である。 図29は、平均値を方式選択サーバへ通知する際の消費計算リソース量を説明するための図である。 図30は、1台のメッセージ中継装置をサンプリングノードとした際の処理を説明するための図である。 図31は、確立済みセッション情報の一例を説明するための図である。 図32は、中継プログラムを実行するコンピュータの一例を説明するための図である。 図33は、セッションを確立する処理を説明するための図である。 図34は、メッセージ中継装置の技術を説明するための図である。 図35は、複数のメッセージ中継装置を有する情報処理システムを説明するための図である。 図36は、応答を転送する処理の一例を説明するための図である。
以下に添付図面を参照して本願に係る中継装置、情報処理システム、中継プログラム、中継方法について説明する。
以下の実施例1では、図1を用いて、実施例1に係る情報処理システムの一例を説明する。図1は、実施例1に係る情報処理システムを説明するための図である。図1に示す例では、情報処理システム1は、複数のクライアント2〜2b、ロードバランサ3、複数の情報処理サーバ4〜4b、複数のメッセージ中継装置10〜10b、方式選択サーバ50を有する。
また、図1に示す例では、各クライアント2〜2bとロードバランサ3、ロードバランサ3と各メッセージ中継装置10〜10b、各メッセージ中継装置10〜10bと方式選択サーバ50とが接続されている。また、各メッセージ中継装置10〜10bは、各情報処理サーバ4〜4bと相互に接続されている。
なお、図1に示す例では、クライアント2〜2bを図示したが、情報処理システム1は、任意の数のクライアントを接続することができる。また、図1に示す例では、メッセージ中継装置10〜10b、情報処理サーバ4〜4bを図示したが、実施例はこれに限定されるものではなく、情報処理システム1は、任意の数のメッセージ中継装置、および任意の数の情報処理サーバ備えることとしてもよい。
以下、クライアント2、ロードバランサ3、情報処理サーバ4、メッセージ中継装置10、方式選択サーバ50が実行する処理について説明する。なお、クライアント2a、2bは、クライアント2と同様の機能を発揮するものとして、説明を省略する。また、情報処理サーバ4a、4bは、情報処理サーバ4と同様の機能を発揮するものとして、説明を省略する。また、メッセージ中継装置10a、10bは、メッセージ中継装置10と同様の機能を発揮するものとして、説明を省略する。
クライアント2は、各情報処理サーバ4〜4bが実行するウェブアプリケーション等との間でセッションを確立し、継続したサービスを受ける利用者端末である。例えば、クライアント2は、サービスの提供を要求するメッセージを発行し、ロードバランサ3に送信する。また、クライアント2は、メッセージに対する応答に含まれるセッションIDを記憶する。ここで、セッションIDとは、確立したセッションを示す識別子である。
そして、クライアント2は、継続したサービスの提供を要求する際は、送信するメッセージに記憶したセッションIDを格納する。その後、クライアント2は、セッションIDを格納したメッセージをロードバランサ3に送信する。
ロードバランサ3は、クライアント2〜2bからメッセージを受信すると、受信したメッセージのL(Layer)3およびL(Layer)4情報を用いて、メッセージをいずれかのメッセージ中継装置に振分ける。例えば、ロードバランサ3は、受信したメッセージのTCP(Transmission Control Protocol)/IPヘッダを識別し、識別したTCP/IPヘッダの送信元IPアドレス、送信元ポート番号、宛先IPアドレス、宛先ポート番号の値に応じて、メッセージ中継装置10〜10bへの振り分けを行う。また、ロードバランサ3は、メッセージ中継装置10〜10bから応答を受信した場合には、受信した応答を、リクエストを発行したクライアント2〜2bに転送する。
このように、ロードバランサ3は、セッションIDを参照せずに、クライアント2〜2bが発行したメッセージを各メッセージ中継装置10〜10bに振分ける。このため、各メッセージ中継装置10〜10bは、同一のセッションIDを含むリクエストメッセージが振分けられるとは限らない。この結果、各メッセージ中継装置10〜10bは、同一のセッションIDを含むリクエストメッセージの振分け先となる情報処理サーバの同一性を保持する機能が要求される。
情報処理サーバ4は、クライアント2〜2bに対して継続するサービスを提供するプログラムを実行する。例えば、情報処理サーバ4は、いずれかのメッセージ中継装置10〜10bからからセッションIDを含まないメッセージを受信すると、初回のサービス提供を行う。具体的には、情報処理サーバ4が実行するプログラムは、サービスの提供を継続する場合は、新たなセッションIDを生成し、生成したセッションIDと提供したサービスに係る情報とを対応付けて記憶する。
そして、情報処理サーバ4は、生成したセッションIDを応答に格納してメッセージ中継装置10〜10bに送信する。すると、セッションIDが含まれる応答は、メッセージ中継装置10〜10b、ロードバランサ3を介して、メッセージを発行したクライアントに転送される。
また、情報処理サーバ4が実行するプログラムは、所定の条件を満たした場合には、セッションを更新する。例えば、情報処理サーバ4が実行するプログラムは、クライアント2に提供するサービスについて、メッセージを受信した際に、前回メッセージを受信した時刻から所定の時間が経過している場合は、セッションを更新すると判別する。そして、情報処理サーバ4が実行するプログラムは、新たなセッションIDを生成するとともに、新たなセッションIDを応答に含めて送信する。
ここで、図2を用いて、情報処理サーバ4が実行するプログラムがセッションを更新する頻度、すなわち、各サービスのセッション更新頻度について説明する。図2は、各サービスがセッションを更新する頻度を説明するための図である。なお、図2に示す例では、情報処理サーバ4が提供するサービスの一例として、ウェブを介して提供するサービスをサイトごとに記載した。具体的には、図2に示す例では、各サイトが提供するサービスのカテゴリと、各サイトの閲覧者と、各サイトのページビューと、各サイトにおけるセッションの更新頻度とを対応付け、閲覧者が多い順に記載した。
ここで、更新頻度は、1つのウェブページを取得する際に10回のリクエストが発行され、ユーザーが1回ログインするたびに1回のセッションが確立される際に、各ユーザが1日に1回ログインするものとして算出した値である。この結果、例えば、サイト「aaa.com」におけるセッションはリクエストが「351」回発行されるごとに「1」回更新される。
また、例えば、サイト「fff.com」におけるセッションは、リクエストが「4」回発行されるごとに「1」回更新される。また、サイト「lll.com」におけるセッションは、リクエストが「472」回発行されるごとに「1」回更新される。このように、情報処理サーバ4は、クライアント2〜2bに提供するサービスごとに、異なる頻度でセッションを更新する。
図1に戻って、メッセージ中継装置10は、セッションIDと、セッションが確立したサービスを提供するサーバのアドレスとを対応受けたメッセージ中継情報を記憶する。また、メッセージ中継装置10は、ロードバランサ3からメッセージを受信すると、受信したメッセージを解析し、格納されたセッションIDを取得する。そして、メッセージ中継装置10は、取得したセッションIDがメッセージ中継情報に含まれているか否かを判別する。
そして、メッセージ中継装置10は、取得したセッションIDがメッセージ中継情報に含まれている場合は、取得したセッションIDと対応付けられたアドレスのサーバにメッセージを転送する。一方、メッセージ中継装置10は、取得したセッションIDがメッセージ中継情報に含まれていない場合は、セッションIDが示すセッションが確立されたサービスにおけるセッションの更新頻度に応じて、メッセージの中継方式を選択する。
具体的には、メッセージ中継装置10は、方式選択サーバ50がサービスにおけるセッションの更新頻度に応じて選択したメッセージの中継方式を取得する。そして、メッセージ中継装置10は、取得した中継方式を用いて、メッセージの転送を行う。
ここで、図3を用いて、メッセージ中継装置10がメッセージの転送を行う中継方式を説明する。図3は、メッセージの中継方法を説明するための図である。図3に示すように、メッセージ中継装置10は、中継方式(A)〜(D)の4つの中継方法のうち、いずれかの中継方法を用いてメッセージの中継を行う。
以下、各中継方式(A)〜(D)について説明する。例えば、中継方式(A)とは、メッセージ中継情報を更新するたびに、各メッセージ中継装置10〜10bのメッセージ中継情報を同期する中継方式を用いる。中継方式(A)では、各メッセージ中継装置10〜10bが記憶するメッセージ中継情報が同期される。このため、各メッセージ中継装置10〜10bは、ロードバランサ3がメッセージをどのメッセージ中継装置10〜10bに振分けても、そのまま情報処理サーバ4〜4bへの転送を行う。
この結果、中継方式(A)では、メッセージをサーバへ中継する際の消費リソース量を削減できる。また、中継方式(A)では、メッセージのサイズが大きくなり、メッセージ中継処理の負荷の大きい場合にも、スループットに対する影響を他の中継方式(B)〜(D)と比較して小さくする。
しかしながら、中継方式(A)では、新たなセッションが確立された場合、あるいは、セッションが更新された場合に、新たなセッションIDを含む応答を受信すると、各メッセージ中継装置10〜10bのメッセージ中継情報を同期させる。このため、中継方式(A)では、セッションが更新された際に消費するリソース量が他の中継方式(B)〜(D)と比較して大きくなる。
また、中継方式(B)とは、各メッセージ中継装置10〜10bがそれぞれ異なるメッセージ中継情報を有する中継方式である。例えば、各メッセージ中継装置10〜10bは、セッションIDがハッシュ計算等により各メッセージ中継装置10〜10bに対してあらかじめ振分けられている。そして、各メッセージ中継装置10〜10bは、振分けられたセッションIDを含むメッセージ中継情報を記憶する。
例えば、メッセージ中継装置10は、自身に振分けられていないセッションIDを含むメッセージをクライアント2から受信する。そして、メッセージ中継装置10は、ハッシュ計算等により、受信したメッセージのセッションIDが振分けられたメッセージ中継装置、例えば、メッセージ中継装置10aを識別する。
そして、メッセージ中継装置10は、識別したメッセージ中継装置10aにメッセージを転送する。すると、メッセージ中継装置10aは、自身のメッセージ中継情報を用いて、サーバにメッセージを送信するとともに、サーバから受信した応答をメッセージ中継装置10に転送する。そして、メッセージ中継装置10は、メッセージ中継装置10aから受信した応答を、クライアント2へ送信する。
この結果、中継方式(B)では、各メッセージ中継装置10〜10bが記憶するメッセージ中継情報の同期を不要とするので、セッション更新時の消費リソース量を中継方式(A)と比較して小さくする。しかし、中継方式(B)では、ハッシュ計算等を用いてセッションIDが振分けられたメッセージ中継装置を識別し、識別したメッセージ中継装置を介してメッセージと応答の送受信を行う。このため、中継方式(B)では、メッセージ中継時の消費リソース量や、メッセージ中継処理の負荷が増大した際の影響が中継方式(A)と比較して大きくなる。
また、中継方式(C)とは、中継方式(B)と同様に、各メッセージ中継装置10〜10bにセッションIDが振分けられている中継方式である。また、中継方式(C)では、メッセージ中継装置10は、受信したメッセージのセッションIDが自身のメッセージ中継情報に含まれない場合には、セッションIDが振分けられたメッセージ中継装置にメッセージの転送先となるサーバの問合せを行う中継方式である。
例えば、メッセージ中継装置10は、受信したメッセージのセッションIDが自身のメッセージ中継装置に含まれていない場合は、ハッシュ計算等を用いて、セッションIDが振分けられたメッセージ中継装置を識別する。そして、メッセージ中継装置10は、識別したメッセージ中継装置にセッションIDを通知し、識別したメッセージ中継装置からセッションIDと対応付けられたサーバのアドレスを取得する。その後、メッセージ中継装置10は、取得したアドレスのサーバに、受信したメッセージを送信する。
この結果、中継方式(C)では、セッション更新時の消費リソース量を中継方式(A)と比較して小さくする。また、中継方式(C)では、メッセージの転送を行わないので、メッセージ中継処理の負荷が増大した際の影響を中継方式(B)と比較して、小さくする。しかし、中継方式(C)では、メッセージ中継時にハッシュ計算等を行うので、メッセージを中継する際に消費するリソース量を中継方式(A)と比較して増大させる。
また、中継方式(D)は、中継方式(C)と同様に、メッセージの転送先となるサーバを他のメッセージ中継装置に問い合わせる方式である。また、中継方式(D)では、各メッセージ中継装置10〜10bは、他のメッセージ中継装置に問い合わせた結果取得するサーバのアドレスを受信したメッセージのセッションIDと対応付けて自身のメッセージ中継情報にキャッシュする。
このため、メッセージ転送装置10〜10bは、同じセッションIDを含むメッセージを再度受信した際に、他のメッセージ転送装置に問合せを行わずとも、メッセージをサーバに転送する。この結果、中継方式(D)では、中継方式(C)と同様に、セッションを更新する際に消費するリソース量とメッセージ中継処理の負荷が増大した際の影響を他の中継方式と比較して小さくすることができる。しかし、中継方式(D)では、メッセージ中継時に消費するリソース量が中継方式(A)と比較して大きくなる。
このように、各中継方式(A)〜(D)は、メッセージ中継時に消費するリソース量、セッションが更新された際に消費するリソース量、メッセージ中継処理10の負荷が増大した際の影響がそれぞれ異なる。そこで、メッセージ中継装置10は、セッションIDが示すセッションが確立されたサービスごとに、中継方式(A)〜(D)のいずれかを用いてメッセージの転送を行う。具体的には、メッセージ中継装置10は、サービスごとに方式選択サーバ50が選択する中継方式を用いて、メッセージの中継を行う。
方式選択サーバ50は、メッセージ中継装置10〜10bから、セッションの更新頻度、メッセージ中継情報を同期する際に必要なリソース量の通知を受信する。また、方式選択サーバ50は、メッセージを他の中継装置に転送する際に消費するリソース量、サーバの問合せを行う際に消費するリソース量の通知を受信する。そして、方式選択サーバ50は、受信した更新頻度やリソース量を用いて、各中継方式(A)〜(D)を用いてメッセージの転送を行う際のスループットを算出する。その後、方式選択サーバ50は、スループットがもっとも大きい中継方式を各メッセージ中継装置10〜10bに通知する。
以下、図4を用いて、メッセージ中継装置10と方式選択サーバ50とが実行する処理について説明する。図4は、実施例1に係るメッセージ中継装置と方式選択サーバが実行する処理を説明するための図である。まず、メッセージ中継装置10は、メッセージや応答の中継処理を行う。また、メッセージ中継装置10は、他のメッセージ中継装置10a、10bとメッセージ中継情報の同期や、転送先サーバの問合せを行う。
また、メッセージ中継装置10は、各中継処理において消費したリソース量を計測し、計測結果を方式選択サーバ50に通知する計測結果通知処理を実行する。すると、方式選択サーバ50は、メッセージ中継装置10から通知された計測結果を計測情報DB(Data Base)に格納する。そして、方式選択サーバ50は、計測情報DBに格納した計測結果を用いて、スループットの予測値を計算し、計算したスループットの予測値が最も大きい中継方式を選択する中継方式選択処理を実行する。
その後、方式選択サーバ50は、選択した中継方式をメッセージ中継装置10に通知する。すると、メッセージ中継装置10は、通知された中継方式を方式選択設定DBに格納する。そして、メッセージ中継装置10は、方式選択設定DBに格納された中継方式を用いて、メッセージの中継を行う。
次に、図5を用いて、メッセージ中継装置10の機能構成について説明する。図5は、実施例1に係るメッセージ中継装置の機能構成を説明するための図である。図5に示す例では、メッセージ中継装置10は、中継処理部11、中継先情報管理部12、計測結果通知部13、リソース消費量DB記憶部14、セッション更新頻度計算用カウンタ部15を有する。また、中継処理部11は、応答受信部16、応答受信部17、中継方式選択部18、新規セッション識別部19、新規セッションカウンタ更新部20、メッセージ処理数カウンタ更新部21を有する。
また、中継処理部11は、応答送信部22、他装置転送部23、リクエスト受信部24、方式選択テーブル記憶部25、中継方式選択部26、リクエスト受信部27、中継先決定部28、メッセージ中継情報記憶部29、リクエスト転送部30を有する。また、中継処理部11は、転送先問合せ部31、他装置転送部32、中継先問合せ部33、キャッシュ34、メッセージ中継装置リスト記憶部35を有する。
また、中継先情報管理部12は、中継先情報回答部36、中継先情報取得部37、中継先情報保持装置検索部38、テーブル配布部39、テーブル更新部40を有する。また、計測結果通知部13は、リソース使用量通知部41、セッション更新頻度通知部42を有する。まず、以下の説明では、方式選択テーブル記憶部25が記憶する方式選択テーブル、メッセージ中継情報記憶部29が記憶するリクエスト中継情報、メッセージ中継装置リスト記憶部35が記憶するメッセージ中継装置リストの一例について説明する。
図6は、方式選択テーブルの一例を説明するための図である。図6に示すように、方式選択テーブル記憶部25は、各サーバ4〜4bが提供するウェブサービスのURL(Uniform Resource Locator)と、中継方式とを対応付けた方式選択テーブルを記憶する。例えば、図6に示す例では、方式選択テーブル記憶部25は、URL「AAA.com」と「方式(A)」とを対応付けて記憶する。なお、方式選択テーブル記憶部25は、URLではなく、サービスを提供するウェブアプリケーションの名称を格納することとしてもよい。
図7は、メッセージ中継情報の一例を説明するための図である。図7に示すように、メッセージ中継情報記憶部29は、セッションIDとメッセージ転送先アドレスとを対応付けたメッセージ中継情報を記憶する。ここで、メッセージ転送先アドレスとは、対応付けられたセッションIDが示すセッションが確立されたサービスを提供するサーバのアドレスである。例えば、図7に示す例では、メッセージ中継情報記憶部29は、セッションID「55D95DFF…」と情報処理サーバ4のIP(Internet Protocol)アドレスであるメッセージ転送先アドレス「192.168.1.4」とを対応付けて記憶する。
図8は、メッセージ中継装置リストの一例を説明するための図である。図8に示すように、メッセージ中継装置リスト記憶部35は、メッセージ中継装置10〜10bの装置番号と、メッセージ中継装置10〜10bのアドレスとを対応付けて記憶する。例えば、図8に示す例では、メッセージ中継装置リスト記憶部35は、メッセージ中継装置10aの番号である「1」と、メッセージ中継装置10aのIPアドレスである「192.168.0.2」とを対応付けて記憶する。
次に、図9、図10を用いて、リソース消費量DB記憶部14が記憶するリソース消費量DBと、セッション更新頻度計算用カウンタ部15が記憶する情報について説明する。まず、図9を用いて、リソース消費量DB記憶部14が記憶するリソース消費量DBについて説明する。
図9は、リソース消費量DBの一例を説明するための図である。図9に示す例では、リソース消費量DB記憶部14は、ウェブサービスのURL、メッセージ中継リソース量、メッセージ転送リソース量、メッセージ中継情報問合せリソース量、メッセージ中継情報配布リソース量を対応付けたリソース量DBを記憶する。
ここで、メッセージ中継リソース量とは、メッセージをサーバ4〜4bに中継するメッセージ中継処理に消費するリソース量である。また、メッセージ転送リソース量とは、メッセージ中継装置10〜10b間でメッセージを転送する際に消費するリソース量である。また、メッセージ中継情報問合せリソース量とは、メッセージ中継装置10が他のメッセージ中継装置10a、10bにメッセージの転送先となるサーバを問い合わせる際に消費するリソース量である。
また、メッセージ中継情報配布リソース量とは、メッセージ中継情報を各メッセージ中継装置10〜10b間で同期する際に消費するリソース量である。なお、各リソース量は、例えば、各処理の実行時におけるCPU時間で表される。例えば、図9に示す例では、リソース消費量DB記憶部14は、URL「AAA.com」とメッセージ中継リソース量「0:00:01」、メッセージ中継情報配布リソース量「0:00:08」を対応付けたエントリを記憶する。
次に、図10を用いて、セッション更新頻度計算用カウンタ部15が記憶する情報について説明する。図10は、セッション更新頻度計算用カウンタの一例を説明するための図である。図10に示すように、セッション更新頻度計算用カウンタ部15は、サービスを提供するURLとメッセージ処理数とセッション確立数とを対応付けた情報を記憶する。
ここで、メッセージ処理数とは、対応付けたURLに対するメッセージを処理した回数であり、対応付けたURLに対するメッセージの応答を受信する度に、インクリメントする。また、セッション確立数とは、対応付けたURLで提供されるサービスにおいてセッションが確立した回数である。例えば、図10に示す例では、セッション更新頻度計算用カウンタ部15は、URL「AAA.com」で提供されるサービスについて、処理したメッセージの数が「257」であり、セッションを確立した回数が「1」回である旨を示す情報を記憶する。
図5に戻って、応答受信部16は、メッセージ中継装置10a、10bから転送された応答を受信する。すなわち、応答受信部16は、中継方式(B)を用いて、他のメッセージ中継装置10a、10bに転送したメッセージの応答をを受信する。そして、応答受信部16は、応答を応答送信部22に転送する。また、応答受信部17は、情報処理サーバ4〜4bからメッセージの応答を受信する。すなわち、応答受信部17は、メッセージ中継装置10が直接情報処理サーバ4〜4bに転送したメッセージの応答を受信する。そして、応答受信部17は、受信した応答を中継方式選択部18に転送する。
中継方式選択部18は、応答受信部17から応答を受信すると、受信した応答に含まれるセッションIDを抽出し、抽出したセッションIDが示すセッションが確立されたサービスを特定する。そして、中継方式選択部18は、方式選択テーブル記憶部25が記憶する方式選択テーブルから、特定したサービスと対応付けられた中継方式を特定する。その後、中継方式選択部18は、受信した応答と特定した中継方式を新規セッション識別部19に通知する。
新規セッション識別部19は、中継方式選択部18から応答と中継方式とを受信する。そして、新規セッション識別部19は、受信した応答からセッションIDを抽出し、抽出したセッションIDで特定されるセッションが新規セッションであるか否かを判別する。具体的には、新規セッション識別部19は、応答からセッションIDを抽出するとともに、応答の発行元である情報処理サーバを識別する。そして、新規セッション識別部19は、抽出したセッションIDと識別した情報処理サーバのアドレスとを対応付けたリクエスト中継情報をメッセージ中継情報記憶部29が記憶しているか否かを判別する。
そして、新規セッション識別部19は、抽出したセッションIDと識別した情報処理サーバのアドレスとを対応付けたリクエスト中継情報をメッセージ中継情報記憶部29が記憶している場合は、抽出したセッションIDが既存のセッションIDであると判別する。そして、新規セッション識別部19は、応答をメッセージ処理数カウンタ更新部21に送信する。
また、新規セッション識別部19は、抽出したセッションIDと識別した情報処理サーバのアドレスとを対応付けたリクエスト中継情報をメッセージ中継情報記憶部29が記憶していない場合は、抽出したセッションIDが新規なセッションIDであると判別する。そして、新規セッション識別部19は、応答から抽出したセッションIDと識別した情報処理サーバのアドレスとを対応付けたエントリをリクエスト中継情報に追加する。
また、新規セッション判定部19は、中継方式選択部18から通知された中継方式が中継方式(A)である場合には、応答に含まれるセッションIDと、応答の発行元となるサーバのアドレスとをテーブル配布部39に通知する。そして、新規セッション識別部19は、応答を新規セッションカウンタ更新部20に送信する。
新規セッションカウンタ更新部20は、新規セッション識別部19から応答を受信すると、応答に含まれるセッションIDを用いて、応答を発行したサービスを識別する。そして、新規セッションカウンタ更新部20は、セッション更新頻度計算用カウンタ部15が記憶するセッション確立数のうち、識別したサービスと対応付けられたセッション確立数の値を1インクリメントする。そして、新規セッションカウンタ更新部20は、応答をメッセージ処理数カウンタ更新部21に送信する。
メッセージ処理数カウンタ更新部21は、新規セッション識別部19、または、新規セッションカウンタ更新部20から応答を受信すると、応答に含まれるセッションIDを用いて、応答を発行したサービスを識別する。そして、メッセージ処理数カウンタ更新部21は、セッション更新頻度計算用カウンタ部15が記憶するメッセージ処理数のうち、識別したサービスと対応付けられたメッセージ処理数の値を1インクリメントする。
その後、メッセージ処理数カウンタ更新部21は、受信した応答がメッセージ中継装置10が情報処理サーバ3〜3bに対して中継したメッセージに対する応答である場合には、受信した応答を応答送信部22に出力する。一方、メッセージ処理数カウンタ更新部21は、受信した応答が、他のメッセージ中継装置10a、10bから転送されたメッセージに対する応答である場合には、応答を他装置転送部23に送信する。
応答送信部22は、応答受信部16、またはメッセージ処理数カウンタ更新部21から応答を受信すると、受信した応答をロードバランサ3へ送信する。また、他装置転送部23は、メッセージ処理数カウンタ更新部21から応答を受信すると、受信した応答に対するメッセージの転送元であるメッセージ中継装置10a、10bに応答を転送する。
リクエスト受信部24は、ロードバランサ3がメッセージ中継装置10に割り当てたメッセージを受信する。そして、リクエスト受信部24は、受信したリクエストを中継方式選択部26に送信する。
ここで、図11は、実施例1に係るメッセージの一例を説明するための図である。図11に示すように、リクエスト受信部24は、レイヤ3プロトコルヘッダ、レイヤ4プロトコルヘッダ、レイヤ7プロトコルヘッダ、メッセージコンテンツを有するメッセージを受信する。
例えば、レイヤ3プロトコルヘッダは、IPヘッダであり、プロトコル番号やあて先のIPアドレス等が格納される。また、例えば、レイヤ4プロトコルヘッダは、TCPヘッダであり、ポート番号等が格納される。また、例えば、レイヤ7プロトコルヘッダは、HTTP(Hyper Text Transfer Protocol)ヘッダであり、Cookie等の情報が格納される。また、メッセージコンテンツは、例えば、SOAP(Simple Object Access Protocol)ヘッダおよびボディ等である。
ここで、図11に示す例では、レイヤ7プロトコルヘッダのCookieに、セッションIDであるJSESSIONIDが格納される。メッセージ中継装置10は、レイヤ7に格納されたJSESSIONIDを抽出し、抽出したJSESSIONIDを用いて、メッセージの転送先となる情報処理サーバを特定する。また、メッセージ中継装置10は、レイヤ3プロトコルヘッダに格納されるIPアドレスを用いて、メッセージの発行元となるクライアントに提供されるサービスを特定する。
図5に戻って、中継方式選択部26は、リクエスト受信部24からリクエストを受信すると、リクエストに含まれる宛先のURL、またはサービスを提供するウェブアプリケーション名を抽出する。そして、中継方式選択部26は、抽出したURLと対応付けられた中継方式を方式選択テーブルから識別する。その後、中継方式選択部26は、リクエストを中継先決定部28に出力するとともに、識別した中継方式を中継先決定部28に通知する。
一方、中継方式選択部26は、抽出したURLまたはウェブアプリケーション名と対応付けられた中継方式が方式選択テーブル記憶部25が記憶する方式選択テーブルに存在しない場合は、中継方式が未定である旨を中継先決定部28に通知する。また、中継方式選択部26は、リクエストを中継先決定部28に出力する。
リクエスト受信部27は、他のメッセージ中継装置10a、10bがメッセージ中継装置10に転送したリクエストを受信する。すなわち、リクエスト受信部27は、中継方式(B)を用いて中継されるリクエストを受信する。そして、リクエスト受信部27は、受信したリクエストを中継先決定部28に出力する。
中継先決定部28は、中継方式選択部26からリクエストとを受信するとともに、中継方式の通知を受信した場合は、以下の処理を実行する。まず、中継先決定部28は、リクエストに含まれるセッションIDと対応付けられたサーバのアドレスをメッセージ中継情報記憶部29から検索する。そして、中継先決定部28は、リクエストに含まれるセッションIDと対応付けられたサーバのアドレスがヒットした場合には、ヒットしたアドレスとリクエストとをリクエスト転送部30に出力する。
一方、中継先決定部28は、リクエストに含まれるセッションIDと対応付けられたサーバのアドレスがヒットしなかった場合は、通知された中継方式に応じて、以下の処理を実行する。まず、中継先決定部28は、通知された中継方式が中継方式(B)である場合には、受信したメッセージを転送先問合せ部31に出力する。また、中継先決定部28は、通知された中継方式が中継方式(C)、または中継方式(D)である場合は、受信したメッセージを中継先問合せ部33に出力するとともに、中継方式を通知する。
ここで、中継先決定部28は、通知された中継方式が中継方式(A)である場合には、リクエストに含まれるセッションIDと対応付けられたサーバのアドレスが必ずヒットする。このため、中継先決定部28は、検索したサーバのアドレスと受信したメッセージをリクエスト転送部30に出力する。また、中継先決定部28は、中継方式選択部26からリクエストを受信するとともに、中継方式が未定である旨の通知を受信した場合には、リクエスト転送部30にリクエストを出力するとともに、中継方式が未定である旨をリクエスト転送部30に通知する。
リクエスト転送部30は、中継先決定部28からサーバのアドレスとメッセージとを受信すると、受信したアドレスの情報処理サーバ4〜4bに対してメッセージを送信する。また、リクエスト転送部30は、中継先問合せ部33からサーバのアドレスとメッセージとを受信すると、受信したアドレスの情報処理サーバ4〜4bに対してメッセージを送信する。
転送先問合せ部31は、中継先決定部28からメッセージを受信すると、メッセージの転送先となるメッセージ中継装置を問い合わせる。すなわち、転送先問合せ部31は、中継方式(B)で転送されるメッセージの転送先を問い合わせる。具体的には、転送先問合せ部31は、受信したメッセージからセッションIDを抽出し、抽出したセッションIDを中継先情報保持装置検索部38に出力する。
ここで、中継先情報保持装置検索部38は、セッションIDを受信すると、セッションIDと対応付けられたサーバアドレスをどのメッセージ中継装置10a、10bが記憶しているかを判別し、判別したメッセージ中継装置を転送先問合せ部31に通知する。例えば、N+1台のメッセージ中継装置10〜10bには、0〜Nまでの数値が付与されている。
そして、中継先情報保持装置検索部38は、転送先問合せ部31からセッションIDを受信すると、受信したセッションIDをハッシュ関数にかけることにより数値化し、数値化した値をN+1で除算した余りの値を算出する。その後、中継先情報保持装置検索部38は、算出した余りの値と対応付けられたメッセージ中継装置のアドレスをメッセージ中継装置リスト記憶部35から取得し、取得したアドレスを転送先問合せ部31に通知する。
すると、転送先問合せ部31は、中継先情報保持装置検索部38から通知されたアドレスと中継先決定部28から受信したメッセージとを他装置転送部32に出力する。すると、他装置転送部32は、受信したアドレスのメッセージ中継装置10a、10bにメッセージを転送する。
中継先問合せ部33は、中継先決定部28からメッセージを受信すると、受信したメッセージからセッションIDを抽出し、抽出したセッションIDを中継先情報取得部37に通知する。このような場合には、中継先情報取得部37は、セッションIDと対応付けられたサーバアドレスを他のメッセージ中継装置から取得し、取得したサーバアドレスを中継先問合せ部33に通知する。
すると、中継先問合せ部33は、取得したサーバアドレスとメッセージとをリクエスト転送部30に送信する。また、中継先問合せ部33は、通知された中継方式が中継方式(D)である場合には、取得したサーバアドレスとメッセージから抽出したセッションIDとを対応付けてキャッシュ34に格納する。その後、キャッシュ34に記憶されたサーバアドレスとセッションIDは、メッセージ中継情報記憶部29が記憶するリクエスト中継情報に追加される。
中継先情報回答部36は、他のメッセージ中継装置10a、10bから、サーバアドレスの検索要求を受信する。ここで、サーバアドレスの検索要求には、セッションIDが含まれている。中継先情報回答部36は、サーバアドレスの検索要求を受信した場合には、受信した検索要求に含まれるセッションIDを抽出し、抽出したセッショIDと対応付けられたサーバアドレスをリクエスト中継情報から検索する。そして、中継先情報回答部36は、検索したサーバアドレスを検索要求の送信元となるメッセージ中継装置10a、10bに通知する。
中継先情報取得部37は、中継先問合せ部33からセッションIDを受信すると、受信したセッションIDを中継先情報保持装置検索部38に出力する。このような場合には、中継先情報保持装置検索部38は、転送先問合せ部31からセッションIDを受信した際と同様の処理を実行し、セッションIDと対応付けられたサーバアドレスを記憶するメッセージ中継装置のアドレスを中継先情報取得部37に出力する。
すると、中継先情報取得部37は、受信したアドレスのメッセージ中継装置に対してセッションIDを含むサーバアドレスの検索要求を送信する。そして、中継先情報取得部37は、検索要求を送信したメッセージ中継装置からサーバアドレスを受信した場合には、受信したサーバアドレスを中継先問合せ部33に通知する。
中継先情報保持装置検索部38は、転送先問合せ部31、中継先情報取得部37からセッションIDを受信すると、受信したセッションIDと対応付けられたサーバアドレスを記憶するメッセージ中継装置のアドレスをメッセージ中継装置リストから検索する。そして、中継先情報保持装置検索部38は、検索結果となるメッセージ中継装置のアドレスを転送先問合せ部31および中継先情報取得部37に出力する。
また、中継先情報保持装置検索部38は、テーブル配布部39からリクエスト中継情報の配布先の問合せを受信した場合には、各メッセージ中継装置10a、10bのアドレスをメッセージ中継処理リストから取得する。そして、中継先情報保持装置検索部38は、取得したアドレスをテーブル配布部39に通知する。
テーブル配布部39は、新規セッション識別部19から応答に含まれるセッションIDと、応答の発行元となるサーバのアドレスとを受信した場合には、中継先情報保持装置検索部38にメッセージ中継先情報の配布先の問合せを出力する。そして、テーブル配布部39は、各メッセージ中継装置10a、10bのアドレスを取得すると、新規セッション識別部19から受信したセッションIDとサーバのアドレスとを対応付けたエントリを、各メッセージ中継装置10a、10bに配布する。
テーブル更新部40は、他のメッセージ中継装置10a、10bからセッションIDとサーバのアドレスとを対応付けたエントリを受信した場合には、受信したエントリをメッセージ中継情報記憶部29が記憶するリクエスト中継情報に追加する。すなわち、テーブル配布部39、テーブル更新部40は、中継方式(A)において各メッセージ中継装置10〜10bが記憶するメッセージ中継情報を同期させる。
なお、テーブル更新部40は、中継方式(B)〜(D)において、メッセージ中継装置10が保持担当であるセッションIDが付与されるような初回のメッセージを、メッセージ中継装置10以外のメッセージ中継装置10a、10bが受信した場合は、メッセージ中継情報の受信等を行う。また、テーブル配布部39は、中継方法(B)〜(C)において、メッセージ中継装置10以外のメッセージ中継装置10a、10bが保持担当であるセッションIDが付与されるような初回のメッセージをメッセージ中継装置10が受信した場合には、メッセージ中継情報の転送等を行う。
なお、中継処理部11、中継先情報管理部12は、メッセージの中継や転送先の問合せを行う際に消費したリソース量を特定し、測定したリソース量をリソース量DB記憶部14に格納する。具体的には、中継処理部11、中継先情報管理部12は、処理対象のメッセージに関わるサービスを提供するURLごとに、メッセージ中継処理を行う際のCPU時間、メッセージ転送処理を行う際のCPU時間を測定する。
また、中継処理部11、中継先情報管理部12は、メッセージ中継先の情報を他のメッセージ中継装置に問い合わせる際のCPU時間、メッセージ中継情報を配布する際のCPU時間を測定する。そして、中継処理部11、中継先情報管理部12は、測定したCPU時間をサービスを提供するURLごとにリソース消費量DB記憶部14に格納する。
以下、中継処理部11、中継先情報管理部12がリソースの消費量を算出する一例を説明する。例えば、中継処理部11、中継先情報管理部12は、図5中m1〜m9、o1〜o6において処理を実行したCPU時間を計測する。そして、中継処理部11、中継先情報管理部12は、計測したCPU時間を用いて、各処理前のCPU時間と処理後のCPU時間との差分から、消費したリソース量を算出する。
ここで、図12は、各処理に要するリソース量を算出する処理を説明するための図である。例えば、中継処理部11、中継先情報管理部12は、メッセージ中継処理の際に消費したリソース量「rfwd」を「rfwd=(m3−m1)+{(m4−m2)−(o6−o5)}」で算出する。また、中継処理部11、中継先情報管理部12は、メッセージ転送処理の際に消費したリソース量「rfwd2」を「rfwd2=(m7−m6)+(m3−m5)+(m4−m9)」で算出する。
また、中継処理部11、中継先情報管理部12は、メッセージの中継先を問合せる際に消費したリソース量「rquery」を「rquery=o2−o1」で算出する。また、中継処理部11、中継先情報管理部12は、メッセージ中継情報を配布する際に消費したリソース量「rctrl」を以下のように算出する。例えば、中継処理部11、中継先情報管理部12は、中継方式(A)によるメッセージ中継情報を配布する際は、「rctrl=(o6−o5)/N」で算出し、中継方式(B)〜(D)の際は、「rctrl=(o6−o5)」とする。なお、メッセージ中継装置10は、OS(Operating System)等の各プロセスやスレッドのリソース使用量を測定する機能を用いて、リソース使用量を取得することとしてもよい。
図5に戻って、リソース使用量通知部41は、リソース消費量DB記憶部14が記憶するリソース消費量を方式選択サーバ50に通知するとともに、リソース消費量DB記憶部14が記憶するリソース消費量をリセットする。また、セッション更新頻度通知部42は、セッション更新頻度計算用カウンタ部15が記憶する各情報を方式選択サーバ50に送信するとともに、セッション更新頻度計算用カウンタ部15が記憶する各情報をリセットする。
次に、図13を用いて、方式選択サーバ50が実行する処理について説明する。図13は、実施例1に係る方式選択サーバの機能構成を説明するための図である。図13に示す例では、方式選択サーバ50は、計測値集計部51、計測情報DB記憶部52、スループット予測値計算部53、中継方式決定部54、中継方式制御部55を有する。ここで、計測情報DB記憶部52は、サービス(URL)ごとにセッションを更新する頻度とリソース量とを対応付けて記憶する記憶装置である。
計測値集計部51は、メッセージ中継装置10が有するリソース使用量通知部41が送信したリソース消費量と、セッション更新頻度通知部42が送信した各情報を受信する。また、計測値集計部51は、他のメッセージ中継装置10a、10bからも、リソース消費量と各情報とを受信する。
そして、計測値集計部51は、各メッセージ中継装置10〜10bから通知されたリソース消費量と各情報とをサービス(URL)ごとに集計し、集計したリソース消費量と各情報とを用いて、以下の処理を実行する。まず、計測値集計部51は、通知されたメッセージ処理数でセッション確立数を除算したセッション更新頻度を算出する。そして、計測値集計部51は、算出したセッション更新頻度と、リソース使用量通知部41から通知された各リソース量とを、サービス(URL)ごとに対応付けて計測情報DB記憶部52に格納する。
スループット予測値計算部53は、計測情報DB記憶部52が記憶する情報を用いて、各中継方法(A)〜(D)を用いてメッセージの転送を行う際のスループットの予測値を、サービス(URL)ごとにそれぞれ算出する。そして、スループット予測値計算部53は、算出したスループットの予測値を中継方式決定部54に通知する。
ここで、スループット予測値計算部53がスループットの予測値を算出する処理について説明する。例えば、スループット予測値計算部53は、1つのメッセージの中継に必要なリソース量と、メッセージの中継先を決定するために必要なリソース量と、メッセージ中継情報の配布に必要なリソース量との和を算出する。そして、スループット予測値計算部53は、算出した各リソース量の和で、メッセージ中継装置10〜10bが有する全てのリソース量を除算した値をスループットの予測値とする。
ここで、メッセージの中継先を決定するために必要なリソース量は、メッセージのサイズや中継処理の内容によって変化する。例えば、メッセージの中継先がメッセージに含まれるセッションIDを記憶している際に、メッセージの中継に必要なリソース量に追加されるリソース量をXとすると、Xの値は、中継方式(A)〜(D)に応じて、図14に示す値となる。
図14は、リソース量の一例を説明するための図である。図14に示すように、中継方式(A)では、メッセージを他のメッセージ中継装置10a、10bに転送しないため、Xの値が「0」となる。一方、中継方式(B)では、Xの値は、メッセージ中継装置間でメッセージを転送する際に必要なリソース量に、ミスヒット率を積算した値となる。ここで、ミスヒット率とは、メッセージ転送先のメッセージ中継装置が、転送するメッセージに含まれるセッションIDと対応付けたサーバアドレスを記憶していない確率である。
また、中継方式(C)および中継方式(D)では、Xの値は、メッセージ中継装置間でメッセージ転送先となる情報処理サーバのサーバアドレスを問い合わせるために必要なリソース量と、ミスヒット率とを積算した値となる。ここでミスヒット率とは、問合せ先のメッセージ中継装置に、転送するメッセージに含まれるセッションIDと対応付けたサーバアドレスが記憶されていない確率である。
一方、メッセージ中継情報の配布に必要なリソース量は、メッセージに係るサービスに係らず固定値となる。このため、メッセージ中継情報の配布に必要なリソース量をYとすると、Yの値は、メッセージ中継情報の配布に必要なリソース量にセッション更新頻度を積算した値となる。
図15は、メッセージ中継情報の配布に必要なリソース量の一例を説明するための図である。図15に示すように、中継方式(A)では、Yの値は、メッセージ中継情報を1回配布するのに必要なリソース量と、メッセージ中継装置の数と、セッション更新頻度とを積算した値となる。また、中継方式(B)〜(D)では、Yの値は、メッセージ中継先情報を1回配布するのに必要なリソース量と、メッセージ中継先情報を配布する装置の数と、セッション更新頻度とを積算した値となる。ここで、中継方式(B)〜(D)においてメッセージ中継先情報を配布する処理とは、他のメッセージ中継装置に対して、メッセージを転送するサーバアドレスを通知する処理である。
次に、スループット予測値計算部53がスループットの予測値を算出する処理の具体例について説明する。まず、スループット予測値計算部53は、1つのサービス(URL)について、各リソース量とセッション更新頻度とを計測情報DB記憶部52から読み出す。そして、スループット予測値計算部53は、以下の式(1)を用いて、中継方式(A)でメッセージを転送する際のスループットの予測値を算出する。
ここで、式(1)中のTとは、中継方式(A)を用いてメッセージを転送する際のスループットの予測値である。また、Rnodeとは、単位時間あたりのノードが有するリソース量であり、例えば、CPUのクロック数(GHz:キガヘルツ)となる。なお、以下の具体例では、Rnodeの値を3(GHz)とした。また、式(1)中のNとは、メッセージ中継装置10〜10bの数である。また、mは、1セッションで送受信するメッセージの数であり、セッション更新頻度の逆数である。
Figure 2013196379
また、スループット予測値計算部53は、以下の式(2)を用いて、中継方式(B)でメッセージを転送する際のスループットの予測値を算出する。ここで、式(2)中Tとは、中継方式(B)を用いてメッセージを転送する際のスループットの予測値である。
Figure 2013196379
また、スループット予測値計算部53は、以下の式(3)を用いて、中継方式(C)でメッセージを転送する際のスループットの予測値を算出する。ここで、式(3)中Tとは、中継方式(C)を用いてメッセージを転送する際のスループットの予測値である。
Figure 2013196379
また、スループット予測値計算部53は、以下の式(4)を用いて、中継方式(D)でメッセージを転送する際のスループットの予測値を算出する。ここで、式(4)中Tとは、中継方式(D)を用いてメッセージを転送する際のスループットの予測値である。また、式(4)中のp(k)は、式(5)に示すように、kに応じてn/N、(n+k)/N、1のいずれかの値を取る変数である。
Figure 2013196379
Figure 2013196379
そして、スループット予測値計算部53は、式(1)〜(5)を用いて算出した各中継方式(A)〜(D)のスループットを中継方式決定部54に出力する。
中継方式決定部54は、スループット予測値計算部53から各中継方式(A)〜(D)のスループットの予測値を受信すると、サービスごとにスループットの予測値が最も大きい中継方式を選択する。そして、中継方式決定部54は、選択した中継方式を中継方式制御部55に通知する。
ここで、図16、図17を用いて中継方式決定部54が中継方式を選択する処理について説明する。図16は、スループットの予測値の一例を説明するための図である。また、図17は、中継方式決定部が選択する中継方式の一例を説明するための図である。なお、図16に示す例では、スループット予測値計算部53は、情報処理サーバ4〜4bが提供するウェブアプリケーションごとに算出した各中継方式(A)〜(D)のスループットの予測値について記載した。
例えば、中継方式決定部54は、図16に示すように、各サービスごとに各中継方式(A)〜(D)におけるスループットの予測値を受信する。すると、中継方式決定部54は、ウェブアプリケーション「host1/path11」について、中継方式(D)が最もスループットの予測値が大きいと判別する。
また、中継方式決定部54は、サービス「host2/path21」について中継方式(B)が最もスループットの予測値が大きいと判別する。また、中継方式決定部54は、サービス「host2/path22」について中継方式(A)が最もスループットの予測値が大きいと判別する。また、中継方式決定部54は、サービス「host3」について、中継方式(B)が最もスループットの予測値が大きいと判別する。
この結果、中継方式決定部54は、図17に示すように、各ウェブアプリケーションについて最もスループットの予測値が高い中継方式を示すテーブルを生成し、生成したテーブルを中継方式制御部55に送信する。
図13に戻って、中継方式制御部55は、中継方式決定部54が生成した中継方式を示すテーブルを受信すると、受信したテーブルの内容を方式選択テーブル記憶部25に反映させる。すなわち、中継方式制御部55は、方式選択テーブル記憶部25にサービスと対応付けて記憶された中継方式を、中継方式決定部54が生成したテーブルの内容へと更新する。この結果、メッセージ中継装置10は、サービスごとに、予測されるスループットが最も大きい転送方式を用いてメッセージを転送することができる。
このように、メッセージ中継装置10は、メッセージに含まれるセッションIDが示すセッションが確立されたサービスごとに、スループットが最大となる中継方式でメッセージの中継を行う。このため、メッセージ中継装置10は、情報処理システム全体の処理能力を向上させることができる。
また、方式選択サーバ50は、中継方式を選択する場合には、セッション更新頻度とメッセージの転送処理に必要なリソース量と、メッセージの中継先を問い合わせるために必要なリソース量とを用いて、スループットの予測値を算出する。また、方式選択サーバ50は、メッセージ中継情報を配布する際に必要なリソース量を用いて、各中継方式のスループットの予測値を算出する。
このため、方式選択サーバ50は、情報処理サーバ4〜4bが提供するサービスごとにメッセージの処理に必要なリソース量が異なる場合にも、スループットが最大となる中継方式を選択することができる。
以下、図18、図19を用いて、メッセージの処理負荷に応じたスループット性能の違いについて説明する。図18は、メッセージの処理負荷が小さい際のスループット性能を説明するための図である。また、図19は、メッセージの処理負荷が大きい際のスループット性能を説明するための図である。
なお、図18、図19に示す例では、横軸をセッション更新頻度とし、縦軸をスループットとして、中継方式(A)〜(D)について算出されたスループットの値をプロットした。また、図18、図19に示す例では、中継方式(A)のスループットを三角形で、中継方式(B)のスループットを菱型で、中継方式(C)のスループットを四角形で、中継方式(D)のスループットを円形でプロットした。
例えば、図18に示すように、メッセージの負荷が小さい場合には、セッションの更新頻度が0.05をこえたあたりで中継方式(B)のスループットと他の中継方式のスループットとに約2倍の差が生じる。また、図18に示すように、メッセージの負荷が小さい場合には、セッション更新頻度が0.001の時点では、中継方式(D)のスループットが大きいが、セッション更新頻度が0.005をこえたあたりから中継方式(B)のスループットが大きくなる。
一方、図19に示すように、メッセージの負荷が大きい場合には、セッション更新頻度が0.001の時点では、中継方式(A)、(D)のスループットが大きいが、セッション更新頻度が0.010をこえた辺りから中継方式(B)のスループットが大きくなる。このように、中継方式(A)〜(D)のスループットは、セッション更新頻度とメッセージの処理負荷に応じてそれぞれ変化する。このため、方式選択サーバ50は、実測したセッション更新頻度とメッセージの処理負荷等からスループットを算出し、スループットが最大となる中継方式を選択することで、情報処理システム1の処理能力を向上させることができる。
例えば、中継処理部11、中継先情報管理部12、計測結果通知部13とは、電子回路である。また、中継処理部11は、応答受信部16、応答受信部17、中継方式選択部18、新規セッション識別部19、新規セッションカウンタ更新部20、メッセージ処理数カウンタ更新部21とは、電子回路である。
また、応答送信部22、他装置転送部23、リクエスト受信部24、中継方式選択部26、リクエスト受信部27、中継先決定部28、リクエスト転送部30とは、電子回路である。また、転送先問合せ部31、他装置転送部32、中継先問合せ部33とは、電子回路である。
また、中継先情報回答部36、中継先情報取得部37、中継先情報保持装置検索部38、テーブル配布部39、テーブル更新部40とは、電子回路である。また、リソース使用量通知部41、セッション更新頻度通知部42、計測値集計部51、スループット予測値計算部53、中継方式決定部54、中継方式制御部55とは、電子回路である。ここで、電子回路の例として、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などの集積回路、またはCPU(Central Processing Unit)やMPU(Micro Processing Unit)などを適用する。
また、リソース消費量DB記憶部14、セッション更新頻度計算用カウンタ部15、方式選択テーブル記憶部25、メッセージ中継情報記憶部29、キャッシュ34、メッセージ中継装置リスト記憶部35、計測情報DB記憶部52とは、記憶装置である。なお、記憶装置の例として、RAM(Random Access Memory)、フラッシュメモリ(flash memory)などの半導体メモリ素子、または、ハードディスク、光ディスクなどの記憶装置である。
次に、図面を用いて、メッセージ中継装置10が実行する処理の流れについて説明する
。まず、図20を用いて、メッセージ中継装置10がリクエストを受信した際の処理の流れについて説明する。図20は、リクエストの中継処理の流れを説明するためのフローチャートである。なお、図20には、メッセージ中継装置10がロードバランサ3からメッセージを受信した際の処理の流れについて記載した。また、図20には、メッセージ中継装置10が単体でメッセージの中継を行う際の処理について記載した。
例えば、メッセージ中継装置10は、ロードバランサ3からメッセージを受信する(ステップS101)。すると、メッセージ中継装置10は、メッセージからセッションIDを抽出する(ステップS102)。次に、メッセージ中継装置10は、メッセージにセッションIDが存在するか否かを判別し(ステップS103)、存在する場合には(ステップS103肯定)、セッションIDをキーとして、メッセージ中継情報を検索する(ステップS104)。
次に、メッセージ中継装置10は、検索結果、すなわちサーバアドレスがヒットしたか否かを判別し(ステップS105)、ヒットした場合には(ステップS105肯定)、ヒットしたサーバアドレスを取得する(ステップS106)。そして、メッセージ中継装置10は、取得したサーバアドレスを宛先としてリクエストを送信し(ステップS107)、処理を終了する。
一方、メッセージ中継装置10は、検索結果がヒットしなかった場合は(ステップS105否定)、ロードバランサ3を介して、クライアント2〜2bにエラーを通知し(ステップS108)、処理を終了する。一方、メッセージ中継装置10は、メッセージにセッションIDが存在しない場合は(ステップS103否定)、あらかじめ設定された負荷分散アルゴリズムに従って宛先を決定し(ステップS109)、リクエストを送信する(ステップS107)。なお、あらかじめ設定された負荷分散アルゴリズムとは、例えばラウンドロビンやランダムにリクエストの送信先となる情報処理サーバを選択するアルゴリズムである。
次に、図21を用いて、メッセージ中継装置10が情報処理サーバ4〜4bから応答を受信した際に実行する処理の流れについて説明する。図21は、応答の中継処理の流れを説明するためのフローチャートである。なお、図21に示す例では、メッセージ中継装置10が中継方式(A)が設定されたメッセージの応答を受信した際に実行する処理の流れを記載した。また、図21には、メッセージ中継装置10が単体でメッセージの中継を行う際の処理について記載した。
例えば、メッセージ中継装置10は、応答を受信すると(ステップS201)、応答からセッションIDを抽出する(ステップS202)。そして、メッセージ中継装置10は、セッションIDが応答に含まれるか否かを判別する(ステップS203)。次に、メッセージ中継装置10は、セッションIDが応答に含まれる場合には(ステップS203肯定)、セッションIDをキーとしてメッセージ中継情報を検索する(ステップS204)。
そして、メッセージ中継装置10は、検索結果がヒットしたか否かを判別し(ステップS205)、ヒットしなかった場合は(ステップS205否定)、メッセージ中継情報を更新する(ステップS206)。具体的には、メッセージ中継装置10は、セッションIDと応答の送信元となる情報処理サーバのサーバアドレスとを対応付けてメッセージ中継情報に追加する。
その後、メッセージ中継装置10は、リクエスト元に応答を送信し(ステップS207)、処理を終了する。一方、メッセージ中継装置10は、検索結果がヒットした場合は(ステップS205肯定)、そのままリクエスト元に応答を送信し(ステップS207)、処理を終了する。また、メッセージ中継装置10は、セッションIDが応答に含まれない場合は(ステップS203否定)、リクエスト元に応答を送信し(ステップS207)、処理を終了する。
次に、図22を用いて、メッセージ中継装置10がロードバランサ3によって振分けられたリクエストを受信した際に実行する処理の流れについて説明する。図22は、メッセージ中継装置がリクエストを受信した際に実行する処理の流れを説明するためのフローチャートである。なお、図22には、メッセージ中継装置10が他のメッセージ中継装置10a、10bと連係してメッセージの中継処理を行う際の処理の流れについて記載した。
なお、図22に示すステップS301〜S303、ステップS304、ステップS306の処理は、図20に示すステップS101〜S103、ステップS109、ステップS105と同様の処理であるものとして、説明を省略する。例えば、メッセージ中継装置10は、検索結果がヒットしなかった場合は(ステップS306否定)、方式選択テーブルからセッションIDと対応付けられた方式を選択する(ステップS307)。
すなわち、メッセージ中継装置10は、セッションIDと対応付けられた中継方式が中継方式(D)である場合は(ステップS307:方式(D))、メッセージ中継情報を他のメッセージ中継装置に問合せする(ステップS308)。そして、メッセージ中継装置10は、応答に含まれる情報をキャッシュし(ステップS309)、メッセージを情報処理サーバへ送信し(ステップS305)、処理を終了する。
一方、メッセージ中継装置10は、セッションIDと対応付けられた中継方式が中継方式(B)である場合は(ステップS307:方式(B))、ハッシュ関数等を用いてメッセージを転送するメッセージ中継装置を決定する(ステップS310)。そして、メッセージ中継装置10は、決定したメッセージ中継装置にメッセージを転送し(ステップS311)、処理を終了する。
また、メッセージ中継装置10は、セッションIDと対応付けれられた中継方式が中継方式(C)である場合には(ステップS307:方式(C))、メッセージ中継情報を他のメッセージ中継装置10a、10bに問合せする(ステップS312)。そして、メッセージ中継装置10は、問合せした結果、他のメッセージ中継装置10a、10bから取得したサーバアドレスの情報処理サーバにメッセージを送信し(ステップS305)、処理を終了する。なお、セッションIDと対応付けられた中継方式が中継方式(A)である場合には、ステップS306にて、必ず検索結果がヒットする(ステップS306肯定)。
次に、図23を用いて、メッセージ中継装置10が他のメッセージ中継装置10a、10bから各中継方式(A)〜(D)で中継されるメッセージについて、メッセージ中継情報を受信した際に実行する処理の流れについて説明する。図23は、メッセージ中継装置がメッセージ中継情報を受信した際に実行する処理の流れを説明するためのフローチャートである。
例えば、メッセージ中継装置10は、他のメッセージ中継装置10a、10bから、メッセージ中継情報を受信する(ステップS401)。すると、メッセージ中継装置10は、受信したメッセージ中継情報からセッションIDと転送先となるサーバアドレスとを抽出する(ステップS402)。次に、メッセージ中継装置10は、抽出したセッションIDを用いてメッセージ中継情報を検索し(ステップS403)、検索結果がヒットしたか否かを判別する(ステップS404)。
そして、メッセージ中継装置10は、ヒットしなかった場合には(ステップS404否定)、抽出したセッションIDと転送先サーバアドレスとを対応付けたエントリをメッセージ中継情報に追加し(ステップS405)、処理を終了する。また、メッセージ中継装置10は、検索結果がヒットした場合は(ステップS404肯定)、メッセージ中継情報を更新し(ステップS406)、処理を終了する。
次に図24を用いて、メッセージ中継装置10が他のメッセージ中継装置10a、10bから中継方式(C)、(D)に係るサーバアドレスの問合せを受信した際に実行する処理の流れについて説明する。図24は、メッセージ中継装置がサーバアドレスの問い合せを受信した際に実行する処理の流れを説明するためのフローチャートである。
例えば、メッセージ中継装置10は、サーバアドレスの問合せを他のメッセージ中継装置10a、10bから受信する(ステップS501)。すると、メッセージ中継装置10は、問合せからセッションIDを抽出する(ステップS502)。次に、メッセージ中継装置10は、抽出したセッションIDをキーとして、メッセージ中継情報を検索し(ステップS503)、検索結果がヒットしたか否かを判別する(ステップS504)。
そして、メッセージ中継装置10は、検索結果がヒットした場合には(ステップS504肯定)、以下の処理を実行する。すなわち、メッセージ中継装置10は、ヒットした転送先サーバアドレスを取得し、セッションIDとともに問合せ応答メッセージに記載して、問合せ元のメッセージ中継装置へ送信し(ステップS505)、処理を終了する。一方、メッセージ中継装置10は、検索結果がヒットしなかった場合は(ステップS504否定)、エラー通知を問合せ元のメッセージ中継装置へ送信し(ステップS506)、処理を終了する。
次に、図25を用いて、メッセージ中継装置10が他のメッセージ中継装置10a、10bから、中継方式(B)に係る転送されたメッセージを受信した際に実行する処理の流れについて説明する。図25は、メッセージ中継装置が転送メッセージを受信した際に実行する処理の流れを説明するためのフローチャートである。
図25に示す例では、メッセージ中継装置10は、他のメッセージ中継装置10a、10bから転送されたメッセージを受信する(ステップS601)。すると、メッセージ中継装置10は、受信したメッセージからセッションIDを抽出する(ステップS602)。次に、メッセージ中継装置10は、メッセージにセッションIDが存在するか否かを判別し(ステップS603)、存在する場合は(ステップS603肯定)、以下の処理を実行する。
すなわち、メッセージ中継装置10は、抽出したセッションIDをキーとしてメッセージ中継情報を検索し、検索結果がヒットするか否かを判別する(ステップS604)。その後、メッセージ中継装置10は、検索結果がヒットした場合は(ステップS604肯定)、ヒットしたサーバアドレスを宛先として、メッセージを送信し(ステップS605)、処理を終了する。
一方、メッセージ中継装置10は、転送されたメッセージにセッションIDが含まれない場合は(ステップS603否定)、メッセージの転送元となるメッセージ中継装置にエラーを通知し(ステップS606)、処理を終了する。なお、メッセージ中継装置10は、検索結果がヒットしなかった場合は(ステップS604否定)、メッセージの転送元となるメッセージ中継装置にエラーを通知し(ステップS606)、処理を終了する。
次に、図26を用いて、メッセージ中継装置10が情報処理サーバ4〜4bから応答を受信した際に実行する処理の流れを説明する。図26は、メッセージ中継装置が応答を受信した際に実行する処理の流れを説明するためのフローチャートである。
例えば、メッセージ中継装置10は、応答を受信すると(ステップS701)、応答からセッションIDを抽出し(ステップS702)、抽出したセッションIDが示すセッションが新規セッションであるか否かを判別する(ステップS703)。そして、メッセージ中継装置10は、抽出したセッションIDが示すセッションが新規セッションである場合は(ステップS703肯定)、セッション確立数のカウントアップを行う(ステップS704)。
次に、メッセージ中継装置10は、メッセージ中継情報を更新し(ステップS705)、抽出したセッションIDが含まれるメッセージの中継方式を方式選択テーブルから検索する(ステップS706)。そして、メッセージ中継装置10は、中継方式が中継方式(B)〜(D)である場合は(ステップS706:方式(B、C、D))、メッセージ中継情報の配布先を決定し(ステップS707)、メッセージ中継情報を配布する(ステップS708)。
一方、メッセージ中継装置10は、中継方式が中継方式(A)である場合には(ステップS706:方式(A))、全てのメッセージ中継装置へメッセージ中継装置を配布する(ステップS709)。その後、メッセージ中継装置10は、メッセージ処理数をカウントアップし(ステップS710)、ロードバランサ3を介してクライアント2〜2bに応答を送信し(ステップS711)、処理を終了する。
一方、メッセージ中継装置10は、抽出したセッションIDが示すセッションが新規セッションではない場合は(ステップS703否定)、応答に係るメッセージの転送元が他のメッセージ中継装置であるか否かを判別する(ステップS712)。そして、メッセージ中継装置10は、応答に係るメッセージの転送元が他のメッセージ中継装置である場合は(ステップS712肯定)、メッセージ処理数のカウントアップを行う(ステップS713)。
その後、メッセージ中継装置10は、メッセージ転送元のメッセージ中継装置へ応答を転送し(ステップS714)、処理を終了する。一方、メッセージ中継装置10は、応答に係るメッセージの転送元が他のメッセージ中継装置ではない場合は(ステップS712否定)、ステップS710の処理を実行する。
[実施例1の効果]
上述したように、メッセージ中継装置10は、情報処理サーバ4〜4b上で動作するプログラムによって確立されたセッションのセッションIDと、セッションIDが確立された情報処理サーバ4〜4bのサーバアドレスとを対応付けたメッセージ中継情報を記憶する。そして、メッセージ中継装置10は、メッセージに含まれるセッションIDがメッセージ中継情報に含まれているか判別し、含まれていないと判別した場合には、方式選択テーブルに記憶された中継方式を用いてメッセージを送信する。すなわち、メッセージ中継装置10は、セッションを確立したプログラムが提供するサービスに応じて方式選択サーバ50が選択した中継方式を用いて、メッセージを転送する。
このため、メッセージ中継装置10は、メッセージを中継する際のスループットを向上させることができる。すなわち、方式選択サーバ50は、セッションを確立したプログラムが提供するサービスごとに、スループットが最大となる中継方式を選択する。この結果、メッセージ中継装置10は、スループットが最大となる中継方式でメッセージを中継することができる。
また、方式選択サーバ50は、サービスのセッション更新頻度に応じて中継方式を選択する。このため、メッセージ中継装置10は、メッセージを中継する際のスループットを向上させることができる。例えば、メッセージ中継装置10は、サービスのセッション更新頻度が低い場合には、中継方式(A)の方式でメッセージの中継を行い。サービスのセッション更新頻度が高い場合は、他の中継方式(B)〜(D)でメッセージの中継を行う。このため、メッセージ中継装置10は、メッセージを中継する際の処理負荷を削減し、スループットを向上させることができる。
また、メッセージ中継装置10は、メッセージを中継する際に、中継方式(A)〜(D)のいずれかを用いて、メッセージの中継を行う。このため、メッセージ中継装置10は、メッセージを中継する際の処理負荷やセッション更新頻度等に応じて、スループットが最大となる中継方式でメッセージを中継することができる。
また、方式選択サーバ50は、セッション更新頻度と、メッセージ中継情報を配布する際のリソース量と、メッセージを他のメッセージ中継装置に転送する際のリソース量を用いて、各中継方式(A)〜(D)を実行した際のスループットを算出する。また、方式選択サーバ50は、メッセージを送信するサーバの問合せを行う際のリソース量を用いて、各中継方式(A)〜(D)を実行した際のスループットを算出する。そして、方式選択サーバ50は、算出したスループットが最も大きい中継方式を選択する。このため、メッセージ中継装置10は、メッセージを転送する際のスループットが最大となる中継方式を用いて、メッセージの転送を行うことができる。
また、メッセージ中継装置10は、セッションを更新する頻度と、メッセージ中継情報を同期する際のリソース量と、メッセージを他のメッセージ中継装置に転送する際のリソース量とを測定する。そして、方式選択サーバ50は、メッセージ中継装置10が測定したセッションを更新する頻度と各リソース量とを用いて、各中継方式(A)〜(D)におけるスループットの値を算出する。このため、メッセージ中継装置10は、実測値を用いて予測されるスループットの値に応じた中継方式でメッセージを転送するので、より最適な中継方式でメッセージを中継することができる。
また、メッセージ中継装置10は、情報処理サーバ4〜4bから応答を受信すると、受信した応答に含まれるセッションIDが示すセッションが新規セッションであるか否かを判別する。そして、メッセージ中継装置10は、応答に含まれるセッションIDが示すセッションが新規セッションである場合は、セッションを確立したプログラムが提供するサービスに応じて、メッセージの中継方法を選択する。すなわち、メッセージ中継装置10は、新規セッションを確立したプログラムが提供するサービスと同一のサービスに対する後続のメッセージを中継する中継方法を選択する。このため、メッセージ中継装置10は、新規セッションを確立したプログラムが提供するサービスについてのメッセージを中継する際に、スループットを向上させることができる。
また、メッセージ中継装置10は、応答のセッションIDが示すセッションが新規セッションではない場合は、応答をクライアント2〜2b、または、メッセージ転送元のメッセージ中継装置10a、10bに転送する。このため、メッセージ中継装置10は、メッセージを他のメッセージ中継装置10a、10bに転送する中継方式(B)を採用した場合にも、適切に応答の転送を行うことができる。
また、メッセージ中継装置10は、サービスと中継方式とを対応付けた方式選択テーブルを記憶する。そして、メッセージ中継装置10は、方式選択テーブルに記憶された中継方式を用いて、メッセージの中継を行う。このため、メッセージ中継装置10は、メッセージを転送する際に中継方式を選択する処理を迅速に行う事ができるので、メッセージ転送時のレイテンシを削減することができる。
これまで本発明の実施例について説明したが実施例は、上述した実施例以外にも様々な異なる形態にて実施されてよいものである。そこで、以下では実施例2として本発明に含まれる他の実施例を説明する。
(1)リソース量の測定タイミングについて
上述したメッセージ中継装置10は、セッション更新頻度やメッセージを転送する際のリソース量等を所定のタイミングで測定し、測定結果を所定のタイミングおきに方式選択サーバ50に送信した。ここで、メッセージ中継装置10がメッセージのリソース量等を測定する処理は、任意のタイミングで行うことができる。
例えば、図27、図28を用いて、メッセージ中継装置10〜10bがメッセージごとに方式選択サーバ50に通知を行った際の処理の流れについて説明する。図27は、セッションの更新頻度を収集する際の計算リソースを説明するための図である。また、図28は、メッセージ中継処理で消費する計算リソース量を説明するための図である。
例えば、メッセージ中継装置10〜10bは、メッセージを受信するごとに、メッセージに係るウェブアプリケーションとセッションIDとをセッションが確立した際と確立後に方式選択サーバ50に送信する。すると、方式選択サーバ50は、メッセージを受信する度に、各メッセージ中継装置10〜10bからのメッセージを集計し、集計結果からウェブアプリケーションごとのセッション更新頻度を算出する。
また、図28に示す例では、各メッセージ中継装置10〜10bは、メッセージの中継を行うたびに、処理を行う前と後のCPU時間c1、c2を取得し、c2からc1を減算したリソース量(CPU時間)を算出する。そして、各メッセージ中継装置10〜10bは、算出したCPU時間を方式選択サーバ50に転送する。すると、方式選択サーバ50は、メッセージが中継されるたびに、リソース量を集計し、スループットを算出する。
ここで、各メッセージ中継装置10〜10bがメッセージの中継処理を行うたびにセッション更新頻度の通知やリソース量の通知を行った場合には、メッセージ中継装置10〜10b、方式選択サーバ50の双方での処理負荷が増加する。そこで、各メッセージ中継装置10〜10bは、所定の時間間隔で、それまでのリソース量の平均を算出し、算出した平均を方式選択サーバ50に通知してもよい。
図29は、平均値を方式選択サーバへ通知する際の消費計算リソース量を説明するための図である。図29に示すように、各メッセージ中継装置10〜10bは、メッセージの中継処理を行うごとに、アプリケーションごとのメッセージ数とセッション確立数とのカウンタをカウントアップする。そして、各メッセージ中継装置10〜10bは、カウントした値を所定の時間間隔で、方式選択サーバ50に通知する。また、メッセージ中継装置10〜10bは、リソース量を平均値で算出し、算出した平均値を方式選択サーバ50に送信する。
このため、各メッセージ中継装置10〜10bは、中継方式を選択する際に消費するリソース量を削減することができる。すなわち、各メッセージ中継装置10〜10bは、セッション更新頻度やリソース量の平均値を算出し、算出した平均値を方式選択サーバ50に送信する。このため、各メッセージ中継装置10〜10bは、中継方式を選択する際のリソース量を削減することができる。
(2)セッション更新頻度やリソース量を送信するメッセージ中継装置について
実施例1に係るメッセージ中継装置10〜10bは、それぞれメッセージ処理数、セッション確立数、リソース量をメッセージ中継装置に通知した。しかし、実施例は、これに限定されるものではなく、例えば、1台のメッセージ中継装置をサンプリングノードとし、サンプリングノードのみが、メッセージ処理数、セッション確立数、リソース量を通知することとしてもよい。
図30は、1台のメッセージ中継装置をサンプリングノードとした際の処理を説明するための図である。図30に示す例では、メッセージ中継装置10〜10bのうち、サンプリングノードとして選択されたメッセージ中継装置10のみが、方式選択サーバ50に対して、メッセージを送信する。
ここで、ロードバランサ3は、セッションIDを参照せず、TCPヘッダ等の情報を用いて各メッセージ中継装置10〜10bに対し、メッセージをランダムに振り分ける。このため、各メッセージ中継装置10〜10bには、セッションの確立を伴うメッセージが偏ることなく振分けられる。この結果、情報処理システム1は、任意のメッセージ中継装置をサンプルノードとすることで、適切な中継方式を選択することができる。
また、情報処理システム1は、各メッセージ中継装置10〜10bが消費するリソース量や、方式選択サーバ50が中継方式を選択する際に消費するリソース量を削減することができる。このため、情報処理システム1は、各メッセージ中継装置10〜10bのスループットを向上させることができる。
(3)リソース量の平均値について
実施例1に係るメッセージ中継装置10は、メッセージを処理するたびに、リソース消費量DB記憶部14に記憶されたリソース消費量を上書きした。しかし、実施例はこれに限定されるものではない。例えば、メッセージ中継装置10は、リソース消費量DB記憶部14に記憶されたリソース消費量と新たなリソース消費量との和を2で除算した値を新たなリソース消費量として、リソース消費量DBに登録してもよい。このような処理を行った場合には、メッセージ中継装置10は、例えば、平均から大きく外れたリソース消費量が測定された場合にも、誤った中継方式によるメッセージの転送を防げる。
(4)中継装置の切り替えについて
実施例1においては、中継方式(A)では、あるセッションIDについてのメッセージ中継情報を全てのメッセージ中継装置10〜10bが記憶した。また、中継方式(B)、(C)では、あるセッションIDについてのメッセージ中継情報を、1つのメッセージ中継装置が記憶した。
また、中継方式(D)では、あるセッションIDについてのメッセージ中継情報を1つのメッセージ中継装置が記憶するとともに、複数のメッセージ中継装置がキャッシュしていた。この結果、あるサービスについて中継方式が切り替わった場合には、各メッセージ中継装置10〜10bのメッセージ中継情報についても更新が必要である。
そこで、情報処理システム1は、セッションを管理するための機能を方式選択サーバ50に設けることとしてもよい。例えば、メッセージ中継装置10〜10bは、新規セッションが確立した際に、サービスとセッションIDとのペアを方式選択サーバ50に通知する。また、メッセージ中継装置10〜10bは、タイムアウト等によりセッションを消去する際に、方式選択サーバ50にセッション消去を通知する。そして、方式選択サーバ50は、各メッセージ中継装置10〜10bから通知されたサービスとセッションIDとのペア、およびセッション消去の通知に応じて、確立したセッションを管理する。
ここで、図31は、確立済みセッション情報の一例を説明するための図である。図31に示す例では、方式選択サーバ50は、サービスと、各サービスについて確立したセッションを示すセッションIDとを対応付けたリストを記憶する。そして、方式選択サーバ50は、あるサービスについての中継方式が、中継方式(B)〜(D)から中継方式(A)に変更となる場合は、以下の処理を実行する。
まず、方式選択サーバ50は、図31に示すリストを参照し、中継方式が切り替わったサービスについて確立しているセッションのセッションIDを取得する。そして、方式選択サーバ50は、各セッションIDについてハッシュ計算と剰余の演算を行い、メッセージ中継情報を記憶するメッセージ中継装置を特定する。
そして、方式選択サーバ50は、特定したメッセージ中継装置以外のメッセージ中継装置に対して、メッセージ中継情報を配布する。なお、方式選択サーバ50は、特定したメッセージ中継装置からメッセージ中継情報を取得し、特定したメッセージ中継装置以外のメッセージ中期装置に対してメッセージ中継情報を配布することとしてもよい。
一方、方式選択サーバ50は、中継方式(A)から中継方式(B)〜(D)に変更となる場合は、以下の処理を実行する。まず、方式選択サーバ50は、図31に示すリストを参照し、中継方式が切り替わったサービスについて確立しているセッションのセッションIDを取得する。そして、方式選択サーバ50は、各セッションIDについてハッシュ計算と剰余の演算を行い、メッセージ中継情報を記憶するメッセージ中継装置を特定する。その後、方式選択サーバ50は、特定したメッセージ中継装置以外のメッセージ中継装置に対して、メッセージ中継情報の削除を要求する。
このように、情報処理システム1は、方式選択サーバ50に確立済みセッションの情報を管理させ、中継方式が変更となるたびに、メッセージ中継情報の更新を行った場合には、以下の効果を有する。すなわち、情報処理システム1は、各メッセージ中継装置10〜10bが、古いメッセージ中継情報を用いてメッセージの転送を行うことを防ぐことができる。
なお、上述したように、中継方式が変化した際のメッセージ中継情報の更新について、方式選択サーバ50が集中管理する場合には、負荷が高くなる場合がある。このため、メッセージ中継情報の更新は、各メッセージ中継装置10〜10bが分散して実施することとしてもよい。
例えば、各メッセージ中継装置10〜10bは、方式選択テーブルが更新されたことをトリガとして、以下の処理を実行する。まず、各メッセージ中継装置10〜10bは、中継方式が変更となったサービスについて確立されたセッションのリストを取得し、取得したリストの中から、自装置が担当となるセッションIDを抽出する。すなわち、セッションIDのハッシュ値を剰余演算した値が自装置に付与された番号であるセッションIDを抽出する。なお、効率化のため、メッセージ中継情報に自装置が保持するフラグをセットしておくことで、自装置が担当のセッションIDを識別することとしてもよい。
そして、各メッセージ中継装置10〜10bは、メッセージ中継装置リストを参照して、自装置以外のメッセージ中継装置のアドレスを識別し、識別したアドレスに対して、メッセージ中継情報の削除を要求してもよい。
(5)メッセージについて
実施例1では、図11を用いてメッセージの一例について説明した。しかし、実施例は、これに限定されるものではない。例えば、メッセージには、送信元MACアドレス、送信先MACアドレス、送信元IPアドレスおよびポート番号、送信先IPアドレスおよびポート番号が格納される。
また、メッセージには、HTTPプロトコルヘッダとメッセージコンテンツが格納され、HTTPプロトコルヘッダに、Cookieの一部として、セッションIDが格納されている。しかし、セッションIDは、他のフィールドや、メッセージコンテンツ、HTTP以外のプロトコルのヘッダに格納することとしてもよい。
また、メッセージ中継装置10〜10bによる問い合わせ、メッセージの転送、応答等の制御メッセージは、メッセージと同様の形式で情報を送受信することとしてもよい。すなわち、制御メッセージには、送信元MACアドレス、送信先MACアドレス、送信元IPアドレスおよびポート番号、送信先IPアドレスおよびポート番号が格納されることとしてもよい。また、メッセージコンテンツとして、セッションIDが格納されていることとしてもよい。
(6)方式選択サーバ50が実行する処理について
上述した実施例1にでは、方式選択サーバ50が各メッセージ中継装置10〜10bからリソース量やセッション確立数、メッセージ処理数等を取得し、中継方法を算出した。しかし実施例はこれに限定されるものではなく、例えば、各メッセージ中継装置10
〜10bのうちいずれかのサンプルノードが方式選択サーバ50と同様の処理を行い、選択した中継方法を他のメッセージ中継装置へ通知することとしてもよい。
すなわち、方式選択サーバ50の機能を、任意のメッセージ中継装置10〜10bに含めてもよい。また、方式選択サーバ50の機能を全てのメッセージ中継装置10〜10bに含め、代表となる1台のメッセージ中継装置が、方式選択サーバ50の機能を発揮してもよい。
(7)プログラム
ところで、実施例1に係るメッセージ中継装置10は、ハードウェアを利用して各種の処理を実現する場合を説明した。しかし、実施例はこれに限定されるものではなく、あらかじめ用意されたプログラムをメッセージ中継装置10が有するコンピュータで実行することによって実現するようにしてもよい。そこで、以下では、図32を用いて、メッセージ中継装置10と同様の機能を有するプログラムを実行するコンピュータの一例を説明する。図32は、中継プログラムを実行するコンピュータの一例を説明するための図である。
図32に例示されたコンピュータ100は、ROM(Read Only Memory)110、HDD(Hard Disk Drive)120、RAM(Random Access Memory)130、CPU(Central Processing Unit)140がバス160で接続される。また、図32に例示されたコンピュータ100は、メッセージを送受信するためのI/O(Input Output)150を有する。
RAM130には、中継プログラム131があらかじめ保持される。CPU140が中継プログラム131をRAM130から読み出して実行することによって、図32に示す例では、中継プログラム131は、中継プロセス141として機能するようになる。なお、中継プロセス141は、図5のメッセージ中継装置10と同様の機能を発揮する。
なお、本実施例で説明した中継プログラムは、あらかじめ用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。このプログラムは、インターネットなどのネットワークを介して配布することができる。また、このプログラムは、ハードディスク、フレキシブルディスク(FD)、CD−ROM(Compact Disc Read Only Memory)、MO(Magneto Optical Disc)、DVD(Digital Versatile Disc)などのコンピュータで読取可能な記録媒体に記録される。また、このプログラムは、コンピュータによって記録媒体から読み出されることによって実行することもできる。
1 情報処理システム
2〜2b クライアント
3 ロードバランサ
4〜4b 情報処理サーバ
10〜10b メッセージ中継装置
11 中継処理部
12 中継先情報管理部
13 計測結果通知部
14 リソース消費量DB記憶部
15 セッション更新頻度計算用カウンタ部
16 応答受信部
17 応答受信部
18 中継方式選択部
19 新規セッション識別部
20 新規セッションカウンタ更新部
21 メッセージ処理数カウンタ更新部
22 応答送信部
23 他装置転送部
24 リクエスト受信部
25 方式選択テーブル記憶部
26 中継方式選択部
27 リクエスト受信部
28 中継先決定部
29 メッセージ中継情報記憶部
30 リクエスト転送部
31 転送先問合せ部
32 他装置転送部
33 中継先問合せ部
34 キャッシュ
35 メッセージ中継装置リスト記憶部
36 中継先情報回答部
37 中継先情報取得部
38 中継先情報保持装置検索部
39 テーブル配布部
40 テーブル更新部
41 リソース使用量通知部
42 セッション更新頻度通知部
50 方式選択サーバ
51 計測値集計部
52 計測情報DB記憶部
53 スループット予測値計算部
54 中継方式決定部
55 中継方式制御部

Claims (11)

  1. サーバ上で動作するプログラムによって確立された該サーバとクライアントとの間のセッションを識別するセッション識別子と、該サーバ識別子との対応関係情報を記憶する記憶部と、
    振分け装置から受信したメッセージに含まれるセッション識別子が前記記憶部に記憶した前記対応関係情報に含まれているか否かを判別する判別部と、
    受信した前記メッセージに含まれる前記セッション識別子が前記対応関係情報に含まれていないと前記判別部が判別した場合には、前記メッセージに含まれる前記セッション識別子が示すセッションを確立したプログラムに応じて、受信した前記メッセージを前記サーバに転送する際の中継方式を選択する選択部と、
    前記選択部が選択した中継方式を用いて、前記メッセージを転送する転送部と
    を有することを特徴とする中継装置。
  2. 前記選択部は、前記メッセージに含まれる前記セッション識別子が示すセッションの更新頻度に応じて、前記中継方式を選択することを特徴とする請求項1に記載の中継装置。
  3. 前記選択部は、複数のサーバに対してメッセージの転送を行う複数の中継装置が記憶する対応関係情報を同期し、各中継装置が受信したメッセージを前記サーバに転送する方法と、前記受信したメッセージに含まれるセッション識別子を含む対応関係情報を記憶する中継装置へ前記メッセージを転送し、転送先の中継装置がサーバにメッセージを転送する方法と、前記受信したメッセージに含まれるセッション識別子を含む対応関係情報を記憶する中継装置に該セッション識別子と対応付けられたサーバを問合せ、問合せの結果として通知されるサーバにメッセージを転送する方法と、問合せの結果として通知されたサーバにメッセージを転送するとともに、問合せの結果として通知されたサーバをキャッシュする方法とのいずれかを選択することを特徴とする請求項1または2に記載の中継装置。
  4. 前記セッションが更新される頻度と、前記対応関係情報を同期する際に必要なリソース量と、前記メッセージを他の中継装置に転送する際に消費するリソース量と、前記サーバの問合せを行う際に消費するリソース量とを用いて、各中継方式を実行した際のスループットを算出する算出部を有し、
    前記選択部は、前記算出部が算出したスループットが最も大きい中継方式を選択することを特徴とする請求項3に記載の中継装置。
  5. 前記プログラムがセッションを更新する頻度と、前記対応関係情報を同期する際に必要なリソース量と、前記メッセージを他の中継装置に転送する際に消費するリソース量と、前記サーバの問合せを行う際に消費するリソース量とをそれぞれ測定する測定部を有し、
    前記算出部は、前記測定部が測定したリソース量を用いて、各中継方式を実行した際のスループットを算出することを特徴とする請求項4に記載の中継装置。
  6. 前記判別部は、前記転送部が転送したメッセージに対する応答を前記サーバから受信した場合には、当該応答に含まれるセッション識別子と応答元サーバとを対応付けた情報が前記対応関係情報に含まれているか否かを判別し、
    前記選択部は、前記応答に含まれるセッション識別子と応答元のサーバとを対応付けた情報が前記対応関係情報に含まれていないと前記判別部が判別した場合は、当該セッション識別子が示すセッションを確立したプログラムに応じて、当セッション該識別子を含むメッセージを前記サーバに転送する中継方式を選択することを特徴とする請求項1−5のいずれか1つに記載の中継装置。
  7. 前記転送部は、前記応答に含まれるセッション識別子と応答元のサーバとを対応付けた情報が前記対応関係情報に含まれていると前記判別部が判別した場合には、当該応答の元となるメッセージを発行したクライアント、または、当該応答の元となるメッセージの転送元となる他の中継装置に、当該応答を転送することを特徴とする請求項6に記載の中継装置。
  8. 前記選択部は、前記セッション識別子を含むメッセージについて選択した中継方式と、当該識別子が示すセッションを確立したプログラムとを対応付けた中継方式選択情報を生成し、
    前記転送部は、前記セッション識別子が前記対応関係情報に含まれていないと前記判別部が判別した場合には、当該セッション識別子が示すセッションを確立したプログラムと対応付けられた中継方式を前記中継方式選択情報から識別し、識別した中継方式を用いて前記メッセージを転送することを特徴とする請求項1−6のいずれか1つに記載の中継装置。
  9. クライアントにサービスを提供する複数のサーバと
    クライアントが発行したメッセージを受信すると、受信したメッセージをいずれかのサーバに転送する複数の中継装置と、
    クライアントが発行したメッセージを各中継装置に振分ける振分け装置と
    を有する情報処理システムにおいて、
    前記中継装置は、
    前記サーバ上で動作するプログラムによって確立された該サーバとクライアントとの間のセッションを識別するセッション識別子と、該サーバ識別子との対応関係情報を記憶する記憶部と、
    振分け装置から受信したメッセージに含まれるセッション識別子が前記記憶部に記憶した前記対応関係情報に含まれているか否かを判別する判別部と、
    受信した前記メッセージに含まれる前記セッション識別子が前記対応関係情報に含まれていないと前記判別部が判別した場合には、前記メッセージに含まれる前記セッション識別子が示すセッションを確立したプログラムに応じて、受信した前記メッセージを前記サーバに転送する際の中継方式を選択する選択部と、
    前記選択部が選択した中継方式を用いて、前記メッセージを転送する転送部と
    を有することを特徴とする情報処理システム。
  10. クライアントが発行するメッセージをサーバに転送する中継装置が有するコンピュータに、
    サーバ上で動作するプログラムによって確立された該サーバとクライアントとの間のセッションを識別するセッション識別子と、該サーバ識別子との対応関係情報を記憶する記憶装置が、振分け装置から受信したメッセージに含まれるセッション識別子を記憶しているか否かを判別し、
    前記受信した前記メッセージに含まれる前記セッション識別子が前記記憶装置が記憶していないと判別した場合には、前記メッセージに含まれる前記セッション識別子が示すセッションを確立したプログラムに応じて、受信した前記メッセージを前記サーバに転送する際の中継方式を選択し、
    前記選択した中継方式を用いて、前記メッセージを転送する
    処理を実行させることを特徴とする中継プログラム。
  11. クライアントが発行するメッセージをサーバに転送する中継装置が、
    サーバ上で動作するプログラムによって確立された該サーバとクライアントとの間のセッションを識別するセッション識別子と、該サーバ識別子との対応関係情報を記憶する記憶装置が、振分け装置から受信したメッセージに含まれるセッション識別子を記憶しているか否かを判別し、
    前記受信した前記メッセージに含まれる前記セッション識別子が前記記憶装置が記憶していないと判別した場合には、前記メッセージに含まれる前記セッション識別子が示すセッションを確立したプログラムに応じて、受信した前記メッセージを前記サーバに転送する際の中継方式を選択し、
    前記選択した中継方式を用いて、前記メッセージを転送する
    処理を実行することを特徴とする中継方法。
JP2012062779A 2012-03-19 2012-03-19 中継装置、情報処理システム、中継プログラム、中継方法 Expired - Fee Related JP5928040B2 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2012062779A JP5928040B2 (ja) 2012-03-19 2012-03-19 中継装置、情報処理システム、中継プログラム、中継方法
US13/736,690 US8984055B2 (en) 2012-03-19 2013-01-08 Relay device, information processing system, and computer-readable recording medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2012062779A JP5928040B2 (ja) 2012-03-19 2012-03-19 中継装置、情報処理システム、中継プログラム、中継方法

Publications (2)

Publication Number Publication Date
JP2013196379A true JP2013196379A (ja) 2013-09-30
JP5928040B2 JP5928040B2 (ja) 2016-06-01

Family

ID=49158690

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012062779A Expired - Fee Related JP5928040B2 (ja) 2012-03-19 2012-03-19 中継装置、情報処理システム、中継プログラム、中継方法

Country Status (2)

Country Link
US (1) US8984055B2 (ja)
JP (1) JP5928040B2 (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015099418A (ja) * 2013-11-18 2015-05-28 株式会社リコー 制御システム、通信システム、プログラム、及び制御方法
CN109643288A (zh) * 2016-10-31 2019-04-16 Line 株式会社 信息处理系统、信息处理方法以及程序

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6361090B2 (ja) * 2013-05-16 2018-07-25 ヤマハ株式会社 中継装置
US9501321B1 (en) * 2014-01-24 2016-11-22 Amazon Technologies, Inc. Weighted service requests throttling
US10033616B1 (en) * 2014-03-27 2018-07-24 Juniper Networks, Inc. State synchronization for global control in a distributed security system
US9854051B2 (en) * 2014-04-25 2017-12-26 Wilmerding Communications Llc Using proxy devices as dynamic data relays
JP6409438B2 (ja) * 2014-09-19 2018-10-24 株式会社リコー セッション制御システム、通信端末、通信システム、セッション制御方法、及びプログラム
JP2017092728A (ja) * 2015-11-11 2017-05-25 富士通株式会社 通信システム、基地局、制御局、制御局の制御方法
US20170141994A1 (en) * 2015-11-13 2017-05-18 Le Holdings (Beijing) Co., Ltd. Anti-leech method and system
JP6801191B2 (ja) * 2016-02-24 2020-12-16 沖電気工業株式会社 無線通信システム、無線通信装置、及び無線通信プログラム
JP6834768B2 (ja) * 2017-05-17 2021-02-24 富士通株式会社 攻撃検知方法、攻撃検知プログラムおよび中継装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002271415A (ja) * 2001-03-12 2002-09-20 Hitachi Ltd プロキシサーバ・システム、および、その通信方法
US20060072482A1 (en) * 2004-10-06 2006-04-06 Nokia Corporation Service routing
US20070208874A1 (en) * 2006-03-01 2007-09-06 Previdi Stefano B Technique for optimized routing of data streams on an IP backbone in a computer network
JP2011039681A (ja) * 2009-08-07 2011-02-24 Fujitsu Ltd 中継装置及び転送ルールに関連する情報処理方法並びにプログラム
JP2012222402A (ja) * 2011-04-04 2012-11-12 Fujitsu Ltd 中継装置、中継プログラム、及び中継方法

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3307337B2 (ja) 1998-09-16 2002-07-24 日本電気株式会社 Wwwゲートウェイ及びwww通信システム
US6801776B2 (en) 2000-09-28 2004-10-05 Telefonaktiebolaget Lm Ericsson (Publ) Systems and methods for dimensioning a wireless communication system
JP2003296289A (ja) 2002-04-02 2003-10-17 Nec Corp 負荷分散方式、負荷分散システム、負荷分散方法および負荷分散用プログラム
US7487353B2 (en) * 2004-05-20 2009-02-03 International Business Machines Corporation System, method and program for protecting communication
US7492764B2 (en) * 2004-10-12 2009-02-17 Innomedia Pte Ltd System for management of equipment deployed behind firewalls
US20080244667A1 (en) * 2007-03-27 2008-10-02 Osborne Jason C Bandwidth sensitive switched digital video content delivery
JP2008259114A (ja) 2007-04-09 2008-10-23 Sharp Corp 画像処理装置
US8635535B2 (en) * 2007-10-16 2014-01-21 D&B Business Information Solutions Limited Third-party-secured zones on web pages
JP2012226414A (ja) * 2011-04-15 2012-11-15 Konica Minolta Business Technologies Inc 画像形成装置、通信制御方法、通信制御プログラム、ブラウジング方法およびブラウジングプログラム

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002271415A (ja) * 2001-03-12 2002-09-20 Hitachi Ltd プロキシサーバ・システム、および、その通信方法
US20060072482A1 (en) * 2004-10-06 2006-04-06 Nokia Corporation Service routing
US20070208874A1 (en) * 2006-03-01 2007-09-06 Previdi Stefano B Technique for optimized routing of data streams on an IP backbone in a computer network
JP2011039681A (ja) * 2009-08-07 2011-02-24 Fujitsu Ltd 中継装置及び転送ルールに関連する情報処理方法並びにプログラム
JP2012222402A (ja) * 2011-04-04 2012-11-12 Fujitsu Ltd 中継装置、中継プログラム、及び中継方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
JPN6015029669; 濱田圭ほか: 'アプリケーション・スイッチのスケールアウト方式の評価' 電子情報通信学会技術研究報告 第110巻 第449号, 20110224, 169〜174頁, 社団法人電子情報通信学会 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015099418A (ja) * 2013-11-18 2015-05-28 株式会社リコー 制御システム、通信システム、プログラム、及び制御方法
CN109643288A (zh) * 2016-10-31 2019-04-16 Line 株式会社 信息处理系统、信息处理方法以及程序
CN109643288B (zh) * 2016-10-31 2023-07-11 连株式会社 信息处理系统、信息处理方法以及存储介质

Also Published As

Publication number Publication date
US8984055B2 (en) 2015-03-17
US20130246507A1 (en) 2013-09-19
JP5928040B2 (ja) 2016-06-01

Similar Documents

Publication Publication Date Title
JP5928040B2 (ja) 中継装置、情報処理システム、中継プログラム、中継方法
US11290418B2 (en) Hybrid content request routing system
US11743190B2 (en) Techniques for steering network traffic to regions of a cloud computing system
US10257101B2 (en) Active application response delay time
WO2018210265A1 (zh) 调度控制方法、装置和系统
US8489724B2 (en) CNAME-based round-trip time measurement in a content delivery network
US20170187768A1 (en) Content delivery network streaming optimization
CN107317879B (zh) 一种用户请求的分发方法及系统
CN107250999B (zh) 具有网络内缓存的分布式内容发现
US10897450B2 (en) Communication method and communication apparatus
US20110271005A1 (en) Load balancing among voip server groups
US10243917B2 (en) Method and apparatus for calculating distance in contents delivery network
JP5741150B2 (ja) 中継装置、中継プログラム、及び中継方法
JP2012257338A (ja) グローバルトラフィックロードバランシングのためのクライアントの場所及びリゾルバの負荷を判断するためのdnsワイルドカードビーコニング
WO2018112759A1 (zh) 访问资源的方法、装置和系统
JP2010003273A (ja) Sipメッセージ振分方法およびsipメッセージ振分装置
US11297131B2 (en) Method and apparatus for multi-vendor GTM fabric
CN105025042B (zh) 一种确定数据信息的方法及系统、代理服务器
JP6368127B2 (ja) 通信装置、制御方法、及びプログラム
KR101353472B1 (ko) 동적 도메인 네임 서비스를 제공하기 위한 서버, 시스템 및방법
US10560480B1 (en) Rule enforcement based on network address requests
CN106034124B (zh) 一种流量统计方法和装置
US20170286562A1 (en) Information processing apparatus, data providing system, and data providing method
KR20180004142A (ko) 타겟팅된 쿼리 및 탐색 쿼리의 집성
JP2019185663A (ja) 関連イベント統合プログラム、装置及び方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20141204

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150618

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150728

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150917

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160411

R150 Certificate of patent or registration of utility model

Ref document number: 5928040

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees