(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023081226
(43)【公開日】2023-06-09
(54)【発明の名称】通信管理装置、通信システム、通信管理方法、及びプログラム
(51)【国際特許分類】
H04L 47/24 20220101AFI20230602BHJP
【FI】
H04L47/24
【審査請求】未請求
【請求項の数】10
【出願形態】OL
(21)【出願番号】P 2021195000
(22)【出願日】2021-11-30
(71)【出願人】
【識別番号】000006747
【氏名又は名称】株式会社リコー
(74)【代理人】
【識別番号】100107766
【弁理士】
【氏名又は名称】伊東 忠重
(74)【代理人】
【識別番号】100070150
【弁理士】
【氏名又は名称】伊東 忠彦
(72)【発明者】
【氏名】堀内 岳志
【テーマコード(参考)】
5K030
【Fターム(参考)】
5K030GA11
5K030HC01
5K030JA10
5K030LB02
5K030LC05
(57)【要約】
【課題】複数の端末装置がウェブブラウザのAPIを利用してコンテンツデータを送受信する通信システムにおいて、ネットワークトポロジ情報に基づいて帯域制御を最適化できるようにする。
【解決手段】通信管理装置は、中継装置を介して端末装置が他の端末装置にコンテンツデータを送信する第1の通信を管理するように構成されている通信管理部と、前記端末装置から、前記中継装置を介さずに前記他の端末装置と第2の通信が可能であるかを示す判定結果を受信するように構成されている受信部と、前記判定結果に基づいて、前記端末装置と前記第2の通信が可能な前記他の端末装置における前記第1の通信の通信帯域を制限するように構成されている制限部と、を有する。
【選択図】
図5
【特許請求の範囲】
【請求項1】
中継装置を介して端末装置が他の端末装置にコンテンツデータを送信する第1の通信を管理するように構成されている通信管理部と、
前記端末装置から、前記中継装置を介さずに前記他の端末装置と第2の通信が可能であるかを示す判定結果を受信するように構成されている受信部と、
前記判定結果に基づいて、前記端末装置と前記第2の通信が可能な前記他の端末装置における前記第1の通信の通信帯域を制限するように構成されている制限部と、
を有する、通信管理装置。
【請求項2】
前記制限部は、前記端末装置と前記第2の通信が可能な前記他の端末装置における前記第1の通信の通信帯域の制限を前記中継装置に指示する、請求項1に記載の通信管理装置。
【請求項3】
前記制限部は、前記端末装置と前記第2の通信が可能な前記他の端末装置における前記第1の通信の送信帯域を制限する、請求項1又は2に記載の通信管理装置。
【請求項4】
請求項1乃至3のいずれか一項に記載の通信管理装置と、端末装置とを含む通信システムであって、
前記端末装置は、
中継装置を介して他の端末装置にコンテンツデータを送信する第1の通信を行うように構成されている第1の通信部と、
前記中継装置を介さずに前記他の端末装置と第2の通信を行うように構成されている第2の通信部と、
前記他の端末装置と前記第2の通信が可能であるかを示す判定結果を前記通信管理装置に通知するように構成されている通知部と、
を有する、通信システム。
【請求項5】
前記端末装置、及び前記他の端末装置は、ウェブブラウザ、又はウェブブラウザの機能を有するアプリケーションを利用して、前記第1の通信、及び前記第2の通信を行う、請求項4に記載の通信システム。
【請求項6】
前記第2の通信部は、WebRTCのAPIを利用して前記第2の通信を行う、請求項4又は5に記載の通信システム。
【請求項7】
前記第2の通信は、前記他の端末装置と一対一でデータを送受信するP2P通信である、請求項4乃至6のいずれか一項に記載の通信システム。
【請求項8】
前記端末装置は、撮影した映像を前記他の端末装置に送信する撮影装置である、請求項4乃至7のいずれか一項に記載の通信システム。
【請求項9】
中継装置を介して端末装置が他の端末装置にコンテンツデータを送信する第1の通信を管理する通信管理処理と、
前記端末装置から、前記中継装置を介さずに前記他の端末装置と第2の通信が可能であるかを示す判定結果を受信する受信処理と、
前記判定結果に基づいて、前記端末装置と前記第2の通信が可能な前記他の端末装置における前記第1の通信の通信帯域を制限する制限処理と、
をコンピュータが実行する、通信管理方法。
【請求項10】
中継装置を介して端末装置が他の端末装置にコンテンツデータを送信する第1の通信を管理する通信管理処理と、
前記端末装置から、前記中継装置を介さずに前記他の端末装置と第2の通信が可能であるかを示す判定結果を受信する受信処理と、
前記判定結果に基づいて、前記端末装置と前記第2の通信が可能な前記他の端末装置における前記第1の通信の通信帯域を制限する制限処理と、
をコンピュータに実行させる、プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、通信管理装置、通信システム、通信管理方法、及びプログラムに関する。
【背景技術】
【0002】
通信ネットワークに接続する複数の端末装置が、ウェブブラウザのAPI(Application Programming Interface)を利用して、例えば、映像、又は音声等のコンテンツデータを、中継装置を介して送受信する通信システムが普及している。
【0003】
また、QoS(Quality of Service)をサポートする能力を欠いているウェブクライアントでQosを実施するために、端末装置からルータに命令してQoSを実施する技術が知られている(例えば、特許文献1参照)。
【発明の概要】
【発明が解決しようとする課題】
【0004】
ウェブブラウザでは、例えば、セキュリティ又はプライバシー等の問題で実行できるAPIが制限されているため、例えば、データリンク層の情報取得、又は近隣の端末装置の情報等を取得することができない。従って、ウェブブラウザのAPIを利用してコンテンツデータを送受信する従来の通信システムでは、ネットワークトポロジ情報に基づいて帯域制御を最適化することができないという問題がある。
【0005】
なお、特許文献1に開示された技術では、端末装置からの命令に応じてQoS制御を実施する特別なルータ(IP中継装置)を用いて、ネットワークトポロジ情報によらずに帯域制御を実現している。
【0006】
本発明の一実施形態は、上記の問題点に鑑みてなされたものであって、複数の端末装置がウェブブラウザのAPIを利用してコンテンツデータを送受信する通信システムにおいて、ネットワークトポロジ情報に基づいて帯域制御を最適化できるようにする。
【課題を解決するための手段】
【0007】
上記の課題を解決するため、一実施形態に係る通信管理装置は、中継装置を介して端末装置が他の端末装置にコンテンツデータを送信する第1の通信を管理するように構成されている通信管理部と、前記端末装置から、前記中継装置を介さずに前記他の端末装置と第2の通信が可能であるかを示す判定結果を受信するように構成されている受信部と、前記判定結果に基づいて、前記端末装置と前記第2の通信が可能な前記他の端末装置における前記第1の通信の通信帯域を制限するように構成されている制限部と、を有する。
【発明の効果】
【0008】
本発明の一実施形態によれば、複数の端末装置がウェブブラウザのAPIを利用してコンテンツデータを送受信する通信システムにおいて、ネットワークトポロジ情報に基づいて帯域制御を最適化できるようになる。
【図面の簡単な説明】
【0009】
【
図1】一実施形態に係る通信システムのシステム構成の例を示す図である。
【
図2】一実施形態に係るウェブブラウザによるアクセス制限について説明するための図である。
【
図3】一実施形態に係る端末装置(撮影装置)のハードウェア構成の例を示す図である。
【
図4】一実施形態に係るコンピュータのハードウェア構成の例を示す図である。
【
図5】第1の実施形態に係る通信システムの機能構成の例を示す図である。
【
図6】第1の実施形態に係る接続管理情報の例を示す図である。
【
図7A】第1の実施形態に係る第1の通信処理の例を示すシーケンス図(1)である。
【
図7B】第1の実施形態に係る第1の通信処理の例を示すシーケンス図(2)である。
【
図8】第1の実施形態に係る帯域制限処理の例を示すシーケンス図である。
【
図9】第2の実施形態に係る通信システムの機能構成の例を示す図である。
【
図10】第2の実施形態に係る第1の通信処理の例を示すシーケンス図である。
【
図11】第2の実施形態に係る帯域制限処理の例を示すシーケンス図である。
【発明を実施するための形態】
【0010】
以下、本発明の実施形態について、図面を参照しながら詳細に説明する。
<システム構成>
図1は、一実施形態に係る通信システムのシステム構成の例を示す図である。通信システム1は、拠点AのユーザAが、端末装置(撮影装置)100aと端末装置(情報端末)100bとを、モバイルルータ等のルータ101に接続し、通信ネットワーク2を介して、他の拠点Bの端末装置(情報端末)100cと通信するシステムである。例えば、拠点BのユーザBは、管理システム10によって提供される遠隔通信等の所定のイベントに参加することによって、遠隔地である拠点Aから配信される映像等の撮影画像を、拠点Bにおいて表示させることで、拠点Aの状況をリアルタイムに閲覧することができる。ここで、所定のイベントとは、管理システム10を介した遠隔拠点間の通信によって実現される遠隔会議、遠隔授業、遠隔診療、打合せもしくは相談、又は遠隔地に対する点検、監視もしくは巡視等を含む。なお、以下の説明において、端末装置100a、100b、100cのうち、任意の端末装置を示す場合、「端末装置100」を用いる。
【0011】
図1の例では、通信システム1は、拠点Aに位置する端末装置100a、100b、拠点Bに位置する端末装置100c、通信管理装置11、中継装置12、及びファイルサーバ13等を含む。なお、通信管理装置11、中継装置12、及びファイルサーバ13は、1つの管理システム10に含まれていてもよい。また、ファイルサーバ13は、通信システム1の外部のクラウドサービス等を利用するものであってもよい。
【0012】
端末装置100a~100cは、通信ネットワーク2を介して、通信管理装置11、中継装置12、及びファイルサーバ13等と通信可能である。通信ネットワーク2は、例えば、インターネット、移動体通信網、LAN(Local Area Network)等によって構築されている。なお、通信ネットワーク2には、有線通信だけでなく、3G(3rd Generation)、4G(4th Generation)、5G(5th Generation)、Wi-Fi(Wireless Fidelity)(登録商標)、WiMAX(Worldwide Interoperability for Microwave Access)またはLTE(Long Term Evolution)等の無線通信によるネットワークが含まれてもよい。
【0013】
端末装置(撮影装置)100aは、拠点AのユーザAが利用する撮影装置であり、例えば、拠点A内の被写体、又は風景等を撮影した撮影画像等のコンテンツデータを、管理システム10を介してイベントに参加する他の端末装置100b、100c等へ送信する。なお、端末装置(撮影装置)100aが送信するコンテンツデータは、動画であっても静止画であってもよく、動画と静止画の両方であってもよい。また、撮影画像は、画像とともに音声を含んでもよい。
【0014】
ここで、端末装置(撮影装置)100aは、管理システム10によって提供されるイベントに参加し、主にコンテンツデータを送信する送信メイン端末の一例である。送信メイン端末は、撮影装置に限られず、例えば、ビデオ会議端末、IWB(Interactive White Board:相互通信が可能な電子式の黒板機能を有する白板)または配信拠点内を移動するロボット等の移動体であってもよい。
【0015】
また、端末装置(撮影装置)100aが設置される拠点Aは、例えば、事業所、建設現場、変電所、農場、田畑、農園、耕地もしくは災害現場等の屋外の拠点、または学校、倉庫、商業施設、病院もしくは介護施設等の屋内の拠点であってもよい。すなわち、端末装置(撮影装置)100aが設置される拠点Aは、拠点Bに存在するユーザとの間で、遠隔での会議または点検等のイベントを実行したいニーズが存在する拠点であればよい。
【0016】
端末装置(情報端末)100bは、拠点AのユーザAが利用する、例えば、PC(Personal Computer)、スマートフォン、タブレット端末、又はウェアラブル端末等の情報端末である。ユーザAは、端末装置(情報端末)100bを用いて、端末装置(撮影装置)100aが送信する撮影画像等を表示するとともに、端末装置(情報端末)100cと、映像又は音声等のコンテンツデータを送受信することにより、ユーザBと対話することができる。なお、端末装置(情報端末)100bは、管理システム10によって提供されるイベントに参加し、主にコンテンツデータを受信する受信メイン端末の一例である。
【0017】
端末装置(情報端末)100cは、拠点BのユーザBが利用する、例えば、PC、スマートフォン、タブレット端末、又はウェアラブル端末等の情報端末である。ユーザBは、端末装置(情報端末)100cを用いて、端末装置(撮影装置)100aが送信する撮影画像等を表示するとともに、端末装置(情報端末)100bと、映像又は音声等のコンテンツデータを送受信することにより、ユーザAと対話することができる。なお、端末装置(情報端末)100cは、管理システム10によって提供されるイベントに参加し、例えば、単独でコンテンツデータを送受信する通常端末の一例である。また、通常端末の数は、2つ以上の他の数であってもよい。
【0018】
端末装置(情報端末)100b、100cは、汎用の情報端末に限られず、例えば、HMD(head mount display)、またはIWB(Interactive White Board:相互通信が可能な電子式の黒板機能を有する白板)等であってもよい。
【0019】
通信管理装置11は、例えば、コンピュータの構成を有する情報処理装置、又は複数のコンピュータを含むシステムである。通信管理装置11は、例えば、複数の端末装置100の間でコンテンツデータを送受信する通信(イベント)の呼制御、及び端末装置100の認証認可等を行う。通信管理装置11は、例えば、ウェブブラウザ上でリアルタイムコミュニケーションを可能にするWebRTC(Web Real-Time Communication)のシグナリングサーバの機能を有している。
【0020】
中継装置12は、例えば、コンピュータの構成を有する情報処理装置、又は複数のコンピュータを含むシステムである。中継装置12は、複数の端末装置100の間でコンテンツデータを送受信する第1の通信を中継する。例えば、中継装置12は、端末装置(撮影装置)100aが送信するコンテンツデータを、同じ通信(イベント)に参加する他の端末装置100b、100cに転送する。同様に、中継装置12は、端末装置100b、110cが送信するコンテンツデータを、同じ通信(イベント)に参加する他の端末装置100に転送する。中継装置12は、例えば、WebRTCのSFU(Selective Forwarding Unit)の機能を有している。
【0021】
ファイルサーバ13は、例えば、コンピュータの構成を有する情報処理装置、又は複数のコンピュータを含むシステムである。ファイルサーバ13は、端末装置100のウェブブラウザで実行できるHTML(Hyper Text Markup Language)ファイル、又はJavaScript(登録商標)等のWebアプリケーションを、端末装置100に提供する。
【0022】
図1に示す通信システム1において、拠点Aと拠点Bは、それぞれ、別のNAT(Network Address Translation)ルータ等によりプライベートネットワーク(又はローカルネットワーク)を構成しているものとする。ここで、NATルータは、プライベートIPアドレスをパブリックIPアドレスに変換するネットワーク機器である。また、通信管理装置11、中継装置12、及びファイルサーバ13は、それぞれパブリックIPアドレスを有しているものとする。
【0023】
上記の構成により、端末装置100aは、中継装置12を介して、他の端末装置100b、100cと、コンテンツデータを送受信する第1の通信が可能である。また、端末装置100aは、通信管理装置11を利用して、同じプライベートネットワーク内にある他の端末装置100bと、P2P(Peer to Peer)で直接通信する第2の通信が可能である。一方、端末装置100aは、他のプライベートネットワーク内にある他の端末装置100cと、P2Pで直接通信する第2の通信を行うことができない。
【0024】
また、本実施形態では、端末装置100は、ウェブブラウザ、又はウェブブラウザの機能を有するアプリケーション(モバイルアプリケーション等)を利用して、第1の通信、及び第2の通信を行う。
【0025】
図2は、一実施形態に係るウェブブラウザによるアクセス制限について説明するための図である。端末装置100が実行するウェブブラウザ200は、ファイルサーバ13から、例えば、HTTP(Hyper Text Transfer Protocol)で、JavaScript(以下、JSと呼ぶ)のファイルを受信し、一時記憶領域に記憶する。また、ウェブブラウザ200のJSインタプリタ202は、一時記憶領域に記憶したJSのコードを実行する。JSインタプリタ202は、ウェブブラウザが提供しているAPI(Application Programming Interface)(以下、ブラウザAPIと呼ぶ)を利用して、ネットワークI/F(Interface)211、又はカメラ212等のデバイスにアクセスする。
【0026】
しかし、ウェブブラウザ200では、例えば、セキュリティ又はプライバシー等を保護するため、例えば、ネットワークI/F211又はカメラ212等のデバイスへのアクセスが制限されている。従って、JSインタプリタ202が実行するプログラム(JSのコード等)は、ブラウザAPI203を利用して、例えば、データリンク層の情報取得、又は近隣の端末装置の情報等を取得することができない。従って、ウェブブラウザ200のブラウザAPI203を利用して第1の通信を行う従来の通信システムでは、第1の通信の帯域制御を最適化することには困難を伴っていた。
【0027】
例えば、特許文献1に開示された技術では、端末装置からの命令に応じてQoS制御を実施する特別な中継装置を用いて、ネットワークトポロジ情報によらずに帯域制御を実現している。しかし、この方法では、端末装置からの命令に応じてQoS制御を実施する特別な中継装置が必要になるという問題がある。
【0028】
そこで、本実施形態に係る通信管理装置11は、ウェブブラウザ200のブラウザAPI203を利用して、第1の通信を行う通信システム1において、ネットワークトポロジ情報に基づいて、第1の通信の帯域制御を最適化できるようにする。
【0029】
図1に示したシステム構成において、端末装置100aが撮影した映像を、拠点Bにできるだけ高品質で届けるために、同じルータ101に接続する他の端末装置100bの通信帯域をできるだけ制限したいという要求がある。
【0030】
そこで、本実施形態に係る端末装置100aは、第1の通信を行っている他の端末装置100b、100cと、中継装置12を介さずに、第2の通信が可能であるか否かを判定し、判定結果を通信管理装置11に送信する。
【0031】
また、通信管理装置11は、端末装置100aが、第1の通信を行っている他の端末装置100bと第2の通信を行える場合、端末装置100bが、端末装置100aと同じプライベートネットワーク内にあり、NATルータ等を共有していると判断する。一方、通信管理装置11は、端末装置100aが、第1の通信を行っている他の端末装置100cと第2の通信を行えない場合、端末装置100cが、端末装置100aと異なるプライベートネットワーク内にあり、NATルータを共有していないと判断する。このように、本実施形態に係る通信管理装置11は、端末装置100aが送信する判定結果に基づいて、ネットワーク構成(ネットワークトポロジ)を判断する機能を有している。
【0032】
さらに、通信管理装置11は、端末装置100aと同じプライベートネットワーク内にあり、NATルータを共有している端末装置100bの第1の通信の通信帯域の制限を、第1の通信を中継する中継装置12に指示する。好適な一例として、通信管理装置11は、端末装置100bの第1の通信の送信帯域の制限を、中継装置12に指示してもよい。
【0033】
これにより、
図1に示したシステム構成において、端末装置100aが撮影した映像を、拠点Bにできるだけ高品質で届けるために、同じルータ101に接続する他の端末装置100bの通信帯域を制限することができる。
【0034】
以上、本実施形態によれば、複数の端末装置100がウェブブラウザのAPIを利用してコンテンツデータを送受信する通信システム1において、ネットワークトポロジ情報に基づいて帯域制御を最適化できるようになる。従って、本実施形態に係る通信システム1では、特許文献1に開示された技術のように、端末装置からの命令に応じてQoS制御を実施する特別な中継装置が不要になる。
【0035】
なお、
図1に示した通信システム1のシステム構成は一例である。例えば、端末装置100aは、コンテンツデータを他の端末装置100b、100cに配信するものであれば、必ずしも撮影機能を有していなくても良い。例えば、端末装置100aは、外部から入力された撮影画像、又はキャプチャ画像等のコンテンツデータを、他の端末装置100b、100cに配信するIWB(電子黒板)等であっても良い。また、管理システム10は、物理マシン(コンピュータ)に限られず、クラウド上の仮想マシン等で実行するプログラムによって実現してもよい。
【0036】
<ハードウェア構成>
続いて、実施形態に係る通信システム1を構成する各装置のハードウェア構成について説明する。
【0037】
(端末装置(撮影装置)のハードウェア構成)
図3は、一実施形態に係る端末装置(撮影装置)のハードウェア構成の例を示す図である。ここでは、端末装置(撮影装置)100aが、被写体や風景等を撮影して全天球画像を取得する全天球撮影装置である場合の例を示す。なお、端末装置(撮影装置)100aは、通常のデジタルカメラまたはスマートフォン等の通常の平面画像を取得するカメラであってもよいし、所定値以上の画角を有する広角画像を取得可能な広角カメラであってもよい。また、以下では、端末装置(撮影装置)100aは、二つの撮像素子を使用した全天球(全方位)撮影装置とするが、撮像素子は二つ以上いくつでもよい。また、必ずしも全方位撮影専用の装置である必要はなく、通常のデジタルカメラやスマートフォン等に後付けの全方位撮影ユニットを取り付けることで、実質的に端末装置(撮影装置)100aと同じ機能を有するようにしてもよい。
【0038】
図3に示されているように、端末装置(撮影装置)100aは、撮像ユニット301、画像処理ユニット304、撮像制御ユニット305、マイク308、音処理ユニット309、CPU(Central Processing Unit)311、ROM(Read Only Memory)312、SRAM(Static Random Access Memory)313、DRAM(Dynamic Random Access Memory)314、操作部315、入出力I/F(Interface)316、近距離通信回路317、近距離通信回路317のアンテナ317a、電子コンパス318、ジャイロセンサ319、加速度センサ320およびネットワークI/F321等を有する。
【0039】
このうち、撮像ユニット301は、各々が半球画像を結像するための180°以上の画角を有する広角レンズ(いわゆる魚眼レンズ)302a、302b(以下区別する必要のないときは、レンズ302と称する)を有している。また、撮像ユニット301は、広角レンズ302a、302bに対応させて設けられている二つの撮像素子303a、303bを備えている。
【0040】
撮像素子303a、303bは、レンズ302a、302bによる光学像を電気信号の画像データに変換して出力するCMOS(Complementary Metal Oxide Semiconductor)センサ、又はCCD(Charge Coupled Device)センサ等の画像センサを含む。また、撮像素子303a、303bは、画像センサの水平または垂直同期信号や画素クロック等を生成するタイミング生成回路、およびこの撮像素子の動作に必要な種々のコマンドもしくはパラメータ等が設定されるレジスタ群等を含む。
【0041】
撮像ユニット301の撮像素子303a、303bは、各々が画像処理ユニット304とパラレルI/Fバスを介して接続している。一方、撮像ユニット301の撮像素子303a、303bは、それぞれ撮像制御ユニット305とシリアルI/Fバス(I2Cバス等)を介して接続している。画像処理ユニット304、撮像制御ユニット305および音処理ユニット309は、バス310を介してCPU311と接続している。さらに、バス310には、ROM312、SRAM313、DRAM314、操作部315、入出力I/F316、近距離通信回路317、電子コンパス318、ジャイロセンサ319、加速度センサ320およびネットワークI/F321等も接続される。
【0042】
画像処理ユニット304は、撮像素子303a、303bから出力される画像データをパラレルI/Fバスを通して取り込み、それぞれの画像データに対して所定の処理を施した後、これらの画像データを合成処理して正距円筒射影画像のデータを作成する。
【0043】
撮像制御ユニット305は、一般に撮像制御ユニット305をマスタデバイス、撮像素子303a、303bをスレーブデバイスとして、I2Cバスを利用して、撮像素子303a、303bのレジスタ群にコマンド等を設定する。必要なコマンド等は、CPU311から受け取る。また、撮像制御ユニット305は、同じくI2Cバスを利用して、撮像素子303a、303bのレジスタ群のステータスデータ等を取り込み、CPU311に送る。
【0044】
また、撮像制御ユニット305は、操作部315のシャッターボタンが押下されたタイミングで、撮像素子303a、303bに画像データの出力を指示する。端末装置(撮影装置)100aによっては、ディスプレイ(例えば、近距離通信回路317を用いて端末装置(撮影装置)100aと近距離通信を行うスマートフォン等の外部端末のディスプレイ)によるプレビュー表示機能や動画表示に対応する機能を持つ場合もある。この場合は、撮像素子303a、303bからの画像データの出力は、所定のフレームレート(フレーム/分)によって連続して行われる。
【0045】
また、撮像制御ユニット305は、後述するように、CPU311と協働して撮像素子303a、303bの画像データの出力タイミングの同期をとる同期制御手段としても機能する。なお、本実施形態では、端末装置(撮影装置)100aには表示部(ディスプレイ)が設けられていないが、表示部を設けてもよい。マイク308は、音を音(信号)データに変換する。音処理ユニット309は、マイク308から出力される音データをI/Fバスを通して取り込み、音データに対して所定の処理を施す。
【0046】
CPU311は、例えば、ROM312等に予め記憶したプログラムを実行することにより、端末装置(撮影装置)100aの全体の動作を制御するとともに、必要な処理を実行する。ROM312は、CPU311のための種々のプログラムを記憶している。SRAM313およびDRAM314はワークメモリであり、CPU311で実行するプログラムや処理途中のデータ等を記憶する。特にDRAM314は、画像処理ユニット304での処理途中の画像データや処理済みの正距円筒射影画像のデータを記憶する。
【0047】
操作部315は、種々の操作ボタンや電源スイッチ、シャッターボタン、および表示と操作の機能を兼ねたタッチパネル等の総称である。ユーザは、操作部315を操作することで、種々の撮影モードや撮影条件等を入力する。
【0048】
入出力I/F316は、SDカード等の外付けのメディアまたはパーソナルコンピュータ等とのインタフェース回路(USBI/F等)の総称である。入出力I/F316は、無線、有線を問わない。DRAM314に記憶された正距円筒射影画像のデータは、入出力I/F316を介して外付けのメディアに記録されたり、必要に応じて入出力I/F316を介して外部端末(装置)に送信されたりする。
【0049】
近距離通信回路317は、端末装置(撮影装置)100aに設けられたアンテナ317aを介して、NFC(Near Field Communication)、Bluetooth(登録商標)またはWi-Fi等の無線通信によって、外部端末(装置)と通信を行う。近距離通信回路317は、正距円筒射影画像のデータを、外部端末(装置)に送信することができる。
【0050】
電子コンパス318は、地球の磁気から端末装置(撮影装置)100aの方位を算出し、方位情報を出力する。この方位情報は、Exifに沿った関連情報(メタデータ)の一例であり、撮影画像の画像補正等の画像処理に利用される。なお、関連情報は、画像の撮影日時および画像データのデータ容量の各データも含む。また、ジャイロセンサ319は、端末装置(撮影装置)100aの移動に伴う角度の変化(Roll角、Pitch角、Yaw角)を検出するセンサである。角度の変化はExifに沿った関連情報(メタデータ)の一例であり、撮影画像の画像補正等の画像処理に利用される。さらに、加速度センサ320は、三軸方向の加速度を検出するセンサである。
【0051】
端末装置(撮影装置)100aは、加速度センサ320が検出した加速度に基づいて、自装置(端末装置(撮影装置)100a)の姿勢(重力方向に対する角度)を算出する。端末装置(撮影装置)100aは、加速度センサ320を設けることによって、画像補正の精度が向上する。ネットワークI/F321は、ルータ等を介して、インターネット等の通信ネットワーク2を利用したデータ通信を行うためのインタフェースであり、
図2のネットワークI/F211に対応している。
【0052】
(コンピュータのハードウェア構成)
端末装置(情報端末)100b、100cは、一例として、
図3に示すようなコンピュータ400のハードウェア構成を有している。また、通信管理装置11、中継装置12、及びファイルサーバ13等は、一例として、1つ以上のコンピュータ400によって実現される。
【0053】
図4は、一実施形態に係るコンピュータのハードウェア構成の例を示す図である。コンピュータ400は、例えば、
図4に示されるように、CPU401、ROM402、RAM(Random Access Memory)403、HD(Hard Disk)404、HDD(Hard Disk Drive)コントローラ405、ディスプレイ406、外部機器接続I/F(Interface)407、ネットワークI/F408、キーボード409、ポインティングデバイス410、DVD-RW(Digital Versatile Disk Rewritable)ドライブ412、メディアI/F414、音入出力I/F415、スピーカ416、マイク417、カメラ418、及びバスライン419等を備えている。
【0054】
これらのうち、CPU401は、コンピュータ400全体の動作を制御する。ROM402は、例えば、IPL(Initial Program Loader)等のコンピュータ400の起動に用いられるプログラムを記憶する。RAM403は、例えば、CPU401のワークエリア等として使用される。HD404は、例えば、OS(Operating System)、アプリケーション、デバイスドライバ等のプログラムや、各種データを記憶する。HDDコントローラ405は、例えば、CPU401の制御に従ってHD404に対する各種データの読み出し又は書き込みを制御する。
【0055】
ディスプレイ406は、例えば、カーソル、メニュー、ウィンドウ、文字、又は画像などの各種情報を表示する。なお、ディスプレイ406は、コンピュータ400の外部に設けられていても良い。外部機器接続I/F407は、コンピュータ400に様々な外部装置を接続する、例えば、USB(Universal Serial Bus)等のインタフェースである。ネットワークI/F408は、例えば、通信ネットワーク2等を利用して、他の装置と通信するためのインタフェースである。なお、コンピュータ400が端末装置100b、100cである場合、ネットワークI/F408は、
図2のネットワークI/F211に対応している。
【0056】
キーボード409は、文字、数値、各種指示などの入力のための複数のキーを備えた入力手段の一種である。ポインティングデバイス410は、各種指示の選択や実行、処理対象の選択、カーソルの移動などを行なう入力手段の一種である。なお、キーボード409、及びポインティングデバイス410は、コンピュータ400の外部に設けられていても良い。DVD-RWドライブ412は、着脱可能な記憶媒体の一例としてのDVD-RW411に対する各種データの読み出し又は書き込みを制御する。なお、DVD-RW411は、DVD-RWに限らず、他の記憶媒体であっても良い。
【0057】
メディアI/F414は、フラッシュメモリ等のメディア413に対するデータの読み出し又は書き込み(記憶)を制御する。音入出力I/F415は、CPU401の制御に従ってスピーカ416及びマイク417との間で音信号の入出力を処理する回路である。スピーカ416は、電気信号を物理振動に変えて音楽や音声などの音を生み出す内蔵型のデバイスである。マイク417は、音を電気信号に変える内蔵型のデバイスである。バスライン419は、上記の各構成要素を電気的に接続するためのアドレスバス、データバス及び各種の制御信号等を含む。
【0058】
なお、
図4に示したコンピュータ400のハードウェア構成は一例である。コンピュータ400は、例えば、CPU401、ROM402、RAM403、ネットワークI/F408、及びバスライン419等を有していれば、他は任意の構成であって良い。
【0059】
<機能構成>
続いて、本実施形態に係る通信システム1の機能構成について説明する。
【0060】
[第1の実施形態]
図5は、第1の実施形態に係る通信システムの機能構成の例を示す図である。なお、
図5に示した通信システム1の機能構成は、
図1に示した各装置の機能構成のうち、後述する処理に関連するものを示している。
【0061】
(通信管理装置の機能構成)
通信管理装置11は、コンピュータ400が所定のプログラムを実行することにより、例えば、送受信部501、認証部502、通信管理部503、受信部504、制限部505、情報管理部506、及び記憶部507等を実現している。なお、上記の各機能構成のうち、少なくとも一部は、ハードウェアによって実現されるものであっても良い。
【0062】
送受信部501は、例えば、ネットワークI/F408等を用いて、通信管理装置11を通信ネットワーク2に接続し、他の装置との間でデータ、又は情報等を送受信する送受信処理を実行する。認証部502は、通信管理装置11にアクセスする端末装置100、又はユーザ等を認証認可する認証処理を実行する。
【0063】
通信管理部503は、複数の端末装置100が、中継装置12を介して、映像、又は音等のコンテンツデータを送受信する第1の通信を管理する通信管理処理を実行する。例えば、通信管理部503は、
図6に示すような通信管理情報508を用いて、第1の通信を管理する。
【0064】
図6は、第1の実施形態に係る通信管理情報の例を示す図である。
図6の例では、通信管理情報508は、項目として、「ID」、「入室可能RoomID」、「端末用途」、及び「パスワード」等の情報を含む。「ID」は、例えば、端末装置100、端末装置100が備えるウェブブラウザ200、又はウェブブラウザの機能を有するアプリケーション等を識別する識別情報である。ここでは、一例として、「ID」が、端末装置100を識別する識別情報であるものとして、以下の説明を行う。
【0065】
「入室可能RoomID」は、端末装置100が参加可能な通信セッション(入室可能なRoom)を識別する識別情報(以下、RoomIDと呼ぶ)である。例えば、
図6の例では、ID「B0001」の端末装置100(例えば、端末装置100a)が、RoomID「Room1」、「Room2」、及び「Room3」のRoom(チャットルーム等)に参加可能であることを示している。また、ID「B0002」の端末装置100(例えば、端末装置100b)が、RoomID「Room1」、「Room4」、及び「Room5」のRoomに参加可能であることを示している。同様に、ID「B0003」の端末装置100(例えば、端末装置100c)が、RoomID「Room1」のRoomに参加可能であることを示している。
【0066】
「端末用途」は、例えば、端末装置100が、前述した送信メイン端末(例えば、端末装置100a)であるか、受信メイン端末(例えば、端末装置100b)であるか、通常端末(例えば、端末装置100c)であるかを示す情報である。「パスワード」は、端末装置100を認証するための認証情報である。例えば、認証部502は、通信管理装置11に接続する端末装置100のIDとパスワードの組み合わせが、通信管理情報508に記憶されている場合、端末装置100によるアクセスを許可する。なお、パスワードは、端末装置100を認証するための認証情報の一例である。例えば、端末装置100を認証するための認証情報は、電子証明書、アクセストークン、又は生体情報等の他の認証情報であっても良い。
【0067】
また、通信管理部503は、WebRTCのシグナリングサーバとして、ICE(Interactive Connectivity Establishment)プロトコル等により、端末装置100間でP2P通信を行う第2の通信の接続制御も行う。ここでICEプロトコルは、offer、answer、及びicecandidate等のメッセージによって交換された接続候補に対して、接続候補の優先度の設定、及び接続確認等を行う一連のプロトコルである。
【0068】
受信部504は、端末装置100から、中継装置12を介さずに他の端末装置100と第2の通信が可能であるかを示す判定結果を受信する。例えば、受信部504は、端末装置100aが、他の端末装置100b、100cと第1の通信を行っているときに、他の端末装置100b、100cと第2の通信が可能であるか否かを示す判定結果を受信する。
【0069】
制限部505は、受信部504が受信した判定結果に基づいて、判定結果を送信した端末装置100と第2の通信が可能な他の端末装置100における第1の通信の通信帯域を制限する。例えば、制限部505は、受信部504が端末装置100aから、端末装置100bと第2の通信が可能であることを示す判定結果を受信した場合、端末装置100bにおける第1の通信の通信帯域を制限する(例えば、通信帯域を減少させる)。
【0070】
好適な一例として、制限部505は、端末装置100bにおける第1の通信の通信帯域のうち、主に、第1の通信の送信帯域を制限する。
【0071】
情報管理部506は、例えば、通信管理情報508等を記憶部507に記憶して管理する。例えば、情報管理部506は、通信管理情報508を設定するウェブページ等を管理者用のPC等に表示して、「ID」、「入室可能RoomID」、「端末用途」、又は「パスワード」等の設定を受け付ける。
【0072】
記憶部507は、例えば、CPU401が実行するプログラムと、HD404、HDDコントローラ405、及びRAM403等によって実現され、通信管理情報508等の様々なデータ、情報、及びプログラム等を記憶する。
【0073】
(端末装置の機能構成)
端末装置100aは、例えば、
図3のCPU311が所定のプログラムを実行することにより、送受信部511、入出力部512、撮影制御部513、記憶部514、及びウェブブラウザ515等を実現している。なお、上記の各機能構成のうち、少なくとも一部は、ハードウェアによって実現されるものであっても良い。
【0074】
なお、端末装置100b、100cは、例えば、
図4のCPU401が所定のプログラムを実行することにより、端末装置100aと同様の機能構成を実現しているものとする。
【0075】
送受信部511は、例えば、ネットワークI/F321(又はネットワークI/F408)を用いて、端末装置100を通信ネットワーク2に接続し、他の装置と通信する通信処理を実行する。入出力部512は、ユーザによる入力操作を受け付ける入力処理と、表示画面、音、又は光等を出力処理とのうち、少なくとも1つを実行する。
【0076】
撮影制御部513は、例えば、撮像ユニット301、画像処理ユニット、及び撮像制御ユニット(又はカメラ418)を制御して、端末装置100の周辺を撮影した撮影画像データを取得する撮影制御処理を実行する。
【0077】
記憶部514は、例えば、SRAM313、HD404、又はRAM403等の記憶デバイスに、様々な情報、データ、又はプログラム等を記憶する記憶処理を実行する。
【0078】
ウェブブラウザ515は、例えば、ファイルサーバ13から、JSファイル534、又はHTMLファイル等をダウンロードして実行することにより、第1の通信部516、第2の通信部517、及び通知部518等を実現している。なお、ウェブブラウザ515は、
図2で説明したウェブブラウザ200に対応しており、例えば、WebRTC等のブラウザAPI203を、ウェブブラウザ515が実行するプログラムに提供している。
【0079】
第1の通信部516は、ウェブブラウザ515が提供するブラウザAPI203を利用して、中継装置12を介して、他の端末装置100とコンテンツデータを送受信する第1の通信を行う第1の通信処理を実行する。
【0080】
第2の通信部517は、ウェブブラウザ515が提供するブラウザAPI203を利用して、他の端末装置100と一対一で第2の通信を行う第2の通信処理を実行する。例えば、第2の通信部517は、ウェブブラウザ515が提供するWebRTC APIを利用して、ICEプロトコルによるP2P通信である第2の通信を行う。
【0081】
通知部518は、端末装置100と第1の通信を行っている他の端末装置100の各々と、第2の通信が可能であるか否かを示す判定結果を、通信管理装置11に通知する通知処理を実行する。なお、端末装置100が、受信メイン端末である端末装置100b、又は通常端末である端末装置100cである場合、端末装置100は、通知部518を有していなくてもよい。
【0082】
(中継装置の機能構成)
中継装置12は、コンピュータ400が所定のプログラムを実行することにより、例えば、送受信部521、接続管理部522、帯域管理部523、暗号管理部524、及び転送管理部525等を実現している。なお、上記の各機能構成のうち、少なくとも一部は、ハードウェアによって実現されるものであっても良い。
【0083】
送受信部521は、例えば、ネットワークI/F408を用いて、中継装置12を通信ネットワーク2に接続し、他の装置との間でデータ、又は情報等を送受信する送受信処理を実行する。
【0084】
接続管理部522は、端末装置100による中継装置12への接続を管理する接続管理処理を実行する。例えば、接続管理部522は、同じRoomID(セッションID)を指定して接続を要求する端末装置100を、同じRoom(通信セッション)に参加させる。
【0085】
帯域管理部523は、中継装置12を介してコンテンツデータを送受信する第1の通信の通信帯域を管理する帯域管理処理を実行する。例えば、帯域管理部523は、通信管理装置11からの制御に従って、端末装置100の通信帯域を制限する。暗号管理部524は、例えば、DTLS(Datagram Transport Layer Security)等の暗号化を管理する暗号管理処理を実行する。転送管理部525は、同じRoomに入室(同じ通信セッションに参加)している複数の端末装置100の間で、コンテンツデータを転送する転送管理処理を実行する。
【0086】
(ファイルサーバ)
ファイルサーバ13は、コンピュータ400が所定のプログラムを実行することにより、例えば、送受信部531、ファイル提供部532、及び記憶部533等を実現している。なお、上記の各機能構成のうち、少なくとも一部は、ハードウェアによって実現されるものであっても良い。
【0087】
送受信部531は、例えば、ネットワークI/F408を用いて、ファイルサーバ13を通信ネットワーク2に接続し、他の装置との間でデータ、又は情報等を送受信する送受信処理を実行する。
【0088】
ファイル提供部532は、ウェブブラウザ515で実行することにより、第1の通信部516、第2の通信部517、及び通知部518等を実現するプログラム(JSファイル534、又はHTMLファイル535)を提供するファイル提供処理を実行する。
【0089】
記憶部533は、例えば、CPU401が実行するプログラムと、HD404、HDDコントローラ405、及びRAM403等によって実現され、JSファイル534、又はHTMLファイル535等を記憶する記憶処理を実行する。
【0090】
なお、ファイルサーバ13は、管理システム10の外部のクラウドサービス等によって、実現されるものであってもよい。
【0091】
<処理の流れ>
続いて、第1の実施形態に係る通信管理方法の処理の流れについて説明する。
【0092】
(第1の通信処理)
図7Aは、第1の実施形態に係る第1の通信処理の例を示すシーケンス図である。なお、
図7Aにおいて、破線の矢印は、応答メッセージを示しており、特に説明が必要な場合を除いて説明を省略する。
図7B、8、10、11においても同様である。
【0093】
ステップS701において、端末装置100aのウェブブラウザ515は、ファイルサーバ13から、JS(JavaScript)ファイル534、又はHTMLファイル535等のWebアプリケーション(以下、ウェブアプリと呼ぶ)をダウンロードする。なお、この処理は、例えば、ウェブブラウザ515が、所定のURL(Uniform Resource Locator)にアクセスすることにより、自動的に実行される。また、ここでは、ダウンロードしたウェブアプリがJSファイル534であるものとして以下の説明を行う。
【0094】
ステップS702において、端末装置100aのウェブブラウザ515は、ダウンロードしたウェブアプリ720を実行する。これにより、例えば、
図5で説明した第1の通信部516、第2の通信部517、及び通知部518等が実現される。
【0095】
ステップS703において、端末装置100aのウェブアプリ720によって実現される第1の通信部516(以下、単に第1の通信部516と呼ぶ)は、ウェブブラウザ515が提供するAPIを利用して、通信管理装置11とのWebSocketの接続を要求する。
【0096】
ステップS704において、端末装置100aのウェブブラウザ515は、通信管理装置11とWebsoketの接続を確立する。ここで、WebSocketは、単一のTCP(Transmission Control Protocol)コネクション上に双方向の通信チャネルを提供する通信プロトコルである。
【0097】
ステップS705において、端末装置100aの第1の通信部516は、ウェブブラウザ515が提供するAPIを利用して、中継装置12のRoom1への「送信メイン端末」としての接続を要求する。
【0098】
ステップS706において、端末装置100aのウェブブラウザ515は、WebSocketメッセージで、通信管理装置11に中継装置12のRoom1に「送信メイン端末」としての接続を要求する、中継装置12への接続要求を送信する。
【0099】
ステップS707において、通信管理装置11の通信管理部503は、端末装置100aから、正当な中継装置12への接続要求を受け付けると、中継装置12に、WebRTC offerの作成を要求する。例えば、端末装置100aが送信する中継装置12への接続要求には、
図6で説明したID、パスワード、及びRoomID等が含まれる。通信管理装置11の認証部502は、中継装置12への接続要求に含まれるIDとパスワードとの組合せが、通信管理情報508に登録されているかで認証処理を行う。また、認証部502は、中継装置12への接続要求に含まれるRoomIDが、通信管理情報508の「入室可能RoomID」に含まれているかで認可処理を行う。これにより、認証部502は、端末装置100aから受け付けた中継装置12への接続要求が正当であるか否かを確認することができる。
【0100】
ステップS708において、中継装置12の接続管理部522は、通信管理装置11からのWebRTC offerの作成要求に対して、WebRTC offerを返信する。なお、WebRTC Offerは、WebRTCのシグナリングにおいて、通信を開始する側が送信する情報である。このWebRTC Offerには、例えば、コンテンツデータの情報、接続情報、及び暗号鍵共有のための公開鍵等をSDP(Session Description Protocol)で記述した情報が含まれる。
【0101】
ステップS709において、端末装置100aの第1の通信部516は、WebRTC offerを受け付けると、ウェブブラウザ515にWebRTC answerの作成を要求する。なお、WebRTC anwerは、WebRTCのシグナリングにおいて、WebRTC offerを受信した側が返信する情報である。このWebRTC offerにも、例えば、コンテンツデータの情報、接続情報、及び暗号鍵共有のための公開鍵等をSDPで記述した情報が含まれる。
【0102】
ステップS710において、端末装置100aの第1の通信部516は、例えば、ウェブブラウザ515が作成したWebRTC answerを、ウェブブラウザ515を介して、中継装置12に返信する。これにより、ステップS711において、端末装置100aの第1の通信部516は、中継装置12と第1の通信を確立する。例えば、端末装置100aは、中継装置12とDTLSの暗号鍵を共有し、共有した暗号鍵によって映像、又は音声等のコンテンツデータを暗号化して送受信する。
【0103】
なお、上記の処理では、中継装置12がWebRTC offerを作成しウェブブラウザ515がWebRTC answerを作成しているが、ウェブブラウザ515がWebRTC offerを作成し中継装置12がWebRTC answerを作成してもよい。例えば、通信システム1は、
図7AのステップS705~S711の処理に代えて、
図7BのステップS721~S725の処理730を実行してもよい。
【0104】
ステップS721において、端末装置100aの第1の通信部516は、ウェブブラウザ515が提供するAPIを利用して、WebRTC offerの作成要求を行う。この作成要求には、例えば、中継装置12のRoom1に「送信メイン端末」として接続することを要求する情報が含まれる。
【0105】
ステップS722において、端末装置100aのウェブブラウザ515は、WebSocketメッセージで、通信管理装置11にWebRTC offerを送信する。このWebSocketメッセージには、ウェブブラウザ515が作成したWebRTC offerに加えて、例えば、中継装置12のRoom1に「送信メイン端末」として接続することを要求する情報が含まれる。
【0106】
ステップS723において、通信管理装置11の通信管理部503は、端末装置100aから、WebRTC offerを受け付けると、中継装置12に、WebRTC answerの作成を要求する。
【0107】
ステップS724において、中継装置12の接続管理部522は、通信管理装置11からのWebRTC answerの作成要求に対して、WebRTC answerを作成し、返信する。これにより、ステップS725において、端末装置100aは、中継装置12と第1の通信を確立する。
【0108】
図7AのステップS712において、端末装置100bは、ステップS701~S711と同様の処理700を実行することにより、中継装置12と第1の通信を確立する。ただし、ステップS706の処理において、端末装置100bのウェブブラウザ515は、WebSocketメッセージで、通信管理装置11に中継装置12のRoom1に「受信メイン端末」としての接続を要求する、中継装置12への接続要求を送信する。
【0109】
ステップS713において、端末装置100cは、ステップS701~S711と同様の処理700を実行することにより、中継装置12と第1の通信を確立する。ただし、ステップS706の処理において、端末装置100cのウェブブラウザ515は、WebSocketメッセージで、通信管理装置11に中継装置12のRoom1に「通常端末」としての接続を要求する、中継装置12への接続要求を送信する。
【0110】
なお、ステップS712、S713においても、通信システム1は、
図7BのステップS721~S725と同様の処理を実行して、第1の通信を確立してもよい。
【0111】
上記の処理により、端末装置100a、100b、100cは、中継装置12を介して、コンテンツデータを送受信する第1の通信を行うことができる。例えば、ステップS714において、端末装置100aが送信したコンテンツデータは、ステップS715、S716において、中継装置12が、他の端末装置100b、100cに転送する。同様に、端末装置100bが送信したコンテンツデータは、中継装置12が他の端末装置100a、100cに転送し、端末装置100cが送信したコンテンツデータは、中継装置12が他の端末装置100a、100bに転送する。
【0112】
なお、
図7A、
図7Bに示した第1の通信処理は一例である。例えば、端末装置100は、WebSocketに限られず、HTPPのポーリング等により、通信管理装置11と制御情報の通信を行うものであってもよい。
【0113】
(帯域制限処理)
図8は、第1の実施形態に係る帯域制限処理の例を示すシーケンス図である。なお、
図8の処理の開始時点において、通信システム1は、
図7の処理を実行済であり、端末装置100a、100b、100cは、中継装置12を介してコンテンツデータを送受信する第1の通信を行っているものとする。
【0114】
ステップS801において、端末装置100aのウェブアプリ700aによって実現される第2の通信部517(以下、単に第2の通信部517と呼ぶ)は、ウェブブラウザ515aに、WebRTC offerの作成を要求する。このWebRTC offerには、例えば、端末装置100bの接続情報(以下、接続情報Bと呼ぶ)等が含まれる。
【0115】
ステップS802において、端末装置100aの第2の通信部517は、ウェブブラウザ515aに、作成したWebRTC offerの送信を要求する。これにより、ステップS803において、端末装置100aのウェブブラウザ515aは、例えば、WebSocketメッセージで、端末装置100b宛のWebRTC offerを通信管理装置11に送信する。
【0116】
ステップS804において、通信管理装置11の接続管理部522は、端末装置100aから受信した、端末装置100b宛のWebRTC offerを、例えば、WebSocketメッセージで端末装置100bに送信する。
【0117】
ステップS805において、端末装置100bのウェブアプリ700bで実現される第2の通信部517は、端末装置100aからのWebRTC offerを受け付ける。これに応じて、ステップS806において、第2の通信部517は、ウェブブラウザ515bにWebRTC answerの作成を要求する。このWebRTC answerには、例えば、端末装置100aの接続情報(以下、接続情報Aと呼ぶ)等が含まれる。
【0118】
ステップS807において、端末装置100bの第2の通信部517は、ウェブブラウザ515bに、作成したWebRTC answerの送信を要求する。これにより、ステップS808において、端末装置100bのウェブブラウザ515bは、例えば、WebSocketメッセージで、端末装置100a宛のWebRTC answerを通信管理装置11に送信する。
【0119】
ステップS809において、通信管理装置11の接続管理部522は、端末装置100bから受信した、端末装置100a宛のWebRTC answerを、例えば、WebSocketメッセージで、端末装置100aに送信する。
【0120】
ステップS810において、端末装置100aのウェブブラウザ515a(又は第2の通信部517)は、端末装置100bとプライベートIPアドレス(接続情報A、B等)を用いて、第2の通信(P2P通信)が可能であるかを確認する。ここでは、端末装置100aと端末装置100bとは、同じプライベートネットワーク(ローカルネットワーク)内にあるので、第2の通信部517は、第2の通信が可能であることを確認する。
【0121】
ステップS811~S813において、端末装置100aの通知部518は、例えば、WebSocketメッセージで、端末装置100bとの第2の通信が可能であることを示す判定結果を通信管理装置11に通知する。
【0122】
ステップS814において、端末装置100aは、端末装置100cとの間で、ステップS801~S809と同様の第2の通信の接続処理800を実行する。また、ステップS815において、端末装置100aのウェブブラウザ515a(又は第2の通信部517)は、端末装置100cとプライベートIPアドレスを用いて、第2の通信が可能であるかを確認する。ここでは、端末装置100aと端末装置100cとは、異なるプライベートネットワーク(ローカルネットワーク)内にあるので、第2の通信ができないことを確認する。
【0123】
ステップS816~S818において、端末装置100aの通知部518は、例えば、WebSocketメッセージで、端末装置100cとの第2の通信が可能でないことを示す判定結果を通信管理装置11に通知する。
【0124】
ステップS819において、通信管理装置11の制限部505は、ステップS813、S818で受信部504が、端末装置100aから受信した判定結果に基づいて、ネットワーク(NW)の接続状態(ネットワークトポロジ情報)を判断する。例えば、制限部505は、端末装置100aが、第1の通信が可能な端末装置100bと第2の通信も可能であることから、端末装置100bが、端末装置100aと同じプライベートネットワーク(又はローカルネットワーク)内にあると判断する。一方、制限部505は、端末装置100aが、第1の通信が可能な端末装置100cと第2の通信ができないことから、端末装置100cが、端末装置100aと異なるプライベートネットワーク(又はローカルネットワーク)内にあると判断する。
【0125】
ステップS820において、通信管理装置11の制限部505は、端末装置100aと同じプライベートネットワーク内にあると判断した端末装置100bにおける第1の通信の通信帯域を制限する帯域制限命令を中継装置12に送信する。
【0126】
例えば、制限部505は、端末装置100bがコンテンツデータを送受信する通信帯域の減少を指示する帯域制限命令を中継装置12に送信してもよい。或いは、制限部505は、端末装置100bがコンテンツデータを送信する送信帯域の減少を指示する帯域制限命令を中継装置12に送信してもよい。これにより、端末装置(撮影装置)100aが映像データを送信する送信帯域の優先度を上げることができる。
【0127】
ステップS821において、中継装置12の帯域管理部523は、通信管理装置11からの帯域制限命令に従って、端末装置100bにおける第1の通信の通信帯域を制限する。
【0128】
図7A(又は
図7B)と
図8の処理により、第1の実施形態によれば、複数の端末装置100がウェブブラウザのAPIを利用してコンテンツデータを送受信する通信システム1において、ネットワークトポロジ情報に基づいて帯域制御を最適化できるようになる。
【0129】
なお、
図7A(又は
図7B)と
図8に示した処理は一例である。例えば、
図7AのステップS706において、端末装置100が通信管理装置11に送信する中継装置への接続要求に、端末用途の情報(送信メイン端末、受信メイン端末、又は通常端末)が含まれているが、この情報は必須ではない。例えば、通信管理装置11は、
図8のステップS813、S818において、判定結果を送信した端末装置100aを、送信メイン端末と判断してもよい。また、通信管理装置11は、受信した判定結果に基づいて、送信メイン端末と第2の通信が可能な端末装置100bを受信メイン端末と判断し、送信メイン端末と第2の通信ができない端末装置100cを通常端末と判断してもよい。
【0130】
[第2の実施形態]
第1の実施形態では、端末装置100aは、ウェブブラウザ515が実行するプログラムにより、第1の通信部516、第2の通信部517、及び通知部518等を実現していた。ただし、これは一例であり、端末装置100aは、ウェブブラウザの一部のコードをライブラリとしてロードしたモバイルアプリケーション等によって、第1の通信部516、第2の通信部517、及び通知部518等を実現してもよい。
【0131】
<機能構成>
図9は、第2の実施形態に係る通信システムの機能構成の例を示す図である。
【0132】
(端末装置100aの機能構成)
第2の実施形態に係る端末装置100aは、ウェブブラウザ515に代えて、ウェブブラウザの機能を有するアプリケーション900を、CPU311が実行することにより、第1の通信部516、第2の通信部517、及び通知部518等を実現している。
【0133】
第1の通信部516は、中継装置12を介して、他の端末装置100とコンテンツデータを送受信する第1の通信を行う第1の通信処理を実行する。第2の通信部517は、他の端末装置100と一対一で第2の通信を行う第2の通信処理を実行する。例えば、第2の通信部517は、WebRTCのICEプロトコルにより、第2の通信(P2P通信)を行う。通知部518は、端末装置100と第1の通信を行っている他の端末装置100の各々と、第2の通信が可能であるか否かを示す判定結果を、通信管理装置11に通知する通知処理を実行する。
【0134】
なお、第2の実施形態に係る端末装置100aの他の機能構成は、
図5で説明した第1の実施形態に係る端末装置100aの機能構成と同様でよい。また、第2の実施形態に係る端末装置100b、100c、通信管理装置11、中継装置12、及びファイルサーバ13の機能構成は、第1の実施形態と同様でよい。
【0135】
<処理の流れ>
(第1の通信処理)
図10は、第2の実施形態に係る第1の通信処理の例を示すシーケンス図である。なお、
図10に示す処理のうち、ステップS712~S716の処理は、
図7Aで説明した第1の実施形態に係る処理と同様なので、ここでは説明を省略する。また、基本的な処理内容は、第1の実施形態と同様なので、ここでは、第1の実施形態と同様の処理に対する詳細な説明は省略する。
【0136】
ステップS1001において、端末装置100aが、アプリケーション900を起動したとき、又は通信操作を受け付けたとき等に、通信システム1は、ステップS1002以降の処理を開始する。
【0137】
ステップS1002において、端末装置100aの第1の通信部516は、通信管理装置11とWebsoketの接続を確立する。
【0138】
ステップS1003において、端末装置100aの第1の通信部516は、WebSocketメッセージで、通信管理装置11に中継装置12のRoom1に「送信メイン端末」としての接続を要求する、中継装置12への接続要求を送信する。
【0139】
ステップS1004において、通信管理装置11の通信管理部503は、端末装置100aから、正当な中継装置12への接続要求を受け付けると、中継装置12に、WebRTC offerの作成を要求する。
【0140】
ステップS1005において、中継装置12の接続管理部522は、通信管理装置11からのWebRTC offerの作成要求に対して、WebRTC offerを返信する。
【0141】
ステップS1006において、端末装置100aの第1の通信部516は、通信管理装置11を介して、中継装置12からのWebRTC offerを受け付けると、WebRTC answerを作成する。
【0142】
ステップS1007において、端末装置100aの第1の通信部516は、作成したWebRTC answerを中継装置12に返信する。これにより、第1の通信部516は、中継装置12と第1の通信を確立する。例えば、端末装置100aは、中継装置12とDTLSの暗号鍵を共有し、共有した暗号鍵によって映像、又は音声等のコンテンツデータを暗号化して送受信する。
【0143】
ステップS712において、端末装置100bは、
図7AのステップS701~S711と同様の処理700を実行することにより、中継装置12と第1の通信を確立する。同様に、ステップS713において、端末装置100cは、
図7AのステップS701~S711と同様の処理700を実行することにより、中継装置12と第1の通信を確立する。
【0144】
このように、端末装置100aは、ウェブブラウザの機能を有するアプリケーション900により、第1の通信処理を実行してもよい。
【0145】
なお、
図10の処理においても、
図7Bの処理と同様にして、ウェブブラウザの機能を有するアプリケーション900がWebRTC offerを作成し、中継装置12がWebRTC answerを作成してもよい。
【0146】
(帯域制限処理)
図11は、第2の実施形態に係る帯域制限処理の例を示すシーケンス図である。なお、
図11に示す処理のうち、ステップS819~S821の処理は、
図8で説明した第1の実施形態に係る処理と同様なので、ここでは説明を省略する。また、基本的な処理内容は、第1の実施形態と同様なので、ここでは、第1の実施形態と同様の処理に対する詳細な説明は省略する。
【0147】
ステップS1101において、端末装置100aの第2の通信部517は、端末装置100b宛のWebRTC offerを作成し、作成したWebRTC offerの送信を、例えば、WebSocketメッセージで通信管理装置11に送信する。
【0148】
ステップS1102において、通信管理装置11の接続管理部522は、端末装置100aから受信した、端末装置100b宛のWebRTC offerを、例えば、WebSocketメッセージで端末装置100bに送信する。
【0149】
ステップS1103において、端末装置100bのウェブアプリ700bで実現される第2の通信部517は、端末装置100aからのWebRTC offerを受け付ける。これに応じて、ステップS1104において、第2の通信部517は、ウェブブラウザ515bにWebRTC answerの作成を要求する。このWebRTC answerには、例えば、端末装置100aの接続情報(接続情報A)等が含まれる。
【0150】
ステップS1105において、端末装置100bの第2の通信部517は、ウェブブラウザ515bに、作成したWebRTC answerの送信を要求する。これにより、ステップS1106において、端末装置100bのウェブブラウザ515bは、例えば、WebSocketメッセージで、端末装置100a宛のWebRTC answerを通信管理装置11に送信する。
【0151】
ステップS1107において、通信管理装置11の接続管理部522は、端末装置100bから受信した、端末装置100a宛のWebRTC answerを、例えば、WebSocketメッセージで、端末装置100aに送信する。
【0152】
ステップS1108において、端末装置100aの第2の通信部517は、端末装置100bと、プライベートIPアドレスを用いて第2の通信(P2P通信)が可能であるかを確認する。ここでは、端末装置100aと端末装置100bとは、同じプライベートネットワーク(ローカルネットワーク)内にあるので、第2の通信部517は、端末装置100bと第2の通信が可能であることを確認する。
【0153】
ステップS1109において、端末装置100aの通知部518は、例えば、WebSocketメッセージで、端末装置100bとの第2の通信が可能であることを示す判定結果を通信管理装置11に通知する。
【0154】
ステップS1110において、端末装置100aは、端末装置100cとの間で、ステップS1101~S1107と同様の第2の通信の接続処理1100を実行する。また、ステップS1111において、端末装置100aの第2の通信部517は、端末装置100cとプライベートIPアドレスを用いて、第2の通信が可能であるかを確認する。ここでは、端末装置100aと端末装置100cとは、異なるプライベートネットワーク(ローカルネットワーク)内にあるので、第2の通信部517は、端末装置100cと第2の通信ができないことを確認する。
【0155】
ステップS1112において、端末装置100aの通知部518は、例えば、WebSocketメッセージで、端末装置100cとの第2の通信が可能でないことを示す判定結果を通信管理装置11に通知する。
【0156】
このように、第1の実施形態に係る端末装置100aのウェブブラウザ515の処理は、ウェブブラウザの機能(WebRTC API等)を有するモバイルアプリケーション等によって実現することができる。
【0157】
なお、端末装置100b、又は端末装置100cのウェブブラウザ515の処理についても、ウェブブラウザの機能(WebRTC API等)を有するアプリケーションプログラム等によって実現することが可能である。
【0158】
以上、本発明の各実施形態によれば、複数の端末装置100がウェブブラウザのAPIを利用してコンテンツデータを送受信する通信システムにおいて、ネットワークトポロジ情報に基づいて帯域制御を最適化できるようになる。
【0159】
<補足>
上記で説明した各実施形態の各機能は、一又は複数の処理回路によって実現することが可能である。ここで、本明細書における「処理回路」とは、電子回路により実装されるプロセッサのようにソフトウェアによって各機能を実行するようプログラミングされたプロセッサや、上記で説明した各機能を実行するよう設計されたASIC(Application Specific Integrated Circuit)、DSP(digital signal processor)、FPGA(field programmable gate array)や従来の回路モジュール等のデバイスを含むものとする。
【0160】
また、実施例に記載された装置群は、本明細書に開示された実施形態を実施するための複数のコンピューティング環境のうちの1つを示すものに過ぎない。ある実施形態では、通信管理装置11は、サーバクラスタといった複数のコンピューティングデバイスを含む。複数のコンピューティングデバイスは、ネットワークや共有メモリなどを含む任意のタイプの通信リンクを介して互いに通信するように構成されており、本明細書に開示された処理を実施する。また、通信管理装置11の各要素は、1つのコンピュータ400にまとめられていても良いし、複数のコンピュータ400に分けられていても良い。
【0161】
また、
図5に示した通信システム1は、例えば、
図7A(又は
図7B)、
図8、
図10、及び
図11に示した通信システム1の処理を、様々な組み合わせで共有するように構成できる。例えば、通信管理装置11が実行する処理のうち、少なくとも一部は、中継装置12、又はファイルサーバ13が実行しても良い。また、通信管理装置11が実行する処理のうち、少なくとも一部は、例えば、外部のサーバ装置、又はクラウドサービス等が実行しても良い。
【符号の説明】
【0162】
1 通信システム
10 管理システム
11 通信管理装置
100 端末装置
100a 端末装置(撮影装置)
100b、100c 端末装置(情報端末、他の端末装置)
400 コンピュータ
503 通信管理部
504 受信部
505 制限部
515 ウェブブラウザ
516 第1の通信部
517 第2の通信部
518 通知部
900 アプリケーション
【先行技術文献】
【特許文献】
【0163】