以下に添付図面を参照して、本発明にかかる画面共有システム、画面共有プログラム、および画面共有方法の実施の形態を詳細に説明する。
図1は、画面共有システムの一動作例を示す説明図である。本実施の形態における画面共有システム100は、複数のサーバのいずれかのサーバが実行するアプリケーションプログラムの実行に応じた画面を複数のクライアント端末装置によって共有するシステムである。
従来、複数のPCで同一のアプリケーションプログラムに関する画面を参照しながら遠隔地間の会議や設計レビューなどを行うための画面共有システムと呼ばれる技術がある。アプリケーションプログラムは以下省略してアプリケーションとも称する。
また、従来、クラウド環境の利用形態の一つであるDaaSでは、利用者が操作するクライアント端末装置から、クラウド環境にあるサーバのデスクトップ画面を利用する。クライアント端末装置は、サーバの画面の一部あるいは全部を表示し、サーバに対する入力操作を行うことができ、サーバは、入力操作に応じたアプリケーションの実行を行う。
画面共有システムの方式は、以下の2種に大別できる。まず、1種類目としては、例えば、一台のPCがアプリケーションを実行し、他のPCはアプリケーションの実行に応じた画面を表示する。画面共有の参加者によるアプリケーションの実行に対する操作は、アプリケーションが動作しているPCに転送し、操作によって変化した画面をアプリケーションが動作しているPCから他のすべてのPCに配信する。アプリケーションの実行に対する操作は、例えば、キーボード操作・マウス操作などの入力装置への操作である。
つぎに、2種類目としては、すべてのPCが同一のアプリケーションを実行する。画面共有の参加者によるアプリケーションの操作は、すべてのPCに配信され、各PC上で実行中のアプリケーションが同期して動作する。
ここで、DaaSを応用した画面共有システムでは、上記の1種類目の方式を用いる。詳細な例は、図2を用いて後述する。DaaSでは、単一のクライアント端末からサーバに対して接続されるが、画面共有システム100では複数のクライアント端末装置とサーバとの接続を許可する。これにより、複数の参加者によって単一のサーバを同時に参照および操作することが可能となる。
ここで、画面共有システムでは、画面情報および操作情報がLAN(Local Area Network)などのネットワークを介して送受信される。操作情報は、キーボードやマウスなどの入力装置を利用者が操作した情報であり、ネットワークを流れる操作情報のデータ量は極めて小さい。これに対して、画面情報はサーバの画面に表示される画像の画像情報であり、画面の大規模化や高詳細化に伴い、データ量は操作情報と比較して極めて大きい。
画面共有システム100では、サーバの画面の画像を含む画像情報を各クライアント端末装置が表示するために、サーバが、クライアント端末装置に画像情報を送信する。
従来技術では、複数のクライアント端末装置においてサーバを用いた画面共有時に、サーバと複数のクライアント端末装置との間の通信遅延にばらつきが生じるという問題点がある。例えば、サーバからネットワーク的に近いクライアント端末装置と、サーバからネットワーク的に遠いクライアント端末装置と、が存在する場合がある。この場合の具体例は図3を用いて後述する。このような場合、サーバから遠いクライアント端末装置までの通信の遅延によりクライアント端末装置における画面表示に遅れが生じる。このため、1台のサーバが同時に参照や操作するというコラボレーション作業の実施が困難となる。
そこで、本実施の形態では、各クライアント端末装置による画面共有用にサーバを分散して複数設けておき、クライアント端末装置とサーバの組み合わせごとの通信品質の評価値に基づいて、画面共有を行うサーバを決定する。これにより、通信遅延のばらつきを抑制することができる。したがって、利用者の操作性の向上を図り、コラボレーション作業の実施の容易化を図ることができる。
まず、画面共有システム100は、制御装置101と、複数のサーバと、複数のクライアント端末装置と、を有する。
複数のサーバは、所定領域arに構築されるネットワーク内に分散して設けられる。ネットワーク102は、例えば、単一のネットワーク102であっても、複数のネットワーク102であってもよい。図1の例では、ネットワーク102は102−1〜102−3のように複数のネットワーク102である。所定領域arは、例えば、国内、県内、複数の国内など特に限定しない。利用者が、様々な場所での利用を想定して、システムの開発者は、例えば、複数のサーバを分散して設ける。図1の例では、サーバはSAとSCである。サーバSA,SCなどの複数のサーバのうちの任意のサーバを「サーバSi」と表記する場合がある(i=A,B,・・・など)。
複数のクライアント端末装置は、それぞれ利用者によって操作される端末装置である。複数のクライアント端末装置は、複数のサーバSiのいずれかのサーバSiによって実行されるアプリケーションプログラムの実行結果に応じた画面を共有する。図1の例では、クライアント端末装置はca〜ccである。ここで、クライアント端末装置ca〜ccなどの複数のクライアント端末装置のうちの任意のクライアント端末装置を「クライアント端末装置cj」と表記する場合がある(j=a,b,c,・・・など)。
制御装置101は、複数のサーバSiと、複数のクライアント端末装置cjと、を制御し、複数のサーバSiのうちのアプリケーションプログラムを実行するサーバSiを決定する。また、アプリケーションプログラムは、OS(Operating System)のアプリケーション層で動作するものであってもよいし、ハイパーバイザ上で動作するVM(Virtual Machine)そのものであってもよい。アプリケーション層で動作するアプリケーションプログラムとしては、資料作成やメールなどの業務に関するアプリケーション、CAD(Computer Aided Design)などのような画像を扱うアプリケーション、動画を扱うアプリケーションなどが挙げられ、特に限定しない。
まず、制御装置101は、複数のクライアント端末装置cjの各々から、複数のクライアント端末装置cjの各々と複数のサーバSiの各々との複数の組み合わせの各々についての通信品質の評価値を取得する。通信品質の評価値は、サーバSiとクライアント端末装置cjとの間の通信に要する往復の通信時間、帯域幅やパケットロス率などであってもよい。往復の通信時間は遅延時間とも称する。遅延時間は長いほど、通信品質が悪いことを示す。帯域幅は、データの転送速度の指標値である。帯域幅が大きいほど、通信品質がよいことを示す。パケットロス率は、パケットが消失してしまう頻度である。このため、パケットロス率が高いほど、通信品質が悪いことを示す。
具体的に、制御装置101は、例えば、複数のクライアント端末装置cjの各々に対して通信品質の評価値の測定指示を通知する。そして、複数のクライアント端末装置cjの各々は、例えば、測定指示の通知を受け付けると、複数のサーバSiの各々との通信品質の評価値を測定する。そして、複数のクライアント端末装置cjは、複数のサーバSiの各々との間の測定した通信品質の評価値を制御装置101へ送信する。つぎに、制御装置101は、複数のクライアント端末装置cjから通信品質の評価値を受信することにより、複数の組み合わせの各々についての通信品質の評価値を取得する。図1の例では、制御装置101は、遅延時間を評価値として取得する。
そして、制御装置101は、取得した評価値に基づいて、複数のサーバSiから、アプリケーションプログラムを実行させるサーバSiを決定する。具体的に、図1の例では、制御装置101は、評価値の分布の統計量に基づいて、複数のサーバSiから、アプリケーションプログラムを実行させるサーバSiを決定する。統計量としては、平均値や中央値などが挙げられるが、図1では平均値を例に挙げる。
ここで、遅延時間は、値が大きいほど、ネットワーク102的に遠いことを示す。このため、制御装置101は、サーバSAとサーバSBとのうち、統計量が小さいサーバSAを、アプリケーションプログラムを実行させるサーバSiに決定する。
また、評価値として帯域幅が取得された場合、値が小さいほど、ネットワーク102的に遠いことを示す。帯域幅の場合、サーバSAの統計量がサーバSBの統計量よりも大きくなる。このため、制御装置101は、サーバSAとサーバSBとのうち、統計量が大きいサーバSAを、アプリケーションプログラムを実行させるサーバSiに決定する。
つぎに、制御装置101は、決定したサーバSiとの接続に用いる接続情報を、複数のクライアント端末装置cjへ送信する。また、制御装置101は、決定したサーバSiにアプリケーションプログラムを実行させる実行指示を通知する。実行指示を通知するとは、例えば、実行指示を示す信号を送信することである。
これにより、クライアント端末ごとの通信遅延のばらつきを抑制することができる。したがって、利用者の操作性の向上を図ることができる。
図2は、画面共有例を示す説明図である。ここで、画面共有について簡単に説明する。サーバがアプリケーションプログラムやデータを実行および保管し、クライアント端末装置は、リモートデスクトップとしてサーバから転送された画面の画像を表示する。
複数のクライアント端末装置は、例えば、オーナークライアント端末装置と、複数のゲストクライアント端末装置と、がある。オーナークライアント端末装置は、例えば、ゲストクライアント端末装置に、サーバが実行するプログラムに関する操作権を渡すことができる。ゲストクライアント端末装置は、オーナークライアント端末装置から操作権を受け取ることによってプログラムの実行に関する操作を行うことができる。このようにして、複数の利用者によって同一画面を用いたコラボレーション作業などを行うことができる。ここで挙げた操作権に関する複数のクライアント端末装置間のやり取りは、一例であり、特に限定しない。
また、複数のクライアント端末装置は、操作情報をサーバへ送信し、サーバは、クライアント端末装置から送信された操作情報に応じてアプリケーションプログラムを実行する。
図2の例では、アプリケーションプログラムがCADであり、サーバと複数のクライアント端末装置とでは、同じCADの画面を表示する。
図3は、サーバが単一の例を示す説明図である。例えば、サーバが1台だけである場合やデータセンタなどサーバが複数あっても、複数のサーバが同じ位置にある場合がある。同じ位置とは、ほぼ同じ位置を含む。ここで、サーバが単一とは、例えば、同じ位置にしかない場合である。
サーバが固定の位置であると、クライアント端末装置によっては、通信による遅延が大きくなり、画像が表示されるのに時間がかかる場合がある。図3の例では、クライアント端末装置は、サーバと物理的に離れた距離にあるため、クライアント端末装置はサーバとの通信に時間がかかるため、画像の表示が遅くなる。また、通信による遅延は、図3ではサーバとの物理的な距離を挙げたが、これに限らず、通信の混雑度合いや各クライアント端末装置のネットワークへの接続方法によっても変化する。
図4は、サーバが複数の例を示す説明図である。例えば、サーバが、分散して複数ある場合がある。このような場合、例えば、サーバごとにサーバとクライアント端末装置との距離が異なるため、サーバごとにクライアント端末装置の通信速度が異なる。
図5は、通信速度が異なる例を示す説明図である。テーブルには、サーバごとに、クライアント端末装置との間の通信品質の評価値を表す。図5には、通信品質の評価値としては、例えば、上述したように遅延時間を挙げる。
図5に示すように、例えば、クライアント端末装置caは、サーバSAに近い。クライアント端末装置caは、サーバSAよりもサーバSBから少し遠い。そして、クライアント端末装置caは、サーバSA〜SCの中でサーバSCから最も遠い。
図6は、本実施の形態における画面共有システム例を示す説明図である。本実施の形態では、画面共有システム100は、例えば、複数のサーバと、クライアント端末装置と、制御装置101と、を有する。
サーバは、SA〜SCまである。複数のサーバSiは、所定領域である日本国内に構築されるネットワークに分散して設けられる。ネットワーク102は、ネットワーク102−1〜102−3がある。クライアント端末装置は、ca〜ccまである。クライアント端末装置の一例としては、PCなどの固定端末装置の他、携帯電話機、PHS(Personal Handy Phone)やPDA(Personal Digital Assistant)などの移動体端末装置などが挙げられる。
複数のサーバSiと、複数のクライアント端末装置と、制御装置101とは、ネットワーク102−x(x=1〜3)を介して接続される。ネットワーク102−xには、有線または無線を問わず、インターネット、LAN、WAN(Wide Area Network)、VPN(Virtual Private Network)などの任意の種類の通信網を採用可能である。クライアント端末装置cjは、サーバSiのいずれかによってアプリケーションプログラムを実行する。
また、図示省略するが、制御装置101は、サーバSiのいずれかであってもよい。また、図示省略するが、サーバSiと、クライアント端末装置cjとが同一のコンピュータであってもよい。
(クライアント端末装置のハードウェア構成例)
図7は、クライアント端末装置のハードウェア構成例を示すブロック図である。クライアント端末装置cjは、CPU(Central Processing Unit)701と、ROM(Read Only Memory)702と、RAM(Random Access Memory)703と、ディスクドライブ704と、ディスク705と、を有する。クライアント端末装置cjは、I/F(Inter/Face)706と、キーボード707と、マウス708と、ディスプレイ709と、を有する。また、CPU701と、ROM702と、RAM703と、ディスクドライブ704と、I/F706と、キーボード707と、マウス708と、ディスプレイ709とは、バス700によってそれぞれ接続される。
ここで、CPU701は、クライアント端末装置cjの全体の制御を司る。ROM702は、ブートプログラムなどのプログラムを記憶する。RAM703は、CPU701のワークエリアとして使用される。ディスクドライブ704は、CPU701の制御にしたがってディスク705に対するデータのリード/ライトを制御する。ディスク705は、ディスクドライブ704の制御で書き込まれたデータを記憶する。ディスク705としては、磁気ディスク、光ディスクなどが挙げられる。
I/F706は、通信回線を通じてLAN、WAN、インターネットなどのネットワーク102に接続され、このネットワーク102を介して他の装置に接続される。そして、I/F706は、ネットワーク102と内部のインターフェースを司り、外部装置からのデータの入出力を制御する。I/F706には、例えばモデムやLANアダプタなどを採用することができる。
キーボード707やマウス708は、利用者の操作により、各種データの入力を行うインターフェースである。ディスプレイ709は、CPU701の指示により、データを出力するインターフェースである。
また、図示を省略するが、クライアント端末装置cjには、カメラから画像や動画を取り込む入力装置やマイクから音声を取り込む入力装置が設けられていてもよい。また、図示を省略するが、クライアント端末装置cjには、プリンタなどの出力装置が設けられていてもよい。
(サーバSiのハードウェア構成例)
また、サーバSi、制御装置101のハードウェア構成例について説明する。ここでは、サーバSi、制御装置101を「サーバ等」と表記する。
図8は、サーバのハードウェア構成例を示すブロック図である。サーバ等800は、CPU801と、ROM802と、RAM803と、ディスクドライブ804と、ディスク805と、I/F806と、を有する。
CPU801と、ROM802と、RAM803と、ディスクドライブ804と、I/F806とは、バス807によってそれぞれ接続される。
ここで、CPU801は、サーバ等800の全体の制御を司る。ROM802は、各種プログラムを記憶する。ROM802に記憶されるプログラムは、CPU801にロードされることにより、コーディングされている処理をCPU801に実行させる。RAM803はCPU801のワークエリアとして使用される。
I/F806は、通信回線を通じてネットワーク102に接続され、ネットワーク102を介して他の装置に接続される。そして、I/F806は、ネットワーク102と内部のインターフェースを司り、他のコンピュータからのデータの入出力を制御する。I/F806には、例えば、モデムやLANアダプタなどを採用することができる。
ディスクドライブ804は、CPU801の制御にしたがってディスク805に対するデータのリード/ライトを制御する。ディスク805は、ディスクドライブ804の制御で書き込まれたデータを記憶する。ディスク805としては、例えば、磁気ディスク、光ディスクなどが挙げられる。
また、サーバ等800は、上述した構成部の他、例えば、SSD(Solid State Drive)、キーボード、マウス、ディスプレイなどを有することにしてもよい。
(画面共有システム100の機能的構成例)
図9は、画面共有システムの機能的構成例を示すブロック図である。制御装置101は、端末情報管理部901と、参加要求受信部902と、サーバ情報送信部903と、通信品質情報受信部904と、サーバ決定部905と、サーバ通知部906と、を有する。参加要求受信部902からサーバ通知部906までの制御部の処理は、例えば、図8に示すCPU801がアクセス可能なROM802、RAM803、ディスク805などの記憶装置に記憶されたプログラムにコーディングされている。そして、CPU801が記憶装置から該プログラムを読み出して、プログラムにコーディングされている処理を実行する。これにより、制御部の処理が実現される。また、制御部の処理結果は、例えば、ROM802、RAM803、ディスク805などの記憶装置に記憶される。
まず、制御装置101の端末情報管理部901は、例えば、画面共有システム100に参加するサーバSiの情報を管理する。サーバSiの情報は、クライアント端末装置cjが画面共有のためにサーバSiへの接続に用いる接続情報である。また、サーバSiの情報は、例えば、サーバSiとクライアント端末装置cjとの間の通信品質を測定するために用いる情報である。具体的に、サーバSiの情報は、例えば、サーバSiごとのIPアドレスである。
端末情報管理部901は、画面共有に参加しているクライアント端末装置cjの情報を管理する。クライアント端末装置cjの情報は、例えば、クライアント端末装置cjごとのIPアドレスである。また、端末情報管理部901は、対象アプリケーションを実行するサーバを決定する際に使用する各種情報を記憶する。端末情報管理部901は、例えば、ROM802、RAM803、ディスク805などの記憶装置によって実現される。ここで、実際に対象アプリケーションを実行してクライアント端末装置cjに画面共有を行わせるサーバSiを画面共有サーバとも称する。
参加要求受信部902は、例えば、クライアント端末装置cjからの画面共有への参加要求を表す参加要求信号を受信する機能を有する。サーバ情報送信部903は、例えば、画面共有に参加しているクライアント端末装置cjや参加要求のあったクライアント端末装置cjに対して、端末情報管理部901によって管理されているサーバSiの情報を送信する機能を有する。サーバSiの情報を送信することにより、クライアント端末装置cjに対して各サーバSiとの通信品質を測定させる。また、画面共有に参加しているクライアント端末装置cjや参加要求のあったクライアント端末装置cjは、上述したように端末情報管理部901によって各クライアント端末装置cjの情報が管理されている。
通信品質情報受信部904は、クライアント端末装置cjからのクライアント端末装置cjとサーバSiとの間の通信品質情報を受信する。通信品質情報は、例えば、通信品質に関する情報である。
上述したように、通信品質の評価値は、例えば、サーバSiとクライアント端末装置cjとの間の通信に要する往復の通信時間、帯域幅、パケットロス率などが挙げられる。往復の通信時間を遅延時間とも称する。ここで、遅延時間やパケットロス率については、クライアント端末装置cjからサーバSiへ送信されるIPパケットと、当該IPポケットを受信したサーバSiからクライアント端末装置cjへの返答に基づいて測定可能である。例えば、IPパケットは、例えば、pingコマンドによって生成される。帯域幅は、クライアント端末装置cjからサーバSiへの一定時間あたりに通信できるデータ量であってもよいし、サーバSiからクライアント端末装置cjへの一定時間あたりに通信できるデータ量であってもよい。帯域幅は、例えば、wgetコマンドなどを用いて測定してもよい。
サーバ決定部905は、通信品質情報に基づいて、実際に対象アプリケーションを実行するサーバSiを決定する。サーバ決定部905による決定方法は、後述する実施例1と実施例2とを用いて詳細に説明する。
そして、サーバ通知部906は、決定した画面共有サーバを、各サーバSiおよびクライアント端末装置cjへ通知する。具体的に、サーバ通知部906は、端末情報管理部901によって管理されているクライアント端末装置cjの情報およびサーバSiの情報に基づいて、決定結果を、クライアント端末装置cjへ通知する。
より具体的に、サーバ通知部906は、決定した画面共有サーバが直前の画面共有サーバと同じ場合に、決定したサーバSiの接続情報を、クライアント端末装置cjへ通知する。サーバ通知部906は、決定した画面共有サーバが直前の画面共有サーバと異なる場合に、決定したサーバSiの接続情報を、クライアント端末装置cjおよびすべてのサーバSiへ通知する。
つぎに、サーバSiは、通信品質測定部921と、画像情報送信部922と、操作情報受信部923と、実行部924と、同期部925と、を有する。通信品質測定部921から同期部925までの制御部の処理は、例えば、図8に示すCPU801がアクセス可能なROM802、RAM803、ディスク805などの記憶装置に記憶されたプログラムにコーディングされている。そして、CPU801が記憶装置から該プログラムを読み出して、プログラムにコーディングされている処理を実行する。これにより、制御部の処理が実現される。また、制御部の処理結果は、例えば、ROM802、RAM803、ディスク805などの記憶装置に記憶される。
通信品質測定部921は、クライアント端末の通信品質測定部921と協調して動作し、サーバSi端末とクライアント端末間の通信品質情報を取得する。通信品質情報は、通信品質の評価値を含む情報である。通信品質の評価値は、通信に要する往復の遅延時間や帯域幅などの通信速度の評価値、パケットロス率などが挙げられる。ここでは、上述したように、本実施の形態では、通信に要する往復の時間を通信品質の評価値として利用する。具体的に、例えば、通信品質測定部921は、クライアント端末装置cjから送信されたIPパケットに応じて返答を行う。ここでのIPパケットとは、例えば、pingコマンドによって発行されるIPパケットである。
画像情報送信部922は、対象アプリケーションの実行に応じた画面の画像を含む画像情報を、クライアント端末装置cjへ送信する。ここで、サーバSiは、例えば、通信品質測定部921において通信品質を測定した際のクライアント端末装置cjの情報を記憶装置に記憶しておき、画像情報送信部922は、クライアント端末装置cjの情報に基づいて、画像情報の宛先を決定する。
操作情報受信部923は、クライアント端末からの操作情報を受信し、受信した操作情報を実行部へ受け渡す。操作情報は、キーボード707やマウス708などの入力装置に対する利用者の操作に応じた操作情報である。
実行部924は、対象アプリケーションを実行する。対象アプリケーションは、画面共有の対象となるアプリケーションプログラムである。対象アプリケーションは、OSのアプリケーション層で動作するものであってもよいし、ハイパーバイザ上で動作するVMそのものであってもよい。対象アプリケーションは、画面共有サーバの移行があった場合に移行先のサーバSiでも実行できなければならない。このため、対象アプリケーションは、画面共有サーバの候補となるすべてのサーバSiに予め設けられる。
また、実行部924は、操作情報受信部923によって受信された操作情報に応じて対象アプリケーションを実行する。
同期部925は、現在の画面共有サーバである移行元のサーバSiの対象アプリケーションの状態を、移行先のサーバSiへ移行する。対象アプリケーション状態とは、具体的に、同期部925は、例えば、アプリケーション状態転送技術(例えば、特表2014−529784号公報参照。)を用いて対象アプリケーションの状態を移行する。また、対象アプリケーションがVMそのものの場合、同期部925は、VMのライブマイグレーション技術を用いて対象アプリケーションの状態を移行する。
最後に、クライアント端末装置cjは、参加要求送信部911と、サーバ情報受信部912と、通信品質測定部913と、通信品質情報送信部914と、画像情報受信部915と、操作情報送信部916と、を有する。参加要求送信部911から操作情報送信部916までの制御部の処理は、例えば、図7に示すCPU701がアクセス可能なROM702、RAM703、ディスク705などの記憶装置に記憶されたプログラムにコーディングされている。そして、CPU701が記憶装置から該プログラムを読み出して、プログラムにコーディングされている処理を実行する。これにより、制御部の処理が実現される。また、制御部の処理結果は、例えば、ROM702、RAM703、ディスク705などの記憶装置に記憶される。
参加要求送信部911は、例えば、新たに画面共有に参加したいクライアントが制御装置101に対して参加要求を表す参加要求信号を送信する。参加要求送信部911は、例えば、I/F706を用いて参加要求信号を送信する。ここで、参加要求信号には、いずれの画面共有に対する参加要求であるかを示す情報と、クライアント端末装置ccの識別情報と、が含まれる。
サーバ情報受信部912は、制御装置101のサーバ情報送信部903からのサーバSiの情報を受信する。ここで、クライアント端末装置cjは、サーバSiの情報を受信することにより、通信品質を測定する指示を受け付けたと判断する。また、サーバ情報受信部912は、制御装置101のサーバ通知部906から、決定された画面共有サーバの情報を受信する。サーバ情報受信部912は、例えば、I/F706を用いて各種情報を受信する。
つぎに、通信品質測定部913は、受信したサーバSiの情報が表すサーバSiと自クライアント端末装置cjとの間の通信品質の評価値を測定する。ここでは、遅延時間を通信品質の評価値として利用する。具体的に、例えば、通信品質測定部913は、サーバSiの通信品質測定部921と協調して動作し、サーバSiごとにサーバSiと自クライアント端末装置cjとの間の通信品質を表す通信品質情報を得る。通信品質測定部913は、受信したサーバSiの情報が表すサーバSiの各々に対して、IPパケットを送信し、IPパケットに対する返答を受信する。ここでのIPパケットとは、例えば、pingコマンドによって発行されるIPパケットである。
つぎに、通信品質情報送信部914は、通信品質情報を制御装置101へ送信する。通信品質情報送信部914は、例えば、I/F706を用いて通信品質情報を送信する。
また、画像情報受信部915は、画面共有サーバからの画面情報を受信する。具体的に、画像情報受信部915は、I/F706を用いて画面情報を受信する。そして、クライアント端末装置cjは、受信した画面情報に含まれる画像を表示する。
また、操作情報送信部916は、対象アプリケーションの画面に対して行った操作に応じた操作情報を取得して、画面共有サーバへ送信する。利用者は、例えば、キーボード707やマウス708などの入力装置に対して操作を行う。
以上、各機能についての簡単な説明を終了する。つぎに、各部の全体の動作の流れについて図10を用いて説明する。
図10は、新たにクライアント端末装置から画面共有の参加要求があった場合の処理手順を示すシーケンス図である。例えば、クライアント端末装置caとクライアント端末装置cbとによってサーバSAにアプリケーションプログラムを実行させることにより画面共有を行っている。
そのため、サーバSAの画像情報送信部922は、実行部924によるアプリケーションプログラムの実行に応じた画面の画像を含む画像情報を送信する(ステップS1001)。
そして、クライアント端末装置ca,cbの画像情報受信部915は、例えば、サーバSAからの画像情報を受信する。ここで、そして、クライアント端末装置ca,cbは、受信した画像情報に含まれる画像をディスプレイ709などに表示する。
また、図示省略するが、クライアント端末装置caまたはクライアント端末装置cbの操作情報送信部916は、キーボード707やマウス708などの入力装置によって受け付けた利用者の操作に応じた操作情報を、画面共有サーバであるサーバSAへ送信する。
そして、サーバSAの操作情報受信部923は、例えば、クライアント端末装置caまたはクライアント端末装置cbからの操作情報を受信する。
そして、サーバSAの実行部924は、操作情報に応じてアプリケーションプログラムを実行する。そして、上述したように、サーバSAの画像情報送信部922は、実行部924によるアプリケーションプログラムの実行に応じた画面の画像を含む画像情報を送信する。このように、画面共有が行われている間、操作情報と画像情報がやり取りされる。
ここで、クライアント端末装置ccが新たに画面共有に参加する。クライアント端末装置ccの参加要求送信部911は、例えば、制御装置101へ参加要求を送信する(ステップS1002)。ここで、参加要求を送信するとは、参加要求を表す参加要求信号を送信することである。参加要求信号には、いずれの画面共有に対する参加要求であるかを示す情報と、クライアント端末装置ccの識別情報と、が含まれる。
そして、制御装置101の参加要求受信部902は、例えば、クライアント端末装置ccからの参加要求を表す参加要求信号を受信する。サーバ決定部905による画面共有サーバの決定方法については、実施例1と実施例2とを用いて詳細に説明する。
制御装置101のサーバ情報送信部903は、例えば、各サーバSiの情報を、参加要求のあったクライアント端末装置ccと画面共有に参加しているクライアント端末装置ca,cbとに送信する(ステップS1003,S1004)。各サーバSiの情報は、端末情報管理部901によって管理される。これにより、通信品質測定要求が行われる。
クライアント端末装置ca,cb,ccのサーバ情報受信部912は、例えば、制御装置101からのサーバSiの情報を受信することにより通信品質測定要求を受け付ける。クライアント端末装置ca,cb,ccの通信品質測定部913は、サーバSiの情報に基づいて、サーバSiの通信品質測定部921の通信品質を測定する。
クライアント端末装置ca,cb,ccの通信品質情報送信部914は、通信品質測定結果である通信品質情報を制御装置101へ送信する(ステップS1005)。
制御装置101の通信品質情報受信部904は、通信品質測定結果である通信品質情報を各クライアント端末装置cjから受信する。そして、サーバ決定部905は、通信品質情報に基づいて、画面共有サーバを決定する。図10の例では、画面共有サーバをサーバSBとする。
そして、サーバ通知部906は、例えば、画面共有サーバの情報をクライアント端末装置ca,cb,ccへ送信する(ステップS1006)。また、サーバ通知部906は、画面共有サーバとして決定されたサーバSiが前回画面共有サーバとして決定されたサーバSiと異なる場合、画面共有サーバの情報をサーバSA,SB,SCへ送信する(ステップS1007)。また、サーバ通知部906は、画面共有サーバとして選択されたサーバSiが前回画面共有サーバとして決定されたサーバSiと同じ場合、画面共有サーバの情報をクライアント端末装置cjにだけ送信する。
そして、クライアント端末装置ca,cb,ccのサーバ情報受信部912は、例えば、新たに共有画面サーバの情報を受信する。ここでの共有画面サーバの情報は、サーバSiのIDである。
また、サーバSAの同期部925は、画面共有サーバの情報を受信すると、移行前の画面共有サーバであるため、画面共有サーバとしての機能を終了し、新たな画面共有サーバであるサーバSAとアプリケーションを同期させる。そして、サーバSAの実行部924は、アプリケーションの同期が終了した場合、対象アプリケーションを終了する。
また、サーバSBの実行部924は、画面共有サーバの情報を受信すると、新たな画面共有サーバであるため、対象アプリケーションを起動する。そして、サーバSBの同期部925は、画面共有サーバの情報を受信すると、新たな画面共有サーバであるため、起動した対象アプリケーションをサーバSAと同期させる。サーバSBの同期部925は、同期が終了すると、画面共有サーバの機能を起動する。
クライアント端末装置ca,cb,ccは、受信した画面共有サーバの情報に基づいて、画面共有サーバとなったサーバSBへ接続する(ステップS1008)。そして、サーバSBの画像情報送信部922は、例えば、対象アプリケーションの実行に応じた画面の画像を含む画像情報をクライアント端末装置ca,cb,ccへ送信する(ステップS1009)。そして、クライアント端末装置ca,cb,ccの画像情報受信部915は、サーバSBの画像情報送信部922からの画像情報を受信する。このようにして、画面共有が開始される。
これにより、各クライアント端末装置cjの利用者は画面共有サーバが切り替わったことを意識することなく画面共有での作業を継続することができる。
つぎに、サーバ決定部905による詳細な例を実施例1と実施例2とを用いて説明する。
(実施例1)
実施例1では、サーバSiとクライアント端末装置cjと複数の組み合わせについての遅延時間の統計量に基づいて画面共有サーバを決定する。ここでは、遅延時間を例に挙げるが、上述したように帯域幅やパケットロス率などであってもよい。
まず、サーバ決定部905は、複数のサーバSiの各々について、複数の組み合わせのうちサーバを含む組み合わせについて取得した評価値の分布の統計量を算出する。評価値の分布の統計量は、例えば、評価値の平均値や中央値である。サーバ決定部905は、複数のサーバSiのうち、求めた統計量が、通信品質が最もよいことを示すサーバを、アプリケーションプログラムを実行させるサーバに決定する。評価値が遅延時間の場合、求めた統計量が最小のサーバが、通信品質が最もよいことを示すサーバである。評価値が帯域の場合、評価値が帯域の場合、求めた統計量が最大のサーバが、通信品質が最もよいことを示すサーバである。評価値がパケットロス率の場合、求めた統計量が最小のサーバが、通信品質が最もよいことを示すサーバである。
より具体的に、サーバ決定部905は、例えば、画面共有に参加可能なクライアント端末装置cjをリスト化した参加可能クライアントリストを生成する。
図11は、参加可能クライアントリスト例を示す説明図である。参加可能クライアントリスト1100は、参加可能なすべてのクライアント端末装置cjの情報が登録される。参加可能クライアントリスト1100は、例えば、番号と、クライアント端末装置cjのIDと、のフィールドを有する。番号のフィールドには、例えば、登録された順に付された番号が設定される。クライアント端末装置cjのIDのフィールドには、例えば、クライアント端末装置cjを識別する識別情報が設定される。参加可能クライアントリスト1100は、例えば、ROM802、RAM803、ディスク805などの記憶装置に記憶される。
つぎに、サーバ決定部905は、例えば、通信品質情報受信部904によって受信された測定結果を遅延時間テーブルへ格納する。
図12は、遅延時間テーブル例を示す説明図である。遅延時間テーブル1200は、例えば、クライアント端末装置cjと、サーバSiと、の各組み合わせについて測定した遅延時間が格納される。遅延時間テーブル1200は、例えば、ROM802、RAM803、ディスク805などの記憶装置に記憶される。例えば、サーバSAとクライアント端末装置caとの間の遅延時間はLAaである。
サーバ決定部905は、複数のクライアント端末装置cjのうち、複数の組み合わせのうちの複数のサーバSiのすべての組み合わせについて取得した評価値が、通信品質が所定の通信品質よりも悪いことを示すクライアント端末装置へ前記画面の共有ができないことを通知する。所定の通信品質よりも悪いか否かは、閾値を設けることにより判定可能である。例えば、評価値が遅延時間の場合、閾値は、所定の時間である。評価値が遅延時間の場合、評価値が閾値以上であれば、所定の通信品質よりも悪く、評価値が閾値未満であれば、所定の通信品質よりもよいことを示す。また、例えば、評価値が帯域の場合、閾値は、所定の帯域である。評価値が帯域の場合、評価値が閾値未満であれば、所定の通信品質よりも悪く、評価値が閾値以上であれば、所定の通信品質よりもよいことを示す。
より具体的に、例えば、サーバ決定部905は、クライアント端末装置ca〜cbのうち、遅延時間テーブル1200に設定されたすべてのサーバSiとの遅延時間が閾値以上のクライアント端末装置cjがあるか否かを判断する。ここでは、参加可能クライアントリスト1100に登録されたクライアント端末装置ca〜cbの中から判断が行われる。サーバ決定部905は、例えば、閾値以上のクライアント端末装置cjがあると判断した場合、クライアント端末装置cjの情報を、参加可能クライアントリスト1100から削除する。ここでの閾値は、例えば、利用者や画面共有システム100の開発者などが設定可能とする。閾値は、例えば、クライアント端末装置cjに求める通信品質に応じて設定される。また、閾値は、例えば、アプリケーションプログラムの種類に応じて設定されてもよい。ここでは、閾値は、例えば、200[ms]とする。
このように、どのサーバSiと接続しても遅くなるようなクライアント端末装置cjについては画面共有から削除してもらうことにより、他の利用者の操作感の向上を図ることができる。また、サーバ決定部905は、閾値以上のクライアント端末装置cjを参加可能とするか否かの指示を受け付ける旨を各クライアント端末装置cjに表示させてもよい。そして、サーバ決定部905は、利用者の操作による参加可能という指示を、クライアント端末装置cjを介して受け付けた場合に、閾値以上のクライアント端末装置cjを参加可能クライアントリスト1100から削除しないようにしてもよい。これにより、他の利用者が、いずれかのクライアント端末装置cjによって操作感が低下しても参加可能と判断した場合にだけ参加可能となる。
また、すべてのクライアント端末装置ca〜ccが、各サーバSiとの間の遅延時間が閾値以上であると、参加可能クライアントリスト1100が空になってしまう場合がある。参加可能クライアントリスト1100が空になってしまった場合、サーバ決定部905は、ネットワーク102品質の不足により画面共有できない旨をクライアント端末装置cjに表示させ、画面共有を終了する。これにより、ネットワーク102の品質が一定以上ある場合にだけ画面共有をさせることができ、利用者の操作感の低下を抑止することができる。
また、参加可能クライアントリスト1100が空でない場合がある。このような場合、サーバ決定部905は、例えば、遅延時間テーブル1200に基づいて、サーバSA〜SCごとに、参加可能クライアントリスト1100に登録されたクライアント端末装置cjについての遅延時間の分布の統計量を算出する。遅延時間の分布の統計量としては、例えば、平均値、中央値、最頻値などが挙げられる。ここでは、平均値を例に挙げて説明する。
具体的に、サーバ決定部905は、例えば、遅延時間テーブル1200に基づいて、サーバSA〜SCごとに、参加可能クライアントリスト1100に登録されたクライアント端末装置cjについての遅延時間の平均値を算出する。平均値の算出結果は、例えば、平均遅延時間テーブルに格納される。
図13は、平均遅延時間テーブル例を示す説明図である。平均遅延時間テーブル1300は、サーバSiごとに、算出された遅延時間の平均値を格納する。例えば、サーバSAの平均遅延時間は、時間Mean_LAである。サーバSBの平均遅延時間は、時間Mean_LBである。サーバSCの平均遅延時間は、時間Mean_LCである。
そして、サーバ決定部905は、平均遅延時間テーブル1300に基づいて、平均遅延時間が最も小さいサーバSiを、画面共有サーバに決定する。また、平均遅延時間が最も小さいサーバSiが、複数ある場合、サーバ決定部905は、例えば、最も小さいサーバSiからランダムに画面共有サーバを決定する。
また、サーバ決定部905は、参加可能クライアントリスト1100に情報が登録されているクライアント端末装置cjのうち、決定した画面共有サーバとの遅延時間が閾値以上のクライアント端末装置cjがあるか否かを判断する。サーバ決定部905は、閾値以上のクライアント端末装置cjがあると判断した場合、閾値以上のクライアント端末装置cjを画面共有から削除する決定をしてもよい。そして、制御装置101は、閾値以上のクライアント端末装置cjへ画面共有ができないことを通知する。これにより、決定された画面共有サーバとの通信品質が極端に悪いクライアント端末装置cjを除外することにより、全体のクライアント端末装置cjの通信品質を改善させることができる。
また、通信品質が極端に悪いようなクライアント端末装置cjを除外してから共有画面サーバを決定してもよい。そこで、サーバ決定部905は、複数のサーバSiの各々について、複数のクライアント端末装置cjのうち、複数の組み合わせのうちのサーバを含む組み合わせについて取得した評価値が、通信品質が所定の通信品質よりもよいことを示すクライアント端末装置を特定する。そして、サーバ決定部905は、複数のサーバSiのうち、特定したクライアント端末装置cjの数が、最多のサーバを、画面共有サーバに決定する。
より具体的に、例えば、サーバ決定部905は、複数のサーバSiの各々について、クライアント端末装置cjのうち、サーバSiとの遅延時間が閾値以上でないクライアント端末装置cjを共有可能クライアント端末装置cjとして特定する。ここでは、参加可能クライアントリスト1100に登録されたクライアント端末装置cjから特定される。つぎに、サーバ決定部905は、例えば、複数のサーバSiのうち、共有可能クライアント端末装置cjの数が最多のサーバSiを共有画面サーバとして決定してもよい。
また、サーバ決定部905は、最多のサーバの数が複数ある場合、最多のサーバの各々について、複数の組み合わせのうち、最多のサーバと特定したクライアント端末装置との各組み合わせについて取得した評価値の分布の統計量を算出する。統計量や統計量の算出方法については上述した例と同じである。そして、サーバ決定部905は、最多のサーバのうち、求めた統計量が、通信品質が最もよいことを示すサーバを、アプリケーションプログラムを実行させるサーバに決定する。通信品質が最もよいことを示すことの詳細例は、上述した例と同じである。
より具体的に、例えば、共有可能クライアント端末装置cjの数が最多のサーバSiが複数ある場合がある。このような場合、サーバ決定部905は、例えば、遅延時間テーブル1200に基づいて、サーバSA〜SCごとに、特定した共有可能クライアントについての遅延時間の平均値を算出する。平均値の算出結果は、例えば、上述したように平均遅延時間テーブル1300に格納される。そして、上述したように、サーバ決定部905は、平均遅延時間テーブル1300に基づいて、平均遅延時間が最も小さいサーバSiを、画面共有サーバに決定する。
具体的に、上述したように、平均遅延時間が最も小さいサーバSiが、複数ある場合、サーバ決定部905は、例えば、最も小さいサーバSiからランダムに画面共有サーバを決定する。
これにより、通信品質が極端に悪いようなクライアント端末装置cjを除外しつつ、全体にクライアント端末装置cjの通信品質がよくなるようなサーバSiによって画面共有が可能となる。したがって、利用者の操作に対する応答性の向上を図り、利用者の操作感の向上を図ることができる。
(実施例1にかかる制御装置101による画面共有サーバの決定処理手順例)
図14は、実施例1にかかる制御装置による画面共有サーバの決定処理手順例を示すフローチャートである。制御装置101は、参加要求のあったクライアント端末装置cjおよび画面共有に参加中のクライアント端末装置cjのすべてのクライアント端末装置cjを参加可能クライアントリスト1100へ登録する(ステップS1401)。クライアント端末装置cjを参加可能クライアントリスト1100へ登録するとは、クライアント端末装置cjの情報を参加可能クライアントリスト1100へ登録することである。
つぎに、制御装置101は、クライアント端末装置cjからの測定結果を遅延時間テーブル1200へ格納する(ステップS1402)。制御装置101は、参加可能クライアントリスト1100に登録されたクライアント端末装置cjのうち、すべてのサーバSiとの間の遅延時間が200[ms]以上となるクライアント端末装置cjがあるか否かを判断する(ステップS1403)。200[ms]は上述した閾値として設定された値である。
200[ms]以上となるクライアント端末装置cjがあると判断された場合(ステップS1403:Yes)、制御装置101は、200[ms]以上となるクライアント端末装置cjを参加可能クライアントリスト1100から削除し(ステップS1404)、ステップS1403へ戻る。200[ms]以上となるクライアント端末装置cjがないと判断された場合(ステップS1403:No)、制御装置101は、参加可能クライアントリスト1100が空か否かを判断する(ステップS1405)。
参加可能クライアントリスト1100が空であると判断された場合(ステップS1405:Yes)、制御装置101は、画面共有不可に決定し、画面共有不可となったことを各クライアント端末装置cjへ通知し(ステップS1413)、一連の処理を終了する。このように、すべてのクライアント端末装置cjの通信品質が悪い場合には、画面共有が困難である。画面共有が困難であるとは、すべての利用者の操作に対する応答性が悪い場合である。この場合、例えば、画面共有を用いた会議などを円滑に進めることが困難となる。このため、画面共有不可が通知されると、通信環境の改善などの目安とすることができる。
一方、参加可能クライアントリスト1100が空でないと判断された場合(ステップS1405:No)、制御装置101は、サーバSiとの遅延時間が200[ms]以下となるクライアント端末装置cjを許容可能クライアント端末装置cjとして特定する(ステップS1406)。そして、制御装置101は、サーバSiごとに許容可能クライアント端末装置cjの数をカウントする(ステップS1407)。
つぎに、制御装置101は、例えば、許容可能クライアント端末装置cj数が最多のサーバSiが1台か否かを判断する(ステップS1408)。許容可能クライアント端末装置cj数が最多のサーバSiが1台である場合(ステップS1408:Yes)、制御装置101は、最多のサーバSiを画面共有サーバに決定し(ステップS1411)、ステップS1412へ移行する。
許容可能クライアント端末装置cj数が最多のサーバSiが1台でない場合(ステップS1408:No)、制御装置101は、許容可能クライアント端末装置cj数が最多のサーバSiのうち、許容可能クライアント端末装置cjとの遅延時間の平均値を算出する(ステップS1409)。そして、制御装置101は、最多のサーバSiのうち、遅延時間の平均値が最小のサーバSiを画面共有サーバに決定する(ステップS1410)。
制御装置101は、例えば、決定されたサーバSiが許容可能でないクライアント端末装置cjを画面共有参加不可に決定し(ステップS1412)、一連の処理を終了する。
(実施例2)
実施例2では、通信品質の評価値が複数種類ある場合、各評価値をスコア化して、総合評価値に基づいて、画面共有サーバを決定する。これにより、サーバの通信品質を評価する確度の向上を図ることができる。これにより、クライアント端末装置ごとの通信遅延のばらつきの抑制を図ることができる。ここでは、遅延時間と、帯域幅と、の例について説明する。
ここで、評価値が、第1評価値と第2評価値との複数種類ある場合について説明する。サーバ決定部905は、複数の組み合わせの各々について、取得した第1評価値をスコア化した値と、取得した第2評価値をスコア化した値と、によって前記通信品質の総合評価値を算出する。そして、サーバ決定部905は、複数のサーバSiの各々について、算出した総合評価値を合計した合計値を算出する。サーバ決定部905は、複数のサーバのうち、算出した合計値が通信品質が最もよいことを示すサーバを、画面共有サーバに決定する。通信品質が最もよいことを示すことの詳細例は、上述した例と同じである。
サーバ決定部905は、例えば、画面共有に参加可能なクライアント端末装置cjをリスト化した参加可能クライアントリスト1100を生成する。参加可能クライアントリスト1100の例は、実施例1と同様であるため詳細な説明を省略する。
ここでは、第1評価値として遅延時間を利用し、第2評価値として帯域幅を利用する。サーバ決定部905は、例えば、クライアント端末装置cjから受信した測定結果を遅延時間テーブル1200、帯域幅テーブルへ格納する。遅延時間テーブル1200の例は、実施例1と同様であるため詳細な説明を省略する。
図15は、帯域幅テーブル例を示す説明図である。帯域幅テーブル1500は、クライアント端末装置cjと、サーバSiと、の各組み合わせについて測定した帯域幅が格納される。帯域幅テーブル1500は、例えば、ROM802、RAM803、ディスク805などの記憶装置に記憶される。例えば、サーバSAとクライアント端末装置caとの間の帯域幅はWAaである。
つぎに、サーバ決定部905は、遅延時間テーブル1200に格納された遅延時間に対応するポイントを遅延時間ポイントテーブルから求める。
図16は、遅延時間ポイントテーブル例を示す説明図である。遅延時間ポイントテーブル1600には、遅延時間を区切った時間帯ごとにポイントが設定される。遅延時間ポイントテーブル1600は、例えば、ROM802、RAM803、ディスク805などの記憶装置に記憶される。ここでは、遅延時間が短いほど、ポイントが高くなる。例えば、遅延時間が0〜50[ms]であれば、ポイントが10である。例えば、遅延時間が150[ms]以上であれば、ポイントが0である。これにより、第1評価値をポイント化することができる。
そして、サーバ決定部905は、帯域幅ポイントテーブルに格納された帯域幅に対応するポイントを帯域幅ポイントテーブルから求める。
図17は、帯域幅ポイントテーブル例を示す説明図である。帯域幅ポイントテーブル1700には、帯域幅を区切った幅ごとにポイントが設定される。帯域幅ポイントテーブル1700は、例えば、ROM802、RAM803、ディスク805などの記憶装置に記憶される。ここでは、帯域幅が大きいほど、ポイントが高くなる。例えば、帯域幅が100[Mbps]以上であれば、ポイントが10である。例えば、帯域幅が0〜10[Mbps]であれば、ポイントが0である。これにより、第2評価値をポイント化することができる。
そして、サーバ決定部905は、サーバSiとクライアント端末装置cjの組み合わせごとに、遅延時間に対応するポイントと、帯域幅に対応するポイントと、の合計値を総合評価値として算出する。ここで、総合評価値を通信品質ポイントとも称する。
図18は、通信品質ポイントテーブル例を示す説明図である。通信品質ポイントテーブル1800には、サーバSiとクライアント端末装置cjの組み合わせごとの通信品質ポイントが設定される。通信品質ポイントテーブル1800は、例えば、ROM802、RAM803、ディスク805などの記憶装置に記憶される。サーバSAとクライアント端末装置caとの組み合わせにおける通信品質ポイントは、PAaである。
つぎに、サーバ決定部905は、複数のサーバSiの各々について、サーバSiとクライアント端末装置cjの組み合わせについて算出した通信品質ポイントの合計ポイントを算出する。
図19は、合計ポイントテーブル例を示す説明図である。合計ポイントテーブル1900には、サーバSiごとの合計ポイントが設定される。合計ポイントテーブル1900は、例えば、ROM802、RAM803、ディスク805などの記憶装置に記憶される。サーバSAの合計ポイントはTotal_PAである。
そして、サーバ決定部905は、決定した合計ポイントが最大のサーバSiを共有画面サーバに決定する。これにより、複数の評価値によって通信品質がよくなるようなサーバSiを画面共有サーバとできるため、応答遅延のばらつきを抑制することができる。したがって、利用者の操作に対する応答性の向上を図り、利用者の操作感の向上を図る。
また、ここで、サーバSiすべてに対して極端に通信品質が悪いクライアント端末装置cjを除外して画面共有サーバを決定してもよい。サーバ決定部905は、複数のクライアント端末装置のうち、複数の組み合わせのうちの複数のサーバのすべての組み合わせについて算出した総合評価値が、通信品質が所定の通信品質よりも悪いことを示すクライアント端末装置へ前記画面の共有ができないことを通知する。上述したようにポイントが高いほど、通信品質はよいことを表す。このため、サーバ決定部905は、総合評価値が閾値以上であれば、所定の通信品質よりもよいことを示し、総合評価値が閾値未満であれば、所定の通信品質よりも悪いことを示すと判断する。
また、ここで、サーバSiの各々について極端に通信品質が悪いクライアント端末装置cjを除外して画面共有サーバを決定してもよい。サーバ決定部905は、複数のサーバSiの各々について、複数のクライアント端末装置cjのうち、算出した総合評価値が、第2条件を満たさないクライアント端末装置を特定する。そして、サーバ決定部905は、複数のサーバSiのうち、特定したクライアント端末装置の数が、最多のサーバを、画面共有サーバに決定する。第2条件は上述例と同じである。
具体的に、例えば、サーバ決定部905は、複数のサーバSiの各々について、クライアント端末装置cjのうち、通信品質ポイントが所定ポイント以上となるクライアント端末装置cjを許容可能クライアント端末装置cjとして特定する。ここでは、参加可能クライアントリスト1100に登録されたクライアント端末装置cjから特定される。所定ポイントとは、例えば、利用者が定めた値である。例えば、所定ポイントは6ポイントとする。そして、サーバ決定部905は、例えば、複数のサーバSiのうち、共有可能クライアント端末装置cjの数が最多のサーバSiを共有画面サーバとして決定してもよい。
また、最多のサーバが複数ある場合がある。このような場合、サーバ決定部905は、最多のサーバの各々について、複数の組み合わせのうち、最多のサーバと特定したクライアント端末装置との各組み合わせについての総合評価値の合計値が、通信品質が最もよいことを示すサーバを、画面共有サーバに決定する。ここでの通信品質が最もよいことを示すということの詳細例は上述例と同じである。
また、具体的に、例えば、共有可能クライアント端末装置cjの数が最多のサーバSiが複数ある場合がある。このような場合、サーバ決定部905は、例えば、通信品質ポイントテーブル1800に基づいて、各サーバSiについて、サーバSiと共有可能クライアント端末装置cjの組み合わせについて算出した通信品質ポイントの合計ポイントを算出する。合計ポイントの算出結果は、例えば、上述したように合計ポイントテーブル1900に格納される。サーバ決定部905は、合計ポイントテーブル1900に基づいて、合計ポイントが最大のサーバSiを共有画面サーバに決定する。
これにより、通信遅延のばらつきを抑制可能なサーバSiを共有画面サーバとできる。したがって、利用者の操作性の向上を図ることができる。
また、サーバ決定部905は、複数のクライアント端末装置cjのうち、決定した画面共有サーバについての算出した総合評価値が、第2条件を満たすクライアント端末装置へ画面の共有ができないことを通知する。このように、決定した画面共有サーバとの間の通信品質が悪いクライアント端末装置を画面共有から除外することにより、より通信遅延のばらつきの抑制を図ることができる。
また、上述例では、評価値が第1評価値と第2評価値の場合を例に挙げたが、さらに、第3評価値がある場合も同様にポイント化して総合評価値を求めればよい。第3評価値として、パケットロス率を用いる場合、上述例の各ポイントテーブルと合わせるためには、パケットロス率のポイントテーブルは、パケットロス率が高いほど、ポイントが低くなるように作成されるとよい。
(実施例2にかかる制御装置101による画面共有サーバの決定処理手順例)
図20および図21は、実施例2にかかる画面共有サーバの制御装置による画面共有サーバの決定処理手順例を示すフローチャートである。制御装置101は、すべてのクライアント端末装置cjを参加可能クライアントリスト1100へ登録する(ステップS2001)。制御装置101は、クライアント端末装置cjから受信した測定結果を遅延時間テーブル1200、帯域幅テーブル1500へ格納する(ステップS2002)。
制御装置101は、サーバSiとクライアント端末装置cjとの組み合わせの各々について、遅延時間テーブル1200に格納された遅延時間に対応するポイントを遅延時間ポイントテーブル1600から求める(ステップS2003)。制御装置101は、サーバSiとクライアント端末装置cjとの組み合わせの各々について、帯域幅テーブル1500に格納された帯域幅に対応するポイントを帯域幅ポイントテーブル1700から求める(ステップS2004)。
制御装置101は、サーバSiの各々について、求めたポイントの合計ポイントを通信品質ポイントテーブル1800へ格納する(ステップS2005)。制御装置101は、参加可能クライアントリスト1100に登録されたクライアント端末装置cjのうち、すべてのサーバSiに対して6ポイント未満となるクライアント端末装置cjが存在するか否かを判断する(ステップS2006)。6ポイント未満となるクライアント端末装置cjが存在すると判断された場合(ステップS2006:Yes)、制御装置101は、6ポイント未満となるクライアント端末装置cjを参加可能クライアントリスト1100から削除し(ステップS2007)、ステップS2006へ戻る。
6ポイント未満となるクライアント端末装置cjが存在しないと判断された場合(ステップS2006:No)、制御装置101は、ステップS2101へ移行する。
制御装置101は、参加可能クライアントリスト1100が空か否かを判断する(ステップS2101)。参加可能クライアントリスト1100が空であると判断された場合(ステップS2101:Yes)、制御装置101は、画面共有不可に決定し(ステップS2109)、一連の処理を終了する。
参加可能クライアントリスト1100が空でないと判断された場合(ステップS2101:No)、制御装置101は、参加可能クライアントリスト1100に登録されたクライアント端末装置cjのうち、サーバSiとの通信品質ポイントが6ポイント以上となるクライアント端末装置cjを該サーバSiの許容可能クライアント端末装置cjとして特定する(ステップS2102)。つぎに、制御装置101は、サーバSiごとに許容可能クライアント端末装置cjの数をカウントする(ステップS2103)。
制御装置101は、許容可能クライアント端末装置cj数が、最多のサーバSiが1台か否かを判断する(ステップS2104)。最多のサーバSiが1台であると判断された場合(ステップS2104:Yes)、制御装置101は、最多のサーバSiを共有画面サーバとして決定し(ステップS2107)、ステップS2108へ移行する。
最多のサーバSiが1台でないと判断された場合(ステップS2104:No)、制御装置101は、許容可能クライアント端末装置cj数が最多のサーバSiの各々について、許容可能クライアント端末装置cjとの通信品質ポイントの合計値を算出する(ステップS2105)。そして、制御装置101は、最多のサーバSiのうち、合計値が最大となるサーバSiを共有画面サーバとして決定する(ステップS2106)。
つぎに、制御装置101は、決定されたサーバSiが許容可能でないクライアント端末装置cjを画面共有参加不可に決定し(ステップS2108)、一連の処理を終了する。許容可能でないクライアント端末装置cjは、決定されたサーバSiとの通信品質ポイントが6ポイント未満のクライアント端末装置cjである。
以上説明したように、画面共有システム100では、各クライアント端末装置cjによる画面共有用にサーバSiを分散して複数設ける。そして、制御装置101は、クライアント端末装置cjとサーバSiの組み合わせごとの通信品質の評価値に基づいて、画面共有を実現するサーバを決定する。また、評価値は、遅延時間、帯域幅、やパケットロス率などである。これにより、各クライアント端末装置cjからサーバSiまでの通信品質がよくなるように画面共有サーバが決定されるため、通信遅延のばらつきを抑制する。したがって、画面共有を利用した場合における利用者の操作性の向上を図ることができる。
また、制御装置101は、サーバごとの評価値の分布の統計量が通信品質が最もよいことを示すサーバを、画面共有サーバに決定する。例えば、評価値の分布の統計量は評価値の平均値である。これにより、平均的な通信品質が最もよいサーバを画面共有サーバにできるため、クライアント端末ごとの通信遅延のばらつきをより抑制することができる。
また、制御装置101は、取得した評価値に基づいて、サーバごとに通信品質が極端に悪くないクライアント端末装置を特定し、特定したクライアント端末装置の数が最多のサーバを画面共有サーバに決定する。これにより、通信品質が極端に悪くなるようなクライアント端末装置が少なくなるようなサーバを画面共有サーバにできるため、クライアント端末装置ごとの通信遅延のばらつきをより抑制することができる。
また、制御装置101は、通信品質が極端に悪くないクライアント端末装置の数が最多のサーバが1台でない場合、最多のサーバから、取得した評価値の分布の統計量が、通信品質が最もよいことを示すサーバを画面共有サーバに決定する。これにより、通信品質が極端に悪くなるようなクライアント端末装置が少なく、かつ平均的な通信品質が最もよいサーバを画面共有サーバにできるため、クライアント端末ごとの通信遅延のばらつきをより抑制することができる。
また、制御装置101は、クライアント端末装置のうち、すべてのサーバとの通信品質が悪いクライアント端末装置へ画面の共有ができないことを通知する。これにより、極端に通信品質が悪いクライアント端末装置を除外して画面共有を行うことができ、クライアント端末ごとの通信遅延のばらつきをより抑制することができる。
また、制御装置101は、決定したサーバとの通信品質が悪いクライアント端末装置へ画面の共有ができないことを通知する。これにより、極端に通信品質が悪いクライアント端末装置を除外して画面共有を行うことができ、クライアント端末ごとの通信遅延のばらつきをより抑制することができる。
また、制御装置101は、評価値が複数種類ある場合、第1評価値をスコア化した値と、第2評価値をスコア化した値と、によって通信品質の総合評価値を算出し、総合評価値を合計した合計値に基づいて画面共有サーバを決定する。これにより、総合的に通信品質がよいようなサーバを画面共有サーバにできるため、クライアント端末装置ごとの通信遅延のばらつきをより抑制することができる。
また、制御装置101は、サーバごとに、総合評価値が悪くないクライアント端末装置を特定し、特定したクライアント端末装置の数が最も多いサーバを画面共有サーバに決定する。これにより、総合的な通信品質が極端に悪くなるようなクライアント端末装置が少なくなるサーバを画面共有サーバにできるため、クライアント端末装置ごとの通信遅延のばらつきをより抑制することができる。
また、制御装置101は、総合評価値が悪くないクライアント端末装置の数が最も多いサーバが複数ある場合、最も多いサーバから、総合評価値を合計した合計値に基づいて画面共有サーバを決定する。これにより、通信品質が極端に悪くなるようなクライアント端末装置が少なく、かつ総合的に通信品質が最もよいサーバを画面共有サーバにできるため、クライアント端末ごとの通信遅延のばらつきをより抑制することができる。
また、制御装置101は、すべてのサーバに対して総合評価値が悪いようなクライアント端末装置へ画面の共有ができないことを通知する。これにより、極端に通信品質が悪いクライアント端末装置を除外して画面共有を行うことができ、クライアント端末ごとの通信遅延のばらつきをより抑制することができる。
また、制御装置101は、決定したサーバとの通信品質が悪いクライアント端末装置へ画面の共有ができないことを通知する。これにより、極端に通信品質が悪いクライアント端末装置を除外して画面共有を行うことができ、クライアント端末ごとの通信遅延のばらつきをより抑制することができる。
なお、本実施の形態で説明した画面共有方法は、予め用意された画面共有プログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本画面共有プログラムは、磁気ディスク、光ディスク、USB(Universal Serial Bus)フラッシュメモリなどのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また、画面共有プログラムは、インターネット等のネットワークを介して配布してもよい。
上述した実施の形態に関し、さらに以下の付記を開示する。
(付記1)所定領域に構築されるネットワーク内に分散して設けられる複数のサーバと、
前記複数のサーバのいずれかのサーバによって実行されるアプリケーションプログラムの実行結果に応じた画面の画像を表示する複数のクライアント端末装置と、
前記複数のサーバと、前記複数のクライアント端末装置と、を制御する制御装置と、
を有する画面共有システムであって、
前記制御装置が、
前記複数のクライアント端末装置の各々から、前記複数のクライアント端末装置の各々と前記複数のサーバの各々との複数の組み合わせの各々についての通信品質の評価値を取得し、
取得した前記評価値に基づいて、前記複数のサーバから、前記アプリケーションプログラムを実行させるサーバを決定し、
決定した前記サーバとの接続に用いる接続情報を、前記複数のクライアント端末装置へ送信し、決定した前記サーバに前記アプリケーションプログラムを実行させる実行指示を通知する、
処理を実行し、
前記複数のクライアント端末装置の各々は、
前記複数のサーバのうち、決定した前記サーバと自クライアント端末装置とを受信した前記接続情報に基づいて接続する、
処理を実行し、
前記複数のサーバの各々は、
前記実行指示を受信した場合、前記アプリケーションプログラムを実行する、
ことを特徴とする画面共有システム。
(付記2)前記決定する処理では、
前記複数のサーバの各々について、前記複数の組み合わせのうち当該サーバを含む組み合わせについて取得した前記評価値の分布の統計量を算出し、
求めた前記統計量に基づいて、前記複数のサーバのうち、前記通信品質が最もよいことを示すサーバを、前記アプリケーションプログラムを実行させるサーバに決定する、
ことを特徴とする付記1に記載の画面共有システム。
(付記3)前記制御装置が、
前記複数のサーバの各々について、前記複数の組み合わせのうちの当該サーバを含む組み合わせについて取得した前記評価値に基づいて、前記複数のクライアント端末装置のうち、前記通信品質が所定の通信品質よりもよいことを示すクライアント端末装置を特定する、
処理を実行し、
前記決定する処理では、
前記複数のサーバのうち、特定した前記クライアント端末装置の数が最多のサーバを、前記アプリケーションプログラムを実行させるサーバに決定する、
ことを特徴とする付記1に記載の画面共有システム。
(付記4)前記制御装置が、
前記最多のサーバが複数ある場合、前記最多のサーバの各々について、前記複数の組み合わせのうち、前記最多のサーバと特定した前記クライアント端末装置との各組み合わせについて取得した前記評価値の分布の統計量を算出し、
前記決定する処理では、
求めた前記統計量に基づいて、前記最多のサーバのうち、前記通信品質が最もよいことを示すサーバを、前記アプリケーションプログラムを実行させるサーバに決定する、
ことを特徴とする付記3に記載の画面共有システム。
(付記5)前記制御装置が、
前記複数の組み合わせのうちの決定した前記サーバを含む組み合わせについて取得した前記評価値に基づいて、前記複数のクライアント端末装置のうち、前記通信品質が所定の通信品質よりも悪いことを示すクライアント端末装置へ前記画面の共有ができないことを通知する、
ことを特徴とする付記1〜4のいずれか一つに記載の画面共有システム。
(付記6)前記評価値の分布の統計量は、前記評価値の平均値であることを特徴とする付記2または4に記載の画面共有システム。
(付記7)取得した前記評価値が、前記通信品質の第1評価値と前記通信品質の第2評価値との複数種類ある場合、
前記制御装置が、
前記複数の組み合わせの各々について、前記第1評価値を点数付けした値と、前記第2評価値を点数付けした値と、によって前記通信品質の総合評価値を算出し、
前記複数のサーバの各々について、算出した前記総合評価値を合計した合計値を算出する、
処理を実行し、
前記決定する処理では、
算出した前記合計値に基づいて、前記複数のサーバのうち、前記通信品質が最もよいことを示すサーバを、前記アプリケーションプログラムを実行させるサーバに決定する、
ことを特徴とする付記1に記載の画面共有システム。
(付記8)取得した前記評価値が、前記通信品質の第1評価値と前記通信品質の第2評価値との複数種類ある場合、
前記制御装置が、
前記複数の組み合わせの各々について、前記第1評価値を点数付けした値と、前記第2評価値を点数付けした値と、によって前記通信品質の総合評価値を算出し、
前記複数のサーバの各々について、算出した前記総合評価値に基づいて、前記複数のクライアント端末装置のうち、前記通信品質が所定の通信品質よりもよいことを示すクライアント端末装置を特定する、
処理を実行し、
前記決定する処理では、
前記複数のサーバのうち、特定した前記クライアント端末装置の数が最多のサーバを、前記アプリケーションプログラムを実行させるサーバに決定する、
ことを特徴とする付記1に記載の画面共有システム。
(付記9)前記制御装置が、
前記最多のサーバの数が複数ある場合、前記最多のサーバの各々について、前記複数の組み合わせのうち、前記最多のサーバと特定した前記クライアント端末装置との各組み合わせについて取得した前記総合評価値を合計した合計値を算出し、
算出した前記合計値に基づいて、前記最多のサーバのうち、前記通信品質が最もよいことを示すサーバを、前記アプリケーションプログラムを実行させるサーバに決定する、
ことを特徴とする付記8に記載の画面共有システム。
(付記10)前記制御装置が、
前記複数の組み合わせのうちの決定した前記サーバを含む組み合わせについて算出した前記総合評価値に基づいて、前記複数のクライアント端末装置のうち、前記通信品質が所定の通信品質よりも悪いことを示すクライアント端末装置へ前記画面の共有ができないことを通知する、
ことを特徴とする付記7〜9のいずれか一つに記載の画面共有システム。
(付記11)前記評価値は、前記複数の組み合わせの各々についての前記組み合わせのクライアント端末装置と前記組み合わせのサーバとの間の往復の通信に要する時間であることを特徴とする付記1〜10のいずれか一つに記載の画面共有システム。
(付記12)前記評価値は、前記複数の組み合わせの各々についての前記組み合わせのクライアント端末装置と前記組み合わせのサーバとの間の通信の帯域幅であることを特徴とする付記1〜10のいずれか一つに記載の画面共有システム。
(付記13)前記評価値は、前記複数の組み合わせの各々についての前記組み合わせのクライアント端末装置と前記組み合わせのサーバとの間の通信時のパケットロス率であることを特徴とする付記1〜10のいずれか一つに記載の画面共有システム。
(付記14)所定領域に構築されるネットワーク内に分散して設けられる複数のサーバと、前記複数のサーバのいずれかのサーバによって実行されるアプリケーションプログラムの実行結果に応じた画面の画像を表示する複数のクライアント端末装置と、を制御する制御装置に、
前記複数のクライアント端末装置の各々から、前記複数のクライアント端末装置の各々と前記複数のサーバの各々との複数の組み合わせの各々についての通信品質の評価値を取得し、
取得した前記評価値に基づいて、前記複数のサーバから、前記アプリケーションプログラムを実行させるサーバを決定し、
決定した前記サーバとの接続に用いる接続情報を、前記複数のクライアント端末装置へ送信し、決定した前記サーバに前記アプリケーションプログラムを実行させる実行指示を通知する、
処理を実行させることを特徴とする画面共有プログラム。
(付記15)所定領域に構築されるネットワーク内に分散して設けられる複数のサーバと、前記複数のサーバのいずれかのサーバによって実行されるアプリケーションプログラムの実行結果に応じた画面の画像を表示する複数のクライアント端末装置と、を制御する制御装置が、
前記複数のクライアント端末装置の各々から、前記複数のクライアント端末装置の各々と前記複数のサーバの各々との複数の組み合わせの各々についての通信品質の評価値を取得し、
取得した前記評価値に基づいて、前記複数のサーバから、前記アプリケーションプログラムを実行させるサーバを決定し、
決定した前記サーバとの接続に用いる接続情報を、前記複数のクライアント端末装置へ送信し、決定した前記サーバに前記アプリケーションプログラムを実行させる実行指示を通知する、
処理を実行することを特徴とする画面共有方法。