JP2018005341A - 画面転送方法、画面転送プログラム及び画面転送装置 - Google Patents

画面転送方法、画面転送プログラム及び画面転送装置 Download PDF

Info

Publication number
JP2018005341A
JP2018005341A JP2016127941A JP2016127941A JP2018005341A JP 2018005341 A JP2018005341 A JP 2018005341A JP 2016127941 A JP2016127941 A JP 2016127941A JP 2016127941 A JP2016127941 A JP 2016127941A JP 2018005341 A JP2018005341 A JP 2018005341A
Authority
JP
Japan
Prior art keywords
update
area
display range
image data
frequency
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.)
Pending
Application number
JP2016127941A
Other languages
English (en)
Inventor
智大 今井
Tomohiro Imai
智大 今井
松井 一樹
Kazuki Matsui
一樹 松井
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.)
Fujitsu Ltd
Original Assignee
Fujitsu 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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2016127941A priority Critical patent/JP2018005341A/ja
Priority to US15/496,547 priority patent/US20170372681A1/en
Publication of JP2018005341A publication Critical patent/JP2018005341A/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/34Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators for rolling or scrolling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/14Digital output to display device ; Cooperation and interconnection of the display device with other functional units
    • G06F3/1454Digital output to display device ; Cooperation and interconnection of the display device with other functional units involving copying of the display data of a local workstation or window to a remote workstation or window so that an actual copy of the data is displayed simultaneously on two or more displays, e.g. teledisplay
    • G06F3/1462Digital output to display device ; Cooperation and interconnection of the display device with other functional units involving copying of the display data of a local workstation or window to a remote workstation or window so that an actual copy of the data is displayed simultaneously on two or more displays, e.g. teledisplay with means for detecting differences between the image stored in the host and the images displayed on the remote displays
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G2370/00Aspects of data communication
    • G09G2370/02Networking aspects
    • G09G2370/022Centralised management of display operation, e.g. in a server instead of locally
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09GARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
    • G09G5/00Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
    • G09G5/003Details of a display terminal, the details relating to the control arrangement of the display terminal and to the interfaces thereto
    • G09G5/005Adapting incoming signals to the display format of the display terminal

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Human Computer Interaction (AREA)
  • General Engineering & Computer Science (AREA)
  • User Interface Of Digital Computer (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

【課題】スクロール操作に対するレスポンスの低下を抑制すること。【解決手段】画面転送装置20は、メモリに格納された画像データのうち、端末装置から取得される操作情報により定まるスクロール量にしたがって端末装置の表示部に表示させる画像データの表示範囲を設定する処理と、表示範囲内で更新がある領域の更新頻度を測定する処理と、メモリに格納された画像データのうち、更新頻度の測定結果が存在する領域が表示範囲の変更によって表示範囲の内から外へ遷移する場合、領域の画像データをメモリからキャプチャする頻度を更新頻度の測定結果に基づいて設定する処理とを実行する。【選択図】図1

Description

本発明は、画面転送方法、画面転送プログラム及び画面転送装置に関する。
スマートフォンを始めとする携帯電話機、PHS(Personal Handyphone System)の他、スレート端末やタブレット端末等のモバイル端末の高性能とモバイル通信網の高速化により、モバイル端末の業務利用が拡大している。例えば、企業等の組織がモバイル端末を従業員に貸与したり、個人所有のスマートフォンを業務に活用するBYOD(Bring Your Own Device)等の事例も増加している。
モバイル端末を業務に利用する場合、クライアント端末にデータを残さない画面転送方式によるモバイルソリューションが注目されている。すなわち、クライアント端末は、画像データを受信して表示するだけの機能を備えればよい。このことから、上記の画面転送方式は、シンクライアント方式と呼ばれることもある。
シンクライアント方式では、RDP(Remote Desktop Protocol)などを利用することにより、クライアント端末からサーバ装置へ操作情報が転送されたり、サーバ装置からクライアント端末へ画面情報が転送されたりする。このように画面情報をクライアント端末へ転送する場合、サーバ装置は、画面全体の画像データを転送する代わりに、画面の更新前後で差分がある更新部分に絞って画像データをクライアント端末へ転送する。
例えば、業務アプリケーション等が提供する業務画面がモバイル端末に表示される場合、業務アプリケーションが業務画面の更新時にOS(Operating System)へ発行する描画コマンドをフックする機能が用いられる。この機能によってフックされた描画コマンドにしたがって業務画面の更新部分に関する画像データが生成された後、更新部分の画像データがサーバからクライアント端末へ転送される。このようなOS支援を利用することにより、画面転送時に業務アプリケーションが更新する業務画面を時系列に比較して差分を検出する処理を省略できる結果、処理負荷が低減される。
特開2014−207529号公報 特開平07−175617号公報
しかしながら、上記の技術では、スクロール操作に対するレスポンスが低下する場合がある。
すなわち、モバイル端末に表示される画面の大きさは、モバイル端末が有するディスプレイの解像度に依存する。このため、業務アプリケーション等が提供する業務画面の大きさは、モバイル端末がディスプレイに表示することができる表示範囲を超える場合がある。ところが、上記のOS支援を利用したとしても、モバイル端末の表示範囲内の更新しか描画コマンドをフックすることができない。それ故、スクロール操作により業務画面の表示範囲が変更された場合、変更後に表示範囲に含まれる更新部分に関する差分検出および画像データの伝送がまとめて実施されることになる結果、レスポンスが低下する。
1つの側面では、本発明は、スクロール操作に対するレスポンスの低下を抑制できる画面転送方法、画面転送プログラム及び画面転送装置を提供することを目的とする。
一つの態様では画面転送方法は、メモリに格納された画像データのうち、端末装置から取得される操作情報により定まるスクロール量にしたがって前記端末装置の表示部に表示させる画像データの表示範囲を設定する処理と、前記表示範囲内で更新がある領域の更新頻度を測定する処理と、前記メモリに格納された画像データのうち、前記更新頻度の測定結果が存在する領域が前記表示範囲の変更によって前記表示範囲の内から外へ遷移する場合、当該領域の画像データを前記メモリからキャプチャする頻度を前記更新頻度の測定結果に基づいて設定する処理と、がコンピュータにより実行される。
1つの側面として、スクロール操作に対するレスポンスの低下を抑制できる。
図1は、実施例1に係るシンクライアントシステムに含まれる各装置の機能的構成を示すブロック図である。 図2は、可視領域および不可視領域の遷移の一例を示す図である。 図3は、更新マップの遷移の一例を示す図である。 図4は、可視領域および不可視領域の遷移の一例を示す図である。 図5は、更新マップの遷移の一例を示す図である。 図6は、実施例1に係る画像データの送信処理の手順を示すフローチャートである。 図7は、実施例1に係るキャプチャ設定の通知処理の手順を示すフローチャートである。 図8は、実施例1及び実施例2に係る画面転送プログラムを実行するコンピュータのハードウェア構成例を示す図である。
以下に添付図面を参照して本願に係る画面転送方法、画面転送プログラム及び画面転送装置について説明する。なお、この実施例は開示の技術を限定するものではない。そして、各実施例は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。
[システム構成]
図1は、実施例1に係るシンクライアントシステムに含まれる各装置の機能的構成を示すブロック図である。図1に示すシンクライアントシステム1は、App(Application)サーバ30が生成する画面の画像データをクライアント端末10へ転送する画面転送サービスを提供するものである。
以下では、あくまで画面転送サービスの一例として、上記のシンクライアント方式により、業務システムとして構築されたAppサーバ30が生成または更新を行うPC向けの業務画面の画像データをモバイル端末として実装されるクライアント端末10へ転送する場合を例に挙げて説明を行うこととする。
図1に示すように、シンクライアントシステム1は、クライアント端末10と、画面転送装置20と、Appサーバ30とを有する。図1には、1つの画面転送装置20につき1つのクライアント端末10が接続される場合を例示したが、1つの画面転送装置20に複数のクライアント端末10を接続することもできる。
これらクライアント端末10及び画面転送装置20は、ネットワークNを介して、相互に通信可能に接続される。このネットワークNは、任意の通信網により構築することができる。例えば、クライアント端末10がモバイル端末として実装される場合、ネットワークNの一部に3G、3.9G、4Gや5Gなどの任意の世代の規格に対応する移動体通信網、いわゆるモバイルネットワークが含まれることとしてもかまわない。
クライアント端末10は、上記の画面転送サービスの提供を受ける側のコンピュータである。
一実施形態として、クライアント端末10には、スマートフォンを始めとする携帯電話機やPHSの他、スレート端末やタブレット端末等のモバイル端末を採用できる。この場合、クライアント端末10は、企業等の組織が貸与するモバイル端末を用いることとしてもよいし、BYOD向けのモバイル端末を用いることもできる。以下では、あくまで一例としてクライアント端末10がモバイル端末として実装される場合を例に挙げて説明を行うこととするが、クライアント端末10が据置き型またはノート型のパーソナルコンピュータとして実装されることを妨げる訳ではない。
画面転送装置20は、上記の画面転送サービスを提供する側のコンピュータである。
一実施形態として、画面転送装置20は、業務システムとして構築されたAppサーバ30と、ネットワークNとの境界にゲートウェイ装置として配置される。このような配置の下、画面転送装置20は、業務システムへのアクセスが許可されたアカウントごとにログイン認証を行ったり、ログインに成功したクライアント端末10のセッションごとに上記の画面転送サービスを提供する。このような実装により、既存の業務システムの改修等を最小限に抑えることができる。加えて、上記のシンクライアント方式により、業務画面が画像として転送されるので、クライアント端末10上で実行されるOSの種類ごとに業務画面を準備せずともよい。
Appサーバ30は、業務アプリケーションを実行するサーバ装置である。
一実施形態として、Appサーバ30は、パッケージソフトウェアやオンラインソフトウェアとして提供される既存の業務アプリケーション、例えば営業や顧客支援などの各種の業務に関するアプリケーションプログラムをサーバ装置等のコンピュータに実行させることにより、業務システムを実現するWebサーバとして実装することができる。なお、ここでは、オンプレミス型のシンクライアントシステムを例示したが、必ずしもシンクライアントシステムの実装形態はこれに限定されない。例えば、上記の画面転送サービスや業務システムに関する機能をアウトソーシングにより提供するクラウド型のシンクライアントシステムとして構築することもできる。
例えば、Appサーバ30は、ログインに成功したクライアント端末10のセッションごとに、HTML(HyperText Markup Language)で記述された業務画面のHTML文書を生成すると共に当該業務画面のHTML文書を閲覧するブラウザを実行する。その後、Appサーバ30は、クライアント端末10から画面転送装置20を介して転送される操作情報にしたがって業務画面を更新する。この業務画面の更新に連動して、Appサーバ30上で実行されるブラウザは、更新後の業務画面のHTML文書をレンダリングすることにより、ビットマップ形式の業務画面の画像データを生成する。このようにブラウザが描画する業務画面の画像データは、当該ブラウザがワークエリアとして用いる描画バッファに保存される。
ここで、上記のブラウザには、描画バッファに保存された業務画面の画像データをキャプチャする処理を外部から呼び出すAPIがプラグインされた拡張型のブラウザを採用することができる。このようなAPIを利用することによって、描画バッファに保存された業務画面の画像データを画面転送装置20に取得させることができる。それ故、描画バッファから取得される業務画面の画像データを時系列に比較することにより、業務画面の全体のうちクライアント端末10がディスプレイに表示することができる表示範囲を超える部分に関しても差分を検出することも可能である。以下では、業務画面のうちクライアント端末10が有するディスプレイの表示範囲に該当する部分を「可視領域」と記載し、業務画面のうちクライアント端末10のディスプレイの表示範囲外に該当する部分を「不可視領域」と記載する場合がある。
ところが、描画バッファから業務画面の画像データを取得する頻度を高くするほど、キャプチャおよび差分検出が実施される頻度が高まる結果、処理負荷が増大する。さらに、画面転送装置20及びAppサーバ30間で画像データが伝送される頻度も高まる結果、データの伝送量も増大する。一方、描画バッファから業務画面の画像データを取得する頻度を低くするほど、スクロール操作が行われたタイミングと描画バッファから業務画面がキャプチャされたタイミングとの時間差が拡大する。これによって、スクロール操作時に最新の業務画面が表示できない可能性も高まる結果、ミスマッチな業務画面の表示により操作感が損なわれる。
そこで、本実施例に係る画面転送装置20は、描画バッファから業務画面の可視領域と共に不可視領域に関する画像データをキャプチャするが、その頻度は必ずしも不可視領域全体で均一とはしない。すなわち、画面転送装置20は、業務画面の不可視領域の中でも可視領域である履歴を持つ部分には可視領域の時に測定された更新頻度にしたがってキャプチャ頻度を設定する。これによって、業務画面のキャプチャが実施される領域の大きさを絞り込むと共に、その領域でキャプチャが実施される頻度も適切に設定する。それ故、処理負荷および伝送量を抑制しつつ、業務画面の表示範囲の変更に備えて不可視領域の画像データを準備できる。したがって、スクロール操作に対するレスポンスの低下を抑制できる。
[画面転送装置の構成]
次に、本実施例に係る画面転送装置20の機能的構成について説明する。図1に示すように、画面転送装置20は、操作情報転送部21と、表示範囲設定部22と、フレームバッファ23aと、差分検出部23と、画像送信部24と、更新頻度測定部25と、判定部26と、設定通知部27とを有する。
操作情報転送部21、表示範囲設定部22、差分検出部23、画像送信部24、更新頻度測定部25、判定部26及び設定通知部27等の処理部は、次のように実装される。すなわち、上記の処理部は、中央処理装置、いわゆるCPU(Central Processing Unit)が図示しない主記憶装置として実装されるDRAM(Dynamic Random Access Memory)やSRAM(Static Random Access Memory)などのRAMのワークエリア上に上記の画面転送サービスを実現する画面転送プログラムをプロセスとして展開することにより、仮想的に実現される。
ここでは、あくまで一例として、上記の画面転送プログラムの実行主体をCPUとする場合を例示したが、上記の画面転送プログラムの実行主体はCPUに限らず、MPU(Micro Processing Unit)を実行主体とすることもできる。また、上記の機能部は、ASIC(Application Specific Integrated Circuit)やFPGA(Field Programmable Gate Array)などのハードワイヤードロジックによっても実現できる。
また、フレームバッファ23a等の記憶部は、RAM等の半導体メモリ素子により実装できる。
なお、図1には、上記の画面転送サービスを実現する最小限の機能部が抜粋して示されているに過ぎず、既存のコンピュータが有する機能部であれば、図示以外の機能部が画面転送装置20に備わることを妨げない。例えば、画面転送装置20は、既存のコンピュータが有するハードウェア、例えばNIC(Network Interface Card)等の通信インタフェイスを有することとしてもよい。また、画面転送装置20は、既存のコンピュータのプロセッサ上で実行される他のプログラム、例えばOSやミドルウェアなどにより仮想的に実現される処理部をさらに有することとしてもかまわない。これら既存のコンピュータが有する汎用の機能部は図示が省略されているが、上記の画面転送サービスを実現する上で有用な機能部は当然ながら具備されることは言うまでもない。
操作情報転送部21は、操作情報を転送する処理部である。
一実施形態として、操作情報転送部21は、クライアント端末10から操作情報を受信する度に、当該操作情報をAppサーバ30へ送信する。このように操作情報をAppサーバ30へ送信する一方で、操作情報転送部21は、クライアント端末10から受信した操作情報のうち所定の種類に該当する操作情報を表示範囲設定部22にも出力する。例えば、クライアント端末10がタッチパネルを有するモバイル端末として実装される場合、操作の種類の例として、タップ、ダブルタップ、フリック、スワイプ、ロングタップ、ドラッグ、ピンチイン、ピンチアウトなどが挙げられる。この場合、操作情報転送部21は、操作の種類がスクロール操作に対応するスワイプである操作情報を表示範囲設定部22にも出力する。
表示範囲設定部22は、業務画面の表示範囲を設定する処理部である。
一実施形態として、表示範囲設定部22は、操作情報転送部21により操作情報が出力される度に、当該操作情報にしたがって業務画面の表示範囲をシフトする。一方、表示範囲設定部22は、操作情報転送部21により操作情報が出力されない場合、表示範囲の設定を変更せずにその設定を維持する。例えば、クライアント端末10がタッチパネルを有するモバイル端末として実装される場合、表示範囲設定部22は、操作情報転送部21から操作情報として、スワイプの移動方向および移動量などを取得することができる。このとき、表示範囲設定部22は、スワイプの移動方向が左右方向である場合、すなわち左右のスクロール操作が行われた場合、業務画面の表示範囲を左方向または右方向へシフトする。また、表示範囲設定部22は、スワイプの移動方向が上下方向である場合、すなわち上下のスクロール操作が行われた場合、業務画面の表示範囲を上方向または下方向へシフトする。これら上下左右のシフト量は、スワイプの移動量に対応して決定される。
差分検出部23は、複数の業務画面の画像データの間で差分を検出する処理部である。
一実施形態として、差分検出部23は、Appサーバ30から送信される業務画面の画像データと、フレームバッファ23aに記憶された業務画面の画像データとを比較することにより、差分を検出する。ここで、Appサーバ30から送信される画像データのフレーム番号を「N」であるとしたとき、フレームバッファ23aには、フレーム番号「N−1」の画像データが保存されるバッファ管理が実施されることとする。このようなバッファ管理により、業務画面の画像データが時系列に比較できる状態が構築される。
ここで、Appサーバ30から画面転送装置20へ画像データが送信される頻度は、業務画面の全体で均一とは限らない。すなわち、上記の拡張型のブラウザの描画バッファに保存された業務画面の画像データをキャプチャする処理を外部から呼び出すAPIを用いて、Appサーバ30から画面転送装置20へ画像データが伝送される。このとき、業務画面全体の画像データを均一な頻度でキャプチャさせるとは限らず、少なくとも可視領域および不可視領域の間で画像データを拡張型のブラウザにキャプチャさせる頻度は変更される。例えば、可視領域の画像データをキャプチャさせる頻度は、不可視領域の画像データをキャプチャさせる頻度と同等もしくはそれ以上の頻度に設定される。数値の例を挙げれば、可視領域の画像データをキャプチャさせる頻度が30fps(frame per second)に設定されるとしたとき、不可視領域の画像データをキャプチャさせる頻度は30fps以下に設定される。さらに、不可視領域の中でも表示範囲の変更により可視領域から不可視領域へ遷移した部分には、可視領域であった時点で測定された更新頻度に準じてキャプチャ頻度が設定される一方で、それ以外の部分には、最低値、例えば1fpsのキャプチャ頻度が固定で設定される。
このような頻度でキャプチャされた画像データがAppサーバ30から画面転送装置20へ送信される度に、差分検出部23は、次のような処理を実行する。すなわち、差分検出部23は、Appサーバ30から画像データを受信すると、当該画像データの業務画面上の配置に対応する箇所の画像データをフレームバッファ23aから読み出す。そして、差分検出部23は、Appサーバ30により送信された画像データと、フレームバッファ23aから読み出された画像データとの間で画素値が同一であるか否かを画素ごとに比較する。この結果、差分検出部23は、画素値が同一でない画素を差分として検出する。その上で、差分検出部23は、差分として検出された画素が存在する場合、フレームバッファ23aに記憶された業務画面のうちAppサーバ30から受信した画像データの業務画面上の配置に対応する箇所をAppサーバ30から受信した画像データに上書き保存する。これにより、上記のバッファ管理が実現される。その後、差分検出部23は、業務画面上で差分が検出された画素を対象にラベリング処理を実行し、同一のラベルが付与されたブロブを矩形状に形成することにより、業務画面から「差分領域」を識別する。続いて、差分検出部23は、業務画面から識別された差分領域が表示範囲設定部22により設定された表示範囲に含まれるか否かを判定する。このとき、差分検出部23は、差分領域が表示範囲に含まれる場合、当該差分領域に対応する画像データをフレームバッファ23aから読み出し、当該差分領域の画像データを所定の圧縮方式により圧縮した上でその符号化データを画像送信部24へ出力する。差分領域が表示範囲に含まれない場合には、表示範囲に含まれる画像データ送信後に当該差分領域の画像データを所定の圧縮形式により圧縮した上でその符号化データを画像送信部24へ出力する。なお、差分領域の画像データの圧縮は、静止画圧縮により実現することとしてもよいし、特開2011−238014号公報に開示される技術等のように、所定の期間、例えば1秒間で閾値以上の頻度で更新される場合に差分領域の画像データに動画圧縮を実施することとしてもかまわない。
画像送信部24は、業務画面の画像データを送信する処理部である。
一実施形態として、画像送信部24は、差分検出部23により差分領域の符号化データが出力される度に、当該差分領域の符号化データをクライアント端末10へ送信する。このように差分領域の符号化データを送信する場合、画像送信部24は、クライアント端末10にクライアント端末10内のフレームバッファを更新させるために、少なくとも業務画面上の差分領域の位置および大きさを識別できる情報も送信する。例えば、差分領域の画像データが持つ左上の頂点の座標(x,y)、画像データの幅wおよび画像データの高さhなどの要素が画像データと共に送信される。なお、位置および大きさは、必ずしも本例の通りに定義されずともよく、他の任意の方法、例えば領域の4点の座標により定義することもできる。
更新頻度測定部25は、業務画面の更新頻度を測定する処理部である。
一実施形態として、更新頻度測定部25は、業務画面を可視領域および不可視領域に分けて更新頻度を測定する。この更新頻度の測定には、一例として、可視領域の更新頻度を管理する第1の更新マップおよび不可視領域の更新頻度を管理する第2の更新マップが用いられる。これら第1の更新マップ及び第2の更新マップでは、最新のフレーム番号から遡って過去の所定のフレーム数、例えば30フレーム以内で更新が行われた回数が更新頻度として管理される。
例えば、更新頻度測定部25は、差分検出部23により差分領域が検出される度に、可視領域内または不可視領域内の更新頻度の測定を実施することにより、第1の更新マップまたは第2の更新マップを生成する。例えば、更新頻度測定部25は、最新のフレーム番号から遡って過去の所定のフレーム数にわたって識別された差分領域をメッシュ状に分割された可視領域上または不可視領域上にマッピングする。これによって、可視領域または不可視領域がメッシュ状に分割されたメッシュ要素ごとに更新頻度が得られる。その上で、更新頻度測定部25は、更新頻度がゼロでないメッシュ要素のうち互いが連接するメッシュ要素同士を統合して矩形状に形成することにより、更新頻度がゼロでないメッシュ要素の統合領域を「更新領域」として抽出する。そして、更新頻度測定部25は、先に抽出された更新領域に含まれるメッシュが持つ更新頻度のうち最高値を抽出することにより、更新領域ごとに最高値を代表値とする更新頻度が対応付けられた第1の更新マップまたは第2の更新マップを生成する。また、更新頻度測定部25は先に抽出された更新領域に含まれるメッシュが持つ更新頻度を平均し、その値を代表値として更新領域に設定して第1の更新マップまたは第2の更新マップを生成しても良い。このようにして生成された第1の更新マップ及び第2の更新マップは、次のようなイベントの発生に伴って一部が更新される場合がある。
一側面として、更新頻度測定部25は、表示範囲の変更がある場合、第1の更新マップ及び第2の更新マップに次のような更新を実施する。すなわち、更新頻度測定部25は、第1の更新マップに含まれるエントリの中に、表示範囲の変更によって可視領域から不可視領域へ状態が遷移するエントリが存在する場合、当該エントリを第1の更新マップから第2の更新マップへ移行して登録する。これによって、表示範囲の変更によって可視領域から不可視領域へ遷移するエントリが第1の更新マップから削除されると共に第2の更新マップへ登録されることになる。このような移行登録は、可視領域で測定された更新頻度を不可視領域におけるキャプチャ頻度として援用するためである。さらに、更新頻度測定部25は、第2の更新マップに含まれるエントリのうち不可視領域から可視領域へ状態が遷移するエントリが存在する場合、当該エントリの更新頻度を所定値、例えば最低値である1fpsへリセットする。
他の側面として、更新頻度測定部25は、第1の更新マップ及び第2の更新マップの間で更新領域が重複するエントリが存在する場合、第2の更新マップから重複するエントリを削除する。
更なる側面として、更新頻度測定部25は、第1の更新マップ及び第2の更新マップの間で隣接する更新領域が存在すると後述する判定部26により判定された場合、次のような更新頻度の更新を実施する。すなわち、更新頻度測定部25は、第2の更新マップに含まれる更新領域のうち第1の更新マップに含まれる更新領域と隣接する更新領域に対応付けられた更新頻度を第1の更新マップに含まれる更新領域の更新頻度と同一の値へ更新する。
判定部26は、第1の更新マップ及び第2の更新マップの間で隣接する更新領域が存在するか否かを判定する処理部である。
一実施形態として、判定部26は、表示範囲が変更された場合、または、前回のキャプチャ設定が通知されてから所定のフレーム数、例えば30フレームに対応する期間、すなわち1秒間にわたって表示範囲の変更がない場合、次のような処理を実行する。すなわち、判定部26は、第1の更新マップ及び第2の更新マップごとに、更新領域が持つ頂点の座標を算出する。例えば、更新領域の位置及び大きさが更新領域の左上の頂点の座標(x,y)、更新領域の幅wおよび更新領域の高さhなどの要素により識別される場合、更新領域の右上の頂点の座標は(x+w,y)、更新領域の左下の頂点の座標は(x,y+h)、更新領域の右下の頂点の座標は(x+w,y+h)と算出することができる。その上で、判定部26は、第1の更新マップに含まれる更新領域および第2の更新マップに含まれる更新領域の間で頂点の座標を比較する。このとき、少なくとも1つの頂点の座標が共通する更新領域の組合せが第1の更新マップ及び第2の更新マップの間で存在する場合、表示範囲を境界に隣接する更新領域が存在すると判断できる。
設定通知部27は、キャプチャ設定を通知する処理部である。
一実施形態として、設定通知部27は、Appサーバ30上で実行される拡張型のブラウザの描画バッファに保存された業務画面の画像データをキャプチャする処理を外部から呼び出すAPIを用いる。このAPIを用いる場合、設定通知部27は、Appサーバ30に描画バッファから画像データをキャプチャさせる頻度と共に、Appサーバ30に描画バッファからキャプチャさせる画像データの位置およびサイズを設定し、これらをキャプチャ設定としてAppサーバ30へ通知する。例えば、設定通知部27は、0fps〜30fpsのキャプチャ頻度と共に、キャプチャ位置およびキャプチャサイズの一例として、更新領域の左上の頂点の座標(x,y)、更新領域の幅wおよび更新領域の高さhなどを含むキャプチャ設定をAppサーバ30へ通知する。
例えば、可視領域は、次のようにしてキャプチャ設定がAppサーバ30へ通知される。数値等の例を挙げれば、可視領域のキャプチャ頻度には、最高値である30fpsを設定し、可視領域のキャプチャ位置及びキャプチャサイズには、表示範囲の左上の頂点の座標(x,y)、表示範囲の幅wおよび表示範囲の高さhを設定し、これらキャプチャ頻度、キャプチャ位置及びキャプチャサイズがキャプチャ設定としてAppサーバ30へ通知される。
また、不可視領域のうち第2の更新マップにエントリが存在する更新領域は、次のようにして、エントリごとにキャプチャ設定がAppサーバ30へ通知される。数値等の例を挙げれば、更新領域のキャプチャ頻度には、更新領域の更新頻度を設定し、更新領域のキャプチャ位置及びキャプチャサイズには、更新領域の左上の頂点の座標(x,y)、更新領域の幅wおよび更新領域の高さhを設定し、これらキャプチャ頻度、キャプチャ位置及びキャプチャサイズがキャプチャ設定としてAppサーバ30へ通知される。
これらキャプチャ設定の通知は、表示範囲が変更された場合、または、前回のキャプチャ設定が通知されてから所定期間、例えば1秒間にわたって表示範囲の変更がない場合に実施される。
[Appサーバの構成]
次に、本実施例に係るAppサーバ30の機能的構成について説明する。図1に示すように、Appサーバ30は、操作情報受信部32と、画面生成部33と、描画バッファ34と、キャプチャ部35とを有する。
操作情報受信部32、画面生成部33及びキャプチャ部35等の処理部は、次のように実装される。すなわち、上記の処理部は、中央処理装置、いわゆるCPUが図示しない主記憶装置として実装されるDRAMやSRAMなどのRAMのワークエリア上に上記の拡張型のブラウザ31をプロセスとして展開することにより、仮想的に実現される。
ここでは、あくまで一例として、上記の拡張型のブラウザ31の実行主体をCPUとする場合を例示したが、上記の拡張型のブラウザ31の実行主体はCPUに限らず、MPUを実行主体とすることもできる。また、上記の機能部は、ASICやFPGAなどのハードワイヤードロジックによっても実現できる。
また、描画バッファ34等の記憶部は、RAM等の半導体メモリ素子により実装できる。
なお、図1には、上記の拡張型のブラウザ31に関係する最小限の機能部が抜粋して示されているに過ぎず、既存のコンピュータが有する機能部であれば、図示以外の機能部がAppサーバ30に備わることを妨げない。例えば、Appサーバ30は、既存のコンピュータが有するハードウェア、例えばNIC等の通信インタフェイスを有することとしてもよい。また、Appサーバ30は、既存のコンピュータのプロセッサ上で実行される他のプログラム、例えばOSやミドルウェアなどにより仮想的に実現される処理部をさらに有することとしてもかまわない。これら既存のコンピュータが有する汎用の機能部は図示が省略されているが、当然ながら具備されることは言うまでもない。
操作情報受信部32は、操作情報を受信する処理部である。
一実施形態として、操作情報受信部32は、画面転送装置20から操作情報を受信する度に、当該操作情報を画面生成部33へ出力する。例えば、クライアント端末10がタッチパネルを有するモバイル端末として実装される場合、タップ、ダブルタップ、フリック、スワイプ、ロングタップ、ドラッグ、ピンチイン、ピンチアウトなどの操作の種類、さらには、種類によっては操作量が操作情報として画面生成部33へ出力される。
画面生成部33は、業務画面を生成する処理部である。
一実施形態として、画面生成部33は、拡張型のブラウザ31が起動された場合、業務画面のトップページの画像データを生成し、当該業務画面のトップページの画像データを拡張型のブラウザ31がワークエリアとして用いる描画バッファ34に保存する。その後、画面生成部33は、操作情報受信部32から出力される操作情報を解釈することにより、拡張型のブラウザ31が提供するGUI(Graphical User Interface)コンポーネントに対するコマンド、例えばタブ操作、プルダウンメニュー操作、リンクするWebページの呼び出し操作などを検出する。この検出結果にしたがって、画面生成部33は、業務画面の画像データを更新し、当該業務画面の画像データを描画バッファ34に保存する。
キャプチャ部35は、キャプチャ設定にしたがってキャプチャを行う処理部である。
一実施形態として、キャプチャ部35は、可視領域、不可視領域内の更新領域および不可視領域内の更新領域を除く残りの部分の3つの種類ごとに、異なるキャプチャ頻度で描画バッファ34から画像データをキャプチャする。例えば、可視領域の場合、上述の数値の例に従えば、描画バッファ34に記憶された業務画面のうち可視領域に対応する画像データを30fpsの頻度でキャプチャする。また、不可視領域内の更新領域の場合、上述の数値の例に従えば、描画バッファ34に記憶された業務画面のうち不可視領域内の更新領域に対応する画像データを第1の更新マップから移行登録された更新頻度と同等のキャプチャ頻度でキャプチャする。また、不可視領域内の残りの部分の場合、描画バッファ34に記憶された業務画面全体の画面データを1fpsの頻度でキャプチャする。これらのキャプチャが実施される度に、キャプチャ部35は、描画バッファ34からキャプチャされた画像データを画面転送装置20へ送信する。
[具体例1]
続いて、上記の画面転送サービスの具体例を説明する。図2は、可視領域および不可視領域の遷移の一例を示す図である。また、図3は、更新マップの遷移の一例を示す図である。図2には、同一のWebページに関する業務画面200が示されており、業務画面のうち表示範囲内に含まれる可視領域がハッチングで示される一方で、業務画面のうち表示範囲内に含まれない不可視領域が可視領域のハッチングよりも薄いハッチングで示されている。図3には、図2に示したS1、S2及びS3−aの状態で生成された第1の更新マップ及び第2の更新マップが示されており、S1、S2及びS3−aの各状態で上側のテーブルが第1の更新マップ310Aを指す一方で下側のテーブルが第2の更新マップ310Bを指す。なお、状態S1、S2、S3−aは、番号順に時間が経過しているものとする。
図2の左側には、状態S1における可視領域および不可視領域が示されている。この時点では、クライアント端末10がディスプレイに表示できる表示範囲は業務画面200の最上部に存在する。この時点で生成された第1の更新マップ及び第2の更新マップは、図3の上段に示す通りとなる。すなわち、状態S1における第1の更新マップ310Aの上から1つ目のエントリは、図2の左側に示された更新領域Aに対応し、状態S1における第1の更新マップ310Aの上から2つ目のエントリは、図2の左側に示された更新領域Bに対応する。また、状態S1における第2の更新マップ310Bの上から1つ目のエントリは、図2の左側に示された更新領域Cに対応し、状態S1における第2の更新マップ310Bの上から2つ目のエントリは、図2の左側に示された更新領域Dに対応する。これらの更新領域A〜Dのうち更新領域Aと更新領域Cは、表示範囲を境界に隣接する。この場合、更新領域Cの更新頻度には更新領域Aの更新頻度「30fps」と同一の値が設定される。
このような状況の下、クライアント端末10のタッチパネル上で手指やタッチペンを下から上へ滑らせるスワイプ操作C1が行われた場合、表示範囲が下方向へスクロールする。この場合、状態がS1からS2へ遷移し、図2の中央に示す通り、可視領域および不可視領域が変化する。これに伴って、第1の更新マップ及び第2の更新マップは、図3の中段に示す通りに変化する。すなわち、状態S1で可視領域であった更新領域A及び更新領域Bのエントリは、第1の更新マップ310Aから第2の更新マップ310Bへ移行登録される。これによって、図3の中段に示す第2の更新マップ310Bに示す通り、更新領域A及び更新領域Bのエントリが生成される。このうち、更新領域Aには、更新領域Aが可視領域であった時に測定された更新頻度「30fps」が引き継いで設定されると共に、更新領域Bには、更新領域Bが可視領域であった時に測定された更新頻度「10fps」が引き継いで設定される。また、状態S1で不可視領域であった更新領域Cと更新領域Dの一部である更新領域D1は、状態S2への遷移によって可視領域となった時点で更新頻度がリセットされる。その後、所定期間、例えば30フレームに対応する1秒間が経過した時点では、図3の中段に示す第1の更新マップ310Aに示す通り、更新領域Cの更新頻度は改めて30fpsと測定されると共に、更新領域D1の更新頻度も改めて10fpsと測定される。なお、状態S1で不可視領域であった更新領域Dのもう一方の片割れである更新領域D2は、更新領域D1との間で表示範囲を境界に隣接する。それ故、更新領域D2には、更新領域D1の更新頻度「10fps」と同一の値が設定される。
これら第1の更新マップ310A及び第2の更新マップ310Bが生成された時点では、次のようなキャプチャ通知が画面転送装置20からAppサーバ30へ行われることになる。まず、更新領域C及び更新領域D1を含む可視領域の全体については、最高のキャプチャ頻度である30fpsを設定すると共に、表示範囲の左上の頂点の座標(0,800)、表示範囲の幅720および表示範囲の高さ800を設定し、これらキャプチャ頻度、キャプチャ位置及びキャプチャサイズが可視領域のキャプチャ設定としてAppサーバ30へ通知される。一方、不可視領域に含まれる更新領域Aについては、第2の更新マップ310Bのエントリに含まれる更新領域Aの更新頻度「30fps」にしたがってキャプチャ頻度を30fpsに設定すると共に、更新領域Aの左上の頂点の座標(0,20)、表示範囲の幅200および表示範囲の高さ780を設定し、これらキャプチャ頻度、キャプチャ位置及びキャプチャサイズが更新領域Aのキャプチャ設定としてAppサーバ30へ通知される。また、不可視領域に含まれる更新領域Bについては、第2の更新マップ310Bのエントリに含まれる更新領域Bの更新頻度「10fps」にしたがってキャプチャ頻度を10fpsに設定すると共に、更新領域Bの左上の頂点の座標(300,20)、表示範囲の幅300および表示範囲の高さ100を設定し、これらキャプチャ頻度、キャプチャ位置及びキャプチャサイズが更新領域Bのキャプチャ設定としてAppサーバ30へ通知される。さらに、不可視領域に含まれる更新領域D2については、第2の更新マップ310Bのエントリに含まれる更新領域D2の更新頻度「10fps」にしたがってキャプチャ頻度を10fpsに設定すると共に、更新領域D2の左上の頂点の座標(500,220)、表示範囲の幅200および表示範囲の高さ100を設定し、これらキャプチャ頻度、キャプチャ位置及びキャプチャサイズが更新領域D2のキャプチャ設定としてAppサーバ30へ通知される。
このように不可視領域の画像データがAppサーバ30によりキャプチャされる場合、更新領域A、更新領域B及び更新領域D2以外の残りの部分は最低値である1fpsでキャプチャされる。したがって、処理負荷および伝送量を抑制しつつ、業務画面の表示範囲の変更に備えて不可視領域の画像データを準備できる。
さらに、状態S2でクライアント端末10のタッチパネル上で手指やタッチペンを上から下へ滑らせるスワイプ操作C2が行われた場合、表示範囲が上方向へスクロールする。この場合、状態がS2からS3−aへ遷移し、図2の右側に示す通り、可視領域および不可視領域が変化する。つまり、表示範囲が業務画面200の最上部へ再び戻り、状態S2で不可視領域であった更新領域A及び更新領域Bが状態S3−aで再び可視領域へ遷移する。
ここで、状態S3−aで可視領域となった更新領域A及び更新領域Bについては、状態S2で不可視領域となった段階で第2の更新マップにしたがってキャプチャ設定がAppサーバ30へ通知されている。このため、Appサーバ30からは、更新領域Aについては30fpsの頻度で画像データがフレームバッファ23aへ描画されると共に、更新領域Bについては10fpsの頻度で画像データがフレームバッファ23aへ描画される。それ故、状態がS2からS3−aへ遷移した段階で表示範囲に含まれる可視領域の画像データを表示する場合、可視領域のうち更新領域Aについては30fpsの頻度で更新された画像データを表示できると共に、可視領域のうち更新領域Bについては10fpsの頻度で更新された画像データをクライアント端末10のディスプレイに表示できる。したがって、スワイプ操作C2に対するレスポンスの低下を抑制できる。
状態S2から状態S3−aへの遷移後、第1の更新マップ及び第2の更新マップは、図3の下段に示す通りに変化する。すなわち、状態S2で可視領域であった更新領域C及び更新領域D1のエントリは、第1の更新マップ310Aから第2の更新マップ310Bへ移行登録される。これによって、図3の下段に示す第2の更新マップ310Bに示す通り、更新領域Cが生成されると共に、状態S2の段階で表示範囲の境界で互いが隣接すると判定されていた更新領域D1及び更新領域D2が統合されることにより更新領域Dのエントリが生成される。ここでは、更新領域D1及び更新領域D2を統合する場合を例示したが、必ずしも統合が行われずに更新領域D1及び更新領域D2のエントリを個別に生成することとしてもかまわない。このうち、更新領域Cには、更新領域Cが可視領域であった時に測定された更新頻度「30fps」が引き継いで設定されると共に、更新領域Dには、更新領域Dが可視領域であった時に測定された更新頻度「10fps」が引き継いで設定される。また、状態S2で不可視領域であった更新領域Aと更新領域Bは、状態S3−aへの遷移によって可視領域となった時点で更新頻度がリセットされる。その後、所定期間、例えば30フレームに対応する1秒間が経過した時点では、図3の下段に示す第1の更新マップ310Aに示す通り、更新領域Aの更新頻度は改めて30fpsと測定されると共に、更新領域Bの更新頻度も改めて10fpsと測定される。
このように状態S3−aにおいても図3の下段に示された第2の更新マップが生成されることにより、各エントリの更新頻度にしたがって更新領域C及び更新領域Dのキャプチャ設定が画面転送装置20からAppサーバ30へ通知される。この結果、状態S3−aで不可視領域となる更新領域C及び更新領域Dについても、Appサーバ30からは、30fpsの頻度で更新領域Cの画像データがフレームバッファ23aへ描画されると共に、10fpsの頻度で更新領域Dの画像データがフレームバッファ23aへ描画されることになる。このため、以降に実施される可能性がある下方向へのスクロール操作に備えて不可視領域のうち更新がある更新領域C及び更新領域Dの画像データを準備できる。
[具体例2]
図4は、可視領域および不可視領域の遷移の一例を示す図である。また、図5は、更新マップの遷移の一例を示す図である。図4には、同一のWebページに関する業務画面200が示されており、業務画面のうち表示範囲内に含まれる可視領域がハッチングで示される一方で、業務画面のうち表示範囲内に含まれない不可視領域が可視領域のハッチングよりも薄いハッチングで示されている。図5には、図4に示したS1、S2及びS3−bの状態で生成された第1の更新マップ及び第2の更新マップが示されており、S1、S2及びS3−bの各状態で上側のテーブルが第1の更新マップ310Aを指す一方で下側のテーブルが第2の更新マップ310Bを指す。なお、状態S1、S2、S3−bは、番号順に時間が経過しているものとする。
これら図4及び図5に示す例は、図2及び図3に示した例と比べて、スワイプ操作C2が行われた時点、すなわち状態S2から状態S3−aまたは状態S3−bへ遷移する時点まではその内容が同一である一方で、状態S3−aまたは状態S3−bへ遷移した後において次の点が異なる。すなわち、状態S3−bへ遷移した後、状態S2で不可視領域であった更新領域Aと更新領域Bは、状態S3−bへの遷移によって可視領域となった時点で更新頻度がリセットされるが、その後、測定される更新頻度が図2及び図3に示す状態S3−aの例と異なる。具体的には、30フレームに対応する1秒間が経過した時点では、図5の下段に示す第1の更新マップ310Aに示す通り、更新領域Aの更新頻度は改めて20fpsと測定されると共に、更新領域Bの更新頻度も改めて15fpsと測定される。この結果、更新領域Aとの間で表示範囲の境界が隣接する更新領域Cの更新頻度にも、更新領域Aの更新頻度「20fps」と同一の値が設定される。
このように過去に可視領域であった更新領域が不可視領域を経て再び可視領域へ遷移した場合、当該更新領域の更新頻度をリセットして更新頻度を改めて測定し直すことにより、第1の更新マップから第2の更新マップへ移行登録される更新頻度を最新の更新頻度に近付けることができる。また、当該更新領域が再び可視領域へ遷移した場合に、更新頻度を測定し直すまでの間に更新頻度をリセットせずに過去の値を利用しても良い。
[処理の流れ]
次に、本実施例に係るシンクライアントシステム1の処理の流れについて説明する。なお、ここでは、画面転送装置20により実行される(1)画像データの送信処理、(2)キャプチャ設定の通知処理の順に説明する。
(1)画像データの送信処理
図6は、実施例1に係る画像データの送信処理の手順を示すフローチャートである。この処理は、一例として、Appサーバ30のプロセッサ上で実行される拡張型のブラウザ31が描画バッファ34を更新する間隔、例えば30fpsで繰り返し実行される。
図6に示すように、Appサーバ30から可視領域または不可視領域内の更新領域等の画像データを受信すると(ステップS101)、差分検出部23は、ステップS101で受信した画像データの配置に対応する箇所の画像データをフレームバッファ23aから読み出し、ステップS101で受信した画像データと、フレームバッファ23aから読み出された画像データとの間で画素値が同一であるか否かを画素ごとに比較する(ステップS102)。
続いて、差分検出部23は、フレームバッファ23aに記憶された業務画面のうちAppサーバ30から受信した画像データの業務画面上の配置に対応する箇所にステップS101で受信した画像データを描画する更新を実行する(ステップS103)。
その後、ステップS102で差分領域が検出された場合(ステップS104Yes)、差分検出部23は、業務画面から識別された差分領域が表示範囲設定部22により設定された表示範囲に含まれるか否かを判定する(ステップS105)。
そして、差分領域が表示範囲に含まれる場合(ステップS105Yes)、差分検出部23は、当該差分領域に対応する画像データをフレームバッファ23aから読み出し、当該差分領域の画像データを所定の圧縮方式により圧縮することによりその符号化データを生成する(ステップS106)。続いて、画像送信部24は、当該差分領域の符号化データをクライアント端末10へ送信する(ステップS107)。その後、更新頻度測定部25は、第1の更新マップのうち差分領域に対応する可視領域上のメッシュ要素の更新頻度をインクリメントする更新を実施し(ステップS108)、処理を終了する。
一方、差分領域が表示範囲に含まれない場合(ステップS105No)、差分検出部23は、当該差分領域に対応する画像データをフレームバッファ23aから読み出し、当該差分領域の画像データを所定の圧縮方式により圧縮することによりその符号化データを生成する(ステップS106’)。続いて、画像送信部24は、表示範囲内の符号化データの送信の後に、当該差分領域の符号化データをクライアント端末10へ送信する(ステップS107’)。その後、更新頻度測定部25は、第2の更新マップのうち差分領域に対応する不可視領域上のメッシュ要素の更新頻度をインクリメントする更新を実施し(ステップS109)、処理を終了する。
(2)キャプチャ設定の通知処理
図7は、実施例1に係るキャプチャ設定の通知処理の手順を示すフローチャートである。この処理は、一例として、Appサーバ30のプロセッサ上で実行される拡張型のブラウザ31が描画バッファ34を更新する間隔、例えば30fpsで繰り返し実行される。
図7に示すように、表示範囲設定部22により表示範囲が変更された場合(ステップS301Yes)、更新頻度測定部25は、第1の更新マップに含まれるエントリの中に、表示範囲の変更によって可視領域から不可視領域へ状態が遷移するエントリが存在するか否かを判定する(ステップS302)。なお、ステップS302の分岐でNoと判定された場合、ステップS303の処理を飛ばしてステップS304の処理へ移行する。
このとき、第1の更新マップに含まれるエントリの中に、表示範囲の変更によって可視領域から不可視領域へ状態が遷移するエントリが存在する場合(ステップS302Yes)、更新頻度測定部25は、当該エントリを第1の更新マップから第2の更新マップへ移行して登録する(ステップS303)。
続いて、更新頻度測定部25は、第2の更新マップに含まれるエントリのうち不可視領域から可視領域へ状態が遷移するエントリの更新頻度を所定値、例えば1fpsにリセットする(ステップS304)。
その後、更新頻度測定部25は、第1の更新マップ及び第2の更新マップの間で更新領域が重複するエントリが存在する場合(ステップS305Yes)、第2の更新マップから重複するエントリを削除する(ステップS306)。なお、第1の更新マップ及び第2の更新マップの間で更新領域が重複するエントリが存在しない場合(ステップS305No)、ステップS306の処理を飛ばしてステップS307へ移行する。
そして、判定部26は、第1の更新マップ及び第2の更新マップの間で表示範囲の境界を介して隣接する更新領域が存在するか否かを判定する(ステップS307)。このとき、第1の更新マップ及び第2の更新マップの間で表示範囲の境界を介して隣接する更新領域が存在する場合(ステップS307Yes)、更新頻度測定部25は、次のような処理を実行する。すなわち、更新頻度測定部25は、第2の更新マップに含まれる更新領域のうち第1の更新マップに含まれる更新領域と隣接する更新領域に対応付けられた更新頻度を第1の更新マップに含まれる更新領域の更新頻度と同一の値へ更新し(ステップS308)、ステップS310へ移行する。なお、第1の更新マップ及び第2の更新マップの間で表示範囲の境界を介して隣接する更新領域が存在しない場合(ステップS307No)、ステップS308の処理を飛ばしてステップS310へ移行する。
また、表示範囲の変更がない場合(ステップS301No)、設定通知部27は、前回のキャプチャ設定が通知されてから表示範囲の変更がない状態が所定期間、例えば1秒間にわたって継続したか否かを判定する(ステップS309)。このとき、所定期間にわたって表示範囲の変更がない状態が継続した場合(ステップS309Yes)、ステップS310へ移行する一方で、所定期間にわたって表示範囲の変更がない状態が継続していない場合(ステップS309No)、ステップS301へ戻る。
ステップS310では、設定通知部27は、可視領域のキャプチャ頻度に最高値である30fpsを設定し、可視領域のキャプチャ位置及びキャプチャサイズには、表示範囲の左上の頂点の座標(x,y)、表示範囲の幅wおよび表示範囲の高さhを設定することにより、可視領域のキャプチャ設定を決定する。さらに、設定通知部27は、不可視領域のうち第2の更新マップにエントリが存在する更新領域ごとに、当該更新領域のキャプチャ頻度に更新領域の更新頻度を設定し、当該更新領域のキャプチャ位置及びキャプチャサイズには、更新領域の左上の頂点の座標(x,y)、更新領域の幅wおよび更新領域の高さhを設定することにより、不可視領域内の各更新領域のキャプチャ設定を決定する(ステップS311)。
その後、設定通知部27は、ステップS310及びステップS311で決定されたキャプチャ設定をAppサーバ30へ通知し(ステップS312)、ステップS301の処理へ移行する。
[効果の一側面]
上述してきたように、本実施例に係る画面転送装置20は、業務画面の不可視領域の中でも可視領域である履歴を持つ部分には可視領域の時に測定された更新頻度にしたがってキャプチャ頻度を設定する。これによって、業務画面のキャプチャが実施される領域の大きさを絞り込むと共に、その領域でキャプチャが実施される頻度も適切に設定する。それ故、処理負荷および伝送量を抑制しつつ、業務画面の表示範囲の変更に備えて不可視領域の画像データを準備できる。したがって、本実施例に係る画面転送装置20によれば、スクロール操作に対するレスポンスの低下を抑制できる。
さて、これまで開示の装置に関する実施例について説明したが、本発明は上述した実施例以外にも、種々の異なる形態にて実施されてよいものである。そこで、以下では、本発明に含まれる他の実施例を説明する。
[RDPの併用]
上記の実施例1では、表示範囲に含まれる可視領域および表示範囲に含まれない不可視領域の両方ともキャプチャ設定を通知することにより、Appサーバ30から画像データを取得する場合を例示したがこれに限定さない。例えば、可視領域については、すなわち、Appサーバ30で実行される拡張型のブラウザ31が業務画面の更新時にOSへ発行する描画コマンドをフックするOS支援を利用することにより、Appサーバ30から画面転送装置20へ描画コマンドを送信させることとしてもよい。この場合、RDPでは、描画コマンドを最大で15fps程度の頻度でしか取得できず、画面転送装置20がAppサーバ30へキャプチャ設定を通知する頻度よりも低い頻度でしか描画コマンドを取得できない状況が生じうる。このことから、画面転送装置20は、Appサーバ30から受信する描画コマンドにしたがって第1の更新マップを更新する場合、描画コマンドが取得された頻度を補正することもできる。例えば、キャプチャ頻度が最大で30fpsである一方で、描画コマンドが最大で15fpsであるとしたとき、描画コマンドが取得される頻度がゼロに近づくほど補正更新頻度をゼロに近付ける割合をより大きくする補正を行う一方で、描画コマンドにより測定される更新頻度が15fpsに近づくほど補正更新頻度をキャプチャ頻度の30fpsに近付ける割合をより大きくする補正を行うことができる。
[分散および統合]
また、図示した各装置の各構成要素は、必ずしも物理的に図示の如く構成されておらずともよい。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、操作情報転送部21、表示範囲設定部22、差分検出部23、画像送信部24、更新頻度測定部25、判定部26又は設定通知部27に含まれる処理部の一部を画面転送装置20の外部装置としてネットワーク経由で接続するようにしてもよい。また、操作情報転送部21、表示範囲設定部22、差分検出部23、画像送信部24、更新頻度測定部25、判定部26又は設定通知部27に含まれる処理部の一部を別の装置がそれぞれ有し、ネットワーク接続されて協働することで、画面転送装置20の機能を実現するようにしてもよい。
[画面転送プログラム]
また、上記の実施例で説明した各種の処理は、予め用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。そこで、以下では、図8を用いて、上記の実施例と同様の機能を有する画面転送プログラムを実行するコンピュータの一例について説明する。
図8は、実施例1及び実施例2に係る画面転送プログラムを実行するコンピュータのハードウェア構成例を示す図である。図8に示すように、コンピュータ100は、操作部110aと、マイク110bと、カメラ110cと、ディスプレイ120と、通信部130とを有する。さらに、このコンピュータ100は、CPU150と、ROM160と、HDD170と、RAM180とを有する。これら110〜180の各部はバス140を介して接続される。
HDD170には、図8に示すように、上記の実施例1で示した操作情報転送部21、表示範囲設定部22、差分検出部23、画像送信部24、更新頻度測定部25、判定部26及び設定通知部27と同様の機能を発揮する画面転送プログラム170aが記憶される。この画面転送プログラム170aは、図1に示した操作情報転送部21、表示範囲設定部22、差分検出部23、画像送信部24、更新頻度測定部25、判定部26及び設定通知部27の各構成要素と同様、統合又は分離してもかまわない。すなわち、HDD170には、必ずしも上記の実施例1で示した全てのデータが格納されずともよく、処理に用いるデータがHDD170に格納されればよい。
このような環境の下、CPU150は、HDD170から画面転送プログラム170aを読み出した上でRAM180へ展開する。この結果、画面転送プログラム170aは、図8に示すように、画面転送プロセス180aとして機能する。この画面転送プロセス180aは、RAM180が有する記憶領域のうち画面転送プロセス180aに割り当てられた領域にHDD170から読み出した各種データを展開し、この展開した各種データを用いて各種の処理を実行する。例えば、画面転送プロセス180aが実行する処理の一例として、図6〜図7に示す処理などが含まれる。なお、CPU150では、必ずしも上記の実施例1で示した全ての処理部が動作せずともよく、実行対象とする処理に対応する処理部が仮想的に実現されればよい。
なお、上記の画面転送プログラム170aは、必ずしも最初からHDD170やROM160に記憶されておらずともかまわない。例えば、コンピュータ100に挿入されるフレキシブルディスク、いわゆるFD、CD−ROM、DVDディスク、光磁気ディスク、ICカードなどの「可搬用の物理媒体」に画面転送プログラム170aを記憶させる。そして、コンピュータ100がこれらの可搬用の物理媒体から画面転送プログラム170aを取得して実行するようにしてもよい。また、公衆回線、インターネット、LAN、WANなどを介してコンピュータ100に接続される他のコンピュータまたはサーバ装置などに画面転送プログラム170aを記憶させておき、コンピュータ100がこれらから画面転送プログラム170aを取得して実行するようにしてもよい。
1 シンクライアントシステム
10 クライアント端末
20 画面転送装置
21 操作情報転送部
22 表示範囲設定部
23a フレームバッファ
23 差分検出部
24 画像送信部
25 更新頻度測定部
26 判定部
27 設定通知部
30 Appサーバ
31 拡張型のブラウザ
32 操作情報受信部
33 画面生成部
34 描画バッファ
35 キャプチャ部

Claims (5)

  1. メモリに格納された画像データのうち、端末装置から取得される操作情報により定まるスクロール量にしたがって前記端末装置の表示部に表示させる前記画像データの表示範囲を設定する処理と、
    前記表示範囲内で更新がある領域の更新頻度を測定する処理と、
    前記メモリに格納された前記画像データのうち、前記更新頻度の測定結果が存在する領域が前記表示範囲の変更によって前記表示範囲の内から外へ遷移する場合、前記領域の画像データを前記メモリからキャプチャする頻度を前記更新頻度の測定結果に基づいて設定する処理と、
    がコンピュータにより実行される画面転送方法。
  2. 前記表示範囲の変更によって前記表示範囲の内から外へ遷移した第1の領域と、前記表示範囲内で更新頻度が測定された第2の領域とが前記表示範囲の境界を介して隣接するか否かを判定する処理が前記コンピュータにより実行され、
    前記キャプチャ頻度を設定する処理は、前記第1の領域および前記第2の領域が前記表示範囲の境界を介して隣接すると判定される場合、前記第1の領域の画像データを前記メモリからキャプチャする頻度を前記第2の領域の更新頻度に基づいて設定することを特徴とする請求項1に記載の画面転送方法。
  3. アプリケーションが前記端末装置の表示画面の更新時にオペレーティングシステムへ発行する描画コマンドをフックすることにより得られた画像データを前記端末装置へ送信する処理が前記コンピュータにより実行されることを特徴とする請求項1または2に記載の画面転送方法。
  4. メモリに格納された画像データのうち、端末装置から取得される操作情報により定まるスクロール量にしたがって前記端末装置の表示部に表示させる前記画像データの表示範囲を設定する処理と、
    前記表示範囲内で更新がある領域の更新頻度を測定する処理と、
    前記メモリに格納された前記画像データのうち、前記更新頻度の測定結果が存在する領域が前記表示範囲の変更によって前記表示範囲の内から外へ遷移する場合、前記領域の画像データを前記メモリからキャプチャする頻度を前記更新頻度の測定結果に基づいて設定する処理と、
    をコンピュータに実行させる画面転送プログラム。
  5. メモリに格納された画像データのうち、端末装置から取得される操作情報により定まるスクロール量にしたがって前記端末装置の表示部に表示させる前記画像データの表示範囲を設定する表示範囲設定部と、
    前記表示範囲内で更新がある領域の更新頻度を測定する更新頻度測定部と、
    前記メモリに格納された画像データのうち、前記更新頻度の測定結果が存在する領域が前記表示範囲の変更によって前記表示範囲の内から外へ遷移する場合、前記領域の画像データを前記メモリからキャプチャする頻度を前記更新頻度の測定結果に基づいて設定するキャプチャ設定部と、
    を有することを特徴とする画面転送装置。
JP2016127941A 2016-06-28 2016-06-28 画面転送方法、画面転送プログラム及び画面転送装置 Pending JP2018005341A (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2016127941A JP2018005341A (ja) 2016-06-28 2016-06-28 画面転送方法、画面転送プログラム及び画面転送装置
US15/496,547 US20170372681A1 (en) 2016-06-28 2017-04-25 Method, apparatus, and storage medium

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2016127941A JP2018005341A (ja) 2016-06-28 2016-06-28 画面転送方法、画面転送プログラム及び画面転送装置

Publications (1)

Publication Number Publication Date
JP2018005341A true JP2018005341A (ja) 2018-01-11

Family

ID=60677808

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016127941A Pending JP2018005341A (ja) 2016-06-28 2016-06-28 画面転送方法、画面転送プログラム及び画面転送装置

Country Status (2)

Country Link
US (1) US20170372681A1 (ja)
JP (1) JP2018005341A (ja)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10564918B2 (en) * 2017-11-01 2020-02-18 Amzetta Technologies, Llc Techniques of remotely providing user input to thin client
KR102672517B1 (ko) * 2019-07-26 2024-06-07 삼성디스플레이 주식회사 다중 주파수 구동을 수행하는 표시 장치
KR20230036640A (ko) * 2021-09-07 2023-03-15 삼성디스플레이 주식회사 표시장치 및 이의 구동방법

Also Published As

Publication number Publication date
US20170372681A1 (en) 2017-12-28

Similar Documents

Publication Publication Date Title
US11500513B2 (en) Method for icon display, terminal, and storage medium
WO2019174469A1 (zh) 消息提醒方法、装置、设备及存储介质
CN107632874B (zh) 界面显示方法、装置及终端
US20200241732A1 (en) Icon moving method, terminal and storage medium
WO2021169236A1 (zh) 渲染的方法、装置
CN110515580B (zh) 一种显示控制方法、装置及终端
KR102121905B1 (ko) Ui 제어의 배경을 설정하는 방법 및 장치, 및 단말
CN107077296B (zh) 用户终端设备和用于控制用户终端设备的方法
US20220058772A1 (en) Image Processing Method and Device
US20110145730A1 (en) Utilization of Browser Space
CN107748656B (zh) 一种画面显示方法、装置、终端及存储介质
US11194425B2 (en) Method for responding to touch operation, mobile terminal, and storage medium
CN113660504B (zh) 消息展示方法、装置、电子设备以及存储介质
JP2018005341A (ja) 画面転送方法、画面転送プログラム及び画面転送装置
US20210216177A1 (en) Navigation bar controlling method and terminal
CN110866208B (zh) 一种页面的响应式布局方法、装置及设备
WO2014206125A1 (zh) 一种电子设备上网页缩放后对齐的方法和装置
US11194598B2 (en) Information display method, terminal and storage medium
JP6257424B2 (ja) 情報処理装置及びコンピュータプログラム
JP2015191630A (ja) 情報処理装置、変更検出方法および変更検出プログラム
CN115630241A (zh) 页面显示方法、装置、电子设备及存储介质
JP2015032261A (ja) 表示装置および制御方法
US10601893B2 (en) Remote operation method and remote operation device
CN113032696A (zh) 一种页面图片的显示方法和显示装置
CN114816144B (zh) 信息显示方法、装置和电子设备