(57)【特許請求の範囲】
【請求項１】
複数のクライアント装置とネットワークを介して接続される情報処理装置において、
前記複数のクライアント装置が利用可能な機能を前記情報処理装置により実行させるアプリケーションプログラムを記憶するプログラム記憶手段と、
前記複数のクライアント装置の何れかのクライアント装置から、前記プログラム記憶手段に記憶された前記アプリケーションプログラムの起動が要求された場合、前記アプリケーションプログラムに従って実行可能な複数の機能に対応する複数のオブジェクトのうち少なくとも１つを含む操作画面を示す画面情報を、前記クライアント装置へ送信する第１送信手段と、
前記第１送信手段により送信された前記画面情報が示す前記操作画面に含まれる何れかのオブジェクトを決定するユーザ操作が前記クライアント装置により受け付けられた場合、前記ユーザ操作を示す操作情報を前記クライアント装置から受信する受信手段と、
前記アプリケーションプログラムに従って、前記受信手段により受信された前記操作情報に基づいて、決定された前記オブジェクトに対応する機能を実行する実行手段と、
前記アプリケーションプログラムに従って、前記実行手段による前記機能の実行の結果に応じた操作画面を示す画面情報を前記クライアント装置へ送信する第２送信手段と、
前記受信手段により受信された前記操作情報が示す前記ユーザ操作が行われるまでに要した所要時間を取得する時間取得手段と、
複数のクライアント装置について、ユーザ操作が行われるまでの所要時間と、前記アプリケーションプログラムに従って実行された機能を識別する機能識別情報とを対応付けて記憶する時間記憶手段に、前記時間取得手段により取得された前記所要時間と、前記実行手段により実行された前記機能を識別する機能識別情報とを対応付けて記憶させる時間記憶制御手段と、
前記複数の機能のそれぞれについて、前記機能を識別する機能識別情報に対応付けて前記時間記憶手段に記憶された所要時間の代表値を取得する代表値取得手段と、
前記複数の機能の中から、前記代表値取得手段により取得された代表値が大きい順に、所定数の機能を決定する決定手段と、
前記決定手段により決定された機能ごとに、前記機能を識別する機能識別情報と、操作可能な所定の操作要素を識別する操作要素識別情報とを対応付けて、割当情報記憶手段に記憶させる割当情報記憶制御手段と、
前記割当情報記憶手段に記憶された前記機能識別情報が示す機能と、前記機能識別情報に対応する前記操作要素識別情報が示す前記操作要素とを関連付けて示すショートカット情報を、前記第１送信手段及び前記第２送信手段それぞれにより送信される前記画面情報が示す前記操作画面に含ませる画面制御手段と、
前記受信手段により受信された前記操作情報が、前記割当情報記憶手段に記憶された操作要素識別情報が示す操作要素が操作されたことを示す場合、前記操作要素識別情報に対応する前記機能識別情報が示す機能を前記実行手段により実行させる実行制御手段と、
を備えることを特徴とする情報処理装置。
【請求項２】
前記第１送信手段は、前記割当情報記憶手段に記憶された前記機能識別情報が示す機能に対応するオブジェクトと、前記機能識別情報に対応する前記ショートカット情報との間で、外観上の所定属性が一致する前記操作画面を示す画面情報を送信することを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記第１送信手段は、前記割当情報記憶手段に記憶された前記機能識別情報が示す機能に対応するオブジェクトを特定可能な情報を含む前記ショートカット情報を含む前記操作画面を示す前記画面情報を送信することを特徴とする請求項１又は２に記載の情報処理装置。
【請求項４】
前記受信手段は、前記操作画面内に表示されるマークを移動させる第１のユーザ操作が受け付けられた場合、前記第１のユーザ操作を示す操作情報を受信し、且つ、前記操作画面における前記マークの位置にあるオブジェクトを決定する第２のユーザ操作が受け付けられた場合、前記第２のユーザ操作を示す操作情報を受信し、
前記受信手段により受信された前記操作情報に基づいて特定される前記マークの前記操作画面における位置を特定可能な位置情報と、前記ユーザ操作が行われた時刻を示す時刻情報とを対応付けて記憶する位置情報記憶手段を更に備え、
前記実行手段は、前記受信手段により前記第１のユーザ操作を示す操作情報が受信された場合、前記操作画面における前記マークの位置を変更し、
前記決定手段は、前記受信手段により前記第２のユーザ操作を示す操作情報が受信された場合、前記位置情報記憶手段に記憶された時刻情報が示す時刻が新しい順に、前記時刻情報に対応する位置情報により特定される前記マークの位置と、前記第２のユーザ操作が行われたときの前記マークの位置との差を計算し、所定距離を超える差が計算される直前に計算された差の計算に用いられた位置情報に対応する時刻情報が示す時刻から、前記第２のユーザ操作が行われた時刻までの時間を、前記所要時間に決定することを特徴とする請求項１乃至３の何れか１項に記載の情報処理装置。
【請求項５】
前記プログラム記憶手段は、前記受信手段により受信された前記操作情報を前記アプリケーションプログラムに引き渡すためのクライアント仮想化プログラムを更に記憶し、
前記割当情報記憶制御手段、前記画面制御手段及び前記実行制御手段は、前記アプリケーションプログラムに従って機能することを特徴とする請求項１乃至４の何れか１項に記載の情報処理装置。
【請求項６】
前記プログラム記憶手段は、前記受信手段により受信された前記操作情報を前記アプリケーションプログラムに引き渡すためのクライアント仮想化プログラムを更に記憶し、
前記割当情報記憶制御手段、前記画面制御手段及び前記実行制御手段は、前記クライアント仮想化プログラムに従って機能し、
前記実行制御手段は、前記受信手段により受信された前記操作情報が、前記割当情報記憶手段に記憶された操作要素識別情報が示す操作要素が操作されたことを示す場合、前記操作要素識別情報に対応する前記機能識別情報が示す機能を実行するためのユーザ操作を示す操作情報を前記アプリケーションプログラムに引き渡すことを特徴とする請求項１乃至４の何れか１項に記載の情報処理装置。
【請求項７】
複数のクライアント装置とネットワークを介して接続される情報処理装置により実行される情報処理方法において、
前記複数のクライアント装置の何れかのクライアント装置から、前記複数のクライアント装置が利用可能な機能を前記情報処理装置により実行させるアプリケーションプログラムを記憶するプログラム記憶手段に記憶された前記アプリケーションプログラムの起動が要求された場合、前記アプリケーションプログラムに従って実行可能な複数の機能に対応する複数のオブジェクトのうち少なくとも１つを含む操作画面を示す画面情報を、前記クライアント装置へ送信する第１送信ステップと、
前記第１送信ステップにより送信された前記画面情報が示す前記操作画面に含まれる何れかのオブジェクトを決定するユーザ操作が前記クライアント装置により受け付けられた場合、前記ユーザ操作を示す操作情報を前記クライアント装置から受信する受信ステップと、
前記アプリケーションプログラムに従って、前記受信ステップにより受信された前記操作情報に基づいて、決定された前記オブジェクトに対応する機能を実行する実行ステップと、
前記アプリケーションプログラムに従って、前記実行ステップによる前記機能の実行の結果に応じた操作画面を示す画面情報を前記クライアント装置へ送信する第２送信ステップと、
前記受信ステップにより受信された前記操作情報が示す前記ユーザ操作が行われるまでに要した所要時間を取得する時間取得ステップと、
複数のクライアント装置について、ユーザ操作が行われるまでの所要時間と、前記アプリケーションプログラムに従って実行された機能を識別する機能識別情報とを対応付けて記憶する時間記憶手段に、前記時間取得ステップにより取得された前記所要時間と、前記実行ステップにより実行された前記機能を識別する機能識別情報とを対応付けて記憶させる時間記憶制御ステップと、
前記複数の機能のそれぞれについて、前記機能を識別する機能識別情報に対応付けて前記時間記憶手段に記憶された所要時間の代表値を取得する代表値取得ステップと、
前記複数の機能の中から、前記代表値取得ステップにより取得された代表値が大きい順に、所定数の機能を決定する決定ステップと、
前記決定ステップにより決定された機能ごとに、前記機能を識別する機能識別情報と、操作可能な所定の操作要素を識別する操作要素識別情報とを対応付けて、割当情報記憶手段に記憶させる割当情報記憶制御ステップと、
前記割当情報記憶手段に記憶された前記機能識別情報が示す機能と、前記機能識別情報に対応する前記操作要素識別情報が示す前記操作要素とを関連付けて示すショートカット情報を、前記第１送信ステップ及び前記第２送信ステップそれぞれにより送信される前記画面情報が示す前記操作画面に含ませる画面制御ステップと、
前記受信ステップにより受信された前記操作情報が、前記割当情報記憶手段に記憶された操作要素識別情報が示す操作要素が操作されたことを示す場合、前記操作要素識別情報に対応する前記機能識別情報が示す機能を前記実行ステップにより実行させる実行制御ステップと、
を含むことを特徴とする情報処理方法。
【請求項８】
複数のクライアント装置とネットワークを介して接続される情報処理装置のコンピュータに、
前記複数のクライアント装置の何れかのクライアント装置から、前記複数のクライアント装置が利用可能な機能を前記情報処理装置により実行させるアプリケーションプログラムを記憶するプログラム記憶手段に記憶された前記アプリケーションプログラムの起動が要求された場合、前記アプリケーションプログラムに従って実行可能な複数の機能に対応する複数のオブジェクトのうち少なくとも１つを含む操作画面を示す画面情報を、前記クライアント装置へ送信する第１送信ステップと、
前記第１送信ステップにより送信された前記画面情報が示す前記操作画面に含まれる何れかのオブジェクトを決定するユーザ操作が前記クライアント装置により受け付けられた場合、前記ユーザ操作を示す操作情報を前記クライアント装置から受信する受信ステップと、
前記アプリケーションプログラムに従って、前記受信ステップにより受信された前記操作情報に基づいて、決定された前記オブジェクトに対応する機能を実行する実行ステップと、
前記アプリケーションプログラムに従って、前記実行ステップによる前記機能の実行の結果に応じた操作画面を示す画面情報を前記クライアント装置へ送信する第２送信ステップと、
前記受信ステップにより受信された前記操作情報が示す前記ユーザ操作が行われるまでに要した所要時間を取得する時間取得ステップと、
複数のクライアント装置について、ユーザ操作が行われるまでの所要時間と、前記アプリケーションプログラムに従って実行された機能を識別する機能識別情報とを対応付けて記憶する時間記憶手段に、前記時間取得ステップにより取得された前記所要時間と、前記実行ステップにより実行された前記機能を識別する機能識別情報とを対応付けて記憶させる時間記憶制御ステップと、
前記複数の機能のそれぞれについて、前記機能を識別する機能識別情報に対応付けて前記時間記憶手段に記憶された所要時間の代表値を取得する代表値取得ステップと、
前記複数の機能の中から、前記代表値取得ステップにより取得された代表値が大きい順に、所定数の機能を決定する決定ステップと、
前記決定ステップにより決定された機能ごとに、前記機能を識別する機能識別情報と、操作可能な所定の操作要素を識別する操作要素識別情報とを対応付けて、割当情報記憶手段に記憶させる割当情報記憶制御ステップと、
前記割当情報記憶手段に記憶された前記機能識別情報が示す機能と、前記機能識別情報に対応する前記操作要素識別情報が示す前記操作要素とを関連付けて示すショートカット情報を、前記第１送信ステップ及び前記第２送信ステップそれぞれにより送信される前記画面情報が示す前記操作画面に含ませる画面制御ステップと、
前記受信ステップにより受信された前記操作情報が、前記割当情報記憶手段に記憶された操作要素識別情報が示す操作要素が操作されたことを示す場合、前記操作要素識別情報に対応する前記機能識別情報が示す機能を前記実行ステップにより実行させる実行制御ステップと、
を実行させることを特徴とするプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、クライアント装置に入力されたユーザ操作をクライアント装置がネットワークを介してサーバ装置等の情報処理装置へ通知し、情報処理装置がユーザ操作に応じた処理を実行する通信システムの技術分野に関する。
【背景技術】
【０００２】
従来、ユーザが利用するアプリケーションプログラムをサーバ装置側に記憶しておき、シンクライアント等のクライアント装置に入力されたユーザ操作に応じた機能をサーバ装置が実行するシステムが知られている。クライアント装置は、入力されたユーザ操作をサーバへ通知する。サーバ装置は、アプリケーションプログラムに従って、通知されたユーザ操作に応じた機能を実行する。サーバ装置は、機能の実行結果等に基づいて、画面を示す情報をクライアント装置へ送信する。クライアント装置は、サーバ装置から受信した情報に基づいて、画面をディスプレイに表示する。
【０００３】
ユーザ操作に関連して、特許文献１には、機器の有する機能をユーザが円滑に利用することを目的とした技術が開示されている。具体的には、複写機が、操作画面上に表示された操作アイテムとは別の操作アイテムを表示するための表示変更アイテムの操作により表示された操作アイテムが利用されなかった場合、表示変更アイテムの操作を余分な操作として検出する。複写機は、目的の操作までに計数された余分な操作の回数が閾値を超える場合、その目的の操作に対応する操作アイテムに対応するアイコンをショートカットキー領域に登録する。複写機は、表示変更アイテムに対する第１の操作から同一又は別の表示変更アイテムに対する第２の操作までに要した時間を取得する。複写機は、取得した時間が閾値以下である場合、ユーザは操作方法を迷ったのではなく、第１の操作が操作ミスであると判定し、第１の操作を余分な操作から除外する。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００７−１６４６５５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
アプリケーションプログラムで実行可能な機能の中には、ユーザが操作を行うまでに時間を要する機能も存在する場合がある。例えば、ユーザが操作を迷ったり、ユーザが慎重に操作を行ったり、複数段階の操作が必要であったりする場合、ユーザ操作に時間を要する。そのため、ユーザは効率的に機能を利用することができない場合がある。特許文献１には、１つの機器に対する操作のみを分析して、余分な操作の回数が閾値を超える目的の操作を特定する点は開示されている。しかしながら、特許文献１には、複数のクライアント装置がサーバ装置と接続する環境において、複数のクライアント装置におけるユーザ操作全体を分析することは開示されていない。また、特許文献１に記載の技術は、第１の操作から第２の操作までに要した時間を取得するものの、この時間は、第１の操作が操作ミスであるか否かの判定に用いられるに過ぎない。
【０００６】
本発明は、以上の点に鑑みてなされたものであり、複数のクライアント装置におけるユーザ操作を総合的に勘案して、ユーザ操作に時間を要する機能を容易に実行することを可能とする情報処理装置、情報処理方法、及びプログラムを提供することを課題とする。
【課題を解決するための手段】
【０００７】
上記課題を解決するために、請求項１に記載の発明は、複数のクライアント装置とネットワークを介して接続される情報処理装置において、前記複数のクライアント装置が利用可能な機能を前記情報処理装置により実行させるアプリケーションプログラムを記憶するプログラム記憶手段と、前記複数のクライアント装置の何れかのクライアント装置から、前記プログラム記憶手段に記憶された前記アプリケーションプログラムの起動が要求された場合、前記アプリケーションプログラムに従って実行可能な複数の機能に対応する複数のオブジェクトのうち少なくとも１つを含む操作画面を示す画面情報を、前記クライアント装置へ送信する第１送信手段と、前記第１送信手段により送信された前記画面情報が示す前記操作画面に含まれる何れかのオブジェクトを決定するユーザ操作が前記クライアント装置により受け付けられた場合、前記ユーザ操作を示す操作情報を前記クライアント装置から受信する受信手段と、前記アプリケーションプログラムに従って、前記受信手段により受信された前記操作情報に基づいて、決定された前記オブジェクトに対応する機能を実行する実行手段と、前記アプリケーションプログラムに従って、前記実行手段による前記機能の実行の結果に応じた操作画面を示す画面情報を前記クライアント装置へ送信する第２送信手段と、前記受信手段により受信された前記操作情報が示す前記ユーザ操作が行われるまでに要した所要時間を取得する時間取得手段と、複数のクライアント装置について、ユーザ操作が行われるまでの所要時間と、前記アプリケーションプログラムに従って実行された機能を識別する機能識別情報とを対応付けて記憶する時間記憶手段に、前記時間取得手段により取得された前記所要時間と、前記実行手段により実行された前記機能を識別する機能識別情報とを対応付けて記憶させる時間記憶制御手段と、前記複数の機能のそれぞれについて、前記機能を識別する機能識別情報に対応付けて前記時間記憶手段に記憶された所要時間の代表値を取得する代表値取得手段と、前記複数の機能の中から、前記代表値取得手段により取得された代表値が大きい順に、所定数の機能を決定する決定手段と、前記決定手段により決定された機能ごとに、前記機能を識別する機能識別情報と、操作可能な所定の操作要素を識別する操作要素識別情報とを対応付けて、割当情報記憶手段に記憶させる割当情報記憶制御手段と、前記割当情報記憶手段に記憶された前記機能識別情報が示す機能と、前記機能識別情報に対応する前記操作要素識別情報が示す前記操作要素とを関連付けて示すショートカット情報を、前記第１送信手段及び前記第２送信手段それぞれにより送信される前記画面情報が示す前記操作画面に含ませる画面制御手段と、前記受信手段により受信された前記操作情報が、前記割当情報記憶手段に記憶された操作要素識別情報が示す操作要素が操作されたことを示す場合、前記操作要素識別情報に対応する前記機能識別情報が示す機能を前記実行手段により実行させる実行制御手段と、を備えることを特徴とする。
【０００８】
請求項２に記載の発明は、前記第１送信手段は、前記割当情報記憶手段に記憶された前記機能識別情報が示す機能に対応するオブジェクトと、前記機能識別情報に対応する前記ショートカット情報との間で、外観上の所定属性が一致する前記操作画面を示す画面情報を送信することを特徴とする。
【０００９】
請求項３に記載の発明は、前記第１送信手段は、前記割当情報記憶手段に記憶された前記機能識別情報が示す機能に対応するオブジェクトを特定可能な情報を含む前記ショートカット情報を含む前記操作画面を示す前記画面情報を送信することを特徴とする。
【００１０】
請求項４に記載の発明は、前記受信手段は、前記操作画面内に表示されるマークを移動させる第１のユーザ操作が受け付けられた場合、前記第１のユーザ操作を示す操作情報を受信し、且つ、前記操作画面における前記マークの位置にあるオブジェクトを決定する第２のユーザ操作が受け付けられた場合、前記第２のユーザ操作を示す操作情報を受信し、前記受信手段により受信された前記操作情報に基づいて特定される前記マークの前記操作画面における位置を特定可能な位置情報と、前記ユーザ操作が行われた時刻を示す時刻情報とを対応付けて記憶する位置情報記憶手段を更に備え、前記実行手段は、前記受信手段により前記第１のユーザ操作を示す操作情報が受信された場合、前記操作画面における前記マークの位置を変更し、前記決定手段は、前記受信手段により前記第２のユーザ操作を示す操作情報が受信された場合、前記位置情報記憶手段に記憶された時刻情報が示す時刻が新しい順に、前記時刻情報に対応する位置情報により特定される前記マークの位置と、前記第２のユーザ操作が行われたときの前記マークの位置との差を計算し、所定距離を超える差が計算される直前に計算された差の計算に用いられた位置情報に対応する時刻情報が示す時刻から、前記第２のユーザ操作が行われた時刻までの時間を、前記所要時間に決定することを特徴とする。
【００１１】
請求項５に記載の発明は、前記プログラム記憶手段は、前記受信手段により受信された前記操作情報を前記アプリケーションプログラムに引き渡すためのクライアント仮想化プログラムを更に記憶し、前記割当情報記憶制御手段、前記画面制御手段及び前記実行制御手段は、前記アプリケーションプログラムに従って機能することを特徴とする。
【００１２】
請求項６に記載の発明は、前記プログラム記憶手段は、前記受信手段により受信された前記操作情報を前記アプリケーションプログラムに引き渡すためのクライアント仮想化プログラムを更に記憶し、前記割当情報記憶制御手段、前記画面制御手段及び前記実行制御手段は、前記クライアント仮想化プログラムに従って機能し、前記実行制御手段は、前記受信手段により受信された前記操作情報が、前記割当情報記憶手段に記憶された操作要素識別情報が示す操作要素が操作されたことを示す場合、前記操作要素識別情報に対応する前記機能識別情報が示す機能を実行するためのユーザ操作を示す操作情報を前記アプリケーションプログラムに引き渡すことを特徴とする。
【００１３】
請求項７に記載の発明は、複数のクライアント装置とネットワークを介して接続される情報処理装置により実行される情報処理方法において、前記複数のクライアント装置の何れかのクライアント装置から、前記複数のクライアント装置が利用可能な機能を前記情報処理装置により実行させるアプリケーションプログラムを記憶するプログラム記憶手段に記憶された前記アプリケーションプログラムの起動が要求された場合、前記アプリケーションプログラムに従って実行可能な複数の機能に対応する複数のオブジェクトのうち少なくとも１つを含む操作画面を示す画面情報を、前記クライアント装置へ送信する第１送信ステップと、前記第１送信ステップにより送信された前記画面情報が示す前記操作画面に含まれる何れかのオブジェクトを決定するユーザ操作が前記クライアント装置により受け付けられた場合、前記ユーザ操作を示す操作情報を前記クライアント装置から受信する受信ステップと、前記アプリケーションプログラムに従って、前記受信ステップにより受信された前記操作情報に基づいて、決定された前記オブジェクトに対応する機能を実行する実行ステップと、前記アプリケーションプログラムに従って、前記実行ステップによる前記機能の実行の結果に応じた操作画面を示す画面情報を前記クライアント装置へ送信する第２送信ステップと、前記受信ステップにより受信された前記操作情報が示す前記ユーザ操作が行われるまでに要した所要時間を取得する時間取得ステップと、複数のクライアント装置について、ユーザ操作が行われるまでの所要時間と、前記アプリケーションプログラムに従って実行された機能を識別する機能識別情報とを対応付けて記憶する時間記憶手段に、前記時間取得ステップにより取得された前記所要時間と、前記実行ステップにより実行された前記機能を識別する機能識別情報とを対応付けて記憶させる時間記憶制御ステップと、前記複数の機能のそれぞれについて、前記機能を識別する機能識別情報に対応付けて前記時間記憶手段に記憶された所要時間の代表値を取得する代表値取得ステップと、前記複数の機能の中から、前記代表値取得ステップにより取得された代表値が大きい順に、所定数の機能を決定する決定ステップと、前記決定ステップにより決定された機能ごとに、前記機能を識別する機能識別情報と、操作可能な所定の操作要素を識別する操作要素識別情報とを対応付けて、割当情報記憶手段に記憶させる割当情報記憶制御ステップと、前記割当情報記憶手段に記憶された前記機能識別情報が示す機能と、前記機能識別情報に対応する前記操作要素識別情報が示す前記操作要素とを関連付けて示すショートカット情報を、前記第１送信ステップ及び前記第２送信ステップそれぞれにより送信される前記画面情報が示す前記操作画面に含ませる画面制御ステップと、前記受信ステップにより受信された前記操作情報が、前記割当情報記憶手段に記憶された操作要素識別情報が示す操作要素が操作されたことを示す場合、前記操作要素識別情報に対応する前記機能識別情報が示す機能を前記実行ステップにより実行させる実行制御ステップと、を含むことを特徴とする。
【００１４】
請求項８に記載の発明は、複数のクライアント装置とネットワークを介して接続される情報処理装置のコンピュータに、前記複数のクライアント装置の何れかのクライアント装置から、前記複数のクライアント装置が利用可能な機能を前記情報処理装置により実行させるアプリケーションプログラムを記憶するプログラム記憶手段に記憶された前記アプリケーションプログラムの起動が要求された場合、前記アプリケーションプログラムに従って実行可能な複数の機能に対応する複数のオブジェクトのうち少なくとも１つを含む操作画面を示す画面情報を、前記クライアント装置へ送信する第１送信ステップと、前記第１送信ステップにより送信された前記画面情報が示す前記操作画面に含まれる何れかのオブジェクトを決定するユーザ操作が前記クライアント装置により受け付けられた場合、前記ユーザ操作を示す操作情報を前記クライアント装置から受信する受信ステップと、前記アプリケーションプログラムに従って、前記受信ステップにより受信された前記操作情報に基づいて、決定された前記オブジェクトに対応する機能を実行する実行ステップと、前記アプリケーションプログラムに従って、前記実行ステップによる前記機能の実行の結果に応じた操作画面を示す画面情報を前記クライアント装置へ送信する第２送信ステップと、前記受信ステップにより受信された前記操作情報が示す前記ユーザ操作が行われるまでに要した所要時間を取得する時間取得ステップと、複数のクライアント装置について、ユーザ操作が行われるまでの所要時間と、前記アプリケーションプログラムに従って実行された機能を識別する機能識別情報とを対応付けて記憶する時間記憶手段に、前記時間取得ステップにより取得された前記所要時間と、前記実行ステップにより実行された前記機能を識別する機能識別情報とを対応付けて記憶させる時間記憶制御ステップと、前記複数の機能のそれぞれについて、前記機能を識別する機能識別情報に対応付けて前記時間記憶手段に記憶された所要時間の代表値を取得する代表値取得ステップと、前記複数の機能の中から、前記代表値取得ステップにより取得された代表値が大きい順に、所定数の機能を決定する決定ステップと、前記決定ステップにより決定された機能ごとに、前記機能を識別する機能識別情報と、操作可能な所定の操作要素を識別する操作要素識別情報とを対応付けて、割当情報記憶手段に記憶させる割当情報記憶制御ステップと、前記割当情報記憶手段に記憶された前記機能識別情報が示す機能と、前記機能識別情報に対応する前記操作要素識別情報が示す前記操作要素とを関連付けて示すショートカット情報を、前記第１送信ステップ及び前記第２送信ステップそれぞれにより送信される前記画面情報が示す前記操作画面に含ませる画面制御ステップと、前記受信ステップにより受信された前記操作情報が、前記割当情報記憶手段に記憶された操作要素識別情報が示す操作要素が操作されたことを示す場合、前記操作要素識別情報に対応する前記機能識別情報が示す機能を前記実行ステップにより実行させる実行制御ステップと、を実行させることを特徴とする。
【発明の効果】
【００１５】
請求項１、７又は８に記載の発明によれば、情報処理装置は、複数のクライアント装置について、操作画面内の何れかのオブジェクトを決定するユーザ操作が行われるまでに要した所要時間と、そのオブジェクトに対応してアプリケーションプログラムに従って実行された機能を識別する機能識別情報とを対応付けて記憶する。情報処理装置は、機能ごとに、所要時間の代表値を取得する。情報処理装置は、複数の機能の中から、所要時間の代表値が大きい順に所定数の機能を、所定のショートカット用の操作要素に割り当てる機能に決定する。情報処理装置は、決定した機能と割り当てられた操作要素とを関連付けて示すショートカット情報を含む操作画面をクライアント装置に表示させる。クライアント装置においてショートカット用の操作要素が操作された場合、情報処理装置は、その操作要素に割り当てられた機能を実行する。従って、ユーザ操作に時間を要する機能を、複数のクライアント装置におけるユーザ操作を総合的に勘案して決定することができる。また、所要時間の代表値が相対的に大きい機能にショートカット用の操作要素が割り当てられるので、ユーザ操作に時間を要する機能を容易に実行することが可能となる。
【００１６】
請求項２に記載の発明によれば、操作画面において、ショートカット用の操作要素のショートカット情報の外観上の所定属性と、その操作要素が割り当てられた機能に対応するオブジェクトの外観上の所定属性とが一致する。従って、ユーザは、どのオブジェクトに対応する機能に操作要素が割り当てられているかを容易に認識することができる。
【００１７】
請求項３に記載の発明によれば、ショートカット用の操作要素のショートカット情報が、その操作要素が割り当てられた機能に対応するオブジェクトを特定可能な情報を含む。従って、ユーザは、どのオブジェクトに対応する機能に操作要素が割り当てられているかを、たとえ対象のオブジェクトが現在表示されていなかったとしても容易に認識することができる。
【００１８】
請求項４に記載の発明によれば、情報処理装置は、マークを移動させる第１のユーザ操作を示す操作情報と、マークの位置にあるオブジェクトを決定する第２のユーザ操作を示す操作情報とを受信する。情報処理装置は、操作情報を受信するごとに、マークの位置を特定可能な情報とユーザ操作が行われた時刻とを記憶させる。情報処理装置は、第２のユーザ操作が行われたときのマークの位置からマークが所定距離以内に入った時刻から、第２のユーザ操作が行われた時刻までの時間を、所要時間に決定する。従って、ユーザが、オブジェクトを決定する第２のユーザ操作を行うために要した所要時間を適切に決定することができる。
【００１９】
請求項５に記載の発明によれば、アプリケーションプログラム側で、ショートカット用の操作要素の割り当て、ショートカット情報の表示の制御、操作要素の操作に対応する機能の実行制御が行われる。そのため、アプリケーションプログラム開発者は、割り当てる操作要素、ショートカット情報の表示方法等のショートカットに関する仕様を自由に決定することができる。
【００２０】
請求項６に記載の発明によれば、クライアント仮想化プログラム側で、ショートカット用の操作要素の割り当て、ショートカット情報の表示の制御、操作要素の操作に対応する機能の実行制御が行われる。そのため、アプリケーションプログラムごとに、ショートカットに関する仕様を決定する必要がない。
【図面の簡単な説明】
【００２１】
【図１】（Ａ）は、一実施形態の通信システムＳの概要構成例を示す図である。（Ｂ）は、一実施形態のサーバ装置１の概要構成例を示す図である。（Ｃ）は、一実施形態のクライアント装置２の概要構成例を示す図である。
【図２】時短キー情報を含む操作画面の一例を示す図である。
【図３】サーバ装置１におけるアプリケーション処理の一例を示す図である。
【図４】サーバ装置１における仮想クライアント処理の一例を示す図である。
【図５】サーバ装置１における決定時間算出処理の一例を示す図である。
【発明を実施するための形態】
【００２２】
以下、本発明の実施形態を図面に基づいて説明する。
【００２３】
［１．通信システムの構成］
図１（Ａ）は、本実施形態の通信システムＳの概要構成例を示す図である。図１（Ａ）に示すように、通信システムＳは、サーバ装置１、及び複数のクライアント装置２を含んで構成される。サーバ装置１は、本発明の情報処理装置の一例である。サーバ装置１、及びクライアント装置２は、それぞれネットワーク１０に接続される。ネットワーク１０は、例えば、インターネット等により構成される。
【００２４】
サーバ装置１は、クライアント装置２からの要求に応じてアプリケーションプログラムを実行する。アプリケーションプログラムの例として、近隣案内、お絵描き、カラオケ、ゲーム、情報検索、オンラインショッピング等のアプリケーションプログラムが挙げられる。サーバ装置１は、クライアント装置２から送信される操作情報に応じた処理を、アプリケーションプログラムに従って実行する。操作情報は、クライアント装置２に対してユーザにより行われたユーザ操作を示す情報である。操作情報は、少なくとも操作対象ＩＤを含む。操作対象ＩＤは、ユーザにより操作されたハードウェア要素を識別する識別情報である。操作されるハードウェア要素の例として、ボタン、キー、タッチパネル、タッチパッド、移動対象としてのマウス等が挙げられる。ハードウェア要素を移動させる操作又はハードウェア要素に接触した物体を移動させる操作が行われた場合、操作情報は、更にその移動方向及び移動距離を示すベクトル情報を含んでもよい。ベクトル情報は、本発明の位置情報の一例である。このような操作が可能なハードウェアの例として、タッチパネル、タッチパッド、マウス等のポインティングデバイスが挙げられる。
【００２５】
サーバ装置１は、実行するアプリケーションプログラムに対応する操作画面をクライアント装置２に表示させる。具体的には、サーバ装置１は、アプリケーションプログラムの実行に応じた動画であって、操作画面を示す動画を、ＵＤＰを用いたストリーミングでクライアント装置２へ送信する。この動画は、本発明の画面情報の一例である。なお、サーバ装置１は、動画を送信する代わりに、操作画面を示す静止画やウェブページ等をクライアント装置２へ送信してもよい。操作画面には１又は複数のオブジェクトが表示される。オブジェクトの例として、画面に表示されるアイコン、ボタン、メニュー項目、リスト項目、スクロールバー等が挙げられる。各オブジェクトは、アプリケーションプログラムに従って実行可能な機能に対応する。或るオブジェクトを決定するユーザ操作が行われると、サーバ装置１は、そのオブジェクトに対応する機能を、アプリケーションプログラムに従って実行する。実行可能な複数の機能が、アプリケーションプログラムにより定められている。オブジェクトを決定するためのユーザ操作を、オブジェクト決定操作という。オブジェクト決定操作は、本発明の第２のユーザ操作の一例である。オブジェクトを決定するユーザ操作以外のユーザ操作を、非オブジェクト決定操作という。操作画面には、更にカーソルが表示されてもよいし、表示されなくてもよい。カーソルは、ユーザ操作に従って操作画面内を移動するマークである。カーソルを移動させるユーザ操作は、非オブジェクト決定操作の１つである。カーソルを移動させるユーザ操作は、本発明の第１のユーザ操作の一例である。例えば画素単位でカーソルを移動させることが可能であってもよい。カーソルを移動させるユーザ操作の例として、マウス等を動かす操作、カーソルキーを押す操作等が挙げられる。カーソルキーの場合、カーソルは例えば画素単位ではなくオブジェクト単位で移動してもよい。例えば、カーソルキーが押された場合、カーソルの現在の位置から、押されたカーソルキーに対応する方向にあるオブジェクトのうち、カーソルの現在の位置に最も近いオブジェクトにカーソルが移動してもよい。ユーザは、操作画面において、カーソルの位置にあるオブジェクトを決定するオブジェクト決定操作を行うことができる。オブジェクト決定操作の例として、マウスの所定のボタンを押す操作、所定のキーを押す操作等が挙げられる。タッチパネルの場合、オブジェクト決定操作は、例えばユーザの指等で直接オブジェクトを選択する操作である。この場合、画面にカーソルは表示されなくてもよい。ユーザがカーソル又は指でオブジェクトを正確に指定することができず、それにより結果的にオブジェクトが決定さなかった場合であっても、オブジェクトを決定しようとしたユーザ操作は、オブジェクト決定操作に含まれてもよい。アプリケーションプログラムの実行中、ユーザ操作に応じて操作画面の切り替えやスクロールが可能であってもよいし、可能ではなくてもよい。
【００２６】
サーバ装置１は、アプリケーションＤＢ（DataBase）３及び決定時間ＤＢ４にアクセス可能に構成されている。例えば、サーバ装置１と、アプリケーションＤＢ３及び決定時間ＤＢ４とがＬＡＮ（Local Area Network）等のネットワークにより接続されてもよい。或いは、サーバ装置１が、アプリケーションＤＢ３及び決定時間ＤＢ４を備えてもよい。アプリケーションＤＢ３は、複数のクライアント装置２が利用可能な機能をサーバ装置１に実行させる１又は複数のアプリケーションプログラムが記憶されている。決定時間ＤＢ４には、決定時間が記憶される。決定時間は、本発明の所要時間の一例である。決定時間は、操作画面において、オブジェクト決定操作が行われるまでに要した時間である。具体的には、決定時間ＤＢ４には、複数のクライアント装置２について、アプリケーションＩＤ、機能ＩＤ及び決定時間が対応付けて記憶される。複数のクライアント装置２の何れにおいてオブジェクト決定操作が行われた場合であっても、決定時間ＤＢ４にアプリケーションＩＤ、機能ＩＤ及び決定時間が記憶される。アプリケーションＩＤは、アプリケーションプログラムを識別する識別情報である。機能ＩＤは、実行された機能を識別する識別情報である。複数のクライアント装置２の何れかにおいて、ユーザによりオブジェクト決定操作が行われて、サーバ装置１が対応する機能を実行するごとに、サーバ装置１は決定時間ＤＢ４に決定時間を記憶させる。なお、アプリケーションＤＢ３にアプリケーションプログラムが１つのみ記憶されている場合、決定時間ＤＢ４には、機能ＩＤ及び決定時間のみが記憶されればよい。
【００２７】
クライアント装置２は、ユーザによる操作を受け付ける。クライアント装置２は、受け付けたユーザ操作を示す操作情報を、ネットワーク１０を介してサーバ装置１へ送信する。クライアント装置２は、全てのユーザ操作について操作情報をサーバ装置１へ送信してもよい。或いは、クライアント装置２は、オブジェクト決定操作についてのみ、操作情報をサーバ装置１へ送信してもよい。この場合、クライアント装置２は、非オブジェクト決定操作を受け付けたとき、クライアント装置２は、非オブジェクト決定操作に応じて、表示される操作画面を更新する。また、クライアント装置２は、サーバ装置１から、アプリケーションプログラムの実行に応じた操作画面を示す動画を受信する。クライアント装置２は、受信した操作画面を示す動画をディスプレイに表示する。クライアント装置２の例として、パーソナルコンピュータ、携帯電話機、スマートフォン、カラオケ装置等が挙げられる。なお、本実施形態において、クライアント装置２は、キーボード及びマウスを少なくとも備え、又はキーボード及びマウスと接続可能である。クライアント装置２はシンクライアントであってもよい。クライアント装置２は、基本的に、ユーザからのユーザ操作の受け付け、操作情報のサーバ装置１への送信、及びサーバ装置１から送信された動画の表示を実行する。更にクライアント装置２は、非オブジェクト決定操作に応じた操作画面の更新を実行してもよい。サーバ装置１は、その他の大部分の処理を実行する。
【００２８】
［２．サーバ装置１の構成］
次に、図１（Ｂ）を参照して、サーバ装置１の構成について説明する。図１（Ｂ）は、本実施形態のサーバ装置１の概要構成例を示す図である。図１（Ｂ）に示すように、サーバ装置１は、ＣＰＵ（Central Processing Unit）１１、ＲＯＭ（Read Only Memory）１２、ＲＡＭ（Random Access Memory）１３、記憶部１４及び通信部１５等を備えて構成される。これらの構成要素は、バス１６に接続されている。ＲＡＭ１３は、本発明の割当情報記憶手段、及び位置情報記憶手段の一例である。通信部１５は、ネットワーク１０に接続される。記憶部１４は、例えばハードディスクドライブにより構成される。記憶部１４は、本発明のプログラム記憶手段、及び時間記憶手段の一例である。記憶部１４には、アプリケーションＤＢ３及び決定時間ＤＢ４の少なくとも何れか一方が記憶されていてもよい。また、記憶部１４には、ＯＳ、クライアント仮想化プログラム等が記憶されている。クライアント仮想化プログラムは、クライアント仮想化を実現するためのプログラムである。クライアント仮想化プログラムは、コンピュータとしてのＣＰＵ１１に、アプリケーションプログラムの起動、クライアント装置２から受信された操作情報のアプリケーションプログラムへの引き渡し、アプリケーションプログラムにより生成された操作画面を示す動画のエンコード及び送信を実行させる。ＣＰＵ１１は、サーバ装置１にアクセスするクライアント装置２ごとにクライアント仮想化プログラムを起動する。従って、サーバ装置１にアクセスしているクライアント装置２の数に相当する数のクライアント仮想化プログラムのプロセスがＲＡＭ１３に生成される。クライアント仮想化プログラム等は、例えばネットワーク１０等を介して他のサーバ等からダウンロードされてもよい。或いは、クライアント仮想化プログラム等は、例えば光ディスク、磁気テープ、メモリカード等の記録媒体に記録されてドライブ装置を介して記憶部１４に読み込まれてもよい。
【００２９】
［３．クライアント装置２の構成］
次に、図１（Ｃ）を参照して、クライアント装置２の構成について説明する。図１（Ｃ）は、本実施形態のクライアント装置２の概要構成例を示す図である。図１（Ｃ）に示すように、クライアント装置２は、ＣＰＵ２１、ＲＯＭ２２、ＲＡＭ２３、記憶部２４、通信部２５、入力部２６、及び表示部２７等を備えて構成される。これらの構成要素は、バス２８に接続されている。通信部２５は、ネットワーク１０に接続される。入力部２６は、ユーザ操作を入力するための入力デバイスである。入力部２６は、例えばボタン、キー、タッチパネル、タッチパッド、マウス、キーボード等の少なくとも１つにより構成されてもよい。クライアント装置２は入力部２６と接続可能であってもよい。この場合、クライアント装置２自体は入力部２６を備えていなくてもよい。表示部２７は、例えば液晶パネル、有機ＥＬパネル等により構成されるディスプレイである。記憶部２４は、例えばフラッシュメモリ又はハードディスクドライブ等により構成される。記憶部２４には、ＯＳ、及びクライアントプログラム等が記憶されている。クライアントプログラムは、コンピュータとしてのＣＰＵ２１に、操作画面の表示、ユーザの操作に応じた処理の実行、サーバ装置１への操作情報の送信等の処理を実行させるプログラムである。クライアントプログラム等は、例えばネットワーク１０等を介してサーバ装置１等のサーバ装置からダウンロードされてもよい。或いは、クライアントプログラム等は、例えば光ディスク、磁気テープ、メモリカード等の記録媒体に記録されてドライブ装置を介して記憶部２４に読み込まれてもよい。或いは、クライアントプログラム等は、クライアント装置２に予めインストールされていてもよい。
【００３０】
［４．機能に対する時短キーの割り当て］
アプリケーションプログラムに従って実行可能な機能に対応付けられたオブジェクトを決定するためのユーザ操作を行うために、ユーザは時間を要する場合がある。例えば、ユーザは、操作画面内の複数のオブジェクトの中の何れが目的のオブジェクトであるかを迷う場合がある。或いは、ユーザは、何れのオブジェクトを選択してよいか迷う場合がある。或いは、複数のオブジェクトが密集しているために、目的とするオブジェクト以外のオブジェクトを操作してしまわないように、ユーザは慎重に操作を行う場合がある。或いは、目的のオブジェクトが比較的小さいため、そのオブジェクトを正確に選択するためにユーザは時間を要する場合がある。或いは、目的とするオブジェクトを決定するためのユーザ操作を行うまでに、複数段階の操作が必要であり、これにより時間を要する場合がある。例えば、操作画面を切り替えたり、操作画面をスクロールしたり、メニューを表示させたりする操作が必要な場合がある。そこで、サーバ装置１は、ユーザ操作に時間を要する機能に時短キーを割り当てる。時短キーは、本発明の所定の操作要素の一例である。時短キーは予め定められたキーである。時短キーは、ハードウェアキーであってもよいし、ソフトウェア的なキーであってもよい。ハードウェアとしての時短キーは、例えばハードウェアキーボード上の所定のキー、ボタン等であってもよい。ソフトウェア的な時短キーは、例えば操作画面上に表示される所定のキー、ボタン等であってもよい。サーバ装置１は、時短キーを示す時短キー情報を含む操作画面をクライアント装置２に表示させる。時短キー情報は、本発明のショートカット情報の一例である。サーバ装置は１は、ユーザにより時短キーの操作が行われた場合、時短キーに割り当てられた機能を実行する。ユーザが時短キーを操作することで、ユーザ操作に時間を要する機能を容易に実行することが可能となる。また、ポインティングデバイス等で操作画面内のカーソルを目的のオブジェクトまで移動させる非オブジェクト決定操作を行った後で、目的のオブジェクトに対するオブジェクト決定操作を行うようにデザインされているアプリケーションがある。この場合、ユーザがカーソルを移動させるユーザ操作を行うたびにクライアント装置２は操作情報をサーバ装置１へ送信する。また、時短キーが割り当てられた機能を実行するために、ユーザは、カーソルを移動させてオブジェクトを決定する操作を行う代わりに、時短キーを直接押せばよい。従って、ユーザがカーソルを移動させる操作を行わない分、クライアント装置２は操作情報を送信しなくてもよい。そのため、クライアント装置２とサーバ装置１間の通信回数、及びサーバ装置１の処理負荷を低減させることができる。
【００３１】
具体的には、サーバ装置１は、クライアント装置２から受信した操作情報に応じてアプリケーションプログラムに従って何れかの機能を実行したとき、その機能に対応付けられたオブジェクトを決定するためのユーザ操作が行われるまでに要した決定時間を取得する。サーバ装置１は、決定時間と、実行された機能の機能ＩＤとアプリケーションＩＤとを対応付けて決定時間ＤＢに記憶させる。決定時間の算出方法の例として、サーバ装置１は、直前の機能が実行された時刻から今回の機能が実行された時刻までの時間を、決定時間として算出することが挙げられる。
【００３２】
或いは、サーバ装置１は、オブジェクト決定操作が行われたときのカーソルの位置から所定距離以内の範囲にカーソルが入った時刻から、オブジェクト決定操作が行われた時刻までの時間を決定時間として算出してもよい。目的のオブジェクトにカーソルが或る程度近付いてから、ユーザは操作を迷う場合がある。また例えば、複数のオブジェクトが密集していたり、オブジェクトが小さかったりする場合、目的のオブジェクトにカーソルが或る程度近付いてから、目的のオブジェクトを決定するまでに時間を要する場合がある。すなわち、目的のオブジェクトにカーソルが或る程度近付く前よりも、或る程度近付いてからそのオブジェクトにユーザがカーソルを移動させるまでの間の方が、カーソルの移動に時間を要する場合がある。このような場合に、サーバ装置１は、オブジェクト決定操作が行われるまでにユーザが要した時間を適切に算出することができる。具体的には、クライアント装置２は、ユーザ操作が行われた時刻を取得してもよい。クライアント装置２は、取得した時刻を操作情報に付加して、操作情報をサーバ装置１へ送信する。或いは、サーバ装置１は、クライアント装置２から非オブジェクト決定操作を示す操作情報を受信した時刻を、ユーザ操作が行われた時刻として取得してもよい。サーバ装置１は、クライアント装置２から非オブジェクト決定操作を示す操作情報を受信したとき、操作情報と時刻を対応付けてＲＡＭ１３に記憶させる。サーバ装置１は、オブジェクト決定操作を示す操作情報を受信したとき、又はこの操作情報を受信することにより何らかの機能が実行されたとき、決定時間算出処理を実行する。決定時間算出処理において、サーバ装置１は、ＲＡＭ１３に記憶された時刻が新しい順に、時刻に対応する操作情報に含まれるベクトル情報に基づいて特定されるカーソルの位置と、オブジェクト決定操作が行われた時のカーソルの位置との差を計算する。サーバ装置１は、所定距離を超える差が計算された場合、所定距離を超える差が計算される直前に計算された差の計算に用いられた操作情報に対応する時刻を特定する。サーバ装置１は、特定した時刻からオブジェクト決定操作が行われた時刻までの時間を、決定時間に決定する。
【００３３】
なお、クライアント装置２が決定時間を算出し、サーバ装置１は、クライアント装置２から決定時間を受信してもよい。例えば、クライアント装置２は、オブジェクトを決定するためのユーザ操作を受け付けたとき、決定時間を算出する。クライアント装置２は、例えば操作情報とともに、算出した決定時間をサーバ装置１へ送信する。サーバ装置１は、受信した操作情報に応じて機能を実行したとき、その機能の機能ＩＤと決定時間とを決定時間ＤＢ４に記憶させる。ユーザはオブジェクトを決定するためのユーザ操作を行ったが、実際にはオブジェクトを決定することができない場合がある。この場合、サーバ装置１は、受信した操作情報に応じては何らの機能も実行しない。従って、サーバ装置１は、決定時間を決定時間ＤＢ４に記憶させない。
【００３４】
サーバ装置１は、クライアント装置２からの要求に応じてアプリケーションプログラムを起動するときこのアプリケーションプログラムに従って実行可能な複数の機能のそれぞれについて、決定時間の代表値を算出する。代表値は、例えば平均値、中央値、最頻値、最小値等であってもよい。具体的には、サーバ装置１は、起動するアプリケーションプログラムのアプリケーションＩＤに対応する決定時間を、機能ＩＤ別に決定時間ＤＢ４から取得する。サーバ装置１は、機能ＩＤごとに、決定時間の代表値を決定する。サーバ装置１は、複数の機能の中から、決定時間の代表値が大きい順に所定数の機能を、時短キーを割り当てる機能に決定する。本実施形態において、サーバ装置１は、３個の機能を決定する。しかしながら、サーバ装置１は、１又は２個の機能を決定してもよいし、４個以上の機能を決定してもよい。サーバ装置１は、決定時間ＤＢ４に記憶されている決定時間の数が所定値未満である機能は、時短キーを割り当てる機能から除外してもよい。例えば、ユーザがクライアント装置２から離れていたり、操作画面を見ていなかったりすることにより、実際にユーザ操作に要した時間よりも大幅に決定時間が長くなる場合がある。決定時間ＤＢ４に記憶されている決定時間の数が所定値以上である機能の中から、時短キーを割り当てる機能を決定することにより、代表値に対するこのような決定時間の影響を低減させることができる。従って、時短キーを割り当てる機能を適切に決定することができる。
【００３５】
時短キーを割り当てる機能を決定すると、サーバ装置１は、決定した機能ごとに、その機能の機能ＩＤと、時短キーを識別する操作対象ＩＤとを対応付けてＲＡＭ１３に記憶させる。
【００３６】
サーバ装置１は、ＲＡＭ１３に記憶された機能ＩＤが示す機能と、この機能ＩＤに対応する操作対象ＩＤが示す時短キーとを関連付けて示す時短キー情報を、アプリケーションプログラムに従って生成された操作画面に含ませる。そして、サーバ装置１は、時短キー情報を含む操作画面を示す動画を、クライアント仮想化プログラムに従ってクライアント装置２へ送信する。  
【００３７】
図２は、時短キー情報を含む操作画面の一例を示す図である。図２は、近隣案内のアプリケーションプログラムの操作画面の例を示す。近隣案内のアプリケーションプログラムは、地図上に建造物や場所などのスポットを表示し、選択されたスポットの案内情報を表示するためのプログラムである。近隣案内のアプリケーションプログラムにおいては、例えば操作画面において地図のスクロールが可能であってもよい。図２に示すように、操作画面には、オブジェクトＯＢ１〜ＯＢ１３が表示される。オブジェクトＯＢ１〜ＯＢ１２は、スポットを示すアイコンである。オブジェクトＯＢ１３は、アプリケーションプログラムを終了させるためのボタンである。また、操作画面にはカーソルＣＳが表示される。また、操作画面には、時短キー情報ＳＫ１〜ＳＫ３が表示される。時短キー情報ＳＫ１は、ファンクションキー１を示す。ファンクションキー１は、オブジェクトＯＢ５が示すスポットの案内情報を表示する機能に割り当てられている。時短キー情報ＳＫ１は、文字「Ｆ１」を含む。時短キー情報ＳＫ２は、ファンクションキー２を示す。ファンクションキー２は、オブジェクトＯＢ６が示す工場の案内情報を表示する機能に割り当てられている。時短キー情報ＳＫ２は、文字「Ｆ２」を含む。時短キー情報ＳＫ３は、ファンクションキー３を示す。ファンクションキー３は、オブジェクトＯＢ１１が示す郵便局の案内情報を表示する機能に割り当てられている。時短キー情報ＳＫ３は、文字「Ｆ３」を含む。ユーザは、キーボード上の、ファンクションキー１〜３の何れかを押すことで、対応する機能をサーバ装置１に実行させることができる。或いは、ユーザは、カーソルＣＳを移動させて時短キー情報ＳＫ１〜ＳＫ３の何れかを決定する操作を行うことで、対応する機能をサーバ装置１に実行させることができるように、アプリケーションプログラムのユーザインターフェースが設計されてもよい。
【００３８】
サーバ装置１は、操作画面において、時短キーが割り当てられた機能に対応するオブジェクトと、その時短キーの時短キー情報との間で、外観上の所定属性を一致させてもよい。オブジェクトと時短キー情報との間で一致させる属性は、例えばオブジェクトと時短キー情報の色、模様、形状等であってもよい。オブジェクトの外観上の属性は、オブジェクト自身の外観上の属性であってもよい。或いは、オブジェクト上又はオブジェクトの近隣に、時短キーが割り当てられたことを示す画像、マーク等が表示されてもよい。この場合、オブジェクトの外観上の属性は、この画像、マーク等の属性であってもよい。これにより、時短キーとオブジェクトとが関連付けて示される。また、ユーザは、どのオブジェクトに対応する機能に時短キーが割り当てられているかを容易に認識することができる。図２において、オブジェクトＯＢ５は枠ＦＲ１で囲まれている。時短キー情報ＳＫ１の枠の模様と枠ＦＲ１の模様とが一致する。オブジェクトＯＢ６は枠ＦＲ２で囲まれている。時短キー情報ＳＫ２の枠の模様と枠ＦＲ２の模様とが一致する。オブジェクトＯＢ１１は枠ＦＲ３で囲まれている。時短キー情報ＳＫ３の枠の模様と枠ＦＲ３の模様とが一致する。時短キー情報ＳＫ１〜ＳＫ３の間では枠の模様は異なる。
【００３９】
外観上の所定属性を一致させる代わりに、又は外観上の所定属性を一致させることに加えて、サーバ装置１は、時短キー情報に、時短キーが割り当てられた機能に対応するオブジェクトを特定可能な情報を含めてもよい。オブジェクトを特定可能な情報として、例えばオブジェクトを識別する情報又はそのオブジェクトが示す対象を識別する情報が挙げられる。識別する情報として、オブジェクト又は対象の名称が挙げられる。近隣案内のアプリケーションプログラムの場合、オブジェクトを特定可能な情報は、例えばオブジェクトが示すスポットの緯度及び経度を示す情報であってもよい。これにより、時短キーとオブジェクトとが関連付けて示される。また、ユーザは、どのオブジェクトに対応する機能に時短キーが割り当てられているかを、たとえ対応するオブジェクトが現在表示されていなかったとしても容易に認識することができる。
【００４０】
サーバ装置１は、クライアント装置２から受信された操作情報が、ＲＡＭ１３に記憶された操作対象ＩＤが示す時短キーが操作されたことを示す場合、この操作対象ＩＤに対応する機能ＩＤが示す機能を、アプリケーションプログラムにより実行させる。
【００４１】
サーバ装置１がアプリケーションプログラムに従って、機能に対する時短キーの割り当て、時短キー情報の表示制御、及び時短キーの操作に応じた機能の実行制御を行うように、アプリケーションプログラムが作成されてもよい。これにより、アプリケーションプログラム開発者は、時短キーとして割り当てるキー、時短キー情報の表示方法等の時短キーに関する仕様を自由に決定することができる。この場合、アプリケーションプログラムに従って、サーバ装置１は、時短キー情報を含む操作画面の映像を生成する。また、クライアント装置２からサーバ装置１が受信する操作情報は、クライアント仮想化プログラムからアプリケーションプログラムにそのまま引き渡される。時短キーがハードウェアキーである場合、アプリケーションプログラムに従って、サーバ装置１は、操作情報に含まれる操作対象ＩＤとＲＡＭ１３に記憶された操作対象ＩＤとを比較して、時短キーが押されたか否かを判定する。サーバ装置１は、操作情報に含まれる操作対象ＩＤに一致する操作対象ＩＤがＲＡＭ１３に記憶されている場合、この操作対象ＩＤに対応する機能ＩＤを、実行する機能の機能ＩＤとしてＲＡＭ１３から取得する。時短キーがソフトウェア的なキーである場合、アプリケーションプログラムに従って、サーバ装置１は、操作情報が、オブジェクト決定操作を示す場合、操作画面において現在のカーソルの位置にあるオブジェクトを特定する。サーバ装置１は、特定したオブジェクトが時短キー情報である場合、この時短キー情報の操作対象ＩＤに対応する機能ＩＤを、実行する機能の機能ＩＤとしてＲＡＭ１３から取得する。
【００４２】
或いは、サーバ装置１がクライアント仮想化プログラムに従って、機能に対する時短キーの割り当て、時短キー情報の表示制御、及び時短キーの操作に応じた機能の実行制御を行うように、アプリケーションプログラムが作成されていてもよい。これにより、アプリケーションプログラムごとに、時短キーに関する仕様を決定する必要がない。この場合、サーバ装置１は、アプリケーションプログラムに従って生成された操作画面の映像に、時短キー情報の映像を重畳させる合成処理を、クライアント仮想化プログラムに従って行う。また、クライアント装置２から受信された操作情報が、時短キーが操作されたことを示す場合、クライアント仮想化プログラムに従って、サーバ装置１は、この時短キーの操作対象ＩＤに対応する機能ＩＤが示す機能を実行するためのユーザ操作を示す操作情報を、アプリケーションプログラムに引き渡す。このとき、サーバ装置１は、その機能を実行するために複数段階のユーザ操作が必要である場合、複数の操作情報を取得又は生成し、ユーザ操作の順序に従って複数の操作情報をアプリケーションプログラムに引き渡す。サーバ装置１の記憶部１４には、アプリケーションプログラムと機能ＩＤとの組み合わせごとに、アプリケーションＩＤ、機能ＩＤ、１又は複数の操作情報、及び操作情報が示すユーザ操作の順序とが予め対応付けられて記憶されてもよい。サーバ装置１は、クライアント装置２から受信された操作情報に基づいて時短キーが操作されたと判定した場合、その時短キーの操作対象ＩＤに対応する機能ＩＤを取得する。サーバ装置１は、取得した機能ＩＤに対応付けて予め記憶部１４に記憶されている１又は複数の操作情報を取得する。時短キーが操作されたか否かの判定方法は、アプリケーションプログラムに従って判定を行う場合の方法と同様であってもよい。
【００４３】
［５．通信システムＳの動作］
次に、図３乃至図５を参照して、本実施形態の通信システムＳの動作について説明する。以下に説明する例は、ユーザは、マウス等のポインティングデバイスを用いてカーソルを動かして、マウスボタン等のハードウェア要素を押すことにより、オブジェクトを決定する場合の処理例である。また、以下に説明する例は、ハードウェアキーボード上の所定のキーが時短キーとして割り当てられる場合の処理例である。また、以下に説明する例は、アプリケーションプログラムに従って、機能に対する時短キーの割り当て、時短キー情報の表示制御、及び時短キーの操作に応じた機能の実行制御が行われる場合の処理例である。
【００４４】
図３は、サーバ装置１におけるアプリケーション処理の一例を示す図である。例えば、ユーザの操作に基づいてクライアント装置２は、アプリケーション起動要求をサーバ装置１へ送信する。アプリケーション起動要求は、アプリケーションプログラムの起動の要求を示す。アプリケーション起動要求は、起動されるアプリケーションプログラムのアプリケーションＩＤを含んでもよい。サーバ装置１のＣＰＵ１１は、アプリケーション起動要求に含まれるアプリケーションＩＤに対応するアプリケーションプログラムをアプリケーションＤＢ３から読み出す。ＣＰＵ１１は、読み出したアプリケーションプログラムのプロセスをＲＡＭ１３に生成して、アプリケーションプログラムを起動する。ＣＰＵ１１は、起動されたアプリケーションプログラムに従って、アプリケーション処理を実行する。
【００４５】
図３に示すように、ＣＰＵ１１は、アプリケーションプログラムを起動したクライアント仮想化プログラムへ、機能ＩＤ要求を送信する（ステップＳ１）。機能ＩＤ要求は、時短キーが割り当てられた機能の機能ＩＤの要求を示すメッセージである。
【００４６】
次いで、ＣＰＵ１１は、機能ＩＤ要求の送信に応じてクライアント仮想化プログラムから送信されてきた所定数の機能ＩＤを受信する。ＣＰＵ１１は、受信した機能ＩＤごとに、機能ＩＤと、アプリケーションプログラムで予め定義された時短キーの対象識別ＩＤとを対応付けてＲＡＭ１３に記憶させる。これにより、ＣＰＵ１１は、時短キーを機能に割り当てる。また、ＣＰＵ１１は、時短キー情報を含む操作画面の映像を生成する（ステップＳ２）。例えば、ＣＰＵ１１は、割り当てた時短キーの名称を含み、且つこの時短キーに対応した色又は模様を有する時短キー情報を生成する。また、ＣＰＵ１１は、操作画面の映像において、時短キーが割り当てられた機能に対応するオブジェクトの色又は模様を、この時短キーに応じた色又は模様に変更する。或いは、ＣＰＵ１１は、時短キーが割り当てられた機能に対応するオブジェクトの周囲に、時短キーに応じた色又は模様を有する枠を描画する。ＣＰＵ１１は、操作画面の映像と時短キー情報とを合成する。また、ＣＰＵ１１は、カーソルの位置を初期設定し、操作画面の映像に、決定した位置でカーソルの映像を合成する。ＣＰＵ１１は、生成した操作画面の映像をクライアント仮想化プログラムへ引き渡す。クライアント仮想化プログラムに従って、ＣＰＵ１１は、引き渡された映像をエンコードして、動画データとしてクライアント装置２へ送信する。なお、ＲＡＭ１３に記憶された機能ＩＤ及び対象識別ＩＤは、他のプロセスからはアクセスすることができないようになっている。
【００４７】
次いで、ＣＰＵ１１は、アプリケーション起動要求を送信してきたクライアント装置２から操作情報が送信されてきた場合、クライアント仮想化プログラムから操作情報を受信する（ステップＳ３）。次いで、ＣＰＵ１１は、時短キーが押されたか否かを判定する（ステップＳ４）。例えば、ＣＰＵ１１は、操作情報に含まれる操作対象ＩＤと一致する操作対象ＩＤがＲＡＭ１３に記憶されているか否かを判定する。操作情報に含まれる操作対象ＩＤと一致する操作対象ＩＤがＲＡＭ１３に記憶されている場合、ＣＰＵ１１は、時短キーが押されたと判定する（ステップＳ４：ＹＥＳ）。この場合、ＣＰＵ１１は、ステップＳ７に進む。一方、操作情報に含まれる操作対象ＩＤと一致する操作対象ＩＤがＲＡＭ１３に記憶されていない場合、ＣＰＵ１１は、時短キーが押されていないと判定する（ステップＳ４：ＮＯ）。この場合、ＣＰＵ１１は、ステップＳ５に進む。
【００４８】
ステップＳ５において、ＣＰＵ１１は、操作情報に対応する処理を実行する。例えば、ＣＰＵ１１は、操作情報に含まれる操作対象ＩＤがマウス等の移動を示す場合、操作対象ＩＤに含まれるベクトル情報に基づいて、操作画面におけるカーソルの位置を変更する。そして、ＣＰＵ１１は、変更したカーソルの位置に基づいて、カーソル及び時短キー情報を含む操作画面の映像を生成する。操作画面の映像の生成方法は、ステップＳ２と基本的に同様である。ＣＰＵ１１は、クライアント仮想化プログラムに従って、生成された映像をエンコードして、動画データとしてクライアント装置２へ送信する。
【００４９】
次いで、ＣＰＵ１１は、アプリケーションプログラムで定義されている複数の機能のうちの何れかの機能を実行するか否かを判定する（ステップＳ６）。例えば、ＣＰＵ１１は、操作情報に含まれる操作対象ＩＤがマウスボタン等を示さない場合、機能を実行しないと判定する。一方、ＣＰＵ１１は、操作情報に含まれる操作対象ＩＤがマウスボタン等を示す場合、操作画面においてカーソルの現在位置に、機能に対応付けられたオブジェクトが存在するか否かを判定する。カーソルの現在位置に、機能に対応付けられたオブジェクトが存在しない場合、ＣＰＵ１１は、機能を実行しないと判定する。ＣＰＵ１１は、機能を実行しないと判定した場合（ステップＳ６：ＮＯ）、ステップＳ３に進む。一方、カーソルの現在位置に、機能に対応付けられたオブジェクトが存在する場合、ＣＰＵ１１は、機能を実行すると判定する（ステップＳ６：ＹＥＳ）。この場合、ＣＰＵ１１は、ステップＳ７に進む。
【００５０】
ステップＳ７において、ＣＰＵ１１は、機能を実行する。ステップＳ４において時短キーが押されたと判定された場合、ＣＰＵ１１は、操作情報に含まれる操作対象ＩＤと一致する操作対象ＩＤに対応する機能ＩＤをＲＡＭ１３から取得する。ステップＳ６において機能を実行すると判定された場合、ＣＰＵ１１は、カーソルの現在位置にあるオブジェクトに対応する機能の機能ＩＤを取得する。ＣＰＵ１１は、取得した機能ＩＤに対応する機能を実行する。例えば、近隣案内の場合、ＣＰＵ１１は、オブジェクトに対応する案内情報の映像を生成する。ＣＰＵ１１は、生成した案内情報を含む操作画面の映像を生成する。操作画面の映像の生成方法は、基本的にステップＳ２と同様である。ＣＰＵ１１は、クライアント仮想化プログラムに従って、生成された映像をエンコードして、動画データとしてクライアント装置２へ送信する。機能を実行すると、ＣＰＵ１１は、取得した機能ＩＤをクライアント仮想化プログラムへ送信する（ステップＳ８）。次いで、ＣＰＵ１１は、ステップＳ３に進む。
【００５１】
図４は、サーバ装置１における仮想クライアント処理の一例を示す図である。クライアント装置２からアプリケーション起動要求を受信したとき、ＣＰＵ１１は、クライアント仮想化プログラムのプロセスをＲＡＭ１３に生成して、クライアント仮想化プログラムを起動する。ＣＰＵ１１は、起動されたクライアント仮想化プログラムに従って仮想クライアント処理を実行する。
【００５２】
図４に示すように、ＣＰＵ１１は、初期化処理を実行する（ステップＳ１１）。例えば、ＣＰＵ１１は、アプリケーション起動要求に含まれるアプリケーションＩＤが示すアプリケーションプログラムを起動する。
【００５３】
次いで、ＣＰＵ１１は、アプリケーション起動要求を送信してきたクライアント装置２から、操作情報を受信したか否かを判定する（ステップＳ１２）。このとき、ＣＰＵ１１は、操作情報を受信したと判定した場合には（ステップＳ１２：ＹＥＳ）、ステップＳ１３に進む。一方、ＣＰＵ１１は、操作情報を受信していないと判定した場合には（ステップＳ１２：ＮＯ）、ステップＳ１５に進む。
【００５４】
ステップＳ１３において、ＣＰＵ１１は、受信した操作情報と、操作情報に付加された時刻とを対応付けてＲＡＭ１３に記憶させる。なお、ＲＡＭ１３に記憶された操作情報及び時刻は、他のプロセスからはアクセスすることができないようになっている。次いで、ＣＰＵ１１は、起動したアプリケーションプログラムへ、クライアント装置２から受信した操作情報を送信する（ステップＳ１４）。次いで、ＣＰＵ１１は、ステップＳ１２に進む。
【００５５】
ステップＳ１５において、ＣＰＵ１１は、起動したアプリケーションプログラムから機能ＩＤを受信したか否かを判定する。このとき、ＣＰＵ１１は、機能ＩＤを受信したと判定した場合には（ステップＳ１５：ＹＥＳ）、ステップＳ１６に進む。一方、ＣＰＵ１１は、機能ＩＤを受信していないと判定した場合には（ステップＳ１５：ＮＯ）、ステップＳ１８に進む。
【００５６】
ステップＳ１６において、ＣＰＵ１１は、決定時間算出処理を実行する。図５は、サーバ装置１における決定時間算出処理の一例を示す図である。図５に示すように、ＣＰＵ１１は、順序番号ｉを１に設定する（ステップＳ２１）。次いで、ＣＰＵ１１は、ＲＡＭ１３に記憶された時刻のうち、ｉ番目に新しい時刻を特定する。ＣＰＵ１１は、カーソルの現在位置から、ｉ番目に新しい時刻におけるカーソルの位置までの距離を画素数で算出する（ステップＳ２２）。例えば、ＣＰＵ１１は、１番目に新しい時刻に対応する操作情報からｉ番目に新しい時刻に対応する操作情報までの各操作情報からベクトル情報を取得する。ＣＰＵ１１は、取得したベクトル情報に基づいて、現在のカーソルの位置を原点として、ｉ番目に新しい時刻におけるカーソルの位置の座標を算出する。ＣＰＵ１１は、原点からｉ番目に新しい時刻におけるカーソルの位置の座標までの距離を計算する。
【００５７】
次いで、ＣＰＵ１１は、算出した距離が１００画素を超えるか否かを判定する（ステップＳ２３）。このとき、ＣＰＵ１１は、算出した距離が１００画素を超えないと判定した場合には（ステップＳ２３：ＮＯ）、ステップＳ２４に進む。一方、ＣＰＵ１１は、算出した距離が１００画素を超えると判定した場合には（ステップＳ２３：ＹＥＳ）、ステップＳ２６に進む。
【００５８】
ステップＳ２４において、ＣＰＵ１１は、計算した距離をＲＡＭ１３に記憶させる。次いで、ＣＰＵ１１は、順序番号ｉを１増加させて（ステップＳ２５）、ステップＳ２２に進む。
【００５９】
ステップＳ２６において、ＣＰＵ１１は、は、現在時刻から、ステップＳ２４において最後に記憶された時刻を減算することにより、決定時間を算出する。そして、ＣＰＵ１１は、決定時間算出処理を終了させる。
【００６０】
決定時間算出処理を終えると、ＣＰＵ１１は、図４に示すように、算出された決定時間、アプリケーション起動要求に含まれるアプリケーションＩＤ、及びアプリケーションプログラムから受信した機能ＩＤを対応付けて決定時間データベース４に記憶させる（ステップＳ１７）。次いで、ＣＰＵ１１は、ステップＳ１２に進む。
【００６１】
ステップＳ１８において、ＣＰＵ１１は、起動したアプリケーションプログラムから機能ＩＤ要求を受信したか否かを判定する。このとき、ＣＰＵ１１は、機能ＩＤ要求を受信したと判定した場合には（ステップＳ１８：ＹＥＳ）、ステップＳ１９に進む。一方、ＣＰＵ１１は、機能ＩＤ要求を受信していないと判定した場合には（ステップＳ１８：ＮＯ）、ステップＳ１２に進む。
【００６２】
ステップＳ１９において、ＣＰＵ１１は、決定時間データベースから、アプリケーション起動要求に含まれるアプリケーションＩＤに対応する機能ＩＤ及び決定時間の組み合わせを全て取得する。ＣＰＵ１１は、取得した機能ＩＤ及び決定時間の組み合わせを、機能ＩＤでグループ分けする。次いで、ＣＰＵ１１は、グループごとに、グループに含まれる決定時間の代表値を計算する。例えば、ＣＰＵ１１は、決定時間の平均値を計算してもよい。ＣＰＵ１１は、決定時間の代表値が大きい順に所定数の機能ＩＤを決定する。例えば、ＣＰＵ１１は、代表値が１番目に大きい機能ＩＤから３番目に大きい機能ＩＤまでを決定してもよい。ＣＰＵ１１は、決定した機能ＩＤを、アプリケーションプログラムへ送信して、ステップＳ１２に進む。
【００６３】
以上説明したように、上記実施形態によれば、サーバ装置１が、アプリケーションプログラムの起動が要求された場合、アプリケーションプログラムに従って実行可能な複数の機能に対応する複数のオブジェクトのうち少なくとも１つを含む操作画面を示す動画データを、クライアント装置２へ送信する。また、サーバ装置１が、操作画面に含まれる何れかのオブジェクトを決定するユーザ操作がクライアント装置２により受け付けられた場合、操作情報をクライアント装置２から受信する。また、サーバ装置１が、受信された操作情報に基づいて、決定されたオブジェクトに対応する機能を実行する。また、サーバ装置１が、機能の実行の結果に応じた操作画面を示す動画データをクライアント装置２へ送信する。また、サーバ装置１が、操作情報が示すユーザ操作が行われるまでに要した決定時間を取得する。また、サーバ装置１が、取得された決定時間と、実行された機能の機能ＩＤとを対応付けて記憶させる。また、サーバ装置１が、複数の機能のそれぞれについて、決定時間の代表値を取得する。また、サーバ装置１が、複数の機能の中から代表値が大きい順に所定数の機能を決定する。また、サーバ装置１が、決定された機能ごとに、機能ＩＤと時短キーの対象識別ＩＤとを対応付けて、ＲＡＭ１３に記憶させる。また、サーバ装置１が、記憶された機能ＩＤが示す機能と、対応する対象識別ＩＤが示す時短キーとを関連付けて示す時短キー情報を操作画面に含ませる。また、サーバ装置１が、受信された操作情報が、ＲＡＭ１３に記憶された対象識別ＩＤが示す時短キーが操作されたことを示す場合、対象識別ＩＤに対応する機能ＩＤが示す機能を実行させる。従って、ユーザ操作に時間を要する機能を、複数のクライアント装置におけるユーザ操作を総合的に勘案して決定することができる。また、決定時間の代表値が相対的に大きい機能に時短キーが割り当てられるので、ユーザ操作に時間を要する機能を容易に実行することが可能となる。
【符号の説明】
【００６４】
１  サーバ装置
２  クライアント装置
３  アプリケーションＤＢ
４  決定時間ＤＢ
１０  ネットワーク
１１、２１  ＣＰＵ
１２、２２  ＲＯＭ
１３、２３  ＲＡＭ
１４、２４  記憶部
１５、２５  通信部
２６  入力部
２７  表示部
Ｓ  通信システム
【図１】
0006376163.tif 000002
【図２】
0006376163.tif 000003
【図３】
0006376163.tif 000004
【図４】
0006376163.tif 000005
【図５】
0006376163.tif 000006