(57)【要約】  本発明に係るバス型ネットワーク構造の通信ネットワークシステムでサブシステム間のロードを調節する方法は、上記通信ネットワークシステムが、メッセージルーティングを処理するブローカと、コネクタと、このコネクタを介してブローカと連結する通信可能なターミナルノードである多数のサービスと、を含み、通信ネットワークシステム上の、メッセージルーティングを処理するためにルーティング経路を設定したり、前記コネクタとの連結関係を設定したりするモジュールである各ブローカを、フルメッシュ形態で相互連結する段階と、コネクタで各ブローカのネットワークアドレスが記録されたブローカリストを維持する段階と、コネクタが、サービスからサービス登録メッセージを受信し、ブローカリストのうちの１つのブローカを任意に選択して連結要請メッセージを送信する段階と、選択されたブローカが連結要請メッセージを受信し、自身の現在ロードとロード限界を考慮してコネクタとの連結可否を判断する段階とを含む。【選択図】図１
2008524911.tif 000002
【特許請求の範囲】
【請求項１】
バス型ネットワーク構造の通信ネットワークシステムにおけるサブシステム間のロードを調節する方法であって、
前記通信ネットワークシステムは、メッセージルーティングを処理するブローカと、コネクタと、前記コネクタを介して前記ブローカと連結する通信可能なターミナルノードである多数のサービスと、を含み、
前記通信ネットワークシステム上の、メッセージルーティングを処理するためにルーティング経路を設定したり、前記コネクタとの連結関係を設定したりするモジュールである各ブローカを、フルメッシュ形態で相互連結する段階と、
前記コネクタで前記各ブローカのネットワークアドレスが記録されたブローカリストを維持する段階と、
前記コネクタが前記サービスから前記サービス登録メッセージを受信し、前記ブローカリストのうちの１つのブローカを任意に選択して連結要請メッセージを送信する段階と、
前記選択されたブローカが前記連結要請メッセージを受信し、自身の現在ロードとロード限界を考慮して前記コネクタとの連結可否を判断する段階と、を含むことを特徴とするロード調節方法。
【請求項２】
前記連結可否を判断する前記段階は、
前記コネクタとの連結が設定される際、前記選択されたブローカと連結するコネクタの総数が前記ロード限界を超過する場合に、前記連結要請を拒否することを特徴とする請求項１に記載のロード調節方法。
【請求項３】
前記連結要請が拒否された場合に、前記コネクタが前記ブローカリストのうちの前記選択されたブローカを除いた他のブローカを任意に選択して前記連結要請メッセージを送信する段階をさらに含むことを特徴とする請求項２に記載のロード調節方法。
【請求項４】
バス型ネットワーク構造の通信ネットワークシステムにおけるサブシステム間のロードを調節する方法であって、
前記通信ネットワークシステムは、メッセージルーティングを処理するブローカと、コネクタと、前記コネクタを介して前記ブローカと連結する通信可能なターミナルノードである多数のサービスと、を含み、
前記通信ネットワークシステム上の、メッセージルーティングを処理するためにルーティング経路を設定したり、前記コネクタとの連結関係を設定したりするモジュールである各ブローカを、フルメッシュ形態で相互連結する段階と、
前記通信ネットワークシステムから正常的に終了する第１ブローカが、前記各ブローカのうちの１つである第２ブローカを選択する段階と、
前記第１ブローカと連結したコネクタに、前記第２ブローカとの連結を再設定することを要請する連結再設定メッセージを送信する段階と、
前記コネクタが前記連結再設定メッセージを受信し、前記第２ブローカとの連結を設定して前記コネクタと連結したサービスを登録するためのサービス登録メッセージを前記第２ブローカに送信する段階と、を含むことを特徴とするロード調節方法。
【請求項５】
前記第１ブローカが、前記各ブローカに終了予定情報を送信する段階と、
前記各ブローカが、前記終了予定情報を受信し、前記各ブローカと連結したコネクタに前記終了予定情報を送信する段階と、をさらに含むことを特徴とする請求項４に記載のロード調節方法。
【請求項６】
前記第２ブローカが、自身のルーティング情報を更新し、前記第１ブローカおよび前記各ブローカに前記更新したルーティング情報を送信する段階、をさらに含むことを特徴とする請求項４に記載のロード調節方法。
【請求項７】
前記第１ブローカが、前記更新されたルーティング情報を受信し、前記更新されたルーティング情報を用いて自身のルーティングテーブルを更新する段階と、
前記更新されたルーティングテーブルに、前記コネクタに関するルーティング情報が存在するかを判断する段階と、
前記判断の結果、前記コネクタに関するルーティング情報が存在しない場合に、前記コネクタとの連結を最終終了する段階と、をさらに含むことを特徴とする請求項６に記載のロード調節方法。
【請求項８】
前記連結再設定メッセージの送信から所定の時間が経過した後に、前記コネクタが前記第１ブローカとの連結を維持している場合に、前記第１ブローカが、前記コネクタとの連結を終了して自身を終了させる段階と、をさらに含むことを特徴とする請求項４に記載のロード調節方法。
【請求項９】
前記第１ブローカと前記各ブローカとの間で、ブローカ別に現在ロードとロード限界に対する情報を含むブローカ状態メッセージが交換され、
前記第２ブローカを選択する前記段階において、前記第１ブローカは、前記ブローカ状態メッセージに基づいて前記第２ブローカを選択することを特徴とする請求項４に記載のロード調節方法。
【請求項１０】
バス型ネットワーク構造の通信ネットワークシステムにおけるサブシステム間のロードを調節する方法において、
前記通信ネットワークシステムは、メッセージルーティングを処理するブローカと、コネクタと、前記コネクタを介して前記ブローカと連結する通信可能なターミナルノードである多数のサービスと、を含み、
前記通信ネットワークシステム上の、メッセージルーティングを処理するためにルーティング経路を設定したり、前記コネクタとの連結関係を設定したりするモジュールである各ブローカを、フルメッシュ形態で相互連結する段階と、
前記各ブローカのうちの１つである第２ブローカが、前記通信ネットワークシステから非正常的に終了する第１ブローカを感知する段階と、
前記第２ブローカが、自身のロード限界を上向きに調整し、前記第１ブローカと連結したコネクタのうちの少なくとも一部のコネクタとの連結を設定する段階と、
前記第２ブローカが、前記連結設定によって自身のルーティング情報を更新し、前記各ブローカに前記更新したルーティング情報を送信する段階と、を含むことを特徴とするロード調節方法。
【請求項１１】
前記一部のコネクタとの連結を設定する前記段階は、
前記第１ブローカと連結したコネクタ数を前記第１ブローカを除いた前記各ブローカの総数で割って得られた値に応じて、前記一部のコネクタ数を決定する段階、を含むことを特徴とする請求項１０に記載のロード調節方法。
【請求項１２】
前記各ブローカと連結したコネクタに前記第１ブローカの終了情報を送信する段階と、
前記コネクタが前記終了情報を受信して自身のブローカリストを更新する段階と、をさらに含むことを特徴とする請求項１０に記載のロード調節方法。
【請求項１３】
前記第１ブローカと前記各ブローカとの間で、ブローカ別に現在状態についての情報を含むブローカ状態メッセージが交換され、
前記各ブローカのうちの１つの第２ブローカが、前記通信ネットワークシステムから非正常的に終了する第１ブローカを感知する前記段階において、前記第２ブローカは、前記ブローカ状態メッセージが正常的に受信されない第１ブローカを感知することを特徴とする請求項１０に記載のロード調節方法。
【請求項１４】
バス型ネットワーク構造の通信ネットワークシステムにおけるサブシステム間のロードを調節する方法であって、
前記通信ネットワークシステムは、メッセージルーティングを処理するブローカと、コネクタと、前記コネクタを介して前記ブローカと連結する通信可能なターミナルノードである多数のサービスと、を含み、
前記通信ネットワークシステム上の、メッセージルーティングを処理するためにルーティング経路を設定したり、前記コネクタとの連結関係を設定したりするモジュールである各ブローカを、フルメッシュ形態で相互連結する段階と、
前記コネクタで前記各ブローカのネットワークアドレスが記録されたブローカリストを維持する段階と、
前記コネクタが、前記通信ネットワークシステムから非正常的に終了する第１ブローカを感知する段階と、
前記ブローカリストから前記第１ブローカのネットワークアドレスを削除して前記ブローカリストを更新する段階と、
前記更新されたブローカリストのうちの任意の第２ブローカを選択し、前記第２ブローカとの連結を設定して前記コネクタと連結したサービスを登録するためのサービス登録メッセージを前記第２ブローカに送信する段階と、を含むことを特徴とするロード調節方法。
【請求項１５】
前記第２ブローカが、自身のルーティング情報を更新し、前記各ブローカに前記更新したルーティング情報を送信する段階と、をさらに含むことを特徴とする請求項１４に記載のロード調節方法。
【請求項１６】
各コネクタは、１つのブローカのみと連結し、
各サービスは、１つのコネクタを介して前記ブローカと連結し、
前記コネクタと前記サービスは、同じプロセス内に含まれることを特徴とする請求項１、４、１０及び１４のいずれか１つに記載のロード調節方法。
【請求項１７】
前記コネクタは、１つのプロセス内に１つだけ存在し、前記サービスは、１つのプロセス内に少なくとも１つ以上存在することを特徴とする請求項１６に記載のロード調節方法。
【請求項１８】
請求項１から１５のいずれか１つに記載のロード調節方法を実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、バス型ネットワーク構造の通信ネットワークシステムにおけるサブシステム間のロードを調節する方法に関し、より詳細には、ある１つのプロセス内に存在する１つ以上のサービスを１つのコネクタを介してメッセージルーティングを処理するブローカに連結させ、ネットワーク上のすべてのブローカをフルメッシュ形態で相互連結するバス型ネットワーク構造において、各ブローカ間のロードバランスを適切に調節するための方法に関する。
【背景技術】
【０００２】
従来技術では、ゲームサービスを提供するすべてのゲームサーバが、メッシュ型構造で連結している。図１は、このような従来技術に係るゲームサーバ間のネットワーク連結を示した図である。
【０００３】
図１に示すように、従来技術によれば、ゲームサーバの連結が追加するたびに、全体ネットワーク全体の観点における連結数は、幾何級数的に増加せざるを得ない。図２は、従来技術においてゲームサーバ数が増加し続けることによって生じるゲームサーバ間のネットワーク連結を示した図である。
【０００４】
このように、ゲームサーバがメッシュ型構造で相互連結する従来技術によれば、ゲームサーバ数の増加によって連結構造が極めて複雑になり、その結果、ゲームユーザの増加によるゲームサーバの拡張が困難になるという問題点が生じていた。特に、ゲームサーバ間の連結を世界的に拡張する場合には、その管理がより一層困難にならざるを得なかった。
【０００５】
さらに、１つのサーバと連結する相手サーバ数が多いほど、全体の連結数は幾何級数的に増加するが、従来技術において、１つのゲームサーバは、ログインサーバ、ランキングサーバ、データベースサーバと連結し、これに追加してチャンネルリストサーバおよび通知（公知）サーバとが１つのマルチキャストグループとして連結されている。したがって、ネットワーク全体に存在する連結数は、実際のゲームサーバ間の連結数を大きく超過することになるため、管理が極めて困難な実情にある。
【０００６】
これにより、すべてのゲームサーバがメッシュ形態で連結する従来技術に係るネットワーク構造から脱し、サーバ間の連結構造の単純化により管理が容易で、かつ効率的なサービス拡張が可能な新しい通信ネットワーク構造の実現が求められているとともに、このような新しい通信ネットワーク構造における各サブシステム間のロードバランスを効率的に調節することが可能な方法が要求されている。
【発明の開示】
【発明が解決しようとする課題】
【０００７】
本発明は、上記従来技術の問題点を解決するために成されたものであって、バス型ネットワーク構造によりサーバ間の連結構造が単純化した新しい通信ネットワークシステムにおいて、各ブローカの現在ロードとロード限界に基づいてコネクタを介したサービスが登録されるブローカを選択し、ブローカが正常的および非正常的に終了する際に、各コネクタと連結したサービスが他のブローカに動的に移動してブローカ間のロードバランスが自動的に調節されるロード調節方法を提供することを目的とする。
【０００８】
また、本発明は、バス型ネットワーク構造によりサーバ間の連結構造が単純化した新しい通信ネットワークシステムにおいて、各サブシステム間の負荷分散を効率的に調節することで、サービスの拡張性および性能拡張性を支援するとともに、維持および管理が容易な通信ネットワークシステムを構築することを目的とする。
【０００９】
また、本発明は、すべてのゲームサーバがメッシュ形態で連結する従来技術に係るネットワーク構造から脱し、サーバ間の連結構造を単純化することで管理が容易で、かつ効率的なサービス拡張が可能な新しい通信ネットワーク構造を提供することを目的とする。
【課題を解決するための手段】
【００１０】
前記の目的を達成し、上述した従来技術の問題点を解決するために、本発明の１つの側面としてのバス型ネットワーク構造の通信ネットワークシステムにおけるサブシステム間のロードを調節する方法は、上記通信ネットワークシステムが、メッセージルーティングを処理するブローカと、コネクタと、このコネクタを介して上記ブローカと連結する通信可能なターミナルノードである多数のサービスとを含み、上記通信ネットワークシステム上の、メッセージルーティングを処理するためにルーティング経路を設定したり、前記コネクタとの連結関係を設定したりするモジュールである各ブローカを、フルメッシュ形態で相互連結する段階と、上記各ブローカのネットワークアドレスが記録されたブローカリストを上記コネクタで維持する段階と、前記コネクタが、上記サービスから前記サービス登録メッセージを受信し、上記ブローカリストのうちの１つのブローカを任意に選択して連結要請メッセージを送信する段階と、上記選択されたブローカが、連結要請メッセージを受信し、自身の現在ロードとロード限界を考慮して上記コネクタとの連結可否を判断する段階とを含むことを特徴とする。
【００１１】
また、本発明の他の側面としてのロード調節方法は、上記通信ネットワークシステム上の、メッセージルーティングを処理するためにルーティング経路を設定したり、前記コネクタとの連結関係を設定したりするモジュールである各ブローカを、フルメッシュ形態で相互連結する段階と、上記通信ネットワークシステムから正常的に終了する第１ブローカが、各ブローカのうちの１つである第２ブローカを選択する段階と、上記第１ブローカと連結したコネクタに、第２ブローカとの連結を再設定することを要請する連結再設定メッセージを送信する段階と、上記コネクタが、上記連結再設定メッセージを受信し、上記第２ブローカとの連結を設定して上記コネクタと連結したサービスを登録するためのサービス登録メッセージを、上記第２ブローカに送信する段階とを含むことを特徴とする。
【００１２】
また、本発明のさらに他の側面としてのロード調節方法は、上記通信ネットワークシステム上の、メッセージルーティングを処理するためにルーティング経路を設定したり、前記コネクタとの連結関係を設定したりするモジュールである各ブローカを、フルメッシュ形態で相互連結する段階と、上記各ブローカのうちの１つである第２ブローカが、上記通信ネットワークシステムから非正常的に終了する第１ブローカを感知する段階と、上記第２ブローカが、自身のロード限界を上向き（増加させるよう）に調整し、上記第１ブローカと連結したコネクタのうちの少なくとも一部のコネクタとの連結を設定する段階と、上記第２ブローカが、上記連結設定に従って自身のルーティング情報を更新し、上記各ブローカに上記更新されたルーティング情報を送信する段階とを含むことを特徴とする。
【００１３】
また、本発明のさらなる他の側面としてのロード調節方法は、上記通信ネットワークシステム上の、メッセージルーティングを処理するためにルーティング経路を設定したり、上記コネクタとの連結関係を設定したりするモジュールである各ブローカを、フルメッシュ形態で相互連結する段階と、上記各ブローカのネットワークアドレスが記録されたブローカリストを上記コネクタで維持する段階と、上記コネクタが、上記通信ネットワークシステムから非正常的に終了する第１ブローカを感知する段階と、上記ブローカリストから上記第１ブローカのネットワークアドレスを削除して上記ブローカリストを更新する段階と、上記更新されたブローカリストのうちの任意の第２ブローカを選択し、上記第２ブローカとの連結を設定して上記コネクタと連結したサービスを登録するためのサービス登録メッセージを、上記第２ブローカに送信する段階とを含むことを特徴とする。
【発明の効果】
【００１４】
本発明によれば、バス型ネットワーク構造を介してサーバ間の連結構造が単純化した新しい通信ネットワークシステムであって、各ブローカの現在ロードとロード限界に基づいて、コネクタを介してサービスが登録されるブローカを選択し、ブローカが正常的及び非正常的に終了する際に、各コネクタと連結したサービスが他のブローカに動的に移動して、ブローカ間のロードバランスが自動的に調節されるロード調節方法が提供される。
【００１５】
また、本発明によれば、バス型ネットワーク構造を介してサーバ間の連結構造が単純化した新しい通信ネットワークシステムにおける各サブシステム間の負荷分散を効率的に調節することで、サービス拡張性及び性能拡張性を支援するとともに、維持及び管理が容易な通信ネットワークシステムが構築される。
【００１６】
また、本発明によれば、すべてのゲームサーバがメッシュ形態で連結する従来の技術に係るネットワーク構造から脱し、サーバ間の連結構造の単純化により管理が容易で、かつ効率的なサービス拡張が可能な新しい通信ネットワーク構造を提供することができる。
【発明を実施するための最良の形態】
【００１７】
以下、添付の図面を参照して、本発明に係る通信ネットワークシステムおよびこのような通信ネットワークシステムで各サブシステム間のロードを調節する方法について詳しく説明する。
【００１８】
図３は、本発明に係るバス型ネットワーク構造を概略的に示した図である。
【００１９】
図１に示すように、従来技術では、ゲームサーバを始めとしたすべてのゲーム関連サーバがメッシュ型構造で連結している。しかし、図３に示すように、本発明に係るバス型ネットワーク構造では、すべてのサーバがバス構造を介して連結しているため、連結構造の単純化が可能となる。
【００２０】
図４は、本発明に係るバス型ネットワーク構造の通信ネットワークシステムの連結を概略的に示した図である。
【００２１】
図１に示すような従来技術では、図２に示すように、ゲームサーバの連結が追加される度に、ネットワーク全体の観点における連結数が、幾何級数的に増加せざるを得なかった。しかし、図４に示すように、本発明に係るバス型ネットワーク構造では、各サーバが１つのブローカとの連結のみを維持すればよく、ネットワークが拡張しても中間連結はブローカを介して行われるため、サーバが追加的に連結してもネットワーク全体の観点における連結数は大きく増加しない。したがって、図３及び図４のような本発明のバス型ネットワーク構造を採用した通信ネットワークシステムは、新しいサービス連係が容易であり、かつ維持及び管理面においても極めて有効である。
【００２２】
図５は、本発明に係る通信ネットワークシステムでブローカ、コネクタおよびサービスの連結を示した図である。
【００２３】
図５に示すように、本発明に係る通信ネットワークシステムは、メッセージルーティングを処理するブローカ５０１と、コネクタ５０２と、コネクタ５０２を介してブローカ５０１と連結する多数のサービス５０３と、を含んで構成される。
【００２４】
サービス５０３は、通信可能なターミナルノードである。各サービス５０３は、１つのコネクタ５０２を介してブローカ５０１と連結する。
【００２５】
コネクタ５０２は、サービス５０３とブローカ５０１との連結を媒介（仲介）するモジュールである。各コネクタ５０２は、１つだけのブローカ５０１と連結する。
【００２６】
本発明の一実施形態では、コネクタ５０２とサービス５０３は、同じプロセス内に含まれる。コネクタ５０２は、１つのプロセス内に１だけ存在し、サービス５０３は、１つのプロセス内に少なくとも１つ以上が存在する。すなわち、プロセス別に１つのコネクタ５０２が存在し、コネクタ５０２は、自身が属するプロセス内に存在するすべてのサービス５０３とブローカ５０１との連結を媒介することができる。
【００２７】
また、本実施形態では、コネクタとプロセスとが、１：１で対応することで通信ネットワークシステムの統一性を図ることができ、互いに属するプロセスにおける異なるサービス５０３が、１つの同じコネクタ５０２を介して同じブローカ５０１と連結することで、非効率的なルーティングを予防することができ、データ送受信上の混乱を避けることができる。
【００２８】
ブローカ５０１は、効率的なメッセージルーティングを処理するためにルーティング経路を設定したり、コネクタ５０２との連結関係を設定したりするモジュールである。また、各ブローカ５０１は、フルメッシュ形態で相互連結する。
【００２９】
本明細書では、ブローカ５０１が、フルメッシュ形態で相互連結して形成されたネットワークをＭＲＳ（Ｍｅｓｓａｇｅ  Ｒｏｕｔｉｎｇ  Ｓｅｒｖｅｒ）ネットワーク５００と定義する。したがって、ＭＲＳネットワーク５００とは、通信しようとする多様なシステム間でメッセージを効率的に送受信するためのネットワークサービスプラットホームを意味するものである。そして、コネクタ５０２は、このようなＭＲＳネットワーク５００を用いてメッセージ送受信を行うために用いられるプログラミングインターフェースを提供するモジュールである。また、サービス５０３は、コネクタ５０２が提供するプログラミングインターフェースを介してＭＲＳネットワーク５００を利用する。
【００３０】
一方、図５に示すように、本発明に係る通信ネットワークシステムでのコネクタ５０２とブローカ５０１との連結は、１つに限られており、各サービス５０３が、ブローカ５０１と通信するときには、１つの連結を介して順次通信するようになる。
【００３１】
図６は、本発明に係るＭＲＳネットワークを介して各種サーバと連結した一例を示した図である。
【００３２】
図６に示すように、ゲームストリームサーバ、チャンネルリストサーバ、ゲームサーバ、通知（公知）サーバ、管理サーバ、データベースサーバを始めとした各種ゲーム関連サーバが、ＭＲＳネットワーク６００を介して連結されている。各サーバは、フルメッシュ形態で相互連結した複数のブローカのうちのいずれか１つのブローカと１つの連結だけを維持するようになる。
【００３３】
従来技術では、すべてのゲーム関連サーバがメッシュ型構造で連結されるため、１つのサーバと連結するサーバ数が多いほど、全体の連結数が幾何級数的に増加するようになる。一方、本発明では、図６に示すように、各サーバは、１つのブローカとの連結だけを維持すればよく、ネットワークが拡張されても中間連結は、ブローカを介して行われるため、サーバが追加して連結されても、ネットワーク全体の観点における連結数は大きく増加しないという長所がある。
【００３４】
図７は、本発明に係る通信ネットワークシステム上で用いられるメッセージの構造を説明するための図である。図７を参照して、本発明に係る通信ネットワークシステムのサブシステムであるコネクタ、ブローカ及びブローカ間と、各ブローカ間で送受信されるメッセージの構造を説明する。
【００３５】
本明細書では、各メッセージのフィールドを定義するためのＤＡＴＡ型としてオクテット（ｏｃｔｅｔ）表記法に限らず、一般的にウィンドウズ（登録商標）で広く用いられているＤＡＴＡ型に基づいて、メッセージの構造を説明する。この場合、ウィンドウズ（登録商標）ＤＡＴＡ型とオクテット表記は「ＢＹＴＥ：ｏｃｔｅｔ（８）」、「ＷＯＲＤ：ｏｃｔｅｔ（１６）」、「ＤＷＯＲＤ：ｏｃｔｅｔ（３２）」のようにマッピングされる。
【００３６】
本発明に係る通信ネットワークシステム上で用いられるメッセージは、ＭＲＭＳＧＨｅａｄｅｒとＭＲＣＭＰＨｅａｄｅｒとの２つに大別される。各メッセージは、共通的なフィールドであるＭＲＨｅａｄｅｒと、各メッセージ毎に固有（特化した）フィールドとに区分される。
【００３７】
ＭＲＨｅａｄｅｒは、本発明に係る通信ネットワークシステム上で相互交換されるすべてのメッセージが共通して有するべきメッセージヘッダー情報である。ＭＲＨｅａｄｅｒメッセージは、単独で用いることができず、プロトコルタイプフィールドで記述した値と追加的なメッセージ情報をＭＲＨｅａｄｅｒ後に追加して送受信しなければならない。
【００３８】
【表１】
2008524911.tif 000003
【００３９】
ＭＲＭＳＧＨｅａｄｅｒ構造で伝達されるメッセージは、ＭＲＳネットワークと連結した多数のサービス間に当該サービスが指定したペイロード値を伝達するための構造を有している。
【００４０】
ここには、メッセージを送信する送信者のアドレスであるソースアドレスと、メッセージを受信する受信者のアドレスである宛先アドレスが記述され、ＭＲＳネットワークは、宛先アドレスの形態と連結情報に基づいてルーティングを試みる。各フィールドについての詳しい説明は下記の表２に示す。
【００４１】
【表２】
2008524911.tif 000004
【００４２】
ＭＲＣＭＰＨｅａｄｅｒ構造で伝達されるメッセージは、本発明に係る通信ネットワークシステムのサブシステムであるコネクタ、ブローカ、及びブローカ間と各ブローカ間の信号を送受信するために定義されたメッセージである。各フィールドについての詳しい説明は、下記の表３に示す。
【００４３】
【表３】
2008524911.tif 000005
【００４４】
以下、本発明で使用するアドレス体系について説明する。
【００４５】
本発明では、ＭＲＳネットワークを用いてデータを送受信するために、ソースアドレス及び宛先アドレスを指称（指定）するとき、ＩＰアドレスではなく、本発明に係る新しいアドレス体系を用いる。ＭＲＳネットワークでは、特定したサービスを識別するために、ユニキャスト（ｕｎｉｃａｓｔ）、エニーキャスト（ａｎｙｃａｓｔ）、マルチキャスト（ｍｕｌｔｉｃａｓｔ）という３種類のアドレス類型を支援する。該アドレスは、キャストタイプとアドレス類型別のアドレスで構成され、１６バイトの長さを有する。
【００４６】
オンラインゲームの場合、多数のサービスインスタンスが相互に連動して動作するため、サービスインスタンス間の通信が増加せざるを得ないが、従来技術にはこのようなサービスインスタンスに対してネットワークアドレスを割り当てる構成がなかったため、同じネットワークアドレスを有する１つのプロセスが、多くのサービスインスタンスを含んで多数のサービスインスタンス通信を処理しなければならないという問題点があった。
【００４７】
このため、本発明では、新しいアドレス体系を導入して、個別のサービスインスタンス毎に独自のアドレスを割り当てることで、サービスインスタンス間の通信処理が効率的に成されるようにした。この場合、既存のように、ゲームサーバで多数のゲームセンターそれぞれにメッセージを分配しなくてもよいため、管理費用が著しく減少するという効果が生じる。
【００４８】
また、本発明では、ユニキャスト以外にもエニーキャストとマルチキャストを含めた３種類のアドレス類型を支援しているため、エニーキャスト又はマルチキャストを適用して物理的に互いに異なるサーバで動作するインスタンスを、１つのエニーキャスト又はマルチキャストグループとして結ぶことができる。
【００４９】
図８は、本発明に係るアドレス体系を説明するための図である。
【００５０】
図８において、キャストタイプはアドレスの類型を示し、ＣＴ＿ＵＮＩＣＡＳＴ、ＣＴ＿ＭＵＬＴＩＣＡＳＴ及びＣＴ＿ＡＮＹＣＡＳＴのうちの１つの値を有する。
【００５１】
ユニキャストアドレスとは、ＭＲＳネットワークを用いるすべてのサービスを唯一（ｕｎｉｑｕｅ）に区分することができるアドレスである。ユニキャストアドレスは、全体ネットワークで特定のサービスがアクティブに提供されているサーバを区分するサーバ名と、同じサーバ内で該当するサービスを区分するインスタンスＩＤと、で構成される。
【００５２】
サーバ名とは、ＭＲＳネットワークを用いるサービスがアクティブに提供されているコンピュータハードウェアであるサーバに対する区分を示す１１バイトの値を意味する。また、全体ネットワークでサービスがアクティブに提供されているサーバを区分する１１バイトの値として、コンピュータ名を用いることができる。
【００５３】
インスタンスＩＤとは、同じサーバ内でサービスを唯一（ｕｎｉｑｕｅ）に区分する識別子である。例えば、１〜６５５３５までの値は、固定されたユニキャストアドレスが必要である場合のために予約されており、６５５３６以後の値はサーバ内で唯一に動的に割り当てて用いることができるようにする。
【００５４】
このようなユニキャストアドレスは下記表４のように整理される。
【００５５】
【表４】
2008524911.tif 000006
【００５６】
マルチキャストアドレスとエニーキャストアドレスは、単純に１５バイト長さの値を用いるため、サービス間で自由に設定して用いることができる。該値は、全体ネットワーク上で唯一（ｕｎｉｑｕｅ）でなければならず、事前に通知されなければならない。
【００５７】
マルチキャスト／エニーキャストアドレスは、下記表５のように整理される。
【００５８】
【表５】
2008524911.tif 000007
【００５９】
本発明に係るＭＲＳネットワークを用いる場合として、（１）サービスが他のサービスで提供される機能を用いるために、ＭＲＳネットワークに接続する場合と、（２）サービスが他のサービスから要請された事項（ｍａｔｔｅｒ）を処理する機能を提供するために、ＭＲＳネットワークに接続する場合と、がある。
【００６０】
サービスが他のサービスで提供される機能を用いるためにＭＲＳネットワークに接続する上記（１）の場合についての一例として、ユーザログイン情報を確認するためにログインサーバに要請を送信して回答を得るというサービスがある。このように、他のサービスで提供される機能を用いるためのサービスは、ＭＲＳネットワークとサービスとを媒介するモジュールであるコネクタを介して次のように動作する。
【００６１】
まず、プロセスを開始するときに、サービスとコネクタ間のデータ送受信のためにプログラミングインターフェースを初期化し、ＭＲＳネットワークにサービスのユニキャストアドレスを登録した後、他のサービスに要請メッセージを送信して回答メッセージを受信する。また、他のサービスで提供される機能の使用が完了した場合には、ＭＲＳネットワークからサービスのユニキャストアドレスを解除（削除）し、プロセスが終了するときに上記プログラミングインターフェースを終了する。
【００６２】
サービスが他のサービスから要請された事項を処理する機能を提供するために、ＭＲＳネットワークに接続する上記（２）の場合についての一例として、データベース照会機能を提供するサービスと、ユーザのログイン情報又は位置情報を提供するサービスと、がある。このような他のサービスに特定の機能を提供するためのサービスは、ＭＲＳネットワークとサービスとを媒介するモジュールであるコネクタを介して次のように動作する。
【００６３】
まず、プロセスが開始するときに、サービスとコネクタ間でデータを送受信するためにプログラミングインターフェースを初期化し、ＭＲＳネットワークにサービスのユニキャストアドレスを登録した後、提供する機能に対するエニーキャスト又はマルチキャストアドレスに加入し、他のサービスから要請メッセージを受信して回答メッセージを送信する。また、他のサービスに特定の機能のすべて提供した場合には、加入したエニーキャスト又はマルチキャストアドレスから脱退し、ＭＲＳネットワークからサービスのユニキャストアドレスを解除（削除）し、プロセスが終了するときに、プログラミングインターフェースを終了する。
【００６４】
このように、本発明のコネクタは、サービスのユニキャストアドレスをＭＲＳネットワークに登録し、サービスを提供する機能によってエニーキャスト又はマルチキャストアドレスに加入させ、サービスが終了するときには、加入したエニーキャスト又はマルチキャストアドレスから脱退させることができる。
【００６５】
以下、本発明に係る通信ネットワークシステムのサブシステムであるサービス、コネクタ及びブローカの動作過程と、各ブローカ間のロードを調節する方法について図９〜１５を参照して説明する。
【００６６】
図９は、本発明の一実施形態に係るサービスの登録過程を示したフローチャートである。本発明に係る通信ネットワークシステムにおいて特定のサービスを提供したり、サービスを利用しようとするシステムは、コネクタを介してＭＲＳネットワークに登録しなければならない。
【００６７】
本発明の一実施形態では、各ブローカには自身と連結可能なコネクタの最大数を指定するロード限界が設定されており、コネクタから連結要請メッセージを受信したブローカは、自身に現在連結しているコネクタ数に該当する現在ロードとロード限界を考慮してコネクタとの連結可否を判断するように動作する。
【００６８】
コネクタは、フルメッシュ形態で相互連結した各ブローカのネットワークアドレスが記録されたブローカリストを維持する。ネットワークアドレスは、各ブローカのＩＰアドレスであってもよい。
【００６９】
サービスは、自身をＭＲＳネットワークに登録するためにコネクタにサービス登録メッセージを送信し（段階９０１）、コネクタは、このサービス登録メッセージを受信してこれを分析し、登録済みのサービスであるかを検査（精査）する（段階９０２）。検査の結果、登録済みのサービスでない場合には、上記サービス登録メッセージを送信するために自身と連結しているブローカを選択する。このとき、コネクタは、自身が維持しているブローカリストのうちの１つのブローカを任意に選択し、選択したブローカに連結要請メッセージを送信することができる。
【００７０】
コネクタによって選択されたブローカは、連結要請メッセージを受信し、自身と現在連結しているコネクタ数（すなわち、現在ロード）と自身と連結可能なコネクタの最大数（すなわち、ロード限界）を考慮して、コネクタとの連結可否を判断する。例えば、選択されたブローカは、コネクタとの連結が設定されるとき、自身と連結し得るコネクタの総数が自身のロード限界を超過する場合には、コネクタからの連結要請を拒否するように動作することができる。
【００７１】
一方、連結要請が拒否されたコネクタは、自身のブローカリストの中から選択されたブローカを除いた他のブローカを任意に選択し、新たに選択したブローカに連結要請メッセージを再送信することができる。
【００７２】
もし、ブローカが、自身の現在ロードとロード限界を考慮してコネクタとの連結が可能であると判断し、これによってコネクタの連結要請を承認する場合には、両者間の連結が設定され、コネクタは、サービスから受信したサービス登録メッセージを連結が設定されたブローカに送信する（段階９０３）。
【００７３】
本実施形態では、１つのブローカと連結するコネクタ数を適切な程度で維持し、ネットワーク全体において各ブローカと連結したコネクタ数が均衡を成すことによって（バランスを保つことで）、各ブローカ間のロードバランスが自然に調節される。
【００７４】
ブローカは、サービス登録メッセージを送信したサービスのルーティング情報を自身のルーティングテーブルに追加してルーティングテーブルを更新し（段階９０４）、このルーティング情報を他のブローカに送信する（段階９０５）。これを受信した他のブローカは、受信したルーティング情報を用いて、自身のルーティングテーブルを更新する（段階９０６）。
【００７５】
このように、本発明では、ブローカは、自身のルーティングテーブルが更新された場合、更新された情報を、ＭＲＳネットワークを構成する他のブローカに送信することで、他のブローカが常に最新のルーティング情報を維持することができるように動作する。
【００７６】
図１０は、本発明の一実施形態に係るサービスの解除過程を示したフローチャートである。ＭＲＳネットワークに自身を登録したシステムは、自身をＭＲＳネットワークから除去するために、コネクタを介してサービス解除過程を遂行する。サービス解除過程が遂行された後には、ＭＲＳネットワークを介したすべてのサービス要請は遮断される。
【００７７】
サービスは、コネクタにサービス解除メッセージを送信し（段階１００１）、コネクタは受信したサービス解除メッセージを分析して最終解除であるかを検査する（段階１００２）。検査の結果が最終解除であれば、このサービス解除メッセージをブローカに伝達する（段階１００３）。
【００７８】
ブローカは、サービス解除メッセージを送信したサービスのルーティング情報を自身のルーティングテーブルから削除してルーティングテーブルを更新し（段階１００４）、このルーティング情報の削除を他のブローカに通報する（段階１００５）。該通報を受信した他のブローカは、ルーティング情報の削除を感知して自身のルーティングテーブルを更新する（段階１００６）。
【００７９】
図１１は、本発明の一実施形態に係るメッセージの送受信過程を示したフローチャートであって、本発明において、サービスを利用するためにサービスにメッセージを送信したり、サービス要請のためにメッセージが伝達される過程を示したものである。
【００８０】
特定のサービスを利用しようとするサービスは、まず、連結メッセージをコネクタに伝達して仮想の連結を設定する（段階１１０１）。このとき、利用しようとするサービスのアドレスを規定する。
【００８１】
メッセージを送信するときに、サービスは、コネクタのプログラミングインターフェースを用いてメッセージ送信を行う（段階１１０２）。コネクタは、サービスから伝達されたメッセージにＭＲＳネットワークで用いられるメッセージルーティングプロトコル（Ｍｅｓｓａｇｅ  Ｒｏｕｔｉｎｇ  Ｐｒｏｔｏｃｏｌ：ＭＲＰ）によるＭＲＰＨｅａｄｅｒを追加した後、自身と連結したブローカに該当のメッセージを送信する（段階１１０３）。ブローカは、コネクタから受信したメッセージの宛先を検索し（段階１１０４）、該当のブローカ又はコネクタにメッセージを送信する（段階１１０５）。
【００８２】
メッセージを受信するときに、ブローカは、他のブローカからメッセージを受信し（段階１１０６）、受信したメッセージの宛先を検索し（段階１１０７）、該当のコネクタにメッセージを送信する（段階１１０８）。コネクタは、送信されたメッセージのＭＲＰＨｅａｄｅｒを除去してブローカから送信されたメッセージの宛先アドレスとインスタンスを検索し（段階１１０９）、該当のサービスにメッセージを送信して該当のサービスがメッセージを受信するようになる（段階１１１０）。
【００８３】
本発明に係る通信ネットワークシステムでは、このような過程を介して、コネクタを介してブローカに伝達されるメッセージが、他のブローカやコネクタが意識することなく、透過的に送受信されるようになる。また、特定のサービスが伝達したメッセージは、ルーティング経路を介して経路上に存在するブローカ間に透過的に送受信されるようになる。
【００８４】
図１２は、本発明の一実施形態において、ブローカがＭＲＳネットワークに新たに追加される場合に遂行される過程を示したフローチャートである。
【００８５】
新たに追加されるブローカは、まず、他のブローカとの連結を待機する連結待機状態を維持しながら（段階１２０１）、実行済みの他のブローカと連結する（段階１２０２）。新たに追加されるブローカと連結したブローカは、自身と連結した他のブローカが記録されたブローカリストに新たに追加されたブローカを追加して自身のブローカリストを更新する（段階１２０３）。これと同じ方式で、新たに追加されるブローカは、実行済みのさらに他のブローカと連結し（段階１２０４）、これによって新たに連結したブローカのブローカリストも更新される（段階１２０５）。このように、ＭＲＳネットワーク上で実行されているすべてのブローカのブローカリストが更新される。
【００８６】
新たに追加されるブローカが、実行済みのブローカとすべて連結した後、そのうちの１つのブローカを任意に選択する（段階１２０６）。そして、選択されたブローカにルーティングテーブルを要請した後（段階１２０７）、これを受信し（段階１２０８）、自身のルーティングテーブルに反映し（段階１２０９）、自身がコネクタと連結する準備が整ったことを他のブローカに通報する（段階１２１０）。
【００８７】
準備事実の通報を受けたブローカは、自身と連結したコネクタのうちの新しいブローカに移る再設定コネクタ数を計算し、その数に該当するコネクタを選択する（段階１２１１）。また、準備事実の通報を受けたブローカは、自身と連結したすべてのコネクタに新しいブローカが連結したことを通報し（段階１２１２）する。該通報を受けたコネクタは、自身と連結したブローカが記録されたブローカリストに新しいブローカとして追加する（段階１２１３）。
【００８８】
一方、選択された再設定されたコネクタには、新しいブローカとの連結の再設定を要請するメッセージが伝達される（段階１２１４）。これが伝達されたコネクタは、新しいブローカと連結し、自身と連結したサービスに対するサービス登録メッセージを連結した新しいブローカに伝達する（段階１２１５）。
【００８９】
段階１２１０〜１２１５は、ＭＲＳネットワーク上で実行されているすべてのブローカに対して遂行することができる。このような過程を介して、実行済みのブローカと連結していたコネクタ及びこれと連結したサービスの一定部分がＭＲＳネットワークに新たに追加されたブローカに移る（移行）ようになり、ブローカ間の効率的な負荷分散が成されるようになる。
【００９０】
図１３は、本発明の一実施形態において、ブローカが正常的に終了する場合に進行されるロード調節方法の過程を示したフローチャートである。
【００９１】
本発明に係る通信ネットワークシステムから正常的に終了する第１ブローカは、自身がこれ以上のコネクタと連結しないように設定し（段階１３０１）、自身が終了するという終了予定情報を他のブローカに送信する（段階１３０２）。第１ブローカと終了予定情報を受信した他のブローカは、自身と連結したコネクタにこの終了予定情報を送信し、第１ブローカが正常的に終了するという事実を通報する（段階１３０３）。
【００９２】
第１ブローカは、自身とフルメッシュ形態で相互連結した他のブローカのうちの１つである第２ブローカを選択し、第１ブローカに連結したコネクタに、第２ブローカとの連結を再設定することを要請する連結再設定メッセージを送信する（段階１３０４）。
【００９３】
第１ブローカと連結したコネクタは、連結の再設定メッセージを受信して第２ブローカと連結を設定し、コネクタと連結したサービスを登録するためのサービス登録メッセージを第２ブローカに送信する（段階１３０５）。
【００９４】
一方、本発明の一実施形態では、ＭＲＳネットワークにおいてフルメッシュ形態で連結したすべてのブローカ相互間では、ブローカ別に現在連結しているコネクタ数（すなわち、現在ロード）と連結可能なコネクタの最大数（すなわち、ロード限界）に対する情報を含むブローカ状態メッセージが交換される。
【００９５】
すなわち、ブローカ状態メッセージは、ブローカ相互間で交換される各ブローカの現在の連結状態及び最大キャパシティに対する情報を含むメッセージであって、第２ブローカの選択において、第１ブローカは、ブローカ状態メッセージに含まれたブローカ別の現在ロードとロード限界に基づいて、この第２ブローカを選択することができる。
【００９６】
本実施形態では、正常的に終了するブローカと連結したコネクタが動的に他のブローカと連結する過程において、コネクタがロード限界を超過するブローカに連結を要請して拒絶を受け、他のブローカに連結を再要請しなければならないという不必要な手順を省略することができる。
【００９７】
第１ブローカの正常的な終了によって、コネクタと新たに連結する第２ブローカは、自身のルーティング情報を更新する。更新されたルーティング情報は、第１ブローカ及び他のブローカに送信される（段階１３０６）。
【００９８】
このように、本発明では、ブローカは、自身のルーティング情報が更新された場合、更新された情報をＭＲＳネットワークを構成する他のブローカに送信することで、他のブローカが常に最新のルーティング情報を維持するように動作する。
【００９９】
正常的に終了する第１ブローカは、第２ブローカから更新されたルーティング情報を受信し、更新されたルーティング情報を用いて自身のルーティングテーブルを更新し、更新された対象（すなわち、第１ブローカと連結していたコネクタ）に関するルーティング情報が自身のルーティングテーブルに存在するかを判断する（段階１３０７）。判断の結果、更新された対象に関するルーティング情報が存在しない場合には、その連結を最終的に終了する（段階１３０８）。
【０１００】
一方、正常的に終了する第１ブローカは、自身と連結したコネクタに第２ブローカとの連結を再設定する要請を行う連結再設定メッセージの送信時点から、所定の時間が経過したかを検査する（段階１３０９）。所定の時間が経過した後においても、自身と連結したコネクタが存在する場合は、すべてのコネクタとの連結を終了して自身も終了するように動作する（段階１３１０）。
【０１０１】
本発明では、このような過程を介して、ブローカが正常的に終了するときに、各コネクタと連結したサービスが、他のブローカに動的に移動することで、ブローカ間のロードバランスが自動的に調節されるようになる。
【０１０２】
図１４は、本発明の一実施形態において、ブローカの非正常的な終了を、他のブローカが感知する場合に遂行されるロード調節方法の過程を示したフローチャートである。
【０１０３】
本発明に係る通信ネットワークシステムにおいて、システム障害などによって第１ブローカが非正常的に終了すると（段階１４０１）、ＭＲＳネットワークにおいて第１ブローカとフルメッシュ形態で相互連結した他のブローカのうちの１つである第２ブローカは、第１ブローカの非正常的な終了を感知し（段階１４０２）、それによって自身のロード限界、すなわち、最大キャパシティを上向き（増加）に調整する（段階１４０３）。
【０１０４】
例えば、ブローカ１つと連結するコネクタの最大数「５０」が本来のロード限界であれば、他のブローカが非正常的に終了することが感知された場合に、ブローカ１つと連結するコネクタの最大数を「６０」に再調整し、非正常的に終了するブローカと連結したコネクタが迅速に残りの他のブローカに移動して連結するように動作することができる。この場合、サービス連結が中断する時間を極めて短縮することができる。
【０１０５】
一方、本発明の一実施形態では、ＭＲＳネットワークにおいてフルメッシュ形態で連結したすべてのブローカの相互間で、ブローカ別に現在状態に対する情報を含むブローカ状態メッセージが交換される。
【０１０６】
本実施形態では、このようなブローカ状態メッセージは、他のブローカが正常状態であるか非正常状態であるかを判断することができる基準として各ブローカが利用する。本発明に係る通信ネットワークシステムから非正常的に終了する第１ブローカを、第２ブローカが感知する方法として、この第２ブローカは、ブローカ状態メッセージが正常的に受信されない第１ブローカを非正常的に終了するブローカとして感知することができる。
【０１０７】
また、第１ブローカの非正常的な終了を感知した第２ブローカは、第１ブローカと連結したコネクタのうちの少なくとも一部のコネクタとの連結を設定する。これにより、一部のコネクタと連結したサービスが、第２ブローカに登録されるように動作する。
【０１０８】
本発明の一実施形態の、第２ブローカが一部のコネクタとの連結を設定する処理では、第１ブローカと連結したコネクタ数を該第１ブローカを除いたＭＲＳネットワーク上の各ブローカの総数で割った値によって一部のコネクタの数が決定される。例えば、非正常的に終了する第１ブローカを除いてＭＲＳネットワーク上に２つのブローカが存在し、第１ブローカと連結したコネクタ数がＮ個であるとすると、第２ブローカは、「Ｎ／２」個のコネクタと連結することになる。
【０１０９】
本実施形態では、いずれかのブローカがシステム障害などによって非正常的に終了しても、１つのブローカと連結するコネクタ数が適切な数で維持され、ネットワーク全体において各ブローカと連結したコネクタ数が均衡を成すようになることで、各ブローカ間のロードバランスが自然に調節される。
【０１１０】
一方、第２ブローカは、このような連結設定によって自身のルーティング情報を更新し、更新されたルーティング情報をＭＲＳネットワーク上の他のブローカに送信することで、すべてのブローカが自身のルーティングテーブルを最新で更新するようにできる（段階１４０４）。
【０１１１】
また、ＭＲＳネットワーク上のすべてのブローカと連結したコネクタに、第１ブローカの終了事実を知らせる終了情報が送信されることで、コネクタは自身のブローカリストを更新できるようになる（段階１４０５）。
【０１１２】
本発明では、このような過程を介して、ブローカの非正常的な終了時にも各コネクタと連結したサービスが他のブローカに動的に移動することで、ブローカ間のロードバランスが自動的に調節されるようにする。
【０１１３】
図１５は、本発明の一実施形態において、ブローカの非正常的な終了をコネクタが感知する場合に遂行されるロード調節方法の過程を示したフローチャートである。
【０１１４】
コネクタは、フルメッシュ形態で相互連結した各ブローカのネットワークアドレスが記録されたブローカリストを維持する。ネットワークアドレスは、各ブローカのＩＰアドレスであってもよい。
【０１１５】
本発明に係る通信ネットワークシステムから第１ブローカが非正常的に終了すると（段階１５０１）、第１ブローカと連結したコネクタは、自身と連結した第１ブローカが非正常的に終了した事実を感知し（段階１５０２）、自身のブローカリストから第１ブローカのネットワークアドレスを削除してブローカリストを更新する（段階１５０３）。
【０１１６】
非正常的に終了した第１ブローカをブローカリストから削除したコネクタは、更新された自身のブローカリストの中から任意の第２ブローカを選択し（段階１５０４）、第２ブローカとの連結を設定し（段階１５０５）、自身と連結したすべてのサービスを登録するためのサービス登録メッセージをこの第２ブローカに送信することでサービス登録を行うことができる（段階１５０６）。
【０１１７】
一方、サービスが追加で登録された第２ブローカは、自身のルーティング情報を更新し、更新されたルーティング情報をＭＲＳネットワーク上の他のブローカに送信することで、すべてのブローカが最新のルーティング情報を維持できるようにする（段階１５０７）。
【０１１８】
本発明では、このような過程を介して、ブローカの非正常的な終了時に、ブローカだけでなく非正常的に終了するブローカと連結したコネクタもこれを感知させ、コネクタと連結したサービスが他のブローカに動的に移動することで、ブローカ間のロードバランスが自動的に調節されるようにする。
【０１１９】
以下、本発明に係る通信ネットワークシステムのサブシステムであるコネクタの構造および各構成要素の機能について説明する。
【０１２０】
図１６は、本発明に係るコネクタの構造を示したブロック図である。
【０１２１】
図１６に示すように、コネクタ１６００は、ＡＰＩ１６０１と、メッセージキュー管理モジュール１６０２と、サービスプール管理モジュール１６０３と、サービス管理モジュール１６０４と、連結管理モジュール１６０５と、を含んで構成される。
【０１２２】
ＡＰＩ１６０１とは、コネクタ１６００が提供する機能をコネクタ１６００と連結したサービスに露出するアプリケーションプログラミングインターフェース（Ａｐｐｌｉｃａｔｉｏｎ  Ｐｒｏｇｒａｍｍｉｎｇ  Ｉｎｔｅｒｆａｃｅ）である。本発明に係るＭＲＳネットワークを利用しようとするシステムは、データを送受信するためにＡＰＩ１６０１を用いる。
【０１２３】
図１７は、コネクタとサービスのプロセスに対する関係とＡＰＩ１６０１を説明するための図である。
【０１２４】
図１７に示すように、本発明の一実施形態では、コネクタとサービスは、同じプロセス内に含まれている。コネクタは、１つのプロセス内に１つだけ存在し、サービスは、１つのプロセス内に少なくとも１つ以上存在する。すなわち、プロセス別に１つのコネクタが存在し、コネクタは、自身が属するプロセス内に存在するすべてのサービスとＭＲＳネットワークを構成するブローカとの連結を媒介（仲介）することができる。
【０１２５】
また、本実施形態では、コネクタとプロセスが、１：１で対応することで通信ネットワークシステムの統一性を図ることができる。また、互いに属するプロセスにて異なるサービスが、１つの同じコネクタを介して同じブローカに連結することで非効率的なルーティングを予防することができ、データ送受信上の混乱を避けることができる。
【０１２６】
一方、図１７に示すように、１つのプロセス内に存在する１つ以上のサービスは、１つのコネクタ１６００を介してＭＲＳネットワークと連結する。ここで、サービスとコネクタ１６００との連結およびデータ送受信は、ＡＰＩ１６０１を介して成される。
【０１２７】
すなわち、ＭＲＳネットワークを用いてデータを送受信するために、サービスは、ＭＲＳネットワークと直接連結を設定してデータを送受信することはできず、コネクタ１６００で提供するＡＰＩ１６０１を用いてデータを送受信するようになる。その結果、ＡＰＩ１６０１は、サービスからサービス登録またはサービス解除の要請、ブローカ１６１０へのデータ送信の要請などを受信するようになる。
【０１２８】
コネクタ１６００は、このようなＡＰＩ１６０１を提供するモジュールであって、ＭＲＳネットワークを用いる各プロセスに搭載され、該当のプロセスで生成されるすべてのサービスに対するＭＲＳネットワークにメッセージを送受信する機能を担当する。
【０１２９】
メッセージキュー管理モジュール１６０２は、送受信される本発明に係るＭＲＳネットワーク上で用いられるメッセージルーティングプロトコル（Ｍｅｓｓａｇｅ  Ｒｏｕｔｉｎｇ  Ｐｒｏｔｏｃｏｌ：ＭＲＰ）パッケージを管理する役割を行う。ここで、ＭＲＰパッケージとは、コネクタ１６００とブローカ１６１０間で送受信されるデータの単位を意味する。
【０１３０】
図１８は、このようなメッセージキュー管理モジュール１６０２の構造を示したブロック図である。
【０１３１】
図１８に示すように、メッセージキュー管理モジュール１６０２は、送信キュー１８０１と、受信キュー１８０２と、を含む。
【０１３２】
ここで、送信キュー１８０１は、ブローカ１６１０に送信するＭＲＰパッケージを管理し、受信キュー１８０２は、ブローカ１６１０から受信されたＭＲＰパッケージを管理する役割を担当する。
【０１３３】
サービスプール管理モジュール１６０３は、サービスをブローカ１６１０に登録又は解除して、登録されたサービスを管理する役割をする。また、サービス管理モジュール１６０４は、登録されたサービスに対する情報を管理する役割をする。
【０１３４】
図１９は、このようなサービス管理モジュール１６０４の構造を示したブロック図である。
【０１３５】
図１９に示すように、サービス管理モジュール１６０４は、受信メッセージキュー１９０１と、受信バッファキュー１９０２と、完成状態キュー１９０３と、を含む。
【０１３６】
ここで、受信メッセージキュー１９０１は、ブローカ１６１０から受信されたメッセージを管理し、受信バッファキュー１９０２は、サービスが登録した受信バッファを管理し、完成状態キュー１９０３は、サービスが要請した入出力に対する完成した結果を管理する役割を担当する。
【０１３７】
連結管理モジュール１６０５は、ＭＲＰパッケージを送受信してブローカ１６１０とのソケット連結を管理する役割をする。
【０１３８】
図２０は、このような連結管理モジュール１６０５の構造を示したブロック図である。
【０１３９】
図２０に示すように、連結管理モジュール１６０５は、メッセージ送信モジュール２００１と、連結制御モジュール２００２と、を含む。
【０１４０】
ここで、メッセージ送信モジュール２００１は、メッセージキュー管理モジュール１６０２から送信されるＭＲＰパッケージをローディングしてブローカ１６１０に送信し、ブローカ１６１０から受信したＭＲＰパッケージをメッセージキュー管理モジュール１６０２に伝達する役割を担当する。一方、連結制御モジュール２００２は、コネクタ１６００とブローカ１６１０間の制御メッセージを処理して両者の連結を制御する役割を担当する。
【０１４１】
以下、本発明に係る通信ネットワークシステムのさらに他のサブシステムとしてのブローカの構造および各構成要素の機能について説明する。
【０１４２】
図２１は、ブローカの構造を示したブロック図である。
【０１４３】
図２１に示すように、ブローカ２１００は、リンク管理モジュール２１０１と、ルーティング情報管理モジュール２１０２と、メッセージ分類モジュール２１０３と、メッセージルータ２１０４と、メッセージデシリアライザ２１０５と、メッセージトランザクタ２１０６と、メッセージシリアライザ２１０７と、自動コンフィギュレータ２１０８と、を含んで構成される。
【０１４４】
リンク管理モジュール２１０１は、コネクタ又は他のブローカとの連結を維持及び管理し、コネクタ又は他のブローカとデータ送受信を遂行する役割をする。
【０１４５】
ルーティング情報管理モジュール２１０２は、ブローカ２１００に登録されたサービスのルーティング情報を維持及び管理する役割をし、ブローカ２１００と連結したコネクタ又は他のブローカとの連結情報を含む連結プールを維持することができる。
【０１４６】
メッセージ分類モジュール２１０３は、リンク管理モジュール２１０１が受信したデータの形態を把握し、所定の基準に従って受信したデータを単純メッセージと複雑メッセージに分類する役割をする。
【０１４７】
メッセージルータ２１０４は、メッセージ分類モジュール２１０３から単純メッセージを受信し、ルーティング情報管理モジュール２１０２から単純メッセージに関する宛先の位置情報を取得して、リンク管理モジュール２１０１に伝達する役割をする。
【０１４８】
メッセージデシリアライザ２１０５は、メッセージ分類モジュール２１０３から複雑メッセージを受信し、複雑メッセージを加工して客体化（ｏｂｊｅｃｔ）する役割をする（複雑メッセージを変換して目的物とする役割をする）。
【０１４９】
メッセージトランザクタ２１０６は、メッセージデシリアライザ２１０５から客体（ｏｂｊｅｃｔ）を受信し、客体（ｏｂｊｅｃｔ）を用いてブローカ２１００を制御する役割をする。
【０１５０】
メッセージシリアライザ２１０７は、メッセージトランザクタ２１０６から客体（ｏｂｊｅｃｔ）を受信し、客体（ｏｂｊｅｃｔ）を送信可能な線形データに加工してリンク管理モジュール２１０１に伝達する役割をする。
【０１５１】
自動コンフィギュレータ２１０８は、ブローカ２１００が属したネットワークの状態を追跡してブローカ２１００の状態を自動で調整する役割をする。
【０１５２】
図２２は、リンク管理モジュール２１０１の構造を示したブロック図である。
【０１５３】
図２２に示すように、リンク管理モジュール２１０１は、ＯＳソケットサブシステム２２０１と、リンクアセプタ２２０２と、データ受信モジュール２２０３と、データ送信モジュール２２０４と、リンクエージェント２２０５と、を含む。
【０１５４】
ＯＳソケットサブシステム２２０１は、ブローカ２１００と連結したコネクタまたは他のブローカとデータを送受信するためのインターフェイスの役割を担当する。
【０１５５】
リンクアセプタ２２０２は、ブローカ２１００と連結したコネクタまたは他のブローカからの連結要請を、ＯＳソケットサブシステム２２０１を介して受信し、連結要請による連結情報をルーティング情報管理モジュール２１０２が維持する連結プールに記録する役割を担当する。
【０１５６】
データ受信モジュール２２０３は、ブローカ２１００と連結したコネクタ又は他のブローカからデータをＯＳソケットサブシステム２２０１を介して受信し、これをメッセージ分類モジュール２１０３に伝達する役割を担当する。
【０１５７】
データ送信モジュール２２０４は、メッセージシリアライザ２１０７で加工されたデータを受信し、ＯＳソケットサブシステム２２０１を介してブローカ２１００と連結したコネクタ又は他のブローカに送信する役割を担当する。
【０１５８】
リンクエージェント２２０５は、データ送信モジュール２２０４の要請によってＯＳソケットサブシステム２２０１を介してブローカ２１００と連結したコネクタ又は他のブローカとの連結を試み、連結が成功すれば、これによって生成された連結情報を用いてルーティング情報管理モジュール２１０２が維持する連結プールを更新する役割を担当する。
【０１５９】
一方、データ送信モジュール２２０４は、連結プールを照会して送信するデータの宛先に関するコネクタ又は他のブローカとの連結可否を確認し、連結設定がなされていない場合には、リンクエージェント２２０５にブローカ２１００と連結したコネクタ又は他のブローカとの連結設定を要請した後に、データ送信を試みるように動作する。
【０１６０】
本発明に係るロード調節方法は、コンピュータにより具現される多様な動作を実行するためのプログラム命令を含むコンピュータ読み取り可能な媒体を含む。該媒体は、プログラム命令、データファイル、データ構造などを単独または組み合わせて含むこともできる。このような媒体及びプログラム命令は、本発明の目的のために特別に設計されて構成されたものでもよく、コンピュータソフトウェア分野の技術を有する当業者にとって公知であり使用可能なものであってもよい。コンピュータ読み取り可能な記録媒体の例としては、ハードディスク、フロッピー（登録商標）ディスク及び磁気テープのような磁気媒体、ＣＤ−ＲＯＭ、ＤＶＤのような光記録媒体、フロプティカルディスクのような磁気−光媒体、およびＲＯＭ、ＲＡＭ、フラッシュメモリなどのようなプログラム命令を保存して実行するように特別に構成されたハードウェア装置が含まれる。また、上記媒体は、プログラム命令、データ構造などを保存する信号を送信する搬送波を含む光または金属線、導波管などの送信媒体でもある。プログラム命令の例としては、コンパイラによって生成されるもののような機械語コードだけでなく、インタプリタなどを用いてコンピュータによって実行される高級言語コードを含む。このようなハードウェア要素は、本発明の動作を実行するために一以上のソフトウェアモジュールとして作動するように構成することができ、その逆もできる。
【０１６１】
上述したように、本発明を好ましい実施形態に則して説明したが、本発明の技術分野において熟練した当業者にとっては、本発明の特許請求の範囲に記載された技術的思想及びその領域から逸脱しない範囲内で、本発明を多様に修正及び変更させることができる。すなわち、本発明の技術的範囲は、特許請求の範囲に基づいて定められ、発明を実施するための最良の形態により制限されるものではない。
【図面の簡単な説明】
【０１６２】
【図１】従来技術に係るゲームサーバ間のネットワーク連結を示した図である。
【図２】従来技術においてゲームサーバ数が増加し続けることによって生じるゲームサーバ間のネットワーク連結を示した図である。
【図３】本発明に係るバス型ネットワーク構造を概略的に示した図である。
【図４】本発明に係るバス型ネットワーク構造の通信ネットワークシステムの連結を概略的に示した図である。
【図５】本発明に係る通信ネットワークシステムにおけるブローカ、コネクタ及びサービスの連結を示した図である。
【図６】本発明に係るＭＲＳネットワークを介して各種サーバと連結した一例を示した図である。
【図７】本発明に係る通信ネットワークシステム上で用いられるメッセージの構造を説明するための図である。
【図８】本発明に係るアドレス体系を説明するための図である。
【図９】本発明の一実施形態に係るサービスの登録過程を示したフローチャートである。
【図１０】本発明の一実施形態に係るサービスの解除過程を示したフローチャートである。
【図１１】本発明の一実施形態に係るメッセージの送受信過程を示したフローチャートである。
【図１２】本発明の一実施形態において、ブローカがＭＲＳネットワークに新たに追加される場合に進行される過程を示したフローチャートである。
【図１３】本発明の一実施形態において、ブローカが正常的に終了する場合に進行されるロード調節方法の過程を示したフローチャートである。
【図１４】本発明の一実施形態において、ブローカの非正常的な終了を他のブローカが感知する場合に進行されるロード調節方法の過程を示したフローチャートである。
【図１５】本発明の一実施形態において、ブローカの非正常的な終了をコネクタが感知する場合に進行されるロード調節方法の過程を示したフローチャートである。
【図１６】本発明に係るコネクタの構造を示したブロック図である。
【図１７】本発明に係るコネクタで提供されるプログラミングインターフェースであるＡＰＩを説明するための図である。
【図１８】本発明に係るコネクタの一構成要素であるメッセージキュー管理モジュールの構造を示したブロック図である。
【図１９】本発明に係るコネクタの一構成要素であるサービス管理モジュールの構造を示したブロック図である。
【図２０】本発明に係るコネクタの一構成要素である連結管理モジュールの構造を示したブロック図である。
【図２１】本発明に係るブローカの構造を示したブロック図である。
【図２２】本発明に係るブローカの一構成要素であるリンク管理モジュールの構造を示したブロック図である。
【符号の説明】
【０１６３】
５００    ＭＲＳネットワーク
５０１、１６１０    ブローカ
５０２、１６００    コネクタ
５０３、サービス
【図１】
2008524911.tif 000008
【図２】
2008524911.tif 000009
【図３】
2008524911.tif 000010
【図４】
2008524911.tif 000011
【図５】
2008524911.tif 000012
【図６】
2008524911.tif 000013
【図７】
2008524911.tif 000014
【図８】
2008524911.tif 000015
【図９】
2008524911.tif 000016
【図１０】
2008524911.tif 000017
【図１１】
2008524911.tif 000018
【図１２】
2008524911.tif 000019
【図１３】
2008524911.tif 000020
【図１４】
2008524911.tif 000021
【図１５】
2008524911.tif 000022
【図１６】
2008524911.tif 000023
【図１７】
2008524911.tif 000024
【図１８】
2008524911.tif 000025
【図１９】
2008524911.tif 000026
【図２０】
2008524911.tif 000027
【図２１】
2008524911.tif 000028
【図２２】
2008524911.tif 000029
【国際調査報告】
2008524911.tif 000030
2008524911.tif 000031