(57)【特許請求の範囲】
【請求項１】
クライアントとサーバとの間の動的計算割当てのための方法であって、
パフォーマンス特性に関する少なくとも一つのファクタの現在の値を決定することであって、前記少なくとも一つのファクタが残存バッテリ寿命を含む、ことと、
前記決定された値を、前記少なくとも一つのファクタの所定の閾値と比較することと、
前記比較に基づいて、前記クライアントと前記サーバとの間で画像をレンダリングするためのレンダリング計算を割り当てることと、
計算が前記サーバに割り当てられた場合に、前記レンダリング計算を用いてレンダリングされた画像の少なくとも一部分を含む、前記レンダリング計算の結果を前記クライアントに返すことと、を備え、
前記レンダリング計算を割り当てることは、単一使用セッション中に前記クライアントと前記サーバとの間で割り当てを切り替えることを含む、方法。
【請求項２】
前記少なくとも一つのファクタが接続性レベルを更に含む、請求項１に記載の方法。
【請求項３】
前記接続性レベルの前記決定された値が前記所定の閾値より下である場合、前記計算は前記サーバに割り当てられる、請求項２に記載の方法。
【請求項４】
前記少なくとも一つのファクタがデータ品質を更に含む、請求項１に記載の方法。
【請求項５】
データ品質に対する前記決定された値が前記所定の閾値より下である場合、前記計算は前記サーバに割り当てられる、請求項４に記載の方法。
【請求項６】
バッテリ寿命の前記決定された値が前記所定の閾値より下である場合、前記計算は前記サーバに割り当てられ、
バッテリ寿命の前記決定された値が前記所定の閾値より上であり、且つデータ品質が別の所定の閾値より上である場合、前記計算は前記クライアントに割り当てられる、請求項１に記載の方法。
【請求項７】
クライアントとサーバとの間の動的計算割当てのための方法であって、
パフォーマンス特性に関する少なくとも一つの第１のファクタの現在の値を決定することと、
前記決定された値を、そのファクタの所定の閾値と比較することと、
バッテリ寿命の現在の値を決定することと、
前記決定された値を、前記バッテリ寿命の所定の閾値と比較することと、
前記比較に基づいて、前記クライアントと前記サーバとの間で画像をレンダリングするためのレンダリング計算を割り当てることであって、前記バッテリ寿命の前記決定された値が前記バッテリ寿命の所定の閾値より下である場合、前記バッテリ寿命に基づく割り当てが前記第１のファクタに基づく割り当てに優先する、ことと、
計算が前記サーバに割り当てられた場合に、前記レンダリング計算を用いてレンダリングされた画像の少なくとも一部分を含む、前記レンダリング計算の結果を前記クライアントに返すことと、を備え、
前記レンダリング計算を割り当てることは、単一使用セッション中に前記クライアントと前記サーバとの間で割り当てを切り替えることを含む、方法。
【請求項８】
前記第１のファクタが接続性である、請求項７に記載の方法。
【請求項９】
所望の計算を決定することをさらに含み、割当てが、前記所望の計算を割り当てるように指揮される、請求項１に記載の方法。
【請求項１０】
割当てが継続して行われる、請求項１に記載の方法。
【請求項１１】
動的計算割当てのためのシステムであって、
画像の少なくとも一部分をレンダリング可能なプロセッサを有するサーバと、
前記サーバと通信するクライアントであって、画像の少なくとも一部分をレンダリング可能なプロセッサを有するクライアントと、
残存バッテリ寿命を含む少なくとも一つのファクタの現在の値に基づいて前記クライアントと前記サーバとの間でレンダリングを割り当てる割り当て論理と、を備え、
前記サーバは、計算が前記サーバに割り当てられた場合に、レンダリングされた画像の少なくとも一部分を含む、前記レンダリングの結果を前記クライアントに返すように構成されており、
前記割り当て論理は、単一使用セッション中に前記クライアントと前記サーバとの間で割り当てを切り替えるように構成されている、システム。
【請求項１２】
前記クライアントがハンドヘルド遠隔通信装置である、請求項１１に記載のシステム。
【請求項１３】
前記割当て論理が、前記サーバの前記プロセッサ上で実行される、請求項１１に記載のシステム。
【請求項１４】
前記割当て論理が、前記クライアントの前記プロセッサ上で実行される、請求項１１に記載のシステム。
【発明の詳細な説明】
【背景技術】
【０００１】
サーバ／クライアントシステムにおいて、サーバおよびクライアントはそれぞれ、計算能力およびレンダリング能力を有し得る。ただし、所与のどの適用例に対しても、計算およびレンダリングは通常、全体がサーバによって、またはクライアントによって行われ、計算がサーバによって行われるべきか、それともクライアントによって行われるべきかの指定には変化がない。サーバの所で計算が行われるシンクライアントシステムでは、高接続性の時間には、計算およびレンダリングパフォーマンスが向上し得るが、低接続性の時間には、クライアントは、遅いパフォーマンスを検出することになる。クライアントの所で計算が行われるファットクライアントシステムでは、クライアントは、より低品質での計算およびレンダリングに制限され得る。
【発明の概要】
【０００２】
本開示は概して、動的計算割当てのためのシステムおよび方法に関する。記載するシステムは通常、計算が可能なプロセッサを有するサーバと、サーバと通信するとともに計算が可能なプロセッサを有するクライアントと、パフォーマンス特性に関する少なくとも１つのファクタの現在のレベルに基づいて、クライアントとサーバとの間で計算を割り当てる割当て論理とを含む。
【０００３】
いくつかの例示的システムにおいて、クライアントは、ハンドヘルド遠隔通信装置でよい。いくつかの例示的システムにおいて、割当て論理は、サーバのプロセッサ上で稼働することもでき、クライアントのプロセッサ上で稼働することもできる。他の例示的システムにおいて、少なくとも１つのファクタは、接続性レベル、データ品質、または残存バッテリ寿命の１つでよい。
【０００４】
本開示は概して、動的計算割当てのための方法にも関する。記載する方法は、パフォーマンス特性に関する少なくとも１つのファクタの現在の値を決定することを含み得る。ファクタは、たとえば、接続性、データ品質、または残存バッテリ寿命でよい。方法は、次いで、決定値を、そのファクタの所定の値と比較すること、ならびに比較に基づいてサーバとクライアントとの間で計算を割り当てることを含む。
【０００５】
いくつかの例示的方法において、ファクタは、接続性レベルに関し、接続性レベルの決定値が所定の閾値より下である場合、計算はサーバに割り当てられる。他の例示的方法において、ファクタは、データ品質に関し、データ品質に対する決定値が所定の閾値より下である場合、計算はサーバに割り当てられる。さらに他の例示的方法において、ファクタは、残存バッテリ寿命に関し、バッテリ寿命の決定値が所定の閾値より下である場合、計算はサーバに割り当てられる。それ以外の例示的方法では、第２のファクタの現在の値を決定してよく、決定されたその値は、第２のファクタの所定の閾値と比較され、第２のファクタの比較に基づいて計算が割り当てられるが、ここで第２のファクタに基づく割当ては、第１のファクタに基づく割当てに優先する。この様々な例において、第１のファクタは接続性でよく、第２のファクタは、計算された値の品質でよく、または第１のファクタは接続性でよく、第２のファクタは残存バッテリ寿命でよい。他の例において、方法は、所望の計算を決定することを含んでよく、割当ては、所望の計算を割り当てるように行われ得る。いくつかの例では、割当ては、継続して行われ得る。
【０００６】
本開示は概して、動的計算割当てのためのプロシージャを実施するコンピュータ実行可能命令が格納されたコンピュータアクセス可能媒体にも関する。記載するプロシージャは、パフォーマンス特性に関する少なくとも１つのファクタの現在の値を決定すること、決定値をそのファクタの所定の値と比較すること、および比較に基づいてサーバとクライアントとの間で計算を割り当てることを含む。
【０００７】
それ以外のいくつかの例において、ファクタは、接続性レベル、データ品質、または残存バッテリ寿命の１つでよい。さらに他の例では、プロシージャは、第２の１つのファクタの現在の値を決定すること、決定値を第２のファクタの所定の閾値と比較すること、および第２のファクタの比較に基づいて計算を割り当てることを含んでよく、第２のファクタに基づく割当ては、第１のファクタに基づく割当てに優先し得る。
【０００８】
上述したことは要約であり、したがって、必然的に、細部の単純化、一般化、および省略を含む。したがって、本要約は例示に過ぎず、限定的であることは全く意図していないことが当業者には理解されよう。本明細書に記載する装置および／もしくはプロセスならびに／または他の主題の他の態様、特徴、および利点が、本明細書において説明する教示において明らかになるであろう。本概要は、「発明を実施するための形態」において後でさらに説明する概念一式を、簡略化した形で紹介するためのものである。本概要は、本特許請求対象の主要な特徴または本質的な特徴を識別することは意図しておらず、本特許請求対象の範囲を決定する一助として使われることも意図していない。
【０００９】
本開示の上記および他の特徴は、添付の図面と併せ見ると、以下の説明および添付の請求項からより十分に明らかになるであろう。こうした図面は、開示内容によるいくつかの実施形態を示すに過ぎず、したがって、その範囲を限定すると見なされるべきでないことを理解すると、開示内容は、添付の図面を使用して、特殊性および詳細が追加された上で記載されている。
【図面の簡単な説明】
【００１０】
【図１】いくつかの実施形態による、動的計算割当てのための基本的方法を示すフローチャートである。
【図２ａ】いくつかの実施形態に従って、本明細書に記載する方法のいくつかの部分がその上で稼働され得る例示的コンピューティング環境を示す概略図である。
【図２ｂ】いくつかの実施形態に従って、本明細書に記載する方法との使用に適した例示的クライアントサーバシステムを示す概略図である。
【図３】いくつかの実施形態による、動的計算割当てのためのシステムを示す概略図である。
【図４】いくつかの実施形態による、動的計算割当てのための方法を示すフローチャートである。
【図５】いくつかの実施形態による、動的計算割当てのための方法を示すフローチャートである。
【図６】いくつかの実施形態による、動的計算割当てに適したシステムを示す図である。
【発明を実施するための形態】
【００１１】
以下の詳細な説明において、本明細書の一部を成す添付の図面に対して参照が行われる。図面において、類似した記号は通常、文脈上別段の指示がない限り、類似した構成要素を識別する。詳細な説明、図面、および請求項において記載される例示的な実施形態は、限定的であることは意図していない。本明細書において提示する主題の精神または範囲から逸脱することなく、他の実施形態も使用することができ、他の変更も行うことができる。本開示の態様は、概して本明細書に記載し、図に示すが、非常に様々な異なる構成で配合され、置き換えられ、組み合わされ、分離され、設計されてよく、これらはすべて、本明細書において明示的に企図されることが容易に理解されよう。
【００１２】
本開示は、特に、動的計算割当てに関連した方法、機器、コンピュータプログラムおよびシステムを対象とする。様々な実施形態が、クライアントおよびサーバ、デスクトップおよびハンドヘルド装置、可変レベルの接続性を有する２つの装置、または可変レベルのパフォーマンス特性を有する２つの装置を含む任意の２つの装置の間の動的計算割当てに適用され得る。例示目的のためにのみ、本明細書における考察は、クライアント／サーバ環境に特に焦点を当てる。
【００１３】
クライアントサーバシステムにおいて、計算は、クライアントの所でもサーバの所でも行うことができる。計算は、概して、どのタイプの情報処理も指すことを意図している。計算は、たとえば、ゲームレンダリングを含むことを意図している。レンダリングは、２Ｄまたは３Ｄグラフィックスの画像形成を含むことを意図している。ゲームの場合、レンダリングはしばしば、リアルタイムで行われる。画像は、サーバの所でレンダリングされ、クライアントにダウンロードされてもよく、クライアントの所でレンダリングされてもよい。最も一般的には、サーバでレンダリングされるとき、画像はより高品質になるが、低接続性環境ではダウンロードするのに時間がかかり得る。画像ダウンロードのための相対的時間は、画像に関連づけられたデータファイルのサイズと、クライアント装置の接続速度との関数になり得る。対照的に、クライアントでレンダリングされるとき、画像は低品質になり得るが、画像を得るのにかかる時間は低下し得る。
【００１４】
本明細書で開示する様々な例によると、計算は、クライアントの所でもサーバの所でも行うことができ、クライアントの所で計算をするべきか、それともサーバの所で計算をするべきかという動的決定が行われる。この決定は、いくつかのファクタに基づき得る。さらに、決定が行われた後で、その決定を行うのに使われたファクタの値が変わった場合は、新たな決定を動的に行えばよい。動的計算割当てにおいて考慮され得る３つのファクタは、モバイル装置の接続速度、モバイル装置の残存バッテリ寿命、および画像のケースでは、画像の許容可能品質を含む。こうしたファクタは、例示的であることだけを意図しており、限定的であることは意図していない。
【００１５】
したがって、図１は、動的計算割当てのための基本的方法１０を示す。図示するように、所望の計算が決定される［ブロック１２］。この計算は、たとえば、特定の画像のレンダリングでよい。少なくとも１つのファクタの値が、所定の閾値と突き合わせて評価される［ブロック１４］。計算の割当てが、ファクタの値が閾値より上か下かに基づいて行われる［ブロック１６］。
【００１６】
図２ａは、動的計算割当ての方法とともに使用するためのコンピューティングシステムの例である。本明細書で開示する様々な例において、コンピューティングシステムのコンピュータ１００は、クライアントまたはサーバとして働き得る。図２ａは、プロセッサとも呼ばれる中央処理装置（ＣＰＵ）１１０と、メインメモリ１２０と、１つまたは複数の大容量記憶装置１３０とを含むコンピュータ１００を含む。プロセッサ１１０は概して、マイクロプロセッサ（μＰ）、マイクロコントローラ（μＣ）、デジタル信号プロセッサ（ＤＳＰ）、またはそれらの任意の組合せを含むが、それに限定されない、所望のどの構成でもよい。したがって、各プロセッサ１１０は、プログラム命令を実行する論理ならびにたとえば論理演算ユニット（ＡＬＵ）、浮動小数点ユニット（ＦＰＵ）、デジタル信号処理（ＤＳＰ）コア、レジスタ、累算器など、他の機能ブロックを含み得る。メインメモリ１２０は、ランダムアクセスメモリ（ＲＡＭ）などの揮発性メモリ、読出し専用メモリ（ＲＯＭ）およびフラッシュメモリストレージなどの不揮発性メモリ、磁気ディスク記憶装置（たとえば、ハードディスクドライブ、すなわちＨＤＤ）などのデータ記憶装置、テープストレージ、光ストレージ（たとえば、コンパクトディスク、すなわちＣＤ、デジタル多用途ディスク、すなわちＤＶＤ）、または取外し可能、固定式、揮発性もしくは不揮発性でよい他のマシン可読記憶媒体を含むが、それに限定されない、適切などの形のメモリでもよい。
【００１７】
大容量記憶装置１３０およびそれに関連したコンピュータ記憶媒体は、コンピュータ１００のために、コンピュータ可読命令、データ構造、プログラムモジュールおよび他のデータを格納する。大容量記憶装置１３０は、オペレーティングシステム１４０、アプリケーションプログラム１５０、プログラムモジュール１６０、およびデータベース１８０も含み得る。コンピュータ１００は、ユーザがコマンドおよびデータを入れるためのユーザ入力装置１９０をさらに含む。入力装置は、電子デジタイザ、マイクロホン、キーボードおよび一般的にはマウス、トラックボールまたはタッチパッドと呼ばれるポインティングデバイスを含み得る。他の入力装置は、ジョイスティック、ゲームパッド、衛星パラボラアンテナ、スキャナなどを含み得る。
【００１８】
こうしたおよび他の入力装置は、システムバスに結合されるユーザ入力インタフェースを介してプロセッサ１１０に接続することができるが、パラレルポート、ゲームポートやユニバーサルシリアルバス（ＵＳＢ）など、他のインタフェースおよびバス構造によって接続することもできる。コンピュータ１００などのコンピュータは、出力周辺インタフェース１９４などを介して接続することができる、スピーカなど、他の周辺出力装置も含み得る。
【００１９】
コンピュータ１００は、ネットワークインタフェース１９６に接続されたリモートコンピュータなど、１つまたは複数のコンピュータへの論理接続を使ってネットワーク接続された環境において動作し得る。リモートコンピュータは、パーソナルコンピュータ、サーバ、ルータ、ネットワークＰＣ、ピア装置または他の共通ネットワークノードでよく、コンピュータ１００に関連して上述した要素の多くまたはすべてを含み得る。リモートコンピュータは、コンピュータ１００の指定に依存して、クライアントまたはサーバの他方と見なすことができる。ネットワーク接続環境は、会社、企業ワイドエリアネットワーク（ＷＡＮ）、ローカルエリアネットワーク（ＬＡＮ）、イントラネットおよびインターネットにおいてよく見られる。ソースおよび宛先マシンは、ネットワーク１０８または他の任意の手段によって接続される必要はなく、代わりに、ソースプラットフォームによって書き込まれるとともに１つまたは複数の宛先プラットフォームによって読み取られることが可能な任意の媒体を介して、データが移動され得る。ＬＡＮまたはＷＬＡＮネットワーク接続環境において使われるとき、コンピュータ１００は、ネットワークインタフェース１９６またはアダプタを通してＬＡＮに接続される。ＷＡＮネットワーク接続環境において使われるとき、コンピュータ１００は通常、モデムまたはインターネットやネットワーク１０８などのＷＡＮを介して通信を確立する他の手段を含む。コンピュータの間に通信リンクを確立する他の手段も使ってよいことが理解されよう。
【００２０】
図２ｂは、本明細書で開示する動的計算割当てとともに使用するための例示的クライアントサーバシステムまたは環境を示す。本明細書における「クライアント」および「サーバ」という用語の使用は、限定的であることは意図しておらず、本明細書で開示するシステムおよび方法は、標準クライアントと標準サーバとの間、無線装置とデスクトップとの間、２つのデスクトップもしくはノート型コンピュータなど、２つの同様のマシンの間、または適切な任意の装置の間を含む、任意の２つの装置の間の動的計算割当てにも適用することができ、ここで、装置の間の接続性レベルなどのパフォーマンス特性は変わり得る。装置の間の接続は、無線、ダイヤルアップ、または装置を接続する他の適切などの手段でもよく、その接続性レベルは変わり得る。例示的クライアントサーバシステムは、ハンドヘルド遠隔通信装置（クライアント）およびセルラーホンサービスプロバイダサーバまたは他のコンテンツプロバイダサーバ（サーバ）を含む。
【００２１】
本開示の目的のために、ハンドヘルド遠隔通信装置とサーバとの間の計算割当てのシステムを、特に参照する。ハンドヘルド遠隔通信装置（モバイル装置またはセル電話装置としても知られる）は、いくつかの実施形態では、通常はタッチ入力または小型キーボードを備えた表示画面を有する、ポケットサイズのコンピューティング装置でよい。携帯情報端末（ＰＤＡ）のケースでは、入力と出力は、タッチスクリーンインタフェースに組み合わされる。
【００２２】
クライアントとは、ネットワークにより、別のコンピュータシステム、すなわちサーバ上のリモートサービスにアクセスするアプリケーションまたはシステムである。クライアントサーバモデルは、インターネットにおいて使われ、ここでユーザは、インターネットプロトコルスイート（internet protocol suiet）によりリモートシステム上で動作するサービスに接続することができる。クライアントサーバシステムはしばしば、２層アーキテクチャにおいて動作し、すなわちクライアントは１つの層として作用し、サーバはもう１つの層として作用する。このタイプのアーキテクチャは、装置の間のファイルおよび資源の共有を容易にする。最も基本的なタイプのクライアントサーバアーキテクチャでは、２つのタイプのホスト、すなわちクライアントおよびサーバのみを利用する。クライアントサーバソフトウェアアーキテクチャモデルでは、クライアントシステムを、コンピュータネットワークを介して通信するサーバシステムとは区別する。クライアントサーバ環境では、クライアントは、データを作成し、またはサーバに対して他の要求を行う。
【００２３】
クライアント／サーバモデルは、ネットワークコンピューティングの中心である。最新のビジネスアプリケーションならびにインターネットアプリケーションプロトコル（ＨＴＴＰ、ＳＭＴＰ、テルネット、ＤＮＳ、およびそれ以外など）は、クライアント／サーバモデルを使う。クライアントソフトウェアの各インスタンスは、接続された１つまたは複数のサーバにデータ要求を送ることができる。対して、サーバは、こうした要求を受諾し、処理し、要求された情報をクライアントに戻すことができる。この概念は、様々な理由により、異なる多くの種類のアプリケーションに適用され得るが、アーキテクチャは、根本的には同じままである。
【００２４】
クライアントは概して、「ファットクライアント」または「シンクライアント」のどちらかとして分類される。通常、計算割当ては、クライアントがファットクライアントであるか、それともシンクライアントであるかに基づく。さらに、ファットクライアントまたはシンクライアントとして指定されると、その指定は通常、変更されない。
【００２５】
ファットクライアント（シッククライアントまたはリッチクライアントとしても知られる）とは、任意のデータ処理操作自体のバルクを実施し、必ずしもサーバに依拠しないクライアントである。ファットクライアントはしたがって、低接続性環境であっても比較的高速で動作することができる。ただし、特にハンドヘルド装置クライアントを使う場合、クライアントは、限られたシステム資源のせいで、またはバッテリ寿命を保つために、比較的低品質で計算またはレンダリングをするように構成され得る。
【００２６】
シンクライアントとは、比較的極小のクライアントである。シンクライアントは通常、サーバの資源を使う。計算およびレンダリングはしたがって、サーバで行われ、サーバによってクライアントに与えられる。したがって、たとえば、シンクライアントは、アプリケーションサーバ（必要とされる任意のデータ処理のバルクを実施するサーバ）によって与えられたピクチャをグラフィカルに表示する。処理がサーバで行われると、クライアントに送られるデータがより大きくなるので、シンクライアントのパフォーマンスは、ネットワークとのクライアントの接続性に依存し得る。シンクライアントとともに存在する問題は、遅い計算またはレンダリング速度、さらには遅い接続性環境における計算またはレンダリングデータの遅い受信速度である。このことは、「ラグ」につながる。ラグとは、コンピュータがフリーズし、次いである程度後で継続する場合に使われる用語である。多くのビデオゲームにおいて、ラグは、正常なゲームプレイを中断するので望ましくない。
【００２７】
図２ｂは、クライアントノード３０５およびサーバノード３５５を示す典型的なクライアントサーバシステム３００を示す。図２ｂは、共通クライアントサーバシステムを例示することだけを意図しており、本明細書で開示する動的計算レンダリングのシステムおよび方法がその上で使われ得るクライアントサーバシステムのタイプを限定することは全く意図していないことを理解されたい。図２ｂに示すように、クライアントノード３０５およびサーバノード３５５はそれぞれ、オペレーティングシステム３０６、３５６およびアプリケーションプログラム３０２、３５２を含む。アプリケーションプログラム３０２、３５２とオペレーティングシステム３０６、３５６との間の対話が、双方向矢印３０４、３５４で概略的に示されている。このデュアルプログラムシステムは、任意のクライアントサーバシステムにおいても用いられ得る。さらに、このシステムの変形が、当業者には明らかであろう。
【００２８】
リモートプロシージャコール（ＲＰＣ）関数を提供するために、アプリケーションプログラムは、パラメータ要求を交換することによって、スタブプロシージャソフトウェア３１０、３６０と（矢印３０８、３１８で概略的に図示するように）対話する。各スタブプロシージャは、概してそれぞれのオペレーティングシステム３０６、３５６に関連づけられており、コンピュータタイプに従って、パラメータを、所定のメッセージ形式に並べる（またはフラット化する）。ＲＰＣは、データを転送することや、操作を実施するよう、サーバに要求することができる。したがって、このようなアクションを呼び出し、または応答するように、適切なスタブプロシージャが、各ノードにおいて具体的に設計されなければならない。
【００２９】
トランスポートエンティティ３１４、３６４が設けられるが、これらは、プロトコルスタックのトランスポートレイヤ内のソフトウェアである。トランスポートエンティティ３１４、３１６は、（矢印３１２、３６２で概略的に図示するように）スタブプロシージャと対話して、メッセージを受信し、パケットにフォーマットし、ネットワークアダプタ３１６、３６６を経由するネットワークチャネル３１５を介して渡す。こうしたアダプタ３１６、３６６は、ネットワークチャネル３１５とインタフェースをとるために、信号特性、電気特性および機械特性、ならびに中継回路の一部または全部を組み込む。トランスポートエンティティは、物理ネットワークチャネルに依存せずに、クライアントとサーバとの間の、信頼できる費用効果が高いデータトランスポートを容易にするように設けられる。
【００３０】
ＲＰＣシステムを実装するために、クライアント３０５のアプリケーションプログラム３０２は、たとえば、従来のプロシージャコール用にパラメータを渡すのと同様のやり方でパラメータを渡すことによって、スタブプロシージャ３１０をコールする。クライアントスタブプロシージャ３１０はパラメータをフラット化し、パラメータは、データパケットとしてサーバ３５５に送信するためにトランスポートエンティティ３１４に渡される。ＲＰＣは無接続システムなので、トランスポートエンティティは通常、アダプタ３１６に、およびチャネル上にフォワードするのに先立って、パケットにヘッダーを添付する。パケットがサーバに届くと、アダプタ３６６は、トランスポートエンティティ３６４に対して、およびサーバスタブプロシージャ３６０上にパケットを渡し、プロシージャ３６０は、パラメータを非フラット化する。スタブプロシージャ３６０は次いで、アプリケーションプログラム３５２をコールし、従来のやり方でパラメータを渡す。
【００３１】
アプリケーションプログラム３５２は、その作業を完了した後、ローカルプロシージャコールについて従来のやり方で、たとえば、結果を戻すことによって、復帰する。スタブプロシージャ３６０は、結果をメッセージにフラット化し、トランスポートエンティティ３６４に渡し、エンティティ３６４の所で返信パケットが形成され、チャネル３１５を超えてクライアント３０５に転送される。返信パケットを受信すると、トランスポートエンティティ３１４は、パケットを、非フラット化するためにクライアントスタブプロシージャ３１０に渡す。最後に、スタブプロシージャは、アプリケーションプログラム３０２に返信パラメータを戻す。
【００３２】
図３は、クライアント２００がハンドヘルド通信装置であり、サーバ２０２が遠隔通信サービスプロバイダサーバ、または他のコンテンツプロバイダサーバである動的計算レンダリングの例を示す。クライアント２００とサーバ２０２との間の通信は、無線ネットワークやインターネットなどのネットワーク２０４を経由する。図示した例において、クライアント２００およびサーバ２０２は両方とも、レンダリング能力およびモデリング能力を有する。割当て論理２０１（割当てモジュールとも呼ばれる）が、パフォーマンス特性に関する少なくとも１つのファクタに基づいて、クライアント２００とサーバ２０２との間で計算を割り当てるために提供され得る。割当て論理２０１は、クライアント２００のプロセッサ上でも、サーバ２０２のプロセッサ上でも実行され得る。動的計算割当てを決定するために、環境ならびに／またはクライアント２００およびサーバ２０２に関するパフォーマンス特性に関するいくつかのファクタが評価され得る。第１のファクタ２１０は、接続性レベル２０６である。高接続性環境において、計算およびレンダリングは、サーバ２０２に割り当てられ得る。高接続性環境では、ラグまたは遅延の危険性が低下し、いくつかの例では、他のどのファクタも評価されなくてよい。したがって、高接続性環境において、サーバ２０２は、計算およびレンダリングを行い、概してラグなしで、クライアント２００に高品質データを送信する。低接続性環境では、ラグまたは遅延の危険性が増大するので、計算およびレンダリングは、クライアント２０２に割り当てられ得る。クライアント２００への割当ては概して、より低品質のレンダリングデータを結果的に生じるが、ラグは減少するか、またはなくなる。したがって、レンダリングデータの許容可能品質に関する第２のファクタ２１２を評価すればよい。低品質レンダリングデータが許容可能でない場合、低接続性環境にも関わらず、割当てはサーバ２０２に対して行われ得る。評価され得る第３のファクタ２１４は、クライアント２００の残存バッテリ寿命である。概して、クライアントでの計算またはレンダリングは、クライアントバッテリのより速い消耗につながる。したがって、このファクタ２１４は、最優先ファクタとして作用してよく、この場合、第１のファクタ２１０および第２のファクタ２１２に基づく割当てに関わらず、クライアントの残存バッテリ寿命が低い場合、割当てはサーバ２０２に対して行われる。クライアント、サーバ、または環境のより多くのファクタまたはパフォーマンス特性、またはより少ないファクタまたはパフォーマンス特性を、動的計算割当てにおいて評価することができる。
【００３３】
図３の実施形態から理解され得るように、クライアント２００およびサーバ２０２のパフォーマンス能力は、クライアント装置のユーザにとって有利なときに用いることができる。ファクタは、クライアント２００の使用中に、継続的に見直され得る。継続的ということは、所定の間隔、周期的、または他の周期で、絶え間ないことを含むことを意図している。したがって、単一使用セッション中に、計算割当ては切り換わり得る。切換え時間の決定は、サーバおよびクライアントの現在のパフォーマンスレベルに依存し得る。パフォーマンスレベルは、速度、レンダリング品質、メモリ可用性などを含むが、それに限定されない、いくつかのパフォーマンス特性に基づき得る。
【００３４】
図４は、動的計算割当てのための方法２２０を示す。計算を割り当てる際、１つまたは複数のファクタまたはパフォーマンス特性が評価され得る。このようなファクタまたはパフォーマンス特性の評価は、ファクタの現在の値を、そのファクタの所定の閾値と比較することを含み得る。図４ａに示すように、閾値は、考慮されるべき各ファクタごとに設定され得る［ブロック２２２］。閾値は、たとえば、接続性［ブロック２２４］、レンダリングデータ品質［ブロック２２６］、および残存バッテリ寿命［ブロック２２８］を含み得る。閾値の設定は、クライアントによる閾値の設定、もしくはクライアント上で閾値を予め設定すること、または閾値レベルの任意の明らかな設定変動も含むことを意図している。
【００３５】
動的計算割当ての方法２２０は次いで、少なくとも１つのファクタの現在の値を決定し［ブロック２２４］、決定された閾値を、設定閾値と比較する［ブロック２２６］。次いで、決定値と閾値との比較に基づいて、計算の割当てが行われ得る［ブロック２２８］。したがって、たとえば、決定された接続性が設定閾値より下の場合、割当ては、クライアントに対してなされ得る［ブロック２３０］。決定されたレンダリングデータ品質が設定閾値より下の場合、割当てはサーバに対してなされ得る［ブロック２３２］。決定された残存クライアントバッテリ寿命が設定閾値より下の場合、割当てはクライアントに対してなされ得る［ブロック２３４］。いくつかの例では、ファクタ値のうち１つの値を閾値と突き合わせて測定すること、およびその閾値に基づくある割当てが、他のどの割当てにも優先し得るように、ファクタに優先順位をつけることができる。したがって、たとえば、残存クライアントバッテリ寿命が設定閾値より下の場合、他のどの決定ファクタ値にも関わらず、割当てはサーバに対してなされ得る。同様に、決定されたデータ品質が許容可能品質の閾値より下になる場合、他のどの決定ファクタ値にも関わらず、割当てはサーバに対してなされ得る。
【００３６】
動的計算割当ての方法２２０は、クライアントの使用中に、継続して実行することができる。したがって、たとえば、方法２２０は、絶え間なく実行することもでき、５分おきなどの周期単位で実行することもでき、新たなレンダリングまたは計算プロセスが開始すると実行することもできる。
【００３７】
図５は、本開示内容による、動的計算割当てのための方法４００の、説明のための例のフロー図を示す。この方法は、少なくとも１つのファクタの現在の値を決定すること［ブロック４０２］を含む。様々な例において、ファクタは、接続性、データ品質、または残存バッテリ寿命でよい。方法は、次いで、決定値を、そのファクタの所定の値と比較すること［ブロック４０４］、および比較に基づいて計算を割り当てること［ブロック４０６］を含む。
【００３８】
いくつかの例では、図６の概略図に示すように、コンピュータシステム６００が、動的計算割当てのための方法の例を実施するように構成されたプロセッサ６０５を含み得る。他の実施形態では、方法の様々なステップまたは様々なステップのいくつかの部分は、プロセッサ６０５の外部で実施することができる。方法は、少なくとも１つのファクタの現在の値を決定すること［ブロック６０２］を含む。様々な実施形態において、ファクタは、接続性、データ品質、または残存バッテリ寿命でよい。方法は、次いで、決定値を、そのファクタの所定の値と比較すること［ブロック６０４］、および比較に基づいて計算を割り当てること［ブロック６０６］を含む。
【００３９】
本開示内容は、様々な態様の例示であることを意図している、本出願において記載した特定の実施形態によって限定されるべきでない。当業者には明らかなように、多くの修正および変形を、その精神および範囲から逸脱することなく行うことができる。本開示の範囲内である機能的に等価な方法および機器が、本明細書において列挙したものに加えて、上記記述から当業者には明らかであろう。このような修正形態および変形形態は、添付の請求項の範囲内であることを意図している。本開示は、このような請求項が享受する等価物の全範囲とともに、添付の請求項の用語によってのみ限定されるものである。本開示は、当然ながら変わり得る特定の方法、試薬、化合物組成または生体系に限定されないことを理解されたい。本明細書において使われる用語は、特定の実施形態を記載するためのものに過ぎず、限定的であることは意図していないことも理解されたい。
【００４０】
システムの態様のハードウェア実装形態とソフトウェア実装形態との間に、ほとんど違いはなく、ハードウェアまたはソフトウェアの使用は概して（ただし常にではないが、特定のコンテキストにおいてハードウェアとソフトウェアとの間の選択が重要になり得るという点で）、コストと効率のトレードオフを表す設計選択である。プロセスおよび／もしくはシステムならびに／または本明細書に記載した他の技術（たとえば、ハードウェア、ソフトウェア、および／もしくはファームウェア）がそれによって影響を受ける可能性があり、好ましい媒介がプロセスおよび／もしくはシステムならびに／または他の技術がそこで展開されるコンテキストとともに変わることになる様々な媒介がある。たとえば、速度および正確さが最重要であると実装者が判断した場合、実装者は、主としてハードウェアおよび／またはファームウェア媒介を選べばよく、柔軟性が最重要な場合、実装者は、主としてソフトウェア実装を選べばよく、または、さらに代替的には、実装者は、ハードウェア、ソフトウェア、および／もしくはファームウェアの何らかの組合せを選べばよい。
【００４１】
上記詳細な説明では、装置および／またはプロセスの様々な実施形態を、ブロック図、フローチャート、および／または例を使用して記載した。このようなブロック図、フローチャート、および／または例が１つまたは複数の機能および／または操作を含む限りにおいて、このようなブロック図、フローチャート、または例における各機能および／または操作は、広範なハードウェア、ソフトウェア、ファームウェア、またはそれらのほぼあらゆる組合せによって、個々におよび／またはまとめて実装され得ることが当業者には理解されよう。一実施形態では、本明細書に記載した主題のいくつかの部分は、特定用途向け集積回路（ＡＳＩＣ）、フィールドプログラム可能ゲートアレイ（ＦＰＧＡ）、デジタル信号プロセッサ（ＤＳＰ）、または他の統合形式により実装することができる。ただし、本明細書で開示した実施形態のいくつかの態様は、全体的または部分的に、集積回路で、１つもしくは複数のコンピュータ上で稼動する１つもしくは複数のコンピュータプログラムとして（たとえば、１つもしくは複数のコンピュータシステム上で稼動する１つもしくは複数のプログラムとして）、１つもしくは複数のプロセッサ上で稼動する１つもしくは複数のプログラムとして（たとえば、１つもしくは複数のマイクロプロセッサ上で稼動する１つもしくは複数のプログラムとして）、ファームウェアとして、またはそれらのほぼあらゆる組合せとして等価に実装することができ、ソフトウェアおよびまたはファームウェアのための回路構成の設計および／またはコードの記述は、本開示内容と照らし合わせて、十分に当業者の能力の範囲内であることが当業者には理解されよう。さらに、本明細書に記載した主題の機構は、様々な形のプログラム製品として分配されることが可能であり、本明細書に記載した主題の例示的な実施形態は、分配を実際に実施するのに使われる特定のタイプの信号担持媒体に関わらず成り立つことが当業者には理解されよう。信号担持媒体の例は、たとえばフロッピー（登録商標）ディスク、ハードディスクドライブ、コンパクトディスク（ＣＤ）、デジタルビデオディスク（ＤＶＤ）、デジタルテープ、コンピュータメモリなどの記録可能型媒体、ならびにデジタルおよび／またはアナログ通信媒体など（たとえば、光ファイバケーブル、コンジット、有線通信リンク、無線通信リンクなど）の送信型媒体を含むが、それに限定されない。
【００４２】
装置および／またはプロセスを、本明細書において記述したやり方で記述し、その後で技術規範を使って、記述したこのような装置および／またはプロセスをデータ処理システムに統合することは、当該分野において一般的であることが当業者には理解されよう。つまり、本明細書に記載した装置および／またはプロセスの少なくとも一部分は、妥当な量の実地試験により、データ処理システムに統合することができる。典型的なデータ処理システムは概して、システムユニットハウジング、ビデオ表示装置、揮発性および不揮発性メモリなどのメモリ、マイクロプロセッサおよびデジタル信号プロセッサなどのプロセッサ、オペレーティングシステムなどの計算用エンティティ、ドライバ、グラフィカルユーザインタフェース、およびアプリケーションプログラム、タッチパッドやスクリーンなどの１つもしくは複数の対話装置、ならびに／またはフィードバックループおよび制御モータ（たとえば、位置および／もしくは速さを検知するフィードバック、構成要素および／もしくは量を動かし、かつ／もしくは調整する制御モータ）を含む制御システムの１つまたは複数を含むことが、当業者には認識されよう。データコンピューティング／通信および／またはネットワークコンピューティング／通信システムにおいて通常見られるものなど、適切などの市販の構成要素も使用する典型的なデータ処理システムが実装され得る。
【００４３】
本明細書において記載した主題は、異なる他の構成要素に含まれ、または接続された異なる構成要素を示す場合がある。このような記述したアーキテクチャは、単に例であることを意図しており、実際には、同じ機能性を達成する多くの他のアーキテクチャが実装され得ることを理解されたい。概念的には、同じ機能性を達成するための構成要素どの配置も、所望の機能性が達成されるように効果的に「関連づけられる（ａｓｓｏｃｉａｔｅｄ）」。したがって、ある特定の機能性を達成するように、本明細書において組み合わされるどの２つの構成要素も、アーキテクチャにも仲介構成要素にも関わらず、所望の機能性が達成されるように、互い「に関連づけられている（ａｓｓｏｃｉａｔｅｄ  ｗｉｔｈ）」と見なすことができる。同様に、このように関連づけられたどの２つの構成要素も、所望の機能性を達成するように互いに「動作可能に接続されている」、または「動作可能に結合されている」と見なすことができ、そのように関連づけられることが可能などの２つの構成要素も、所望の機能性を達成するように、互いと「動作可能に結合可能」と見なすことができる。動作可能に結合可能であることの具体的な例は、物理的に係合可能および／もしくは物理的に対話する構成要素ならびに／または無線により対話可能および／もしくは無線により対話する構成要素ならびに／または論理的に対話し、かつ／もしくは論理的に対話可能な構成要素を含むが、それに限定されない。
【００４４】
本明細書における、実質的にどの複数形および／または単数形の用語の使用に関しても、当業者は、文脈および／または適用範囲に対して適切なように、複数形から単数形に、および／または単数形から複数形に言い換えることができる。様々な単数形／複数形の入換えは、分かりやすくするために、本明細書において明白に説明している場合がある。
【００４５】
概して、本明細書において、特に添付の請求項（たとえば、添付の請求項の本文）において使われる用語は概して、「オープンな」用語を意図することが当業者には理解されよう（たとえば、「含んでいる（ｉｎｃｌｕｄｉｎｇ）」という用語は、「含むが、それに限定されない」と解釈されるべきであり、「有する（ｈａｖｉｎｇ）」という用語は、「少なくとも有する」と解釈されるべきであり、「含む（ｉｎｃｌｕｄｅｓ）」という用語は、「含むが、それに限定されない」と解釈されるべきである、など）。導入される請求項詳述の具体的な数が指定されている場合、このような指定は、請求項において明示的に詳述され、このような詳述がない場合、このような指定は存在しないことが、当業者にはさらに理解されよう。たとえば、理解するための一助として、以下の添付の請求項は、請求項詳述を導入するために、「少なくとも１つの」および「１つまたは複数の」という導入フレーズの使用を含む場合がある。ただし、このようなフレーズの使用は、不定冠詞「ａ」または「ａｎ」による請求項詳述の導入が、このような導入される請求項詳述を含む、どの特定の請求項も、同じ請求項が「１つもしくは複数の」または「少なくとも１つの」などの導入フレーズおよび「ａ」または「ａｎ」などの不定冠詞を含む場合であっても、このようなただ１つの詳述を含む実施形態に限定することを含意するものと企図されるべきでない（たとえば、「ａ」および／または「ａｎ」は、「少なくとも１つの」または「１つもしくは複数の」を意味するものと解釈されるべきである）。同じことが、請求項詳述を導入するのに使われる定冠詞の使用に対しても成り立つ。さらに、導入される請求項詳述の具体的な数が明示的に詳述されている場合、このような詳述は、少なくとも詳述される数を意味する（たとえば、他の修飾子なしでの、「２つの詳述」という単なる詳述（ｂａｒｅ  ｒｅｃｉｔａｔｉｏｎ）は、少なくとも２つの詳述、または２つ以上の詳述を意味する）ものと解釈されるべきであることが当業者には理解されよう。さらに、「Ａ、Ｂ、Ｃなどの少なくとも１つ」に類似している慣習が使われる事例では、概して、このような構文は、当業者がこの慣習を理解するであろう意味の範囲内であることを意図している（たとえば、「Ａ、Ｂ、Ｃの少なくとも１つを有するシステム」は、Ａのみ、Ｂのみ、Ｃのみ、ＡおよびＢを一緒に、ＡおよびＣを一緒に、ＢおよびＣを一緒に、ならびに／またはＡ、Ｂ、Ｃを一緒になどを有するシステムを含むが、それに限定されない）。「Ａ、Ｂ、またはＣなどの少なくとも１つ」に類似している慣習が使われる事例では、概してこのような構文は、当業者がこの慣習を理解するであろう意味の範囲内であることを意図している（たとえば、「Ａ、Ｂ、またはＣの少なくとも１つを有するシステム」は、Ａのみ、Ｂのみ、Ｃのみ、ＡおよびＢを一緒に、ＡおよびＣを一緒に、ＢおよびＣを一緒に、ならびに／またはＡ、Ｂ、Ｃを一緒になどを有するシステムを含むが、それに限定されない）。記述、請求項、または図面のいずれにおいても、２つ以上の代替用語を提示するほぼどの離接語および／またはフレーズも、用語の１つ、用語のいずれか、または両方の用語を含む可能���を企図するものと理解されるべきであることが、当業者にはさらに理解されよう。たとえば、「ＡまたはＢ」というフレーズは、「Ａ」もしくは「Ｂ」または「ＡおよびＢ」の可能性を含むものと理解されよう。
【００４６】
さらに、開示内容の特徴または態様が、マーカッシュグループによって記載される場合は、開示内容も、マーカッシュグループのどの個々のメンバまたはメンバのサブグループに関しても、そうすることによって記載されることが当業者には理解されよう。
【００４７】
当業者には理解されるように、書面による明細を与えるためなど、あらゆる目的のために、本明細書で開示したすべての範囲は、あらゆる可能部分範囲およびその部分範囲の組合せも包含する。列挙したどの範囲も、少なくとも２等分、３等分、４等分、５等分、１０等分などに分解される同じ範囲を十分に記述し可能にするものとして、容易に認識することができよう。非限定的例として、本明細書において論じた各範囲は、下３分の１、中３分の１および上３分の１などに容易に分解され得る。やはり当業者によって理解されるように、「最大」、「少なくとも」、「より大きい」、「より少ない」など、すべての言葉は、詳述される数を含み、上述したように部分範囲に続いて分解され得る範囲を指す。最後に、当業者には理解されるように、範囲とは、個々の各メンバを含む。したがって、たとえば、１〜３個のセルを有するグループは、１、２、または３つのセルを有するグループを指す。同様に、１〜５個のセルを有するグループは、１、２、３、４、または５つのセルを有するグループを指し、以下同様である。
【００４８】
様々な態様および実施形態を本明細書で開示したが、他の態様および実施形態が当業者には明らかであろう。本明細書で開示した様々な態様および実施形態は、説明のためであり、限定的であることは意図しておらず、その真の範囲および精神は、添付の請求項によって指示される。
【図１】
0005571184.tif 000002
【図２ａ】
0005571184.tif 000003
【図２ｂ】
0005571184.tif 000004
【図３】
0005571184.tif 000005
【図４】
0005571184.tif 000006
【図５】
0005571184.tif 000007
【図６】
0005571184.tif 000008