JP2013537665A - ウェブページのネストしたフラグメントキャッシングを処理する方法および装置 - Google Patents

ウェブページのネストしたフラグメントキャッシングを処理する方法および装置 Download PDF

Info

Publication number
JP2013537665A
JP2013537665A JP2013519708A JP2013519708A JP2013537665A JP 2013537665 A JP2013537665 A JP 2013537665A JP 2013519708 A JP2013519708 A JP 2013519708A JP 2013519708 A JP2013519708 A JP 2013519708A JP 2013537665 A JP2013537665 A JP 2013537665A
Authority
JP
Japan
Prior art keywords
fragment
web page
level
caching
information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2013519708A
Other languages
English (en)
Other versions
JP5826266B2 (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.)
Alibaba Group Holding Ltd
Original Assignee
Alibaba Group Holding Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Alibaba Group Holding Ltd filed Critical Alibaba Group Holding Ltd
Publication of JP2013537665A publication Critical patent/JP2013537665A/ja
Application granted granted Critical
Publication of JP5826266B2 publication Critical patent/JP5826266B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/14Tree-structured documents
    • G06F40/143Markup, e.g. Standard Generalized Markup Language [SGML] or Document Type Definition [DTD]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/12Use of codes for handling textual entities
    • G06F40/131Fragmentation of text files, e.g. creating reusable text-blocks; Linking to fragments, e.g. using XInclude; Namespaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F40/00Handling natural language data
    • G06F40/10Text processing
    • G06F40/166Editing, e.g. inserting or deleting
    • G06F40/186Templates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/02Standardisation; Integration
    • H04L41/0246Exchanging or transporting network management information using the Internet; Embedding network management web servers in network elements; Web-services-based protocols
    • H04L41/0273Exchanging or transporting network management information using the Internet; Embedding network management web servers in network elements; Web-services-based protocols using web services for network management, e.g. simple object access protocol [SOAP]
    • H04L41/0293Exchanging or transporting network management information using the Internet; Embedding network management web servers in network elements; Web-services-based protocols using web services for network management, e.g. simple object access protocol [SOAP] for accessing web services by means of a binding identification of the management service or element
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Linguistics (AREA)
  • General Health & Medical Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Audiology, Speech & Language Pathology (AREA)
  • Artificial Intelligence (AREA)
  • Databases & Information Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Data Mining & Analysis (AREA)
  • Information Transfer Between Computers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

ウェブページのネストしたフラグメントキャッシングが説明される。ウェブページのリクエストを受信したことに応答して、ウェブページの第1レベルのフラグメント情報が取得される。第1レベルのフラグメント情報に基づいて、第1レベルのフラグメントのためにフラグメント解析プロセスが引き続き実行され、フラグメント解析プロセスは第1レベルのフラグメントの事前設定ネスティング情報に基づいて、第1レベルのフラグメントをレンダリングすることを含む。ネスティング情報は現在のフラグメントが他のフラグメントを含んでいるかどうかについての情報を含む。フラグメント解析プロセスの結果を結合して、ウェブページの第1レベルのフラグメントの完全なコンテンツを生成する。本開示の例示的な実施形態はウェブページのネストしたフラグメントキャッシングを可能にするだけでなく、ウェブページのネストしたフラグメントキャッシングが実行されるときに再帰的に各フラグメントのHTMLコードを取得し、このようにしてユーザにウェブページの完全なコンテンツを表示する。

Description

