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