次に、本発明の一実施の形態について、図面を参照して詳細に説明する。
図2は、本発明の一実施の形態に係るパス設定装置を含む端末の構成を示すブロック図である。本実施の形態は、本発明を、遠隔会議を行うための通信ネットワークを構成する端末に適用した例である。
この通信ネットワークは、例えば図1に示す配置形態を取り、配置される端末は、全て以下に説明する構成を有する。但し、通信ネットワークにおける音声映像の配送パスを制御するサーバ端末として機能する端末(以下、適宜「サーバ端末」という)と、このサーバ端末の制御を受ける端末とは、予め定められているものとする。サーバ端末の制御を受ける端末は、以下、適宜「クライアント端末」という。また、通信ネットワークに配置されるサーバ端末およびクライアント端末は、適宜「参加端末」と総称する。サーバ端末には、全ての参加端末のIPアドレスが予め登録されている。また、各参加端末は、別の全ての参加端末との間で、サーバ端末が制御する音声映像の配送パスとは独立して、制御信号を送受信することが可能となっている。
図2において、端末100は、制御信号送受信部110、情報収集クライアント部120、制御サーバ部130、拡張配送木計算部140、テーブル設定サーバ部150、テーブル設定クライアント部160、転送テーブル格納部170、発言権申請UI(user interface)部180、発言権許可UI部190、会議制御UI部200、会議クライアント部210、符号発生部220、データパケット送受信部230、および符号再生部240を有する。
端末100は、サーバ端末として機能するとき、配送木を通信ネットワークに設定するフェーズの処理と、クライアント端末から発言要求を受け付けるフェーズの処理とを実行する。
また、端末100は、クライアント端末として機能するとき、サーバ端末から配送木の設定を受けるフェーズの処理と、サーバ端末に対して発言要求を行うフェーズの処理とを実行する。また、端末100は、クライアント端末として機能するとき、発言要求が受け付けられた後に、情報の配信を行うフェーズの処理を実行する。
ここで、説明の簡便化のため、以下のように語句を定義する。
配送木を通信ネットワークに設定するフェーズにおけるサーバ端末としての端末100の動作は、「配送木設定サーバ動作」という。また、クライアント端末から発言要求を受け付けるフェーズにおけるサーバ端末としての端末100の動作は、「発言要求サーバ動作」という。
また、サーバ端末から配送木の設定を受けるフェーズにおけるクライアント端末としての端末100の動作は、「配送木設定クライアント動作」という。また、サーバ端末に対して発言要求を行うフェーズにおけるクライアント端末としての端末100の動作は、「発言要求クライアント動作」という。そして、発言要求クライアント動作のうち、情報の配信を行うクライアント端末としての端末100の動作は、「情報配信動作」という。
また、発言要求を行い得る参加端末は、「発言候補端末」という。また、実際に発言要求を行った参加端末は、「発言要求端末」という。また、発言要求が許可されて音声映像の発信を行い得る参加端末は、「発信端末」という。
更に、発言候補端末を根とする配送木は、発言候補端末の数だけ存在する。これらの配送木を代表する配送木は、「代表配送木」という。また、代表配送木の根に位置する参加端末は、「ルート端末」という。そして、ルート端末とならない発言要求端末から近くのルート端末までの配送パスは、「接木パス」という。また、代表配送木と接木パスとを組み合わせた配送パスは、「拡張配送木」という。どのような配送木を代表配送木とするか、および各発言要求端末をどのルート端末と接木パスで結ぶかについては、後述する。
以下、各部の機能を、上述の動作に分けて説明する。
まず、各動作に共通な機能について説明する。
制御信号送受信部110は、他の参加端末との間で、呼の確立、参加、離脱、終了等の呼制御に関する制御情報や、配送木制御に関する信号を含む各種制御信号の送受信を行う。端末100の各部は、他の参加端末との音声映像のデータ通信以外の通信を、制御信号送受信部110を介して行う。
次に、配送木設定クライアント動作における各部の機能について説明する。
情報収集クライアント部120は、制御サーバ部130からの要求に応じて、フルメッシュのメトリック情報を返信する。より具体的には、情報収集クライアント部120は、他の全ての参加端末との間の帯域および往復時間を計測し、計測結果を、メトリック情報としてサーバ端末の制御サーバ部130に送信する。
帯域および往復時間の計測手法としては、例えば、Packet Train法またはPacket Pair法を採用することができる。Packet Pair法は、2つの計測パケットの到着間隔の開き、つまり、計測パケットの送信時刻と応答パケットの到着時刻の差分から、往復時間を計測し、帯域を推定する手法である。Packet Train法は、複数の試験パケットの到着時刻の差から利用可能な帯域を推定する手法である。
テーブル設定クライアント部160は、サーバ端末から後述の転送テーブルを受信し、受信した転送テーブルを、後述の転送テーブル格納部170に格納する。または、テーブル設定クライアント部160は、転送テーブル格納部170に既に格納されている転送テーブルを、サーバ端末から受信した転送テーブルで更新する。
転送テーブル格納部170は、後述のデータパケット送受信部230によって用いられる転送テーブルを格納する。
次に、配送木設定サーバ動作における各部の機能について説明する。
制御サーバ部130は、通信ネットワーク上の全てのクライアント端末の情報収集クライアント部120に対して上述のメトリック情報を要求し、メトリック情報を収集する。そして、制御サーバ部130は、拡張配送木計算部140に対して、収集したメトリック情報を出力して、全ての発言候補端末を根とする配送木の計算と、計算された配送木の中からの代表配送木の選択とを指示する。また、制御サーバ部130は、拡張配送木計算部140に対して、発言端末から代表配送木までの接木パスを計算し、発言端末毎に拡張配送木を計算することを指示する。
拡張配送木計算部140は、制御サーバ部130から入力されたメトリック情報に基づいて、発言候補端末の全てについて、発言候補端末をルート端末とする配送木を計算する。そして、拡張配送木計算部140は、計算した配送木の中から、代表配送木を選択する。配送木の計算手法および代表木の選択手法については、後述する。
更に、拡張配送木計算部140は、各発言候補端末が発言端末となるときにどの代表配送木を利用すべきか、および、各発言候補端末から該当する代表配送木のルート端末までの接木パスを計算する。すなわち、拡張配送木計算部140は、発言候補端末毎に、拡張配送木を計算する。そして、拡張配送木計算部140は、計算した拡張配送木を、テーブル設定サーバ部150へ出力する。
テーブル設定サーバ部150は、拡張配送木計算部140から入力された全ての拡張配送木を、全ての参加端末の転送テーブルに変換し、生成した各転送テーブルを、該当する参加端末に通知して設定する。ここでは、複数の発言候補端末に対応して複数の拡張配送木が生成されるので、個々の転送テーブルは、複数の拡張配送木に対応した内容となる。転送テーブルにおける拡張配送木の区別は、データパケットの送信元IPアドレスと宛先IPアドレスと宛先ポート番号との組の区別によって行われる。
図3は、転送テーブルの内容の一例を示す図である。
図3に示すように、転送テーブル310は、送信元IPアドレス311と宛先IPアドレス312と宛先ポート番号313の組に対応付けて、次ホップIPアドレス314と宛先ポート番号315との組を記述する。
テーブル設定サーバ部150は、接木パスに対応する部分において、宛先IPアドレス312に、この転送テーブル310が割り当てられる端末100ではないルート端末のIPアドレスを記述する。また、テーブル設定サーバ部150は、宛先ポート番号313、315に、接木パスであることを示す所定のポート番号(以下「接木ポート番号」という)を記述する。また、テーブル設定サーバ部150は、次ホップIPアドレス314に、接木パスにおける次の転送先の参加端末のIPアドレスを記述する。
また、テーブル設定サーバ部150は、配送木に対応する部分においては、送信元IPアドレス311に、ルート端末のIPアドレスを記述する。また、テーブル設定サーバ部150は、宛先ポート番号313、315に、配送木であることを示す所定のポート番号(以下「配送木ポート番号」という)を記述する。また、テーブル設定サーバ部150は、次ホップIPアドレス314に、配送木における次の転送先の参加端末のIPアドレスを記述する。
また、テーブル設定サーバ部150は、接木パスから配送木への転送に対応する部分(つまりルート端末としての機能に対応する部分)においては、宛先IPアドレス312に、ルート端末のIPアドレスを記述する。また、テーブル設定サーバ部150は、宛先ポート番号313に、接木ポート番号を記述する。また、テーブル設定サーバ部150は、次ホップIPアドレス314に、配送木における次の転送先の参加端末のIPアドレスを記述し、宛先ポート番号315に、配送木ポート番号を記述する。
ここで、「xxxx」が接木ポート番号であり、「yyyy」が配送木ポート番号であるとする。この場合、転送テーブル310のうち、1行目316は接木パスに対応し、2行目317は配送木に対応し、3行目318は接木パスから配送木への転送に対応する。接木ポート番号および配送木ポート番号は、例えば、通信ネットワークに予め設定された共通の値である。
このような転送テーブル310を用いることにより、各参加端末は、各発言端末から受信したデータパケットを、その発言端末に対して計算された接木パスまたは配送木に従って転送することができる。また、各ルート端末において、データパケットの宛先ポート番号の付け替えが行われるので、通信ネットワークは、拡張配送木に従ってデータパケットを転送することができる。
すなわち、発言端末は、送信パケットにおいて、宛先IPアドレスにルート端末のIPアドレスを記述し、宛先ポート番号に接木ポート番号を記述すればよい。このことによって、発言端末は、送信パケットを、拡張配送木に従って、全ての参加端末に配信することができる。
発言端末が使用すべきルート端末のIPアドレスは、ここでは、上述の発言許可メッセージによって、サーバ端末から通知されるものとする。接木ポート番号および配送木ポート番号は、発言許可メッセージによって通知するようにしてもよい。
次に、発言要求クライアント動作における各部の機能について説明する。
発言権申請UI部180は、端末100に付属するリモートコントローラ、キーボード、およびマウス等の操作入力装置(図示せず)を介して、端末100のユーザから、発言要求の入力を受け付ける。発言要求の入力は、例えば、ディスプレイ画面上の所定の領域をポインタが指している状態で、マウスのボタンがクリックされることにより行われる。発言権申請UI部180は、発言要求が入力されると、その旨を会議クライアント部210に通知する。
会議制御UI部200は、端末100に付属するカメラおよびマイクロフォン等の情報入力装置(図示せず)を介して、端末100のユーザの映像および音声を入力する。そして、会議制御UI部200は、入力した映像および音声から、リフレッシュ画面を生成し、音声映像として会議クライアント部210へ出力する。また、会議制御UI部200は、端末100に付属するディスプレイおよびラウドスピーカ等の情報出力装置(図示せず)を介して、会議クライアント部210から入力された他の参加端末の音声映像を、端末100のユーザに向けて出力する。
会議クライアント部210は、発言要求が入力された旨の通知を受けると、ユーザの音声映像の配信を要求する発言要求メッセージを生成し、生成した発言要求メッセージを、サーバ端末へ送信する。発言要求メッセージは、端末100のIPアドレスを少なくとも含む。
また、会議クライアント部210は、発言許可メッセージを受信したとき、会議制御UI部200を用いてその旨をユーザに通知する。また、会議クライアント部210は、発言許可メッセージに含まれるルート端末のIPアドレスを、情報配信時宛先として、符号発生部220に設定する。
次に、発言要求サーバ動作における各部の機能について説明する。
制御サーバ部130は、クライアント端末から、発言要求メッセージを受信すると、発言権許可UI部190を用いて、発言要求を受理して発言を許可するか否かの判断をユーザから取得する。具体的には、制御サーバ部130は、発言要求メッセージを受信したとき、発言許可UI部190に対して、発言要求メッセージの送信元の識別情報を通知し、その応答として発言要求を許可するか否かについての通知を受け取る。
発言要求メッセージとは、ユーザの音声映像の配信を行うことを要求するメッセージであり、少なくとも送信元のIPアドレスを含む情報である。すなわち、発言要求メッセージの送信元は、発言要求端末である。
そして、制御サーバ部130は、発言要求端末からの発言を許可するとき、その発言要求端末に対して、発言許可メッセージを送信する。発言許可メッセージとは、発言が許可された旨を通知するとともに、拡張配送木計算部140によって計算された代表配送木のルート端末に対して、データパケットを送信することを指示するメッセージである。
各発言要求端末がどのルート端末を宛先としてデータパケットを送信するかは、その発言要求端末に設定された転送テーブルに基づいて決定される。なお、制御サーバ部130は、発言を許可しないとき、発言許可メッセージを所定の時間内に返信しないことをもって、発言が許可されなかった旨を通知してもよいし、発言が許可されなかった旨を示す発言不許可メッセージを送信してもよい。
発言権許可UI部190は、制御サーバ部130から発言要求端末の識別情報を通知されたとき、上述の操作入力装置を介して、端末100のユーザから、発言要求の可否についての入力を受け付ける。発言権許可UI部190は、入力された発言要求の可否を、制御サーバ部130に通知する。発言要求が許可される場合には、上述の通り、制御サーバ部130は、発言許可メッセージを発言要求端末に送信する。この通知および可否入力は、例えば、発言要求端末の識別情報をディスプレイ画面に表示し、ディスプレイ画面上の所定の領域をポインタが指している状態で、マウスのボタンがクリックされることにより行われる。
次に、情報配信動作における各部の機能について説明する。
会議クライアント部210は、ユーザの音声映像の入力を開始し、入力される音声映像を、符号発生部220に出力する。また、会議クライアント部210は、符号再生部240を介して音声映像を入力したとき、入力した音声映像を会議制御UI部200に出力する。
符号発生部220は、音声映像に対して、圧縮処理を含む所定のエンコード処理を行う。より具体的には、符号発生部220は、音声映像を格納し、端末100のIPアドレスを送信元IPアドレスとし、設定された情報配信時宛先を宛先IPアドレスとし、かつ、接木ポート番号を宛先ポート番号としたデータパケットを生成する。そして、符号発生部220は、生成したデータパケットを、データパケット送受信部230へ出力する。
データパケット送受信部230は、符号発生部220からの音声映像を含むパケット(以下「データパケット」という)と、他の参加端末から受信したデータパケットとを転送する。より具体的には、データパケット送受信部230は、会議クライアント部210または他の参加端末から受信したデータパケットを、転送テーブル格納部170に格納された転送テーブル(図3参照)に従って、他の参加端末および会議クライアント部210へそれぞれ転送するとともに、適宜、データパケットの宛先ポート番号の付け替えを行う。会議クライアント部210へのデータパケットの転送は、データパケットの複製と表現することもできる。
転送テーブルは、上述の通り、発言要求端末毎の拡張配送木に対応した内容となっている。したがって、データパケット送受信部230は、符号発生部220または他の参加端末から、特定の送信元から特定のポートを宛先として送られてきたデータパケットを、会議クライアント部210および決定された拡張配送木における次の参加端末へと転送する。
符号再生部240は、音声映像に対して伸長処理を含む所定のデコード処理を行う。
端末100は、例えば、CPU(central processing unit)、制御プログラムを格納したROM(read only memory)等の記憶媒体、RAM(random access memory)等の作業用メモリ、および通信回路を用いて実現することができる。この場合、上記した各部の機能は、CPUが制御プログラムを実行することで実現される。
このような構成を有する端末100は、サーバ端末として機能するとき、代表配送木を用いて、発言候補端末ごとの拡張配送木を、予め通信ネットワークに設定することができる。そして、端末100は、クライアント端末として機能するとき、設定された拡張配送木を用いて、情報の発信および複製転送を行うことができる。
したがって、端末100を配置した通信ネットワークは、発言端末が切り替わる毎に配送パスとしての拡張配送木を計算する必要がないので、より短時間で配送パスとしての拡張配送木を設定することができる。
また、設定される拡張配送木は、参加端末の全てについてではなく、発言候補端末についてのみ設定されるので、拡張配送木の計算時間を短縮することができる。
すなわち、n台の参加端末の中から、同時に発言するm台の参加端末を選択する場合、その組み合わせの数は、nCm=n!/{m!*(n−m)!}となる。参加台数および同時に発言する参加端末の台数nが大きいとき、この組み合わせ数は膨大となり、m個のストリームが競合する配送木の計算をこの組み合わせの全てについて繰り返し行うと、かなりの時間を要することになる。本実施の形態のように、配送木の計算を発言候補端末に絞って行うことにより、拡張配送木の計算時間を大幅に短縮することができる。
また、発言候補端末の組み合わせを、講義者と一人の質問者との組み合わせに限定するので、2個のストリームが競合する配送木の計算を、高々、n−1回繰り返せばよく、拡張配送木の計算時間を更に大きく短縮することができる。
また、発言候補端末を根とする全ての配送木ではなく、これら配送木の中から絞られた代表配送木を決定し、代表配送木の根に該当しない発言候補端末については、接木パスを設定することによって代表配送木を利用する。これにより、転送テーブルのデータサイズを小さくすることができ、拡張配送木の設定に要する時間や、データパケットの複製転送に要する時間を短縮することができる。
以下、上記構成を有する端末100の動作について説明する。
図4は、端末100の全体動作の一例を示すフローチャートである。
まず、ステップS1000において、端末100は、サーバ端末として機能することが設定されているか否かを判断する。
端末100は、サーバ端末として機能することが設定されている場合には(S1000:YES)、配送木設定サーバ動作および発言要求サーバ動作を実行する(S2000、S3000)。そして、端末100は、設定した拡張配送木の変更を行うことなくサーバ端末としての機能を継続する場合には(S4000:NO)、ステップS3000へ戻る。また、端末100は、設定した拡張配送木を変更する場合には(S4000:YES、S5000:YES)、ステップS2000へ戻る。サーバ端末としての機能を継続しない場合には(4000:YES、S5000:NO)、ステップS6000へ進む。
一方、端末100は、クライアント端末として機能することが設定されている場合には(S1000:NO)、配送木設定クライアント動作および発言要求クライアント動作を実行する(S7000、S8000)。そして、クライアント端末としての機能を継続する場合には(S9000:YES)、ステップS7000へ戻り、クライアント端末としての機能を継続しない場合には(9000:NO)、ステップS6000へ進む。
ステップS6000において、端末100は、ユーザからの指示入力等により動作の終了が指示されたか否かを判断する。端末100は、動作の終了が指示されていない場合には(S6000:NO)、ステップS1000に戻り、動作の終了が指示された場合には(S6000:YES)、一連の動作を終了する。
なお、端末100は、上記各動作を行っている間、並行して、データパケット送受信部230の機能を動作させ、転送テーブルに従った受信パケットの複製転送処理を行う。すなわち、端末100は、どのフェーズで動作しているかにかかわらず、ALMによるデータパケットの複製転送を行う。
まず、配送木設定サーバ動作について説明する。
図5は、端末100の配送木設定サーバ動作の一例を示すフローチャートである。
まず、ステップS2100において、制御サーバ部130は、全ての参加端末の最新のメトリック情報と全ての参加端末の属性情報の一覧と取得し、取得したメトリック情報を拡張配送木計算部140へ出力する。より具体的には、制御サーバ部130は、各参加端末の情報収集クライアント部120に対して、他の全ての参加端末との間の遅延時間および使用可能帯域の計測と、計測結果および属性情報の返信とを指示することにより、メトリック情報を取得する。
参加端末の属性情報は、例えば、参加端末のユーザの属性、IPアドレス、設置地域、および通信ネットワークにおける位置を含む。参加端末の属性情報は、予め端末100に格納されていてもよいし、配送木設定サーバ動作を行うごとに、通信ネットワークに配置された情報サーバから取得してもよい。また、参加端末の属性情報は、制御サーバ部130においてメトリック情報と併せて各参加端末から取得してもよい。
そして、ステップS2200において、拡張配送木計算部140は、取得した参加端末の属性情報の一覧に基づいて、参加端末から、発言候補端末を選定する。
発言候補端末は、予め定められていてもよいし、ユーザの属性に基づいて選定してもよい。例えば、ユーザの属性が、遠隔会議の講演者、他の会議の講演者、発言グループの代表者等である参加端末を、発言候補端末に選定することが考えられる。また、過去の会議において、発言要求がより多かった参加端末や、質問のストリームの送信時間がより長かった参加端末を、優先的に選択してもよい。また、複数の参加端末を組にし、組毎に使用可能帯域を計測し、使用可能帯域がより多い組の参加端末を、優先的に選択してもよい。
そして、ステップS2300において、拡張配送木計算部140は、配送木計算処理を実行する。配送木計算処理は、発言候補端末を根とする配送木を計算する処理である。この処理の詳細については後述する。
ここでは、同時に発言し得るのは、講演者と、他の発言候補端末のユーザのうち一人との、併せて二人であるものとする。したがって、講演者を根とする配送木と発言候補端末のうちの1つを根とする配送木とが並存するように、それぞれの配送木は計算される。
そして、ステップS2400において、拡張配送木計算部140は、代表配送木選定処理を実行する。代表配送木選定処理は、計算された配送木の中から、代表配送木を選定する処理である。この処理の詳細については後述する。
そして、ステップS2500において、拡張配送木計算部140は、全ての発言候補端末に対して、代表配送木に接木パスを組み合わせることによって、拡張配送木を計算する。拡張配送木の計算の詳細については後述する。そして、拡張配送木計算部140は、計算した拡張配送木を示す情報(以下単に「拡張配送木」という)を、テーブル設定サーバ部150に出力する。また、拡張配送木計算部140は、拡張配送木毎に発言候補端末と配送木のルート端末のIPアドレスとを対応付けた情報を、ルート端末情報として、制御サーバ部130に設定する。
そして、ステップS2600において、テーブル設定サーバ部150は、転送テーブル設定処理を実行し、配送木設定サーバ動作を終了する。転送テーブル設定処理は、入力された全ての拡張配送木を通信ネットワークで実現するように、各参加端末に転送テーブルを設定する処理である。この処理の詳細については後述する。
このような配送木設定サーバ動作により、端末100は、通信ネットワークに対して、全ての発言候補端末に対応した拡張配送木を設定することができる。
図6は、配送木計算処理の一例を示すフローチャートである。
まず、ステップS2310において、拡張配送木計算部140は、講演者の参加端末(以下「講演者端末」という)を選定する。講演者端末は、予め定められていてもよいし、ユーザの属性に基づいて選定してもよい。
そして、ステップS2320において、拡張配送木計算部140は、講演者端末を除いた発言候補端末の中から、1つの発言候補端末を選択する。
そして、ステップS2330において、拡張配送木計算部140は、選択した発言候補端末が利用する帯域幅を決定する。より具体的には、拡張配送木計算部140は、例えば、収集されたメトリック情報から、発言候補端末がデータパケットの配信に利用することが可能な最大帯域幅を算出する。そして、拡張配送木計算部140は、算出した最大帯域幅の範囲内で、所定の品質の音声映像を配信することが可能な帯域幅を決定する。
そして、ステップS2340において、拡張配送木計算部140は、メトリック情報と、決定した帯域幅とを用いて、講演者端末と選択した発言候補端末とをそれぞれ根とし互いに競合しながら帯域を分け合う、2つの配送木を計算する。より具体的には、拡張配送木計算部140は、例えば、まず、決定した帯域幅を採用して、発言候補端末を根とする配送木を、最小スパニングツリーアルゴリズムを用いて算出する。そして、拡張配送木計算部140は、算出した配送木によって消費される帯域の残りの帯域について、同様に講演者端末を根とする配送木の算出を試みる。
ここで、講演者端末を根とする配送木の条件の1つは、所定の品質の音声映像を配信することが可能な帯域幅を有することである。したがって、拡張配送木計算部140は、発言候補端末が利用する帯域幅として決定された帯域幅が大きすぎる場合、講演者端末を根とする配送木を計算することができないと判断する。
そして、ステップS2350において、拡張配送木計算部140は、他に検討すべき帯域幅が存在するか否かを判断し、他に検討すべき帯域幅が存在する場合には(S2350:YES)、ステップS2330へ戻る。他に検討すべき帯域幅が存在する場合とは、例えば、講演者端末を根とする配送木を計算することができない場合、および、計算することはできたが、発言候補端末の帯域幅と講演者端末の帯域幅とのバランスが悪い場合である。そして、拡張配送木計算部140は、別の帯域幅を決定して処理を繰り返す。
拡張配送木計算部140は、例えば、大きい帯域幅から順に決定し、2つの配送木が計算されるまで、少しずつ帯域幅を減ずるようにすればよい。これにより、選択した発言候補端末が利用する帯域幅をできるだけ大きく確保しつつ、並存する2つの配送木を計算することができる。
拡張配送木計算部140は、他に検討すべき帯域幅が存在しない場合には(S2350:NO)、ステップS2360に進む。
ステップS2360において、拡張配送木計算部140は、未選択の発言候補端末が残っているか否かを判断し、未選択の発言候補端末が残っている場合には(S2360:YES)、ステップS2320へ戻る。そして、拡張配送木計算部140は、未選択の発言候補端末を選択して処理を繰り返す。拡張配送木計算部140は、全ての発言候補端末を選択して処理を行った場合には(S2360:NO)、配送木計算処理を終了する。
このような配送木計算処理により、端末100は、全ての発言候補端末に対して配送木を計算することができる。
図7は、代表配送木選定処理の一例を示すフローチャートである。
まず、ステップS2410において、拡張配送木計算部140は、計算された配送木を、ルート端末の位置を基準としてグルーピングする。このグルーピングは、例えば、グループ内での発言候補端末間の帯域および往復時間が所定の範囲内に収まるように通信ネットワークを区分けすることによって行う。これにより、グループ内の全ての発言候補端末とそのグループ内のルート端末との間の通信に、所定の範囲内の帯域および往復時間を確保することができる。すなわち、どの発言候補端末が発言端末となった場合でも、接木パスに、所定の範囲内の帯域および往復時間を確保することができる。
そして、ステップS2420において、拡張配送木計算部140は、グループを1つ選択する。
そして、ステップS2430において、拡張配送木計算部140は、計算された配送木のうち、選択しているグループに属する配送木の中から1つを選択する。
そして、ステップS2440において、拡張配送木計算部140は、選択した配送木に対して、重み付き全長計算処理を実行する。重み付き全長計算処理とは、選択した配送木に対して、配送木上の、隣り合う参加端末の間の区間のそれぞれに対して、その区間の帯域および往復時間に応じた重み付けを行ったときの評価値である重み付き全長を計算する処理である。この処理の詳細については後述する。
そして、ステップS2450において、拡張配送木計算部140は、計算した重み付き全長が、予め定められた整数最大値以下であるか否かを判断する。整数最大値とは、遠隔会議に支障のない配送木の重み付き全長の最大長さであり、より短い重み付き全長の配送木が発見されるごとにその配送木の重み付き全長で更新される値である。拡張配送木計算部140は、重み付き全長が整数最大値以下である場合には(S2450:YES)、ステップS2460へ進み、重み付き全長が整数最大値を超える場合には(2450:NO)、ステップS2470へ進む。
ステップS2460において、拡張配送木計算部140は、選択している配送木を、選択しているグループの代表配送木として決定する。但し、拡張配送木計算部140は、既にそのグループで代表配送木が決定されている場合には、選択している配送木で決定し直す。また、拡張配送木計算部140は、整数最大値を、決定した代表配送木の重み付き全長で更新する。
そして、ステップS2470において、拡張配送木計算部140は、選択しているグループ内で未選択の配送木が残っているか否かを判断し、未選択の配送木が残っている場合には(S2470:YES)、ステップS2430へ戻る。そして、拡張配送木計算部140は、未選択の配送木を選択して処理を繰り返す。一方、拡張配送木計算部140は、選択しているグループの全ての配送木を選択して処理を行った場合には(S2470:NO)、ステップS2480へ進む。
ステップS2480において、拡張配送木計算部140は、未選択のグループが残っているか否かを判断し、未選択のグループが残っている場合には(S2480:YES)、ステップS2490へ進む。
ステップS2490において、拡張配送木計算部140は、整数最大値を初期値に戻す。そして、拡張配送木計算部140は、ステップS2420へ戻り、未選択のグループを選択して処理を繰り返す。
ステップS2420〜ステップS2490の処理により、全てのグループを選択して処理を行うと(S2480:NO)、拡張配送木計算部140は、代表配送木選定処理を終了する。
このような代表配送木選定処理により、端末100は、グループごとに、最も短い重み付き全長の配送木を、代表配送木として選定することができる。また、端末100は、どの発言要求端末が発言端末となった場合でも、拡張配送木の全長を抑えられるような配送木を、代表配送木として選定することができる。
図8は、重み付き全長計算処理の一例を示すフローチャートである。
まず、ステップS2441において、拡張配送木計算部140は、選択している配送木を構成する枝の中から1つを選択する。ここで、枝とは、根から末端の参加端末までの区間である。
そして、ステップS2442において、拡張配送木計算部140は、メトリック情報に基づいて、選択している枝の帯域逆数見合値を計算する。帯域逆数見合値とは、枝の帯域計測値の逆数に比例する値であり、例えば、正の定数αを枝の帯域係数値で除した値である。
そして、ステップS2443において、拡張配送木計算部140は、メトリック情報に基づいて、選択している枝の往復時間見合値を計算する。往復時間見合値とは、枝の往復時間(遅延時間)計測値に比例する値であり、例えば、正の定数βに枝の往復時間計測値を乗じた値である。
そして、ステップS2444において、拡張配送木計算部140は、未選択の枝が残っているか否かを判断し、未選択の枝が残っている場合には(S2444:YES)、ステップS2441へ戻り、未選択の枝を選択して処理を繰り返す。一方、拡張配送木計算部140は、全ての枝を選択して処理を行った場合には(S2444:NO)、ステップS2445へ進む。
ステップS2445において、拡張配送木計算部140は、枝毎に計算される帯域逆数見合値と往復時間見合値との合計のうち最大値を、選択している配送木の重み付き全長に決定して、重み付き全長計算処理を終了する。
このような重み付き全長計算処理により、端末100は、各配送木の重み付き全長を計算することができる。
グループ毎の代表配送木が選定されると、拡張配送木計算部140は、上述の通り、拡張配送木を計算する(図5のステップS2500)。より具体的には、拡張配送木計算部140は、各発言候補端末に対して、代表配送木選定処理で同一のグループにグルーピングされたルート端末へと至る最短パスを計算し、計算結果を、その発言候補端末の接木パスとして決定する。そして、拡張配送木計算部140は、ルート端末ではない発言候補端末のそれぞれに対して、接木パスから代表配送木へと至る配送パスを、拡張配送木として計算する。拡張配送木は、各端末が他のどの参加端末へとデータパケットを転送するかを示すリンク情報の集合となる。
図9は、転送テーブル設定処理の一例を示すフローチャートである。
まず、ステップS2610において、テーブル設定サーバ部150は、入力された拡張配送木の中から、1つを選択する。
そして、ステップS2620において、テーブル設定サーバ部150は、入力された拡張配送木毎に、その拡張配送木を構成するリンク情報を、発言端末のリンク情報、接木パス上の参加端末のリンク情報、ルート端末のリンク情報、および配送木上の参加端末のリンク情報に区分する。以下、区分されたリンク情報の一まとまりを「区間」という。
そして、ステップS2630において、テーブル設定サーバ部150は、区間を1つ選択する。
そして、ステップS2640において、テーブル設定サーバ部150は、選択した区間に対して、送信元IPアドレスと宛先IPアドレスと宛先ポート番号の組と、次ホップIPアドレスと宛先ポート番号との組を決定する。より具体的には、テーブル設定サーバ部150は、配送木に従ってデータパケットが転送されるように、組情報を決定する。なおかつ、テーブル設定サーバ部150は、ルート端末においてデータパケットの宛先ポート番号の付け替え(接木ポート番号から配送木ポート番号へ)が行われるように、これらの組情報を決定する。
そして、ステップS2650において、テーブル設定サーバ部150は、未選択の区間が残っているか否かを判断し、未選択の区間が残っている場合には(S2650:YES)、ステップS2630へ戻る。そして、テーブル設定サーバ部150は、未選択の区間を選択して処理を繰り返す。テーブル設定サーバ部150は、全ての区間を選択して処理を行った場合、つまり拡張配送木の全てについて処理を完了した場合には(S2650:NO)、ステップS2660へ進む。
ステップS2660において、テーブル設定サーバ部150は、未選択の拡張配送木が残っているか否かを判断し、未選択の拡張配送木が残っている場合には(S2660:YES)、ステップS2610へ戻る。そして、テーブル設定サーバ部150は、未選択の拡張配送木を選択して処理を繰り返す。テーブル設定サーバ部150は、全ての拡張配送木を選択して処理を行った場合、つまり全ての拡張配送木について処理を完了した場合には(S2660:NO)、ステップS2670へ進む。
ステップS2670において、テーブル設定サーバ部150は、参加端末を1つ選択する。
そして、ステップS2680において、テーブル設定サーバ部150は、選択した参加端末について決定した情報をまとめて転送テーブルを生成し、生成した転送テーブルを、選択した参加端末へ送信する。
そして、ステップS2690において、テーブル設定サーバ部150は、未選択の参加端末が残っているか否かを判断し、未選択の参加端末が残っている場合には(S2690:YES)、ステップS2670へ戻る。そして、テーブル設定サーバ部150は、未選択の参加端末を選択して処理を繰り返す。テーブル設定サーバ部150は、全ての参加端末を選択して処理を行った場合には(S2690:NO)、転送テーブル設定処理を終了する。
このような転送テーブル設定処理により、端末100は、計算された全ての拡張配送木を通信ネットワークで実現するように、各参加端末に対して転送テーブルを設定することができる。
次いで、図4のステップ7000の配送木設定クライアント動作について説明する。
図10は、配送木設定クライアント動作の一例を示すフローチャートである。
まず、ステップS7100において、情報収集クライアント部120は、サーバ端末からメトリック情報の送信の指示があった否かを判断する。情報収集クライアント部120は、指示があった場合には(S7100:YES)、ステップS7200へ進み、指示がない場合には(S7100:NO)、後述のステップS7300へ進む。
ステップS7200において、情報収集クライアント部120は、フルメッシュでメトリック情報を計測し、計測結果をサーバ端末へ返信する。
そして、ステップS7300において、テーブル設定クライアント部160は、サーバ端末から転送テーブルの受信待ち状態に移行する。この転送テーブルは、上述の通り、サーバ端末で計算された全ての拡張配送木に対応した内容である。テーブル設定クライアント部160は、転送テーブルを受信した場合には(S7300:YES)、ステップS7400へ進み、転送テーブルを受信していない場合には(S7300:NO)、配送木設定クライアント動作を終了する。
ステップS7400において、テーブル設定クライアント部160は、受信した転送テーブルを、後述の転送テーブル格納部170に格納する。または、テーブル設定クライアント部160は、転送テーブル格納部170に既に格納されている転送テーブルを、制御サーバ部130から受信した転送テーブルで更新する。そして、端末100は、配送木設定クライアント動作を終了する。
このような配送木設定クライアント動作により、端末100は、サーバ端末から拡張配送木の設定を受けることができる。
次いで、図4のステップS8000の発言要求クライアント動作について説明する。
図11は、端末100の発言要求クライアント動作の一例を示すフローチャートである。
まず、ステップS8100において、会議クライアント部210は、ユーザから発言権申請UI部180に発言要求が入力されたか否かを判断する。会議クライアント部210は、発言要求が入力された場合には(S8100:YES)、ステップS8200へ進み、発言要求が入力されていない場合には(S8100:NO)、発言要求クライアント動作を終了する。
ステップS8200において、会議クライアント部210は、発言要求メッセージを生成し、生成した発言要求メッセージを、サーバ端末へ送信する。
そして、ステップS8300において、会議クライアント部210は、発言要求メッセージをサーバ端末に送信後、タイマー(図2において図示せず)を設定し、タイムアウトになる前に発言許可メッセージを受信したか否かを判断する。会議クライアント部210は、タイムアウトになる前に発言許可メッセージを受信した場合には(S8300:YES)、ステップS8400へ進む。また、会議クライアント部210は、発言許可メッセージを受信することなくタイムアウトとなった場合、または、発言不許可メッセージを受信した場合には(S8300:NO)、ステップS8500へ進む。
ステップS8400において、会議クライアント部210は、受信した発言許可メッセージに含まれるルート端末のIPアドレスを、情報配信時宛先として、符号発生部220に設定する。
そして、ステップS8600において、会議クライアント部210は、情報配信動作を開始する。すなわち、会議制御UI部200は、ユーザの映像音声の入力を開始し、会議クライアント部210は、会議制御UI部200から符号発生部220への音声映像の転送を開始する。上述の通り、データパケット送受信部230が使用する転送テーブルには、端末100が発言端末となるときの拡張配送木に対応する内容も設定されている。したがって、端末100に入力された音声映像は、遠隔会議に支障のない遅延時間で、各参加端末に配信される。
そして、ステップS8700において、会議クライアント部210は、サーバ端末からの制御信号またはユーザの指示入力等により、情報配信動作の終了が指示されたか否かの判断を繰り返す。会議クライアント部210は、情報配信動作の終了が指示された場合には(S8700:YES)、ステップS8800へ進む。
ステップS8800において、会議クライアント部210は、情報配信動作を終了し、発言要求クライアント動作を終了する。すなわち、会議クライアント部210は、符号発生部220の情報配信時宛先の設定を解除し、会議制御UI部200と符号発生部220との間での音声映像の転送を停止する。
一方、ステップS8500において、会議クライアント部210は、発言要求が許可されなかった旨のユーザに対する通知を行い、発言要求クライアント動作を終了する。この通知は、例えば、ディスプレイ画面でのメッセージ表示や、ブザー音の出力によって行われる。
このような発言要求クライアント動作により、端末100は、サーバ端末に対して発言要求を行い、ユーザの音声映像を各参加端末にほぼリアルタイムで配信することができる。
次いで、図4のステップS3000の発言要求サーバ動作について説明する。
図12は、端末100の発言要求サーバ動作の一例を示すフローチャートである。
まず、ステップS3100において、制御サーバ部130は、クライアント端末から発言要求メッセージを受信したか否かを判断する。制御サーバ部130は、発言要求メッセージを受信した場合には(S3100:YES)、その旨を発言権許可UI部190に通知してステップS3200へ進む。また、制御サーバ部130は、発言要求メッセージを受信していない場合には(S3100:NO)、発言要求サーバ動作を終了する。
ステップS3200において、制御サーバ部130は、発言権許可UI部190において、ユーザによって発言要求を許可されたか否かを判断する。制御サーバ部130は、発言要求を許可された場合には(S3200:YES)、ステップS3300へ進み、発言要求を許可されなかった場合には(S3200:NO)、発言要求サーバ動作を終了する。
ステップS3300において、制御サーバ部130は、拡張配送木計算部140によって設定されたルート端末情報から、発言要求端末に対応付けられたルート端末のIPアドレスを取得する。このルート端末は、発言要求端末が利用する配送木のルート端末である。そして、制御サーバ部130は、取得したIPアドレスを含む発言許可メッセージを生成し、生成した発言許可メッセージを、発言要求端末に送信し、発言要求サーバ動作を終了する。
このような配送木設定クライアント動作により、端末100は、クライアント端末に対して、データパケットの送信先とすべき参加端末のIPアドレスを通知し、音声映像の配信を許可することができる。
次に、上述の動作によって実現されるサーバ端末とクライアント端末との間の信号の流れについて説明する。
図13は、配送木を設定するフェーズにおけるサーバ端末とクライアント端末との間の信号の流れの概要を示す図である。
サーバ端末100sとクライアント端末100cとの違いは、制御サーバ部130、拡張配送木計算部140、テーブル設定サーバ部150、および発言権許可UI部190の機能が、サーバ端末100sでのみ有効化されていることである。ここでは、クライアント端末100cにおけるこれらの機能部を、破線で図示する。一方、サーバ端末100sにおいても、テーブル設定クライアント部160等のクライアントとしての機能部は有効化されている。これは、サーバ端末100sもデータパケットの複製転送を行うため、サーバ端末100s自身に対して配送木設定を行うからである。
図13に示すように、まず、サーバ端末100sの制御サーバ部130は、全ての参加端末のIPアドレスを把握すると、クライアント端末100cの情報収集クライアント部120に対して、他の参加端末との間の帯域および往復時間の計測を指示する(S1)。この指示を受けて、クライアント端末100cの情報収集クライアント部120は、他の参加端末との間の帯域および往復時間を計測する(S2)。そして、情報収集クライアント部120は、計測結果を、メトリック情報としてサーバ端末100sの制御サーバ部130へ報告する(S3)。
サーバ端末100sの拡張配送木計算部140は、制御サーバ部130から受け取ったメトリック情報に基づいて発言候補端末毎に拡張配送木を計算し、計算結果をテーブル設定サーバ部150に渡す(S4)。サーバ端末100sのテーブル設定サーバ部150は、受け取った拡張配送木をクライアント端末100cの転送テーブルに変換し、その転送テーブルを、クライアント端末100cのテーブル設定クライアント部160に送信する(S5)。クライアント端末100cのテーブル設定クライアント部160は、受信した転送テーブルを、転送テーブル格納部170に設定する。
図14は、発言要求を行うフェーズにおけるサーバ端末とクライアント端末との間の信号の流れの概要を示す図である。
図14に示すように、まず、クライアント端末100cの発言権申請UI部180は、発言要求がユーザから入力されると、その旨を会議クライアント部210に通知する(S6)。この通知を受けて、会議クライアント部210は、サーバ端末100sの制御サーバ部130に発言要求メッセージを送信する(S7)。
サーバ端末100sにおいて、制御サーバ部130は、発言要求メッセージの送信元IPアドレスでクライアント端末100cを特定し、発言権許可UI部190を介して、発言要求を許可するか否かの決定をユーザに促す(S8)。そして、制御サーバ部130は、発言要求を許可することが決定されると、発言許可メッセージを、クライアント端末100cの会議クライアント部210へ送信する(S9)。クライアント端末100cの会議クライアント部210は、符合発生部220に対して、ルート端末のIPアドレスおよび接木ポート番号を宛先とするエンコードデータの生成を指示する。この結果、クライアント端末100cは、発言端末となり、会議制御UI部200で入力された音声映像は、他の参加端末に配信される(S10)。
ここで注目すべきことは、発言端末の切り替えが、サーバ端末100sからクライアント端末100cに対するルート端末のIPアドレスポート番号の通知のみで済むことである。すなわち、発言端末の切り替えが、配送木の計算や設定を必要とせずに行われることである。
以下、上述の動作によって実現される配送パスの簡単な具体例について説明する。
図15は、代表配送木の構成例を示す模式図である。
図15に示すように、端末Aをルート端末とする代表配送木411(図中実線で示す)と、端末Bをルート端末とする配送木412(図中破線で示す)とが設定されているものとする。また、ルート端末ではない端末Cが、端末Bの近くに位置しているものとする。
図16は、いずれもルート端末である端末Aおよび端末Bが発言端末であるときの配送パスの一例を示す模式図である。
図16に示すように、端末Aが発言端末であるとき、端末Aの拡張配送木の接木パス421(図中実線で示す)は、端末Aから端末A自身に戻る形で設定される。この結果、端末Aの音声映像は、端末Aをルート端末とする代表配送木411によって、各参加端末に対して配信される。同様に、端末Bが発言端末であるとき、端末Bの拡張配送木の接木パス422(図中破線で示す)は、端末Bから端末B自身に戻る形で設定される。この結果、端末Bの音声映像は、端末Bをルート端末とする代表配送木412によって、各参加端末に対して配信される。
図17は、ルート端末である端末Aとルート端末ではない端末Cとが発言端末であるときの配送パスの一例を示す模式図である。
図17に示すように、端末Cが発言端末であるとき、端末Cの拡張配送木の接木パス423(図中一点鎖線で示す)は、例えば、端末Cから端末Bに伸びる形で設定される。この結果、端末Cの音声映像は、端末Bをルート端末とする代表配送木412によって、配信される。すなわち、代表配送木412は、端末Cの音声映像を配信するための代理配送木として用いられる。
このように、各発言候補端末は、代表配送木のルート端末ではない場合でも、ルート端末である他の発言候補端末を利用して、音声映像の発信を行うことができる。
以上説明したように、本実施の形態によれば、発言候補端末に対して、データパケットの送信先のIPアドレス(および宛先ポート番号)を指示することによって、拡張配送木に従った配送が可能となる。これにより、本実施の形態は、発言端末の切り替えの際の配送パスの設定を、より短時間で行うことができる。したがって、高速に質問者を切り替えることができるので、即座に質問者が発言することができ、また、発言した様子を即座に他の参加者に配信することができ、会議進行の円滑化を図ることができる。
なお、本実施の形態では、配送木および接木パスの設定を、拡張配送木の設定として同時に行う場合について説明したが、接木パスを後から計算して各参加端末に対して設定するようにしてもよい。これにより、発言端末の切り替えを高速に行いつつ、通信ネットワークの変動や発言候補端末の変動への柔軟に対応することが可能となる。
また、他の発言参加端末に発言権が切り替えられたときに、前の発言端末の発言権を解除することが望ましい。この場合、例えば、サーバ端末は、発言端末を切り替える毎に、切り替え前の発言端末が使用していたルート端末に対して、当該発言端末から送られてきたデータパケットの転送の停止を指示する。一方で、サーバ端末は、切り替え後の発言端末が使用するルート端末に対して、当該発言端末から送られてきたデータパケットの転送の開始を指示する。この指示は、例えば、ルート端末に対する転送テーブルの書き換えによって行うことが可能である。
また、本実施の形態では、遠隔会議を行うための通信ネットワークを構成する端末について説明したが、本発明の適用はこれに限定されない。本発明は、不特定の端末から多数の端末に同一の情報を配信する通信ネットワークに対して配送パスを設定する、各種の装置に適用することができる。例えば、予め代表配送木を全国のテレビ端末に対して設置しておいて、地震などの災害が発生した段階で、災害現場付近のカメラの映像を代表配送木のルート端末に送信するような利用用途に適用してもよい。