JP4930102B2 - サーバ装置およびプログラム - Google Patents

サーバ装置およびプログラム Download PDF

Info

Publication number
JP4930102B2
JP4930102B2 JP2007047632A JP2007047632A JP4930102B2 JP 4930102 B2 JP4930102 B2 JP 4930102B2 JP 2007047632 A JP2007047632 A JP 2007047632A JP 2007047632 A JP2007047632 A JP 2007047632A JP 4930102 B2 JP4930102 B2 JP 4930102B2
Authority
JP
Japan
Prior art keywords
block
compressed
image
client device
compression
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2007047632A
Other languages
English (en)
Other versions
JP2008211639A (ja
Inventor
光康 中嶋
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Casio Computer Co Ltd
Original Assignee
Casio Computer Co Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Casio Computer Co Ltd filed Critical Casio Computer Co Ltd
Priority to JP2007047632A priority Critical patent/JP4930102B2/ja
Publication of JP2008211639A publication Critical patent/JP2008211639A/ja
Application granted granted Critical
Publication of JP4930102B2 publication Critical patent/JP4930102B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Information Transfer Between Computers (AREA)
  • Facsimiles In General (AREA)
  • Compression Of Band Width Or Redundancy In Fax (AREA)

Description

本発明は、ネットワークを介したクライアント装置からのサービス要求に基づいて、前記サービス要求に対応する画面情報を前記クライアント装置へ送信するサーバ装置に関する。
近年、企業によるサーバベースコンピューティングの採用が急速に進んでいる。サーバベースコンピューティング(シンクライアントシステム)とは、クライアント装置(シンクライアント装置とも呼ばれる)とサーバ装置とがネットワークを介して相互に接続可能に構成されたシステムにおいて、クライアント装置がサーバ装置に対してサービス要求を行なうと、サーバ装置がクライアント装置からのサービス要求に基づいて、データの管理およびアプリケーションプログラムを動作させるというものである(例えば、特許文献1参照)。
具体的には、サーバ装置はクライアント装置用の表示データを作成し、これをクライアント装置に送る。クライアント装置では、使用者のキーやマウス等の操作情報を、ネットワークを介してサーバ装置へ送り、前記サーバ装置側で作成されたクライアント装置用の表示データを受け取って表示する。そのため、クライアント装置は、ネットワーク機器、表示装置、マウスやキーボード等の入力装置を備えているだけでよく、データをクライアント装置内に持たないため、ハードディスク等のストレージが不要であり、また、アプリケーションプログラムの実行を行なわないため、クライアント装置に必要となる処理の負荷は軽い、という特徴がある。
企業はサーバベースコンピューティングを導入することにより、データやアプリケーションプログラム等の資源がサーバ装置側で一元管理できるため、運用コストを削減することができるというメリットがある。また、クライアント装置は従来のパソコンに比べて安価に調達することができるというメリットがある。ウイルスに対しても、サーバ装置で一括対処することが可能となる。
上述のように、サーバベースコンピューティングシステムにおいて、一般的にはサーバ装置側が各機能を実行し、クライアント装置側で表示される画面に変化が生じた場合に、変化が生じた部分の画面データ(更新部分データ)がサーバ装置からクライアント装置へ送信される。この更新部分データを受け取ったクライアント装置は、その更新情報に従い更新データをクライアント装置の画面に反映する。なお、サーバ装置からクライアント装置へ送信される画面データは、接続開始時から少なくとも1度は全ての画面領域のデータに対する描画命令として通信される(例えば、特許文献1の段落番号0003参照)。
特開2005−228227号公報
上述したように、サーバベースコンピューティングが実行される際には、アプリケーションプログラムを動作させるサーバ装置に対してサービス要求を行なうクライアント装置と、クライアント装置からのサービス要求に基づいてアプリケーションプログラムを動作させるサーバ装置とが、ネットワークを介して相互に接続可能に構成されている。
しかしながら、上述したような技術において、クライアント装置の処理能力が著しく低い場合、ネットワークの品質が悪い場合(伝送速度が遅い、伝送遅延が大きい、エラー発生率が高い等)等には、クライアント装置の操作性が著しく低下するという問題点があった。
例えば、入力デバイスであるマウス装置にて画面上のボタンをクリックすると、ボタンの色が変わると同時にボタンに応じた画像Aが画面内で更新されるケースで説明する。
著しく処理能力が低いクライアント装置を使用した場合、あるいはネットワーク回線の品質が低下してきた場合、低品質のネットワーク回線を使っている場合などでは、クライアント装置の画面上の描画更新がゆっくり行われてしまう。この際、前記画像Aの更新がゆっくりとなされたのち、ボタンの色が変わってしまうと、クライアント装置の使用者は操作性の不快さを感じてしまう。使用者は、マウス装置でボタンを押したので、まずボタンが変化することを期待する。ボタンが変化した後、ゆっくりとでも画像Aの更新がなされれば使用者の不快感は和らげられる。
これは、サーバ装置側からクライアント装置側に画像情報を送る優先順位が、サーバ装置側の処理の都合によってのみ決められてきたことに起因している。
本発明の課題は、シンクライアントシステムにおけるクライアント装置の利用者が、クライアント装置の利用中に違和感を覚えないレスポンスを行なうことが可能なサーバ装置およびプログラムを提供することである。
請求項1の発明は、ネットワークを介したクライアント装置からのサービス要求に基づいて、前記サービス要求に対応する画面情報を前記クライアント装置へ送信するサーバ装置であって、前記画面情報を複数のブロック画像に分割すると共に、その分割された各ブロック画像毎に、その各ブロック画像が元の画面情報上のどの配置位置に該当するかを示すブロック番号を割り当てる分割手段と、前記分割手段によって分割された各ブロック画像を所定の圧縮方式で圧縮すると共に、その圧縮された各圧縮ブロックを送信するに先立って、その全ての圧縮ブロックの圧縮後サイズを順次取得して格納する画像圧縮手段と、前記画像圧縮手段によって格納された各圧縮ブロックの圧縮後サイズを比較することで、前記各ブロック画像に対応する各圧縮ブロックを送信する際の送信順序を決定する決定手段と、分割された前記各ブロック画像に対応する圧縮ブロックを送信する際は、前記決定手段で決定された送信順序で、且つその圧縮ブロックに対応するブロック画像のブロック番号と共に前記クライアント装置へ送信するブロック送信手段と、を備えることを特徴とする。
本発明によれば、シンクライアントシステムにおけるクライアント装置の利用者が、クライアント装置の利用中に違和感を覚えないレスポンスを行なうことができる。
以下、本発明の実施の形態について図面を参照しながら説明する。
(第1の実施の形態)
図1は、サーバベースコンピューティングのネットワーク構成の概略を示す図である。
図1において、クライアント端末装置102は、ネットワーク109を介してサーバ装置101に接続されている。無線アクセスポイント103も、ネットワーク109を介してサーバ装置101に接続されている。また、モバイル端末装置104、スマートフォン105等の移動端末装置は、アクセスポイント103と無線通信を行なうことにより、ネットワーク109を介してサーバ装置101と接続されている。また、ノート型の準移動端末装置であるクライアント端末装置106は、ネットワーク109、或いはアクセスポイント103に接続される。なお、以下の説明においては、クライアント端末装置102、モバイル端末装置104、スマートフォン105およびクライアント端末装置106を総称してクライアント装置という。これらのクライアント装置は、上述したように様々な形態をなしており、処理能力も大きく異なる。移動することを前提に考えられているクライアント装置は、一般的に処理能力を低くして電池寿命を長く取っている。
サーバ装置101は、アプリケーションプログラムを実行する機能、データを管理する機能等を有しており、ネットワーク109を介したクライアント装置からのサービス要求に基づいて、前記サービス要求に対応する画面情報を前記クライアント装置へ送信する。
そして、クライアント端末装置102、モバイル端末装置104、スマートフォン105あるいはクライアント端末装置106等のクライアント装置は、サーバ装置101との間でサーバベースコンピューティングシステムを構築している。
モバイル端末装置104、スマートフォン105あるいはクライアント端末装置106等のクライアント装置がアクセスポイント103を介した無線ネットワーク(WiFi、WAN等)でサーバ装置101と接続されている場合は、無線ネットワークの回線品質が何時でも良好に保たれているわけでなく、種々障害等により品質が低下することがある。無線でのネットワークでは、有線のネットワークに比べてその品質を維持するのが難しい。ネットワーク109の品質が低下すると、通信速度の低下等により、サーバ装置101とクライアント装置間のデータ転送が満足に行なえず、操作性の悪化をもたらす。
本発明を適用したサーバベースコンピューティングシステムは、詳細を後述するように、クライアント装置の処理能力が低い場合でも、ネットワーク109の回線品質が低下した場合でも、クライアント装置の使用者が欲している情報を優先してサーバ装置101から転送し描画する。これにより、クライアント装置での操作違和感の無い高い操作性を保つことが可能となる。
図2は、本発明を適用したクライアント装置の構成の概略を示す図である。
図2において、クライアント端末装置102、モバイル端末装置104、スマートフォン105あるいはクライアント端末装置106等クライアント装置は、CPU(中央処理装置:Central Processing Unit)201、クライアント装置の各機能を制御し実行するための制御プログラムが収納されたROMやRAM等のメモリ202、キーボードやマウス等、各種のデータや信号等を入力するための入力部203、画像やその他の情報を表示するためのLCD等の出力部204、画像を始め様々な情報を記録するための記憶部205、出力部204に表示するための画像を一時的に格納するフレームバッファ等のVRAM206、無線LANや携帯電話網等のネットワーク109に接続するためのネットワーク接続部207がバス200に接続されて構成され、CPU201がこれらの各部を制御している。
図3は、サーバ装置101の構成の概略を示す図である。
図3において、サーバ装置101は、CPU301、サーバ装置101において処理を実行するプログラムの他、サーバ装置101の各機能を制御し実行するための制御プログラムが収納されたROMやRAM等のメモリ302、各種のデータや信号等を入力するための入力部303、画像やその他の情報を出力するための出力部304、画像を始め様々な情報を記録するための記憶部305、出力部304に表示するための画像又はクライアント装置へ送信するための画像を一時的に格納するフレームバッファ等のVRAM306、LAN等のネットワーク109に接続するためのネットワーク接続部307がバス300に接続されて構成され、CPU301がこれらの各部を制御している。
図4は、サーバ装置101とクライアント装置とが接続する際にそれぞれ実行する接続処理の流れを示すフローチャートである。
図4中の(A)は、クライアント装置が実行するクライアント接続処理の流れを示すフローチャートであり、(B)は、サーバ装置101が実行するサーバ接続処理の流れを示すフローチャートである。
まず、クライアント装置は、ステップS401において、サーバ装置101に対して接続要求を送信する。この接続要求には、クライアント装置を特定するための固有ID、ユーザー情報、パスワード情報等が含まれ、これらが暗号化されて送信される。
この接続要求をサーバ装置101が受信すると、すなわち、サーバ装置101が、ステップS402において、接続要求を受信したと判断すると(ステップS402:Y)、サーバ装置101は、接続の可否を判断し(不図示)、問題がなければ、ステップS403において、クライアント装置に対して接続許可を送信するとともに、必要に応じてクライアント装置のプロファイル情報(図5参照)を送信するように要求する(プロファイル情報送信要求を送信する)。なお、接続要求が送信されてきた際に含まれていた固有IDが既にサーバ装置101に登録されており、対応するプロファイル情報をサーバ装置101が有している(格納している)場合は、接続許可のみ送信する。
そして、サーバ装置101から送信されてきた接続許可をクライアント装置が受信すると、すなわち、クライアント装置が、ステップS404において、接続許可を受信したと判断すると(ステップS404:Y)、クライアント装置は、ステップS405において、サーバ装置101に対して接続許可を受信した旨のACKを送信(返信)し、ステップS406において、サーバ装置101との接続を完了する。また、クライアント装置が接続許可とともにプロファイル情報送信要求を受信した場合は、クライアント装置は、ステップS405において、ACKとともにプロファイル情報をサーバ装置101に対して送信する。
サーバ装置101がACKを受信すると、すなわち、ステップS407において、サーバ装置101がACKを受信したと判断すると(ステップS407:Y)、サーバ装置101は、ステップS408において、クライアント装置との接続を完了する。
接続が完了した以降のサーバ装置101とクライアント装置との通信は、プロファイル情報に含まれる通信プロトコルに基づいて実行される。
図5は、クライアント装置からサーバ装置101へ送信するプロファイル情報500の例を示す図である。
図5に示したように、クライアント装置からサーバ装置101へ送信するプロファイル情報500は、送信するデータ情報を示すプロファイルID501、クライアント装置を特定するための端末ユニーク番号502、クライアント装置の表示装置である出力部204の大きさを示す表示サイズ503、表示する色数を示す表示色数504、対応可能な通信プロトコルを示す対応プロトコル505、クライアント装置で圧縮されたデータを解凍する処理能力を示す解凍処理能力506等を有している。
次に、サーバ装置101とクライアント装置との接続が確立した後の動作について説明を行なう。
図6は、クライアント装置において実行されるクライアント装置操作処理の流れを示すフローチャートである。
クライアント装置は、マルチタスクOS上で種々のプログラムを動作させている。このクライアント装置操作処理もその1つである。
クライアント装置のCPU201は、まず、ステップS601において、クライアント装置に対する何らかの操作(クライアント装置操作)が実行されたか否かを判断する。
次に、何のクライアント装置操作も実行されていないと判断した場合(ステップS601:N)は、何らかのクライアント装置操作が実行されるのを待つループに入る。
他方、何らかのクライアント装置操作が実行されたと判断した場合(ステップS601:Y)は、ステップS602において、そのクライアント装置操作に関するクライアント装置操作情報をサーバ装置101へ送信する。そして、ステップS601へ戻り、再び、クライアント装置操作の実行を待つループに入る。
図7は、クライアント装置からサーバ装置101へ送信するクライアント装置操作情報700の例を示す図である。
図7に示したように、クライアント装置からサーバ装置101へ送信するクライアント装置操作情報700は、クライアント装置でのクライアント装置操作であることを示す操作ID701、クライアント装置操作を示す操作702等を有している。本クライアント装置操作情報700のデータ形式は、アプリケーション層レベルでのデータ形式であり、下位層により、サーバ101装置へのアドレス、データ部の暗号化、改竄防止の為のハッシュ値の付加、シーケンス番号の付加等がなされる。
図8は、クライアント装置において実行されるクライアント装置側受信処理の流れを示すフローチャートである。
クライアント装置では、図6を用いて説明したクライアント装置操作処理とは別に、クライアント装置側受信処理も起動している。
クライアント装置のCPU201は、まず、ステップS801において、サーバ装置101から送信されるデータを受信したか否かを判断する。
受信していないと判断した場合(ステップS801:N)は、データの受信を待つループに入る。
他方、受信したと判断した場合(ステップS801:Y)は、ステップS802において、受信データが圧縮されている場合は解凍し、ステップS803において、クライアント装置が備えるフレームバッファに受信したデータを展開する。そして、ステップS804において、出力部204へ画像を表示した後、ステップS801に戻り、再び受信待ちループに入る。
図9は、サーバ装置101のフレームバッファ901を分割した各ブロックに付されるブロック番号を説明するための図である。
図9に示すように、フレームバッファ901は、点線で示したブロック境界909により例えば6個に分割されており、左上より右側に、そして左下より右側に0から5のブロック番号が付けられている。対応するピクセルは、左上が原点であり、右方向にX座標、下方向にY座標となる。
図10は、サーバ装置101において実行されるサーバFB(フレームバッファ)分割処理の流れを示すフローチャートである。
このサーバFB分割処理は、サーバ装置101の初期化処理中に呼ばれる処理である。
サーバ装置101のCPU301は、まず、ステップS1001において、フレームバッファ901のX方向のピクセルサイズを変数XSに代入し、フレームバッファ901のY方向のピクセルサイズを変数YSに代入し、カウンタ値の変数X、Yに0を代入して初期化する。また、ステップS1002において、フレームバッファ901のX方向の分割数を変数XBに代入し、Y方向の分割数を変数YBに代入する。例えば、480×320ピクセルのフレームバッファ901をX方向に3分割、Y方向に2分割している場合は、変数XSに480、変数YSに320、変数XBに3、変数YBに2を代入する。
そして、ステップS1003において、分割するブロックの座標のY座標を示すYposに0を代入して初期化し、ステップS1004において、分割するブロックの座標のX座標を示すXposに0を代入して初期化するとともにカウンタ値の変数Xに0を代入して初期化する。ただし、1回目は、既にステップS1001で変数Xを0に初期化済みである。
次に、ステップS1005において、Y方向の分割数だけ処理を繰り返すために、Y方向の分割数が代入されている変数YBがカウンタ値の変数Yより大きいか否かを判断する。
変数YBが変数Yより大きいと判断した場合(ステップS1005:Y)は、ステップS1006以降の処理を変数YB回(例えば2回)繰り返し、変数YBが変数Yより大きくない(同じであるか小さい)と判断した場合(ステップS1005:N)は、本サーバFB分割処理を終了する。
次に、ステップS1006において、X方向の分割数だけ処理を繰り返すために、X方向の分割数が代入されている変数XBがカウンタ値の変数Xより大きいか否かを判断する。
変数XBが変数Xより大きいと判断した場合(ステップS1006:Y)は、ステップS1007以降の処理を変数XB回(この例では3回)繰り返す。
まず、ステップS1007において、分割されたフレームバッファ901のブロックを特定するための番号として、ブロック番号座標配列BLN[n](BLN[n].x,BLN[n].y)に、ブロック番号の位置する座標(Xpos,Ypos)を代入する。ここで、nは、ブロック番号をあらわし、変数X+変数Y×変数XBで算出されるため、結果的に0から順に1ずつインクリメントされていく。
次に、ステップS1008において、X方向に分割されたブロックのピクセル数(この例では、YS/YB=480/3=160)を変数Xposに加算し、ステップS1009において、変数Xを1インクリメントして、ステップS1006に戻る。
変数XBが変数Xより大きくないと判断した場合(ステップS1006:N)は、ステップS1010において、Y方向に分割されたブロックのピクセル数(この例では、320/2=160)を変数Yposに加算し、ステップS1011において、変数Yを1インクリメントして、ステップS1004に戻って変数Xposおよび変数Xを0に初期化する。
本サブルーチン「サーバFB分割処理」によって、具体的には、ステップS1007が分割されたブロックの数だけ繰り返されることによって、各ブロック(この例では6個のブロック)それぞれの、フレームバッファ901内のアドレスがブロック番号座標配列BLN[n]には格納されたこととなる。そして、ブロック番号に対応する領域を扱う処理をする時は、ブロック番号座標配列BLN[n]が参照されることとなる。
図11は、サーバ装置101において実行されるサーバ側受信処理の流れを示すフローチャートである。
サーバ装置101では、図10を用いて説明したサーバFB分割処理とは別に、サーバ側受信処理も起動している。
サーバ装置101のCPU301は、まず、ステップS1101において、クライアント装置からの送信されるデータを受信したか否かを判断する。ここで、受信したか否かを判断するデータとは、図6のステップS602でクライアント装置から送信されてくるクライアント装置操作情報700を含む。
そして、データを受信していないと判断した場合(ステップS1101:N)は、データの受信を待つループに入る。
他方、データ、すなわちクライアント装置操作情報700を受信したと判断した場合(ステップS1101:Y)は、ステップS1102において、クライアント装置から送られてきたクライアント装置操作情報700に含まれた操作702に対応したクライアント装置操作を実行し、サーバ装置101のフレームバッファ901を更新する(書き換える)。サーバ装置101のフレームバッファ901は、図9で説明したように複数(この例では6個)のブロックに分割されている。
そして、ステップS1103、およびステップS1104乃至S1106をブロックの数だけ繰り返すことにより、各ブロックを圧縮する。すなわち、ステップS1103において、0から始まるブロック番号を示す変数nに0を代入して初期化し、ステップS1104において、ブロックn(n=0の場合は1番目のブロック、n=1の場合は2番目のブロック、・・・、n=5の場合は6番目のブロック)を所望の方法で圧縮するとともに、配列S[n]に圧縮されたブロックのサイズを格納する。そして、ステップS1105において、nを1インクリメントし、ステップS1106において、nが6(分割したブロックの数)より小さいか否かを判断することにより、分割したブロックの数だけ圧縮を繰り返す。
次に、ステップS1107において、各配列S[]を小さい順にソートして配列B[]に格納する。すなわち、配列B[0]には圧縮したサイズが一番小さなブロック番号が格納されている。
そして、ステップS1108、およびステップS1109乃至S1111をブロックの数だけ繰り返すことにより、圧縮され小さいサイズの順にソートされた各ブロックをクライアント装置へ送信する。すなわち、ステップS1108において、送信するブロックの順番を示す変数nに0を代入して初期化し、ステップS1109において、圧縮済みのブロックnをクライアント装置へ送信する。そして、ステップS1110において、nを1インクリメントし、ステップS1111において、nが6(分割したブロックの数)より小さいか否かを判断することにより、分割して小さい順にソートしたブロックの数だけクライアント装置への送信を繰り返す。
図12は、サーバ装置101からクライアント装置へ送信される送信データ1200のデータ形式の例を示す図である。
図12に示したように、サーバ装置101からクライアント装置へ送信される送信データ1200は、サーバ装置101から送信した表示データを示す表示ID1201、データの圧縮方式1202、データのフレームバッファ901への展開アドレス1203、データの画像サイズ1204、データの圧縮後のデータサイズ1205、およびデータの圧縮データ1206を有している。本送信データのデータ形式は、アプリケーション層レベルのデータ形式であり、下位層にて、クライアント装置のアドレス、データ部の暗号化、改竄防止の為のハッシュ値の付加、シーケンス番号の付加等がなされる。
以上説明してきたように、本第1の実施の形態においては、サーバ装置101が、クライアント装置で早く表示(描画)することができるブロックを優先して送信することにより、例えば、圧縮後のデータサイズ1205が小さいブロックより優先してクライアント装置に送信することにより、低品質(回線速度が遅い、エラー率が高い、遅延が大きい等)のネットワーク109を用いた通信であっても、なんらかの描画反応が即座にクライアント装置に与えられることになり、クライアント装置の使用者の操作ストレスを著しく低減することが可能になる。特に、帯域が狭い通信回線環境下にて有効に作用する。
(第1の実施の形態の変形例1)
上述の第1の実施の形態では、圧縮後のデータサイズ1205が小さいブロックを優先してサーバ装置101からクライアント装置に送信したが、本変形例1ではクライアント装置での解凍負荷が少ないブロックを優先してサーバ装置101で処理をしてクライアント装置に送信する。
図13は、サーバ装置101において実行される変形例1のサーバ側受信処理の流れを示すフローチャートである。
サーバ装置101のCPU301は、まず、ステップS1301において、クライアント装置からの送信されるデータを受信したか否かを判断する。ここで、受信したか否かを判断するデータとは、図6のステップS602でクライアント装置から送信されてくるクライアント装置操作情報700を含む。
そして、データを受信していないと判断した場合(ステップS1301:N)は、データの受信を待つループに入る。
他方、データ、すなわちクライアント装置操作情報700を受信したと判断した場合(ステップS1301:Y)は、ステップS1302において、クライアント装置から送られてきたクライアント装置操作情報700に含まれた操作702に対応するクライアント装置操作を実行し、サーバ装置101のフレームバッファ901を更新する(書き換える)。サーバ装置101のフレームバッファ901は、図9で説明したように複数(この例では6個)のブロックに分割されている。
そして、ステップS1303において、図11のステップS1103、およびステップS1104乃至S1106をブロックの数だけ繰り返すことにより各ブロックを圧縮したのと同様にして、各ブロックを圧縮する。
次に、ステップS1304において、図14を用いて後述するサブルーチン「転送方法の決定処理」を実行することにより、クライアント装置への転送順を決定する。
そして、ステップS1305、およびステップS1306乃至S1308をブロックの数だけ繰り返すことにより、圧縮され解凍負荷値の小さい順にソートされた各ブロックをクライアント装置へ送信する。すなわち、ステップS1305において、送信するブロックの順番を示す変数iに0を代入して初期化し、ステップS1306において、送信順(後述する変数B[i]の順)に圧縮済みの各ブロックをクライアント装置へ送信する。そして、ステップS1307において、iを1インクリメントし、ステップS1308において、iが6(分割したブロックの数)より小さいか否かを判断することにより、分割して解凍負荷値の小さい順にソートしたブロックの数だけクライアント装置への送信を繰り返す。なお、最初にクライアント装置へ送信されるデータは、配列B[0]に格納されているブロック番号の領域を配列P[B[0]]の圧縮方法により圧縮済みのデータであり、最後にクライアント装置へ送信するのは、配列B[5]に格納されているブロック番号の領域を配列P[B[5]]の圧縮方法により圧縮済みのデータである。
図14は、サブルーチン「転送方法の決定処理」の流れを示すフローチャートである。
本サブルーチン「転送方法の決定処理」によって決定されるクライアント装置への送信順は、圧縮後のデータサイズ1205とクライアント装置での解凍負荷値(解凍処理能力506)によって決定される。
まず、ステップS1401において、送信するブロックの順番を示す変数iに0を代入して初期化する。
そして、ステップS1402において、各ブロックの解凍負荷値を算出する。例えば、ブロック番号0のデータをJPEG圧縮とPNG圧縮の2つの圧縮方法を用いて例示する。
JPEG圧縮およびPNG圧縮による圧縮後のデータサイズを下記(1)(2)の通りとする。
JPEG圧縮による圧縮後のデータサイズ:100KB(キロバイト) ・・・・(1)
PNG圧縮による圧縮後データサイズ:200KB ・・・・(2)
また、データを送信すべきクライアント装置での解凍負荷率を下記(3)(4)の通りとする。ここで解凍負荷率は値が大きいほど圧縮データを解凍する解凍負荷が高い。これらの解凍負荷率は、プロファイル情報500に解凍処理能力506(図5参照)として格納されている。
JPEG解凍負荷率:10% ・・・・(3)
PNG解凍負荷率:12% ・・・・(4)
すなわち、JPEG、PNG夫々の解凍負荷値は下記(5)(6)で示される。
JPEG解凍負荷値:100KB×10%=1000 ・・・・(5)
PNG解凍負荷値:200KB×12%=2400 ・・・・(6)
このように、JPEGの方がPNGよりも解凍負荷値が小さいので、ブロック番号0はJPEGで圧縮することにする。ブロック番号0をJPEGで処理すべく、ステップS1402において、圧縮方法を格納するための配列P[i]にP[0]=JPEGとし、解凍負荷値を示す配列L[i]には、ブロック番号0は解凍負荷値1000であるので下記(7)の如く代入する。
L[0]=100×10=1000 ・・・・(7)
この値が小さいほうがクライアント装置での表示速度が速くなる。
そして、ステップS1403において、変数iを1インクリメントし、ステップS1404において、iが6(分割したブロックの数)より小さいか否かを判断することにより、解凍負荷値の算出を繰り返す。
次に、ステップS1405において、解凍負荷値L[i]が小さいブロック番号順にソートして転送順を表す配列B[i]に格納する。
この処理により、配列B[i]には解凍負荷値が小さい順にブロック番号が格納される。また、配列P[i]にはブロック番号に対応する圧縮方式が格納される。
このように、クライアント装置のスペック情報(プロファイル情報500)を利用し、クライアント装置での解凍負荷の小さいブロックを優先してクライアント装置に送信することにより、処理能力の低いクライアント装置を用いた場合でも、なんらかの描画反応がクライアント装置に即座に与えられることになり、クライアント装置の使用者の操作ストレスを最小限に抑えることができる。特に、クライアント装置の処理能力が低い場合に有効に作用する。
また、解凍負荷値の算出に通信速度等を加味してもよい。
(第1の実施の形態の変形例2)
上述の説明では、クライアント装置のプロファイル情報500の中の解凍処理能力506の情報を元にして解凍負荷値を算出していたが、データの送受信の前に、例えば接続セッションを確立する際にクライアント装置の性能テストを行なうことにより、解凍負荷値を求めてもよい。
図15は、サーバ装置101とクライアント装置とが接続する際にそれぞれ実行する性能テスト処理の流れを示すフローチャートである。
図15中の(A)は、クライアント装置が実行するクライアント性能テスト処理の流れを示すフローチャートであり、(B)は、サーバ装置101が実行するサーバ性能テスト処理の流れを示すフローチャートである。
まず、サーバ装置101は、ステップS1501において、タイマーT1による計測を開始し、ステップS1502において、クライアント装置に対して所望の大きさのJPEG処理を要求する(JPEG処理要求情報を送信する)。
すると、JPEG処理要求情報を受信したクライアント装置は、ステップS1503において、JPEG解凍処理を実行し、ステップS1504において、JPEG解凍処理が終了した旨を示すJPEG終了情報をサーバ装置101に送信(返送)する。
サーバ装置101は、このJPEG終了情報を受信すると(ステップS1505:Y)、ステップS1506において、タイマーT1の計測結果からJPEG解凍処理の処理速度を算出する。
次に、JPEG処理とは別の圧縮方法、例えばPNG処理について同様にその解凍速度を算出する。
すなわち、ステップS1507において、タイマーT2による計測を開始し、ステップS1508において、クライアント装置に対して所望の大きさのPNG処理を要求する(PNG処理要求情報を送信する)。
すると、PNG処理要求情報を受信したクライアント装置は、ステップS1509において、PNG解凍処理を実行し、ステップS1510において、PNG解凍処理が終了した旨を示すPNG終了情報をサーバ装置101に送信(返送)する。
サーバ装置101は、このPNG終了情報を受信すると(ステップS1511:Y)、ステップS1512において、タイマーT2の計測結果からPNG解凍処理の処理速度を算出する。
ここで、同じ圧縮サイズのデータをサーバ装置101が送信すれば、タイマーT1やT2による計測時間をデータのサイズで除算した値が、解凍負荷率となる。本変形例2によれば、通信環境を含んだ状態での解凍負荷値になる。
これにより、クライアント装置の解凍能力について、実測のネットワーク負荷の情報を利用することで、より正確な解凍処理能力を得ることができ、クライアント装置側でより早く表示することができるブロックから先に送信するため、利用者は早くレスポンスを得ることができる。特に、通信環境の変化が激しい場合に有効に作用する。
なお、上記変形例2では、接続セッション確立時に性能テスト処理を実行しているが、一定間隔でサーバ装置101とクライアント装置との間にて性能テスト処理を実行し、ダイナミックに解凍負荷率を求めても良い。
(第1の実施の形態の変形例3)
本変形例3では、サーバ装置101から行なわれたクライアント装置へのデータ転送について、圧縮率を異ならせた2段階のデータ転送にて行なうことにより、使用者の体感速度の向上を図っている。
図16は、サーバ装置101において実行される受信割り込み処理の流れを示すフローチャートである。
サーバ装置101がクライアント装置からデータを受信すると、サーバ装置101において受信割り込み処理が実行される。
すなわち、サーバ装置101のCPU301は、まず、ステップS1601において、受信割り込みを禁止する。
そして、ステップS1602において、受信割り込みの多重割り込みがあるか否かを変数InterruptRtを用いて判断する。この変数InterruptRtは、実際の転送処理を開始する前に1が格納され(ステップS1605参照)、本受信割り込み処理を終える前に0が格納される(ステップS1611参照)。つまり、転送処理中の受信割り込みによって本受信割り込み処理が呼ばれた場合には、変数InterruptRtに1が格納されていることになる。
ステップS1602で多重割り込みであると判断した場合、すなわち、変数InterruptRtに1が格納されている場合(ステップS1602:Y)は、ステップS1603において、割り込みの戻りアドレスを一段スキップし、多重割り込みでないようにしてからステップS1604へ進む。つまり、戻りアドレスを受信割り込み処理内でなく、受信割り込みを呼んだ受信割り込み処理外のアドレスとする。
そして、ステップS1604において、クライアント装置から送られてきた受信内容に応じたサーバ装置101のアプリケーション処理を実行し、必要に応じてフレームバッファ901を更新する。
次に、ステップS1605において、多重割り込み検出のための変数InterruptRtに1を格納し、ステップS1606において、受信割り込みを許可する。
サーバ装置101のフレームバッファ901は、図9を用いて説明したように複数のブロック(ここでは6個のブロック)に分割されており、ステップS1607において、フレームバッファ901に格納されている全てのブロックについて各ブロックを高圧縮率(例えば、JPEG圧縮)にて圧縮処理する。
そして、ステップS1608において、ステップS1607での高圧縮処理後のブロック高圧縮画像のデータサイズが小さいブロックより順次クライアント装置に対してデータを送信する。
次に、ステップS1609において、ステップS1607で高圧縮処理したフレームバッファ901に格納されている全てのブロックについて、今度は通常の圧縮方法(例えば、PNG圧縮)にて(ステップS1607での高圧縮処理前の)各ブロックを圧縮処理する。
そして、ステップS1610において、ステップS1609での通常圧縮処理後のブロック低圧縮画像のデータサイズが小さいブロックより順次クライアント装置に対してデータを送信する。
最後に、ステップS1611において、多重割り込み検出のための変数InterruptRtを0に初期化して本受信割り込み処理を終了する。
本受信割り込み処理による一度目の送信(ステップS1608)では、画素の荒いデータがクライアント装置の出力部204に表示されるが、クライアント装置の利用者の操作は、直ちに出力部204に反映されることとなる。
これにより、分割後の画面情報に対し、数段階(例えば2段階)の圧縮処理を行ない、一方の高い圧縮率の画像情報(ブロック高圧縮画像情報)を先に送信し、他方の圧縮率の画像情報(ブロック低圧縮画像情報)を後で送信することで、利用者は早くレスポンスを得ることができる。特に、通信帯域が極端に狭い通信環境下にて有効に作用する。
以上、本発明の実施の形態を、図面を参照しながら説明してきたが、上述してきた本発明の実施の形態は、サーバ装置101の一機能としてハードウェアまたはDSP(Digital Signal Processor)ボードやCPUボードでのファームウェアもしくはソフトウェアにより実現することができる。
また、本発明が適用されるサーバ装置101は、その機能が実行されるのであれば、上述の実施の形態に限定されることなく、単体の装置であっても、複数の装置からなるシステムあるいは統合装置であっても、LAN、WAN等のネットワークを介して処理が行なわれるシステムであってもよいことは言うまでもない。
また、バスに接続されたCPU、ROMやRAMのメモリ、入力装置、出力装置、外部記録装置、媒体駆動装置、ネットワーク接続装置で構成されるシステムでも実現できる。すなわち、前述してきた実施の形態のシステムを実現するソフトェアのプログラムを記録したROMやRAMのメモリ、外部記録装置、可搬記録媒体を、サーバ装置101に供給し、そのサーバ装置101のコンピュータがプログラムを読み出し実行することによっても、達成されることは言うまでもない。
この場合、可搬記録媒体等から読み出されたプログラム自体が本発明の新規な機能を実現することになり、そのプログラムを記録した可搬記録媒体等は本発明を構成することになる。
プログラムを供給するための可搬記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、CD−ROM、CD−R、DVD−ROM、DVD−RAM、磁気テープ、不揮発性のメモリーカード、ROMカード、電子メールやパソコン通信等のネットワーク接続装置(言い換えれば、通信回線)を介して記録した種々の記録媒体などを用いることができる。
また、コンピュータ(情報処理装置)がメモリ上に読み出したプログラムを実行することによって、前述した実施の形態の機能が実現される他、そのプログラムの指示に基づき、コンピュータ上で稼動しているOSなどが実際の処理の一部または全部を行ない、その処理によっても前述した実施の形態の機能が実現される。
さらに、可搬型記録媒体から読み出されたプログラムやプログラム(データ)提供者から提供されたプログラム(データ)が、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行ない、その処理によっても前述した実施の形態の機能が実現され得る。
すなわち、本発明は、以上に述べた実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲内で種々の構成または形状を取ることができる。
サーバベースコンピューティングのネットワーク構成の概略を示す図である。 本発明を適用したクライアント装置の構成の概略を示す図である。 サーバ装置101の構成の概略を示す図である。 サーバ装置101とクライアント装置とが接続する際にそれぞれ実行する接続処理の流れを示すフローチャートである。 クライアント装置からサーバ装置101へ送信するプロファイル情報500の例を示す図である。 クライアント装置において実行される操作処理の流れを示すフローチャートである。 クライアント装置からサーバ装置101へ送信するクライアント装置操作情報700の例を示す図である。 クライアント装置において実行される受信処理の流れを示すフローチャートである。 サーバ装置101のフレームバッファ901を分割した各ブロックに付されるブロック番号を説明するための図である。 サーバ装置101において実行されるサーバFB(フレームバッファ)分割処理の流れを示すフローチャートである。 サーバ装置101において実行されるサーバ側受信処理の流れを示すフローチャートである。 サーバ装置101からクライアント装置へ送信される送信データのデータ形式の例を示す図である。 サーバ装置101において実行される変形例1のサーバ側受信処理の流れを示すフローチャートである。 サブルーチン「転送方法の決定処理」の流れを示すフローチャートである。 サーバ装置101とクライアント装置とが接続する際にそれぞれ実行する性能テスト処理の流れを示すフローチャートである。 サーバ装置101において実行される受信割り込み処理の流れを示すフローチャートである。
符号の説明
101 サーバ装置
102 クライアント端末装置
103 無線アクセスポイント
104 モバイル端末装置
105 スマートフォン
106 クライアント端末装置
109 ネットワーク
200 バス
201 CPU
202 メモリ
203 入力部
204 出力部
205 記憶部
206 VRAM
207 ネットワーク接続部
300 バス
301 CPU
302 メモリ
303 入力部
304 出力部
305 記憶部
306 VRAM
307 ネットワーク接続部
500 プロファイル情報
501 プロファイルID
502 端末ユニーク番号
503 表示サイズ
504 表示色数
505 対応プロトコル
506 解凍処理能力
700 クライアント装置操作情報
701 操作ID
702 操作
901 フレームバッファ(サーバ装置101側)
909 ブロック境界
1200 送信データ
1201 表示ID
1202 圧縮方式
1203 展開先アドレス
1204 画像サイズ
1205 データサイズ
1206 圧縮データ

Claims (6)

  1. ネットワークを介したクライアント装置からのサービス要求に基づいて、前記サービス要求に対応する画面情報を前記クライアント装置へ送信するサーバ装置であって、
    前記画面情報を複数のブロック画像に分割すると共に、その分割された各ブロック画像毎に、その各ブロック画像が元の画面情報上のどの配置位置に該当するかを示すブロック番号を割り当てる分割手段と、
    前記分割手段によって分割された各ブロック画像を所定の圧縮方式で圧縮すると共に、その圧縮された各圧縮ブロックを送信するに先立って、その全ての圧縮ブロックの圧縮後サイズを順次取得して格納する画像圧縮手段と、
    前記画像圧縮手段によって格納された各圧縮ブロックの圧縮後サイズを比較することで、前記各ブロック画像に対応する各圧縮ブロックを送信する際の送信順序を決定する決定手段と、
    分割された前記各ブロック画像に対応する圧縮ブロックを送信する際は、前記決定手段で決定された送信順序で、且つその圧縮ブロックに対応するブロック画像のブロック番号と共に前記クライアント装置へ送信するブロック送信手段と、
    を備えることを特徴とするサーバ装置。
  2. 前記決定手段は、前記各圧縮ブロックの圧縮後サイズをソートし、その圧縮後サイズが小さい順を前記送信順序として決定することを特徴とする請求項1に記載のサーバ装置。
  3. 前記決定手段は、前記クライアント装置における前記圧縮ブロックの解凍処理能力情報と前記圧縮ブロックの圧縮後サイズとにより解凍負荷値を算出し、その算出された各回答負荷値の小さい順を前記送信順序として決定することを特徴とする請求項1に記載のサーバ装置。
  4. 前記解凍負荷値は、前記クライアント装置へ送信した任意のブロック圧縮画像が解凍される時間を計測することにより算出されることを特徴とする請求項3に記載のサーバ装置。
  5. 前記画像圧縮手段は、前記分割手段によって分割された各ブロック画像に高圧縮処理を施してブロック高圧縮画像を生成し、さらに、前記分割手段によって分割された各ブロック画像に、前記高圧縮処理と比較して低い圧縮率である低圧縮処理を施してブロック低圧縮画像を生成することを特徴とし、
    前記決定手段は、前記ブロック低圧縮画像に優先して、前記ブロック高圧縮画像を送信することを決定すること、
    を特徴とする請求項1乃至4の何れか1項に記載のサーバ装置。
  6. ネットワークを介したクライアント装置からのサービス要求に基づいて、前記サービス要求に対応する画面情報を前記クライアント装置へ送信するサーバ装置のコンピュータを制御するためのプログラムであって、
    前記コンピュータを、
    前記画面情報を複数のブロック画像に分割すると共に、その分割された各ブロック画像毎に、その各ブロック画像が元の画面情報上のどの配置位置に該当するかを示すブロック番号を割り当てる分割手段、
    前記分割手段によって分割された各ブロック画像を所定の圧縮方式で圧縮すると共に、その圧縮された各圧縮ブロックを送信するに先立って、その全ての圧縮ブロックの圧縮後サイズを順次取得して格納する画像圧縮手段、
    前記画像圧縮手段によって格納された各圧縮ブロックの圧縮後サイズを比較することで、前記各ブロック画像に対応する各圧縮ブロックを送信する際の送信順序を決定する決定手段、
    分割された前記各ブロック画像に対応する圧縮ブロックを送信する際は、前記決定手段で決定された送信順序で、且つその圧縮ブロックに対応するブロック画像のブロック番号と共に前記クライアント装置へ送信するブロック送信手段、
    として機能させるようにしたコンピュータ読み取り可能なプログラム。
JP2007047632A 2007-02-27 2007-02-27 サーバ装置およびプログラム Active JP4930102B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2007047632A JP4930102B2 (ja) 2007-02-27 2007-02-27 サーバ装置およびプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2007047632A JP4930102B2 (ja) 2007-02-27 2007-02-27 サーバ装置およびプログラム

Publications (2)

Publication Number Publication Date
JP2008211639A JP2008211639A (ja) 2008-09-11
JP4930102B2 true JP4930102B2 (ja) 2012-05-16

Family

ID=39787558

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2007047632A Active JP4930102B2 (ja) 2007-02-27 2007-02-27 サーバ装置およびプログラム

Country Status (1)

Country Link
JP (1) JP4930102B2 (ja)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3211537A1 (en) 2011-10-10 2017-08-30 Hewlett-Packard Development Company, L.P. Establish client-host connection

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1023274A (ja) * 1996-07-05 1998-01-23 Fuji Photo Film Co Ltd 画像信号の送信装置および受信再生装置
JP2000013610A (ja) * 1998-06-25 2000-01-14 Fuji Photo Film Co Ltd 符号化画像ファイル作成方法および装置、復号化方法および装置、並びに符号化画像ファイル作成方法および復号化方法をコンピュータに実行させるプログラムを記録したコンピュータ読取り可能な記録媒体
JP3961393B2 (ja) * 2002-10-11 2007-08-22 日本電信電話株式会社 情報配信方法、情報配信システム、情報表示システム、配信サーバ、情報配信プログラム及び記録媒体
JP4205008B2 (ja) * 2004-04-08 2009-01-07 三菱電機株式会社 画像データ通信方法
JP4640942B2 (ja) * 2005-03-09 2011-03-02 株式会社リコー サーバ装置
JP4618676B2 (ja) * 2005-04-28 2011-01-26 株式会社リコー 構造化文書符号の転送方法、画像処理システム、サーバ装置、プログラム及び情報記録媒体

Also Published As

Publication number Publication date
JP2008211639A (ja) 2008-09-11

Similar Documents

Publication Publication Date Title
KR101467430B1 (ko) 클라우드 컴퓨팅 기반 어플리케이션 제공 방법 및 시스템
JP6111753B2 (ja) 情報処理装置、伝送システム、プログラム
US8533366B2 (en) Method of determining image transmission method, image supplying system, image supplying device, image display device, program and computer-readable recording medium
US8823752B2 (en) Image processing system
US20210225406A1 (en) Video acquisition method and device, terminal and medium
KR20130096059A (ko) 원격의 싱크 장치를 표시하는 방법, 이를 위한 소스 장치 및 시스템
US20230215076A1 (en) Image frame display method, apparatus, device, storage medium, and program product
CN112187921B (zh) 一种对象文件下载方法、装置、***、服务器和存储介质
CN111083523A (zh) 一种全景视频播放的方法及终端
JP4205634B2 (ja) 画像送信装置で使用される方法、およびプログラム
KR102500145B1 (ko) 전자 장치 및 전자 장치의 컨텐트 전송 방법
WO2016016607A1 (en) Managing display data for display
US20140358998A1 (en) Method and apparatus for executing application
JP2007267335A (ja) サーバー装置、クライアント装置、サーバークライアントシステムおよびプログラム
JP4930102B2 (ja) サーバ装置およびプログラム
JP4764596B2 (ja) データ転送方法及びサーバコンピュータ
CN111478916B (zh) 基于视频流的数据传输方法、设备和存储介质
JP2017167661A (ja) システム、携帯端末、情報処理装置、情報処理方法及びプログラム
US20180373479A1 (en) Image processing apparatus and program
JP5476734B2 (ja) サーバ、リモート操作システム、伝送方式選択方法、プログラム及び記録媒体
JPH09231044A (ja) 画面共有システムおよび方法
KR101512353B1 (ko) 클라우드 스트리밍 서비스 제공 방법, 이를 위한 서비스 제어 장치 및 시스템
JP2008210113A (ja) サーバ装置およびプログラム
CN111782606A (zh) 显示设备、服务器和文件管理方法
JP2016225823A (ja) 表示システム、情報端末、表示装置、再生制御プログラム及び再生制御方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20091203

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20110531

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20110602

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110706

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111018

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20111207

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20120117

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20120130

R150 Certificate of patent or registration of utility model

Ref document number: 4930102

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20150224

Year of fee payment: 3