(57)【特許請求の範囲】
【請求項１】
コンピューティングデバイス上でウェブページをレンダリングするための方法であって、
前記コンピューティングデバイスからウェブページに対する要求を送信するステップと、
ブラウザ支援サーバに対して、前記要求されたウェブページに関するメタデータに対する要求を前記コンピューティングデバイスから送信するステップと、
前記コンピューティングデバイスを支援するための前記メタデータを前記コンピューティングデバイスにおいて前記ブラウザ支援サーバから受信するステップであって、前記メタデータが、前記ウェブページのライブラリが、最も実行される可能性が高いと判定される部分を含むことを表現する、ステップと、
前記受信されたメタデータに基づいて前記ライブラリの他の部分よりも前に最も実行される可能性の高いライブラリの部分をダウンロードするステップと、
前記コンピューティングデバイス上で前記要求されたウェブページの前記ダウンロードされたライブラリ部分を実行して、前記要求されたウェブページをレンダリングするステップと、
前記メタデータのサービス品質のフィードバックを提供するために、前記要求されたウェブページの処理およびレンダリングの結果に関するフィードバックメタデータを、前記ブラウザ支援サーバに送信するステップと
を含む、方法。
【請求項２】
前記コンピューティングデバイスにおいて受信される前記メタデータが、
JavaScript(登録商標)関数の実行確率と、
データを解析するためのASTデータと、
スクリプトトークンデータと、
字句情報と、
前記コンピューティングデバイスを支援するためにサーバにおいて処理されるデータからの返されたバイナリコードと、
前記コンピューティングデバイスにおいてCSSウェブページデータを処理するのを支援するためのCSSメタデータと、
前記コンピューティングデバイスにおいてJavaScript(登録商標)ウェブページデータを処理するのを支援するためのJavaScript(登録商標)メタデータと、
前記コンピューティングデバイスにおいてHTMLウェブページデータを処理するのを支援するためのHTMLメタデータと、
これらの組合せとからなる群から選択されるデータを含む、請求項１に記載の方法。
【請求項３】
前記コンピューティングデバイスにおいて受信される前記メタデータが、複数の観測されたユーザのブラウジング統計を含み、前記方法が、
前記複数の観測されたブラウジング統計を使用して、前記コンピューティングデバイスにおいて、前記ウェブページの部分を他の部分よりも前にロードするのを支援するステップをさらに含む、請求項１に記載の方法。
【請求項４】
前記コンピューティングデバイスにおいて受信される前記メタデータが、所定の実行の確率を有するコードのある部分に関する統計を含む、請求項１に記載の方法。
【請求項５】
前記コンピューティングデバイスにおいて受信される前記メタデータが、前記サーバにおける処理を増加させ、前記コンピューティングデバイスにおける処理を減少させるための、JavaScript(登録商標)コードがサーバ上で実行されることで生じる変換されたバイナリコードを含む、請求項１に記載の方法。
【請求項６】
前記コンピューティングデバイスにおいて受信される前記メタデータが、前記コンピューティングデバイス上のウェブブラウザが頻繁にアクセスされることにより人気のある部分を最初にロードするように、前記頻繁にアクセスされて人気のある前記ウェブページの部分と相関する分析を含む、請求項１に記載の方法。
【請求項７】
前記コンピューティングデバイスのユーザの習慣を収集するステップと、
前記ユーザによって頻繁にアクセスされるウェブページ要素をメモリにプリロードするステップとをさらに含む、請求項１に記載の方法。
【請求項８】
複数のウェブユーザに頻繁にアクセスされるデータに対応する前記複数のユーザからの使用情報を、サーバにおいて収集するステップと、
前記使用情報と、前記複数のウェブユーザの習慣の分析とに基づいて、メタデータを生成するステップとをさらに含む、請求項１に記載の方法。
【請求項９】
他のウェブユーザに頻繁にアクセスされて人気のあるデータに対応する、複数のユーザからの使用情報をローカルネットワークコンピュータが収集することに基づいて、前記ローカルネットワークコンピュータから前記コンピューティングデバイスにおいてメタデータを受信するステップと、
前記ローカルネットワークコンピュータから収集された前記使用情報の使用に基づいて追加的なメタデータを生成するステップとをさらに含む、請求項１に記載の方法。
【請求項１０】
複数のユーザがウェブブラウザを使用するとき、前記複数のユーザに基づいて、ブラウジング習慣についての集約情報を収集するステップと、
前記複数のユーザを監視して、計測手段を備えたウェブブラウザを使用して前記ブラウジング習慣を生成するステップと、
前記複数のユーザの前記ブラウジング習慣に基づいてメタデータを生成するステップとをさらに含む、請求項１に記載の方法。
【請求項１１】
ライブラリが頻繁にダウンロードされていることを示すメタデータを受信するステップと、
観測された統計情報に基づいて、前記ライブラリが、実行のために他の部分よりも前に統計的に必要とされる可能性の高いライブラリの部分を表現することを、前記メタデータにおいて表現するステップと、
前記メタデータに基づいて前記ライブラリの前記部分を最初にダウンロードするステップとをさらに含む、請求項１に記載の方法。
【請求項１２】
前記受信したメータデータ内の統計データに基づいて、最も可能性の高い実行可能ライブラリ部分を前記ライブラリが有すると判定するステップと、
前記最も可能性の高い実行可能ライブラリ部分を、前記ライブラリの他の部分よりも前に最初にダウンロードするステップとをさらに含む、請求項１１に記載の方法。
【請求項１３】
ブラウジングの間、複数のユーザを監視するステップと、
ウェブページの第1の部分を他の部分よりも前に見る可能性が高いある統計的な割合のユーザを示すメタデータを、生成するステップと、
前記第1の部分を、前記ウェブページの他の部分よりも前に、最初に前記コンピューティングデバイスへ送信するステップとをさらに含む、請求項１に記載の方法。
【請求項１４】
前記メタデータが、前記コンピューティングデバイスのユーザのプロファイルを含み、前記方法が、
前記プロファイルに基づいて、ウェブページの第1の部分を他の部分よりも前に前記ユーザが見る可能性が高いという、統計的な割合を示すメタデータを受信するステップと、
前記ユーザがウェブページの第2の部分を見る可能性が高くないという、統計的な割合を示すメタデータを受信するステップと、
前記第1の部分を、前記ウェブページの他の部分よりも前に、最初に前記コンピューティングデバイスへダウンロードするステップと、
前記第1の部分よりある期間後に、前記第2の部分をダウンロードするステップとをさらに含む、請求項１に記載の方法。
【請求項１５】
他のユーザのブラウジングの習慣を示すメタデータを受信するステップと、
前記メタデータに基づいて、ウェブページのどの部分が、前記ウェブページの他の部分よりも前にアクセスされる可能性が統計的に高いかを判定するステップと、
第2の部分は頻繁にアクセスされない可能性が高いと判定するステップと、
統計的にアクセスされる可能性の高い部分よりも低い優先度の前記第2の部分をダウンロードするステップとをさらに含む、請求項１に記載の方法。
【請求項１６】
ワイヤレスネットワークを介してサーバにリンクするステップと、
ブラウザを前記サーバと関連付けるステップと、
前記ブラウザから、前記コンピューティングデバイスが使用する情報を集めるステップとをさらに含む、請求項１に記載の方法。
【請求項１７】
ウェブブラウザに対する前記メタデータを使用して、JavaScript(登録商標)を含む前記要求を解析し、分析し、または実行するためのヒントを提供するステップと、
前記JavaScript(登録商標)は前記コンピューティングデバイスにおいて処理するのに非効率であると判定するステップと、
前記JavaScript(登録商標)のバイナリのプリコンパイルされた変換物を送信するステップとをさらに含む、請求項１に記載の方法。
【請求項１８】
コンピューティングデバイス上でウェブページをレンダリングするための方法であって、
前記コンピューティングデバイスからウェブページに対する要求を送信するステップと、
ブラウザ支援サーバに対して、前記要求されたウェブページに関するメタデータに対する要求を前記コンピューティングデバイスから送信するステップと、
前記コンピューティングデバイスを支援するための前記メタデータを前記コンピューティングデバイスにおいて前記ブラウザ支援サーバから受信するステップとを含み、前記ブラウザ支援サーバが、
複数のウェブユーザのブラウジング習慣と、前記ウェブユーザがウェブページを見ることに関わる習慣とに関する統計を集約し、
前記統計を前記メタデータ中で送達し、
前記統計を使用して、ウェブページが前記コンピューティングデバイスにおいて要求される前に統計的に頻繁にアクセスされる前記ウェブページをプリロードすることによって、モバイルリソースを節約し、
頻繁にアクセスされる前記ウェブページの部分をダウンロードするステップと、
頻繁にアクセスされない前記ウェブページの第2の部分のダウンロードを省略して、モバイルリソースを節約する、方法。
【請求項１９】
ブラウジングデータをインターネットブラウザからサーバに送信するステップと、
前記サーバ中の前記ブラウジングデータから前記メタデータを生成するステップとをさらに含む、請求項１に記載の方法。
【請求項２０】
データを計測を備えたブラウザからサーバに送信するステップと、
前記データから前記メタデータを生成するステップとをさらに含む、請求項１に記載の方法。
【請求項２１】
コンピューティングデバイス上でウェブページをレンダリングするための方法であって、
前記コンピューティングデバイスからウェブページに対する要求を送信するステップと、
ブラウザ支援サーバに対して、前記要求されたウェブページに関するメタデータに対する要求を前記コンピューティングデバイスから送信するステップと、
前記ウェブページに対する前記要求を解析し、分析し、または実行する際、前記コンピューティングデバイスを支援するための前記メタデータを前記コンピューティングデバイスにおいて前記ブラウザ支援サーバから受信するステップとを含み、
前記コンピューティングデバイスにおいて受信される前記メタデータが、前記コンピューティングデバイス上のウェブブラウザが頻繁にアクセスされる部分を最初にロードするように、ピアデバイスに接続されたコンピューティングデバイスに頻繁にアクセスされる前記ウェブページの前記部分と相関する、前記ピアデバイスから前記コンピューティングデバイスへのさらなるメタデータを含む、方法。
【請求項２２】
コンピューティングデバイス上でウェブページをレンダリングするための方法であって、
前記コンピューティングデバイスからウェブページに対する要求を送信するステップと、
ブラウザ支援サーバに対して、前記要求されたウェブページに関するメタデータに対する要求を前記コンピューティングデバイスから送信するステップと、
前記コンピューティングデバイスを支援するための前記メタデータを前記コンピューティングデバイスにおいて前記ブラウザ支援サーバから受信するステップと、
第2のコンピューティングデバイスのブラウジング習慣のクライアント側監視システムを設けるステップと、
前記ブラウジング習慣をサーバに送信するステップと、
前記第2のコンピューティングデバイスの前記ブラウジング習慣の前記クライアント側監視システムに基づいて、さらなるメタデータを前記サーバから前記コンピューティングデバイスに受信するステップを含む、方法。
【請求項２３】
要求および要求に対する応答を含む追加的なメタデータをブラウジング習慣から生成するステップと、
前記コンピューティングデバイスのピアであるピアデバイスに前記追加的なメタデータを提供するステップとをさらに含む、請求項１に記載の方法。
【請求項２４】
複数のユーザのブラウジング習慣を監視するステップと、
前記ブラウジング習慣をサーバに送信するステップと、
前記監視されたブラウジング習慣に基づいて、前記複数のユーザの複数の観測されたプロファイルを編成するステップと、
コンピューティングデバイスのユーザの前記ブラウジング習慣を監視するステップと、
前記監視されたブラウジング習慣に基づいて、前記コンピューティングデバイスのユーザと一致する少なくとも1つの観測されたプロファイルに基づいて、メタデータを前記サーバから前記コンピューティングデバイスにおいて受信するステップとをさらに含む、請求項１に記載の方法。
【請求項２５】
コードのある部分に、第2の部分よりも頻繁に、分析、ダウンロード、解析、または実行のうちの少なくとも1つが行われることを、前記メタデータにおいて表現するステップと、
前記コードの前記部分を前記第2の部分よりも前に並べ替え、前記部分を最初にダウンロードするステップとをさらに含む、請求項１に記載の方法。
【請求項２６】
サーバ上に位置する前記ブラウザ支援サーバに対する前記要求を送信するステップと、
ウェブサイトが前記コンピューティングデバイスによって頻繁にアクセスされていると判定するステップと、
更新されたウェブサイトのデータを前記コンピューティングデバイスにアップロードするステップとをさらに含む、請求項１に記載の方法。
【請求項２７】
前記メタデータに含まれる統計的なブラウジング習慣に基づいて、前記コンピューティングデバイスを使用して、ウェブページの第1の部分を第2の部分よりも前にダウンロードするステップをさらに含む、請求項１に記載の方法。
【請求項２８】
前記コンピューティングデバイスを使用してウェブページの部分をプリロードするステップであって、前記プリロードされる部分が、前記メタデータに含まれる統計的なブラウジング習慣を使用して特定される、ステップをさらに含む、請求項１に記載の方法。
【請求項２９】
複数のユーザからのブラウジング習慣を監視するステップと、
ウェブページ要素を含むウェブページが頻繁にアクセスされていると判定するステップと、
前記ブラウジング習慣に基づいてウェブページ要素をキャッシュに記憶して、前記ウェブページ要素が前記コンピューティングデバイス上で削除されるのを防ぐステップと、
前記ウェブページ要素を、予測される要求よりも前に、前記キャッシュからダウンロードするステップとをさらに含む、請求項１に記載の方法。
【請求項３０】
単一のユーザのブラウジング習慣から導出されるブラウジング習慣を監視するステップと、
前記キャッシュに記憶される前記ウェブページを更新するステップと、
前記要求を伴わずに、前記キャッシュ上の要素を、定期的な間隔で前記コンピューティングデバイスにプッシュするステップと、
前記キャッシュに記憶される前記ウェブページを更新するステップと、
前記キャッシュ上の要素を前記コンピューティングデバイスにプルするステップとをさらに含む、請求項２９に記載の方法。
【請求項３１】
必要な部分を実行することによって、前記ウェブページをより効率的な方式で前記コンピューティングデバイスが実行するのを可能にする、メタデータを前記コンピューティングデバイスにおいて受信するステップと、
ウェブページ全体の実行を見送るステップとをさらに含む、請求項１に記載の方法。
【請求項３２】
前記ウェブページに対する前記要求に応答するサーバと同じサーバからなるグループから選択される位置にある前記ブラウザ支援サーバに対して前記要求を送信するステップとをさらに含む、請求項１に記載の方法。
【請求項３３】
コンピューティングデバイス上でウェブページをレンダリングするための方法であって、
前記コンピューティングデバイスからウェブページに対する要求を送信するステップであって、前記ウェブページがJavaScript(登録商標)を含む複数の部分を含む、ステップと、
ブラウザ支援サーバに対して、前記要求されたウェブページに関するメタデータに対する要求を前記コンピューティングデバイスから送信するステップと、
前記ブラウザ支援サーバを使用して前記複数の部分を処理して、ネイティブコードを得るステップと、
前記コンピューティングデバイスを支援するための、前記ネイティブコードを含む前記メタデータを前記コンピューティングデバイスにおいて前記ブラウザ支援サーバから受信するステップと、
前記コンピューティングデバイス上で前記要求されたウェブページのコードを実行して、前記要求されたウェブページをレンダリングするステップと、
フィードバックを提供するために、前記要求されたウェブページの処理およびレンダリングの結果を前記ブラウザ支援サーバに送信するステップとを含み、
前記ブラウザ支援サーバが、サーバ、ネットワークコンピュータ、またはピアデバイスのうちの1つに位置する、方法。
【請求項３４】
データに対する要求を送信するステップと、
要求を第1のデバイスに送信するステップと、
メタデータを第2のデバイスに送信するステップと、
要求および要求に対する応答の監視された経験的なデータに基づいて、統計的に実行の確率が高い前記ウェブページの部分を、前記メタデータにおいて表現するステップとをさらに含む、請求項１に記載の方法。
【請求項３５】
メタデータをプリキャッシュすることによって前もって前記メタデータを前記コンピューティングデバイスにおいて受信し、前記ウェブページに対する前記要求を解析し、分析し、または実行する際に前記コンピューティングデバイスを支援するステップをさらに含む、請求項１に記載の方法。
【請求項３６】
ディスプレイと、
内部メモリと、
前記ディスプレイおよび前記内部メモリに結合されたプロセッサとを含むコンピューティングデバイスであって、前記プロセッサが、
ウェブページに対する要求を送信するステップと、
ブラウザ支援サーバに対して、前記要求されたウェブページに関するメタデータに対する要求を送信するステップと、
前記コンピューティングデバイスを支援するための前記メタデータを前記ブラウザ支援サーバから受信するステップであって、最も実行される可能性が高いと判定される前記ウェブページの部分をライブラリが含むことを前記メタデータが示す、ステップと、
前記受信されたメタデータに基づいて前記ライブラリの他の部分よりも前に最も実行される可能性の高いライブラリの部分をダウンロードするステップと、
前記コンピューティングデバイス上で前記要求されたウェブページの前記ダウンロードされたライブラリの部分を実行して、前記要求されたウェブページをレンダリングするステップと、
フィードバックを提供するために、前記要求されたウェブページの処理およびレンダリングの結果を、前記ブラウザ支援サーバに送信するステップとを含む動作を実行するように、プロセッサ実行可能命令によって構成される、コンピューティングデバイス。
【請求項３７】
メタデータを受信するステップが、
JavaScript(登録商標)関数の実行確率と、
データを解析するためのASTデータと、
スクリプトトークンデータと、
字句情報と、
前記コンピューティングデバイスを支援するためにサーバにおいて処理されるデータからの返されたバイナリコードと、
前記コンピューティングデバイスにおいてCSSウェブページデータを処理するのを支援するためのCSSメタデータと、
前記コンピューティングデバイスにおいてJavaScript(登録商標)ウェブページデータを処理するのを支援するためのJavaScript(登録商標)メタデータと、
前記コンピューティングデバイスにおいてHTMLウェブページデータを処理するのを支援するためのHTMLメタデータと、
これらの組合せとからなる群から選択されるデータを受信するステップを含むように動作を実行するように、前記プロセッサがプロセッサ実行可能命令によって構成される、請求項３６に記載のコンピューティングデバイス。
【請求項３８】
メタデータを受信するステップが複数の観測されたユーザのブラウジング統計を受信するステップを含むように動作を実行するように、前記プロセッサがプロセッサ実行可能命令によって構成され、
前記複数の観測されたブラウジング統計を使用して前記ウェブページの部分を他の部分よりも前にロードするのを支援するステップをさらに含む動作を実行するように、前記プロセッサがプロセッサ実行可能命令によって構成される、請求項３６に記載のコンピューティングデバイス。
【請求項３９】
メタデータを受信するステップが所定の実行の確率を有するコードのある部分に関する統計を受信するステップを含むように動作を実行するように、前記プロセッサがプロセッサ実行可能命令によって構成される、請求項３６に記載のコンピューティングデバイス。
【請求項４０】
サーバにおける処理を増加させ前記コンピューティングデバイスにおける処理を減少させるために前記サーバ上で実行されたJavaScript(登録商標)コードにより生じる、変換されたバイナリコードを含むメタデータを受信するステップをさらに含む動作を実行するように、前記プロセッサがプロセッサ実行可能命令によって構成される、請求項３６に記載のコンピューティングデバイス。
【請求項４１】
メタデータを受信するステップが、前記コンピューティングデバイス上のウェブブラウザが頻繁にアクセスされる部分を最初にロードするように、頻繁にアクセスされる前記ウェブページの部分と相関する分析を受信するステップを含むように動作を実行するように、前記プロセッサがプロセッサ実行可能命令によって構成される、請求項３６に記載のコンピューティングデバイス。
【請求項４２】
前記コンピューティングデバイスのユーザのウェブブラウジング習慣を監視するステップと、
前記ユーザのブラウジング習慣に関する情報をサーバに送信するステップと、
前記ユーザのウェブブラウジング習慣に一部基づいて、前記サーバからメタデータを受信するステップとをさらに含む動作を実行するように、前記プロセッサがプロセッサ実行可能命令によって構成される、請求項３６に記載のコンピューティングデバイス。
【請求項４３】
前記コンピューティングデバイスのユーザのウェブブラウジング習慣を監視するステップと、
前記ユーザによって頻繁にアクセスされるウェブページ要素をメモリにプリロードするステップとをさらに含む動作を実行するように、前記プロセッサがプロセッサ実行可能命令によって構成される、請求項３６に記載のコンピューティングデバイス。
【請求項４４】
メタデータを受信するステップが、ライブラリが頻繁にダウンロードされていることを示すメタデータを受信するステップを含むように、動作を実行するように、前記プロセッサがプロセッサ実行可能命令によって構成され、前記メタデータにおいて表現されるように、前記ライブラリが、観測された統計情報に基づいて、実行のために他の部分よりも前に統計的に必要とされる可能性の高い部分を有し、
前記メタデータに基づいて前記ライブラリの前記部分を最初にダウンロードするステップをさらに含む動作を実行するように、前記プロセッサがプロセッサ実行可能命令によって構成される、請求項３６に記載のコンピューティングデバイス。
【請求項４５】
統計データに基づいて、最も可能性の高い実行可能ライブラリ部分を前記ライブラリが有すると判定するステップと、
前記最も可能性の高い実行可能ライブラリ部分を、前記ライブラリの他の部分よりも前に最初にダウンロードするステップとをさらに含む動作を実行するように、前記プロセッサがプロセッサ実行可能命令によって構成される、請求項４４に記載のコンピューティングデバイス。
【請求項４６】
ディスプレイと、
内部メモリと、
前記ディスプレイおよび前記内部メモリに結合されたプロセッサとを含み、
ウェブページに対する要求を送信するステップと、
ブラウザ支援サーバに対して、前記要求されたウェブページに関するメタデータに対する要求を送信するステップと、
コンピューティングデバイスを支援するための前記メタデータを前記ブラウザ支援サーバから受信するステップと、
ピアデバイスに接続されたコンピューティングデバイスに頻繁にアクセスされる前記ウェブページの部分と相関するメタデータを前記ピアデバイスから受信するステップと、
ウェブブラウザ上で前記頻繁にアクセスされる部分を最初にロードするステップとを含む動作を実行するように、前記プロセッサがプロセッサ実行可能命令によって構成される、コンピューティングデバイス。
【請求項４７】
要求および要求に対する応答を含む追加的なメタデータをブラウジング習慣から生成するステップと、
前記コンピューティングデバイスのピアデバイスに前記追加的なメタデータを提供するステップとをさらに含む動作を実行するように、前記プロセッサがプロセッサ実行可能命令によって構成される、請求項３６に記載のコンピューティングデバイス。
【請求項４８】
メタデータを受信するステップが、コードの第1の部分に第2の部分よりも頻繁に、分析、ダウンロード、解析、または実行のうちの少なくとも1つが行われていることを示すメタデータを受信するステップを含むように動作を実行するように、前記プロセッサがプロセッサ実行可能命令によって構成され、
コードの前記第1の部分を前記第2の部分よりも前に並べ替えてダウンロードするステップをさらに含む動作を実行するように、前記プロセッサがプロセッサ実行可能命令によって構成される、請求項３６に記載のコンピューティングデバイス。
【請求項４９】
前記受信されたメタデータに含まれる統計的なブラウジング習慣に基づいて、ウェブページの第1の部分を他の部分よりも前にダウンロードするステップをさらに含む動作を実行するように、前記プロセッサがプロセッサ実行可能命令によって構成される、請求項３６に記載のコンピューティングデバイス。
【請求項５０】
前記メタデータに含まれる統計的なブラウジング習慣を使用して特定されるウェブページの部分をプリロードするステップをさらに含む動作を実行するように、前記プロセッサがプロセッサ実行可能命令によって構成される、請求項３６に記載のコンピューティングデバイス。
【請求項５１】
メタデータを受信するステップが、必要な部分を実行することによって前記コンピューティングデバイスが前記ウェブページをより効率的な方式で実行することを可能にするメタデータを受信するステップを含むように動作を実行するように、前記プロセッサがプロセッサ実行可能命令によって構成され、
ウェブページ全体の実行を見送るステップをさらに含む動作を実行するように、前記プロセッサがプロセッサ実行可能命令によって構成される、請求項３６に記載のコンピューティングデバイス。
【請求項５２】
前記ウェブページに対する前記要求を解析し、分析し、または実行する際、前記コンピューティングデバイスを支援するために、前記受信されたメタデータをプリキャッシュするステップをさらに含む動作を実行するように、前記プロセッサがプロセッサ実行可能命令によって構成される、請求項３６に記載のコンピューティングデバイス。
【請求項５３】
ウェブページに対する要求を送信するステップと、
ブラウザ支援サーバに対して、前記要求されたウェブページに関するメタデータに対する要求を送信するステップと、
コンピューティングデバイスを支援するための前記メタデータを前記ブラウザ支援サーバから受信するステップであって、前記メタデータが、前記ウェブページのライブラリが、最も実行される可能性が高いと判定される部分を含むことを示す、ステップと、
前記ライブラリの他の部分よりも前に最も実行される可能性の高いライブラリの部分をダウンロードするステップと、
前記コンピューティングデバイス上で前記要求されたウェブページの前記ダウンロードされたライブラリの部分を実行して、前記要求されたウェブページをレンダリングするステップと、
フィードバックを提供するために、前記要求されたウェブページの処理およびレンダリングの結果を、前記ブラウザ支援サーバに送信するステップとを含む動作を、前記コンピューティングデバイスのプロセッサに実行させるように構成された、プロセッサ実行可能命令を記憶したコンピュータ可読記憶媒体。
【請求項５４】
メタデータを受信するステップが、
JavaScript(登録商標)関数の実行確率と、
データを解析するためのASTデータと、
スクリプトトークンデータと、
字句情報と、
前記コンピューティングデバイスを支援するためにサーバにおいて処理されるデータからの返されたバイナリコードと、
前記コンピューティングデバイスにおいてCSSウェブページデータを処理するのを支援するためのCSSメタデータと、
前記コンピューティングデバイスにおいてJavaScript(登録商標)ウェブページデータを処理するのを支援するためのJavaScript(登録商標)メタデータと、
前記コンピューティングデバイスにおいてHTMLウェブページデータを処理するのを支援するためのHTMLメタデータと、
これらの組合せとからなる群から選択されるデータを受信するステップを含むように、前記コンピューティングデバイスのプロセッサにさらに動作を実行させるように、前記記憶されたプロセッサ実行可能命令が構成される、請求項５３に記載のコンピュータ可読記憶媒体。
【請求項５５】
メタデータを受信するステップが複数の観測されたユーザのブラウジング統計を受信するステップを含むように、前記コンピューティングデバイスのプロセッサに動作を実行させるように、前記記憶されたプロセッサ実行可能命令が構成され、
前記複数の観測されたブラウジング統計を使用して前記ウェブページの部分を他の部分よりも前にロードするのを支援するステップをさらに含む動作を、前記コンピューティングデバイスのプロセッサに実行させるように、前記記憶されたプロセッサ実行可能命令が構成される、請求項５３に記載のコンピュータ可読記憶媒体。
【請求項５６】
メタデータを受信するステップが、所定の実行の確率を有するコードのある部分に関する統計を受信するステップを含むように、前記コンピューティングデバイスのプロセッサに実行させるように、前記記憶されたプロセッサ実行可能命令が構成される、請求項５３に記載のコンピュータ可読記憶媒体。
【請求項５７】
サーバにおける処理を増加させ前記コンピューティングデバイスにおける処理を減少させるために前記サーバ上で実行されたJavaScript(登録商標)コードにより生じる、変換されたバイナリコードを含むメタデータを受信するステップをさらに含む動作を、前記コンピューティングデバイスのプロセッサに実行させるように、前記記憶されたプロセッサ実行可能命令が構成される、請求項５３に記載のコンピュータ可読記憶媒体。
【請求項５８】
メタデータを受信するステップが、前記コンピューティングデバイス上のウェブブラウザが頻繁にアクセスされる部分を最初にロードするように、頻繁にアクセスされる前記ウェブページの部分と相関する分析を受信するステップを含むように、前記コンピューティングデバイスのプロセッサに動作を実行させるように、前記記憶されたプロセッサ実行可能命令が構成される、請求項５３に記載のコンピュータ可読記憶媒体。
【請求項５９】
前記コンピューティングデバイスのユーザのウェブブラウジング習慣を監視するステップと、
前記ユーザのブラウジング習慣に関する情報をサーバに送信するステップと、
前記ユーザのウェブブラウジング習慣に一部基づいて、前記サーバからメタデータを受信するステップとをさらに含む動作を、前記コンピューティングデバイスのプロセッサに実行させるように、前記記憶されたプロセッサ実行可能命令が構成される、請求項５３に記載のコンピュータ可読記憶媒体。
【請求項６０】
前記コンピューティングデバイスのユーザのウェブブラウジング習慣を監視するステップと、
前記ユーザによって頻繁にアクセスされるウェブページ要素をメモリにプリロードするステップとをさらに含む動作を、前記コンピューティングデバイスのプロセッサに実行させるように、前記記憶されたプロセッサ実行可能命令が構成される、請求項５３に記載のコンピュータ可読記憶媒体。
【請求項６１】
メタデータを受信するステップが、ライブラリが頻繁にダウンロードされていることを示すメタデータを受信するステップを含むように、前記コンピューティングデバイスのプロセッサに動作を実行させるように、前記記憶されたプロセッサ実行可能命令が構成され、前記メタデータにおいて表現されるように、前記ライブラリが、観測された統計情報に基づいて、実行のために他の部分よりも前に統計的に必要とされる可能性の高い部分を有し、
前記メタデータに基づいて前記ライブラリの前記部分を最初にダウンロードするステップをさらに含む動作を、前記コンピューティングデバイスのプロセッサに実行させるように、前記記憶されたプロセッサ実行可能命令が構成される、請求項５３に記載のコンピュータ可読記憶媒体。
【請求項６２】
統計データに基づいて、最も可能性の高い実行可能ライブラリ部分を前記ライブラリが有すると判定するステップと、
前記最も可能性の高い実行可能ライブラリ部分を、前記ライブラリの他の部分よりも前に最初にダウンロードするステップとをさらに含む動作を、前記コンピューティングデバイスのプロセッサに実行させるように、前記記憶されたプロセッサ実行可能命令が構成される、請求項６１に記載のコンピュータ可読記憶媒体。
【請求項６３】
ウェブページに対する要求を送信するステップと、
ブラウザ支援サーバに対して、前記要求されたウェブページに関するメタデータに対する要求を送信するステップと、
コンピューティングデバイスを支援するための前記メタデータを前記ブラウザ支援サーバから受信するステップとを含む動作を、前記コンピューティングデバイスのプロセッサに実行させるように構成された、プロセッサ実行可能命令を記憶したコンピュータ可読記憶媒体であって、
メタデータを受信するステップが、ピアデバイスに接続されたコンピューティングデバイスに頻繁にアクセスされる前記ウェブページの部分と相関するメタデータを前記ピアデバイスから受信するステップを含むように、前記コンピューティングデバイスのプロセッサに動作を実行させるように、前記記憶されたプロセッサ実行可能命令が構成され、
ウェブブラウザ上で前記頻繁にアクセスされる部分を最初にロードするステップをさらに含む動作を、前記コンピューティングデバイスのプロセッサに実行させるように、前記記憶されたプロセッサ実行可能命令が構成される、コンピュータ可読記憶媒体。
【請求項６４】
要求および要求に対する応答を含むメタデータをブラウジング習慣から生成するステップと、
前記コンピューティングデバイスのピアデバイスに前記メタデータを提供するステップとをさらに含む動作を、前記コンピューティングデバイスのプロセッサに実行させるように、前記記憶されたプロセッサ実行可能命令が構成される、請求項５３に記載のコンピュータ可読記憶媒体。
【請求項６５】
メタデータを受信するステップが、コードの第1の部分に第2の部分よりも頻繁に、分析、ダウンロード、解析、または実行のうちの少なくとも1つが行われていることを示すメタデータを受信するステップを含むように、前記コンピューティングデバイスのプロセッサに動作を実行させるように、前記記憶されたプロセッサ実行可能命令が構成され、
ライブラリの前記第1の部分を前記第2の部分よりも前に並べ替えてダウンロードするステップをさらに含む動作を、前記コンピューティングデバイスのプロセッサに実行させるように、前記記憶されたプロセッサ実行可能命令が構成される、請求項５３に記載のコンピュータ可読記憶媒体。
【請求項６６】
前記受信されたメタデータに含まれる統計的なブラウジング習慣に基づいて、ウェブページの第1の部分を第2の部分よりも前にダウンロードするステップをさらに含む動作を、前記コンピューティングデバイスのプロセッサに実行させるように、前記記憶されたプロセッサ実行可能命令が構成される、請求項５３に記載のコンピュータ可読記憶媒体。
【請求項６７】
前記メタデータに含まれる統計的なブラウジング習慣を使用して特定されるウェブページの部分をプリロードするステップをさらに含む動作を、前記コンピューティングデバイスのプロセッサに実行させるように、前記記憶されたプロセッサ実行可能命令が構成される、請求項５３に記載のコンピュータ可読記憶媒体。
【請求項６８】
メタデータを受信するステップが、必要な部分を実行することによって前記コンピューティングデバイスが前記ウェブページをより効率的な方式で実行することを可能にするメタデータを受信するステップを含むように、前記コンピューティングデバイスのプロセッサに動作を実行させるように、前記記憶されたプロセッサ実行可能命令が構成され、
ウェブページ全体の実行を見送るステップをさらに含む動作を、前記コンピューティングデバイスのプロセッサに実行させるように、前記記憶されたプロセッサ実行可能命令が構成される、請求項５３に記載のコンピュータ可読記憶媒体。
【請求項６９】
前記ウェブページに対する前記要求を解析し、分析し、または実行する際、前記コンピューティングデバイスを支援するために、前記受信されたメタデータをプリキャッシュするステップをさらに含む動作を、前記コンピューティングデバイスのプロセッサに実行させるように、前記記憶されたプロセッサ実行可能命令が構成される、請求項５３に記載のコンピュータ可読記憶媒体。
【請求項７０】
ウェブページに対する要求を送信するための手段と、
ブラウザ支援サーバに対して、前記要求されたウェブページに関するメタデータに対する要求を送信するための手段と、
前記ウェブページのレンダリングにおいてコンピューティングデバイスを支援するための前記メタデータを前記ブラウザ支援サーバから受信するための手段であって、前記メタデータが、前記要求されたウェブページのライブラリが、最も実行される可能性が高いと判定される部分を含むことを示す、手段と、
前記ライブラリの他の部分よりも前に最も実行される可能性の高いライブラリの部分をダウンロードするための手段と、
前記コンピューティングデバイス上で前記要求されたウェブページの前記ダウンロードされたライブラリの部分を実行して、前記要求されたウェブページをレンダリングするための手段と、
前記メタデータのサービス品質のフィードバックを提供するために、前記要求されたウェブページの処理およびレンダリングの結果を、前記ブラウザ支援サーバに送信するための手段とを含む、コンピューティングデバイス。
【請求項７１】
メタデータを受信するための手段が、
JavaScript(登録商標)関数の実行確率と、
データを解析するためのASTデータと、
スクリプトトークンデータと、
字句情報と、
前記コンピューティングデバイスを支援するためにサーバにおいて処理されるデータからの返されたバイナリコードと、
前記コンピューティングデバイスにおいてCSSウェブページデータを処理するのを支援するためのCSSメタデータと、
前記コンピューティングデバイスにおいてJavaScript(登録商標)ウェブページデータを処理するのを支援するためのJavaScript(登録商標)メタデータと、
前記コンピューティングデバイスにおいてHTMLウェブページデータを処理するのを支援するためのHTMLメタデータと、
これらの組合せとからなる群から選択されるデータを受信するための手段を含む、請求項７０に記載のコンピューティングデバイス。
【請求項７２】
メタデータを受信するための手段が、複数の観測されたユーザのブラウジング統計を受信するための手段を含み、
前記複数の観測されたブラウジング統計を使用して、前記ウェブページの部分を他の部分よりも前にロードするのを支援するための手段をさらに含む、請求項７０に記載のコンピューティングデバイス。
【請求項７３】
メタデータを受信するための手段が、所定の実行の確率を有するコードのある部分に関する統計を受信するための手段を含む、請求項７０に記載のコンピューティングデバイス。
【請求項７４】
メタデータを受信するための手段が、サーバにおける処理を増加させ前記コンピューティングデバイスにおける処理を減少させるために前記サーバ上で実行されたJavaScript(登録商標)コードにより生じる、変換されたバイナリコードを受信するための手段を含む、請求項７０に記載のコンピューティングデバイス。
【請求項７５】
メタデータを受信するための手段が、前記コンピューティングデバイス上のウェブブラウザが頻繁にアクセスされる部分を最初にロードするように、頻繁にアクセスされる前記ウェブページの部分と相関する分析を受信するための手段を含む、請求項７０に記載のコンピューティングデバイス。
【請求項７６】
前記コンピューティングデバイスのユーザのウェブブラウジング習慣を監視するための手段と、
前記ユーザのブラウジング習慣に関する情報をサーバに送信するための手段と、
前記ユーザのウェブブラウジング習慣に一部基づいて、前記サーバからメタデータを受信するための手段とをさらに含む、請求項７０に記載のコンピューティングデバイス。
【請求項７７】
前記コンピューティングデバイスのユーザのウェブブラウジング習慣を監視するための手段と、
前記ユーザによって頻繁にアクセスされるウェブページ要素をメモリにプリロードするための手段とをさらに含む、請求項７０に記載のコンピューティングデバイス。
【請求項７８】
メタデータを受信するための手段が、ライブラリが頻繁にダウンロードされていることを示すメタデータを受信するための手段を含み、前記メタデータにおいて表現されるように、前記ライブラリが、観測された統計情報に基づいて、実行のために他の部分よりも前に統計的に必要とされる可能性の高い部分を有し、前記コンピューティングデバイスが、
前記メタデータに基づいて前記ライブラリの前記部分を最初にダウンロードするための手段をさらに含む、請求項７０に記載のコンピューティングデバイス。
【請求項７９】
統計データに基づいて、最も可能性の高い実行可能ライブラリ部分を前記ライブラリが有すると判定するための手段と、
前記最も可能性の高い実行可能ライブラリ部分を、前記ライブラリの他の部分よりも前に最初にダウンロードするための手段とをさらに含む、請求項７８に記載のコンピューティングデバイス。
【請求項８０】
ウェブページに対する要求を送信するための手段と、
ブラウザ支援サーバに対して、前記要求されたウェブページに関するメタデータに対する要求を送信するための手段と、
コンピューティングデバイスを支援するための前記メタデータを前記ブラウザ支援サーバから受信するための手段とを含み、
メタデータを受信するための手段が、ピアデバイスに接続されたコンピューティングデバイスに頻繁にアクセスされる前記ウェブページの部分と相関するメタデータを前記ピアデバイスから受信するための手段を含み、前記コンピューティングデバイスが、
ウェブブラウザ上で前記頻繁にアクセスされる部分を最初にロードするための手段をさらに含む、請求項７０に記載のコンピューティングデバイス。
【請求項８１】
要求および要求に対する応答を含む追加的なメタデータをブラウジング習慣から生成するための手段と、
前記コンピューティングデバイスのピアデバイスに前記追加的なメタデータを提供するための手段とをさらに含む、請求項７０に記載のコンピューティングデバイス。
【請求項８２】
メタデータを受信するための手段が、コードの第1の部分に、第2の部分よりも頻繁に、分析、ダウンロード、解析、または実行のうちの少なくとも1つが行われることを示す、メタデータを受信するための手段を含み、前記コンピューティングデバイスが、
コードの前記第1の部分を前記第2の部分よりも前に並べ替えてダウンロードするための手段をさらに含む、請求項７０に記載のコンピューティングデバイス。
【請求項８３】
前記受信されたメタデータに含まれる統計的なブラウジング習慣に基づいて、ウェブページの第1の部分を第2の部分よりも前にダウンロードするための手段をさらに含む、請求項７０に記載のコンピューティングデバイス。
【請求項８４】
前記メタデータに含まれる統計的なブラウジング習慣を使用して特定されるウェブページの部分をプリロードするための手段をさらに含む、請求項７０に記載のコンピューティングデバイス。
【請求項８５】
メタデータを受信するための手段が、必要な部分を実行することによって、前記ウェブページをより効率的な方式で前記コンピューティングデバイスが実行するのを可能にする、メタデータを受信するための手段を含み、前記コンピューティングデバイスが、
ウェブページ全体の実行を見送るための手段をさらに含む、請求項７０に記載のコンピューティングデバイス。
【請求項８６】
前記ウェブページに対する前記要求を解析し、分析し、または実行する際、前記コンピューティングデバイスを支援するために、前記受信されたメタデータをプリキャッシュするための手段をさらに含む、請求項７０に記載のコンピューティングデバイス。
【請求項８７】
プロセッサと、
前記プロセッサに結合され、前記プロセッサがセルラー通信ネットワークと通信することを可能にするように構成される、ネットワークインターフェースと、
前記プロセッサに結合されたメモリとを含み、
前記プロセッサが、
コンピューティングデバイスからウェブページに対する要求を受信するステップと、
前記コンピューティングデバイスから、ブラウザ支援サーバに対する、前記要求されたウェブページに関するメタデータに対する要求を受信するステップであって、前記メタデータが、前記ウェブページのライブラリが、最も実行される可能性が高いと判定される部分を含むことを表現する、ステップと、
前記要求されたウェブページと、前記コンピューティングデバイス上で前記要求されたウェブページをレンダリングするために前記コンピューティングデバイスを支援するように構成される前記メタデータと、前記メタデータに基づいて前記ライブラリの他の部分よりも前に最も実行される可能性が高いライブラリの部分とを、前記コンピューティングデバイスに送信するステップと、
前記メタデータのサービス品質のフィードバックを提供するために、前記コンピューティングデバイスから、前記要求されたウェブページの処理およびレンダリングの結果を受信するステップとを含む動作を実行するように、プロセッサ実行可能命令によって構成される、サーバ。
【請求項８８】
前記プロセッサが、
複数のコンピューティングデバイスのユーザのウェブ使用習慣に関するウェブ使用情報を、前記複数のコンピューティングデバイスから受信するステップと、
前記受信された使用情報と、前記複数のコンピューティングデバイスの前記ユーザのウェブ使用習慣の分析とに基づいて、前記メタデータを生成するステップとをさらに含む動作を実行するように、プロセッサ実行可能命令によって構成される、請求項８７に記載のサーバ。
【請求項８９】
前記プロセッサが、
前記要求されたウェブページ内の、JavaScript(登録商標)のバイナリのプリコンパイルされた変換物を、前記コンピューティングデバイスに送信するステップをさらに含む動作を実行するように、プロセッサ実行可能命令によって構成される、請求項８７に記載のサーバ。
【請求項９０】
前記プロセッサが、
複数のコンピューティングデバイスのユーザのブラウジング習慣についての集約情報を収集するステップであって、前記集約情報が、前記複数のコンピューティングデバイス上で動作する計測手段を備えたウェブブラウザによって提供される、前記収集するステップと、
前記複数のコンピューティングデバイスのユーザのブラウジング習慣についての集約情報に基づいて、前記メタデータを生成するステップとをさらに含む動作を実行するように、プロセッサ実行可能命令によって構成される、請求項８７に記載のサーバ。
【請求項９１】
前記プロセッサが、
ユーザがウェブページの第1の部分を他の部分よりも前に見る可能性が高いときを、前記複数のコンピューティングデバイスのユーザのブラウジング習慣についての前記集約情報から判定するステップと、
前記ウェブページの前記第1の部分を、前記ウェブページの他の部分よりも前に、前記コンピューティングデバイスへ送信するステップとをさらに含む動作を実行するように、プロセッサ実行可能命令によって構成される、請求項９０に記載のサーバ。
【請求項９２】
前記プロセッサが、
他のユーザのブラウジング習慣を示すメタデータを生成するステップと、
前記メタデータに基づいて、ウェブページのどの部分が、前記ウェブページの他の部分よりも前にアクセスされる可能性が統計的に高いかを判定するステップと、
第2の部分は頻繁にアクセスされない可能性が高いと判定するステップと、
前記第2の部分が頻繁にアクセスされず、統計的にアクセスされる可能性のより高い部分よりも低い優先度でダウンロードされることを、前記メタデータにおいて伝えるステップとをさらに含む動作を実行するように、プロセッサ実行可能命令によって構成される、請求項９０に記載のサーバ。
【請求項９３】
前記プロセッサが、
前記複数のコンピューティングデバイスの前記ユーザの複数の観測されたプロファイルを編成するステップと、
コンピューティングデバイスのユーザのブラウジング習慣を監視するステップと、
前記監視されたブラウジング習慣に基づいて、前記コンピューティングデバイスのユーザと一致する少なくとも1つの観測されたプロファイルに基づいて、メタデータを前記サーバから前記コンピューティングデバイスに送信するステップとをさらに含む動作を実行するように、プロセッサ実行可能命令によって構成される、請求項９０に記載のサーバ。
【請求項９４】
サーバのプロセッサに動作を実行させるように構成されるプロセッサ実行可能命令を記憶した、コンピュータ可読記憶媒体であって、前記動作が、
コンピューティングデバイスからウェブページに対する要求を受信するステップと、
前記コンピューティングデバイスから、ブラウザ支援サーバに対する、前記要求されたウェブページに関するメタデータに対する要求を受信するステップであって、
前記メタデータが、前記ウェブページのライブラリが、最も実行される可能性が高いと判定される部分を含むことを表現する、ステップと、
前記要求されたウェブページと、前記コンピューティングデバイス上で前記要求されたウェブページをレンダリングするために前記コンピューティングデバイス上で前記要求されたウェブページのコードを解析し、分析し、または実行する際に前記コンピューティングデバイスを支援するように構成される前記メタデータと、前記メタデータに基づいて前記ライブラリの他の部分よりも前に最も実行される可能性が高いライブラリの部分とを、前記コンピューティングデバイスに送信するステップと、
前記メタデータのサービス品質のフィードバックを提供するために、前記コンピューティングデバイスから、前記要求されたウェブページのデータの処理およびレンダリングの結果を受信するステップとを含む、コンピュータ可読記憶媒体。
【請求項９５】
前記記憶されたプロセッサ実行可能命令が、サーバのプロセッサに、
複数のコンピューティングデバイスのユーザのウェブ使用習慣に関するウェブ使用情報を、前記複数のコンピューティングデバイスから受信するステップと、
前記受信された使用情報と、前記複数のコンピューティングデバイスの前記ユーザのウェブ使用習慣の分析とに基づいて、前記メタデータを生成するステップとをさらに含む動作を実行させるように構成される、請求項９４に記載のコンピュータ可読記憶媒体。
【請求項９６】
前記記憶されたプロセッサ実行可能命令が、サーバのプロセッサに、
前記要求されたウェブページ内の、JavaScript(登録商標)のバイナリのプリコンパイルされた変換物を、前記コンピューティングデバイスに送信するステップをさらに含む動作を実行させるように構成される、請求項９４に記載のコンピュータ可読記憶媒体。
【請求項９７】
前記記憶されたプロセッサ実行可能命令が、サーバのプロセッサに、
複数のコンピューティングデバイスのユーザのブラウジング習慣についての集約情報を収集するステップであって、前記集約情報が、前記複数のコンピューティングデバイス上で動作する計測手段を備えたウェブブラウザによって提供される、前記収集するステップと、
前記複数のコンピューティングデバイスのユーザのブラウジング習慣についての集約情報に基づいて、前記メタデータを生成するステップとをさらに含む動作を実行させるように構成される、請求項９４に記載のコンピュータ可読記憶媒体。
【請求項９８】
前記記憶されたプロセッサ実行可能命令が、サーバのプロセッサに、
ユーザがウェブページの第1の部分を他の部分よりも前に見る可能性が高いときを、前記複数のコンピューティングデバイスのユーザのブラウジング習慣についての前記集約情報から判定するステップと、
前記ウェブページの前記第1の部分を、前記ウェブページの他の部分よりも前に、前記コンピューティングデバイスへ送信するステップとをさらに含む動作を実行させるように構成される、請求項９７に記載のコンピュータ可読記憶媒体。
【請求項９９】
前記記憶されたプロセッサ実行可能命令が、サーバのプロセッサに、
他のユーザのブラウジング習慣を示すメタデータを生成するステップと、
前記メタデータに基づいて、ウェブページのどの部分が、前記ウェブページの他の部分よりも前にアクセスされる可能性が統計的に高いかを判定するステップと、
第2の部分は頻繁にアクセスされない可能性が高いと判定するステップと、
前記第2の部分が頻繁にアクセスされず、統計的にアクセスされる可能性のより高い部分よりも低い優先度でダウンロードされることを、前記メタデータにおいて伝えるステップとをさらに含む動作を実行させるように構成される、請求項９７に記載のコンピュータ可読記憶媒体。
【請求項１００】
前記記憶されたプロセッサ実行可能命令が、サーバのプロセッサに、
前記複数のコンピューティングデバイスの前記ユーザの複数の観測されたプロファイルを編成するステップと、
コンピューティングデバイスのユーザのブラウジング習慣を監視するステップと、
前記監視されたブラウジング習慣に基づいて、前記コンピューティングデバイスのユーザと一致する少なくとも1つの観測されたプロファイルに基づいて、メタデータを前記サーバから前記コンピューティングデバイスに送信するステップとをさらに含む動作を実行させるように構成される、請求項９７に記載のコンピュータ可読記憶媒体。
【請求項１０１】
コンピューティングデバイスからウェブページに対する要求を受信するための手段と、
前記コンピューティングデバイスから、ブラウザ支援サーバに対する、前記要求されたウェブページに関するメタデータに対する要求を受信するための手段であって、前記メタデータが、前記ウェブページのライブラリが、最も実行される可能性が高いと判定される部分を含むことを表現する、手段と、
前記要求されたウェブページと、前記コンピューティングデバイス上で前記要求されたウェブページをレンダリングするために前記コンピューティングデバイス上で前記要求されたウェブページのコードを解析し、分析し、または実行する際に前記コンピューティングデバイスを支援するように構成される前記メタデータと、前記メタデータに基づいて前記ライブラリの他の部分よりも前に最も実行される可能性が高いライブラリの部分とを、前記コンピューティングデバイスに送信するための手段と、
前記メタデータのサービス品質のフィードバックを提供するために、前記コンピューティングデバイスから、前記要求されたウェブページのデータの処理およびレンダリングの結果を受信するための手段とを含む、サーバ。
【請求項１０２】
複数のコンピューティングデバイスのユーザのウェブ使用習慣に関するウェブ使用情報を、前記複数のコンピューティングデバイスから受信するための手段と、
前記受信された使用情報と、前記複数のコンピューティングデバイスの前記ユーザのウェブ使用習慣の分析とに基づいて、前記メタデータを生成するための手段とをさらに含む、請求項１０１に記載のサーバ。
【請求項１０３】
前記要求されたウェブページ内の、JavaScript(登録商標)のバイナリのプリコンパイルされた変換物を、前記コンピューティングデバイスに送信するための手段をさらに含む、請求項１０１に記載のサーバ。
【請求項１０４】
複数のコンピューティングデバイスのユーザのブラウジング習慣についての集約情報を収集するための手段であって、前記集約情報が、前記複数のコンピューティングデバイス上で動作する計測手段を備えたウェブブラウザによって提供される、前記収集するための手段と、
前記複数のコンピューティングデバイスのユーザのブラウジング習慣についての集約情報に基づいて、前記メタデータを生成するための手段とをさらに含む、請求項１０１に記載のサーバ。
【請求項１０５】
ユーザがウェブページの第1の部分を他の部分よりも前に見る可能性が高いときを、前記複数のコンピューティングデバイスのユーザのブラウジング習慣についての前記集約情報から判定するための手段と、
前記ウェブページの前記第1の部分を、前記ウェブページの他の部分よりも前に、前記コンピューティングデバイスへ送信するための手段とをさらに含む、請求項１０４に記載のサーバ。
【請求項１０６】
他のユーザのブラウジング習慣を示すメタデータを生成するための手段と、
前記メタデータに基づいて、ウェブページのどの部分が、前記ウェブページの他の部分よりも前にアクセスされる可能性が統計的に高いかを判定するための手段と、
第2の部分は頻繁にアクセスされない可能性が高いと判定するための手段と、
前記第2の部分が頻繁にアクセスされず、統計的にアクセスされる可能性のより高い部分よりも低い優先度でダウンロードされることを、前記メタデータにおいて伝えるための手段とをさらに含む、請求項１０４に記載のサーバ。
【請求項１０７】
前記複数のコンピューティングデバイスの前記ユーザの複数の観測されたプロファイルを編成するための手段と、
コンピューティングデバイスのユーザのブラウジング習慣を監視するための手段と、
前記監視されたブラウジング習慣に基づいて、前記コンピューティングデバイスのユーザと一致する少なくとも1つの観測されたプロファイルに基づいて、メタデータを前記サーバから前記コンピューティングデバイスに送信するための手段とをさらに含む、請求項１０４に記載のサーバ。
【請求項１０８】
サーバと、
セルラー通信ネットワークと、
前記セルラー通信ネットワークを通じて前記サーバに相互接続されるコンピューティングデバイスとを含み、
前記コンピューティングデバイスが、
ディスプレイと、
内部メモリと、
前記ディスプレイおよび前記内部メモリに結合されたプロセッサとを含み、前記コンピューティングデバイスのプロセッサが、
ウェブページに対する要求を送信するステップと、
ブラウザ支援サーバに対する、前記要求されたウェブページに関するメタデータに対する要求を前記サーバに送信するステップであって、前記メタデータが、前記ウェブページのライブラリが、最も実行される可能性が高いと判定される部分を含むことを表現する、ステップと、
前記要求されたウェブページの前記ライブラリの他の部分よりも前にライブラリの前記部分をダウンロードおよび実行して、前記要求されたウェブページをレンダリングするステップと、
前記メタデータのサービス品質のフィードバックを提供するために、前記コンピューティングデバイス上で、前記要求されたウェブページの処理およびレンダリングの結果を、前記ブラウザ支援サーバに送信するステップとを含む動作を実行するように、プロセッサ実行可能命令によって構成され、
前記サーバが、
前記要求されたウェブページを解析し、分析し、または実行する際に前記コンピューティングデバイスを支援するように構成される前記メタデータを、前記コンピューティングデバイスに送信するステップと、
前記コンピューティングデバイスから、前記要求されたウェブページのデータの処理およびレンダリングの結果を受信するステップとを含む動作を実行するように構成される、システム。
【請求項１０９】
前記サーバが、
ライブラリが頻繁にダウンロードされていることを示すメタデータを生成するステップと、
前記要求されたウェブページの実行のために、他の部分よりも前に必要とされる可能性の高い第1の部分を前記ライブラリが有することを、前記メタデータにおいて示すステップとをさらに含む動作を実行するように構成され、
前記コンピューティングデバイスのプロセッサが、
前記メタデータに基づいて、前記ライブラリの前記第1の部分を前記ライブラリの他の部分よりも前にダウンロードするステップをさらに含む動作を実行するように、プロセッサ実行可能命令によって構成される、請求項１０８に記載のシステム。
【請求項１１０】
前記コンピューティングデバイスのプロセッサが、ブラウジングデータをインターネットブラウザから前記サーバに送信するステップをさらに含む動作を実行するように、プロセッサ実行可能命令によって構成され、
前記サーバが、前記コンピューティングデバイスから受信された前記ブラウジングデータから前記メタデータを生成するステップをさらに含む動作を実行するように構成される、請求項１０８に記載のシステム。
【請求項１１１】
前記サーバが、
複数のユーザからのブラウジング習慣を監視するステップと、
特定のウェブページがユーザによって頻繁にアクセスされていると判定するステップと、
ユーザの前記ブラウジング習慣に基づいて、ウェブページ要素をキャッシュに記憶するステップとをさらに含む動作を実行するように構成され、
前記コンピューティングデバイスのプロセッサが、前記ウェブページに対するユーザによる予測される要求よりも前に、前記キャッシュから前記ウェブページ要素をダウンロードするステップをさらに含む動作を実行するように、プロセッサ実行可能命令によって構成される、請求項１０８に記載のシステム。
【請求項１１２】
前記サーバが、
前記要求されたウェブページのJavaScript(登録商標)部分を処理して、ネイティブコードを生成するステップと、
前記ウェブページに対する前記要求に応答して、前記生成されたネイティブコードを前記コンピューティングデバイスに返すステップとをさらに含む動作を実行するように構成される、請求項１０８に記載のシステム。
【請求項１１３】
前記サーバが、
複数のウェブユーザからウェブ使用情報を収集するステップと、
前記収集されたウェブ使用情報に基づいて、前記メタデータを生成するステップとをさらに含む動作を実行するように構成される、請求項１０８に記載のシステム。
【請求項１１４】
ユーザのプロファイルに基づいて、前記コンピューティングデバイスの前記ユーザが前記要求されたウェブページの第1の部分を他の部分よりも前に見る可能性が高いと判定するステップをさらに含む動作を、前記サーバが実行するように構成され、前記コンピューティングデバイスに送信される前記メタデータが、前記ユーザが前記要求されたウェブページの前記第1の部分を見る可能性が高いことを示し、
前記コンピューティングデバイスのプロセッサが、前記要求されたウェブページの前記第1の部分を前記ウェブページの他の部分よりも前にダウンロードするステップをさらに含む動作を実行するように、プロセッサ実行可能命令によって構成される、請求項１１３に記載のシステム。
【請求項１１５】
前記サーバが前記要求されたウェブページをホストしない、請求項１０８に記載のシステム。
【請求項１１６】
サーバと、
セルラー通信ネットワークと、
前記セルラー通信ネットワークを通じて前記サーバに相互接続されるコンピューティングデバイスとを含み、
前記コンピューティングデバイスが、
ウェブページに対する要求を送信するための手段と、
ブラウザ支援サーバに対する、前記要求されたウェブページに関するメタデータに対する要求を前記サーバに送信するための手段であって、前記メタデータが、前記ウェブページのライブラリが、最も実行される可能性が高いと判定される部分を含むことを表現する、手段と、
前記要求されたウェブページの前記ライブラリの他の部分よりも前に最も実行される可能性が高いライブラリの前記部分をダウンロードおよび実行して、前記要求されたウェブページをレンダリングするための手段と、
前記メタデータのサービス品質のフィードバックを提供するために、前記要求されたウェブページの処理およびレンダリングの結果を、前記ブラウザ支援サーバに送信するための手段とを含み、
前記サーバが、
前記要求されたウェブページを解析し、分析し、または実行する際に前記コンピューティングデバイスを支援するように構成されるメタデータを、前記コンピューティングデバイスに送信するための手段と、
前記コンピューティングデバイスから、前記要求されたウェブページのデータの処理およびレンダリングの結果を受信するための手段とを含む、システム。
【請求項１１７】
前記サーバがさらに、
ライブラリが頻繁にダウンロードされていることを示すメタデータを生成するための手段と、
前記要求されたウェブページの実行のために、他の部分よりも前に必要とされる可能性の高い第1の部分を前記ライブラリが有することを、前記メタデータにおいて示すための手段とを含み、
前記コンピューティングデバイスがさらに、前記メタデータに基づいて、前記ライブラリの前記第1の部分を前記ライブラリの他の部分よりも前にダウンロードするための手段を含む、請求項１１６に記載のシステム。
【請求項１１８】
前記コンピューティングデバイスがさらに、ブラウジングデータをインターネットブラウザから前記サーバに送信するための手段を含み、
前記サーバがさらに、前記コンピューティングデバイスから受信された前記ブラウジングデータから前記メタデータを生成するための手段を含む、請求項１１６に記載のシステム。
【請求項１１９】
前記サーバがさらに、
複数のユーザからのブラウジング習慣を監視するための手段と、
特定のウェブページがユーザによって頻繁にアクセスされていると判定するための手段と、
ユーザの前記ブラウジング習慣に基づいて、ウェブページ要素をキャッシュに記憶するための手段とを含み、
前記コンピューティングデバイスがさらに、前記ウェブページに対するユーザによる予測される要求よりも前に、前記キャッシュから前記ウェブページ要素をダウンロードするための手段を含む、請求項１１６に記載のシステム。
【請求項１２０】
前記サーバがさらに、
前記要求されたウェブページのJavaScript(登録商標)部分を処理して、ネイティブコードを生成するための手段と、
前記ウェブページに対する前記要求に応答して、前記生成されたネイティブコードを前記コンピューティングデバイスに返すための手段とを含む、請求項１１６に記載のシステム。
【請求項１２１】
前記サーバがさらに、
複数のウェブユーザからウェブ使用情報を収集するための手段と、
前記収集されたウェブ使用情報に基づいて、前記メタデータを生成するための手段とを含む、請求項１１６に記載のシステム。
【請求項１２２】
前記サーバがさらに、ユーザのプロファイルに基づいて、前記コンピューティングデバイスの前記ユーザが前記要求されたウェブページの第1の部分を他の部分よりも前に見る可能性が高いと判定するための手段を含み、前記コンピューティングデバイスに送信される前記メタデータが、前記ユーザが前記要求されたウェブページの前記第1の部分を見る可能性が高いことを示し、
前記コンピューティングデバイスがさらに、前記要求されたウェブページの前記第1の部分を前記ウェブページの他の部分よりも前にダウンロードするための手段を含む、請求項１２１に記載のシステム。
【請求項１２３】
前記サーバが前記要求されたウェブページをホストしない、請求項１１６に記載のシステム。
【請求項１２４】
リモートコンピューティングデバイス上でのウェブページのレンダリングを支援するための方法であって、
前記コンピューティングデバイスからウェブページに対する要求を受信するステップと
ブラウザ支援サーバに対して、前記要求されたウェブページに関するメタデータに対する要求を前記コンピューティングデバイスから受信するステップであって、前記メタデータが、前記ウェブページのライブラリが、最も実行される可能性が高いと判定される部分を含むことを表現する、ステップと、
前記要求されたウェブページと、前記コンピューティングデバイス上で前記要求されたウェブページをレンダリングするために前記コンピューティングデバイス上で前記要求されたウェブページのコードを解析し、分析し、または実行する際に前記コンピューティングデバイスを支援するように構成される前記メタデータと、前記メタデータに基づいて前記ライブラリの他の部分よりも前に最も実行される可能性が高いライブラリの部分とを、前記コンピューティングデバイスに送信するステップと、
前記メタデータのサービス品質のフィードバックを提供するために、前記コンピューティングデバイスから、前記要求されたウェブページのデータの処理およびレンダリングの結果を受信するステップとを含む、方法。
【請求項１２５】
複数のコンピューティングデバイスのユーザのウェブ使用習慣に関するウェブ使用情報を、前記複数のコンピューティングデバイスから受信するステップと、
前記受信された使用情報と、前記複数のコンピューティングデバイスの前記ユーザのウェブ使用習慣の分析とに基づいて、前記メタデータを生成するステップとをさらに含む、請求項１２４に記載の方法。
【請求項１２６】
前記要求されたウェブページ内の、JavaScript(登録商標)のバイナリのプリコンパイルされた変換物を、前記コンピューティングデバイスに送信する、請求項１２４に記載の方法。
【請求項１２７】
複数のコンピューティングデバイスのユーザのブラウジング習慣についての集約情報を収集するステップであって、前記集約情報が、前記複数のコンピューティングデバイス上で動作する計測手段を備えたウェブブラウザによって提供される、ステップと、
前記複数のコンピューティングデバイスのユーザのブラウジング習慣についての集約情報に基づいて、前記メタデータを生成するステップとをさらに含む、請求項１２４に記載の方法。
【請求項１２８】
ユーザがウェブページの第1の部分を他の部分よりも前に見る可能性が高いときを、前記複数のコンピューティングデバイスのユーザのブラウジング習慣についての前記集約情報から判定するステップと、
前記ウェブページの前記第1の部分を、前記ウェブページの他の部分よりも前に、前記コンピューティングデバイスへ送信するステップとをさらに含む、請求項１２７に記載の方法。
【請求項１２９】
他のユーザのブラウジング習慣を示すメタデータを生成するステップと、
前記メタデータに基づいて、ウェブページのどの部分が、前記ウェブページの他の部分よりも前にアクセスされる可能性が統計的に高いかを判定するステップと、
第2の部分は頻繁にアクセスされない可能性が高いと判定するステップと、
前記第2の部分が頻繁にアクセスされず、統計的にアクセスされる可能性のより高い部分よりも低い優先度でダウンロードされることを、前記メタデータにおいて伝えるステップとをさらに含む、請求項１２７に記載の方法。
【請求項１３０】
前記複数のコンピューティングデバイスの前記ユーザの複数の観測されたプロファイルを編成するステップと、
コンピューティングデバイスのユーザのブラウジング習慣を監視するステップと、
前記監視されたブラウジング習慣に基づいて、前記コンピューティングデバイスのユーザと一致する少なくとも1つの観測されたプロファイルに基づいて、メタデータを前記サーバから前記コンピューティングデバイスに送信するステップとをさらに含む、請求項１２７に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は全般にコンピューティングデバイスに関する。より詳細には、本発明は、コンピューティングデバイス上のリソースを節約するためのヒントをウェブブラウザに与え、ウェブブラウザの次の動作を予測するための方法に関する。
【背景技術】
【０００２】
人々はますます、モバイルコンピューティングデバイスを使用してメディアを利用している。一般に、モバイルコンピューティングデバイスでは、バッテリーの持続時間が限られている。バッテリーを使い果たすと、モバイルデバイスは停止し、電源コンセントが見つかるまで、または新たなバッテリーが提供されるまで、再起動できない。バッテリーが消耗している間、ユーザはモバイルデバイスを使用できないので、上記のことはユーザを非常に苛立たせるものであり得る。加えて、モバイルデバイスが非効率であることがある。モバイルデバイスは、ユーザが知らないうちに、モバイル帯域幅、処理リソース、およびバッテリーリソースを浪費する。たとえば、モバイルデバイスのブラウザは、ライブラリのような非常に大きなファイルを、ライブラリの一部しか必要ではない場合にダウンロードすることがある。加えて、ユーザは、ウェブページをダウンロードするのに長時間待つのを好まず、ウェブサイトまたはメディアソースがすぐに表示されない時は苛立つようになる。
【０００３】
一部のユーザは一般に、自身のモバイルコンピューティングシステムの何らかの日常的なブラウジングルーティンまたは習慣に従う。たとえば、ユーザは、ウェブページのある部分(たとえば、株式市況またはスポーツのスコア)に、他の部分よりも頻繁にアクセスすることがある。多くのユーザは、メディアを利用する際に何らかの日常的な習慣に従う。たとえば、最近起きた報道価値のある出来事がある場合、多くのユーザが同じウェブページにアクセスし、その報道価値のあるコンテンツを探すであろう。
【発明の概要】
【課題を解決するための手段】
【０００４】
方法およびデバイスは、コンピューティングデバイス上での改善されたウェブブラウジングを可能にする。方法は、コンピューティングデバイスからウェブページに対する要求を送信する、プロセッサを含む。プロセッサは、コンピューティングデバイスからブラウザアシスタントに要求を送信する。ブラウザアシスタントは、メタデータをコンピューティングデバイスに返す。メタデータは、ウェブページに対する要求を解析し、分析し、または実行する際、コンピューティングデバイスを支援する。
【０００５】
別の態様では、システムは、サーバと、少なくとも2つの異なるコンピューティングデバイス上で動作可能な少なくとも2つのウェブブラウザとを含む。各ウェブブラウザは、ウェブページを処理しレンダリングした結果をサーバに報告する。サーバはデータを集約し、サーバは集約されたウェブブラウザのデータからメタデータを生成する。サーバは、メタデータを少なくとも1つのコンピューティングデバイスに送信する。コンピューティングデバイスは、メタデータの少なくともある部分を使用して、ウェブページをレンダリングする。
【０００６】
本出願のある態様は、コンピューティングデバイスからウェブページに対する要求を送信するステップと、ブラウザアシスタントに対するコンピューティングデバイスからの要求を送信するステップと、メタデータをコンピューティングデバイスに返して、ウェブページに対する要求を解析し、分析し、または実行する際にコンピューティングデバイスを支援するステップとを含む、コンピューティングデバイス上でウェブページをレンダリングするための方法を含む。ある態様では、コンピューティングデバイスに返されたメタデータは、JavaScript(登録商標)関数の実行確率、データを解析するためのASTデータ、スクリプトトークンデータ、字句情報、コンピューティングデバイスを支援するためのサーバにおいて処理されたデータから返されたバイナリコード、コンピューティングデバイスにおいてCSSウェブページのデータを処理するのを支援するためのCSSメタデータ、コンピューティングデバイスにおいてJavaScript(登録商標)ウェブページのデータを処理するのを支援するためのJavaScript(登録商標)メタデータ、コンピューティングデバイスにおいてHTMLウェブページのデータを処理するのを支援するためのHTMLメタデータ、およびこれらの組合せのうちの任意の1つであり得るデータを含み得る。ある態様では、コンピューティングデバイスに返されるメタデータは、複数の観測されたユーザのブラウジング統計を含んでよく、方法はさらに、複数の観測されたブラウジング統計を使用して、コンピューティングデバイスのウェブページのある部分を、他の部分よりも前にロードするのを支援するステップを含み得る。ある態様では、コンピューティングデバイスに返されるメタデータは、所定の実行の確率を有するコードのある部分に関する統計を含み得る。ある態様では、コンピューティングデバイスに返されるメタデータは、サーバ上で実行されるJavaScript(登録商標)コードから得られる変換されたバイナリコードを含んでよく、方法はさらに、バイナリコードをコンピューティングデバイスに送信して、サーバにおける処理を最大化して、コンピューティングデバイスにおける処理を最小化するステップを含み得る。
【０００７】
ある態様では、方法はさらに、コンピューティングデバイス上のウェブブラウザが最初に人気のある部分をロードするように、人気のあるウェブページの部分と相関する分析を送信するステップを含み得る。態様の方法はさらに、コンピューティングデバイスのユーザの習慣を収集するステップと、ユーザによって頻繁にアクセスされるウェブページ要素をメモリにプリロードするステップとを含み得る。態様の方法はさらに、複数のウェブユーザに人気のあるデータに対応する、複数のユーザからの使用情報をサーバにおいて収集するステップと、使用情報および複数のウェブユーザの習慣の分析に基づいてメタデータを生成するステップとを含み得る。態様の方法はさらに、ローカルネットワークコンピュータからコンピューティングデバイスにメタデータを送信するステップと、他のウェブユーザに人気のあるデータに対応する、複数のユーザからの使用情報を収集するステップと、ローカルネットワークコンピュータを使用してメタデータを生成するステップとを含み得る。態様の方法はさらに、ユーザがウェブブラウザを使用するときに複数のユーザに基づくブラウジング習慣についての集約情報を収集するステップと、計測手段を備えたウェブブラウザを使用して複数のユーザを監視して、ブラウジング習慣を生成するステップと、複数のユーザのブラウジング習慣に基づいてメタデータを生成するステップとを含み得る。
【０００８】
態様の方法はさらに、ライブラリが頻繁にダウンロードされることを示すメタデータを生成するステップと、観測された統計情報に基づいて、実行のために他の部分よりも前に統計的に必要とされる可能性の高い部分をライブラリが有することをメタデータにおいて表現するステップと、メタデータに基づいてライブラリのその部分を最初にダウンロードするステップとを含み得る。ある態様では、方法はさらに、統計データに基づいて、最も可能性の高い実行可能ライブラリ部分をライブラリが有すると判定するステップと、ライブラリの他の部分よりも前に、最も可能性の高い実行可能ライブラリ部分を最初にダウンロードするステップとを含み得る。
【０００９】
態様の方法はさらに、ブラウジングの間に複数のユーザを監視するステップと、ある統計上の割合のユーザがウェブページの第1の部分を他の部分よりも前に見る可能性が高いことを示すメタデータを生成するステップと、ウェブページの他の部分よりも前に第1の部分をコンピューティングデバイスに送信するステップとを含み得る。ある態様では、メタデータは、コンピューティングデバイスのユーザのプロファイルを含んでよく、方法はさらに、プロファイルに基づいて、ユーザがウェブページの第1の部分を他の部分よりも前に見る可能性が高いという統計的な割合を示すメタデータを生成するステップと、ユーザがウェブページの第2の部分を見る可能性が高くないという統計的な割合を示すメタデータを生成するステップと、ウェブページの他の部分よりも前に第1の部分を最初にコンピューティングデバイスにダウンロードするステップと、第1の部分からある期間後、第2の部分をダウンロードするステップとを含み得る。態様の方法はさらに、他のユーザのブラウジングの習慣を示すメタデータを生成するステップと、メタデータに基づいて、ウェブページのどの部分がウェブページの他の部分よりも前に統計的にアクセスされる可能性が高いかを判定するステップと、第2の部分が頻繁にはアクセスされない可能性が高いと判定するステップと、第2の部分が頻繁にはアクセスされず、統計的にアクセスされる可能性が高い部分よりも低い優先度でダウンロードされることをメタデータにおいて伝えるステップとを含み得る。
【００１０】
態様の方法はさらに、ワイヤレスネットワークを介してサーバにリンクするステップと、ブラウザをサーバと接続するステップと、コンピューティングデバイスが使用するための情報をブラウザから集めるステップとを含み得る。
【００１１】
態様の方法はさらに、JavaScript(登録商標)を含み得る要求を解析し、分析し、または実行するために、ウェブブラウザのメタデータを使用してヒントを提供するステップと、JavaScript(登録商標)はコンピューティングデバイスにおいて処理するのに非効率であると判定するステップと、JavaScript(登録商標)のバイナリのプリコンパイルされた変換物を送信するステップとを含み得る。
【００１２】
態様の方法はさらに、複数のウェブユーザのブラウジング習慣に関する統計を集約するステップと、メタデータ中でその統計を送達するステップと、ウェブページがコンピューティングデバイスにおいて要求される前に、統計的に人気のあるウェブページをプリロードすることによって、モバイルリソースを節約するためにその統計を使用するステップと、人気のあるウェブページの部分をダウンロードするステップと、モバイルリソースを節約するために、人気のないウェブページの第2の部分のダウンロードを省略するステップとを含み得る。態様の方法はさらに、インターネットブラウザからのブラウジングデータをサーバに送信するステップと、サーバ中のブラウジングデータからメタデータを生成するステップとを含み得る。態様の方法はさらに、計測的ブラウザからのデータをサーバに送信するステップと、そのデータからメタデータを生成するステップとを含み得る。ある態様では、コンピューティングデバイスに返されたメタデータは、コンピューティングデバイス上のウェブブラウザが人気のある部分を最初にロードするように、ピアデバイスに接続されたコンピューティングデバイスに、人気のあるウェブページの部分を相関付けるメタデータを、ピアデバイスからコンピューティングデバイスに返すステップを含み得る。
【００１３】
態様の方法はさらに、第2のコンピューティングデバイスのブラウジング習慣のクライアント側監視システムを設けるステップと、ブラウジング習慣をサーバに送信するステップと、第2のコンピューティングデバイスのブラウジング習慣のクライアント側監視システムに基づいて、メタデータをサーバからコンピューティングデバイスに送信するステップとを含み得る。態様の方法はさらに、要求と要求に対する応答とを含むメタデータをブラウジング習慣から生成するステップと、コンピューティングデバイスのピアであるピアデバイスにメタデータを提供するステップとを含み得る。
【００１４】
態様の方法はさらに、複数のユーザのブラウジング習慣を監視するステップと、ブラウジング習慣をサーバに送信するステップと、監視されたブラウジング習慣に基づいて、複数のユーザの複数の観測されたプロファイルを編成するステップと、コンピューティングデバイスのユーザのブラウジング習慣を監視するステップと、コンピューティングデバイスのユーザのブラウジング習慣と一致する少なくとも1つの観測されたプロファイルに基づいて、メタデータをサーバからコンピューティングデバイスに返すステップとを含み得る。
【００１５】
態様の方法はさらに、コードの第1の部分が第2の部分よりも多く分析され、ダウンロードされ、解析され、または実行されることを、メタデータ中で表現するステップと、ライブラリの第1の部分を第2の部分よりも前に並べ替えてダウンロードするステップとを含み得る。態様の方法はさらに、実行される可能性が最も高いと判定された部分を含むライブラリを、メタデータ中で表現するステップと、ライブラリの他の部分よりも前に実行される可能性が最も高いライブラリ部分をダウンロードするステップとを含み得る。
【００１６】
態様の方法はさらに、サーバ上に位置するブラウザアシスタントに対する要求を送信するステップと、ウェブサイトがコンピューティングデバイスによって頻繁にアクセスされると判定するステップと、更新されたウェブサイトのデータをコンピューティングデバイスにアップロードするステップとを含み得る。態様の方法はさらに、メタデータに含まれる統計的なブラウジング習慣に基づいて、コンピューティングデバイスを使用して、ウェブページの第1の部分を第2の部分よりも前にダウンロードするステップを含み得る。態様の方法はさらに、コンピューティングデバイスを使用してウェブページの部分をプリロードするステップであって、このプリロードされる部分が、メタデータに含まれる統計的なブラウジング習慣を使用して特定される、ステップを含み得る。
【００１７】
態様の方法はさらに、複数のユーザからのブラウジング習慣を監視するステップと、ウェブページ要素を含むウェブページが頻繁にアクセスされると判定するステップと、ブラウジング習慣に基づいてキャッシュにウェブページ要素を記憶し、ウェブページ要素がコンピューティングデバイス上で削除されるのを防ぐステップと、予測される要求よりも前にキャッシュからウェブページ要素をダウンロードするステップとを含み得る。ある態様では、方法はさらに、単一のユーザのブラウジング習慣から導出されるブラウジング習慣を監視するステップと、キャッシュに記憶されるウェブページを更新するステップと、要求を伴わずに定期的な間隔で、キャッシュ上の要素をコンピューティングデバイスにプッシュするステップと、キャッシュに記憶されるウェブページを更新するステップと、キャッシュからの要素をコンピューティングデバイスに渡すステップとを含み得る。態様の方法はさらに、メタデータをプリキャッシュすることによって前もってメタデータをコンピューティングデバイスに返し、要求されたウェブページを解析し、分析し、または実行する際にコンピューティングデバイスを支援するステップを含み得る。
【００１８】
態様の方法はさらに、必要な部分を実行しウェブページ全体の実行を見送ることによって、ウェブページをより効率的な方式でコンピューティングデバイスが実行するのを可能にする、メタデータを返すステップを含み得る。
【００１９】
様々な態様では、ブラウザアシスタントは、ウェブページに対する要求に応答するサーバと同じサーバ上、ピアコンピュータデバイス上、または別のネットワークデバイス上に位置し得る。
【００２０】
態様の方法はさらに、ウェブページに対する要求を送信するステップであって、ウェブページが複数の部分を含むステップと、ブラウザアシスタントを使用して複数の部分を処理し、ネイティブコードを得るステップと、ネイティブコードをコンピューティングデバイスに返すステップであって、複数の部分がJavaScript(登録商標)を含むステップとを含み得る。
【００２１】
態様の方法はさらに、データに対する要求を送信するステップと、要求を第1のデバイスに送信するステップと、メタデータを第2のデバイスに返すステップと、要求および要求に対する応答の監視された経験的なデータに基づいて、統計的に実行の確率が高いウェブページの部分をメタデータ中で表現するステップとを含み得る。
【００２２】
様々な態様はさらに、上で説明された態様の方法の動作を実行するようにプロセッサ実行可能命令によって構成されたプロセッサを有する、コンピューティングデバイスを含み得る。様々な態様はさらに、上で説明された態様の方法の機能を実行するための手段を含む、コンピューティングデバイスを含み得る。様々な態様はさらに、上で説明された態様の方法の動作をコンピューティングデバイスのプロセッサに実行させるように構成されるプロセッサ実行可能命令を記憶した、非一時的プロセッサ可読記憶媒体を含み得る。
【００２３】
様々な態様はさらに、上で説明された態様の方法の動作を実行するようにプロセッサ実行可能命令によって構成されたサーバのプロセッサを有する、サーバを含み得る。様々な態様はさらに、上で説明された態様の方法の機能を実行するための手段を含む、サーバを含み得る。様々な態様はさらに、上で説明された態様の方法の動作をサーバのプロセッサに実行させるように構成されるプロセッサ実行可能命令を記憶した、非一時的プロセッサ可読記憶媒体を含み得る。
【００２４】
様々な態様はさらに、サーバと、セルラー通信ネットワークと、セルラー通信ネットワークを介してサーバと通信しているコンピューティングデバイス(たとえば、携帯電話)とを含む、システムを含み、サーバおよびコンピューティングデバイスは、上で説明された態様の方法の動作を実行するように構成される。
【００２５】
本明細書に組み込まれ、本明細書の一部をなす添付の図面は、本発明の例示的な態様を示し、上記の全般的な説明および下記の発明を実施するための形態とともに、本発明の特徴を説明するのに役立つ。
【図面の簡単な説明】
【００２６】
【図１】モバイルコンピューティングデバイスと通信するためのシステムの通信システムブロック図である。
【図２】ウェブブラウザの性能を改善するために分析を使用する、ある態様の方法の処理流れ図である。
【図３】ブラウザアシスタントサーバと通信するコンピューティングデバイスを示す図である。
【図４】コードのある所定の部分が、他の部分よりも前にダウンロードされ得るという、高い実行の確率をどのように有するかを示す図である。
【図５Ａ】ブラウザアシスタントサーバからのウェブページについてのメタデータを要求するための、ある態様の方法の処理流れ図である。
【図５Ｂ】計測手段を備えたブラウザからのウェブページについてのメタデータを要求するための、ある態様の方法の処理流れ図である。
【図５Ｃ】ウェブブラウザからのウェブページについてのメタデータを要求するための、ある態様の方法の処理流れ図である。
【図６】ピアデバイスからのウェブページについてのメタデータを要求するための、ある態様の方法の処理流れ図である。
【図７】モバイル通信デバイスにリンクされたホームネットワークコンピュータからのウェブページについてのメタデータを要求して、モバイル通信デバイスに対する支援を提供するための、ある態様の方法の処理流れ図である。
【図８】ウェブページをレンダリングするためのヒントをモバイル通信デバイスに送信する、サーバの通信システムブロック図である。
【図９】多数の異なるユーザのブラウジング習慣からデータを集めて、コンピューティングデバイスにプッシュされるメタデータを作成してウェブページをレンダリングするためのヒントを提供するための、ある態様の方法の処理流れ図である。
【図１０】多数の異なるユーザのブラウジング習慣からデータを集めて、コンピューティングデバイスからプルされるメタデータを作成してヒントを提供するための、ある態様の方法の処理流れ図である。
【図１１】サーバ上の分析モジュールを使用してメタデータを作成するための、ある態様の方法の処理流れ図である。
【図１２】モバイル通信デバイスの代わりに目的のサービスを提供し、モバイル通信デバイスのサーバ上に人気のあるデータをキャッシュするための、ある態様の方法の処理流れ図である。
【図１３】複数のユーザからのJavaScript(登録商標)実行プロファイルのメタデータを作成してモバイル通信デバイスにヒントを提供するための、ある態様の方法の処理流れ図である。
【図１４】モバイル通信デバイスの代わりに目的のサービスを提供し、人気のあるデータをキャッシュし、モバイル通信デバイスのために頻繁にアクセスされるキャッシュされたデータを保持するための、ある態様の方法の処理流れ図である。
【図１５】モバイル通信デバイスの代わりに目的のサービスを提供し、サーバ上に人気のあるデータをキャッシュし、キャッシュされたデータを補強するための、ある態様の方法の処理流れ図である。
【図１６】頻繁に使用されるキャッシュデータをモバイル通信デバイス提供する、ブラウザ支援サーバを示す図である。
【図１７】JavaScript(登録商標)を解析するためのヒントを有するメタデータを生成するための、ある態様の方法の処理流れ図である。
【図１８】データを処理し、処理されたJavaScript(登録商標)データのプリコンパイルされたバイナリファイルをモバイル通信デバイスに送信してJavaScript(登録商標)データの処理を回避する、サーバを示す図である。
【図１９】サーバにおいてデータを処理し、処理されたデータのプリコンパイルされたバイナリファイルをモバイル通信デバイスに提供してデータをローカルに処理するのを回避するための、ある態様の方法の処理流れ図である。
【図２０】モバイル通信デバイスが、ソフトウェアライブラリ全体をダウンロードすることなく、最も頻繁に使用されるライブラリ部分をダウンロードできるように、最も頻繁に使用されるライブラリ部分を特定するメタデータを提供するための、ある態様の方法の処理流れ図である。
【図２１】モバイル通信デバイスが、最も見られている部分を別の部分よりも前にダウンロードできるように、最も見られているウェブページの部分のメタデータを提供するための、ある態様の方法の処理流れ図である。
【図２２】様々な態様とともに使用するのに適切な、モバイルコンピューティングデバイスのコンポーネントブロック図である。
【図２３】サーバコンピューティングデバイスのコンポーネントブロック図である。
【図２４】ノートブックコンピューティングデバイスのコンポーネントブロック図である。
【発明を実施するための形態】
【００２７】
様々な態様が、添付の図面を参照して詳細に説明される。可能な場合はいつでも、同じまたは同様の部分を指すのに、図面全体にわたって同じ参照番号を使用する。特定の例および実装形態に行われる参照は、説明を目的とし、本発明の範囲または本特許請求の範囲を限定することは意図されない。
【００２８】
「例示的な」という言葉は、「例、実例、または例示として機能すること」を意味するために本明細書で使用される。本明細書で「例示的」として説明されるいかなる実装形態も、必ずしも他の実装形態よりも有利であると解釈されるべきではない。
【００２９】
本明細書で使用される「コンピューティングデバイス」、「モバイルデバイス」、「モバイル通信デバイス」および「ハンドヘルドデバイス」という用語は、セルラー電話、携帯情報端末(PDA)、パームトップコンピュータ、ワイヤレス電子メール受信機、マルチメディアインターネット対応セルラー電話、全地球測位システム(GPS)受信機、ワイヤレスゲームコントローラ、タブレットコンピュータ、ノートブックコンピュータ、ネットブックコンピュータ、ワイヤレス電子メールデバイス、ならびに、プログラマブルプロセッサおよびメモリを含み通信ネットワークと通信するように構成される同様の個人電子デバイスのうちの、いずれか1つまたはすべてを指す。
【００３０】
本明細書で使用される「コンピュータ」、「パーソナルコンピュータ」、および「コンピューティングデバイス」という用語は、既知の、または今後開発される任意のプログラマブルコンピュータシステムを指す。ある態様では、コンピュータは、本明細書で説明されるようなネットワークに結合される。コンピュータシステムは、本明細書で説明される処理および動作を実行するためのソフトウェア命令によって構成され得る。
【００３１】
本明細書で使用される場合、「コンポーネント」、「モジュール」、および「システム」などの用語は、ハードウェア、ハードウェアとソフトウェアの組合せ、ソフトウェア、実行中のソフトウェアを問わず、コンピュータ関連のエンティティを指すことが意図されている。たとえば、コンポーネントは、プロセッサ上で実行されるプロセス、プロセッサ、オブジェクト、実行ファイル、実行スレッド、プログラム、および/またはコンピュータであり得るが、これらに限定されない。例として、サーバ上で実行されるアプリケーションとそのサーバの両方が、コンポーネントであり得る。1つまたは複数のコンポーネントは、プロセスおよび/または実行スレッドの中に存在してよく、1つのコンポーネントは、1つのコンピュータに局在してよく、かつ/または2つ以上のコンピュータに分散してよい。
【００３２】
本明細書で説明される様々な態様は、メディアのレンダリング、特に、モバイルデバイスのようなコンピューティングデバイス上でのウェブページのレンダリングを改善するために機械学習技術を使用する、方法およびシステムを提供する。一態様では、クラウドサービス分散型ネットワークが、ブラウザの次の動作を予測し、モバイルデバイスにメタデータを提供してモバイルデバイスにヒントを与えることによって、ブラウザ体験を改善する。モバイルデバイスは、リソースが制限され制約されている。モバイルデバイスは、比較的小さなメモリを有し、ダウンロードされるデータは定期的に消去または上書きされる。加えて、モバイルデバイスのバッテリー電力の量は有限である。一般に、バッテリー電力は、投機的タスクで無駄にされてはならず、性能を向上させ情報を直ちにユーザに提供するために使用され得る。ブラウザが、モバイルリソースを節約するためにより効率的に動作すること、または即時のアクセスに対してメディアを準備するために先回りして動作することを可能にするために、ユーザの習慣がブラウザによって使用され得る。たとえば、ウェブブラウザは、ユーザのブラウジング習慣に基づいてコンテンツを効率的にダウンロードし処理することができ、これは、ロード時間をより短くできバッテリー持続時間を延ばせるので有利である。
【００３３】
ブラウザアシスタントは、ユーザのブラウジング習慣を監視することによってキャッシュの挙動を改善することができ、または、多数の異なるユーザのブラウジング習慣を監視することができる。ブラウザアシスタントは、モバイルデバイスにヒントを与えることができ、キャッシュの挙動を改善することができる。たとえば、サーバは、定期的に訪問される事前に処理されたウェブページを、モバイルデバイスにプッシュすることができる。
【００３４】
別の態様では、モバイルデバイスは、頻繁に使用またはアクセスされるあるブラウジングデータがメモリの制約により削除されようとしていることを検出することができる。これが起きると、モバイルデバイスは、サーバから目的のサービスを要求し、モバイルデバイスが後で使用するために、頻繁にアクセスされるデータをサーバにアップロードすることができる。サーバは、アップロードされた情報を標識し、後日ないしは後にデータをモバイルデバイスに返すことができる。別の態様では、サーバは、データを最適化し、最適化されたデータをモバイルデバイスに返すことができる。
【００３５】
別の態様では、システムは、インターネットおよびブラウザ支援サーバに動作可能に接続された、モバイルデバイスを含み得る。ブラウザ支援サーバはまた、インターネットおよびモバイルデバイスに動作可能に接続され得る。ブラウザ支援サーバは、ウェブサイトに関するメタデータをモバイルデバイスに送達することができる。このメタデータは、モバイルデバイスから送信されたウェブページに対する要求をどうすればモバイルデバイスが効率的に処理できるかについての、ヒントを与えることができる。たとえば、メタデータは、モバイルデバイスがユーザの次のブラウジング活動を予測することを可能にする、情報を含み得る。
【００３６】
メタデータは、モバイルデバイスまたはサーバが、ブラウザの要求をより良好に解析し、実行し、または分析することを可能にする、任意の情報であってよい。たとえば、メタデータは、XMLコード、Ajaxコード、またはjSAWコードであってよい。ある態様では、モバイルデバイスは、ウェブページをレンダリングするとき、ブラウザ支援サーバからのメタデータを検証することができる。メタデータは、ウェブページの最適化されたブラウザによる実行のための計画を提供することができる。ブラウザは、メタデータを使用して、要求されたウェブページをより効率的に処理することができる。これにより、実行時間が短くなり、電力使用量が少なくなり得る。たとえば、メタデータは、あるデータが頻繁にアクセスされる、またはユーザに人気があるという情報を提供することができる。たとえば、プッシュ/プルフレームワークを使用して、通常は消去されるであろう、人気のあるまたは頻繁に使用されるデータが、モバイルデバイスから、サーバ上に位置するキャッシュメモリにアップロードされ得る。データは動的にキャッシュされてよく、必要なときにモバイルデバイスによって読み取られ得る。
【００３７】
ある態様では、メタデータは、JavaScript(登録商標)メタデータを含み得る。メタデータは、JavaScript(登録商標)関数の何らかの句の確率、スクリプトトークン、字句情報、AST解析情報、すでにコンパイルされたバイナリデータ、実行時データ、または、モバイルデバイスにおいてJavaScript(登録商標)要求を処理する際に時間を節約するための他のヒントを含む、有用な情報を提供することができる。たとえば、メタデータは、簡略化された選択器または最適化された選択器、統合方式、または、CSSウェブページのデータを処理し、解析し、実行し、もしくはレンダリングするのを支援するための任意の他の情報のような情報を含む、CSSメタデータを含み得る。別の態様では、メタデータは、並列方式でどのようにDOMツリーを処理するかについてのヒントを含み得る。
【００３８】
ある態様では、メタデータは、分割されたコードのヒントを伴うHTMLメタデータを含み得る。ヒントは、順番にではなく並列に、符号化されたページを処理するように、モバイルデバイスに指示することができる。ある態様では、メタデータは、多数の他のユーザからのデータを含んでよく、他のユーザのブラウザ習慣の観測から得られる分析またはパターンを表現してよい。
【００３９】
ある態様では、分析は、あるウェブページ要素が高い実行の確率を有すること、または他のユーザに非常に人気がある可能性があることを、示し得る。モバイルデバイスは、ユーザが何らかの時点でそのウェブページ要素をダウンロードする可能性があるという推測に基づいて、そのウェブページ要素をダウンロードすることができる。たとえば、分析を使用して、メタデータは、高い実行の確率を有する第1の部分をライブラリが含むことを示し得る。そのライブラリの第1の部分はライブラリの他の部分と比較して高い実行の確率を有するので、ライブラリの第1の部分は直ちに送信またはアクセスされるべきであることを、メタデータは示し得る。別の第2の部分は、統計情報に基づいて、低い実行の確率を示し得る。第2のライブラリが低い実行の確率を有することをメタデータが示すので、メタデータは、第2のライブラリ部分が後の時点までダウンロードされる必要のないことを示し得る。
【００４０】
ある態様では、分析を使用するブラウザ支援サーバは、メタデータを生成することができる。ブラウザ支援サーバは、群衆の習慣からの関係を観測することができる。メタデータは、あるウェブページが頻繁にアクセスされることを示し得る。メタデータは、あるウェブページ要素、たとえば、頻繁にアクセスされるウェブページ上に位置するテキストが、ウェブページへの訪問者の90パーセントによって見られていることを示し得る。習慣情報はまた、多数のユーザの観測されたブラウジング習慣に基づいて、ブラウザ支援サーバによってまとめられ得る。
【００４１】
さらに別の態様では、メタデータは、モバイル通信デバイス上でプリキャッシュされ得るので、メタデータは、前もってモバイル通信デバイスに提供され得る。たとえば、メタデータは、ユーザが情報を必要とし得るときよりも前の所定の期間に、たとえば、ネットワーク使用量が少ない晩または早朝に、契約しているモバイルデバイスに送信され得る。あるいは、メタデータは、たとえば監視されているユーザがアクセスする上位100個のウェブサイト、またはモバイル通信デバイスのユーザがアクセスする上位100個のウェブサイトについて、同期手順の一部として送信され得る。いくつかの態様では、メタデータは、オンデマンドで与えられなくてもよく、ウェブページに対する要求の前、要求の間、または要求の後に与えられてよい。一態様では、メタデータは、ウェブコンテンツに対する変化の割合が低いことがあるので、所定の間隔で、ユーザのコンピュータまたはモバイルデバイスにプリキャッシュされ得る。たとえば、メタデータは、ピークではない時間帯、たとえば深夜に、または定期的に、たとえば毎週、提供され得る。
【００４２】
報道価値のある出来事が起きると、ユーザのウェブブラウジングが監視され得る。ユーザのウェブブラウジング習慣は、ある特定の記事または写真画像を見るためにユーザが要求をウェブブラウザからニュースウェブサイトに送っていることを示し得る。モバイルデバイスのユーザの固有のブラウジング習慣に基づいて、ウェブページ要素は、モバイルデバイスのユーザがウェブページ要素も見る可能性もあるという、高い確率を有し得る。ブラウザ支援サーバからのメタデータは、モバイルデバイスが、ユーザが何らかの時点でテキストおよびウェブページをダウンロードするであろうという推測に基づいてコンテンツをダウンロードすることを可能にし得る。
【００４３】
別の態様では、ブラウザ支援サーバは、特定のウェブページの多数のユーザによって統計的に実行された関数についての情報を集めることができる。それに応答して、ブラウザ支援サーバは、統計情報のインデックスを作成することができる。ブラウザ支援サーバは、この統計情報を使用して、メタデータを多数のモバイルデバイスに送達し、モバイルデバイスのユーザのウェブブラウジング体験を向上させることができる。
【００４４】
ある態様では、HTMLコード、CSS、第1のJavaScript(登録商標)関数、第2のJavaScript(登録商標)関数、および他のコードを含むコードが生成され得る。ブラウザ支援サーバは、第1のJavaScript(登録商標)関数および第2のJavaScript(登録商標)関数が、ウェブページ上の他の関数よりも多く、多数のユーザによって実行されたことを観測し得る。ブラウザ支援サーバは、第1のJavaScript(登録商標)関数および第2のJavaScript(登録商標)関数の実行の頻度または確率に関する統計情報を含むメタデータを、モバイルデバイスに提供することができる。メタデータは、モバイルデバイスが、メタデータを使用してウェブブラウザの性能を最適化することを可能にし得る。
【００４５】
別の態様では、モバイルデバイスは、ブラウザ支援サーバからの分析情報を要求することができる。分析情報は、特定の要求されたウェブページに対するものであってよい。ブラウザ支援サーバへの要求は、コンテキスト情報、ユーザプロファイル情報、通信情報、モバイルデバイス情報、および/またはウェブブラウザ情報を含み得る。要求は、ブラウザ支援サーバが、ユーザに関連するメタデータを返すことを可能にし得る。
【００４６】
別の態様では、モバイルデバイスは、目的のサービスを提供され得る。モバイル通信デバイスは、ブラウザ支援サーバ上にキャッシュを有してよく、モバイルデバイスは、キャッシュにデータを記憶してよい。そのデータに対する今後の要求がより高速に提供され得るように、キャッシュは、データを透過的に記憶するサーバのコンポーネントであってよい。キャッシュ内に記憶されるデータは、以前計算された値、または、別の場所に記憶される元の値の複製物であってよい。要求されたデータがキャッシュに含まれている場合(「キャッシュヒット」)、この要求は、単にキャッシュを読み取ることによって提供されてよく、これはモバイルデバイスに対しては比較的高速である。そうでなければ、データは、モバイル通信デバイスによって再計算されるか、元の記憶位置から取り出されなければならず、これは比較的低速である。したがって、モバイル通信デバイスにキャッシュから提供され得る要求が多いほど、システム全体の性能は高速になり得る。
【００４７】
ある態様では、ブラウザ支援サーバは、多数のモバイルデバイスに対して目的のサービスを提供することができる。たとえば、モバイルデバイスは、今後の使用のために、キャッシュされたJavaScript(登録商標)またはキャッシュされたライブラリを含めて、ブラウザ支援サーバ上のキャッシュに書き込むことができる。これによって、処理時間が短くなりおよびバッテリー持続時間が長くなり得る。たとえば、モバイルデバイスまたはブラウザ支援サーバは、ユーザのブラウジング習慣に基づいて、モバイルデバイス上で消去されようとしているデータがユーザと関連があると判定し、サーバと関連付けられるキャッシュ中にそのデータを残すことができる。
【００４８】
別の態様では、サーバは、キャッシュされたデータを最適化することができる。たとえば、ユーザのプロファイルは、ブラウザ支援サーバに記憶され得る。たとえば、ブラウザ支援サーバは、ユーザが毎日午前8:00に同じウェブサイトをダウンロードすることを検出し得る。たとえば、モバイルデバイスは、その日の後の時点で、メモリの限界に達することがある。モバイルデバイスはまた、あるウェブページ要素が翌日の午前8:00に使用されるであろうことを検出し得る。モバイルデバイスは、ウェブページ要素を、L2キャッシュとしてブラウザ支援サーバと関連付けられるキャッシュに書き込むことができる。モバイルデバイスは翌日、キャッシュからのウェブページ要素にアクセスすることができる。
【００４９】
別の態様では、ブラウザ支援サーバは前もって、JavaScript(登録商標)を直接分析しコンパイルすることができる。JavaScript(登録商標)は、モバイル通信デバイス上で処理される必要はなくてよい。このデータはまた、所定のアーキテクチャに対してコンパイルされ得る。ブラウザ支援サーバは、処理されたJavaScript(登録商標)からレンダリングされたバイナリデータを提供することができる。バイナリデータは、モバイルデバイスがJavaScript(登録商標)をローカルにコンパイルするのを避けるように、モバイルデバイスに送信され得る。モバイルデバイスのプロセッサは、JavaScript(登録商標)実行経路の句を解析し、実行し、実行時コンパイルするのを避け、要素をより高速にレンダリングすることができる。
【００５０】
図1は、個人的なメディアコンテンツを遠隔からアクセスし制御するためのグラフィカルユーザインターフェース(GUI)を提供するディスプレイ110を含み得る、モバイルデバイス100を含む通信システムを示す。そのようなGUIは、ディスプレイ110の下に設けられ得るキーパッド中の物理キーを押すことによって、または、ディスプレイがタッチスクリーン機能を有する場合はディスプレイ自体を押すことによって選択され得る機能と関連付けられる、アイコンおよび図形を含み得る。GUIディスプレイ110は、参照番号115として示されるアイコンを含み得る。
【００５１】
モバイルデバイス100上でネットワークおよびデバイスアクセスの制御を可能にする、通信システムのコンポーネントのいくつかが図1に示される。モバイルデバイス100がインターネット114および登録サーバ142にアクセスできるようにするために、モバイルデバイス100は、セルラー通信ネットワークのようなワイヤレスネットワーク130と通信することができる。ワイヤレスネットワーク130は、インターネット、セキュアなLAN、WAN、または他のネットワークのようなデータリンク330を通じて、キャリアネットワーク326を介してインターネット114と通信することができる。キャリアネットワーク326は、モバイル交換センター(MSC)332に送信される(一般にデータパケットを含む)メッセージを制御する。キャリアネットワーク326は、MSC 332と通信する。この通信は、データ情報および音声情報を転送するためのものであり得る。MSC 332は、データネットワーク、ならびに/または、データ転送のためのインターネット部分および音声情報のためのPOTS部分のような、別のネットワーク336によって複数の基地局(BTS)132に接続され得る。BTS 132は、符号分割多元接続(CDMA)、ショートメッセージサービス(SMS)、または任意の他の無線による方法のような、所定の音声サービスおよび/またはデータパケットサービスを使用して、メッセージをワイヤレスにモバイルデバイス100にブロードキャストし、モバイルデバイス100からメッセージを受信することができる。
【００５２】
モバイルデバイス100は、たとえば、任意の常駐アプリケーションとの対話を可能にするアプリケーションプログラミングインターフェース(API)135(たとえば、図1に示される登録サーバ142によって伝えられる情報と協働的に動作する「メディア」インターフェース140)を介して、プロセッサ131と通信しているメモリ125を有するコンピュータプラットフォーム120を含むように構成され得る。
【００５３】
プラットフォーム120は、ゲートウェイインターフェース145も含み得る。ゲートウェイインターフェース145は、ウェブサーバのソフトウェアが、実行可能ファイル中のスタンドアロンアプリケーションに、ウェブページの生成をどのように委任できるかを定義する、規格であり得る。ゲートウェイインターフェース145は、任意のプログラミング言語または任意のスクリプト言語で書かれた、CGIスクリプトを含み得る。ゲートウェイインターフェース145は、ウェブユーザの要求をアプリケーションプログラムに渡し、ゲートウェイインターフェースがデータをユーザに転送できるようにデータの返信を受信するための、サーバ142に対するプログラム命令を有する。
【００５４】
ユーザがウェブページを要求すると(たとえば、強調された語をクリックすること、またはウェブサイトのアドレスを入力することによって)、サーバ142は要求されたページを送信することができる。しかしながら、ユーザがウェブページ上のフォームに記入し、フォームを送信するとき、フォームは普通、アプリケーションプログラムによって処理される必要がある。サーバ142は、フォーム情報を、データを処理する小さなアプリケーションプログラムに送信することができ、ゲートウェイインターフェース145を使用して確認メッセージを返信することができる。
【００５５】
ブラウザ支援サーバ150も設けられ得る。ある態様では、ブラウザ支援サーバ150は、サーバ142と同じであってよく、または異なるサーバであってよい。別の態様では、ブラウザ支援サーバは、複数の異なるコンピュータ上に存在するソフトウェアであってよい。
【００５６】
ブラウザ支援サーバ150は、インターネット114に動作可能に接続されるモバイルデバイス100にメタデータを提供することができる。ゲートウェイインターフェース145は、ブラウザ支援サーバ150がウェブユーザの要求をアプリケーションプログラムに渡し、サーバ150がメタデータをユーザに送信するための、プログラム命令を有する。一態様では、メタデータは、要求されたブラウジングデータのヘッダに埋め込まれ得る。別の態様では、メタデータは、要求されたブラウジングデータとは別々に送信され得る。
【００５７】
ユーザがウェブページを要求すると(たとえば、強調された語をクリックすること、またはウェブサイトのアドレスを入力することによって)、第2の要求もまた、ブラウザ支援サーバ150が要求されたメタデータを送信するために、サーバ150に提供され得る。別の態様では、ブラウザ支援サーバ150はまた、サーバ142へのウェブページのデータに対する要求を受信し、それに応答して、別個のまたは第2の要求を受信することなく、メタデータをモバイルデバイス100に送信することができる。別の態様では、メタデータは、要求を何ら伴わずに定期的に送信され得る。たとえば、メタデータは、ある周期で、たとえば15分に1回、送達され得る。
【００５８】
図2は、モバイル通信デバイス100における分析を使用して、性能を改善するためのある態様の方法200の図を示す。分析は、モバイルデバイスが性能を改善することを可能にし得る、任意の観測されたまたは計算された論理的な分析を含み得る。たとえば、分析は、ある句が他の句よりも高い実行の可能性を有することを示すことがあるので、モバイルデバイスは、その句を他の句よりも早くダウンロードすることがある。
【００５９】
方法200は、方法200の動作を実行するようにプロセッサ実行可能命令によって構成されたプロセッサ131を有する、コンピューティングデバイス内で実施され得る。方法200では、モバイル通信デバイス1のプロセッサは、ブロック205において、ウェブブラウザアプリケーションにアクセスすることによって、動作を開始することができる。ウェブブラウザは、World Wide Web上の情報リソースを取り出し、提示し、詳しく検討するためのプログラム命令を有する、任意のウェブブラウザであってよい。情報リソースは、Uniform Resource Identifier (URI)によって特定され、ウェブページ、画像、ビデオ、または他のデータコンテンツであってよい。ユーザがブラウザを関連するリソースへと簡単に進めることを可能にするハイパーリンクが、ウェブコンテンツ中に提示される。
【００６０】
ウェブブラウザは、モバイル通信デバイス100のユーザに情報リソースをもたらし得る。ユーザは、Uniform Resource Identifier (URI)をブラウザに入力することができ、またはリンクをクリックすることができる。受信されたHTMLスクリプトは、ブラウザのレイアウトエンジンに渡されてよく、マークアップから双方向性ドキュメントへと変換され得る。ウェブブラウザは一般に、ウェブページの一部であり得る任意の種類のコンテンツを表示することができる。データは、画像、音声、ビデオ、XMLファイル、Flashアプリケーション、およびJava(登録商標)アプレットを含み得る。ウェブページにおける双方向性は、JavaScript(登録商標)によって提供され得る。JavaScript(登録商標)は、Ajaxプログラミング言語を介してウェブページのサーバとの生の対話を可能にするために、他の技術とともに使用され得る。JavaScript(登録商標)プログラムは、APIを使用して双方向性の2Dグラフィクスを生成することができ、3Dグラフィクスをレンダリングすることができる。
【００６１】
ブロック210において、プロセッサは、分析をサーバ150からモバイル通信デバイス100に送信することができる。たとえば、分析はメタデータ内で送達され得るが、分析は他のフォーマットでも送達されてよい。メタデータという用語は、データについての任意のデータを指し、ブラウザの性能を予測するため、またはウェブブラウザもしくはモバイル通信デバイスを支援して性能を改善するためのヒントを提供する情報を含み得る。
【００６２】
メタデータは、データ構造の設計および仕様についてのデータを含み得る。メタデータはまた、アプリケーションデータまたはデータコンテンツを含む、記述的メタデータを含み得る。メタデータはまた、統計情報を含んでよく、コンテンツの任意の記述およびデータファイルのコンテキストであってよいので、元のデータまたはファイルの品質が大きく向上する。たとえば、メタデータは、モバイル通信デバイスを支援してより効率的に動作させてデバイスの持続時間を伸ばすことによって、ユーザの体験を改善することができる。
【００６３】
ブロック215において、モバイル通信デバイス100と関連付けられる第2のプロセッサは、分析を受信することができる。これは、モバイル通信デバイスがサーバ150から直接、または仲介物からメタデータをダウンロードすることによって、達成され得る。別の態様では、メタデータは、データコンテンツ内に埋め込まれ得る。別の態様では、メタデータは、ピアデバイスからダウンロードされてよく、または、ホームネットワークデバイスからダウンロードされてよい。ブロック220において、モバイル通信デバイスのプロセッサは、分析を使用して性能を改善する。たとえば、メタデータは、実行される可能性が統計的に高い、人気のあるウェブコンテンツの部分またはコンテンツを特定することができる。
【００６４】
図3は、インターネット114に接続されたモバイル通信デバイス100およびブラウザ支援サーバ150の、高水準の概略図を示す。ウェブページ1aに対する要求が、モバイル通信デバイス100からインターネット114に送信され得る。要求1aは、ウェブページに対するものであってよく、ウェブのuniform resource identifierを含み得る。要求1aは、HTML、XML、JavaScript(登録商標)、Cascading Style Sheets、XHTML、およびデータオブジェクトを返すことができる。
【００６５】
モバイル通信デバイス100Aは、第2の要求1bをブラウザ支援サーバ150に送信することができる。第2の要求1bは、メタデータを返す。メタデータは、モバイル通信デバイス100上でのブラウザの次の動作を予測できる、ヒントを含み得る。メタデータは、モバイル通信デバイスがウェブブラウザの要求1aをより良好に解析し、分析し、かつ/または実行することを可能にする、情報を含む。メタデータは、Ajax、XML、またはJ-SAWの形式であってよい。
【００６６】
矢印2によって示されるように、モバイル通信デバイス100は、メタデータを使用して要求されたウェブページをより効率的に処理することができ、これは、より高速な実行時間、少ない電力消費量、または短い処理時間につながり得る。たとえば、モバイル通信デバイス100上で動作可能な第1のブラウザを使用して、ユーザはハイパーリンクを選択することができる。ウェブページに対する要求1aは、HTML、XML、JavaScript(登録商標)、Cascading Style Sheets、XHTML、およびデータオブジェクトにアクセスするために送達され得る。第1のブラウザはさらに、ユーザに知られずブラウジング体験を妨害しない、第2の要求1bを送信することができる。
【００６７】
ブラウザ支援サーバ150は、第2の要求1bを受信することができる。ブラウザ支援サーバ150は、レンダリングされようとしているウェブページ中にJavaScript(登録商標)が存在することを検出することによって、性能を改善することができる。ブラウザ支援サーバ150は、JavaScript(登録商標)をすでにコンパイルしていてよく、またはコードを直ちにコンパイルしてよい。ブラウザ支援サーバ150は、バイナリファイル(または別のネイティブフォーマット)にコンパイルされたJavaScript(登録商標)を、モバイル通信デバイス100のブラウザに送達することができる。コンパイルされたJavaScript(登録商標)バイナリファイルは、モバイル通信デバイスのプロセッサから、コードをコンパイルする負荷を取り除き、レンダリング時間を短縮し処理リソースを節約する。プリコンパイルされたJavaScript(登録商標)は、モバイル通信デバイス上でレンダリングされる。
【００６８】
別の態様では、ブラウザ支援サーバ150は、要求1aと1bの両方を受信し、メタデータおよびウェブコンテンツを提供することができる。別の態様では、ブラウザ支援サーバ150は、モバイル通信デバイス100上で仮想マシンを設け、各々が固有のオペレーティングシステムを実行する異なるマシンの間で、背後にある物理的なマシンのリソースを共有することを可能にし得る。これは、モバイルデバイスのプロセッサの処理負荷を減らし得る。
【００６９】
図4は、ブラウザ支援サーバ150およびモバイル通信デバイス100が、要求を形成し、メタデータを共有し、インターネット114に接続されるのを示す。ウェブページに対する要求が、モバイル通信デバイス100からインターネット114上のサーバに送信され得る。ウェブページに対する要求は、ウェブのuniform resource identifierを含み得る。インターネットサーバは、HTML、XML、JavaScript(登録商標)、Cascading Style Sheets、XHTML、およびデータオブジェクトを返すことができる。第2の要求1も、モバイル通信デバイス100からブラウザ支援サーバ150に送信され得る。
【００７０】
要求1は、モバイル通信デバイスのブラウザに対するヒントを含む、メタデータ3を返すことができる。ヒントは、モバイル通信デバイス100上でのブラウザの次の動作を予測することができる。メタデータは、モバイル通信デバイス100がウェブブラウザの要求1をより良好に解析し、分析し、かつ/または実行することを可能にする、情報を含み得る。ブラウザ支援サーバ150はまた、要求1を処理することができる。ブラウザ支援サーバ150は、観測された統計的なブラウジングパターンに基づいて、実行の確率が高いJavaScript(登録商標)部分がウェブページ中に存在し、実行の確率が低い他の第2の部分が存在することを検出することによって、性能を改善することができる。観測された統計的なブラウジングパターンは、様々なソースから発生し得る。たとえば、観測された統計的なブラウジングパターンは、多数の監視されたウェブブラウザから監視され得る。ブラウザ支援サーバ150は、経験的なデータを取得し、経験的なデータをインデックスに記憶することができる。あるいは、観測された統計的なブラウジングパターンは、モバイル通信デバイス100から監視され得る。あるいは、第3のコンピューティングデバイスがブラウジング習慣を観測し、記憶媒体中のインデックスにブラウジング習慣を記憶し、インデックスをブラウザ支援サーバ150にアップロードすることができる。
【００７１】
あるいは、観測された統計的なブラウジングパターンは、多数のピアデバイスから観測され得る。BASサーバ150は、ピアデバイスのブラウジングデータを学習し、インデックスに経験的なデータを記憶することができる。
【００７２】
代替的な態様では、プログラマは、ある部分は実行の確率が高いが他の部分は実行の確率が低いことを示すデータを実際のコード内に含めて、モバイルデバイス100への指示を提供することができる。ブラウザ支援サーバ150は、JavaScript(登録商標)をプリコンパイルし、バイナリフォーマットまたはネイティブフォーマットでプリコンパイルされたJavaScript(登録商標)の実行確率の高い部分を送信することができる。
【００７３】
ブラウザ支援サーバ150は、矢印3によって示されるように、データまたはメタデータをモバイル通信デバイス100に送達することができる。メタデータは、第1の実行の確率が高い部分をダウンロードしつつ第2の実行の確率が低い部分をダウンロードしないためのヒントを含み得る。あるいは、メタデータは、モバイルデバイスは第1の(実行の確率が高い)部分をダウンロードしつつ第2の(実行の確率が低い)部分を後でダウンロードするべきであるという、ヒントを含み得る。
【００７４】
図5Aは、メタデータをブラウザ支援サーバ150からモバイル通信デバイスに返し、モバイルデバイス100において電力を節約するためのある態様の方法500を示す。方法500は、方法500の動作を実行するようにプロセッサ実行可能命令によって構成されたプロセッサ131を有する、コンピューティングデバイス内で実施され得る。
【００７５】
方法500では、ブロック502において、プロセッサ131は、ウェブページのコンテンツについての統計情報を決定するために、多数の他のユーザからデータを集めることによって、動作を開始することができる。たとえば、統計情報は、集められたデータに基づいて、あるウェブコンテンツ要素が見られる確率または実行される確率の高いことを示す、習慣データを含み得る。しかしながら、データは、モバイルデバイス100のより効率的な動作につながる任意の他の情報を含み得る。
【００７６】
ブロック504において、プロセッサは、ブラウザ支援サーバからウェブページについてのメタデータを要求することができる。ブロック506において、プロセッサは、ウェブページに対するモバイルデバイスからの要求を送信することができる。判定ブロック508において、プロセッサは、他のユーザから集められたデータおよび要求を使用して、ブラウザ支援サーバが要求をより良好に解析し、分析し、または実行するための情報を有するかどうかを判定することができる。
【００７７】
たとえば、ブラウザ支援サーバは、観測された統計に基づいて、あるJavaScript(登録商標)が実行の確率の高い部分を含むと判定することができる。そうである場合(すなわち、判定ブロック508=「Yes」)、これは、プロセッサによって要求をより良好に解析し、分析し、または実行するための情報がサーバ150において存在することを示し、プロセッサは、ブロック512において、メタデータをモバイルデバイスに返すことができる。一方、BAS 150が、モバイルデバイス100に対する要求をより良好に解析し、検出し、または分析するための情報を有さない場合(すなわち、判定ブロック508=「No」)、プロセッサは、ブロック510において返すべきメタデータを有さないことがある。ブロック516において、モバイル通信デバイスは、ウェブページのコードを実行することができる。
【００７８】
ブロック512において、ブラウザ支援サーバのプロセッサは、メタデータをモバイルデバイスに返すことができる。たとえば、メタデータは、ライブラリの部分がウェブブラウザによって利用されている可能性がほとんどなく、直ちにダウンロードされなくてよいことを示唆することがある。別の態様では、メタデータは、コンパイルされたJavaScript(登録商標)に対応するバイナリファイル(またはネイティブ言語ファイル)を含むことがある。この情報により、モバイルデバイスがJavaScript(登録商標)を解析し、分析し、または実行しなくてもよくなるので、ブラウザ動作を改善することが可能になり得る。
【００７９】
ブロック514において、モバイルデバイスのプロセッサは、メタデータを使用してウェブの処理を支援することができる。たとえば、モバイルプロセッサは、ウェブページに含まれるHTMLが、順番にではなく並列に処理され得る部分を有すると、(メタデータを使用して)判定することができる。モバイルプロセッサは、メタデータに基づいて、ウェブページ要素を並列に処理することができる。たとえば、メタデータは、JavaScript(登録商標)関数の確率、スクリプトトークン、または字句情報を含んでよく、モバイルプロセッサは、メタデータを使用して、実行の確率の高いJavaScript(登録商標)を実行しつつ他の部分を後で実行することによって、ウェブページをレンダリングすることができる。ブロック516において、モバイルデバイスのプロセッサは、ウェブページのコードを実行することができ、メタデータのヒントが与えられない例よりも高速にウェブページをレンダリングすることができる。
【００８０】
図5Bは、多数のユーザからデータを集め、メタデータをモバイル通信デバイスに返してモバイルデバイス100においてモバイルリソースを節約する、計測手段を備えたブラウザとともに使用するためのある態様の方法550を示す。計測手段を備えたブラウザは、ウェブブラウザに対する少なくとも1つのアドオンモジュールを含み得る。アドオンモジュールは、ユーザの活動を監視することができる。多数のユーザの計測手段を備えたブラウザは、多くのデバイスの習慣データを蓄積することができる。たとえば、計測手段を備えたブラウザは、キーストロークを記録することができ、または、ユーザの入力を記録して、ユーザの対話の詳細を監視し、収集し、記録することを可能にすることができる。習慣情報は、ユーザの習慣と関連する経験的な分析データと、モバイルデバイスの性能を改善するために使用され得る論理関係とを含み得る。
【００８１】
方法550は、方法550の動作を実行するようなプロセッサ実行可能命令によって構成されたプロセッサ131を有する、コンピューティングデバイス内で実施され得る。方法550では、ブロック518において、プロセッサ131は、ウェブページのコンテンツについての統計情報を決定するために、計測手段を備えたブラウザと関連付けられるプロセッサが、多数の他のウェブユーザからデータを集めることによって、動作を開始することができる。統計情報は、集められたデータに基づいて、あるウェブコンテンツ要素は見られる確率または実行される確率が高いというデータを含み得る。別の態様では、データは、ブラウザのユーザに特有であってよい。たとえば、ブラウジングの間、ユーザは、他のウェブ要素よりも、特定のファイルまたは特定のタイプのファイルを実行する習慣を有し得る。たとえば、特定のユーザは、毎朝午前8:00にJavaScript(登録商標)要素が実行されることを要求する、金融のサイトにアクセスし得る。
【００８２】
ブロック520において、プロセッサは、ウェブページについてのメタデータを要求することができる。ブロック522において、プロセッサは、ウェブページに対するモバイルデバイスからの要求を送信することができる。判定ブロック524において、プロセッサは、計測手段を備えたブラウザから集められたデータを使用して、要求をより良好に解析し、分析し、または実行することができる。たとえば、計測手段を備えたブラウザは、観測された統計に基づいて、あるJavaScript(登録商標)が実行の確率の高い部分を含むと判定することができる。あるいは、計測手段を備えたブラウザは、ユーザが毎日午前9:00に同じウェブページを閲覧すると判定することができ、計測手段を備えたブラウザが翌日そのウェブページ要素のすべてをダウンロードする必要がないように、あるデータが翌日のためにキャッシュされる。
【００８３】
そうである場合(すなわち、判定ブロック524=「Yes」)、これは、要求をより良好に解析し、分析し、または実行するための情報を、計測手段を備えたブラウザが有することを示し、プロセッサは、ブロック528において、メタデータをモバイルデバイスに返すことができる。たとえば、メタデータは、ライブラリの部分がウェブブラウザによって利用されている可能性がほとんどなく、ダウンロードされなくてよいことを示すことがある。別の態様では、メタデータは、JavaScript(登録商標)に対応するプリコンパイルされた(またはネイティブ言語の)ファイルを含み得るので、モバイルデバイスは、計測手段を備えたブラウザを支援するために、JavaScript(登録商標)を解析し、分析し、または実行する必要はない。したがって、計測手段を備えたブラウザは単に、ネイティブ言語を使用して、JavaScript(登録商標)の句をレンダリングすることができる。
【００８４】
一方、計測手段を備えたブラウザが、モバイルデバイス100に対する要求をより良好に解析し、検出し、または分析するための情報を有さない場合(すなわち、判定ブロック524=「No」)、プロセッサは、ブロック526において返すべきメタデータを有さないことがあり、モバイル通信デバイスは、ブロック532において、ウェブページのコードを実行することができる。ブロック530において、モバイルデバイスのプロセッサは、メタデータを使用してウェブの処理を支援することができる。ブロック532において、モバイルデバイスのプロセッサは、ウェブページのコードを実行し、より効率的な方式でウェブページをレンダリングする。
【００８５】
図5Cは、あるユーザからデータを集め、メタデータをモバイル通信デバイスに返してモバイルデバイス100においてモバイルリソースを節約する、ウェブブラウザとともに使用するためのある態様の方法580を示す。ブラウザは、ユーザの活動を監視する。方法580は、方法580の動作を実行するためのプロセッサ実行可能命令で構成されたプロセッサを有する、コンピューティングデバイス内で実施され得る。方法580では、ブロック534において、プロセッサは動作を開始することができる。ウェブブラウザと関連付けられるプロセッサは、ウェブブラウザのセッションからデータを集めることができる。このデータは、ウェブページのコンテンツを見るとき、またはブラウジングするときのユーザの習慣についての統計情報を決定するために使用され得る。たとえば、データは、ブラウザのユーザに特有であってよい。たとえば、ユーザは、統計的に、他の要素よりも、特定のファイルまたは特定のタイプのファイルを実行する習慣を有する。
【００８６】
ブロック536において、プロセッサは、ウェブページについてのメタデータに対する要求を送信することができる。ブロック538において、プロセッサは、ウェブページに対するモバイルデバイスからの要求を送信することができる。判定ブロック540において、プロセッサは、ユーザのウェブブラウジングから集められたデータを使用して、要求をより良好に解析し、分析し、または実行することができる。たとえば、ブラウザは、観測された統計に基づいて、あるJavaScript(登録商標)の句が実行の確率の高い部分を含むと判定することができる。あるいは、ブラウザは、ユーザが毎日午前9:00に同じウェブページを閲覧すると判定することがあり、あるデータが翌日のためにキャッシュされる。したがって、ブラウザは、翌日にウェブページ要素のすべてをダウンロードする必要がなく、より効率的に動作することができる。
【００８７】
そうである場合(すなわち、判定ブロック540=「Yes」)、これは、要求をより良好に解析し、分析し、または実行するための情報をブラウザが有することを示し、プロセッサは、ブロック544において、メタデータをモバイルデバイスに返すことができる。一方、ブラウザが、モバイルデバイス100に対する要求をより良好に解析し、検出し、または分析するための情報を有さない場合(すなわち、判定ブロック540=「No」)、プロセッサは、ブロック542において返すべきメタデータを有さないことがあり、モバイル通信デバイスは、ブロック548において、ウェブページのコードを実行することができる。ブロック544において、ウェブブラウザのプロセッサは、メタデータをモバイルデバイスに返すことができる。ブロック546において、モバイルデバイスのプロセッサは、メタデータを使用してウェブの処理を支援することができる。ブロック548において、モバイルデバイスのプロセッサは、ウェブページのコードを実行し、メタデータのヒントが与えられない例よりも高速にウェブページをレンダリングする。
【００８８】
図6は、あるユーザのデータを集めるピアデバイスとともに使用でき、メタデータをモバイル通信デバイスに返してモバイルデバイス100においてモバイルリソースを効率的に使用する、ある態様の方法600を示す。ピアツーピアデバイスは、モバイルデバイスおよび/または他のデバイス(図示せず)と通信する、別のモバイルデバイス、アクセスポイント、他のデバイスなどであってよい。一例では、ピアデバイスは、基地局とともに、または基地局の代わりに通信サービスを提供する、家庭または事業所の中の独立に駆動されるデバイスであってよい。加えて、ピアツーピアデバイスは、近隣のデバイスの識別することができる。ある例では、ピアツーピアデバイスは、基地局からモバイルデバイスへのダウンリンク割当を受信することができ、またはそうでなければ聴取することができる。ピアデバイスはまた、ダウンリンク割当の中のリソースを通じて、モバイルデバイスからのアップリンク送信を受信し、またはそうでなければ聴取して、(たとえば、アップリンク送信内の情報に基づいて)モバイルデバイスを識別することができる。ピアデバイスは、ユーザの活動を監視するウェブブラウザを動作させることができる。
【００８９】
方法600は、方法600の動作を実行するようにプロセッサ実行可能命令で構成されたプロセッサを有する、コンピューティングデバイス内で実施され得る。方法600では、プロセッサは、ブロック602において、ピアデバイスのプロセッサがウェブブラウザのセッションからデータを集めることによって、動作を開始することができる。これは、ウェブページのコンテンツについての統計情報を決定するために実行され得る。
【００９０】
たとえば、統計情報は、集められたデータに基づいて、あるウェブコンテンツ要素は見られる確率または実行される確率が高いというデータを含み得る。別の態様では、データは、ブラウザのユーザに特有であってよい。たとえば、ユーザは、統計的に、他の要素よりも、特定のファイルまたは特定のタイプのファイルを実行する習慣を有し得る。ピアデバイスは、メタデータを生成して、モバイルデバイス上で観測されたブラウジング習慣に基づいて、ブラウザの次の動作を予測するためのヒントを形成することができる。別の態様では、ピアデバイスは、他のピアデバイスからメタデータを受信することができ、多くのユーザのブラウジング習慣についてのデータを統合してヒントを形成することができる。別の態様では、ピアデバイスは、ブラウザ支援サーバからメタデータを受信することができ、他のピアデバイスとそのメタデータを共有することができる。さらなる態様では、ピアデバイスは習慣データを集めることができる。
【００９１】
ブロック604において、プロセッサは、ウェブページについてのメタデータを要求することができる。ブロック606において、プロセッサは、ウェブページに対するモバイルデバイスからの要求を送信することができる。判定ブロック608において、プロセッサは、ピアデバイスから集められたデータが、要求をより良好に解析し、分析し、または実行できるかどうかを判定することができる。
【００９２】
そうである場合(すなわち、判定ブロック608=「Yes」)、これは、要求をより良好に解析し、分析し、または実行するための情報をピアデバイスが有することを示し、プロセッサは、ブロック612において、メタデータをモバイルデバイスに返すことができる。一方、ピアデバイスが、モバイルデバイス100に対する要求をより良好に解析し、検出し、または分析するための情報を有さない場合(すなわち、判定ブロック608=「No」)、プロセッサは、ブロック610において返すべきメタデータを有さないことがあり、モバイル通信デバイスは、ブロック616において、ウェブページのコードを実行することができる。
【００９３】
ブロック612において、ピアデバイスのプロセッサは、メタデータをモバイルデバイスに返すことができる。たとえば、メタデータは、モバイルデバイスの動作を改善することができ、メタデータは、ウェブページのある部分が高い実行の可能性を有すること、または見られる可能性の高いことをモバイルデバイスのブラウザに指示することができ、ピアデバイスによって(または、別のソースからピアデバイスによって学習されたデータによって)集約されたデータに基づいてダウンロードされ得る。たとえば、メタデータは、ライブラリの部分が利用されている可能性がほとんどないことを示すことがある。
【００９４】
ブロック614において、モバイルデバイスのプロセッサは、ピアデバイスからのメタデータを使用してウェブの処理を支援することができる。たとえば、モバイルプロセッサは、ウェブページに含まれるHTMLが、順番にではなく並列に処理され得る部分を有すると、メタデータを使用して判定することができる。モバイルプロセッサは、ピアデバイスから提供されるメタデータに基づいて、ウェブページ要素を並列に処理することができる。ブロック616において、モバイルデバイスのプロセッサは、ウェブページのコードを実行し、ウェブページをレンダリングする。
【００９５】
図7は、あるユーザのデータを集め、メタデータをモバイル通信デバイス100に返してデバイスがモバイルデバイスリソースを効率的に使用することを可能にする、ネットワークデバイスとともに使用するためのある態様の方法700を示す。たとえば、この態様では、モバイル通信デバイス100は、ホームネットワークの部分を形成し、ホームネットワークを介してデータを受信し送信することができる。たとえば、ホームネットワークは、コンピュータに接続されアクセスポイントを形成する、ゲートウェイを含み得る。たとえば、モバイルデバイス100は、インターネットに接続されるアクセスポイントにアクセスするためのワイヤレスインターフェースを含み得る。プロセッサおよびメモリを有するネットワークコンピュータも、インターネットに接続されるモデムに接続され得る。
【００９６】
ネットワークデバイスは、デスクトップコンピュータ、ラップトップコンピュータ、モバイルデバイス、タブレットコンピュータ、または、モバイルデバイスおよび/または他のデバイス(図示せず)と通信する他のデバイスであり得る。ネットワークデバイスは、ウェブブラウザ上のユーザの活動を監視することができ、モバイルデバイスとペアリングしてデータをモバイルデバイスに提供することができる。方法700は、方法700の動作を実行するようにプロセッサ実行可能命令によって構成されたプロセッサを有する、コンピューティングデバイス内で実施され得る。方法700では、ブロック702において、ネットワークデバイスと関連付けられるプロセッサは、ウェブページのコンテンツについての統計情報を決定するために、ユーザによるウェブブラウザのセッションからデータを集めることによって、動作を開始することができる。別の態様では、ネットワークデバイスはまた、インターネット114を介して、ブラウザ支援サーバ150と通信することができる。ネットワークデバイスはまた、他のユーザのウェブブラウジング習慣からデータを受信することができる。ネットワークデバイスは、そのデータを使用して、ウェブブラウザの次の動作を予測することができる。たとえば、ネットワークコンピュータデバイスは、メタデータを生成して、モバイルデバイス上で観測されたブラウジング習慣に基づいて、ブラウザの次の動作を予測するためのヒントを形成することができる。
【００９７】
ブロック704において、プロセッサは、ウェブページについてのメタデータを要求することができる。たとえば、メタデータは、ネットワークデバイス、ピアデバイス、またはブラウザ支援サーバ150において生成され得る。ブロック706において、プロセッサは、ウェブページに対するモバイルデバイスからの要求を送信することができる。
【００９８】
判定ブロック708において、ネットワークデバイスのプロセッサは、ブラウザが要求をより良好に解析し、分析し、または実行するために使用できる情報を、ネットワークデバイスが有するかどうかを判定することができる。たとえば、ネットワークデバイスは、観測された統計に基づいて、あるJavaScript(登録商標)の句が実行の確率の高い部分を含むと判定することができる。ネットワークデバイスは、要求を検討することができ、メタデータは要求に関連がありモバイルデバイスのブラウザに送信され得ると、判定することができる。
【００９９】
そうである場合(すなわち、判定ブロック708=「Yes」)、これは、要求をより良好に解析し、分析し、または実行するための情報をネットワークデバイスが有することを示し、プロセッサは、ブロック712において、メタデータをモバイルデバイスに返すことができる。一方、ネットワークコンピュータデバイスが、モバイルデバイス100に対する要求をより良好に解析し、検出し、または分析するための情報を有さない場合(すなわち、判定ブロック708=「No」)、プロセッサは、ブロック710において返すべきメタデータを有さないことがあり、モバイル通信デバイスは、ブロック716において、ウェブページのコードを実行することができる。
【０１００】
ブロック712において、ネットワークデバイスのプロセッサは、別個のファイルとして、またはコンテンツのヘッダに埋め込まれるものとして、メタデータをモバイルデバイスに返すことができる。ブロック714において、モバイルデバイスのプロセッサは、ネットワークデバイスからのメタデータを使用してウェブの処理を支援することができる。たとえば、観測されるユーザの数に基づいて、メタデータは、ウェブページのある部分が最も見られているウェブページ要素であることを、統計情報に基づいて示すことができる。メタデータは、最も見られているウェブページ要素は他のウェブページ要素よりも前に最初にダウンロードされ得ることを示し得る。あるいは、ネットワークデバイスは、少なくとも(1)高確率の実行可能部分または(2)低確率の実行部分をライブラリが含むことを示す、メタデータを通信することができる。メタデータは、プロセッサが、別の部分、シーケンス、またはスキーマよりも最初に、ある部分をダウンロードし得ることを示すことができる。ブロック716において、モバイルデバイスのプロセッサは、ウェブページのコードを実行し、ウェブページをレンダリングする。メタデータのヒントを使用することによって、モバイルデバイスのリソースは節約される。
【０１０１】
図8は、メタデータまたは他のパケット802〜814を、基地局1を介して通信ネットワークに、かつモバイル通信デバイス100に送達する、ブラウザ支援サーバ150の高水準の通信図を示す。送信されるメタデータまたは他のデータパケット802〜814には制約はなく、一部のメタデータは送信されてよいが他のメタデータは送信されない。たとえば、要求に応じて、一部のメタデータは適切であり得るが、他のメタデータは適切ではないことがある。ブラウザ支援サーバ150から送信される例示的なデータは、ブロック802によって示されるような、ブラウジング習慣に基づいてプッシュされるデータを含み得る。モバイル通信デバイス100による使用のためにネイティブなフォーマットである、事前に処理されたウェブページが、ブロック804として示されている。ユーザ統計メタデータ806、メタデータのヒント808、解析を支援するためのメタデータ810、実行を支援するためのメタデータ812、およびウェブページ要求の解析を支援するためのメタデータ814も、ブラウザ支援サーバ150からモバイル通信デバイス100に送達され得る。
【０１０２】
モバイル通信デバイスのプロセッサは、ユーザがモバイル通信デバイス上で動作可能なウェブブラウザを使用して第1のウェブページを開こうとしていることを示す、ユーザがハイパーリンクをクリックしたという入力を受け取ることができる。それに応答して、モバイル通信デバイス100は、ブロック816において、ウェブページのコンテンツに対する要求816を送信することができる。要求816は、モバイル通信基地局1に送信される。たとえば、基地局1は、要求をサーバ142(図1)に送信して、ウェブコンテンツを取得することができる。
【０１０３】
ブロック818において、ブラウザ支援サーバに対する要求が基地局1に送信される。基地局1は、要求をブラウザ支援サーバ150に通信する。要求に応答して、ブラウザ支援サーバ150は、1つまたは複数のメタデータブロック802〜814、データ、キャッシュされたデータ、または他のメタデータを送達して、モバイル通信デバイス100がウェブページを処理するのを支援することができる。一部のデータは、要求818を何ら受信することなく、モバイル通信デバイスにプッシュされ得る。
【０１０４】
たとえば、モバイル通信デバイス100は、空間の制約が原因で、メモリおよびデータコンテンツを定期的に消去することがある。メタデータは、一部のデータコンテンツが、目的のサービスとして、モバイル通信デバイス100の代わりにサーバ150にキャッシュされ得ることを、示すことができる。あるいは、キャッシュされたデータは、何ら要求を伴うことなく、何らかの後の期間に、モバイル通信デバイスにプッシュされ得る。メタデータを使用して、モバイル通信デバイス100は、効率的な方式でウェブページ820をレンダリングすることができる。モバイル通信デバイス100はまた、ブロック822において、任意選択で、ウェブサイトの利用可能性をユーザに通知する。モバイル通信デバイス100はまた、ブロック824において、任意選択で、メタデータのサービスの品質についてのフィードバックを、ブラウザ支援サーバ150に提供することができる。
【０１０５】
図9は、複数のユーザの多数のブラウジング習慣に基づいて、メタデータをコンピューティングデバイスにプッシュする、ブラウザ支援サーバ150のためのある態様の方法900を示す。たとえば、方法900は、「クラウドソーシング」、すなわち大量のウェブユーザから集められた情報を使用することができる。たとえば、ブラウザ支援サーバは、大量の要求および要求に対する応答を監視し、ブラウザ要求と応答との間の経験的な関係を推測することができる。ブラウザ支援サーバ150は、多数のウェブユーザからの要求および応答から、分析を導出することができる。たとえば、これらの分析は、数百のモバイルデバイスに対して行われた多数の測定に基づく、JavaScript(登録商標)関数の確率を含み得る。たとえば、経験的なデータは、実行され、ロードされ、見られ、分析され、解析されるなど、JavaScript(登録商標)の句を含み得る。
【０１０６】
方法900は、方法900の動作を実行するようにプロセッサ実行可能命令で構成されたプロセッサを有する、コンピューティングデバイス内で実施され得る。方法900では、プロセッサは、ブロック902において、ブラウザ支援サーバ150が多数のユーザのブラウジング習慣に関するデータを集めることによって、動作を開始することができる。
【０１０７】
ブロック904において、ブラウザ支援サーバのプロセッサ131は、多数のユーザから集められたデータに基づいて、メタデータを作成する。メタデータは、多数のユーザのブラウジング習慣についての、構造化されたデータを含み得る。メタデータ要素は、ページ記述、キーワード、ならびにヘッド要素および属性を通じては与えられない任意の他のメタデータを記述するために使用され得る。メタデータ要素は、HTTP応答ヘッダの使用を模擬して、HTMLドキュメント内に追加のメタデータを埋め込むことができる。そのようなメタデータ要素は、HTMLまたはXHTMLドキュメントのヘッドセクションに、タグとして配置される。
【０１０８】
ブロック906において、プロセッサ131は、メタデータがブラウザ支援サーバ150からコンピューティングデバイスにプッシュされるように、プログラム命令を出力する。別の態様では、メタデータは、ブラウザ支援サーバからコンピューティングデバイスへとプルされ得る。別の態様では、メタデータは、他のデータの中に埋め込まれ得る。別の態様では、データは、フィードの中で継続的に提供され得る。
【０１０９】
ブロック908において、メタデータを受信するコンピュータデバイスのプロセッサは、メタデータを使用することができる。ブロック910において、プロセッサは、メタデータを使用してウェブページをレンダリングすることができる。ブロック912において、プロセッサは、レンダリングするウェブページからのデータをブラウザ支援サーバ150に送信して、フィードバックを提供することができる。
【０１１０】
図10は、ブラウザ支援サーバと、ブラウザ支援サーバからメタデータをプルするコンピュータデバイスとに対する、ある態様の方法1000を示す。メタデータは、複数のユーザの多数のブラウジング習慣に基づき得る。たとえば、図9と同様に、方法1000は、「クラウドソーシング」、すなわち大量のウェブユーザから集められた情報を使用することができる。たとえば、ブラウザ支援サーバは、クラウドソーシングを使用し、または、大量の要求および要求に対する応答を監視し、要求と応答との間の経験的な関係を推測することができる。ブラウザ支援サーバ150は、多数のウェブユーザからの要求および応答から、分析を導出することができる。
【０１１１】
たとえば、これらの分析は、数百のモバイルデバイスに対して行われた多数の測定に基づく、JavaScript(登録商標)関数の確率を含み得る。たとえば、経験的なデータは、実行され、ロードされ、見られ、分析され、解析されるなど、JavaScript(登録商標)の句を含み得る。方法1000は、この方法の動作を実行するようにプロセッサ実行可能命令によって構成されたプロセッサを有する、コンピューティングデバイス内で実施され得る。方法1000では、プロセッサは、ブロック1002において、ブラウザ支援サーバ150が多数のユーザのブラウジング習慣のデータを集めることによって、動作を開始することができる。
【０１１２】
ブロック1004において、ブラウザ支援サーバ150のプロセッサは、多数のユーザから集められたデータに基づいて、メタデータを作成することができる。メタデータは、定期的に更新され得るインデックス中で、作成され記憶され得る。メタデータは、多数のユーザのブラウジング習慣についての構造化されたデータを提供するために使用される、HTML要素またはXHTML要素を含み得る。メタデータ要素は、ページ記述、キーワード、ならびに他のヘッド要素および属性を通じた関係を記述するために使用され得る。別の態様では、メタデータ要素は、HTTP応答ヘッダの使用を模擬し、または、HTMLドキュメント内に追加のメタデータを埋め込むことができる。
【０１１３】
ブロック1006において、コンピューティングデバイスのプロセッサは、メタデータがブラウザ支援サーバ150からコンピューティングデバイスへとプルされるように、プログラム命令を出力する。プル技術は、メタデータに対する最初の要求がクライアントから発生し、ブラウザ支援サーバ150によって応答される、ネットワーク通信を含む。別の態様では、メタデータは、何ら要求を伴うことなく、ブラウザ支援サーバ150からコンピューティングデバイスへとプッシュされ得る。別の態様では、メタデータは、他のデータに埋め込まれてよく、またはフィードにおいて提供されてよい。
【０１１４】
ブロック1008において、プロセッサはメタデータを使用する。たとえば、メタデータは、あるライブラリ要素が非常に低い実行の確率を有する一方、第2のライブラリ要素が90パーセントという実行の確率を有することを示し得る。プロセッサは、メタデータを使用して、第2の要素を直ちにダウンロードできる一方、何らかの後の時点まで、第1のライブラリ要素をダウンロードしない。ブロック1010において、プロセッサは、メタデータを使用してウェブページをレンダリングすることができる。ブロック1012において、プロセッサは、レンダリングするウェブページからのデータをブラウザ支援サーバ150に送信して、任意選択でフィードバックを提供する。さらに別の態様では、フィードバック情報は、プッシュされるフィードの中で、コンピューティングデバイスのブラウザに提供され得る。
【０１１５】
図11は、スキーマを形成して、モバイルブラウザが観測された関係に基づいてそのスキーマによってウェブコンテンツを処理し、実行し、分析するのを支援する、分析モジュールを含む、ブラウザ支援サーバに対するある態様の方法1100を示す。分析モジュールは、多数のコンピュータデバイスにより行われる測定を監視する。モジュールは、コンピューティングデバイスおよびウェブサーバによって行われる、要求および要求に対する応答を検証する。分析モジュールは、経験的なデータを生成し、コンピュータデバイスに対して、コンピュータデバイスの動作を改善できるヒントを作成する。
【０１１６】
データは、あるウェブページ要素が解析され、実行され、または分析される、関数の確率を含み得る。たとえば、分析モジュールは、数百のモバイルデバイスにより行われる測定に基づいて、JavaScript(登録商標)実行関数の確率を決定することができる。データは、区分コードヒント、字句情報、スクリプトトークン、解析のためのASTデータ、並列に処理され得るHTMLの部分または順番に処理され得る部分、CSSウェブページ最適化データ、キャッシュされたデータ、または、モバイルリソースを節約できる任意の他のメタデータを含み得る。分析モジュールは、ブラウザ支援サーバ150と関連付けられてよく、または代替的には、コンピューティングデバイス100と関連付けられてよく、実行またはコンパイルされ得るJavaScript(登録商標)コードの部分に関して推測するためのアルゴリズムを含み得る。別の態様では、分析モジュールは、メタデータをコンピュータデバイスに送達できる中間デバイスであり得る。分析モジュールは、ユーザの習慣を監視でき観測される経験的なデータに基づいてメタデータのヒントを生成できるアルゴリズムを含む、ソフトウェアモジュールであってよい。
【０１１７】
方法1100は、方法1100の動作を実行するようにプロセッサ実行可能命令によって構成されたプロセッサ131を有する、コンピューティングデバイス内で実施され得る。方法1100では、プロセッサ131は、ブロック1102において、ブラウザ支援サーバ150が多数のユーザのブラウジング習慣に関するデータを集めることによって、動作を開始することができる。
【０１１８】
ブロック1104において、ブラウザ支援サーバのプロセッサは、データを分析モジュールに提供して、多数のユーザから集められたデータに基づいてメタデータを作成することができる。分析モジュールは、メタデータを作成し、メタデータを、ブラウジング習慣からの新たな情報に基づいて定期的に更新され得るインデックスのような記憶媒体に、記憶することができる。
【０１１９】
ブロック1106において、メタデータがユーザの次のブラウジング活動を予測でき、次のブラウジング活動についての情報を前もって与えることによってブラウザを支援できるように、メタデータが生成される。ウェブページは、他のユーザから観測された経験的なデータに基づいて、実行の確率が高いJavaScript(登録商標)を含み得る。分析モジュールは、ブラウザの次のステップがJavaScript(登録商標)を処理することであり得ることを、検出することができる。分析モジュールは、JavaScript(登録商標)をプリコンパイルし、バイナリコード(または他のネイティブコード)を形成し、バイナリコードをコンピューティングデバイスに提供するための、制御命令を出力することができる。ブロック1108において、プロセッサは、メタデータが分析モジュールからコンピューティングデバイスに送達されるように、プログラム命令を出力する。
【０１２０】
ブロック1110において、メタデータを受信するコンピュータデバイスのプロセッサ131は、メタデータを使用する。ブロック1112において、プロセッサは、ウェブページをレンダリングする。ブロック1114において、プロセッサは、任意選択で、レンダリングするウェブページからのデータをブラウザ支援サーバに送信して、フィードバックを提供することができる。
【０１２１】
図12は、モバイル通信デバイスの代わりに目的のサービスを提供するための機能を含む、ブラウザ支援サーバ150に対するある態様の方法1200を示す。ブラウザ支援サーバ150は、モバイル通信デバイスが、所定のウェブサイトに関する情報を記憶媒体(たとえば、ブラウザ支援サーバのメモリ)にキャッシュすることを可能にする。
【０１２２】
たとえば、ウェブサイトは、モバイル通信デバイス100によって頻繁に、たとえば毎日午前8:00にアクセスされ得る。データは、モバイルデバイスのメモリに書き込まれ得る。しかしながら、モバイル通信デバイスの記憶媒体には制約があるので、所定の時間の後には記憶媒体の空きがなくなることがあり、新たなデータのためにデータを消去することが求められる。したがって、翌日、モバイル通信デバイス100は、午前8:00に所定のサイトを訪れて、同じウェブコンテンツ要素の一部を再びダウンロードする必要がある。
【０１２３】
ブラウザ支援サーバ150は、要求および要求に対する応答を含めて、毎日のウェブブラウジング活動のパターンを比較することによって、繰り返されるブラウジングの挙動を検出することができる。たとえば、所定の手順で同じウェブページを要求することによって、繰り返される挙動が検出されると、ブラウザ支援サーバ150は、目的のサービスをモバイル通信デバイス100に提供することができる。ブラウザ支援サーバ150は、モバイル通信デバイス100が記憶媒体(たとえば、キャッシュメモリ)にデータを書き込むことを許可し得る。キャッシュメモリは、ブラウザ支援サーバ150と関連付けられてよく、または異なる記憶媒体であってよい。
【０１２４】
たとえば、ブラウザは、午前8:00に人気のあるウェブサイトにアクセスすることがあり、データがモバイルデバイスのメモリに書き込まれる。しかしながら、モバイル通信デバイスのメモリには制約があるので、所定の時間の後、メモリの空きがなくなることがあり、データは、後で使用されるウェブサイトと関連付けられる新たなデータのために、消去されるように指定される。データを消去する前に、モバイル通信デバイスは、ウェブサイト要素を含むウェブサイトと関連付けられるデータを、BASサーバ150上に位置するキャッシュにアップロードすることができる。あるいは、ブラウザ支援サーバ150は、ウェブサイトから直接データを取得し、モバイル通信デバイスがデータをアップロードすることを必要とすることなく、データをキャッシュに記憶することができる。翌日、モバイル通信デバイスは、午前8:00より前に、または午前5:00に、BASサーバ150上のキャッシュからデータをダウンロードすることができる。午前8:00に、ユーザが所定の人気のあるウェブサイトを訪れたとき、多数のウェブコンテンツ要素がすでにモバイルデバイスのメモリ上にあり、モバイル通信デバイスはウェブサイトを更新する必要がある。別の態様では、キャッシュメモリは、別の位置、たとえばワイヤレスハードドライブまたはドングルに位置してよい。たとえば、人気のあるウェブサイトのユーザプロファイルは、モバイル通信デバイスに記憶されてよく、またはサーバに記憶されてよい。
【０１２５】
方法1200は、この方法の動作を実行するようにプロセッサ実行可能命令によって構成されたプロセッサを有する、コンピューティングデバイス内で実施され得る。方法1200では、プロセッサは、ブロック1202において、ブラウザ支援サーバ150が多数のユーザのブラウジング習慣からデータを集めることによって、動作を開始することができる。
【０１２６】
ブロック1204において、ブラウザ支援サーバ150のプロセッサは、コンピューティングデバイスによって使用される人気のあるウェブページを特定することができる。ブロック1206において、ブラウザ支援サーバは、メタデータがユーザの次のブラウジング活動を予測できるように、メタデータを生成することができる。ブロック1208において、ブラウザ支援サーバは、メタデータをモバイルデバイスに送信して、モバイルデバイスに対して目的のサービスを提供するので、モバイルデバイスはブラウザ支援サーバのキャッシュメモリを使用することができる。ブロック1210において、メタデータを受信するモバイル通信デバイスのプロセッサは、メタデータを使用し、記憶のためにブラウザ支援サーバのキャッシュに送信される、頻繁にアクセスされる人気のあるウェブページを特定する。
【０１２７】
ブロック1212において、プロセッサは、ユーザの習慣に基づいてウェブページをレンダリングすることができ、モバイルデバイスのプロセッサは、キャッシュデータをダウンロードして要求を実行することができる。同じウェブページはレンダリングされず、一般に、一部のウェブページコンテンツは再使用され得るが、他のウェブページコンテンツは更新される可能性が高いことがある。たとえば、前のバージョンの新聞のウェブサイトは新しいバージョンと共通のウェブコンテンツ要素をいくつか有し得るが、いくつかの新しいウェブコンテンツ要素、テキスト、および画像が必要であり得る。別の態様では、ブラウザ支援サーバ150は、追加のプリフェッチサービスも提供することができ、ブラウザ支援サーバ150においてコンテンツを更新し、更新されたコンテンツをキャッシュデータと統合することができる。別の態様では、ブラウザ支援サーバ150は、キャッシュコンテンツをプリコンパイルして、ブラウザがウェブページをレンダリングできるようにバイナリコードまたはネイティブコードをブラウザに送達することができる。
【０１２８】
図13は、メタデータを作成するブラウザ支援サーバに対するある態様の方法1300を示す。メタデータは、JavaScript(登録商標)実行プロファイルに基づき得る。プロファイルは、多数のモバイルデバイスのユーザからの、多数の要求および応答から観測され得る。JavaScript(登録商標)実行プロファイルは、コンピュータデバイスに対して、コンピュータデバイスの動作を改善できるヒントを作成することができる。データは、ウェブ要素のあるJavaScript(登録商標)実行プロファイルが発生する関数の確率と、発生の頻度とを含み得る。これは、あるJavaScript(登録商標)をダウンロードし実行すべきかどうかの判定の基礎となる経験的なデータを提供する。それは、ある句がアクセスされる可能性がほとんどない場合、実行の確率の高いデータにアクセスすることがより良い選択となるからである。
【０１２９】
方法1300は、方法1300の動作を実行するようにプロセッサ実行可能命令によって構成されたプロセッサ131を有する、コンピューティングデバイス内で実施され得る。方法1300では、プロセッサ131は、ブロック1302において、ブラウザ支援サーバ150が「群衆」または多数のユーザのブラウジング習慣のデータを集めることによって、動作を開始することができる。
【０１３０】
ブロック1304において、ブラウザ支援サーバのプロセッサは、多数のウェブユーザから、JavaScript(登録商標)実行プロファイルに関するデータを受信することができる。たとえば、複数のユーザの観測されたプロファイルに基づいて、第1のJavaScript(登録商標)要素は、第1の統計的な実行される可能性を有し得るが、第2のJavaScript(登録商標)要素は、第1の可能性の2分の1の、第2の統計的な実行される可能性を有し得る。たとえば、複数のユーザの観測されたプロファイルに基づいて、第3のJavaScript(登録商標)要素は、5パーセント未満の第3の統計的な実行される可能性を有し得るが、第4のJavaScript(登録商標)要素は、95パーセント未満だがそれに近い(less almost 95 percent)第4の統計的な実行される可能性を有し得る。
【０１３１】
ブロック1306において、ブラウザ支援サーバ150は、第1から第4の統計的な可能性を検討することができる。ブラウザ支援サーバ150は、データを閾値と比較することができる。ブロック1308において、ブラウザ支援サーバ150は、メタデータを生成することができる。メタデータは、ブラウザがユーザの次のブラウジング活動を予測するのを支援することができる。メタデータは、可能性の高い次の活動に関する情報を前もって提供することによって、ブラウザを支援することができる。
【０１３２】
ブロック1310において、ブラウザ支援サーバ150がメタデータをコンピュータデバイスに送信してコンピュータデバイスを支援しブラウザの次の活動を予測できるように、プロセッサがプログラム命令を出力する。たとえば、ウェブページは、他のユーザから観測された経験的なデータに基づいて、実行の確率が高い第4のJavaScript(登録商標)要素を含み得る。プロセッサは、ブラウザの次のステップが第4のJavaScript(登録商標)要素をダウンロードし処理することであり得ることを、検出することができる。プロセッサはこの判断を確認することができるが、第3のJavaScript(登録商標)要素は実行されない可能性が高いので、第3のJavaScript(登録商標)は送信され処理されなくてよい。
【０１３３】
図14は、モバイル通信デバイスの代わりに目的のサービスを提供するための機能を含む、ブラウザ支援サーバに対するある態様の方法1400を示す。ブラウザ支援サーバ150は、モバイル通信デバイスが、所定のウェブサイトに関する情報をブラウザ支援サーバのキャッシュメモリにキャッシュすることを可能にし、さらに、ユーザの習慣に基づいて、キャッシュされたデータをモバイル通信デバイス上またはBASサーバ150上へと退避させないように規定することができる。このようにして、データは、さらなる活動のために分析され得る。たとえば、ウェブサイトが閾値の量と比較してより頻繁にアクセスされる場合、ブラウザ支援サーバ150は、所定の期間、キャッシュが上書きされるのを防ぐことができる。したがって、ブラウザ支援サーバ150は、ブラウザ支援サーバ150上に位置する多数の異なるキャッシュされた状態を含み得る。
【０１３４】
たとえば、ウェブサイトは、モバイル通信デバイスによって午前8:00に頻繁にアクセスされることがあり、データは、モバイルデバイスのメモリに書き込まれる。しかしながら、モバイル通信デバイスのメモリには制約があるので、所定の時間の後、メモリの空きがなくなることがあり、データは、後で使用されるウェブサイトと関連付けられる新たなデータのために、消去される。翌日、モバイル通信デバイスは、午前8:00に所定のサイトを訪れて、ウェブコンテンツ要素を再びダウンロードする必要がある。ブラウザ支援サーバ150は、この挙動を検出することができ、目的のサービスをモバイル通信デバイス100に提供し、モバイル通信デバイス100がブラウザ支援サーバ150と関連付けられるキャッシュメモリへとデータを書き込むことを許可することができる。
【０１３５】
たとえば、ブラウザは、午前8:00に人気のあるウェブサイトにアクセスすることがあり、データがモバイルデバイスのメモリに書き込まれる。しかしながら、モバイル通信デバイスのメモリには制約があるので、所定の時間の後、メモリの空きがなくなることがあり、データは、後で使用されるウェブサイトと関連付けられる新たなデータのために、消去されるように指定される。データを消去する前に、モバイル通信デバイス100は、ウェブサイト要素を含むウェブサイトと関連付けられるデータを、BASサーバ150のキャッシュにアップロードする。翌日、モバイル通信デバイスは、午前8:00より前、午前5:00に、キャッシュサーバからデータをダウンロードする。午前8:00に、ユーザが所定の人気のあるウェブサイトを訪れたとき、多数のウェブコンテンツ要素がすでにモバイルデバイスのメモリ上にあり、モバイル通信デバイスはウェブサイトを更新する必要がある。さらに、このユーザの挙動が規定された期間繰り返される場合、キャッシュサーバ上のデータは、上書きまたは消去されない。この態様では、ブラウザ支援サーバ150は、ユーザの習慣のさらなる分析のために、キャッシュされたデータを検討することができる。
【０１３６】
方法1400は、方法1400の動作を実行するようにプロセッサ実行可能命令によって構成されたプロセッサを有する、コンピューティングデバイス内で実施され得る。方法1400では、プロセッサは、ブロック1402において、ブラウザ支援サーバ150が多数のユーザのブラウジング習慣からデータを集めることによって、動作を開始することができる。
【０１３７】
ブロック1404において、ブラウザ支援サーバのプロセッサは、ユーザプロファイルおよびユーザのブラウジング習慣についての情報を集めることができる。ブロック1406において、ブラウザ支援サーバ150は、目的のサービスを提供することができる。ブラウザ支援サーバ150は、コンピュータデバイスがユーザのブラウジング習慣に基づいてデータをキャッシュすること許可し得る。ブロック1408において、コンピュータデバイスは、ブラウザ支援サーバ150のキャッシュメモリを使用して、人気のあるウェブページ要素のキャッシュにデータを書き込むことができる。ブロック1410において、頻繁にアクセスされる人気のあるウェブページおよびウェブページ要素が、記憶のためにブラウザ支援サーバ150のキャッシュに送信され、BASは、キャッシュデータが消去されるべきではなくさらなる分析のために標識されることを指示する。
【０１３８】
ブロック1412において、コンピューティングデバイスのプロセッサは、人気のあるウェブサイトに対する要求を送信して、ユーザの習慣に基づいてウェブページをレンダリングすることができる。ブロック1414において、モバイルデバイスのプロセッサ131は、ブラウザ支援サーバからのキャッシュデータを読み取り、要求を実行することができる。別の態様では、ブラウザ支援サーバ150は、追加のプリフェッチサービスも提供することができ、ブラウザ支援サーバにおいてコンテンツを更新し、更新されたコンテンツをキャッシュデータと統合することができる。別の態様では、ブラウザ支援サーバ150は、キャッシュコンテンツをプリコンパイルして、ブラウザがウェブページをレンダリングできるようにバイナリコードまたはネイティブコードをブラウザに送達することができる。ブロック1414において、ブラウザ支援サーバは、さらなる最適化およびプリフェッチのために、キャッシュ状態を分析することができる。この態様では、他のユーザにヒントを与えるためのメタデータは、ブロック1414における分析に一部基づいて生成され得る。
【０１３９】
図15は、モバイル通信デバイス100の代わりに目的のサービスを提供するための機能を含む、ブラウザ支援サーバ150に対するある態様の方法1500を示す。ブラウザ支援サーバ150は、モバイル通信デバイス100が、所定のウェブサイトまたは所定のウェブ要素に関する情報をキャッシュすることを許可する。ブラウザ支援サーバ150はさらに、モバイル通信デバイス100にヒントを与えるために、キャッシュデータを補強し、他のデータでキャッシュを補足することができる。
【０１４０】
たとえば、第1のウェブサイトは、モバイル通信デバイスによって午前8:00に頻繁にアクセスされることがあり、データは、モバイルデバイスのメモリに書き込まれ得る。しかしながら、所定の時間の後、モバイル通信デバイスのメモリには制約があり得るので、メモリの空きがなくなり得る。データは、後で使用される第2のウェブサイトと関連付けられる新たなデータのために、消去され得る。翌日、ユーザは、午前8:00にモバイル通信デバイス上のブラウザに指示することがあり、第1のウェブサイトを訪れることがあり、ウェブコンテンツ要素を再びダウンロードする必要があり得る。
【０１４１】
ブラウザ支援サーバ150(またはモバイル通信デバイス100)は、非効率な挙動を検出することができ、目的のサービスをモバイル通信デバイス100に提供することができる。ブラウザ支援サーバ150は、モバイル通信デバイス100が、ブラウザ支援サーバ150と関連付けられる記憶媒体またはキャッシュメモリにデータを書き込むことを許可し得る。加えて、ブラウザ支援サーバ150は、他の学習された情報またはヒントによって、キャッシュされたデータを補強し補足することができる。たとえば、ブラウザ支援サーバは、メタデータのヒントを提供し、メタデータのヒントをキャッシュされたデータ内に埋め込むことができる。たとえば、ブラウザ支援サーバ150は、キャッシュデータをプリコンパイルし、バイナリフォーマット(またはネイティブなフォーマット)のキャッシュされたデータをモバイル通信デバイス100のために提供することができる。
【０１４２】
たとえば、ブラウザは、午前8:00に人気のあるウェブサイトにアクセスすることがあり、データがモバイルデバイスのメモリに書き込まれ得る。しかしながら、モバイル通信デバイスのメモリには制約があるので、所定の時間の後、メモリの空きがなくなることがあり、データは、後で使用されるウェブサイトと関連付けられる新たなデータのために、消去されるように指定される。データを消去する前に、モバイル通信デバイス100は、ウェブサイト要素を含むウェブサイトと関連付けられるデータを、BASサーバ150のキャッシュにアップロードする。ブラウザ支援サーバ150はまた、キャッシュデータを最適化し、メタデータをキャッシュされたデータに埋め込むことができる。ブラウザ支援サーバ150は、モバイル通信デバイス100の便宜のために、キャッシュデータ内でメタデータのヒントを与えることができる。
【０１４３】
翌日、モバイル通信デバイス100は、午前8:00よりも前に、補強され学習されたデータを伴うキャッシュサーバから、データをダウンロードする。午前8:00に、ユーザが所定の人気のあるウェブサイトを訪れたとき、多数のウェブコンテンツ要素がすでにモバイルデバイスのメモリ上にあり、モバイル通信デバイス100は更新の後にページをレンダリングすることができる。さらに、モバイル通信デバイス100は、第2の新たなウェブサイトを訪れ、ダウンロードされたコンテンツ内の埋め込まれたメタデータを使用して、新たなウェブコンテンツを解析し、実行し、または分析することができる。
【０１４４】
方法1500は、方法1500の動作を実行するようにプロセッサ実行可能命令によって構成されたプロセッサ131を有する、コンピューティングデバイス内で実施され得る。方法1500において、プロセッサ131は、モバイル通信デバイス100がウェブページに対する要求を送信するブロック1502において、動作を開始することができる。
【０１４５】
ブロック1504において、モバイル通信デバイスのプロセッサは、ユーザプロファイルについての情報を集め、ユーザプロファイルをブラウザ支援サーバ150に送信することができる。ブロック1506において、ブラウザ支援サーバ150は、目的のサービスを提供することができ、コンピュータデバイスがユーザのブラウジング習慣に基づいてデータを記憶媒体へキャッシュすることを、許可することができる。ブロック1508において、ブラウザ支援サーバ150は、学習された情報を含むメタデータによってキャッシュデータを補強して、モバイル通信デバイスを支援することができる。ブロック1510において、コンピューティングデバイスのプロセッサは、ユーザの習慣に基づいて、人気のあるウェブサイトに対する要求を送信して、ウェブページをレンダリングすることができる。ブロック1512において、モバイルデバイスのプロセッサは、ブラウザ支援サーバ150からキャッシュデータをダウンロードして要求を実行することができ、また、任意選択で、メタデータをダウンロードして、現在のまたは今後のブラウザヒントによってブラウザを支援することができる。同じウェブページはレンダリングされなくてよく、一般に、一部のウェブページコンテンツは再使用され得るが、他のウェブページコンテンツは更新される可能性が高いことがある。ブラウザ支援サーバ150はまた、最適化を経たキャッシュデータを提供することができる。
【０１４６】
図16は、ブラウザ支援サーバ150がユーザの個人プロファイルに基づいてキャッシュ状態をリロードする高水準の図を示す。たとえば、1日目の午前8:00に、モバイル通信デバイス100を使用するユーザは、キャッシュ状態A 1602を含む頻繁にアクセスされるウェブページをダウンロードし得る。ユーザは、所定の期間ウェブサイトを閲覧することがあり、いくつかの他のハイパーリンクを使用してウェブページから離れることがある。1日目の午後3:00に、ユーザは、様々なウェブコンテンツを有する様々なウェブサイトを見ることがあり、キャッシュ状態B 1604を生成することがある。通常は、キャッシュA 1602は削除されるであろう。しかしながら、モバイル通信デバイス100およびブラウザ支援サーバ150はインターネットに接続されており、モバイルデバイス100はサーバ150をキャッシュメモリとして使用することができる。ブラウザ支援サーバ150は、モバイル通信デバイス100に対して目的のサービスを提供することができる。ブラウザ支援サーバ150は、(キャッシュ状態A 1602を生成した)ウェブサイトが頻繁にアクセスされることを検出することができる。そのウェブサイトは、午前8:00という同じ時間帯に、ほとんど毎日ユーザによってアクセスされる。
【０１４７】
ブラウザ支援サーバ150は、参照矢印1610によって示されるように、サーバ150にキャッシュ状態A 1602を記憶する。モバイル通信デバイス100は、異なるウェブページに対する要求を送信し、データ1604をダウンロードすることができる。ブラウザ支援サーバ150は、キャッシュデータA 1606を補強することができる。ブラウザ支援サーバ150は、メタデータを埋め込むことができ、または、ユーザのブラウジング習慣から学習された情報を反映するデータを追加することができる。サーバ150は、他のユーザからのデータを埋め込み、モバイル通信デバイスのブラウザ100にヒントを与えることができる。2番目の日である2日目の午前5:00に、ブラウザ支援サーバ150は、矢印1612で示されるように、キャッシュデータA 1608をサーバ150からモバイル通信デバイス100に(キャッシュデータA 1608内に含まれ保存される、任意の更新されたデータとともに)プッシュすることができる。たとえば、2日目の午前8:00に、モバイル通信デバイス100を使用するユーザは、頻繁にアクセスされるウェブページをダウンロードするための要求を送信することができ、キャッシュデータA 1608内に含まれる多くのウェブ要素を含めることができ、ウェブサイトを更新することができる。ブラウザ支援サーバ150は、デバイス100のL2キャッシュとして機能することができ、キャッシュ状態のセットを保持することができる。
【０１４８】
図17は、JavaScript(登録商標)を効率的に解析し実行するためのメタデータを提供することができる、ブラウザ支援サーバに対するある態様の方法1700を示す。方法1700は、方法1700の動作を実行するようにプロセッサ実行可能命令によって構成されたプロセッサを有する、コンピューティングデバイス内で実施され得る。方法1700において、プロセッサは、モバイル通信デバイスがウェブページに対する要求を送信するブロック1702において、動作を開始することができる。
【０１４９】
ブロック1704において、ブラウザ支援サーバ150のプロセッサは、モバイル通信デバイスがJavaScript(登録商標)を効率的に解析し実行するためのヒントを編成することができる。たとえば、メタデータは、スクリプトの統計的に関連のある部分を特定することができる。ブロック1706において、ブラウザ支援サーバは、JavaScript(登録商標)を効率的に解析し実行するためのヒントを含むメタデータを、モバイル通信デバイスに送達することができる。ブロック1708において、プロセッサは、メタデータを使用してJavaScript(登録商標)を解析することができる。ブロック1710において、モバイルデバイスのプロセッサは、ヒントを使用してJavaScript(登録商標)を実行することができる。ブロック1712において、モバイルデバイスは、ブラウザ支援サーバにフィードバックを送信する。
【０１５０】
図18は、過度の量の処理をモバイルデバイスのプロセッサに行わせ得るウェブページ要素をウェブページに対する要求が含み得ることを、ブラウザ支援サーバ150が検出する、高水準の図を示す。この要求は、ウェブページのレンダリングを非効率な方式にし得る。この態様では、ブラウザ支援サーバ150は、あるウェブページ要素が存在することを検出することができ、ウェブページ要素を、バイナリフォーマットまたはモバイルデバイス100のネイティブなフォーマットへとプリコンパイルすることができる。ブラウザ支援サーバ150は、ウェブページ要素に対応するバイナリファイルを生成することができる。ブラウザ支援サーバ150は、ロード時間をより短くするために、バイナリファイルをモバイル通信デバイス100に送信することができる。
【０１５１】
たとえば、午前8:00に、モバイル通信デバイス100を使用するユーザは、要求1802をインターネット114に送信することによって、ウェブページをダウンロードしようとし得る。要求は、サーバ(図示されない)によって受信されてよく、要求に対する応答は、HTML、JavaScript(登録商標)、CSS、およびオブジェクトを含むデータ1804を返す可能性があり得る。モバイル通信デバイス100はまた、要求1806をブラウザ支援サーバ150に送信することができる。要求1806は、ブラウザ支援サーバ150が、HTML、JavaScript(登録商標)、CSS、およびオブジェクトをより効率的に解析し実行するためのヒントを提供できるかどうかを判定することができる。
【０１５２】
ヒントに加えて、ブラウザ支援サーバ150はまた、所定のアーキテクチャについて、JavaScript(登録商標)を直接分析してプリコンパイルすることができる。ブラウザ支援サーバ150は、JavaScript(登録商標)を処理することができ、要求されたJavaScript(登録商標)ウェブ要素の直接のバイナリのプリコンパイルされた変換物1810を生成することができる。要求されたJavaScript(登録商標)ウェブ要素の直接のバイナリ変換物1810は、モバイル通信デバイス100のブラウザによる即時の使用のために、矢印1808によって示されるように、モバイル通信デバイス100に送信され得る。プリコンパイルされたバイナリ1810は、モバイル通信デバイス100が、JavaScript(登録商標)実行経路と関連付けられる解析、分析、および実行時処理を避けることを可能にする。モバイルデバイス100は任意選択で、フィードバックをブラウザ支援サーバ150に提供することができる。代替的な態様では、ブラウザ支援サーバは、仮想化されたモジュールをモバイルデバイス100上で提供し、データを仮想化されたモジュールに送達することができる。
【０１５３】
図19は、JavaScript(登録商標)要素を検出し、要求されたJavaScript(登録商標)ウェブ要素の直接のバイナリ変換物を提供してプリコンパイルされたバイナリファイルまたはネイティブファイルを形成する、ブラウザ支援サーバに対するある態様の方法1900を示す。直接のバイナリ変換物は、モバイル通信デバイスのブラウザによる即時の使用のために、モバイル通信デバイス100に送信される。方法1900は、方法1900の動作を実行するようにプロセッサ実行可能命令によって構成されたプロセッサ131を有する、コンピューティングデバイス内で実施され得る。方法1900において、プロセッサ131は、モバイル通信デバイス100がウェブページに対する要求を送信するブロック1902において、動作を開始することができる。
【０１５４】
ブロック1904において、モバイル通信デバイスのプロセッサは、JavaScript(登録商標)を効率的に解析し実行するために、要求をブラウザ支援サーバ150に送信することができる。ブロック1906において、ブラウザ支援サーバ150は、要求を分析し、モバイル通信デバイス100のためにウェブページのJavaScript(登録商標)をプリコンパイルすることができる。ブロック1908において、ブラウザ支援サーバ150は、少なくとも1つのプリコンパイルされたバイナリファイルを形成することができ、プリコンパイルされたバイナリファイルをモバイルデバイスのプロセッサ131に送信することができる。直接のバイナリ変換物は、モバイル通信デバイスのブラウザによる即時の使用のために、モバイル通信デバイス100に送信され得る。あるいは、変換物は、モバイル通信デバイスのブラウザと関連付けられる別のネイティブな言語によるものであってよい。ネイティブな言語は、モバイル通信デバイスが、JavaScript(登録商標)実行経路の解析、分析、および実行時処理を避けることを可能にする。ブロック1910において、モバイルデバイスのプロセッサ131は、プリコンパイルされたデータを使用してウェブページをレンダリングすることができる。ブロック1912において、モバイルデバイスは任意選択で、ブラウザ支援サーバにフィードバックを送信することができる。
【０１５５】
図20は、ライブラリが要求されていることを検出する、ブラウザ支援サーバに対するある態様の方法2000を示す。ライブラリは、YUIライブラリ、またはjQueryライブラリ、または当技術分野で知られている任意のライブラリであってよい。YUIは、DOM Scripting、DHTML、およびAjaxのような技法を使用して、高度にインタラクティブなウェブアプリケーションを構築するための、JavaScript(登録商標)のユーテリティおよび制御のライブラリである。jQueryは、HTMLドキュメントの詳しい検討、イベントの処理、アニメーティング、および、高速なウェブ開発のためのAjax対話を簡略化し、CSS3に準拠する、高速かつ正確なJavaScript(登録商標)ライブラリである。
【０１５６】
ブラウザ支援サーバ150は、第1のライブラリ部分はより頻繁に実行されるが第2のライブラリ部分はあまり頻繁に実行されないという、メタデータを提供することができる。このようにして、プロセッサ131は、実行されない可能性が高いかもしれない第2のライブラリ部分よりも、統計的に使用の確率が高い可能性のある第1のライブラリ部分をダウンロードすることができる。他の態様では、この仮定が正しくない場合、ブラウザは、実現可能な限り早く、フィルライブラリを送信することができる。方法2000は、方法2000の動作を実行するようにプロセッサ実行可能命令によって構成されたプロセッサ131を有する、コンピューティングデバイス内で実施され得る。方法2000において、プロセッサは、サーバによって受信されるウェブページに対する要求をモバイル通信デバイスが送信し得るブロック2002において、動作を開始することができる。
【０１５７】
ブロック2004において、モバイル通信デバイスのプロセッサは、モバイル通信デバイスに対するヒントを取得し要求を処理するための要求を、ブラウザ支援サーバに送信することができる。ブラウザ支援サーバは、要求を分析することができ、ブロック2006において、プロセッサは、ライブラリの最も頻繁に使用される部分または最も頻繁に実行される部分に関するデータを、モバイル通信デバイスに提供することができる。ブラウザ支援サーバはまた、任意選択で、最も使用される頻度の低いライブラリ部分または最も実行される頻度の低いライブラリ部分についての情報を提供することができる。ブロック2008において、モバイルデバイスのプロセッサは、最も頻繁に使用されるライブラリ部分(または最も頻繁に実行されるライブラリ部分)を最初のダウンロードすることができ、他の部分を後でダウンロードすることができる。ブロック2010において、モバイルデバイスのプロセッサは、その部分を実行することができ、ライブラリの第2の部分がもしあれば、後のある時点でダウンロードすることができる。ブロック2012において、モバイルデバイスは任意選択で、ブラウザ支援サーバにフィードバックを送信することができる。
【０１５８】
図21は、経験的なデータに基づいてウェブページの最も見られている部分についてのヒントを検出し提供することができる、ブラウザ支援サーバ150に対するある態様の方法2100を示す。ブラウザ支援サーバ150は、モバイル通信デバイスがウェブページをより効率的な方式で処理できるように、メタデータをモバイルデバイスのプロセッサ131に提供する。方法2100は、方法2100の動作を実行するようにプロセッサ実行可能命令によって構成されたプロセッサ131を有する、コンピューティングデバイス内で実施され得る。方法2100において、プロセッサは、サーバによって受信されるウェブページに対する要求をモバイル通信デバイスが送信するブロック2102において、動作を開始することができる。
【０１５９】
ブロック2104において、モバイル通信デバイス100のプロセッサ131は、モバイル通信デバイス100に対するヒントを取得し要求を処理するための要求を、ブラウザ支援サーバ150に送信することができる。ヒントは、サーバ150からモバイル通信デバイス100に送信されるメタデータ中に含まれる。ブラウザ支援サーバ150は、要求を分析することができる。ブロック2106において、プロセッサ131は、ウェブサイトの最も頻繁に見られているウェブページ部分に関するデータを、モバイル通信デバイス100に提供することができる。
【０１６０】
ブラウザ支援サーバ150は、多数のユーザから観測された経験則または統計から、この情報を導出することができる。ブラウザ支援サーバ150はまた、任意選択で、ウェブサイトの最も見られていない部分についての情報を提供することができる。ブロック2108において、モバイルデバイスのプロセッサ131は、最も頻繁に見られているウェブサイト部分を最初にダウンロードすることができ、ブロック2110において、他の部分を後の時点でダウンロードすることができる。ブロック2110において、モバイルデバイスのプロセッサ131は、その部分を実行することができ、第2の部分を後でダウンロードすることができる。ブロック2112において、モバイルデバイス100は、ブラウザ支援サーバ150にフィードバックを送信することができる。
【０１６１】
図22は、態様のいずれかとともに使用するのに適切な受信機デバイスのシステムブロック図である。典型的な受信機デバイス2230は、内部メモリ2232と、ディスプレイ2233と、スピーカー2254とに結合された、プロセッサ2231を含み得る。加えて、受信機デバイスは、プロセッサ2231に結合されたワイヤレスデータリンクおよび/またはセルラー電話送受信機2235と、プロセッサ2331に結合されたモバイルマルチメディアブロードキャスト受信機2236とに接続され得る、電磁放射を送信および受信するためのアンテナ2234を含み得る。受信機デバイス2230は通常、ユーザ入力を受け取るためのメニュー選択ボタンまたはロッカースイッチ2238も含む。
【０１６２】
様々な態様は、図23に示されるサーバ2300のような、種々の市販のサーバデバイスのいずれにおいても実装され得る。そのようなサーバ2300は通常、揮発性メモリ2302と、ディスクドライブ2303のような大容量の不揮発性メモリとに結合された、プロセッサ2301を含む。サーバ2300はまた、プロセッサ2301に結合された、フレキシブルディスクドライブ、コンパクトディスク(CD)またはDVDディスクドライブ2306も含み得る。サーバ2300はまた、他のブロードキャストシステムコンピュータおよびサーバに結合されたローカルエリアネットワークなど、ネットワーク2305とネットワークインターフェース接続を確立するための、プロセッサ2301に結合されたネットワークアクセスポート2304も含み得る。
【０１６３】
プロセッサ2331、2301は、上で説明された様々な態様の機能を含む、種々の機能を実行するためのソフトウェア命令(アプリケーション)によって構成され得る、任意のプログラマブルマイクロプロセッサ、マイクロコンピュータ、または1つもしくは複数の多重プロセッサチップであり得る。いくつかのデバイスでは、ワイヤレス通信機能専用の1つのプロセッサおよび他のアプリケーションを実行することに専用の1つのプロセッサのような、多重プロセッサ2331、2301が提供され得る。一般的には、ソフトウェアアプリケーションは、アクセスされプロセッサ2331、2301にロードされる前に、内部メモリ2232、2302、および2303内に記憶され得る。プロセッサ2331、2301は、アプリケーションソフトウェア命令を記憶するのに十分な内部メモリを含み得る。多くのデバイスでは、内部メモリは、揮発性メモリ、またはフラッシュメモリなどの不揮発性メモリ、または両方の混合であり得る。本明細書では、メモリへ一般的な言及は、内部メモリ、またはデバイスに差し込まれるリムーバブルメモリと、プロセッサ2331、2301自体の中のメモリとを含む、プロセッサ2331、2301によってアクセス可能なメモリを指す。
【０１６４】
図24は、ラップトップコンピュータ2410を示す。上で説明された態様はまた、図24に示されたラップトップコンピュータ2410などの種々のパーソナルコンピューティングデバイス内で実装され得る。多くのラップトップコンピュータは、コンピュータのポインティングデバイスとして働くタッチパッドのタッチ面2417を含み、したがって、タッチスクリーンディスプレイを備え、上で説明されたモバイルコンピューティングデバイスに実装されたものと同様のドラッグ、スクロール、およびフリックのジェスチャを受け入れることができる。ラップトップコンピュータ2410は通常、揮発性メモリ2412と、フラッシュメモリのディスクドライブ2413のような大容量の不揮発性メモリとに結合されたプロセッサ2411を含む。コンピュータ2410はまた、プロセッサ2411に結合された、フレキシブルディスクドライブ2414およびコンパクトディスク(CD)ドライブ2415も含み得る。コンピュータデバイス2410はまた、USBもしくはFireWire(登録商標)コネクタソケット、または、プロセッサ2411をネットワークに結合するための他のネットワーク接続回路のような、データ接続を確立しまたは外部メモリデバイスを受け入れるための、プロセッサ2411に結合された、いくつかのコネクタポートを含み得る。ノートブック構成では、コンピュータのハウジングは、すべてがプロセッサ2411に結合される、タッチパッド2417、キーボード2418、およびディスプレイ2419を含む。コンピューティングデバイスの他の構成は、よく知られているように、(たとえば、USB入力を介して)プロセッサに結合されたコンピュータマウスまたはトラックボールを含んでよく、それらはまた、様々な態様とともに使用され得る。
【０１６５】
上記の方法の説明および処理流れ図は、単に説明のための例として提供したものであり、様々な態様のステップを提示された順序で実施しなければならないことを要求または暗示するものではない。当業者が諒解するように、上記の態様におけるステップの順序は、どのような順序で実施されてもよい。「その後」、「次いで」、「次に」などの単語は、ステップの順序を限定するものではなく、これらの単語は、単に、方法の説明において読者を案内するために使用される。さらに、たとえば、冠詞「a」、「an」または「the」の使用による単数形での請求要素への言及は、その要素を単数に限定するものとして解釈されるべきではない。
【０１６６】
本明細書で開示された態様に関して説明された様々な例示的な論理ブロック、モジュール、回路、およびアルゴリズムステップは、電子ハードウェア、コンピュータソフトウェア、または両方の組合せとして実装され得る。ハードウェアとソフトウェアのこの互換性を明確に示すために、様々な例示的なコンポーネント、ブロック、モジュール、回路、およびステップを、上では概してそれらの機能に関して説明した。そのような機能をハードウェアとして実装するか、ソフトウェアとして実装するかは、具体的な適用例および全体的なシステムに課される設計制約に依存する。当業者は、説明された機能を具体的な適用例ごとに様々な方法で実装することができるが、そのような実装の決定は、本発明の範囲からの逸脱を生じるものと解釈すべきではない。
【０１６７】
本明細書で開示される態様に関して記載される様々な例示的論理、論理ブロック、モジュールおよび回路を実装するために使用されるハードウェアは、汎用プロセッサ、デジタル信号プロセッサ(DSP)、特定用途向け集積回路(ASIC)、フィールドプログラマブルゲートアレイ(FPGA)もしくは他のプログラマブル論理デバイス、個別ゲートもしくはトランジスタ論理、個別ハードウェアコンポーネント、または、本明細書で説明された機能を実行するように設計されたそれらの任意の組合せで実装または実行され得る。汎用プロセッサは、マイクロプロセッサでもよいが、代替として、そのプロセッサは任意の従来のプロセッサ、コントローラ、マイクロコントローラ、または状態機械でもよい。プロセッサはまた、たとえばDSPおよびマイクロプロセッサの組合せ、複数のマイクロプロセッサ、DSPコアと連携した1つまたは複数のマイクロプロセッサ、あるいは任意の他のそのような構成など、コンピューティングデバイスの組合せとして実装され得る。代替的に、いくつかのステップまたは方法が、所与の機能に固有の回路によって実行され得る。
【０１６８】
1つまたは複数の例示的な態様では、説明された機能は、ハードウェア、ソフトウェア、ファームウェア、またはそれらの組合せで実装され得る。機能は、ソフトウェアで実装される場合、1つまたは複数の命令またはコードとして、非一時的コンピュータ可読媒体またはプロセッサ可読記憶媒体に記憶され得る。本明細書で開示される方法またはアルゴリズムのステップは、非一時的コンピュータ可読媒体上に常駐し得る、実行されるプロセッサ実行可能なソフトウェアモジュールで具現化され得る。非一時的コンピュータ可読媒体およびプロセッサ媒体は、コンピュータまたはプロセッサによってアクセスされ得る任意の使用可能な記憶媒体を含む。限定ではなく例として、そのような非一時的コンピュータ可読媒体は、RAM、ROM、EEPROM、CD-ROMもしくは他の光ディスク記憶装置、磁気ディスク記憶装置もしくは他の磁気記憶デバイス、または、命令もしくはデータ構造の形式で所望のプログラムコードを搬送もしくは記憶するために使用され得るとともに、コンピュータによってアクセスされ得る任意の他の媒体を含み得る。本明細書で使用する場合、ディスク(disk)およびディスク(disc)は、コンパクトディスク(disc)(CD)、レーザディスク(disc)、光ディスク(disc)、デジタル多用途ディスク(disc)(DVD)、フレキシブルディスク(disk)、およびブルーレイディスク(disc)を含み、ディスク(disk)は、通常、磁気的にデータを再生し、ディスク(disc)は、レーザで光学的にデータを再生する。上記の組合せも非一時的コンピュータ可読媒体の範囲内に含めるべきである。加えて、方法またはアルゴリズムの動作は、コンピュータプログラム製品に組み込まれ得る、非一時的な機械可読媒体および/または非一時的コンピュータ可読媒体上のコードおよび/または命令の、1つまたは任意の組合せ、またはそのセットとして存在し得る。
【０１６９】
開示された態様の上記の説明は、当業者の誰でもが本発明を製作または使用できるように提供されたものである。これらの態様への様々な修正が当業者には容易に明らかであり、本明細書で定義される一般的な原理は、本発明の趣旨または範囲を逸脱することなく他の態様に適用され得る。したがって、本発明は、本明細書で示された態様に限定されるものではなく、以下の特許請求の範囲ならびに本明細書で開示された原理および新規の特徴に合致する、最も広い範囲を与えられるべきである。
【符号の説明】
【０１７０】
100  モバイルデバイス
110  ディスプレイ
114  インターネット
120  コンピュータプラットフォーム
130  ワイヤレスネットワーク
131  プロセッサ
132  基地局
135  アプリケーションプログラミングインターフェース
140  メディアインターフェース
142  登録サーバ
145  ゲートウェイインターフェース
150  ブラウザ支援サーバ
326  キャリアネットワーク
330  データリンク
332  モバイル交換センター
336  別のネットワーク
【図１】
0005869124.tif 000002
【図２】
0005869124.tif 000003
【図３】
0005869124.tif 000004
【図４】
0005869124.tif 000005
【図５Ａ】
0005869124.tif 000006
【図５Ｂ】
0005869124.tif 000007
【図５Ｃ】
0005869124.tif 000008
【図６】
0005869124.tif 000009
【図７】
0005869124.tif 000010
【図８】
0005869124.tif 000011
【図９】
0005869124.tif 000012
【図１０】
0005869124.tif 000013
【図１１】
0005869124.tif 000014
【図１２】
0005869124.tif 000015
【図１３】
0005869124.tif 000016
【図１４】
0005869124.tif 000017
【図１５】
0005869124.tif 000018
【図１６】
0005869124.tif 000019
【図１７】
0005869124.tif 000020
【図１８】
0005869124.tif 000021
【図１９】
0005869124.tif 000022
【図２０】
0005869124.tif 000023
【図２１】
0005869124.tif 000024
【図２２】
0005869124.tif 000025
【図２３】
0005869124.tif 000026
【図２４】
0005869124.tif 000027