(57)【要約】【課題】利用者の作業継続性の低下を抑制すること。【解決手段】クライアント端末装置１０２は、クライアント端末装置１０２の画面上の操作に対応してサーバ１０１から受信した画面の画像データ１３０を操作ごとに記憶部１１１に記憶させる。クライアント端末装置１０２は、画面上の新たな操作に対応する画面の画像データ１３０をサーバ１０１から受信する前に、記憶部１１１に記憶された画像データ１３０を新たな操作に基づいて表示する。また、クライアント端末装置１０２は、新たな操作に対応する画面の画像データ１３０のうち記憶部１１１に含まれない画像データとして、所定の画像データを表示する。【選択図】図１
2018022259.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介してサーバと接続されるコンピュータに、
前記コンピュータの画面上の操作に対応して前記サーバから受信した前記画面の画像データを記憶部に記憶させ、
前記画面上の新たな操作に対応する前記画面の画像データを前記サーバから受信する前に、前記記憶部に記憶された前記画面の画像データの一部を前記新たな操作に基づいて表示し、前記新たな操作に対応する前記画面の画像データのうち前記記憶部に含まれない画像データとして、所定の画像データを表示する、
処理を実行させることを特徴とする画面表示プログラム。
【請求項２】
前記コンピュータに、
前記新たな操作に対応する前記画面の画像データを前記サーバから受信した場合に、前記新たな操作に対応して前記サーバから受信した前記画面の画像データを表示する、
処理を実行させることを特徴とする請求項１に記載の画面表示プログラム。
【請求項３】
前記コンピュータに、
前記記憶部に記憶された前記画面の画像データに基づき、前記画面上の操作が前記画面のスクロールを指示するスクロール操作であるか否かを判定する、
処理を実行させ、
前記記憶部に記憶された前記画面の画像データの一部を前記新たな操作に基づいて表示する処理では、
前記新たな操作に対応する前記画面の画像データを前記サーバから受信する前に、前記画面上の操作が前記スクロール操作であると判定した場合、前記記憶部に記憶された前記画面の画像データの一部を前記新たな操作に基づいて表示する、
ことを特徴とする請求項１に記載の画面表示プログラム。
【請求項４】
前記コンピュータに、
さらに、前記画面上の操作に関する操作情報と、を前記記憶部に記憶させ、
前記新たな操作に対応する前記画面の画像データを前記サーバから受信する前に、前記画面上の操作が前記スクロール操作であると判定した場合に、前記記憶部に記憶された前記操作情報と、前記新たな操作に関する操作情報と、に基づいて、前記新たな操作が前記スクロール操作であるか否かを判定する、
処理を実行させ、
前記記憶部に記憶された前記画面の画像データの一部を前記新たな操作に基づいて表示する処理では、
前記新たな操作に対応する前記画面の画像データを前記サーバから受信する前に、前記画面上の操作が前記スクロール操作であり、前記新たな操作が前記スクロール操作であると判定した場合に、前記記憶部に記憶された前記画面の画像データの一部を前記新たな操作に基づいて表示する、
ことを特徴とする請求項３に記載の画面表示プログラム。
【請求項５】
ネットワークを介してサーバと接続されるコンピュータが、
前記コンピュータの画面上の操作に対応して前記サーバから受信した前記画面の画像データを記憶部に記憶させ、
前記画面上の新たな操作に対応する前記画面の画像データを前記サーバから受信する前に、前記記憶部に記憶された前記画面の画像データの一部を前記新たな操作に基づいて表示し、前記新たな操作に対応する前記画面の画像データのうち前記記憶部に含まれない画像データとして、所定の画像データを表示する、
処理を実行することを特徴とする画面表示方法。
【請求項６】
ネットワークを介してサーバと接続され、
自装置の画面上の操作に対応して前記サーバから受信した前記画面の画像データを記憶部に記憶させ、
前記画面上の新たな操作に対応する前記画面の画像データを前記サーバから受信する前に、前記記憶部に記憶された前記画面の画像データの一部を前記新たな操作に基づいて表示し、前記新たな操作に対応する前記画面の画像データのうち前記記憶部に含まれない画像データとして、所定の画像データを表示する、
制御部を有することを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、画面表示プログラム、画面表示方法、および情報処理装置に関する。
【背景技術】
【０００２】
従来、情報処理システムの一つとして、シンクライアントシステムと呼ばれる技術がある。シンクライアントシステムは、クライアント端末装置に最低限の機能しか持たせず、サーバでプログラムを実行および各種データを保管する技術である。シンクライアントシステムでは、デスクトップ仮想化と呼ばれる技術がある。デスクトップ仮想化と呼ばれる技術では、クライアント端末装置は、リモートデスクトップとしてサーバから転送された画面の画像データを表示する。
【０００３】
また、関連する先行技術としては、利用者による画面のスクロールを指示するスクロール操作において、サーバが、スクロール操作を順次予測して更新フレームを取得する技術がある（以下特許文献１参照。）。また、サーバから実行画面情報を受信し、予測した予測操作時刻または指示物体の接触検知をトリガーとしてアプリケーションの実行画面を表示する技術がある（以下特許文献２参照。）。
【０００４】
また、先行技術としては、クライアント端末装置が、再接続時に画面のキャッシュデータのキャッシュＩＤをサーバへ送信し、サーバによってキャッシュＩＤに基づきキャッシュデータの有効性が認められた場合、キャッシュデータを用いて表示画面を生成する技術がある（以下特許文献３参照。）。また、仮想イメージファイルおよび配信サーバで作成した仮想イメージファイルを、クライアント仮想化端末およびＶＤＩ（Ｖｉｒｔｕａｌ  Ｄｅｓｋｔｏｐ  Ｉｎｆｒａｓｔｒｕｃｔｕｒｅ）システムの仮想化ホストマシンに配信する技術がある（以下特許文献４参照。）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１２−１１９９４５号公報
【特許文献２】特開２０１６−１８２６０号公報
【特許文献３】特開２００８−７１０９２号公報
【特許文献４】特開２０１３−１９０９８３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、クライアント端末装置は、送信した操作情報に対するサーバからの応答が遅い場合、利用者の操作入力に対する画面更新が遅くなる。このため、利用者による操作中に画面表示が遅くなると、例えば、利用者による作業が中断してしまうなど作業の継続性が低下する場合がある。
【０００７】
１つの側面では、本発明は、利用者による作業の継続性の低下を抑制することができる画面表示プログラム、画面表示方法、および情報処理装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明の一側面によれば、ネットワークを介してサーバと接続されるコンピュータに、前記コンピュータの画面上の操作に対応して前記サーバから受信した前記画面の画像データを記憶部に記憶させ、前記画面上の新たな操作に対応する前記画面の画像データを前記サーバから受信する前に、前記記憶部に記憶された前記画面の画像データの一部を前記新たな操作に基づいて表示し、前記新たな操作に対応する前記画面の画像データのうち前記記憶部に含まれない画像データとして、所定の画像データを表示する画面表示プログラム、画面表示方法、および情報処理装置が提案される。
【発明の効果】
【０００９】
本発明の一態様によれば、利用者の作業継続性の低下を抑制することができる。
【図面の簡単な説明】
【００１０】
【図１】図１は、クライアント端末装置による一動作例を示す説明図である。
【図２】図２は、仮想デスクトップシステムへの適用例を示す説明図である。
【図３】図３は、クライアント端末装置のハードウェア構成例を示す説明図である。
【図４】図４は、サーバのハードウェア構成例を示す説明図である。
【図５】図５は、実施の形態１に係るシステムの機能的構成例を示すブロック図である。
【図６】図６は、サーバからの応答がある場合のシーケンス図を示す説明図である。
【図７】図７は、サーバからの応答がない場合のシーケンス図を示す説明図である。
【図８】図８は、閲覧対象の絵を示す説明図である。
【図９】図９は、画面のスクロール例を示す説明図である。
【図１０】図１０は、スクロール操作における画面変化例を示す説明図である。
【図１１】図１１は、クライアント操作とサーバからのデータ例を示す説明図である。
【図１２】図１２は、スクロール操作中にサーバから応答がない場合の例を示す説明図である。
【図１３】図１３は、実施の形態１に係るクライアント端末装置が行う処理手順例（その１）を示すフローチャートである。
【図１４】図１４は、実施の形態１に係るクライアント端末装置が行う処理手順例（その２）を示すフローチャートである。
【図１５】図１５は、実施の形態１に係るクライアント端末装置が行う処理手順例（その３）を示すフローチャートである。
【図１６】図１６は、実施の形態１に係るサーバが行う処理手順例（その１）を示すフローチャートである。
【図１７】図１７は、実施の形態１に係るサーバが行う処理手順例（その２）を示すフローチャートである。
【図１８】図１８は、サーバからの応答が長期間ない例を示す説明図である。
【図１９】図１９は、実施の形態２に係るシステムの機能的構成例を示すブロック図である。
【図２０】図２０は、実施の形態２に係る再起動時におけるシステムのシーケンスを示す説明図である。
【図２１】図２１は、再起動の通知に応じた問い合わせ表示例を示す説明図である。
【図２２】図２２は、待機する場合のメッセージ表示例を示す説明図である。
【図２３】図２３は、実施の形態２に係る再起動後におけるシステムのシーケンスを示す説明図である。
【図２４】図２４は、実施の形態２に係るクライアント端末装置がサーバの再起動前に行う処理手順例を示すフローチャートである。
【図２５】図２５は、実施の形態２に係るサーバが再起動前に行う処理手順例を示すフローチャートである。
【図２６】図２６は、実施の形態２に係るクライアント端末装置がサーバの再起動後に行う処理手順例を示すフローチャートである。
【図２７】図２７は、実施の形態２に係るサーバが再起動後に行う処理手順例を示すフローチャートである。
【発明を実施するための形態】
【００１１】
以下に添付図面を参照して、本発明に係る画面表示プログラム、画面表示方法、および情報処理装置の実施の形態を詳細に説明する。
【００１２】
図１は、クライアント端末装置による一動作例を示す説明図である。システム１００は、サーバ１０１と、クライアント端末装置１０２と、を有する。システム１００は、例えば、クライアント端末装置１０２に最低限の機能しか持たせず、サーバ１０１でプログラムやデータを管理するシンクライアントシステムである。
【００１３】
クライアント端末装置１０２は、ネットワークを介してサーバ１０１と通信可能な情報処理装置である。また、クライアント端末装置１０２は、画面を有し、サーバ１０１から受信した画面の画像データを表示するコンピュータである。クライアント端末装置１０２の一例としては、ＰＣ（Ｐｅｒｓｏｎａｌ  Ｃｏｍｐｕｔｅｒ）などの固定端末装置の他、タブレットＰＣ、スマートフォン、ＰＨＳ（Ｐｅｒｓｏｎａｌ  Ｈａｎｄｙ  Ｐｈｏｎｅ  Ｓｙｓｔｅｍ）やＰＤＡ（Ｐｅｒｓｏｎａｌ  Ｄｉｇｉｔａｌ  Ａｓｓｉｓｔａｎｔ）などの移動体端末装置などが挙げられる。
【００１４】
サーバ１０１は、ネットワークを介してクライアント端末装置１０２と通信可能な情報処理装置である。また、サーバ１０１は、クライアント端末装置１０２と共有する画面を有するコンピュータである。サーバ１０１は、画面の画像データを生成して、クライアント端末装置１０２に送信する機能を有する。サーバ１０１は、画面をキャプチャすることにより画面の画像データを生成することができる。
【００１５】
従来技術では、デスクトップ仮想化において、サーバ１０１とクライアント端末装置１０２との間のネットワーク品質の悪化により、クライアント端末装置１０２から送信された操作情報に対してサーバ１０１からの応答が遅い場合がある。このような場合、クライアント端末装置１０２は、利用者の操作入力に対して画面更新が遅くなる。また、クライアント端末装置１０２は、サーバ１０１からの応答がないと、つぎの操作情報を送信することができないため、画面更新が遅くなる。利用者が、クライアント端末装置１０２が有するディスプレイの画面を見ながら作業を行う場合、画面表示が遅くなると、一連の作業を中断してしまう場合がある。このように、利用者による操作中に画面更新が遅くなると、利用者による作業の継続性が低下するという問題点がある。
【００１６】
そこで、本実施の形態では、クライアント端末装置１０２が、新たな操作に対する画像データをサーバ１０１から受信前に、新たな操作に基づく直近の画像データの一部と、所定の画像データとを表示する。これにより、通信遅延時にクライアント端末装置１０２において画面表示を継続することができる。したがって、利用者の作業継続性の低下を抑制することができる。
【００１７】
ここで、クライアント端末装置１０２からの情報の送信に対する応答をＡｃｋ（Ａｃｋｎоｗｌｅｄｇｅｍｅｎｔ）と称する。
【００１８】
まず、クライアント端末装置１０２は、マウスやキーボードなどの入力装置に対する操作を受け付ける。つぎに、クライアント端末装置１０２は、操作情報１２０−１をサーバ１０１へ送信する。また、クライアント端末装置１０２は、操作情報１２０−１をクライアント端末装置１０２が有する記憶部１１１に格納する。
【００１９】
そして、サーバ１０１は、操作情報１２０−１を受信すると、Ａｃｋを返す。また、サーバ１０１は、操作情報１２０−１に基づく画面をキャプチャすることにより画面の画像データ１３０−１を生成する。画像データ１３０の情報形式については、ＢＭＰ（ＢｉｔＭａＰ）、ＪＰＥＧ（Ｊｏｉｎｔ  Ｐｈｏｔｏｇｒａｐｈｉｃｓ  Ｅｘｐｅｒｔｓ  Ｇｒｏｕｐ）、ＧＩＦ（Ｇｒａｐｈｉｃｓ  Ｉｎｔｅｒｃｈａｎｇｅ  Ｆｏｒｍａｔ）やＰＮＧ（Ｐｏｒｔａｂｌｅ  Ｎｅｔｗｏｒｋ  Ｇｒａｐｈｉｃｓ）などが挙げられるが、特に限定しない。
【００２０】
つぎに、サーバ１０１は、生成した画像データ１３０−１を送信する。ここで、サーバ１０１は、生成した画像データ１３０−１を圧縮してから送信してもよい。また、より詳細には、サーバ１０１は、画像データ１３０−１を含むパケットを送信する。パケットには、画像データ１３０−１とヘッダ情報などが含まれる。
【００２１】
つぎに、クライアント端末装置１０２は、クライアント端末装置１０２の画面上の操作に対応してサーバ１０１から受信した画面の画像データ１３０を記憶部１１１に記憶させる。操作の送信間隔≧画像データの送信間隔である。操作の送信間隔＝画像データの送信間隔であれば、クライアント端末装置１０２は、操作ごとに画像データ１３０を記憶部１１１に記憶させる。図１の例では、クライアント端末装置１０２は、例えば、受信した画像データ１３０−１を記憶部１１１に格納する。また、クライアント端末装置１０２は、受信した画像データ１３０−１を表示する。ここで、画像データを表示するとは、画面に画像データが示す画像を表示することを示す。
【００２２】
また、クライアント端末装置１０２は、マウスやキーボードなどの入力装置に対する操作を受け付ける。つぎに、クライアント端末装置１０２は、操作情報１２０−２をサーバ１０１へ送信する。また、クライアント端末装置１０２は、操作情報１２０−２をクライアント端末装置１０２が有する記憶部１１１に格納する。
【００２３】
つぎに、クライアント端末装置１０２は、画面上の新たな操作に対応する画面の画像データ１３０をサーバ１０１から受信する前に、記憶部１１１に記憶された画像データ１３０から、新たな操作に応じた画像データを特定する。
【００２４】
ここで、画面上の新たな操作に対応する画面の画像データ１３０をサーバ１０１から受信する前とは、例えば、新たな操作を示す操作情報１２０を送信してから規定時間が経過してもサーバ１０１からＡｃｋを受信できない場合などを示す。クライアント端末装置１０２は、新たな操作を示す操作情報１２０に対するＡｃｋをサーバ１０１から受信できないと、画面上の新たな操作に対応する画面の画像データ１３０を受信できない。このため、画面更新が遅くなる。例えば、サーバ１０１は、通信の不具合により、操作情報１２０−２を受信できず、クライアント端末装置１０２に対してＡｃｋを返せない場合がある。または、サーバ１０１は、操作情報１２０−２を受信したが、通信の不具合によりクライアント端末装置１０２に対してＡｃｋを返せない場合がある。このような場合に、クライアント端末装置１０２は、サーバ１０１からＡｃｋを受信できず、画面上の新たな操作に対応する画面の画像データを受信できない。通信の不具合とは、例えば、ネットワーク上における通信の混雑やサーバ１０１内の通信の混雑などが挙げられる。また、Ａｃｋが遅くなる原因としては、通信の不具合以外にもサーバ１０１に対する負荷の増大などもある。
【００２５】
ここで、クライアント端末装置１０２は、サーバ１０１からのＡｃｋを受信していない場合、新たな操作情報をサーバ１０１に送信することができない。このため、クライアント端末装置１０２は、新たな操作情報を順次送信可能な状態でＡｃｋの受信を待機する。
【００２６】
クライアント端末装置１０２は、例えば、Ａｃｋを受信できない場合に、記憶部１１１に記憶された画像データ１３０から、新たな操作に応じた画像データを特定する。例えば、新たな操作がスクロール操作である場合、直近の画像データ１３０と、新たな操作に対応する画面の画像データ１３０とで重複する画像データがある。スクロール操作とは、利用者による画面のスクロールを指示する操作である。そこで、クライアント端末装置１０２は、新たなスクロール操作によるスクロール量に基づいて、直近の画像データから新たな操作に応じた画像データを特定する。スクロール量は、例えば、マウス３０９の操作であれば、過去の操作情報に含まれるマウスポインタの位置情報と、今回の操作情報に含まれるマウスポインタの位置情報とに基づいて特定される。また、スクロール量は、例えば、キーボード３０８のページダウンキーであれば、予め定められたスクロール量である。
【００２７】
そして、クライアント端末装置１０２は、新たな操作に基づいて、特定した画像データを表示し、新たな操作に対応する画面の画像データ１３０のうち記憶部１１１に含まれない画像データとして、所定の画像データを表示する。上述したように、新たな操作がスクロール操作の場合に、直近の画像データ１３０と、新たな操作に対応する画面の画像データ１３０とで重複する画像データがある。また、新たな操作がスクロール操作の場合に、新たな操作に対応する画面の画像データ１３０のうち直近の画像データ１３０に含まれない画像データがある。
【００２８】
ＶＤＩにおいて、クライアント端末装置１０２は、単にサーバ１０１からの画像データを表示しており、アプリケーションソフトウェアを実行していない。このため、直近の画像データ１３０−１に含まれない画像データについて、クライアント端末装置１０２は、サーバ１０１から受信しない限り、表示することができない。そこで、クライアント端末装置１０２は、直近の画像データ１３０−１に含まれない画像データとして所定の画像データを表示する。所定の画像データについては、特に限定しないが、図１の例は、所定の画像データは所定の色のみで塗りつぶされたことを示す画像データである。所定の色のみで塗りつぶされたことを示す画像データを塗りつぶし画像データとも称する。つぎに、クライアント端末装置１０２は、例えば、サーバ１０１からのＡｃｋを受信することによりサーバ１０１とクライアント端末装置１０２との通信を再開する。
【００２９】
そして、クライアント端末装置１０２は、最新の操作情報１２０−３を送信する。サーバ１０１は、操作情報１２０−３を受信すると、Ａｃｋをクライアント端末装置１０２へ送信する。そして、クライアント端末装置１０２は、操作情報１２０−３に対するＡｃｋをサーバ１０１から受信する。
【００３０】
つぎに、サーバ１０１は、操作情報１２０−３に応じた画面をキャプチャすることにより操作情報１２０−３に応じた画面の画像データ１３０−２を生成する。サーバ１０１は、生成した画像データ１３０−２をクライアント端末装置１０２へ送信する。
【００３１】
クライアント端末装置１０２は、画像データ１３０−２を受信する。クライアント端末装置１０２は、受信した画像データ１３０−２を記憶部１１１に格納する。また、クライアント端末装置１０２は、画像データ１３０−２を表示する。これにより、新たな操作に応じた画像データを表示することができる。
【００３２】
このようにして、通信中断時にクライアント端末装置１０２において画面表示を継続することができる。したがって、利用者の作業継続性の低下を抑制することができる。また、図１の例では、理解の容易化のために、塗りつぶし部分が大きくなるように画面変化を大きく表したが、実際には、画面変化は１／２０秒前後ごとに発生する。このため、塗りつぶし部分は僅かな範囲となる。
【００３３】
図２は、仮想デスクトップシステムへの適用例を示す説明図である。システム１００は、例えば、サーバ１０１と、複数のクライアント端末装置１０２と、を有する仮想デスクトップである。サーバ１０１と複数のクライアント端末装置１０２とは、ネットワーク２０１を介して接続される。ネットワーク２０１には、有線または無線を問わず、インターネット、ＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＷＡＮ（Ｗｉｄｅ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）、ＶＰＮ（Ｖｉｒｔｕａｌ  Ｐｒｉｖａｔｅ  Ｎｅｔｗｏｒｋ）などの任意の種類の通信網を採用可能である。
【００３４】
クライアント端末装置１０２は、サーバ１０１によってプログラムを実行する。また、プログラムとしては、ＯＳやアプリケーションなどである。
【００３５】
サーバ１０１は、クライアント端末装置１０２からの指示に応じてプログラムを実行したり、プログラムの処理結果などのデータを保存する。
【００３６】
図２の例ではクライアント端末装置１０２は２台としているが、これに限らず、１台であってもよいし、２台より多くてもよい。また、図２の例では、サーバ１０１は１台としているが、これに限らず、複数台であってもよい。
【００３７】
サーバ１０１は、例えば、複数のクライアント端末装置１０２のそれぞれについてクライアント端末装置１０２に対応する仮想マシン上でＯＳを実行してもよい。そして、複数のクライアント端末装置１０２は、それぞれに対応する仮想マシン上で実行されるＯＳによってプログラムを実行してもよい。また、サーバ１０１は、ブレード構成であり、ブレード上のハードウェアを各クライアント端末装置１０２に割り当ててもよい。また、サーバ１０１が複数台であり、サーバ１０１とクライアント端末装置１０２とが１対１で対応付けられていてもよい。
【００３８】
（クライアント端末装置１０２のハードウェア構成例）
図３は、クライアント端末装置のハードウェア構成例を示す説明図である。クライアント端末装置１０２は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）３０１と、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）３０２と、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）３０３と、ディスクドライブ３０４と、ディスク３０５と、を有する。また、クライアント端末装置１０２は、Ｉ／Ｆ３０６と、キーボード３０７と、ディスプレイ３０８と、マウス３０９と、を有する。また、ＣＰＵ３０１と、ＲＯＭ３０２と、ＲＡＭ３０３と、ディスクドライブ３０４と、Ｉ／Ｆ（Ｉｎｔｅｒ／Ｆａｃｅ）３０６と、キーボード３０７と、ディスプレイ３０８と、マウス３０９とは、バス３００によってそれぞれ接続される。
【００３９】
ここで、ＣＰＵ３０１は、クライアント端末装置１０２の全体の制御を司る。ＲＯＭ３０２は、ブートプログラムなどのプログラムを記憶する。ＲＡＭ３０３は、ＣＰＵ３０１のワークエリアとして使用される。ディスクドライブ３０４は、ＣＰＵ３０１の制御にしたがってディスク３０５に対するデータのリード／ライトを制御する。ディスク３０５は、ディスクドライブ３０４の制御で書き込まれたデータを記憶する。ディスク３０５としては、磁気ディスク、光ディスクなどが挙げられる。
【００４０】
Ｉ／Ｆ３０６は、通信回線を通じてＬＡＮ、ＷＡＮ、インターネットなどのネットワーク２０１に接続され、このネットワーク２０１を介して他の装置に接続される。そして、Ｉ／Ｆ３０６は、ネットワーク２０１と内部のインターフェースを司り、外部装置からのデータの入出力を制御する。Ｉ／Ｆ３０６には、例えばモデムやＬＡＮアダプタなどを採用することができる。
【００４１】
キーボード３０７やマウス３０９は、利用者の操作により、各種データの入力を受け付けるインターフェースである。ディスプレイ３０８は、ＣＰＵ３０１の指示により、データを出力するインターフェースである。
【００４２】
また、図示を省略するが、クライアント端末装置１０２には、カメラから画像データや動画データを取り込む入力装置やマイクから音声を取り込む入力装置が設けられていてもよい。また、図示を省略するが、クライアント端末装置１０２には、プリンタなどの出力装置が設けられていてもよい。
【００４３】
（サーバ１０１のハードウェア構成例）
図４は、サーバのハードウェア構成例を示す説明図である。サーバ１０１は、ＣＰＵ４０１と、ＲＯＭ４０２と、ＲＡＭ４０３と、ディスクドライブ４０４と、ディスク４０５と、Ｉ／Ｆ４０６と、を有する。
【００４４】
ＣＰＵ４０１と、ＲＯＭ４０２と、ＲＡＭ４０３と、ディスクドライブ４０４と、Ｉ／Ｆ４０６とは、バス４００によってそれぞれ接続される。
【００４５】
ここで、ＣＰＵ４０１は、サーバ１０１等の全体の制御を司る。ＲＯＭ４０２は、各種プログラムを記憶する。ＲＯＭ４０２に記憶されるプログラムは、ＣＰＵ４０１にロードされることにより、コーディングされている処理をＣＰＵ４０１に実行させる。ＲＡＭ４０３はＣＰＵ４０１のワークエリアとして使用される。
【００４６】
Ｉ／Ｆ４０６は、通信回線を通じてネットワーク２０１に接続され、ネットワーク２０１を介して他の装置に接続される。そして、Ｉ／Ｆ４０６は、ネットワーク２０１と内部のインターフェースを司り、他のコンピュータからのデータの入出力を制御する。Ｉ／Ｆ４０６には、例えば、モデムやＬＡＮアダプタなどを採用することができる。
【００４７】
ディスクドライブ４０４は、ＣＰＵ４０１の制御に従ってディスク４０５に対するデータのリード／ライトを制御する。ディスク４０５は、ディスクドライブ４０４の制御で書き込まれたデータを記憶する。ディスク４０５としては、例えば、磁気ディスク、光ディスクなどが挙げられる。
【００４８】
また、サーバ１０１は、上述した構成部のほか、例えば、ＳＳＤ（Ｓｏｌｉｄ  Ｓｔａｔｅ  Ｄｒｉｖｅ）、キーボード、マウス、ディスプレイなどを有することにしてもよい。
【００４９】
ここで、実施の形態について、実施の形態１と実施の形態２とを用いて説明する。実施の形態１では、クライアント端末装置１０２が、新たな操作に対する画像データをサーバ１０１から受信前に、直近の画像データと、当該画像データにない新たな操作に対する画像データとして所定の画像データとを新たな操作により表示する。実施の形態２では、サーバ１０１が再起動する場合、再起動前にサーバ１０１の再起動を待機するクライアント端末装置１０２のＩＰを記憶しておき、再起動後に、記憶したＩＰに基づき待機中のクライアント端末装置１０２へ接続要求の送信を依頼する。
【００５０】
（実施の形態１）
実施の形態１では、図１に示すように、クライアント端末装置１０２が、新たな操作に対する画像データをサーバ１０１から受信前に、直近の画像データと、当該画像データにない新たな操作に対する画像データとして所定の画像データとを新たな操作により表示する。これにより、通信中断時にクライアント端末装置１０２において画面表示を継続することができる。したがって、利用者の作業継続性の低下を抑制することができる。
【００５１】
（実施の形態１に係るシステムの機能的構成例）
図５は、実施の形態１に係るシステムの機能的構成例を示すブロック図である。システム１００は、サーバ１０１と、クライアント端末装置１０２と、を有する。
【００５２】
クライアント端末装置１０２は、受付部５０１と、格納部５０２と、送信部５０３と、第１判定部５０４と、第２判定部５０５と、受信部５０６と、生成部５０７と、表示部５０８と、記憶部１１１と、を有する。
【００５３】
記憶部１１１は、ＲＯＭ３０２、ＲＡＭ３０３、ディスク３０５などの記憶装置によって実現される。記憶部１１１は、例えば、数フレーム分の操作情報を格納可能な記憶領域と、数フレーム分の画像データを格納可能な記憶領域と、を有する。これらの記憶領域は、例えば、ＦＩＦＯ（Ｆｉｒｓｔ  Ｉｎ  Ｆｉｒｓｔ  Ｏｕｔ）構造にしておいてもよい。これにより、例えば、新しいフレームに関する操作情報や画像データが記憶部１１１に格納されると、最も古いフレームに関する操作情報や画像データが削除される。
【００５４】
受付部５０１から表示部５０８までの制御部の処理は、例えば、図３に示すＣＰＵ３０１がアクセス可能なＲＯＭ３０２、ＲＡＭ３０３、ディスク３０５などの記憶部１１１に記憶されたプログラムにコーディングされている。ＣＰＵ３０１が、記憶部１１１から該プログラムを読み出して、プログラムにコーディングされている処理を実行する。これにより、制御部の処理が実現される。また、制御部の処理結果は、例えば、ＲＡＭ３０３、ＲＯＭ３０２、ディスク３０５などの記憶部１１１に記憶される。
【００５５】
サーバ１０１は、受信部５１１と、生成部５１２と、送信部５１３と、記憶部５２０と、を有する。受信部５１１から送信部５１３までの制御部の処理は、例えば、図４に示すＣＰＵ４０１がアクセス可能なＲＯＭ４０２、ＲＡＭ４０３、ディスク４０５などの記憶装置に記憶されたプログラムにコーディングされている。ＣＰＵ４０１が、記憶部５２０から該プログラムを読み出して、プログラムにコーディングされている処理を実行する。これにより、制御部の処理が実現される。また、制御部の処理結果は、例えば、ＲＯＭ４０２、ＲＡＭ４０３、ディスク４０５などの記憶部５２０に記憶される。
【００５６】
図６は、サーバからの応答がある場合のシーケンス図を示す説明図である。受付部５０１は、マウス３０９やキーボード３０７によって操作情報を受け付ける（ステップＳ６０１，Ｓ６０２）。ここで、操作情報には、例えば、操作入力の時刻や操作位置を示す情報が含まれる。操作入力の時刻は、例えば、年月日時分秒などによって表される。操作位置を示す情報は、例えば、サーバ１０１で実行されているＯＳ画面上の位置を示す座標などの情報である。つぎに、格納部５０２は、受付部５０１が受け付けた操作情報を記憶部１１１に格納する（ステップＳ６０３）。そして、送信部５０３は、受付部５０１が受け付けた操作情報をサーバ１０１へ送信する。
【００５７】
また、受信部５１１は、操作情報を受信する（ステップＳ６１１，Ｓ６１２）。受信部５１１は、操作情報をＯＳに渡す。また、生成部５１２は、画面の画像データの生成処理を行う（ステップＳ６１３）。画面の画像データを生成する処理としては、まず、生成部５１２は、画面キャプチャをする。つぎに、生成部５１２は、前回キャプチャした画面と今回キャプチャした画面との差分を抽出する。前回キャプチャした画面とは、１フレーム前の画面である。つづいて、生成部５１２は、抽出した差分に基づいて動画と静止画とを分離させる。そして、生成部５１２は、分離後の動画及び静止画を圧縮した圧縮情報を生成する。ここで、分離後の動画及び静止画を圧縮するとは、動画を示す動画情報や静止画を示す静止画情報が所定のアルゴリズムによってデータ圧縮することである。そして、送信部５１３は、生成した圧縮情報を含むパケットをクライアント端末装置１０２へ送信する。
【００５８】
受信部５０６は、圧縮情報を含むパケットを受信する。そして、表示部５０８は、サーバ１０１からの画像データについての表示処理を行う（ステップＳ６０４）。表示処理としては、まず、表示部５０８は、パケットに含まれる圧縮情報を伸長して画像データを生成する。つぎに、表示部５０８は、伸長した画像データをディスプレイ３０８などに表示する。また、格納部５０２は、伸長した画像データを記憶部１１１に格納する（ステップＳ６０３）。
【００５９】
第１判定部５０４は、記憶部１１１に記憶された画像データに基づいて、利用者による操作がスクロール操作か否かを判定する（ステップＳ６０５）。判定方法の詳細な処理については、図１１を用いて後述する。第１判定部５０４は、例えば、利用者による操作がスクロール操作であるか否かの判定結果を示す判定フラグを用意しておく。第１判定部５０４は、例えば、スクロール操作であると判定した場合、判定フラグに「１」を設定する。一方、第１判定部５０４は、例えば、スクロール操作でないと判定した場合、判定フラグに「０」を設定する。
【００６０】
図７は、サーバからの応答がない場合のシーケンス図を示す説明図である。受付部５０１は、マウス３０９やキーボード３０７によって操作情報を受け付ける（ステップＳ７０１，Ｓ７０２）。格納部５０２は、受付部５０１が受け付けた操作情報を記憶部１１１に格納する。そして、送信部５０３は、受付部５０１が受け付けた操作情報をサーバ１０１へ送信する。
【００６１】
また、受信部５１１は、操作情報を受信する（ステップＳ７１１，Ｓ７１２）。受信部５１１は、操作情報をＯＳに渡す。また、生成部５１２は、画面の画像データの生成処理を行う（ステップＳ７１３）。また、受信部５０６は、画像データを受信する。そして、表示部５０８は、画像データの表示処理を行う（ステップＳ７０７）。
【００６２】
ここでサーバ１０１からの応答がない場合には、例えば、通信状況によってクライアント端末装置１０２がサーバ１０１からの応答を受信できない場合や通信状況によってサーバ１０１がクライアント端末装置１０２からの入力情報を受信できない場合などがある。図７では、サーバ１０１からの応答がない場合をＡｃｋ待ちと称する。例えば、画面表示については、２０ＦＰＳ（Ｆｒａｍｅ  Ｐｅｒ  Ｓｅｃоｎｄ）〜３０ＦＰＳ程度である。すなわち、サーバ１０１は、例えば、１／２０秒〜１／３０秒ごとに画像データをクライアント端末装置１０２に送信する。受信部５０６は、例えば、１／２０秒〜１／３０秒に基づく時間応答がなければ、サーバ１０１からの応答がないと判定する。
【００６３】
受信部５０６は、Ａｃｋの受信を所定時間待機する。そして、第２判定部５０５は、例えば、Ａｃｋ待ちになった場合に（ステップＳ７０３）、判定フラグを確認してスクロール操作中であるか否か確認する（ステップＳ７０４）。判定フラグが「１」であれば、利用者による操作がスクロール操作である。第２判定部５０５は、スクロール操作中である場合あに、記憶部１１１に記憶された操作情報に基づいて仮想応答が可能か否かを判定する（ステップＳ７０５）。仮想応答が可能か否かとは、例えば、記憶部１１１に記憶された操作情報に基づいて、記憶部１１１に記憶された直近数フレーム分の画像データによって現在の操作情報に対応する画像データを生成可能であるか否かを示す。仮想応答が可能であるか否かの詳細な処理については、図１２を用いて後述する。表示部５０８は、直近数フレームの画像データを表示する。また、仮想的な画面表示方法の詳細については図１２を用いて後述する。表示部５０８は、仮想応答が可能であると判定された場合に（ステップＳ７０５：Ｙｅｓ）、仮想表示する（ステップＳ７０６）。表示部５０８は、仮想応答が可能でないと判定された場合に（ステップＳ７０５：Ｎｏ）、ステップＳ７０３へ移行する。
【００６４】
図８は、閲覧対象の絵を示す説明図である。利用者が、例えば、図８に示すような閲覧対象の絵８００を画像閲覧アプリケーションによって表示するような利用状況においてサーバ１０１から応答がない場合を例に挙げて説明する。閲覧対象の絵８００は、例えば、塔や塔周辺のビルなどが写っている。閲覧対象の絵８００内の点線の枠で囲まれた部分が、スクロール操作によって順に表示される。
【００６５】
図９は、画面のスクロール例を示す説明図である。画像閲覧アプリケーションに対応する画面内に閲覧対象の絵が表示される。ここで、利用者の操作として、利用者が閲覧対象の絵８００を上から下まで順に表示するために、マウス３０９またはキーボード３０７による画面のスクロール操作を例に挙げる。図９（１）〜図９（９）には、一連のスクロール操作によって表示された画面例を示す。
【００６６】
図１０は、スクロール操作における画面変化例を示す説明図である。図１０（１）〜図１０（４）には、図９（１）〜図９（４）における画面の画像データ間の差異を示す。
【００６７】
図１０（１）に示す画面の画像データのうち、シフト元開始位置とシフト元終了位置とに基づく四角形の領域の画像データと、差分画像データｄｉ１と、を組み合わせることにより、図１０（２）に示す画面の画像データが得られる。例えば、図１０（１）に示すシフト元開始位置とシフト元終了位置とに基づく四角形の領域の画像データが、図１０（２）に示すシフト先開始位置に基づく領域に移動される。
【００６８】
また、図１０（２）に示す画面の画像データのうち、シフト元開始位置とシフト元終了位置とに基づく四角形の領域の画像データと、差分画像データｄｉ２と、を組み合わせることにより、図１０（３）に示す画面の画像データが得られる。
【００６９】
また、図１０（３）に示す画面の画像データのうち、シフト元開始位置とシフト元終了位置とに基づく四角形の領域の画像データと、差分画像データｄｉ３と、を組み合わせることにより、図１０（４）に示す画面の画像データが得られる。
【００７０】
図１１は、クライアント操作とサーバからのデータ例を示す説明図である。図１１には、利用者による操作が、例えば、マウス３０９によるスクロール操作である場合やキーボード３０７のページダウンキーの押下によるスクロール操作である場合を例に示す。マウス３０９によるスクロール操作である場合、受付部５０１は、マウス３０９のマウスポインタの位置情報（ｘｉ，ｙｉ）などを操作情報として受け付ける。ここで、ｉは１，２，３，４・・・などである。また、キーボード３０７のページダウンキーの押下によるスクロール操作である場合、受付部５０１は、キーボード３０７のキー操作［Ｋｅｙｉ］などを操作情報として受け付ける。
【００７１】
ここでは、時刻ｔ１〜ｔ４においてクライアント端末装置１０２が操作入力を受け付けた場合の表示画面および表示画面の生成例について説明する。本実施の形態では、例えば、クライアント端末装置１０２は、時刻ｔｉにおける操作入力に対応する画面の画像データを時刻ｔ（ｉ＋１）に表示する。
【００７２】
受信部５１１は、クライアント端末装置１０２から操作情報を受信する。つぎに、生成部５１２は、今回キャプチャした画面の画像データと、前回キャプチャした画面の画像データと、の差分データを特定する。また、生成部５１２は、現在キャプチャした画面の画像データと、前回キャプチャした画面の画像データと、で一致する部分についての領域を示す情報を生成する。一致する部分についての情報とはシフト元開始位置情報およびシフト元終了位置情報、シフト先開始位置情報などの情報である。
【００７３】
そして、送信部５１３は、データｄ１を送信する。データｄ１は、差分画像データｄｉ１および差分画像データｄｉ１の位置情報と、シフト元開始位置情報（ｓｘ１，ｓｙ１）およびシフト元終了位置情報（ｅｘ１，ｅｙ１）と、シフト先開始位置情報（ｍｘ１，ｍｙ１）と、を有する。
【００７４】
受信部５０６は、データｄ１を受信する。そして、表示部５０８は、データｄ１が有するシフト元開始位置情報（ｓｘ１，ｓｙ１）およびシフト元終了位置情報（ｅｘ１，ｅｙ１）に基づく領域内の画像データを、データｄ１が有するシフト先開始位置情報（ｍｘ１，ｍｙ１）に基づく領域に移動させる。そして、表示部５０８は、差分画像データを表示させる。ここで、シフト元開始位置情報（ｓｘ１，ｓｙ１）およびシフト元終了位置情報（ｅｘ１，ｅｙ１）に基づく領域のサイズと、シフト先開始位置情報（ｍｘ１，ｍｙ１）に基づく領域のサイズとは、同じである。シフト元開始位置情報（ｓｘ１，ｓｙ１）およびシフト元終了位置情報（ｅｘ１，ｅｙ１）に基づく領域およびシフト先開始位置情報（ｍｘ１，ｍｙ１）に基づく領域は、例えば、長方形や正方形などの四角形の領域である。移動後のシフト先開始位置情報（ｍｘ１，ｍｙ１）が示す位置の画素値は、移動前のシフト元開始位置情報（ｓｘ１，ｓｙ１）が示す位置の画素値となる。表示部５０８は、ＣｏｐｙＲｅｃｔと呼ばれる関数を発行することにより画像データを移動する処理を実現してもよい。また、表示部５０８は、差分画像データｄｉ１を表示する。これにより、表示画面ｐ１から表示画面ｐ２が得られる。
【００７５】
つぎに、時刻ｔ１と同様に時刻ｔ２においても表示画面ｐ２から表示画面ｐ３が得られる。また、時刻ｔ１と同様に時刻ｔ３においても表示画面ｐ３から表示画面ｐ４が得られる。
【００７６】
第１判定部５０４は、利用者による操作がスクロール操作であるか否かを判定する。第１判定部５０４によるスクロール操作であるか否かの判定処理を行うタイミングについては、例えば、受信部５０６によって画像データを受信する都度行ってもよいし、受信部５０６によって操作情報に対するＡｃｋを操作情報の送信後から規定時間経過しても受信できなかった場合に行ってもよいし、特に限定しない。
【００７７】
ここで、スクロール操作であるか否かの判定方法について説明する。第１判定部５０４は、各時刻において受信したシフト元開始位置と、シフト元終了位置と、シフト先開始位置とに変化がなければ、スクロール操作であると判定する。
【００７８】
図１１の例を用いると、第１判定部５０４は、時刻ｔ１〜時刻ｔ３におけるシフト元開始位置と、シフト元終了位置と、シフト先開始位置とのそれぞれに変化がなければ、スクロール操作であると判定する。第１判定部５０４は、各位置の変化の有無については以下判定式（１）が成立するか否かによって判定する。第１判定部５０４は、例えば、以下判定式（１）が成立するか否かによって一定方向に等速でスクロール操作中であるか否かを判定する。第１判定部５０４は、例えば、以下判定式（１）が成立すれば、一定方向に等速で画面スクロール中であると判定する。第１判定部５０４は、例えば、以下判定式（１）が成立しなければ、一定方向に等速で画面スクロール中でないと判定する。
【００７９】
（ｓｘ１＝ｓｘ２＝ｓｘ３）＆（ｅｘ１＝ｅｘ２＝ｅｘ３）＆（ｓｙ１＝ｓｙ２＝ｓｙ３）＆（ｅｙ１＝ｅｙ２＝ｅｙ３）＆（ｍｘ１＝ｍｘ２＝ｍｘ３）＆（ｍｙ１＝ｍｙ２＝ｍｙ３）・・・判定式（１）
【００８０】
判定式（１）では、各座標値が完全に一致している場合を条件としているが、判定式（１）において、数ピクセル程度のマージンが設けられてもよい。第１判定部５０４は、各座標値の変化がマージンの範囲内であるか否かをスクロール操作か否かの判定条件としてもよい。そして、第１判定部５０４は、上述したように、スクロール操作中であると判定した場合に判定フラグを「１」に設定する。また、第１判定部５０４は、上述したように、スクロール操作中でないと判定した場合に判定フラグを「０」に設定する。
【００８１】
図１２は、スクロール操作中にサーバから応答がない場合の例を示す説明図である。上述したように、クライアント端末装置１０２は、時刻ｔｉ（ｉ＝１，２，３，４・・・）における操作に対応する画面の画像データを時刻ｔ（ｉ＋１）に表示する。図１２の例では、時刻ｔ４において、受信部５０６が、時刻ｔ３における操作に対応する画面の画像データを受信していない。
【００８２】
そこで、第２判定部５０５は、受信部５０６によって画像データを受信していない場合に、スクロール操作中であるか否かを判別フラグによって判定する。そして、第２判定部５０５は、スクロール操作中であると判定した場合に、等速のスクロール操作が継続しているか否かを判定する。
【００８３】
ページダウンキーによるスクロール操作の場合、スクロール操作が継続中であれば、現在の時刻におけるキー操作と、数フレーム前の時刻におけるキー操作とが一致することになる。そこで、第２判定部５０５は、現在の時刻におけるキー操作と、１フレーム前の時刻におけるキー操作と、２フレーム前の時刻におけるキー操作と、の一致判定によりスクロール操作が継続しているかを判定する。ここでは２フレーム前の時刻までのキー操作と現在のキー操作との一致判定をする例を挙げているが、何フレーム前の時刻まで遡ってキー操作の一致判定をするかについては、設計事項であり、特に限定しない。図１２の例では、第２判定部５０５は、例えば、時刻ｔ４におけるキー操作［Ｋｅｙ４］と、時刻ｔ３におけるキー操作［Ｋｅｙ３］と、時刻ｔ２におけるキー操作［Ｋｅｙ２］と、が一致しているか否かを判定する。第２判定部５０５は、一致している場合に、スクロール操作が継続中であると判定する。
【００８４】
また、マウス３０９によるスクロール操作の場合、スクロール操作が継続中であれば、等速でマウス３０９のポインタ位置が移動することになる。このため、現在の時刻における操作時の位置情報と１フレーム前の時刻における操作時の位置情報との差分と、１フレーム前の時刻における操作時の位置情報と２フレーム前の時刻における操作時の位置情報との差分と、が一致することになる。そこで、第２判定部５０５は、現在の時刻における操作時の位置情報と１フレーム前の時刻における操作時の位置情報との差分と、１フレーム前の時刻における操作時の位置情報と２フレーム前の時刻における操作時の位置情報との差分と、の一致を判定する。これにより、第２判定部５０５は、この一致を判定することによりスクロール操作が継続しているかを判定する。ここでは、２フレーム前の時刻まで遡って位置情報の差分の一致判定例を挙げているが、何フレーム前の時刻まで遡ってキー操作の一致判定をするかについては、設計事項であり、特に限定しない。
【００８５】
図１２の例では、第２判定部５０５は、例えば、以下判定式（２）が成立すれば、スクロール操作継続中であると判定する。
【００８６】
｛（ｘ４−ｘ３）＝（ｘ３−ｘ２）｝＆｛（ｙ４−ｙ３）＝（ｙ３−ｙ２）｝・・・判定式（２）
【００８７】
つぎに、表示部５０８は、新たな操作に基づいて、特定した画像データを表示し、新たな操作に対応する画面の画像データのうち記憶部１１１に含まれない画像データとして、所定の画像データを表示する。そして、表示部５０８は、第２判定部５０５によってスクロール操作が継続中であると判定された場合に、記憶部１１１に記憶された画像データに基づいて、新たな操作に対応する画面の画像データを表示する。
【００８８】
表示部５０８は、例えば、時刻ｔ４における操作情報に基づいて、データｄ４を生成する。データｄ４は、シフト元開始位置情報（ｓｘ４，ｓｙ４）およびシフト元終了位置情報（ｅｘ４，ｅｙ４）と、シフト先開始位置情報（ｍｘ４，ｍｙ４）と、塗りつぶしの画像データｆ４とを有する。塗りつぶしの画像データｆ４の表示位置については、表示部５０８は、シフト元開始位置情報（ｓｘ４，ｓｙ４）およびシフト元終了位置情報（ｅｘ４，ｅｙ４）に基づく領域のサイズと、シフト先開始位置情報（ｍｘ４，ｍｙ４）と、に基づいて特定する。データｄ４が、時刻ｔ４における操作に対応する画面の画像データの代替用のデータである。
【００８９】
等速のスクロール操作が継続中であるため、表示部５０８は、以下のように、シフト元開始位置情報（ｓｘ４，ｓｙ４）およびシフト元終了位置情報（ｅｘ４，ｅｙ４）を、シフト元開始位置情報（ｓｘ３，ｓｙ３）およびシフト元終了位置情報（ｅｘ３，ｅｙ３）と同じにする。
【００９０】
・ｓｘ４＝ｓｘ３、ｓｙ４＝ｓｙ３
・ｅｘ４＝ｅｘ３、ｅｙ４＝ｅｙ３
【００９１】
そして、表示部５０８は、以下のように、シフト先開始位置情報（ｍｘ４，ｍｙ４）をシフト先開始位置情報（ｍｘ３，ｍｙ３）と同じにする。
【００９２】
・ｍｘ４＝ｍｘ３、ｍｙ４＝ｍｙ３
【００９３】
つぎに、表示部５０８は、記憶部１１１に記憶された時刻ｔ４に表示される画面の画像データから、シフト元開始位置情報（ｓｘ４，ｓｙ４）およびシフト元終了位置情報（ｅｘ４，ｅｙ４）に基づく領域に対応する画像データを特定する。表示部５０８は、特定した画像データを、シフト先開始位置情報（ｍｘ４，ｍｙ４）に基づく領域に表示する。シフト先開始位置情報（ｍｘ４，ｍｙ４）に基づく領域は、シフト元開始位置情報（ｓｘ４，ｓｙ４）およびシフト元終了位置情報（ｅｘ４，ｅｙ４）に基づく領域と同じサイズである。ここで、特定した画像データをシフト先開始位置情報（ｍｘ４，ｍｙ４）に基づく領域に表示する処理としては、表示部５０８は、以下のようにＣｏｐｙＲｅｃｔと呼ばれる関数を発行することにより実現してもよい。
【００９４】
・ＣｏｐｙＲｅｃｔ（ｓｘ４／ｓｙ４，ｅｘ４／ｅｙ４、ｍｘ４／ｍｙ４）
【００９５】
そして、表示部５０８は、時刻ｔ４に表示される画面の画像データにない時刻ｔ４の操作に応じた画像データとして、所定の画像データを表示する。所定の画像データについては、特に限定しないが、図１２の例では、グレーなどのように単色で塗りつぶされた塗りつぶしの画像データｆ４である。塗りつぶしの画像データｆ４のサイズは、以下（ｇｓｘ，ｇｓｙ）と（ｇｅｘ，ｇｅｙ）とに基づく領域のサイズである。
【００９６】
・ｇｓｘ＝ｅｘ３−ｓｘ３、ｇｓｙ＝ｅｙ３−ｓｙ３
・ｇｅｘ＝ｅｘ３、ｇｅｙ＝ｅｙ３
【００９７】
表示部５０８は、（ｇｓｘ，ｇｓｙ）と（ｇｅｘ，ｇｅｙ）とに基づく領域に塗りつぶしの画像データｆ４を表示する。
【００９８】
これにより、表示部５０８は、時刻ｔ５において、特定した画像データと、塗りつぶしの画像データｆ４と、を含むデータｄ４を画面の画像データとして表示する。表示画面ｐ５が得られる。ここで、格納部５０２は、データｄ４を時刻ｔ５の画面の画像データとして記憶部１１１に格納する。
【００９９】
また、時刻ｔ５において、受付部５０１は、新たな操作を受け付ける。第２判定部５０５は、上述したように、判定フラグがスクロール操作を表す場合に、新たな操作がスクロール操作であり、スクロール操作を継続中か否かを判定する。
【０１００】
つぎに、時刻ｔ５において、表示部５０８は、スクロール操作が継続中であると判定された場合に、データｄ５を生成する。そして、表示部５０８は、時刻ｔ６において生成したデータｄ５を表示する。これにより、表示画面ｐ６が得られる。また、格納部５０２は、データｄ５を時刻ｔ６の画面の画像データとして記憶部１１１に格納する。
【０１０１】
また、時刻ｔ６において、サーバ１０１とクライアント端末装置１０２との間の通信が再開した場合に、送信部５０３は、受付部５０１が受け付けた操作情報を順にサーバ１０１へ送信する。サーバ１０１へ順に送信するとは、例えば、受け付けた順に操作情報を１つ前の操作情報に対するサーバ１０１からのＡｃｋを受信する都度送信することを示す。
【０１０２】
また、生成部５１２は、各時刻における操作情報に対応する画面の画像データを生成する。そして、送信部５１３は、各時刻における操作情報に対応する画面の画像データを送信する。受信部５０６は、画像データを受信する。表示部５０８は、受信部５０６によって受信された画像データを表示する。ここで、操作情報の送信間隔と画像データの送信間隔とには、例えば、以下のような関係がある。
【０１０３】
クライアント端末装置１０２による操作情報の送信間隔≧サーバ１０１による操作情報に対する画面の画像データの送信間隔
【０１０４】
図１２の例における最新の操作情報は、時刻ｔ６におけるマウス３０９の操作情報（ｘ６／ｙ６）またはキーボード３０７の操作情報［Ｋｅｙ６］である。表示部５０８は、例えば、時刻ｔ７において、時刻ｔ６における操作情報に対応する画面の画像データを表示する。これにより、塗りつぶし部分を含めて表示画面ｐ７が再表示される。
【０１０５】
図１２の例では、理解の容易化のために、塗りつぶし部分が大きいように画面変化を大きく表したが、実際には画面変化は１フレームごとに発生する。１フレームごととは、例えば、１／２０秒前後ごとである。このため、通信中断から通信再開までにおけるクライアント端末装置１０２による画面のシフト量および塗りつぶしの表示領域は僅かな量である。
【０１０６】
（実施の形態１に係るクライアント端末装置１０２が行う処理手順例）
図１３は、実施の形態１に係るクライアント端末装置が行う処理手順例（その１）を示すフローチャートである。クライアント端末装置１０２は、操作入力を受け付ける（ステップＳ１３０１）。クライアント端末装置１０２は、操作情報を送信および記憶する（ステップＳ１３０２）。
【０１０７】
つぎに、クライアント端末装置１０２は、記憶された画像データに基づいて、画面スクロール中であるか否かを判断する（ステップＳ１３０３）。画面スクロール中であると判断された場合（ステップＳ１３０３：Ｙｅｓ）、クライアント端末装置１０２は、判別フラグを「１」（スクロール）に設定する（ステップＳ１３０４）。そして、画面スクロール中でないと判断された場合（ステップＳ１３０３：Ｎｏ）、クライアント端末装置１０２は、判別フラグを「０」（スクロール以外）に設定し（ステップＳ１３０５）、一連の処理を終了する。図１３の例では、クライアント端末装置１０２が、操作情報を受け付けたタイミングで、画像データに基づいて画面スクロール中であるか否かを判定しているが、これに限らない。クライアント端末装置１０２は、画像データを受信したタイミングで画像データに基づいて画面スクロール中であるか否かを判定してもよい。
【０１０８】
図１４は、実施の形態１に係るクライアント端末装置が行う処理手順例（その２）を示すフローチャートである。クライアント端末装置１０２は、圧縮情報を含むパケットを受信する（ステップＳ１４０１）。クライアント端末装置１０２は、パケットに含まれる圧縮情報を伸長して画像データを生成する（ステップＳ１４０２）。つぎに、クライアント端末装置１０２は、生成した画像データを記憶する（ステップＳ１４０３）。そして、クライアント端末装置１０２は、生成した画像データを表示し（ステップＳ１４０４）、一連の処理を終了する。
【０１０９】
図１５は、実施の形態１に係るクライアント端末装置が行う処理手順例（その３）を示すフローチャートである。クライアント端末装置１０２は、操作情報の送信に対するＡｃｋを受信したか否かを判断する（ステップＳ１５０１）。送信した操作情報に対するＡｃｋを受信していないと判断された場合（ステップＳ１５０１：Ｎｏ）、クライアント端末装置１０２は、操作情報送信後から規定時間が経過したか否かを判断する（ステップＳ１５０２）。操作情報送信後から規定時間が経過していないと判断された場合（ステップＳ１５０２：Ｎｏ）、クライアント端末装置１０２は、ステップＳ１５０１へ戻る。
【０１１０】
操作情報送信後から規定時間が経過したと判断された場合（ステップＳ１５０２：Ｙｅｓ）、クライアント端末装置１０２は、画面スクロール操作中か否かを判断する（ステップＳ１５０３）。ステップＳ１５０３において、クライアント端末装置１０２は、判別フラグが「１」であるか否かによって画面スクロール操作中か否かを判断する。上述したように、判別フラグが「１」であれば、操作がスクロール操作であることを示す。一方、判別フラグが「０」であれば、操作がスクロール操作以外であることを示す。画面スクロール操作中でないと判断された場合（ステップＳ１５０３：Ｎｏ）、クライアント端末装置１０２は、ステップＳ１５０１へ戻る。
【０１１１】
一方、画面スクロール操作中であると判断された場合（ステップＳ１５０３：Ｙｅｓ）、クライアント端末装置１０２は、画面スクロール操作が継続しているか否かを判断する（ステップＳ１５０４）。画面スクロール操作が継続していないと判断された場合（ステップＳ１５０４：Ｎｏ）、クライアント端末装置１０２は、ステップＳ１５０１へ戻る。一方、画面スクロール操作が継続していると判断された場合（ステップＳ１５０４：Ｙｅｓ）、クライアント端末装置１０２は、画面スクロール操作に基づき画面をシフトする命令を発行してシフト後の画面の画像データを表示する（ステップＳ１５０５）。つぎに、クライアント端末装置１０２は、スクロール操作に対応する画面の画像データのうち未受信の画像データとして、塗りつぶしの画像データを表示し（ステップＳ１５０６）、ステップＳ１５０１へ戻る。
【０１１２】
ステップＳ１５０１において、送信した操作情報に対するＡｃｋを受信したと判断された場合（ステップＳ１５０１：Ｙｅｓ）、クライアント端末装置１０２は、一連の処理を終了する。
【０１１３】
（実施の形態１に係るサーバ１０１が行う処理手順例）
図１６は、実施の形態１に係るサーバが行う処理手順例（その１）を示すフローチャートである。まず、サーバ１０１は、パケットを受信する（ステップＳ１６０１）。つぎに、サーバ１０１は、パケットに含まれるマウス操作情報またはＫＢ操作情報をＯＳに送付し（ステップＳ１６０２）、一連の処理を終了する。
【０１１４】
図１７は、実施の形態１に係るサーバが行う処理手順例（その２）を示すフローチャートである。まず、サーバ１０１は、所定時間経過したか否かを判断する（ステップＳ１７０１）。ここで、所定時間とは、画面の画像データの送信間隔である。
【０１１５】
所定時間経過していないと判断された場合（ステップＳ１７０１：Ｎｏ）、サーバ１０１は、ステップＳ１７０１へ戻る。所定時間経過したと判断された場合（ステップＳ１７０１：Ｙｅｓ）、サーバ１０１は、画面キャプチャを行う（ステップＳ１７０２）。サーバ１０１は、前回キャプチャした画面の画像データと、今回キャプチャした画面の画像データと、の差分を抽出する（ステップＳ１７０３）。つぎに、サーバ１０１は、差分に基づいて動画と静止画とを分離する（ステップＳ１７０４）。サーバ１０１は、動画および静止画を圧縮した圧縮情報を生成する（ステップＳ１７０５）。サーバ１０１は、圧縮情報を含むパケットを送信し（ステップＳ１７０６）、一連の処理を終了する。
【０１１６】
以上実施の形態１で説明したように、ライアント端末装置１０２が、新たな操作に対する画像データをサーバ１０１から受信前に、新たな操作に基づく直近の画像データの一部と、所定の画像データとを表示する。これにより、クライアント端末装置１０２が通信中断時に仮想的に画面表示を継続できる。したがって、利用者による作業の継続性の低下を抑制することができる。
【０１１７】
また、クライアント端末装置１０２は、新たな操作に対応する画面の画像データをサーバ１０１から受信した場合に、新たな操作に対応してサーバ１０１から受信した画面の画像データを表示する。これにより、一時的な通信中断が発生して通信が再開した後に、新たな画像データを画面に表示することができる。
【０１１８】
また、クライアント端末装置１０２は、記憶された画像データに基づいて直近の操作がスクロール操作であると判定した場合に、新たな操作に基づく直近の画像データの一部を表示する。スクロール操作は、画面の画像データをシフトさせる簡単な操作であるため、仮想的な画面表示を高速に行うことができる。また、スクロール操作は、例えば、ＵＲＬ（Ｕｎｉｆｏｒｍ  Ｒｅｓｏｕｒｃｅ  Ｌｏｃａｔｏｒ）のクリック操作などと比較して、操作に対応する画面更新が中断されると、利用者はストレスを感じやすいと推定される。このため、スクロール操作において、仮想的な画面更新を行うことで、利用者のストレスの軽減を図ることができる。
【０１１９】
また、クライアント端末装置１０２は、所定の画像データをスクロール操作のスクロール量に基づいて表示する。これにより、所定の画像データの表示領域を容易に特定でき、画面表示に要する時間の短縮化を図ることができる。
【０１２０】
また、クライアント端末装置１０２は、直近の操作がスクロール操作であり、かつ新たな操作がスクロール操作である場合に、直近の画像データを新たな操作に基づいて表示する。これにより、通信中断前から通信中断時までの間にスクロール操作が継続している場合に、直近の画像データに基づいて新たな操作に応じた画像データを推定可能な直近の操作および新たな操作において直近の画像データに基づく仮想的な画面表示を行うことができる。
【０１２１】
また、クライアント端末装置１０２は、新たな操作よりも前の操作のうち所定数前の操作から新たな操作の直前の操作までの操作に対応してサーバ１０１から受信した画面の画像データを記憶部に記憶させる。決められた数の直近の画像データによって新たな操作に対応する画像データを推定することにより、画像データを記憶する記憶領域の省メモリ化を図ることができる。
【０１２２】
（実施の形態２）
ＶＤＩシステムにおいては、クライアント端末装置１０２からサーバ１０１に対して接続要求を行うことにより、クライアント端末装置１０２とサーバ１０１とが接続される。そして、接続後に、クライアント端末装置１０２は、サーバ１０１を用いたリモートの画面表示や会話を開始することができる。サーバ１０１は、例えば、ＯＳやアプリケーションプログラムの更新、ＯＳやアプリケーションプログラムの入れ替えなどの際に再起動を行う場合がある。このような場合、図１８に示すように、サーバ１０１とクライアント端末装置１０２との間の接続は途切れる。そして、クライアント端末装置１０２は、リモートの画面が消える。クライアント端末装置１０２は、サーバ１０１の再起動後にサーバ１０１と接続するためには、新たにサーバ１０１に対して接続要求を行わなければならない。
【０１２３】
そこで、実施の形態２では、サーバ１０１は、再起動する場合、再起動を待機するクライアント端末装置１０２のＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｃｏｌ）を再起動前に記憶しておき、再起動後に、記憶したＩＰに基づき待機中のクライアント端末装置１０２へ接続要求の送信を依頼する。これにより、利用者の操作によって接続要求を行わずに、クライアント端末装置１０２は、サーバ１０１の再起動を待機して再接続要求を行うことができる。したがって、利用者の手間を省くことができる。
【０１２４】
ここで、実施の形態２では、実施の形態１と同様の機能や構成については同じ符号を付し、詳細な説明を省略する。実施の形態２の詳細な説明の前に、クライアント端末装置１０２が、サーバ１０１からの応答が長期間ない場合に、サーバ１０１との接続をタイムアウトする例について図１８を用いて説明する。
【０１２５】
図１８は、サーバからの応答が長期間ない例を示す説明図である。例えば、サーバ１０１からの応答が長期間ない場合、クライアント端末装置１０２は、サーバ１０１との接続をタイムアウトする。クライアント端末装置１０２は、タイムアウトすると、サーバ１０１との接続が異常終了したと判断する。タイムアウトであると判定する時間は、タイムアウト時間として予め定められてある。
【０１２６】
図１８の例では、クライアント端末装置１０２は、マウス３０９操作やキーボード３０７操作を受け付ける（ステップＳ１８０１、ステップＳ１８０２）。そして、クライアント端末装置１０２は、受け付けた操作を示す操作情報をサーバ１０１へ送信する。サーバ１０１は、マウス信号やキーボード信号などの操作情報を受信する（ステップＳ１８１１、Ｓ１８１２）。そして、サーバ１０１は、操作情報をＯＳへ受け渡す。
【０１２７】
また、サーバ１０１が、画面の画像データの生成処理を行う（ステップＳ１８１３）。クライアント端末装置１０２は、画面の画像データを受信して表示処理を行う（ステップＳ１８０５）。
【０１２８】
また、図１８の例では、サーバ１０１が、画像データの生成処理後に、再起動する（ステップＳ１８１４）。このような場合、サーバ１０１は、クライアント端末装置１０２からの操作情報を受信できないため、操作情報に対するＡｃｋを送信しない。このため、クライアント端末装置１０２は、Ａｃｋを待つ（ステップＳ１８０３）。クライアント端末装置１０２は、タイムアウト時間が経過してもＡｃｋを受信できないと、サーバ１０１との接続をタイムアウトする（ステップＳ１８０４）。クライアント端末装置１０２は、タイムアウトした場合、異常終了と判定する。
【０１２９】
そして、クライアント端末装置１０２は、画面表示を行わない。利用者は、クライアント端末装置１０２においてサーバ１０１の再起動が終了した頃にＶＤＩのアプリケーションソフトウェアを起動させる。再起動が終了した頃とは利用者が予測した時期である。クライアント端末装置１０２は、利用者の指示に応じてサーバ１０１と再度接続するためにサーバ１０１に対して接続要求を行う。しかし、サーバ１０１とクライアント端末装置１０２とのタイミングが合わないと、接続エラー等が発生し、利用者によって接続要求を何度もやり直すような手戻りが発生する場合がある。このため、接続を再開させるために、利用者に多大なストレスが生じる場合がある。
【０１３０】
そこで、実施の形態２では、サーバ１０１が、再起動する場合、再起動を待機するクライアント端末装置１０２のＩＰ（Ｉｎｔｅｒｎｅｔ  Ｐｒｏｔｃｏｌ）を再起動前に記憶しておき、再起動後に記憶したＩＰに基づき待機中のクライアント端末装置１０２へ接続要求の送信を依頼する。したがって、利用者がサーバ１０１の状態を予測して再接続を行わなくてよいため、利用者の手戻りの発生を抑制できる。
【０１３１】
（実施の形態２に係るシステムの機能的構成例）
図１９は、実施の形態２に係るシステムの機能的構成例を示すブロック図である。システムは、サーバ１０１と、クライアント端末装置１０２と、を有する。
【０１３２】
クライアント端末装置１０２は、受付部５０１と、送信部５０３と、受信部５０６と、表示部５０８と、記憶部１１１と、を有する。記憶部１１１は、ＲＯＭ３０２、ＲＡＭ３０３、ディスク３０５などの記憶装置によって実現される。各部の機能については、実施の形態１と同様であるため、詳細な説明を省略する。
【０１３３】
サーバ１０１は、受信部５１１と、生成部５１２と、送信部５１３と、再起動処理部１９１１と、再接続処理部１９１２と、記憶部５２０と、を有する。受信部５１１から再接続処理部１９１２までの制御部の処理は、例えば、図４に示すＣＰＵ４０１がアクセス可能なＲＯＭ４０２、ＲＡＭ４０３、ディスク４０５などの記憶装置に記憶されたプログラムにコーディングされている。ＣＰＵ４０１が、記憶装置から該プログラムを読み出して、プログラムにコーディングされている処理を実行する。これにより、制御部の処理が実現される。また、制御部の処理結果は、例えば、ＲＯＭ４０２、ＲＡＭ４０３、ディスク４０５などの記憶装置に記憶される。
【０１３４】
再起動処理部１９１１は、ネットワーク２０１を介して接続されたクライアント端末装置１０２の識別情報を記憶部５２０に記憶させる。クライアント端末装置１０２の識別情報は、クライアント端末装置１０２に後述する接続要求の送信依頼を通知可能な情報である。例えば、クライアント端末装置１０２の識別情報としては、クライアント端末装置１０２のＩＰが挙げられる。ここで、再起動処理部１９１１は、利用者によって再起動の終了を待機することを指示されたクライアント端末装置１０２のＩＰを記憶部５２０に記憶させてもよい。
【０１３５】
再起動処理部１９１１は、サーバ１０１が再起動した後に、記憶部５２０に記憶された識別情報が示す端末装置に接続要求の送信依頼を示す第１データを送信する。
【０１３６】
また、再接続処理部１９１２は、第１データの送信後に、クライアント端末装置１０２とサーバ１０１との接続要求を示す第２データを受信すると、クライアント端末装置１０２とサーバ１０１との接続を確立する。
【０１３７】
図２０は、実施の形態２に係る再起動時におけるシステムのシーケンスを示す説明図である。受付部５０１は、マウス３０９操作やキーボード３０７操作を受け付ける（ステップＳ２００１、Ｓ２００２）。そして、送信部５０３は、受け付けた操作を示す操作情報をサーバ１０１へ送信する。
【０１３８】
つぎに、受信部５１１は、マウス信号やＫＢ信号などの操作情報を受信する（ステップＳ２０１１、Ｓ２０１２）。受信部５１１は、操作情報をＯＳへ受け渡す。
【０１３９】
つぎに、生成部５１２は、画面の画像データの生成処理を行う（ステップＳ２０１３）。生成方法については、従来と同様であり、詳細な説明を省略する。そして、送信部５１３は、生成した画像データをクライアント端末装置１０２へ送信する。
【０１４０】
再起動処理部１９１１は、再起動信号を受け付けたか否かを判定する（ステップＳ２０１４）。再起動信号を受け付けていないと判定された場合（ステップＳ２０１４：Ｎｏ）、生成部５１２は、ステップＳ２０１３において、生成処理を行う。
【０１４１】
再起動処理部１９１１は、再起動信号を受け付けたと判定した場合（ステップＳ２０１４：Ｙｅｓ）、接続中のクライアント端末装置１０２に対してサーバ１０１の再起動を通知する（ステップＳ２０１５）。
【０１４２】
受信部５０６は、サーバ１０１からの再起動の通知を受信する。そして、表示部５０８は、サーバ１０１による再起動の通知に応じて利用者に対する問い合わせを表示する（ステップＳ２００４）。
【０１４３】
図２１は、再起動の通知に応じた問い合わせ表示例を示す説明図である。表示部５０８は、例えば、「再起動が終わるまで、待機しますか？」などのメッセージを表示する。また、表示部５０８は、メッセージに対する回答のボタンを表示する。ここでは、「Ｙｅｓ」ボタンと「Ｎｏ」ボタンとが表示される。「Ｙｅｓ」の選択入力を受け付けた場合、クライアント端末装置１０２は、サーバ１０１の再起動を待機する。一方、「Ｎｏ」の選択入力を受け付けた場合、クライアント端末装置１０２は、サーバ１０１の再起動を待機する。
【０１４４】
図２０の説明に戻って、受付部５０１は、表示されたメッセージに対する操作入力を受け付けることにより待機するか否かの確認を行う（ステップＳ２００５）。クライアント端末装置１０２は、待機しないことを示す情報を受け付けた場合（ステップＳ２００５：Ｎｏ）、一連の処理を終了する。待機することを示す情報を受け付けた場合（ステップＳ２００５：Ｙｅｓ）、表示部５０８は、メッセージを表示する（ステップＳ２００６）。
【０１４５】
図２２は、待機する場合のメッセージ表示例を示す説明図である。表示部５０８は、例えば、受付部５０１が「Ｙｅｓ」の選択入力を受け付けると、「サーバ１０１再起動中です。このままお待ちください。」などのメッセージを表示する。
【０１４６】
また、送信部５１３は、受付部５０１が「Ｙｅｓ」の選択入力を受け付けると、接続を継続することを示す情報をサーバ１０１へ送信する。
【０１４７】
図２０の説明に戻って、再起動処理部１９１１は、待機することを示す情報を送信したクライアント端末装置１０２のＩＰを記憶部に格納する。そして、再起動処理部１９１１は、再接続関数の設定および有効化を行う（ステップＳ２０１６）。ここで、再接続関数の設定および有効化とは、常駐プログラムのリスト内に再接続要求の送信依頼を通知する命令を追加することを示す。常駐プログラムとは、サーバ１０１上で動作するＯＳの起動と同時に自動で起動されるプログラムである。そして、再起動処理部１９１１は、再起動を行う（ステップＳ２０１７）。
【０１４８】
図２３は、実施の形態２に係る再起動後におけるシステムのシーケンスを示す説明図である。再接続処理部１９１２は、再起動後に、再接続関数によって再接続要求の送信を依頼する命令を実行する（ステップＳ２３１１）。そして、再接続処理部１９１２は、再接続要求の送信を依頼する命令の実行により、記憶部５２０に記憶されたクライアント端末装置１０２のＩＰに基づいて待機中のクライアント端末装置１０２に再接続要求の送信依頼を通知する（ステップＳ２３１２）。ここで、再接続要求の送信依頼を通知するとは、再接続要求の送信依頼を示す信号またはパケットを送信することを示す。
【０１４９】
受信部５０６は、再接続要求の送信依頼の通知を受信する。つぎに、表示部５０８は、表示中のメッセージを非表示にする（ステップＳ２３０１）。つづいて、送信部５０３は、サーバ１０１へ再接続要求を通知する（ステップＳ２３０２）。ここで、再接続要求を通知するとは、再接続要求を示す信号またはパケットを送信することを示す。
【０１５０】
受信部５１１は、再接続要求の通知を受信する。そして、再接続処理部１９１２は、再接続要求の通知元のクライアント端末装置１０２とサーバ１０１との接続を確立する（ステップＳ２３１３）。
【０１５１】
受付部５０１は、マウス３０９の操作やキーボード３０７の操作を受け付ける（ステップＳ２３０３、Ｓ２３０４）。そして、送信部５０３は、受け付けた操作を示す操作情報をサーバ１０１へ送信する。つぎに、受信部５１１は、マウス信号やＫＢ信号などの操作情報を受信する（ステップＳ２３１４、Ｓ２３１５）。受信部５１１は、操作情報をＯＳへ受け渡す。
【０１５２】
つぎに、生成部５１２は、操作情報に基づいて、画面の画像データの生成処理を行う（ステップＳ２３１６）。ここでの生成処理は、従来技術を用いてよく、特に限定しない。送信部５１３は、生成された画面の画像データをクライアント端末装置１０２へ送信する。
【０１５３】
受信部５０６は、画像データを受信する。そして、表示部５０８は、受信された画像データの表示処理を行う（ステップＳ２３０５）。
【０１５４】
これにより、再起動後に利用者の操作によって再接続を行わなくてよいため、再接続に要する一連の処理の円滑化を図ることができる。また、利用者の作業の手戻りを抑制することができ、利用者の利便性の向上を図ることができる。
【０１５５】
（実施の形態２に係るクライアント端末装置１０２がサーバ１０１の再起動前に行う処理手順例）
図２４は、実施の形態２に係るクライアント端末装置がサーバの再起動前に行う処理手順例を示すフローチャートである。まず、クライアント端末装置１０２は、サーバ１０１の再起動通知を受信する（ステップＳ２４０１）。つぎに、クライアント端末装置１０２は、サーバ１０１が再起動中に待機するか否かの問い合わせを表示する（ステップＳ２４０２）。
【０１５６】
つぎに、クライアント端末装置１０２は、待機するか否かを判断する（ステップＳ２４０３）。待機すると判断された場合（ステップＳ２４０３：Ｙｅｓ）、クライアント端末装置１０２は、待機することをサーバ１０１へ通知する（ステップＳ２４０４）。そして、クライアント端末装置１０２は、待機中であることを示すメッセージを表示し（ステップＳ２４０５）、一連の処理を終了する。
【０１５７】
また、ステップＳ２４０３において、待機しないと判断された場合（ステップＳ２４０３：Ｎｏ）、クライアント端末装置１０２は、セッション解除依頼をサーバ１０１へ通知し（ステップＳ２４０６）、一連の処理を終了する。
【０１５８】
（実施の形態２に係るサーバ１０１が再起動前に行う処理手順）
図２５は、実施の形態２に係るサーバが再起動前に行う処理手順例を示すフローチャートである。サーバ１０１は、所定時間経過したか否かを判断する（ステップＳ２５０１）。所定時間経過していないと判断された場合（ステップＳ２５０１：Ｎｏ）、サーバ１０１は、ステップＳ２５０１へ戻る。
【０１５９】
所定時間経過したと判断された場合（ステップＳ２５０１：Ｙｅｓ）、サーバ１０１は、画面キャプチャを行う（ステップＳ２５０２）。サーバ１０１は、前回キャプチャした画面の画像データと、今回キャプチャした画面の画像データと、の差分を抽出する（ステップＳ２５０３）。つぎに、サーバ１０１は、差分に基づいて動画と静止画とを分離する（ステップＳ２５０４）。サーバ１０１は、動画および静止画を圧縮した圧縮情報を生成する（ステップＳ２５０５）。サーバ１０１は、圧縮情報を含むパケットを送信する（ステップＳ２５０６）。
【０１６０】
つぎに、サーバ１０１は、再起動信号ありか否かを判断する（ステップＳ２５０７）。再起動信号ありと判断された場合（ステップＳ２５０７：Ｙｅｓ）、サーバ１０１は、クライアント端末装置１０２へ再起動を通知する（ステップＳ２５０８）。サーバ１０１は、クライアント端末装置１０２が待機するか否かを判断する（ステップＳ２５０９）。ステップＳ２５０９において、サーバ１０１は、ステップＳ２５０８において送信した再起動の通知に対する応答に基づいて、クライアント端末装置１０２が待機するか否かを判断する。
【０１６１】
待機しないと判断された場合（ステップＳ２５０９：Ｎｏ）、サーバ１０１は、ステップＳ２５１２へ移行する。つぎに、待機すると判断された場合（ステップＳ２５０９：Ｙｅｓ）、サーバ１０１は、クライアント端末装置１０２のＩＰを記憶する（ステップＳ２５１０）。つづいて、サーバ１０１は、再接続関数の設定および有効化を行う（ステップＳ２５１１）。そして、サーバ１０１は、再起動を行い（ステップＳ２５１２）、一連の処理を終了する。
【０１６２】
また、ステップＳ２５０７において、再起動信号なしと判断された場合（ステップＳ２５０７：Ｎｏ）、サーバ１０１は、一連の処理を終了する。
【０１６３】
（実施の形態２に係るクライアント端末装置１０２がサーバ１０１の再起動後に行う処理手順例）
図２６は、実施の形態２に係るクライアント端末装置がサーバの再起動後に行う処理手順例を示すフローチャートである。まず、クライアント端末装置１０２は、再接続要求の送信依頼通知を受信する（ステップＳ２６０１）。つぎに、クライアント端末装置１０２は、待機中であることを示すメッセージを非表示にする（ステップＳ２６０２）。そして、クライアント端末装置１０２は、再接続要求を送信し（ステップＳ２６０３）、一連の処理を終了する。
【０１６４】
（実施の形態２に係るサーバ１０１が再起動後に行う処理手順例）
図２７は、実施の形態２に係るサーバが再起動後に行う処理手順例を示すフローチャートである。まず、サーバ１０１は、再起動完了後に、再接続関数を実行する（ステップＳ２７０１）。そして、サーバ１０１は、再接続関数に基づいて、記憶した待機中のクライアント端末装置１０２のＩＰに基づき再接続要求の送信依頼を通知する（ステップＳ２７０２）。サーバ１０１は、再接続要求を受信する（ステップＳ２７０３）。そして、サーバ１０１は、再接続要求の送信元のクライアント端末装置１０２とサーバ１０１との接続を確立し（ステップＳ２７０４）、一連の処理を終了する。
【０１６５】
以上実施の形態２で説明したように、サーバ１０１は、再起動する場合、再起動を待機するクライアント端末装置１０２のＩＰを再起動前に記憶しておき、再起動後に、記憶したＩＰに基づき待機中のクライアント端末装置１０２へ接続要求の送信を依頼する。これにより、利用者の操作によって接続要求を行わずに、クライアント端末装置１０２は、サーバ１０１の再起動を待機して再接続要求を行うことができる。したがって、利用者の手間を省くことができる。
【０１６６】
なお、本実施の形態で説明した画面表示方法は、予め用意された画面表示プログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本画面表示プログラムは、磁気ディスク、光ディスク、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）フラッシュメモリなどのコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また、画面表示プログラムは、インターネット等のネットワーク２０１を介して配布してもよい。
【０１６７】
上述した実施の形態に関し、さらに以下の付記を開示する。
【０１６８】
（付記１）ネットワークを介してサーバと接続されるコンピュータに、
前記コンピュータの画面上の操作に対応して前記サーバから受信した前記画面の画像データを記憶部に記憶させ、
前記画面上の新たな操作に対応する前記画面の画像データを前記サーバから受信する前に、前記記憶部に記憶された前記画面の画像データの一部を前記新たな操作に基づいて表示し、前記新たな操作に対応する前記画面の画像データのうち前記記憶部に含まれない画像データとして、所定の画像データを表示する、
処理を実行させることを特徴とする画面表示プログラム。
【０１６９】
（付記２）前記コンピュータに、
前記新たな操作に対応する前記画面の画像データを前記サーバから受信した場合に、前記新たな操作に対応して前記サーバから受信した前記画面の画像データを表示する、
処理を実行させることを特徴とする付記１に記載の画面表示プログラム。
【０１７０】
（付記３）前記コンピュータに、
前記記憶部に記憶された前記画面の画像データに基づき、前記画面上の操作が前記画面のスクロールを指示するスクロール操作であるか否かを判定する、
処理を実行させ、
前記記憶部に記憶された前記画面の画像データの一部を前記新たな操作に基づいて表示する処理では、
前記新たな操作に対応する前記画面の画像データを前記サーバから受信する前に、前記画面上の操作が前記スクロール操作であると判定した場合、前記記憶部に記憶された前記画面の画像データの一部を前記新たな操作に基づいて表示する、
ことを特徴とする付記１または２に記載の画面表示プログラム。
【０１７１】
（付記４）前記表示する処理では、
前記スクロール操作によるスクロール量に基づいて前記所定の画像データを表示する、
ことを特徴とする付記３に記載の画面表示プログラム。
【０１７２】
（付記５）前記コンピュータに、
さらに、前記画面上の操作に関する操作情報を前記記憶部に記憶させ、
前記新たな操作に対応する前記画面の画像データを前記サーバから受信する前に、前記画面上の操作が前記スクロール操作であると判定した場合に、前記記憶部に記憶された前記操作情報と、前記新たな操作に関する操作情報と、に基づいて、前記新たな操作が前記スクロール操作であるか否かを判定する、
処理を実行させ、
前記記憶部に記憶された前記画面の画像データの一部を前記新たな操作に基づいて表示する処理では、
前記新たな操作に対応する前記画面の画像データを前記サーバから受信する前に、前記画面上の操作が前記スクロール操作であり、前記新たな操作が前記スクロール操作であると判定した場合に、前記記憶部に記憶された前記画面の画像データの一部を前記新たな操作に基づいて表示する、
ことを特徴とする付記３または４に記載の画面表示プログラム。
【０１７３】
（付記６）コンピュータに、
ネットワークを介して接続された端末装置の識別情報を記憶部に記憶し、
前記コンピュータが再起動した場合に、前記記憶部に記憶された識別情報が示す端末装置に接続要求の送信依頼を示す第１データを送信し、
前記第１データの送信後に、前記端末装置と前記コンピュータとの接続要求を示す第２データを受信すると、前記端末装置と前記コンピュータとの接続を確立する、
処理を実行させることを特徴とする接続プログラム。
【０１７４】
（付記７）ネットワークを介してサーバと接続されるコンピュータが、
前記コンピュータの画面上の操作に対応して前記サーバから受信した前記画面の画像データを記憶部に記憶させ、
前記画面上の新たな操作に対応する前記画面の画像データを前記サーバから受信する前に、前記記憶部に記憶された前記画面の画像データの一部を前記新たな操作に基づいて表示し、前記新たな操作に対応する前記画面の画像データのうち前記記憶部に含まれない画像データとして、所定の画像データを表示する、
処理を実行することを特徴とする画面表示方法。
【０１７５】
（付記８）コンピュータが、
ネットワークを介して接続された端末装置の識別情報を記憶部に記憶し、
前記コンピュータが再起動した場合に、前記記憶部に記憶された識別情報が示す端末装置に接続要求の送信依頼を示す第１データを送信し、
前記第１データの送信後に、前記端末装置と前記コンピュータとの接続要求を示す第２データを受信すると、前記端末装置と前記コンピュータとの接続を確立する、
処理を実行することを特徴とする接続方法。
【０１７６】
（付記９）ネットワークを介してサーバと接続され、
自装置の画面上の操作に対応して前記サーバから受信した前記画面の画像データを記憶部に記憶させ、
前記画面上の新たな操作に対応する前記画面の画像データを前記サーバから受信する前に、前記記憶部に記憶された前記画面の画像データの一部を前記新たな操作に基づいて表示し、前記新たな操作に対応する前記画面の画像データのうち前記記憶部に含まれない画像データとして、所定の画像データを表示する、
制御部を有することを特徴とする情報処理装置。
【０１７７】
（付記１０）ネットワークを介して接続された端末装置の識別情報を記憶部に記憶し、
自装置が再起動した場合に、前記記憶部に記憶された識別情報が示す端末装置に接続要求の送信依頼を示す第１データを送信し、
前記第１データの送信後に、前記端末装置と自装置との接続要求を示す第２データを受信すると、前記端末装置と自装置との接続を確立する、
制御部を有する情報処理装置。
【符号の説明】
【０１７８】
１００  システム
１０１  サーバ
１０２  クライアント端末装置
１１１，５２０  記憶部
１２０  操作情報
１３０  画像データ
２０１  ネットワーク
５０１  受付部
５０２  格納部
５０３，５１３  送信部
５０４  第１判定部
５０５  第２判定部
５０６，５１１  受信部
５０７，５１２  生成部
５０８  表示部
８００  絵
１９１１  再起動処理部
１９１２，１９１３  再接続処理部
【図１】
2018022259.tif 000003
【図２】
2018022259.tif 000004
【図３】
2018022259.tif 000005
【図４】
2018022259.tif 000006
【図５】
2018022259.tif 000007
【図６】
2018022259.tif 000008
【図７】
2018022259.tif 000009
【図８】
2018022259.tif 000010
【図９】
2018022259.tif 000011
【図１０】
2018022259.tif 000012
【図１１】
2018022259.tif 000013
【図１２】
2018022259.tif 000014
【図１３】
2018022259.tif 000015
【図１４】
2018022259.tif 000016
【図１５】
2018022259.tif 000017
【図１６】
2018022259.tif 000018
【図１７】
2018022259.tif 000019
【図１８】
2018022259.tif 000020
【図１９】
2018022259.tif 000021
【図２０】
2018022259.tif 000022
【図２１】
2018022259.tif 000023
【図２２】
2018022259.tif 000024
【図２３】
2018022259.tif 000025
【図２４】
2018022259.tif 000026
【図２５】
2018022259.tif 000027
【図２６】
2018022259.tif 000028
【図２７】
2018022259.tif 000029