(57)【要約】【課題】メッセージングネットワークシステムでメッセージを送受信する方法を提供する。【解決手段】本発明のメッセージングネットワークシステムは、複数の第１のアプリケーションサーバと、前記第１のアプリケーションサーバからメッセージを受信し、かつ／または、前記第１のアプリケーションサーバにメッセージを送信する複数の第２のアプリケーションサーバと、前記第１のアプリケーションサーバ及び前記第２のアプリケーションサーバのいずれとも接続されたメッセージングサーバとを含み、前記第１のアプリケーションサーバ及び第２のアプリケーションサーバは、前記メッセージングサーバをラウンドロビン方式で選択する。【選択図】図３
2010157225.tif 000002
【特許請求の範囲】
【請求項１】
メッセージングネットワークシステムにおいて、
複数の第１のアプリケーションサーバと、
前記第１のアプリケーションサーバからメッセージを受信し、かつ／または、前記第１のアプリケーションサーバにメッセージを送信する複数の第２のアプリケーションサーバと、
前記第１のアプリケーションサーバ及び前記第２のアプリケーションサーバのいずれにも接続されたメッセージングサーバと、を含み、
前記第１のアプリケーションサーバ及び第２のアプリケーションサーバは、前記メッセージングサーバをラウンドロビン方式で選択することを特徴とするメッセージングネットワークシステム。
【請求項２】
前記第１のアプリケーションサーバは、外部からのサービス要請メッセージを受信して前記メッセージングサーバに伝送する第１のメッセージコネクタを含み、
前記第１のメッセージコネクタは、前記サービス要請メッセージを前記メッセージングネットワーク上の全てのメッセージングサーバを対象にしてラウンドロビン方式で伝送することを特徴とする、請求項１に記載のメッセージングネットワークシステム。
【請求項３】
前記第２のアプリケーションサーバは、前記第１のアプリケーションサーバからのサービス要請メッセージに対応する応答メッセージを前記メッセージングサーバに伝送する第２のメッセージコネクタを含み、
前記第２のメッセージコネクタは、前記応答メッセージを前記メッセージングネットワーク上の全てのメッセージングサーバを対象にしてラウンドロビン方式で伝送することを特徴とする、請求項２に記載のメッセージングネットワークシステム。
【請求項４】
前記メッセージングサーバは、
前記第１のアプリケーションサーバから受信した全てのメッセージに対して許容または禁止を判断し、許容されたメッセージのみを前記第２のアプリケーションサーバに伝送するようにメッセージフィルタを制御するフィルタ管理モジュールを含むことを特徴とする、請求項３に記載のメッセージングネットワークシステム。
【請求項５】
前記第１のメッセージコネクタ及び第２のメッセージコネクタは、前記メッセージングネットワーク上のメッセージングサーバのうち一つのメッセージングサーバとの接続が異常終了した場合、前記第１のアプリケーションサーバと第２のアプリケーションサーバとの間のメッセージ送受信を前記メッセージングネットワーク上の他のメッセージングサーバを介して行うことを特徴とする、請求項３に記載のメッセージングネットワークシステム。
【請求項６】
メッセージングネットワークシステムのメッセージ送受信方法において、
複数の第１のアプリケーションサーバとメッセージングネットワーク上の全てのメッセージングサーバとの間の接続を設定し、
複数の第２のアプリケーションサーバとメッセージングネットワーク上の前記全てのメッセージングサーバとの間の接続を設定し、
前記第１のアプリケーションサーバからのサービス要請メッセージをメッセージングネットワーク上の全てのメッセージングサーバを対象にしてラウンドロビン方式で選択して伝送し、
前記サービス要請メッセージに対応する前記第２のアプリケーションサーバの応答メッセージをメッセージングネットワーク上の全てのメッセージングサーバを対象にしてラウンドロビン方式で選択して伝送することを含むメッセージングネットワークシステムのメッセージ送受信方法。
【請求項７】
前記第１のアプリケーションサーバから受信したメッセージに含まれた目的地情報に基づいて、前記受信したメッセージを第２のアプリケーションサーバに伝送することをさらに含む、請求項６に記載のメッセージングネットワークシステムのメッセージ送受信方法。
【請求項８】
前記メッセージングネットワーク上のメッセージングサーバのうち一つのメッセージングサーバとの接続が非正常に終了した場合、前記第１のアプリケーションサーバと第２のアプリケーションサーバとの間のメッセージ送受信は、前記メッセージングネットワーク上の他のメッセージングサーバを介して行うことを特徴とする、請求項６に記載のメッセージングネットワークシステムのメッセージ送受信方法。
【請求項９】
請求項６から請求項８のうちいずれか一つの項に記載されたメッセージ送受信方法の各段階をコンピュータ上で行うためのプログラムを記録したコンピュータ読取可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、メッセージングネットワークシステムに関するもので、より詳細には、メッセージングネットワークシステムでメッセージを送受信する方法に関するものである。
【背景技術】
【０００２】
図１は、従来技術に係るメッセージングネットワークシステムの接続構造を示した図である。
【０００３】
図１に示すように、従来技術に係るメッセージングネットワークシステム１０は、多数の第１のアプリケーションサーバ１１、多数の第２のアプリケーションサーバ１２及び１以上のメッセージングサーバ１３を含む。
【０００４】
第１のアプリケーションサーバ１１及び第２のアプリケーションサーバ１２は、それぞれ通信可能なターミナルノードであって、例えば、ゲームサーバ、ゲームサーバに接続されるログインサーバ、ランキングサーバ、データベースサーバ、チャンネルリストサーバ、公知サーバなどで具現される。
【０００５】
第１のアプリケーションサーバ１１及び第２のアプリケーションサーバ１２は、メッセージングネットワークを構成する各メッセージングサーバ１３のうち一つに接続される。
【０００６】
メッセージングサーバ１３は、第１のアプリケーションサーバ１１と第２のアプリケーションサーバ１２との間のメッセージ送受信を行い、互いにメッシュ構造で接続されたメッセージングネットワークを構成している。例えば、第１のアプリケーションサーバ１１―ａは、一つのメッセージングサーバ１３―１のみに接続されているので、メッセージを受信しようとする第２のアプリケーションサーバ１２―Ａが他のメッセージングサーバ１３―３に接続されている場合、そのメッセージングサーバ１３―３にメッセージを伝達する方式で動作する。
【０００７】
また、メッセージングサーバ１３は、メッセージキュー（Ｍｅｓｓａｇｅ  Ｑｕｅｕｅ；ＭＱ）方式、すなわち、第１のアプリケーションサーバ１１が送信したメッセージをメッセージングサーバ１３で格納しておき、要請する第２のアプリケーションサーバ１２に伝達する方式で動作する。
【０００８】
しかしながら、上述したような従来のメッセージングネットワークシステムによれば、メッセージングサーバがメッセージキュー（ＭＱ）にメッセージを格納しておき、要請するアプリケーションサーバに伝達する方式を使用するので、ユーザ応答時間の速さが必要なインターネットサービスにおいて伝達遅延時間が発生するという問題がある。
【０００９】
また、従来技術に係るメッセージングネットワークシステムによれば、通信対象になるアプリケーションサーバの位置によって伝達遅延時間の変動が激しいので、一貫したユーザ応答時間を期待できないという問題がある。
【００１０】
また、従来技術に係るメッセージングネットワークシステムによれば、任意のアプリケーションサーバが多量のメッセージを生産する場合、該当アプリケーションサーバが接続されたメッセージングサーバに過負荷が発生するが、他のメッセージングサーバがその負荷に充分に耐えられるとしても、効果的に負荷を分散できないので、過負荷が発生したメッセージングサーバに接続された全てのアプリケーションサーバにおいて性能低下が発生するという問題がある。
【００１１】
また、従来技術に係るメッセージングネットワークシステムによれば、受信対象になるアプリケーションサーバがグループである場合、メッセージングサーバは、そのグループに属した任意のアプリケーションサーバにメッセージを伝送するが、アプリケーションサーバが接続されたメッセージングサーバによってトラフィックの集中現象が発生するという問題がある。
【００１２】
また、従来技術に係るメッセージングネットワークシステムによれば、メッセージングサーバがメッシュ構造で接続されているので、効果的なメッセージ伝達のために、全てのアプリケーションがどのメッセージングサーバに接続されているかを知らなければならない。そして、このために、各メッセージングサーバは、自身に接続されたアプリケーション目録を他のメッセージングサーバと交換しなければならない。メッセージングサーバの数が増加するほど、オーバーヘッドが増加するようになり、大量のトラフィックをサポートしなければならないサービスの場合、メッセージングサーバを追加するとしても所望の性能を期待できないという問題がある。
【００１３】
また、従来技術に係るメッセージングネットワークシステムによれば、任意のメッセージングサーバに障害が発生すれば、そのメッセージングサーバに接続された全てのアプリケーションサーバに障害が発生するようになり、このような障害は、そのアプリケーションサーバが他のメッセージングサーバを探してそれに接続し、接続情報が他の全てのメッセージングサーバに伝播されるまで継続するという問題がある。
【発明の概要】
【発明が解決しようとする課題】
【００１４】
本発明の一実施例は、アプリケーションサーバ間に必要なホップ数を最少にし、メッセージキュー（ＭＱ）をなくすことによってアプリケーションサーバ間の伝送遅延時間を最小化することができ、ユーザ応答時間が速いメッセージングネットワークシステムをインターネットサービスユーザに提供する。
【００１５】
また、本発明の一実施例は、メッセージングサーバ間に交換する情報がないので、メッセージングサーバの数によるオーバーヘッドが発生せず、メッセージングサーバを追加した分だけメッセージングネットワーク全体の性能が一定に増加するメッセージングネットワークシステムを提供する。
【００１６】
また、本発明の一実施例は、アプリケーションサーバが送信するメッセージが各メッセージングサーバに均一に分散されるので、メッセージングサーバ間の負荷分散が効果的に行われるメッセージングネットワークシステムを提供する。
【００１７】
また、本発明の一実施例は、メッセージングネットワーク上の各アプリケーションサーバが全てのメッセージングサーバに接続されているので、一つのメッセージングサーバに障害が発生したとしても、直ちに他のメッセージングサーバを介してメッセージを取り交わすことができるメッセージングネットワークシステムを提供する。
【課題を解決するための手段】
【００１８】
上述した技術的課題を達成するための技術的手段として、本発明の第１の側面は、メッセージングネットワークシステムにおいて、複数の第１のアプリケーションサーバと、前記第１のアプリケーションサーバからメッセージを受信し、かつ／または、前記第１のアプリケーションサーバにメッセージを送信する複数の第２のアプリケーションサーバと、前記第１のアプリケーションサーバ及び前記第２のアプリケーションサーバのいずれにも接続されたメッセージングサーバとを含み、前記第１のアプリケーションサーバ及び第２のアプリケーションサーバは、前記メッセージングサーバをラウンドロビン方式で選択することを特徴とするメッセージングネットワークシステムを提供する。
【００１９】
上述した技術的課題を達成するための技術的手段として、本発明の第２の側面は、メッセージングネットワークシステムのメッセージ送受信方法において、複数の第１のアプリケーションサーバとメッセージングネットワーク上の全てのメッセージングサーバとの間の接続を設定し、複数の第２のアプリケーションサーバとメッセージングネットワーク上の前記全てのメッセージングサーバとの間の接続を設定し、前記第１のアプリケーションサーバからのサービス要請メッセージをメッセージングネットワーク上の全てのメッセージングサーバを対象にしてラウンドロビン方式で選択して伝送し、前記サービス要請メッセージに対応する前記第２のアプリケーションサーバの応答メッセージをメッセージングネットワーク上の全てのメッセージングサーバを対象にしてラウンドロビン方式で選択して伝送することを含むメッセージングネットワークシステムのメッセージ送受信方法を提供する。
【発明の効果】
【００２０】
上述した本発明の課題解決手段のうち一つによれば、アプリケーションサーバ間に必要なホップ数を最少にし、メッセージキュー（ＭＱ）をなくすことによってアプリケーションサーバ間の伝送遅延時間を最小化することができ、インターネットサービスユーザはユーザ応答時間の短縮を期待することができる。
【００２１】
また、本発明の他の課題解決手段のうち一つによれば、メッセージングサーバ間に交換する情報がないので、メッセージングサーバの数によるオーバーヘッドが発生せず、メッセージングサーバを追加した分だけメッセージングネットワーク全体の性能が一定に増加する。
【００２２】
また、本発明の更に他の課題解決手段のうち一つによれば、アプリケーションサーバが送信するメッセージが各メッセージングサーバに均一に分散されるので、メッセージングサーバ間の負荷分散が効果的に行われる。
【００２３】
また、本発明の更に他の課題解決手段のうち一つによれば、メッセージングサーバが伝達するメッセージも受信グループに含まれている各アプリケーションサーバに均一に分配されるので、アプリケーションサーバ間の負荷分散も効果的に行われる。
【００２４】
また、本発明の更に他の課題解決手段のうち一つによれば、メッセージングネットワーク上の各アプリケーションサーバが全てのメッセージングサーバに接続されているので、一つのメッセージングサーバに障害が発生したとしても、直ちに他のメッセージングサーバを介してメッセージを取り交わすことができ、サービスへの影響をより小さくするか全く無くすることができる。
【図面の簡単な説明】
【００２５】
【図１】従来技術に係るメッセージングネットワークシステムの接続構造を示した図である。
【図２】本発明の一実施例に係るメッセージングネットワークの概念を説明するための図である。
【図３】本発明の一実施例に係るメッセージングネットワークシステムの接続構造を示した図である。
【図４】本発明の一実施例に係るメッセージングネットワークシステムの細部構成図である。
【図５】本発明の一実施例に係るメッセージ伝送方法を説明するための図である。
【図６】本発明の一実施例に係るアプリケーションサーバに与えられるアドレス体系を説明するための図である。
【図７】本発明の一実施例に係るメッセージングネットワークシステムの負荷分散方法を説明するための図である。
【図８】本発明の一実施例に係る多重ＩＤＣをサポートするメッセージングネットワークシステムを説明するための図である。
【図９】本発明の一実施例に係るメッセージの送受信方法を説明するためのシーケンス図である。
【発明を実施するための形態】
【００２６】
以下、本発明の属する技術分野で通常の知識を有する者が容易に実施できるように、添付の図面を参照して本発明の実施例を詳細に説明する。本発明は、多様な形態で具現可能であり、ここで説明する実施例によって限定されるものでない。そして、図面では、本発明を明確に説明するために、説明と関係のない部分は省略し、明細書全体にわたって類似した部分には類似した図面符号を付した。
【００２７】
明細書全体で、一つの部分が他の部分と「接続」あるいは「連結」されているというとき、これは、「直接的に接続」あるいは「直接的に連結」されている場合だけでなく、その中間に他の素子、装置などを挟んで「電気的に接続」あるいは「電気的に接続」されている場合も含む。また、一つの部分が一つの構成要素を「含む」というとき、これは、特別に反対の記載がない限り、他の構成要素を除外するのでなく、他の構成要素をさらに含むことができることを意味する。
【００２８】
以下では、図２〜図９を参照して、本発明の一実施例に係るメッセージングネットワークシステムでメッセージを送受信する方法を説明する。
【００２９】
図２は、本発明の一実施例に係るメッセージングネットワークの概念を説明するための図である。
【００３０】
図２に示すように、本発明の一実施例に係るメッセージングネットワークは、仮想的に一つのメッセージングバスを提供し、メッセージングネットワーク上のアプリケーションサーバ１００は、このメッセージングバスを共有し、同一のネットワークに接続された他のアプリケーションサーバと通信できるようになる。
【００３１】
図３は、本発明の一実施例に係るメッセージングネットワークシステムの接続構造を示した図である。
【００３２】
図３を参照すれば、本発明の一実施例に係るメッセージングネットワークシステム１０００は、多数の第１のアプリケーションサーバ１００、多数の第２のアプリケーションサーバ２００及び１以上のメッセージングサーバ３００を含む。
【００３３】
第１のアプリケーションサーバ１００及び第２のアプリケーションサーバ２００は、通信可能なターミナルノードであって、第１のアプリケーションサーバ１００及び第２のアプリケーションサーバ２００は、それぞれメッセージングネットワーク上の全てのメッセージングサーバ３００に接続される。すなわち、第１のアプリケーションサーバ１００―ａはメッセージングサーバ３１０及びメッセージングサーバ３２０にそれぞれ接続され、第２のアプリケーションサーバ２００―Ａもメッセージングサーバ３１０及びメッセージングサーバ３２０にそれぞれ接続される。
【００３４】
メッセージングサーバ３００は、第１のアプリケーションサーバ１００と第２のアプリケーションサーバ２００との間のメッセージ伝送を行い、効率的なメッセージ伝送のために伝送経路を設定したり、第１のアプリケーションサーバ１００と第２のアプリケーションサーバ２００との間の接続関係を設定したりする。
【００３５】
上述した構成で、メッセージングネットワーク上の第１のアプリケーションサーバ１００及び第２のアプリケーションサーバ２００は、それぞれ全てのメッセージングサーバ３００に接続される重複したスター構造となっており、第１のアプリケーションサーバ１００及び第２のアプリケーションサーバ２００は、メッセージングサーバ３００をラウンドロビン（Ｒｏｕｎｄ―Ｒｏｂｂｉｎ）方式で選択する。これについては、後で詳細に説明することにする。
【００３６】
上述したような本発明の一実施例に係るメッセージングネットワークシステム１０００は、メッセージングネットワーク上の第１のアプリケーションサーバ１００及び第２のアプリケーションサーバ２００がそれぞれ全てのメッセージングサーバ３００に接続される重複したスター構造となっているので、どのメッセージングサーバを介しても所望のアプリケーションサーバにアクセスすることができる。したがって、任意のメッセージングサーバに障害が発生したとしても、メッセージングネットワーク全体を正常に運営することができる。
【００３７】
また、本発明の一実施例に係るメッセージングネットワークシステム１０００は、メッセージングネットワーク上の各メッセージングサーバが全てのアプリケーションサーバと直接または間接に接続されているので、アプリケーションサーバ間のメッセージ仲介のための全ての情報をそれ自体に格納している。これによって、メッセージングサーバ間に共有情報をシンク（同期）するための作業が必要でないので、メッセージングサーバの追加によって発生し得る運営上の負荷分散も効果的に行われる。また、メッセージングサーバ間に交換する情報がないので、メッセージングサーバの数によるオーバーヘッドが発生せず、メッセージングサーバを追加した分だけメッセージングネットワーク全体の性能が一定に増加する。
【００３８】
図４は、本発明の一実施例に係るメッセージングネットワークシステムの細部構成図である。
【００３９】
図４を参照すれば、本発明の一実施例に係る第１のアプリケーションサーバ１００及び第２のアプリケーションサーバ２００は、それぞれ第１のメッセージコネクタ１１０及び第２のメッセージコネクタ２１０を含み、メッセージングサーバ３１０は、フィルタ管理モジュール３１１、フィルタ３１２、３１３及びチャンネル管理モジュール３１４を含んで構成される。
【００４０】
第１のアプリケーションサーバ１００及び第２のアプリケーションサーバ２００は、それぞれ第１のメッセージコネクタ１１０及び第２のメッセージコネクタ２１０を用いてメッセージングサーバ３１０に接続され、外部からのサービス要請メッセージを送受信する。
【００４１】
第１のメッセージコネクタ１１０及び第２のメッセージコネクタ２１０は、メッセージングネットワーク上の他のアプリケーションサーバとの通信を提供し、仮想ソケットをサポートする。
【００４２】
第１のメッセージコネクタ１１０及び第２のメッセージコネクタ２１０は、それぞれ第１のアプリケーションサーバ１００及び第２のアプリケーションサーバ２００の要請によって、第１のアプリケーションサーバ１００及び第２のアプリケーションサーバ２００をメッセージングネットワーク上の全てのメッセージングサーバに接続する。ここで、第１のメッセージコネクタ１１０及び第２のメッセージコネクタ２１０は、第１のアプリケーションサーバ１００及び第２のアプリケーションサーバ２００と任意のメッセージングサーバとの間の接続が一時的に終了した場合、第１のアプリケーションサーバ１００及び第２のアプリケーションサーバ２００に通報することなしに自動的に接続を復旧することができる。このとき、接続復旧過程でのメッセージ送受信は、第１のアプリケーションサーバ１００及び第２のアプリケーションサーバ２００がメッセージングネットワーク上の全てのメッセージングサーバに接続されているので、他のメッセージングサーバを介して正常に処理することができる。
【００４３】
また、第１のメッセージコネクタ１１０及び第２のメッセージコネクタ２１０は、第１のアプリケーションサーバ１００及び第２のアプリケーションサーバ２００から要請されたメッセージ伝送が不可能である場合、これに対するアラート機能を提供する。このとき、メッセージ伝送が不可能な場合としては、対象アプリケーションサーバがメッセージングネットワークに接続されていない場合、メッセージングネットワークへの接続復旧が不可能である場合、メッセージングネットワークの構成上、対象アプリケーションサーバへの伝達が不可能である場合、セッション伝送方式である場合、及び、メッセージ伝送時、予め指定されたタイムアウトを超えるまでに伝送が完了していない場合などがある。例えば、セッション伝送方式である場合、セッションが開始されていないとき、メッセージ伝送が不可能となる。
【００４４】
以上では、第１のメッセージコネクタ１１０及び第２のメッセージコネクタ２１０が第１のアプリケーションサーバ１００及び第２のアプリケーションサーバ２００内に存在することを例に挙げて説明したが、これは例示に過ぎず、これによって限定されるものでなく、それぞれをメッセージングネットワーク上の別個のモジュールとして具現することもできる。
【００４５】
一方、本発明の一実施例に係るメッセージングサーバ３１０は、フィルタ管理モジュール３１１、フィルタ３１２及びチャンネル管理モジュール３１３を含んで構成される。
【００４６】
フィルタ管理モジュール３１１は、ＡＣＬフィルタ３１２及びＥｔｃフィルタ３１３を管理する。すなわち、フィルタ管理モジュール３１１は、メッセージングサーバ３１０が受信する全てのメッセージに対してＡＣＬフィルタ３１２及びＥｔｃフィルタ３１３を適用し、ＡＣＬフィルタ３１２及びＥｔｃフィルタ３１３の適用後にメッセージの許容／禁止を判断し、許容されたメッセージのみを対象アプリケーションサーバに送信する。このとき、フィルタ管理モジュール３１１は、禁止されたメッセージに対してはフィルタの設定によって送信アプリケーションサーバにＮＡＣＫメッセージを発送することができる。
【００４７】
ＡＣＬフィルタ３１２は、各メッセージの送受信者情報を確認し、権限のあるアプリケーションサーバが送ったメッセージであるかを検査する。ＡＣＬフィルタ３１２は、適用されるＡＣＬレベルによってドメインレベル及びメソッドレベルの二つの方式がサポートされる。
【００４８】
ＡＣＬフィルタ３１２がドメインレベル方式である場合は、メッセージの送受信者のアドレスからドメインＩＤを確認し、許容されたドメインのアプリケーションサーバが送ったメッセージであるかを検査する。このとき、ドメインレベルのＡＣＬ検査のために、ＡＣＬフィルタは、各ドメインのアプリケーションサーバに許容又は禁止された状態のドメイン目録を管理する。
【００４９】
ＡＣＬフィルタ３１２がメソッドレベル方式である場合は、ドメインレベル方式のＡＣＬフィルタが行う検査と共に、メッセージのペイロード部分を調査し、許容されたコマンドのメッセージであるかを追加で検査する。
【００５０】
表１は、本発明の一実施例に係るＡＣＬフィルタの設定に必要な情報の一例である。
【表１】
2010157225.tif 000003
【００５１】
図５は、本発明の一実施例に係るメッセージ伝送方法を説明するための図である。
【００５２】
図５を参照すれば、アプリケーションサーバＡとアプリケーションサーバＢとの間に伝送されるメッセージは、バイナリデータ形態のメッセージを使用し、最大メッセージサイズは４ＧＢであるが、６４ＫＢより大きいメッセージは６４ＫＢ以内の小さい単位で分けられて伝送される。
【００５３】
メッセージの伝送時間は、メッセージ全体を送信及び受信する時間と、メッセージが一つのノードから他のノードに伝達される時間との和である。通常、インターネットデータセンタ（ＩＤＣ）内の一つのノードから他のノードに伝達されるのにかかる遅延時間は、例えば、１ｍｓ以内であるが、メッセージ自体を送受信する時間はメッセージのサイズに比例する。例えば、１ＭＢのメッセージの場合、１００Ｍｂｐｓネットワークと仮定すれば、メッセージの伝送時間は８０ｍｓになる。
【００５４】
さらに、メッセージをリレーするサーバ、すなわち、メッセージングサーバ３１０が中間に存在する場合、メッセージのサイズが大きくなれば、送受信時間が２倍に増加するが、メッセージを小さい単位で分けて伝送すれば、常にその小さい単位だけの伝送時間のみが必要となる。
【００５５】
図６は、本発明の一実施例に係るアプリケーションサーバに与えられるアドレス体系を説明するための図である。
【００５６】
図６に示すように、本発明の一実施例に係るメッセージングネットワークシステム１０００においては、各アプリケーションサーバに対して所定のアドレスが与えられ、各アプリケーションサーバは、このアドレスを用いて他のアプリケーションサーバと通信することができる。
【００５７】
アドレス情報は、ドメインＩＤ（Ｄｏｍａｉｎ―ＩＤ）、アイディーシーＩＤ（ＩＤＣ―ＩＤ）、サーバＩＤ（Ｓｅｒｖｅｒ―ＩＤ）及びソケットＩＤ（Ｓｏｃｋｅｔ―ＩＤ）を含む。
【００５８】
ドメインＩＤは、同一の機能を行うアプリケーションサーバを指定するのに使用され、エニーキャスト及びマルチキャストメッセージは、通常、ドメインＩＤを基準にして伝送する。
【００５９】
アイディーシーＩＤは、アプリケーションサーバが属したＩＤＣ（Ｉｎｔｅｒｎｅｔ  Ｄａｔａ  Ｃｅｎｔｅｒ）を区分するために使用され、アイディーシーＩＤ値が０であれば任意のＩＤＣにメッセージが伝送され、それ以外の値であれば該当ＩＤＣにメッセージが伝送される。
【００６０】
サーバＩＤは、アプリケーションサーバを区別するために使用され、ドメインＩＤ、アイディーシーＩＤと結合して固有ＩＤとなる。メッセージングネットワーク上の全てのアプリケーションサーバは、それぞれのサーバＩＤを有する。例えば、サーバＩＤ値が０であれば、エニーキャストで該当ドメインに属した任意のアプリケーションサーバにメッセージが伝送され、サーバＩＤ値が０ｘＦＦＦＦであれば、マルチキャストで該当ドメインに属した全てのアプリケーションサーバにメッセージが伝送される。
【００６１】
ソケットＩＤは、一つのアプリケーションサーバ内で多数の通信チャンネルを使用しようとする場合、各チャンネルを区別するために使用される。
【００６２】
図７は、本発明の一実施例に係るメッセージングネットワークシステムの負荷分散方法を説明するための図である。
【００６３】
図７に示すように、本発明の一実施例に係るメッセージングネットワークシステムは、特定ドメインにエニーキャストメッセージを伝送するとき、そのドメイン内で受信対象になるアプリケーションサーバを適切に分散して選択する。すなわち、メッセージングサーバは、ラウンドロビン方式で該当ドメインに属した各アプリケーションサーバに順次メッセージを伝送する。
【００６４】
例えば、アプリケーションサーバＡがドメイン１０１に送った三つのエニーキャストメッセージは、ドメイン１０１に属しているアプリケーションサーバＢ、Ｃ、Ｄにそれぞれ一つずつ伝達される。
【００６５】
上述したような本発明の一実施例に係るメッセージングネットワークシステムにおいては、メッセージングサーバが伝達するメッセージを受信グループに含まれている各アプリケーションサーバに均一に分配するので、アプリケーションサーバ間の負荷分散が効果的に行われる。
【００６６】
図８は、本発明の一実施例に係る多重ＩＤＣをサポートするメッセージングネットワークシステムを説明するための図である。
【００６７】
図８に示すように、本発明の一実施例に係るメッセージングネットワークシステムは、メッセージングサーバが多数のＩＤＣに分散設置されて動作することができ、このとき、各メッセージコネクタは、基本的に同一のＩＤＣに属したメッセージングサーバにメッセージを伝送することによってＩＤＣ間の不必要な通信負荷が発生することを防止する。一方、同一のＩＤＣに属した全てのメッセージングサーバが障害やその他の事由で通信不可能である場合は、他のＩＤＣに属したメッセージングサーバにメッセージを送信することができる。
【００６８】
図９は、本発明の一実施例に係るメッセージの送受信方法を説明するためのシーケンス図である。
【００６９】
段階（Ｓ１１）で、第１のアプリケーションサーバ１００は、接続を望む第２のアプリケーションサーバ２００への接続要請メッセージを第１のメッセージコネクタ１１０に伝達し、段階（Ｓ１２）で、第１のメッセージコネクタ１１０は、メッセージングネットワーク上の全てのメッセージングサーバ３００と第１のアプリケーションサーバ１００との間に仮想接続を設定する。
【００７０】
段階（Ｓ１３）で、第１のメッセージコネクタ１１０は、第１のアプリケーションサーバ１００に接続された全てのメッセージングサーバ３００を対象にして第１のアプリケーションサーバ１００からの接続要請メッセージをラウンドロビン方式で選択して伝送する。
【００７１】
例えば、メッセージングサーバ３００としてＭ１、Ｍ２、Ｍ３がある場合、接続要請メッセージを、Ｍ１に伝送したとした場合、次の接続要請メッセージは、Ｍ２に伝送する。そして、さらに次の接続要請メッセージはＭ３に伝送する。さらに次に接続要請メッセージは、Ｍ１に伝送する。このように、メッセージングサーバを順番に選択して接続要請メッセージを伝送することを、「接続要請メッセージをラウンドロビン方式で選択して伝送する」という。
【００７２】
ラウンドロビン方式の選択を実現するためには、例えば、全てのメッセージングサーバの識別子のリストがメモリなどに記憶され、第１のメッセージコネクタ１１０が、あるメッセージングサーバに接続要請メッセージを伝送すると、そのメッセージングサーバの識別子の当該リスト上の位置をメモリ上に記憶する。次に接続要請メッセージを伝送する場合には、メモリ上に記憶された位置を読出し、次の位置を計算し、その位置のリスト上のメッセージングサーバの識別子を読出し、次の位置をメモリに記憶する。リストの位置は、例えば、リストの先頭からの要素数として表わすことができる。
【００７３】
段階（Ｓ１４）で、メッセージングサーバ３００は、第１のメッセージコネクタ１１０から受信した第１のアプリケーションサーバ１００の接続要請メッセージに含まれた目的地情報を確認した後、段階（Ｓ１５）で、メッセージングサーバ３１０、３２０は、該当の第２のメッセージコネクタ２１０にメッセージを伝送する。
【００７４】
段階（Ｓ１６）で、第２のメッセージコネクタ２１０は、第２のアプリケーションサーバ２００にメッセージを伝送する。
【００７５】
第１のアプリケーションサーバ１００のサービス要請メッセージが受信されれば、段階（Ｓ１７）で、第２のアプリケーションサーバ２００は、応答メッセージを第２のメッセージコネクタ２１０に伝達し、段階（Ｓ１８）で、第２のメッセージコネクタ２１０は、メッセージングネットワーク上の全てのメッセージングサーバ３００と第２のアプリケーションサーバ２００との間に仮想の接続を設定する。
【００７６】
段階（Ｓ１９）で、第２のメッセージコネクタ２１０は、第２のアプリケーションサーバ２００に接続された全てのメッセージングサーバ３００を対象にして第２のアプリケーションサーバ２００からの接続要請メッセージをラウンドロビン方式で選択して伝送する。
【００７７】
段階（Ｓ２０）で、メッセージングサーバ３００は、第２のメッセージコネクタ２１０から受信した第２のアプリケーションサーバ２００の接続要請メッセージに含まれた目的地情報を確認し、段階（Ｓ２１）で、メッセージングサーバ３００は、第１のメッセージコネクタ１１０にメッセージを伝送する。
【００７８】
最後に、段階（Ｓ２２）で、第１のメッセージコネクタ１１０は、第１のアプリケーションサーバ１００に第２のアプリケーションサーバ２００の応答メッセージを伝送する。
【００７９】
上述した構成で、システム障害などによって第１のアプリケーションサーバ１００に接続されたメッセージングサーバ３００のうち第１のメッセージングサーバ３１０が正常でなく終了し、異常終了すれば、第１のメッセージコネクタ１１０は、第１のメッセージングサーバ３１０との接続を自動的に復旧し、このとき、接続復旧過程でのメッセージ送受信は、第１のアプリケーションサーバ１００に接続された他のメッセージングサーバ、すなわち、第２のメッセージングサーバ３２０との接続を行う。したがって、各アプリケーションサーバがメッセージングネットワーク上の全てのメッセージングサーバに接続されているので、他のメッセージングサーバを介して正常に処理することができる。
【００８０】
本発明の一実施例は、コンピュータによって実行されるプログラムモジュールのようなコンピュータによって実行可能な命令語を含む記録媒体の形態でも具現される。コンピュータ読取可能な媒体は、コンピュータによってアクセスされる任意の可用媒体であって、揮発性及び非揮発性媒体、分離型及び非分離型媒体を全て含む。また、コンピュータ読取可能な媒体は、コンピュータ格納媒体及び通信媒体を全て含むことができる。コンピュータ格納媒体は、コンピュータ読取可能な命令語、データ構造、プログラムモジュール又はその他データのような情報格納のための任意の方法又は技術で具現された揮発性及び非揮発性、分離型及び非分離型媒体を全て含む。通信媒体は、典型的にコンピュータ読取可能な命令語、データ構造、プログラムモジュール、搬送波のような変調されたデータ信号のその他データ、又はその他伝送メカニズムを含み、任意の情報伝達媒体を含む。
【００８１】
一般的なコンピュータは、プロセッサと、メモリ（揮発性メモリ、不揮発性メモリ）と、入出力インターフェースなどがバスを介して相互に接続された構成を有する。プログラムモジュールがメモリにロードされると、プロセッサにより実行可能となる。メモリモジュールがプロセッサにより実行され、他のコンピュータや装置と通信を行なう場合には、入出力インターフェースが動作する。
【００８２】
本発明の一実施形態を一般的なコンピュータで実施する場合、第１のアプリケーションサーバからのサービス要請メッセージが伝送されると、メッセージングネットワーク上の全てのメッセージングサーバを対象にしてラウンドロビン方式で選択する第１のプログラムモジュールが動作する。この第１のプログラムモジュールは、直前にサービス要請メッセージが伝送された際に選択されたメッセージングサーバの識別子あるいはそれと同等の情報をメモリより読出し、今回選択するメッセージングサーバの識別子あるいはそれと同等の情報を決定し、決定されたメッセージングサーバの識別子あるいはそれと同等の情報をメモリに記憶するとともに、決定されたメッセージングサーバにサービス要請メッセージを伝送する。
【００８３】
同様に、第２のアプリケーションサーバからのサービス要請メッセージが伝送されると、メッセージングネットワーク上の全てのメッセージングサーバを対象にしてラウンドロビン方式で選択する第２のプログラムモジュールが動作する。この第２のプログラムモジュールは、直前にサービス要請メッセージが伝送された際に選択されたメッセージングサーバの識別子あるいはそれと同等の情報をメモリより読出し、今回選択するメッセージングサーバの識別子あるいはそれと同等の情報を決定し、決定されたメッセージングサーバの識別子あるいはそれと同等の情報をメモリに記憶するとともに、決定されたメッセージングサーバにサービス要請メッセージを伝送する。第２のプログラムモジュールが選択するメッセージングサーバは、第１のプログラムモジュールが選択するメッセージングサーバと独立していてもよい。あるいは、直前に第１のプログラムモジュールがメッセージングサーバを選択した場合には、第１のプログラムモジュールにより選択されたメッセージングサーバの次のメッセージングサーバが選択されるようになっていてもよい。この場合、第１のプログラムモジュールと第２のプログラムモジュールとは、記憶領域の一部を共有したり、通信を行なったりして、一方が選択したメッセージングサーバが他方にも伝達される。
【００８４】
上述した本発明の説明は、例示のためのものであり、本発明の属する技術分野の通常の知識を有する者であれば、本発明の技術思想や必須の特徴を変更しない範囲で他の具体的な形態に容易に変形可能であることを理解することができる。したがって、上述した各実施例は、全ての面で例示的なものであり、限定的なものでないことを理解しなければならない。例えば、単一型として説明されている各構成要素は、分散されて実施されることも可能であり、これと同様に、分散されたものとして説明されている各構成要素も結合形態で実施されることが可能である。
【００８５】
本発明の範囲は、上述した詳細な説明より後述する特許請求の範囲によって定めるもので、特許請求の範囲の意味及び範囲、そして、その均等概念から導出される全ての変更又は変形された形態は、本発明の範囲に含まれるものと解釈されなければならない。
【符号の説明】
【００８６】
１００：第１のアプリケーションサーバ、２００：第２のアプリケーションサーバ、３００：メッセージングサーバ、１０００：メッセージングネットワークシステム
【図１】
2010157225.tif 000004
【図２】
2010157225.tif 000005
【図３】
2010157225.tif 000006
【図４】
2010157225.tif 000007
【図５】
2010157225.tif 000008
【図６】
2010157225.tif 000009
【図７】
2010157225.tif 000010
【図８】
2010157225.tif 000011
【図９】
2010157225.tif 000012