(57)【特許請求の範囲】
【請求項１】
転送すべきメッセージを受信する受信部と、
前記転送すべきメッセージを変換処理する場合に、自ら当該変換処理を行う余裕があるか否かを判定する判定部と、
自ら前記変換処理を行う余裕がない場合に、記憶部に記憶され、且つ前記変換処理を行う余裕がある他の装置を示す情報に基づいて、前記変換処理を依頼する他の装置を選定する選定部と、
選定された前記他の装置に対して、前記変換処理の依頼を認容するか拒否するかを確認する第一メッセージを送信し、当該第一メッセージに応答する第二メッセージを受信する通信部と、
前記第二メッセージが認容を示す場合に、選定された前記他の装置に対して前記転送すべきメッセージの前記変換処理を依頼し、選定された前記他の装置から変換されたメッセージを受信し、
前記第二メッセージが拒否を示す場合に、前記第二メッセージの送信元の装置を示す情報を、前記変換処理を行う余裕がある他の装置を示す情報から除外する依頼部と、
受信した変換後のメッセージを転送先に送信する送信部と、
を有するメッセージ中継装置。
【請求項２】
転送すべきメッセージを受信する受信部と、
前記転送すべきメッセージを変換処理する場合に、自ら当該変換処理を行う余裕があるか否かを判定する判定部と、
自ら前記変換処理を行う余裕がない場合に、記憶部に記憶され、且つ前記変換処理を行う余裕がある他の装置を示す情報に基づいて、前記変換処理を依頼する他の装置を選定する選定部と、
選定された前記他の装置に対して、前記変換処理の依頼を認容するか拒否するかを確認する第一メッセージを送信し、当該第一メッセージに応答する第二メッセージを受信する通信部と、
前記第二メッセージが認容を示す場合に、選定された前記他の装置に対して前記転送すべきメッセージの前記変換処理を依頼し、選定された前記他の装置から変換されたメッセージを受信する依頼部と、
受信した変換後のメッセージを転送先に送信する送信部と、
を有し、
前記通信部は、前記第二メッセージが拒否を示す場合に、前記第二メッセージの送信元の装置を示す情報を、前記変換処理を行う余裕がある他の装置を示す情報から除外する旨の削除メッセージを同時通報する
メッセージ中継装置。
【請求項３】
転送すべきメッセージを受信する受信部と、
前記転送すべきメッセージを変換処理する場合に、自ら当該変換処理を行う余裕があるか否かを判定する判定部と、
自ら前記変換処理を行う余裕がない場合に、記憶部に記憶され、且つ前記変換処理を行う余裕がある他の装置を示す情報に基づいて、前記変換処理を依頼する他の装置を選定する選定部と、
選定された前記他の装置に対して前記転送すべきメッセージの前記変換処理を依頼し、選定された前記他の装置から変換されたメッセージを受信する依頼部と、
受信した変換後のメッセージを転送先に送信する送信部と、
を有し、
前記選定部は、特定の装置を前記変換処理を行う余裕がある他の装置を示す情報から除外すべき旨の削除メッセージを受信した場合に、当該特定の装置を前記変換処理を行う余裕がある他の装置を示す情報から除外する
メッセージ中継装置。
【請求項４】
転送すべきメッセージを受信する受信部と、
前記転送すべきメッセージを変換処理する場合に、自ら当該変換処理を行う余裕があるか否かを判定する判定部と、
自ら前記変換処理を行う余裕がない場合に、記憶部に記憶され、且つ前記変換処理を行う余裕がある他の装置を示す情報に基づいて、前記変換処理を依頼する他の装置を選定する選定部と、
選定された前記他の装置に対して前記転送すべきメッセージの前記変換処理を依頼し、選定された前記他の装置から変換されたメッセージを受信する依頼部と、
受信した変換後のメッセージを転送先に送信する送信部と、
を有し、
前記選定部は、前記他の装置から依頼を拒否するメッセージを受信した場合に、当該依頼を拒否するメッセージの送信元の装置を示す情報を、前記変換処理を行う余裕がある他の装置を示す情報から除外する
メッセージ中継装置。
【請求項５】
転送すべきメッセージを受信する受信部と、
前記転送すべきメッセージを変換処理する場合に、自ら当該変換処理を行う余裕があるか否かを判定する判定部と、
自ら前記変換処理を行う余裕がない場合に、記憶部に記憶され、且つ前記変換処理を行う余裕がある他の装置を示す情報に基づいて、前記変換処理を依頼する他の装置を選定する選定部と、
選定された前記他の装置に対して前記転送すべきメッセージの前記変換処理を依頼し、選定された前記他の装置から変換されたメッセージを受信する依頼部と、
受信した変換後のメッセージを転送先に送信する送信部と、
前記他の装置から依頼を拒否するメッセージを受信した場合に、当該依頼を拒否するメッセージの送信元の装置を示す情報を、前記変換処理を行う余裕がある他の装置を示す情報から除外する旨の削除メッセージを同時通報する通信部と、
を有するメッセージ中継装置。
【請求項６】
転送すべきメッセージを受信する処理と、
前記転送すべきメッセージを変換処理する場合に、自ら当該変換処理を行う余裕があるか否かを判定する処理と、
自ら前記変換処理を行う余裕がない場合に、記憶部に記憶され、且つ前記変換処理を行う余裕がある他の装置を示す情報に基づいて、前記変換処理を依頼する他の装置を選定する処理と、
選定された前記他の装置に対して、前記変換処理の依頼を認容するか拒否するかを確認する第一メッセージを送信し、当該第一メッセージに応答する第二メッセージを受信する処理と、
前記第二メッセージが認容を示す場合に、選定された前記他の装置に対して前記転送すべきメッセージの前記変換処理を依頼し、選定された前記他の装置から変換されたメッセージを受信する処理と、
前記第二メッセージが拒否を示す場合に、前記第二メッセージの送信元の装置を示す情報を、前記変換処理を行う余裕がある他の装置を示す情報から除外する処理と、
受信した変換後のメッセージを転送先に送信する処理と
を含み、コンピュータが実行するメッセージ中継方法。
【請求項７】
転送すべきメッセージを受信する処理と、
前記転送すべきメッセージを変換処理する場合に、自ら当該変換処理を行う余裕があるか否かを判定する処理と、
自ら前記変換処理を行う余裕がない場合に、記憶部に記憶され、且つ前記変換処理を行う余裕がある他の装置を示す情報に基づいて、前記変換処理を依頼する他の装置を選定する処理と、
選定された前記他の装置に対して、前記変換処理の依頼を認容するか拒否するかを確認する第一メッセージを送信し、当該第一メッセージに応答する第二メッセージを受信する処理と、
前記第二メッセージが認容を示す場合に、選定された前記他の装置に対して前記転送すべきメッセージの前記変換処理を依頼し、選定された前記他の装置から変換されたメッセージを受信する処理と、
受信した変換後のメッセージを転送先に送信する処理と、
前記第二メッセージが拒否を示す場合に、前記第二メッセージの送信元の装置を示す情報を、前記変換処理を行う余裕がある他の装置を示す情報から除外する旨の削除メッセージを同時通報する処理と
を含み、コンピュータが実行するメッセージ中継方法。
【請求項８】
転送すべきメッセージを受信する処理と、
前記転送すべきメッセージを変換処理する場合に、自ら当該変換処理を行う余裕があるか否かを判定する処理と、
自ら前記変換処理を行う余裕がない場合に、記憶部に記憶され、且つ前記変換処理を行う余裕がある他の装置を示す情報に基づいて、前記変換処理を依頼する他の装置を選定する処理と、
選定された前記他の装置に対して前記転送すべきメッセージの前記変換処理を依頼し、選定された前記他の装置から変換されたメッセージを受信する処理と、
受信した変換後のメッセージを転送先に送信する処理と、
特定の装置を前記変換処理を行う余裕がある他の装置を示す情報から除外すべき旨の削除メッセージを受信した場合に、当該特定の装置を前記変換処理を行う余裕がある他の装置を示す情報から除外する処理と
を含み、コンピュータが実行するメッセージ中継方法。
【請求項９】
転送すべきメッセージを受信する処理と、
前記転送すべきメッセージを変換処理する場合に、自ら当該変換処理を行う余裕があるか否かを判定する処理と、
自ら前記変換処理を行う余裕がない場合に、記憶部に記憶され、且つ前記変換処理を行う余裕がある他の装置を示す情報に基づいて、前記変換処理を依頼する他の装置を選定する処理と、
選定された前記他の装置に対して前記転送すべきメッセージの前記変換処理を依頼し、選定された前記他の装置から変換されたメッセージを受信する処理、
受信した変換後のメッセージを転送先に送信する処理と、
前記他の装置から依頼を拒否するメッセージを受信した場合に、当該依頼を拒否するメッセージの送信元の装置を示す情報を、前記変換処理を行う余裕がある他の装置を示す情報から除外する処理と
を含み、コンピュータが実行するメッセージ中継方法。
【請求項１０】
転送すべきメッセージを受信する処理と、
前記転送すべきメッセージを変換処理する場合に、自ら当該変換処理を行う余裕があるか否かを判定する処理と、
自ら前記変換処理を行う余裕がない場合に、記憶部に記憶され、且つ前記変換処理を行う余裕がある他の装置を示す情報に基づいて、前記変換処理を依頼する他の装置を選定する処理と、
選定された前記他の装置に対して前記転送すべきメッセージの前記変換処理を依頼し、選定された前記他の装置から変換されたメッセージを受信する処理と、
受信した変換後のメッセージを転送先に送信する処理と、
前記他の装置から依頼を拒否するメッセージを受信した場合に、当該依頼を拒否するメッセージの送信元の装置を示す情報を、前記変換処理を行う余裕がある他の装置を示す情報から除外する旨の削除メッセージを同時通報する処理と
を含み、コンピュータが実行するメッセージ中継方法。
【請求項１１】
転送すべきメッセージを受信する処理と、
前記転送すべきメッセージを変換処理する場合に、自ら当該変換処理を行う余裕があるか否かを判定する処理と、
自ら前記変換処理を行う余裕がない場合に、記憶部に記憶され、且つ前記変換処理を行う余裕がある他の装置を示す情報に基づいて、前記変換処理を依頼する他の装置を選定する処理と、
選定された前記他の装置に対して、前記変換処理の依頼を認容するか拒否するかを確認する第一メッセージを送信し、当該第一メッセージに応答する第二メッセージを受信する処理と、
前記第二メッセージが認容を示す場合に、選定された前記他の装置に対して前記転送すべきメッセージの前記変換処理を依頼し、選定された前記他の装置から変換されたメッセージを受信する処理と、
前記第二メッセージが拒否を示す場合に、前記第二メッセージの送信元の装置を示す情報を、前記変換処理を行う余裕がある他の装置を示す情報から除外する処理と、
受信した変換後のメッセージを転送先に送信する処理と
を、コンピュータに実行させるためのプログラム。
【請求項１２】
転送すべきメッセージを受信する処理と、
前記転送すべきメッセージを変換処理する場合に、自ら当該変換処理を行う余裕があるか否かを判定する処理と、
自ら前記変換処理を行う余裕がない場合に、記憶部に記憶され、且つ前記変換処理を行う余裕がある他の装置を示す情報に基づいて、前記変換処理を依頼する他の装置を選定する処理と、
選定された前記他の装置に対して、前記変換処理の依頼を認容するか拒否するかを確認する第一メッセージを送信し、当該第一メッセージに応答する第二メッセージを受信する処理と、
前記第二メッセージが認容を示す場合に、選定された前記他の装置に対して前記転送すべきメッセージの前記変換処理を依頼し、選定された前記他の装置から変換されたメッセージを受信する処理と、
受信した変換後のメッセージを転送先に送信する処理と、
前記第二メッセージが拒否を示す場合に、前記第二メッセージの送信元の装置を示す情報を、前記変換処理を行う余裕がある他の装置を示す情報から除外する旨の削除メッセージを同時通報する処理と
を、コンピュータに実行させるためのプログラム。
【請求項１３】
転送すべきメッセージを受信する処理と、
前記転送すべきメッセージを変換処理する場合に、自ら当該変換処理を行う余裕があるか否かを判定する処理と、
自ら前記変換処理を行う余裕がない場合に、記憶部に記憶され、且つ前記変換処理を行う余裕がある他の装置を示す情報に基づいて、前記変換処理を依頼する他の装置を選定する処理と、
選定された前記他の装置に対して前記転送すべきメッセージの前記変換処理を依頼し、選定された前記他の装置から変換されたメッセージを受信する処理と、
受信した変換後のメッセージを転送先に送信する処理と、
特定の装置を前記変換処理を行う余裕がある他の装置を示す情報から除外すべき旨の削除メッセージを受信した場合に、当該特定の装置を前記変換処理を行う余裕がある他の装置を示す情報から除外する処理と
を、コンピュータに実行させるためのプログラム。
【請求項１４】
転送すべきメッセージを受信する処理と、
前記転送すべきメッセージを変換処理する場合に、自ら当該変換処理を行う余裕があるか否かを判定する処理と、
自ら前記変換処理を行う余裕がない場合に、記憶部に記憶され、且つ前記変換処理を行う余裕がある他の装置を示す情報に基づいて、前記変換処理を依頼する他の装置を選定する処理と、
選定された前記他の装置に対して前記転送すべきメッセージの前記変換処理を依頼し、選定された前記他の装置から変換されたメッセージを受信する処理と、
受信した変換後のメッセージを転送先に送信する処理と、
前記他の装置から依頼を拒否するメッセージを受信した場合に、当該依頼を拒否するメッセージの送信元の装置を示す情報を、前記変換処理を行う余裕がある他の装置を示す情報から除外する処理と
を、コンピュータに実行させるためのプログラム。
【請求項１５】
転送すべきメッセージを受信する処理と、
前記転送すべきメッセージを変換処理する場合に、自ら当該変換処理を行う余裕があるか否かを判定する処理と、
自ら前記変換処理を行う余裕がない場合に、記憶部に記憶され、且つ前記変換処理を行う余裕がある他の装置を示す情報に基づいて、前記変換処理を依頼する他の装置を選定する処理と、
選定された前記他の装置に対して前記転送すべきメッセージの前記変換処理を依頼し、選定された前記他の装置から変換されたメッセージを受信する処理と、
受信した変換後のメッセージを転送先に送信する処理と、
前記他の装置から依頼を拒否するメッセージを受信した場合に、当該依頼を拒否するメッセージの送信元の装置を示す情報を、前記変換処理を行う余裕がある他の装置を示す情報から除外する旨の削除メッセージを同時通報する処理と
を、コンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本技術は、データ変換を伴う、メッセージの中継技術に関する。
【背景技術】
【０００２】
近年、企業のＩＴ（Information Technology）システムやデータセンターにおいて、アプリケーションとアプリケーションのデータのやり取りに、ＳＯＡＰ（Simple Object Access Protocol）に代表されるＸＭＬ（eXtensible Markup Language）メッセージを利用するのが一般的となりつつある。
【０００３】
このようなシステムにおいて、アプリケーション同士が同じフォーマットのＸＭＬメッセージを処理する場合には問題無いが、異なるフォーマットのＸＭＬメッセージを処理する場合には、いずれかのアプリケーションを変更するか、アプリケーション間にメッセージの変換を行うメッセージ中継装置を設けることで対処することになる。
【０００４】
ここで、後者を選択したとして、メッセージ中継装置は、典型的には、メッセージの変換処理を高速化するために専用の演算装置（例えば、ＸＭＬアクセラレータ）を搭載し、ＸＭＬ変換処理は、専用の演算装置で行い、転送処理については汎用のプロセッサが行う。
【０００５】
それでもなお、ＸＭＬ変換処理の処理負荷は高くなりがちで、大規模システムでは、メッセージ中継装置がボトルネックとなる可能性がある。そのため、レイヤ４スイッチ（Ｌ４ＳＷ）及び複数のメッセージ中継装置を導入することでメッセージ中継装置の負荷分散を行い、システム全体のスループットを向上させようとしている。
【０００６】
このとき、レイヤ４スイッチの負荷分散はメッセージ中継装置における汎用プロセッサの負荷に基づいて行われているので、専用の演算装置に対する負荷のバランスについては考慮されない。このため、システム全体のスループットが低下する問題が起こりうる。具体的には、メッセージによってＸＭＬ変換の内容が異なるため、ＸＭＬ変換処理が少ないメッセージばかり１つのメッセージ中継装置に割り振られたり、逆にＸＭＬ変換処理の処理量が多いメッセージばかり１つのメッセージ中継装置に割り振られたりする場合に、非効率が生じる恐れがある。
【先行技術文献】
【特許文献】
【０００７】
【特許文献１】特開平０７−２５３９５１号公報
【特許文献２】特開平０８−２２１３７２号公報
【特許文献３】特開２０００−０１０９３７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００８】
従って、本技術の目的は、一側面では、異なるフォーマットのメッセージを変換した上で中継する場合においても、システム全体において高いスループットを実現するための技術を提供することである。
【課題を解決するための手段】
【０００９】
本技術の一側面に係るメッセージ中継装置は、（Ａ）転送すべきメッセージを受信する受信部と、（Ｂ）転送すべきメッセージを変換処理する場合に、自ら当該変換処理を行う余裕があるか否かを判定する判定部と、（Ｃ）自ら変換処理を行う余裕がない場合に、記憶部に記憶され、且つ変換処理を行う余裕がある他の装置を示す情報に基づいて、変換処理を依頼する他の装置を選定する選定部と、（Ｄ）選定された他の装置に対して転送すべきメッセージの変換処理を依頼し、選定された他の装置から変換されたメッセージを受信する依頼部と、（Ｅ）受信した変換後のメッセージを転送先に送信する送信部とを含む。
【発明の効果】
【００１０】
異なるフォーマットのメッセージを変換した上で中継するシステムにおいて、全体としてのスループットを高めることができる。
【図面の簡単な説明】
【００１１】
【図１】図１は、ＸＭＬメッセージを転送する装置間のネットワーク構成の例を示す図である。
【図２】図２は、実施の形態１におけるシーケンスの第一例を示す図である。
【図３】図３は、リクエストメッセージの例を示す図である。
【図４】図４は、探索メッセージの例を示す図である。
【図５】図５は、宣言メッセージの例を示す図である。
【図６】図６は、確認メッセージの例を示す図である。
【図７】図７は、応答メッセージの例を示す図である。
【図８】図８は、実施の形態１におけるシーケンスの第二例を示す図である。
【図９】図９は、削除メッセージの例を示す図である。
【図１０】図１０は、実施の形態１におけるメッセージ中継装置の構成例を示す図である。
【図１１】図１１は、転送先格納部のデータの例を示す図である。
【図１２】図１２は、変換ルール格納部のデータの例を示す図である。
【図１３】図１３は、空きノードエントリの例を示す図である。
【図１４】図１４は、実施の形態１における受信部と転送管理部と送信部の処理フローの例を示す図である。
【図１５】図１５は、メッセージ制御情報の例を示す図である。
【図１６】図１６は、実施の形態１における判定部の処理フローの例を示す図である。
【図１７】図１７は、実施の形態１における判定部の処理フローの例を示す図である。
【図１８】図１８は、実施の形態１における選定部と通信部の処理フローの例を示す図である。
【図１９】図１９は、実施の形態１における選定部と通信部の処理フローの例を示す図である。
【図２０】図２０は、変換要求メッセージの例を示す図である。
【図２１】図２１は、実施の形態１におけるメッセージ中継装置の構成例を示す図である。
【図２２】図２２は、実施の形態１におけるＸＭＬ変換部と外部受付部の処理フローの例を示す図である。
【図２３】図２３は、変換結果メッセージの例を示す図である。
【図２４】図２４は、実施の形態１における選定部と通信部の処理フローの例を示す図である。
【図２５】図２５は、実施の形態１における選定部と通信部の処理フローの例を示す図である。
【図２６】図２６は、実施の形態２におけるシーケンスの第一例を示す図である。
【図２７】図２７は、実施の形態２における応答メッセージ（許可）の例を示す図である。
【図２８】図２８は、実施の形態２におけるシーケンスの第二例を示す図である。
【図２９】図２９は、実施の形態２におけるメッセージ中継装置の構成例を示す図である。
【図３０】図３０は、実施の形態２における判定部の処理フローの例を示す図である。
【図３１】図３１は、実施の形態２における選定部と通信部の処理フローの例を示す図である。
【図３２】図３２は、コンピュータの機能ブロック図である。
【発明を実施するための形態】
【００１２】
［実施の形態１］
図１に、ＸＭＬメッセージを転送する装置間のネットワーク構成の例を示す。この例では、クライアント１（図中１ａ〜１ｃ）とスイッチ装置３（例えば、Ｌ４ＳＷ(レイヤ４スイッチ)）は、インターネットを介して接続されている。更に、スイッチ装置３とメッセージ中継装置５（図中５ａ〜５ｄ）とサーバ７（図中７ａ〜７ｄ）は、ＬＡＮ（Local Area Network）を介して接続されている。サーバ７は、例えば、クライアント１に対してアプリケーションサービスを提供するサーバである。この例では、各サーバ７は、異なるフォーマットのＸＭＬメッセージを処理の対象としていることを想定している。
【００１３】
次に、図２を用いて、本実施の形態におけるシーケンスの第一例について説明する。クライアント１は、サーバ７ａに対してリクエストメッセージを発信する（ステップ（１））。クライアント１とサーバ７の間は、スイッチ装置３とメッセージ中継装置５を介して仮想化されているので、リクエストメッセージは、最初にスイッチ装置３で受信される。スイッチ装置３は、いずれかのメッセージ中継装置５を選定して、選定したメッセージ中継装置５にリクエストメッセージを転送する（ステップ（２））。この例では、スイッチ装置３は、メッセージ中継装置５ａを選定している。スイッチ装置３は、例えば、各メッセージ中継装置５の処理状況に応じて、いずれかのメッセージ中継装置５を選定する。スイッチ装置３は、例えば汎用プロセッサの処理能力に余裕があるメッセージ中継装置５を選択する。そのために、メッセージ中継装置５から処理状況の情報（例えば、汎用プロセッサの稼働率、メモリの使用率など）を取得することがある。
【００１４】
ここで、リクエストメッセージのデータ変換について触れる。転送されたリクエストメッセージを受信したメッセージ中継装置５は、受信したリクエストメッセージを転送先のサーバ７の処理対象の形式にデータ変換して、サーバ７に転送する。その際、自らデータ変換を行う処理能力に余裕がない場合には、他のメッセージ中継装置５に対してデータ変換を依頼する。
【００１５】
本実施の形態では、依頼先となる他のメッセージ中継装置５の選定を行うために、各メッセージ中継装置５は、データ変換を行う処理能力に余裕ある他のメッセージ中継装置５の情報を保持する。そして、この情報に基づいて、データ変換を行う処理能力に余裕ある他のメッセージ中継装置５を選定し、選定した他のメッセージ中継装置５に対して、メッセージのデータ変換を依頼する。
【００１６】
図２のシーケンスの例に戻って、リクエストメッセージを受信したメッセージ中継装置５ａは、自らデータ変換を行う処理能力に余裕がないと判定する。更に、メッセージ中継装置５ａは、データ変換を行う処理能力に余裕ある他のメッセージ中継装置５の情報を保持していない。そこで、メッセージ中継装置５ａは、まずデータ変換を行う処理能力に余裕ある他のメッセージ中継装置５を探索するために、メッセージ（以下、探索メッセージという。）を他のメッセージ中継装置５ｂ、５ｃ、５ｄに対して、同時通報する（ステップ（３））。
【００１７】
探索メッセージを受信したメッセージ中継装置５（この例では、メッセージ中継装置５ｂとメッセージ中継装置５ｃとメッセージ中継装置５ｄ）は、それぞれに自らデータ変換を行う処理能力に余裕があるか否かを判定する。そして、自らデータ変換を行う処理能力に余裕があると判定した場合には、自らデータ変換を行う処理能力に余裕があることを宣言するメッセージ（以下、宣言メッセージという。）を、自身以外のメッセージ中継装置５に対して同時通報する（ステップ（４））。図２の例では、メッセージ中継装置５ｂは、自らデータ変換を行う処理能力に余裕があると判定し、自身以外のメッセージ中継装置５ａとメッセージ中継装置５ｃとメッセージ中継装置５ｄに対して宣言メッセージを同時通報する。また、メッセージ中継装置５ｄも、自らデータ変換を行う処理能力に余裕があると判定し、自身以外のメッセージ中継装置５ａとメッセージ中継装置５ｂとメッセージ中継装置５ｃに対して宣言メッセージを同時通報する。一方、メッセージ中継装置５ｃは、自らデータ変換を行う処理能力に余裕がないと判定し、宣言メッセージを同時通報しない。
【００１８】
宣言メッセージを受信したメッセージ中継装置５は、宣言メッセージの送信元であるメッセージ中継装置５を特定し、特定したメッセージ中継装置５の情報をデータ変換を行う処理能力に余裕がある他のメッセージ中継装置５の情報として保持するように動作する。例えば、メッセージ中継装置５ｂによる宣言メッセージの同時通報によって、メッセージ中継装置５ａとメッセージ中継装置５ｃとメッセージ中継装置５ｄは、それぞれ中継装置５ｂの情報をデータ変換を行う処理能力に余裕がある他のメッセージ中継装置５の情報に加える。更に、メッセージ中継装置５ｄによる宣言メッセージの同時通報によって、メッセージ中継装置５ａとメッセージ中継装置５ｂとメッセージ中継装置５ｃは、それぞれメッセージ中継装置５ｄの情報をデータ変換を行う処理能力に余裕がある他のメッセージ中継装置５の情報に加える。
【００１９】
このようにして、データ変換を行う処理能力に余裕ある他のメッセージ中継装置５の情報を得たメッセージ中継装置５ａは、データ変換を依頼する候補であるメッセージ中継装置５を選定する。メッセージ中継装置５が保持する情報に、データ変換を行う処理能力に余裕ある他のメッセージ中継装置５を複数含む場合には、何れかのメッセージ中継装置５を選択する。この例では、メッセージ中継装置５ａは、情報に含まれるメッセージ中継装置５ｂと５ｄのうち、メッセージのデータ変換を依頼する候補としてメッセージ中継装置５ｄを選択する。
【００２０】
そして、メッセージ中継装置５ａは、メッセージのデータ変換を依頼する前に、候補であるメッセージ中継装置５ｄに対して、メッセージのデータ変換の依頼を許可するか拒否するかを確認するメッセージ（以下、確認メッセージという。）を送信する（ステップ（５））。
【００２１】
確認メッセージを受信したメッセージ中継装置５ｄは、改めて現在自らデータ変換を行う処理能力に余裕があるか否かを判定する。このシーケンスの例では、メッセージ中継装置５ｄは、データ変換を行う処理能力に余裕があると判定し、許可の旨を示す応答メッセージを、確認メッセージの送信元であるメッセージ中継装置５ａに返信する（ステップ（６））。
【００２２】
そして、メッセージ中継装置５ａは、許可の旨を示す応答メッセージを受信すると、許可したメッセージ中継装置５ｄに対して、データ変換を依頼する変換要求メッセージを送信する（ステップ（７））。変換要求メッセージは、変換対象である元メッセージと元メッセージに対する制御情報を含む。
【００２３】
変換要求メッセージを受信したメッセージ中継装置５ｄは、受信した変換要求メッセージに含まれる元メッセージをデータ変換し、変換結果メッセージを、変換要求メッセージの送信元であるメッセージ中継装置５ａに返信する（ステップ（８））。変換結果メッセージは、変換した結果である変換メッセージと変換メッセージの制御情報を含む。
【００２４】
変換結果メッセージを受信したメッセージ中継装置５ａは、受信した変換結果メッセージに含まれる変換メッセージを抽出し、抽出した変換メッセージを転送先であるサーバ７ａに送信する（ステップ（９））。
【００２５】
変換メッセージを受信したサーバ７ａは、通常のリクエストメッセージを受信したときと同様に、受信したメッセージに対して自らのサービス処理を施すように動作する。また、サーバ７ａはクライアント１に対してレスポンスを送出する(ステップ（１０）)。送出されたレスポンスは、仮想化された経路に従って、メッセージ中継装置５ａとスイッチ装置３を介して、クライアント１に転送される。
【００２６】
ここで、上述のシーケースで転送される各メッセージについて説明する。図３に、リクエストメッセージの例を示す。リクエストメッセージは、ＩＰ（Internet Protocol）ヘッダと、ＴＣＰ（Transmission Control Protocol）ヘッダと、ＨＴＴＰ（HyperText Transfer Protocol）ヘッダと、ＨＴＴＰボディとを有している。ＨＴＴＰヘッダには、リクエストＵＲＩ（Uniform Resource Identifier）が含まれている。この例では、リクエストＵＲＩは、「/SEVICE/A1」と示されている。また、ＨＴＴＰボディは、ＸＭＬの形式に従って記述されている。
【００２７】
次に、図４に探索メッセージの例を示す。探索メッセージには、メッセージタイプとして、探索メッセージであることを識別する情報が含まれている。更に、探索メッセージの送信元のノードを特定する情報が含まれている。この例では、メッセージ中継装置５ａのアドレスが含まれている。
【００２８】
次に、図５に宣言メッセージの例を示す。宣言メッセージには、メッセージタイプとして、宣言メッセージであることを識別する情報が含まれている。更に、宣言メッセージの送信元のノードを特定する情報が含まれている。この例では、メッセージ中継装置５ｂのアドレスが含まれている。
【００２９】
次に、図６に確認メッセージの例を示す。確認メッセージには、メッセージタイプとして、確認メッセージであることを識別する情報が含まれている。更に、確認メッセージを送信する依頼元ノードを特定する情報が含まれている。この例では、メッセージ中継装置５ａのアドレスが含まれている。また、確認メッセージを受信する候補ノードを特定する情報が含まれている。この例では、メッセージ中継装置５ｂのアドレスが含まれている。
【００３０】
次に、図７に、応答メッセージの例を示す。応答メッセージには、メッセージタイプとして、応答メッセージであることを識別する情報が含まれている。更に、応答の元となった確認メッセージの依頼元のノードを特定する情報が含まれている。この例では、メッセージ中継装置５ａのアドレスが含まれている。また、応答の元となった確認メッセージの候補ノードを特定する情報が含まれている。この例では、メッセージ中継装置５ｂのアドレスが含まれている。また、応答メッセージは、候補ノードをメッセージのデータ変換処理を行うリソースとして使用することを許可するか、あるいは拒否するかを示す情報も含んでいる。
【００３１】
続いて、宣言メッセージを送出したメッセージ中継装置５が、その後にデータ変換を行う処理能力の余裕を失う場合を想定する。図８に、実施の形態１におけるシーケンスの第二例を示す。この例は、候補ノードが、自らデータ変換を行う処理能力に余裕がないと判定し、メッセージのデータ変換処理を行うリソースとして使用されることを拒否する場合のシーケンスを示している。
【００３２】
メッセージ中継装置５ａは、シーケンスの第一例と同様に、データ変換を依頼する候補として、メッセージ中継装置５ｄを選定する。図２に示したステップ（１）〜（４）の動作は同様であるので、説明を省略する。
【００３３】
そして、メッセージ中継装置５ａは、メッセージのデータ変換を依頼する前に、候補であるメッセージ中継装置５ｄに対して、メッセージのデータ変換の依頼を許可するか拒否するかを確認する確認メッセージを送信する（ステップ（１１））。
【００３４】
確認メッセージを受信したメッセージ中継装置５ｄは、改めて現在自らデータ変換を行う処理能力に余裕があるか否かを判定する。このシーケンスの例では、メッセージ中継装置５ｄは、データ変換を行う処理能力に余裕がないと判定し、拒否の旨を示す応答メッセージを確認メッセージの送信元であるメッセージ中継装置５ａに返信する（ステップ（１２））。
【００３５】
そして、メッセージ中継装置５ａは、拒否の旨を示す応答メッセージを受信すると、データ変換を行う処理能力に余裕ある他のメッセージ中継装置５の情報から、拒否の旨を示す応答メッセージの送信元であるメッセージ中継装置５ｄの情報を削除する。更に、メッセージ中継装置５ｄの情報をデータ変換を行う処理能力に余裕ある他のメッセージ中継装置５の情報から削除した旨のメッセージ（以下、削除メッセージという。）を、同時通報する（ステップ（１３））。削除メッセージは、他のメッセージ中継装置５に対して、そのメッセージ中継装置５が保持する、データ変換を行う処理能力に余裕ある他のメッセージ中継装置５の情報から、削除メッセージで特定したメッセージ中継装置５の情報を削除することを促す意味を有する。
【００３６】
削除メッセージを受信したメッセージ中継装置５は、自ら保持するデータ変換を行う処理能力に余裕ある他のメッセージ中継装置５の情報から、削除メッセージで特定されているメッセージ中継装置５の情報を削除する。この例では、削除メッセージを受信したメッセージ中継装置５ｂとメッセージ中継装置５ｃは、メッセージ中継装置５ｄの情報を削除する。メッセージ中継装置５ｄは、自らのことであるで、特に処理を行わない。
【００３７】
そして、メッセージ中継装置５ａは、改めてデータ変換を依頼する候補としてメッセージ中継装置５ｂを選定して、メッセージ中継装置５ｂへ確認メッセージを送信する（ステップ（１４））。メッセージ中継装置５ｂは、現在自らデータ変換を行う処理能力に余裕があると判定し、許可の旨を示す応答メッセージをメッセージ中継装置５ａへ返信する（ステップ（１５））。以降のシーケンスで、メッセージ中継装置５ｂは図２に示した第一例のメッセージ中継装置５ｄと同様に動作する。
【００３８】
図９に、削除メッセージの例を示す。削除メッセージには、メッセージタイプとして、削除メッセージであることを識別する情報が含まれている。更に、削除メッセージの送信元のノードを特定する情報が含まれている。この例では、メッセージ中継装置５ａのアドレスが含まれている。また、削除するメッセージ中継装置５を特定する情報が含まれている。この例では、メッセージ中継装置５ｄのアドレスが含まれている。
【００３９】
以下、上述のメッセージ中継装置５について説明する。図１０は、実施の形態１におけるメッセージ中継装置５の構成例を示す図である。例えば、メッセージ中継装置５は、受信部１１と転送管理部１３と転送先格納部１５と変換ルール格納部１７と判定部１９とキュー２１とリソース管理部２３と内部受付部２５とＸＭＬ変換部２７と選定部２９と空きノードエントリ３１と通信部３３と依頼部３５と送信部３７とを有している。
【００４０】
受信部１１は、例えば、スイッチ装置３からリクエストメッセージを受信するように動作する。
【００４１】
転送管理部１３は、受信したリクエストメッセージの転送先サーバと変換ルールを特定して変換要求を生成するように動作する。変換要求は、変換対象である元メッセージと元メッセージの制御情報を含んでいる。また、転送管理部１３は、生成した変換要求に応じて求められた変換結果を判定部１９から受けて、送信部３７に対して転送先のサーバ７へ送信させるように動作する。
【００４２】
転送先格納部１５には、転送先を特定するための情報が格納されている。図１１は、転送先格納部１５に格納されているデータの例を示す図である。転送先格納部１５は、リクエストＵＲＩ毎に、レコードを設け、各レコードでリクエストＵＲＩと転送先サーバのアドレスを対応付けて記憶している。
【００４３】
変換ルール格納部１７には、メッセージをデータ変換する際のルールを特定する情報が格納されている。図１２は、変換ルール格納部の例を示す図である。変換ルール格納部１７は、リクエストＵＲＩ毎に、レコードを設け、各レコードでリクエストＵＲＩと変換ルールを特定する情報（例えば、変換に用いるソフトウエアの名前、変換アルゴリズムの識別情報など）を対応付けて記憶している。
【００４４】
図１０に戻って、判定部１９は、転送管理部１３から変換要求を受け取り、変換結果を転送管理部１３へ返すまでの制御を行うように動作する。
【００４５】
キュー２１は、判定部１９の内部制御に用いられるデータ記憶領域である。未処理の変換要求を一時的に記憶するために用いられる。但し、キュー２１は、判定部１９の外に設けてもよい。
【００４６】
リソース管理部２３は、ＸＭＬ変換部２７の稼動状況を計測し、あるいは取得するように動作する。このリソース状況の情報は、自らデータ変換を行う処理能力に余裕があるか否かの判定に用いられる。
【００４７】
内部受付部２５は、自らメッセージのデータ変換を行う場合に、変換要求を判定部１９から受け付けるように動作する。そして、内部受付部２５は、受け付けた変換要求をＸＭＬ変換部２７に転送するように動作する。
【００４８】
ＸＭＬ変換部２７は、内部受付部２５で受け付けた変換要求に従ってメッセージのデータ変換を行うように動作する。この例では、変換ルールに従って、変換要求に含まれる元メッセージを変換して、変換メッセージを生成する。生成した変換メッセージは、変換結果に含められる。ＸＭＬ変換部２７は、例えば、ＸＭＬアクセラレータなどの専用の演算装置の動作により処理することが想定される。
【００４９】
選定部２９は、データ変換を行う処理能力に余裕がある他のメッセージ中継装置５を選定するように動作する。この実施例では、メッセージ中継装置５をノードと呼んで説明する。また、通信部３３を介して、探索メッセージ、宣言メッセージ、確認メッセージ、応答メッセージ、及び削除メッセージの送受信を制御するように動作する。
【００５０】
空きノードエントリ３１は、データ変換を行う処理能力に余裕があるメッセージ中継装置５の情報を記憶する領域である。図１３に、空きノードエントリの例を示す。この実施例では、データ変換を行う処理能力に余裕があるメッセージ中継装置５を空きノードと呼んで説明する。図中、メッセージ中継装置５ｂのアドレスとメッセージ中継装置５ｄのアドレスを記憶している。
【００５１】
図１０に戻って、通信部３３は、例えば、他のメッセージ中継装置５との間で、探索メッセージ、宣言メッセージ、確認メッセージ、応答メッセージ、及び削除メッセージを送受信するように動作する。
【００５２】
依頼部３５は、他のメッセージ中継装置５に対してメッセージのデータ変換を依頼し、依頼した他のメッセージ中継装置５から変換結果を受け取るように動作する。更に、依頼部３５は、受け取った変換結果を判定部１９に返すように動作する。
【００５３】
送信部３７は、例えば、変換メッセージを転送先のサーバ７に送信するように動作する。
【００５４】
続いて、各処理部の具体的な処理動作について説明する。まず、受信部１１と転送管理部１３と送信部３７の処理動作について説明する。図１４は、実施の形態１における受信部１１と転送管理部１３と送信部３７の処理フローの例を示す図である。
【００５５】
受信部１１が、スイッチ装置３からリクエストメッセージを受信すると、受信したリクエストメッセージを転送管理部１３へ送る（Ｓ１０１）。転送管理部１３は、リクエストメッセージを受けると、まず、リクエストメッセージのＨＴＴＰヘッダからリクエストＵＲＩのコードを探し出し、リクエストＵＲＩを特定する（Ｓ１０３）。次に、転送管理部１３は、転送先格納部１５を参照してリクエストＵＲＩに対応する転送先サーバを特定する（Ｓ１０５）。更に、転送管理部１３は、変換ルール格納部１７を参照してリクエストＵＲＩに対応する変換ルールを特定する（Ｓ１０７）。
【００５６】
そして、転送管理部１３は、判定部１９へ変換要求を出す（Ｓ１０９）。変換要求には、変換の元となるメッセージと元メッセージの制御情報が含まれる。この例では、変換の元となるメッセージは、リクエストメッセージである。メッセージの制御情報には、特定された転送先サーバと変換ルールが含まれている。図１５に、メッセージ制御情報の例を示す。この時点で、依頼元ノードは、まだ設定されていなくても構わない。
【００５７】
図１４に戻って、判定部１９の動作が完了すると、転送管理部１３は、判定部１９からメッセージ制御情報を含む変換結果を受ける（Ｓ１１１）。そして、転送管理部１３は、メッセージ制御情報を含む変換結果を送信部３７へ送り、送信部３７は、変換結果に含まれる変換メッセージをメッセージ制御情報で特定される転送先サーバへ送信する（Ｓ１１３）。
【００５８】
次に、判定部１９の処理動作について説明する。図１６と図１７は、実施の形態１における判定部１９の処理フローの例を示す図である。判定部１９は、まずイベントの発生を待つ（Ｓ２０１）。イベントが発生すると、判定部１９は、発生したイベントの種類に応じて処理を分岐させる（Ｓ２０３,Ｓ２０５,Ｓ２０９,Ｓ２１１,Ｓ２１５）。
【００５９】
判定部１９は、Ｓ２０１で発生したイベントが転送管理部１３からの変換要求であるか否かを判定する（Ｓ２０３）。判定部１９は、Ｓ２０１で発生したイベントが転送管理部１３からの変換要求であると判定すると、図１７のＳ３０１へ端子Ａを介して処理を進める。
【００６０】
図１７の処理の説明に移行して、判定部１９は、キュー２１へ変換要求をエンキューする（Ｓ３０１）。つまり、判定部１９は、未処理の変換要求を一時的に保持する。そして、判定部１９は、キュー２１のキュー長が０から１になったか否かを判定する（Ｓ３０３）。判定部１９は、キュー２１のキュー長が０から１になったと判定すると、Ｓ３０５へ処理を進める。一方、判定部１９は、キュー２１のキュー長が０から１になったと判定しない場合には、この処理の流れを終了する。例えば、キュー２１のキュー長が１から２になった場合には、キュー２１に先に未処理の変換要求が１つあり、判定部１９はすでに処理を行っているからである。一方、キュー２１のキュー長が０から１になった場合は、キュー２１に先に未処理の変換要求が存在しないので、判定部１９はイベントとして受け取った変換要求に対する処理を続ける。
【００６１】
Ｓ３０５で、判定部１９は、リソース管理部２３へ問い合わせて、リソース状況を受ける。リソース状況は、ＸＭＬ変換部２７の稼動状況のことである。例えば、ＸＭＬ変換部２７がＸＭＬアクセラレータの動作により処理する場合には、リソース管理部２３は、ＸＭＬアクセラレータに含まれる演算部の稼働率、ＸＭＬアクセラレータに含まれる演算部が使用するメモリの使用率、あるいはＸＭＬアクセラレータに含まれる演算部が処理に要する時間などの情報を、リソース状況として用いてもよい。このとき、リソース管理部２３は、ＸＭＬ変換部２７の稼動状況を計測し、あるいはＸＭＬ変換部２７から稼動状況の情報を直接取得する。
【００６２】
判定部１９は、リソース状況に基づいて、ＸＭＬ変換部２７がデータ変換を行う処理能力に余裕があるか否かを判定する（Ｓ３０７）。判定部１９は、例えば、前述の演算部の稼働率、メモリの使用率、あるいは演算部が処理に要する時間などの情報が閾値を越えている場合に、データ変換する余裕がないと判定し、閾値を越えていない場合に、データ変換する余裕があると判定する。
【００６３】
判定部１９は、Ｓ３０７で自らデータ変換する処理能力に余裕があると判定すると、変換要求をキュー２１からデキューする（Ｓ３０９）。これにより、判定部１９は、一時的に保持している未処理の変換要求を取り出す。この場合、Ｓ３０１でキュー２１へエンキューした変換要求が読み出される。そして、判定部１９は、内部受付部２５へ変換要求を出す（Ｓ３１１）。そして、判定部１９は、キュー２１のキュー長が０より大きいか否かを判定する（Ｓ３１３）。判定部１９は、キュー２１のキュー長が０より大きいと判定すると、Ｓ３０５へ進んで処理を続行する。他に未処理の変換要求があるからである。一方、判定部１９は、キュー２１のキュー長が０より大きくないと判定すると、処理を終える。キュー２１に未処理の変換要求がないからである。
【００６４】
一方、判定部１９は、Ｓ３０７で自らデータ変換する処理能力に余裕がないと判定すると、選定部２９へノード要求を出す（Ｓ３１５）。ノード要求は、選定部２９に対して、データ変換を依頼する他のメッセージ中継装置５を選定する動作を起こさせる命令である。そして、判定部１９は、一旦処理を終える。判定部１９は、これ以降の動作を選定部２９からのノード回答を待って再開する。処理の再開は、図１６のＳ２０９から始まる。
【００６５】
図１６へ戻って、判定部１９は、Ｓ２０１で発生したイベントがＸＭＬ変換部２７からの変換結果であるか否かを判定する（Ｓ２０５）。このイベントは、図１７のＳ３１１で内部受付部２５へ出した変換要求への応答である。判定部１９は、Ｓ２０１で発生したイベントがＸＭＬ変換部２７からの変換結果であると判定すると、転送管理部１３へ変換結果を返す（Ｓ２０７）。
【００６６】
続いて、選定部２９と通信部３３の処理動作について説明する。図１８に、実施の形態１における選定部２９と通信部３３の処理フローの例を示す。選定部２９は、判定部１９からノード要求を受けると（Ｓ４０１）、空きノードエントリ３１を読む（Ｓ４０３）。選定部２９は、空きノードがあるか否かを判定する（Ｓ４０５）。選定部２９は、空きノードがないと判定すると、通信部３３が宣言メッセージの受信状態であるか否かを判定する（Ｓ４０７）。選定部２９は、通信部３３が宣言メッセージの受信状態でないと判定すると、通信部３３を制御し、通信部３３は、探索メッセージを同時通報する（Ｓ４０９）。このとき、通信部３３は、探索メッセージの送信元ノードのアドレスに、メッセージ中継装置５自身のアドレスを設定する。そして、選定部２９は、一定時間待機し（Ｓ４１１）、Ｓ４０３へ戻る。
【００６７】
尚、選定部２９と通信部３３は、図１８の処理フローのプロセスとは別に、宣言メッセージを受信するプロセスを並列に動作させている。宣言メッセージを受信するためのプロセスの処理フローを図１９に示す。通信部３３が、宣言メッセージを受信し、選定部２９へ宣言メッセージへ送ると（Ｓ５０１）、選定部２９は、宣言メッセージの送信元であるメッセージ中継装置５（送信元ノード）を特定して、特定したメッセージ中継装置５（送信元ノード）を空きノードエントリ３１に追加する（Ｓ５０３）。そして、選定部２９は、処理を終える。
【００６８】
図１８に戻って、選定部２９は、再びＳ４０３で空きノードエントリ３１を読む。通信部３３が宣言メッセージを受信している間は、選定部２９は、Ｓ４０５でまだ空きノードがないと判定するので、再びＳ４０７に移る。そこで、選定部２９は、Ｓ４０７で改めて通信部３３が宣言メッセージの受信状態であると判定すると、再び一定時間待機して（Ｓ４１１）、Ｓ４０３へ戻る。
【００６９】
通信部３３による宣言メッセージの受信が完了すると、選定部２９は、Ｓ４０５で空きノードがあると判定し、メッセージのデータ変換処理を依頼する候補ノードを選定する（Ｓ４１３）。具体的には、選定部２９は、空きノードエントリ３１から読み取った空きノードを候補ノードとする。選定部２９は、空きノードが複数ある場合には、そのうちのいずれかの空きノードを候補ノードとする。
【００７０】
そして、選定部２９は通信部３３を制御し、通信部３３は確認メッセージを生成し、生成した確認メッセージを候補ノードへ送信する（Ｓ４１５）。このとき、通信部３３は、確認メッセージの依頼元ノードのアドレスに、メッセージ中継装置５自身のアドレスを設定する。更に、通信部３３は、確認メッセージに候補ノードのアドレスを設定する。
【００７１】
そして、通信部３３は、Ｓ４１５で送信した確認メッセージに対する応答として候補ノードから返信される応答メッセージを受信し、選定部２９へ転送する（Ｓ４１７）。選定部２９は、転送された応答メッセージに許可の旨が含まれているか、あるいは拒否の旨が含まれているかを判定する（Ｓ４１９）。選定部２９は、応答メッセージに許可の旨が含まれていると判定すると、候補ノードを回答ノードとして特定し、特定した回答ノードを判定部１９へ返す（Ｓ４２１）。
【００７２】
一方、選定部２９は、Ｓ４１９で応答メッセージに拒否の旨が含まれていると判定すると、拒否の旨を示す応答メッセージを返信した候補ノードを空きノードエントリ３１から削除し（Ｓ４２３）、更に削除メッセージを同時通報する（Ｓ４２５）。このとき、通信部３３は、削除メッセージの送信元ノードのアドレスに、メッセージ中継装置５自身のアドレスを設定する。更に、通信部３３は、削除メッセージの削除ノードのアドレスに、候補ノードのアドレスを設定する。そして、選定部２９は、Ｓ４０３からの処理を続ける。
【００７３】
図１６へ戻って、判定部１９は、Ｓ２０１で発生したイベントが選定部２９からのノード回答であるか否かを判定する（Ｓ２０９）。このイベントは、図１７のＳ３１５で判定部１９から選定部２９へ送出したノード要求への応答である。判定部１９は、Ｓ２０１で発生したイベントが選定部２９からのノード回答であると判定すると、図１７のＳ３１７へ端子Ｂを介して処理を進める。ノード回答には、データ変換処理を依頼するメッセージ中継装置５の情報が含まれている。
【００７４】
判定部１９は、キュー２１から変換要求をデキューする（Ｓ３１７）。そして、判定部１９は、依頼部３５へ変換要求を出す（Ｓ３１９）。判定部１９は、このとき、自らのメッセージ中継装置５（自ノード）の情報を依頼元ノードとして、変換要求のメッセージ制御情報に設定する。依頼部３５は、受けた変換要求をメッセージとして、依頼先のメッセージ中継装置５へ送信する。図２０は、変換要求メッセージの例を示す図である。変換要求メッセージは、変換対象である元メッセージの他に、元メッセージのメッセージ制御情報も含んでいる。
【００７５】
そして、判定部１９は、Ｓ３１３へ処理を進め、他の変換要求に対する処理を続行する。
【００７６】
図１６へ戻って、判定部１９は、Ｓ２０１で発生したイベントが依頼部３５からの変換結果であるか否かを判定する（Ｓ２１１）。このイベントは、図１７のＳ３１９で判定部１９から依頼部３５へ送出した変換要求への応答である。判定部１９は、Ｓ２０１で発生したイベントが依頼部３５からの変換結果であると判定すると、転送管理部１３へ変換結果を返す（Ｓ２１３）。
【００７７】
尚、リソース管理部２３は、独自にＸＭＬ変換部２７の稼動状況に余裕があると判定すると、自発的に判定部１９へ余裕通知を出すようにしてもよい。その場合には、図１６のＳ２１５で、判定部１９は、Ｓ２０１で発生したイベントがリソース管理部２３からの余裕通知であるか否かを判定する。判定部１９は、Ｓ２０１で発生したイベントがリソース管理部２３からの余裕通知であると判定すると、図１７のＳ３２１へ端子Ｃを介して処理を進める。
【００７８】
判定部１９は、キュー２１のキュー長が０より大きいか否かを判定する（Ｓ３２１）。判定部１９は、キュー２１のキュー長が０より大きくないと判定すると、処理を終える。キュー２１が、未処理の変換要求を保持しないからである。判定部１９は、キュー２１のキュー長が０より大きいと判定すると、変換要求をキュー２１からデキューし（Ｓ３２３）、内部受付部２５へ変換要求を出す（Ｓ３２５）。このとき、キュー２１には未処理の変換要求があり、ＸＭＬ変換部２７は、データ変換を行う処理能力に余裕があるからである。そして、判定部１９は、Ｓ３１３の判定へ進む。以降の処理は、前述と同様である。
【００７９】
上述の処理により、図２と図８に示したメッセージ中継装置５ａの動作が行われる。続いて、図２と図８に示したメッセージ中継装置５ｂとメッセージ中継装置５ｃとメッセージ中継装置５ｄの動作について説明する。具体的には、データの変換要求を受けた場合、探索メッセージを受信した場合、確認メッセージを受信した場合、及び削除メッセージを受信した場合のメッセージ中継装置５の動作について説明する。
【００８０】
これらの動作を行うために、メッセージ中継装置５は、図１０で示した前述の構成要素の他に、図２１に示す外部受付部３９も有している。外部受付部３９は、依頼元のメッセージ中継装置５から変換要求メッセージを受信し、変換要求をＸＭＬ変換部２７へ送出し、ＸＭＬ変換部２７によるメッセージのデータ変換を待って、依頼元のメッセージ中継装置５へ変換結果メッセージを返信するように動作する。
【００８１】
図２２に、データの変換要求を受けた場合の外部受付部３９とＸＭＬ変換部２７との処理フローを示す。外部受付部３９が、変換要求メッセージを受信すると（Ｓ６０１）、変換要求をＸＭＬ変換部２７へ送出する。ＸＭＬ変換部２７は、受け取った変換要求メッセージに含まれる元メッセージを、変換要求メッセージに含まれる変換ルールに従ってデータ変換して変換メッセージを生成する（Ｓ６０３）。生成された変換メッセージは、外部受付部３９へ返される。外部受付部３９は、変換要求メッセージの送信元であるメッセージ中継装置５に、ＸＭＬ変換部２７から受け取った変換結果をメッセージとして返信する（Ｓ６０５）。このとき、外部受付部３９は、変換要求メッセージに含まれる元メッセージを変換メッセージに置き換えて、変換結果メッセージとする。図２３は、変換結果メッセージの例を示す図である。
【００８２】
次に、メッセージ中継装置５が、探索メッセージを受信したときの動作について説明する。図２４に、その処理フローを示す。通信部３３は、探索メッセージを受信すると（Ｓ７０１）、リソース管理部２３へ問い合わせて（Ｓ７０３）、リソース管理部２３からリソース状況を受ける（Ｓ７０５）。そして、通信部３３は、ＸＭＬ変換部２７がデータ変換を行う処理能力に余裕があるか否かを判定する（Ｓ７０７）。通信部３３は、ＸＭＬ変換部２７がデータ変換を行う処理能力に余裕があると判定すると、宣言メッセージを同時通報する（Ｓ７０９）。このとき、通信部３３は、宣言メッセージの送信元ノードのアドレスに、メッセージ中継装置５自身のアドレスを設定する。一方、通信部３３は、Ｓ７０７でデータ変換を行う処理能力に余裕がないと判定すると、処理を終了する。
【００８３】
次に、メッセージ中継装置５が、確認メッセージを受信したときの動作について説明する。図２５に、確認メッセージを受信したときの処理フローを示す。通信部３３は、確認メッセージを受信すると（Ｓ８０１）、リソース管理部２３へ問い合わせて（Ｓ８０３）、リソース管理部２３からリソース状況を受ける（Ｓ８０５）。そして、通信部３３は、ＸＭＬ変換部２７がデータ変換を行う処理能力に余裕があるか否かを判定する。（Ｓ８０７）。通信部３３は、ＸＭＬ変換部２７がデータ変換を行う処理能力に余裕があると判定すると、確認メッセージの送信元であるメッセージ中継装置５に許可の応答メッセージを返信する（Ｓ８０９）。このとき、通信部３３は、依頼元ノードと候補ノードに確認メッセージと同様のアドレスを設定し、更に、リソース使用に許可の旨を設定する。
【００８４】
一方、通信部３３は、Ｓ８０７でＸＭＬ変換部２７がデータ変換を行う処理能力に余裕がないと判定すると、確認メッセージの送信元であるメッセージ中継装置５に拒否の応答メッセージを返信する（Ｓ８１１）。このとき、通信部３３は、依頼元ノードと候補ノードに確認メッセージと同様のアドレスを設定し、更に、リソース使用に拒否の旨を設定する。
【００８５】
最後に、メッセージ中継装置５が、削除メッセージを受信した場合のメッセージ中継装置５の動作について説明する。通信部３３は、削除メッセージを受信すると、削除メッセージを選定部２９へ送り、選定部２９は削除メッセージに含まれる削除ノードを特定し、特定した削除ノードの情報を、空きノードエントリ３１から削除する。
【００８６】
以上のように、本実施の形態におけるメッセージ中継装置は、メッセージのデータ変換処理を行う処理能力に余裕がある他のメッセージ中継装置を空きノードエントリで管理し、空きノードエントリに基づいてメッセージのデータ変換処理の依頼先を選定し、依頼先であるメッセージ中継装置がメッセージのデータ変換処理を行うので、メッセージ中継装置同士は、互いにメッセージ変換処理のリソースを共有し、且つメッセージ変換処理のリソースを有効に活用することができる。
【００８７】
これにより、メッセージ変換の依頼が成功する可能性が高まるとともに、リソース発見までの時間も短縮できる。更に、メッセージ中継装置は、同時通報を用いることにより、空きノードエントリを同期させるために用いるメッセージの転送量も抑制している。
【００８８】
スイッチ装置は、転送処理のリソース（例えば、汎用プロセッサ）に着目した負荷分散を行うが、本実施の形態では、その負荷分散では解消できないメッセージ変換処理のリソース活用の非効率が解消される。従って、メッセージ変換に高い負荷がかかる場合であっても、すべてのメッセージ中継装置のメッセージ変換リソースを完全に使い切ることができるようになる。
【００８９】
メッセージ中継装置の増設やデータ変換部の増強によって、メッセージ中継装置を含むシステムは簡単かつ有効に、全体としてのスループットを向上させることができる。
【００９０】
また、メッセージ中継装置は、宣言メッセージを受信し、受信した宣言メッセージの送信元のメッセージ中継装置を空きノードエントリに加えるので、メッセージ中継装置は、処理能力に余裕のあるメッセージ変換処理リソースを容易且つ確実に特定できる。
【００９１】
また、メッセージ中継装置は、探索メッセージを同時通報し、同時通報した探索メッセージの応答として宣言メッセージを受信するので、他のメッセージ変換処理リソースを活用しようとする時点で有効なメッセージ変換処理リソースを、広い範囲から検出することができるようになる。
【００９２】
また、メッセージ中継装置は、１つの探索メッセージに対して宣言メッセージを同時通報するので、問い合わせと返答のためのメッセージを減らすことができる。
【００９３】
また、メッセージ中継装置は、候補ノードである他のメッセージ中継装置に対して確認メッセージを予め送信し、確認メッセージに対する応答メッセージを受信するので、他のメッセージ中継装置にメッセージのデータ変換を依頼する前に、依頼先となるメッセージ中継装置のリソースの現在状況を確認できる。そのため、無駄な依頼処理を防ぎ、処理遅延を防ぎ、通信量を抑制する。
【００９４】
また、メッセージ中継装置は、候補ノードである他のメッセージ中継装置からの応答メッセージが拒否を示す場合に、そのメッセージ中継装置を空きノードエントリから削除するので、メッセージ変換を行う処理能力に余裕のないメッセージ中継装置を予め候補から除外し、この処理能力に余裕のないメッセージ中継装置を再び候補ノードに選び、再度依頼に失敗するという無駄な処理を未然に防ぐことができる。
【００９５】
また、メッセージ中継装置は、候補ノードである他のメッセージ中継装置からの応答メッセージが拒否を示す場合に、そのメッセージ中継装置を空きノードエントリから削除する旨の削除メッセージを同時通報するので、メッセージ変換リソースに余裕のないメッセージ中継装置の情報を、適時広く知らせることが出来る。
【００９６】
また、メッセージ中継装置は、他のメッセージ中継装置から削除メッセージを受信した場合に、削除メッセージにより特定されるメッセージ中継装置を空きノードエントリから除外するので、他のメッセージ中継装置におけるメッセージ変換の依頼の失敗に基づいて、自らも同様に失敗することを予め防ぐことができる。
【００９７】
また、メッセージ中継装置は、他のメッセージ中継装置からメッセージの変換処理の依頼を受け付け、依頼されたメッセージの変換処理を行い、変換処理されたメッセージを返信するので、自らのメッセージ変換リソースを無駄なく使い切ることができる。
【００９８】
［実施の形態２］
実施の形態２では、確認メッセージによる事前の確認を省略する例について説明する。実施の形態２は、候補ノードであるメッセージ中継装置で、メッセージのデータ変換を行う処理能力に余裕がある可能性が高い場合に、通信量を削減する効果が期待できる。
【００９９】
図２６に、実施の形態２におけるシーケンスの第一例を示す。リクエストメッセージ（図２のステップ（１）と（２））については、本シーケンスでも共通であるので省略する。
【０１００】
メッセージ中継装置５ａは、実施の形態１と同様に、探索メッセージを同時通報し（ステップ（２１））、それに応じてメッセージ中継装置５ｄは、宣言メッセージを同時通報する（ステップ（２２））。
【０１０１】
メッセージ中継装置５ａは、実施の形態１と同様に候補ノードを選定すると、実施の形態１のように確認メッセージを送信することなく、直ちに変換要求メッセージを候補ノードに送信する（ステップ（２３））。この例では、メッセージ中継装置５ｄが候補ノードである。メッセージ中継装置５ｄは、データ変換を行う処理能力に余裕があり、メッセージのデータ変換を行う。そして、変換結果を含む許可の応答メッセージを返信する（ステップ（２４））。図２７に、このとき送られる応答メッセージ（許可）の例を示す。実施の形態２における応答メッセージは、実施の形態１の変換結果メッセージ（図２３）に、リソース使用の許可／拒否の旨を追加した構成である。
【０１０２】
図２６に示すシーケンスの第一例では、候補ノードに送られた変換要求が受け入れられ、順調に処理が進行する例を示した。しかし、それに反し候補ノードに送られた変換要求が受け入れらない場合も起こりうる。次に、候補ノードに送られた変換要求が拒否される場合のシーケンスについても説明する。
【０１０３】
図２８に、実施の形態２におけるシーケンスの第二例を示す。この例で、メッセージ中継装置５ａは、候補ノードであるメッセージ中継装置５ｄへ変換要求メッセージを送るが（ステップ（２６））、メッセージ中継装置５ｄは、データ変換を行う処理能力に余裕がないと判定し、拒否の応答メッセージを返信する（ステップ（２７））。応答メッセージには、図２７のリソース使用における許可の旨に代えて、拒否の旨が設定される。このとき、ＸＭＬ変換部２７は、データの変換を行っていないので、変換メッセージの領域は無効である。
【０１０４】
拒否の応答メッセージを受信したメッセージ中継装置５ａは、図８のステップ（１３）と同様に削除メッセージを同時通報し（ステップ（２８））、改めて、メッセージ中継装置５ｂを候補ノードに選定し、メッセージ中継装置５ｂに対して変換要求メッセージを送る（ステップ（２９））。メッセージ中継装置５ｂは、第一例のメッセージ中継装置５ｄと同様にデータ変換を行い、許可の応答メッセージを返信する（ステップ（３０））。以降のシーケンスは、図２のステップ（９）とステップ（１０）と同様である。
【０１０５】
続いて、実施の形態２におけるメッセージ中継装置の構成について説明する。図２９に、実施の形態２におけるメッセージ中継装置５の構成例を示す。この例では、通信部３３が、実施の形態１の依頼部３５に代わって、変換要求メッセージの送信と変換結果メッセージの受信を行うので、実施の形態１の依頼部３５は省かれている。
【０１０６】
上述の構成に基づいて、この実施例における判定部１９の動作について説明する。実施の形態２における判定部１９は、図１６と図１７に示した実施の形態１の処理フローに代えて、図３０に示す処理フローを実行する。
【０１０７】
判定部１９は、実施の形態１と同様に転送管理部１３から変換要求を受けると（Ｓ９０１）、リソース管理部２３へ問い合わせて、リソース状況を受ける（Ｓ９０３）。判定部１９は、リソース状況に基づいて、ＸＭＬ変換部２７がデータ変換を行う余裕があるか否かを判定する（Ｓ９０５）。判定部１９は、Ｓ９０５でデータ変換を行う余裕があると判定すると、内部受付部２５へ変換要求を出す（Ｓ９０７）。そして、判定部１９は、変換要求の応答として、ＸＭＬ変換部２７から変換結果を受け（Ｓ９０９）、転送管理部１３へ変換結果を返して（Ｓ９１１）、処理を終える。転送管理部１３と送信部３７の動作は、実施の形態１と同様である。
【０１０８】
一方、判定部１９は、Ｓ９０５でデータ変換する余裕がないと判定すると、選定部２９へ変換要求を出す（Ｓ９１３）。そして、判定部１９は、変換要求の応答として選定部２９から返される変換結果を受けて（Ｓ９１５）、変換結果が成功であったか失敗であったかを判定する（Ｓ９１７）。
【０１０９】
変換結果が成功であったと判定した場合には、判定部１９は、転送管理部１３へ変換結果を返して（Ｓ９１１）、処理を終える。一方、変換結果が失敗であったと判定した場合には、判定部１９は、Ｓ９０３へ戻って、処理を繰り返す。このようにして、変換結果が得られるまでループ処理を繰り返す（Ｓ９０３〜Ｓ９０９、Ｓ９１３〜Ｓ９１７）。
【０１１０】
最後に、図３１に示した実施の形態２における選定部２９と通信部３３の処理について説明する。選定部２９は、判定部１９から変換要求を受けると（Ｓ１１０１）、空きノードエントリ３１を読み（Ｓ１１０３）、空きノードがあるか否かを判定する（Ｓ１１０５）。選定部２９は、空きノードがないと判定すると、通信部３３が宣言メッセージの受信状態であるか否かを判定する（Ｓ１１０７）。選定部２９は、通信部３３が宣言メッセージの受信状態でないと判定すると、通信部３３は、探索メッセージを同時通報する（Ｓ１１０９）。そして、選定部２９は、一定時間待機し（Ｓ１１１１）、Ｓ１１０３へ戻る。Ｓ１１０３からＳ１１１１までの処理は、図１８のＳ４０３からＳ４１１と同様である。
【０１１１】
続いて、選定部２９は、Ｓ１１０５で空きノードがあると判定すると、候補ノードを選定する（Ｓ１１１３）。このとき、選定部２９は、空きノードを候補ノードとする。そして、実施の形態１の場合に、選択された候補ノードに通信部３３が確認メッセージを送信するのに代えて、本実施の形態では、確認メッセージを省いて、選択された候補ノードに通信部３３が直ちに変換要求メッセージを送信する（Ｓ１１１５）。変換要求メッセージは、実施の形態１と同様である（図２０）。
【０１１２】
そして、通信部３３は、候補ノードから返信される応答メッセージを受信する（Ｓ１１１７）。選定部２９は、通信部３３が受信した応答メッセージを受け、応答メッセージに許可の旨が含まれているかあるいは拒否の旨が含まれているかを判定する（Ｓ１１１９）。
【０１１３】
選定部２９は、応答メッセージに許可の旨が含まれていると判定すると、判定部１９へ変換結果を返し（Ｓ１１２１）、更に成功を返し（Ｓ１１２７）、処理を終える。
【０１１４】
一方、選定部２９は、応答メッセージに拒否の旨が含まれていると判定すると、応答メッセージの送信元ノードを特定し、特定した送信元ノードの情報を、空きノードエントリ３１から削除する（Ｓ１１２３）。更に、選定部２９からの制御を受けて、通信部３３は削除メッセージを同時通報する（Ｓ１１２５）。選定部２９は、判定部１９へ失敗を返して（Ｓ１１２７）、処理を終える。
【０１１５】
このように処理することによって、図２６と図２８に示した実施の形態２のシーケンスが実行される。
【０１１６】
実施の形態２は、メッセージ変換処理リソースの使用要求が認められやすい環境や、変換対象となるメッセージのサイズが小さい条件の場合に有効である。
【０１１７】
メッセージ変換処理リソースの使用要求が認められやすい環境では、変換要求メッセージを再送する可能性が低いので、確認メッセージを省いたことによるリスクが現れにくい。
【０１１８】
また、変換対象となるメッセージのサイズが小さい条件では、仮に変換要求メッセージを再送したとしても、転送に係る負担が小さいので、同じく確認メッセージを省いたことによるリスクが現れにくいと言える。
【０１１９】
以上本技術の一実施の形態を説明したが、本技術はこれに限定されるものではない。例えば、上述の機能ブロック構成は必ずしも実際のプログラムモジュール構成に対応するものではない。
【０１２０】
また、上で説明した各記憶領域の構成は一例であって、必ずしも上記のような構成でなければならないわけではない。さらに、処理フローにおいても、処理結果が変わらなければ処理の順番を入れ替えることも可能である。さらに、並列に実行させるようにしても良い。
【０１２１】
また、メッセージ中継装置の機能は、１台のコンピュータではなく複数台のコンピュータで実現するようにしてもよい。
【０１２２】
なお、上で述べたメッセージ中継装置は、コンピュータ装置であって、図３２に示すように、メモリ２５０１とＣＰＵ（Central Processing Unit）２５０３とハードディスク・ドライブ（ＨＤＤ：Hard Disk Drive）２５０５と表示装置２５０９に接続される表示制御部２５０７とリムーバブル・ディスク２５１１用のドライブ装置２５１３と入力装置２５１５とネットワークに接続するための通信制御部２５１７とがバス２５１９で接続されている。オペレーティング・システム（ＯＳ：Operating System）及び本実施例における処理を実施するためのアプリケーション・プログラムは、ＨＤＤ２５０５に格納されており、ＣＰＵ２５０３により実行される際にはＨＤＤ２５０５からメモリ２５０１に読み出される。ＣＰＵ２５０３は、アプリケーション・プログラムの処理内容に応じて表示制御部２５０７、通信制御部２５１７、ドライブ装置２５１３を制御して、所定の動作を行わせる。また、処理途中のデータについては、主としてメモリ２５０１に格納されるが、ＨＤＤ２５０５に格納されるようにしてもよい。本技術の実施例では、上で述べた処理を実施するためのアプリケーション・プログラムはコンピュータ読み取り可能なリムーバブル・ディスク２５１１に格納されて頒布され、ドライブ装置２５１３からＨＤＤ２５０５にインストールされる。インターネットなどのネットワーク及び通信制御部２５１７を経由して、ＨＤＤ２５０５にインストールされる場合もある。このようなコンピュータ装置は、上で述べたＣＰＵ２５０３、メモリ２５０１などのハードウエアとＯＳ及びアプリケーション・プログラムなどのプログラムとが有機的に協働することにより、上で述べたような各種機能を実現する。
【０１２３】
以上述べた本技術の実施の形態をまとめると、以下のようになる。
【０１２４】
本実施の形態に係るメッセージ中継装置は、（Ａ）転送すべきメッセージを受信する受信部と、（Ｂ）転送すべきメッセージを変換処理する場合に、自ら当該変換処理を行う余裕があるか否かを判定する判定部と、（Ｃ）自ら変換処理を行う余裕がない場合に、記憶部に記憶され、且つ変換処理を行う余裕がある他の装置を示す情報に基づいて、変換処理を依頼する他の装置を選定する選定部と、（Ｄ）選定された他の装置に対して転送すべきメッセージの変換処理を依頼し、選定された他の装置から変換されたメッセージを受信する依頼部と、（Ｅ）受信した変換後のメッセージを転送先に送信する送信部とを含む。
【０１２５】
メッセージ中継装置は、変換処理を行う余裕がある他の装置を示す情報に基づいて、メッセージの変換処理を依頼する他の装置を選定するので、メッセージ変換の依頼が成功する可能性が高まり、依頼先を決定するための時間も短縮できる。
【０１２６】
また、メッセージ中継装置は、（Ｆ）変換処理を行う余裕がある旨を宣言する第一メッセージを受信する通信部を有するようにしてもよい。更に、（ｃ１）選定部は、第一メッセージを受信した場合に、第一メッセージの送信元は、変換処理を行う余裕があると判断するようにしてもよい。
【０１２７】
これにより、メッセージ中継装置は、変換処理を行う余裕のある他の装置を、容易且つ確実に特定できる。
【０１２８】
また、（ｆ１）通信部は、更に、変換処理を行う余裕がある装置を探索する第二メッセージを同時通報し、当該第二メッセージに対する応答とする第一メッセージを受信するようにしてもよい。
【０１２９】
これにより、メッセージ中継装置は、他にメッセージの変換処理を依頼しようとする時点で有効な他の装置を、広い範囲から検出することができるようになる。
【０１３０】
また、（ｆ２）通信部は、選定された他の装置に対して、変換処理の依頼を認容するか拒否するかを確認する第三メッセージを予め送信し、当該第三メッセージに応答する第四メッセージを受信するようにしてもよい。更に、（ｄ１）依頼部は、第四メッセージが認容を示す場合に、選定された他の装置に対して変換処理を依頼するようにしてもよい。
【０１３１】
これにより、メッセージ中継装置は、他の装置にメッセージのデータ変換を依頼する前に、依頼先となる他の装置の現在の変換処理能力を確認できるので、無駄な依頼処理が生じない。これは、処理遅延の防止と通信量の抑制にも役立つ。
【０１３２】
また、（ｃ２）選定部は、第四メッセージが拒否を示す場合に、第四メッセージの送信元の装置を示す情報を、変換処理を行う余裕がある他の装置を示す情報から除外するようにしてもよい。
【０１３３】
これにより、メッセージ変換処理を行う能力に余裕のない他の装置を予め候補から除外し、この処理能力に余裕のない他の装置を再び候補ノードに選び、再度依頼に失敗するという無駄な処理を未然に防ぐことができる。従って、無駄なメッセージの転送も、回避される。
【０１３４】
また、（ｆ３）通信部は、第四メッセージが拒否を示す場合に、第四メッセージの送信元の装置を示す情報を、変換処理を行う余裕がある他の装置を示す情報から除外する旨の削除メッセージを同時通報するようにしてもよい。
【０１３５】
これにより、メッセージ変換処理を行う能力に余裕のない他の装置を示す情報を、適時広く知らせることが出来る。
【０１３６】
また、（ｃ３）選定部は、特定の装置を変換処理を行う余裕がある他の装置を示す情報から除外すべき旨の削除メッセージを受信した場合に、当該特定の装置を変換処理を行う余裕がある他の装置を示す情報から除外するようにしてもよい。
【０１３７】
これにより、他のメッセージ中継装置におけるメッセージ変換の依頼の失敗に基づいて、自らも同様に失敗することを予め防ぐことができる。
【０１３８】
また、（Ｇ）メッセージ中継装置は、外部の装置から、メッセージの変換処理の依頼を受け付ける外部受付部と、（Ｈ）依頼されたメッセージの変換処理を行うデータ変換部とを有するようにしてもよい。更に、（ｇ１）外部受付部は、変換処理されたメッセージを、外部の装置へ返信するようにしてもよい。
【０１３９】
これにより、自らのメッセージ変換リソースを無駄なく用いることができる。
【０１４０】
また、変換処理は、ＸＭＬ変換処理であってもよい。
【０１４１】
なお、上記方法による処理をコンピュータに行わせるためのプログラムを作成することができ、当該プログラムは、例えばフレキシブルディスク、ＣＤ−ＲＯＭ、光磁気ディスク、半導体メモリ、ハードディスク等のコンピュータ読み取り可能な記憶媒体又は記憶装置に格納される。尚、中間的な処理結果はメインメモリ等の記憶装置に一時保管される。
【０１４２】
以上の実施例を含む実施形態に関し、さらに以下の付記を開示する。
【０１４３】
（付記１）
転送すべきメッセージを受信する受信部と、
前記転送すべきメッセージを変換処理する場合に、自ら当該変換処理を行う余裕があるか否かを判定する判定部と、
自ら前記変換処理を行う余裕がない場合に、記憶部に記憶され、且つ前記変換処理を行う余裕がある他の装置を示す情報に基づいて、前記変換処理を依頼する他の装置を選定する選定部と、
選定された前記他の装置に対して前記転送すべきメッセージの前記変換処理を依頼し、選定された前記他の装置から変換されたメッセージを受信する依頼部と、
受信した変換後のメッセージを転送先に送信する送信部と、
を有するメッセージ中継装置。
【０１４４】
（付記２）
前記メッセージ中継装置は、前記変換処理を行う余裕がある旨を宣言する第一メッセージを受信する通信部を備え、
前記選定部は、前記第一メッセージを受信した場合に、前記第一メッセージの送信元は、前記変換処理を行う余裕があると判断する
付記１記載のメッセージ中継装置。
【０１４５】
（付記３）
前記通信部は、更に、前記変換処理を行う余裕がある装置を探索する第二メッセージを同時通報し、当該第二メッセージに対する応答とする前記第一メッセージを受信する
付記２記載のメッセージ中継装置。
【０１４６】
（付記４）
前記通信部は、選定された前記他の装置に対して、前記変換処理の依頼を認容するか拒否するかを確認する第三メッセージを予め送信し、当該第三メッセージに応答する第四メッセージを受信し、
前記依頼部は、前記第四メッセージが認容を示す場合に、選定された前記他の装置に対して前記変換処理を依頼する
付記１乃至３のいずれか１つ記載のメッセージ中継装置。
【０１４７】
（付記５）
前記選定部は、前記第四メッセージが拒否を示す場合に、前記第四メッセージの送信元の装置を示す情報を、前記変換処理を行う余裕がある他の装置を示す情報から除外する
付記４記載のメッセージ中継装置。
【０１４８】
（付記６）
前記通信部は、前記第四メッセージが拒否を示す場合に、前記第四メッセージの送信元の装置を示す情報を、前記変換処理を行う余裕がある他の装置を示す情報から除外する旨の削除メッセージを同時通報する
付記５記載のメッセージ中継装置。
【０１４９】
（付記７）
前記選定部は、特定の装置を前記変換処理を行う余裕がある他の装置を示す情報から除外すべき旨の削除メッセージを受信した場合に、当該特定の装置を前記変換処理を行う余裕がある他の装置を示す情報から除外する
付記１乃至５のいずれか１つ記載のメッセージ中継装置。
【０１５０】
（付記８）
前記メッセージ中継装置は、外部の装置から、依頼されたメッセージの変換処理を受け付ける外部受付部と、
依頼された前記メッセージの前記変換処理を行うデータ変換部とを有し、
前記外部受付部は、前記データ変換部により変換処理されたメッセージを、前記外部の装置へ返信する
付記１乃至７のいずれか１つ記載のメッセージ中継装置。
【０１５１】
（付記９）
前記変換処理は、ＸＭＬ変換処理である
付記１乃至７のいずれか１つ記載のメッセージ中継装置。
【０１５２】
（付記１０）
転送すべきメッセージを受信する処理と、
前記転送すべきメッセージを変換処理する場合に、自ら当該変換処理を行う余裕があるか否かを判定する処理と、
自ら前記変換処理を行う余裕がない場合に、記憶部に記憶され、且つ前記変換処理を行う余裕がある他の装置を示す情報に基づいて、前記変換処理を依頼する他の装置を選定する処理と、
選定された前記他の装置に対して前記転送すべきメッセージの前記変換処理を依頼し、選定された前記他の装置から変換されたメッセージを受信する処理と、
受信した変換後のメッセージを転送先に送信する処理と
を含み、コンピュータが実行するメッセージ中継方法。
【０１５３】
（付記１１）
転送すべきメッセージを受信する処理と、
前記転送すべきメッセージを変換処理する場合に、自ら当該変換処理を行う余裕があるか否かを判定する処理と、
自ら前記変換処理を行う余裕がない場合に、記憶部に記憶され、且つ前記変換処理を行う余裕がある他の装置を示す情報に基づいて、前記変換処理を依頼する他の装置を選定する処理と、
選定された前記他の装置に対して前記転送すべきメッセージの前記変換処理を依頼し、選定された前記他の装置から変換されたメッセージを受信する処理と、
受信した変換後のメッセージを転送先に送信する処理と
を含み、コンピュータに実行させるためのプログラム。
【符号の説明】
【０１５４】
１  クライアント  ３  スイッチ装置
５  メッセージ中継装置  ７  サーバ
１１  受信部  １３  転送管理部
１５  転送先格納部  １７  変換ルール格納部
１９  判定部  ２１  キュー
２３  リソース管理部  ２５  内部受付部  
２７  ＸＭＬ変換部  ２９  選定部  
３１  空きノードエントリ  ３３  通信部  
３５  依頼部  ３７  送信部  ３９  外部受付部
２５０１  メモリ
２５０３  ＣＰＵ（Central Processing Unit）
２５０５  ハードディスク・ドライブ（ＨＤＤ：Hard Disk Drive）
２５０７  表示制御部
２５０９  表示装置
２５１１  リムーバブル・ディスク
２５１３  ドライブ装置
２５１５  入力装置
２５１７  通信制御部
２５１９  バス
【図１】
0005962100.tif 000002
【図２】
0005962100.tif 000003
【図３】
0005962100.tif 000004
【図４】
0005962100.tif 000005
【図５】
0005962100.tif 000006
【図６】
0005962100.tif 000007
【図７】
0005962100.tif 000008
【図８】
0005962100.tif 000009
【図９】
0005962100.tif 000010
【図１０】
0005962100.tif 000011
【図１１】
0005962100.tif 000012
【図１２】
0005962100.tif 000013
【図１３】
0005962100.tif 000014
【図１４】
0005962100.tif 000015
【図１５】
0005962100.tif 000016
【図１６】
0005962100.tif 000017
【図１７】
0005962100.tif 000018
【図１８】
0005962100.tif 000019
【図１９】
0005962100.tif 000020
【図２０】
0005962100.tif 000021
【図２１】
0005962100.tif 000022
【図２２】
0005962100.tif 000023
【図２３】
0005962100.tif 000024
【図２４】
0005962100.tif 000025
【図２５】
0005962100.tif 000026
【図２６】
0005962100.tif 000027
【図２７】
0005962100.tif 000028
【図２８】
0005962100.tif 000029
【図２９】
0005962100.tif 000030
【図３０】
0005962100.tif 000031
【図３１】
0005962100.tif 000032
【図３２】
0005962100.tif 000033