説明

バス型ネットワーク構造の通信ネットワークシステム及びこれを用いたサービス間のデータ送受信方法

本発明は、バス型ネットワーク構造の通信ネットワークシステム及びこれを用いたデータ送受信方法に関し、バス型ネットワーク構造の通信ネットワークシステムが、メッセージルーティングを処理するブローカと、コネクタと、コネクタを介してブローカと連結する通信可能なターミナルノードである多数のサービスと、を含み、サービスは、通信可能なターミナルノードであって、各サービスを唯一に識別するネットワークアドレスが各サービスごとに割り当てられ、ブローカは、メッセージルーティングを処理するためにルーティング経路を設定したり、コネクタとの連結関係を設定したりするモジュールであって、各ブローカはフルメッシュ形態で相互連結する。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、バス型ネットワーク構造の通信ネットワークシステム及びこれを用いたデータ送受信方法に関する。
【背景技術】
【0002】
従来技術では、ゲームサービスを提供するすべてのゲームサーバが、メッシュ型構造で連結している。図1は、このような従来技術に係るゲームサーバ間のネットワーク連結を示した図である。
【0003】
図1に示すように、従来技術では、ゲームサーバの連結が追加するたびに、ネットワーク全体の観点における連結数は、幾何級数的に増加せざるを得ない。図2は、従来技術においてゲームサーバ数が増加し続けることによって生じるゲームサーバ間のネットワーク連結を示した図である。
【0004】
このように、ゲームサーバがメッシュ型構造で相互連結する従来技術によれば、ゲームサーバ数の増加によって連結構造が極めて複雑になり、その結果、ゲームユーザの増加によるゲームサーバの拡張が困難になるという問題点が生じていた。特に、ゲームサーバ間の連結を世界的に拡張する場合には、管理がより一層困難にならざるを得なかった。
【0005】
さらに、1つのサーバと連結する相手サーバ数が多いほど、全体の連結数は幾何級数的に増加するようになるが、従来技術において、1つのゲームサーバは、ログインサーバ、ランキングサーバ、データベースサーバと連結し、さらにこれに追加してチャンネルリストサーバ及び通知(公知)サーバとが1つのマルチキャストグループとして結ばれている。したがって、ネットワーク全体に存在する連結数は、実際のゲームサーバ間の連結数を大きく超過することになるため、管理が極めて困難な実情にある。
【0006】
また、オンラインゲームの場合、多数のサービスインスタンスが相互に連動して動作するため、サービスインスタンス間の通信が多くならざるを得ないが、従来技術には、このようなサービスインスタンスに対してネットワークアドレスを割り当てた構成を備えておらず(例がなく)、同じネットワークアドレスを有する1つのプロセスが、多くのサービスインスタンスを含んで多数のサービスインスタンス通信を処理しなければならないという負担があった。
【0007】
このため、すべてのゲームサーバがメッシュ形態で連結する従来技術に係るネットワーク構造から脱し、サーバ間の連結構造を単純化した新しい通信ネットワーク構造によって各サービスごとにネットワークアドレスを割り当てる新しいアドレス体系を導入する必要性、及びこのような新しい通信ネットワークアド構造において各サービス間のエニーキャストデータ及びマルチキャストデータの送受信を効率的に処理することができる方法の必要性が提起されてきた。
【発明の開示】
【発明が解決しようとする課題】
【0008】
本発明は、上記のような従来技術の問題点を解決するために案出されたものであって、バス型ネットワーク構造を介してサーバ間の連結構造を単純化し、サービスの拡張性及び性能拡張性を支援するとともに、維持及び管理が容易な通信ネットワークシステム及びこれを用いたデータ送受信方法を提供することを目的とする。
【0009】
また、本発明に係る通信ネットワークシステム及びこれを用いたデータ送受信方法は、すべてのゲームサーバがメッシュ形態で連結する従来技術に係るネットワーク構造から脱し、サーバ間の連結構造を単純化することで管理が容易で、かつ効率的なサービス拡張が可能な新しい通信ネットワーク構造を提示することを目的とする。
【0010】
また、本発明に係る通信ネットワークシステム及びこれを用いたデータ送受信方法は、新しいネットワークアドレス体系を導入して各サービスごとにネットワークアドレスを割り当てることで、インスタンス間の通信を効率的に処理することを目的とする。
【0011】
また、本発明に係る通信ネットワークシステム及びこれを用いたデータ送受信方法は、バス型ネットワーク構造を介してサーバ間の連結構造が単純化した新しい通信ネットワークシステムにおいて、各サービス間のエニーキャスト及びマルチキャストデータの送受信を効率的に処理することができる方法を提供することを目的とする。
【0012】
また、本発明は、バス型ネットワーク構造を介してサーバ間の連結構造が単純化した新しい通信ネットワークシステムにおいて、エニーキャストデータを受信したブローカが、エニーキャストグループに属するサービスのうち自身と直接連結したコネクタを介して登録されたサービスに、受信したエニーキャストデータを送信し、このようなサービスが存在しない場合には、フルメッシュ形態で連結した他のブローカを介して受信したエニーキャストデータを送信することで、ルーティング距離を飛躍的に短縮しながら、自然なロード分析を実現することを目的とする。
【課題を解決するための手段】
【0013】
このような目的を達成し、上述した従来技術の問題点を解決するために、本発明の一実施形態に係る通信ネットワークシステムは、メッセージルーティングを処理するブローカと、コネクタと、上記コネクタを介して上記ブローカと連結する多数のサービスと、を含み、上記サービスは、通信可能なターミナルノードであって、各サービスを唯一に識別するネットワークアドレスが各サービスごとに割り当てられ、上記コネクタは、上記サービスと上記ブローカ間の連結を媒介するモジュールであって、上記ブローカは、メッセージルーティングを処理するためにルーティング経路を設定したり、上記コネクタとの連結関係を設定したりするモジュールであって、各ブローカは、フルメッシュ形態で相互連結することを特徴とする。
【0014】
また、本発明の他の実施形態に係るバス型ネットワーク構造の通信ネットワークシステムは、メッセージルーティングを処理するブローカと、コネクタと、上記コネクタを介して上記ブローカと連結する多数のサービスと、を含み、上記サービスは通信可能なターミナルノードであって、各サービスを唯一に識別するネットワークアドレスが上記各サービスごとに割り当てられ、上記コネクタは、上記サービスと上記ブローカ間の連結を媒介するモジュールであって、第1サービスを上記ブローカに登録し、登録された第1サービスのうち少なくとも一部を該当するサービスが提供する機能によってエニーキャストグループ又はマルチキャストグループに加入させ、上記ブローカは、メッセージルーティングを処理するためにルーティング経路を設定したり、上記コネクタとの連結関係を設定したりするモジュールであって、各ブローカは、フルメッシュ形態で相互連結し、上記第1サービスとエニーキャストグループ又はマルチキャストグループに加入した第2サービス間のデータ送受信を遂行することを特徴とする。
【0015】
本発明のさらに他の実施形態に係るバス型ネットワーク構造の通信ネットワークシステムでデータを送受信する方法は、上記通信ネットワークシステムが、メッセージルーティングを処理するブローカと、コネクタと、上記コネクタを介して上記ブローカと連結する通信可能なターミナルノードである多数のサービスとを含み、上記通信ネットワークシステム上の各ブローカをフルメッシュ形態で相互連結する段階(上記ブローカは、メッセージルーティングを処理するためにルーティング経路を設定したり、コネクタとの連結関係を設定したりするモジュールである)と、上記コネクタをブローカと連結する段階と、上記コネクタを介して第1サービスを上記ブローカに登録し、登録された第1サービスのうち少なくとも一部を該当するサービスが提供する機能によってエニーキャストグループ又はマルチキャストグループに加入させる段階と、上記第1サービスと上記エニーキャストグループ又は上記マルチキャストグループに加入した第2サービス間のデータ送受信を遂行する段階と、を含むことを特徴とする。
【0016】
本発明のさらに他の実施形態に係るバス型ネットワーク構造の通信ネットワークシステムを用いたデータ送受信方法は、上記通信ネットワークシステムが、メッセージルーティングを処理するブローカと、コネクタと、上記コネクタを介して上記ブローカと連結する多数のサービスとを含み、上記通信ネットワークシステム上のすべてのブローカをフルメッシュ形態で相互連結する段階(上記ブローカは、メッセージルーティングを処理するためにルーティング経路を設定したり、上記コネクタとの連結関係を設定したりするモジュールである)と、上記コネクタを上記ブローカと連結する段階(上記コネクタは、上記サービスとブローカ間の連結を媒介するモジュールである)と、上記コネクタを介して上記サービスを上記ブローカに登録する段階(上記サービスは、通信可能なターミナルノードであって、各サービスを唯一に識別するネットワークアドレスが、上記各サービスごとに割り当てられる)と、上記ネットワークアドレスに基づいて、上記コネクタ及び上記ブローカを介して登録されたサービス間のデータ送受信を遂行する段階と、を含むことを特徴とする。
【発明の効果】
【0017】
本発明に係る通信ネットワークシステム及びこれを用いたデータ送受信方法によれば、バス型ネットワーク構造を介してサーバ間の連結構造を単純化し、サービスの拡張性及び性能拡張性を支援するとともに、維持及び管理が容易となる効果を得ることができる。
【0018】
また、本発明に係る通信ネットワークシステム及びこれを用いたデータ送受信方法によれば、すべてのゲームサーバがメッシュ形態で連結する従来技術に係るネットワーク構造から脱し、サーバ間の連結構造を単純化することで管理が容易で、かつ効率的なサービス拡張が可能な新しい通信ネットワーク構造が提示される。
【0019】
また、本発明に係る通信ネットワークシステム及びこれを用いたデータ送受信方法によれば、新しいネットワークアドレス体系を導入して各サービスごとにネットワークアドレスを割り当てることで、インスタンス間の通信が効率的に処理される効果を得ることができる。
【0020】
また、本発明によれば、バス型ネットワーク構造を介してサーバ間の連結構造が単純化した新しい通信ネットワークシステムにおいて、各サービス間のエニーキャストデータ及びマルチキャストデータの送受信を効率的に処理することができる方法が提示される。
【0021】
また、本発明によれば、バス型ネットワーク構造を介してサーバ間の連結構造が単純化した新しい通信ネットワークシステムにおいて、エニーキャストデータを受信したブローカがエニーキャストグループに属するサービスのうち自身と直接連結したコネクタを介して登録されたサービスに、受信したエニーキャストデータを送信し、このようなサービスが存在しない場合には、フルメッシュ形態で連結した他のブローカを介して受信したエニーキャストデータを送信することで、ルーティング距離を飛躍的に短縮しつつ、自然なロード分析を実現できる効果を得ることができる。
【発明を実施するための最良の形態】
【0022】
以下、添付の図面を参照して、本発明に係る通信システム及びこれを用いたデータ送受信方法について詳しく説明する。
【0023】
図3は、本発明に係るバス型ネットワーク構造を概略的に示した図である。
【0024】
図1に示すように、従来技術では、ゲームサーバを始めとしたすべてのゲーム関連サーバがメッシュ型構造で連結している。しかし、図3に示すように、本発明に係るバス型ネットワーク構造では、すべてのサーバがバス構造を介して連結しているため、連結構造の単純化が可能となる。
【0025】
図4は、本発明に係るバス型ネットワーク構造の通信ネットワークシステムの連結を概略的に示した図である。
【0026】
図1に示すような従来技術では、図2に示すように、ゲームサーバの連結が追加する度に、ネットワーク全体の観点における連結数が、幾何級数的に増加せざるを得なかった。しかし、図4に示すように、本発明に係るバス型ネットワーク構造では、各サーバが1つのブローカとの連結のみを維持すればよく、ネットワークが拡張しても中間連結はブローカを介して行われるため、サーバが追加で連結してもネットワーク全体の観点における連結数は大きく増加しない。したがって、図3及び図4のような本発明のバス型ネットワーク構造を用いた通信ネットワークシステムは、新しいサービス連係が容易であり、維持面及び管理面においても極めて有効である。
【0027】
図5は、本発明に係る通信ネットワークシステムでブローカ、コネクタ及びサービスの連結を示した図である。
【0028】
図5に示すように、本発明に係る通信ネットワークシステムは、メッセージルーティングを処理するブローカ501と、コネクタ502と、コネクタ502を介してブローカ501と連結する多数のサービス503と、を含んで構成される。
【0029】
サービス503は、通信可能なターミナルノードであって、各サービス503は、1つのコネクタ502を介してブローカ501と連結する。
【0030】
本発明に係る通信ネットワークシステムにおいては、各サービス503を唯一に識別するネットワークアドレスが、各サービス503毎に割り当てられる。このときのネットワークアドレスは、本発明に係る通信ネットワークシステム全体で各サービス503を唯一に識別することができるアドレス値である。
【0031】
コネクタ502とは、サービス503とブローカ501間の連結を媒介するモジュールである。各コネクタ502は、1つのブローカ501とだけ連結し、サービス503は、コネクタ502を介してブローカに登録される。
【0032】
そして、本発明の一実施形態では、コネクタ502とサービス503は、同じプロセス内に含まれる。コネクタ502は、1つのプロセス内に1つだけ存在し、サービス503は1つのプロセス内に少なくとも1つ以上が存在する。すなわち、プロセス別に1つのコネクタ502が存在し、コネクタ502は、自身が属するプロセス内に存在するすべてのサービス503とブローカ501間の連結を媒介することができる。
【0033】
また、本実施形態では、コネクタとプロセスが1:1で対応することで通信ネットワークシステムの統一性を図ることができ、互いに属するプロセスにおける異なるサービス503が1つの同じコネクタ502を介して同じブローカ501と連結することで非効率的なルーティングを予防することができ、データ送受信上の混乱を避けることができる。
【0034】
ブローカ501は、効率的なメッセージルーティングを処理するためにルーティング経路を設定したり、コネクタ502との連結関係を設定したりするモジュールである。また、各ブローカ501はフルメッシュ形態で相互連結する。
【0035】
このように、本明細書では、ブローカ501が、フルメッシュ形態で相互連結して形成されたネットワークをMRS(Message Routing Server)ネットワーク500と定義する。したがって、MRSネットワーク500とは、通信しようとする多様なシステム間でメッセージを効率的に送受信するためのネットワークサービスプラットホームを意味するものである。コネクタ502は、このようなMRSネットワーク500を用いてメッセージ送受信を行うために用いられるプログラミングインターフェースを提供するモジュールである。また、サービス503は、コネクタ502が提供するプログラミングインターフェースを介してMRSネットワーク500を用いる。
【0036】
一方、図5に示すように、本発明に係る通信ネットワークシステムにおいて、コネクタ502とブローカ501との連結は、1つに限られており、各サービス503が、ブローカ501と通信するときには、1つの連結を介して順次、通信するようになる。
【0037】
図6は、本発明に係るMRSネットワークを介して各種サーバと連結した一例を示した図である。
【0038】
図6に示すように、ゲームストリームサーバ、チャンネルリストサーバ、ゲームサーバ、通知(公知)サーバ、管理サーバ、データベースサーバを始めとした各種ゲーム関連サーバが、MRSネットワーク600を介して連結されている。各サーバは、フルメッシュ形態で相互連結した複数のブローカのいずれか1つのブローカと1つの連結だけを維持するようになる。
【0039】
従来技術では、すべてのゲーム関連サーバがメッシュ型構造で連結されるため、1つのサーバと連結するサーバ数が多いほど、全体の連結数は、幾何級数的に増加するようになる。この反面、本発明では、図6に示すように、各サーバは、1つのブローカとの連結だけを維持すればよく、ネットワークが拡張しても中間連結はブローカを介して行われるため、サーバが追加で連結されてもネットワーク全体の観点における連結数は大きく増加しないという長所がある。
【0040】
図7は、本発明に係る通信ネットワークシステム上で用いられるメッセージの構造を説明するための図である。図7を参照して、本発明に係る通信ネットワークシステムのサブシステムであるコネクタとブローカ間、及びブローカとブローカ間で送受信されるメッセージの構造を説明する。
【0041】
本明細書では、各メッセージのフィールドを定義するためのDATA型としてオクテット(octet)表記法に固守せずに、一般的にウィンドウズ(登録商標)で広く用いられているDATA型に基づいてメッセージの構造を説明する。この場合、ウィンドウズ(登録商標)DATA型とオクテット表記は「BYTE:octet(8)」、「WORD:octet(16)」、「DWORD:octet(32)」のようにマッピングされる。
【0042】
本発明に係る通信ネットワークシステム上で用いられるメッセージは、MRMSGHeaderとMRCMPHeaderとの2つに大別される。各メッセージは、共通的なフィールドであるMRHeaderと、各メッセージごとに特化した(固有の)フィールドとに区分される。
【0043】
MRHeaderは、本発明に係る通信ネットワークシステム上で相互交換されるすべてのメッセージが共通して有するべきメッセージヘッダー情報である。MRHeaderメッセージは単独で用いることができず、プロトコルタイプフィールドで記述した値と追加的なメッセージ情報をMRHeader後に追加して送受信しなければならない。
【0044】
【表1】

