(57)【要約】【課題】クライアントとサーバとを接続するネットワークにおける伝送遅延によって、クライアントへの操作に対するレスポンスが遅れていることを、ユーザに的確に報知することにより、ユーザの作業効率を向上させることが可能なサーバベースコンピューティングシステムの提供。【解決手段】クライアントは、検出した入力に番号を割り当て、入力情報にこの番号を付加してサーバへ送信し、サーバは、受信した入力情報に付加されていた番号を画面情報に付加してクライアントへ送信し、クライアントは、入力情報を送信後一定時間以内に、その時点における最新の入力に割り当てられた番号と等しい番号が付加された画面情報が受信できない場合に、砂時計アイコン等のフィードバックを提示し、クライアントは、最新の入力に割り当てた番号と等しい番号が付加された画面情報を受信した時、フィードバックを提示中であればこれを終了する。【選択図】図４
2008033407.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介してサーバ装置に対してサービス要求を行ない、前記サービス要求に対応する画面情報を前記サーバ装置から取得して表示するクライアント装置であって、
前記サーバ装置に対する前記サービス要求のための命令と前記サービス要求に対応する特定の符号とを生成する命令符号生成手段と、
前記命令符号生成手段によって生成された前記サービス要求のための命令と前記サービス要求に対応する特定の符号とを前記サーバ装置に対して送信するクライアント側送信手段と、
前記クライアント側送信手段によって送信された前記サービス要求のための命令に基づいて前記サーバ装置で生成された画面情報と前記サービス要求に対応する特定の符号とを前記サーバ装置から受信するクライアント側受信手段と、
前記クライアント側送信手段によって送信した前記サービス要求に対応する特定の符号と前記クライアント側受信手段によって受信した前記サービス要求に対応する特定の符号とが一致するか否かを判断する判断手段と、
前記クライアント側送信手段による前記サービス要求のための命令と前記サービス要求に対応する特定の符号の送信の後、前記判断手段によって送信した前記サービス要求に対応する特定の符号と受信した前記サービス要求に対応する特定の符号とが一致すると判断するまでの間、前記サービス要求のための命令に基づいて生成された前記画面情報が前記クライアント側受信手段によって受信されていないことを示すフィードバック情報を出力するフィードバック情報出力手段と、
を備えることを特徴とするクライアント装置。
【請求項２】
さらに、
前記クライアント側受信手段によって受信した前記画面情報を表示する表示手段、
を備え、
前記フィードバック情報出力手段は、前記判断手段によって送信した前記サービス要求に対応する特定の符号と受信した前記サービス要求に対応する特定の符号とが一致したと判断した際、前記フィードバック情報出力手段による前記フィードバック情報の出力を取り止めることを特徴とする請求項１に記載のクライアント装置。
【請求項３】
前記フィードバック情報出力手段は、前記クライアント側送信手段による前記サービス要求のための命令と前記サービス要求に対応する特定の符号の送信の後であって予め定めた所定時間の経過後、前記判断手段によって送信した前記サービス要求に対応する特定の符号と受信した前記サービス要求に対応する特定の符号とが一致すると判断するまでの間、前記サービス要求のための命令に基づいて生成された前記画面情報が前記クライアント側受信手段によって受信されていないことを示すフィードバック情報を出力することを特徴とする請求項１または２に記載のクライアント装置。
【請求項４】
前記所定時間は、従前の前記クライアント側送信手段による前記サービス要求のための命令と前記サービス要求に対応する特定の符号の送信から、前記判断手段によって送信した前記サービス要求に対応する特定の符号と受信した前記サービス要求に対応する特定の符号とが一致すると判断するまでの時間の平均値に基づいて定められることを特徴とする請求項３に記載のクライアント装置。
【請求項５】
ネットワークを介したクライアント装置からのサービス要求に基づいて、前記サービス要求に対応する画面情報を前記クライアント装置へ送信するサーバ装置であって、
前記サービス要求のための命令と前記サービス要求に対応する特定の符号とを前記クライアント装置から受信するサーバ側受信手段と、
前記サーバ側受信手段によって受信した前記サービス要求のための命令に基づいて、前記画面情報を生成する画面情報生成手段と、
前記画面情報生成手段によって生成された画面情報と前記サーバ側受信手段によって受信した前記サービス要求に対応する特定の符号とを対応付けて前記クライアント装置へ送信するサーバ側送信手段と、
を備えることを特徴とするサーバ装置。
【請求項６】
前記サーバ側送信手段は、前記画面情報生成手段によって生成された画面情報が空白データであった場合、前記空白データであることを示す情報と前記サーバ側受信手段によって受信した前記サービス要求に対応する特定の符号とを対応付けて前記クライアント装置へ送信することを特徴とする請求項５に記載のサーバ装置。
【請求項７】
請求項１乃至４の何れか１項に記載のクライアント装置と請求項５または６に記載のサーバ装置とを備えるサーバベースコンピューティングシステム。
【請求項８】
ネットワークを介してサーバ装置に対してサービス要求を行ない、前記サービス要求に対応する画面情報を前記サーバ装置から取得して表示するクライアント装置のコンピュータを、
前記サーバ装置に対する前記サービス要求のための命令と前記サービス要求に対応する特定の符号とを生成する命令符号生成手段、
前記命令符号生成手段によって生成された前記サービス要求のための命令と前記サービス要求に対応する特定の符号とを前記サーバ装置に対して送信するクライアント側送信手段、
前記クライアント側送信手段によって送信された前記サービス要求のための命令に基づいて前記サーバ装置で生成された画面情報と前記サービス要求に対応する特定の符号とを前記サーバ装置から受信するクライアント側受信手段、
前記クライアント側送信手段によって送信した前記サービス要求に対応する特定の符号と前記クライアント側受信手段によって受信した前記サービス要求に対応する特定の符号とが一致するか否かを判断する判断手段、
前記クライアント側送信手段による前記サービス要求のための命令と前記サービス要求に対応する特定の符号の送信の後、前記判断手段によって送信した前記サービス要求に対応する特定の符号と受信した前記サービス要求に対応する特定の符号とが一致すると判断するまでの間、前記サービス要求のための命令に基づいて生成された前記画面情報が前記クライアント側受信手段によって受信されていないことを示すフィードバック情報を出力するフィードバック情報出力手段、
として機能させるためのプログラム。
【請求項９】
ネットワークを介したクライアント装置からのサービス要求に基づいて、前記サービス要求に対応する画面情報を前記クライアント装置へ送信するサーバ装置のコンピュータを、
前記サービス要求のための命令と前記サービス要求に対応する特定の符号とを前記クライアント装置から受信するサーバ側受信手段、
前記サーバ側受信手段によって受信した前記サービス要求のための命令に基づいて、前記画面情報を生成する画面情報生成手段、
前記画面情報生成手段によって生成された画面情報と前記サーバ側受信手段によって受信した前記サービス要求に対応する特定の符号とを対応付けて前記クライアント装置へ送信するサーバ側送信手段、
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アプリケーションプログラムを動作させるサーバ装置に対してサービス要求を行なうクライアント装置とクライアント装置からのサービス要求に基づいてアプリケーションプログラムを動作させるサーバ装置とがネットワークを介して相互に接続可能に構成されたサーバベースコンピューティングシステムに関する。
【背景技術】
【０００２】
近年、企業によるサーバベースコンピューティングの採用が急速に進んでいる。
サーバベースコンピューティング（シンクライアントシステム）とは、クライアント装置とサーバ装置とがネットワークを介して相互に接続可能に構成されたシステムにおいて、クライアント装置がサーバ装置に対してサービス要求を行なうと、サーバ装置がクライアント装置からのサービス要求に基づいて、データの管理およびアプリケーションプログラムを動作させるというものである（例えば、特許文献１および非特許文献１参照。）。
【０００３】
図１は、シンクライアントシステムの概要を説明するための図である。
図１に示す通り、ユーザはクライアント装置（シンクライアント端末あるいはシンクライアント装置と呼ばれることもある）１を操作することで、サーバ装置２で実行されるアプリケーションが提供するサービスを利用することができる。クライアント装置１では、キーボードやマウス等を操作することによる入力情報をネットワーク（通信網）３を介してサーバ装置２に送信し、サーバ装置２からネットワーク３を介して受信した画面データを表示する。
【０００４】
サーバ装置２はクライアント装置１で表示するための表示データを作成し、ネットワーク３を介してクライアント装置１に送る。クライアント装置１では、ユーザのキーやマウス等の操作情報を、ネットワーク３を介してサーバ装置２へ送り、前記サーバ装置２で作成されたクライアント装置１で表示するための表示データを受け取って表示する。クライアント装置１は、ネットワーク機器、表示装置、マウスやキーボード等の入力装置を備えているだけでよく、データをクライアント装置１で持たないためハードディスク等のストレージが不要であり、また、アプリケーションプログラムの実行を行なわないためクライアント装置１に必要となる処理の負荷が軽いというメリットがある。
【０００５】
企業はサーバベースコンピューティングを導入することにより、データやアプリケーションプログラム等の資源がサーバ装置で一元管理できるため、運用コストや管理コストを削減することができるというメリットがある。また、クライアント装置１は複雑で高価なパソコンを使用せず、表示や入力などの最低限の機能のみを持った低価格の端末を使用し、従来のパソコンに比べて安価に調達することができるというメリットがある。セキュリティ面においても、データをクライアント装置で保持しないという性質から、情報漏洩対策にも有効である。また、サーバ装置２が有するデータへのアクセス制限をかけたり、アクセスログを取ったりすることにより、情報への不正アクセスのリスクを減らすことが出来る。ウイルスに対しても、サーバ装置２で一括対処することが可能となる。
【０００６】
上述のように、サーバベースコンピューティングシステムにおいて、サーバ装置２でアプリケーション等の実行を行ない、クライアント装置１では画面表示、マウス、キー等による入出力のみを行なう技術では、一般的にはクライアント装置１では常にマウスやキーの入力をサーバ装置２に送信し続け、サーバ装置２で各種処理を行っている。
【特許文献１】特開２００４−３４９９６５号公報
【非特許文献１】ｈｔｔｐ：／／ｗｗｗ．ｋｅｙｍａｎ．ｏｒ．ｊｐ／ｓｅａｒｃｈ／３０００００３１＿１．ｈｔｍｌ（サーバーベースコンピューティング）
【発明の開示】
【発明が解決しようとする課題】
【０００７】
上述のような技術においては、クライアント装置１からの要求に基づいて、サーバ装置２でアプリケーションプログラムが実行される。このため、ユーザがクライアント装置１で行った入力操作はネットワーク３を介してサーバ装置２に送信され、その操作に対するアプリケーションプログラムのレスポンスが画面データとして今度はサーバ装置２からクライアント装置１に向けて送信され、これをクライアント装置１の画面等出力装置に表示することとなる。このため、ユーザは入力操作に対するレスポンスを、利用しているネットワーク３のＲＴＴ（ラウンドトリップタイム： ネットワーク３をデータが往復するのに要する時間）あるいはそれ以上の時間分待たなければならない。このＲＴＴは、近年普及が著しい携帯電話等の移動体通信網においては、ＬＡＮの場合と比較して数百倍程度大きいことが知られている。さらに移動体通信網では、その程度は状況により変化するが、エラー発生時の再送や端末移動時のゾーン切り替え等による大きな遅延が時折発生する。
【０００８】
従って、クライアント装置１とサーバ装置２との間のネットワーク３の伝送遅延が大きい場合には、クライアント装置１でユーザが入力した結果がなかなか画面に反映されない状況が発生する。このような状況下では、ユーザは自分が入力ミスをしたと錯覚し、再度同じ入力を繰り返してしまうような行動をとることが多い。このような心理的行動は、本来必要の無い入力をしてしまうだけにとどまらず、不要な入力に対する結果として更なる余計な作業が発生することが多く（例えば文字入力であれば、余計な文字入力に対してそれを削除するための入力が更に必要になる）、作業効率を著しく低下させるという問題点があった。
【０００９】
そこで、本発明は、上記問題点に鑑みてなされたものであり、クライアント装置とサーバ装置とを接続するネットワークにおける伝送遅延によって、クライアント装置への操作に対するレスポンスが遅れていることを、ユーザに的確に報知することが可能となり、よってユーザの作業効率を向上させることが可能なサーバベースコンピューティングシステムを提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明は、上記課題を解決するため、下記のような構成を採用した。
すなわち、本発明の一態様によれば、本発明のクライアント装置は、ネットワークを介してサーバ装置に対してサービス要求を行ない、前記サービス要求に対応する画面情報を前記サーバ装置から取得して表示するクライアント装置であって、前記サーバ装置に対する前記サービス要求のための命令と前記サービス要求に対応する特定の符号とを生成する命令符号生成手段と、前記命令符号生成手段によって生成された前記サービス要求のための命令と前記サービス要求に対応する特定の符号とを前記サーバ装置に対して送信するクライアント側送信手段と、前記クライアント側送信手段によって送信された前記サービス要求のための命令に基づいて前記サーバ装置で生成された画面情報と前記サービス要求に対応する特定の符号とを前記サーバ装置から受信するクライアント側受信手段と、前記クライアント側送信手段によって送信した前記サービス要求に対応する特定の符号と前記クライアント側受信手段によって受信した前記サービス要求に対応する特定の符号とが一致するか否かを判断する判断手段と、前記クライアント側送信手段による前記サービス要求のための命令と前記サービス要求に対応する特定の符号の送信の後、前記判断手段によって送信した前記サービス要求に対応する特定の符号と受信した前記サービス要求に対応する特定の符号とが一致すると判断するまでの間、前記サービス要求のための命令に基づいて生成された前記画面情報が前記クライアント側受信手段によって受信されていないことを示すフィードバック情報を出力するフィードバック情報出力手段とを備えることを特徴とする。
【００１１】
また、本発明のクライアント装置は、さらに、前記クライアント側受信手段によって受信した前記画面情報を表示する表示手段を備え、前記フィードバック情報出力手段が、前記判断手段によって送信した前記サービス要求に対応する特定の符号と受信した前記サービス要求に対応する特定の符号とが一致したと判断した際、前記フィードバック情報出力手段による前記フィードバック情報の出力を取り止めることが望ましい。
【００１２】
また、本発明のクライアント装置は、前記フィードバック情報出力手段が、前記クライアント側送信手段による前記サービス要求のための命令と前記サービス要求に対応する特定の符号の送信の後であって予め定めた所定時間の経過後、前記判断手段によって送信した前記サービス要求に対応する特定の符号と受信した前記サービス要求に対応する特定の符号とが一致すると判断するまでの間、前記サービス要求のための命令に基づいて生成された前記画面情報が前記クライアント側受信手段によって受信されていないことを示すフィードバック情報を出力することが望ましい。
【００１３】
また、本発明のクライアント装置は、前記所定時間が、従前の前記クライアント側送信手段による前記サービス要求のための命令と前記サービス要求に対応する特定の符号の送信から、前記判断手段によって送信した前記サービス要求に対応する特定の符号と受信した前記サービス要求に対応する特定の符号とが一致すると判断するまでの時間の平均値に基づいて定められることが望ましい。
【００１４】
また、本発明の一態様によれば、本発明のサーバ装置は、ネットワークを介したクライアント装置からのサービス要求に基づいて、前記サービス要求に対応する画面情報を前記クライアント装置へ送信するサーバ装置であって、前記サービス要求のための命令と前記サービス要求に対応する特定の符号とを前記クライアント装置から受信するサーバ側受信手段と、前記サーバ側受信手段によって受信した前記サービス要求のための命令に基づいて、前記画面情報を生成する画面情報生成手段と、前記画面情報生成手段によって生成された画面情報と前記サーバ側受信手段によって受信した前記サービス要求に対応する特定の符号とを対応付けて前記クライアント装置へ送信するサーバ側送信手段とを備えることを特徴とする。
【００１５】
また、本発明のサーバ装置は、前記サーバ側送信手段が、前記画面情報生成手段によって生成された画面情報が空白データであった場合、前記空白データであることを示す情報と前記サーバ側受信手段によって受信した前記サービス要求に対応する特定の符号とを対応付けて前記クライアント装置へ送信することが望ましい。
【００１６】
また、本発明の一態様によれば、本発明のサーバベースコンピューティングシステムは、上述の何れかのクライアント装置と上述の何れかのサーバ装置とを備える。
また、本発明の一態様によれば、本発明のプログラムは、ネットワークを介してサーバ装置に対してサービス要求を行ない、前記サービス要求に対応する画面情報を前記サーバ装置から取得して表示するクライアント装置のコンピュータを、前記サーバ装置に対する前記サービス要求のための命令と前記サービス要求に対応する特定の符号とを生成する命令符号生成手段、前記命令符号生成手段によって生成された前記サービス要求のための命令と前記サービス要求に対応する特定の符号とを前記サーバ装置に対して送信するクライアント側送信手段、前記クライアント側送信手段によって送信された前記サービス要求のための命令に基づいて前記サーバ装置で生成された画面情報と前記サービス要求に対応する特定の符号とを前記サーバ装置から受信するクライアント側受信手段、前記クライアント側送信手段によって送信した前記サービス要求に対応する特定の符号と前記クライアント側受信手段によって受信した前記サービス要求に対応する特定の符号とが一致するか否かを判断する判断手段、前記クライアント側送信手段による前記サービス要求のための命令と前記サービス要求に対応する特定の符号の送信の後、前記判断手段によって送信した前記サービス要求に対応する特定の符号と受信した前記サービス要求に対応する特定の符号とが一致すると判断するまでの間、前記命令に基づいて生成された前記画面情報が前記クライアント側受信手段によって受信されていないことを示すフィードバック情報を出力するフィードバック情報出力手段として機能させるためのプログラムである。
【００１７】
また、本発明の一態様によれば、本発明のプログラムは、ネットワークを介したクライアント装置からのサービス要求に基づいて、前記サービス要求に対応する画面情報を前記クライアント装置へ送信するサーバ装置のコンピュータを、前記サービス要求のための命令と前記サービス要求に対応する特定の符号とを前記クライアント装置から受信するサーバ側受信手段、前記サーバ側受信手段によって受信した前記サービス要求のための命令に基づいて、前記画面情報を生成する画面情報生成手段、前記画面情報生成手段によって生成された画面情報と前記サーバ側受信手段によって受信した前記サービス要求に対応する特定の符号とを対応付けて前記クライアント装置へ送信するサーバ側送信手段として機能させるためのプログラムである。
【発明の効果】
【００１８】
本発明によれば、クライアント装置とサーバ装置とを接続するネットワークにおける伝送遅延によって、クライアント装置への操作に対するレスポンスが遅れていることを、ユーザに的確に報知することができる。
【００１９】
また、本発明によれば、ユーザは、ネットワークにおける伝送遅延によって、クライアント装置への操作に対するレスポンスが遅れていることを的確に知ることが出来るので、ユーザの作業効率を向上させることができる。
【発明を実施するための最良の形態】
【００２０】
まず、本発明の実施の形態について概略を説明する。
本発明によるシンクライアントシステムは、アプリケーションプログラムを実行するサーバ装置と、ユーザ操作による入力情報をサーバ装置に送信しサーバ装置から画面情報を取得してこれを画面に表示するクライアント装置、およびサーバ装置とクライアント装置の間でデータをやり取りするためのネットワーク（通信網）で構成される。
【００２１】
サーバ装置およびクライアント装置はそれぞれ通信部を持ち、サーバ装置上のプログラムであるシンクライアントサーバとクライアント装置上のプログラムであるシンクライアントビューアとは、通信網を介してデータのやり取りをする。
【００２２】
シンクライアントサーバは、通信網を介してシンクライアントビューアから送られてくる入力イベントを受信し、実行中のアプリケーションプログラムへ入力イベントを渡すとともに、アプリケーションが動作することによって発生する画面の更新を検出し画面データを生成してこれをシンクライアントビューアに向けて送信する。
【００２３】
シンクライアントビューアは、ユーザがキーやマウス等の入力装置を操作することによる入力を受け取り、これを入力イベントとしてシンクライアントサーバに向けて送信するとともに、シンクライアントサーバから送られてくる画面データを受信してこれをディスプレイ画面等の出力装置に表示する。
【００２４】
すなわち、アプリケーションプログラムを実行するサーバ装置と、ユーザ操作による入力情報をサーバ装置に送信しサーバ装置から画面情報を取得してこれを画面に表示するクライアント装置とを有するシンクライアントシステムにおいて、クライアント装置は、検出した入力に番号を割り当て、入力情報にこの番号を付加してサーバ装置へ送信し、サーバ装置は、受信した入力情報に付加されていた番号を画面情報に付加してクライアント装置へ送信し、クライアント装置は、入力情報を送信後一定時間以内に、その時点における最新の入力に割り当てられた番号と等しい番号が付加された画面情報が受信できない場合に、ユーザに対して砂時計等、何らかのフィードバックを提示し、クライアント装置は、最新の入力に割り当てた番号と等しい番号が付加された画面情報を受信した時、上記何らかのフィードバックを提示中であればこれを終了する。
【００２５】
さらに、上記クライアント装置は、番号を付加した入力情報を送信した時刻から、送信した番号と等しい番号が付加された画面情報を受信した時刻までを複数回計測し、これらの平均値を通信網の遅延時間とする手段を備え、入力情報送信後、最新の入力に割り当てた番号と等しい番号が付加された画面情報が受信できていない状態において、ユーザにフィードバックの提示を開始するまでの時間を上記遅延時間によって変化させる。
【００２６】
また、上記シンクライアントシステムにおいて、クライアント装置が送信する入力情報に対して、アプリケーションプログラムによる画面の更新が発生しない場合には、サーバ装置は空の画面情報と共に受信した入力情報に付加されていた番号をクライアント装置に向けて送信する。
【００２７】
以下、本発明の実施の形態について図面を参照しながら具体的に説明する。
図２は、サーバ装置のハードウェア構成の概略を示す図である。
図２において、サーバ装置１０は、ＣＰＵ（中央処理装置：Central Processing Unit）２０２、各種のデータや信号等を入力するためのキー入力部２０３、画像やその他の情報を表示するための表示部２０４、サーバ装置１０において実行する処理を実行するプログラムの他、サーバ装置１０の各機能を制御し実行するための制御プログラムが収納されたＲＯＭ２０５やＲＡＭ２０６、表示部２０４に表示するための画像を一時的に格納するＶ−ＲＡＭ２０７、ＬＡＮ等のネットワークに接続するための通信Ｉ／Ｆ２０８、画像を始め様々な情報を記録するための外部記憶部２０９がバス２０１に接続されて構成され、ＣＰＵ２０２がこれらの各部を制御している。
【００２８】
このようなハードウェアを備えるサーバ装置１０は、ネットワークを介したクライアント装置２０（図３参照）からのサービス要求に基づいて、前記サービス要求に対応する画面情報を前記クライアント装置２０へ送信し、本発明を実現するための機能として、サーバ側受信部と画面情報生成部とサーバ側送信部とを有している。
【００２９】
サーバ側受信部は、前記サービス要求のための命令と一対一に対応付けられた命令符号とを前記クライアント装置２０から受信し、画面情報生成部は、前記サーバ側受信部によって受信した前記命令に基づいて、前記画面情報を生成する。
【００３０】
また、サーバ側送信部は、前記画面情報生成部によって生成された画面情報と前記サーバ側受信部によって受信した前記命令符号とを対応付けて前記クライアント装置２０へ送信する一方、前記画面情報生成部によって生成された画面情報が空白データであった場合、前記空白データであることを示す情報と前記サーバ側受信部によって受信した前記命令符号とを対応付けて前記クライアント装置２０へ送信する。
【００３１】
図３は、クライアント装置のハードウェア構成の概略を示す図である。
図３において、クライアント装置２０は、ＣＰＵ３０２、各種のデータや信号等を入力するためのキー入力部３０３、画像やその他の情報を表示するための表示部３０４、クライアント装置２０において実行する処理を実行するプログラムの他、クライアント装置２０の各機能を制御し実行するための制御プログラムが収納されたＲＯＭ３０５やＲＡＭ３０６、表示部３０４に表示するための画像を一時的に格納するＶ−ＲＡＭ３０７、無線ＬＡＮ等のネットワークに接続するための通信Ｉ／Ｆ３０８、携帯電話網等のネットワークに接続するための通信Ｉ／Ｆ３０９がバス３０１に接続されて構成され、ＣＰＵ３０２がこれらの各部を制御している。
【００３２】
次に、上述のように構成されたサーバベースコンピューティングシステムにおける実行されるサーバ装置１０およびクライアント装置２０の動作例を説明する。
クライアント装置２０上で動作するシンクライアントビューアは、サーバ装置１０に対して送信すべき入力が検出されるたびに値が更新される変数ＮｃをＲＡＭ３０６内に確保してその値を更新する。そして、入力イベントと共にその時点における変数Ｎｃの値もサーバ装置１０に送信する。なお、変数Ｎｃの値をインクリメントしてゆく例に限らず、サービス要求に対応して符号を生成するものであればよい。
【００３３】
また、サーバ装置１０上で動作するシンクライアントサーバもシンクライアントビューアと同様に変数ＮｓをＲＡＭ２０６内に確保してその値を更新する。そして、入力イベントと共に変数Ｎｃの値を受信するたびに変数Ｎｃの値を変数Ｎｓに代入する。次いで、受信した入力イベントを実行中のアプリケーションプログラムに渡し、その結果としての画面更新を検出してクライアント装置２０に送信すべき画面データを生成する。そして、その画面データをその時点における変数Ｎｓの値と共にクライアント装置２０に向けて送信する。
【００３４】
シンクライアントビューアがサーバ装置１０から送られたデータを受信した際には、受信データから変数Ｎｓの値を取り出し、その時点における変数Ｎｃの値との比較を行なう。こうすることで、シンクライアントビューアは受信した変数Ｎｓの値が変数Ｎｃと等しかった場合には、検出された最新の入力が少なくともシンクライアントサーバに到達していることを知ることができる。
【００３５】
シンクライアントビューアは、入力を検出しタイマがタイムアウトするまでの間に、変数Ｎｃの値と等しい値の変数Ｎｓをもつ画面データを受信できなかった場合には、何らかのフィードバックをクライアント装置２０によってユーザに対して提示し、変数Ｎｃの値と等しい値の変数Ｎｓをもつ画面データを受信した時点でフィードバックの提示を終了する。ここでフィードバックの提示とは、例えば画面上に砂時計のアイコンやプログレスバー等を表示することが考えられるが、本発明では特にその表示形態を制限するものではない。
【００３６】
図４は、第１の実施の形態におけるシンクライアントビューアの処理の流れを示すフローチャートである。
まず、ＣＰＵ３０２はステップＳ４０１において、キーやマウス等の入力があったか否かを判断する。入力があった場合（ステップＳ４０１：Ｙ）は、ステップＳ４０２において、変数Ｎｃの値を１インクリメントし、ステップＳ４０３において、ステップＳ４０１で入力されたイベントを変数Ｎｃの値とともにサーバ装置１０が有するシンクライアントサーバへ送信する。このとき、入力されたイベントはイベントのコードのままサーバ装置１０へ送信してもよいし、イベントの種類により、それぞれサーバ装置１０に対するサービス要求のための命令に置換えてもよい。そして、変数の値はサービス要求のための命令に対応していれば数値でなくともサービス要求に対応した特定の符号でもよい。
【００３７】
そして、ステップＳ４０４において、タイマが動作中であるか否かを検出し、動作中であれば（ステップＳ４０４：Ｙ）、ステップＳ４０５において、タイマを初期化した後、ステップＳ４０６において、タイマのカウントを開始し、他方、動作中でなければ（ステップＳ４０４：Ｎ）、ステップＳ４０６において、タイマのカウントを開始してステップＳ４０１へ戻る。
【００３８】
また、ステップＳ４０１でキーやマウス等の入力がなかったと判断された場合（ステップＳ４０１：Ｎ）は、ステップＳ４０７において、シンクライアントサーバからデータを受信したか否かを判断し、受信したと判断された場合（ステップＳ４０７：Ｙ）は、ステップＳ４０８において、受信したデータから変数Ｎｓと画面データとを取り出す。そして、ステップＳ４０９において、変数Ｎｃの値と変数Ｎｓの値とが等しいか否かを判断する。このとき、変数がサービス要求に対応した特定の符号の場合は、送信したサービス要求に対応した特定の符号と受信したサービス要求に対応した特定の符号とが一致するか否かを判断する。
【００３９】
変数Ｎｃの値と変数Ｎｓの値とが等しいと判断された場合（ステップＳ４０９：Ｙ）は、ステップＳ４１０において、フィードバック提示がなされているか否かを判断し、フィードバック提示中であれば（ステップＳ４１０：Ｙ）、ステップＳ４１１において、フィードバック提示を解除した後、ステップ４１４において、ステップＳ４０７で受信した画面データを表示してステップＳ４０１に戻る。
【００４０】
他方、フィードバック提示中でなければ（ステップＳ４１０：Ｎ）、ステップＳ４１２において、タイマが動作中であるか否かを判断し、動作中であると判断された場合（ステップＳ４１２：Ｙ）は、ステップＳ４１３において、タイマを初期化して、ステップ４１４において、ステップＳ４０７で受信した画面データを表示してステップＳ４０１に戻る。
【００４１】
また、ステップＳ４０９で変数Ｎｃの値と変数Ｎｓの値とが等しくないと判断された場合（ステップＳ４０９：Ｎ）も、ステップ４１４において、ステップＳ４０７で受信した画面データを表示してステップＳ４０１に戻る。
【００４２】
ステップＳ４０７でシンクライアントサーバからデータを受信していないと判断された場合（ステップＳ４０７：Ｎ）は、ステップＳ４１５において、タイマが動作中であるか否かを判断し、動作中でないと判断された場合（ステップＳ４１５：Ｎ）は、ステップＳ４０１に戻り、動作中であると判断された場合（ステップＳ４１５：Ｙ）は、さらに、ステップＳ４１６において、所定の時間が経過したことによりタイムアウトしたか否かを判断する。タイムアウトしていないと判断された場合（ステップＳ４１６：Ｎ）は、ステップＳ４０１に戻り、他方、タイムアウトしたと判断された場合（ステップＳ４１６：Ｙ）は、ステップＳ４１７において、タイマを初期化して、ステップ４１８において、砂時計のアイコン等を表示する等のフィードバック提示を行なってステップＳ４０１に戻る。なお、フィードバック提示は、サービス要求のための命令に基づいてサーバ装置１０で生成された画面情報がクライアント側受信手段によって受信されていないことを示すものであれば、特定の文字列や図形を表示するようにしてもよいし、特定の文字列や図形をブリンクさせたり反転させたりするようにしてもよい。
【００４３】
図５は、第１の実施の形態におけるフィードバック提示の例を示す図である。
図５において、（Ａ）は通常時のマウスポインタのアイコンの例であり、（Ｂ）はフィードバック提示中のマウスポインタのアイコンの例である。
【００４４】
図６は、第１の実施の形態におけるシンクライアントサーバの処理の流れを示すフローチャートである。
まず、ＣＰＵ２０２はステップＳ６０１において、シンクライアントビューアからデータを受信したか否かを判断する。シンクライアントビューアからデータを受信したと判断された場合（ステップＳ６０１：Ｙ）は、ステップＳ６０２において、受信したデータから変数Ｎｃに代入されている値と入力イベントとを取り出し、ステップＳ６０３において、変数Ｎｃの値を変数Ｎｓに代入する。
【００４５】
次に、ステップＳ６０４において、サーバ装置１０で実行されるアプリケーションプログラムに入力イベントを渡し、ステップＳ６０５に進む。他方、シンクライアントビューアからデータを受信していないと判断された場合（ステップＳ６０１：Ｎ）、例えば、動画像が表示されているような場合も、データは受信していないが画面の更新があり得るので、ステップＳ６０５に進む。
【００４６】
そして、ステップＳ６０５において、アプリケーションプログラムの実行による画面の更新があるか否かを判断し、画面の更新があると判断された場合（ステップＳ６０５：Ｙ）は、ステップＳ６０６において、画面データを生成する。この結果、サービス要求があった場合にサービス要求のための命令に基づいて画面情報が生成されることになる。その後、ステップＳ６０７において、ステップＳ６０６で生成した画面データをステップＳ６０３で変数Ｎｃの値を代入した変数Ｎｓとともにシンクライアントビューアへ送信してステップＳ６０１に戻る。他方、画面の更新がないと判断された場合（ステップＳ６０５：Ｎ）は、そのままステップＳ６０１に戻る。
【００４７】
次に、上述の処理フローによるシンクライアントビューアとシンクライアントサーバ間の動作シーケンスの例を説明する。
図７は、第１の実施の形態のおけるシンクライアントビューアとシンクライアントサーバとの間の動作シーケンスを示す図である。
【００４８】
図７において、シンクライアントビューアは、保持している変数の値が変数Ｎｃ＝ｎ−１であったときにユーザ操作による入力１を検出すると、変数の値を１増加させて変数Ｎｃ＝ｎとする。そして、検出した入力１の入力イベントを変数Ｎｃ＝ｎと共にシンクライアントサーバに向けて送信すると共にタイマを開始し、シンクライアントサーバからのデータ受信またはユーザ操作による次の入力を待つ。
【００４９】
また、シンクライアントビューアは、変数Ｎｃ＝ｎの入力イベントを送信してから所定時間Ｔｆ秒以内にシンクライアントサーバから変数Ｎｓ＝ｎの画像データを受信しなかったので、ユーザに向けてフィードバックの提示を開始する。
【００５０】
シンクライアントサーバは、変数Ｎｃ＝ｎの入力イベントを受信すると保持している変数の値を変数Ｎｓ＝ｎに更新して受信した入力イベントをアプリケーションプログラムに渡し、その結果として発生する画面の更新を検出してシンクライアントビューアに送信すべき画面データを生成する。そして、生成した画面データを変数Ｎｓ＝ｎと共にシンクライアントビューアに向けて送信し、シンクライアントビューアからのデータ受信およびアプリケーションプログラムによる次の画面更新を待つ。
【００５１】
次に、シンクライアントビューアは、入力２を検出すると変数の値を１増加させて変数Ｎｃ＝ｎ＋１にし、変数Ｎｃ＝ｎ＋１と共に入力イベントをシンクライアントサーバに向けて送信する。その後変数Ｎｓ＝ｎの画面データを受信するが、その時の変数の値は変数Ｎｃ＝ｎ＋１であるのでフィードバックの提示はそのまま継続し、受信した画面データによる表示画面の更新処理を行なう。
【００５２】
また、シンクライアントサーバは、Ｎｃ＝ｎ＋１の入力イベントを受信すると、上述の変数Ｎｃ＝ｎの入力イベント受信時と同様に、保持している変数の値を変数Ｎｓ＝ｎ＋１に更新して受信した入力イベントをアプリケーションプログラムに渡し、その結果として発生する画面の更新を検出してシンクライアントビューアに送信すべき画面データを生成する。そして、生成した画面データを変数Ｎｓ＝ｎ＋１と共にシンクライアントビューアに向けて送信し、次のデータ受信および画面更新を待つ。
【００５３】
すると、シンクライアントビューアは、変数Ｎｓ＝ｎ＋１の画面データを受信すると表示画面の更新処理を行ない、そして、その時点の変数の値は変数Ｎｃ＝ｎ＋１であり、変数Ｎｓと変数Ｎｃの値が等しいのでフィードバックの提示を終了する。
【００５４】
すなわち、クライアント装置２０は、ユーザ操作による入力を検出するたびに値が＋１される変数Ｎｃを持ち、入力イベントと共に変数Ｎｃの値もサーバ装置１０へ送信する。
サーバ装置１０は、変数Ｎｃを受信するたびにその値がセットされる変数Ｎｓを持ち、画面データと共に変数Ｎｓの値もクライアント装置２０へ送信される。
【００５５】
そして、クライアント装置２０は、画面データと共に受信した変数Ｎｓの値がその時点の変数Ｎｃの値と等しいか否かにより、最新の入力イベントがサーバ装置１０に到着したかどうかを知ることができるので、最新の入力イベントがサーバ装置１０に到達済であることを確認できるまでフィードバックの提示を行なう。
【００５６】
これによって、操作に対するレスポンスが遅延していることを、クライアント装置２０を操作するユーザに対して的確に知らせることができるようになる。従って、ユーザの作業効率が向上する。
【００５７】
また、クライアント装置２０が入力イベントを送信して直ぐにフィードバックの提示を行なうのではなく、一定時間以内に最新の入力イベントがサーバ装置１０に到達済であることを確認できなかった場合にのみフィードバックを提示することもできる。
【００５８】
これによって、通信網の遅延が大きくない場合にもちらちらとフィードバックの提示が行われるようなことが無くなり、ユーザは快適に操作できる。
上述の第１の実施の形態では、クライアント装置２０が入力イベントを送信後、一定の時間Ｔｆ以内に最新の入力イベントがサーバ装置１０に到達済であることを確認できなかった場合にフィードバックを提示するようにしたが、このＴｆを通信網の状況に応じて可変としても良い。
【００５９】
具体的には、クライアント装置２０が入力イベントを送信した時刻から、送信した時点のＮｃの値と等しいＮｓの値をもつ画面データを受信した時刻までを複数計測し、これらの平均値をおおよそのＲＴＴ（Ｒｏｕｎｄ  Ｔｒｉｐ  Ｔｉｍｅ）とする。そして、算出したＲＴＴに応じてＴｆの値を変化させる。
【００６０】
こうすることにより、例えば、平均的な遅延時にはフィードバックの提示を行なわず、エラー等で突発的に遅延量が増加したときにのみフィードバックを提示するようなことが実現できる。
【００６１】
次に、本発明を適用した第２の実施の形態について説明する。
第１の実施の形態と第２の実施の形態との違いは、第２の実施の形態では、シンクライアントビューアがシンクライアントサーバに向けて送信した入力イベントに対して、アプリケーションプログラムによる画面の更新が行われなかった場合に、空の画面データとＮｓをシンクライアントサーバがシンクライアントビューアに向けて送信するようにしたことである。
【００６２】
例えば、サーバ装置１０で動作しているアプリケーションプログラムがウィンドウ形式の画面表示をしている場合に、ユーザがクライアント装置２０に対して、カーソルキーを操作することによりウィンドウのスクロールを行った時を想定する。
【００６３】
このような場合において、例えばウィンドウの最下端が表示されている時にユーザが更に下カーソルキーを押下しても、アプリケーションプログラムはそれ以上のスクロールを行なうことができない。従ってこの場合は、アプリケーションプログラムが入力イベントを受け取っても画面の更新が発生しない。
【００６４】
上述したように、第１の実施の形態では、提示されたフィードバックを解除するきっかけとなるのは、シンクライアントビューアが画面データを受信することであった。しかしながら、上記の想定の例ではシンクライアントビューアが送信した入力イベントに対して、アプリケーションプログラムで画面の更新が発生しないので、シンクライアントサーバが送信すべき画面データが存在せず、シンクライアントビューアはフィードバックの提示を解除するきっかけを失うこととなる。このような場合には、ユーザが新たに別の入力操作を行ってアプリケーションプログラムによる画面の更新が発生し、シンクライアントビューアが画面データを受信するまでフィードバックが提示され続けることとなってしまう。
【００６５】
本第２の実施の形態はこのような状況にも対応できるようにするものである。
図８は、第２の実施の形態におけるシンクライアントビューアの処理の流れを示すフローチャートであり、図９は、第２の実施の形態におけるシンクライアントサーバの処理の流れを示すフローチャートである。
【００６６】
図８に示す通り、シンクライアントビューアは、中身が空の画面データを受信することがあることを考慮し、空であった場合には受信した変数Ｎｓの処理のみ行ない、画面データ表示の処理はスキップするようになっている（ステップＳ８０１参照）。
【００６７】
また、図９に示す通り、シンクライアントサーバは、シンクライアントビューアから受信した入力イベントを渡したアプリケーションプログラムにおいて画面の更新が発生しなかった場合には、空の画面データを変数Ｎｓの値と共にシンクライアントビューアに向けて送信するようにしている（ステップＳ９０１参照）。
【００６８】
以上説明したように、入力イベントに対して画面の更新が発生しない場合でも、シンクライアントビューアはシンクライアントサーバからの何らかのレスポンスを取得することができるため、上述したようなフィードバックの提示を解除するきっかけを失うようなことがなくなる。
【００６９】
次に、本発明を適用した第３の実施の形態について説明する。
第１の実施の形態と第３の実施の形態との違いは、第３の実施の形態では、フィードバックの提示として砂時計のアイコンを出力する代わりに、バーグラフのアイコンを出力するものである。
【００７０】
図１０は、第３の実施の形態におけるフィードバック提示の例を示す図である。
図１０の（Ａ）に示したように、クライアント装置２０の画面の隅にバーグラフを表示し、サーバ装置１０からの画面データの遅延のおおよその度合いをバーの長さで提示する。バーの長さは、ユーザがクライアント装置２０で入力操作を行ったが未だサーバ装置１０から対応する画面データが返っていない入力イベント（ペンディング中の入力イベント）の数を示している。例えば、図１０（Ｂ）は、ペンディング中の入力イベントが多い（５〜６個）時のバーグラフであり、図１０（Ｃ）は、ペンディング中の入力イベントが少ない（１〜２個）時のバーグラフであり、図１０（Ｄ）は、ペンディング中の入力イベントがない（０個）時のバーグラフである。
【００７１】
このような第３の実施の形態では、例えばユーザが文字入力を行っている場合に、あるキーを入力してそのレスポンスとしての画面データがサーバ装置１０から返ってくる以前に次々にキー入力を行なうような状況で、クライアント装置２０の画面上に反映されていない入力操作（ペンディング中の入力イベント）がいくつあるのかをユーザが知ることができる。
【００７２】
なお、図１０に示した例では、バーの長さが長いほどペンディング中の入力イベント数が多いことを示しているが、サーバ装置１０で動作しているアプリケーションによっては、バーグラフを表示している領域に、ユーザが操作すべきボタン等が重なる場合もありえるため、バーグラフの表示は透過色でオーバレイ表示し、ユーザ操作の妨げにならないようにすることもできる。
【００７３】
図１１は、第３の実施の形態におけるシンクライアントサーバの処理の流れを示すフローチャートである。
まず、ステップＳ４０１において、キーやマウス等の入力があったか否かを判断する。入力があった場合（ステップＳ４０１：Ｙ）は、ステップＳ４０２において、変数Ｎｃの値を１インクリメントし、ステップＳ４０３において、ステップＳ４０１で入力されたイベントをＮｃの値とともにサーバ装置１０が有するシンクライアントサーバへ送信する。そして、ステップＳ１１０１において、バーグラフの長さを１加算して、ステップＳ４０１へ戻る。
【００７４】
他方、ステップＳ４０１でキーやマウス等の入力がなかったと判断された場合（ステップＳ４０１：Ｎ）は、ステップＳ４０７において、シンクライアントサーバからデータを受信したか否かを判断し、受信したと判断された場合（ステップＳ４０７：Ｙ）は、ステップＳ４０８において、受信したデータから変数Ｎｓと画面データとを取り出す。そして、ステップＳ１１０２において、バーグラフの長さを変数Ｎｃの値から変数Ｎｓの値を減算した値とする。
【００７５】
そして、ステップＳ８０１において、画面データが空であるか否かを判断し、空であると判断された場合（ステップＳ８０１：Ｙ）は、ステップＳ４０１に戻り、空でないと判断された場合（ステップＳ８０１：Ｎ）は、ステップ４１４において、ステップＳ４０７で受信した画面データを表示してステップＳ４０１に戻る。
【００７６】
なお、第３の実施の形態が第１の実施の形態と比較してタイマに関する処理がないのは、図１０の（Ｄ）バーグラフに示したように、ペンディング中の入力イベントがない（０個）状態であってもバーグラフが出力されているからである。
【００７７】
また、第３の実施の形態におけるシンクライアントサーバ側の処理は、上述の第２実施の形態と同様である。
以上、本発明の実施の形態を、図面を参照しながら説明してきたが、上述してきた本発明の実施の形態は、サーバ装置またはクライアント装置の一機能としてハードウェアまたはＤＳＰ（Ｄｉｇｉｔａｌ  Ｓｉｇｎａｌ  Ｐｒｏｃｅｓｓｏｒ）ボードやＣＰＵボードでのファームウェアもしくはソフトウェアにより実現することができる。
【００７８】
また、本発明が適用されるサーバ装置およびクライアント装置は、その機能が実行されるのであれば、上述の実施の形態に限定されることなく、単体の装置であっても、複数の装置からなるシステムあるいは統合装置であっても、ＬＡＮ、ＷＡＮ等のネットワークを介して処理が行なわれるシステムであってもよいことは言うまでもない。
【００７９】
また、バスに接続されたＣＰＵ、ＲＯＭやＲＡＭのメモリ、入力装置、出力装置、外部記録装置、媒体駆動装置、ネットワーク接続装置で構成されるシステムでも実現できる。すなわち、前述してきた実施の形態のシステムを実現するソフトェアのプログラムを記録したＲＯＭやＲＡＭのメモリ、外部記録装置、可搬記録媒体を、サーバ装置およびクライアント装置に供給し、それらのサーバ装置およびクライアント装置のコンピュータがプログラムを読み出し実行することによっても、達成されることは言うまでもない。
【００８０】
この場合、可搬記録媒体等から読み出されたプログラム自体が本発明の新規な機能を実現することになり、そのプログラムを記録した可搬記録媒体等は本発明を構成することになる。
【００８１】
プログラムを供給するための可搬記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、磁気テープ、不揮発性のメモリーカード、ＲＯＭカード、電子メールやパソコン通信等のネットワーク接続装置（言い換えれば、通信回線）を介して記録した種々の記録媒体などを用いることができる。
【００８２】
また、コンピュータ（情報処理装置）がメモリ上に読み出したプログラムを実行することによって、前述した実施の形態の機能が実現される他、そのプログラムの指示に基づき、コンピュータ上で稼動しているＯＳなどが実際の処理の一部または全部を行ない、その処理によっても前述した実施の形態の機能が実現される。
【００８３】
さらに、可搬型記録媒体から読み出されたプログラムやプログラム（データ）提供者から提供されたプログラム（データ）が、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行ない、その処理によっても前述した実施の形態の機能が実現され得る。
【００８４】
すなわち、本発明は、以上に述べた実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲内で種々の構成または形状を取ることができる。
【図面の簡単な説明】
【００８５】
【図１】シンクライアントシステムの概要を説明するための図である。
【図２】サーバ装置のハードウェア構成の概略を示す図である。
【図３】クライアント装置のハードウェア構成の概略を示す図である。
【図４】第１の実施の形態におけるシンクライアントビューアの処理の流れを示すフローチャートである。
【図５】第１の実施の形態におけるフィードバック提示の例を示す図である。
【図６】第１の実施の形態におけるシンクライアントサーバの処理の流れを示すフローチャートである。
【図７】第１の実施の形態のおけるシンクライアントビューアとシンクライアントサーバとの間の動作シーケンスを示す図である。
【図８】第２の実施の形態におけるシンクライアントビューアの処理の流れを示すフローチャートである。
【図９】第２の実施の形態におけるシンクライアントサーバの処理の流れを示すフローチャートである。
【図１０】第３の実施の形態におけるフィードバック提示の例を示す図である。
【図１１】第３の実施の形態におけるシンクライアントサーバの処理の流れを示すフローチャートである。
【符号の説明】
【００８６】
１        クライアント装置
２        サーバ装置
３        ネットワーク
１０      サーバ装置
２０      クライアント装置
２０１    バス
２０２    ＣＰＵ
２０３    キー入力部
２０４    表示部
２０５    ＲＯＭ
２０６    ＲＡＭ
２０７    Ｖ−ＲＡＭ
２０８    通信Ｉ／Ｆ（ＬＡＮ用）
２０９    外部記憶部
３０１    バス
３０２    ＣＰＵ
３０３    キー入力部
３０４    表示部
３０５    ＲＯＭ
３０６    ＲＡＭ
３０７    Ｖ−ＲＡＭ
３０８    通信Ｉ／Ｆ（無線ＬＡＮ用）
３０９    通信Ｉ／Ｆ（携帯電話網用）
【図２】
2008033407.tif 000003
【図３】
2008033407.tif 000004
【図４】
2008033407.tif 000005
【図６】
2008033407.tif 000006
【図７】
2008033407.tif 000007
【図８】
2008033407.tif 000008
【図９】
2008033407.tif 000009
【図１１】
2008033407.tif 000010
【図１】
2008033407.tif 000011
【図５】
2008033407.tif 000012
【図１０】
2008033407.tif 000013