以下図面により本発明の実施の形態について説明する。
図1は、本発明の実施形態に係るサーバ装置10およびそのクライアント装置20(20P,20M),…を備えたサーバベース・コンピューティング・システムの構成を示すブロック図である。
このサーバベース・コンピューティング・システムは、LAN(Local Area Network)やWAN(Wide Area Network)からなるネットワークN上に接続されたサーバ装置10および複数のクライアント装置20(20P,20M),…を備える。
サーバ装置10は、例えばネットワークN上に有線接続されたパーソナルコンピュータである。クライアント装置20として、20PはネットワークN上のアクセスポイントAPを介して無線接続された携帯情報端末(PDA)、20Mは同アクセスポイントAPを介して無線接続された携帯電話である。
サーバ装置10は、文書作成処理プログラム,表計算処理プログラム,住所録プログラム,メモ帳プログラム,プレゼン資料作成プログラム,メール処理プログラム,インターネット接続処理プログラム、Web表示プログラム(Webブラウザ)など、種々のアプリケーション・プログラムを有し、当該サーバ装置10に接続されたクライアント装置20(20P,20M),…からの操作入力(入力イベント)信号に応じて起動しその処理を実行する。
このサーバ装置10において、クライアント装置20,…からの操作入力信号に応じたアプリケーション・プログラムの実行に伴い生成された表示出力用コンテンツの画面描画データは、転送用の描画データに変換されると共に圧縮・暗号化され、アクセス元のクライアント装置20,…へ送信(転送)される。
そして、クライアント装置20(20P,20M),…では、前記サーバ装置10から転送された画面描画データが解凍・復号化され、その表示部25に表示される。
ここで、サーバ装置10において、Webページなどの縦のサイズが長いコンテンツを取得または生成し、画面描画データとしてクライアント装置20に転送する際、通常表示モードでは、当該コンテンツの横のサイズをクライアント装置20の画面横サイズ(標準サイズ)に合わせた倍率で縮小して転送し、全体表示モードでは、当該コンテンツの横のサイズをクライアント装置20の画面横サイズ(標準サイズ)のn分の1に合わせた倍率で縮小して転送する機能を有する。
クライアント装置20は、前記通常表示モードでは、表示画面(25)の横サイズに合わせて転送された画面描画データのコンテンツをそのまま縦スクロール可能に表示させ、また、前記全体表示モードでは、表示画面(25)の横サイズのn分の1に合わせて縮小転送された画面描画データのコンテンツを縦にn分割して折返し横にn枚並べて表示させる機能を有する。
図2は、前記サーバベース・コンピューティング・システムにおけるサーバ装置10の回路構成を示すブロック図である。
サーバ装置10は、コンピュータとしてのCPU11を備え、このCPU11には、バス17を介してハードディスクやフラッシュROMからなるメモリ12、RAMからなる記憶部13、クライアント装置20との送受信制御部14、表示部15、入力部16、そして光ディスクや磁気ディスクなどの外部記憶媒体18aにデータを読み書きする記憶媒体読み書き部18が接続される。
CPU11は、メモリ12内のプログラムエリア12Aに予め記憶されている、あるいは外部記憶媒体18aからメモリ12に読み込まれて記憶されている、あるいはネットワークN上のプログラムサーバからメモリ12に読み込まれて記憶されているシステムプログラムや種々のアプリケーション・プログラムに従って記憶部13をワークエリア13Aとし回路各部の動作を制御するもので、入力部16からのキー入力信号や送受信制御部14を介して受信されるクライアント装置20(20P,20M),…からのユーザ操作(入力イベント)に応じた処理指令信号などに応じて前記種々のプログラムを起動・実行する。
このサーバ装置10において、クライアント装置20からの入力イベント信号に応じて起動・実行されるアプリケーション・プログラムに従い生成された種々のデータは、例えばそのユーザIDに対応付けられてメモリ12に記憶される。また表示用コンテンツの画面描画データは、メモリ12内に各クライアント装置20…に対応させて用意された仮想フレームバッファ(FB)12a,12b,…に書き込まれる。そして、前回描画データと今回描画データとの画像変化部分(差分画像)を抽出した転送用描画データに変換され、送受信制御部14からクライアント装置20へ転送されて表示出力される。
図3は、前記サーバベース・コンピューティング・システムにおけるクライアント装置20(20P,20M)の回路構成を示すブロック図である。
クライアント装置20は、コンピュータとしてのCPU21を備え、このCPU21には、バス27を介してフラッシュROMからなるメモリ22、RAMからなる記憶部23、前記サーバ装置10との送受信制御部24、表示コントローラ25aを介した表示部25、入力部26、そしてメモリカードなどの外部記憶媒体28aにデータを読み書きする記憶媒体読み書き部28が接続される。
前記表示コントローラ25aは、フレームバッファ(FB)25bを備え、このフレームバッファ(FB)25bには、前記サーバ装置10の仮想フレームバッファ(FB)12aに生成されて本クライアント装置20に転送され、その圧縮が解凍された画面描画データが記憶される。前記表示コントローラ25aは、前記フレームバッファ(FB)25bに記憶された描画データを、表示部25の表示バッファ(HB)25Aに応じたサイズで取り出し、当該表示部25の表示画面に表示させる。
CPU21は、メモリ22に予め記憶されている、あるいは外部記憶媒体28aからメモリ22に読み込まれた、あるいはネットワークN上のプログラムサーバからメモリ22に読み込まれたシステムプログラム(クライアント制御プログラム)に従って記憶部23を作業用メモリとし回路各部の動作を制御するもので、入力部26からのキー入力信号や送受信制御部24を介して受信されるサーバ装置10からのアプリケーション応答信号,転送描画データなどに応じて前記クライアント制御プログラムが起動され実行される。
このサーバベース・コンピューティング・システムでは、クライアント装置20からのキー入力などのイベントに応じてサーバ装置10にて仮想フレームバッファ(FB)12a上に生成された画面描画データは、当該描画データが生成更新される毎にその描画更新後に画像変化のあった領域が差分画像として抽出され、転送用描画データとしてクライアント装置20へ転送される。そして、当該クライアント装置20にて既にフレームバッファ(FB)25bに記憶され表示バッファ(HB)25Aに読み出されて表示されていた描画データに対しその画像変化の領域のみ順次書き替えられて表示更新されるものである。これにより、前記サーバ装置10からクライアント装置20へのデータ転送量を大幅に削減している。
図4Aは、前記サーバ装置10の仮想フレームバッファ(FB)12aに生成された画面描画データの展開例を示す図であり、同図(A)は通常表示モードでの描画データの展開状態を示す図、同図(B)は全体表示モードでの描画データの展開状態を示す図である。
図4Bは、前記図4Aのフレームバッファ12a(25b)における描画データの展開状態に対応したクライアント装置20の表示バッファ(HB)25Aにおける描画データの展開表示状態を示す図であり、同図(A)は通常表示モードでの描画データの展開表示状態を示す図、同図(B)は全体表示モードでの描画データの展開表示状態を示す図である。
本実施形態において、サーバ装置10が有する仮想フレームバッファ(FB)12aの領域サイズと、クライアント装置20が有するフレームバッファ(FB)25bの領域サイズは同一であり、当該フレームバッファ12a(25b)は、クライアント装置20の表示画面サイズ(WVGA:800(W)×480(H)ピクセル)に相当する表示バッファ(HB)25Aと同じ横サイズW(=800ピクセル)を有し、2倍の縦サイズ2H(=480×2=960ピクセル)を有する。
クライアント装置20の通常表示モードでは、フレームバッファ12a(25b)は、表示バッファ(HB)25Aに1対1に対応する上半分の領域のみが使用される。つまり、画面描画データのコンテンツとして、例えばWebページHPが取得された際には、当該WebページHPはフレームバッファ12a(25b)の横サイズWに合わせた表示倍率で縮小された後、図4Aの(A)に示すように、ユーザ指定(入力イベント)の位置に応じた1画面分のページ領域だけが切り出され、前記フレームバッファ12a(25b)の上半分の領域に展開される。
そして、前記フレームバッファ12a(25b)の上半分の領域に展開されている表示画面サイズに1対1に対応させたWebページHPのページ領域が、図4Bの(A)に示すように、そのまま表示バッファ(HB)25Aに展開されて表示部25に表示される。
一方、全体表示モードでは、前記フレームバッファ12a(25b)は、表示バッファ(HB)25Aの横2分の1×縦2倍に相当する左半分の領域のみが使用される。つまり、画面描画データのコンテンツとして、例えばWebページHPが取得された際には、当該WebページHPはフレームバッファ12a(25b)の横2分の1サイズ(W/2)に合わせた表示倍率で縮小された後、図4Aの(B)に示すように、ユーザ指定(入力イベント)の位置に応じたページ領域だけが切り出され、前記フレームバッファ12a(25b)の左半分の領域に展開される。
そして、前記フレームバッファ12a(25b)の左半分の領域に展開されている表示画面横サイズWの2分の1に合わせて縮小されたWebページHPのページ領域が、図4Bの(B)に示すように、縦に2分割されて折返され横2枚に並べたページHP1,HP2として表示バッファ(HB)25Aに展開されて表示部25に表示される。
なお、全体表示モードにおいて、図4Aの(B)で示したように、フレームバッファ12a(25b)の左半分の領域を使用してWebページHP(コンテンツ)が展開されている領域には、通常表示モードに戻した場合に当該フレームバッファ12a(25b)の上半分の領域に再展開されて1画面として表示されるページの範囲を示す枠(通常時表示枠)Fが、そのWebページHP(コンテンツ)の表示倍率に応じたサイズにして書き込まれる。このフレームバッファ12a(25b)のWebページHP(コンテンツ)の展開領域において書き込まれた通常時表示枠Fは、図4Bの(B)で示したように、そのままWebページHPと共に表示バッファ(HB)25Aに書き込まれて表示される。
前記フレームバッファ12a(25b)上のWebページHPの展開領域に書き込まれた通常時表示枠Fは、クライアント装置20からの上下方向のカーソル操作に伴う入力イベントに応じて上下方向に移動されて書き込まれ、これに伴い表示バッファ(HB)25Aにもその移動が反映されて書き込まれ表示部25に表示される。
前記通常時表示枠Fの前記WebページHP(コンテンツ)に対する書き込み位置は、当該WebページHPの縦方向の長さVHに対する先頭からの位置FP及び範囲FHにより管理され、これらの通常時表示枠Fの書き込み位置を管理する情報VH,FP,FHは、何れもワークエリア13Aに記憶され更新される。
また、クライアント装置20は、図4Bの(B)で示したように、全体表示モードにおいて前記フレームバッファ12a(25b)に展開されたWebページHPの描画データを、縦に2分割し横2枚に並べたページHP1,HP2として表示バッファ(HB)25Aに展開し表示部25に表示させる際に、その右端にスクロールバーBsを書き込んで表示させると共に、当該スクロールバーBsでのユーザ操作に応じて、現在表示されているWebページHP(コンテンツ)の領域をスクロールさせて更新させる機能を有する。
なお、このクライアント装置20において表示バッファ(HB)25Aの右端にスクロールバーBsを書き込んで表示させる制御をする場合、前記サーバ装置10において仮想フレームバッファ(FB)12aにWebページHPを縮小展開する際に、当該スクロールバーBsの横サイズαも予め考慮したサイズとして縮小展開する。つまり、前記WebページHPは、フレームバッファ12a(25b)の横サイズWから前記スクロールバーBsの横サイズαを差し引いた後の横2分の1サイズ((W−α)/2)に合わせた表示倍率で縮小される。
図5は、前記クライアント装置20の全体表示モードにおいて表示バッファ25Aの右端に書き込んで表示領域のスクロール操作を行うためのスクロールバーBsを抜き出して示す図である。
このスクロールバーBsは、上端に上タップボタンtu、下端に下タップボタンtdを有し、その間に、現状の表示領域H、上側非表示領域U、下側非表示領域Dをその領域比率に対応して示すスクロールボタンRを有する。
このスクロールバーBsにおける上タップボタンtuまたは下タップボタンtdをタップ操作すると、当該タップ操作の1回毎に、表示中のコンテンツ(HP)は破線矢印aまたはbで示す方向に1行分ずつスクロールされる。また、上側非表示領域Uまたは下側非表示領域Dをタップ操作すると、当該タップ操作の1回毎に、表示中のコンテンツ(HP)は破線矢印aまたはbで示す方向にN行分ずつスクロールされる。
次に、前記構成のサーバベース・コンピューティング・システムの動作について説明する。
図6は、前記サーバ装置10によるサーバ制御処理を示すフローチャートである。
図7は、前記サーバ装置10のサーバ制御処理に伴う全体表示処理を示すフローチャートである。
図8は、前記サーバ装置10のサーバ制御処理に伴う全体表示解除処理を示すフローチャートである。
図9は、前記サーバ装置10のサーバ制御処理に伴うカーソルキー処理を示すフローチャートである。
図10は、前記クライアント装置20によるクライアント制御処理を示すフローチャートである。
図11は、前記クライアント装置20のクライアント制御処理に伴う全体表示処理を示すフローチャートである。
図12は、前記クライアント装置20のクライアント制御処理に伴う全体表示解除処理を示すフローチャートである。
図13は、前記クライアント装置20のクライアント制御処理に伴うスクロール処理を示すフローチャートである。
まず、クライアント装置20において、入力部26のユーザ操作によりサーバ装置10への接続要求を指示すると、送受信制御部24からサーバ装置10に対して接続確立の処理要求が送信され(ステップC11)、当該サーバ装置10との間での認証処理などに基づいた接続確立処理が実行される(ステップC12)。
サーバ装置10において、前記クライアント装置20から送信された接続確立の処理要求が受信されると(ステップS11)、当該接続要求元のクライアント装置20との間での認証処理などに基づいた接続確立処理が実行される(ステップS12)。
こうして、サーバ装置10とクライアント装置20との接続が確立した状態で、当該クライアント装置20においてユーザ操作に応じた入力イベントが発生したと判断されると(ステップC13(YES))、この入力イベントに応じた処理が行われる(ステップC14〜C110)。
ここで、ユーザ操作に伴う入力イベントが、全体表示モードの設定指示でも解除指示でもなく、また、スクロールバーBsに対するタップ操作でもないと判断される場合には(ステップC14(NO)→S15(NO)→S16(NO))、カーソルキー入力など、ユーザ操作に応じたその他の入力イベントがサーバ装置10へ送信される(ステップC17)。
サーバ装置10において、前記クライアント装置20から送信されたユーザ操作に伴う入力イベントが受信されると(ステップS13)、当該受信されたユーザ入力イベントが、当該イベント内容に対応するアプリケーション・プログラムに送信される(ステップS14)。
ここで、前記ユーザ入力イベントの内容が、全体表示モードの設定指示イベントでも解除指示イベントでもなく、また、カーソルキーの入力イベントでもなく、さらに表示スクロールの命令イベントでもないと判断される場合には(ステップS15(NO)→S16(NO)→S17(NO)→S18(NO))、当該その他の入力イベントに応じたアプリケーション・プログラムによる処理が実行され、クライアント装置20に表示すべきコンテンツの画面描画データが生成されてフレームバッファ(FB)12aに書き込まれ、前回生成された画面描画データとの差分画像が同クライアント装置20へ送信される(ステップS19)。
一方、前記クライアント装置20において、前記ユーザ操作に伴う入力イベントに応答して前記サーバ装置10により生成された画面描画データが受信されたと判断されると(ステップC111(YES))、この受信された画面描画データはフレームバッファ(FB)25bに転送されて書き込まれる(ステップC112)。
ここで、記憶部23の作業領域に記憶された表示モードのフラグが、全体表示モード“ON”ではない、つまり通常表示モードであると判断された場合には(ステップC113(NO))、前記フレームバッファ(FB)25bの上半分の領域に書き込まれた描画データが読み出されてそのまま表示バッファ(HB)25Aに書き込まれ(図4A(A)及び図4B(A)参照)、表示部25に表示される(ステップC115)。
この通常表示モードにおいて、縦に長いコンテンツであるWebページHPなどから画面描画データが生成され表示された場合、その縦方向の一部分のみが表示されるので、ユーザ所望の情報が載っている部分を探し出すのが容易でない。
そこで、全体表示モードにより表示する場合に、先ず、ユーザ操作に応じた入力イベントが全体表示モードの設定指示であると判断されると(ステップC14(YES))、全体表示処理に移行され(ステップC18)、記憶部23の作業領域に全体表示モード“ON”のフラグがセットされる(ステップC21)。
すると、サーバ装置10に対して、全体表示を指示するためのコマンドと、表示バッファ(HB)25Aとフレームバッファ(FB)25bとの領域比率(縦N倍)に応じた画面表示の分割数(この場合“2”)とが送信される(ステップC22)。
サーバ装置10において、前記クライアント装置20から送信された全体表示のコマンドが受信されると(ステップS13(YES)→S14(YES))、全体表示処理へ移行され(ステップS15→S111)、前記クライアント装置20から送信された分割表示数“2”が取得されると共に、当該分割表示数“2”(=HS)とされる(ステップS21)。
すると、フレームバッファ(FB)12a上で、クライアント装置20に対する画面描画データを生成するためのウインドウのサイズが、
横:(フレームバッファの横サイズ−α)/HS
縦:フレームバッファの縦サイズ
に変更される(図4A(B)参照)。ここで“α”は、クライアント装置20が描画表示するスクロールバーBs(図4B(B)参照)の横サイズである(ステップS22)。
すると、ユーザ入力イベントに応じて生成されたコンテンツの画面描画データからスクロールバーが消去された後(ステップS23)、当該コンテンツの前記ウインドウサイズに合わせたリサイズ処理が実行される(ステップS24)。
この場合、前記コンテンツをリサイズする倍率ZPは、
ZP=ウインドウの横サイズ/コンテンツの横サイズ
とされる。このリサイズ処理によりコンテンツの横幅がウインドウの横幅と等しくなる。
そして、通常表示モードに戻した場合に、例えば図4A(A)で示したように前記フレームバッファ12aの上半分の領域に再展開されて1画面として表示される範囲を示す枠(通常時表示枠)Fが、例えば図4A(B)で示したように当該フレームバッファ12aに書き込まれる(ステップS25)。
ここで、前記通常時表示枠Fの領域サイズは、
横:表示バッファの横サイズ*ZP × 縦:表示バッファの縦サイズ*ZP
となり、例えば前記フレームバッファ(FB)12aに生成されたコンテンツの左上に書き込まれる。
すると、前記リサイズ処理(S24)されたコンテンツの縦サイズ(=VH)、及び前記通常時表示枠Fを書き込んだ当該コンテンツ上の位置(=FP)、通常時表示枠Fの縦サイズ(=FH)が(図4A(B)参照)、クライアント装置20へ送信され(ステップS26)、さらに前記リサイズ処理されてフレームバッファ(FB)12aのウインドウに書き込まれた画面描画データの差分画像がクライアント装置20へ送信される(ステップS27)。
なお、前記フレームバッファ(FB)12bに生成されるコンテンツの全体に対する前記通常時表示枠Fの書き込み位置は、
通常時表示枠Fから上の領域:FP/VH
通常時表示枠Fの領域:FH/VH
通常時表示枠Fから下の領域:(VH−FP−FH)/VH
として管理される。
クライアント装置20において、前記サーバ装置10から送信されたコンテンツの縦サイズ(=VH)、及び前記通常時表示枠Fを書き込んだ当該コンテンツ上の位置(=FP)、通常時表示枠Fの縦サイズ(=FH)が受信され(ステップC23)、また同サーバ装置10から続いて送信された前回の画面描画データとの差分画像が受信されてフレームバッファ(FB)25bに転送されると(ステップC24)、図4A(B)及び図4B(B)で示したように、当該フレームバッファ(FB)25bに転送された画面描画データは、その上左領域のデータと下左領域のデータとに縦2分割され、横に2枚並べたページHP1,HP2として表示バッファ(HB)25Aに書き込まれて表示部25に表示される(ステップC25)。そして、表示画面の右端にスクロールバーBsが表示される(ステップC26)。
ここで、前記スクロールバーBsのスクロールボタンRに対応する現状の表示領域Hと、上側非表示領域U、下側非表示領域Dとの領域比率は(図5参照)、前記ステップC23にて受信されたコンテンツのサイズ情報に基づき設定されて表示される。
このように全体表示モードでは、表示バッファ(HB)25Aに対するフレームバッファ(FB)12a(25b)の領域比率を縦n倍とし、表示バッファ(HB)25Aの横サイズのn分の1に合わせて縮小されフレームバッファ(FB)12a(25b)に書き込まれた画面描画データを、縦にn分割して折返し横にn枚並べて表示させるので、縦に長いコンテンツであるWebページHPなどが画面描画データとして取得され表示された場合でも効率よく表示され、ユーザ所望の情報が載っている部分を容易に探し出すことができる。
次に、前記全体表示モードでの画面データのスクロール処理及び通常時表示枠Fの移動処理(カーソル処理)について記載する。
クライアント装置20において、表示部25に表示されたスクロールバーBsに対するタップ操作が検出されると(ステップC16)、図13におけるスクロール処理へ移行され(ステップC110)、当該スクロールバーBsのどの部分がタップ操作されたか判断される(ステップC41〜C44)。
ここで、前記スクロールバーBsの上タップボタンtuがタップされたと判断された場合には(ステップC41(YES))、表示中の画面データを上方向(図4B(B)の矢印a方向)に1行スクロールさせる命令がサーバ装置10へ送信され(ステップC46)、スクロールボタンRの位置が更新される(ステップC49)。
また、前記スクロールバーBsの下タップボタンtdがタップされたと判断された場合には(ステップC42(YES))、表示中の画面データを下方向(図4B(B)の矢印b方向)に1行スクロールさせる命令がサーバ装置10へ送信され(ステップC47)、スクロールボタンRの位置が更新される(ステップC49)。
また、前記スクロールバーBsの上側非表示領域Uがタップされたと判断された場合には(ステップC43(YES))、表示中の画面データを上方向(図4B(B)の矢印a方向)にN行スクロールさせる命令がサーバ装置10へ送信され(ステップC48)、スクロールボタンRの位置が更新される(ステップC49)。
さらに、前記スクロールバーBsの下側非表示領域Dがタップされたと判断された場合には(ステップC44(YES))、表示中の画面データを下方向(図4B(B)の矢印b方向)にN行スクロールさせる命令がサーバ装置10へ送信され(ステップC45)、スクロールボタンRの位置が更新される(ステップC49)。
サーバ装置10において、前記クライアント装置20から送信されたスクロール命令が受信されたと判断されると(ステップS18(YES))、当該スクロール命令において指定された方向及び量に応じて、フレームバッファ(FB)12aに生成されている画面描画データのコンテンツが、例えば図4A(B)で示す矢印a又はb方向にスクロール処理されて書き替えられ、前回の画面描画データとの差分画像がクライアント装置20へ送信される(ステップS114)。
クライアント装置20において、前記サーバ装置10からスクロール処理されて送信された画面描画データが受信されると(ステップC111(YES))、この受信された画面描画データはフレームバッファ(FB)25bに転送されて書き込まれる(ステップC112)。そして、記憶部23の作業領域に記憶された表示モードのフラグが、全体表示モード“ON”であると判断され(ステップC113(YES))、前記フレームバッファ(FB)25bに転送された画面描画データが、その上左領域のデータと下左領域のデータとに縦2分割され、横に2枚並べたページHP1,HP2として表示バッファ(HB)25Aに書き込まれて表示部25に表示される(ステップC114)。
これにより、クライアント装置20の表示部25に横に並べて分割表示された画面描画データを、スクロールバーBsに対するユーザ操作に応じて適宜上下スクロールさせて表示させることができる。
一方、クライアント装置20において、前記図4A(B)及び図4B(B)で示したように、表示部25に表示されている画面データ上の通常時表示枠Fを移動させるためにカーソルキーが操作されると、当該カーソルキーの操作方向を示す入力イベント情報がサーバ装置10へ送信される(ステップC13〜C17)。
サーバ装置10において、前記クライアント装置20から送信されたカーソルキーの入力イベント情報が受信されたと判断されると(ステップS17(YES))、図9におけるカーソル処理へ移行される(ステップS113)。
このカーソルキー処理では、先ず、図4A(B)で示したように、フレームバッファ(FB)12a上に書き込まれている通常時表示枠Fの座標が取得される(ステップS41)。
そして、上カーソルキーの入力イベントであると判断された場合には(ステップS42(YES))、前記フレームバッファ(FB)12a上での通常時表示枠Fの座標が最上端に位置しているか否か判断され(ステップS48)、最上端でないと判断された場合には(ステップS48(NO))、当該通常時表示枠Fの書き込み位置をNピクセル分上側に移動させる(ステップS411)。
一方、前記フレームバッファ(FB)12a上での通常時表示枠Fの座標が最上端に位置していると判断された場合には(ステップS48(YES))、現在描画表示中のコンテンツが上スクロール可能か否か判断される(ステップS49)。そして、上スクロール可能と判断された場合には(ステップS49(YES))、前記フレームバッファ(FB)12aに生成されている画面描画データのコンテンツがMピクセル分上にスクロール処理されて書き替えられる(ステップS410)。
そして、前記通常時表示枠Fの上側への移動処理、又は前記画面描画データのコンテンツの上スクロール処理によって生じた、前回の画面描画データとの差分画像がクライアント装置20へ送信される(ステップS412)。
また、サーバ装置10において、前記クライアント装置20から受信された入力イベントが下カーソルキーの入力イベントであると判断された場合には(ステップS43(YES))、前記フレームバッファ(FB)12a上での通常時表示枠Fの座標が最下端に位置しているか否か判断され(ステップS44)、最下端でないと判断された場合には(ステップS44(NO))、当該通常時表示枠Fの書き込み位置をNピクセル分下側に移動させる(ステップS47)。
一方、前記フレームバッファ(FB)12a上での通常時表示枠Fの座標が最下端に位置していると判断された場合には(ステップS44(YES))、現在描画表示中のコンテンツが下スクロール可能か否か判断される(ステップS45)。そして、下スクロール可能と判断された場合には(ステップS45(YES))、前記フレームバッファ(FB)12aに生成されている画面描画データのコンテンツがMピクセル分下にスクロール処理されて書き替えられる(ステップS46)。
そして、前記通常時表示枠Fの上下方向への移動処理、又は前記画面描画データのコンテンツの上下スクロール処理によって生じた、前回の画面描画データとの差分画像がクライアント装置20へ送信される(ステップS412)。
クライアント装置20において、前記サーバ装置10から通常時表示枠Fの上側又は下側への移動処理を経て送信された画面描画データが受信されると(ステップC111(YES))、この受信された画面描画データはフレームバッファ(FB)25bに転送されて書き込まれる(ステップC112)。そして、記憶部23の作業領域に記憶された表示モードのフラグが、全体表示モード“ON”であると判断され(ステップC113(YES))、前記フレームバッファ(FB)25bに転送された画面描画データが、その上左領域のデータと下左領域のデータとに縦2分割され、横に2枚並べたページHP1,HP2として表示バッファ(HB)25Aに書き込まれて表示部25に表示される(ステップC114)。
これにより、クライアント装置20の表示部25に横に並べて分割表示された画面描画データに書き込まれて、通常表示モードに戻した場合に1画面として表示される範囲を示す通常時表示枠Fを、カーソルキーのユーザ操作に応じて適宜上下移動させて表示させることができ、ユーザ所望の情報が載っているページ部分を容易に指定することができる。
なお、前記フレームバッファ(FB)12aに書き込まれた画面描画データ上で前記通常時表示枠Fが左右方向に移動可能であった場合には、左右のカーソルキー入力によって前記同様に通常時表示枠Fを左右に移動表示させることができる。
次に、前記全体表示モードでの画面描画データの縦n枚分割・横n枚並べ表示処理、および当該画面描画データのスクロール表示処理、および通常時表示枠Fの移動表示処理を経て、ユーザ所望の情報が載っているページ部分を通常時表示枠Fにより選択した状態で、当該通常時表示枠Fのページ部分を一画面として表示させるべく、全体表示を解除して通常表示に移行する。
クライアント装置20において、ユーザ操作に伴う入力イベントが、全体表示モードの解除指示であると判断されると(ステップC15(YES))、図12における全体表示解除処理へ移行される(ステップC19)。
この全体表示解除処理では、先ず、記憶部23の作業領域にセットされている全体表示モードのフラグが“ON”から“OFF”にクリアされ(ステップC31)、全体表示の解除を指示するコマンドがサーバ装置10へ送信される(ステップC32)。
そして、表示バッファ(HB)25Aの右端に書き込まれて表示されているスクロールバーBs(図4B(B)参照)が消去される(ステップC33)。
サーバ装置10において、前記クライアント装置20から送信された全体表示解除の指示が受信されると(ステップS16(YES))、図8における全体表示解除処理へ移行される(ステップS112)。
この全体表示解除処理では、先ず、図4A(B)で示したように、フレームバッファ(FB)12a上に書き込まれている通常時表示枠Fの座標が取得される(ステップS31)。
そして、前記取得されたフレームバッファ(FB)12a上での通常時表示枠Fの座標が、当該フレームバッファ(FB)12a上の画面描画データのコンテンツ(HP)を通常表示のために表示バッファ(HB)25Aのサイズに合わせてリサイズした場合に、このリサイズしたコンテンツの何処の座標になるか算出される(ステップS32)。
すると、フレームバッファ(FB)12a上でクライアント装置20に対する画面描画データを生成するためのウインドウのサイズが、当該クライアント装置20の表示バッファ(HB)25Aに合わせたサイズに変更される(図4A(A)及び図4B(A)参照)(ステップS33)。
すると、前記全体表示されていた画面描画データのコンテンツ(HP)が、前記ステップS33におけるサイズ変更後のウインドウに合わせた標準倍率にリサイズされてフレームバッファ(FB)12aに書き込まれ(ステップS34)、前記ステップS32において算出された前記通常時表示枠Fに対応する座標の位置にスクロールされる(ステップS35)。
そして、前記フレームバッファ(FB)12aに書き込まれてスクロールされた画面描画データの所定の位置にスクロールバーが描画され(ステップS36)、当該フレームバッファ(FB)12aの標準サイズのウインドウ(図4A(A)参照)に書き込まれた画面描画データの差分画像がクライアント装置20へ送信される(ステップS37)。
クライアント装置20において、前記標準サイズにリサイズされて前記通常時表示枠Fに対応させてスクロール処理された画面描画データが受信されたと判断されると(ステップC111(YES))、この受信された画面描画データはフレームバッファ(FB)25bに転送されて書き込まれる(ステップC112)。
ここで、記憶部23の作業領域に記憶された表示モードのフラグが、全体表示モード“ON”ではない、つまり通常表示モードであると判断されると(ステップC113(NO))、前記フレームバッファ(FB)25bの上半分の領域に書き込まれた描画データが読み出されてそのまま表示バッファ(HB)25Aに書き込まれ(図4A(A)及び図4B(A)参照)、表示部25に表示される(ステップC115)。
これにより、ユーザ所望の情報が載っているページ部分を通常時表示枠Fにより容易に選択して標準倍率の1画面として表示させ、その内容を見易く確認することができる。
この後、クライアント装置20において、前記サーバ装置10との接続を終了する操作が行われると(ステップC116(YES))、当該サーバ装置10に対して接続終了処理信号が送信される(ステップC117)。
そして、サーバ装置10において、前記クライアント装置20から送信された接続終了処理信号が受信されると(ステップS110(YES))、当該クライアント装置20との接続が終了される(ステップS115)。
したがって、前記構成のサーバベース・コンピューティング・システムによれば、クライアント装置20の表示バッファ(HB)25Aの縦n倍の領域からなるフレームバッファ(FB)12a(25b)を用意し、通常表示モードでは、表示バッファ(HB)25Aの領域に等しいフレームバッファ(FB)12a(25b)のn分の1の領域をウインドウとしてクライアント装置20からの入力イベントに応じて生成された画面描画データを展開し、そのまま表示バッファ(HB)25Aに書き込んで1画面表示させる。また、全体表示モードでは、前記生成された画面描画データを前記表示バッファ(HB)25Aの横n分の1に合わせた倍率で縮小して前記フレームバッファ(FB)12aに展開し、当該n分の1サイズにした画面描画データを縦n分割し横n枚に並べて表示バッファ(HB)25Aに書き込んで表示させる。これにより、ユーザ入力操作に応じて生成された画面描画データが例えば縦に長いWebページHPなどのコンテンツであっても、表示部25の表示画面に効率的に全体表示させることができ、ユーザ所望の情報が載っているページ部分を容易に見つけ出し、前記通常表示モードに戻して見易く確認することができる。
また、前記構成のサーバベース・コンピューティング・システムによれば、サーバ装置10において取得生成されるWebページHPなどの画面描画データに含まれるスクロールバーは消去され、クライアント装置20において、前記サーバ装置10から受信された前記画面描画データのコンテンツの全長サイズと現在表示されている範囲とに基づき、スクロールバーBsを表示させる。そして、このスクロールバーBsの操作に応じた画面スクロールの命令によりサーバ装置10にて生成されている画面描画データがスクロール処理されて更新されるので、前記全体表示モードにより縦n分割し横n枚に並べて表示した場合でも、適宜、画面データのスクロール表示を行い、ユーザ所望の情報が載っているページ部分を容易に見つけ出すことができる。
また、前記構成のサーバベース・コンピューティング・システムによれば、サーバ装置10において全体表示モードにてフレームバッファ(FB)12a上に生成される画面描画データには、通常表示モードに戻した場合に表示バッファ(HB)25Aに合わせたサイズで1画面にして表示される範囲を示す通常時表示枠Fを書き込み、クライアント装置20からのカーソルキー入力に応じて移動可能にして表示させる。これにより、ユーザ入力イベントに応じた画面描画データを全体表示モードにて縦n分割し横n枚に並べて全体表示した状態で、ユーザ所望の情報が載っているページ部分を前記通常時表示枠Fにより容易に指定でき、通常表示モードに戻し見易くして確認することができる。
なお、前記実施形態では、クライアント装置20の表示バッファ(HB)25Aの縦2倍の領域からなるフレームバッファ(FB)12a(25b)を用意することで、全体表示モードでは、ユーザ入力イベントに応じて生成された標準サイズ(表示バッファ(HB)25Aの横サイズに対応)の画面描画データを2分の1サイズに縮小してフレームバッファ(FB)12aに展開し、これを縦2分割し横2枚に並べて前記表示バッファ(HB)25Aに書き込み全体表示する構成とした。
ここで、前記表示バッファ(HB)25Aの領域サイズとフレームバッファ(FB)12a(25b)の領域サイズとに基づいて、画面描画データの最適な分割数nを求める手法について説明する。
図14は、前記サーバベース・コンピューティング・システムにおける全体表示モードでのコンテンツ分割数算出処理を示すフローチャートである。
フレームバッファ(FB)12a(25b)の縦方向のサイズが、クライアント装置20の表示画面(表示バッファ(HB)25A)の縦サイズのN倍とすると、コンテンツの分割数は最大Nとなる(ステップZ1)。
ここで、N=1、つまりフレームバッファ(FB)12a(25b)の縦方向のサイズが表示バッファ(HB)25Aの縦サイズと同じである場合には、分割なしになる(ステップZ2(YES))。
一方、N≧2である場合に、全体表示モードによって標準サイズ(表示バッファ(HB)25Aの横サイズに対応)のコンテンツを縮小するその縮小率ZPは、
ZP=(クライアント画面の横幅/N)/コンテンツの横幅
となる(ステップZ3)。
この縮小率によりコンテンツを縮小したときの当該コンテンツの高さCHは、
CH=コンテンツの縦サイズ*ZP
となる(ステップZ4)。
ここで、
CH/クライアント画面の縦サイズ < N
つまり、縮小後のコンテンツの高さCHをクライアント画面の縦サイズで割った値が分割数N未満になるか否かを判断し、縦にN分割したコンテンツを横N枚に並べてクライアント画面に表示させた場合に、当該表示画面内に空白が生じるか否かを判断する(ステップZ5)。
このステップZ5(YES)の場合、表示画面内に空白が生じるので、N=(N−1)として前記一連の計算処理を再度実行する(ステップZ6)。
そして、前記ステップZ5において、
CH/クライアント装置の画面の縦サイズ ≧ N
と判断された場合に、最適なコンテンツの分割数N(但し、N>1)が算出される(ステップZ5(NO))。
これにより、前記表示バッファ(HB)25Aの領域サイズとフレームバッファ(FB)12a(25b)の領域サイズとに基づいて、画面描画データの最適な分割数Nを求めることができる。
また、前記実施形態では、全体表示モードにおいてクライアント装置20の表示画面に表示するスクロールバーBsは、図4B(B)で示したように、表示画面の右端に表示する構成としたが、表示画面の左端、あるいは図15に示すように、分割して横並びに表示される各ページHP1,HP2の間に表示する構成としてもよい。
図15は、前記サーバベース・コンピューティング・システムの全体表示モードにおいてクライアント画面に分割表示させたコンテンツの間にスクロールバーBsを表示させた例を示す図である。
この場合に、スクロールボタンRの色や塗り潰しパターンなどを、分割表示したコンテンツのページHP1,HP2に対応させてR1とR2に変化させ、それぞれの領域が視覚的に区別のつきやすい構成としてもよい。
また、図16A及び図16Bに示すように、クライアント装置20における表示バッファ(HB)25Aの縦サイズHの2倍の縦サイズ2Hを有するフレームバッファ(FB)12a(25b)を用意して、標準サイズから2分の1に縮小したコンテンツHPを、縦2分割し、左右のページHP1,HP2に並べて表示させる場合に、スクロールバーBs内のスクロールボタンRを、画面左側のページHP1用スクロールボタンR1と画面右側のページHP2用スクロールボタンR2とで左右に寄せて色分け表示させ、その位置関係を分かり易くする構成としてもよい。
そしてこの場合、前記スクロールバーBsの操作によって、図16B(A)→図16B(B)に示すように、画面左側のページHP1から外れてしまうページ先頭の領域を画面右下にページHP2tとして回り込んで表示させ、これに伴い画面右側に残るページ末尾の領域を画面右上にページHP2eとして表示させる。
これにより、コンテンツの分割位置を移動させてユーザが注目したい領域を見易く表示させることができる。
図16Aは、前記サーバベース・コンピューティング・システムの全体表示モードにおいて、クライアント画面に分割表示させたコンテンツをスクロール処理する場合に、当該コンテンツ先頭の領域を回り込んで表示させたときのフレームバッファ(FB)12a(25b)における表示画面位置の管理状態を示す図である。
図16Bは、前記サーバベース・コンピューティング・システムの全体表示モードにおいて、クライアント画面に分割表示させたコンテンツをスクロール処理する場合に、当該コンテンツ先頭の領域を回り込んで表示させた状態を示す図である。
またこの場合、画面右下に回り込んで表示されたページ先頭の領域(HP2t)に対応するスクロールボタンR2tおよび画面右上に表示されたページ末尾の領域(HP2e)に対応するスクロールボタンR2eを、ページ先頭側で濃色にページ末尾側に行くほど薄色にして表示させることで、分割表示されたコンテンツの位置を分かり易く表現できるようになる。
図17は、クライアント装置20における表示バッファ(HB)25Aの縦サイズHの3倍の縦サイズ3Hを有するフレームバッファ(FB)12a(25b)を用意して、コンテンツの横幅が、表示バッファの横幅Wの1/2となる様に縮小したコンテンツHPを、縦3分割し、連続する2ページHP1,HP2を並べて表示させた状態(その1)を示す図である。
図18は、クライアント装置20における表示バッファ(HB)25Aの縦サイズHの3倍の縦サイズ3Hを有するフレームバッファ(FB)12a(25b)を用意して、コンテンツの横幅が、表示バッファの横幅Wの1/2となる様に縮小したコンテンツHPを、縦3分割し、連続する2ページHP1,HP2を並べて表示させた状態(その2)を示す図である。
これによれば、図17に示す状態(その1)から図18に示す状態(その2)にスクロール処理した場合、スクロール先のコンテンツを先読みしていることになるので、クライアント装置20内部のみでのスクロール処理が可能になり、高速にスクロール表示することができる。
なお、図18に示すように、メニューバーBtなど、常に表示していたいコンテンツの領域については、画面左上等に常時固定で表示してもよい。
図19は、前記クライアント装置20において全体表示モードにより横に並べて分割表示させた左右の領域(HP1,HP2)の同時スクロールと個別スクロールを共に可能にするスクロールバーBsの構成を示す図である。
この図19に示すようなスクロールバーBsによれば、図19(A)→(B)に示すように、左右のスクロールボタンR1,R2に共通である○部分のスクロールボタンRを移動させることで、表示画面上の左右の領域(HP1,HP2)を同時にスクロールさせることができる。また、図19(B)→(C)に示すように、左右のスクロールボタンR1,R2を個別に移動させることで、表示画面上の左右の領域(HP1,HP2)を個別にスクロールさせることができる。
なお、前記各実施形態では、クライアント装置20としてPDAなどの小型横長画面のコンピュータ端末に、WebページHPなどの縦長のコンテンツを画面描画データとして表示させる場合について説明したが、小型縦長画面のコンピュータ端末に、横長のコンテンツを画面描画データとして表示させる場合でも、前記各実施形態で説明した縦と横の構成及び処理を逆にすることで、前記同様の作用効果を達成することができる。
前記実施形態において記載したサーバベース・コンピューティング・システムによる各処理の手法、すなわち、図6のフローチャートに示すサーバ装置10の全体制御処理、図7のフローチャートに示す前記サーバ装置10の全体制御処理に伴う全体表示処理、図8のフローチャートに示す前記サーバ装置10の全体制御処理に伴う全体表示解除処理、図9のフローチャートに示す前記サーバ装置10の全体制御処理に伴うカーソルキー処理、図10のフローチャートに示すクライアント装置20の全体制御処理、図11のフローチャートに示す前記クライアント装置20の全体制御処理に伴う全体表示処理、図12のフローチャートに示す前記クライアント装置20の全体制御処理に伴う全体表示解除処理、図13のフローチャートに示す前記クライアント装置20の全体制御処理に伴うスクロール処理、図14のフローチャートに示す前記全体表示処理に伴うコンテンツ分割数算出処理などの各手法は、何れもコンピュータに実行させることができるプログラムとして、メモリカード(ROMカード、RAMカード等)、磁気ディスク(フロッピディスク、ハードディスク等)、光ディスク(CD−ROM、DVD等)、半導体メモリ等の外部記憶装置18a(28a)の記憶媒体に格納して配布することができる。そして、サーバ装置10やクライアント装置(携帯端末)20のコンピュータ(制御部11(21))は、この外部記憶装置18a(28a)の記憶媒体に記憶されたプログラムを記憶装置(メモリ12,22や記憶部13,23)に読み込み、この読み込んだプログラムによって動作が制御されることにより、前記各実施形態において説明した長尺コンテンツの分割再配置による全体表示機能を実現し、前述した手法による同様の処理を実行することができる。
また、前記各手法を実現するためのプログラムのデータは、プログラムコードの形態として通信ネットワーク(N)上を伝送させることができ、この通信ネットワーク(N)に接続されたコンピュータ装置(プログラムサーバ)から前記のプログラムデータを取り込んで記憶装置(メモリ12,22や記憶部13,23)に記憶させ、前述した長尺コンテンツの分割再配置による全体表示機能を実現することもできる。
なお、本願発明は、前記各実施形態に限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で種々に変形することが可能である。さらに、前記各実施形態には種々の段階の発明が含まれており、開示される複数の構成要件における適宜な組み合わせにより種々の発明が抽出され得る。例えば、各実施形態に示される全構成要件から幾つかの構成要件が削除されたり、幾つかの構成要件が異なる形態にして組み合わされても、発明が解決しようとする課題の欄で述べた課題が解決でき、発明の効果の欄で述べられている効果が得られる場合には、この構成要件が削除されたり組み合わされた構成が発明として抽出され得るものである。