(57)【要約】  ワイヤレスポータブルコンピューティングデバイス(PCD)のためのドメインネームサービス(DNS)プリフェッチング、コンテンツプリフェッチング、またはその組合せを実行するための方法およびシステムが開示される。システムおよび方法は、PCDのディスプレイ画面上にウェブページをレンダリングするステップと、ウェブページ内の任意の可視リンクについてのDNSプリフェッチを実行するステップとを含み得る。さらに、方法は、画面変更操作(すなわち、スクロール操作)が実行されているかどうかを決定するステップと、画面変更操作が実行されているとき、ディスプレイ画面に示されたリンクごとにキューに1つまたは複数のDNSプリフェッチタスクを入れるステップとを含むことができる。方法およびシステムは、そのディスプレイ画面上にウェブページをレンダリングしているとき、ワイヤレスPCDの待ち時間を短縮することができる。
2013541772.tif 000002
【特許請求の範囲】
【請求項１】
ポータブルコンピューティングデバイスの情報のプリフェッチングを実行するための方法であって、
前記ポータブルコンピューティングデバイスのディスプレイ画面上にウェブページをレンダリングするステップと、
前記ウェブページ内の任意のリンクについてのDNSプリフェッチを実行するステップと
を含む方法。
【請求項２】
画面変更操作が実行されているかどうかを決定するステップと、
前記画面変更操作が実行されているとき、前記ディスプレイ画面に表示されているリンクごとに、前記ポータブルコンピューティングデバイス内のキューに1つまたは複数のDNSプリフェッチタスクを入れるステップと
をさらに含む請求項1に記載の方法。
【請求項３】
前記キューが後入れ先出しキューである、請求項2に記載の方法。
【請求項４】
前記画面変更操作が停止されているかどうかを決定するステップと、
前記画面変更操作が停止されている場合、前記ウェブページ内の可視リンクについての前記DNSプリフェッチタスクを実行するステップと
をさらに含む請求項2に記載の方法。
【請求項５】
ユーザの習慣を監視し、習慣を現在時間と比較することによって、ユーザが1つまたは複数のウェブサイトをダウンロードする可能性を決定するステップと、
前記現在時間から所定の時間以内に日常的にアクセスされるウェブサイトに関するパターンを決定するステップと
をさらに含む請求項1に記載の方法。
【請求項６】
CPU、メモリ、およびバス帯域幅を含む十分な処理リソースがリソースマネージャによるウェブコンテンツの処理をサポートするために使用可能であるかどうかを決定するステップ
をさらに含む請求項5に記載の方法。
【請求項７】
前記ポータブルコンピューティングデバイスが充電器に接続されているかどうか、または十分なバッテリ充電が使用可能かどうか、および前記処理リソースがウェブコンテンツの処理に十分かどうかを決定するステップ
をさらに含む請求項6に記載の方法。
【請求項８】
前記ポータブルコンピューティングデバイスが前記充電器に接続されている、または十分なバッテリ充電が使用可能である場合、平均的なワイヤレスチャネル品質が条件を満たすかどうかを決定するステップと、
前記平均的なワイヤレスチャネル品質が前記条件を満たす場合、コンテンツまたはDNSプリフェッチングを実行するステップと
をさらに含む請求項7に記載の方法。
【請求項９】
ワイヤレスチャネルが存在するかどうかを決定するステップ
をさらに含む請求項1に記載の方法。
【請求項１０】
ユーザが前記ウェブページから離れてナビゲートすることに応答して前記キューをクリアするステップ
をさらに含む請求項3に記載の方法。
【請求項１１】
ポータブルコンピューティングデバイスであって、
前記ポータブルコンピューティングデバイスのディスプレイ画面上にウェブページをレンダリングするための手段と、
前記ウェブページ内の任意のリンクについてのDNSプリフェッチを実行するための手段と
を含むポータブルコンピューティングデバイス。
【請求項１２】
画面変更操作が実行されているかどうかを決定するための手段と、
前記画面変更操作が実行されているとき、前記ディスプレイ画面に表示されているリンクごとに、キューに1つまたは複数のDNSプリフェッチタスクを入れるための手段と
をさらに含む請求項11に記載のポータブルコンピューティングデバイス。
【請求項１３】
前記キューが後入れ先出しキューである、請求項12に記載のポータブルコンピューティングデバイス。
【請求項１４】
前記画面変更操作が停止されているかどうかを決定するための手段と、
前記画面変更操作が停止されている場合、前記ウェブページ内の各可視リンクについてのDNSプリフェッチタスクを実行するための手段と
をさらに含む請求項13に記載のポータブルコンピューティングデバイス。
【請求項１５】
ユーザの習慣を監視し、習慣を現在時間と比較することによって、ユーザが1つまたは複数のウェブサイトをダウンロードする可能性を決定するための手段と、
前記現在時間から所定の時間以内に日常的にアクセスされるウェブサイトに関するパターンを決定するための手段と
をさらに含む請求項11に記載のポータブルコンピューティングデバイス。
【請求項１６】
CPU、メモリ、およびバス帯域幅を含む十分な処理リソースがリソースマネージャによるウェブコンテンツの処理をサポートするために使用可能であるかどうかを決定するための手段
をさらに含む請求項15に記載のポータブルコンピューティングデバイス。
【請求項１７】
前記ポータブルコンピューティングデバイスが充電器に接続されているかどうか、または十分なバッテリ充電が使用可能かどうか、および前記処理リソースがウェブコンテンツの処理に十分かどうかを決定するための手段
をさらに含む請求項16に記載のポータブルコンピューティングデバイス。
【請求項１８】
ワイヤレスチャネルが存在するかどうかを決定するための手段
をさらに含む請求項11に記載のポータブルコンピューティングデバイス。
【請求項１９】
ユーザが前記ウェブページから離れてナビゲートすることに応答して前記キューをクリアするための手段
をさらに含む請求項13に記載のポータブルコンピューティングデバイス。
【請求項２０】
ポータブルコンピューティングデバイスであって、
メモリと、
前記メモリにアクセス可能なプロセッサとを備え、前記プロセッサが、
前記ポータブルコンピューティングデバイスのディスプレイ画面上にウェブページをレンダリングし、
前記ウェブページ内の任意の可視リンクについてのDNSプリフェッチを実行するように動作可能である
ポータブルコンピューティングデバイス。
【請求項２１】
前記プロセッサが、
画面変更操作が実行されているかどうかを決定し、
前記画面変更操作が実行されているとき、前記ディスプレイ画面に表示されているリンクごとに、前記ポータブルコンピューティングデバイス内のキューに1つまたは複数のDNSプリフェッチタスクを入れる
ようにさらに動作可能である
請求項20に記載のポータブルコンピューティングデバイス。
【請求項２２】
前記キューが後入れ先出しキューである、請求項20に記載のポータブルコンピューティングデバイス。
【請求項２３】
前記プロセッサが、
前記画面変更操作が停止されているかどうかを決定し、
前記画面変更操作が停止されている場合、前記ウェブページ内の各可視リンクについての前記DNSプリフェッチタスクを実行する
ようにさらに動作可能である
請求項20に記載のポータブルコンピューティングデバイス。
【請求項２４】
前記プロセッサが、
ユーザの習慣を監視し、習慣を現在時間と比較することによって、ユーザが1つまたは複数のウェブサイトをダウンロードする可能性を決定し、
前記現在時間から所定の時間以内に日常的にアクセスされるウェブサイトに関するパターンを決定する
ようにさらに動作可能である
請求項23に記載のポータブルコンピューティングデバイス。
【請求項２５】
前記プロセッサが、
CPU、メモリ、およびバス帯域幅を含む十分な処理リソースがリソースマネージャによるウェブコンテンツの処理をサポートするために使用可能であるかどうかを決定する
ようにさらに動作可能である
請求項24に記載のポータブルコンピューティングデバイス。
【請求項２６】
前記プロセッサが、
前記ポータブルコンピューティングデバイスが充電器に接続されているかどうか、または十分なバッテリ充電が使用可能かどうか、および前記処理リソースがウェブコンテンツの処理に十分かどうかを決定する
ようにさらに動作可能である
請求項23に記載のポータブルコンピューティングデバイス。
【請求項２７】
前記プロセッサが、
前記ポータブルコンピューティングデバイスが前記充電器に接続されている、または十分なバッテリ充電が使用可能である場合、平均的なワイヤレスチャネル品質が条件を満たすかどうかを決定し、
前記平均的なワイヤレスチャネル品質が前記条件を満たす場合、コンテンツまたはDNSプリフェッチングを実行する
ようにさらに動作可能である
請求項20に記載のポータブルコンピューティングデバイス。
【請求項２８】
ポータブルコンピューティングデバイスのための、コンピュータにより実行可能な命令からなるコンピュータプログラムであって、
前記ポータブルコンピューティングデバイスのディスプレイ画面上にウェブページをレンダリングするための少なくとも1つの命令と、
前記ウェブページ内の任意の可視リンクについてのDNSプリフェッチを実行するための少なくとも1つの命令と
を含むコンピュータプログラム。
【請求項２９】
画面変更操作が実行されているかどうかを決定するための少なくとも1つの命令と、
前記画面変更操作が実行されているとき、前記ディスプレイ画面に表示されているリンクごとに、前記ポータブルコンピューティングデバイス内のキューに1つまたは複数のDNSプリフェッチタスクを入れるための少なくとも1つの命令と
をさらに含む請求項28に記載のコンピュータプログラム。
【請求項３０】
前記キューが後入れ先出しキューである、請求項28に記載のコンピュータプログラム。
【請求項３１】
前記画面変更操作が停止されているかどうかを決定するための少なくとも1つの命令と、
前記画面変更操作が停止されている場合、前記ウェブページ内の各可視リンクについての前記DNSプリフェッチタスクを実行するための少なくとも1つの命令と
をさらに含む請求項28に記載のコンピュータプログラム。
【請求項３２】
ユーザの習慣を監視し、習慣を現在時間と比較することによって、ユーザが1つまたは複数のウェブサイトをダウンロードする可能性を決定するための少なくとも1つの命令と、
前記現在時間から所定の時間以内に日常的にアクセスされるウェブサイトに関するパターンを決定するための少なくとも1つの命令と
をさらに含む請求項31に記載のコンピュータプログラム。
【請求項３３】
CPU、メモリ、およびバス帯域幅を含む十分な処理リソースがリソースマネージャによるウェブコンテンツの処理をサポートするために使用可能であるかどうかを決定するための少なくとも1つの命令
をさらに含む請求項32に記載のコンピュータプログラム。
【請求項３４】
前記ポータブルコンピューティングデバイスが充電器に接続されているかどうか、または十分なバッテリ充電が使用可能かどうか、および前記処理リソースがウェブコンテンツの処理に十分かどうかを決定するための少なくとも1つの命令
をさらに含む請求項33に記載のコンピュータプログラム。
【請求項３５】
前記ポータブルコンピューティングデバイスが前記充電器に接続されている、または十分なバッテリ充電が使用可能である場合、平均的なワイヤレスチャネル品質が条件を満たすかどうかを決定するための少なくとも1つの命令と、
前記平均的なワイヤレスチャネル品質が前記条件を満たす場合、コンテンツまたはDNSプリフェッチングを実行するための少なくとも1つの命令と
をさらに含む請求項36に記載のコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、ドメインネームサーバプリフェッチングを実行するシステムおよび方法に関する。
【背景技術】
【０００２】
ポータブルコンピューティングデバイス(PCD)は至る所にある。これらのデバイスは、セルラー電話、携帯情報端末(PDA)、ポータブルゲームコンソール、パームトップコンピュータ、および他のポータブル電子デバイスを含み得る。これらのポータブルコンピューティングデバイスの多くは、コンテンツ、ビューコンテンツなどをダウンロードするためにユーザがインターネットにアクセスすることができるウェブブラウザを含む。一般的に、ユーザがウェブブラウザにユニフォームリソースロケータ(URL)を入力するとき、そのURLについてDNSルックアップが実行され、伝送制御プロトコル(TCP)接続が確立され得る。その後、そのURLについてホストサーバから主要なHTMLファイルまたは主要なリソースが受信され得る。主要なHTMLファイルは、1つまたは複数の下位リソースを要求し、取得するために、1つまたは複数の追加のホストサーバへのウェブブラウザを示し得る。追加のホストサーバについてのDNSルックアップを実行し、TCP接続を確立するためのプロセスは、実質的にゆっくりであり得、かなりの量のオーバーヘッドを必要とし得る。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
したがって、DNSプリフェッチング、コンテンツプリフェッチング、またはその組合せを実行する改良されたシステムおよび方法が必要である。
【課題を解決するための手段】
【０００４】
図中、別段に規定されていない限り、類似の参照番号は、様々な図の全体を通じて、類似の部分を指す。
【図面の簡単な説明】
【０００５】
【図１】閉位置のポータブルコンピューティングデバイス(PCD)の第1の態様を示す正面図である。
【図２】開位置のPCDの第1の態様を示す正面図である。
【図３Ａ】PCDの第1の態様を示すブロック図である。
【図３Ｂ】ワイヤレスポータブルコンピューティングデバイスのための情報をプリフェッチするシステムのソフトウェアアーキテクチャの第1の態様の図である。
【図４】DNSプリフェッチングを実行する方法を示すフローチャートである。
【図５】ウェブページの第1の部分を示すPCDディスプレイの図である。
【図６】ウェブページの第2の部分を示すPCDディスプレイの図である。
【図７】コンテンツプリフェッチングを実行する方法の第1の態様を示すフローチャートの第1の部分である。
【図８】コンテンツプリフェッチングを実行する方法の第1の態様を示すフローチャートの第2の部分である。
【図９】コンテンツプリフェッチングを実行する方法の第2の態様を示すフローチャートである。
【図１０】コンテンツプリフェッチングを実行する方法の第3の態様を示すフローチャートである。
【図１１】コンテンツプリフェッチングを実行する方法の第4の態様を示すフローチャートの第1の部分である。
【図１２】コンテンツプリフェッチングを実行する方法の第4の態様を示すフローチャートの第2の部分である。
【図１３】コンテンツプリフェッチングを実行する方法の第5の態様を示すフローチャートである。
【発明を実施するための形態】
【０００６】
「例示的な」という言葉は、「一例、実例または例として」を意味するように本明細書で使用される。「例示的な」ものとして本明細書で説明する態様は、必ずしも他の態様よりも好ましい、または有利であると解釈されるわけではない。
【０００７】
本明細書では、「アプリケーション」という用語は、オブジェクトコード、スクリプト、バイトコード、マークアップ言語ファイルおよびパッチなど、実行可能コンテンツを有するファイルを含むこともある。加えて、本明細書で言及する「アプリケーション」は、開封される必要があり得るドキュメント、またはアクセスされる必要がある他のデータファイルなど、本質的に実行可能ではないファイルを含むこともある。
【０００８】
「コンテンツ」という用語は、オブジェクトコード、スクリプト、バイトコード、マークアップ言語ファイルおよびパッチなど、実行可能コンテンツを有するファイルを含むこともある。加えて、本明細書で言及する「コンテンツ」は、開封される必要があり得るドキュメント、またはアクセスされる必要がある他のデータファイルなど、本質的に実行可能ではないファイルを含むこともある。
【０００９】
本明細書で使用される場合、「構成要素」、「データベース」、「モジュール」、「システム」などの用語は、ハードウェア、ファームウェア、ハードウェアとソフトウェアの組合せ、ソフトウェア、実行中のソフトウェアを問わず、コンピュータ関連のエンティティを指すことが意図されている。たとえば構成要素は、プロセッサ上で作動しているプロセス、プロセッサ、オブジェクト、実行ファイル、実行スレッド、プログラムおよび/またはコンピュータであってよいが、これらであることに限定されない。例を挙げると、コンピューティングデバイス上で作動しているアプリケーションとコンピューティングデバイスの両方が構成要素であり得る。1つまたは複数の構成要素は、プロセスおよび/または実行スレッドの中に存在してよく、1つの構成要素を1つのコンピュータに局在化すること、および/または2つ以上のコンピュータに分散することが可能である。加えて、これらの構成要素は、様々なデータ構造を記憶している様々なコンピュータ可読媒体から実行することができる。構成要素は、1つまたは複数のデータパケットを有する信号に従うなどしてローカルプロセスおよび/またはリモートプロセスの方法により通信することができる(たとえば、信号手段によりローカルシステム、分散システムにおいて別の構成要素と、かつ/または他のシステムとインターネットなどのネットワークにわたって対話する1つの構成要素からのデータ)。
【００１０】
最初に図1および図2を参照すると、例示的なポータブルコンピューティングデバイス(PCD)が示されており、全体的に100と表される。図示のように、PCD100は、ハウジング102を含み得る。ハウジング102は、上側ハウジング部104および下側ハウジング部106を含み得る。図1は、上側ハウジング部104がディスプレイ108を含み得ることを示す。特定の態様において、ディスプレイ108は、タッチスクリーンディスプレイでもよい。上側ハウジング部104は、トラックボール入力デバイス110を含むこともできる。さらに、図1に示されるように、上側ハウジング部104は、電源投入ボタン112および電源切断ボタン114を含むことができる。図1に示されるように、PCD100の上側ハウジング部104は、複数のインジケータライト116およびスピーカ118を含むことができる。各インジケータライト116は、発光ダイオード(LED)でもよい。
【００１１】
特定の態様では、図2に示すように、上側ハウジング部104は下側ハウジング部106に対して移動可能である。具体的には、上側ハウジング部104は下側ハウジング部106に対してスライド可能であってよい。図2に示すように、下側ハウジング部106はマルチボタン型キーボード120を含むことができる。特定の態様では、マルチボタン型キーボード120は標準型QWERTYキーボードであり得る。マルチボタン型キーボード120は、上側ハウジング部104が下側ハウジング部106に対して動かされたときに露出されてもよい。図2は、PCD100が下側ハウジング部106上にリセットボタン122を含み得ることをさらに示している。
【００１２】
図3Aを参照すると、ポータブルコンピューティングデバイス(PCD)の例示的な非限定的態様が示され、全体的に100で表されている。図示のように、PCD100は、互いに結合されたデジタル信号プロセッサ324およびアナログ信号プロセッサ326を含むオンチップシステム322を含む。デジタル信号プロセッサ324は、単一のプロセッサまたは複数のプロセッサを含むことができる。デジタル信号プロセッサ324は、当業者によって理解されるように、マルチコアプロセッサも含み得る。
【００１３】
オンチップシステム322は、3つ以上のプロセッサを含み得る。たとえば、オンチップシステム322は、以下で説明するように、デジタル信号プロセッサ(DSP)324を形成する複数のコアプロセッサを含むことができる。図3Aに示されるように、ディスプレイコントローラ328およびタッチスクリーンコントローラ330がデジタル信号プロセッサ(DSP)324に結合される。一方、オンチップシステム322の外部にあるタッチスクリーンディスプレイ108が、ディスプレイコントローラ328およびタッチスクリーンコントローラ330に結合される。
【００１４】
図3Aは、ビデオエンコーダ334、たとえば位相反転線(PAL)エンコーダ、sequential couleur a memoire(SECAM)エンコーダ、または全国テレビジョン方式委員会(NTSC)エンコーダなどがデジタル信号プロセッサ324に結合されることをさらに示している。さらに、ビデオ増幅器336がビデオエンコーダ334およびタッチスクリーンディスプレイ108に結合される。また、ビデオポート338がビデオ増幅器336に結合される。図3Aに示されるように、ユニバーサルシリアルバス(USB)コントローラ340がデジタル信号プロセッサ324に結合される。また、USBポート342が、USBコントローラ340に結合される。メモリリソース119および加入者識別モジュール(SIM)カード346も、デジタル信号プロセッサ324に結合され得る。さらに、図3Aに示されるように、デジタルカメラ348がデジタル信号プロセッサ324に結合され得る。例示的な態様において、デジタルカメラ348は、電荷結合デバイス(CCD)カメラまたは相補型金属酸化物半導体(CMOS)カメラである。
【００１５】
図3Aにさらに示されるように、ステレオオーディオコーデック350がアナログ信号プロセッサ326に結合され得る。さらに、オーディオ増幅器352がステレオオーディオコーデック350に結合され得る。例示的な態様では、第1のステレオスピーカ354および第2のステレオスピーカ356がオーディオ増幅器352に結合される。図3Aは、マイクロフォン増幅器358もステレオオーディオコーデック350に結合され得ることを示す。加えて、マイクロフォン360が、マイクロフォン増幅器358に結合され得る。特定の態様では、周波数変調(FM)無線チューナー362がステレオオーディオコーデック350に結合され得る。また、FMアンテナ364がFM無線チューナー362に結合される。さらに、ステレオヘッドフォン366がステレオオーディオコーデック350に結合され得る。
【００１６】
図3Aは、無線周波数(RF)トランシーバ368がアナログ信号プロセッサ326に結合され得ることをさらに示している。RFスイッチ370が、RFトランシーバ368およびRFアンテナ372に結合され得る。図3Aに示されるように、キーパッド374がアナログ信号プロセッサ326に結合され得る。また、マイクロフォンを備えたモノヘッドセット376がアナログ信号プロセッサ326に結合され得る。さらに、バイブレータデバイス378がアナログ信号プロセッサ326に結合され得る。図3Aは、電源380がオンチップシステム322に結合され得ることも示す。特定の態様では、電源380は電力を必要とするPCD100の様々な構成要素に電力を供給する直流(DC)電源である。さらに、特定の態様において、電源は、交流(AC)電源に接続されたAC-DC変成器から導かれた充電式DCバッテリまたはDC電源である。
【００１７】
図3Aは、PCD100が、たとえばローカルエリアネットワーク、パーソナルエリアネットワーク、または任意の他のネットワークなどのデータネットワークにアクセスするために使用され得るネットワークカード388も含み得ることをさらに示す。ネットワークカード388は、ブルートゥースネットワークカード、WiFiネットワークカード、パーソナルエリアネットワーク(PAN)カード、パーソナルエリアネットワーク超低電力技術(PeANUT)ネットワークカード、または当技術分野でよく知られている任意の他のネットワークカードであってよい。さらに、ネットワークカード388は、チップに組み込むことができ、すなわち、ネットワークカード388は、チップでのフルソリューションであってもよく、個別のネットワークカード388でなくてもよい。
【００１８】
図3Aは、PCD100がメモリリソース119内に格納され得るウェブブラウザアプリケーション382も含み得ることを示す。ウェブブラウザアプリケーション382は、インターネットを探索し、オンラインコンテンツにアクセスし、映画をダウンロードし、音楽をダウンロードし、映画を閲覧し、またはその組合せのために使用することができる。さらに、ウェブブラウザアプリケーション382は、たとえばプラグインとして、プリフェッチモジュール(P/M)384を含むことができる。プリフェッチモジュール384が、本明細書で説明するように、ウェブブラウザ382と対話する個別のアプリケーションでもよいことは諒解されよう。
【００１９】
図3Aに示されるように、タッチスクリーンディスプレイ108、ビデオポート338、USBポート342、カメラ348、第1のステレオスピーカ354、第2のステレオスピーカ356、マイクロフォン360、FMアンテナ364、ステレオヘッドフォン366、RFスイッチ370、RFアンテナ372、キーパッド374、モノヘッドセット376、バイブレータ378および電源380は、オンチップシステム322の外部にある。
【００２０】
特定の態様では、本明細書で説明する方法ステップの1つまたは複数は、たとえば、ウェブブラウザアプリケーション382、プリフェッチモジュール384、またはその組合せの一部として、コンピュータプログラム命令としてメモリリソース119に格納することができる。これらの命令は、本明細書で説明する方法を実施するためにプロセッサ324、326によって実行可能である。さらに、プロセッサ324、326、メモリリソース119、ウェブブラウザアプリケーション382、プリフェッチモジュール384、またはそれらの組合せは、ドメインネームサーバ(DNS)プリフェッチ、コンテンツプリフェッチ、またはその組合せを実行するために、本明細書で説明する方法ステップのうちの1つまたは複数を実行するための手段として働き得る。
【００２１】
図3Bは、ワイヤレスポータブルコンピューティングデバイス100のための情報をプリフェッチするシステム103のソフトウェアアーキテクチャの第1の態様の図である。アプリケーションサブシステム103は、中央処理装置324(図3Aを参照)によって実行され、プリフェッチモジュール384によってレンダリングされるウェブページをサポートすることができるモバイルウェブブラウザアプリケーション382を含み得る。
【００２２】
当業者には理解されるように、また、以下で説明するように、モバイルウェブブラウザアプリケーションまたはモジュール382は、インターネットプロトコル(「IP」)層129上にある転送通信プロトコル(「TCP」)モジュール127と通信することができる。
【００２３】
当業者によって理解されるように、IP層129は、ネットワークバッファ層131と通信する。IP層129は、第2の中央処理装置326(図3を参照)によって実行されるモデムサブシステム133と通信する。
【００２４】
モバイルウェブブラウザモジュール382は、プリフェッチモジュール384、HTTPスタック111、ウェブブラウザモニタ107、システムモニタ109、およびドメインネームサーバモジュール113を含む。ウェブブラウザモジュール382内に含まれるように示されているが、さらなる代替の例示的な実施形態(図示せず)では、プリフェッチモジュール384は、ウェブブラウザ382に対する個別のモジュールとして常駐し得る。
【００２５】
ウェブブラウザモニタ107は、ウェブブラウジング履歴を維持することができる。ウェブブラウジング履歴は、ユーザによって閲覧されたすべてのページ、各ページがユーザによって閲覧された時間、各ページが閲覧された日付、またはその組合せに関するデータを含むことができる。
【００２６】
システムモニタ109は、CPU/バス負荷(すなわち、現在のプロセッサの負荷)を決定することができる。CPU/バス負荷は、プロセッサ速度、たとえば、プロセッサ周波数として表すことができる。システムモニタは、たとえば、バッテリのような電源380のステータスなど、電力状態のステータスを調査することもできる。
【００２７】
モバイルウェブブラウザモジュール382は、メモリリソース119に結合され得る。メモリリソース119は、それだけには限定されないが、キャッシュ、ランダムアクセスメモリ(「RAM」)、フラッシュメモリ、セキュアデジタル(「SD」)メモリカード、およびその任意の組合せを含み得る。メモリリソース119は、当業者によって理解されるように、後入れ先出し方式(LIFO)キューも含み得る。
【００２８】
プリフェッチモジュール384は、コンピューティングデバイス100に最適なビデオ再生品質を保証するために、たとえばウェブページなど、次にどんなファイルセグメントをポータブルコンピューティングデバイス100にダウンロードすべきかについてウェブブラウザ382を制御するまたは指示する役目を果たし得る。プリフェッチモジュール384は、アプリケーションサブシステム103ならびにモデムサブシステム133の要素を絶えず監視することができるという点で、動的でもよい。さらに、プリフェッチモジュール384は、アプリケーションサブシステム103およびモデムサブシステム133内の要素からメッセージを受信することもできる。
【００２９】
ウェブブラウザ382のDNSモジュール113は、当業者によって理解されるように、テキストベースのドメインネームを数字のインターネットプロトコル(IP)アドレスに変換する役目を果たし得る。DNSモジュール113は、IPアドレスをHTTPスタック111に伝えることができ、HTTPスタック111は次にそれをTCP接続モジュール127に中継する。
【００３０】
HTTPスタック111がTCP接続モジュール127からたとえばウェブページなどのメタオブジェクトを戻すとき、HTTPスタックモジュール111は、このメタオブジェクトをプリフェッチモジュール384に中継する。httpスタックモジュール111は、クライアントプリフェッチモジュール384に何らかのステータス情報を提供することもできる。ステータス情報は、それだけには限定されないが、高速スケジュール制御チャネル(「HS-SCCH」)有効ステータス、高速トランスポートブロックサイズ(「HS-TBS」)、レイヤ1ブロック誤り率(「L1 BLER」)、無線リンク制御プロトコルデータユニット(「RLC PDU」)サイズ、無線リンク制御ダウンリンクサービスデータユニット(「RLC DL SDU」)バイト受信(「Rx」)、高速ダウンリンクパケットアクセス(「HSDPA」)ユーザ機器(「UE」)カテゴリ、メディアアクセス制御アップリンクバッファステータス報告(「MAC UL BSR」)、拡張アップリンク送信時間間隔(「EUL TTI」)、拡張トランスポートフォーマット組合せ識別子(「ETFCI」)テーブルインデックス、ETCFI、新しい送信(「Tx」)の数、無線リンク制御アップリンクサービスデータユニット(「RLC UL SDU」)バイト送信(「Tx」)、ダイバーシティ送信/ダイバーシティ受信(「DTX/DRX」)モード、拡張アップリンクユーザ機器(「EUL UE」)カテゴリ、メディアアクセス制御送信層トランスポートブロックサイズ(「MAC TL TBS」)、パケットデータ収束プロトコルダウンリンクサービスデータユニット(「PDCP DL SDU」)バイト受信(「Rx」)、メディアアクセス制御アップリンクトランスポートブロックサイズ(「MAC UL TBS」)、パケットデータ収束プロトコルアップリンクサービスデータユニット(「PDCP UL SDU」)バイト送信(「Tx」)、およびユーザ機器カテゴリ(「UE Category」)を含み得る。
【００３１】
プリフェッチモジュール384は、メタオブジェクト、たとえばウェブページ500、およびその関連のハイパーテキストリンク502、504、602、604を構文解析し、ならびに/またはレビューし、現在のワイヤレスネットワーク状態およびポータブルコンピューティングデバイス100の動作環境を評価した後、どのリンク502、504、602、604が次のダウンロードに適するかを決定する役目を果たし得る。
【００３２】
トランスポート制御プロトコル(「TCP」)接続モジュール127は、当業者によって理解されるように、一般のネットワーキングの開放型システム間相互接続(「OSI」)モデルのトランスポート層において動作する。TCP接続モジュール127は、宛先ホストへの送信のためのネットワークインフラストラクチャへの転送に適したデータ単位(データグラム、セグメント)にアプリケーションデータブロックをカプセル化する、またはネットワークデータグラムを抽出し、それらのペイロードをモバイルウェブブラウザ382に送出することによって逆トランザクションを管理する役目を果たす。
【００３３】
TCP接続モジュール127は、それだけには限定されないが、再送タイムアウト(「RTO」)、広告された受信ウィンドウ(「Rx Window」)、送信-受信機スループット(「Tx/Rx Throughput」)、パケット統計、TCP接続の合計数、推定されたラウンドトリップ時間(「RTT」)、受信されたバイト数、シーケンス内パケット数(the number of in sequence packets)、およびTCP送信ウィンドウサイズを含む情報を提供することができる。
【００３４】
インターネットプロトコル(「IP」)モジュール129は、TCP接続モジュール127およびネットワークバッファ層131と通信する。IPモジュール129は、識別されたプロトコルデータグラム(パケット)を、それらのアドレスに基づいて、モバイルウェブブラウザからサーバに配信するタスクを有する。IPモジュール129は、データグラムカプセル化のためのアドレス指定方法および構造を定義する。IPモジュール129は、インターネットプロトコルバージョン4(「IPv4」)、ならびにインターネットプロトコルバージョン6(「IPv6」)を利用することができ、これはこの著述の時点で積極的に展開されている。しかし、まだ開発されていない将来のものを含めて、インターネットプロトコルの他のバージョンが本発明の範囲内に含まれる。
【００３５】
ネットワークバッファ層131は、IPモジュール129およびモデムサブシステム133と通信する。ネットワークバッファ層131は、たとえばイーサネット(登録商標)および他のIEEE802カプセル化方式など、すべてのハードウェア固有のインターフェース方法を含むことができる。ネットワークバッファ層131は、たとえば通信ネットワーク206など、ローカルネットワークのトポロジをプロービングすることができる。ネットワークバッファ層131は、ルータおよび隣接するホストを発見することができ、リンク上の他のノードの発見の役目を果たし得る。ネットワークバッファ層131は、他のノードのリンク層アドレスを決定し、使用可能なルータを見つけ、他のアクティブな隣接するノードへのパスに関する到達可能性情報を維持することができる。
【００３６】
プリフェッチモジュール384は、httpスタック111ならびにTCPモジュール127と通信することができる。プリフェッチモジュール384は、1つまたは複数のセンサ125とも通信する。センサ125は、それだけには限定されないが、万歩計(登録商標)125A、加速度計125B、近接センサ125C、コンパス125D、および周辺光センサ125Eを含み得る。万歩計(登録商標)125Aは、ポータブルコンピューティングデバイス100が歩いている人によって使用されていることを示す信号を提供することができる。
【００３７】
加速度計125Bは、ポータブルコンピューティングデバイス100が自動車など動力付車両にあることを示す信号を提供することができる。近接センサ125Cは、ポータブルコンピューティングデバイス100が電話呼を行うための人物の顔の横に配置されているかどうかを示すことができる。コンパス125Dは、ポータブルコンピューティングデバイス100が移動している特定の方向を示す信号を提供することができる。また、周辺光センサ125Eは、ポータブルコンピューティングデバイス100が明るい環境で使用されているか、暗い環境で使用されているかを示すための信号を提供することができ、こうした環境は、ビデオがコンピューティングデバイス200にどのように表示される必要があるかに影響を与える。
【００３８】
モデムサブシステム133は、無線リンク制御(「RLC」)層135、メディアアクセス制御(「MAC」)層139、物理(「PHY」)層141、無線リレー制御(「RRC」)モジュール137、および全地球測位システム(「GPS」)143を含み得る。モデムサブシステム133のこれらの要素は、図2に示されるように、RFトランシーバ368などの通信ハードウェアと通信する役目を果たし得る。
【００３９】
モデムサブシステム133の要素の各々は、メッセージを送る、またはプリフェッチモジュール384からクエリを受信することができる。たとえば、RRCモジュール137は、それだけには限定されないが、たとえば高速ダウンリンクパケットアクセス(「HSDPA」)カテゴリ情報、拡張アップリンク層(「EUL」)カテゴリ情報、および不連続受信/送信(「DRX/DTX」)構成(「Config」)情報などの情報を通信することができる。
【００４０】
RLCモジュール135は、スループットならびに無線リンク制御(「RCL」)プロトコルデータユニット(「PDU」)サイズをプリフェッチモジュール384に伝えることができる。MAC層139は、それだけには限定されないが、たとえばバッファステータス報告(「BSR」)情報および拡張専用チャネル(「EDCH」)トランスポートフォーマット(「TF」)情報などのアップリンク(「UL」)情報を伝えることができる。物理層141は、それだけには限定されないが、たとえば高速トランスポートブロックサイズ(「HS-TBS」)、変調、チャネル品質表示(「CQI」)、ブロック誤り率(「BLER」)測定、多入力/多出力(「MIMO」)、受信機(「Rx」)自動利得制御(「AGC」)、ならびにイコライザ集積回路(「EQ/IC」)受信機(「Rx」)ダイバーシティ(「D」)などのダウンリンク(「DL」)情報を伝えることができる。物理層141は、それだけには限定されないが、たとえばBLER、変調、および送信機(「Tx」)自動利得制御(「AGC」)など、アップリンク(「UL」)情報を伝えることもできる。
【００４１】
当業者には理解されるように、RRCモジュール137、RLCモジュール135、MACモジュール139、およびPHYモジュール141は、発展型高速パケットアクセスシステム177(「HSPA」)を形成することができる。一方、GPSモジュール143は、それだけには限定されないが、たとえばポータブルコンピューティングデバイス100の位置、および速さまたは速度などの情報をプリフェッチモジュール384に提供することができる。
【００４２】
アプリケーションサブシステム103およびモデムサブシステム133の要素を監視することによって、プリフェッチモジュール384は、ワイヤレスネットワークの状態、およびポータブルコンピューティングデバイス200自体の状態を監視することによって、ワイヤレスポータブルコンピューティングデバイス200が、PCD100のオペレータによって閲覧される可能性があるウェブページを知的に選択することができるようにする。プリフェッチモジュール384は、監視された状態を使用して、ウェブページがサーバからダウンロードされるのに適切なビットレートが何であるかを決定することによって、それがロードすべきウェブページのサイズおよびタイプを決定することができる。
【００４３】
アプリケーションサブシステム103およびモデムサブシステム133によって提供されるデータに基づいて監視された状態のいくつかは、それだけには限定されないが、現在のバッファのサイズ、およびバッファの成長がコンピューティングデバイス200によって消費されているレートを含む、メモリ状態、現在および履歴のWWAN帯域幅、現在および履歴のWWAN信号強度、利用可能なIPソケットデータ接続の数、全ビデオクリップ長の推定、および信号雑音比の履歴/ヒストグラムおよびロケーションベースサービス(「LBS」)に基づいてウェブページのファイルセグメントごとに各ユニフォームリソースロケータ(「URL」)ダウンロード時間の推定、たとえばGPSモジュール143などロケーションベースの技術の使用によりセルタワー識別三角測量または正確な緯度経度のいずれかによって計算されるポータブルコンピューティングデバイス100の速度のレート、ならびに加速度計および/またはLBSを使用したポータブルコンピューティングデバイス100の移動方向を含む。
【００４４】
プリフェッチモジュール384は、信号対雑音比が高いまま、および/またはBLERが連続的に低いままとなるまで、プリフェッチモジュール384が低いビットレートを維持または使用しなければならない所定の期間を計算することができる。プリフェッチモジュール384は、理想的なネットワークステータスの間、たとえばポータブルコンピューティングデバイス100が静止しているとき、またはポータブルコンピューティングデバイス100が比較的低速状態で動作しているとき、たとえばユーザがコンピューティングデバイス100を持って歩いているとき、電力を最小限に抑えるために、モデムサブシステム133において、任意のタイプの受信ダイバーシティ機能を「オン」または「オフ」にすることもできる。
【００４５】
システムおよび方法の概要
特定の態様において、DNSプリフェッチは、それだけには限定されないが、ユーザがドメインネームの要求を生成する前にプリフェッチモジュール384がドメインネームを識別し、取り出すステップを含み得る。DNSプリフェッチは、ハイパーテキスト転送プロトコル(HTTP)要求が発行される前、たとえば、ブラウザ382のユーザによって行われた選択に応答してウェブブラウザ382によってHTTP要求が生成される前に、ホストサーバに対する1つまたは複数の伝送制御プロトコル(TCP)ソケットまたは接続を開始するステップをさらに含むことができる。コンテンツプリフェッチは、それだけには限定されないが、ユーザがページ、条件付きコンテンツなどを実際に要求する前に、プリフェッチモジュール384がページ、条件付きコンテンツ、他のコンテンツ、またはその組合せをダウンロードすることを含み得る。
【００４６】
モバイルデバイス、たとえばPCD100において、ワイヤレスネットワークの待ち時間は、有線ネットワーク内で動作しているデスクトップと比較して、通常、より顕著である。PCD100のCPUリソースも、通常、デスクトップまたはラップトップのコンピュータのものよりも制限される。いくつかのワイヤレスワイドエリアネットワーク(WWAN)カバレージエリアにおいて、アップリンクリソースは、単なる一例として、たとえば4kbps程度のより低い速度に実質的に制限され得る。ワイヤレスネットワーク環境において使用されるPCD100のこれらの制限は、本明細書で開示するプリフェッチモジュール384を備えたウェブブラウザ382によって解決される問題の一部である。
【００４７】
図4を参照すると、DNSプリフェッチングを実行する方法が示されており、全体的に400と表される。ブロック404から始まり、ウェブブラウザアプリケーション382は、レンダリングされたページ上のリンクを検出することができる。さらに、ブロック406で、ウェブブラウザアプリケーション382は、ページの動きを検出することができる。
【００４８】
決定ブロック408に移動して、プリフェッチングモジュール382は、任意のリンクがページ内で可視かどうかを決定することができる。そうである場合、方法400は、ブロック410に進むことができ、プリフェッチングモジュール382は、ウェブページ上の任意の可視リンクについてのDNSプリフェッチを実行することができる。次いで、方法400は、決定ブロック412に進むことができる。
【００４９】
決定ブロック408に戻ると、レンダリングされたページに可視の任意のリンクがないことをプリフェッチングモジュール382が決定した場合、方法400は、決定ブロック412に直接進むことができる。決定ブロック412で、プリフェッチングモジュール382は、ユーザが画面コンテンツを変更しているかどうか、すなわち、スクローリング、パニング、および/またはズーミング操作が実行されているかどうかを決定することができる。そうでない場合、方法400は、決定ブロック414に移動し得、プリフェッチングモジュール382は、ウェブブラウザアプリケーションが停止されているかどうかを決定し得る。ウェブブラウザアプリケーションが停止されている場合、方法400は終了してよい。そうではなく、ウェブブラウザアプリケーションが停止されていない場合、すなわち、ウェブブラウザアプリケーションが実行または稼働し続ける場合、方法400は、ブロック404に戻ることができ、本明細書で説明するように継続することができる。
【００５０】
決定ブロック412に戻ると、ユーザが画面コンテンツを変更(たとえばスクローリング)している場合、方法400は、決定ブロック416に移動し得、プリフェッチングモジュール382は、任意のリンクが画面に入ったかどうかを決定することができる。そうでない場合、方法400は決定ブロック414に進むことができ、本明細書で説明するように継続することができる。リンクが画面、すなわち、ディスプレイの閲覧エリアに入った場合、方法400は、ブロック418に移動し得、プリフェッチングモジュール382は、後入れ先出し(LIFO)キュー119にDNSプリフェッチタスクを入れることができる。その後、方法400は、決定ブロック420に進み得、プリフェッチングモジュール382は、画面変更操作が停止しているかどうかを決定することができる。画面変更操作が停止されていない場合、方法400は、決定ブロック416に戻ることができ、本明細書で説明するように継続することができる。そうではなく、画面変更操作が停止されている場合、方法400は、ブロック422に進み得、プリフェッチングモジュール382は、ディスプレイ108内の可視リンクごとに各DNSプリフェッチタスクを実行することができる。次いで、方法400は、決定ブロック412に戻ることができ、説明したように継続することができる。
【００５１】
図4に示される方法400は、直ちにクリックされる可能性がある、または直ちにレンダリングされたページに入る可能性があるリンクについてのみ、プリフェッチングを制限することができる。ユーザがページをスクロールするにつれて、ビューに入るリンクについて、プリフェッチングモジュール382によって、新しいDNSプリフェッチ要求を生成することができる。
【００５２】
図5および図6は、例示的なウェブページを示し、500と表される。図5では、ウェブページ500は、第1のmore coverageリンク502および第2のmore coverageリンク504を含む。ウェブページ500が最初にレンダリングされると、両方の「more coverage」リンク502、504について、DNSプリフェッチングが実行され得る。したがって、ユーザがいずれかの「more coverage」リンク502、504をクリックした場合、「more coverage」リンク502、504に関連付けられたコンテンツまたはページは、短い時間量でユーザに表示され得る。さらに、ユーザがウェブページ上で下にスクロールすると、図6に示されるように、第3の「more coverage」リンク602および第4の「more coverage」リンク604がユーザに表示され得る。この場合も、「more coverage」リンク602、604がビューに入ると、DNSプリフェッチングが実行され得、ユーザが「more coverage」リンク602、604のいずれかをクリックすると、ユーザがディスプレイ108内で可視の「more coverage」リンク602、604のいずれかをクリックする前に、プリフェッチモジュール384は、ホストサーバに対する1つまたは複数の伝送制御プロトコル(TCP)ソケットまたは接続を開始することができるので、「more coverage」リンク602、604に関連付けられたコンテンツまたはページが非常に短い時間量でユーザに提示され得る。
【００５３】
さらに、ユーザが上から下まで非常に迅速にページをパンまたはスクロールする可能性があるので、プリフェッチモジュール384によって多数のDNSプリフェッチタスクをLIFOキュー119に容易に入れ、格納することができ、ユーザが画面変更操作を停止すると、任意の可視リンクについて、プリフェッチモジュール384によってDNSプリフェッチタスクが実行され得る。たとえば、デスクトップコンピュータまたはラップトップコンピュータと比較して待ち時間が比較的長い、およびCPUリソースが限られているなど、モバイルデバイスの特性が与えられれば、ユーザがスクロールしてビュー領域を過ぎた場合、いくつかのDNSプリフェッチがLIFOキュー119に入れられ、依然としてLIFOキュー119にある場合、閲覧可能な領域において古い要素対より新しい要素に優先度を付け直すことは、プリフェッチモジュール384にとって有利であり得る。
【００５４】
CPUリソース、ネットワークリソース、またはその組合せがかろうじて使用可能である場合、LIFOキュー119から要素を完全に削除することが適切であり得る。高解像度の小さい画面のハンドヘルドディスプレイ108では、ユーザは、通常、閲覧したいウェブページの部分をズームし、パンし、スクロールする。LIFOキュー119を使用することによって、ユーザがアクティブ化した特徴のズーム、パン、およびスクロールと同期して、より正確にとどまるように、プリフェッチモジュール384によって実行されるDNSキューイングタスクの優先度を可能にすることができる。ユーザがLIFOキュー119に格納されている現在のDNSプリフェッチに興味がないことをプリフェッチモジュール384が決定した場合、LIFOキュー119は空にされる、またはそのコンテンツがフラッシュされ得る。プリフェッチモジュールは、ユーザがLIFOキュー119にロードされた同じウェブページ上のリンクに対してかなり遠くにスクロールした場合など、ユーザの活動に基づいてこの決定を行うことができる。ユーザが別のウェブページにナビゲートする場合、プリフェッチモジュール384によって検出されたこの状態によって、プリフェッチモジュール384がLIFOキュー119のコンテンツをパージする場合もある。
【００５５】
図7および図8は、コンテンツのプリフェッチを実行する方法の第1の態様を示し、全体的に700と表される。ステップ702から始まり、ウェブブラウザモニタ107は、ウェブブラウジング履歴を維持することができる。ウェブブラウジング履歴は、ユーザによって閲覧されたすべてのページ、各ページがユーザによって閲覧された時間、各ページが閲覧された日付、またはその組合せに関するデータを含むことができる。次いで、方法700は、図8のブロック802に進み得る。
【００５６】
ステップ706に移動して、システムモニタ109は、CPU/バス負荷、すなわち、現在のプロセッサの負荷を決定することができる。CPU/バス負荷は、プロセッサ速度、たとえば、プロセッサ周波数として表すことができる。次いで、方法700は、図8のブロック802に進み得る。ステップ708で、システムモニタ109は、バッテリステータスを決定することができる。バッテリステータスは、残りのバッテリ寿命、残りの充電、またはその組合せを示すことができる。バッテリステータスが決定された後、方法700は、図8のブロック802に進むことができる。
【００５７】
ステップ712で、図3Bに関して上記した高速パケットアクセス(HSPA)システム177は、チャネルの存在(すなわちチャネルが使用可能であるかどうか)ならびにチャネル品質インジケータ(CQI)を決定することができる。特定の態様では、CQIは、ワイヤレスチャネルの通信品質の測定値とすることができる。CQIは、所与のワイヤレスチャネルのためのチャネル品質の測度を表す値でもよい。比較的高い値を有するCQIは、特定のチャネルが比較的高い品質を有することを示すことができる。逆に、比較的低い値を有するCQIは、特定のチャネルが比較的低い品質を有することを示すことができる。
【００５８】
チャネルのCQIは、たとえば信号対雑音比(SNR)、信号対干渉雑音比(SINR)、信号対雑音歪比(SNDR)、またはその組合せなど、パフォーマンスメトリックを使用して計算され得る。特定のチャネルのために、これらの値が測定され、次いで、チャネルのCQIを計算するために使用され得る。次いで、各チャネルのCQIは、CQIAVG値を決定するために平均され得る。CQIが決定された後、方法700は、図8のブロック802に進むことができる。
【００５９】
ステップ716に移動して、HSPAシステム177は、共通パイロットチャネル信号対雑音比(CPICH SNR)を決定することができる。CPICHは、一定の電力でブロードキャストされ得、既知のビットシーケンスのものであり得るPCD100のダウンリンクであることを諒解されよう。CPICH SNRが決定された後、方法700は、図8のブロック802に進むことができる。
【００６０】
ステップ718で、GPS143は、ポータブルコンピューティングデバイス(PCD)100に関連付けられた垂直速度を監視する、または場合によっては決定することができる。ステップ722で、GPS143は、PCD100に関連付けられた水平速度を決定することができる。その後、ステップ724で、GPS143は、ウェブブラウザ382に垂直速度を出力することができる。さらに、ステップ728で、GPS143は、ウェブブラウザアプリケーション382にGPS水平速度を出力することができる。
【００６１】
ブロック730に進み、ウェブブラウザアプリケーション726は、移動速度を決定することができる。移動速度は、以下の式を使用して決定することができる。
【００６２】
【数１】
2013541772.tif 000003
【００６３】
式中、vertspeedは、ステップ718でGPS143によって決定された垂直速度であり、horzspeedは、ステップ722でGPS143によって決定された水平速度である。方法700は、ブロック703から、図8のブロック802に進むことができる。
【００６４】
図8のブロック802で、現在時間が決定され得る。決定ブロック804で、プリフェッチモジュール384は、通常、現在時間からたとえば10分など所定時間以内にアクセスされる任意の一般的なウェブサイトがあるかどうかを決定することができる。こうすることで、プリフェッチモジュール384は、PCD100のオペレータに基づいて使用のパターンを決定することができる。プリフェッチモジュール384は、上記で説明したステップ702でウェブブラウザモニタ107によって維持され、監視されるウェブブラウザ履歴に基づいて、この決定を行うことができる。通常は現在時間から10分でアクセスされる任意の一般的なウェブサイトがない場合、方法700はブロック806に進むことができ、プリフェッチルーチンは、プリフェッチモジュール384と提携して動作するブラウザアプリケーション382によって終了し得る。一方、通常は現在時間から10分でアクセスされる一般的なウェブサイトがある場合、プリフェッチモジュール384は、決定ブロック808に進むことができる。
【００６５】
決定ブロック808で、プリフェッチモジュール384は、システムモニタ109によってステップ706で上記で決定されたCPU/バス負荷がCPU/バス負荷条件を満たすかどうかを決定することができる。たとえば、CPU/バス負荷条件は周波数値閾値でもよく、CPU/バス負荷が周波数値閾値未満である場合、CPU/バス負荷はCPU/バス負荷条件を満たし得る。CPU/バス負荷が閾値以上である場合、プリフェッチモジュール384によって実行される方法700は、ブロック806に進むことができ、ウェブブラウザアプリケーション382は、プリフェッチモジュール384によって実行されたプリフェッチルーチン700を終了することができる。
【００６６】
逆に、決定ブロック808で、CPU/バス負荷が閾値未満である場合、方法700は、決定ブロック810に進むことができ、プリフェッチモジュール384は、PCD100が充電器に接続されているかどうかを決定することができる。PCD100が充電器に接続されていない場合、方法700は、決定ブロック812に進むことができ、プリフェッチモジュール384は、システムモニタ109によってステップ710で決定されたバッテリステータスがバッテリ条件を満たすかどうかを決定することができる。特定の態様では、バッテリステータスはバッテリ寿命であり、バッテリ条件はバッテリ寿命閾値でもよい。バッテリ寿命がバッテリ寿命閾値よりも大きい場合、バッテリ寿命は、バッテリ条件を満たすことができる。
【００６７】
バッテリ寿命が閾値以下である場合、方法700はブロック806に進むことができ、ウェブブラウザアプリケーションは、プリフェッチルーチンを終了することができる。バッテリ寿命が閾値よりも大きい場合、方法700は、決定ブロック814に進むことができる。決定ブロック810に戻って、PCD100が充電器に接続されている場合も、方法700は、決定ブロック814に進むことができる。
【００６８】
決定ブロック814で、プリフェッチモジュール384は、HSPAシステム177によってステップ712で決定された平均CQIがCQI条件を満たすかどうか、または、HSPAシステム177によってステップ716で決定されたCPICH SNRがCPICH SNR条件を満たすかどうかを決定することができる。代替的にまたは追加として、このブロック814で、プリフェッチモジュール384は、チャネルが存在するか、または使用可能かを決定することもできる。
【００６９】
CQI条件は閾値でもよく、平均CQIが閾値よりも大きい場合、平均CQIはCQI条件を満たすことができる。特定の態様では、閾値は、約20でもよい。この値のCQIは、少なくとも数メガビット/秒程度のデータレートを達成することを保証することができる。CPICH SNR条件は閾値でもよく、CPICH SNRが閾値よりも大きい場合、CPICH SNRは条件を満たすことができる。たとえば、CPICH SNRがマイナス10デシベル以上である場合、この条件は、ワイヤレスPCD100にとって困難なしにプリフェッチングが行われることを可能にする。
【００７０】
決定ブロック814で、平均CQIが閾値以下である、またはCPICH SNRが閾値以下である場合、方法700は、ブロック806に進むことができ、ウェブブラウザアプリケーション382は、プリフェッチモジュール384によって実行されたプリフェッチルーチンを終了することができる。決定ブロック814で、平均CQIが閾値よりも大きい、またはCPICH SNRが閾値よりも大きい場合、方法700は、決定ブロック816に進むことができる。
【００７１】
決定ブロック816で、プリフェッチモジュール384は、ステップ730で決定された移動速度が速度条件を満たすかどうかを決定することができる。たとえば、速度条件は、速度閾値でもよく、移動速度が速度閾値未満である場合、移動速度は条件を満たすことができる。速度閾値は、無線信号が比較的安定していることが想定され得る未満の値であり、たとえば、速度閾値は3マイル毎時(3mph)とすることができる。
【００７２】
決定ブロック816で、移動速度が速度閾値以上である場合、方法700は、ブロック806に進むことができ、ウェブブラウザアプリケーション382は、プリフェッチモジュール384によって実行されたプリフェッチルーチンを終了することができる。そうではなく、移動速度が速度閾値未満である場合、方法700はブロック818に進むことができ、プリフェッチモジュール384は、コンテンツプリフェッチングを実行することができる。その後、方法700は終了することができる。
【００７３】
次に図9を参照すると、プリフェッチモジュール384によってコンテンツプリフェッチングを実行する方法の第2の態様が示されており、全体的に900と表される。ブロック904で開始し、プリフェッチモジュール384は、ウェブブラウザアプリケーション382によってロードされた現在のページに関連付けられたページコンテンツを監視することができる。ブロック906で、プリフェッチモジュール384は、ページの動きを監視することができる。
【００７４】
決定ブロック908に移動して、プリフェッチモジュール384は、現在のページコンテンツが、たとえばビデオおよびオーディオのようなマルチメディアファイルなど、テキストおよび画像以外に任意の代替のコンテンツを含むかどうかを決定することができる。現在のページコンテンツが代替コンテンツを含む場合、方法900は、ブロック910に進むことができ、プリフェッチモジュール384は、代替のコンテンツをプリフェッチすることができる。そのような場合、代替コンテンツプリフェッチでは、ユーザが代替のコンテンツをクリックした場合、たとえばビデオまたはオーディオファイルなどの代替コンテンツは、比較的小さい遅延で表示/再生することができ、ワイヤレス環境内でのコンテンツの正常なフェッチングに関連付けられた待ち時間を短縮することによってユーザエクスペリエンスを向上させることができる。方法900は、ブロック910から、決定ブロック912に進むことができる。決定ブロック908に戻って、現在のコンテンツが任意の代替コンテンツを含まない場合、方法900は、決定ブロック912に直接進むことができる。
【００７５】
決定ブロック912で、プリフェッチモジュール384は、ユーザが現在のウェブページの画面コンテンツを変更しているかどうかを決定することができる。そうでない場合、方法900は、決定ブロック920に進むことができ、ウェブブラウザアプリケーション382が停止されているかどうかが決定され得る。そうである場合、方法900は、終了してよい。一方、ウェブブラウザアプリケーション382が停止されていない場合、方法900は、ブロック904に戻ることができ、本明細書で説明するように継続することができる。
【００７６】
決定ブロック912に戻ると、ユーザが画面コンテンツを変更している場合、方法900は、ブロック916に移動し得、プリフェッチングモジュール384は、スクロール方向を決定することができる。次いで、決定ブロック918で、プリフェッチモジュール384は、リンクがスクロール方向にディスプレイ画面に入ろうとしているかどうかを決定することができる。ディスプレイ画面に入ろうとしているリンクがない場合、方法900は、決定ブロック914に進むことができ、本明細書で説明するように継続することができる。
【００７７】
決定ブロック918で、1つまたは複数のリンクがスクロール方向に画面108に入ろうとしている場合、方法900は、ブロック918に進むことができ、プリフェッチモジュール384は、各入ってくるリンクに関連付けられたコンテンツをプリフェッチすることができる。したがって、ユーザが新しく入ったリンクをクリックする場合、そのリンクに関連付けられたコンテンツは、ワイヤレスネットワーク内で正常にフェッチングすることと比較して、ほとんど躊躇なく、または実質的に短縮された待ち時間で、ユーザに提示され得る。方法900は、ブロック920から、決定ブロック914に進むことができる。その後、方法900は説明したように継続し得る。
【００７８】
図10は、コンテンツプリフェッチングを実行する第3の態様を示し、全体的に1000と表される。ブロック1004から始まり、プリフェッチモジュール384は、タイミングアラームが設定されているかどうかを決定することができる。タイミングアラームが設定されている場合、方法1000は、ブロック1006に進むことができ、プリフェッチモジュール384は、時間を監視することができる。次いで、決定ブロック1008で、プリフェッチモジュール384は、現在時間が時間条件を満たすかどうかを決定することができる。たとえば、時間条件は、たとえば5分、10分、15分など所定の時間量をアラーム時間から引いたものでもよい。時間がアラーム時間マイナス所定の時間量に等しい場合、現在時間は時間条件を満たすことができる。
【００７９】
時間がアラーム時間マイナス所定の時間量に等しくない場合、方法1000は、ブロック1006に戻ることができ、本明細書で説明するように継続することができる。そうでない場合、時間がアラーム時間マイナス所定の時間に等しい場合、方法1000はブロック1010に進むことができる。
【００８０】
ブロック1010で、ウェブブラウザ382のプリフェッチモジュール384は、1つまたは複数のページをプリフェッチすることができる。ページは、ウェブブラウザ履歴、ブックマーク、またはその組合せに基づいて、ユーザ選択に基づいて決定され得る。したがって、午前7時45分に、ユーザがデバイスアラームを午前8時に設定した場合、プリフェッチモジュール384は、コンテンツプリフェッチング、DNSプリフェッチング、またはその組合せを実行し始めることができる。次いで、アラームが聞こえ、ユーザが目を覚まし、デバイスをつかんだ後、コンテンツは、閲覧のためにすぐに利用可能となり得る。
【００８１】
方法1000は、ブロック1010から、決定ブロック1012に進むことができる。決定ブロック1004に戻って、デバイスアラームが設定されていない場合も、方法1000は、決定ブロック1012に進むことができる。決定ブロック1012で、プリフェッチモジュール384は、たとえば、ユーザが決定した時間、システムが決定した時間(たとえば、履歴に基づいて)、またはその組合せなど、プリフェッチ時間が指定されているかどうかを決定することができる。プリフェッチ時間は、ウェブブラウザアプリケーションがコンテンツプリフェッチング、DNSプリフェッチング、またはその組合せを実行し始めることができる特定の時間でもよい。
【００８２】
プリフェッチ時間が指定されている場合、方法1000は、ブロック1014に進むことができ、ウェブブラウザアプリケーションは、時間を監視することができる。その後、決定ブロック1016で、プリフェッチモジュール384は、時間が条件を満たすかどうかを決定することができる。条件は、指定されたプリフェッチ時間でもよく、時間が指定されたプリフェッチ時間に等しいときに、時間は条件を満たすことができる。時間が指定されたプリフェッチ時間に等しくない場合、方法1000は、ブロック1014に戻ることができ、説明するように継続することができる。そうでない場合、方法1000は、ブロック1018に進むことができ、ウェブブラウザアプリケーションは、コンテンツをプリフェッチすることができる。その後、方法1000は、決定ブロック1020に進むことができる。
【００８３】
決定ブロック1012に戻って、プリフェッチ時間が指定されていない場合も、方法1000は、決定ブロック1020に進むことができる。決定ブロック1020で、プリフェッチモジュール384は、PCDがデバイス使用条件を満たすかどうかを決定することができる。デバイス使用条件は使用閾値でもよく、PCD使用が閾値を下回る場合、条件は満たされ得る。デバイス使用が使用閾値を下回らない場合、方法1000は終了することができる。そうではなく、デバイス使用が使用閾値未満である場合、方法1000はブロック1022に移動することができ、プリフェッチモジュール384は、コンテンツをプリフェッチすることができる。したがって、PCD100が低使用モードであるとき、たとえば、夜、ユーザが眠っている間、ユーザがPCD100に表示可能な所望のウェブページに行くことを望む前に、プリフェッチモジュール384は、DNSプリフェッチング、コンテンツプリフェッチング、またはその組合せを実行することができる。ブロック1022の後、方法1000は、終了してよい。
【００８４】
図11および図12は、コンテンツプリフェッチングを実行する第4の態様を示し、全体的に1100と表される。ブロック1104から始まり、ウェブブラウザアプリケーション382を有するPCD100が電源投入されると、プリフェッチモジュール384は、ウェブブラウザ履歴をレビューすることができる。ブロック1106で、任意のページビュー、すなわち任意のページについてのいくつかのビューがページビュー条件を満たすかどうかをプリフェッチモジュール384が決定することができる。ページビュー条件は、ユーザ指定またはシステム指定のページビュー数とすることができ、ページビューがページビュー数よりも大きい場合、ページビューは、ページビュー条件を満たすことができる。たとえば、特定のページについてのページビューが10よりも大きい場合、条件は満たされ得る。
【００８５】
ページビューがページビュー条件を満たす場合、方法1100は、ブロック1108に進むことができ、プリフェッチモジュール384は、ページビュー条件を満たすページビューを有する任意のページをプリフェッチすることができる。次いで、方法1100は、決定ブロック1110に進むことができる。決定ブロック1106に戻って、ページビューがページビュー条件を満たしていない場合も、方法1100は、決定ブロック1110に進むことができる。
【００８６】
決定ブロック1110で、プリフェッチモジュール384は、任意のウェブページコンテンツが採点されるかどうかを決定することができる。コンテンツは、コンテンツのホスト、コンテンツの作者、客観的な採点者(objective scoring body)、またはその組合せによって採点され得る。コンテンツに関連付けられた得点は、コンテンツがプリフェッチされることを示し得る。任意のコンテンツが採点される場合、方法1100は決定ブロック1112に進むことができ、プリフェッチモジュール384は、任意のコンテンツの得点が得点条件を満たすかどうかを決定することができる。コンテンツの得点は、ユーザが選択した得点でもよく、ユーザが選択した得点よりもコンテンツの得点が大きいとき、コンテンツの得点は条件を満たすことができる。たとえば、ユーザは、7以上の得点を有するすべてのコンテンツがプリフェッチモジュール384によってプリフェッチされることを指定することができる。
【００８７】
決定ブロック1112で、任意のコンテンツの得点が閾値よりも大きい場合、方法1100は、ブロック1114に進むことができ、プリフェッチモジュール384は、閾値よりも大きい得点を有する任意のコンテンツをプリフェッチすることができる。その後、方法は、決定ブロック1116に進むことができる。決定ブロック1110に戻って、コンテンツが採点されない場合も、方法1100は、決定ブロック1116に進むことができる。さらに、決定ブロック1112で、得点が条件を満たさない場合、方法1100は、決定ブロック1116に移動することができる。
【００８８】
決定ブロック1116で、プリフェッチモジュール384は、任意のリンクが画面上にあるかどうかを決定することができる。そうである場合、プリフェッチモジュール384は、画面上のリンクに関連付けられたコンテンツをプリフェッチすることができる。その後、方法は、図12の決定ブロック1202に進むことができる。決定ブロック1116に戻って、画面上に任意のリンクがない場合も、方法1200は、図12の決定ブロック1202に進むことができる。
【００８９】
図12の決定ブロック1202で、プリフェッチモジュール384は、現在のウェブページ上の任意のコンテンツタイプがコンテンツタイプ条件を満たすかどうかを決定することができる。たとえば、コンテンツタイプ条件は、.jpeg、.mpeg、.mp3、.wav、.avi、.wmv、.movなどでもよく、コンテンツタイプがコンテンツタイプ条件と同じである場合、コンテンツタイプは条件を満たすことができる。したがって、通常はファイルサイズが大きくないいくつかのタイプのコンテンツをプリフェッチすることができる。たとえば、ストリーミングコンテンツ、.pdfなど、比較的大きい他のタイプのコンテンツは、それに関連付けられたオーバーヘッドが大きいため、プリフェッチされなくてもよい。
【００９０】
決定ブロック1202で、コンテンツタイプがコンテンツタイプ条件を満たす場合、方法1100は、ブロック1204に進むことができ、プリフェッチモジュール384は、コンテンツタイプ条件を満たすコンテンツをプリフェッチすることができる。その後、方法1100は、決定ブロック1206に進むことができる。決定ブロック1202に戻って、コンテンツタイプがコンテンツタイプ条件を満たしていない場合も、方法1100は、決定ブロック1206に進むことができる。
【００９１】
決定ブロック1206で、プリフェッチモジュール384は、推定されたダウンロード時間が条件に等しいかどうかを決定することができる。特定の態様では、プリフェッチングのためのファイルサイズ閾値は、ファイルサイズおよび最大使用可能なデータレートに応じて決まり得る。たとえば、決定ブロック1206で、望ましい条件は、たとえば数秒など、所定の時間量内に終了し得るコンテンツのプリフェッチングを含むことができる。したがって、最大使用可能なデータレートが28.8メガビット毎秒(Mbps)である場合、決定ブロック1206の条件または閾値を以下の通りに設定することができる。28.8(最大使用可能なデータレート)×1秒(時間)×75%(重み付け定数/係数)=2.7メガバイト(プリフェッチモジュール384によるダウンロードのための最大ファイルサイズ)。
【００９２】
決定ブロック1206で、現在のウェブページ上の任意のコンテンツサイズがダウンロード時間条件を満たす場合、方法1100はブロック1208に進むことができ、コンテンツサイズ条件を満たすコンテンツがウェブブラウザアプリケーションによってプリフェッチされ得る。その後、方法1100は終了することができる。決定ブロック1206に戻って、コンテンツサイズがコンテンツサイズ条件に等しくない場合、方法1100は終了することができる。
【００９３】
図13を参照すると、コンテンツプリフェッチングを実行する第5の態様が示されており、全体的に1300と表される。ブロック1304で始まり、PCD100が電源投入されると、以下のステップが実施され得る。特定の態様では、PCD100は、複数のプロセッサ324を有することができ、または、PCD100は、マルチコアプロセッサ324を有することができる。ブロック1304で、プリフェッチモジュール384は、PCD100における複数のプロセッサまたはコアを監視することができる。決定ブロック1306で、ウェブブラウザアプリケーション382のプリフェッチモジュール384は、DSP324のすべてのプロセッサまたはコアがアイドル状態またはスリープモードであるかどうかを決定することができる。プロセッサまたはコアがスリープ状態である場合、方法1300は、「はい」分岐に従い、ブロック1308に進むことができ、ウェブブラウザアプリケーション382のプリフェッチモジュール384は、コンテンツプリフェッチングを有効にすることができる。
【００９４】
決定ブロック1310に移動すると、プリフェッチモジュール384は、プリフェッチ状態が存在するかどうか、すなわち、現在のウェブページがプリフェッチングの候補である任意のコンテンツを含む、現在の時間がコンテンツのプリフェッチングの性能を保証する、現在の時間がDNSプリフェッチングの性能を保証する、またはその組合せかどうかを決定することができる。プリフェッチ状態が存在する場合、方法1300は、ブロック1312に進むことができ、プリフェッチモジュール384は、たとえば、DSP324のアイドルのプロセッサまたはコアを作動する旨の要求をシステムモニタ109に送ることによって、DSP324のアイドルのプロセッサまたはコアを作動することができる。
【００９５】
次に、ブロック1314で、プリフェッチモジュール384は、DSP324のアイドルのプロセッサまたはコアを使用して、プリフェッチング操作を実行することができる。次いで、方法は、ブロック1316に進むことができる。決定ブロック1310に戻って、プリフェッチ状態が存在していない場合、方法1300は、ブロック1316に直接進むことができる。ブロック1316で、プリフェッチモジュール384は、CPU周波数の推定された変化を決定することができる。特定の態様において、ウェブブラウザアプリケーション382のプリフェッチモジュール384は、スケジューラを含み得る、または1つもしくは複数の実行待ち行列から受信された情報を監視する、またはその組合せであり得るシステムモニタ109から受信された情報に基づいて、CPU周波数の推定された変化を決定することができる。
【００９６】
決定ブロック1318に移動して、プリフェッチモジュール384は、CPU周波数の推定された変化がCPU周波数条件に等しいかどうかを決定することができる。たとえば、CPU周波数条件は、CPU周波数閾値でもよく、CPU周波数の推定された変化がCPU周波数閾値よりも大きい場合、CPU周波数は、CPU周波数条件を満たすことができる。CPU周波数の推定された変化がCPU周波数条件を満たす場合、方法1300は、ブロック1320に進むことができ、プリフェッチモジュール384は、プリフェッチを無効にすることができる。プリフェッチモジュール384は、プロセッサまたはコアがプリフェッチングタスクまたは操作を実行するにはあまりに忙しくなり得ることを見越して、プリフェッチングを無効にすることができる。
【００９７】
方法1300は、ブロック1320から、決定ブロック1322に進むことができる。決定ブロック1318に戻って、CPU周波数の推定された変化がCPU周波数条件を満たしていない場合も、方法1300は、決定ブロック1322に進むことができる。決定ブロック1322で、プリフェッチモジュール384は、ポータブルコンピューティングデバイス100が電源切断されているかどうかを決定することができる。そうである場合、方法1300は、終了してよい。そうではなく、ポータブルコンピューティングデバイス100が電源切断されておらず、オンで動作可能のままである場合、方法1300は、ブロック1304に移動し、本明細書で説明するように継続することができる。
【００９８】
決定ブロック1306に戻って、すべてのプロセッサがオンであり、アイドル状態ではないことをプリフェッチモジュール384が決定した場合、方法1300は「いいえ」分岐に従い、ブロック1324に進むことができる。ブロック1324で、プリフェッチモジュール384は、現在のCPU負荷、たとえば、各プロセッサ、各コア、またはその組合せにおける負荷を決定することができる。現在のCPU負荷は、システムモニタ109から受信される情報に基づいて決定され得る。その情報は、現在の動作周波数を含むことができる。パーセンテージ値を決定するために、プロセッサまたはコアごとに、現在の動作周波数を最大動作周波数で割ることによって、負荷を決定することができる。
【００９９】
決定ブロック1326に移動して、プリフェッチモジュール384は、CPU負荷がCPU負荷条件を満たすかどうかを決定することができる。たとえば、CPU負荷条件はパーセンテージ使用値でもよく、CPU負荷がパーセンテージ使用値よりも大きい場合、CPU負荷はCPU負荷条件を満たし得る。決定ブロック1326で、CPU負荷がCPU負荷条件を満たす場合、方法1300はブロック1328に進むことができ、プリフェッチングは無効にされ得る。したがって、CPU負荷がプリフェッチング操作またはタスクを実行するにはあまりに大きくなりすぎるとき、ウェブブラウザアプリケーションはプリフェッチングを無効にすることができる。プリフェッチングを無効にするためのトリガとしてCPU負荷を使用する代わりに、プリフェッチモジュール384は、プロセッサまたはコアごとに温度情報を受信することができ、温度データが高熱状態を示す場合も、プリフェッチモジュール384はプリフェッチングを無効にすることができることを諒解されよう。
【０１００】
方法1300は、ブロック1328からブロック1316に進み、次いで、本明細書で説明するように継続することができる。さらに、決定ブロック1326から、CPU負荷がCPU負荷条件を満たさない場合、方法1300はブロック1316に進み、説明するように継続することもできる。
【０１０１】
本明細書で説明する方法ステップは、必ずしも説明どおりの順序で実施する必要はないことを理解されたい。さらに、「その後」、「次いで」、「次に」などの語は、ステップの順序を限定することを意図していない。これらの語は、方法ステップの説明を通じて読者を案内するために使用されているにすぎない。さらに、本明細書で説明する方法はポータブルコンピューティングデバイス(PCD)上で実行可能なものとして説明している。PCDは移動電話デバイス、携帯情報端末デバイス、WWAN接続を有するスマートブックコンピューティングデバイス、WWAN接続を有するネットブックコンピューティングデバイス、WWAN接続を有するラップトップコンピューティングデバイス、WWAN接続を有するデスクトップコンピューティングデバイス、またはそれらの組合せであってよい。また、様々な方法ステップは、本明細書では指定されない新規方法を作成するために、どの順序で組み合わせてもよい。
【０１０２】
本明細書で説明する構成では、本明細書におけるシステムおよび方法は、DNSプリフェッチング、コンテンツプリフェッチング、またはその組合せを実行するために使用され得る。DNSプリフェッチングがモバイル通信ネットワークにかなりの負荷をかけ得るので、図10に関連して上述したように、たとえば、ユーザが通常デバイスを使用する前(記録された使用履歴に基づいて)、アラームがセットされる直前、プリフェッチアラームがトリガされるとき、デバイスが低使用モードであるとき、またはその組合せなど、ユーザがデバイスを使用していないとき、DNSプリフェッチングが実行され得る。
【０１０３】
さらに、コンテンツプリフェッチングは、未使用の、または十分に利用されていないネットワークリソース、レンダリングリソース、またはその組合せを使用して実行され得る。プリフェッチングコンテンツは、より良いサービス品質を提供することができ、コンテンツがユーザによって実際に要求される前にユーザが見たい可能性のあるコンテンツを取り出すことによって、ユーザエクスペリエンスをかなり向上させることができる。たとえば、システムは、図11に関して上述したように、頻繁に訪問されたページ、ユーザによって最もクリックされそうなリンク(得点などに基づいて)、またはその組合せをプリフェッチすることができる。
【０１０４】
システムは、条件付きコンテンツ、スケジュールされたコンテンツ、予測されたコンテンツ、またはその組合せを使用することができる。たとえば、条件付きコンテンツは、ユーザ入力または時刻など何らかのイベントに基づいて条件付きで選択され得るコンテンツをプレロード、すなわち、プリフェッチすることを含むことができる。スケジュールされたコンテンツは、図10に関して上述したように、毎朝早くなど、時刻に基づいてコンテンツをプレロードまたはプリフェッチすることを含むことができる。これによって、コンテンツは、ユーザによって要求される前に、すぐに利用可能となり得る。予測されたコンテンツは、図4および図9に関して上述したように、ユーザ要求に先立ってコンテンツを予測し、プレロードすることを含むことができる。これは、より良好な応答性を提供することによって、ユーザエクスペリエンスを向上させ得る。
【０１０５】
図4および図9に関して上述したように、ユーザ履歴、サーバリソースメトリクス、特定のURLに対する閲覧およびマウスの近接度、ならびにコンテンツタイプを含めて、どんなコンテンツがプリロードする候補であるかを決定するために、様々な基準が使用され得ることを諒解されよう。さらに、何らかのリソース利用可能性を決定することができる。そのようなリソースは、1つまたは複数の電力メトリクス、1つまたは複数の無線リンクメトリクス、1つまたは複数のCPU/バスメトリクス、またはその組合せを使用して決定することができる。電力メトリクスは、図8に関して上述したように、デバイスが充電されているかどうかを決定することを含むことができる。これによって、図13に関して上述したように、デバイスの消費電力に対する影響、およびデバイスがその温度制限に近いかどうかに基づいて、プリフェッチングを有効または無効にすることができる。無線リンクメトリクスは、図8に関して上述したように、ブロック誤り率(BLER)、信号対雑音比(SNR)、達成されているスループット(TP)、往復時間(RTT)、またはその組合せを含み得る。
【０１０６】
BLERが誤って転送されたデータパケットの数割る転送されたパケットの数であり得ることは諒解されよう。SNRは、信号を破損させている可能性がある雑音電力に対する信号電力の比であり得る。スループットは、通信チャネル上の成功したメッセージ配信の平均レートであり得る。スループットは、ビット/秒(bit/sまたはbps)で測定され得る。RTTは、信号パルスまたはパケットが特定のソースから特定の宛先に移動し、再度戻るために必要な時間であり得る。無線メトリクスは、1つまたは複数のチャネルの全体的な品質および容量を決定するために使用され得る。ボイストラフィックなど待ち行列に入れられた他のネットワークタスクは、リソースのさしあたりのクライアントの要求を決定するために使用することができる。
【０１０７】
CPU/バスメトリクスは、現在のCPU負荷を含むことができる。現在のCPU負荷は、周波数値として表すことができる。代わりに、現在のCPU負荷は、たとえば現在の周波数割る最大周波数など、パーセンテージ値として表すことができる。CPU/バメトリクスを条件として使用することによって、図13に関して上述したように、システム性能への悪影響を与えるとき、プリフェッチングを無効にすることができる。
【０１０８】
1つまたは複数の例示的な態様では、説明した機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの組合せで実装することができる。ソフトウェアで実装した場合、これらの機能を機械可読媒体すなわちコンピュータ可読媒体などのコンピュータプログラム製品に記憶すること、またはそのようなコンピュータプログラム製品上の1つもしくは複数の命令あるいはコードとして送信することができる。コンピュータ可読媒体は、コンピュータ記憶媒体と通信媒体の両方を含み、1つの場所から別の場所へのコンピュータプログラムの転送を容易にするあらゆる媒体を含む。記憶媒体は、コンピュータによってアクセスされ得る任意の利用可能な媒体であってよい。限定ではなく例として、そのようなコンピュータ可読媒体は、RAM、ROM、EEPROM、CD-ROM、または他の光ディスク記憶装置、磁気ディスク記憶装置もしくは他の磁気記憶デバイス、または、命令もしくはデータ構造の形式で所望のプログラムコードを伝送もしくは記憶するために使用でき、コンピュータによってアクセスされ得るその他の媒体を含み得る。また、あらゆる接続がコンピュータ可読媒体と適切に呼ばれる。たとえば、ソフトウェアが、ウェブサイト、サーバ、または他のリモートソースから、同軸ケーブル、光ファイバーケーブル、ツイストペア、デジタル加入者回線(DSL)、または、赤外線、無線およびマイクロ波などのワイヤレス技術を使用して送信される場合、同軸ケーブル、光ファイバーケーブル、ツイストペア、DSL、または、赤外線、無線およびマイクロ波などのワイヤレス技術は、媒体の定義に含まれ得る。本明細書で使用する場合、ディスク(disk)およびディスク(disc)は、コンパクトディスク(CD)、レーザディスク、光ディスク、デジタル多用途ディスク(DVD)、フレキシブルディスク、およびブルーレイディスクを含み、ディスク(disk)は、通常、磁気的にデータを再生し、ディスク(disc)は、レーザで光学的にデータを再生する。上記の組合せもコンピュータ可読媒体の範囲内に含めるべきである。
【０１０９】
選択された態様について詳細に説明し、詳述してきたが、以下の請求項によって定義されるような本発明の趣旨および範囲から逸脱することなく、本明細書において様々な置換および改変を実施できることが理解されよう。
【符号の説明】
【０１１０】
100  ポータブルコンピューティングデバイス
102  ハウジング
103  アプリケーションサブシステム
104  上側ハウジング部
106  下側ハウジング部
107  ウェブブラウザモニタ
108  ディスプレイ
109  システムモニタ
110  トラックボール入力デバイス
111  HTTPスタック
112  電源投入ボタン
113  ドメインネームサーバモジュール
114  電源切断ボタン
116  インジケータライト
118  スピーカ
120  マルチボタン型キーボード
122  リセットボタン
125  センサ
125A  万歩計(登録商標)
125B  加速度計
125C  近接センサ
125D  コンパス
125E  周辺光センサ
127  転送通信プロトコル(「TCP」)モジュール
131  ネットワークバッファ層
133  モデムサブシステム
135  無線リンク制御(「RLC」)層
137  無線リレー制御(「RRC」)モジュール
139  メディアアクセス制御(「MAC」)層
141  物理(「PHY」)層
143  全地球測位システム(「GPS」)
177  発展型高速パケットアクセスシステム
200  コンピューティングデバイス
206  通信ネットワーク
320  PCD
322  オンチップシステム
324  デジタル信号プロセッサ
324  中央処理装置
328  ディスプレイコントローラ
330  タッチスクリーンコントローラ
334  ビデオエンコーダ
336  ビデオ増幅器
338  ビデオポート
340  ユニバーサルシリアルバス(「USB」)コントローラ
342  USBポート
346  加入者識別モジュール(「SIM」)カード
348  デジタルカメラ
350  ステレオオーディオコーデック
352  オーディオ増幅器
354  第1のステレオスピーカ
356  第2のステレオスピーカ
358  マイクロフォン増幅器
360  マイクロフォン
362  周波数変調(FM)無線チューナー
364  FMアンテナ
366  ステレオヘッドフォン
368  無線周波数(RF)トランシーバ
370  RFスイッチ
372  RFアンテナ
374  キーパッド
376  マイクロフォンを備えたモノヘッドセット
378  バイブレータデバイス
380  電源
384  プリフェッチモジュール(P/M)
388  ネットワークカード
500  ウェブページ
【図１】
2013541772.tif 000004
【図２】
2013541772.tif 000005
【図３Ａ】
2013541772.tif 000006
【図３Ｂ】
2013541772.tif 000007
【図４】
2013541772.tif 000008
【図５】
2013541772.tif 000009
【図６】
2013541772.tif 000010
【図７】
2013541772.tif 000011
【図８】
2013541772.tif 000012
【図９】
2013541772.tif 000013
【図１０】
2013541772.tif 000014
【図１１】
2013541772.tif 000015
【図１２】
2013541772.tif 000016
【図１３】
2013541772.tif 000017
【手続補正書】
【提出日】平成25年4月3日(2013.4.3)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ポータブルコンピューティングデバイスの情報のプリフェッチングを実行するための方法であって、
前記ポータブルコンピューティングデバイスのディスプレイ画面上にウェブページをレンダリングするステップと、
前記ウェブページ内の任意のリンクについてのDNSプリフェッチを実行するステップと、
画面変更操作が実行されているかどうかを決定するステップと、
前記画面変更操作が実行されているとき、前記ディスプレイ画面に表示されているリンクごとに、前記ポータブルコンピューティングデバイス内のキューに1つまたは複数のDNSプリフェッチタスクを入れるステップと
を含む方法。
【請求項２】
前記キューが後入れ先出しキューである、請求項1に記載の方法。
【請求項３】
前記画面変更操作が停止されているかどうかを決定するステップと、
前記画面変更操作が停止されている場合、前記ウェブページ内の可視リンクについての前記DNSプリフェッチタスクを実行するステップと
をさらに含む請求項1に記載の方法。
【請求項４】
ユーザの習慣を監視し、習慣を現在時間と比較することによって、ユーザが1つまたは複数のウェブサイトをダウンロードする可能性を決定するステップと、
前記現在時間から所定の時間以内に日常的にアクセスされるウェブサイトに関するパターンを決定するステップと
をさらに含む請求項1に記載の方法。
【請求項５】
CPU、メモリ、およびバス帯域幅を含む十分な処理リソースがリソースマネージャによるウェブコンテンツの処理をサポートするために使用可能であるかどうかを決定するステップ
をさらに含む請求項4に記載の方法。
【請求項６】
前記ポータブルコンピューティングデバイスが充電器に接続されているかどうか、または
十分なバッテリ充電が使用可能かどうか、および前記処理リソースがウェブコンテンツの処理に十分かどうかを決定するステップ
をさらに含む請求項5に記載の方法。
【請求項７】
前記ポータブルコンピューティングデバイスが前記充電器に接続されている、または十分なバッテリ充電が使用可能である場合、平均的なワイヤレスチャネル品質が条件を満たすかどうかを決定するステップと、
前記平均的なワイヤレスチャネル品質が前記条件を満たす場合、コンテンツまたはDNSプリフェッチングを実行するステップと
をさらに含む請求項6に記載の方法。
【請求項８】
ワイヤレスチャネルが存在するかどうかを決定するステップ
をさらに含む請求項1に記載の方法。
【請求項９】
ユーザが前記ウェブページから離れてナビゲートすることに応答して前記キューをクリアするステップ
をさらに含む請求項2に記載の方法。
【請求項１０】
ポータブルコンピューティングデバイスであって、
前記ポータブルコンピューティングデバイスのディスプレイ画面上にウェブページをレンダリングするための手段と、
前記ウェブページ内の任意のリンクについてのDNSプリフェッチを実行するための手段と、
画面変更操作が実行されているかどうかを決定するための手段と、
前記画面変更操作が実行されているとき、前記ディスプレイ画面に表示されているリンクごとに、キューに1つまたは複数のDNSプリフェッチタスクを入れるための手段と
を含むポータブルコンピューティングデバイス。
【請求項１１】
前記キューが後入れ先出しキューである、請求項10に記載のポータブルコンピューティングデバイス。
【請求項１２】
前記画面変更操作が停止されているかどうかを決定するための手段と、
前記画面変更操作が停止されている場合、前記ウェブページ内の各可視リンクについてのDNSプリフェッチタスクを実行するための手段と
をさらに含む請求項11に記載のポータブルコンピューティングデバイス。
【請求項１３】
ユーザの習慣を監視し、習慣を現在時間と比較することによって、ユーザが1つまたは複数のウェブサイトをダウンロードする可能性を決定するための手段と、
前記現在時間から所定の時間以内に日常的にアクセスされるウェブサイトに関するパターンを決定するための手段と
をさらに含む請求項10に記載のポータブルコンピューティングデバイス。
【請求項１４】
CPU、メモリ、およびバス帯域幅を含む十分な処理リソースがリソースマネージャによるウェブコンテンツの処理をサポートするために使用可能であるかどうかを決定するための手段
をさらに含む請求項13に記載のポータブルコンピューティングデバイス。
【請求項１５】
前記ポータブルコンピューティングデバイスが充電器に接続されているかどうか、または十分なバッテリ充電が使用可能かどうか、および前記処理リソースがウェブコンテンツの処理に十分かどうかを決定するための手段
をさらに含む請求項14に記載のポータブルコンピューティングデバイス。
【請求項１６】
ワイヤレスチャネルが存在するかどうかを決定するための手段
をさらに含む請求項10に記載のポータブルコンピューティングデバイス。
【請求項１７】
ユーザが前記ウェブページから離れてナビゲートすることに応答して前記キューをクリアするための手段
をさらに含む請求項11に記載のポータブルコンピューティングデバイス。
【請求項１８】
ポータブルコンピューティングデバイスであって、
メモリと、
前記メモリにアクセス可能なプロセッサとを備え、前記プロセッサが、
前記ポータブルコンピューティングデバイスのディスプレイ画面上にウェブページをレンダリングし、
前記ウェブページ内の任意の可視リンクについてのDNSプリフェッチを実行し、
画面変更操作が実行されているかどうかを決定し、
前記画面変更操作が実行されているとき、前記ディスプレイ画面に表示されているリンクごとに、前記ポータブルコンピューティングデバイス内のキューに1つまたは複数のDNSプリフェッチタスクを入れる
ように動作可能である
ポータブルコンピューティングデバイス。
【請求項１９】
前記キューが後入れ先出しキューである、請求項18に記載のポータブルコンピューティングデバイス。
【請求項２０】
前記プロセッサが、
前記画面変更操作が停止されているかどうかを決定し、
前記画面変更操作が停止されている場合、前記ウェブページ内の各可視リンクについての前記DNSプリフェッチタスクを実行する
ようにさらに動作可能である
請求項18に記載のポータブルコンピューティングデバイス。
【請求項２１】
前記プロセッサが、
ユーザの習慣を監視し、習慣を現在時間と比較することによって、ユーザが1つまたは複数のウェブサイトをダウンロードする可能性を決定し、
前記現在時間から所定の時間以内に日常的にアクセスされるウェブサイトに関するパターンを決定する
ようにさらに動作可能である
請求項20に記載のポータブルコンピューティングデバイス。
【請求項２２】
前記プロセッサが、
CPU、メモリ、およびバス帯域幅を含む十分な処理リソースがリソースマネージャによるウェブコンテンツの処理をサポートするために使用可能であるかどうかを決定する
ようにさらに動作可能である
請求項21に記載のポータブルコンピューティングデバイス。
【請求項２３】
前記プロセッサが、
前記ポータブルコンピューティングデバイスが充電器に接続されているかどうか、または十分なバッテリ充電が使用可能かどうか、および前記処理リソースがウェブコンテンツの処理に十分かどうかを決定する
ようにさらに動作可能である
請求項20に記載のポータブルコンピューティングデバイス。
【請求項２４】
前記プロセッサが、
前記ポータブルコンピューティングデバイスが前記充電器に接続されている、または十分なバッテリ充電が使用可能である場合、平均的なワイヤレスチャネル品質が条件を満たすかどうかを決定し、
前記平均的なワイヤレスチャネル品質が前記条件を満たす場合、コンテンツまたはDNSプリフェッチングを実行する
ようにさらに動作可能である
請求項18に記載のポータブルコンピューティングデバイス。
【請求項２５】
ポータブルコンピューティングデバイスのプロセッサに、
前記ポータブルコンピューティングデバイスのディスプレイ画面上にウェブページをレンダリングするステップと、
前記ウェブページ内の任意の可視リンクについてのDNSプリフェッチを実行するステップと、
画面変更操作が実行されているかどうかを決定するステップと、
前記画面変更操作が実行されているとき、前記ディスプレイ画面に表示されているリンクごとに、前記ポータブルコンピューティングデバイス内のキューに1つまたは複数のDNSプリフェッチタスクを入れるステップと
を含む操作を実行させるように構成される、ソフトウェア命令を記録したコンピュータ可読記録媒体。
【請求項２６】
前記キューが後入れ先出しキューである、請求項25に記載のコンピュータ可読記録媒体。
【請求項２７】
前記記録されたソフトウェア命令が、前記モバイルコンピューティングデバイスの前記プロセッサに、
前記画面変更操作が停止されているかどうかを決定するステップと、
前記画面変更操作が停止されている場合、前記ウェブページ内の各可視リンクについての前記DNSプリフェッチタスクを実行するステップと
をさらに含む操作を実行させるように構成される、請求項25に記載のコンピュータ可読記録媒体。
【請求項２８】
前記記録されたソフトウェア命令が、前記モバイルコンピューティングデバイスの前記プロセッサに、
ユーザの習慣を監視し、習慣を現在時間と比較することによって、ユーザが1つまたは複数のウェブサイトをダウンロードする可能性を決定するステップと、
前記現在時間から所定の時間以内に日常的にアクセスされるウェブサイトに関するパターンを決定するステップと
をさらに含む操作を実行させるように構成される、請求項27に記載のコンピュータ可読記録媒体。
【請求項２９】
前記記録されたソフトウェア命令が、前記モバイルコンピューティングデバイスの前記プロセッサに、
CPU、メモリ、およびバス帯域幅を含む十分な処理リソースがリソースマネージャによるウェブコンテンツの処理をサポートするために使用可能であるかどうかを決定するステップ
をさらに含む操作を実行させるように構成される、請求項28に記載のコンピュータ可読記録媒体。
【請求項３０】
前記記録されたソフトウェア命令が、前記モバイルコンピューティングデバイスの前記プロセッサに、
前記ポータブルコンピューティングデバイスが充電器に接続されているかどうか、または十分なバッテリ充電が使用可能かどうか、および前記処理リソースがウェブコンテンツの処理に十分かどうかを決定するステップ
をさらに含む操作を実行させるように構成される、請求項29に記載のコンピュータ可読記録媒体。
【請求項３１】
前記記録されたソフトウェア命令が、前記モバイルコンピューティングデバイスの前記プロセッサに、
前記ポータブルコンピューティングデバイスが前記充電器に接続されている、または十分なバッテリ充電が使用可能である場合、平均的なワイヤレスチャネル品質が条件を満たすかどうかを決定するステップと、
前記平均的なワイヤレスチャネル品質が前記条件を満たす場合、コンテンツまたはDNSプリフェッチングを実行するステップと
をさらに含む操作を実行させるように構成される、請求項30に記載のコンピュータ可読記録媒体。
【国際調査報告】
2013541772.tif 000018
2013541772.tif 000019