JP2014525103A - クラウドコンピューティングによって向上したウェブブラウジング - Google Patents

クラウドコンピューティングによって向上したウェブブラウジング Download PDF

Info

Publication number
JP2014525103A
JP2014525103A JP2014522829A JP2014522829A JP2014525103A JP 2014525103 A JP2014525103 A JP 2014525103A JP 2014522829 A JP2014522829 A JP 2014522829A JP 2014522829 A JP2014522829 A JP 2014522829A JP 2014525103 A JP2014525103 A JP 2014525103A
Authority
JP
Japan
Prior art keywords
computing device
metadata
processor
web page
server
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2014522829A
Other languages
English (en)
Other versions
JP5869124B2 (ja
Inventor
ベルーズ・コラシャディ
モハンマド・エイチ・レシャディ
サウミトラ・エム・ダス
Original Assignee
クアルコム,インコーポレイテッド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by クアルコム,インコーポレイテッド filed Critical クアルコム,インコーポレイテッド
Publication of JP2014525103A publication Critical patent/JP2014525103A/ja
Application granted granted Critical
Publication of JP5869124B2 publication Critical patent/JP5869124B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/14Tree-structured documents
    • G06F40/143Markup, e.g. Standard Generalized Markup Language [SGML] or Document Type Definition [DTD]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/93Document management systems
    • G06F16/94Hypermedia
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/957Browsing optimisation, e.g. caching or content distillation
    • G06F16/9577Optimising the visualization of content, e.g. distillation of HTML documents

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Business, Economics & Management (AREA)
  • General Business, Economics & Management (AREA)
  • Health & Medical Sciences (AREA)
  • Artificial Intelligence (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

方法およびデバイスは、サーバと、少なくとも2つの異なるコンピューティングデバイス上で動作可能な少なくとも2つのウェブブラウザとを含む。各ブラウザは、ウェブページを処理しレンダリングした結果をサーバに報告する。サーバはデータを集約する。サーバは、集約されたブラウザからメタデータを生成する。サーバは、生成されたメタデータを少なくとも1つのコンピューティングデバイスに送信する。コンピューティングデバイスは、提供されたメタデータの少なくとも一部分を使用して、ウェブページをレンダリングする。メタデータは、並列に処理され得るJavaScript(登録商標)の部分を特定することができる。メタデータは、ロードされる必要のないライブラリ部分を特定することができる。メタデータは、ウェブページの第2の部分よりも前に最初にレンダリングされ得る、ウェブページの部分を特定することができる。メタデータをコンピューティングデバイスに返すことで、ウェブページに対する要求を解析し、分析し、または実行する際、コンピューティングデバイスを支援することができる。

Description

本発明は全般にコンピューティングデバイスに関する。より詳細には、本発明は、コンピューティングデバイス上のリソースを節約するためのヒントをウェブブラウザに与え、ウェブブラウザの次の動作を予測するための方法に関する。
人々はますます、モバイルコンピューティングデバイスを使用してメディアを利用している。一般に、モバイルコンピューティングデバイスでは、バッテリーの持続時間が限られている。バッテリーを使い果たすと、モバイルデバイスは停止し、電源コンセントが見つかるまで、または新たなバッテリーが提供されるまで、再起動できない。バッテリーが消耗している間、ユーザはモバイルデバイスを使用できないので、上記のことはユーザを非常に苛立たせるものであり得る。加えて、モバイルデバイスが非効率であることがある。モバイルデバイスは、ユーザが知らないうちに、モバイル帯域幅、処理リソース、およびバッテリーリソースを浪費する。たとえば、モバイルデバイスのブラウザは、ライブラリのような非常に大きなファイルを、ライブラリの一部しか必要ではない場合にダウンロードすることがある。加えて、ユーザは、ウェブページをダウンロードするのに長時間待つのを好まず、ウェブサイトまたはメディアソースがすぐに表示されない時は苛立つようになる。
一部のユーザは一般に、自身のモバイルコンピューティングシステムの何らかの日常的なブラウジングルーティンまたは習慣に従う。たとえば、ユーザは、ウェブページのある部分(たとえば、株式市況またはスポーツのスコア)に、他の部分よりも頻繁にアクセスすることがある。多くのユーザは、メディアを利用する際に何らかの日常的な習慣に従う。たとえば、最近起きた報道価値のある出来事がある場合、多くのユーザが同じウェブページにアクセスし、その報道価値のあるコンテンツを探すであろう。
方法およびデバイスは、コンピューティングデバイス上での改善されたウェブブラウジングを可能にする。方法は、コンピューティングデバイスからウェブページに対する要求を送信する、プロセッサを含む。プロセッサは、コンピューティングデバイスからブラウザアシスタントに要求を送信する。ブラウザアシスタントは、メタデータをコンピューティングデバイスに返す。メタデータは、ウェブページに対する要求を解析し、分析し、または実行する際、コンピューティングデバイスを支援する。
別の態様では、システムは、サーバと、少なくとも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 別のネットワーク

Claims (127)

  1. コンピューティングデバイス上でウェブページをレンダリングするための方法であって、
    前記コンピューティングデバイスからウェブページに対する要求を送信するステップと、
    ブラウザアシスタントに対して、前記コンピューティングデバイスから要求を送信するステップと、
    前記ウェブページに対する前記要求を解析し、分析し、または実行する際、前記コンピューティングデバイスを支援するために、メタデータを前記コンピューティングデバイスに返すステップとを含む、方法。
  2. 前記コンピューティングデバイスに返される前記メタデータが、
    JavaScript(登録商標)関数の実行確率と、
    データを解析するためのASTデータと、
    スクリプトトークンデータと、
    字句情報と、
    前記コンピューティングデバイスを支援するためにサーバにおいて処理されるデータからの返されたバイナリコードと、
    前記コンピューティングデバイスにおいてCSSウェブページデータを処理するのを支援するためのCSSメタデータと、
    前記コンピューティングデバイスにおいてJavaScript(登録商標)ウェブページデータを処理するのを支援するためのJavaScript(登録商標)メタデータと、
    前記コンピューティングデバイスにおいてHTMLウェブページデータを処理するのを支援するためのHTMLメタデータと、
    これらの組合せとからなる群から選択されるデータを含む、請求項1に記載の方法。
  3. 前記コンピューティングデバイスに返される前記メタデータが、複数の観測されたユーザのブラウジング統計を含み、前記方法が、
    前記複数の観測されたブラウジング統計を使用して、前記コンピューティングデバイスにおいて、前記ウェブページの部分を他の部分よりも前にロードするのを支援するステップをさらに含む、請求項1に記載の方法。
  4. 前記コンピューティングデバイスに返される前記メタデータが、所定の実行の確率を有するコードのある部分に関する統計を含む、請求項1に記載の方法。
  5. 前記コンピューティングデバイスに返される前記メタデータが、JavaScript(登録商標)コードがサーバ上で実行されることで生じる変換されたバイナリコードを含み、前記方法が、
    前記バイナリコードを前記コンピューティングデバイスに送信して、前記サーバにおける処理を最大化し、前記コンピューティングデバイスにおける処理を最小化するステップをさらに含む、請求項1に記載の方法。
  6. 前記コンピューティングデバイス上のウェブブラウザが最初に人気のある部分をロードするように、人気のある前記ウェブページの部分と相関する分析を送信するステップをさらに含む、請求項1に記載の方法。
  7. 前記コンピューティングデバイスのユーザの習慣を収集するステップと、
    前記ユーザによって頻繁にアクセスされるウェブページ要素をメモリにプリロードするステップとをさらに含む、請求項1に記載の方法。
  8. 複数のウェブユーザに人気のあるデータに対応する前記複数のユーザからの使用情報を、サーバにおいて収集するステップと、
    前記使用情報と、前記複数のウェブユーザの習慣の分析とに基づいて、メタデータを生成するステップとをさらに含む、請求項1に記載の方法。
  9. ローカルネットワークコンピュータから前記コンピューティングデバイスにメタデータを送信するステップと、
    他のウェブユーザに人気のあるデータに対応する複数のユーザから使用情報を収集するステップと、
    前記ローカルネットワークコンピュータを使用してメタデータを生成するステップとをさらに含む、請求項1に記載の方法。
  10. 複数のユーザがウェブブラウザを使用するとき、前記複数のユーザに基づいて、ブラウジング習慣についての集約情報を収集するステップと、
    前記複数のユーザを監視して、計測手段を備えたウェブブラウザを使用して前記ブラウジング習慣を生成するステップと、
    前記複数のユーザの前記ブラウジング習慣に基づいてメタデータを生成するステップとをさらに含む、請求項1に記載の方法。
  11. ライブラリが頻繁にダウンロードされていることを示すメタデータを生成するステップと、
    観測された統計情報に基づいて、前記ライブラリが、実行のために他の部分よりも前に統計的に必要とされる可能性の高い部分を有することを、前記メタデータにおいて表現するステップと、
    前記メタデータに基づいて前記ライブラリの前記部分を最初にダウンロードするステップとをさらに含む、請求項1に記載の方法。
  12. 統計データに基づいて、最も可能性の高い実行可能ライブラリ部分を前記ライブラリが有すると判定するステップと、
    前記最も可能性の高い実行可能ライブラリ部分を、前記ライブラリの他の部分よりも前に最初にダウンロードするステップとをさらに含む、請求項11に記載の方法。
  13. ブラウジングの間、複数のユーザを監視するステップと、
    ある統計的な割合のユーザがウェブページの第1の部分を他の部分よりも前に見る可能性が高いことを示すメタデータを、生成するステップと、
    前記第1の部分を、前記ウェブページの他の部分よりも前に、最初に前記コンピューティングデバイスへ送信するステップとをさらに含む、請求項1に記載の方法。
  14. 前記メタデータが、前記コンピューティングデバイスのユーザのプロファイルを含み、前記方法が、
    前記プロファイルに基づいて、ウェブページの第1の部分を他の部分よりも前に前記ユーザが見る可能性が高いという、統計的な割合を示すメタデータを生成するステップと、
    前記ユーザがウェブページの第2の部分を見る可能性が高くないという、統計的な割合を示すメタデータを生成するステップと、
    前記第1の部分を、前記ウェブページの他の部分よりも前に、最初に前記コンピューティングデバイスへダウンロードするステップと、
    前記第1の部分よりある期間後に、前記第2の部分をダウンロードするステップとをさらに含む、請求項1に記載の方法。
  15. 他のユーザのブラウジングの習慣を示すメタデータを生成するステップと、
    前記メタデータに基づいて、ウェブページのどの部分が、前記ウェブページの他の部分よりも前にアクセスされる可能性が統計的に高いかを判定するステップと、
    第2の部分は頻繁にアクセスされない可能性が高いと判定するステップと、
    前記第2の部分が頻繁にアクセスされず、統計的にアクセスされる可能性の高い部分よりも低い優先度でダウンロードされることを、前記メタデータにおいて伝えるステップとをさらに含む、請求項1に記載の方法。
  16. ワイヤレスネットワークを介してサーバにリンクするステップと、
    ブラウザを前記サーバと関連付けるステップと、
    前記ブラウザから、前記コンピューティングデバイスが使用する情報を集めるステップとをさらに含む、請求項1に記載の方法。
  17. ウェブブラウザに対する前記メタデータを使用して、JavaScript(登録商標)を含む前記要求を解析し、分析し、または実行するためのヒントを提供するステップと、
    前記JavaScript(登録商標)は前記コンピューティングデバイスにおいて処理するのに非効率であると判定するステップと、
    前記JavaScript(登録商標)のバイナリのプリコンパイルされた変換物を送信するステップとをさらに含む、請求項1に記載の方法。
  18. 複数のウェブユーザのブラウジング習慣と、前記ウェブユーザがウェブページを見ることに関わる習慣とに関する統計を集約するステップと、
    前記統計を前記メタデータ中で送達するステップと、
    前記統計を使用して、ウェブページが前記コンピューティングデバイスにおいて要求される前に統計的に人気のある前記ウェブページをプリロードすることによって、モバイルリソースを節約するステップと、
    人気のある前記ウェブページの部分をダウンロードするステップと、
    人気のない前記ウェブページの第2の部分のダウンロードを省略して、モバイルリソースを節約するステップとをさらに含む、請求項1に記載の方法。
  19. ブラウジングデータをインターネットブラウザからサーバに送信するステップと、
    前記サーバ中の前記ブラウジングデータから前記メタデータを生成するステップとをさらに含む、請求項1に記載の方法。
  20. データを計測的ブラウザからサーバに送信するステップと、
    前記データから前記メタデータを生成するステップとをさらに含む、請求項1に記載の方法。
  21. 前記コンピューティングデバイスに返される前記メタデータが、前記コンピューティングデバイス上のウェブブラウザが人気のある部分を最初にロードするように、ピアデバイスに接続されたコンピューティングデバイスに人気のある前記ウェブページの部分と相関する、前記ピアデバイスから前記コンピューティングデバイスへのメタデータを含む、請求項1に記載の方法。
  22. 第2のコンピューティングデバイスのブラウジング習慣のクライアント側監視システムを設けるステップと、
    前記ブラウジング習慣をサーバに送信するステップと、
    前記第2のコンピューティングデバイスの前記ブラウジング習慣の前記クライアント側監視システムに基づいて、メタデータを前記サーバから前記コンピューティングデバイスに送信するステップとをさらに含む、請求項1に記載の方法。
  23. 要求および要求に対する応答を含むメタデータをブラウジング習慣から生成するステップと、
    前記コンピューティングデバイスのピアであるピアデバイスに前記メタデータを提供するステップとをさらに含む、請求項1に記載の方法。
  24. 複数のユーザのブラウジング習慣を監視するステップと、
    前記ブラウジング習慣をサーバに送信するステップと、
    前記監視されたブラウジング習慣に基づいて、前記複数のユーザの複数の観測されたプロファイルを編成するステップと、
    コンピューティングデバイスのユーザの前記ブラウジング習慣を監視するステップと、
    前記監視されたブラウジング習慣に基づいて、前記コンピューティングデバイスのユーザと一致する少なくとも1つの観測されたプロファイルに基づいて、メタデータを前記サーバから前記コンピューティングデバイスに返すステップとをさらに含む、請求項1に記載の方法。
  25. コードのある部分に、第2の部分よりも頻繁に、分析、ダウンロード、解析、または実行のうちの少なくとも1つが行われることを、前記メタデータにおいて表現するステップと、
    前記コードの前記部分を前記第2の部分よりも前に並べ替え、前記部分を最初にダウンロードするステップとをさらに含む、請求項1に記載の方法。
  26. 実行される可能性が最も高いと判定される部分をライブラリが含むことを、前記メタデータにおいて表現するステップと、
    前記実行される可能性が最も高いライブラリ部分を、前記ライブラリの他の部分よりも前にダウンロードするステップとをさらに含む、請求項1に記載の方法。
  27. サーバ上に位置する前記ブラウザアシスタントに対する前記要求を送信するステップと、
    ウェブサイトが前記コンピューティングデバイスによって頻繁にアクセスされていると判定するステップと、
    更新されたウェブサイトのデータを前記コンピューティングデバイスにアップロードするステップとをさらに含む、請求項1に記載の方法。
  28. 前記メタデータに含まれる統計的なブラウジング習慣に基づいて、前記コンピューティングデバイスを使用して、ウェブページの第1の部分を第2の部分よりも前にダウンロードするステップをさらに含む、請求項1に記載の方法。
  29. 前記コンピューティングデバイスを使用してウェブページの部分をプリロードするステップであって、前記プリロードされる部分が、前記メタデータに含まれる統計的なブラウジング習慣を使用して特定される、ステップをさらに含む、請求項1に記載の方法。
  30. 複数のユーザからのブラウジング習慣を監視するステップと、
    ウェブページ要素を含むウェブページが頻繁にアクセスされていると判定するステップと、
    前記ブラウジング習慣に基づいてウェブページ要素をキャッシュに記憶して、前記ウェブページ要素が前記コンピューティングデバイス上で削除されるのを防ぐステップと、
    前記ウェブページ要素を、予測される要求よりも前に、前記キャッシュからダウンロードするステップとをさらに含む、請求項1に記載の方法。
  31. 単一のユーザのブラウジング習慣から導出されるブラウジング習慣を監視するステップと、
    前記キャッシュに記憶される前記ウェブページを更新するステップと、
    前記要求を伴わずに、前記キャッシュ上の要素を、定期的な間隔で前記コンピューティングデバイスにプッシュするステップと、
    前記キャッシュに記憶される前記ウェブページを更新するステップと、
    前記キャッシュ上の要素を前記コンピューティングデバイスにプルするステップとをさらに含む、請求項30に記載の方法。
  32. 必要な部分を実行することによって、前記ウェブページをより効率的な方式で前記コンピューティングデバイスが実行するのを可能にする、メタデータを返すステップと、
    ウェブページ全体の実行を見送るステップとをさらに含む、請求項1に記載の方法。
  33. 前記ウェブページに対する前記要求に応答するサーバと同じサーバ上に、前記ブラウザアシスタントが位置することを実現するステップ、または、
    前記ブラウザアシスタントがピアコンピュータデバイス上に位置することを実現するステップ、または、
    前記ブラウザアシスタントがネットワークデバイス上に位置することを実現するステップをさらに含む、請求項1に記載の方法。
  34. ウェブページに対する要求を送信するステップであって、前記ウェブページが複数の部分を含む、ステップと、
    前記ブラウザアシスタントを使用して前記複数の部分を処理して、ネイティブコードを得るステップと、
    ネイティブコードを前記コンピューティングデバイスに返すステップとをさらに含み、
    前記複数の部分がJavaScript(登録商標)を含み、
    前記ブラウザアシスタントが、サーバ、ネットワークコンピュータ、またはピアデバイスのうちの1つに位置する、請求項1に記載の方法。
  35. データに対する要求を送信するステップと、
    要求を第1のデバイスに送信するステップと、
    メタデータを第2のデバイスに返すステップと、
    要求および要求に対する応答の監視された経験的なデータに基づいて、統計的に実行の確率が高い前記ウェブページの部分を、前記メタデータにおいて表現するステップとをさらに含む、請求項1に記載の方法。
  36. メタデータをプリキャッシュすることによって前もって前記メタデータを前記コンピューティングデバイスに返し、前記ウェブページに対する前記要求を解析し、分析し、または実行する際に前記コンピューティングデバイスを支援するステップをさらに含む、請求項1に記載の方法。
  37. ディスプレイと、
    内部メモリと、
    前記ディスプレイおよび前記内部メモリに結合されたプロセッサとを含むコンピューティングデバイスであって、前記プロセッサが、
    ウェブページに対する要求を送信するステップと、
    ブラウザアシスタントに対する要求を送信するステップと、
    前記ウェブページに対する前記要求を解析し、分析し、または実行する際、前記コンピューティングデバイスを支援するために、メタデータを受信するステップとを含む動作を実行するように、プロセッサ実行可能命令によって構成される、コンピューティングデバイス。
  38. メタデータを受信するステップが、
    JavaScript(登録商標)関数の実行確率と、
    データを解析するためのASTデータと、
    スクリプトトークンデータと、
    字句情報と、
    前記コンピューティングデバイスを支援するためにサーバにおいて処理されるデータからの返されたバイナリコードと、
    前記コンピューティングデバイスにおいてCSSウェブページデータを処理するのを支援するためのCSSメタデータと、
    前記コンピューティングデバイスにおいてJavaScript(登録商標)ウェブページデータを処理するのを支援するためのJavaScript(登録商標)メタデータと、
    前記コンピューティングデバイスにおいてHTMLウェブページデータを処理するのを支援するためのHTMLメタデータと、
    これらの組合せとからなる群から選択されるデータを受信するステップを含むように動作を実行するように、前記プロセッサがプロセッサ実行可能命令によって構成される、請求項37に記載のコンピューティングデバイス。
  39. メタデータを受信するステップが複数の観測されたユーザのブラウジング統計を受信するステップを含むように動作を実行するように、前記プロセッサがプロセッサ実行可能命令によって構成され、
    前記複数の観測されたブラウジング統計を使用して前記ウェブページの部分を他の部分よりも前にロードするのを支援するステップをさらに含む動作を実行するように、前記プロセッサがプロセッサ実行可能命令によって構成される、請求項37に記載のコンピューティングデバイス。
  40. メタデータを受信するステップが所定の実行の確率を有するコードのある部分に関する統計を受信するステップを含むように動作を実行するように、前記プロセッサがプロセッサ実行可能命令によって構成される、請求項37に記載のコンピューティングデバイス。
  41. サーバにおける処理を最大化し前記コンピューティングデバイスにおける処理を最小化するために前記サーバ上で実行されたJavaScript(登録商標)コードにより生じる、変換されたバイナリコードを含むメタデータを受信するステップをさらに含む動作を実行するように、前記プロセッサがプロセッサ実行可能命令によって構成される、請求項37に記載のコンピューティングデバイス。
  42. メタデータを受信するステップが、前記コンピューティングデバイス上のウェブブラウザが人気のある部分を最初にロードするように、人気のある前記ウェブページの部分と相関する分析を受信するステップを含むように動作を実行するように、前記プロセッサがプロセッサ実行可能命令によって構成される、請求項37に記載のコンピューティングデバイス。
  43. 前記コンピューティングデバイスのユーザのウェブブラウジング習慣を監視するステップと、
    前記ユーザのブラウジング習慣に関する情報をサーバに送信するステップと、
    前記ユーザのウェブブラウジング習慣に一部基づいて、前記サーバからメタデータを受信するステップとをさらに含む動作を実行するように、前記プロセッサがプロセッサ実行可能命令によって構成される、請求項37に記載のコンピューティングデバイス。
  44. 前記コンピューティングデバイスのユーザのウェブブラウジング習慣を監視するステップと、
    前記ユーザによって頻繁にアクセスされるウェブページ要素をメモリにプリロードするステップとをさらに含む動作を実行するように、前記プロセッサがプロセッサ実行可能命令によって構成される、請求項37に記載のコンピューティングデバイス。
  45. メタデータを受信するステップが、ライブラリが頻繁にダウンロードされていることを示すメタデータを受信するステップを含むように、動作を実行するように、前記プロセッサがプロセッサ実行可能命令によって構成され、前記メタデータにおいて表現されるように、前記ライブラリが、観測された統計情報に基づいて、実行のために他の部分よりも前に統計的に必要とされる可能性の高い部分を有し、
    前記メタデータに基づいて前記ライブラリの前記部分を最初にダウンロードするステップをさらに含む動作を実行するように、前記プロセッサがプロセッサ実行可能命令によって構成される、請求項37に記載のコンピューティングデバイス。
  46. 統計データに基づいて、最も可能性の高い実行可能ライブラリ部分を前記ライブラリが有すると判定するステップと、
    前記最も可能性の高い実行可能ライブラリ部分を、前記ライブラリの他の部分よりも前に最初にダウンロードするステップとをさらに含む動作を実行するように、前記プロセッサがプロセッサ実行可能命令によって構成される、請求項45に記載のコンピューティングデバイス。
  47. メタデータを受信するステップが、ピアデバイスに接続されたコンピューティングデバイスに人気のある前記ウェブページの部分と相関するメタデータを前記ピアデバイスから受信するステップを含むように動作を実行するように、前記プロセッサがプロセッサ実行可能命令によって構成され、
    ウェブブラウザ上で前記人気のある部分を最初にロードするステップをさらに含む動作を実行するように、前記プロセッサがプロセッサ実行可能命令によって構成される、請求項37に記載のコンピューティングデバイス。
  48. 要求および要求に対する応答を含むメタデータをブラウジング習慣から生成するステップと、
    前記コンピューティングデバイスのピアデバイスに前記メタデータを提供するステップとをさらに含む動作を実行するように、前記プロセッサがプロセッサ実行可能命令によって構成される、請求項37に記載のコンピューティングデバイス。
  49. メタデータを受信するステップが、コードの第1の部分に第2の部分よりも頻繁に、分析、ダウンロード、解析、または実行のうちの少なくとも1つが行われていることを示すメタデータを受信するステップを含むように動作を実行するように、前記プロセッサがプロセッサ実行可能命令によって構成され、
    ライブラリの前記第1の部分を前記第2の部分よりも前に並べ替えてダウンロードするステップをさらに含む動作を実行するように、前記プロセッサがプロセッサ実行可能命令によって構成される、請求項37に記載のコンピューティングデバイス。
  50. メタデータを受信するステップが、実行される可能性が最も高いと判定された部分をライブラリが含むことを示すメタデータを受信するステップを含むように動作を実行するように、前記プロセッサがプロセッサ実行可能命令によって構成され、
    前記ライブラリの他の部分よりも前に、最も実行される可能性が高いライブラリ部分をダウンロードするステップをさらに含む動作を実行するように、前記プロセッサがプロセッサ実行可能命令によって構成される、請求項37に記載のコンピューティングデバイス。
  51. 前記受信されたメタデータに含まれる統計的なブラウジング習慣に基づいて、ウェブページの第1の部分を他の部分よりも前にダウンロードするステップをさらに含む動作を実行するように、前記プロセッサがプロセッサ実行可能命令によって構成される、請求項37に記載のコンピューティングデバイス。
  52. 前記メタデータに含まれる統計的なブラウジング習慣を使用して特定されるウェブページの部分をプリロードするステップをさらに含む動作を実行するように、前記プロセッサがプロセッサ実行可能命令によって構成される、請求項37に記載のコンピューティングデバイス。
  53. メタデータを受信するステップが、必要な部分を実行することによって前記コンピューティングデバイスが前記ウェブページをより効率的な方式で実行することを可能にするメタデータを受信するステップを含むように動作を実行するように、前記プロセッサがプロセッサ実行可能命令によって構成され、
    ウェブページ全体の実行を見送るステップをさらに含む動作を実行するように、前記プロセッサがプロセッサ実行可能命令によって構成される、請求項37に記載のコンピューティングデバイス。
  54. 前記ウェブページに対する前記要求を解析し、分析し、または実行する際、前記コンピューティングデバイスを支援するために、前記受信されたメタデータをプリキャッシュするステップをさらに含む動作を実行するように、前記プロセッサがプロセッサ実行可能命令によって構成される、請求項37に記載のコンピューティングデバイス。
  55. ウェブページに対する要求を送信するステップと、
    ブラウザアシスタントに対する要求を送信するステップと、
    前記ウェブページに対する前記要求を解析し、分析し、または実行する際、コンピューティングデバイスのプロセッサを支援するために、メタデータを受信するステップとを含む動作を、前記コンピューティングデバイスのプロセッサに実行させるように構成された、プロセッサ実行可能命令を記憶したコンピュータ可読記憶媒体。
  56. メタデータを受信するステップが、
    JavaScript(登録商標)関数の実行確率と、
    データを解析するためのASTデータと、
    スクリプトトークンデータと、
    字句情報と、
    前記コンピューティングデバイスを支援するためにサーバにおいて処理されるデータからの返されたバイナリコードと、
    前記コンピューティングデバイスにおいてCSSウェブページデータを処理するのを支援するためのCSSメタデータと、
    前記コンピューティングデバイスにおいてJavaScript(登録商標)ウェブページデータを処理するのを支援するためのJavaScript(登録商標)メタデータと、
    前記コンピューティングデバイスにおいてHTMLウェブページデータを処理するのを支援するためのHTMLメタデータと、
    これらの組合せとからなる群から選択されるデータを受信するステップを含むように、前記コンピューティングデバイスのプロセッサにさらに動作を実行させるように、前記記憶されたプロセッサ実行可能命令が構成される、請求項55に記載のコンピュータ可読記憶媒体。
  57. メタデータを受信するステップが複数の観測されたユーザのブラウジング統計を受信するステップを含むように、前記コンピューティングデバイスのプロセッサに動作を実行させるように、前記記憶されたプロセッサ実行可能命令が構成され、
    前記複数の観測されたブラウジング統計を使用して前記ウェブページの部分を他の部分よりも前にロードするのを支援するステップをさらに含む動作を、前記コンピューティングデバイスのプロセッサに実行させるように、前記記憶されたプロセッサ実行可能命令が構成される、請求項55に記載のコンピュータ可読記憶媒体。
  58. メタデータを受信するステップが、所定の実行の確率を有するコードのある部分に関する統計を受信するステップを含むように、前記コンピューティングデバイスのプロセッサに実行させるように、前記記憶されたプロセッサ実行可能命令が構成される、請求項55に記載のコンピュータ可読記憶媒体。
  59. サーバにおける処理を最大化し前記コンピューティングデバイスにおける処理を最小化するために前記サーバ上で実行されたJavaScript(登録商標)コードにより生じる、変換されたバイナリコードを含むメタデータを受信するステップをさらに含む動作を、前記コンピューティングデバイスのプロセッサに実行させるように、前記記憶されたプロセッサ実行可能命令が構成される、請求項55に記載のコンピュータ可読記憶媒体。
  60. メタデータを受信するステップが、前記コンピューティングデバイス上のウェブブラウザが人気のある部分を最初にロードするように、人気のある前記ウェブページの部分と相関する分析を受信するステップを含むように、前記コンピューティングデバイスのプロセッサに動作を実行させるように、前記記憶されたプロセッサ実行可能命令が構成される、請求項55に記載のコンピュータ可読記憶媒体。
  61. 前記コンピューティングデバイスのユーザのウェブブラウジング習慣を監視するステップと、
    前記ユーザのブラウジング習慣に関する情報をサーバに送信するステップと、
    前記ユーザのウェブブラウジング習慣に一部基づいて、前記サーバからメタデータを受信するステップとをさらに含む動作を、前記コンピューティングデバイスのプロセッサに実行させるように、前記記憶されたプロセッサ実行可能命令が構成される、請求項55に記載のコンピュータ可読記憶媒体。
  62. 前記コンピューティングデバイスのユーザのウェブブラウジング習慣を監視するステップと、
    前記ユーザによって頻繁にアクセスされるウェブページ要素をメモリにプリロードするステップとをさらに含む動作を、前記コンピューティングデバイスのプロセッサに実行させるように、前記記憶されたプロセッサ実行可能命令が構成される、請求項55に記載のコンピュータ可読記憶媒体。
  63. メタデータを受信するステップが、ライブラリが頻繁にダウンロードされていることを示すメタデータを受信するステップを含むように、前記コンピューティングデバイスのプロセッサに動作を実行させるように、前記記憶されたプロセッサ実行可能命令が構成され、前記メタデータにおいて表現されるように、前記ライブラリが、観測された統計情報に基づいて、実行のために他の部分よりも前に統計的に必要とされる可能性の高い部分を有し、
    前記メタデータに基づいて前記ライブラリの前記部分を最初にダウンロードするステップをさらに含む動作を、前記コンピューティングデバイスのプロセッサに実行させるように、前記記憶されたプロセッサ実行可能命令が構成される、請求項55に記載のコンピュータ可読記憶媒体。
  64. 統計データに基づいて、最も可能性の高い実行可能ライブラリ部分を前記ライブラリが有すると判定するステップと、
    前記最も可能性の高い実行可能ライブラリ部分を、前記ライブラリの他の部分よりも前に最初にダウンロードするステップとをさらに含む動作を、前記コンピューティングデバイスのプロセッサに実行させるように、前記記憶されたプロセッサ実行可能命令が構成される、請求項63に記載のコンピュータ可読記憶媒体。
  65. メタデータを受信するステップが、ピアデバイスに接続されたコンピューティングデバイスに人気のある前記ウェブページの部分と相関するメタデータを前記ピアデバイスから受信するステップを含むように、前記コンピューティングデバイスのプロセッサに動作を実行させるように、前記記憶されたプロセッサ実行可能命令が構成され、
    ウェブブラウザ上で前記人気のある部分を最初にロードするステップをさらに含む動作を、前記コンピューティングデバイスのプロセッサに実行させるように、前記記憶されたプロセッサ実行可能命令が構成される、請求項55に記載のコンピュータ可読記憶媒体。
  66. 要求および要求に対する応答を含むメタデータをブラウジング習慣から生成するステップと、
    前記コンピューティングデバイスのピアデバイスに前記メタデータを提供するステップとをさらに含む動作を、前記コンピューティングデバイスのプロセッサに実行させるように、前記記憶されたプロセッサ実行可能命令が構成される、請求項55に記載のコンピュータ可読記憶媒体。
  67. メタデータを受信するステップが、コードの第1の部分に第2の部分よりも頻繁に、分析、ダウンロード、解析、または実行のうちの少なくとも1つが行われていることを示すメタデータを受信するステップを含むように、前記コンピューティングデバイスのプロセッサに動作を実行させるように、前記記憶されたプロセッサ実行可能命令が構成され、
    ライブラリの前記第1の部分を前記第2の部分よりも前に並べ替えてダウンロードするステップをさらに含む動作を、前記コンピューティングデバイスのプロセッサに実行させるように、前記記憶されたプロセッサ実行可能命令が構成される、請求項55に記載のコンピュータ可読記憶媒体。
  68. メタデータを受信するステップが、実行される可能性が最も高いと判定された部分をライブラリが含むことを示すメタデータを受信するステップを含むように、前記コンピューティングデバイスのプロセッサに動作を実行させるように、前記記憶されたプロセッサ実行可能命令が構成され、
    前記ライブラリの他の部分よりも前に、最も実行される可能性が高いライブラリ部分をダウンロードするステップをさらに含む動作を、前記コンピューティングデバイスのプロセッサに実行させるように、前記記憶されたプロセッサ実行可能命令が構成される、請求項55に記載のコンピュータ可読記憶媒体。
  69. 前記受信されたメタデータに含まれる統計的なブラウジング習慣に基づいて、ウェブページの第1の部分を第2の部分よりも前にダウンロードするステップをさらに含む動作を、前記コンピューティングデバイスのプロセッサに実行させるように、前記記憶されたプロセッサ実行可能命令が構成される、請求項55に記載のコンピュータ可読記憶媒体。
  70. 前記メタデータに含まれる統計的なブラウジング習慣を使用して特定されるウェブページの部分をプリロードするステップをさらに含む動作を、前記コンピューティングデバイスのプロセッサに実行させるように、前記記憶されたプロセッサ実行可能命令が構成される、請求項55に記載のコンピュータ可読記憶媒体。
  71. メタデータを受信するステップが、必要な部分を実行することによって前記コンピューティングデバイスが前記ウェブページをより効率的な方式で実行することを可能にするメタデータを受信するステップを含むように、前記コンピューティングデバイスのプロセッサに動作を実行させるように、前記記憶されたプロセッサ実行可能命令が構成され、
    ウェブページ全体の実行を見送るステップをさらに含む動作を、前記コンピューティングデバイスのプロセッサに実行させるように、前記記憶されたプロセッサ実行可能命令が構成される、請求項55に記載のコンピュータ可読記憶媒体。
  72. 前記ウェブページに対する前記要求を解析し、分析し、または実行する際、前記コンピューティングデバイスを支援するために、前記受信されたメタデータをプリキャッシュするステップをさらに含む動作を、前記コンピューティングデバイスのプロセッサに実行させるように、前記記憶されたプロセッサ実行可能命令が構成される、請求項55に記載のコンピュータ可読記憶媒体。
  73. ウェブページに対する要求を送信するための手段と、
    ブラウザアシスタントに対する要求を送信するための手段と、
    前記ウェブページに対する前記要求を解析し、分析し、または実行する際、前記コンピューティングデバイスを支援するために、メタデータを受信するための手段とを含む、コンピューティングデバイス。
  74. メタデータを受信するための手段が、
    JavaScript(登録商標)関数の実行確率と、
    データを解析するためのASTデータと、
    スクリプトトークンデータと、
    字句情報と、
    前記コンピューティングデバイスを支援するためにサーバにおいて処理されるデータからの返されたバイナリコードと、
    前記コンピューティングデバイスにおいてCSSウェブページデータを処理するのを支援するためのCSSメタデータと、
    前記コンピューティングデバイスにおいてJavaScript(登録商標)ウェブページデータを処理するのを支援するためのJavaScript(登録商標)メタデータと、
    前記コンピューティングデバイスにおいてHTMLウェブページデータを処理するのを支援するためのHTMLメタデータと、
    これらの組合せとからなる群から選択されるデータを受信するための手段を含む、請求項73に記載のコンピューティングデバイス。
  75. メタデータを受信するための手段が、複数の観測されたユーザのブラウジング統計を受信するための手段を含み、
    前記複数の観測されたブラウジング統計を使用して、前記ウェブページの部分を他の部分よりも前にロードするのを支援するための手段をさらに含む、請求項73に記載のコンピューティングデバイス。
  76. メタデータを受信するための手段が、所定の実行の確率を有するコードのある部分に関する統計を受信するための手段を含む、請求項73に記載のコンピューティングデバイス。
  77. サーバにおける処理を最大化し前記コンピューティングデバイスにおける処理を最小化するために前記サーバ上で実行されたJavaScript(登録商標)コードにより生じる、変換されたバイナリコードを含むメタデータを受信するための手段をさらに含む、請求項73に記載のコンピューティングデバイス。
  78. メタデータを受信するための手段が、前記コンピューティングデバイス上のウェブブラウザが人気のある部分を最初にロードするように、人気のある前記ウェブページの部分と相関する分析を受信するための手段を含む、請求項73に記載のコンピューティングデバイス。
  79. 前記コンピューティングデバイスのユーザのウェブブラウジング習慣を監視するための手段と、
    前記ユーザのブラウジング習慣に関する情報をサーバに送信するための手段と、
    前記ユーザのウェブブラウジング習慣に一部基づいて、前記サーバからメタデータを受信するための手段とをさらに含む、請求項73に記載のコンピューティングデバイス。
  80. 前記コンピューティングデバイスのユーザのウェブブラウジング習慣を監視するための手段と、
    前記ユーザによって頻繁にアクセスされるウェブページ要素をメモリにプリロードするための手段とをさらに含む、請求項73に記載のコンピューティングデバイス。
  81. メタデータを受信するための手段が、ライブラリが頻繁にダウンロードされていることを示すメタデータを受信するための手段を含み、前記メタデータにおいて表現されるように、前記ライブラリが、観測された統計情報に基づいて、実行のために他の部分よりも前に統計的に必要とされる可能性の高い部分を有し、前記コンピューティングデバイスが、
    前記メタデータに基づいて前記ライブラリの前記部分を最初にダウンロードするための手段をさらに含む、請求項73に記載のコンピューティングデバイス。
  82. 統計データに基づいて、最も可能性の高い実行可能ライブラリ部分を前記ライブラリが有すると判定するための手段と、
    前記最も可能性の高い実行可能ライブラリ部分を、前記ライブラリの他の部分よりも前に最初にダウンロードするための手段とをさらに含む、請求項81に記載のコンピューティングデバイス。
  83. メタデータを受信するための手段が、ピアデバイスに接続されたコンピューティングデバイスに人気のある前記ウェブページの部分と相関するメタデータを前記ピアデバイスから受信するための手段を含み、前記コンピューティングデバイスが、
    ウェブブラウザ上で前記人気のある部分を最初にロードするための手段をさらに含む、請求項73に記載のコンピューティングデバイス。
  84. 要求および要求に対する応答を含むメタデータをブラウジング習慣から生成するための手段と、
    前記コンピューティングデバイスのピアデバイスに前記メタデータを提供するための手段とをさらに含む、請求項73に記載のコンピューティングデバイス。
  85. メタデータを受信するための手段が、コードの第1の部分に、第2の部分よりも頻繁に、分析、ダウンロード、解析、または実行のうちの少なくとも1つが行われることを示す、メタデータを受信するための手段を含み、前記コンピューティングデバイスが、
    ライブラリの前記第1の部分を前記第2の部分よりも前に並べ替えてダウンロードするための手段をさらに含む、請求項73に記載のコンピューティングデバイス。
  86. メタデータを受信するための手段が、実行される可能性が最も高いと判定される部分をライブラリが含むことを示すメタデータを受信するための手段を含み、前記コンピューティングデバイスが、
    前記実行される可能性が最も高いライブラリ部分を、前記ライブラリの他の部分よりも前にダウンロードするための手段をさらに含む、請求項73に記載のコンピューティングデバイス。
  87. 前記受信されたメタデータに含まれる統計的なブラウジング習慣に基づいて、ウェブページの第1の部分を第2の部分よりも前にダウンロードするための手段をさらに含む、請求項73に記載のコンピューティングデバイス。
  88. 前記メタデータに含まれる統計的なブラウジング習慣を使用して特定されるウェブページの部分をプリロードするための手段をさらに含む、請求項73に記載のコンピューティングデバイス。
  89. メタデータを受信するための手段が、必要な部分を実行することによって、前記ウェブページをより効率的な方式で前記コンピューティングデバイスが実行するのを可能にする、メタデータを受信するための手段を含み、前記コンピューティングデバイスが、
    ウェブページ全体の実行を見送るための手段をさらに含む、請求項73に記載のコンピューティングデバイス。
  90. 前記ウェブページに対する前記要求を解析し、分析し、または実行する際、前記コンピューティングデバイスを支援するために、前記受信されたメタデータをプリキャッシュするための手段をさらに含む、請求項73に記載のコンピューティングデバイス。
  91. プロセッサと、
    前記プロセッサに結合され、前記プロセッサがセルラー通信ネットワークと通信することを可能にするように構成される、ネットワークインターフェースと、
    前記プロセッサに結合されたメモリとを含み、
    前記プロセッサが、
    コンピューティングデバイスからウェブページに対する要求を受信するステップと、
    前記コンピューティングデバイスからブラウザアシスタントに対する要求を受信するステップと、
    前記要求されたウェブページと、前記要求されたウェブページを解析し、分析し、または実行する際に前記コンピューティングデバイスを支援するように構成されるメタデータとを、前記コンピューティングデバイスに返すステップとを含む動作を実行するように、プロセッサ実行可能命令によって構成される、サーバ。
  92. 前記プロセッサが、
    複数のコンピューティングデバイスのユーザのウェブ使用習慣に関するウェブ使用情報を、前記複数のコンピューティングデバイスから受信するステップと、
    前記受信された使用情報と、前記複数のコンピューティングデバイスの前記ユーザのウェブ使用習慣の分析とに基づいて、前記メタデータを生成するステップとをさらに含む動作を実行するように、プロセッサ実行可能命令によって構成される、請求項91に記載のサーバ。
  93. 前記プロセッサが、
    前記要求されたウェブページ内の、JavaScript(登録商標)のバイナリのプリコンパイルされた変換物を、前記コンピューティングデバイスに送信するステップをさらに含む動作を実行するように、プロセッサ実行可能命令によって構成される、請求項91に記載のサーバ。
  94. 前記プロセッサが、
    複数のコンピューティングデバイスのユーザのブラウジング習慣についての集約情報を収集するステップであって、前記集約情報が、前記複数のコンピューティングデバイス上で動作する計測手段を備えたウェブブラウザによって提供される、前記収集するステップと、
    前記複数のコンピューティングデバイスのユーザのブラウジング習慣についての集約情報に基づいて、前記メタデータを生成するステップとをさらに含む動作を実行するように、プロセッサ実行可能命令によって構成される、請求項91に記載のサーバ。
  95. 前記プロセッサが、
    ユーザがウェブページの第1の部分を他の部分よりも前に見る可能性が高いときを、前記複数のコンピューティングデバイスのユーザのブラウジング習慣についての前記集約情報から判定するステップと、
    前記ウェブページの前記第1の部分を、前記ウェブページの他の部分よりも前に、前記コンピューティングデバイスへ送信するステップとをさらに含む動作を実行するように、プロセッサ実行可能命令によって構成される、請求項94に記載のサーバ。
  96. 前記プロセッサが、
    他のユーザのブラウジング習慣を示すメタデータを生成するステップと、
    前記メタデータに基づいて、ウェブページのどの部分が、前記ウェブページの他の部分よりも前にアクセスされる可能性が統計的に高いかを判定するステップと、
    第2の部分は頻繁にアクセスされない可能性が高いと判定するステップと、
    前記第2の部分が頻繁にアクセスされず、統計的にアクセスされる可能性のより高い部分よりも低い優先度でダウンロードされることを、前記メタデータにおいて伝えるステップとをさらに含む動作を実行するように、プロセッサ実行可能命令によって構成される、請求項94に記載のサーバ。
  97. 前記プロセッサが、
    前記複数のコンピューティングデバイスの前記ユーザの複数の観測されたプロファイルを編成するステップと、
    コンピューティングデバイスのユーザのブラウジング習慣を監視するステップと、
    前記監視されたブラウジング習慣に基づいて、前記コンピューティングデバイスのユーザと一致する少なくとも1つの観測されたプロファイルに基づいて、メタデータを前記サーバから前記コンピューティングデバイスに返すステップとをさらに含む動作を実行するように、プロセッサ実行可能命令によって構成される、請求項94に記載のサーバ。
  98. サーバのプロセッサに動作を実行させるように構成されるプロセッサ実行可能命令を記憶した、コンピュータ可読記憶媒体であって、前記動作が、
    コンピューティングデバイスからウェブページに対する要求を受信するステップと、
    前記コンピューティングデバイスからブラウザアシスタントに対する要求を受信するステップと、
    前記要求されたウェブページと、前記要求されたウェブページを解析し、分析し、または実行する際に前記コンピューティングデバイスを支援するように構成されるメタデータとを、前記コンピューティングデバイスに返すステップとを含む、コンピュータ可読記憶媒体。
  99. 前記記憶されたプロセッサ実行可能命令が、サーバのプロセッサに、
    複数のコンピューティングデバイスのユーザのウェブ使用習慣に関するウェブ使用情報を、前記複数のコンピューティングデバイスから受信するステップと、
    前記受信された使用情報と、前記複数のコンピューティングデバイスの前記ユーザのウェブ使用習慣の分析とに基づいて、前記メタデータを生成するステップとをさらに含む動作を実行させるように構成される、請求項98に記載のコンピュータ可読記憶媒体。
  100. 前記記憶されたプロセッサ実行可能命令が、サーバのプロセッサに、
    前記要求されたウェブページ内の、JavaScript(登録商標)のバイナリのプリコンパイルされた変換物を、前記コンピューティングデバイスに送信するステップをさらに含む動作を実行させるように構成される、請求項98に記載のコンピュータ可読記憶媒体。
  101. 前記記憶されたプロセッサ実行可能命令が、サーバのプロセッサに、
    複数のコンピューティングデバイスのユーザのブラウジング習慣についての集約情報を収集するステップであって、前記集約情報が、前記複数のコンピューティングデバイス上で動作する計測手段を備えたウェブブラウザによって提供される、前記収集するステップと、
    前記複数のコンピューティングデバイスのユーザのブラウジング習慣についての集約情報に基づいて、前記メタデータを生成するステップとをさらに含む動作を実行させるように構成される、請求項98に記載のコンピュータ可読記憶媒体。
  102. 前記記憶されたプロセッサ実行可能命令が、サーバのプロセッサに、
    ユーザがウェブページの第1の部分を他の部分よりも前に見る可能性が高いときを、前記複数のコンピューティングデバイスのユーザのブラウジング習慣についての前記集約情報から判定するステップと、
    前記ウェブページの前記第1の部分を、前記ウェブページの他の部分よりも前に、前記コンピューティングデバイスへ送信するステップとをさらに含む動作を実行させるように構成される、請求項101に記載のコンピュータ可読記憶媒体。
  103. 前記記憶されたプロセッサ実行可能命令が、サーバのプロセッサに、
    他のユーザのブラウジング習慣を示すメタデータを生成するステップと、
    前記メタデータに基づいて、ウェブページのどの部分が、前記ウェブページの他の部分よりも前にアクセスされる可能性が統計的に高いかを判定するステップと、
    第2の部分は頻繁にアクセスされない可能性が高いと判定するステップと、
    前記第2の部分が頻繁にアクセスされず、統計的にアクセスされる可能性のより高い部分よりも低い優先度でダウンロードされることを、前記メタデータにおいて伝えるステップとをさらに含む動作を実行させるように構成される、請求項101に記載のコンピュータ可読記憶媒体。
  104. 前記記憶されたプロセッサ実行可能命令が、サーバのプロセッサに、
    前記複数のコンピューティングデバイスの前記ユーザの複数の観測されたプロファイルを編成するステップと、
    コンピューティングデバイスのユーザのブラウジング習慣を監視するステップと、
    前記監視されたブラウジング習慣に基づいて、前記コンピューティングデバイスのユーザと一致する少なくとも1つの観測されたプロファイルに基づいて、メタデータを前記サーバから前記コンピューティングデバイスに返すステップとをさらに含む動作を実行させるように構成される、請求項101に記載のコンピュータ可読記憶媒体。
  105. コンピューティングデバイスからウェブページに対する要求を受信するための手段と、
    前記コンピューティングデバイスからブラウザアシスタントに対する要求を受信するための手段と、
    前記要求されたウェブページと、前記要求されたウェブページを解析し、分析し、または実行する際に前記コンピューティングデバイスを支援するように構成されるメタデータとを、前記コンピューティングデバイスに返すための手段とを含む、サーバ。
  106. 複数のコンピューティングデバイスのユーザのウェブ使用習慣に関するウェブ使用情報を、前記複数のコンピューティングデバイスから受信するための手段と、
    前記受信された使用情報と、前記複数のコンピューティングデバイスの前記ユーザのウェブ使用習慣の分析とに基づいて、前記メタデータを生成するための手段とをさらに含む、請求項105に記載のサーバ。
  107. 前記要求されたウェブページ内の、JavaScript(登録商標)のバイナリのプリコンパイルされた変換物を、前記コンピューティングデバイスに送信するための手段をさらに含む、請求項105に記載のサーバ。
  108. 複数のコンピューティングデバイスのユーザのブラウジング習慣についての集約情報を収集するための手段であって、前記集約情報が、前記複数のコンピューティングデバイス上で動作する計測手段を備えたウェブブラウザによって提供される、前記収集するための手段と、
    前記複数のコンピューティングデバイスのユーザのブラウジング習慣についての集約情報に基づいて、前記メタデータを生成するための手段とをさらに含む、請求項105に記載のサーバ。
  109. ユーザがウェブページの第1の部分を他の部分よりも前に見る可能性が高いときを、前記複数のコンピューティングデバイスのユーザのブラウジング習慣についての前記集約情報から判定するための手段と、
    前記ウェブページの前記第1の部分を、前記ウェブページの他の部分よりも前に、前記コンピューティングデバイスへ送信するための手段とをさらに含む、請求項108に記載のサーバ。
  110. 他のユーザのブラウジング習慣を示すメタデータを生成するための手段と、
    前記メタデータに基づいて、ウェブページのどの部分が、前記ウェブページの他の部分よりも前にアクセスされる可能性が統計的に高いかを判定するための手段と、
    第2の部分は頻繁にアクセスされない可能性が高いと判定するための手段と、
    前記第2の部分が頻繁にアクセスされず、統計的にアクセスされる可能性のより高い部分よりも低い優先度でダウンロードされることを、前記メタデータにおいて伝えるための手段とをさらに含む、請求項108に記載のサーバ。
  111. 前記複数のコンピューティングデバイスの前記ユーザの複数の観測されたプロファイルを編成するための手段と、
    コンピューティングデバイスのユーザのブラウジング習慣を監視するための手段と、
    前記監視されたブラウジング習慣に基づいて、前記コンピューティングデバイスのユーザと一致する少なくとも1つの観測されたプロファイルに基づいて、メタデータを前記サーバから前記コンピューティングデバイスに返すための手段とをさらに含む、請求項108に記載のサーバ。
  112. サーバと、
    セルラー通信ネットワークと、
    前記セルラー通信ネットワークを通じて前記サーバに相互接続されるコンピューティングデバイスとを含み、
    前記コンピューティングデバイスが、
    ディスプレイと、
    内部メモリと、
    前記ディスプレイおよび前記内部メモリに結合されたプロセッサとを含み、前記コンピューティングデバイスのプロセッサが、
    ウェブページに対する要求を送信するステップと、
    ブラウザアシスタントに対する要求を前記サーバに送信するステップとを含む動作を実行するように、プロセッサ実行可能命令によって構成され、
    前記サーバが、
    前記要求されたウェブページを解析し、分析し、または実行する際に前記コンピューティングデバイスを支援するように構成されるメタデータを、前記コンピューティングデバイスに返すステップを含む動作を実行するように構成される、システム。
  113. 前記サーバが、
    ライブラリが頻繁にダウンロードされていることを示すメタデータを生成するステップと、
    前記要求されたウェブページの実行のために、他の部分よりも前に必要とされる可能性の高い第1の部分を前記ライブラリが有することを、前記メタデータにおいて示すステップとをさらに含む動作を実行するように構成され、
    前記コンピューティングデバイスのプロセッサが、
    前記メタデータに基づいて、前記ライブラリの前記第1の部分を前記ライブラリの他の部分よりも前にダウンロードするステップをさらに含む動作を実行するように、プロセッサ実行可能命令によって構成される、請求項112に記載のシステム。
  114. 前記コンピューティングデバイスのプロセッサが、ブラウジングデータをインターネットブラウザから前記サーバに送信するステップをさらに含む動作を実行するように、プロセッサ実行可能命令によって構成され、
    前記サーバが、前記コンピューティングデバイスから受信された前記ブラウジングデータから前記メタデータを生成するステップをさらに含む動作を実行するように構成される、請求項112に記載のシステム。
  115. 前記サーバが、
    複数のユーザからのブラウジング習慣を監視するステップと、
    特定のウェブページがユーザによって頻繁にアクセスされていると判定するステップと、
    ユーザの前記ブラウジング習慣に基づいて、ウェブページ要素をキャッシュに記憶するステップとをさらに含む動作を実行するように構成され、
    前記コンピューティングデバイスのプロセッサが、前記ウェブページに対するユーザによる予測される要求よりも前に、前記キャッシュから前記ウェブページ要素をダウンロードするステップをさらに含む動作を実行するように、プロセッサ実行可能命令によって構成される、請求項112に記載のシステム。
  116. 前記サーバが、
    前記要求されたウェブページのJavaScript(登録商標)部分を処理して、ネイティブコードを生成するステップと、
    前記ウェブページに対する前記要求に応答して、前記生成されたネイティブコードを前記コンピューティングデバイスに返すステップとをさらに含む動作を実行するように構成される、請求項112に記載のシステム。
  117. 前記サーバが、
    複数のウェブユーザからウェブ使用情報を収集するステップと、
    前記収集されたウェブ使用情報に基づいて、前記メタデータを生成するステップとをさらに含む動作を実行するように構成される、請求項112に記載のシステム。
  118. ユーザのプロファイルに基づいて、前記コンピューティングデバイスの前記ユーザが前記要求されたウェブページの第1の部分を他の部分よりも前に見る可能性が高いと、判定するステップをさらに含む動作を、前記サーバが実行するように構成され、前記コンピューティングデバイスに返される前記メタデータが、前記ユーザが前記要求されたウェブページの前記第1の部分を見る可能性が高いことを示し、
    前記コンピューティングデバイスのプロセッサが、前記要求されたウェブページの前記第1の部分を前記ウェブページの他の部分よりも前にダウンロードするステップをさらに含む動作を実行するように、プロセッサ実行可能命令によって構成される、請求項117に記載のシステム。
  119. 前記サーバが前記要求されたウェブページをホストしない、請求項112に記載のシステム。
  120. サーバと、
    セルラー通信ネットワークと、
    前記セルラー通信ネットワークを通じて前記サーバに相互接続されるコンピューティングデバイスとを含み、
    前記コンピューティングデバイスが、
    ウェブページに対する要求を送信するための手段と、
    ブラウザアシスタントに対する要求を前記サーバに送信するための手段とを含み、
    前記サーバが、
    前記要求されたウェブページを解析し、分析し、または実行する際に前記コンピューティングデバイスを支援するように構成されるメタデータを、前記コンピューティングデバイスに返すための手段を含む、システム。
  121. 前記サーバがさらに、
    ライブラリが頻繁にダウンロードされていることを示すメタデータを生成するための手段と、
    前記要求されたウェブページの実行のために、他の部分よりも前に必要とされる可能性の高い第1の部分を前記ライブラリが有することを、前記メタデータにおいて示すための手段とを含み、
    前記コンピューティングデバイスがさらに、前記メタデータに基づいて、前記ライブラリの前記第1の部分を前記ライブラリの他の部分よりも前にダウンロードするための手段を含む、請求項120に記載のシステム。
  122. 前記コンピューティングデバイスがさらに、ブラウジングデータをインターネットブラウザから前記サーバに送信するための手段を含み、
    前記サーバがさらに、前記コンピューティングデバイスから受信された前記ブラウジングデータから前記メタデータを生成するための手段を含む、請求項120に記載のシステム。
  123. 前記サーバがさらに、
    複数のユーザからのブラウジング習慣を監視するための手段と、
    特定のウェブページがユーザによって頻繁にアクセスされていると判定するための手段と、
    ユーザの前記ブラウジング習慣に基づいて、ウェブページ要素をキャッシュに記憶するための手段とを含み、
    前記コンピューティングデバイスがさらに、前記ウェブページに対するユーザによる予測される要求よりも前に、前記キャッシュから前記ウェブページ要素をダウンロードするための手段を含む、請求項120に記載のシステム。
  124. 前記サーバがさらに、
    前記要求されたウェブページのJavaScript(登録商標)部分を処理して、ネイティブコードを生成するための手段と、
    前記ウェブページに対する前記要求に応答して、前記生成されたネイティブコードを前記コンピューティングデバイスに返すための手段とを含む、請求項120に記載のシステム。
  125. 前記サーバがさらに、
    複数のウェブユーザからウェブ使用情報を収集するための手段と、
    前記収集されたウェブ使用情報に基づいて、前記メタデータを生成するための手段とを含む、請求項120に記載のシステム。
  126. 前記サーバがさらに、ユーザのプロファイルに基づいて、前記コンピューティングデバイスの前記ユーザが前記要求されたウェブページの第1の部分を他の部分よりも前に見る可能性が高いと、判定するための手段を含み、前記コンピューティングデバイスに返される前記メタデータが、前記ユーザが前記要求されたウェブページの前記第1の部分を見る可能性が高いことを示し、
    前記コンピューティングデバイスがさらに、前記要求されたウェブページの前記第1の部分を前記ウェブページの他の部分よりも前にダウンロードするための手段を含む、請求項125に記載のシステム。
  127. 前記サーバが前記要求されたウェブページをホストしない、請求項120に記載のシステム。
JP2014522829A 2011-07-27 2012-06-19 クラウドコンピューティングによって向上したウェブブラウジング Expired - Fee Related JP5869124B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/192,064 2011-07-27
US13/192,064 US9146909B2 (en) 2011-07-27 2011-07-27 Web browsing enhanced by cloud computing
PCT/US2012/043081 WO2013015911A1 (en) 2011-07-27 2012-06-19 Web browsing enhanced by cloud computing

Publications (2)

Publication Number Publication Date
JP2014525103A true JP2014525103A (ja) 2014-09-25
JP5869124B2 JP5869124B2 (ja) 2016-02-24

Family

ID=46506622

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014522829A Expired - Fee Related JP5869124B2 (ja) 2011-07-27 2012-06-19 クラウドコンピューティングによって向上したウェブブラウジング

Country Status (9)

Country Link
US (2) US9146909B2 (ja)
EP (1) EP2737414A1 (ja)
JP (1) JP5869124B2 (ja)
KR (1) KR101609483B1 (ja)
CN (1) CN103718177B (ja)
BR (1) BR112014001889A2 (ja)
CA (1) CA2842737C (ja)
RU (1) RU2577193C2 (ja)
WO (1) WO2013015911A1 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016526230A (ja) * 2013-06-06 2016-09-01 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation ウェブ・ページのロードを最適化するためのコンピュータ・プログラム製品、システム、および方法
JP2018531454A (ja) * 2015-10-07 2018-10-25 グーグル エルエルシー 非ブラウザアプリケーションにおけるコンテンツの統合
JP2021501926A (ja) * 2017-12-08 2021-01-21 グーグル エルエルシーGoogle LLC 音声駆動コンピューティングインフラストラクチャによるグラフィカルユーザインターフェースレンダリング管理
JP2022530645A (ja) * 2019-04-30 2022-06-30 セールスフォース ドット コム インコーポレイティッド コンポーネントベースのユーザインターフェースのための宣言型の反応的なデータ層

Families Citing this family (79)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9471704B2 (en) * 2009-10-06 2016-10-18 Telefonaktiebolaget Lm Ericsson (Publ) Shared script files in multi-tab browser
US9043385B1 (en) 2010-04-18 2015-05-26 Viasat, Inc. Static tracker
WO2012061841A1 (en) * 2010-11-05 2012-05-10 The Trustees Of Columbia University In The City Of New York Methods, systems, and media for stored content distribution and access
US11983233B2 (en) 2011-04-11 2024-05-14 Viasat, Inc. Browser based feedback for optimized web browsing
US9912718B1 (en) 2011-04-11 2018-03-06 Viasat, Inc. Progressive prefetching
US9146909B2 (en) 2011-07-27 2015-09-29 Qualcomm Incorporated Web browsing enhanced by cloud computing
KR20130044571A (ko) * 2011-10-24 2013-05-03 삼성전자주식회사 클라우드 서비스 제공 방법 및 장치
US20130185626A1 (en) * 2012-01-13 2013-07-18 Obigo Inc. METHOD, TERMINAL AND COMPUTER-READABLE RECORDING MEDIUM FOR COMPILING JAVASCRIPT INCLUDED IN WEB APPLICATION USING Ahead-Of-Time (AOT)
KR102039028B1 (ko) 2012-02-24 2019-10-31 삼성전자 주식회사 휴대단말기의 데이터 공유 장치 및 방법
US9460220B1 (en) * 2012-03-26 2016-10-04 Amazon Technologies, Inc. Content selection based on target device characteristics
US9239862B2 (en) 2012-05-01 2016-01-19 Qualcomm Incorporated Web acceleration based on hints derived from crowd sourcing
CN102882679A (zh) * 2012-07-24 2013-01-16 中兴通讯股份有限公司 电子设备的解锁方法及解锁装置
FR2997522B1 (fr) * 2012-10-26 2015-12-25 Infovista Sa Procede permettant a un systeme de surveillance du reseau d'evaluer de facon non intrusive le ressenti utilisateur lors du chargement d'une page web
US9300760B2 (en) * 2013-01-28 2016-03-29 Google Inc. Machine-specific instruction set translation
JP5395967B1 (ja) * 2013-02-19 2014-01-22 株式会社 ディー・エヌ・エー データ処理システム、情報端末、データ処理方法およびデータ処理プログラム
US9363329B1 (en) 2013-03-15 2016-06-07 Instart Logic, Inc. Identifying correlated components of dynamic content
US9298455B1 (en) 2013-03-15 2016-03-29 Instart Logic, Inc. Provisional execution of dynamic content component
US9424074B1 (en) * 2013-07-01 2016-08-23 Google Inc. Method for learning backup policies for large-scale distributed computing
WO2015058546A1 (zh) * 2013-10-25 2015-04-30 优视科技有限公司 网页预加载方法及装置
US9990440B2 (en) * 2013-12-30 2018-06-05 Oath Inc. Smart content pre-loading on client devices
KR20150084307A (ko) * 2014-01-13 2015-07-22 삼성전자주식회사 네트워크에서 웹 로딩 시간 제어 방법 및 장치
WO2015121813A1 (en) * 2014-02-11 2015-08-20 Wix.Com Ltd. System for synchronization of changes in edited websites and interactive applications
US9965449B2 (en) * 2014-03-17 2018-05-08 Ca, Inc. Providing product with integrated wiki module
US10855797B2 (en) 2014-06-03 2020-12-01 Viasat, Inc. Server-machine-driven hint generation for improved web page loading using client-machine-driven feedback
KR102086731B1 (ko) * 2014-06-25 2020-04-14 에스케이플래닛 주식회사 클라우드 스트리밍 서비스 제공 방법, 이를 위한 장치 및 시스템, 그리고 이를 위한 클라우드 스트리밍용 스크립트 코드를 기록한 컴퓨터 판독 가능한 기록매체
EP3195171B1 (en) * 2014-07-31 2019-11-06 Namogoo Technologies Ltd. Detecting and removing injected elements from content interfaces
US11099839B2 (en) 2014-08-06 2021-08-24 International Business Machines Corporation Adaptation of a web application for use by a mobile device
US11176223B1 (en) * 2014-10-21 2021-11-16 Amazon Technologies, Inc. Page rendering by an intermediary system that uses a truncated library
DE112014007090T5 (de) 2014-10-24 2017-07-13 Google Inc. Verfahren und systeme zum automatischen tagging anhand von software-ausführungs-traces
US9858191B2 (en) 2014-12-31 2018-01-02 Samsung Electronics Co., Ltd. Electronic system with data management mechanism and method of operation thereof
WO2016112354A2 (en) * 2015-01-08 2016-07-14 Instart Logic, Inc. Html streaming
US9448776B1 (en) * 2015-01-08 2016-09-20 AppNotch LLC Method and apparatus for converting a website into a native mobile application
US10425464B2 (en) 2015-01-08 2019-09-24 Instart Logic, Inc. Adaptive learning periods in HTML streaming
US10277703B2 (en) 2015-07-22 2019-04-30 International Business Machines Corporation Optimizing bandwidth usage and improving performance for web page caching
US10582001B2 (en) * 2015-08-11 2020-03-03 Oracle International Corporation Asynchronous pre-caching of synchronously loaded resources
US10419514B2 (en) 2015-08-14 2019-09-17 Oracle International Corporation Discovery of federated logins
US10091076B2 (en) 2015-08-25 2018-10-02 Google Llc Systems and methods for configuring a resource for network traffic analysis
US10803083B2 (en) * 2015-08-27 2020-10-13 Infosys Limited System and method of generating platform-agnostic abstract syntax tree
RU2632131C2 (ru) 2015-08-28 2017-10-02 Общество С Ограниченной Ответственностью "Яндекс" Способ и устройство для создания рекомендуемого списка содержимого
WO2017048226A1 (en) * 2015-09-14 2017-03-23 Viasat, Inc. Machine-driven crowd-disambiguation of data resources
US10296580B1 (en) 2015-09-18 2019-05-21 Amazon Technologies, Inc. Delivering parsed content items
US10127210B1 (en) 2015-09-25 2018-11-13 Amazon Technologies, Inc. Content rendering
US10601894B1 (en) 2015-09-28 2020-03-24 Amazon Technologies, Inc. Vector-based encoding for content rendering
RU2632100C2 (ru) 2015-09-28 2017-10-02 Общество С Ограниченной Ответственностью "Яндекс" Способ и сервер создания рекомендованного набора элементов
RU2629638C2 (ru) 2015-09-28 2017-08-30 Общество С Ограниченной Ответственностью "Яндекс" Способ и сервер создания рекомендуемого набора элементов для пользователя
US10241983B1 (en) 2015-09-28 2019-03-26 Amazon Technologies, Inc. Vector-based encoding for content rendering
US10691750B1 (en) 2015-09-28 2020-06-23 Amazon Technologies, Inc. Browser configured to efficiently store browsing session state
US10440140B2 (en) * 2015-09-29 2019-10-08 Apple Inc. Browser cache management
US10582012B2 (en) 2015-10-16 2020-03-03 Oracle International Corporation Adaptive data transfer optimization
EP3365802A1 (en) 2015-10-20 2018-08-29 Viasat, Inc. Hint model updating using automated browsing clusters
CN108780446B (zh) 2015-10-28 2022-08-19 维尔塞特公司 时间依赖的机器生成的提示
AU2016364922B2 (en) 2015-12-04 2019-10-10 Viasat, Inc. Accelerating connections to a host server
US20170164290A1 (en) * 2015-12-08 2017-06-08 Qualcomm Incorporated Reduced power consumption for browsing websites
US10341345B1 (en) 2015-12-15 2019-07-02 Amazon Technologies, Inc. Network browser configuration
US10348797B1 (en) 2015-12-15 2019-07-09 Amazon Technologies, Inc. Network browser configuration
CN105740061B (zh) * 2016-01-29 2019-05-31 腾讯科技(深圳)有限公司 一种gpu资源重建的方法、用户设备及系统
CN107229405A (zh) * 2016-03-25 2017-10-03 广州市动景计算机科技有限公司 用于提供网页内容的方法、设备、浏览器及电子设备
RU2632144C1 (ru) 2016-05-12 2017-10-02 Общество С Ограниченной Ответственностью "Яндекс" Компьютерный способ создания интерфейса рекомендации контента
US9961139B2 (en) * 2016-05-24 2018-05-01 International Business Machines Corporation Cooperative download among low-end devices under resource constrained environment
US10367879B2 (en) * 2016-06-10 2019-07-30 Apple Inc. Download prioritization
RU2636702C1 (ru) 2016-07-07 2017-11-27 Общество С Ограниченной Ответственностью "Яндекс" Способ и устройство для выбора сетевого ресурса в качестве источника содержимого для системы рекомендаций
RU2632132C1 (ru) * 2016-07-07 2017-10-02 Общество С Ограниченной Ответственностью "Яндекс" Способ и устройство для создания рекомендаций содержимого в системе рекомендаций
US10880396B2 (en) 2016-12-02 2020-12-29 Viasat, Inc. Pre-fetching random-value resource locators
USD882600S1 (en) 2017-01-13 2020-04-28 Yandex Europe Ag Display screen with graphical user interface
US10567524B2 (en) * 2017-02-27 2020-02-18 International Business Machines Corporation Dynamic cognitive optimization of web applications
GB2563381A (en) * 2017-06-06 2018-12-19 Canon Kk Method and apparatus for executing a scripting language
US10887406B2 (en) * 2017-08-16 2021-01-05 Google Llc Dynamic content loading selection
US10726095B1 (en) 2017-09-26 2020-07-28 Amazon Technologies, Inc. Network content layout using an intermediary system
US10664538B1 (en) 2017-09-26 2020-05-26 Amazon Technologies, Inc. Data security and data access auditing for network accessible content
RU2720899C2 (ru) 2018-09-14 2020-05-14 Общество С Ограниченной Ответственностью "Яндекс" Способ и система для определения зависящих от пользователя пропорций содержимого для рекомендации
RU2720952C2 (ru) 2018-09-14 2020-05-15 Общество С Ограниченной Ответственностью "Яндекс" Способ и система для создания рекомендации цифрового содержимого
RU2714594C1 (ru) 2018-09-14 2020-02-18 Общество С Ограниченной Ответственностью "Яндекс" Способ и система определения параметра релевантность для элементов содержимого
RU2725659C2 (ru) 2018-10-08 2020-07-03 Общество С Ограниченной Ответственностью "Яндекс" Способ и система для оценивания данных о взаимодействиях пользователь-элемент
RU2731335C2 (ru) 2018-10-09 2020-09-01 Общество С Ограниченной Ответственностью "Яндекс" Способ и система для формирования рекомендаций цифрового контента
US20210004481A1 (en) * 2019-07-05 2021-01-07 Google Llc Systems and methods for privacy preserving determination of intersections of sets of user identifiers
RU2757406C1 (ru) 2019-09-09 2021-10-15 Общество С Ограниченной Ответственностью «Яндекс» Способ и система для обеспечения уровня сервиса при рекламе элемента контента
KR102605640B1 (ko) * 2019-11-14 2023-11-22 엘지전자 주식회사 디스플레이 장치 및 이의 제어 방법
US11308179B2 (en) * 2020-05-14 2022-04-19 Sap Se Core data service-based compile time webpage generation
JP2022041717A (ja) * 2020-09-01 2022-03-11 キヤノン株式会社 情報処理システム、情報処理システムの制御方法

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10275108A (ja) * 1997-03-26 1998-10-13 Internatl Business Mach Corp <Ibm> データ分配方法、装置及びプリキャッシュ方法
JP2000215173A (ja) * 1999-01-21 2000-08-04 Internatl Business Mach Corp <Ibm> ブラウザ共有方法及びシステム
JP2003036217A (ja) * 2001-07-24 2003-02-07 Mitsubishi Denki Information Technology Corp Javaアプレットバージョン管理装置
JP2005115684A (ja) * 2003-10-08 2005-04-28 Canon Inc コンテンツ検索装置及びコンテンツ検索方法
US20100174774A1 (en) * 2009-01-08 2010-07-08 Inernational Business Machines Corporation Method for server-side logging of client browser state through markup language
JP2011210091A (ja) * 2010-03-30 2011-10-20 Kddi R & D Laboratories Inc コンテンツ再生制御システムおよびそのプロキシサーバ
JP2013516720A (ja) * 2010-01-12 2013-05-13 クアルコム,インコーポレイテッド メタデータ抽出による動的言語の実行

Family Cites Families (132)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5887133A (en) * 1997-01-15 1999-03-23 Health Hero Network System and method for modifying documents sent over a communications network
US6282548B1 (en) * 1997-06-21 2001-08-28 Alexa Internet Automatically generate and displaying metadata as supplemental information concurrently with the web page, there being no link between web page and metadata
US6182133B1 (en) * 1998-02-06 2001-01-30 Microsoft Corporation Method and apparatus for display of information prefetching and cache status having variable visual indication based on a period of time since prefetching
US8418131B2 (en) * 1998-11-25 2013-04-09 Helmut Emmelmann Interactive server side components
US6598054B2 (en) * 1999-01-26 2003-07-22 Xerox Corporation System and method for clustering data objects in a collection
US6466970B1 (en) * 1999-01-27 2002-10-15 International Business Machines Corporation System and method for collecting and analyzing information about content requested in a network (World Wide Web) environment
US7353246B1 (en) * 1999-07-30 2008-04-01 Miva Direct, Inc. System and method for enabling information associations
US7421432B1 (en) * 1999-12-15 2008-09-02 Google Inc. Hypertext browser assistant
US6691163B1 (en) * 1999-12-23 2004-02-10 Alexa Internet Use of web usage trail data to identify related links
US20040220791A1 (en) * 2000-01-03 2004-11-04 Interactual Technologies, Inc. A California Corpor Personalization services for entities from multiple sources
US6665659B1 (en) * 2000-02-01 2003-12-16 James D. Logan Methods and apparatus for distributing and using metadata via the internet
US7747782B2 (en) * 2000-04-26 2010-06-29 Novarra, Inc. System and method for providing and displaying information content
US7146416B1 (en) * 2000-09-01 2006-12-05 Yahoo! Inc. Web site activity monitoring system with tracking by categories and terms
US20020078165A1 (en) * 2000-12-14 2002-06-20 International Business Machines Corporation System and method for prefetching portions of a web page based on learned preferences
AU2002236916B2 (en) * 2001-02-02 2008-12-11 Opentv, Inc. A method and apparatus for the compilation of an interpretative language for interactive television
US6874019B2 (en) 2001-03-08 2005-03-29 International Business Machines Corporation Predictive caching and highlighting of web pages
US20020161824A1 (en) * 2001-04-27 2002-10-31 International Business Machines Corporation Method for presentation of HTML image-map elements in non visual web browsers
US20040205460A1 (en) * 2001-11-08 2004-10-14 Ibm Corporation Notepad for web browser
US20030163444A1 (en) * 2002-02-27 2003-08-28 Michael Kotzin Method to optimize information downloading
CA2664732C (en) * 2002-04-12 2013-07-02 Mitsubishi Denki Kabushiki Kaisha An apparatus to edit, reproduce, deliver, search and re-generate condition settings for metadata
US7321887B2 (en) * 2002-09-30 2008-01-22 Sap Aktiengesellschaft Enriching information streams with contextual content
US7096423B2 (en) * 2002-05-31 2006-08-22 Adobe Systems Incorporated Layout-based page capture
US20040002993A1 (en) * 2002-06-26 2004-01-01 Microsoft Corporation User feedback processing of metadata associated with digital media files
US7167863B2 (en) * 2002-07-30 2007-01-23 United Services Automobile Association (Usaa) System and method for building a distributed internet application
US20040088375A1 (en) * 2002-11-01 2004-05-06 Sethi Bhupinder S. Method for prefetching Web pages to improve response time networking
GB0314782D0 (en) * 2003-06-25 2003-07-30 Ibm A searchable personal browsing history
US7246134B1 (en) * 2004-03-04 2007-07-17 Sun Microsystems, Inc. System and methods for tag library generation
US20050208930A1 (en) * 2004-03-05 2005-09-22 Robert Zmrzli Method and apparatus for arranging network content on mobile devices
US8224964B1 (en) * 2004-06-30 2012-07-17 Google Inc. System and method of accessing a document efficiently through multi-tier web caching
US8972856B2 (en) * 2004-07-29 2015-03-03 Yahoo! Inc. Document modification by a client-side application
US7840911B2 (en) 2004-09-27 2010-11-23 Scott Milener Method and apparatus for enhanced browsing
US8185514B1 (en) * 2004-11-16 2012-05-22 Topix Llc User-interface feature and technique for providing users of a network site links that have been determined to be of interest to the user
KR100636207B1 (ko) 2004-12-13 2006-10-19 삼성전자주식회사 임베디드 메타데이터를 이용한 문서 처리방법 및 장치
US20060136391A1 (en) * 2004-12-21 2006-06-22 Morris Robert P System and method for generating a search index and executing a context-sensitive search
US7735062B2 (en) * 2005-01-21 2010-06-08 Outsystems—Software Em Rede, S.A. Software development system and method
US7536641B2 (en) * 2005-04-29 2009-05-19 Google Inc. Web page authoring tool for structured documents
US8732234B2 (en) * 2005-06-07 2014-05-20 Yahoo! Inc. Providing relevant non-requested content to a mobile device
US7685191B1 (en) 2005-06-16 2010-03-23 Enquisite, Inc. Selection of advertisements to present on a web page or other destination based on search activities of users who selected the destination
US20060293950A1 (en) * 2005-06-28 2006-12-28 Microsoft Corporation Automatic ad placement
US8117203B2 (en) * 2005-07-15 2012-02-14 Fetch Technologies, Inc. Method and system for automatically extracting data from web sites
CA2513018A1 (en) * 2005-07-22 2007-01-22 Research In Motion Limited Method for training a proxy server for content delivery based on communication of state information from a mobile device browser
US7925973B2 (en) * 2005-08-12 2011-04-12 Brightcove, Inc. Distribution of content
US20070055964A1 (en) * 2005-09-06 2007-03-08 Morfik Technology Pty. Ltd. System and method for synthesizing object-oriented high-level code into browser-side javascript
US20090234861A1 (en) * 2005-09-14 2009-09-17 Jorey Ramer Using mobile application data within a monetization platform
US20070106685A1 (en) * 2005-11-09 2007-05-10 Podzinger Corp. Method and apparatus for updating speech recognition databases and reindexing audio and video content using the same
US8176468B2 (en) * 2005-12-01 2012-05-08 Cypress Semiconductor Corporation Multivariable transfer functions
US7797740B2 (en) * 2006-01-06 2010-09-14 Nokia Corporation System and method for managing captured content
US8701023B1 (en) * 2006-02-16 2014-04-15 Cypress Semiconductor Corporation Global parameter management graphical user interface (GUI) for embedded application design
US7765199B2 (en) * 2006-03-17 2010-07-27 Proquest Llc Method and system to index captioned objects in published literature for information discovery tasks
US20070256003A1 (en) * 2006-04-24 2007-11-01 Seth Wagoner Platform for the interactive contextual augmentation of the web
US20070255754A1 (en) * 2006-04-28 2007-11-01 James Gheel Recording, generation, storage and visual presentation of user activity metadata for web page documents
US9443022B2 (en) * 2006-06-05 2016-09-13 Google Inc. Method, system, and graphical user interface for providing personalized recommendations of popular search queries
US20080010387A1 (en) * 2006-07-07 2008-01-10 Bryce Allen Curtis Method for defining a Wiki page layout using a Wiki page
US7954052B2 (en) * 2006-07-07 2011-05-31 International Business Machines Corporation Method for processing a web page for display in a wiki environment
US10789323B2 (en) 2006-10-02 2020-09-29 Adobe Inc. System and method for active browsing
US20080109749A1 (en) * 2006-11-06 2008-05-08 Nokia Corporation Providing information while rendering content
US20080133569A1 (en) * 2006-12-01 2008-06-05 Amp'd Mobile, Inc. System and method for content handling and bundling for mobile handset device
US9524355B2 (en) * 2007-01-22 2016-12-20 Mozy, Inc. Methods for delivering task-related digital content based on task-oriented user activity
US20080222273A1 (en) * 2007-03-07 2008-09-11 Microsoft Corporation Adaptive rendering of web pages on mobile devices using imaging technology
US10382514B2 (en) * 2007-03-20 2019-08-13 Apple Inc. Presentation of media in an application
US20080244080A1 (en) * 2007-03-29 2008-10-02 James Thomas H Prefetching Based on Streaming Hints
US20080294974A1 (en) * 2007-05-24 2008-11-27 Nokia Corporation Webpage history view
EP2174472A2 (fr) * 2007-07-27 2010-04-14 Goojet Procede et dispositif de creation d'applications informatiques
GB2451435B (en) * 2007-07-27 2012-06-20 Hewlett Packard Development Co A Method of enabling the downloading of content
US8429750B2 (en) * 2007-08-29 2013-04-23 Enpulz, L.L.C. Search engine with webpage rating feedback based Internet search operation
US20090100322A1 (en) * 2007-10-11 2009-04-16 International Business Machines Corporation Retrieving data relating to a web page prior to initiating viewing of the web page
US9654328B2 (en) * 2007-10-15 2017-05-16 Viasat, Inc. Methods and systems for implementing a cache model in a prefetching system
KR101653268B1 (ko) * 2007-10-18 2016-09-01 삼성전자주식회사 태그 정보의 처리방법 및 이를 구현하는 클라이언트-서버시스템
US8677141B2 (en) * 2007-11-23 2014-03-18 Microsoft Corporation Enhanced security and performance of web applications
WO2009073682A1 (en) * 2007-12-03 2009-06-11 Vuzit, Llc System and method for enabling viewing of documents not in html format
US8806431B1 (en) * 2007-12-03 2014-08-12 Appecelerator, Inc. Aspect oriented programming
US20090171790A1 (en) * 2008-01-01 2009-07-02 Transaxtions Llc Time based targeted advertising
US8255396B2 (en) * 2008-02-25 2012-08-28 Atigeo Llc Electronic profile development, storage, use, and systems therefor
JP2009239479A (ja) * 2008-03-26 2009-10-15 Toshiba Corp 情報表示装置、情報表示方法及びプログラム
US8364664B2 (en) * 2008-05-12 2013-01-29 Enpulz, L.L.C. Web browser accessible search engine that identifies search result maxima through user search flow and result content comparison
US8229911B2 (en) * 2008-05-13 2012-07-24 Enpulz, Llc Network search engine utilizing client browser activity information
US8250054B2 (en) * 2008-05-13 2012-08-21 Enpulz, L.L.C. Network search engine utilizing client browser favorites
US8359237B2 (en) * 2008-05-23 2013-01-22 Ebay Inc. System and method for context and community based customization for a user experience
US8984395B2 (en) * 2008-06-19 2015-03-17 Opera Software Asa Methods, systems and devices for transcoding and displaying electronic documents
US9152722B2 (en) * 2008-07-22 2015-10-06 Yahoo! Inc. Augmenting online content with additional content relevant to user interest
FR2934388A1 (fr) * 2008-07-25 2010-01-29 Proviciel Mlstate Procede de creation de programme informatique
US20100180186A1 (en) * 2008-09-16 2010-07-15 James Skinner System and Method for Storage and Distribution of Electronic Publications by Content Creators and Online Publishers with Referral-Based Commissions
US9092538B2 (en) * 2008-09-30 2015-07-28 Disney Enterprises, Inc. System and method for determining the data model used to create a web page
US8452793B2 (en) * 2008-09-30 2013-05-28 Yahoo! Inc. Query refinement based on user selections
US8527883B2 (en) * 2008-12-18 2013-09-03 International Business Machines Corporation Browser operation with sets of favorites
US8386519B2 (en) * 2008-12-30 2013-02-26 Expanse Networks, Inc. Pangenetic web item recommendation system
US20100180192A1 (en) * 2009-01-09 2010-07-15 Cerner Innovation, Inc. Dynamically configuring a presentation layer associated with a webpage delivered to a client device
US20110302275A1 (en) * 2010-06-04 2011-12-08 Rich Prodan Method and System for Matching Content Consumption Preference Via a Broadband Gateway
US8990289B2 (en) * 2009-02-27 2015-03-24 Oracle America, Inc. Server based framework for improving Ajax performance
US8533582B2 (en) * 2009-03-20 2013-09-10 Xerox Corporation Trail-based data content discovery, organization, and processing
US9436482B2 (en) * 2009-03-25 2016-09-06 Microsoft Technology Licensing, Llc Input content to application via web browser
US8712992B2 (en) * 2009-03-28 2014-04-29 Microsoft Corporation Method and apparatus for web crawling
US8200617B2 (en) * 2009-04-15 2012-06-12 Evri, Inc. Automatic mapping of a location identifier pattern of an object to a semantic type using object metadata
US10699235B2 (en) * 2009-05-05 2020-06-30 Oracle America, Inc. System, method and computer readable medium for placing advertisements into web pages
US20100325607A1 (en) * 2009-06-17 2010-12-23 Microsoft Corporation Generating Code Meeting Approved Patterns
US8812959B2 (en) * 2009-06-30 2014-08-19 International Business Machines Corporation Method and system for delivering digital content
US8458604B2 (en) * 2009-07-06 2013-06-04 Fairwinds Partners Llc Methods and apparatus for determining website validity
CA2698066A1 (en) * 2009-07-31 2011-01-31 Nitobi Software Inc. System and method for remotely compiling multi-platform native applications for mobile devices
US8849725B2 (en) * 2009-08-10 2014-09-30 Yahoo! Inc. Automatic classification of segmented portions of web pages
US20110060788A1 (en) * 2009-09-04 2011-03-10 ExactFactor, Ltd. System and method for automatically providing metadata elements on a web page or web site
JP2011070481A (ja) * 2009-09-28 2011-04-07 Fujifilm Corp ウェブ・ブラウザ送信サーバおよびその動作制御方法
US8543907B1 (en) * 2009-10-16 2013-09-24 Google Inc. Context-sensitive optimization level selection
US10607235B2 (en) * 2009-12-24 2020-03-31 Outbrain Inc. Systems and methods for curating content
EP2524321A4 (en) * 2010-01-15 2013-09-11 Endurance Int Group Inc HOSTING SERVICE FOR UNMITTED WEBDOMAINS BASED ON A GENERAL SERVICE ARCHITECTURE
US8413052B2 (en) * 2010-02-17 2013-04-02 Yahoo! Inc. Bidded marketplace for applications
US8280378B2 (en) * 2010-03-08 2012-10-02 Telcordia Technologies, Inc. Method and system to support user-centric selection of point of attachment through momentary interactive multimedia experience conveyance and through correlation of web links to quality and experience metrics
JP2011186913A (ja) * 2010-03-10 2011-09-22 Fujifilm Corp ウェブサイト閲覧システム及びサーバ
US9262138B2 (en) * 2010-05-27 2016-02-16 Salesforce.Com, Inc. Adding directives for JavaScript files directly into source code in a multi-tenant database environment
US8595216B2 (en) * 2010-06-04 2013-11-26 Joel R. Harris Method of providing an interactive entertainment system
US20110307561A1 (en) * 2010-06-14 2011-12-15 Qualcomm Incorporated System and apparatus for power-efficiently delivering webpage contents in a broadcast network
US20120096073A1 (en) * 2010-10-18 2012-04-19 Blabbelon, Inc. Local polling method and system for real time updating of web-based services
US20120109836A1 (en) * 2010-11-01 2012-05-03 Google Inc. Content sharing interface for sharing content in social networks
US9311678B2 (en) * 2010-12-15 2016-04-12 Facebook, Inc. Comment plug-in for third party system
US9864611B2 (en) * 2010-12-15 2018-01-09 Microsoft Technology Licensing, Llc Extensible template pipeline for web applications
US9805009B2 (en) * 2010-12-30 2017-10-31 Opera Software As Method and device for cascading style sheet (CSS) selector matching
US9015230B2 (en) * 2011-02-23 2015-04-21 Broadcom Corporation Gateway/set top box image merging for delivery to serviced client device
US8713103B2 (en) * 2011-03-10 2014-04-29 Ebay Inc. Managing delivery of application server content
US8510237B2 (en) * 2011-03-15 2013-08-13 Qualcomm Incorporated Machine learning method to identify independent tasks for parallel layout in web browsers
US8997069B2 (en) * 2011-04-13 2015-03-31 Microsoft Technology Licensing, Llc API descriptions
US20120297429A1 (en) * 2011-05-17 2012-11-22 Cbs Interactive, Inc. Emulating Television Viewing Experience In A Browser
US9460224B2 (en) * 2011-06-16 2016-10-04 Microsoft Technology Licensing Llc. Selection mapping between fetched files and source files
US9146909B2 (en) 2011-07-27 2015-09-29 Qualcomm Incorporated Web browsing enhanced by cloud computing
US10467289B2 (en) * 2011-08-02 2019-11-05 Comcast Cable Communications, Llc Segmentation of video according to narrative theme
US8516360B2 (en) * 2011-08-24 2013-08-20 Qualcomm Innovation Center, Inc. Controlled parallel compilation and execution of JavaScripts
US9165308B2 (en) * 2011-09-20 2015-10-20 TagMan Inc. System and method for loading of web page assets
US8515902B2 (en) * 2011-10-14 2013-08-20 Box, Inc. Automatic and semi-automatic tagging features of work items in a shared workspace for metadata tracking in a cloud-based content management system with selective or optional user contribution
US20130124301A1 (en) * 2011-11-10 2013-05-16 Google Inc. System and method for dynamic user feedback for display and context advertisements
WO2013102924A2 (en) * 2011-11-30 2013-07-11 Tata Consultancy Services Limited A method and system for providing tourist assistance and guided navigation by metadata transmission
US9307009B2 (en) * 2012-02-15 2016-04-05 Mobilespan Inc. Presenting execution of a remote application in a mobile device native format
US9325806B2 (en) * 2012-02-24 2016-04-26 Qualcomm Incorporated Cooperative loading of webpages based on shared meta information
US9239862B2 (en) 2012-05-01 2016-01-19 Qualcomm Incorporated Web acceleration based on hints derived from crowd sourcing
US8990190B2 (en) * 2012-11-16 2015-03-24 Apollo Education Group, Inc. Contextual help article provider

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10275108A (ja) * 1997-03-26 1998-10-13 Internatl Business Mach Corp <Ibm> データ分配方法、装置及びプリキャッシュ方法
JP2000215173A (ja) * 1999-01-21 2000-08-04 Internatl Business Mach Corp <Ibm> ブラウザ共有方法及びシステム
JP2003036217A (ja) * 2001-07-24 2003-02-07 Mitsubishi Denki Information Technology Corp Javaアプレットバージョン管理装置
JP2005115684A (ja) * 2003-10-08 2005-04-28 Canon Inc コンテンツ検索装置及びコンテンツ検索方法
US20100174774A1 (en) * 2009-01-08 2010-07-08 Inernational Business Machines Corporation Method for server-side logging of client browser state through markup language
JP2013516720A (ja) * 2010-01-12 2013-05-13 クアルコム,インコーポレイテッド メタデータ抽出による動的言語の実行
JP2011210091A (ja) * 2010-03-30 2011-10-20 Kddi R & D Laboratories Inc コンテンツ再生制御システムおよびそのプロキシサーバ

Cited By (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11017152B2 (en) 2013-06-06 2021-05-25 International Business Machines Corporation Optimizing loading of web page based on aggregated user preferences for web page elements of web page
US10803232B2 (en) 2013-06-06 2020-10-13 International Business Machines Corporation Optimizing loading of web page based on aggregated user preferences for web page elements of web page
US10817653B2 (en) 2013-06-06 2020-10-27 International Business Machines Corporation Optimizing loading of web page based on aggregated user preferences for web page elements of web page
US11017153B2 (en) 2013-06-06 2021-05-25 International Business Machines Corporation Optimizing loading of web page based on aggregated user preferences for web page elements of web page
JP2016526230A (ja) * 2013-06-06 2016-09-01 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation ウェブ・ページのロードを最適化するためのコンピュータ・プログラム製品、システム、および方法
JP2018531454A (ja) * 2015-10-07 2018-10-25 グーグル エルエルシー 非ブラウザアプリケーションにおけるコンテンツの統合
JP2021501926A (ja) * 2017-12-08 2021-01-21 グーグル エルエルシーGoogle LLC 音声駆動コンピューティングインフラストラクチャによるグラフィカルユーザインターフェースレンダリング管理
JP7032523B2 (ja) 2017-12-08 2022-03-08 グーグル エルエルシー 音声駆動コンピューティングインフラストラクチャによるグラフィカルユーザインターフェースレンダリング管理
JP2022071013A (ja) * 2017-12-08 2022-05-13 グーグル エルエルシー 音声駆動コンピューティングインフラストラクチャによるグラフィカルユーザインターフェースレンダリング管理
US11429346B2 (en) 2017-12-08 2022-08-30 Google Llc Graphical user interface rendering management by voice-driven computing infrastructure
JP7459153B2 (ja) 2017-12-08 2024-04-01 グーグル エルエルシー 音声駆動コンピューティングインフラストラクチャによるグラフィカルユーザインターフェースレンダリング管理
JP2022530645A (ja) * 2019-04-30 2022-06-30 セールスフォース ドット コム インコーポレイティッド コンポーネントベースのユーザインターフェースのための宣言型の反応的なデータ層
JP7237274B2 (ja) 2019-04-30 2023-03-13 セールスフォース インコーポレイテッド コンポーネントベースのユーザインターフェースのための宣言型の反応的なデータ層

Also Published As

Publication number Publication date
US20130031459A1 (en) 2013-01-31
CA2842737A1 (en) 2013-01-31
RU2014107492A (ru) 2015-09-10
JP5869124B2 (ja) 2016-02-24
CN103718177B (zh) 2018-03-23
EP2737414A1 (en) 2014-06-04
KR101609483B1 (ko) 2016-04-20
US20140149850A1 (en) 2014-05-29
KR20140051359A (ko) 2014-04-30
CN103718177A (zh) 2014-04-09
WO2013015911A1 (en) 2013-01-31
RU2577193C2 (ru) 2016-03-10
US9146909B2 (en) 2015-09-29
CA2842737C (en) 2017-01-03
BR112014001889A2 (pt) 2017-02-21

Similar Documents

Publication Publication Date Title
JP5869124B2 (ja) クラウドコンピューティングによって向上したウェブブラウジング
US7483941B2 (en) System and method for dynamically inserting prefetch tags by the web server
KR102294326B1 (ko) 연결 해제의 기간을 위한 애플리케이션 데이터의 프리페치
JP6109202B2 (ja) 共有メタ情報に基づくウェブページの協調的ローディング
US20170041426A1 (en) System for prefetching digital tags
US10909170B2 (en) Method for processing and rendering feed-like based images for mobile devices
CN103714172A (zh) 页面处理方法、装置及系统
US20240211680A1 (en) Time-dependent machine-generated hinting
US20140258372A1 (en) Systems and Methods for Categorizing and Measuring Engagement with Content
KR101308482B1 (ko) 컨텐츠 제공 장치 및 그것의 컨텐츠 제공 방법
KR20120016335A (ko) 오프라인 실행을 위한 웹 페이지 사전 캐싱 시스템 및 방법
CN116846881A (zh) 一种缓存库文件的更新方法及终端
Jun Handling Scripts to Improve Users’ Web Experience on Any Network
JP2020123362A (ja) 複数のスレッドを使って電子リソースをダウンロードする際の待ち時間の削減

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150130

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150209

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20150508

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150609

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20151207

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20160106

R150 Certificate of patent or registration of utility model

Ref document number: 5869124

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees