(57)【特許請求の範囲】
【請求項１】
所定領域に構築されるネットワーク内に分散して設けられる複数のサーバと、
前記複数のサーバのいずれかのサーバによって実行されるアプリケーションプログラムの実行結果に応じた画面の画像を表示する複数のクライアント端末装置と、
前記複数のサーバと、前記複数のクライアント端末装置と、を制御する制御装置と、
を有する画面共有システムであって、
前記制御装置が、
前記複数のクライアント端末装置の各々から、前記複数のクライアント端末装置の各々と前記複数のサーバの各々との複数の組み合わせの各々についての通信品質の評価値を取得し、
取得した前記評価値に基づいて、前記複数のサーバから、前記アプリケーションプログラムを実行させるサーバを決定し、
決定した前記サーバとの接続に用いる接続情報を、前記複数のクライアント端末装置へ送信し、決定した前記サーバに前記アプリケーションプログラムを実行させる実行指示を通知する、
処理を実行し、
前記複数のクライアント端末装置の各々は、
前記複数のサーバのうち、決定した前記サーバと自クライアント端末装置とを受信した前記接続情報に基づいて接続する、
処理を実行し、
前記複数のサーバの各々は、
前記実行指示を受信した場合、前記アプリケーションプログラムを実行する、
ことを特徴とする画面共有システム。
【請求項２】
前記決定する処理では、
前記複数のサーバの各々について、前記複数の組み合わせのうち当該サーバを含む組み合わせについて取得した前記評価値の分布の統計量を算出し、
求めた前記統計量に基づいて、前記複数のサーバのうち、前記通信品質が最もよいことを示すサーバを、前記アプリケーションプログラムを実行させるサーバに決定する、
ことを特徴とする請求項１に記載の画面共有システム。
【請求項３】
前記制御装置が、
前記複数のサーバの各々について、前記複数の組み合わせのうちの当該サーバを含む組み合わせについて取得した前記評価値に基づいて、前記複数のクライアント端末装置のうち、前記通信品質が所定の通信品質よりもよいことを示すクライアント端末装置を特定する、
処理を実行し、
前記決定する処理では、
前記複数のサーバのうち、特定した前記クライアント端末装置の数が最多のサーバを、前記アプリケーションプログラムを実行させるサーバに決定する、
ことを特徴とする請求項１に記載の画面共有システム。
【請求項４】
前記制御装置が、
前記最多のサーバが複数ある場合、前記最多のサーバの各々について、前記複数の組み合わせのうち、前記最多のサーバと特定した前記クライアント端末装置との各組み合わせについて取得した前記評価値の分布の統計量を算出し、
前記決定する処理では、
求めた前記統計量に基づいて、前記最多のサーバのうち、前記通信品質が最もよいことを示すサーバを、前記アプリケーションプログラムを実行させるサーバに決定する、
ことを特徴とする請求項３に記載の画面共有システム。
【請求項５】
前記制御装置が、
前記複数の組み合わせのうちの決定した前記サーバを含む組み合わせについて取得した前記評価値に基づいて、前記複数のクライアント端末装置のうち、前記通信品質が所定の通信品質よりも悪いことを示すクライアント端末装置へ前記画面の共有ができないことを通知する、
ことを特徴とする請求項１〜４のいずれか一つに記載の画面共有システム。
【請求項６】
取得した前記評価値が、前記通信品質の第１評価値と前記通信品質の第２評価値との複数種類ある場合、
前記制御装置が、
前記複数の組み合わせの各々について、前記第１評価値を点数付けした値と、前記第２評価値を点数付けした値と、によって前記通信品質の総合評価値を算出し、
前記複数のサーバの各々について、算出した前記総合評価値を合計した合計値を算出する、
処理を実行し、
前記決定する処理では、
算出した前記合計値に基づいて、前記複数のサーバのうち、前記通信品質が最もよいことを示すサーバを、前記アプリケーションプログラムを実行させるサーバに決定する、
ことを特徴とする請求項１に記載の画面共有システム。
【請求項７】
取得した前記評価値が、前記通信品質の第１評価値と前記通信品質の第２評価値との複数種類ある場合、
前記制御装置が、
前記複数の組み合わせの各々について、前記第１評価値を点数付けした値と、前記第２評価値を点数付けした値と、によって前記通信品質の総合評価値を算出し、
前記複数のサーバの各々について、算出した前記総合評価値に基づいて、前記複数のクライアント端末装置のうち、前記通信品質が所定の通信品質よりもよいことを示すクライアント端末装置を特定する、
処理を実行し、
前記決定する処理では、
前記複数のサーバのうち、特定した前記クライアント端末装置の数が最多のサーバを、前記アプリケーションプログラムを実行させるサーバに決定する、
ことを特徴とする請求項１に記載の画面共有システム。
【請求項８】
前記制御装置が、
前記最多のサーバの数が複数ある場合、前記最多のサーバの各々について、前記複数の組み合わせのうち、前記最多のサーバと特定した前記クライアント端末装置との各組み合わせについて取得した前記総合評価値を合計した合計値を算出し、
算出した前記合計値に基づいて、前記最多のサーバのうち、前記通信品質が最もよいことを示すサーバを、前記アプリケーションプログラムを実行させるサーバに決定する、
ことを特徴とする請求項７に記載の画面共有システム。
【請求項９】
所定領域に構築されるネットワーク内に分散して設けられる複数のサーバと、前記複数のサーバのいずれかのサーバによって実行されるアプリケーションプログラムの実行結果に応じた画面の画像を表示する複数のクライアント端末装置と、を制御する制御装置に、
前記複数のクライアント端末装置の各々から、前記複数のクライアント端末装置の各々と前記複数のサーバの各々との複数の組み合わせの各々についての通信品質の評価値を取得し、
取得した前記評価値に基づいて、前記複数のサーバから、前記アプリケーションプログラムを実行させるサーバを決定し、
決定した前記サーバとの接続に用いる接続情報を、前記複数のクライアント端末装置へ送信し、決定した前記サーバに前記アプリケーションプログラムを実行させる実行指示を通知する、
処理を実行させることを特徴とする画面共有プログラム。
【請求項１０】
所定領域に構築されるネットワーク内に分散して設けられる複数のサーバと、前記複数のサーバのいずれかのサーバによって実行されるアプリケーションプログラムの実行結果に応じた画面の画像を表示する複数のクライアント端末装置と、を制御する制御装置が、
前記複数のクライアント端末装置の各々から、前記複数のクライアント端末装置の各々と前記複数のサーバの各々との複数の組み合わせの各々についての通信品質の評価値を取得し、
取得した前記評価値に基づいて、前記複数のサーバから、前記アプリケーションプログラムを実行させるサーバを決定し、
決定した前記サーバとの接続に用いる接続情報を、前記複数のクライアント端末装置へ送信し、決定した前記サーバに前記アプリケーションプログラムを実行させる実行指示を通知する、
処理を実行することを特徴とする画面共有方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画面共有システム、画面共有プログラム、および画面共有方法に関する。
【背景技術】
【０００２】
従来、複数のＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）で同一のアプリケーションプログラムに関する画面を参照しながら遠隔地間の会議や設計レビューなどを行うための画面共有システムと呼ばれる技術がある。
【０００３】
また、従来、クラウド環境の利用形態の一つであるＤａａＳでは、利用者が操作するクライアント端末装置から、クラウド環境にあるサーバのデスクトップ画面を利用する。クライアント端末装置は、サーバの画面の一部あるいは全部を表示し、サーバに対する入力操作を行うことができ、サーバは、入力操作に応じたアプリケーションの実行を行う。
【０００４】
また、先行技術として、例えば、文書、画像、動画などの静的なコンテンツについて、ネットワークの様々な箇所に当該コンテンツ用のキャッシュを置き、クライアント端末装置は、近くにあるキャッシュを利用することで、ネットワークの負荷や遅延を低減させる技術がある（例えば、以下特許文献１参照。）。また、例えば、ネットワークで送られる情報（パケット）をルータで複製することによってネットワークの負荷を低減し、動画などのストリームデータを多数のクライアント端末に配信する技術がある（例えば、以下非特許文献１参照。）。
【０００５】
また、例えば、データ処理装置が、端末ごとの通信にかかる端末情報を管理し、端末情報に基づいて画面情報の画像サイズや符号化ビットレートなどを決定する技術がある（例えば、以下特許文献２参照。）。また、例えば、配信サーバが、送信端末から受信端末に対して配信される画像情報を仲介するために、画像情報のフレーム要求を送信端末へ送信し、フレーム要求に対応する画像フレームを送信端末から受信し、受信した画像フレームを受信端末に対して送信する技術がある（例えば、以下特許文献３参照。）。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特表２０１０−５０３９０１号公報
【特許文献２】特開２０１０−１４１８２４号公報
【特許文献３】特開２０１５−０２３４６６号公報
【非特許文献】
【０００７】
【非特許文献１】“マルチキャストストリーミングについて”、［ｏｎｌｉｎｅ］、２００７年１０月、Ｍｉｃｒｏｓｏｆｔ（登録商標）社、［平成２７年１２月１日検索］、インターネット＜ｈｔｔｐｓ：／／ｔｅｃｈｎｅｔ．ｍｉｃｒｏｓｏｆｔ．ｃｏｍ／ｊａ-ｊｐ／ｌｉｂｒａｒｙ／ｃｃ７５３２４２．ａｓｐｘ＞
【発明の概要】
【発明が解決しようとする課題】
【０００８】
しかしながら、従来技術では、複数のクライアント端末装置においてサーバを用いた画面共有時に、サーバと複数のクライアント端末装置との間の通信遅延にばらつきが生じるという問題点がある。例えば、通信遅延のばらつきがあると、複数のクライアント端末における画面表示に遅れが生じ、１台のサーバによるアプリケーションプログラムの実行に応じた画面の参照や操作というコラボレーション作業の実施が困難な場合がある。
【０００９】
１つの側面では、本発明は、クライアント端末装置ごとのサーバからの通信遅延のばらつきを抑制して画面を共有できる画面共有システム、画面共有プログラム、および画面共有方法を提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明の一側面によれば、所定領域に構築されるネットワーク内に分散して設けられる複数のサーバと、前記複数のサーバのいずれかのサーバによって実行されるアプリケーションプログラムの実行結果に応じた画面の画像を表示する複数のクライアント端末装置と、前記複数のサーバと、前記複数のクライアント端末装置と、を制御する制御装置と、を有する画面共有システムであって、前記制御装置が、前記複数のクライアント端末装置の各々から、前記複数のクライアント端末装置の各々と前記複数のサーバの各々との複数の組み合わせの各々についての通信品質の評価値を取得し、取得した前記評価値に基づいて、前記複数のサーバから、前記アプリケーションプログラムを実行させるサーバを決定し、決定した前記サーバとの接続に用いる接続情報を、前記複数のクライアント端末装置へ送信し、決定した前記サーバに前記アプリケーションプログラムを実行させる実行指示を通知する、処理を実行し、前記複数のクライアント端末装置の各々は、前記複数のサーバのうち、決定した前記サーバと自クライアント端末装置とを受信した前記接続情報に基づいて接続する、処理を実行し、前記複数のサーバの各々は、前記実行指示を受信した場合、前記アプリケーションプログラムを実行する画面共有システム、画面共有プログラム、および画面共有方法が提案される。
【発明の効果】
【００１１】
本発明の一態様によれば、クライアント端末装置ごとのサーバからの通信遅延のばらつきを抑制して画面を共有できる。
【図面の簡単な説明】
【００１２】
【図１】図１は、画面共有システムの一動作例を示す説明図である。
【図２】図２は、画面共有例を示す説明図である。
【図３】図３は、サーバが単一の例を示す説明図である。
【図４】図４は、サーバが複数の例を示す説明図である。
【図５】図５は、通信速度が異なる例を示す説明図である。
【図６】図６は、本実施の形態における画面共有システム例を示す説明図である。
【図７】図７は、クライアント端末装置のハードウェア構成例を示すブロック図である。
【図８】図８は、サーバのハードウェア構成例を示すブロック図である。
【図９】図９は、画面共有システムの機能的構成例を示すブロック図である。
【図１０】図１０は、新たにクライアント端末装置から画面共有の参加要求があった場合の処理手順を示すシーケンス図である。
【図１１】図１１は、参加可能クライアントリスト例を示す説明図である。
【図１２】図１２は、遅延時間テーブル例を示す説明図である。
【図１３】図１３は、平均遅延時間テーブル例を示す説明図である。
【図１４】図１４は、実施例１にかかる制御装置による画面共有サーバの決定処理手順例を示すフローチャートである。
【図１５】図１５は、帯域幅テーブル例を示す説明図である。
【図１６】図１６は、遅延時間ポイントテーブル例を示す説明図である。
【図１７】図１７は、帯域幅ポイントテーブル例を示す説明図である。
【図１８】図１８は、通信品質ポイントテーブル例を示す説明図である。
【図１９】図１９は、合計ポイントテーブル例を示す説明図である。
【図２０】図２０は、実施例２にかかる画面共有サーバの制御装置による画面共有サーバの決定処理手順例を示すフローチャート（その１）である。
【図２１】図２１は、実施例２にかかる画面共有サーバの制御装置による画面共有サーバの決定処理手順例を示すフローチャート（その２）である。
【発明を実施するための形態】
【００１３】
以下に添付図面を参照して、本発明にかかる画面共有システム、画面共有プログラム、および画面共有方法の実施の形態を詳細に説明する。
【００１４】
図１は、画面共有システムの一動作例を示す説明図である。本実施の形態における画面共有システム１００は、複数のサーバのいずれかのサーバが実行するアプリケーションプログラムの実行に応じた画面を複数のクライアント端末装置によって共有するシステムである。
【００１５】
従来、複数のＰＣで同一のアプリケーションプログラムに関する画面を参照しながら遠隔地間の会議や設計レビューなどを行うための画面共有システムと呼ばれる技術がある。アプリケーションプログラムは以下省略してアプリケーションとも称する。
【００１６】
また、従来、クラウド環境の利用形態の一つであるＤａａＳでは、利用者が操作するクライアント端末装置から、クラウド環境にあるサーバのデスクトップ画面を利用する。クライアント端末装置は、サーバの画面の一部あるいは全部を表示し、サーバに対する入力操作を行うことができ、サーバは、入力操作に応じたアプリケーションの実行を行う。
【００１７】
画面共有システムの方式は、以下の２種に大別できる。まず、１種類目としては、例えば、一台のＰＣがアプリケーションを実行し、他のＰＣはアプリケーションの実行に応じた画面を表示する。画面共有の参加者によるアプリケーションの実行に対する操作は、アプリケーションが動作しているＰＣに転送し、操作によって変化した画面をアプリケーションが動作しているＰＣから他のすべてのＰＣに配信する。アプリケーションの実行に対する操作は、例えば、キーボード操作・マウス操作などの入力装置への操作である。
【００１８】
つぎに、２種類目としては、すべてのＰＣが同一のアプリケーションを実行する。画面共有の参加者によるアプリケーションの操作は、すべてのＰＣに配信され、各ＰＣ上で実行中のアプリケーションが同期して動作する。
【００１９】
ここで、ＤａａＳを応用した画面共有システムでは、上記の１種類目の方式を用いる。詳細な例は、図２を用いて後述する。ＤａａＳでは、単一のクライアント端末からサーバに対して接続されるが、画面共有システム１００では複数のクライアント端末装置とサーバとの接続を許可する。これにより、複数の参加者によって単一のサーバを同時に参照および操作することが可能となる。
【００２０】
ここで、画面共有システムでは、画面情報および操作情報がＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）などのネットワークを介して送受信される。操作情報は、キーボードやマウスなどの入力装置を利用者が操作した情報であり、ネットワークを流れる操作情報のデータ量は極めて小さい。これに対して、画面情報はサーバの画面に表示される画像の画像情報であり、画面の大規模化や高詳細化に伴い、データ量は操作情報と比較して極めて大きい。
【００２１】
画面共有システム１００では、サーバの画面の画像を含む画像情報を各クライアント端末装置が表示するために、サーバが、クライアント端末装置に画像情報を送信する。
【００２２】
従来技術では、複数のクライアント端末装置においてサーバを用いた画面共有時に、サーバと複数のクライアント端末装置との間の通信遅延にばらつきが生じるという問題点がある。例えば、サーバからネットワーク的に近いクライアント端末装置と、サーバからネットワーク的に遠いクライアント端末装置と、が存在する場合がある。この場合の具体例は図３を用いて後述する。このような場合、サーバから遠いクライアント端末装置までの通信の遅延によりクライアント端末装置における画面表示に遅れが生じる。このため、１台のサーバが同時に参照や操作するというコラボレーション作業の実施が困難となる。
【００２３】
そこで、本実施の形態では、各クライアント端末装置による画面共有用にサーバを分散して複数設けておき、クライアント端末装置とサーバの組み合わせごとの通信品質の評価値に基づいて、画面共有を行うサーバを決定する。これにより、通信遅延のばらつきを抑制することができる。したがって、利用者の操作性の向上を図り、コラボレーション作業の実施の容易化を図ることができる。
【００２４】
まず、画面共有システム１００は、制御装置１０１と、複数のサーバと、複数のクライアント端末装置と、を有する。
【００２５】
複数のサーバは、所定領域ａｒに構築されるネットワーク内に分散して設けられる。ネットワーク１０２は、例えば、単一のネットワーク１０２であっても、複数のネットワーク１０２であってもよい。図１の例では、ネットワーク１０２は１０２−１〜１０２−３のように複数のネットワーク１０２である。所定領域ａｒは、例えば、国内、県内、複数の国内など特に限定しない。利用者が、様々な場所での利用を想定して、システムの開発者は、例えば、複数のサーバを分散して設ける。図１の例では、サーバはＳＡとＳＣである。サーバＳＡ，ＳＣなどの複数のサーバのうちの任意のサーバを「サーバＳｉ」と表記する場合がある（ｉ＝Ａ，Ｂ，・・・など）。
【００２６】
複数のクライアント端末装置は、それぞれ利用者によって操作される端末装置である。複数のクライアント端末装置は、複数のサーバＳｉのいずれかのサーバＳｉによって実行されるアプリケーションプログラムの実行結果に応じた画面を共有する。図１の例では、クライアント端末装置はｃａ〜ｃｃである。ここで、クライアント端末装置ｃａ〜ｃｃなどの複数のクライアント端末装置のうちの任意のクライアント端末装置を「クライアント端末装置ｃｊ」と表記する場合がある（ｊ＝ａ，ｂ，ｃ，・・・など）。
【００２７】
制御装置１０１は、複数のサーバＳｉと、複数のクライアント端末装置ｃｊと、を制御し、複数のサーバＳｉのうちのアプリケーションプログラムを実行するサーバＳｉを決定する。また、アプリケーションプログラムは、ＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）のアプリケーション層で動作するものであってもよいし、ハイパーバイザ上で動作するＶＭ（Ｖｉｒｔｕａｌ  Ｍａｃｈｉｎｅ）そのものであってもよい。アプリケーション層で動作するアプリケーションプログラムとしては、資料作成やメールなどの業務に関するアプリケーション、ＣＡＤ（Ｃｏｍｐｕｔｅｒ  Ａｉｄｅｄ  Ｄｅｓｉｇｎ）などのような画像を扱うアプリケーション、動画を扱うアプリケーションなどが挙げられ、特に限定しない。
【００２８】
まず、制御装置１０１は、複数のクライアント端末装置ｃｊの各々から、複数のクライアント端末装置ｃｊの各々と複数のサーバＳｉの各々との複数の組み合わせの各々についての通信品質の評価値を取得する。通信品質の評価値は、サーバＳｉとクライアント端末装置ｃｊとの間の通信に要する往復の通信時間、帯域幅やパケットロス率などであってもよい。往復の通信時間は遅延時間とも称する。遅延時間は長いほど、通信品質が悪いことを示す。帯域幅は、データの転送速度の指標値である。帯域幅が大きいほど、通信品質がよいことを示す。パケットロス率は、パケットが消失してしまう頻度である。このため、パケットロス率が高いほど、通信品質が悪いことを示す。
【００２９】
具体的に、制御装置１０１は、例えば、複数のクライアント端末装置ｃｊの各々に対して通信品質の評価値の測定指示を通知する。そして、複数のクライアント端末装置ｃｊの各々は、例えば、測定指示の通知を受け付けると、複数のサーバＳｉの各々との通信品質の評価値を測定する。そして、複数のクライアント端末装置ｃｊは、複数のサーバＳｉの各々との間の測定した通信品質の評価値を制御装置１０１へ送信する。つぎに、制御装置１０１は、複数のクライアント端末装置ｃｊから通信品質の評価値を受信することにより、複数の組み合わせの各々についての通信品質の評価値を取得する。図１の例では、制御装置１０１は、遅延時間を評価値として取得する。
【００３０】
そして、制御装置１０１は、取得した評価値に基づいて、複数のサーバＳｉから、アプリケーションプログラムを実行させるサーバＳｉを決定する。具体的に、図１の例では、制御装置１０１は、評価値の分布の統計量に基づいて、複数のサーバＳｉから、アプリケーションプログラムを実行させるサーバＳｉを決定する。統計量としては、平均値や中央値などが挙げられるが、図１では平均値を例に挙げる。
【００３１】
ここで、遅延時間は、値が大きいほど、ネットワーク１０２的に遠いことを示す。このため、制御装置１０１は、サーバＳＡとサーバＳＢとのうち、統計量が小さいサーバＳＡを、アプリケーションプログラムを実行させるサーバＳｉに決定する。
【００３２】
また、評価値として帯域幅が取得された場合、値が小さいほど、ネットワーク１０２的に遠いことを示す。帯域幅の場合、サーバＳＡの統計量がサーバＳＢの統計量よりも大きくなる。このため、制御装置１０１は、サーバＳＡとサーバＳＢとのうち、統計量が大きいサーバＳＡを、アプリケーションプログラムを実行させるサーバＳｉに決定する。
【００３３】
つぎに、制御装置１０１は、決定したサーバＳｉとの接続に用いる接続情報を、複数のクライアント端末装置ｃｊへ送信する。また、制御装置１０１は、決定したサーバＳｉにアプリケーションプログラムを実行させる実行指示を通知する。実行指示を通知するとは、例えば、実行指示を示す信号を送信することである。
【００３４】
これにより、クライアント端末ごとの通信遅延のばらつきを抑制することができる。したがって、利用者の操作性の向上を図ることができる。
【００３５】
図２は、画面共有例を示す説明図である。ここで、画面共有について簡単に説明する。サーバがアプリケーションプログラムやデータを実行および保管し、クライアント端末装置は、リモートデスクトップとしてサーバから転送された画面の画像を表示する。
【００３６】
複数のクライアント端末装置は、例えば、オーナークライアント端末装置と、複数のゲストクライアント端末装置と、がある。オーナークライアント端末装置は、例えば、ゲストクライアント端末装置に、サーバが実行するプログラムに関する操作権を渡すことができる。ゲストクライアント端末装置は、オーナークライアント端末装置から操作権を受け取ることによってプログラムの実行に関する操作を行うことができる。このようにして、複数の利用者によって同一画面を用いたコラボレーション作業などを行うことができる。ここで挙げた操作権に関する複数のクライアント端末装置間のやり取りは、一例であり、特に限定しない。
【００３７】
また、複数のクライアント端末装置は、操作情報をサーバへ送信し、サーバは、クライアント端末装置から送信された操作情報に応じてアプリケーションプログラムを実行する。
【００３８】
図２の例では、アプリケーションプログラムがＣＡＤであり、サーバと複数のクライアント端末装置とでは、同じＣＡＤの画面を表示する。
【００３９】
図３は、サーバが単一の例を示す説明図である。例えば、サーバが１台だけである場合やデータセンタなどサーバが複数あっても、複数のサーバが同じ位置にある場合がある。同じ位置とは、ほぼ同じ位置を含む。ここで、サーバが単一とは、例えば、同じ位置にしかない場合である。
【００４０】
サーバが固定の位置であると、クライアント端末装置によっては、通信による遅延が大きくなり、画像が表示されるのに時間がかかる場合がある。図３の例では、クライアント端末装置は、サーバと物理的に離れた距離にあるため、クライアント端末装置はサーバとの通信に時間がかかるため、画像の表示が遅くなる。また、通信による遅延は、図３ではサーバとの物理的な距離を挙げたが、これに限らず、通信の混雑度合いや各クライアント端末装置のネットワークへの接続方法によっても変化する。
【００４１】
図４は、サーバが複数の例を示す説明図である。例えば、サーバが、分散して複数ある場合がある。このような場合、例えば、サーバごとにサーバとクライアント端末装置との距離が異なるため、サーバごとにクライアント端末装置の通信速度が異なる。
【００４２】
図５は、通信速度が異なる例を示す説明図である。テーブルには、サーバごとに、クライアント端末装置との間の通信品質の評価値を表す。図５には、通信品質の評価値としては、例えば、上述したように遅延時間を挙げる。
【００４３】
図５に示すように、例えば、クライアント端末装置ｃａは、サーバＳＡに近い。クライアント端末装置ｃａは、サーバＳＡよりもサーバＳＢから少し遠い。そして、クライアント端末装置ｃａは、サーバＳＡ〜ＳＣの中でサーバＳＣから最も遠い。
【００４４】
図６は、本実施の形態における画面共有システム例を示す説明図である。本実施の形態では、画面共有システム１００は、例えば、複数のサーバと、クライアント端末装置と、制御装置１０１と、を有する。
【００４５】
サーバは、ＳＡ〜ＳＣまである。複数のサーバＳｉは、所定領域である日本国内に構築されるネットワークに分散して設けられる。ネットワーク１０２は、ネットワーク１０２−１〜１０２−３がある。クライアント端末装置は、ｃａ〜ｃｃまである。クライアント端末装置の一例としては、ＰＣなどの固定端末装置の他、携帯電話機、ＰＨＳ（Ｐｅｒｓｏｎａｌ  Ｈａｎｄｙ  Ｐｈｏｎｅ）やＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｔ）などの移動体端末装置などが挙げられる。
【００４６】
複数のサーバＳｉと、複数のクライアント端末装置と、制御装置１０１とは、ネットワーク１０２−ｘ（ｘ＝１〜３）を介して接続される。ネットワーク１０２−ｘには、有線または無線を問わず、インターネット、ＬＡＮ、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＶＰＮ（Ｖｉｒｔｕａｌ  Ｐｒｉｖａｔｅ  Ｎｅｔｗｏｒｋ）などの任意の種類の通信網を採用可能である。クライアント端末装置ｃｊは、サーバＳｉのいずれかによってアプリケーションプログラムを実行する。
【００４７】
また、図示省略するが、制御装置１０１は、サーバＳｉのいずれかであってもよい。また、図示省略するが、サーバＳｉと、クライアント端末装置ｃｊとが同一のコンピュータであってもよい。
【００４８】
（クライアント端末装置のハードウェア構成例）
図７は、クライアント端末装置のハードウェア構成例を示すブロック図である。クライアント端末装置ｃｊは、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）７０１と、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）７０２と、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）７０３と、ディスクドライブ７０４と、ディスク７０５と、を有する。クライアント端末装置ｃｊは、Ｉ／Ｆ（Ｉｎｔｅｒ／Ｆａｃｅ）７０６と、キーボード７０７と、マウス７０８と、ディスプレイ７０９と、を有する。また、ＣＰＵ７０１と、ＲＯＭ７０２と、ＲＡＭ７０３と、ディスクドライブ７０４と、Ｉ／Ｆ７０６と、キーボード７０７と、マウス７０８と、ディスプレイ７０９とは、バス７００によってそれぞれ接続される。
【００４９】
ここで、ＣＰＵ７０１は、クライアント端末装置ｃｊの全体の制御を司る。ＲＯＭ７０２は、ブートプログラムなどのプログラムを記憶する。ＲＡＭ７０３は、ＣＰＵ７０１のワークエリアとして使用される。ディスクドライブ７０４は、ＣＰＵ７０１の制御にしたがってディスク７０５に対するデータのリード／ライトを制御する。ディスク７０５は、ディスクドライブ７０４の制御で書き込まれたデータを記憶する。ディスク７０５としては、磁気ディスク、光ディスクなどが挙げられる。
【００５０】
Ｉ／Ｆ７０６は、通信回線を通じてＬＡＮ、ＷＡＮ、インターネットなどのネットワーク１０２に接続され、このネットワーク１０２を介して他の装置に接続される。そして、Ｉ／Ｆ７０６は、ネットワーク１０２と内部のインターフェースを司り、外部装置からのデータの入出力を制御する。Ｉ／Ｆ７０６には、例えばモデムやＬＡＮアダプタなどを採用することができる。
【００５１】
キーボード７０７やマウス７０８は、利用者の操作により、各種データの入力を行うインターフェースである。ディスプレイ７０９は、ＣＰＵ７０１の指示により、データを出力するインターフェースである。
【００５２】
また、図示を省略するが、クライアント端末装置ｃｊには、カメラから画像や動画を取り込む入力装置やマイクから音声を取り込む入力装置が設けられていてもよい。また、図示を省略するが、クライアント端末装置ｃｊには、プリンタなどの出力装置が設けられていてもよい。
【００５３】
（サーバＳｉのハードウェア構成例）
また、サーバＳｉ、制御装置１０１のハードウェア構成例について説明する。ここでは、サーバＳｉ、制御装置１０１を「サーバ等」と表記する。
【００５４】
図８は、サーバのハードウェア構成例を示すブロック図である。サーバ等８００は、ＣＰＵ８０１と、ＲＯＭ８０２と、ＲＡＭ８０３と、ディスクドライブ８０４と、ディスク８０５と、Ｉ／Ｆ８０６と、を有する。
【００５５】
ＣＰＵ８０１と、ＲＯＭ８０２と、ＲＡＭ８０３と、ディスクドライブ８０４と、Ｉ／Ｆ８０６とは、バス８０７によってそれぞれ接続される。
【００５６】
ここで、ＣＰＵ８０１は、サーバ等８００の全体の制御を司る。ＲＯＭ８０２は、各種プログラムを記憶する。ＲＯＭ８０２に記憶されるプログラムは、ＣＰＵ８０１にロードされることにより、コーディングされている処理をＣＰＵ８０１に実行させる。ＲＡＭ８０３はＣＰＵ８０１のワークエリアとして使用される。
【００５７】
Ｉ／Ｆ８０６は、通信回線を通じてネットワーク１０２に接続され、ネットワーク１０２を介して他の装置に接続される。そして、Ｉ／Ｆ８０６は、ネットワーク１０２と内部のインターフェースを司り、他のコンピュータからのデータの入出力を制御する。Ｉ／Ｆ８０６には、例えば、モデムやＬＡＮアダプタなどを採用することができる。
【００５８】
ディスクドライブ８０４は、ＣＰＵ８０１の制御にしたがってディスク８０５に対するデータのリード／ライトを制御する。ディスク８０５は、ディスクドライブ８０４の制御で書き込まれたデータを記憶する。ディスク８０５としては、例えば、磁気ディスク、光ディスクなどが挙げられる。
【００５９】
また、サーバ等８００は、上述した構成部の他、例えば、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）、キーボード、マウス、ディスプレイなどを有することにしてもよい。
【００６０】
（画面共有システム１００の機能的構成例）
図９は、画面共有システムの機能的構成例を示すブロック図である。制御装置１０１は、端末情報管理部９０１と、参加要求受信部９０２と、サーバ情報送信部９０３と、通信品質情報受信部９０４と、サーバ決定部９０５と、サーバ通知部９０６と、を有する。参加要求受信部９０２からサーバ通知部９０６までの制御部の処理は、例えば、図８に示すＣＰＵ８０１がアクセス可能なＲＯＭ８０２、ＲＡＭ８０３、ディスク８０５などの記憶装置に記憶されたプログラムにコーディングされている。そして、ＣＰＵ８０１が記憶装置から該プログラムを読み出して、プログラムにコーディングされている処理を実行する。これにより、制御部の処理が実現される。また、制御部の処理結果は、例えば、ＲＯＭ８０２、ＲＡＭ８０３、ディスク８０５などの記憶装置に記憶される。
【００６１】
まず、制御装置１０１の端末情報管理部９０１は、例えば、画面共有システム１００に参加するサーバＳｉの情報を管理する。サーバＳｉの情報は、クライアント端末装置ｃｊが画面共有のためにサーバＳｉへの接続に用いる接続情報である。また、サーバＳｉの情報は、例えば、サーバＳｉとクライアント端末装置ｃｊとの間の通信品質を測定するために用いる情報である。具体的に、サーバＳｉの情報は、例えば、サーバＳｉごとのＩＰアドレスである。
【００６２】
端末情報管理部９０１は、画面共有に参加しているクライアント端末装置ｃｊの情報を管理する。クライアント端末装置ｃｊの情報は、例えば、クライアント端末装置ｃｊごとのＩＰアドレスである。また、端末情報管理部９０１は、対象アプリケーションを実行するサーバを決定する際に使用する各種情報を記憶する。端末情報管理部９０１は、例えば、ＲＯＭ８０２、ＲＡＭ８０３、ディスク８０５などの記憶装置によって実現される。ここで、実際に対象アプリケーションを実行してクライアント端末装置ｃｊに画面共有を行わせるサーバＳｉを画面共有サーバとも称する。
【００６３】
参加要求受信部９０２は、例えば、クライアント端末装置ｃｊからの画面共有への参加要求を表す参加要求信号を受信する機能を有する。サーバ情報送信部９０３は、例えば、画面共有に参加しているクライアント端末装置ｃｊや参加要求のあったクライアント端末装置ｃｊに対して、端末情報管理部９０１によって管理されているサーバＳｉの情報を送信する機能を有する。サーバＳｉの情報を送信することにより、クライアント端末装置ｃｊに対して各サーバＳｉとの通信品質を測定させる。また、画面共有に参加しているクライアント端末装置ｃｊや参加要求のあったクライアント端末装置ｃｊは、上述したように端末情報管理部９０１によって各クライアント端末装置ｃｊの情報が管理されている。
【００６４】
通信品質情報受信部９０４は、クライアント端末装置ｃｊからのクライアント端末装置ｃｊとサーバＳｉとの間の通信品質情報を受信する。通信品質情報は、例えば、通信品質に関する情報である。
【００６５】
上述したように、通信品質の評価値は、例えば、サーバＳｉとクライアント端末装置ｃｊとの間の通信に要する往復の通信時間、帯域幅、パケットロス率などが挙げられる。往復の通信時間を遅延時間とも称する。ここで、遅延時間やパケットロス率については、クライアント端末装置ｃｊからサーバＳｉへ送信されるＩＰパケットと、当該ＩＰポケットを受信したサーバＳｉからクライアント端末装置ｃｊへの返答に基づいて測定可能である。例えば、ＩＰパケットは、例えば、ｐｉｎｇコマンドによって生成される。帯域幅は、クライアント端末装置ｃｊからサーバＳｉへの一定時間あたりに通信できるデータ量であってもよいし、サーバＳｉからクライアント端末装置ｃｊへの一定時間あたりに通信できるデータ量であってもよい。帯域幅は、例えば、ｗｇｅｔコマンドなどを用いて測定してもよい。
【００６６】
サーバ決定部９０５は、通信品質情報に基づいて、実際に対象アプリケーションを実行するサーバＳｉを決定する。サーバ決定部９０５による決定方法は、後述する実施例１と実施例２とを用いて詳細に説明する。
【００６７】
そして、サーバ通知部９０６は、決定した画面共有サーバを、各サーバＳｉおよびクライアント端末装置ｃｊへ通知する。具体的に、サーバ通知部９０６は、端末情報管理部９０１によって管理されているクライアント端末装置ｃｊの情報およびサーバＳｉの情報に基づいて、決定結果を、クライアント端末装置ｃｊへ通知する。
【００６８】
より具体的に、サーバ通知部９０６は、決定した画面共有サーバが直前の画面共有サーバと同じ場合に、決定したサーバＳｉの接続情報を、クライアント端末装置ｃｊへ通知する。サーバ通知部９０６は、決定した画面共有サーバが直前の画面共有サーバと異なる場合に、決定したサーバＳｉの接続情報を、クライアント端末装置ｃｊおよびすべてのサーバＳｉへ通知する。
【００６９】
つぎに、サーバＳｉは、通信品質測定部９２１と、画像情報送信部９２２と、操作情報受信部９２３と、実行部９２４と、同期部９２５と、を有する。通信品質測定部９２１から同期部９２５までの制御部の処理は、例えば、図８に示すＣＰＵ８０１がアクセス可能なＲＯＭ８０２、ＲＡＭ８０３、ディスク８０５などの記憶装置に記憶されたプログラムにコーディングされている。そして、ＣＰＵ８０１が記憶装置から該プログラムを読み出して、プログラムにコーディングされている処理を実行する。これにより、制御部の処理が実現される。また、制御部の処理結果は、例えば、ＲＯＭ８０２、ＲＡＭ８０３、ディスク８０５などの記憶装置に記憶される。
【００７０】
通信品質測定部９２１は、クライアント端末の通信品質測定部９２１と協調して動作し、サーバＳｉ端末とクライアント端末間の通信品質情報を取得する。通信品質情報は、通信品質の評価値を含む情報である。通信品質の評価値は、通信に要する往復の遅延時間や帯域幅などの通信速度の評価値、パケットロス率などが挙げられる。ここでは、上述したように、本実施の形態では、通信に要する往復の時間を通信品質の評価値として利用する。具体的に、例えば、通信品質測定部９２１は、クライアント端末装置ｃｊから送信されたＩＰパケットに応じて返答を行う。ここでのＩＰパケットとは、例えば、ｐｉｎｇコマンドによって発行されるＩＰパケットである。
【００７１】
画像情報送信部９２２は、対象アプリケーションの実行に応じた画面の画像を含む画像情報を、クライアント端末装置ｃｊへ送信する。ここで、サーバＳｉは、例えば、通信品質測定部９２１において通信品質を測定した際のクライアント端末装置ｃｊの情報を記憶装置に記憶しておき、画像情報送信部９２２は、クライアント端末装置ｃｊの情報に基づいて、画像情報の宛先を決定する。
【００７２】
操作情報受信部９２３は、クライアント端末からの操作情報を受信し、受信した操作情報を実行部へ受け渡す。操作情報は、キーボード７０７やマウス７０８などの入力装置に対する利用者の操作に応じた操作情報である。
【００７３】
実行部９２４は、対象アプリケーションを実行する。対象アプリケーションは、画面共有の対象となるアプリケーションプログラムである。対象アプリケーションは、ＯＳのアプリケーション層で動作するものであってもよいし、ハイパーバイザ上で動作するＶＭそのものであってもよい。対象アプリケーションは、画面共有サーバの移行があった場合に移行先のサーバＳｉでも実行できなければならない。このため、対象アプリケーションは、画面共有サーバの候補となるすべてのサーバＳｉに予め設けられる。
【００７４】
また、実行部９２４は、操作情報受信部９２３によって受信された操作情報に応じて対象アプリケーションを実行する。
【００７５】
同期部９２５は、現在の画面共有サーバである移行元のサーバＳｉの対象アプリケーションの状態を、移行先のサーバＳｉへ移行する。対象アプリケーション状態とは、具体的に、同期部９２５は、例えば、アプリケーション状態転送技術（例えば、特表２０１４−５２９７８４号公報参照。）を用いて対象アプリケーションの状態を移行する。また、対象アプリケーションがＶＭそのものの場合、同期部９２５は、ＶＭのライブマイグレーション技術を用いて対象アプリケーションの状態を移行する。
【００７６】
最後に、クライアント端末装置ｃｊは、参加要求送信部９１１と、サーバ情報受信部９１２と、通信品質測定部９１３と、通信品質情報送信部９１４と、画像情報受信部９１５と、操作情報送信部９１６と、を有する。参加要求送信部９１１から操作情報送信部９１６までの制御部の処理は、例えば、図７に示すＣＰＵ７０１がアクセス可能なＲＯＭ７０２、ＲＡＭ７０３、ディスク７０５などの記憶装置に記憶されたプログラムにコーディングされている。そして、ＣＰＵ７０１が記憶装置から該プログラムを読み出して、プログラムにコーディングされている処理を実行する。これにより、制御部の処理が実現される。また、制御部の処理結果は、例えば、ＲＯＭ７０２、ＲＡＭ７０３、ディスク７０５などの記憶装置に記憶される。
【００７７】
参加要求送信部９１１は、例えば、新たに画面共有に参加したいクライアントが制御装置１０１に対して参加要求を表す参加要求信号を送信する。参加要求送信部９１１は、例えば、Ｉ／Ｆ７０６を用いて参加要求信号を送信する。ここで、参加要求信号には、いずれの画面共有に対する参加要求であるかを示す情報と、クライアント端末装置ｃｃの識別情報と、が含まれる。
【００７８】
サーバ情報受信部９１２は、制御装置１０１のサーバ情報送信部９０３からのサーバＳｉの情報を受信する。ここで、クライアント端末装置ｃｊは、サーバＳｉの情報を受信することにより、通信品質を測定する指示を受け付けたと判断する。また、サーバ情報受信部９１２は、制御装置１０１のサーバ通知部９０６から、決定された画面共有サーバの情報を受信する。サーバ情報受信部９１２は、例えば、Ｉ／Ｆ７０６を用いて各種情報を受信する。
【００７９】
つぎに、通信品質測定部９１３は、受信したサーバＳｉの情報が表すサーバＳｉと自クライアント端末装置ｃｊとの間の通信品質の評価値を測定する。ここでは、遅延時間を通信品質の評価値として利用する。具体的に、例えば、通信品質測定部９１３は、サーバＳｉの通信品質測定部９２１と協調して動作し、サーバＳｉごとにサーバＳｉと自クライアント端末装置ｃｊとの間の通信品質を表す通信品質情報を得る。通信品質測定部９１３は、受信したサーバＳｉの情報が表すサーバＳｉの各々に対して、ＩＰパケットを送信し、ＩＰパケットに対する返答を受信する。ここでのＩＰパケットとは、例えば、ｐｉｎｇコマンドによって発行されるＩＰパケットである。
【００８０】
つぎに、通信品質情報送信部９１４は、通信品質情報を制御装置１０１へ送信する。通信品質情報送信部９１４は、例えば、Ｉ／Ｆ７０６を用いて通信品質情報を送信する。
【００８１】
また、画像情報受信部９１５は、画面共有サーバからの画面情報を受信する。具体的に、画像情報受信部９１５は、Ｉ／Ｆ７０６を用いて画面情報を受信する。そして、クライアント端末装置ｃｊは、受信した画面情報に含まれる画像を表示する。
【００８２】
また、操作情報送信部９１６は、対象アプリケーションの画面に対して行った操作に応じた操作情報を取得して、画面共有サーバへ送信する。利用者は、例えば、キーボード７０７やマウス７０８などの入力装置に対して操作を行う。
【００８３】
以上、各機能についての簡単な説明を終了する。つぎに、各部の全体の動作の流れについて図１０を用いて説明する。
【００８４】
図１０は、新たにクライアント端末装置から画面共有の参加要求があった場合の処理手順を示すシーケンス図である。例えば、クライアント端末装置ｃａとクライアント端末装置ｃｂとによってサーバＳＡにアプリケーションプログラムを実行させることにより画面共有を行っている。
【００８５】
そのため、サーバＳＡの画像情報送信部９２２は、実行部９２４によるアプリケーションプログラムの実行に応じた画面の画像を含む画像情報を送信する（ステップＳ１００１）。
【００８６】
そして、クライアント端末装置ｃａ，ｃｂの画像情報受信部９１５は、例えば、サーバＳＡからの画像情報を受信する。ここで、そして、クライアント端末装置ｃａ，ｃｂは、受信した画像情報に含まれる画像をディスプレイ７０９などに表示する。
【００８７】
また、図示省略するが、クライアント端末装置ｃａまたはクライアント端末装置ｃｂの操作情報送信部９１６は、キーボード７０７やマウス７０８などの入力装置によって受け付けた利用者の操作に応じた操作情報を、画面共有サーバであるサーバＳＡへ送信する。
【００８８】
そして、サーバＳＡの操作情報受信部９２３は、例えば、クライアント端末装置ｃａまたはクライアント端末装置ｃｂからの操作情報を受信する。
【００８９】
そして、サーバＳＡの実行部９２４は、操作情報に応じてアプリケーションプログラムを実行する。そして、上述したように、サーバＳＡの画像情報送信部９２２は、実行部９２４によるアプリケーションプログラムの実行に応じた画面の画像を含む画像情報を送信する。このように、画面共有が行われている間、操作情報と画像情報がやり取りされる。
【００９０】
ここで、クライアント端末装置ｃｃが新たに画面共有に参加する。クライアント端末装置ｃｃの参加要求送信部９１１は、例えば、制御装置１０１へ参加要求を送信する（ステップＳ１００２）。ここで、参加要求を送信するとは、参加要求を表す参加要求信号を送信することである。参加要求信号には、いずれの画面共有に対する参加要求であるかを示す情報と、クライアント端末装置ｃｃの識別情報と、が含まれる。
【００９１】
そして、制御装置１０１の参加要求受信部９０２は、例えば、クライアント端末装置ｃｃからの参加要求を表す参加要求信号を受信する。サーバ決定部９０５による画面共有サーバの決定方法については、実施例１と実施例２とを用いて詳細に説明する。
【００９２】
制御装置１０１のサーバ情報送信部９０３は、例えば、各サーバＳｉの情報を、参加要求のあったクライアント端末装置ｃｃと画面共有に参加しているクライアント端末装置ｃａ，ｃｂとに送信する（ステップＳ１００３，Ｓ１００４）。各サーバＳｉの情報は、端末情報管理部９０１によって管理される。これにより、通信品質測定要求が行われる。
【００９３】
クライアント端末装置ｃａ，ｃｂ，ｃｃのサーバ情報受信部９１２は、例えば、制御装置１０１からのサーバＳｉの情報を受信することにより通信品質測定要求を受け付ける。クライアント端末装置ｃａ，ｃｂ，ｃｃの通信品質測定部９１３は、サーバＳｉの情報に基づいて、サーバＳｉの通信品質測定部９２１の通信品質を測定する。
【００９４】
クライアント端末装置ｃａ，ｃｂ，ｃｃの通信品質情報送信部９１４は、通信品質測定結果である通信品質情報を制御装置１０１へ送信する（ステップＳ１００５）。
【００９５】
制御装置１０１の通信品質情報受信部９０４は、通信品質測定結果である通信品質情報を各クライアント端末装置ｃｊから受信する。そして、サーバ決定部９０５は、通信品質情報に基づいて、画面共有サーバを決定する。図１０の例では、画面共有サーバをサーバＳＢとする。
【００９６】
そして、サーバ通知部９０６は、例えば、画面共有サーバの情報をクライアント端末装置ｃａ，ｃｂ，ｃｃへ送信する（ステップＳ１００６）。また、サーバ通知部９０６は、画面共有サーバとして決定されたサーバＳｉが前回画面共有サーバとして決定されたサーバＳｉと異なる場合、画面共有サーバの情報をサーバＳＡ，ＳＢ，ＳＣへ送信する（ステップＳ１００７）。また、サーバ通知部９０６は、画面共有サーバとして選択されたサーバＳｉが前回画面共有サーバとして決定されたサーバＳｉと同じ場合、画面共有サーバの情報をクライアント端末装置ｃｊにだけ送信する。
【００９７】
そして、クライアント端末装置ｃａ，ｃｂ，ｃｃのサーバ情報受信部９１２は、例えば、新たに共有画面サーバの情報を受信する。ここでの共有画面サーバの情報は、サーバＳｉのＩＤである。
【００９８】
また、サーバＳＡの同期部９２５は、画面共有サーバの情報を受信すると、移行前の画面共有サーバであるため、画面共有サーバとしての機能を終了し、新たな画面共有サーバであるサーバＳＡとアプリケーションを同期させる。そして、サーバＳＡの実行部９２４は、アプリケーションの同期が終了した場合、対象アプリケーションを終了する。
【００９９】
また、サーバＳＢの実行部９２４は、画面共有サーバの情報を受信すると、新たな画面共有サーバであるため、対象アプリケーションを起動する。そして、サーバＳＢの同期部９２５は、画面共有サーバの情報を受信すると、新たな画面共有サーバであるため、起動した対象アプリケーションをサーバＳＡと同期させる。サーバＳＢの同期部９２５は、同期が終了すると、画面共有サーバの機能を起動する。
【０１００】
クライアント端末装置ｃａ，ｃｂ，ｃｃは、受信した画面共有サーバの情報に基づいて、画面共有サーバとなったサーバＳＢへ接続する（ステップＳ１００８）。そして、サーバＳＢの画像情報送信部９２２は、例えば、対象アプリケーションの実行に応じた画面の画像を含む画像情報をクライアント端末装置ｃａ，ｃｂ，ｃｃへ送信する（ステップＳ１００９）。そして、クライアント端末装置ｃａ，ｃｂ，ｃｃの画像情報受信部９１５は、サーバＳＢの画像情報送信部９２２からの画像情報を受信する。このようにして、画面共有が開始される。
【０１０１】
これにより、各クライアント端末装置ｃｊの利用者は画面共有サーバが切り替わったことを意識することなく画面共有での作業を継続することができる。
【０１０２】
つぎに、サーバ決定部９０５による詳細な例を実施例１と実施例２とを用いて説明する。
【０１０３】
（実施例１）
実施例１では、サーバＳｉとクライアント端末装置ｃｊと複数の組み合わせについての遅延時間の統計量に基づいて画面共有サーバを決定する。ここでは、遅延時間を例に挙げるが、上述したように帯域幅やパケットロス率などであってもよい。
【０１０４】
まず、サーバ決定部９０５は、複数のサーバＳｉの各々について、複数の組み合わせのうちサーバを含む組み合わせについて取得した評価値の分布の統計量を算出する。評価値の分布の統計量は、例えば、評価値の平均値や中央値である。サーバ決定部９０５は、複数のサーバＳｉのうち、求めた統計量が、通信品質が最もよいことを示すサーバを、アプリケーションプログラムを実行させるサーバに決定する。評価値が遅延時間の場合、求めた統計量が最小のサーバが、通信品質が最もよいことを示すサーバである。評価値が帯域の場合、評価値が帯域の場合、求めた統計量が最大のサーバが、通信品質が最もよいことを示すサーバである。評価値がパケットロス率の場合、求めた統計量が最小のサーバが、通信品質が最もよいことを示すサーバである。
【０１０５】
より具体的に、サーバ決定部９０５は、例えば、画面共有に参加可能なクライアント端末装置ｃｊをリスト化した参加可能クライアントリストを生成する。
【０１０６】
図１１は、参加可能クライアントリスト例を示す説明図である。参加可能クライアントリスト１１００は、参加可能なすべてのクライアント端末装置ｃｊの情報が登録される。参加可能クライアントリスト１１００は、例えば、番号と、クライアント端末装置ｃｊのＩＤと、のフィールドを有する。番号のフィールドには、例えば、登録された順に付された番号が設定される。クライアント端末装置ｃｊのＩＤのフィールドには、例えば、クライアント端末装置ｃｊを識別する識別情報が設定される。参加可能クライアントリスト１１００は、例えば、ＲＯＭ８０２、ＲＡＭ８０３、ディスク８０５などの記憶装置に記憶される。
【０１０７】
つぎに、サーバ決定部９０５は、例えば、通信品質情報受信部９０４によって受信された測定結果を遅延時間テーブルへ格納する。
【０１０８】
図１２は、遅延時間テーブル例を示す説明図である。遅延時間テーブル１２００は、例えば、クライアント端末装置ｃｊと、サーバＳｉと、の各組み合わせについて測定した遅延時間が格納される。遅延時間テーブル１２００は、例えば、ＲＯＭ８０２、ＲＡＭ８０３、ディスク８０５などの記憶装置に記憶される。例えば、サーバＳＡとクライアント端末装置ｃａとの間の遅延時間はＬＡａである。
【０１０９】
サーバ決定部９０５は、複数のクライアント端末装置ｃｊのうち、複数の組み合わせのうちの複数のサーバＳｉのすべての組み合わせについて取得した評価値が、通信品質が所定の通信品質よりも悪いことを示すクライアント端末装置へ前記画面の共有ができないことを通知する。所定の通信品質よりも悪いか否かは、閾値を設けることにより判定可能である。例えば、評価値が遅延時間の場合、閾値は、所定の時間である。評価値が遅延時間の場合、評価値が閾値以上であれば、所定の通信品質よりも悪く、評価値が閾値未満であれば、所定の通信品質よりもよいことを示す。また、例えば、評価値が帯域の場合、閾値は、所定の帯域である。評価値が帯域の場合、評価値が閾値未満であれば、所定の通信品質よりも悪く、評価値が閾値以上であれば、所定の通信品質よりもよいことを示す。
【０１１０】
より具体的に、例えば、サーバ決定部９０５は、クライアント端末装置ｃａ〜ｃｂのうち、遅延時間テーブル１２００に設定されたすべてのサーバＳｉとの遅延時間が閾値以上のクライアント端末装置ｃｊがあるか否かを判断する。ここでは、参加可能クライアントリスト１１００に登録されたクライアント端末装置ｃａ〜ｃｂの中から判断が行われる。サーバ決定部９０５は、例えば、閾値以上のクライアント端末装置ｃｊがあると判断した場合、クライアント端末装置ｃｊの情報を、参加可能クライアントリスト１１００から削除する。ここでの閾値は、例えば、利用者や画面共有システム１００の開発者などが設定可能とする。閾値は、例えば、クライアント端末装置ｃｊに求める通信品質に応じて設定される。また、閾値は、例えば、アプリケーションプログラムの種類に応じて設定されてもよい。ここでは、閾値は、例えば、２００［ｍｓ］とする。
【０１１１】
このように、どのサーバＳｉと接続しても遅くなるようなクライアント端末装置ｃｊについては画面共有から削除してもらうことにより、他の利用者の操作感の向上を図ることができる。また、サーバ決定部９０５は、閾値以上のクライアント端末装置ｃｊを参加可能とするか否かの指示を受け付ける旨を各クライアント端末装置ｃｊに表示させてもよい。そして、サーバ決定部９０５は、利用者の操作による参加可能という指示を、クライアント端末装置ｃｊを介して受け付けた場合に、閾値以上のクライアント端末装置ｃｊを参加可能クライアントリスト１１００から削除しないようにしてもよい。これにより、他の利用者が、いずれかのクライアント端末装置ｃｊによって操作感が低下しても参加可能と判断した場合にだけ参加可能となる。
【０１１２】
また、すべてのクライアント端末装置ｃａ〜ｃｃが、各サーバＳｉとの間の遅延時間が閾値以上であると、参加可能クライアントリスト１１００が空になってしまう場合がある。参加可能クライアントリスト１１００が空になってしまった場合、サーバ決定部９０５は、ネットワーク１０２品質の不足により画面共有できない旨をクライアント端末装置ｃｊに表示させ、画面共有を終了する。これにより、ネットワーク１０２の品質が一定以上ある場合にだけ画面共有をさせることができ、利用者の操作感の低下を抑止することができる。
【０１１３】
また、参加可能クライアントリスト１１００が空でない場合がある。このような場合、サーバ決定部９０５は、例えば、遅延時間テーブル１２００に基づいて、サーバＳＡ〜ＳＣごとに、参加可能クライアントリスト１１００に登録されたクライアント端末装置ｃｊについての遅延時間の分布の統計量を算出する。遅延時間の分布の統計量としては、例えば、平均値、中央値、最頻値などが挙げられる。ここでは、平均値を例に挙げて説明する。
【０１１４】
具体的に、サーバ決定部９０５は、例えば、遅延時間テーブル１２００に基づいて、サーバＳＡ〜ＳＣごとに、参加可能クライアントリスト１１００に登録されたクライアント端末装置ｃｊについての遅延時間の平均値を算出する。平均値の算出結果は、例えば、平均遅延時間テーブルに格納される。
【０１１５】
図１３は、平均遅延時間テーブル例を示す説明図である。平均遅延時間テーブル１３００は、サーバＳｉごとに、算出された遅延時間の平均値を格納する。例えば、サーバＳＡの平均遅延時間は、時間Ｍｅａｎ＿ＬＡである。サーバＳＢの平均遅延時間は、時間Ｍｅａｎ＿ＬＢである。サーバＳＣの平均遅延時間は、時間Ｍｅａｎ＿ＬＣである。
【０１１６】
そして、サーバ決定部９０５は、平均遅延時間テーブル１３００に基づいて、平均遅延時間が最も小さいサーバＳｉを、画面共有サーバに決定する。また、平均遅延時間が最も小さいサーバＳｉが、複数ある場合、サーバ決定部９０５は、例えば、最も小さいサーバＳｉからランダムに画面共有サーバを決定する。
【０１１７】
また、サーバ決定部９０５は、参加可能クライアントリスト１１００に情報が登録されているクライアント端末装置ｃｊのうち、決定した画面共有サーバとの遅延時間が閾値以上のクライアント端末装置ｃｊがあるか否かを判断する。サーバ決定部９０５は、閾値以上のクライアント端末装置ｃｊがあると判断した場合、閾値以上のクライアント端末装置ｃｊを画面共有から削除する決定をしてもよい。そして、制御装置１０１は、閾値以上のクライアント端末装置ｃｊへ画面共有ができないことを通知する。これにより、決定された画面共有サーバとの通信品質が極端に悪いクライアント端末装置ｃｊを除外することにより、全体のクライアント端末装置ｃｊの通信品質を改善させることができる。
【０１１８】
また、通信品質が極端に悪いようなクライアント端末装置ｃｊを除外してから共有画面サーバを決定してもよい。そこで、サーバ決定部９０５は、複数のサーバＳｉの各々について、複数のクライアント端末装置ｃｊのうち、複数の組み合わせのうちのサーバを含む組み合わせについて取得した評価値が、通信品質が所定の通信品質よりもよいことを示すクライアント端末装置を特定する。そして、サーバ決定部９０５は、複数のサーバＳｉのうち、特定したクライアント端末装置ｃｊの数が、最多のサーバを、画面共有サーバに決定する。
【０１１９】
より具体的に、例えば、サーバ決定部９０５は、複数のサーバＳｉの各々について、クライアント端末装置ｃｊのうち、サーバＳｉとの遅延時間が閾値以上でないクライアント端末装置ｃｊを共有可能クライアント端末装置ｃｊとして特定する。ここでは、参加可能クライアントリスト１１００に登録されたクライアント端末装置ｃｊから特定される。つぎに、サーバ決定部９０５は、例えば、複数のサーバＳｉのうち、共有可能クライアント端末装置ｃｊの数が最多のサーバＳｉを共有画面サーバとして決定してもよい。
【０１２０】
また、サーバ決定部９０５は、最多のサーバの数が複数ある場合、最多のサーバの各々について、複数の組み合わせのうち、最多のサーバと特定したクライアント端末装置との各組み合わせについて取得した評価値の分布の統計量を算出する。統計量や統計量の算出方法については上述した例と同じである。そして、サーバ決定部９０５は、最多のサーバのうち、求めた統計量が、通信品質が最もよいことを示すサーバを、アプリケーションプログラムを実行させるサーバに決定する。通信品質が最もよいことを示すことの詳細例は、上述した例と同じである。
【０１２１】
より具体的に、例えば、共有可能クライアント端末装置ｃｊの数が最多のサーバＳｉが複数ある場合がある。このような場合、サーバ決定部９０５は、例えば、遅延時間テーブル１２００に基づいて、サーバＳＡ〜ＳＣごとに、特定した共有可能クライアントについての遅延時間の平均値を算出する。平均値の算出結果は、例えば、上述したように平均遅延時間テーブル１３００に格納される。そして、上述したように、サーバ決定部９０５は、平均遅延時間テーブル１３００に基づいて、平均遅延時間が最も小さいサーバＳｉを、画面共有サーバに決定する。
【０１２２】
具体的に、上述したように、平均遅延時間が最も小さいサーバＳｉが、複数ある場合、サーバ決定部９０５は、例えば、最も小さいサーバＳｉからランダムに画面共有サーバを決定する。
【０１２３】
これにより、通信品質が極端に悪いようなクライアント端末装置ｃｊを除外しつつ、全体にクライアント端末装置ｃｊの通信品質がよくなるようなサーバＳｉによって画面共有が可能となる。したがって、利用者の操作に対する応答性の向上を図り、利用者の操作感の向上を図ることができる。
【０１２４】
（実施例１にかかる制御装置１０１による画面共有サーバの決定処理手順例）
図１４は、実施例１にかかる制御装置による画面共有サーバの決定処理手順例を示すフローチャートである。制御装置１０１は、参加要求のあったクライアント端末装置ｃｊおよび画面共有に参加中のクライアント端末装置ｃｊのすべてのクライアント端末装置ｃｊを参加可能クライアントリスト１１００へ登録する（ステップＳ１４０１）。クライアント端末装置ｃｊを参加可能クライアントリスト１１００へ登録するとは、クライアント端末装置ｃｊの情報を参加可能クライアントリスト１１００へ登録することである。
【０１２５】
つぎに、制御装置１０１は、クライアント端末装置ｃｊからの測定結果を遅延時間テーブル１２００へ格納する（ステップＳ１４０２）。制御装置１０１は、参加可能クライアントリスト１１００に登録されたクライアント端末装置ｃｊのうち、すべてのサーバＳｉとの間の遅延時間が２００［ｍｓ］以上となるクライアント端末装置ｃｊがあるか否かを判断する（ステップＳ１４０３）。２００［ｍｓ］は上述した閾値として設定された値である。
【０１２６】
２００［ｍｓ］以上となるクライアント端末装置ｃｊがあると判断された場合（ステップＳ１４０３：Ｙｅｓ）、制御装置１０１は、２００［ｍｓ］以上となるクライアント端末装置ｃｊを参加可能クライアントリスト１１００から削除し（ステップＳ１４０４）、ステップＳ１４０３へ戻る。２００［ｍｓ］以上となるクライアント端末装置ｃｊがないと判断された場合（ステップＳ１４０３：Ｎｏ）、制御装置１０１は、参加可能クライアントリスト１１００が空か否かを判断する（ステップＳ１４０５）。
【０１２７】
参加可能クライアントリスト１１００が空であると判断された場合（ステップＳ１４０５：Ｙｅｓ）、制御装置１０１は、画面共有不可に決定し、画面共有不可となったことを各クライアント端末装置ｃｊへ通知し（ステップＳ１４１３）、一連の処理を終了する。このように、すべてのクライアント端末装置ｃｊの通信品質が悪い場合には、画面共有が困難である。画面共有が困難であるとは、すべての利用者の操作に対する応答性が悪い場合である。この場合、例えば、画面共有を用いた会議などを円滑に進めることが困難となる。このため、画面共有不可が通知されると、通信環境の改善などの目安とすることができる。
【０１２８】
一方、参加可能クライアントリスト１１００が空でないと判断された場合（ステップＳ１４０５：Ｎｏ）、制御装置１０１は、サーバＳｉとの遅延時間が２００［ｍｓ］以下となるクライアント端末装置ｃｊを許容可能クライアント端末装置ｃｊとして特定する（ステップＳ１４０６）。そして、制御装置１０１は、サーバＳｉごとに許容可能クライアント端末装置ｃｊの数をカウントする（ステップＳ１４０７）。
【０１２９】
つぎに、制御装置１０１は、例えば、許容可能クライアント端末装置ｃｊ数が最多のサーバＳｉが１台か否かを判断する（ステップＳ１４０８）。許容可能クライアント端末装置ｃｊ数が最多のサーバＳｉが１台である場合（ステップＳ１４０８：Ｙｅｓ）、制御装置１０１は、最多のサーバＳｉを画面共有サーバに決定し（ステップＳ１４１１）、ステップＳ１４１２へ移行する。
【０１３０】
許容可能クライアント端末装置ｃｊ数が最多のサーバＳｉが１台でない場合（ステップＳ１４０８：Ｎｏ）、制御装置１０１は、許容可能クライアント端末装置ｃｊ数が最多のサーバＳｉのうち、許容可能クライアント端末装置ｃｊとの遅延時間の平均値を算出する（ステップＳ１４０９）。そして、制御装置１０１は、最多のサーバＳｉのうち、遅延時間の平均値が最小のサーバＳｉを画面共有サーバに決定する（ステップＳ１４１０）。
【０１３１】
制御装置１０１は、例えば、決定されたサーバＳｉが許容可能でないクライアント端末装置ｃｊを画面共有参加不可に決定し（ステップＳ１４１２）、一連の処理を終了する。
【０１３２】
（実施例２）
実施例２では、通信品質の評価値が複数種類ある場合、各評価値をスコア化して、総合評価値に基づいて、画面共有サーバを決定する。これにより、サーバの通信品質を評価する確度の向上を図ることができる。これにより、クライアント端末装置ごとの通信遅延のばらつきの抑制を図ることができる。ここでは、遅延時間と、帯域幅と、の例について説明する。
【０１３３】
ここで、評価値が、第１評価値と第２評価値との複数種類ある場合について説明する。サーバ決定部９０５は、複数の組み合わせの各々について、取得した第１評価値をスコア化した値と、取得した第２評価値をスコア化した値と、によって前記通信品質の総合評価値を算出する。そして、サーバ決定部９０５は、複数のサーバＳｉの各々について、算出した総合評価値を合計した合計値を算出する。サーバ決定部９０５は、複数のサーバのうち、算出した合計値が通信品質が最もよいことを示すサーバを、画面共有サーバに決定する。通信品質が最もよいことを示すことの詳細例は、上述した例と同じである。
【０１３４】
サーバ決定部９０５は、例えば、画面共有に参加可能なクライアント端末装置ｃｊをリスト化した参加可能クライアントリスト１１００を生成する。参加可能クライアントリスト１１００の例は、実施例１と同様であるため詳細な説明を省略する。
【０１３５】
ここでは、第１評価値として遅延時間を利用し、第２評価値として帯域幅を利用する。サーバ決定部９０５は、例えば、クライアント端末装置ｃｊから受信した測定結果を遅延時間テーブル１２００、帯域幅テーブルへ格納する。遅延時間テーブル１２００の例は、実施例１と同様であるため詳細な説明を省略する。
【０１３６】
図１５は、帯域幅テーブル例を示す説明図である。帯域幅テーブル１５００は、クライアント端末装置ｃｊと、サーバＳｉと、の各組み合わせについて測定した帯域幅が格納される。帯域幅テーブル１５００は、例えば、ＲＯＭ８０２、ＲＡＭ８０３、ディスク８０５などの記憶装置に記憶される。例えば、サーバＳＡとクライアント端末装置ｃａとの間の帯域幅はＷＡａである。
【０１３７】
つぎに、サーバ決定部９０５は、遅延時間テーブル１２００に格納された遅延時間に対応するポイントを遅延時間ポイントテーブルから求める。
【０１３８】
図１６は、遅延時間ポイントテーブル例を示す説明図である。遅延時間ポイントテーブル１６００には、遅延時間を区切った時間帯ごとにポイントが設定される。遅延時間ポイントテーブル１６００は、例えば、ＲＯＭ８０２、ＲＡＭ８０３、ディスク８０５などの記憶装置に記憶される。ここでは、遅延時間が短いほど、ポイントが高くなる。例えば、遅延時間が０〜５０［ｍｓ］であれば、ポイントが１０である。例えば、遅延時間が１５０［ｍｓ］以上であれば、ポイントが０である。これにより、第１評価値をポイント化することができる。
【０１３９】
そして、サーバ決定部９０５は、帯域幅ポイントテーブルに格納された帯域幅に対応するポイントを帯域幅ポイントテーブルから求める。
【０１４０】
図１７は、帯域幅ポイントテーブル例を示す説明図である。帯域幅ポイントテーブル１７００には、帯域幅を区切った幅ごとにポイントが設定される。帯域幅ポイントテーブル１７００は、例えば、ＲＯＭ８０２、ＲＡＭ８０３、ディスク８０５などの記憶装置に記憶される。ここでは、帯域幅が大きいほど、ポイントが高くなる。例えば、帯域幅が１００［Ｍｂｐｓ］以上であれば、ポイントが１０である。例えば、帯域幅が０〜１０［Ｍｂｐｓ］であれば、ポイントが０である。これにより、第２評価値をポイント化することができる。
【０１４１】
そして、サーバ決定部９０５は、サーバＳｉとクライアント端末装置ｃｊの組み合わせごとに、遅延時間に対応するポイントと、帯域幅に対応するポイントと、の合計値を総合評価値として算出する。ここで、総合評価値を通信品質ポイントとも称する。
【０１４２】
図１８は、通信品質ポイントテーブル例を示す説明図である。通信品質ポイントテーブル１８００には、サーバＳｉとクライアント端末装置ｃｊの組み合わせごとの通信品質ポイントが設定される。通信品質ポイントテーブル１８００は、例えば、ＲＯＭ８０２、ＲＡＭ８０３、ディスク８０５などの記憶装置に記憶される。サーバＳＡとクライアント端末装置ｃａとの組み合わせにおける通信品質ポイントは、ＰＡａである。
【０１４３】
つぎに、サーバ決定部９０５は、複数のサーバＳｉの各々について、サーバＳｉとクライアント端末装置ｃｊの組み合わせについて算出した通信品質ポイントの合計ポイントを算出する。
【０１４４】
図１９は、合計ポイントテーブル例を示す説明図である。合計ポイントテーブル１９００には、サーバＳｉごとの合計ポイントが設定される。合計ポイントテーブル１９００は、例えば、ＲＯＭ８０２、ＲＡＭ８０３、ディスク８０５などの記憶装置に記憶される。サーバＳＡの合計ポイントはＴｏｔａｌ＿ＰＡである。
【０１４５】
そして、サーバ決定部９０５は、決定した合計ポイントが最大のサーバＳｉを共有画面サーバに決定する。これにより、複数の評価値によって通信品質がよくなるようなサーバＳｉを画面共有サーバとできるため、応答遅延のばらつきを抑制することができる。したがって、利用者の操作に対する応答性の向上を図り、利用者の操作感の向上を図る。
【０１４６】
また、ここで、サーバＳｉすべてに対して極端に通信品質が悪いクライアント端末装置ｃｊを除外して画面共有サーバを決定してもよい。サーバ決定部９０５は、複数のクライアント端末装置のうち、複数の組み合わせのうちの複数のサーバのすべての組み合わせについて算出した総合評価値が、通信品質が所定の通信品質よりも悪いことを示すクライアント端末装置へ前記画面の共有ができないことを通知する。上述したようにポイントが高いほど、通信品質はよいことを表す。このため、サーバ決定部９０５は、総合評価値が閾値以上であれば、所定の通信品質よりもよいことを示し、総合評価値が閾値未満であれば、所定の通信品質よりも悪いことを示すと判断する。
【０１４７】
また、ここで、サーバＳｉの各々について極端に通信品質が悪いクライアント端末装置ｃｊを除外して画面共有サーバを決定してもよい。サーバ決定部９０５は、複数のサーバＳｉの各々について、複数のクライアント端末装置ｃｊのうち、算出した総合評価値が、第２条件を満たさないクライアント端末装置を特定する。そして、サーバ決定部９０５は、複数のサーバＳｉのうち、特定したクライアント端末装置の数が、最多のサーバを、画面共有サーバに決定する。第２条件は上述例と同じである。
【０１４８】
具体的に、例えば、サーバ決定部９０５は、複数のサーバＳｉの各々について、クライアント端末装置ｃｊのうち、通信品質ポイントが所定ポイント以上となるクライアント端末装置ｃｊを許容可能クライアント端末装置ｃｊとして特定する。ここでは、参加可能クライアントリスト１１００に登録されたクライアント端末装置ｃｊから特定される。所定ポイントとは、例えば、利用者が定めた値である。例えば、所定ポイントは６ポイントとする。そして、サーバ決定部９０５は、例えば、複数のサーバＳｉのうち、共有可能クライアント端末装置ｃｊの数が最多のサーバＳｉを共有画面サーバとして決定してもよい。
【０１４９】
また、最多のサーバが複数ある場合がある。このような場合、サーバ決定部９０５は、最多のサーバの各々について、複数の組み合わせのうち、最多のサーバと特定したクライアント端末装置との各組み合わせについての総合評価値の合計値が、通信品質が最もよいことを示すサーバを、画面共有サーバに決定する。ここでの通信品質が最もよいことを示すということの詳細例は上述例と同じである。
【０１５０】
また、具体的に、例えば、共有可能クライアント端末装置ｃｊの数が最多のサーバＳｉが複数ある場合がある。このような場合、サーバ決定部９０５は、例えば、通信品質ポイントテーブル１８００に基づいて、各サーバＳｉについて、サーバＳｉと共有可能クライアント端末装置ｃｊの組み合わせについて算出した通信品質ポイントの合計ポイントを算出する。合計ポイントの算出結果は、例えば、上述したように合計ポイントテーブル１９００に格納される。サーバ決定部９０５は、合計ポイントテーブル１９００に基づいて、合計ポイントが最大のサーバＳｉを共有画面サーバに決定する。
【０１５１】
これにより、通信遅延のばらつきを抑制可能なサーバＳｉを共有画面サーバとできる。したがって、利用者の操作性の向上を図ることができる。
【０１５２】
また、サーバ決定部９０５は、複数のクライアント端末装置ｃｊのうち、決定した画面共有サーバについての算出した総合評価値が、第２条件を満たすクライアント端末装置へ画面の共有ができないことを通知する。このように、決定した画面共有サーバとの間の通信品質が悪いクライアント端末装置を画面共有から除外することにより、より通信遅延のばらつきの抑制を図ることができる。
【０１５３】
また、上述例では、評価値が第１評価値と第２評価値の場合を例に挙げたが、さらに、第３評価値がある場合も同様にポイント化して総合評価値を求めればよい。第３評価値として、パケットロス率を用いる場合、上述例の各ポイントテーブルと合わせるためには、パケットロス率のポイントテーブルは、パケットロス率が高いほど、ポイントが低くなるように作成されるとよい。
【０１５４】
（実施例２にかかる制御装置１０１による画面共有サーバの決定処理手順例）
図２０および図２１は、実施例２にかかる画面共有サーバの制御装置による画面共有サーバの決定処理手順例を示すフローチャートである。制御装置１０１は、すべてのクライアント端末装置ｃｊを参加可能クライアントリスト１１００へ登録する（ステップＳ２００１）。制御装置１０１は、クライアント端末装置ｃｊから受信した測定結果を遅延時間テーブル１２００、帯域幅テーブル１５００へ格納する（ステップＳ２００２）。
【０１５５】
制御装置１０１は、サーバＳｉとクライアント端末装置ｃｊとの組み合わせの各々について、遅延時間テーブル１２００に格納された遅延時間に対応するポイントを遅延時間ポイントテーブル１６００から求める（ステップＳ２００３）。制御装置１０１は、サーバＳｉとクライアント端末装置ｃｊとの組み合わせの各々について、帯域幅テーブル１５００に格納された帯域幅に対応するポイントを帯域幅ポイントテーブル１７００から求める（ステップＳ２００４）。
【０１５６】
制御装置１０１は、サーバＳｉの各々について、求めたポイントの合計ポイントを通信品質ポイントテーブル１８００へ格納する（ステップＳ２００５）。制御装置１０１は、参加可能クライアントリスト１１００に登録されたクライアント端末装置ｃｊのうち、すべてのサーバＳｉに対して６ポイント未満となるクライアント端末装置ｃｊが存在するか否かを判断する（ステップＳ２００６）。６ポイント未満となるクライアント端末装置ｃｊが存在すると判断された場合（ステップＳ２００６：Ｙｅｓ）、制御装置１０１は、６ポイント未満となるクライアント端末装置ｃｊを参加可能クライアントリスト１１００から削除し（ステップＳ２００７）、ステップＳ２００６へ戻る。
【０１５７】
６ポイント未満となるクライアント端末装置ｃｊが存在しないと判断された場合（ステップＳ２００６：Ｎｏ）、制御装置１０１は、ステップＳ２１０１へ移行する。
【０１５８】
制御装置１０１は、参加可能クライアントリスト１１００が空か否かを判断する（ステップＳ２１０１）。参加可能クライアントリスト１１００が空であると判断された場合（ステップＳ２１０１：Ｙｅｓ）、制御装置１０１は、画面共有不可に決定し（ステップＳ２１０９）、一連の処理を終了する。
【０１５９】
参加可能クライアントリスト１１００が空でないと判断された場合（ステップＳ２１０１：Ｎｏ）、制御装置１０１は、参加可能クライアントリスト１１００に登録されたクライアント端末装置ｃｊのうち、サーバＳｉとの通信品質ポイントが６ポイント以上となるクライアント端末装置ｃｊを該サーバＳｉの許容可能クライアント端末装置ｃｊとして特定する（ステップＳ２１０２）。つぎに、制御装置１０１は、サーバＳｉごとに許容可能クライアント端末装置ｃｊの数をカウントする（ステップＳ２１０３）。
【０１６０】
制御装置１０１は、許容可能クライアント端末装置ｃｊ数が、最多のサーバＳｉが１台か否かを判断する（ステップＳ２１０４）。最多のサーバＳｉが１台であると判断された場合（ステップＳ２１０４：Ｙｅｓ）、制御装置１０１は、最多のサーバＳｉを共有画面サーバとして決定し（ステップＳ２１０７）、ステップＳ２１０８へ移行する。
【０１６１】
最多のサーバＳｉが１台でないと判断された場合（ステップＳ２１０４：Ｎｏ）、制御装置１０１は、許容可能クライアント端末装置ｃｊ数が最多のサーバＳｉの各々について、許容可能クライアント端末装置ｃｊとの通信品質ポイントの合計値を算出する（ステップＳ２１０５）。そして、制御装置１０１は、最多のサーバＳｉのうち、合計値が最大となるサーバＳｉを共有画面サーバとして決定する（ステップＳ２１０６）。
【０１６２】
つぎに、制御装置１０１は、決定されたサーバＳｉが許容可能でないクライアント端末装置ｃｊを画面共有参加不可に決定し（ステップＳ２１０８）、一連の処理を終了する。許容可能でないクライアント端末装置ｃｊは、決定されたサーバＳｉとの通信品質ポイントが６ポイント未満のクライアント端末装置ｃｊである。
【０１６３】
以上説明したように、画面共有システム１００では、各クライアント端末装置ｃｊによる画面共有用にサーバＳｉを分散して複数設ける。そして、制御装置１０１は、クライアント端末装置ｃｊとサーバＳｉの組み合わせごとの通信品質の評価値に基づいて、画面共有を実現するサーバを決定する。また、評価値は、遅延時間、帯域幅、やパケットロス率などである。これにより、各クライアント端末装置ｃｊからサーバＳｉまでの通信品質がよくなるように画面共有サーバが決定されるため、通信遅延のばらつきを抑制する。したがって、画面共有を利用した場合における利用者の操作性の向上を図ることができる。
【０１６４】
また、制御装置１０１は、サーバごとの評価値の分布の統計量が通信品質が最もよいことを示すサーバを、画面共有サーバに決定する。例えば、評価値の分布の統計量は評価値の平均値である。これにより、平均的な通信品質が最もよいサーバを画面共有サーバにできるため、クライアント端末ごとの通信遅延のばらつきをより抑制することができる。
【０１６５】
また、制御装置１０１は、取得した評価値に基づいて、サーバごとに通信品質が極端に悪くないクライアント端末装置を特定し、特定したクライアント端末装置の数が最多のサーバを画面共有サーバに決定する。これにより、通信品質が極端に悪くなるようなクライアント端末装置が少なくなるようなサーバを画面共有サーバにできるため、クライアント端末装置ごとの通信遅延のばらつきをより抑制することができる。
【０１６６】
また、制御装置１０１は、通信品質が極端に悪くないクライアント端末装置の数が最多のサーバが１台でない場合、最多のサーバから、取得した評価値の分布の統計量が、通信品質が最もよいことを示すサーバを画面共有サーバに決定する。これにより、通信品質が極端に悪くなるようなクライアント端末装置が少なく、かつ平均的な通信品質が最もよいサーバを画面共有サーバにできるため、クライアント端末ごとの通信遅延のばらつきをより抑制することができる。
【０１６７】
また、制御装置１０１は、クライアント端末装置のうち、すべてのサーバとの通信品質が悪いクライアント端末装置へ画面の共有ができないことを通知する。これにより、極端に通信品質が悪いクライアント端末装置を除外して画面共有を行うことができ、クライアント端末ごとの通信遅延のばらつきをより抑制することができる。
【０１６８】
また、制御装置１０１は、決定したサーバとの通信品質が悪いクライアント端末装置へ画面の共有ができないことを通知する。これにより、極端に通信品質が悪いクライアント端末装置を除外して画面共有を行うことができ、クライアント端末ごとの通信遅延のばらつきをより抑制することができる。
【０１６９】
また、制御装置１０１は、評価値が複数種類ある場合、第１評価値をスコア化した値と、第２評価値をスコア化した値と、によって通信品質の総合評価値を算出し、総合評価値を合計した合計値に基づいて画面共有サーバを決定する。これにより、総合的に通信品質がよいようなサーバを画面共有サーバにできるため、クライアント端末装置ごとの通信遅延のばらつきをより抑制することができる。
【０１７０】
また、制御装置１０１は、サーバごとに、総合評価値が悪くないクライアント端末装置を特定し、特定したクライアント端末装置の数が最も多いサーバを画面共有サーバに決定する。これにより、総合的な通信品質が極端に悪くなるようなクライアント端末装置が少なくなるサーバを画面共有サーバにできるため、クライアント端末装置ごとの通信遅延のばらつきをより抑制することができる。
【０１７１】
また、制御装置１０１は、総合評価値が悪くないクライアント端末装置の数が最も多いサーバが複数ある場合、最も多いサーバから、総合評価値を合計した合計値に基づいて画面共有サーバを決定する。これにより、通信品質が極端に悪くなるようなクライアント端末装置が少なく、かつ総合的に通信品質が最もよいサーバを画面共有サーバにできるため、クライアント端末ごとの通信遅延のばらつきをより抑制することができる。
【０１７２】
また、制御装置１０１は、すべてのサーバに対して総合評価値が悪いようなクライアント端末装置へ画面の共有ができないことを通知する。これにより、極端に通信品質が悪いクライアント端末装置を除外して画面共有を行うことができ、クライアント端末ごとの通信遅延のばらつきをより抑制することができる。
【０１７３】
また、制御装置１０１は、決定したサーバとの通信品質が悪いクライアント端末装置へ画面の共有ができないことを通知する。これにより、極端に通信品質が悪いクライアント端末装置を除外して画面共有を行うことができ、クライアント端末ごとの通信遅延のばらつきをより抑制することができる。
【０１７４】
なお、本実施の形態で説明した画面共有方法は、予め用意された画面共有プログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本画面共有プログラムは、磁気ディスク、光ディスク、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）フラッシュメモリなどのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また、画面共有プログラムは、インターネット等のネットワークを介して配布してもよい。
【０１７５】
上述した実施の形態に関し、さらに以下の付記を開示する。
【０１７６】
（付記１）所定領域に構築されるネットワーク内に分散して設けられる複数のサーバと、
前記複数のサーバのいずれかのサーバによって実行されるアプリケーションプログラムの実行結果に応じた画面の画像を表示する複数のクライアント端末装置と、
前記複数のサーバと、前記複数のクライアント端末装置と、を制御する制御装置と、
を有する画面共有システムであって、
前記制御装置が、
前記複数のクライアント端末装置の各々から、前記複数のクライアント端末装置の各々と前記複数のサーバの各々との複数の組み合わせの各々についての通信品質の評価値を取得し、
取得した前記評価値に基づいて、前記複数のサーバから、前記アプリケーションプログラムを実行させるサーバを決定し、
決定した前記サーバとの接続に用いる接続情報を、前記複数のクライアント端末装置へ送信し、決定した前記サーバに前記アプリケーションプログラムを実行させる実行指示を通知する、
処理を実行し、
前記複数のクライアント端末装置の各々は、
前記複数のサーバのうち、決定した前記サーバと自クライアント端末装置とを受信した前記接続情報に基づいて接続する、
処理を実行し、
前記複数のサーバの各々は、
前記実行指示を受信した場合、前記アプリケーションプログラムを実行する、
ことを特徴とする画面共有システム。
【０１７７】
（付記２）前記決定する処理では、
前記複数のサーバの各々について、前記複数の組み合わせのうち当該サーバを含む組み合わせについて取得した前記評価値の分布の統計量を算出し、
求めた前記統計量に基づいて、前記複数のサーバのうち、前記通信品質が最もよいことを示すサーバを、前記アプリケーションプログラムを実行させるサーバに決定する、
ことを特徴とする付記１に記載の画面共有システム。
【０１７８】
（付記３）前記制御装置が、
前記複数のサーバの各々について、前記複数の組み合わせのうちの当該サーバを含む組み合わせについて取得した前記評価値に基づいて、前記複数のクライアント端末装置のうち、前記通信品質が所定の通信品質よりもよいことを示すクライアント端末装置を特定する、
処理を実行し、
前記決定する処理では、
前記複数のサーバのうち、特定した前記クライアント端末装置の数が最多のサーバを、前記アプリケーションプログラムを実行させるサーバに決定する、
ことを特徴とする付記１に記載の画面共有システム。
【０１７９】
（付記４）前記制御装置が、
前記最多のサーバが複数ある場合、前記最多のサーバの各々について、前記複数の組み合わせのうち、前記最多のサーバと特定した前記クライアント端末装置との各組み合わせについて取得した前記評価値の分布の統計量を算出し、
前記決定する処理では、
求めた前記統計量に基づいて、前記最多のサーバのうち、前記通信品質が最もよいことを示すサーバを、前記アプリケーションプログラムを実行させるサーバに決定する、
ことを特徴とする付記３に記載の画面共有システム。
【０１８０】
（付記５）前記制御装置が、
前記複数の組み合わせのうちの決定した前記サーバを含む組み合わせについて取得した前記評価値に基づいて、前記複数のクライアント端末装置のうち、前記通信品質が所定の通信品質よりも悪いことを示すクライアント端末装置へ前記画面の共有ができないことを通知する、
ことを特徴とする付記１〜４のいずれか一つに記載の画面共有システム。
【０１８１】
（付記６）前記評価値の分布の統計量は、前記評価値の平均値であることを特徴とする付記２または４に記載の画面共有システム。
【０１８２】
（付記７）取得した前記評価値が、前記通信品質の第１評価値と前記通信品質の第２評価値との複数種類ある場合、
前記制御装置が、
前記複数の組み合わせの各々について、前記第１評価値を点数付けした値と、前記第２評価値を点数付けした値と、によって前記通信品質の総合評価値を算出し、
前記複数のサーバの各々について、算出した前記総合評価値を合計した合計値を算出する、
処理を実行し、
前記決定する処理では、
算出した前記合計値に基づいて、前記複数のサーバのうち、前記通信品質が最もよいことを示すサーバを、前記アプリケーションプログラムを実行させるサーバに決定する、
ことを特徴とする付記１に記載の画面共有システム。
【０１８３】
（付記８）取得した前記評価値が、前記通信品質の第１評価値と前記通信品質の第２評価値との複数種類ある場合、
前記制御装置が、
前記複数の組み合わせの各々について、前記第１評価値を点数付けした値と、前記第２評価値を点数付けした値と、によって前記通信品質の総合評価値を算出し、
前記複数のサーバの各々について、算出した前記総合評価値に基づいて、前記複数のクライアント端末装置のうち、前記通信品質が所定の通信品質よりもよいことを示すクライアント端末装置を特定する、
処理を実行し、
前記決定する処理では、
前記複数のサーバのうち、特定した前記クライアント端末装置の数が最多のサーバを、前記アプリケーションプログラムを実行させるサーバに決定する、
ことを特徴とする付記１に記載の画面共有システム。
【０１８４】
（付記９）前記制御装置が、
前記最多のサーバの数が複数ある場合、前記最多のサーバの各々について、前記複数の組み合わせのうち、前記最多のサーバと特定した前記クライアント端末装置との各組み合わせについて取得した前記総合評価値を合計した合計値を算出し、
算出した前記合計値に基づいて、前記最多のサーバのうち、前記通信品質が最もよいことを示すサーバを、前記アプリケーションプログラムを実行させるサーバに決定する、
ことを特徴とする付記８に記載の画面共有システム。
【０１８５】
（付記１０）前記制御装置が、
前記複数の組み合わせのうちの決定した前記サーバを含む組み合わせについて算出した前記総合評価値に基づいて、前記複数のクライアント端末装置のうち、前記通信品質が所定の通信品質よりも悪いことを示すクライアント端末装置へ前記画面の共有ができないことを通知する、
ことを特徴とする付記７〜９のいずれか一つに記載の画面共有システム。
【０１８６】
（付記１１）前記評価値は、前記複数の組み合わせの各々についての前記組み合わせのクライアント端末装置と前記組み合わせのサーバとの間の往復の通信に要する時間であることを特徴とする付記１〜１０のいずれか一つに記載の画面共有システム。
【０１８７】
（付記１２）前記評価値は、前記複数の組み合わせの各々についての前記組み合わせのクライアント端末装置と前記組み合わせのサーバとの間の通信の帯域幅であることを特徴とする付記１〜１０のいずれか一つに記載の画面共有システム。
【０１８８】
（付記１３）前記評価値は、前記複数の組み合わせの各々についての前記組み合わせのクライアント端末装置と前記組み合わせのサーバとの間の通信時のパケットロス率であることを特徴とする付記１〜１０のいずれか一つに記載の画面共有システム。
【０１８９】
（付記１４）所定領域に構築されるネットワーク内に分散して設けられる複数のサーバと、前記複数のサーバのいずれかのサーバによって実行されるアプリケーションプログラムの実行結果に応じた画面の画像を表示する複数のクライアント端末装置と、を制御する制御装置に、
前記複数のクライアント端末装置の各々から、前記複数のクライアント端末装置の各々と前記複数のサーバの各々との複数の組み合わせの各々についての通信品質の評価値を取得し、
取得した前記評価値に基づいて、前記複数のサーバから、前記アプリケーションプログラムを実行させるサーバを決定し、
決定した前記サーバとの接続に用いる接続情報を、前記複数のクライアント端末装置へ送信し、決定した前記サーバに前記アプリケーションプログラムを実行させる実行指示を通知する、
処理を実行させることを特徴とする画面共有プログラム。
【０１９０】
（付記１５）所定領域に構築されるネットワーク内に分散して設けられる複数のサーバと、前記複数のサーバのいずれかのサーバによって実行されるアプリケーションプログラムの実行結果に応じた画面の画像を表示する複数のクライアント端末装置と、を制御する制御装置が、
前記複数のクライアント端末装置の各々から、前記複数のクライアント端末装置の各々と前記複数のサーバの各々との複数の組み合わせの各々についての通信品質の評価値を取得し、
取得した前記評価値に基づいて、前記複数のサーバから、前記アプリケーションプログラムを実行させるサーバを決定し、
決定した前記サーバとの接続に用いる接続情報を、前記複数のクライアント端末装置へ送信し、決定した前記サーバに前記アプリケーションプログラムを実行させる実行指示を通知する、
処理を実行することを特徴とする画面共有方法。
【符号の説明】
【０１９１】
１００  画面共有システム
１０１  制御装置
１０２  ネットワーク
９０１  端末情報管理部
９０２  参加要求受信部
９０３  サーバ情報送信部
９０４  通信品質情報受信部
９０５  サーバ決定部
９０６  サーバ通知部
９１１  参加要求送信部
９１２  サーバ情報受信部
９１３，９２１  通信品質測定部
９１４  通信品質情報送信部
９１５  画像情報受信部
９１６  操作情報送信部
９２２  画像情報送信部
９２３  操作情報受信部
９２４  実行部
９２５  同期部
１１００  参加可能クライアントリスト
１２００  遅延時間テーブル
１３００  平均遅延時間テーブル
１５００  帯域幅テーブル
１６００  遅延時間ポイントテーブル
１７００  帯域幅ポイントテーブル
１８００  通信品質ポイントテーブル
１９００  合計ポイントテーブル
【図１】
0006586638.tif 000002
【図２】
0006586638.tif 000003
【図３】
0006586638.tif 000004
【図４】
0006586638.tif 000005
【図５】
0006586638.tif 000006
【図６】
0006586638.tif 000007
【図７】
0006586638.tif 000008
【図８】
0006586638.tif 000009
【図９】
0006586638.tif 000010
【図１０】
0006586638.tif 000011
【図１１】
0006586638.tif 000012
【図１２】
0006586638.tif 000013
【図１３】
0006586638.tif 000014
【図１４】
0006586638.tif 000015
【図１５】
0006586638.tif 000016
【図１６】
0006586638.tif 000017
【図１７】
0006586638.tif 000018
【図１８】
0006586638.tif 000019
【図１９】
0006586638.tif 000020
【図２０】
0006586638.tif 000021
【図２１】
0006586638.tif 000022