(57)【要約】  動的レンダリングコントロールを使用してＷｅｂページレンダリングを円滑にすること。サーバが、クライアントにダウンロードされるべきページの表現を特定する。この表現は、そのページの一部分をレンダリングするのに使用されることが可能な動的レンダリングコントロールを含む。適切にレンダリングするのに動的レンダリングコントロールによって使用されるべき初期データセットにアクセスを得るようにクライアントに任せておくのではなく、サーバは、使用されるべき初期データセットを推定し、この推定された初期データセットを含むネットワーク応答を伝送する。レンダリング構成要素を実行する際、クライアントは、ネットワークソースからデータにアクセスを得なければならないのではなく、このネットワーク応答の中で与えられるデータを単に使用して、ページのその部分をレンダリングすることができる。
2009530736.tif 000002
【特許請求の範囲】
【請求項１】
サーバコンピューティングシステムが、クライアントにおいてページをレンダリングすることを円滑にする方法であって、
クライアントからページを求めるネットワーク要求を受信する行為と、
前記ネットワーク要求に対応する前記ページの表現を特定する行為であって、該表現は、前記ページの一部分をレンダリングするのに使用されることが可能な少なくとも１つの動的レンダリングコントロールを含む、行為と、
前記動的レンダリングコントロールが、前記ページの前記部分を適切にレンダリングするのに必要とする初期データセットのいくつかのデータまたはすべてのデータを推定する行為と、
ネットワーク応答を前記クライアントに伝送する行為であって、前記ネットワーク応答は、前記ネットワーク要求に対応し、前記ページの前記表現の少なくとも変換されたバージョン、および前記初期データセットのいくつかのデータまたはすべてのデータを含む、行為と
を含むことを特徴とする方法。
【請求項２】
前記ページの前記表現は、テキストベースの表現であり、前記ページの前記表現の変換されたバージョンを使用して伝送されることを特徴とする請求項１に記載の方法。
【請求項３】
前記ページの前記表現の前記変換されたバージョンは、伝送に適したフォーマットに変換された前記テキストベースの表現のバージョンであることを特徴とする請求項２に記載の方法。
【請求項４】
前記初期データセットのいくつかのデータまたはすべてのデータを推定する前記行為は、前記ページの前記表現から初期データソースデータ構造にアクセスする行為であって、前記初期データソースデータ構造は前記初期データセットを指定する、行為を含むことを特徴とする請求項１に記載の方法。
【請求項５】
前記初期データセットのいくつかのデータまたはすべてのデータを推定する前記行為は、
前記ページの前記表現から初期データソースデータ構造にアクセスする行為であって、前記初期データソースデータ構造は前記初期データが獲得されることが可能なネットワークソースを提供する、行為と、
前記ネットワークソースから前記初期データを要求する行為と、
前記ネットワークソースから前記初期データを要求することに応答して、前記ネットワークソースから前記初期データを受信する行為と
を含むことを特徴とする請求項１に記載の方法。
【請求項６】
前記サーバコンピューティングシステムの１つまたは複数のプロセッサによって実行されると、前記コンピューティングシステムに、請求項１に記載の方法を実行させる１つまたは複数のコンピュータ実行可能命令を有する１つまたは複数のコンピュータ可読媒体を含むことを特徴とするコンピュータプログラム製品。
【請求項７】
請求項１に記載の方法を実行するように構成されていることを特徴とするコンピューティングシステム。
【請求項８】
Ｗｅｂページを求める要求が、サーバに送信されたことに応答して、前記Ｗｅｂページの一部分をレンダリングするのに使用されることが可能な少なくとも１つの動的レンダリングコントロールを含む前記Ｗｅｂページの表現の形態で、前記要求に対する応答を受信する行為と、
前記動的レンダリングコントロールを実行する行為と、
前記動的レンダリングコントロールを実行している間に、
前記Ｗｅｂページの前記部分を完全にレンダリングするために、追加のデータが必要とされると決定する行為と、
前記ネットワーク応答が、前記追加のデータの推定も含むか否かを決定する行為と、
前記ネットワーク応答が、前記追加のデータの前記推定を含むと決定された場合、前記追加のデータの前記推定を使用して、前記動的レンダリングコントロールを使用する前記Ｗｅｂページの前記部分をレンダリングする行為と、
前記ネットワーク応答が、前記追加のデータの前記推定を含まないと決定された場合、別のネットワークソースから前記追加のデータを要求する行為と、前記別のネットワークソースから獲得された前記追加のデータを使用して、前記動的レンダリングコントロールを使用する前記Ｗｅｂページの前記部分をレンダリングする行為とを実行することを含むことを特徴とする方法。
【請求項９】
前記ネットワーク応答は、データソースコントロールの表現を含み、前記追加のデータの前記推定を使用する前記行為は、
前記動的レンダリングコントロールが、前記追加のデータに関して前記データソースコントロールに問い合わせる行為と、
前記データソースコントロールが、前記データソースコントロールの中に含められた前記追加のデータを前記動的レンダリング構成要素に供給する行為と
を含むことを特徴とする請求項８に記載の方法。
【請求項１０】
前記ネットワーク応答は、データソースコントロールの表現を含み、前記追加のデータを別のネットワークソースから要求する前記行為は、
前記動的レンダリングコントロールが、前記追加のデータに関して前記データソースコントロールに問い合わせる行為と、
前記データソースコントロールが、前記データソース成分の中で特定されたネットワークソースから前記追加のデータを要求する行為と
を含むことを特徴とする請求項８に記載の方法。
【請求項１１】
前記Ｗｅｂページが更新されるべきことを検出する行為と、
前記動的レンダリングコントロールが、更新されたデータにアクセスする行為と、
前記動的レンダリングコントロールが、前記更新されたデータを使用して前記Ｗｅｂページの前記部分を再レンダリングする行為と
をさらに含むことを特徴とする請求項８に記載の方法。
【請求項１２】
前記動的レンダリングコントロールが、更新されたデータにアクセスする前記行為は、前記クライアントコンピューティングシステムが、ネットワークを介して前記更新されたデータを要求する行為を含むことを特徴とする請求項１１に記載の方法。
【請求項１３】
前記要求は、ＨＴＴＰ（ハイパーテキスト転送プロトコル）要求であることを特徴とする請求項８に記載の方法。
【請求項１４】
前記サーバコンピューティングシステムの１つまたは複数のプロセッサによって実行されるときに、前記コンピューティングシステムに、請求項８に記載の方法を実行させる１つまたは複数のコンピュータ実行可能命令を有する１つまたは複数のコンピュータ可読媒体を含むことを特徴とするコンピュータプログラム製品。
【請求項１５】
請求項８に記載の方法を実行するように構成されていることを特徴とするコンピューティングシステム。
【請求項１６】
コンピューティングシステムの１つまたは複数のプロセッサによって実行されるときに、Ｗｅｂページを求めるネットワーク要求に対する、前記Ｗｅｂページの一部分をレンダリングするのに使用されることが可能な少なくとも１つの動的レンダリングコントロールを含む前記Ｗｅｂページの表現を含む応答を受信したことに応答して、前記コンピューティングシステムに、
前記動的レンダリングコントロールを実行する行為と、
前記動的レンダリングコントロールを実行している間に、
前記Ｗｅｂページの前記部分を完全にレンダリングするために、追加のデータが必要とされると決定する行為と、
前記ネットワーク応答が、前記追加のデータの推定を含むと決定する行為と、
前記追加のデータの前記推定を使用して、前記動的レンダリングコントロールを使用する前記Ｗｅｂページの前記部分をレンダリングする行為と
を実行させる１つまたは複数のコンピュータ実行可能命令を有する１つまたは複数のコンピュータ可読媒体を含むことを特徴とするコンピュータプログラム製品。
【請求項１７】
前記動的レンダリングコントロールは、コントロールツリーの一部であることを特徴とする請求項１６に記載のコンピュータプログラム製品。
【請求項１８】
前記追加のデータの前記推定を使用する前記行為を実行するための前記コンピュータ実行可能命令は、
前記動的レンダリングコントロールに、前記Ｗｅｂページの前記表現の中にも与えられているデータソースコントロールから前記追加のデータを要求させること、および
前記データソースコントロールに、前記追加のデータを前記動的レンダリングコントロールに供給させることを実行するためのコンピュータ実行可能命令を含むことを特徴とする請求項１６に記載のコンピュータプログラム製品。
【請求項１９】
前記１つまたは複数のコンピュータ可読媒体は、物理的記憶媒体であることを特徴とする請求項１６に記載のコンピュータプログラム製品。
【請求項２０】
前記１つまたは複数のコンピュータ可読媒体は、物理的メモリ媒体であることを特徴とする請求項１６に記載のコンピュータプログラム製品。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、初期動的レンダリング制御データの推定に関する。
【背景技術】
【０００２】
コンピューティング技術は、人類の進歩に多大な貢献をしてきた。コンピューティングシステムは、デスクトップコンピュータ、ラップトップコンピュータ、パーソナルデジタルアシスタント、電話機、ならびに、例えば、冷蔵庫や自動車などの、コンピューティングシステムとは従来、考えられていなかったデバイスさえ含む多種多様な物理的形態で売られている。このため、コンピューティングシステムは、プロセッサと、任意のタイプのメモリとを有する任意のデバイスまたはシステムであることが可能である。
【０００３】
しばしば、コンピューティングシステムは、それらのコンピューティングシステムが通信することができるように一緒にネットワーク化される。ネットワークは、２つのコンピュータを結合する単純な有線リンクまたは無線リンクほど単純であることも、インターネットほど複雑であることも可能である。最も一般的に使用されるアプリケーションの多くは、ネットワーク技術に依拠する。そのようなアプリケーションには、例えば、電子メール、インスタントメッセージング、ウェブブラウズ、リモートネットワークアクセス、電子ホワイトボード、ボイスオーバＩＰ電話通信、テレビ会議、リモート同期、および他の多数が含まれる。Ｗｅｂブラウズ技術において、１つのコンピューティングシステム（しばしば、「クライアント」と大まかに呼ばれる）が、ページを求める要求を、別のコンピューティングシステム（「サーバ」と大まかに呼ばれる）に送信する。すると、サーバは、ページの表現でそのクライアントに応答し、そのクライアントにおいて、その表現が、スクリーン上で表示される。
【０００４】
ページがクライアントにおいて表示されることが可能であるように、ページをダウンロードするためのいくつかの幅広い技術が存在する。１つの技術は、サーバが、ページに関する完全なレンダリング命令を生成し、その後、これらのレンダリング命令をクライアントにダウンロードすることを含む。すると、クライアントは、これらのレンダリング命令を解析して、実行する。レンダリング命令の例が、ＨＴＭＬ（ハイパーテキストマークアップ言語）ページである。この技術の利点は、ページ全体が、単一回の要求−応答の往復でダウンロードされることが可能であることである。この技術の欠点は、ページが、いずれの仕方であれ変更されるべき場合（例えば、ユーザが、ページの一部分を選択した場合）、クライアントが、サーバに新たな要求を送信すると、サーバは、別の完全なレンダリング命令セットをクライアントに送信することである。このようにすることは、ページが、いずれの仕方であれ変更されるべき場合にその都度、レンダリング命令を作成するのにサーバ上で相当な処理リソースを要求する。
【０００５】
別の技術は、極めて異なり、ページが変更されるべき場合にその都度、ページ全体がダウンロードされることを要求しない。サーバが、或るページを求める要求を受信すると、このサーバは、そのページをレンダリングするのに必要とされるレンダリング命令の一部だけを生成する。例えば、サーバは、そのページに関する骨格（ｓｃａｆｆｏｌｄｉｎｇ）を表すＨＴＭＬを生成することが可能である。サーバは、クライアントにおいて実行されるコントロールと一緒に、このＨＴＭＬをダウンロードする。これらのコントロールには、クライアントが、１つまたは複数の機能を実行することを許すロジックが含まれる。機能を実行するため、コントロールは、潜在的に、他のクライアント側コントロールと対話する、またはサーバとさえ対話する可能性がある。１つのタイプのコントロール（本明細書で「動的レンダリングコントロール」とも呼ばれる）は、例えば、ＨＴＭＬなどのレンダリング命令をレンダリングする。動的レンダリングコントロールは、ロジックが、或るコントロールをレンダリングする際、クライアントには知られているが、サーバには必ずしも知られていない状態情報を考慮することを許す。状態情報が変化すると、そのコントロールの表示される形態もまた、サーバからページを要求することなしに、変化することが可能である。このため、多くの場合において、ＨＴＭＬ骨格内に埋め込まれた動的レンダリングコントロールの使用は、より大きい柔軟性を許す。
【発明の開示】
【発明が解決しようとする課題】
【０００６】
残念ながら、ときとして、クライアントは、ディスプレイ上で適切にレンダリングするために動的レンダリングコントロールによって必要とされるすべての情報を必ずしも有しているとは限らない。そのような場合に、動的レンダリングコントロールは、クライアントが、そのページをクライアントに最初にダウンロードしたサーバから、または全く別のサーバまたはサーバクラスタから、ネットワークを介してその情報を要求するようにさせる。このため、動的レンダリングコントロール技術の使用は、より柔軟であることが可能であるものの、第２の要求−応答の往復を要求して、ページをレンダリングする際、さらなる待ち時間およびネットワーク帯域幅の要求を持ち込む可能性もある。
【課題を解決するための手段】
【０００７】
必須ではないが、本発明の実施形態は、クライアントにページをダウンロードすることに関する。サーバが、ページを求める要求をクライアントから受信すると、そのサーバは、そのネットワーク要求に対応するページの表現を特定し、この表現は、そのページの一部分をレンダリングするのに使用されることが可能な動的レンダリングコントロールを含む。初期ページの動的レンダリングコントロールの部分を適切にレンダリングするのに動的レンダリングコントロールによって使用されるべき初期データに、ネットワークを介してアクセスを得るようにクライアントに任せておくのではなく、サーバは、この初期データの少なくともいくらかを推定する。次に、サーバは、この初期データのすべて、またはいくらかを含むネットワーク応答を伝送する。動的レンダリングコントロールを実行する際、クライアントは、第２の往復においてネットワークソースから初期データへのアクセスを得なければならないのではなく、このネットワーク応答の中で提供される初期データを単に使用するだけで、ページのその部分をレンダリングすることができる。
【０００８】
この概要は、詳細な説明において後段でさらに説明される選定された概念を、簡略化された形態で概説するように与えられている。この概要は、主張される主題の重要な特徴、または不可欠な特徴を特定することを意図しておらず、また請求された主題の範囲を確定する際の助けとして使用されることも意図していない。
【０００９】
添付の図面は、本発明の実施形態をより詳細に説明するために使用される。これらの図面は、本発明の通常の実施形態を表すに過ぎず、したがって、本発明の範囲を限定するものと考えられるべきでないものと理解して、これらの実施形態が、添付の図面の使用を介して、さらに具体的に、さらに詳細に示され、説明される。
【発明を実施するための最良の形態】
【００１０】
本発明の実施形態は、動的レンダリングコントロールを含む初期Ｗｅｂページをクライアントにダウンロードする際に、その動的レンダリングコントロールに関する初期データを提供することによって、サーバによってＷｅｂページレンダリングを円滑にすることにまで及ぶ。このため、クライアントが、初期ページの動的レンダリングコントロールの部分をレンダリングするのに、動的レンダリングコントロールに関する初期データをさらに要求するのではなく、動的レンダリングコントロールは、最初のページ要求に対する応答の中で与えられる初期データを単に使用するだけで、Ｗｅｂページの動的レンダリングコントロールの部分をレンダリングすることができる。このため、ページは、更新の理由があると、Ｗｅｂページを更新するのに動的レンダリングコントロールの使用を依然として許しながら、たった一回の要求−応答の往復を使用して、初期にレンダリングされることが可能である。
【００１１】
本発明の実施形態は、後段でより詳細に説明されるとおり、様々なコンピュータハードウェアを含む専用コンピュータまたは汎用コンピュータを含むことが可能である。図１は、本発明の特徴を実施するのに使用されることが可能な例示的なコンピューティングシステム１００の概略図を示す。ここで説明されるコンピューティングシステムは、そのような適切なコンピューティングシステムの一例に過ぎず、本発明の用法または機能の範囲について何ら限定を示唆することも意図していない。また、本発明が、図１に示される構成要素のいずれかの構成要素、または組合せと関係する依存関係または要件を有すると解釈すべきでもない。
【００１２】
コンピューティングシステムは、現在、ますます多種多様な形態をとっている。コンピューティングシステムは、例えば、ハンドヘルドデバイス、家庭電化製品、ラップトップコンピュータ、デスクトップコンピュータ、メインフレーム、分散コンピューティングシステム、またはコンピューティングシステムとは従来、考えられていなかったデバイスでさえありえることが可能である。この説明においても、特許請求の範囲においても、「コンピューティングシステム」という用語は、少なくとも１つのプロセッサと、そのプロセッサによって実行されることが可能なコンピュータ実行可能命令を有することが可能なメモリとを含む任意のデバイスまたはシステム（またはそのようなデバイスとシステムの組合せ）を含むものと広く定義される。メモリは、任意の形態をとることが可能であり、コンピューティングシステムの性質および形態に依存することが可能である。コンピューティングシステムは、ネットワーク環境にわたって分散されることが可能であり、複数の構成要素のコンピューティングシステムを含むことが可能である。
【００１３】
図１を参照すると、最も基本的な構成において、コンピューティングシステム１００は、通常、少なくとも１つの処理装置１０２と、メモリ１０４とを含む。メモリ１０４は、揮発性、不揮発性、またはこの２つの何らかの組合せであることが可能なシステムメモリであることが可能である。揮発性メモリの例には、ＲＡＭ（ランダムアクセスメモリ）が含まれる。不揮発性メモリの例には、ＲＯＭ（読み取り専用メモリ）、フラッシュメモリなどが含まれる。また、「メモリ」という用語は、物理的記憶媒体などの不揮発性大容量ストレージを指すのに本明細書で使用されることも可能である。そのようなストレージは、リムーバブル（取り外し可能）であっても、リムーバブルでなくてもよく、ＰＣＭＣＩＡカード、磁気ディスクおよび光ディスク、磁気テープなどが含まれることが可能である（ただし、以上には限定されない）。
【００１４】
本明細書で使用される、「モジュール」または「コンポーネント（構成要素、成分）」という用語は、コンピューティングシステム上で実行されるソフトウェアオブジェクトまたはルーチンを指すことが可能である。本明細書で説明される様々な構成要素、モジュール、エンジン、およびサービスは、コンピューティングシステム上で実行されるオブジェクトまたはプロセスとして（例えば、別々のスレッドとして）実施されてもよい。本明細書で説明されるシステムおよび方法は、ソフトウェアで実施されることが可能であるが、ハードウェアにおける実施、およびソフトウェアとハードウェアの組合せにおける実施も、可能であり、企図される。
【００１５】
以下の説明において、本発明の実施形態は、１つまたは複数のコンピューティングシステムによって実行される行為に関連して説明される。そのような行為が、ソフトウェアで実施される場合、その行為を実行する関連するコンピューティングシステムの１つまたは複数のプロセッサが、コンピュータ実行可能命令を実行したことに応答して、コンピューティングシステムの行為を誘導する。そのような行為の例には、データの操作が含まれる。コンピュータ実行可能命令（および操作データ）は、コンピューティングシステム１００のメモリ１０４の中に格納されることが可能である。
【００１６】
また、コンピューティングシステム１００は、コンピューティングシステム１００が、例えば、ネットワーク１１０を介して他のコンピューティングシステムと通信することを許す通信チャネル１０８を含むことも可能である。通信チャネル１０８は、通信媒体の代表例である。通信媒体は、通常、搬送波などの変調されたデータ信号、または他のトランスポート機構においてコンピュータ可読命令、データ構造、プログラムモジュール、または他のデータを実現し、任意の情報配信媒体を含む。例として、限定としてではなく、通信媒体には、有線ネットワークおよび直接有線接続などの有線媒体、ならびに音響媒体、無線媒体、赤外線媒体、およびその他の無線媒体などの無線媒体が含まれる。本明細書で使用されるコンピュータ可読媒体という用語には、記憶媒体と通信媒体がともに含まれる。
【００１７】
また、本発明の範囲内の実施形態には、コンピュータ実行可能命令またはデータ構造を担持するための、または格納しておくためのコンピュータ可読媒体も含まれる。そのようなコンピュータ可読媒体は、汎用コンピュータまたは専用コンピュータによってアクセスされることが可能な任意の利用可能な媒体であることが可能である。例として、限定としてではなく、そのようなコンピュータ可読媒体は、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、ＣＤ−ＲＯＭ、または他の光ディスクストレージ、磁気ディスクストレージ、もしくは他の磁気記憶デバイス、あるいはコンピュータ実行可能命令またはデータ構造の形態で所望されるプログラムコード手段を担持する、または格納するのに使用されることが可能であるとともに、汎用コンピュータまたは専用コンピュータによってアクセスされることが可能な他の任意の媒体を含むことが可能である。情報が、ネットワーク、または別の通信接続（有線、無線、あるいは有線や無線の組合せ）を介してコンピュータに転送される、または供給されると、そのコンピュータは、その接続をコンピュータ可読媒体と適切に見なす。このため、任意のそのような接続は、コンピュータ可読媒体と適切に呼ばれる。また、以上の媒体の組合せも、コンピュータ可読媒体の範囲内に含められなければならない。
【００１８】
コンピュータ実行可能命令は、例えば、汎用コンピュータ、専用コンピュータ、または専用処理デバイスに、或る機能、または或るグループの機能を実行させる命令およびデータを含む。主題は、構造上の特徴および／または方法上の行為（動作）に特有の言い回しで説明されてきたが、添付の特許請求の範囲において定義される主題は、本明細書で説明される特定の特徴または行為に必ずしも限定されないことを理解されたい。むしろ、本明細書で説明される特定の特徴および行為は、特許請求の範囲を実施する例示的な形態として開示される。
【００１９】
図２は、本発明の原理による、或るページをダウンロードすることを円滑にするためのクライアント２１０とサーバ２２０の間の通信の論理フローを示す。このページは、例えば、クライアントが、このページの静的部分を表示するために、解析して、実行することができる静的レンダリング命令を表すテキストベースのマークアップ言語を含むことが可能なＷｅｂページであることが可能である。例えば、Ｗｅｂページは、Ｗｅｂページの基本的な骨格としてＨＴＭＬ（ハイパーテキストマークアップ言語）を使用して、スクリプト構成要素、または他のマークアップ言語構成要素（ＸＭＬ（拡張マークアップ言語）構成要素などの）を有して、しばしば、作成される。
【００２０】
また、このページは、１つまたは複数の動的レンダリングコントロールを含むことも可能である。具体例を挙げて説明すると、動的レンダリングコントロールは、関係のあるデータを使用して、そのページの一部分を動的にレンダリングする。そのような関係のあるデータは、サーバから供給される動的レンダリングコントロール内に存在すること、クライアント上に存在すること、またはネットワークを介してクライアントによって獲得されることが可能である。この関係あるデータが変化した場合、動的レンダリングコントロールは、クライアントが、更新されたＷｅｂページを再要求する必要なしに、ページのその部分を再レンダリングすることができる。このため、動的レンダリングコントロールは、動的であり、変化するデータに柔軟に応答する。
【００２１】
この説明においても、特許請求の範囲においても、「クライアント」のコンピューティングシステムおよび「サーバ」のコンピューティングシステムに時々、言及する可能性がある。この説明においても、特許請求の範囲においても、「クライアント」および「サーバ」という用語は、広く解釈されることが意図される。このため、「サーバ」または「サーバコンピューティングシステム」という用語は、任意の種類のサービスを別のコンピューティングシステムに提供する任意のコンピューティングシステムである。「クライアント」または「クライアントコンピューティングシステム」という用語は、別のコンピューティングシステムによって提供される任意の種類のサービスを消費する任意のコンピューティングシステムである。ネットワーキング技術は、過去の単純なクライアント−サーバトポロジと比べて、はるかに複雑になっていることが、当業者には認識されよう。このため、単一のコンピューティングシステムが、サービスを消費するとともに、サービスを提供することが可能であり、このため、クライアントコンピューティングシステムとサーバコンピューティングシステムの両方であることが可能である。
【００２２】
図３Ａは、動的レンダリングコントロールが、レンダリングするのに必要とされる追加のデータを求める独自の要求を行うことを要求することなしに、動的レンダリングコントロールが円滑にされるような仕方でＷｅｂページをダウンロードするための方法３００Ａの流れ図を示す。このため、初期Ｗｅｂページが、ただ一回の往復の要求−応答の組合せを使用して表示されて、初期ページの表示の効率およびパフォーマンスが向上することが可能である。図２のクライアント２１０によって実行される行為が、「クライアント」という見出しの下で図３Ａの左半分にリストアップされている。図２のサーバ２２０によって実行される行為が、「サーバ」という見出しの下で図３Ａの右半分にリストアップされている。方法３００は、図２の論理フロー２００を使用して実行されることが可能である。したがって、次に、図２および図３Ａが、互いを頻繁に参照して説明される。
【００２３】
クライアントが、或るページが表示されるべきことを決定する（行為３１１）。例えば、ユーザが、Ｗｅｂブラウザとインタフェースをとり、現在のＷｅｂページ内のハイパーリンクを選択する、または、場合により、ＵＲＬ（ユニバーサルリソースロケータ）を選択することが可能である。例えば、ＵＲＬは、Ｗｅｂブラウザのアドレスフィールドの中に或るＵＲＬをタイプ入力することによって選択されることが可能である。
【００２４】
これに応答して、次に、クライアントが、関連するページを求める要求をサブミット（提出）する（行為３１２）。この要求（本明細書で「ネットワーク要求」とも呼ばれる）は、要求２１１として図２に表されるのに対して、この要求の伝送は、矢印Ａを使用して表される。この要求は、ＨＴＴＰ（ハイパーテキスト転送プロトコル）の任意のバージョンに準拠することが可能であり、例えば、ＨＴＴＰ  ＧＥＴ要求であることが可能である。しかし、この要求は、この要求が、クライアントとサーバの間で通信されることを許す任意のプロトコルに準拠する任意の要求であることが可能である。
【００２５】
クライアントからページを求めるネットワーク要求を受信すると（行為３１１）、サーバは、このネットワーク要求に対応するページの表現を特定する（行為３３２）。例えば、サーバは、そのページをレンダリングする際にクライアントが実行すべきレンダリング命令にアクセスする、さらに／またはそのような命令を作成することができる。
【００２６】
図４は、サーバ上に存在する、サーバによってアクセスされる、またはサーバによって作成されることが可能なページ表現データ構造４００を抽象的に示す。このページ表現は、例えば、ページの基本的な骨格を定義するＨＴＭＬコードであることが可能な静的レンダリング命令４０１を含む。また、ページ表現４００は、ページの動的部分をレンダリングするのにクライアントによって実行されることが可能なスクリプト４０２を、オプションとして含むことも可能である。また、ページ表現４００は、少なくとも１つの動的レンダリングコントロール４０３を含むことが可能であり、コントロール４０３のインスタンスは、クライアントが、クライアント上で、さらに／またはネットワークを介して、動的レンダリングコントロールの中に存在する関係のあるデータを使用して、ページの対応する部分を動的にレンダリングすることを許す。ページ表現４００は、垂直の省略記号４０４によって表されるとおり、他のアイテムも含むことが可能である。
【００２７】
動的レンダリングコントロールが適切にレンダリングされるのに必要とされる初期データに、ネットワークを介してアクセスするようにクライアントに任せておくのではなく、サーバは、動的レンダリングコントロールが、ページのその部分を初期にレンダリングするのに必要とする初期データを推定する（行為３３３）。この推定は、初期ページの関連する部分をレンダリングするのに必要とされる初期データをもたらす、いずれの仕方で達せられてもよい。一実施形態では、ページの作成者が、そのページに関連付けられたデータ構造（例えば、以降、簡明のため「初期データソースデータ構造」と呼ばれる）を、サーバにおいて単に含める。例えば、初期データソースデータ構造４１０が、所望されるページのページ表現４００に対する関連付け４１１を有して示される。初期データソースデータ構造４１０は、ページ表現４００内に初期に含められることさえ可能である。
【００２８】
初期データは、初期データソースデータ構造内に含められることが可能である。その場合、初期データを推定することは、初期データソースデータ構造４１０にアクセスすること、および初期データソースデータ構造内に含まれる初期データが、応答内に含められることを確実にすることを単に含む。代替として、動的レンダリング構成要素に関する初期データが、初期データソースデータ構造４１０内に存在しない場合、初期データソースデータ構造４１０は、初期データにどのようにアクセスすべきかに関してサーバに対する命令を含むことが可能である。初期データが、初期データソースデータ構造４１０内に存在しないシナリオに関して、図５は、サーバが、ネットワークを介して初期データにアクセスするよう要求された際に、初期データを推定するための方法５００を示す。
【００２９】
具体的には、サーバは、ページ表現に関連する初期データソースデータ構造にアクセスする（行為５０１）。この場合、初期データソースデータ構造は、初期データが獲得されることが可能なネットワークソースを与える。次に、サーバは、初期データソースデータ構造の中で指定されたネットワークソースから初期データを要求し（行為５０２）、すると、初期データが、そのネットワークソースから受信される（行為５０３）。
【００３０】
例えば、初期データソースデータ構造は、サーバにおいてＸＭＬ擬似コードで表現されて、以下のようであることが可能である。すなわち、
【００３１】
【表１】
2009530736.tif 000003
【００３２】
このデータ構造において、データ構造は、「ＩｎｉｔｉａｌＤａｔａ」という題名を付けられ、「ＲｕｎＡｔ」という属性は、このデータ構造が、実行のためにクライアントに送信されるのではなく、このサーバにおいて解決されるべきことを示す「Ｓｅｒｖｅｒ」という値を有する。ＳｏｕｒｃｅＵＲＬ要素は、初期データが、「ＭＹＳＶＣ．ＡＳＭＸ」というＵＲＬに対応するロケーションにおいて見出されることが可能であることを指定する。ＡｓｓｏｃｉａｔｅｄＤａｔａＳｏｕｒｃｅ要素は、初期データが、ページ内に含められるデータソース要素に対応することを指定する。このため、初期データにアクセスが行われると、初期データが、データソース要素内に入れられる、またはデータソース要素に関連付けられることが可能である。すると、クライアントは、初期データをどこで見つけるべきかを知ることができる。
【００３３】
図３に戻ると、このようにして、初期データが、推定されることが可能である（行為３２３）。この説明においても、特許請求の範囲においても、初期データの「推定」には、初期データの決定論的な特定も含まれることが可能である。したがって、「推定」という用語の使用は、初期データが正しいか否かについての不確実性が存在することを要求するものと解釈されるべきではない。しかし、本発明の原理は、初期データの正しさが、不確かであることが可能な状況を範囲に含む。
【００３４】
初期データがどのように推定されるかにかかわらず、次に、サーバは、その要求に対応するネットワーク要求をクライアントに伝送する（行為３３４）。図２において、このネットワーク応答は、応答２１２によって表されるのに対して、この応答の伝送は、矢印Ｂによって表される。ネットワーク応答２１２は、ページの表現の変換されたバージョンと、動的レンダリング構成要素に関する推定された初期データとを少なくとも含む。この初期データが、図２のネットワーク応答２１２内の動的レンダリングコントロール２１４内に含められた、またはそのようなコントロール２１４に関連付けられた初期データ２１３によって概略で表される。ページ表現は、例えば、伝送に適したフォーマットに変換されるテキストベースの表現（ＨＴＭＬ  Ｗｅｂページなどの）であることが可能である。例えば、Ｗｅｂページは、圧縮され、さらに／または暗号化され、さらにシリアル化されることが可能である。初期データは、ネットワーク応答の中に含められる動的レンダリングコントロールの複数に関して推定され、ネットワーク応答の中に含められることが可能である。
【００３５】
クライアントが、ネットワーク応答を受信すると（行為３１３）、次に、クライアントは、そのＷｅｂページを表示する。これを行うため、クライアントは、サーバによって供給されるページ表現内に含められた静的レンダリング命令（図４の４０１参照）およびスクリプト（図４の４０２参照）のいずれかを実行する。さらに、クライアントは、各動的レンダリングコントロールを実行することを開始する（行為３１４）。
【００３６】
動的レンダリングコントロールを実行するため、クライアントはまず、クライアントにおいて存在する関係のある情報を使用して、動的レンダリングコントロールをインスタンス化する。動的レンダリングコントロールは、レンダリングコントロールツリーにおけるノードであることが可能である。例えば、レンダリングコントロールは、「ＬｉｓｔＶｉｅｗ」コントロールであることが可能であるが、本発明の原理は、このタイプのコントロールに限定されない。
【００３７】
次に、動的レンダリングコントロールが、Ｗｅｂページの動的レンダリングコントロールの部分を完全にレンダリングするために、さらなる初期データが必要とされるかどうかを決定する（決定ブロック３１５）。必要とされない場合（決定ブロック３１５において「いいえ」）、Ｗｅｂページの対応する部分は、その動的レンダリングコントロールを使用してレンダリングされることが可能である（行為３１６）。必要とされる場合（決定ブロック３１５において「はい」）、動的レンダリングコントロールは、ネットワーク応答が、初期データの推定を含むかどうかを決定する（決定ブロック３１７）。初期データが、ネットワーク応答の中に存在する場合（決定ブロック３１７において「はい」）、動的レンダリングコントロールは、動的レンダリングコントロールが、ネットワーク応答の中で見出されるさらなる初期データに鑑みて、初期ページの動的レンダリングコントロールの部分をレンダリングするのに必要とされる初期データのすべてを現時点で有するかどうかを決定する（決定ブロック３１５に戻って）。
【００３８】
一実施形態では、初期データは、ページ表現内のデータソースデータ構造から獲得されていることが可能である。その場合、初期データには、動的レンダリングコントロールが、初期データに関してデータソース構成要素に問い合わせることによってアクセスが行われることが可能であり、すると、データソース構成要素は、初期データをレンダリング構成要素に供給する。
【００３９】
例えば、動的レンダリングコントロールが、「ＬｉｓｔＶｉｅｗ」コントロールであるものと想定されたい。動的レンダリングコントロールは、以下のようであることが可能である。すなわち、
【００４０】
【表２】
2009530736.tif 000004
【００４１】
このＬｉｓｔＶｉｅｗコントロールは、このコントロールが、初期データにアクセスするのに向かうべきデータソースが、「Ｄ１」によって特定されることを指定する。以下は、「Ｄ１」として特定される対応するデータソースコントロールの例を表す。すなわち、
【００４２】
【表３】
2009530736.tif 000005
【００４３】
この場合、初期データは、Ｄａｔａ  ＳｏｕｒｃｅコントロールのＤａｔａ要素内に含められる。データソースコントロールは、データソース構成要素を「Ｄ１」と特定する「ＩＤ」という属性を含む。このため、このＬｉｓｔＶｉｅｗ構成要素は、そのデータソースコントロール内の初期データにアクセスする。この初期データは、このデータが、動的レンダリングコントロールによって解釈されることが可能である、もしくは動的レンダリングコントロールによって解釈されることが可能であるようにクライアントによって変更されることが可能である限り、構造化されたデータ（ＸＭＬを使用して表現されることが可能であるような）であっても、構造化されていないデータであってもよい。
【００４４】
この場合（決定ブロック３１７において「はい」、その後に続いて、決定ブロック３１５において「いいえ」）、初期データは、ネットワーク応答の中に含められており、このため、動的レンダリングコントロールは、第２番目の要求−応答の往復を実行する必要なしに、レンダリングすることが可能であった。１回、または複数回のさらなる要求−応答の往復を通常、要求する動的レンダリングコントロールの１つまたは複数に関する初期データが存在する場合、レンダリングプロセスは、それらのさらなる往復が節約されて、初期Ｗｅｂページをレンダリングする際のパフォーマンスが向上する。この節約は、Ｗｅｂページの中にいくつかの動的レンダリングコントロールが存在する可能性があること、およびそれらの動的レンダリングコントロールのそれぞれが、表示のそれぞれの動的レンダリングコントロールの部分をレンダリングするのに要求されるデータのすべてを獲得するために、複数回のさらなる往復を要求する可能性があることを考慮すると、特に明白である。
【００４５】
例えば、ネットワーク応答が、初期データを含んでいなかった場合（判定ブロック３１７において「いいえ」）、クライアントは、別のネットワークソースからデータを要求する（行為３１８）。例えば、図２において、クライアントが、伝送Ｃによって表されるとおり、データを求める要求２２１を送信する。その別のネットワークソースは、サーバ２２０であっても、他の何らかのサーバであってもよい。この要求は、動的レンダリングコントロールが、そのデータに関してデータソースコントロールに問い合わせることを含むことが可能である。これに応答して、データソースコントロールは、データソースコントロールの中で特定されたネットワークソースから、その追加のデータを要求することができる。例えば、データソースコントロールは、代わりに、以下のとおり構造化されていることが可能である。
【００４６】
【表４】
2009530736.tif 000006
【００４７】
そのデータが、ネットワークを介してデータソースコントロールに戻されると（図２におけるデータ２２３を含む第２の応答２２２を含む伝送Ｄ参照）、データソースコントロールは、そのデータを動的レンダリングコントロールに戻す。すると、動的レンダリングコントロールは、その別のネットワークソースから獲得されたデータを使用して、そのレンダリング構成要素を使用するＷｅｂページの部分をレンダリングすることができる（行為３１６）。
【００４８】
このことは、初期データが、初期Ｗｅｂページ要求に応答して戻される場合において、初期Ｗｅｂページが、単一回の要求−応答でレンダリングされることを許す。図３Ｂは、動的レンダリングコントロールが、Ｗｅｂページの動的レンダリングコントロールに関連する部分が更新されるべきであると決定すると、Ｗｅｂページが更新されるべき場合に、クライアントにおいて行われるプロセス３００Ｂを示す。具体的には、Ｗｅｂページの動的レンダリングコントロールの部分が更新されるべきことを検出すると（行為３２０）、動的レンダリングコントロールは、更新されたページをレンダリングするのに必要とされる更新されたデータにアクセスする（行為３２１）。このことは、動的レンダリングコントロールが、ネットワークを介して、更新されたデータにアクセスすることを含むことが可能である。次に、動的レンダリングコントロールは、その更新されたデータを使用して、Ｗｅｂページの動的レンダリングコントロールの部分を更新する（行為３２２）。
【００４９】
方法が、図３Ａおよび図３Ｂに関連して説明されてきたが、本発明の原理は、サーバコンピューティングシステムの１つまたは複数のプロセッサによって実行されると、そのコンピューティングシステムに、これらの方法のすべて、もしくはいくつかの部分、またはいずれか、もしくは両方を実行させる１つまたは複数のコンピュータ実行可能命令を有する１つまたは複数のコンピュータ可読媒体を含むコンピュータプログラム製品を範囲に含む。例えば、図１を参照すると、メモリ１０４および通信チャネル１０８が、そのようなコンピュータ可読媒体の例を表すことが可能である。メモリ１０４は、物理ストレージおよび／またはメモリ媒体の形態で物理コンピュータ可読媒体の例を表す。また、本発明の原理は、ハードウェア、ソフトウェア、またはハードウェアとソフトウェアの組合せを介して、図３Ａおよび／または図３Ｂの方法の諸部分のすべてを実行するように構成されたコンピューティングシステム自体も範囲に含む。
【００５０】
したがって、本発明の原理は、動的レンダリングコントロールが初期にレンダリングするのに必要とされる情報を獲得するのに、さらなるネットワーク帯域幅を使用する必要性を完全に回避しながら、ページの中で動的レンダリングコントロールを使用する機構を許す。これにより、Ｗｅｂページをレンダリングする効率が向上する。
【００５１】
本発明は、本発明の趣旨または不可欠な特徴を逸脱することなく、他の特定の形態で実施されることも可能である。説明される実施形態は、すべての点で、単に例示的であり、制限的ではないと考えられるべきである。したがって、本発明の範囲は、以上の説明によってではなく、添付の特許請求の範囲によって示される。特許請求の範囲の均等の意義および範囲に含まれるすべての変更が、特許請求の範囲に包含されるべきものとする。
【図面の簡単な説明】
【００５２】
【図１】本発明の原理の実施形態が機能することが可能なコンピューティングシステムを示す図である。
【図２】本発明の実施形態による、応答が、動的レンダリング成分に関する初期データを含むクライアントとサーバの間の要求−応答フローを示す図である。
【図３Ａ】本発明の実施形態による、サーバによって提供される初期データを使用してページを初期にレンダリングするための方法を示す流れ図である。
【図３Ｂ】動的レンダリングコントロールが、ページの動的レンダリングコントロールに関連する部分を再レンダリングする方法を示す流れ図である。
【図４】関連する初期データソースデータ構造を有するページの表現を概略で示す図である。
【図５】サーバが、初期データソースデータ構造を使用して別のネットワークソースから初期データにアクセスする方法を示す流れ図である。
【図１】
2009530736.tif 000007
【図２】
2009530736.tif 000008
【図３Ａ】
2009530736.tif 000009
【図３Ｂ】
2009530736.tif 000010
【図４】
2009530736.tif 000011
【図５】
2009530736.tif 000012
【国際調査報告】
2009530736.tif 000013
2009530736.tif 000014