【0045】
MRMSGHeaderの構造で伝達されるメッセージは、MRSネットワークと連結した多数のサービス間にサービスが指定したペイロード値を伝達するための構造を有している。
【0046】
また、メッセージを送信する送信者のアドレスであるソースアドレスと、メッセージを受信する受信者のアドレスである宛先アドレスが記述され、MRSネットワークは宛先アドレスの形態と連結情報に基づいてルーティングを試みる。各フィールドについての詳しい説明は下記の表2に示す。
【0047】
【表2】

【0048】
MRCMPHeaderの構造で伝達されるメッセージは、本発明に係る通信ネットワークシステムのサブシステムであるコネクタとブローカ間、ブローカとブローカ間の信号を送受信するために定義されたメッセージである。各フィールドについての詳しい説明は下記の表3に示す。
【0049】
【表3】

【0050】
以下、本発明のアドレス体系について説明する。
【0051】
本発明では、MRSネットワークを用いてデータを送受信するためにソースアドレス及び宛先アドレスに対し、IPアドレスではなく本発明に係る新しいアドレス体系を用いる。MRSネットワークでは、特定したサービスを識別するために、ユニキャスト(unicast)、エニーキャスト(anycast)、マルチキャスト(multicast)という3種類のアドレス類型を支援する。該アドレスは、キャストタイプとアドレス類型別のアドレスで構成され、16バイトの長さを有する。
【0052】
オンラインゲームの場合、多数のサービスインスタンスが相互連動して動作するため、サービスインスタンス間の通信が増加せざるを得ないが、従来技術にはこのようなサービスインスタンスに対してネットワークアドレスを割り当てた例(構成)がなかったため、同じネットワークアドレスを有する1つのプロセスが多くのサービスインスタンスを含んで多数のサービスインスタンス通信を処理しなければならないという問題点があった。
【0053】
このため、本発明では、新しいアドレス体系を導入して個別のサービスインスタンス毎に独自のアドレスを割り当てることで、サービスインスタンス間の通信処理が効率的に成されるようにした。この場合、既存のようにゲームサーバで多数のゲームセンターそれぞれにメッセージを分配しなくてもよいため、管理費用が著しく減少するという効果が生じる。
【0054】
このため、本発明では、各サービスを唯一に識別するネットワークアドレスを各サービス毎に割り当て、ネットワークアドレスを本発明に係る通信ネットワークシステム全体で各サービスを唯一に識別することができるアドレス値として定義する。
【0055】
本発明では、このようなネットワークアドレスに基づいて、コネクタ及びブローカを介してMRSネットワークに登録されたサービス間のデータ送受信が遂行されるようにする。
【0056】
本発明では、ユニキャスト以外にも、エニーキャストとマルチキャストという3種類のアドレス類型を支援している。
【0057】
本発明に係る通信ネットワークシステムは、各サービス毎に割り当てられるネットワークアドレスであるユニキャストアドレスを用いて、サービスをコネクタを介してブローカに登録し、登録されたサービス(以下、第1サービスとする)の少なくとも一部を該当するサービスが提供する機能によってエニーキャストグループ又はマルチキャストグループに加入させ、第1サービスとエニーキャストグループ又はマルチキャストグループに加入したサービス(以下、第2サービスとする)間のデータ送受信を遂行することができる。すなわち、本発明では、メッセージを送信するソースのユニキャストアドレスからメッセージを受信する宛先のエニーキャストアドレスにデータを送信したり、受信することができる。
【0058】
このため、本発明に係る通信ネットワークシステムのコネクタは、第1サービスをブローカに登録し、登録された第1サービスの少なくとも一部を該当するサービスが提供する機能によってエニーキャストグループ又はマルチキャストグループに加入させる役割をすることができ、MRSネットワーク上のブローカは、第1サービスとエニーキャストグループ又はマルチキャストグループに加入した第2サービスとのデータ送受信を遂行する役割をすることができる。また、ブローカには、第1サービスのユニキャストアドレスとともに、第2サービスのエニーキャストアドレス又はマルチキャストアドレスが登録される。
【0059】
一例として、ゴーストップゲームサーバを提供する1つのサービスAが生成された場合、コネクタは、サービスAのユニキャストアドレスをブローカに登録した後、サービスAをゴーストップゲームサービス提供に関するマルチキャストグループに加入させることができる。この後、サービスBがゴーストップゲームサーバに対して、現在ゲームに参加しているユーザ数を質疑するパケットを送信すると、ブローカはこれを受信してサービスAを始めとしたマルチキャストグループに加入しているすべてのサービスのマルチキャストアドレスに送信することができ、サービスAは、この質疑に対する回答を、ブローカを介して受信することができるようになる。
【0060】
このように本発明では、各サービスが属性によってエニーキャスト又はマルチキャストグループにグルーピングされるが、このグルーピングは、各サービスごとに割り当てられたネットワークアドレスであるユニキャストアドレスを介して遂行される。したがって、グルーピングされるサービスは、相違した物理的サーバで動作するサービスである。
【0061】
図8は、本発明のアドレス体系を説明するための図である。
【0062】
図8において、キャストタイプはアドレスの類型を示し、CT_UNICAST、CT_MULTICASTおよびCT_ANYCASTのうち1つの値を有する。
【0063】
各サービス毎に割り当てられるネットワークアドレスであるユニキャストアドレスは、MRSネットワークを利用するすべてのサービスを唯一に区分することができるアドレスである。ユニキャストアドレスは、本発明に係る通信ネットワークシステムのネットワーク全体で特定のサービスが駆動(稼動)されているサーバを区分するサーバ名と、同じサーバ内で該当のサービスを唯一に区分するインスタンスIDと、を含んで構成される。
【0064】
サーバ名とは、MRSネットワークを利用するサービスが駆動(稼動)されているコンピュータハードウェアであるサーバに対する区分を示す11バイトの唯一な値を意味する。また、ネットワーク全体でサービスが駆動(稼動)されているサーバを区分する11バイトの唯一な値としてコンピュータ名を用いることができる。
【0065】
インスタンスIDとは、同じサーバ内でサービスを唯一に区分する識別子である。サービスのうち一部のサービスには、インスタンスIDに所定の予約値が割り当てられ、残りのサービスには、インスタンスIDにサーバで動的に生成される値が割り当てられる。
【0066】
例えば、1〜65535までの値は、固定されたユニキャストアドレスが必要なサービスのために予約されており、65536以後の値に対しては、サーバ内で唯一に動的に割り当てて用いることができるようにする。ここで、固定されたユニキャストアドレスが必要なサービスには、本発明に係る通信ネットワークシステムの開始時から終了時まで継続して動作するサービスなどが含まれる。
【0067】
このようなユニキャストアドレスは、下記の表4のように整理される。
【0068】
【表4】

【0069】
マルチキャストアドレスとエニーキャストアドレスは、単純に15バイト長さの値を用いるため、サービス間で自由に設定して用いることができる。該値は、全体ネットワーク上で唯一でなければならず、事前に公知(既知)されなければならない。
【0070】
マルチキャスト/エニーキャストアドレスは、下記の表5のように整理される。
【0071】
【表5】

【0072】
本発明に係るMRSネットワークを用いる場合として、(1)サービスが他のサービスで提供される機能を用いるためにMRSネットワークに接続する場合と、(2)サービスが他のサービスから要請された事項(Matter)を処理する機能を提供するためにMRSネットワークに接続する場合と、がある。
【0073】
サービスが他のサービスで提供される機能を用いるためにMRSネットワークに接続する上記(1)の場合についての一例として、ユーザログイン情報を確認するためにログインサーバに要請を送信して回答を得るというサービスがある。このように、他のサービスで提供される機能を用いるためのサービスは、MRSネットワークとサービスとを媒介するモジュールであるコネクタを介して次のように動作する。
【0074】
まず、プロセスを開始するときに、サービスとコネクタ間のデータ送受信のためにプログラミングインターフェースを初期化し、MRSネットワークにサービスのユニキャストアドレスを登録した後、他のサービスに要請メッセージを送信して回答メッセージを受信する。また、他のサービスで提供される機能をすべて利用した場合には、MRSネットワークからサービスのユニキャストアドレスを解除し、プロセスが終了する際に、プログラミングインターフェースを終了する。
【0075】
サービスが他のサービスから要請された事項を処理する機能を提供するためにMRSネットワークに接続する上記(2)の場合についての一例として、データベース照会(参照)機能を提供するサービスと、ユーザのログイン情報又は位置情報を提供するサービスと、がある。このような他のサービスに特定の機能を提供するためのサービスは、MRSネットワークとサービスを媒介するモジュールであるコネクタを介して次のように動作する。
【0076】
まず、プロセスが開始するときに、サービスとコネクタ間でデータを送受信するためにプログラミングインターフェースを初期化し、MRSネットワークにサービスのユニキャストアドレスを登録した後、該当するサービスが提供する機能によってエニーキャスト又はマルチキャストグループに加入し、他のサービスから要請メッセージを受信して回答メッセージを送信する。また、他のサービスに特定の機能をすべて提供した場合には、加入したエニーキャスト又はマルチキャストグループから脱退し、MRSネットワークからサービスのユニキャストアドレスを解除し、プロセスが終了する際に、プログラミングインターフェースを終了する。
【0077】
このように、本発明において、コネクタは、サービスのユニキャストアドレスをMRSネットワークに登録し、サービスを提供する機能によってエニーキャスト又はマルチキャストアドレスに加入させ、サービスが終了するときには、加入したエニーキャスト又はマルチキャストアドレスから脱退させることができる。
【0078】
以下、本発明に係るMRSネットワークが支援するデータの送受信方式について説明する。
【0079】
まず、ユニキャストデータの送受信方式について説明する。
【0080】
図9は、本発明の一実施形態に係るユニキャストデータの処理方法を説明するための図である。図9〜図12において、S1は、エニーキャスト乃至マルチキャストグループに加入していないサービスであり、S2、S4及びS6は、エニーキャストグループに加入したサービスであり、S3とS5は、マルチキャストグループに加入したサービスである。
【0081】
図9に示すように、本発明に係るMRSネットワークでは、ソースのユニキャストアドレスから宛先のユニキャストアドレスにデータを送信することができる。また、MRSネットワークに登録されたすべてのユニキャストアドレスは、遠隔地のユニキャストアドレスからデータを受信することができる。このように、ユニキャストデータを送信又は受信するために、ソースのユニキャストアドレスは、MRSネットワークに登録されており、MRSネットワークに登録された宛先のユニキャストアドレスが公知(既知)されている。
【0082】
図10は、本発明の一実施形態に係るマルチキャストデータの処理方法を説明するための図である。
【0083】
図10に示すように、本発明に係るMRSネットワークでは、ソースのユニキャストアドレスから宛先のマルチキャストアドレスにデータを送信することができる。
【0084】
このため、MRSネットワーク上のブローカは、ソースに該当するサービスのユニキャストアドレスから宛先をマルチキャストアドレスとして有するマルチキャストデータを受信し、マルチキャストデータをマルチキャストグループに加入しているすべてのサービスのマルチキャストアドレスに順に送信することができる。
【0085】
図10には、ユニキャストアドレスS1からマルチキャストアドレスのS3とS5にデータが送信される過程が示されている。このように、マルチキャストデータを送信するためにソースのユニキャストアドレスがMRSネットワークに登録されており、MRSネットワークが加入した宛先のマルチキャストアドレスが公知(既知、すなわち、通知)されている。
【0086】
一方、マルチキャストアドレスに送信されたデータを受信するためには、図10のS3とS5のように、まず、MRSネットワークに登録されたユニキャストアドレスを受信しようとするマルチキャストアドレスに加入させなければならない。加入過程が完了すれば、加入したマルチキャストアドレスに送信されたデータを受信することができるようになる。
【0087】
図11と図12は、本発明の一実施形態に係るエニーキャストデータの処理方法を説明するための図である。
【0088】
図11と図12に示すように、本発明に係るMRSネットワークでは、ソースのユニキャストアドレスから宛先のユニキャストアドレスにデータを送信することができる。
【0089】
このため、MRSネットワーク上のブローカは、ソースに該当するサービスのユニキャストアドレスから宛先をエニーキャストアドレスとして有するエニーキャストデータを受信し、エニーキャストデータをエニーキャストグループに加入している多数のサービスのいずれか1つを選択して、エニーキャストデータを送信することができる。
【0090】
このように、エニーキャストデータを送信するためにソースのユニキャストアドレスがMRSネットワークに登録されており、MRSネットワークに加入した宛先のエニーキャストアドレスが公知(通知等により既知と)されている。
【0091】
本発明の一実施形態では、ソースに該当するサービスのユニキャストアドレスから宛先をエニーキャストアドレスとして有するエニーキャストデータを受信したMRSネットワーク上のブローカは、エニーキャストデータを送信するためのルーティング距離が最小であるサービスを選択して、エニーキャストデータを送信することができる。
【0092】
本実施形態において、エニーキャストデータを受信したMRSネットワーク上のブローカは、エニーキャストグループに加入しているサービスのうち自身と直接連結しているサービスがある否かを判断し、ある場合には、該サービスにデータを送信するように動作する。また、直接連結しているサービスがない場合には、フルメッシュ形態で連結した他のブローカを介して無作為で(ランダムに)データを送信するサービスを選択することができる。
【0093】
すなわち、エニーキャストデータを受信したMRSネットワーク上のブローカは、自身と直接連結したコネクタを介して登録されたサービスが存在する場合には、そのうち1つを、エニーキャストデータを送信するサービスとして選択するが、存在しない場合には、エニーキャストグループに加入した多数のサービスのうち任意の1つを選択してエニーキャストデータを送信することができる。
【0094】
図11は、本実施形態において、S1からエニーキャストデータを受信したCS4ブローカがエニーキャストグループに加入しているS2、S4及びS6のうち自身と直接連結しているS2に、エニーキャストデータを送信する様子を示している。図11に示すように、ルーティング長さが飛躍的に短縮している。
【0095】
図11において、S2がエニーキャストグループに加入していないサービスである場合、本実施形態においてS1からエニーキャストデータを受信したCS4ブローカは、他のブローカCS6と連結したエニーキャストアドレスであるS6にデータを送信したり、他のブローカCS8と連結したエニーキャストアドレスであるS4にデータを送信するようになる。このような様子は図12に示されている。
【0096】
本実施形態によれば、このようにエニーキャストデータを処理することで、ルーティング距離を飛躍的に短縮して迅速なルーティングが可能であり、L4スイッチを用いなくても自然な負荷分散(load balancing)が実現される効果が生じる。
【0097】
一方、エニーキャストアドレスに送信されたデータを受信するためには、図11と図12に示すS2、S4及びS6のように、まず、MRSネットワークに登録されたユニキャストアドレスを受信しようとするエニーキャストアドレスに加入させなければならない。加入過程が完了すれば、加入したエニーキャストアドレスに送信されたデータを受信することができるようになる。
【0098】
以下、本発明に係る通信ネットワークシステムのサブシステムであるサービス、コネクタおよびブローカの動作過程を図13〜図19を参照して説明する。
【0099】
図13は、本発明の一実施形態に係るサービスの登録過程を示したフローチャートである。本発明に係る通信ネットワークシステムで特定のサービスを提供したり、サービスを利用しようとするシステムは、自身をコネクタを介してMRSネットワークに登録しなければならない。
【0100】
サービスは、コネクタにサービス登録メッセージを送信し(段階1301)、コネクタはサービス登録メッセージを分析して登録済みのサービスであるかを検査する(段階1302)。登録済みのサービスでない場合には、記サービス登録メッセージをブローカに伝達する(段階1303)。
【0101】
ブローカは、サービス登録メッセージを送信したサービスのルーティング情報を自身のルーティングテーブルに追加してルーティングテーブルを更新し(段階1304)、ルーティング情報を他のブローカに送信する(段階1305)。これを受信した他のブローカは、ルーティング情報を用いて自身のルーティングテーブルを更新する(段階1306)。
【0102】
このように、本発明において、ブローカは、自身のルーティングテーブルが更新された場合、更新された情報を、MRSネットワークを構成する他のブローカに送信することで、他のブローカが常に最新のルーティング情報を維持することができるように動作する。
【0103】
図14は、本発明の一実施形態に係るサービスの解除過程を示したフローチャートである。MRSネットワークに自身を登録したシステムは、自身をMRSネットワークから除去するためにコネクタを介してサービス解除過程を遂行する。サービス解除過程が遂行された後には、MRSネットワークを介したすべてのサービス要請は遮断される。
【0104】
サービスは、コネクタにサービス解除メッセージを送信し(段階1401)、コネクタはサービス解除メッセージを分析して最終解除であるかを検査する(段階1402)。この結果、最終解除であれば、サービス解除メッセージをブローカに伝達する(段階1403)。
【0105】
ブローカは、サービス解除メッセージを送信したサービスのルーティング情報を自身のルーティングテーブルから削除してルーティングテーブルを更新し(段階1404)、ルーティング情報の削除を他のブローカに通報する(段階1405)。これを受信した他のブローカは、ルーティング情報の削除を感知して自身のルーティングテーブルを更新する(段階1406)。
【0106】
図15は、本発明の一実施形態に係るメッセージの送受信過程を示したフローチャートであって、本発明において、サービスを用いるためにサービスにメッセージを送信したり、サービス要請のためにメッセージが伝達される過程を示したものである。
【0107】
特定のサービスを用いようとするサービスは、まず、連結メッセージをコネクタに伝達して仮想の連結を設定する(段階1501)。このとき、利用しようとするサービスのアドレスを規定する。
【0108】
メッセージを送信するときに、サービスは、コネクタのプログラミングインターフェースを用いてメッセージ送信を遂行する(段階1502)。コネクタは、サービスから伝達されたメッセージに、MRSネットワークで用いられるメッセージルーティングプロトコル(Message Routing Protocol:MRP)によるMRPHeaderを追加した後、自身と連結したブローカに該当のメッセージを送信する(段階1503)。ブローカは、コネクタから受信したメッセージの宛先を検索し(段階1504)、該当するブローカ又はコネクタにメッセージを送信する(段階1505)。
【0109】
メッセージを受信するときに、ブローカは、他のブローカからメッセージを受信し(段階1506)、受信したメッセージの宛先を検索し(段階1507)、該当するコネクタにメッセージを送信する(段階1508)。コネクタは、送信されたメッセージのMRPHeaderを除去してブローカから送信されたメッセージの宛先アドレスとインスタンスを検索し(段階1509)、該当するサービスにメッセージを送信して、該当するサービスがメッセージを受信するようになる(段階1110)。
【0110】
本発明に係る通信ネットワークシステムでは、このような過程を介して、コネクタを介してブローカに伝達されるメッセージが、他のブローカやコネクタに透過的に送受信されるようになる。また、特定のサービスが伝達したメッセージは、ルーティング経路を介して経路上に存在するブローカ間に透過的に送受信されるようになる。
【0111】
図16は、本発明の一実施形態において、ブローカが、MRSネットワークに新たに追加される場合に進行される過程を示したフローチャートである。
【0112】
新たに追加されるブローカは、まず、他のブローカとの連結を待機して連結待機状態を維持しながら(段階1601)、実行済みの他のブローカと連結する(段階1602)。新たに追加されるブローカと連結したブローカは、自身と連結した他のブローカが記録されたブローカリストに新たに追加されたブローカを追加して自身のブローカリストを更新する(段階1603)。これと同じ方式で、新たに追加されるブローカは実行済みのさらに他のブローカと連結し(段階1604)、これによって新たに連結したブローカのブローカリストも更新される(段階1605)。このように、MRSネットワーク上で実行されているすべてのブローカのブローカリストが更新される。
【0113】
そして、新たに追加されるブローカが実行済みのブローカとすべて連結した後、そのうち1つのブローカを任意に選択する(段階1606)。選択されたブローカにルーティングテーブルを要請し(段階1607)、これを受信し(段階1608)、自身のルーティングテーブルに反映した後(段階1609)、自身がコネクタと連結する準備が整ったことを他のブローカに通報する(段階1610)。
【0114】
準備事実の通報を受けたブローカは、自身と連結したコネクタのうち新たなブローカに移る再設定コネクタ数を計算し、その数に該当するコネクタを選択する(段階1611)。また、準備事実の通報を受けたブローカは、自身と連結したすべてのコネクタに新たなブローカが連結したことを通報する(段階1612)。該通報を受けたコネクタは、自身と連結したブローカが記録されたブローカリストに新たなブローカを追加する(段階1613)。
【0115】
一方、選択された再設定されるコネクタには、新たなブローカとの連結の再設定を要請するメッセージが伝達される(段階1614)。これが伝達されたコネクタは、新たなブローカと連結し、自身と連結したサービスに対するサービス登録メッセージを連結された新たなブローカに伝達する(段階1615)。
【0116】
段階1610〜1615は、MRSネットワーク上で実行されているすべてのブローカに対して遂行することができる。このような過程を介して、実行済みのブローカと連結していたコネクタおよびこれと連結したサービスの一定部分がMRSネットワークに新たに追加されたブローカに移るようになり、ブローカ間の効率的な負荷分散が成されるようになる。
【0117】
図17は、本発明の一実施形態において、ブローカが正常的に終了する場合に進行される過程を示したフローチャートである。
【0118】
正常的に終了する第1ブローカは、自身がこれ以上のコネクタと連結しないように設定し(段階1701)、自身が終了するという終了予定情報を他のブローカに送信する(段階1702)。第1ブローカと終了予定情報を受信した他のブローカは、自身と連結したコネクタに終了予定事実を通報する(段階1703)。
【0119】
終了するブローカは、自身と連結したコネクタに他のブローカに移るように要請するコネクタ再設定に関するメッセージを送信し(段階1704)、メッセージが送信されたコネクタは他のブローカと連結し、自身と連結したサービスに対するサービス情報メッセージを送信する(段階1705)。
【0120】
終了するブローカによって、コネクタと新たに連結したブローカは、自身のルーティング情報を更新し、終了するブローカ及び他のブローカに更新されたルーティング情報を送信する(段階1706)。
【0121】
終了するブローカは、送信されたルーティング情報を用いて自身のルーティングテーブルを更新し、更新された対象との連結がこれ以上自身のルーティングテーブルに存在しないかを検査し(段階1707)、これ以上存在しなければ連結を終了する。
【0122】
一方、正常的に終了する第1ブローカは、自身と連結したコネクタに他のブローカに移るように要請する連結再設定メッセージを送信した時点から所定の時間が経過したかを検査する(段階1709)。この所定の時間が経過した後においても自身と連結したコネクタが存在する場合は、すべてのコネクタとの連結を終了して自身も終了する(段階1710)。
【0123】
図18は、本発明の一実施形態において、ブローカの非正常的な終了を他のブローカが感知する場合に進行される過程を示したフローチャートである。
【0124】
非正常的に終了すると(段階1801)、他のブローカは、特定のブローカの非正常的な終了を感知し(段階1802)、それによって自身の最大キャパシティを再調整する(段階1803)。
【0125】
例えば、ブローカ1つと連結するコネクタの最大数「50」が本来のロード限界であれば、他のブローカが非正常的に終了することが感知された場合に、ブローカ1つと連結するコネクタの最大数を「60」に再調整し、非正常的に終了するブローカと連結したコネクタが迅速に残りのブローカに移動して連結されるように動作することができる。この場合、サービス連結が中断する時間を飛躍的に短縮することができる。
【0126】
他のブローカの非正常的な終了を感知したブローカは自身のルーティング情報を更新し、これを他のブローカにも通報してルーティングテーブルを更新するようにし(段階1804)、コネクタにブローカの終了事実を通報して、コネクタが自身のブローカリストを更新するようにする(段階1805)。
【0127】
図19は、本発明の一実施形態において、ブローカの非正常的な終了をコネクタが感知する場合に進行される過程を示したフローチャートである。
【0128】
ブローカが非正常的に終了すると(段階1901)、第1ブローカと連結したコネクタは、自身と連結した第1ブローカが非正常的に終了した事実を感知し(段階1902)、自身のブローカリストから非正常的に終了したブローカを削除する(段階1903)。
【0129】
非正常的に終了したブローカをブローカリストから削除したコネクタは、自身のブローカリスト上にあるブローカの1つを任意で選択し(段階1904)、第2ブローカと連結し(段階1905)、自身と連結したすべてのサービスを連結したブローカに登録する(段階1906)。
【0130】
一方、このようにサービスが追加で登録されたブローカは、自身の更新されたルーティング情報を他のブローカに送信し、他のブローカにサービス登録事実を通報する(段階1907)。
【0131】
以下、本発明に係る通信ネットワークシステムのサブシステムであるコネクタの構造および各構成要素の機能について説明する。
【0132】
図20は、本発明に係るコネクタの構造を示したブロック図である。
【0133】
図20に示すように、コネクタ2000は、API2001と、メッセージキュー管理モジュール2002と、サービスプール管理モジュール2003と、サービス管理モジュール2004と、連結管理モジュール2005と、を含んで構成される。
【0134】
API2001とは、コネクタ2000が提供する機能をコネクタ2000と連結したサービスに露出するアプリケーションプログラミングインターフェース(Application Programming Interface)である。本発明に係るMRSネットワークを利用しようとするシステムは、データを送受信するためにAPI2001を用いる。
【0135】
図21は、コネクタとサービスのプロセスに対する関係とAPI2001を説明するための図である。
【0136】
図21に示すように、本発明の一実施形態では、コネクタとサービスは、同じプロセス内に含まれている。コネクタは、1つのプロセス内に1つだけ存在し、サービスは1つのプロセス内に少なくとも1つ以上存在する。すなわち、プロセス別に1つのコネクタが存在し、コネクタは、自身が属するプロセス内に存在するすべてのサービスとMRSネットワークを構成するブローカ間の連結を媒介することができる。
【0137】
また、本実施形態では、コネクタとプロセスが1:1で対応することで通信ネットワークシステムの統一性を図っている。また、互いに属するプロセスにて異なるサービスが1つの同じコネクタを介して同じブローカに連結することで非効率的なルーティングを予防することができ、データ送受信上の混乱を避けることができる。
【0138】
一方、図21に示すように、1つのプロセス内に存在する1つ以上のサービスは、1つのコネクタ2000を介してMRSネットワークと連結する。ここで、サービスとコネクタ2000との連結及びデータ送受信は、API2001を介して遂行される。
【0139】
すなわち、MRSネットワークを用いてデータを送受信するために、サービスは、MRSネットワークと直接連結を設定してデータを送受信することはできず、コネクタ2000で提供するAPI2001を用いてデータを送受信するようになる。その結果、API2001は、サービスからサービスの登録又は解除の要請、ブローカ2010へのデータ送信の要請などを受信するようになる。
【0140】
コネクタ2000は、このようなAPI2001を提供するモジュールであって、MRSネットワークを用いる各プロセスに搭載され、該当のプロセスで生成されるすべてのサービスに対するMRSネットワークにメッセージを送受信する機能を担当する。
【0141】
メッセージキュー管理モジュール2002は、送受信される本発明に係るMRSネットワーク上で用いられるメッセージルーティングプロトコル(Message Routing Protocol:MRP)パッケージを管理する役割を行う。ここで、MRPパッケージとは、コネクタ2000とブローカ2010間で送受信されるデータの単位を意味する。
【0142】
図22は、このようなメッセージキュー管理モジュール2002の構造を示したブロック図である。
【0143】
図22に示すように、メッセージキュー管理モジュール2002は、送信キュー2201と、受信キュー2202と、を含む。
【0144】
ここで、送信キュー2201は、ブローカ2010に送信するMRPパッケージを管理し、受信キュー2202は、ブローカ2010から受信されたMRPパッケージを管理する役割を担当する。
【0145】
サービスプール管理モジュール2003は、サービスをブローカ2010に登録又は解除して、登録されたサービスを管理する役割をする。また、サービス管理モジュール2004は、登録されたサービスに対する情報を管理する役割をする。
【0146】
図23は、このようなサービス管理モジュール2004の構造を示したブロック図である。
【0147】
図23に示すように、サービス管理モジュール2004は、受信メッセージキュー2301と、受信バッファキュー2302と、完成状態キュー2303と、を含む。
【0148】
ここで、受信メッセージキュー2301は、ブローカ2010から受信されたメッセージを管理し、受信バッファキュー2302は、サービスが登録した受信バッファを管理し、完成状態キュー2303は、サービスが要請した入出力に対する完成した結果を管理する役割を担当する。
【0149】
連結管理モジュール2005は、MRPパッケージを送受信してブローカ2010とのソケット連結を管理する役割をする。
【0150】
図24は、このような連結管理モジュール2005の構造を示したブロック図である。
【0151】
図24に示すように、連結管理モジュール2005は、メッセージ送信モジュール2401と、連結制御モジュール2402と、を含む。
【0152】
ここで、メッセージ送信モジュール2401は、メッセージキュー管理モジュール2002から送信するMRPパッケージをローディングしてブローカ2010に送信し、ブローカ2010から受信されたMRPパッケージをメッセージキュー管理モジュール2002に伝達する役割を担当する。一方、連結制御モジュール2402は、コネクタ2000とブローカ2010間の制御メッセージを処理して両者の連結を制御する役割を担当する。
【0153】
以下、本発明に係る通信ネットワークシステムのさらに他のサブシステムであるブローカの構造及び各構成要素の機能について説明する。
【0154】
図25は、ブローカの構造を示したブロック図である。
【0155】
図25に示すように、ブローカ2500は、リンク管理モジュール2501と、ルーティング情報管理モジュール2502と、メッセージ分類モジュール2503と、メッセージルータ2504と、メッセージデシリアライザ2505と、メッセージトランザクタ2506と、メッセージシリアライザ2507と、自動コンフィギュレータ2508と、を含んで構成される。
【0156】
リンク管理モジュール2501は、コネクタまたは他のブローカとの連結を維持および管理し、前記コネクタまたは他のブローカとデータ送受信を遂行する役割をする。
【0157】
ルーティング情報管理モジュール2502は、ブローカ2500に登録されたサービスのルーティング情報を維持及び管理する役割をし、ブローカ2500と連結したコネクタまたは他のブローカとの連結情報を含む連結プールを維持することができる。
【0158】
メッセージ分類モジュール2503は、リンク管理モジュール2501が受信したデータの形態を把握し、所定の基準に従って受信したデータを単純メッセージと複雑メッセージに分類する役割をする。
【0159】
メッセージルータ2504は、メッセージ分類モジュール2503から単純メッセージを受信し、ルーティング情報管理モジュール2502から単純メッセージに関する宛先の位置情報を取得してリンク管理モジュール2501に伝達する役割をする。
【0160】
メッセージデシリアライザ2505は、メッセージ分類モジュール2503から複雑メッセージを受信し、複雑メッセージを加工して客体化する役割をする。
【0161】
メッセージトランザクタ2506は、メッセージデシリアライザ2505から客体を受信し、この客体を用いてブローカ2500を制御する役割をする。
【0162】
メッセージシリアライザ2507は、メッセージトランザクタ2506から客体を受信し、客体を送信可能な線形データに加工してリンク管理モジュール2501に伝達する役割をする。
【0163】
自動コンフィギュレータ2508は、ブローカ2500が属したネットワークの状態を追跡してブローカ2500の状態を自動で調整する役割をする。
【0164】
図26は、リンク管理モジュール2501の構造を示したブロック図である。
【0165】
図26に示すように、リンク管理モジュール2501は、OSソケットサブシステム2601と、リンクアセプタ2602と、データ受信モジュール2603と、データ送信モジュール2604と、リンクエージェント2605と、を含む。
【0166】
OSソケットサブシステム2601は、ブローカ2500と連結したコネクタまたは他のブローカとデータを送受信するためのインターフェイスの役割を担当する。
【0167】
リンクアセプタ2602は、ブローカ2500と連結したコネクタ又は他のブローカからの連結要請を、OSソケットサブシステム2601を介して受信し、連結要請による連結情報をルーティング情報管理モジュール2502が維持する連結プールに記録する役割を担当する。
【0168】
データ受信モジュール2603は、ブローカ2500と連結したコネクタ又は他のブローカからデータを、OSソケットサブシステム2601を介して受信し、これをメッセージ分類モジュール2503に伝達する役割を担当する。
【0169】
データ送信モジュール2604は、メッセージシリアライザ2507で加工されたデータを受信し、OSソケットサブシステム2601を介してブローカ2500と連結したコネクタまたは他のブローカに送信する役割を担当する。
【0170】
リンクエージェント2605は、データ送信モジュール2604の要請によってOSソケットサブシステム2601を介してブローカ2500と連結したコネクタ又は他のブローカとの連結を試み、連結が成功した場合に、これによって生成された連結情報を用いてルーティング情報管理モジュール2502が維持する連結プールを更新する役割を担当する。
【0171】
一方、データ送信モジュール2604は、連結プールを照会(参照)して送信するデータの宛先に関するコネクタ又は他のブローカとの連結可否を確認し、連結設定がなされていない場合には、リンクエージェント2605にブローカ2500と連結したコネクタ又は他のブローカとの連結設定を要請した後、データ送信を試みるように動作する。
【0172】
本発明に係るロード調節方法は、コンピュータにより具現される多様な動作を実行するためのプログラム命令を含むコンピュータ読み取り可能な媒体を含む。媒体は、プログラム命令、データファイル、データ構造などを単独または組み合わせて含むこともできる。媒体及びプログラム命令は、本発明の目的のために特別に設計されて構成されたものでもよく、コンピュータソフトウェア分野の技術を有する当業者にとって公知であり使用可能なものであってもよい。コンピュータ読み取り可能な記録媒体の例としては、ハードディスク、フロッピー(登録商標)ディスク及び磁気テープのような磁気媒体、CD−ROM、DVDのような光記録媒体、フロプティカルディスクのような磁気−光媒体、およびROM、RAM、フラッシュメモリなどのようなプログラム命令を保存して実行するように特別に構成されたハードウェア装置が含まれる。媒体は、プログラム命令、データ構造などを保存する信号を送信する搬送波を含む光または金属線、導波管などの送信媒体でもある。プログラム命令の例としては、コンパイラによって生成されるもののような機械語コードだけでなく、インタプリタなどを用いてコンピュータによって実行される高級言語コードを含む。このようなハードウェア要素は、本発明の動作を実行するために一以上のソフトウェアモジュールとして作動するように構成することができ、その逆もできる。
【0173】
上述したように、本発明を好ましい実施形態に則して説明したが、本発明の技術分野において熟練した当業者にとっては、特許請求の範囲に記載された本発明の技術的思想及びその領域から逸脱しない範囲内で、本発明を多様に修正及び変更させることができることを理解することができるであろう。すなわち、本発明の技術的範囲は、特許請求の範囲に基づいて定められ、発明を実施するための最良の形態により制限されるものではない。
【図面の簡単な説明】
【0174】
【図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】本発明に係るブローカの一構成要素であるリンク管理モジュールの構造を示したブロック図である。
【符号の説明】
【0175】
500 MRSネットワーク
501、2010 ブローカ
502、2000 コネクタ
503、サービス

