(57)【要約】【課題】クライアント装置とサーバ装置とを接続するネットワークにおいて伝送遅延が発生するような環境下においても、マウスクリック等のクライアント装置の入力操作データを正確にサーバ装置に送信することが可能なサーバベースコンピューティングシステムを提供すること。【解決手段】ネットワークを介してサーバ装置に対してサービス要求を行ない、サービス要求に対応する画面情報をサーバ装置から取得して表示するクライアント装置であって、マウスデバイス等のイベントを入力するための手段と、これによって入力された入力イベントを検出する手段と、検出された連続する２つの入力イベントが予め定められた時間内に検出された場合に、これら２つの入力イベントに基づいて１つの通信パケットを生成する手段と、生成された通信パケットをサーバ装置へ送信する手段とを備える。【選択図】図６
2008083800.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介してサーバ装置に対してサービス要求を行ない、前記サービス要求に対応する画面情報を前記サーバ装置から取得して表示するクライアント装置であって、
イベントを入力するための入力手段と、
前記入力手段によって入力された入力イベントを検出する入力イベント検出手段と、
前記入力イベント検出手段によって検出された連続する２つの入力イベントが、予め定められた時間内に検出された場合に、これら２つの入力イベントに基づいて１つの通信パケットを生成する通信パケット生成手段と、
前記通信パケット生成手段によって生成された通信パケットを前記サーバ装置へ送信するパケット送信手段と、
を備えることを特徴とするクライアント装置。
【請求項２】
前記連続する２つの入力イベントは、その発生時間間隔の長短が特定の意味を持つ入力イベントの組み合わせであることを特徴とする請求項１に記載のクライアント装置。
【請求項３】
前記連続する２つの入力イベントは、前記入力デバイスのボタンを押すことにより発生するボタンプレスイベントと前記押されているボタンを離すことにより発生するボタンリリースイベントであることを特徴とする請求項１に記載のクライアント装置。
【請求項４】
前記予め定められた時間は、前記連続する２つの入力イベントのうち第１の入力イベントが発生した時刻から第２の入力イベントが発生した時刻までの時間の平均値に基づいて定めることを特徴とする請求項１乃至３の何れか１項に記載のクライアント装置。
【請求項５】
ネットワークを介したクライアント装置からのサービス要求に基づいて、前記サービス要求に対応する画面情報を前記クライアント装置へ送信するサーバ装置であって、
前記サーバ装置から送信された通信パケットを受信するパケット受信手段と、
前記パケット受信手段によって受信した通信パケットが連続する２つの入力イベントに基づく通信パケットであるか否かを判断する判断手段と、
前記判断手段によって前記通信パケットが連続する２つの入力イベントに基づく通信パケットであると判断された場合は、前記通信パケットを予め定められた時間内に連続する２つの入力イベントとして実行するイベント実行手段と、
を備えることを特徴とするサーバ装置。
【請求項６】
請求項１乃至４の何れか１項に記載のクライアント装置と請求項５に記載のサーバ装置とを備えるサーバベースコンピューティングシステム。
【請求項７】
ネットワークを介してサーバ装置に対してサービス要求を行ない、前記サービス要求に対応する画面情報を前記サーバ装置から取得して表示するクライアント装置のコンピュータを、
入力手段によって入力された入力イベントを検出する入力イベント検出手段、
前記入力イベント検出手段によって検出された連続する２つの入力イベントが、予め定められた時間内に検出された場合に、これら２つの入力イベントに基づいて１つの通信パケットを生成する通信パケット生成手段、
前記通信パケット生成手段によって生成された通信パケットを前記サーバ装置へ送信するパケット送信手段、
として機能させるためのプログラム。
【請求項８】
ネットワークを介したクライアント装置からのサービス要求に基づいて、前記サービス要求に対応する画面情報を前記クライアント装置へ送信するサーバ装置のコンピュータを、
前記サーバ装置から送信された通信パケットを受信するパケット受信手段、
前記パケット受信手段によって受信した通信パケットが連続する２つの入力イベントに基づく通信パケットであるか否かを判断する判断手段、
前記判断手段によって前記通信パケットが連続する２つの入力イベントに基づく通信パケットであると判断された場合は、前記通信パケットを予め定められた時間内に連続する２つの入力イベントとして実行するイベント実行手段、
として機能させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、アプリケーションプログラムを動作させるサーバ装置に対してサービス要求を行なうクライアント装置とクライアント装置からのサービス要求に基づいてアプリケーションプログラムを動作させるサーバ装置とがネットワークを介して相互に接続可能に構成されたサーバベースコンピューティングシステムに関する。
【背景技術】
【０００２】
近年、企業によるサーバベースコンピューティングの採用が急速に進んでいる。
サーバベースコンピューティング（シンクライアントシステム）とは、クライアント装置とサーバ装置とがネットワークを介して相互に接続可能に構成されたシステムにおいて、クライアント装置がサーバ装置に対してサービス要求を行なうと、サーバ装置がクライアント装置からのサービス要求に基づいて、データの管理およびアプリケーションプログラムを動作させるというものである（例えば、特許文献１参照。）。
【０００３】
図１は、シンクライアントシステムの概要を説明するための図である。
図１に示す通り、ユーザはクライアント装置（シンクライアント端末あるいはシンクライアント装置と呼ばれることもある）１を操作することで、サーバ装置２で実行されるアプリケーションが提供するサービスを利用することができる。クライアント装置１では、キーボードやマウス等を操作することによる入力情報をネットワーク（通信網）３を介してサーバ装置２に送信し、サーバ装置２からネットワーク３を介して受信した画面データを表示する。
【０００４】
サーバ装置２はクライアント装置１で表示するための表示データを作成し、ネットワーク３を介してクライアント装置１に送る。クライアント装置１では、ユーザのキーやマウス等の操作情報を、ネットワーク３を介してサーバ装置２へ送り、前記サーバ装置２で作成されたクライアント装置１で表示するための表示データを受け取って表示する。クライアント装置１は、ネットワーク機器、表示装置、マウスやキーボード等の入力装置を備えているだけでよく、データをクライアント装置１で持たないためハードディスク等のストレージが不要であり、また、アプリケーションプログラムの実行を行なわないためクライアント装置１に必要となる処理の負荷が軽いというメリットがある。
【０００５】
企業はサーバベースコンピューティングを導入することにより、データやアプリケーションプログラム等の資源がサーバ装置で一元管理できるため、運用コストや管理コストを削減することができるというメリットがある。また、クライアント装置１は複雑で高価なパソコンを使用せず、表示や入力などの最低限の機能のみを持った低価格の端末を使用し、従来のパソコンに比べて安価に調達することができるというメリットがある。セキュリティ面においても、データをクライアント装置で保持しないという性質から、情報漏洩対策にも有効である。また、サーバ装置２が有するデータへのアクセス制限をかけたり、アクセスログを取ったりすることにより、情報への不正アクセスのリスクを減らすことが出来る。ウイルスに対しても、サーバ装置２で一括対処することが可能となる。
【０００６】
上述のように、サーバベースコンピューティングシステムにおいて、サーバ装置２でアプリケーションプログラム等の実行を行ない、クライアント装置１では画面表示、マウス、キー等による入出力のみを行なう技術では、一般的にはクライアント装置１では常にマウスやキーの入力をサーバ装置２に送信し続け、例えば、日本語入力が可能なアプリケーションプログラム等で仮名漢字変換を行なう場合にもユーザが入力したキー情報をサーバ装置２へ常に送信し、サーバ装置２側で仮名漢字変換処理を行っている。
【０００７】
このような技術を伝送遅延が大きい移動体通信網等のネットワーク３で利用した場合、非常に作業効率が悪くなることが予想され、この問題を解決するために、クライアント装置１側にサーバ装置２側のＧＵＩを擬似的に実現する環境（ＧＵＩエミュレータ）を用意し、仮名漢字変換もクライアント装置１側で実行し、確定した情報（変換後の漢字）を送信することで伝送遅延の問題を減少させている技術が開示されている（例えば、特許文献２参照。）。
【特許文献１】特開２００４−３４９９６５号公報
【特許文献２】特開２００３−３２３４０２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００８】
上述のような技術においては、サーバ装置２でアプリケーションプログラムが実行されるので、ユーザがシンクライアント装置１で行った入力操作は、入力情報として通信網３を介してサーバ装置２に伝送される。このため、サーバ装置２が入力情報を受信するのは、ユーザが操作を行った瞬間から通信網３の遅延時間以上の時間が経過した後ということになる。この通信網３の遅延時間は、移動体通信網等においては特に無線区間の伝送エラー発生時の再送処理や端末（クライアント装置１）の移動時のゾーン切替時等、突発的に伝送遅延時間が大きくなることがある。
【０００９】
このように通信網３の伝送遅延時間が変動すると、ユーザがクライアント装置１を操作することで発生した入力情報のサーバ装置２への到着が時間軸方向で変動することとなり、これが原因でサーバ装置２はユーザの意図と異なる動作をしてしまうという問題点があった。
【００１０】
図２は、従来の入力情報の送信例を説明するための図であり、図３は、従来の問題点を説明するための図である。
図２に示した例では、ユーザがクライアント装置１に備えられたマウスのボタンをクリック操作した際に実行される入力情報の送信例が示されており、図３では、その際に発生する問題の例が示されている。
【００１１】
まず、ユーザがクライアント装置１のマウスのボタンを押した時、図２（ａ）に示したように、クライアント装置１は入力情報としてボタンプレスイベントを第１の通信パケットとしてサーバ装置２に向けて送信する。次いでユーザがクライアント装置１のマウスのボタンを離した時、図２（ｂ）に示したように、クライアント装置１はボタンリリースイベントをサーバ装置２に向けて送信する。
【００１２】
すなわち、ボタンのクリック操作はユーザがボタンを押した際のボタンプレスイベントと、ボタンを離した際のボタンリリースイベントの２つの入力イベントで構成され、それぞれが通信上の別々のパケット（例えばＴＣＰ（Transmission Control Protocol）パケット）で伝送される。
【００１３】
このように、クリック操作がボタンプレスイベントとボタンリリースイベントで別々に送信されると、図３に示したように、ボタンプレスイベントの伝送遅延に比べてボタンリリースイベントの伝送遅延が大きく増加する場合あり、このような場合には、ユーザはマウスのボタンをほんの短い時間押して離した（クリック操作）にも関わらず、サーバ装置２ではボタンが長時間押されていたように見えてしまうことがある。
【００１４】
このような状況下では、例えばスクロールバーの上下スクロールボタンをユーザがクリック操作した場合、ユーザはほんの少しのスクロールを行ないたかったにも関わらず、サーバ装置２はスクロールボタンが押し続けられたものと認識し、スクロールを連続して行った結果の画面が出力されることとなってしまう。
【００１５】
そこで、本発明は、上記問題点に鑑みてなされたものであり、クライアント装置とサーバ装置とを接続するネットワークにおいて伝送遅延が発生するような環境下においても、マウスクリック等のクライアント装置の入力操作データを正確にサーバ装置に送信することが可能なサーバベースコンピューティングシステムを提供することを目的とする。
【課題を解決するための手段】
【００１６】
本発明は、上記課題を解決するため、下記のような構成を採用した。
すなわち、本発明の一態様によれば、本発明のクライアント装置は、ネットワークを介してサーバ装置に対してサービス要求を行ない、前記サービス要求に対応する画面情報を前記サーバ装置から取得して表示するクライアント装置であって、マウスデバイス等のイベントを入力するための入力手段と、前記入力手段によって入力された入力イベントを検出する入力イベント検出手段と、前記入力イベント検出手段によって検出された連続する２つの入力イベントが、予め定められた時間内に検出された場合に、これら２つの入力イベントに基づいて１つの通信パケットを生成する通信パケット生成手段と、前記通信パケット生成手段によって生成された通信パケットを前記サーバ装置へ送信するパケット送信手段とを備えることを特徴とする。
【００１７】
また、本発明のクライアント装置は、前記連続する２つの入力イベントが、その発生時間間隔の長短が特定の意味を持つ入力イベントの組み合わせであることが望ましい。例えば、前記連続する２つの入力イベントは、前記入力デバイスのボタンを押すことにより発生するボタンプレスイベントと前記押されているボタンを離すことにより発生するボタンリリースイベントであることが望ましい。
【００１８】
また、本発明のクライアント装置は、前記予め定められた時間が、前記連続する２つの入力イベントのうち第１の入力イベントが発生した時刻から第２の入力イベントが発生した時刻までの時間の平均値に基づいて定めることが望ましい。
【００１９】
また、本発明の一態様によれば、本発明のサーバ装置は、ネットワークを介したクライアント装置からのサービス要求に基づいて、前記サービス要求に対応する画面情報を前記クライアント装置へ送信するサーバ装置であって、前記サーバ装置から送信された通信パケットを受信するパケット受信手段と、前記パケット受信手段によって受信した通信パケットが連続する２つの入力イベントに基づく通信パケットであるか否かを判断する判断手段と、前記判断手段によって前記通信パケットが連続する２つの入力イベントに基づく通信パケットであると判断された場合は、前記通信パケットを予め定められた時間内に連続する２つの入力イベントとして実行するイベント実行手段とを備えることを特徴とする。
【００２０】
また、本発明の一態様によれば、本発明のサーバベースコンピューティングシステムは、上述の何れかのクライアント装置と上述のサーバ装置とを備えるサーバベースコンピューティングシステムである。
【００２１】
また、本発明の一態様によれば、本発明のプログラムは、ネットワークを介してサーバ装置に対してサービス要求を行ない、前記サービス要求に対応する画面情報を前記サーバ装置から取得して表示するクライアント装置のコンピュータを、マウスデバイス等の入力手段によって入力された入力イベントを検出する入力イベント検出手段、前記入力イベント検出手段によって検出された連続する２つの入力イベントが、予め定められた時間内に検出された場合に、これら２つの入力イベントに基づいて１つの通信パケットを生成する通信パケット生成手段、前記通信パケット生成手段によって生成された通信パケットを前記サーバ装置へ送信するパケット送信手段、として機能させるためのプログラムである。
【００２２】
また、本発明の一態様によれば、本発明のプログラムは、ネットワークを介したクライアント装置からのサービス要求に基づいて、前記サービス要求に対応する画面情報を前記クライアント装置へ送信するサーバ装置のコンピュータを、前記サーバ装置から送信された通信パケットを受信するパケット受信手段、前記パケット受信手段によって受信した通信パケットが連続する２つの入力イベントに基づく通信パケットであるか否かを判断する判断手段、前記判断手段によって前記通信パケットが連続する２つの入力イベントに基づく通信パケットであると判断された場合は、前記通信パケットを予め定められた時間内に連続する２つの入力イベントとして実行するイベント実行手段、として機能させるためのプログラムである。
【発明の効果】
【００２３】
本発明によれば、クライアント装置とサーバ装置とを接続するネットワークにおいて伝送遅延が発生するような環境下においても、マウスクリック等のクライアント装置の入力操作データを正確にサーバ装置に送信することが可能なサーバベースコンピューティングシステムを提供することができる。
【発明を実施するための最良の形態】
【００２４】
まず、本発明の実施の形態について概略を説明する。
本発明によるシンクライアントシステムは、各種のアプリケーションプログラムを実行するサーバ装置と、ユーザ操作により生じる入力情報をサーバ装置に送信しサーバ装置から画面情報を取得してこれを画面に表示するクライアント装置、およびサーバ装置とクライアント装置の間でデータをやり取りするためのネットワーク（通信網）で構成される。
【００２５】
サーバ装置およびクライアント装置はそれぞれ通信部を持ち、サーバ装置上のプログラムであるシンクライアントサーバとクライアント装置上のプログラムであるシンクライアントビューアとは、通信網を介してデータのやり取りをする。
【００２６】
シンクライアントサーバは、通信網を介してシンクライアントビューアから送られてくる入力イベントを受信し、実行中のアプリケーションプログラムへ入力イベントを渡すとともに、アプリケーションが動作することによって発生する画面の更新を検出し画面データを生成してこれをシンクライアントビューアに向けて送信する。
【００２７】
シンクライアントビューアは、ユーザがキーやマウス等の入力装置を操作することによる入力を受け取り、これを入力イベントとしてシンクライアントサーバに向けて送信するとともに、シンクライアントサーバから送られてくる画面データを受信してこれをディスプレイ画面等の出力装置に表示する。
【００２８】
そして、アプリケーションプログラムを実行するサーバ装置と、ユーザ操作による入力情報をサーバ装置に送信しサーバ装置から画面情報を取得してこれを画面に表示するクライアント装置とを有するシンクライアントシステムにおいて、本発明のクライアント装置は、通常続けて起こる２つまたはそれ以上の異なる入力イベントであって、これら入力イベントの発生時間間隔の長短が意味を持つものについて、最初の入力イベント発生時から一定時間以内に、通常次に発生すると想定される入力イベントが発生した場合には、これらの入力イベントを１つの通信パケットに纏めて送信する。
【００２９】
さらに、クライアント装置は、通常続けて起こる２つの異なる入力イベントの、最初の入力イベントが発生した時刻から通常次に発生すると想定される入力イベントが発生した時刻までを複数回計測し、これらの平均値をその操作の所要時間とする手段を備え、最初の入力イベント発生時に次の想定される入力イベントの発生をどれだけの時間待ってからサーバ装置へ送信するのかを決定付ける待ち時間を、前記算出した操作の所要時間に応じて変化させることができる。
【００３０】
また、上記シンクライアントシステムにおいて、本発明のサーバ装置は、クライアント装置から送信されてきた通信パケットが、続けて起こる２つの異なる入力イベントを１つの通信パケットに纏めたものである場合には、これらの入力イベントを所定時間内に続けて実行する。
【００３１】
以下、本発明の実施の形態について図面を参照しながら具体的に説明する。
図４は、クライアント装置のハードウェア構成の概略を示す図である。
図４において、クライアント装置１０は、ＣＰＵ（中央処理装置：Central Processing Unit）４０２、各種のデータや信号等を入力するための入力装置４０３、画像やその他の情報を表示するための表示装置４０４、クライアント装置１０において実行する処理を実行するプログラムの他、クライアント装置１０の各機能を制御し実行するための制御プログラムが収納されたＲＯＭ４０５やＲＡＭ４０６、画像やその他の情報を記憶するための外部記憶装置４０７、無線ＬＡＮ、携帯電話網等のネットワークに接続するための通信Ｉ／Ｆ（インターフェス）４０８、入力装置４０３によって入力された入力イベントを一時的に記憶する補助記憶装置４０９がバス４０１に接続されて構成され、ＣＰＵ４０２がこれらの各部を制御している。
【００３２】
図５は、サーバ装置のハードウェア構成の概略を示す図である。
図５において、サーバ装置２０は、ＣＰＵ５０２、各種のデータや信号等を入力するための入力装置５０３、画像やその他の情報を表示するための表示装置２０４、サーバ装置２０において実行する処理を実行するプログラムの他、サーバ装置２０の各機能を制御し実行するための制御プログラムが収納されたＲＯＭ５０５やＲＡＭ５０６、画像やその他の情報を記憶するための外部記憶装置５０７、無線ＬＡＮ、携帯電話網等のネットワークに接続するための通信Ｉ／Ｆ５０８、クライアント装置１０から送信されてきた通信パケットや該通信パケットを構成する入力イベントを一時的に記憶する補助記憶装置５０９がバス５０１に接続されて構成され、ＣＰＵ５０２がこれらの各部を制御している。
【００３３】
次に、上述のように構成されたサーバベースコンピューティングシステムにおける実行されるクライアント装置１０およびサーバ装置２０の動作例を説明する。
図６は、クライアント装置１０が備えるシンクライアントビューアの処理の流れを示すフローチャートである。
【００３４】
まず、ＣＰＵ４０２はステップＳ６０１において、キーやマウス等から何かしらのイベント入力があったか否かを判断する。イベント入力を検出した場合（ステップＳ６０１：Ｙ）は、ステップＳ６０２において、検出した入力イベントがマウスボタンを押すことにより発生するボタンプレスイベントであるか否かを判断する。
【００３５】
ボタンプレスイベントであると判断された場合（ステップＳ６０２：Ｙ）は、ステップＳ６０３において、タイマを起動し、ボタンプレスイベントを検出してから後述するボタンリリースイベントを検出するまでの時間の計測を開始する。そして、ステップＳ６０４において、上記検出したボタンプレスイベントの情報を後で（ステップＳ６０８、Ｓ６１０、Ｓ６１８で）参照できるように補助記憶装置４０９に一時的に記憶（保管）して、ステップＳ６０１に戻り次のイベント入力または画面情報の受信を待つ。
【００３６】
次に、ステップＳ６０２でボタンプレスイベントでないと判断された場合（ステップＳ６０２：Ｎ）は、ステップＳ６０５において、タイマが動作中か否かを判断する。タイマが動作中であると判断された場合、すなわち、ステップＳ６０３で開始されたタイマが未だ所定時間の経過によるタイムアウトしていない状態であると判断された場合（ステップＳ６０５：Ｙ）は、ステップＳ６０６において、動作中のタイマを初期化する。そして、ステップＳ６０７において、検出した入力イベントが押されているマウスボタンを離すことにより発生するボタンリリースイベントであるか否かを判断する。
【００３７】
ボタンリリースイベントであると判断された場合（ステップＳ６０７：Ｙ）は、ステップＳ６０８において、ステップＳ６０４で一時保管したボタンプレスイベントの情報とステップＳ６０７で検出したボタンリリースイベントの情報を１つの通信パケットに纏める。そして、ステップＳ６０９において、ステップＳ６０８で１つに纏めた通信パケットをサーバ装置２０へ送信して、ステップＳ６０１に戻り次のイベント入力または画面情報の受信を待つ。
【００３８】
図７は、入力された２つのイベントを１つの通信パケットとして送信する仕組みを説明するための図である。
図７に示したように、ステップＳ６０８でボタンプレスイベント情報とボタンリリースイベント情報とが１つに纏められた通信パケットは、クライアント装置１０からサーバ装置２０へ送信される。
【００３９】
図６の説明に戻る。
他方、ボタンリリースイベントでないと判断された場合、すなわち、ボタンプレスイベント及びボタンリリースイベント以外のイベントであると判断された場合（ステップＳ６０７：Ｎ）は、ステップＳ６１０において、ステップＳ６０４で一時保管したボタンプレスイベントの情報をパケット化してサーバ装置２０へ送信し、続いて、ステップＳ６１１において、ステップＳ６０７で検出したボタンプレスイベント及びボタンリリースイベント以外のイベントの情報をパケット化してサーバ装置２０へ送信して、ステップＳ６０１に戻り次のイベント入力または画面情報の受信を待つ。
【００４０】
ステップＳ６０５でタイマが動作中ないと判断された場合（ステップＳ６０５：Ｎ）は、ステップＳ６１２において、ステップＳ６０７で検出した（ボタンプレスイベント以外の）イベントの情報をパケット化してサーバ装置２０へ送信して、ステップＳ６０１に戻り次のイベント入力または画面情報の受信を待つ。
【００４１】
ステップＳ６０１でキーやマウス等から何かしらのイベント入力を検出しなかった場合（ステップＳ６０１：Ｎ）は、ステップＳ６１３において、サーバ装置２０から画面上を受信したか否かを判断する。
【００４２】
そして、画面情報を受信したと判断された場合（ステップＳ６１３：Ｙ）は、ステップＳ６１４において、受信した画面情報による画面表示処理を行ない、出力装置４０４に画面を提示してステップＳ６０１に戻る。
【００４３】
他方、画面情報を受信しなかったと判断された場合、すなわち、入力イベントの検出もなく画面情報の受信もない場合（ステップＳ６１３：Ｎ）は、ステップＳ６１５において、タイマが動作中か否かを判断する。
【００４４】
タイマも動作中でないと判断された場合（ステップＳ６１５：Ｎ）は、ステップＳ６０１に戻り次のイベント入力または画面情報の受信を待つ。
他方、タイマが動作中であると判断された場合（ステップＳ６１５：Ｙ）は、ステップＳ６１６において、タイムアウトしたか否かを判断し、タイムアウトしていないと判断された場合（ステップＳ６０６：Ｎ）は、ステップＳ６０１に戻り次のイベント入力または画面情報の受信を待ち、タイムアウトしたと判断された場合（ステップＳ６０６：Ｙ）は、ステップＳ６１７において、動作中のタイマを初期化した後、ステップＳ６１８において、ステップＳ６０４で一時保管したボタンプレスイベントの情報をパケット化してサーバ装置２０へ送信して、ステップＳ６０１に戻り次のイベント入力または画面情報の受信を待つ。
【００４５】
このようにタイムアウトおよびタイマ動作中のボタンリリースイベント以外の入力イベント検出時の処理を設けることにより、例えばマウスによるドラッグ操作等、ユーザがマウスのボタンを押したままにするような操作にも対応することができる。
【００４６】
図７は、入力された２つのイベントを１つの通信パケットとして送信する仕組みを説明するための図であり、図８は、マウスクリック操作の際の動作シーケンスを示す図である。
【００４７】
図６に示したフローチャートを用いて説明したように、ユーザによるマウスクリック操作が行なわれると、図７および図８に示したように、ボタンプレスイベントとボタンリリースイベントの２つの異なる入力イベントが１つの通信パケットに纏められ、クライアント装置１０からサーバ装置２０へ送信される。
【００４８】
以上説明したように、上述のクライアント装置１０は、通常続けて起こる２つの異なる入力イベントを１つの通信パケットに纏めて送信するようにしたことにより、伝送遅延時間の変動が原因で発生する、サーバ装置２０がユーザ操作と異なる動作をするという問題を解決できるという利点がある。
【００４９】
なお、マウスのボタンをクリック操作した場合を例として説明したが、本発明は入力イベントの種類を限定するものではなく、連続する２つの入力イベントの発生時間間隔の長短が特定の意味を持つ入力イベントの組み合わせであればかまわない。
【００５０】
また、通常続けて起こる２つの異なる入力イベントを１つの通信パケットにまとめて送信するようにしたが、これを３つ以上の入力イベントを１つの通信パケットに纏めて送信するようにしても良い。
【００５１】
次に、本発明を適用した第２の実施の形態について説明する。
上述の実施の形態（第１の実施の形態）においては、ボタンプレスイベントの検出後にタイマを開始し、このタイマがタイムアウトするまでの間にボタンリリースイベントを検出した場合に、これら２つの入力イベントを１つの通信パケットに纏めて送信していた。ここで、マウスのボタンを長時間押したままにする操作の場合を考えてみる。
【００５２】
図９は、マウスボタンを長時間押したままにした際の動作シーケンスを示す図である。
マウスのボタンを長時間押したままにする操作の場合、図９に示すように、ボタンプレスイベントがサーバ装置２０に向けて送信されるのはＴ秒後（タイムアウト後）ということになる。このことは、ユーザが行った操作が遅れて送信されるということになるため、時間Ｔの値はできる限り小さく設定すべきである。しかしながら、時間Ｔの値をあまりに小さくしすぎると、ユーザがマウスボタンをクリック操作した時にもタイムアウトが発生し、ボタンプレスイベントとボタンリリースイベントとを１つに纏めるという処理自体が行われないこととなってしまう。
【００５３】
そこで、本第２の実施の形態では、マウスボタンのクリック操作時にはタイムアウトが発生しない範囲であって、できる限り時間Ｔの値を小さく設定するために以下に説明するような仕組みを追加する。
【００５４】
まず、時間Ｔの値は一定の値とせずに可変とする。そして、ユーザのマウスボタンのクリック操作において、ボタンプレスイベントが発生した時刻からボタンリリースイベントが発生した時刻までを複数回計測し、これらの平均値をクリック操作所要時間とする。そして、算出したクリック操作所要時間に応じて時間Ｔの値を変える。
【００５５】
クリック操作所要時間は、ユーザの癖やマウス操作習熟度によって異なるものと考えられる。このため、直前の何回かのユーザ操作から算出したクリック操作所要時間を時間Ｔの値に反映させるようにすることで、クライアント装置１０を操作するユーザにとっての最適値を時間Ｔに与えることができる。
【００５６】
すなわち、本第２の実施の形態では、ボタンプレスイベントが発生した時刻からボタンリリースイベントが発生した時刻までを複数回計測し、これらの平均値をクリック操作所要時間とする手段を備え、ボタンプレスイベントの発生後に次のボタンリリースイベントをどれだけの期間待つかを決定付けるタイムアウト値（時間Ｔ）を、それまでのユーザ操作をもとに上記算出したクリック操作所要時間によって変化させるようにしたことにより、マウスのボタンを長時間押したままにするような操作を行なう場合に、最初のボタンプレスイベントが送信されるまでの遅れを極力小さく抑えられ、第１の実施の形態と比較してより自然な操作感を得ることができるという利点がある。
【００５７】
図１０は、タイムアウト値の最適値を推定する処理の流れを示すフローチャートである。
図１０に示した例では、ユーザがマウスボタンを操作する度に、ボタンプレスイベントの検出からボタンリリースイベントの検出までのクリック操作所要時間ｔを測定し、その結果からユーザのクリック操作所要時間の平均値ｔｍおよびその偏差ｄを求めることによってタイムアウト値Ｔの最適値の推定を行なう。
【００５８】
具体的には、ステップＳ１００１において、ボタンプレスイベントを検出すると（ステップＳ１００１：Ｙ）、ステップＳ１００２において、時間の計測を開始する。そして、ステップＳ１００３において、ボタンリリースイベントを検出すると（ステップＳ１００３：Ｙ）、ステップＳ１００４において、ステップＳ１００２で開始した時間の計測を終了し、時間の計測開始から終了までの時間ｔを得る。
【００５９】
そして、ステップＳ１００５において、これ以上ボタンがプレスされたままならば長押しとみなす時間ＴＬと比較し、クリック操作所要時間の測定値ｔがＴＬより大きい場合（ステップＳ１００５：Ｙ）は、ユーザが長押し操作をしているとみなし、ステップＳ１００１に戻り、そのときの測定値ｔはタイムアウト値Ｔの推定には使用しない。
【００６０】
他方、クリック操作所要時間の測定値ｔがＴＬ以下の場合（ステップＳ１００５：Ｎ）は、ステップＳ１００６において、新しい測定値ｔを得るたびに極力簡単な計算で値を更新できるようにすべく、（１−α）ｔｍ＋αｔの計算結果をｔｍに代入することで、クリック操作所要時間の測定値ｔの平均値ｔｍの値の更新を行なう。ここで、αは調整パラメータで、例えばα＝０．１として計算すると、新しい測定値ｔの重みが１／１０で、過去の測定値から求めた平均値ｔｍの重みが９／１０であることを意味する。
【００６１】
そして、ステップＳ１００７において、クリック操作所要時間の測定値ｔの平均偏差ｄもｔｍの算出同様、新しい測定値ｔを得るたびに簡単な計算で値を更新できるようにすべく、（１−β）ｄ＋β｜ｔｍ−ｔ｜の計算結果をｄに代入して値を更新する。ここで、βは前記αと同様の調整パラメータである。
【００６２】
さらに、ステップＳ１００８において、上述の方法と同様の方法でクリック操作所要時間の平均値ｔｍと平均偏差ｄを求め、ｔｍ＋３ｄをＴに代入することで、タイムアウト値の更新を行ない、ステップＳ１００１に戻る。
【００６３】
なお、前述の方法で算出したｔｍやｄは、厳密にはｔの平均値や平均偏差とは言えないが、計算が簡単であり、それほど精度の高い値を必要とするわけでもないので効果的である。
【００６４】
統計論によれば、「母集団が正規分布であるとき、平均値から標準偏差の３倍以上離れた値をとることはまれ」であるので、クリック操作所要時間の平均値＋平均偏差の３倍をＴの値とする。つまり、ユーザのクリック操作所要時間より大きな値の集合の中の最小の値がＴであるとみなす。またこの例では、計算を簡単にし演算装置の負荷を極力小さくするために、平均偏差を使用している。
【００６５】
次に、サーバ装置２０で実行される処理について説明する。
図１１は、サーバ装置２０の処理の流れを示すフローチャートである。
まず、ステップＳ１１０１において、クライアント装置１０から送信されてきたイベントを受信したか否かを判断し、受信したと判断された場合（ステップＳ１１０１：Ｙｅｓ）は、ステップＳ１１０２において、その受信したイベントが送信パケット化された入力イベントか否かを判断する。
【００６６】
入力イベントでないと判断された場合（ステップＳ１１０２：Ｎｏ）は、ステップＳ１１０３において、入力イベントでない他のイベントについての処理を実行して、ステップＳ１１０１に戻る。
【００６７】
他方、入力イベントであると判断された場合（ステップＳ１１０２：Ｙｅｓ）は、ステップＳ１１０４において、その入力イベントが複数の入力イベントを纏めた通信パケットであるか否かを判断する。
【００６８】
そして、複数の入力イベントであると判断された場合（ステップＳ１１０４：Ｙｅｓ）は、ステップＳ１１０５において、その複数の入力イベントを元の個別の入力イベントに分割し、ステップＳ１１０６において、これら入力イベントの処理を実行して、ステップＳ１１０１に戻る。
【００６９】
以上、本発明の実施の形態を、図面を参照しながら説明してきたが、上述してきた本発明の実施の形態は、クライアント装置１０またはサーバ装置２０の一機能としてハードウェアまたはＤＳＰ（Digital Signal Processor）ボードやＣＰＵボードでのファームウェアもしくはソフトウェアにより実現することができる。
【００７０】
また、本発明が適用されるクライアント装置１０およびサーバ装置２０は、その機能が実行されるのであれば、上述の実施の形態に限定されることなく、単体の装置であっても、複数の装置からなるシステムあるいは統合装置であっても、ＬＡＮ、ＷＡＮ等のネットワークを介して処理が行なわれるシステムであってもよいことは言うまでもない。
【００７１】
また、バスに接続されたＣＰＵ、ＲＯＭやＲＡＭのメモリ、入力装置、出力装置、外部記録装置、媒体駆動装置、ネットワーク接続装置で構成されるシステムでも実現できる。すなわち、前述してきた実施の形態のシステムを実現するソフトェアのプログラムを記録したＲＯＭやＲＡＭのメモリ、外部記録装置、可搬記録媒体を、クライアント装置１０およびサーバ装置２０に供給し、それらのクライアント装置１０およびサーバ装置２０のコンピュータがプログラムを読み出し実行することによっても、達成されることは言うまでもない。
【００７２】
この場合、可搬記録媒体等から読み出されたプログラム自体が本発明の新規な機能を実現することになり、そのプログラムを記録した可搬記録媒体等は本発明を構成することになる。
【００７３】
プログラムを供給するための可搬記録媒体としては、例えば、フレキシブルディスク、ハードディスク、光ディスク、光磁気ディスク、ＣＤ−ＲＯＭ、ＣＤ−Ｒ、ＤＶＤ−ＲＯＭ、ＤＶＤ−ＲＡＭ、磁気テープ、不揮発性のメモリーカード、ＲＯＭカード、電子メールやパソコン通信等のネットワーク接続装置（言い換えれば、通信回線）を介して記録した種々の記録媒体などを用いることができる。
【００７４】
また、コンピュータ（情報処理装置）がメモリ上に読み出したプログラムを実行することによって、前述した実施の形態の機能が実現される他、そのプログラムの指示に基づき、コンピュータ上で稼動しているＯＳなどが実際の処理の一部または全部を行ない、その処理によっても前述した実施の形態の機能が実現される。
【００７５】
さらに、可搬型記録媒体から読み出されたプログラムやプログラム（データ）提供者から提供されたプログラム（データ）が、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるＣＰＵなどが実際の処理の一部または全部を行ない、その処理によっても前述した実施の形態の機能が実現され得る。
【００７６】
すなわち、本発明は、以上に述べた実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲内で種々の構成または形状を取ることができる。
【図面の簡単な説明】
【００７７】
【図１】シンクライアントシステムの概要を説明するための図である。
【図２】従来の入力情報の送信例を説明するための図である。
【図３】従来の問題点を説明するための図である。
【図４】クライアント装置１０のハードウェア構成の概略を示す図である。
【図５】サーバ装置２０のハードウェア構成の概略を示す図である。
【図６】クライアント装置１０が備えるシンクライアントビューアの処理の流れを示すフローチャートである。
【図７】入力された２つのイベントを１つの通信パケットとして送信する仕組みを説明するための図である。
【図８】マウスクリック操作の際の動作シーケンスを示す図である。
【図９】マウスボタンを長時間押したままにした際の動作シーケンスを示す図である。
【図１０】タイムアウト値の最適値を推定する処理の流れを示すフローチャートである。
【図１１】サーバ装置２０の処理の流れを示すフローチャートである。
【符号の説明】
【００７８】
１        クライアント装置
２        サーバ装置
３        通信網
１０      クライアント装置
２０      サーバ装置
４０１    バス
４０２    ＣＰＵ
４０３    入力装置
４０４    表示装置
４０５    ＲＯＭ
４０６    ＲＡＭ
４０７    外部記憶装置
４０８    通信Ｉ／Ｆ
４０９    補助記憶装置
５０１    バス
５０２    ＣＰＵ
５０３    入力装置
５０４    表示装置
５０５    ＲＯＭ
５０６    ＲＡＭ
５０７    外部記憶装置
５０８    通信Ｉ／Ｆ
５０９    補助記憶装置
【図２】
2008083800.tif 000003
【図３】
2008083800.tif 000004
【図４】
2008083800.tif 000005
【図５】
2008083800.tif 000006
【図６】
2008083800.tif 000007
【図７】
2008083800.tif 000008
【図８】
2008083800.tif 000009
【図９】
2008083800.tif 000010
【図１０】
2008083800.tif 000011
【図１１】
2008083800.tif 000012
【図１】
2008083800.tif 000013
【手続補正書】
【提出日】平成19年7月26日(2007.7.26)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ネットワークを介してサーバ装置に対してサービス要求を行ない、前記サービス要求に対応する画面情報を前記サーバ装置から取得して表示するクライアント装置であって、
イベントを入力するための入力手段と、
前記入力手段によって入力された入力イベントを検出する入力イベント検出手段と、
前記入力イベント検出手段によって検出された複数の入力イベントが、予め定められた時間内に検出された場合に、これら複数の入力イベントに基づいて１つの通信パケットを生成する通信パケット生成手段と、
前記通信パケット生成手段によって生成された通信パケットを前記サーバ装置へ送信するパケット送信手段と、
を備えることを特徴とするクライアント装置。
【請求項２】
前記複数の入力イベントは、その発生時間間隔の長短が特定の意味を持つ入力イベントの組み合わせであることを特徴とする請求項１に記載のクライアント装置。
【請求項３】
前記複数の入力イベントは、前記入力デバイスのボタンを押すことにより発生するボタンプレスイベントと前記押されているボタンを離すことにより発生するボタンリリースイベントであることを特徴とする請求項１に記載のクライアント装置。
【請求項４】
前記予め定められた時間は、前記複数の入力イベントの発生に要する時間の平均値に基づいて定めることを特徴とする請求項１乃至３の何れか１項に記載のクライアント装置。
【請求項５】
ネットワークを介したクライアント装置からのサービス要求に基づいて、前記サービス要求に対応する画面情報を前記クライアント装置へ送信するサーバ装置であって、
前記クライアント装置から送信された通信パケットを受信するパケット受信手段と、
前記パケット受信手段によって受信した通信パケットが複数の入力イベントに基づく通信パケットであるか否かを判断する判断手段と、
前記判断手段によって前記通信パケットが複数の入力イベントに基づく通信パケットであると判断された場合は、前記通信パケットを複数の入力イベントとして実行するイベント実行手段と、
を備えることを特徴とするサーバ装置。
【請求項６】
請求項１乃至４の何れか１項に記載のクライアント装置と請求項５に記載のサーバ装置とを備えるサーバベースコンピューティングシステム。
【請求項７】
ネットワークを介してサーバ装置に対してサービス要求を行ない、前記サービス要求に対応する画面情報を前記サーバ装置から取得して表示するクライアント装置のコンピュータを、
入力手段によって入力された入力イベントを検出する入力イベント検出手段、
前記入力イベント検出手段によって検出された複数の入力イベントが、予め定められた時間内に検出された場合に、これら複数の入力イベントに基づいて１つの通信パケットを生成する通信パケット生成手段、
前記通信パケット生成手段によって生成された通信パケットを前記サーバ装置へ送信するパケット送信手段、
として機能させるためのプログラム。
【請求項８】
ネットワークを介したクライアント装置からのサービス要求に基づいて、前記サービス要求に対応する画面情報を前記クライアント装置へ送信するサーバ装置のコンピュータを、
前記クライアント装置から送信された通信パケットを受信するパケット受信手段、
前記パケット受信手段によって受信した通信パケットが複数の入力イベントに基づく通信パケットであるか否かを判断する判断手段、
前記判断手段によって前記通信パケットが複数の入力イベントに基づく通信パケットであると判断された場合は、前記通信パケットを複数の入力イベントとして実行するイベント実行手段、
として機能させるためのプログラム。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００１６
【補正方法】変更
【補正の内容】
【００１６】
本発明は、上記課題を解決するため、下記のような構成を採用した。
すなわち、本発明の一態様によれば、本発明のクライアント装置は、ネットワークを介してサーバ装置に対してサービス要求を行ない、前記サービス要求に対応する画面情報を前記サーバ装置から取得して表示するクライアント装置であって、マウスデバイス等のイベントを入力するための入力手段と、前記入力手段によって入力された入力イベントを検出する入力イベント検出手段と、前記入力イベント検出手段によって検出された複数の入力イベントが、予め定められた時間内に検出された場合に、これら複数の入力イベントに基づいて１つの通信パケットを生成する通信パケット生成手段と、前記通信パケット生成手段によって生成された通信パケットを前記サーバ装置へ送信するパケット送信手段とを備えることを特徴とする。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００１７
【補正方法】変更
【補正の内容】
【００１７】
また、本発明のクライアント装置は、前記複数の入力イベントが、その発生時間間隔の長短が特定の意味を持つ入力イベントの組み合わせであることが望ましい。例えば、前記複数の入力イベントは、前記入力デバイスのボタンを押すことにより発生するボタンプレスイベントと前記押されているボタンを離すことにより発生するボタンリリースイベントであることが望ましい。
【手続補正４】
【補正対象書類名】明細書
【補正対象項目名】００１８
【補正方法】変更
【補正の内容】
【００１８】
また、本発明のクライアント装置は、前記予め定められた時間が、前記複数の入力イベントの発生に要する時間の平均値に基づいて定めることが望ましい。
【手続補正５】
【補正対象書類名】明細書
【補正対象項目名】００１９
【補正方法】変更
【補正の内容】
【００１９】
また、本発明の一態様によれば、本発明のサーバ装置は、ネットワークを介したクライアント装置からのサービス要求に基づいて、前記サービス要求に対応する画面情報を前記クライアント装置へ送信するサーバ装置であって、前記クライアント装置から送信された通信パケットを受信するパケット受信手段と、前記パケット受信手段によって受信した通信パケットが複数の入力イベントに基づく通信パケットであるか否かを判断する判断手段と、前記判断手段によって前記通信パケットが複数の入力イベントに基づく通信パケットであると判断された場合は、前記通信パケットを複数の入力イベントとして実行するイベント実行手段とを備えることを特徴とする。
【手続補正６】
【補正対象書類名】明細書
【補正対象項目名】００２１
【補正方法】変更
【補正の内容】
【００２１】
また、本発明の一態様によれば、本発明のプログラムは、ネットワークを介してサーバ装置に対してサービス要求を行ない、前記サービス要求に対応する画面情報を前記サーバ装置から取得して表示するクライアント装置のコンピュータを、マウスデバイス等の入力手段によって入力された入力イベントを検出する入力イベント検出手段、前記入力イベント検出手段によって検出された複数の入力イベントが、予め定められた時間内に検出された場合に、これら複数の入力イベントに基づいて１つの通信パケットを生成する通信パケット生成手段、前記通信パケット生成手段によって生成された通信パケットを前記サーバ装置へ送信するパケット送信手段、として機能させるためのプログラムである。
【手続補正７】
【補正対象書類名】明細書
【補正対象項目名】００２２
【補正方法】変更
【補正の内容】
【００２２】
また、本発明の一態様によれば、本発明のプログラムは、ネットワークを介したクライアント装置からのサービス要求に基づいて、前記サービス要求に対応する画面情報を前記クライアント装置へ送信するサーバ装置のコンピュータを、前記クライアント装置から送信された通信パケットを受信するパケット受信手段、前記パケット受信手段によって受信した通信パケットが複数の入力イベントに基づく通信パケットであるか否かを判断する判断手段、前記判断手段によって前記通信パケットが複数の入力イベントに基づく通信パケットであると判断された場合は、前記通信パケットを複数の入力イベントとして実行するイベント実行手段、として機能させるためのプログラムである。