図面 (/)

技術 負荷分散装置、中継装置、負荷分散方法及びプログラム

出願人 エヌ・ティ・ティ・コミュニケーションズ株式会社
発明者 中蔵聡哉山村奨
出願日 2018年2月8日 (2年3ヶ月経過) 出願番号 2018-021318
公開日 2018年5月31日 (1年11ヶ月経過) 公開番号 2018-085776
状態 特許登録済
技術分野 広域データ交換 計算機・データ通信
主要キーワード 対象エリア情報 ポート番 エリア管理テーブル 平均負荷 増減設 中継装置情報 割り当て範囲 負荷計測
関連する未来課題
重要な関連分野

この項目の情報は公開日時点(2018年5月31日)のものです。
また、この項目は機械的に抽出しているため、正しく解析できていない場合があります

図面 (17)

課題

中継装置設置場所又は処理負荷を考慮して適切な負荷分散を可能とする技術を提供することを目的とする。

解決手段

端末が行う通信中継する複数の中継装置及び前記端末にネットワークを介して接続される負荷分散装置であって、前記複数の中継装置の各々を識別する中継装置識別子と、前記複数の中継装置の各々の設置拠点を示す設置拠点情報と、前記複数の中継装置の各々の負荷を示す負荷情報とを記憶する記憶手段と、前記設置拠点情報又は前記負荷情報に基づいて、前記端末が行う通信を中継する中継装置を前記複数の中継装置から選択する選択手段と、前記選択手段により選択された中継装置の中継装置識別子を、前記端末に送信する送信手段と、を有する。

概要

背景

2つの端末の間で直接通信を行うP2P通信技術が知られている。ここで、P2P通信技術を用いて端末間で通信を行う場合、端末が接続されているネットワークの構成によっては端末間で直接通信することができない場合がある。例えば、2つの端末がそれぞれ異なるプライベートネットワークに属している場合、NAT(Network Address Translation)の仕様によってはパケット破棄されてしまい、端末間で直接通信をすることが出来ない。

このような場合にP2P通信を可能とするため、パブリックネットワーク上に中継装置を設置し、端末間で行われるP2P通信を、中継装置を介して中継する技術が存在する。

しかしながら、端末間で映像又は音声のP2P通信を行う場合は一般的に大きな通信帯域が必要になる。従って、中継装置を介して映像又は音声のP2P通信を中継する場合は、中継装置の処理負荷が大きくなってしまう。さらに、中継装置の設置場所によっては、通信経路が長くなることで通信の遅延が大きくなり、P2P通信の長所であるリアルタイム性が損なわれることになる。

ここで、サーバの処理負荷の増加に対応する技術として、端末からのリクエストに対して、ハッシュ関数により算出された仮想ID(Identifier)に基づいて複数のサーバのいずれかにリクエストを振り分けることで負荷分散を行う負荷分散技術がある(例えば、特許文献1参照)。

概要

中継装置の設置場所又は処理負荷を考慮して適切な負荷分散を可能とする技術を提供することを目的とする。端末が行う通信を中継する複数の中継装置及び前記端末にネットワークを介して接続される負荷分散装置であって、前記複数の中継装置の各々を識別する中継装置識別子と、前記複数の中継装置の各々の設置拠点を示す設置拠点情報と、前記複数の中継装置の各々の負荷を示す負荷情報とを記憶する記憶手段と、前記設置拠点情報又は前記負荷情報に基づいて、前記端末が行う通信を中継する中継装置を前記複数の中継装置から選択する選択手段と、前記選択手段により選択された中継装置の中継装置識別子を、前記端末に送信する送信手段と、を有する。

目的

開示の技術は上記に鑑みてなされたものであって、中継装置の設置場所又は処理負荷を考慮して適切な負荷分散を可能とする技術を提供する

効果

実績

技術文献被引用数
0件
牽制数
0件

この技術が所属する分野

(分野番号表示ON)※整理標準化データをもとに当社作成

ライセンス契約や譲渡などの可能性がある特許掲載中! 開放特許随時追加・更新中 詳しくはこちら

請求項1

