(57)【要約】【課題】操作性の悪化を抑制すること。【解決手段】サーバ１０は、画像を表示する第１の端末に画像データを送信する第２の端末に、所定の通信経路を介して、画像データを送信する送信部１８を有する。サーバ１０は、送信部１８により送信された第１の画像データに基づいた第１の画像を第１の端末が表示する際の第１の画像全体の描画の開始から完了までの時間を示す情報を取得する。サーバ１０は、時間が考慮された所定の通信経路の帯域を推定する。サーバ１０は、推定された帯域に収まるように、送信部１８により第１の画像データの後に送信される第２の画像データが第２の端末に送信されるタイミングを決定する。サーバ１０は、決定されたタイミングで、第２の画像データを第２の端末に送信するように送信部１８を制御する。【選択図】図１
2015097063.tif 000002
【特許請求の範囲】
【請求項１】
画像を表示する第１の端末に画像データを送信する第２の端末に、所定の通信経路を介して、前記画像データを送信する送信部と、
前記送信部により送信された第１の画像データに基づいた第１の画像を前記第１の端末が表示する際の該第１の画像全体の描画の開始から完了までの時間を示す情報を取得する取得部と、
前記時間が考慮された前記所定の通信経路の帯域を推定する推定部と、
前記推定部により推定された帯域に収まるように、前記送信部により前記第１の画像データの後に送信される第２の画像データが前記第２の端末に送信されるタイミングを決定する決定部と、
前記決定部により決定されたタイミングで、前記第２の画像データを前記第２の端末に送信するように前記送信部を制御する送信制御部と、
を有することを特徴とする情報処理装置。
【請求項２】
前記推定部は、前記第１の画像データのデータサイズを、前記時間と前記第１の画像データを前記送信部が送信してから前記第２の端末が受信するまでの時間との和で除して、前記第１の画像全体の描画の開始から完了までの時間が考慮された前記所定の通信経路の帯域を推定する
ことを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記推定部は、前記第１の端末に表示された前記第１の画像に対して操作が行われた場合に、前記第１の画像全体の描画の開始から完了までの時間が考慮された前記所定の通信経路の帯域を推定する
ことを特徴とする請求項１または請求項２に記載の情報処理装置。
【請求項４】
前記決定部は、前記第１の画像データのデータサイズを前記推定部により推定された帯域で除した値と前記第１の画像全体の描画の開始から完了までの時間との和から前記第２の画像データのデータサイズを前記推定部により推定された帯域で除した値を減じた時間を決定し、
前記送信制御部は、前記送信部により前記第１の画像データが送信されてからの経過時間が、前記決定部により決定された時間に達した時点で、前記第２の画像データを送信するように前記送信部を制御する
ことを特徴とする請求項１〜３の何れか１つに記載の情報処理装置。
【請求項５】
コンピュータに、
画像を表示する第１の端末に画像データを送信する第２の端末に、所定の通信経路を介して、前記画像データを送信する送信部により送信された第１の画像データに基づいた第１の画像を前記第１の端末が表示する際の該第１の画像全体の描画の開始から完了までの時間を示す情報を取得し、
前記時間が考慮された前記所定の通信経路の帯域を推定し、
推定された帯域に収まるように、前記送信部により前記第１の画像データの後に送信される第２の画像データが前記第２の端末に送信されるタイミングを決定し、
決定されたタイミングで、前記第２の画像データを前記第２の端末に送信するように前記送信部を制御する
処理を実行させることを特徴とする画面制御プログラム。
【請求項６】
コンピュータが、
画像を表示する第１の端末に画像データを送信する第２の端末に、所定の通信経路を介して、前記画像データを送信する送信部により送信された第１の画像データに基づいた第１の画像を前記第１の端末が表示する際の該第１の画像全体の描画の開始から完了までの時間を示す情報を取得し、
前記時間が考慮された前記所定の通信経路の帯域を推定し、
推定された帯域に収まるように、前記送信部により前記第１の画像データの後に送信される第２の画像データが前記第２の端末に送信されるタイミングを決定し、
決定されたタイミングで、前記第２の画像データを前記第２の端末に送信するように前記送信部を制御する
処理を実行することを特徴とする画面制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、画面制御プログラム及び画面制御方法に関する。
【背景技術】
【０００２】
クライアント端末に最低限の機能しか持たせず、サーバでアプリケーションやファイルなどのリソースを管理するシンクライアントシステムがある。
【０００３】
かかるシンクライアントシステムでは、実際にはサーバが処理を実行した処理結果やサーバが保持するデータをクライアント端末に表示させつつも、あたかもクライアント端末が主体となって処理を実行しデータを保持しているかのように振る舞う。
【０００４】
シンクライアントシステムでは、クライアント端末の利用者の操作に伴って画面の更新が発生する。シンクライアントシステムでは、画面の更新が発生すると、サーバからクライアント端末に画面の更新前後の差分の画像の画像データが送信される。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１３−４１３９９号公報
【特許文献２】特開２００２−９８２６号公報
【特許文献３】特開２００２−２７９４４９号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
ここで、クライアント端末（第１のクライアント端末）と接続された他のクライアント端末（第２のクライアント端末）が、サーバによるサービスが受けられるように、次のような方法を行うことが考えられる。すなわち、第１のクライアント端末から、第１のクライアント端末で表示された画面の画像データや更新前後の差分の画像データを第２のクライアント端末へ送信する方法が考えられる。これにより、第２のクライアント端末は、サーバとの通信を行うための機能を持たなくとも、第１のクライアント端末と同様に、サーバによるサービスを受けることができる。すなわち、第２のクライアント端末は、第１のクライアント端末で表示された画面と同一の画面を表示することができる。
【０００７】
しかしながら、第１のクライアント端末の処理性能と第２のクライアント端末の処理性能とが異なる場合には、いずれかのクライアント端末での操作性が悪化することがあるという問題がある。例えば、第２のクライアント端末のフレームレートが、第１のクライアント端末のフレームレートよりも低く、サーバが、第２のクライアント端末の利用者の画面のスクロール操作に伴い第１のクライアント端末のフレームレートに合わせて画像データを送信する場合には、次のような事象が発生する場合がある。すなわち、第２のクライアント端末では、利用者によるスクロール操作が終了したにも関わらず、画面のスクロールが継続されてしまう場合がある。これは、第２のクライアント端末において、受信したある画像データに基づいた画面全体の描画が完了する前に、次々と他の画像データが第１のクライアント端末から送信され、描画する画像データが蓄積されるからである。このように利用者によるスクロール操作が終了したにも関わらず、画面のスクロールが継続されてしまう場合には、第２の端末では操作性が悪化することとなる。
【０００８】
１つの側面では、本発明は、操作性の悪化を抑制することを目的とする。
【課題を解決するための手段】
【０００９】
１態様では、情報処理装置は、画像を表示する第１の端末に画像データを送信する第２の端末に、所定の通信経路を介して、前記画像データを送信する送信部を有する。情報処理装置は、前記送信部により送信された第１の画像データに基づいた第１の画像を前記第１の端末が表示する際の該第１の画像全体の描画の開始から完了までの時間を示す情報を取得する取得部を有する。情報処理装置は、前記時間が考慮された前記所定の通信経路の帯域を推定する推定部を有する。情報処理装置は、前記推定部により推定された帯域に収まるように、前記送信部により前記第１の画像データの後に送信される第２の画像データが前記第２の端末に送信されるタイミングを決定する決定部を有する。情報処理装置は、前記決定部により決定されたタイミングで、前記第２の画像データを前記第２の端末に送信するように前記送信部を制御する送信制御部を有する。
【発明の効果】
【００１０】
操作性の悪化を抑制することができる。
【図面の簡単な説明】
【００１１】
【図１】図１は、実施例に係るシンクライアントシステムに含まれる各装置の機能的構成を示すブロック図である。
【図２】図２は、本実施例に係るシンクライアントシステムの各装置間のデータの流れの一例を示す図である。
【図３】図３は、実施例に係るクライアント端末が実行する処理の手順を示すフローチャートである。
【図４】図４は、実施例に係るクライアント端末が実行するフレームレート送信処理の手順を示すフローチャートである。
【図５】図５は、実施例に係るクライアント端末が実行する表示制御処理の手順を示すフローチャートである。
【図６】図６は、実施例に係るサーバが実行する画面送信処理の手順を示すフローチャートである。
【図７】図７は、実施例に係るサーバが実行するタイミング決定処理の手順を示すフローチャートである。
【図８】図８は、実施例に係る画面制御プログラムを実行するコンピュータの一例について説明するための図である。
【発明を実施するための形態】
【００１２】
以下に、本願の開示する情報処理装置、画面制御プログラム及び画面制御方法の実施例を図面に基づいて詳細に説明する。なお、この実施例は開示の技術を限定するものではない。そして、各実施例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
【実施例】
【００１３】
［システム構成］
まず、本実施例に係るシンクライアントシステムの構成について説明する。図１は、実施例に係るシンクライアントシステムに含まれる各装置の機能的構成を示すブロック図である。
【００１４】
図１に示すシンクライアントシステム１は、クライアント端末３０，４０が表示するデスクトップ画面をリモートでサーバ１０に制御させるものである。つまり、シンクライアントシステム１は、実際にはサーバ１０が実行した処理結果や保持するデータをクライアント端末３０，４０に表示させつつも、あたかもクライアント端末３０，４０が主体となって処理を実行し、データを保持しているかのように振る舞う。
【００１５】
図１に示すように、シンクライアントシステム１は、サーバ１０と、クライアント端末３０，４０と、Ｗｅｂサーバ９０とを有する。なお、図１の例では、１つのサーバ１０に対し、１つのクライアント端末３０を接続する場合を図示したが、任意の数のクライアント端末が接続される場合にも同様に適用できる。また、図１の例では、１つのクライアント端末３０に対し、１つのクライアント端末４０を接続する場合を図示したが、任意の数のクライアント端末が接続される場合にも同様に適用できる。さらに、図１の例では、１つのＷｅｂサーバ９０に対し、１つのサーバ１０を接続する場合を図示したが、任意の数のサーバが接続される場合にも同様に適用できる。
【００１６】
サーバ１０とクライアント端末３０とは、所定のネットワーク（通信経路）を介して、相互に通信可能に接続される。かかるネットワークには、有線または無線を問わず、インターネット、ＬＡＮ（Local  Area  Network）やＶＰＮ（Virtual  Private  Network）などの任意の種類の通信網を採用できる。なお、サーバ１０及びクライアント端末３０間の通信プロトコルには、一例として、ＶＮＣ（Virtual  Network  Computing）におけるＲＦＢ（Remote  Frame  Buffer）プロトコルを採用する場合を想定する。また、サーバ１０とクライアント端末２０とは、互いに、３Ｇ、ＷｉＭＡＸ（Worldwide  Interoperability  for  Microwave  Access）、ＬＴＥ（Long  Term  Evolution）などの通信規格により通信可能とすることもできる。また、サーバ１０とＷｅｂサーバ９０とは、同様に、所定のネットワークを介して相互に通信可能に接続されている。
【００１７】
サーバ１０は、クライアント端末３０，４０に表示させる画面をリモートで制御するサービスを提供するコンピュータである。このサーバ１０には、サーバ向けのリモート画面制御用のアプリケーションがインストールまたはプリインストールされる。なお、以下では、サーバ向けのリモート画面制御用のアプリケーションのことを「サーバ側のリモート画面制御用アプリ」と記載する場合がある。
【００１８】
このサーバ側のリモート画面制御用アプリは、基本機能として、リモート画面制御サービスを提供する機能を有する。一態様としては、サーバ側のリモート画面制御用アプリは、クライアント端末３０における操作情報を取得した上でその操作により要求された処理を自装置で動作するアプリケーションに実行させる。そして、サーバ側のリモート画面制御用アプリは、アプリケーションにより実行された処理結果を表示するための画面を生成した上でその画面をクライアント端末３０に送信するとともに、クライアント端末３０を介してクライアント端末２０へ送信する。例えば、サーバ側のリモート画面制御用アプリは、クライアント端末３０において所定の表示部に表示された画面上のリンクがタップされる操作が行われた場合には、タップされたリンクに対応するページ（Ｗｅｂページ）をＷｅｂサーバ９０から取得する。そして、サーバ側のリモート画面制御用アプリは、取得したページのクライアント端末３０に表示させる画面を生成した上で、次の処理を行う。すなわち、サーバ側のリモート画面制御用アプリは、生成した画面をクライアント端末３０に送信するとともに、クライアント端末３０を介してクライアント端末２０へ送信する。また、サーバ側のリモート画面制御用アプリは、クライアント端末３０において画面のスクロール操作が行われた場合には、スクロール後のクライアント端末３０に表示させる画面を生成した上で、次の処理を行う。すなわち、サーバ側のリモート画面制御用アプリは、生成した画面をクライアント端末３０に送信するとともに、クライアント端末３０を介してクライアント端末２０へ送信する。このとき、サーバ側のリモート画面制御用アプリは、今回の画面生成の前にクライアント端末３０で表示させていたビットマップ画像との間で変更があった部分の画素が集まった領域、すなわち更新矩形の画像を送信する。なお、以下では、一例として、更新部分の画像が矩形の画像で形成される場合を説明するが、開示の装置は更新部分の画像が矩形以外の形状で形成される場合にも適用できる。
【００１９】
また、サーバ側のリモート画面制御用アプリは、クライアント端末３０で、ある１つの画面または更新矩形の画像の全体の描画が完了した時点で、次に描画される画面または更新矩形の画像の画像データが受信されるように、画像データの送信間隔を調整する。これにより、クライアント端末３０において、ある画面または更新矩形の画像の全体の描画が完了する前に、次々と画像データがクライアント端末４０を介してサーバ１０から送信され、描画する画像データが蓄積されるような事態の発生を抑制することができる。この結果、クライアント端末３０では、利用者によるスクロール操作が終了したにも関わらず、画面のスクロールが継続されてしまうような事態の発生を抑制することができる。したがって、サーバ側のリモート画面制御用アプリによれば、クライアント端末３０における操作性の悪化を抑制することができる。また、サーバ側のリモート画面制御用アプリは、クライアント端末３０で、ある１つの画面または更新矩形の画像の全体の描画が完了した時点で、次に描画される画面または更新矩形の画像の画像データが受信されるように、画像データの送信間隔を調整する。それゆえ、サーバ側のリモート画面制御用アプリによれば、クライアント端末３０で、ある１つの画面または更新矩形の画像の全体の描画が完了してから、次に描画される画像データが受信されるまでの間隔が長くなるような事態の発生を抑制する。したがって、サーバ側のリモート画面制御用アプリによれば、クライアント端末３０における画像の描画の遅延を抑制することができる。
【００２０】
クライアント端末３０は、サーバ１０によるリモート画面制御サービスの提供を受ける側のコンピュータである。かかるクライアント端末３０の一例としては、カーナビゲーション装置、パーソナルコンピュータ（personal  computer）など固定端末を採用できる。なお、クライアント端末３０として、固定端末の他、携帯電話機、スマートフォン、ＰＨＳ（Personal  Handyphone  System）やＰＤＡ（Personal  Digital  Assistant）などの移動体端末も採用することができる。以下、クライアント端末３０が、Ｂｌｕｅｔｏｏｔｈ（登録商標）やＷｉＦｉなどの通信規格により、クライアント端末４０と通信可能であるとともに、サーバ１０との通信機能を有さないカーナビゲーション装置である場合を例にあげて説明する。このクライアント端末３０には、クライアント向けのリモート画面制御用アプリケーションがインストールまたはプリインストールされる。なお、以下では、このクライアント向けのリモート画面制御用のアプリケーションのことを「第１のクライアント側のリモート画面制御用アプリ」と記載する場合がある。
【００２１】
この第１のクライアント側のリモート画面制御用アプリは、マウスやキーボードなどの各種の入力デバイスを介して受け付けた操作情報をクライアント端末４０を介してサーバ１０へ通知する機能を有する。一態様としては、第１のクライアント側のリモート画面制御用アプリは、マウスの左右のクリックを始め、ダブルクリックやドラッグ、マウスの移動操作を介して得られたマウスカーソルの移動量などを操作情報として通知する。また、第１のクライアント側のリモート画面制御用アプリは、マウスホイールの回転量、キーボードのうち押下されたキーの種別なども操作情報として通知する。さらに、第１のクライアント側のリモート画面制御用アプリは、画面のスクロール操作、画面上のリンクがタップされたことなども操作情報として通知する。
【００２２】
また、第１のクライアント側のリモート画面制御用アプリは、クライアント端末４０を経由してサーバ１０から受信した画面を所定の表示部に表示させる機能を有する。
【００２３】
また、第１のクライアント側のリモート画面制御用アプリは、クライアント端末４０を経由してサーバ１０から受信した画像を所定の表示部に表示させる機能を有する。一態様としては、第１のクライアント側のリモート画面制御用アプリは、更新矩形のビットマップ画像を受信した場合には、更新矩形の画像を前回のビットマップ画像から変更のあった位置に合わせて表示する。他の一態様としては、第１のクライアント側のリモート画面制御用アプリは、表示部のフレームレートを計測し、計測したフレームレートをクライアント端末４０に通知する。
【００２４】
クライアント端末４０は、サーバ１０によるリモート画面制御サービスの提供を受ける側のコンピュータである。かかるクライアント端末４０の一例としては、携帯電話機、スマートフォン、ＰＨＳ（Personal  Handyphone  System）やＰＤＡ（Personal  Digital  Assistant）などの移動体端末を採用することができる。なお、クライアント端末４０として、移動体端末の他、カーナビゲーション装置、パーソナルコンピュータ（personal  computer）などの固定端末も採用できる。以下、クライアント端末４０が、３Ｇ、ＷｉＭＡＸ、ＬＴＥなどの通信規格によりサーバ１０と通信可能であり、ＢｌｕｅｔｏｏｔｈやＷｉＦｉなどの通信規格によりクライアント端末３０と通信可能であるスマートフォンである場合を例にあげて説明する。このクライアント端末４０には、クライアント向けのリモート画面制御用アプリケーションがインストールまたはプリインストールされる。なお、以下では、このクライアント向けのリモート画面制御用のアプリケーションのことを「第２のクライアント側のリモート画面制御用アプリ」と記載する場合がある。
【００２５】
この第２のクライアント側のリモート画面制御用アプリは、クライアント端末３０から受け付けた操作情報をサーバ１０へ通知する機能を有する。
【００２６】
また、第２のクライアント側のリモート画面制御用アプリは、サーバ１０から受信した画面を所定の表示部に表示させる機能を有する。また、第２のクライアント側のリモート画面制御用アプリは、サーバ１０から受信した画面をクライアント端末３０へ送信して、画面を中継する機能を有する。
【００２７】
また、第２のクライアント側のリモート画面制御用アプリは、サーバ１０から受信した画像を所定の表示部に表示させる機能を有する。一態様としては、第２のクライアント側のリモート画面制御用アプリは、更新矩形のビットマップ画像を受信した場合には、更新矩形の画像を前回のビットマップ画像から変更のあった位置に合わせて表示する。また、第２のクライアント側のリモート画面制御用アプリは、サーバ１０から受信した画像をクライアント端末３０へ送信して、画像を中継する機能を有する。他の一態様としては、第２のクライアント側のリモート画面制御用アプリは、表示部のフレームレートを計測する。
【００２８】
また、第２のクライアント側のリモート画面制御用アプリは、クライアント端末３０から受け付けた操作情報に基づいて、クライアント端末３０で利用者によるスクロール操作などの各種の操作が行われたか否かを判定する。そして、第２のクライアント側のリモート画面制御用アプリは、各種の操作が行われた場合には、計測したフレームレートと、クライアント端末３０から通知されたフレームレートとを比較し、小さい方のフレームレートをサーバ１０に送信する。
【００２９】
また、第２のクライアント側のリモート画面制御用アプリは、受信した画像データの受信時刻と、画像データに付加された送信時刻とから、画像データがサーバ１０から送信されからクライアント端末４０により受信されるまでの時間を算出する。そして、第２のクライアント側のリモート画面制御用アプリは、算出した時間をサーバ１０に送信する。
【００３０】
［サーバの構成］
次に、本実施例に係るサーバの機能的構成について説明する。図１に示すように、サーバ１０は、ＯＳ実行制御部１１と、リモート画面制御部１２とを有する。なお、図１の例では、図１に示した機能部以外にも既知のコンピュータが有する各種の機能部、例えば各種の入力デバイスや表示デバイスなどの機能を有するものとする。
【００３１】
ＯＳ実行制御部１１は、ＯＳ（Operating  System）の実行を制御する処理部である。一態様としては、ＯＳ実行制御部１１は、後述の操作情報取得部１３により取得された操作情報から画面のスクロール指示などの各種の指示を検出する。例えば、ＯＳ実行制御部１１は、操作情報から画面上のリンクがタップされる操作を検出した場合には、タップされたリンクに対応するＵＲＬ（Uniform  Resource  Locator）を特定する。そして、ＯＳ実行制御部１１は、特定したＵＲＬに対応するページを送信する要求をＷｅｂサーバ９０に送信することにより、Ｗｅｂサーバ９０からページを取得する。そして、ＯＳ実行制御部１１は、取得したページに対応する画面の生成を画面生成部１４へ指示する。
【００３２】
また、ＯＳ実行制御部１１は、操作情報から画面のスクロール操作を検出した場合には、検出したスクロール操作によるスクロールが行われた場合にクライアント端末３０で表示される画面の生成を画面生成部１４へ指示する。なお、以下では、アプリケーションのことを「アプリ」と記載する場合がある。
【００３３】
リモート画面制御部１２は、サーバ側のリモート画面制御用アプリを通じて、リモート画面制御サービスをクライアント端末３０，４０へ提供する処理部である。このリモート画面制御部１４は、図１に示すように、操作情報取得部１３と、画面生成部１４と、更新矩形生成部１５と、圧縮部１６とを有する。さらに、サーバ側のリモート画面制御部１４は、送信制御部１７と、送信部１８と、フレームレート受信部１９と、帯域推定部２０と、タイミング決定部２１とを有する。
【００３４】
操作情報取得部１３は、クライアント端末４０を介してクライアント端末３０の操作情報を取得する処理部である。かかる操作情報の一例としては、マウスの左右のクリックを始め、ダブルクリックやドラッグ、マウスの移動操作を介して得られたマウスカーソルの移動量、マウスホイールの回転量、キーボードのうち押下されたキーの種別なども挙げられる。また、他の操作情報の一例としては、画面のスクロール操作、画面上のリンクがタップされたことなども挙げられる。
【００３５】
画面生成部１４は、ＯＳ実行制御部１１の指示にしたがって、クライアント端末３０の表示部３２に表示させる画面の画像を生成する処理部である。一態様としては、画面生成部１４は、ＯＳ実行制御部１１によりページに対応する画面の生成が指示された場合には、当該ページに対応する画面の画像を生成する。また、画面生成部１４は、ＯＳ実行制御部１１によりスクロール操作によるスクロールが行われた場合にクライアント端末３０で表示される画面の生成が指示された場合には、スクロール操作によるスクロールが行われた場合にクライアント端末３０で表示される画面の画像を生成する。そして、画面生成部１４は、図示しないフレームバッファに生成した画面の画像（フレーム）を書き込む。
【００３６】
更新矩形生成部１５は、前回のフレーム生成時にクライアント端末３０で表示させていたデスクトップ画面と、今回のフレーム生成時に図示しないフレームバッファへ書き込まれたデスクトップ画面とを比較する。そして、更新矩形生成部１５は、前回のフレームから変更があった部分の画素をつなげ合わせた上で矩形に整形した更新矩形の画像を生成し、生成した画像を圧縮部１６に送信する。なお、更新矩形生成部１５は、前回のフレームが存在しない場合には、今回のフレーム生成時に図示しないフレームバッファへ書き込まれたデスクトップ画面の画像を圧縮部１６に送信する。ここで、かかるフレームバッファは、画面生成部１４によって書き込まれたビットマップ画像を記憶する記憶デバイスである。かかるフレームバッファの一態様としては、ＶＲＡＭ（Video  Random  Access  Memory）を始めとするＲＡＭ（Random  Access  Memory）やフラッシュメモリ（flash  memory）などの半導体メモリ素子が挙げられる。なお、フレームバッファは、ハードディスク、光ディスクなどの記憶装置を採用することとしてもかまわない。
【００３７】
圧縮部１６は、更新矩形生成部１５によって送信されたデスクトップ画面の画像及び更新矩形の画像を所定の圧縮方式で圧縮（エンコード）する処理部である。一態様としては、圧縮部１６は、各画像をＧＩＦ（Graphic  Interchange  Format）やＰＮＧ（Portable  Network  Graphics）などで圧縮することによって符号化データを生成する。なお、ここでは、圧縮方式としてＧＩＦとＰＮＧを例示したが、他の方式を適用することもできる。
【００３８】
送信制御部１７は、圧縮部１６によって圧縮されたデスクトップ画面の画像及び更新矩形の画像の符号化データをクライアント端末４０に送信するように送信部１８を制御する処理部である。例えば、送信制御部１７は、デスクトップ画面の画像及び更新矩形の画像の符号化データに送信時刻を付加してクライアント端末４０に送信するように送信部１８を制御する。この際に、タイミング決定部２１により、送信タイミングが指示されている場合には、送信制御部１７は、指示された送信タイミングで、送信時刻が付加された符号化データを送信するように送信部１８を制御する。
【００３９】
送信部１８は、送信制御部１７の制御によって、送信時刻が付加されたデスクトップ画面の画像及び更新矩形の画像の符号化データをクライアント端末４０の受信部５０に送信する。ここで、送信部１８と受信部５０とは、互いに、例えば、３Ｇ、ＷｉＭＡＸ（Worldwide  Interoperability  for  Microwave  Access）、ＬＴＥ（Long  Term  Evolution）などの通信規格により通信可能である。
【００４０】
フレームレート受信部１９は、クライアント端末４０の表示部４１のフレームレートＦ１（ｆｐｓ）、及び、クライアント端末３０の表示部３２のフレームレートＦ２（ｆｐｓ）のうち、小さい方のフレームレートを取得する処理部である。例えば、フレームレート受信部１９は、クライアント端末４０のフレームレート送信部４８によりフレームレートＦ１及びフレームレートＦ２のうち小さい方のフレームレートが送信されると、送信されたフレームレートを受信する。このようにして、フレームレート受信部１９は、フレームレートＦ１及びフレームレートＦ２のうち、小さい方のフレームレートを取得する。そして、フレームレート受信部１９は、取得したフレームレートを帯域推定部２０に送信する。ここで、フレームレートＦ１は、送信部１８により送信された画像データが示す画像を表示部４１が表示した際のフレームレートである。また、フレームレートＦ２は、送信部１８により送信された画像データが示す画像を表示部３２が表示した際のフレームレートである。ここで、フレームレートＦ１の逆数１／Ｆ１は、送信部１８により送信された画像データに基づいた画像を表示部４１が表示する際の当該画像全体の描画の開始から完了までの時間を示す情報である。また、フレームレートＦ２の逆数１／Ｆ２は、送信部１８により送信された画像データに基づいた画像を表示部３２が表示する際の当該画像全体の描画の開始から完了までの時間を示す情報である。
【００４１】
帯域推定部２０は、フレームレート受信部１９から送信されたフレームレートの逆数が示す画像全体の描画の開始から完了までの時間が考慮された送信部１８と受信部５０と間の通信経路の帯域を推定する処理部である。例えば、帯域推定部２０は、画像データが送信部１８から送信されてから受信部５０で受信されるまでの時間（sec）をクライアント端末４０の時間算出部５３から取得する。そして、帯域推定部２０は、送信部１８によって送信された画像データのデータサイズ（bit）を、取得した時間とフレームレート受信部１９から送信されたフレームレートの逆数が示す時間との和（sec）で除して、通信経路の帯域を算出する。そして、帯域推定部２０は、算出した帯域を、送信部１８と受信部５０と間の通信経路の帯域として推定する。このようにして、帯域推定部２０は、フレームレート受信部１９から送信されたフレームレートの逆数が示す画像全体の描画の開始から完了までの時間が考慮された送信部１８と受信部５０と間の通信経路の帯域を推定する。
【００４２】
タイミング決定部２１は、帯域推定部２０により推定された帯域に収まるように、送信部１８により画像データがクライアント端末４０に送信されるタイミング（送信タイミング）を決定する。例えば、タイミング決定部２１は、送信部１８により前回画像データが送信されてから、送信部１８により今回送信される予定の画像データが送信されるタイミングまでの時間Ｔｎｅｗ（sec）を、下記の式（１）により算出する。
【数１】
2015097063.tif 000003
【００４３】
ここで、Ｔａｉ−１は、帯域推定部２０により推定された最新の帯域である。また、ＩＭＧｉ−１は、送信部１８により前回送信された画像データのデータサイズである。また、ＩＭＧｉは、送信部１８により今回送信される予定の画像データのデータサイズである。また、Ｔｄｘは、フレームレート受信部１９から送信された最新のフレームレートの逆数である。なお、Ｔｄｘは、フレームレート受信部１９から送信された最新のフレームレートから所定個前のフレームレートまでのそれぞれのフレームレートの逆数の平均値であってもよい。
【００４４】
そして、タイミング決定部２１は、送信部１８により前回画像データが送信されてからの経過時間が、時間Ｔｎｅｗに達した場合に、今回送信される予定の画像データを送信するように送信制御部１７に指示する。これにより、クライアント端末３０またはクライアント端末４０で、ある１つの画面または更新矩形の画像の全体の描画が完了した時点で、次に描画される画面または更新矩形の画像の画像データが受信されるように、画像データの送信間隔が調整される。
【００４５】
なお、ＯＳ実行制御部１１、リモート画面制御部１２には、各種の集積回路や電子回路を採用できる。また、リモート画面制御部１２に含まれる機能部の一部を別の集積回路や電子回路とすることもできる。例えば、集積回路としては、ＡＳＩＣ（Application  Specific  Integrated  Circuit）やＦＰＧＡ（Field  Programmable  Gate  Array）が挙げられる。また、電子回路としては、ＣＰＵ（Central  Processing  Unit）やＭＰＵ（Micro  Processing  Unit）などが挙げられる。
【００４６】
［クライアント端末３０の構成］
次に、本実施例に係るクライアント端末３０の機能的構成について説明する。図１に示すように、クライアント端末３０は、入力部３１と、表示部３２と、リモート画面制御部３３とを有する。なお、図１の例では、図１に示した機能部以外にも既知のコンピュータが有する各種の機能部、例えば音声出力部などの機能を有するものとする。
【００４７】
入力部３１は、各種の情報、例えば、リモート画面制御部３３に対する指示入力を受け付ける入力デバイスであり、一例としては、キーボードやマウスなどを適用できる。なお、表示部３２も、マウスと協働して、ポインティングデバイス機能を実現する。
【００４８】
表示部３２は、各種の情報、例えばサーバ１０から送信されたデスクトップ画面などを表示する表示デバイスであり、一例としては、モニタ、ディスプレイやタッチパネルなどを適用できる。
【００４９】
リモート画面制御部３３は、第１のクライアント側のリモート画面制御用アプリを通じて、クライアント端末４０を介してサーバ１０によるリモート画面制御サービスの提供を受ける処理部である。このリモート画面制御部３３は、図１に示すように、操作情報通知部３４と、フレームレート計測部３５と、受信部３６と、デコーダ３７と、表示制御部３８とを有する。
【００５０】
操作情報通知部３４は、入力部３１による受け付けられた操作の操作情報をクライアント端末４０へ通知する処理部である。操作情報通知部３４は、上述した各種の操作情報をクライアント端末４０へ通知する。
【００５１】
フレームレート計測部３５は、表示部３２の画面が更新されるたびに、上述したフレームレートＦ２を計測し、計測したフレームレートＦ２をクライアント端末４０へ通知する。
【００５２】
受信部３６は、サーバ１０の送信部１８により送信されたデスクトップ画面の画像及び更新矩形の画像の符号化データを受信する処理部である。例えば、受信部３６は、後述する中継部４９により送信されたデスクトップ画面の画像及び更新矩形の画像の符号化データを受信する。
【００５３】
デコーダ３７は、受信部３６によって受信されたデスクトップ画面の画像及び更新矩形の画像の符号化データをデコードする処理部である。このデコーダ３７には、サーバ１０の圧縮部１６が実行する圧縮の圧縮方式に適合するデコード方式のデコーダが採用される。
【００５４】
表示制御部３８は、デコーダ３７によってデコードされたデスクトップ画面の画像及び更新矩形の画像を表示部３２に表示させる処理部である。一態様としては、表示制御部３８は、デスクトップ画面を表示部３２の画面領域に表示させる。また、表示制御部３８は、受信部３６によって受信された更新矩形の画像の属性情報に含まれる位置および大きさに対応する表示部３２の画面領域に更新矩形のビットマップ画像を表示させる。
【００５５】
なお、リモート画面制御部３３には、各種の集積回路や電子回路を採用できる。また、リモート画面制御部３３に含まれる機能部の一部を別の集積回路や電子回路とすることもできる。例えば、集積回路としては、ＡＳＩＣやＦＰＧＡが挙げられる。また、電子回路としては、ＣＰＵやＭＰＵなどが挙げられる。
【００５６】
［クライアント端末４０の構成］
次に、本実施例に係るクライアント端末４０の機能的構成について説明する。図１に示すように、クライアント端末４０は、表示部４１と、リモート画面制御部４２とを有する。なお、図１の例では、図１に示した機能部以外にも既知のコンピュータが有する各種の機能部、例えば音声出力部などの機能を有するものとする。
【００５７】
表示部４１は、各種の情報、例えばサーバ１０から送信されたデスクトップ画面などを表示する表示デバイスであり、一例としては、モニタ、ディスプレイやタッチパネルなどを適用できる。
【００５８】
リモート画面制御部４２は、第２のクライアント側のリモート画面制御用アプリを通じて、サーバ１０によるリモート画面制御サービスの提供を受ける処理部である。このリモート画面制御部４２は、図１に示すように、操作情報受信部４３と、操作情報通知部４４と、操作判断部４５と、フレームレート受信部４６と、フレームレート計測部４７と、フレームレート送信部４８と、中継部４９と、受信部５０とを有する。また、リモート画面制御部４２は、デコーダ５１と、表示制御部５２と、時間算出部５３とを有する。
【００５９】
操作情報受信部４３は、操作情報通知部３４により通知された操作情報を受信する処理部である。操作情報受信部４３は、受信した操作情報を操作情報通知部４４及び操作判断部４５に送信する。
【００６０】
操作情報通知部４４は、操作情報受信部４３により受信された操作情報をサーバ１０へ通知する処理部である。操作情報通知部４４は、各種の操作情報をサーバ１０へ通知する。
【００６１】
操作判断部４５は、クライアント端末３０が利用者により操作されたか否かを判断する処理部である。例えば、操作判断部４５は、操作情報受信部４３によって送信された操作情報を受信すると、クライアント端末３０が利用者により操作されたと判断する。そして、クライアント端末３０が利用者により操作されたと判断すると、操作判断部４５は、フレームレートＦ１及びフレームレートＦ２のうち、小さい方のフレームレートをサーバ１０に送信するようにフレームレート送信部４８に指示する。
【００６２】
フレームレート受信部４６は、フレームレート計測部３５により通知されたフレームレートＦ２を受信する処理部である。フレームレート受信部４６は、受信したフレームレートＦ２をフレームレート送信部４８に送信する。
【００６３】
フレームレート計測部４７は、表示部４１の画面が更新されるたびに、上述したフレームレートＦ１を計測し、計測したフレームレートＦ１をフレームレート送信部４８に送信する。
【００６４】
フレームレート送信部４８は、フレームレートＦ１及びフレームレートＦ２のうち、小さい方のフレームレートをサーバ１０に送信する処理部である。例えば、フレームレート送信部４８は、フレームレートＦ１及びフレームレートＦ２のうち、小さい方のフレームレートをサーバ１０に送信するように指示されると、次の処理を行う。すなわち、フレームレート送信部４８は、フレームレート受信部４６により送信された最新のフレームレートＦ２と、フレームレート計測部４７により送信された最新のフレームレートＦ１とを比較し、値が小さい方のフレームレートをサーバ１０に送信する。ここで、クライアント端末３０の各種の処理能力が、クライアント端末４０の各種の処理能力よりも低く、フレームレートについてもクライアント端末３０の方が小さい場合には、フレームレート送信部４８は、次の処理を行う。すなわち、フレームレート送信部４８は、フレームレートＦ１及びフレームレートＦ２のうち、フレームレートＦ２をサーバ１０に送信する。
【００６５】
中継部４９は、受信部５０により受信された各種の符号化データを中継し、クライアント端末３０へ送信する処理部である。例えば、中継部４９は、受信部５０によりデスクトップ画面の画像または更新矩形の画像の符号化データが受信された場合には、受信された符号化データをクライアント端末３０の受信部３６に送信する。
【００６６】
受信部５０は、サーバ１０の送信部１８により送信されたデスクトップ画面の画像及び更新矩形の画像の符号化データを受信する処理部である。受信部５０は、サーバ１０の送信部１８により送信されたデスクトップ画面の画像または更新矩形の画像の符号化データを受信すると、受信した符号化データを中継部４９及びデコーダ５１に送信する。
【００６７】
デコーダ５１は、受信部５０によって受信されたデスクトップ画面の画像及び更新矩形の画像の符号化データをデコードする処理部である。このデコーダ５１には、サーバ１０の圧縮部１６が実行する圧縮の圧縮方式に適合するデコード方式のデコーダが採用される。
【００６８】
表示制御部５２は、デコーダ５１によってデコードされたデスクトップ画面の画像及び更新矩形の画像を表示部４１に表示させる処理部である。一態様としては、表示制御部５２は、デスクトップ画面を表示部４１の画面領域に表示させる。また、表示制御部５２は、受信部５０によって受信された更新矩形の画像の属性情報に含まれる位置および大きさに対応する表示部４１の画面領域に更新矩形のビットマップ画像を表示させる。
【００６９】
時間算出部５３は、画像データが送信部１８から送信されてから受信部５０で受信されるまでの時間（sec）を算出する。例えば、時間算出部５３は、画像データが受信部５０で受信されるたびに、次の処理を行う。すなわち、時間算出部５３は、受信部５０が画像データを受信した時刻（受信時刻）から、受信部５０が受信した画像データに付加された送信時刻を減じることにより、画像データが送信されてから受信されるまでの時間を算出する。そして、時間算出部５３は、時間を算出するたびに、算出した時間を帯域推定部２０に送信する。
【００７０】
なお、リモート画面制御部４２には、各種の集積回路や電子回路を採用できる。また、リモート画面制御部４２に含まれる機能部の一部を別の集積回路や電子回路とすることもできる。例えば、集積回路としては、ＡＳＩＣやＦＰＧＡが挙げられる。また、電子回路としては、ＣＰＵやＭＰＵなどが挙げられる。
【００７１】
次に、本実施例に係るシンクライアントシステム１の各装置間のデータの流れの一例について説明する。図２は、本実施例に係るシンクライアントシステムの各装置間のデータの流れの一例を示す図である。なお、図２の例では、クライアント端末３０の表示部３２のフレームレートＦ２のほうが、クライアント端末４０の表示部４１のフレームレートＦ１よりも小さい場合を想定する。また、クライアント端末３０及びクライアント端末４０間の通信経路の帯域は、非常に広く、クライアント端末３０及びクライアント端末４０間では、データ送信の遅延時間が無視できる程度に小さいものとする。
【００７２】
図２に示すように、サーバ１０は、デスクトップ画面の画像データ（ｉ番目に送信する画像データ；ｉは、画像データを送信する順番を示す数値）をクライアント端末４０に送信する（Ｓ１）。なお、画像データには、符号化データが含まれるものとする。クライアント端末４０は、デスクトップ画面の画像データを受信すると、受信した画像データをクライアント端末４０に送信する（Ｓ２）。クライアント端末３０は、デスクトップ画面の画像データを受信すると、受信した画像データに基づいたデスクトップ画面を表示部３２に表示させる（Ｓ３）。ここで、図２の例では、表示部３２にデスクトップ画面全体を描画する際に、描画の開始から完了まで時間Ｔ１かかったものとする。そして、クライアント端末３０は、フレームレートＦ２（１／Ｔ１）をクライアント端末４０に送信する（Ｓ４）。
【００７３】
ここで、表示部３２においてデスクトップ画面全体の描画が完了する時刻に、更新矩形の画像データ（ｉ＋１番目に送信する画像データ）がクライアント端末３０で受信されるように、シンクライアントシステム１では次の処理が行われる。すなわち、サーバ１０から更新矩形の画像データ（ｉ＋１番目に送信する画像データ）がクライアント端末４０に送信され（Ｓ５）、クライアント端末４０から更新矩形の画像データがクライアント端末３０に送信される（Ｓ６）。これにより、クライアント端末３０は、クライアント端末４０から送信された更新矩形の画像データに基づいた画像の描画を行う（Ｓ７）。
【００７４】
そして、クライアント端末４０は、フレームレートＦ１とフレームレートＦ２とを比較し、小さい方のフレームレートＦ２をサーバ１０に通知する（Ｓ８）。そして、サーバ１０は、上述の時間Ｔｎｅｗを算出し、ｉ＋１番目の画像データが送信されてからの経過時間が、時間Ｔｎｅｗに達した場合に、更新矩形の画像の画像データ（ｉ＋２番目に送信する画像データ）をクライアント端末４０に送信する（Ｓ９）。そして、クライアント端末４０は、クライアント端末３０において更新矩形の画像データに基づいた画像の描画が完了した時点で、更新矩形の画像の画像データ（ｉ＋２番目に送信する画像データ）がクライアント端末３０で受信されるように次の処理を行う。すなわち、クライアント端末４０は、かかる画像データをクライアント端末３０に送信する（Ｓ１０）。ここで、図２の例では、表示部３２に更新矩形の画像データに基づいた画像全体を描画する際に、描画の開始から完了まで時間Ｔ２かかったものとする。
【００７５】
［処理の流れ］
次に、本実施例に係るクライアント端末３０が実行する処理の流れについて説明する。図３は、実施例に係るクライアント端末３０が実行する処理の手順を示すフローチャートである。
【００７６】
図３に示すように、操作情報通知部３４は、入力部３１によって操作が受け付けられたか否かを判定する（Ｓ１０１）。操作が受け付けられていない場合（Ｓ１０１；Ｎｏ）には、操作情報通知部３４は、再びＳ１０１の判定を行う。一方、操作が受け付けられた場合（Ｓ１０１；Ｙｅｓ）には、操作情報通知部３４は、受け付けられた操作の操作情報をクライアント端末４０へ通知する（Ｓ１０２）。
【００７７】
受信部３６は、サーバ１０の送信部１８により送信されたデスクトップ画面の画像の符号化データまたは更新矩形の画像の符号化データを受信したか否かを判定する（Ｓ１０３）。受信していない場合（Ｓ１０３；Ｎｏ）には、受信部３６は、再びＳ１０３の判定を行う。一方、受信した場合（Ｓ１０３；Ｙｅｓ）には、デコーダ３７は、受信部３６によって受信されたデスクトップ画面の画像または更新矩形の画像の符号化データをデコードする（Ｓ１０４）。
【００７８】
そして、表示制御部３８は、デコーダ３７によってデコードされたデスクトップ画面の画像または更新矩形の画像を表示部３２に表示させる（Ｓ１０５）。そして、フレームレート計測部３５は、上述したフレームレートＦ２を計測し、計測したフレームレートＦ２をクライアント端末４０へ通知し（Ｓ１０６）、Ｓ１０１に戻る。
【００７９】
次に、本実施例に係るクライアント端末４０が実行するフレームレート送信処理の流れについて説明する。図４は、実施例に係るクライアント端末４０が実行するフレームレート送信処理の手順を示すフローチャートである。
【００８０】
図４に示すように、操作情報受信部４３は、操作情報通知部３４により通知された操作情報を受信したか否かを判定する（Ｓ２０１）。受信していない場合（Ｓ２０１；Ｎｏ）には、操作情報受信部４３は、再びＳ２０１の判定を行う。一方、受信した場合（Ｓ２０１；Ｙｅｓ）には、操作情報受信部４３は、受信した操作情報を操作情報通知部４４及び操作判断部４５に送信する（Ｓ２０２）。
【００８１】
そして、操作情報通知部４４は、操作情報受信部４３により送信された操作情報をサーバ１０へ通知する（Ｓ２０３）。
【００８２】
そして、操作判断部４５は、操作情報受信部４３によって送信された操作情報を受信すると、クライアント端末３０が利用者により操作されたと判断し、次の処理を行う。すなわち、操作判断部４５は、フレームレートＦ１及びフレームレートＦ２のうち、小さい方のフレームレートをサーバ１０に送信するようにフレームレート送信部４８に指示する（Ｓ２０４）。
【００８３】
フレームレート送信部４８は、フレームレート受信部４６により送信された最新のフレームレートＦ２と、フレームレート計測部４７により送信された最新のフレームレートＦ１とを比較し、値が小さい方のフレームレートをサーバ１０に送信する（Ｓ２０５）。そして、Ｓ２０１に戻る。
【００８４】
次に、本実施例に係るクライアント端末４０が実行する表示制御処理の流れについて説明する。図５は、実施例に係るクライアント端末４０が実行する表示制御処理の手順を示すフローチャートである。
【００８５】
図５に示すように、受信部５０は、サーバ１０の送信部１８により送信されたデスクトップ画面の画像または更新矩形の画像の符号化データを受信したか否かを判定する（Ｓ３０１）。受信していない場合（Ｓ３０１；Ｎｏ）には、受信部５０は、再びＳ３０１の判定を行う。一方、受信した場合（Ｓ３０１；Ｙｅｓ）には、受信部５０は、受信したデスクトップ画面の画像または更新矩形の画像の符号化データを中継部４９及びデコーダ５１に送信する（Ｓ３０２）。
【００８６】
中継部４９は、受信部５０により送信された符号化データをクライアント端末３０の受信部３６に送信する（Ｓ３０３）。
【００８７】
デコーダ５１は、受信部５０により送信されたデスクトップ画面の画像及び更新矩形の画像の符号化データをデコードする（Ｓ３０４）。そして、表示制御部５２は、デコーダ５１によってデコードされたデスクトップ画面の画像または更新矩形の画像を表示部４１に表示させる（Ｓ３０５）。
【００８８】
そして、時間算出部５３は、画像データが送信部１８から送信されてから受信部５０で受信されるまでの時間（sec）を算出し、算出した時間を帯域推定部２０に送信し（Ｓ３０６）、Ｓ３０１に戻る。
【００８９】
次に、本実施例に係るサーバ１０が実行する画面送信処理の流れについて説明する。図６は、実施例に係るサーバ１０が実行する画面送信処理の手順を示すフローチャートである。
【００９０】
図６に示すように、操作情報取得部１３は、クライアント端末４０の操作情報通知部４４から操作情報が通知されたか否かを判定する（Ｓ４０１）。通知されていない場合（Ｓ４０１；Ｎｏ）には、操作情報取得部１３は、再びＳ４０１の判定を行う。一方、通知された場合（Ｓ４０１；Ｙｅｓ）には、操作情報取得部１３は、操作情報通知部４４から通知された操作情報を取得する（Ｓ４０２）。
【００９１】
そして、ＯＳ実行制御部１１は、操作情報取得部１３により取得された操作情報から画面のスクロール指示などの各種の指示を検出する（Ｓ４０３）。例えば、ＯＳ実行制御部１１は、操作情報から画面上のリンクがタップされる操作を検出した場合には、タップされたリンクに対応するＵＲＬを特定する。そして、ＯＳ実行制御部１１は、特定したＵＲＬに対応するページを送信する要求をＷｅｂサーバ９０に送信することにより、Ｗｅｂサーバ９０からページを取得する。そして、ＯＳ実行制御部１１は、取得したページに対応する画面の生成を画面生成部１４へ指示する。また、ＯＳ実行制御部１１は、操作情報から画面のスクロール操作を検出した場合には、検出したスクロール操作によるスクロールが行われた場合にクライアント端末３０で表示される画面の生成を画面生成部１４へ指示する。
【００９２】
そして、画面生成部１４は、ＯＳ実行制御部１１の指示にしたがって、クライアント端末３０の表示部３２に表示させる画面の画像を生成し、図示しないフレームバッファに生成した画面の画像（フレーム）を書き込む（Ｓ４０４）。
【００９３】
そして、更新矩形生成部１５は、前回のフレーム生成時にクライアント端末３０で表示させていたデスクトップ画面と、今回のフレーム生成時に図示しないフレームバッファへ書き込まれたデスクトップ画面とを比較する。そして、更新矩形生成部１５は、前回のフレームから変更があった部分の画素をつなげ合わせた上で矩形に整形した更新矩形の画像を生成し、生成した画像を圧縮部１６に送信する（Ｓ４０５）。なお、更新矩形生成部１５は、前回のフレームが存在しない場合には、今回のフレーム生成時に図示しないフレームバッファへ書き込まれたデスクトップ画面の画像を圧縮部１６に送信する。
【００９４】
そして、圧縮部１６は、更新矩形生成部１５によって送信されたデスクトップ画面の画像及び更新矩形の画像を所定の圧縮方式で圧縮（エンコード）する（Ｓ４０６）。
【００９５】
そして、送信制御部１７は、デスクトップ画面の画像及び更新矩形の画像の符号化データに送信時刻を付加してクライアント端末４０に送信するように送信部１８を制御する。この際に、タイミング決定部２１により、送信タイミングが指示されている場合には、送信制御部１７は、指示された送信タイミングで、送信時刻が付加された符号化データを送信するように送信部１８を制御する（Ｓ４０７）。
【００９６】
送信部１８は、送信制御部１７の制御によって、送信時刻が付加されたデスクトップ画面の画像及び更新矩形の画像の符号化データをクライアント端末４０の受信部５０に送信し（Ｓ４０８）、Ｓ４０１に戻る。
【００９７】
次に、本実施例に係るサーバ１０が実行するタイミング決定処理の流れについて説明する。図７は、実施例に係るサーバ１０が実行するタイミング決定処理の手順を示すフローチャートである。
【００９８】
図７に示すように、帯域推定部２０は、時間算出部５３から送信された、画像データが送信部１８から送信されてから受信部５０で受信されるまでの時間（sec）を受信したか否かを判定する（Ｓ５０１）。受信していない場合（Ｓ５０１；Ｎｏ）には、帯域推定部２０は、再びＳ５０１の判定を行う。一方、受信した場合（Ｓ５０１；Ｙｅｓ）には、帯域推定部２０は、送信部１８によって送信された画像データのデータサイズ（bit）を、受信した時間とフレームレート受信部１９から送信されたフレームレートの逆数が示す時間との和（sec）で除して、通信経路の帯域を算出する。そして、帯域推定部２０は、算出した帯域を、送信部１８と受信部５０と間の通信経路の帯域として推定する（Ｓ５０２）。
【００９９】
タイミング決定部２１は、送信部１８により前回画像データが送信されてから、送信部１８により今回送信される予定の画像データが送信されるタイミングまでの時間Ｔｎｅｗ（sec）を、上記の式（１）により算出する（Ｓ５０３）。
【０１００】
そして、タイミング決定部２１は、送信部１８により前回画像データが送信されてからの経過時間が、時間Ｔｎｅｗに達した場合に、今回送信される予定の画像データを送信するように送信制御部１７に指示し（Ｓ５０４）、Ｓ５０１に戻る。
【０１０１】
上述してきたように、本実施例に係るサーバ１０は、クライアント端末３０で、ある１つの画面または更新矩形の画像の全体の描画が完了した時点で、次に描画される画面または更新矩形の画像の画像データが受信されるように、画像データの送信間隔を調整する。これにより、クライアント端末３０において、ある画面または更新矩形の画像の全体の描画が完了する前に、次々と画像データがクライアント端末４０を介してサーバ１０から送信され、描画する画像データが蓄積されるような事態の発生を抑制することができる。この結果、クライアント端末３０では、利用者によるスクロール操作が終了したにも関わらず、画面のスクロールが継続されてしまうような事態の発生を抑制することができる。したがって、サーバ１０によれば、クライアント端末３０における操作性の悪化を抑制することができる。
【０１０２】
また、サーバ１０は、クライアント端末３０で、ある１つの画面または更新矩形の画像の全体の描画が完了した時点で、次に描画される画面または更新矩形の画像の画像データが受信されるように、画像データの送信間隔を調整する。それゆえ、サーバ１０によれば、クライアント端末３０で、ある１つの画面または更新矩形の画像の全体の描画が完了してから、次に描画される画像データが受信されるまでの間隔が長くなるような事態の発生を抑制する。したがって、サーバ１０によれば、クライアント端末３０における画像の描画の遅延を抑制することができる。
【０１０３】
また、本実施例では、クライアント端末４０は、第１のクライアント側のリモート画面制御用アプリが実行する処理に加え、画像データの中継、小さい方のフレームレートの送信などの処理を行うだけである。それゆえ、本実施例では、クライアント端末４０は、第１のクライアント側のリモート画面制御用アプリが実行する処理と同程度の処理を行うだけで、クライアント端末３０と連携することができる。したがって、本実施例に係るシンクライアントシステム１では、クライアント端末４０の処理負荷を大きくせずに、クライアント端末４０とクライアント端末３０とを連携させることができる。
【０１０４】
また、クライアント端末３０は、サーバ１０との通信機能を持たずとも、サーバ１０からのサービスの提供を受けることができるので、クライアント端末３０の低コスト化をも図ることができる。
【０１０５】
さて、これまで開示の装置に関する実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。
【０１０６】
例えば、実施例において説明した各処理のうち、自動的に行われるものとして説明した処理の全部または一部を手動的に行うこともできる。また、実施例において説明した各処理のうち、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。
【０１０７】
また、各種の負荷や使用状況などに応じて、実施例において説明した各処理の各ステップでの処理を任意に細かくわけたり、あるいはまとめたりすることができる。また、ステップを省略することもできる。
【０１０８】
また、各種の負荷や使用状況などに応じて、実施例において説明した各処理の各ステップでの処理の順番を変更できる。
【０１０９】
また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的状態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
【０１１０】
［画面制御プログラム］
また、上記の実施例で説明した各種の処理は、予め用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。そこで、以下では、図８を用いて、上記の実施例と同様の機能を有する画面制御プログラムを実行するコンピュータの一例について説明する。
【０１１１】
図８は、実施例１及び実施例２に係る画面制御プログラムを実行するコンピュータの一例について説明するための図である。図８に示すように、コンピュータ１００は、操作部１１０ａと、スピーカ１１０ｂと、カメラ１１０ｃと、ディスプレイ１２０と、通信部１３０とを有する。さらに、このコンピュータ１００は、ＣＰＵ１５０と、ＲＯＭ１６０と、ＨＤＤ１７０と、ＲＡＭ１８０とを有する。これら１１０〜１８０の各部はバス１４０を介して接続される。
【０１１２】
ＨＤＤ１７０には、図８に示すように、上記の実施例で示したリモート画面制御部１２またはリモート画面制御部１２及びＯＳ実行制御部１１と同様の機能を発揮する画面制御プログラム１７０ａが予め記憶される。この画面制御プログラム１７０ａについては、図１に示した各々のリモート画面制御部１２の各構成要素と同様、適宜統合又は分離しても良い。すなわち、ＨＤＤ１７０に格納される各データは、常に全てのデータがＨＤＤ１７０に格納される必要はなく、処理に必要なデータのみがＨＤＤ１７０に格納されれば良い。
【０１１３】
そして、ＣＰＵ１５０が、画面制御プログラム１７０ａをＨＤＤ１７０から読み出してＲＡＭ１８０に展開する。これによって、画面制御プログラム１７０ａは、画面制御プロセスとして機能する。この画面制御プロセスは、ＨＤＤ１７０から読み出した各種データを適宜ＲＡＭ１８０上の自身に割り当てられた領域に展開し、この展開した各種データに基づいて各種処理を実行する。なお、画面制御プロセスは、図１に示したリモート画面制御部１２にて実行される処理を含む。また、ＣＰＵ１５０上で仮想的に実現される各処理部は、常に全ての処理部がＣＰＵ１５０上で動作する必要はなく、処理に必要な処理部のみが仮想的に実現されれば良い。
【０１１４】
なお、上記の画面制御プログラム１７０ａについては、必ずしも最初からＨＤＤ１７０やＲＯＭ１６０に記憶させておく必要はない。例えば、コンピュータ１００に挿入されるフレキシブルディスク、いわゆるＦＤ、ＣＤ−ＲＯＭ、ＤＶＤディスク、光磁気ディスク、ＩＣカードなどの「可搬用の物理媒体」に各プログラムを記憶させる。そして、コンピュータ１００がこれらの可搬用の物理媒体から各プログラムを取得して実行するようにしてもよい。また、公衆回線、インターネット、ＬＡＮ、ＷＡＮなどを介してコンピュータ１００に接続される他のコンピュータまたはサーバ装置などに各プログラムを記憶させておき、コンピュータ１００がこれらから各プログラムを取得して実行するようにしてもよい。
【符号の説明】
【０１１５】
１０    サーバ
１１    ＯＳ実行制御部
１２    リモート画面制御部
１３    操作情報取得部
１４    画面生成部
１５    更新矩形生成部
１６    圧縮部
１７    送信制御部
１８    送信部
１９    フレームレート受信部
２０    帯域推定部
２１    タイミング決定部
【図１】
2015097063.tif 000004
【図２】
2015097063.tif 000005
【図３】
2015097063.tif 000006
【図４】
2015097063.tif 000007
【図５】
2015097063.tif 000008
【図６】
2015097063.tif 000009
【図７】
2015097063.tif 000010
【図８】
2015097063.tif 000011