(57)【要約】【課題】転送ルールを他の中継装置に通知するためのメッセージに対する応答メッセージを削減する。【解決手段】本中継装置は、クライアントからのメッセージを複数サーバのいずれかに中継する中継処理を分散して行うためのネットワーク構成において用いられる装置であって、複数の他の中継装置の各々からブロードキャストにより送信され且つ新たな転送先情報を含む転送ルール通知のうち、自中継装置が応答すべき転送ルール通知の送信元の識別情報を含む応答要否テーブルを格納する状態管理データ格納部と、他の中継装置から転送ルール通知を受信した場合、当該他の中継装置の識別情報が応答要否テーブル内に存在するか判断する転送ルール受信手段と、他の中継装置の識別情報が応答要否テーブル内に存在する場合、受信した転送ルール通知に対する応答を当該他の中継装置に送信する応答送信手段とを有する。【選択図】図６
2011039681.tif 000002
【特許請求の範囲】
【請求項１】
クライアントからのメッセージを複数サーバのいずれかに中継する中継処理を分散して行うためのネットワーク構成において用いられる中継装置であって、
複数の他の中継装置の各々からブロードキャストにより送信され且つ新たな転送先情報を含む転送ルール通知のうち、自中継装置が応答すべき転送ルール通知の送信元の識別情報を含む応答要否テーブルを格納する状態管理データ格納部と、
前記他の中継装置から前記転送ルール通知を受信した場合、当該他の中継装置の識別情報が前記応答要否テーブル内に存在するか判断する転送ルール受信手段と、
前記他の中継装置の識別情報が前記応答要否テーブル内に存在する場合、受信した前記転送ルール通知に対する応答を当該他の中継装置に送信する応答送信手段と、
を有する中継装置。
【請求項２】
前記転送ルール通知をブロードキャストにより前記複数の他の中継装置の各々に送信した後に、当該転送ルール通知に対する応答を前記複数の他の中継装置のいずれか１つから受信した場合、所定の応答受信時動作を開始する手段
をさらに有する請求項１記載の中継装置。
【請求項３】
前記転送先情報が、識別子と当該識別子を含むメッセージの転送先となる前記サーバのアドレスとを含む
請求項１又は２のいずれか１つ記載の中継装置。
【請求項４】
クライアントからのメッセージを複数サーバのいずれかに中継する中継処理を分散して行うための中継装置に、
他の中継装置からブロードキャストにより送信され且つ新たな転送先情報を含む転送ルール通知を受信した場合、当該他の中継装置の識別情報が、複数の他の中継装置の各々から送信される前記転送ルール通知のうち、自中継装置が応答すべき転送ルール通知の送信元の識別情報を含む応答要否テーブル内に存在するか判断するステップと、
前記他の中継装置の識別情報が前記応答要否テーブル内に存在する場合、受信した前記転送ルール通知に対する応答を当該他の中継装置に送信するステップと、
を実行させるためのプログラム。
【請求項５】
クライアントからのメッセージを複数サーバのいずれかに中継する中継処理を分散して行うための中継装置により実行される情報処理方法であって、
他の中継装置からブロードキャストにより送信され且つ新たな転送先情報を含む転送ルール通知を受信した場合、当該他の中継装置の識別情報が、複数の他の中継装置の各々から送信される前記転送ルール通知のうち、自中継装置が応答すべき転送ルール通知の送信元の識別情報を含む応答要否テーブル内に存在するか判断するステップと、
前記他の中継装置の識別情報が前記応答要否テーブル内に存在する場合、受信した前記転送ルール通知に対する応答を当該他の中継装置に送信するステップと、
を含み、中継装置により実行される情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本技術は、転送先の一意性を保証したメッセージ転送を行う分野の技術に関する。
【背景技術】
【０００２】
例えば、クライアントとアプリケーション（ＡＰＬ）サーバとの間のメッセージを中継する中継装置の処理負荷を分散させるため、複数の中継装置を用いてシステムを構築する技術（例えば特許文献１記載の技術など）が存在する。
【０００３】
図２７に、複数の中継装置を有するシステムの一例を示す。図２７において、例えばＬＢ（Load Balancer：ロードバランサ）がクライアントからのメッセージを受け取ると、各種負荷分散アルゴリズムを用いて、受け取ったメッセージを各中継装置に振り分ける。そして、ＬＢからメッセージを受け取った中継装置は、外部装置にアクセスして転送ルールを取得し、取得した転送ルールに従ったメッセージ転送を実施する。このように、図２７に示すシステムでは、外部装置で転送ルールを集中管理し、例えば同一のＩＤを持つ一連のメッセージを同一のＡＰＬサーバに転送するようになっている。なお、このようなメッセージ転送を、本願では、転送先の一意性を保証したメッセージ転送と呼ぶ。
【０００４】
しかしながら、このような方式では、以下に述べるように、処理性能の向上の妨げとなる問題がある。第１に、メッセージ転送を行う度に、中継装置から外部装置へのアクセスが発生し、オーバーヘッドが大きい。第２に、複数の中継装置が外部装置にアクセスするので排他制御が必要となり、ある中継装置がアクセスしている間は、他の中継装置は待たされることになる。そのため、中継装置の数が増加するにつれ、待ち時間も増加し、結果としてオーバーヘッドが大きくなってしまう。
【０００５】
なお、例えばコンピュータ・システムにおける各ノードで同一の情報を保持するような技術（例えば特許文献２記載の技術など）が存在しているが、情報更新時には全ノードがロックするようになっているため、排他制御によるオーバーヘッドを解消することはできない。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開２００７−２１９６０８号公報
【特許文献２】特表２００１−５１８６６３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
一方で、例えば集中管理することなく、排他制御せずに転送ルールを各中継装置で共有するには、転送ルールを他の中継装置に通知するためのメッセージと、そのメッセージに対する大量の応答メッセージ（ＡＣＫメッセージ）とが中継装置間で飛び交うことになる。そのため、現実的ではなかった。
【０００８】
従って、本技術の目的は、転送ルールを他の中継装置に通知するためのメッセージに対する応答メッセージを削減するための技術を提供することである。
【課題を解決するための手段】
【０００９】
本中継装置は、クライアントからのメッセージを複数サーバのいずれかに中継する中継処理を分散して行うためのネットワーク構成において用いられる中継装置であって、複数の他の中継装置の各々からブロードキャストにより送信され且つ新たな転送先情報を含む転送ルール通知のうち、自中継装置が応答すべき転送ルール通知の送信元の識別情報を含む応答要否テーブルを格納する状態管理データ格納部と、他の中継装置から転送ルール通知を受信した場合、当該他の中継装置の識別情報が応答要否テーブル内に存在するか判断する転送ルール受信手段と、他の中継装置の識別情報が応答要否テーブル内に存在する場合、受信した転送ルール通知に対する応答を当該他の中継装置に送信する応答送信手段とを有する。
【発明の効果】
【００１０】
転送ルールを他の中継装置に通知するためのメッセージに対する応答メッセージを削減できる。
【図面の簡単な説明】
【００１１】
【図１】図１は、本技術の実施の形態に係るシステム構成図である。
【図２】図２は、図１に示したシステムの基本的な動作を説明するための図である。
【図３】図３は、転送ルールの不一致が生ずる場面を説明するための図である。
【図４】図４は、転送ルールの不一致解消を説明するための図である。
【図５】図５は、転送ルールの不一致発生時のシステム全体の一連の処理フローを示す図である。
【図６】図６は、本実施の形態における中継装置の機能ブロック図である。
【図７】図７は、転送ルール格納部に格納されるデータの一例を示す図である。
【図８】図８は、状態管理データ格納部に格納される状態管理テーブルのテーブル例を示す図である。
【図９】図９（ａ）乃至（ｆ）は、状態管理データ格納部に格納される応答要否テーブルのテーブル例を示す図である。
【図１０】図１０は、図９（ａ）乃至（ｆ）に示した応答要否テーブルを説明するための図である。
【図１１】図１１は、状態管理データ格納部に格納される不一致リストの一例を示す図である。
【図１２】図１２は、図１１に示した不一致リストを説明するための図である。
【図１３】図１３は、中継装置の全体の処理フローを示す図である。
【図１４】図１４は、転送メッセージ受信処理の処理フローを示す図である。
【図１５】図１５は、識別ルールの一例を示す図である。
【図１６】図１６は、ＳＯＡＰ／ＨＴＴＰメッセージの一例を示す図である。
【図１７】図１７は、ＨＴＴＰメッセージの一例を示す図である。
【図１８】図１８は、転送ルール受信処理の処理フロー（第１の部分）を示す図である。
【図１９】図１９は、転送ルール通知（不一致解消フラグ：オフ）の一例を示す図である。
【図２０】図２０は、転送ルール通知応答の一例を示す図である。
【図２１】図２１は、転送ルール通知（不一致解消フラグ：オン）の一例を示す図である。
【図２２】図２２は、転送ルール受信処理の処理フロー（第２の部分）を示す図である。
【図２３】図２３は、応答受信処理の処理フローを示す図である。
【図２４】図２４は、応答待ちタイマのタイムアウト時の処理フローを示す図である。
【図２５】図２５は、本技術の第１の態様に係る中継装置の機能ブロック図である。
【図２６】図２６は、本技術の第２の態様に係る情報処理方法の処理フローを示す図である。
【図２７】図２７は、従来のシステムの一例を示す図である。
【図２８】図２８は、コンピュータの機能ブロック図である。
【発明を実施するための形態】
【００１２】
図１に、本技術の実施の形態に係るシステム構成図を示す。図１において、各中継装置５（図１では、５Ａ、５Ｂ及び５Ｃ）は、ＬＢ３と、ＡＰＬサーバ７（図１では、７Ａ及び７Ｂ）の各々とに接続されている。また、クライアント１（図１では、１Ａ及び１Ｂ）は、ＬＢ３と接続されている。なお、クライアント１、中継装置５及びＡＰＬサーバ７の数は、これに限定されない。また、本実施の形態では、各中継装置５が転送ルールを保持するようになっている。なお、中継装置５の機能ブロック図は、後で図６を用いて詳細に説明する。
【００１３】
例えば、図１に示したシステムにおいて、ある中継装置５が、新たな転送先を決定した場合、転送ルールの同期を取るため、新たな転送先の情報を他の中継装置５に通知する。なお、図２を用いて、図１に示したシステムの動作を説明する。図２において、実線の矢印は、クライアント１からＡＰＬサーバ７へ送信されるメッセージ（以下、転送メッセージと呼ぶ場合もある）を示し、点線の矢印は、中継装置５間で飛び交うメッセージ（以下、制御メッセージと呼ぶ場合もある）を示している（以下、同じ）。例えば、クライアント１ＡからＬＢ３に対してメッセージが送信されたものとする（図２：ステップ（１））。このメッセージには新たな識別子が含まれるものとする。そして、クライアント１Ａからメッセージを受け取ったＬＢ３は、各種負荷分散アルゴリズムを用いて振り分け先を決定する。ここでは、中継装置５Ａが振り分け先として決定されたものとする。そして、ＬＢ３は、決定した振り分け先（中継装置５Ａ）にメッセージを送信する（ステップ（２））。そして、ＬＢ３からメッセージを受け取った中継装置５Ａは、予め定められた識別ルールに従ってメッセージから識別子を抽出し、抽出した識別子を基に、自身が保持する転送ルールを検索する。ここでは、抽出した識別子に対応する転送先が転送ルールに設定されていなかったものとする。そして、中継装置５Ａは、自律負荷分散によって転送先を決定し（ここでは、ＡＰＬサーバ７Ａが転送先として決定されたものとする）、メッセージを送信する（ステップ（３））。また、中継装置５Ａは、抽出した識別子と、決定した転送先のサーバのアドレスとを転送先情報として含む転送ルール通知を中継装置５Ｂ及び５Ｃに送信する（ステップ（４））。中継装置５Ａから転送ルール通知を受信した中継装置５Ｂ及び５Ｃは、自身の保持する転送ルールを更新する。なお、詳細は後で説明するが、本実施の形態では、中継装置５Ｂ及び５Ｃのいずれかが、中継装置５Ａに対して転送ルール通知応答を送信する。
【００１４】
その後、クライアント１ＢからＬＢ３に対してメッセージが送信されたものとする（ステップ（５）。このメッセージには、ステップ（１）において送信されたメッセージと同一の識別子が含まれているものとする。そして、クライアント１Ａからメッセージを受け取ったＬＢ３は、各種負荷分散アルゴリズムを用いて振り分け先を決定し（ここでは、中継装置５Ｂが振り分け先として決定されたものとする）、メッセージを送信する（ステップ（６））。そして、ＬＢ３からメッセージを受け取った中継装置５Ｂは、予め定められた識別ルールに従ってメッセージから識別子を抽出し、抽出した識別子を基に、自身が保持する転送ルールを検索する。なお、ステップ（４）において中継装置５Ａから転送ルール通知を受信しているため、転送先としてＡＰＬサーバ７Ａが特定される。そして、中継装置５Ｂは、メッセージをＡＰＬサーバ７Ａに送信する（ステップ（７））。これにより、排他制御を行うことなく、各中継装置５で同一の転送ルールを保持することができる。
【００１５】
ただし、各中継装置５が、ほぼ同時にメッセージを受信した場合には、各中継装置５で転送ルールが一致しない場合が生ずる。例えば図３に、転送ルールの不一致が生ずる場合の一例を示す。まず、クライアント１Ａ及びクライアント１Ｂから、ほぼ同時にメッセージが送信されたものとする（ステップ（１１）及び（１１’））。これらのメッセージには、同一の新たな識別子が含まれているものとする。そして、クライアント１Ａ及び１Ｂの各々からメッセージを受け取ったＬＢ３は、各種負荷分散アルゴリズムを用いて振り分け先を決定する。ここでは、クライアント１Ａからのメッセージの振り分け先として中継装置５Ａが決定され、クライアント１Ｂからのメッセージの振り分け先として中継装置５Ｂが決定されたものとする。そして、ＬＢ３は、決定した振り分け先（中継装置５Ａ及び５Ｂ）にメッセージを送信する（ステップ（１２）及び（１２’））。
【００１６】
そして、ＬＢ３からメッセージを受け取った中継装置５Ａは、予め定められた識別ルールに従ってメッセージから識別子を抽出し、抽出した識別子を基に、自身が保持する転送ルールを検索する。ここでは、抽出した識別子に対応する転送先が転送ルールに設定されていなかったものとする。そして、中継装置５Ａは、自律負荷分散によって転送先を決定し（ここでは、ＡＰＬサーバ７Ａが転送先として決定されたものとする）、メッセージを送信する（ステップ（１３））。また、中継装置５Ａは、抽出した識別子と、決定した転送先のサーバ（ＡＰＬサーバ７Ａ）のアドレスとを転送先情報として含む転送ルール通知を中継装置５Ｂ及び５Ｃに送信する（ステップ（１４））。
【００１７】
一方で、中継装置５ＢもＬＢ３からメッセージを、中継装置５Ａとほぼ同時に受信する。そして、ＬＢ３からメッセージを受け取った中継装置５Ｂは、予め定められた識別ルールに従ってメッセージから識別子を抽出し、抽出した識別子を基に、自身が保持する転送ルールを検索する。なお、中継装置５Ａからの通知を受信する前であるため、抽出した識別子に対応する転送先は未だ転送ルールに設定されていない。そして、中継装置５Ｂは、自律負荷分散によって転送先を決定し（ここでは、ＡＰＬサーバ７Ｂが転送先として決定されたものとする）、メッセージを送信する（ステップ（１３’））。また、中継装置５Ｂは、抽出した識別子と、決定した転送先のサーバ（ＡＰＬサーバ７Ｂ）のアドレスとを転送先情報として含む転送ルール通知を中継装置５Ａ及び５Ｃに送信する（ステップ（１４’））。
【００１８】
このように、各中継装置５が、ほぼ同時にメッセージを受信した場合には、各中継装置５で転送ルールの不一致が生ずる場合がある。そこで、本実施の形態では、自律負荷分散により新たな転送先を決定した中継装置５（図３では、５Ａ及び５Ｂ）が、不一致解消のための処理を実施する。具体的には、図４に示すように、中継装置５Ａ及び５Ｂの各々が、転送ルール通知を送信した後、どちらの転送先情報を採用するか選択し、選択された方の中継装置５（図４では、５Ａ）が、他の中継装置５に、再度転送ルール通知を送信する（ステップ（１５））。そして、他の中継装置５は、再度送信された転送ルール通知に従って、自身が保持する転送ルールを更新する。これにより、上記のような転送ルールの不一致が生じた場合でも、不一致を解消することができる。
【００１９】
なお、図３及び図４で説明した処理を、システム全体の一連の処理フローとして表したものを図５に示す。図５において、実線の矢印は、転送メッセージを示し、点線の矢印は、転送ルール通知を示し、一点鎖線の矢印は、転送ルール通知応答を示している。例えば、中継装置５Ａは、クライアント１Ａからのメッセージを受信し（ステップ（２１））、転送先（ＡＰＬサーバ７Ａ（図５ではＡＰＬ−Ａ））を決定する。そして、中継装置５Ａは、中継装置５Ｂ及び５Ｃに転送ルール通知（転送先：ＡＰＬサーバ７Ａ）を送信する（ステップ（２２））。
【００２０】
一方で、中継装置５Ｂも、中継装置５Ａとほぼ同時に、クライアント１Ｂからのメッセージを受信し（ステップ（２１’））、送信先（ＡＰＬサーバ７Ｂ（図５ではＡＰＬ−Ｂ））を決定する。そして、中継装置５Ｂは、中継装置５Ａ及び５Ｃに転送ルール通知（転送先：ＡＰＬサーバ７Ｂ）を送信する（ステップ（２２’））。
【００２１】
そして、中継装置５Ａは、中継装置５Ｂからの転送ルール通知（転送先：ＡＰＬサーバ７Ｂ）を受信することで、転送ルールの不一致を検出する（ステップ（２３））。また、中継装置５Ｂも、中継装置５Ａからの転送ルール通知（転送先：ＡＰＬサーバ７Ａ）を受信することで、転送ルールの不一致を検出する（ステップ（２３’））。
【００２２】
なお、図５では、中継装置５Ａが、中継装置５Ｂに対して応答を返し、中継装置５Ｂが、中継装置５Ｃに対して応答を返し、中継装置５Ｃが、中継装置５Ａに対して応答を返すように設定されているものとする。従って、中継装置５Ａは、中継装置５Ｂからの転送ルール通知に対して転送ルール通知応答を送信する（ステップ（２４））。また、中継装置５Ｃは、中継装置５Ａからの転送ルール通知に対して転送ルール通知応答を送信する（ステップ（２５））。なお、図５では、中継装置５Ｃは転送ルール通知を送信していないため、中継装置５Ｂは転送ルール通知応答を送信しない。
【００２３】
そして、中継装置５Ａは、中継装置５Ｃからの転送ルール通知応答を受信すると、所定の方法で、中継装置５Ａ及び５Ｂのいずれかを選択する（ステップ（２６））。ここでは、中継装置５Ａが選択されたものとする。一方、中継装置５Ｂも、中継装置Ａからの転送ルール通知応答を受信すると、同様の方法で、中継装置５Ａ及び５Ｂのいずれかを選択する（ステップ（２７））。すなわち、中継装置５Ａが選択される。
【００２４】
そして、中継装置５Ａは、自身の転送先情報が採用されたと判断し、中継装置５Ｂ及び５Ｃに、再度転送ルール通知（転送先：ＡＰＬサーバ７Ａ）を送信する（ステップ（２８））。そして、中継装置５Ｂ及び５Ｃは、中継装置５Ａからの転送ルール通知（転送先：ＡＰＬサーバ７Ａ）を受信し、転送ルールとして設定する（ステップ（２９）及び（３０））。
【００２５】
これにより、中継装置５Ａ、５Ｂ及び５Ｃの転送ルールの同期を取ることができ、同じ識別子を持つ一連のメッセージをＡＰＬサーバ７Ａに転送することができる。なお、ステップ（２１’）からステップ（２９）までの間は、転送ルールの不一致が生じていることになるが、本技術では、短期間の不一致については許容されるようなシステムを想定しており、特に問題は生じない。
【００２６】
以下、図６乃至図２４を用いて、上で述べたような処理を実施する中継装置５の詳細を説明する。なお、図６に、中継装置５の機能ブロック図を示す。中継装置５は、メッセージ受信部５０１と、メッセージ解析部５０３と、メッセージ転送先決定部５０５と、転送ルール格納部５０７と、メッセージ送信部５０９と、転送ルール処理部５１１と、状態管理データ格納部５１３と、転送ルール送信部５１５とを有する。
【００２７】
なお、メッセージ受信部５０１は、ＬＢ３からのメッセージと、他の中継装置５からの転送ルール通知又は転送ルール通知応答とのいずれかを受信し、受信ポートに従って処理を振り分ける。受信ポートが転送メッセージ用のポートの場合には、受信した転送メッセージをメッセージ解析部５０３に出力する。また、受信ポートが制御メッセージ用のポートの場合には、受信した制御メッセージを転送ルール処理部５１１に出力する。
【００２８】
また、メッセージ解析部５０３は、メッセージ受信部５０１からメッセージを受信すると、予め定められた識別ルールに従ってメッセージから識別子を抽出し、受信したメッセージと、抽出した識別子とをメッセージ転送先決定部５０５に出力する。メッセージ転送先決定部５０５は、メッセージ解析部５０３からメッセージと識別子とを受信すると、受信した識別子を基に転送ルール格納部５０７を検索する。受信した識別子が転送ルール格納部５０７に登録済みの場合には、メッセージ転送先決定部５０５は、転送先となるＡＰＬサーバ７のアドレスを転送ルール格納部５０７から取得し、受信したメッセージと、取得したＡＰＬサーバ７のアドレスとをメッセージ送信部５０９に出力する。また、受信した識別子が転送ルール格納部５０７に登録されていなければ、メッセージ転送先決定部５０５は、転送先となるＡＰＬサーバ７を決定し、決定したＡＰＬサーバ７のアドレスを転送ルール格納部５０７に登録する。また、メッセージ転送先決定部５０５は、転送ルールの状態を表すデータを状態管理データ格納部５１３に登録すると共に、転送ルール通知の送信指示を転送ルール送信部５１５に出力する。メッセージ送信部５０９は、メッセージ転送先決定部５０５からメッセージとＡＰＬサーバ７のアドレスとを受信すると、メッセージをＡＰＬサーバ７のアドレス宛に送信する。
【００２９】
また、転送ルール処理部５１１は、メッセージ受信部５０１からメッセージを受信すると、転送ルールに関するデータを転送ルール格納部５０７及び状態管理データ格納部５１３に格納したり、転送ルール格納部５０７及び状態管理データ格納部５１３に格納されているデータに基づき、転送ルールに関連する処理を実施したりする。また、転送ルール処理部５１１は、必要に応じて、制御メッセージの送信指示を転送ルール送信部５１５に指示する。転送ルール送信部５１５は、メッセージ転送先決定部５０５又は転送ルール処理部５１１からの送信指示に応じて、転送ルール通知又は転送ルール通知応答を送信する。
【００３０】
図７に、転送ルール格納部５０７に格納されるデータの一例を示す。図７の例では、転送ルール格納部５０７には、識別子の列と、転送先アドレスの列とが含まれる。転送先アドレスの列には、その識別子を含むメッセージの転送先となるＡＰＬサーバ７のアドレスが登録される。
【００３１】
また、状態管理データ格納部５１３には、状態管理テーブル、応答要否テーブル及び不一致リストが格納される。図８に、状態管理データ格納部５１３に格納される状態管理テーブルの一例を示す。図８の例では、状態管理テーブルには、識別子の列と、自装置決定フラグの列と、通知応答待ちフラグの列とが含まれる。なお、自装置決定フラグは、その識別子に対応する転送先を決定したのが自中継装置（以下、自装置と略称する場合もある）であるか否か（ＯＮ：自装置が決定／ＯＦＦ：他装置が決定）を表すフラグである。また、通知応答待ちフラグは、その識別子についての転送ルール通知に対する応答待ちの状態であるか否か（ＯＮ：待ち状態／ＯＦＦ：待ち状態ではない）を表すフラグである。
【００３２】
また、図９（ａ）乃至（ｆ）は、状態管理データ格納部５１３に格納される応答要否テーブルの例を示す。なお、図９（ａ）乃至（ｆ）は、図１０に示すような６台の中継装置５が存在する場合に、各中継装置５が保持する応答要否テーブルを示している。具体的には、図９（ａ）は、装置番号「１」の中継装置５の状態管理データ格納部５１３に格納される応答要否テーブルを示している。また、図９（ｂ）は、装置番号「２」の中継装置５の状態管理データ格納部５１３に格納される応答要否テーブルを示している。さらに、図９（ｃ）は、装置番号「３」の中継装置５の状態管理データ格納部５１３に格納される応答要否テーブルを示している。また、図９（ｄ）は、装置番号「４」の中継装置５の状態管理データ格納部５１３に格納される応答要否テーブルを示している。さらに、図９（ｅ）は、装置番号「５」の中継装置５の状態管理データ格納部５１３に格納される応答要否テーブルを示している。また、図９（ｆ）は、装置番号「６」の中継装置５の状態管理データ格納部５１３に格納される応答要否テーブルを示している。図９（ａ）乃至（ｆ）では、応答要否テーブルには、自装置の装置番号の列と、応答要装置番号の列と、応答送信元装置番号の列とが含まれる。なお、応答要装置番号の列には、自装置が応答すべき相手の装置番号が設定される。また、応答送信元装置番号の列には、自装置が転送ルール通知を送信した際に、自装置に対して転送ルール通知応答を送信してくる中継装置５の装置番号が設定される。
【００３３】
なお、図９（ａ）乃至（ｆ）に示すように、状態管理データ格納部５１３に格納される応答要否テーブルの内容は、中継装置５毎に異なっている。図９（ａ）乃至（ｆ）では、応答要否テーブルの設定が重複しないようになっており、ある中継装置５に対して、他の中継装置５のうちの１つだけが応答を返すようになっている。例えば図９（ａ）では、装置番号「１」の中継装置５（自装置）は、装置番号「２」の中継装置５から転送ルール通知を受信した場合に、転送ルール通知応答を送信する必要があることを示している。また、図９（ａ）では、装置番号「６」の中継装置５が、自装置に対して転送ルール通知応答を返してくることを示している。
【００３４】
また、図１１は、状態管理データ格納部５１３に格納される不一致リストの一例を示す。不一致リストについては図１２を用いて説明する。図１２は、６台の中継装置５が存在する場合に、装置番号「３」、「４」及び「５」の中継装置５の各々が自律負荷分散によって転送先を決定したことにより、転送ルールの不一致が生じた例を示している。なお、図１２において、転送ルールの不一致の起因となった中継装置５（すなわち、装置番号「３」、「４」及び「５」の中継装置）で構成されるグループを不一致解消グループと呼ぶ。そして、不一致解消グループに属する中継装置５の装置番号が不一致リストに登録される。さらに、不一致リストに登録された中継装置５について、不一致解消グループ内の番号が付与され、不一致リストに登録される。なお、不一致解消グループに属する各中継装置５は、同一の不一致リストを保持する。一方、不一致解消グループに属さない中継装置５では、不一致リストは空のリストとなる。
【００３５】
次に、図１３乃至図２４を用いて、中継装置５の処理について説明する。まず、中継装置５のメッセージ受信部５０１が、ＩＰ／Ｐｏｒｔ（ポート）を介してメッセージを受信する（図１３：ステップＳ１）。そして、メッセージ受信部５０１は、転送メッセージ用のＩＰ／Ｐｏｒｔにてメッセージを受信したか判断する（ステップＳ３）。転送メッセージ用のＩＰ／Ｐｏｒｔにてメッセージを受信した場合（ステップＳ３：Ｙｅｓルート）、中継装置５は、転送メッセージ受信処理を実施し（ステップＳ５）、その後、処理を終了する。なお、転送メッセージ受信処理については後で詳細に説明する。
【００３６】
一方、転送メッセージ用のＩＰ／Ｐｏｒｔ以外のポートにてメッセージを受信した場合（ステップＳ３：Ｎｏルート）、メッセージ受信部５０１は、制御メッセージ用のＩＰ／Ｐｏｒｔにてメッセージを受信したか判断する（ステップＳ７）。制御メッセージ用のＩＰ／Ｐｏｒｔにてメッセージを受信した場合（ステップＳ７：Ｙｅｓルート）、メッセージ受信部５０１は、受信したメッセージを転送ルール処理部５１１に出力する。
【００３７】
そして、転送ルール処理部５１１は、メッセージ受信部５０１からメッセージを受信すると、受信したメッセージが転送ルール通知であるか判断する（ステップＳ９）。なお、転送ルール通知であるか否かは、受信したメッセージに含まれるメッセージ種別に従って判断する。受信したメッセージが転送ルール通知である場合（ステップＳ９：Ｙｅｓルート）、中継装置５は、転送ルール受信処理を実施し（ステップＳ１１）、その後、処理を終了する。なお、転送ルール受信処理については後で詳細に説明する。
【００３８】
一方、受信したメッセージが転送ルール通知でなければ（ステップＳ９：Ｎｏルート）、転送ルール処理部５１１は、受信したメッセージが転送ルール通知応答であるか判断する（ステップＳ１３）。なお、転送ルール通知応答であるか否かも、受信したメッセージに含まれるメッセージ種別に従って判断する。受信したメッセージが転送ルール通知応答である場合（ステップＳ１３：Ｙｅｓルート）、中継装置５は、応答受信処理を実施し（ステップＳ１５）、その後、処理を終了する。なお、応答受信処理については後で詳細に説明する。
【００３９】
一方、ステップＳ７において、制御メッセージ用のＩＰ／Ｐｏｒｔ以外のポートにてメッセージを受信したと判断された場合（ステップＳ７：Ｎｏルート）、又は、ステップＳ１３において、受信メッセージが転送ルール通知応答ではないと判断された場合（ステップＳ１３：Ｎｏルート）、中継装置５は、所定のエラー処理を実施する（ステップＳ１７）。例えば、図示しない管理者端末にエラー発生を通知したりする。その後、処理を終了する。
【００４０】
次に、図１４乃至図１７を用いて、ステップＳ５（図１３）における転送メッセージ受信処理について説明する。例えば、メッセージ受信部５０１は、受信した転送メッセージをメッセージ解析部５０３に出力する。例えば、図１６及び図１７に転送メッセージの例を示す。なお、図１６は、ＳＯＡＰ（Simple Object Access Protocol）／ＨＴＴＰ（HyperText Transfer Protocol）メッセージの一例を示す。また、図１７は、ＨＴＴＰメッセージの一例を示す。
【００４１】
そして、メッセージ解析部５０３は、予め定められた識別ルールに従って、メッセージから識別子を抽出する（図１４：ステップＳ２１）。なお、識別ルールは、例えばメッセージ解析部５０３がアクセス可能な記憶装置等に格納されているものとする。図１５に識別ルールの一例を示す。図１５に示すように、識別ルールには、プロトコル別に、メッセージ内の識別子の位置を特定するためのデータが設定されている。なお、本ステップの処理自体は、本技術の主要部分ではないため、これ以上述べない。そして、メッセージ解析部５０３は、メッセージと、抽出した識別子とをメッセージ転送先決定部５０５に出力する。
【００４２】
そして、メッセージ転送先決定部５０５は、メッセージ解析部５０３からメッセージと識別子とを受信すると、メッセージ解析部５０３によって抽出された識別子が転送ルール格納部５０７に登録済みであるか判断する（ステップＳ２３）。メッセージ解析部５０３によって抽出された識別子が転送ルール格納部５０７に登録済みである場合（ステップＳ２３：Ｙｅｓルート）、メッセージ転送先決定部５０５は、その識別子に対応する転送先アドレスを転送ルール格納部５０７から取得し、メッセージ送信部５０９に、転送先アドレス宛にメッセージを送信させる（ステップＳ２５）。なお、メッセージ送信部５０９は、メッセージ転送先決定部５０５からの指示に応じて、メッセージを転送先アドレス宛に送信する。その後、本処理を終了し、元の処理に戻る。
【００４３】
一方、メッセージ解析部５０３によって抽出された識別子が転送ルール格納部５０７に登録されていなければ（ステップＳ２３：Ｎｏルート）、メッセージ転送先決定部５０５は、自律負荷分散によって、その識別子を含むメッセージの転送先となるＡＰＬサーバ７を決定し、メッセージ送信部５０９に、転送先であるＡＰＬサーバ７のアドレス宛にメッセージを送信させる（ステップＳ２７）。なお、メッセージ送信部５０９は、メッセージ転送先決定部５０５からの指示に応じて、メッセージを転送先アドレス宛に送信する。
【００４４】
また、メッセージ転送先決定部５０５は、メッセージ解析部５０３によって抽出された識別子と、ステップＳ２７において転送先として決定したＡＰＬサーバ７のアドレスとを含む転送先情報を転送ルール格納部５０７に追加し、さらに、その識別子に係るレコードを状態管理データ格納部５１３における状態管理テーブルに追加する（ステップＳ２９）。なお、メッセージ転送先決定部５０５は、当該レコードにおける自装置決定フラグをオン（ＯＮ）に設定する。
【００４５】
そして、メッセージ転送先決定部５０５は、転送ルール送信部５１５に、追加した転送先情報を含む転送ルール通知を他の中継装置５へ送信させる（ステップＳ３１）。転送ルール送信部５１５は、メッセージ転送先決定部５０５からの指示に応じて、転送ルール通知をブロードキャストにより他の中継装置５に送信する。なお、転送ルール通知（図１９）には、メッセージ種別（「転送ルール通知」）と、ステップＳ２１において抽出された識別子と、ステップＳ２７において転送先として決定されたＡＰＬサーバ７のアドレス（すなわち、転送先アドレス）と、自装置番号と、不一致解消フラグ（「ＯＦＦ」）とが設定される。そして、転送ルール送信部５１５は、ステップＳ２９において状態管理データ格納部５１３内の状態管理テーブルに追加したレコードにおける通知応答待ちフラグをオン（ＯＮ）に設定する（ステップＳ３３）。また、転送ルール送信部５１５は、応答待ちタイマを起動する（ステップＳ３５）。その後、本処理を終了し、元の処理に戻る。
【００４６】
以上のような処理を実施することにより、自装置が新たな転送先を決定した際には、ブロードキャストにより他の中継装置５に通知するので、転送ルール格納部５０７の同期を取ることができるようになる。
【００４７】
次に、図１８乃至図２２を用いて、ステップＳ１１（図１３）における転送ルール受信処理について説明する。まず、転送ルール処理部５１１が、転送ルール通知における不一致解消フラグがオフ（ＯＦＦ）に設定されているか判断する（図１８：ステップＳ４１）。例えば図１９に、不一致解消フラグがオフに設定された転送ルール通知の一例を示す。図１９の例では、転送ルール通知には、メッセージ種別（「転送ルール通知」）と、識別子と、転送先アドレスと、自装置番号と、不一致解消フラグ（「ＯＦＦ」）とが含まれる。なお、図５で示した処理フローにおけるステップ（２２）及び（２２’）において送信される転送ルール通知については、不一致解消フラグはオフに設定される。
【００４８】
そして、転送ルール通知における不一致解消フラグがオフに設定されていると判断した場合（ステップＳ４１：Ｙｅｓルート）、転送ルール処理部５１１は、転送ルール通知の送信元である中継装置５の装置番号（すなわち、転送ルール通知に含まれる自装置番号）を基に、状態管理データ格納部５１３に格納されている応答要否テーブルを検索する（ステップＳ４３）。そして、転送ルール処理部５１１は、転送ルール通知応答を送信する必要があるか否か判断する（ステップＳ４５）。すなわち、状態管理データ格納部５１３に格納されている応答要否テーブルにおける応答要装置番号の列に、転送ルール通知の送信元である中継装置５の装置番号が設定されているか判断し、設定されていれば、転送ルール通知応答を送信する必要があると判断する。
【００４９】
そして、転送ルール通知応答を送信する必要がある場合（ステップＳ４５：Ｙｅｓルート）、転送ルール処理部５１１は、転送ルール送信部５１５に、転送ルール通知の送信元である中継装置５へ転送ルール通知応答を送信させる（ステップＳ４７）。転送ルール送信部５１５は、転送ルール処理部５１１からの指示に応じて、転送ルール通知の送信元である中継装置５へ転送ルール通知応答を送信する。図２０に、転送ルール通知応答の一例を示す。図２０の例では、転送ルール通知応答には、メッセージ種別（「転送ルール通知応答」）と、識別子と、転送先アドレスと、自装置番号とが含まれる。なお、識別子及び転送先アドレスについては、転送ルール通知に含まれるデータをそのまま設定する。その後、ステップＳ４９の処理に移行する。
【００５０】
一方、転送ルール通知応答を送信する必要がない場合（ステップＳ４５：Ｎｏルート）、ステップＳ４７をスキップし、ステップＳ４９の処理に移行する。
【００５１】
そして、転送ルール処理部５１１は、転送ルール通知に含まれる識別子が転送ルール格納部５０７に未登録であるか否か判断する（ステップＳ４９）。転送ルール通知に含まれる識別子が登録済みの場合（ステップＳ４９：Ｎｏルート）、端子Ａを介してステップＳ５５（図２２）の処理に移行する。
【００５２】
一方、転送ルール通知に含まれる識別子が未登録の場合（ステップＳ４９：Ｙｅｓルート）、転送ルール処理部５１１は、転送ルール通知に含まれる識別子及び転送先アドレスを転送ルール格納部５０７に追加し、さらに当該識別子に係るレコードを状態管理データ格納部５１３における状態管理テーブルに追加する（ステップＳ５１）。なお、転送ルール処理部５１１は、当該レコードにおける自装置決定フラグ及び通知応答待ちフラグをオフ（ＯＦＦ）に設定する。その後、端子Ｂを介して図２２に移行して本処理を終了し、元の処理に戻る。
【００５３】
また、ステップＳ４１において、転送ルール通知における不一致解消フラグがオンに設定されていると判断した場合（ステップＳ４１：Ｎｏルート）、ステップＳ５３の処理に移行する。なお、図２１に、不一致解消フラグがオンに設定された転送ルール通知の一例を示す。図２１の例では、転送ルール通知には、メッセージ種別（「転送ルール通知」）と、識別子と、転送先アドレスと、自装置番号と、不一致解消フラグ（「ＯＮ」）と、不一致解消装置数と、不一致解消グループ内番号とが含まれる。なお、図５に示した処理フローにおけるステップ（２８）において送信される転送ルール通知については、不一致解消フラグはオンに設定される。
【００５４】
そして、転送ルール処理部５１１は、転送ルール通知に含まれる識別子及び転送先アドレスを基に転送ルール格納部５０７を更新する（ステップＳ５３）。具体的には、転送ルール通知に含まれる識別子に対応し且つ転送ルール格納部５０７に格納されている転送先アドレスを、転送ルール通知に含まれる転送先アドレスで上書きする。なお、不一致解消フラグがオンに設定された転送ルール通知を受信した中継装置５の各々が、受信した転送ルール通知に従って自身の転送ルール格納部５０７を更新することで、転送ルール格納部５０７の同期が取れ、転送ルールの不一致が解消される。その後、端子Ｂを介して図２２に移行して本処理を終了し、元の処理に戻る。
【００５５】
図２２の説明に移行して、端子Ａの後、転送ルール処理部５１１は、状態管理データ格納部５１３に格納されている状態管理テーブルにおいて、転送ルール通知に含まれる識別子に対応する自装置決定フラグがオンに設定されているか判断する（図２２：ステップＳ５５）。状態管理データ格納部５１３に格納されている状態管理テーブルにおいて、転送ルール通知に含まれる識別子に対応する自装置決定フラグがオフに設定されている場合（ステップＳ５５：Ｎｏルート）、自装置は不一致解消グループには属していないと判断し、ステップＳ５７乃至ステップＳ６１の処理をスキップする。そして、本処理を終了し、元の処理に戻る。
【００５６】
一方、状態管理データ格納部５１３に格納されている状態管理テーブルにおいて、転送ルール通知に含まれる識別子に対応する自装置決定フラグがオンに設定されている場合（ステップＳ５５：Ｙｅｓルート）、自装置が不一致解消グループに属していると判断する。そして、転送ルール処理部５１１は、状態管理データ格納部５１３に格納されている不一致リストが空であるか判断する（ステップＳ５７）。状態管理データ格納部５１３に格納されている不一致リストが空の場合（ステップＳ５７：Ｙｅｓルート）、不一致リストに自装置の装置番号を登録する（ステップＳ５９）。そして、ステップＳ６１の処理に移行する。一方、状態管理データ格納部５１３に格納されている不一致リストが空でなければ（ステップＳ５７：Ｎｏルート）、ステップＳ５９をスキップし、ステップＳ６１の処理に移行する。
【００５７】
そして、転送ルール処理部５１１は、状態管理データ格納部５１３に格納されている不一致リストに、転送ルール通知の送信元である中継装置５の装置番号を登録する（ステップＳ６１）。すなわち、初回の処理では、転送ルール通知の送信元である中継装置５の装置番号と併せて自装置の装置番号も不一致リストに登録し、２回目以降の処理では、転送ルール通知の送信元である中継装置５の装置番号のみ追加登録していく。そして、本処理を終了し、元の処理に戻る。
【００５８】
以上のような処理を実施することにより、状態管理データ格納部５１３における応答要否テーブルに設定されている相手に対してのみ転送ルール通知応答を送信するので、中継装置５間を飛び交う制御メッセージ（転送ルール通知応答）を削減できる。
【００５９】
次に、図２３を用いて、ステップＳ１５（図１３）における応答受信処理について説明する。まず、転送ルール処理部５１１は、受信した転送ルール通知応答の送信元が、状態管理データ格納部５１３における応答要否テーブルに設定されている応答送信元と一致するか判断する（図２３：ステップＳ７１）。具体的には、応答要否テーブルにおけるの応答送信元装置番号の列に、転送ルール通知応答の送信元である中継装置５の装置番号が設定されていれば、「一致」と判断する。受信した転送ルール通知応答の送信元が状態管理データ格納部５１３における応答要否テーブルに登録されている応答送信元と一致しない場合（ステップＳ７１：Ｎｏルート）、以下で説明するステップＳ７３乃至ステップＳ８３をスキップして本処理を終了し、元の処理に戻る。
【００６０】
一方、受信した転送ルール通知応答の送信元が状態管理データ格納部５１３における応答要否テーブルに設定されている応答送信元と一致する場合（ステップＳ７１：Ｙｅｓルート）、転送ルール処理部５１１は、状態管理データ格納部５１３に格納されている状態管理テーブルにおいて、転送ルール通知応答に含まれる識別子に対応する通知応答待ちフラグをオフに設定する（ステップＳ７３）。また、転送ルール処理部５１１は、ステップＳ３５において起動した応答待ちタイマをストップする。
【００６１】
そして、転送ルール処理部５１１は、状態管理データ格納部５１３に格納されている不一致リストに装置番号が登録されているか判断する（ステップＳ７５）。不一致リストに装置番号が登録されていなければ（ステップＳ７５：Ｎｏルート）、すなわち不一致リストが空の場合には、転送ルールの不一致は生じていないと判断し、以下で説明するステップＳ７７乃至ステップＳ８３をスキップする。そして、本処理を終了し、元の処理に戻る。
【００６２】
一方、不一致リストに装置番号が登録されている場合（ステップＳ７５：Ｙｅｓルート）、転送ルール処理部５１１は、不一致リストに登録されている装置番号の中継装置５に対して、不一致解消グループ内番号を設定する（ステップＳ７７）。具体的には、不一致リストに登録されている装置番号でソートし、所定の値（例えば１）を初期値としてソートされた順に連続する番号を設定する。なお、不一致解消グループ内番号は、不一致解消グループに属する各中継装置５において同じ方法で設定されるため、各中継装置５が同一の不一致リストを保持することになる。
【００６３】
そして、転送ルール処理部５１１は、不一致が生じている識別子のハッシュ値（例えば剰余）と不一致解消グループ内番号とを基に、状態管理データ格納部５１３に格納されている不一致リストの中から中継装置５を１つ選択する（ステップＳ７９）。例えば、図１１に示したデータが不一致リストに格納されている場合に、ハッシュ値が「１」であれば、不一致解消グループ内番号が「１」である中継装置５（すなわち、装置番号「３」の中継装置）を選択する。各中継装置５は、同一の不一致リストを用いて、同一の方法によって中継装置５を選択するので、同一の中継装置５が選択される。なお、分散して選択できるような方法であれば、他の選択方法を採用してもよい。
【００６４】
そして、転送ルール処理部５１１は、ステップＳ７９において選択した中継装置５が自装置であるか判断する（ステップＳ８１）。ステップＳ７９において選択した中継装置５が自装置である場合（ステップＳ８１：Ｙｅｓルート）、不一致解消フラグをオンに設定した転送ルール通知を自装置から他の中継装置５に送信する必要があると判断する。そして、転送ルール処理部５１１は、転送ルール送信部５１５に、不一致解消フラグをオンに設定した転送ルール通知をブロードキャストにより他の中継装置５へ送信させる（ステップＳ８３）。なお、転送ルール送信部５１５は、転送ルール処理部５１１からの指示に応じて、転送ルール通知をブロードキャストにより他の中継装置５へ送信する。また、転送ルール送信部５１５は、不一致が生じている識別子と、当該識別子に対応し且つ転送ルール格納部５０７に設定されている転送先アドレスとを転送ルール通知に設定する。また、状態管理データ格納部５１３における不一致リストに登録されている装置番号の数を不一致解消装置数として設定し、自装置の不一致解消グループ内番号をさらに転送ルール通知に設定する。その後、本処理を終了し、元の処理に戻る。
【００６５】
一方、ステップＳ７９において選択した中継装置５が自装置ではない場合（ステップＳ８１：Ｎｏルート）、ステップＳ８３の処理をスキップする。そして、本処理を終了し、元の処理に戻る。従って、この場合は、ステップＳ７９において選択した中継装置５から、不一致解消フラグがオンに設定された転送ルール通知が送信されるのを待つことになる。
【００６６】
以上のような処理を実施することにより、転送ルールの不一致を解消することができるようになる。なお、他の中継装置５からの応答を全て待つことなく、応答受信処理を開始するので、応答待ち時間を削減できる。
【００６７】
次に、図２４を用いて、ステップＳ３５（図１４）において起動した応答待ちタイマがタイムアウトした場合の処理を説明する。例えば転送ルール処理部５１１が、応答待ちタイマのタイムアウトを検出する（図２４：ステップＳ９１）。例えば、自装置に対して転送ルール通知応答を送信してくるはずの中継装置５に何らかの障害が発生し、転送ルール通知応答が送信されなかった場合にタイムアウトを検出する。
【００６８】
そして、転送ルール処理部５１１は、状態管理データ格納部５１３に格納されている状態管理テーブルにおいて通知応答待ちフラグをオフに設定する（ステップＳ９３）。
【００６９】
そして、転送ルール処理部５１１は、状態管理データ格納部５１３に格納されている不一致リストに装置番号が登録されているか判断する（ステップＳ９５）。不一致リストに装置番号が登録されていなければ（ステップＳ９５：Ｎｏルート）、すなわち不一致リストが空の場合には、転送ルールの不一致は生じていないと判断し、ステップＳ９７乃至ステップＳ１０３をスキップする。そして、ステップＳ１０５の処理に移行する。
【００７０】
一方、不一致リストに装置番号が登録されている場合（ステップＳ９５：Ｙｅｓルート）、転送ルール処理部５１１は、不一致リストに登録されている装置番号の中継装置５に対して、不一致解消グループ内番号を設定する（ステップＳ９７）。なお、本ステップの処理は、ステップＳ７７の処理と同じ処理であるため、ここでは説明は省略する。
【００７１】
そして、転送ルール処理部５１１は、不一致が生じている識別子のハッシュ値（例えば剰余）と不一致解消グループ内番号とを基に、状態管理データ格納部５１３に格納されている不一致リストの中から中継装置５を１つ選択する（ステップＳ９９）。なお、本ステップの処理は、ステップＳ７９の処理と同じ処理であるため、ここでは説明は省略する。
【００７２】
そして、転送ルール処理部５１１は、ステップＳ９９において選択した中継装置５が自装置であるか判断する（ステップＳ１０１）。ステップＳ９９において選択した中継装置５が自装置である場合（ステップＳ１０１：Ｙｅｓルート）、不一致解消フラグをオンに設定した転送ルール通知を自装置から他の中継装置５に送信する必要があると判断する。そして、転送ルール処理部５１１は、転送ルール送信部５１５に、不一致解消フラグをオンに設定した転送ルール通知をブロードキャストにより他の中継装置５へ送信させる（ステップＳ１０３）。なお、転送ルール送信部５１５は、転送ルール処理部５１１からの指示に応じて、転送ルール通知をブロードキャストにより他の中継装置５へ送信する。なお、本ステップの処理は、ステップＳ８３の処理と同じ処理であるため、ここでは説明は省略する。その後、ステップＳ１０５の処理に移行する。
【００７３】
一方、ステップＳ９９において選択した中継装置５が自装置ではない場合（ステップＳ１０１：Ｎｏルート）、ステップＳ１０３の処理をスキップし、ステップＳ１０５の処理に移行する。
【００７４】
そして、転送ルール処理部５１１は、所定のエラー処理を実施する（ステップＳ１０５）。例えば、図示しない管理者端末にエラー発生を通知したりする。その後、本処理を終了する。
【００７５】
以上のような処理を実施することにより、何らかの理由で、転送ルール通知応答が送信されなかった場合にも、転送ルールの不一致を解消することができるようになる。
【００７６】
以上本技術の一実施の形態を説明したが、本技術はこれに限定されるものではない。例えば、上で説明した中継装置５の機能ブロック図は必ずしも実際のプログラムモジュール構成に対応するものではない。
【００７７】
また、上で説明した各テーブルの構成は一例であって、必ずしも上記のような構成でなければならないわけではない。さらに、処理フローにおいても、処理結果が変わらなければ処理の順番を入れ替えることも可能である。さらに、並列に実行させるようにしても良い。
【００７８】
なお、上で述べた中継装置５は、コンピュータ装置であって、図２８に示すように、メモリ２５０１とＣＰＵ２５０３とハードディスク・ドライブ（ＨＤＤ）２５０５と表示装置２５０９に接続される表示制御部２５０７とリムーバブル・ディスク２５１１用のドライブ装置２５１３と入力装置２５１５とネットワークに接続するための通信部２５１７（図２８では、２５１７ａ乃至２５１７ｃ）とがバス２５１９で接続されている。なお、場合によっては、表示制御部２５０７、表示装置２５０９、ドライブ装置２５１３、入力装置２５１５は含まれない場合もある。オペレーティング・システム（ＯＳ：Operating System）及び本実施例における処理を実施するためのアプリケーション・プログラムは、ＨＤＤ２５０５に格納されており、ＣＰＵ２５０３により実行される際にはＨＤＤ２５０５からメモリ２５０１に読み出される。必要に応じてＣＰＵ２５０３は、表示制御部２５０７、通信部２５１７、ドライブ装置２５１３を制御して、必要な動作を行わせる。なお、通信部２５１７のいずれかを介して入力されたデータは、他の通信部２５１７を介して出力される。ＣＰＵ２５０３は、通信部２５１７を制御して、適切に出力先を切り替える。また、処理途中のデータについては、メモリ２５０１に格納され、必要があればＨＤＤ２５０５に格納される。本技術の実施例では、上で述べた処理を実施するためのアプリケーション・プログラムはコンピュータ読み取り可能なリムーバブル・ディスク２５１１に格納されて頒布され、ドライブ装置２５１３からＨＤＤ２５０５にインストールされる。インターネットなどのネットワーク及び通信部２５１７を経由して、ＨＤＤ２５０５にインストールされる場合もある。このようなコンピュータ装置は、上で述べたＣＰＵ２５０３、メモリ２５０１などのハードウエアとＯＳ及び必要なアプリケーション・プログラムとが有機的に協働することにより、上で述べたような各種機能を実現する。
【００７９】
例えば、ＣＰＵ２５０３、メモリ２５０１などのハードウエアとＯＳ及び必要なアプリケーション・プログラムとが有機的に協働することにより、上で述べたメッセージ受信部５０１、メッセージ解析部５０３、メッセージ転送先決定部５０５、メッセージ送信部５０９、転送ルール処理部５１１及び転送ルール送信部５１５といった機能が実現される。また、上で述べた転送ルールのデータ（図７）、状態管理テーブル（図８）、応答要否テーブル（図９）、不一致リスト（図１１）、識別ルールのデータ（図１５）は、メモリ２５０１又はＨＤＤ２５０５に格納される。
【００８０】
以上述べた本技術の実施の形態をまとめると以下のとおりになる。
【００８１】
第１の態様に係る中継装置は、クライアントからのメッセージを複数サーバのいずれかに中継する中継処理を分散して行うためのネットワーク構成において用いられる中継装置であって、複数の他の中継装置の各々からブロードキャストにより送信され且つ新たな転送先情報を含む転送ルール通知のうち、自中継装置が応答すべき転送ルール通知の送信元の識別情報を含む応答要否テーブルを格納する状態管理データ格納部（図２５の「状態管理データ格納部」に相当）と、他の中継装置から転送ルール通知を受信した場合、当該他の中継装置の識別情報が応答要否テーブル内に存在するか判断する転送ルール受信手段と（図２５の「転送ルール受信部」に相当）、他の中継装置の識別情報が応答要否テーブル内に存在する場合、受信した転送ルール通知に対する応答を当該他の中継装置に送信する応答送信手段（図２５の「応答送信部」に相当）とを有する。
【００８２】
このようにすれば、自中継装置は、複数の他の中継装置から転送ルール通知を受信しても、応答すべき相手にのみ応答を送信するので、中継装置間で飛び交う応答メッセージを削減できる。
【００８３】
また、転送ルール通知をブロードキャストにより複数の他の中継装置の各々に送信した後に、当該転送ルール通知に対する応答を複数の他の中継装置のいずれか１つから受信した場合、所定の応答受信時動作を開始する手段をさらに有するようにしてもよい。このようにすれば、複数の他の中継装置からの応答を全て待つことなく、応答受信時動作を開始するので、応答待ち時間を削減できる。
【００８４】
さらに、上で述べた転送先情報が、識別子と当該識別子を含むメッセージの転送先となるサーバのアドレスとを含む場合もある。例えば、ある識別子を含む一連のメッセージを同一のサーバに転送できるようになる。
【００８５】
また、転送先情報を格納する転送ルール格納部をさらに有する場合もある。そして、クライアントからのメッセージを受信した場合、受信したメッセージから識別子を抽出し、抽出した識別子を含む転送先情報が転送ルール格納部に格納されているか判断する手段と、抽出した識別子を含む転送先情報が転送ルール格納部に格納されていない場合、抽出した識別子を含むメッセージの転送先となるサーバを決定し、抽出した識別子と転送先として決定されたサーバのアドレスとを含む転送先情報を転送ルール格納部に追加する転送先追加手段と、上記転送先追加手段により追加された転送先情報を含む転送ルール通知をブロードキャストにより複数の他の中継装置の各々に送信する手段とをさらに有するようにしてもよい。例えば、転送先が設定されていない新たな識別子を含むメッセージを受信した場合には、当該メッセージの転送先を決定し、他の中継装置にブロードキャストにより通知するので、各中継装置で転送ルール格納部の同期を取ることができるようになる。
【００８６】
さらに、上で述べた転送ルール受信手段が、受信した転送ルール通知に含まれる転送先情報と同一の転送先情報が転送ルール格納部に格納されているか判断し、当該同一の転送先情報が転送ルール格納部に格納されていなければ、受信した転送ルール通知に含まれる転送先情報を転送ルール格納部に格納する手段を有するようにしてもよい。例えば、他の中継装置によって新たな転送先が決定された場合にも、転送ルール格納部の同期を取ることができるようになる。
【００８７】
また、応答要否テーブル内の送信元の識別情報が、複数の他の中継装置の各々における状態管理データ格納部に格納される応答要否テーブル内の識別情報と重複しないように設定される場合もある。このようにすれば、ある他の中継装置に対しては、自中継装置のみが応答を送信するようになり、応答メッセージを最小限に抑えることができるようになる。
【００８８】
第２の態様に係る情報処理方法は、クライアントからのメッセージを複数サーバのいずれかに中継する中継処理を分散して行うための中継装置により実行される情報処理方法である。そして、本情報処理方法は、他の中継装置からブロードキャストにより送信され且つ新たな転送先情報を含む転送ルール通知を受信した場合、当該他の中継装置の識別情報が、複数の他の中継装置の各々から送信される転送ルール通知のうち、自中継装置が応答すべき転送ルール通知の送信元の識別情報を含む応答要否テーブル内に存在するか判断するステップ（図２６のステップＳ２０１及びＳ２０３に相当）と、他の中継装置の識別情報が応答要否テーブル内に存在する場合、受信した転送ルール通知に対する応答を当該他の中継装置に送信するステップ（図２６のステップＳ２０５に相当）とを含む。
【００８９】
なお、上で述べたような処理を中継装置５に実施させるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブル・ディスク、ＣＤ−ＲＯＭ、光磁気ディスク、半導体メモリ、ハードディスク等のコンピュータ読み取り可能な記憶媒体又は記憶装置に格納される。また、処理途中のデータについては、コンピュータのメモリ等の記憶装置に一時保管される。
【００９０】
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
【００９１】
（付記１）
クライアントからのメッセージを複数サーバのいずれかに中継する中継処理を分散して行うためのネットワーク構成において用いられる中継装置であって、
複数の他の中継装置の各々からブロードキャストにより送信され且つ新たな転送先情報を含む転送ルール通知のうち、自中継装置が応答すべき転送ルール通知の送信元の識別情報を含む応答要否テーブルを格納する状態管理データ格納部と、
前記他の中継装置から前記転送ルール通知を受信した場合、当該他の中継装置の識別情報が前記応答要否テーブル内に存在するか判断する転送ルール受信手段と、
前記他の中継装置の識別情報が前記応答要否テーブル内に存在する場合、受信した前記転送ルール通知に対する応答を当該他の中継装置に送信する応答送信手段と、
を有する中継装置。
【００９２】
（付記２）
前記転送ルール通知をブロードキャストにより前記複数の他の中継装置の各々に送信した後に、当該転送ルール通知に対する応答を前記複数の他の中継装置のいずれか１つから受信した場合、所定の応答受信時動作を開始する手段
をさらに有する付記１記載の中継装置。
【００９３】
（付記３）
前記転送先情報が、識別子と当該識別子を含むメッセージの転送先となる前記サーバのアドレスとを含む
付記１又は２のいずれか１つ記載の中継装置。
【００９４】
（付記４）
前記転送先情報を格納する転送ルール格納部と、
前記クライアントからのメッセージを受信した場合、受信したメッセージから識別子を抽出し、抽出した識別子を含む前記転送先情報が前記転送ルール格納部に格納されているか判断する手段と、
抽出した識別子を含む前記転送先情報が前記転送ルール格納部に格納されていない場合、抽出した識別子を含むメッセージの転送先となる前記サーバを決定し、抽出した識別子と転送先として決定された前記サーバのアドレスとを含む前記転送先情報を前記転送ルール格納部に追加する転送先追加手段と、
前記転送先追加手段により追加された前記転送先情報を含む前記転送ルール通知をブロードキャストにより前記複数の他の中継装置の各々に送信する手段と、
をさらに有する付記３記載の中継装置。
【００９５】
（付記５）
前記転送ルール受信手段が、
受信した前記転送ルール通知に含まれる前記転送先情報と同一の転送先情報が前記転送ルール格納部に格納されているか判断し、当該同一の転送先情報が前記転送ルール格納部に格納されていなければ、受信した前記転送ルール通知に含まれる前記転送先情報を前記転送ルール格納部に格納する手段
を有する付記４記載の中継装置。
【００９６】
（付記６）
前記応答要否テーブル内の前記送信元の識別情報が、前記複数の他の中継装置の各々における前記状態管理データ格納部に格納される前記応答要否テーブル内の識別情報と重複しないように設定される
付記１乃至５のいずれか１つ記載の中継装置。
【００９７】
（付記７）
クライアントからのメッセージを複数サーバのいずれかに中継する中継処理を分散して行うための中継装置に、
他の中継装置からブロードキャストにより送信され且つ新たな転送先情報を含む転送ルール通知を受信した場合、当該他の中継装置の識別情報が、複数の他の中継装置の各々から送信される前記転送ルール通知のうち、自中継装置が応答すべき転送ルール通知の送信元の識別情報を含む応答要否テーブル内に存在するか判断するステップと、
前記他の中継装置の識別情報が前記応答要否テーブル内に存在する場合、受信した前記転送ルール通知に対する応答を当該他の中継装置に送信するステップと、
を実行させるためのプログラム。
【００９８】
（付記８）
クライアントからのメッセージを複数サーバのいずれかに中継する中継処理を分散して行うための中継装置により実行される情報処理方法であって、
他の中継装置からブロードキャストにより送信され且つ新たな転送先情報を含む転送ルール通知を受信した場合、当該他の中継装置の識別情報が、複数の他の中継装置の各々から送信される前記転送ルール通知のうち、自中継装置が応答すべき転送ルール通知の送信元の識別情報を含む応答要否テーブル内に存在するか判断するステップと、
前記他の中継装置の識別情報が前記応答要否テーブル内に存在する場合、受信した前記転送ルール通知に対する応答を当該他の中継装置に送信するステップと、
を含み、中継装置により実行される情報処理方法。
【符号の説明】
【００９９】
１Ａ，１Ｂ  クライアント    ３  ＬＢ
５Ａ，５Ｂ，５Ｃ  中継装置    ７Ａ，７Ｂ  ＡＰＬサーバ
５０１  メッセージ受信部    ５０３  メッセージ解析部
５０５  メッセージ転送先決定部    ５０７  転送ルール格納部
５０９  メッセージ送信部    ５１１  転送ルール処理部
５１３  状態管理データ格納部    ５１５  転送ルール送信部
【図１】
2011039681.tif 000003
【図２】
2011039681.tif 000004
【図３】
2011039681.tif 000005
【図４】
2011039681.tif 000006
【図５】
2011039681.tif 000007
【図６】
2011039681.tif 000008
【図７】
2011039681.tif 000009
【図８】
2011039681.tif 000010
【図９】
2011039681.tif 000011
【図１０】
2011039681.tif 000012
【図１１】
2011039681.tif 000013
【図１２】
2011039681.tif 000014
【図１３】
2011039681.tif 000015
【図１４】
2011039681.tif 000016
【図１５】
2011039681.tif 000017
【図１６】
2011039681.tif 000018
【図１７】
2011039681.tif 000019
【図１８】
2011039681.tif 000020
【図１９】
2011039681.tif 000021
【図２０】
2011039681.tif 000022
【図２１】
2011039681.tif 000023
【図２２】
2011039681.tif 000024
【図２３】
2011039681.tif 000025
【図２４】
2011039681.tif 000026
【図２５】
2011039681.tif 000027
【図２６】
2011039681.tif 000028
【図２７】
2011039681.tif 000029
【図２８】
2011039681.tif 000030