端末が行う通信中継する複数の中継装置及び前記端末にネットワークを介して接続される負荷分散装置であって、前記複数の中継装置の各々を識別する中継装置識別子と、前記複数の中継装置の各々の設置拠点を示す設置拠点情報と、前記複数の中継装置の各々の負荷を示す負荷情報とを記憶する記憶手段と、前記設置拠点情報又は前記負荷情報に基づいて、前記端末が行う通信を中継する中継装置を前記複数の中継装置から選択する選択手段と、前記選択手段により選択された中継装置の中継装置識別子を、前記端末に送信する送信手段と、を有する負荷分散装置。

請求項2

前記選択手段は、前記負荷分散装置の設置拠点から前記端末が存在するエリアを判断し、前記端末が存在するエリア及び前記設置拠点情報に基づいて、前記端末が行う通信を中継する中継装置を前記複数の中継装置から選択する、請求項1に記載の負荷分散装置。

請求項3

前記選択手段は、前記負荷情報に基づいて、同一の設置拠点に設置されている前記複数の中継装置から一の中継装置を選択する、請求項1又は2に記載の負荷分散装置。

請求項4

前記負荷情報と予め定められた閾値とに基づき、新たな中継装置の増設又は設置されている中継装置の減設を行う増減設手段を有する請求項1乃至3のいずれか一項に記載の負荷分散装置。

請求項5

前記選択手段は、所定の設置拠点に設置されている前記複数の中継装置の各々の負荷が、予め定められた閾値を超えている場合、前記所定の設置拠点に新たな中継装置を増設するように前記増減設手段に指示し、増設された新たな中継装置を選択する、請求項4に記載の負荷分散装置。

請求項6

前記選択手段は、所定の設置拠点に設置されている前記複数の中継装置の各々の負荷が、予め定められた閾値を超えている場合、前記所定の設置拠点とは異なる設置拠点に設置されている前記複数の中継装置のうち、予め定められた閾値以下である中継装置を選択する、請求項1乃至4のいずれか一項に記載の負荷分散装置。

請求項7

請求項1ないし6のうちいずれか1項に記載の負荷分散装置に接続される前記複数の中継装置におけるいずれかの中継装置として使用される中継装置。

請求項8

端末が行う通信を中継する複数の中継装置及び前記端末にネットワークを介して接続される負荷分散装置における負荷分散方法であって、前記複数の中継装置の各々を識別する中継装置識別子と、前記複数の中継装置の各々の設置拠点を示す設置拠点情報と、前記複数の中継装置の各々の負荷を示す負荷情報とを記憶手段に記憶する記憶ステップと、前記設置拠点情報又は前記負荷情報に基づいて、前記端末が行う通信を中継する中継装置を前記複数の中継装置から選択する選択ステップと、前記選択ステップにより選択された中継装置の中継装置識別子を、前記端末に送信する送信ステップと、を有する負荷分散方法。

請求項9

端末が行う通信を中継する複数の中継装置及び前記端末にネットワークを介して接続される負荷分散装置におけるプログラムであって、負荷分散装置に、前記複数の中継装置の各々を識別する中継装置識別子と、前記複数の中継装置の各々の設置拠点を示す設置拠点情報と、前記複数の中継装置の各々の負荷を示す負荷情報とを記憶手段に記憶する記憶ステップと、前記設置拠点情報又は前記負荷情報に基づいて、前記端末が行う通信を中継する中継装置を前記複数の中継装置から選択する選択ステップと、前記選択ステップにより選択された中継装置の中継装置識別子を、前記端末に送信する送信ステップと、を実行させるためのプログラム。

技術分野

0001

本発明は、負荷分散装置中継装置負荷分散方法及びプログラムに関する。

背景技術

0002

2つの端末の間で直接通信を行うP2P通信技術が知られている。ここで、P2P通信技術を用いて端末間で通信を行う場合、端末が接続されているネットワークの構成によっては端末間で直接通信することができない場合がある。例えば、2つの端末がそれぞれ異なるプライベートネットワークに属している場合、NAT(Network Address Translation)の仕様によってはパケット破棄されてしまい、端末間で直接通信をすることが出来ない。

0003

このような場合にP2P通信を可能とするため、パブリックネットワーク上に中継装置を設置し、端末間で行われるP2P通信を、中継装置を介して中継する技術が存在する。

0004

