(57)【要約】【課題】  ウェブ・ページのロード時間を低減するための装置、システム、及び方法を提供する。【解決手段】  １つの実施形態においては、装置、システム、及び方法は、ウェブ・サーバからウェブ・ページを要求することを含み、ウェブ・サーバからウェブ・ページを要求することは、ブラウザがアーカイブを受信できることを示すインジケータを含むブラウザ・パラメータを、ウェブ・サーバに送ることを含む。本発明は、ウェブ・サーバから、各々がウェブ・ページによって参照される複数のアーカイブ可能オブジェクトを含む１つ又は複数のアーカイブを受信することと、１つ又は複数のアーカイブからの複数のアーカイブ可能オブジェクトを用いてウェブ・ページをレンダリングすることとをさらに含むものとすることができる。【選択図】  図１
2010537337.tif 000002
【特許請求の範囲】
【請求項１】
ウェブ・ページのロード時間を低減するためのシステムであって、
ウェブ・サーバからウェブ・ページを要求し、
前記ウェブ・ページ内で参照される１つ又は複数のアーカイブ可能オブジェクトを含む１つ又は複数のアーカイブを受信し、
前記１つ又は複数のアーカイブからのアーカイブ可能オブジェクトを用いて前記ウェブ・ページをレンダリングする
ように設定されたウェブ・ブラウザと、
前記ブラウザから前記ウェブ・ページについての要求を受信し、
前記ウェブ・ページ内で参照される複数のアーカイブ可能オブジェクトを各々が含む１つ又は複数のアーカイブを配信する
ように設定されたウェブ・サーバと、
前記ウェブ・ページのための１つ又は複数のアーカイブについてアーカイブ可能オブジェクトの選択を最適化し、
アーカイブ可能オブジェクトの前記最適化された選択から１つ又は複数のアーカイブを生成する
ように設定されたアーカイバと、
を含むシステム。
【請求項２】
前記ウェブ・ブラウザは、該ウェブ・ブラウザが１つ又は複数のアーカイブを受信するように設定されていることを示すインジケータを含むブラウザ・パラメータを送るようにさらに設定された、請求項１に記載のシステム。
【請求項３】
前記アーカイバは、前記１つ又は複数のアーカイブを配信するのに用いる接続の最適数を決定することにより、前記ウェブ・ブラウザの能力に適合するアーカイブ応答パラメータを決定する、請求項１又は請求項２に記載のシステム。
【請求項４】
前記アーカイバは、前記１つ又は複数のアーカイブを配信するのに用いる接続の前記決定された最適数と等しい数のアーカイブを生成する、請求項３に記載のシステム。
【請求項５】
前記アーカイバは、
アーカイブ応答パラメータを前記ウェブ・ブラウザに送信することであって、前記アーカイブ応答パラメータは、前記アーカイバが１つ又は複数のアーカイブを生成するように設定されていることを示すインジケータと前記ウェブ・サーバのための利用可能な接続とを含む、送信することと、
前記１つ又は複数のアーカイブを配信するのに用いる接続の最大数を決定することと、によって、前記ブラウザの能力に適合する応答パラメータを決定する、請求項１に記載のシステム。
【請求項６】
前記ブラウザは、前記ウェブ・サーバとの以前の対話からブラウザ・キャッシュに存在する、前記ウェブ・ページに関連する予めキャッシュされたオブジェクトのリストを送信することによって、前記ウェブ・サーバにブラウザ・パラメータを送るようにさらに設定される、請求項１に記載のシステム。
【請求項７】
前記アーカイバは、
前記ブラウザ・キャッシュに存在する予めキャッシュされたオブジェクトの前記リストを、前記ウェブ・ページ内で参照される前記アーカイブ可能オブジェクトと比較し、
予めキャッシュされたオブジェクトの前記リストに存在しないアーカイブ可能オブジェクトを判別し、
１つ又は複数のアーカイブのために前記ブラウザ・キャッシュに存在しないアーカイブ可能オブジェクトを選択する、
ことによって、前記ブラウザの能力に適合するアーカイブ応答パラメータを決定する、請求項６に記載のシステム。
【請求項８】
ウェブ・ページのロード時間を低減するためにプログラムされたコンピュータ使用可能プログラム・コードを有するコンピュータ可読媒体を含むコンピュータ・プログラム製品であって、前記コンピュータ・プログラム製品の動作が、
ブラウザ・パラメータを受信することであって、前記ブラウザ・パラメータは、ブラウザが該ブラウザのための１つ又は複数のアーカイブ及び利用可能な接続を受信するように設定されていることを示すインジケータを含む、ことと、
１つ又は複数のアーカイブを配信するのに用いる接続の数を決定することと、
ウェブ・ページのための１つ又は複数のアーカイブについてアーカイブ可能オブジェクトの選択を最適化することと、
アーカイブ可能オブジェクトの前記最適化された選択を含む１つ又は複数のアーカイブを配信するのに用いる接続の数と等しい数のアーカイブを生成することと、
前記１つ又は複数のアーカイブを配信することであって、前記１つ又は複数のアーカイブの各々は、前記ウェブ・ページ内で参照される複数のアーカイブ可能オブジェクトを含む、ことと、
を含む、コンピュータ・プログラム製品。
【請求項９】
アーカイブ可能オブジェクトの選択を最適化することは、アーカイバによって生成される１つ又は複数のアーカイブに含めるためのアーカイブ可能オブジェクトを選択することをさらに含み、前記アーカイブの内容は、オブジェクト優先順位付けに従って前記ウェブ・ページからの１つ又は複数のアーカイブ可能オブジェクトを含む、請求項８に記載のコンピュータ・プログラム製品。
【請求項１０】
アーカイブ可能オブジェクトの選択を最適化することは、前記ウェブ・ページ内で参照される前記オブジェクトを判別するために、前記ウェブ・ページの構造を示す文書オブジェクト・モデル木を走査することをさらに含む、請求項９に記載のコンピュータ・プログラム製品。
【請求項１１】
アーカイブ可能オブジェクトの選択を最適化することは、１つ又は複数の優先順位付け基準に従って前記アーカイブ可能オブジェクトに優先順位を割り当てることをさらに含む、請求項１０に記載のコンピュータ・プログラム製品。
【請求項１２】
前記優先順位付け基準は、前記ＤＯＭ木における前記オブジェクトの下位オブジェクトの数を含む、請求項１１に記載のコンピュータ・プログラム製品。
【請求項１３】
前記優先順位付け基準は、前記文書オブジェクト・モデル木における前記オブジェクトの階層レベルを含む、請求項１１に記載のコンピュータ・プログラム製品。
【請求項１４】
１つ又は複数のアーカイブに含めるためのアーカイブ可能オブジェクトを選択することは、前記オブジェクトのサイズが閾値サイズより小さいという判定に応答して、含めるためのアーカイブ可能オブジェクトを選択することを含む、請求項１１に記載のコンピュータ・プログラム製品。
【請求項１５】
多数のアーカイブを生成することは、前記１つ又は複数のアーカイブの中の前記アーカイブ可能オブジェクトを優先順位に従ってソートして、優先順位がより高いアーカイブ可能オブジェクトが優先順位のより低いアーカイブ可能オブジェクトより前記アーカイブの先頭に近くなるようにすることをさらに含む、請求項１１に記載のコンピュータ・プログラム製品。
【請求項１６】
多数のアーカイブを生成することは、前記１つ又は複数のアーカイブを圧縮することをさらに含む、請求項８に記載のコンピュータ・プログラム製品。
【請求項１７】
ウェブ・ページのロード時間を低減するためにプログラムされたコンピュータ使用可能プログラム・コードを有するコンピュータ可読媒体を含むコンピュータ・プログラム製品であって、前記コンピュータ・プログラム製品の動作は、
ウェブ・サーバからウェブ・ページを要求することと、
前記ウェブ・サーバから、各々が前記ウェブ・ページによって参照される複数のアーカイブ可能オブジェクトを含む１つ又は複数のアーカイブを受信することと、
前記１つ又は複数のアーカイブからの前記複数のアーカイブ可能オブジェクトを用いて、前記ウェブ・ページをレンダリングすることと、
を含む、コンピュータ・プログラム製品。
【請求項１８】
前記ウェブ・サーバから、前記ウェブ・サーバが１つ又は複数のアーカイブを配信できることを示すインジケータを含むアーカイブ応答パラメータを受信することをさらに含む、請求項１７に記載のコンピュータ・プログラム製品。
【請求項１９】
前記ブラウザが前記ウェブ・ページを受信するのに利用可能な接続の数を決定することをさらに含む、請求項１７に記載のコンピュータ・プログラム製品。
【請求項２０】
ウェブ・サーバからウェブ・ページを要求することは、前記ブラウザが前記ウェブ・ページの一部を受信するのに利用可能な前記接続の数を示す接続インジケータを含むブラウザ・パラメータを送ることをさらに含む、請求項１９に記載のコンピュータ・プログラム製品。
【請求項２１】
前記ウェブ・サーバからのアーカイブ応答パラメータと前記ブラウザが利用可能な前記接続の数とに従って、前記ウェブ・サーバとの接続を確立することをさらに含む、請求項２０に記載のコンピュータ・プログラム製品。
【請求項２２】
前記ウェブ・ページをレンダリングすることは、前記１つ又は複数のアーカイブからアーカイブ可能オブジェクトを抽出することをさらに含む、請求項１７に記載のコンピュータ・プログラム製品。
【請求項２３】
前記ウェブ・ページをレンダリングすることは、圧縮されたアーカイブを解凍することをさらに含む、請求項１７に記載のコンピュータ・プログラム製品。
【請求項２４】
ウェブ・ページのロード時間を低減するためにプログラムされたコンピュータ使用可能プログラム・コードを有するコンピュータ可読媒体を含むコンピュータ・プログラム製品であって、前記コンピュータ・プログラム製品の動作は、
ブラウザがウェブ・ページを受信するのに利用可能な接続の数を決定することと、
ウェブ・サーバからウェブ・ページを要求することであって、
前記ブラウザがアーカイブを受信できることを示すインジケータと、前記ブラウザが前記ウェブ・ページの一部を受信するのに利用可能な前記接続の数を示すインジケータとを含む、ブラウザ・パラメータを送信することと、
前記ウェブ・サーバから、前記ウェブ・サーバが１つ又は複数のアーカイブを配信できることを示すインジケータを含むアーカイブ応答パラメータを受信することと、
前記ウェブ・サーバからの前記アーカイブ応答パラメータと前記ブラウザ・パラメータとに従って、前記ウェブ・サーバとの１つ又は複数の接続を確立することと、
前記ウェブ・サーバから、各々が前記ウェブ・ページに関連する複数のアーカイブ可能オブジェクトを含む１つ又は複数のアーカイブを受信することと、
前記１つ又は複数のアーカイブからの前記複数のアーカイブ可能オブジェクトを用いて前記ウェブ・ページをレンダリングすることと、
を含む、ウェブ・サーバからウェブ・ページを要求することと、
を含む、コンピュータ・プログラム製品。
【請求項２５】
ウェブ・ページのロード時間を低減するためにプログラムされたコンピュータ使用可能プログラム・コードを有するコンピュータ可読媒体を含むコンピュータ・プログラム製品であって、前記コンピュータ・プログラム製品の動作は、
生成するアーカイブの数を決定することと、
アーカイバによって生成される１つ又は複数のアーカイブに含めるためのアーカイブ可能オブジェクトを選択することであって、前記選択されたアーカイブ可能オブジェクトは、オブジェクト優先順位付けによる前記ウェブ・ページに関連する１つ又は複数のアーカイブ可能オブジェクトを含み、アーカイブ可能オブジェクトは、前記アーカイブ可能オブジェクトが閾値を下回るサイズを有するという判定に応答して選択される、ことと、
ウェブ・ページのための１つ又は複数のアーカイブについて前記選択されたアーカイブ可能オブジェクトを最適化することと、
前記決定されたアーカイブの数と等しい数のアーカイブを生成することであって、前記アーカイブはアーカイブ可能オブジェクトの前記最適化された選択を含む、ことと、
を含む、コンピュータ・プログラム製品。
【請求項２６】
ウェブ・ページのロード時間を低減するための方法であって、
ウェブ・サーバからウェブ・ページを要求することと、
前記ウェブ・ページ内で参照される１つ又は複数のアーカイブ可能オブジェクトを含む１つ又は複数のアーカイブを受信することと、
前記１つ又は複数のアーカイブからのアーカイブ可能オブジェクトを用いて前記ウェブ・ページをレンダリングすることと、
ブラウザから前記ウェブ・ページについての要求を受信することと、
前記ウェブ・ページ内で参照される複数のアーカイブ可能オブジェクトを各々が含む１つ又は複数のアーカイブを配信することと、
前記ウェブ・ページのための１つ又は複数のアーカイブについてアーカイブ可能オブジェクトの選択を最適化することと、
アーカイバにおいて、前記最適化されたアーカイブ可能オブジェクトの選択から１つ又は複数のアーカイブを生成することと、
を含む方法。
【請求項２７】
前記ブラウザが１つ又は複数のアーカイブを受信するように設定されていることを示すインジケータを含むブラウザ・パラメータを送ることをさらに含む、請求項２６に記載の方法。
【請求項２８】
前記アーカイバは、前記１つ又は複数のアーカイブを配信するのに用いる接続の最適数を決定することにより、前記ブラウザの能力に適合するアーカイブ応答パラメータを決定する、請求項２６又は請求項２７に記載の方法。
【請求項２９】
前記１つ又は複数のアーカイブを配信するのに用いる接続の前記決定された最適数と等しい数のアーカイブを生成することをさらに含む、請求項２８に記載の方法。
【請求項３０】
アーカイブ応答パラメータを前記ブラウザに送信することであって、前記アーカイブ応答パラメータは、前記アーカイバが１つ又は複数のアーカイブを生成するように設定されていることを示すインジケータと前記ウェブ・サーバのための利用可能な接続とを含む、送信することと、
前記１つ又は複数のアーカイブを配信するのに用いる接続の最大数を決定することと、により、前記ブラウザの能力に適合する応答パラメータを決定することをさらに含む、請求項２６に記載の方法。
【請求項３１】
前記ブラウザによる前記ウェブ・サーバとの以前の対話からブラウザ・キャッシュに存在する、前記ウェブ・ページに関連する予めキャッシュされたオブジェクトのリストを送信することによって、前記ウェブ・サーバにブラウザ・パラメータを送ることをさらに含む、請求項２６に記載の方法。
【請求項３２】
前記ブラウザ・キャッシュに存在する予めキャッシュされたオブジェクトの前記リストを、前記ウェブ・ページ内で参照される前記アーカイブ可能オブジェクトと比較することと、
予めキャッシュされたオブジェクトの前記リストに存在しないアーカイブ可能オブジェクトを判別することと、
１つ又は複数のアーカイブのために前記ブラウザ・キャッシュに存在しないアーカイブ可能オブジェクトを選択することと、
によって、前記ブラウザの能力に適合するアーカイブ応答パラメータを決定することをさらに含む、請求項３１に記載の方法。
【請求項３３】
ウェブ・ページのロード時間を低減するための方法であって、
ブラウザ・パラメータを受信することであって、前記ブラウザ・パラメータは、ブラウザが該ブラウザのための１つ又は複数のアーカイブ及び利用可能な接続を受信するように設定されていることを示すインジケータを含む、ことと、
１つ又は複数のアーカイブを配信するのに用いる接続の数を決定することと、
ウェブ・ページのための１つ又は複数のアーカイブについてアーカイブ可能オブジェクトの選択を最適化することと、
アーカイブ可能オブジェクトの前記最適化された選択を含む１つ又は複数のアーカイブを配信するのに用いる接続の数と等しい数のアーカイブを生成することと、
前記１つ又は複数のアーカイブを配信することであって、前記１つ又は複数のアーカイブの各々は、前記ウェブ・ページ内で参照される複数のアーカイブ可能オブジェクトを含む、ことと、
を含む方法。
【請求項３４】
アーカイブ可能オブジェクトの選択を最適化することは、アーカイバによって生成される１つ又は複数のアーカイブに含めるためのアーカイブ可能オブジェクトを選択することをさらに含み、前記アーカイブの内容は、オブジェクト優先順位付けに従って前記ウェブ・ページからの１つ又は複数のアーカイブ可能オブジェクトを含む、請求項３３に記載の方法。
【請求項３５】
アーカイブ可能オブジェクトの選択を最適化することは、前記ウェブ・ページ内で参照される前記オブジェクトを判別するために、前記ウェブ・ページの構造を示す文書オブジェクト・モデル木を走査することをさらに含む、請求項３３又は請求項３４に記載の方法。
【請求項３６】
アーカイブ可能オブジェクトの選択を最適化することは、１つ又は複数の優先順位付け基準に従って前記アーカイブ可能オブジェクトに優先順位を割り当てることをさらに含む、請求項３５に記載の方法。
【請求項３７】
前記優先順位付け基準は、前記ＤＯＭ木における前記オブジェクトの下位オブジェクトの数を含む、請求項３６に記載の方法。
【請求項３８】
前記優先順位付け基準は、前記文書オブジェクト・モデル木における前記オブジェクトの階層レベルを含む、請求項３６に記載の方法。
【請求項３９】
１つ又は複数のアーカイブに含めるためのアーカイブ可能オブジェクトを選択することは、前記オブジェクトのサイズが閾値サイズより小さいという判定に応答して、含めるためのアーカイブ可能オブジェクトを選択することを含む、請求項３４から請求項３８のいずれか１つの請求項に記載の方法。
【請求項４０】
多数のアーカイブを生成することは、前記１つ又は複数のアーカイブの中の前記アーカイブ可能オブジェクトを優先順位に従ってソートして、優先順位がより高いアーカイブ可能オブジェクトが優先順位のより低いアーカイブ可能オブジェクトより前記アーカイブの先頭に近くなるようにすることをさらに含む、請求項３３から請求項３９のいずれか１つの請求項に記載の方法。
【請求項４１】
多数のアーカイブを生成することは、前記１つ又は複数のアーカイブを圧縮することをさらに含む、請求項３３から請求項４０のいずれか１つの請求項に記載の方法。
【請求項４２】
ウェブ・ページのロード時間を低減するための方法であって、
ウェブ・サーバからウェブ・ページを要求することと、
前記ウェブ・サーバから、各々が前記ウェブ・ページによって参照される複数のアーカイブ可能オブジェクトを含む１つ又は複数のアーカイブを受信することと、
前記１つ又は複数のアーカイブからの前記複数のアーカイブ可能オブジェクトを用いて、前記ウェブ・ページをレンダリングすることと、
を含む方法。
【請求項４３】
前記ウェブ・サーバから、前記ウェブ・サーバが１つ又は複数のアーカイブを配信できることを示すインジケータを含むアーカイブ応答パラメータを受信することをさらに含む、請求項４２に記載の方法。
【請求項４４】
前記ブラウザが前記ウェブ・ページを受信するのに利用可能な接続の数を決定することをさらに含む、請求項４２又は請求項４３に記載の方法。
【請求項４５】
ウェブ・サーバからウェブ・ページを要求することは、前記ブラウザが前記ウェブ・ページの一部を受信するのに利用可能な前記接続の数を示す接続インジケータを含むブラウザ・パラメータを送ることをさらに含む、請求項４２から請求項４４のいずれか１つの請求項に記載の方法。
【請求項４６】
前記ウェブ・サーバからのアーカイブ応答パラメータと前記ブラウザが利用可能な前記接続の数とに従って、前記ウェブ・サーバとの接続を確立することをさらに含む、請求項４５に記載の方法。
【請求項４７】
前記ウェブ・ページをレンダリングすることは、前記１つ又は複数のアーカイブからアーカイブ可能オブジェクトを抽出することをさらに含む、請求項４２から請求項４６のいずれか１つの請求項に記載の方法。
【請求項４８】
前記ウェブ・ページをレンダリングすることは、圧縮されたアーカイブを解凍することをさらに含む、請求項４２から請求項４６のいずれか１つの請求項に記載の方法。
【請求項４９】
ウェブ・ページのロード時間を低減するための方法であって、
ブラウザがウェブ・ページを受信するのに利用可能な接続の数を決定することと、
ウェブ・サーバからウェブ・ページを要求することであって、
前記ブラウザがアーカイブを受信できることを示すインジケータと、前記ブラウザが前記ウェブ・ページの一部を受信するのに利用可能な前記接続の数を示すインジケータとを含むブラウザ・パラメータを送信することと、
前記ウェブ・サーバから、前記ウェブ・サーバが１つ又は複数のアーカイブを配信できることを示すインジケータを含むアーカイブ応答パラメータを受信することと、
前記ウェブ・サーバからの前記アーカイブ応答パラメータと前記ブラウザ・パラメータとに従って、前記ウェブ・サーバとの１つ又は複数の接続を確立することと、
前記ウェブ・サーバから、各々が前記ウェブ・ページに関連する複数のアーカイブ可能オブジェクトを含む１つ又は複数のアーカイブを受信することと、
前記１つ又は複数のアーカイブからの前記複数のアーカイブ可能オブジェクトを用いて前記ウェブ・ページをレンダリングすることと、
を含む、ことと、
を含む方法。
【請求項５０】
ウェブ・ページのロード時間を低減するための方法であって、
生成するアーカイブの数を決定することと、
アーカイバによって生成される１つ又は複数のアーカイブに含めるためのアーカイブ可能オブジェクトを選択することであって、前記選択されたアーカイブ可能オブジェクトは、オブジェクト優先順位付けによる前記ウェブ・ページに関連する１つ又は複数のアーカイブ可能オブジェクトを含み、アーカイブ可能オブジェクトは、前記アーカイブ可能オブジェクトが閾値を下回るサイズを有するという判定に応答して選択される、ことと、
ウェブ・ページのための１つ又は複数のアーカイブについて前記選択されたアーカイブ可能オブジェクトを最適化することと、
前記決定されたアーカイブの数と等しい数のアーカイブを生成することであって、前記アーカイブはアーカイブ可能オブジェクトの前記最適化された選択を含む、ことと、
を含む方法。
【請求項５１】
コンピュータ上で実行されたときに請求項２６から請求項５０の全てのステップを実施するように適合されたプログラム・コード手段を含むコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ウェブ・ページに関し、より具体的には、ウェブ・ページのロード時間を改善することに関する。
【背景技術】
【０００２】
企業及び個人のアプリケーション開発のための標準プラットフォームとして、インターネットが浮上してきた。操作性を向上させたインターネット・アプリケーションの構築に対する需要が、より良好なユーザ体験を表現するマルチメディア技術の採用を拡大させてきた。結果として、標準的なウェブ・ページは、通常、大量の画像リソース、実行可能なスクリプト、及びスタイル定義を含む。こうしたリソースの各々のファイル・サイズは小さく、通常は１Ｋに満たない。こうした小さなリソースは、ウェブ・サーバに配置されたときには、高いオーバーヘッド要件を有するのが典型的であり、相対的に高いネットワーク帯域幅及びサーバ作業負荷を要求することになる。
【０００３】
リソースのネットワーク・オーバーヘッド要件として、プロトコル・ヘッダ、ＨＴＴＰヘッダ、ＴＣＰヘッダ、及びＩＰヘッダが挙げられる。平均的なＨＴＴＰヘッダは、単一のＨＴＴＰ要求又は応答について３００バイトより大きく、従って、１回の要求／応答の対話には６００から７００バイトより大きいＨＴＴＰヘッダが存在する。上述のように、多くのウェブ・ページにおけるオブジェクトのサイズは既に非常に小さく、従って、ＨＴＴＰヘッダの不必要なコストは顕著なものである。オブジェクトが小さいほど、オーバーヘッドの比率は大きくなる。各々の要求のオーバーヘッド要件に寄与するヘッダは、現在のインターネット構造の根本的な部分であるため、これらを減少させる手段は殆どない。
【０００４】
オーバーヘッドによって生じる遅延に加えて、ブラウザは、ウェブ・ページにアクセスするときに、ウェブ・ページ内の各々のオブジェクトについて要求を送り、各々のオブジェクトについて応答を待つ。このことにより、ヘッダなどによって生じるオーバーヘッド遅延を悪化させる別の「往復時間」が生じる。ウェブ・ページが多数の小さなオブジェクトから構成されているときには、オブジェクトの待ち時間は累積し、さらにロードを遅らせる。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上記の議論から、ウェブ・ページのロード時間を低減するための装置、システム、及び方法に対する必要性が存在することは明らかである。有利なことに、このような装置、システム、及び方法は、ウェブ・ページのロード時間を低減するために協働して動作するブラウザとウェブ・サーバとの両方を含むことが好ましい。
【課題を解決するための手段】
【０００６】
本発明は、当該技術分野の現在の状態に対応して開発されたものであり、特に、現在利用可能なウェブ・ページ送信技術によっては未だ完全に解決されていない、当該技術分野における課題及び必要性に対応して開発されたものである。従って、本発明は、当該技術分野における上述の欠点の多く又は全てを克服する、ウェブ・ページのロード時間を低減するための装置、システム、及び方法を提供しようとするものである。
【０００７】
本発明のシステムは、ウェブ・ページのロード時間を低減するために提示される。本システムは、ウェブ・ブラウザ、ウェブ・サーバ、及びアーカイバにより具体化することができる。具体的には、本システムは、１つの実施形態においては、ウェブ・サーバからウェブ・ページを要求し、ウェブ・ページにおいて参照される１つ又は複数のアーカイブ可能オブジェクトを含む１つ又は複数のアーカイブを受信し、１つ又は複数のアーカイブからのアーカイブ可能オブジェクトを用いてウェブ・ページをレンダリングするように設定されたウェブ・ブラウザを含む。ウェブ・サーバは、ブラウザからウェブ・ページについての要求を受信し、１つ又は複数のアーカイブを配信するように設定することができ、１つ又は複数のアーカイブの各々は、ウェブ・ページ内で参照される複数のアーカイブ可能オブジェクトを含む。アーカイバは、ウェブ・ページのための１つ又は複数のアーカイブついてアーカイブ可能オブジェクトの選択を最適化し、アーカイブ可能オブジェクトの最適化された選択から１つ又は複数のアーカイブを生成するように設定することができる。
【０００８】
本システムにおけるブラウザは、ブラウザが１つ又は複数のアーカイブを受信するように設定されていることを示すインジケータを含むブラウザ・パラメータを送るようにさらに設定することができる。別の実施形態においては、ブラウザは、そのブラウザについて利用可能な接続の最大数を受信するようにブラウザが設定されていることを示すインジケータを含むブラウザ・パラメータを送る。
【０００９】
本システムの特定の実施形態においては、アーカイバは、１つ又は複数のアーカイブを配信するのに用いる接続の最適数を決定することにより、ブラウザの能力に適合するアーカイブ応答パラメータを決定するようにさらに設定される。さらなる実施形態においては、アーカイバは、１つ又は複数のアーカイブを配信するのに用いる接続の決定された最適数と等しい数のアーカイブを生成する。別の実施形態においては、アーカイバは、アーカイバが１つ又は複数のアーカイブを生成するように設定されていることを示すインジケータとウェブ・サーバのための利用可能な接続とを含むアーカイブ応答パラメータをブラウザに送信することと、１つ又は複数のアーカイブを配信するのに用いる接続の最大数を決定することとによって、ブラウザの能力に適合するアーカイブ応答パラメータを決定する。
【００１０】
本システムの１つの実施形態においては、ブラウザは、ウェブ・サーバとの以前の対話からブラウザ・キャッシュに存在する、ウェブ・ページに関連する予めキャッシュされたオブジェクトのリストを送信することによって、ブラウザ・パラメータをウェブ・サーバに送るようにさらに設定される。別の実施形態においては、アーカイバは、ブラウザ・キャッシュに存在する予めキャッシュされたオブジェクトのリストを、ウェブ・ページ内で参照されるアーカイブ可能オブジェクトと比較し、予めキャッシュされたオブジェクトのリストに存在しないアーカイブ可能オブジェクトを判別し、１つ又は複数のアーカイブのためにブラウザ・キャッシュに存在しないアーカイブ可能オブジェクトを選択することによって、ブラウザの能力に適合するアーカイブ応答パラメータを決定する。
【００１１】
ウェブ・ページのロード時間を低減するためにプログラムされたコンピュータ使用可能プログラム・コードを有するコンピュータ可読媒体を含むコンピュータ・プログラム製品が提供される。本コンピュータ・プログラム製品は、１つの実施形態においては、ブラウザのために１つ又は複数のアーカイブ及び利用可能な接続を受信するようにブラウザが設定されていることを示すインジケータを含むブラウザ・パラメータを受信することを含む動作のための命令を含む。本コンピュータ・プログラム製品は、１つ又は複数のアーカイブを配信するのに用いる接続の数を決定し、ウェブ・ページのための１つ又は複数のアーカイブについてアーカイブ可能オブジェクトの選択を最適化する動作のための命令をさらに含むことができる。
【００１２】
特定の実施形態においては、本コンピュータ・プログラム製品は、アーカイブ可能オブジェクトの最適化された選択を含む１つ又は複数のアーカイブを配信するのに用いる接続の数と等しい数のアーカイブを生成するための命令を含む。別の実施形態においては、本コンピュータ・プログラム製品は、１つ又は複数のアーカイブを配信するための動作を含み、１つ又は複数のアーカイブの各々は、ウェブ・ページ内で参照される複数のアーカイブ可能オブジェクトを含む。１つの実施形態においては、アーカイブ可能オブジェクトの選択を最適化することは、アーカイバによって生成される１つ又は複数のアーカイブに含めるためのアーカイブ可能オブジェクトを選択することをさらに含み、アーカイブの内容は、オブジェクト優先順位付けに従ってウェブ・ページからの１つ又は複数のアーカイブ可能オブジェクトを含む。
【００１３】
本コンピュータ・プログラム製品の１つの実施形態においては、アーカイブ可能オブジェクトの選択を最適化することは、ウェブ・ページ内で参照されるオブジェクトを判別するために、ウェブ・ページの構造を示す文書オブジェクト・モデル木(ＤＯＭツリーまたはＤＯＭ木)を走査することをさらに含む。別の実施形態においては、アーカイブ可能オブジェクトの選択を最適化することは、１つ又は複数の優先順位付け基準に従ってアーカイブ可能オブジェクトに優先順位を割り当てることをさらに含む。優先順位付け基準は、ＤＯＭ木におけるオブジェクトの下位オブジェクトの数を含むことができる。優先順位付け基準は、文書オブジェクト・モデル木におけるオブジェクトの階層レベルを含むことができる。
【００１４】
本コンピュータ・プログラム製品の１つの実施形態においては、１つ又は複数のアーカイブに含めるためのアーカイブ可能オブジェクトを選択することは、オブジェクトのサイズが閾値サイズより小さいという判定に応答して、含めるためのアーカイブ可能オブジェクトを選択することを含む。別の実施形態においては、１つ又は複数のアーカイブに含めるためのアーカイブ可能オブジェクトを選択することは、ウェブ・サーバとの以前の対話からブラウザ・キャッシュに存在する予めキャッシュされたアーカイブ可能オブジェクトのリストに、アーカイブ可能オブジェクトがないという判定に応答して、含めるオブジェクトを選択することを含む。
【００１５】
本コンピュータ・プログラム製品の１つの実施形態においては、多数のアーカイブを生成することは、１つ又は複数のアーカイブの中のアーカイブ可能オブジェクトを優先順位に従ってソートして、優先順位のより高いアーカイブ可能オブジェクトが優先順位のより低いアーカイブ可能オブジェクトよりアーカイブの先頭に近くなるようにすることをさらに含む。多数のアーカイブを生成することは、選択されたアーカイブ可能オブジェクトを優先順位に従ってソートすることと、各々のアーカイブについて容器（ｂｉｎ）を作成することと、容器内のオブジェクトの合計サイズが目標サイズより小さいままであることに応答して、ソートされた順序に従って各々の容器にアーカイブ可能オブジェクトを追加することとを含むことができる。１つの実施形態においては、多数のアーカイブを生成することは、１つ又は複数のアーカイブを圧縮することをさらに含む。
【００１６】
コンピュータ可読コードをコンピュータ・システムに組み込むことを含む、コンピュータ・インフラストラクチャを配置するための本発明の方法がさらに提示され、本コンピュータ・システムと組み合わされたコードは、ウェブ・サーバからウェブ・ページを要求することが可能であり、ウェブ・サーバからウェブ・ページを要求することは、ブラウザがアーカイブを受信できることを示すインジケータを含むブラウザ・パラメータをウェブ・サーバに送ることを含む。１つの実施形態においては、本コンピュータ・システムと組み合わされたコードは、さらに、ウェブ・サーバから、ウェブ・ページによって参照される複数のアーカイブ可能オブジェクトを各々が含む１つ又は複数のアーカイブを受信することができる。別の実施形態においては、本コンピュータ・システムと組み合わされたコードは、１つ又は複数のアーカイブからの複数のアーカイブ可能オブジェクトを用いて、ウェブ・ページをレンダリングすることができる。
【００１７】
別の実施形態においては、本コンピュータ・システムと組み合わされたコードは、ウェブ・サーバから、ウェブ・サーバがアーカイブを配信できることを示すインジケータを含むアーカイブ応答パラメータを受信することができる。本コンピュータ・システムと組み合わされたコードはさらに、１つの実施形態においては、ブラウザがウェブ・ページを受信するのに利用可能な接続の数を決定することができる。別の実施形態においては、本コンピュータ・システムと組み合わされたコードは、ブラウザがウェブ・ページの一部を受信するのに利用可能な接続の数を示す接続インジケータを含むブラウザ・パラメータを送ることができる。
【００１８】
本方法はさらに、ウェブ・サーバからのアーカイブ応答パラメータとブラウザが利用可能な接続の数とに従って、ウェブ・サーバとの接続を確立することを含むことができる。別の実施形態においては、本方法は、ブラウザがウェブ・サーバとの以前の対話からキャッシュに保持したアーカイブ可能オブジェクトのリストを送信することを含む。本方法は、１つ又は複数のアーカイブからアーカイブ可能オブジェクトを抽出することをさらに含むことができる。
【００１９】
特定の実施形態においては、ウェブ・ページをレンダリングすることは、アーカイブ可能オブジェクトをキャッシュに格納することをさらに含む。別の実施形態においては、ウェブ・ページをレンダリングすることは、アーカイブからのアーカイブ可能オブジェクトを表示装置に表示することをさらに含む。更なる実施形態においては、ウェブ・ページをレンダリングすることは、圧縮されたアーカイブを解凍することをさらに含む。
【００２０】
ウェブ・ページのロード時間を低減するための方法がさらに提供される。開示された実施形態における本方法は、説明される装置及びシステムの動作に関して上述の機能を実行するのに必要なステップを実質的に含む。１つの実施形態においては、本方法は、ブラウザがウェブ・ページを受信するのに利用可能な接続の数を決定することを含む。本方法は、ウェブ・サーバからウェブ・ページを要求することをさらに含むことができる。ウェブ・ページを要求することは、ブラウザがアーカイブを受信できることを示すインジケータとブラウザがウェブ・ページの一部を受信するのに利用可能な接続の数を示すインジケータとを含む、ブラウザ・パラメータを送ることを含むことができる。
【００２１】
１つの実施形態においては、本方法は、ウェブ・サーバから、ウェブ・サーバがアーカイブを配信できることを示すインジケータを含むアーカイブ応答パラメータを受信することを含む。本方法はさらに、ウェブ・サーバからのアーカイブ応答パラメータとブラウザ・パラメータとに従って、ウェブ・サーバとの１つ又は複数の接続を確立することを含むことができる。１つの実施形態においては、本方法は、ウェブ・サーバから、各々がウェブ・ページに関連付けられた複数のアーカイブ可能オブジェクトを含む１つ又は複数のアーカイブを受信することを含む。本方法はさらに、１つ又は複数のアーカイブからの複数のアーカイブ可能オブジェクトを用いてウェブ・ページをレンダリングすることを含むことができる。
【００２２】
ウェブ・ページのロード時間を低減するためにプログラムされたコンピュータ使用可能プログラム・コードを有するコンピュータ可読媒体を含むコンピュータ・プログラム製品が、さらに提供される。本コンピュータ・プログラム製品の動作は、１つの実施形態においては、生成するアーカイブの数を決定することと、アーカイバにより生成される１つ又は複数のアーカイブに含まれるアーカイブ可能オブジェクトを選択することとを含み、選択されたアーカイブ可能オブジェクトは、オブジェクト優先順位付けに従ってウェブ・ページに関連付けられた１つ又は複数のアーカイブ可能オブジェクトを含み、アーカイブ可能オブジェクトは、そのオブジェクトが閾値を下回るサイズを有するという判定に応答して、選択される。１つの実施形態においては、本コンピュータ・プログラム製品は、ウェブ・ページのための１つ又は複数のアーカイブについて選択されたアーカイブ可能オブジェクトを最適化する動作を含む。本コンピュータ・プログラム製品はまた、決定されたアーカイブの数と等しい数のアーカイブを生成するための動作を含むことができ、アーカイブはアーカイブ可能オブジェクトの最適化された選択を含む。
【００２３】
本明細書の全体を通じて、特徴、利点、又は同様の用語への言及は、本発明を用いて実現することができる全ての特徴及び利点が、本発明のいずれかの単一の実施形態に存在すべきであること又は存在することを意味するものではない。むしろ、特徴及び利点に言及する用語は、一実施形態との関連で説明される特定の特徴、利点、又は特性が本発明の少なくとも１つの実施形態に含まれることを意味するものと理解される。よって、特徴及び利点、並びに類似の用語についての説明は、本明細書の全体を通じて、必ずというわけではないが同一の実施形態を指すことがある。
【００２４】
さらに、本発明の説明された特徴、利点、及び特性は、いずれかの適切な方法で１つ又は複数の実施形態に組み合わせることができる。当業者であれば、本発明は、特定の実施形態の１つ又は複数の特定の特徴又は利点がなくとも実施できることが判るであろう。他の例においては、本発明の実施形態の全てに存在するとは限らない付加的な特徴及び利点が、特定の実施形態において認識されることがある。
【００２５】
本発明のこれらの特徴及び利点は、以下の説明及び特許請求の範囲から、より完全に明らかとなるか、又は、以下に示される本発明の実施から知ることができる。
【図面の簡単な説明】
【００２６】
【図１】本発明による、ウェブ・ページのダウンロード時間を改善するためのシステムの１つの実施形態を示す概略的なブロック図である。
【図２】本発明によるアーカイバの１つの実施形態を示す概略的なブロック図である。
【図３】本発明による選択モジュールの１つの実施形態を示す概略的なブロック図である。
【図４】本発明による文書オブジェクト・モデル木及び順序付けされたアーカイブ可能オブジェクトの１つの実施形態を示す概略的なブロック図である。
【図５】本発明によるアーカイブ生成モジュールの１つの実施形態を示す概略的なブロック図である。
【図６】本発明によるアーカイブ対応ブラウザの１つの実施形態を示す概略的なブロック図である。
【図７】本発明によるウェブ・サーバの１つの実施形態を示す概略的なブロック図である。
【図８】本発明による、ウェブ・ページのダウンロード時間を改善するための方法の１つの実施形態を示す概略的なフローチャート図である。
【図９】本発明による、ウェブ・ブラウザにおけるウェブ・ページのダウンロード時間を改善するための方法の１つの実施形態を示す概略的なフローチャート図である。
【図１０】本発明による、ウェブ・サーバにおけるウェブ・ページのダウンロード時間を改善するための方法の１つの実施形態を示す概略的なフローチャート図である。
【発明を実施するための形態】
【００２７】
ここで、本発明の実施形態が、添付の図面を参照して例として説明される。
【００２８】
本明細書において説明される機能ユニットの多くは、それらの実装の独立性を特に強調するために、モジュールと表記されている。例えば、モジュールは、カスタムＶＬＳＩ回路若しくはゲート・アレイを含むハードウェア回路、論理チップなどの既製の半導体、トランジスタ、又は他の別個のコンポーネントとして実装することができる。モジュールは、フィールド・プログラマブル・ゲート・アレイ、プログラマブル・アレイ論理、プログラマブル論理装置などといったプログラム可能なハードウェア・デバイスとして実装することもできる。
【００２９】
モジュールは、異なる形態のメモリと通信する種々のタイプのプロセッサによって実行するためのソフトウェアとして実装することもできる。例えば、実行可能コードの特定のモジュールは、例えばオブジェクト、手順、又は機能として編成することができる、コンピュータ命令の１つ又は複数の物理ブロック又は論理ブロックを含むことができる。それにもかかわらず、特定のモジュールの実行ファイルは、物理的に一緒に配置される必要はなく、論理的に結合されたときにモジュールを含み該モジュールの前述の目的を達成する、異なる場所に格納された別々の命令を含むことができる。
【００３０】
実際には、実行可能コードのモジュールは、単一の命令又は多数の命令とすることができ、幾つかの異なるコード・セグメントにわたって、異なるプログラムの間で、及び幾つかのメモリ・デバイス間にわたって、分散させることもできる。同様に、動作データは、本明細書においてはモジュール内部において特定して示すことがあり、いずれかの適切な形態で組み込み、いずれかの適切なタイプのデータ構造内で編成することができる。動作データは、単一のデータ・セットとしてまとめるか、又は、異なる記憶装置を含む異なる場所にわたって分散させることができ、システム又はネットワーク上の単なる電気信号として、少なくとも部分的に存在することができる。
【００３１】
本明細書の全体を通じて、「１つの実施形態」、「一実施形態」、又は同様の用語への言及は、その実施形態に関連して説明された特定の特徴、構造、又は特性が、本発明の少なくとも１つの実施形態に含まれていることを意味する。従って、「１つの実施形態においては」、「一実施形態においては」といった語句、又は同様の用語の出現は、本明細書の全体を通じて、必ずというわけではないが全て同一の実施形態を指すことがある。
【００３２】
信号支持媒体への言及は、信号を生成するか、信号を生成させるか、又はデジタル処理装置上で機械可読命令のプログラムを実行させることができるいずれかの形態をとることができる。信号支持媒体は、伝送線、コンパクト・ディスク、デジタル・ビデオ・ディスク、磁気テープ、ベルヌーイ・ドライブ、磁気ディスク、パンチ・カード、フラッシュ・メモリ、集積回路、又は他のデジタル処理装置記憶デバイスにより、具体化することができる。
【００３３】
さらに、本発明の説明される特徴、構造、又は特性は、１つ又は複数の実施形態においていずれかの適切な方法で組み合わせることができる。以下の説明においては、本発明の実施形態が完全に理解されるように、プログラミング、ソフトウェア・モジュール、ユーザ選択、ネットワーク・トランザクション、データベース照会、データベース構造、ハードウェア・モジュール、ハードウェア回路、ハードウェア・チップなどの例のような多数の特定の詳細部が提供される。しかしながら、当業者であれば、特定の詳細部の１つ又は複数を用いることなく、又は、他の方法、コンポーネント、材料などを用いて、本発明を実施できることが分かるであろう。他の場合には、本発明の態様を不明瞭なものにしないように、周知の構造、材料、又は動作は、詳細に示すことも説明することもない。
【００３４】
図１は、ウェブ・ページのダウンロード時間を改善するためのシステム１００の１つの実施形態を示す。システム１００は、ウェブ・サーバ・アプリケーション１０４とアーカイバ１０６とデータ・ストア１０８とを有するウェブ・ホスト１０２を含むことができる。システム１００は、ネットワーク１１０と、中央演算処理装置（ＣＰＵ）１１４、メモリ１１６、及びアーカイブ対応ブラウザ１１８を有するウェブ・クライアント１１２とを、さらに含むことができる。システム１００は、ダウンロード時間改善のために、アーカイブ対応ブラウザ１１８が読み込むことができるウェブ・ページを、該ウェブ・ページに関連するアーカイブ共に生成する。
【００３５】
ウェブ・ホスト１０２は、１つの実施形態においては、ウェブ・クライアント１１２にウェブ・ページを提供するためのハードウェア・コンポーネント及びソフトウェア・コンポーネントを含む。ウェブ・ホスト１０２は、ウェブ・サーバ・アプリケーション１０４とアーカイバ１０６とデータ・ストア１０８とを含むことができる。ウェブ・ホスト１０２には、ネットワーク１１０を介してアクセスすることができる。
【００３６】
ウェブ・ホスト１０２は、１つの実施形態においては、ウェブ・サーバ・アプリケーション１０４を含む。ウェブ・サーバ・アプリケーション１０４は、ネットワークを介してウェブ・ページを配信するように設定されたソフトウェアを含む。ウェブ・サーバ・アプリケーション１０４は、ｈｙｐｅｒｔｅｘｔ  ｍａｒｋｕｐ  ｌａｎｇｕａｇｅ（ＨＴＭＬ）ファイルのように標準であると認められている規格に適合したウェブ・ページを配信するように設定することができる。規格に準拠したウェブ・ページの他の例として、ｅｘｔｅｎｓｉｂｌｅ  ｈｙｐｅｒｔｅｘｔ  ｍａｒｋｕｐ  ｌａｎｇｕａｇｅ（ＸＨＴＭＬ）、ｈｙｐｅｒｔｅｘｔ  ｐｒｅｐｒｏｃｅｓｓｏｒ（ＰＨＰ）、ｗｏｒｌｄｗｉｄｅ  ｗｅｂ  ｃｏｎｓｏｒｔｉｕｍ（Ｗ３Ｃ）などが挙げられる。ウェブ・サーバ・アプリケーションの例として、Ａｐａｃｈｅ  ＨＴＴＰ  Ｓｅｒｖｅｒ、Ｍｉｃｒｏｓｏｆｔ（登録商標）Ｉｎｔｅｒｎｅｔ  Ｉｎｆｏｒｍａｔｉｏｎ  Ｓｅｒｖｅｒ（登録商標）、ＩＢＭ（登録商標）ＨＴＴＰ  Ｓｅｒｖｅｒなどが挙げられる。
【００３７】
ウェブ・サーバ・アプリケーション１０４は、１つの実施形態においては、ウェブ・ページに関連するアーカイブを配信するようにさらに設定することができる。１つの実施形態においては、これらのアーカイブは、ウェブ・ページをレンダリングするのに必要なオブジェクトを含む。アーカイブは、本明細書の下記のアーカイバ１０６に関して、以下でより詳細に説明される。
【００３８】
１つの実施形態においては、アーカイバ１０６は、ダウンロード時間を改善するために最適化されたウェブ・ページを生成する。アーカイバ１０６は、ウェブ・ページ内で参照されるオブジェクトから１つ又は複数のアーカイブを生成することができる。各々のアーカイブは、ウェブ・ページ内で参照される複数のオブジェクトで構成される。ここで用いられる「アーカイブ」という用語は、一回の送信について、ソートされた状態又はソートされていない状態で単一のファイルにまとめられた複数のデータ・オブジェクトの選択を意味する。アーカイブは、ウェブ・クライアント１１２に送られるときに、単一のヘッダを含むことができる。対照的に、各々のオブジェクトを別々に送信するためには、各々のオブジェクトについて別々のヘッダが必要である。１つ又は複数のアーカイブの各々が多数のオブジェクトを含んでおり、アーカイブは、アーカイブ内のオブジェクトの各々についてのヘッダの代わりに単一のヘッダで送信することができるので、必要なヘッダの合計サイズは低減される。別の実施形態においては、アーカイブは、各々のオブジェクトのための多数のヘッダを含むことができるが、これらのヘッダは、ヘッダの合計サイズを低減するために単純化される。
【００３９】
次いで、ウェブ・サーバ・アプリケーション１０４は、ウェブ・ページ内で参照される個々のオブジェクトの各々の代わりに、単一のアーカイブを配信することができる。アーカイブ内の各々のオブジェクトは、簡単なヘッダのみを必要とするか、又は個々のヘッダを全く必要とせず、個々のオブジェクトの各々に関連する個別の待ち時間が存在しないので、ウェブ・ページのダウンロード時間全体が低減される。
【００４０】
アーカイバ１０６により生成されたウェブ・ページは、１つの実施形態においては、アーカイブ対応ブラウザ１１８によりレンダリングすることができる。アーカイブ対応ブラウザ１１８は、ウェブ・ページに関連するアーカイブを受信し、アーカイブからアンパックされたオブジェクトを用いてウェブ・ページをレンダリングすることができる。生成されるウェブ・ページは、レンダリングするためにアーカイブ対応ブラウザ１１８を必要とする特定の形式であってもよい。例えば、生成されるウェブ・ページは、ＨＴＭＬファイルと１つ又は複数の関連するアーカイブとを含むことができる。アーカイブ対応ブラウザ１１８は、ＨＴＭＬファイルと１つ又は複数の関連するアーカイブとを処理して、ウェブ・ページをレンダリングすることができる。アーカイブ対応ブラウザ１１８は、１つの実施形態においては、ウェブ・ページのＨＴＭＬファイル内のタグと１つ又は複数のアーカイブのヘッダとを処理して、アーカイブ内のオブジェクトの適切な位置を決定する。アーカイブ対応ブラウザ１１８がアーカイブを処理する方法の一例は、図６に関連して以下で説明される。
【００４１】
アーカイバ１０６は、１つの実施形態においては、静的なウェブ・ページから、ウェブ・ページ内で参照されるオブジェクトのアーカイブと共に用いるために最適化されたウェブ・ページ（これ以降、「アーカイブ最適化ウェブ・ページ」と呼ぶ）を生成することができる。静的なウェブ・ページとは、ウェブ・ページに関連するパラメータに応答して変化することのない内容を有するウェブ・ページである。アーカイバ１０６は、静的なウェブ・ページに関連するオブジェクトを用いて、１つ又は複数のアーカイブを生成することができる。１つの実施形態においては、アーカイバ１０６は、ウェブ・クライアント１１２によるウェブ・ページについての要求に応答して、静的なウェブ・ページのためのアーカイブ最適化ウェブ・ページを生成することができる。
【００４２】
別の実施形態においては、アーカイバ１０６は、静的なウェブ・ページのためのアーカイブ最適化ウェブ・ページを、ウェブ・クライアント１１２によるウェブ・ページについての要求と非同期的に生成することができる。別の実施形態においては、アーカイバ１０６は、一群の静的なウェブ・ページのための一群のアーカイブ最適化ウェブ・ページを生成することができる。アーカイバ１０６は、アーカイブ最適化ウェブ・ページのための１つ又は複数のアーカイブを生成することができる。生成されたアーカイブ最適化ウェブ・ページ及びアーカイブ最適化ウェブ・ページのための１つ又は複数のアーカイブは、ウェブ・ホスト１０２がアクセスできるように格納することができる。静的なウェブ・ページについての要求によって、どちらもウェブ・ページについての要求の受信前に生成されたものである生成済みのアーカイブ最適化ウェブ・ページ及びアーカイブが配信されることになる。この実施形態においては、アーカイバ１０６は、ウェブ・ホスト１０２に重い負荷がかかっていない間に、アーカイブ最適化ウェブ・ページ及びアーカイブを生成することができる。
【００４３】
別の実施形態においては、アーカイバ１０６は、動的なウェブ・ページのためのアーカイブ最適化ウェブ・ページ及びアーカイブを生成することができる。動的なウェブ・ページとは、ウェブ・ページについての要求に応答して作成されるウェブ・ページである。動的なウェブ・ページは、要求以前には存在しないことがある。この実施形態においては、アーカイバ１０６は、ウェブ・クライアント１１２による動的なウェブ・ページについての要求に応答して、動的にアーカイブ最適化ウェブ・ページ及びアーカイブを生成する。例えば、ウェブ・クライアント１１２は、データ・ストア１０８からのデータを含み、要求に応答して作成されるウェブ・ページを、ウェブ・ホスト１０２から要求することがある。アーカイバ１０６は、データ・ストア１０８からデータを受信し、ウェブ・ページのためのアーカイブ最適化ウェブ・ページ及びアーカイブを生成することができる。生成されたウェブ・ページ及びアーカイブは、次に、ウェブ・サーバ・アプリケーション１０４により、ウェブ・クライアント１１２に配信することができる。
【００４４】
代替的な実施形態においては、アーカイバ１０６は、アーカイブ対応ブラウザ１１８がウェブ・ページをレンダリングするのに必要なファイルを全て含むアーカイブを生成する。例えば、アーカイバ１０６は、要求されたウェブ・ページのために必要なコンテンツの全てを含む１つ又は複数のアーカイブを生成し、その１つ又は複数のアーカイブを、レンダリングのためにアーカイブ対応ブラウザ１１８に配信することができる。
【００４５】
データ・ストア１０８は、１つの実施形態においては、ウェブ・ホスト１０２に含めることができる。データ・ストア１０８内のデータは、完全なウェブ・ページと、ウェブ・ページを生成するのに用いられるデータと、予め定められたアーカイブと、ウェブ・ページをレンダリングするのに用いられるオブジェクトとを含むことができる。例えば、データ・ストア１０８は、データ・ファイルを含む１つ又は複数のハード・ディスク・ドライブを含むことができる。別の実施形態においては、データ・ストア１０８は、データベースを含む。更なる実施形態においては、データ・ストア１０８は、フラッシュ・メモリ・デバイスを含む。
【００４６】
１つの実施形態においては、ネットワーク１１０は、ウェブ・ホスト１０２とウェブ・クライアント１１２との間でデータを送信するための媒体となる。ネットワーク１１０は、ウェブ・クライアント１１２からの要求をウェブ・ホスト１０２に送信することができる。ネットワーク１１０は、生成されたウェブ・ページ及びアーカイブをウェブ・ホスト１０２からウェブ・クライアント１１２に送信することもできる。ネットワーク１１０は、例えばインターネットといった、そうしたデータを送信することが可能ないずれかのネットワークとすることができる。ネットワーク１１０の他の例として、イントラネット、直接ネットワーク接続などが挙げられる。ウェブ・クライアント１１２は、１つの実施形態においては、表示するために生成されたウェブ・ページをレンダリングする。ウェブ・クライアント１１２は、ＣＰＵ１１４、メモリ１１６、及びアーカイブ対応ブラウザ１１８を含むことができる。ウェブ・クライアント１１２は、１つの実施形態においては、アーカイブからのオブジェクトを用いて、生成されたウェブ・ページをレンダリングする。
【００４７】
アーカイブ対応ブラウザ１１８は、１つの実施形態においては、アーカイブ最適化ウェブ・ページに関連するオブジェクトを含むアーカイブを処理することができるウェブ・ブラウザである。オブジェクトの例として、ｊｐｅｇ、ｇｉｆ、ｂｍｐなどの画像ファイル、スクリプト・ファイル、又は、ウェブ・ページにおいて用いられる他のオブジェクトが挙げられる。
【００４８】
１つの実施形態においては、アーカイブ対応ブラウザ１１８は、ウェブ・ホスト１０２からウェブ・ページを要求する。ウェブ・ページは、ここではアーカイブ可能オブジェクトと呼ばれる、アーカイブに含めることができる１つ又は複数のオブジェクトへの参照を含むことができる。ウェブ・ホスト１０２は、アーカイブを参照する生成されたウェブ・ページ（即ち、アーカイブ最適化ウェブ・ページ）を、アーカイブ対応ブラウザ１１８に配信することができる。アーカイブ対応ブラウザ１１８は、アーカイブ対応ブラウザ１１８に組み込まれたソフトウェア命令（元のオブジェクト・コードか、又は、追加されたプラグイン若しくは拡張機能のどちらかである）を実行し、ウェブ・ホスト１０２からアーカイブを取得することができる。アーカイブ可能オブジェクトをアーカイブからアンパックし、そのアーカイブ可能オブジェクトを用いてウェブ・ページをレンダリングするために、アーカイブ対応ブラウザ１１８に組み込まれた付加的な実行可能コード（元のオブジェクト・コードか、又は、追加されたプラグイン若しくは拡張機能）がアーカイブ対応ブラウザ１１８によって実行される。
【００４９】
図２は、アーカイバ１０６の１つの実施形態を示す。アーカイバ１０６は、アーカイブ・コスト／利益モジュール２０２と、選択モジュール２０４と、アーカイブ生成モジュール２０６とを含むことができる。アーカイバ１０６は、アーカイブと、ダウンロード時間を改善した関連するウェブ・ページとを生成する。
【００５０】
アーカイブ・コスト／利益モジュール２０２は、１つの実施形態においては、アーカイブ及び関連するアーカイブ最適化ウェブ・ページの生成に関する計算コストが、ウェブ・ページのダウンロード時間の改善による利益を上回るかどうかを判定する。予測されるダウンロード時間の改善が、ウェブ・ページ及びアーカイブの生成に関連するオーバーヘッド・コストを上回る場合には、アーカイブ・コスト／利益モジュール２０２は、アーカイバ１０６がアーカイブ最適化ウェブ・ページ及び関連するアーカイブを生成するべきであることを示すことができる。
【００５１】
特定の実施形態においては、アーカイブ・コスト／利益モジュール２０２は、アーカイブ最適化ウェブ・ページ及びアーカイブを生成するべきかどうかを判定するために、学習機能（heuristic function）を利用することができる。例えば、アーカイブ・コスト／利益モジュール２０２は、アーカイブ最適化ウェブ・ページ及びアーカイブを生成するための計算コストを予測することができる。計算コストが閾値を下回った場合には、アーカイブ・コスト／利益モジュール２０２は、アーカイバ１０６がアーカイブ最適化ウェブ・ページ及びアーカイブを生成するべきであることを示すことができる。代替的な実施形態においては、アーカイブ・コスト／利益モジュール２０２は、アーカイブ及びアーカイブ最適化ウェブ・ページに関するダウンロード時間の改善に関連する値も予測することができる。アーカイブ・コスト／利益モジュール２０２は、予測される計算コストと予測される利益との比が閾値を下回ることに応答して、アーカイブ最適化ウェブ・ページ及びアーカイブを生成するべきであることを示すことができる。
【００５２】
例えば、アーカイブ・コスト／利益モジュール２０２は、生成されるアーカイブの数、ウェブ・ページ内のアーカイブ可能オブジェクトの数、及びウェブ・ページのサイズを含む入力を用いたモデルに基づいて、コストの値を導出することができる。アーカイブ・コスト／利益モジュール２０２は、修正されていないウェブ・ページを配信するのに必要な時間に対して、アーカイブを用いてウェブ・ページを配信する場合の時間の低減を推定する利益の値をさらに導出することができる。利益の値は、生成されるアーカイブの数、ウェブ・ページ内のアーカイブ可能オブジェクトの数、及びウェブ・ページのサイズを含む入力を用いて、モデル化することができる。この例においては、アーカイブ・コスト／利益モジュール２０２は、コストの値と利益の値との間の比を生成する。比についての閾値は、任意に選択してもよいし、他のテスト及びモデルに基づいて予め算出してもよく、閾値は、アーカイブ最適化ウェブ・ページを生成するべきか生成するべきでないかを定める。
【００５３】
１つの実施形態においては、ウェブ・ページについての要求に応答して生成されなければならないアーカイブ最適化ウェブ・ページの場合と、非同期的に生成されるアーカイブ最適化ウェブ・ページの場合とで、アーカイブ・コスト／利益モジュール２０２による判定が異なることがある。例えば、アーカイブ・コスト／利益モジュール２０２は、ウェブ・ホスト１０２の負荷が軽い時間の間に静的なウェブ・ページを評価し、そのウェブ・ページについてアーカイブを生成するべきと判断することがある。アーカイブを生成した後で、ウェブ・ページについての要求によって、非同期的に生成されたアーカイブ及びアーカイブ最適化ウェブ・ページが配信されることになる。しかしながら、アーカイブが生成される前にウェブ・ページについての要求が受信された場合には、要求したブラウザがアーカイブを待っている間にそのアーカイブを生成する必要があるため、アーカイブ・コスト／利益モジュール２０２は異なる結論に達することがある。ウェブ・ページについての要求に応答してアーカイブ最適化ウェブ・ページが生成されなければならないとき、又は、ウェブ・ホスト１０２の負荷が相対的に高いときには、アーカイブ・コスト／利益モジュール２０２は、同一のアーカイブ最適化ウェブ・ページを生成するにはコストがかかり過ぎると判断することもある。
【００５４】
選択モジュール２０４は、１つの実施形態においては、アーカイブに含めるために、アーカイブ最適化ウェブ・ページによって参照されるオブジェクトを選択する。選択モジュール２０４は、オブジェクトを個別にウェブ・クライアント１１２に配信せずにアーカイブに入れるべきかどうかを判定する選択基準に基づいて、オブジェクトを選択する。選択基準の一例はオブジェクトのサイズであり、より小さいサイズのオブジェクトの方が、より大きいサイズのオブジェクトに比べて、アーカイブに含めることで利益を受けられる可能性が高い。１つの実施形態においては、選択モジュール２０４は、閾値を下回るサイズのオブジェクトを選択することができる。例えば、閾値を３キロバイトとして、選択モジュールは、３キロバイトを下回るサイズのオブジェクトを選択することができる。
【００５５】
１つの実施形態においては、アーカイブ生成モジュール２０６は、アーカイブ最適化ウェブ・ページに関連する１つ又は複数のアーカイブを生成する。アーカイブ生成モジュール２０６は、選択モジュール２０４によって選択されたオブジェクトを用いて、１つ又は複数のアーカイブを形成する。１つ又は複数のアーカイブは、ウェブ・クライアント１１２がアーカイブ対応ブラウザ１１８の実行可能コードを実行した後で行う要求に応答して、ウェブ・クライアント１１２に配信される。
【００５６】
図３は、選択モジュール２０４の１つの実施形態を示す。選択モジュール２０４は、文書オブジェクト・モデル木走査モジュール３０２と、選択基準モジュール３０４と、アーカイブ・サイズ・モジュール３０６と、オブジェクト優先順位付けモジュール３０８と、オブジェクト優先順位付け基準モジュール３１０とを含むことができる。選択モジュール２０４は、１つ又は複数のアーカイブに含めるために、ウェブ・ページからアーカイブ可能オブジェクトを選択する。
【００５７】
ＤＯＭ木走査モジュール３０２は、１つの実施形態においては、ウェブ・ページのＤＯＭ木を走査する。ＤＯＭ木は、ウェブ・ページの論理構造を定める。ウェブ・ページ内のオブジェクトは、ＤＯＭ木において階層構造で配列され、幾つかのオブジェクトは他のオブジェクトに依存し、全てのオブジェクトはルート・オブジェクトに依存する。ＤＯＭ木走査モジュール３０２を用いてＤＯＭ木を走査することにより、選択モジュール２０４は、例えば、どのオブジェクトがウェブ・ページによって参照されるか、ウェブ・ページ内で参照されるオブジェクトのタイプ、オブジェクトのサイズ、及び、ウェブ・ページ内で参照されるオブジェクト間の相対依存度といった、ウェブ・ページ内のオブジェクトについての情報を判定する。
【００５８】
１つの実施形態においては、選択基準モジュール３０４は、オブジェクトがアーカイブ可能オブジェクトであるかどうかを判定する１つ又は複数の選択基準を含む。アーカイブ可能オブジェクトとは、アーカイブに含まれるべき（又は、含まれると判定された）オブジェクトである。ウェブ・ページ内で参照されるオブジェクトは、アーカイブ可能オブジェクトであるかどうかを判定するために、選択基準によって判断される。選択基準の例として、オブジェクトの最大サイズとオブジェクトのタイプとが挙げられる。例えば、選択基準モジュール３０４は、アーカイブ可能オブジェクトが３キロバイトを超えないサイズを有するべきであるという基準を含むことができる。別の基準は、アーカイブ可能オブジェクトが画像ファイルでなければならないこととすることができる。
【００５９】
アーカイブ・サイズ・モジュール３０６は、１つの実施形態においては、アーカイブのための目標サイズを決定する。アーカイブ・サイズ・モジュール３０６は、ウェブ・ページのサイズを決定することにより、アーカイブの目標サイズを決定することができる。ウェブ・ページのサイズは、１つの実施形態においては、ウェブ・ページ内で参照されるオブジェクトのサイズの合計を含む。別の実施形態においては、ウェブ・ページのサイズは、ウェブ・ページ内で参照されるオブジェクトのサイズの合計に加えて、ウェブ・ページのためのＨＴＭＬファイルのサイズを含む。
【００６０】
アーカイブ・サイズ・モジュール３０６は、１つの実施形態においては、アーカイブの目標サイズをウェブ・ページのサイズの割合として設定する。１つの実施形態においては、目標サイズは、ウェブ・ページのサイズの４分の１である。従来のウェブ・ブラウザの殆どは、ウェブ・サーバとの間で４つの同時接続を受け入れるように設定されている。その結果として、ウェブ・ページのサイズの４分の１より大きいアーカイブは、アーカイブを作成することによって実現される性能利益に対する見返りを逓減させる結果をもたらす。別の実施形態においては、目標サイズは、ウェブ・ページ内で参照されるオブジェクトのサイズ全体の百分率である。さらに別の実施形態においては、目標サイズは、ウェブ・ページのサイズの一部であり、この一部は、比率、百分率、又は、生成されるアーカイブがウェブ・ページのサイズより小さくなるような他の形式の尺度とすることができる。
【００６１】
１つの実施形態においては、オブジェクト優先順位付けモジュール３０８は、ウェブ・ページ内で参照されるアーカイブ可能オブジェクトについての優先順位を決定する。オブジェクトの優先順位は、オブジェクト優先順位付け基準モジュール３１０からのオブジェクト優先順位付け基準によって決定することができる。オブジェクト優先順位付けモジュール３０８によって決定される優先順位は、アーカイブ内におけるアーカイブ可能オブジェクトについての順序を定める。より高い優先順位のアーカイブ可能オブジェクトは、より低い優先順位のアーカイブ可能オブジェクトの前に順序付けられる。例えば、ウェブ・ページ内の表を定義するアーカイブ可能オブジェクトには、表の中の画像から成るアーカイブ可能オブジェクトより、高い優先順位を割り当てることができる。表を定義するアーカイブ可能オブジェクトは、画像より高い優先順位を有するので、画像の前に順序付けられる。アーカイブ可能オブジェクトを優先順位付けし、順序付けることにより、アーカイブ最適化ウェブ・ページは、アンパックされたアーカイブ可能オブジェクトをアンパックされた順に配置することによって、より効率的にレンダリングすることができる。
【００６２】
オブジェクト優先順位付け基準モジュール３１０は、１つの実施形態においては、アーカイブ最適化ウェブ・ページにおいて参照されるオブジェクトの優先順位を決定する１つ又は複数のオブジェクト優先順位付け基準を含む。オブジェクト優先順位付け基準は、アーカイブ最適化ウェブ・ページにおいて参照されるアーカイブ可能オブジェクトの特性に関連する。例えば、アーカイブから取り出されたオブジェクトは、そのオブジェクトが依存しているオブジェクトが利用可能になるまでレンダリングできないため、ＤＯＭ木においてより上位のオブジェクトをＤＯＭ木においてより下位のオブジェクトの前に順序付けることで、ページのレンダリングを改善することができる。従って、１つの実施形態においては、アーカイブ可能オブジェクトのＤＯＭ木における階層レベルが、オブジェクト優先順位付け基準である。例えば、相対的に高い階層レベルを有する、即ちＤＯＭ木のルートからのステップが相対的に少ない、アーカイブ可能オブジェクトは、相対的に低い階層レベルを有する、即ちＤＯＭ木のルートからのステップが相対的に多い、アーカイブ可能オブジェクトより、高い優先順位を有するものとすることができる。結果として、より高い優先順位のアーカイブ可能オブジェクトは、より早くアンパックされてレンダリングされるようにアーカイブ内で順序付けられる。
【００６３】
同じ理由から、別の実施形態においては、オブジェクト優先順位付け基準は、ＤＯＭ木における下位オブジェクトの数を含むものとすることができる。例えば、下位オブジェクトの数が相対的に多いアーカイブ可能オブジェクトには、下位オブジェクトの数が相対的に少ないアーカイブ可能オブジェクトより、高い優先順位を割り当てることができる。この基準の結果として、下位のアーカイブ可能オブジェクトがアーカイブから取り出される前に、予め必要なアーカイブ可能オブジェクトが利用可能となっている可能性が高くなる。
【００６４】
最も小さいオブジェクトがアーカイブされたときに、最大の性能の増大を実現することができる。従って、１つの実施形態においては、アーカイブ可能オブジェクトのサイズは、オブジェクト優先順位付け基準である。例えば、アーカイブ可能オブジェクトの合計サイズが、アーカイブ・サイズ・モジュール３０６により決定されるアーカイブ・サイズを超えた場合には、より小さいアーカイブ可能オブジェクトに、相対的に大きいアーカイブ可能オブジェクトより高い優先順位を割り当てることができる。結果として、アーカイブの性能を向上させるために、より小さいアーカイブ可能オブジェクトがアーカイブに含まれることになる。相対的に大きいアーカイブ可能オブジェクトは、サイズの制約によってアーカイブ内に配置されないことがある。
【００６５】
図４は、アーカイブ最適化ウェブ・ページについてのＤＯＭ木４０２、及び、アーカイブのための順序付けされたアーカイブ可能オブジェクト４０４の１つの実施形態を示す。ＤＯＭ木４０２は、階層レベル４０６−４１０に配列された複数のオブジェクト４１２−４２２を含むことができる。ＤＯＭ木４０２は、アーカイブ最適化ウェブ・ページにおけるオブジェクト４１２−４２２間の関係を表現するものである。レベル２  ４０８のオブジェクトは、レベル１  ４０６のオブジェクトに依存し、レベル３  ４１０のオブジェクトは、レベル２  ４０８の予め必要なオブジェクトに依存し、以下同様である。例えば、レベル３  ４１０のオブジェクト２  ４１６は、レベル２  ４０８のオブジェクト１  ４１４に依存する。
【００６６】
１つの実施形態においては、より低いレベルのオブジェクトは、予め必要なオブジェクトがアーカイブ最適化ウェブ・ページにおいてレンダリングされるまで、アーカイブ最適化ウェブ・ページにおいて適切にレンダリングすることができない。例えば、オブジェクト１  ４１４は、アーカイブ最適化ウェブ・ページ内の表であり、オブジェクト２  ４１６は、オブジェクト１  ４１４の表の中の画像を表すことができる。オブジェクト２  ４１６の画像は、オブジェクト１  ４１４の表の中に存在することが定められているので、表がレンダリングされる前にアーカイブ最適化ウェブ・ページ内にレンダリングすることはできない。
【００６７】
こうした依存性及び他の考慮事項の結果として、選択モジュール２０４により選択されたアーカイブ可能オブジェクトは、オブジェクト優先順位付けモジュール３０８により、優先順位付けし、順序付けされたアーカイブ可能オブジェクト４０４として順序付けることができる。例えば、オブジェクト選択モジュール２０４は、オブジェクト１  ４１４、オブジェクト３  ４１８、オブジェクト４  ４２０、及びオブジェクト５が選択基準の組を満たすことを判定し、これらのオブジェクトをアーカイブ可能オブジェクトとして指定することができる。オブジェクト選択モジュール２０４は、オブジェクト２  ４１６が選択基準の組を満たさないこと、例えばオブジェクト２  ４１６が閾値より大きいサイズを有することを判定することもできる。
【００６８】
オブジェクト選択モジュール２０４は、さらに、アーカイブ可能オブジェクトを順序づけして、順序付けされたアーカイブ可能オブジェクト４０４にすることができる。オブジェクト優先順位付けモジュール３０８は、オブジェクト優先順位付け基準に従って、アーカイブ可能オブジェクトを順序付けることができる。例えば、オブジェクト１  ４１４及びオブジェクト４  ４２０は、ＤＯＭ木において相対的に高いレベル２  ４０８の位置にあるので、高い優先順位を割り当てることができる。オブジェクト１  ４１４は、オブジェクト４  ４２０より多くの依存オブジェクトを有するので、オブジェクト４  ４２０より高い優先順位を割り当てることができる。結果として、オブジェクト１  ４１４は、順序付けされたアーカイブ可能オブジェクト４０４の中で、オブジェクト４  ４２０の前に順序付けることができる。
【００６９】
図５は、アーカイブ生成モジュール２０６の１つの実施形態を示す。アーカイブ生成モジュール２０６は、オブジェクト順序付けモジュール５０２と、アーカイブ・ファイル圧縮モジュール５０４と、圧縮学習モジュール５０６とを含むことができる。アーカイブ生成モジュール２０６は、選択モジュール２０４により選択されたアーカイブ可能オブジェクトを用いて、アーカイブ・ファイルを生成する。
【００７０】
オブジェクト順序付けモジュール５０２は、１つの実施形態においては、アーカイブ可能オブジェクトの優先順位に従ってアーカイブ可能オブジェクトを順序付ける。アーカイブ可能オブジェクトの優先順位は、オブジェクト優先順位付け基準に従ってオブジェクト優先順位付けモジュール３０８によって決定することができる。オブジェクト順序付けモジュール５０２は、生成されたアーカイブにおいて相対的に高い優先順位のアーカイブ可能オブジェクトが相対的に低い優先順位のアーカイブ可能オブジェクトの前に順序付けられるように、アーカイブ可能オブジェクトを順序付ける。
【００７１】
１つの実施形態においては、アーカイブ・ファイル圧縮モジュール５０４は、生成されたアーカイブを圧縮する。アーカイブ・ファイル圧縮モジュール５０４は、いずれかのデータ圧縮方法を用いて、生成されたアーカイブを圧縮することができる。アーカイブを圧縮するのに用いることができるデータ圧縮方法の例として、ｇｚｉｐ、ｚｉｐ、ＬＺＸ、算術符号化などが挙げられる。
【００７２】
アーカイブ生成モジュール２０６は、生成されたアーカイブを圧縮すべきかどうかを判定するために、圧縮学習モジュール５０６に依存することがある。特定の状況下では、アーカイブを圧縮することが非効率となることもある。例えば、ｊｐｅｇファイルなどの多くの画像ファイルは、予め圧縮されている。アーカイブを構成するアーカイブ可能オブジェクトが、予め圧縮された画像ファイルを高い割合で含む場合には、さらに圧縮器を用いてアーカイブを処理することは、計算コストを生じさせるが、アーカイブのサイズの点ではそれほど大きな改善はもたらさない。
【００７３】
生成されたアーカイブを圧縮しなくてもよい状況の別の例は、動的なウェブ・ページのアーカイブ生成の際に生じる。動的なアーカイブ最適化ウェブ・ページのためにアーカイブを生成するときに、ウェブ・ホスト１０２のサーバ負荷が高くなることがある。要求しているウェブ・クライアント１１２が待つ間にアーカイブを圧縮するのに要する計算コスト及び時間は、アーカイブのサイズの低減を上回ることがある。
【００７４】
圧縮のコストがアーカイブのサイズの低減による利益を上回るときに、生成されたアーカイブを圧縮しようとするのを避けるために、圧縮学習モジュール５０６は、１つの実施形態においては、アーカイブを圧縮すべきかどうかを判定する。例えば、圧縮学習モジュール５０６は、アーカイブの中の画像の割合を求めることができる。アーカイブの中の画像の割合が閾値レベルを下回るときは、圧縮学習モジュール５０６は、アーカイブを圧縮すべきであると判断することができる。
【００７５】
図６は、アーカイブ対応ブラウザ１１８の１つの実施形態を示す。アーカイブ対応ブラウザ１１８は、ブラウザ・パラメータ送信モジュール６０２と、アーカイブ応答受信モジュール６０４と、履歴送信モジュール６０６と、接続モジュール６０８と、アーカイブ取得モジュール６１０と、アーカイブ・アンパック・モジュール６１２と、ページ・レンダリング・モジュール６１４とを含むことができる。アーカイブ対応ブラウザ１１８は、アーカイブを用いるアーカイブ最適化ウェブ・ページを取得し、レンダリングする。
【００７６】
アーカイブ対応ブラウザ１１８によって取得され、レンダリングされるアーカイブ最適化ウェブ・ページは、１つの実施形態においては、ウェブ・ページの最初のインスタンスとすることができる。例えば、アーカイブ最適化ウェブ・ページは、ウェブ・クライアント１１２からの要求に応答して動的に生成することができる。別の実施形態においては、アーカイブ対応ブラウザ１１８によって取得され、レンダリングされるアーカイブ最適化ウェブ・ページは、ウェブ設計者によるウェブ・ページの設計に応じて生成することができる。この例においては、アーカイバ１０６は、ウェブ設計ソフトウェアにリンクさせるか、又は、それと統合することができる。
【００７７】
別の実施形態においては、アーカイブ対応ブラウザ１１８によって取得され、レンダリングされるウェブ・ページは、アーカイブへの参照を含まない既存のウェブ・ページとすることができる。この実施形態においては、既存のウェブ・ページは、アーカイブへの参照を含むように書き直される。例えば、アーカイブ生成モジュール２０６は、静的なウェブ・ページにアクセスし、アーカイブ可能オブジェクトと、関連するアーカイブ最適化ウェブ・ページとを用いて、アーカイブを生成することができる。別の例においては、アーカイブ生成モジュール２０６は、アーカイブへの参照を含まない動的に生成されるウェブ・ページに対して作用することができる。この例においては、動的に生成されるウェブ・ページは、アーカイブからのアーカイブ可能オブジェクトを用いてレンダリングすることができるアーカイブ最適化ウェブ・ページを生成するように書き直される。
【００７８】
アーカイブ最適化ウェブ・ページは、アーカイブ内のアーカイブ可能オブジェクトにリンクされたＨＴＭＬタグを含むことができる。例えば、アーカイブ名が「ｈｔｍｌ．ａｒｃｈｉｖｅ」であり、アーカイブ内のアーカイブ可能オブジェクト名が「ｏｂｊ１」であれば、ＨＴＭＬタグにおけるｕｎｉｆｏｒｍ  ｒｅｓｏｕｒｃｅ  ｉｄｅｎｔｉｆｉｅｒ（ＵＲＩ）は、「ｈｔｍｌ．ａｒｃｈｉｖｅ／ｏｂｊ１」とすることができる。
【００７９】
ブラウザ・パラメータ送信モジュール６０２は、１つの実施形態においては、アーカイブ対応ブラウザ１１８の能力に関する１つ又は複数のブラウザ・パラメータをウェブ・サーバ１０４に送信する。１つ又は複数のブラウザ・パラメータは、インジケータを含むことができる。１つの実施形態においては、ブラウザ・パラメータ送信モジュール６０２は、アーカイブ対応ブラウザ１１８がアーカイブを含むアーカイブ最適化ウェブ・ページを受信及び／又はレンダリングできることを示すインジケータを含むブラウザ・パラメータを送信する。例えば、ブラウザ・パラメータ送信モジュール６０２は、アーカイブ対応ブラウザ１１８がアーカイブを用いてページをレンダリングできることを明示的に示すインジケータを送信することができる。別の例においては、ブラウザ・パラメータ送信モジュール６０２は、アーカイブ対応ブラウザ１１８のバージョン番号を送信することができる。ウェブ・サーバ１０４は、このバージョン番号を、アーカイブを含むアーカイブ最適化ウェブ・ページをレンダリングできることが知られているブラウザのリストと比較し、その比較の結果としてアーカイブ対応ブラウザの能力を判断することができる。
【００８０】
別の実施形態においては、ブラウザ・パラメータ送信モジュール６０２は、アーカイブ対応ブラウザ１１８が利用可能な接続の数を示すインジケータを含むブラウザ・パラメータを送る。例えば、１つの実施形態においては、アーカイブ対応ブラウザ１１８は、ホスト・コンピュータ及び／又はオペレーティング・システムによって決まる数の利用可能な接続を有する。１つの例においては、アーカイブ対応ブラウザ１１８は、最大で４つの接続を許されることがある。ブラウザ・パラメータ送信モジュール６０２は、アーカイブ対応ブラウザ１１８が利用可能な４つの接続を有することを示すブラウザ・パラメータをウェブ・サーバ１０４に送ることができる。
【００８１】
１つの実施形態においては、アーカイブ応答受信モジュール６０４は、ウェブ・サーバ１０４からアーカイブ応答パラメータを受信する。アーカイブ応答パラメータは、１つの実施形態においては、インジケータを含む。インジケータは、ウェブ・サーバ１０４がアーカイブを配信できることを示すものとすることができる。１つの実施形態においては、ウェブ・サーバ１０４は、アーカイブ対応ブラウザ１１８がアーカイブを受信することができるという判断に応答して、アーカイブ応答パラメータを送る。別の実施形態においては、ウェブ・サーバ１０４は、ウェブ・ページを要求するウェブ・ブラウザのタイプにかかわらず、アーカイブ応答パラメータを送る。
【００８２】
履歴送信モジュール６０６は、１つの実施形態においては、アーカイブ対応ブラウザ１１８の履歴をウェブ・サーバ１０４に送信する。１つの実施形態においては、履歴は、ウェブ・サーバ１０４及び／又は他のウェブ・サーバとの以前のトランザクションからアーカイブ対応ブラウザ１１８によって保持されたオブジェクトのリストを含む。保持されたオブジェクトは、メモリなどの揮発性ストレージ・キャッシュに格納しても、ハード・ディスク・ドライブなどの不揮発性ストレージ・キャッシュに格納してもよい。１つの実施形態においては、履歴送信モジュール６０６は、ウェブ・サーバ１０４がアーカイブを配信できることを示すアーカイブ応答パラメータの受信に応答して、履歴を送信する。
【００８３】
ウェブ・サーバ１０４は、１つの実施形態においては、履歴を用いて、アーカイブと、要求されたウェブ・ページについてキャッシュされたバージョンのオブジェクトを用いるアーカイブ最適化ウェブ・ページとを生成する。例えば、履歴は、要求されたアーカイブ最適化ウェブ・ページ内の幾つかのオブジェクトがアーカイブ対応ブラウザ１１８のキャッシュに既に存在することを示すことができる。アーカイバ１０６は、キャッシュされたオブジェクトを含まないアーカイブを生成することができる。ウェブ・サーバ１０４は、アーカイブ対応ブラウザ１１８のキャッシュ内のオブジェクトを用いてアーカイブ最適化ウェブ・ページをレンダリングするようにアーカイブ対応ブラウザ１１８に指示するアーカイブ最適化ウェブ・ページを送ることができる。
【００８４】
接続モジュール６０８は、１つの実施形態においては、アーカイブ対応ブラウザ１１８とウェブ・サーバ１０４との間に１つ又は複数の接続を開く。１つの実施形態においては、接続モジュール６０８は、アーカイブ対応ブラウザ１１８が利用可能な接続の数と等しい数の接続を開く。別の実施形態においては、接続モジュール６０８は、ウェブ・サーバ１０４が利用可能な接続の数と等しい数の接続を開く。別の実施形態においては、接続モジュール６０８は、ウェブ・サーバ１０４とアーカイブ対応ブラウザ１１８との間で取り決められた数の接続を開く。
【００８５】
例えば、要求されたアーカイブ最適化ウェブ・ページは、ウェブ・サーバ１０４及びアーカイブ対応ブラウザ１１８が利用可能な接続の数より少ない数のアーカイブを含むことができる。この例では、接続モジュール６０８は、アーカイブの数と等しい数の接続を確立することができる。
【００８６】
アーカイブ取得モジュール６１０は、１つの実施形態においては、１つの利用可能な接続を通じてアーカイブを取得する。アーカイブ取得モジュール６１０は、ウェブ・クライアント１１２に、アーカイブ最適化ウェブ・ページのためのアーカイブをウェブ・ホスト１０２から取得させることができる。ウェブ・クライアント１１２は、取得したアーカイブをクライアント装置の一時メモリ又は永続メモリに格納する。
【００８７】
１つの実施形態においては、アーカイブ・アンパック・モジュール６１２は、アーカイブをアンパックする。アーカイブ・アンパック・モジュール６１２は、ウェブ・クライアント１１２に、取得したアーカイブの位置を特定させてアンパックさせる命令を含むことができる。アーカイブをアンパックすることは、１つの実施形態においては、アーカイブからアーカイブ可能オブジェクトを抽出することを含む。アーカイブ・アンパック・モジュール６１２は、アーカイブ可能オブジェクトを一時メモリ又は永続メモリに格納する。
【００８８】
アーカイブ可能オブジェクトは順番に抽出することができる、即ち、アーカイブ可能オブジェクトは、オブジェクト優先順位付けモジュール３０８によって決定された順序で、又は、オブジェクト順序付けモジュール５０２によって決定された順序で、抽出される。１つの実施形態においては、アーカイブは、アーカイブ生成モジュール２０６によって圧縮されている。アーカイブ・アンパック・モジュール６１２は、アーカイブ又はアーカイブ内のオブジェクトを解凍することができる。
【００８９】
１つの実施形態においては、ページ・レンダリング・モジュール６１４は、アーカイブから抽出されたアーカイブ可能オブジェクトを用いて、アーカイブ最適化ウェブ・ページをレンダリングする。ページ・レンダリング・モジュール６１４は、アーカイブ対応ブラウザ１１８に、アーカイブから抽出されたアーカイブ可能オブジェクトを用いてアーカイブ最適化ウェブ・ページをレンダリングさせる命令を含むことができる。
【００９０】
図７は、本発明によるウェブ・サーバ１０４の１つの実施形態を示す。ウェブ・サーバ１０４は、ブラウザ・パラメータ受信モジュール７０２と、アーカイブ応答送信モジュール７０４と、履歴受信モジュール７０６と、接続モジュール７０８と、アーカイブ配信モジュール７１０とを含むことができる。ウェブ・サーバ１０４は、ウェブ・ページについての要求を受信し、１つ又は複数のアーカイブを用いるウェブ・ページを配信する。
【００９１】
ブラウザ・パラメータ受信モジュール７０２は、１つの実施形態においては、アーカイブ対応ブラウザ１１８から、アーカイブ対応ブラウザ１１８の能力を示すブラウザ・パラメータを受信する。ブラウザ・パラメータ受信モジュール７０２によって受信されるブラウザ・パラメータの性質は、図６に関連して開示されたブラウザ・パラメータ送信モジュール６０２に関して説明されたブラウザ・パラメータと実質的に同一である。ブラウザ・パラメータの受信は、アーカイブ対応ブラウザ１１８がアーカイブを受信できることを示すこと、及び／又は、アーカイブ対応ブラウザ１１８が利用可能な接続の数を示すことができる。
【００９２】
１つの実施形態においては、アーカイブ応答送信モジュール７０４は、アーカイブ対応ブラウザ１１８にアーカイブ応答を送信する。アーカイブ応答パラメータは、ウェブ・サーバ１０４がアーカイブを配信できることを示すインジケータを含むことができる。１つの実施形態においては、アーカイブ応答パラメータは、ウェブ・サーバ１０４が利用可能な接続の数を示すインジケータを含むことができる。１つの実施形態においては、ウェブ・サーバ１０４は、アーカイブ対応ブラウザ１１８がアーカイブを受信できるという判断に応答して、アーカイブ応答パラメータを送る。別の実施形態においては、ウェブ・サーバ１０４は、ウェブ・ページを要求するウェブ・ブラウザのタイプにかかわらず、アーカイブ応答パラメータを送る。
【００９３】
履歴受信モジュール７０６は、１つの実施形態においては、アーカイブ対応ブラウザ１１８から履歴を受信する。１つの実施形態においては、履歴は、実質的に図６に関連して上述された通りのものである。ウェブ・サーバ１０４は、履歴を用いて、アーカイブ対応ブラウザ１１８にどのオブジェクトを送信しなければならないか、及び、アーカイブ対応ブラウザ１１８のキャッシュからどのオブジェクトを参照することができるかを判定することができる。例えば、アーカイバ１０６は、履歴を用いて、履歴（又はキャッシュ）中の１つ又は複数のオブジェクトを除外した１つ又は複数のアーカイブを生成し、それにより、アーカイブ対応ブラウザ１１８に送信されるオブジェクトの合計サイズを低減し、ウェブ・ページのロード時間を低減することができる。
【００９４】
１つの実施形態においては、接続モジュール７０８は、アーカイブ対応ブラウザ１１８とウェブ・サーバ１０４との間に１つ又は複数の接続を開く。１つの実施形態においては、接続モジュール７０８は、アーカイブ対応ブラウザ１１８が利用可能な接続の数に等しい数の接続を開く。別の実施形態においては、接続モジュール７０８は、ウェブ・サーバ１０４が利用可能な接続の数と等しい数の接続を開く。別の実施形態においては、接続モジュール７０８は、ウェブ・サーバ１０４とアーカイブ対応ブラウザ１１８との間で取り決められた数の接続を開く。例えば、要求されるウェブ・ページは、ウェブ・サーバ１０４及びアーカイブ対応ブラウザ１１８が利用可能な接続の数より少ない数のアーカイブを含むことができる。この例では、接続モジュール７０８は、アーカイブの数と等しい数の接続を確立することができる。
【００９５】
アーカイブ配信モジュール７１０は、１つの実施形態においては、１つの利用可能な接続を通じてアーカイブを送る。アーカイブ配信モジュール７１０は、ウェブ・サーバ１０４に、アーカイブ最適化ウェブ・ページのためのアーカイブをアーカイブ対応ブラウザ１１８に送らせることができる。
【００９６】
以降の概略的なフローチャート図は、一般に、論理フローチャート図として示される。従って、図示される順序及び符号が付いたステップは、提示される方法の１つの実施形態を示すものである。図示される方法の１つ又は複数のステップ、又はその一部に対し、機能、論理、又は効果の点で等価な他のステップ及び方法を考えることができる。さらに、使用される形式及び記号は、本方法の論理ステップを説明するために与えられており、本方法の範囲を限定するものではないと理解される。フローチャート図においては種々の矢印タイプ及び線種が使用されることがあるが、これらは対応する方法の範囲を限定するものではないと理解される。実際に、幾つかの矢印又は他のコネクタが、本方法の論理フローのみを示すために用いられることがある。例えば、矢印は、示される方法の列挙されたステップ間の不特定の持続時間にわたる待ち時間又は監視時間を示すことがある。さらに、特定の方法が行われる順序は、示される対応するステップの順序を厳密に遵守してもよいし、そうでなくともよい。
【００９７】
図８は、ウェブ・ページのダウンロード時間を改善するための方法８００における種々のステップを示すフローチャート図である。方法８００は、特定の実施形態においては、図１−図７のシステム及び装置において用いられる方法であり、これらの図面を参照して説明されることになる。しかしながら方法８００はまた、これらとは独立に実施することもでき、これらの図面を参照して上述された実施形態に特に限定されることを意図されてはいない。
【００９８】
図８に示されるように、方法８００は、ウェブ・ページのためのアーカイブを生成することに関連する計算コストを算出する（８０２）。１つの実施形態においては、計算コストは、アーカイブと、アーカイブ内のアーカイブ可能オブジェクトにアクセスするように構成されたアーカイブ最適化ウェブ・ページと、を生成するのに必要なリソースの尺度である。代替的な実施形態においては、算出される（８０２）計算コストは、アーカイブ及びアーカイブ最適化ウェブ・ページを生成するのに必要なリソースの尺度と、アーカイブを用いることによって実現されるウェブ・ページのダウンロード時間の改善の尺度との間の比とすることができる。別の実施形態においては、算出される（８０２）計算コストは、例えば、ウェブ・ホスト１０２の負荷、ウェブ・ページが既にウェブ・クライアント１１２によって要求されているか否か、及び、ウェブ・ページが静的なウェブ・ページであるか否か、といったパラメータに応じて、変わる場合がある。
【００９９】
次いで、１つの実施形態においては、アーカイブ・コスト／利益モジュール２０２は、ウェブ・ページのためのアーカイブを生成することが価値があるかどうかを判定する（８０４）。判定（８０４）は、算出された（８０２）計算コスト及び閾値に基づいて行うことができる。例えば、アーカイブ・コスト／利益モジュール２０２は、性能利益に対する計算コストの比が閾値を下回るときにはアーカイブを生成することは価値があると判定することができる。
【０１００】
方法８００は、判定（８０４）が否定的である場合には、通常のウェブ・ページを選択する（８０６）。通常のウェブ・ページは、アーカイブへの参照を含まないウェブ・ページである。１つの実施形態においては、方法８００は、通常のウェブ・ページを生成することができる。代替的な実施形態においては、方法８００は、既存の通常のウェブ・ページを選択する（８０６）ことができる。
【０１０１】
アーカイブ・コスト／利益モジュール２０２が、アーカイブが生成されるべきであると判定した（８０４）場合には、次に、選択モジュール２０４は、ウェブ・ページのＤＯＭ木表現を走査する（８０８）。ＤＯＭ木は、どのオブジェクトがウェブ・ページに存在するかということと、オブジェクトのサイズ、オブジェクトの階層レベル、及びオブジェクト間の依存度といった、オブジェクトに関する他のパラメータとを判断するために走査される（８０８）。
【０１０２】
次いで、選択モジュール２０４は、オブジェクトをアーカイブ可能オブジェクトとして選択する（８１０）。アーカイブ可能オブジェクトは、オブジェクトのサイズ又はタイプといったオブジェクト選択基準を満たすことに応答して選択される（８１０）。例えば、選択モジュール２０４は、オブジェクトのサイズが３キロバイトより小さいことに応答して、オブジェクトをアーカイブ可能オブジェクトとして選択する（８１０）ことができる。
【０１０３】
オブジェクト優先順位付けモジュール３０８は、選択モジュール２０４によって選択された（８１０）アーカイブ可能オブジェクトに優先順位を付ける（８１２）。アーカイブ可能オブジェクトの優先順位付け（８１２）は、ＤＯＭ木における相対的な深さ、依存オブジェクトの数などといった、オブジェクト優先順位付け基準に基づいて行うことができる。例えば、あるオブジェクトは、ＤＯＭ木においてより多くの依存オブジェクトを有するため、別のオブジェクトより高い優先順位をもつことができる。
【０１０４】
次いで、アーカイブ生成モジュール２０６は、アーカイブ可能オブジェクトを用いてアーカイブを生成する（８１４）。生成された（８１４）アーカイブ内のアーカイブ可能オブジェクトは、優先順位付け（８１２）の際に割り当てられたオブジェクトの優先順位に従って、生成されたアーカイブ内で順序付けることができる。結果として、より高い優先順位のアーカイブ可能オブジェクトは、アーカイブ内において、より低い優先順位のオブジェクトの前に現れることができる。
【０１０５】
１つの実施形態においては、圧縮学習モジュール５０６は、圧縮がアーカイブにとって価値があるかどうかを判定することができる（８１５）。図５に関連して説明されたように、アーカイブ内のファイルのタイプ、アーカイブ内のファイルの数、アーカイブのサイズ、及び他の要因が、判定（８１５）に影響を与えることがある。方法８００は、圧縮がアーカイブにとって価値がないという判定（８１５）に応答して、圧縮されないアーカイブを選択する（８１８）。
【０１０６】
１つの実施形態においては、アーカイブ圧縮モジュール５０４は、圧縮がアーカイブにとって価値があるという判定（８１５）に応答して、生成されたアーカイブを圧縮する（８１６）。アーカイブの圧縮（８１６）には、ｇｚｉｐ、ｚｉｐ、ＬＺＸ、算術符号化などといったいずれかの圧縮方法を用いることができる。アーカイブの圧縮（８１６）は、ファイルが圧縮によって利益を受けるという判定に応答して行うことができる。例えば、方法８００は、アーカイブ可能オブジェクトが既に圧縮された画像ファイルを多く含むと判断し、従ってアーカイブを圧縮すべきではないと判定することができる。
【０１０７】
図９は、アーカイブ対応ブラウザ１１８におけるウェブ・ページのダウンロード時間を改善するための方法９００の種々のステップを示すフローチャート図である。方法９００は、特定の実施形態においては、図１−図７のシステム及び装置において用いられる方法であり、これらの図面を参照して説明されることになる。しかしながら方法９００はまた、これらとは独立に実施することもでき、これらの図面を参照して上述された実施形態に特に限定されることを意図されてはいない。
【０１０８】
図９に示されるように、方法９００は、アーカイブ対応ブラウザ１１８が利用可能な接続の数を決定する（９０２）。利用可能な接続の数は、アーカイブ対応ブラウザ１１８、ウェブ・クライアント１１２、ネットワーク１１０、又は他の考慮事項に応じて決められる。
【０１０９】
アーカイブ対応ブラウザ１１８は、ウェブ・ページを要求する（９０４）。ウェブ・ページを要求すること（９０４）は、１つの実施形態においては、ネットワーク１１０を介してウェブ・ホスト１０２に要求を送ることを含む。例えば、アーカイブ対応ブラウザ１１８は、ウェブ・ページを要求する（９０４）ために、ＴＣＰ／ＩＰネットワークを介してＨＴＴＰ要求を送ることができる。
【０１１０】
ブラウザ・パラメータ送信モジュール６０２は、１つの実施形態においては、ブラウザ・パラメータをウェブ・サーバ１０４に送信する（９０６）。ウェブ・サーバ１０４に送られた（９０６）ブラウザ・パラメータは、アーカイブ対応ブラウザ１１８がアーカイブを受信できることを示す１つ又は複数のインジケータ、アーカイブ対応ブラウザ１１８が利用可能な接続の数、又は他のインジケータを含むことができる。
【０１１１】
次に、アーカイブ応答受信モジュール６０４は、アーカイブ応答パラメータを受信する（９０８）。アーカイブ応答パラメータは、ウェブ・サーバ１０４がアーカイブを配信できることを示すことができる。アーカイブ応答パラメータは、ウェブ・サーバ１０４が利用可能な接続の数、又は他のインジケータをさらに示すことができる。
【０１１２】
次いで、アーカイブ対応ブラウザ１１８は、アーカイブがサポートされているかどうかを判定する（９１０）。１つの実施形態においては、判定（９１０）は、受信した（９０８）アーカイブ応答パラメータに応答して行われる。アーカイブ対応ブラウザ１１８が、アーカイブがサポートされていないと判定した（９１０）場合には、方法９００は、アーカイブを持たない通常のウェブ・ページを用いる（９１２）。アーカイブ対応ブラウザ１１８が、アーカイブがサポートされていると判定した（９１０）場合には、方法９００は続行する。
【０１１３】
接続モジュール６０８は、ウェブ・サーバ１０４との間に１つ又は複数の接続を確立する（９１４）。１つの実施形態においては、確立される（９１４）接続の数は、図６及び図７に関して上述されたように、ブラウザ・パラメータ、アーカイブ応答パラメータ、又は他の考慮事項に応じたものである。確立された（９１４）接続は、アーカイブ、ウェブ・ページ、履歴情報、パラメータ、又は他のデータを送信するために用いられる。
【０１１４】
履歴送信モジュール６０６は、アーカイブ対応ブラウザ１１８の履歴情報をウェブ・サーバ１０４に送信する（９１６）ことができる。１つの実施形態においては、送信された（９１６）履歴は、ウェブ・サーバ１０４及び／又は他のウェブ・サーバとの以前のトランザクションからアーカイブ対応ブラウザによって保持されたオブジェクトのリストを含む。１つの実施形態においては、履歴送信モジュール６０６は、ウェブ・サーバ１０４がアーカイブを配信できることを示すアーカイブ応答パラメータの受信に応答して、履歴を送信する（９１６）。
【０１１５】
アーカイブ取得モジュール６１０は、ウェブ・サーバ１０４からアーカイブを受信する（９１８）。受信されたアーカイブは、上述のように、１つ又は複数のアーカイブ可能オブジェクトを含むことができる。１つの実施形態においては、アーカイブ・ファイルは、ウェブ・ページについての要求９０４に応答して受信される（９１８）。
【０１１６】
アーカイブ・アンパック・モジュール６１２は、１つの実施形態においては、配信されたアーカイブが圧縮されていることに応答して、アーカイブを解凍する（９１９）ことができる。アーカイブを解凍する（９１９）ことは、圧縮モジュール５０４によって用いられた圧縮方法を用いてアーカイブを解凍することを含むことができる。
【０１１７】
１つの実施形態においては、ページ・レンダリング・モジュール６１４は、受信された（９１８）アーカイブから抽出されたアーカイブ可能オブジェクトを用いて、ウェブ・ページをレンダリングする（９２０）。ページ・レンダリング・モジュール６１４は、アーカイブから抽出されたアーカイブ可能オブジェクトを用いてアーカイブ対応ブラウザ１１８にアーカイブ最適化ウェブ・ページをレンダリングさせる（９２０）ソフトウェア命令を含むことができる。アーカイブ最適化ウェブ・ページをレンダリングすること（９２０）は、アーカイブ最適化ウェブ・ページについて定められたディスプレイ上の位置にアーカイブ可能オブジェクトを表示することを含むことができる。
【０１１８】
図１０は、ウェブ・サーバ１０４におけるウェブ・ページのダウンロード時間を改善するための方法１０００の種々のステップを示すフローチャート図である。方法１０００は、特定の実施形態においては、図１−図７のシステム及び装置において用いられる方法であり、これらの図面を参照して説明されることになる。しかしながら方法１０００はまた、これらとは独立に実施することもでき、これらの図面を参照して上述された実施形態に特に限定されることを意図されてはいない。
【０１１９】
図１０に示されるように、方法１０００は、ブラウザ・パラメータ受信モジュール７０２によってブラウザ・パラメータを受信する（１００２）ことを含む。ブラウザ・パラメータは、アーカイブ対応ブラウザ１１８から受信する（１００２）ことができ、ブラウザの能力を示す１つ又は複数のインジケータを含むことができる。インジケータは、アーカイブ対応ウェブ・ブラウザ１１８がアーカイブを用いてアーカイブ最適化ウェブ・ページをレンダリングできることを示すことができる。インジケータは、アーカイブ対応ブラウザ１１８が利用可能な接続の数を示すこともできる。
【０１２０】
ウェブ・サーバ１０４は、１つ又は複数のアーカイブを含むアーカイブ最適化ウェブ・ページを配信するのに用いる接続の数を決定する（１００４）ことができる。１つの実施形態においては、ウェブ・サーバ１０４は、アーカイブ対応ブラウザ１１８が利用可能な接続の数、ウェブ・サーバ１０４が利用可能な接続の数、性能面の考慮事項などを示すブラウザ・パラメータのうちの１つ又は複数に応じて、接続の数を決定する（１００４）ことができる。
【０１２１】
アーカイバ１０６は、アーカイブ可能オブジェクトの選択を最適化する（１００６）ことができる。１つの実施形態においては、アーカイバ１０６は、アーカイブ可能オブジェクトのサイズ、ＤＯＭ木におけるアーカイブ可能オブジェクトの相対的な高さ、アーカイブ可能オブジェクト間の依存度、生成されているアーカイブの数、又は他の考慮事項のうちの１つ又は複数に応じて、選択を最適化する（１００６）。１つの実施形態においては、アーカイブ可能オブジェクトは、図２−図５に関連して説明されたように最適化される（１００６）。
【０１２２】
アーカイバ１０６は、１つ又は複数のアーカイブを生成する（１００８）ことができる。１つ又は複数のアーカイブは、アーカイブ可能オブジェクトの最適化された（１００６）選択を用いて生成する（１００８）ことができる。生成されるアーカイブの数は、以前に決定された（１００４）接続の数に関係させてもよい。別の実施形態においては、生成される（１００８）アーカイブの数は、用いる接続の数の決定（１００４）に影響を与えることがある。
【０１２３】
アーカイブ配信モジュール７１０は、方法１０００の１つの実施形態においては、１つ又は複数のアーカイブをアーカイブ対応ブラウザ１１８に配信する（１０１０）。１つの実施形態においては、アーカイブ配信モジュール７１０は、ＴＣＰ／ＩＰなどのネットワーク１１０を用いて、１つ又は複数のアーカイブを配信する（１０１０）。
【０１２４】
本発明は、その趣旨及び本質的な特徴から逸脱することなく、他の特定の形態で具体化することができる。説明された実施形態は、全ての点において、単なる例であり、制限的なものとはみなされない。従って、本発明の範囲は、上記の説明ではなく、特許請求の範囲により示される。特許請求の範囲の均等物の意味及び範囲内にある全ての変更は、その範囲に含まれるべきである。
【図１】
2010537337.tif 000003
【図２】
2010537337.tif 000004
【図３】
2010537337.tif 000005
【図４】
2010537337.tif 000006
【図５】
2010537337.tif 000007
【図６】
2010537337.tif 000008
【図７】
2010537337.tif 000009
【図８】
2010537337.tif 000010
【図９】
2010537337.tif 000011
【図１０】
2010537337.tif 000012
【手続補正書】
【提出日】平成22年6月24日(2010.6.24)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ウェブ・ページのロード時間を低減するためのシステムであって、
ウェブ・サーバからウェブ・ページを要求し、
前記ウェブ・ページ内で参照される１つ又は複数のアーカイブ可能オブジェクトを含む１つ又は複数のアーカイブを受信し、
前記１つ又は複数のアーカイブからのアーカイブ可能オブジェクトを用いて前記ウェブ・ページをレンダリングする
ように設定されたウェブ・ブラウザと、
前記ブラウザから前記ウェブ・ページについての要求を受信し、
前記ウェブ・ページ内で参照される複数のアーカイブ可能オブジェクトを各々が含む１つ又は複数のアーカイブを配信する
ように設定されたウェブ・サーバと、
前記ウェブ・ページのための１つ又は複数のアーカイブについてアーカイブ可能オブジェクトの選択を最適化し、
アーカイブ可能オブジェクトの前記最適化された選択から１つ又は複数のアーカイブを生成する
ように設定されたアーカイバと、
を含むシステム。
【請求項２】
前記ウェブ・ブラウザは、該ウェブ・ブラウザが１つ又は複数のアーカイブを受信するように設定されていることを示すインジケータを含むブラウザ・パラメータを送るようにさらに設定された、請求項１に記載のシステム。
【請求項３】
前記アーカイバは、前記１つ又は複数のアーカイブを配信するのに用いる接続の最適数を決定することにより、前記ウェブ・ブラウザの能力に適合するアーカイブ応答パラメータを決定する、請求項１又は請求項２に記載のシステム。
【請求項４】
前記アーカイバは、前記１つ又は複数のアーカイブを配信するのに用いる接続の前記決定された最適数と等しい数のアーカイブを生成する、請求項３に記載のシステム。
【請求項５】
前記アーカイバは、
アーカイブ応答パラメータを前記ウェブ・ブラウザに送信することであって、前記アーカイブ応答パラメータは、前記アーカイバが１つ又は複数のアーカイブを生成するように設定されていることを示すインジケータと前記ウェブ・サーバのための利用可能な接続とを含む、送信することと、
前記１つ又は複数のアーカイブを配信するのに用いる接続の最大数を決定することと、によって、前記ブラウザの能力に適合する応答パラメータを決定する、請求項１に記載のシステム。
【請求項６】
前記ブラウザは、前記ウェブ・サーバとの以前の対話からブラウザ・キャッシュに存在する、前記ウェブ・ページに関連する予めキャッシュされたオブジェクトのリストを送信することによって、前記ウェブ・サーバにブラウザ・パラメータを送るようにさらに設定される、請求項１に記載のシステム。
【請求項７】
前記アーカイバは、
前記ブラウザ・キャッシュに存在する予めキャッシュされたオブジェクトの前記リストを、前記ウェブ・ページ内で参照される前記アーカイブ可能オブジェクトと比較し、
予めキャッシュされたオブジェクトの前記リストに存在しないアーカイブ可能オブジェクトを判別し、
１つ又は複数のアーカイブのために前記ブラウザ・キャッシュに存在しないアーカイブ可能オブジェクトを選択する、
ことによって、前記ブラウザの能力に適合するアーカイブ応答パラメータを決定する、請求項６に記載のシステム。
【請求項８】
ウェブ・ページのロード時間を低減するためのコンピュータ・プログラムであって、該プログラムがコンピュータに、
ブラウザ・パラメータを受信するステップであって、前記ブラウザ・パラメータは、ブラウザが該ブラウザのための１つ又は複数のアーカイブ及び利用可能な接続を受信するように設定されていることを示すインジケータを含む、ステップと、
１つ又は複数のアーカイブを配信するのに用いる接続の数を決定するステップと、
ウェブ・ページのための１つ又は複数のアーカイブについてアーカイブ可能オブジェクトの選択を最適化するステップと、
アーカイブ可能オブジェクトの前記最適化された選択を含む１つ又は複数のアーカイブを配信するのに用いる接続の数と等しい数のアーカイブを生成するステップと、
前記１つ又は複数のアーカイブを配信するステップであって、前記１つ又は複数のアーカイブの各々は、前記ウェブ・ページ内で参照される複数のアーカイブ可能オブジェクトを含む、ステップと、
を実行させる、コンピュータ・プログラム。
【請求項９】
ウェブ・ページのロード時間を低減するためにプログラムされたコンピュータ使用可能プログラム・コードを有するコンピュータ可読媒体を含むコンピュータ・プログラムであって、前記コンピュータ・プログラムが、コンピュータに、
ウェブ・サーバからウェブ・ページを要求するステップと、
前記ウェブ・サーバから、各々が前記ウェブ・ページによって参照される複数のアーカイブ可能オブジェクトを含む１つ又は複数のアーカイブを受信するステップと、
前記１つ又は複数のアーカイブからの前記複数のアーカイブ可能オブジェクトを用いて、前記ウェブ・ページをレンダリングするステップと、
を実行させる、コンピュータ・プログラム。
【請求項１０】
ウェブ・ページのロード時間を低減するためのコンピュータ・プログラムであって、前記コンピュータ・プログラムがコンピュータに、
ブラウザがウェブ・ページを受信するのに利用可能な接続の数を決定するステップと、
ウェブ・サーバからウェブ・ページを要求するステップであって、
前記ブラウザがアーカイブを受信できることを示すインジケータと、前記ブラウザが前記ウェブ・ページの一部を受信するのに利用可能な前記接続の数を示すインジケータとを含む、ブラウザ・パラメータを送信するステップと、
前記ウェブ・サーバから、前記ウェブ・サーバが１つ又は複数のアーカイブを配信できることを示すインジケータを含むアーカイブ応答パラメータを受信するステップと、
前記ウェブ・サーバからの前記アーカイブ応答パラメータと前記ブラウザ・パラメータとに従って、前記ウェブ・サーバとの１つ又は複数の接続を確立するステップと、
前記ウェブ・サーバから、各々が前記ウェブ・ページに関連する複数のアーカイブ可能オブジェクトを含む１つ又は複数のアーカイブを受信するステップと、
前記１つ又は複数のアーカイブからの前記複数のアーカイブ可能オブジェクトを用いて前記ウェブ・ページをレンダリングするステップと、
を含む、ウェブ・サーバからウェブ・ページを要求するステップと、
を実行させる、コンピュータ・プログラム。
【請求項１１】
ウェブ・ページのロード時間を低減するためのコンピュータ・プログラムであって、該コンピュータ・プログラムがコンピュータに、
生成するアーカイブの数を決定するステップと、
アーカイバによって生成される１つ又は複数のアーカイブに含めるためのアーカイブ可能オブジェクトを選択するステップであって、前記選択されたアーカイブ可能オブジェクトは、オブジェクト優先順位付けによる前記ウェブ・ページに関連する１つ又は複数のアーカイブ可能オブジェクトを含み、アーカイブ可能オブジェクトは、前記アーカイブ可能オブジェクトが閾値を下回るサイズを有するという判定に応答して選択される、ステップと、
ウェブ・ページのための１つ又は複数のアーカイブについて前記選択されたアーカイブ可能オブジェクトを最適化するステップと、
前記決定されたアーカイブの数と等しい数のアーカイブを生成するステップであって、前記アーカイブはアーカイブ可能オブジェクトの前記最適化された選択を含む、ステップと、
を実行させる、コンピュータ・プログラム。
【請求項１２】
ウェブ・ページのロード時間を低減するための方法であって、
ウェブ・サーバからウェブ・ページを要求するステップと、
前記ウェブ・ページ内で参照される１つ又は複数のアーカイブ可能オブジェクトを含む１つ又は複数のアーカイブを受信するステップと、
前記１つ又は複数のアーカイブからのアーカイブ可能オブジェクトを用いて前記ウェブ・ページをレンダリングするステップと、
ブラウザから前記ウェブ・ページについての要求を受信するステップと、
前記ウェブ・ページ内で参照される複数のアーカイブ可能オブジェクトを各々が含む１つ又は複数のアーカイブを配信するステップと、
前記ウェブ・ページのための１つ又は複数のアーカイブについてアーカイブ可能オブジェクトの選択を最適化するステップと、
アーカイバにおいて、前記最適化されたアーカイブ可能オブジェクトの選択から１つ又は複数のアーカイブを生成するステップと、
を含む方法。
【請求項１３】
ウェブ・ページのロード時間を低減するための方法であって、
ブラウザ・パラメータを受信するステップであって、前記ブラウザ・パラメータは、ブラウザが該ブラウザのための１つ又は複数のアーカイブ及び利用可能な接続を受信するように設定されていることを示すインジケータを含む、ステップと、
１つ又は複数のアーカイブを配信するのに用いる接続の数を決定するステップと、
ウェブ・ページのための１つ又は複数のアーカイブについてアーカイブ可能オブジェクトの選択を最適化するステップと、
アーカイブ可能オブジェクトの前記最適化された選択を含む１つ又は複数のアーカイブを配信するのに用いる接続の数と等しい数のアーカイブを生成するステップと、
前記１つ又は複数のアーカイブを配信するステップであって、前記１つ又は複数のアーカイブの各々は、前記ウェブ・ページ内で参照される複数のアーカイブ可能オブジェクトを含む、ステップと、
を含む方法。
【請求項１４】
ウェブ・ページのロード時間を低減するための方法であって、
ウェブ・サーバからウェブ・ページを要求するステップと、
前記ウェブ・サーバから、各々が前記ウェブ・ページによって参照される複数のアーカイブ可能オブジェクトを含む１つ又は複数のアーカイブを受信するステップと、
前記１つ又は複数のアーカイブからの前記複数のアーカイブ可能オブジェクトを用いて、前記ウェブ・ページをレンダリングするステップと、
を含む方法。
【請求項１５】
ウェブ・ページのロード時間を低減するための方法であって、
ブラウザがウェブ・ページを受信するのに利用可能な接続の数を決定するステップと、
ウェブ・サーバからウェブ・ページを要求するステップであって、
前記ブラウザがアーカイブを受信できることを示すインジケータと、前記ブラウザが前記ウェブ・ページの一部を受信するのに利用可能な前記接続の数を示すインジケータとを含むブラウザ・パラメータを送信するステップと、
前記ウェブ・サーバから、前記ウェブ・サーバが１つ又は複数のアーカイブを配信できることを示すインジケータを含むアーカイブ応答パラメータを受信するステップと、
前記ウェブ・サーバからの前記アーカイブ応答パラメータと前記ブラウザ・パラメータとに従って、前記ウェブ・サーバとの１つ又は複数の接続を確立するステップと、
前記ウェブ・サーバから、各々が前記ウェブ・ページに関連する複数のアーカイブ可能オブジェクトを含む１つ又は複数のアーカイブを受信するステップと、
前記１つ又は複数のアーカイブからの前記複数のアーカイブ可能オブジェクトを用いて前記ウェブ・ページをレンダリングするステップと、
を含む、ステップと、
を含む方法。
【請求項１６】
ウェブ・ページのロード時間を低減するための方法であって、
生成するアーカイブの数を決定するステップと、
アーカイバによって生成される１つ又は複数のアーカイブに含めるためのアーカイブ可能オブジェクトを選択するステップであって、前記選択されたアーカイブ可能オブジェクトは、オブジェクト優先順位付けによる前記ウェブ・ページに関連する１つ又は複数のアーカイブ可能オブジェクトを含み、アーカイブ可能オブジェクトは、前記アーカイブ可能オブジェクトが閾値を下回るサイズを有するという判定に応答して選択される、ステップと、
ウェブ・ページのための１つ又は複数のアーカイブについて前記選択されたアーカイブ可能オブジェクトを最適化するステップと、
前記決定されたアーカイブの数と等しい数のアーカイブを生成するステップであって、前記アーカイブはアーカイブ可能オブジェクトの前記最適化された選択を含む、ステップと、
を含む方法。
【請求項１７】
請求項１２から請求項１６記載の何れか１つの方法の全てのステップをコンピュータに実行させる、コンピュータ・プログラム。
【国際調査報告】
2010537337.tif 000013
2010537337.tif 000014