(57)【要約】  マニフェストを作成し使用してコンピューティングデバイスによるウェブページのレンダリングをサポートするためのシステム、方法、およびサーバ。複数のコンピューティングデバイスがウェブページをレンダリングしてメタデータを生成することができる。サーバがメタデータを収集し使用してマニフェストを生成することができる。マニフェストは、ウェブページのリソースをロードするための優先順位およびフォーマットを記述した情報を提供することができる。コンピューティングデバイスは、情報をマニフェストと比較できるようにサーバに送信し、ウェブページのリソースを取り込むための優先順位およびフォーマットを判定することができる。
2015513144.tif 000002
【特許請求の範囲】
【請求項１】
モバイルコンピューティングデバイスによるウェブページのレンダリングをサポートするための方法であって、
前記ウェブページを処理することに関するメタ情報を複数のモバイルコンピューティングデバイス上で生成するステップと、
前記生成されたメタ情報を前記複数のモバイルコンピューティングデバイスの各々からサーバに送信し、前記ウェブページを処理する際に使用されるユーザエージェントを特定するステップと、
前記生成されたメタ情報を前記サーバにおいて受信するステップと、
前記複数のモバイルコンピューティングデバイスから受信された前記メタ情報に基づいてユーザエージェントごとに前記ウェブページのマニフェストを生成するステップと、
前記マニフェストを使用して、前記ウェブページをユーザエージェントによってモバイルコンピューティングデバイス上にロードするのに必要なリソースに優先順位を割り当てるステップと、
前記リソースを、前記リソースに割り当てられた優先順位に基づいて決定された順序で前記モバイルコンピューティングデバイス上で受信するステップと、
前記モバイルコンピューティングデバイス上で前記ウェブページをレンダリングするステップとを含む方法。
【請求項２】
前記モバイルコンピューティングデバイスが、前記ウェブページのレンダリング時に生成されたメタ情報を前記サーバに送信するステップをさらに含む、請求項1に記載の方法。
【請求項３】
前記マニフェストを使用して、前記ウェブページをユーザエージェントによってモバイルコンピューティングデバイス上にロードするのに必要なリソースに優先順位を割り当てるステップは、
前記ウェブページおよび前記モバイルコンピューティングデバイス上に実装されたユーザエージェントを特定する情報を前記サーバに送信するステップと、
前記ウェブページおよび前記モバイルコンピューティングデバイス上に実装される前記ユーザエージェントの前記マニフェストを取得するステップと、
前記取得されたマニフェストを前記モバイルコンピューティングデバイスに送信するステップと、
前記マニフェストを前記モバイルコンピューティングデバイス上に記憶された情報と比較することによって、前記ウェブページを前記モバイルコンピューティングデバイス上にロードするのに必要なリソースを前記モバイルコンピューティングデバイスにおいて特定するステップと、
前記マニフェストに基づいて前記モバイルコンピューティングデバイスにおける前記特定されたリソースに優先順位を割り当てるステップとを含む、請求項1に記載の方法。
【請求項４】
前記リソースに割り当てられた優先順位によって決定された順序で前記モバイルコンピューティングデバイス上で前記リソースを受信するステップは、前記モバイルコンピューティングデバイスが前記マニフェストに基づいて前記モバイルコンピューティングデバイスによって決定された順序で第2のサーバからの前記リソースのダウンロードを要求するステップを含む、請求項3に記載の方法。
【請求項５】
前記マニフェストを使用して、前記ウェブページをユーザエージェントによってモバイルコンピューティングデバイス上にロードするのに必要なリソースに優先順位を割り当てるステップは、
前記モバイルコンピューティングデバイスに関する情報を前記サーバに送信するステップと、
前記ウェブページおよび前記モバイルコンピューティングデバイス上に実装される前記ユーザエージェントの前記マニフェストを取得するステップと、
前記サーバにおいて、前記取得されたマニフェストと前記モバイルコンピューティングデバイスに関する前記情報を比較するステップと、
前記サーバにおいて、前記ウェブページを前記モバイルコンピューティングデバイス上にロードするのに必要なリソースに関する優先順位および適切なオブジェクトフォーマットを特定するステップと、
前記ウェブページを前記モバイルコンピューティングデバイス上にロードするのに必要なリソースに関する前記特定された優先順位および適切なオブジェクトフォーマットを前記モバイルコンピューティングデバイスに送信するステップとを含む、請求項1に記載の方法。
【請求項６】
前記リソースに割り当てられた優先順位に基づいて決定された順序で前記モバイルコンピューティングデバイス上で前記リソースを受信するステップは、前記サーバが、前記リソースを、前記マニフェストに基づいて前記サーバによって決定された順序で前記モバイルコンピューティングデバイスにプッシュするステップを含む、請求項5に記載の方法。
【請求項７】
前記サーバがリソースを前記モバイルコンピューティングデバイスの所望のフォーマットにコード変換するステップをさらに含む、請求項6に記載の方法。
【請求項８】
モバイルコンピューティングデバイスによるウェブページのレンダリングをサポートするための方法であって、
様々な種類のユーザエージェントを使用して前記ウェブページを処理することに関するメタ情報をサーバ上で生成するステップと、
前記生成されたメタ情報に基づいてユーザエージェントの種類ごとに前記ウェブページのマニフェストを生成するステップと、
前記マニフェストを使用して、前記ウェブページをユーザエージェントによってモバイルコンピューティングデバイス上にロードするのに必要なリソースに優先順位を割り当てるステップと、
前記リソースを、前記リソースに割り当てられた優先順位に基づいて決定された順序で前記モバイルコンピューティングデバイス上で受信するステップと、
前記モバイルコンピューティングデバイス上で前記ウェブページをレンダリングするステップとを含む方法。
【請求項９】
前記モバイルコンピューティングデバイスが、前記ウェブページのレンダリング時に生成されたメタ情報を前記サーバに送信するステップをさらに含む、請求項8に記載の方法。
【請求項１０】
前記マニフェストを使用して、前記ウェブページをユーザエージェントによってモバイルコンピューティングデバイス上にロードするのに必要なリソースに優先順位を割り当てるステップは、
前記マニフェストを前記モバイルコンピューティングデバイスに関する情報によって評価できるように前記モバイルコンピューティングデバイスに送信するステップと、
前記モバイルコンピューティングデバイスにおいて、前記モバイルコンピューティングデバイス上に前記ウェブページをロードするのに必要な前記リソースを特定するステップと、
前記モバイルコンピューティングデバイスにおける前記特定されたリソースに優先順位を割り当てるステップとを含む、請求項8に記載の方法。
【請求項１１】
前記リソースに割り当てられた優先順位によって決定された順序で前記モバイルコンピューティングデバイス上で前記リソースを受信するステップは、前記モバイルコンピューティングデバイスが前記マニフェストに基づいて前記モバイルコンピューティングデバイスによって決定された順序で第2のサーバからの前記リソースのダウンロードを要求するステップを含む、請求項10に記載の方法。
【請求項１２】
前記マニフェストを使用して、前記ウェブページをユーザエージェントによってモバイルコンピューティングデバイス上にロードするのに必要なリソースに優先順位を割り当てるステップは、
前記モバイルコンピューティングデバイスに関する情報を前記サーバに送信するステップと、
前記ウェブページおよび前記モバイルコンピューティングデバイス上に実装される前記ユーザエージェントの前記マニフェストを取得するステップと、
前記サーバにおいて、前記取得されたマニフェストと前記モバイルコンピューティングデバイスに関する前記情報を比較するステップと、
前記サーバにおいて、前記モバイルコンピューティングデバイス上に前記ウェブページをロードするのに必要なリソースに関する優先順位および適切なオブジェクトフォーマットを特定するステップと、
前記ウェブページを前記モバイルコンピューティングデバイス上にロードするのに必要なリソースに関する前記特定された優先順位および適切なオブジェクトフォーマットを前記モバイルコンピューティングデバイスに送信するステップとを含む、請求項8に記載の方法。
【請求項１３】
前記リソースに割り当てられた優先順位に基づいて決定された順序で前記モバイルコンピューティングデバイス上で前記リソースを受信するステップは、前記サーバが、前記リソースを、前記マニフェストに基づいて前記サーバによって決定された順序で前記モバイルコンピューティングデバイスにプッシュするステップを含む、請求項12に記載の方法。
【請求項１４】
前記サーバがリソースを前記モバイルコンピューティングデバイスの所望のフォーマットにコード変換するステップをさらに含む、請求項13に記載の方法。
【請求項１５】
メモリと、
前記メモリに結合され、
ウェブページおよびモバイルコンピューティングデバイス上に実装されたユーザエージェントを特定する情報をサーバに送信すること、
前記ウェブページおよび前記モバイルコンピューティングデバイス上に実装される前記ユーザエージェントのマニフェストを前記サーバから受信すること、
前記マニフェストを前記モバイルコンピューティングデバイス上に記憶された情報と比較することによって、前記ウェブページをロードするのに必要なリソースを特定すること、
前記マニフェストに基づいて前記特定されたリソースに優先順位を割り当てること、
前記リソースを、前記リソースに割り当てられた優先順位に基づいて決定された順序で受信すること、ならびに
前記ウェブページをレンダリングすることを含む動作を実行するためのプロセッサ実行可能命令を有するように構成されたプロセッサとを備えるモバイルコンピューティングデバイス。
【請求項１６】
前記プロセッサは、前記リソースを、前記リソースに割り当てられた優先順位に基づいて決定された順序で受信することが前記リソースを前記マニフェストに基づく順序で第2のサーバからダウンロードすることを要求することを含むようなプロセッサ実行可能な命令を有するように構成される、請求項15に記載のモバイルコンピューティングデバイス。
【請求項１７】
前記プロセッサは、前記ウェブページのレンダリング時に生成されたメタ情報を前記サーバに送信することをさらに含む動作を実行するためのプロセッサ実行可能な命令を有するように構成される、請求項15に記載のモバイルコンピューティングデバイス。
【請求項１８】
メモリと、
前記メモリに結合され、
様々な種類のユーザエージェントを使用してウェブページを処理することに関するメタ情報を収集すること、
前記収集されたメタ情報に基づいてユーザエージェントの種類ごとに前記ウェブページのマニフェストを生成すること、
前記マニフェストを使用して、前記ウェブページをユーザエージェントによってモバイルコンピューティングデバイス上にロードするのに必要なリソースに優先順位を割り当てること、および
前記リソースを、前記リソースに割り当てられた優先順位に基づいて決定された順序で前記モバイルコンピューティングデバイスに送信することを含む動作を実行するためのサーバプロセッサ実行可能命令を有するように構成されたサーバプロセッサとを備えるサーバ。
【請求項１９】
前記サーバプロセッサは、前記マニフェストを使用して前記ウェブページをユーザエージェントによってモバイルコンピューティングデバイス上にロードするのに必要なリソースに優先順位を割り当てることが、前記マニフェストを前記モバイルコンピューティングデバイスに関する情報によって評価できるように前記モバイルコンピューティングデバイスに送信することを含むようなサーバプロセッサ実行可能命令を有するように構成される、請求項18に記載のサーバ。
【請求項２０】
前記サーバプロセッサは、前記ウェブページのレンダリング時に生成されたメタ情報を前記モバイルコンピューティングデバイスから受信することをさらに含む動作を実行するためのサーバプロセッサ実行可能命令を有するように構成される、請求項18に記載のサーバ。
【請求項２１】
前記サーバプロセッサは、様々な種類のユーザエージェントを使用してウェブページを処理することに関するメタ情報を収集することが前記サーバ上で様々な種類のユーザエージェントを使用して前記ウェブページを処理することに関するメタ情報を生成することを含むようなサーバプロセッサ実行可能命令を有するように構成される、請求項18に記載のサーバ。
【請求項２２】
前記サーバプロセッサは、様々な種類のユーザエージェントを使用してウェブページを処理することに関するメタ情報を収集することが、様々な種類のユーザエージェントを使用して前記ウェブページを処理することに関するメタ情報を複数のモバイルコンピューティングデバイスから受信することを含むようなサーバプロセッサ実行可能命令を有するように構成される、請求項18に記載のサーバ。
【請求項２３】
前記サーバプロセッサは、前記マニフェストを使用して、前記ウェブページをユーザエージェントによってモバイルコンピューティングデバイス上にロードするのに必要なリソースに優先順位を割り当てることが、
前記モバイルコンピューティングデバイスに関する情報を受信することと、
前記マニフェストを使用して前記受信された情報を評価することと、
前記ウェブページを前記モバイルコンピューティングデバイス上にロードするのに必要な前記リソースに関する優先順位および適切なオブジェクトフォーマットを特定することと、
前記ウェブページを前記モバイルコンピューティングデバイス上にロードするのに必要なリソースに関する前記特定された優先順位および適切なオブジェクトフォーマットを前記モバイルコンピューティングデバイスに送信することとを含むようなサーバプロセッサ実行可能命令を有するように構成される、請求項18に記載のサーバ。
【請求項２４】
前記サーバプロセッサは、前記リソースを、前記リソースに割り当てられた優先順位に基づいて決定された順序で前記モバイルコンピューティングデバイスに送信することが、
前記リソースを前記マニフェストに基づく順序で前記モバイルコンピューティングデバイスにプッシュすることを含むようなサーバプロセッサ実行可能命令を有するように構成される、請求項23に記載のサーバ。
【請求項２５】
前記サーバプロセッサは、リソースを前記モバイルコンピューティングデバイスの所望のフォーマットにコード変換することをさらに含む動作を実行するためのサーバプロセッサ実行可能命令を有するように構成される、請求項24に記載のサーバ。
【請求項２６】
ウェブページおよびモバイルコンピューティングデバイス上に実装されたユーザエージェントを特定する情報をサーバに送信するための手段と、
前記ウェブページおよび前記モバイルコンピューティングデバイス上に実装される前記ユーザエージェントのマニフェストを前記サーバから受信するための手段と、
前記マニフェストを前記モバイルコンピューティングデバイス上に記憶された情報と比較することによって、前記ウェブページをロードするのに必要なリソースを特定するための手段と、
前記マニフェストに基づいて前記特定されたリソースに優先順位を割り当てるための手段と、
前記リソースを、前記リソースに割り当てられた優先順位に基づいて決定された順序で受信するための手段と、
前記ウェブページをレンダリングするための手段とを備えるモバイルコンピューティングデバイス。
【請求項２７】
前記リソースを、前記リソースに割り当てられた優先順位に基づいて決定された順序で受信するための手段は、前記リソースを前記マニフェストに基づく順序で第2のサーバからダウンロードすることを要求するための手段を備える、請求項26に記載のモバイルコンピューティングデバイス。
【請求項２８】
前記ウェブページのレンダリング時に生成されたメタ情報を前記サーバに送信するための手段をさらに備える、請求項26に記載のモバイルコンピューティングデバイス。
【請求項２９】
様々な種類のユーザエージェントを使用してウェブページを処理することに関するメタ情報を収集するための手段と、
前記収集されたメタ情報に基づいてユーザエージェントの種類ごとに前記ウェブページのマニフェストを生成するための手段と、
前記マニフェストを使用して、前記ウェブページをユーザエージェントによってモバイルコンピューティングデバイス上にロードするのに必要なリソースに優先順位を割り当てるための手段と、
前記リソースを、前記リソースに割り当てられた優先順位に基づいて決定された順序で前記モバイルコンピューティングデバイスに送信するための手段とを備えるサーバ。
【請求項３０】
前記マニフェストを使用して前記ウェブページをユーザエージェントによってモバイルコンピューティングデバイス上にロードするのに必要なリソースに優先順位を割り当てるための手段は、前記マニフェストを前記モバイルコンピューティングデバイスに関する情報によって評価できるように前記モバイルコンピューティングデバイスに送信するための手段を備える、請求項29に記載のサーバ。
【請求項３１】
前記ウェブページのレンダリング時に生成されたメタ情報を前記モバイルコンピューティングデバイスから受信するための手段をさらに備える、請求項29に記載のサーバ。
【請求項３２】
様々な種類のユーザエージェントを使用してウェブページを処理することに関するメタ情報を収集するための手段は、前記サーバ上で様々な種類のユーザエージェントを使用して前記ウェブページを処理することに関するメタ情報を生成するための手段を備える、請求項29に記載のサーバ。
【請求項３３】
様々な種類のユーザエージェントを使用してウェブページを処理することに関するメタ情報を収集するための手段は、様々な種類のユーザエージェントを使用して前記ウェブページを処理することに関するメタ情報を複数のモバイルコンピューティングデバイスから受信するための手段を備える、請求項29に記載のサーバ。
【請求項３４】
前記マニフェストを使用して、前記ウェブページをユーザエージェントによってモバイルコンピューティングデバイス上にロードするのに必要なリソースに優先順位を割り当てるための手段は、
前記モバイルコンピューティングデバイスに関する情報を受信するための手段と、
前記マニフェストを使用して前記受信された情報を評価するための手段と、
前記ウェブページを前記モバイルコンピューティングデバイス上にロードするのに必要な前記リソースに関する優先順位および適切なオブジェクトフォーマットを特定するための手段と、
前記ウェブページを前記モバイルコンピューティングデバイス上にロードするのに必要なリソースに関する前記特定された優先順位および適切なオブジェクトフォーマットを前記モバイルコンピューティングデバイスに送信するための手段とを備える、請求項29に記載のサーバ。
【請求項３５】
前記リソースを、前記リソースに割り当てられた優先順位に基づいて決定された順序で前記モバイルコンピューティングデバイスに送信するための手段は、前記リソースを前記マニフェストに基づく順序で前記モバイルコンピューティングデバイスにプッシュするための手段を備える、請求項34に記載のサーバ。
【請求項３６】
リソースを前記モバイルコンピューティングデバイスの所望のフォーマットにコード変換するための手段をさらに備える、請求項35に記載のサーバ。
【請求項３７】
プロセッサ実行可能ソフトウェア命令を記憶した非一時的プロセッサ可読記憶媒体であって、前記プロセッサ実行可能ソフトウェア命令が、プロセッサに、
ウェブページおよびモバイルコンピューティングデバイス上に実装されたユーザエージェントを特定する情報をサーバに送信すること、
前記ウェブページおよび前記モバイルコンピューティングデバイス上に実装される前記ユーザエージェントのマニフェストを前記サーバから受信すること、
前記マニフェストを前記モバイルコンピューティングデバイス上に記憶された情報と比較することによって、前記ウェブページをロードするのに必要なリソースを特定すること、
前記マニフェストに基づいて前記特定されたリソースに優先順位を割り当てること、
前記リソースを、前記リソースに割り当てられた優先順位に基づいて決定された順序で受信すること、ならびに
前記ウェブページをレンダリングすることを含む動作を実行させる非一時的プロセッサ可読記憶媒体。
【請求項３８】
前記記憶されたプロセッサ実行可能ソフトウェア命令は、プロセッサに、前記リソースを、前記リソースに割り当てられた優先順位に基づいて決定された順序で受信することが、前記リソースを前記マニフェストに基づく順序で第2のサーバからダウンロードすることを要求することを含むような動作を実行させるように構成される、請求項37に記載の非一時的プロセッサ可読記憶媒体。
【請求項３９】
前記記憶されたプロセッサ実行可能ソフトウェア命令は、プロセッサに、前記ウェブページのレンダリング時に生成されたメタ情報を前記サーバに送信することをさらに含む動作を実行させるように構成される、請求項37に記載の非一時的プロセッサ可読記憶媒体。
【請求項４０】
サーバプロセッサ実行可能命令を記憶した非一時的サーバ可読記憶媒体であって、前記サーバプロセッサ実行可能命令が、サーバプロセッサに、
様々な種類のユーザエージェントを使用してウェブページを処理することに関するメタ情報を収集すること、
前記収集されたメタ情報に基づいてユーザエージェントの種類ごとに前記ウェブページのマニフェストを生成すること、
前記マニフェストを使用して、前記ウェブページをユーザエージェントによってモバイルコンピューティングデバイス上にロードするのに必要なリソースに優先順位を割り当てること、および
前記リソースを、前記リソースに割り当てられた優先順位に基づいて決定された順序で前記モバイルコンピューティングデバイスに送信することを含む動作を実行させるように構成される非一時的サーバ可読記憶媒体。
【請求項４１】
前記記憶されたサーバプロセッサ実行可能命令は、サーバプロセッサに、前記マニフェストを使用して前記ウェブページをユーザエージェントによってモバイルコンピューティングデバイス上にロードするのに必要なリソースに優先順位を割り当てることが、前記マニフェストを前記モバイルコンピューティングデバイスに関する情報によって評価できるように前記モバイルコンピューティングデバイスに送信することを含むような動作を実行させるように構成される、請求項40に記載の非一時的サーバ可読記憶媒体。
【請求項４２】
前記記憶されたサーバプロセッサ実行可能命令は、サーバプロセッサに、前記ウェブページのレンダリング時に生成されたメタ情報を前記モバイルコンピューティングデバイスから受信することをさらに含む動作を実行させるように構成される、請求項40に記載の非一時的サーバ可読記憶媒体。
【請求項４３】
前記記憶されたサーバプロセッサ実行可能命令は、サーバプロセッサに、様々な種類のユーザエージェントを使用してウェブページを処理することに関するメタ情報を収集することが前記サーバ上で様々な種類のユーザエージェントを使用して前記ウェブページを処理することに関するメタ情報を生成することを含むような動作を実行させるように構成される、請求項40に記載の非一時的サーバ可読記憶媒体。
【請求項４４】
前記記憶されたサーバプロセッサ実行可能命令は、サーバプロセッサに、様々な種類のユーザエージェントを使用してウェブページを処理することに関するメタ情報を収集することが様々な種類のユーザエージェントを使用して前記ウェブページを処理することに関するメタ情報を複数のモバイルコンピューティングデバイスから受信することを含むような動作を実行させるように構成される、請求項40に記載の非一時的サーバ可読記憶媒体。
【請求項４５】
前記記憶されたサーバプロセッサ実行可能命令は、前記マニフェストを使用して前記ウェブページをユーザエージェントによってモバイルコンピューティングデバイス上にロードするのに必要なリソースに優先順位を割り当てることが、サーバプロセッサに、
前記モバイルコンピューティングデバイスに関する情報を受信することと、
前記マニフェストを使用して前記受信された情報を評価することと、
前記ウェブページを前記モバイルコンピューティングデバイス上にロードするのに必要な前記リソースに関する優先順位および適切なオブジェクトフォーマットを特定することと、
前記ウェブページを前記モバイルコンピューティングデバイス上にロードするのに必要なリソースに関する前記特定された優先順位および適切なオブジェクトフォーマットを前記モバイルコンピューティングデバイスに送信することとを含むような動作を実行させるように構成される、請求項40に記載の非一時的サーバ可読記憶媒体。
【請求項４６】
前記記憶されたサーバプロセッサ実行可能命令は、サーバプロセッサに、前記リソースを、前記リソースに割り当てられた優先順位に基づいて決定された順序で前記モバイルコンピューティングデバイスに送信することが、前記リソースを前記マニフェストに基づく順序で前記モバイルコンピューティングデバイスにプッシュすることを含むような動作を実行させるように構成される、請求項45に記載の非一時的サーバ可読記憶媒体。
【請求項４７】
前記記憶されたサーバプロセッサ実行可能命令は、サーバプロセッサに、リソースを前記モバイルコンピューティングデバイスの所望のフォーマットにコード変換することをさらに含む動作を実行させるように構成される、請求項46に記載の非一時的サーバ可読記憶媒体。
【請求項４８】
サーバと、
複数のモバイルコンピューティングデバイスとを備え、
前記複数のモバイルコンピューティングデバイスにおける各モバイルコンピューティングデバイスが、
メモリと、
前記メモリに結合され、
前記ウェブページを処理することに関するメタ情報を生成すること、
前記生成されたメタ情報を前記サーバに送信すること、および
前記ウェブページを処理する際に使用される前記ユーザエージェントを特定することを含む動作を実行するためのプロセッサ実行可能命令を有するように構成されたプロセッサとを備え、
前記サーバは、
メモリと、
前記メモリに結合され、
ウェブページを様々なユーザエージェントによってロードすることに基づくメタ情報を前記複数のモバイルコンピューティングデバイスから受信すること、および
前記複数のモバイルコンピューティングデバイスから受信された前記メタ情報に基づいて、前記ウェブページをユーザエージェントによってロードするのに必要なリソースに優先順位を割り当てるための情報を提供するように構成されたマニフェストを生成することを含む動作を実行するためのサーバプロセッサ実行可能命令を有するように構成されたサーバプロセッサとを備え、
各モバイルコンピューティングデバイスの前記プロセッサは、
前記ウェブページを前記マニフェスト内の情報に基づいて決定された順序で前記ユーザエージェントによってロードするためのリソースを受信すること、および
前記ウェブページをレンダリングすることをさらに含む動作を実行するためのプロセッサ実行可能命令を有するように構成されたプロセッサとを備えるシステム。
【請求項４９】
各モバイルコンピューティングデバイスの前記プロセッサは、前記ウェブページのレンダリング時に生成されたメタ情報を前記サーバに送信することをさらに含む動作を実行するためのプロセッサ実行可能な命令を有するように構成される、請求項48に記載のシステム。
【請求項５０】
各モバイルコンピューティングデバイスの前記プロセッサは、
前記ウェブページおよび前記モバイルコンピューティングデバイス上に実装された前記ユーザエージェントを特定する情報を前記サーバに送信すること、
前記マニフェストを前記サーバから受信すること、
前記マニフェストを前記モバイルコンピューティングデバイス上に記憶された情報と比較することによって、前記ウェブページを前記ユーザエージェントによって前記モバイルコンピューティングデバイス上にロードするのに必要なリソースを特定すること、ならびに
前記マニフェストに基づいて前記モバイルコンピューティングデバイスにおける前記特定されたリソースに優先順位を割り当てることをさらに含む動作を実行するためのプロセッサ実行可能命令を有するように構成され、
各モバイルコンピューティングデバイスの前記プロセッサは、前記ウェブページを前記ユーザエージェントによって、前記マニフェスト内の情報に基づいて決定された順序でロードするためのリソースを受信することが、
前記ウェブページを前記ユーザエージェントによって、前記モバイルコンピューティングデバイスによって割り当てられた優先順位に基づく順序でロードするためのリソースを要求すること、および
前記リソースを受信することを含むようなプロセッサ実行可能命令を有するように構成され、
前記サーバは、
前記ウェブページおよび前記複数のモバイルコンピューティングデバイスのうちの1つ上に実装された前記ユーザエージェントを特定する前記情報を受信すること、
前記ウェブページおよび前記複数のモバイルコンピューティングデバイスのうちの前記1つ上に実装された前記ユーザエージェントの前記マニフェストを取得すること、ならびに
前記取得されたマニフェストを前記複数のモバイルコンピューティングデバイスのうちの前記1つに送信することをさらに含む動作を実行するためのサーバプロセッサ実行可能命令を有するように構成される請求項48に記載のシステム。
【請求項５１】
各モバイルコンピューティングデバイスの前記プロセッサは、前記ウェブページを前記ユーザエージェントによって、前記モバイルコンピューティングデバイスによって割り当てられた優先順位に基づく順序でロードするためのリソースを要求することが、前記リソースを、前記マニフェストに基づいて前記モバイルコンピューティングデバイスプロセッサによって決定された順序で第2のサーバからダウンロードすることを要求することを含むようなプロセッサ実行可能命令を有するように構成される、請求項50に記載のシステム。
【請求項５２】
各モバイルコンピューティングデバイスの前記プロセッサは、前記モバイルコンピューティングデバイスに関する情報を前記サーバに送信することをさらに含む動作を実行するためのプロセッサ実行可能命令を有するように構成され、
各モバイルコンピューティングデバイスの前記プロセッサは、前記ウェブページを前記ユーザエージェントによって、前記マニフェスト内の情報に基づいて決定された順序でロードするためのリソースを受信することが、
前記ウェブページを前記ユーザエージェントによって、前記サーバによって送信された優先順位および適切なオブジェクトフォーマットに基づく順序でロードするためのリソースを要求すること、および
前記リソースを受信することを含むようなプロセッサ実行可能命令を有するように構成され、
前記サーバは、
前記複数のモバイルコンピューティングデバイスのうちの1つに関する前記情報を受信すること、
前記ウェブページおよび前記複数のモバイルコンピューティングデバイスのうちの前記1つ上に実装された前記ユーザエージェントの前記マニフェストを取得すること、
前記取得されたマニフェストと前記複数のモバイルコンピューティングデバイスのうちの前記1つに関する前記情報を比較すること、
前記ウェブページを前記ユーザエージェントによって前記複数のモバイルコンピューティングデバイスのうちの前記1つ上にロードするのに必要なリソースに関する優先順位および適切なオブジェクトフォーマットを特定すること、ならびに
前記ウェブページを前記ユーザエージェントによって前記複数のモバイルコンピューティングデバイスのうちの前記1つ上にロードするのに必要なリソースに関する前記特定された優先順位および適切なオブジェクトフォーマットを前記複数のモバイルコンピューティングデバイスのうちの前記1つに送信することをさらに含む動作を実行するためのサーバプロセッサ実行可能命令を有するように構成される、請求項48に記載のシステム。
【請求項５３】
前記サーバは、前記ウェブページを前記ユーザエージェントによって前記複数のモバイルコンピューティングデバイスのうちの前記1つ上にロードするのに必要なリソースに関する前記特定された優先順位および適切なオブジェクトフォーマットを前記複数のモバイルコンピューティングデバイスのうちの前記1つに送信することが、前記リソースを前記マニフェストに基づいて前記サーバによって決定された順序で前記複数のモバイルコンピューティングデバイスのうちの前記1つにプッシュすることを含むようなサーバプロセッサ実行可能命令を有するように構成される、請求項52に記載のシステム。
【請求項５４】
前記サーバは、リソースを前記複数のモバイルコンピューティングデバイスのうちの前記1つの所望のフォーマットにコード変換することをさらに含む動作を実行するためのサーバプロセッサ実行可能命令を有するように構成される、請求項53に記載のシステム。
【請求項５５】
サーバと、
モバイルコンピューティングデバイスとを備え、
前記サーバは、
メモリと、
前記メモリに結合され、
様々な種類のユーザエージェントを使用してウェブページを処理することに関するメタ情報を生成すること、および
前記生成されたメタ情報に基づいて、前記ウェブページをユーザエージェントによってロードするのに必要なリソースに優先順位を割り当てるための情報を提供するように構成されたマニフェストを生成することを含む動作を実行するためのサーバプロセッサ実行可能命令を有するように構成されたサーバプロセッサとを備え、
前記モバイルコンピューティングデバイスは、
メモリと、
前記メモリに結合され、
前記ウェブページを前記マニフェスト内の情報に基づいて決定された順序で前記ユーザエージェントによってロードするためのリソースを受信すること、および
前記ウェブページをレンダリングすることを含む動作を実行するためのプロセッサ実行可能命令を有するように構成されたデバイスプロセッサとを備えるシステム。
【請求項５６】
前記デバイスプロセッサは、前記ウェブページのレンダリング時に生成されたメタ情報を前記サーバに送信することをさらに含む動作を実行するためのプロセッサ実行可能な命令を有するように構成される、請求項55に記載のシステム。
【請求項５７】
前記デバイスプロセッサは、
前記ウェブページおよび前記モバイルコンピューティングデバイス上に実装された前記ユーザエージェントを特定する情報を前記サーバに送信すること、
前記マニフェストを前記サーバから受信すること、
前記マニフェストを前記モバイルコンピューティングデバイス上に記憶された情報と比較することによって、前記ウェブページを前記ユーザエージェントによって前記モバイルコンピューティングデバイス上にロードするのに必要なリソースを特定すること、ならびに
前記マニフェストに基づいて前記モバイルコンピューティングデバイスにおける前記特定されたリソースに優先順位を割り当てることをさらに含む動作を実行するためのプロセッサ実行可能命令を有するように構成され、
前記デバイスプロセッサは、前記ウェブページを前記ユーザエージェントによって、前記マニフェスト内の情報に基づいて決定された順序でロードするためのリソースを受信することが、
前記ウェブページを前記ユーザエージェントによって、前記モバイルコンピューティングデバイスによって割り当てられた優先順位に基づく順序でロードするためのリソースを要求すること、および
前記リソースを受信することを含むようなプロセッサ実行可能命令を有するように構成され、
前記サーバプロセッサは、
前記ウェブページおよび前記モバイルコンピューティングデバイス上に実装された前記ユーザエージェントを特定する前記情報を受信すること、
前記ウェブページおよび前記モバイルコンピューティングデバイス上に実装された前記ユーザエージェントの前記マニフェストを取得すること、ならびに
前記取得されたマニフェストを前記モバイルコンピューティングデバイスに送信することをさらに含む動作を実行するためのサーバプロセッサ実行可能命令を有するように構成される、請求項55に記載のシステム。
【請求項５８】
前記デバイスプロセッサは、前記ウェブページを前記ユーザエージェントによって、前記モバイルコンピューティングデバイスによって割り当てられた優先順位に基づく順序でロードするためのリソースを要求することが、前記リソースを、前記マニフェストに基づいて前記モバイルコンピューティングデバイスによって決定された順序で第2のサーバからダウンロードすることを要求することを含むようなプロセッサ実行可能命令を有するように構成される、請求項57に記載のシステム。
【請求項５９】
前記デバイスプロセッサは、前記モバイルコンピューティングデバイスに関する情報を前記サーバに送信することをさらに含む動作を実行するためのプロセッサ実行可能命令を有するように構成され、
前記デバイスプロセッサは、前記ウェブページを前記ユーザエージェントによって、前記マニフェスト内の情報に基づいて決定された順序でロードするためのリソースを受信することが、
前記ウェブページを前記ユーザエージェントによって、前記サーバによって送信された優先順位および適切なオブジェクトフォーマットに基づく順序でロードするためのリソースを要求すること、および
前記リソースを受信することを含むようなプロセッサ実行可能命令を有するように構成され、
前記サーバプロセッサは、
前記モバイルコンピューティングデバイスに関する前記情報を受信すること、
前記ウェブページおよび前記モバイルコンピューティングデバイス上に実装された前記ユーザエージェントの前記マニフェストを取得すること、
前記取得されたマニフェストと前記モバイルコンピューティングデバイスに関する前記情報を比較すること、
前記ウェブページを前記ユーザエージェントによって前記モバイルコンピューティングデバイス上にロードするのに必要な前記リソースに関する優先順位および適切なオブジェクトフォーマットを特定すること、ならびに
前記ウェブページを前記ユーザエージェントによって前記モバイルコンピューティングデバイス上にロードするのに必要なリソースに関する前記特定された優先順位および適切なオブジェクトフォーマットを前記モバイルコンピューティングデバイスに送信することをさらに含む動作を実行するためのサーバプロセッサ実行可能命令を有するように構成される、請求項55に記載のシステム。
【請求項６０】
前記サーバプロセッサは、前記ウェブページを前記ユーザエージェントによって前記モバイルコンピューティングデバイス上にロードするのに必要なリソースに関する前記特定された優先順位および適切なオブジェクトフォーマットを前記モバイルコンピューティングデバイスに送信することが、前記リソースを前記マニフェストに基づいて前記サーバによって決定された順序で前記モバイルコンピューティングデバイスにプッシュすることを含むようなサーバプロセッサ実行可能命令を有するように構成される、請求項59に記載のシステム。
【請求項６１】
前記サーバプロセッサは、リソースを前記モバイルコンピューティングデバイスの所望のフォーマットにコード変換することをさらに含む動作を実行するためのサーバプロセッサ実行可能命令を有するように構成される、請求項60に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願
本出願は、両出願の内容全体が参照により本明細書に組み込まれている、2012年2月24日に出願された「Cooperative  Loading  of  Webpages  Based  on  Crowd  Sourced  Meta  Information」という名称の米国仮特許出願第61/602777号および2012年4月9日に出願された「Cooperative  Loading  of  Webpages  Based  on  Crowd  Sourced  Meta  Information」という名称の米国仮特許出願第61/621629号の優先権の利益を主張する。
【背景技術】
【０００２】
セルラー通信技術およびワイヤレス通信技術は、過去数年の間に爆発的な発展をとげてきた。この発展は、より優れた通信ハードウェア、より大きいネットワークおよびより信頼できるプロトコルによって促進されている。ワイヤレスサービスプロバイダは現在、向上し続ける多数の機能およびサービスを顧客に提供し、かつユーザがかつてない程度に情報、リソースおよび通信を利用するのを可能にすることができる。これらのサービスの向上に遅れをとらないように、モバイル電子デバイス(たとえば、携帯電話、スマートフォン、タブレット、ラップトップなど)は、これまでにないほど高速にかつ有効になっている。しかしながら、このような向上にもかかわらず、モバイルデバイスは依然として、動作が遅く見えることがある。
【０００３】
現代のモバイル電子機器において使用されるモバイルデバイスハードウェア(たとえば、プロセッサおよびワイヤレスモデム)は現在、目覚ましい機能を有する。しかしながら、ウェブベースのソフトウェアアプリケーション(たとえば、ウェブブラウザ)は利用可能な通信帯域幅の大部分を消費し、それによってモバイルデバイス全体の動作が遅く見える。これは、3Gまたは4Gなどの通信ネットワークを介してウェブページをロードする際に最も明らかである。このような低速の通信はデバイスリソースを滞らせ、ユーザの経験に悪影響を与える。したがって、ページロード、ウェブアプリケーション、およびネットワーク通信の効率および速度を向上させることは、モバイルデバイス製造業者にとって重要な設計基準である。
【発明の概要】
【課題を解決するための手段】
【０００４】
様々な態様には、サーバによって供給されるウェブページマニフェストに基づいてモバイルコンピューティングデバイスによるウェブページのレンダリングをサポートするための方法が含まれる。一態様では、この方法は、ウェブページを処理することに関するメタ情報を複数のモバイルコンピューティングデバイス上で生成し、生成されたメタ情報を複数のモバイルコンピューティングデバイスの各々からサーバに送信し、各ウェブページを処理する際に使用されるユーザエージェントを特定することと、生成されたメタ情報をサーバにおいて受信することと、複数のモバイルコンピューティングデバイスから受信されたメタ情報に基づいて各ウェブページおよび各ユーザエージェントについてマニフェストを生成することと、マニフェストを使用して、ユーザエージェントによってウェブページをモバイルコンピューティングデバイス上にロードするのに必要なリソースに優先順位を割り当てることと、リソースに割り当てられた優先順位に基づいて決定された順序でモバイルコンピューティングデバイス上でリソースを受信することと、モバイルコンピューティングデバイス上でウェブページをレンダリングすることとを含んでよい。一態様では、この方法は、モバイルコンピューティングデバイスが、ウェブページのレンダリング時に生成されたメタ情報をサーバに送信することを含んでよい。他の態様では、この方法は、ウェブページおよびモバイルコンピューティングデバイス上に実装されたユーザエージェントを特定する情報をサーバに送信することと、ウェブページおよびモバイルコンピューティングデバイス上に実装されたユーザエージェントに関するマニフェストを取得することと、取得されたマニフェストをモバイルコンピューティングデバイスに送信することと、マニフェストをモバイルコンピューティングデバイス上に記憶された情報と比較することによってウェブページをモバイルコンピューティングデバイス上にロードするのに必要なリソースをモバイルコンピューティングデバイスにおいて特定することと、モバイルコンピューティングデバイスにおいて、マニフェストに基づいて、特定されたリソースに優先順位を割り当てることとを含んでもよい。さらなる態様では、この方法は、モバイルコンピューティングデバイスがモバイルコンピューティングデバイスによってマニフェストに基づいて決定された順序で第2のサーバからリソースをダウンロードすることを要求することを含んでよい。さらなる態様では、この方法は、モバイルコンピューティングデバイスに関する情報をサーバに送信することと、ウェブページおよびモバイルコンピューティングデバイス上に実装されたユーザエージェントに関するマニフェストを取得することと、サーバにおいて、取得されたマニフェストをモバイルコンピューティングデバイスに関する情報と比較することと、サーバにおいて、ウェブページをモバイルコンピューティングデバイス上にロードするのに必要なリソースの優先順位および適切なオブジェクトフォーマットを特定することと、ウェブページをモバイルコンピューティングデバイス上にロードするのに必要なリソースの特定された優先順位および適切なオブジェクトフォーマットをモバイ��コンピューティングデバイスに送信することとを含んでよい。さらなる態様では、この方法は、サーバが、サーバによってマニフェストに基づいて決定された順序でモバイルコンピューティングデバイスにリソースをプッシュすることを含んでよい。さらなる態様では、この方法は、サーバがリソースをモバイルコンピューティングデバイスの所望のフォーマットにコード変換することを含んでよい。
【０００５】
さらなる態様では、モバイルコンピューティングデバイスによるウェブページのレンダリングをサポートする方法は、様々な種類のユーザエージェントを使用してウェブページを処理することに関するメタ情報をサーバ上で生成することと、生成されたメタ情報に基づいてユーザエージェントの種類ごとにウェブページのマニフェストを生成することと、マニフェストを使用して、ユーザエージェントによってウェブページをモバイルコンピューティングデバイス上にロードするのに必要なリソースに優先順位を割り当てることと、リソースに割り当てられた優先順位に基づいて決定された順序でモバイルコンピューティングデバイス上でリソースを受信することと、モバイルコンピューティングデバイス上でウェブページをレンダリングすることとを含んでよい。さらなる態様では、この方法は、モバイルコンピューティングデバイスが、ウェブページのレンダリング時に生成されたメタ情報をサーバに送信することを含んでよい。さらなる態様では、この方法は、マニフェストをモバイルコンピューティングデバイスに関する情報によって評価できるようにモバイルコンピューティングデバイスに送信することと、モバイルコンピューティングデバイスにおいて、ウェブページをモバイルコンピューティングデバイス上にロードするのに必要なリソースをモバイルコンピューティングデバイスにおいて特定することと、モバイルコンピューティングデバイスにおいて、特定されたリソースに優先順位を割り当てることとを含んでよい。さらなる態様では、この方法は、モバイルコンピューティングデバイスがモバイルコンピューティングデバイスによってマニフェストに基づいて決定された順序で第2のサーバからリソースをダウンロードすることを要求することを含んでよい。さらなる態様では、この方法は、モバイルコンピューティングデバイスに関する情報をサーバに送信することと、ウェブページおよびモバイルコンピューティングデバイス上に実装されたユーザエージェントに関するマニフェストを取得することと、サーバにおいて、取得されたマニフェストをモバイルコンピューティングデバイスに関する情報と比較することと、サーバにおいて、ウェブページをモバイルコンピューティングデバイス上にロードするのに必要なリソースの優先順位および適切なオブジェクトフォーマットを特定することと、ウェブページをモバイルコンピューティングデバイス上にロードするのに必要なリソースの特定された優先順位および適切なオブジェクトフォーマットをモバイルコンピューティングデバイスに送信することとを含んでよい。さらなる態様では、この方法は、サーバが、サーバによってマニフェストに基づいて決定された順序でモバイルコンピューティングデバイスにリソースをプッシュすることを含んでよい。さらなる態様では、この方法は、サーバがリソースをモバイルコンピューティングデバイスの所望のフォーマットにコード変換することを含んでよい。
【０００６】
様々な態様には、メモリとメモリに結合されたプロセッサとを有するモバイルコンピューティングデバイスであって、プロセッサが、ウェブページおよびモバイルコンピューティングデバイス上に実装されたユーザエージェントを特定する情報をサーバに送信すること、ウェブページおよびモバイルコンピューティングデバイス上に実装されたユーザエージェントに関するマニフェストをサーバから受信することと、マニフェストをモバイルコンピューティングデバイス上に記憶された情報と比較することによってウェブページをロードするのに必要なリソースを特定することと、マニフェストに基づいて、特定されたリソースに優先順位を割り当てることと、リソースに割り当てられた優先順位に基づいて決定された順序でリソースを受信することと、ウェブページをレンダリングすることとを含む動作を実行するためのプロセッサ実行可能命令を有するように構成されたモバイルコンピューティングデバイスを含めてよい。さらなる態様では、モバイルコンピューティングデバイスプロセッサは、マニフェストに基づく順序での第2のサーバからのリソースのダウンロードを要求し、かつ/またはウェブページのレンダリング時に生成されたメタ情報をサーバに送信するためのプロセッサ実行可能命令を有するように構成されてもよい。
【０００７】
様々な態様には、モバイルコンピューティングデバイスにおいて実施される上述の方法の機能を実現するための手段を含むモバイルコンピューティングデバイスを含めてよい。様々な実施形態には、プロセッサに、モバイルコンピューティングデバイスにおいて実施される上述の方法の動作を実行させるように構成されたプロセッサ実行可能ソフトウェア命令を記憶した非一時的プロセッサ可読記憶媒体を含めてもよい。
【０００８】
様々な態様には、メモリとメモリに結合されたサーバプロセッサとを有するサーバであって、プロセッサが、様々な種類のユーザエージェントを使用してウェブページを処理することに関するメタ情報を収集することと、収集されたメタ情報に基づいてユーザエージェントの種類ごとにウェブページのマニフェストを生成することと、マニフェストを使用して、ユーザエージェントによってウェブページをモバイルコンピューティングデバイス上にロードするのに必要なリソースに優先順位を割り当てることと、リソースに割り当てられた優先順位に基づいて決定された順序でモバイルコンピューティングデバイスにリソースを送信することとを含む動作を実行するためのサーバプロセッサ実行可能命令を有するように構成されたサーバを含めてよい。さらなる態様では、サーバプロセッサは、マニフェストをモバイルコンピューティングデバイスに関する情報によって評価できるようにモバイルコンピューティングデバイスに送信することを含む動作を実行するためのサーバプロセッサ実行可能命令を有するように構成されてよい。さらなる態様では、サーバプロセッサは、ウェブページのレンダリング時に生成されたメタ情報をモバイルコンピューティングデバイスから受信することを含む動作を実行するためのサーバプロセッサ実行可能命令を有するように構成されてよい。さらなる態様では、サーバプロセッサは、様々な種類のユーザエージェントを使用してウェブページを処理することに関するメタ情報をサーバ上で生成することを含む動作を実行するためのサーバプロセッサ実行可能命令を有するように構成されてよい。さらなる態様では、サーバプロセッサは、様々な種類のユーザエージェントを使用してウェブページを処理することに関するメタ情報を複数のモバイルコンピューティングデバイスから受信することを含む動作を実行するためのサーバプロセッサ実行可能命令を有するように構成されてよい。さらなる態様では、サーバプロセッサは、モバイルコンピューティングデバイスに関する情報を受信することと、マニフェストを使用して受信された情報を評価することと、ウェブページをモバイルコンピューティングデバイス上にロードするのに必要なリソースの優先順位および適切なオブジェクトフォーマットを特定することと、ウェブページをモバイルコンピューティングデバイス上にロードするのに必要なリソースの特定された優先順位および適切なオブジェクトフォーマットをモバイルコンピューティングデバイスに送信することとを含む動作を実行するためのサーバプロセッサ実行可能命令を有するように構成されてよい。さらなる態様では、サーバプロセッサは、マニフェストに基づく順序でリソースをモバイルコンピューティングデバイスにプッシュすることを含む動作を実行するためのサーバプロセッサ実行可能命令を有するように構成されてよい。さらなる態様では、サーバプロセッサは、リソースをモバイルコンピューティングデバイスの所望のフォーマットにコード変換することを含む動作を実行するためのサーバプロセッサ実行可能命令を有するように構成されてよい。
【０００９】
様々な態様には、サーバにおいて実施される上述の方法の機能を実現するための手段を含むサーバを含めてよい。様々な実施形態には、サーバプロセッサに、サーバにおいて実施される上述の方法の動作を実行させるように構成されたサーバプロセッサ実行可能命令を記憶した非一時的サーバ可読記憶媒体を含めてよい。
【００１０】
様々な態様には、サーバにおいて実施される上述の方法の動作を実行するように構成されたサーバと、モバイルコンピューティングデバイスにおいて実施される上述の方法の動作を実行するように構成された複数のモバイルコンピューティングデバイスとを含み得る通信システムを含めてもよい。
【００１１】
本明細書に組み込まれ、本明細書の一部をなす添付の図面は、本発明の例示的な態様を示し、上記の全般的な説明および下記の発明を実施するための形態とともに、本発明の特徴を説明するのに役立つ。
【図面の簡単な説明】
【００１２】
【図１】様々な態様において使用するのに適したモバイルマルチメディア通信システムを示す通信システムのブロック図である。
【図２】一態様によるウェブページに関するマニフェストの例示的な構造を示す構造図である。
【図３】一態様による単一プロキシ構成内の例示的な情報フローを示すネットワーク図である。
【図４Ａ】一態様によるクラウドソーシングサーバ構成内の例示的な情報フローを示すネットワーク図である。
【図４Ｂ】一態様による、マニフェストを作成し利用してページロードを加速するためのクラウドソーシング方法の流れ図である。
【図４Ｃ】一態様による、マニフェストを作成し利用してページロードを加速するためのクラウドソーシング方法の処理流れ図である。
【図５Ａ】一態様によるサーバソーシングサーバ構成内の例示的な情報フローを示すネットワーク図である。
【図５Ｂ】一態様による、マニフェストを作成し利用してページロードを加速するためのサーバソーシング方法の処理流れ図である。
【図６】ページロードを加速するためのサーバ中心態様方法における情報フローを示す通信図である。
【図７】サーバ中心構成においてページロードを加速するための別の態様方法における情報フローを示す通信図である。
【図８】サーバ中心構成においてページロードを加速するためのさらに別の態様方法における情報フローを示す通信図である。
【図９】どんなコンテンツをダウンロードすべきかおよびオブジェクトをダウンロードすべき順序に関する決定がクライアントによって下されるクライアント中心構成においてページロードを加速するための態様方法における情報フローを示す通信図である。
【図１０】クライアント中心構成においてページロードを加速するための別の態様方法における情報フローを示す通信図である。
【図１１Ａ】サーバ中心実装形態においてページロードを加速するためのクライアント態様方法の処理流れ図である。
【図１１Ｂ】サーバ中心実装形態においてページロードを加速するためのサーバ態様方法の処理流れ図である。
【図１２Ａ】クライアント中心実装形態においてページロードを加速するためのクライアント態様方法の処理流れ図である。
【図１２Ｂ】クライアント中心実装形態においてページロードを加速するためのサーバ態様方法の処理流れ図である。
【図１３】様々な態様とともに使用するのに適切な、モバイルコンピューティングデバイスのコンポーネントブロック図である。
【図１４】様々な態様とともに使用するのに適したサーバコンピューティングデバイスのコンポーネントブロック図である。
【図１５】様々な態様に使用するのに適したノートブックコンピューティングデバイスのコンポーネントブロック図である。
【発明を実施するための形態】
【００１３】
様々な態様について添付の図面を参照して詳細に説明する。可能な場合はいつでも、同じ参照番号は、図面全体を通して同じまたは同様の部分を指すために使用される。特定の例および実装形態に行われる参照は、説明を目的とし、本発明の範囲または特許請求の範囲を限定するものではない。
【００１４】
「例示的な」という言葉は、「例、実例、または例示として機能すること」を意味するために本明細書で使用される。本明細書で「例示的」として説明されるいかなる実装形態も、必ずしも他の実装形態よりも有利であると解釈されるべきではない。
【００１５】
本明細書で使用される「コンピューティングデバイス」、「モバイルコンピューティングデバイス」、「モバイルデバイス」、および「ハンドヘルドデバイス」という用語は、セルラー電話、携帯情報端末(PDA)、パームトップコンピュータ、ワイヤレス電子メール受信機、スマートフォン、全地球測位システム(GPS)受信機、ワイヤレスゲームコントローラ、タブレットコンピュータ、ノートブックコンピュータ、ネットブックコンピュータ、ワイヤレス電子メールデバイス、スマートテレビジョン、スマート自動車コンソール、ならびに、プログラマブルプロセッサおよびメモリを含み通信ネットワークと通信するようにウェブブラウザアプリケーションを備える同様の電子デバイスのうちの、いずれか1つまたはすべてを指す。
【００１６】
本明細書で使用される「コンピュータ」、「パーソナルコンピュータ」、および「コンピューティングデバイス」という用語は、既知の、または今後開発される任意のプログラマブルコンピュータシステムを指す。ある態様では、コンピュータは、本明細書で説明されるようなネットワークに結合される。コンピュータシステムは、本明細書で説明される処理および動作を実行するためのソフトウェア命令を有するように構成され得る。
【００１７】
本明細書で使用される「コンポーネント」、「モジュール」、「プラットフォーム」、「システム」などの用語は、ハードウェア、ハードウェアとソフトウェアの組合せ、ソフトウェア、実行中のソフトウェアを問わず、コンピュータ関連のエンティティを指すことが意図されている。たとえば、コンポーネントは、プロセッサ上で実行されるプロセス、プロセッサ、オブジェクト、実行ファイル、実行スレッド、プログラム、および/またはコンピュータであり得るが、これらに限定されない。例として、サーバ上で実行されるアプリケーションとそのサーバの両方が、コンポーネントであり得る。1つまたは複数のコンポーネントは、プロセスおよび/または実行スレッドの中に存在してよく、1つのコンポーネントは、1つのコンピュータに局在してよく、かつ/または2つ以上のコンピュータに分散してよい。
【００１８】
様々な態様は、ユーザが要求アクションを行ってから、本明細書ではクライアントと呼ぶモバイルコンピューティングデバイス上でコンテンツがレンダリングされるまでの時間を短縮する改良されたウェブブラウジング方法を提供する。様々な態様は、ウェブページの機能を変更することもまたは限定することもなくネットワーク効率、クライアント電力効率、ページロード速度を向上させることができる。いくつかの態様は、ネットワーク上で一方のクライアントが他方のクライアントの通信速度を(たとえばサーバ調整によって)向上させるのを可能にするクラウドソーシングおよび/またはサーバヒンティング(どちらも分散コンピューティングの形態)技術を使用するために使用することのできるメタ情報をクライアントとサーバの両方が収集し交換するのを可能にし得る。他の態様では、サーバは独立にかつ周期的にウェブページにアクセスすることによってメタ情報を収集し(すなわち、「サーバソーシング」)、情報をクライアントに供給してネットワーク通信性能を向上させることができる。
【００１９】
3G/4Gネットワークを介してウェブページをロードした場合、通常は有線ネットワークおよびローカルエリアネットワークを介してロードする場合よりも低速になる。これは、往復時間が長いこと(たとえば、RTTが200msから500msまで)、リソースが特定のウェブページ上で反復的に発見されること、リソース依存性、帯域幅が限定され非対称であること、アップリンク(UL)がダウンリンク(DL)よりも厳しく制約されること、ならびに信号強度、干渉、およびその他の関連因子の変化によってネットワーク状態が変動することに一部起因する。
【００２０】
概して、ページロード時のブラウザの挙動では、限定された1組の動作が繰り返し実行される。そのような反復的な動作には、コンテンツおよびコードをダウンロードすること、コードをコンパイルすること、オブジェクトをフェッチして実行すること、および実行される新しいオブジェクトを反復的に発見することが含まれる。これらの動作は非効率的であり、これらの動作を低速の電気通信ネットワーク上で繰り返し実行すると、エンドツーエンドページロード時間が長くなり、ユーザエクスペリエンスが低下することがある。
【００２１】
HTTPを使用して、特にRTTが高い3G/4Gネットワークを介してサーバからオブジェクトを1つずつフェッチすることは非効率的である。各オブジェクトをフェッチするには往復通信遅延が必要になることがあり、ウェブページ内のすべてのオブジェクトをダウンロードする場合、複数回の往復が行われることがある。さらに、要求同士が互いに依存することがあり、すべてのオブジェクト要求を同時に送ることができるとは限らない。さらに、特定のオブジェクトを処理すると、元のHTMLページ(たとえば、External  Java(登録商標)scripts(登録商標))の一部ではなかった新しいオブジェクトが生成されることがあり、ブラウザが追加のオブジェクトを強制的にダウンロードさせられ、ページロード時間および/または往復時間がさらに長くなることがある。ドメインネームサービス(DNS)解決およびユニフォームリソースロケータ(URL)出力先変更などの動作がオーバヘッド遅延を付加し、それによってページロード時間および/または往復時間がさらに長くなることがある。ページロード速度およびブラウザ性能を向上させるための既存の解決手段では、これらの因子に対処できないか、あるいは非効率的であり、無効であり、かつ/または場合によっては不十分である。様々な態様では、上述の因子の影響が解消または軽減され、それによってネットワーク効率およびページロード速度が向上する。
【００２２】
既存の解決手段は、ウェブページをレンダリングする際にクライアントをどのように助けるかについてのすべての決定を下すうえで完全にサーバに依存するか、またはある形態のクライアントベースのキャッシング(たとえば、ディスクキャッシング)を使用する。ディスクキャッシュは要求の総数を低減させるのを助けることができるが、すべてのオブジェクトがキャッシュされることまたは場合によってはキャッシュ可能であることが保証されるとは限らない。サーバ側から性能を向上させるには、ウェブサイトがサーバプッシュ技術を使用してリソースを配信することができる。しかしながら、クライアントの知識もネットワーク状態の知識もなしにサーバプッシュを実行すると、最適な性能が得られなくなる。その理由は、サーバプッシュによって、クライアントがすでにメモリに記憶しているオブジェクトがプッシュされることがあるからである。
【００２３】
特定のウェブブラウザ(たとえば、Opera(登録商標)  mini)はサーバ支援手法を使用してページをより高速にダウンロードすることができる。しかしながら、これらのブラウザは、クライアントに関するコンテンツおよびウェブページコンテンツの変更をレンダリングするうえでカスタマイズされたマークアップ言語を必要とし、その結果、ウェブページの機能を制限する(たとえば、dynamic  Java(登録商標)script(登録商標)を制限する)。他のブラウザ(たとえば、Amazon(登録商標)  Silk)は、クラウドリソースを使用してウェブページをより高速に処理する。しかしながら、これらのブラウザはネットワークの効率を向上させず、かつ/またはクライアントとサーバの両方から収集された情報を使用することによってウェブページの協調的なクライアント-サーバローディングをサポートすることがない。
【００２４】
様々な態様は、クライアントおよび/またはサーバから収集された情報から生成することができる共有メタ情報に基づくウェブページの協調的なクライアント-サーバローディングに関するプロトコルを定めることによって既存の解決手段のこれらの制限およびその他の制限を解消する。様々な態様はまた、クライアントとサーバの両方から得られた情報と一緒にネットワーク状態を考慮に入れて、全体的なページロード時間を短縮する。様々な態様は、ウェブページの機能を変更することもまたは限定することもなくネットワーク効率、モデム電力効率、ページロード速度を向上させるのを可能にする。様々な態様は、コンテンツを有するクライアントに関するネットワークおよびモバイルデバイスの知識ならびにサーバについてのクラウド認識を利用してウェブページおよびウェブアプリケーションの全体的なロード時間を短縮する。
【００２５】
上述のように、ページロード動作時のデフォルトブラウザ挙動では、限定された1組の動作が繰り返し実行され、エンドツーエンドページロード時間が長くなり、それによってモバイルデバイスの動作が低速に見えることがある。モバイルデバイス上でページロード動作が実行された後、ブラウザは、フェッチされたオブジェクトに関する情報にアクセスすることができるだけではなく、種類情報、サイズ情報、形式、レイアウト(たとえば、スクリーン上の画像の位置)、相互依存性、および他の同様のメタ情報を含むメタ情報にもアクセスすることができる。この情報は、同じページを同じデバイスまたは他のデバイスから2度目にロードする場合に有用である。様々な態様は、この情報を他のモバイルデバイスと共有するのを可能にして、クライアントとサーバの両方から収集されたメタ情報をネットワーク状態とともに考慮する、コンテンツをダウンロードしウェブページをレンダリングする改良された方法を実現する。
【００２６】
一態様では、モバイルクライアント(たとえば、モバイルデバイスウェブブラウザ)は、ウェブページをレンダリングした後、ウェブページに関するメタ情報を収集する。このメタ情報には、クライアントのユーザエージェント(UA)、オブジェクトユニフォームリソースロケータ(URL)のリスト、オブジェクト依存性、オブジェクトの種類、サイズ、レイアウト情報、および他の同様の情報を含めてよい。クライアントは、収集された情報をサーバにサブミットしてよい。サーバは、多数の異なるモバイルデバイスから複数のウェブサイトに関してメタ情報を収集し、メタ情報をマニフェストとして統合してよい(たとえば、クラウドソーシング、サーバヒンティングなどを行う)。マニフェストは、ウェブページをレンダリングするか、ウェブページにアクセスするか、またはウェブページをダウンロードするプロセスにおいてクライアントに有用な任意のそのようなメタ情報の配列であってよい。マニフェストは、ウェブページを効率的に表示するのに必要なリソースを認識し優先するためにサーバまたは複数のクライアントによって使用されてよい。一態様では、各ウェブページのマニフェストは、ウェブページにアクセスするクライアントコンピューティングデバイスによって使用されるユーザエージェント(たとえば、ブラウザアプリケーション、通信ソフトウェア)の種類または形態に基づいて様々なメタ情報を含んでよい。代替として、ユーザエージェントの種類または形態ごとに異なるマニフェストを生成してよい(すなわち、ユーザエージェント固有のマニフェスト)。サーバは、複数のウェブページ、クライアント、クライアントの種類、サーバ、およびネットワークに関するマニフェストのデータベースを更新し維持してよく、かつサーバは、サーバがユーザエージェント固有のマニフェストを維持するときおよび/またはウェブページが様々な種類(たとえば、モバイルデバイスの種類)を含むときなどに、個々のウェブページの多数のマニフェストを維持してよい。たとえば、サーバは、各マニフェストがユーザエージェントの種類に基づいて異なるメタ情報を含む、単一のウェブページのいくつかの別個のマニフェストを含むデータベースを維持してよい。一態様では、サーバはウェブページ識別情報(たとえば、ウェブページURL)および/またはユーザエージェント情報を使用して、データベース内に記憶されたマニフェストをインデックス付けしてよい。
【００２７】
別の態様では、サーバは、それぞれのウェブページのコンテンツを直接受信して評価することによってクライアントとは独立にウェブページのマニフェストを判定してよい。そのような態様では、サーバは、各ウェブページにアクセスしレンダリングプロセスを実行する、サーバ上で実行されるプロキシユーザエージェントを利用して、レンダリングが各種類のユーザエージェントを使用してクライアントに対して実現される場合と同様にそのユーザエージェントに有用なメタ情報を判定することができる。
【００２８】
様々な態様では、サーバは複数のクライアントから受信される(クラウドソーシング)かまたはサーバ自体によって生成された(サーバソーシング)新しいメタ情報に基づいてマニフェストを周期的に更新してよい。クライアントおよび/またはサーバは、ウェブページにアクセスしてページロード要件を再評価することにより、完全に新たに生成されるメタ情報として新しいメタ情報を生成するか、またはキャッシュされたマニフェストデータなどのローカルに記憶されたメタ情報とレンダリングエクスペリエンスを比較することによって新しいメタ情報を生成してよい。一態様では、サーバによって更新の頻度および/または個々のウェブページの変更に応じてケースごとにマニフェストの更新が行われてよい。たとえば、サーバは探索エンジンウェブページのマニフェストを1日に1度更新し、リアルタイムニュースサイトのマニフェストを1時間おきに何度も更新してよいが、企業エンティティまたは政府エンティティのマニフェストは1週間に1度更新すればよい。
【００２９】
モバイルクライアントは、ウェブページにアクセスを試みるとき、まずそのローカルキャッシュステータス、サーバのキャッシュステータス、ネットワーク状態、またはそれらの組合せを確認してよい。ネットワーク状態情報には、ネットワークに関する情報、ネットワークから収集された情報、および/または所与の要求に関して現在のネットワーク状態を利用するために使用できる情報を含めてよい。クライアントとサーバは、キャッシュ情報、ネットワーク状態、およびアクセス中の特定のウェブページに関してサーバによって維持されているメタ情報を交換してよい。クライアント、サーバ、またはその両方は、クライアントが情報をダウンロードすべき最適な順序またはサーバがリソースをクライアントにプッシュすべき最適な順序を協調して決定してよい。一態様では、ページロード動作が完了した後、モバイルクライアントがページをレンダリングすることによって生成された更新されたメタ情報を収集し、更新された情報をさらなるクラウドソーシングのためにサーバに送ってもよい。上述のプロセスは、ネットワークの性能を引き続き向上させるために必要に応じて繰り返し実行されてよい。別の態様では、クライアントは、態様においてサーバソーシングが可能であるときでもウェブページアクセスに基づいて生成されたメタ情報をサーバに送信してよい。したがって、サーバは、ウェブページマニフェストを生成する際にクラウドソーシングによるメタ情報とサーバソーシングによるメタ情報の両方にアクセスしてよい。これによって、サーバはクライアントによるフィードバックから利益を得ることができる。
【００３０】
このように、様々な態様は、モバイルクライアントおよびサーバがページダウンロードを加速するのを可能にし、クラウドソーシングによるページメタ情報をネットワークステータス情報とともに交換することによってネットワーク効率を向上させる。様々な態様は、ウェブページコンテンツとサーバによって蓄積されたマルチユーザ知識の両方をリソースおよびネットワークに関するクライアントの知識と組み合わせて使用して、コンテンツをモバイルデバイスに配信する方法を決定してよい。一態様では、サーバは、クライアントがクラウドソーシングのためにメタデータを送る代わりにまたはそれに加えて、コンテンツに基づいて「オンザフライ」でメタデータを算出することができる。メタデータのソースが変化するにつれて、サーバはメタデータの算出を継続することができる。これらの態様は、特定のクライアントから情報を収集することによって生じることがあるプライバシー問題を回避する。
【００３１】
様々な態様は、送信の前に所与のウェブページ、クライアント、またはネットワークに必要なリソースを特定することを可能にする。サーバは、必要なリソースをあらかじめ特定することによって、最初のウェブページアクセス要求に応答して必要な情報をクライアントにプッシュし、それによって長いページロード時間および/または往復時間をほぼ2分の1に短縮することができる。
【００３２】
様々な態様は、その例が図1に示されている、様々なワイヤレス通信システムまたはモバイル通信システム内に実装することができる。図1に示す例示的な通信システム100は、モバイルブロードキャストネットワーク101と携帯電話ネットワークなどのユニキャストネットワーク111とを含む。典型的な携帯電話ネットワークは、ネットワークオペレーションセンター114に結合された複数のセルラー基地局112を含み、ネットワークオペレーションセンター114は、たとえば電話陸上通信線(たとえば、図示されていないPOTSネットワーク)およびインターネット107を介して、スマートフォン110A、110Bおよびラップトップコンピュータ110Cなどのモバイルコンピューティングデバイスとその他のネットワーク宛先との間でボイス呼およびデータ呼を接続するように動作する。他の態様では、モバイルコンピューティングデバイスにはモバイルテレビジョン受信機、携帯電話、携帯情報端末、対話型ゲームデバイス、ノートブック、スマートブック、ウルトラブック、または他のそのような電子デバイスなどのデバイスも含めてよい。モバイルコンピューティングデバイス110A〜110Cとユニキャストネットワーク111との間の通信は、4G、3G、CDMA、TDMA、および他のセルラー電話通信技術などの双方向ワイヤレス通信リンク113を介して実現され得る。インターネットデータ通信を容易にするために、ユニキャストネットワーク111は、通常、インターネット107への接続を実現するネットワークオペレーションセンター114に結合されるか、またはその内部にある1つまたは複数のサーバ116を含む。
【００３３】
モバイルコンピューティングデバイス110A〜110Cは、有線接続またはWLAN(WiFi)接続が利用可能なときにはそれを介してインターネット107に接続してよく、その場合、インターネット107はユニキャストネットワークとして働く。モバイルコンピューティングデバイス110A〜110Cは、周知の従来のインターネットアクセスプロトコルを使用してユニキャストネットワーク111を介してコンテンツを受信してよい。
【００３４】
通信システム100はモバイルブロードキャストネットワーク101を含んでもよく、モバイルブロードキャストネットワーク101は通常、本明細書ではブロードキャストオペレーションセンター104(または図の中の「BOC」)と呼ばれるモバイルブロードキャストネットワークコントロールセンターによって制御される複数のブロードキャスト送信機102を含む。ブロードキャストネットワーク101は、ブロードキャスト送信機102からのコンテンツをモバイルコンピューティングデバイス110A〜110Cによって受信されるモバイルブロードキャスト送信103としてブロードキャストする。モバイルブロードキャストネットワークコントロールセンター104(ブロードキャストオペレーションセンターまたは「BOC」とも呼ばれる)内には通常、リアルタイムコンテンツブロードキャスト、電子サービスガイドの生成、およびオーバヘッドフローを介してブロードキャストされるメタ情報メッセージの生成を管理するための1つまたは複数のサーバおよびシステムがある。メタ情報は、コンテンツブロードキャストよりも前に送られても、または周期的に送られても、またはクライアント要求に応答して送られてもよい。ブロードキャストメタ情報はモバイルコンピューティングデバイス110A〜110Cによって受信され記憶されて、将来のページロード動作を向上させるために使用されてよい。たとえば、メタ情報は、将来のブロードキャストを選択的に受信するかまたはモバイルデバイスブラウザがウェブページから要求すべきリソースを特定するためにモバイルによって使用されてよい。
【００３５】
様々な態様において、クライアントとサーバはメタ情報を収集し交換してよい。このメタ情報は、モバイルデバイスまたはサーバがクライアント、サーバ、ネットワーク、またはウェブサイトの要件をよりよく理解するのを可能にする情報、あるいはモバイルデバイスブラウザがより高速なページロード動作を実行するのを可能にする任意の情報を含んでよい。一態様では、メタ情報はXMLコード、Ajaxコード、またはJSONコードであってよい。モバイルデバイスは、ウェブページをレンダリングする際にメタ情報をサーバからのマニフェストとして検討してよい。マニフェストは、ウェブページのブラウザによる実行を向上させるための方式を実現することができる。ブラウザは、マニフェストを使用してウェブページをより効率的にダウンロードしかつ/または処理することができ、実行時間が短縮され、電力使用量が低減する。たとえば、マニフェストは、特定のデータが頻繁にアクセスされているかまたはユーザに人気があるという情報を提供することができる。通常消去されるかまたは頻繁に使用されるデータは、モバイルデバイスから、サーバ上に位置するキャッシュメモリにアップロードされ得る。
【００３６】
一態様では、マニフェストは、Java(登録商標)Script（登録商標）メタ情報を含み得る。マニフェストは、Java(登録商標)Script（登録商標）関数の何らかの句の確率、スクリプトトークン、字句情報、AST解析情報、すでにコンパイルされたバイナリデータ、ジャストインタイムデータ、依存性ツリー、または、モバイルデバイスにおいてJava(登録商標)Script（登録商標）要求を処理する際に時間を節約するための他の情報を含む、有用な情報を提供することができる。
【００３７】
一態様では、マニフェストは、簡略化された選択器または改良された選択器、統合方式、または、CSSウェブページのデータを処理し、解析し、実行し、もしくはレンダリングするのを支援するための任意の他の情報のような情報を含む、CSSメタ情報を含み得る。一態様では、マニフェストは、どのようにDOMツリーを処理するかについての情報を含み得る。
【００３８】
一態様では、マニフェストは、符号化されたページをどのように処理すべきかをモバイルデバイスに指示するHTMLメタ情報を含んでよい。一態様では、マニフェストは、ネットワーク上の他のクライアントから収集されたデータを含んでよく、他のクライアントの閲覧情報を観測することによって受信される分析またはパターンを表現してよい。
【００３９】
一態様では、マニフェストは、ウェブページのレンダリング、ダウンロード、または処理に関する確率を含んでよい。たとえば、マニフェストは、特定のウェブページ要素が、高い実行確率を有すること、またはそのページにアクセスするユーザの間で非常に人気がある可能性があることを示し得る。特定の例は、ユーザが特定のニュースウェブサイト上の「スポーツ」リンクをクリックすることであってよい。モバイルデバイスは、ユーザが将来のある時点でそのウェブページ要素を要求する可能性があるかまたはそのような可能性がまったくないという推測に基づいて、そのようなウェブページ要素をダウンロードしてよい。たとえば、マニフェストは、ライブラリが実行確率が高い第1の部分を有し、第1の部分をただちに送信すべきであるかまたは第1の部分にただちにアクセスすべきであることを示してよい。同様に、マニフェストは、(実行確率がより低い)第2の部分をダウンロードする必要がないかまたは第1の部分の後にダウンロードすべきであることを示してよい。
【００４０】
マニフェストは、ウェブページがページにアクセスするための要求よりも前にプリロードされブラウザに供給されるときのように、モバイルデバイス上にプリキャッシュされてよい。マニフェストは、ユーザが情報を必要とし得るときよりも前の所定の期間に、たとえば、ネットワーク使用量が少ない晩または早朝の時間に、契約しているモバイルデバイスに送信され得る。代替として、マニフェストは、「トップ100」リストウェブサイトの場合のような同期手順の一部として送信されるかまたはクライアントの使用習慣に基づいて送信されてよい。一態様では、マニフェストは、ウェブコンテンツに対する変化率がより低いことがあるので、所定の間隔で、ユーザのコンピュータまたはモバイルデバイスにプリキャッシュされ得る。代表的な例は、ページ上のコンテンツが毎日変わる場合でもめったに変わらない傾向を有するウェブページの形式およびレイアウトである。一態様では、マニフェストは、夜遅くなど非ピーク時にモバイルデバイスに供給されてよい。一態様では、マニフェストは、1時間おき、毎日、毎週、毎月、または毎年など定期的にモバイルデバイスに供給されてよい。一態様では、マニフェストはモバイルブロードキャストネットワークを介してモバイルデバイスにブロードキャストされてよい。
【００４１】
概して、モバイルデバイス上でページロード動作が実行された後、ブラウザは、フェッチされたオブジェクトに関する情報を生成しているだけではなく、情報の種類、ファイルサイズ、形式、レイアウト(たとえば、スクリーン上の画像の位置)、相互依存性に関するメタ情報、およびページのレンダリングに関する他の同様のメタ情報を含むメタ情報も生成している。この情報は、同じページを同じデバイスまたは他のモバイルデバイスから2度目にロードする場合に有用であり得る。様々な態様は、この情報を共有するのを可能にして、クライアントとサーバの両方から収集されたメタ情報をネットワーク状態とともに考慮する、コンテンツをダウンロードしウェブページをレンダリングする改良された方法を実現する。様々な態様では、サーバは、所与のウェブページのマニフェストを生成してよく(すなわち、マニフェストをクライアントから受信することはない)、クライアントに対する依存性が低下し、かつ/またはクライアントプライバシー問題が軽減される。一態様では、サーバは、長時間にわたってクライアントからメタ情報が得られないときにマニフェストを生成するように構成されてよい。たとえば、サーバは、特定のウェブページを5分おきに更新するかまたは「リフレッシュする」ように構成されている場合、過去5分の間に1つまたは複数のクライアントからメタ情報を受信していない場合にそのようなメタ情報を抽出しページ自体の対応するマニフェストを生成してよい。
【００４２】
様々な態様は、単一プロキシ構成で(たとえば、すべてのクライアントトラフィックがインターネット107に達する前に中央プロキシサーバを通過するように)実装されても、または専用クラウドソースサーバを利用する構成で(たとえば、クライアントトラフィックが、インターネット107に達する前に専用サーバ、ウェブサーバ、またはそれらの組合せを通過するように)実装されてもよい。各態様は、いくつかまたはすべてのウェブページホスティングサーバがそれにホスティングされるページに関連するメタ情報を受信し維持する分散システムに実装されてもよい。
【００４３】
図2は、一態様に実装され得るマニフェスト205の例示的な構造を示す。上述のように、サーバ208は、ウェブページへのアクセスおよびウェブページの表示に関連するメタ情報を評価することによって特定のユーザエージェントおよび特定のウェブページのマニフェスト205を生成してよい。サーバ208は、ウェブページのコンテンツを独立に取り込む際、上記で図1を参照して説明したようなメタ情報を求めてよい。クライアントモバイルコンピューティングデバイスまたはクライアント110Aがウェブページをダウンロードするかまたは場合によってはウェブページにアクセスするプロセスを開始すると、クライアントはサーバ208にマニフェスト205を要求してよい。サーバ208は、ウェブページ識別情報209の一意の情報(たとえば、ウェブページのURL)、ユーザエージェント情報210(たとえば、マニフェストが作成されるクライアント110Aのソフトウェアまたはその他の処理プラットフォームに関する識別子または詳細)、ウェブページのタイムスタンプ224、ならびにウェブページに関連するオブジェクトまたはリソース(たとえば、画像、HTML、またはスクリプティングファイル)の説明などのメタ情報の集合を含み得るマニフェスト205を送信してよい。マニフェストは、オブジェクトURL212(たとえば、ウェブサーバ内のファイル記憶位置)、オブジェクトサイズ214、オブジェクトの種類216、オブジェクトのキャッシュ能力218(たとえば、特定のオブジェクトを繰り返し使用できるようにクライアント110Aのキャッシュ内に記憶し得るかどうか)、ウェブページのオブジェクト間の依存性220、およびレイアウト情報222(たとえば、ウェブページ内の画像の相対位置)などのオブジェクト自体に関する特定のデータを含んでもよい。クライアント110Aは、マニフェストを受信してマニフェスト情報をクライアントのコンピューティングデバイス内に記憶された情報(たとえば、キャッシュされたデータ、ネットワークステータス、およびその他の「ローカル」情報)と比較し、ウェブページを維持するウェブサーバからの将来のリソース要求に必要なリソースの優先順位を判定してよい。別の態様では、マニフェスト情報をクライアント110Aに関する情報と比較することはサーバ208によって実現されてよい。一態
様では、クライアント110Aがウェブページを要求すると、サーバ208は要求されたウェブページのウェブページ識別情報209(たとえば、ウェブページのURL)とクライアント110Aのユーザエージェント情報210(たとえば、ユーザエージェントの種類)とを相互参照して、クライアント110Aに送信するのに適切なマニフェスト205を判定してよい。
【００４４】
図3は、様々な態様による単一プロキシ構成300内の例示的な情報フローを示すネットワーク図である。図示の単一プロキシ構成300では、すべてのクライアントトラフィックが、インターネット107に達する前に中央プロキシサーバまたは中央エッジサーバ208(たとえば、ウェブプロキシサーバ、ISPゲートウェイ、またはCDNサーバなど)を通過してよい。中央プロキシサーバ208は、多数のモバイルクライアントからメタ情報を収集し、収集されたメタ情報をクラウドソースメタ情報プロダクトまたはマニフェストとして処理し、マニフェストをモバイルクライアントに配信するクラウドソースサーバを含んでよい。代替として、中央プロキシサーバ208は、以下に図5Aに関して説明するように、ウェブページを直接処理して適切なデータを抽出することなどによって、クラウドソーシングなしに同じメタ情報データベースを作成してよい。
【００４５】
モバイルコンピューティングデバイス110Bは、ウェブページに関するメタ情報を中央プロキシサーバ208に送ってよい。この情報には、ローカルキャッシュステータス、現在のネットワーク状態、コンテキスト情報、ユーザプロファイル情報、通信情報、ネットワーク情報、モバイルデバイス情報、ウェブブラウザ情報、および/またはページロード速度を向上させるためにサーバによって使用することができるクライアントに利用可能な任意の他の情報を含めてよい。中央プロキシサーバ208は、この情報を受信して他のモバイルコンピューティングデバイス110Bから受信されたメタ情報および/または様々なウェブページに関するメタ情報と組み合わせてよい(たとえば、クラウドソーシングなど)。たとえば、様々なクライアントユーザエージェント(たとえば、デスクトップ、iOS(登録商標)、Android(登録商標))に基づいて任意の所与のウェブページにそれぞれに異なるメタ情報が必要になることがある。中央プロキシサーバ208は、クラウドソーシングされたメタ情報に従ってリソースをキャッシュしてもよい。
【００４６】
別のモバイルコンピューティングデバイスまたはクライアント110Aは、ページをロードするように指示されたときに、ページをロードする前にまず、クライアント110Aのローカルキャッシュステータスおよび現在のネットワーク状態を中央プロキシサーバ208に送るように構成されてよい。クライアント110Aは、特定のクライアント、モバイルデバイスの種類、またはネットワークに関する情報をサーバ208に送ってもよく、かつ/またはサーバ208にそのような情報を要求してよい。クライアント110Aとサーバ208は、モバイルコンピューティングデバイス110Bとプロキシサーバ208の両方から得られるメタ情報に基づいて、協調して、どんなリソースを(それぞれに異なる優先順位順によって)クライアント110Aにダウンロード/プッシュすべきかを決定してよい。この協調的な意思決定の一部として、システムはワイヤレスデータリンクの使用状況を改善しかつ/または総ページロード時間を短縮するリソースを選択しかつ/または優先してよい。
【００４７】
選択されたリソース(および/または関連情報)は取り込まれクライアント110Aにプッシュされてよい。クライアント110Aは、リソース/情報を受信し、ページをレンダリングして(たとえば、ページロード動作を実行して)よい。クライアント110Aは次いで、ウェブページに関する更新されたメタ情報をプロキシサーバ208に送ってよく、上述のプロセスを繰り返してよい。
【００４８】
一態様では、クライアント110Aのトラフィックパターンを評価して他のクライアント上のページレンダリング時間を向上させることができる。一態様では、クラウドサービス分散ネットワークを使用して、ブラウザの動作を予測することによって(たとえば、モバイルデバイスにメタ情報を供給することによって)ページロード速度を向上させることができる。一態様では、モバイルコンピューティングデバイスは、頻繁に使用される情報を特定し、対象となるサービスをサーバ208に要求し、かつ/または頻繁に使用される情報を後で使用できるようにサーバキャッシュにアップロードしてよい。
【００４９】
図4Aは、様々な態様によるクラウドソーシング実施形態方法400内の例示的な情報フローを示す。図4Aに示された例では、メタ情報が専用のクラウドソーシングサーバ208によって管理される。モバイルコンピューティングデバイス110Bは、ウェブページに関するメタ情報を専用クラウドソーシングサーバ208に送ってよく、専用クラウドソーシングサーバ208はページロードメタ情報を収集して配信し、様々なクライアントから受信されたそれぞれに異なるウェブページのメタ情報をクラウドソーシングし、メタ情報に従ってリソースをキャッシュしてよい。クライアントモバイルコンピューティングデバイス110Aまたはクライアントは、ページを要求するとき、まずクライアントのローカルキャッシュステータスおよび現在のネットワーク状態をクラウドソーシングサーバ208に送ってよい。当事者(たとえば、クライアント110Aおよびクラウドソーシングサーバ208)は、モバイルコンピューティングデバイス110Bとクラウドソーシングサーバ208の両方からのメタ情報に基づいて、協調して、どんなリソースを要求するかを決定してよい。このクラウドソーシングサーバ208は、ペイロードを圧縮することまたはオブジェクトが送られる順番を変更することなどの様々なサーバ動作をサポートするように構成されてよい。クラウドソーシングサーバ208は、ネットワークの使用状況を向上させ全体的なページロード時間を短縮するのに必要なリソースを特定するリストをクライアント110Aに送ってよい。クライアント110Aは、受信されたリストに基づいてウェブサーバ412に情報を要求してよい。クライアント110Aは次いで、ウェブサーバ412から(たとえば、クラウドソーシングサーバ208を介して)情報を受信し、ページをレンダリングしてよい。クライアント110Aは、ウェブページをレンダリングした後、更新されたメタ情報をクラウドソーシングサーバ208に送ってよく、上述のプロセスが繰り返されてよい。
【００５０】
図4Bは、クラウドソーシングされたウェブページマニフェストを作成し利用する方法450を示す。ブロック451において、コンピューティングデバイス上で実行される複数のクライアントが、ウェブページを維持するウェブサーバから受信されたリソース(たとえば、オブジェクト、スクリプティングファイル、HTMLコード)によってウェブページをロードしてよい。クライアントは、ブロック452においてユーザエージェントによってウェブページをロードしウェブページにアクセスするプロセスに基づいてまたはそのようなプロセスの一部としてメタ情報を求めてよい。メタ情報は、個々のウェブページごとに異なってよく、ウェブページにアクセスする際に使用される各種類のユーザエージェントは、他の種類のユーザエージェントによって生成されるメタ情報セットとは異なるメタ情報セットを生成してよい。ブロック453において、複数のクライアントの各々はそのそれぞれのメタ情報を記憶し処理することができるようにサーバに送ってよい。ブロック454において、サーバは、特定のウェブページに関する受信されたメタ情報からそのウェブページのマニフェストを生成してよい。一態様では、サーバはデータベースを使用して、ウェブページ(たとえば、ウェブページのグローバルURL)およびユーザエージェントの種類に従って構成されるかまたはインデックス付けされたマニフェストを記録してよい。そのような構成は、サーバが、特定の種類のユーザエージェントからの特定のウェブページを求める要求に応答して適切なウェブページマニフェストをデータベースから回収するのを可能にする。
【００５１】
ブロック455において、サーバは、ウェブページにアクセスすることを意図するクライアントから指定されたウェブページのマニフェストを求める要求を受信してよい。この要求は、所望のウェブページとクライアントのユーザエージェント識別情報の両方を特定することができる。ブロック456において、サーバは受信されたウェブページ識別子およびクライアントユーザエージェント識別情報を使用してデータベース内で適切なマニフェストを見つけ、そのマニフェストを要求側クライアントに送信してよい。ブロック457において、要求側クライアントは、送信されたマニフェストを受信し、マニフェスト内の情報を使用して、マニフェスト情報をキャッシュされたウェブページ要素などの現在のクライアント情報と比較することによって、ウェブページに必要なリソースに優先順位を割り当てる。ブロック457において実行される動作には、マニフェストをキャッシュされたリソースおよびオブジェクト、依存性、レイアウト情報など、ならびに現在のネットワークステータス(たとえば、帯域幅、遅延推定値など)と比較することを含めてよい。クライアントは、ウェブページをロードするのに必要なリソース(すなわち、キャッシュに記憶されていない、マニフェストにおいて特定されたリソース)に優先順位を割り当ててよい。ブロック458において、クライアントは、割当て優先順位によって決定された順序でウェブページをロードするのに必要なリソースを求める要求を送信し、要求されたリソースをウェブサーバから受信してよい。場合によっては、クライアントは、ウェブページをレンダリングする動作を完了することの一部としてメタ情報を生成し、任意のブロック459においてそのようなメタ情報をサーバに送信してよい。サーバは、ブロック453においてウェブページに関するマニフェストを更新してよく、プロセスは、任意の数のクライアントから受信される各ウェブページ要求に応答して引き続き繰り返されてよい。
【００５２】
別の態様では、サーバはリソースの優先順位を決定し、マニフェストをクライアントに送信する代わりにそれらのリソースを要求側クライアントにプッシュしてよい。この実施形態を実施する例示的な方法460が図4Cに示されている。上述の方法400と同様に、ブロック451において、コンピューティングデバイス上で実行される複数のクライアントが、ウェブページを維持するウェブサーバから受信されるリソース(たとえば、オブジェクト、スクリプティングファイル、HTMLコード)によってウェブページをロードしてよい。クライアントは、ブロック452においてウェブページをユーザエージェントによってロードしウェブページにアクセスするプロセスに基づいてまたはそのようなプロセスの一部としてメタ情報を求めてよい。メタ情報は、個々のウェブページごとに異なってよく、ウェブページにアクセスする際に使用される各種類のユーザエージェントは、他の種類のユーザエージェントによって生成されるメタ情報セットとは異なるメタ情報セットを生成してよい。ブロック453において、複数のクライアントの各々はそのそれぞれのメタ情報を記憶し処理することができるようにサーバに送ってよい。ブロック454において、サーバは、特定のウェブページに関する受信されたメタ情報からそのウェブページのマニフェストを生成してよい。一態様では、サーバはデータベースを使用して、ウェブページ(たとえば、ウェブページのグローバルURL)およびユーザエージェントの種類に従って構成されるかまたはインデックス付けされたマニフェストを記録してよい。そのような構成は、サーバが、特定の種類のユーザエージェントからの特定のウェブページを求める要求に応答して適切なウェブページマニフェストをデータベースから回収するのを可能にする。
【００５３】
ブロック462において、サーバは、特定のウェブページにアクセスするための要求をクライアントから受信してよい。この要求は、要求されたウェブページの識別子(たとえば、URL)、ユーザエージェントの識別子、およびクライアントの現在のステータス、特にメモリにキャッシュされておりクライアントがローカルに利用することのできるウェブページに関連するオブジェクトおよびリソースに関する情報を含んでよい。この情報は、サーバが、対応するウェブページマニフェストにおいて特定されたオブジェクトおよびリソースのうちで要求側デバイスにはまだ存在しないオブジェクトおよびリソースを判定するのを可能にする。ブロック464において、サーバは要求されたウェブページおよびクライアントのユーザエージェントに適切なマニフェストにアクセスしてよい。上述のように、これは、ウェブページ識別子およびユーザエージェント情報をマニフェストのデータベースにアクセスするためのインデックス項目として使用することによって実現されてよい。ブロック466において、サーバは、マニフェストをブロック462において受信されたクライアント情報と比較し、送信する必要のあるリソースおよびオブジェクトを特定し、クライアントに送信する必要のある情報にリソース優先順位を割り当ててよい。サーバは、この情報を使用して、ブロック468において、ウェブページを要求するクライアントに特定された優先順位を通知し、クライアントがそれらのオブジェクトおよびリソースを指示された優先順位順で要求するのを可能にしてよい。代替として、ブロック468において、サーバは単に、リソースおよびオブジェクトを特定された優先順位でクライアントにプッシュしてよい。要求側クライアントは次いで、受信されたリソースおよびオブジェクトを使用してウェブページをレンダリングしてよい。場合によっては、クライアントは、ウェブページをレンダリングする動作を完了することの一部としてメタ情報を生成し、任意のブロック470においてそのようなメタ情報をサーバに送信してよい。サーバは、ブロック453においてウェブページに関するマニフェストを更新してよく、プロセスは、任意の数のクライアントから受信された各ウェブページ要求に応答して引き続き繰り返されてよい。
【００５４】
上記で図3を参照して説明したように、サーバは、複数のユーザクライアントモバイルコンピューティングデバイスからメタ情報を受信し、クラウドソーシングされた1組のウェブページマニフェストを作成する代わりに、いくつかのプロキシユーザエージェントを使用してウェブページをレンダリングすることによってそのようなメタ情報自体を生成することができる。図5Aは、様々な態様によるそのようなサーバソーシング実装形態500内の例示的な情報フローを示す。図5Aに示す例では、メタ情報が専用サーバ208によって生成されてよい。クラウドソーシング実装形態とは異なり、サーバ208はウェブページ情報(すなわち、HTMLコード、スクリプティングコンテンツ、スタイルシート、画像など)をウェブサーバ412に直接要求してよい。サーバ208は、様々な種類のユーザエージェント(たとえば、デスクトップ、iOS(登録商標)オペレーティングシステム、Android(登録商標)オペレーティングシステム)をエミュレートして各ウェブページをレンダリングしてよく、ウェブページがエミュレートされた各ユーザエージェントタイプによって処理されるときにウェブサーバ412から異なる情報を取り込んでよい。サーバ208は、ウェブページをロードするのに必要なリソース、コンポーネント間の依存性、およびクライアント110Aがネットワーク使用状況を改善し全体的なページロード時間を短縮するために使用できるその他の情報を記述したページロードメタ情報を生成してよい。サーバ208は、このメタ情報から、サーバ208に関連するデータベースに記憶することのできるマニフェストを生成してよい。
【００５５】
クライアント110Aは、ウェブページをレンダリングするよう指示されたときに、サーバ208にマニフェストを要求し、メタ情報を現在のローカル情報(たとえば、キャッシュされたデータ、現在のネットワークステータスなど)と比較してよい。この比較によって、クライアント110Aはウェブページリソースの取込みに優先順位付けすることができる。クライアント110Aは次いで、必要なウェブページ要素を優先順位の順番で要求し、必要なコンテンツをウェブサーバ412から受信し、ページをレンダリングしてよい。一態様では、クライアント110Aは、メタ情報を、記憶されたマニフェストにその情報を組み込むことのできるサーバ208にアップロードするか、またはフィードバックを使用してクライアントのプロキシユーザエージェントまたはマニフェストを生成するためのプロセスを微調整してよい。一態様では、サーバ208はウェブページコンテンツをクライアント110Aにプッシュしてよい。別の態様では、クライアント110Aはその現在のローカル情報(たとえば、キャッシュされたデータ、現在のネットワークステータスなど)をサーバ208に送信してよく、サーバはその情報をウェブページのマニフェストと比較してクライアント110Aのリソース取込み順序を決定してよい。別の態様では、ウェブページをサーバ208上に維持してよい。
【００５６】
図5Bは、サーバによって生成されたメタ情報を使用してウェブページマニフェストを生成するためのサーバにおいて実施され得る例示的な方法550を示す。方法550のブロック552において、サーバは処理すべき特定のウェブページを選択してよい。この選択は、サーバがクライアントにマニフェストサービスを提供している多数のウェブページから行われてよい。たとえば、サーバは、ウェブページの人気に基づく上位1000個のウェブページのマニフェストを生成し、ブロック552においてそのリストから処理すべき個々のウェブページを選択するように構成されてよい。代替的にまたは追加として、サーバは事前に処理されていない特定のウェブページを求める要求を周期的に受信してよく、その場合、サーバはクライアント要求に応答してブロック552の一部として処理すべきウェブページを選択してよい。このようにして、サーバは必要なときまたは望ましいときに要求に応じてマニフェストを生成してよい。
【００５７】
上述のように、ユーザエージェントがウェブページを異なるように処理し、したがって、異なる優先付けまたはメタ情報を必要とすることがあるので、ユーザエージェントの種類ごとに様々なマニフェストが生成されてよい。したがって、ブロック554において、サーバはアクセスされたウェブページを処理する際に使用すべき第1のプロキシユーザエージェントを選択してよい。ブロック556において、サーバは、選択されたプロキシユーザエージェントを使用して選択されたウェブページをロードするかまたは場合によっては処理し、ブロック558において選択されたウェブページをレンダリングする選択されたユーザエージェントに関するメタ情報を求めてよい。ブロック560において、サーバは、ブロック558において生成されたメタ情報に基づいてマニフェストを生成し、そのマニフェストをマニフェストのデータベースに記憶してよい。
【００５８】
判定ブロック562において、サーバは、マニフェストを生成すべき別のユーザエージェントがあるかどうかを判定してよい。処理すべき別のユーザエージェントがあるとき(すなわち、判定ブロック562=「Yes」)、サーバはブロック554に戻って処理すべき次のプロキシユーザエージェントを選択してよい。選択されたウェブページがサーバによって使用されるすべてのプロキシユーザエージェントによって処理された後(すなわち、判定ブロック562=「No」)、サーバは、判定ブロック564において処理すべき別のウェブページがあるかどうかを判定してよい。処理すべき別のウェブページがある場合(すなわち、判定ブロック564=「Yes」)、サーバはブロック552に戻って、上述のように進行し得る処理を行うべき次のウェブページを選択してよい。すべてのウェブページがすべてのプロキシユーザエージェントを使用して処理された後(すなわち、判定ブロック564=「No」)、サーバは、ブロック566において、上記で図4Bを参照して説明したようにウェブページマニフェストを求めるクライアント要求を処理し、予見してよい。
【００５９】
コンテンツが追加され、削除され、更新されるときにウェブページが頻繁に変更されるので、サーバはウェブページマニフェストを周期的にリフレッシュまたは再生するように構成されてよい。ウェブページマニフェストの更新のスケジューリングは、各ウェブページの種類またはコンテンツに依存し得る。たとえば、ニュースウェブページのマニフェストは、5分おき〜10分おきなど非常に頻繁に更新されてよい。その理由は、ニュースウェブページのコンテンツが急速に変化し、一方、企業ウェブページのマニフェストは、企業ウェブページのコンテンツの変化率に応じて毎週または毎月更新されればよいからである。ウェブページマニフェスト更新のそのようなスケジューリングは、たとえば、マニフェストを更新することによりサーバによって経時的に学習される情報に基づいて、ウェブページごとに決定されてよい。たとえば、サーバは新たに生成されたマニフェストをその以前のバージョンと比較して、マニフェストが更新間の時間の間に変化した程度を判定してよい。サーバは、マニフェストが更新または再生の頻度と同程度の頻度で変化していないと判定した場合、それに応じてそのウェブページのマニフェストを更新するためのサーバのスケジュールを調整してよい。同様に、サーバは、マニフェスト間の変化が顕著であると判定した場合、その特定のウェブページに関するマニフェスト更新の周期を増大させてよい。他の実施形態では、サーバは1時間おき、毎晩、または毎週などの単純な更新スケジュールに従ってよい。
【００６０】
サーバは、そのような更新スケジュールを使用して、判定ブロック568において、ウェブページごとにそのマニフェストを更新する時間かどうかを判定してよい。ウェブページが更新を必要としない限り(すなわち、判定ブロック=「No」である間)、サーバはブロック566において、ウェブページのマニフェストを求めるクライアント要求を引き続きサポートしてよい。サーバは、特定のウェブページまたは一群のウェブページのマニフェストを更新する時間であると判定すると(すなわち、判定ブロック568=「Yes」)、ブロック552に戻って更新すべきウェブページを選択してよい。サーバは、上述のように動作を繰り返すことによって、ウェブページまたはウェブページマニフェストを求めるクライアントからの要求を処理しつつ多数のウェブページの最新のマニフェストを維持することができる。
【００６１】
図6は、サーバ208がクライアント110Aに配信すべきコンテンツを特定して選択し、選択されたコンテンツを配信すべき順序を決定するサーバ中心実装形態においてページロードを加速するための態様方法600における情報フローを示す。図6に示された例では、クライアント110Aがコールドキャッシュから開始し、ネットワーク状態は良好である。動作1において、クライアント110Aはローカルメタ情報に対するクライアント110Aのローカルキャッシュステータス(たとえば、どんなリソース/オブジェクトがキャッシュ内にあるか、依存性、レイアウト情報など)およびネットワーク状態(たとえば、アップリンクおよびダウンリンク、帯域幅、RTT遅延推定値など)を調べてよい。動作2において、クライアント110Aはウェブページを求める要求をクライアント110Aのローカルキャッシュステータスおよびネットワーク状態とともにプロキシサーバ208に送ってよい。動作3において、プロキシサーバ208は、要求されたウェブページに関する最新の利用可能なマニフェストに基づいて、クライアント側でどんなリソースが欠落しているかを判定すること、依存性/レイアウト情報に基づいて最適な要求順序または優先順位を判定すること、他のリソースをブロックしかつ/またはより高い優先順位を有するリソースがあるかどうかを判定すること、他の画像/オブジェクトよりも高い優先順位を有するべき画像またはオブジェクトがページ上/ビューポート内にあるかどうかを判定すること、およびその他の同様の動作を含んでよい各動作を実行することによって、クライアント110Aによってどんなリソースを受信すべきかを判定してよい。動作4aにおいて、サーバ208は、ネットワーク状態および欠落しているリソースのキャッシュ能力に基づいて、すべての欠落しているキャッシュ可能なリソースを動作3において定められた順番でクライアント110Aにプッシュすること、欠落しているオブジェクトのリストを(たとえば、動作3で定められた順番で)クライアント110Aがプリロードできるように(プリロードヒンティング)クライアント110Aに送り返す(すなわち、プッシュする)こと、リソース処理動作を実行すること(たとえば、クライアント110Aは小形スクリーンを有し、より質の低い画像を受信する必要がある)、必要に応じてリソ
ースを異なるフォーマット(たとえば、クライアント110Aのより低い画質のオブジェクトフォーマットまたは所望のオブジェクトフォーマット)にコード変換すること、リソースを圧縮すること、クライアント110Aに関してURL出力先変更を行うこと、クライアント110Aの必要なリソースをフェッチすること、およびその他の同様の動作のうちの1つまたは複数を実行することを決定してよい。動作4bにおいて、サーバ208はすべてのキャッシュ不能なオブジェクトのリストをクライアント110Aに送ってよい。動作5において、クライアント110Aは、受信されたリストに従って、リソースを要求するかまたはサーバ208によってプッシュされたオブジェクトを受信してよい。動作6において、クライアント110Aはページのロードを完了し、ローカルメタ情報を更新してよい。任意の動作7において、クライアント110Aは更新されたメタ情報をウェブページに関するマニフェストを修正する際に使用できるようにサーバ208にアップロードしてよい。
【００６２】
図7は、サーバ中心構成においてページロードを加速するための別の態様方法700における情報フローを示す。図7に示す例では、クライアントキャッシュが部分的に無効化され(たとえば、満了、排除など)、キャッシュ不能なリソースがなく、ネットワーク状態は良好である。動作1では、クライアント110Aはローカルメタ情報に対するローカルキャッシュステータスおよびネットワーク状態を調べてよい。動作2において、クライアント110Aはウェブページを求める要求を無効化されたキャッシュおよびネットワークステータスならびに有効なキャッシュおよびネットワークステータスとともにプロキシサーバ208に送ってよい。動作3において、プロキシサーバ208は、当面の最新のマニフェスト情報に基づいて、クライアント側でどのリソースが欠落しているかを判定すること、(たとえば、依存性/レイアウト情報に基づいて)最適な要求順序/優先順位順を判定すること、より高い優先順位を有する他のリソースをブロックするリソースを特定すること、ページ上/ビューポート内の画像/オブジェクトにより高い優先順位を与えるべきかどうかを判定すること、および他の同様の動作を行ってよい。動作4において、サーバ208は、ネットワーク状態に基づいて、(必要に応じて)クライアント110Aのリソースをフェッチし、すべての欠落しているキャッシュ可能なリソースを動作3で定められた順番でクライアント110Aにプッシュする。動作5において、クライアント110Aはページのロードを完了し、ローカルメタ情報を更新してよい。任意の動作6において、クライアント110Aは更新されたメタ情報をウェブページに関するマニフェストを修正する際に使用できるようにサーバ208にアップロードしてよい。
【００６３】
図8は、サーバ中心構成においてページロードを加速するためのさらに別の態様方法800における情報フローを示す。図8に示す例では、クライアントキャッシュが部分的に無効化され(たとえば、満了、排除など)、キャッシュ不能なリソースがなく、ネットワーク状態は不良である(たとえば、低帯域幅)。動作1では、クライアント110Aはローカルメタ情報に対するローカルキャッシュステータスおよびネットワーク状態を調べてよい。動作2において、クライアント110Aはウェブページ要求を無効化されたキャッシュおよびネットワークステータスならびに有効なキャッシュおよびネットワークステータスとともにプロキシサーバ208に送ってよい。動作3において、プロキシサーバ208は、当面の最新のマニフェストに基づいて、クライアント側でどのリソースが欠落しているかを判定し、(たとえば、依存性および/またはレイアウト情報に基づいて)最適な要求順序または優先順位順を判定し、より高い優先順位を有する他のリソースをブロックするリソースを特定し、より高い優先順位を与えるべき画像/オブジェクトがページ上またはビューポート内にあるかどうかを判定してよい。動作3bにおいて、サーバ208は、たとえばリソースをより低い画質(または異なるオブジェクトフォーマット)にコード変換するかあるいは(たとえば、ネットワーク状態が不良であることを示すメタ情報に基づいて)Java(登録商標)Script（登録商標）、CSS、およびHTMLオブジェクトを圧縮することによって送信すべきペイロードのサイズを縮小してよい。動作4において、サーバ208はコード変換された欠落しているオブジェクトを動作3で定められた順番でクライアント110Aにプッシュしてよい。動作5において、クライアント110Aはページのロードを完了し、ローカルメタ情報を更新してよい。任意の動作6において、クライアント110Aは更新されたメタ情報をウェブページに関するマニフェストを修正する際に使用できるようにサーバ208にアップロードしてよい。
【００６４】
図9は、どんなコンテンツをダウンロードすべきかおよびオブジェクトをダウンロードすべき順序に関する決定がクライアント110Aによって下されるクライアント中心構成においてページロードを加速するための態様方法900における情報フローを示す通信図である。図9に示す例では、クライアント110Aは部分的に無効化されたキャッシュを含み、ネットワーク状態は良好であり、サーバ208がプッシュ動作をサポートする。動作1では、クライアント110Aは所望のウェブページに関するマニフェストをプロキシサーバ208からフェッチしてよい。動作2では、クライアント110Aはローカルキャッシュステータス(たとえば、どんなオブジェクトがキャッシュ内にあるか、オブジェクト依存性などを判定する)およびネットワーク状態(たとえば、帯域幅、遅延推定値など)を調べてよい。動作3において、クライアント110Aは、マニフェストに基づいて、どのリソースが欠落しておりフェッチすべきであるかを判定すること、(たとえば、依存性/レイアウト/ネットワーク状態情報に基づいて)最適な要求順序/優先順位順を判定すること、より高い優先順位を有する他のリソースをブロックするリソースを特定すること、より高い優先順位を与えるべき画像/オブジェクトがページ上/ビューポート内にあるかどうかを判定すること、および他の同様の動作を行ってよい。動作4では、クライアント110Aは、(サーバ208から受信されるメタ情報において示すことのできる)サーバの機能に応じて、オブジェクトおよびその優先順位のリストをサーバ208に送ってよく、サーバ208はリストを受信して要求されたオブジェクトを要求された順番で/オブジェクトの優先順位に応じてクライアント110Aにプッシュしてよい。動作5において、クライアント110Aはページのロードを完了し、ローカルメタ情報を更新してよい。任意の動作6において、クライアント110Aは更新されたメタ情報をウェブページに関するマニフェストを修正する際に使用できるようにサーバ208にアップロードしてよい。
【００６５】
図10は、クライアント中心構成においてページロードを加速するための別の態様方法1000における情報フローを示す。図10に示す例では、クライアント110Aは部分的に無効化されたキャッシュを含みかつネットワーク状態は良好であるが、図9に示す例とは異なり、サーバ208はプッシュ動作をサポートしない。この構成では、すべてのクライアント中心構成と同様に、どんなコンテンツをダウンロードすべきかおよびオブジェクトをダウンロードすべき順序に関する決定がクライアント110Aによって下されてよい。
【００６６】
動作1において、クライアント110Aは、クライアント110Aがダウンロードするように指示されたウェブページに関するマニフェストをプロキシサーバ208からフェッチしてよい。動作2では、クライアント110Aはローカルキャッシュステータス(たとえば、キャッシュ内に何があるかを判定する)およびネットワーク状態(たとえば、帯域幅、遅延推定値など)を調べてよい。動作3において、クライアント110Aは、利用可能な最新のメタ情報に基づいて、どのリソースが欠落しておりフェッチすべきであるかを判定し、(たとえば、依存性/レイアウト/ネットワーク状態情報に基づいて)最適な要求順序/優先順位順を判定し、より高い優先順位を有する他のリソースをブロックするリソースを特定し、より高い優先順位を与えるべき画像/オブジェクトがページ上/ビューポート内にあるかどうかを判定し、他の同様の動作を実行してよい。動作4において、クライアント110Aは、(たとえば、サーバ208から受信されるメタ情報において示されるような)サーバの機能に応じて、一連の要求をプロキシ/ウェブ-サーバに送り、欠落しているオブジェクトを動作3で得られた最適な順序で受信してよい。サーバ208は、オブジェクトを求める要求をクライアント110Aから受信し、要求されたオブジェクトを、メタ情報を使用して算出することのできる最適な順番でクライアント110Aに送ってよい。動作5において、クライアント110Aはページのロードを完了し、ローカルメタ情報を更新してよい。任意の動作6において、クライアント110Aは更新されたメタ情報をウェブページに関するマニフェストを修正する際に使用できるようにサーバ208にアップロードしてよい。
【００６７】
様々な態様を実施するクライアント110Aまたはサーバ208は、ローカルクライアント情報を所望のウェブページに関するマニフェストと比較することによって、シナリオ(たとえば、ネットワーク状態)、構成(たとえば、クライアント中心、サーバ中心など)、またはそれらの任意の組合せに基づいてオブジェクト配信順(たとえば、優先順位)を決定してよい。様々な態様は、クライアント110Aが、オブジェクト依存性、オブジェクトサイズ、現在のネットワーク状態、コールドキャッシュ、デバイスの種類などの因子を検討することによって、オブジェクト配信順を改善するのを可能にする。たとえば、デフォルトのオブジェクト配信順(たとえば、ブラウザによるデフォルト順番セット)がCSS1、IMG1、JS1、IMG2、IMG3、JS3、IMG4である場合、様々な態様を実施するクライアント110Aは、CSS1、JS1、JS3、IMG2、IMG1、IMG3、IMG4の順番の方がより効率的であると判定し、それに応じて配信順序を変更してよい。さらに、要求順と受信順は、要求IDによるHTTPパイプライニングなどのネットワーキング機能の可用性に基づいて異なってもよい。
【００６８】
一態様において、サーバ208は、現在クライアントキャッシュにオブジェクトが存在するかどうかを判定し、現在クライアント110A上にキャッシュされていないオブジェクトのみを配信してよい。同様に、クライアント110Aは非キャッシュ項目のみをサーバ208によって送ることを要求してよい。代替として、クライアント110Aデバイスのリソースプロファイルを変更し、たとえば、クライアント110Aデバイスが3GからWiFiに移るかまたはドッキングステーションを介してより大きいディスプレイに接続した場合、クライアント110Aは前のキャッシュコンテンツを無視しすべての新しいウェブリソースをダウンロードしてよい。いずれの場合も、リソースは適切なウェブページマニフェストから決定されたそのリソースに割り当てられた優先順位に応じて順にクライアント110Aに配信されてよい。
【００６９】
図11Aは、サーバがクライアントに配信すべきコンテンツを特定し選択するサーバ中心実装形態においてページロードを加速するためのクライアントによって実施される方法1100を示す。図11Aに示す例では、クライアントがコールドキャッシュから開始し、ネットワーク状態は良好である。ブロック1102において、クライアントはローカルメタ情報に対するクライアントのローカルキャッシュステータス(たとえば、キャッシュ内に存在するリソース/オブジェクトを特定すること、依存性、レイアウト情報など)およびネットワーク状態(たとえば、帯域幅、遅延推定値など)を調べてよい。ブロック1104において、クライアントはウェブページを求める要求をクライアントのローカルキャッシュステータスおよびネットワーク状態とともにプロキシサーバに送ってよい。ブロック1106において、クライアントは、ローカルメタ情報とウェブページに適切なマニフェストとの比較に基づいてすべての欠落しているキャッシュ可能なリソースを定められた順番/順序で受信してよい。ブロック1108において、クライアントは欠落しているキャッシュ可能なオブジェクトおよび優先順位のリストを受信するかまたは生成してよい。ブロック1110において、クライアントはすべてのキャッシュ不能なオブジェクトのリストを受信してよい。ブロック1112において、クライアントは欠落しているオブジェクトの受信されたリストに基づいてリソースを要求し、かつ/またはキャッシュ不能なオブジェクトをフェッチしてよい。ブロック1114において、クライアントは、受信されたオブジェクトを使用し、受信されたオブジェクトのそれぞれの優先順位に従ってページをロードし、ページのローカルメタ情報を更新してよい。任意のブロック1116において、クライアントはメタ情報をウェブページに関するマニフェストを修正する際に使用できるようにサーバにアップロードしてよい。
【００７０】
図11Bは、サーバがクライアントに配信すべきコンテンツを特定し選択するサーバ中心実装形態においてページロードを加速するためのサーバによって実施される方法1150を示す。図11Bに示す例では、クライアントがコールドキャッシュから開始し、ネットワーク状態は良好である。ブロック1152において、サーバはウェブページ情報をクライアントからのメタ情報およびネットワーク状態情報とともに受信してよい。ブロック1154において、サーバは受信された情報と(たとえば、以前の訪問、他のクライアント、複数のウェブサイトなどから)前に受信された情報を組み合わせ(たとえば、クラウドソーシング)、ウェブページに関連するマニフェストを生成する。ブロック1156において、サーバは、利用可能な最新のマニフェストに基づいてクライアントに送るべきリソースを判定してよい。ブロック1156の一部として、サーバはクライアント側で欠落しているリソースを判定し、それらのオブジェクトをクライアントに配信するための最適な順序を判定し、より高い優先順位を有する他のリソースをブロックするリソースがあるかどうかを判定し、他の同様の動作を実行してよい。ブロック1158において、サーバは、ネットワーク状態および欠落している要求のキャッシュ能力に基づいて、欠落しているキャッシュ可能なリソースをフェッチし判定された順序でクライアントにプッシュする。ブロック1160において、サーバはクライアントの欠落しているオブジェクトのリストをクライアントに送ってよい。ブロック1162において、サーバはすべてのキャッシュ不能なオブジェクトのリストをクライアントに送ってよい。ブロック1164において、サーバは、キャッシュ不能なオブジェクトをオブジェクトの決定された優先順位に従って順にフェッチしクライアントにプッシュしてよい。任意のブロック1166において、サーバは更新されたメタ情報をクライアントから受信し、ウェブページに関するマニフェストを更新してよい。
【００７１】
図12Aは、ダウンロードすべきコンテンツおよびオブジェクトをダウンロードすべき順序に関する決定がクライアントによって下されるクライアント中心構成においてページロードを加速するためのクライアントによって実施される方法1200を示す。図12Aに示す例では、クライアントが部分的に無効化されたキャッシュを含み、ネットワーク状態は良好である。ブロック図1202において、クライアントは、クライアントがダウンロードするよう要求するウェブページに関するメタ情報をプロキシサーバからフェッチしてよい。ブロック1204では、クライアントはローカルキャッシュステータス(たとえば、キャッシュ内に存在するオブジェクト、オブジェクト依存性などを判定する)およびネットワーク状態(たとえば、帯域幅、遅延推定値など)を調べてよい。ブロック1206において、クライアントは、サーバによって維持される利用可能な最新のマニフェストに基づいて、欠落しておりフェッチすべきリソースを判定してよい。ブロック1208において、クライアントは、メタ情報によって特定されるサーバの機能に基づいて決定することのできるオブジェクトを受信するための最適な順序/優先順位を判定してよい。ブロック1210において、クライアントは必要なオブジェクトおよびオブジェクトの優先順位のリストをサーバに送ってよい。ブロック1212において、クライアントは、要求されたオブジェクトをオブジェクトの決定された優先順位に従って要求された順序で受信してよい。ブロック1214において、クライアントはページをロードし、ページのローカルメタ情報を更新してよい。任意のブロック1216において、クライアントは、更新されたメタ情報を、サーバがウェブページに関するマニフェストを修正する際に使用できるようにサーバにアップロードしてよい。
【００７２】
図12Bは、ダウンロードすべきコンテンツおよびオブジェクトをダウンロードすべき順序に関する決定がクライアントによって下されるクライアント中心構成においてページロードを加速するためのサーバによって実施される方法1250を示す。図12Bに示す例では、クライアントは部分的に無効化されたキャッシュを含み、ネットワーク状態は良好であり、サーバがプッシュ動作をサポートする。ブロック1252において、サーバは、クライアントがダウンロードするよう要求するウェブページに関するマニフェストをクライアントに送ってよい。クライアントは、オブジェクトを受信するための最適な順序/優先順位を判定し、一連の優先オブジェクト要求をサーバに送り返してよい。ブロック1254において、サーバはオブジェクトおよびオブジェクトのそれぞれの優先順位のリストを受信してよい。ブロック1256において、サーバは、要求されたオブジェクトをオブジェクトの優先順位に従って順にクライアントにプッシュしてよい。任意のブロック1258において、サーバは更新されたメタ情報をクライアントから受信し、ウェブページに関するマニフェストを更新してよい。
【００７３】
図13は、態様のいずれかとともに使用するのに好適なモバイルコンピューティングデバイスのシステムブロック図である。代表的なモバイルコンピューティングデバイス110Aは、内部メモリ1332と、ディスプレイ1333と、スピーカー1354とに結合されたプロセッサ1331を含み得る。加えて、モバイルコンピューティングデバイスは、プロセッサ1331に結合されたワイヤレスデータリンクおよび/またはセルラー電話送受信機1335と、プロセッサに結合されたモバイルマルチメディアブロードキャスト受信機1336とに接続され得る、電磁放射を送信および受信するためのアンテナ1334を含み得る。モバイルコンピューティングデバイス110Aは、一般に、ユーザ入力を受信するためのメニュー選択ボタンまたはロッカースイッチをも含む。
【００７４】
様々な態様は、図14に示されるサーバ208のような、種々の市販のサーバデバイスのいずれにおいても実装され得る。そのようなサーバ208は、典型的にはプロセッサ1401を含み、複数のプロセッサシステム1411、1421、1431を含むことができ、プロセッサシステムのうちの1つまたは複数は、マルチコアプロセッサであるかまたはマルチコアプロセッサを含むことができる。プロセッサ1401は、揮発性内部メモリ1402、およびディスクドライブ1403などの大容量不揮発性メモリに結合することができる。サーバ208はまた、プロセッサ1401に結合された、フロッピー（登録商標）ディスクドライブ、コンパクトディスク(CD)またはDVDディスクドライブを含むことができる。サーバ208はまた、他のブロードキャストシステムコンピュータおよびサーバに結合されたローカルエリアネットワークなどのネットワークとデータ接続を確立するための、プロセッサ1401に結合されたネットワークアクセスポート1404を含むことができる。
【００７５】
上で説明された態様はまた、図15に示すラップトップコンピュータ110Cなどの種々のパーソナルコンピューティングデバイス内に実装され得る。多くのラップトップコンピュータは、コンピュータのポインティングデバイスとして働くタッチパッドのタッチ面1517を含み、したがって、タッチスクリーンディスプレイを備える上述のモバイルコンピューティングデバイスに実装されるものと同様のドラッグジェスチャ、スクロールジェスチャ、およびフリックジェスチャを受け入れることができる。ラップトップコンピュータ110Cは、通常、揮発性メモリ1512、およびフラッシュメモリのディスクドライブ1513などの大容量不揮発性メモリに結合されたプロセッサ1511を含む。ラップトップコンピュータ110Cはまた、プロセッサ1511に結合されたフロッピー（登録商標）ディスクドライブ1514およびコンパクトディスク(CD)ドライブ1515を含むことができる。ラップトップコンピュータ110Cはまた、USBもしくはFireWire(登録商標)コネクタソケット、または、プロセッサ1511をネットワークに結合するための他のネットワーク接続回路など、データ接続を確立するまたは外部メモリデバイスを受け入れるための、プロセッサ1511に結合されたいくつかのコネクタポートを含み得る。ノートブック構成では、コンピュータのハウジングは、すべてがプロセッサ1511に結合される、タッチパッド1517、キーボード1518、およびディスプレイ1519を含む。コンピューティングデバイスの他の構成は、よく知られているように、(たとえば、USB入力を介して)プロセッサに結合されたコンピュータマウスまたはトラックボールを含んでよく、それらはまた、様々な態様とともに使用され得る。
【００７６】
プロセッサ1331、1401、1411、1421、1431、および1511は、上記で説明した様々な態様の機能を含む、様々な機能を実行するようにソフトウェア命令(アプリケーション)によって構成され得る、任意のプログラマブルマイクロプロセッサ、マイクロコンピュータ、または1つもしくは複数の多重プロセッサチップであり得る。いくつかのデバイスでは、ワイヤレス通信機能専用の1つのプロセッサおよび他のアプリケーションを走らせる専用の1つのプロセッサなどの多重プロセッサ1331、1401、1411、1421、1431、および1511が設けられ得る。一般的には、ソフトウェアアプリケーションは、アクセスされプロセッサ1331、1401、1411、1421、1431、および1511内にロードされる前に、内部メモリ1332、1402、および1403内に記憶され得る。プロセッサ1331、1401、1411、1421、1431、および1511は、アプリケーションソフトウェア命令を記憶するのに十分な内部メモリを含み得る。多くのデバイスでは、内部メモリは、揮発性メモリ、もしくはフラッシュメモリなどの不揮発性メモリ、または両方の混合であり得る。本明細書では、メモリへ一般的な言及は、内部メモリ、またはデバイスに差し込まれるリムーバブルメモリと、プロセッサ1331、1401、1411、1421、1431、および1511自体の中のメモリとを含む、プロセッサ1331、1401、1411、1421、1431、および1511によってアクセス可能なメモリを指す。
【００７７】
上記の方法の説明およびプロセスフロー図は、単に説明のための例として提供され、様々な態様の動作が提示された順番で実施されなければならないことを要求または暗示するものではない。当業者によって諒解されるように、上記の態様におけるステップの順番は、いかなる順番でも実行することができる。「その後」、「次いで」、「次に」などの言葉は、動作の順番を限定するものではなく、これらの言葉は単に、読者に本方法の説明を案内するために使用される。さらに、たとえば、冠詞「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  通信システム
101  モバイルブロードキャストネットワーク
102  ブロードキャスト送信機
104  ブロードキャストオペレーションセンター
107  インターネット
111  ユニキャストネットワーク
110A、110B、110C  モバイルコンピューティングデバイス
112  セルラー基地局
113  双方向ワイヤレス通信リンク
116  サーバ
205  マニフェスト
208  サーバ
209  ウェブページ識別情報
210  ユーザエージェント情報
212  URL
216  オブジェクトの種類
218  オブジェクトのキャッシュ能力
222  レイアウト情報
224  ウェブページのタイムスタンプ
300  プロキシ構成
400  クラウドソーシング実施形態方法
412  ウェブサーバ
500  サーバソーシング実装形態
1331  プロセッサ
1332  内部メモリ
1401  プロセッサ
1402  内部メモリ
1403  ディスクドライブ
1404  ネットワークアクセスポート
1411、1421、1431  プロセッサシステム
1511  プロセッサ
1512  揮発性メモリ
1513  ディスクドライブ
1514  フロッピー（登録商標）ディスクドライブ
1515  コンパクトディスクドライブ
1517  タッチパッドタッチ面
1518  キーボード
1519  ディスプレイ
【図１】
2015513144.tif 000003
【図２】
2015513144.tif 000004
【図３】
2015513144.tif 000005
【図４Ａ】
2015513144.tif 000006
【図４Ｂ】
2015513144.tif 000007
【図４Ｃ】
2015513144.tif 000008
【図５Ａ】
2015513144.tif 000009
【図５Ｂ】
2015513144.tif 000010
【図６】
2015513144.tif 000011
【図７】
2015513144.tif 000012
【図８】
2015513144.tif 000013
【図９】
2015513144.tif 000014
【図１０】
2015513144.tif 000015
【図１１Ａ】
2015513144.tif 000016
【図１１Ｂ】
2015513144.tif 000017
【図１２Ａ】
2015513144.tif 000018
【図１２Ｂ】
2015513144.tif 000019
【図１３】
2015513144.tif 000020
【図１４】
2015513144.tif 000021
【図１５】
2015513144.tif 000022
【手続補正書】
【提出日】平成25年8月27日(2013.8.27)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
モバイルコンピューティングデバイスによってウェブページをレンダリングするための方法であって、
前記ウェブページおよび前記モバイルコンピューティングデバイス上に実装されたユーザエージェントを特定する情報を前記モバイルコンピューティングデバイスによってサーバに送信するステップと、
前記ウェブページおよび前記ユーザエージェントのマニフェストを前記サーバから受信するステップであって、前記ウェブページおよび前記ユーザエージェントの前記マニフェストが前記ウェブページを前記ユーザエージェントによってレンダリングすることに対応するウェブページオブジェクト情報を含むステップと、
前記マニフェストを使用して、前記ウェブページを前記ユーザエージェントによって前記モバイルコンピューティングデバイス上にロードするのに必要なリソースに優先順位を割り当てるステップと、
前記リソースを、前記リソースに割り当てられた優先順位に基づいて決定された順序で前記モバイルコンピューティングデバイス上で受信するステップと、
前記モバイルコンピューティングデバイス上で前記受信されたリソースを使用して前記ウェブページをレンダリングするステップとを含む方法。
【請求項２】
前記モバイルコンピューティングデバイスが、前記ウェブページのレンダリング時に前記モバイルコンピューティングデバイスによって生成されたメタ情報を前記サーバに送信するステップをさらに含む、請求項1に記載の方法。
【請求項３】
前記マニフェストを使用して、前記ウェブページを前記ユーザエージェントによって前記モバイルコンピューティングデバイス上にロードするのに必要なリソースに優先順位を割り当てるステップは、
前記マニフェストを前記モバイルコンピューティングデバイス上に記憶された情報と比較することによって、前記ウェブページを前記モバイルコンピューティングデバイス上にロードするのに必要な前記リソースを前記モバイルコンピューティングデバイスにおいて特定するステップと、
前記マニフェストに基づいて前記モバイルコンピューティングデバイスにおける前記特定されたリソースに前記優先順位を割り当てるステップとを含む、請求項1に記載の方法。
【請求項４】
前記リソースに割り当てられた優先順位によって決定された順序で前記モバイルコンピューティングデバイス上で前記リソースを受信するステップは、前記モバイルコンピューティングデバイスが前記マニフェストに基づいて前記モバイルコンピューティングデバイスによって決定された前記順序で第2のサーバからの前記リソースのダウンロードを要求するステップを含む、請求項3に記載の方法。
【請求項５】
サーバがモバイルコンピューティングデバイスによるウェブページのレンダリングをサポートするための方法であって、
ユーザエージェントによって前記ウェブページを処理することに関するメタ情報を前記サーバにおいて取得するステップと、
前記取得されたメタ情報に基づいて前記ユーザエージェントの前記ウェブページのマニフェストを生成するステップであって、前記マニフェストは前記ウェブページを前記ユーザエージェントによってレンダリングすることに対応するウェブページオブジェクト情報を含むステップと、
前記生成されたマニフェストを使用して、前記ウェブページを前記ユーザエージェントによってモバイルコンピューティングデバイス上にロードするのに必要なリソースに優先順位を割り当てるステップであって、前記リソースが前記リソースに割り当てられた優先順位に基づいて決定された順序で前記モバイルコンピューティングデバイス上で受信されるステップとを含む方法。
【請求項６】
ユーザエージェントによって前記ウェブページを処理することに関するメタ情報を前記サーバにおいて取得するステップは複数のモバイルコンピューティングデバイスによって様々な種類のユーザエージェントを使用して前記ウェブページを処理することに関する前記メタ情報を受信するステップを含み、前記方法は、前記複数のモバイルコンピューティングデバイスが、前記ウェブページをレンダリングしたことに応答して前記サーバに送信される前記受信されたメタ情報に基づいて前記様々な種類のユーザエージェントの各々について前記ウェブページの個々のマニフェストを生成するステップをさらに含む、請求項5に記載の方法。
【請求項７】
前記ウェブページをユーザエージェントによって処理することに関するメタ情報を前記サーバにおいて取得するステップは、
様々な種類のユーザエージェントを使用して前記ウェブページを処理することに関する前記メタ情報を前記サーバ上で生成するステップを含む、請求項5に記載の方法。
【請求項８】
前記生成されたマニフェストを使用して、前記ウェブページを前記ユーザエージェントによってモバイルコンピューティングデバイス上にロードするのに必要なリソースに優先順位を割り当てるステップは、
前記モバイルコンピューティングデバイスに関する情報を前記サーバにおいて受信するステップと、
前記ウェブページおよび前記モバイルコンピューティングデバイス上に実装される前記ユーザエージェントの前記生成されたマニフェストを取得するステップと、
前記サーバにおいて、前記取得されたマニフェストと前記モバイルコンピューティングデバイスに関する前記受信された情報を比較するステップと、
前記サーバにおいて、前記モバイルコンピューティングデバイス上に前記ウェブページをロードするのに必要な前記リソースに関する前記優先順位および適切なオブジェクトフォーマットを特定するステップと、
前記ウェブページを前記モバイルコンピューティングデバイス上にロードするのに必要な前記リソースに関する前記特定された優先順位および前記適切なオブジェクトフォーマットを前記モバイルコンピューティングデバイスに送信するステップとを含む、請求項5に記載の方法。
【請求項９】
前記サーバが、前記リソースを、前記マニフェストに基づいて前記サーバによって決定された前記順序で前記モバイルコンピューティングデバイスにプッシュするステップをさらに含む、請求項5に記載の方法。
【請求項１０】
前記サーバが前記リソースを前記モバイルコンピューティングデバイスの所望のフォーマットにコード変換するステップをさらに含む、請求項9に記載の方法。
【請求項１１】
メモリと、
前記メモリに結合され、
ウェブページおよびモバイルコンピューティングデバイス上に実装されたユーザエージェントを特定する情報をサーバに送信すること、
前記ウェブページおよび前記モバイルコンピューティングデバイス上に実装される前記ユーザエージェントのマニフェストを前記サーバから受信することであって、前記マニフェストが前記ユーザエージェントによって前記ウェブページをレンダリングすることに対応するウェブページオブジェクト情報を含むこと、
前記マニフェストを前記モバイルコンピューティングデバイス上に記憶された情報と比較することによって、前記ウェブページを前記ユーザエージェントによってロードするのに必要なリソースを特定すること、
前記マニフェストに基づいて前記特定されたリソースに優先順位を割り当てること、
前記リソースを、前記リソースに割り当てられた優先順位に基づいて決定された順序で受信すること、ならびに
前記受信されたリソースを使用して前記ウェブページをレンダリングすることを含む動作を実行するためのプロセッサ実行可能命令を有するように構成されたプロセッサとを備えるモバイルコンピューティングデバイス。
【請求項１２】
前記プロセッサは、前記リソースを、前記リソースに割り当てられた優先順位に基づいて決定された順序で受信することが前記リソースを前記マニフェストに基づく前記順序で第2のサーバからダウンロードすることを要求することを含むようなプロセッサ実行可能な命令を有するように構成される、請求項11に記載のモバイルコンピューティングデバイス。
【請求項１３】
前記プロセッサは、前記ウェブページのレンダリング時に前記モバイルコンピューティングデバイスによって生成されたメタ情報を前記サーバに送信することをさらに含む動作を実行するためのプロセッサ実行可能な命令を有するように構成される、請求項11に記載のモバイルコンピューティングデバイス。
【請求項１４】
メモリと、
前記メモリに結合され、
ユーザエージェントを使用してウェブページを処理することに関するメタ情報を収集すること、
前記収集されたメタ情報に基づいて前記ユーザエージェントに関する前記ウェブページのマニフェストを生成することであって、前記マニフェストが前記ユーザエージェントによって前記ウェブページをレンダリングすることに対応するウェブページオブジェクト情報を含むこと、および
前記生成されたマニフェストを使用して、前記ウェブページを前記ユーザエージェントによってモバイルコンピューティングデバイス上にロードするのに必要なリソースに優先順位を割り当てることであって、前記リソースが前記リソースに割り当てられた優先順位に基づいて決定された順序で前記モバイルコンピューティングデバイス上で受信されることを含む動作を実行するためのサーバプロセッサ実行可能命令を有するように構成されたサーバプロセッサとを備えるサーバ。
【請求項１５】
前記サーバプロセッサは、前記生成されたマニフェストを使用して前記ウェブページを前記ユーザエージェントによってモバイルコンピューティングデバイス上にロードするのに必要なリソースに優先順位を割り当てることが、前記生成されたマニフェストを前記モバイルコンピューティングデバイスに関する情報によって評価できるように前記モバイルコンピューティングデバイスに送信することを含むようなサーバプロセッサ実行可能命令を有するように構成される、請求項14に記載のサーバ。
【請求項１６】
前記サーバプロセッサは、前記ウェブページのレンダリング時に生成された前記メタ情報を前記モバイルコンピューティングデバイスから受信することをさらに含む動作を実行するためのサーバプロセッサ実行可能命令を有するように構成される、請求項14に記載のサーバ。
【請求項１７】
前記サーバプロセッサは、ユーザエージェントを使用してウェブページを処理することに関するメタ情報を収集することが前記サーバ上で様々な種類のユーザエージェントを使用して前記ウェブページを処理することに関する前記メタ情報を生成することを含むようなサーバプロセッサ実行可能命令を有するように構成される、請求項14に記載のサーバ。
【請求項１８】
前記サーバプロセッサは、ユーザエージェントを使用してウェブページを処理することに関するメタ情報を収集することが、様々な種類のユーザエージェントを使用して前記ウェブページを処理することに関する前記メタ情報を複数のモバイルコンピューティングデバイスから受信することを含むようなサーバプロセッサ実行可能命令を有するように構成され、
前記サーバプロセッサは、送信される前記受信されたメタ情報に基づいて前記様々な種類のユーザエージェントの各々について前記ウェブページの個々のマニフェストを生成することをさらに含む動作を実行するためのサーバプロセッサ実行可能命令を有するように構成される、請求項14に記載のサーバ。
【請求項１９】
前記サーバプロセッサは、前記生成されたマニフェストを使用して、前記ウェブページを前記ユーザエージェントによってモバイルコンピューティングデバイス上にロードするのに必要なリソースに優先順位を割り当てることが、
前記モバイルコンピューティングデバイスに関する情報を受信することと、
前記ウェブページおよび前記モバイルコンピューティングデバイス上に実装された前記ユーザエージェントの前記生成されたマニフェストを取得することと、
前記取得されたマニフェストを使用して前記モバイルコンピューティングデバイスに関する前記受信された情報を評価することと、
前記ウェブページを前記モバイルコンピューティングデバイス上にロードするのに必要な前記リソースに関する前記優先順位および適切なオブジェクトフォーマットを特定することと、
前記ウェブページを前記モバイルコンピューティングデバイス上にロードするのに必要な前記リソースに関する前記特定された優先順位および前記適切なオブジェクトフォーマットを前記モバイルコンピューティングデバイスに送信することとを含むようなサーバプロセッサ実行可能命令を有するように構成される、請求項14に記載のサーバ。
【請求項２０】
前記サーバプロセッサは、前記リソースを前記マニフェストに基づく前記順序で前記モバイルコンピューティングデバイスにプッシュすることをさらに含む動作を実行するためのサーバプロセッサ実行可能命令を有するように構成される、請求項14に記載のサーバ。
【請求項２１】
前記サーバプロセッサは、前記リソースを前記モバイルコンピューティングデバイスの所望のフォーマットにコード変換することをさらに含む動作を実行するためのサーバプロセッサ実行可能命令を有するように構成される、請求項20に記載のサーバ。
【請求項２２】
ウェブページおよびモバイルコンピューティングデバイス上に実装されたユーザエージェントを特定する情報をサーバに送信するための手段と、
前記ウェブページおよび前記モバイルコンピューティングデバイス上に実装される前記ユーザエージェントのマニフェストを前記サーバから受信するための手段であって、前記マニフェストが前記ユーザエージェントによって前記ウェブページをレンダリングすることに対応するウェブページオブジェクト情報を含む手段と、
前記マニフェストを前記モバイルコンピューティングデバイス上に記憶された情報と比較することによって、前記ウェブページを前記ユーザエージェントによってロードするのに必要なリソースを特定するための手段と、
前記マニフェストに基づいて前記特定されたリソースに優先順位を割り当てるための手段と、
前記リソースを、前記リソースに割り当てられた優先順位に基づいて決定された順序で受信するための手段と、
前記受信されたリソースを使用して前記ウェブページをレンダリングするための手段とを備えるモバイルコンピューティングデバイス。
【請求項２３】
前記リソースを、前記リソースに割り当てられた優先順位に基づいて決定された順序で受信するための手段は、前記リソースを前記マニフェストに基づく前記順序で第2のサーバからダウンロードすることを要求するための手段を備える、請求項22に記載のモバイルコンピューティングデバイス。
【請求項２４】
前記ウェブページのレンダリング時に前記モバイルコンピューティングデバイスによって生成されたメタ情報を前記サーバに送信するための手段をさらに備える、請求項22に記載のモバイルコンピューティングデバイス。
【請求項２５】
ユーザエージェントを使用してウェブページを処理することに関するメタ情報を収集するための手段と、
前記収集されたメタ情報に基づいて前記ユーザエージェントに関する前記ウェブページのマニフェストを生成するための手段であって、前記マニフェストが前記ユーザエージェントによって前記ウェブページをレンダリングすることに対応するウェブページオブジェクト情報を含む手段と、
前記生成されたマニフェストを使用して、前記ウェブページを前記ユーザエージェントによってモバイルコンピューティングデバイス上にロードするのに必要なリソースに優先順位を割り当てるための手段であって、前記リソースが前記リソースに割り当てられた優先順位に基づいて決定された順序で前記モバイルコンピューティングデバイス上で受信される手段とを備えるサーバ。
【請求項２６】
前記生成されたマニフェストを使用して前記ウェブページを前記ユーザエージェントによってモバイルコンピューティングデバイス上にロードするのに必要なリソースに優先順位を割り当てるための手段は、前記生成されたマニフェストを前記モバイルコンピューティングデバイスに関する情報によって評価できるように前記モバイルコンピューティングデバイスに送信するための手段を備える、請求項25に記載のサーバ。
【請求項２７】
前記ウェブページのレンダリング時に生成された前記メタ情報を前記モバイルコンピューティングデバイスから受信するための手段をさらに備える、請求項25に記載のサーバ。
【請求項２８】
ユーザエージェントを使用してウェブページを処理することに関するメタ情報を収集するための手段は、前記サーバ上で様々な種類のユーザエージェントを使用して前記ウェブページを処理することに関する前記メタ情報を生成するための手段を備える、請求項25に記載のサーバ。
【請求項２９】
ユーザエージェントを使用してウェブページを処理することに関するメタ情報を収集するための手段は、様々な種類のユーザエージェントを使用して前記ウェブページを処理することに関する前記メタ情報を複数のモバイルコンピューティングデバイスから受信するための手段を備え、前記サーバは、送信される前記受信されたメタ情報に基づいて前記様々な種類のユーザエージェントの各々について前記ウェブページの個々のマニフェストを生成するための手段をさらに備える、請求項25に記載のサーバ。
【請求項３０】
前記生成されたマニフェストを使用して、前記ウェブページを前記ユーザエージェントによってモバイルコンピューティングデバイス上にロードするのに必要なリソースに優先順位を割り当てるための手段は、
前記モバイルコンピューティングデバイスに関する情報を受信するための手段と、
前記ウェブページおよび前記モバイルコンピューティングデバイス上に実装された前記ユーザエージェントの前記生成されたマニフェストを取得するための手段と、
前記取得されたマニフェストを使用して前記モバイルコンピューティングデバイスに関する前記受信された情報を評価するための手段と、
前記ウェブページを前記モバイルコンピューティングデバイス上にロードするのに必要な前記リソースに関する前記優先順位および適切なオブジェクトフォーマットを特定するための手段と、
前記ウェブページを前記モバイルコンピューティングデバイス上にロードするのに必要な前記リソースに関する前記特定された優先順位および前記適切なオブジェクトフォーマットを前記モバイルコンピューティングデバイスに送信するための手段とを備える、請求項25に記載のサーバ。
【請求項３１】
前記リソースを前記マニフェストに基づく前記順序で前記モバイルコンピューティングデバイスにプッシュするための手段をさらに備える、請求項25に記載のサーバ。
【請求項３２】
前記リソースを前記モバイルコンピューティングデバイスの所望のフォーマットにコード変換するための手段をさらに備える、請求項31に記載のサーバ。
【請求項３３】
プロセッサ実行可能ソフトウェア命令を記憶した非一時的プロセッサ可読記憶媒体であって、前記プロセッサ実行可能ソフトウェア命令が、プロセッサに、
ウェブページおよびモバイルコンピューティングデバイス上に実装されるユーザエージェントを特定する情報をサーバに送信すること、
前記ウェブページおよび前記モバイルコンピューティングデバイス上に実装された前記ユーザエージェントのマニフェストを前記サーバから受信することであって、前記マニフェストが前記ユーザエージェントによって前記ウェブページをレンダリングすることに対応するウェブページオブジェクト情報を含むこと、
前記マニフェストを前記モバイルコンピューティングデバイス上に記憶された情報と比較することによって、前記ウェブページを前記ユーザエージェントによってロードするのに必要なリソースを特定すること、
前記マニフェストに基づいて前記特定されたリソースに優先順位を割り当てること、
前記リソースを、前記リソースに割り当てられた優先順位に基づいて決定された順序で受信すること、ならびに
前記受信されたリソースを使用して前記ウェブページをレンダリングすることを含む動作を実行させる非一時的プロセッサ可読記憶媒体。
【請求項３４】
前記記憶されたプロセッサ実行可能ソフトウェア命令は、前記プロセッサに、前記リソースを、前記リソースに割り当てられた優先順位に基づいて決定された順序で受信することが、前記リソースを前記マニフェストに基づく前記順序で第2のサーバからダウンロードすることを要求することを含むような動作を実行させるように構成される、請求項33に記載の非一時的プロセッサ可読記憶媒体。
【請求項３５】
前記記憶されたプロセッサ実行可能ソフトウェア命令は、前記プロセッサに、前記ウェブページのレンダリング時に前記モバイルコンピューティングデバイスによって生成されたメタ情報を前記サーバに送信することをさらに含む動作を実行させるように構成される、請求項33に記載の非一時的プロセッサ可読記憶媒体。
【請求項３６】
サーバプロセッサ実行可能命令を記憶した非一時的サーバ可読記憶媒体であって、前記サーバプロセッサ実行可能命令が、サーバプロセッサに、
ユーザエージェントを使用してウェブページを処理することに関するメタ情報を収集すること、
前記収集されたメタ情報に基づいて前記ユーザエージェントに関する前記ウェブページのマニフェストを生成することであって、前記マニフェストが前記ユーザエージェントによって前記ウェブページをレンダリングすることに対応するウェブページオブジェクト情報を含むこと、および
前記生成されたマニフェストを使用して、前記ウェブページを前記ユーザエージェントによってモバイルコンピューティングデバイス上にロードするのに必要なリソースに優先順位を割り当てることであって、前記リソースが前記リソースに割り当てられた優先順位に基づいて決定された順序で前記モバイルコンピューティングデバイス上で受信されることを含む動作を実行させるように構成される非一時的サーバ可読記憶媒体。
【請求項３７】
前記記憶されたサーバプロセッサ実行可能命令は、前記サーバプロセッサに、前記生成されたマニフェストを使用して前記ウェブページを前記ユーザエージェントによってモバイルコンピューティングデバイス上にロードするのに必要なリソースに優先順位を割り当てることが、前記生成されたマニフェストを前記モバイルコンピューティングデバイスに関する情報によって評価できるように前記モバイルコンピューティングデバイスに送信することを含むような動作を実行させるように構成される、請求項36に記載の非一時的サーバ可読記憶媒体。
【請求項３８】
前記記憶されたサーバプロセッサ実行可能命令は、前記サーバプロセッサに、前記ウェブページのレンダリング時に生成された前記メタ情報を前記モバイルコンピューティングデバイスから受信することをさらに含む動作を実行させるように構成される、請求項36に記載の非一時的サーバ可読記憶媒体。
【請求項３９】
前記記憶されたサーバプロセッサ実行可能命令は、前記サーバプロセッサに、ユーザエージェントを使用してウェブページを処理することに関するメタ情報を収集することがサーバ上で様々な種類のユーザエージェントを使用して前記ウェブページを処理することに関する前記メタ情報を生成することを含むような動作を実行させるように構成される、請求項36に記載の非一時的サーバ可読記憶媒体。
【請求項４０】
前記記憶されたサーバプロセッサ実行可能命令は、前記サーバプロセッサに、
ユーザエージェントを使用してウェブページを処理することに関するメタ情報を収集することが様々な種類のユーザエージェントを使用して前記ウェブページを処理することに関する前記メタ情報を複数のモバイルコンピューティングデバイスから受信することを含むような動作であって、かつ
送信される前記受信されたメタ情報に基づいて前記様々な種類のユーザエージェントの各々について前記ウェブページの個々のマニフェストを生成することをさらに含む動作を実行させるように構成される、請求項36に記載の非一時的サーバ可読記憶媒体。
【請求項４１】
前記記憶されたサーバプロセッサ実行可能命令は、前記生成されたマニフェストを使用して前記ウェブページを前記ユーザエージェントによってモバイルコンピューティングデバイス上にロードするのに必要なリソースに優先順位を割り当てることが、前記サーバプロセッサに、
前記モバイルコンピューティングデバイスに関する情報を受信することと、
前記ウェブページおよび前記モバイルコンピューティングデバイス上に実装された前記ユーザエージェントの前記生成されたマニフェストを取得することと、
前記取得されたマニフェストを使用して前記モバイルコンピューティングデバイスに関する前記受信された情報を評価することと、
前記ウェブページを前記モバイルコンピューティングデバイス上にロードするのに必要な前記リソースに関する前記優先順位および適切なオブジェクトフォーマットを特定することと、
前記ウェブページを前記モバイルコンピューティングデバイス上にロードするのに必要な前記リソースに関する前記特定された優先順位および前記適切なオブジェクトフォーマットを前記モバイルコンピューティングデバイスに送信することとを含むような動作を実行させるように構成される、請求項36に記載の非一時的サーバ可読記憶媒体。
【請求項４２】
前記記憶されたサーバプロセッサ実行可能命令は、前記サーバプロセッサに、前記リソースを前記マニフェストに基づく前記順序で前記モバイルコンピューティングデバイスにプッシュすることをさらに含む動作を実行させるように構成される、請求項41に記載の非一時的サーバ可読記憶媒体。
【請求項４３】
前記記憶されたサーバプロセッサ実行可能命令は、前記サーバプロセッサに、前記リソースを前記モバイルコンピューティングデバイスの所望のフォーマットにコード変換することをさらに含む動作を実行させるように構成される、請求項42に記載の非一時的サーバ可読記憶媒体。
【請求項４４】
サーバと、
複数のモバイルコンピューティングデバイスとを備え、
前記複数のモバイルコンピューティングデバイスにおける各モバイルコンピューティングデバイスが、
メモリと、
前記メモリに結合され、
ユーザエージェントによってウェブページを処理することに関するメタ情報を生成すること、
前記生成されたメタ情報を前記サーバに送信し、かつ前記ウェブページを処理する際に使用される前記ユーザエージェントを特定すること、
前記ウェブページをマニフェストに基づいて決定された順序で前記ユーザエージェントによってロードするためのリソースを受信すること、および
前記受信されたリソースを使用して前記ウェブページをレンダリングすることを含む動作を実行するためのプロセッサ実行可能命令を有するように構成されたプロセッサとを備え、
前記サーバは、
メモリと、
前記メモリに結合され、
前記ウェブページを前記ユーザエージェントによってロードすることに基づく前記メタ情報を前記複数のモバイルコンピューティングデバイスから受信すること、および
前記ウェブページを前記ユーザエージェントによって、前記受信されたメタ情報に基づいてロードするのに必要な前記リソースに優先順位を割り当てるための情報を提供するように構成された前記マニフェストを生成することであって、前記マニフェストは前記ユーザエージェントによって前記ウェブページをレンダリングすることに対応するウェブページオブジェクト情報を含むことを含む動作を実行するためのサーバプロセッサ実行可能命令を有するように構成されたサーバプロセッサとを備えるシステム。
【請求項４５】
各モバイルコンピューティングデバイスの前記プロセッサは、前記ウェブページのレンダリング時に生成された前記メタ情報を前記サーバに送信することをさらに含む動作を実行するためのプロセッサ実行可能な命令を有するように構成され、かつ
前記サーバプロセッサは、前記ウェブページのレンダリング時に生成された前記メタ情報を受信することをさらに含む動作を実行するためのサーバプロセッサ実行可能命令を有するように構成される、請求項44に記載のシステム。
【請求項４６】
各モバイルコンピューティングデバイスの前記プロセッサは、
前記ウェブページおよび前記ユーザエージェントを特定する情報を前記サーバに送信すること、
前記マニフェストを前記サーバから受信すること、
前記マニフェストをローカルに記憶された情報と比較することによって、前記ウェブページを前記ユーザエージェントによってロードするのに必要な前記リソースを特定すること、ならびに
前記受信されたマニフェストに基づいて前記特定されたリソースに前記優先順位を割り当てることをさらに含む動作を実行するためのプロセッサ実行可能命令を有するように構成され、
各モバイルコンピューティングデバイスの前記プロセッサは、前記ウェブページを前記ユーザエージェントによって、マニフェストに基づいて決定された順序でロードするためのリソースを受信することが、
前記ウェブページを前記ユーザエージェントによって、前記割り当てられた優先順位に基づく前記順序でロードするための前記リソースを要求すること、および
前記リソースを受信することを含むようなプロセッサ実行可能命令を有するように構成され、
前記サーバは、
前記ウェブページおよび前記ユーザエージェントを特定する前記情報を前記複数のモバイルコンピューティングデバイスの各々から受信すること、
前記ウェブページおよび前記複数のモバイルコンピューティングデバイスのうちの各々上に実装された前記ユーザエージェントの前記マニフェストを取得すること、ならびに
前記取得されたマニフェストを前記複数のモバイルコンピューティングデバイスのうちの各々に送信することをさらに含む動作を実行するためのサーバプロセッサ実行可能命令を有するように構成される請求項44に記載のシステム。
【請求項４７】
各モバイルコンピューティングデバイスの前記プロセッサは、前記ウェブページを前記ユーザエージェントによって、前記割り当てられた優先順位に基づく前記順序でロードするためのリソースを要求することが、前記リソースを、前記マニフェストに基づいて決定された前記順序で第2のサーバからダウンロードすることを要求することを含むようなプロセッサ実行可能命令を有するように構成される、請求項46に記載のシステム。
【請求項４８】
サーバと、
モバイルコンピューティングデバイスとを備え、
前記サーバは、
メモリと、
前記メモリに結合され、
ユーザエージェントを使用してウェブページを処理することに関するメタ情報を収集すること、
前記収集されたメタ情報に基づいてマニフェストを生成することであって、前記マニフェストは、前記ウェブページを前記ユーザエージェントによってロードするのに必要なリソースに優先順位を割り当てるための情報を提供するように構成され、前記ウェブページを前記ユーザエージェントによってレンダリングすることに対応するウェブページオブジェクト情報を含むこと、および
前記生成されたマニフェストを使用して、前記ウェブページを前記ユーザエージェントによって前記モバイルコンピューティングデバイス上にロードするのに必要なリソースに優先順位を割り当てることを含む動作を実行するためのサーバプロセッサ実行可能命令を有するように構成されたサーバプロセッサとを備え、
前記モバイルコンピューティングデバイスは、
メモリと、
前記メモリに結合され、
前記ウェブページを前記マニフェストに基づいて決定された順序で前記ユーザエージェントによってロードするためのリソースを受信すること、および
前記受信されたリソースを使用して前記ウェブページをレンダリングすることを含む動作を実行するためのプロセッサ実行可能命令を有するように構成されたデバイスプロセッサとを備えるシステム。
【請求項４９】
前記サーバプロセッサは、ユーザエージェントを使用してウェブページを処理することに関するメタ情報を収集することが前記サーバ上で様々な種類のユーザエージェントを使用して前記ウェブページを処理することに関する前記メタ情報を生成することを含むような動作を実行するためのサーバプロセッサ実行可能命令を有するように構成される、請求項48に記載のシステム。
【請求項５０】
各々が、様々な種類のユーザエージェントを使用して前記ウェブページを処理することに応答して前記メタ情報を前記サーバに送信するように構成された複数のモバイルコンピューティングデバイスをさらに備え、
前記サーバプロセッサは、ユーザエージェントを使用してウェブページを処理することに関するメタ情報を収集することが、様々な種類のユーザエージェントを使用して前記ウェブページを処理することに関する前記メタ情報を前記複数のモバイルコンピューティングデバイスから受信することを含むような動作を実行するためのサーバプロセッサ実行可能命令を有するように構成され、かつ
前記サーバプロセッサは、送信される前記受信されたメタ情報に基づいて前記様々な種類のユーザエージェントの各々について前記ウェブページの個々のマニフェストを生成することをさらに含む動作を実行するためのサーバプロセッサ実行可能命令を有するように構成される、請求項48に記載のシステム。
【請求項５１】
前記デバイスプロセッサは、前記モバイルコンピューティングデバイスに関する情報を前記サーバに送信することをさらに含む動作を実行するためのプロセッサ実行可能命令を有するように構成され、
前記デバイスプロセッサは、前記ウェブページを前記ユーザエージェントによって、前記マニフェストに基づいて決定された順序でロードするためのリソースを受信することが、
前記ウェブページを前記ユーザエージェントによって、前記サーバによって送信された前記優先順位および適切なオブジェクトフォーマットに基づく前記順序でロードするための前記リソースを受信すること、ならびに
前記リソースを受信することを含むような動作を実行するためのプロセッサ実行可能命令を有するように構成され、
前記サーバプロセッサは、前記生成されたマニフェストを使用して、前記ウェブページを前記ユーザエージェントによって前記モバイルコンピューティングデバイス上にロードするのに必要なリソースに優先順位を割り当てることが、
前記モバイルコンピューティングデバイスに関する前記情報を受信すること、
前記ウェブページおよび前記モバイルコンピューティングデバイス上に実装された前記ユーザエージェントの前記生成されたマニフェストを取得すること、
前記取得されたマニフェストを使用して前記モバイルコンピューティングデバイスに関する前記受信された情報を評価すること、
前記サーバにおいて、前記ウェブページを前記ユーザエージェントによって前記モバイルコンピューティングデバイス上にロードするのに必要な前記リソースに関する前記優先順位および前記適切なオブジェクトフォーマットを特定すること、ならびに
前記ウェブページを前記ユーザエージェントによって前記モバイルコンピューティングデバイス上にロードするのに必要な前記リソースに関する前記特定された優先順位および前記適切なオブジェクトフォーマットを前記モバイルコンピューティングデバイスに送信することを含むような動作を実行するためのサーバプロセッサ実行可能命令を有するように構成される、請求項48に記載のシステム。
【請求項５２】
前記サーバプロセッサは、前記リソースを前記マニフェストに基づいて前記サーバによって決定された前記順序で前記モバイルコンピューティングデバイスにプッシュすることをさらに含む動作を実行するためのサーバプロセッサ実行可能命令を有するように構成される、請求項48に記載のシステム。
【請求項５３】
前記サーバプロセッサは、前記リソースを前記モバイルコンピューティングデバイスの所望のフォーマットにコード変換することをさらに含む動作を実行するためのサーバプロセッサ実行可能命令を有するように構成される、請求項52に記載のシステム。
【国際調査報告】
2015513144.tif 000023