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