(57)【特許請求の範囲】
【請求項１】
（ａ）起動しようとしているアプリケーションプログラムのローカルインスタンスを備える移動通信装置上で使用されているリソースの第１の量を示す第１の値を記憶すること、
（ｂ）前記アプリケーションプログラムの前記ローカルインスタンスが前記移動通信装置上で実行された場合に、前記ローカルインスタンスが使用するであろう前記リソースの第２の量を示す第２の値を記憶すること、
（ｃ）前記第１の値および前記第２の値に基づいて、起動しようとしている前記アプリケーションプログラムを前記移動通信装置上で実行すべきか、または前記移動通信装置上で実行すべきではないかを決定することと、
（ｄ）（ｃ）での前記決定が、前記アプリケーションプログラムを前記移動通信装置上で実行すべきであるという決定である場合、前記アプリケーションプログラムの前記ローカルインスタンスを前記移動通信装置上で起動させることと、
（ｅ）（ｃ）での前記決定が、前記アプリケーションプログラムを前記移動通信装置上で実行すべきではないという決定である場合、１）リモートコンピュータ上で、前記ローカルインスタンスの前記アプリケーションプログラムと同じアプリケーションプログラムのリモートインスタンスを起動させること、前記リモートインスタンスは前記リモートコンピュータに備えられ、および２）広域ネットワーク上で前記リモートインスタンスと対話し、前記リモートインスタンスによって出力されるデータを閲覧するために前記移動通信装置のユーザが使用できるウェブブラウザを前記移動通信装置上で実行すること、
（ｆ）前記アプリケーションプログラムの実行場所を前記リモートコンピュータから前記移動通信装置へ移すことと、前記移すことは、
前記リモートコンピュータ上の前記リモートインスタンスの実行が終了したときに、前記リモートインスタンスが終了したときの前記アプリケーションプログラムの状態で前記アプリケーションプログラムの実行を再開するために、前記リモートインスタンスの実行の状態に関するステータス情報を使用して、前記リモートインスタンスが終了したときの前記アプリケーションプログラムの状態で前記ローカルインスタンスを前記移動通信装置上で実行すること、を備え、前記ステータス情報は、前記リモートインスタンスの実行が終了したときに前記移動通信装置において受信される、
を含み、
前記ローカルインスタンスは、前記リモートコンピュータと比較して限定されたリソースを有する前記移動通信装置上で十分な速度で実行できるように前記リモートインスタンスよりも低減された機能を有する、方法。
【請求項２】
前記アプリケーションプログラムの前記リモートインスタンスはウェブアプであり、前記広域ネットワークはインターネットを含み、前記移動通信装置は携帯電話であり、前記移動通信装置はユーティリティプログラムを実行し、前記ユーティリティプログラムは前記移動通信装置に前記（ａ）〜（ｅ）を実行させる、請求項１記載の方法。
【請求項３】
前記ユーティリティプログラムはグラフィカルユーザインターフェース（ＧＵＩ）を有する、請求項２記載の方法。
【請求項４】
前記ＧＵＩは、（ｃ）での前記決定が、前記第１および第２の値とは無関係に、前記アプリケーションプログラムを前記移動通信装置上で実行すべきであるという決定になることを指定するために使用できる、請求項３記載の方法。
【請求項５】
前記ＧＵＩはアプリケーションプログラムのリストを前記移動通信装置のディスプレイ上に表示させ、前記ＧＵＩはリソース量値の関連付けられたリストを前記ディスプレイ上に表示させ、リソース量値の前記リスト中の各リソース量値が、アプリケーションプログラムの前記リスト中の前記アプリケーションプログラムの各々に関連付けられる、請求項３記載の方法。
【請求項６】
（ｃ）は、前記第１の値と前記第２の値との合計が予め定められたしきい値を超えるかどうかを決定することを含み、前記合計が前記予め定められたしきい値を超えると決定された場合、（ｃ）で前記アプリケーションプログラムを前記移動通信装置上で実行すべきではないと決定する、請求項１記載の方法。
【請求項７】
前記リソースは、電池容量、メモリ容量、処理能力容量、電池使用量、メモリ使用量、および処理能力使用量を含むグループから選択される、請求項１記載の方法。
【請求項８】
前記アプリケーションプログラムは、マルチユーザ電子ゲーム、ビデオゲーム、ビデオ編集プログラム、ビデオメッセージングプログラム、および計算集約的な財務分析プログラムを含むグループから選択される、請求項１記載の方法。
【請求項９】
（ａ）アプリケーションプログラムの第１のインスタンスを備える移動通信装置上で、前記アプリケーションプログラムの前記第１のインスタンスをローカルで前記移動通信装置上で起動すべきか、またはリモートコンピュータ上で、前記第１のインスタンスの前記アプリケーションプログラムと同じアプリケーションプログラムの第２のインスタンスをリモートでウェブアプとして起動すべきかの決定を行うことと、前記第２のインスタンスは前記リモートコンピュータに備えられ、
前記第１のインスタンスは、前記リモートコンピュータと比較して限定されたリソースを有する前記移動通信装置上で十分な速度で実行できるように前記第２のインスタンスよりも低減された機能を有する、
前記決定は、前記移動通信装置上で使用されているリソース量を示す第１の値と、前記アプリケーションプログラムの前記第１のインスタンスを前記移動通信装置上で起動し実行しようとした場合、前記アプリケーションプログラムの前記第１のインスタンスが消費するであろうリソースの量を示す第２の値とに基づき、
前記決定を行うことは、前記第１の値と前記第２の値の加算値が使用量しきい値以下の場合、前記第１のインスタンスをローカルで前記移動通信装置上で起動すると決定し、前記加算値が前記使用量しきい値を超える場合、前記第２のインスタンスを前記リモートコンピュータ上で起動すると決定することを含み、
（ｂ）前記アプリケーションプログラムの実行場所を前記リモートコンピュータから前記移動通信装置へ移すことと、前記移すことは、前記リモートコンピュータ上の前記第２のインスタンスの実行が終了したときに、前記第２のインスタンスが終了したときの前記アプリケーションプログラムの状態で前記アプリケーションプログラムの実行を再開するために、前記第２のインスタンスの実行の状態に関するステータス情報を使用して、前記第２のインスタンスが終了したときの前記アプリケーションプログラムの状態で前記第１のインスタンスを前記移動通信装置上で実行すること、を備え、前記ステータス情報は、前記第２のインスタンスの実行が終了したときに前記移動通信装置において受信される、
を含む方法。
【請求項１０】
（ｃ）前記移動通信装置のディスプレイ上に、アプリケーションプログラムのリストを表示すること、
をさらに含み、前記リスト中の前記アプリケーションプログラムは、前記移動通信装置上で実行されているアプリケーションプログラムを含み、前記リスト中の前記アプリケーションプログラムは、リモートでウェブアプとして実行されているアプリケーションプログラムを含み、前記移動通信装置上で実行されているユーティリティプログラムは、前記リスト中の前記アプリケーションプログラムが選択されると、前記移動通信装置に（ａ）での前記決定を行わせる、請求項９記載の方法。
【請求項１１】
前記移動通信装置はブラウザプログラムを実行する携帯電話であり、前記ブラウザプログラムは、前記移動通信装置に前記ウェブアプから受信された表示データをレンダリングさせる、請求項９記載の方法。
【請求項１２】
アプリケーションプログラムの第１のインスタンス、ウェブブラウザ、およびユーティリティプログラムを記憶するメモリと、
前記ユーティリティプログラムを実行するプロセッサと、
を備える移動通信装置であって、
前記ユーティリティプログラムは、前記プロセッサに、前記アプリケーションプログラムの前記第１のインスタンスをローカルで前記移動通信装置上で起動するかどうか、またはリモートコンピュータ上で、前記第１のインスタンスの前記アプリケーションプログラムと同じアプリケーションプログラムの第２のインスタンスをリモートでウェブアプとして起動するかどうかを決定させ、前記第２のインスタンスは前記リモートコンピュータに備えられ、
前記第１のインスタンスは、前記リモートコンピュータと比較して限定されたリソースを有する前記移動通信装置上で十分な速度で実行できるように前記第２のインスタンスよりも低減された機能を有し、
前記決定は、前記移動通信装置上で使用されているリソース量を示す第１の値と、前記アプリケーションプログラムを前記移動通信装置上で起動し実行しようとした場合、前記アプリケーションプログラムが消費するであろうリソースの量を示す第２の値とに基づいて行われ、
前記ユーティリティプログラムは、前記プロセッサに、
前記第１の値と前記第２の値の加算値が使用量しきい値以下の場合、前記第１のインスタンスをローカルで前記移動通信装置上で起動すると決定させ、前記加算値が前記使用量しきい値を超える場合、前記第２のインスタンスを前記リモートコンピュータ上で起動すると決定させ、
前記アプリケーションプログラムの実行場所を前記リモートコンピュータから前記移動通信装置へ移させ、前記移すことは、前記リモートコンピュータ上の前記第２のインスタンスの実行が終了したときに、前記第２のインスタンスが終了したときの前記アプリケーションプログラムの状態で前記アプリケーションプログラムの実行を再開するために、前記第２のインスタンスの実行の状態に関するステータス情報を使用して、前記第２のインスタンスが終了したときの前記アプリケーションプログラムの状態で前記第１のインスタンスを前記移動通信装置上で実行すること、を含み、前記ステータス情報は、前記第２のインスタンスの実行が終了したときに前記移動通信装置において受信される、移動通信装置。
【請求項１３】
アプリケーションプログラムのリストを表示するディスプレイ、をさらに備え、
前記リストは、前記リスト中に記載された前記アプリケーションプログラムの各々のリソース量値をも含み、前記プロセッサによる前記ユーティリティプログラムの実行は、前記リストを前記ディスプレイ上に表示させる、請求項１２記載の移動通信装置。
【請求項１４】
電池と、
前記電池に結合された電力管理集積回路と、
をさらに備え、
前記電力管理集積回路は前記プロセッサに電池情報を提供し、前記プロセッサは、前記使用量しきい値を超えるかどうかの決定に前記電池情報を使用する、請求項１２記載の移動通信装置。
【請求項１５】
前記アプリケーションプログラムの前記第２のインスタンスがリモートでウェブアプとして起動された場合、前記アプリケーションプログラムの前記第２のインスタンスのいかなる部分も前記移動通信装置上では実行されない、請求項１２記載の移動通信装置。
【請求項１６】
ウェブブラウザ、およびアプリケーションプログラムの第１のインスタンスを記憶するメモリと、
前記アプリケーションプログラムの前記第１のインスタンスをローカルで移動通信装置上で起動するかどうか、またはリモートコンピュータ上で、前記第１のインスタンスの前記アプリケーションプログラムと同じアプリケーションプログラムの第２のインスタンスをリモートでウェブアプとして起動するかどうかを決定するプロセッサと、前記第２のインスタンスは前記リモートコンピュータに備えられ、
を備え、
前記第１のインスタンスは、前記リモートコンピュータと比較して限定されたリソースを有する前記移動通信装置上で十分な速度で実行できるように前記第２のインスタンスよりも低減された機能を有し、
前記決定は、前記移動通信装置上で使用されているリソース量を示す第１の値と、前記アプリケーションプログラムを前記移動通信装置上で起動し実行しようとした場合、前記アプリケーションプログラムの前記第１のインスタンスが消費するであろうリソースの量を示す第２の値とに基づいて行われ、
前記プロセッサは、前記第１の値と前記第２の値の加算値が使用量しきい値以下の場合、前記第１のインスタンスをローカルで前記移動通信装置上で起動すると決定し、前記加算値が前記使用量しきい値を超える場合、前記第２のインスタンスを前記リモートコンピュータ上で起動すると決定し、
前記プロセッサは、前記アプリケーションプログラムの実行場所を前記リモートコンピュータから前記移動通信装置へ移し、前記移すことは、前記リモートコンピュータ上の前記第２のインスタンスの実行が終了したときに、前記第２のインスタンスが終了したときの前記アプリケーションプログラムの状態で前記アプリケーションプログラムの実行を再開するために、前記第２のインスタンスの実行の状態に関するステータス情報を使用して、前記第２のインスタンスが終了したときの前記アプリケーションプログラムの状態で前記第１のインスタンスを前記移動通信装置上で実行すること、を含み、前記ステータス情報は、前記第２のインスタンスの実行が終了したときに前記移動通信装置において受信される、移動通信装置。
【請求項１７】
前記移動通信装置はグラフィカルユーザインターフェースを有し、前記グラフィカルユーザインターフェースは、前記プロセッサがアプリケーションプログラムをリモートでウェブアプとして起動すると決定する条件を変更するために使用できる、請求項１６記載の移動通信装置。
【請求項１８】
前記プロセッサは、前記リモートコンピュータ上でのウェブアプの実行を終了する能力を有する、請求項１６記載の移動通信装置。
【請求項１９】
（ａ）アプリケーションプログラムのローカルインスタンスを移動通信装置上で実行した場合、前記ローカルインスタンスが使用するであろうリソースの量を示す第１の値を維持し、
（ｂ）前記ローカルインスタンスをローカルで移動通信装置上で起動すべきか、またはリモートコンピュータ上で、前記ローカルインスタンスの前記アプリケーションプログラムと同じアプリケーションプログラムのリモートインスタンスをウェブアプとしてリモートで起動すべきかを決定する、複数のステップをプロセッサに実行させるプロセッサ実行可能なプログラムであって、前記リモートインスタンスは前記リモートコンピュータに備えられ、
前記ローカルインスタンスは、前記リモートコンピュータと比較して限定されたリソースを有する前記移動通信装置上で十分な速度で実行できるように前記リモートインスタンスよりも低減された機能を有し、
前記決定は、前記移動通信装置上で使用されているリソース量を示す第２の値と、（ａ）で維持された前記第１の値とに基づき、
前記複数のステップは、
前記第１の値と前記第２の値の加算値が使用量しきい値以下の場合、前記ローカルインスタンスをローカルで前記移動通信装置上で起動すると決定するステップと、
前記加算値が前記使用量しきい値を超える場合、前記リモートインスタンスを前記リモートコンピュータ上で起動すると決定するステップと、
前記アプリケーションプログラムの実行場所を前記リモートコンピュータから前記移動通信装置へ移すステップと、前記移すステップは、前記リモートコンピュータ上の前記リモートインスタンスの実行が終了したときに、前記リモートインスタンスが終了したときの前記アプリケーションプログラムの状態で前記アプリケーションプログラムの実行を再開するために、前記リモートインスタンスの実行の状態に関するステータス情報を使用して、前記リモートインスタンスが終了したときの前記アプリケーションプログラムの状態で前記ローカルインスタンスを前記移動通信装置上で実行するステップを含み、前記ステータス情報は、前記リモートインスタンスの実行が終了したときに前記移動通信装置において受信される、
を含むプログラム。
【請求項２０】
請求項１９記載のプログラムを記憶したプロセッサ読み取り可能記憶媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
開示する実施形態は、ウェブアプリケーションに関する。
【背景技術】
【０００２】
携帯電話は、一層複雑なアプリケーションプログラムを実行するようになった。複雑なアプリケーションプログラムの例としては、ビデオメッセージングプログラム、移動テレビジョン視聴プログラム、および３次元マルチユーザビデオゲームプログラムがある。携帯電話の現代のユーザは、ただ無線電話通話を行うために携帯電話を使用するのではないことが多い。そうではなく、ユーザは、他のリモートコンピュータによって、その上で提供されるサービスおよびデータと対話し、アクセスするための入出力装置として携帯電話を使用する。一例では、複数ユーザの各々の携帯電話がビデオゲームアプリケーションプログラムのコピーを実行する。携帯電話は、直接にまたは中央コンピュータを介して互いに通信し、それによりユーザは、すべて共通の仮想環境で同じマルチユーザビデオゲームをすることができる。
【０００３】
しかしながら、携帯電話上でそのような複雑なアプリケーションプログラムを実行することは、携帯電話のリソースの大部分を消費することがある。携帯電話リソースの例としては、電池容量、メモリ容量、および処理能力がある。複雑なアプリケーションプログラムを実行することは、利用可能な電池容量の多くを占有することがある。実際、ビデオゲームをすると、多大な電池エネルギーを使用するので、携帯電話が携帯電話として通信するための十分な電池エネルギーが残っていないことがある。あるいは、ビデオゲームをすると、その結果放電された電池が、通常の持続時間の携帯電話呼出しのために携帯電話に電力供給することができないほど放電されていることを、ユーザが認識せずに、電池エネルギーを急速に消費するがある。
【０００４】
複雑なアプリケーションは大量の利用可能な電池エネルギーを使用するだけでなく、複雑なアプリケーションプログラムは携帯電話の利用可能なランダムアクセスメモリ（ＲＡＭ）の大部分を使用することがある。携帯電話を使用してマルチユーザビデオゲームをしている場合、利用可能なメモリの大半がビデオゲームアプリケーションによって使用されるので、携帯電話は別のアプリケーションプログラムを同時に呼び出すことができないことがある。複雑なアプリケーションプログラムを実行することは、携帯電話の中央処理装置（ＣＰＵ）の利用可能な処理能力の大部分を必要とし、使用することもある。携帯電話を使用してマルチユーザビデオゲームをしている場合、携帯電話の処理能力の大半が使用されるので、別のアプリケーションプログラムを所望の処理速度または応答性で実行することができないことがある。
【０００５】
これらの問題のいくつかは、複雑なアプリケーションプログラムをリモートコンピュータ上で実行し、携帯電話をアプリケーションと対話するための入出力装置として使用することによって対処できる。リモートコンピュータと対話するために使用される携帯電話上で実行されるブラウザソフトウェアは、携帯電話上で複雑なアプリケーションプログラムを実行した場合にその複雑なアプリケーションプログラムが使用するであろうリソースよりも使用するリソースの量が少ない。したがって、携帯電話におけるリソースの使用量が減少する。携帯電話上で実行されるブラウザは、リモートコンピュータ上で実行されているアプリケーションとワールドワイドウェブ上で通信するために使用されるので、リモートコンピュータ上で実行されるアプリケーションプログラムは「ウェブブラウザアプリケーション」、「ウェブアプリケーション」または「ウェブアプ（Webapp）」と呼ばれる。（「サーバファーム」と呼ばれることがある）コンピュータのクラスタ上で実行されるそのようなアプリケーションへのインターネットアクセスは、携帯電話ユーザがウェブアプとして使用する料金と引き換えに提供されることがある。一例では、マルチユーザビデオゲームのアプリケーションプログラムは、そのようなサーバファーム中のコンピュータ上で実行されている。携帯電話上で複雑なアプリケーションプログラムを実行して大量の携帯電話リソースを消費するのではなく、ユーザは、携帯電話上でブラウザを実行するだけで、サーバファーム中のコンピュータ上で実行されている複雑なアプリケーションプログラムと対話する。
【０００６】
しかしながら、リモートコンピュータ上でそのような複雑なアプリケーションプログラムを実行することが常に望ましいというわけではない。コストの問題、または通信遅延もしくは信頼性の問題、または特定の状況において携帯電話上での複雑なアプリケーションの実行が有利となる他の問題が存在することがある。携帯電話のリソースが、そのようなアプリケーションプログラムの使用によって酷使されて乏しくなった場合、携帯電話上で利用可能な予備リソースの量はわずかしかないことがある。たとえば、より高い優先順位のアプリケーションを次いで使用しようとする場合、リソース使用量の総量が携帯電話上の利用可能なリソースの総量を超え得るとき、そのより高い優先順位のアプリケーションプログラムを呼び出すことができないことがある。また、この状況ではリソースが極めて多用されるので、着信携帯電話を受信しようとするとき、携帯電話には、その呼出しを受信するための十分なリソースがない。リソースを管理すること、ならびに所与の状況においてどのアプリケーションプログラムをウェブアプとしてオフロードすべきか、およびどのアプリケーションプログラムをオフロードすべきではないかまたは呼び出さないかを決定することが、煩わしく困難なことがある。
【発明の概要】
【０００７】
移動通信装置（たとえば、携帯電話）上で実行されているユーティリティプログラムが、アプリケーションプログラムの第１のインスタンスをローカルで該移動通信装置上で起動すべきか、または該アプリケーションプログラムの第２のインスタンスをリモートでウェブアプリケーション（以下「ウェブアプ」）として起動すべきかを決定する。この決定は、少なくとも一部は、第１のインスタンスを該移動通信装置上で起動し実行しようとした場合、第１のインスタンスがどの位の量のリソースを消費するかの推定値に基づく。リソースの例としては、電池容量または電池エネルギー使用量、メモリ容量またはメモリ使用量、および処理パワー容量または使用量がある。一例では、現在実行中のアプリケーションおよびアプリケーションプログラムの第１のインスタンスを実行することによって消費される特定のリソースの総量がしきい値量を超え得る場合、ユーティリティプログラムは、移動通信装置上のブラウザプログラムを使用してアプリケーションプログラムの第２のインスタンスをリモートでウェブアプとして起動するか、さもなければ、ユーティリティプログラムはアプリケーションプログラムの第１のインスタンスをローカルで起動させる。ユーティリティプログラムは、起動のタイプを決定するために移動通信装置のオペレーティングシステムと対話する。
【０００８】
いくつかの実施形態では、第１のインスタンスと第２のインスタンスは同じプログラムである。一実施形態では、第１のインスタンスは、限られたリソースを有する装置上で実行するようにカスタマイズされ適合されたアプリケーションの簡略版である。一方、第２のインスタンスは、移動通信装置のリソース制約を有しないリモートコンピュータ上での実行に適する。
【０００９】
ユーティリティプログラムはグラフィカルユーザインターフェース（ＧＵＩ）を有し、それによって移動通信装置のユーザはユーティリティプログラムの動作を設定し、カスタマイズすることができる。ＧＵＩは、たとえば、アプリケーションをリモートでウェブアプとして起動する決定を行う条件を変更するために使用できる。ユーザは、ＧＵＩを使用して特定のアプリケーションのオフロードを無効化することができる。
【００１０】
特定の例では、ＧＵＩは、ユーザによる適切なプロンプトに応答して移動通信装置のディスプレイ上にリソース使用量テーブルを表示させる。このテーブルは、移動通信装置上で実行中のすべてのアプリケーションプログラムを記載している。さらに、このテーブルは、起動しようとしているアプリケーションプログラムを記載している。記載されている各アプリケーションプログラムについて、テーブルはリソースの各タイプの使用量値を含む。起動しようとしているアプリケーションプログラムの場合、使用量値は使用量の推定値である。使用量の推定値とは、アプリケーションプログラムの第１のインスタンスをローカルで移動通信装置上で実行した場合に発生するであろう使用量である。少なくとも一部は、現在実行中のアプリケーションプログラムのリソース使用量値と、起動しようとしているアプリケーションプログラムのリソース使用量の推定値とに基づいて、ユーティリティプログラムは、起動しようとしているアプリケーションプログラムを移動通信装置上で実行すべきか、または移動通信装置上で実行すべきではないかを決定する。この決定が、アプリケーションプログラムを移動通信装置上で実行すべきではないという決定である場合、ユーティリティプログラムは、移動通信装置上のブラウザプログラムを使用してアプリケーションプログラムの第２のインスタンスをリモートでウェブアプとして起動する。このシナリオでは、アプリケーションプログラムの第２のインスタンスは、アプリケーションプログラムの一部が移動通信装置上で実行され、アプリケーションプログラムの別の一部がリモートで実行されるように分割されることがない。アプリケーションプログラムの第２のインスタンスのいかなる部分も移動通信装置上で実行されない。しかしながら、決定が、アプリケーションプログラムを移動通信装置上で実行すべきであるという決定である場合、ユーティリティは、アプリケーションプログラムの第１のインスタンスをローカルで移動通信装置上で起動させる。アプリケーションプログラムの第１のインスタンスは、移動通信装置とリモートコンピュータとの間で分割されない。アプリケーションプログラムの第１のインスタンスのいかなる部分もリモートコンピュータ上では実行されない。
【００１１】
いくつかの実施形態では、ユーティリティプログラムは、いくつかのリソース使用量条件下において、リモートコンピュータ上でのアプリケーションプログラムの第２のインスタンスの実行を終了することができる。アプリケーションプログラムの第１のインスタンスは、第２のインスタンスが終了したときの状態にある移動通信装置上で起動される。したがって、アプリケーションプログラムの実行は、ユーティリティプログラムの制御下でリモートコンピュータから元に移動する。
【００１２】
上記は概要であり、したがって当然、詳細の簡略化、一般化および省略を含んでおり、したがって、概要は例示的なものにすぎず、限定的なものではないことを当業者には言うまでもない。特許請求の範囲のみによって定義される、本明細書で説明する装置および／またはプロセスの他の態様、発明的特徴、および利点は、本明細書に記載する非限定的な詳細な説明において明らかになるであろう。
【図面の簡単な説明】
【００１３】
【図１】新規の一態様による新規のユーティリティプログラムを実行する移動通信装置を示す正面図。
【図２】新規のユーティリティプログラムの動作を示す簡略化されたフローチャート。
【図３】図１の移動通信装置内およびリモートコンピュータ上で実行されているソフトウェアを示す図。
【図４】図３の移動通信装置、図３のリモートコンピュータ、およびその２つの間の通信パスを示す図。
【図５】図４の移動通信装置と図４のリモートコンピュータとの間で行われる一連の通信を示す図。
【発明を実施するための形態】
【００１４】
図１は、新規の一態様による移動通信装置１００の正面図である。この例における移動通信装置１００は、アンテナ１０１と、内蔵マイクロホン１０２と、スピーカ１０３と、ディスプレイ１０４と、ＱＷＥＲＴＹキーパッド１０５とを有する携帯電話である。移動通信装置１００内の電子回路は、数ある部品の中でもとりわけ、ＲＦトランシーバ回路と、デジタルベースバンドプロセッサ集積回路と、１つまたは複数の充電式電池と、電力管理集積回路とを含む。図１は平面図であり、この回路は移動通信装置１００の筐体内に含まれているので、この回路は図１に示されていない。ベースバンドプロセッサ集積回路は、ある量の半導体メモリと、デジタルプロセッサとを含む。半導体メモリは、プロセッサ上で実行可能であるプロセッサ実行可能命令のプログラムを記憶するプロセッサ可読媒体である。プロセッサは、メモリにアクセスし、メモリからプロセッサ実行可能命令のオペレーティングシステムプログラムを実行する。プロセッサはアプリケーション層プログラムを実行することもできる。図１の例では、「ＷＰ」と示されたワード処理プログラムと、「ＥＭＡＩＬ」と示された電子メールおよびカレンダーおよびコンタクトマネージャプログラムと、「ＧＡＭＥ」と示された３次元マルチユーザビデオゲームと、「ＢＲＯＷＳＥＲ」と示されたウェブブラウザプログラムと、新規のユーティリティプログラムとを含む、プロセッサ上で実行されている複数のそのようなアプリケーション層プログラムがある。ユーティリティプログラムの実行により、グラフィカルユーザインターフェース（ＧＵＩ）が与えられ、それによって移動通信装置１００のユーザは、ユーティリティプログラムの出力を閲覧することができ、ユーティリティプログラムと対話し、ユーティリティプログラムを設定することができる。ユーティリティプログラムの１つの動作モードでは、ＧＵＩはリソース使用量テーブル１０６をディスプレイ１０４に表示させる。
【００１５】
リソース使用量テーブル１０６は、携帯電話上で実行中の様々なプログラムのリストを最左列中に含む。「ＳＹＳＴＥＭ」エントリは、オペレーティングシステムおよび新規のユーティリティアプリケーションプログラムを指す。ユーティリティプログラムは、アプリケーション層プログラムであるが、オペレーティングシステムに緊密に結合されており、したがってオペレーティングシステムの一部として記載されている。記載されたプログラムの各々について、リソース使用量テーブル１０６は、使用中であるか、さもなければプログラムに割り当てられているか、またはプログラムによって予約されているリソースの量を示す数値を含む。図１の例では、（ディスプレイ上に「ＢＡＴＴ」と記載されている）電池電力使用量と、（「ＭＥＭ」と記載されている）メモリ使用量と、（「ＣＰＵ」と記載されている）処理能力使用量という３つの異なるリソースが記載されている。たとえば、「ＥＭＡＩＬ」と示された電子メールプログラムは、電力使用量リソース「ＢＡＴＴ」を３単位、メモリ使用量リソース「ＭＥＭ」を２単位、および処理能力リソース「ＣＰＵ」を１単位使用しているのが示されている。リソース使用量テーブル１０６の最下行は、３つのリソースの各々のしきい値を記載している。リソース使用量テーブル１０６中の使用量値およびしきい値の単位は互いに正規化されている。一例では、しきい値は、ユーザが変更することができない固定値である。別の例では、ＧＵＩにより、移動通信装置１００のユーザは、所定の範囲内でしきい値を手作業で変更することが可能になる。
【００１６】
リソース使用量テーブル１０６の最右列は、プログラムの各々が、リモートコンピュータ上でウェブアプとして実行されるようにオフロードされているかどうかの表示を含む。図１の例では、ビデオゲームアプリケーション「ＧＡＭＥ」はリモートコンピュータ上で実行中であり、携帯電話１００のブラウザおよび携帯電話ハードウェア自体は、リモートコンピュータ上のリモートで実行されているゲームプログラムと対話するために使用されている。アプリケーションプログラム「ＧＡＭＥ」がオフロードされていることは、最右列のチェックマークで示されている。ＧＵＩにより、ユーザは、記載されたプログラムのうちの選択された１つのオフロードを手作業で無効化することができる。図１の例では、ユーザは、「ＥＭＡＩＬ」と示された電子メールプログラムのオフロードを無効化してある。「オフロード無効化」状態は、リソース使用可能テーブル１０６中の最右列に×印で示されている。
【００１７】
移動通信装置１００の通常の動作では、ユーティリティプログラムはリソース使用量テーブル１０６を表示させない。そうではなく、リソース使用量テーブル１０６は、ユーティリティプログラムへの適切なユーザプロンプトに応答して表示される。このようにして、ユーザは、ＧＵＩを使用してプロンプトを入力し、それによってテーブル１０６を表示させ、次いでＧＵＩおよびテーブルを使用してユーティリティと対話し、次いで、テーブル１０６がもはや表示されないようにする適切なプロンプトを入力することが可能である。ただし、テーブル１０６が表示されていなくても、ユーティリティプログラムはバックグラウンドで実行され続ける。
【００１８】
図２は、新規の一態様による方法を示す簡略化されたフローチャートである。本方法は、図１の移動通信装置１００を使用して実施される。最初に、プロセッサは、オペレーティングシステムプログラムおよび新規のユーティリティアプリケーションプログラム、ならびに数個の他のアプリケーションプログラムを実行している。各プログラムは、３つのリソース「ＢＡＴＴ」、「ＭＥＭ」および「ＣＰＵ」の各々のある量を消費する。ステップ２０１の前の最初の状態では、図１に記載された「ＷＰ」、「ＥＭＡＩＬ」および「ＢＲＯＷＳＥＲ」のアプリケーションが実行されている。ただし、「ＧＡＭＥ」アプリケーションは実行されていない。したがって、ディスプレイ１０４は、「ＧＡＭＥ」エントリを有する行が存在しないこと以外は、図１の通りに表示される。総電力使用量（リソース「ＢＡＴＴ」）は１０使用量単位であることに留意されたい。総メモリ使用量（リソース「ＭＥＭ」）も１０使用量単位である。総処理能力使用量（リソース「ＣＰＵ」）は６使用量単位である。したがって、３つの使用量合計はすべて、それらのそれぞれのしきい値である。
【００１９】
次いで、ユーザは、「ＧＡＭＥ」と示されたマルチユーザビデオゲームアプリケーションプログラムを呼び出す動作をとる。ユーザは、たとえば、ディスプレイ１０４上に表示されているビデオゲームのアイコンＧＡＭＥを選択する。オペレーティングシステムは、この状態を検出し、ＧＡＭＥアプリケーションを呼び出す要求をユーティリティプログラムに発行する。ユーティリティプログラムは呼出し要求を受け取る（ステップ２０１）。
【００２０】
次に（ステップ２０２）、ユーティリティプログラムは、アプリケーション層プログラムを実行しようとした場合にアプリケーション層プログラムによって消費されるであろう各リソースの量を推定する。一例では、新規のアプリケーションプログラムによって消費されるであろう処理能力は、過去の経験的データによって判断される。たとえば、ＧＡＭＥプログラムを事前に実行するたびに、平均してＣＰＵ処理能力の６使用量単位が消費された場合、この平均使用量値６が推定ＣＰＵ使用量値として記憶され、使用される。すでに実行されている他のプログラムによって実際に使用される処理能力の量は、多数の適切な方法のうちのいずれか１つによって求めることができる。たとえば、ユーティリティプログラムまたはオペレーティングシステムは、ＣＰＵの活動をチェックするためにＣＰＵに周期的に割り込むことができる。粗い例では、低い優先順位のタスクをＣＰＵに周期的に発行し、オペレーティングシステムがタスクの実行を可能にしたかどうかについてのデータを収集する。オペレーティングシステムは、ユーティリティプログラムが使用できるＣＰＵ使用量データを出力する。このデータは、従来のＷｉｎｄｏｗｓ(登録商標)オペレーティングシステムのタスクマネージャがＣＰＵ使用量データを収集及び出力する方法で、収集及び出力される。
【００２１】
電力消費の推定量（リソース「ＢＡＴＴ」）は、過去の経験的データによって同様に求めることができる。携帯電話内の電力管理集積回路（ＰＭＩＣ：power management integrated circuit）は、離散的な時々に、電池電圧をモニタすることができる。測定電圧の変化はエネルギー消費量を示す。選択された個々のアプリケーションプログラムが実行されているとき、または個々のアプリケーションプログラムの選択されたサブグループが実行されているときに、電池電圧を分析することによって、個々の各アプリケーションプログラムの電池エネルギー消費に関する情報が収集される。
【００２２】
メモリ使用量の推定量（リソース「ＭＥＭ」）は、過去の経験的データによって同様に求めることができる。各アプリケーション層プログラムに割り当てられたメモリ量は、概してオペレーティングシステムに知られている。これらの使用量値はユーティリティプログラムに供給される。ＧＡＭＥアプリケーションプログラムが実行されるたびに６使用量単位を消費した場合、この次にＧＡＭＥプログラムが実行されるときにも６使用量単位を消費する可能性があるという推定になる。実行中の様々なアプリケーションプログラムの実際のメモリ使用量は、上述したように、オペレーティングシステムによって出力され、ユーティリティプログラムによって使用される。したがって、図２の方法のこの時点で、図１のリソース使用量テーブル１０６中に記載されたすべての使用量値はユーティリティプログラムに知られている。
【００２３】
次に（ステップ２０３）、各リソースについて、呼び出そうとするアプリケーションプログラムの推定使用量を、実行中の他のプログラムのリソース使用量値に加算する。本例では、ＢＡＴＴリソースについての合計は１６単位である。「ＭＥＭ」リソースについての合計も１６単位である。処理能力リソース「ＣＰＵ」についての合計は１２単位である。
【００２４】
次に（ステップ２０４）、起動しようとしているアプリケーションプログラムを、移動通信装置上で起動し実行すべきか、またはリモートコンピュータ上で起動し実行すべきかについての決定を行う。この決定は、少なくとも一部は、１）起動しようとしているアプリケーションのリソース使用量の推定値と、２）移動通信装置１００上で現在実行中の他のプログラムによって消費されるリソースの量とに基づく。図２のユーティリティプログラムの例では、ステップ２０３で求めた３つのリソースのいずれかの合計が、そのリソースの対応する所定のしきい値を超える場合、起動しようとしているアプリケーションプログラムを移動通信装置１００上で実行すべきではなく、アプリケーションプログラムのインスタンスをウェブアプとしてリモートコンピュータ上で実行すべきであると決定する。
【００２５】
３つのリソースの各々についてステップ２０３で決定された合計が、その対応するしきい値を下回る場合、処理はステップ２０５に進む。ユーティリティプログラムは、オペレーティングシステムと通信し、アプリケーションプログラム（この場合はＧＡＭＥプログラム）を移動通信装置上で起動させる。その後（ステップ２０６）、アプリケーションプログラムは移動通信装置１００上で通常通り実行される。
【００２６】
しかしながら、本例では、「ＢＡＴＴ」リソースの合計は１６であり、「ＢＡＴＴ」リソースの対応するしきい値は１５である。同じく、「ＭＥＭ」リソースの合計は１６であり、「ＭＥＭ」リソースの対応するしきい値は１５である。したがって、ステップ２０４の決定は、ＧＡＭＥアプリケーションプログラムを移動通信装置上で起動するのではなく、クライアントインターフェースを呼び出す（ステップ２０７）という決定になる。クライアントインターフェースは、移動通信装置のウェブブラウザプログラムに組み込まれたインターフェースソフトウェアである。このようにクライアントインターフェースがブラウザに組み込まれている場合、ブラウザは、リモートコンピュータ上の対応するホストインターフェースと通信するために使用できる。クライアントインターフェースは、キーパッドキー押し情報などのユーザ入力を捕捉し、それらのユーザ入力をインターネット上でホストインターフェースに通信する。ホストインターフェースは、リモートコンピュータ上で実行されているアプリケーションプログラムにユーザ入力を供給し、その結果、リモートコンピュータ上で実行されているアプリケーションプログラムには、ユーザ入力が通常通りローカルで生成されたかのように見える。表示データなどアプリケーションプログラムから出力されたデータは、インターネット上でホストインターフェースを介して反対方向に進み、ブラウザおよびクライアントインターフェースに至る。ブラウザは、リモートコンピュータに対してローカルなディスプレイ上に表示データを通常表示するのと同様の方法で、移動通信装置１００のディスプレイ１０４上に表示データを表示する。このクライアントインターフェースおよび関連するホストインターフェースソフトウェアは従来のウェブアプソフトウェアである。このインターフェースソフトウェアの一例は、フロリダ州フォートローダーデールのＣｉｔｒｉｘ  Ｓｙｓｔｅｍｓ社から入手可能である。
【００２７】
クライアントインターフェースを呼び出した後（ステップ２０７）、ユーティリティプログラムは、クライアントインターフェースおよびホストインターフェースを介して動作し、ＧＡＭＥアプリケーションプログラムをリモートコンピュータ上で起動させる（ステップ２０８）。その後、ＧＡＭＥアプリケーションプログラムがリモートコンピュータ上で実行される（ステップ２０９）。ＧＡＭＥアプリケーションプログラムは、これまで移動通信装置１００上で実行されることはなかった。ＧＡＭＥアプリケーションプログラムは、アプリケーションの一部が移動通信装置上で実行され、当該ＧＡＭＥアプリケーションプログラムの別の一部がリモートサーバ上で実行されるように分割されなかった。ＧＡＭＥアプリケーションプログラムのインスタンスはウェブアプとしてリモートコンピュータ上で実行され、移動通信装置上のブラウザおよび移動通信装置ハードウェアはウェブアプと対話するのに使用される。この例では、移動通信装置上で実行されるアプリケーションプログラムのインスタンスと、リモートコンピュータ上で実行されるアプリケーションプログラムのインスタンスとは、移動通信装置上にあるインスタンスは、異なるプロセッサ上で実行され、低減された機能を有し、したがってリモートコンピュータと比較して限られたリソースを有する移動通信装置上で十分な速度で実行できる点が異なる。
【００２８】
図３は、移動通信装置１００およびリモートコンピュータ１０７中で実行されているソフトウェアを示す図である。移動通信装置１００上で実行されているソフトウェアは、ＢＲＥＷ（Ｂｉｎａｒｙ  Ｒｕｎｔｉｍｅ  Ｅｎｖｉｒｏｎｍｅｎｔ  ｆｏｒ  Ｗｉｒｅｌｅｓｓ）タイプのアプリケーションプログラミングインターフェース１０９を有するオペレーティングシステム１０８を含む。水平の破線１１０は、オペレーティングシステム１０８と、オペレーティングシステム上で実行されるアプリケーション層プログラム１１１〜１１３との間のインターフェースを表す。アプリケーションプログラム１１１は、起動しようとしているアプリケーションプログラムの第１のインスタンスである。アプリケーションプログラム１１２は新規のユーティリティプログラムである。ユーティリティプログラム１１２は、ＧＵＩを提供し表示データを出力しユーザ入力を受け取るので、ここではアプリケーション層プログラムとして示されている。しかしながら、ユーティリティプログラム１１２は、オペレーティングシステム１０８の一部と見なすこともできる。アプリケーションプログラム１１３は、クライアントインターフェース機能１１４が組み込まれているウェブブラウザである。
【００２９】
リモートコンピュータ１０７上で実行されているソフトウェアは、オペレーティングシステム１１５、起動しようとしているアプリケーションプログラムの第２のインスタンス１１６、およびホストインターフェース機能１１７を含む。リモートコンピュータ１０７は、コンピュータリソースのサーバファームの一部であるコンピュータである。アプリケーションプログラムの第２のインスタンス１１６は、移動通信装置１００のユーザがウェブアプとして使用できる。破線の矢印１１８は、移動通信装置１００からリモートコンピュータ１０７への情報フローを表す。この情報フローは、ユーザがキーパッド１０５のどのキーを押したかに関するキー押し情報などのユーザエントリデータおよび入力情報を含む。この情報は、移動通信装置１００から、無線リンク（たとえばＣＤＭＡ無線リンク）上を進み、他のネットワークおよびインターネットを介して、サーバファームおよびリモートコンピュータ１０７に至る。破線の矢印１１９は、リモートコンピュータ１０７から移動通信装置１００への情報フローを表す。この情報フローは、リモートコンピュータ１１９上で実行されているアプリケーションプログラムの第２のインスタンス１１６によって出力された表示データを含む。この表示データは、リモートコンピュータ１０７のモニタもしくはスクリーンまたは他のディスプレイ上に表示されるのではなく、インターネットおよび無線リンク上で移動通信装置１００に通信される。移動通信装置１００上のブラウザ１１３は、情報をレンダリングし、それにより情報が移動通信装置１００のディスプレイ１０４上に表示される。
【００３０】
図４は、移動通信装置１００、リモートコンピュータ１０７、およびその２つの間の通信の図である。「Ａ」、「Ｕ」、「Ｂ」および「ＯＳ」と標示された移動通信装置１００中のブロックは、それぞれ、起動しようとしているアプリケーションプログラムの第１のインスタンス、ユーティリティプログラム、クライアントインターフェースを有するブラウザ、およびオペレーティングシステムを示す。これらのプログラムは、半導体メモリ中に記憶され、上述の移動通信装置１００のプロセッサによって実行される。「ＰＭＩＣ」と標示されたブロック１２０は、電力管理集積回路である。電力管理集積回路１２０は充電式電池１２１に結合されている。電力管理集積回路１２０は、電池電圧をモニタし、プロセッサに電池情報を供給する。電池情報は、いくつかの実施形態では、電池電圧とすることができる。他の実施形態では、電池情報は、電池に蓄えられているエネルギー量、または電池電力消費率もしくは現在の消費率の指示とすることができる。
【００３１】
リモートコンピュータ１０７は、サーバファーム１２２中にあるいくつかのコンピュータのうちの１つである。リモートコンピュータ１０７内で「Ａ」と標示されたブロック１２３は、起動しようとしているアプリケーションプログラムの第２のインスタンスを示す。アプリケーションプログラムのこの第２のインスタンスは、リモートでウェブアプとしてリモートコンピュータ１０７上で実行できるプログラムである。
【００３２】
移動通信装置１００とリモートコンピュータ１０７との間の通信は、無線リンク１２４、携帯電話ネットワーク１２５（この場合はＣＤＭＡネットワーク）、および広域ネットワーク（ＷＡＮ）１２６を通過する。ＷＡＮ１２６、ＣＤＭＡネットワーク１２５、および無線リンク１２４はすべて、インターネット１２７の一部と見なすことができる。矢印１２８は、移動通信装置１１０から、リモートコンピュータ１０７上で実行されているウェブアプに至るユーザエントリ情報を表す。矢印１２９は、リモートコンピュータ１０７上で実行されているウェブアプによって出力され、リモートコンピュータ１０７から移動通信装置１１０に至る表示データを表す。
【００３３】
図５は、１つのシナリオにおける移動通信装置１００とリモートコンピュータ１０７との間で行われる一連の通信を示す。図中の時間は、上から下に進行する。上部の矢印１３０は、アプリケーション実行要求を表す。これは、アプリケーションプログラムの第２のインスタンスをリモートコンピュータ上で起動させる通信である。いくつかの例では、アプリケーション実行要求は、移動通信装置１００の電話番号を含む。次の矢印１３１は、アプリケーションプログラムの第２のインスタンスが起動されたことをリモートコンピュータ１０７が確認するための肯定応答通信を表す。相対的により濃くより太い矢印として示された矢印１３１は、リモートコンピュータ１０７から移動通信装置１１０への通信が、移動通信装置１００からリモートコンピュータ１０７への反対方向への情報フローよりも多くの情報転送を伴う比較的広帯域の通信であることを示すものである。続く複数個の矢印の対１３２はアプリケーションストリーミングを表す。ユーザ入力が、リモートコンピュータ１０７上で実行されているウェブアプに通信され、その結果、新規の表示データがウェブアプから出力され、表示のために元の移動通信装置１００に戻される。矢印１３３と矢印１３４との最後の対は、移動通信装置１００中のユーティリティプログラムがリモートコンピュータ１０７上でのウェブアプ実行を終了させることを表す。一例では、リモートコンピュータ１０７は、実行を終了し、肯定応答１３４を送信することに加えて、ウェブアプの実行の状態に関する追加のステータス情報を移動通信装置１００に送信する。このステータス情報は、次いでアプリケーションが終了したときのアプリケーション状態でアプリケーションの実行を再開するために移動通信装置１００上で使用できる。ユーザの視点からは、アプリケーションは、アプリケーションプログラムの実行場所が決して変化しないかのように実行され続ける。ＧＵＩは、ユーティリティプログラムがウェブアプ実行を終了させる条件を変更するために使用できる。
【００３４】
一実施形態では、アプリケーション実行要求は要求元の移動通信装置の電話番号を含む。サーバファームの操作者は、移動通信装置ユーザの電話番号の情報を維持し、関連するユーザ課金情報をも維持する。アプリケーション実行要求がサーバファームで受信されると、着信要求中の電話番号を使用して、関連する課金情報を特定し、提供しているウェブアプアプリケーションプログラムの使用に対して移動通信装置のユーザに課金する。あるいは、電話番号以外の識別情報をアプリケーション実行要求中に埋め込み、この識別情報を使用して、操作者がウェブアプアプリケーションプログラムの使用に対してユーザに課金できるようにする。
【００３５】
いくつかの実施形態では、リモートコンピュータ上で実行される第２のアプリケーションプログラムがある。この第２のアプリケーションプログラムは、ウェブアプ表示データとともに広告情報を元のクライアントインターフェースへの通信に含めることをホストインターフェースに行わせる。移動通信装置上で実行されるクライアントインターフェースおよびブラウザは、通信を受信し、ウェブアプ表示データとともに広告を移動通信装置のディスプレイ上にレンダリングさせる。別の例では、第２のアプリケーションプログラムは、リモートコンピュータと移動通信装置との間に通信があるとき、移動通信装置中に広告情報がロードされ記憶されることを引き起こす。アプリケーションプログラムの第１のインスタンスがローカルで移動通信装置上で呼び出されたとき、記憶されていた広告情報がアプリケーションプログラムの表示データとともに自動的に表示される。呼出し時に移動通信装置とサーバファームのリモートコンピュータとの間に通信がない場合であってもこの表示は行われる。
【００３６】
いくつかの特定の実施形態について説明の目的で上述したが、本特許文書の教示は、一般的な適用可能性を有し、上述した特定の実施形態に限定されない。移動通信装置の例としては、携帯電話、携帯情報端末（ＰＤＡ）、ラップトップコンピュータ、タブレットパーソナルコンピュータ、スマートフォン、またはウェブブラウザを実行する任意の移動装置がある。したがって、説明した特定の実施形態の様々な特徴の様々な修正形態、適応形態、および組合せは、以下の特許請求の範囲から逸脱せずに実施できる。
以下に、本願出願の当初の特許請求の範囲に記載された発明を付記する。
［１］（ａ）移動通信装置上で使用されているリソースの第１の量を示す第１の値を記憶すること、
（ｂ）起動しようとしているアプリケーションプログラムのローカルインスタンスが前記移動通信装置上で実行された場合に、前記ローカルインスタンスが使用するであろう前記リソースの第２の量を示す第２の値を記憶すること、
（ｃ）少なくとも一部を前記第１の値および前記第２の値に基づいて、起動しようとしている前記アプリケーションプログラムを前記移動通信装置上で実行すべきか、または前記移動通信装置上で実行すべきではないかを決定することと、
（ｄ）（ｃ）での前記決定が、前記アプリケーションプログラムを前記移動通信装置上で実行すべきであるという決定である場合、前記アプリケーションプログラムの前記ローカルインスタンスを前記移動通信装置上で起動させることと、
（ｅ）（ｃ）での前記決定が、前記アプリケーションプログラムを前記移動通信装置上で実行すべきではないという決定である場合、１）前記アプリケーションプログラムのリモートインスタンスをリモートコンピュータ上で起動させること、および２）広域ネットワーク上で前記リモートインスタンスと対話し、前記リモートインスタンスによって出力されるデータを閲覧するために前記移動通信装置のユーザが使用できるウェブブラウザを前記移動通信装置上で実行すること、を含む方法。
［２］前記アプリケーションプログラムの前記リモートインスタンスはウェブアプであり、前記広域ネットワークはインターネットを含み、前記移動通信装置は携帯電話であり、（ａ）〜（ｅ）は、前記携帯電話上で実行されているユーティリティプログラムによって実行される、［１］記載の方法。
［３］前記ユーティリティプログラムはグラフィカルユーザインターフェース（ＧＵＩ）を有する、［２］記載の方法。
［４］前記ＧＵＩは、（ｃ）での前記決定が、前記第１および第２の値とは無関係に、前記アプリケーションプログラムを前記移動通信装置上で実行すべきであるという決定になることを指定するために使用できる、［３］記載の方法。
［５］前記ＧＵＩはアプリケーションプログラムのリストを前記移動通信装置のディスプレイ上に表示させ、前記ＧＵＩはリソース量値の関連付けられたリストを前記ディスプレイ上に表示させ、リソース量値の前記リスト中の各リソース量値が、アプリケーションプログラムの前記リスト中の前記アプリケーションプログラムの各々に関連付けられる、［３］記載の方法。
［６］（ｃ）は、前記第１の値と前記第２の値との合計が予め定められたしきい値を超えるかどうかを決定することを含み、前記合計が前記予め定められたしきい値を超えると決定された場合、（ｃ）で前記アプリケーションプログラムを前記移動通信装置上で実行すべきではないと決定する、［１］記載の方法。
［７］前記リソースは、電池容量、メモリ容量、処理能力容量、電池使用量、メモリ使用量、および処理能力使用量を含むグループから選択される、［１］記載の方法。
［８］前記アプリケーションプログラムは、マルチユーザ電子ゲーム、ビデオゲーム、ビデオ編集プログラム、ビデオメッセージングプログラム、および計算集約的な財務分析プログラムを含むグループから選択される、［１］記載の方法。
［９］（ａ）移動通信装置上で、アプリケーションプログラムの第１のインスタンスをローカルで前記移動通信装置上で起動すべきか、または前記アプリケーションプログラムの第２のインスタンスをリモートでウェブアプとして起動すべきかの決定を行うこと、
を含み、
前記決定は、少なくとも一部が、前記アプリケーションの前記第１のインスタンスを前記移動通信装置上で起動し実行しようとした場合、前記アプリケーションプログラムの前記第１のインスタンスがどの位の量のリソースを消費するかの推定値に基づく、方法。
［１０］（ｂ）前記移動通信装置のディスプレイ上に、アプリケーションプログラムのリストを表示すること、
をさらに含み、前記リスト中の前記アプリケーションプログラムは、前記移動通信装置上で実行されているアプリケーションプログラムを含み、前記リスト中の前記アプリケーションプログラムは、リモートでウェブアプとして実行されているアプリケーションプログラムを含み、前記移動通信装置上で実行されているユーティリティプログラムは、前記リスト中の前記アプリケーションプログラムを決定し、（ａ）での前記決定をも行う、［９］記載の方法。
［１１］前記移動通信装置はブラウザプログラムを実行する携帯電話であり、前記ブラウザプログラムは、前記ウェブアプから受信された表示データをレンダリングするために使用される、［９］記載の方法。
［１２］アプリケーションプログラムの第１のインスタンス、ウェブブラウザ、およびユーティリティプログラムを記憶するメモリと、
前記ユーティリティプログラムを実行するプロセッサと、
を備える移動通信装置であって、
前記ユーティリティプログラムの実行は、前記アプリケーションプログラムの前記第１のインスタンスをローカルで前記移動通信装置上で起動するかどうか、または前記アプリケーションプログラムの第２のインスタンスをリモートでリモートコンピュータ上でウェブアプとして起動するかどうかを決定し、
前記決定は、少なくとも一部を、前記アプリケーションプログラムを前記移動通信装置上で起動し実行しようとした場合、前記アプリケーションプログラムが消費するであろうリソースの量に基づいて行われる、移動通信装置。
［１３］アプリケーションプログラムのリストを表示するディスプレイ、をさらに備え、
前記リストは、前記リスト中に記載された前記アプリケーションプログラムの各々のリソース量値をも含み、前記プロセッサによる前記ユーティリティプログラムの実行は、前記リストを前記ディスプレイ上に表示させる、［１２］記載の移動通信装置。
［１４］前記決定が、前記アプリケーションプログラムの前記第１のインスタンスを前記移動通信装置上で起動し実行しようとした場合、前記リソースの使用量しきい値を超えるかどうかを決定することを含む、［１２］記載の移動通信装置。
［１５］電池と、
前記電池に結合された電力管理集積回路と、
をさらに備え、
前記電力管理集積回路は前記プロセッサに電池情報を提供し、前記プロセッサは、前記使用量しきい値を超えるかどうかの決定に前記電池情報を使用する、［１４］記載の移動通信装置。
［１６］前記アプリケーションプログラムの前記第２のインスタンスがリモートでウェブアプとして起動された場合、前記アプリケーションプログラムの前記第２のインスタンスのいかなる部分も前記移動通信装置上では実行されない、［１２］記載の移動通信装置。
［１７］ウェブブラウザ、およびアプリケーションプログラムの第１のインスタンスを記憶するメモリと、
前記アプリケーションプログラムの前記第１のインスタンスをローカルで前記移動通信装置上で起動するかどうか、または前記アプリケーションプログラムの第２のインスタンスをリモートでリモートコンピュータ上でウェブアプとして起動するかどうかを決定する手段と、
を備える移動通信装置。
［１８］前記決定は、少なくとも一部を、前記アプリケーションプログラムの前記第１のインスタンスを前記移動通信装置上で起動し実行しようとした場合、前記第１のインスタンスが消費すると推定されるリソースの量に基づいて行われる、［１７］記載の移動通信装置。
［１９］前記移動通信装置はグラフィカルユーザインターフェースを有し、前記グラフィカルユーザインターフェースは、前記手段がアプリケーションプログラムをリモートでウェブアプとして起動すると決定する条件を変更するために使用できる、［１７］記載の移動通信装置。
［２０］前記手段は、前記リモートコンピュータ上でのウェブアプの実行を終了する能力を有する、［１７］記載の移動通信装置。
［２１］（ａ）アプリケーションプログラムのローカルインスタンスを移動通信装置上で実行した場合、前記ローカルインスタンスが使用するであろうリソースの量を示す情報を維持し、
（ａ）前記ローカルインスタンスをローカルで移動通信装置上で起動すべきか、または前記アプリケーションプログラムのリモートインスタンスをウェブアプとして前記移動通信装置から使用することができるようにリモートで起動すべきかを決定する、複数のステップを実行するための、プロセッサ読取可能な媒体上に記憶されたプロセッサ実行可能な命令セットであって、
前記決定は、少なくとも一部は、（ａ）で維持された前記情報に基づき、前記プロセッサ読取可能な媒体は前記移動通信装置の一部である、プロセッサ実行可能な命令セット。
【図１】
0005795349.tif 000002
【図２】
0005795349.tif 000003
【図３】
0005795349.tif 000004
【図４】
0005795349.tif 000005
【図５】
0005795349.tif 000006