(57)【要約】  ワイヤレスハンドヘルドコンピューティングデバイスの1つまたは複数のメモリリソースを管理するための方法およびシステムが記載される。方法およびシステムは、ウェブブラウザモジュールを開始するための要求を受信するステップと、ウェブアドレスのための入力を受信するステップとを含むことができる。方法およびシステムはまた、ウェブアドレスに対応するファイルを受信するステップと、ファイル内に存在する1つまたは複数のオブジェクトをレビューするステップとを含むことができる。方法およびシステムは、オブジェクトが1つまたは複数のメモリリソース内にすでに存在するか否かを判断することができる。また、オブジェクトが1つまたは複数のメモリリソース内に存在しない場合、方法およびシステムは、オブジェクトに対する優先順位を計算することができる。次いで、オブジェクトの優先順位が割り当てられて記憶され得る。また、現在のオブジェクトが1つまたは複数のメモリリソースの閾値を超えるか否かが判断されてよく、より低い優先順位を有する他のオブジェクトが必要に応じて廃棄されてよい。
2013540322.tif 000002
【特許請求の範囲】
【請求項１】
ワイヤレスハンドヘルドコンピューティングデバイスの1つまたは複数のメモリリソースを管理するための方法であって、
ウェブブラウザモジュールを開始するための要求を受信するステップと、
ウェブアドレスのための入力を受信するステップと、
前記ウェブアドレスに対応するファイルを受信するステップと、
前記ファイル内に存在するオブジェクトの1つまたは複数のアドレスをレビューするステップと、
オブジェクトが前記1つまたは複数のメモリリソース内にすでに存在するか否かを判断するステップと、
前記オブジェクトが前記1つまたは複数のメモリリソース内に存在しない場合に、前記オブジェクトに対する優先順位を計算するステップと、
前記優先順位を前記オブジェクトに割り当てるステップと
を含む、方法。
【請求項２】
前記ワイヤレスハンドヘルドコンピューティングデバイス内の1つまたは複数のメモリリソースの現在状態を判断するステップをさらに含む、請求項1に記載の方法。
【請求項３】
前記1つまたは複数のメモリリソースの状態が、前記ウェブブラウザモジュールのための容量の増加に応じられることを示す場合に、前記ウェブブラウザモジュールのために利用可能な容量を増加させる、請求項2に記載の方法。
【請求項４】
オブジェクトに対する優先順位を計算するステップが、前記ウェブブラウザモジュールによって以前に前記オブジェクトがアクセスされたか否かを判断するステップを含む、請求項1に記載の方法。
【請求項５】
オブジェクトに対する優先順位を計算するステップが、前記オブジェクトに対応するタイプを判断するステップを含む、請求項1に記載の方法。
【請求項６】
オブジェクトに対する優先順位を計算するステップが、前記ウェブブラウザモジュールの動作に対するグローバルアプリケーションを前記オブジェクトが有するか否かを判断するステップを含む、請求項1に記載の方法。
【請求項７】
前記優先順位を前記1つまたは複数のメモリリソース内に記憶するステップをさらに含む、請求項1に記載の方法。
【請求項８】
前記オブジェクトが前記1つまたは複数のメモリリソースの閾値を超えるか否かを判断するステップと、より低い優先順位を有する他のオブジェクトを廃棄するステップとをさらに含む、請求項1に記載の方法。
【請求項９】
前記オブジェクトが、カスケーディングスタイルシート、ジャバスクリプトファイル、画像ファイル、およびジャバスクリプトライブラリのうちの少なくとも1つを含む、請求項1に記載の方法。
【請求項１０】
前記ワイヤレスハンドヘルドコンピューティングデバイスが、携帯電話、携帯情報端末、ページャ、スマートフォン、ナビゲーションデバイス、およびワイヤレス接続またはワイヤレスリンクを含むハンドヘルドコンピュータのうちの少なくとも1つを備える、請求項1に記載の方法。
【請求項１１】
ワイヤレスハンドヘルドコンピューティングデバイスの1つまたは複数のメモリリソースを管理するためのコンピュータシステムであって、
ウェブブラウザモジュールを開始するための要求を受信し、
ウェブアドレスのための入力を受信し、
前記ウェブアドレスに対応するファイルを受信し、
前記ファイル内に存在するオブジェクトの1つまたは複数のアドレスをレビューし、
オブジェクトが前記1つまたは複数のメモリリソース内にすでに存在するか否かを判断し、
前記オブジェクトが前記1つまたは複数のメモリリソース内に存在しない場合に、前記オブジェクトに対する優先順位を計算し、
前記優先順位を前記オブジェクトに割り当てる
ように動作可能なプロセッサを備える、システム。
【請求項１２】
前記プロセッサがさらに、
前記ワイヤレスハンドヘルドコンピューティングデバイス内の1つまたは複数のメモリリソースの現在状態を判断するように動作可能である、請求項11に記載のシステム。
【請求項１３】
前記1つまたは複数のメモリリソースの状態が、前記ウェブブラウザモジュールのための容量の増加に応じられることを示す場合に、前記プロセッサが、前記ウェブブラウザモジュールのために利用可能な容量を増加させるように動作可能である、請求項12に記載のシステム。
【請求項１４】
オブジェクトに対する優先順位を計算するように動作可能な前記プロセッサが、前記ウェブブラウザモジュールによって以前に前記オブジェクトがアクセスされたか否かを判断する前記プロセッサを含む、請求項11に記載のシステム。
【請求項１５】
オブジェクトに対する優先順位を計算するように動作可能な前記プロセッサが、前記オブジェクトに対応するタイプを判断する前記プロセッサを含む、請求項11に記載のシステム。
【請求項１６】
オブジェクトに対する優先順位を計算するように動作可能な前記プロセッサが、前記ウェブブラウザモジュールの動作に対するグローバルアプリケーションを前記オブジェクトが有するか否かを判断する前記プロセッサを含む、請求項11に記載のシステム。
【請求項１７】
前記プロセッサがさらに、
前記優先順位を前記1つまたは複数のメモリリソース内に記憶するように動作可能である、請求項11に記載のシステム。
【請求項１８】
前記プロセッサがさらに、
前記オブジェクトが前記1つまたは複数のメモリリソースの前記閾値を超えるか否かを判断して、より低い優先順位を有する他のオブジェクトを廃棄するように動作可能である、請求項11に記載のシステム。
【請求項１９】
前記オブジェクトが、カスケーディングスタイルシート、ジャバスクリプトファイル、画像ファイル、およびジャバスクリプトライブラリのうちの少なくとも1つを備える、請求項11に記載のシステム。
【請求項２０】
前記ワイヤレスハンドヘルドコンピューティングデバイスが、携帯電話、携帯情報端末、ページャ、スマートフォン、ナビゲーションデバイス、およびワイヤレス接続またはワイヤレスリンクを含むハンドヘルドコンピュータのうちの少なくとも1つを備える、請求項11に記載のシステム。
【請求項２１】
ワイヤレスハンドヘルドコンピューティングデバイスの1つまたは複数のメモリリソースを管理するためのコンピュータシステムであって、
ウェブブラウザモジュールを開始するための要求を受信するための手段と、
ウェブアドレスのための入力を受信するための手段と、
前記ウェブアドレスに対応するファイルを受信するための手段と、
前記ファイル内に存在するオブジェクトの1つまたは複数のアドレスをレビューするための手段と、
オブジェクトが前記1つまたは複数のメモリリソース内にすでに存在するか否かを判断するための手段と、
前記オブジェクトが前記1つまたは複数のメモリリソース内に存在しない場合に、前記オブジェクトに対する優先順位を計算するための手段と、
前記優先順位を前記オブジェクトに割り当てるための手段と
を含む、システム。
【請求項２２】
前記ワイヤレスハンドヘルドコンピューティングデバイス内の1つまたは複数のメモリリソースの現在状態を判断するための手段をさらに含む、請求項21に記載のシステム。
【請求項２３】
前記1つまたは複数のメモリリソースの状態が、前記ウェブブラウザモジュールのための容量の増加に応じられることを示す場合に、前記ウェブブラウザモジュールのために利用可能な容量を増加させる、請求項22に記載のシステム。
【請求項２４】
オブジェクトに対する優先順位を計算するための前記手段が、前記ウェブブラウザモジュールによって以前に前記オブジェクトがアクセスされたか否かを判断するための手段をさらに含む、請求項21に記載のシステム。
【請求項２５】
オブジェクトに対する優先順位を計算するための前記手段が、前記オブジェクトに対応するタイプを判断するための手段を含む、請求項21に記載のシステム。
【請求項２６】
オブジェクトに対する優先順位を計算するための前記手段が、前記ウェブブラウザモジュールの動作に対するグローバルアプリケーションを前記オブジェクトが有するか否かを判断するための手段を含む、請求項21に記載のシステム。
【請求項２７】
前記優先順位を前記1つまたは複数のメモリリソース内に記憶するための手段をさらに含む、請求項21に記載のシステム。
【請求項２８】
前記オブジェクトが前記1つまたは複数のメモリリソースの前記閾値を超えるか否かを判断するための手段と、より低い優先順位を有する他のオブジェクトを廃棄するための手段とをさらに含む、請求項21に記載のシステム。
【請求項２９】
前記オブジェクトが、カスケーディングスタイルシート、ジャバスクリプトファイル、画像ファイル、およびジャバスクリプトライブラリのうちの少なくとも1つを備える、請求項21に記載のシステム。
【請求項３０】
前記ワイヤレスハンドヘルドコンピューティングデバイスが、携帯電話、携帯情報端末、ページャ、スマートフォン、ナビゲーションデバイス、およびワイヤレス接続またはワイヤレスリンクを含むハンドヘルドコンピュータのうちの少なくとも1つを備える、請求項21に記載のシステム。
【請求項３１】
コンピュータにより実行可能なコンピュータ可読プログラムコードからなるコンピュータプログラムであって、前記コンピュータ可読プログラムコードが、ワイヤレスハンドヘルドコンピューティングデバイスの1つまたは複数のメモリリソースを管理するための方法を実施するように実行されるようになされ、前記方法が、
ウェブブラウザモジュールを開始するための要求を受信するステップと、
ウェブアドレスのための入力を受信するステップと、
前記ウェブアドレスに対応するファイルを受信するステップと、
前記ファイル内に存在するオブジェクトの1つまたは複数のアドレスをレビューするステップと、
オブジェクトが前記1つまたは複数のメモリリソース内にすでに存在するか否かを判断するステップと、
前記オブジェクトが前記1つまたは複数のメモリリソース内に存在しない場合に、前記オブジェクトに対する優先順位を計算するステップと、
前記優先順位を前記オブジェクトに割り当てるステップと
を含む、コンピュータプログラム。
【請求項３２】
前記方法を実施する前記プログラムコードが、
前記ワイヤレスハンドヘルドコンピューティングデバイス内の1つまたは複数のメモリリソースの現在状態を判断するステップをさらに含む、請求項31に記載のコンピュータプログラム。
【請求項３３】
前記方法を実施する前記プログラムコードが、
前記1つまたは複数のメモリリソースの状態が、前記ウェブブラウザモジュールのための容量の増加に応じられることを示すか否かを判断するステップと、前記ウェブブラウザモジュールのために利用可能な容量を増加させるステップとをさらに含む、請求項31に記載のコンピュータプログラム。
【請求項３４】
前記方法を実施する前記プログラムコードが、
前記ウェブブラウザモジュールによって以前に前記オブジェクトがアクセスされたか否かを判断するステップによってオブジェクトに対する前記優先順位を計算するステップをさらに含む、請求項31に記載のコンピュータプログラム。
【請求項３５】
前記方法を実施する前記プログラムコードが、
前記オブジェクトに対応するタイプを判断するステップによってオブジェクトに対する前記優先順位を計算するステップをさらに含む、請求項31に記載のコンピュータプログラム。
【請求項３６】
前記方法を実施する前記プログラムコードが、
前記ウェブブラウザモジュールの動作に対するグローバルアプリケーションを前記オブジェクトが有するか否かを判断するステップによってオブジェクトに対する前記優先順位を計算するステップをさらに含む、請求項31に記載のコンピュータプログラム。
【請求項３７】
前記方法を実施する前記プログラムコードが、
前記優先順位を前記1つまたは複数のメモリリソース内に記憶するステップをさらに含む、請求項31に記載のコンピュータプログラム。
【請求項３８】
前記方法を実施する前記プログラムコードが、
前記オブジェクトが前記1つまたは複数のメモリリソースの前記閾値を超えるか否かを判断するステップと、より低い優先順位を有する他のオブジェクトを廃棄するステップとをさらに含む、請求項31に記載のコンピュータプログラム。
【請求項３９】
前記オブジェクトが、カスケーディングスタイルシート、ジャバスクリプトファイル、画像ファイル、およびジャバスクリプトライブラリのうちの少なくとも1つを備える、請求項31に記載のコンピュータプログラム。
【請求項４０】
前記ワイヤレスハンドヘルドコンピューティングデバイスが、携帯電話、携帯情報端末、ページャ、スマートフォン、ナビゲーションデバイス、およびワイヤレス接続またはワイヤレスリンクを含むハンドヘルドコンピュータのうちの少なくとも1つを備える、請求項31に記載のコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、ワイヤレスハンドヘルドコンピューティングデバイスのメモリリソースを管理するためのシステムおよび方法に関する。
【背景技術】
【０００２】
今日のコンピューティング環境は、ますます携帯型になっている。人々は、しばしば、彼らのワイヤレスハンドヘルドコンピューティングデバイスを用いて、通常の電話通話を申し込むために携帯電話を使用し始めたのと同程度の容易さで、インターネットを閲覧する(surf)。典型的な従来型のワイヤレスハンドヘルドコンピューティングデバイスは、限定はしないが、携帯電話、携帯情報端末(「PDA」)、ならびに「スマート」フォンのようなデバイスを含む。これらのワイヤレスハンドヘルドコンピューティングデバイスは、通常、人の手の中に納まるかまたは人が片手で持ち運ぶことができる。
【０００３】
これらのワイヤレスハンドヘルドコンピューティングデバイスは、人々が出先にいる間のコンピューティング環境をよりアクセス可能にしたが、ワイヤレスネットワーク内のこれらのデバイスの性能に関していくつかの固有の問題を生み出した。性能に関するいくつかの問題には、ワイヤレスネットワーク帯域幅が狭いときにデータのダウンロードが遅いこと、および受信エラーによって通信が遅いことが含まれる。この性能は、しばしば、これらのハンドヘルドサイズのユニットの密な電子部品実装の中に収容され得るハードウェアおよびソフトウェアの機能である。これらのハンドヘルドサイズのユニットの性能はまた、ワイヤレスハンドヘルドコンピューティングデバイスが通信リンクを確立するワイヤレスネットワークの機能であり得る。
【０００４】
ワイヤレスハンドヘルドコンピューティングデバイスのユーザが望む典型的な通信リンクは、通常、ハンドヘルドコンピューティングデバイスの中央処理ユニットによって実行され得るウェブベースのブラウザアプリケーションプログラムによってインターネットまたはウェブを閲覧することを伴うような通信リンクである。典型的には、ウェブページのコンテンツは、モバイルネットワークに関する要因に起因して、ワイヤレスハンドヘルドコンピューティングデバイス上にロードするためにいくらかの時間がかかる可能性がある。ワイヤレスハンドヘルドコンピューティングデバイスの性能に悪影響を与える可能性がある1つの要因は、ハンドヘルドコンピューティングデバイスが、より狭い帯域幅に遭遇しているワイヤレス通信ネットワークと通信リンクを確立するときである。
【０００５】
ワイヤレス通信ネットワークに関する別の要因は、待ち時間(latency)である。パケット交換ネットワークにおける待ち時間は、片道(パケットを送る送信元からそれを受信する目的地までの時間)、または往復(送信元から目的地までの片道の待ち時間と、目的地から送信元に戻るまでの片道の待ち時間との和)のいずれかで測定される。ワイヤレス通信ネットワークにおけるより長い待ち時間は、概して、短いかまたは最小の待ち時間を有するネットワークに比べると、ウェブベージをワイヤレスハンドヘルドコンピューティングデバイス上にロードするのにより長い時間がかかることを引き起こす。一般に、大部分のワイヤレスハンドヘルドコンピューティングデバイスは、ワイヤレス通信ネットワークの性能に悪影響を及ぼす要因を補償しない。
【発明の概要】
【発明が解決しようとする課題】
【０００６】
必要なものは、ワイヤレスハンドヘルドコンピューティングデバイスがワイヤレス通信ネットワークに結合されるときに、ワイヤレスハンドヘルドコンピューティングデバイスの性能に悪影響を及ぼす因子を相殺または補償することができるシステムおよび方法である。
【課題を解決するための手段】
【０００７】
第1の例示的な態様によれば、ワイヤレスハンドヘルドコンピューティングデバイスの1つまたは複数のメモリリソースを管理するための方法が記載される。方法は、ウェブブラウザモジュールを開始するための要求を受信するステップと、ウェブアドレスのための入力を受信するステップとを含むことができる。方法は、ウェブアドレスに対応するファイルを受信するステップと、ファイル内に存在するオブジェクトアドレスをレビューするステップとを含む。方法は、アドレスにおけるオブジェクトが1つまたは複数のメモリリソース内にすでに存在するか否かを判断することができる。また、オブジェクトが1つまたは複数のメモリリソース内に存在しない場合は、方法は、オブジェクトに対する優先順位を計算することができる。次いで、オブジェクトの優先順位が割り当てられて記憶され得る。
【０００８】
別の態様によれば、ワイヤレスハンドヘルドコンピューティングデバイスの1つまたは複数のメモリリソースを管理するためのコンピュータシステムが記載される。コンピュータシステムは、ウェブブラウザモジュールを開始するための要求を受信するように動作可能であり、かつウェブアドレスのための入力を受信するように動作可能なプロセッサを含む。プロセッサは、ウェブアドレスに対応するファイルを受信し、かつファイル内に存在する1つまたは複数のオブジェクトアドレスをレビューするように動作可能である。次いで、プロセッサは、オブジェクトがすでに1つまたは複数のメモリリソース内に存在するか否かを判断することができ、オブジェクトが1つまたは複数のメモリリソース内に存在しない場合は、プロセッサはオブジェクトに対する優先順位を計算することができる。次に、プロセッサは、優先順位をオブジェクトに割り当てることができる。
【０００９】
別の例示的な態様では、ワイヤレスハンドヘルドコンピューティングデバイスの1つまたは複数のメモリリソースを管理するためのコンピュータシステムが記載される。システムは、ウェブブラウザモジュールを開始するための要求を受信するための手段と、ウェブアドレスのための入力を受信するための手段とを含むことができる。システムは、ウェブアドレスに対応するファイルを受信するための手段と、ファイル内に存在する1つまたは複数のオブジェクトアドレスをレビューするための手段とをさらに含む。システムはまた、オブジェクトが1つまたは複数のメモリリソース内にすでに存在するか否かを判断するための手段を有することができる。システムは、オブジェクトが1つまたは複数のメモリリソース内に存在しない場合にオブジェクトに対する優先順位を計算するための手段と、優先順位をオブジェクトに割り当てるための手段とを有することができる。
【００１０】
さらなる例示的な態様によれば、コンピュータ可読プログラムコードを具現化したコンピュータ使用可能媒体を含む、コンピュータプログラム製品であって、コンピュータ可読プログラムコードが、ワイヤレスハンドヘルドコンピューティングデバイスの1つまたは複数のメモリリソースを管理するための方法を実施するために実行されるようになされた、コンピュータプログラム製品が記載される。方法を実施するプログラムコードを有するコンピュータプログラム製品は、ウェブブラウザモジュールを開始するための要求を受信するステップと、ウェブアドレスのための入力を受信するステップとを含む。方法を実施するプログラムコードを有するコンピュータプログラム製品はまた、ウェブアドレスに対応するファイルを受信するステップと、ファイル内に存在する1つまたは複数のオブジェクトアドレスをレビューするステップとを含む。方法を実施するプログラムコードを有するコンピュータプログラム製品は、オブジェクトがすでに1つまたは複数のメモリリソース内に存在するか否かを判断するステップと、オブジェクトが1つまたは複数のメモリリソース内に存在しない場合にオブジェクトに対する優先順位を計算するステップとをさらに含むことができる。方法を実施するプログラムコードを有するコンピュータプログラム製品は、優先順位をオブジェクトに割り当てるためのステップを有することができる。
【００１１】
図中、別段規定されていない限り、類似の参照番号は、様々な図の全体を通じて、類似の部分を指す。「102A」または「102B」のような文字指定を伴う参照番号について、文字指定は、同じ図に存在する2つの同様の部分または要素を区別し得る。参照番号の文字指定は、参照番号が、すべての図において同じ参照番号を有するすべての部分を包含することが意図される場合には、省略されることがある。
【図面の簡単な説明】
【００１２】
【図１Ａ】ワイヤレス通信ネットワークに結合されたワイヤレスハンドヘルドコンピューティングデバイスの図である。
【図１Ｂ】図2のワイヤレスハンドヘルドコンピューティングデバイスのメモリリソースを管理するシステムのためのソフトウェアアーキテクチャの第1の態様の図である。
【図２】携帯電話を含む例示的なワイヤレスハンドヘルドコンピューティングデバイスの図である。
【図３】ワイヤレスハンドヘルドコンピューティングデバイスのためのタッチスクリーンの図である。
【図４】ワイヤレスハンドヘルドコンピューティングデバイスによってダウンロードされたウェブページのコンテンツを表示するスクリーンの図である。
【図５】スクリーンを含むユーザインターフェースからの入力に応答してマウスオーバディスプレイがウェブページ上に生成される、示されたウェブページのコンテンツをリストアップするスクリーンの図である。
【図６】ワイヤレスハンドヘルドコンピューティングデバイスでダウンロードされ得る例示的なハイパーテキストマークアップ言語(「HTML」)ファイルのためのデータ構造の図である。
【図７】ワイヤレスハンドヘルドコンピューティングデバイスでダウンロードされ得る例示的なカスケーディングスタイルシート(「CSS」)ファイルのためのデータ構造の図である。
【図８】ワイヤレスハンドヘルドコンピューティングデバイスでダウンロードされ得る例示的な画像ファイルのためのデータ構造の図である。
【図９】ワイヤレスハンドヘルドコンピューティングデバイスでダウンロードされ得る例示的なジャバスクリプト(JS)ファイルのためのデータ構造の図である。
【図１０】ワイヤレスハンドヘルドコンピューティングデバイスで維持され得る例示的なオブジェクトトラッキング表のためのデータ構造の図である。
【図１１】ワイヤレスハンドヘルドコンピューティングデバイスで維持され得る例示的な優先順位表のためのデータ構造の図である。
【図１２】ワイヤレスハンドヘルドコンピューティングデバイスのメモリリソースを管理するための方法を示すフローチャートである。
【図１３】メモリリソースの現在状態を判断してワイヤレスハンドヘルドコンピューティングデバイス内のメモリ割振りを調節するための、図12のサブメソッドまたはルーチンを示すフローチャートである。
【図１４】オブジェクトに対する優先順位を判断するための図12のサブメソッドまたはサブルーチンを示すフローチャートである。
【発明を実施するための形態】
【００１３】
「例示的」という語は、「例、実例、または具体例としての役割を果たすこと」を意味するように本明細書において用いられている。「例示的な」ものとして本明細書で説明する態様は、必ずしも他の態様よりも好ましい、または有利であると解釈されるわけではない。
【００１４】
本明細書では、「アプリケーション」という用語は、オブジェクトコード、スクリプト、バイトコード、マークアップ言語ファイルおよびパッチなど、実行可能コンテンツを有するファイルを含むこともある。加えて、本明細書で言及する「アプリケーション」は、開封される必要があり得るドキュメント、またはアクセスされる必要がある他のデータファイルなど、本質的に実行可能ではないファイルを含むこともある。
【００１５】
本明細書では、用語「通信デバイス」、「ワイヤレスデバイス」、「ワイヤレス電話」、「ワイヤレス通信デバイス」および「ワイヤレスハンドセット」は交換可能に用いられる。第3世代(「3G」)ワイヤレス技術の出現により、より広い帯域が利用できるようになり、より広範なワイヤレス機能を備えたより多くの電子デバイスが可能になった。したがって、ワイヤレスデバイスは、携帯電話、ページャ、PDA、スマートフォン、ナビゲーションデバイス、またはワイヤレス接続またはワイヤレスリンクを有するハンドヘルドコンピュータであってよい。
【００１６】
図1Aは、ワイヤレス通信ネットワーク206に結合されたワイヤレスハンドヘルドコンピューティングデバイス200の図である。図1に示すシステム要素の多くは、通信リンク103A〜Bを介して通信ネットワーク206に結合される。図1に示すリンク103は、ワイヤレスリンクを備えることができる。ワイヤレスリンクには、限定はしないが、高周波(「RF」)リンク、赤外線リンク、音響リンク、および他のワイヤレス媒体が含まれる。通信ネットワーク206は、ワイドエリアネットワーク(「WAN」)、ローカルエリアネットワーク(「LAN」)、インターネット、公衆交換電話網(「PSTN」)、ページングネットワーク、またはこれらの組合せを含み得る。通信ネットワーク206は、ブロードキャストRFトランシーバタワー208によって確立されてもよい。しかし、当業者には、通信ネットワーク206を確立するための通信デバイスとして、ブロードキャストRFトランシーバタワー208以外の他の種類の通信デバイスが本発明の範囲内に含まれることが認識されよう。
【００１７】
サーバ210は、ワイヤレスハンドヘルドコンピューティングデバイス200によってダウンロードされてメモリに記憶され得るウェブページ402をサポートすることができる。ハンドヘルドコンピューティングデバイス200は、それぞれのハンドヘルドデバイス200が、通信ネットワーク206とのワイヤレス通信リンク103を確立できるように、アンテナ372を有するように示される。
【００１８】
ハンドヘルドコンピューティングデバイス200のアプリケーションサブシステム102およびモデムサブシステム133によって処理されて管理されるハンドヘルドコンピューティングデバイス200と、そのウェブページ402を共有するために、サーバ210は、通信ネットワーク206上でワイヤレスハンドヘルドコンピューティングデバイス200と通信することができる。
【００１９】
図1Bは、ワイヤレスハンドヘルドコンピューティングデバイス200のメモリリソースを管理するシステム102のためのソフトウェアアーキテクチャの第1の態様の図である。アプリケーションサブシステム102は、中央処理ユニット324(図2参照)で実行されるモバイルウェブブラウザアプリケーション105を含むことができる。モバイルウェブブラウザアプリケーションまたはモバイルウェブブラウザモジュール105は、当業者には理解されるように、また以下に説明するように、インターネットプロトコル(「IP」)レイヤ129上に常駐する転送通信プロトコル(「TCP」)モジュール127と通信することができる。
【００２０】
IPレイヤ129は、当業者には理解されるように、ネットワークバッファレイヤ131と通信する。IPレイヤ129は、第2の中央処理ユニット326(図2参照)で実行されるモデムサブシステム133と通信する。
【００２１】
モバイルウェブブラウザモジュール105は、ユーザインターフェースモジュール106と、ネットワークスタックモジュール107と、ハイパーテキスト転送プロトコル(「HTTP」)スタック111と、ドメインネームサーバモジュール113と、オペレーティングシステム115と、ブラウザエンジン117と、限定はしないが、キャッシュ、ランダムアクセスメモリ(「RAM」)、フラッシュメモリ123、セキュアデジタル(「SD」)メモリカード125およびそれらの任意の組合せを含むことができる1つまたは複数のメモリリソース119とをさらに含むことができる。
【００２２】
ネットワークスタックモジュール107は、以下により詳細に説明するように、図12〜図14に示す論理を含む動的メモリ割振りシステム(「DMAS」)モジュール109Aをさらに含むことができる。ネットワークスタック107の代替または追加として、ブラウザエンジン117はまた、以下に説明する図12〜図14の論理を同様に含むDMASモジュール109Bを含むことができる。さらなる代替の例示的な実施形態では、DMASモジュール109Cが、ネットワークスタック107およびブラウザエンジン117に対する別個のモジュールとして常駐することができる。
【００２３】
DMASモジュール109は、ブラウザエンジン117が、キャッシュ、RAM 121、フラッシュメモリ123、および/またはSDメモリカード125を備えることができるメモリリソース119を管理する方法を制御または教示する役目を果たすことができる。DMASモジュール109は、それが、モバイルウェブブラウザ105ならびにアプリケーションサブシステム102の要素を継続的に監視することができる点において動的であり得る。さらに、DMASモジュール109はまた、モバイルウェブブラウザ105およびアプリケーションサブシステム102の中の要素からメッセージを受信することができる。
【００２４】
ネットワークスタックモジュール107は、ユーザインターフェース106、HTTPスタックモジュール111、オペレーティングシステム(「OS」)115、およびブラウザエンジン117と通信することができる。ネットワークスタックモジュール107は、ユーザインターフェース106から、サーバ210上に記憶された新しいウェブページ402にアクセスするためのコマンドなどのコマンドを受信することができる。ネットワークスタック107はまた、現在ステータスにアドレスすることができるオペレーティングシステム115から受信されたメッセージを監視して、中央処理ユニット324によって開かれ、実行されているモバイルウェブブラウザ105以外の他のアプリケーションプログラムが何であるかを確認することができる。
【００２５】
ネットワークスタックモジュール107は、所望のウェブページ402に対してユーザによって与えられたテキストベースのドメインネームをHTTPスタックモジュール111に提供することなどのコマンドを出すことができる。HTTPスタックモジュール111は、ドメインネームサーバ(「DNS」)モジュール113に結合されてよい。DNSモジュール113は、当業者には理解されるように、テキストベースのドメインネームを数字のインターネットプロトコル(IP)アドレスに変換する役目を果たすことができる。DNSモジュール113は、IPアドレスをHTTPスタック111に返送し、HTTPスタック111は次に、IPアドレスをTCP接続モジュール127に中継することができる。
【００２６】
HTTPスタック111が、HTMLファイル600(図6参照)をTCP接続モジュール127から戻すと、ネットワークスタックモジュール107が、このファイル600をブラウザエンジン117に中継する。ブラウザエンジン117は、検索されたファイルを構文解析(parse)および/またはレビューして、そのファイルのレビューに基づく要求をネットワークスタック107に送信する役目を果たす。ブラウザエンジン117はまた、キャッシュ、RAM 121、フラッシュメモリ123、およびSDメモリカード125を含むことができるメモリリソース119の割振りを制御するためのコマンドを出すことができる。
【００２７】
OS 115は、処理の管理および協調、ならびにハンドヘルドコンピューティングデバイス内のハードウェアリソースの共有に対する役目を果たすことができる。OS 115は、その上で動作しているコンピューティングアプリケーションに対するホストとして働くことができる。オペレーティングシステム115の目的の1つは、リソース割振りを処理し、ディスプレイ332およびマイクロフォン360などのハードウェアの保護にアクセスすることである。この著述の時点における例示的なハンドヘルドOS 115は、限定はしないが、WINDOWS(登録商標)モバイルブランドのモバイルオペレーティングシステム115ならびにANDROID(登録商標)ブランドのモバイルオペレーティングシステム115を含むことができる。
【００２８】
トランスポート制御プロトコル(「TCP」)接続モジュール127は、当業者には理解されるように、汎用ネットワーキングの開放型システム間相互接続(「OSI」)モデルのトランスポートレイヤ内で動作する。TCP接続モジュール127は、アプリケーションデータブロックを、宛先ホストに送信するためのネットワークインフラストラクチャに転送するのに好適なデータユニット(データグラム、セグメント)内にカプセル化するか、またはネットワークデータグラムを抽出することによってリバーストランザクションを管理して、それらのペイロードをモバイルウェブブラウザ105に配信する役目を果たす。
【００２９】
インターネットプロトコル(「IP」)モジュール129は、TCP接続モジュール127およびネットワークバッファレイヤ131と通信する。IPモジュール129は、モバイルウェブブラウザからサーバ210まで、それらのアドレスに基づいて識別されたプロトコルデータグラム(パケット)を配信するタスクを有する。IPモジュール129は、データグラムカプセル化のためのアドレス指定の方法および構造を定義する。IPモジュール129は、インターネットプロトコルバージョン4(「IPv4」)ならびにインターネットプロトコルバージョン6(「IPv6」)を利用することができ、それは、この著述の時点においてアクティブに展開されている。しかしながら、まだ展開されていない将来のバージョンを含めて、インターネットプロトコルの他のバージョンが、本発明の範囲内に含まれる。
【００３０】
ネットワークバッファレイヤ131は、IPモジュール129およびモデムサブシステム133と通信する。ネットワークバッファレイヤ131は、イーサネット(登録商標)および他のIEEE 802カプセル化方式など、すべてのハードウェア固有のインターフェース法を含むことができる。ネットワークバッファレイヤ131は、ネットワーク206などの通信ネットワークなど、ローカルネットワークのトポロジーをプローブすることができる。ネットワークバッファレイヤ131は、ルータおよび近隣にあるホストを発見することができ、リンク上の他のノードを発見する役目を果たすことができる。ネットワークバッファレイヤ131は、他のノードのリンクレイヤアドレスを決定し、使用可能なルータを見出して、他のアクティブな近隣のノードへの経路についての情報への到達可能性を維持することができる。
【００３１】
モデムサブシステム133は、無線リンク制御レイヤ、メディアアクセス制御(MAC)レイヤ、ならびに物理レイヤを含むことができる。これらのレイヤは、図2に示すように、RFトランシーバ368などの通信ハードウェアと通信する役目を果たすことができる。
【００３２】
図2を参照すると、この図は、図1のワイヤレスハンドヘルドコンピューティングデバイスと交信するワイヤレス電話を含む、ワイヤレスハンドヘルドコンピューティングデバイス200の例示的で非限定的な態様の図である。図示のように、ワイヤレスハンドヘルドコンピューティングデバイス102は、デジタルシグナルプロセッサおよび/または第1の中央処理ユニット324と、アナログ信号プロセッサおよび/または第2の中央処理ユニット326とを含むオンチップシステム322を含み、中央処理ユニットは互いに結合されている。さらに、第1のプロセッサ324およびメモリリソース119は、図12〜図14に関して本開示で説明した方法ステップの1つまたは複数を実行するための手段として働くことができる。一方、第2のデジタルシグナルプロセッサ/中央処理ユニット326は、モデムサブシステム133に関する1つまたは複数の命令を実行することができる。
【００３３】
図2に示すように、ディスプレイコントローラ328およびタッチスクリーンコントローラ330が、デジタルシグナルプロセッサ324に結合される。オンチップシステム322の外部にあるタッチスクリーンディスプレイ332が、ディスプレイコントローラ328およびタッチスクリーンコントローラ330に結合される。
【００３４】
図2は、ビデオエンコーダ334、たとえば位相反転線(「PAL」)エンコーダ、順次式カラーメモリ(「SECAM」)エンコーダ、全国テレビジョン方式委員会(「NTSC」)エンコーダ、または任意の他のビデオエンコーダが、デジタルシグナルプロセッサ324に結合されることをさらに示している。前記のように、第1のデジタルシグナルプロセッサ324および/または第2のデジタルシグナルプロセッサ326は、当業者には理解されるように、中央処理ユニットで置き換えられ得る。いずれのハードウェアユニットでも、図12〜図14のソフトウェア要素/命令のサブシステムを実行することができる。
【００３５】
ビデオ増幅器336が、ビデオエンコーダ334およびタッチスクリーンディスプレイ332に結合される。ビデオポート338がビデオ増幅器336に結合される。図2に示すように、ユニバーサルシリアルバス(「USB」)コントローラ340がデジタルシグナルプロセッサ324に結合される。また、USBポート342がUSBコントローラ340に結合される。メモリリソース119および加入者識別モジュール(「SIM」)カード346も、デジタルシグナルプロセッサ324に結合され得る。さらに、図2に示すように、デジタルカメラ348がデジタルシグナルプロセッサ324に結合され得る。例示的な態様では、デジタルカメラ348は、電荷結合デバイス(「CCD」)カメラまたは相補型金属酸化膜半導体(「CMOS」)カメラである。
【００３６】
図2にさらに示すように、ステレオオーディオコーデック350がアナログ信号プロセッサ326に結合され得る。さらに、オーディオ増幅器352がステレオオーディオコーデック350に結合され得る。例示的な態様では、第1のステレオスピーカー354および第2のステレオスピーカー356がオーディオ増幅器352に結合される。図2は、マイクロフォン増幅器358もステレオオーディオコーデック350に結合され得ることを示している。加えて、マイクロフォン360がマイクロフォン増幅器358に結合され得る。特定の態様では、周波数変調(「FM」)ラジオチューナー362がステレオオーディオコーデック350に結合され得る。また、FMアンテナ364がFMラジオチューナー362に結合される。さらに、ステレオヘッドフォン366がステレオオーディオコーデック350に結合され得る。
【００３７】
図2は、高周波(「RF」)トランシーバ368がアナログ信号プロセッサ326に結合され得ることをさらに示している。RFスイッチ370がRFトランシーバ368およびRFアンテナ372に結合され得る。RFトランシーバ368は、従来の通信ネットワークと通信するとともに、地理的な座標についてGPS信号を取得するために、全地球測位システム(「GPS」)衛星とも通信することができる。
【００３８】
図2に示すように、キーパッド374がアナログ信号プロセッサ326に結合され得る。また、マイクロフォンを備えたモノヘッドセット376がアナログ信号プロセッサ326に結合され得る。さらに、バイブレータデバイス378がアナログ信号プロセッサ326に結合され得る。図2は、電源380がオンチップシステム322に結合され得ることも示している。特定の態様では、電源380は、電力を必要とするワイヤレスハンドヘルドコンピューティングデバイス102の様々な構成要素に電力を供給する直流(「DC」)電源である。さらに、特定の態様において、電源装置は、AC電源に接続された交流(「AC」)-DC変換器から導かれた充電式DCバッテリまたはDC電源である。
【００３９】
図2に示すように、タッチスクリーンディスプレイ332、ビデオポート338、USBポート342、カメラ348、第1のステレオスピーカー354、第2のステレオスピーカー356、マイクロフォン360、FMアンテナ364、ステレオヘッドフォン366、RFスイッチ370、RFアンテナ372、キーパッド374、モノヘッドセット376、バイブレータ378および電源380は、オンチップシステム322の外部にある。
【００４０】
図3は、ワイヤレスハンドヘルドコンピューティングデバイス200のタッチスクリーンディスプレイ332の図である。図示のように、ワイヤレスハンドヘルドコンピューティングデバイス200は、この例示的な実施形態において四角い箱で示す、プログラムアイコン505のメニューまたはリスティング510を含むことができる。ワイヤレスハンドヘルドコンピューティングデバイス200はまた、携帯電話での会話を聞き取るために、ユーザの耳の横に配置され得る、ヘッドセットまたはスピーカー376を含む。
【００４１】
図4は、ワイヤレスハンドヘルドコンピューティングデバイス200でダウンロードされたウェブページ402のコンテンツを表示するスクリーン400の図である。ウェブページ402は、グラフィカル画像403、第1のテキスト406、第2のテキスト409、第3のテキスト412、ティッカーテキスト444、およびグラフィカルな矩形の縁418を含むことができる。ユーザインターフェース106の一部として、スクリーンポインタ415が提供され得る。図示の例示的な実施形態では、グラフィカル画像403は、輪郭線で描かれた大陸を与えられた地球を含む。「南アメリカにおける地震」というフレーズを含むティッカーテキスト444が、ウェブページ402を横切って方向矢印448に沿って、着信するニュース記事が紙テープ上に印刷されたのをシミュレートするニュースティッカーのように動くように設計され得る。
【００４２】
第1のテキスト406は、「デイリー」という語を含み、一方、第2のテキスト409は、「プラネット」という語を含むことができる。第1のテキスト406は、第1のフォントおよび第1の色を有することができる。第1のテキスト406に対して図示された例示的な第1の色は、白である。同様に、第2テキスト409は、第1のフォントおよび第2の色を有することができる。第2のテキスト409に対して図示された第2の色は、黒である。この図では、「...南アメリカ-数百人が負傷した...」というテキストを示すために、ティッカーテキスト444が、ページ402を横切って方向矢印448に沿ってスクロールされた。本発明が、図示された例示的なテキスト406、409、412、444または例示的な画像403に限定されないことは、当業者には諒解されよう。他のテキストおよび他の画像が、本発明の範囲にある。
【００４３】
図5は、スクリーン500を含むユーザインターフェース106からの入力に応答してマウスオーバディスプレイ503がウェブページ402上に生成される、図4に示すウェブページ402のコンテンツを提供するスクリーン500の図である。具体的には、この例示的な実施形態では、スクリーンポインタ415は、第3のテキスト412の上を動かされた。第3のテキスト412上のこの動きに応答して、ユーザインターフェース106は、この例示的な実施形態によって第3のテキスト412が生成された時刻表示(chronological time listing)を含むマウスオーバディスプレイ503を生成する。
【００４４】
具体的には、マウスオーバディスプレイ503は、この例示的な実施形態におけるフレーズ「最新ニュース」を含む第3のテキスト412の上をスクリーンポインタ415が動かされたことに応答して第3のテキスト412が作成された時刻を表示する。このマウスオーバディスプレイ503は、ウェブページ402上に表示されている情報はどの程度「最新」であるか、をユーザが正確に把握または理解することを可能にする。この具体的なマウスオーバディスプレイ503は、本質的に例示的なものであり、したがって、他のマウスオーバディスプレイ503または他のタイプの対話型ユーザインターフェースが、十分に本発明の範囲内にあることは、当業者には諒解されよう。
【００４５】
図6は、ワイヤレスハンドヘルドコンピューティングデバイス200でダウンロードされ、かつ図5に示すようなウェブページ402に対応する、例示的なハイパーテキストマークアップ言語(「HTML」)ファイル600のためのデータ構造の図である。HTMLファイル600は、カスケーディングスタイルシート(「CSS」)ファイル605Aに対する「CSS FILE #1」という名前と、画像ファイル605Bに対する「IMAGE FILE #1」という名前と、ジャバスクリプト(「JS」)ファイル605C対する「JS FILE #1」という名前とを含むことができる。これら3つのファイルネームに隣接して、インターネットプロトコル(「IP」)アドレスもしくはドメインネーム(または両方)のリスティング620が存在してよいことは、当業者には理解されよう。
【００４６】
ブラウザエンジン117は、オブジェクトとも呼ばれる様々なファイル605A、605Bおよび605Cに対応するリスティング620の中のIPアドレスをアンカバーするために、HTMLファイル600をレビューし、構文解析することができる。ブラウザエンジン117はまた、当業者には理解されるように、ヘッダ情報内に記載されているファイルタイプに基づいて、オブジェクト605のタイプを決定することができる。
【００４７】
図7は、ワイヤレスハンドヘルドコンピューティングデバイス200でダウンロードされ得る例示的なカスケーディングスタイルシート(「CSS」)ファイル605A-「CSS FILE #1」のためのデータ構造の図である。例示的な実施形態では、CSSファイル605Aは、簡単なシンタックスを有することができ、様々なスタイルのプロパティの名前を指定するためにいくつかの英語のキーワードを使用することができる。CSSファイル605Aは、規則のリストを含むことができる。各ルールまたはルールセットは、1つまたは複数のセレクタおよび宣言ブロックを含むことができる。宣言ブロックは、通常、宣言のリストを、中括弧の中に含む。
【００４８】
各宣言は、それ自体、プロパティ、コロン(:)、値、次いでセミコロン(;)を含むことができる。CSSファイル605Aは、スタイルが適用するどのマークアップ要素が一種の適合表現であるかを宣言するために使用され得る。CSSファイル605Aは、セレクタを含むことができる。セレクタは、特定のタイプのすべての要素かまたは一定の属性に適合する要素だけに適用することができ、要素は、それらがマークアップコードの中で互いにどのように配置されるか、またはそれらがドキュメントオブジェクトモデル内でどのようにネストされるかに応じて適合されてよい。
【００４９】
印刷では、CSSファイル605Aは、色、フォント、テキストアラインメント、サイズ、縁、スペーシング、レイアウト、および多くの他の印刷上の特性(typographic characteristics)を定義することができる。CSSファイル605Aは、画面上のビューおよび印刷されたビューに対してそれらを独立に行うことができる。CSSファイル605Aはまた、テキストが音声テキストリーダーによって読み出される速度および強さなど、非視覚的スタイルを定義することができる。
【００５０】
図7に示す例示的な実施形態では、CSSファイル605Aは、白い縁418ならびに第1のテキスト406および第2のテキスト409に対するフォントおよび色をアドレス指定するデータ702を含む。具体的には、CSSファイル605Aは、縁の色418を白として記述し、第1のテキスト406および第2のテキスト409の色を記述する。第1のテキスト406は白い色を与えられ、一方、第2のテキスト409は黒い色を与えられている。第1のテキスト406および第2のテキスト409に対するフォントは、非限定的な一例として、42ポイントのArialフォントに設定されている。
【００５１】
図8は、ワイヤレスハンドヘルドコンピューティングデバイス200でダウンロードされ得る、「IMAGE FILE #1」という名前を有する例示的な画像ファイル605Bためのデータ構造の図である。画像ファイル605Bは、図4〜図5に示すように、画像403の物理的プロパティを提供するデータ802含むことができる。図8に示す例示的な実施形態では、画像データ802は、図4の画像403として描かれた地球の色およびサイズに関する情報を提供する。
【００５２】
図9は、ワイヤレスハンドヘルドコンピューティングデバイス200でダウンロードされ得る例示的なジャバスクリプト(JS)ファイル 605Cのためのデータ構造の図である。JSファイル605Cは、HTMLページに埋め込むかまたはそこから加えるために使用され、ウェブページ402のドキュメントオブジェクトモデル(DOM)と対話する書込み機能(write function)を含むことができる。たとえば、JSファイル605Cは、新しいウィンドウ(たとえば、メニュー、ツールバーなどが可視であるか否か)のサイズ、位置および属性に関してプログラム制御を有する新しいウィンドウを開くかまたはポップアップする役目を果たすことができる。たとえば、図5のマウスオーバディスプレイ503ならびに図4および図5のティッカーテキスト444を参照されたい。
【００５３】
JSファイル605C内のジャバスクリプトコードは、ユーザのブラウザ105の中でローカルに動作することができる。ジャバスクリプトコードは、ユーザアクションに迅速に応答することができ、アプリケーションをより敏感に感じさせる。さらに、JSファイル605Cのジャバスクリプトコードは、個々のキーストロークなど、HTML単独では通常、検出不可能なユーザアクションを検出することができる。図9の例示的な実施形態では、JSファイル605Cのデータ902は、図5に示すように、マウスオーバディスプレイ503がウェブページ402上にどのように表示されるかについての命令を含むことができる。
【００５４】
図10は、ワイヤレスハンドヘルドコンピューティングデバイス200、および特に、ネットワークスタック107および/またはHTTPスタック111の一部であり得る図1のDMAS 109A、Bによって維持され得る例示的なオブジェクトトラッキングテーブル1000に対するデータ構造の図である。オブジェクトトラッキングテーブル1000は、2列のデータを含むことができる。第1の列はオブジェクトネーム1005を含み、一方、第2の列は特定のオブジェクトが呼ばれた回数1010を含むことができる。
【００５５】
図10に示す例示的な実施形態では、オブジェクトネームの列1005は、CSSファイル605A、画像ファイル605B、およびJSファイル605Cを含む。他のオブジェクトが本発明の範囲に含まれることを、当業者は認識する。呼ばれた回数の列1010は、CSSファイル605Aが、ブラウジングエンジン117によって少なくとも3回呼ばれたかまたは検索されたことを示す。同様に、呼ばれた回数の列1010は、画像ファイル605Bが、ブラウジングエンジン117によって少なくとも2回検索されたことを示す。最後に、呼ばれた回数の列1010は、JSファイル605Cが、少なくとも6回ブラウジングエンジン117によって呼ばれたかまたは検索されたことを示す。
【００５６】
DMAS 109は、サーバ210からの情報の検索を削減するために、どのオブジェクトを他のオブジェクトに対してより長い期間メモリリソース119によって保持するべきかを決定するために、呼ばれた回数の列1010内のデータを使用することができる。このようにして、DMAS 109は、通信リンクを確立してサーバ210とデータを交換するために、ワイヤレスハンドヘルドコンピューティングデバイス200が必要とする回数を低減することができる。キャッシュ、RAM 121、フラッシュメモリ123およびSDカードメモリ125を含むことができるメモリリソース119から直接、ブラウジングエンジン117がオブジェクトを引き出すと、時間が短縮され得る。
【００５７】
図11は、ワイヤレスハンドヘルドコンピューティングデバイス200によってメモリリソース119内で維持され得る例示的な優先順位表1100のためのデータ構造の図である。具体的には、優先順位表1100は、図1BのDMAS 109によって生成されてよく、1つまたは複数のメモリリソース119内に記憶されてよい。優先順位表1100の最小の数が、この特定のオブジェクトがメモリリソース119から除外されるために優先順位表1100によって追跡されたすべてのオブジェクトのうちの最後のものとなることを示す優先順位付け方式で、優先順位表1100は、メモリリソース119内に記憶されたオブジェクトを表にすることができる。優先順位表1100内のより大きい数は、より低いかまたは低減された優先順位を有するオブジェクトを示すことができ、それによりDMAS 109は、ネットワークスタック107によって監視されるような条件が要求するときに、必要に応じてこれらのより低い優先順位のオブジェクトを除去するようにブラウジングエンジン117に命令することができる。
【００５８】
たとえば、図11に示す例示的な実施形態では、複数のサイトによってアクセスされるジャバスクリプトライブラリ1105は、画像ファイル#1 605Aに対してより高い優先順位を有する。具体的には、ジャバスクリプトライブラリ1105は1の優先順位の値であり、一方、画像ファイル#1は5の優先順位の値である。1つまたは複数のメモリリソース119が最大限に満たされたかまたは全容量に接近しているものと、図1AのDMAS 109が判断する場合、DMAS 109は、ネットワークスタック107またはブラウザエンジン117に、より低い優先順位の値を有する1つまたは複数のオブジェクトを廃棄するように命令することができる。1つまたは複数のメモリリソース119内のスペースが必要であるものとDMAS 109が判断する場合に、このオブジェクトが廃棄されるべき最初のオブジェクトとなることを示すために、画像ファイル#1 605Aが、矩形の点線ボックス1115で強調されている。
【００５９】
優先順位表1100が、本発明の範囲から逸脱することなく反転する方式で編成され得ることを、当業者は認識する。たとえば、反転する例示的な実施形態として、優先順位表1100によって追跡される他のオブジェクトよりも、優先順位表1100のより小さい番号がより低い優先順位を有するオブジェクトを示す一方で、より大きい番号がより高い優先順位を有するオブジェクトを反映することができる。
【００６０】
DMAS 109は、1つまたは複数のルールおよび/または関数で決定され得る、オブジェクトに割り当てられる優先順位に基づいて、優先順位表1100内の任意の位置にオブジェクトを挿入することができる。DMAS 109によって実行および/または追跡され得る1つの例示的なルールまたは関数は、図10に示し、上で説明したようなオブジェクトトラッキング表1000を含む。
【００６１】
図12を参照すると、この図は、ワイヤレスハンドヘルドコンピューティングデバイス200のメモリリソース119を管理するための方法1200を示すフローチャートである。ブロック1205は、処理1200中の第1のステップであり、ユーザが、図3に示すインターフェースなどのユーザインターフェースを介してモジュール105を起動することに応答して、モバイルウェブブラウザモジュール105が開始される。次に、ルーチンブロック1210で、動的なメモリ割振りシステム(DMAS) 109がメモリリソース119の現在状態を判断し、必要に応じてそれらのメモリリソース119の割振りおよび/またはサイズを調整することができる。このルーチンブロック1210のさらなる詳細が、図13に関連して以下で説明される。
【００６２】
次に、ブロック1215で、モバイルウェブブラウザ105および特にユーザインターフェース106は、所望のウェブページに対するウェブアドレスのための入力を受信することができる。ブロック1220で、ネットワークスタック107は、ユーザインターフェース106からウェブアドレスを受信し、それをHTTPスタック111に送り、HTTPスタック111は次に、そのデータをドメインネームサーバモジュール113に送る。ドメインネームサーバモジュール113は、当業者には理解されるように、テキストベースのウェブアドレスを数字のインターネットプロトコルアドレスに変換する。
【００６３】
次に、ブロック1225で、HTTPスタック111が、ドメインネームサーバモジュール113によって決定されたインターネットプロトコルアドレスを使用してTCP接続を開いて開始するために、コマンドをTCP接続モジュール127に発行する。その後、ブロック1230で、モバイルウェブブラウザ105および特にブラウザエンジン117が、ウェブサーバ210からのウェブページ402に対応するHTMLファイル600を受信する。
【００６４】
ブロック1235で、ブラウザエンジンモジュール117が、HTMLファイル600内に含まれるオブジェクト605のタイプを判断するために、HTMLファイル600をレビューする。ブラウザエンジンモジュール117はまた、HTMLファイル600内に含まれるオブジェクト605のそれぞれに関するインターネットプロトコルアドレス620を決定する。図6に示す例示的なHTMLファイル600では、CSSファイル605Aと、画像ファイル605Bと、JSファイル605Cとの3種類のオブジェクトタイプが存在する。これらのオブジェクト605のそれぞれが異なるインターネットプロトコルアドレス620を有し、これらのアドレス620は、オブジェクト605を記憶または収納する1つまたは複数の異なるサーバと交信することができる
【００６５】
次に、決定ブロック1245で、DMAS 109は、ブラウザエンジン117に、現在レビューしているオブジェクト605およびその対応するアドレスが、1つまたは複数のメモリリソース119内にすでに存在するか否かを判断するように命令することができる。このブロック1245で、ブラウザエンジン117は、特定のオブジェクト605がメモリリソース119内にすでに存在するか否かを判断するために、オブジェクトトラッキング表1000および/または優先順位表1100をレビューすることができる。特定のオブジェクト605がメモリリソース119内にすでに存在する場合は、処理は決定ブロック1270に進み、ブラウザエンジン117が、HTMLファイル600のオブジェクト605の最後がレビューされたか否かを判断する。
【００６６】
特定のオブジェクト605がメモリリソース119のうちの1つの中に存在しない場合、処理はブロック1250に進み、ブラウザエンジン117が、TCP接続モジュール127に、図6に示すように、オブジェクト605に割り当てられたインターネットプロトコルアドレス620に基づいて接続を開始するように命令する。
【００６７】
次に、ルーチンブロック1255で、オブジェクト605が検索されてブラウザエンジン117に送られると、DMAS 109は、検索されたオブジェクト605に対する優先順位を計算することができる。優先順位計算ルーチンブロック1255のさらなる詳細を、図14に関連して以下で説明する。
【００６８】
優先順位が、検索されたオブジェクト605に対してDMAS 109によって計算された後、優先順位は、ブロック1260の中のオブジェクトに割り当てられ得る。この優先順位が、図11の優先順位表1100の中に記憶され得る。ステップ1265で、オブジェクトがメモリに記憶され、他のより低い優先順位のオブジェクトが必要に応じて廃棄されてよい。このステップで、現在のオブジェクトを加えると、メモリリソース119の閾値が超過するものとDMASが判断する場合、DMAS 119は、図11と関連して上で説明したように、低い優先順位を有するオブジェクトを廃棄することができる。
【００６９】
その後、決定ブロック1270で、ブラウザエンジン117は、レビューされる特定のHTMLファイル600に対して、そのオブジェクトリストの終端に到達したか否かを判断することができる。オブジェクトがその表の終端に到達したものとブラウザエンジン117が判断する場合、YES分岐が追従されて、処理はルーチンブロック1210に戻ることができる。
【００７０】
図13は、1つまたは複数のメモリリソース119の現在状態を判断してワイヤレスハンドヘルドコンピューティングデバイス200内のそれらの1つまたは複数のメモリリソース119の割振りを調節するための、図12のサブメソッドまたはサブルーチン1210を示すフローチャートである。ブロック1305は、DMAS 109が、ウェブブラウザ105に対して利用可能な1つまたは複数のメモリリソース119の量を判断することができる、サブメソッドまたはサブルーチン1210の第1のステップである。ブロック1305で、DMAS 109は、ウェブブラウザ105による使用に対して利用可能な1つまたは複数のメモリリソース119の容量を判断するために、オペレーティングシステム115と通信することができる。
【００７１】
次に、ブロック1310で、DMAS 109は、ネットワークスタック107またはブラウザエンジン117に、アプリケーションサブシステム102の現在状態に基づいて1つまたは複数のメモリリソース119を割り振るように命令することができる。このブロック1310で、ブラウザエンジン117は、1つまたは複数のメモリリソース119の中にオブジェクト605を記憶するためにウェブブラウザモジュール105によって使用され得るメモリのサイズまたは量を調整することができる。
【００７２】
決定ブロック1315で、DMAS 109は、追加の並列アプリケーションモジュールがユーザによって開始されているか否かを判断することができる。このブロック1315で、1つまたは複数のアプリケーションモジュールがユーザによって開始されている場合、DMAS 109がオペレーティングシステム115をピングする(ping)ことができ、かつ/またはオペレーティングシステム115がDMAS 109にメッセージを送ることができる。同じくこの決定ブロック1315で、DMAS 109はまた、モバイルウェブブラウザ105と並列に開始されているアプリケーションモジュールのそれぞれに対して必要な量または容量を決定することができる。
【００７３】
追加の並列アプリケーションモジュールが開始されているものとDMAS 109が判断する場合、YES分岐が追従されてブロック1320に至り、DMAS 109は、ブラウザエンジン117に、並列アプリケーションモジュールの動作を受け入れるために、1つまたは複数のメモリリソース119を再割り振りするように命令することができる。一般に、このことは、DMAS 109が、通常、モバイルウェブブラウザ105に対して割り当てられたかまたは割り振られた容量を減少させ、それにより、他の並列アプリケーションモジュールが十分なメモリリソース119を有して円滑に動作することを意味する。決定ブロック1315で、追加の並列アプリケーションモジュールが開始されていないものとDMAS 109が判断する場合、NO分岐が追従されて、処理は、図12のブロック1215に戻る。
【００７４】
図14は、オブジェクト605の優先順位を判断するための図12のサブメソッドまたはサブルーチン1255を示すフローチャートである。ブロック1305は、図14のサブメソッドまたはサブルーチン1255の第1のステップである。ブロック1305で、DMAS 109は、HTMLファイル600の中で参照され得るオブジェクト605のタイプを決定することができる。オブジェクトタイプは、所定の優先順位を与えられてよく、ジャバスクリプトファイル605Cならびにカスケードスタイルシートファイル605Aなどのより複雑なオブジェクト605は、一般に、画像ファイル605Bなどの他のオブジェクトに対してより高い優先順位を割り当てられる。同じく、小形からウェブサイトにわたって検索されるジャバスクリプトライブラリファイル1105などのライブラリファイルがまた、重み付けされ、すべての他のタイプのオブジェクト605に対してより高い優先順位を与えられ得る。
【００７５】
ブロック1310で、DMAS 109は、ブロック1305と関連して上で説明した所定の優先順位に基づいて、優先順位をオブジェクト605に割り当てることができる。次に、決定ブロック1315で、DMAS 109は、特定のオブジェクト605がウェブブラウザ105によって以前にアクセスされたか否かを判断することができる。この決定ブロック1315で、DMAS 109は、特定のオブジェクト605がウェブブラウザ105によって以前にアクセスされたか否かを判断するために、オブジェクトトラッキング表1000にアクセスすることができる。
【００７６】
オブジェクトが以前にアクセスしたものとDMAS 109が判断する場合、YES分岐が追従されてブロック1320に至り、DMAS 109は、オブジェクト605がブラウザ105によってアクセスされた回数に基づいて、オブジェクト605の優先順位を調整することができる。DMAS 109は、図10のオブジェクトトラッキング表1000の呼ばれた回数の列1010が示すように、より多くアクセスされたオブジェクト605により高い優先順位を割り当てることができる。DMAS 109は、ユーザによって頻繁にアクセスされるサイトおよび対応するオブジェクトの上位「10」の表を形成することができる。本発明は、10のサイトに限定されるものではなく、これより多い量および少ない量を含むことができる。
【００７７】
オブジェクトが以前にアクセスされていない、つまりオブジェクト605がオブジェクトトラッキング表1000の中に存在しないものとDMAS 109が判断する場合、DMAS 109は、そのオブジェクト605をオブジェクトトラッキング表1000の中に記入し、次いで決定ブロック1325に進んで、オブジェクト605がウェブブラウザ105に対してグローバルアプリケーションを有し得るか否かを判断することができる。この決定ブロック1325で、DMAS 109は、オブジェクト605がグローバルアプリケーションであるか否かをオブジェクトタイプに基づいて判断することができる。上述の通り、グローバルアプリケーションを有するオブジェクト605は、図11に示すように、複数のサイトによってアクセスされるジャバスクリプトライブラリ1105などを含むことができる。この段において、オブジェクト605がグローバルアプリケーションを有するものとDMAS 109が判断する場合、YES分岐が追従されてブロック1330に至り、DMAS 109は、オブジェクト605の優先順位を調整することができる。このステップで、オブジェクト605は、異なるウェブサイトにわたるグローバルアプリケーションを有し得るものと判断されているので、一般に、オブジェクト605の優先順位は、オブジェクト605がより高い優先順位を有するように調整される。決定ブロック1325に対する照会が否定的である場合、つまりオブジェクト605がウェブサイトにわたるグローバルアプリケーションを持たないものとDMAS 109が判断した場合、処理は、NO分岐を追従して図12のブロック1260に戻る。
【００７８】
本発明の代替の例示的な実施形態は、図14の優先順位ルーチン1255に対してより少ないステップを使用することができる。たとえば、このことは、代替の例示的な実施形態が、タイプによって優先順位を割り当てるブロック1310だけを実行し、図14に示す優先順位ルーチン1255の他のいずれのブロックも実行しないことが可能であることを意味する。さらなる例示的な実施形態では、優先順位ルーチン1255のすべてのステップが実施されるが、各ステップは、アプリケーションの開発者またはモバイルデバイス200によって選択される所定の重み付けを与えられ得る。たとえば、オブジェクトタイプに対するブロック1310は、0.9の重み付けを割り当てられる一方で、訪問/アクセスの頻度によって優先順位を調整するブロック1320は、ブロック1310に対する重み付けより小さい0.5の重み付けを割り当てられる。図14のブロックが実行するものとは異なる重み付けならびに異なる組合せは、正しく本発明の範囲内に入る。
【００７９】
本発明が説明通りに機能するために、本明細書で説明した処理または処理の流れの特定のステップが他のステップよりも前に実施されるのは当然である。しかし、ステップの順番または順序によって本発明の機能が変わることがない場合、本発明は説明したステップの順序に限定されない。つまり、本発明の範囲および趣旨から逸脱することなく、あるステップを他のステップの前に実行しても、後に実行してもよく、あるいは各ステップを並行して(実質的に同時に)実行してもよいことを認識されたい。いくつかの場合には、特定のステップが、本発明から逸脱することなく、省略されてもよく、または実行されなくてもよい。さらに、「その後」、「次いで」、「次に」などの語は、ステップの順序を限定することを意図していない。これらの語は、単に例示的な方法の説明を通じて読者を導くために使用されている。
【００８０】
加えて、プログラミングの当業者は、たとえば本明細書のフローチャートおよび関連する説明に基づいて、コンピュータコードを書くか、または適切なハードウェアおよび/もしくは回路を特定し、開示された発明を容易に実施することができる。
【００８１】
したがって、特定の1組のプログラムコード命令または詳細なハードウェアデバイスの開示が、本発明をどのように製作し使用すべきかについて適切に理解するうえで必要であるとはみなされない。特許請求されるコンピュータで実施される処理の発明性のある機能は、上の説明において、かつ、様々な処理の流れを示し得る図面とともに、より詳細に説明される。
【００８２】
1つまたは複数の例示的な態様では、説明した機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの組合せで実装することができる。ソフトウェアで実装される場合、機能は、1つまたは複数の命令またはコードとしてコンピュータ可読媒体上に記憶されるか、あるいはコンピュータ可読媒体上で送信され得る。コンピュータ可読媒体は、ある場所から別の場所へのコンピュータプログラムの転送を容易にする任意の媒体を含む、コンピュータ記憶媒体とコンピュータ通信媒体の両方を含む。記憶媒体は、コンピュータによってアクセスされ得る任意の使用可能な媒体とすることができる。限定ではなく、例として、そのようなコンピュータ可読媒体は、RAM、ROM、EEPROM、CD-ROM、または他の光ディスクストレージ、磁気ディスクストレージもしくは他の磁気記憶デバイス、または、命令もしくはデータ構造の形態で所望のプログラムコードを搬送もしくは記憶するために使用され得るとともに、コンピュータによってアクセスされ得る任意の他の媒体を含み得る。
【００８３】
また、任意の接続をコンピュータ可読媒体と呼ぶのが妥当である。たとえば、ソフトウェアが同軸ケーブル、光ファイバケーブル、ツイストペア、デジタル加入者回線(DSL)、またはワイヤレス技術、たとえば赤外線、無線、およびマイクロ波を使用してウェブサイト、サーバ、または他のリモートソースから送信される場合、同軸ケーブル、光ファイバケーブル、ツイストペア、DSL、または赤外線、無線、およびマイクロ波などのワイヤレス技術は媒体の定義内に含まれる。
【００８４】
本明細書で使用する場合、ディスク(disk)およびディスク(disc)は、コンパクトディスク(CD)、レーザディスク、光ディスク、デジタル多用途ディスク(DVD)、フレキシブルディスク、およびブルーレイディスクを含み、ディスク(disk)は、通常、磁気的にデータを再生し、ディスク(disc)は、レーザで光学的にデータを再生する。上記の組合せもコンピュータ可読媒体の範囲内に含めるべきである。
【００８５】
選択された態様について詳細に説明し、詳述してきたが、以下の請求項によって定義されるような本発明の趣旨および範囲から逸脱することなく、本明細書において様々な置換および改変を実施できることが理解されよう。
【符号の説明】
【００８６】
102  アプリケーションサブシステム
103A、103B  通信リンク
105  モバイルウェブブラウザアプリケーション
106  ユーザインターフェースモジュール
107  ネットワークスタックモジュール
109A、109B、109C  動的メモリ割振りシステム(「DMAS」)モジュール
111  ハイパーテキスト転送プロトコル(「HTTP」)スタック
113  ドメインネームサーバモジュール
115  オペレーティングシステム
117  ブラウザエンジン
119  メモリリソース
121  RAM
123  フラッシュメモリ
125  セキュアデジタル(「SD」)メモリカード
127A、127B、127C  転送通信プロトコル(「TCP」)モジュール
129  インターネットプロトコル(「IP」)レイヤ
131  ネットワークバッファレイヤ
133  モデムサブシステム
200  ワイヤレスハンドヘルドコンピューティングデバイス
206  ワイヤレス通信ネットワーク
208  ブロードキャストRFトランシーバタワー
210  サーバ
322  オンチップシステム
324  第1の中央処理ユニット、第1のデジタルシグナルプロセッサ
326  第2の中央処理ユニット、第2のデジタルシグナルプロセッサ
328  ディスプレイコントローラ
330  タッチスクリーンコントローラ
332  ディスプレイ
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  電源
400  スクリーン
402  ウェブページ
403  グラフィカル画像
406  第1のテキスト
409  第2のテキスト
412  第3のテキスト
415  スクリーンポインタ
418  グラフィカルな矩形の縁
444  ティッカーテキスト
448  矢印
500  スクリーン
503  マウスオーバディスプレイ
505  プログラムアイコン
510  メニューまたはリスティング
600  ハイパーテキストマークアップ言語(「HTML」)ファイル
605A  カスケーディングスタイルシート(「CSS」)ファイル
605B  画像ファイル
605C  ジャバスクリプト(「JS」)ファイル
620  リスティング
702  フォントおよび色をアドレス指定するデータ
802  画像403の物理的プロパティを提供するデータ
902  JSファイル605Cのデータ
1000  オブジェクトトラッキングテーブル
1005  オブジェクトネーム
1010  オブジェクトが呼ばれた回数
1100  優先順位表
1105  ジャバスクリプトライブラリ
1115  矩形の点線ボックス
【図１Ａ】
2013540322.tif 000003
【図１Ｂ】
2013540322.tif 000004
【図２】
2013540322.tif 000005
【図３】
2013540322.tif 000006
【図４】
2013540322.tif 000007
【図５】
2013540322.tif 000008
【図６】
2013540322.tif 000009
【図７】
2013540322.tif 000010
【図８】
2013540322.tif 000011
【図９】
2013540322.tif 000012
【図１０】
2013540322.tif 000013
【図１１】
2013540322.tif 000014
【図１２】
2013540322.tif 000015
【図１３】
2013540322.tif 000016
【図１４】
2013540322.tif 000017
【国際調査報告】
2013540322.tif 000018
2013540322.tif 000019