JP5187980B2 - 1つ又は複数のアーカイブに小さなオブジェクトをパッケージするようにブラウザとサーバとの間で協働するための装置、システム、及び方法 - Google Patents

1つ又は複数のアーカイブに小さなオブジェクトをパッケージするようにブラウザとサーバとの間で協働するための装置、システム、及び方法 Download PDF

Info

Publication number
JP5187980B2
JP5187980B2 JP2010522311A JP2010522311A JP5187980B2 JP 5187980 B2 JP5187980 B2 JP 5187980B2 JP 2010522311 A JP2010522311 A JP 2010522311A JP 2010522311 A JP2010522311 A JP 2010522311A JP 5187980 B2 JP5187980 B2 JP 5187980B2
Authority
JP
Japan
Prior art keywords
archives
archive
browser
web page
web
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.)
Expired - Fee Related
Application number
JP2010522311A
Other languages
English (en)
Other versions
JP2010537337A (ja
Inventor
チェン、ロン
ディープ、キャサリン
ラン、ドン、ジュン
ルー、シェン
オスティディーク、ルイス
ワン、チン、ボー
イェ、メン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
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
Priority claimed from US11/847,299 external-priority patent/US20090063622A1/en
Priority claimed from US11/847,287 external-priority patent/US7937478B2/en
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Publication of JP2010537337A publication Critical patent/JP2010537337A/ja
Application granted granted Critical
Publication of JP5187980B2 publication Critical patent/JP5187980B2/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
    • 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/9574Browsing optimisation, e.g. caching or content distillation of access to content, e.g. by caching

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Transfer Between Computers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Description

本発明は、ウェブ・ページに関し、より具体的には、ウェブ・ページのロード時間を改善することに関する。
企業及び個人のアプリケーション開発のための標準プラットフォームとして、インターネットが浮上してきた。操作性を向上させたインターネット・アプリケーションの構築に対する需要が、より良好なユーザ体験を表現するマルチメディア技術の採用を拡大させてきた。結果として、標準的なウェブ・ページは、通常、大量の画像リソース、実行可能なスクリプト、及びスタイル定義を含む。こうしたリソースの各々のファイル・サイズは小さく、通常は1Kに満たない。こうした小さなリソースは、ウェブ・サーバに配置されたときには、高いオーバーヘッド要件を有するのが典型的であり、相対的に高いネットワーク帯域幅及びサーバ作業負荷を要求することになる。
リソースのネットワーク・オーバーヘッド要件として、プロトコル・ヘッダ、HTTPヘッダ、TCPヘッダ、及びIPヘッダが挙げられる。平均的なHTTPヘッダは、単一のHTTP要求又は応答について300バイトより大きく、従って、1回の要求/応答の対話には600から700バイトより大きいHTTPヘッダが存在する。上述のように、多くのウェブ・ページにおけるオブジェクトのサイズは既に非常に小さく、従って、HTTPヘッダの不必要なコストは顕著なものである。オブジェクトが小さいほど、オーバーヘッドの比率は大きくなる。各々の要求のオーバーヘッド要件に寄与するヘッダは、現在のインターネット構造の根本的な部分であるため、これらを減少させる手段は殆どない。
オーバーヘッドによって生じる遅延に加えて、ブラウザは、ウェブ・ページにアクセスするときに、ウェブ・ページ内の各々のオブジェクトについて要求を送り、各々のオブジェクトについて応答を待つ。このことにより、ヘッダなどによって生じるオーバーヘッド遅延を悪化させる別の「往復時間」が生じる。ウェブ・ページが多数の小さなオブジェクトから構成されているときには、オブジェクトの待ち時間は累積し、さらにロードを遅らせる。
上記の議論から、ウェブ・ページのロード時間を低減するための装置、システム、及び方法に対する必要性が存在することは明らかである。有利なことに、このような装置、システム、及び方法は、ウェブ・ページのロード時間を低減するために協働して動作するブラウザとウェブ・サーバとの両方を含むことが好ましい。
本発明は、当該技術分野の現在の状態に対応して開発されたものであり、特に、現在利用可能なウェブ・ページ送信技術によっては未だ完全に解決されていない、当該技術分野における課題及び必要性に対応して開発されたものである。従って、本発明は、当該技術分野における上述の欠点の多く又は全てを克服する、ウェブ・ページのロード時間を低減するための装置、システム、及び方法を提供しようとするものである。
本発明のシステムは、ウェブ・ページのロード時間を低減するために提示される。本システムは、ウェブ・ブラウザ、ウェブ・サーバ、及びアーカイバにより具体化することができる。具体的には、本システムは、1つの実施形態においては、ウェブ・サーバからウェブ・ページを要求し、ウェブ・ページにおいて参照される1つ又は複数のアーカイブ可能オブジェクトを含む1つ又は複数のアーカイブを受信し、1つ又は複数のアーカイブからのアーカイブ可能オブジェクトを用いてウェブ・ページをレンダリングするように設定されたウェブ・ブラウザを含む。ウェブ・サーバは、ブラウザからウェブ・ページについての要求を受信し、1つ又は複数のアーカイブを配信するように設定することができ、1つ又は複数のアーカイブの各々は、ウェブ・ページ内で参照される複数のアーカイブ可能オブジェクトを含む。アーカイバは、ウェブ・ページのための1つ又は複数のアーカイブついてアーカイブ可能オブジェクトの選択を最適化し、アーカイブ可能オブジェクトの最適化された選択から1つ又は複数のアーカイブを生成するように設定することができる。
本システムにおけるブラウザは、ブラウザが1つ又は複数のアーカイブを受信するように設定されていることを示すインジケータを含むブラウザ・パラメータを送るようにさらに設定することができる。別の実施形態においては、ブラウザは、そのブラウザについて利用可能な接続の最大数を受信するようにブラウザが設定されていることを示すインジケータを含むブラウザ・パラメータを送る。
本システムの特定の実施形態においては、アーカイバは、1つ又は複数のアーカイブを配信するのに用いる接続の最適数を決定することにより、ブラウザの能力に適合するアーカイブ応答パラメータを決定するようにさらに設定される。さらなる実施形態においては、アーカイバは、1つ又は複数のアーカイブを配信するのに用いる接続の決定された最適数と等しい数のアーカイブを生成する。別の実施形態においては、アーカイバは、アーカイバが1つ又は複数のアーカイブを生成するように設定されていることを示すインジケータとウェブ・サーバのための利用可能な接続とを含むアーカイブ応答パラメータをブラウザに送信することと、1つ又は複数のアーカイブを配信するのに用いる接続の最大数を決定することとによって、ブラウザの能力に適合するアーカイブ応答パラメータを決定する。
本システムの1つの実施形態においては、ブラウザは、ウェブ・サーバとの以前の対話からブラウザ・キャッシュに存在する、ウェブ・ページに関連する予めキャッシュされたオブジェクトのリストを送信することによって、ブラウザ・パラメータをウェブ・サーバに送るようにさらに設定される。別の実施形態においては、アーカイバは、ブラウザ・キャッシュに存在する予めキャッシュされたオブジェクトのリストを、ウェブ・ページ内で参照されるアーカイブ可能オブジェクトと比較し、予めキャッシュされたオブジェクトのリストに存在しないアーカイブ可能オブジェクトを判別し、1つ又は複数のアーカイブのためにブラウザ・キャッシュに存在しないアーカイブ可能オブジェクトを選択することによって、ブラウザの能力に適合するアーカイブ応答パラメータを決定する。
ウェブ・ページのロード時間を低減するためにプログラムされたコンピュータ使用可能プログラム・コードを有するコンピュータ可読媒体を含むコンピュータ・プログラム製品が提供される。本コンピュータ・プログラム製品は、1つの実施形態においては、ブラウザのために1つ又は複数のアーカイブ及び利用可能な接続を受信するようにブラウザが設定されていることを示すインジケータを含むブラウザ・パラメータを受信することを含む動作のための命令を含む。本コンピュータ・プログラム製品は、1つ又は複数のアーカイブを配信するのに用いる接続の数を決定し、ウェブ・ページのための1つ又は複数のアーカイブについてアーカイブ可能オブジェクトの選択を最適化する動作のための命令をさらに含むことができる。
特定の実施形態においては、本コンピュータ・プログラム製品は、アーカイブ可能オブジェクトの最適化された選択を含む1つ又は複数のアーカイブを配信するのに用いる接続の数と等しい数のアーカイブを生成するための命令を含む。別の実施形態においては、本コンピュータ・プログラム製品は、1つ又は複数のアーカイブを配信するための動作を含み、1つ又は複数のアーカイブの各々は、ウェブ・ページ内で参照される複数のアーカイブ可能オブジェクトを含む。1つの実施形態においては、アーカイブ可能オブジェクトの選択を最適化することは、アーカイバによって生成される1つ又は複数のアーカイブに含めるためのアーカイブ可能オブジェクトを選択することをさらに含み、アーカイブの内容は、オブジェクト優先順位付けに従ってウェブ・ページからの1つ又は複数のアーカイブ可能オブジェクトを含む。
本コンピュータ・プログラム製品の1つの実施形態においては、アーカイブ可能オブジェクトの選択を最適化することは、ウェブ・ページ内で参照されるオブジェクトを判別するために、ウェブ・ページの構造を示す文書オブジェクト・モデル木(DOMツリーまたはDOM木)を走査することをさらに含む。別の実施形態においては、アーカイブ可能オブジェクトの選択を最適化することは、1つ又は複数の優先順位付け基準に従ってアーカイブ可能オブジェクトに優先順位を割り当てることをさらに含む。優先順位付け基準は、DOM木におけるオブジェクトの下位オブジェクトの数を含むことができる。優先順位付け基準は、文書オブジェクト・モデル木におけるオブジェクトの階層レベルを含むことができる。
本コンピュータ・プログラム製品の1つの実施形態においては、1つ又は複数のアーカイブに含めるためのアーカイブ可能オブジェクトを選択することは、オブジェクトのサイズが閾値サイズより小さいという判定に応答して、含めるためのアーカイブ可能オブジェクトを選択することを含む。別の実施形態においては、1つ又は複数のアーカイブに含めるためのアーカイブ可能オブジェクトを選択することは、ウェブ・サーバとの以前の対話からブラウザ・キャッシュに存在する予めキャッシュされたアーカイブ可能オブジェクトのリストに、アーカイブ可能オブジェクトがないという判定に応答して、含めるオブジェクトを選択することを含む。
本コンピュータ・プログラム製品の1つの実施形態においては、多数のアーカイブを生成することは、1つ又は複数のアーカイブの中のアーカイブ可能オブジェクトを優先順位に従ってソートして、優先順位のより高いアーカイブ可能オブジェクトが優先順位のより低いアーカイブ可能オブジェクトよりアーカイブの先頭に近くなるようにすることをさらに含む。多数のアーカイブを生成することは、選択されたアーカイブ可能オブジェクトを優先順位に従ってソートすることと、各々のアーカイブについて容器(bin)を作成することと、容器内のオブジェクトの合計サイズが目標サイズより小さいままであることに応答して、ソートされた順序に従って各々の容器にアーカイブ可能オブジェクトを追加することとを含むことができる。1つの実施形態においては、多数のアーカイブを生成することは、1つ又は複数のアーカイブを圧縮することをさらに含む。
コンピュータ可読コードをコンピュータ・システムに組み込むことを含む、コンピュータ・インフラストラクチャを配置するための本発明の方法がさらに提示され、本コンピュータ・システムと組み合わされたコードは、ウェブ・サーバからウェブ・ページを要求することが可能であり、ウェブ・サーバからウェブ・ページを要求することは、ブラウザがアーカイブを受信できることを示すインジケータを含むブラウザ・パラメータをウェブ・サーバに送ることを含む。1つの実施形態においては、本コンピュータ・システムと組み合わされたコードは、さらに、ウェブ・サーバから、ウェブ・ページによって参照される複数のアーカイブ可能オブジェクトを各々が含む1つ又は複数のアーカイブを受信することができる。別の実施形態においては、本コンピュータ・システムと組み合わされたコードは、1つ又は複数のアーカイブからの複数のアーカイブ可能オブジェクトを用いて、ウェブ・ページをレンダリングすることができる。
別の実施形態においては、本コンピュータ・システムと組み合わされたコードは、ウェブ・サーバから、ウェブ・サーバがアーカイブを配信できることを示すインジケータを含むアーカイブ応答パラメータを受信することができる。本コンピュータ・システムと組み合わされたコードはさらに、1つの実施形態においては、ブラウザがウェブ・ページを受信するのに利用可能な接続の数を決定することができる。別の実施形態においては、本コンピュータ・システムと組み合わされたコードは、ブラウザがウェブ・ページの一部を受信するのに利用可能な接続の数を示す接続インジケータを含むブラウザ・パラメータを送ることができる。
本方法はさらに、ウェブ・サーバからのアーカイブ応答パラメータとブラウザが利用可能な接続の数とに従って、ウェブ・サーバとの接続を確立することを含むことができる。別の実施形態においては、本方法は、ブラウザがウェブ・サーバとの以前の対話からキャッシュに保持したアーカイブ可能オブジェクトのリストを送信することを含む。本方法は、1つ又は複数のアーカイブからアーカイブ可能オブジェクトを抽出することをさらに含むことができる。
特定の実施形態においては、ウェブ・ページをレンダリングすることは、アーカイブ可能オブジェクトをキャッシュに格納することをさらに含む。別の実施形態においては、ウェブ・ページをレンダリングすることは、アーカイブからのアーカイブ可能オブジェクトを表示装置に表示することをさらに含む。更なる実施形態においては、ウェブ・ページをレンダリングすることは、圧縮されたアーカイブを解凍することをさらに含む。
ウェブ・ページのロード時間を低減するための方法がさらに提供される。開示された実施形態における本方法は、説明される装置及びシステムの動作に関して上述の機能を実行するのに必要なステップを実質的に含む。1つの実施形態においては、本方法は、ブラウザがウェブ・ページを受信するのに利用可能な接続の数を決定することを含む。本方法は、ウェブ・サーバからウェブ・ページを要求することをさらに含むことができる。ウェブ・ページを要求することは、ブラウザがアーカイブを受信できることを示すインジケータとブラウザがウェブ・ページの一部を受信するのに利用可能な接続の数を示すインジケータとを含む、ブラウザ・パラメータを送ることを含むことができる。
1つの実施形態においては、本方法は、ウェブ・サーバから、ウェブ・サーバがアーカイブを配信できることを示すインジケータを含むアーカイブ応答パラメータを受信することを含む。本方法はさらに、ウェブ・サーバからのアーカイブ応答パラメータとブラウザ・パラメータとに従って、ウェブ・サーバとの1つ又は複数の接続を確立することを含むことができる。1つの実施形態においては、本方法は、ウェブ・サーバから、各々がウェブ・ページに関連付けられた複数のアーカイブ可能オブジェクトを含む1つ又は複数のアーカイブを受信することを含む。本方法はさらに、1つ又は複数のアーカイブからの複数のアーカイブ可能オブジェクトを用いてウェブ・ページをレンダリングすることを含むことができる。
ウェブ・ページのロード時間を低減するためにプログラムされたコンピュータ使用可能プログラム・コードを有するコンピュータ可読媒体を含むコンピュータ・プログラム製品が、さらに提供される。本コンピュータ・プログラム製品の動作は、1つの実施形態においては、生成するアーカイブの数を決定することと、アーカイバにより生成される1つ又は複数のアーカイブに含まれるアーカイブ可能オブジェクトを選択することとを含み、選択されたアーカイブ可能オブジェクトは、オブジェクト優先順位付けに従ってウェブ・ページに関連付けられた1つ又は複数のアーカイブ可能オブジェクトを含み、アーカイブ可能オブジェクトは、そのオブジェクトが閾値を下回るサイズを有するという判定に応答して、選択される。1つの実施形態においては、本コンピュータ・プログラム製品は、ウェブ・ページのための1つ又は複数のアーカイブについて選択されたアーカイブ可能オブジェクトを最適化する動作を含む。本コンピュータ・プログラム製品はまた、決定されたアーカイブの数と等しい数のアーカイブを生成するための動作を含むことができ、アーカイブはアーカイブ可能オブジェクトの最適化された選択を含む。
本明細書の全体を通じて、特徴、利点、又は同様の用語への言及は、本発明を用いて実現することができる全ての特徴及び利点が、本発明のいずれかの単一の実施形態に存在すべきであること又は存在することを意味するものではない。むしろ、特徴及び利点に言及する用語は、一実施形態との関連で説明される特定の特徴、利点、又は特性が本発明の少なくとも1つの実施形態に含まれることを意味するものと理解される。よって、特徴及び利点、並びに類似の用語についての説明は、本明細書の全体を通じて、必ずというわけではないが同一の実施形態を指すことがある。
さらに、本発明の説明された特徴、利点、及び特性は、いずれかの適切な方法で1つ又は複数の実施形態に組み合わせることができる。当業者であれば、本発明は、特定の実施形態の1つ又は複数の特定の特徴又は利点がなくとも実施できることが判るであろう。他の例においては、本発明の実施形態の全てに存在するとは限らない付加的な特徴及び利点が、特定の実施形態において認識されることがある。
本発明のこれらの特徴及び利点は、以下の説明及び特許請求の範囲から、より完全に明らかとなるか、又は、以下に示される本発明の実施から知ることができる。
本発明による、ウェブ・ページのダウンロード時間を改善するためのシステムの1つの実施形態を示す概略的なブロック図である。 本発明によるアーカイバの1つの実施形態を示す概略的なブロック図である。 本発明による選択モジュールの1つの実施形態を示す概略的なブロック図である。 本発明による文書オブジェクト・モデル木及び順序付けされたアーカイブ可能オブジェクトの1つの実施形態を示す概略的なブロック図である。 本発明によるアーカイブ生成モジュールの1つの実施形態を示す概略的なブロック図である。 本発明によるアーカイブ対応ブラウザの1つの実施形態を示す概略的なブロック図である。 本発明によるウェブ・サーバの1つの実施形態を示す概略的なブロック図である。 本発明による、ウェブ・ページのダウンロード時間を改善するための方法の1つの実施形態を示す概略的なフローチャート図である。 本発明による、ウェブ・ブラウザにおけるウェブ・ページのダウンロード時間を改善するための方法の1つの実施形態を示す概略的なフローチャート図である。 本発明による、ウェブ・サーバにおけるウェブ・ページのダウンロード時間を改善するための方法の1つの実施形態を示す概略的なフローチャート図である。
ここで、本発明の実施形態が、添付の図面を参照して例として説明される。
本明細書において説明される機能ユニットの多くは、それらの実装の独立性を特に強調するために、モジュールと表記されている。例えば、モジュールは、カスタムVLSI回路若しくはゲート・アレイを含むハードウェア回路、論理チップなどの既製の半導体、トランジスタ、又は他の別個のコンポーネントとして実装することができる。モジュールは、フィールド・プログラマブル・ゲート・アレイ、プログラマブル・アレイ論理、プログラマブル論理装置などといったプログラム可能なハードウェア・デバイスとして実装することもできる。
モジュールは、異なる形態のメモリと通信する種々のタイプのプロセッサによって実行するためのソフトウェアとして実装することもできる。例えば、実行可能コードの特定のモジュールは、例えばオブジェクト、手順、又は機能として編成することができる、コンピュータ命令の1つ又は複数の物理ブロック又は論理ブロックを含むことができる。それにもかかわらず、特定のモジュールの実行ファイルは、物理的に一緒に配置される必要はなく、論理的に結合されたときにモジュールを含み該モジュールの前述の目的を達成する、異なる場所に格納された別々の命令を含むことができる。
実際には、実行可能コードのモジュールは、単一の命令又は多数の命令とすることができ、幾つかの異なるコード・セグメントにわたって、異なるプログラムの間で、及び幾つかのメモリ・デバイス間にわたって、分散させることもできる。同様に、動作データは、本明細書においてはモジュール内部において特定して示すことがあり、いずれかの適切な形態で組み込み、いずれかの適切なタイプのデータ構造内で編成することができる。動作データは、単一のデータ・セットとしてまとめるか、又は、異なる記憶装置を含む異なる場所にわたって分散させることができ、システム又はネットワーク上の単なる電気信号として、少なくとも部分的に存在することができる。
本明細書の全体を通じて、「1つの実施形態」、「一実施形態」、又は同様の用語への言及は、その実施形態に関連して説明された特定の特徴、構造、又は特性が、本発明の少なくとも1つの実施形態に含まれていることを意味する。従って、「1つの実施形態においては」、「一実施形態においては」といった語句、又は同様の用語の出現は、本明細書の全体を通じて、必ずというわけではないが全て同一の実施形態を指すことがある。
信号支持媒体への言及は、信号を生成するか、信号を生成させるか、又はデジタル処理装置上で機械可読命令のプログラムを実行させることができるいずれかの形態をとることができる。信号支持媒体は、伝送線、コンパクト・ディスク、デジタル・ビデオ・ディスク、磁気テープ、ベルヌーイ・ドライブ、磁気ディスク、パンチ・カード、フラッシュ・メモリ、集積回路、又は他のデジタル処理装置記憶デバイスにより、具体化することができる。
さらに、本発明の説明される特徴、構造、又は特性は、1つ又は複数の実施形態においていずれかの適切な方法で組み合わせることができる。以下の説明においては、本発明の実施形態が完全に理解されるように、プログラミング、ソフトウェア・モジュール、ユーザ選択、ネットワーク・トランザクション、データベース照会、データベース構造、ハードウェア・モジュール、ハードウェア回路、ハードウェア・チップなどの例のような多数の特定の詳細部が提供される。しかしながら、当業者であれば、特定の詳細部の1つ又は複数を用いることなく、又は、他の方法、コンポーネント、材料などを用いて、本発明を実施できることが分かるであろう。他の場合には、本発明の態様を不明瞭なものにしないように、周知の構造、材料、又は動作は、詳細に示すことも説明することもない。
図1は、ウェブ・ページのダウンロード時間を改善するためのシステム100の1つの実施形態を示す。システム100は、ウェブ・サーバ・アプリケーション104とアーカイバ106とデータ・ストア108とを有するウェブ・ホスト102を含むことができる。システム100は、ネットワーク110と、中央演算処理装置(CPU)114、メモリ116、及びアーカイブ対応ブラウザ118を有するウェブ・クライアント112とを、さらに含むことができる。システム100は、ダウンロード時間改善のために、アーカイブ対応ブラウザ118が読み込むことができるウェブ・ページを、該ウェブ・ページに関連するアーカイブ共に生成する。
ウェブ・ホスト102は、1つの実施形態においては、ウェブ・クライアント112にウェブ・ページを提供するためのハードウェア・コンポーネント及びソフトウェア・コンポーネントを含む。ウェブ・ホスト102は、ウェブ・サーバ・アプリケーション104とアーカイバ106とデータ・ストア108とを含むことができる。ウェブ・ホスト102には、ネットワーク110を介してアクセスすることができる。
ウェブ・ホスト102は、1つの実施形態においては、ウェブ・サーバ・アプリケーション104を含む。ウェブ・サーバ・アプリケーション104は、ネットワークを介してウェブ・ページを配信するように設定されたソフトウェアを含む。ウェブ・サーバ・アプリケーション104は、hypertext markup language(HTML)ファイルのように標準であると認められている規格に適合したウェブ・ページを配信するように設定することができる。規格に準拠したウェブ・ページの他の例として、extensible hypertext markup language(XHTML)、hypertext preprocessor(PHP)、worldwide web consortium(W3C)などが挙げられる。ウェブ・サーバ・アプリケーションの例として、Apache HTTP Server、Microsoft(登録商標)Internet Information Server(登録商標)、IBM(登録商標)HTTP Serverなどが挙げられる。
ウェブ・サーバ・アプリケーション104は、1つの実施形態においては、ウェブ・ページに関連するアーカイブを配信するようにさらに設定することができる。1つの実施形態においては、これらのアーカイブは、ウェブ・ページをレンダリングするのに必要なオブジェクトを含む。アーカイブは、本明細書の下記のアーカイバ106に関して、以下でより詳細に説明される。
1つの実施形態においては、アーカイバ106は、ダウンロード時間を改善するために最適化されたウェブ・ページを生成する。アーカイバ106は、ウェブ・ページ内で参照されるオブジェクトから1つ又は複数のアーカイブを生成することができる。各々のアーカイブは、ウェブ・ページ内で参照される複数のオブジェクトで構成される。ここで用いられる「アーカイブ」という用語は、一回の送信について、ソートされた状態又はソートされていない状態で単一のファイルにまとめられた複数のデータ・オブジェクトの選択を意味する。アーカイブは、ウェブ・クライアント112に送られるときに、単一のヘッダを含むことができる。対照的に、各々のオブジェクトを別々に送信するためには、各々のオブジェクトについて別々のヘッダが必要である。1つ又は複数のアーカイブの各々が多数のオブジェクトを含んでおり、アーカイブは、アーカイブ内のオブジェクトの各々についてのヘッダの代わりに単一のヘッダで送信することができるので、必要なヘッダの合計サイズは低減される。別の実施形態においては、アーカイブは、各々のオブジェクトのための多数のヘッダを含むことができるが、これらのヘッダは、ヘッダの合計サイズを低減するために単純化される。
次いで、ウェブ・サーバ・アプリケーション104は、ウェブ・ページ内で参照される個々のオブジェクトの各々の代わりに、単一のアーカイブを配信することができる。アーカイブ内の各々のオブジェクトは、簡単なヘッダのみを必要とするか、又は個々のヘッダを全く必要とせず、個々のオブジェクトの各々に関連する個別の待ち時間が存在しないので、ウェブ・ページのダウンロード時間全体が低減される。
アーカイバ106により生成されたウェブ・ページは、1つの実施形態においては、アーカイブ対応ブラウザ118によりレンダリングすることができる。アーカイブ対応ブラウザ118は、ウェブ・ページに関連するアーカイブを受信し、アーカイブからアンパックされたオブジェクトを用いてウェブ・ページをレンダリングすることができる。生成されるウェブ・ページは、レンダリングするためにアーカイブ対応ブラウザ118を必要とする特定の形式であってもよい。例えば、生成されるウェブ・ページは、HTMLファイルと1つ又は複数の関連するアーカイブとを含むことができる。アーカイブ対応ブラウザ118は、HTMLファイルと1つ又は複数の関連するアーカイブとを処理して、ウェブ・ページをレンダリングすることができる。アーカイブ対応ブラウザ118は、1つの実施形態においては、ウェブ・ページのHTMLファイル内のタグと1つ又は複数のアーカイブのヘッダとを処理して、アーカイブ内のオブジェクトの適切な位置を決定する。アーカイブ対応ブラウザ118がアーカイブを処理する方法の一例は、図6に関連して以下で説明される。
アーカイバ106は、1つの実施形態においては、静的なウェブ・ページから、ウェブ・ページ内で参照されるオブジェクトのアーカイブと共に用いるために最適化されたウェブ・ページ(これ以降、「アーカイブ最適化ウェブ・ページ」と呼ぶ)を生成することができる。静的なウェブ・ページとは、ウェブ・ページに関連するパラメータに応答して変化することのない内容を有するウェブ・ページである。アーカイバ106は、静的なウェブ・ページに関連するオブジェクトを用いて、1つ又は複数のアーカイブを生成することができる。1つの実施形態においては、アーカイバ106は、ウェブ・クライアント112によるウェブ・ページについての要求に応答して、静的なウェブ・ページのためのアーカイブ最適化ウェブ・ページを生成することができる。
別の実施形態においては、アーカイバ106は、静的なウェブ・ページのためのアーカイブ最適化ウェブ・ページを、ウェブ・クライアント112によるウェブ・ページについての要求と非同期的に生成することができる。別の実施形態においては、アーカイバ106は、一群の静的なウェブ・ページのための一群のアーカイブ最適化ウェブ・ページを生成することができる。アーカイバ106は、アーカイブ最適化ウェブ・ページのための1つ又は複数のアーカイブを生成することができる。生成されたアーカイブ最適化ウェブ・ページ及びアーカイブ最適化ウェブ・ページのための1つ又は複数のアーカイブは、ウェブ・ホスト102がアクセスできるように格納することができる。静的なウェブ・ページについての要求によって、どちらもウェブ・ページについての要求の受信前に生成されたものである生成済みのアーカイブ最適化ウェブ・ページ及びアーカイブが配信されることになる。この実施形態においては、アーカイバ106は、ウェブ・ホスト102に重い負荷がかかっていない間に、アーカイブ最適化ウェブ・ページ及びアーカイブを生成することができる。
別の実施形態においては、アーカイバ106は、動的なウェブ・ページのためのアーカイブ最適化ウェブ・ページ及びアーカイブを生成することができる。動的なウェブ・ページとは、ウェブ・ページについての要求に応答して作成されるウェブ・ページである。動的なウェブ・ページは、要求以前には存在しないことがある。この実施形態においては、アーカイバ106は、ウェブ・クライアント112による動的なウェブ・ページについての要求に応答して、動的にアーカイブ最適化ウェブ・ページ及びアーカイブを生成する。例えば、ウェブ・クライアント112は、データ・ストア108からのデータを含み、要求に応答して作成されるウェブ・ページを、ウェブ・ホスト102から要求することがある。アーカイバ106は、データ・ストア108からデータを受信し、ウェブ・ページのためのアーカイブ最適化ウェブ・ページ及びアーカイブを生成することができる。生成されたウェブ・ページ及びアーカイブは、次に、ウェブ・サーバ・アプリケーション104により、ウェブ・クライアント112に配信することができる。
代替的な実施形態においては、アーカイバ106は、アーカイブ対応ブラウザ118がウェブ・ページをレンダリングするのに必要なファイルを全て含むアーカイブを生成する。例えば、アーカイバ106は、要求されたウェブ・ページのために必要なコンテンツの全てを含む1つ又は複数のアーカイブを生成し、その1つ又は複数のアーカイブを、レンダリングのためにアーカイブ対応ブラウザ118に配信することができる。
データ・ストア108は、1つの実施形態においては、ウェブ・ホスト102に含めることができる。データ・ストア108内のデータは、完全なウェブ・ページと、ウェブ・ページを生成するのに用いられるデータと、予め定められたアーカイブと、ウェブ・ページをレンダリングするのに用いられるオブジェクトとを含むことができる。例えば、データ・ストア108は、データ・ファイルを含む1つ又は複数のハード・ディスク・ドライブを含むことができる。別の実施形態においては、データ・ストア108は、データベースを含む。更なる実施形態においては、データ・ストア108は、フラッシュ・メモリ・デバイスを含む。
1つの実施形態においては、ネットワーク110は、ウェブ・ホスト102とウェブ・クライアント112との間でデータを送信するための媒体となる。ネットワーク110は、ウェブ・クライアント112からの要求をウェブ・ホスト102に送信することができる。ネットワーク110は、生成されたウェブ・ページ及びアーカイブをウェブ・ホスト102からウェブ・クライアント112に送信することもできる。ネットワーク110は、例えばインターネットといった、そうしたデータを送信することが可能ないずれかのネットワークとすることができる。ネットワーク110の他の例として、イントラネット、直接ネットワーク接続などが挙げられる。ウェブ・クライアント112は、1つの実施形態においては、表示するために生成されたウェブ・ページをレンダリングする。ウェブ・クライアント112は、CPU114、メモリ116、及びアーカイブ対応ブラウザ118を含むことができる。ウェブ・クライアント112は、1つの実施形態においては、アーカイブからのオブジェクトを用いて、生成されたウェブ・ページをレンダリングする。
アーカイブ対応ブラウザ118は、1つの実施形態においては、アーカイブ最適化ウェブ・ページに関連するオブジェクトを含むアーカイブを処理することができるウェブ・ブラウザである。オブジェクトの例として、jpeg、gif、bmpなどの画像ファイル、スクリプト・ファイル、又は、ウェブ・ページにおいて用いられる他のオブジェクトが挙げられる。
1つの実施形態においては、アーカイブ対応ブラウザ118は、ウェブ・ホスト102からウェブ・ページを要求する。ウェブ・ページは、ここではアーカイブ可能オブジェクトと呼ばれる、アーカイブに含めることができる1つ又は複数のオブジェクトへの参照を含むことができる。ウェブ・ホスト102は、アーカイブを参照する生成されたウェブ・ページ(即ち、アーカイブ最適化ウェブ・ページ)を、アーカイブ対応ブラウザ118に配信することができる。アーカイブ対応ブラウザ118は、アーカイブ対応ブラウザ118に組み込まれたソフトウェア命令(元のオブジェクト・コードか、又は、追加されたプラグイン若しくは拡張機能のどちらかである)を実行し、ウェブ・ホスト102からアーカイブを取得することができる。アーカイブ可能オブジェクトをアーカイブからアンパックし、そのアーカイブ可能オブジェクトを用いてウェブ・ページをレンダリングするために、アーカイブ対応ブラウザ118に組み込まれた付加的な実行可能コード(元のオブジェクト・コードか、又は、追加されたプラグイン若しくは拡張機能)がアーカイブ対応ブラウザ118によって実行される。
図2は、アーカイバ106の1つの実施形態を示す。アーカイバ106は、アーカイブ・コスト/利益モジュール202と、選択モジュール204と、アーカイブ生成モジュール206とを含むことができる。アーカイバ106は、アーカイブと、ダウンロード時間を改善した関連するウェブ・ページとを生成する。
アーカイブ・コスト/利益モジュール202は、1つの実施形態においては、アーカイブ及び関連するアーカイブ最適化ウェブ・ページの生成に関する計算コストが、ウェブ・ページのダウンロード時間の改善による利益を上回るかどうかを判定する。予測されるダウンロード時間の改善が、ウェブ・ページ及びアーカイブの生成に関連するオーバーヘッド・コストを上回る場合には、アーカイブ・コスト/利益モジュール202は、アーカイバ106がアーカイブ最適化ウェブ・ページ及び関連するアーカイブを生成するべきであることを示すことができる。
特定の実施形態においては、アーカイブ・コスト/利益モジュール202は、アーカイブ最適化ウェブ・ページ及びアーカイブを生成するべきかどうかを判定するために、学習機能(heuristic function)を利用することができる。例えば、アーカイブ・コスト/利益モジュール202は、アーカイブ最適化ウェブ・ページ及びアーカイブを生成するための計算コストを予測することができる。計算コストが閾値を下回った場合には、アーカイブ・コスト/利益モジュール202は、アーカイバ106がアーカイブ最適化ウェブ・ページ及びアーカイブを生成するべきであることを示すことができる。代替的な実施形態においては、アーカイブ・コスト/利益モジュール202は、アーカイブ及びアーカイブ最適化ウェブ・ページに関するダウンロード時間の改善に関連する値も予測することができる。アーカイブ・コスト/利益モジュール202は、予測される計算コストと予測される利益との比が閾値を下回ることに応答して、アーカイブ最適化ウェブ・ページ及びアーカイブを生成するべきであることを示すことができる。
例えば、アーカイブ・コスト/利益モジュール202は、生成されるアーカイブの数、ウェブ・ページ内のアーカイブ可能オブジェクトの数、及びウェブ・ページのサイズを含む入力を用いたモデルに基づいて、コストの値を導出することができる。アーカイブ・コスト/利益モジュール202は、修正されていないウェブ・ページを配信するのに必要な時間に対して、アーカイブを用いてウェブ・ページを配信する場合の時間の低減を推定する利益の値をさらに導出することができる。利益の値は、生成されるアーカイブの数、ウェブ・ページ内のアーカイブ可能オブジェクトの数、及びウェブ・ページのサイズを含む入力を用いて、モデル化することができる。この例においては、アーカイブ・コスト/利益モジュール202は、コストの値と利益の値との間の比を生成する。比についての閾値は、任意に選択してもよいし、他のテスト及びモデルに基づいて予め算出してもよく、閾値は、アーカイブ最適化ウェブ・ページを生成するべきか生成するべきでないかを定める。
1つの実施形態においては、ウェブ・ページについての要求に応答して生成されなければならないアーカイブ最適化ウェブ・ページの場合と、非同期的に生成されるアーカイブ最適化ウェブ・ページの場合とで、アーカイブ・コスト/利益モジュール202による判定が異なることがある。例えば、アーカイブ・コスト/利益モジュール202は、ウェブ・ホスト102の負荷が軽い時間の間に静的なウェブ・ページを評価し、そのウェブ・ページについてアーカイブを生成するべきと判断することがある。アーカイブを生成した後で、ウェブ・ページについての要求によって、非同期的に生成されたアーカイブ及びアーカイブ最適化ウェブ・ページが配信されることになる。しかしながら、アーカイブが生成される前にウェブ・ページについての要求が受信された場合には、要求したブラウザがアーカイブを待っている間にそのアーカイブを生成する必要があるため、アーカイブ・コスト/利益モジュール202は異なる結論に達することがある。ウェブ・ページについての要求に応答してアーカイブ最適化ウェブ・ページが生成されなければならないとき、又は、ウェブ・ホスト102の負荷が相対的に高いときには、アーカイブ・コスト/利益モジュール202は、同一のアーカイブ最適化ウェブ・ページを生成するにはコストがかかり過ぎると判断することもある。
選択モジュール204は、1つの実施形態においては、アーカイブに含めるために、アーカイブ最適化ウェブ・ページによって参照されるオブジェクトを選択する。選択モジュール204は、オブジェクトを個別にウェブ・クライアント112に配信せずにアーカイブに入れるべきかどうかを判定する選択基準に基づいて、オブジェクトを選択する。選択基準の一例はオブジェクトのサイズであり、より小さいサイズのオブジェクトの方が、より大きいサイズのオブジェクトに比べて、アーカイブに含めることで利益を受けられる可能性が高い。1つの実施形態においては、選択モジュール204は、閾値を下回るサイズのオブジェクトを選択することができる。例えば、閾値を3キロバイトとして、選択モジュールは、3キロバイトを下回るサイズのオブジェクトを選択することができる。
1つの実施形態においては、アーカイブ生成モジュール206は、アーカイブ最適化ウェブ・ページに関連する1つ又は複数のアーカイブを生成する。アーカイブ生成モジュール206は、選択モジュール204によって選択されたオブジェクトを用いて、1つ又は複数のアーカイブを形成する。1つ又は複数のアーカイブは、ウェブ・クライアント112がアーカイブ対応ブラウザ118の実行可能コードを実行した後で行う要求に応答して、ウェブ・クライアント112に配信される。
図3は、選択モジュール204の1つの実施形態を示す。選択モジュール204は、文書オブジェクト・モデル木走査モジュール302と、選択基準モジュール304と、アーカイブ・サイズ・モジュール306と、オブジェクト優先順位付けモジュール308と、オブジェクト優先順位付け基準モジュール310とを含むことができる。選択モジュール204は、1つ又は複数のアーカイブに含めるために、ウェブ・ページからアーカイブ可能オブジェクトを選択する。
DOM木走査モジュール302は、1つの実施形態においては、ウェブ・ページのDOM木を走査する。DOM木は、ウェブ・ページの論理構造を定める。ウェブ・ページ内のオブジェクトは、DOM木において階層構造で配列され、幾つかのオブジェクトは他のオブジェクトに依存し、全てのオブジェクトはルート・オブジェクトに依存する。DOM木走査モジュール302を用いてDOM木を走査することにより、選択モジュール204は、例えば、どのオブジェクトがウェブ・ページによって参照されるか、ウェブ・ページ内で参照されるオブジェクトのタイプ、オブジェクトのサイズ、及び、ウェブ・ページ内で参照されるオブジェクト間の相対依存度といった、ウェブ・ページ内のオブジェクトについての情報を判定する。
1つの実施形態においては、選択基準モジュール304は、オブジェクトがアーカイブ可能オブジェクトであるかどうかを判定する1つ又は複数の選択基準を含む。アーカイブ可能オブジェクトとは、アーカイブに含まれるべき(又は、含まれると判定された)オブジェクトである。ウェブ・ページ内で参照されるオブジェクトは、アーカイブ可能オブジェクトであるかどうかを判定するために、選択基準によって判断される。選択基準の例として、オブジェクトの最大サイズとオブジェクトのタイプとが挙げられる。例えば、選択基準モジュール304は、アーカイブ可能オブジェクトが3キロバイトを超えないサイズを有するべきであるという基準を含むことができる。別の基準は、アーカイブ可能オブジェクトが画像ファイルでなければならないこととすることができる。
アーカイブ・サイズ・モジュール306は、1つの実施形態においては、アーカイブのための目標サイズを決定する。アーカイブ・サイズ・モジュール306は、ウェブ・ページのサイズを決定することにより、アーカイブの目標サイズを決定することができる。ウェブ・ページのサイズは、1つの実施形態においては、ウェブ・ページ内で参照されるオブジェクトのサイズの合計を含む。別の実施形態においては、ウェブ・ページのサイズは、ウェブ・ページ内で参照されるオブジェクトのサイズの合計に加えて、ウェブ・ページのためのHTMLファイルのサイズを含む。
アーカイブ・サイズ・モジュール306は、1つの実施形態においては、アーカイブの目標サイズをウェブ・ページのサイズの割合として設定する。1つの実施形態においては、目標サイズは、ウェブ・ページのサイズの4分の1である。従来のウェブ・ブラウザの殆どは、ウェブ・サーバとの間で4つの同時接続を受け入れるように設定されている。その結果として、ウェブ・ページのサイズの4分の1より大きいアーカイブは、アーカイブを作成することによって実現される性能利益に対する見返りを逓減させる結果をもたらす。別の実施形態においては、目標サイズは、ウェブ・ページ内で参照されるオブジェクトのサイズ全体の百分率である。さらに別の実施形態においては、目標サイズは、ウェブ・ページのサイズの一部であり、この一部は、比率、百分率、又は、生成されるアーカイブがウェブ・ページのサイズより小さくなるような他の形式の尺度とすることができる。
1つの実施形態においては、オブジェクト優先順位付けモジュール308は、ウェブ・ページ内で参照されるアーカイブ可能オブジェクトについての優先順位を決定する。オブジェクトの優先順位は、オブジェクト優先順位付け基準モジュール310からのオブジェクト優先順位付け基準によって決定することができる。オブジェクト優先順位付けモジュール308によって決定される優先順位は、アーカイブ内におけるアーカイブ可能オブジェクトについての順序を定める。より高い優先順位のアーカイブ可能オブジェクトは、より低い優先順位のアーカイブ可能オブジェクトの前に順序付けられる。例えば、ウェブ・ページ内の表を定義するアーカイブ可能オブジェクトには、表の中の画像から成るアーカイブ可能オブジェクトより、高い優先順位を割り当てることができる。表を定義するアーカイブ可能オブジェクトは、画像より高い優先順位を有するので、画像の前に順序付けられる。アーカイブ可能オブジェクトを優先順位付けし、順序付けることにより、アーカイブ最適化ウェブ・ページは、アンパックされたアーカイブ可能オブジェクトをアンパックされた順に配置することによって、より効率的にレンダリングすることができる。
オブジェクト優先順位付け基準モジュール310は、1つの実施形態においては、アーカイブ最適化ウェブ・ページにおいて参照されるオブジェクトの優先順位を決定する1つ又は複数のオブジェクト優先順位付け基準を含む。オブジェクト優先順位付け基準は、アーカイブ最適化ウェブ・ページにおいて参照されるアーカイブ可能オブジェクトの特性に関連する。例えば、アーカイブから取り出されたオブジェクトは、そのオブジェクトが依存しているオブジェクトが利用可能になるまでレンダリングできないため、DOM木においてより上位のオブジェクトをDOM木においてより下位のオブジェクトの前に順序付けることで、ページのレンダリングを改善することができる。従って、1つの実施形態においては、アーカイブ可能オブジェクトのDOM木における階層レベルが、オブジェクト優先順位付け基準である。例えば、相対的に高い階層レベルを有する、即ちDOM木のルートからのステップが相対的に少ない、アーカイブ可能オブジェクトは、相対的に低い階層レベルを有する、即ちDOM木のルートからのステップが相対的に多い、アーカイブ可能オブジェクトより、高い優先順位を有するものとすることができる。結果として、より高い優先順位のアーカイブ可能オブジェクトは、より早くアンパックされてレンダリングされるようにアーカイブ内で順序付けられる。
同じ理由から、別の実施形態においては、オブジェクト優先順位付け基準は、DOM木における下位オブジェクトの数を含むものとすることができる。例えば、下位オブジェクトの数が相対的に多いアーカイブ可能オブジェクトには、下位オブジェクトの数が相対的に少ないアーカイブ可能オブジェクトより、高い優先順位を割り当てることができる。この基準の結果として、下位のアーカイブ可能オブジェクトがアーカイブから取り出される前に、予め必要なアーカイブ可能オブジェクトが利用可能となっている可能性が高くなる。
最も小さいオブジェクトがアーカイブされたときに、最大の性能の増大を実現することができる。従って、1つの実施形態においては、アーカイブ可能オブジェクトのサイズは、オブジェクト優先順位付け基準である。例えば、アーカイブ可能オブジェクトの合計サイズが、アーカイブ・サイズ・モジュール306により決定されるアーカイブ・サイズを超えた場合には、より小さいアーカイブ可能オブジェクトに、相対的に大きいアーカイブ可能オブジェクトより高い優先順位を割り当てることができる。結果として、アーカイブの性能を向上させるために、より小さいアーカイブ可能オブジェクトがアーカイブに含まれることになる。相対的に大きいアーカイブ可能オブジェクトは、サイズの制約によってアーカイブ内に配置されないことがある。
図4は、アーカイブ最適化ウェブ・ページについてのDOM木402、及び、アーカイブのための順序付けされたアーカイブ可能オブジェクト404の1つの実施形態を示す。DOM木402は、階層レベル406−410に配列された複数のオブジェクト412−422を含むことができる。DOM木402は、アーカイブ最適化ウェブ・ページにおけるオブジェクト412−422間の関係を表現するものである。レベル2 408のオブジェクトは、レベル1 406のオブジェクトに依存し、レベル3 410のオブジェクトは、レベル2 408の予め必要なオブジェクトに依存し、以下同様である。例えば、レベル3 410のオブジェクト2 416は、レベル2 408のオブジェクト1 414に依存する。
1つの実施形態においては、より低いレベルのオブジェクトは、予め必要なオブジェクトがアーカイブ最適化ウェブ・ページにおいてレンダリングされるまで、アーカイブ最適化ウェブ・ページにおいて適切にレンダリングすることができない。例えば、オブジェクト1 414は、アーカイブ最適化ウェブ・ページ内の表であり、オブジェクト2 416は、オブジェクト1 414の表の中の画像を表すことができる。オブジェクト2 416の画像は、オブジェクト1 414の表の中に存在することが定められているので、表がレンダリングされる前にアーカイブ最適化ウェブ・ページ内にレンダリングすることはできない。
こうした依存性及び他の考慮事項の結果として、選択モジュール204により選択されたアーカイブ可能オブジェクトは、オブジェクト優先順位付けモジュール308により、優先順位付けし、順序付けされたアーカイブ可能オブジェクト404として順序付けることができる。例えば、オブジェクト選択モジュール204は、オブジェクト1 414、オブジェクト3 418、オブジェクト4 420、及びオブジェクト5が選択基準の組を満たすことを判定し、これらのオブジェクトをアーカイブ可能オブジェクトとして指定することができる。オブジェクト選択モジュール204は、オブジェクト2 416が選択基準の組を満たさないこと、例えばオブジェクト2 416が閾値より大きいサイズを有することを判定することもできる。
オブジェクト選択モジュール204は、さらに、アーカイブ可能オブジェクトを順序づけして、順序付けされたアーカイブ可能オブジェクト404にすることができる。オブジェクト優先順位付けモジュール308は、オブジェクト優先順位付け基準に従って、アーカイブ可能オブジェクトを順序付けることができる。例えば、オブジェクト1 414及びオブジェクト4 420は、DOM木において相対的に高いレベル2 408の位置にあるので、高い優先順位を割り当てることができる。オブジェクト1 414は、オブジェクト4 420より多くの依存オブジェクトを有するので、オブジェクト4 420より高い優先順位を割り当てることができる。結果として、オブジェクト1 414は、順序付けされたアーカイブ可能オブジェクト404の中で、オブジェクト4 420の前に順序付けることができる。
図5は、アーカイブ生成モジュール206の1つの実施形態を示す。アーカイブ生成モジュール206は、オブジェクト順序付けモジュール502と、アーカイブ・ファイル圧縮モジュール504と、圧縮学習モジュール506とを含むことができる。アーカイブ生成モジュール206は、選択モジュール204により選択されたアーカイブ可能オブジェクトを用いて、アーカイブ・ファイルを生成する。
オブジェクト順序付けモジュール502は、1つの実施形態においては、アーカイブ可能オブジェクトの優先順位に従ってアーカイブ可能オブジェクトを順序付ける。アーカイブ可能オブジェクトの優先順位は、オブジェクト優先順位付け基準に従ってオブジェクト優先順位付けモジュール308によって決定することができる。オブジェクト順序付けモジュール502は、生成されたアーカイブにおいて相対的に高い優先順位のアーカイブ可能オブジェクトが相対的に低い優先順位のアーカイブ可能オブジェクトの前に順序付けられるように、アーカイブ可能オブジェクトを順序付ける。
1つの実施形態においては、アーカイブ・ファイル圧縮モジュール504は、生成されたアーカイブを圧縮する。アーカイブ・ファイル圧縮モジュール504は、いずれかのデータ圧縮方法を用いて、生成されたアーカイブを圧縮することができる。アーカイブを圧縮するのに用いることができるデータ圧縮方法の例として、gzip、zip、LZX、算術符号化などが挙げられる。
アーカイブ生成モジュール206は、生成されたアーカイブを圧縮すべきかどうかを判定するために、圧縮学習モジュール506に依存することがある。特定の状況下では、アーカイブを圧縮することが非効率となることもある。例えば、jpegファイルなどの多くの画像ファイルは、予め圧縮されている。アーカイブを構成するアーカイブ可能オブジェクトが、予め圧縮された画像ファイルを高い割合で含む場合には、さらに圧縮器を用いてアーカイブを処理することは、計算コストを生じさせるが、アーカイブのサイズの点ではそれほど大きな改善はもたらさない。
生成されたアーカイブを圧縮しなくてもよい状況の別の例は、動的なウェブ・ページのアーカイブ生成の際に生じる。動的なアーカイブ最適化ウェブ・ページのためにアーカイブを生成するときに、ウェブ・ホスト102のサーバ負荷が高くなることがある。要求しているウェブ・クライアント112が待つ間にアーカイブを圧縮するのに要する計算コスト及び時間は、アーカイブのサイズの低減を上回ることがある。
圧縮のコストがアーカイブのサイズの低減による利益を上回るときに、生成されたアーカイブを圧縮しようとするのを避けるために、圧縮学習モジュール506は、1つの実施形態においては、アーカイブを圧縮すべきかどうかを判定する。例えば、圧縮学習モジュール506は、アーカイブの中の画像の割合を求めることができる。アーカイブの中の画像の割合が閾値レベルを下回るときは、圧縮学習モジュール506は、アーカイブを圧縮すべきであると判断することができる。
図6は、アーカイブ対応ブラウザ118の1つの実施形態を示す。アーカイブ対応ブラウザ118は、ブラウザ・パラメータ送信モジュール602と、アーカイブ応答受信モジュール604と、履歴送信モジュール606と、接続モジュール608と、アーカイブ取得モジュール610と、アーカイブ・アンパック・モジュール612と、ページ・レンダリング・モジュール614とを含むことができる。アーカイブ対応ブラウザ118は、アーカイブを用いるアーカイブ最適化ウェブ・ページを取得し、レンダリングする。
アーカイブ対応ブラウザ118によって取得され、レンダリングされるアーカイブ最適化ウェブ・ページは、1つの実施形態においては、ウェブ・ページの最初のインスタンスとすることができる。例えば、アーカイブ最適化ウェブ・ページは、ウェブ・クライアント112からの要求に応答して動的に生成することができる。別の実施形態においては、アーカイブ対応ブラウザ118によって取得され、レンダリングされるアーカイブ最適化ウェブ・ページは、ウェブ設計者によるウェブ・ページの設計に応じて生成することができる。この例においては、アーカイバ106は、ウェブ設計ソフトウェアにリンクさせるか、又は、それと統合することができる。
別の実施形態においては、アーカイブ対応ブラウザ118によって取得され、レンダリングされるウェブ・ページは、アーカイブへの参照を含まない既存のウェブ・ページとすることができる。この実施形態においては、既存のウェブ・ページは、アーカイブへの参照を含むように書き直される。例えば、アーカイブ生成モジュール206は、静的なウェブ・ページにアクセスし、アーカイブ可能オブジェクトと、関連するアーカイブ最適化ウェブ・ページとを用いて、アーカイブを生成することができる。別の例においては、アーカイブ生成モジュール206は、アーカイブへの参照を含まない動的に生成されるウェブ・ページに対して作用することができる。この例においては、動的に生成されるウェブ・ページは、アーカイブからのアーカイブ可能オブジェクトを用いてレンダリングすることができるアーカイブ最適化ウェブ・ページを生成するように書き直される。
アーカイブ最適化ウェブ・ページは、アーカイブ内のアーカイブ可能オブジェクトにリンクされたHTMLタグを含むことができる。例えば、アーカイブ名が「html.archive」であり、アーカイブ内のアーカイブ可能オブジェクト名が「obj1」であれば、HTMLタグにおけるuniform resource identifier(URI)は、「html.archive/obj1」とすることができる。
ブラウザ・パラメータ送信モジュール602は、1つの実施形態においては、アーカイブ対応ブラウザ118の能力に関する1つ又は複数のブラウザ・パラメータをウェブ・サーバ104に送信する。1つ又は複数のブラウザ・パラメータは、インジケータを含むことができる。1つの実施形態においては、ブラウザ・パラメータ送信モジュール602は、アーカイブ対応ブラウザ118がアーカイブを含むアーカイブ最適化ウェブ・ページを受信及び/又はレンダリングできることを示すインジケータを含むブラウザ・パラメータを送信する。例えば、ブラウザ・パラメータ送信モジュール602は、アーカイブ対応ブラウザ118がアーカイブを用いてページをレンダリングできることを明示的に示すインジケータを送信することができる。別の例においては、ブラウザ・パラメータ送信モジュール602は、アーカイブ対応ブラウザ118のバージョン番号を送信することができる。ウェブ・サーバ104は、このバージョン番号を、アーカイブを含むアーカイブ最適化ウェブ・ページをレンダリングできることが知られているブラウザのリストと比較し、その比較の結果としてアーカイブ対応ブラウザの能力を判断することができる。
別の実施形態においては、ブラウザ・パラメータ送信モジュール602は、アーカイブ対応ブラウザ118が利用可能な接続の数を示すインジケータを含むブラウザ・パラメータを送る。例えば、1つの実施形態においては、アーカイブ対応ブラウザ118は、ホスト・コンピュータ及び/又はオペレーティング・システムによって決まる数の利用可能な接続を有する。1つの例においては、アーカイブ対応ブラウザ118は、最大で4つの接続を許されることがある。ブラウザ・パラメータ送信モジュール602は、アーカイブ対応ブラウザ118が利用可能な4つの接続を有することを示すブラウザ・パラメータをウェブ・サーバ104に送ることができる。
1つの実施形態においては、アーカイブ応答受信モジュール604は、ウェブ・サーバ104からアーカイブ応答パラメータを受信する。アーカイブ応答パラメータは、1つの実施形態においては、インジケータを含む。インジケータは、ウェブ・サーバ104がアーカイブを配信できることを示すものとすることができる。1つの実施形態においては、ウェブ・サーバ104は、アーカイブ対応ブラウザ118がアーカイブを受信することができるという判断に応答して、アーカイブ応答パラメータを送る。別の実施形態においては、ウェブ・サーバ104は、ウェブ・ページを要求するウェブ・ブラウザのタイプにかかわらず、アーカイブ応答パラメータを送る。
履歴送信モジュール606は、1つの実施形態においては、アーカイブ対応ブラウザ118の履歴をウェブ・サーバ104に送信する。1つの実施形態においては、履歴は、ウェブ・サーバ104及び/又は他のウェブ・サーバとの以前のトランザクションからアーカイブ対応ブラウザ118によって保持されたオブジェクトのリストを含む。保持されたオブジェクトは、メモリなどの揮発性ストレージ・キャッシュに格納しても、ハード・ディスク・ドライブなどの不揮発性ストレージ・キャッシュに格納してもよい。1つの実施形態においては、履歴送信モジュール606は、ウェブ・サーバ104がアーカイブを配信できることを示すアーカイブ応答パラメータの受信に応答して、履歴を送信する。
ウェブ・サーバ104は、1つの実施形態においては、履歴を用いて、アーカイブと、要求されたウェブ・ページについてキャッシュされたバージョンのオブジェクトを用いるアーカイブ最適化ウェブ・ページとを生成する。例えば、履歴は、要求されたアーカイブ最適化ウェブ・ページ内の幾つかのオブジェクトがアーカイブ対応ブラウザ118のキャッシュに既に存在することを示すことができる。アーカイバ106は、キャッシュされたオブジェクトを含まないアーカイブを生成することができる。ウェブ・サーバ104は、アーカイブ対応ブラウザ118のキャッシュ内のオブジェクトを用いてアーカイブ最適化ウェブ・ページをレンダリングするようにアーカイブ対応ブラウザ118に指示するアーカイブ最適化ウェブ・ページを送ることができる。
接続モジュール608は、1つの実施形態においては、アーカイブ対応ブラウザ118とウェブ・サーバ104との間に1つ又は複数の接続を開く。1つの実施形態においては、接続モジュール608は、アーカイブ対応ブラウザ118が利用可能な接続の数と等しい数の接続を開く。別の実施形態においては、接続モジュール608は、ウェブ・サーバ104が利用可能な接続の数と等しい数の接続を開く。別の実施形態においては、接続モジュール608は、ウェブ・サーバ104とアーカイブ対応ブラウザ118との間で取り決められた数の接続を開く。
例えば、要求されたアーカイブ最適化ウェブ・ページは、ウェブ・サーバ104及びアーカイブ対応ブラウザ118が利用可能な接続の数より少ない数のアーカイブを含むことができる。この例では、接続モジュール608は、アーカイブの数と等しい数の接続を確立することができる。
アーカイブ取得モジュール610は、1つの実施形態においては、1つの利用可能な接続を通じてアーカイブを取得する。アーカイブ取得モジュール610は、ウェブ・クライアント112に、アーカイブ最適化ウェブ・ページのためのアーカイブをウェブ・ホスト102から取得させることができる。ウェブ・クライアント112は、取得したアーカイブをクライアント装置の一時メモリ又は永続メモリに格納する。
1つの実施形態においては、アーカイブ・アンパック・モジュール612は、アーカイブをアンパックする。アーカイブ・アンパック・モジュール612は、ウェブ・クライアント112に、取得したアーカイブの位置を特定させてアンパックさせる命令を含むことができる。アーカイブをアンパックすることは、1つの実施形態においては、アーカイブからアーカイブ可能オブジェクトを抽出することを含む。アーカイブ・アンパック・モジュール612は、アーカイブ可能オブジェクトを一時メモリ又は永続メモリに格納する。
アーカイブ可能オブジェクトは順番に抽出することができる、即ち、アーカイブ可能オブジェクトは、オブジェクト優先順位付けモジュール308によって決定された順序で、又は、オブジェクト順序付けモジュール502によって決定された順序で、抽出される。1つの実施形態においては、アーカイブは、アーカイブ生成モジュール206によって圧縮されている。アーカイブ・アンパック・モジュール612は、アーカイブ又はアーカイブ内のオブジェクトを解凍することができる。
1つの実施形態においては、ページ・レンダリング・モジュール614は、アーカイブから抽出されたアーカイブ可能オブジェクトを用いて、アーカイブ最適化ウェブ・ページをレンダリングする。ページ・レンダリング・モジュール614は、アーカイブ対応ブラウザ118に、アーカイブから抽出されたアーカイブ可能オブジェクトを用いてアーカイブ最適化ウェブ・ページをレンダリングさせる命令を含むことができる。
図7は、本発明によるウェブ・サーバ104の1つの実施形態を示す。ウェブ・サーバ104は、ブラウザ・パラメータ受信モジュール702と、アーカイブ応答送信モジュール704と、履歴受信モジュール706と、接続モジュール708と、アーカイブ配信モジュール710とを含むことができる。ウェブ・サーバ104は、ウェブ・ページについての要求を受信し、1つ又は複数のアーカイブを用いるウェブ・ページを配信する。
ブラウザ・パラメータ受信モジュール702は、1つの実施形態においては、アーカイブ対応ブラウザ118から、アーカイブ対応ブラウザ118の能力を示すブラウザ・パラメータを受信する。ブラウザ・パラメータ受信モジュール702によって受信されるブラウザ・パラメータの性質は、図6に関連して開示されたブラウザ・パラメータ送信モジュール602に関して説明されたブラウザ・パラメータと実質的に同一である。ブラウザ・パラメータの受信は、アーカイブ対応ブラウザ118がアーカイブを受信できることを示すこと、及び/又は、アーカイブ対応ブラウザ118が利用可能な接続の数を示すことができる。
1つの実施形態においては、アーカイブ応答送信モジュール704は、アーカイブ対応ブラウザ118にアーカイブ応答を送信する。アーカイブ応答パラメータは、ウェブ・サーバ104がアーカイブを配信できることを示すインジケータを含むことができる。1つの実施形態においては、アーカイブ応答パラメータは、ウェブ・サーバ104が利用可能な接続の数を示すインジケータを含むことができる。1つの実施形態においては、ウェブ・サーバ104は、アーカイブ対応ブラウザ118がアーカイブを受信できるという判断に応答して、アーカイブ応答パラメータを送る。別の実施形態においては、ウェブ・サーバ104は、ウェブ・ページを要求するウェブ・ブラウザのタイプにかかわらず、アーカイブ応答パラメータを送る。
履歴受信モジュール706は、1つの実施形態においては、アーカイブ対応ブラウザ118から履歴を受信する。1つの実施形態においては、履歴は、実質的に図6に関連して上述された通りのものである。ウェブ・サーバ104は、履歴を用いて、アーカイブ対応ブラウザ118にどのオブジェクトを送信しなければならないか、及び、アーカイブ対応ブラウザ118のキャッシュからどのオブジェクトを参照することができるかを判定することができる。例えば、アーカイバ106は、履歴を用いて、履歴(又はキャッシュ)中の1つ又は複数のオブジェクトを除外した1つ又は複数のアーカイブを生成し、それにより、アーカイブ対応ブラウザ118に送信されるオブジェクトの合計サイズを低減し、ウェブ・ページのロード時間を低減することができる。
1つの実施形態においては、接続モジュール708は、アーカイブ対応ブラウザ118とウェブ・サーバ104との間に1つ又は複数の接続を開く。1つの実施形態においては、接続モジュール708は、アーカイブ対応ブラウザ118が利用可能な接続の数に等しい数の接続を開く。別の実施形態においては、接続モジュール708は、ウェブ・サーバ104が利用可能な接続の数と等しい数の接続を開く。別の実施形態においては、接続モジュール708は、ウェブ・サーバ104とアーカイブ対応ブラウザ118との間で取り決められた数の接続を開く。例えば、要求されるウェブ・ページは、ウェブ・サーバ104及びアーカイブ対応ブラウザ118が利用可能な接続の数より少ない数のアーカイブを含むことができる。この例では、接続モジュール708は、アーカイブの数と等しい数の接続を確立することができる。
アーカイブ配信モジュール710は、1つの実施形態においては、1つの利用可能な接続を通じてアーカイブを送る。アーカイブ配信モジュール710は、ウェブ・サーバ104に、アーカイブ最適化ウェブ・ページのためのアーカイブをアーカイブ対応ブラウザ118に送らせることができる。
以降の概略的なフローチャート図は、一般に、論理フローチャート図として示される。従って、図示される順序及び符号が付いたステップは、提示される方法の1つの実施形態を示すものである。図示される方法の1つ又は複数のステップ、又はその一部に対し、機能、論理、又は効果の点で等価な他のステップ及び方法を考えることができる。さらに、使用される形式及び記号は、本方法の論理ステップを説明するために与えられており、本方法の範囲を限定するものではないと理解される。フローチャート図においては種々の矢印タイプ及び線種が使用されることがあるが、これらは対応する方法の範囲を限定するものではないと理解される。実際に、幾つかの矢印又は他のコネクタが、本方法の論理フローのみを示すために用いられることがある。例えば、矢印は、示される方法の列挙されたステップ間の不特定の持続時間にわたる待ち時間又は監視時間を示すことがある。さらに、特定の方法が行われる順序は、示される対応するステップの順序を厳密に遵守してもよいし、そうでなくともよい。
図8は、ウェブ・ページのダウンロード時間を改善するための方法800における種々のステップを示すフローチャート図である。方法800は、特定の実施形態においては、図1−図7のシステム及び装置において用いられる方法であり、これらの図面を参照して説明されることになる。しかしながら方法800はまた、これらとは独立に実施することもでき、これらの図面を参照して上述された実施形態に特に限定されることを意図されてはいない。
図8に示されるように、方法800は、ウェブ・ページのためのアーカイブを生成することに関連する計算コストを算出する(802)。1つの実施形態においては、計算コストは、アーカイブと、アーカイブ内のアーカイブ可能オブジェクトにアクセスするように構成されたアーカイブ最適化ウェブ・ページと、を生成するのに必要なリソースの尺度である。代替的な実施形態においては、算出される(802)計算コストは、アーカイブ及びアーカイブ最適化ウェブ・ページを生成するのに必要なリソースの尺度と、アーカイブを用いることによって実現されるウェブ・ページのダウンロード時間の改善の尺度との間の比とすることができる。別の実施形態においては、算出される(802)計算コストは、例えば、ウェブ・ホスト102の負荷、ウェブ・ページが既にウェブ・クライアント112によって要求されているか否か、及び、ウェブ・ページが静的なウェブ・ページであるか否か、といったパラメータに応じて、変わる場合がある。
次いで、1つの実施形態においては、アーカイブ・コスト/利益モジュール202は、ウェブ・ページのためのアーカイブを生成することが価値があるかどうかを判定する(804)。判定(804)は、算出された(802)計算コスト及び閾値に基づいて行うことができる。例えば、アーカイブ・コスト/利益モジュール202は、性能利益に対する計算コストの比が閾値を下回るときにはアーカイブを生成することは価値があると判定することができる。
方法800は、判定(804)が否定的である場合には、通常のウェブ・ページを選択する(806)。通常のウェブ・ページは、アーカイブへの参照を含まないウェブ・ページである。1つの実施形態においては、方法800は、通常のウェブ・ページを生成することができる。代替的な実施形態においては、方法800は、既存の通常のウェブ・ページを選択する(806)ことができる。
アーカイブ・コスト/利益モジュール202が、アーカイブが生成されるべきであると判定した(804)場合には、次に、選択モジュール204は、ウェブ・ページのDOM木表現を走査する(808)。DOM木は、どのオブジェクトがウェブ・ページに存在するかということと、オブジェクトのサイズ、オブジェクトの階層レベル、及びオブジェクト間の依存度といった、オブジェクトに関する他のパラメータとを判断するために走査される(808)。
次いで、選択モジュール204は、オブジェクトをアーカイブ可能オブジェクトとして選択する(810)。アーカイブ可能オブジェクトは、オブジェクトのサイズ又はタイプといったオブジェクト選択基準を満たすことに応答して選択される(810)。例えば、選択モジュール204は、オブジェクトのサイズが3キロバイトより小さいことに応答して、オブジェクトをアーカイブ可能オブジェクトとして選択する(810)ことができる。
オブジェクト優先順位付けモジュール308は、選択モジュール204によって選択された(810)アーカイブ可能オブジェクトに優先順位を付ける(812)。アーカイブ可能オブジェクトの優先順位付け(812)は、DOM木における相対的な深さ、依存オブジェクトの数などといった、オブジェクト優先順位付け基準に基づいて行うことができる。例えば、あるオブジェクトは、DOM木においてより多くの依存オブジェクトを有するため、別のオブジェクトより高い優先順位をもつことができる。
次いで、アーカイブ生成モジュール206は、アーカイブ可能オブジェクトを用いてアーカイブを生成する(814)。生成された(814)アーカイブ内のアーカイブ可能オブジェクトは、優先順位付け(812)の際に割り当てられたオブジェクトの優先順位に従って、生成されたアーカイブ内で順序付けることができる。結果として、より高い優先順位のアーカイブ可能オブジェクトは、アーカイブ内において、より低い優先順位のオブジェクトの前に現れることができる。
1つの実施形態においては、圧縮学習モジュール506は、圧縮がアーカイブにとって価値があるかどうかを判定することができる(815)。図5に関連して説明されたように、アーカイブ内のファイルのタイプ、アーカイブ内のファイルの数、アーカイブのサイズ、及び他の要因が、判定(815)に影響を与えることがある。方法800は、圧縮がアーカイブにとって価値がないという判定(815)に応答して、圧縮されないアーカイブを選択する(818)。
1つの実施形態においては、アーカイブ圧縮モジュール504は、圧縮がアーカイブにとって価値があるという判定(815)に応答して、生成されたアーカイブを圧縮する(816)。アーカイブの圧縮(816)には、gzip、zip、LZX、算術符号化などといったいずれかの圧縮方法を用いることができる。アーカイブの圧縮(816)は、ファイルが圧縮によって利益を受けるという判定に応答して行うことができる。例えば、方法800は、アーカイブ可能オブジェクトが既に圧縮された画像ファイルを多く含むと判断し、従ってアーカイブを圧縮すべきではないと判定することができる。
図9は、アーカイブ対応ブラウザ118におけるウェブ・ページのダウンロード時間を改善するための方法900の種々のステップを示すフローチャート図である。方法900は、特定の実施形態においては、図1−図7のシステム及び装置において用いられる方法であり、これらの図面を参照して説明されることになる。しかしながら方法900はまた、これらとは独立に実施することもでき、これらの図面を参照して上述された実施形態に特に限定されることを意図されてはいない。
図9に示されるように、方法900は、アーカイブ対応ブラウザ118が利用可能な接続の数を決定する(902)。利用可能な接続の数は、アーカイブ対応ブラウザ118、ウェブ・クライアント112、ネットワーク110、又は他の考慮事項に応じて決められる。
アーカイブ対応ブラウザ118は、ウェブ・ページを要求する(904)。ウェブ・ページを要求すること(904)は、1つの実施形態においては、ネットワーク110を介してウェブ・ホスト102に要求を送ることを含む。例えば、アーカイブ対応ブラウザ118は、ウェブ・ページを要求する(904)ために、TCP/IPネットワークを介してHTTP要求を送ることができる。
ブラウザ・パラメータ送信モジュール602は、1つの実施形態においては、ブラウザ・パラメータをウェブ・サーバ104に送信する(906)。ウェブ・サーバ104に送られた(906)ブラウザ・パラメータは、アーカイブ対応ブラウザ118がアーカイブを受信できることを示す1つ又は複数のインジケータ、アーカイブ対応ブラウザ118が利用可能な接続の数、又は他のインジケータを含むことができる。
次に、アーカイブ応答受信モジュール604は、アーカイブ応答パラメータを受信する(908)。アーカイブ応答パラメータは、ウェブ・サーバ104がアーカイブを配信できることを示すことができる。アーカイブ応答パラメータは、ウェブ・サーバ104が利用可能な接続の数、又は他のインジケータをさらに示すことができる。
次いで、アーカイブ対応ブラウザ118は、アーカイブがサポートされているかどうかを判定する(910)。1つの実施形態においては、判定(910)は、受信した(908)アーカイブ応答パラメータに応答して行われる。アーカイブ対応ブラウザ118が、アーカイブがサポートされていないと判定した(910)場合には、方法900は、アーカイブを持たない通常のウェブ・ページを用いる(912)。アーカイブ対応ブラウザ118が、アーカイブがサポートされていると判定した(910)場合には、方法900は続行する。
接続モジュール608は、ウェブ・サーバ104との間に1つ又は複数の接続を確立する(914)。1つの実施形態においては、確立される(914)接続の数は、図6及び図7に関して上述されたように、ブラウザ・パラメータ、アーカイブ応答パラメータ、又は他の考慮事項に応じたものである。確立された(914)接続は、アーカイブ、ウェブ・ページ、履歴情報、パラメータ、又は他のデータを送信するために用いられる。
履歴送信モジュール606は、アーカイブ対応ブラウザ118の履歴情報をウェブ・サーバ104に送信する(916)ことができる。1つの実施形態においては、送信された(916)履歴は、ウェブ・サーバ104及び/又は他のウェブ・サーバとの以前のトランザクションからアーカイブ対応ブラウザによって保持されたオブジェクトのリストを含む。1つの実施形態においては、履歴送信モジュール606は、ウェブ・サーバ104がアーカイブを配信できることを示すアーカイブ応答パラメータの受信に応答して、履歴を送信する(916)。
アーカイブ取得モジュール610は、ウェブ・サーバ104からアーカイブを受信する(918)。受信されたアーカイブは、上述のように、1つ又は複数のアーカイブ可能オブジェクトを含むことができる。1つの実施形態においては、アーカイブ・ファイルは、ウェブ・ページについての要求904に応答して受信される(918)。
アーカイブ・アンパック・モジュール612は、1つの実施形態においては、配信されたアーカイブが圧縮されていることに応答して、アーカイブを解凍する(919)ことができる。アーカイブを解凍する(919)ことは、圧縮モジュール504によって用いられた圧縮方法を用いてアーカイブを解凍することを含むことができる。
1つの実施形態においては、ページ・レンダリング・モジュール614は、受信された(918)アーカイブから抽出されたアーカイブ可能オブジェクトを用いて、ウェブ・ページをレンダリングする(920)。ページ・レンダリング・モジュール614は、アーカイブから抽出されたアーカイブ可能オブジェクトを用いてアーカイブ対応ブラウザ118にアーカイブ最適化ウェブ・ページをレンダリングさせる(920)ソフトウェア命令を含むことができる。アーカイブ最適化ウェブ・ページをレンダリングすること(920)は、アーカイブ最適化ウェブ・ページについて定められたディスプレイ上の位置にアーカイブ可能オブジェクトを表示することを含むことができる。
図10は、ウェブ・サーバ104におけるウェブ・ページのダウンロード時間を改善するための方法1000の種々のステップを示すフローチャート図である。方法1000は、特定の実施形態においては、図1−図7のシステム及び装置において用いられる方法であり、これらの図面を参照して説明されることになる。しかしながら方法1000はまた、これらとは独立に実施することもでき、これらの図面を参照して上述された実施形態に特に限定されることを意図されてはいない。
図10に示されるように、方法1000は、ブラウザ・パラメータ受信モジュール702によってブラウザ・パラメータを受信する(1002)ことを含む。ブラウザ・パラメータは、アーカイブ対応ブラウザ118から受信する(1002)ことができ、ブラウザの能力を示す1つ又は複数のインジケータを含むことができる。インジケータは、アーカイブ対応ウェブ・ブラウザ118がアーカイブを用いてアーカイブ最適化ウェブ・ページをレンダリングできることを示すことができる。インジケータは、アーカイブ対応ブラウザ118が利用可能な接続の数を示すこともできる。
ウェブ・サーバ104は、1つ又は複数のアーカイブを含むアーカイブ最適化ウェブ・ページを配信するのに用いる接続の数を決定する(1004)ことができる。1つの実施形態においては、ウェブ・サーバ104は、アーカイブ対応ブラウザ118が利用可能な接続の数、ウェブ・サーバ104が利用可能な接続の数、性能面の考慮事項などを示すブラウザ・パラメータのうちの1つ又は複数に応じて、接続の数を決定する(1004)ことができる。
アーカイバ106は、アーカイブ可能オブジェクトの選択を最適化する(1006)ことができる。1つの実施形態においては、アーカイバ106は、アーカイブ可能オブジェクトのサイズ、DOM木におけるアーカイブ可能オブジェクトの相対的な高さ、アーカイブ可能オブジェクト間の依存度、生成されているアーカイブの数、又は他の考慮事項のうちの1つ又は複数に応じて、選択を最適化する(1006)。1つの実施形態においては、アーカイブ可能オブジェクトは、図2−図5に関連して説明されたように最適化される(1006)。
アーカイバ106は、1つ又は複数のアーカイブを生成する(1008)ことができる。1つ又は複数のアーカイブは、アーカイブ可能オブジェクトの最適化された(1006)選択を用いて生成する(1008)ことができる。生成されるアーカイブの数は、以前に決定された(1004)接続の数に関係させてもよい。別の実施形態においては、生成される(1008)アーカイブの数は、用いる接続の数の決定(1004)に影響を与えることがある。
アーカイブ配信モジュール710は、方法1000の1つの実施形態においては、1つ又は複数のアーカイブをアーカイブ対応ブラウザ118に配信する(1010)。1つの実施形態においては、アーカイブ配信モジュール710は、TCP/IPなどのネットワーク110を用いて、1つ又は複数のアーカイブを配信する(1010)。
本発明は、その趣旨及び本質的な特徴から逸脱することなく、他の特定の形態で具体化することができる。説明された実施形態は、全ての点において、単なる例であり、制限的なものとはみなされない。従って、本発明の範囲は、上記の説明ではなく、特許請求の範囲により示される。特許請求の範囲の均等物の意味及び範囲内にある全ての変更は、その範囲に含まれるべきである。

Claims (17)

  1. ウェブ・ページのロード時間を低減するためのシステムであって、
    複数のアーカイブからのアーカイブ可能オブジェクトを用いて、ブラウザが要求されたウェブ・ページをレンダリングするように、複数のアーカイブをブラウザに配信するように設定されており、前記複数のアーカイブの各々は前記ウェブ・ページ内において参照される複数のアーカイブ可能オブジェクトを含むものである
    ウェブ・サーバと、
    前記ブラウザが複数のアーカイブを受信するように設定されていることを示すインジケータを含むブラウザ・パラメータを受信し、
    前記ウェブ・ページによって要求された前記複数のアーカイブを配信することに使用するために、前記ウェブ・サーバと前記ブラウザの間の接続の数を決定し、
    前記複数のアーカイブ可能オブジェクトから前記複数のアーカイブを生成し、前記生成されたアーカイブの数は前記決定された接続の数と等しく、前記ウェブ・サーバは前記複数のアーカイブを前記ブラウザに配信し、前記複数のアーカイブからの1つのアーカイブは、前記決定された複数の接続のうちの利用可能な1つを介して配信されるように設定された
    アーカイバと、
    を含むシステム。
  2. 前記アーカイバは、前記複数のアーカイブを配信するのに用いる接続のを決定するために、前記ブラウザの能力に適合するアーカイブ応答パラメータを決定する、請求項1に記載のシステム。
  3. 前記アーカイバは、
    アーカイブ応答パラメータを前記ブラウザに送信することであって、前記アーカイブ応答パラメータは、前記アーカイバが複数のアーカイブを生成するように設定されていることを示すインジケータと前記ウェブ・サーバのための利用可能な接続とを含むものと
    前記複数のアーカイブを配信するのに用いる接続の最大数を決定することと、
    によって、前記ブラウザの能力に適合する応答パラメータを決定する、請求項1に記載のシステム。
  4. 前記ブラウザは、前記ウェブ・サーバとの以前の対話からブラウザ・キャッシュに存在する、前記ウェブ・ページに関連する予めキャッシュされたオブジェクトのリストを送信することによって、前記ウェブ・サーバにブラウザ・パラメータを送るようにさらに設定される、請求項1に記載のシステム。
  5. 前記アーカイバは、
    前記ブラウザ・キャッシュに存在する予めキャッシュされたオブジェクトの前記リストを、前記ウェブ・ページ内で参照される前記アーカイブ可能オブジェクトと比較し、
    予めキャッシュされたオブジェクトの前記リストに存在しないアーカイブ可能オブジェクトを判別し、
    前記複数のアーカイブのために前記ブラウザ・キャッシュに存在しないアーカイブ可能オブジェクトを選択する、
    ことによって、前記ブラウザの能力に適合するアーカイブ応答パラメータを決定する、請求項に記載のシステム。
  6. ウェブ・ページのロード時間を低減するための方法であって、
    ブラウザ・パラメータを受信するステップであって、前記ブラウザ・パラメータは、ブラウザが該ブラウザのための複数のアーカイブを受信するように設定されていることを示すインジケータを含むものと
    前記複数のアーカイブを配信するのに用いる、ウェブ・サーバとブラウザの間の接続の数を決定するステップであって、前記複数のアーカイブはウェブ・ページによって要求され、各アーカイブは前記ウェブ・ページ内において参照される複数のアーカイブ可能オブジェクトを含み、
    前記複数のアーカイブを配信するのに用いる前記決定された接続の数と等しい数のアーカイブを前記複数のアーカイブから生成するステップと、
    前記複数のアーカイブを前記ブラウザに配信するステップであって、前記複数のアーカイブからの1つのアーカイブは、前記決定された複数の接続のうちの利用可能な1つを介して配信されるものと、
    を含む、前記方法
  7. 前記複数のアーカイブのためのアーカイブ可能オブジェクトの選択を最適化するステップであって、
    前記ブラウザ・パラメータはインジケータを含み、前記インジケータは、前記ブラウザによって使用することが可能な仮想接続の数を示し、かつアーカイバによって生成される前記複数のアーカイブに含まれるための選択アーカイブ可能オブジェクトを含むアーカイブ可能オブジェクトの選択を最適化するものと、
    前記複数のアーカイブの内容は、オブジェクト最適化に従う前記ウェブ・ページから1つまたは複数のオブジェクトを含むものと、
    を含む請求項6記載の方法。
  8. 前記複数のアーカイブを生成するステップは、さらに前記複数のアーカイブを圧縮するステップを含む請求項6記載の方法。
  9. 前記アーカイブ可能オブジェクトの選択を最適化するステップは、さらに前記ウェブ・ページ内で参照される前記オブジェクトを判別するために、前記ウェブ・ページの構造を示す文書オブジェクト・モデル(DOM)木を走査するステップを含む請求項7記載の方法。
  10. ウェブ・ページのロード時間を低減するための方法であって、
    ウェブ・サーバからブラウザを介してウェブ・ページを要求するステップと、
    前記ウェブ・サーバにブラウザ・パラメータを送信するステップであって、前記ブラウザ・パラメータはブラウザが複数のアーカイブを受信するように設定されるインジケータを含むものと、
    前記ウェブ・ページによって要求された前記複数のアーカイブを前記ウェブ・サーバの前記ブラウザの間の複数の接続を介して受信するステップであって、前記複数のアーカイブの数は接続の数に等しく、前記複数のアーカイブ中の1つのアーカイブは前記複数の接続の中の利用可能な1つのものを介して受信され、前記複数のアーカイブのそれぞれは前記ウェブ・ページによって参照された複数のアーカイブ可能オブジェクトを含むものと、
    前記複数のアーカイブからの前記複数のアーカイブ可能オブジェクトを用いて、前記ウェブ・ページをレンダリングするステップと、
    を含む前記方法。
  11. 前記ウェブ・サーバからアーカイブ応答パラメータを受信するステップであって、前記アーカイブ応答パラメータは、前記ウェブ・サーバが前記複数のアーカイブを配信することが可能なことを示すインジケータを含むものと、をさらに含む請求項10記載の方法。
  12. 前記ブラウザによって前記ウェブ・ページを受信するために使用することが可能な前記接続の数を決定するステップをさらに含む請求項10記載の方法。
  13. 前記ウェブ・ページをレンダリングするステップは、前記複数のアーカイブからアーカイブ可能オブジェクトをとりだすステップをさらに含む請求項10記載の方法。
  14. 前記ウェブ・ページをレンダリングするステップは、前記複数のアーカイブから圧縮されたアーカイブ可能オブジェクトを解凍するステップをさらに含む請求項10記載の方法。
  15. ウェブ・ページのロード時間を低減するためのコンピュータ・プログラムであって、前
    記コンピュータ・プログラムがコンピュータに、
    ウェブ・サーバとウェブ・ページを受信するためのブラウザによって使用することが可能な前記ブラウザとの間で利用可能な接続の数を決定するステップであって、
    ウェブ・サーバからウェブ・ページを要求するステップであって、前記ブラウザが複数のアーカイブを受信できることを示すインジケータを含むブラウザ・パラメータを送信するステップを含むものと、
    前記ブラウザ・パラメータに従って、前記ウェブ・サーバと前記ブラウザとの間に複数の接続を確立するステップと、
    前記ウェブ・サーバから、前記複数のアーカイブを受信するステップであって、前記複数のアーカイブの数は前記接続の数に等しく、前記複数のアーカイブ中の1つのアーカイブは前記複数の接続の中の利用可能なものの1つを介して受信され、前記複数のアーカイブのそれぞれは前記ウェブ・ページに関連する複数のアーカイブ可能オブジェクトを含むものと、
    前記複数のアーカイブからの前記複数のアーカイブ可能オブジェクトを用いて前記ウェブ・ページをレンダリングするステップと、
    を実行させる、コンピュータ・プログラム。
  16. ウェブ・ページのロード時間を低減するためのコンピュータ・プログラムであって、該
    コンピュータ・プログラムがコンピュータに、
    生成する複数のアーカイブの数を決定するステップであって、前記複数のアーカイブの数は、ウェブ・サーバとウェブ・ブラウザとの間の接続の数に等しく、
    前記ウェブ・ブラウザが前記複数のアーカイブを受信するように設定されるインジケータを含むブラウザ・パラメータを受信するステップと、
    アーカイバによって生成される複数のアーカイブに含めるためのアーカイブ可能オブジェクトを選択するステップであって、前記選択されたアーカイブ可能オブジェクトは、オブジェクト優先順位付けによる前記ウェブ・ページに関連する1つ又は複数のアーカイブ可能オブジェクトを含むものと、
    前記選択されたアーカイブ可能オブジェクトを含む複数のアーカイブを生成するステップと、
    前記ウェブ・サーバから前記ウェブ・ブラウザへ前記複数のアーカイブを配信するステップであって、前記複数のアーカイブから1つのアーカイブが前記複数の接続のうちの利用可能なものの1つを介して配信されるものと、
    を実行させる、コンピュータ・プログラム。
  17. 請求項から請求項14記載の何れか1つの方法の全てのステップをコンピュータに実行させる、コンピュータ・プログラム。
JP2010522311A 2007-08-29 2008-08-18 1つ又は複数のアーカイブに小さなオブジェクトをパッケージするようにブラウザとサーバとの間で協働するための装置、システム、及び方法 Expired - Fee Related JP5187980B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US11/847,299 US20090063622A1 (en) 2007-08-29 2007-08-29 Apparatus, system, and method for cooperation between a browser and a server to package small objects in one or more archives
US11/847,299 2007-08-29
US11/847,287 2007-08-29
US11/847,287 US7937478B2 (en) 2007-08-29 2007-08-29 Apparatus, system, and method for cooperation between a browser and a server to package small objects in one or more archives
PCT/EP2008/060792 WO2009027256A1 (en) 2007-08-29 2008-08-18 Apparatus, system, and method for cooperation between a browser and a server to package small objects in one or more archives

Publications (2)

Publication Number Publication Date
JP2010537337A JP2010537337A (ja) 2010-12-02
JP5187980B2 true JP5187980B2 (ja) 2013-04-24

Family

ID=39938295

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2010522311A Expired - Fee Related JP5187980B2 (ja) 2007-08-29 2008-08-18 1つ又は複数のアーカイブに小さなオブジェクトをパッケージするようにブラウザとサーバとの間で協働するための装置、システム、及び方法

Country Status (5)

Country Link
JP (1) JP5187980B2 (ja)
KR (1) KR20100066454A (ja)
CN (1) CN101785005A (ja)
TW (1) TW200928980A (ja)
WO (1) WO2009027256A1 (ja)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8407340B2 (en) * 2010-04-09 2013-03-26 Microsoft Corporation Page load performance analysis
US9582392B2 (en) 2010-09-14 2017-02-28 Microsoft Technology Licensing, Llc Add-on performance advisor
JP5511609B2 (ja) 2010-09-27 2014-06-04 インターナショナル・ビジネス・マシーンズ・コーポレーション ウェブ・ページ作成システム、方法及びプログラム
CN102163206B (zh) * 2011-01-30 2013-05-01 青岛海信传媒网络技术有限公司 页面加载方法及系统
CN102214237B (zh) * 2011-06-30 2013-11-27 北京新媒传信科技有限公司 一种网页制作方法和装置
JP5896712B2 (ja) * 2011-12-08 2016-03-30 キヤノン株式会社 情報処理装置、情報処理方法、プログラム、及び、情報処理システム
TWI630551B (zh) * 2013-05-31 2018-07-21 博世尼克資訊股份有限公司 下載程式的方法
WO2014201660A1 (zh) 2013-06-20 2014-12-24 博世尼克资讯股份有限公司 下载程序的方法
JP5740026B1 (ja) * 2014-03-25 2015-06-24 株式会社 ディー・エヌ・エー 表示画面を表示させるサーバ及び方法
CN104978325B (zh) * 2014-04-03 2019-06-25 腾讯科技(深圳)有限公司 一种网页处理方法、装置及用户终端
TWI634483B (zh) * 2017-09-14 2018-09-01 和碩聯合科技股份有限公司 檔案合成方法、檔案還原方法以及使用此些方法的電子裝置

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH11242640A (ja) * 1998-02-25 1999-09-07 Kdd Corp ファイル転送方法
JP2000020415A (ja) * 1998-07-07 2000-01-21 Hitachi Ltd Wwwサーバプロキシとwwwブラウザプロキシおよびwwwシステム
US20020065800A1 (en) * 2000-11-30 2002-05-30 Morlitz David M. HTTP archive file
JP2004206172A (ja) * 2002-12-20 2004-07-22 Sanyo Electric Co Ltd 通信制御方法および装置
JP4241920B2 (ja) * 2004-03-22 2009-03-18 ベーステクノロジー株式会社 データ通信方法
JP2006133846A (ja) * 2004-11-02 2006-05-25 Hitachi Ltd データ転送方法およびプロキシサーバ

Also Published As

Publication number Publication date
JP2010537337A (ja) 2010-12-02
KR20100066454A (ko) 2010-06-17
CN101785005A (zh) 2010-07-21
WO2009027256A1 (en) 2009-03-05
TW200928980A (en) 2009-07-01

Similar Documents

Publication Publication Date Title
JP5187980B2 (ja) 1つ又は複数のアーカイブに小さなオブジェクトをパッケージするようにブラウザとサーバとの間で協働するための装置、システム、及び方法
US8117315B2 (en) Apparatus, system, and method for archiving small objects to improve the loading time of a web page
US7937478B2 (en) Apparatus, system, and method for cooperation between a browser and a server to package small objects in one or more archives
US11032388B2 (en) Methods for prerendering and methods for managing and configuring prerendering operations
US7155478B2 (en) Selectively handling data processing requests in a computer communications network
US9055124B1 (en) Enhanced caching of network content
US20090063622A1 (en) Apparatus, system, and method for cooperation between a browser and a server to package small objects in one or more archives
US9015269B2 (en) Methods and systems for notifying a server with cache information and for serving resources based on it
US8745212B2 (en) Access to network content
US7945698B2 (en) System and method for partial data compression and data transfer
US8707310B2 (en) Batch processing of jobs on multiprocessors based on estimated job processing time
EP2629208A2 (en) Cloud system and file compression and transmission method in a cloud system
US10909104B2 (en) Caching of updated network content portions
JP6188713B2 (ja) 自律ネットワーク・ストリーミング
CN104468807A (zh) 进行网页缓存的处理方法、云端装置、本地装置及系统
US20200404046A1 (en) Application Download Method and Apparatus, Application Sending Method and Apparatus, and System
US20080016194A1 (en) Dispatching request fragments from a response aggregating surrogate
US8108441B2 (en) Efficient creation, storage, and provision of web-viewable documents
US6772199B1 (en) Method and system for enhanced cache efficiency utilizing selective replacement exemption
CN111339057A (zh) 减少回源请求的方法、装置及计算机可读存储介质
JP4448026B2 (ja) Htmlアプリケーションの送信方法
US9838494B1 (en) Reducing retrieval times for compressed objects
US20040249793A1 (en) Efficient document storage and retrieval for content servers
CN114070844B (zh) 一种文件下载方法、装置、计算设备及存储介质
CN104980465B (zh) 一种文件发布系统、文件发布方法和网络服务器

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110801

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20120511

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120522

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120621

RD12 Notification of acceptance of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7432

Effective date: 20120621

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20120621

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: 20130108

RD14 Notification of resignation of power of sub attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7434

Effective date: 20130112

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130121

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20160201

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees