(58)【調査した分野】(Int.Cl.,DB名)
前記負荷情報と予め定められた閾値とに基づき、新たな中継装置の増設又は設置されている中継装置の減設を行う増減設手段を有する請求項1乃至3のいずれか一項に記載の負荷分散装置。
【発明を実施するための形態】
【0012】
[第一の実施の形態]
以下、図面を参照して実施の形態について説明する。各図面において、同一構成部分には同一符号を付し、重複した説明を省略する場合がある。
【0013】
なお、以下の説明においてはWebRTC(Web Real-Time Communication)技術によるP2P通信を例として説明するが、第一の実施の形態に係る通信システムは、WebRTC以外の技術を用いたP2P通信にも適用することができる。また、第一の実施の形態に係る通信システムは、P2P通信以外の通信にも適用することができる。
【0014】
<概要>
図1は、第一の実施の形態に係る通信システムの構成の一例を示す図である。第一の実施の形態に係る通信システムは、サービス提供装置10と、負荷分散装置(20a、20b、20c)と、中継装置(30a
1、30a
2、30b
1、30b
2、30c
1、30c
2)と、端末(40a、40b、40c)と、NAT(60a、60b、60c)とを有する。
【0015】
以下の説明において、負荷分散装置(20a、20b、20c)のうち任意の負荷分散装置は「負荷分散装置20」と表す。中継装置(30a
1、30a
2、30b
1、30b
2、30c
1、30c
2)のうち任意の中継装置は「中継装置30」と表す。端末(40a、40b、40c)のうち任意の端末は「端末40」と表す。NAT(60a、60b、60c)のうち任意のNATは「NAT60」と表す。
【0016】
負荷分散装置(20a、20b、20c)と、中継装置(30a
1、30a
2、30b
1、30b
2、30c
1、30c
2)と、NAT(60a、60b、60c)とは、それぞれ外部ネットワーク50に接続されている。また、端末40a及びNAT60aは内部ネットワーク70aに接続されており、端末40b及びNAT60bは内部ネットワーク70bに接続されており、端末40c及びNAT60cは内部ネットワーク70cに接続されている。また、負荷分散装置(20a、20b、20c)は、専用のネットワークにより互いに通信できるように接続されている。
【0017】
負荷分散装置20aと中継装置(30a
1、30a
2)とは、同一の拠点Aに設置されている。同様に、負荷分散装置20bと中継装置(30b
1、30b
2)とは、同一の拠点Bに設置されており、負荷分散装置20cと中継装置(30c
1、30c
2)とは、同一の拠点Cに設置されている。なお、第一の実施の形態に係る通信システムは3つの拠点から構成されているが、例えば、1又は2つの拠点から構成されていてもよいし、4つ以上の拠点から構成されていてもよい。
【0018】
端末40aとNAT60aとは、同一のエリアAに存在している。同様に、端末40bとNAT60bとは、同一のエリアBに存在しており、端末40cとNAT60cとは、同一のエリアCに存在している。ここで、エリアA〜Cとは、世界全体のうちいずれかの地域を示している。また、エリアA〜Cにより、世界全体をカバーしているものとする。例えば、エリアAはアジア及びオセアニアであり、エリアBはヨーロッパ及びアフリカであり、エリアCは北米及び南米であるというように区分するようにしてもよい。また、例えば、エリアAは日本、韓国、中国・・・、エリアBはイギリス、ドイツ、フランス・・・、エリアCはアメリカ、カナダ、ブラジル・・・というように、国別に区分するようにしてもよい。
【0019】
なお、
図1は3つのエリアに区分されるように図示しているが、例えば、2つのエリアに区分されるようにしてもよいし、4つ以上のエリアに区分されるようにしてもよい。また、
図1には各エリアの内部ネットワーク70に1台ずつ端末40が接続されているが、例えば、複数の端末40が接続されるようにしてもよい。
【0020】
内部ネットワーク70a、内部ネットワーク70b及び内部ネットワーク70cは物理的に切り離されており、端末40a、端末40b及び端末40cは互いに直接通信することが出来ない前提とする。従って、端末40aは、外部ネットワーク50に接続されている装置と通信する場合、NAT60aを介して通信を行う。同様に、端末40bは、外部ネットワーク50に接続されている装置と通信する場合、NAT60bを介して通信を行い、端末40cは、外部ネットワーク50に接続されている装置と通信する場合、NAT60cを介して通信を行う。
【0021】
サービス提供装置10は、WebRTC技術によるP2P通信を用いたサービスを端末40に対して提供する装置である。サービス提供装置10は、例えばWebサーバである。サービス提供装置10は、端末40からのアクセスに対して、所定のサービスを実現するクライアントモジュール(例えば、JavaScript(登録商標)含むHTMLファイル)を端末40に送信する。端末40は、受信したクライアントモジュールを実行して他の端末40と通信を行うことで、P2P通信を用いたサービスを受けることができる。P2P通信を用いたサービスの具体例として、例えば、2つの端末40の間で行われるビデオチャット、音声チャット、テキストチャットなどが挙げられる。
【0022】
また、サービス提供装置10が端末40に送信するクライアントモジュールには、相手の端末40との間の通信を中継するために用いられる中継装置30を、負荷分散装置20に問い合わせるコードが含まれている。これにより、当該クライアントモジュールを実行する端末40は、プライベートネットワークに接続されている場合であっても、必要に応じて中継装置30を介して相手の端末40と通信を行うことが可能になる。
【0023】
負荷分散装置20は、端末40からの問い合わせに対して、当該端末40とP2P通信を行う相手の端末40との間の通信を中継するのに最適な中継装置30を選択する装置である。負荷分散装置20は、負荷分散装置20自身と同一の拠点に設置されている中継装置30の中から、負荷の小さい中継装置30を選択する。なお、負荷の小さい中継装置30を選択することは例である。負荷の小さい中継装置30に限らずに、負荷情報に基づいて一の中継装置30を選択することとしてよい。
【0024】
また、負荷分散装置(20a、20b、20c)は、端末40間で行われる通信とその通信を中継する中継装置30とを対応させる情報を互いに共有(同期)する機能を有している。
【0025】
また、負荷分散装置20は、中継装置30の負荷が大きい場合に中継装置30の負荷を分散させるようにするため、同一拠点内に新たな中継装置30の増設を行う機能を有している。さらに、負荷分散装置20は、複数の中継装置30の各々の負荷が小さい場合に、中継装置30の運用コスト削減等を考慮して同一拠点内の中継装置30の減設を行う機能を有している。
【0026】
また、負荷分散装置(20a、20b、20c)は、例えばIP Anycast又はDNS(Domain Name System)ロードバランシング等の技術を用いて構成されており、端末40から負荷分散装置20への問い合わせは、端末40が存在するエリアに近い拠点に設置されている負荷分散装置20にルーティングされるよう構成されている。
【0027】
例えば、拠点Aは日本、拠点Cはアメリカであり、エリアAはアジア及びオセアニア、エリアCは北米及び南米であると仮定した場合を想定する。IP Anycast技術を用いた場合、負荷分散装置(20a、20b、20c)の各々は、同一のIPアドレスを有する。この場合において、日本に存在する端末40aが負荷分散装置20のIPアドレスを指定してアクセスすると、自動的に拠点Aに設置されている負荷分散装置20aにルーティングされることになる。また、ブラジルに存在する端末40cが負荷分散装置20にアクセスすると、自動的に拠点Cに設置されている負荷分散装置20cにルーティングされることになる。
【0028】
これにより、負荷分散装置20は、自身にアクセスする端末40は自身の設置拠点に近いエリアに存在すると判断することができる。
【0029】
ここで、「近い」とは、単に地図上の距離が近い場合に限られない。例えば、ルーティングのホップ数が少ない経路である場合、遅延が少ない経路である場合、帯域が広い経路である場合、通信品質が安定している経路である場合、及び経済的な経路である場合も含まれ得る。
【0030】
中継装置30は、端末40の間で行われるP2P通信を中継する装置である。中継装置30は、例えば、WebRTC技術で用いられるTURN(Traversal Using Relays around NAT)サーバである。中継装置30は、端末40から通信を中継してほしい旨の要求を受けると、通信の中継に用いるIPアドレス及びポート番号を端末40に伝える。端末40は、相手の端末40に送信するパケットを、中継装置30から伝えられたIPアドレス及びポート番号宛に送信する。中継装置30は、受信したパケットを通信相手の端末40に転送することで、端末40の間で行われる通信の中継を行う。
【0031】
端末40は、例えばWebブラウザを搭載したPC(Personal Computer)、携帯電話、スマートフォン、又はタブレット端末等の通信機器である。端末40は、サービス提供装置10から受信するクライアントモジュールを動作させることで、相手の端末40との間で所定のサービスを実現することができる。なお、端末40は、サービス提供装置10から受信するクライアントモジュールを実行可能であれば、どのような通信機器であってもよい。
【0032】
NAT60は、内部ネットワーク70と外部ネットワーク50との境界点に設置され、内部ネットワーク70で用いられるIPアドレスと外部ネットワーク50で用いられるIPアドレスとを相互に変換する装置である。これにより、内部ネットワーク70に接続されている端末40から外部ネットワーク50に接続されている装置への通信、及び、外部ネットワーク50に接続されている装置から内部ネットワーク70に接続されている端末40への通信が可能になる。
【0033】
外部ネットワーク50は、いわゆるパブリックネットワークであり、例えばLAN、WAN、又はインターネットである。
【0034】
内部ネットワーク70は、企業又は家庭内等で構築されるプライベートネットワークであり、例えばLAN、WANである。
【0035】
ここで、WebRTC技術について簡単に説明する。WebRTC技術は、2つの端末40の間でWebブラウザを用いたP2P通信を行うことで、Webブラウザ間でリアルタイムなP2P通信を実現するための技術である。一般的に、Webブラウザを搭載した端末40はプライベートネットワークに接続されており、2つの端末40の間で直接通信することができないことが多い。従って、WebRTC技術は、ICE(Interactive Connectivity Establishment)手順を用いることで、端末40がプライベートネットワークに接続されている場合であっても2つの端末40の間で直接通信することを可能にしている。
【0036】
具体的には、ICE手順は、インターネット側に設置されるSTUN(Session Traversal Utilities for NAT)サーバを用いて、NAT60により変換されたIPアドレス及びポート番号(すなわち、インターネット側から見えるIPアドレス及びポート番号)を端末40に通知する仕組み、及び、インターネット側に設置されるTURNサーバを用いてP2P通信を中継させる仕組みを提供する。これにより、WebRTC技術は、2つの端末40の間で直接通信させることを可能にしている。なお、ICE手順の具体的な処理手順は、従来技術であるため説明は省略する。
【0037】
次に、端末40aと端末40bとの間でWebRTCを用いたビデオチャットを行う場合を仮定し、第一の実施の形態に係る通信システムの動作概要について説明する。まず、端末40aの利用者は、端末40aをサービス提供装置10に接続し、ビデオチャットを行うための処理内容が記述されているHTMLファイルを取得する。同様に、端末40bの利用者も端末40bをサービス提供装置10に接続し、ビデオチャットを行うためのHTMLファイルを取得する。このHTMLファイルには、WebRTCで用いるTURNサーバのIPアドレス及びポート番号(又は、URL及びポート番号)を負荷分散装置20から取得するためのJavascript(登録商標)が含まれている。
【0038】
続いて、端末40a及び端末40bに搭載されているWebブラウザにより当該HTMLファイルが実行される。端末40aは、HTMLファイルに含まれているJavaScript(登録商標)により、負荷分散装置20に対して端末40bとの通信に用いる中継装置30を問い合わせる。端末40aからの問い合わせ信号は、端末40aが存在するエリアに対応する拠点の負荷分散装置20aにルーティングされる。
【0039】
負荷分散装置20は、同一拠点内の複数の中継装置30から適切な中継装置30を選択して端末40aに通知する。
【0040】
続いて、端末40bは、端末40aと同様に、HTMLファイルに記述されているJavaScript(登録商標)により、負荷分散装置20に対して端末40aとの通信に用いる中継装置30を問い合わせる。端末40bからの問い合わせ信号は、端末40bが存在するエリアに対応する拠点の負荷分散装置20bにルーティングされる。
【0041】
負荷分散装置20は、端末40の間で行われる通信とその通信を中継する中継装置30とを対応させる情報を互いに共有(同期)するように構成されている。従って、端末40bからの問い合わせを受けた負荷分散装置20は、端末40bからの要求に対して、端末40aに通知済みである中継装置30を端末40bに通知する。これは、TURNサーバを用いて通信を中継する場合、TURNプロトコルの仕様により、端末40a及び端末40bは同一のTURNサーバを用いる必要があるためである。
【0042】
<ハードウェア構成>
図2は、第一の実施の形態に係る負荷分散装置のハードウェア構成の一例を示す図である。第一の実施の形態に係る負荷分散装置20は、CPU101と、ROM102と、RAM103と、HDD104と、操作部105と、表示部106と、ドライブ装置107と、NIC(Network Interface card)108とを有する。
【0043】
CPU101は、負荷分散装置20の全体制御を行うプロセッサである。CPU101、HDD104等に記憶されたオペレーティングシステム、アプリケーション、各種サービス等のプログラムを実行し、負荷分散装置20の各種機能を実現する。ROM102には、各種のプログラムやプログラムによって利用されるデータ等が記憶される。RAM103は、プログラムをロードするための記憶領域や、ロードされたプログラムのワーク領域等として用いられる。HDD104には、各種情報及びプログラム等が記憶される。
【0044】
操作部105は、ユーザからの入力操作を受け付けるためのハードウェアであり、例えばキーボード又はマウスである。表示部106は、ユーザに向けた表示を行うハードウェアである。
【0045】
ドライブ装置107は、プログラムを記録した記憶媒体109からプログラムを読み取る。ドライブ装置107によって読み取られたプログラムは、例えば、HDD104にインストールされる。NIC108は、負荷分散装置20をネットワークに接続し、データの送受信を行うための通信インタフェースである。
【0046】
なお、記憶媒体109とは、非一時的(non-transitory)な記憶媒体を言う。記憶媒体109の例としては、磁気記憶媒体、光ディスク、光磁気記憶媒体、不揮発性メモリなどがある。
【0047】
サービス提供装置10、中継装置30、及び端末40のハードウェア構成は、例えば
図2と同一であるため説明は省略する。
【0048】
なお、負荷分散装置20及び中継装置30に用いるハードウェアリソースとして、例えばクラウドサービスにより提供されるハードウェアリソースを用いるようにしてもよい。クラウドサービスによっては、サーバを作成するハードウェアリソースの拠点を指定可能であり、第一の実施の形態に係る通信システムで用いる負荷分散装置20及び中継装置30を容易に実現することが可能である。
【0049】
<ソフトウェア構成>
(負荷分散装置)
図3は、第一の実施の形態に係る負荷分散装置のソフトウェア構成の一例を示す図である。第一の実施の形態に係る負荷分散装置20は、通信手段201と、記憶手段202と、選択手段203と、負荷管理手段204と、増減設手段205と、同期手段206とを有する。これらの各手段は、負荷分散装置20にインストールされた1以上のプログラムが、CPU101に実行させる処理により実現され得る。
【0050】
通信手段201は、NICを介して、中継装置30又は端末40と通信を行う。
【0051】
記憶手段202は、RAM103、HDD104、又は負荷分散装置20にネットワークを介して接続される記憶装置等を用いて実現可能である。記憶手段202には、中継装置情報及び負荷管理情報が記憶される。中継装置情報は中継装置30を管理するための情報である。負荷管理情報は、中継装置30の負荷を管理する情報である。また、記憶手段202には、第一の実施の形態に係る通信システムに存在する全ての負荷分散装置20の設置拠点が記憶されている。
【0052】
図4は、中継装置情報テーブルの一例を示す図である。中継装置情報テーブルは、中継装置識別子と、設置拠点と、セッション識別子とを有する。
【0053】
中継装置識別子は、中継装置30を一意に識別するための識別子であり、例えば、中継装置30のIPアドレス及びTURNサーバが用いる通信ポートのポート番号(UDP/TCP:3478番)である。なお、中継装置識別子には、中継装置30を一意に識別できるものであれば、他の識別子を用いるようにしてもよい。
【0054】
設置拠点は、中継装置30が設置されている地域である。セッション識別子は、2つの端末40の間で行われる通信(セッション)を一意に識別するための識別子である。セッション識別子は、例えば、端末40を一意に識別する端末識別子のペアで構成される。
図4では、端末識別子をアルファベット一文字(A、B、・・、U)で表現しているが、端末40を一意に識別できるものであれば、他の識別子を用いてもよい。例えば端末40のIPアドレス、端末40の電話番号、端末40に登録されたメールアドレス等を用いてもよい。
【0055】
中継装置情報テーブルにて、中継装置識別子に対応させてセッション識別子を記憶させることで、どの中継装置30が、どの端末40とどの端末40との間で行われる通信を中継する役割を与えられているかを管理することができる。例えば、
図4では、「192.0.2.15:3478」である中継装置識別子を有するレコードに、「A−B」で表現されるセッション識別子が登録されている。これは、中継装置識別子が「192.0.2.15:3478」である中継装置30は、端末識別子がAである端末40と、端末識別子がBである端末40との間で行われる通信を中継する役割を与えられていることを示している。
【0056】
図5は、負荷管理情報テーブルの一例を示す図である。負荷管理情報テーブルは、負荷分散装置20と同一の設置拠点に存在する中継装置30の負荷を管理するテーブルである。負荷管理情報テーブルは、中継装置識別子と負荷情報とを有する。
【0057】
負荷情報は、中継装置30の処理負荷であり、例えばCPU使用率である。なお、負荷情報には、中継装置30の処理負荷を表す指標であれば他の指標を用いるようにしてもよい。
【0059】
選択手段203は、通信に使用する中継装置30の問い合わせ(以下、「中継装置問合せ要求」という)を端末40から受信すると、中継装置情報テーブル及び負荷管理情報テーブルに記憶されている各種情報に基づいて、端末40の通信を中継する中継装置30を選択する。また、選択手段203は、選択した中継装置30の中継装置識別子を端末40に送信する。
【0060】
負荷管理手段204は、負荷分散装置20と同一の設置拠点に存在する複数の中継装置30の各々に対して負荷の問い合わせを行い、問い合わせ結果を負荷管理情報テーブルに格納する。負荷管理手段204は、中継装置30に対して、例えば定期的に負荷を問い合わせるようにしてもよいし、端末40からの要求を受けたタイミングで負荷を問い合わせるようにしてもよい。
【0061】
また、負荷管理手段204は、クラウドサービスを用いて中継装置30が実装されている場合、中継装置30の各々に対して直接負荷を問い合わせるのではなく、クラウドサービスにより提供されるAPI(Application Programming Interface)を介して負荷情報を問い合わせるようにしてもよい。
【0062】
増減設手段205は、中継装置情報に管理されている中継装置30の各々の負荷情報を読出し、予め設定されている所定の閾値に基づいて、新たな中継装置30を増設する必要があるのか、又は、既に設置されている中継装置30を減設するのが望ましいのかを判断する。
【0063】
例えば、同一の設置拠点に設置されている全ての中継装置30の処理負荷が所定の閾値以上(例えば、CPU使用率が80%)である場合、中継装置30の増設が必要であると判断し、その設置拠点に中継装置30を増設する。逆に、同一の設置拠点に設置されている全ての中継装置30の処理負荷が所定の閾値以下(例えば、CPU使用率が10%以下)である場合、中継装置30を減設するのが望ましいと判断し、その設置拠点に設置されている複数の中継装置30のうち任意の一台を選択して減設する。
【0064】
なお、増減設手段205は、未使用のハードウェアリソースに対して、OS、ミドルウェア、及び中継装置30のアプリケーション等をインストールすることで、新たな中継装置30を増設する。また、増減設手段205は、既に設置されている中継装置30のアプリケーションを停止すると共に、OS、ミドルウェア、及び中継装置30のアプリケーションを削除することで中継装置30を減設する。なお、増減設手段205は、クラウドサービスを用いて中継装置30が実装されている場合、クラウドサービスにより提供されるAPI(Application Programming Interface)を介して中継装置30の増設又は減設を行ってもよい。
【0065】
同期手段206は、2つの端末40の間で行われる通信(セッション)とその通信を中継する中継装置30とを対応させる情報を、負荷分散装置20の間で共有(同期)させる。具体的には、同期手段206は、セッション識別子と、当該セッション識別子に対応する中継装置識別子とを他の負荷分散装置20に送信することで同期を行う。
【0066】
(中継装置)
図6は、第一の実施の形態に係る中継装置のソフトウェア構成の一例を示す図である。第一の実施の形態に係る中継装置30は、中継手段401と、負荷計測手段402とを有する。これらの各手段は、中継装置30にインストールされた1以上のプログラムが、CPU101に実行させる処理により実現され得る。
【0067】
中継手段401は、NICを介して端末40と通信を行うことで、2つの端末40の間で行われる通信を中継する。
【0068】
負荷計測手段402は、負荷分散装置20からの問い合わせを受けて、問い合わせを受けた時点の中継装置30の負荷を計測する。また、負荷計測手段402は、計測された値を負荷分散装置20に応答する。計測する値は、例えば中継装置30のCPU使用率である。なお、計測する値は、CPU使用率に限らず、他の指標で表される値でもよい。
【0069】
<処理手順>
図7は、第一の実施の形態に係る中継装置を選択する処理手順の一例を示すフローチャートである。
図7を用いて、負荷分散装置20が中継装置30を選択する処理手順を説明する。
【0070】
ステップS501で、選択手段203は、中継装置問合せ要求を端末40から受信すると、中継装置問合せ要求を送信した端末40自身の端末識別子と、当該端末40の通信相手である端末40の端末識別子とを中継装置問合せ要求から抽出してセッション識別子を生成する。続いて、選択手段203は、生成したセッション識別子を有するレコードが中継装置情報テーブルに存在するかを確認する。
【0071】
生成したセッション識別子を有するレコードが中継装置情報テーブルに存在する場合は、選択手段203は、既に中継装置30が割り当てられているセッションであると判断して、ステップS502の処理手順に進む。一方、生成したセッション識別子を有するレコードが中継装置情報テーブルに存在しない場合は、選択手段203は、新たに中継装置30を割り当てる必要があるセッションであると判断して、ステップS503の処理手順に進む。
【0072】
ステップS502で、選択手段203は、中継装置情報テーブルを検索し、ステップS501で生成したセッション識別子を有するレコードから中継装置識別子を抽出することで中継装置30を選択する。
【0073】
ステップS503で、選択手段203は、中継装置情報テーブル及び負荷管理情報テーブルを用いて、負荷分散装置20と同一の設置拠点に存在する複数の中継装置30のうち最も負荷の低い中継装置30を選択し、選択した中継装置30の中継装置識別子を、ステップS501で受信した中継装置問合せ要求の送信元である端末40に送信する。
【0074】
なお、第一の実施の形態に係る通信システムはIP Anycast等の技術を用いている。これにより、選択手段203は、中継装置問合せ要求を送信した端末40は、自身の設置拠点に近いエリアに存在すると判断することができる。従って、選択手段203は、ステップS503の処理手順において、自身と同一の設置拠点に設置されている中継装置30のうち最も負荷の低い中継装置30を選択するようにしている。
【0075】
ステップS504で、選択手段203は、ステップS501で生成したセッション識別子を、中継装置情報テーブルのレコードのうち、ステップS503で選択された中継装置30のレコードに格納する。
【0076】
以上、選択手段203が、中継装置30を選択する処理手順について説明した。続いて、
図8を用いて、端末40a及び端末40bの各々が、通信に使用する中継装置30を負荷分散装置20に問い合わせて通信を開始するまでの処理手順を説明する。
【0077】
図8は、第一の実施の形態に係る通信システムの処理手順の一例を示すシーケンス図である。なお、
図8は、端末40aが端末40bよりも先に負荷分散装置20に対して中継装置30の問い合わせを行った場合を想定したものであるが、端末40bが端末40aよりも先に負荷分散装置20に対して中継装置30の問い合わせを行った場合も、同様の処理手順を適用することができる。
【0078】
ステップS601で、端末40aは、負荷分散装置20に対して中継装置問合せ要求を送信する。なお、中継装置問合せ要求には、端末40a自身の端末識別子(A)と、端末40aの通信相手である端末40bの端末識別子(B)とが含まれている。なお、第一の実施の形態に係る通信システムは、エリアAに存在する端末40からのアクセスは、拠点Aに設置されている負荷分散装置20aにルーティングされるように構成されている。従って、端末40aが送信した中継装置問合せ要求は、拠点Aに設置されている負荷分散装置20aにルーティングされる。
【0079】
ステップS602で、負荷分散装置20aの選択手段203は、
図7で説明した処理手順により、端末40aが端末40bと通信を行う際に用いる中継装置30を選択する。
【0080】
ステップS603で、負荷分散装置20aの選択手段203は、端末40aに対して、中継装置問合せ応答を送信する。中継装置問合せ要求には、ステップS602で選択された中継装置30の中継装置識別子(192.0.2.15:3478)が含まれている。
【0081】
ステップS604で、負荷分散装置20aの同期手段206は、自身以外の全ての負荷分散装置20にセッション識別子同期要求を送信する。セッション識別子同期要求には、ステップS602の処理にて中継装置情報テーブルに登録されたセッション識別子(A−B)と、ステップS602の処理にて選択された中継装置30の中継装置識別子(192.0.2.15:3478)とが含まれている。
【0082】
ステップS605で、負荷分散装置20bの同期手段206は、受信したセッション識別子同期要求に含まれている中継装置識別子(192.0.2.15:3478)を有するレコードが中継装置情報テーブルに存在するかを確認する。レコードが存在する場合、負荷分散装置20bの同期手段206は、受信したセッション識別子(A−B)を当該レコードに格納する。レコードが存在しない場合、負荷分散装置20bの同期手段206は、中継装置情報テーブルに新たなレコードを追加する。また、負荷分散装置20bの同期手段206は、受信したセッション識別子同期要求に含まれている中継装置識別子(192.0.2.15:3478)と、受信したセッション識別子(A−B)と、セッション識別子同期要求の送信元である負荷分散装置20aの設置拠点(拠点A)とを当該レコードに格納する。負荷分散装置20aの設置拠点(拠点A)は、記憶手段202に記憶されている情報から判断することができる。
【0083】
ステップS606で、負荷分散装置20bの同期手段206は、セッション識別子の同期が完了したことを負荷分散装置20aに伝えるために、セッション識別子同期完了応答を負荷分散装置20aに送信する。
【0084】
ステップS607で、端末40bは、負荷分散装置20bに対して中継装置問合せ要求を送信する。中継装置問合せ要求には、端末40b自身の端末識別子(B)と、端末40bの通信相手である端末40aの端末識別子(A)とが含まれている。第一の実施の形態に係る通信システムは、エリアBに存在する端末40からのアクセスは、拠点Bに設置されている負荷分散装置20bにルーティングされるように構成されている。従って、端末40bが送信した中継装置問合せ要求は、拠点Bに設置されている負荷分散装置20bにルーティングされる。
【0085】
ステップS608で、負荷分散装置20bの選択手段203は、
図7で説明した処理手順により、端末40bが端末40aと通信を行う際に用いる中継装置30を選択する。なお、ステップS605の処理により、端末40aと端末40bとの間の通信を示すセッション識別子は、既に中継装置情報テーブルに格納されている。従って、負荷分散装置20bの選択手段203は、負荷分散装置20aから端末40aに通知された中継装置30と同一の中継装置30を選択することになる。
【0086】
ステップS609で、負荷分散装置20bの選択手段203は、端末40bに対して、中継装置問合せ応答を送信する。中継装置問合せ要求には、ステップS608で選択された中継装置30の中継装置識別子(192.0.2.15:3478)が含まれている。
【0087】
ステップS610及びステップS611で、端末40a及び端末40bは、中継装置識別子で指定されたIPアドレス及びポートに対し、TURNプロトコルで規定されている通信手順に従ってパケットを送信することで、中継装置30との間でトンネルを確立する。中継装置30は、端末40aから受信したデータ及び端末40bから受信したデータを、それぞれ端末40b及び端末40aに転送することで、端末40a及び端末40bの間で行われる通信を中継する。
【0088】
以上、端末40a及び端末40bの各々が、通信に使用する中継装置30を負荷分散装置20に問い合わせて通信を開始するまでの処理手順について説明した。続いて、
図9を用いて、負荷分散装置20が、中継装置30を増設する処理手順について説明する。
【0089】
図9は、第一の実施の形態に係る中継装置を増設する処理手順の一例を示すフローチャートである。なお、負荷分散装置20の増減設手段205は、
図9に示す処理手順を任意のタイミングで行うようにしてもよいし、定期的に行うようにしてもよい。
【0090】
ステップS701で、増減設手段205は、負荷管理情報テーブルより、負荷分散装置20と同一の拠点に設置されている複数の中継装置30の各々の負荷を抽出する。続いて、増減設手段205は、抽出した負荷の平均値を算出することで平均負荷を求め、求めた平均負荷が閾値以上であるかを判断する。求めた平均負荷が閾値以上である場合、ステップS702の処理手順に進み、求めた平均負荷が閾値未満である場合、処理を終了する。
【0091】
なお、増減設手段205は、平均負荷が閾値以上であるかを判断するのではなく、負荷分散装置20と同一の拠点に設置されている全ての中継装置30の各々の負荷が所定の閾値以上である場合にステップS702の処理手順に進むようにしてもよい。
【0092】
ステップS702で、増減設手段205は、未使用のハードウェアリソースに対して、OS、ミドルウェア、中継装置30のアプリケーション等をインストールすることで、負荷分散装置20と同一の拠点に新たな中継装置30を増設する。
【0093】
ステップS703で、増減設手段205は、中継装置情報テーブルに新たなレコードを追加し、ステップS702で増設した中継装置30の中継装置識別子及び設置拠点を当該レコードに格納する。また、増減設手段205は、負荷管理情報テーブルに新たなレコードを追加し、ステップS702で追加した中継装置30の中継装置識別子を当該レコードに格納する。
【0094】
以上、負荷分散装置20が、中継装置30を増設する処理手順について説明した。続いて、
図10を用いて負荷分散装置20が、中継装置30を減設する処理手順について説明する。
【0095】
図10は、第一の実施の形態に係る中継装置を減設する処理手順の一例を示すフローチャートである。なお、負荷分散装置20の増減設手段205は、
図10に示す処理手順を任意のタイミングで行うようにしてもよいし、定期的に行うようにしてもよい。
【0096】
ステップS801で、増減設手段205は、負荷管理情報テーブルより、負荷分散装置20と同一の拠点に設置されている複数の中継装置30の各々の負荷を抽出する。続いて、増減設手段205は、抽出した負荷の平均値を算出することで平均負荷を求め、求めた平均負荷が閾値以下であるかを判断する。求めた平均負荷が閾値以下である場合、ステップS802の処理手順に進み、求めた平均負荷が閾値を超えている場合、処理を終了する。
【0097】
ステップS802で、増減設手段205は、負荷分散装置20と同一の拠点に設置されている複数の中継装置30の中から、減設対象とする中継装置30を選択する。増減設手段205は、任意の中継装置30を減設する中継装置30として選択してもよいし、割り当てられているセッション識別子の数が最も少ない中継装置30を、減設する中継装置30として選択してもよい。
【0098】
ステップS803で、増減設手段205は、中継装置情報テーブルより、減設する中継装置30として選択された中継装置30に割り当てられているセッション識別子が1つ以上存在するかを確認する。割り当てられているセッション識別子が1つ以上存在する場合は、割り当てられているセッション識別子がゼロになるまで待機する。当該中継装置30が減設されることで、端末40の間で行っている通信が切断されてしまう恐れがあるためである。割り当てられているセッション識別子がゼロである場合は、ステップS804の処理手順に進む。なお、増減設手段205は、ステップS803を処理手順を行わずに、強制的にステップS804の処理手順に進むようにしてもよい。
【0099】
ステップS804で、増減設手段205は、中継装置30のアプリケーションを停止すると共に、OS、ミドルウェア、及び中継装置30のアプリケーションを削除することで、減設する中継装置30として選択された中継装置30を減設する。
【0100】
以上、負荷分散装置20が、中継装置30を減設する処理手順について説明した。
【0101】
<処理手順(変形例1)>
ここで、第一の実施の形態の変形例1に係る処理手順について説明する。第一の実施の形態の変形例1に係る負荷分散装置20は、端末40から中継装置問合せ要求を受けた場合、負荷分散装置20と同一の設置拠点に設置されている全ての中継装置30の各々の負荷を確認する。確認の結果、全ての中継装置30の各々の負荷(又は負荷の平均値)が所定の閾値を超える場合は、負荷分散装置20と同一の設置拠点に新たな中継装置30を増設し、増設された新たな中継装置30を選択して端末40に応答するようにする。
【0102】
以下、具体的な処理手順について図を用いて説明する。
【0103】
図11は、第一の実施の形態に係る中継装置を選択する処理手順(変形例1)の一例を示すフローチャートである。
図11のステップS501乃至S504の処理手順は、
図7と同一であるため説明は省略する。
【0104】
ステップS513で、選択手段203は、中継装置情報テーブル及び負荷管理情報テーブルを用いて、負荷分散装置20と同一の設置拠点に設置されている全ての中継装置30の各々の負荷を確認する。全ての中継装置30の各々の負荷が所定の閾値を超えている場合、ステップS514の処理手順に進み、全ての中継装置30の負荷のうち少なくとも1つ以上の中継装置30の負荷が所定の閾値を超えていない場合は、ステップS503の処理手順に進む。
【0105】
ステップS514で、選択手段203は、増減設手段205に対して、中継装置30の増設を指示する。指示を受けた増減設手段205は、未使用のハードウェアリソースに対して、OS、ミドルウェア、中継装置30のアプリケーション等をインストールすることで、負荷分散装置20と同一の拠点に新たな中継装置30を増設する。また、増減設手段205は、中継装置情報テーブルに新たなレコードを追加する。
【0106】
ステップS515で、選択手段203は、ステップS501で生成したセッション識別子を、中継装置情報テーブルのレコードのうち、ステップS514で増設された中継装置30のレコードに格納する。
【0107】
以上、第一の実施の形態の変形例1に係る処理手順について説明した。
【0108】
<処理手順(変形例2)>
続いて、第一の実施の形態の変形例2に係る処理手順について説明する。
【0109】
第一の実施の形態の変形例2に係る負荷分散装置20は、端末40から中継装置問合せ要求を受けた場合、負荷分散装置20と同一の設置拠点に設置されている全ての中継装置30の各々の負荷を確認する。確認の結果、全ての中継装置30の各々の負荷(又は負荷の平均値)が所定の閾値を超える場合は、負荷分散装置20と異なる設置拠点に設置されている複数の中継装置30のうち、負荷が所定の閾値以下である中継装置30を選択するようにする。
【0110】
以下、具体的な処理手順について図を用いて説明する。
【0111】
図12は、第一の実施の形態に係る中継装置を選択する処理手順(変形例2)の一例を示すフローチャートである。
図12のステップS501乃至S504、及びステップS513の処理手順は、
図7及び
図11と同一であるため説明は省略する。
【0112】
ステップS523で、選択手段203は、他の負荷分散装置20に対して、負荷が所定の閾値以下である中継装置30の中継装置識別子を問い合わせることで、他の設置拠点に存在する複数の中継装置30の中から中継装置30を選択する。
【0113】
なお、他の全ての負荷分散装置20から、負荷が所定の閾値以下である中継装置30が存在しない旨の応答を受けた場合、選択手段203は、
図11のステップS514に進むことで、新たな中継装置30を増設するようにしてもよい。
【0114】
ステップS524で、選択手段203は、ステップS501で生成したセッション識別子を、中継装置情報テーブルのレコードのうち、ステップS523で選択された中継装置30のレコードに格納する。
【0115】
以上、第一の実施の形態の変形例2に係る処理手順について説明した。
【0116】
<効果>
以上、第一の実施の形態に係る通信システムは、IP Anycast等の技術を用いることで、端末40からの中継装置問合せ要求が、当該端末40が存在するエリアに近い設置拠点に設置されている負荷分散装置20に到達するようにした。また、端末40からの中継装置問合せ要求を受信した負荷分散装置20は、自身と同一の設置拠点に設置されている中継装置30を選択するようにした。これにより、第一の実施の形態に係る通信システムは、通信の遅延が少なくなるような中継装置30の選択が可能になり、中継装置30の負荷分散を適切に行うことができる。また、第一の実施の形態に係る通信システムは、中継装置30を選択する場合に、例えば、負荷の小さい中継装置30を選択するようにした。これにより、第一の実施の形態に係る通信システムは、中継装置30の負荷分散を適切に行うことができる。
【0117】
また、第一の実施の形態に係る通信システムは、負荷分散装置自身と同一の設置拠点に設置されている中継装置30の負荷状態を監視し、負荷状態が閾値以上である場合に新たな中継装置30を増設するようにした。また、第一の実施の形態に係る通信システムは、中継装置30の負荷が閾値以下である場合に不要な中継装置30を減設するようにした。これにより、必要な拠点と必要な時間に応じて動的に中継装置30を稼働させることができ、予期不能な急激な負荷の増加や、時間帯による負荷の変化に対して柔軟に対応することができる。
【0118】
また、第一の実施の形態に係る通信システムは、クラウドサービスを利用して中継装置30を増減設することができるようにした。これにより、必要最小限の中継装置30のみを稼働させることが可能になり、運用コストを抑えることができる。
【0119】
また、第一の実施の形態に係る通信システムは、WebRTCを用いたサービスを受ける端末40に対して、適切なTURNサーバを通知するようにした。これにより、端末40に配布されるクライアントモジュール及びクライアントモジュールを配布するサービス提供装置10のプログラムに、予めTURNサーバを設定しておく必要がなく、柔軟なサービス運用が可能になる。
【0120】
また、第一の実施の形態(変形例2)に係る通信システムは、負荷分散装置20と同一の設置拠点に設置されている全ての中継装置30の各々の負荷(又は負荷の平均値)が所定の閾値を超える場合、中継装置30を増設するのではなく、当該負荷分散装置20と異なる設置拠点に設置されている中継装置30を選択することができるようにした。これにより、中継装置30を増設する際に必要なコストを抑えることができる。
【0121】
[第二の実施の形態]
続いて、第二の実施の形態に係る通信システムについて説明する。第二の実施の形態に係る通信システムは、負荷分散装置20が中継装置30を選択する際、中継装置問合せ要求に含まれるIPアドレスから端末40が存在するエリアを特定し、特定したエリアに対応する拠点に設置されている中継装置30を選択するようにする。なお、第一の実施の形態と同一構成部分についての説明は省略する。また、特に言及しない点については、第一の実施の形態と同様でよい。
【0122】
図13は、対象エリア管理テーブルの一例を示す図である。対象エリア管理テーブルは、記憶手段202に記憶される。対象エリア管理テーブルは、設置拠点と、対象エリア情報とを含む。対象エリア情報は、中継装置30が、どのエリアに存在する端末40の通信を中継するかを管理する情報である。例えば、
図13には、「拠点A」に対応する対象エリア情報として、「日本、韓国、中国」が格納されている。すなわち、拠点Aに設置されている中継装置30は、日本、韓国、及び中国に存在する端末40の通信を中継する役割を担うことになる。
【0123】
なお、対象エリア情報には、設置拠点との距離が概ね一定範囲にあるエリア、設置拠点とルーティングのホップ数が少ない経路で通信可能なエリア、設置拠点と遅延が少ない経路で通信可能なエリア、設置拠点と帯域が広い経路で通信可能なエリア、設置拠点と通信品質が安定している経路で通信可能なエリア、又は、設置拠点と経済的な経路で通信可能なエリアなどが設定されるようにするのが望ましい。これにより、通信を行う2つの端末40のうち、少なくともいずれか一方の端末40が設置されている地域に適切な地域に設置されている中継装置30が選択されるようになり、中継装置30を介した端末40の間の通信が無駄に遠回りになることによる遅延の増加等を避けることができる。
【0124】
図14は、第二の実施の形態に係る中継装置を選択する処理手順の一例を示すフローチャートである。
図14を用いて、負荷分散装置20が中継装置30を選択する処理手順を説明する。なお、ステップS501及びステップS502の処理手順は、
図7と同一であるため説明は省略する。
【0125】
ステップS901で、選択手段203は、端末40から受信した中継装置問合せ要求に含まれるヘッダ情報から、端末40が存在するエリアを把握する。
【0126】
ここで、中継装置問合せ要求に含まれるヘッダ情報の一例として、IPアドレスが挙げられる。IPアドレスは国ごとに割り当て範囲がある程度決まっており、割り当てられている範囲はインターネット等に公開されている。従って、選択手段203は、中継装置問合せ要求のヘッダ情報に含まれるIPアドレスを用いて、中継装置問合せ要求を送信した端末40がどのエリアに存在するのかを把握することが可能である。
【0127】
続いて、選択手段203は、エリア管理テーブル及び中継装置管理テーブルにより、端末40が存在するエリアに対応する設置拠点を検索し、検索した設置拠点に設置されている中継装置30を抽出する。
【0128】
ステップS902で、選択手段203は、負荷管理情報テーブルを用いて、ステップS901で抽出された中継装置30のうち最も負荷の低い中継装置30を選択し、選択した中継装置30の中継装置識別子を、ステップS501で受信した中継装置問合せ要求の送信元である端末40に送信する。
【0129】
なお、第一の実施の形態とは異なり、ステップS901の処理手順にて検索した設置拠点が、負荷分散装置20自身の設置拠点とは一致しない場合が想定され得る。負荷分散装置20自身が記憶している負荷管理情報テーブルには、負荷分散装置20自身の設置拠点と異なる設置拠点に設置されている中継装置30に関する情報が含まれていないため、選択手段203は処理を継続できない。従って、この場合は、ステップS901の処理手順にて検索した設置拠点に設置されている他の負荷分散装置20にアクセスし、最も負荷の低い中継装置30を他の負荷分散装置20に選択させるようにしてもよい。
【0130】
ステップS903で、選択手段203は、ステップS501で生成したセッション識別子を、中継装置情報テーブルのレコードのうち、ステップS902で選択した中継装置30のレコードに格納する。
【0131】
<効果>
以上、第二の実施の形態に係る通信システムは、各中継装置30がどのエリアに存在する端末40の通信を中継するかを管理するようにしたことで、端末40からの中継装置問合せ要求に対して、当該端末40が存在するエリアに近い設置拠点に設置されている中継装置30を選択するようにした。これにより、第二の実施の形態に係る通信システムは、通信の遅延が少なくなるような中継装置30の選択が可能になり、中継装置30の負荷分散を適切に行うことができる。また、第二の実施の形態に係る通信システムは、中継装置30を選択する場合に、負荷の小さい中継装置30を選択するようにした。これにより、第二の実施の形態に係る通信システムは、中継装置30の負荷分散を適切に行うことができる。
【0132】
[第三の実施の形態]
続いて、第三の実施の形態に係る通信システムについて説明する。第三の実施の形態に係る通信システムは、特定の端末40からの中継装置問合せ要求に対して、予め定められた拠点の中継装置30を選択するようにする。なお、第一の実施の形態と同一構成部分についての説明は省略する。また、特に言及しない点については、第一の実施の形態と同様でよい。
【0133】
図15は、特定端末管理テーブルの一例を示す図である。特定端末管理テーブルは、記憶手段202に記憶される。特定端末管理テーブルは、設置拠点と、端末識別子とを含む。
【0134】
図16は、第三の実施の形態に係る中継装置を選択する処理手順の一例を示すフローチャートである。
図16を用いて、第三の実施の形態に係る負荷分散装置20が中継装置30を選択する処理手順を説明する。なお、ステップS501及びステップS502の処理手順は、
図7と同一であるため説明は省略する。
【0135】
ステップS1001で、選択手段203は、端末40から受信した中継装置問合せ要求に含まれる通信元の端末40の端末識別子を抽出し、特定端末管理テーブルにより、抽出した端末識別子に対応する設置拠点を検索する。抽出した端末識別子が特定端末管理テーブルに登録されている場合、選択手段203は、中継装置管理テーブルにより、検索した設置拠点に設置されている中継装置30を抽出し、ステップS1002の処理手順に進む。抽出した端末識別子が特定端末管理テーブルに登録されていない場合、選択手段203は、
図7のステップS503の処理手順、又は
図14のステップS901の処理手順に進む。
【0136】
ステップS1002で、選択手段203は、負荷管理情報テーブルを用いて、ステップS1001で抽出された中継装置30のうち最も負荷の低い中継装置30を選択し、選択した中継装置30の中継装置識別子を、ステップS501で受信した中継装置問合せ要求の送信元である端末40に送信する。
【0137】
なお、第一の実施の形態とは異なり、ステップS1001の処理手順にて検索した設置拠点が、負荷分散装置20自身の設置拠点と一致しない場合が想定され得る。負荷分散装置20自身が記憶している負荷管理情報テーブルには、負荷分散装置20自身の設置拠点と異なる設置拠点に設置されている中継装置30に関する情報が含まれていないため、選択手段203は処理を継続できない。従って、この場合は、ステップS1001の処理手順にて検索した設置拠点に設置されている他の負荷分散装置20にアクセスし、最も負荷の低い中継装置30を他の負荷分散装置20に選択させるようにしてもよい。
【0138】
ステップS1003で、選択手段203は、ステップS501で生成したセッション識別子を、中継装置情報テーブルのレコードのうち、ステップS1002で選択した中継装置30のレコードに格納する。
【0139】
<効果>
以上、第三の実施の形態に係る通信システムは、特定の端末40からの中継装置問合せ要求に対して、予め定められた拠点の中継装置30を選択するようにした。これにより、第三の実施の形態に係る通信システムは、特定の端末に対して予め設定された中継装置30を割り当てることが可能になる。また、例えば、特定のクライアント専用のTURNサーバを設置し、特定のクライアントが有する端末40からの中継装置問合せ要求に対しては固定的なTURNサーバを選択することが可能になる。これにより、一部のユーザニーズに対して柔軟なサービス展開を行うことができる。
【0140】
<実施形態の補足>
以上、上記複数の実施の形態において、選択手段203は、同一のセッションに対して同一の中継装置30を選択するようにしたが、2つの端末40の各々が存在するエリアが離れている場合は、異なる中継装置30を選択するようにしてもよい。例えば、アメリカに存在する端末40と日本に存在する端末40との間でP2P通信が行われる場合において、選択手段203は、アメリカに存在する端末40からの中継装置問合せ要求に対しては、拠点Cに設置されている中継装置30を選択するようにし、日本に存在する端末40からの中継装置問合せ要求に対しては、拠点Aに設置されている中継装置30を選択するようにしてもよい。現状のTURNプロトコルでは、同一セッションに対しては同一のTURNサーバを選択する必要があるが、今後、異なるTURNサーバを選択することが可能になることも想定し得るためである。
【0141】
以上、上記複数の実施の形態においては、先に中継装置問合せ要求を受信した端末40のエリアに応じて中継装置30を選択するようにしたが、負荷分散装置20は、端末40a及び端末40bの両方からの中継装置問合せ要求を受信するまで待機するようにして、端末40a及び端末40bのそれぞれのエリアの双方に対応する中継装置30の中から最も負荷の低い中継装置30を選択するようにしてもよい。
【0142】
以上、上記複数の実施の形態においては、端末40は、他の端末40との通信を終了する際に、負荷分散装置20にその旨を通知するようにしてもよい。また、負荷分散装置20は、当該通知を受けた場合、中継装置情報テーブルに格納されているセッション識別子を削除するようにしてもよい。
【0143】
以上、本発明は上記複数の実施の形態に限定されるものではなく、本発明の範囲内で種々の変形及び改良が可能である。
【0144】
以上、上記複数の実施の形態で述べたシーケンス及びフローチャートは、矛盾の無い限り順序を入れ替えてもよい。
【0145】
以上、上記複数の実施の形態の全部又は一部は、プログラムによって実装され得る。このプログラムは、記憶媒体に格納することができる。
【0146】
以上、上記複数の実施の形態において、IPアドレスはヘッダ情報の一例であり、セッション識別子は通信識別子の一例である。
【0147】
明細書には下記の事項が開示されている。
(第1項)
端末が行う通信を中継する複数の中継装置及び前記端末にネットワークを介して接続される負荷分散装置であって、
前記複数の中継装置の各々を識別する中継装置識別子と、前記複数の中継装置の各々の設置拠点を示す設置拠点情報と、前記複数の中継装置の各々の負荷を示す負荷情報とを記憶する記憶手段と、
前記複数の中継装置の各々から前記負荷情報を収集して前記記憶手段に格納する負荷管理手段と、
前記端末からの要求を受けた場合に、前記設置拠点情報又は前記負荷情報に基づいて、前記端末が行う通信を中継する中継装置を前記複数の中継装置から選択する選択手段と、
前記選択手段により選択された中継装置の中継装置識別子を、前記要求を送信した前記端末に送信する送信手段と、
を有する負荷分散装置。
(第2項)
前記選択手段は、
前記端末からの前記要求に含まれるヘッダ情報、又は、当該負荷分散装置の設置拠点から前記端末が存在するエリアを判断し、
前記端末が存在するエリア及び前記設置拠点情報に基づいて、前記端末が行う通信を中継する中継装置を前記複数の中継装置から選択する、第1項に記載の負荷分散装置。
(第3項)
前記選択手段は、
前記負荷情報に基づいて、同一の設置拠点に設置されている前記複数の中継装置から一の中継装置を選択する、第1項又は第2項に記載の負荷分散装置。
(第4項)
前記負荷情報と予め定められた閾値とに基づき、新たな中継装置の増設又は設置されている中継装置の減設を行う増減設手段を有する第1項乃至第3項のいずれか一項に記載の負荷分散装置。
(第5項)
前記選択手段は、
所定の設置拠点に設置されている前記複数の中継装置の各々の負荷が、予め定められた閾値を超えている場合、前記所定の設置拠点に新たな中継装置を増設するように前記増減設手段に指示し、増設された新たな中継装置を選択する、第4項に記載の負荷分散装置。
(第6項)
前記選択手段は、
所定の設置拠点に設置されている前記複数の中継装置の各々の負荷が、予め定められた閾値を超えている場合、前記所定の設置拠点とは異なる設置拠点に設置されている前記複数の中継装置のうち、予め定められた閾値以下である中継装置を選択する、第1項乃至第4項のいずれか一項に記載の負荷分散装置。
(第7項)
前記記憶手段は、前記端末の通信を識別する通信識別子を中継装置識別子に対応させて記憶し、
前記選択手段は、
前記端末からの前記要求を受けた場合において、前記端末からの前記要求に含まれる前記通信識別子が前記記憶手段に格納されている場合は、当該通信識別子に対応する中継装置識別子により識別される中継装置を選択し、前記端末からの前記要求に含まれる前記通信識別子が前記記憶手段に格納されていない場合は、前記端末が行う通信を中継する中継装置を前記複数の中継装置から選択し、前記端末からの前記要求に含まれる前記通信識別子を、選択した中継装置の中継装置識別子に対応させて前記記憶手段に格納する、第1項乃至第6項のいずれか一項に記載の負荷分散装置。
(第8項)
前記記憶手段に格納される前記通信識別子と、当該通信識別子に対応する前記中継装置の中継装置識別子とを、当該負荷分散装置とは異なる他の負荷分散装置に送信する、同期手段を有する第7項に記載の負荷分散装置。
(第9項)
前記同期手段は、前記他の負荷分散装置から前記通信識別子と前記中継装置の中継装置識別子とを受信した場合に、受信した前記通信識別子を、受信した中継装置識別子が示す前記中継装置に対応させて前記記憶手段に格納する、第8項に記載の負荷分散装置。
(第10項)
前記記憶手段は、前記端末を識別する端末識別子と前記設置拠点情報とを対応させて記憶し、
前記選択手段は、前記端末からの前記要求を受けた場合において、前記端末からの前記要求に含まれる前記端末識別子が前記記憶手段に格納されている場合、当該端末識別子に対応する設置拠点に設置されている中継装置を抽出し、前記負荷情報に基づき、前記端末が行う通信を中継する中継装置を前記抽出した中継装置から選択する、第1項乃至第9項のいずれか一項に記載の負荷分散装置。
(第11項)
端末が行う通信を中継する複数の中継装置及び前記端末にネットワークを介して接続される負荷分散装置における負荷分散方法であって、
前記複数の中継装置の各々を識別する中継装置識別子と、前記複数の中継装置の各々の設置拠点を示す設置拠点情報と、前記複数の中継装置の各々の負荷を示す負荷情報とを記憶手段に記憶する記憶ステップと、
前記複数の中継装置の各々から前記負荷情報を収集して前記記憶手段に格納する負荷管理ステップと、
前記端末からの要求を受けた場合に、前記設置拠点情報又は前記負荷情報に基づいて、前記端末が行う通信を中継する中継装置を前記複数の中継装置から選択する選択ステップと、
前記選択ステップにより選択された中継装置の中継装置識別子を、前記要求を送信した前記端末に送信する送信ステップと、
を有する負荷分散方法。
(第12項)
端末が行う通信を中継する複数の中継装置及び前記端末にネットワークを介して接続される負荷分散装置におけるプログラムであって、
負荷分散装置に、
前記複数の中継装置の各々を識別する中継装置識別子と、前記複数の中継装置の各々の設置拠点を示す設置拠点情報と、前記複数の中継装置の各々の負荷を示す負荷情報とを記憶手段に記憶する記憶ステップと、
前記複数の中継装置の各々から前記負荷情報を収集して前記記憶手段に格納する負荷管理ステップと、
前記端末からの要求を受けた場合に、前記設置拠点情報又は前記負荷情報に基づいて、前記端末が行う通信を中継する中継装置を前記複数の中継装置から選択する選択ステップと、
前記選択ステップにより選択された中継装置の中継装置識別子を、前記要求を送信した前記端末に送信する送信ステップと、
を実行させるためのプログラム。
【0148】
本特許出願は2014年12月24日に出願した日本国特許出願第2014−260297号に基づきその優先権を主張するものであり、日本国特許出願第2014−260297号の全内容を本願に援用する。