(57)【要約】【課題】移動体通信網をはじめとする高遅延かつ狭帯域な通信環境においても、迅速なレスポンスを行うＧＵＩ(Graphical User Interface)表示機能を備えるクライアントサーバシステム及びその表示方法を実現する。【解決手段】サーバ１上で実行されるアプリケーション１３のＧＵＩをクライアント端末３に表示する際に、サーバ１は、クライアント端末３上に表示されるＧＵＩに対してユーザが次に行う操作を、実際にユーザが行う前に予測し、その予測に基づいてあらかじめアプリケーション１３を実行しておいた結果をクライアント端末３に送信する。クライアント端末３は、サーバ１から受信した予測結果を保存しておき、実際にユーザが操作を行った際、保存されている予測結果に基づいてＧＵＩ画面を表示する。クライアント端末とサーバとの間が、狭帯域かつ高遅延な通信環境で接続されていても、迅速なＧＵＩのレスポンスを実現でき、効率的に作業を行うことができる。【選択図】図１
2005228228.tif 000002
【特許請求の範囲】
【請求項１】
アプリケーションを実行すると共に該アプリケーションのグラフィックユーザインタフェース（ＧＵＩ）の情報を送信するサーバと、前記サーバとの間で通信を行い、前記ＧＵＩの情報を受信して該情報に基づくＧＵＩを表示すると共に該ＧＵＩに対するユーザ操作に基づく情報を前記サーバに送信するクライアント端末とからなるクライアントサーバシステムにおいて、
前記サーバは、
クライアント端末に表示しているＧＵＩに対してユーザが実行する操作を予測する予測手段と、
前記予測したユーザ操作に基づいて変更した少なくとも１つのＧＵＩの情報を前記クライアント端末に送信する手段とを備え、
前記クライアント端末は、
前記予測に基づいて変更されたＧＵＩの情報を前記サーバから受信して記憶する手段と、
表示しているＧＵＩに対するユーザ操作を入力する手段と、
前記入力したユーザ操作に対応する前記予測に基づいて変更されたＧＵＩの情報が記憶されているときに、該記憶されているＧＵＩ情報に基づくＧＵＩを表示する手段とを備えている
ことを特徴とするクライアントサーバシステム。
【請求項２】
前記予測手段は、ユーザが実行可能な操作のそれぞれに対して予め優先順位を決めておきユーザの操作を予測する手段、或いは過去にユーザが行った操作の履歴を蓄積しておいてこれを参照してユーザの操作を予測する手段のうちの少なくとも一方を有している
ことを特徴とする請求項１に記載のクライアントサーバシステム。
【請求項３】
前記サーバは、
前記ＧＵＩコンポーネントの属性を、コンポーネント単位で定義されたコマンドに変換する手段と、
前記属性に対応するコマンドを前記クライアント端末に送信する手段と、
前記クライアント端末から受信したコマンドに対応する属性に基づいて前記アプリケーションプログラムを実行する手段とを有し、
前記クライアント端末は、
前記ＧＵＩコンポーネントの属性を、各コンポーネント単位で定義されたコマンドに変換する手段と、
前記サーバから受信したコマンドに対応する属性に基づいてＧＵＩを表示する手段と、
ユーザの操作によって変更されたＧＵＩコンポーネントの属性に対応するコマンドを前記サーバに送信する手段とを有する
ことを特徴とする請求項１に記載のクライアントサーバシステム。
【請求項４】
前記サーバは、変更したＧＵＩコンポーネントの属性に対応するコマンドのみを前記クライアント端末に送信する手段を有する
ことを特徴とする請求項３記載のクライアントサーバシステム。
【請求項５】
前記クライアント端末は、ユーザの操作によって変更されたＧＵＩコンポーネントの属性をトリガとして前記サーバ上のアプリケーションプログラムが何らかの処理を行う記述を行っている場合のみ、該属性に対応するコマンドを前記サーバに送信する手段を有する
ことを特徴とする請求項３又は４記載のクライアントサーバシステム。
【請求項６】
アプリケーションを実行すると共に該アプリケーションのグラフィックユーザインタフェース（ＧＵＩ）の情報を送信するサーバと、前記サーバとの間で通信を行い、前記ＧＵＩの情報を受信して該情報に基づくＧＵＩを表示すると共に該ＧＵＩに対するユーザ操作に基づく応答を前記サーバに送信するクライアント端末とからなるクライアントサーバシステムのＧＵＩ表示方法であって、
前記サーバは、クライアント端末に表示しているＧＵＩに対してユーザが実行する操作を予測し、該予測したユーザ操作に基づいて変更した少なくとも１つのＧＵＩの情報を前記クライアント端末に送信し、
前記クライアント端末は、前記予測に基づいて変更されたＧＵＩの情報を前記サーバから受信して記憶し、表示しているＧＵＩに対してユーザが実行した操作に対応する前記予測に基づいて変更されたＧＵＩの情報が記憶されているときに、該記憶されているＧＵＩ情報に基づくＧＵＩを表示する
ことを特徴とするクライアントサーバシステムのＧＵＩ表示方法。
【請求項７】
前記サーバは、前記クライアント端末に表示されているＧＵＩに対してユーザが実行可能な操作のそれぞれに対して予め優先順位を決めておき、該優先順位にしたがってユーザの操作を予測する
ことを特徴とする請求項６記載のクライアントサーバシステムのＧＵＩ表示方法。
【請求項８】
前記サーバは、過去にユーザが行った操作の履歴情報を蓄積しておき、該蓄積されている履歴情報に基づいてユーザの操作を予測する
ことを特徴とする請求項６記載のクライアントサーバシステムのＧＵＩ表示方法。
【請求項９】
前記サーバと前記クライアント端末のそれぞれは、前記ＧＵＩコンポーネント単位で属性に対応付けて定義されたコマンドを記憶しており、
前記サーバは、前記ＧＵＩコンポーネントの属性を、前記コンポーネント単位で定義されたコマンドに変換し、前記属性に対応するコマンドを前記クライアント端末に送信すると共に、前記クライアント端末から受信したコマンドに対応する属性に基づいて前記アプリケーションプログラムを実行し、
前記クライアント端末は、前記ＧＵＩコンポーネントの属性を、各コンポーネント単位で定義されたコマンドに変換し、ユーザの操作によって変更されたＧＵＩコンポーネントの属性に対応するコマンドを前記サーバに送信すると共に、前記サーバから受信したコマンドに対応する属性に基づいてＧＵＩを表示する
ことを特徴とする請求項６記載のクライアントサーバシステムのＧＵＩ表示方法。
【請求項１０】
前記サーバは、変更のあったＧＵＩコンポーネントにおける変更のあった属性に対応するコマンドのみを前記クライアント端末に送信する
ことを特徴とする請求項９記載のクライアントサーバシステムのＧＵＩ表示方法。
【請求項１１】
前記クライアント端末は、ユーザのＧＵＩコンポーネントへの操作に対して、前記サーバ上のアプリケーションプログラムが前記操作をトリガとして、何らかの処理を行う記述を行っている場合のみ、前記操作の情報をサーバへ送信する
ことを特徴とする請求項９又は１０記載のクライアントサーバシステムのＧＵＩ表示方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、サーバ上でアプリケーションを実行し、サーバとネットワークでつながれたクライアント端末から、サーバ上のアプリケーションを操作する、クライアントサーバシステムまたはサーバベースコンピューティングと呼ばれる技術分野に関し、特にクライアント端末へのグラフィックユーザインタフェース（ＧＵＩ）の表示を高速化する技術に関する。
【背景技術】
【０００２】
近年、携帯電話の普及により、携帯電話上でアプリケーションを実行する要求が高まっているが、携帯電話の処理能力は乏しく、別のサーバ上でアプリケーションを実行し、携帯電話上からその操作を行うクライアントサーバシステムが注目されている。
【０００３】
しかし、携帯電話はその通信特性から高遅延かつ狭帯域であり、クライアントサーバシステムには適さない通信網を備えている。
【０００４】
高遅廷な環境でクライアントサーバシステムを実現する方法が、特開２００３−３２３４０２号公報に開示されており、関連性の高い一連の操作が完了するまで蓄積した後、一括してサーバに送信することにより高遅延網を経由した環境でも作業効率良く操作できるようにしている。
【０００５】
また、Ｍｉｃｒｏｓｏｆｔ社のＴｅｒｍｉｎａｌ  Ｓｅｒｖｉｃｅや、Ｃｉｔｒｉｘ社のＭｅｔａ  Ｆｒａｍｅをはじめとして、サーバとクライアント端末間で、画素をやり取りしてクライアント端末にＧＵＩを表示する手法も知られている。これは、サーバ上で実行されるアプリケーションの画面を、画素単位でクライアント端末に送信する方式であり、クライアント端末側では、画素の情報を受信した後、それをそのまま表示するだけでよい。また、変更のあった画素のみを送信するなどして、データ量の削減を図っている。
【特許文献１】特開２００３−３２３４０２号公報
【非特許文献１】http://www.keyman.or.jp/search/30000031＿1.html（サーバベースコンピューティング）
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかし、上記特許文献１に開示される従来技術は、通信回数を削減し通信遅延の影響を少なくすることはできるが、サーバに送信する際に通信遅延の影響を受けることは避けられない。また、蓄積するのは、カーソルの移動や日本語変換等の操作のみであり、画面遷移が発生する場合は通信遅延の影響を受ける。
【０００７】
一方、上記の画素をやり取りする手法を用いたクライアントサーバシステムでは、移動体通信網等の狭帯域な通信環境においては、非常にデータ量が多くなるので迅速なレスポンスを期待できないという問題点があった。
【０００８】
本発明の目的は、高遅延かつ狭帯域な通信環境においても、常に、ユーザが効率よく作業を行えるように、ＧＵＩの迅速なレスポンスを実現したクライアントサーバシステム及びそのＧＵＩ表示方法を提供することである。
【課題を解決するための手段】
【０００９】
上記目的を達成するために、本発明は、アプリケーションを実行すると共に該アプリケーションのグラフィックユーザインタフェース（ＧＵＩ）の情報を送信するサーバと、前記サーバとの間で通信を行い、前記ＧＵＩの情報を受信して該情報に基づくＧＵＩを表示すると共に該ＧＵＩに対するユーザ操作に基づく応答を前記サーバに送信するクライアント端末とからなるクライアントサーバシステムのＧＵＩ表示方法であって、前記サーバは、クライアント端末に表示しているＧＵＩに対するユーザ操作に関して前記クライアント端末から受信する情報を予測し、該予測に基づいて変更した少なくとも１つのＧＵＩの情報を前記クライアント端末に送信し、前記クライアント端末は、前記サーバから受信した前記予測に基づいて変更されたＧＵＩの情報を記憶し、表示しているＧＵＩに対するユーザ操作に対応する前記予測に基づいて変更されたＧＵＩの情報が記憶されているときに、該記憶されているＧＵＩ情報に基づくＧＵＩを表示することを特徴とする。
【００１０】
本発明によれば、クライアント端末に表示されているＧＵＩに対して次に行われるユーザの操作をあらかじめ予測し、前記予測に基づいて、サーバからクライアント端末へＧＵＩ情報をあらかじめ送信しておき、クライアント端末に記憶しておくことにより、通信遅延の影響を全く受けることなく、即座にユーザインタフェースの画面を表示することができる。
【００１１】
また、本発明は、サーバとクライアント端末間の通信において、ＧＵＩコンポーネントの属性が、ユーザの操作等により変更された場合に、変更された部分のみを送信することにより、通信に必要なデータ量を削減する。
【００１２】
さらに、本発明は、クライアント端末は、ＧＵＩコンポーネントに対するユーザのある操作に対して、アプリケーションプログラムに前記操作をトリガとして何らかの処理を行う記述がある場合のみ、ＧＵＩコンポーネントに対するユーザの操作に対応するコマンドをサーバへ送信することにより、通信に必要なデータ量を削減する。
【発明の効果】
【００１３】
本発明によれば、高遅廷かつ狭帯域な通信環境で接続されたクライアントサーバシステムにおいて、クライアント端末に表示されているＧＵＩに対して次に行われるユーザの操作を予測し、あらかじめ実行結果を計算しておくので、迅速なレスポンスを備えるユーザインタフェースを実現することができ、ユーザが効率的に作業を行うことができる。
【００１４】
また、狭帯域な通信環境でサーバとクライアント端末が接続されていても、サーバとクライアント端末との間の通信において、ＧＵＩコンポーネント単位でその属性に対応したコマンドを定義し、ＧＵＩコンポーネントの属性値を送受信しているので、サーバとクライアント端末間でやりとりされるデータ量を削減でき、狭帯域な通信環境においても、迅速なレスポンスを備えるＧＵＩ表示を実現し、ユーザが効率的に作業を行うことができる。
【００１５】
また、ユーザの操作等により、ＧＵＩコンポーネントの属性値に変更があった場合は、変更があったＧＵＩコンポーネントの属性値のみをやりとりするため、さらにサーバとクライアント端末間でやりとりされるデータ量を削減することができ、狭帯域な通信環境においても、迅速なレスポンスを備えるＧＵＩ表示を実現し、ユーザが効率的に作業を行うことができる。
【００１６】
また、ユーザがＧＵＩコンポーネントに対して何らかの操作を行った際、サーバ上のアプリケーションが、その操作をトリガとして何らかの処理を行うかどうかを判断し、行わない場合は、ユーザイベントをサーバに送信しないので、通信回数を削減することができ、サーバとクライアント端末間で送受信されるデータ量を削減できる。
【発明を実施するための最良の形態】
【００１７】
次に、本発明の一実施形態について図面を用いて説明する。
【００１８】
図１は、本発明におけるクライアントサーバシステムの一実施形態を示す概略構成図である。図１に示されるように、本クライアントサーバシステムは、アプリケーションが実行されるサーバ１と、クライアント端末３とが、高遅廷かつ狭帯域な通信網２にて接続されている。
【００１９】
サーバ１は、周知のコンピュータ装置及びオペレーティングシステムプログラムを主体として構成され、コマンド生成解析機能部１１と、ユーザイベント予測機能部１２と、複数のＧＵＩコンポーネントを含むサーバ１上で実行されるアプリケーション１３を備えている。
【００２０】
コマンド生成解析機能部１１には、各ＧＵＩコンポーネントのプロパティ（属性）をプロパティ毎にコマンドと対応付けたテーブルが予め記憶されている。このテーブルを用いて、コマンド生成解析機能部１１は、通信網２を介してクライアント端末３から受信したコマンドを解析してこのコマンドに対応するＧＵＩコンポーネントのプロパティをアプリケーション１３に伝達すると共に、アプリケーション１３から受け取った、ＧＵＩコンポーネントのプロパティをコマンドに変換した後、このコマンドを通信網２を介してクライアント端末３に送信する。
【００２１】
ユーザイベント予測機能部１２は、クライアント端末３に表示されているＧＵＩの情報をアプリケーション１３から入力し、現在、クライアント端末３上に表示されているＧＵＩに対して、ユーザが次に行う操作（以下、ユーザによる操作をユーザイベント称する）の予測を行う。さらに、予測されたユーザイベントが実施された場合のアプリケーションの実行結果を計算し、その実行結果であるＧＵＩの情報、すなわちＧＵＩコンポーネントのプロパティをユーザイベントの情報に対応付けてコマンド生成解析機能部１１を介してクライアント端末３に送信する。ここで、ユーザイベントの予測は、ユーザが実行可能な操作のそれぞれに対して予め優先順位を決めておく方法、或いは過去にユーザが行った操作の履歴を蓄積しておいてこれを参照する方法、またはこれらの両方を用いる方法等が適用可能であり、本実施形態では、これらの双方を用いてユーザによって行われる確率の高い操作を優先して予測を行うようにしている。
【００２２】
アプリケーション１３は、コマンド生成解析機能部１１から伝達されたＧＵＩコンポーネントのプロパティに基づいて実行を継続すると共に、クライアント端末３に表示するＧＵＩの全ての情報或いは変更したＧＵＩコンポーネントのプロパティのみをコマンド生成解析機能部１１に送出する。
【００２３】
クライアント端末３は、例えば一般的にシンクライアント端末と称されるようなハードディスク装置やフレキシブルディスク装置を持たないコンピュータ装置からなり、コマンド生成解析機能部３１と、イベント管理機能部３２、ユーザインタフェース部３３、予測結果記憶部３４を備えている。
【００２４】
コマンド生成解析機能部３１には、各ＧＵＩコンポーネントのプロパティ（属性）をプロパティ毎にコマンドと対応付けた上記と同様のテーブルが予め記憶されている。このテーブルを用いて、コマンド生成解析機能部３１は、通信網２を介してサーバ１から受信したコマンドを解析してこのコマンドに対応するＧＵＩコンポーネントのプロパティをイベント管理機能部３２或いは予測結果記憶部３４に送出すると共に、イベント管理機能部３２を介してユーザインタフェース部３３から受け取った、ＧＵＩコンポーネントのプロパティをコマンドに変換した後、このコマンドを通信網２を介してサーバ１に送信する。ここで、コマンド生成解析機能部３１は、サーバ１からユーザイベント情報と共にこれに対応付けた変更後のＧＵＩ情報すなわち変更されたＧＵＩコンポーネントのプロパティを受信したときは、これらを予測結果記憶部３４に記憶させる。
【００２５】
イベント管理機能部３２は、コマンド生成解析機能部３１から受け取ったＧＵＩコンポーネントとそのプロパティをユーザインタフェース部３３に送出する。さらに、イベント管理機能部３２は、ユーザインタフェース部３３から受け取ったユーザイベントの情報に基づいて、このユーザイベントに対応するＧＵＩの情報すなわちＧＵＩコンポーネントのプロパティが予測結果記憶部３４に記憶されているか否かを判定し、記憶されているときはその記憶されているＧＵＩコンポーネントのプロパティをユーザインタフェース部３３に送出する。また、ユーザイベントに対応するＧＵＩの情報が予測結果記憶部３４に記憶されていないときは、イベント管理機能部３２は、ユーザインタフェース部３３から受け取ったユーザイベントの情報に基づいてユーザイベントによって変更されたＧＵＩコンポーネントのプロパティをコマンド生成解析機能部３１を介してサーバ１に送信する。
【００２６】
ユーザインタフェース部３３は、図示せぬ操作部と表示部を備え、イベント管理機能部３２を介してコマンド生成解析機能部３１から受け取ったＧＵＩコンポーネントのプロパティに基づいて表示部にＧＵＩを表示すると共に、操作部を介してユーザが行った操作の情報をイベント管理機能部３２に送出する。
【００２７】
予測結果記憶部３４は、コマンド生成解析機能部３１からユーザイベント情報と共にこれに対応付けたＧＵＩの情報すなわちＧＵＩコンポーネントのプロパティを受け取ったときにこれらを記憶する。
【００２８】
上記システムにおいて、クライアント端末３では、サーバ１上で実行されるアプリケーション１３の実行結果を表すＧＵＩコンポーネントのプロパティに基づいて、ユーザインタフェース部３２を介してユーザに対してＧＵＩを表示する。また、クライアント端末３は、ユーザインタフェース部３２の表示部に表示されたＧＵＩに対するユーザイベントを受け取り、その操作内容を狭帯域な通信網２を介してサーバ１に送信する。これを受信したサーバ１は、サーバ１上で実行されているアプリケーション１３にユーザイベントを伝え、ユーザイベントに基づいてアプリケーション１２が実行される。さらに、サーバー１は、ユーザーイベント予測機能部１２によって、現在、クライアント端末３上に表示されているＧＵＩに対してユーザーが次に行う操作の予測を行い、その予測結果をクライアント端末に送信する。
【００２９】
また、サーバ１上のコマンド生成解析機能部１１は、クライアント端末３から初めてアクセスされた場合等、サーバ１上で実行されているアプリケーション１３の内部状態を全てクライアント端末３へ送信する必要がある場合は、アプリケーション１２内に存在する各ＧＵＩコンポーネント１３のプロパティ値をクライアント端末３へ送信する。
【００３０】
さらに、コマンド生成解析機能部１１は、ユーザが何らかの操作を行い、アプリケーション１３の状態が変更になった等、アプリケーション１３の内部状態のうち変更のあった部分だけを、クライアント端末３へ送信する必要がある場合は、アプリケーション１３内に存在する各ＧＵＩコンポーネントのうち、変更のあったＧＵＩコンポーネントのみに関して、そのＧＵＩコンポーネントがもつプロパティ値のうち変更のあったプロパティ値のみをクライアント端末３へ送信する。
【００３１】
一方、クライアント端末３は、ユーザがボタンを押す等の何らかの操作を行った場合、サーバ１上で実行されているアプリケーション１３に、その操作をトリガとして何らかの処理を行う記述がある場合のみ、ユーザの行った操作を、サーバ１に送信する。
【００３２】
さらに、クライアント端末３は、サーバ１から受信した予測結果を予測結果記憶部３４に保存しておく。クライアント端末３では、実際にユーザが何らかの操作を行った際、まず、クライアント端末３の予測結果記憶部３４に保存されている予測結果を参照し、ユーザが実際に行った操作と、あらかじめ予測されていたユーザ操作とが一致した場合には、保存されている予測結果を取り出し、その予測結果からユーザインタフェース部３３によってＧＵＩを構築し、クライアント端末３上に表示する。
【００３３】
サーバ１上での予測は、ユーザのアイドル時間、つまり、ユーザが、ユーザインタフェース部３３に表示されているＧＵＩを見て、判断し、何らかのアクションを起こすまでの時間の内に１回以上行い、その結果をクライアント端末３に送信する。ユーザのアイドル時間が長ければ長いほど、多い回数すなわち多種の操作のそれぞれに対して予測を行うことができ、予測の精度をより高めることができる。
【００３４】
図２は、本実施形態におけるサーバ１上での予測処理の一例を表すフローチャート図である。
【００３５】
サーバ１においてユーザイベントの予測が開始されると、まず、現在クライアント端末３に表示されているＧＵＩの状態を解析し、ユーザが実行可能な操作をリストアップする（Ｓ１１）。続いて、優先度の高い順、つまり、ユーザが行う確率が高いと思われる順に、リストアップした操作の一覧をソートする（Ｓ１２）。次に、リストが空かどうかを判定し（Ｓ１３）、空でない場合は、先頭の予測を取り出す（Ｓ１４）。取り出した予測、つまりユーザが行う可能性が高い操作をユーザが実行した場合のアプリケーション１３の実行結果を計算し、その結果をクライアント端末３に送信する（Ｓ１５）。
【００３６】
図３は、本実施形態におけるクライアント端末３上でユーザが何らかの操作を行った際のクライアント端末３が行う処理を表すフローチャート図である。
【００３７】
ユーザが何らかの操作、つまりユーザイベントを起こした場合、クライアント端末３では、まずユーザイベントが、クライアント端末３の予測結果記憶部３４に保存されている予測結果と一致するか否かを判断する（Ｓ２１）。これらが一致した場合、予測結果記憶部３４から予測結果を取り出し（Ｓ２２）、クライアント端末３の画面にＧＵＩの描画を行う（Ｓ２３）。また、ユーザの実際の操作が予測結果記憶部３４に存在しなかった場合は、ユーザイベントの内容をサーバ１に送信する（Ｓ２４）。これにより、サーバ１はアプリケーション１３を実行し、実行結果をクライアント端末３に送信する。クライアント端末３では、サーバ１から実行結果を受信し（Ｓ２５）、これに基づいてユーザインタフェース部３３の表示部の画面にＧＵＩの描画を行う（Ｓ２６）。尚、クライアント端末３においてユーザイベントに対するＧＵＩ表示を行った後に予測結果記憶部３４内の予測結果は全て消去される。
【００３８】
上記実施形態によれば、クライアント端末３に表示されているＧＵＩに対して次に行われるユーザの操作をサーバ１においてあらかじめ予測し、この予測に基づいて、サーバ１からクライアント端末３へＧＵＩ情報をあらかじめ送信し、クライアント端末に記憶しておくので、通信遅延の影響を全く受けることなく、即座にユーザインタフェース部３３の表示部にＧＵＩの画面を表示することができる。これにより、高遅廷かつ狭帯域な通信環境で接続されたサーバ１とクライアント端末３からなるシステムにおいても、迅速なレスポンスを備えるユーザインタフェースを実現することができ、ユーザが効率的に作業を行うことができる。
【００３９】
狭帯域な通信環境でサーバ１とクライアント端末３が接続されていても、ＧＵＩコンポーネント単位でその属性に対応したコマンドを定義し、ＧＵＩコンポーネントの属性値を送受信することにより、サーバ１とクライアント端末３との間でやりとりされるデータ量を削減することができ、狭帯域な環境においても、迅速なレスポンスを備えるＧＵＩを実現して、ユーザが効率的に作業を行うことができる。
【００４０】
また、ユーザの操作等により、ＧＵＩコンポーネントの属性値に変更があった場合は、変更があったＧＵＩコンポーネントの属性値のみをやりとりするので、さらにサーバ１とクライアント端末３との間でやりとりされるデータ量を削減することができる。
【００４１】
また、ユーザがクライアント端末３に表示されているＧＵＩにおけるＧＵＩコンポーネントに対して何らかの操作を行った際、サーバ１上のアプリケーション１３が、その操作をトリガとして何らかの処理を行うかどうかを判断し、行わない場合は、ユーザイベントをサーバ１に送信しないので、通信回数を削減することができ、サーバ１とクライアント端末３との間で送受信されるデータ量を削減することができる。
【００４２】
さらに、上記実施形態では、サーバ１とクライアント端末３との間の通信において、ＧＵＩコンポーネント単位でそのプロパティに対応したコマンドを定義し、ＧＵＩコンポーネントのプロパティ値を送受信することにより、サーバ１とクライアント端末３との間でやりとりされるデータ量を削減し、狭帯域な環境においても、迅速なレスポンスを備えるＧＵＩを実現し、ユーザが効率的に作業を行うことができる。
【００４３】
また、サーバ１とクライアント端末３との間の通信において、ＧＵＩコンポーネントのプロパティ値が、ユーザの操作等により変更された場合に、変更された部分のみを送信するので、通信に必要なデータ量を削減することができる。
【００４４】
さらに、クライアント端末３は、ＧＵＩコンポーネントに対するユーザのある操作に対して、アプリケーション１３にユーザイベントをトリガとして何らかの処理を行う記述がある場合のみ、ＧＵＩコンポーネントに対するユーザイベントに対応するコマンドをサーバ１へ送信するため、アプリケーション１３で処理を記述していないユーザイベントを送信しない分、通信に必要なデータ量を削減することができる。
【００４５】
尚、上記実施形態では、ＧＵＩコンポーネント単位でそのプロパティに対応したコマンドを定義したが、この様なコマンド定義を行わずにサーバ１とクライアント端末３との間の通信を行い、上記のようにクライアント端末３に表示されているＧＵＩに対して次に行われるユーザの操作をサーバ１においてあらかじめ予測し、この予測に基づいて、クライアント端末３におけるＧＵＩ表示を行うようにするだけでも迅速なレスポンスを備えるＧＵＩを実現して、ユーザが効率的に作業を行うことができることは言うまでもないことである。
【実施例１】
【００４６】
図４は、上記実施形態を具体化した一実施例のシステム構成を示す図である。本実施例では、ユーザの自宅４２にあるサーバ４３上で実行されているアプリケーション４４に対して、ユーザが携帯電話をクライアント端末４１として用いて、いつどこからでもアプリケーション４４の操作を行うものである。クライアント端末４１と自宅４２にあるサーバ４３との間は、インターネット４５と、高遅延かつ狭帯域な移動体通信網４６とを経由して接続されている。ここで、サーバ４３は上記サーバ１と同一構成をなし、クライアント端末４１は上記クライアント端末３と同一構成をなしている。
【００４７】
また、サーバ４３は、先述のユーザイベント予測機能部１２を備えており、ユーザがクライアント端末４１を利用してサーバ４３に接続している間、ユーザの次の操作を予測し、その予測結果をクライアント端末４１に送信している。
【００４８】
以下、具体的な操作例を用いて説明する。
【００４９】
図５は、ある場面においてクライアント端末３上に表示された画面５１の一例を示す図である。図に示した画面５１は、ユーザがある操作を行うかどうかの確認を促している。
【００５０】
画面５１が表示され、ユーザが画面５１の意味を認識し、自身の意思を判断し、ＯＫポタン５２あるいはキャンセルボタン５３を押すまでの間に、サーバ１上ではユーザの次の操作の予測を行う。サーバ１上のユーザイベント予測機能部１２は、まず、ユーザが実行可能な操作のリストアップを行う。画面５１の場合、ユーザが行える操作は、ＯＫボタン５２を押すかキャンセルボタン５３を押すかの２つである。次に、ユーザイベント予測機能部１２は、この２つの操作に対して優先順位を付ける。優先順位の付けかたには、前述したようにあらかじめ優先順位を決めておく等の静的な方法と、過去にユーザが行った履歴を参照する等の動的なものがある。ここでは、ＯＫボタン５２を押す確率が高いと予測したものとする。
【００５１】
優先順位の高い順にソートされた後、ユーザイベント予測機能部１２は、予測リストから最も優先順位の高い予測である「ＯＫボタンを押す」操作を取り出し、その操作をユーザが実行した場合のアプリケーション１３の実行結果を計算する。そして、その実行結果をクライアント端末３に送信する。
【００５２】
クライアント端末３は、「ＯＫボタンを押す」操作が実行された場合の実行結果をサーバ１から受信し、クライアント端末３内の予測結果記憶部３４にその予測結果を保存する。
【００５３】
１回目の予測を終えた時点で、ユーザイベントがまだ発生していない場合、サーバ１上のユーザイベント予測機能部１２は、予測リストから２番目に優先順位の高い予測である「キャンセルボタンを押す」操作を取り出し、その操作をユーザが実行した場合の、アプリケーション１３の実行結果を計算する。そして、その実行結果をクライアント端末３に送信する。
【００５４】
クライアント端末３は、「キャンセルボタンを押す」操作が実行された場合の実行結果をサーバ１から受信し、クライアント端末３内の予測結果記憶部３４にその予測結果を保存する。
【００５５】
サーバ１上のユーザイベント予測機能部１２は、予測リストに、実行結果を計算していない予測がなくなるか、或いは次のユーザイベントが発生するまで、予測を繰り返し、その実行結果をクライアント端末３に送信する。
【００５６】
以下に、ユーザが「ＯＫボタンを押す」操作を選んだ場合の動作について説明する。ユーザがＯＫボタン５２を押すと、クライアント端末３内のイベント管理機能部３２がそれを検知し、まず、クライアント端末３内の予測結果記憶部３４に保存されている予測結果を参照する。
【００５７】
「ＯＫボタンを押す」という操作に対する予測結果が存在した場合、イベント管理機能３２は、予測結果を取り出し、その結果を基にユーザインタフェース３３によって表示するためのＧＵＩを構築し、クライアント端末３の画面に表示する。このように予め予測結果記憶部３４に記憶されている予測結果を用いて表示を行うため、ユーザの操作から画面を表示するまで、通信が全く発生せず、通信遅延の影響を受けずに迅速なレスポンスを実現することができる。
【００５８】
一方、予測結果記憶部３４に「ＯＫボタンを押す」という操作に対する予測結果が存在しなかった場合、クライアント端末３は、ユーザが「ＯＫボタンを押す」操作を行ったという情報をサーバ１に送信し、これを受けたサーバ１はアプリケーション１３を実行し、その実行結果をクライアント端末３に送信する。クライアント端末３では、サーバ１から実行結果を受信し、その結果を基にユーザインタフェース３３によって表示するためのＧＵＩを構築し、クライアント端末３の画面に表示する。
【００５９】
以上の操作を、図６を用いて、詳細に説明する。
【００６０】
ユーザがある操作を行った後、サーバ１上でアプリケーション１３が実行され、その実行結果がクライアント端末３に送信される（Ｓ３１）。ただし、サーバ１とクライアント端末３との間は、高遅延な通信網２で接続されているため、クライアント端末３に実行結果が届くまで大きな通信遅延時間６１が存在する。クライアント端末３は、サーバ１から実行結果を受け取るとすぐにユーザインタフェース部３３によってＧＵＩを構築し、クライアント端末３の画面に表示する（Ｓ３２）。ユーザインタフェース部３３が構築したＧＵＩがクライアント端末３に表示された時点から、ユーザがこれを認識して判断し、何らかの操作を行うまで、つまり、ユーザの思考時間６２の間に、サーバ１上のユーザイベント予測機能部１２は、ユーザの次の操作の予測を行い（Ｓ３３）、この予測結果をクライアント端末３に送信する（Ｓ３４）。
【００６１】
クライアント端末３では、サーバ１から送信された予測結果を保存しておく。１回目の予測が終了した時点で、ユーザイベントがまだ発生していない場合は、２回目以降の予測（Ｓ３５）と予測結果の送信（Ｓ３６）を繰り返す。
【００６２】
クライアント端末３は、実際にユーザが操作を行った時点（Ｓ３７）で、ユーザが行った操作と予測した操作との照合を行い（Ｓ３８）、これらが一致した場合には、その予測結果を取り出し、ユーザインタフェース部３３によってＧＵＩを構築し、クライアント端末３の画面に表示する（Ｓ３９）。
【００６３】
このため、予測が一致した場合には、ユーザが操作を行ってから、ユーザインタフェース部３３によって構築されたＧＵＩが表示されるまでの間に、サーバ１とクライアント端末３との間で、一切の通信は行われず、そのため、通信遅延の影響を全く受けず、迅速なレスポンスが可能となる。したがって、サーバ１とクライアント端末３との間で高遅延かつ狭帯域な通信網２を用いて通信を行う環境であっても、ユーザはクライアント端末３からユーザインタフェース部３３を利用して、効率よく作業を行うことができる。
【図面の簡単な説明】
【００６４】
【図１】本発明のクライアントサーバシステムの一実施例の構成を示すブロック図である。
【図２】本発明のクライアントサーバシステムにおいて、サーバ上での予測の実施の一形態を表すフローチャート図である。
【図３】本発明のクライアントサーバシステムにおいて、クライアント端末上の実施の一形態を表すフローチャート図である。
【図４】本発明のクライアントサーバシステムの一実施例である、携帯電話から自宅のサーバを遠隔操作する図である。
【図５】本発明のクライアントサーバシステムにおける、画面の一例である。
【図６】本発明のクライアントサーバシステムの予測機能の効果を示す図である。
【符号の説明】
【００６５】
１…サーバ、２…高遅延・狭帯域な通信網、３…クライアント端末、１１…コマンド解析部、１２…ユーザイベント予測機能部、１３…アプリケーション、３１…コマンド解析部、３２…イベント管理機能部、３３…ユーザインタフェース、３４…予測結果保存部、４１…クライアント端末、４２…自宅、４３…サーバ、４４…アプリケーション、４５…インターネット、４６…移動体通信網、５１…確認画面、５２…ＯＫボタン、５３…キャンセルボタン、６１…通信遅延時間、６２…ユーザ思考時間、６３…ユーザ体感時間。
【図１】
2005228228.tif 000003
【図２】
2005228228.tif 000004
【図３】
2005228228.tif 000005
【図４】
2005228228.tif 000006
【図５】
2005228228.tif 000007
【図６】
2005228228.tif 000008