関連特許出願の相互参照
本出願は2010年7月12日に出願された「ウェブページのネストしたフラグメントキャッシングを処理する方法および装置」と題する、中国特許出願第201010225186.2号の優先権を主張し、その全体が本明細書に参照により援用される。
本開示はネットワークのデータ処理分野に関し、特にウェブページのネストしたフラグメントキャッシングを処理する方法および装置に関する。
ユーザが初めてウェブサーバにウェブページを要求するとき、ウェブブラウザ(例えばIEブラウザ)は累積加速を用いてウェブページへのアクセスが高速化される。ウェブブラウザはコンピュータで以前にアクセスしたウェブページ(例えば、イメージおよびCookieファイルを含む)の内容を保存することができる。コンピュータのこの格納領域は、IEのキャッシュスペースと呼ばれることがある。その後、ウェブページを訪問するたびに、IEブラウザは最初にこのキャッシュ領域を調べることができる。キャッシュ領域に現在アクセスしているコンテンツが含まれている場合は、IEブラウザはインターネットからコンテンツをダウンロードせずにキャッシュからコンテンツを直接読み取り、このようにウェブページへのアクセスの高速化を実現することができる。
ウェブページのキャッシングでは、2つの方法が現在の技術に存在する。1つの方法はページキャッシングと呼ばれ、アクセスされたウェブページ全体のキャッシングを実行する。もう1つの方法はフラグメントキャッシングと呼ばれ、アクセスされたウェブページを複数のフラグメントに分割し(例えば、1つのフラグメントはイメージデータ、別のフラグメントはテキストデータ等)特定のフラグメントのコンテンツをキャッシュしている。
しかし、ウェブページの特定のフラグメントの内容が関連している可能性があるので、あるフラグメントのためにネストしたキャッシングが必要であるかもしれない。例えば、フラグメントAはフラグメントBを含むことができ、フラグメントBはネストした形でフラグメントCを含むことができる場合、既存の技術ではフラグメントAおよびフラグメントCがキャッシングを必要とする一方でフラグメントBがキャッシングを必要としない状況はサポートしないであろう。
現在、当業者が緊急に解決する必要がある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レベルのフラグメントの完全なコンテンツを生成するレンダリングのレンダリング結果を結合する。
既存の技術と比較して、本開示はいくつかの利点がある。本開示の例示的な実施形態はウェブページのネストしたフラグメントキャッシングを可能にするだけでなく、ウェブページのネストしたフラグメントキャッシングが実行されるときに再帰的に各フラグメントのHTMLコードを取得し、このようにユーザにウェブページの完全なコンテンツを表示し、既存技術の欠落を是正する。例示的な実施形態では、キャッシングシステムは分散サーバクラスタがキャッシングシステムとして機能するサーバの数を増やすために、水平展開アプローチを採用することができる分散サーバクラスタを介して実装されてもよい。サーバのいずれかがフラグメントのHTMLコードをあらかじめ格納しておくような、分散型クラスタの他のサーバにはHTMLコードを格納する必要がない場合がある。さらに、例示的な実施形態に記載の技術方式はレベルの数を制限せず、各フラグメントごとに異なるキャッシング時間を設定せずにフラグメントの再帰的なネスティングを可能にする。当然のことながら、本発明を実施する任意の製品に、同時に上記のすべての利点を実装する必要はない。
本開示の例示的な実施形態の技術的な構成をより明確に理解するために、例示的な実施形態を説明するために使用されている添付図面を簡潔に説明する。次の図面は本開示のいくつかの例示的な実施形態を構成するに過ぎない。これらの添付図面に基づいて、当業者は他の実施形態および図面を想起することができる。
本開示の実施形態で説明されるシステムを示す構成図である。 本開示の第1の実施形態におけるウェブページのキャッシング処理の方法を示すフローチャートである。 本開示の第2の実施形態におけるウェブページのキャッシング処理の方法を示すフローチャートである。 本開示の第2の実施形態で説明されるブロック304を示すフローチャートである。 本開示の第2の実施形態で説明される第1レベルのフラグメントのフラグメント名を示す概要図である。 本開示の第3の実施形態におけるウェブページのキャッシング処理の方法を示すフローチャートである。 本開示の第4の実施形態におけるウェブページのキャッシング処理の方法を示すフローチャートである。 本開示の第5の実施形態におけるウェブページのキャッシング処理の方法を示すフローチャートである。 本開示の第6の実施形態におけるウェブページのキャッシング処理の装置を示す構成図である。 本開示の第7の実施形態におけるウェブページのキャッシング処理の装置を示す構成図である。 本開示の第7の実施形態に記載されているネスティング情報取得サブモジュール1004を示す構成図である。 本開示の第8の実施形態におけるウェブページのキャッシング処理の装置を示す構成図である。 本開示の第9の実施形態におけるウェブページのキャッシング処理の装置を示す構成図である。 本開示の第10の実施形態におけるウェブページのキャッシング処理の装置を示す構成図である。
本開示の例示的な実施形態での技術方式が、例示的な実施形態での添付の図面を用いて以下に明確かつ完全に説明される。当然のことながら、ここで説明される例示的な実施形態は本開示の例示的な実施形態の部分だけであり、すべてを構成するものではない。本開示の例示的な実施形態に基づいて、当業者は本開示の範囲内に存するすべての他の例示的な実施形態を取得することができる。
開示された方法、装置、およびシステムは一般的または専門的なコンピュータシステムの環境や構成で使用することができる。例としては、パーソナルコンピュータ、サーバコンピュータ、ハンドヘルドデバイスまたはポータブルデバイス、タブレットデバイス、マルチプロセッサシステム、および上記の任意のシステムまたはデバイスを含む分散コンピューティング環境が含まれる。
開示された方法、装置、およびシステムはコンピュータ実行可能命令、例えばプログラムモジュールの一般的な文脈で説明することができる。一般的に、プログラムモジュールは、ルーチン、プログラム、オブジェクト、コンポーネント、データ構造、および特定の機能を実行するか、または特定の抽象データ型を実装するように含めることができる。開示された方法およびシステムは、機能が通信ネットワークを介してリンクされたリモート処理デバイスによって実行される分散コンピューティング環境で実施することができる。分散コンピューティング環境では、プログラムモジュールはメモリ記憶装置を含むローカルおよび/またはリモートコンピュータ記憶媒体に配置することができる。
本開示の主なアイデアの一つは、ネスティング情報を設定し事前にウェブページの各フラグメントの情報をキャッシュすることを含むことができる。ネスティング情報は現在のフラグメントが他のフラグメントを含んでいるかどうかについての情報を含むことができる。さらに、各フラグメントに対応するネスティング情報はフラグメントが現在解析されている場合、対応するネスティング情報がウェブページテンプレートから読み込むことができるようにウェブサーバのウェブテンプレートに保存することができる。ウェブページのテンプレートに含まれている情報は、さらにフラグメント名およびフラグメントパラメータを含むことができ、各フラグメントはフラグメント名で識別することができ、フラグメントパラメータはトランザクションに応じて決定することができる。トランザクションはユーザの特定の要求を参照し、ユーザの特定の要求を満たす機能は特定の業務に対応している。キャッシング情報はフラグメントをキャッシュする必要があるかどうかについての情報、およびキャッシュする必要があるフラグメントのキャッシングの継続時間についての情報を含んでいる。キャッシング情報はコンフィギュレーションサーバに格納することができる。ウェブページがキャッシュされている場合、またはネストしたフラグメントのキャッシングがウェブページのフラグメントに対して実行されると、キャッシング情報を動的にコンフィギュレーションサーバから取得することができる。本開示では、ウェブページのリクエストを受信したときに、要求されたウェブページのためのページキャッシングが必要となるかどうかが判断される。必要な場合、直接ウェブページのコンテンツを取得するためにウェブページがレンダリングされる。必要でない場合は、ウェブページの第1レベルのフラグメント情報を取得することができる。第1レベルのフラグメント情報に基づいて、フラグメント解析プロセスが引き続いて第1レベルのフラグメントのために実行される。フラグメント解析プロセスは第1レベルのフラグメントの事前設定ネスティング情報に基づいて第1レベルのフラグメントをレンダリングすることを含むことができ、ネスティング情報は現在のフラグメントが他のフラグメントを含んでいるかどうかに関する情報が含み、ウェブページの第1レベルのフラグメントの完全なコンテンツを生成するためにフラグメント解析プロセスの結果を結合する。
本開示の例示的な実施形態では、ウェブページのフラグメントはフラグメントの少なくとも2つのレベルを含むことができ、各レベルは1つ以上のフラグメントを含むことができることに留意されたい。第1レベルのフラグメントは第2レベルのフラグメントと親子の関係を有することができる。しかし、すべての第1レベルのフラグメントが第2レベルのフラグメントを含む訳ではない。あるいは、第1レベルのフラグメントのうちの1つ以上が第2レベルのフラグメントを含むことができる。また、第2レベルのフラグメントは第3レベルのフラグメント等を含むことができる。本開示では、このようなネスティング関係は再帰的ネスティングと呼ばれている。さらに、様々なレベルでのフラグメントのキャッシング情報は互いに独立していてもよい。例えば、現在のレベルのフラグメントがキャッシングされるように事前に設定されてもよく、次の下位レベルのサブフラグメントがキャッシングされないように設定されてもよく、次の下位レベルのサブフラグメントのサブフラグメントがキャッシュされるように設定されてもよい等である。キャッシング情報が事前に設定され、コンフィギュレーションサーバに格納されてもよい。当然のことながら、コンフィギュレーションサーバでこの事前設定キャッシング情報は、その後の使用中にリアルタイムに更新されてもよい。
図1は本発明の実施形態によるシステム100の構成図を示す。ユーザはウェブサーバ102からクライアント101を介してウェブページを要求する。クライアントはモバイルおよび非モバイルデバイスの両方を含む、処理およびメモリ機能を有する任意の数のデバイスとして実装することができる。ウェブサーバ102は個々のサーバ、サーバクラスタ、サーバファーム、データセンター、またはメインフレームコンピューティングシステムのような処理およびメモリ機能を含む任意の数のサーバアーキテクチャーを表す。
キャッシング装置103はウェブサーバ102に統合されてもよい。キャッシング装置103はウェブサーバ102に追加の機能エンティティとして、またはスタンドアロン機能エンティティとして実装することができる。キャッシング装置103は、例示的な実施形態で説明したウェブページのネストしたフラグメントのキャッシング中に再帰的な処理を実行することができる。キャッシングシステム104は各フラグメントまたはウェブページのHTMLコードを格納するために使用される。キャッシング装置103はキャッシングシステム104からのウェブページまたはフラグメントのHTMLコードを要求することができる。キャッシングシステム104がフラグメントまたはウェブページのHTMLコードを含まない場合、ウェブサーバ102のトランザクションシステム105がフラグメントまたはウェブページのHTMLコードを供給するための責任がある。トランザクションシステム105は現在特定のユーザの要求に関連付けられているトランザクションを満たすウェブサーバマシン上で複数のモジュールで構成されたシステムとして考えることができる。
本開示の実用的適用では、HTMLコードがキャッシングシステムにキャッシュされないことに留意されたい。むしろ、HTMLコードを直接クライアント101内にローカルに保存することができる(例えば、クライアントのデバイスメモリ内に直接キャッシュされる)。クライアント101とウェブサーバ102は、互いに直接HTMLコードを交換してもよい。クライアントがフラグメントまたはウェブページに対応するHTMLコードをローカルに見つけることができない場合は、クライアント101は検索を実行するためにウェブサーバ102のトランザクションシステム105にトリガを掛けてもよい。クライアントは対応するHTMLコードをローカルに見つけた場合、クライアントはユーザが要求したウェブページに直接HTMLコードを表示してもよい。しかし、そのようなアプローチはローカルメモリまたはコンピュータに相対的に高い性能要件を要求し、ウェブページには多くの多様性があるので、独立した分散型のクラスタサーバは、通常本開示の実施形態で説明したようにキャッシングシステムとして使用されている。
本開示の実施形態で説明したシステムのフレームワークはコンフィギュレーションサーバ106をさらに含むことができる。コンフィギュレーションサーバ106はキャッシング装置103に各フラグメントのキャッシング情報を提供することができる。しかし、開示されたシステムはコンフィギュレーションサーバ106なしで実装することができる。このような場合には、キャッシング情報を一度にウェブサーバ内の各フラグメントのために事前に設定してもよい。変更することができないフラグメントの固定パラメータと同様に、キャッシングシステム内の各フラグメントのキャッシング情報は動的に変更できない場合がある。
例示的な実施形態では、キャッシング情報をテキスト形式で実施することができる。代わりに、キャッシング情報はプログラム内のオブジェクトとして埋め込まれていてもよい。キャッシング情報がプログラム内のオブジェクトとして埋め込まれている場合、キャッシング情報は対応する現在のフラグメントが他のネストしたフラグメントを含んでいるかどうか、または特定のネスティングが無限ループを含んでいるかどうかを判断するためにTHREAD_LOCALから取得することができる。THREAD_LOCALはウェブサーバのスレッドレベルの変数であり、与えられた要求プロセスのキャッシング装置にコンフィギュレーションサーバからキャッシング情報を提供してもよい。
ウェブページキャッシングを処理する本開示の方法は、既存の技術で実装されているページ全体のキャッシュを実装することができるだけでなく、既存の技術では達成できないウェブページのネストしたフラグメントキャッシングを実装することができ、このように既存の技術の欠点を是正する。
第1の例示的実施形態
図2は列挙されたブロックとして次の操作を含むことができる、ウェブページキャッシングを処理する第1の例示的方法を示すフローチャートを表す。
201で、ウェブページの第1レベルのフラグメント情報はウェブページのリクエストを受信したことに応答して取得される。本実施形態では、ウェブページが決定されると、ウェブページに関連付けられた第1レベルのフラグメント情報も決定することができる。同じウェブページのフラグメントの形式(どのフラグメントがウェブページから分割されているか、これらのフラグメントの位置および名前などを含む情報として)は同じであるからである。ウェブページ内の各フラグメントは本質的にはプレースホルダであり、このプレースホルダは他のウェブページで使用することができる。フラグメントの最終的なレンダリング結果が得られた場合にのみ関連したプレースホルダは、フラグメントの特定のコンテンツに置換される。一般に、フラグメントの具体的な内容はフラグメントに対応するHTML(ハイパーテキストマークアップ言語)コードを指す。
本例示的実施形態では、ウェブページ内のフラグメントはネストした形でキャッシュされてもよい。第1レベルのフラグメントAが第2レベルのフラグメントBを含み、第2レベルのフラグメントBが第3レベルのフラグメントCを含む場合、ネストしたキャッシングはフラグメントA、B、およびCの所定のキャッシング情報に基づいて、第2レベルのフラグメントBをキャッシュせずに第1レベルのフラグメントAおよび第3レベルのフラグメントCをキャッシュする機能として理解することができる。しかし、第1レベルのフラグメントが他のフラグメントを含んでいるかどうかに関係なく、このブロックで取得されるのは第1レベルのフラグメント情報である。第1レベルのフラグメントのネスティング情報はその後これらの第1レベルのフラグメントが解析されたときに、順次取得することができる。
202で、フラグメント解析プロセスは引き続きウェブページの第1レベルのフラグメント情報に基づいて、第1レベルのフラグメントのために実行される。フラグメント解析プロセスは第1レベルのフラグメントのネスティング情報に基づいて、第1レベルのフラグメントをレンダリングすることを含むことができ、ネスティング情報は現在のフラグメントが他のフラグメントを含んでいるかどうかについての情報を含む。
ウェブページの第1レベルのフラグメント情報を取得するにあたり、フラグメントの解析プロセス中にコンフィギュレーションサーバからそれぞれの第1レベルのフラグメントのネスティング情報を動的に取得することができるように、解析プロセスは第1レベルのフラグメントのために実行される。ネスティング情報は現在の第1レベルのフラグメントが第2レベルのフラグメントを含んでいるかどうかについての情報、および含まれる第2レベルのフラグメントの情報を含むことができる。すべての第1レベルのフラグメントはこのブロックで解析される。それぞれの第1レベルのフラグメントのフラグメント解析プロセスは、同時にまたは連続して実行することができる。しかしながら、このフラグメント解析プロセスが行われる順序は本開示の例示的な実施形態の実装には影響を与えない。
このブロックで説明されるレンダリングプロセスは、第1レベルのフラグメントの各フラグメント名およびそれぞれのフラグメントパラメータに基づいて第1レベルのフラグメントの特定の内容に対応したHTMLコードを検索する。レンダリングプロセスは既存の技術のレンダリングプロセスと同様であり、したがって本明細書ではさらなる詳細を説明しない。
203で、レンダリングのレンダリング結果を結合して、はウェブページの第1レベルのフラグメントの完全なコンテンツを生成する。この動作の一例として、第1レベルのフラグメントが他のフラグメントを含んでいない場合、関連したレンダリング結果は第1レベルのフラグメントのHTMLコードを含む。第1レベルのフラグメントが第2レベルのフラグメントを含む、または第2レベルのフラグメントが第3レベルのフラグメントをさらに含む、または、再帰的方法で、例えばN−1のレベルのフラグメントがNレベルのフラグメントを含む場合、第1レベルのフラグメントのレンダリング結果は第2レベルからNレベルまでフラグメントのHTMLコードを含んでいてもよい。したがって、第1レベルのフラグメントのレンダリングされたコンテンツを結合して、ウェブページの第1レベルのフラグメントのコンテンツを生成することができる。
第2の例示的実施形態
図3はブロックとして示される次の方法の操作を含む、ウェブページキャッシング処理の第2の実施方法を説明するフローチャートを示す。
301で、ウェブページのURLはウェブページのリクエストを受信したことに応答して取得される。この動作の一例として、ウェブページのURL(ユニフォーム/ユニバーサルリソースロケータ)は最初のウェブページへのリクエストを受信した場合に取得される。特定のネットワーク取引プラットフォームの「製品の詳細」ウェブページを例として使用してもよい。例えば、この「製品の詳細」ウェブページのURLアドレスがxxx.xxx.com/detail.html?id=123と仮定する。
302では、ウェブページのテンプレートがウェブページのURLに基づいて見つけられる。各ウェブページが固有のURLおよびテンプレートを有しているように、ウェブページで使用されているテンプレートはウェブページのURLに基づいて決定することができる。「製品の詳細」ウェブページのテンプレート情報が「detail.vm」であれば、テンプレート情報はこのブロックでの「製品の詳細」ウェブアドレスに基づいて「detail.vm」と決定することができる。
各ウェブページで使用されるテンプレートは互いに独立していてもよい、あるいは複数のウェブページ間で共有されてもよいことに留意すべきである。テンプレートを使用するとき、ウェブページはテンプレートに規定されたフラグメント部分を事前設定する必要がある。
303で、プロセスはウェブページのテンプレートから第1レベルのフラグメントに対応するフラグメント名およびフラグメントパラメータを取得する。ウェブページのテンプレートが決定された後、テンプレートに対応するウェブページのフラグメント形式はそれに応じて決定することができる。既存の技術とは異なり、ウェブページが第1レベルのフラグメントを含むのみではなく、第1レベルのフラグメントは再帰的にフラグメントの少なくとも1つのレベルを含んでいてもよい。しかし、このブロックでは、ウェブページから取得されたフラグメントは第1レベルのフラグメントに対応するフラグメント名およびフラグメントパラメータのみを含んでいてもよい。フラグメントパラメータはトランザクションに応じて決定してもよい。トランザクションはユーザの特定の要求を参照し、ユーザの特定の要求を満たす機能は特定の業務に対応している。例えば、「店主情報」については、対応するフラグメントのパラメータは販売ユーザIDであってもよい。「製品の詳細」ウェブページを例として使用している場合は、対応するフラグメントのパラメータは製品情報および販売ユーザIDであってもよい。
次のアプローチはテンプレートにフラグメントを導入するために使用されてもよく、例えば、フラグメント名が「店主情報」であり、テンプレート名が「製品の詳細」である場合、「製品の詳細」の「店主情報」の参照フラグメントのためのコードは以下のようであってもよい:
control.set(“userInfo”).addPrams(“userId”,1234)
「addPrams」内のコンテンツは「店主情報」フラグメント、およびUSERID「1234」であるユーザのIDに対応するフラグメントのパラメータである。コード部分「control.set(“userinfo”)」はこのフラグメントが「製品詳細」テンプレートで参照されていることを示す。当然のことながら、このコードの実装はあくまで一例であり、本開示の制限として解釈されるべきではない。
304で、プロセスは第1レベルのフラグメントのフラグメント名およびフラグメントパラメータに基づいて、第1レベルのフラグメントのネスティング情報を取得し、さらに第1レベルのフラグメントのネスティング情報に基づいて、第1レベルのフラグメントのそれぞれのHTMLコードを取得する。ネスティング情報は現在のフラグメントが他のフラグメントを含んでいるかどうかについての情報を含む。
304で、第1レベルのフラグメントのフラグメント名およびフラグメントパラメータが取得されたときに、第1レベルのフラグメントのネスティング情報およびHTMLコードが取得されてもよい。具体的には、1つの実装では、ネスティング情報はウェブサーバのキャッシング装置103にネスティング情報を送ることができる、コンフィギュレーションサーバ106から取得することができる。フラグメントのHTMLコードは、イメージまたはウェブページに表示されるテキストなどの情報を含むことができる。このフラグメントおよびそれに対応するHTMLコードは他のウェブページのテンプレートで使用されてもよい。例えば、販売ユーザのウェブページの「製品の詳細」内の「店主情報」フラグメントおよびネットワーク取引プラットフォームの「ショップのウェブページ」の「店主情報」フラグメントは同じフラグメントに属していてもよい。
図4は、図3で操作ブロック304の一部として一般的に指摘したように、第1レベルのフラグメントのすべてのHTMLコードが取得されるときに、第1レベルのフラグメントのHTMLコードを取得する1つの例示的なプロセスを示す。プロセスは次の操作を含んでいてもよい。
401で、プロセスはコンフィギュレーションサーバ106からの第1レベルのフラグメントのキャッシング情報を検索する。キャッシング情報はフラグメントがキャッシュする必要があるかどうかについての情報およびキャッシュする必要があるフラグメントのキャッシング継続時間を含む。
コンフィギュレーションサーバはウェブページの各レベルのフラグメントのキャッシング情報のレコードを保持する。キャッシング情報はフラグメントがキャッシュする必要があるかどうかについての情報およびキャッシュする必要があるフラグメントのキャッシングの継続時間を含む。キャッシングの継続時間はキャッシングシステムにおける現在のフラグメントの有効時間を示すために使用される。現在のフラグメントは対応するキャッシュの継続時間よりも長い時間キャッシングシステムにキャッシュされている場合、フラグメントの有効期限が切れており、キャッシングシステムはもはやフラグメントに固有のコンテンツが含まれなくなる。このキャッシング情報を事前に設定してもよい。当然のことながら、特定のフラグメントのキャッシング情報をその後変更する必要がある場合、コンフィギュレーションサーバに格納されている情報を直接変更することによって達成してもよい。このように、コンフィギュレーションサーバで見つけられたキャッシング情報は最新のものである。キャッシング情報は、現在のフラグメントをキャッシュする必要があることを表す「1」と現在のフラグメントをキャッシュする必要がないことを表す「0」とを有するように実装できる。キャッシング継続時間情報の実装については、キャッシング期間の情報とフラグメント名またはフラグメントパラメータなどの情報との関係を直接構築することができる。当然のことながら、実用的な適用では、キャッシング情報を実装するために多くの方法があり、本発明の例示的な実施形態は何ら制限を有していない。
キャッシングの有効期限がキャッシングシステムによって制御されているので、キャッシング装置は例示的な実施形態で説明したプロセスを実行する際に、現在のウェブページまたはフラグメントの有効期限がいつ切れるか分からないことに留意すべきである。キャッシングシステムを検索したときに、キャッシング装置が現在のウェブページまたはフラグメントを検出しない場合、現在のフラグメントのコンテンツがすでに期限切れになったことを示しているかもしれない。
402で、プロセスは第1レベルのフラグメントが第1レベルのフラグメントのキャッシング情報に基づいてキャッシュする必要があるかどうかを判断する。肯定の場合、プロセスはブロック403に継続する。そうでない場合、プロセスはブロック404に継続する。
401で説明した例によると、フラグメントをキャッシュする必要があるかどうかを表す取得された情報が「1」である場合、そのフラグメントはキャッシュされるに設定されている。
403で、プロセスは第1レベルのフラグメントのフラグメントIDを取得するために第1レベルのフラグメントのフラグメント名およびフラグメントパラメータにハッシュ計算を適用し、フラグメントIDに基づいて、キャッシングシステムからフラグメントIDに対応する第1レベルのフラグメントのHTMLコードを検索する。プロセスはブロック405に継続する。
図5は一例による第1レベルのフラグメントの代表的なフラグメント名を示す。ウェブページの第1レベルのフラグメントは、「説明」フラグメントA、「ナビゲーション」フラグメントB、「店主情報」フラグメントC、および「店舗区分」フラグメントDを含むことができる。「店主情報」フラグメントCは第2レベルの「店主信頼性」フラグメントC1をさらに含むことができる。
図4のブロック403に戻り、ハッシュ計算は第1レベルのフラグメントのフラグメント名およびフラグメントパラメータで実行することができる。対応する計算結果は一般的に長さが32桁である第1レベルのフラグメントのフラグメントIDとして機能する。この32桁のフラグメントIDに基づいて、フラグメントIDに対応するHTMLコードはキャッシングシステムから検索して取得することができる。キャッシングシステムはHTMLコードだけでなく、各フラグメントIDおよび対応関係のHTMLコードとの対応関係を格納する。
第1レベルのフラグメントをレンダリングするプロセスはウェブページ内の第1レベルのフラグメントの場所のプレースホルダを生成すること、対応するHTMLコードを取得すること、HTMLコードを取得するのに応じて、HTMLコードによって第1レベルのフラグメントのプレースホルダを置換することを含むことができることに留意すべきである。レンダリングはフラグメントに対して実行されると、ウェブページ内のそのレベルに関係なく、上記のプロセスがレンダリングを実行するために使用することができる。プレースホルダはコンテンツがその後の動作中に追加されるかもしれないフラグメントのための場所として理解することができる。
404では、ウェブサーバ102のトランザクションシステム105は第1レベルのフラグメントのフラグメントIDに対応したHTMLコードを見つける。プロセスはブロック405に継続する。現在のフラグメントがキャッシュされないように表示されている場合は、ウェブサーバのトランザクションシステム105は現在のフラグメントのレンダリングを実行することができ、レンダリング結果はその現在のフラグメントのHTMLコードである。具体的には、トランザクションシステムのレンダリングモジュールはデータベース、または検索エンジン、またはドキュメントシステムからフラグメントIDに対応したHTMLコードを見つける。
405で、第1レベルのフラグメントが第1レベルのフラグメントの事前設定ネスティング情報に基づいて第2レベルのフラグメントを含んでいるかどうかが判断される。肯定の場合、プロセスはブロック406に継続する。そうでない場合は、第1レベルのフラグメントのためのレンダリングプロセスが終了する。ブロック405での動作は必要に応じて現在解析されている第1レベルのフラグメントがネスティング情報に基づいて第2レベルのフラグメントを含んでいるかどうかを判断することができる。
406で、プロセスは第2レベルのフラグメントのための再帰的なレンダリングを実行する。再帰的なレンダリングは、処理されるフラグメントのレベルを越えるフラグメントに、処理されるフラグメント用のプレースホルダを生成すること、処理されるフラグメントのフラグメント名およびフラグメントパラメータに基づいて処理されるフラグメントのHTMLコードを取得すること、処理されるフラグメントのHTMLコードにより処理されるフラグメントのプレースホルダを置換することを含むことができる。プロセスはブロック407に継続する。
第1レベルのフラグメントが第2レベルのフラグメントを含む場合、このブロックは再帰的に第2レベルのフラグメントのためのレンダリングを実行する。具体的には、第2レベルのフラグメントのプレースホルダは、まず第1レベルのフラグメントで生成される。第2レベルのフラグメントのフラグメント名およびフラグメントパラメータに基づいて、第2レベルのフラグメントのHTMLコードは上記と同様の手法を用いて取得することができる。具体的には、同様のアプローチは第2レベルのフラグメントの32桁のIDを取得するために第2レベルのフラグメントのフラグメント名およびフラグメントパラメータのハッシュ計算を実行することを含むことができる。第2レベルのフラグメントをキャッシュする必要がある場合、対応するHTMLコードはIDに基づいてキャッシングシステムから取得することができる。対応するHTMLコードがキャッシングシステムで見つからない場合、または第2レベルのフラグメントをキャッシュする必要がない場合は、対応するHTMLコードに関連付けられているトランザクション機能に応じて、データベースやインターネットから取得することができる。HTMLコードを見つけると、第2レベルのフラグメントのプレースホルダは第2レベルのフラグメントのHTMLコードにより置換することができる。
407で、プロセスは第2レベルのフラグメントが第3レベルのフラグメントを含んでいるかどうかを判断することを継続する。肯定の場合、プロセスはブロック408に継続する。そうでない場合は、第2レベルのフラグメントのためのレンダリングプロセスが終了する。より具体的には、第2レベルのフラグメントのHTMLコードを見つける際に、第2レベルのフラグメントが第3レベルのフラグメントを含んでいるかどうかが判断される。第2レベルのフラグメントが第3層のフラグメントを含んでいない場合、第2レベルのフラグメントのためのレンダリングプロセスが完了し終了する。
具体的には、第2レベルのフラグメントが第3レベルのフラグメントを含む場合、第2レベルのフラグメントの内容が最初にレンダリングされる。さらに、第3レベルのフラグメントのプレースホルダは第2レベルのフラグメント内で第3レベルのフラグメントに対応する位置に生成される。その後、第3レベルのフラグメントがレンダリングされる。第3レベルのフラグメントのレンダリングされたコンテンツは、第2レベルのフラグメント内のプレースホルダに充填される。その結果は第2レベルのフラグメントのHTMLコードである。例として上記の店主情報を使用する。「店主情報」フラグメントの情報は「信頼性」フラグメントを含む。再帰的なレンダリングプロセスの間に、「店主情報」フラグメントが最初にレンダリングされる。プレースホルダは「店主情報」フラグメントにおける「信頼性」フラグメントの位置で生成される。その後、「信頼性」フラグメントがレンダリングされ、「信頼性」フラグメントのレンダリングされたコンテンツは、「店主情報」フラグメント内のプレースホルダに充填される。最後に「店主情報」フラグメントのレンダリング結果が返される。
408で、Nが3より大きい整数である、Nレベルのフラグメントが他のフラグメントを含まないとの判断が得られるまで、プロセスは第3レベルのフラグメントのためのレンダリングを再帰的に実行する。このブロックで、Nが3より大きい整数である、Nレベルのフラグメントが他のフラグメントを含まないとの判断が得られるまで、第1レベルのフラグメントおよび第2レベルのフラグメントのためレンダリングが再帰的に実行される。
図3のブロック305に戻ると、図3のプロセスはウェブページの第1レベルのフラグメントの完全なコンテンツを生成するすべての第1レベルのフラグメントの取得したHTMLコードを結合する。
このブロックでは、第1レベルのフラグメントのレンダリング結果が結合される。レンダリング結果は第1レベルのフラグメントのHTMLを参照する。第1レベルのフラグメントがフラグメントの少なくとも1つのレベルを再帰的に含む場合は、第1レベルのフラグメントのレンダリング結果はフラグメントの少なくとも1つのレベルのHTMLコードを含む。このブロックはウェブページの第1レベルのフラグメントの完全なコンテンツを形成するためにすべてのフラグメントのHTMLコードを結合する。
306で、プロセスはユーザにクライアントのウェブページ上に第1レベルのフラグメントの完全な内容を表示する。第1レベルのフラグメントの生成された完全なコンテンツがユーザのために、クライアントのウェブページ上に表示される。表示された結果はユーザが見ているウェブページのコンテンツである。
この例示的な実施形態はウェブページのネストしたフラグメントキャッシングを可能とするだけではなく、ウェブページのネストしたフラグメントキャッシングが実行されるときに各フラグメントのHTMLコードを再帰的に取得し、このようにユーザにウェブページの完全なコンテンツを表示し既存の技術の欠落を是正する。
第3の例示的実施形態
図6はウェブページのキャッシング処理の第3の例示的方法を示すフローチャートを表す。この例示的実施形態はウェブページのキャッシング処理の方法の適用例として理解することができ、図6中のブロックとして示される次の操作方法を含むことができる。
601で、プロセスはウェブページのリクエストを受信したことに応答してウェブページの第1レベルのフラグメント情報を取得する。
602で、プロセスはコンフィギュレーションサーバ106内の第1レベルのフラグメントのキャッシング情報を検索する。キャッシング情報はフラグメントがキャッシュする必要があるかどうかについての情報、およびキャッシュする必要のあるフラグメントのキャッシング継続時間を含む。
603で、第1レベルのフラグメントが第1レベルのフラグメントのキャッシング情報に基づいて、キャッシュする必要があるかどうかが判断される。肯定の場合、プロセスはブロック604に継続する。そうでない場合、プロセスはブロック605に継続する。
604で、プロセスは第1レベルのフラグメントのフラグメントIDを取得するために、第1レベルのフラグメントのフラグメント名およびフラグメントパラメータのハッシュ計算を実行し、フラグメントIDに基づいて、フラグメントIDに対応する第1レベルのフラグメントのHTMLコードをキャッシングシステム104から検索する。この操作の一環として、第1レベルのフラグメントがキャッシュされている必要があるが、第1レベルのフラグメントに対応するHTMLコードがキャッシングシステム104内で見つからない場合がある。例えば、HTMLコードが第1レベルのフラグメントのためのキャッシング時間に達したとき、または第1レベルのフラグメントのコンテンツの有効期限が切れているときのような状況では見つからない場合がある。各レベルのフラグメントのキャッシング時間を事前に設定することができ、コンフィギュレーションサーバ106に格納することができる。HTMLコードが見つかった場合、プロセスはブロック606に継続する。HTMLコードが見つからない場合、プロセスはブロック605に継続する。
605で、ウェブサーバ102のトランザクションシステム105はフラグメントIDに対応するHTMLコードを見つけることに責任を負うことになる。
606で、第1レベルのフラグメントがキャッシュされる必要があるが、そのフラグメントのHTMLコードがキャッシングシステム104内に存在しないときに、見つけられたHTMLコードおよびフラグメントIDとの対応関係がキャッシングシステムにキャッシュされる。キャッシュする必要がある第1レベルのフラグメントのHTMLコードがキャッシングシステムに格納されていないので、ブロック605が実行された後に見つけられたHTMLコードはキャッシングシステムに保存することができる。第1レベルのフラグメントをキャッシュする必要がない場合は、第1レベルのフラグメントの見つけられたHTMLコードはキャッシングシステムに保存する必要はないかもしれない。
ブロック606はブロック605の後に続くが、ブロック606はキャッシュする必要がある第1レベルのフラグメントのHTMLコードがキャッシングシステムに格納されていない場合に必要に応じて実行されることに留意されたい。したがって、ブロック606はこの例示的実施形態に不可欠のブロックでない場合がある。
607で、所定のネスティング情報に基づいて第1レベルのフラグメントが、第2レベルのフラグメントを含むかどうかが判断される。肯定の場合は、再帰的なレンダリングが第2レベルのフラグメントのために実行される。再帰的なレンダリングは処理されるフラグメントのために、処理されるフラグメントを超えるレベルにあるフラグメントのプレースホルダを生成すること、処理されるフラグメントのフラグメント名およびフラグメントパラメータに基づいて処理されるフラグメントのHTMLコードを取得すること、および処理されるフラグメントのHTMLコードにより処理されるフラグメントのプレースホルダを置換することを含むことができる。
608で、プロセスは第2レベルのフラグメントが第3レベルのフラグメントを含んでいるかどうかを判断することを継続する。肯定の場合は、Nが3より大きい整数である、Nレベルのフラグメントが他のフラグメントを含んでいないと判断されるまで、再帰的なレンダリングが第3レベルのフラグメントのために実行される。それ以外の場合は、レンダリングプロセスが終了する。
この例示的実施形態のブロック607および608は、すでに前述の例示的実施形態に詳細に説明されている。この例示的実施形態の実装は前述の例示的な実施形態の実装に相当するため、ブロック607および608のさらなる詳細については説明しない。
609で、特定のフラグメントのコンテンツが変化するときに、そのフラグメントのフラグメントIDはそのフラグメントのフラグメント名およびフラグメントパラメータのハッシュ計算を実行することにより取得することができる。
610で、プロセスがフラグメントIDに基づいてキャッシングシステムからフラグメントIDに対応したHTMLコードを見つけて削除する。
この例示的実施形態では、ブロック609および610は自発的にキャッシングシステムに格納されているフラグメントのHTMLコードを無効にするための機能として実装されてもよい。自発的に無効にするとは次のように解釈されてもよい:特定のフラグメントのキャッシング時間がまだ満了していないが、フラグメントの対応するHTMLコードがブロック609および610を介してキャッシングシステムから削除されてもよい。
実用的な適用の特定の適用シナリオでは、フラグメントのHTMLコードは所定のキャッシング時間の前に無効にする必要があるかもしれない。例として「店主情報」フラグメントを使用する。「店主情報」フラグメントのキャッシング時間が1日であり、「店主情報」がその日の終わりの前に変更されてもよい。この状況では、キャッシングシステムに格納されているフラグメントのHTMLコードを変更することができ、以前にキャッシュされた内容を削除することができる。
ブロック609および610から、フラグメントのHTMLコードを無効にするときに、キャッシングシステムからのフラグメントIDに対応するHTMLコードを削除するためのフラグメントIDとして機能することができる32桁の結果を得るために、ハッシュ計算はフラグメント名およびフラグメントパラメータを使用して実行することができることに留意されたい。
611で、プロセスはキャッシングシステム内のHTMLコード以外のレスポンスヘッダの値をキャッシュする。
本開示のこの例示的実施形態では、ヘッダがキャッシュされ、特定のフラグメントのHTMLコードがキャッシングシステムに追加されたときに、特定のトランザクションはHTMLコードに加えてレスポンスヘッダに含まれる情報をキャッシュすることを要求する場合がある。レスポンスヘッダの値をキャッシュせずにHTMLコードをキャッシュすることにより、トランザクションの正常な操作を妨害することがある。例えば、「製品の詳細」ウェブページにアクセスするときに、対応する言語のバージョン情報が存在する場合がある。この言語のバージョン情報が「_lang=gbk」の形式で応答ヘッダに保存されることがある。「製品の詳細」ウェブページがクライアントに対応する結果を返した場合「_lang=gbk」が返される。このように、特定のフラグメントのHTMLコードは別のウェブページで同じであることが保証されてもよい。
このブロックが実装されるとき、現在トランザクションシステムによって使用され、キャッシュされる必要があるレスポンスヘッダの値は事前に構成されてもよい。構成情報およびフラグメントの関連情報はキャッシングシステムで一緒に保存することができる。キャッシングに際し、ユーザが要求したウェブページのフラグメントがキャッシングシステム内で対応するレスポンスヘッダの値を有している場合、HTMLコードが返されるときに対応するレスポンスヘッダの値がさらに返されることがある。
この例示的実施形態では、キャッシングシステムは分散サーバクラスタがキャッシングシステムとしてのサーバの数を増やすために水平展開アプローチを採用することができる分散サーバクラスタを介して実装されてもよい。サーバのいずれかがフラグメントのHTMLコードをあらかじめ格納しておくような場合、分散型クラスタの他のサーバにはHTMLコードを格納する必要がないかもしれない。さらに、例示的な実施形態に記載の技術方式はレベルの数を制限せずにフラグメントの再帰的なネスティングを可能にすることができ、各フラグメントごとに異なるキャッシング時間を設定することができる。さらに、ヘッダのためのキャッシングが必要な場合は、フラグメントのHTMLコードがキャッシュされるときに、特定のフラグメントのレスポンスヘッダで必要な値がキャッシュされてもよい。
第4の例示的実施形態
図7はウェブページのキャッシング処理の第4の例示的な方法を示すフローチャートを表す。この例示的実施形態はウェブページのキャッシング処理の方法の適用例として理解することができ、図7中のブロックとして示される次の操作方法を含むことができる。
701で、ウェブページに対するリクエストが受信される。
702で、要求されたウェブページのページキャッシングを実行するかどうかが判断される。はいの場合、プロセスはブロック703に継続する。そうでない場合、プロセスはブロック704に継続する。より具体的に、この例示的実施形態ではウェブページのキャッシングを取り扱うためのプロセスについて説明する。前述の3つの例示的な実施形態に記載の技術方式は、ウェブページをキャッシュする必要がないシナリオについて説明するが、ウェブページの特定のフラグメントをキャッシュする必要がある。この例示的な実施形態はウェブページがページ全体のキャッシングをされる必要があるかどうかを判断する。ユーザによって要求されたウェブページをキャッシュする必要がある場合は、ウェブページをその後の処理で直接レンダリングすることができる。ユーザの要求したウェブページをキャッシュする必要がない場合は、レンダリングプロセスはウェブページの様々なフラグメントに対して実行することができる。
703で、プロセスはウェブページのコンテンツを取得するためにウェブページのレンダリングを直接実行する。ウェブページのHTMLコードをウェブページ全体をレンダリングすることにより直接取得することができる。実用的な適用では、32桁のウェブIDがウェブページ名およびウェブページパラメータのハッシュ計算を実行することにより取得することができる。このウェブIDに基づいて、ウェブページの対応するHTMLコードはキャッシングシステムから見つけることができる。HTMLコードを見つけることができない場合は、対応するHTMLコードをデータベースやインターネットから検索することができる。ウェブページの具体的なコンテンツは返された検索結果に基づいて取得することができる。ウェブページのパラメータはウェブサーバがユーザによって要求されたウェブページに基づいて、キャッシング装置に送信するパラメータを参照することができる。例えば、ユーザがウェブページを検索したときに、ウェブページのURLはパラメータであることの違いのみを有しているのと同じである。例えば:
www.xxx.com/aaa.htm ?user=[x]&userName=[x]。
704で、プロセスはウェブページのウェブページ解析を実行する。ウェブページ解析はウェブページの第1レベルのフラグメント情報を取得すること、引き続き第1レベルのフラグメント情報に基づいて第1レベルのフラグメントのためのフラグメント解析を実行することを含むことができる。このフラグメント解析プロセスは第1レベルのフラグメントの事前設定ネスティング情報に基づいて第1レベルのフラグメントをレンダリングすることを含む。ネスティング情報は現在のフラグメントが他のフラグメントを含んでいるかどうかについての情報を含む。ウェブページ解析はウェブページの第1レベルのフラグメントの完全なコンテンツを生成するためにレンダリングのレンダリング結果を結合することを含む。
このブロックはウェブページがキャッシュされる必要のないシナリオに関係するが、いくつかのフラグメントをキャッシュする必要があるかもしれない。このシナリオの下での実装のプロセスは前述の3つの例示的な実施形態で詳細に説明されているので、本明細書では実装プロセスを繰り返し説明しない。
この例示的な実施形態はウェブページのキャッシングをすること、ウェブページはキャッシュする必要があるがフラグメントはキャッシュする必要がない状況か、あるいはウェブページはキャッシュする必要はないがいくつかのフラグメントはネストしたキャッシングを受ける必要がある状況のいずれかに対応するレンダリング処理を実装することを実行することができる。
第5の例示的実施形態
図8はウェブページキャッシングの処理の第5の例示的方法を示すフローチャートを表す。この例示的実施形態はウェブページのキャッシング処理の方法の適用例として理解することができ、図8中のブロックとして示される次の操作方法を含むことができる。
801で、ウェブページに対するリクエストが受信される。
802で、プロセスはウェブページのURLを取得し、ウェブページのURLに基づいて所定のキャッシング情報を見つけることができる。キャッシング情報にはウェブページがページ全体のキャッシングを受ける必要があるかどうかについての情報を含むことができる。ページ全体のキャッシングが必要な場合は、プロセスはブロック803に継続する。ページ全体のキャッシングが必要とされない場合、プロセスはブロック805に継続する。
この例示的実施形態では、コンフィギュレーションサーバ106はウェブページのキャッシング情報を格納することができる。さらに、コンフィギュレーションサーバ106は格納されたキャッシング情報を更新し、キャッシング装置103に更新したキャッシング情報を送信することができる。キャッシング装置が自発的にコンフィギュレーションサーバから対応するキャッシング情報を入手することができる。キャッシング情報はウェブページがページ全体のキャッシングを受ける必要があるかどうかについての情報を含む。
803で、プロセスはウェブページのURLおよびウェブページのパラメータから32桁のウェブページIDを生成する。1つの実装では、このブロックは32桁のウェブページIDを生成するためにウェブページのURLおよびウェブページパラメータのハッシュ計算を実行する。プロセスはブロック804に継続する。
804で、プロセスはキャッシングシステムからウェブページのIDに基づいて対応するウェブページのHTMLコードを検索する。ブロック803で取得された32桁のウェブページIDはキャッシングシステムから対応するウェブページのHTMLコードを検索するためのキーワードとして使用することができる。1つの実装では、ウェブサーバ102のトランザクションシステム105は、ウェブページIDに対応したHTMLコードを見つけるための責任を負うことになる。
805で、プロセスはキャッシングシステムに見つけられたHTMLコードおよびウェブページIDとの対応関係をキャッシュする。このブロックでは、キャッシュする必要のあるウェブページがキャッシングシステムで見つけることができない場合、HTMLコードと同様に、HTMLコードと見つけられたウェブページIDとの対応関係はブロック805の後でキャッシングシステムに格納される。
ウェブページのキャッシング中に、ウェブページをキャッシュする必要があり、ウェブページのキャッシング時間が満了していなく、ウェブページのHTMLコードが更新されている場合、ウェブページは自発的に無効とされている可能性があることに留意されたい。自発的に無効とする、および対応する実装の意味は、前述した実施形態に説明されており、したがって繰り返し本明細書では説明しない。
説明の便宜上、上記の種々の実施形態は一連の動作として表されている。当業者であれば本開示は上記の動作の順序によって解釈されないことを理解すべきである。本開示に基づいて、特定のブロックは異なる順序で、または並列に実行することができる。また、当業者であれば本明細書に記載の例示的な実施形態は好ましい実施形態であることを理解すべきである。そこに関わる動作およびモジュールは本開示のために必要不可欠ではない。
第6の例示的実施形態
ウェブページキャッシングの第1の例示的な方法に対応するものとして、本開示は図9に示すように第6の実施形態によるウェブページキャッシング処理の装置をさらに提供する。装置はハードウェアおよび/またはソフトウェアで実装することができる1つ以上の機能コンポーネントを含むことができる。装置はウェブページのリクエストを受信したことに応答してウェブページの第1レベルのフラグメント情報を取得する取得モジュール901を含む。
フラグメント解析モジュール902はまた、取得モジュール901と連通して提供され、取得モジュール901によって取得された第1レベルのフラグメント情報に基づいて、第1レベルのフラグメントのためのフラグメント解析プロセスを実行するように構成される。モジュール902によって実行されるフラグメント解析プロセスは、第1レベルのフラグメントの所定のネスティング情報に基づいて第1レベルのフラグメントをレンダリングすることを含み、ネスティング情報は現在のフラグメントが他のフラグメントを含んでいるかどうかについての情報を含む。
結合およびアセンブリモジュール903はフラグメント解析モジュール902と連通して提供されており、ウェブページの第1レベルのフラグメントの完全なコンテンツを生成するレンダリングのレンダリング結果を結合するように構成されている。
ウェブページのフラグメントはネストした形でキャッシュされている場合、この例示的な実施形態では、再帰的にウェブページの各フラグメントのHTMLコードを取得し、ウェブページの第1レベルのフラグメントを生成するHTMLコードを結合することができる。これはウェブページのフラグメントのネストしたキャッシング、およびフラグメントのネストしたキャッシング後の再帰的なレンダリングを実行することにより既存の技術の欠点を解決する。
第7の例示的実施形態
ウェブページのキャッシングの第2の例示的な方法に対応するものとして、本開示は図10に示す第7の実施形態によるウェブページキャッシング処理の装置をさらに提供する。装置はハードウェアおよび/またはソフトウェアで実装することができる1つまたは複数の機能モジュールを含むことができる。装置はウェブページのユニフォームリソースロケータ(URL)を取得するためのURL収集サブモジュール1001を含む。テンプレート検索サブモジュール1002はウェブページのURLに基づいてウェブページのテンプレートを検索および取得するために提供されている。フラグメント情報取得サブモジュール1003はウェブページのテンプレートの第1レベルのフラグメントに対応するフラグメント名およびフラグメントパラメータを取得するために提供される。装置は第1レベルのフラグメントのフラグメント名およびフラグメントパラメータに基づいて第1レベルのフラグメントのHTMLコードおよびネスティング情報を引き続き取得するために使用される、ネスティング情報収集サブモジュール1004をさらに含む。
本装置はまた、第1レベルのフラグメントがネスティング情報に基づいて第2レベルのフラグメントを含んでいるかどうかを判断するための再帰的なレンダリングサブモジュール1005を実装してもよい。その場合は、サブモジュール1005は第2レベルのフラグメントのための再帰的なレンダリングを実行する。再帰的なレンダリングは、処理されるフラグメントを超えるレベルのフラグメント内に処理されるフラグメントのためのプレースホルダを生成すること、および処理されるフラグメントのフラグメント名およびフラグメントパラメータに基づいて処理されるフラグメントのHTMLコードを取得することを含む。再帰的なレンダリングは処理されるフラグメントのHTMLコードにより処理されるフラグメントのプレースホルダを置換すること、および第2レベルのフラグメントが第3レベルのフラグメントを含んでいるかどうかを引き続き判断することをさらに含む。第2のフラグメントが第3レベルのフラグメントを含む場合は、Nが3より大きい整数である、Nレベルフラグメントがフラグメントを含んでいないと判断されるまで、再帰的なレンダリングは第3レベルのフラグメントのために実行される。第2レベルのフラグメントが第3レベルのフラグメントを含まない場合、レンダリングは終了する。
クライアント表示サブモジュール1006がクライアントのウェブページの第1レベルのフラグメントの完全なコンテンツを表示するためにさらに提供されてもよい。
図11はネスティング情報収集サブモジュール1004の1つの実装を示す。この実装では、キャッシング情報検索サブモジュール1101はコンフィギュレーションサーバ内で第1レベルのフラグメントのキャッシング情報を検索するために使用され、キャッシング情報はフラグメントをキャッシュする必要があるかどうかについての情報やキャッシュする必要のあるフラグメントのキャッシング継続時間を含む。判断サブモジュール1102はまた、現在時刻がキャッシング継続時間に達する前に第1レベルのフラグメントのキャッシング情報に基づいて第1レベルのフラグメントをキャッシュする必要があるかどうかを判断するために実装されている。最初のHTMLコード検索サブモジュール1103は判断サブモジュール1102の結果が肯定であるとき、第1レベルのフラグメントのフラグメントIDを取得するために第1レベルのフラグメントのフラグメント名およびフラグメントパラメータでハッシュ計算を実行するため、およびキャッシングシステムからフラグメントIDに対応する第1レベルのフラグメントのHTMLコードを見つけるために使用される。第2のHTMLコード検索サブモジュール1104はフラグメントIDに対応するHTMLコードを見つけるために、ウェブサーバのトランザクションシステムをトリガするために使用される。
この例示的な実施形態はウェブページのネストしたフラグメントキャッシングを可能にするだけでなく、ウェブページのネストしたフラグメントキャッシングが実行されるときに再帰的に各フラグメントのHTMLコードを取得し、このようにユーザにウェブページの完全なコンテンツを表示し既存の技術の欠落を是正する。
第8の例示的実施形態
ウェブページのキャッシングの第3の例示的方法に対応するものとして、本開示は図12に示すように第8の実施形態によるウェブページキャッシング処理の装置をさらに提供する。この装置は見つけられたHTMLコードおよびフラグメントIDの対応関係をキャッシングシステム内にキャッシュするために使用される、キャッシングモジュール1201を含んでもよい。ハッシュ計算モジュール1202はまたフラグメントのコンテンツが変化したときにフラグメントのフラグメントIDを取得するために、フラグメントのフラグメント名やフラグメントパラメータでハッシュ計算を実行するために提供される。削除モジュール1203はフラグメントIDに基づいてキャッシングシステムからフラグメントIDに対応したHTMLコードを検索して削除するために使用される。キャッシングモジュール1204はまたキャッシングシステム内のフラグメントのHTMLコードに対応したヘッダの値をキャッシュするために含まれてもよい。
第9の例示的実施形態
ウェブページのキャッシングの第4の例示的方法に対応するものとして、本開示は図13に示す第9の実施形態によるウェブページキャッシング処理の装置をさらに提供する。この装置はウェブページのリクエストを受信するために使用されるウェブページリクエスト受信モジュール1301を含んでもよい。判断モジュール1302は要求されたウェブページのページキャッシングを実行するかどうかを判断するために含まれる。直接レンダリングモジュール1303は判断モジュール1302の結果が肯定である場合に、ウェブページのコンテンツを取得するためにウェブページを直接レンダリングするために使用される。ネストしたフラグメントキャッシング装置1304は判断モジュール1302の結果が肯定でない場合は、ウェブページの第1レベルのフラグメント情報を取得するために使用される。ネストしたフラグメントキャッシング装置1304は引き続き第1レベルのフラグメント情報に基づいて第1レベルのフラグメントのためのフラグメント解析プロセスを実行する。フラグメント解析プロセスは第1レベルのフラグメントの所定のネスティング情報に基づいて第1レベルのフラグメントをレンダリングすることを含み、ネスティング情報は現在のフラグメントが他のフラグメントを含んでいるかどうかについての情報、およびウェブページの第1レベルのフラグメントの完全なコンテンツを生成するためにレンダリングのレンダリング結果を結合することを含む。
第10の例示的実施形態
ウェブページキャッシングの第5の例示的方法に対応するものとして、本開示は図14に示す第10の実施形態によるウェブページキャッシング処理の装置をさらに提供する。図14に示す装置は図13に関連して上述の機能コンポーネントの多くを採用しているが、選択されたコンポーネントに関するより詳細な情報を提供する。
図14の装置はウェブページのリクエストを受信するためのウェブページリクエスト受信モジュール1301を含んでいてもよい。装置はウェブページのURLを取得するためのキャッシング情報収集サブモジュール1401およびURLに基づいて所定のキャッシング情報を見つけるための検索サブモジュール1402を含む判断モジュール1302をさらに有していてもよい。キャッシング情報はウェブページのページキャッシングを実行するかどうかについての情報およびウェブページのキャッシング継続時間についての情報を含む。
この実装では、直接レンダリングモジュール1303はキャッシング継続時間の満了前にウェブページのURLおよびウェブページパラメータから32桁のウェブページIDを生成するためのウェブページID生成モジュール1403を含むことができる。モジュール1303はまたキャッシングシステムからウェブページIDに対応したHTMLコードを検索するための最初のHTMLコード検索モジュール1404を実装することができる。
直接レンダリングモジュール1303は、図13に関連して上述したように、ネストしたフラグメントキャッシング装置1304にさらに結合されている。
本装置はウェブページIDに対応したHTMLコードを見つけるためにウェブサーバのトランザクションシステムをトリガするための第2のHTMLコード検索モジュール1405、およびキャッシングシステム内に見つけられたHTMLコードおよびウェブページIDとの対応関係をキャッシュするためのキャッシングモジュール1406をさらに含むことができる。
第11の例示的実施形態
ウェブページキャッシングの方法および装置に対応するものとして、本開示は第10の実施形態によるウェブページキャッシング処理のシステムをさらに提供する。システムは図1に示すクライアントおよびウェブサーバを含むことができる。このような状況の中で、クライアント101はウェブサーバ102にウェブページのリクエストを送信するように構成されている。
ウェブサーバ102はキャッシング装置103を含む。キャッシング装置103は1つまたは複数の機能モジュールを実装する。一例として、キャッシング装置は図9に示すモジュールを実装している。これらのモジュールは、エレクトロニクス、ファームウェア、および/またはメモリに格納されプロセッサによって実行されるソフトウェアとして実装することができる。
より具体的には、キャッシング装置103はウェブページのリクエストを受信したことに応答してウェブページの第1レベルのフラグメント情報を取得するように構成された収集モジュール901を含む。フラグメント解析モジュール902は第1レベルのフラグメント情報に基づいて、第1レベルのフラグメントのためにフラグメント解析プロセスを実行するために提供されている。フラグメント解析プロセスは第1レベルのフラグメントの所定のネスティング情報に基づいて、第1レベルのフラグメントをレンダリングすることを含み、ネスティング情報は現在のフラグメントが他のフラグメントを含んでいるかどうかについての情報を含む。結合およびアセンブリモジュール903はウェブページの第1レベルのフラグメントの完全なコンテンツを生成するレンダリングのレンダリング結果を結合するように構成されている。
本開示はウェブページキャッシング処理のさらに別の例示的なシステムを提供する。図1に示すように、システムはクライアントおよびウェブサーバを含むことができ、クライアントがウェブサーバからウェブページを要求することができる。この実装では、ウェブサーバは図13に示すモジュールを実装したキャッシング装置を含む。これらのモジュールはエレクトロニクス、ファームウェア、および/またはメモリに格納されプロセッサによって実行されるソフトウェアとして実装することができる。
したがって、この実装では、キャッシング装置はウェブページのリクエストを受信するためのウェブページリクエスト受信モジュール1301、および要求されたウェブページのページキャッシングを実行するかどうかを判断するための判断モジュール1302を含む。直接レンダリングモジュール1303は判断モジュールの結果が肯定である場合に、ウェブページのコンテンツを取得するためにウェブページを直接レンダリングするために含まれる。本装置は判断モジュールの結果が肯定でない場合に、ウェブページの第1レベルのフラグメント情報を取得するネストしたフラグメントキャッシング装置1304をさらに実装し、引き続き第1レベルのフラグメント情報に基づいて第1レベルのフラグメントのためのフラグメント解析プロセスを実行する。フラグメント解析プロセスは第1レベルのフラグメントの所定のネスティング情報に基づいて、第1レベルのフラグメントをレンダリングすることを含み、ネスティング情報は現在のフラグメントが他のフラグメントを含んでいるかどうかについての情報を含む。ネストしたフラグメントキャッシング装置1304はウェブページの第1レベルのフラグメントの完全なコンテンツを生成するレンダリングのレンダリング結果をさらに結合する。
様々な例示的な実施形態が漸次本開示で説明されていることに留意されたい。各実施形態の主なポイントは他の例示的な実施形態とは異なる場合があり、例示的な実施形態の同一または類似の部分は互いに参照することができる。例示的な装置の説明は、これらの例示的な装置は例示的な方法の対応するものの実施形態に類似しているので比較的単純である。関連する詳細は例示的な方法の実施形態で見つけることができる。
最後に、本明細書内での「第1」および「第2」のような任意の関連性用語は、別のエンティティから1つのエンティティを、または別の操作から1つの操作を区別することを意味していることが指摘されるべきであるが、任意の実世界での関係の存在、またはこれらのエンティティまたは操作間の順序を必ずしも要求する、もしくは意味するものではない。さらに、「含む」、「有している」、または任意の他の変形などの用語は非排他的に「備える」を包含することを意図している。したがって、個別に特徴の集合を含むプロセス、方法、物品またはデバイスはそれらの特徴を含むことができるだけでなく、表示されていない他の特徴、またはこれらのプロセス、方法、物品またはデバイスのいずれかに固有の特徴を含むことができる。任意のさらなる制限を受けることなく、「...を含む」といったフレーズ内で定義された特徴はその特徴を列挙するプロセス、方法、物品またはデバイスが他の同等の特徴を有することができる可能性を除外するものではない。
ウェブページキャッシング処理の方法、装置およびシステムは本開示で詳細に説明された。例示的な実施形態は本開示において本発明の概念および実装を説明するために用いられる。例示的な実施形態は本発明の方法および中心的な概念の理解を深めるためのみに使用される。この開示の概念に基づいて、当業者は例示的な実施形態および応用分野を変更することができる。概していえば、本開示の内容は開示された方法および装置に限定するものと解釈すべきではない。

