(57)【要約】【課題】伝送遅延を抑制させることができる情報処理装置等を提供する。【解決手段】情報処理装置は、画像メモリと、描画部と、検出部と、分割部と、生成部と、変更部と、取得部と、選択部とを有する。画像メモリは、端末装置に表示させる画像を記憶する。描画部は、処理結果を画像メモリに描画する。検出部は、画像メモリに描画される画像の更新領域を検出する。分割部は、可用帯域が所定値以下である場合に、検出された更新領域の画像を分割する。生成部は、画像が分割された分割データを送信する場合に、各分割データ間にウェイトを挿入してウェイト挿入データを生成する。変更部は、ウェイトを変更する。取得部は、ウェイト挿入データを端末装置に送信して、ウェイトごとの可用帯域および表示更新速度を取得する。選択部は、ウェイト未挿入時に比べて可用帯域が増加し、かつ、表示更新速度が向上するウェイトがある場合に、当該ウェイトを選択する。【選択図】図１
2015069240.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介して接続された端末装置に表示させる表示用の画像を記憶する画像メモリと、
ソフトウエアの処理結果を前記画像メモリに描画する描画部と、
前記画像メモリに描画される画像のフレーム間で更新があった更新領域を検出する検出部と、
前記端末装置との通信に関する可用帯域が所定値以下である場合に、前記検出部によって検出された更新領域の画像を分割する分割部と、
前記更新領域の画像が分割された分割データを送信する場合に、各分割データの間にウェイトを挿入してウェイト挿入データを生成する生成部と、
前記ウェイトを変更する変更部と、
変更された前記ウェイトごとに、前記ウェイト挿入データを前記端末装置に送信することで、前記ウェイトごとの前記可用帯域および前記ウェイト挿入データの表示間隔を示す表示更新速度を取得する取得部と、
前記ウェイトのうち、前記可用帯域が前記ウェイト未挿入時に比べて増加し、かつ、前記表示更新速度が前記ウェイト未挿入時に比べて向上する前記ウェイトがある場合に、当該ウェイトを選択する選択部と、
を有することを特徴とする情報処理装置。
【請求項２】
前記選択部は、前記可用帯域が所定値以下ではない場合に、前記ウェイトをゼロとすることを特徴とする請求項１に記載の情報処理装置。
【請求項３】
情報処理装置が、
ネットワークを介して接続された端末装置に表示させる表示用の画像を画像メモリに記憶し、
ソフトウエアの処理結果を前記画像メモリに描画し、
前記画像メモリに描画される画像のフレーム間で更新があった更新領域を検出し、
前記端末装置との通信に関する可用帯域が所定値以下である場合に、検出された更新領域の画像を分割し、
前記更新領域の画像が分割された分割データを送信する場合に、各分割データの間にウェイトを挿入してウェイト挿入データを生成し、
前記ウェイトを変更し、
変更された前記ウェイトごとに、前記ウェイト挿入データを前記端末装置に送信することで、前記ウェイトごとの前記可用帯域および前記ウェイト挿入データの表示間隔を示す表示更新速度を取得し、
前記ウェイトのうち、前記可用帯域が前記ウェイト未挿入時に比べて増加し、かつ、前記表示更新速度が前記ウェイト未挿入時に比べて向上する前記ウェイトがある場合に、当該ウェイトを選択する、
処理を実行することを特徴とする情報処理方法。
【請求項４】
情報処理装置に、
ネットワークを介して接続された端末装置に表示させる表示用の画像を画像メモリに記憶し、
ソフトウエアの処理結果を前記画像メモリに描画し、
前記画像メモリに描画される画像のフレーム間で更新があった更新領域を検出し、
前記端末装置との通信に関する可用帯域が所定値以下である場合に、検出された更新領域の画像を分割し、
前記更新領域の画像が分割された分割データを送信する場合に、各分割データの間にウェイトを挿入してウェイト挿入データを生成し、
前記ウェイトを変更し、
変更された前記ウェイトごとに、前記ウェイト挿入データを前記端末装置に送信することで、前記ウェイトごとの前記可用帯域および前記ウェイト挿入データの表示間隔を示す表示更新速度を取得し、
前記ウェイトのうち、前記可用帯域が前記ウェイト未挿入時に比べて増加し、かつ、前記表示更新速度が前記ウェイト未挿入時に比べて向上する前記ウェイトがある場合に、当該ウェイトを選択する、
処理を実行させることを特徴とする情報処理プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、情報処理方法および情報処理プログラムに関する。
【背景技術】
【０００２】
シンクライアントというシステムが知られている。シンクライアントシステムでは、クライアント端末に最低限の機能しか持たせず、サーバでアプリケーションやファイルなどのリソースを管理するようにシステムが構築される。
【０００３】
かかるシンクライアントシステムは、実際にはサーバが処理を実行した処理結果やサーバが保持するデータをクライアント端末に表示させつつも、あたかもクライアント端末が主体となって処理を実行したり、データを保持したりしているかのように振る舞う。
【０００４】
このように、サーバおよびクライアント端末間でクライアント端末に表示させる画面データを伝送する場合には、操作に伴って画面更新が発生する。シンクライアントシステムで画面更新が発生すると、サーバからクライアント端末に画面更新前後の差分の画面データが送信される。ここで、例えば、３Ｄ−ＣＡＤ（three  Dimensional  −  Computer  Aided  Design）等で、対象物に対して回転操作を行った場合には、画面内の多くの部分で更新が発生し、差分の画面データがクライアント端末に対して一度に送信される。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００８−２１０１１３号公報
【特許文献２】特開２００２−２６９８６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、上記の技術では、伝送遅延が発生する場合がある。
【０００７】
例えば、画面内の多くの部分で更新が発生すると、クライアント端末に対して多くの差分の画面データが一度に送信されることになる。つまり、クライアント端末に対して、所定の時間内に差分の画面データがバースト送信されることになる。これによって、サーバおよびクライアント端末間のネットワークでは、転送量がネットワーク機器の処理能力を超えてしまい、パケットロスが発生する。この結果、パケットの再送による伝送遅延が発生して表示更新速度が低下する場合がある。
【０００８】
一つの側面では、本発明は、伝送遅延を抑制させることができる情報処理装置、情報処理方法および情報処理プログラムを提供することにある。
【課題を解決するための手段】
【０００９】
一つの態様では、情報処理装置は、画像メモリと、描画部と、検出部と、分割部と、生成部と、変更部と、取得部と、選択部とを有する。当該情報処理装置の画像メモリは、ネットワークを介して接続された端末装置に表示させる表示用の画像を記憶する。当該情報処理装置の描画部は、ソフトウエアの処理結果を前記画像メモリに描画する。当該情報処理装置の検出部は、前記画像メモリに描画される画像のフレーム間で更新があった更新領域を検出する。当該情報処理装置の分割部は、前記端末装置との通信に関する可用帯域が所定値以下である場合に、前記検出部によって検出された更新領域の画像を分割する。当該情報処理装置の生成部は、前記更新領域の画像が分割された分割データを送信する場合に、各分割データの間にウェイトを挿入してウェイト挿入データを生成する。当該情報処理装置の変更部は、前記ウェイトを変更する。当該情報処理装置の取得部は、変更された前記ウェイトごとに、前記ウェイト挿入データを前記端末装置に送信することで、前記ウェイトごとの前記可用帯域および前記ウェイト挿入データの表示間隔を示す表示更新速度を取得する。当該情報処理装置の選択部は、前記ウェイトのうち、前記可用帯域が前記ウェイト未挿入時に比べて増加し、かつ、前記表示更新速度が前記ウェイト未挿入時に比べて向上する前記ウェイトがある場合に、当該ウェイトを選択する。
【発明の効果】
【００１０】
伝送遅延を抑制させることができる。
【図面の簡単な説明】
【００１１】
【図１】図１は、実施例のシンクライアントシステムの構成の一例を示すブロック図である。
【図２】図２は、画像データの送信時における使用帯域の一例を示す説明図である。
【図３】図３は、バースト送信の一例を示す説明図である。
【図４】図４は、ウェイトの有無による使用帯域の一例を示す説明図である。
【図５】図５は、実施例のシンクライアントシステムの動作の一例を示すシーケンス図である。
【図６】図６は、サーバ装置の調整処理の一例を示すフローチャートである。
【図７】図７は、ウェイト、可用帯域および表示ＦＰＳの関係の一例を示す説明図である。
【図８】図８は、各ウェイトの値による使用帯域の変化の一例を示す説明図である。
【図９】図９は、情報処理プログラムを実行するコンピュータの一例を示す説明図である。
【発明を実施するための形態】
【００１２】
以下、図面に基づいて、本願の開示する情報処理装置、情報処理方法および情報処理プログラムの実施例を詳細に説明する。なお、本実施例により、開示技術が限定されるものではない。また、以下の実施例は、矛盾しない範囲で適宜組みあわせてもよい。
【実施例１】
【００１３】
［システム構成］
まず、本実施例に係るシンクライアントシステムの構成について説明する。図１は、実施例のシンクライアントシステムの構成の一例を示すブロック図である。図１に示すシンクライアントシステム１は、クライアント端末２００が表示する画面をリモートでサーバ装置１００に制御させるものである。つまり、シンクライアントシステム１は、実際にはサーバ装置１００が実行した処理結果や保持するデータをクライアント端末２００に表示させつつも、あたかもクライアント端末２００が主体となって処理を実行したり、データを保持しているかのように振る舞う。
【００１４】
図１に示すシンクライアントシステム１は、サーバ装置１００と、クライアント端末２００とを有する。なお、図１の例では、１つのサーバ装置１００に対し、１つのクライアント端末２００を接続する場合を図示したが、任意の数のクライアント端末を接続できる。
【００１５】
これらサーバ装置１００およびクライアント端末２００は、所定のネットワークを介して、相互に通信可能に接続される。かかるネットワークには、有線または無線を問わず、インターネット、ＬＡＮ（Local  Area  Network）やＶＰＮ（Virtual  Private  Network）などの任意の種類の通信網を採用できる。なお、サーバ装置１００およびクライアント端末２００間の通信プロトコルには、一例として、ＶＮＣにおけるＲＦＢ（Remote  Frame  Buffer）プロトコルを採用する場合を想定する。
【００１６】
サーバ装置１００は、情報処理装置の一例であり、クライアント端末２００に表示させる画面をリモートで制御するサービスを提供するコンピュータである。このサーバ装置１００には、サーバ向けのリモート画面制御用のアプリケーションがインストールまたはプリインストールされる。なお、以下では、サーバ向けのリモート画面制御用のアプリケーションのことを「サーバ側リモート画面制御用アプリ」と記載する場合がある。
【００１７】
このサーバ側リモート画面制御用アプリは、基本機能として、リモート画面制御サービスを提供する機能を有する。一態様としては、サーバ側リモート画面制御用アプリは、クライアント端末２００における操作情報を取得した上でその操作により要求された処理を自装置で動作するアプリケーションに実行させる。そして、サーバ側リモート画面制御用アプリは、アプリケーションにより実行された処理結果を表示するための画面を生成した上でその画面をクライアント端末２００へ送信する。このとき、サーバ側リモート画面制御用アプリは、今回の画面生成の前にクライアント端末２００で表示させていたビットマップ画像との間で変更があった部分の画素が集まった領域、すなわち更新矩形の画像を送信する。なお、更新部分の画像は矩形の画像に限られず、矩形以外の形状であってもよい。
【００１８】
サーバ装置１００は、クライアント端末２００との間のネットワークにおいて、使用可能な帯域である可用帯域が所定値以下であるか否かを判定する。サーバ装置１００は、可用帯域が所定値以下である場合には、クライアント端末２００に送信する差分の画面の画像データを所定数に分割する。サーバ装置１００は、分割した各分割データ間に間隔を空けるためウェイトを挿入し、ウェイトを挿入した画像データをクライアント端末２００に対して送信する。サーバ装置１００は、クライアント端末２００で算出された可用帯域および表示更新速度（以下、表示ＦＰＳ（Frames  Per  Second）という）に基づいてウェイトを調整し、可用帯域が増加し、かつ、表示ＦＰＳが向上するウェイトを決定する。サーバ装置１００は、可用帯域が所定値以下である場合には、クライアント端末２００に対して決定したウェイトを挿入して画像データを送信する。
【００１９】
クライアント端末２００は、端末装置の一例であり、サーバ装置１００によるリモート画面制御サービスの提供を受ける側のコンピュータである。かかるクライアント端末２００の一例としては、パーソナルコンピュータ（personal  computer）などの固定端末を採用することができる。また、クライアント端末２００の他の例としては、タブレット端末、スマートフォン、携帯電話機、ＰＨＳ（Personal  Handyphone  System）やＰＤＡ（Personal  Digital  Assistant）などの移動体端末を採用することができる。このクライアント端末２００には、クライアント向けのリモート画面制御用のアプリケーションがインストールまたはプリインストールされる。なお、以下では、クライアント向けのリモート画面制御用のアプリケーションのことを「クライアント側リモート画面制御用アプリ」と記載する場合がある。
【００２０】
このクライアント側リモート画面制御用アプリは、マウスやキーボードなどの各種の入力デバイスを介して受け付けた操作情報をサーバ装置１００へ通知する機能を有する。一態様としては、クライアント側リモート画面制御用アプリは、マウスの左右のクリックを始め、ダブルクリックやドラッグ、マウスの移動操作を介して得られたマウスカーソルの移動量などを操作情報として通知する。他の一例としては、クライアント側リモート画面制御用アプリは、マウスホイールの回転量、キーボードのうち押下されたキーの種別なども操作情報として通知する。
【００２１】
さらに、クライアント側リモート画面制御用アプリは、サーバ装置１００から受信した画像を所定の表示部に表示させる機能を有する。一態様としては、クライアント側リモート画面制御用アプリは、サーバ装置１００から更新矩形のビットマップ画像を受信した場合には、更新矩形の画像を前回のビットマップ画像から変更のあった位置に合わせて表示する。
【００２２】
［サーバ装置の構成］
次に、本実施例に係るサーバ装置１００の機能的構成について説明する。図１に示すように、サーバ装置１００は、制御部１０１と、通信部１０２と、判定部１０３と、分割部１０４と、生成部１０５と、記憶部１０６と、取得部１０７と、決定部１０８とを有する。なお、図１の例では、図１に示した機能部以外にも既知のコンピュータが有する各種の機能部、例えば各種の入力デバイスや表示デバイスなどの機能を有するものとする。
【００２３】
制御部１０１は、サーバ装置１００全体を制御し、サーバ側リモート画面制御用アプリ、および、各種アプリケーションを実行する。また、制御部１０１は、クライアント端末２００に表示される表示用の画像を記憶する画像メモリと、各種アプリケーション等のソフトウエアの処理結果を画像メモリに描画する描画部とを有する。また、制御部１０１は、画像メモリに描画される画像のフレーム間で更新があった更新領域を検出する検出部を有する。画像メモリと描画部と検出部とは、サーバ側リモート画面制御用アプリによって制御され、リモート画面制御サービスを提供する。制御部１０１は、各種アプリケーションとして、例えば、ＣＡＤアプリケーション（以下、単にＣＡＤともいう）を実行する。制御部１０１は、通信部１０２から操作情報が入力されると、操作情報に応じてサーバ側リモート画面制御用アプリ、および、各種アプリケーションを実行する。制御部１０１は、サーバ側リモート画面制御用アプリによって、例えばＣＡＤの実行画面を差分の画像データ（以下、単に画像データともいう）として分割部１０４に出力する。
【００２４】
通信部１０２は、例えば、ＮＩＣ（Network  Interface  Card）等によって実現される。通信部１０２は、ネットワークを介してクライアント端末２００と有線または無線で接続され、クライアント端末２００との間で情報の通信を司る通信インタフェースである。通信部１０２は、クライアント端末２００から可用帯域および表示ＦＰＳを受信して、可用帯域を判定部１０３および取得部１０７に出力し、表示ＦＰＳを取得部１０７に出力する。また、通信部１０２は、生成部１０５からウェイト挿入データまたは画像データが入力されると、クライアント端末２００に対してウェイト挿入データまたは画像データを送信する。また、通信部１０２は、クライアント端末２００から操作情報を受信すると、操作情報を制御部１０１に出力する。
【００２５】
判定部１０３は、通信部１０２から可用帯域が入力されると、可用帯域が所定値以下であるか否かを判定する。判定部１０３は、可用帯域が所定値以下である場合には、クライアント端末２００に送信する画像データを分割する分割情報を分割部１０４に出力する。また、判定部１０３は、可用帯域が所定値以下でない場合、または、決定部１０８からリセット情報が入力された場合には、分割を行わない旨の分割情報を分割部１０４に出力する。なお、判定部１０３は、ウェイトの調整処理で用いるｉ、ΔＴｉ、ΔＴ等の初期値を各機能部からアクセス可能に設定する。
【００２６】
ここで、可用帯域について説明する。可用帯域とは、例えば、クライアント端末２００とサーバ装置１００との間を接続するネットワークにおいて使用可能な帯域であり、画像データのデータ量と、画像データの送信に要した時間とから算出できる。可用帯域は、例えば、１ＭＢｙｔｅの画像データを送信するのに、１秒要したとすると、（１×１０２４×１０２４×８）／１より、８Ｍｂｐｓの可用帯域があると算出できる。なお、データ量と画像データの送信に要した時間とから算出した可用帯域は、推定値となる。
【００２７】
また、図２を用いて、可用帯域と、サーバ装置１００からクライアント端末２００に送信される画像データとについて説明する。図２は、画像データの送信時における使用帯域の一例を示す説明図である。図２に示すように、例えば、サーバ装置１００でＣＡＤが動作し、クライアント端末２００で操作を行っているとする。このとき、クライアント端末２００からの操作情報に応じて、例えば、回転操作の操作情報がクライアント端末２００からサーバ装置１００に送信されると、サーバ装置１００では対象物の回転に伴って画面が更新される。サーバ装置１００は、画面の更新に伴う差分を、差分の画像データとしてクライアント端末２００に送信する。図２の例では、算出した可用帯域は１０Ｍｂｐｓである。また、サーバ装置１００からクライアント端末２００へ送信される画像データは、例えばパケットごとに算出した使用帯域を時系列で並べると、画像データの送信時の使用帯域は、１０Ｍｂｐｓ以下の帯域となっている。
【００２８】
ここで、可用帯域の算出は、通常、データ受信時に直近１秒間の平均値を算出して可用帯域としている。ところが、ＣＡＤの回転操作等の大幅に画面が更新される場合には、画像データが短時間にバースト送信されることがある。このとき、データの転送量は、直近１秒間の平均値では可用帯域内に収まっている様であっても、実際には、短時間に可用帯域、または、ネットワーク機器の処理能力を超える場合がある。
【００２９】
図３は、バースト送信の一例を示す説明図である。図３に示すように、例えばパケットごとに算出した使用帯域を時系列で並べると、可用帯域内に収まっている様に見えるが、時間軸の粒度を上げると、短時間では、可用帯域、または、ネットワーク機器の処理能力を超える場合がある。図３の例では、例えば、画像データが１Ｍｂｉｔ（１２８ＫＢｙｔｅ）であり、５ｍｓｅｃでバースト送信されると、瞬間的には２００Ｍｂｐｓ相当の転送量となる。このとき、可用帯域が１０Ｍｂｐｓ、ネットワーク機器が１００Ｍｂｐｓ対応の機器であったとすると、可用帯域およびネットワーク機器の処理能力のいずれも超えることになり、送信した画像データの一部にパケットロスが発生する。パケットロスが発生すると、サーバ装置１００とクライアント端末２００との間で再送処理が発生し、送信できるデータ量、つまり可用帯域が低下する。このため、クライアント端末２００では、表示ＦＰＳが低下する。つまり、クライアント端末２００を操作するユーザは、操作に対して遅延が発生していると感じることになる。
【００３０】
図１の説明に戻って、分割部１０４は、制御部１０１から画像データ（差分の画像データ）が入力される。なお、画像データは、制御部１０１内の検出部によって検出された更新領域の画像である。分割部１０４は、判定部１０３から分割情報が入力されると、クライアント端末２００に送信する画像データを、予め定めた所定数に分割する。分割部１０４は、分割する所定数として、例えば、１０以下とすることができる。これは、あまり分割数を増やしすぎると遅延が大きくなり、結果として表示ＦＰＳの低下を招くことになるからである。また、分割部１０４は、分割する１つの分割データのサイズとして、例えば、１００ＫＢｙｔｅ等とすることができる。分割部１０４は、分割した画像データである分割データを生成部１０５に出力する。なお、分割部１０４は、分割情報が分割を行わない旨の分割情報である場合には、画像データを分割せずにそのまま生成部１０５に出力する。
【００３１】
生成部１０５は、分割部１０４から分割データまたは画像データが入力される。生成部１０５は、画像データ、つまり分割されていない画像データが入力された場合には、入力された画像データを通信部１０２に出力する。また、生成部１０５は、分割データが入力された場合には、分割データ間に所定のウェイトを挿入してウェイト挿入データを生成する。また、生成部１０５は、取得部１０７からウェイト増加情報が入力されると、入力される分割データに対して、分割データ間に増加させた所定のウェイトを挿入してウェイト挿入データを生成する。ここで、生成部１０５は、取得部１０７からさらにウェイト増加情報が入力されると、入力回数に応じて所定のウェイトを増加させ、入力される分割データに対して、分割データ間に増加させた所定のウェイトを挿入してウェイト挿入データを生成する。なお、生成部１０５は、ウェイト増加情報に含まれるｉおよびΔＴｉを用いて、ウェイトを増加させることもできる。生成部１０５は、生成したウェイト挿入データを通信部１０２に出力する。また、生成部１０５は、画像データまたは生成したウェイト挿入データに対応するウェイト情報を取得部１０７に出力する。
【００３２】
ここで、所定のウェイトの増加について説明する。生成部１０５は、例えば、ウェイトをΔＴｉ、所定のウェイトをΔＴ、入力回数をｉとすると、初回のウェイトは、ΔＴｉ＝ΔＴとし、２回目以降は、ｉ＝ｉ＋１、および、ΔＴｉ＝ΔＴｉ−１＋ΔＴに基づいて、ウェイトを増加させる。さらに、具体的には、例えば、初期値としてｉ＝０、ΔＴ＝５ｍｓｅｃとすると、初回のウェイトは、ΔＴ０＝５ｍｓｅｃ、２回目のウェイトは、ｉ＝１、ΔＴ１＝ΔＴ０＋ΔＴ＝５＋５＝１０ｍｓｅｃとなる。挿入するウェイトは、以降同様に、３回目は１５ｍｓｅｃ、４回目は２０ｍｓｅｃとなる。なお、ｉおよびΔＴｉは、取得部１０７で算出し、ウェイト増加情報として、生成部１０５に入力される。
【００３３】
生成部１０５は、決定部１０８から決定ウェイト情報またはリセット情報が入力される。生成部１０５は、決定ウェイト情報が入力された場合には、決定ウェイト情報のウェイトを、その後に入力される分割データ間に挿入してウェイト挿入データを生成し、通信部１０２に出力する。生成部１０５は、リセット情報が入力された場合には、分割データ間に挿入するウェイトを０ｍｓｅｃとする。この場合、リセット情報は判定部１０３にも入力され、分割部１０４から入力されるデータは、分割されていない画像データとなり、生成部１０５は、入力された画像データを通信部１０２に出力する。
【００３４】
ここで、ウェイト挿入前後の使用帯域について説明する。図４は、ウェイトの有無による使用帯域の一例を示す説明図である。図４に示すように、使用帯域、つまり転送量は、ウェイトを挿入しない状態では、例えば、５ｍｓｅｃのバースト転送が発生し可用帯域を超えている。これに対し、データを分割してウェイトを、例えば１５ｍｓｅｃ挿入した状態では、使用帯域は可用帯域内に収まっている。つまり、画像データにウェイトを挿入することで、ネットワーク上におけるパケットロスの発生が抑えられ、表示ＦＰＳを向上させることができる。
【００３５】
記憶部１０６は、例えば、ＲＡＭ（Random  Access  Memory）、フラッシュメモリ（Flash  Memory）等の半導体メモリ素子、ハードディスクや光ディスク等の記憶装置によって実現される。記憶部１０６は、ウェイト挿入データと対応付けられた可用帯域および表示ＦＰＳを記憶する。記憶部１０６は、例えば、ウェイト挿入データに対応するウェイト情報、つまり、ウェイト挿入データに挿入されたウェイトを示す情報と、当該ウェイト挿入データのクライアント端末２００で受信したときの可用帯域および表示ＦＰＳを対応付けて記憶する。記憶部１０６は、例えば、ウェイト未挿入時、つまりウェイト０ｍｓｅｃと、可用帯域７Ｍｂｐｓおよび表示ＦＰＳ「１０」を対応付けて記憶する。記憶部１０６は、同様に、例えば、ウェイト５ｍｓｅｃと、可用帯域９Ｍｂｐｓおよび表示ＦＰＳ「１７」とを対応付けて記憶し、ウェイト１０ｍｓｅｃと、可用帯域１２Ｍｂｐｓおよび表示ＦＰＳ「１８」とを対応付けて記憶する。また、記憶部１０６は、同様に、例えば、ウェイト１５ｍｓｅｃと、可用帯域１４．５Ｍｂｐｓおよび表示ＦＰＳ「２４」とを対応付けて記憶し、ウェイト２０ｍｓｅｃと、可用帯域１４．６Ｍｂｐｓおよび表示ＦＰＳ「２０」とを対応付けて記憶する。
【００３６】
取得部１０７は、生成部１０５からウェイト情報が入力される。ウェイト情報は、生成部１０５から通信部１０２を介してクライアント端末２００に送信したウェイト挿入データに対応するものである。また、取得部１０７は、通信部１０２から可用帯域および表示ＦＰＳが入力される。可用帯域および表示ＦＰＳは、生成部１０５から通信部１０２を介してクライアント端末２００に送信したウェイト挿入データの、クライアント端末２００における可用帯域および表示ＦＰＳである。取得部１０７は、生成部１０５からウェイト情報が入力され、通信部１０２から対応する可用帯域および表示ＦＰＳが入力されると、ウェイト情報と可用帯域および表示ＦＰＳとを対応付けて記憶部１０６に記憶する。なお、ウェイト情報には、ウェイトが０ｍｓｅｃである場合も含まれ、分割されていない画像データをクライアント端末２００が受信した場合の、可用帯域および表示ＦＰＳが対応付けられる。
【００３７】
また、取得部１０７は、ウェイトを増加させる回数である所定回数を記憶部１０６に記憶する。なお、所定回数は、予め図示しない入力装置によって、サーバ装置１００の管理者等により入力され、例えば、４回等とすることができる。また、取得部１０７は、出力回数を管理するｉを増加させ、ΔＴｉを算出する。取得部１０７は、その後、所定回数まで分割データに挿入するウェイトを増加させるウェイト増加情報を生成部１０５に出力する。ここで、ウェイト増加情報には、ｉおよびΔＴｉが含まれる。つまり、取得部１０７は、分割データに挿入するウェイトを変更する変更部である。
【００３８】
決定部１０８は、ウェイト情報が０ｍｓｅｃの場合に、対応する可用帯域および表示ＦＰＳを記憶部１０６から読み出す。また、決定部１０８は、記憶部１０６から所定回数を読み出して、ウェイト情報が０ｍｓｅｃでないウェイト情報と可用帯域および表示ＦＰＳとを、所定回数分だけ記憶部１０６から読み出す。決定部１０８は、ウェイト情報が０ｍｓｅｃである可用帯域および表示ＦＰＳと、ウェイト情報が０ｍｓｅｃでないウェイト情報と可用帯域および表示ＦＰＳとを比較して、可用帯域が増加し、かつ、表示ＦＰＳが向上したウェイト情報があるか否かを判定する。決定部１０８は、可用帯域が増加し、かつ、表示ＦＰＳが向上したウェイト情報がある場合は、最も表示ＦＰＳが向上したウェイト情報を決定ウェイト情報として、生成部１０５に出力する。つまり、決定部１０８は、複数のウェイト情報から、最も表示ＦＰＳが向上したウェイト情報を選択する選択部である。決定部１０８は、可用帯域が増加し、かつ、表示ＦＰＳが向上したウェイト情報がない場合は、リセット情報を判定部１０３および生成部１０５に出力する。
【００３９】
［クライアント端末の構成］
次に、本実施例に係るクライアント端末２００の機能的構成について説明する。図１に示すように、クライアント端末２００は、入力部２０１と、表示部２０２と、通信部２０３と、制御部２０４と、算出部２０５とを有する。なお、図１の例では、図１に示した機能部以外にも既知のコンピュータが有する各種の機能部、例えば各種の入力デバイスや表示デバイスなどの機能を有するものとする。
【００４０】
入力部２０１は、ユーザから各種操作を受け付ける入力デバイスである。例えば、入力部２０１は、タッチパネル、マウスやキーボードなどによって実現される。また、入力部２０１は、タッチパネルを用いる場合には、表示デバイスである表示部２０２と一体化される。入力部２０１は、ユーザの操作に応じた操作情報を、通信部２０３を介してサーバ装置１００に送信する。
【００４１】
表示部２０２は、各種情報を表示するための表示デバイスであり、例えば、液晶ディスプレイ等によって実現される。また、表示部２０２は、入力部２０１としてタッチパネルを用いる場合には、入力部２０１と一体化される。表示部２０２は、制御部２０４から入力された画像データを表示する。
【００４２】
通信部２０３は、例えば、ＮＩＣ等によって実現される。通信部２０３は、ネットワークを介してサーバ装置１００と有線または無線で接続され、サーバ装置１００との間で情報の通信を司る通信インタフェースである。通信部２０３は、サーバ装置１００からウェイト挿入データまたは画像データを受信すると、制御部２０４に出力する。通信部２０３は、受信したウェイト挿入データまたは画像データの送信時刻、データ量および受信完了時刻を算出部２０５に出力する。また、通信部２０３は、算出部２０５から入力された可用帯域および表示ＦＰＳを、ネットワークを介してサーバ装置１００に送信する。
【００４３】
制御部２０４は、クライアント端末２００全体を制御し、クライアント側リモート画面制御用アプリを実行する。制御部２０４は、通信部２０３からウェイト挿入データまたは画像データが入力されると、表示部２０２に出力して表示させる。また、制御部２０４は、表示部２０２に出力した結果に基づいて表示ＦＰＳを算出し、算出部２０５に出力する。
【００４４】
算出部２０５は、通信部２０３から、ウェイト挿入データまたは画像データの送信時刻、データ量および受信完了時刻が入力されると、送信時刻と受信完了時刻とに基づいて送信時間を算出し、算出された送信時間とデータ量に基づいて可用帯域を算出する。算出部２０５は、算出した可用帯域を通信部２０３に出力する。また、算出部２０５は、制御部２０４から表示ＦＰＳが入力されると、可用帯域と合わせて通信部２０３に出力する。
【００４５】
次に、本実施例のシンクライアントシステムの動作について説明する。
【００４６】
図５は、実施例のシンクライアントシステムの動作の一例を示すシーケンス図である。まず、サーバ装置１００は、例えば、ＣＡＤ等のアプリケーションの画面、つまり、クライアント端末２００に表示される画面の画像データを、クライアント端末２００に送信する（ステップＳ１０）。
【００４７】
クライアント端末２００は、画像データを受信する（ステップＳ１１）。クライアント端末２００の算出部２０５は、受信したデータの可用帯域を算出する（ステップＳ１２）。また、制御部２０４は、画像データを表示部２０２に出力して表示する（ステップＳ１３）。制御部２０４は、表示部２０２に出力した結果に基づいて表示ＦＰＳを算出し、算出部２０５に出力する（ステップＳ１４）。算出部２０５は、可用帯域および表示ＦＰＳを通信部２０３に出力し、通信部２０３は、可用帯域および表示ＦＰＳを、ネットワークを介してサーバ装置１００に送信する（ステップＳ１５）。
【００４８】
サーバ装置１００は、可用帯域および表示ＦＰＳを受信する（ステップＳ１６）。サーバ装置１００は、可用帯域および表示ＦＰＳを受信すると、調整処理を実行する（ステップＳ１７）。
【００４９】
ここで、図６を用いて、可用帯域および表示ＦＰＳを向上させるためのウェイトの調整処理を説明する。図６は、サーバ装置の調整処理の一例を示すフローチャートである。通信部１０２は、受信した可用帯域を判定部１０３および取得部１０７に出力し、表示ＦＰＳを取得部１０７に出力する。判定部１０３は、入力された可用帯域が所定値以下であるか否かを判定する（ステップＳ１７１）。判定部１０３は、可用帯域が所定値以下である場合には（ステップＳ１７１：肯定）、クライアント端末２００に送信する画像データを分割する分割情報を分割部１０４に出力する。また、判定部１０３は、調整処理の初期設定として、ｉに「０」をセットし、ウェイトΔＴ０にΔＴをセットする（ステップＳ１７２）。
【００５０】
分割部１０４は、制御部１０１から画像データが入力され、判定部１０３から分割情報が入力される。分割部１０４は、分割情報が入力されると、クライアント端末２００に送信する画像データを、予め定めた所定数に分割する（ステップＳ１７３）。分割部１０４は、分割した画像データである分割データを生成部１０５に出力する。
【００５１】
生成部１０５は、分割部１０４から画像データが入力されると、分割データ間にウェイトΔＴ０を挿入してウェイト挿入データを生成する（ステップＳ１７４）。つまり、生成部１０５は、分割データ間にΔＴが挿入されたウェイト挿入データを生成する。生成部１０５は、生成したウェイト挿入データを通信部１０２に出力する。また、生成部１０５は、生成したウェイト挿入データに対応するウェイト情報（ΔＴ０）を取得部１０７に出力する。通信部１０２は、クライアント端末２００に対してウェイト挿入データを送信する（ステップＳ１７５）。
【００５２】
通信部１０２は、クライアント端末２００から、ウェイトΔＴ０が挿入されたウェイト挿入データに対応する可用帯域および表示ＦＰＳを受信する（ステップＳ１７６）。通信部１０２は、可用帯域を判定部１０３および取得部１０７に出力し、表示ＦＰＳを取得部１０７に出力する。取得部１０７は、生成部１０５からウェイト情報（ΔＴ０）が入力され、通信部１０２から可用帯域および表示ＦＰＳが入力される。取得部１０７は、ウェイト情報（ΔＴ０）における可用帯域および表示ＦＰＳを、対応付けて記憶部１０６に記憶する（ステップＳ１７７）。
【００５３】
取得部１０７は、ｉをインクリメント、つまり１つ増加させて「１」とし（ステップＳ１７８）、ウェイトΔＴｉにｉ＝１を代入してΔＴ１とし、ΔＴ１は、ΔＴ１＝ΔＴ０＋ΔＴより、２ΔＴとする（ステップＳ１７９）。取得部１０７は、ｉが所定回数未満であるか否かを判定する（ステップＳ１８０）。取得部１０７は、ｉが所定回数未満である場合には（ステップＳ１８０：肯定）、生成部１０５に対してウェイト増加情報として、インクリメントされたｉ＝１およびΔＴ１を出力し、ステップＳ１７３に戻る。取得部１０７は、ｉが所定回数以上である場合には（ステップＳ１８０：否定）、生成部１０５に対してウェイト増加情報は出力しない。なお、サーバ装置１００は、ステップＳ１７３〜Ｓ１７９をｉが所定回数以上となるまで繰り返し、所定回数分のウェイトΔＴｉに対応する可用帯域および表示ＦＰＳを取得する。
【００５４】
決定部１０８は、記憶部１０６から所定回数を読み出して、ウェイト情報が０ｍｓｅｃでないウェイト情報と可用帯域および表示ＦＰＳとを、所定回数分だけ記憶部１０６から読み出す。つまり、決定部１０８は、記憶部１０６を監視して、ウェイト情報と可用帯域および表示ＦＰＳとが、所定回数に達するまで取得部１０７によって記憶部１０６に書き込まれると、ウェイト情報と可用帯域および表示ＦＰＳとを記憶部１０６から読み出す。また、決定部１０８は、ウェイト情報が０ｍｓｅｃの場合に、対応する可用帯域および表示ＦＰＳを記憶部１０６から読み出す。
【００５５】
決定部１０８は、ウェイト情報が０ｍｓｅｃである可用帯域および表示ＦＰＳと、ウェイト情報が０ｍｓｅｃでないウェイト情報と可用帯域および表示ＦＰＳとを比較する。決定部１０８は、比較の結果、可用帯域が増加し、かつ、表示ＦＰＳが向上したウェイト情報があるか否かを判定する（ステップＳ１８１）。決定部１０８は、可用帯域が増加し、かつ、表示ＦＰＳが向上したウェイト情報がある場合には（ステップＳ１８１：肯定）、最も表示ＦＰＳが向上したウェイト情報を決定ウェイト情報として、生成部１０５に出力する。
【００５６】
生成部１０５は、決定部１０８から決定ウェイト情報が入力されると、決定ウェイト情報のウェイトを、その後に入力される分割データ間に挿入してウェイト挿入データを生成し、通信部１０２に出力し（ステップＳ１８２）、調整処理を終了する。
【００５７】
決定部１０８は、可用帯域が増加し、かつ、表示ＦＰＳが向上したウェイト情報がない場合には（ステップＳ１８１：否定）、リセット情報を判定部１０３および生成部１０５に出力する。判定部１０３は、決定部１０８からリセット情報が入力されると、分割を行わない旨の分割情報を分割部１０４に出力する。また、生成部１０５は、リセット情報が入力されると、分割データ間に挿入するウェイトΔＴｉを０ｍｓｅｃにリセットする。また、取得部１０７は、生成部１０５からウェイトが０ｍｓｅｃのウェイト情報が入力されると、ｉを「０」にリセットする（ステップＳ１８３）。生成部１０５および取得部１０７は、ｉおよびウェイトΔＴｉのリセットが完了すると、調整処理を終了する。また、判定部１０３は、可用帯域が所定値以下でない場合には（ステップＳ１７１：否定）、分割を行わない旨の分割情報を分割部１０４に出力し、ｉを「０」に、ΔＴｉを０ｍｓｅｃにリセットして調整処理を終了する（ステップＳ１８３）。調整処理の結果、サーバ装置１００からクライアント端末２００に送信する画像データを分割してウェイトを挿入することにより伝送遅延を防止し、可用帯域および表示更新速度を向上させることができる。
【００５８】
図５の説明に戻って、クライアント端末２００は、ユーザによる操作があるか否かを判定する（ステップＳ１８）。クライアント端末２００は、ユーザによる操作がある場合には（ステップＳ１８：肯定）、操作情報をサーバ装置１００に送信する（ステップＳ１９）。クライアント端末２００は、ユーザによる操作がない場合には（ステップＳ１８：否定）、処理を終了する。
【００５９】
サーバ装置１００の通信部１０２は、操作情報を受信すると（ステップＳ２０）、操作情報を制御部１０１に出力する。制御部１０１は、通信部１０２から操作情報が入力されると、操作情報に応じてサーバ側リモート画面制御用アプリ、および、各種アプリケーションを実行し、一連の処理を終了する。なお、シンクライアントシステム１は、図５および図６の一連の処理を繰り返すことで、ユーザは、クライアント端末２００を介して、サーバ装置１００上で動作するアプリケーションを操作することができる。
【００６０】
次に、図７および図８を用いて、ウェイトを変化させたときの可用帯域および表示ＦＰＳについて説明する。図７は、ウェイト、可用帯域および表示ＦＰＳの関係の一例を示す説明図である。なお、図７および図８では、ウェイトΔＴｉをＴｗと表す。図７に示すように、ウェイトを入れることで、可用帯域が増加する場合と減少する場合とがある。図７では、ウェイトとして、例えば５，１０，１５，２０ｍｓｅｃの４種類とした場合である。グラフ５１は、可用帯域を示し、ウェイトを入れることで可用帯域が減少する場合を示す。グラフ５１は、可用帯域の減少が、マイクロバーストによるパケットロスの発生に起因しない場合であり、例えば、他のユーザがファイル転送等で大量のデータをネットワーク上で通信している場合である。この場合には、ウェイトを挿入すれば挿入しただけ可用帯域は低下する。
【００６１】
グラフ５２は、可用帯域を示し、可用帯域の減少がマイクロバーストによるパケットロスの発生に起因する場合である。グラフ５３は、グラフ５２に対応する表示ＦＰＳを示す。グラフ５２では、ウェイトを挿入していくと、可用帯域が向上し、例えば、ウェイト未挿入時は６Ｍｂｐｓ、５ｍｓｅｃ挿入時は９Ｍｂｐｓ、１０ｍｓｅｃ挿入時は１２．５Ｍｂｐｓ、ならびに、１５および２０ｍｓｅｃ挿入時は１４．５Ｍｂｐｓである。また、対応するグラフ５３は、ウェイト未挿入時は１０ＦＰＳ、５ｍｓｅｃ挿入時は１７ＦＰＳ、１０ｍｓｅｃ挿入時は１８ＦＰＳ、１５ｍｓｅｃ挿入時は２４ＦＰＳ、および、２０ｍｓｅｃ挿入時は２０ＦＰＳである。つまり、グラフ５２および５３の場合は、可用帯域が増加し、かつ、表示ＦＰＳが向上したウェイト情報がある場合に相当する。従って、最も表示ＦＰＳが向上したウェイトＴｗは１５ｍｓｅｃであるので、１５ｍｓｅｃを決定ウェイト情報とすることができる。
【００６２】
図８は、各ウェイトの値による使用帯域の変化の一例を示す説明図である。図８に示すように、ウェイトＴｗを挿入することによって、マイクロバーストによる使用帯域のピーク値は徐々に減少する。図８の例では、ウェイトＴｗ＝５，１０ｍｓｅｃの場合は、ネットワーク機器の処理能力である１００Ｍｂｐｓを超えているが、ウェイトＴｗ＝１５，２０ｍｓｅｃの場合は、１００Ｍｂｐｓ以下となっている。ウェイトＴｗ＝１５，２０ｍｓｅｃの場合に、分割したデータ全体の送信時間は、それぞれ２００ｍｓｅｃ、３００ｍｓｅｃとなり、それぞれの表示ＦＰＳは２４ＦＰＳ、２０ＦＰＳとなる。送信時間は、例えば、分割数を１０個とし、分割データの送信時間が６．５ｍｓｅｃ、ウェイトＴｗが１５ｍｓｅｃであるとすると、６．５×１０＋１５×９＝２００ｍｓｅｃとなる。送信時間は、表示ＦＰＳに影響し、送信時間が長い程、操作遅延が増加して表示ＦＰＳが低下する。例えば、送信時間が３００ｍｓｅｃを超えてくると、ＦＰＳが低下して操作感も悪化する。従って、図８の例では、ネットワーク機器の処理能力内であり、送信時間が短いウェイトＴｗ＝１５ｍｓｅｃの場合が、最適なウェイトＴｗであるといえる。
【００６３】
このように、情報処理装置であるサーバ装置１００は、ネットワークを介して接続されたクライアント端末２００に表示させる表示用の画像を画像メモリに記憶し、ソフトウエアの処理結果を画像メモリに描画する。また、サーバ装置１００は、画像メモリに描画される画像のフレーム間で更新があった更新領域を検出し、クライアント端末２００との通信に関する可用帯域が所定値以下である場合に、検出された更新領域の画像を分割する。また、サーバ装置１００は、更新領域の画像が分割された分割データを送信する場合に、各分割データの間にウェイトを挿入してウェイト挿入データを生成し、ウェイトを変更する。また、サーバ装置１００は、変更されたウェイトごとに、ウェイト挿入データをクライアント端末２００に送信することで、ウェイトごとの可用帯域およびウェイト挿入データの表示間隔を示す表示更新速度を取得する。また、サーバ装置１００は、ウェイトのうち、可用帯域がウェイト未挿入時に比べて増加し、かつ、表示更新速度がウェイト未挿入時に比べて向上するウェイトがある場合に、当該ウェイトを選択する。その結果、伝送遅延を抑制させることができる。
【００６４】
また、サーバ装置１００は、可用帯域が所定値以下ではない場合に、ウェイトをゼロとする。その結果、可用帯域の変動に応じて、ウェイトの挿入の有無を決定できる。
【００６５】
また、上記実施例では、挿入するウェイトの例として、５ｍｓｅｃごとに増加させたが、これに限定されない。サーバ装置１００は、例えば、ウェイトをより細かく増加させてもよく、例えば、１ｍｓｅｃごとに増加させてもよい。
【００６６】
また、上記実施例では、可用帯域および表示ＦＰＳの算出をクライアント端末２００で行ったが、これに限定されない。クライアント端末２００は、例えば、ウェイト挿入データまたは画像データの受信完了時刻、および、表示部２０２への出力結果をサーバ装置１００に送信する。サーバ装置１００は、当該受信完了時刻および出力結果を受信すると、当該受信時刻、ウェイト挿入データの送信時刻およびデータ量に基づいて可用帯域を算出でき、当該出力結果に基づいて表示ＦＰＳを算出できる。
【００６７】
また、図示した各部の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各部の分散・統合の具体的形態は図示のものに限られず、その全部又は一部を、各種の負荷や使用状況等に応じて、任意の単位で機能的又は物理的に分散・統合して構成することができる。例えば、取得部１０７と決定部１０８は、統合して構成してもよい。
【００６８】
さらに、各装置で行われる各種処理機能は、ＣＰＵ（Central  Processing  Unit）（またはＭＰＵ（Micro  Processing  Unit）、ＭＣＵ（Micro  Controller  Unit）等のマイクロ・コンピュータ）上で、その全部又は任意の一部を実行するようにしても良い。また、各種処理機能は、ＣＰＵ（またはＭＰＵ、ＭＣＵ等のマイクロ・コンピュータ）で解析実行されるプログラム上、またはワイヤードロジックによるハードウェア上で、その全部または任意の一部を実行するようにしても良いことは言うまでもない。
【００６９】
ところで、上記の実施例で説明した各種の処理は、予め用意されたプログラムをコンピュータで実行することで実現できる。そこで、以下では、上記の実施例と同様の機能を有するプログラムを実行するコンピュータの一例を説明する。図９は、情報処理プログラムを実行するコンピュータの一例を示す説明図である。
【００７０】
図９が示すように、コンピュータ３００は、各種演算処理を実行するＣＰＵ３０１と、ユーザからのデータ入力を受け付ける入力装置３０２と、モニタ３０３とを有する。また、コンピュータ３００は、記憶媒体からプログラム等を読み取る媒体読取装置３０４と、他の装置と接続するためのインタフェース装置３０５と、他の装置と無線により接続するための無線通信装置３０６とを有する。また、コンピュータ３００は、各種情報を一時記憶するＲＡＭ３０７と、ハードディスク装置３０８とを有する。また、各装置３０１〜３０８は、バス３０９に接続される。
【００７１】
ハードディスク装置３０８には、図１に示した制御部１０１、判定部１０３、分割部１０４、生成部１０５、取得部１０７および決定部１０８の各処理部と同様の機能を有する情報処理プログラムが記憶される。また、ハードディスク装置３０８には、情報処理プログラムを実現するための各種データが記憶される。インタフェース装置３０５および無線通信装置３０６は、図１に示した通信部１０２と同様の機能を有する。
【００７２】
ＣＰＵ３０１は、ハードディスク装置３０８に記憶された各プログラムを読み出して、ＲＡＭ３０７に展開して実行することで、各種の処理を行う。また、これらのプログラムは、コンピュータ３００を図１に示した制御部１０１、判定部１０３、分割部１０４、生成部１０５、取得部１０７および決定部１０８として機能させることができる。
【００７３】
なお、上記の情報処理プログラムは、必ずしもハードディスク装置３０８に記憶されている必要はない。例えば、コンピュータ３００が読み取り可能な記憶媒体に記憶されたプログラムを、コンピュータ３００が読み出して実行するようにしてもよい。コンピュータ３００が読み取り可能な記憶媒体は、例えば、ＣＤ−ＲＯＭやＤＶＤディスク、ＵＳＢ（Universal  Serial  Bus）メモリ等の可搬型記録媒体、フラッシュメモリ等の半導体メモリ、ハードディスクドライブ等が対応する。また、公衆回線、インターネット、ＬＡＮ（Local  Area  Network）等に接続された装置にこの情報処理プログラムを記憶させておき、コンピュータ３００がこれらから情報処理プログラムを読み出して実行するようにしてもよい。
【符号の説明】
【００７４】
１  シンクライアントシステム
１００  サーバ装置
１０１  制御部
１０２  通信部
１０３  判定部
１０４  分割部
１０５  生成部
１０６  記憶部
１０７  取得部
１０８  決定部
２００  クライアント端末
２０１  入力部
２０２  表示部
２０３  通信部
２０４  制御部
２０５  算出部
【図１】
2015069240.tif 000003
【図２】
2015069240.tif 000004
【図３】
2015069240.tif 000005
【図４】
2015069240.tif 000006
【図５】
2015069240.tif 000007
【図６】
2015069240.tif 000008
【図７】
2015069240.tif 000009
【図８】
2015069240.tif 000010
【図９】
2015069240.tif 000011