(57)【要約】【課題】サーバーベースコンピューティングにおいて、クライアント装置側において、ＣＰＵの負荷を軽減し、サーバー装置との通信量を削減でき、さらに高速な表示の描画を可能とすること。【解決手段】画像を表示するための表示部と、表示部に画像を表示するために画像を一時的に格納するフレームメモリ領域と、表示部に表示するための画像がフレームメモリ領域に格納されているか否かを判断する判断部と、判断部によって画像がフレームメモリ領域に格納されていないと判断された場合、サーバー装置に対して画像の送信を要求する画像要求部と、サーバー装置から送信されてきた画像を受信する画像受信部と、画像受信部によって受信した画像をフレームメモリ領域に格納するメモリ制御部と、フレームメモリ領域に格納された画像を表示部に表示するよう制御する表示制御部とを備える。【選択図】図９
2007200145.tif 000002
【特許請求の範囲】
【請求項１】
アプリケーションプログラムを動作させるサーバー装置に対してネットワークを介してサービス要求を行うクライアント装置であって、
画像を表示するための表示部と、
前記表示部に前記画像を表示するために前記画像を一時的に格納するフレームメモリ領域と、
前記表示部に表示するための前記画像が前記フレームメモリ領域に格納されているか否かを判断する判断部と、
前記判断部によって前記画像が前記フレームメモリ領域に格納されていないと判断された場合、前記サーバー装置に対して前記画像の送信を要求する画像要求部と、
前記サーバー装置から送信されてきた前記画像を受信する画像受信部と、
前記画像受信部によって受信した前記画像を前記フレームメモリ領域に格納するメモリ制御部と、
前記フレームメモリ領域に格納された前記画像を前記表示部に表示するよう制御する表示制御部と、
を備えることを特徴とするクライアント装置。
【請求項２】
前記フレームメモリ領域は、キャッシュメモリであることを特徴とする請求項１に記載のクライアント装置。
【請求項３】
前記フレームメモリ領域は、前記表示部の表示画面サイズ以上かつ前記サーバー装置が備えるフレームメモリサイズ以下のサイズであることを特徴とする請求項１または２に記載のクライアント装置。
【請求項４】
前記フレームメモリ領域に、専用のＴＬＢ（Translation Look-aside Buffer）を設けることを特徴とする請求項１乃至３の何れか１項に記載のクライアント装置。
【請求項５】
前記表示部に表示されている表示済画像を縮小するように操作された場合、前記判断部は、前記判断部によって前記画像が前記フレームメモリ領域に格納されていると判断して前記サーバー装置に対して前記画像の送信を要求せず、
前記表示部は、前記フレームメモリ領域に格納されている前記画像の縮小画像を表示する、
ことを特徴とする請求項１乃至４の何れか１項に記載のクライアント装置。
【請求項６】
前記表示部に表示されている表示済画像を回転するように操作された場合、前記判断部は、前記判断部によって前記画像が前記フレームメモリ領域に格納されていると判断して前記サーバー装置に対して前記画像の送信を要求せず、
前記表示部は、前記フレームメモリ領域に格納されている前記画像の回転画像を表示する、
ことを特徴とする請求項１乃至４の何れか１項に記載のクライアント装置。
【請求項７】
ネットワークを介したクライアント装置からのサービス要求に基づいてアプリケーションプログラムを動作させるサーバー装置であって、
前記クライアント装置で画像を表示するために前記画像を送信するように求める、前記クライアント装置からの要求を受信する要求受信部と、
前記要求受信部によって受信した要求に基づいて、前記画像と前記クライアント装置の表示部に表示するためにフレームメモリ領域に格納された表示済画像との差分を算出して送信用画像を求める送信画像算出部と、
前記送信画像算出部によって算出された送信用画像を前記クライアント装置へ送信する画像送信部と、
を備えることを特徴とするサーバー装置。
【請求項８】
前記送信画像算出部は、複数の計算方法で前記送信用画像を圧縮し、
前記画像送信部は、前記圧縮した送信用画像のうち最も容量の小さい送信用画像を送信する、
ことを特徴とする請求項７に記載のサーバー装置。
【請求項９】
請求項１乃至６の何れか１項に記載のクライアント装置と請求項７または８に記載のサーバー装置とがネットワークを介して相互に接続可能に構成されたことを特徴とするサーバーベースコンピューティングシステム。
【請求項１０】
アプリケーションプログラムを動作させるサーバー装置に対してネットワークを介してサービス要求を行うクライアント装置のコンピュータを、
画像を表示部に表示するために前記画像がフレームメモリ領域に格納されているか否かを判断する判断手段、
前記画像が前記フレームメモリ領域に格納されていないと判断された場合、前記サーバー装置に対して前記画像の送信を要求する画像要求手段、
前記サーバー装置から送信されてきた前記画像を受信する画像受信手段、
前記受信した前記画像を前記フレームメモリ領域に格納するメモリ制御手段、
前記フレームメモリ領域に格納された前記画像を前記表示部に表示するよう制御する表示制御手段、
として機能させるためのプログラム。
【請求項１１】
ネットワークを介したクライアント装置からのサービス要求に基づいてアプリケーションプログラムを動作させるサーバー装置のコンピュータを、
前記クライアント装置で画像を表示するために前記画像を送信するように求める、前記クライアント装置からの要求を受信する要求受信手段、
前記受信した要求に基づいて、前記画像と前記クライアント装置の表示部に表示するためにフレームメモリ領域に格納された表示済画像との差分を算出して送信用画像を求める送信画像算出手段、
前記算出された送信用画像を前記クライアント装置へ送信する画像送信手段、
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アプリケーションプログラムを動作させるサーバー装置に対してサービス要求を行うクライアント装置とクライアント装置からのサービス要求に基づいてアプリケーションプログラムを動作させるサーバー装置とがネットワークを介して相互に接続可能に構成されたサーバーベースコンピューティングシステムに関する。
【背景技術】
【０００２】
近年、企業によるサーバーベースコンピューティングの採用が急速に進んでいる。
サーバーベースコンピューティングとは、クライアント装置とサーバー装置とがネットワークを介して相互に接続可能に構成されたシステムにおいて、クライアント装置がサーバー装置に対してサービス要求を行うと、サーバー装置がクライアント装置からのサービス要求に基づいて、データの管理およびアプリケーションプログラムを動作させるというものである（例えば、特許文献１、非特許文献１参照。）。
【０００３】
サーバー装置はクライアント用の表示データを作成し、これをクライアント装置に送る。クライアント装置（シンクライアント装置とも呼ばれる）では、使用者のキーやマウス等の操作情報を、ネットワークを介してサーバー装置へ送り、前記サーバー装置側で作成されたクライアント用の表示データを受け取って表示する。クライアント装置は、ネットワーク機器、表示装置、マウスやキーボード等の入力装置を備えているだけでよく、データをクライアント装置内に持たないためハードディスク等のストレージが不要であり、アプリケーションプログラムの実行を行わないためクライアント装置に必要となる処理の負荷は軽い。
【０００４】
企業はサーバーベースコンピューティングを導入することにより、データやアプリケーションプログラム等の資源がサーバー装置側で一元管理できるため、運用コストを削減することができるというメリットがある。また、クライアント装置は従来のパソコンに比べて安価に調達することができるというメリットがある。セキュリティ面においても、サーバー装置内のデータへのアクセス制限をかけたり、アクセスログを取ったりすることにより、情報への不正アクセスのリスクを減らすことが出来る。ウイルスに対しても、サーバー装置で一括対処することが可能となる。
【特許文献１】特開２００５−２２８２２７号公報
【非特許文献１】ｈｔｔｐ：／／ｗｗｗ．ｋｅｙｍａｎ．ｏｒ．ｊｐ／ｓｅａｒｃｈ／３０００００３１＿１．ｈｔｍｌ（サーバベースコンピューティング）
【発明の開示】
【発明が解決しようとする課題】
【０００５】
上述したように、サーバーベースコンピューティングが実行される際には、アプリケーションプログラムを動作させるサーバー装置に対してサービス要求を行うクライアント装置と、クライアント装置からのサービス要求に基づいてアプリケーションプログラムを動作させるサーバー装置とが、ネットワークを介して相互に接続可能に構成されている。
【０００６】
クライアント装置が、モバイル端末装置であった場合は、モバイル性を重視したクライアント装置であるため、表示画面を大きくとることができない。例えば４インチＨＶＧＡ（６４０×２４０）であれば、標準的なデスクトップパソコンの表示サイズの１５インチ、ＸＧＡ（１０２４×７６８）に比べてはるかに小さい。そのため、クライアント装置の操作に応答してクライアント装置の表示データが変更されるごとにサーバー装置からクライアント装置への表示データのデータ送信が必要になる。特に、クライアント装置の表示画面が小さい場合に、サーバー装置１０１へのアクセスが頻繁に発生し、モバイル端末装置１０４の消費電力を大きくしてしまうという問題点があった。更に、モバイル端末装置が電池駆動の場合は、搭載電池容量に応じた時間しか使用することができない。またモバイル性を保つためには大きな電池パックを利用することができない。つまり、モバイル端末装置でサーバーベースコンピューティングを行うということは、モバイル端末装置内の消費電力の大半を占める無線部を使うことであり、これによりモバイル端末装置の使用時間が大きく制限されてしまうという問題点があった。
【０００７】
そこで、本発明は、上記問題点に鑑みてなされたものであり、サーバーベースコンピューティングにおいて、クライアント装置側において、ＣＰＵの負荷を軽減し、サーバー装置との通信量を削減でき、さらに高速な表示の描画を可能とするクライアント装置、サーバー装置、サーバーベースコンピューティングシステム、およびクライアント装置またはサーバー装置で実行されるプログラムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明は、上記課題を解決するため、下記のような構成を採用した。
すなわち、本発明の一態様によれば、本発明のクライアント装置は、アプリケーションプログラムを動作させるサーバー装置に対してネットワークを介してサービス要求を行うクライアント装置であって、画像を表示するための表示部と、前記表示部に前記画像を表示するために前記画像を一時的に格納するフレームメモリ領域と、前記表示部に表示するための前記画像が前記フレームメモリ領域に格納されているか否かを判断する判断部と、前記判断部によって前記画像が前記フレームメモリ領域に格納されていないと判断された場合、前記サーバー装置に対して前記画像の送信を要求する画像要求部と、前記サーバー装置から送信されてきた前記画像を受信する画像受信部と、前記画像受信部によって受信した前記画像を前記フレームメモリ領域に格納するメモリ制御部と、前記フレームメモリ領域に格納された前記画像を前記表示部に表示するよう制御する表示制御部とを備えることを特徴とする。
【０００９】
また、本発明のクライアント装置は、前記フレームメモリ領域が、キャッシュメモリであることが望ましい。
また、本発明のクライアント装置は、前記フレームメモリ領域が、前記表示部の表示画面サイズ以上かつ前記サーバー装置が備えるフレームメモリサイズ以下のサイズであることが望ましい。
【００１０】
また、本発明のクライアント装置は、前記フレームメモリ領域に、専用のＴＬＢ（Translation Look-aside Buffer）を設けることが望ましい。
また、本発明のクライアント装置は、前記表示部に表示されている表示済画像を縮小するように操作された場合、前記判断部が、前記判断部によって前記画像が前記フレームメモリ領域に格納されていると判断して前記サーバー装置に対して前記画像の送信を要求せず、前記表示部が、前記フレームメモリ領域に格納されている前記画像の縮小画像を表示することが望ましい。
【００１１】
また、本発明のクライアント装置は、前記表示部に表示されている表示済画像を回転するように操作された場合、前記判断部が、前記判断部によって前記画像が前記フレームメモリ領域に格納されていると判断して前記サーバー装置に対して前記画像の送信を要求せず、前記表示部が、前記フレームメモリ領域に格納されている前記画像の回転画像を表示することが望ましい。
【００１２】
また、本発明の一態様によれば、本発明のサーバー装置は、ネットワークを介したクライアント装置からのサービス要求に基づいてアプリケーションプログラムを動作させるサーバー装置であって、前記クライアント装置で画像を表示するために前記画像を送信するように求める、前記クライアント装置からの要求を受信する要求受信部と、前記要求受信部によって受信した要求に基づいて、前記画像と前記クライアント装置の表示部に表示するためにフレームメモリ領域に格納された表示済画像との差分を算出して送信用画像を求める送信画像算出部と、前記送信画像算出部によって算出された送信用画像を前記クライアント装置へ送信する画像送信部とを備えることを特徴とする。
【００１３】
また、本発明のサーバー装置は、前記送信画像算出部が、複数の計算方法で前記送信用画像を圧縮し、前記画像送信部が、前記圧縮した送信用画像のうち最も容量の小さい送信用画像を送信することが望ましい。
【００１４】
また、本発明の一態様によれば、本発明のサーバーベースコンピューティングシステムは、上述の何れかのクライアント装置と上述の何れかのサーバー装置とがネットワークを介して相互に接続可能に構成されたことを特徴とする。
【００１５】
また、本発明の一態様によれば、本発明のプログラムは、アプリケーションプログラムを動作させるサーバー装置に対してネットワークを介してサービス要求を行うクライアント装置のコンピュータを、画像を表示部に表示するために前記画像がフレームメモリ領域に格納されているか否かを判断する判断手段、前記画像が前記フレームメモリ領域に格納されていないと判断された場合、前記サーバー装置に対して前記画像の送信を要求する画像要求手段、前記サーバー装置から送信されてきた前記画像を受信する画像受信手段、前記受信した前記画像を前記フレームメモリ領域に格納するメモリ制御手段、前記フレームメモリ領域に格納された前記画像を前記表示部に表示するよう制御する表示制御手段として機能させるためのプログラムである。
【００１６】
また、本発明の一態様によれば、本発明のプログラムは、ネットワークを介したクライアント装置からのサービス要求に基づいてアプリケーションプログラムを動作させるサーバー装置のコンピュータを、前記クライアント装置で画像を表示するために前記画像を送信するように求める、前記クライアント装置からの要求を受信する要求受信手段、前記受信した要求に基づいて、前記画像と前記クライアント装置の表示部に表示するためにフレームメモリ領域に格納された表示済画像との差分を算出して送信用画像を求める送信画像算出手段、前記算出された送信用画像を前記クライアント装置へ送信する画像送信手段として機能させるためのプログラムである。
【発明の効果】
【００１７】
本発明によれば、サーバーベースコンピューティング動作をしながら、クライアント装置側において、ＣＰＵの負荷を軽減し、サーバー装置との通信量を削減でき、さらに高速な表示の描画を可能とする。
【発明を実施するための最良の形態】
【００１８】
以下、本発明の実施の形態について図面を参照しながら説明する。
図１は、サーバーベースコンピューティングのネットワーク構成の概略を示す図である。
【００１９】
図１において、サーバー装置１０１は、アプリケーションプログラムを実行する機能、データを管理する機能等を有している。
クライアント端末装置１０２は、ネットワーク１０９を介してサーバー装置１０１に接続されている。無線アクセスポイント１０３も、ネットワーク１０９を介してサーバー装置１０１に接続されている。また、モバイル端末装置１０４、スマートフォン１０５等の移動端末装置は、アクセスポイント１０３と無線通信を行うことにより、ネットワーク９を介してサーバー装置１０１と接続されている。なお、以下の説明においては、クライアント端末装置１０２、モバイル端末装置１０４およびスマートフォン１０５を総称してクライアント装置という。
【００２０】
そして、クライアント端末装置１０２、モバイル端末装置１０４あるいはスマートフォン１０５は、サーバー装置１０１との間でサーバーベースコンピューティングシステムを構築している。
【００２１】
モバイル端末装置１０４では、無線ネットワーク（例えばＷｉＦｉ）、アクセスポイント１０３を介して、サーバー装置１０１と接続されている。そして、モバイル端末装置１０４のような移動端末装置は、電池寿命を考慮した低消費電力設計されている。
【００２２】
図２は、モバイル端末装置１０４の消費電力の内訳の一例を示す図である。
モバイル端末装置１０４が電力を消費するのは、図２に示したように、主にＬＳＩ部、表示部および無線部である。なお、図２に示した例においては、無線部は１００％稼動している状態を示している。サーバー装置１０１との非通信期間を長く取れれば無線部をパワーダウンすることが可能であるが、一般的には、頻繁に通信がなされている。
【００２３】
図２に示すとおり、無線部の消費電力がモバイル端末装置が消費する電力の６５％を占めている。モバイル端末装置１０４は電池駆動であるため、搭載電池容量に応じた時間しか使用することができず、モバイル端末装置１０４でサーバーベースコンピューティングを行うということは、モバイル端末装置１０４内の消費電力の大半を占める無線部を使うことであり、これによりモバイル端末装置１０４の使用時間が制限される。
【００２４】
本発明を適用したクライアント装置は、キャッシュメモリへの保持方法を、扱い易いフレームバッファと言う形で持つことに特徴がある。これにより、例えばクライアント装置側でのスクロール、拡大縮小等の処理をキャッシュメモリで処理させることができ、サーバー装置とのアクセスを実行することなく上記処理を実行することが可能となる。すなわち、サーバー装置と通信アクセスを実行しない分、クライアント装置が消費する消費電力を抑えることが可能となる。また、サーバー装置にアクセスしない分、処理速度も高速化される。
【００２５】
また、フレームバッファへのアクセスに専用のＴＬＢ（Translation Look-aside Buffer）を設けることにより、メモリ資源を有効に使うことができる。
また、画面の縮小操作時や画面の回転操作時に、フレームバッファ内のデータで処理できる場合には、サーバー装置へのアクセスを行わず、クライアント装置内で処理を実行する。
【００２６】
まず、本発明を適用した第１の実施の形態について説明する。
図３は、本発明を適用したモバイル端末装置１０４の構成の概略を示す図である。
図３において、モバイル端末装置１０４は、ＬＳＩ２００、ＬＣＤ２１０、プログラム格納メモリ２１２およびワークメモリ２１３を備えている。
【００２７】
ＬＳＩ２００は、ＳＯＣ（Ｓｙｓｔｅｍ  Ｏｎ  Ｃｈｉｐ）により構成されている。ＬＳＩ２００の内部構成について説明をする。ＣＰＵ２０１は、内部バス（Ｂｕｓ）２０４ａを介して各部とやり取りを制御する。メモリコントローラ（Ｍｅｍ．Ｃｏｎｔ．）２０４は、内部バス２０４ｂと、ＳＤＲＡＭ等のワークメモリ２１３およびＦＲＯＭ等のプログラム格納メモリ２１２の制御を行う。ＬＣＤＣ（ＬＣＤコントローラ）２０２は、ＬＳＩ２００に内蔵されたＲＡＭ等の内蔵メモリ２０３を利用し、ＬＣＤ２１０（表示部）へ表示データを転送する。また、ＵＡＲＴ（Ｕｎｉｖｅｒｓａｌ  Ａｓｙｎｃｈｒｏｎｏｕｓ  Ｒｅｃｅｉｖｅｒ：調歩同期シリアル通信）２０６、パワーマネージメントブロック（Ｐｏｗｅｒ  Ｍｇｍｔ）２０７、リアルタイムカウンタ（ＲＴＣ）２０５、ＵＳＢファンクション（ＵＳＢＦ）２０８等により構成される。無線通信部２０９は、ＷｉＦｉによる通信を可能とし、ＵＡＲＴ２０６に接続されている。
【００２８】
図４は、ＬＣＤＣの内部構成を示す図である。
図４において、ＬＣＤＣ２０２は、バスインターフェース（ＢＵＳ  Ｉ／Ｆ）２２１を介してＬＳＩ２００の内部バス２０４ａと接続される。レジスタ（Ｒｅｇ．）２２２は、ＬＣＤＣ２０２への各種設定情報を格納する。メモリコントローラ（Ｍｅｍｏｒｙ  Ｃｏｎｔ．）２２３は、内蔵メモリ（表示データの格納用メモリ）２０３を制御する。また、メモリコントローラ２２３は、ＤＭＡＣ（ダイレクトメモリアクセスコントローラ）２２３ａを内蔵する。前記ＤＭＡＣ２２３ａは、内蔵メモリ２０３からＬＣＤ２１０へのデータ転送を司る。
【００２９】
前記ＤＭＡＣ２２３ａにより内蔵メモリ２０３から読み出された表示用のデータは、ＦＩＦＯ（先入れ先出しメモリ）２２４により同期を取った後、拡大縮小の機能を有するリサイザー（Ｒｅｓｉｚｅｒ）２２５により所望の拡大率に処理される。
【００３０】
そして、ＦＩＦＯ２２６で同期が取られた後、ＬＣＤ  Ｉ／Ｆ２２７により所望の制御信号が生成され、ＬＣＤ２１０へ表示データが送られ、ＬＣＤ２１０で画像の表示がなされる。
【００３１】
図５は、サーバー装置の構成の概略を示す図である。
図５において、サーバー装置１０１は、ＣＰＵ（中央処理装置：Central Processing Unit）７０１、サーバー装置１０１において実行する処理を実行するプログラムの他、サーバー装置１０１の各機能を制御し実行するための制御プログラムが収納されたＲＯＭやＲＡＭ等のメモリ７０２、各種のデータや信号等を入力するための入力部７０３、画像やその他の情報を表示するための表示部７０４、画像を始め様々な情報を記録するための記憶部７０５、外部記録媒体を駆動する記録媒体駆動部７０６、ＬＡＮ等のネットワーク１０９に接続するためのネットワーク接続部７０７がバス７００に接続されて構成され、ＣＰＵ７０１がこれらの各部を制御している。
【００３２】
図６は、フレームバッファの振る舞いを説明するための図である。
モバイル端末装置１０４が備える表示装置は、モバイル性を重視したクライアント装置であるため、表示画面を大きくとることができない。その代わりに、より多くの情報を表示するためにＨＶＧＡ（６４０×２４０）の解像度を有している。
【００３３】
他方、サーバー装置１０１で管理するアプリケーションはパソコン対応のものが多く、ＸＧＡ（１０２４×７６８）の解像度を標準としてアプリケーションが構成されている。したがって、サーバー装置１０１側ではＸＧＡのサイズとして扱い、サーバー装置１０１内ではＸＧＡのフレームバッファ領域３００を持っている。
【００３４】
図６の（Ａ）は、アプリケーションが扱っているサーバー装置１０１内のフレームバッファ３００を表しており、ＸＧＡのサイズを有している。表示領域３０１は、モバイル端末装置１０４で表示すべきＨＶＧＡの領域を示している。サーバー装置１０１は、この表示すべき表示領域３０１をモバイル端末装置１０４に送り、内蔵メモリ２０３内に設定した仮想フレームバッファ３１０内に描画する。仮想フレームバッファ３１０は内蔵メモリ２０３内に、ＬＣＤ２１０の画素数（ＨＶＧＡ）以上、サーバー装置１０１内のフレームバッファ３００の画素数（ＸＧＡ）以下に設定されている。
【００３５】
図６の（Ｂ）は、モバイル端末装置１０４内の仮想フレームバッファ３１０のイメージを示している。仮想フレームバッファ３１０内では、有効な表示データがあることを示すデータ有効領域３１１内に、有効なデータが保持されている。
【００３６】
図６の（Ｃ）は、仮想フレームバッファ３１０内のデータを、ＬＣＤ２１０に表示した状態を示している。なお、ＬＣＤＣ２０２の振る舞いについては後述する。
図６の（Ｄ）は、モバイル端末装置１０４において下方向へのスクロール操作が発生した後の、サーバー装置１０１内のフレームバッファ３００を示す。表示領域３０２（実線）は、スクロール後にモバイル端末装置１０４に表示するための領域を示している。
【００３７】
図６の（Ｅ）は、モバイル端末装置１０４において下方向へのスクロール操作が発生した後の、仮想フレームバッファ３１０のイメージを示している。サーバー装置１０１より、不足分データが送られ、仮想フレームバッファ３１０内の新たなデータ有効領域３１２が形成されている。
【００３８】
データ有効領域３１２内の表示位置選択領域３１３（点線）をＣＰＵ２０１がＬＣＤＣ２０２に指定すると、ＬＣＤＣ２０２がＬＣＤ２１０に新たな表示を描画する。
図６の（Ｆ）は、モバイル端末装置１０４において下方向へのスクロール操作が発生した後の、仮想フレームバッファ３１０内の表示位置選択領域３１３のデータを、ＬＣＤ２１０に表示した状態を示している。
【００３９】
次に、仮想フレームバッファ３１０内での有効データの取り扱いの一例を説明する。
図７は、仮想フレームバッファ内での有効データの取り扱いを説明するための図である。
【００４０】
図７の（Ａ）は、仮想フレームバッファ３１０内にデータ有効領域３１１が保持されている図６の（Ｂ）と同じものである。
ＣＰＵ２０１は、図７の（Ｂ）に示すように、仮想フレームバッファ３１０を複数の小領域４０１に分割し、ワークメモリ２１３上においてデータ管理テーブル４００としてデータ管理を行う。ここで、データ管理テーブル４００内で有効領域として管理されている小領域群４０２は、図７の（Ａ）のデータ有効領域３１１と対応している。
【００４１】
図７の（Ｃ）は、モバイル端末装置１０４において下方向へのスクロール操作が発生した後の、仮想フレームバッファ３１０のイメージを示しており、図６の（Ｅ）と同じものである。このときのＣＰＵ２０１によるデータ管理は上記と同様に、データ管理テーブル４００内の小領域群４０３が有効であることを表している。また、仮想フレームバッファ３１０内のデータ有効領域３１２は、モバイル端末装置１０４内のＣＰＵ２０１が管理を行っている。
【００４２】
次に、サーバー装置１０１およびモバイル端末装置１０４において実行されるメイン処理の流れについてフローチャートを用いて説明する。
図８は、メイン処理の流れを示すフローチャートである。
【００４３】
まず、ステップ１０００において、モバイル端末装置１０４において何かしらの操作が実行されると、ステップ１００１において、その操作内容を判断する。
ステップ１０００で実行された操作が画面の縮小操作であると判断されれば（ステップ１００１：縮小操作）、ステップ１００２において、指示された縮小が可能な有効データがモバイル端末装置１０４の内に有るか否かを判断する。そして、データがあれば（ステップ１００２：有）、ステップ１００４において、モバイル端末装置１０４内にて縮小処理を実行し、他方、データが無ければ（ステップ１００２：無）、ステップ１００９において、サーバー装置１０１で縮小処理を実行する。
【００４４】
また、ステップ１０００で実行された操作が画面の回転操作であると判断されれば（ステップ１００１：回転操作）、ステップ１００３において、指示された回転が可能な有効データがモバイル端末装置１０４の内に有るか否かを判断する。そして、データがあれば（ステップ１００３：有）、ステップ１００５において、モバイル端末装置１０４内にて回転処理を実行し、他方、データが無ければ（ステップ１００３：無）、ステップ１０１０において、サーバー装置１０１で回転処理を実行する。
【００４５】
また、ステップ１０００で実行された操作が画面の拡大操作であると判断されれば（ステップ１００１：拡大操作）、モバイル端末装置１０４に表示している部分を拡大するだけのであり必ずモバイル端末装置１０４内にデータが存在するので、ステップ１００６において、モバイル端末装置１０４内にて拡大処理を実行する。
【００４６】
またステップ１０００で実行された操作が画面のスクロール操作であると判断されれば（ステップ１００１：スクロール操作）、ステップ１００７において、図９に示したフローチャートを用いて後述するスクロール処理を実行する。
【００４７】
また、縮小操作でも回転操作でも拡大操作でもスクロール操作でもない操作、例えば、マウス操作やキー操作等のその他の操作であると判断されれば（ステップ１００１：他）、ステップ１００８において、その操作内容をサーバー装置１０１に送り、サーバー装置１０１での処理にて表示データが生成される。
【００４８】
図９は、スクロール処理の流れを示すフローチャートである。
図６を用いて説明した「下方向へのスクロール操作」が実行されると、すなわち図８のステップ１００１でスクロール操作であると判断されると、ステップ５００において、モバイル端末装置１０４のＣＰＵ２０１が、下方向へのスクロール操作を検出する。そして、ステップ５０１において、ＣＰＵ２０１は、下方向へのスクロールにより表示すべきデータが仮想フレームバッファ３１０の範囲内にあるか否か、前記データ管理テーブル４００を用いて判断する。
【００４９】
表示すべきデータが仮想フレームバッファ３１０の範囲内の処理であれば（ステップ５０１：範囲内）、ステップ５０７において、ＣＰＵ２０１がＬＣＤＣ２０２に対して、表示位置選択領域３１３を指定し、ＬＣＤＣ２０２がＬＣＤ２１０を駆動して画像を表示する。
【００５０】
他方、表示すべきデータが仮想フレームバッファ３１０の範囲内の処理でなければ（ステップ５０１：範囲外）、ステップ５０２において、ＣＰＵ２０１がサーバー装置１０１に対して表示データを要求する。なお、データの要求方法は、モバイル端末装置１０４内の仮想フレームバッファ３１０の座標にて、モバイル端末装置１０４に新たに表示すべき領域をサーバー装置１０１に送る。また、サーバー装置１０１側では、モバイル端末装置１０４内の仮想フレームバッファ３１０の中でのデータ有効領域３１２は管理されている。
【００５１】
そして、ステップ５１０において、サーバー装置１０１がモバイル端末装置１０４からの表示データの要求を受信する。すると、サーバー装置１０１では、複数の方法でモバイル端末装置１０４に送り返すデータを算出する。本第１の実施の形態では２通りの方法で送り返すデータを算出し、通信データ量が少ない方法で算出したデータをモバイル端末装置１０４に送り返す。
【００５２】
まず、ステップ５１１において、現在モバイル端末装置１０４が仮想フレームバッファ３１０で保持しているデータと、新しく表示する領域のデータとの差分を計算し、その差分量に基づいてデータの圧縮を行う。また、ステップ５１２において、モバイル端末装置１０４内の仮想フレームバッファ３１０に無い新たな領域のみを圧縮、すなわち図６の（Ｄ）に示した、これから表示すべき領域である領域３０２から、現在の表示領域３０１と重なる領域を引いた領域を圧縮する。
【００５３】
そして、ステップ５１３において、ステップ５１１で圧縮したデータ量とステップ５１２で圧縮したデータ量とを比較して、どちらの圧縮後のデータが少ない方かを判断する。
ステップ５１１で計算した差分圧縮の方が少ないと判断された場合（ステップ５１３：５１１の方が少ない）は、ステップ５１４において、仮想フレームバッファ３１０内の差分計算の対象となる領域の指定とステップ５１１で算出した差分圧縮データとをサーバー装置１０１へ転送する。他方、ステップ５１２で計算した差分圧縮の方が少ないと判断された場合（ステップ５１３：５１２の方が少ない）は、ステップ５１５において、ステップ５１２で算出した新領域の圧縮データをサーバー装置１０１へ転送する。
【００５４】
そして、ステップ５１６において、モバイル端末装置１０４内の仮想フレームバッファ３１０の振る舞いを管理すべく、転送済み領域のデータベースをアップデートする。
ここで、サーバー装置１０１からモバイル端末装置１０４へ転送されるデータ形式を説明する。
【００５５】
図１０は、サーバー装置からモバイル端末装置へ転送されるデータの構造を示す図である。
図１０において、転送されるデータは、転送先のモバイル端末装置１０４のアドレス９０１、コマンド９０２、圧縮方式９０３、展開先アドレス９０４、サイズ９０５、圧縮データ９０６から構成されている。
【００５６】
コマンド９０２には、サーバー装置１０１からモバイル端末装置１０４に対する命令が格納される。サーバー装置１０１で画像が書き換わると、サーバー装置１０１内に保持しているフレームバッファ３００内をクリアする等のコマンド９０２が発行される。そして、クリアするコマンド９０２（クリアコマンド）が発行されると、図７を用いて説明したデータ管理テーブル４００（ＦＢＣＴ：フレームバッファコントロールテーブル）がクリアされる。
【００５７】
圧縮方式９０３には、サーバー装置１０１で圧縮した圧縮方法が格納され、これを参照することによりモバイル端末装置１０４で解凍する。
展開先アドレス９０４には、解凍したデータをモバイル端末装置１０４内の仮想フレームバッファ３１０の何処に展開するかのアドレスが格納されている。サイズ９０５には、圧縮データ９０６のデータ長が格納されている。
【００５８】
圧縮データ９０６以外のアドレス９０１、コマンド９０２、圧縮方式９０３、展開先アドレス９０４およびサイズ９０５は固定長データであり、圧縮データ９０６だけは可変長データ形式となっている。
【００５９】
図９の説明に戻る。
ステップ５０３において、モバイル端末装置１０４は、サーバー装置１０１から送信されたデータを受信し、ステップ５０４において、受信したデータのコマンド９０２を解析し、データ管理テーブル４００（ＦＢＣＴ）をクリアするクリアコマンドを含んでいるか判断する。
【００６０】
クリアコマンドを含んでいると判断されれば（ステップ５０４：Ｙｅｓ）、ステップ５０５において、データ管理テーブル４００（ＦＢＣＴ）をクリアする。そして、クリアコマンドを含んでいないと判断された場合（ステップ５０４：Ｎｏは）、あるいはステップ５０５でのデータ管理テーブル４００（ＦＢＣＴ）のクリアの後に、ステップ５０６において、圧縮方式９０３を解析し、転送されてきたデータの圧縮方法に応じて、ＣＰＵ２０１が仮想フレームバッファ３０１の内容をアップデートする。そして、このアップデートをしている最中に再びデータ管理テーブル４００（ＦＢＣＴ）は更新されていく。
【００６１】
最後に、ステップ５０７において、ＣＰＵ２０１がＬＣＤＣ２０２に対して、表示位置選択領域３１３を指定し、ＬＣＤＣ２０２がＬＣＤ２１０を駆動して画像を表示する。
なお、モバイル端末装置１０４の仮想フレームバッファ３１０は、通常サーバー装置１０１内のフレームバッファ以下のサイズで設定される。本第１の実施の形態では同サイズとしたが、モバイル端末装置１０４の仮想フレームバッファ３１０をＶＧＡ（６４０×４８０）として設定しても良い。この場合には、サーバー装置１０１側でモバイル端末装置１０４内の仮想フレームバッファ３１０がＶＧＡであることを踏まえて、モバイル端末装置１０４へ転送する画像を生成する必要がある。モバイル端末装置１０４内の仮想フレームバッファ３１０を超える様な操作が有った場合には、サーバー装置１０１はモバイル端末装置１０４内の仮想フレームバッファ３１０を全て書き換えるべく指示を出す。モバイル端末装置１０４側では、その指示に従い図９のステップ５０４，５０５，５０６の順に処理される。
【００６２】
上述した第１の実施の形態では、ハードウェア構成が簡便になるものの、内蔵メモリ２０３の使用効率が良いとはいえない。ＬＳＩ２００内に構成する内蔵メモリ２０３は、ＬＳＩ２００外に構成するワークメモリ２１３に比べて消費電力が少ない利点はあるものの、容量当たりのコストが高い。
【００６３】
そこで、変形例１として、内蔵メモリ２０３はＬＣＤ２１０と同解像度を持たせる。本変形例１では、ＬＣＤ２１０はＨＶＧＡであるので、内蔵メモリ２０３はＨＶＧＡ（６４０×２４０）のサイズとする。内蔵メモリ２０３の中身がそのまま、ＬＣＤ２１０に描画される。部分拡大のみは、リサイザー２２５により拡大処理される。
【００６４】
また、仮想フレームバッファ３１０は、ワークメモリ２１３上に持つ。ワークメモリ２１３上の、仮想フレームバッファ３１０内の、表示位置選択領域３１３を、ＬＳＩ２００内の不図示のＤＭＡにより内蔵メモリ２０３に転送する。他の動作は、体１の実施の形態と同様である。
【００６５】
更に、変形例２を示す。
変形例２では、ワークメモリ２１３は、仮想フレームバッファ３１０に使うだけでなく、ＣＰＵ２０１の動作のワーキングメモリとしても利用される。ワークメモリ２１３は、ＯＳや各種アプリケーションのワーキングメモリとして使用されるため、仮想フレームバッファ３１０としても有効に使われたい。
【００６６】
そこで、仮想フレームバッファ３１０専用のＴＬＢ（Translation Look-aside Buffer）を設ける。
図１１は、仮想フレームバッファ専用のＴＬＢの概念を示す図である。
【００６７】
ＴＬＢは、仮想アドレスをメモリの物理アドレスに変換する一種のキャッシュメモリである。
ＴＬＢの内容をＣＰＵ２０１が書き換えることにより、ワークメモリ２１３を離散的なメモリ配置でなく、連続的な配置で取ることができる。ＦＢ（フレームバッファ）論理アドレスは飛び飛びの値であっても、実際にワークメモリ２１３にアクセスするＦＢ物理アドレスでは、連続的にすることが可能となる。連続的な配置で取ることにより、ワークメモリ２１３の未使用の領域は他の処理に有効に使うことができる。
【００６８】
仮想フレームバッファ３１０等を論理アドレスで扱うことにより、上記第１の実施の形態および変形例１の仮想フレームバッファ３１０への管理方法をそのまま利用できる。
上述したような第１の実施の形態の構成を取ることにより、サーバーベースコンピューティング動作をしながら、キャッシュメモリという形で効率的に仮想フレームバッファ構成していくことができる。また、モバイル端末装置１０４側のＣＰＵ２０１の負荷を必要とせず、通信量を削減でき、さらに高速な表示の描画を可能とする。また、変形例２を用いると、さらにＣＰＵ２０１の負荷を減らすことができ、メモリ資源も有効に使うことが出来る。
【００６９】
次に、本発明を適用した第２の実施の形態について説明する。
第２の実施の形態は、第１の実施の形態におけるスクロール操作の代わりに縮小操作が実行された場合の処理である。
【００７０】
図１２は、第２の実施の形態におけるフレームバッファの振る舞いを説明するための図である。
図１２の（Ａ）は、サーバー装置１０１内フレームバッファ３００を表しており、データ有効領域３１２は、既にモバイル端末装置１０４に送信済みの領域を示している。
【００７１】
図１２の（Ｂ）は、モバイル端末装置１０４内の仮想フレームバッファ３１０を表しており、データ有効領域３１２は、既にサーバー装置１０１より有効なデータが送られてきている。モバイル端末装置１０４上の操作により縮小操作が為され、表示位置選択領域３１３をＣＰＵ２０１がＬＣＤＣ２０２にセットする。ＬＣＤＣ２０２は、リサイザー２２５を利用して縮小処理をしてＬＣＤ２１０にデータを転送する。
【００７２】
図１２の（Ｃ）は、ＬＣＤ２１０で表示されている様子を示している。
このように第２の実施の形態においては、モバイル端末装置１０４の縮小操作およびＬＣＤ２０１への表示が実行されていても、サーバー装置１０１との通信は全く行われずに縮小表示が実行されている。
【００７３】
すなわち、モバイル端末装置１０４が縮小操作を行った際に、仮想フレームバッファ３１０内に利用する有効データがあるかないかをＣＰＵ２１０が判断し、データがあれば上述の通りモバイル端末装置１０４内で処理を実行し、データが無ければサーバー装置１０１よりデータを送って貰い、仮想フレームバッファ３１０の表示位置選択領域３１３を拡大しつつ、ＬＣＤ２１０に縮小画面を表示する。
【００７４】
なお、本第２の実施の形態は縮小操作であるが、拡大操作に関しては、ＬＣＤ２１０で表示されている画像の拡大であれば、必ず仮想フレームバッファ３１０のデータ有効領域３１２に扱うデータがあるため、サーバー装置１０１へのアクセス無しに処理を行うことができる。
【００７５】
これにより、縮小操作の際に、サーバー装置１０１へのアクセスを減らすことができ、消費電力の低減が図れる。さらに、サーバー装置１０１へアクセスを行わない分、高速化が可能となる。
【００７６】
次に、本発明を適用した第３の実施の形態について説明する。
第３の実施の形態は、第１の実施の形態におけるスクロール操作の代わりに回転操作が実行された場合の処理である。
【００７７】
図１３は、第３の実施の形態におけるフレームバッファの振る舞いを説明するための図である。
図１３の（Ａ）は、サーバー装置１０１内フレームバッファ３００を表しており、データ有効領域３１２は、既にモバイル端末装置１０４に送信済みの領域を示している。
【００７８】
図１３の（Ｂ）は、モバイル端末装置１０４内の仮想フレームバッファ３１０を表しており、データ有効領域３１２は、既にサーバー装置１０１より有効なデータが送られてきている。モバイル端末装置１０４上の操作により指定した領域を９０度右回転する回転操作が為され、表示位置選択領域３１３をＣＰＵ２０１がＬＣＤＣ２０２にセットする。ＬＣＤＣ２０２は、メモリコントローラ２２３内のＤＭＡＣ２２３ａを利用して回転操作を実行し、ＬＣＤ２１０にデータを転送する。前記ＤＭＡＣ２２３ａはスクリプトベース型のダイナミックメモリアクセスコントローラであり、画像が保持されている内蔵メモリ２０３のアドレッシングを自由に行うことができる。
【００７９】
図１３の（Ｃ）は、指定した領域を９０度右回転するＬＣＤ２１０で表示されている様子を示している。
このように第３の実施の形態においては、モバイル端末装置１０４の回転操作およびＬＣＤ２０１への表示が実行されていても、サーバー装置１０１との通信は全く行われずに回転表示が実行されている。
【００８０】
すなわち、モバイル端末装置１０４が回転操作を行った際に、仮想フレームバッファ３１０内に利用する有効データがあるかないかをＣＰＵ２１０が判断し、データがあれば上述の通りモバイル端末装置１０４内で処理を実行し、データが無ければサーバー装置１０１よりデータを送って貰い、仮想フレームバッファ３１０の表示位置選択領域３１３を回転させ、ＬＣＤ２１０に画面を表示する。
【００８１】
これにより、回転操作の際に、サーバー装置１０１へのアクセスを減らすことができ、消費電力の低減が図れる。さらに、サーバー装置１０１へアクセスを行わない分、高速化が可能となる。
【００８２】
以上、本発明の実施の形態を、図面を参照しながら説明してきたが、上述してきた本発明の各実施の形態におけるサーバー装置あるいはクライアント装置は、その一機能としてハードウェアまたはＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）ボードやＣＰＵボードでのファームウェアもしくはソフトウェアにより実現することができる。
【００８３】
また、本発明が適用されるクライアント装置は、その機能が実行されるのであれば、上述の各実施の形態に限定されることなく、単体の装置であっても、複数の装置からなるシステムあるいは統合装置であっても、ＬＡＮ、ＷＡＮ等のネットワークを介して処理が行なわれるシステムであってもよいことは言うまでもない。
【００８４】
また、本発明が適用されるクライアント装置は、バスに接続されたＣＰＵ、ＲＯＭやＲＡＭのメモリ、入力装置、出力装置、外部記録装置、媒体駆動装置、ネットワーク接続装置で構成されるシステムでも実現できる。すなわち、前述してきた各実施の形態のシステムを実現するソフトェアのプログラムを記録したＲＯＭやＲＡＭのメモリ、外部記録装置、可搬記録媒体を、クライアント装置に供給し、そのクライアント装置のコンピュータがプログラムを読み出し実行することによっても、達成されることは言うまでもない。
【００８５】
この場合、可搬記録媒体等から読み出されたプログラム自体が本発明の新規な機能を実現することになり、そのプログラムを記録した可搬記録媒体等は本発明を構成することになる。
【００８６】
プログラムを供給するための可搬記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、磁気テープ、不揮発性のメモリーカード、ＲＯＭカード、電子メールやパソコン通信等のネットワーク接続装置（言い換えれば、通信回線）を介して記録した種々の記録媒体などを用いることができる。
【００８７】
また、コンピュータ（情報処理装置）がメモリ上に読み出したプログラムを実行することによって、前述した各実施の形態の機能が実現される他、そのプログラムの指示に基づき、コンピュータ上で稼動しているＯＳなどが実際の処理の一部または全部を行ない、その処理によっても前述した実施の形態の機能が実現される。
【００８８】
さらに、可搬型記録媒体から読み出されたプログラムやプログラム（データ）提供者から提供されたプログラム（データ）が、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行ない、その処理によっても前述した各実施の形態の機能が実現され得る。
【００８９】
すなわち、本発明は、以上に述べた各実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲内で種々の構成または形状を取ることができる。
【図面の簡単な説明】
【００９０】
【図１】サーバーベースコンピューティングのネットワーク構成の概略を示す図である。
【図２】モバイル端末装置の消費電力の内訳の一例を示す図である。
【図３】本発明を適用したモバイル端末装置の構成の概略を示す図である。
【図４】ＬＣＤＣの内部構成を示す図である。
【図５】サーバー装置の構成の概略を示す図である。
【図６】フレームバッファの振る舞いを説明するための図である。
【図７】仮想フレームバッファ内での有効データの取り扱いを説明するための図である。
【図８】メイン処理の流れを示すフローチャートである。
【図９】スクロール処理の流れを示すフローチャートである。
【図１０】サーバー装置からモバイル端末装置へ転送されるデータの構造を示す図である。
【図１１】仮想フレームバッファ専用のＴＬＢの概念を示す図である。
【図１２】第２の実施の形態におけるフレームバッファの振る舞いを説明するための図である。
【図１３】第３の実施の形態におけるフレームバッファの振る舞いを説明するための図である。
【符号の説明】
【００９１】
１０１    サーバー装置
１０２    クライアント端末装置
１０３    無線アクセスポイント
１０４    モバイル端末装置
１０５    スマートフォン
１０９    ネットワーク
２００    ＬＳＩ
２０１    ＣＰＵ
２０２    ＬＣＤコントローラ（ＬＣＤＣ）
２０３    内蔵メモリ（ＲＡＭ）
２０４    メモリコントローラ（Ｍｅｍ．Ｃｏｎｔ．）
２０４ａ  内部バス（Ｂｕｓ）
２０４ｂ  内部バス
２０５    リアルタイムカウンタ（ＲＴＣ）
２０６    調歩同期シリアル通信（ＵＡＲＴ）
２０７    パワーマネージメントブロック（Ｐｏｗｅｒ  Ｍｇｍｔ）
２０８    ＵＳＢファンクション（ＵＳＢＦ）
２０９    無線通信部（ＷｉＦｉ）
２１０    ＬＣＤ
２１２    プログラム格納メモリ（ＦＲＯＭ）
２１３    ワークメモリ（ＳＤＲＡＭ）
２２１    バスインターフェース（ＢＵＳ  Ｉ／Ｆ）
２２２    レジスタ（Ｒｅｇ．）
２２３    メモリコントローラ（Ｍｅｍｏｒｙ  Ｃｏｎｔ．）
２２３ａ  ＤＭＡＣ（ダイレクトメモリアクセスコントローラ）
２２４    ＦＩＦＯ（先入れ先出しメモリ）
２２５    リサイザー（Ｒｅｓｉｚｅｒ）
２２６    ＦＩＦＯ
２２７    ＬＣＤ  Ｉ／Ｆ
３００    フレームバッファ（サーバー装置側）
３０１    領域
３０２    領域
３１０    仮想フレームバッファ
３１１    データ有効領域
３１２    データ有効領域
３１３    表示位置選択領域
４００    データ管理テーブル
４０１    小領域
４０２    小領域群
４０３    小領域群
７０１    ＣＰＵ
７０２    メモリ
７０３    入力部
７０４    表示部
７０５    記憶部
７０６    記録媒体駆動部
７０７    ネットワーク接続部
７００    バス
９０１    アドレス
９０２    コマンド
９０３    圧縮方式
９０４    展開先アドレス
９０５    サイズ
９０６    圧縮データ
【図２】
2007200145.tif 000003
【図３】
2007200145.tif 000004
【図４】
2007200145.tif 000005
【図５】
2007200145.tif 000006
【図８】
2007200145.tif 000007
【図１０】
2007200145.tif 000008
【図１１】
2007200145.tif 000009
【図１】
2007200145.tif 000010
【図６】
2007200145.tif 000011
【図７】
2007200145.tif 000012
【図９】
2007200145.tif 000013
【図１２】
2007200145.tif 000014
【図１３】
2007200145.tif 000015