Claims (20)

  1. ウェブページのネストしたフラグメントキャッシングを処理する方法であって、
    ウェブページのリクエストを受信したことに応答して、前記ウェブページの第1レベルのフラグメント情報を取得することと、
    引き続き前記第1レベルのフラグメント情報に基づいて、第1レベルのフラグメントのためのフラグメント解析プロセスを実行することであって、前記フラグメント解析プロセスは前記第1レベルのフラグメントの所定のネスティング情報に基づいて、前記第1レベルのフラグメントをレンダリングすることを含み、前記ネスティング情報は現在のフラグメントが他のフラグメントを含んでいるかどうかについての情報を含む、実行することと、
    前記フラグメント解析プロセスの結果を結合して、前記ウェブページの前記第1レベルのフラグメントの完全なコンテンツを生成することと、
    を含む、方法。
  2. 前記ウェブページの第1レベルのフラグメント情報を取得することは、
    前記ウェブページのユニフォームリソースロケータ(URL)を取得することと、
    前記ウェブページの前記URLに基づいて前記ウェブページのテンプレートを見つけることと、
    前記ウェブページの前記テンプレートの前記第1レベルのフラグメントに対応するフラグメント名およびフラグメントパラメータを取得することと、
    を含む、請求項1に記載の方法。
  3. 引き続き前記第1レベルのフラグメント情報に基づいて、第1レベルのフラグメントのためのフラグメント解析プロセスを実行することは、
    引き続き前記第1レベルのフラグメントのフラグメント名およびフラグメントパラメータに基づいて前記第1レベルのフラグメントのHTMLコードおよびネスティング情報を取得することと、
    前記ネスティング情報に基づいて第1レベルのフラグメントが第2レベルのフラグメントを含んでいるかどうかを判断し、肯定の場合、再帰的に前記第2レベルのフラグメントをレンダリングすることと
    を含む、請求項1に記載の方法。
  4. 引き続き前記第1レベルのフラグメントのHTMLコードおよびネスティング情報を取得することは、
    コンフィギュレーションサーバから前記第1レベルのフラグメントのキャッシング情報を検索することであって、前記キャッシング情報はフラグメントをキャッシュすべきかどうかについての情報を含む、検索することと、
    前記キャッシング情報に基づいて前記第1レベルのフラグメントをキャッシュすべきかどうかを判断し、その結果、
    肯定の場合は、前記第1レベルのフラグメントのフラグメント名およびフラグメントパラメータのハッシュ計算を実行することにより、前記第1レベルのフラグメントのフラグメント識別子IDを取得し、前記フラグメントIDに基づいてキャッシングシステムから前記フラグメントIDに対応する前記第1レベルのフラグメントのHTMLコードを検索し、
    肯定でない場合は、ウェブサーバのトランザクションシステムによって、前記フラグメントIDに対応する前記HTMLコードを検索することと、
    を含む、請求項3に記載の方法。
  5. 前記第1レベルのフラグメントおよび前記キャッシングシステムが前記第1レベルのフラグメントの前記HTMLコードを含まないときに、前記方法は、
    前記ウェブサーバにより、前記フラグメントIDに対応する前記HTMLコードを見つけることと、
    前記見つけられたHTMLコードおよび前記フラグメントIDとの対応関係を前記キャッシングシステム内にキャッシングすることと、
    をさらに含む、請求項4に記載の方法。
  6. 前記キャッシング情報は前記キャッシュされるフラグメントのキャッシング継続時間の情報をさらに含み、前記方法は、
    前記キャッシング継続時間内にフラグメントのコンテンツが変更される場合、前記変更されたフラグメントのフラグメント名およびフラグメントパラメータのハッシュ計算を実行することにより前記変更されたフラグメントのフラグメントIDを取得することと、
    前記フラグメントIDに基づいて前記キャッシングシステムから前記フラグメントIDに対応する前記HTMLコードを見つけて削除することと、
    をさらに含む、請求項4に記載の方法。
  7. ヘッダがキャッシュされる場合、前記方法は、
    前記フラグメントの前記HTMLコードに対応する前記ヘッダの値を前記キャッシングシステム内にキャッシングすること、
    をさらに含む、請求項4に記載の方法。
  8. 前記再帰的にレンダリングすることが、
    処理されるフラグメントのために、前記処理されるフラグメントレベルを超えるフラグメント内にプレースホルダを生成することと、
    前記処理されるフラグメントのフラグメント名およびフラグメントパラメータに基づいて、前記処理されるフラグメントのHTMLコードを取得することと、
    前記処理されるフラグメントの前記HTMLコードにより前記処理されるフラグメントの前記プレースホルダを置換することと、
    を含む、請求項3に記載の方法。
  9. 引き続きフラグメント解析プロセスを実行することは、前記第2レベルのフラグメントが第3レベルのフラグメントを含んでいるかどうかを判断することと、肯定の場合に、Nが3より大きい整数である、Nレベルのフラグメントが他のフラグメントを含んでいないと判断されるまで再帰的に前記第3レベルのフラグメントをレンダリングすることと、をさらに含む、請求項3に記載の方法。
  10. ウェブページキャッシングを処理する方法であって、
    ウェブページへのリクエストを受信することと、
    前記ウェブページをキャッシュするかどうかを判断することと、
    前記ウェブページがキャッシュされるべきである場合に、前記ウェブページのコンテンツを取得するために前記ウェブページを直接レンダリングすることと、
    前記ウェブページがキャッシュされるべきでない場合に、前記ウェブページの第1レベルのフラグメント情報を取得し、引き続き前記第1レベルのフラグメント情報に基づいて、第1レベルのフラグメントのためのフラグメント解析プロセスを実行することと、を含み、前記フラグメント解析プロセスは、
    現在のフラグメントが他のフラグメントを含んでいるかどうかについての情報を含む、前記第1レベルのフラグメントの事前設定ネスティング情報に基づいて前記第1レベルのフラグメントをレンダリングすることと、
    前記解析プロセスの結果を結合して、前記ウェブページの前記第1レベルのフラグメントの完全なコンテンツを生成することと、
    を含む、方法。
  11. 前記ウェブページをキャッシュするかどうかを判断することは、
    前記ウェブページのURLを取得することと、
    前記URLに基づいて、ページキャッシングが前記ウェブページに適切であるかどうかについての情報、および前記ウェブページのキャッシング継続時間の情報を含む事前設定キャッシング情報を見つけることと、
    を含む、請求項10に記載の方法。
  12. 前記ウェブページを直接レンダリングすることは、
    前記キャッシング継続時間の満了前に、前記ウェブページの前記URLおよびウェブページパラメータから32桁のウェブページIDを生成することと、
    前記ウェブページIDに基づいてキャッシングシステムから対応するHTMLコードを見つけることと、
    を含む、請求項10に記載の方法。
  13. 前記HTMLコードが見つからない場合に、ウェブサーバのトランザクションシステムにより、前記ウェブページIDに対応する前記HTMLコードを見つけることをさらに含む、請求項12に記載の方法。
  14. ウェブページのネストしたフラグメントキャッシングのための装置であって、
    前記ウェブページのリクエストを受信したことに応答してウェブページの第1レベルのフラグメント情報を取得するように構成された収集モジュールと、
    第1レベルのフラグメント情報に基づいて、第1レベルのフラグメントのためのフラグメント解析プロセスを実行するように構成されたフラグメント解析モジュールであって、前記フラグメント解析プロセスは、前記第1レベルのフラグメントの所定のネスティング情報に基づいて前記第1レベルのフラグメントをレンダリングすることを含み、前記ネスティング情報は現在のフラグメントが他のフラグメントを含んでいるかどうかについての情報を含む、フラグメント解析モジュールと、
    前記レンダリングのレンダリング結果を結合して、前記ウェブページの前記第1レベルのフラグメントの完全なコンテンツを生成するように構成された、結合およびアセンブリモジュールと、
    を備える、装置。
  15. 前記収集モジュールは前記ウェブページのユニフォームリソースロケータ(URL)を取得し、前記ウェブページの前記URLに基づいて前記ウェブページのテンプレートを見つけるようにさらに構成され、前記取得モジュールは、前記ウェブページの前記テンプレート内で前記第1レベルのフラグメントに対応するフラグメント名およびフラグメントパラメータを取得する、請求項14に記載の装置。
  16. 前記フラグメント解析モジュールは、引き続き前記第1レベルのフラグメントのフラグメント名およびフラグメントパラメータに基づいて、前記第1レベルのフラグメントのHTMLコードおよびネスティング情報を取得し、前記ネスティング情報に基づいて第1レベルのフラグメントが第2レベルのフラグメントを含んでいるかどうかを判断するように構成されている、請求項14に記載の装置。
  17. ウェブページをキャッシュする装置であって、
    ウェブページのリクエストを受信するように構成されたウェブページリクエスト受信モジュールと、
    前記要求されたウェブページのページキャッシングを実行するかどうかを判断するように構成された判断モジュールと、
    前記判断モジュールがウェブキャッシングを実行すると判断した場合に、前記ウェブページのコンテンツを取得するために前記ウェブページを直接レンダリングするように構成された直接レンダリングモジュールと、
    ネストしたフラグメントキャッシング装置であって、
    前記判断モジュールがウェブキャッシングを実行しないと判断した場合、前記ウェブページの第1レベルのフラグメント情報を取得し、
    引き続き前記第1レベルのフラグメント情報に基づいて、第1レベルのフラグメントのためのフラグメント解析プロセスであって、現在のフラグメントが他のフラグメントを含んでいるかどうかについての情報を含む、前記第1レベルのフラグメントの所定のネスティング情報に基づいて、前記第1レベルのフラグメントをレンダリングすることを含む、フラグメント解析プロセスを実行し、
    前記レンダリングのレンダリング結果を結合して、前記ウェブページの前記第1レベルのフラグメントの完全なコンテンツを生成するように構成された、ネストしたフラグメントキャッシング装置と、
    を備える、装置。
  18. 前記判断モジュールは、前記ウェブページのURLを取得し、前記URLに基づいて事前設定キャッシング情報を見つけるように構成され、前記キャッシング情報はページキャッシングが前記ウェブページに対して適切であるかどうかについての情報、および前記ウェブページのキャッシング継続時間の情報を含む、請求項17に記載の装置。
  19. 前記直接レンダリングモジュールは、前記キャッシング継続時間の満了前に、前記ウェブページの前記URLおよびウェブページパラメータから32桁のウェブページIDを生成し、前記ウェブページIDに基づいてキャッシングシステムから対応するHTMLコードを見つけるように構成されている、請求項17に記載の装置。
  20. 前記直接レンダリングモジュールが前記HTMLコードを見つけない場合に、前記装置はウェブサーバのトランザクションシステムにアクセスすることにより前記ウェブページIDに対応したHTMLコードを見つける、請求項19に記載の装置。
