バス型ネットワーク構造の通信ネットワークシステムにおけるサブシステム間のロードを調節する方法
本発明に係るバス型ネットワーク構造の通信ネットワークシステムでサブシステム間のロードを調節する方法は、上記通信ネットワークシステムが、メッセージルーティングを処理するブローカと、コネクタと、このコネクタを介してブローカと連結する通信可能なターミナルノードである多数のサービスと、を含み、通信ネットワークシステム上の、メッセージルーティングを処理するためにルーティング経路を設定したり、前記コネクタとの連結関係を設定したりするモジュールである各ブローカを、フルメッシュ形態で相互連結する段階と、コネクタで各ブローカのネットワークアドレスが記録されたブローカリストを維持する段階と、コネクタが、サービスからサービス登録メッセージを受信し、ブローカリストのうちの1つのブローカを任意に選択して連結要請メッセージを送信する段階と、選択されたブローカが連結要請メッセージを受信し、自身の現在ロードとロード限界を考慮してコネクタとの連結可否を判断する段階とを含む。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、バス型ネットワーク構造の通信ネットワークシステムにおけるサブシステム間のロードを調節する方法に関し、より詳細には、ある1つのプロセス内に存在する1つ以上のサービスを1つのコネクタを介してメッセージルーティングを処理するブローカに連結させ、ネットワーク上のすべてのブローカをフルメッシュ形態で相互連結するバス型ネットワーク構造において、各ブローカ間のロードバランスを適切に調節するための方法に関する。
【背景技術】
【0002】
従来技術では、ゲームサービスを提供するすべてのゲームサーバが、メッシュ型構造で連結している。図1は、このような従来技術に係るゲームサーバ間のネットワーク連結を示した図である。
【0003】
図1に示すように、従来技術によれば、ゲームサーバの連結が追加するたびに、全体ネットワーク全体の観点における連結数は、幾何級数的に増加せざるを得ない。図2は、従来技術においてゲームサーバ数が増加し続けることによって生じるゲームサーバ間のネットワーク連結を示した図である。
【0004】
このように、ゲームサーバがメッシュ型構造で相互連結する従来技術によれば、ゲームサーバ数の増加によって連結構造が極めて複雑になり、その結果、ゲームユーザの増加によるゲームサーバの拡張が困難になるという問題点が生じていた。特に、ゲームサーバ間の連結を世界的に拡張する場合には、その管理がより一層困難にならざるを得なかった。
【0005】
さらに、1つのサーバと連結する相手サーバ数が多いほど、全体の連結数は幾何級数的に増加するが、従来技術において、1つのゲームサーバは、ログインサーバ、ランキングサーバ、データベースサーバと連結し、これに追加してチャンネルリストサーバおよび通知(公知)サーバとが1つのマルチキャストグループとして連結されている。したがって、ネットワーク全体に存在する連結数は、実際のゲームサーバ間の連結数を大きく超過することになるため、管理が極めて困難な実情にある。
【0006】
これにより、すべてのゲームサーバがメッシュ形態で連結する従来技術に係るネットワーク構造から脱し、サーバ間の連結構造の単純化により管理が容易で、かつ効率的なサービス拡張が可能な新しい通信ネットワーク構造の実現が求められているとともに、このような新しい通信ネットワーク構造における各サブシステム間のロードバランスを効率的に調節することが可能な方法が要求されている。
【発明の開示】
【発明が解決しようとする課題】
【0007】
本発明は、上記従来技術の問題点を解決するために成されたものであって、バス型ネットワーク構造によりサーバ間の連結構造が単純化した新しい通信ネットワークシステムにおいて、各ブローカの現在ロードとロード限界に基づいてコネクタを介したサービスが登録されるブローカを選択し、ブローカが正常的および非正常的に終了する際に、各コネクタと連結したサービスが他のブローカに動的に移動してブローカ間のロードバランスが自動的に調節されるロード調節方法を提供することを目的とする。
【0008】
また、本発明は、バス型ネットワーク構造によりサーバ間の連結構造が単純化した新しい通信ネットワークシステムにおいて、各サブシステム間の負荷分散を効率的に調節することで、サービスの拡張性および性能拡張性を支援するとともに、維持および管理が容易な通信ネットワークシステムを構築することを目的とする。
【0009】
また、本発明は、すべてのゲームサーバがメッシュ形態で連結する従来技術に係るネットワーク構造から脱し、サーバ間の連結構造を単純化することで管理が容易で、かつ効率的なサービス拡張が可能な新しい通信ネットワーク構造を提供することを目的とする。
【課題を解決するための手段】
【0010】
前記の目的を達成し、上述した従来技術の問題点を解決するために、本発明の1つの側面としてのバス型ネットワーク構造の通信ネットワークシステムにおけるサブシステム間のロードを調節する方法は、上記通信ネットワークシステムが、メッセージルーティングを処理するブローカと、コネクタと、このコネクタを介して上記ブローカと連結する通信可能なターミナルノードである多数のサービスとを含み、上記通信ネットワークシステム上の、メッセージルーティングを処理するためにルーティング経路を設定したり、前記コネクタとの連結関係を設定したりするモジュールである各ブローカを、フルメッシュ形態で相互連結する段階と、上記各ブローカのネットワークアドレスが記録されたブローカリストを上記コネクタで維持する段階と、前記コネクタが、上記サービスから前記サービス登録メッセージを受信し、上記ブローカリストのうちの1つのブローカを任意に選択して連結要請メッセージを送信する段階と、上記選択されたブローカが、連結要請メッセージを受信し、自身の現在ロードとロード限界を考慮して上記コネクタとの連結可否を判断する段階とを含むことを特徴とする。
【0011】
また、本発明の他の側面としてのロード調節方法は、上記通信ネットワークシステム上の、メッセージルーティングを処理するためにルーティング経路を設定したり、前記コネクタとの連結関係を設定したりするモジュールである各ブローカを、フルメッシュ形態で相互連結する段階と、上記通信ネットワークシステムから正常的に終了する第1ブローカが、各ブローカのうちの1つである第2ブローカを選択する段階と、上記第1ブローカと連結したコネクタに、第2ブローカとの連結を再設定することを要請する連結再設定メッセージを送信する段階と、上記コネクタが、上記連結再設定メッセージを受信し、上記第2ブローカとの連結を設定して上記コネクタと連結したサービスを登録するためのサービス登録メッセージを、上記第2ブローカに送信する段階とを含むことを特徴とする。
【0012】
また、本発明のさらに他の側面としてのロード調節方法は、上記通信ネットワークシステム上の、メッセージルーティングを処理するためにルーティング経路を設定したり、前記コネクタとの連結関係を設定したりするモジュールである各ブローカを、フルメッシュ形態で相互連結する段階と、上記各ブローカのうちの1つである第2ブローカが、上記通信ネットワークシステムから非正常的に終了する第1ブローカを感知する段階と、上記第2ブローカが、自身のロード限界を上向き(増加させるよう)に調整し、上記第1ブローカと連結したコネクタのうちの少なくとも一部のコネクタとの連結を設定する段階と、上記第2ブローカが、上記連結設定に従って自身のルーティング情報を更新し、上記各ブローカに上記更新されたルーティング情報を送信する段階とを含むことを特徴とする。
【0013】
また、本発明のさらなる他の側面としてのロード調節方法は、上記通信ネットワークシステム上の、メッセージルーティングを処理するためにルーティング経路を設定したり、上記コネクタとの連結関係を設定したりするモジュールである各ブローカを、フルメッシュ形態で相互連結する段階と、上記各ブローカのネットワークアドレスが記録されたブローカリストを上記コネクタで維持する段階と、上記コネクタが、上記通信ネットワークシステムから非正常的に終了する第1ブローカを感知する段階と、上記ブローカリストから上記第1ブローカのネットワークアドレスを削除して上記ブローカリストを更新する段階と、上記更新されたブローカリストのうちの任意の第2ブローカを選択し、上記第2ブローカとの連結を設定して上記コネクタと連結したサービスを登録するためのサービス登録メッセージを、上記第2ブローカに送信する段階とを含むことを特徴とする。
【発明の効果】
【0014】
本発明によれば、バス型ネットワーク構造を介してサーバ間の連結構造が単純化した新しい通信ネットワークシステムであって、各ブローカの現在ロードとロード限界に基づいて、コネクタを介してサービスが登録されるブローカを選択し、ブローカが正常的及び非正常的に終了する際に、各コネクタと連結したサービスが他のブローカに動的に移動して、ブローカ間のロードバランスが自動的に調節されるロード調節方法が提供される。
【0015】
また、本発明によれば、バス型ネットワーク構造を介してサーバ間の連結構造が単純化した新しい通信ネットワークシステムにおける各サブシステム間の負荷分散を効率的に調節することで、サービス拡張性及び性能拡張性を支援するとともに、維持及び管理が容易な通信ネットワークシステムが構築される。
【0016】
また、本発明によれば、すべてのゲームサーバがメッシュ形態で連結する従来の技術に係るネットワーク構造から脱し、サーバ間の連結構造の単純化により管理が容易で、かつ効率的なサービス拡張が可能な新しい通信ネットワーク構造を提供することができる。
【発明を実施するための最良の形態】
【0017】
以下、添付の図面を参照して、本発明に係る通信ネットワークシステムおよびこのような通信ネットワークシステムで各サブシステム間のロードを調節する方法について詳しく説明する。
【0018】
図3は、本発明に係るバス型ネットワーク構造を概略的に示した図である。
【0019】
図1に示すように、従来技術では、ゲームサーバを始めとしたすべてのゲーム関連サーバがメッシュ型構造で連結している。しかし、図3に示すように、本発明に係るバス型ネットワーク構造では、すべてのサーバがバス構造を介して連結しているため、連結構造の単純化が可能となる。
【0020】
図4は、本発明に係るバス型ネットワーク構造の通信ネットワークシステムの連結を概略的に示した図である。
【0021】
図1に示すような従来技術では、図2に示すように、ゲームサーバの連結が追加される度に、ネットワーク全体の観点における連結数が、幾何級数的に増加せざるを得なかった。しかし、図4に示すように、本発明に係るバス型ネットワーク構造では、各サーバが1つのブローカとの連結のみを維持すればよく、ネットワークが拡張しても中間連結はブローカを介して行われるため、サーバが追加的に連結してもネットワーク全体の観点における連結数は大きく増加しない。したがって、図3及び図4のような本発明のバス型ネットワーク構造を採用した通信ネットワークシステムは、新しいサービス連係が容易であり、かつ維持及び管理面においても極めて有効である。
【0022】
図5は、本発明に係る通信ネットワークシステムでブローカ、コネクタおよびサービスの連結を示した図である。
【0023】
図5に示すように、本発明に係る通信ネットワークシステムは、メッセージルーティングを処理するブローカ501と、コネクタ502と、コネクタ502を介してブローカ501と連結する多数のサービス503と、を含んで構成される。
【0024】
サービス503は、通信可能なターミナルノードである。各サービス503は、1つのコネクタ502を介してブローカ501と連結する。
【0025】
コネクタ502は、サービス503とブローカ501との連結を媒介(仲介)するモジュールである。各コネクタ502は、1つだけのブローカ501と連結する。
【0026】
本発明の一実施形態では、コネクタ502とサービス503は、同じプロセス内に含まれる。コネクタ502は、1つのプロセス内に1だけ存在し、サービス503は、1つのプロセス内に少なくとも1つ以上が存在する。すなわち、プロセス別に1つのコネクタ502が存在し、コネクタ502は、自身が属するプロセス内に存在するすべてのサービス503とブローカ501との連結を媒介することができる。
【0027】
また、本実施形態では、コネクタとプロセスとが、1:1で対応することで通信ネットワークシステムの統一性を図ることができ、互いに属するプロセスにおける異なるサービス503が、1つの同じコネクタ502を介して同じブローカ501と連結することで、非効率的なルーティングを予防することができ、データ送受信上の混乱を避けることができる。
【0028】
ブローカ501は、効率的なメッセージルーティングを処理するためにルーティング経路を設定したり、コネクタ502との連結関係を設定したりするモジュールである。また、各ブローカ501は、フルメッシュ形態で相互連結する。
【0029】
本明細書では、ブローカ501が、フルメッシュ形態で相互連結して形成されたネットワークをMRS(Message Routing Server)ネットワーク500と定義する。したがって、MRSネットワーク500とは、通信しようとする多様なシステム間でメッセージを効率的に送受信するためのネットワークサービスプラットホームを意味するものである。そして、コネクタ502は、このようなMRSネットワーク500を用いてメッセージ送受信を行うために用いられるプログラミングインターフェースを提供するモジュールである。また、サービス503は、コネクタ502が提供するプログラミングインターフェースを介してMRSネットワーク500を利用する。
【0030】
一方、図5に示すように、本発明に係る通信ネットワークシステムでのコネクタ502とブローカ501との連結は、1つに限られており、各サービス503が、ブローカ501と通信するときには、1つの連結を介して順次通信するようになる。
【0031】
図6は、本発明に係るMRSネットワークを介して各種サーバと連結した一例を示した図である。
【0032】
図6に示すように、ゲームストリームサーバ、チャンネルリストサーバ、ゲームサーバ、通知(公知)サーバ、管理サーバ、データベースサーバを始めとした各種ゲーム関連サーバが、MRSネットワーク600を介して連結されている。各サーバは、フルメッシュ形態で相互連結した複数のブローカのうちのいずれか1つのブローカと1つの連結だけを維持するようになる。
【0033】
従来技術では、すべてのゲーム関連サーバがメッシュ型構造で連結されるため、1つのサーバと連結するサーバ数が多いほど、全体の連結数が幾何級数的に増加するようになる。一方、本発明では、図6に示すように、各サーバは、1つのブローカとの連結だけを維持すればよく、ネットワークが拡張されても中間連結は、ブローカを介して行われるため、サーバが追加して連結されても、ネットワーク全体の観点における連結数は大きく増加しないという長所がある。
【0034】
図7は、本発明に係る通信ネットワークシステム上で用いられるメッセージの構造を説明するための図である。図7を参照して、本発明に係る通信ネットワークシステムのサブシステムであるコネクタ、ブローカ及びブローカ間と、各ブローカ間で送受信されるメッセージの構造を説明する。
【0035】
本明細書では、各メッセージのフィールドを定義するためのDATA型としてオクテット(octet)表記法に限らず、一般的にウィンドウズ(登録商標)で広く用いられているDATA型に基づいて、メッセージの構造を説明する。この場合、ウィンドウズ(登録商標)DATA型とオクテット表記は「BYTE:octet(8)」、「WORD:octet(16)」、「DWORD:octet(32)」のようにマッピングされる。
【0036】
本発明に係る通信ネットワークシステム上で用いられるメッセージは、MRMSGHeaderとMRCMPHeaderとの2つに大別される。各メッセージは、共通的なフィールドであるMRHeaderと、各メッセージ毎に固有(特化した)フィールドとに区分される。
【0037】
MRHeaderは、本発明に係る通信ネットワークシステム上で相互交換されるすべてのメッセージが共通して有するべきメッセージヘッダー情報である。MRHeaderメッセージは、単独で用いることができず、プロトコルタイプフィールドで記述した値と追加的なメッセージ情報をMRHeader後に追加して送受信しなければならない。
【0038】
【表1】
【0039】
MRMSGHeader構造で伝達されるメッセージは、MRSネットワークと連結した多数のサービス間に当該サービスが指定したペイロード値を伝達するための構造を有している。
【0040】
ここには、メッセージを送信する送信者のアドレスであるソースアドレスと、メッセージを受信する受信者のアドレスである宛先アドレスが記述され、MRSネットワークは、宛先アドレスの形態と連結情報に基づいてルーティングを試みる。各フィールドについての詳しい説明は下記の表2に示す。
【0041】
【表2】
【0042】
MRCMPHeader構造で伝達されるメッセージは、本発明に係る通信ネットワークシステムのサブシステムであるコネクタ、ブローカ、及びブローカ間と各ブローカ間の信号を送受信するために定義されたメッセージである。各フィールドについての詳しい説明は、下記の表3に示す。
【0043】
【表3】
【0044】
以下、本発明で使用するアドレス体系について説明する。
【0045】
本発明では、MRSネットワークを用いてデータを送受信するために、ソースアドレス及び宛先アドレスを指称(指定)するとき、IPアドレスではなく、本発明に係る新しいアドレス体系を用いる。MRSネットワークでは、特定したサービスを識別するために、ユニキャスト(unicast)、エニーキャスト(anycast)、マルチキャスト(multicast)という3種類のアドレス類型を支援する。該アドレスは、キャストタイプとアドレス類型別のアドレスで構成され、16バイトの長さを有する。
【0046】
オンラインゲームの場合、多数のサービスインスタンスが相互に連動して動作するため、サービスインスタンス間の通信が増加せざるを得ないが、従来技術にはこのようなサービスインスタンスに対してネットワークアドレスを割り当てる構成がなかったため、同じネットワークアドレスを有する1つのプロセスが、多くのサービスインスタンスを含んで多数のサービスインスタンス通信を処理しなければならないという問題点があった。
【0047】
このため、本発明では、新しいアドレス体系を導入して、個別のサービスインスタンス毎に独自のアドレスを割り当てることで、サービスインスタンス間の通信処理が効率的に成されるようにした。この場合、既存のように、ゲームサーバで多数のゲームセンターそれぞれにメッセージを分配しなくてもよいため、管理費用が著しく減少するという効果が生じる。
【0048】
また、本発明では、ユニキャスト以外にもエニーキャストとマルチキャストを含めた3種類のアドレス類型を支援しているため、エニーキャスト又はマルチキャストを適用して物理的に互いに異なるサーバで動作するインスタンスを、1つのエニーキャスト又はマルチキャストグループとして結ぶことができる。
【0049】
図8は、本発明に係るアドレス体系を説明するための図である。
【0050】
図8において、キャストタイプはアドレスの類型を示し、CT_UNICAST、CT_MULTICAST及びCT_ANYCASTのうちの1つの値を有する。
【0051】
ユニキャストアドレスとは、MRSネットワークを用いるすべてのサービスを唯一(unique)に区分することができるアドレスである。ユニキャストアドレスは、全体ネットワークで特定のサービスがアクティブに提供されているサーバを区分するサーバ名と、同じサーバ内で該当するサービスを区分するインスタンスIDと、で構成される。
【0052】
サーバ名とは、MRSネットワークを用いるサービスがアクティブに提供されているコンピュータハードウェアであるサーバに対する区分を示す11バイトの値を意味する。また、全体ネットワークでサービスがアクティブに提供されているサーバを区分する11バイトの値として、コンピュータ名を用いることができる。
【0053】
インスタンスIDとは、同じサーバ内でサービスを唯一(unique)に区分する識別子である。例えば、1〜65535までの値は、固定されたユニキャストアドレスが必要である場合のために予約されており、65536以後の値はサーバ内で唯一に動的に割り当てて用いることができるようにする。
【0054】
このようなユニキャストアドレスは下記表4のように整理される。
【0055】
【表4】
【0056】
マルチキャストアドレスとエニーキャストアドレスは、単純に15バイト長さの値を用いるため、サービス間で自由に設定して用いることができる。該値は、全体ネットワーク上で唯一(unique)でなければならず、事前に通知されなければならない。
【0057】
マルチキャスト/エニーキャストアドレスは、下記表5のように整理される。
【0058】
【表5】
【0059】
本発明に係るMRSネットワークを用いる場合として、(1)サービスが他のサービスで提供される機能を用いるために、MRSネットワークに接続する場合と、(2)サービスが他のサービスから要請された事項(matter)を処理する機能を提供するために、MRSネットワークに接続する場合と、がある。
【0060】
サービスが他のサービスで提供される機能を用いるためにMRSネットワークに接続する上記(1)の場合についての一例として、ユーザログイン情報を確認するためにログインサーバに要請を送信して回答を得るというサービスがある。このように、他のサービスで提供される機能を用いるためのサービスは、MRSネットワークとサービスとを媒介するモジュールであるコネクタを介して次のように動作する。
【0061】
まず、プロセスを開始するときに、サービスとコネクタ間のデータ送受信のためにプログラミングインターフェースを初期化し、MRSネットワークにサービスのユニキャストアドレスを登録した後、他のサービスに要請メッセージを送信して回答メッセージを受信する。また、他のサービスで提供される機能の使用が完了した場合には、MRSネットワークからサービスのユニキャストアドレスを解除(削除)し、プロセスが終了するときに上記プログラミングインターフェースを終了する。
【0062】
サービスが他のサービスから要請された事項を処理する機能を提供するために、MRSネットワークに接続する上記(2)の場合についての一例として、データベース照会機能を提供するサービスと、ユーザのログイン情報又は位置情報を提供するサービスと、がある。このような他のサービスに特定の機能を提供するためのサービスは、MRSネットワークとサービスとを媒介するモジュールであるコネクタを介して次のように動作する。
【0063】
まず、プロセスが開始するときに、サービスとコネクタ間でデータを送受信するためにプログラミングインターフェースを初期化し、MRSネットワークにサービスのユニキャストアドレスを登録した後、提供する機能に対するエニーキャスト又はマルチキャストアドレスに加入し、他のサービスから要請メッセージを受信して回答メッセージを送信する。また、他のサービスに特定の機能のすべて提供した場合には、加入したエニーキャスト又はマルチキャストアドレスから脱退し、MRSネットワークからサービスのユニキャストアドレスを解除(削除)し、プロセスが終了するときに、プログラミングインターフェースを終了する。
【0064】
このように、本発明のコネクタは、サービスのユニキャストアドレスをMRSネットワークに登録し、サービスを提供する機能によってエニーキャスト又はマルチキャストアドレスに加入させ、サービスが終了するときには、加入したエニーキャスト又はマルチキャストアドレスから脱退させることができる。
【0065】
以下、本発明に係る通信ネットワークシステムのサブシステムであるサービス、コネクタ及びブローカの動作過程と、各ブローカ間のロードを調節する方法について図9〜15を参照して説明する。
【0066】
図9は、本発明の一実施形態に係るサービスの登録過程を示したフローチャートである。本発明に係る通信ネットワークシステムにおいて特定のサービスを提供したり、サービスを利用しようとするシステムは、コネクタを介してMRSネットワークに登録しなければならない。
【0067】
本発明の一実施形態では、各ブローカには自身と連結可能なコネクタの最大数を指定するロード限界が設定されており、コネクタから連結要請メッセージを受信したブローカは、自身に現在連結しているコネクタ数に該当する現在ロードとロード限界を考慮してコネクタとの連結可否を判断するように動作する。
【0068】
コネクタは、フルメッシュ形態で相互連結した各ブローカのネットワークアドレスが記録されたブローカリストを維持する。ネットワークアドレスは、各ブローカのIPアドレスであってもよい。
【0069】
サービスは、自身をMRSネットワークに登録するためにコネクタにサービス登録メッセージを送信し(段階901)、コネクタは、このサービス登録メッセージを受信してこれを分析し、登録済みのサービスであるかを検査(精査)する(段階902)。検査の結果、登録済みのサービスでない場合には、上記サービス登録メッセージを送信するために自身と連結しているブローカを選択する。このとき、コネクタは、自身が維持しているブローカリストのうちの1つのブローカを任意に選択し、選択したブローカに連結要請メッセージを送信することができる。
【0070】
コネクタによって選択されたブローカは、連結要請メッセージを受信し、自身と現在連結しているコネクタ数(すなわち、現在ロード)と自身と連結可能なコネクタの最大数(すなわち、ロード限界)を考慮して、コネクタとの連結可否を判断する。例えば、選択されたブローカは、コネクタとの連結が設定されるとき、自身と連結し得るコネクタの総数が自身のロード限界を超過する場合には、コネクタからの連結要請を拒否するように動作することができる。
【0071】
一方、連結要請が拒否されたコネクタは、自身のブローカリストの中から選択されたブローカを除いた他のブローカを任意に選択し、新たに選択したブローカに連結要請メッセージを再送信することができる。
【0072】
もし、ブローカが、自身の現在ロードとロード限界を考慮してコネクタとの連結が可能であると判断し、これによってコネクタの連結要請を承認する場合には、両者間の連結が設定され、コネクタは、サービスから受信したサービス登録メッセージを連結が設定されたブローカに送信する(段階903)。
【0073】
本実施形態では、1つのブローカと連結するコネクタ数を適切な程度で維持し、ネットワーク全体において各ブローカと連結したコネクタ数が均衡を成すことによって(バランスを保つことで)、各ブローカ間のロードバランスが自然に調節される。
【0074】
ブローカは、サービス登録メッセージを送信したサービスのルーティング情報を自身のルーティングテーブルに追加してルーティングテーブルを更新し(段階904)、このルーティング情報を他のブローカに送信する(段階905)。これを受信した他のブローカは、受信したルーティング情報を用いて、自身のルーティングテーブルを更新する(段階906)。
【0075】
このように、本発明では、ブローカは、自身のルーティングテーブルが更新された場合、更新された情報を、MRSネットワークを構成する他のブローカに送信することで、他のブローカが常に最新のルーティング情報を維持することができるように動作する。
【0076】
図10は、本発明の一実施形態に係るサービスの解除過程を示したフローチャートである。MRSネットワークに自身を登録したシステムは、自身をMRSネットワークから除去するために、コネクタを介してサービス解除過程を遂行する。サービス解除過程が遂行された後には、MRSネットワークを介したすべてのサービス要請は遮断される。
【0077】
サービスは、コネクタにサービス解除メッセージを送信し(段階1001)、コネクタは受信したサービス解除メッセージを分析して最終解除であるかを検査する(段階1002)。検査の結果が最終解除であれば、このサービス解除メッセージをブローカに伝達する(段階1003)。
【0078】
ブローカは、サービス解除メッセージを送信したサービスのルーティング情報を自身のルーティングテーブルから削除してルーティングテーブルを更新し(段階1004)、このルーティング情報の削除を他のブローカに通報する(段階1005)。該通報を受信した他のブローカは、ルーティング情報の削除を感知して自身のルーティングテーブルを更新する(段階1006)。
【0079】
図11は、本発明の一実施形態に係るメッセージの送受信過程を示したフローチャートであって、本発明において、サービスを利用するためにサービスにメッセージを送信したり、サービス要請のためにメッセージが伝達される過程を示したものである。
【0080】
特定のサービスを利用しようとするサービスは、まず、連結メッセージをコネクタに伝達して仮想の連結を設定する(段階1101)。このとき、利用しようとするサービスのアドレスを規定する。
【0081】
メッセージを送信するときに、サービスは、コネクタのプログラミングインターフェースを用いてメッセージ送信を行う(段階1102)。コネクタは、サービスから伝達されたメッセージにMRSネットワークで用いられるメッセージルーティングプロトコル(Message Routing Protocol:MRP)によるMRPHeaderを追加した後、自身と連結したブローカに該当のメッセージを送信する(段階1103)。ブローカは、コネクタから受信したメッセージの宛先を検索し(段階1104)、該当のブローカ又はコネクタにメッセージを送信する(段階1105)。
【0082】
メッセージを受信するときに、ブローカは、他のブローカからメッセージを受信し(段階1106)、受信したメッセージの宛先を検索し(段階1107)、該当のコネクタにメッセージを送信する(段階1108)。コネクタは、送信されたメッセージのMRPHeaderを除去してブローカから送信されたメッセージの宛先アドレスとインスタンスを検索し(段階1109)、該当のサービスにメッセージを送信して該当のサービスがメッセージを受信するようになる(段階1110)。
【0083】
本発明に係る通信ネットワークシステムでは、このような過程を介して、コネクタを介してブローカに伝達されるメッセージが、他のブローカやコネクタが意識することなく、透過的に送受信されるようになる。また、特定のサービスが伝達したメッセージは、ルーティング経路を介して経路上に存在するブローカ間に透過的に送受信されるようになる。
【0084】
図12は、本発明の一実施形態において、ブローカがMRSネットワークに新たに追加される場合に遂行される過程を示したフローチャートである。
【0085】
新たに追加されるブローカは、まず、他のブローカとの連結を待機する連結待機状態を維持しながら(段階1201)、実行済みの他のブローカと連結する(段階1202)。新たに追加されるブローカと連結したブローカは、自身と連結した他のブローカが記録されたブローカリストに新たに追加されたブローカを追加して自身のブローカリストを更新する(段階1203)。これと同じ方式で、新たに追加されるブローカは、実行済みのさらに他のブローカと連結し(段階1204)、これによって新たに連結したブローカのブローカリストも更新される(段階1205)。このように、MRSネットワーク上で実行されているすべてのブローカのブローカリストが更新される。
【0086】
新たに追加されるブローカが、実行済みのブローカとすべて連結した後、そのうちの1つのブローカを任意に選択する(段階1206)。そして、選択されたブローカにルーティングテーブルを要請した後(段階1207)、これを受信し(段階1208)、自身のルーティングテーブルに反映し(段階1209)、自身がコネクタと連結する準備が整ったことを他のブローカに通報する(段階1210)。
【0087】
準備事実の通報を受けたブローカは、自身と連結したコネクタのうちの新しいブローカに移る再設定コネクタ数を計算し、その数に該当するコネクタを選択する(段階1211)。また、準備事実の通報を受けたブローカは、自身と連結したすべてのコネクタに新しいブローカが連結したことを通報し(段階1212)する。該通報を受けたコネクタは、自身と連結したブローカが記録されたブローカリストに新しいブローカとして追加する(段階1213)。
【0088】
一方、選択された再設定されたコネクタには、新しいブローカとの連結の再設定を要請するメッセージが伝達される(段階1214)。これが伝達されたコネクタは、新しいブローカと連結し、自身と連結したサービスに対するサービス登録メッセージを連結した新しいブローカに伝達する(段階1215)。
【0089】
段階1210〜1215は、MRSネットワーク上で実行されているすべてのブローカに対して遂行することができる。このような過程を介して、実行済みのブローカと連結していたコネクタ及びこれと連結したサービスの一定部分がMRSネットワークに新たに追加されたブローカに移る(移行)ようになり、ブローカ間の効率的な負荷分散が成されるようになる。
【0090】
図13は、本発明の一実施形態において、ブローカが正常的に終了する場合に進行されるロード調節方法の過程を示したフローチャートである。
【0091】
本発明に係る通信ネットワークシステムから正常的に終了する第1ブローカは、自身がこれ以上のコネクタと連結しないように設定し(段階1301)、自身が終了するという終了予定情報を他のブローカに送信する(段階1302)。第1ブローカと終了予定情報を受信した他のブローカは、自身と連結したコネクタにこの終了予定情報を送信し、第1ブローカが正常的に終了するという事実を通報する(段階1303)。
【0092】
第1ブローカは、自身とフルメッシュ形態で相互連結した他のブローカのうちの1つである第2ブローカを選択し、第1ブローカに連結したコネクタに、第2ブローカとの連結を再設定することを要請する連結再設定メッセージを送信する(段階1304)。
【0093】
第1ブローカと連結したコネクタは、連結の再設定メッセージを受信して第2ブローカと連結を設定し、コネクタと連結したサービスを登録するためのサービス登録メッセージを第2ブローカに送信する(段階1305)。
【0094】
一方、本発明の一実施形態では、MRSネットワークにおいてフルメッシュ形態で連結したすべてのブローカ相互間では、ブローカ別に現在連結しているコネクタ数(すなわち、現在ロード)と連結可能なコネクタの最大数(すなわち、ロード限界)に対する情報を含むブローカ状態メッセージが交換される。
【0095】
すなわち、ブローカ状態メッセージは、ブローカ相互間で交換される各ブローカの現在の連結状態及び最大キャパシティに対する情報を含むメッセージであって、第2ブローカの選択において、第1ブローカは、ブローカ状態メッセージに含まれたブローカ別の現在ロードとロード限界に基づいて、この第2ブローカを選択することができる。
【0096】
本実施形態では、正常的に終了するブローカと連結したコネクタが動的に他のブローカと連結する過程において、コネクタがロード限界を超過するブローカに連結を要請して拒絶を受け、他のブローカに連結を再要請しなければならないという不必要な手順を省略することができる。
【0097】
第1ブローカの正常的な終了によって、コネクタと新たに連結する第2ブローカは、自身のルーティング情報を更新する。更新されたルーティング情報は、第1ブローカ及び他のブローカに送信される(段階1306)。
【0098】
このように、本発明では、ブローカは、自身のルーティング情報が更新された場合、更新された情報をMRSネットワークを構成する他のブローカに送信することで、他のブローカが常に最新のルーティング情報を維持するように動作する。
【0099】
正常的に終了する第1ブローカは、第2ブローカから更新されたルーティング情報を受信し、更新されたルーティング情報を用いて自身のルーティングテーブルを更新し、更新された対象(すなわち、第1ブローカと連結していたコネクタ)に関するルーティング情報が自身のルーティングテーブルに存在するかを判断する(段階1307)。判断の結果、更新された対象に関するルーティング情報が存在しない場合には、その連結を最終的に終了する(段階1308)。
【0100】
一方、正常的に終了する第1ブローカは、自身と連結したコネクタに第2ブローカとの連結を再設定する要請を行う連結再設定メッセージの送信時点から、所定の時間が経過したかを検査する(段階1309)。所定の時間が経過した後においても、自身と連結したコネクタが存在する場合は、すべてのコネクタとの連結を終了して自身も終了するように動作する(段階1310)。
【0101】
本発明では、このような過程を介して、ブローカが正常的に終了するときに、各コネクタと連結したサービスが、他のブローカに動的に移動することで、ブローカ間のロードバランスが自動的に調節されるようになる。
【0102】
図14は、本発明の一実施形態において、ブローカの非正常的な終了を、他のブローカが感知する場合に遂行されるロード調節方法の過程を示したフローチャートである。
【0103】
本発明に係る通信ネットワークシステムにおいて、システム障害などによって第1ブローカが非正常的に終了すると(段階1401)、MRSネットワークにおいて第1ブローカとフルメッシュ形態で相互連結した他のブローカのうちの1つである第2ブローカは、第1ブローカの非正常的な終了を感知し(段階1402)、それによって自身のロード限界、すなわち、最大キャパシティを上向き(増加)に調整する(段階1403)。
【0104】
例えば、ブローカ1つと連結するコネクタの最大数「50」が本来のロード限界であれば、他のブローカが非正常的に終了することが感知された場合に、ブローカ1つと連結するコネクタの最大数を「60」に再調整し、非正常的に終了するブローカと連結したコネクタが迅速に残りの他のブローカに移動して連結するように動作することができる。この場合、サービス連結が中断する時間を極めて短縮することができる。
【0105】
一方、本発明の一実施形態では、MRSネットワークにおいてフルメッシュ形態で連結したすべてのブローカの相互間で、ブローカ別に現在状態に対する情報を含むブローカ状態メッセージが交換される。
【0106】
本実施形態では、このようなブローカ状態メッセージは、他のブローカが正常状態であるか非正常状態であるかを判断することができる基準として各ブローカが利用する。本発明に係る通信ネットワークシステムから非正常的に終了する第1ブローカを、第2ブローカが感知する方法として、この第2ブローカは、ブローカ状態メッセージが正常的に受信されない第1ブローカを非正常的に終了するブローカとして感知することができる。
【0107】
また、第1ブローカの非正常的な終了を感知した第2ブローカは、第1ブローカと連結したコネクタのうちの少なくとも一部のコネクタとの連結を設定する。これにより、一部のコネクタと連結したサービスが、第2ブローカに登録されるように動作する。
【0108】
本発明の一実施形態の、第2ブローカが一部のコネクタとの連結を設定する処理では、第1ブローカと連結したコネクタ数を該第1ブローカを除いたMRSネットワーク上の各ブローカの総数で割った値によって一部のコネクタの数が決定される。例えば、非正常的に終了する第1ブローカを除いてMRSネットワーク上に2つのブローカが存在し、第1ブローカと連結したコネクタ数がN個であるとすると、第2ブローカは、「N/2」個のコネクタと連結することになる。
【0109】
本実施形態では、いずれかのブローカがシステム障害などによって非正常的に終了しても、1つのブローカと連結するコネクタ数が適切な数で維持され、ネットワーク全体において各ブローカと連結したコネクタ数が均衡を成すようになることで、各ブローカ間のロードバランスが自然に調節される。
【0110】
一方、第2ブローカは、このような連結設定によって自身のルーティング情報を更新し、更新されたルーティング情報をMRSネットワーク上の他のブローカに送信することで、すべてのブローカが自身のルーティングテーブルを最新で更新するようにできる(段階1404)。
【0111】
また、MRSネットワーク上のすべてのブローカと連結したコネクタに、第1ブローカの終了事実を知らせる終了情報が送信されることで、コネクタは自身のブローカリストを更新できるようになる(段階1405)。
【0112】
本発明では、このような過程を介して、ブローカの非正常的な終了時にも各コネクタと連結したサービスが他のブローカに動的に移動することで、ブローカ間のロードバランスが自動的に調節されるようにする。
【0113】
図15は、本発明の一実施形態において、ブローカの非正常的な終了をコネクタが感知する場合に遂行されるロード調節方法の過程を示したフローチャートである。
【0114】
コネクタは、フルメッシュ形態で相互連結した各ブローカのネットワークアドレスが記録されたブローカリストを維持する。ネットワークアドレスは、各ブローカのIPアドレスであってもよい。
【0115】
本発明に係る通信ネットワークシステムから第1ブローカが非正常的に終了すると(段階1501)、第1ブローカと連結したコネクタは、自身と連結した第1ブローカが非正常的に終了した事実を感知し(段階1502)、自身のブローカリストから第1ブローカのネットワークアドレスを削除してブローカリストを更新する(段階1503)。
【0116】
非正常的に終了した第1ブローカをブローカリストから削除したコネクタは、更新された自身のブローカリストの中から任意の第2ブローカを選択し(段階1504)、第2ブローカとの連結を設定し(段階1505)、自身と連結したすべてのサービスを登録するためのサービス登録メッセージをこの第2ブローカに送信することでサービス登録を行うことができる(段階1506)。
【0117】
一方、サービスが追加で登録された第2ブローカは、自身のルーティング情報を更新し、更新されたルーティング情報をMRSネットワーク上の他のブローカに送信することで、すべてのブローカが最新のルーティング情報を維持できるようにする(段階1507)。
【0118】
本発明では、このような過程を介して、ブローカの非正常的な終了時に、ブローカだけでなく非正常的に終了するブローカと連結したコネクタもこれを感知させ、コネクタと連結したサービスが他のブローカに動的に移動することで、ブローカ間のロードバランスが自動的に調節されるようにする。
【0119】
以下、本発明に係る通信ネットワークシステムのサブシステムであるコネクタの構造および各構成要素の機能について説明する。
【0120】
図16は、本発明に係るコネクタの構造を示したブロック図である。
【0121】
図16に示すように、コネクタ1600は、API1601と、メッセージキュー管理モジュール1602と、サービスプール管理モジュール1603と、サービス管理モジュール1604と、連結管理モジュール1605と、を含んで構成される。
【0122】
API1601とは、コネクタ1600が提供する機能をコネクタ1600と連結したサービスに露出するアプリケーションプログラミングインターフェース(Application Programming Interface)である。本発明に係るMRSネットワークを利用しようとするシステムは、データを送受信するためにAPI1601を用いる。
【0123】
図17は、コネクタとサービスのプロセスに対する関係とAPI1601を説明するための図である。
【0124】
図17に示すように、本発明の一実施形態では、コネクタとサービスは、同じプロセス内に含まれている。コネクタは、1つのプロセス内に1つだけ存在し、サービスは、1つのプロセス内に少なくとも1つ以上存在する。すなわち、プロセス別に1つのコネクタが存在し、コネクタは、自身が属するプロセス内に存在するすべてのサービスとMRSネットワークを構成するブローカとの連結を媒介(仲介)することができる。
【0125】
また、本実施形態では、コネクタとプロセスが、1:1で対応することで通信ネットワークシステムの統一性を図ることができる。また、互いに属するプロセスにて異なるサービスが、1つの同じコネクタを介して同じブローカに連結することで非効率的なルーティングを予防することができ、データ送受信上の混乱を避けることができる。
【0126】
一方、図17に示すように、1つのプロセス内に存在する1つ以上のサービスは、1つのコネクタ1600を介してMRSネットワークと連結する。ここで、サービスとコネクタ1600との連結およびデータ送受信は、API1601を介して成される。
【0127】
すなわち、MRSネットワークを用いてデータを送受信するために、サービスは、MRSネットワークと直接連結を設定してデータを送受信することはできず、コネクタ1600で提供するAPI1601を用いてデータを送受信するようになる。その結果、API1601は、サービスからサービス登録またはサービス解除の要請、ブローカ1610へのデータ送信の要請などを受信するようになる。
【0128】
コネクタ1600は、このようなAPI1601を提供するモジュールであって、MRSネットワークを用いる各プロセスに搭載され、該当のプロセスで生成されるすべてのサービスに対するMRSネットワークにメッセージを送受信する機能を担当する。
【0129】
メッセージキュー管理モジュール1602は、送受信される本発明に係るMRSネットワーク上で用いられるメッセージルーティングプロトコル(Message Routing Protocol:MRP)パッケージを管理する役割を行う。ここで、MRPパッケージとは、コネクタ1600とブローカ1610間で送受信されるデータの単位を意味する。
【0130】
図18は、このようなメッセージキュー管理モジュール1602の構造を示したブロック図である。
【0131】
図18に示すように、メッセージキュー管理モジュール1602は、送信キュー1801と、受信キュー1802と、を含む。
【0132】
ここで、送信キュー1801は、ブローカ1610に送信するMRPパッケージを管理し、受信キュー1802は、ブローカ1610から受信されたMRPパッケージを管理する役割を担当する。
【0133】
サービスプール管理モジュール1603は、サービスをブローカ1610に登録又は解除して、登録されたサービスを管理する役割をする。また、サービス管理モジュール1604は、登録されたサービスに対する情報を管理する役割をする。
【0134】
図19は、このようなサービス管理モジュール1604の構造を示したブロック図である。
【0135】
図19に示すように、サービス管理モジュール1604は、受信メッセージキュー1901と、受信バッファキュー1902と、完成状態キュー1903と、を含む。
【0136】
ここで、受信メッセージキュー1901は、ブローカ1610から受信されたメッセージを管理し、受信バッファキュー1902は、サービスが登録した受信バッファを管理し、完成状態キュー1903は、サービスが要請した入出力に対する完成した結果を管理する役割を担当する。
【0137】
連結管理モジュール1605は、MRPパッケージを送受信してブローカ1610とのソケット連結を管理する役割をする。
【0138】
図20は、このような連結管理モジュール1605の構造を示したブロック図である。
【0139】
図20に示すように、連結管理モジュール1605は、メッセージ送信モジュール2001と、連結制御モジュール2002と、を含む。
【0140】
ここで、メッセージ送信モジュール2001は、メッセージキュー管理モジュール1602から送信されるMRPパッケージをローディングしてブローカ1610に送信し、ブローカ1610から受信したMRPパッケージをメッセージキュー管理モジュール1602に伝達する役割を担当する。一方、連結制御モジュール2002は、コネクタ1600とブローカ1610間の制御メッセージを処理して両者の連結を制御する役割を担当する。
【0141】
以下、本発明に係る通信ネットワークシステムのさらに他のサブシステムとしてのブローカの構造および各構成要素の機能について説明する。
【0142】
図21は、ブローカの構造を示したブロック図である。
【0143】
図21に示すように、ブローカ2100は、リンク管理モジュール2101と、ルーティング情報管理モジュール2102と、メッセージ分類モジュール2103と、メッセージルータ2104と、メッセージデシリアライザ2105と、メッセージトランザクタ2106と、メッセージシリアライザ2107と、自動コンフィギュレータ2108と、を含んで構成される。
【0144】
リンク管理モジュール2101は、コネクタ又は他のブローカとの連結を維持及び管理し、コネクタ又は他のブローカとデータ送受信を遂行する役割をする。
【0145】
ルーティング情報管理モジュール2102は、ブローカ2100に登録されたサービスのルーティング情報を維持及び管理する役割をし、ブローカ2100と連結したコネクタ又は他のブローカとの連結情報を含む連結プールを維持することができる。
【0146】
メッセージ分類モジュール2103は、リンク管理モジュール2101が受信したデータの形態を把握し、所定の基準に従って受信したデータを単純メッセージと複雑メッセージに分類する役割をする。
【0147】
メッセージルータ2104は、メッセージ分類モジュール2103から単純メッセージを受信し、ルーティング情報管理モジュール2102から単純メッセージに関する宛先の位置情報を取得して、リンク管理モジュール2101に伝達する役割をする。
【0148】
メッセージデシリアライザ2105は、メッセージ分類モジュール2103から複雑メッセージを受信し、複雑メッセージを加工して客体化(object)する役割をする(複雑メッセージを変換して目的物とする役割をする)。
【0149】
メッセージトランザクタ2106は、メッセージデシリアライザ2105から客体(object)を受信し、客体(object)を用いてブローカ2100を制御する役割をする。
【0150】
メッセージシリアライザ2107は、メッセージトランザクタ2106から客体(object)を受信し、客体(object)を送信可能な線形データに加工してリンク管理モジュール2101に伝達する役割をする。
【0151】
自動コンフィギュレータ2108は、ブローカ2100が属したネットワークの状態を追跡してブローカ2100の状態を自動で調整する役割をする。
【0152】
図22は、リンク管理モジュール2101の構造を示したブロック図である。
【0153】
図22に示すように、リンク管理モジュール2101は、OSソケットサブシステム2201と、リンクアセプタ2202と、データ受信モジュール2203と、データ送信モジュール2204と、リンクエージェント2205と、を含む。
【0154】
OSソケットサブシステム2201は、ブローカ2100と連結したコネクタまたは他のブローカとデータを送受信するためのインターフェイスの役割を担当する。
【0155】
リンクアセプタ2202は、ブローカ2100と連結したコネクタまたは他のブローカからの連結要請を、OSソケットサブシステム2201を介して受信し、連結要請による連結情報をルーティング情報管理モジュール2102が維持する連結プールに記録する役割を担当する。
【0156】
データ受信モジュール2203は、ブローカ2100と連結したコネクタ又は他のブローカからデータをOSソケットサブシステム2201を介して受信し、これをメッセージ分類モジュール2103に伝達する役割を担当する。
【0157】
データ送信モジュール2204は、メッセージシリアライザ2107で加工されたデータを受信し、OSソケットサブシステム2201を介してブローカ2100と連結したコネクタ又は他のブローカに送信する役割を担当する。
【0158】
リンクエージェント2205は、データ送信モジュール2204の要請によってOSソケットサブシステム2201を介してブローカ2100と連結したコネクタ又は他のブローカとの連結を試み、連結が成功すれば、これによって生成された連結情報を用いてルーティング情報管理モジュール2102が維持する連結プールを更新する役割を担当する。
【0159】
一方、データ送信モジュール2204は、連結プールを照会して送信するデータの宛先に関するコネクタ又は他のブローカとの連結可否を確認し、連結設定がなされていない場合には、リンクエージェント2205にブローカ2100と連結したコネクタ又は他のブローカとの連結設定を要請した後に、データ送信を試みるように動作する。
【0160】
本発明に係るロード調節方法は、コンピュータにより具現される多様な動作を実行するためのプログラム命令を含むコンピュータ読み取り可能な媒体を含む。該媒体は、プログラム命令、データファイル、データ構造などを単独または組み合わせて含むこともできる。このような媒体及びプログラム命令は、本発明の目的のために特別に設計されて構成されたものでもよく、コンピュータソフトウェア分野の技術を有する当業者にとって公知であり使用可能なものであってもよい。コンピュータ読み取り可能な記録媒体の例としては、ハードディスク、フロッピー(登録商標)ディスク及び磁気テープのような磁気媒体、CD−ROM、DVDのような光記録媒体、フロプティカルディスクのような磁気−光媒体、およびROM、RAM、フラッシュメモリなどのようなプログラム命令を保存して実行するように特別に構成されたハードウェア装置が含まれる。また、上記媒体は、プログラム命令、データ構造などを保存する信号を送信する搬送波を含む光または金属線、導波管などの送信媒体でもある。プログラム命令の例としては、コンパイラによって生成されるもののような機械語コードだけでなく、インタプリタなどを用いてコンピュータによって実行される高級言語コードを含む。このようなハードウェア要素は、本発明の動作を実行するために一以上のソフトウェアモジュールとして作動するように構成することができ、その逆もできる。
【0161】
上述したように、本発明を好ましい実施形態に則して説明したが、本発明の技術分野において熟練した当業者にとっては、本発明の特許請求の範囲に記載された技術的思想及びその領域から逸脱しない範囲内で、本発明を多様に修正及び変更させることができる。すなわち、本発明の技術的範囲は、特許請求の範囲に基づいて定められ、発明を実施するための最良の形態により制限されるものではない。
【図面の簡単な説明】
【0162】
【図1】従来技術に係るゲームサーバ間のネットワーク連結を示した図である。
【図2】従来技術においてゲームサーバ数が増加し続けることによって生じるゲームサーバ間のネットワーク連結を示した図である。
【図3】本発明に係るバス型ネットワーク構造を概略的に示した図である。
【図4】本発明に係るバス型ネットワーク構造の通信ネットワークシステムの連結を概略的に示した図である。
【図5】本発明に係る通信ネットワークシステムにおけるブローカ、コネクタ及びサービスの連結を示した図である。
【図6】本発明に係るMRSネットワークを介して各種サーバと連結した一例を示した図である。
【図7】本発明に係る通信ネットワークシステム上で用いられるメッセージの構造を説明するための図である。
【図8】本発明に係るアドレス体系を説明するための図である。
【図9】本発明の一実施形態に係るサービスの登録過程を示したフローチャートである。
【図10】本発明の一実施形態に係るサービスの解除過程を示したフローチャートである。
【図11】本発明の一実施形態に係るメッセージの送受信過程を示したフローチャートである。
【図12】本発明の一実施形態において、ブローカがMRSネットワークに新たに追加される場合に進行される過程を示したフローチャートである。
【図13】本発明の一実施形態において、ブローカが正常的に終了する場合に進行されるロード調節方法の過程を示したフローチャートである。
【図14】本発明の一実施形態において、ブローカの非正常的な終了を他のブローカが感知する場合に進行されるロード調節方法の過程を示したフローチャートである。
【図15】本発明の一実施形態において、ブローカの非正常的な終了をコネクタが感知する場合に進行されるロード調節方法の過程を示したフローチャートである。
【図16】本発明に係るコネクタの構造を示したブロック図である。
【図17】本発明に係るコネクタで提供されるプログラミングインターフェースであるAPIを説明するための図である。
【図18】本発明に係るコネクタの一構成要素であるメッセージキュー管理モジュールの構造を示したブロック図である。
【図19】本発明に係るコネクタの一構成要素であるサービス管理モジュールの構造を示したブロック図である。
【図20】本発明に係るコネクタの一構成要素である連結管理モジュールの構造を示したブロック図である。
【図21】本発明に係るブローカの構造を示したブロック図である。
【図22】本発明に係るブローカの一構成要素であるリンク管理モジュールの構造を示したブロック図である。
【符号の説明】
【0163】
500 MRSネットワーク
501、1610 ブローカ
502、1600 コネクタ
503、サービス
【技術分野】
【0001】
本発明は、バス型ネットワーク構造の通信ネットワークシステムにおけるサブシステム間のロードを調節する方法に関し、より詳細には、ある1つのプロセス内に存在する1つ以上のサービスを1つのコネクタを介してメッセージルーティングを処理するブローカに連結させ、ネットワーク上のすべてのブローカをフルメッシュ形態で相互連結するバス型ネットワーク構造において、各ブローカ間のロードバランスを適切に調節するための方法に関する。
【背景技術】
【0002】
従来技術では、ゲームサービスを提供するすべてのゲームサーバが、メッシュ型構造で連結している。図1は、このような従来技術に係るゲームサーバ間のネットワーク連結を示した図である。
【0003】
図1に示すように、従来技術によれば、ゲームサーバの連結が追加するたびに、全体ネットワーク全体の観点における連結数は、幾何級数的に増加せざるを得ない。図2は、従来技術においてゲームサーバ数が増加し続けることによって生じるゲームサーバ間のネットワーク連結を示した図である。
【0004】
このように、ゲームサーバがメッシュ型構造で相互連結する従来技術によれば、ゲームサーバ数の増加によって連結構造が極めて複雑になり、その結果、ゲームユーザの増加によるゲームサーバの拡張が困難になるという問題点が生じていた。特に、ゲームサーバ間の連結を世界的に拡張する場合には、その管理がより一層困難にならざるを得なかった。
【0005】
さらに、1つのサーバと連結する相手サーバ数が多いほど、全体の連結数は幾何級数的に増加するが、従来技術において、1つのゲームサーバは、ログインサーバ、ランキングサーバ、データベースサーバと連結し、これに追加してチャンネルリストサーバおよび通知(公知)サーバとが1つのマルチキャストグループとして連結されている。したがって、ネットワーク全体に存在する連結数は、実際のゲームサーバ間の連結数を大きく超過することになるため、管理が極めて困難な実情にある。
【0006】
これにより、すべてのゲームサーバがメッシュ形態で連結する従来技術に係るネットワーク構造から脱し、サーバ間の連結構造の単純化により管理が容易で、かつ効率的なサービス拡張が可能な新しい通信ネットワーク構造の実現が求められているとともに、このような新しい通信ネットワーク構造における各サブシステム間のロードバランスを効率的に調節することが可能な方法が要求されている。
【発明の開示】
【発明が解決しようとする課題】
【0007】
本発明は、上記従来技術の問題点を解決するために成されたものであって、バス型ネットワーク構造によりサーバ間の連結構造が単純化した新しい通信ネットワークシステムにおいて、各ブローカの現在ロードとロード限界に基づいてコネクタを介したサービスが登録されるブローカを選択し、ブローカが正常的および非正常的に終了する際に、各コネクタと連結したサービスが他のブローカに動的に移動してブローカ間のロードバランスが自動的に調節されるロード調節方法を提供することを目的とする。
【0008】
また、本発明は、バス型ネットワーク構造によりサーバ間の連結構造が単純化した新しい通信ネットワークシステムにおいて、各サブシステム間の負荷分散を効率的に調節することで、サービスの拡張性および性能拡張性を支援するとともに、維持および管理が容易な通信ネットワークシステムを構築することを目的とする。
【0009】
また、本発明は、すべてのゲームサーバがメッシュ形態で連結する従来技術に係るネットワーク構造から脱し、サーバ間の連結構造を単純化することで管理が容易で、かつ効率的なサービス拡張が可能な新しい通信ネットワーク構造を提供することを目的とする。
【課題を解決するための手段】
【0010】
前記の目的を達成し、上述した従来技術の問題点を解決するために、本発明の1つの側面としてのバス型ネットワーク構造の通信ネットワークシステムにおけるサブシステム間のロードを調節する方法は、上記通信ネットワークシステムが、メッセージルーティングを処理するブローカと、コネクタと、このコネクタを介して上記ブローカと連結する通信可能なターミナルノードである多数のサービスとを含み、上記通信ネットワークシステム上の、メッセージルーティングを処理するためにルーティング経路を設定したり、前記コネクタとの連結関係を設定したりするモジュールである各ブローカを、フルメッシュ形態で相互連結する段階と、上記各ブローカのネットワークアドレスが記録されたブローカリストを上記コネクタで維持する段階と、前記コネクタが、上記サービスから前記サービス登録メッセージを受信し、上記ブローカリストのうちの1つのブローカを任意に選択して連結要請メッセージを送信する段階と、上記選択されたブローカが、連結要請メッセージを受信し、自身の現在ロードとロード限界を考慮して上記コネクタとの連結可否を判断する段階とを含むことを特徴とする。
【0011】
また、本発明の他の側面としてのロード調節方法は、上記通信ネットワークシステム上の、メッセージルーティングを処理するためにルーティング経路を設定したり、前記コネクタとの連結関係を設定したりするモジュールである各ブローカを、フルメッシュ形態で相互連結する段階と、上記通信ネットワークシステムから正常的に終了する第1ブローカが、各ブローカのうちの1つである第2ブローカを選択する段階と、上記第1ブローカと連結したコネクタに、第2ブローカとの連結を再設定することを要請する連結再設定メッセージを送信する段階と、上記コネクタが、上記連結再設定メッセージを受信し、上記第2ブローカとの連結を設定して上記コネクタと連結したサービスを登録するためのサービス登録メッセージを、上記第2ブローカに送信する段階とを含むことを特徴とする。
【0012】
また、本発明のさらに他の側面としてのロード調節方法は、上記通信ネットワークシステム上の、メッセージルーティングを処理するためにルーティング経路を設定したり、前記コネクタとの連結関係を設定したりするモジュールである各ブローカを、フルメッシュ形態で相互連結する段階と、上記各ブローカのうちの1つである第2ブローカが、上記通信ネットワークシステムから非正常的に終了する第1ブローカを感知する段階と、上記第2ブローカが、自身のロード限界を上向き(増加させるよう)に調整し、上記第1ブローカと連結したコネクタのうちの少なくとも一部のコネクタとの連結を設定する段階と、上記第2ブローカが、上記連結設定に従って自身のルーティング情報を更新し、上記各ブローカに上記更新されたルーティング情報を送信する段階とを含むことを特徴とする。
【0013】
また、本発明のさらなる他の側面としてのロード調節方法は、上記通信ネットワークシステム上の、メッセージルーティングを処理するためにルーティング経路を設定したり、上記コネクタとの連結関係を設定したりするモジュールである各ブローカを、フルメッシュ形態で相互連結する段階と、上記各ブローカのネットワークアドレスが記録されたブローカリストを上記コネクタで維持する段階と、上記コネクタが、上記通信ネットワークシステムから非正常的に終了する第1ブローカを感知する段階と、上記ブローカリストから上記第1ブローカのネットワークアドレスを削除して上記ブローカリストを更新する段階と、上記更新されたブローカリストのうちの任意の第2ブローカを選択し、上記第2ブローカとの連結を設定して上記コネクタと連結したサービスを登録するためのサービス登録メッセージを、上記第2ブローカに送信する段階とを含むことを特徴とする。
【発明の効果】
【0014】
本発明によれば、バス型ネットワーク構造を介してサーバ間の連結構造が単純化した新しい通信ネットワークシステムであって、各ブローカの現在ロードとロード限界に基づいて、コネクタを介してサービスが登録されるブローカを選択し、ブローカが正常的及び非正常的に終了する際に、各コネクタと連結したサービスが他のブローカに動的に移動して、ブローカ間のロードバランスが自動的に調節されるロード調節方法が提供される。
【0015】
また、本発明によれば、バス型ネットワーク構造を介してサーバ間の連結構造が単純化した新しい通信ネットワークシステムにおける各サブシステム間の負荷分散を効率的に調節することで、サービス拡張性及び性能拡張性を支援するとともに、維持及び管理が容易な通信ネットワークシステムが構築される。
【0016】
また、本発明によれば、すべてのゲームサーバがメッシュ形態で連結する従来の技術に係るネットワーク構造から脱し、サーバ間の連結構造の単純化により管理が容易で、かつ効率的なサービス拡張が可能な新しい通信ネットワーク構造を提供することができる。
【発明を実施するための最良の形態】
【0017】
以下、添付の図面を参照して、本発明に係る通信ネットワークシステムおよびこのような通信ネットワークシステムで各サブシステム間のロードを調節する方法について詳しく説明する。
【0018】
図3は、本発明に係るバス型ネットワーク構造を概略的に示した図である。
【0019】
図1に示すように、従来技術では、ゲームサーバを始めとしたすべてのゲーム関連サーバがメッシュ型構造で連結している。しかし、図3に示すように、本発明に係るバス型ネットワーク構造では、すべてのサーバがバス構造を介して連結しているため、連結構造の単純化が可能となる。
【0020】
図4は、本発明に係るバス型ネットワーク構造の通信ネットワークシステムの連結を概略的に示した図である。
【0021】
図1に示すような従来技術では、図2に示すように、ゲームサーバの連結が追加される度に、ネットワーク全体の観点における連結数が、幾何級数的に増加せざるを得なかった。しかし、図4に示すように、本発明に係るバス型ネットワーク構造では、各サーバが1つのブローカとの連結のみを維持すればよく、ネットワークが拡張しても中間連結はブローカを介して行われるため、サーバが追加的に連結してもネットワーク全体の観点における連結数は大きく増加しない。したがって、図3及び図4のような本発明のバス型ネットワーク構造を採用した通信ネットワークシステムは、新しいサービス連係が容易であり、かつ維持及び管理面においても極めて有効である。
【0022】
図5は、本発明に係る通信ネットワークシステムでブローカ、コネクタおよびサービスの連結を示した図である。
【0023】
図5に示すように、本発明に係る通信ネットワークシステムは、メッセージルーティングを処理するブローカ501と、コネクタ502と、コネクタ502を介してブローカ501と連結する多数のサービス503と、を含んで構成される。
【0024】
サービス503は、通信可能なターミナルノードである。各サービス503は、1つのコネクタ502を介してブローカ501と連結する。
【0025】
コネクタ502は、サービス503とブローカ501との連結を媒介(仲介)するモジュールである。各コネクタ502は、1つだけのブローカ501と連結する。
【0026】
本発明の一実施形態では、コネクタ502とサービス503は、同じプロセス内に含まれる。コネクタ502は、1つのプロセス内に1だけ存在し、サービス503は、1つのプロセス内に少なくとも1つ以上が存在する。すなわち、プロセス別に1つのコネクタ502が存在し、コネクタ502は、自身が属するプロセス内に存在するすべてのサービス503とブローカ501との連結を媒介することができる。
【0027】
また、本実施形態では、コネクタとプロセスとが、1:1で対応することで通信ネットワークシステムの統一性を図ることができ、互いに属するプロセスにおける異なるサービス503が、1つの同じコネクタ502を介して同じブローカ501と連結することで、非効率的なルーティングを予防することができ、データ送受信上の混乱を避けることができる。
【0028】
ブローカ501は、効率的なメッセージルーティングを処理するためにルーティング経路を設定したり、コネクタ502との連結関係を設定したりするモジュールである。また、各ブローカ501は、フルメッシュ形態で相互連結する。
【0029】
本明細書では、ブローカ501が、フルメッシュ形態で相互連結して形成されたネットワークをMRS(Message Routing Server)ネットワーク500と定義する。したがって、MRSネットワーク500とは、通信しようとする多様なシステム間でメッセージを効率的に送受信するためのネットワークサービスプラットホームを意味するものである。そして、コネクタ502は、このようなMRSネットワーク500を用いてメッセージ送受信を行うために用いられるプログラミングインターフェースを提供するモジュールである。また、サービス503は、コネクタ502が提供するプログラミングインターフェースを介してMRSネットワーク500を利用する。
【0030】
一方、図5に示すように、本発明に係る通信ネットワークシステムでのコネクタ502とブローカ501との連結は、1つに限られており、各サービス503が、ブローカ501と通信するときには、1つの連結を介して順次通信するようになる。
【0031】
図6は、本発明に係るMRSネットワークを介して各種サーバと連結した一例を示した図である。
【0032】
図6に示すように、ゲームストリームサーバ、チャンネルリストサーバ、ゲームサーバ、通知(公知)サーバ、管理サーバ、データベースサーバを始めとした各種ゲーム関連サーバが、MRSネットワーク600を介して連結されている。各サーバは、フルメッシュ形態で相互連結した複数のブローカのうちのいずれか1つのブローカと1つの連結だけを維持するようになる。
【0033】
従来技術では、すべてのゲーム関連サーバがメッシュ型構造で連結されるため、1つのサーバと連結するサーバ数が多いほど、全体の連結数が幾何級数的に増加するようになる。一方、本発明では、図6に示すように、各サーバは、1つのブローカとの連結だけを維持すればよく、ネットワークが拡張されても中間連結は、ブローカを介して行われるため、サーバが追加して連結されても、ネットワーク全体の観点における連結数は大きく増加しないという長所がある。
【0034】
図7は、本発明に係る通信ネットワークシステム上で用いられるメッセージの構造を説明するための図である。図7を参照して、本発明に係る通信ネットワークシステムのサブシステムであるコネクタ、ブローカ及びブローカ間と、各ブローカ間で送受信されるメッセージの構造を説明する。
【0035】
本明細書では、各メッセージのフィールドを定義するためのDATA型としてオクテット(octet)表記法に限らず、一般的にウィンドウズ(登録商標)で広く用いられているDATA型に基づいて、メッセージの構造を説明する。この場合、ウィンドウズ(登録商標)DATA型とオクテット表記は「BYTE:octet(8)」、「WORD:octet(16)」、「DWORD:octet(32)」のようにマッピングされる。
【0036】
本発明に係る通信ネットワークシステム上で用いられるメッセージは、MRMSGHeaderとMRCMPHeaderとの2つに大別される。各メッセージは、共通的なフィールドであるMRHeaderと、各メッセージ毎に固有(特化した)フィールドとに区分される。
【0037】
MRHeaderは、本発明に係る通信ネットワークシステム上で相互交換されるすべてのメッセージが共通して有するべきメッセージヘッダー情報である。MRHeaderメッセージは、単独で用いることができず、プロトコルタイプフィールドで記述した値と追加的なメッセージ情報をMRHeader後に追加して送受信しなければならない。
【0038】
【表1】
【0039】
MRMSGHeader構造で伝達されるメッセージは、MRSネットワークと連結した多数のサービス間に当該サービスが指定したペイロード値を伝達するための構造を有している。
【0040】
ここには、メッセージを送信する送信者のアドレスであるソースアドレスと、メッセージを受信する受信者のアドレスである宛先アドレスが記述され、MRSネットワークは、宛先アドレスの形態と連結情報に基づいてルーティングを試みる。各フィールドについての詳しい説明は下記の表2に示す。
【0041】
【表2】
【0042】
MRCMPHeader構造で伝達されるメッセージは、本発明に係る通信ネットワークシステムのサブシステムであるコネクタ、ブローカ、及びブローカ間と各ブローカ間の信号を送受信するために定義されたメッセージである。各フィールドについての詳しい説明は、下記の表3に示す。
【0043】
【表3】
【0044】
以下、本発明で使用するアドレス体系について説明する。
【0045】
本発明では、MRSネットワークを用いてデータを送受信するために、ソースアドレス及び宛先アドレスを指称(指定)するとき、IPアドレスではなく、本発明に係る新しいアドレス体系を用いる。MRSネットワークでは、特定したサービスを識別するために、ユニキャスト(unicast)、エニーキャスト(anycast)、マルチキャスト(multicast)という3種類のアドレス類型を支援する。該アドレスは、キャストタイプとアドレス類型別のアドレスで構成され、16バイトの長さを有する。
【0046】
オンラインゲームの場合、多数のサービスインスタンスが相互に連動して動作するため、サービスインスタンス間の通信が増加せざるを得ないが、従来技術にはこのようなサービスインスタンスに対してネットワークアドレスを割り当てる構成がなかったため、同じネットワークアドレスを有する1つのプロセスが、多くのサービスインスタンスを含んで多数のサービスインスタンス通信を処理しなければならないという問題点があった。
【0047】
このため、本発明では、新しいアドレス体系を導入して、個別のサービスインスタンス毎に独自のアドレスを割り当てることで、サービスインスタンス間の通信処理が効率的に成されるようにした。この場合、既存のように、ゲームサーバで多数のゲームセンターそれぞれにメッセージを分配しなくてもよいため、管理費用が著しく減少するという効果が生じる。
【0048】
また、本発明では、ユニキャスト以外にもエニーキャストとマルチキャストを含めた3種類のアドレス類型を支援しているため、エニーキャスト又はマルチキャストを適用して物理的に互いに異なるサーバで動作するインスタンスを、1つのエニーキャスト又はマルチキャストグループとして結ぶことができる。
【0049】
図8は、本発明に係るアドレス体系を説明するための図である。
【0050】
図8において、キャストタイプはアドレスの類型を示し、CT_UNICAST、CT_MULTICAST及びCT_ANYCASTのうちの1つの値を有する。
【0051】
ユニキャストアドレスとは、MRSネットワークを用いるすべてのサービスを唯一(unique)に区分することができるアドレスである。ユニキャストアドレスは、全体ネットワークで特定のサービスがアクティブに提供されているサーバを区分するサーバ名と、同じサーバ内で該当するサービスを区分するインスタンスIDと、で構成される。
【0052】
サーバ名とは、MRSネットワークを用いるサービスがアクティブに提供されているコンピュータハードウェアであるサーバに対する区分を示す11バイトの値を意味する。また、全体ネットワークでサービスがアクティブに提供されているサーバを区分する11バイトの値として、コンピュータ名を用いることができる。
【0053】
インスタンスIDとは、同じサーバ内でサービスを唯一(unique)に区分する識別子である。例えば、1〜65535までの値は、固定されたユニキャストアドレスが必要である場合のために予約されており、65536以後の値はサーバ内で唯一に動的に割り当てて用いることができるようにする。
【0054】
このようなユニキャストアドレスは下記表4のように整理される。
【0055】
【表4】
【0056】
マルチキャストアドレスとエニーキャストアドレスは、単純に15バイト長さの値を用いるため、サービス間で自由に設定して用いることができる。該値は、全体ネットワーク上で唯一(unique)でなければならず、事前に通知されなければならない。
【0057】
マルチキャスト/エニーキャストアドレスは、下記表5のように整理される。
【0058】
【表5】
【0059】
本発明に係るMRSネットワークを用いる場合として、(1)サービスが他のサービスで提供される機能を用いるために、MRSネットワークに接続する場合と、(2)サービスが他のサービスから要請された事項(matter)を処理する機能を提供するために、MRSネットワークに接続する場合と、がある。
【0060】
サービスが他のサービスで提供される機能を用いるためにMRSネットワークに接続する上記(1)の場合についての一例として、ユーザログイン情報を確認するためにログインサーバに要請を送信して回答を得るというサービスがある。このように、他のサービスで提供される機能を用いるためのサービスは、MRSネットワークとサービスとを媒介するモジュールであるコネクタを介して次のように動作する。
【0061】
まず、プロセスを開始するときに、サービスとコネクタ間のデータ送受信のためにプログラミングインターフェースを初期化し、MRSネットワークにサービスのユニキャストアドレスを登録した後、他のサービスに要請メッセージを送信して回答メッセージを受信する。また、他のサービスで提供される機能の使用が完了した場合には、MRSネットワークからサービスのユニキャストアドレスを解除(削除)し、プロセスが終了するときに上記プログラミングインターフェースを終了する。
【0062】
サービスが他のサービスから要請された事項を処理する機能を提供するために、MRSネットワークに接続する上記(2)の場合についての一例として、データベース照会機能を提供するサービスと、ユーザのログイン情報又は位置情報を提供するサービスと、がある。このような他のサービスに特定の機能を提供するためのサービスは、MRSネットワークとサービスとを媒介するモジュールであるコネクタを介して次のように動作する。
【0063】
まず、プロセスが開始するときに、サービスとコネクタ間でデータを送受信するためにプログラミングインターフェースを初期化し、MRSネットワークにサービスのユニキャストアドレスを登録した後、提供する機能に対するエニーキャスト又はマルチキャストアドレスに加入し、他のサービスから要請メッセージを受信して回答メッセージを送信する。また、他のサービスに特定の機能のすべて提供した場合には、加入したエニーキャスト又はマルチキャストアドレスから脱退し、MRSネットワークからサービスのユニキャストアドレスを解除(削除)し、プロセスが終了するときに、プログラミングインターフェースを終了する。
【0064】
このように、本発明のコネクタは、サービスのユニキャストアドレスをMRSネットワークに登録し、サービスを提供する機能によってエニーキャスト又はマルチキャストアドレスに加入させ、サービスが終了するときには、加入したエニーキャスト又はマルチキャストアドレスから脱退させることができる。
【0065】
以下、本発明に係る通信ネットワークシステムのサブシステムであるサービス、コネクタ及びブローカの動作過程と、各ブローカ間のロードを調節する方法について図9〜15を参照して説明する。
【0066】
図9は、本発明の一実施形態に係るサービスの登録過程を示したフローチャートである。本発明に係る通信ネットワークシステムにおいて特定のサービスを提供したり、サービスを利用しようとするシステムは、コネクタを介してMRSネットワークに登録しなければならない。
【0067】
本発明の一実施形態では、各ブローカには自身と連結可能なコネクタの最大数を指定するロード限界が設定されており、コネクタから連結要請メッセージを受信したブローカは、自身に現在連結しているコネクタ数に該当する現在ロードとロード限界を考慮してコネクタとの連結可否を判断するように動作する。
【0068】
コネクタは、フルメッシュ形態で相互連結した各ブローカのネットワークアドレスが記録されたブローカリストを維持する。ネットワークアドレスは、各ブローカのIPアドレスであってもよい。
【0069】
サービスは、自身をMRSネットワークに登録するためにコネクタにサービス登録メッセージを送信し(段階901)、コネクタは、このサービス登録メッセージを受信してこれを分析し、登録済みのサービスであるかを検査(精査)する(段階902)。検査の結果、登録済みのサービスでない場合には、上記サービス登録メッセージを送信するために自身と連結しているブローカを選択する。このとき、コネクタは、自身が維持しているブローカリストのうちの1つのブローカを任意に選択し、選択したブローカに連結要請メッセージを送信することができる。
【0070】
コネクタによって選択されたブローカは、連結要請メッセージを受信し、自身と現在連結しているコネクタ数(すなわち、現在ロード)と自身と連結可能なコネクタの最大数(すなわち、ロード限界)を考慮して、コネクタとの連結可否を判断する。例えば、選択されたブローカは、コネクタとの連結が設定されるとき、自身と連結し得るコネクタの総数が自身のロード限界を超過する場合には、コネクタからの連結要請を拒否するように動作することができる。
【0071】
一方、連結要請が拒否されたコネクタは、自身のブローカリストの中から選択されたブローカを除いた他のブローカを任意に選択し、新たに選択したブローカに連結要請メッセージを再送信することができる。
【0072】
もし、ブローカが、自身の現在ロードとロード限界を考慮してコネクタとの連結が可能であると判断し、これによってコネクタの連結要請を承認する場合には、両者間の連結が設定され、コネクタは、サービスから受信したサービス登録メッセージを連結が設定されたブローカに送信する(段階903)。
【0073】
本実施形態では、1つのブローカと連結するコネクタ数を適切な程度で維持し、ネットワーク全体において各ブローカと連結したコネクタ数が均衡を成すことによって(バランスを保つことで)、各ブローカ間のロードバランスが自然に調節される。
【0074】
ブローカは、サービス登録メッセージを送信したサービスのルーティング情報を自身のルーティングテーブルに追加してルーティングテーブルを更新し(段階904)、このルーティング情報を他のブローカに送信する(段階905)。これを受信した他のブローカは、受信したルーティング情報を用いて、自身のルーティングテーブルを更新する(段階906)。
【0075】
このように、本発明では、ブローカは、自身のルーティングテーブルが更新された場合、更新された情報を、MRSネットワークを構成する他のブローカに送信することで、他のブローカが常に最新のルーティング情報を維持することができるように動作する。
【0076】
図10は、本発明の一実施形態に係るサービスの解除過程を示したフローチャートである。MRSネットワークに自身を登録したシステムは、自身をMRSネットワークから除去するために、コネクタを介してサービス解除過程を遂行する。サービス解除過程が遂行された後には、MRSネットワークを介したすべてのサービス要請は遮断される。
【0077】
サービスは、コネクタにサービス解除メッセージを送信し(段階1001)、コネクタは受信したサービス解除メッセージを分析して最終解除であるかを検査する(段階1002)。検査の結果が最終解除であれば、このサービス解除メッセージをブローカに伝達する(段階1003)。
【0078】
ブローカは、サービス解除メッセージを送信したサービスのルーティング情報を自身のルーティングテーブルから削除してルーティングテーブルを更新し(段階1004)、このルーティング情報の削除を他のブローカに通報する(段階1005)。該通報を受信した他のブローカは、ルーティング情報の削除を感知して自身のルーティングテーブルを更新する(段階1006)。
【0079】
図11は、本発明の一実施形態に係るメッセージの送受信過程を示したフローチャートであって、本発明において、サービスを利用するためにサービスにメッセージを送信したり、サービス要請のためにメッセージが伝達される過程を示したものである。
【0080】
特定のサービスを利用しようとするサービスは、まず、連結メッセージをコネクタに伝達して仮想の連結を設定する(段階1101)。このとき、利用しようとするサービスのアドレスを規定する。
【0081】
メッセージを送信するときに、サービスは、コネクタのプログラミングインターフェースを用いてメッセージ送信を行う(段階1102)。コネクタは、サービスから伝達されたメッセージにMRSネットワークで用いられるメッセージルーティングプロトコル(Message Routing Protocol:MRP)によるMRPHeaderを追加した後、自身と連結したブローカに該当のメッセージを送信する(段階1103)。ブローカは、コネクタから受信したメッセージの宛先を検索し(段階1104)、該当のブローカ又はコネクタにメッセージを送信する(段階1105)。
【0082】
メッセージを受信するときに、ブローカは、他のブローカからメッセージを受信し(段階1106)、受信したメッセージの宛先を検索し(段階1107)、該当のコネクタにメッセージを送信する(段階1108)。コネクタは、送信されたメッセージのMRPHeaderを除去してブローカから送信されたメッセージの宛先アドレスとインスタンスを検索し(段階1109)、該当のサービスにメッセージを送信して該当のサービスがメッセージを受信するようになる(段階1110)。
【0083】
本発明に係る通信ネットワークシステムでは、このような過程を介して、コネクタを介してブローカに伝達されるメッセージが、他のブローカやコネクタが意識することなく、透過的に送受信されるようになる。また、特定のサービスが伝達したメッセージは、ルーティング経路を介して経路上に存在するブローカ間に透過的に送受信されるようになる。
【0084】
図12は、本発明の一実施形態において、ブローカがMRSネットワークに新たに追加される場合に遂行される過程を示したフローチャートである。
【0085】
新たに追加されるブローカは、まず、他のブローカとの連結を待機する連結待機状態を維持しながら(段階1201)、実行済みの他のブローカと連結する(段階1202)。新たに追加されるブローカと連結したブローカは、自身と連結した他のブローカが記録されたブローカリストに新たに追加されたブローカを追加して自身のブローカリストを更新する(段階1203)。これと同じ方式で、新たに追加されるブローカは、実行済みのさらに他のブローカと連結し(段階1204)、これによって新たに連結したブローカのブローカリストも更新される(段階1205)。このように、MRSネットワーク上で実行されているすべてのブローカのブローカリストが更新される。
【0086】
新たに追加されるブローカが、実行済みのブローカとすべて連結した後、そのうちの1つのブローカを任意に選択する(段階1206)。そして、選択されたブローカにルーティングテーブルを要請した後(段階1207)、これを受信し(段階1208)、自身のルーティングテーブルに反映し(段階1209)、自身がコネクタと連結する準備が整ったことを他のブローカに通報する(段階1210)。
【0087】
準備事実の通報を受けたブローカは、自身と連結したコネクタのうちの新しいブローカに移る再設定コネクタ数を計算し、その数に該当するコネクタを選択する(段階1211)。また、準備事実の通報を受けたブローカは、自身と連結したすべてのコネクタに新しいブローカが連結したことを通報し(段階1212)する。該通報を受けたコネクタは、自身と連結したブローカが記録されたブローカリストに新しいブローカとして追加する(段階1213)。
【0088】
一方、選択された再設定されたコネクタには、新しいブローカとの連結の再設定を要請するメッセージが伝達される(段階1214)。これが伝達されたコネクタは、新しいブローカと連結し、自身と連結したサービスに対するサービス登録メッセージを連結した新しいブローカに伝達する(段階1215)。
【0089】
段階1210〜1215は、MRSネットワーク上で実行されているすべてのブローカに対して遂行することができる。このような過程を介して、実行済みのブローカと連結していたコネクタ及びこれと連結したサービスの一定部分がMRSネットワークに新たに追加されたブローカに移る(移行)ようになり、ブローカ間の効率的な負荷分散が成されるようになる。
【0090】
図13は、本発明の一実施形態において、ブローカが正常的に終了する場合に進行されるロード調節方法の過程を示したフローチャートである。
【0091】
本発明に係る通信ネットワークシステムから正常的に終了する第1ブローカは、自身がこれ以上のコネクタと連結しないように設定し(段階1301)、自身が終了するという終了予定情報を他のブローカに送信する(段階1302)。第1ブローカと終了予定情報を受信した他のブローカは、自身と連結したコネクタにこの終了予定情報を送信し、第1ブローカが正常的に終了するという事実を通報する(段階1303)。
【0092】
第1ブローカは、自身とフルメッシュ形態で相互連結した他のブローカのうちの1つである第2ブローカを選択し、第1ブローカに連結したコネクタに、第2ブローカとの連結を再設定することを要請する連結再設定メッセージを送信する(段階1304)。
【0093】
第1ブローカと連結したコネクタは、連結の再設定メッセージを受信して第2ブローカと連結を設定し、コネクタと連結したサービスを登録するためのサービス登録メッセージを第2ブローカに送信する(段階1305)。
【0094】
一方、本発明の一実施形態では、MRSネットワークにおいてフルメッシュ形態で連結したすべてのブローカ相互間では、ブローカ別に現在連結しているコネクタ数(すなわち、現在ロード)と連結可能なコネクタの最大数(すなわち、ロード限界)に対する情報を含むブローカ状態メッセージが交換される。
【0095】
すなわち、ブローカ状態メッセージは、ブローカ相互間で交換される各ブローカの現在の連結状態及び最大キャパシティに対する情報を含むメッセージであって、第2ブローカの選択において、第1ブローカは、ブローカ状態メッセージに含まれたブローカ別の現在ロードとロード限界に基づいて、この第2ブローカを選択することができる。
【0096】
本実施形態では、正常的に終了するブローカと連結したコネクタが動的に他のブローカと連結する過程において、コネクタがロード限界を超過するブローカに連結を要請して拒絶を受け、他のブローカに連結を再要請しなければならないという不必要な手順を省略することができる。
【0097】
第1ブローカの正常的な終了によって、コネクタと新たに連結する第2ブローカは、自身のルーティング情報を更新する。更新されたルーティング情報は、第1ブローカ及び他のブローカに送信される(段階1306)。
【0098】
このように、本発明では、ブローカは、自身のルーティング情報が更新された場合、更新された情報をMRSネットワークを構成する他のブローカに送信することで、他のブローカが常に最新のルーティング情報を維持するように動作する。
【0099】
正常的に終了する第1ブローカは、第2ブローカから更新されたルーティング情報を受信し、更新されたルーティング情報を用いて自身のルーティングテーブルを更新し、更新された対象(すなわち、第1ブローカと連結していたコネクタ)に関するルーティング情報が自身のルーティングテーブルに存在するかを判断する(段階1307)。判断の結果、更新された対象に関するルーティング情報が存在しない場合には、その連結を最終的に終了する(段階1308)。
【0100】
一方、正常的に終了する第1ブローカは、自身と連結したコネクタに第2ブローカとの連結を再設定する要請を行う連結再設定メッセージの送信時点から、所定の時間が経過したかを検査する(段階1309)。所定の時間が経過した後においても、自身と連結したコネクタが存在する場合は、すべてのコネクタとの連結を終了して自身も終了するように動作する(段階1310)。
【0101】
本発明では、このような過程を介して、ブローカが正常的に終了するときに、各コネクタと連結したサービスが、他のブローカに動的に移動することで、ブローカ間のロードバランスが自動的に調節されるようになる。
【0102】
図14は、本発明の一実施形態において、ブローカの非正常的な終了を、他のブローカが感知する場合に遂行されるロード調節方法の過程を示したフローチャートである。
【0103】
本発明に係る通信ネットワークシステムにおいて、システム障害などによって第1ブローカが非正常的に終了すると(段階1401)、MRSネットワークにおいて第1ブローカとフルメッシュ形態で相互連結した他のブローカのうちの1つである第2ブローカは、第1ブローカの非正常的な終了を感知し(段階1402)、それによって自身のロード限界、すなわち、最大キャパシティを上向き(増加)に調整する(段階1403)。
【0104】
例えば、ブローカ1つと連結するコネクタの最大数「50」が本来のロード限界であれば、他のブローカが非正常的に終了することが感知された場合に、ブローカ1つと連結するコネクタの最大数を「60」に再調整し、非正常的に終了するブローカと連結したコネクタが迅速に残りの他のブローカに移動して連結するように動作することができる。この場合、サービス連結が中断する時間を極めて短縮することができる。
【0105】
一方、本発明の一実施形態では、MRSネットワークにおいてフルメッシュ形態で連結したすべてのブローカの相互間で、ブローカ別に現在状態に対する情報を含むブローカ状態メッセージが交換される。
【0106】
本実施形態では、このようなブローカ状態メッセージは、他のブローカが正常状態であるか非正常状態であるかを判断することができる基準として各ブローカが利用する。本発明に係る通信ネットワークシステムから非正常的に終了する第1ブローカを、第2ブローカが感知する方法として、この第2ブローカは、ブローカ状態メッセージが正常的に受信されない第1ブローカを非正常的に終了するブローカとして感知することができる。
【0107】
また、第1ブローカの非正常的な終了を感知した第2ブローカは、第1ブローカと連結したコネクタのうちの少なくとも一部のコネクタとの連結を設定する。これにより、一部のコネクタと連結したサービスが、第2ブローカに登録されるように動作する。
【0108】
本発明の一実施形態の、第2ブローカが一部のコネクタとの連結を設定する処理では、第1ブローカと連結したコネクタ数を該第1ブローカを除いたMRSネットワーク上の各ブローカの総数で割った値によって一部のコネクタの数が決定される。例えば、非正常的に終了する第1ブローカを除いてMRSネットワーク上に2つのブローカが存在し、第1ブローカと連結したコネクタ数がN個であるとすると、第2ブローカは、「N/2」個のコネクタと連結することになる。
【0109】
本実施形態では、いずれかのブローカがシステム障害などによって非正常的に終了しても、1つのブローカと連結するコネクタ数が適切な数で維持され、ネットワーク全体において各ブローカと連結したコネクタ数が均衡を成すようになることで、各ブローカ間のロードバランスが自然に調節される。
【0110】
一方、第2ブローカは、このような連結設定によって自身のルーティング情報を更新し、更新されたルーティング情報をMRSネットワーク上の他のブローカに送信することで、すべてのブローカが自身のルーティングテーブルを最新で更新するようにできる(段階1404)。
【0111】
また、MRSネットワーク上のすべてのブローカと連結したコネクタに、第1ブローカの終了事実を知らせる終了情報が送信されることで、コネクタは自身のブローカリストを更新できるようになる(段階1405)。
【0112】
本発明では、このような過程を介して、ブローカの非正常的な終了時にも各コネクタと連結したサービスが他のブローカに動的に移動することで、ブローカ間のロードバランスが自動的に調節されるようにする。
【0113】
図15は、本発明の一実施形態において、ブローカの非正常的な終了をコネクタが感知する場合に遂行されるロード調節方法の過程を示したフローチャートである。
【0114】
コネクタは、フルメッシュ形態で相互連結した各ブローカのネットワークアドレスが記録されたブローカリストを維持する。ネットワークアドレスは、各ブローカのIPアドレスであってもよい。
【0115】
本発明に係る通信ネットワークシステムから第1ブローカが非正常的に終了すると(段階1501)、第1ブローカと連結したコネクタは、自身と連結した第1ブローカが非正常的に終了した事実を感知し(段階1502)、自身のブローカリストから第1ブローカのネットワークアドレスを削除してブローカリストを更新する(段階1503)。
【0116】
非正常的に終了した第1ブローカをブローカリストから削除したコネクタは、更新された自身のブローカリストの中から任意の第2ブローカを選択し(段階1504)、第2ブローカとの連結を設定し(段階1505)、自身と連結したすべてのサービスを登録するためのサービス登録メッセージをこの第2ブローカに送信することでサービス登録を行うことができる(段階1506)。
【0117】
一方、サービスが追加で登録された第2ブローカは、自身のルーティング情報を更新し、更新されたルーティング情報をMRSネットワーク上の他のブローカに送信することで、すべてのブローカが最新のルーティング情報を維持できるようにする(段階1507)。
【0118】
本発明では、このような過程を介して、ブローカの非正常的な終了時に、ブローカだけでなく非正常的に終了するブローカと連結したコネクタもこれを感知させ、コネクタと連結したサービスが他のブローカに動的に移動することで、ブローカ間のロードバランスが自動的に調節されるようにする。
【0119】
以下、本発明に係る通信ネットワークシステムのサブシステムであるコネクタの構造および各構成要素の機能について説明する。
【0120】
図16は、本発明に係るコネクタの構造を示したブロック図である。
【0121】
図16に示すように、コネクタ1600は、API1601と、メッセージキュー管理モジュール1602と、サービスプール管理モジュール1603と、サービス管理モジュール1604と、連結管理モジュール1605と、を含んで構成される。
【0122】
API1601とは、コネクタ1600が提供する機能をコネクタ1600と連結したサービスに露出するアプリケーションプログラミングインターフェース(Application Programming Interface)である。本発明に係るMRSネットワークを利用しようとするシステムは、データを送受信するためにAPI1601を用いる。
【0123】
図17は、コネクタとサービスのプロセスに対する関係とAPI1601を説明するための図である。
【0124】
図17に示すように、本発明の一実施形態では、コネクタとサービスは、同じプロセス内に含まれている。コネクタは、1つのプロセス内に1つだけ存在し、サービスは、1つのプロセス内に少なくとも1つ以上存在する。すなわち、プロセス別に1つのコネクタが存在し、コネクタは、自身が属するプロセス内に存在するすべてのサービスとMRSネットワークを構成するブローカとの連結を媒介(仲介)することができる。
【0125】
また、本実施形態では、コネクタとプロセスが、1:1で対応することで通信ネットワークシステムの統一性を図ることができる。また、互いに属するプロセスにて異なるサービスが、1つの同じコネクタを介して同じブローカに連結することで非効率的なルーティングを予防することができ、データ送受信上の混乱を避けることができる。
【0126】
一方、図17に示すように、1つのプロセス内に存在する1つ以上のサービスは、1つのコネクタ1600を介してMRSネットワークと連結する。ここで、サービスとコネクタ1600との連結およびデータ送受信は、API1601を介して成される。
【0127】
すなわち、MRSネットワークを用いてデータを送受信するために、サービスは、MRSネットワークと直接連結を設定してデータを送受信することはできず、コネクタ1600で提供するAPI1601を用いてデータを送受信するようになる。その結果、API1601は、サービスからサービス登録またはサービス解除の要請、ブローカ1610へのデータ送信の要請などを受信するようになる。
【0128】
コネクタ1600は、このようなAPI1601を提供するモジュールであって、MRSネットワークを用いる各プロセスに搭載され、該当のプロセスで生成されるすべてのサービスに対するMRSネットワークにメッセージを送受信する機能を担当する。
【0129】
メッセージキュー管理モジュール1602は、送受信される本発明に係るMRSネットワーク上で用いられるメッセージルーティングプロトコル(Message Routing Protocol:MRP)パッケージを管理する役割を行う。ここで、MRPパッケージとは、コネクタ1600とブローカ1610間で送受信されるデータの単位を意味する。
【0130】
図18は、このようなメッセージキュー管理モジュール1602の構造を示したブロック図である。
【0131】
図18に示すように、メッセージキュー管理モジュール1602は、送信キュー1801と、受信キュー1802と、を含む。
【0132】
ここで、送信キュー1801は、ブローカ1610に送信するMRPパッケージを管理し、受信キュー1802は、ブローカ1610から受信されたMRPパッケージを管理する役割を担当する。
【0133】
サービスプール管理モジュール1603は、サービスをブローカ1610に登録又は解除して、登録されたサービスを管理する役割をする。また、サービス管理モジュール1604は、登録されたサービスに対する情報を管理する役割をする。
【0134】
図19は、このようなサービス管理モジュール1604の構造を示したブロック図である。
【0135】
図19に示すように、サービス管理モジュール1604は、受信メッセージキュー1901と、受信バッファキュー1902と、完成状態キュー1903と、を含む。
【0136】
ここで、受信メッセージキュー1901は、ブローカ1610から受信されたメッセージを管理し、受信バッファキュー1902は、サービスが登録した受信バッファを管理し、完成状態キュー1903は、サービスが要請した入出力に対する完成した結果を管理する役割を担当する。
【0137】
連結管理モジュール1605は、MRPパッケージを送受信してブローカ1610とのソケット連結を管理する役割をする。
【0138】
図20は、このような連結管理モジュール1605の構造を示したブロック図である。
【0139】
図20に示すように、連結管理モジュール1605は、メッセージ送信モジュール2001と、連結制御モジュール2002と、を含む。
【0140】
ここで、メッセージ送信モジュール2001は、メッセージキュー管理モジュール1602から送信されるMRPパッケージをローディングしてブローカ1610に送信し、ブローカ1610から受信したMRPパッケージをメッセージキュー管理モジュール1602に伝達する役割を担当する。一方、連結制御モジュール2002は、コネクタ1600とブローカ1610間の制御メッセージを処理して両者の連結を制御する役割を担当する。
【0141】
以下、本発明に係る通信ネットワークシステムのさらに他のサブシステムとしてのブローカの構造および各構成要素の機能について説明する。
【0142】
図21は、ブローカの構造を示したブロック図である。
【0143】
図21に示すように、ブローカ2100は、リンク管理モジュール2101と、ルーティング情報管理モジュール2102と、メッセージ分類モジュール2103と、メッセージルータ2104と、メッセージデシリアライザ2105と、メッセージトランザクタ2106と、メッセージシリアライザ2107と、自動コンフィギュレータ2108と、を含んで構成される。
【0144】
リンク管理モジュール2101は、コネクタ又は他のブローカとの連結を維持及び管理し、コネクタ又は他のブローカとデータ送受信を遂行する役割をする。
【0145】
ルーティング情報管理モジュール2102は、ブローカ2100に登録されたサービスのルーティング情報を維持及び管理する役割をし、ブローカ2100と連結したコネクタ又は他のブローカとの連結情報を含む連結プールを維持することができる。
【0146】
メッセージ分類モジュール2103は、リンク管理モジュール2101が受信したデータの形態を把握し、所定の基準に従って受信したデータを単純メッセージと複雑メッセージに分類する役割をする。
【0147】
メッセージルータ2104は、メッセージ分類モジュール2103から単純メッセージを受信し、ルーティング情報管理モジュール2102から単純メッセージに関する宛先の位置情報を取得して、リンク管理モジュール2101に伝達する役割をする。
【0148】
メッセージデシリアライザ2105は、メッセージ分類モジュール2103から複雑メッセージを受信し、複雑メッセージを加工して客体化(object)する役割をする(複雑メッセージを変換して目的物とする役割をする)。
【0149】
メッセージトランザクタ2106は、メッセージデシリアライザ2105から客体(object)を受信し、客体(object)を用いてブローカ2100を制御する役割をする。
【0150】
メッセージシリアライザ2107は、メッセージトランザクタ2106から客体(object)を受信し、客体(object)を送信可能な線形データに加工してリンク管理モジュール2101に伝達する役割をする。
【0151】
自動コンフィギュレータ2108は、ブローカ2100が属したネットワークの状態を追跡してブローカ2100の状態を自動で調整する役割をする。
【0152】
図22は、リンク管理モジュール2101の構造を示したブロック図である。
【0153】
図22に示すように、リンク管理モジュール2101は、OSソケットサブシステム2201と、リンクアセプタ2202と、データ受信モジュール2203と、データ送信モジュール2204と、リンクエージェント2205と、を含む。
【0154】
OSソケットサブシステム2201は、ブローカ2100と連結したコネクタまたは他のブローカとデータを送受信するためのインターフェイスの役割を担当する。
【0155】
リンクアセプタ2202は、ブローカ2100と連結したコネクタまたは他のブローカからの連結要請を、OSソケットサブシステム2201を介して受信し、連結要請による連結情報をルーティング情報管理モジュール2102が維持する連結プールに記録する役割を担当する。
【0156】
データ受信モジュール2203は、ブローカ2100と連結したコネクタ又は他のブローカからデータをOSソケットサブシステム2201を介して受信し、これをメッセージ分類モジュール2103に伝達する役割を担当する。
【0157】
データ送信モジュール2204は、メッセージシリアライザ2107で加工されたデータを受信し、OSソケットサブシステム2201を介してブローカ2100と連結したコネクタ又は他のブローカに送信する役割を担当する。
【0158】
リンクエージェント2205は、データ送信モジュール2204の要請によってOSソケットサブシステム2201を介してブローカ2100と連結したコネクタ又は他のブローカとの連結を試み、連結が成功すれば、これによって生成された連結情報を用いてルーティング情報管理モジュール2102が維持する連結プールを更新する役割を担当する。
【0159】
一方、データ送信モジュール2204は、連結プールを照会して送信するデータの宛先に関するコネクタ又は他のブローカとの連結可否を確認し、連結設定がなされていない場合には、リンクエージェント2205にブローカ2100と連結したコネクタ又は他のブローカとの連結設定を要請した後に、データ送信を試みるように動作する。
【0160】
本発明に係るロード調節方法は、コンピュータにより具現される多様な動作を実行するためのプログラム命令を含むコンピュータ読み取り可能な媒体を含む。該媒体は、プログラム命令、データファイル、データ構造などを単独または組み合わせて含むこともできる。このような媒体及びプログラム命令は、本発明の目的のために特別に設計されて構成されたものでもよく、コンピュータソフトウェア分野の技術を有する当業者にとって公知であり使用可能なものであってもよい。コンピュータ読み取り可能な記録媒体の例としては、ハードディスク、フロッピー(登録商標)ディスク及び磁気テープのような磁気媒体、CD−ROM、DVDのような光記録媒体、フロプティカルディスクのような磁気−光媒体、およびROM、RAM、フラッシュメモリなどのようなプログラム命令を保存して実行するように特別に構成されたハードウェア装置が含まれる。また、上記媒体は、プログラム命令、データ構造などを保存する信号を送信する搬送波を含む光または金属線、導波管などの送信媒体でもある。プログラム命令の例としては、コンパイラによって生成されるもののような機械語コードだけでなく、インタプリタなどを用いてコンピュータによって実行される高級言語コードを含む。このようなハードウェア要素は、本発明の動作を実行するために一以上のソフトウェアモジュールとして作動するように構成することができ、その逆もできる。
【0161】
上述したように、本発明を好ましい実施形態に則して説明したが、本発明の技術分野において熟練した当業者にとっては、本発明の特許請求の範囲に記載された技術的思想及びその領域から逸脱しない範囲内で、本発明を多様に修正及び変更させることができる。すなわち、本発明の技術的範囲は、特許請求の範囲に基づいて定められ、発明を実施するための最良の形態により制限されるものではない。
【図面の簡単な説明】
【0162】
【図1】従来技術に係るゲームサーバ間のネットワーク連結を示した図である。
【図2】従来技術においてゲームサーバ数が増加し続けることによって生じるゲームサーバ間のネットワーク連結を示した図である。
【図3】本発明に係るバス型ネットワーク構造を概略的に示した図である。
【図4】本発明に係るバス型ネットワーク構造の通信ネットワークシステムの連結を概略的に示した図である。
【図5】本発明に係る通信ネットワークシステムにおけるブローカ、コネクタ及びサービスの連結を示した図である。
【図6】本発明に係るMRSネットワークを介して各種サーバと連結した一例を示した図である。
【図7】本発明に係る通信ネットワークシステム上で用いられるメッセージの構造を説明するための図である。
【図8】本発明に係るアドレス体系を説明するための図である。
【図9】本発明の一実施形態に係るサービスの登録過程を示したフローチャートである。
【図10】本発明の一実施形態に係るサービスの解除過程を示したフローチャートである。
【図11】本発明の一実施形態に係るメッセージの送受信過程を示したフローチャートである。
【図12】本発明の一実施形態において、ブローカがMRSネットワークに新たに追加される場合に進行される過程を示したフローチャートである。
【図13】本発明の一実施形態において、ブローカが正常的に終了する場合に進行されるロード調節方法の過程を示したフローチャートである。
【図14】本発明の一実施形態において、ブローカの非正常的な終了を他のブローカが感知する場合に進行されるロード調節方法の過程を示したフローチャートである。
【図15】本発明の一実施形態において、ブローカの非正常的な終了をコネクタが感知する場合に進行されるロード調節方法の過程を示したフローチャートである。
【図16】本発明に係るコネクタの構造を示したブロック図である。
【図17】本発明に係るコネクタで提供されるプログラミングインターフェースであるAPIを説明するための図である。
【図18】本発明に係るコネクタの一構成要素であるメッセージキュー管理モジュールの構造を示したブロック図である。
【図19】本発明に係るコネクタの一構成要素であるサービス管理モジュールの構造を示したブロック図である。
【図20】本発明に係るコネクタの一構成要素である連結管理モジュールの構造を示したブロック図である。
【図21】本発明に係るブローカの構造を示したブロック図である。
【図22】本発明に係るブローカの一構成要素であるリンク管理モジュールの構造を示したブロック図である。
【符号の説明】
【0163】
500 MRSネットワーク
501、1610 ブローカ
502、1600 コネクタ
503、サービス
【特許請求の範囲】
【請求項1】
バス型ネットワーク構造の通信ネットワークシステムにおけるサブシステム間のロードを調節する方法であって、
前記通信ネットワークシステムは、メッセージルーティングを処理するブローカと、コネクタと、前記コネクタを介して前記ブローカと連結する通信可能なターミナルノードである多数のサービスと、を含み、
前記通信ネットワークシステム上の、メッセージルーティングを処理するためにルーティング経路を設定したり、前記コネクタとの連結関係を設定したりするモジュールである各ブローカを、フルメッシュ形態で相互連結する段階と、
前記コネクタで前記各ブローカのネットワークアドレスが記録されたブローカリストを維持する段階と、
前記コネクタが前記サービスから前記サービス登録メッセージを受信し、前記ブローカリストのうちの1つのブローカを任意に選択して連結要請メッセージを送信する段階と、
前記選択されたブローカが前記連結要請メッセージを受信し、自身の現在ロードとロード限界を考慮して前記コネクタとの連結可否を判断する段階と、を含むことを特徴とするロード調節方法。
【請求項2】
前記連結可否を判断する前記段階は、
前記コネクタとの連結が設定される際、前記選択されたブローカと連結するコネクタの総数が前記ロード限界を超過する場合に、前記連結要請を拒否することを特徴とする請求項1に記載のロード調節方法。
【請求項3】
前記連結要請が拒否された場合に、前記コネクタが前記ブローカリストのうちの前記選択されたブローカを除いた他のブローカを任意に選択して前記連結要請メッセージを送信する段階をさらに含むことを特徴とする請求項2に記載のロード調節方法。
【請求項4】
バス型ネットワーク構造の通信ネットワークシステムにおけるサブシステム間のロードを調節する方法であって、
前記通信ネットワークシステムは、メッセージルーティングを処理するブローカと、コネクタと、前記コネクタを介して前記ブローカと連結する通信可能なターミナルノードである多数のサービスと、を含み、
前記通信ネットワークシステム上の、メッセージルーティングを処理するためにルーティング経路を設定したり、前記コネクタとの連結関係を設定したりするモジュールである各ブローカを、フルメッシュ形態で相互連結する段階と、
前記通信ネットワークシステムから正常的に終了する第1ブローカが、前記各ブローカのうちの1つである第2ブローカを選択する段階と、
前記第1ブローカと連結したコネクタに、前記第2ブローカとの連結を再設定することを要請する連結再設定メッセージを送信する段階と、
前記コネクタが前記連結再設定メッセージを受信し、前記第2ブローカとの連結を設定して前記コネクタと連結したサービスを登録するためのサービス登録メッセージを前記第2ブローカに送信する段階と、を含むことを特徴とするロード調節方法。
【請求項5】
前記第1ブローカが、前記各ブローカに終了予定情報を送信する段階と、
前記各ブローカが、前記終了予定情報を受信し、前記各ブローカと連結したコネクタに前記終了予定情報を送信する段階と、をさらに含むことを特徴とする請求項4に記載のロード調節方法。
【請求項6】
前記第2ブローカが、自身のルーティング情報を更新し、前記第1ブローカおよび前記各ブローカに前記更新したルーティング情報を送信する段階、をさらに含むことを特徴とする請求項4に記載のロード調節方法。
【請求項7】
前記第1ブローカが、前記更新されたルーティング情報を受信し、前記更新されたルーティング情報を用いて自身のルーティングテーブルを更新する段階と、
前記更新されたルーティングテーブルに、前記コネクタに関するルーティング情報が存在するかを判断する段階と、
前記判断の結果、前記コネクタに関するルーティング情報が存在しない場合に、前記コネクタとの連結を最終終了する段階と、をさらに含むことを特徴とする請求項6に記載のロード調節方法。
【請求項8】
前記連結再設定メッセージの送信から所定の時間が経過した後に、前記コネクタが前記第1ブローカとの連結を維持している場合に、前記第1ブローカが、前記コネクタとの連結を終了して自身を終了させる段階と、をさらに含むことを特徴とする請求項4に記載のロード調節方法。
【請求項9】
前記第1ブローカと前記各ブローカとの間で、ブローカ別に現在ロードとロード限界に対する情報を含むブローカ状態メッセージが交換され、
前記第2ブローカを選択する前記段階において、前記第1ブローカは、前記ブローカ状態メッセージに基づいて前記第2ブローカを選択することを特徴とする請求項4に記載のロード調節方法。
【請求項10】
バス型ネットワーク構造の通信ネットワークシステムにおけるサブシステム間のロードを調節する方法において、
前記通信ネットワークシステムは、メッセージルーティングを処理するブローカと、コネクタと、前記コネクタを介して前記ブローカと連結する通信可能なターミナルノードである多数のサービスと、を含み、
前記通信ネットワークシステム上の、メッセージルーティングを処理するためにルーティング経路を設定したり、前記コネクタとの連結関係を設定したりするモジュールである各ブローカを、フルメッシュ形態で相互連結する段階と、
前記各ブローカのうちの1つである第2ブローカが、前記通信ネットワークシステから非正常的に終了する第1ブローカを感知する段階と、
前記第2ブローカが、自身のロード限界を上向きに調整し、前記第1ブローカと連結したコネクタのうちの少なくとも一部のコネクタとの連結を設定する段階と、
前記第2ブローカが、前記連結設定によって自身のルーティング情報を更新し、前記各ブローカに前記更新したルーティング情報を送信する段階と、を含むことを特徴とするロード調節方法。
【請求項11】
前記一部のコネクタとの連結を設定する前記段階は、
前記第1ブローカと連結したコネクタ数を前記第1ブローカを除いた前記各ブローカの総数で割って得られた値に応じて、前記一部のコネクタ数を決定する段階、を含むことを特徴とする請求項10に記載のロード調節方法。
【請求項12】
前記各ブローカと連結したコネクタに前記第1ブローカの終了情報を送信する段階と、
前記コネクタが前記終了情報を受信して自身のブローカリストを更新する段階と、をさらに含むことを特徴とする請求項10に記載のロード調節方法。
【請求項13】
前記第1ブローカと前記各ブローカとの間で、ブローカ別に現在状態についての情報を含むブローカ状態メッセージが交換され、
前記各ブローカのうちの1つの第2ブローカが、前記通信ネットワークシステムから非正常的に終了する第1ブローカを感知する前記段階において、前記第2ブローカは、前記ブローカ状態メッセージが正常的に受信されない第1ブローカを感知することを特徴とする請求項10に記載のロード調節方法。
【請求項14】
バス型ネットワーク構造の通信ネットワークシステムにおけるサブシステム間のロードを調節する方法であって、
前記通信ネットワークシステムは、メッセージルーティングを処理するブローカと、コネクタと、前記コネクタを介して前記ブローカと連結する通信可能なターミナルノードである多数のサービスと、を含み、
前記通信ネットワークシステム上の、メッセージルーティングを処理するためにルーティング経路を設定したり、前記コネクタとの連結関係を設定したりするモジュールである各ブローカを、フルメッシュ形態で相互連結する段階と、
前記コネクタで前記各ブローカのネットワークアドレスが記録されたブローカリストを維持する段階と、
前記コネクタが、前記通信ネットワークシステムから非正常的に終了する第1ブローカを感知する段階と、
前記ブローカリストから前記第1ブローカのネットワークアドレスを削除して前記ブローカリストを更新する段階と、
前記更新されたブローカリストのうちの任意の第2ブローカを選択し、前記第2ブローカとの連結を設定して前記コネクタと連結したサービスを登録するためのサービス登録メッセージを前記第2ブローカに送信する段階と、を含むことを特徴とするロード調節方法。
【請求項15】
前記第2ブローカが、自身のルーティング情報を更新し、前記各ブローカに前記更新したルーティング情報を送信する段階と、をさらに含むことを特徴とする請求項14に記載のロード調節方法。
【請求項16】
各コネクタは、1つのブローカのみと連結し、
各サービスは、1つのコネクタを介して前記ブローカと連結し、
前記コネクタと前記サービスは、同じプロセス内に含まれることを特徴とする請求項1、4、10及び14のいずれか1つに記載のロード調節方法。
【請求項17】
前記コネクタは、1つのプロセス内に1つだけ存在し、前記サービスは、1つのプロセス内に少なくとも1つ以上存在することを特徴とする請求項16に記載のロード調節方法。
【請求項18】
請求項1から15のいずれか1つに記載のロード調節方法を実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
【請求項1】
バス型ネットワーク構造の通信ネットワークシステムにおけるサブシステム間のロードを調節する方法であって、
前記通信ネットワークシステムは、メッセージルーティングを処理するブローカと、コネクタと、前記コネクタを介して前記ブローカと連結する通信可能なターミナルノードである多数のサービスと、を含み、
前記通信ネットワークシステム上の、メッセージルーティングを処理するためにルーティング経路を設定したり、前記コネクタとの連結関係を設定したりするモジュールである各ブローカを、フルメッシュ形態で相互連結する段階と、
前記コネクタで前記各ブローカのネットワークアドレスが記録されたブローカリストを維持する段階と、
前記コネクタが前記サービスから前記サービス登録メッセージを受信し、前記ブローカリストのうちの1つのブローカを任意に選択して連結要請メッセージを送信する段階と、
前記選択されたブローカが前記連結要請メッセージを受信し、自身の現在ロードとロード限界を考慮して前記コネクタとの連結可否を判断する段階と、を含むことを特徴とするロード調節方法。
【請求項2】
前記連結可否を判断する前記段階は、
前記コネクタとの連結が設定される際、前記選択されたブローカと連結するコネクタの総数が前記ロード限界を超過する場合に、前記連結要請を拒否することを特徴とする請求項1に記載のロード調節方法。
【請求項3】
前記連結要請が拒否された場合に、前記コネクタが前記ブローカリストのうちの前記選択されたブローカを除いた他のブローカを任意に選択して前記連結要請メッセージを送信する段階をさらに含むことを特徴とする請求項2に記載のロード調節方法。
【請求項4】
バス型ネットワーク構造の通信ネットワークシステムにおけるサブシステム間のロードを調節する方法であって、
前記通信ネットワークシステムは、メッセージルーティングを処理するブローカと、コネクタと、前記コネクタを介して前記ブローカと連結する通信可能なターミナルノードである多数のサービスと、を含み、
前記通信ネットワークシステム上の、メッセージルーティングを処理するためにルーティング経路を設定したり、前記コネクタとの連結関係を設定したりするモジュールである各ブローカを、フルメッシュ形態で相互連結する段階と、
前記通信ネットワークシステムから正常的に終了する第1ブローカが、前記各ブローカのうちの1つである第2ブローカを選択する段階と、
前記第1ブローカと連結したコネクタに、前記第2ブローカとの連結を再設定することを要請する連結再設定メッセージを送信する段階と、
前記コネクタが前記連結再設定メッセージを受信し、前記第2ブローカとの連結を設定して前記コネクタと連結したサービスを登録するためのサービス登録メッセージを前記第2ブローカに送信する段階と、を含むことを特徴とするロード調節方法。
【請求項5】
前記第1ブローカが、前記各ブローカに終了予定情報を送信する段階と、
前記各ブローカが、前記終了予定情報を受信し、前記各ブローカと連結したコネクタに前記終了予定情報を送信する段階と、をさらに含むことを特徴とする請求項4に記載のロード調節方法。
【請求項6】
前記第2ブローカが、自身のルーティング情報を更新し、前記第1ブローカおよび前記各ブローカに前記更新したルーティング情報を送信する段階、をさらに含むことを特徴とする請求項4に記載のロード調節方法。
【請求項7】
前記第1ブローカが、前記更新されたルーティング情報を受信し、前記更新されたルーティング情報を用いて自身のルーティングテーブルを更新する段階と、
前記更新されたルーティングテーブルに、前記コネクタに関するルーティング情報が存在するかを判断する段階と、
前記判断の結果、前記コネクタに関するルーティング情報が存在しない場合に、前記コネクタとの連結を最終終了する段階と、をさらに含むことを特徴とする請求項6に記載のロード調節方法。
【請求項8】
前記連結再設定メッセージの送信から所定の時間が経過した後に、前記コネクタが前記第1ブローカとの連結を維持している場合に、前記第1ブローカが、前記コネクタとの連結を終了して自身を終了させる段階と、をさらに含むことを特徴とする請求項4に記載のロード調節方法。
【請求項9】
前記第1ブローカと前記各ブローカとの間で、ブローカ別に現在ロードとロード限界に対する情報を含むブローカ状態メッセージが交換され、
前記第2ブローカを選択する前記段階において、前記第1ブローカは、前記ブローカ状態メッセージに基づいて前記第2ブローカを選択することを特徴とする請求項4に記載のロード調節方法。
【請求項10】
バス型ネットワーク構造の通信ネットワークシステムにおけるサブシステム間のロードを調節する方法において、
前記通信ネットワークシステムは、メッセージルーティングを処理するブローカと、コネクタと、前記コネクタを介して前記ブローカと連結する通信可能なターミナルノードである多数のサービスと、を含み、
前記通信ネットワークシステム上の、メッセージルーティングを処理するためにルーティング経路を設定したり、前記コネクタとの連結関係を設定したりするモジュールである各ブローカを、フルメッシュ形態で相互連結する段階と、
前記各ブローカのうちの1つである第2ブローカが、前記通信ネットワークシステから非正常的に終了する第1ブローカを感知する段階と、
前記第2ブローカが、自身のロード限界を上向きに調整し、前記第1ブローカと連結したコネクタのうちの少なくとも一部のコネクタとの連結を設定する段階と、
前記第2ブローカが、前記連結設定によって自身のルーティング情報を更新し、前記各ブローカに前記更新したルーティング情報を送信する段階と、を含むことを特徴とするロード調節方法。
【請求項11】
前記一部のコネクタとの連結を設定する前記段階は、
前記第1ブローカと連結したコネクタ数を前記第1ブローカを除いた前記各ブローカの総数で割って得られた値に応じて、前記一部のコネクタ数を決定する段階、を含むことを特徴とする請求項10に記載のロード調節方法。
【請求項12】
前記各ブローカと連結したコネクタに前記第1ブローカの終了情報を送信する段階と、
前記コネクタが前記終了情報を受信して自身のブローカリストを更新する段階と、をさらに含むことを特徴とする請求項10に記載のロード調節方法。
【請求項13】
前記第1ブローカと前記各ブローカとの間で、ブローカ別に現在状態についての情報を含むブローカ状態メッセージが交換され、
前記各ブローカのうちの1つの第2ブローカが、前記通信ネットワークシステムから非正常的に終了する第1ブローカを感知する前記段階において、前記第2ブローカは、前記ブローカ状態メッセージが正常的に受信されない第1ブローカを感知することを特徴とする請求項10に記載のロード調節方法。
【請求項14】
バス型ネットワーク構造の通信ネットワークシステムにおけるサブシステム間のロードを調節する方法であって、
前記通信ネットワークシステムは、メッセージルーティングを処理するブローカと、コネクタと、前記コネクタを介して前記ブローカと連結する通信可能なターミナルノードである多数のサービスと、を含み、
前記通信ネットワークシステム上の、メッセージルーティングを処理するためにルーティング経路を設定したり、前記コネクタとの連結関係を設定したりするモジュールである各ブローカを、フルメッシュ形態で相互連結する段階と、
前記コネクタで前記各ブローカのネットワークアドレスが記録されたブローカリストを維持する段階と、
前記コネクタが、前記通信ネットワークシステムから非正常的に終了する第1ブローカを感知する段階と、
前記ブローカリストから前記第1ブローカのネットワークアドレスを削除して前記ブローカリストを更新する段階と、
前記更新されたブローカリストのうちの任意の第2ブローカを選択し、前記第2ブローカとの連結を設定して前記コネクタと連結したサービスを登録するためのサービス登録メッセージを前記第2ブローカに送信する段階と、を含むことを特徴とするロード調節方法。
【請求項15】
前記第2ブローカが、自身のルーティング情報を更新し、前記各ブローカに前記更新したルーティング情報を送信する段階と、をさらに含むことを特徴とする請求項14に記載のロード調節方法。
【請求項16】
各コネクタは、1つのブローカのみと連結し、
各サービスは、1つのコネクタを介して前記ブローカと連結し、
前記コネクタと前記サービスは、同じプロセス内に含まれることを特徴とする請求項1、4、10及び14のいずれか1つに記載のロード調節方法。
【請求項17】
前記コネクタは、1つのプロセス内に1つだけ存在し、前記サービスは、1つのプロセス内に少なくとも1つ以上存在することを特徴とする請求項16に記載のロード調節方法。
【請求項18】
請求項1から15のいずれか1つに記載のロード調節方法を実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図14】
【図15】
【図16】
【図17】
【図18】
【図19】
【図20】
【図21】
【図22】
【公表番号】特表2008−524911(P2008−524911A)
【公表日】平成20年7月10日(2008.7.10)
【国際特許分類】
【出願番号】特願2007−546570(P2007−546570)
【出願日】平成17年12月16日(2005.12.16)
【国際出願番号】PCT/KR2005/004349
【国際公開番号】WO2006/065101
【国際公開日】平成18年6月22日(2006.6.22)
【出願人】(505205812)エヌエイチエヌ コーポレーション (408)
【Fターム(参考)】
【公表日】平成20年7月10日(2008.7.10)
【国際特許分類】
【出願日】平成17年12月16日(2005.12.16)
【国際出願番号】PCT/KR2005/004349
【国際公開番号】WO2006/065101
【国際公開日】平成18年6月22日(2006.6.22)
【出願人】(505205812)エヌエイチエヌ コーポレーション (408)
【Fターム(参考)】
[ Back to top ]