(57)【要約】      （修正有）【課題】ウェブサービスシステムにおいて各ウェブサーバから単一のコンピュータまでのコンテンツをシステムオペレータが収集することを可能にするウェブサービスシステムを提供する。【解決手段】１つ以上のウェブサーバを有するウエブサービスシステム９０において、各ウェブサーバから１つのコンピュータへとコンテンツを直接配給するシステムおよび方法は、ウェブサーバ上で生成されたファイルを、システムオペレータによるアクセスの中央位置ロケーションへと転送する。複数のウェブサーバによって生成されたファイルが１つのコンピュータ上に集められ、これらのファイルの全てに対して処理および分析を実行し得る。【選択図】図１
2010003311.tif 000002
【特許請求の範囲】
【請求項１】
本明細書に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
（関連出願の相互参照）
本発明は、米国特許仮出願シリアルナンバー第６０／１１７，６７４号（１９９９年１月２８日出願）に対して優先権およびその利益を主張する。本発明は、米国特許出願シリアルナンバー第０９／０８６，８２１号（１９９８年５月２９日出願）、シリアルナンバー第０９／０８６，８３６号（１９９８年５月２９日出願）、シリアルナンバー第０９／０８６，８７４号（１９９８年５月２９日出願）、シリアルナンバー第０９／０８７，２６３号（１９９８年５月２９日出願）、シリアルナンバー第０９／３７６，０１７号（１９９９年８月１９日出願）およびシリアルナンバー第０９／３７７，６１１号（１９９９年８月１９日出願）の一部継続出願である。これらの関連出願の各々は、参考のため、その全体を本明細書中で援用する。
【０００２】
（技術分野）
本発明は、複数のウェブサーバの管理、より具体的には、ウェブサービスシステムにおいて各ウェブサーバから単一のコンピュータまでのコンテンツをシステムオペレータが収集することを可能にするウェブサービスシステムに関する。
【背景技術】
【０００３】
（参考資料）
コンピュータネットワーク環境において、ウェブサーバはコンピュータネットワークを介して伝送されるユーザのウェブページリクエストに応答するために用いられる。ウェブページリクエストは、コンテンツリクエストとも呼ばれ、通常、ユーザのコンピュータ上で動作するブラウザによってなされる。ウェブサーバは、ウェブページリクエストに関する１つ以上のコンピュータネットワークアドレス／ポートエンドポイントを監視し、リクエストにウェブページを伝送することによってウェブページリクエストに応答する。ウェブサーバは、特殊目的デバイスであり得るか、または汎用コンピュータ上で動作するソフトウェアプログラムを用いて実行され得る。ウェブサーバの有効容量（ｓｅｒｖｉｃｅ  ｃａｐａｃｉｔｙ）は、所与のタイムインターバルで受信され得、応答され得るウェブページの数を制限する。
【０００４】
ウェブサービスシステムは、１つのウェブサーバまたは１つ以上のウェブサーバを含む。一般に、ウェブサービスシステムが１つより多いウェブサーバを含むとき、ウェブサービスシステムは、複数のウェブサーバの各々がウェブページリクエストに応答するように設計される。通常、ユーザのウェブページリクエストはウェブサーバの１つに向けられ、そのウェブサーバはそのウェブページリクエストに応答する。多数のウェブページリクエストを受信するように設計されたウェブサービスシステムは、さらに、通常、複数のウェブサーバを含む。
【０００５】
一般に、複数のウェブサーバを有するシステムにおいて、システムオペレータまたはオペレータは、種々のウェブサーバによって提供されたコンテンツを管理する。システムオペレータは、各ウェブサーバ上で生成および格納されたデータにアクセスすることを時折所望し得る。例えば、システムオペレータは、各ウェブサーバによって生成されたウェブサーバログファイルにアクセスすることを所望し得る。これは困難であり、多大な時間を必要とする。なぜなら、異なったコンピュータ上に配置されたファイルを集め、アクセスすることは厄介であり得るからである。
【発明の概要】
【課題を解決するための手段】
【０００６】
（発明の要旨）
１つ以上のウェブサーバを有するウェブサービスシステムにおいて、コンテンツを各ウェブサーバから単一のコンピュータに直接的に配信するシステムおよび方法はシステムオペレータにとって有用である。例えば、システムオペレータがアクセスするために、ウェブサーバ上に集められたファイルを中央ロケーションに伝送することがしばしば所望される。複数のウェブサーバによって生成されたファイルが単一のコンピュータ上に集められた場合、処理および解析は、すべてのファイルに関して、より容易に行なわれ得る。
【０００７】
一般に、１局面において、本発明は、ウェブサービスシステムにおける１つのコンピュータから別のコンピュータにコンテンツを伝送するシステムおよび方法に関する。ウェブサービスシステムは、ウェブページリクエストに応答してウェブページを提供するウェブサーバを含む。第１のウェブサーバエージェントおよび第２のウェブサーバエージェントは、ウェブサービスシステムと第１のコンピュータと第２のコンピュータとの間にそれぞれインターフェースを提供する。第１のウェブサーバエージェントは第１のコンピュータ上で動作し、第２のコンピュータ上で動作する第２のウェブサーバエージェントに伝送するファイルの少なくとも１部を識別する。第１のウェブサーバエージェントからのファイルの少なくとも１部は、第２のウェブサーバエージェントに伝送され、その後、第２のウェブサーバエージェントによって格納される。
【０００８】
１実施形態において、ファイルはその全体が識別、伝送、および格納される。別の実施形態において、ファイルは繰返し識別、伝送、および格納される。さらに別の実施形態において、本方法は、前に伝送されなかったファイルの１部を識別する工程を含む。さらに別の実施形態において、本方法は、任意の前の識別に続いて加えられたコンテンツを含むファイルの１部を識別する工程を含む。別の実施形態において、本方法は、ファイルに関して動作するコンピュータプログラムを実行する工程も含む。別の実施形態において、伝送されるべきファイルは、ウェブサービスシステムにおける１つ以上のウェブサーバに対するユーザリクエストについての情報を含むログファイルである。
【０００９】
一般に、別の局面において、本発明は、ウェブサービスシステムにおける１つのコンピュータから別のコンピュータにコンテンツを伝送する方法に関する。ウェブサービスシステムにおける第１のコンピュータ上で動作する第１のウェブサーバエージェントは、第１のファイルが第２の名称を有し、第２のファイルが第１の名称を有するように第１の名称を有する第１のファイルが第２の名称に変更される。第２の名称を有する第１のファイルは、その後識別される。第２のウェブサーバエージェントは第２のコンピュータ上で動作し、この第２のウェブサーバエージェントに第１のファイルの名称が変更されたことが通知される。第１のファイルの少なくとも１部は、第１のウェブサーバエージェントから第２のウェブサーバエージェントに伝送される。第１の名称を有する第２のファイルは識別され、第２のファイルの１部は、第１のウェブサーバエージェントから第２のウェブサーバエージェントに伝送される。
【００１０】
通常、さらに別の局面において、本発明は、ウェブサービスシステムにおける１つのコンピュータから別のコンピュータにコンテンツを伝送する方法に関する。ウェブサービスシステムは、ウェブページリクエストに応答してウェブページを提供する。第１のウェブサーバエージェントは、ウェブサービスシステムと第１のコンピュータとの間にインターフェースを提供する。第１のウェブサーバエージェントは、第１のコンピュータ上で動作し、コンピュータプログラムを識別し、動作させる。コンピュータプログラムの出力は、その後、第１のウェブサーバエージェントから第２のコンピュータ上で動作する第２のウェブサーバエージェントに伝送され、この出力は、その後、第２のウェブサーバエージェントによって格納される。
【００１１】
概して、さらに別の局面において、本発明は、ウェブサービスシステムにおいて、あるコンピュータから別のコンピュータへとコンテンツを伝達する方法に関する。第１のウェブサーバエージェントは、ウェブサービスシステムと第１のコンピュータとの間にインターフェースを提供する。第１のウェブサーバエージェントは、第１のコンピュータ上で動作し、第２のコンピュータ上で動作する第２のウェブサーバエージェントへと伝達されるファイルの少なくとも一部分を識別する。ファイルの識別された部分は、第１のウェブサーバエージェントから第２のウェブサーバエージェントへと伝達される。第２のウェブサーバエージェントは、伝達ファイルの受信された部分を入力としてコンピュータプログラムに提供する。
【００１２】
概して、さらに別の局面において、本発明は、ウェブサービスシステムにおいて、あるコンピュータから別のコンピュータへとコンテンツを伝達する方法に関する。第１のウェブサーバエージェントは、ウェブサービスシステムと第１のコンピュータとの間にインターフェースを提供する。第１のウェブサーバエージェントは、第１のコンピュータ上で動作し、コンピュータプログラムを識別かつ実行する。コンピュータプログラムの出力は、次いで、第１のウェブサーバエージェントから、第２のコンピュータ上で動作する第２のウェブサーバエージェントへと伝達される。第２のウェブサーバエージェントは、伝達ファイルの受信された部分を入力としてコンピュータプログラムに提供する。
【００１３】
概して、さらに別の局面において、本発明は、ウェブサービスシステムにおいて、あるコンピュータから別のコンピュータへとコンテンツを伝達する方法に関する。第１のウェブサーバエージェントは、第１のコンピュータ上で動作し、ウェブサービスシステムと第１のコンピュータとの間にインターフェースを提供する。第１のウェブサーバエージェントは、第２のコンピュータ上で動作する第２のウェブサーバエージェントへと伝達されるファイルの少なくとも一部分を識別する。第１のコンピュータは、第１のウェブサーバエージェントから第２のウェブサーバエージェントへとファイルの少なくとも一部分を伝達する。第２のコンピュータは、第２のウェブサーバエージェントによって伝達ファイルの少なくとも一部分が格納される格納媒体を含む。
【００１４】
概して、さらに別の局面において、本発明は、コンピュータ読み取り可能な媒体上に組み入れられているコンピュータプログラムに関する。コンピュータプログラムは、識別コードセグメントを含み、これにより、ウェブサービスシステムにおいて第１のコンピュータ上で動作する第１のウェブサーバエージェントによって、第２のコンピュータ上で動作する第２のウェブサーバエージェントへと伝達されるファイルの少なくとも一部分が識別される。ウェブサービスシステムは、ウェブページリクエストに応答してウェブページを提供するウェブサーバを含む。第１および第２のウェブサーバエージェントはそれぞれ、ウェブサービスシステムと第１および第２のコンピュータとの間にインターフェースをそれぞれ提供する。コンピュータプログラムはさらに、伝達コードセグメントを含み、これにより、第１のウェブサーバエージェントから第２のウェブサーバエージェントへのファイルの少なくとも一部分が伝達される。
（項目１）  コンテンツを伝送する方法であって、
ウェブサービスシステム内の第１のコンピュータ上で実行されている第１のウェブサーバエージェントによって、該ウェブサービスシステム内の第２のコンピュータ上で実行されている第２のウェブサーバエージェントに伝送するファイルの少なくとも１部分を識別するステップであって、該ウェブサービスシステムは、ウェブページ要求に応答してウェブページを提供し、該第１および第２のウェブサーバエージェントはそれぞれ、該ウェブサービスシステムと該第１および第２のコンピュータのそれぞれとの間にインターフェースを提供する、ステップと、
該第１のウェブサーバエージェントから該第２のウェブサーバエージェントへと該ファイルの少なくとも１部分を伝送するステップと、
該第２のウェブサーバエージェントによって、該伝送されたファイルの該少なくとも１部分を格納するステップと、
を包含する方法。
（項目２）  前記識別するステップが、前記ファイルの全体を識別するステップを包含し、
前記伝送するステップが、前記ファイルの全体を伝送するステップを包含し、
前記格納するステップが、前記第２のウェブサーバエージェントによって、前記伝送されたファイルの全体を格納するステップを包含する、
項目１に記載の方法。
（項目３）  前記識別するステップ、前記伝送するステップ、および前記格納するステップを繰り返すステップをさらに包含する、項目１に記載の方法。
（項目４）  前記識別するステップが、前記ファイルの以前に伝送されなかった部分を識別するステップを包含する、項目３に記載の方法。
（項目５）  前記識別するステップ、前記伝送するステップ、および前記格納するステップを繰り返すステップをさらに包含し、該識別するステップが、前記ファイルの、任意の以前の識別するステップに続いて追加されたコンテンツを含む部分を識別するステップを包含する、項目１に記載の方法。
（項目６）  前記識別するステップの前に、前記ファイル上で動作するプログラムを実行するステップをさらに包含する、項目１に記載の方法。
（項目７）  前記識別するステップが、前記第１のウェブサーバエージェントによって、前記ファイルの、前記ウェブサーバへのユーザ要求に関するログファイルを含む少なくとも１部分を識別するステップを包含する、項目１に記載の方法。
（項目８）  コンテンツを伝送する方法であって、
第１のファイルが第２の名前を有し、第２のファイルが第１の名前を有するように、第１の名前を有する第１のファイルが第２の名前に改名されたことを、ウェブサービスシステム内の第１のコンピュータ上で実行されている第１のウェブサーバエージェントによって判定するステップであって、該ウェブサービスシステムは、ウェブページ要求に応答してウェブページを提供する、ステップと、
該第２の名前を有する該第１のファイルを識別するステップと、
該ウェブサービスシステム内の第２のコンピュータ上で実行されている第２のウェブサーバエージェントに、該第１のファイルが改名されたことを通知するステップと、
該第１のウェブサーバエージェントから該第２のウェブサーバエージェントへと該ファイルの少なくとも１部分を伝送するステップと、
該第１の名前を有する該第２のファイルを識別するステップと、
第２のファイルの１部分を該第１のウェブサーバエージェントから該第２のウェブサーバエージェントへと伝送するステップと、
を包含する方法。
（項目９）  コンテンツを伝送する方法であって、
ウェブサービスシステム内の第１のコンピュータ上で実行されている第１のウェブサーバエージェントによって、コンピュータプログラムを識別するステップであって、該ウェブサービスシステムは、ウェブページ要求に応答してウェブページを提供し、該第１のウェブサーバエージェントは、該ウェブサービスシステムと該第１のコンピュータとの間にインターフェースを提供する、ステップと、
該第１のウェブサーバエージェントによって該コンピュータプログラムを実行するステップと、
該コンピュータプログラムの出力を、該第１のウェブサーバエージェントから、該ウェブサービスシステム内の第２のコンピュータ上で実行されている第２のウェブサーバエージェントへと伝送するステップと、
該第２のウェブサーバエージェントによって該コンピュータプログラムの出力を格納するステップと、
を包含する方法。
（項目１０）  前記識別するステップが、前記ファイルの全体を識別するステップを包含し、
前記伝送するステップが、前記ファイルの全体を伝送するステップを包含し、
前記格納するステップが、前記第２のウェブサーバエージェントによって、前記伝送されたファイルの全体を格納するステップを包含する、
項目９に記載の方法。
（項目１１）  前記識別するステップ、前記伝送するステップ、および前記格納するステップを繰り返すステップをさらに包含する、項目９に記載の方法。
（項目１２）  前記識別するステップが、前記ファイルの以前に伝送されなかった部分を識別するステップを包含する、項目１１に記載の方法。
（項目１３）  前記識別するステップ、前記伝送するステップ、および前記格納するステップを繰り返すステップをさらに包含し、該識別するステップが、前記ファイルの、任意の以前の識別するステップに続いて追加されたコンテンツを含む１部分を識別するステップを包含する、項目９に記載の方法。
（項目１４）  前記識別するステップの前に、前記ファイル上で動作するプログラムを実行するステップをさらに包含する、項目９に記載の方法。
（項目１５）  前記識別するステップが、前記第１のウェブサーバエージェントによって、前記ファイルの、前記ウェブサーバへのユーザ要求に関するログファイルを含む少なくとも１部分を識別するステップを包含する、項目９に記載のシステム。
（項目１６）  コンテンツを伝送する方法であって、
ウェブサービスシステム内の第１のコンピュータ上で実行されている第１のウェブサーバエージェントによって、該ウェブサービスシステム内の第２のコンピュータ上で実行されている第２のウェブサーバエージェントに伝送するファイルの少なくとも１部分を識別するステップであって、該ウェブサービスシステムは、ウェブページ要求に応答してウェブページを提供し、該第１のウェブサーバエージェントは、該ウェブサービスシステムと該第１のコンピュータとの間にインターフェースを提供する、ステップと、
該第１のウェブサーバエージェントから該第２のウェブサーバエージェントへと該ファイルの少なくとも１部分を伝送するステップと、
第２のウェブサーバエージェントによって、該伝送されたファイルの受け取られた部分をコンピュータプログラムへの入力として提供するステップと、
を包含する方法。
（項目１７）  コンテンツを伝送する方法であって、
ウェブサービスシステム内の第１のコンピュータ上で実行されている第１のウェブサーバエージェントによって、コンピュータプログラムを識別するステップであって、該ウェブサービスシステムは、ウェブページ要求に応答してウェブページを提供し、該第１のウェブサーバエージェントは、該ウェブサービスシステムと該第１のコンピュータとの間にインターフェースを提供する、ステップと、
該第１のウェブサーバエージェントによって該コンピュータプログラムを実行するステップと、
該コンピュータプログラムの出力を、該第１のウェブサーバエージェントから、該ウェブサービスシステム内の第２のコンピュータ上で実行されている第２のウェブサーバエージェントへと伝送するステップと、
該第２のウェブサーバエージェントによって、該伝送されたファイルの受け取られた部分をコンピュータプログラムへの入力として提供するステップと、
を包含する方法。
（項目１８）  コンテンツを伝送するシステムであって、
ウェブサービスシステム内の第１のコンピュータ上で実行されている第１のウェブサーバエージェントであって、該ウェブサービスシステムは、ウェブページ要求に応答してウェブページを提供し、該第１のウェブサーバエージェントは、該ウェブサービスシステムと該第１のコンピュータとの間にインターフェースを提供し、該第１のウェブサーバエージェントは、該ウェブサービスシステム内の第２のコンピュータ上で実行されている第２のウェブサーバエージェントに伝送するファイルの少なくとも１部分を識別し、該第１のコンピュータは、該第１のウェブサーバエージェントから該第２のウェブサーバエージェントへと該ファイルの少なくとも１部分を伝送する伝送器を含み、該第２のコンピュータは、該第２のウェブサーバエージェントによって、該伝送されたファイルの該少なくとも１部分を格納する記憶媒体を含む、第１のウェブサーバエージェント、
を包含する方法。
（項目１９）  コンピュータ読み取り可能媒体上に組み込まれたコンテンツを伝送するコンピュータプログラムであって、
ウェブサービスシステム内の第１のコンピュータ上で実行されている第１のウェブサーバエージェントによって、該ウェブサービスシステム内の第２のコンピュータ上で実行されている第２のウェブサーバエージェントに伝送するファイルの少なくとも１部分を識別する識別コードセグメントであって、該ウェブサービスシステムは、ウェブページ要求に応答してウェブページを提供し、該第１および第２のウェブサーバエージェントはそれぞれ、該ウェブサービスシステムと該第１および第２のコンピュータのそれぞれとの間にインターフェースを提供する、識別コードセグメントと、
該第１のウェブサーバエージェントから該第２のウェブサーバエージェントへと該ファイルの少なくとも１部分を伝送する伝送コードセグメントと、
を含む、コンピュータプログラム。
【図面の簡単な説明】
【００１５】
【図１】図１は、本発明によるウェブサービスシステムの実施形態のブロック図である。
【図２】図２は、ウェブサービスシステムの実施形態のより具体的なブロック図である。
【図３】図３は、本発明の実施形態によるファイル転送のフローチャートである。
【図４】図４は、本発明の別の実施形態によるファイルの一部分の転送（ｆｉｌｅ  ｐｏｒｔｉｏｎ  ｔｒａｎｓｆｅｒ）のフローチャートである。
【図５】図５は、ファイルローテーション（ｒｏｔａｔｉｏｎ）を表す。
【図６】図６は、本発明の実施形態によってファイルローテーション（図５）を検出するファイル転送のフローチャートである。
【図７】図７は、本発明の実施形態による配信システム内の複数のホストを示す。
【発明を実施するための形態】
【００１６】
本発明の前述および他の目的、局面、機能、および利点は、下記の説明からより明らかになる。
【００１７】
図面中、同様の参照文字は、概して、異なる図面にわたって同じ部分を参照する。さらに、図面は必ずしも一律の縮尺に従わず、むしろ、本発明の原理を示すことを重要視する。
【００１８】
（詳細）
ウェブページを供給するシステムは、複数のウェブサーバを有し、複数のウェブサーバの操作を調整する機能およびツールをシステムオペレータに提供する。このシステムは、たった１つのウェブサーバを有することも可能であるが、典型的には、１つ以上のウェブサーバを含む。このシステムは、ウェブページリクエスト（通常、クライアントコンピュータ上のウェブブラウザから発信される）を利用可能なウェブサーバに誘導することにより、トラフィックを管理し得、従って、複数のサーバにわたってウェブページリクエストのサービスロードのバランスをとり得る。このシステムは、ウェブページリクエストのデータを収集し得、ウェブサーバは、それらのウェブページリクエストに応答し、データの報告ならびに自動かつ手動の分析ツールを提供する。このシステムは、特定のイベントを監視し得、このようなイベントが生じると自動的に作動し得る。これらのイベントは、差し迫ったシステムの問題を示す予測および閾値を含む。このシステムは、自動的なエラー回復を提供するため、かつ、構成要素の故障またはネットワーク環境の問題などのイベントから回復するために行われ得る可能な行動によりシステムオペレータを先導するための危機管理能力を含み得る。このシステムは、システム操作に関する現在の情報をシステムオペレータに提示し得る。このシステムは、バージョン制御とデータ更新との間のコンテンツ反復を管理し得る。この機能性のいくつかまたは全ては、特定の実施形態において提供され得る。
【００１９】
図１を参照すると、ウェブサービスシステム９０の実施形態が、ウェブページリクエストをブラウザ１から受信する。これに関連して、ウェブページは、リクエストに応答してコンピュータネットワーク２上で利用可能になり得る電子コンテンツである。ウェブページの例は、コンピュータによって実行可能または解釈可能な情報、グラフィックス、音、テキスト、および／または映像を含むデータファイルであり、このデータファイルは、表示、実行、再生、処理、ストリーミング、および／または格納され得、他のウェブページへのリンクまたはポインタを含み得る。リクエストは、典型的には、ウェブブラウザ１から発信され、通信ネットワーク２にわたって通信される。一実施形態において、通信ネットワーク２は、イントラネットである。別の実施形態において、通信ネットワーク２は、インターネットとして公知のグローバル通信ネットワークである。ブラウザ１は、ウェブページリクエストを生成するようにユーザによって操作され得る。ブラウザ１はまた、コンピュータまたはコンピュータプログラムによって操作され得、コンピュータのプログラミングに基づいてリクエストを自動的に生成する。ウェブページリクエストは、ハイパーテキスト転送プロトコル（「ｈｔｔｐ」）フォーマットを使用して生成され得、かつ、リクエスト機能を提供する他のプロトコルを使用しても生成され得る。
【００２０】
図２を参照して、ウェブサービスシステム９０の一実施形態は種々のコンポーネント１００〜１２６を含む。コンポーネントは一つ以上のコンピュータネットワークを介して通信する。コンポーネントの物理位置は、種々のコンポーネント間の通信リンクが十分なデータ通信機能を有する限り、システムの機能または性能に影響を与えない。ウェブサービスシステム９０は種々の設計のファイアウォールを介して機能し得、そして遠隔で構成および管理され得る。
【００２１】
ウェブサービスシステム９０は一つ以上のホスト１００を管理する。二つのホスト１００を一例として示す。ウェブサービスシステム９０の一実施形態は任意の数のホスト１００を有し得る。各ホスト１００は、市販されそしてＵＮＩＸ（Ｒ）またはＷＩＮＤＯＷＳ（Ｒ）ＮＴＴＭなどのマルチスレッドのオペレーティングシステムを用いることが可能なコンピュータシステムであり得る。各ホスト１００は、コンピュータネットワークへの少なくとも一つのネットワーク接続（例えば、インターネットまたはイントラネット）を有し得るか、またはホスト１００がウェブページリクエストに応答してウェブページを提供することを可能にする任意の他のネットワークを有し得る。各ホスト１００は、少なくとも一つのウェブサーバ１０２を含む。
【００２２】
ウェブサーバ１０２は、コンピュータネットワーク上で受信されたウェブページリクエストに応答してウェブページを提供する任意のウェブサーバであり得る。このようなウェブサーバのうちの二つの例は、カリフォルニア州Ｍｏｕｎｔａｉｎ  ＶｉｅｗのＮｅｔｓｃａｐｅ  Ｃｏｍｍｕｎｉｃａｔｉｏｎｓ  Ｃｏｒｐｏｒａｔｉｏｎから入手可能なＮＥＴＳＣＡＰＥ  ＥＮＴＥＲＰＲＩＳＥ  ＳＥＲＶＥＲ、およびワシントン州ＲｅｄｍｏｎｄのＭｉｃｒｏｓｏｆｔ  Ｃｏｒｐｏｒａｔｉｏｎから入手可能なＭＩＣＲＯＳＯＦＴ  ＩＮＴＥＲＮＥＴ  ＩＮＦＯＲＭＡＴＩＯＮ  ＳＥＲＶＩＣＥＳ  ＳＥＲＶＥＲとして市販されている。ウェブサーバ１０２は、ブラウザおよび／またはウェブページリクエスターとも呼ばれるウェブクライアントからウェブページリクエスト１１３を受信することが可能である。ブラウザからのウェブページリクエスト１１３は、コンテンツリクエストとも呼ばれ、またはウェブサーバの観点から「ヒット」とも呼ばれる。ウェブページリクエストは、いくつかのリクエストおよび応答に関与するウェブサーバ１０２との連続した通信の一部である場合が多い。セッションと呼ばれるこのような連続の一つは、ウェブサーバとの延長した相互通信である。より短い相互通信、例えば、アイテムの購入は、トランザクションと呼ばれる。セッションはいくつかのトランザクションを含み得る。ユーザは、ウェブサーバ１０２の最初のリクエスト１１３を行うことによってウェブサーバ１０２と相互通信を行う。この結果、ウェブサーバ１０２が応答してウェブページを送信する。ウェブページは、情報を含み得、そしてさらに、またはあるいは、ユーザがウェブサーバ１０２または恐らく他のウェブサーバから行い得る他のリクエストへのポインタを含み得る。リクエストは、データベースから取り出される必要がある情報用である時もあれば、リクエストはデータベース内に格納される情報を含む時もある。リクエストは、ウェブサーバ１０２による処理または別のコンピュータシステムとの相互通信を必要とする時もある。精巧なウェブサーバおよびブラウザは種々の方法で相互通信し得る。
【００２３】
関連するトピックまたは特定のソース（通常、同じウェブサーバ１０２からであるが常にそうであるわけではない）に関する一組のウェブページとしてユーザに提示される関連するウェブページの集合はアプリケーションとして呼ばれる。アプリケーションの一例は、会社に関する情報を提供する一組のページである。アプリケーションの別の例は、ユーザが貯蓄銀行とのトランザクションを行うことを可能にする一連のページである。二つの組のウェブページは一つのアプリケーションと考えられ得、または二つの別々のアプリケーションと考えられ得る。例えば、一組のウェブページは銀行に関する情報を提供し得、そして顧客サービスの組のウェブページにより銀行との商用トランザクションが可能になり得る。一組のウェブページが一つのアプリケーションであるかいくつかのアプリケーションであるかはアプリケーションデザイナーによってなされる決定である。ウェブサービスシステム９０は、一つ以上のアプリケーションをユーザに送達し得る。ウェブサービスシステム９０は、ウェブサーバ１０２の所定の下位セットが専ら一つのアプリケーションを提供するように構成され得る。一実施形態において、所定のウェブサーバ１０２は利用可能なアプリケーションの下位セットを提供し、他のウェブサーバ１０２は他のアプリケーションを提供する。別の実施形態において、すべてのウェブサーバ１０２はすべての利用可能なアプリケーションを提供する。
【００２４】
ユーザのウェブブラウザからのウェブページリクエスト１１３に応答してユーザに提示されるウェブページは、ホスト１００のファイルシステムまたはウェブサーバ１０２にアクセス可能な別のファイルシステムに格納され得る。所定またはすべてのウェブページコンテンツは、ウェブサーバ１０２によってウェブサーバ１０２に利用可能なデータを処理することによって生成され得る。例えば、あるトピックに関する文書であるウェブページに関して、ウェブページは生成（設計）されて、そしてウェブサーバ１０２のファイルシステム内に格納され得る。ウェブページリクエストに応答して、このようなウェブページは、ちょうどファイルシステム内に格納された際にユーザに送信され得る。しかし、銀行業務のトランザクションシステムにおいて、ユーザの銀行口座に関する情報がデータベース内に格納される可能性が高い。ウェブサーバ１０２は、ユーザがページをリクエストするたびにデータベースリクエストを行うことによってユーザの口座情報を含むウェブページを生成し得る。ウェブページが部分的にファイルシステム内に格納され、そしてリクエストが行われた際にウェブサーバ１０２によって一部が生成されることが多い。
【００２５】
種々の技術を用いて状態情報が格納される。状態情報は、ウェブサーバ１０２とのユーザセッションの「状態」としても呼ばれる。ユーザは、ウェブサーバ１０２との相互通信の間、ウェブサーバ１０２に行われたリクエストおよびこれらのリクエストに応答して受信されたウェブページを介して状態を展開させ得る。ユーザの状態は、一例として、ユーザを識別する情報を含み得る。別の例として、状態は、ユーザがすでにリクエストしたウェブページを指定する情報、またはユーザがシステムと相互通信する際に選択したオプションを含み得る。別の例として、状態は、ユーザが商用の販売アプリケーションからの購入に選択したアイテムを含み得る。通常、例えば、ウェブサービスシステム９０にユーザを識別するクッキーとしてのクライアントウェブブラウザ内に格納されたセッションの状態に関するまたはセッションの状態を識別する所定の情報、および所定の情報がウェブサーバ１０２内に格納され得る。
【００２６】
各ウェブサーバ１０２は、サーバ上で動作するコンピュータプログラムの状態、コンポーネントの故障、またはネットワーク環境の問題等のウェブサーバの動作中に発生する種々のイベントと同様に、ウェブサーバに対してなされたウェブページに対する全てのリクエスト１１３、これらのリクエストに対するウェブサーバの応答のログファイルを生成し、かつ維持し得る。さらに、各ウェブサーバ１０２は、ブラウザから他の情報を受信し、それをホスト１００に格納することができる。
【００２７】
ホスト１００は、ホスト容量、性能、およびコスト上の理由に依存して、ホスト上で動作する任意の数のウェブサーバ１０２を有し得る。１つの実施形態では、ホスト１００は、１つのウェブサーバ１０２を備える。他の実施形態では、ホストは、１より多くのウェブサーバ１０２を備える。図２のホスト１００上の１つのウェブサーバ１０２は、簡略化された例証的な例であり、ホスト上で動作し得る可能なウェブサーバの数を制限することを意図していない。各ウェブサーバ１０２は、エンドポイントとも呼ばれる、少なくとも１つのネットワークアドレスおよびポートを監視する。特定のアドレスおよびポートは、エンドポイントと呼ばれるが、通信のための実質的なエンドポイントであるためである。ネットワーク接続は、１つのアドレス／ポートエンドポイントと別のアドレス／ポートエンドポイントとの間で行われる。ウェブサーバ１０２は、そのエンドポイントのうちの１つに向けられたリクエストを受信し、それらのリクエストに対して、ウェブページ形式のデータで応答する。
【００２８】
多数のネットワークアドレス／ポートエンドポイントでリクエストを受信するウェブサーバ１０２は、実際には１つのウェブサーバ１０２として実現されていたとしても、複数の個別のウェブサーバ１０２であるかのように動作し得る。このようなウェブサーバは、多数エンドポイントウェブサーバ（ｍｕｌｔｉｐｌｅ
ｅｎｄｐｏｉｎｔ  ｗｅｂ  ｓｅｒｖｅｒ）と呼ばれる。この議論の目的のために、多数エンドポイントウェブサーバは、実際に、各ウェブサーバ１０２がネットワークアドレス／ポートエンドポイントでリクエストを受け取る、多数のウェブサーバ１０２であるかのように説明され得る。１つの実施形態では、このような多数エンドポイントウェブサーバは、複数のエンドポイントの全てに対するインターフェースである、１つのウェブサーバインターフェース１０４を有する。
【００２９】
各ウェブサーバ１０２は、ウェブサーバインターフェース１０４と関連づけられ得る。ウェブサーバインターフェースは、ウェブサーバ１０２とウェブサービスシステム９０の他のコンポーネントとのインターフェースとして機能するウェブサーバ１０２に関連づけられた、プラグイン、フィルタ、または他のソフトウェアであり得る。このコンテキストにおいて、ウェブサーバインターフェースという用語は、ホスト１００上に存在し得る、ネットワークインターフェースとは異なる。例えば、ウェブサーバ１０２は、ウェブサーバインターフェース１０４を有する。ホスト１００上の各ウェブサーバインターフェース１０４は、エージェント１０６と通信し得る。
【００３０】
各ホスト１００はエージェント１０６を含み得る。エージェント１０６は、ウェブサービスシステム９０に、マネージャ１１０と、オペレーティングシステムを含むホスト１００上で動作する任意の他のソフトウェアとの媒介物として機能する、ホスト１００とのインターフェースを提供する。エージェント１０６は、（もしあれば）ウェブサーバインターフェース１０４をウェブサービスシステム９０にリンクづけをする。エージェント１０６はまた、ホスト１００をウェブサービスシステム９０にリンクづけする。１つの実施形態では、エージェント１０６は、ＪＡＶＡ（Ｒ）プログラミング言語を用いるソフトウェアで実現される。エージェント１０６は、バックグラウンドで動作し得る。ＵＮＩＸ（Ｒ）システム上では、デーモン（ｄｅａｍｏｎ）として動作し得、ＷＩＮＤＯＷＳ（Ｒ）ＮＴＴＭ上では、サービスとして動作し得る。多数のウェブサーバを有するホスト上でさえ、通常、ホスト１００上で動作するただ１つのエージェント１０６が存在するが、１より多くのエージェントを有することは可能である。各エージェント１０６は、システムコンポーネントに関する情報を含む、データベース１０８へのアクセスを有する。
【００３１】
エージェント１０６は、各ウェブサーバ１０２に関連づけられたウェブサーバインターフェース１０４を介して、ホスト１００上の１以上のウェブサーバ１０２と通信する。ウェブサーバインターフェース１０４は、エージェント１０６に、ユーザから受け取ったウェブページリクエスト、およびそれらのリクエストに応答して送信されたページに関する情報を提供する。
【００３２】
１つの実施形態では、ウェブサーバインターフェース１０４からエージェント１０６への通信は、共有されたメモリチャンネル上で起こる。エージェント１０６は、共有されたメモリを保存し、ウェブサーバインターフェース１０４は、その共有されたメモリにデータを書き込むことができる。これは、ソケットを用いるよりも速いという利点を有し、エージェント１０６が、１つのバッファで、全てのウェブサーバインターフェース１０４からのデータを受け取ることを可能にする。この通信リンクはまた、ソケット、または他のプロセス間通信で実現され得る。
【００３３】
ホスト１００上のエージェント１０６は、ウェブサービスシステムマネジャ１１０と通信する。マネージャ１１０は、ホスト１００およびウェブサーバ１０２の状態に関する、エージェント１０６からの情報を受け取る。マネージャ１１０は、エージェント１０６にコマンドを送信し、ホスト１００を設定し、ウェブサーバ１０２を始動、停止、または一時的に休止させ、ウェブサーバ１０２上の負荷を管理し得る。マネージャ１１０は、システムアクティビティおよびイベントをロギングするために用いられる、ロギングデータベース１１４へのアクセスを有する．マネージャ１１０はまた、システムの種々のコンポーネントに関する情報を格納するために用いられる、管理オブジェクトデータベース１１２へのアクセスを有する。マネージャ１１０はまた、一般に、１１６で呼ばれる、１以上のコンソール１１６Ａ〜１１６Ｘと通信する。コンソール１１６は、システムオペレータに、ユーザインターフェースを提供する。システムオペレータは、システムの状態を監視し、コンソールを介してシステムを設定し得る。マネージャ１１０は、ウェブサーバ１０２またはトラフィックマネージャ１２０のうちの１つ等の他のウェブサービスシステム９０のコンポーネントと同じホスト１００上で動作し得るか、または十分な容量の別のコンピュータ上で動作し得る。
【００３４】
エージェント１０６は、リンク１２７で示されるように、相互に直接通信する能力を有する。１つの実施形態では、通信は、エージェント１０６のうちの１つ目から第２のエージェント１０６まで開いた、ＴＣＰ／ＩＰソケット上で生じる。メッセージは、ファイル、およびファイルに関する情報を伝達するためにそのソケット上で送信され得る。１つの設定では、それらの間のファイアウォールのために、第１のエージェント１０６は、第２のエージェント１０６へのソケットを開け得ない。１つのこのような実施形態では、第１のエージェント１０６は、マネージャ１１０へのソケットを開く。第１のエージェント１０６は、マネージャ１１０を介して、第２のエージェント１０６に、第１のエージェント１０６へのソケットを開くことをリクエストするメッセージを送信する。マネージャは、このリクエストを第２のエージェント１０６に渡し、第２のエージェント１０６は、第１のエージェントへのソケットを開く。次いで、第１のエージェント１０６は、このソケットを用いて第２のエージェントにメッセージを送信し得る。
【００３５】
一実施形態において、通信プロトコルは、第１のエージェント１０６が、ファイル全体を第２のエージェント１０６に転送することを可能にする。また、通信プロトコルは、第１のエージェント１０６が、ファイルの一部分を第２のエージェント上のファイルに追加するように、第２のエージェント１０６に転送することを可能にする。また、通信プロトコルは、第１のエージェント１０６が、第２のエージェント上のファイルの名前を変更するように、第２のエージェント１０６に命令することを可能にする。また、通信プロトコルは、第１のエージェント１０６が、第２のエージェント上のファイルを削除することを可能にする。
【００３６】
一実施形態において、マネージャ１１０は、トラフィックマネージャ１２０と通信する。トラフィックマネージャ１２０は、インターセプター（ｉｎｔｅｒｃｅｐｔｏｒ）とも呼ばれる。トラフィックマネージャ１２０は、ウェブページリクエスト１１３を、ウェブサーバ１０２に向ける。ウェブサービスシステムにとって、トラフィックマネージャ１２０、または、いずれか特定のタイプのトラフィックマネージャ１２０を含む必要はない。一実施形態において、トラフィックマネージャ１２０は、マネージャ１１０から情報およびコマンドを受信する。また、トラフィックマネージャ１２０は、トラフィックマネージャコントロールプログラム１２２からも情報およびコマンドを受信する。トラフィックマネージャコントロールプログラムは、トラフィックマネージャ１２０と同じコンピュータ上にあってもよいし、あるいは、他のシステム上で実行されてもよい。トラフィックマネージャ１２０は、ウェブページリクエスト１１３を受信し、リクエストを、ウェブサーバ１０２のうちの１つに差し向ける。一実施形態において、トラフィックマネージャ１２０は、ウェブページリクエストに応答して、メッセージをブラウザに送信し、ブラウザをウェブサーバ１０２のうちの１つに差し向ける。その後、ブラウザは、リクエスト１１３を、ウェブサーバ１０２に対して直接行う。あるいは、トラフィックマネージャは、リクエストを、ウェブサーバ１０２まで通し、応答を、ブラウザに返し得る（不図示）。
【００３７】
ウェブサービスシステム９０の管理能力の一部は、ウェブサーバ１０２に対して行われるウェブページリクエストと、ウェブサーバ１０２およびホスト１００上で得られる負荷をモニタリングすることによって達成される。ウェブページリクエストは、ウェブサーバ１０２間で負荷の均衡を取るにように向けられ得る。一実施形態において、トラフィックマネージャ１２０は、ユーザにとって、第１の接点である。トラフィックマネージャ１２０は、ウェブページリクエストを、ユーザから受信し、ユーザのウェブブラウザを、そのリクエストにとって適切なウェブサーバ１０２に「差し向ける」。ユーザのウェブブラウザは、適切なウェブサーバ１０２上のウェブページに差し向けて、ウェブページリクエストに応答することによって、差し向けられる。この差し向ける能力は、ハイパーテキスト転送プロトコルに組み込まれた能力によって達成され得るが、他の方法によって達成されてもよい。ユーザは、ウェブブラウザが、適切なウェブサーバ１０２に差し向けられたかどうか、認識してもよいし、認識しなくてもよい。ユーザは、そのウェブサーバ１０２上のアプリケーションにアクセスし、そのウェブサーバ１０２からウェブページリクエストに対する応答を受信する。一実施形態において、ウェブサーバ１０２が過負荷状態になる場合、そのウェブサーバ１０２は、マネージャ１１０の指令の下で、ユーザを、トラフィックマネージャ１２０に差し戻してもよいし、アプリケーションを配信することができる他のウェブサーバ１０２に差し向けてもよい。
【００３８】
トラフィックマネージャ１２０は、ユーザからリクエストを受信して、ユーザのリクエストをウェブサーバ１０２にリダイレクトする。一実施形態において、トラフィックマネージャ１２０は、全てのユーザを、１つのウェブサーバ１０２、例えば他のトラフィックマネージャ１２０または１つの終点に向けるように用いられる。このようにして、トラフィックマネージャ１２０は、分路として機能する。すなわち、トラフィックマネージャ１２０は、ホスト上の１つ以上のウェブサーバに向けられた全てのリクエストを、他のウェブサーバ１０２に向ける。他の実施形態において、トラフィックマネージャ１２０は、マネージャ１１０からステータス情報を受信し、その情報を用いてユーザをリダイレクトする。ステータス情報は、サーバのアベイラビリティおよび負荷、管理者の変更、ならびにアプリケーションまたはウェブサーバ１０２の開始および終了動作を含む。トラフィックマネージャ１２０は、速度および安全性が上がるように設計される。トラフィックマネージャ１２０は、しばしばシステムへの入り口であり、トラフィックマネージャ１２０の性能が、ウェブサービスシステム９０全体の知覚される性能に影響を与える。トラフィックマネージャ１２０を、ネットワークトポロジーの意味で、可能な限りバックボーンの近くに位置付けることが有用であり得る。そうすることによって、トラフィックマネージャ１２０は、必然的に、ウェブサービスシステム９０の最も露出された構成要素となる。
【００３９】
一実施形態において、トラフィックマネージャ１２０は、ハードウェアにおいて実現される。他の実施形態において、トラフィックマネージャ１２０は、ホストコンピュータ上で実行されるソフトウェアプログラムである。ソフトウェアの一実施形態において、トラフィックマネージャ１２０は、マルチスレッドオペレーティングシステムを実行する能力を有するサーバ−クラスコンピュータ上で実行される独立型プログラムである。例えば、ＵＮＩＸ（Ｒ）の下で、トラフィックマネージャ１２０は、デーモンとして実行され得る。ＷＩＮＤＯＷＳ（Ｒ）  ＮＴ（登録商標）の下で、トラフィックマネージャ１２０は、サービスとして実行され得る。
【００４０】
他の実施形態において、トラフィックマネージャ１２０は、１つの終点に対して行われたリクエストを、ウェブサーバ１０２に属する終点に向けるインターネットプロトコルブリッジまたはルータである。このようにして、トラフィックマネージャ１２０は、ウェブページリクエストを１つ以上のウェブサーバに向ける。このようなトラフィックマネージャの一例として、Ｓａｎ  Ｊｏｓｅ，ＣａｌｉｆｏｒｎｉａのＣｉｓｃｏ  Ｓｙｓｔｅｍｓ，Ｉｎｃ．製のＬＯＣＡＬＤＩＲＥＣＴＯＲがある。さらに他の実施形態において、トラフィックマネージャ１２０は、Ｗｅｓｔｆｏｒｄ，ＭａｓｓａｃｈｕｓｅｔｔｓのＡｒｒｏｗｐｏｉｎｔ
Ｃｏｍｍｕｎｉｃａｔｉｏｎｓ，Ｉｎｃ．製のＣＯＮＴＥＮＴ  ＳＭＡＲＴ  ＷＥＢ  ＳＷＩＴＣＨのようなウェブスイッチである。トラフィックマネージャ１２０は、各ウェブページリクエストを受信し、そのリクエストに基づいて、ウェブサーバにリクエストを向ける。
【００４１】
一実施形態において、ウェブサービスシステム９０は、バージョンコントローラをも含む。バージョンコントローラは、コンテンツディストリビュータ１２５とも呼ばれる。このコンテキストにおいて、コンテンツディストリビュータ１２５は、バージョンおよびコンテンツ複製を管理し、ウェブサービスシステム９０内の各種のウェブサーバ１０２のコンテンツ更新を提供し得る。コンテンツディストリビュータ１２５に対するシステムオペレータインターフェースは、コンテンツコントロール１２６によって提供される。一実施形態において、コンテンツディストリビュータ１２５およびコンテンツコントロール１２６は、それぞれ、ホスト１００上で動作する独立型プロセスである。他の実施形態において、コンテンツディストリビュータ１２５およびコンテンツコントロール１２６は、マネージャ１１０と同じホスト上で動作する。さらに他の実施形態において、コンテンツディストリビュータ１２５およびコンテンツコントロール１２６は、他のホスト上で動作する。コンテンツディストリビュータ１２５およびコンテンツコントロール１２６は、同じホスト上で動作してもよいし、異なるホスト上で動作してもよい。他の実施形態において、コンテンツディストリビュータ１２５は、マネージャ１１０の機能、またはシステム９０の他の構成要素に組み込まれる。
【００４２】
図３を参照して、前述したウェブサービスシステムの一実施形態において、ウェブサーバ１０２上においてエージェント１０６（送信エージェントと呼ぶ）によってファイルを識別する（ステップ５００）。このファイルは任意の種類のファイルであり得、任意の種類のコンテンツを含み得る。ファイルの識別方法は様々なものがあり得る。ファイル識別は、例えばシステムオペレータにファイルシステム経路およびファイル名を識別させるなどの手入力によって行ってもよいし、コンピュータに全てのファイル（または１組のファイル）に対する事前規定された一連の属性をマッチングさせてマッチングを見付けさせることなどによって行ってもよい。その後、事前規定された属性にマッチングするファイルを識別する。このマッチングしたファイルは、事前規定されたアプリケーションプログラム、システムユーティリティ、ＪＡＶＡ（登録商標）クラスまたは他のプロセスからの出力であり得る。一実施形態において、この識別されたファイルは、エージェントに直接ストリーミングされるコンピュータプログラムからの出力である。
【００４３】
任意選択として、識別されたファイルを処理してもよい（ステップ５０１）。識別されたファイルは、アプリケーションプログラム、オペレーティングシステムユーティリティ、ＪＡＶＡ（登録商標）クラスまたは他のプロセスに処理対象として入力として提供され得、処理される。この処理ステップでは、ファイルのフォーマット変更、ファイル圧縮、あるフォーマットのアドレスから別のアドレスへの置換（例えば、ＩＰアドレスからＤＮＳ名への分解）を行うことができ、あるいは、伝送対象ファイルの作成またはファイルからの情報抽出を行うこともできる。
【００４４】
一実施形態において、エージェントはＪＡＶＡ（登録商標）でインプリメントされ、識別機能、処理機能および送信機能もＪＡＶＡ（登録商標）様式でインプリメントされる。システムオペレータは、デフォルトと異なるＪＡＶＡ（登録商標）クラスを提供して、さらなる機能をインプリメントすることができる。システムオペレータがデフォルトと異なるＪＡＶＡ（登録商標）クラスを提供すると、そのＪＡＶＡ（登録商標）クラスが用いられる。これにより、エージェントは、例えば、入力ファイルの代わりにプロセスからの出力を用い、様々な種類の処理を行い、または送信の際に特定の通信プロトコルを用いることができる。
【００４５】
ファイルは、処理を受けた後にまたは未処理のままの状態で、受信のコンピュータに送信される（ステップ５０２）。受信コンピュータに、ホスト１００、コンテンツ配信器１２５、またはウェブサービスシステム９０中の別のコンピュータのうちの１つであり得る。受信コンピュータに、システムオペレータが特定のファイル送信を行う前に選択したものを用いてもよいし、または、同じ受信コンピュータを全ての送信に用いてもよい。一実施形態において、上述したエージェント−エージェントプロトコルを用いて送信を達成する。他の実施形態において、他の様々なプロトコルを用いてファイル送信を達成することもできる。
【００４６】
ファイルは、受信コンピュータ上で実行されているエージェント（受信エージェントと呼ぶ）によって受信される（ステップ５０３）。任意選択として、ファイルを受信コンピュータによって処理することもある（ステップ５０４）。例えば、受信されたファイルを、アプリケーションプログラム、オペレーティングシステムユーティリティ、ＪＡＶＡ（登録商標）クラスまたは他のプロセスへの入力として提供することが可能である。このような処理ステップには、送信されたファイルを別のファイルフォーマットに変換するステップ、ファイルを解凍するステップなどが含まれ得る。このような処理ステップには、送信されたファイルからのデータをデータベースに組み込むステップも含まれ得る。このような処理ステップには、送信されたファイルからのデータを、１つ以上のホストからのファイルからのデータを含むファイルに組み込むステップも含まれ得る。
【００４７】
受信されたファイルは、処理を受けた後であってもまたは未処理のままの状態であっても、受信コンピュータによって格納される（ステップ５０５）。ファイルを受信コンピュータのファイルシステムに格納する際、当該ファイルが送信コンピュータのファイルシステム上において持っていた名称と同じ名称を用いて格納を行うことが可能である。別の名称（例えば、送信コンピュータの名称を含むファイル名）を用いてファイルを格納することも可能である。別の実施形態において、アプリケーションプログラム、システムユーティリティ、ＪＡＶＡ（登録商標）クラスまたは他のプロセスへの入力としてファイルを提供することにより、ファイル格納を達成する。
【００４８】
一実施形態において、エージェントはＪＡＶＡ（登録商標）様式でインプリメントされ、受信機能、処理機能および格納機能もＪＡＶＡ（登録商標）様式でインプリメントされる。システムオペレータは、デフォルトと異なるＪＡＶＡ（登録商標）クラスを提供して、さらなる機能をインプリメントすることができる。システムオペレータがデフォルトと異なるＪＡＶＡ（登録商標）クラスを提供すると、そのＪＡＶＡ（登録商標）クラスが用いられる。これにより、エージェントは、例えば、通信の際に特定のプロトコルを用い、様々な種類の処理を行い、または、ファイルの代わりにプロセスへの出力を提供することができるようになる。
【００４９】
一実施形態において、システムオペレータは、「ジョブ」を構成する。ジョブとは、１度だけ行われるかまたは繰り返し行われる転送であり、特定のタイミングまたは時間間隔で行われる。ジョブの明細を以下に挙げる：すなわち、ジョブ名（これは、システムオペレータがジョブの識別を容易にするために割り当てる識別子である）；ソースホスト（これは、送信エージェントを動作させているホストの名称である）；ソースファイル名（これは、ファイルシステム経路およびファイル名である）；送信コンピュータのプログラム識別子（これは、（一実施形態において）ＪＡＶＡ（登録商標）クラスであり、デフォルトであるかまたはシステムオペレータによって提供されたクラスのいずれかである）；スケジュール（これは、時間または時間間隔であり得、また、マニュアル起動を要求し得る）；属性（例えば、ソースファイルを継続的に更新するか否かおよびローテートされたファイル（例えば、図４および図５を参照して上述したようなファイル）であるか否か、ならびに例えば送信前に圧縮を必要とするファイルであるか否か）；宛先ホスト（これは、受信エージェントを実行させるホストである）；宛先ファイル名（これは、ファイルシステム経路およびファイル名である）；および受信コンピュータプログラム識別子（これはＪＡＶＡ（登録商標）クラスであり、デフォルトであるか、またはシステムオペレータによって提供されたクラスである）。
【００５０】
エージェント１０６は、起動すると、待ち状態のジョブを全てスキャンし、これにより、ウェブサーバ１０２上のファイルのうち、規定されたスケジュールに従って送信すべきものを決定する。適切な時期になると、エージェント１０６は、受信ホスト上のエージェントに接続しようとする。受信エージェントへの接続が開始すると、ファイルのソースエージェントによる処理（例えば、ファイルの圧縮（ただし、当該ジョブが圧縮対象として構成されている場合））、ファイルの受信エージェントへの送信、受信エージェントによるファイルの処理（例えば、ファイルの解凍（ただし、当該ジョブが解凍対象として構成されている場合））、ファイルの宛先ロケーションへのインストールが可能となる。別の実施形態において、ファイルを受信エージェントに送信して解凍した後、そのファイルをコンピュータプログラムに送って処理させ、その後そのファイルを受信コンピュータに格納する。
【００５１】
図４を参照する。いくつかのファイルは、経時的に連続して更新され得る。連続して更新されるファイルの１例はログファイルである。ログファイルは、ウェブサーバまたはオペレーティングシステムなどのコンピュータプログラムによってリポートされるイベントおよび／またはステータスのランニングレコードである。多くの場合、そのようなファイルはイベントが生じる際に更新され、周期的にステータス、または両方を記録する。多くの場合、そのようなファイルは、あるイベントまたはステータス情報をファイルの最後に追加することによってファイルに変更を行うアプリケーションによって更新される。
【００５２】
１つの実施形態において、ジョブ属性が、ファイルが連続的に更新されることを示すならば、システムは適切なアクションをとり得る。例えば、前回送信されなかったファイルの一部（あれば）が識別される（ステップ５１０）。変更がなされなかったならば、さらなるアクションはとられない。この判定は、前回送信されたファイルの長さを格納し、そして前回の送信以後にファイル中に含まれるいずれの追加部分（変更）を識別することによって達成され得る。ファイルへの変更がステップ５１０で識別された後、必要に応じて、図３のステップ５０１について上記されたようにその変更が処理され（ステップ５１１）、そして受信コンピュータへ送信される（ステップ５１２）。必要に応じて、受信コンピュータは、図３のステップ５０４について上記されたように、受信したデータを処理する（ステップ５１３）。例えば、ファイル変更は、ファイル中への挿入（例えば、展開）のために処理されるか、またはデータベースもしくは他のデータ集合体中への挿入のために処理される。ステップ５１４の処理の後または未処理のいずれの場合も、変更は格納される（ステップ５１５）。１つの実施形態において、変更は、受信コンピュータに存在する変更されたファイルのコピーに対してなされる。別の実施形態において、変更は別のファイル中に格納される。別の実施形態において、変更は、上記のようにコンピュータプログラムへ提供される。
【００５３】
図５を参照する。いくつかのシステムにおいて、ウェブサーバまたは他のアプリケーションは、連続して更新されるファイルを「ローテート（ｒｏｔａｔｅ）」またはリネームする。例えば、連続して更新されるファイルは、その最初のオリジナルネームから第２のネームにリネームされ得る。新しいファイルにオリジナルネームが与えられ、そしてこの新しいファイルがその時点以降更新される。言い換えると、リネームされたファイルはアーカイブとなり、そして新しいファイルは連続した更新を受け取る。この手法はログファイルに対して使用されることが多い。なぜなら、それによりファイルが無限に長くなることを防ぎ、そして特定のデータが存在し得るファイルを識別できるようになるからである。
【００５４】
例えば、図５をさらに参照して、「ＳＥＲＶＥＲ．ＬＯＧ」５１７Ａと呼ばれるウェブサーバログファイルは、毎日正午に日付を含むネームを用いて周期的にリネームされる。ファイルがリネームされた場合、オリジナルネーム「ＳＥＲＶＥＲ．ＬＯＧ」５１８Ｂ、５１９Ｃを有する新しいファイルが生成される。このように、この例において、１９９９年１１月１日に「ＳＥＲＶＥＲ．ＬＯＧ」ファイル５１７Ａは、「ＳＥＲＶＥＲ．ＬＯＧ−０１−１１−９９」５１７Ｂにリネームされ、ログが１９９９年１１月１日にリネームされたことを示す。この新しい「ＳＥＲＶＥＲ．ＬＯＧ」ファイル５１８Ｂは、１９９９年１１月１日正午から１９９９年１１月２日午前１１：５０まで連続更新を受け取る。１９９９年１１月２日正午に、１９９９年１１月１日に生成されそして１９９９年１１月１日の正午以来の変更を現在において含む「ＳＥＲＶＥＲ．ＬＯＧ」ファイル５１８Ｂは「ＳＥＲＶＥＲ．ＬＯＧ−０２−１１−９９」５１８Ｃにリネームされる。新しい、空の「ＳＥＲＶＥＲ．ＬＯＧ」ファイル５１９Ｃがその時点で生成される。この新しい「ＳＥＲＶＥＲ．ＬＯＧ」ファイル５１９Ｃは次の２４時間の間に更新される、等々。ログファイルローテーションが、数日、数週間、数ヶ月または数年などの任意の規則的な時間間隔で生じ得るか、またはファイルがあるサイズに達した場合に生じ得る。
【００５５】
図６を参照する。１つの実施形態において、ジョブ属性が、ファイルがローテートされ得ることを示すならば、エージェントはローテーションが生じたと判定し、したがってファイルデータを転送する。前回送信されなかったローテートされたファイルからの変更が送信され、そして同様に新しいファイルからの変更が送信される。
【００５６】
まず、ファイルが上記と同様に識別される（ステップ５２０）。エージェントは、識別されたファイルが、エージェントが前回アクセスしたファイルと同じであるかどうかを判定する、言い換えると、エージェントは、ローテーションが生じたかどうかを判定する（ステップ５２１）。例えば、ＵＮＩＸ（Ｒ）システム上で、ファイルシステムはファイルシステム中のファイルにｉノードを割り当てる；ファイルが変更される場合、ファイルに新しいｉノード番号が与えられる。ＵＮＩＸ（Ｒ）システム上で、エージェントは、ファイルが同じｉノード番号を有するかどうかを判定することによってファイルがローテートしたかどうかを判定する。ファイルが異なるｉノードを有するならば、ローテーションが生じた。ファイルシステムがｉノードを使用しないＷＩＮＤＯＷＳ（Ｒ）  ＮＴＴＭなどの他のオペレーティングシステムを用いたシステム上では、前回のバージョンを有するカレントファイルの生成または変更日の比較などの他のメカニズムが使用されなければならない。以下の議論において説明を簡単にするために、リネームされるオリジナルファイルを第１のファイルと称し、そして新しく生成された空ファイルを第２のファイルと称す。
【００５７】
ファイルローテーションが生じたならば、エージェントはリネームされた第１のファイルを識別する（ステップ５２２）。１つの実施形態において、これを行うために、オリジナルファイルと同じ接頭文字を有するすべてのファイルを検索し、そして第１のファイルのｉノード、生成または変更日、または初期コンテンツを第１のファイルの記録された既知値と比較することによって一番最近のファイルがどれかを判定する。それらが一致するならば、候補ファイルが第１のファイルであると識別される。別の実施形態において、識別は、オリジナルファイルと同じ接尾文字を有するすべてのファイルを検索することによって行われる。
【００５８】
前のファイルを識別する（ステップ５２２）と、エージェントは、直近の送信の後にファイルに対する変更（更新）がなされたか否かを判定する。変更がなされている場合、変更が識別される（ステップ５２３）。変更は上述したように、必要に応じて処理され（ステップ５２４）、処理されたまたは未処理の変更が受信エージェントに送信される（ステップ５２５）。受信エージェントは、変更を受け取り（ステップ５２６）、変更を処理し得る（ステップ５２７）。受信エージェントは、上述したように、処理されたまたは未処理の変更を格納する（ステップ５２８）。受信エージェントは、新しいファイル名を通知される（ステップ５２９）。一実施形態において、通知は、ファイルの名称を変更して送信ホスト上の名称を変更されたファイルと同一の名称を有するようにするという命令である。名称の変更を通知されると、受信エージェントは、ファイル名を変更する。送信エージェントは、第１のソースファイル名からどのような変更がなされたかを決定し、第１の宛先ファイル名にも同一の変更がなされ、これにより宛先ファイルの名称が変更される。前のファイルに変更がなされなかったと判定された場合（ステップ５２５）、変更は送信されず（ステップ２５２）、受信されず（ステップ５２６）、格納もされない（ステップ５２８）。処理はステップ５２９で継続する。いずれの場合も、第２のファイルが識別される（ステップ５３０）。
【００５９】
ステップ５２１でローテーションが検出された場合、第２のファイルが識別され（ステップ５３０）、ローテーションが起こらなかった場合、第１のファイルが識別される（ステップ５２０）。いずれの場合も、処理は図４に示すように継続し、ファイルに対する変更が識別される（ステップ５３１）。ローテーションが起こった場合、ファイル全体が「変更」である。ローテーションが起こらなかった場合、直近の送信後の変更が識別される。必要に応じて、変更が上述したように処理される（ステップ５３２）。（処理されたまたは未処理の）変更が、受信エージェントに送信される（ステップ５３３）。受信エージェントは変更を受け取り（ステップ５３４）、必要に応じて上述したように変更を処理する（ステップ５３５）。（処理されたまたは未処理の）変更は、受信エージェントによって、これもまた上述したように格納される（ステップ５３６）。
【００６０】
方法を特定の順序で起こるステップとして述べたが、ステップの順序は変化し得、送信ステップおよび受信ステップなどのいくつかのステップは同時に起こり得る。さらに、ファイル伝送を、１つの送信器および１つの受信器に関して述べてきたが、ファイル伝送は、上記方法を用いて２つ以上の送信エージェントが各々、ファイルを単一の受信エージェントに通信し得るように、拡張され得ることが明らかなはずである。従って受信エージェントは、送信エージェントからのすべてのファイルの集中格納手段となる。
【００６１】
たとえば一実施形態において図７を参照すると、配信システム内の複数のホスト５５０−１、５５０−２、５５０−３、５５０−４および５５０−５（概して５５０）が、各々、１つのホスト５５０−１にファイルを通信する。ここでも、図示する複数のホスト５５０は説明のためにのみ示されており、本発明をいずれかの特定の数のホストに限定することを意図するわけではない。配信システムは、図２のウェブサービスシステムであってもよいし、別のタイプのウェブサービスシステムまたは別のタイプのサービスシステム（たとえばファイルサービスシステム）であってもよい。または、複数のホスト５５０を含むいかなるシステムであってもよい。各ホスト５５０は、エージェント５５６−１、５５６−２、５５６−３、５５６−４および５５６−５（概して５５６）を含む。エージェント５５６は、上述したようなエージェント１０６であり得る。エージェント１０６は、ウェブサービスシステム９０に対するインターフェースを提供する。または別のシステムにおいては、エージェントはコンテンツ収集に加えて別の機能を有し得る。あるいは、エージェント５５６は、コンテンツ収集の目的のためのみに用いられるエージェント５５６であり得る。
【００６２】
各ホスト５５０は、ファイルシステム５５３−１、５５３−２、５５３−３、５５３−４および５５３−５（概して５５３）を含む。ファイルシステム５５３はエージェント５５６によってアクセス可能である。ファイルシステム５５３は、一時的および永久的データ格納用に用いられる媒体、たとえば、ハードディスク、フロッピー（Ｒ）ディスク、リムーバブルディスク、光ディスク、ＲＡＭ、ＲＯＭ、ＦＬＡＳＨ  ＲＯＭ、ＣＤ−Ｒ、ＣＤ−ＲＷなどで実行され得る。ファイルシステムは概して、ホスト５５０上で動作するオペレーティングシステムによって実行される。ファイルシステムは、物理的にホスト５５０の一部であってもよいし、シリアルバス、通信ネットワーク、または他のこのようなリンクによってホスト５５０にアクセス可能でありホスト５５０と通信していてもよい。
【００６３】
配信システムにおいて、エージェント５５６−２、５５６−３、５５６−４および５５６−５の各々は、上述した方法のうちの少なくとも１つを用いて、エージェント５５６−１のうちの１つにファイルを通信する。エージェントの各々には、コンテンツ収集ジョブが割り当てられている。エージェントが起動すると、エージェントは、コンテンツ収集ジョブのいずれを実行するべきでありスケジューリングするべきであるかを決定し、適宜ジョブを実行およびスケジューリングする。ジョブが実行されると、図３、図４および図５に示す方法のうちの１以上を用いてコンテンツ収集が行われる。このようにしてファイルシステム５５３−２、５５３−３、５５３−４および５５３−５上に格納されたファイルのいくつかの（またはすべての）サブセットが受信ホスト５５０−１のファイルシステム５５３−１上に複写される。上述したように、伝送は処理、ファイルデータ変換、テーブルまたはデータベースへのファイルデータの統合、または他の変更を含み得る。その結果、ホスト５５０上のファイルはすべて単一のシステムに収集される。そうすると、システムオペレータは、様々なホスト５５０からのファイルにアクセスするために、１つの場所のみを見ればよい。
【００６４】
当業者であれば、本明細書に記載されたことの、請求の範囲に記載の本発明の精神および範囲から逸脱しない変更、改変、および他の実行を考えつく。したがって、本発明は、説明のための明細書によってではなく、請求の範囲の精神および範囲によって規定される。
【図１】
2010003311.tif 000003
【図２】
2010003311.tif 000004
【図３】
2010003311.tif 000005
【図４】
2010003311.tif 000006
【図５】
2010003311.tif 000007
【図６】
2010003311.tif 000008
【図７】
2010003311.tif 000009