JP2013519708A 2010-07-12 2011-07-06 ウェブページのネストしたフラグメントキャッシングを処理する方法および装置 Active JP5826266B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
CN201010225186.2 2010-07-12
CN2010102251862A CN102331985B (zh) 2010-07-12 2010-07-12 网页页面的分片嵌套缓存的处理方法和装置
PCT/US2011/043071 WO2012009191A1 (en) 2010-07-12 2011-07-06 Method and apparatus of processing nested fragment caching of a web page

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2015202188A Division JP6091579B2 (ja) 2010-07-12 2015-10-13 ウェブページのネストしたフラグメントキャッシングを処理する方法および装置

Publications (2)

Publication Number Publication Date
JP2013537665A true JP2013537665A (ja) 2013-10-03
JP5826266B2 JP5826266B2 (ja) 2015-12-02

Family

ID=45469760

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2013519708A Active JP5826266B2 (ja) 2010-07-12 2011-07-06 ウェブページのネストしたフラグメントキャッシングを処理する方法および装置
JP2015202188A Active JP6091579B2 (ja) 2010-07-12 2015-10-13 ウェブページのネストしたフラグメントキャッシングを処理する方法および装置

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2015202188A Active JP6091579B2 (ja) 2010-07-12 2015-10-13 ウェブページのネストしたフラグメントキャッシングを処理する方法および装置