【特許請求の範囲】
【請求項1】
バス型ネットワーク構造の通信ネットワークシステムであって
メッセージルーティングを処理するブローカと、
コネクタと、
前記コネクタを介して前記ブローカと連結する多数のサービスと、を含み、
前記サービスは、通信可能なターミナルノードであって、各サービスを唯一に識別するネットワークアドレスが前記各サービスに割り当てられ、
前記コネクタは、前記サービスと前記ブローカ間の連結を媒介するモジュールであり、
前記ブローカは、メッセージルーティングを処理するためにルーティング経路を設定したり、前記コネクタとの連結関係を設定したりするモジュールであって、各ブローカは、フルメッシュ形態で相互連結することを特徴とする通信ネットワークシステム。
【請求項2】
前記ネットワークアドレスは、前記通信ネットワークシステム全体で前記各サービスを唯一に識別するアドレス値であることを特徴とする請求項1に記載の通信ネットワークシステム。
【請求項3】
前記ネットワークアドレスは、
前記通信ネットワークシステム全体で特定のサービスが稼動されているサーバを区分するサーバ名と、
前記サーバ内で該当するサービスを唯一に区分するインスタンスIDと、を含んで構成されることを特徴とする請求項2に記載の通信ネットワークシステム。
【請求項4】
前記サービスのうち一部のサービスには、前記インスタンスIDに所定の予約値が割り当てられ、残りのサービスには、前記インスタンスIDに前記サーバで動的に生成される値が割り当てられることを特徴とする請求項3に記載の通信ネットワークシステム。
【請求項5】
前記インスタンスIDに前記予約値が割り当てられる前記一部のサービスは、前記通信ネットワークシステムの開始時から終了時まで継続して動作するサービスであることを特徴とする請求項4に記載の通信ネットワークシステム。
【請求項6】
前記サービスは、エニーキャスト又はマルチキャストグループでグルーピングされることを特徴とする請求項1に記載の通信ネットワークシステム。
【請求項7】
前記グルーピングは、前記ネットワークアドレスを使用して遂行されることを特徴とする請求項6に記載の通信ネットワークシステム。
【請求項8】
前記グルーピングされるサービスは、互いに異なる物理的サーバで動作することを特徴とする請求項7に記載の通信ネットワークシステム。
【請求項9】
各コネクタは、1つのブローカとだけ連結し、
各サービスは、1つのコネクタを介して前記ブローカと連結し、
前記コネクタと前記サービスは、同じプロセス内に含まれることを特徴とする請求項1に記載の通信ネットワークシステム。
【請求項10】
前記コネクタは、1つのプロセス内に1つだけ存在し、前記サービスは、1つのプロセス内に少なくとも1つ以上が存在することを特徴とする請求項9に記載の通信ネットワークシステム。
【請求項11】
バス型ネットワーク構造の通信ネットワークシステムであって、
メッセージルーティングを処理するブローカと、
コネクタと、
前記コネクタを介して前記ブローカと連結する多数のサービスと、を含み、
前記サービスは、通信可能なターミナルノードであって、各サービスを唯一に識別するネットワークアドレスが前記各サービスに割り当てられ、
前記コネクタは、前記サービスと前記ブローカ間の連結を媒介するモジュールであって、第1サービスを前記ブローカに登録し、前記登録された第1サービスの少なくとも一部を該当するサービスが提供する機能によってエニーキャストグループ又はマルチキャストグループに加入させ、
前記ブローカは、メッセージルーティングを処理するためにルーティング経路を設定したり、前記コネクタとの連結関係を設定したりするモジュールであって、各ブローカはフルメッシュ形態で相互連結し、前記第1サービスと前記エニーキャストグループ又は前記マルチキャストグループに加入した第2サービスとの間のデータ送受信を遂行することを特徴とする通信ネットワークシステム。
【請求項12】
バス型ネットワーク構造の通信ネットワークシステムにおいてデータを送受信する方法であって、
前記通信ネットワークシステムは、メッセージルーティングを処理するブローカと、コネクタと、前記コネクタを介して前記ブローカと連結する通信可能なターミナルノードである多数のサービスと、を含み、
前記通信ネットワークシステム上の、メッセージルーティングを処理するためにルーティウング経路を設定したり、前記コネクタとの連結関係を設定したりするモジュールである各ブローカを、フルメッシュ形態で相互連結する段階と、
前記コネクタを前記ブローカと連結する段階と、
前記コネクタを介して第1サービスを前記ブローカに登録し、前記登録された第1サービスの少なくとも一部を該当するサービスが提供する機能によってエニーキャストグループ又はマルチキャストグループに加入させる段階と、
前記第1サービスと前記エニーキャストグループ又はマルチキャストグループに加入した第2サービスとの間のデータ送受信を遂行する段階と、を含むことを特徴とするデータ送受信方法。
【請求項13】
前記ブローカに、前記第1サービスのユニキャストアドレスと、前記第2サービスのエニーキャストアドレス又はマルチキャストアドレスと、が登録されることを特徴とする請求項12に記載のデータ送受信方法。
【請求項14】
前記第2サービスは、前記エニーキャストグループに加入したサービスであり、
前記第1サービスと前記第2サービス間のデータ送受信を遂行する前記段階は、
前記ブローカが、前記第1サービスから宛先をエニーキャストアドレスとして有するエニーキャストデータを受信する段階と、
前記ブローカが前記エニーキャストグループに加入した多数のサービスのうち1つを前記第2サービスとして選択して前記エニーキャストデータを送信する段階と、を含むことを特徴とする請求項13に記載のデータ送受信方法。
【請求項15】
前記エニーキャストグループに加入した多数のサービスのうち1つを前記第2サービスとして選択する前記段階は、
前記エニーキャストデータを送信するためのルーティング距離が最小であるサービスを前記第2サービスとして選択することを特徴とする請求項14に記載のデータ送受信方法。
【請求項16】
前記エニーキャストグループに加入した多数のサービスのうち1つを前記第2サービスとして選択する前記段階は、
前記エニーキャストデータを受信したブローカと直接連結したコネクタを介し、登録されたサービスが存在する場合は、そのうち1つを前記第2サービスとして選択し、
存在しない場合は、前記多数のサービスのうち任意の1つを前記第2サービスとして選択することを特徴とする請求項15に記載のデータ送受信方法。
【請求項17】
前記第2サービスは、前記マルチキャストグループに加入したサービスであり、
前記第1サービスと前記第2サービス間のデータ送受信を遂行する前記段階は、
前記ブローカが、前記第1サービスから宛先をマルチキャストアドレスとして有するマルチキャストデータを受信する段階と、
前記ブローカが、前記第2サービスすべてに前記マルチキャストデータを順次に送信する段階と、を含むことを特徴とする請求項13に記載のデータ送受信方法。
【請求項18】
各コネクタは、1つのブローカとだけ連結し、
各サービスは、1つのコネクタを介して前記ブローカと連結し、
前記コネクタと前記サービスは、同じプロセス内に含まれることを特徴とする請求項12に記載のデータ送受信方法。
【請求項19】
前記コネクタは、1つのプロセス内に1つだけ存在し、前記サービスは、1つのプロセス内に少なくとも1つ以上が存在することを特徴とする請求項18に記載のデータ送受信方法。
【請求項20】
前記ユニキャストアドレスは、前記通信ネットワークシステム全体で該当するサービスを唯一に選別するネットワークアドレス値であることを特徴とする請求項13に記載のデータ送受信方法。
【請求項21】
バス型ネットワーク構造の通信ネットワークシステムを用いたデータ送受信方法であって、
前記通信ネットワークシステムは、メッセージルーティングを処理するブローカと、コネクタと、前記コネクタを介して前記ブローカと連結する多数のサービスと、を含み、
前記通信ネットワークシステム上の、メッセージルーティングを処理するためにルーティング経路を設定したり、前記コネクタとの連結関係を設定したりするモジュールであるすべてのブローカを、フルメッシュ形態で相互連結する段階と、
前記サービスと前記ブローカ間の連結を媒介するモジュールである前記コネクタを前記ブローカと連結する段階と、
通信可能なターミナルノードであって、各サービスを唯一に識別するネットワークアドレスが前記各サービスに割り当てられる前記サービスを、前記コネクタを介して前記ブローカに登録する段階と、
前記ネットワークアドレスに基づいて、前記コネクタ及び前記ブローカを介して前記登録されたサービス間のデータ送受信を遂行する段階と、を含むことを特徴とするデータ送受信方法。
【請求項22】
請求項12〜21のいずれか1つに記載のデータ送受信方法を実行させるためのプログラムを記録したコンピュータ読み取り可能な記録媒体。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate

【図11】
image rotate

【図12】
image rotate

【図13】
image rotate

【図14】
image rotate

【図15】
image rotate

【図16】
image rotate

【図17】
image rotate

【図18】
image rotate

【図19】
image rotate

【図20】
image rotate

【図21】
image rotate

【図22】
image rotate

【図23】
image rotate

【図24】
image rotate

【図25】
image rotate

【図26】
image rotate


【公表番号】特表2008−524912(P2008−524912A)
【公表日】平成20年7月10日(2008.7.10)
【国際特許分類】
【出願番号】特願2007−546571(P2007−546571)
【出願日】平成17年12月16日(2005.12.16)
【国際出願番号】PCT/KR2005/004350
【国際公開番号】WO2006/065102
【国際公開日】平成18年6月22日(2006.6.22)
【出願人】(505205812)エヌエイチエヌ コーポレーション (408)
【Fターム(参考)】