(57)【要約】ウェブページのネストしたフラグメントキャッシングが説明される。ウェブページのリクエストを受信したことに応答して、ウェブページの第１レベルのフラグメント情報が取得される。第１レベルのフラグメント情報に基づいて、第１レベルのフラグメントのためにフラグメント解析プロセスが引き続き実行され、フラグメント解析プロセスは第１レベルのフラグメントの事前設定ネスティング情報に基づいて、第１レベルのフラグメントをレンダリングすることを含む。ネスティング情報は現在のフラグメントが他のフラグメントを含んでいるかどうかについての情報を含む。フラグメント解析プロセスの結果を結合して、ウェブページの第１レベルのフラグメントの完全なコンテンツを生成する。本開示の例示的な実施形態はウェブページのネストしたフラグメントキャッシングを可能にするだけでなく、ウェブページのネストしたフラグメントキャッシングが実行されるときに再帰的に各フラグメントのＨＴＭＬコードを取得し、このようにしてユーザにウェブページの完全なコンテンツを表示する。
2013537665.tif 000002
【特許請求の範囲】
【請求項１】
ウェブページのネストしたフラグメントキャッシングを処理する方法であって、
ウェブページのリクエストを受信したことに応答して、前記ウェブページの第１レベルのフラグメント情報を取得することと、
引き続き前記第１レベルのフラグメント情報に基づいて、第１レベルのフラグメントのためのフラグメント解析プロセスを実行することであって、前記フラグメント解析プロセスは前記第１レベルのフラグメントの所定のネスティング情報に基づいて、前記第１レベルのフラグメントをレンダリングすることを含み、前記ネスティング情報は現在のフラグメントが他のフラグメントを含んでいるかどうかについての情報を含む、実行することと、
前記フラグメント解析プロセスの結果を結合して、前記ウェブページの前記第１レベルのフラグメントの完全なコンテンツを生成することと、
を含む、方法。
【請求項２】
前記ウェブページの第１レベルのフラグメント情報を取得することは、
前記ウェブページのユニフォームリソースロケータ（ＵＲＬ）を取得することと、
前記ウェブページの前記ＵＲＬに基づいて前記ウェブページのテンプレートを見つけることと、
前記ウェブページの前記テンプレートの前記第１レベルのフラグメントに対応するフラグメント名およびフラグメントパラメータを取得することと、
を含む、請求項１に記載の方法。
【請求項３】
引き続き前記第１レベルのフラグメント情報に基づいて、第１レベルのフラグメントのためのフラグメント解析プロセスを実行することは、
引き続き前記第１レベルのフラグメントのフラグメント名およびフラグメントパラメータに基づいて前記第１レベルのフラグメントのＨＴＭＬコードおよびネスティング情報を取得することと、
前記ネスティング情報に基づいて第１レベルのフラグメントが第２レベルのフラグメントを含んでいるかどうかを判断し、肯定の場合、再帰的に前記第２レベルのフラグメントをレンダリングすることと
を含む、請求項１に記載の方法。
【請求項４】
引き続き前記第１レベルのフラグメントのＨＴＭＬコードおよびネスティング情報を取得することは、
コンフィギュレーションサーバから前記第１レベルのフラグメントのキャッシング情報を検索することであって、前記キャッシング情報はフラグメントをキャッシュすべきかどうかについての情報を含む、検索することと、
前記キャッシング情報に基づいて前記第１レベルのフラグメントをキャッシュすべきかどうかを判断し、その結果、
肯定の場合は、前記第１レベルのフラグメントのフラグメント名およびフラグメントパラメータのハッシュ計算を実行することにより、前記第１レベルのフラグメントのフラグメント識別子ＩＤを取得し、前記フラグメントＩＤに基づいてキャッシングシステムから前記フラグメントＩＤに対応する前記第１レベルのフラグメントのＨＴＭＬコードを検索し、
肯定でない場合は、ウェブサーバのトランザクションシステムによって、前記フラグメントＩＤに対応する前記ＨＴＭＬコードを検索することと、
を含む、請求項３に記載の方法。
【請求項５】
前記第１レベルのフラグメントおよび前記キャッシングシステムが前記第１レベルのフラグメントの前記ＨＴＭＬコードを含まないときに、前記方法は、
前記ウェブサーバにより、前記フラグメントＩＤに対応する前記ＨＴＭＬコードを見つけることと、
前記見つけられたＨＴＭＬコードおよび前記フラグメントＩＤとの対応関係を前記キャッシングシステム内にキャッシングすることと、
をさらに含む、請求項４に記載の方法。
【請求項６】
前記キャッシング情報は前記キャッシュされるフラグメントのキャッシング継続時間の情報をさらに含み、前記方法は、
前記キャッシング継続時間内にフラグメントのコンテンツが変更される場合、前記変更されたフラグメントのフラグメント名およびフラグメントパラメータのハッシュ計算を実行することにより前記変更されたフラグメントのフラグメントＩＤを取得することと、
前記フラグメントＩＤに基づいて前記キャッシングシステムから前記フラグメントＩＤに対応する前記ＨＴＭＬコードを見つけて削除することと、
をさらに含む、請求項４に記載の方法。
【請求項７】
ヘッダがキャッシュされる場合、前記方法は、
前記フラグメントの前記ＨＴＭＬコードに対応する前記ヘッダの値を前記キャッシングシステム内にキャッシングすること、
をさらに含む、請求項４に記載の方法。
【請求項８】
前記再帰的にレンダリングすることが、
処理されるフラグメントのために、前記処理されるフラグメントレベルを超えるフラグメント内にプレースホルダを生成することと、
前記処理されるフラグメントのフラグメント名およびフラグメントパラメータに基づいて、前記処理されるフラグメントのＨＴＭＬコードを取得することと、
前記処理されるフラグメントの前記ＨＴＭＬコードにより前記処理されるフラグメントの前記プレースホルダを置換することと、
を含む、請求項３に記載の方法。
【請求項９】
引き続きフラグメント解析プロセスを実行することは、前記第２レベルのフラグメントが第３レベルのフラグメントを含んでいるかどうかを判断することと、肯定の場合に、Ｎが３より大きい整数である、Ｎレベルのフラグメントが他のフラグメントを含んでいないと判断されるまで再帰的に前記第３レベルのフラグメントをレンダリングすることと、をさらに含む、請求項３に記載の方法。
【請求項１０】
ウェブページキャッシングを処理する方法であって、
ウェブページへのリクエストを受信することと、
前記ウェブページをキャッシュするかどうかを判断することと、
前記ウェブページがキャッシュされるべきである場合に、前記ウェブページのコンテンツを取得するために前記ウェブページを直接レンダリングすることと、
前記ウェブページがキャッシュされるべきでない場合に、前記ウェブページの第１レベルのフラグメント情報を取得し、引き続き前記第１レベルのフラグメント情報に基づいて、第１レベルのフラグメントのためのフラグメント解析プロセスを実行することと、を含み、前記フラグメント解析プロセスは、
現在のフラグメントが他のフラグメントを含んでいるかどうかについての情報を含む、前記第１レベルのフラグメントの事前設定ネスティング情報に基づいて前記第１レベルのフラグメントをレンダリングすることと、
前記解析プロセスの結果を結合して、前記ウェブページの前記第１レベルのフラグメントの完全なコンテンツを生成することと、
を含む、方法。
【請求項１１】
前記ウェブページをキャッシュするかどうかを判断することは、
前記ウェブページのＵＲＬを取得することと、
前記ＵＲＬに基づいて、ページキャッシングが前記ウェブページに適切であるかどうかについての情報、および前記ウェブページのキャッシング継続時間の情報を含む事前設定キャッシング情報を見つけることと、
を含む、請求項１０に記載の方法。
【請求項１２】
前記ウェブページを直接レンダリングすることは、
前記キャッシング継続時間の満了前に、前記ウェブページの前記ＵＲＬおよびウェブページパラメータから３２桁のウェブページＩＤを生成することと、
前記ウェブページＩＤに基づいてキャッシングシステムから対応するＨＴＭＬコードを見つけることと、
を含む、請求項１０に記載の方法。
【請求項１３】
前記ＨＴＭＬコードが見つからない場合に、ウェブサーバのトランザクションシステムにより、前記ウェブページＩＤに対応する前記ＨＴＭＬコードを見つけることをさらに含む、請求項１２に記載の方法。
【請求項１４】
ウェブページのネストしたフラグメントキャッシングのための装置であって、
前記ウェブページのリクエストを受信したことに応答してウェブページの第１レベルのフラグメント情報を取得するように構成された収集モジュールと、
第１レベルのフラグメント情報に基づいて、第１レベルのフラグメントのためのフラグメント解析プロセスを実行するように構成されたフラグメント解析モジュールであって、前記フラグメント解析プロセスは、前記第１レベルのフラグメントの所定のネスティング情報に基づいて前記第１レベルのフラグメントをレンダリングすることを含み、前記ネスティング情報は現在のフラグメントが他のフラグメントを含んでいるかどうかについての情報を含む、フラグメント解析モジュールと、
前記レンダリングのレンダリング結果を結合して、前記ウェブページの前記第１レベルのフラグメントの完全なコンテンツを生成するように構成された、結合およびアセンブリモジュールと、
を備える、装置。
【請求項１５】
前記収集モジュールは前記ウェブページのユニフォームリソースロケータ（ＵＲＬ）を取得し、前記ウェブページの前記ＵＲＬに基づいて前記ウェブページのテンプレートを見つけるようにさらに構成され、前記取得モジュールは、前記ウェブページの前記テンプレート内で前記第１レベルのフラグメントに対応するフラグメント名およびフラグメントパラメータを取得する、請求項１４に記載の装置。
【請求項１６】
前記フラグメント解析モジュールは、引き続き前記第１レベルのフラグメントのフラグメント名およびフラグメントパラメータに基づいて、前記第１レベルのフラグメントのＨＴＭＬコードおよびネスティング情報を取得し、前記ネスティング情報に基づいて第１レベルのフラグメントが第２レベルのフラグメントを含んでいるかどうかを判断するように構成されている、請求項１４に記載の装置。
【請求項１７】
ウェブページをキャッシュする装置であって、
ウェブページのリクエストを受信するように構成されたウェブページリクエスト受信モジュールと、
前記要求されたウェブページのページキャッシングを実行するかどうかを判断するように構成された判断モジュールと、
前記判断モジュールがウェブキャッシングを実行すると判断した場合に、前記ウェブページのコンテンツを取得するために前記ウェブページを直接レンダリングするように構成された直接レンダリングモジュールと、
ネストしたフラグメントキャッシング装置であって、
前記判断モジュールがウェブキャッシングを実行しないと判断した場合、前記ウェブページの第１レベルのフラグメント情報を取得し、
引き続き前記第１レベルのフラグメント情報に基づいて、第１レベルのフラグメントのためのフラグメント解析プロセスであって、現在のフラグメントが他のフラグメントを含んでいるかどうかについての情報を含む、前記第１レベルのフラグメントの所定のネスティング情報に基づいて、前記第１レベルのフラグメントをレンダリングすることを含む、フラグメント解析プロセスを実行し、
前記レンダリングのレンダリング結果を結合して、前記ウェブページの前記第１レベルのフラグメントの完全なコンテンツを生成するように構成された、ネストしたフラグメントキャッシング装置と、
を備える、装置。
【請求項１８】
前記判断モジュールは、前記ウェブページのＵＲＬを取得し、前記ＵＲＬに基づいて事前設定キャッシング情報を見つけるように構成され、前記キャッシング情報はページキャッシングが前記ウェブページに対して適切であるかどうかについての情報、および前記ウェブページのキャッシング継続時間の情報を含む、請求項１７に記載の装置。
【請求項１９】
前記直接レンダリングモジュールは、前記キャッシング継続時間の満了前に、前記ウェブページの前記ＵＲＬおよびウェブページパラメータから３２桁のウェブページＩＤを生成し、前記ウェブページＩＤに基づいてキャッシングシステムから対応するＨＴＭＬコードを見つけるように構成されている、請求項１７に記載の装置。
【請求項２０】
前記直接レンダリングモジュールが前記ＨＴＭＬコードを見つけない場合に、前記装置はウェブサーバのトランザクションシステムにアクセスすることにより前記ウェブページＩＤに対応したＨＴＭＬコードを見つける、請求項１９に記載の装置。
【発明の詳細な説明】
【技術分野】
【０００１】
関連特許出願の相互参照
本出願は２０１０年７月１２日に出願された「ウェブページのネストしたフラグメントキャッシングを処理する方法および装置」と題する、中国特許出願第２０１０１０２２５１８６．２号の優先権を主張し、その全体が本明細書に参照により援用される。
【０００２】
本開示はネットワークのデータ処理分野に関し、特にウェブページのネストしたフラグメントキャッシングを処理する方法および装置に関する。
【背景技術】
【０００３】
ユーザが初めてウェブサーバにウェブページを要求するとき、ウェブブラウザ（例えばＩＥブラウザ）は累積加速を用いてウェブページへのアクセスが高速化される。ウェブブラウザはコンピュータで以前にアクセスしたウェブページ（例えば、イメージおよびＣｏｏｋｉｅファイルを含む）の内容を保存することができる。コンピュータのこの格納領域は、ＩＥのキャッシュスペースと呼ばれることがある。その後、ウェブページを訪問するたびに、ＩＥブラウザは最初にこのキャッシュ領域を調べることができる。キャッシュ領域に現在アクセスしているコンテンツが含まれている場合は、ＩＥブラウザはインターネットからコンテンツをダウンロードせずにキャッシュからコンテンツを直接読み取り、このようにウェブページへのアクセスの高速化を実現することができる。
【０００４】
ウェブページのキャッシングでは、２つの方法が現在の技術に存在する。１つの方法はページキャッシングと呼ばれ、アクセスされたウェブページ全体のキャッシングを実行する。もう１つの方法はフラグメントキャッシングと呼ばれ、アクセスされたウェブページを複数のフラグメントに分割し（例えば、１つのフラグメントはイメージデータ、別のフラグメントはテキストデータ等）特定のフラグメントのコンテンツをキャッシュしている。
【０００５】
しかし、ウェブページの特定のフラグメントの内容が関連している可能性があるので、あるフラグメントのためにネストしたキャッシングが必要であるかもしれない。例えば、フラグメントＡはフラグメントＢを含むことができ、フラグメントＢはネストした形でフラグメントＣを含むことができる場合、既存の技術ではフラグメントＡおよびフラグメントＣがキャッシングを必要とする一方でフラグメントＢがキャッシングを必要としない状況はサポートしないであろう。
【０００６】
現在、当業者が緊急に解決する必要がある１つの技術的問題は、ネストしたフラグメントキャッシングおよびその後の再帰的処理の取り扱いにおける既存の技術の欠点を克服するために、ウェブページのネストしたフラグメントキャッシングを処理するための新規な方法を提案することである。
【発明の概要】
【０００７】
本開示によって対処されるべき技術的な問題は、ネストしたフラグメントキャッシングおよびその後の再帰的処理を取り扱う際に、既存技術の欠落を克服するために使用することができるページキャッシングを処理する方法を提供することである。本開示はさらに、実際に上記の方法を実施し、適用することを保証するために使用することができるページキャッシング処理の装置を提供する。
【０００８】
上記の課題を解決するために、本開示はウェブページのリクエストを受信したことに応答することを含むことができる、ウェブページの第１レベルのフラグメント情報を取得するページキャッシング処理の方法を提供する。第１レベルのフラグメント情報に基づいて、第１レベルのフラグメントのためのフラグメント解析プロセスが引き続いて実行され、フラグメント解析プロセスは第１レベルのフラグメントの所定のネスティング情報に基づいて第１レベルのフラグメントをレンダリングすることを含む。ネスティング情報は現在のフラグメントが他のフラグメントを含んでいるかどうかについての情報を含む。フラグメント解析プロセスの結果を結合して、ウェブページの第１レベルのフラグメントの完全なコンテンツを生成する。
【０００９】
さらに、本開示はウェブページのリクエストを受信し、要求されたウェブページのウェブページキャッシングを実行するかどうかを判断することを含むことができる、ウェブページのキャッシング処理の方法を提供する。肯定の場合、ウェブページのコンテンツを取得するためにウェブページを直接レンダリングすることができる。しかし、肯定ではない場合は、この方法は第１レベルのフラグメント情報に基づいてウェブページの第１レベルのフラグメント情報を取得することを含み、引き続き第１レベルのフラグメントのフラグメント解析プロセスを実行する。フラグメント解析プロセスは第１レベルのフラグメントの事前設定ネスティング情報に基づいて第１レベルのフラグメントをレンダリングすることを含み、ネスティング情報は現在のフラグメントが他のフラグメントを含んでいるかどうかについての情報を含む。フラグメント解析プロセスの結果を結合して、ウェブページの第１レベルのフラグメントの完全なコンテンツを生成する。
【００１０】
本開示はウェブページのネストしたフラグメントキャッシングを処理する装置を提供する。本装置はウェブページのリクエストを受信したことに応答して、ウェブページの第１レベルのフラグメント情報を取得する取得モジュールを含む。フラグメント解析モジュールも含まれており、第１レベルのフラグメント情報に基づいて、第１レベルのフラグメントのためのフラグメント解析プロセスを実行するように構成される。フラグメント解析プロセスは第１レベルのフラグメントの所定のネスティング情報に基づいて第１レベルのフラグメントをレンダリングし、ネスティング情報は現在のフラグメントが他のフラグメントを含むかどうかについての情報を含む。装置はさらに、ウェブページの第１レベルのフラグメントの完全なコンテンツを生成するレンダリングのレンダリング結果を結合するように構成された結合およびアセンブリモジュールを含む。
【００１１】
本開示はさらに、ウェブページのリクエストを受信するように構成されたウェブページリクエスト受信モジュールを含むことができる、ウェブページキャッシング処理の装置を提供する。判断モジュールも含まれ、要求されたウェブページのページキャッシングを実行するかどうかを判断するように構成することができる。直接レンダリングモジュールは判断モジュールの結果が肯定である場合には、ウェブページのコンテンツを取得するためウェブページを直接レンダリングするように構成されている。本装置はまた、判断モジュールの結果が肯定でない場合は、ウェブページの第１レベルのフラグメント情報を取得するように構成されるネストしたフラグメントキャッシング装置を含むことができる。ネストしたフラグメントキャッシング装置は引き続き第１レベルのフラグメント情報に基づいて、第１レベルのフラグメントのためのフラグメント解析プロセスを実行し、フラグメント解析プロセスは第１レベルのフラグメントの所定のネスティング情報に基づいて、第１レベルのフラグメントをレンダリングすることを含むことができる。ネスティング情報は現在のフラグメントが他のフラグメントを含んでいるかどうかについての情報を含む。ネストしたフラグメントキャッシング装置はウェブページの第１レベルのフラグメントの完全なコンテンツを生成するレンダリングのレンダリング結果を結合する。
【００１２】
既存の技術と比較して、本開示はいくつかの利点がある。本開示の例示的な実施形態はウェブページのネストしたフラグメントキャッシングを可能にするだけでなく、ウェブページのネストしたフラグメントキャッシングが実行されるときに再帰的に各フラグメントのＨＴＭＬコードを取得し、このようにユーザにウェブページの完全なコンテンツを表示し、既存技術の欠落を是正する。例示的な実施形態では、キャッシングシステムは分散サーバクラスタがキャッシングシステムとして機能するサーバの数を増やすために、水平展開アプローチを採用することができる分散サーバクラスタを介して実装されてもよい。サーバのいずれかがフラグメントのＨＴＭＬコードをあらかじめ格納しておくような、分散型クラスタの他のサーバにはＨＴＭＬコードを格納する必要がない場合がある。さらに、例示的な実施形態に記載の技術方式はレベルの数を制限せず、各フラグメントごとに異なるキャッシング時間を設定せずにフラグメントの再帰的なネスティングを可能にする。当然のことながら、本発明を実施する任意の製品に、同時に上記のすべての利点を実装する必要はない。
【図面の簡単な説明】
【００１３】
本開示の例示的な実施形態の技術的な構成をより明確に理解するために、例示的な実施形態を説明するために使用されている添付図面を簡潔に説明する。次の図面は本開示のいくつかの例示的な実施形態を構成するに過ぎない。これらの添付図面に基づいて、当業者は他の実施形態および図面を想起することができる。
【図１】本開示の実施形態で説明されるシステムを示す構成図である。
【図２】本開示の第１の実施形態におけるウェブページのキャッシング処理の方法を示すフローチャートである。
【図３】本開示の第２の実施形態におけるウェブページのキャッシング処理の方法を示すフローチャートである。
【図４】本開示の第２の実施形態で説明されるブロック３０４を示すフローチャートである。
【図５】本開示の第２の実施形態で説明される第１レベルのフラグメントのフラグメント名を示す概要図である。
【図６】本開示の第３の実施形態におけるウェブページのキャッシング処理の方法を示すフローチャートである。
【図７】本開示の第４の実施形態におけるウェブページのキャッシング処理の方法を示すフローチャートである。
【図８】本開示の第５の実施形態におけるウェブページのキャッシング処理の方法を示すフローチャートである。
【図９】本開示の第６の実施形態におけるウェブページのキャッシング処理の装置を示す構成図である。
【図１０】本開示の第７の実施形態におけるウェブページのキャッシング処理の装置を示す構成図である。
【図１１】本開示の第７の実施形態に記載されているネスティング情報取得サブモジュール１００４を示す構成図である。
【図１２】本開示の第８の実施形態におけるウェブページのキャッシング処理の装置を示す構成図である。
【図１３】本開示の第９の実施形態におけるウェブページのキャッシング処理の装置を示す構成図である。
【図１４】本開示の第１０の実施形態におけるウェブページのキャッシング処理の装置を示す構成図である。
【発明を実施するための形態】
【００１４】
本開示の例示的な実施形態での技術方式が、例示的な実施形態での添付の図面を用いて以下に明確かつ完全に説明される。当然のことながら、ここで説明される例示的な実施形態は本開示の例示的な実施形態の部分だけであり、すべてを構成するものではない。本開示の例示的な実施形態に基づいて、当業者は本開示の範囲内に存するすべての他の例示的な実施形態を取得することができる。
【００１５】
開示された方法、装置、およびシステムは一般的または専門的なコンピュータシステムの環境や構成で使用することができる。例としては、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルドデバイスまたはポータブルデバイス、タブレットデバイス、マルチプロセッサシステム、および上記の任意のシステムまたはデバイスを含む分散コンピューティング環境が含まれる。
【００１６】
開示された方法、装置、およびシステムはコンピュータ実行可能命令、例えばプログラムモジュールの一般的な文脈で説明することができる。一般的に、プログラムモジュールは、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造、および特定の機能を実行するか、または特定の抽象データ型を実装するように含めることができる。開示された方法およびシステムは、機能が通信ネットワークを介してリンクされたリモート処理デバイスによって実行される分散コンピューティング環境で実施することができる。分散コンピューティング環境では、プログラムモジュールはメモリ記憶装置を含むローカルおよび／またはリモートコンピュータ記憶媒体に配置することができる。
【００１７】
本開示の主なアイデアの一つは、ネスティング情報を設定し事前にウェブページの各フラグメントの情報をキャッシュすることを含むことができる。ネスティング情報は現在のフラグメントが他のフラグメントを含んでいるかどうかについての情報を含むことができる。さらに、各フラグメントに対応するネスティング情報はフラグメントが現在解析されている場合、対応するネスティング情報がウェブページテンプレートから読み込むことができるようにウェブサーバのウェブテンプレートに保存することができる。ウェブページのテンプレートに含まれている情報は、さらにフラグメント名およびフラグメントパラメータを含むことができ、各フラグメントはフラグメント名で識別することができ、フラグメントパラメータはトランザクションに応じて決定することができる。トランザクションはユーザの特定の要求を参照し、ユーザの特定の要求を満たす機能は特定の業務に対応している。キャッシング情報はフラグメントをキャッシュする必要があるかどうかについての情報、およびキャッシュする必要があるフラグメントのキャッシングの継続時間についての情報を含んでいる。キャッシング情報はコンフィギュレーションサーバに格納することができる。ウェブページがキャッシュされている場合、またはネストしたフラグメントのキャッシングがウェブページのフラグメントに対して実行されると、キャッシング情報を動的にコンフィギュレーションサーバから取得することができる。本開示では、ウェブページのリクエストを受信したときに、要求されたウェブページのためのページキャッシングが必要となるかどうかが判断される。必要な場合、直接ウェブページのコンテンツを取得するためにウェブページがレンダリングされる。必要でない場合は、ウェブページの第１レベルのフラグメント情報を取得することができる。第１レベルのフラグメント情報に基づいて、フラグメント解析プロセスが引き続いて第１レベルのフラグメントのために実行される。フラグメント解析プロセスは第１レベルのフラグメントの事前設定ネスティング情報に基づいて第１レベルのフラグメントをレンダリングすることを含むことができ、ネスティング情報は現在のフラグメントが他のフラグメントを含んでいるかどうかに関する情報が含み、ウェブページの第１レベルのフラグメントの完全なコンテンツを生成するためにフラグメント解析プロセスの結果を結合する。
【００１８】
本開示の例示的な実施形態では、ウェブページのフラグメントはフラグメントの少なくとも２つのレベルを含むことができ、各レベルは１つ以上のフラグメントを含むことができることに留意されたい。第１レベルのフラグメントは第２レベルのフラグメントと親子の関係を有することができる。しかし、すべての第１レベルのフラグメントが第２レベルのフラグメントを含む訳ではない。あるいは、第１レベルのフラグメントのうちの1つ以上が第２レベルのフラグメントを含むことができる。また、第２レベルのフラグメントは第３レベルのフラグメント等を含むことができる。本開示では、このようなネスティング関係は再帰的ネスティングと呼ばれている。さらに、様々なレベルでのフラグメントのキャッシング情報は互いに独立していてもよい。例えば、現在のレベルのフラグメントがキャッシングされるように事前に設定されてもよく、次の下位レベルのサブフラグメントがキャッシングされないように設定されてもよく、次の下位レベルのサブフラグメントのサブフラグメントがキャッシュされるように設定されてもよい等である。キャッシング情報が事前に設定され、コンフィギュレーションサーバに格納されてもよい。当然のことながら、コンフィギュレーションサーバでこの事前設定キャッシング情報は、その後の使用中にリアルタイムに更新されてもよい。
【００１９】
図１は本発明の実施形態によるシステム１００の構成図を示す。ユーザはウェブサーバ１０２からクライアント１０１を介してウェブページを要求する。クライアントはモバイルおよび非モバイルデバイスの両方を含む、処理およびメモリ機能を有する任意の数のデバイスとして実装することができる。ウェブサーバ１０２は個々のサーバ、サーバクラスタ、サーバファーム、データセンター、またはメインフレームコンピューティングシステムのような処理およびメモリ機能を含む任意の数のサーバアーキテクチャーを表す。
【００２０】
キャッシング装置１０３はウェブサーバ１０２に統合されてもよい。キャッシング装置１０３はウェブサーバ１０２に追加の機能エンティティとして、またはスタンドアロン機能エンティティとして実装することができる。キャッシング装置１０３は、例示的な実施形態で説明したウェブページのネストしたフラグメントのキャッシング中に再帰的な処理を実行することができる。キャッシングシステム１０４は各フラグメントまたはウェブページのＨＴＭＬコードを格納するために使用される。キャッシング装置１０３はキャッシングシステム１０４からのウェブページまたはフラグメントのＨＴＭＬコードを要求することができる。キャッシングシステム１０４がフラグメントまたはウェブページのＨＴＭＬコードを含まない場合、ウェブサーバ１０２のトランザクションシステム１０５がフラグメントまたはウェブページのＨＴＭＬコードを供給するための責任がある。トランザクションシステム１０５は現在特定のユーザの要求に関連付けられているトランザクションを満たすウェブサーバマシン上で複数のモジュールで構成されたシステムとして考えることができる。
【００２１】
本開示の実用的適用では、ＨＴＭＬコードがキャッシングシステムにキャッシュされないことに留意されたい。むしろ、ＨＴＭＬコードを直接クライアント１０１内にローカルに保存することができる（例えば、クライアントのデバイスメモリ内に直接キャッシュされる）。クライアント１０１とウェブサーバ１０２は、互いに直接ＨＴＭＬコードを交換してもよい。クライアントがフラグメントまたはウェブページに対応するＨＴＭＬコードをローカルに見つけることができない場合は、クライアント１０１は検索を実行するためにウェブサーバ１０２のトランザクションシステム１０５にトリガを掛けてもよい。クライアントは対応するＨＴＭＬコードをローカルに見つけた場合、クライアントはユーザが要求したウェブページに直接ＨＴＭＬコードを表示してもよい。しかし、そのようなアプローチはローカルメモリまたはコンピュータに相対的に高い性能要件を要求し、ウェブページには多くの多様性があるので、独立した分散型のクラスタサーバは、通常本開示の実施形態で説明したようにキャッシングシステムとして使用されている。
【００２２】
本開示の実施形態で説明したシステムのフレームワークはコンフィギュレーションサーバ１０６をさらに含むことができる。コンフィギュレーションサーバ１０６はキャッシング装置１０３に各フラグメントのキャッシング情報を提供することができる。しかし、開示されたシステムはコンフィギュレーションサーバ１０６なしで実装することができる。このような場合には、キャッシング情報を一度にウェブサーバ内の各フラグメントのために事前に設定してもよい。変更することができないフラグメントの固定パラメータと同様に、キャッシングシステム内の各フラグメントのキャッシング情報は動的に変更できない場合がある。
【００２３】
例示的な実施形態では、キャッシング情報をテキスト形式で実施することができる。代わりに、キャッシング情報はプログラム内のオブジェクトとして埋め込まれていてもよい。キャッシング情報がプログラム内のオブジェクトとして埋め込まれている場合、キャッシング情報は対応する現在のフラグメントが他のネストしたフラグメントを含んでいるかどうか、または特定のネスティングが無限ループを含んでいるかどうかを判断するためにＴＨＲＥＡＤ＿ＬＯＣＡＬから取得することができる。ＴＨＲＥＡＤ＿ＬＯＣＡＬはウェブサーバのスレッドレベルの変数であり、与えられた要求プロセスのキャッシング装置にコンフィギュレーションサーバからキャッシング情報を提供してもよい。
【００２４】
ウェブページキャッシングを処理する本開示の方法は、既存の技術で実装されているページ全体のキャッシュを実装することができるだけでなく、既存の技術では達成できないウェブページのネストしたフラグメントキャッシングを実装することができ、このように既存の技術の欠点を是正する。
【００２５】
第１の例示的実施形態
図２は列挙されたブロックとして次の操作を含むことができる、ウェブページキャッシングを処理する第１の例示的方法を示すフローチャートを表す。
【００２６】
２０１で、ウェブページの第１レベルのフラグメント情報はウェブページのリクエストを受信したことに応答して取得される。本実施形態では、ウェブページが決定されると、ウェブページに関連付けられた第１レベルのフラグメント情報も決定することができる。同じウェブページのフラグメントの形式（どのフラグメントがウェブページから分割されているか、これらのフラグメントの位置および名前などを含む情報として）は同じであるからである。ウェブページ内の各フラグメントは本質的にはプレースホルダであり、このプレースホルダは他のウェブページで使用することができる。フラグメントの最終的なレンダリング結果が得られた場合にのみ関連したプレースホルダは、フラグメントの特定のコンテンツに置換される。一般に、フラグメントの具体的な内容はフラグメントに対応するＨＴＭＬ（ハイパーテキストマークアップ言語）コードを指す。
【００２７】
本例示的実施形態では、ウェブページ内のフラグメントはネストした形でキャッシュされてもよい。第１レベルのフラグメントＡが第２レベルのフラグメントＢを含み、第２レベルのフラグメントＢが第３レベルのフラグメントＣを含む場合、ネストしたキャッシングはフラグメントＡ、Ｂ、およびＣの所定のキャッシング情報に基づいて、第２レベルのフラグメントＢをキャッシュせずに第１レベルのフラグメントＡおよび第３レベルのフラグメントＣをキャッシュする機能として理解することができる。しかし、第１レベルのフラグメントが他のフラグメントを含んでいるかどうかに関係なく、このブロックで取得されるのは第１レベルのフラグメント情報である。第１レベルのフラグメントのネスティング情報はその後これらの第１レベルのフラグメントが解析されたときに、順次取得することができる。
【００２８】
２０２で、フラグメント解析プロセスは引き続きウェブページの第１レベルのフラグメント情報に基づいて、第１レベルのフラグメントのために実行される。フラグメント解析プロセスは第１レベルのフラグメントのネスティング情報に基づいて、第１レベルのフラグメントをレンダリングすることを含むことができ、ネスティング情報は現在のフラグメントが他のフラグメントを含んでいるかどうかについての情報を含む。
【００２９】
ウェブページの第１レベルのフラグメント情報を取得するにあたり、フラグメントの解析プロセス中にコンフィギュレーションサーバからそれぞれの第１レベルのフラグメントのネスティング情報を動的に取得することができるように、解析プロセスは第１レベルのフラグメントのために実行される。ネスティング情報は現在の第１レベルのフラグメントが第２レベルのフラグメントを含んでいるかどうかについての情報、および含まれる第２レベルのフラグメントの情報を含むことができる。すべての第１レベルのフラグメントはこのブロックで解析される。それぞれの第１レベルのフラグメントのフラグメント解析プロセスは、同時にまたは連続して実行することができる。しかしながら、このフラグメント解析プロセスが行われる順序は本開示の例示的な実施形態の実装には影響を与えない。
【００３０】
このブロックで説明されるレンダリングプロセスは、第１レベルのフラグメントの各フラグメント名およびそれぞれのフラグメントパラメータに基づいて第１レベルのフラグメントの特定の内容に対応したＨＴＭＬコードを検索する。レンダリングプロセスは既存の技術のレンダリングプロセスと同様であり、したがって本明細書ではさらなる詳細を説明しない。
【００３１】
２０３で、レンダリングのレンダリング結果を結合して、はウェブページの第１レベルのフラグメントの完全なコンテンツを生成する。この動作の一例として、第１レベルのフラグメントが他のフラグメントを含んでいない場合、関連したレンダリング結果は第１レベルのフラグメントのＨＴＭＬコードを含む。第１レベルのフラグメントが第２レベルのフラグメントを含む、または第２レベルのフラグメントが第３レベルのフラグメントをさらに含む、または、再帰的方法で、例えばＮ−１のレベルのフラグメントがＮレベルのフラグメントを含む場合、第１レベルのフラグメントのレンダリング結果は第２レベルからＮレベルまでフラグメントのＨＴＭＬコードを含んでいてもよい。したがって、第１レベルのフラグメントのレンダリングされたコンテンツを結合して、ウェブページの第１レベルのフラグメントのコンテンツを生成することができる。
【００３２】
第２の例示的実施形態
図３はブロックとして示される次の方法の操作を含む、ウェブページキャッシング処理の第２の実施方法を説明するフローチャートを示す。
【００３３】
３０１で、ウェブページのＵＲＬはウェブページのリクエストを受信したことに応答して取得される。この動作の一例として、ウェブページのＵＲＬ（ユニフォーム／ユニバーサルリソースロケータ）は最初のウェブページへのリクエストを受信した場合に取得される。特定のネットワーク取引プラットフォームの「製品の詳細」ウェブページを例として使用してもよい。例えば、この「製品の詳細」ウェブページのＵＲＬアドレスがｘｘｘ．ｘｘｘ．ｃｏｍ／ｄｅｔａｉｌ．ｈｔｍｌ？ｉｄ＝１２３と仮定する。
【００３４】
３０２では、ウェブページのテンプレートがウェブページのＵＲＬに基づいて見つけられる。各ウェブページが固有のＵＲＬおよびテンプレートを有しているように、ウェブページで使用されているテンプレートはウェブページのＵＲＬに基づいて決定することができる。「製品の詳細」ウェブページのテンプレート情報が「ｄｅｔａｉｌ．ｖｍ」であれば、テンプレート情報はこのブロックでの「製品の詳細」ウェブアドレスに基づいて「ｄｅｔａｉｌ．ｖｍ」と決定することができる。
【００３５】
各ウェブページで使用されるテンプレートは互いに独立していてもよい、あるいは複数のウェブページ間で共有されてもよいことに留意すべきである。テンプレートを使用するとき、ウェブページはテンプレートに規定されたフラグメント部分を事前設定する必要がある。
【００３６】
３０３で、プロセスはウェブページのテンプレートから第１レベルのフラグメントに対応するフラグメント名およびフラグメントパラメータを取得する。ウェブページのテンプレートが決定された後、テンプレートに対応するウェブページのフラグメント形式はそれに応じて決定することができる。既存の技術とは異なり、ウェブページが第１レベルのフラグメントを含むのみではなく、第１レベルのフラグメントは再帰的にフラグメントの少なくとも１つのレベルを含んでいてもよい。しかし、このブロックでは、ウェブページから取得されたフラグメントは第１レベルのフラグメントに対応するフラグメント名およびフラグメントパラメータのみを含んでいてもよい。フラグメントパラメータはトランザクションに応じて決定してもよい。トランザクションはユーザの特定の要求を参照し、ユーザの特定の要求を満たす機能は特定の業務に対応している。例えば、「店主情報」については、対応するフラグメントのパラメータは販売ユーザＩＤであってもよい。「製品の詳細」ウェブページを例として使用している場合は、対応するフラグメントのパラメータは製品情報および販売ユーザＩＤであってもよい。
【００３７】
次のアプローチはテンプレートにフラグメントを導入するために使用されてもよく、例えば、フラグメント名が「店主情報」であり、テンプレート名が「製品の詳細」である場合、「製品の詳細」の「店主情報」の参照フラグメントのためのコードは以下のようであってもよい：
ｃｏｎｔｒｏｌ．ｓｅｔ（“ｕｓｅｒＩｎｆｏ”）．ａｄｄＰｒａｍｓ（“ｕｓｅｒＩｄ”，１２３４）
【００３８】
「ａｄｄＰｒａｍｓ」内のコンテンツは「店主情報」フラグメント、およびＵＳＥＲＩＤ「１２３４」であるユーザのＩＤに対応するフラグメントのパラメータである。コード部分「ｃｏｎｔｒｏｌ．ｓｅｔ（“ｕｓｅｒｉｎｆｏ”）」はこのフラグメントが「製品詳細」テンプレートで参照されていることを示す。当然のことながら、このコードの実装はあくまで一例であり、本開示の制限として解釈されるべきではない。
【００３９】
３０４で、プロセスは第１レベルのフラグメントのフラグメント名およびフラグメントパラメータに基づいて、第１レベルのフラグメントのネスティング情報を取得し、さらに第１レベルのフラグメントのネスティング情報に基づいて、第１レベルのフラグメントのそれぞれのＨＴＭＬコードを取得する。ネスティング情報は現在のフラグメントが他のフラグメントを含んでいるかどうかについての情報を含む。
【００４０】
３０４で、第１レベルのフラグメントのフラグメント名およびフラグメントパラメータが取得されたときに、第１レベルのフラグメントのネスティング情報およびＨＴＭＬコードが取得されてもよい。具体的には、１つの実装では、ネスティング情報はウェブサーバのキャッシング装置１０３にネスティング情報を送ることができる、コンフィギュレーションサーバ１０６から取得することができる。フラグメントのＨＴＭＬコードは、イメージまたはウェブページに表示されるテキストなどの情報を含むことができる。このフラグメントおよびそれに対応するＨＴＭＬコードは他のウェブページのテンプレートで使用されてもよい。例えば、販売ユーザのウェブページの「製品の詳細」内の「店主情報」フラグメントおよびネットワーク取引プラットフォームの「ショップのウェブページ」の「店主情報」フラグメントは同じフラグメントに属していてもよい。
【００４１】
図４は、図３で操作ブロック３０４の一部として一般的に指摘したように、第１レベルのフラグメントのすべてのＨＴＭＬコードが取得されるときに、第１レベルのフラグメントのＨＴＭＬコードを取得する１つの例示的なプロセスを示す。プロセスは次の操作を含んでいてもよい。
【００４２】
４０１で、プロセスはコンフィギュレーションサーバ１０６からの第１レベルのフラグメントのキャッシング情報を検索する。キャッシング情報はフラグメントがキャッシュする必要があるかどうかについての情報およびキャッシュする必要があるフラグメントのキャッシング継続時間を含む。
【００４３】
コンフィギュレーションサーバはウェブページの各レベルのフラグメントのキャッシング情報のレコードを保持する。キャッシング情報はフラグメントがキャッシュする必要があるかどうかについての情報およびキャッシュする必要があるフラグメントのキャッシングの継続時間を含む。キャッシングの継続時間はキャッシングシステムにおける現在のフラグメントの有効時間を示すために使用される。現在のフラグメントは対応するキャッシュの継続時間よりも長い時間キャッシングシステムにキャッシュされている場合、フラグメントの有効期限が切れており、キャッシングシステムはもはやフラグメントに固有のコンテンツが含まれなくなる。このキャッシング情報を事前に設定してもよい。当然のことながら、特定のフラグメントのキャッシング情報をその後変更する必要がある場合、コンフィギュレーションサーバに格納されている情報を直接変更することによって達成してもよい。このように、コンフィギュレーションサーバで見つけられたキャッシング情報は最新のものである。キャッシング情報は、現在のフラグメントをキャッシュする必要があることを表す「１」と現在のフラグメントをキャッシュする必要がないことを表す「０」とを有するように実装できる。キャッシング継続時間情報の実装については、キャッシング期間の情報とフラグメント名またはフラグメントパラメータなどの情報との関係を直接構築することができる。当然のことながら、実用的な適用では、キャッシング情報を実装するために多くの方法があり、本発明の例示的な実施形態は何ら制限を有していない。
【００４４】
キャッシングの有効期限がキャッシングシステムによって制御されているので、キャッシング装置は例示的な実施形態で説明したプロセスを実行する際に、現在のウェブページまたはフラグメントの有効期限がいつ切れるか分からないことに留意すべきである。キャッシングシステムを検索したときに、キャッシング装置が現在のウェブページまたはフラグメントを検出しない場合、現在のフラグメントのコンテンツがすでに期限切れになったことを示しているかもしれない。
【００４５】
４０２で、プロセスは第１レベルのフラグメントが第１レベルのフラグメントのキャッシング情報に基づいてキャッシュする必要があるかどうかを判断する。肯定の場合、プロセスはブロック４０３に継続する。そうでない場合、プロセスはブロック４０４に継続する。
【００４６】
４０１で説明した例によると、フラグメントをキャッシュする必要があるかどうかを表す取得された情報が「１」である場合、そのフラグメントはキャッシュされるに設定されている。
【００４７】
４０３で、プロセスは第１レベルのフラグメントのフラグメントＩＤを取得するために第１レベルのフラグメントのフラグメント名およびフラグメントパラメータにハッシュ計算を適用し、フラグメントＩＤに基づいて、キャッシングシステムからフラグメントＩＤに対応する第１レベルのフラグメントのＨＴＭＬコードを検索する。プロセスはブロック４０５に継続する。
【００４８】
図５は一例による第１レベルのフラグメントの代表的なフラグメント名を示す。ウェブページの第１レベルのフラグメントは、「説明」フラグメントＡ、「ナビゲーション」フラグメントＢ、「店主情報」フラグメントＣ、および「店舗区分」フラグメントＤを含むことができる。「店主情報」フラグメントＣは第２レベルの「店主信頼性」フラグメントＣ１をさらに含むことができる。
【００４９】
図４のブロック４０３に戻り、ハッシュ計算は第１レベルのフラグメントのフラグメント名およびフラグメントパラメータで実行することができる。対応する計算結果は一般的に長さが３２桁である第１レベルのフラグメントのフラグメントＩＤとして機能する。この３２桁のフラグメントＩＤに基づいて、フラグメントＩＤに対応するＨＴＭＬコードはキャッシングシステムから検索して取得することができる。キャッシングシステムはＨＴＭＬコードだけでなく、各フラグメントＩＤおよび対応関係のＨＴＭＬコードとの対応関係を格納する。
【００５０】
第１レベルのフラグメントをレンダリングするプロセスはウェブページ内の第１レベルのフラグメントの場所のプレースホルダを生成すること、対応するＨＴＭＬコードを取得すること、ＨＴＭＬコードを取得するのに応じて、ＨＴＭＬコードによって第１レベルのフラグメントのプレースホルダを置換することを含むことができることに留意すべきである。レンダリングはフラグメントに対して実行されると、ウェブページ内のそのレベルに関係なく、上記のプロセスがレンダリングを実行するために使用することができる。プレースホルダはコンテンツがその後の動作中に追加されるかもしれないフラグメントのための場所として理解することができる。
【００５１】
４０４では、ウェブサーバ１０２のトランザクションシステム１０５は第１レベルのフラグメントのフラグメントＩＤに対応したＨＴＭＬコードを見つける。プロセスはブロック４０５に継続する。現在のフラグメントがキャッシュされないように表示されている場合は、ウェブサーバのトランザクションシステム１０５は現在のフラグメントのレンダリングを実行することができ、レンダリング結果はその現在のフラグメントのＨＴＭＬコードである。具体的には、トランザクションシステムのレンダリングモジュールはデータベース、または検索エンジン、またはドキュメントシステムからフラグメントＩＤに対応したＨＴＭＬコードを見つける。
【００５２】
４０５で、第１レベルのフラグメントが第１レベルのフラグメントの事前設定ネスティング情報に基づいて第２レベルのフラグメントを含んでいるかどうかが判断される。肯定の場合、プロセスはブロック４０６に継続する。そうでない場合は、第１レベルのフラグメントのためのレンダリングプロセスが終了する。ブロック４０５での動作は必要に応じて現在解析されている第１レベルのフラグメントがネスティング情報に基づいて第２レベルのフラグメントを含んでいるかどうかを判断することができる。
【００５３】
４０６で、プロセスは第２レベルのフラグメントのための再帰的なレンダリングを実行する。再帰的なレンダリングは、処理されるフラグメントのレベルを越えるフラグメントに、処理されるフラグメント用のプレースホルダを生成すること、処理されるフラグメントのフラグメント名およびフラグメントパラメータに基づいて処理されるフラグメントのＨＴＭＬコードを取得すること、処理されるフラグメントのＨＴＭＬコードにより処理されるフラグメントのプレースホルダを置換することを含むことができる。プロセスはブロック４０７に継続する。
【００５４】
第１レベルのフラグメントが第２レベルのフラグメントを含む場合、このブロックは再帰的に第２レベルのフラグメントのためのレンダリングを実行する。具体的には、第２レベルのフラグメントのプレースホルダは、まず第１レベルのフラグメントで生成される。第２レベルのフラグメントのフラグメント名およびフラグメントパラメータに基づいて、第２レベルのフラグメントのＨＴＭＬコードは上記と同様の手法を用いて取得することができる。具体的には、同様のアプローチは第２レベルのフラグメントの３２桁のＩＤを取得するために第２レベルのフラグメントのフラグメント名およびフラグメントパラメータのハッシュ計算を実行することを含むことができる。第２レベルのフラグメントをキャッシュする必要がある場合、対応するＨＴＭＬコードはＩＤに基づいてキャッシングシステムから取得することができる。対応するＨＴＭＬコードがキャッシングシステムで見つからない場合、または第２レベルのフラグメントをキャッシュする必要がない場合は、対応するＨＴＭＬコードに関連付けられているトランザクション機能に応じて、データベースやインターネットから取得することができる。ＨＴＭＬコードを見つけると、第２レベルのフラグメントのプレースホルダは第２レベルのフラグメントのＨＴＭＬコードにより置換することができる。
【００５５】
４０７で、プロセスは第２レベルのフラグメントが第３レベルのフラグメントを含んでいるかどうかを判断することを継続する。肯定の場合、プロセスはブロック４０８に継続する。そうでない場合は、第２レベルのフラグメントのためのレンダリングプロセスが終了する。より具体的には、第２レベルのフラグメントのＨＴＭＬコードを見つける際に、第２レベルのフラグメントが第３レベルのフラグメントを含んでいるかどうかが判断される。第２レベルのフラグメントが第３層のフラグメントを含んでいない場合、第２レベルのフラグメントのためのレンダリングプロセスが完了し終了する。
【００５６】
具体的には、第２レベルのフラグメントが第３レベルのフラグメントを含む場合、第２レベルのフラグメントの内容が最初にレンダリングされる。さらに、第３レベルのフラグメントのプレースホルダは第２レベルのフラグメント内で第３レベルのフラグメントに対応する位置に生成される。その後、第３レベルのフラグメントがレンダリングされる。第３レベルのフラグメントのレンダリングされたコンテンツは、第２レベルのフラグメント内のプレースホルダに充填される。その結果は第２レベルのフラグメントのＨＴＭＬコードである。例として上記の店主情報を使用する。「店主情報」フラグメントの情報は「信頼性」フラグメントを含む。再帰的なレンダリングプロセスの間に、「店主情報」フラグメントが最初にレンダリングされる。プレースホルダは「店主情報」フラグメントにおける「信頼性」フラグメントの位置で生成される。その後、「信頼性」フラグメントがレンダリングされ、「信頼性」フラグメントのレンダリングされたコンテンツは、「店主情報」フラグメント内のプレースホルダに充填される。最後に「店主情報」フラグメントのレンダリング結果が返される。
【００５７】
４０８で、Ｎが３より大きい整数である、Ｎレベルのフラグメントが他のフラグメントを含まないとの判断が得られるまで、プロセスは第３レベルのフラグメントのためのレンダリングを再帰的に実行する。このブロックで、Ｎが３より大きい整数である、Ｎレベルのフラグメントが他のフラグメントを含まないとの判断が得られるまで、第１レベルのフラグメントおよび第２レベルのフラグメントのためレンダリングが再帰的に実行される。
【００５８】
図３のブロック３０５に戻ると、図３のプロセスはウェブページの第１レベルのフラグメントの完全なコンテンツを生成するすべての第１レベルのフラグメントの取得したＨＴＭＬコードを結合する。
【００５９】
このブロックでは、第１レベルのフラグメントのレンダリング結果が結合される。レンダリング結果は第１レベルのフラグメントのＨＴＭＬを参照する。第１レベルのフラグメントがフラグメントの少なくとも１つのレベルを再帰的に含む場合は、第１レベルのフラグメントのレンダリング結果はフラグメントの少なくとも１つのレベルのＨＴＭＬコードを含む。このブロックはウェブページの第１レベルのフラグメントの完全なコンテンツを形成するためにすべてのフラグメントのＨＴＭＬコードを結合する。
【００６０】
３０６で、プロセスはユーザにクライアントのウェブページ上に第１レベルのフラグメントの完全な内容を表示する。第１レベルのフラグメントの生成された完全なコンテンツがユーザのために、クライアントのウェブページ上に表示される。表示された結果はユーザが見ているウェブページのコンテンツである。
【００６１】
この例示的な実施形態はウェブページのネストしたフラグメントキャッシングを可能とするだけではなく、ウェブページのネストしたフラグメントキャッシングが実行されるときに各フラグメントのＨＴＭＬコードを再帰的に取得し、このようにユーザにウェブページの完全なコンテンツを表示し既存の技術の欠落を是正する。
【００６２】
第３の例示的実施形態
図６はウェブページのキャッシング処理の第３の例示的方法を示すフローチャートを表す。この例示的実施形態はウェブページのキャッシング処理の方法の適用例として理解することができ、図６中のブロックとして示される次の操作方法を含むことができる。
【００６３】
６０１で、プロセスはウェブページのリクエストを受信したことに応答してウェブページの第１レベルのフラグメント情報を取得する。
【００６４】
６０２で、プロセスはコンフィギュレーションサーバ１０６内の第１レベルのフラグメントのキャッシング情報を検索する。キャッシング情報はフラグメントがキャッシュする必要があるかどうかについての情報、およびキャッシュする必要のあるフラグメントのキャッシング継続時間を含む。
【００６５】
６０３で、第１レベルのフラグメントが第１レベルのフラグメントのキャッシング情報に基づいて、キャッシュする必要があるかどうかが判断される。肯定の場合、プロセスはブロック６０４に継続する。そうでない場合、プロセスはブロック６０５に継続する。
【００６６】
６０４で、プロセスは第１レベルのフラグメントのフラグメントＩＤを取得するために、第１レベルのフラグメントのフラグメント名およびフラグメントパラメータのハッシュ計算を実行し、フラグメントＩＤに基づいて、フラグメントＩＤに対応する第１レベルのフラグメントのＨＴＭＬコードをキャッシングシステム１０４から検索する。この操作の一環として、第１レベルのフラグメントがキャッシュされている必要があるが、第１レベルのフラグメントに対応するＨＴＭＬコードがキャッシングシステム１０４内で見つからない場合がある。例えば、ＨＴＭＬコードが第１レベルのフラグメントのためのキャッシング時間に達したとき、または第１レベルのフラグメントのコンテンツの有効期限が切れているときのような状況では見つからない場合がある。各レベルのフラグメントのキャッシング時間を事前に設定することができ、コンフィギュレーションサーバ１０６に格納することができる。ＨＴＭＬコードが見つかった場合、プロセスはブロック６０６に継続する。ＨＴＭＬコードが見つからない場合、プロセスはブロック６０５に継続する。
【００６７】
６０５で、ウェブサーバ１０２のトランザクションシステム１０５はフラグメントＩＤに対応するＨＴＭＬコードを見つけることに責任を負うことになる。
【００６８】
６０６で、第１レベルのフラグメントがキャッシュされる必要があるが、そのフラグメントのＨＴＭＬコードがキャッシングシステム１０４内に存在しないときに、見つけられたＨＴＭＬコードおよびフラグメントＩＤとの対応関係がキャッシングシステムにキャッシュされる。キャッシュする必要がある第１レベルのフラグメントのＨＴＭＬコードがキャッシングシステムに格納されていないので、ブロック６０５が実行された後に見つけられたＨＴＭＬコードはキャッシングシステムに保存することができる。第１レベルのフラグメントをキャッシュする必要がない場合は、第１レベルのフラグメントの見つけられたＨＴＭＬコードはキャッシングシステムに保存する必要はないかもしれない。
【００６９】
ブロック６０６はブロック６０５の後に続くが、ブロック６０６はキャッシュする必要がある第１レベルのフラグメントのＨＴＭＬコードがキャッシングシステムに格納されていない場合に必要に応じて実行されることに留意されたい。したがって、ブロック６０６はこの例示的実施形態に不可欠のブロックでない場合がある。
【００７０】
６０７で、所定のネスティング情報に基づいて第１レベルのフラグメントが、第２レベルのフラグメントを含むかどうかが判断される。肯定の場合は、再帰的なレンダリングが第２レベルのフラグメントのために実行される。再帰的なレンダリングは処理されるフラグメントのために、処理されるフラグメントを超えるレベルにあるフラグメントのプレースホルダを生成すること、処理されるフラグメントのフラグメント名およびフラグメントパラメータに基づいて処理されるフラグメントのＨＴＭＬコードを取得すること、および処理されるフラグメントのＨＴＭＬコードにより処理されるフラグメントのプレースホルダを置換することを含むことができる。
【００７１】
６０８で、プロセスは第２レベルのフラグメントが第３レベルのフラグメントを含んでいるかどうかを判断することを継続する。肯定の場合は、Ｎが３より大きい整数である、Ｎレベルのフラグメントが他のフラグメントを含んでいないと判断されるまで、再帰的なレンダリングが第３レベルのフラグメントのために実行される。それ以外の場合は、レンダリングプロセスが終了する。
【００７２】
この例示的実施形態のブロック６０７および６０８は、すでに前述の例示的実施形態に詳細に説明されている。この例示的実施形態の実装は前述の例示的な実施形態の実装に相当するため、ブロック６０７および６０８のさらなる詳細については説明しない。
【００７３】
６０９で、特定のフラグメントのコンテンツが変化するときに、そのフラグメントのフラグメントＩＤはそのフラグメントのフラグメント名およびフラグメントパラメータのハッシュ計算を実行することにより取得することができる。
【００７４】
６１０で、プロセスがフラグメントＩＤに基づいてキャッシングシステムからフラグメントＩＤに対応したＨＴＭＬコードを見つけて削除する。
【００７５】
この例示的実施形態では、ブロック６０９および６１０は自発的にキャッシングシステムに格納されているフラグメントのＨＴＭＬコードを無効にするための機能として実装されてもよい。自発的に無効にするとは次のように解釈されてもよい：特定のフラグメントのキャッシング時間がまだ満了していないが、フラグメントの対応するＨＴＭＬコードがブロック６０９および６１０を介してキャッシングシステムから削除されてもよい。
【００７６】
実用的な適用の特定の適用シナリオでは、フラグメントのＨＴＭＬコードは所定のキャッシング時間の前に無効にする必要があるかもしれない。例として「店主情報」フラグメントを使用する。「店主情報」フラグメントのキャッシング時間が１日であり、「店主情報」がその日の終わりの前に変更されてもよい。この状況では、キャッシングシステムに格納されているフラグメントのＨＴＭＬコードを変更することができ、以前にキャッシュされた内容を削除することができる。
【００７７】
ブロック６０９および６１０から、フラグメントのＨＴＭＬコードを無効にするときに、キャッシングシステムからのフラグメントＩＤに対応するＨＴＭＬコードを削除するためのフラグメントＩＤとして機能することができる３２桁の結果を得るために、ハッシュ計算はフラグメント名およびフラグメントパラメータを使用して実行することができることに留意されたい。
【００７８】
６１１で、プロセスはキャッシングシステム内のＨＴＭＬコード以外のレスポンスヘッダの値をキャッシュする。
【００７９】
本開示のこの例示的実施形態では、ヘッダがキャッシュされ、特定のフラグメントのＨＴＭＬコードがキャッシングシステムに追加されたときに、特定のトランザクションはＨＴＭＬコードに加えてレスポンスヘッダに含まれる情報をキャッシュすることを要求する場合がある。レスポンスヘッダの値をキャッシュせずにＨＴＭＬコードをキャッシュすることにより、トランザクションの正常な操作を妨害することがある。例えば、「製品の詳細」ウェブページにアクセスするときに、対応する言語のバージョン情報が存在する場合がある。この言語のバージョン情報が「＿ｌａｎｇ＝ｇｂｋ」の形式で応答ヘッダに保存されることがある。「製品の詳細」ウェブページがクライアントに対応する結果を返した場合「＿ｌａｎｇ＝ｇｂｋ」が返される。このように、特定のフラグメントのＨＴＭＬコードは別のウェブページで同じであることが保証されてもよい。
【００８０】
このブロックが実装されるとき、現在トランザクションシステムによって使用され、キャッシュされる必要があるレスポンスヘッダの値は事前に構成されてもよい。構成情報およびフラグメントの関連情報はキャッシングシステムで一緒に保存することができる。キャッシングに際し、ユーザが要求したウェブページのフラグメントがキャッシングシステム内で対応するレスポンスヘッダの値を有している場合、ＨＴＭＬコードが返されるときに対応するレスポンスヘッダの値がさらに返されることがある。
【００８１】
この例示的実施形態では、キャッシングシステムは分散サーバクラスタがキャッシングシステムとしてのサーバの数を増やすために水平展開アプローチを採用することができる分散サーバクラスタを介して実装されてもよい。サーバのいずれかがフラグメントのＨＴＭＬコードをあらかじめ格納しておくような場合、分散型クラスタの他のサーバにはＨＴＭＬコードを格納する必要がないかもしれない。さらに、例示的な実施形態に記載の技術方式はレベルの数を制限せずにフラグメントの再帰的なネスティングを可能にすることができ、各フラグメントごとに異なるキャッシング時間を設定することができる。さらに、ヘッダのためのキャッシングが必要な場合は、フラグメントのＨＴＭＬコードがキャッシュされるときに、特定のフラグメントのレスポンスヘッダで必要な値がキャッシュされてもよい。
【００８２】
第４の例示的実施形態
図７はウェブページのキャッシング処理の第４の例示的な方法を示すフローチャートを表す。この例示的実施形態はウェブページのキャッシング処理の方法の適用例として理解することができ、図７中のブロックとして示される次の操作方法を含むことができる。
７０１で、ウェブページに対するリクエストが受信される。
【００８３】
７０２で、要求されたウェブページのページキャッシングを実行するかどうかが判断される。はいの場合、プロセスはブロック７０３に継続する。そうでない場合、プロセスはブロック７０４に継続する。より具体的に、この例示的実施形態ではウェブページのキャッシングを取り扱うためのプロセスについて説明する。前述の３つの例示的な実施形態に記載の技術方式は、ウェブページをキャッシュする必要がないシナリオについて説明するが、ウェブページの特定のフラグメントをキャッシュする必要がある。この例示的な実施形態はウェブページがページ全体のキャッシングをされる必要があるかどうかを判断する。ユーザによって要求されたウェブページをキャッシュする必要がある場合は、ウェブページをその後の処理で直接レンダリングすることができる。ユーザの要求したウェブページをキャッシュする必要がない場合は、レンダリングプロセスはウェブページの様々なフラグメントに対して実行することができる。
【００８４】
７０３で、プロセスはウェブページのコンテンツを取得するためにウェブページのレンダリングを直接実行する。ウェブページのＨＴＭＬコードをウェブページ全体をレンダリングすることにより直接取得することができる。実用的な適用では、３２桁のウェブＩＤがウェブページ名およびウェブページパラメータのハッシュ計算を実行することにより取得することができる。このウェブＩＤに基づいて、ウェブページの対応するＨＴＭＬコードはキャッシングシステムから見つけることができる。ＨＴＭＬコードを見つけることができない場合は、対応するＨＴＭＬコードをデータベースやインターネットから検索することができる。ウェブページの具体的なコンテンツは返された検索結果に基づいて取得することができる。ウェブページのパラメータはウェブサーバがユーザによって要求されたウェブページに基づいて、キャッシング装置に送信するパラメータを参照することができる。例えば、ユーザがウェブページを検索したときに、ウェブページのＵＲＬはパラメータであることの違いのみを有しているのと同じである。例えば：
ｗｗｗ．ｘｘｘ．ｃｏｍ／ａａａ．ｈｔｍ  ？ｕｓｅｒ＝［ｘ］＆ｕｓｅｒＮａｍｅ＝［ｘ］。
【００８５】
７０４で、プロセスはウェブページのウェブページ解析を実行する。ウェブページ解析はウェブページの第１レベルのフラグメント情報を取得すること、引き続き第１レベルのフラグメント情報に基づいて第１レベルのフラグメントのためのフラグメント解析を実行することを含むことができる。このフラグメント解析プロセスは第１レベルのフラグメントの事前設定ネスティング情報に基づいて第１レベルのフラグメントをレンダリングすることを含む。ネスティング情報は現在のフラグメントが他のフラグメントを含んでいるかどうかについての情報を含む。ウェブページ解析はウェブページの第１レベルのフラグメントの完全なコンテンツを生成するためにレンダリングのレンダリング結果を結合することを含む。
【００８６】
このブロックはウェブページがキャッシュされる必要のないシナリオに関係するが、いくつかのフラグメントをキャッシュする必要があるかもしれない。このシナリオの下での実装のプロセスは前述の３つの例示的な実施形態で詳細に説明されているので、本明細書では実装プロセスを繰り返し説明しない。
【００８７】
この例示的な実施形態はウェブページのキャッシングをすること、ウェブページはキャッシュする必要があるがフラグメントはキャッシュする必要がない状況か、あるいはウェブページはキャッシュする必要はないがいくつかのフラグメントはネストしたキャッシングを受ける必要がある状況のいずれかに対応するレンダリング処理を実装することを実行することができる。
【００８８】
第５の例示的実施形態
図８はウェブページキャッシングの処理の第５の例示的方法を示すフローチャートを表す。この例示的実施形態はウェブページのキャッシング処理の方法の適用例として理解することができ、図８中のブロックとして示される次の操作方法を含むことができる。
８０１で、ウェブページに対するリクエストが受信される。
【００８９】
８０２で、プロセスはウェブページのＵＲＬを取得し、ウェブページのＵＲＬに基づいて所定のキャッシング情報を見つけることができる。キャッシング情報にはウェブページがページ全体のキャッシングを受ける必要があるかどうかについての情報を含むことができる。ページ全体のキャッシングが必要な場合は、プロセスはブロック８０３に継続する。ページ全体のキャッシングが必要とされない場合、プロセスはブロック８０５に継続する。
【００９０】
この例示的実施形態では、コンフィギュレーションサーバ１０６はウェブページのキャッシング情報を格納することができる。さらに、コンフィギュレーションサーバ１０６は格納されたキャッシング情報を更新し、キャッシング装置１０３に更新したキャッシング情報を送信することができる。キャッシング装置が自発的にコンフィギュレーションサーバから対応するキャッシング情報を入手することができる。キャッシング情報はウェブページがページ全体のキャッシングを受ける必要があるかどうかについての情報を含む。
【００９１】
８０３で、プロセスはウェブページのＵＲＬおよびウェブページのパラメータから３２桁のウェブページＩＤを生成する。１つの実装では、このブロックは３２桁のウェブページＩＤを生成するためにウェブページのＵＲＬおよびウェブページパラメータのハッシュ計算を実行する。プロセスはブロック８０４に継続する。
【００９２】
８０４で、プロセスはキャッシングシステムからウェブページのＩＤに基づいて対応するウェブページのＨＴＭＬコードを検索する。ブロック８０３で取得された３２桁のウェブページＩＤはキャッシングシステムから対応するウェブページのＨＴＭＬコードを検索するためのキーワードとして使用することができる。１つの実装では、ウェブサーバ１０２のトランザクションシステム１０５は、ウェブページＩＤに対応したＨＴＭＬコードを見つけるための責任を負うことになる。
【００９３】
８０５で、プロセスはキャッシングシステムに見つけられたＨＴＭＬコードおよびウェブページＩＤとの対応関係をキャッシュする。このブロックでは、キャッシュする必要のあるウェブページがキャッシングシステムで見つけることができない場合、ＨＴＭＬコードと同様に、ＨＴＭＬコードと見つけられたウェブページＩＤとの対応関係はブロック８０５の後でキャッシングシステムに格納される。
【００９４】
ウェブページのキャッシング中に、ウェブページをキャッシュする必要があり、ウェブページのキャッシング時間が満了していなく、ウェブページのＨＴＭＬコードが更新されている場合、ウェブページは自発的に無効とされている可能性があることに留意されたい。自発的に無効とする、および対応する実装の意味は、前述した実施形態に説明されており、したがって繰り返し本明細書では説明しない。
【００９５】
説明の便宜上、上記の種々の実施形態は一連の動作として表されている。当業者であれば本開示は上記の動作の順序によって解釈されないことを理解すべきである。本開示に基づいて、特定のブロックは異なる順序で、または並列に実行することができる。また、当業者であれば本明細書に記載の例示的な実施形態は好ましい実施形態であることを理解すべきである。そこに関わる動作およびモジュールは本開示のために必要不可欠ではない。
【００９６】
第６の例示的実施形態
ウェブページキャッシングの第１の例示的な方法に対応するものとして、本開示は図９に示すように第６の実施形態によるウェブページキャッシング処理の装置をさらに提供する。装置はハードウェアおよび／またはソフトウェアで実装することができる１つ以上の機能コンポーネントを含むことができる。装置はウェブページのリクエストを受信したことに応答してウェブページの第１レベルのフラグメント情報を取得する取得モジュール９０１を含む。
【００９７】
フラグメント解析モジュール９０２はまた、取得モジュール９０１と連通して提供され、取得モジュール９０１によって取得された第１レベルのフラグメント情報に基づいて、第１レベルのフラグメントのためのフラグメント解析プロセスを実行するように構成される。モジュール９０２によって実行されるフラグメント解析プロセスは、第１レベルのフラグメントの所定のネスティング情報に基づいて第１レベルのフラグメントをレンダリングすることを含み、ネスティング情報は現在のフラグメントが他のフラグメントを含んでいるかどうかについての情報を含む。
【００９８】
結合およびアセンブリモジュール９０３はフラグメント解析モジュール９０２と連通して提供されており、ウェブページの第１レベルのフラグメントの完全なコンテンツを生成するレンダリングのレンダリング結果を結合するように構成されている。
【００９９】
ウェブページのフラグメントはネストした形でキャッシュされている場合、この例示的な実施形態では、再帰的にウェブページの各フラグメントのＨＴＭＬコードを取得し、ウェブページの第１レベルのフラグメントを生成するＨＴＭＬコードを結合することができる。これはウェブページのフラグメントのネストしたキャッシング、およびフラグメントのネストしたキャッシング後の再帰的なレンダリングを実行することにより既存の技術の欠点を解決する。
【０１００】
第７の例示的実施形態
ウェブページのキャッシングの第２の例示的な方法に対応するものとして、本開示は図１０に示す第７の実施形態によるウェブページキャッシング処理の装置をさらに提供する。装置はハードウェアおよび／またはソフトウェアで実装することができる１つまたは複数の機能モジュールを含むことができる。装置はウェブページのユニフォームリソースロケータ（ＵＲＬ）を取得するためのＵＲＬ収集サブモジュール１００１を含む。テンプレート検索サブモジュール１００２はウェブページのＵＲＬに基づいてウェブページのテンプレートを検索および取得するために提供されている。フラグメント情報取得サブモジュール１００３はウェブページのテンプレートの第１レベルのフラグメントに対応するフラグメント名およびフラグメントパラメータを取得するために提供される。装置は第１レベルのフラグメントのフラグメント名およびフラグメントパラメータに基づいて第１レベルのフラグメントのＨＴＭＬコードおよびネスティング情報を引き続き取得するために使用される、ネスティング情報収集サブモジュール１００４をさらに含む。
【０１０１】
本装置はまた、第１レベルのフラグメントがネスティング情報に基づいて第２レベルのフラグメントを含んでいるかどうかを判断するための再帰的なレンダリングサブモジュール１００５を実装してもよい。その場合は、サブモジュール１００５は第２レベルのフラグメントのための再帰的なレンダリングを実行する。再帰的なレンダリングは、処理されるフラグメントを超えるレベルのフラグメント内に処理されるフラグメントのためのプレースホルダを生成すること、および処理されるフラグメントのフラグメント名およびフラグメントパラメータに基づいて処理されるフラグメントのＨＴＭＬコードを取得することを含む。再帰的なレンダリングは処理されるフラグメントのＨＴＭＬコードにより処理されるフラグメントのプレースホルダを置換すること、および第２レベルのフラグメントが第３レベルのフラグメントを含んでいるかどうかを引き続き判断することをさらに含む。第２のフラグメントが第３レベルのフラグメントを含む場合は、Ｎが３より大きい整数である、Ｎレベルフラグメントがフラグメントを含んでいないと判断されるまで、再帰的なレンダリングは第３レベルのフラグメントのために実行される。第２レベルのフラグメントが第３レベルのフラグメントを含まない場合、レンダリングは終了する。
【０１０２】
クライアント表示サブモジュール１００６がクライアントのウェブページの第１レベルのフラグメントの完全なコンテンツを表示するためにさらに提供されてもよい。
【０１０３】
図１１はネスティング情報収集サブモジュール１００４の１つの実装を示す。この実装では、キャッシング情報検索サブモジュール１１０１はコンフィギュレーションサーバ内で第１レベルのフラグメントのキャッシング情報を検索するために使用され、キャッシング情報はフラグメントをキャッシュする必要があるかどうかについての情報やキャッシュする必要のあるフラグメントのキャッシング継続時間を含む。判断サブモジュール１１０２はまた、現在時刻がキャッシング継続時間に達する前に第１レベルのフラグメントのキャッシング情報に基づいて第１レベルのフラグメントをキャッシュする必要があるかどうかを判断するために実装されている。最初のＨＴＭＬコード検索サブモジュール１１０３は判断サブモジュール１１０２の結果が肯定であるとき、第１レベルのフラグメントのフラグメントＩＤを取得するために第１レベルのフラグメントのフラグメント名およびフラグメントパラメータでハッシュ計算を実行するため、およびキャッシングシステムからフラグメントＩＤに対応する第１レベルのフラグメントのＨＴＭＬコードを見つけるために使用される。第２のＨＴＭＬコード検索サブモジュール１１０４はフラグメントＩＤに対応するＨＴＭＬコードを見つけるために、ウェブサーバのトランザクションシステムをトリガするために使用される。
【０１０４】
この例示的な実施形態はウェブページのネストしたフラグメントキャッシングを可能にするだけでなく、ウェブページのネストしたフラグメントキャッシングが実行されるときに再帰的に各フラグメントのＨＴＭＬコードを取得し、このようにユーザにウェブページの完全なコンテンツを表示し既存の技術の欠落を是正する。
【０１０５】
第８の例示的実施形態
ウェブページのキャッシングの第３の例示的方法に対応するものとして、本開示は図１２に示すように第８の実施形態によるウェブページキャッシング処理の装置をさらに提供する。この装置は見つけられたＨＴＭＬコードおよびフラグメントＩＤの対応関係をキャッシングシステム内にキャッシュするために使用される、キャッシングモジュール１２０１を含んでもよい。ハッシュ計算モジュール１２０２はまたフラグメントのコンテンツが変化したときにフラグメントのフラグメントＩＤを取得するために、フラグメントのフラグメント名やフラグメントパラメータでハッシュ計算を実行するために提供される。削除モジュール１２０３はフラグメントＩＤに基づいてキャッシングシステムからフラグメントＩＤに対応したＨＴＭＬコードを検索して削除するために使用される。キャッシングモジュール１２０４はまたキャッシングシステム内のフラグメントのＨＴＭＬコードに対応したヘッダの値をキャッシュするために含まれてもよい。
【０１０６】
第９の例示的実施形態
ウェブページのキャッシングの第４の例示的方法に対応するものとして、本開示は図１３に示す第９の実施形態によるウェブページキャッシング処理の装置をさらに提供する。この装置はウェブページのリクエストを受信するために使用されるウェブページリクエスト受信モジュール１３０１を含んでもよい。判断モジュール１３０２は要求されたウェブページのページキャッシングを実行するかどうかを判断するために含まれる。直接レンダリングモジュール１３０３は判断モジュール１３０２の結果が肯定である場合に、ウェブページのコンテンツを取得するためにウェブページを直接レンダリングするために使用される。ネストしたフラグメントキャッシング装置１３０４は判断モジュール１３０２の結果が肯定でない場合は、ウェブページの第１レベルのフラグメント情報を取得するために使用される。ネストしたフラグメントキャッシング装置１３０４は引き続き第１レベルのフラグメント情報に基づいて第１レベルのフラグメントのためのフラグメント解析プロセスを実行する。フラグメント解析プロセスは第１レベルのフラグメントの所定のネスティング情報に基づいて第１レベルのフラグメントをレンダリングすることを含み、ネスティング情報は現在のフラグメントが他のフラグメントを含んでいるかどうかについての情報、およびウェブページの第１レベルのフラグメントの完全なコンテンツを生成するためにレンダリングのレンダリング結果を結合することを含む。
【０１０７】
第１０の例示的実施形態
ウェブページキャッシングの第５の例示的方法に対応するものとして、本開示は図１４に示す第１０の実施形態によるウェブページキャッシング処理の装置をさらに提供する。図１４に示す装置は図１３に関連して上述の機能コンポーネントの多くを採用しているが、選択されたコンポーネントに関するより詳細な情報を提供する。
【０１０８】
図１４の装置はウェブページのリクエストを受信するためのウェブページリクエスト受信モジュール１３０１を含んでいてもよい。装置はウェブページのＵＲＬを取得するためのキャッシング情報収集サブモジュール１４０１およびＵＲＬに基づいて所定のキャッシング情報を見つけるための検索サブモジュール１４０２を含む判断モジュール１３０２をさらに有していてもよい。キャッシング情報はウェブページのページキャッシングを実行するかどうかについての情報およびウェブページのキャッシング継続時間についての情報を含む。
【０１０９】
この実装では、直接レンダリングモジュール１３０３はキャッシング継続時間の満了前にウェブページのＵＲＬおよびウェブページパラメータから３２桁のウェブページＩＤを生成するためのウェブページＩＤ生成モジュール１４０３を含むことができる。モジュール１３０３はまたキャッシングシステムからウェブページＩＤに対応したＨＴＭＬコードを検索するための最初のＨＴＭＬコード検索モジュール１４０４を実装することができる。
【０１１０】
直接レンダリングモジュール１３０３は、図１３に関連して上述したように、ネストしたフラグメントキャッシング装置１３０４にさらに結合されている。
【０１１１】
本装置はウェブページＩＤに対応したＨＴＭＬコードを見つけるためにウェブサーバのトランザクションシステムをトリガするための第２のＨＴＭＬコード検索モジュール１４０５、およびキャッシングシステム内に見つけられたＨＴＭＬコードおよびウェブページＩＤとの対応関係をキャッシュするためのキャッシングモジュール１４０６をさらに含むことができる。
【０１１２】
第１１の例示的実施形態
ウェブページキャッシングの方法および装置に対応するものとして、本開示は第１０の実施形態によるウェブページキャッシング処理のシステムをさらに提供する。システムは図１に示すクライアントおよびウェブサーバを含むことができる。このような状況の中で、クライアント１０１はウェブサーバ１０２にウェブページのリクエストを送信するように構成されている。
【０１１３】
ウェブサーバ１０２はキャッシング装置１０３を含む。キャッシング装置１０３は１つまたは複数の機能モジュールを実装する。一例として、キャッシング装置は図９に示すモジュールを実装している。これらのモジュールは、エレクトロニクス、ファームウェア、および／またはメモリに格納されプロセッサによって実行されるソフトウェアとして実装することができる。
【０１１４】
より具体的には、キャッシング装置１０３はウェブページのリクエストを受信したことに応答してウェブページの第１レベルのフラグメント情報を取得するように構成された収集モジュール９０１を含む。フラグメント解析モジュール９０２は第１レベルのフラグメント情報に基づいて、第１レベルのフラグメントのためにフラグメント解析プロセスを実行するために提供されている。フラグメント解析プロセスは第１レベルのフラグメントの所定のネスティング情報に基づいて、第１レベルのフラグメントをレンダリングすることを含み、ネスティング情報は現在のフラグメントが他のフラグメントを含んでいるかどうかについての情報を含む。結合およびアセンブリモジュール９０３はウェブページの第１レベルのフラグメントの完全なコンテンツを生成するレンダリングのレンダリング結果を結合するように構成されている。
【０１１５】
本開示はウェブページキャッシング処理のさらに別の例示的なシステムを提供する。図１に示すように、システムはクライアントおよびウェブサーバを含むことができ、クライアントがウェブサーバからウェブページを要求することができる。この実装では、ウェブサーバは図１３に示すモジュールを実装したキャッシング装置を含む。これらのモジュールはエレクトロニクス、ファームウェア、および／またはメモリに格納されプロセッサによって実行されるソフトウェアとして実装することができる。
【０１１６】
したがって、この実装では、キャッシング装置はウェブページのリクエストを受信するためのウェブページリクエスト受信モジュール１３０１、および要求されたウェブページのページキャッシングを実行するかどうかを判断するための判断モジュール１３０２を含む。直接レンダリングモジュール１３０３は判断モジュールの結果が肯定である場合に、ウェブページのコンテンツを取得するためにウェブページを直接レンダリングするために含まれる。本装置は判断モジュールの結果が肯定でない場合に、ウェブページの第１レベルのフラグメント情報を取得するネストしたフラグメントキャッシング装置１３０４をさらに実装し、引き続き第１レベルのフラグメント情報に基づいて第１レベルのフラグメントのためのフラグメント解析プロセスを実行する。フラグメント解析プロセスは第１レベルのフラグメントの所定のネスティング情報に基づいて、第１レベルのフラグメントをレンダリングすることを含み、ネスティング情報は現在のフラグメントが他のフラグメントを含んでいるかどうかについての情報を含む。ネストしたフラグメントキャッシング装置１３０４はウェブページの第１レベルのフラグメントの完全なコンテンツを生成するレンダリングのレンダリング結果をさらに結合する。
【０１１７】
様々な例示的な実施形態が漸次本開示で説明されていることに留意されたい。各実施形態の主なポイントは他の例示的な実施形態とは異なる場合があり、例示的な実施形態の同一または類似の部分は互いに参照することができる。例示的な装置の説明は、これらの例示的な装置は例示的な方法の対応するものの実施形態に類似しているので比較的単純である。関連する詳細は例示的な方法の実施形態で見つけることができる。
【０１１８】
最後に、本明細書内での「第１」および「第２」のような任意の関連性用語は、別のエンティティから１つのエンティティを、または別の操作から１つの操作を区別することを意味していることが指摘されるべきであるが、任意の実世界での関係の存在、またはこれらのエンティティまたは操作間の順序を必ずしも要求する、もしくは意味するものではない。さらに、「含む」、「有している」、または任意の他の変形などの用語は非排他的に「備える」を包含することを意図している。したがって、個別に特徴の集合を含むプロセス、方法、物品またはデバイスはそれらの特徴を含むことができるだけでなく、表示されていない他の特徴、またはこれらのプロセス、方法、物品またはデバイスのいずれかに固有の特徴を含むことができる。任意のさらなる制限を受けることなく、「．．．を含む」といったフレーズ内で定義された特徴はその特徴を列挙するプロセス、方法、物品またはデバイスが他の同等の特徴を有することができる可能性を除外するものではない。
【０１１９】
ウェブページキャッシング処理の方法、装置およびシステムは本開示で詳細に説明された。例示的な実施形態は本開示において本発明の概念および実装を説明するために用いられる。例示的な実施形態は本発明の方法および中心的な概念の理解を深めるためのみに使用される。この開示の概念に基づいて、当業者は例示的な実施形態および応用分野を変更することができる。概していえば、本開示の内容は開示された方法および装置に限定するものと解釈すべきではない。
【図１】
2013537665.tif 000003
【図２】
2013537665.tif 000004
【図３】
2013537665.tif 000005
【図４】
2013537665.tif 000006
【図５】
2013537665.tif 000007
【図６】
2013537665.tif 000008
【図７】
2013537665.tif 000009
【図８】
2013537665.tif 000010
【図９】
2013537665.tif 000011
【図１０】
2013537665.tif 000012
【図１１】
2013537665.tif 000013
【図１２】
2013537665.tif 000014
【図１３】
2013537665.tif 000015
【図１４】
2013537665.tif 000016
【国際調査報告】
2013537665.tif 000017