説明

データ表示装置およびプログラム

【課題】サーバ装置から生成転送されクライアント装置で表示される描画データを応答性良く表示させるようにしたクライアント装置およびサーバ装置を提供する。
【解決手段】仮想スクリーン領域10Bの高さHvを画面表示領域26Aの高さHdより大きくし、該仮想スクリーン領域10B上下両端から設定幅手前に上方向スクロール時境界20u,下方向スクロール時境界20dを設け、上スクロール操作時は画面表示領域26A上端が上方向スクロール時境界20uに達した場合だけサーバ装置10に対して仮想スクリーン領域10Bのスクロール要求を送信し、下スクロール操作時は画面表示領域26A下端が下方向スクロール時境界20dに達した場合だけ仮想スクリーン領域10Bのスクロール要求を送信する。そして1スクロール操作あたりの画面表示領域26Aの移動幅Sdに対し、サーバ装置10への1スクロール要求に伴う仮想スクリーン領域10Bのスクロール幅SsをN倍以上(Ss≧N×Sd)に設定した。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、サーバ・クライアント・システムにおいて、サーバ装置から生成転送されクライアント装置で表示される描画データを応答性良く表示させるようにしたクライアント装置およびプログラムに関する。
【背景技術】
【0002】
従来のサーバ・クライアント・システムにおいて、例えばクライアント装置からのリモート操作によりサーバ装置側で所望のアプリケーションプログラムを起動実行させるシン・クライアント・システム(Thin client system)がある。このシン・クライアント・システムでは、クライアント装置の操作入力に応じてサーバ装置側で処理更新される表示用の描画データが該サーバ装置からその描画更新の都度クライアント装置へと送信転送されて表示される。これによりクライアント装置は、表示や入力など最低限の機能のみを持てば良く、アプリケーションなどの資源はサーバ装置で一元管理するものである。
【0003】
このようにシン・クライアント・システムは、サーバ装置上でアプリケーションプログラムが実行されるので、クライアント装置の性能が低い場合にも高機能なコンピューティング環境を実現可能である。このため携帯電話など、PC(Personal Computer)と比較して性能が低い端末をクライアント装置として利用することで、モバイルにおける高度なコンピューティング環境の実現が期待される。
【0004】
そしてこのシン・クライアント・システムの一形態として、例えば携帯電話からサーバ装置にアクセスし、当該サーバ装置のWebブラウザにより開かせたWebコンテンツを当該携帯電話に転送させて表示させる場合に、該携帯電話の表示画面サイズは小さいため、サーバ装置において、前記携帯電話からの表示指示位置に応じたWebコンテンツの画面領域を小さな端末表示画面サイズに合わせて縮小処理し転送表示させることが考えられている(例えば、特許文献1参照。)。
【先行技術文献】
【特許文献】
【0005】
【特許文献1】特開2004−348380号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
携帯電話網のデータ伝送遅延時間は、例えばLAN(Local Area Network)と比較して数百倍程度大きいことが知られており、上述したように、シン・クライアント・システムを携帯電話網で利用する場合には、このネットワークの伝送遅延時間がネックとなり、操作レスポンスが良くないという問題がある。
【0007】
具体的には、サーバ装置から携帯電話の表示画面に合わせて転送表示されているWebコンテンツの一部分の画面を、携帯電話のユーザ操作に応じてスクロール表示させるような場合に、そのスクロール操作に伴う画面移動要求がサーバ装置へ送信される都度、その移動範囲に応じた新たな画面領域がサーバ装置10から受信され表示されることになるが、当該スクロール操作の都度、新たな画面領域を受信したのでは、その度に前記伝送遅延時間からレスポンスが悪く待ち時間が生じてしまう問題がある。
【0008】
本発明は、このような課題に鑑みなされたもので、シン・クライアント・システムにおいて、伝送遅延の大きなネットワーク環境にあっても、操作レスポンス良くスクロール表示することが可能になるクライアント装置およびプログラムを提供することを目的とする。
【課題を解決するための手段】
【0009】
請求項1に記載のクライアント装置は、表示画面の画面サイズより大きなサイズの仮想スクリーンメモリを有するクライアント装置及びこのクライアント装置の仮想スクリーンメモリよりも大きなサイズの表示データを記憶するサーバ装置からなるシン・クライアント・システムのクライアント装置であって、
前記表示画面の高さを含む画面サイズに対応する表示データを前記仮想スクリーンメモリから読み出し当該表示画面に表示させる表示制御手段と、ユーザ操作に応じてスクロールを指示するスクロール指示手段と、このスクロール指示手段によるスクロールの指示に応じた表示データを、前記表示制御手段により前記仮想スクリーンメモリから読み出させてスクロール表示するスクロール表示制御手段と、このスクロール表示制御手段の制御に従い前記表示制御手段によりスクロールされた表示データが前記仮想スクリーンメモリから読み出されて前記表示画面に表示された際に、前記仮想スクリーンメモリの領域における上下両端に対応して設けられた上スクロール境界又は下スクロール境界に達したか否かを判断する境界判断手段と、この境界判断手段により前記表示画面に表示された表示データの画面領域が前記上スクロール境界又は前記下スクロール境界に達したと判断された場合に、前記サーバ装置に対してスクロール幅を有した表示データを要求するスクロール要求手段と、このスクロール要求手段によるスクロールの要求に応答して前記サーバ装置から受信された表示データにより前記仮想スクリーンメモリの内容を更新する仮想スクリーン更新手段と、を備え、前記上スクロール境界と前記下スクロール境界との間隔は、前記表示画面の高さと前記仮想スクリーンスクロール手段により前記サーバ装置から受信された表示データのスクロール幅との和よりも大きく設定される、ことを特徴としている。
【発明の効果】
【0010】
本発明によれば、シン・クライアント・システムにおいて、伝送遅延の大きなネットワーク環境にあっても、操作レスポンス良くスクロール表示することが可能になるクライアント装置およびプログラムを提供できる。
【図面の簡単な説明】
【0011】
【図1】本発明の実施形態に係るシン・クライアント・システムの全体構成を示す図。
【図2】前記シン・クライアント・システムにおけるサーバ装置10の回路構成を示すブロック図。
【図3】前記シン・クライアント・システムにおけるクライアント装置20の回路構成を示すブロック図。
【図4】前記シン・クライアント・システムのサーバ装置10により開かれた描画コンテンツ10Aとクライアント装置20へ転送される仮想スクリーン領域10Bおよび当該クライアント装置20で実際に表示される画面表示領域26Aとの関係を下方向への画面スクロールの各状態に応じて示す図。
【図5】前記クライアント装置20のRAM24に記憶される画面スクロール管理データ24aを示す図。
【図6】前記シン・クライアント・システムのクライアント装置20によるクライアント処理(その1)を示すフローチャート。
【図7】前記シン・クライアント・システムのクライアント装置20によるクライアント処理(その2)を示すフローチャート。
【図8】前記シン・クライアント・システムのクライアント装置20によるクライアント処理(その3)を示すフローチャート。
【図9】前記シン・クライアント・システムのサーバ装置10によるサーバ処理を示すフローチャート。
【図10】前記シン・クライアント・システムのサーバ装置10により開かれた描画コンテンツ10Aとクライアント装置20へ転送される仮想スクリーン領域10Bおよび当該クライアント装置20で実際に表示される画面表示領域26Aとの関係を上下方向および左右方向のスクロール制御に必要な各管理データと共に示す図。
【発明を実施するための形態】
【0012】
以下図面により本発明の実施の形態について説明する。
【0013】
図1は、本発明の実施形態に係るシン・クライアント・システムの全体構成を示す図である。
【0014】
このシン・クライアント・システムは、LAN(Local Area Network)やWAN(Wide Area Network)、あるいは携帯電話網からなるネットワークNET上に接続されたサーバ装置10および複数のクライアント装置20,…を備える。
【0015】
サーバ装置10は、文書作成処理プログラム,表計算処理プログラム,プレゼン資料作成プログラム,メール処理プログラム,インターネット接続処理プログラム、Web表示プログラムなど、複数のアプリケーションプログラムを有し、当該サーバ装置10に接続されたクライアント装置20,…からの操作入力(入力イベント)信号に応じて起動しその処理を実行する。
【0016】
このサーバ装置10において、クライアント装置20,…からの操作入力信号に応じたアプリケーションプログラムの実行に伴い生成された表示出力用の描画データは、圧縮処理されてアクセス元のクライアント装置20,…へ送信(転送)される。
【0017】
そして、クライアント装置20,…では、前記サーバ装置10から転送された描画データがその圧縮を解凍され、表示部に表示される。
【0018】
つまり、このシン・クライアント・システムにおける各クライアント装置20,…は、何れもキーボード及びマウスなどのユーザ操作に応じた入力機能とLCD表示部及びプリンタなどへの出力機能を主要な機能として有し、少なくとも前記サーバ装置10が有している各種のアプリケーション機能やデータファイルの管理機能を一切持っていない。
【0019】
そして、クライアント装置20,…からの操作入力(入力イベント)信号に応じてサーバ装置10にて起動実行される各種の処理に伴い生成されたデータファイルは、基本的には、当該サーバ装置10内あるいは該サーバ装置10にて接続管理される磁気ディスクなどの記憶装置にユーザアカウント毎あるいは共有ファイルとして記憶され保存される。
【0020】
図2は、前記シン・クライアント・システムにおけるサーバ装置10の回路構成を示すブロック図である。
【0021】
サーバ装置10は、コンピュータとしてのCPU11を備え、このCPU11には、バス12を介してROM13、RAM14、外部記憶装置15、表示装置16が接続されると共に、キーボード,マウスなどのキー入力装置17、クライアント装置20との通信I/F(インターフェイス)18が接続される。
【0022】
CPU11は、ROM13に予め記憶されているシステムプログラムや種々のアプリケーションプログラムに従ってRAM14を作業用メモリとし回路各部の動作を制御するもので、キー入力装置17からのキー入力信号や通信I/F19を介して受信されるクライアント装置20からのユーザ操作(入力イベント)に応じた処理指令信号などに応じて前記種々のプログラムが起動・実行される。
【0023】
このサーバ装置10において、端末装置20からの入力イベント信号に応じて起動・実行されるアプリケーションプログラムに従い生成された種々のデータは、例えばそのユーザIDに対応付けられて外部記憶装置15に記憶され、また表示用の描画データは、RAM14内の表示用メモリを使用して生成されると共に、圧縮処理されて通信I/F18からクライアント装置20へ転送されて表示出力される。
【0024】
図3は、前記シン・クライアント・システムにおけるクライアント装置20の回路構成を示すブロック図である。
【0025】
クライアント装置20は、コンピュータとしてのCPU21を備え、このCPU21には、バス22を介してROM23、RAM24が接続されると共に、キーボード,マウスなどの入力装置25、表示装置26、前記サーバ装置10との通信I/F(インターフェイス)27が接続される。
【0026】
CPU21は、ROM23に予め記憶されているシステムプログラムに従ってRAM24を作業用メモリとし回路各部の動作を制御するもので、入力装置25からの入力信号や通信I/F27を介して受信されるサーバ装置10からのアプリケーション応答信号,転送描画データなどに応じて前記システムプログラムが起動され実行される。
【0027】
このクライアント装置20において、前記サーバ装置10におけるアプリケーションプログラムを実行させて生成した種々のデータは、適宜、外部記憶装置15に読み込ませて記憶させ、また生成転送された表示用の描画データは、その圧縮が解凍されてRAM24内の表示用メモリに書き込まれ表示装置26で表示出力される。
【0028】
ここで、前記サーバ装置10におけるRAM14内の表示用メモリに生成された表示用の描画データには、例えば図4(A)に示すように、当該描画データの全内容(コンテンツ)10Aのうち前記クライアント装置20における表示用メモリのメモリサイズに応じた仮想スクリーン領域10Bが設定され、この仮想スクリーン領域10Bの描画データが読み出されてクライアント装置20へ転送される。そして、クライアント装置20では、前記仮想スクリーン領域10Bとして転送された描画データがRAM24内の表示用メモリに書き込まれると共に、そのうち表示装置26の画面表示領域26Aに対応する範囲の描画データのみ読み出されて表示される。
【0029】
図4は、前記シン・クライアント・システムのサーバ装置10により開かれた描画コンテンツ10Aとクライアント装置20へ転送される仮想スクリーン領域10Bおよび当該クライアント装置20で実際に表示される画面表示領域26Aとの関係を下方向への画面スクロールの各状態に応じて示す図である。
【0030】
このシン・クライアント・システムでは、クライアント装置20からのイベント入力に応じてサーバ装置10により開かれた描画コンテンツ10Aを当該クライアント装置20へ転送する場合に、クライアント装置20における表示装置26の画面表示領域26Aよりも大きな仮想スクリーン領域10Bを設定してその描画データを転送する。そしてさらに、クライアント装置20に転送された仮想スクリーン領域10Bの描画データには、その上端より予め設定された幅だけ残したところの上方向スクロール時境界20uと、同下端より予め設定された幅だけ残したところの下方向スクロール時境界20dとを設定し、画面表示領域26Aの下方向へのスクロールに伴い、該画面表示領域26Aが下方向スクロール時境界20dに到達したときに、サーバ装置10に対して仮想スクリーン領域10Bの内容を下方向へスクロールさせる要求を送信し、また同様に、画面表示領域26Aの上方向へのスクロールに伴い、該画面表示領域26Aが上方向スクロール時境界20uに到達したときに、サーバ装置10に対して仮想スクリーン領域10Bの内容を上方向へスクロールさせる要求を送信する。
【0031】
図5は、前記クライアント装置20のRAM24に記憶される画面スクロール管理データ24aを示す図である。
【0032】
この画面スクロール管理データ24aとしては、表示装置26の表示画面サイズに応じた画面表示領域26Aの高さHd、仮想スクリーン領域10Bの高さHv、描画コンテンツ10Aの高さHc、仮想スクリーン領域10B上端からの下方向スクロール時境界20dまでの幅Bdおよび同上方向スクロール時境界20uまでの幅Bu、1回のユーザスクロール操作に応じた画面表示領域26Aの移動幅(単位移動幅)Sd、サーバ装置10に対する1回のスクロール要求に応じた仮想スクリーン領域10Bのスクロール幅Ss、描画コンテンツ10A上端から仮想スクリーン領域10B上端までのオフセット幅Ocv、仮想スクリーン領域10B上端から画面表示領域26A上端までのオフセット幅Ovdがそれぞれ常時記憶更新されて管理される。
【0033】
ここで、前記仮想スクリーン領域10Bの高さHv、1回のユーザスクロール操作に応じた画面表示領域26Aの単位移動幅Sd、サーバ装置10に対する1回のスクロール要求に応じた仮想スクリーン領域10Bのスクロール幅Ss、仮想スクリーン領域10B上端からの下方向スクロール時境界20dまでの幅Bdおよび同上方向スクロール時境界20uまでの幅Buを、以下の条件式(式1)(式2)(式3)を満たすように設定する。
【0034】
Hv>Hd …(式1)
Ss≧N×Sd (但し、Nは2以上の整数) …(式2)
Bd−Bu>Hd+Ss …(式3)
前記(式1)に示すように、仮想スクリーン領域10Bの高さHvを、画面表示領域26Aの高さHdよりも大きくすることで、先読みキャッシュの役割を果たすことができる。そして、本実施形態では、画面表示領域26Aのスクロールが常に仮想スクリーン領域10Bの中で行われるように制御することで、サーバ装置10との通信レスポンスに影響されない、操作レスポンスの良いスクロール表示を実現する。
【0035】
前記(式2)に示すように、サーバ装置10に対する1回のスクロール要求に応じた仮想スクリーン領域10Bのスクロール幅Ssを、1回のユーザスクロール操作に応じた画面表示領域26Aの単位移動幅SdのN倍以上とすることで、連続して同一方向のスクロール操作を行う際に、その都度、サーバ装置10に対してスクロールの要求が発生されるのを防止し、サーバ装置10との通信頻度をN分の1以下に減らすことができる。なお、前記Nの値は2以上の整数に設定されるが、当該N値は、クライアント装置20のメモリ使用状況やユーザによるスクロール操作の頻度に応じて自動的に可変設定してもよい。この場合N値は、メモリ容量に余裕のあるときやスクロール操作の頻度が大きいときに大きな値に、メモリ容量に余裕のないときやスクロール操作の頻度が小さいときに小さな値に設定する。
【0036】
前記(式3)に示すように、仮想スクリーン領域10Bにおける上方向スクロール時境界20uと下方向スクロール時境界20dとの間隔(Bd−Bu)を、画面表示領域26Aの高さHdと仮想スクリーン領域10Bのスクロール幅Ssとの和よりも大きくすることで、ユーザスクロール操作に伴いその操作方向が上下逆転した場合に、同操作逆転時からサーバ装置10に対してスクロール要求を出すまで少なくともN回分(Ss≧N×Sd)のスクロール操作では、サーバ装置10に対してスクロール要求を送信する必要が無く、クライアント装置20に現存する仮想スクリーン領域10Bからの描画データの読み出しだけでスクロール表示することができる。これにより、例えばユーザが描画コンテンツ10Aを上下に短い幅で行ったりきたりして閲覧するような操作をした場合に、クライアント装置20とサーバ装置20間で通信をする必要が無く、移動体通信網NETのような伝送遅延の大きな通信網利用時においても操作レスポンス良くスクロール表示できる。
【0037】
次に、前記構成のシン・クライアント・システムにおける表示制御動作について説明する。
【0038】
図6は、前記シン・クライアント・システムのクライアント装置20によるクライアント処理(その1)を示すフローチャートである。
【0039】
図7は、前記シン・クライアント・システムのクライアント装置20によるクライアント処理(その2)を示すフローチャートである。
【0040】
図8は、前記シン・クライアント・システムのクライアント装置20によるクライアント処理(その3)を示すフローチャートである。
【0041】
クライアント装置20からサーバ装置10に対して所望のコンテンツの閲覧要求が送信されると、これに応答してサーバ装置10からその描画コンテンツ10Aが開かれたことを示す通知が受信される(ステップS1)。
【0042】
次いでサーバ装置10から、前記開かれた描画コンテンツ10Aの高さHcおよび描画コンテンツ10A上端から仮想スクリーン領域10B上端までのオフセット幅Ocvが受信され、画面スクロール管理データ24aとして記憶される(ステップS2,S3)。
【0043】
ここで、コンテンツが開いたというのは、サーバ装置10上で動作するアプリケーションがファイル等を開いた時や、同一アプリケーションにおいて今まで開いていたコンテンツとは別のコンテンツを開いたことを意味する。具体的には、WebブラウザによりWebページを開いた時や他のWebページにジャンプした時、エディタやワープロソフト等により文書ファイルを開いた時などであり、サーバ装置10より前記各通知を受信する。
【0044】
なお、本実施形態における仮想スクリーン領域10Bは、サーバ装置10上で動作するアプリケーションのウィンドウ(アプリケーションプログラムがコンテンツを表示する窓)と同じサイズとする。
【0045】
次いでクライアント装置20では、仮想スクリーン領域10B上端から画面表示領域26A上端までのオフセット幅Ovdが、前記画面スクロール管理データ24aとして記憶される(ステップS4)。
【0046】
すると、クライアント装置20では、サーバ装置10から受信された描画データによりRAM24内の表示メモリにおける仮想スクリーン領域10Bが更新された後、当該仮想スクリーン領域10Bの上端より前記オフセット幅Ovdの位置から画面表示領域26Aの高さHd分の描画データが読み出され表示装置26に表示される(ステップS5)。
【0047】
この状態が、例えば図4(A)に示すように、描画コンテンツ10Aを開いた時の最初の状態に相当する。
【0048】
クライアント装置20は、前記描画データの初期表示後、サーバ装置10からの更新画面(描画)データの受信待機状態(ステップS6)、またはユーザによるスクロール操作の待機状態(ステップS7)となる。
【0049】
ここで、ユーザ入力に伴い下方向へのスクロール操作が判断された場合には(ステップS8(Yes))、図4(B)に示すように、画面表示領域26Aが仮想スクリーン領域10Bに対して単位幅Sdだけ下方向に移動される。すなわち、仮想スクリーン領域10B上端から画面表示領域26A上端までのオフセット幅Ovdが、Ovd+Sdに更新され(ステップS10)、この移動更新後の位置の画面表示領域26Aに相当する仮想スクリーン領域10B内の描画データが読み出され表示装置26に表示される(ステップS11)。
【0050】
なお、前記下方向へのスクロール操作が判断された場合には(ステップS8(Yes))、その都度、仮想スクリーン領域10Bの高さHvから画面表示領域26A下端までの幅(Ovd+Hd)を差し引いた残りの幅が、1回のユーザスクロール操作に応じた画面表示領域26Aの移動幅Sd以下に達しているかが判断され(ステップS9)、この状態(図4(F)参照)に達していると判断された場合には(ステップS9(Yes))、当該移動幅Sd分のスクロール処理が行えないので、ステップS24以降の処理に分岐する。
【0051】
一方、前記ステップS11における、下方向のスクロール操作に伴う移動幅Sd分の画面表示領域26Aの下スクロール表示が繰り返されることで(ステップS11,S12(No)→S6(No),S7(Yes),S8(Yes),S9(No),S10,S11)、当該画面表示領域26Aの下端(Ovd+Hd)が仮想スクリーン領域10Bに設定した下方向スクロール時境界20dの位置(Bd)まで到達したと判断された場合には(ステップS12(Yes))、さらに、描画コンテンツ10Aの高さHcから仮想スクリーン領域10Bの高さHvを差し引いた残りの幅(Hc−Hv)が当該仮想スクリーン領域10B上端から画面表示領域26A上端までのオフセット幅Ovdに等しいか否かの判断によって、当該仮想スクリーン領域10Bが描画コンテンツ10Aの最下端に到達したか否か判断される(ステップS13)。
【0052】
ここで、仮想スクリーン領域10Bが描画コンテンツ10Aの最下端に未だ到達してないと判断された場合には(ステップS13(No))、下方向のスクロール操作であることを示すフラグFdがセットされると共に(ステップS14)、サーバ装置10に対して仮想スクリーン領域10Bの下方向へのスクロール要求が送信され(ステップS15)、当該サーバ装置10からのスクロールされた更新画面(描画)データの受信待機状態となる(ステップS6)。
【0053】
この後、サーバ装置10から描画コンテンツ10Aに対する仮想スクリーン領域10Bが下方向に移動幅Ss分スクロールされた更新画面(描画)データが受信されると(ステップS6(Yes))、RAM24内の表示メモリにおける仮想スクリーン領域10Bの内容が更新される(ステップS16)。
【0054】
そして、下方向のスクロール操作であることを示すフラグFdのセット状態であると判断された場合には(ステップS17(Yes))、描画コンテンツ10Aの高さHcから仮想スクリーン領域10B下端までの幅(Ocv+Hv)を差し引いた残りの幅が、サーバ装置10に対する1回のスクロール要求に応じた仮想スクリーン領域10Bのスクロール幅Ss以下に達しているか(図4(D)参照)が判断される(ステップS18)。
【0055】
ここで、例えば図4(C)に示すように、描画コンテンツ10Aの高さHcから仮想スクリーン領域10B下端までの幅(Ocv+Hv)を差し引いた残りの幅が、サーバ装置10に対する1回のスクロール要求に応じた仮想スクリーン領域10Bのスクロール幅Ss以下に未だ達していないと判断された場合には(ステップS18(No))、仮想スクリーン領域10B上端から画面表示領域26A上端までのオフセット幅Ovdが、当該仮想スクリーン領域10Bのスクロール幅Ssに応じて更新されると共に(ステップS19)、描画コンテンツ10A上端から仮想スクリーン領域10B上端までのオフセット幅Ocvも同仮想スクリーン領域10Bのスクロール幅Ssに応じて更新される(ステップS20)。
【0056】
すると、前記フラグFdがクリアされ(ステップS21)、サーバ装置10からの次の更新画面(描画)データの受信待機状態(ステップS6)、またはユーザによる次のスクロール操作の待機状態(ステップS7)となる。
【0057】
この後、前記仮想スクリーン領域10Bに設定された下方向スクロール時境界20dに前記画面表示領域26Aの下端が達しない状態での当該画面表示領域26Aの移動幅SdずつのN回の下方向スクロール表示処理(ステップS7(Yes)〜S12(No)→S6)と、同下方向スクロール時境界20dに画面表示領域26Aの下端が達した場合のサーバ装置10に対する仮想スクリーン領域10Bの下方向へのスクロール要求処理(ステップS7(Yes)〜S15)およびこれに伴いサーバ装置10から受信された更新画面(描画)データによる仮想スクリーン領域10Bの内容更新処理(ステップS6(Yes)→S16〜S21)とが繰り返されることで、例えば図4(D)に示すように、描画コンテンツ10Aの高さHcから仮想スクリーン領域10B下端までの幅(Ocv+Hv)を差し引いた残りの幅が、サーバ装置10に対する1回のスクロール要求に応じた仮想スクリーン領域10Bのスクロール幅Ss以下に達したと判断された場合には(ステップS18(Yes))、今回の仮想スクリーン領域10Bの内容更新処理によって、図4(E)に示すように、当該仮想スクリーン領域10Bの下端が描画コンテンツ10Aの下端に達する状態となるので、これに応じて、仮想スクリーン領域10B上端から画面表示領域26A上端までのオフセット幅Ovdが、当該仮想スクリーン領域10B下端から描画コンテンツ10A下端までの残り幅(Hc−(Ocv+Hv))に応じて更新され(ステップS22)、さらに、描画コンテンツ10A上端から仮想スクリーン領域10B上端までのオフセット幅Ocvも当該同仮想スクリーン領域10Bの高さHvに応じて更新される(ステップS23)。
【0058】
すると、前記フラグFdがクリアされ(ステップS21)、サーバ装置10からの次の更新画面(描画)データの受信待機状態(ステップS6)、またはユーザによる次のスクロール操作の待機状態(ステップS7)となる。
【0059】
こうして、仮想スクリーン領域10Bが描画コンテンツ10Aの下端まで達した状態(Ocv=Hc−Hv)で、前記同様に画面表示領域26Aの下方向へのスクロール表示処理が繰り返された後(ステップS7〜S13(Yes)→S6)、図4(F)に示すように、前記画面表示領域26A下端から仮想スクリーン領域10B下端までの残りの幅(Hv−(Ovd+Hd))が、1回のユーザスクロール操作に応じた当該画面表示領域26Aの移動幅Sd以下に達したと判断された場合には(ステップS9(Yes))、さらに同画面表示領域26A下端が仮想スクリーン領域10B下端に達した(Hv−(Ovd+Hd)=0)のか否か判断される(ステップS24)。
【0060】
ここで、前記画面表示領域26A下端が仮想スクリーン領域10B下端に未だ達していないと判断された場合には(ステップS24(No))、図4(G)に示すように、当該画面表示領域26Aの仮想スクリーン領域10Bに対する上端側オフセット幅Ovdが同画面表示領域26Aが仮想スクリーン領域10Bの下端に達した状態(Ovd=Hv−Hd)として更新される(ステップS25)。
【0061】
すると、仮想スクリーン領域10Bの下端から画面表示領域26Aの高さHdに相当する描画データが読み出され表示装置26に表示される(ステップS26)。
【0062】
一方、前記下方向へのスクロール操作が判断された場合(ステップS8(Yes))とは逆に、上方向へのスクロール操作が判断された場合(ステップS8(No))には、前記ステップS9〜S15およびS24〜S26にて説明した下方向のスクロール表示処理と同様の手法である、図7に示すような、ステップS9u〜S15uおよびS24u〜S26uでの上方向のスクロール表示処理が実行される。
【0063】
また、この上方向のスクロール表示処理に伴い、前記仮想スクリーン領域10Aの上方向へのスクロール要求に応じて、サーバ装置10から当該上方向スクロール後の更新画面(描画)データが受信され(ステップS6(Yes))、当該仮想スクリーン領域10Bの内容が更新された場合には(ステップS16)、前記ステップS18〜S23にて説明した下方向スクロールに伴う画面スクロール管理データ24aの更新処理と同様の手法である、図8に示すような、ステップS18u〜S23uでの下方向スクロールに伴う画面スクロール管理データ24aの更新処理が実行される。
【0064】
すなわち、上方向のスクロール操作が判断される毎に、先ず、仮想スクリーン領域10B内の画面表示領域26Aが単位移動幅Sdずつ上方向にスクロールされて表示装置26に表示される(ステップS7,S8(No)→S9u〜S12u(No)→S6)。
【0065】
そして、この上方向のスクロール表示処理に伴い、画像表示領域26Aの上端が仮想スクリーン領域10Bに設定された上方向スクロール時境界20uに達する毎に、下方向のスクロールフラグFdがクリアされ、仮想スクリーン領域10Bを移動幅Ss(≦N×Sd)で上方向にスクロールさせるための要求信号がサーバ装置10に対して送信される(ステップS12u(Yes)〜S15u→S6)。
【0066】
これにより、サーバ装置10から仮想スクリーン領域10Bが上方向に移動幅Ssでスクロールされた状態での更新画面(描画)データが受信され、RAM24内の表示メモリにおける仮想スクリーン領域10Bの内容が更新されると(ステップS6(Yes)→S16)、下方向のスクロールフラグFdがクリアされていることに従い(ステップS17(No))、仮想スクリーン領域10B上端から画面表示領域26A上端までのオフセット幅Ovd、および描画コンテンツ10A上端から仮想スクリーン領域10B上端までのオフセット幅Ocvのそれぞれが同仮想スクリーン領域10Bのスクロール幅Ssに応じて更新される(ステップS18u〜S20u)。
【0067】
この後、上方向にスクロール処理された仮想スクリーン領域10Bの上端から描画コンテンツ10A上端までの残り幅が当該仮想スクリーン領域10Bのスクロール幅Ss以下に達した場合には(ステップS6(Yes)→S16,S17(No)→S18u(Yes))、同仮想スクリーン領域10Bが描画コンテンツ10Aの上端に達した状態に合わせて、前記画面表示領域26A上端のオフセット幅Ovdおよび仮想スクリーン領域10B上端のオフセット幅Ocvがそれぞれ更新される(ステップS22u,S23u)。
【0068】
そして、さらなる上方向のスクロール表示処理に伴い(ステップS7(Yes)→S8(No))、前記画面表示領域26A上端のオフセット幅Ovdが1回のスクロール操作に伴う単位移動幅Sd以下に達した場合には(ステップS9u(Yes))、当該画面表示領域26Aが仮想スクリーン領域10Bの上端に達した状態に合わせて、同画面表示領域26A上端のオフセット幅Ovdが更新されると共に(ステップS26u)、その描画データが読み出されてスクロール表示される(ステップS26u)。
【0069】
このようにクライアント装置20では、画面表示領域26Aの次のスクロール先の描画データが当該クライアント装置20内に常に先読みされている状態にして上下両方向のスクロール表示処理が行われる。このため仮想スクリーン領域10Bをスクロールする際のサーバ装置10との間でのネットワークNET上の伝送遅延時間に影響を受けることなく、操作レスポンスの良いスクロール表示処理を行うことができる。
【0070】
図9は、前記シン・クライアント・システムのサーバ装置10によるサーバ処理を示すフローチャートである。
【0071】
クライアント装置20からの所望のコンテンツの閲覧要求に応じて、アプリケーションプログラムが起動され、その描画コンテンツ10Aが開かれたことが判断されると(ステップA1(Yes))、当該描画コンテンツ10Aの高さHcが取得されると共に(ステップA2)、当該描画コンテンツ10Aの上端から現在ウィンドウに表示している仮想スクリーン領域10B上端までのオフセット幅Ocvが取得される(ステップA3)。
【0072】
すると、クライアント装置20に対して、要求されたコンテンツが開いたことが通知されると共に、前記ステップA2,A3にて取得された描画コンテンツ10Aの高さHc、および仮想スクリーン領域10B上端のオフセット幅Ocvが送信される(ステップA4)。次に、クライアントの仮想スクリーン分の画面データをクライアント装置20へ送信する(ステップA5)。この画面データは前記開かれたコンテンツであって、クライアントの仮想スクリーン分のコンテンツである。
【0073】
そして、クライアント装置10からスクロールの要求が受信されると(ステップA6(Yes))、当該スクロール要求が下方向のスクロール要求であるか、上方向のスクロール要求であるかが判断され(ステップA7)、下方向のスクロール要求であると判断された場合には(ステップA7(Yes))、前記起動中のアプリケーションプログラムに対して仮想スクリーン領域10Bを下方向に1回の単位移動幅Sdで移動させるためのスクロール要求イベントがN回連続して発行され、当該仮想スクリーン領域10Bが移動幅Ss(=N×Sd)で下方向にスクロールされる(ステップA8)。
【0074】
すると、この下方向スクロールに応じた分、即ち、1回の単位移動幅SdのN倍分の描画データが読み出され、前記スクロール要求元のクライアント装置20へ送信転送される(ステップA9)。これにより、単位当たりのスクロール幅より大きい幅でスクロールした表示データがクライアント装置20へ送信される。
【0075】
一方、上方向のスクロール要求であると判断された場合にも(ステップA7(No))、前記同様に起動中のアプリケーションプログラムに対して仮想スクリーン領域10Bを上方向に1回の単位移動幅Sdで移動させるためのスクロール要求イベントがN回連続して発行され、当該仮想スクリーン領域10Bが移動幅Ss(=N×Sd)で上方向にスクロールされる(ステップA10)。
【0076】
すると、この上方向スクロールに応じた分の描画データが読み出され、前記スクロール要求元のクライアント装置20へ送信転送される(ステップA11)。これにより、単位当たりのスクロール幅より大きい幅でスクロールした表示データがクライアント装置20へ送信される。
【0077】
したがって、前記構成のシン・クライアント・システムにおけるスクロール表示の制御機能によれば、仮想スクリーン領域10Bの高さHvを画面表示領域26Aの高さHdより大きくすると共に、当該仮想スクリーン領域10Bの上下両端から設定された幅分手前の位置に上方向スクロール時の境界線20uおよび下方向スクロール時の境界線20dを設け、上方向のスクロール操作時は、前記画面表示領域26Aの上端が上方向スクロール時の境界線20uに達した場合にのみ、サーバ装置10に対して仮想スクリーン領域10Bのスクロール要求を送信し、下方向のスクロール操作時は、前記画面表示領域26Aの下端が下方向スクロール時の境界線20dに達した場合にのみ、サーバ装置10に対して仮想スクリーン領域10Bのスクロール要求を送信する。そして、1回のスクロール操作あたりの画面表示領域26Aの単位移動幅Sdに対して、前記サーバ装置10への1回のスクロール要求に伴う仮想スクリーン領域10Bのスクロール幅SsがN倍以上(Ss≧N×Sd)となるように設定したので、例えば連続する同一方向のスクロール操作時でも、そのスクロール操作の度にクライアント装置20とサーバ装置10との間でスクロール要求と描画データのやり取りを行う必要がなく、その通信頻度をN分の1以下に減らすことができる。このため、伝送遅延の大きなネットワークNETを利用した環境においても、これに影響されることなく、操作レスポンスの良いスクロール表示を行うことができる。
【0078】
また、前記構成のシン・クライアント・システムにおけるスクロール表示の制御機能によれば、前記仮想スクリーン領域10Bに設定した上方向スクロール時の境界線20uと下方向スクロール時の境界線20dとの間隔(Bd−Bu)を、前記画面表示領域26Aの高さHdと仮想スクリーン領域10Bのスクロール幅Ss(≧N×Sd)との和よりも大きくなるように設定したので、スクロール操作時において、上方向の操作から下方向の操作、あるいはその逆のような、スクロール方向が変化する操作が行われた場合に、当該操作方向が変化した直後からN回分(仮想スクリーン領域10Bのクロール幅Ss÷画面表示領域26Aのスクロール幅Sd)のスクロール操作については、サーバ装置10に対してスクロール要求を送信する必要がない。これにより、例えばユーザがコンテンツを短い幅で上下に行ったりきたりして閲覧するような操作をした場合に、クライアント装置20とサーバ装置10間で通信をする必要が無く、伝送遅延の大きな通信網利用時においても、操作レスポンスの良いスクロール表示を行うことができる。
【0079】
なお、前記実施形態では、図4で示したように、描画コンテンツ10Aと仮想スクリーン領域10Bおよび画面表示領域26Aの幅が、何れも等しい場合を実施例として、上下方向のスクロール操作に応じた表示制御機能についてのみ説明したが、次の図10に示すように、左右方向のスクロール操作をも含めた表示制御も同様にして実施することができる。
【0080】
図10は、前記シン・クライアント・システムのサーバ装置10により開かれた描画コンテンツ10Aとクライアント装置20へ転送される仮想スクリーン領域10Bおよび当該クライアント装置20で実際に表示される画面表示領域26Aとの関係を上下方向および左右方向のスクロール制御に必要な各管理データと共に示す図である。
【0081】
すなわち、上下方向のスクロール操作に応じた表示制御に加えて、左右方向のスクロール操作をも含めた表示制御を行う場合には、新たに、仮想スクリーン領域10Bの左端より予め設定された幅だけ残したところの左方向スクロール時境界20lと、同右端より予め設定された幅だけ残したところの右方向スクロール時境界20rとを設定する。そして、画面表示領域26Aの横幅Wd、仮想スクリーン領域10Bの横幅Wv、描画コンテンツ10Aの横幅Wc、仮想スクリーン領域10B左端からの左方向スクロール時境界20lまでの幅Blおよび同右方向スクロール時境界20rまでの幅Br、描画コンテンツ10A左端から仮想スクリーン領域10B左端までのオフセット幅Och、仮想スクリーン領域10B左端から画面表示領域26A左端までのオフセット幅Ohdを、画面スクロール管理データ24aとして加える。
【0082】
これにより、左右方向のスクロール操作に対しても、前述した上下方向のスクロール操作に応じた表示制御と同様の処理を行うことで、上下左右方向共に操作レスポンスの良いスクロール表示を行うことができる。
【0083】
なお、本願発明は、前記各実施形態に限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で種々に変形することが可能である。さらに、前記各実施形態には種々の段階の発明が含まれており、開示される複数の構成要件における適宜な組み合わせにより種々の発明が抽出され得る。例えば、各実施形態に示される全構成要件から幾つかの構成要件が削除されたり、幾つかの構成要件が異なる形態にして組み合わされても、発明が解決しようとする課題の欄で述べた課題が解決でき、発明の効果の欄で述べられている効果が得られる場合には、この構成要件が削除されたり組み合わされた構成が発明として抽出され得るものである。
【符号の説明】
【0084】
10 …サーバ装置
10A…描画コンテンツ
10B…仮想スクリーン領域
11 …サーバCPU
13 …サーバROM
14 …サーバRAM
15 …外部記憶装置
16 …サーバ表示装置
17 …サーバ入力装置
18 …サーバ通信I/F
20 …クライアント装置
20u…上方向スクロール時境界
20d…下方向スクロール時境界
20l…左方向スクロール時境界
20r…右方向スクロール時境界
21 …クライアントCPU
23 …クライアントROM
24 …クライアントRAM
24a…画面スクロール管理データ
25 …クライアント入力装置
26 …クライアント表示装置
26A…画面表示領域
27 …クライアント通信I/F
NET…通信ネットワーク

