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