(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022071783
(43)【公開日】2022-05-16
(54)【発明の名称】リアルタイムコミュニケーションシステム、リアルタイムコミュニケーション方法及びプログラム
(51)【国際特許分類】
H04M 3/56 20060101AFI20220509BHJP
H04N 7/15 20060101ALI20220509BHJP
H04N 21/4788 20110101ALI20220509BHJP
G06F 13/00 20060101ALI20220509BHJP
G06F 15/00 20060101ALI20220509BHJP
【FI】
H04M3/56
H04M3/56 A
H04N7/15 170
H04N21/4788
G06F13/00 650A
G06F13/00 353A
G06F15/00 440A
【審査請求】未請求
【請求項の数】15
【出願形態】OL
(21)【出願番号】P 2020180958
(22)【出願日】2020-10-28
(71)【出願人】
【識別番号】520422577
【氏名又は名称】株式会社バショウズ
(74)【代理人】
【識別番号】100175064
【弁理士】
【氏名又は名称】相澤 聡
(72)【発明者】
【氏名】小関 健一郎
【テーマコード(参考)】
5B084
5B089
5C164
5K201
【Fターム(参考)】
5B084AA01
5B084AA16
5B084AB34
5B084AB38
5B084BB12
5B084CA11
5B084DA21
5B084DA24
5B089GA11
5B089GA21
5B089GB01
5B089JA16
5B089JB14
5B089KA06
5B089KC23
5B089KG03
5C164TA08S
5C164UD63P
5C164VA16P
5K201BA20
5K201BB07
5K201BC24
5K201CA10
5K201CB11
5K201CB17
5K201CC02
5K201CC07
5K201DA03
5K201EC06
5K201ED04
5K201ED07
(57)【要約】
【課題】リアルタイムコミュニケーションの態様に応じ適切なサービス基盤を提供することが可能なリアルタイムコミュニケーションシステム、リアルタイムコミュニケーション方法及びプログラムを提供する。
【解決手段】リアルタイムコミュニケーションシステム1は、複数のユーザ端末10と、シグナリングサーバ20と、を含む。ユーザ端末10は、仮想空間のタイプを指定して前記仮想空間を生成する仮想空間生成部13を有し、シグナリングサーバ20は、仮想空間のタイプに応じて仮想空間を実現するためのピアトポロジーを決定し、ピアトポロジーに基づいてユーザ端末10それぞれのピアコネクションを確立させることにより、仮想空間にユーザ端末10を参加させる接続制御部23を有する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
複数のユーザ端末と、シグナリングサーバと、を含むリアルタイムコミュニケーションシステムであって、
前記ユーザ端末は、
仮想空間のタイプを指定して前記仮想空間を生成する仮想空間生成部を有し、
前記シグナリングサーバは、
前記仮想空間のタイプに応じて前記仮想空間を実現するためのピアトポロジーを決定し、前記ピアトポロジーに基づいて前記ユーザ端末それぞれのピアコネクションを確立させることにより、前記仮想空間に前記ユーザ端末を参加させる接続制御部を有する
リアルタイムコミュニケーションシステム。
【請求項2】
前記ピアトポロジーは、前記仮想空間のタイプ及び参加ノード数に基づいて決定される
請求項1記載のリアルタイムコミュニケーションシステム。
【請求項3】
前記接続制御部は、リアルタイムコミュニケーションの状況の変化に応じて前記ピアトポロジーを動的に変更する
請求項1記載のリアルタイムコミュニケーションシステム。
【請求項4】
複数のユーザ端末と、管理サーバと、を含むリアルタイムコミュニケーションシステムであって、
前記ユーザ端末は、
仮想空間の利用コンディションデータを送信する利用コンディションデータ送信部を有し、
前記管理サーバは、
前記利用コンディションデータに基づいて前記仮想空間におけるリアルタイムコミュニケーションの実施実績を評価する利用コンディションデータ評価部を有する
リアルタイムコミュニケーションシステム。
【請求項5】
前記管理サーバは、
前記評価に基づいて、前記仮想空間におけるリアルタイムコミュニケーションへの参加料又は開催報酬額の少なくとも一方を調整する課金処理部をさらに有する
請求項4記載のリアルタイムコミュニケーションシステム。
【請求項6】
前記管理サーバは、
前記仮想空間の利用時間が予め設定された上限を超えた場合、前記仮想空間に参加中の前記ユーザ端末を強制退室させるための要求を送信する時間管理部をさらに有する
請求項4記載のリアルタイムコミュニケーションシステム。
【請求項7】
シグナリングサーバをさらに含み、
前記シグナリングサーバは、
前記ユーザ端末に対し、前記利用コンディションデータの送信を定期的に要求する利用コンディションデータ要求部をさらに有する
請求項4記載のリアルタイムコミュニケーションシステム。
【請求項8】
前記シグナリングサーバは、
前記時間管理部の要求に応じ、前記仮想空間に参加中の前記ユーザ端末を強制退室させる強制退室処理部をさらに有する
請求項6及び7記載のリアルタイムコミュニケーションシステム。
【請求項9】
ユーザ端末が参加する仮想空間のタイプを特定し、
前記仮想空間のタイプに応じて前記仮想空間を実現するためのピアトポロジーを決定し、
前記ピアトポロジーに基づいて前記ユーザ端末それぞれのピアコネクションを確立させる接続制御部を有する
シグナリングサーバ。
【請求項10】
ユーザ端末から収集された仮想空間の利用コンディションデータに基づいて前記仮想空間におけるリアルタイムコミュニケーションの実施実績を評価する利用コンディションデータ評価部を有する
管理サーバ。
【請求項11】
仮想空間の利用時間が予め設定された上限を超えた場合、前記仮想空間に参加中のユーザ端末を強制退室させるための要求を送信する時間管理部を有する
管理サーバ。
【請求項12】
シグナリングサーバが、
ユーザ端末が参加する仮想空間のタイプを特定するステップと、
前記仮想空間のタイプに応じて前記仮想空間を実現するためのピアトポロジーを決定するステップと、
前記ピアトポロジーに基づいて前記ユーザ端末それぞれのピアコネクションを確立させるステップと、を有する
リアルタイムコミュニケーション方法。
【請求項13】
管理サーバが、
ユーザ端末から収集された仮想空間の利用コンディションデータに基づいて前記仮想空間におけるリアルタイムコミュニケーションの実施実績を評価するステップと、を有する
リアルタイムコミュニケーション方法。
【請求項14】
管理サーバが、
仮想空間の利用時間が予め設定された上限を超えた場合、前記仮想空間に参加中のユーザ端末を強制退室させるための要求を送信するステップを有する
リアルタイムコミュニケーション方法。
【請求項15】
コンピュータに請求項12乃至14記載の方法を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明はリアルタイムコミュニケーションシステム、リアルタイムコミュニケーション方法及びプログラムに関し、例えばリアルタイムコミュニケーションの態様に応じ適切なサービス基盤を提供する技術に関する。
【背景技術】
【0002】
リアルタイムコミュニケーション技術(例えばWebRTC等)をベースとした会議サービスやチャットサービス等が多く提供されている。これらのサービスを実現するコンピュータシステムを、以下、リアルタイムコミュニケーションシステムと称する。リアルタイムコミュニケーションシステムは、一般に、通信やビジネスロジック(例えば会議の予約や課金等)を制御するための基本的機能群(サービス基盤)を備えている。
【0003】
通信制御の領域においては、複数のユーザ端末をそれぞれP2P(Point to Point)通信やメディアサーバを介した通信で接続することにより、リアルタイムに映像、音声及びデータを送受信可能とする技術が公知である。
【0004】
例えば、特許文献1には、スター型やフルメッシュ等の各種接続トポロジーを使用したオンライン会議システムが記載されている。特許文献2及び3には、ネットワーク接続品質やネットワーク接続コスト等に応じて、会議に適した接続トポロジーを選択するシステムが記載されている。
【0005】
ビジネスロジック制御の領域においては、リアルタイムコミュニケーションシステムの利用料金を課金するための技術が公知である。
【0006】
例えば、特許文献4には、オンライン会議システムの利用料金を会議主催者の銀行口座から徴収するシステムが記載されている。
【0007】
なお、リアルタイムコミュニケーションシステムを利用した有料ウェブセミナー等において参加者から参加料を徴収する場合には、リアルタイムコミュニケーションシステムとは独立のオンラインチケット発行システム等が利用される例がある。
【先行技術文献】
【特許文献】
【0008】
【特許文献1】特開2015-080255号公報
【特許文献2】特表2018-511249号公報
【特許文献3】特開2006-217576号公報
【特許文献4】特開2017-138941号公報
【発明の概要】
【発明が解決しようとする課題】
【0009】
複数のユーザ端末を直接相互接続するP2Pフルメッシュ構成においては、各ユーザ端末が複数の接続先端末との通信をそれぞれハンドルする必要があり、ユーザ端末の負荷が大きな問題となる場合がある。
【0010】
この問題を解決する技術のひとつにMCU(Multipoint Control Unit)がある。各ユーザ端末はMCUと1対1で接続し、MCUを介して他のユーザ端末と通信する。MCUは各ユーザ端末から受信した映像の合成及び変換を行ったうえで他のユーザ端末へ配信する。これによりユーザ端末の負荷が抑えられる。一方、MCUを実現するメディアサーバへの負荷が大きくなりがちであるため、サーバ運用コストが増大しやすいという問題が生じる。
【0011】
ユーザ端末の負荷とメディアサーバへの負荷の両方をある程度まで抑える技術としてSFU(Selective Forwarding Unit)がある。SFUもMCUと同様にユーザ端末間の通信を中継するメディアサーバであるが、SFUはユーザ端末から受信した映像の合成及び変換を行うことなく他のユーザ端末へ配信する。これにより、SFUの負荷をMCUに比べ抑制することができる。
【0012】
このように、リアルタイムコミュニケーション機能を実現するための通信制御方式は多様であり、各方式に一長一短があるため、実現したい機能、会議等の目的及び態様に適した通信制御方式を選択する必要がある。しかしながら、従来のリアルタイムコミュニケーションシステムでは1つのシステムアーキテクチャで幅広い目的及び用途に対応しようとしていたため、あるユースケースにおいては過剰な構成であったり、他のユースケースにおいては機能や性能を犠牲にせざるを得なかったりするという問題があった。すなわち、利用者が実現したい機能、会議等の目的及び態様にとって最適な負荷レベルや運用コストで稼働するシステムを柔軟に提供することはできていなかった。
【0013】
また、従来のように単にオンライン会議を開催すること自体に課金したり(主催者に対する課金)、参加すること自体に課金したり(参加者に対する課金)するような課金形態は、画一的で柔軟性を欠くものであった。例えば、オンライン会議へ有料で参加するユーザの立場からすれば、オンライン会議が本当に開催されるのか、時間通りに開催されるのか、納得できる品質の体験が得られるのか、といった事柄については主催者側を信用するしかないというリスクがある。特に、主催者側の信用度を事前に推測できないケースにおいてはこのリスクは顕著である。また、主催者側の信用度に関わらず、当日の通信回線の状態不良等によって満足な視聴ができなかった場合等も、参加料と得られた体験との間にギャップが生じる。
【0014】
この点、インターネット上での「モノ」の売買においては、売り手と買い手との間で安心して資金移動を行うための手段としてエスクロー決済等が提供されている。一方、仮想空間で行われる有料催事など「コト」の売買においては、同様の手段は未だ提供されていない。リアルタイムコミュニケーションシステムによって実現される有料催事においても、主催者と参加者との間で安心して資金移動を行うための手段を備えることが求められている。
【0015】
本発明は、このような問題点を解決するためになされたものであり、リアルタイムコミュニケーションの態様に応じ適切なサービス基盤を提供することが可能なリアルタイムコミュニケーションシステム、リアルタイムコミュニケーション方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【0016】
一実施の形態によれば、リアルタイムコミュニケーションシステムは、複数のユーザ端末と、シグナリングサーバと、を含むリアルタイムコミュニケーションシステムであって、前記ユーザ端末は、仮想空間のタイプを指定して前記仮想空間を生成する仮想空間生成部を有し、前記シグナリングサーバは、前記仮想空間のタイプに応じて前記仮想空間を実現するためのピアトポロジーを決定し、前記ピアトポロジーに基づいて前記ユーザ端末それぞれのピアコネクションを確立させることにより、前記仮想空間に前記ユーザ端末を参加させる接続制御部を有する。
一実施の形態によれば、リアルタイムコミュニケーションシステムにおいて、前記ピアトポロジーは、前記仮想空間のタイプ及び参加ノード数に基づいて決定される。
一実施の形態によれば、リアルタイムコミュニケーションシステムにおいて、前記接続制御部は、リアルタイムコミュニケーションの状況の変化に応じて前記ピアトポロジーを動的に変更する。
一実施の形態によれば、リアルタイムコミュニケーションシステムは、複数のユーザ端末と、管理サーバと、を含むリアルタイムコミュニケーションシステムであって、前記ユーザ端末は、仮想空間の利用コンディションデータを送信する利用コンディションデータ送信部を有し、前記管理サーバは、前記利用コンディションデータに基づいて前記仮想空間におけるリアルタイムコミュニケーションの実施実績を評価する利用コンディションデータ評価部を有する。
一実施の形態によれば、リアルタイムコミュニケーションシステムにおいて、前記管理サーバは、前記評価に基づいて、前記仮想空間におけるリアルタイムコミュニケーションへの参加料又は開催報酬額の少なくとも一方を調整する課金処理部をさらに有する。
一実施の形態によれば、リアルタイムコミュニケーションシステムにおいて、前記管理サーバは、前記仮想空間の利用時間が予め設定された上限を超えた場合、前記仮想空間に参加中の前記ユーザ端末を強制退室させるための要求を送信する時間管理部をさらに有する。
一実施の形態によれば、リアルタイムコミュニケーションシステムは、シグナリングサーバをさらに含み、前記シグナリングサーバは、前記ユーザ端末に対し、前記利用コンディションデータの送信を定期的に要求する利用コンディションデータ要求部をさらに有する。
一実施の形態によれば、リアルタイムコミュニケーションシステムにおいて、前記シグナリングサーバは、前記時間管理部の要求に応じ、前記仮想空間に参加中の前記ユーザ端末を強制退室させる強制退室処理部をさらに有する。
一実施の形態によれば、シグナリングサーバは、ユーザ端末が参加する仮想空間のタイプを特定し、前記仮想空間のタイプに応じて前記仮想空間を実現するためのピアトポロジーを決定し、前記ピアトポロジーに基づいて前記ユーザ端末それぞれのピアコネクションを確立させる接続制御部を有する。
一実施の形態によれば、管理サーバは、ユーザ端末から収集された仮想空間の利用コンディションデータに基づいて前記仮想空間におけるリアルタイムコミュニケーションの実施実績を評価する利用コンディションデータ評価部を有する。
一実施の形態によれば、管理サーバは、仮想空間の利用時間が予め設定された上限を超えた場合、前記仮想空間に参加中のユーザ端末を強制退室させるための要求を送信する時間管理部を有する。
一実施の形態によれば、リアルタイムコミュニケーション方法は、シグナリングサーバが、ユーザ端末が参加する仮想空間のタイプを特定するステップと、前記仮想空間のタイプに応じて前記仮想空間を実現するためのピアトポロジーを決定するステップと、前記ピアトポロジーに基づいて前記ユーザ端末それぞれのピアコネクションを確立させるステップと、を有する。
一実施の形態によれば、リアルタイムコミュニケーション方法は、管理サーバが、ユーザ端末から収集された仮想空間の利用コンディションデータに基づいて前記仮想空間におけるリアルタイムコミュニケーションの実施実績を評価するステップを有する。
一実施の形態によれば、リアルタイムコミュニケーション方法は、管理サーバが、仮想空間の利用時間が予め設定された上限を超えた場合、前記仮想空間に参加中のユーザ端末を強制退室させるための要求を送信するステップを有する。
一実施の形態によれば、プログラムは、コンピュータに上記方法を実行させる。
【発明の効果】
【0017】
本発明により、リアルタイムコミュニケーションの態様に応じ適切なサービス基盤を提供することが可能なリアルタイムコミュニケーションシステム、リアルタイムコミュニケーション方法及びプログラムを提供することができる。
【図面の簡単な説明】
【0018】
【
図1】実施の形態1にかかるリアルタイムコミュニケーションシステム1の全体構成を示すブロック図である。
【
図2】実施の形態1にかかるユーザ端末10の機能構成を示すブロック図である。
【
図3】実施の形態1にかかるシグナリングサーバ20の機能構成を示すブロック図である。
【
図4】トポロジー定義データ記憶部90が記憶する情報の一例を示す図である。
【
図6】実施の形態1にかかるリアルタイムコミュニケーションシステム1の動作を示すフローチャートである。
【
図7】ユーザ端末10における仮想空間作成画面の一例である。
【
図8】ユーザ端末10における仮想空間一覧画面の一例である。
【
図9】シグナリングサーバ20による接続処理を示すシーケンス図である。
【
図10】ユーザ端末10における入室後の仮想空間表示画面の一例である。
【
図11】実施の形態2にかかるリアルタイムコミュニケーションシステム1の全体構成を示すブロック図である。
【
図12】実施の形態2にかかるユーザ端末10の機能構成を示すブロック図である。
【
図13】実施の形態2にかかるシグナリングサーバ20の機能構成を示すブロック図である。
【
図14】実施の形態2にかかるリアルタイムコミュニケーションシステム1の動作を示すフローチャートである。
【
図16】利用コンディションデータの一例を示す図である。
【
図17】実施の形態2にかかる管理サーバ60の機能構成を示すブロック図である。
【発明を実施するための形態】
【0019】
以下、本発明を適用した具体的な実施の形態について、図面を参照しながら詳細に説明する。
【0020】
<実施の形態1>
実施の形態1は、リアルタイムコミュニケーションの態様に応じた適切な通信制御方式を提供する技術に関するものである。実施の形態1にかかるリアルタイムコミュニケーションシステム1は、会議等のリアルタイムコミュニケーションの目的、用途及び必要な機能等に応じたピアトポロジーを有する仮想空間(リアルタイムコミュニケーションのためのコンピュータネットワーク)を生成する。
【0021】
図1は、リアルタイムコミュニケーションシステム1の全体構成を示すブロック図である。リアルタイムコミュニケーションシステム1は、ユーザ端末10、シグナリングサーバ20、メディアサーバ30、ウェブサーバ40、APIサーバ50、ユーザデータ記憶部70、仮想空間データ記憶部80、トポロジー定義データ記憶部90を含む。このほか、WebRTCをベースとしたシステムの基本的な構成要素であるSTUN/TURNサーバもリアルタイムコミュニケーションシステム1に含まれるのが一般的であるが、実施の形態1の特徴的な機能との関連性が低いため、
図1ではこれらの構成要素の記載を省略している。
【0022】
・ユーザ端末10
ユーザ端末10は、典型的にはブラウザアプリケーション又は専用アプリケーション(以下、単にアプリケーションという)が動作するPC(Personal Computer)又はモバイルデバイス等(以下、単にデバイスという)である。アプリケーションはウェブサーバ40から取得されても良く、予めデバイスにセットアップされていても良い。アプリケーションには、シグナリングサーバ20等との通信を実現するためのコンポーネント(ユーザにシグナリング通信やピアトポロジーの選択等の処理を意識させずに、これらの処理を自動化するソフトウェア部品)が含まれており、ユーザ端末10を以下の各処理部として動作させる。
【0023】
図2は、ユーザ端末10の機能構成を示すブロック図である。ユーザ端末10は、ユーザ認証部11、仮想空間生成部13、仮想空間入室部15、接続確立部17を有する。これらの処理部は、デバイスを構成するCPU(Central Processing Unit)、メモリ及び通信制御装置等のハードウェアと、アプリケーションすなわちソフトウェアとの協働により論理的に実現されるものである。
【0024】
ユーザ認証部11は、リアルタイムコミュニケーションシステム1を利用する資格をユーザが有しているか認証する。ユーザ認証部11は、ユーザから認証情報(ユーザの本人性を確認するための情報。例えばID、パスワード、生体情報等を含む)を受け取り、APIサーバ50に送信する。APIサーバ50は、受信した認証情報に基づいて利用資格の有無を判定し、判定結果をユーザ認証部11に通知する。利用資格有りと判定された場合、ユーザ認証部11は、仮想空間生成部13又は仮想空間入室部15の動作を許可する。
【0025】
仮想空間生成部13は、会議等のための仮想空間を新たに生成する。仮想空間生成部13は、ユーザから仮想空間定義情報(新たに生成すべき仮想空間の属性を定義する情報。例えば仮想空間タイプ、公開範囲、利用開始日時、利用時間、参加メンバー情報、参加可能メンバー数、入場料等を含む)を受け取り、APIサーバ50を介して仮想空間データ記憶部80に格納する。
【0026】
仮想空間入室部15は、既に生成されている仮想空間に入室する、すなわちユーザ端末10を仮想空間に接続する処理を行う。仮想空間入室部15は、仮想空間を指定し、シグナリングサーバ20に入室を要求する。シグナリングサーバ20は、選択された仮想空間へ接続するためのエンドポイントを通知する。
【0027】
接続確立部17は、シグナリングサーバ20からの通知を受け取り、通知されたエンドポイントへの接続を確立する。これにより、ユーザ端末は選択された仮想空間に入室した状態となり、他のユーザ端末10と通信することが可能となる。
【0028】
・サーバ
シグナリングサーバ20、メディアサーバ30、ウェブサーバ40、APIサーバ50は、典型的には1又は複数のサーバコンピュータ上で動作するインスタンスである。サーバコンピュータは、クラウドコンピューティング、エッジコンピューティング、フォグコンピューティング等の技術を用いて仮想的に提供されるものであっても良い。シグナリングサーバ20、メディアサーバ30、ウェブサーバ40、APIサーバ50の各サーバは、典型的にはそれぞれが1つのインスタンスを有するが、複数のサーバの機能が1つのインスタンスに統合されていても良いし、1つのサーバの機能が複数のインスタンスに分散されていても良い。
【0029】
・シグナリングサーバ20
図3は、シグナリングサーバ20の機能構成を示すブロック図である。シグナリングサーバ20は、入室受付部21、接続制御部23を有する。これらの処理部は、サーバコンピュータを構成するCPU(Central Processing Unit)、メモリ及び通信制御装置等のハードウェアと、ソフトウェアとの協働により論理的に実現されるものである。
【0030】
入室受付部21は、ユーザ端末10からの入室要求を受けて、指定された仮想空間への入室を許可するか判定する。
【0031】
接続制御部23は、当該仮想空間のピアトポロジーに応じて、これから入室するユーザ端末10(10aとする)と、入室済みのユーザ端末10(10bとする)との間を接続する。MCU/SFUなしのピアトポロジーの場合、接続制御部23は、ユーザ端末10aとユーザ端末10bとの間のピアコネクション確立を誘導する通信を行う。MCU/SFUありのピアトポロジーの場合、接続制御部23は、ユーザ端末10aが接続するためのエンドポイントEPa、ユーザ端末10bが接続するためのエンドポイントEPbをメディアサーバ30内にそれぞれ生成し、エンドポイントEPaとエンドポイントEPbとの間を接続する。また、接続制御部23は、ユーザ端末10a及びユーザ端末10bと通信し、ユーザ端末10aとエンドポイントEPa、ユーザ端末10bとエンドポイントEPbの間のピアコネクション確立を誘導する。
【0032】
・メディアサーバ30
メディアサーバ30は、MCU又はSFUとしての機能を有する。MCU又はSFUの機能については公知であるため詳細な説明を省略する。なおMCU又はSFUを必要としないピアトポロジーによりリアルタイムコミュニケーションが実施される場合においては、メディアサーバ30は不要である。
【0033】
・ウェブサーバ40
ウェブサーバ40は、ユーザ端末10に対してアプリケーションを配信する。なお予めデバイスにアプリケーションがインストールされている場合等においては、ウェブサーバ40は不要である。
【0034】
・APIサーバ50
APIサーバ50は、他のノード(典型的にはユーザ端末10及びシグナリングサーバ20)の要求に応じて、ユーザデータ記憶部70、仮想空間データ記憶部80、トポロジー定義データ記憶部90に対する各種データの入出力を代行する。
【0035】
例えばAPIサーバ50は、ユーザ端末10の要求に応じてユーザデータ記憶部70を参照し、ユーザ認証処理を実行する。また、ユーザ端末10の要求に応じて、新たな仮想空間に関する情報を仮想空間データ記憶部80に登録する。また、シグナリングサーバ20の要求に応じて仮想空間データ記憶部80及びトポロジー定義データ記憶部90を参照し、接続制御に必要な情報を返す。
【0036】
・ユーザデータ記憶部70
ユーザデータ記憶部70は、リアルタイムコミュニケーションシステム1に接続するユーザに関する情報を記憶する。これには、例えばユーザの認証情報(例えばID、パスワード、生体情報等)が含まれる。
【0037】
・仮想空間データ記憶部80
仮想空間データ記憶部80は、リアルタイムコミュニケーションシステム1が提供する仮想空間に関する情報を記憶する。これには、例えば仮想空間定義情報(例えば仮想空間タイプ、公開範囲、利用開始日時、利用時間の上限、参加メンバー情報、参加可能メンバー数、入場料等を含む)が含まれる。
【0038】
・トポロジー定義データ記憶部90
トポロジー定義データ記憶部90は、仮想空間タイプとピアトポロジーとの対応関係等を記憶する。
図4は、トポロジー定義データ記憶部90が記憶する情報の一例を示す図である。
図4上図のテーブルでは、複数の仮想空間タイプに識別子が与えられ、各タイプには名称と適用ピアトポロジーがそれぞれ定義されている。ここで適用ピアトポロジーは、
図4下図のテーブルにおけるピアトポロジー識別子に対応している。
図4下図のテーブルでは、複数のピアトポロジーに識別子が与えられ、各ピアトポロジーには名称、親子属性、メディアサーバ属性、ノード数上限がそれぞれ定義されている。ここで親子属性は、ピアトポロジーに接続する複数のユーザ端末10間に親子関係を定義するかどうかを示す情報である。メディアサーバ属性は、MCU又はSFUを利用するかどうかを示す情報である。ノード数上限は、ピアトポロジーに接続可能なユーザ端末10の上限を示す情報である。
【0039】
図5は、
図4で定義されている種々のピアトポロジーを図解したものである。この図において矢印はピアコネクション、丸印はノード(ユーザ端末10)、四角印はメディアサーバ30(MCU又はSFU)をそれぞれ表している。
【0040】
P2Pフルメッシュ型は、全てのユーザ端末10が相互にP2P接続するトポロジーである。ユーザ端末10の負荷が大きい反面、MCU又はSFUが不要なためローコストで実現できる。よって小規模カンファレンス等に適している。
図4の例では、仮想空間タイプ識別子A「会議室」にP2Pフルメッシュ型が割り当てられている。
【0041】
P2Pスター型は、親ノード(ユーザ端末10)に対して複数の子ノード(ユーザ端末10)がP2P接続するトポロジーである。親ノードが配信元となる小規模セミナー等に適している。
【0042】
SFUフルメッシュ型は、ハブとなるSFUサーバ(メディアサーバ30)に対して複数のユーザ端末10が接続するトポロジーである。ユーザ端末10は自分のメディアストリーム(例えば映像、音声など)をメディアサーバ30に対してのみ送信すれば良いが、メディアサーバ30から転送されてくる他のユーザ端末10からのメディアストリーム(例えば映像、音声など)を自分で合成等する必要がある。MCUを利用する場合に比べメディアサーバ30のコストを抑えられるが、ユーザ端末10側に負荷がかかりがちとなる。よって中規模カンファレンス等に適している。
図4の例では、仮想空間タイプ識別子B「会議室」、仮想空間タイプ識別子D「教室」、仮想空間タイプ識別子F「セミナー会場」にSFUフルメッシュ型が割り当てられている。
【0043】
SFUスター型も、ハブとなるSFUサーバ(メディアサーバ30)に対して複数のユーザ端末10が接続するトポロジーである。SFUフルメッシュ型との違いは、親ノード(ユーザ端末10)には複数の子ノード(ユーザ端末10)のメディアストリーム(例えば映像、音声など)が転送される一方、子ノードには親ノードのメディアストリーム(例えば映像、音声など)のみが転送される点である。親ノードが配信元となる中規模セミナー等に適している。
図4の例では、仮想空間タイプ識別子E「エクササイズスタジオ」、仮想空間タイプ識別子G「イベントホール」にSFUスター型が割り当てられている。
【0044】
MCUフルメッシュ型は、ハブとなるMCUサーバ(メディアサーバ30)に対して複数のユーザ端末10が接続するトポロジーである。SFUフルメッシュ型との違いは、メディアサーバ30から他のユーザ端末10のメディアストリーム(例えば映像、音声など)が合成されてから送信される点である。よって大規模カンファレンス等に適している。
図4の例では、仮想空間タイプ識別子C「会議室」にMCUフルメッシュ型が割り当てられている。
【0045】
MCU複数演者放送型も、ハブとなるMCUサーバ(メディアサーバ30)に対して複数のユーザ端末10が接続するトポロジーである。MCUフルメッシュ型との違いは、複数の親ノード(ユーザ端末10)は自分のメディアストリーム(例えば映像、音声など)をメディアサーバ30に送信するが、複数の子ノード(ユーザ端末10)は自分のメディアストリーム(例えば映像、音声など)を送信しない点である。つまり子ノードは、メディアサーバ30により合成された複数の親ノードのメディアストリーム(例えば映像、音声など)を受信するのみとなる。複数の演者による番組放送等に適している。
図4の例では、仮想空間タイプ識別子H「小劇場・ライブハウス」、仮想空間タイプ識別子I「放送スタジオ」にMCU複数演者放送型が割り当てられている。
【0046】
なお
図4及び
図5に示したピアトポロジーや仮想空間タイプ等はあくまで一例であり、例えばピアトポロジーの形状又は構成、接続するノードの数等は、この例に限定されず任意に定義されて良い。
【0047】
図6は、リアルタイムコミュニケーションシステム1の動作を示すフローチャートである。
【0048】
S101:アプリケーションのセットアップ
ユーザ端末10は、仮想空間の利用に先立って、ウェブサーバ10からデバイスにアプリケーションをダウンロードし、インストールする。なお、デバイスに予めアプリケーションがセットアップしてある場合は、ステップS101は不要である。
【0049】
S102:ログイン
ユーザは、ユーザ端末10のユーザ認証部11に認証情報(例えばID、パスワード、生体情報等)を入力する。認証情報はAPIサーバ50に送信される。APIサーバ50は、認証情報と、ユーザデータ記憶部70に予め格納されている認証情報とを照合し、利用資格の有無を判定する。資格有りの場合、S103又はS104ヘ遷移する。
【0050】
S103:仮想空間の作成
ユーザは、目的に応じた仮想空間を作成することができる。
図7は、ユーザ端末10の仮想空間生成部13が表示する、仮想空間作成画面の一例である。この画面でユーザは仮想空間(「PLACE」と称されている)の目的又は機能を示すタイプ、タイトル、利用開始日時、利用時間の上限、入室料、入室人数上限、公開範囲、カテゴリ・ジャンル等の仮想空間定義情報を入力する。ユーザ端末10は、仮想空間定義情報を、APIサーバ50を介して仮想空間データ記憶部80に格納する。これにより仮想空間が作成される。
【0051】
ここで指定された仮想空間タイプ、入室人数上限と、トポロジー定義データ記憶部90の内容とに従って、仮想空間に適用されるピアトポロジーが決定する。例えば、ユーザが仮想空間タイプとして「会議室」、入室人数上限として「10」を指定したとする。トポロジー定義データ記憶部90の内容が
図4の通りであるとすれば、まず
図4上図に従って、仮想空間タイプ「会議室」に対応する適用ピアトポロジーは「000000」「010000」「020000」に絞り込まれる。そして入室人数上限が「10」であるので、
図4下図に従って、適用ピアトポロジーは「010000」すなわち親子属性なしのP2Pフルメッシュ型に決定される。
【0052】
S104:仮想空間への入室
ユーザは、作成済みの仮想空間に入室することができる。
図8は、ユーザ端末10の仮想空間入室部15が表示する、仮想空間一覧画面の一例である。この画面では、ユーザ自身が作成した仮想空間のほか、他のユーザが作成した仮想空間であってユーザが参加可能な(ユーザに対し公開されており、参加人数が上限に達していない等の条件に合致する)ものが表示される。現在入室が可能な仮想空間には「入室」ボタンが表示される。ユーザが「入室」を選択すると、シグナリングサーバ20に入室要求が送信される。シグナリングサーバ20は、仮想空間のピアトポロジーに応じて、これから入室するユーザ端末10(10aとする)、既に入室済みのユーザ端末10(10b,10c,...とする)、メディアサーバ30を相互に通信可能に接続するための制御を開始する。
【0053】
図9は、入室するユーザ端末10a、シグナリングサーバ20、入室済みユーザ端末10B,10c,...、メディアサーバ30の間で行われる接続処理を示すシーケンス図である。
【0054】
(1)入室要求
ユーザ端末10aの仮想空間入室部15は、シグナリングサーバ20の入室受付部21に入室要求を送信する。
入室受付部21は、APIサーバ50を介して仮想空間データ記憶部80を参照し、入室が要求された仮想空間の仮想空間定義情報を取得する。入室受付部21は、仮想空間の公開範囲、利用開始日時、利用時間の上限、参加可能メンバー数、参加メンバー等の情報に基づき入室可否を判定する。入室を許可する場合、接続制御部23に処理を引き継ぐ。
【0055】
接続制御部23は、APIサーバ50を介してトポロジー定義データ記憶部90を参照し、仮想空間に対応するピアトポロジーを特定する。特定されたピアトポロジーのメディアサーバ属性がSFU又はMCUである場合(すなわちメディアサーバ30を必要とするピアトポロジーである場合)、接続制御部23は、これから入室するユーザ端末10aが入室済みのユーザ端末10b,10c,...とそれぞれ通信するためのエンドポイントと、入室済みのユーザ端末10b,10c,...がユーザ端末10aと通信するためのエンドポイントとをメディアサーバ30に追加する。また、追加したエンドポイント間の接続処理を行う。メディアサーバ属性がMCUの場合は、メディア合成設定(どのユーザ端末10から送信されるメディアストリームを合成、配信するか)を行う。
【0056】
(2)入室応答
接続制御部23は、入室するユーザ端末10aに対し、入室応答(入室を許可する旨の通知)として、入室先の仮想空間のピアトポロジー識別子、ユーザ端末10aの役割種別(親、子、なし)を通知する。
ユーザ端末10aは、メディアストリームの送信準備を開始する。
【0057】
(3)新メンバー入室通知
接続制御部23は、入室済みのユーザ端末10b,10c,...に対し、新メンバー入室通知として、新メンバーであるユーザ端末10aのメンバー識別子(シグナリング通信上の宛先)、ユーザ端末10aの役割種別(親、子、なし)を送信する。
【0058】
ユーザ端末10b,10c,...の接続確立部17は、仮想空間のピアトポロジー(入室時に通知されている)、新メンバーの役割種別、自身の役割種別(入室時に通知されている)に基づいて、新メンバーであるユーザ端末10aとの間でピアコネクションを確立すべきか否か、確立する場合の配信方向(双方向、送信のみ、受信のみ)を判断する。例えば、ピアトポロジーがP2Pフルメッシュ型であれば、新メンバーとの間で双方向のピアコネクションを確立する必要がある。P2Pスター型であって、新メンバーと自身とが親子関係となる場合にも、双方向のコネクションを確立する必要がある。
【0059】
(4)自存在通知
新メンバーであるユーザ端末10aがピアコネクション確立対象である場合、入室済みのユーザ端末10b,10c,...の接続確立部17は、シグナリングサーバ20の接続制御部23を介し、ユーザ端末10aに対し、自存在通知として、自身のメンバー識別子(シグナリング通信上の宛先)、役割種別(親、子、なし)を送信する。
【0060】
ユーザ端末10aの接続確立部17は、入室済みのユーザ端末10b,10c,...から自存在通知を受信した場合、仮想空間のピアトポロジー、自身の役割種別、入室済みユーザの役割種別に基づいて、入室済みの各ユーザにかかる配信方向(双方向、送信のみ、受信のみ)を判断する。
【0061】
(5)ユーザ端末10間のオファー・アンサーネゴシエーション
ピアトポロジーのメディアサーバ属性が「なし」である場合、ユーザ端末10a及びユーザ端末10b,10c,...の接続確立部17は、配信方向を加味したオファー・アンサーネゴシエーションを開始する。これはシグナリングサーバ20を介した、ユーザ端末10aとユーザ端末10b,10c,..との間の双方向通信である。これによりユーザ端末10aとユーザ端末10b,10c,..との間にピアコネクションが確立する。
【0062】
(6)ユーザ端末10-メディアサーバ30間のオファー・アンサーネゴシエーション
ピアトポロジーのメディアサーバ属性がSFU又はMCUである場合、ユーザ端末10a及びユーザ端末10b,10c,...の接続確立部17は、シグナリングサーバ20の接続制御部23の誘導に従って、メディアサーバ30に設けられたエンドポイントとの間でオファー・アンサーネゴシエーションを開始する。これはシグナリングサーバ20を介した、ユーザ端末10aとメディアサーバ30との間の双方向通信である。
【0063】
例えば、ユーザ端末10aとユーザ端末10bとの間にメディアサーバ30を介したピアコネクションを確立させる手順は以下の通りである。
【0064】
まず、ユーザ端末10aの接続確立部17は、配信方向を加味したオファーをシグナリングサーバ20に送信する。シグナリングサーバ20の接続制御部23は、オファーをユーザ端末10bへ転送するのではなく、メディアサーバ30に設けられたエンドポイントEPa(ユーザ端末10aが、ユーザ端末10bと通信するために接続するエンドポイント)へ転送する。これにより、ユーザ端末10aとメディアサーバ30に設けられたエンドポイントEPaとの間でオファー・アンサーネゴシエーションが開始され、ユーザ端末10aとメディアサーバ30のエンドポイントEPaとの間にピアコネクションが確立する。
【0065】
同様に、ユーザ端末10bの接続確立部17は、配信方向を加味したオファーをシグナリングサーバ20に送信する。シグナリングサーバ20の接続制御部23は、オファーをユーザ端末10aへ転送するのではなく、メディアサーバ30に設けられたエンドポイントEPb(ユーザ端末10bが、ユーザ端末10aと通信するために接続するエンドポイント)へ転送する。これにより、ユーザ端末10bとメディアサーバ30に設けられたエンドポイントEPbとの間でオファー・アンサーネゴシエーションが開始され、ユーザ端末10bとメディアサーバ30のエンドポイントEPbとの間にピアコネクションが確立する。
【0066】
メディアサーバ30のエンドポイントEPaとエンドポイントEPbとは、接続制御部23によってすでに接続されているから、これによりユーザ端末10aとユーザ端末10bとの間にメディアサーバ30を介したピアコネクションが確立する。
【0067】
接続制御部23は、同様の手順で、ユーザ端末10aとユーザ端末10c,...との間にもメディアサーバ30を介したピアコネクションを確立させる。
【0068】
なお、新メンバーであるユーザ端末10aがピアコネクション確立対象でない場合は、ステップ(4)乃至(6)は実行されない。
【0069】
S105:リアルタイムコミュニケーションの実施
ユーザ端末10a及びユーザ端末10b,10c,...は、入室した仮想空間において会議、セミナー、ライブ等のリアルタイムコミュニケーションを開始する。
図10は、ユーザ端末10の仮想空間入室部15が表示する、入室後の仮想空間の一例である。
本実施の形態によれば、トポロジー定義データ記憶部90は、仮想空間の機能・目的・用途毎にピアトポロジー種別を対応づけている。そのため、ユーザは仮想空間タイプの選択というシンプルな手続きのみで、目的に応じた適切なピアトポロジーでリアルタイムコミュニケーションを利用できる。これにより、無駄なピアコネクション接続の抑制やユーザ端末10の負荷の軽減、又は、不必要なメディアサーバ30の使用の抑制やメディアサーバ30の負荷の軽減が可能である。
【0070】
また、本実施の形態によれば、トポロジー定義データ記憶部90は、参加ユーザ端末数や親子属性に応じて異なるピアトポロジーを定義している。これにより、仮想空間のタイプのみならず、仮想空間で行われるリアルタイムコミュニケーションの態様に応じた適切なピアトポロジーを利用できる。
【0071】
また、本実施の形態によれば、シグナリングサーバ20は、従来のWebRTCベースのシステムにおけるシグナリングサーバのシグナリング通信が有しない、ピアトポロジー制御機能を有している。これにより、ユーザ端末10のアプリケーションからピアトポロジーの概念が隠蔽され、ユーザはピアトポロジーを意識することなく適切なピアトポロジーを有する仮想空間を作成できる。
【0072】
また、本実施の形態によれば、トポロジー定義データ記憶部90に設定を追加することにより、新たな仮想空間タイプを追加したり、同一の仮想空間タイプに異なる複数のピアトポロジーを対応づけたりするなどの柔軟な構成が可能である。
【0073】
このように、本実施の形態によれば、幅広い目的・用途に対応するリアルタイムコミュニケーションシステムを、高効率かつ低コストで運用することができる。また、多様な目的や用途等に適した仮想空間を容易に開発することができる。
【0074】
<実施の形態2>
実施の形態2は、リアルタイムコミュニケーションの態様に応じた適切な課金方式を提供する技術に関するものである。実施の形態2にかかるリアルタイムコミュニケーションシステム1は、仮想空間における有料催事における入退室管理機能、開催実績の評価機能、及び評価結果等に応じた課金機能を提供する。ここでいう課金とは、参加者であるユーザからの参加料の徴収、及び主催者であるユーザへの開催報酬の支払を含む概念である。
【0075】
図11は、実施の形態2にかかるリアルタイムコミュニケーションシステム1の全体構成を示すブロック図である。リアルタイムコミュニケーションシステム1は、ユーザ端末10、シグナリングサーバ20、ウェブサーバ40、APIサーバ50、管理サーバ60、ユーザデータ記憶部70、仮想空間データ記憶部80、利用コンディションデータ記憶部110を含む。このほか、WebRTCをベースとしたシステムの基本的な構成要素であるSTUN/TURNサーバ、SFU/MCUとしてのメディアサーバ等もリアルタイムコミュニケーションシステム1に含まれるのが一般的であるが、実施の形態2の特徴的な機能との関連性が低いため、
図11ではこれらの構成要素の記載を省略している。
【0076】
以下、各構成要素について説明するが、実施の形態1と同様の構成や動作等については適宜記載を省略する。
【0077】
・ユーザ端末10
ユーザ端末10は、典型的にはブラウザアプリケーション又は専用アプリケーション(以下、単にアプリケーションという)が動作するPC(Personal Computer)又はモバイルデバイス等(以下、単にデバイスという)である。アプリケーションはウェブサーバ40から取得されても良く、予めデバイスにセットアップされていても良い。
【0078】
図12は、実施の形態2にかかるユーザ端末10の機能構成を示すブロック図である。ユーザ端末10は、ユーザ認証部11、仮想空間生成部13、仮想空間入室部15、接続確立部17、利用コンディション情報送信部19を有する。
【0079】
ユーザ認証部11、仮想空間生成部13、仮想空間入室部15、接続確立部17については実施の形態1と同様に動作する。
【0080】
利用コンディション情報送信部19は、仮想空間への入室後から退室までの間、シグナリングサーバ20の利用コンディションデータ要求部25が随時行う要求に応じて利用コンディションデータを生成し、利用コンディションデータ要求部25に送信する。利用コンディションデータは、ユーザ端末10から見た仮想空間の状態を示す情報群であって、例えば仮想空間ID、ユーザID、タイムスタンプ、認識された対抗ピア数、入退室状態、ピアコネクション総数、アクティブピアコネクション数等を含む。
【0081】
・サーバ
シグナリングサーバ20、メディアサーバ30、ウェブサーバ40、APIサーバ50、管理サーバ60は、典型的には1又は複数のサーバコンピュータ上で動作するインスタンスである。サーバコンピュータは、クラウドコンピューティング、エッジコンピューティング、フォグコンピューティング等の技術を用いて仮想的に提供されるものであっても良い。シグナリングサーバ20、メディアサーバ30、ウェブサーバ40、APIサーバ50、管理サーバ60の各サーバは、典型的にはそれぞれが1つのインスタンスを有するが、複数のサーバの機能が1つのインスタンスに統合されていても良いし、1つのサーバの機能が複数のインスタンスに分散されていても良い。
【0082】
・シグナリングサーバ20
図13は、実施の形態2にかかるシグナリングサーバ20の機能構成を示すブロック図である。シグナリングサーバ20は、入室受付部21、接続制御部23、利用コンディションデータ要求部25、強制退室処理部27を有する。
【0083】
入室受付部21、接続制御部23については実施の形態1と同様に動作する。
【0084】
利用コンディションデータ要求部25は、管理サーバ60から随時送信される利用コンディションデータ送信要求をユーザ端末10に転送する。また、ユーザ端末10の利用コンディションデータ送信部19から利用コンディションデータを受信し、利用コンディションデータ記憶部110に格納する。
【0085】
強制退室処理部27は、管理サーバ60の要求に応じ、予め定められた利用時間が経過したタイミングで、仮想空間から退室していないユーザを強制的に退室させる処理を実行する。
【0086】
・ウェブサーバ40
ウェブサーバ40は実施の形態1と同様に動作する。
【0087】
・APIサーバ50
APIサーバ50は、他のノード(典型的にはユーザ端末10、管理サーバ60、シグナリングサーバ20)の要求に応じて、ユーザデータ記憶部70、仮想空間データ記憶部80、利用コンディションデータ記憶部110に対する各種データの入出力を代行する。
【0088】
例えばAPIサーバ50は、シグナリングサーバ20の要求に応じ、利用コンディションデータ記憶部110に利用コンディションデータを格納する。また、管理サーバ60の要求に応じ、利用コンディションデータ記憶部110を参照して利用コンディションデータを返す。
【0089】
・管理サーバ60
図17は、実施の形態2にかかる管理サーバ60の機能構成を示すブロック図である。管理サーバ60は、入室案内通知部61、時間管理部63、利用コンディションデータ収集要求部65、利用コンディションデータ評価部67、課金処理部69を有する。
【0090】
入室案内通知部61は、ユーザ端末10のユーザに対し、仮想空間の利用開始時刻が到来して入室可能な状態となったことを知らせる入室案内通知をメール等で送信する。また、有料催事の開催内容の変更やキャンセル等が発生したときにも、その旨の通知をメール等で送信する。
【0091】
時間管理部63は、仮想空間の利用開始時刻が到来して入室可能な状態となると、仮想空間の利用時間(利用開始時刻からの経過時間)のカウントを開始する。ユーザ端末10への利用時間カウントの送信を行っても良い。利用時間が予め定められた上限を超えたとき、時間管理部63は、仮想空間から退室していないユーザを強制的に退室させる処理をシグナリングサーバ20の強制退室処理部27に実行させる。このように厳密な時間管理を行うことにより、利用実績に対する課金を公正に実施することができる。
【0092】
利用コンディションデータ収集要求部65は、仮想空間の利用時間中、所定の間隔でシグナリングサーバ20に利用コンディションデータ送信要求を送信する。
【0093】
利用コンディションデータ評価部67は、利用時間が終了すると、利用コンディションデータ記憶部110に蓄積された利用コンディションデータを評価し、当該仮想空間が有料設定である場合は、課金処理部69に課金処理要求を行う。
【0094】
課金処理部69は、利用コンディションデータ評価部67による利用コンディションデータの評価結果に基づいて、課金額、すなわち主催者であるユーザへの開催報酬額や参加者であるユーザから徴収する参加料を計算する。また、参加者であるユーザから参加料を徴収し、主催者であるユーザへ開催報酬額を支払う課金処理を行う。なお課金処理は、外部の決済代行サービス等により実行されても良い。この場合、課金処理部69は決済代行サービスに課金額すなわち開催報酬額や参加料を通知する。
【0095】
・ユーザデータ記憶部70、仮想空間データ記憶部80
ユーザデータ記憶部70、仮想空間データ記憶部80については、実施の形態1と同様に動作する。
【0096】
・利用コンディションデータ記憶部110
利用コンディションデータ記憶部110は、ユーザ端末10から収集された利用コンディションデータを格納する。
【0097】
図14は、実施の形態2にかかるリアルタイムコミュニケーションシステム1の動作を示すフローチャートである。
【0098】
S201:アプリケーションのセットアップ
実施の形態1のS101と同様に、ユーザ端末10は、仮想空間の利用に先立って、ウェブサーバ10からデバイスにアプリケーションをダウンロードし、インストールする。なお、デバイスに予めアプリケーションがセットアップしてある場合は、ステップS101は不要である。
【0099】
S202:ログイン
実施の形態1のS102と同様に、ユーザは、ユーザ端末10のユーザ認証部11に認証情報(例えばID、パスワード、生体情報等)を入力する。認証情報はAPIサーバ50に送信される。APIサーバ50は、認証情報と、ユーザデータ記憶部70に予め格納されている認証情報とを照合し、利用資格の有無を判定する。資格有りの場合、S203又はS204ヘ遷移する。
【0100】
S203:仮想空間の作成
実施の形態1のS103と同様に、ユーザは、目的に応じた仮想空間を作成することができる。
【0101】
S204:仮想空間への入室
実施の形態1のS104と同様に、ユーザは、作成済みの仮想空間に入室することができる。シグナリングサーバ20は、仮想空間のピアトポロジーに応じて、複数のユーザ端末10(10a,10b,10c,...とする)及びメディアサーバを相互に通信可能に接続するための制御を開始する。
【0102】
例えば
図15に示すようなP2Pフルメッシュ型のピアトポロジーであれば、シグナリングサーバ20は、ユーザ端末10aと10b、10bと10c、10cと10aの間にピアコネクションを確立させる。これにより、ユーザ端末10(10a,10b,10c)は仮想空間への入室が可能な状態となる。
【0103】
S205:時間管理、利用コンディションデータの収集
管理サーバ60の入室案内通知部61は、ユーザ端末10のユーザに対し入室案内通知を送信する。時間管理部63は、仮想空間の利用時間のカウントを開始する。ユーザ端末10へ利用時間カウントを送信しても良い。また、時間管理部63は、利用時間が予め定められた上限を超えたとき、仮想空間から退室していないユーザを強制的に退室させる処理をシグナリングサーバ20の強制退室処理部27に実行させる。
【0104】
管理サーバ60の利用コンディションデータ収集要求部65は、仮想空間の利用時間中、所定の間隔でシグナリングサーバ20に利用コンディションデータ送信要求を送信する。シグナリングサーバ20の利用コンディションデータ要求部25は、ユーザ端末10に利用コンディションデータ送信要求を転送する。
【0105】
ユーザ端末10の利用コンディションデータ送信部19は、利用コンディションデータ送信要求を受信する毎に、その時点における利用コンディションデータを収集する。
図16に、利用コンディションデータの一例を示す。この例では、仮想空間ID(ユーザ端末10が入室している仮想空間のID)、ユーザID(ユーザ端末10がログインに使用したID)、タイムスタンプ(利用コンディションデータ送信要求の受信時刻又は送信時刻)、要求周期(利用コンディションデータ送信要求の受信周期又は送信周期)、認識された対抗ピア数、入退室状態、ピアコネクション総数、アクティブピアコネクション数を利用コンディションデータとして収集している。収集した利用コンディションデータは、利用コンディションデータ送信要求の応答としてシグナリングサーバ20へ送信される。シグナリングサーバ20の利用コンディションデータ要求部25は、APIサーバ50が提供するデータ登録APIを介して、利用コンディションデータ記憶部110に登録する。したがって、利用コンディションデータ記憶部110には時系列の利用コンディションデータが蓄積されることになる。
【0106】
ここで、認識された対抗ピア数、ピアコネクション総数、アクティブピアコネクション数は、ユーザ端末10が認識可能なピアコネクションに関する情報となる。
図15の例で言えば、ユーザ端末10aが収集する利用コンディションデータは、ピアコネクション1、2、3、5に関するものである。
【0107】
APIサーバ50は、利用コンディションデータ登録用APIの使用に際し、特別な権限を要求することが好ましい。すなわち、当該APIをユーザ端末10が直接利用することができないよう設定する。又は、シグナリングサーバ20とユーザ端末10との間の利用コンディションデータ送信要求及び応答の通信に、チャレンジアンドレスポンス方式等による認証を適用しても良い。これにより、虚偽の利用コンディションデータの登録を防ぐことができる。
【0108】
S206:利用コンディションデータの評価
管理サーバ60の利用コンディションデータ評価部67は、仮想空間の利用時間が終了したなら、利用コンディションデータ記憶部110から当該仮想空間に関する利用コンディションデータを取得する。また、利用コンディションデータに基づいて、仮想空間で行われた催事の実績を評価し、当該仮想空間が有料設定である場合は、課金処理部69に課金処理要求を行う。
【0109】
例えば、利用コンディションデータ評価部67は、催事を正常に実施できた時間(正常履行時間と称する)、実施できなかった時間(不履行時間と称する)を算出する。例えば、主催者Aのある時間帯におけるアクティブピアコネクション数が0であった場合は、主催者Aが未入室であったか、参加者が0であったか、主催者A側の通信環境に異常があった可能性が高い。このような場合は、当該時間帯は想定した内容の催事が実施されなかった、すなわち不履行時間にあたると判定する。不履行時間が存在する場合、利用コンディションデータ評価部67は、催事の開催時間(仮想空間の利用時間)に対する正常履行時間の割合を計算して評価値とすることができる。
【0110】
なお、上述の不履行時間の判定基準、正常履行時間の判定基準、評価値の算定方法等はあくまで一例であり、催事の性格等に応じ任意に設定されて良い。
【0111】
S207:課金
課金処理部69は、参加者であるユーザからの参加料の徴収、主催者であるユーザに対する報酬(通常は徴収した参加料を原資とする)の支払等の課金処理を行う。参加者であるユーザからの徴収金額は、原則としては主催者が設定した参加料であるが、S206で算出した評価値に応じて参加料に調整を加えた金額を実際の徴収金額としても良い。例えば、課金サーバ120は、当初設定されていた参加料に評価値を乗じた金額を参加者であるユーザからの実際の徴収金額とすることができる。また、不履行時間が開催時間に占める割合が所定の閾値を超えた場合、課金サーバ120は、当該催事自体を不履行と判断し、参加者であるユーザからの参加料の徴収を行わないこととしても良い。
【0112】
なお、参加料の徴収、開催報酬の支払にかかる資金決済のタイミングは任意であって良い。例えば、参加料として利用できるポイントをユーザに事前に購入させるなど、資金決済自体は催事とは関係のないタイミングで実行しても良い。この場合、課金処理部69は参加料や報酬に相当するポイントを移動させることで課金処理を行う。
【0113】
本実施の形態によれば、シグナリングサーバ20は、ピアコネクションの確立以降もユーザ端末10とのセッションを維持し、利用コンディションデータの収集を行う。この構成により、シグナリングサーバ20を通信ハブとして活用し、利用コンディションデータを継続的に収集することができる。なお従来のWebRTCベースのシステムにおいては、シグナリングサーバはピアコネクションの確立以降はユーザ端末とのセッション維持を行わない。
【0114】
また、本実施の形態によれば、管理サーバ60は、シグナリングサーバ20を利用した各仮想空間の入退室管理(ユーザ端末10への利用時間カウントの送信、終了時刻における強制退室等)、ユーザへの入室案内通知、利用コンディションデータの収集を行う。そして、蓄積された利用コンディションデータを評価し、催事の実施実績に基づく適切な課金を行う。
【0115】
これにより、本実施の形態では、主催者側の背信的行為(参加料だけ徴収して催事を開催しないなど)や不履行等による、参加者への不利益をもたらす取引を抑制することができる。
【0116】
また、本実施の形態では、催事の実施実績の評価値に基づく適切な課金が行われるため、参加者は安心してサービスを利用できるようになる。これにより、単に仮想空間を提供するだけでなく、安心して「コト」の関わる商取引を行うことが可能なプラットフォームを提供できる。
【0117】
<その他の実施の形態>
なお、本発明は上記実施の形態に限られたものではなく、趣旨を逸脱しない範囲で適宜変更することが可能である。例えば、実施の形態1では、ユーザが仮想空間タイプを指定した時点でピアトポロジーが固定的に決定される例を開示したが、本発明はこれに限定されるものでなく、ピアトポロジーは動的に変更されても良い。例えば、ユーザが参加者として1000人を想定し、仮想空間タイプ識別子C「会議室」の仮想空間を作成した場合であっても、実際の参加者が10人未満であった場合は、シグナリングサーバ20は、ノード数上限が10である仮想空間タイプ識別子A「会議室」のピアトポロジーを提供しても良い。そして、参加者が増加して10人を超えた場合は仮想空間タイプ識別子B「会議室」にピアトポロジーを変更し、参加者がさらに増加して100人を超えた場合には仮想空間タイプ識別子C「会議室」にピアトポロジーを変更する。このように、催事の実態に応じてピアトポロジーを動的に変更することで、計算資源の効率的利用と運用コストの削減とをより徹底することができる。
【0118】
また、本発明の趣旨を逸脱しない限り、任意の構成要素を取り除いたり、付け加えたりしても良い。例えば、実施の形態1にかかるリアルタイムコミュニケーションシステム1に、実施の形態2の入退室管理機能、開催実績の評価機能、及び評価結果等に応じた課金機能を付加しても良い。又は、実施の形態2にかかるリアルタイムコミュニケーションシステム1に、実施の形態1のピアトポロジーの自動決定機能を付加しても良い。
【0119】
また、上述の実施の形態では、本発明を主にハードウェアの構成として説明したが、これに限定されるものではなく、任意の処理を、CPU(Central Processing Unit)にコンピュータプログラムを実行させることにより実現することも可能である。この場合、コンピュータプログラムは、様々なタイプの非一時的なコンピュータ可読媒体(non-transitory computer readable medium)を用いて格納され、コンピュータに供給することができる。非一時的なコンピュータ可読媒体は、様々なタイプの実体のある記録媒体(tangible storage medium)を含む。非一時的なコンピュータ可読媒体の例は、磁気記録媒体(例えばフレキシブルディスク、磁気テープ、ハードディスクドライブ)、光磁気記録媒体(例えば光磁気ディスク)、CD-ROM(Read Only Memory)、CD-R、CD-R/W、半導体メモリ(例えば、マスクROM、PROM(Programmable ROM)、EPROM(Erasable PROM)、フラッシュROM、RAM(random access memory))を含む。また、プログラムは、様々なタイプの一時的なコンピュータ可読媒体(transitory computer readable medium)によってコンピュータに供給されてもよい。一時的なコンピュータ可読媒体の例は、電気信号、光信号、及び電磁波を含む。一時的なコンピュータ可読媒体は、電線及び光ファイバ等の有線通信路、又は無線通信路を介して、プログラムをコンピュータに供給できる。
【符号の説明】
【0120】
1 リアルタイムコミュニケーションシステム
10 ユーザ端末
11 ユーザ認証部
13 仮想空間生成部
15 仮想空間入室部
17 接続確立部
19 利用コンディションデータ送信部
20 シグナリングサーバ
21 入室受付部
23 接続制御部
25 利用コンディションデータ要求部
27 強制退室処理部
30 メディアサーバ
40 ウェブサーバ
50 APIサーバ
60 管理サーバ
61 入室案内通知部
63 時間管理部
65 利用コンディションデータ収集要求部
67 利用コンディションデータ評価部
69 課金処理部
70 ユーザデータ記憶部
80 仮想空間データ記憶部
90 トポロジー定義データ記憶部
110 利用コンディションデータ記憶部