しかしながら、端末間で映像又は音声のP2P通信を行う場合は一般的に大きな通信帯域が必要になる。従って、中継装置を介して映像又は音声のP2P通信を中継する場合は、中継装置の処理負荷が大きくなってしまう。さらに、中継装置の設置場所によっては、通信経路が長くなることで通信の遅延が大きくなり、P2P通信の長所であるリアルタイム性が損なわれることになる。

0005

ここで、サーバの処理負荷の増加に対応する技術として、端末からのリクエストに対して、ハッシュ関数により算出された仮想ID(Identifier)に基づいて複数のサーバのいずれかにリクエストを振り分けることで負荷分散を行う負荷分散技術がある(例えば、特許文献1参照)。

先行技術

0006

特許第5544524号公報

発明が解決しようとする課題

0007

しかしながら、従来の負荷分散技術では、P2P通信の長所であるリアルタイム性を損なわないようにするために、中継装置の設置場所を考慮して負荷分散を行うことはできていなかった。また、映像又は音声のP2P通信が行われる場合に要求される、中継装置の処理負荷を考慮した負荷分散を行うことはできていなかった。

0008

開示の技術は上記に鑑みてなされたものであって、中継装置の設置場所又は処理負荷を考慮して適切な負荷分散を可能とする技術を提供することを目的とする。

課題を解決するための手段

0009

開示の技術は、端末が行う通信を中継する複数の中継装置及び前記端末にネットワークを介して接続される負荷分散装置であって、
前記複数の中継装置の各々を識別する中継装置識別子と、前記複数の中継装置の各々の設置拠点を示す設置拠点情報と、前記複数の中継装置の各々の負荷を示す負荷情報とを記憶する記憶手段と、
前記設置拠点情報又は前記負荷情報に基づいて、前記端末が行う通信を中継する中継装置を前記複数の中継装置から選択する選択手段と、
前記選択手段により選択された中継装置の中継装置識別子を、前記端末に送信する送信手段と、
を有する負荷分散装置を提供する。

発明の効果

0010

開示の技術によれば、中継装置の設置場所又は処理負荷を考慮して適切な負荷分散を可能とする技術を提供することができる。

図面の簡単な説明

0011

第一の実施の形態に係る通信システムの構成の一例を示す図である。
第一の実施の形態に係る負荷分散装置のハードウェア構成の一例を示す図である。
第一の実施の形態に係る負荷分散装置のソフトウェア構成の一例を示す図である。
中継装置情報テーブルの一例を示す図である。
負荷管理情報テーブルの一例を示す図である。
第一の実施の形態に係る中継装置のソフトウェア構成の一例を示す図である。
第一の実施の形態に係る中継装置を選択する処理手順の一例を示すフローチャートである。
第一の実施の形態に係る通信システムの処理手順の一例を示すシーケンス図である。
第一の実施の形態に係る中継装置を増設する処理手順の一例を示すフローチャートである。
第一の実施の形態に係る中継装置を減設する処理手順の一例を示すフローチャートである。
第一の実施の形態に係る中継装置を選択する処理手順(変形例1)の一例を示すフローチャートである。
第一の実施の形態に係る中継装置を選択する処理手順(変形例2)の一例を示すフローチャートである。
対象エリア管理テーブルの一例を示す図である。
第二の実施の形態に係る中継装置を選択する処理手順の一例を示すフローチャートである。
特定端末管理テーブルの一例を示す図である。
第三の実施の形態に係る中継装置を選択する処理手順の一例を示すフローチャートである。

実施例

0012

[第一の実施の形態]
以下、図面を参照して実施の形態について説明する。各図面において、同一構成部分には同一符号を付し、重複した説明を省略する場合がある。

0013

なお、以下の説明においてはWebRTC(Web Real-Time Communication)技術によるP2P通信を例として説明するが、第一の実施の形態に係る通信システムは、WebRTC以外の技術を用いたP2P通信にも適用することができる。また、第一の実施の形態に係る通信システムは、P2P通信以外の通信にも適用することができる。

0014

概要
図1は、第一の実施の形態に係る通信システムの構成の一例を示す図である。第一の実施の形態に係る通信システムは、サービス提供装置10と、負荷分散装置(20a、20b、20c)と、中継装置(30a1、30a2、30b1、30b2、30c1、30c2)と、端末(40a、40b、40c)と、NAT(60a、60b、60c)とを有する。

