(57)【要約】  本発明は、ネットワーク応答バッファリング動作を管理する方法、システム、及びコンピュータプログラム製品に及ぶ。コンピュータシステムは、クライアントからコンテンツ要求を受信する。コンピュータシステムは、コンテンツを転送するときに用いるデフォルトの応答バッファリング動作を有している。コンピュータシステムは、要求されたコンテンツを供給するハンドラに要求をマッピングする。コンピュータシステムは、ハンドラに対するバッファリング動作データにアクセスする。要求されたコンテンツは少なくともバッファリング動作データに基づいて変更された応答バッファリング動作データに従って転送されるべきであるということを、コンピュータシステムは判断する。変更された応答バッファリング動作は、デフォルトの応答バッファリングに対する例外として要求されたコンテンツに対応する。コンピュータシステムは、ハンドラからの要求されたコンテンツの一部にアクセスする。コンピュータシステムは、変更された応答バッファ動作に従って要求されたコンテンツの一部をクライアントに転送する。
2009533757.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータシステムにおいてネットワーク応答バッファリング動作を管理する方法であって、
コンテンツを転送するときに用いられるデフォルトの応答バッファリング動作を有するコンテンツサーバが、クライアントからコンテンツ要求を受信する動作と、
前記要求されたコンテンツを供給するハンドラに前記要求をマッピングする動作と、
前記ハンドラに対するバッファリング動作データにアクセスする動作と、
少なくとも前記バッファリング動作データに基づいて、前記デフォルトの応答バッファリングに対する例外として前記要求されたコンテンツに対応する変更された応答バッファリング動作に従って前記要求されたコンテンツが転送されるべきであるということを判断する動作と、
前記ハンドラからの前記要求されたコンテンツの一部にアクセスする動作と、
前記変更された応答バッファリング動作に従って前記要求されたコンテンツの一部を前記クライアントに転送する動作と
を含むことを特徴とする方法。
【請求項２】
前記コンテンツ要求を受信する動作は、ＵＲＬを受信する動作を含むことを特徴とする請求項１記載の方法。
【請求項３】
前記コンテンツ要求を受信する動作は、ウェブサーバがコンテンツ要求を受信する動作を含むことを特徴とする請求項１記載の方法。
【請求項４】
前記要求されたコンテンツを供給するハンドラに前記要求をマッピングする動作は、前記ハンドラに対するハンドラＩＤにＵＲＬをマッピングする動作を含むことを特徴とする請求項１記載の方法。
【請求項５】
前記ハンドラに対するバッファリング動作データにアクセスする動作は、前記ハンドラに対する応答バッファリングがオフにされるべきであるということを示すバッファリング動作データにアクセスする動作を含むことを特徴とする請求項１記載の方法。
【請求項６】
前記ハンドラに対するバッファリング動作データにアクセスする動作は、前記ハンドラに対応するアプリケーションから応答バッファＡＰＩ呼び出しを受信する動作を含むことを特徴とする請求項１記載の方法。
【請求項７】
前記変更された応答バッファリング動作に従って前記要求されたコンテンツが転送されるべきであるということを判断する動作は、たとえ前記デフォルトの応答バッファリング動作が要求されたコンテンツをバッファリングすることになっていても、前記応答は応答バッファの利用可能メモリを超過するので要求されたコンテンツをバッファリングするべきではないということを判断する動作を含むことを特徴とする請求項１記載の方法。
【請求項８】
前記変更された応答バッファリング動作に従って前記要求されたコンテンツが転送されるべきであるということを判断する動作は、要求されたコンテンツが最初のバイトに対する時間の要件及び転送速度要件のうちの少なくとも１つを有しているということを判断する動作を含むことを特徴とする請求項１記載の方法。
【請求項９】
前記変更された応答バッファリング動作に従って前記要求されたコンテンツが転送されるべきであるということを判断する動作は、前記ハンドラがそれ自体のバッファリングを提供するということを判断する動作を含むことを特徴とする請求項１記載の方法。
【請求項１０】
前記変更された応答バッファリング動作に従って前記要求されたコンテンツが転送されるべきであるということを判断する動作は、たとえ前記デフォルトの応答バッファリング動作が要求されたコンテンツをバッファリングするべきではないということを示している場合であっても、要求されたコンテンツをバッファリングするべきであるということを判断する動作を含むことを特徴とする請求項１記載の方法。
【請求項１１】
前記変更された応答バッファリング動作に従って前記要求されたコンテンツの一部を前記クライアントに転送する動作は、前記コンテンツサーバが前記要求されたコンテンツの一部を前記クライアントに直接送信する動作を含むことを特徴とする請求項１記載の方法。
【請求項１２】
前記変更された応答バッファリング動作に従って前記要求されたコンテンツの一部を前記クライアントに転送する動作は、応答バッファ内に前記要求されたコンテンツの一部をバッファリングする動作を含むことを特徴とする請求項１記載の方法。
【請求項１３】
前記応答バッファ内に前記要求されたコンテンツの一部をバッファリングする動作は、前記応答バッファ内に１つまたは複数のコンテンツの他の部分とともに前記要求されたコンテンツの一部をバッファリングする動作を含むことを特徴とする請求項１２記載の方法。
【請求項１４】
前記要求されたコンテンツの一部に関して後処理動作を実行する動作をさらに含み、前記後処理動作は、前記コンテンツの一部を圧縮すること、前記コンテンツの一部を暗号化すること、前記コンテンツの前記一部をフィルタリングすること、前記コンテンツの一部をキャッシュに格納することの中から選択されることを特徴とする請求項１２記載の方法。
【請求項１５】
前記コンテンツサーバが前記応答バッファから処理された前記要求されたコンテンツの一部を取り出す動作と、
前記コンテンツサーバが処理された前記要求されたコンテンツの一部を前記クライアントに送信する動作と、
を更に含むことを特徴とする請求項１４記載の方法。
【請求項１６】
コンピュータシステムにおいてウェブベースのコンテンツに対するネットワーク応答バッファリング動作を管理する方法であって、
ウェブサーバがクライアントからＵＲＬを受信する動作であって、前記コンテンツサーバがウェブベースのコンテンツを転送する場合に用いられるデフォルトの応答バッファリング動作を有する、そのような動作と、
前記ＵＲＬで示された前記ウェブサーバのネームスペースの一部に対する要求されたウェブベースのコンテンツを供給するように構成されたハンドラに前記ＵＲＬをマッピングする動作と、
前記ハンドラに対するバッファリング動作データにアクセスする動作と、
前記バッファリング動作データに少なくとも基づいて、前記デフォルトの応答バッファリングに対する例外として前記要求されたウェブベースのコンテンツに対応する変更された応答バッファリング動作に従って前記要求されたウェブベースのコンテンツが転送されるべきであるということを判断する動作と、
前記ハンドラからの前記要求されたウェブベースのコンテンツの一部にアクセスする動作と、
前記変更された応答バッファ動作に従って前記要求されたウェブベースのコンテンツの一部を前記クライアントに転送する動作と
を含むことを特徴とする方法。
【請求項１７】
前記ハンドラに対するバッファリング動作データにアクセスする動作は、前記ハンドラによって供給される前記ウェブサーバのネームスペースの複数の部分の中から選択される前記ウェブサーバのネームスペースの一部に対するバッファリング動作データにアクセスする動作を含むことを特徴とする請求項１６記載の方法。
【請求項１８】
前記変更された応答バッファリング動作に従って前記要求されたウェブベースのコンテンツが転送されるべきであるということを判断する動作は、ハンドラに対応しているアプリケーションに基づいて変更された応答バッファリング動作に従って前記要求されたウェブベースのコンテンツを転送するべきであるということを判断する動作を含むことを特徴とする請求項１６記載の方法。
【請求項１９】
前記変更された応答バッファリング動作に従って前記要求されたウェブベースのコンテンツが転送されるべきであるということを判断する動作は、前記要求されたウェブベースのコンテンツを前記要求されたウェブベースのコンテンツのコンテンツタイプに基づいて前記変更された応答バッファリング動作に従って転送するべきであるということを判断する動作を含むことを特徴とする請求項１６記載の方法。
【請求項２０】
コンピュータシステムであって、
１つまたは複数のプロセッサと、
システムメモリと、
コンテンツサーバ表すコンピュータ実行可能命令を記憶した１つまたは複数のコンピュータ可読媒体と、
を含み、
前記コンテンツサーバは、
コンテンツを転送するときのデフォルトの応答バッファリング動作を有し、
クライアントからコンテンツ要求を受信し、
前記要求されたコンテンツを供給するハンドラに前記要求をマッピングし、
前記ハンドラに対するバッファリング動作データにアクセスし、
少なくとも前記バッファリング動作データに基づいて、前記デフォルトの応答バッファリングに対する例外として前記要求されたコンテンツに対応する変更された応答バッファリング動作に従って前記要求されたコンテンツが転送されるべきであるということを判断し、
前記ハンドラからの前記要求されたコンテンツの一部にアクセスし、
前記変更された応答バッファリング動作に従って前記要求されたコンテンツの一部を前記クライアントに転送する
するように構成されることを特徴とするコンピュータシステム。
【発明の詳細な説明】
【背景技術】
【０００１】
コンピュータシステム及び関連技術は、社会の様々な側面に影響を与える。実際、情報を処理するコンピュータシステムの能力は、我々が暮らしかつ仕事をする方法を変化させた。コンピュータシステムの出現以前に手作業で実行された多くのタスク（例えば、文書処理、スケジューリング、及びデータベース管理）は、コンピュータシステムにより現在では一般に処理されている。最近では、コンピュータシステムは、互いに、そして、他の電子デバイスに接続されて、コンピュータシステム及びその他の電子デバイスにより電子データを転送することができる有線及び無線の両方のコンピュータネットワークを形成している。その結果、コンピュータシステムで実行される多くのタスク（例えば、音声通信、電子メールへのアクセス、ホームエレクトロニクスの制御、ウェブ閲覧、及び文書の印刷）は、有線及び／または無線のコンピュータネットワークを介した多くのコンピュータシステム及び／または他の電子デバイスの間の通信（例えば、電子的コンテンツの交換）を含む。
【０００２】
多くのコンピュータ環境では、コンテンツは、要求／応答の形式で交換される。例えば、要求コンピュータシステムのウェブブラウザは、サーバコンピュータシステムのウェブサーバにコンテンツ要求を送信する。サーバコンピュータシステムは要求を受信し、ウェブサーバは要求を処理して（例えば、協働するサーバサイドコンポーネントからなるパイプラインに要求を通す）、要求されたコンテンツを識別する。次に、ウェブサーバは、応答を形成する際に識別した要求されたコンテンツを含める。サーバコンピュータシステムは、要求コンピュータシステムに応答を返信する。要求コンピュータシステムは応答を受信して、ウェブブラウザは要求したコンテンツを提示する。
【０００３】
応答を形成して要求されたコンテンツを含める際、及び要求されたコンテンツを含む応答を送信する場合に、ウェブサーバは様々な異なる技術を利用することができる。ストリーミングは、要求されたコンテンツを含む応答を形成して送信する１つの技術である。ストリーミングは、要求されたコンテンツの一部（複数の部分）が（例えば、アプリケーションコンポーネントから）利用可能になるように、要求されたコンテンツの一部をウェブブラウザに送信するウェブサーバを含む。例えば、音声ファイル／映像ファイルの転送が完了するまで、ウェブサーバは、特定の速度でウェブブラウザに音声ファイル／映像ファイルをストリーミングすることができる。
【０００４】
応答バッファリングは、要求されたコンテンツを含む応答を形成する別の技術である。応答バッファリングは、任意の要求されたコンテンツをウェブブラウザに送信する前に、メモリ内に要求されたコンテンツの複数部分を記憶して、メモリ内に完全な応答を集めるウェブサーバを含んでいる。要求されたコンテンツの収集が完了した後に、完全な応答がウェブブラウザに送信される。例えば、ウェブページ用の全てのＨＴＭＬ部分が集められるまで、ウェブサーバは様々な異なるＨＴＭＬ部分をメモリに記憶することができる。ＨＴＭＬ部分の全てが集められた後に、ウェブサーバは完成したウェブページをウェブブラウザに送信することができる。
【０００５】
応答バッファリングは、様々な理由で効果的であり得る。例えば、応答バッファリングは、様々な方法でサーバの性能を向上させることができる。応答バッファリングは、ネットワーク帯域幅の利用をより効率的し、少容量の要求されたコンテンツを含む頻繁な応答の送信に付随するオーバヘッドを（例えば、最適パケットサイズと比べて）小さくする。このことは、動的コンテンツを構築するサーバアプリケーションにとって特に有効であるかもしれない。なぜならこれらのアプリケーションは高い頻度でコンテンツのより小なる部分をしばしば生成するからである。
【０００６】
更に、応答バッファリングは、応答の送信に先立って応答の後処理をできるようにする。例えば、ウェブサーバは、ウェブブラウザへの応答の送信に先立って、応答を圧縮し、暗号化し、フィルタリングし、キャッシュに格納するなどといったことができる。
【０００７】
しかしながら、応答バッファリングは、一部のアプリケーション及びコンテンツタイプには適していないかもしれない。例えば、大容量のコンテンツを生成するアプリケーションは、メモリのオーバヘッド及び／または制約事項のためにコンテンツをバッファリングすることができないかもしれない。更に、一部のアプリケーションは、ストリーミング動作を必要とする場合があり（例えば、映像、音声、その他）、よって応答バッファリングに適合しない。
【０００８】
ウェブサーバプラットフォームはしばしば、各々が異なったバッファリング要件を有する多数のコンテンツタイプ及び多数のアプリケーション技術をサポートする。しかしながら、コンテンツタイプ毎にかつ／またはアプリケーション毎に応答バッファリングを制御する限定されたメカニズムが存在する。更に、バッファリング要件は、例えば、応答のランタイム特性（feature）（例えば、サイズ）に応じて、経時変化するかもしれない。
【０００９】
残念なことに、概してウェブサーバは、変化したランタイム特性に対応する方法を有していない。よって、より適当な応答バッファ動作が特定の応答に対して可能であるときでさえ、ウェブサーバは、従前の設定及び／またはコンテンツタイプもしくはアプリケーションの典型的な特徴に基づいてより適当でない応答バッファ動作を選択するかもしれない。例えば、要求されたコンテンツに対するアプリケーションのハンドルがそれ自体のバッファを設ける（結果として、少なくとも部分的に二重バッファとなる）場合であっても、ウェブサーバは、要求されたコンテンツの複数部分をバッファリングするかもしれない。一方、要求されたコンテンツがより小さいコンテンツ部分を多数含むときでさえ、ウェブサーバは、コンテンツタイプに基づいて要求されたコンテンツをバッファリングしないかもしれない。
【００１０】
更に、一部の環境では、応答バッファリングは、コンテンツに対する転送要件に背く原因になるかもしれない。例えば、最初のバイトまでの時間の要件または特定の転送速度要件を有するバッファリングコンテンツは、コンテンツの転送に最初のバイトまでの時間の要件の超過をもたらすことやまたは特定の転送速度に満たない速度でのコンテンツの転送をもたらすことがあるかもしれない。よって、転送要件を破るのを避けるために、ウェブサーバは、任意のタイプのコンテンツを決してバッファリングしないことをデフォルトにするかもしれない（または、応答バッファリング機能を全く含むことができない）。従って、応答バッファリングから利益を得るそれらのコンテンツタイプさえ、応答バッファリングを利用することが許容されないかまたは利用することができない。
【発明の開示】
【課題を解決するための手段】
【００１１】
本発明は、ネットワーク応答バッファリング動作を管理する方法、システム及びコンピュータプログラム製品に及ぶ。コンピュータシステムは、クライアントからのコンテンツ要求を受信する。コンピュータシステムは、コンテンツを転送するときに用いるデフォルトの応答バッファリング動作を有する。コンピュータシステムは、要求されたコンテンツを供給するハンドラにその要求をマッピングする。
【００１２】
コンピュータシステムは、ハンドラに対するバッファリング動作データにアクセスする。コンピュータシステムは、要求されたコンテンツが、少なくともバッファリング動作データに基づいて変更された応答バッファリング動作に従って転送されるべきであるということを判断する。変更された応答バッファリング動作は、デフォルトの応答バッファリングに対する例外として、要求されたコンテンツに対応する。コンピュータシステムは、ハンドラからの要求されたコンテンツの一部にアクセスする。コンピュータシステムは、変更された応答バッファリング動作に従って、要求されたコンテンツの一部をクライアントに転送する。
【００１３】
この概要は、簡易化した形式でいくつかの概念を説明し、当該概念の詳細は実施の形態で詳しく説明する。この概要は、請求された発明の重要な特徴または本質的特徴を識別することを意図していないし、請求された発明の範囲を決定する際の補助として用いられることを意図していない。
【００１４】
本発明の更なる特徴及び利点は、以下に続く詳細な説明に説明されていて、一部は該説明から明らかにされ、または、本発明の実施により理解され得る。本発明の特徴及び利点は、添付の請求項において特に指摘された機器及び組み合わせによって実現しかつ得ることができる。以下に記載されるように、本発明のこれらの特徴及び他の特徴は、以下の説明及び添付の請求の範囲から更に十分に明らかになり、または以下に説明される本発明の実施により理解することができる。
【００１５】
本発明の上記した利点及び特徴並びにその他の利点及び特徴を得ることができる方法を説明するために、上記に簡潔に説明した本発明のより細かい説明が、添付の図面に示された本発明の特定の実施形態を参照して提供される。これらの図面は、本発明の典型的な実施形態だけを示し、従って、その範囲を限定していると考えられるべきでなく、本発明は、追加的な詳細部分及び添付の図面を用いて記述されかつ説明されている。
【発明を実施するための最良の形態】
【００１６】
本発明は、ネットワーク応答バッファリング動作を管理する方法、システム及びコンピュータプログラム製品に及ぶ。コンピュータシステムは、クライアントからコンテンツ要求を受信する。コンピュータシステムは、コンテンツを転送するときに用いるデフォルトの応答バッファリング動作を有する。コンピュータシステムは、要求されたコンテンツを供給するハンドラにその要求をマッピングする。
【００１７】
コンピュータシステムは、ハンドラに対するバッファリング動作データにアクセスする。コンピュータシステムは、要求されたコンテンツが、少なくともバッファリング動作データに基づいて変更された応答バッファリング動作に従って転送されるべきであるということを判断する。変更された応答バッファリング動作は、デフォルトの応答バッファリングに対する例外として、要求されたコンテンツに対応する。コンピュータシステムは、ハンドラからの要求されたコンテンツの一部にアクセスする。コンピュータシステムは、変更された応答バッファリング動作に従って、要求されたコンテンツの一部をクライアントに転送する。
【００１８】
本発明の実施形態は、以下により詳細に論じるように、コンピュータハードウェアを含む専用コンピュータまたは汎用コンピュータを含んでいてもよい。本発明の範囲に含まれる実施形態は、また、記憶されたコンピュータ実行可能命令またはデータ構造を伝えるかまたは有しているコンピュータ可読媒体を含む。かかるコンピュータ可読媒体は、汎用コンピュータまたは専用コンピュータがアクセスすることができる任意の利用可能媒体であってもよい。一例であってこの例に限らないが、コンピュータ可読媒体は、コンピュータ可読の記憶媒体を含んでいてもよい。コンピュータ可読の記憶媒体は、例えば、ＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭ、ＣＤ−ＲＯＭもしくはその他の光学的ディスク記憶装置、磁気ディスク記憶装置もしくは他の磁気記憶デバイス、または、コンピュータ実行可能命令もしくはデータ構造の形式で所望のプログラムコード手段を記憶するために用いることができかつ汎用コンピュータまたは専用コンピュータがアクセスすることができる任意の他の媒体などである。
【００１９】
本明細書及び特許請求の範囲において、「ネットワーク」は、コンピュータシステム及び／またはモジュールの間の電子データの移送を可能にする１つ以上のデータリンクとして定義される。情報がネットワークまたは別の通信接続（配線接続、無線、または、配線接続もしくは無線の組み合わせ、のいずれか）を介してコンピュータへ転送されるかまたは提供されると、コンピュータは、コンピュータ可読媒体として接続を正しく見なす。よって、一例であってこの例に限らないが、コンピュータ可読媒体は、コンピュータ実行可能命令の形式の所望のプログラムコード手段またはデータ構造を伝えるかまたは記憶するために用いることができかつ汎用コンピュータまたは専用コンピュータがアクセスすることができるネットワークまたはデータリンクを含んでいてもよい。
【００２０】
コンピュータ実行可能命令は、例えば、汎用コンピュータ、専用コンピュータ、または専用処理デバイスに特定の機能または機能群を実行させる命令及びデータを含む。コンピュータ実行可能命令は、例えば、二進数、アセンブリ言語などの中間フォーマット命令、またはソースコードであってもよい。本発明は構造上の特徴及び／または方法論的動作に特有の言語で説明されているが、添付の特許請求の範囲において画定される本発明は、開示される特徴または上記の動作に必ずしも限定されるわけではないということが理解されるべきである。むしろ、開示される特徴及び動作は、特許請求の範囲を実施する実施例の形式として開示される。
【００２１】
当業者は、本発明が、コンピュータシステム構成の多くのタイプを有するネットワークコンピュータ環境で実施されてもよいということを認めるだろう。コンピュータシステム構成には、パーソナルコンピュータ、デスクトップコンピュータ、ラップトップコンピュータ、携帯用デバイス、マルチプロセッサシステム、マイクロプロセッサベースの家電またはプログラム可能な家電、ネットワークＰＣ、ミニコンピュータ、メインフレームコンピュータ、携帯電話、ＰＤＡ、ページャ、などを含む。本発明は、また、ネットワークを介して（配線接続されたデータリンク、無線データリンク、または、配線接続されたデータリンク及び無線データリンクの組合せによって）リンクされた、ローカルコンピュータシステム及びリモートコンピュータシステムのいずれもがタスクを実行する分散システム環境において実施されてもよい。分散システム環境では、プログラムモジュールは、ローカルの記憶装置及びリモートの記憶装置の両方に設けてもよい。
【実施例１】
【００２２】
図１は、ネットワーク応答バッファリング動作の管理を容易にするコンピュータアーキテクチャ１００の例を示す。コンピュータアーキテクチャ１００は、コンピュータシステム１０１及びコンピュータシステム１１１を含む。コンピュータシステム１０１及びコンピュータシステム１１１の各々は、ネットワーク１９１に接続されている。ネットワーク１９１は、例えば、ローカルエリアネットワーク（「ＬＡＮ」）、広域ネットワーク（「ＷＡＮ」）、またはインターネットなどの任意のタイプのネットワークであってもよい。よって、コンピュータシステム１０１及びコンピュータシステム１１１の様々なコンポーネントは、互いにもネットワーク１９１に接続された他のコンポーネントにも、データを送受信することができる。従って、コンポーネントは、メッセージ関連データを生成して、ネットワーク１１９を介してメッセージ関連データ（例えば、インターネットプロトコル（「ＩＰ」）データグラム及び、伝送制御プロトコル（「ＴＣＰ」）、ハイパーテキスト転送プロトコル（「ＨＴＴＰ」）などのＩＰデータグラムを利用する他の上位層プロトコル）を交換することができる。
【００２３】
通常、コンピュータシステム１０１は、コンテンツを要求し、受信し、提示する。例えば、コンテンツブラウザ１０２（例えば、ウェブブラウザ）は、コンテンツＩＤ（例えば、「ＵＲＬ」（Uniform Resource Locator））及び返信用電子アドレスを含むコンテンツ要求をネットワーク１９１上へ送信することができる。ネットワーク１９１のコンポーネント（例えば、ルータ）は、コンテンツＩＤで識別されるサーバコンピュータシステム（例えば、ウェブサーバを含む）に、要求を送ることができる。コンピュータシステム１０１は、（例えば、返信用電子アドレスに送信された）サーバコンピュータシステムからの応答で要求したコンテンツを受信することができる。コンピュータシステム１０１は、要求したコンテンツを処理することができ、コンテンツブラウザ１０２は、要求したコンテンツを提示することができる。
【００２４】
通常、コンピュータシステム１１１は、コンテンツ要求を受信し、要求を処理して要求されたコンテンツを識別し、受信した要求に対する応答で識別したコンテンツを返送する。例えば、コンテンツサーバ１１３（例えば、ウェブサーバ）は、ネットワーク１９１からコンテンツＩＤ（例えば、「ＵＲＬ」（Uniform Resource Locator））及び返信用電子アドレスを含むコンテンツ要求を受信することができる。コンテンツサーバ１１３は、ディスパッチテーブル１１２を参照して、要求されたコンテンツを生成することができるコンテンツ供給アプリケーション１１４内のアプリケーションハンドラを識別することができる。コンテンツサーバ１１３は、内部コンテンツ要求（例えば、プログラム呼び出し）を識別したアプリケーションハンドラに送ることができる。
【００２５】
識別したアプリケーションハンドラは、内部コンテンツ要求に応じてコンテンツサーバ１１３へ要求されたコンテンツの少なくとも一部を返送することができる。コンテンツタイプ（例えば、「ＨＴＭＬ」（ハイパーテキストマークアップ言語）文書、画像データ、音声データ、映像データ等）により、アプリケーションハンドラは、要求されたコンテンツを異なった形で返すことができる。例えば、ＨＴＭＬ文書を返送する場合、ハンドラは、完全なＨＴＭＬ文書を単一のコンテンツ部分として返送することができる。一方、映像データについては、ハンドラは、映像データの一部が生成されると該映像データの一部を返送することができる。
【００２６】
コンピュータシステム１１１はまた、バッファ１１６を含む。様々な入力に応じて、コンテンツサーバ１１３は、要求されたコンテンツを含む応答を送信する前に、要求されたコンテンツをバッファ１１６内にバッファリングすることもしないこともできる。一部の入力は、例えば応答サイズ及びハンドラのコンテンツ生成速度などのランタイム情報であってもよい。他の入力は、例えばデフォルトのバッファリング動作及びハンドラ特有のバッファリング動作データなどの規則であってもよい。ハンドラ特有のバッファリング動作データは、例えばランタイム情報などの他の入力に基づいて生じることになっている応答バッファリング動作を示す。
【００２７】
要求されたコンテンツがバッファリングされない場合、コンテンツサーバ１１３は、コンテンツを要求したコンピュータシステムに、要求されたコンテンツを含む応答を（例えば、返信用電子アドレスを用いて）送信することができる。要求されたコンテンツがバッファ１１６にバッファリングされる場合、後処理パイプライン１１５の処理コンポーネントは、要求されたコンテンツを処理すること（例えば、暗号化すること、フィルタリングすること、バッファリングすること、キャッシュに格納することなど）ができる。処理が完了すると、コンテンツサーバ１１３は、バッファ１１６からバッファリングされたかつ／または処理されたコンテンツを取り出すことができる。コンテンツサーバ１１３は、バッファリングされたかつ／または処理されたコンテンツを含む応答を（例えば、返信用電子アドレスを用いて）コンテンツを要求したコンピュータシステムに送信することができる。ウェブブラウザ１０２は、あらゆるバッファリングされたコンテンツ及び／またバッファリングされなかったコンテンツを受信して表示することができる。
【００２８】
図２は、ネットワークバッファ応答動作を管理する方法２００の例のフローチャートを示す。方法２００は、コンピュータアーキテクチャ１００で示したコンポーネント及びデータに関して説明される。
【００２９】
方法２００は、クライアントからのコンテンツ要求を受信する動作を含む（動作２０１）。例えば、コンテンツサーバ１１３は、コンテンツＩＤ１３１（例えば、ＵＲＬ）を含む要求１８１をコンテンツブラウザ１０２から受信することができる。コンテンツブラウザ１０２は、コンピュータシステム１０１の電子アドレスも含むことができる要求１８１を送信して、コンテンツブラウザ１０２で表示するコンテンツを要求することができる。
【００３０】
コンテンツサーバ１１３は、コンテンツを転送するときに用いるデフォルトのバッファリング動作を有することができる。例えば、コンテンツサーバ１１３に対するデフォルト設定は、要求されたコンテンツを含む応答を送信する前に、バッファ１１６において要求されたコンテンツを完全にバッファリングすることになっていてもよい。よって、デフォルトで、完全な応答は後処理のために、処理コンポーネント１４１、１４２等で利用可能にされてもよい。あるいは、コンテンツサーバ１１３に対するデフォルト設定は、要求されたコンテンツを含む応答を送信する前に、コンテンツの特定の量（たとえ特定の量が要求されたコンテンツの全部に満たない場合であっても）をバッファリングすることになっていてもよい。例えば、当該特定の量は、ネットワーク１９１で用いられるパケットサイズに設定されていてもよい。一方、コンテンツサーバ１１３はまた、要求されたコンテンツをバッファリングすることなしに要求されたコンテンツを送信するようにデフォルトで設定されていてもよい。
【００３１】
コンテンツサーバ１１３は、コンテンツのタイプに基づいてデフォルト動作を変化させることができる。例えば、ＨＴＭＬ文書に対するデフォルト動作は、完全なバッファリングであってもよい。一方、音声データに対するデフォルト動作は、バッファリングがなくてもよい。画像データは、ネットワーク１９１のパケットサイズまでの部分的なバッファリングしてもよい。しかしながら、コンテンツタイプに基づく上述のデフォルトのバッファリング動作は、単に例であって、これらのコンテンツタイプ及び他のコンテンツタイプに対するその他のデフォルトのバッファリング動作があり得るということが理解されなければならない。
【００３２】
コンテンツサーバ１１３は、（アプリケーションが同じタイプのコンテンツまたは異なるタイプのコンテンツを生成してもしなくても）アプリケーションに基づいてデフォルト動作を変化させることができる。いくつかの実施形態では、異なったアプリケーションハンドラは、同じコンテンツタイプを生成する。例えば、ハンドラ１２４は、（例えば、ＰＨＰスクリプトコードを実行することによって）ＨＴＭＬ文書を生成するハイパーテキストプロセッサ（「ＰＨＰ」）であってもよい。同様に、ハンドラ１３４は、ＨＴＭＬ文書を（例えば、ＶＢスクリプトまたはＪｓｃｒｉｐｔコードを実行することによって）生成するアクティブサーバページ（「ＡＳＰ」）ハンドラであってもよい。別のハンドラは、（例えば、「ＣＦＭＬ」（コールドフュージョンマークアップ言語）で書かれた実行タグを処理することにより）ＨＴＭＬ文書を生成するコールドフュージョンハンドラであってもよい。
【００３３】
ハンドラ１２４によって生成されるＨＴＭＬに対するデフォルトのバッファリング動作は、ハンドラ１３４及びＨＴＭＬを生成する他のハンドラにより生成されるＨＴＭＬに対するデフォルト動作と異なっていてもよい。例えば、ハンドラ１２４によって生成されるＨＴＭＬ文書に対するデフォルト動作は、完全なバッファリングを含むことができる。一方、ハンドラ１３４によって生成されるＨＴＭＬ文書は、特定のサイズまでのバッファリングを含むことができる。
【００３４】
他の実施形態では、異なったアプリケーションハンドラは、異なったコンテンツタイプを生成する。これらのアプリケーションハンドラに対するデフォルトのバッファリング動作も変化し得る。しかしながら、アプリケーションに基づく上述のバッファリング動作は、単に例であって、これらのアプリケーション及び他のアプリケーションに対するその他のデフォルトのバッファリング動作があり得るということが理解されなければならない。
【００３５】
方法２００は、要求されたコンテンツを供給するハンドラに要求をマッピングする動作を含む（動作２０２）。例えば、要求１８１の受信に応じて、コンテンツサーバ１１３は、ハンドラ１３４に要求１８１をマッピングすることができる。図示したように、ディスパッチテーブル１１２は、コンテンツＩＤ、ハンドラＩＤ、及び動作データを含む１つ以上のデータ入力（エントリー）を有することができる。ハンドラＩＤは、対応するコンテンツＩＤにより要求されたコンテンツを生成するコンピュータシステム１１１におけるハンドラの識別を示す。動作データは、識別されたハンドラにおいて生成されるコンテンツに付随するべき（デフォルトの応答バッファリング動作を潜在的に変更する）応答バッファリング動作を示す。
【００３６】
要求をマッピングするために、コンテンツサーバ１１３は、ディスパッチテーブル１１２を参照して、受信したコンテンツＩＤに対応するハンドラＩＤを識別することができる。例えば、コンテンツサーバ１１３は、ディスパッチテーブル１１２を参照して、データ入力１３８がコンテンツＩＤ１３１に対応するということを判断することができる。データ入力１３８内で、ハンドラＩＤ１３２は、ハンドラ１３４へのポインタであり得る。動作データ１３３は、ハンドラ１３４で生成されるコンテンツに付随すべき（デフォルトの応答バッファリング動作を潜在的に変更する）応答バッファリング動作を示す。
【００３７】
データ入力１２８は、コンテンツＩＤ１２１、ハンドラＩＤ１２２、及び動作データ１２３を含む。よって、適切な場合、コンテンツサーバ１１３は、ディスパッチテーブル１１２を参照して、データ入力１２８がコンテンツＩＤ１２１に対応するということを判断することができる。データ入力１２８内で、ハンドラＩＤ１２２は、ハンドラ１２４へのポインタであり得る。動作データ１２３は、ハンドラ１２４において生成されるコンテンツに付随すべき（デフォルトの応答バッファリング動作を潜在的に変更する）応答バッファリング動作を示す。
【００３８】
方法２００は、ハンドラに対するバッファ動作にアクセスする動作を含む（動作２０３）。例えば、コンテンツサーバ１１３は、ハンドラ１３４に対する動作データ１３３にアクセスすることができる。動作データ１３３は、デフォルトの応答バッファリング動作に従ってハンドラ１３４において生成されるコンテンツをハンドラ１３４がバッファリングすることになっているということを示すことができる。例えば、デフォルトの応答バッファリング動作が要求されたコンテンツを完全にバッファリングすることになっている場合、動作データは、デフォルトの応答バッファリング動作の順守を示す値を含むことができる。一方、動作データ１３３は、デフォルトの応答バッファリング動作と異なった応答バッファリング動作に従ってハンドラ１３４において生成されるコンテンツをハンドラ１３４がバッファリングすることになっているということを示すことができる。例えば、デフォルトの応答バッファリング動作が要求されたコンテンツを完全にバッファリングすることになっている場合、動作データは、ハンドラ１３４において生成されるコンテンツは全くバッファリングされることになっていないということを示す値（例えば、ゼロ）を含むことができる。
【００３９】
通常、動作データは、例えば、コンテンツタイプ、アプリケーション、応答サイズ、ハンドラのコンテンツ生成速度等に基づいて応答バッファリング動作が管理されるべき方法を示すいかなるデータも含むことができる。
【００４０】
方法２００は、要求されたコンテンツが少なくとも１つの応答バッファリング動作データに基づいて変更された応答バッファリング動作に従って転送されることになっているということを判断する動作を含む（動作２０４）。例えば、コンテンツサーバ１１３は、ハンドラ１３４で生成される要求されたコンテンツが動作データ１３３に従って転送されることになっているということを判断することができる。動作データ１３３は、ハンドラ１３４で生成される要求されたコンテンツが変更された応答バッファリング動作に従って転送されることになっているということを示すことができる。よって、動作データ１３３は、ハンドラ１３４からのコンテンツに対する応答バッファ動作がコンテンツサーバ１１３のデフォルトの応答バッファリング動作に対する例外であるということを示すことができる。
【００４１】
方法２００は、要求されたコンテンツの一部にアクセスする動作を含む（動作２０５）。例えば、コンテンツサーバ１１３は、内部コンテンツ要求１８２（例えば、プログラム呼び出し）をハンドラ１３４に送信することができる。内部コンテンツ要求１８２の受信に応じて、ハンドラ１３４は、アプリケーション１３５を呼び出して、要求されたコンテンツを生成することができる。次に、アプリケーション１３５は、生成したどんなコンテンツもハンドラ１３４に渡すことができる。ハンドラ１３４は、コンテンツサーバ１１３にコンテンツ１８３を返送することができる。適切な場合、ハンドラ１２４は、同様にアプリケーション１２５を呼び出して要求されたコンテンツを生成することができ、さらにコンテンツサーバ１１３に要求されたコンテンツを返送することができる。
【００４２】
方法２００は、変更された応答バッファ動作に従って、要求されたコンテンツの一部を転送する動作を含む（動作２０６）。例えば、コンテンツサーバ１１３は、動作データ１３３に示される変更された応答バッファ動作に従って、コンテンツ１８３を転送することができる。
【００４３】
よって、デフォルトの応答バッファ動作に応じて、コンテンツサーバ１１３は、コンテンツ１８３をバッファリングしてもよいししなくてもよい。デフォルトの応答バッファ動作がコンテンツ１８３に対する（少なくとも部分的な）バッファリングを示していたとしても、コンテンツ１８３はいかなるバッファリングもなしにコンテンツブラウザ１０２に送信されることになっているということを、変更された応答バッファ動作が示すかもしれない。よって、コンテンツサーバ１１３は、コンテンツ１８３をバッファリングすることなしにコンテンツ１８３を含む応答１８６をコンテンツブラウザ１０２に送信することができる。
【００４４】
一方、デフォルトの応答バッファ動作がコンテンツ１８３をバッファリングしないということを示しているにもかかわらず、コンテンツ１８３はバッファ１１６に（少なくとも部分的に）バッファリングされることになっているということを、変更された応答バッファ動作は示すかもしれない。よって、コンテンツサーバ１１３は、バッファ１１６にコンテンツ１８２をバッファリングする。一旦バッファリングされると、後処理パイプライン１１５の処理コンポーネント１４１、処理コンポーネント１４２、及び他の処理コンポーネントは、コンテンツ１８３にアクセスして処理することができる。いくつかの実施形態では、コンテンツはバッファ１１６にバッファリングされるが、いかなる後処理も受けない。
【００４５】
適切な場合、例えば、他のコンテンツとともにコンテンツ１８３が要求１８１への完全な応答を示す場合、バッファリングされた／処理されたコンテンツ１８４は、コンテンツサーバ１１３へ返送され得る。それに応じて、コンテンツサーバ１１３は、バッファされた／処理されたコンテンツ１８４を含む応答１８７をコンテンツブラウザ１０２へ送信することができる。
【００４６】
図３は、ネットワーク応答バッファリング動作の管理を容易にするコンピュータアーキテクチャ３００の例を示す。コンピュータアーキテクチャ３００は、コンピュータシステム３０１及びコンピュータシステム３１１を含む。コンピュータシステム３０１及びコンピュータシステム３１１の各々は、ネットワーク３９１に接続している。従って、コンポーネントは、メッセージ関連データを生成し、ネットワーク３９１を介してメッセージ関連データ（例えば、インターネットプロトコル（「ＩＰ」）データグラム及び、伝送制御プロトコル（「ＴＣＰ」）、ハイパーテキスト転送プロトコル（「ＨＴＴＰ」）などのＩＰデータグラムを利用する他の上位層プロトコル）を交換することができる。
【００４７】
通常、コンピュータシステム３０１は、ウェブベースのコンテンツを要求して、受信して、提示する。例えば、ウェブブラウザ３０２は、ネットワーク３９１上にＵＲＬ及び返信用電子アドレス（例えば、ＩＰアドレス）を含むコンテンツ要求を送信することができる。ネットワーク３９１のコンポーネント（例えば、ルータ）は、コンテンツＩＤで識別されるウェブサーバに要求を送ることができる。コンピュータシステム３０１は、（例えば、返信用ＩＰアドレスを送信した）ウェブサーバからの応答で要求したコンテンツを受信することができる。コンピュータシステム３０１は、要求したコンテンツを処理することができ、ウェブブラウザ３０２は要求したコンテンツを提示することができる。
【００４８】
通常、コンピュータシステム３１１は、ウェブベースのコンテンツに対する要求を受信し、要求を処理して要求されたウェブベースのコンテンツを識別し、さらに、受信した要求に応じて識別したウェブベースのコンテンツを返送する。例えば、ウェブサーバ３１３は、ＵＲＬ３３１を含む要求３８１をウェブブラウザ３０２から受信することができる。要求３８１はまた、ウェブブラウザ３０２への返信用ＩＰアドレスを含むことができる。コンテンツサーバ３１３は、ディスパッチテーブル３１２を参照して、要求３８１で要求されたコンテンツを生成することができるコンテンツ供給アプリケーション３１４のアプリケーションハンドラを識別することができる。例えば、ウェブサーバ３１３は、ＵＲＬ３３１に対応しているようなデータ入力（エントリー）３３８を識別することができる。データ入力３３８から、ウェブサーバ３１３は、ハンドラＩＤ３２２が、要求されたコンテンツを生成することができるハンドラ３２４へのポインタであるということを判断することができる。
【００４９】
コンピュータシステム３１１はまた、バッファ３１６を含む。ウェブサーバ３１３は、応答帯域幅を最適化してコンテンツの後処理機能（feature）を可能にするために、バッファ３１６内の全てのアプリケーションからの全てのコンテンツタイプをバッファリングするデフォルトの応答バッファ動作で構成され得る。しかしながら、様々な入力（例えば、応答サイズ、ハンドラのコンテンツ生成速度、ハンドラ特有のバッファリング動作データ等）に応じて、ウェブサーバ３１３は、要求されたコンテンツを含む応答を送信する前に、要求されたコンテンツをバッファ３１６にバッファリングすることもしないこともできる。
【００５０】
要求３８１の受信及びハンドラＩＤ３２２の識別に応じて、ウェブサーバ３１３は、（ハンドラ３２４に対する）バッファ動作データ３３３にアクセスすることができる。バッファ動作データの単位（granularity）は、ハンドラのマッピングであってもよい。応答バッファリング動作を特定した特定のアプリケーション／コンテンツタイプにハンドラのマッピングが対応するので、その単位は構成及び管理を容易にすることができる。更に、ＵＲＬ単位毎に応答バッファリング動作がサポートされるように、ハンドラのマッピングをＵＲＬ毎に画定してもよい。
【００５１】
例えば、データ入力３２８及びデータ入力３３８は、ＵＲＬ３２１及びＵＲＬ３３１とそれぞれ対応する。しかしながら、ＵＲＬ３２１及びＵＲＬ３３１はどちらもハンドラＩＤ３２２に対応する。よって、ＵＲＬ３２１及びＵＲＬ３３１に対するコンテンツは、ハンドラ３２４で生成される。それにもかかわらず、ＵＲＬ３２１に対して生成されたコンテンツ及びＵＲＬ３３１に対して生成されたコンテンツは、異なった応答バッファリング動作を有するように示されている。ＵＲＬ３２１に対するコンテンツは動作データ３２３に対応し、ＵＲＬ３２１に対するコンテンツは動作データ３３３に対応する。従って、ハンドラ３２４で生成された異なるコンテンツ部分は、異なる応答バッファリング動作を有することができる。
【００５２】
例えば、ハンドラ３２４は画像データを生成することができる。ＵＲＬ３２１は、複数のより小なる画像に関連付けられているとすることができる。よって、動作データ３２３は、これらのより小なる画像に対して、デフォルトの応答バッファリング動作（バッファリングを完成する）を利用するべきであるということを示すことができる。ＵＲＬ３２１でコンテンツ要求が受信されると、ウェブサーバ３１３は動作データ３２３にアクセスすることができる。
【００５３】
一方、ＵＲＬ３３１は、１つの非常に大なる画像に関連付けられているとすることができる。よって、動作データ３３３は、このより大なる画像に対して、デフォルトの応答バッファリング動作（バッファリングを完成する）をオフ（例えば、バッファサイズ＝０）にするべきであるということを示すことができる。ＵＲＬ３３１でコンテンツ要求が受信されると、ウェブサーバ３１３は、動作データ３３３にアクセスすることができる。
【００５４】
ＵＲＬ３７１でコンテンツ要求が受信されると、ウェブサーバ３１３はまた、動作データ３７３にアクセスして、ハンドラ３７４において生成されるコンテンツに対する応答バッファリング動作を識別することができる。
【００５５】
データ入力の動作データに基づいて、ウェブサーバ３１３は、要求されたコンテンツがデフォルトの応答バッファ動作に従ってまたはデフォルトの応答バッファ動作に対する例外を示している変更された応答バッファ動作に従って転送されるべきであるか否かを判断することができる。例えば、動作データ３３３に少なくとも部分的に基づいて、ウェブサーバ３１３は、コンテンツ形式のハンドラ３２４がバッファされるべきであるか（デフォルト）またはバッファされるべきでないか（変更された）を判断することができる。
【００５６】
いくつかの実施形態では、応答バッファリングをオフにするという要件は、ハード要件及びソフト要件と見なされ得る。ハード要件とは、ハンドラによって決定される要件である。例えば、ハンドラはデータをストリームしなければならないということを、ハンドラは（動作データを介して）示すことができる。ソフト要件は、様々な入力のバランスを取り、応答バッファリングをオフにすることが適当であるか否かを判断することができる。例えば、管理者は、コンテンツがストリームされることになっていようといまいと、最初のバイトに対する時間の厳格の要件、メモリ使用量、ネットワーク帯域幅使用量、後処理の必要性、応答サイズ、ハンドラの応答生成速度等のバランスをとっている応答バッファリングを潜在的にオフにするように動作データを構成することができる。
【００５７】
いくつかの実施形態では、応答に対する応答バッファリングを完全にオフにすることが適当であるかもしれない。例えば、相対的に大きな応答である場合（例えば、バッファ３１６の利用可能なメモリを超える）、コンピュータシステム３１１の性能に悪影響をもたらすかまたはメモリ内に記憶することが不可能であるかもしれない。よって、これらの実施形態では、ハンドラ及び／またはコンテンツタイプに対するバッファ動作データは、応答バッファリングがオフにされるべきであるということを示すことができる。
【００５８】
更に、コンテンツは、配信速度要件及び／または最初のバイトに対する時間の要件を有することができる。コンテンツをバッファリングすることは、配信速度要件及び最初のバイトに対する時間の要件に影響を及ぼすかもしれない。よって、これらの他の実施形態では、ハンドラ及び／またはコンテンツタイプに対するバッファ動作データは、応答バッファリングがオフにされるべきであるということを示すことができる。
【００５９】
更に、ハンドラは、それ自体のバッファリングを提供することができ、ウェブサーバ３１３がコンテンツを再びバッファリングすることを意図しない。二重にコンテンツをバッファリングすることは、資源の非効率的な使用となる。よって、これらの更なる実施形態では、ハンドラ及び／またはコンテンツタイプに対するバッファ動作データは、応答バッファリングがオフにされるべきであるということを示すことができる。
【００６０】
ウェブサーバ３１３は、ハンドラで生成されるコンテンツがバッファリングされるべきであるかまたはバッファリングされるべきでないかということを示す応答バッファリング閾値の使用をサポートする。管理者は、ハンドラに応答バッファ閾値を設定して、所望の応答バッファリング動作を実行することができる。応答バッファリング閾値は、どれくらいのデータがバッファリングされるべきであるかを示す数であってもよい。ゼロの応答バッファリング閾値は、応答バッファリングがオフにされているということを示すことができる。
【００６１】
生成されたコンテンツのサイズが対応するバッファリング閾値以下である場合、生成されたコンテンツをバッファリングすることができる。一方、生成されたコンテンツのサイズが対応するバッファリング閾値より大きい場合、生成されたコンテンツをバッファリングすることができない。いくつかの実施形態では、応答バッファリング閾値は、コンテンツをクライアントに送出する（flushing）前にバッファリングするべき特定のコンテンツ量を示す。コンテンツが利用可能なバッファより大きい場合、コンテンツ全体が送信されるまで、バッファを繰り返し満たして送出することができる。ウェブサーバ３１３は、各々のハンドラマッピングに対するバッファリング閾値を自動的に解明することができる。
【００６２】
ウェブサーバ３１３は、内部コンテンツ要求３８２をハンドラ３２４に送信して、ハンドラ３２４にＵＲＬ３３１を介してアクセスされるコンテンツを生成するよう要求することができる。それに応じて、ハンドラ３２４は、ウェブコンテンツ３８３をウェブサーバ３１３に返送することができる。続いて、ハンドラ３２４はまた、ウェブコンテンツ３８４をウェブサーバ３１３に返送することができる。
【００６３】
バッファリングがオフの場合（例えば、動作データ３３３は、応答バッファ閾値＝０を有する）、ウェブコンテンツ３８３及びウェブコンテンツ３８４は受信されたとたんにウェブブラウザ３０２に送信される。例えば、ウェブサーバ３１３は、ウェブコンテンツ３８３を含む応答３８６をウェブブラウザ３０２に送信することができる。続いて（ウェブコンテンツ３８４を受信した後に）、ウェブサーバ３１３は、ウェブコンテンツ３８４を含む応答３９６をウェブブラウザ３０２に送信することができる。
【００６４】
一方、バッファリングがオンの場合、ウェブサーバ３１３は、バッファ３１６内にウェブコンテンツ３８３をバッファリングすることができる。続いて（ウェブコンテンツ３８４を受信した後に）、ウェブサーバ３１３はまた、バッファ３１６内にウェブコンテンツ３８４をバッファリングすることができる。よって、ウェブコンテンツ３８３、３８４は、圧縮モジュール３４１、暗号化モジュール３４２、フィルタモジュール３４３、及びキャッシュモジュール３４４を含む後処理パイプライン３１５に利用可能になされる。従って、これらのモジュールのうちの１つまたは複数は、ウェブコンテンツ３８３／３８４を処理して、バッファリングされた処理されたウェブコンテンツ３８８をもたらすことができる。
【００６５】
処理が完了すると、ウェブサーバ３１３は、バッファリングされた及び／または処理されたウェブコンテンツ３８８をバッファ３１６から取り出すことができる。ウェブサーバ３１３は、バッファリングされた及び／または処理されたコンテンツ３８８を含む応答３８７を（例えば、返信用ＩＰアドレスを用いて）ウェブブラウザ３０２へ送信することができる。しかしながら、いくつかの実施形態では、ウェブコンテンツ３８３及びウェブコンテンツ３８４は、いかなる後処理も受けることなしにバッファリングされる。ウェブブラウザ３０２は、あらゆるバッファリングされたかつ／またはバッファリングされていないウェブベースのコンテンツを受信して表示することができる。
【００６６】
いくつかの実施形態では、応答バッファリングＡＰＩが、アプリケーションからの応答バッファリング動作を制御するために用いられる。例えば、図１では、アプリケーション１２５またはアプリケーション１３５は、応答バッファリングＡＰＩを呼び出して、応答バッファリングＡＰＩ自体の応答バッファリング動作を制御することができる。同様に、図３では、アプリケーション３２６またはアプリケーション３７６は、応答バッファリングＡＰＩを呼び出して、応答バッファリングＡＰＩ自体の応答バッファリング動作を制御することができる。
【００６７】
応答バッファリングＡＰＩは、ハード応答バッファリング要件を制御しかつ／または実施するために用いられ得る。例えば、応答バッファリングＡＰＩは、要求されたコンテンツを生成するアプリケーションにより用いられる任意の規則に基づいて、ストリーミング動作を実行するために用いられ得る。応答バッファリングＡＰＩを用いて、ディスパッチテーブルに含まれるデフォルトの応答バッファ動作も変更された応答バッファ動作も無効にすることができる。
【００６８】
応答バッファリングＡＰＩは、以下を含むことができる。即ち、
WriteResponse()‐クライアントにデータ送信するために用いられ、特定のハンドラに対する構成情報に基づいて応答バッファリングを内部で用いることができる。
【００６９】
Flush()‐クライアントへの応答バッファの送出を強制するために用いる。アプリケーションはこれを用いて、サーバのバッファリング動作を制御することができる。
【００７０】
DisableResponseBuffering()‐要求の残りの部分に対する応答バッファリングをオフにするために用いられる。
【００７１】
従って、本発明の実施形態は、コンテンツサーバに付随する異なるコンテンツタイプ及びアプリケーション部分に対する応答バッファリングを制御する能力を促進する。更に、実施形態は、例えば、応答サイズ及びハンドラの応答生成速度などのランタイム情報に関して応答バッファリング動作を画定するオプションを提供する。よって、例えば、コンテンツサーバは、通常、応答バッファリングを利用することができるが、さらに、ストリーミング動作を実現しかつ／または応答バッファによる大なるメモリ使用量を抑制することができる。
【００７２】
更に、アプリケーションに対する応答バッファリング動作を、管理者によって設定される構成設定を介して制御することができる。よって、アプリケーションコードは、コンテンツサーバの応答バッファの意味を認識する必要はない。あるいは、応答バッファリングＡＰＩを介して、アプリケーションは、それ自体の応答バッファリング動作を制御することができる。
【００７３】
本発明は、その精神または本質的特徴から逸脱することなく、他の特定の形態で具体化されてもよい。説明された実施形態は、あらゆる点で単に例示的であって限定的でないとみなされるべきである。従って、本発明の範囲は、前述の説明よりはむしろ添付の請求の範囲により示される。請求の範囲と同等の意味及び範囲内にあるどんな変更も、請求の範囲内に包含されるべきである。
【図面の簡単な説明】
【００７４】
【図１】ネットワーク応答バッファリング動作の管理を容易にするコンピュータアーキテクチャ例を示す図である。
【図２】ネットワーク応答バッファリング動作を管理する方法の例についてのフローチャートである。
【図３】ネットワーク応答バッファリング動作の管理を容易にする別のコンピュータアーキテクチャ例を示す図である。
【図１】
2009533757.tif 000003
【図２】
2009533757.tif 000004
【図３】
2009533757.tif 000005
【国際調査報告】
2009533757.tif 000006
2009533757.tif 000007