【特許請求の範囲】
【請求項1】
表示画面の画面サイズより大きなサイズの仮想スクリーンメモリを有するクライアント装置及びこのクライアント装置の仮想スクリーンメモリよりも大きなサイズの表示データを記憶するサーバ装置からなるシン・クライアント・システムのクライアント装置であって、
前記表示画面の高さを含む画面サイズに対応する表示データを前記仮想スクリーンメモリから読み出し当該表示画面に表示させる表示制御手段と、
ユーザ操作に応じてスクロールを指示するスクロール指示手段と、
このスクロール指示手段によるスクロールの指示に応じた表示データを、前記表示制御手段により前記仮想スクリーンメモリから読み出させてスクロール表示するスクロール表示制御手段と、
このスクロール表示制御手段の制御に従い前記表示制御手段によりスクロールされた表示データが前記仮想スクリーンメモリから読み出されて前記表示画面に表示された際に、前記仮想スクリーンメモリの領域における上下両端に対応して設けられた上スクロール境界又は下スクロール境界に達したか否かを判断する境界判断手段と、
この境界判断手段により前記表示画面に表示された表示データの画面領域が前記上スクロール境界又は前記下スクロール境界に達したと判断された場合に、前記サーバ装置に対してスクロール幅を有した表示データを要求するスクロール要求手段と、
このスクロール要求手段によるスクロールの要求に応答して前記サーバ装置から受信された表示データにより前記仮想スクリーンメモリの内容を更新する仮想スクリーン更新手段と、を備え、
前記上スクロール境界と前記下スクロール境界との間隔は、前記表示画面の高さと前記仮想スクリーンスクロール手段により前記サーバ装置から受信された表示データのスクロール幅との和よりも大きく設定される、
ことを特徴とするクライアント装置。
【請求項2】
表示画面の画面サイズより大きなサイズの仮想スクリーンメモリを有するクライアント装置及びこのクライアント装置の仮想スクリーンメモリよりも大きなサイズの表示データを記憶するサーバ装置からなるシン・クライアント・システムのクライアント装置であって、
前記表示画面の横幅を含む画面サイズに対応する表示データを前記仮想スクリーンメモリから読み出し当該表示画面に表示させる表示制御手段と、
ユーザ操作に応じてスクロールを指示するスクロール指示手段と、
このスクロール指示手段によるスクロールの指示に応じた表示データを、前記表示制御手段により前記仮想スクリーンメモリから読み出させてスクロール表示するスクロール表示制御手段と、
このスクロール表示制御手段の制御に従い前記表示制御手段によりスクロールされた表示データが前記仮想スクリーンメモリから読み出されて前記表示画面に表示された際に、前記仮想スクリーンメモリの領域における左右両端に対応して設けられた右スクロール境界又は左スクロール境界に達したか否かを判断する境界判断手段と、
この境界判断手段により前記表示画面に表示された表示データの画面領域が前記右スクロール境界又は左スクロール境界に達したと判断された場合に、前記サーバ装置に対してスクロール幅を有した表示データを要求するスクロール要求手段と、
このスクロール要求手段によるスクロールの要求に応答して前記サーバ装置から受信された表示データにより前記仮想スクリーンメモリの内容を更新する仮想スクリーン更新手段と、を備え、
前記左スクロール境界と右スクロール境界との間隔は、前記表示画面の横幅と前記仮想スクリーンスクロール手段により前記サーバ装置から受信された表示データのスクロール幅との和よりも大きく設定される、
ことを特徴とするクライアント装置。
【請求項3】
表示画面の画面サイズより大きなサイズの仮想スクリーンメモリを有するクライアント装置及びこのクライアント装置の仮想スクリーンメモリよりも大きなサイズの表示データを記憶するサーバ装置からなるシン・クライアント・システムのクライアント装置のコンピュータを、
前記表示画面の高さを含む画面サイズに対応する表示データを前記仮想スクリーンメモリから読み出し当該表示画面に表示させる表示制御手段、
ユーザ操作に応じてスクロールを指示するスクロール指示手段、
このスクロール指示手段によるスクロールの指示に応じた表示データを、前記表示制御手段により前記仮想スクリーンメモリから読み出させてスクロール表示するスクロール表示制御手段、
このスクロール表示制御手段の制御に従い前記表示制御手段によりスクロールされた表示データが前記仮想スクリーンメモリから読み出されて前記表示画面に表示された際に、前記仮想スクリーンメモリの領域における上下両端に対応して設けられた上スクロール境界又は下スクロール境界に達したか否かを判断する境界判断手段、
この境界判断手段により前記表示画面に表示された表示データの画面領域が前記上スクロール境界又は前記下スクロール境界に達したと判断された場合に、前記サーバ装置に対してスクロール幅を有した表示データを要求するスクロール要求手段、
このスクロール要求手段によるスクロールの要求に応答して前記サーバ装置から受信された表示データにより前記仮想スクリーンメモリの内容を更新する仮想スクリーン更新手段、として機能させ、
前記上スクロール境界と前記下スクロール境界との間隔は、前記表示画面の高さと前記仮想スクリーンスクロール手段により前記サーバ装置から受信された表示データのスクロール幅との和よりも大きく設定される、
ようにしたことを特徴とするプログラム。
【請求項4】
表示画面の画面サイズより大きなサイズの仮想スクリーンメモリを有するクライアント装置及びこのクライアント装置の仮想スクリーンメモリよりも大きなサイズの表示データを記憶するサーバ装置からなるシン・クライアント・システムのクライアント装置のコンピュータを、
前記表示画面の横幅を含む画面サイズに対応する表示データを前記仮想スクリーンメモリから読み出し当該表示画面に表示させる表示制御手段、
ユーザ操作に応じてスクロールを指示するスクロール指示手段、
このスクロール指示手段によるスクロールの指示に応じた表示データを、前記表示制御手段により前記仮想スクリーンメモリから読み出させてスクロール表示するスクロール表示制御手段、
このスクロール表示制御手段の制御に従い前記表示制御手段によりスクロールされた表示データが前記仮想スクリーンメモリから読み出されて前記表示画面に表示された際に、前記仮想スクリーンメモリの領域における左右両端に対応して設けられた右スクロール境界又は左スクロール境界に達したか否かを判断する境界判断手段、
この境界判断手段により前記表示画面に表示された表示データの画面領域が前記右スクロール境界又は左スクロール境界に達したと判断された場合に、前記サーバ装置に対してスクロール幅を有した表示データを要求するスクロール要求手段、
このスクロール要求手段によるスクロールの要求に応答して前記サーバ装置から受信された表示データにより前記仮想スクリーンメモリの内容を更新する仮想スクリーン更新手段、として機能させ、
前記左スクロール境界と右スクロール境界との間隔は、前記表示画面の横幅と前記仮想スクリーンスクロール手段により前記サーバ装置から受信された表示データのスクロール幅との和よりも大きく設定される、
ようにしたことを特徴とするプログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate


【公開番号】特開2012−198917(P2012−198917A)
【公開日】平成24年10月18日(2012.10.18)
【国際特許分類】
【出願番号】特願2012−122654(P2012−122654)
【出願日】平成24年5月30日(2012.5.30)
【分割の表示】特願2007−262629(P2007−262629)の分割
【原出願日】平成19年10月5日(2007.10.5)
【出願人】(000001443)カシオ計算機株式会社 (8,748)
【Fターム(参考)】