0015

以下の説明において、負荷分散装置(20a、20b、20c)のうち任意の負荷分散装置は「負荷分散装置20」と表す。中継装置(30a1、30a2、30b1、30b2、30c1、30c2)のうち任意の中継装置は「中継装置30」と表す。端末(40a、40b、40c)のうち任意の端末は「端末40」と表す。NAT(60a、60b、60c)のうち任意のNATは「NAT60」と表す。

0016

負荷分散装置(20a、20b、20c)と、中継装置(30a1、30a2、30b1、30b2、30c1、30c2)と、NAT(60a、60b、60c)とは、それぞれ外部ネットワーク50に接続されている。また、端末40a及びNAT60aは内部ネットワーク70aに接続されており、端末40b及びNAT60bは内部ネットワーク70bに接続されており、端末40c及びNAT60cは内部ネットワーク70cに接続されている。また、負荷分散装置(20a、20b、20c)は、専用のネットワークにより互いに通信できるように接続されている。

0017

負荷分散装置20aと中継装置(30a1、30a2)とは、同一の拠点Aに設置されている。同様に、負荷分散装置20bと中継装置(30b1、30b2)とは、同一の拠点Bに設置されており、負荷分散装置20cと中継装置(30c1、30c2)とは、同一の拠点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の処理負荷を表す指標であれば他の指標を用いるようにしてもよい。

0058

図3戻り説明を続ける。

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号の全内容を本願に援用する。

0149

10サービス提供装置
20負荷分散装置
30中継装置
40端末
50外部ネットワーク
60 NAT
70内部ネットワーク
201通信手段
202 記憶手段
203 選択手段
204負荷管理手段
205増減設手段
206 同期手段
401中継手段
402負荷計測手段

ページトップへ

この技術を出願した法人

この技術を発明した人物

ページトップへ

関連する挑戦したい社会課題

関連する公募課題

ページトップへ

技術視点だけで見ていませんか?

この技術の活用可能性がある分野

分野別動向を把握したい方- 事業化視点で見る -

(分野番号表示ON)※整理標準化データをもとに当社作成

ページトップへ

おススメ サービス

おススメ astavisionコンテンツ

新着 最近 公開された関連が強い技術

  • オムロン株式会社の「 通信システム、通信装置および通信方法」が 公開されました。( 2020/02/13)

    【課題】要求レベルが異なる種類のデータを、同一のネットワーク上でそれぞれの要求を満たしつつ伝送させる。【解決手段】通信装置(200A〜200H、100、400)は、他の通信装置との間で互いに時刻同期し... 詳細

  • 三菱電機株式会社の「 データダイオード装置」が 公開されました。( 2020/02/13)

    【課題】セキュリティレベルの高いデータダイオード装置を提供する。【解決手段】スレーブ装置10が接続されたデータダイオード送信部100と、マスター装置20が接続されたデータダイオード受信部200とを有し... 詳細

  • 日本電信電話株式会社の「 転送装置、転送システム、転送方法及びプログラム」が 公開されました。( 2020/02/13)

    【課題】集中制御装置と転送装置群との接続における単一障害点を回避できると共にトラフィックを複数経路に分散でき、スイッチクラスタ内の障害時に迂回経路を選択する。【解決手段】転送装置61a〜61dは、転送... 詳細

この 技術と関連性が強い人物

関連性が強い人物一覧

この 技術と関連する社会課題

関連する挑戦したい社会課題一覧

この 技術と関連する公募課題

関連する公募課題一覧

astavision 新着記事

サイト情報について

本サービスは、国が公開している情報(公開特許公報、特許整理標準化データ等)を元に構成されています。出典元のデータには一部間違いやノイズがあり、情報の正確さについては保証致しかねます。また一時的に、各データの収録範囲や更新周期によって、一部の情報が正しく表示されないことがございます。当サイトの情報を元にした諸問題、不利益等について当方は何ら責任を負いかねることを予めご承知おきのほど宜しくお願い申し上げます。

主たる情報の出典

特許情報…特許整理標準化データ(XML編)、公開特許公報、特許公報、審決公報、Patent Map Guidance System データ