Country Status (6)

Country Link
US (2) US9195638B2 (ja)
EP (1) EP2593882B1 (ja)
JP (2) JP5826266B2 (ja)
CN (1) CN102331985B (ja)
HK (1) HK1161924A1 (ja)
WO (1) WO2012009191A1 (ja)

Families Citing this family (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120131445A1 (en) * 2010-11-23 2012-05-24 International Business Machines Corporation Template-based content creation
US8972848B2 (en) 2010-11-23 2015-03-03 International Business Machines Corporation Document renewal and translation
CN103455478A (zh) * 2012-05-21 2013-12-18 腾讯科技(深圳)有限公司 加速网页访问的方法和装置
US11233841B2 (en) * 2013-03-15 2022-01-25 Yottaa, Inc. Systems and methods for configuration-based optimization by an intermediary
CN103366019B (zh) * 2013-08-06 2016-09-28 飞天诚信科技股份有限公司 一种基于iOS设备的网页拦截方法和设备
US10984175B2 (en) 2013-08-09 2021-04-20 Yottaa Inc. Systems and methods for dynamically modifying a requested web page from a server for presentation at a client
US9870349B2 (en) * 2013-09-20 2018-01-16 Yottaa Inc. Systems and methods for managing loading priority or sequencing of fragments of a web object
CN103605514B (zh) * 2013-11-11 2017-11-21 北京奇虎科技有限公司 一种前端模板的处理方法及装置
CN103870280B (zh) * 2014-03-21 2017-05-17 上海新炬网络技术有限公司 基于flex与jsp的网页无缝结合处理方法
US9673998B2 (en) * 2014-05-15 2017-06-06 Futurewei Technologies, Inc. Differential cache for representational state transfer (REST) API
CN106959975B (zh) * 2016-01-11 2021-06-04 阿里巴巴(中国)有限公司 一种转码资源缓存处理方法、装置及设备
CN105808736B (zh) * 2016-03-10 2019-09-03 微梦创科网络科技(中国)有限公司 一种榜单数据更新方法、装置及系统
CN107315646B (zh) * 2016-04-27 2021-01-26 北京京东尚科信息技术有限公司 页面组件间的数据流向控制方法和装置
CN106202354A (zh) * 2016-07-05 2016-12-07 广州华多网络科技有限公司 一种导航类目的页面加载方法及装置
CN111198731A (zh) * 2018-11-16 2020-05-26 北京奇虎科技有限公司 一种界面实现方法、装置、电子设备和存储介质
US11550579B2 (en) * 2020-03-12 2023-01-10 Td Ameritrade Ip Company, Inc. Systems and methods for configurable ordered transformation of database content
CN114817792B (zh) * 2022-06-21 2022-09-16 好享家舒适智能家居股份有限公司 单页面应用交互体验优化方法、装置、设备及存储介质
CN117009694A (zh) * 2023-08-01 2023-11-07 斑马工程咨询有限公司 一种互联网网页显示管理方法

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003022203A (ja) * 2001-04-27 2003-01-24 Matsushita Electric Ind Co Ltd コンテンツ解析装置、コンテンツ解析方法、プログラム及びその記録媒体
JP2005513640A (ja) * 2001-12-19 2005-05-12 インターナショナル・ビジネス・マシーンズ・コーポレーション フラグメント・リンキングおよびフラグメント・キャッシングの方法およびシステム
JP2009199173A (ja) * 2008-02-19 2009-09-03 Casio Comput Co Ltd サーバ装置、クライアント装置、サーバベースコンピューティングシステムおよびプログラム

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6108655A (en) * 1996-07-19 2000-08-22 Cisco Technology, Inc. Method and apparatus for transmitting images and other objects over a computer network system
US6012126A (en) 1996-10-29 2000-01-04 International Business Machines Corporation System and method for caching objects of non-uniform size using multiple LRU stacks partitions into a range of sizes
US5924116A (en) 1997-04-02 1999-07-13 International Business Machines Corporation Collaborative caching of a requested object by a lower level node as a function of the caching status of the object at a higher level node
US6026413A (en) 1997-08-01 2000-02-15 International Business Machines Corporation Determining how changes to underlying data affect cached objects
US6393526B1 (en) 1997-10-28 2002-05-21 Cache Plan, Inc. Shared cache parsing and pre-fetch
US6122666A (en) 1998-02-23 2000-09-19 International Business Machines Corporation Method for collaborative transformation and caching of web objects in a proxy network
US6249844B1 (en) 1998-11-13 2001-06-19 International Business Machines Corporation Identifying, processing and caching object fragments in a web environment
US6345292B1 (en) 1998-12-03 2002-02-05 Microsoft Corporation Web page rendering architecture
US6178461B1 (en) 1998-12-08 2001-01-23 Lucent Technologies Inc. Cache-based compaction technique for internet browsing using similar objects in client cache as reference objects
US20030188021A1 (en) * 2001-12-19 2003-10-02 International Business Machines Corporation Method and system for processing multiple fragment requests in a single message
US7509393B2 (en) * 2001-12-19 2009-03-24 International Business Machines Corporation Method and system for caching role-specific fragments
US7412535B2 (en) 2001-12-19 2008-08-12 International Business Machines Corporation Method and system for caching fragments while avoiding parsing of pages that do not contain fragments
US7587515B2 (en) * 2001-12-19 2009-09-08 International Business Machines Corporation Method and system for restrictive caching of user-specific fragments limited to a fragment cache closest to a user
US7426534B2 (en) * 2001-12-19 2008-09-16 International Business Machines Corporation Method and system for caching message fragments using an expansion attribute in a fragment link tag
US6868439B2 (en) 2002-04-04 2005-03-15 Hewlett-Packard Development Company, L.P. System and method for supervising use of shared storage by multiple caching servers physically connected through a switching router to said shared storage via a robust high speed connection
US7979700B2 (en) * 2002-08-23 2011-07-12 Sandisk Corporation Apparatus, system and method for securing digital documents in a digital appliance
US8046682B2 (en) * 2002-12-02 2011-10-25 Siebel Systems, Inc. Method and system for accessing business applications via a standard interface
US7386786B2 (en) * 2003-01-24 2008-06-10 The Cobalt Group, Inc. Method and apparatus for processing a dynamic webpage
US7451393B1 (en) * 2003-12-23 2008-11-11 Sun Microsystems, Inc. System and method for a page rendering framework
CA2465155C (en) * 2004-04-21 2008-12-09 Ibm Canada Limited-Ibm Canada Limitee Recommendations for intelligent data caching
US7499909B2 (en) * 2006-07-03 2009-03-03 Oracle International Corporation Techniques of using a relational caching framework for efficiently handling XML queries in the mid-tier data caching
JP4915219B2 (ja) * 2006-11-24 2012-04-11 富士通株式会社 ハイパーテキスト変換プログラム、方法及び装置
NZ566291A (en) * 2008-02-27 2008-12-24 Actionthis Ltd Methods and devices for post processing rendered web pages and handling requests of post processed web pages
CN101539912A (zh) * 2008-03-18 2009-09-23 林福来 树型浏览器浏览网页的方法
CN101582075B (zh) * 2009-06-24 2011-05-11 大连海事大学 Web信息抽取系统
US20110055683A1 (en) 2009-09-02 2011-03-03 Facebook Inc. Page caching for rendering dynamic web pages

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003022203A (ja) * 2001-04-27 2003-01-24 Matsushita Electric Ind Co Ltd コンテンツ解析装置、コンテンツ解析方法、プログラム及びその記録媒体
JP2005513640A (ja) * 2001-12-19 2005-05-12 インターナショナル・ビジネス・マシーンズ・コーポレーション フラグメント・リンキングおよびフラグメント・キャッシングの方法およびシステム
JP2009199173A (ja) * 2008-02-19 2009-09-03 Casio Comput Co Ltd サーバ装置、クライアント装置、サーバベースコンピューティングシステムおよびプログラム

Also Published As

Publication number Publication date
EP2593882A4 (en) 2016-12-14
US20130111325A1 (en) 2013-05-02
EP2593882B1 (en) 2019-01-09
EP2593882A1 (en) 2013-05-22
US9195638B2 (en) 2015-11-24
CN102331985B (zh) 2013-09-25
CN102331985A (zh) 2012-01-25
JP5826266B2 (ja) 2015-12-02
WO2012009191A1 (en) 2012-01-19
HK1161924A1 (en) 2012-08-10
JP2016035764A (ja) 2016-03-17
US20150363369A1 (en) 2015-12-17
JP6091579B2 (ja) 2017-03-08

Similar Documents

Publication Publication Date Title
JP6091579B2 (ja) ウェブページのネストしたフラグメントキャッシングを処理する方法および装置
US20190349415A1 (en) Maintaining independent states for multiple web browser instances
KR100881668B1 (ko) 웹 페이지 프리페치 장치 및 방법
US8219640B2 (en) Content request optimization
CN102985921B (zh) 在具有电子资源数据库的客户端装置中高速缓存电子文档资源
KR102151457B1 (ko) 통신 시스템에서 페이지 로딩 시간 단축 방법 및 장치
CN106933965B (zh) 静态资源请求的方法
CN106649313B (zh) 用于处理缓存数据的方法和设备
US9088462B2 (en) Common web accessible data store for client side page processing
US20120191773A1 (en) Caching resources
CN108256014B (zh) 页面展示方法及装置
CN109634753B (zh) 切换浏览器内核的数据处理方法、装置、终端和存储介质
US20230394042A1 (en) Asynchronous Predictive Caching Of Content Listed In Search Results
KR20060080180A (ko) 데이터 애셋들을 캐싱하는 방법
CN106649792B (zh) 一种页面访问方法及装置
KR101132220B1 (ko) 캐쉬(cache)를 이용하여 웹 페이지를 제공하기 위한 방법, 시스템 및 컴퓨터 판독 가능한 기록 매체
JP2006185167A (ja) ファイル検索方法、ファイル検索装置、および、ファイル検索プログラム
JP6782219B2 (ja) データ活用支援装置、データ活用支援システム、及びデータ活用支援方法
CN107609030B (zh) 一种图片管理方法和系统
TWI512620B (zh) Method and device for fragmented nested caching of web pages
CN110830537A (zh) 一种页面处理方法及装置
CN107451182A (zh) 基于Appcache 的文件缓存方法
CN116701800A (zh) 页面内容处理方法、装置、计算机设备及介质
JP2015001899A (ja) コンテンツ検索システム、コンテンツ検索方法、及びコンテンツ検索プログラム
JP2002269089A (ja) 情報収集装置及び情報収集方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20140611

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150320

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150414

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20150714

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150805

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

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20150924

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20151013

R150 Certificate of patent or registration of utility model

Ref document number: 5826266

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250