JP2002540491A - ウェブサーバコンテンツ複製 - Google Patents

ウェブサーバコンテンツ複製

Info

Publication number
JP2002540491A
JP2002540491A JP2000596488A JP2000596488A JP2002540491A JP 2002540491 A JP2002540491 A JP 2002540491A JP 2000596488 A JP2000596488 A JP 2000596488A JP 2000596488 A JP2000596488 A JP 2000596488A JP 2002540491 A JP2002540491 A JP 2002540491A
Authority
JP
Japan
Prior art keywords
file
web
changes
content
list
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
JP2000596488A
Other languages
English (en)
Other versions
JP4545943B2 (ja
Inventor
スタンリー ヤマネ,
スワップニル シャー,
ケイス ウェン,
アーサー マテオス,
マルコ ララ,
ジェイソン デベッテンコート,
Original Assignee
ウェブスペクティブ ソフトウェア, インコーポレイテッド
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
Priority claimed from US09/376,017 external-priority patent/US7035943B2/en
Priority claimed from US09/377,611 external-priority patent/US6976093B2/en
Application filed by ウェブスペクティブ ソフトウェア, インコーポレイテッド filed Critical ウェブスペクティブ ソフトウェア, インコーポレイテッド
Publication of JP2002540491A publication Critical patent/JP2002540491A/ja
Application granted granted Critical
Publication of JP4545943B2 publication Critical patent/JP4545943B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q50/00Systems or methods specially adapted for specific business sectors, e.g. utilities or tourism
    • G06Q50/10Services
    • 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
    • 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/958Organisation or management of web site content, e.g. publishing, maintaining pages or automatic linking

Abstract

(57)【要約】 本発明は、複数のウェブサーバの管理、システムオペレータがコンテンツをウェブサービスシステム内の各サーバに配信することを可能にするウェブサーバシステムおよび方法、ならびにキャッシュサーバのようなコンピュータにコンテンツの変更を知らせることに関する。1つの実施形態において、コンピュータに変更したファイルを知らせる方法は、ソースファイルセット内の変更点を識別する工程、修正リスト内の識別した変更点を格納する工程、および修正リストをコンピュータに送信する工程を含む。

Description

【発明の詳細な説明】
【0001】 (関連出願の相互参照) 本願は、1998年5月29日に出願された米国特許出願第09/086,8
21号の一部継続出願であり、本願は、1998年5月29日に出願された米国
特許出願第09/086,836号の一部継続出願であり、本願は、1998年
5月29日に出願された米国特許出願第09/086,874号の一部継続出願
であり、本願は、1998年5月29日に出願された米国特許出願第09/08
7,263号の一部継続出願であり、1999年1月28日に出願された米国仮
特許出願第60/117,674号、1999年8月19日に出願された米国特
許出願第09/376,017号、1999年8月19日に出願された米国特許
出願第09/377,611号の優先権を主張する。
【0002】 (技術分野) 本発明は、複数のウェブサーバの管理、より具体的には、システムオペレータ
がウェブサービスシステム内の各ウェブサーバにコンテンツを配信することを可
能にする。ウェブサービスシステムに関する。
【0003】 (背景情報) コンピュータネットワーク環境において、ウェブサーバは、ユーザのウェブペ
ージリクエストに応答するように用いられ、ユーザのウェブページリクエストは
、コンピュータネットワークにわたって送信される。コンテンツリクエストとも
呼ばれるウェブページリクエストは、典型的には、ユーザのコンピュータで実行
するブラウザによって行われる。ウェブサーバは、ウェブページリクエストに対
し、1つ以上のコンピュータネットワークアドレス/ポートエンドポイント端点
を監視し、リクエスタにウェブページを送信することによりウェブページリクエ
ストに、応答する。ウェブサーバは、特殊用途のデバイスであってもよいし、汎
用コンピュータで実行するソフトウェアプログラムによって実現されてもよい。
ウェブサーバのサービス容量は、所与の時間間隔で受信され得、応答され得るウ
ェブページリクエストの数を制限する。
【0004】 ウェブサービスシステムは、1つのウェブサーバまたは1つより多いウェブサ
ーバを含み得る。概して、ウェブサービスシステムが、1つより多いウェブサー
バを含む場合、ウェブサービスシステムは、複数のウェブサーバの各々がウェブ
ページリクエストに応答するように設計される。典型的には、ユーザのウェブペ
ージリクエストは、ウェブサーバのうちの1つに振り向けられ、そのウェブサー
バはそのウェブページリクエストに応答する。また、典型的には、多数のウェブ
ページリクエストを受信するように設計されるウェブサービスシステムが、多く
のウェブサーバを含む。
【0005】 概して、複数のウェブサーバを有するシステムにおいて、単数または複数のシ
ステムオペレータは、様々なサーバによって提供されるコンテンツを管理する。
システムオペレータは、システムのコンテンツを調整し、例えば、様々なウェブ
サーバのコンテンツがユニフォームであることを確認し、もしくは1つのウェブ
サーバから得られる一部のコンテンツおよび他のウェブサーバから得られる他の
コンテンツを有することを時に望み得る。これは、特にコンテンツの更新がユー
ザに対し明白であるべき場合、達成するのが困難であり、ユーザは、一連の関連
するウェブページを含むシステムとのインタラクションの最中である可能性があ
る。
【0006】 また、コンテンツの管理は、キャッシュサーバにとって問題である。キャッシ
ュサーバは、連続的なユニフォームのリクエストを満たすのに用いる、ブラウザ
からウェブサーバに伝えられるリクエストの結果を、「キャッシュする」、つま
り一時的に格納する。キャッシュサーバ設計および操作における課題は、格納さ
れた(キャッシュされた)コンテンツが元のサーバのコンテンツと一致しなくな
るか、すなわち、キャッシュされたコンテンツがいつ無効になるかを判定するこ
とである。ハイパーテキスト転送プロトコル(「http」)は、キャッシュサ
ーバがコンテンツのコピーを保たなければならない持続時間を特定する、一部の
コンテンツの元のサーバ用の仕組みを含む。しかし、一部のコンテンツについて
は、コンテンツがどれぐらいの間、有効性を維持するかを、元のサーバが前もっ
て正確に判定することが不可能であり、元のサーバによって特定された終了時間
よりも早くにコンテンツが予期せず更新される場合があり得る。
【0007】 (発明の要旨) 1つまたは多くのウェブサーバを有するウェブサービスシステムにおいて、1
つ以上のウェブサーバ上のコンテンツを管理および配信するシステムおよび方法
が、システムオペレータにとって有用である。例えば、コンテンツ更新は、しば
しば、素早く行われることが所望される。スケジューリングおよび自動化は、効
率的かつ一貫した様態で、サーバ上のコンテンツを更新するために用いられ得る
。また、可能な限り素早く、コンテンツの更新の失敗を識別し、機能しなくなっ
たサーバを休止させ、サーバを修理し、ウェブサービスシステムにおいてサーバ
を動作状態に戻すことは、有用である。更新を行うと同時に、トランザクション
の分断を最小化しながら、ウェブサイト利用可能性を最大化することが所望され
る。変更は、例えば、ウェブサーバプロセス(単数または複数)が終了するまで
ロードされない(および/または更新されない)共有のライブラリを用いてコン
テンツが供給される場合、サーバが再開することを必要とし得る。
【0008】 本発明によるウェブサービスシステムは、システムにおける1つ以上のウェブ
サーバの変更されたコンテンツを、正確に、かつ、効率的に更新する。その結果
ウェブサーバ間の変更は首尾一貫し、変更は過剰なネットワーク帯域幅を要求し
ない。これは、ウェブサーバとのトランザクションに関係するブラウザにコンテ
ンツの変化が顕著でなく、達成され、コンテンツのバージョンは、より古いコン
テンツを用いて開始されるトランザクションの一貫性のため、および更新に問題
がある場合に古いコンテンツにウェブサーバが戻ることを可能にするため、保存
される。また、本発明のウェブサービスシステムは、コンテンツの変更点を探知
し得、適切なときにキャッシュされたコンテンツが無効になったことをキャッシ
ュサーバに知らせ得る。
【0009】 概して、1つの局面において、本発明は、変更されたファイルをコンピュータ
に知らせるシステムおよび方法に関する。ソースファイルセット内の変更点は、
識別される。識別された変更点は、変更されたファイルを特定する、ユニフォー
ムリソースロケータを含む修正リストに格納される。修正リストは、コンピュー
タに送信される。1つの実施形態において、修正リストは、ウェブキャッシュサ
ーバに送信される。1つの実施形態において、ファイルのセットを検査し、ファ
イルのセットを以前に記録されたセットと比較することによって、変更点が識別
される。他の実施形態において、ファイル属性を以前に記録されたセットのファ
イル属性と比較することによって、ファイルのセットが以前に記録されたセット
と比較される。他の実施形態において、ファイル属性は、ファイルサイズ、ファ
イルの許可、ファイルの所有権、修正時刻、およびハッシュファイルのセットか
ら選択される少なくとも1つの属性を含む。他の実施形態において、ファイルの
セットを検査し、ファイルのセットを以前に記録されたセットと比較することに
よって、変更点が識別される。他の実施形態において、ファイル動作を行うよう
にデバイスドライバをインストールすること、および、デバイスドライバによっ
て、ソースファイルセットの変更点を記録することによって、変更点が識別され
る。他の実施形態において、ソースファイルセットの変更点を記述するマニフェ
スト(manifest)を受信することによって、変更点が識別される。他の
実施形態において、方法は、識別する工程の前に、スクリプトを呼び出す工程を
包含する。他の実施形態において、方法は、送信する工程の前に、スクリプトを
呼び出す工程を包含する。他の実施形態において、方法は、送信する工程の後に
、スクリプトを呼び出す工程を包含する。他の実施形態において、方法は、送信
する工程が首尾よく完了したかどうかを判定する工程を包含し、呼び出す工程が
、判定する工程の後に発生する。
【0010】 概して、他の局面において、本発明は、ソースファイルセット内の変更点を、
宛先ファイルシステムで複製し、変更点をコンピュータに知らせるシステムおよ
び方法に関する。ソースファイルセット内の変更点は識別される。変更点は、第
1の修正リストに格納される。修正リストは、宛先ファイルシステムへのアクセ
スを有するエージェントに送信される。変更点は、変更されたファイルを特定す
るユニフォームリソースロケータを含む、第2の修正リストに格納される。修正
リストは、コンピュータに送信される。1つの実施形態において、修正リストは
、ウェブキャッシュサーバに送信される。他の実施形態において、第1の修正リ
ストは、第2の修正リストに変換される。
【0011】 概して、他の局面において、本発明は、ソースファイルセット内の変更点を、
宛先ファイルシステム上で複製し、変更点をコンピュータに知らせるシステムお
よび方法に関する。ソースファイルセット内の変更点は識別される。変更点は、
変更されたファイルを特定するユニフォームリソースロケータを含む、第2の修
正リストに格納される。修正リストは、宛先ファイルシステムへのアクセス権を
有するエージェントに送信される。修正リストは、コンピュータに送信される。
【0012】 概して、他の局面において、本発明は、ウェブサービスシステムに関する。シ
ステムは、ウェブサービスシステムを管理するマネージャを含む。また、システ
ムは、ウェブページリクエストを受信するウェブサーバ、およびマネージャと通
信するエージェントを備えるホストを含む。また、システムは、ウェブキャッシ
ュと、ホストにコンテンツ変更点を提供するコンテンツディストリビュータとを
含む。1つの実施形態において、コンテンツディストリビュータは、コンテンツ
の変更点をウェブキャッシュに知らせる。他の実施形態において、システムは、
ウェブページリクエストを向けるトラフィックマネージャを含む。他の実施形態
において、コンテンツディストリビュータは、ソースファイルセット内の変更点
を識別する識別モジュールと、識別された変更点を格納する修正リストと、修正
リストを宛先ファイルシステムへのアクセスを有するエージェントに送信するト
ランスミッタとを含む。他の実施形態において、システムは、変更されたファイ
ルをエージェントに送信するトランスミッタを含む。他の実施形態において、エ
ージェントは、宛先ファイルシステム上の変更されたファイルをインストールす
る、インストーラを含む。
【0013】 概して、他の局面において、本発明は、コンテンツディストリビュータに関す
る。コンテンツディストリビュータは、ソースファイルセット内の変更点を識別
する識別モジュールを含む。また、コンテンツディストリビュータは、識別され
た変更点を格納する修正リストを含む。また、コンテンツディストリビュータは
、修正リストを宛先ファイルシステムへのアクセス権を有するエージェントに送
信するトランスミッタを含む。1つの実施形態において、コンテンツディストリ
ビュータは、変更されたファイルをエージェントに送信するトランスミッタを含
む。他の実施形態において、コンテンツディストリビュータは、変更されたファ
イルをウェブキャッシュサーバに送信するトランスミッタを含む。
【0014】 本発明の上記および他の目的、局面、特徴、および利点は、以下の説明からよ
り明らかになる。
【0015】 図面において、ユニフォームの参照符号は、概して、異なる図を通じて同じ部
分を指す。また、図面は、必ずしも縮尺される必要はなく、概して、本発明の原
理を示すことに重点が置かれている。
【0016】 (説明) ウェブページを供給するシステムは、複数のウェブサーバを有し、複数のウェ
ブサーバの動作を調整する機能およびツールをシステムオペレータに提供する。
システムは、1つのウェブサーバのみを有してもよいが、典型的には、1つより
多いウェブサーバを含む。システムは、概して、クライアントコンピュータ上の
ウェブブラウザから発生するウェブページリクエストを、利用可能なウェブサー
バに向けることによって、トラフィックを管理する。このようにして、システム
は、複数のサーバ間のウェブページリクエストサービス負荷の均衡を取る。シス
テムは、ウェブページリクエスト、およびこれらのウェブページリクエストに対
するウェブサーバ応答についてのデータを収集し得、データの報告と、自動およ
び手動解析ツールとを提供する。システムは、特定のイベントを監視し得、この
ようなイベントの発生時には自動的に動作し得る。イベントは、今にも起こりそ
うなシステム問題を示す予測または閾値を含む。システムは、自動エラー復旧を
提供し、構成要素の欠陥またはネットワーク環境問題のようなイベントから回復
するために取られ得る可能な動作を通じてシステムオペレータをガイドする、危
機管理能力を含み得る。システムは、システムオペレーションについての現在の
情報を、システムオペレータに示し得る。システムは、バージョン管理およびデ
ータのアップデートでコンテンツの複製を管理し得る。これらの機能性の一部ま
たは全てが、特定の実施形態において提供され得る。
【0017】 図1を参照すると、ウェブサービスシステム90の実施形態が、ブラウザ1か
らのウェブページリクエストを受信する。このコンテキストにおいて、ウェブペ
ージは、ウェブページリクエストに応答して、コンピュータネットワーク2上で
利用可能にされ得る電子コンテンツである。リクエストは、典型的には、ウェブ
ブラウザ1から発生される。ウェブページの一例として、表示、実行、再生、処
理、ストリーミング、および/または格納され得、他のウェブページへのリンク
、またはポインタを含み得る、コンピュータ実行可能または解釈可能な情報、グ
ラフィックス、音、テキスト、および/または映像を含むデータファイルがある
。リクエストは、通信ネットワーク2を介して通信され得る。1つの実施形態に
おいて、通信ネットワーク2はイントラネットである。他の実施形態において、
通信ネットワーク2は、インターネットとして公知のグローバル通信ネットワー
ク2である。ブラウザ1は、ユーザによって操作されて、ウェブページリクエス
トを作成し得る。また、ブラウザ1は、コンピュータまたはコンピュータプログ
ラムによって操作されて、コンピュータプログラミングに基づいて自動的にリク
エストを作成し得る。ウェブページリクエストは、ハイパーテキスト転送プロト
コル(「http」)フォーマットを用いて作成されてもよいし、リクエスト能
力を提供する他のプロトコルを用いて作成されてもよい。
【0018】 図2を参照すると、様々な構成要素100〜126を含むウェブサービスシス
テム90の実施形態が示される。構成要素は、1つ以上のコンピュータネットワ
ークを介して通信する。構成要素の物理的な位置は、様々な構成要素間の通信リ
ンクが十分なデータ通信能力を有する限り、システムの性能またはパフォーマン
スに影響を与えない。ウェブサービスシステム90は、種々の設計のファイアウ
ォールを通って機能し得、遠隔的に設定および管理され得る。
【0019】 ウェブサービスシステム90は、1つ以上のホスト100を管理する。例とし
て、1つのホスト100が示されている。ウェブサービスシステム90の実施形
態は、任意の数のホスト100を有し得る。各ホスト100は、市販されており
、UNIX(登録商標)またはWindows(登録商標) NTのようなマル
チスレッドのオペレーティングシステムを用いることができるコンピュータシス
テムであり得る。各ホスト100は、例えば、インターネットまたはイントラネ
ット、あるいは任意の他のネットワークのような、少なくとも1つのコンピュー
タネットワークへのネットワーク接続を有し得る。このことによって、ホスト1
00が、ウェブページデータリクエストに応答して、ウェブページデータを提供
することが可能になる。各ホスト100は、少なくとも1つのウェブサーバ10
2を含む。
【0020】 ウェブサーバ102は、コンピュータネットワークを介して受信したウェブペ
ージリクエストに応答して、ウェブページを提供する任意のウェブサーバであり
得る。このようなウェブサーバの2つの例は、Mountain View,C
aliforniaのNetscape Communications Co
rporationから市販されているNETSCAPE ENTERPRIS
E SERVERと、Redmond,WashingtonのMicroso
ft Corporationから市販されているMICROSOFT INT
ERNET INFORMATION SERVICES SERVERとがあ
る。ウェブサーバ102は、ブラウザおよび/またはウェブページのリクエスタ
とも呼ばれるウェブクライアントから、ウェブページリクエストを受信すること
ができる。また、ブラウザからのウェブページリクエストは、コンテンツリクエ
ストと呼ばれるか、またはウェブサーバの視点から、「ヒットする」とも呼ばれ
る。しばしば、ウェブページリクエストは、いくつかのリクエストおよび応答に
関わる、ウェブサーバ102との通信のシリーズの一部である。セッションと呼
ばれる、このようなシリーズは、ウェブサーバとの、広げられたインタラクショ
ンである。より短いインタラクション、例えば、商品の購入は、トランザクショ
ンと呼ばれる。セッションは、いくつかのトランザクションを含み得る。ユーザ
は、ウェブサーバ102の初期リクエストを作成することで、ウェブサーバ10
2とやりとりし、そのやりとりの結果ウェブサーバ102にウェブページを応答
として送信する。ウェブページは情報を含み得、ウェブサーバ102またはおそ
らく他のウェブサーバから作成し得る他のリクエストへのポインタも含み得る。
リクエストは、データベースから検索されなければならない情報を求める場合も
あれば、データベースに格納される情報を含む場合もある。リクエストは、ウェ
ブサーバ102による処理、または他のコンピュータシステムとのインタラクシ
ョンを必要とする場合もある。高性能なウェブサーバとブラウザとは、様々な方
法でインタラクトし得る。
【0021】 関連するトピックについてのウェブページのセットとして、または、特定のソ
ース、必ずではないが、通常は同じウェブサーバ102から、ユーザに提示され
る、関連するウェブページの集合は、アプリケーションと呼ばれる。アプリケー
ションの一例として、会社についての情報を提供するページのセットがある。ア
プリケーションの他の例として、ユーザが自身の貯蓄銀行と取り引きすることを
可能にするページのシリーズがある。ウェブページの2つのセットは、1つのア
プリケーションとして考えられてもよいし、2つの別個のアプリケーションとし
て考えられてもよい。例えば、ウェブページのセットは、銀行についての情報を
提供し得、ウェブページのカスタマーサービスセットは、銀行との事務処理を可
能にし得る。ウェブページのセットが、1つのアプリケーションとして考えられ
るか、またはいくつかのアプリケーションとして考えられるかは、アプリケーシ
ョン設計者によって決定される。ウェブサービスシステム90は、1つ以上のア
プリケーションをユーザに送る能力を有する。ウェブサービスシステム90は、
ウェブサーバ102の一部のサブセットが、1つのアプリケーションのみの役に
立つように設定され得る。1つの実施形態においては、ウェブサーバ102の一
部のサブセットが、利用可能なアプリケーションのサブセットの役に立ち、他の
ウェブサーバ102は、他のアプリケーションの役に立つ。他の実施形態におい
ては、全てのウェブサーバ102が、全ての利用可能なアプリケーションの役に
立つ。
【0022】 ユーザのウェブブラウザからのウェブページリクエストに応答してユーザに提
示されるウェブページは、ホスト100、または、ウェブサーバ102にアクセ
ス可能なファイルシステムに格納され得る。一部または全てのウェブページコン
テンツは、ウェブサーバ102に利用可能なデータを処理することによって、ウ
ェブサーバ102によって生成され得る。例えば、トピックについてのドキュメ
ントであるウェブページについて、ウェブページが、作成(設計)され、ウェブ
サーバ102ファイルシステムに格納され得る。ウェブページリクエストに応答
して、このようなウェブページは、ファイルシステムに格納されるのと同時に、
ユーザに送信され得る。しかし、銀行取引システムにおいては、ユーザの銀行口
座についての情報が、データベースに格納される可能性が高い。ウェブサーバ1
02は、ユーザがページをリクエストするたびに、ユーザの口座情報を含むウェ
ブページを生成し得る。しばしば、ウェブページは、部分的にはファイルシステ
ムに格納され、部分的には、リクエストされるとき、ウェブサーバ102によっ
て生成される。
【0023】 ユーザのウェブサーバ102とのセッションの「状態」とも呼ばれるステータ
ス情報を格納するため、様々な技術が用いられる。ユーザは、自身とウェブサー
バ102とのインタラクションの間に、作成するウェブサーバ102へのリクエ
スト、およびこれらのリクエストに対する応答として受信したウェブページを通
じて、状態を発展させ得る。一例として、ユーザの状態は、ユーザを識別する情
報を含み得る。他の例として、状態は、ユーザが既にリクエストしたウェブペー
ジ、またはユーザがシステムとのインタラクションにおいて選択したオプション
を特定する情報を含み得る。他の例として、状態は、商品販売アプリケーション
からユーザが購入することを選択したアイテムを含み得る。概して、セッション
の状態についての一部の情報またはセッションの状態を識別する情報は、例えば
、以下で説明するクッキーとして、クライアントウェブブラウザに格納され、一
部の情報は、ウェブサーバ102に格納され得る。
【0024】 ホスト100は、ホスト容量、性能、およびコストについての考慮に依存して
、任意の数の、その上で実行されるウェブサーバ102を有し得る。1つの実施
形態において、ホスト100は、1つのウェブサーバ102を含む。他の実施形
態において、ホストは、1つより多いウェブサーバ102を含む。ホスト100
上の1つのウェブサーバ102は、簡略化された例示的な例であり、ウェブサー
バ102の取り得る数を限定するものではない。各ウェブサーバ102は、エン
ドポイントとも呼ばれる、少なくとも1つのネットワークアドレスおよびポート
を監視する。特定のアドレスおよびポートが、バーチャルな通信のエンドポイン
トであるので、エンドポイントと呼ばれ、ネットワーク接続は、1つのアドレス
/ポートエンドポイントと他のアドレス/ポートエンドポイントとの間で作成さ
れる。ウェブサーバ102は、そのエンドポイントのうちの1つに向けられたリ
クエストを受信し、ウェブページの形式のデータでこれらのリクエストに応答す
る。
【0025】 複数のネットワークアドレス/ポートエンドポイントでリクエストを受け取る
ウェブサーバ102は、実際には1つのウェブサーバ102として実行されるに
も関わらず、複数の異なるウェブサーバ102であるかのように、動作し得る。
このようなウェブサーバは、複数エンドポイントウェブサーバと呼ばれる。説明
のため、複数のエンドポイントウェブサーバは、実際に、各ウェブサーバ102
がネットワークアドレス/ポートエンドポイントでリクエストを受信する、複数
のウェブサーバ102であるかのように、説明され得る。1つの実施形態におい
て、このような複数エンドポイントウェブサーバは、複数のエンドポイント全て
とのインターフェースである、ウェブサーバインターフェース104を1つ有す
る。
【0026】 各ウェブサーバ102は、ウェブサーバインターフェース104と関連付けら
れ得る。ウェブサーバインターフェース104は、ウェブサーバ102とウェブ
サービスシステム90の他の構成要素との間のインターフェースとして役に立つ
、プラグイン、フィルタ、または、ウェブサーバ102と関連付けられた他のソ
フトウェアであり得る。このコンテキストにおいて、タームウェブサーバインタ
ーフェースは、ホスト100に存在し得るネットワークインターフェースとは異
なる。例えば、ウェブサーバ102は、ウェブサーバインターフェース104を
有する。各ウェブサーバインターフェースは、各ホスト100上のエージェント
106と通信し得る。
【0027】 ホスト100は、エージェント106を含む。エージェント106は、ホスト
100とインターフェースをとるウェブサービスシステム90を提供する。エー
ジェント106は、ウェブサーバインターフェース104をウェブサービスシス
テム90とリンクする。また、エージェント106は、ホスト100をウェブサ
ービスシステム90とリンクする。複数のウェブサーバを有するホストにおいて
、1つより多いエージェントを有することが可能であるとしても、一般的には、
ホスト100上で実行しているエージェント106は1つしかない。各エージェ
ント106は、システム構成要素についての情報を含むデータベース108への
アクセスを有する。
【0028】 ホスト100上のエージェント106は、ウェブサービスシステムマネージャ
110と通信する。マネージャ110は、ホスト100およびウェブサーバ10
2のステータスについての情報を、エージェント106から受信する。マネージ
ャ110は、コマンドをエージェント106に送信して、ウェブサーバ102を
開始、終了、または一時停止させて、ウェブサーバ102の負荷を管理するよう
に、ホスト100を設定し得る。マネージャ110は、システム活動およびイベ
ントのロギングにおいて用いられるロギングデータベース114へのアクセスを
有する。また、マネージャ110は、システムの様々な構成要素についての情報
を格納するために用いられる、管理されているオブジェクトデータベース112
へのアクセスを有する。また、マネージャ110は、1つ以上のコンソール11
6A〜116X、全体的に116と呼ばれるコンソールと通信する。コンソール
116は、システムオペレータにユーザインターフェースを提供する。システム
オペレータは、システムのステータスを監視し、コンソールを通じてシステムを
設定し得る。マネージャ110は、ウェブサーバ102の1つまたはトラフィッ
クマネージャ120、あるいは、十分な容量の他のコンピュータのような、ウェ
ブサービスシステム90の他の構成要素と同じホスト100上で実行し得る。
【0029】 マネージャ110は、インターセプタとも呼ばれるトラフィックマネージャ1
20と通信する。トラフィックマネージャ120は、ウェブページリクエストを
ウェブサーバに向ける。本発明は、トラフィックマネージャ120の任意の特定
のタイプによって限定されず、ウェブページリクエストをウェブサーバ102に
向ける、任意の種類のトラフィックマネージャ120と共に動作するように意図
される。
【0030】 1つの実施形態において、トラフィックマネージャ120は、マネージャ11
0から情報およびコマンドを受信する。また、トラフィックマネージャ120は
、制御プログラム122から情報およびコマンドを受信する。トラフィックマネ
ージャ制御プログラムは、トラフィックマネージャ120と同じコンピュータシ
ステム上にあってもよく、あるいは、他のシステム上で実行してもよい。トラフ
ィックマネージャ120は、ウェブページリクエストを受信し、ウェブサーバの
うちの1つにリクエストを問い合わせる。ウェブサービスシステム90の管理能
力のうちの一部は、ウェブサーバ102によって作成されるウェブページリクエ
ストと、得られるウェブサーバ102およびホスト100上の負荷とを監視する
ことによって達成される。ウェブページリクエストは、ウェブサーバ102間の
負荷の均衡を取るように、向けられ得る。1つの実施形態において、トラフィッ
クマネージャ120は、ユーザが最初に接触する点である。トラフィックマネー
ジャ120は、ユーザからウェブページリクエストを受信し、ユーザのウェブブ
ラウザをそのリクエストに関して適切なウェブサーバ102に「問い合わせる」
。ユーザのウェブブラウザは、適切なウェブサーバ102上のウェブページへの
照会を用い、ウェブページリクエストに応答することで、問い合わせられる。こ
の照会能力は、ハイパーテキスト転送プロトコルに組込まれる能力で達成され得
るが、他の方法でも達成され得る。ユーザは、ウェブブラウザが、適切なウェブ
サーバ102に問い合わせられたことを認識してもよいし、しなくてもよい。ユ
ーザは、そのウェブサーバ102上のアプリケーションにアクセスし、そのウェ
ブサーバ102からのウェブページリクエストへの応答を受信し得る。1つの実
施形態において、ウェブサーバ102に負荷が掛けられ過ぎた場合、そのウェブ
サーバ102は、マネージャ110の指示の下で、ユーザをトラフィックマネー
ジャ120に差し戻すか、またはアプリケーションを送る能力を有する他のウェ
ブサーバ102に問い合わせ得る。
【0031】 トラフィックマネージャ120は、ユーザからのリクエストを受信し、ユーザ
のリクエストをウェブサーバ102に向け直す。1つの実施形態において、トラ
フィックマネージャ120が、他のトラフィックマネージャ120または単一の
エンドポイントのように、全てのユーザを1つのウェブサーバ102に向けるよ
うに用いられる。このようにして、トラフィックマネージャ120は、分路とし
て機能を果たす。すなわち、トラフィックマネージャ120は、ホストの1つ以
上のウェブサーバに向けられた全てのリクエストを、他のウェブサーバ102に
向ける。他の実施形態において、トラフィックマネージャ120は、マネージャ
110から、ステータス情報を受信し、その情報を用いてユーザを向け直す。ス
テータス情報は、サーバ利用可能性および負荷、管理者の変化、ならびにアプリ
ケーションまたはウェブサーバ102の開始および終了アクションを含む。トラ
フィックマネージャ120は、速度およびセキュリティのために設計される。ト
ラフィックマネージャ120は、システムの正面入り口であり、その性能は、全
体ウェブサービスシステム90の知覚された性能に影響する。トラフィックマネ
ージャ120を、ネットワークトポロジーの意味において、可能な限りバックボ
ーンの近傍に配置することが有用であり得る。従って、必然的に、トラフィック
マネージャ120は、ウェブサービスシステム90の最も露出される構成要素で
ある。
【0032】 1つの実施形態において、トラフィックマネージャ120は、ハードウェアに
おいて実現される。他の実施形態において、トラフィックマネージャ120は、
ホストコンピュータ上で実行されるソフトウェアプログラムである。ソフトウェ
ア実施形態の1つにおいて、トラフィックマネージャ120は、マルチスレッド
のオペレーティングシステムを実行する能力を有するサーバクラスコンピュータ
で実行されるスタンドアロンのプログラムである。UNIX(登録商標)の下で
、トラフィックマネージャ120は、例えば、デーモンとして実行し得る。Wi
ndows(登録商標)NTの下で、トラフィックマネージャ120は、サービ
スとして実行し得る。
【0033】 他の実施形態において、トラフィックマネージャ120は、1つのエンドポイ
ントに向けられたリクエストをウェブサーバ102に属するエンドポイントに向
けるインターネットプロトコルブリッジまたはルーターである。このようにして
、トラフィックマネージャ120は、ウェブページリクエストを、1つ以上のウ
ェブサーバ102に向ける。このようなトラフィックマネージャの一例として、
San Jose, CaliforniaのCisco Systems,
Inc.製のLOCALDIRECTORがある。さらに別の実施形態において
、トラフィックマネージャ120は、Westford, Massachus
ettsのArrowpoint Communications, Inc.
製のCONTENT SMART WEB SWITCHのようなウェブスイッ
チである。トラフィックマネージャ120は、各ウェブページリクエストを受信
し、リクエストに基づいて、リクエストをウェブサーバに向ける。
【0034】 また、ウェブサービスシステム90は、コンテンツディストリビュータ125
とも呼ばれるバージョンコントローラを含む。コンテンツディストリビュータ1
25は、ウェブサービスシステム90内の様々なウェブサーバ102上のコンテ
ンツの更新を含むバージョンおよびコンテンツ複製を管理する。コンテンツディ
ストリビュータ125のシステムオペレータインターフェースは、コンテンツコ
ントロール126によって提供される。1つの実施形態において、コンテンツデ
ィストリビュータ125およびコンテンツコントロール126は、それぞれ、ホ
スト100上で動作するスタンドアロンのプロセスである。他の実施形態におい
て、コンテンツディストリビュータ125およびコンテンツコントロール126
は、マネージャ110と同じホストで動作する。他の実施形態において、コンテ
ンツディストリビュータ125およびコンテンツコントロール126は、他のホ
スト上で動作する。コンテンツディストリビュータ125とコンテンツコントロ
ール126とは、同じホスト上で動作してもよいし、異なるホスト上で動作して
もよい。他の実施形態において、コンテンツディストリビュータ125は、マネ
ージャ110、またはシステム90の他の構成要素の機能に組み込まれ得る。
【0035】 コンテンツディストリビュータ125は、情報をエージェント106に送信し
、エージェント106を通じてウェブサーバインターフェース104に送信する
。送信された情報は、ソースファイルと呼ばれ、概して、階層ディレクトリ構造
に編成される、コンテンツディレクトリおよびファイルのセットの変更点を記述
する。これらのソースファイルは、ウェブサーバ用のコンテンツの「マスター」
コピーである。ディレクトリおよびファイルは、共に、概して、ソースファイル
またはソースファイルセットと呼ばれる。ソースファイルセットは、ステージン
グサーバとも呼ばれるソースホストに格納され得る。ステージングサーバは、典
型的には、コンテンツディストリビュータ125が実行しているホストであるが
、必ずしもそうでなくてもよい。説明を簡略にするため、以下の説明において、
コンテンツディレクトリおよびファイルは、ソースファイルであっても、ホスト
100上であっても、概して、単にファイルと呼ばれる。ソースファイルセット
は、ディレクトリおよびファイルの両方を含み得、また、ファイルの変更点は、
ディレクトリの追加、削除、および変更を含み得る。
【0036】 図3を参照すると、ある程度の期間にわたって、ソースファイルセットに対し
て変更が行われる(工程180)。行われる変更には、新しいファイルの作成、
古いファイルの削除、現存するファイルを新しいコンテンツで置換(すなわち、
ファイル内容の変更)、ならびに、許可制限および所有権のようなファイル属性
を変更することが含まれる。また、ファイルの変更について説明する場合でも、
ディレクトリの変更も含まれるように意図される。変更は、アプリケーションプ
ログラムおよびオペレーティングシステムユーティリティを含む、当該技術にお
いて公知である、このような編集技術およびツールを用いて、ファイルを編集す
ることによって行われる。変更は、テストされ、発展および承認プロセスにおい
て承認され得る。実際には、特定の時間では、ファイルの変更点がない場合があ
り、システムは、これを識別し得る。このような場合、変更点がないことが識別
された後、次の起こり得る変化が識別されるまで、さらなる処理が行われない。
【0037】 コンテンツディストリビュータは、ファイルの変更点を識別する(工程181
)。ファイルの変更は、多数の方法で識別され得る。1つの実施形態において、
コンテンツ設計者は、変更点のリストである、マニフェストを提供する。設計者
は、例えば、コンテンツコントロールユーザインターフェース126を用いて、
または、マニフェストをコンテンツディストリビュータ125に通信することに
よって、変更点を把握し、コンテンツディストリビュータへの変更を手動で識別
する。他の実施形態において、設計するためにコンテンツ設計者によって用いら
れるソフトウェアおよびシステムは、変更点をたどり、コンテンツディストリビ
ュータ125に通信される変更点のマニフェストを提供する。
【0038】 他の実施形態において、コンテンツディストリビュータ125は、オペレーテ
ィングシステムファイルサービスと一体化し、ソースファイルセットへの変更点
を監視する。このような実施形態の1つにおいて、オペレーティングシステムに
よって呼び出される、ソフトウェアデバイスドライバ「モニタ」がインストール
されて、ファイルオペレーションが行われる。デバイスモニタは、オペレーティ
ングシステムと実際のデバイスドライバ(すなわち、ハードディスクドライバソ
フトウェア)との間でデータを通過させるパススルー(pass throug
h)デバイスドライバとして機能を果たす。ディスクドライバを通じてディスク
I/Oコマンドを通過させることに加えて、デバイスモニタは、それらのI/O
コマンドを観察し、ソースファイルセットの変更点を記録する。1つの実施形態
において、デバイスモニタは、コンテンツディストリビュータ125と一体化さ
れる。他の実施形態において、デバイスモニタは、コンテンツディストリビュー
タ125に通信されたマニフェストを生成する。
【0039】 さらに別の実施形態において、コンテンツディストリビュータ125は、現在
のソースファイルセットと以前のソースファイルセットとの比較を行って、ソー
スファイルセットの変更点を判定する。コンテンツディストリビュータは、比較
のため、最後に更新されたときに存在したファイルのリストを維持する。このリ
ストには、ファイル名と、ファイルサイズ、ファイルが最後に変更された日付/
時間、コンテンツのハッシュコード、許可および/またはアクセスコントロール
制限、ユーザ/グループ所有権のような、他のファイル特性とが含まれる。1つ
の実施形態において、ファイルのリストは、以前のソースファイルセットにおけ
る全てのファイルの完全なコピーを含むが、大きなファイルシステムについては
、この実施形態は非効率的である。より効率的な実施形態において、以下で説明
するように、以前のファイルのリストおよび特定のファイル属性のみが必要とさ
れる。変更点を識別する工程(工程181)、変更点を送信する工程(工程18
2)、および変更点をインストール工程(工程183)は、更新と呼ばれること
もある。
【0040】 図4を参照すると、1つの実施形態において、ソースファイルと以前のソース
ファイルセットとの比較は、ソースファイルセット内のファイル(およびディレ
クトリ)の解析によって行われる。ソースファイルセット内の各ファイルについ
て(工程190)、コンテンツディストリビュータは、ソースファイルセット内
のファイルを、1つの実施形態において、上述したリストの形態である、以前の
ソースファイルセットを記述する情報と比較する。各ファイルについて、コンテ
ンツディストリビュータは、ファイルが以前のソースファイルセットリスト内に
あるかどうか判定する(工程191)。以前のソースファイルセットリスト内に
ない場合、ファイルは新たなファイルとしてリストに挙げられ(工程192)、
このファイルがソースファイルセットに追加されたことが示され、ファイルでハ
ッシュが計算される(工程193)。ファイルがリストに挙げられる場合、ファ
イルリスト項目がマークされて(工程194)、ファイルが依然ファイルセット
に含まれていることを示す。これは、後に、以前のリストのファイルがなくなっ
ている、すなわち、削除されたものがあるかどうか判定するために用いられる。
【0041】 ファイルのサイズは、リスト内の情報と比較される(工程195)。ファイル
サイズが異なる場合、このファイルは修正されたと考えられ、このようにリスト
に挙げられる(工程196)。ファイルの新たなハッシュが、計算され、リスト
に格納される(工程193)。サイズが同じである場合、日付/時間が比較され
る(工程197)。日付/時間が異なる場合、ファイルのハッシュは、計算され
、以前のリストに含まれるハッシュと比較される(工程198)。このコンテキ
ストにおいて、ハッシュは、ファイルのコンテンツについて行われ、ファイルコ
ンテンツに関連する単一の数が得られる計算である。このようなハッシュは、メ
ッセージ完全性コードとも呼ばれる。ハッシュコードの例として、チェックサム
および周期的冗長コードがある。ファイルのハッシュが異なる場合、このファイ
ルは、修正されたとしてリストに挙げられ(工程196)、新たなハッシュがリ
ストに格納される(工程193)。そうでない場合、ファイル属性(オーナー、
グループなど)が変更された場合(工程199)、ファイルは、修正された属性
を有するものとしてリストに挙げられる(工程200)。
【0042】 1つの実施形態において、ファイルコンテンツが変更されていない場合、シス
テムはまた、ファイル属性が変化していないかどうかを判定する(工程199)
。他の実施形態において、属性情報は、コンテンツ更新の一部として送信される
。これらの工程が、ソースファイルセット内の全てのファイルについて完了した
場合、工程194からのマーキングは、以前にリストに挙げられたファイルがな
くなっている、すなわち、ファイルセットから削除されたものがあるかどうかが
調べられる(工程200)。マークされていないファイルは、削除されたとして
リストに挙げられる(工程202)。
【0043】 ソースファイルセットの変更点は、マニフェストとも呼ばれる変更点リスト内
にあることが、コンテンツディストリビュータ125に知らせられる(iden
tify)。1つの実勢形態において、追加、削除、コンテンツ修正、および/
または属性修正のような、ファイルの変更点を示す項目を含む。例えば、追加ス
テートメント「ADD source/dir/dir/file 1」は、フ
ァイル1が追加されたことを示し、ステートメント「CHMOS source
/file 2」は、「file2」に関連する許可が変更されたことを示す。
例えば、他のステートメントには、ファイルの除去を示す「DELETE」、お
よびコンテンツの変更を示す「MODIFY」が含まれる。また、さらなる属性
の違いは、CHMODステートメントを用いるか、または、所有権変更について
のCHOWN、またはグループ関連の変更についてのCHGRPのような、自身
の特有ステートメントを有する。
【0044】 図5を参照すると、1つの実施形態において、マニフェストエントリー300
は、少なくとも8つの情報要素301〜308を含む。1つの実施形態において
、各エントリーは、テキストフォーマットで格納されるので、情報は、シンプル
テキストエディタでシステムオペレータによって読み出され得るか、他のソフト
ウェアによって翻訳され得る。他の実施形態において、各エントリーは、テキス
トフォーマットと同様に、同じ情報を含むが、よりコンパクトな2進数形式で格
納される。2進数形式は、変換ツールで、テキストフォーマットに変換され得る
。また、テキストフォーマットは、2進数形式に変換され得る。
【0045】 1つの実施形態において、マニフェストエントリー300は、ファイルタイプ
フィールド301を含む。可能なファイルタイプは、ディレクトリ、ファイル、
記号リンク、ハードリンク、または、ディレクトリ内の最後のファイルの後に来
るエンドオブディレクトリマーカーである。テキストフォーマットの実施形態に
おいて、各ファイルは、ディレクトリの「DIR」、エンドオブディレクトリマ
ーカーの「END」、通常ファイルの「NRM」、記号リンクの「LNK」、お
よびハードリンクの「HLK」のような3文字コードで記述される。2進数形式
の実施形態において、各選択肢は、整数コードによって表される。例えば、1つ
の実施形態において、ディレクトリは、数字1で表され、ファイルは2で表され
、以下同様に続く。
【0046】 また、マニフェストエントリー300は、取得されるアクションフィールド3
02を含む。テキストフォーマットの実施形態において、取得されるアクション
は、追加されるファイルの「ADD」、変更されたコンテンツの「CHG」、変
更されたオーナー、グループ、または許可の「CHP」、削除されたファイルの
「DEL」のような3文字コードである。3文字コード「NOC」は、ファイル
が変更されてないことを記述するために用いられる。2進数形式の実施形態にお
いて、各選択肢は、整数コードによって表される。例えば、1つの実施形態にお
いて、追加されたファイルは、数字1で表され、変更されたコンテンツは、2で
表され、以下同様に続く。
【0047】 また、マニフェストエントリー300は、ファイルアクセス許可、およびファ
イルについての他の情報を記述する、許可フィールド303を含む。テキストフ
ォーマットの実施形態において、UNIX(登録商標)形式で、4つの3項目バ
イナリ入力(すなわち、rwxrwxrwx)として、許可は格納される。ここ
で、第1の3項目バイナリ入力は、実行可能プログラムがユーザとして実行され
るかどうかを記述し、続く3つの入力は、それぞれ、オーナー、グループ、およ
びパブリックの読み出し、書き込みおよび実行許可を示す。バイナリ実施形態に
おいて、許可情報は、許可を表す4桁の8進数である、バイナリ整数として格納
される。
【0048】 また、マニフェストエントリー300は、ファイルのサイズを記述するファイ
ルサイズフィールド304を含む。テキストフォーマットの実施形態において、
ファイルサイズは、ASCII文字で書かれる。2進数形式の実施形態において
、ファイルサイズは、整数として格納される。
【0049】 また、マニフェストエントリー300は、日付/時刻スタンプ305を含む。
テキストフォーマットの実施形態において、日付および時刻は、ASCII文字
で書かれる。2進数形式の実施形態において、日付/時刻は、1970年1月1
日深夜からの秒数を表す整数として格納される。
【0050】 また、マニフェストエントリー300は、所有権情報306を含む。この情報
は、2つの部分、ファイルオーナーのユーザ識別子、およびグループオーナーの
グループ識別子を含む。テキストフォーマット実施形態において、オーナーおよ
びグループ識別子は、ASCIIストリングとして格納される。2進数形式の実
施形態において、オーナーおよびグループ識別子は、整数として、それぞれ格納
される。
【0051】 また、マニフェストエントリー300は、チェックサム307またはハッシュ
結果を含む。テキストフォーマットの実施形態において、これは、ASCIIス
トリングとして格納される。また、マニフェストエントリーは、ファイルの相対
パス名308を含む。テキストおよび2進数形式の両方の実施形態において、相
対パス名308は、ASCIIストリングとして格納される。
【0052】 図6を参照すると、変更点の例示的なリストに、追加されたファイルaaa(
ディレクトリである)、ディレクトリaaaのファイルagent.reg、q
uestd.reg、およびsqlserver.reg、ならびに、同様にデ
ィレクトリであるファイルbbbおよびcccが示されている。ディレクトリd
ddと、ディレクトリddd内のファイルabcおよびefgは、変更されてい
ない。また、ディレクトリefgも変更されていない。ディレクトリmmm、x
xx、およびyyyは削除され、ファイルagent.reg、questd.
reg、およびsqlserver.regはディレクトリxxxから削除され
ている。
【0053】 図7を参照すると、図5のフォーマットのマニフェストのテキストフォーマッ
トの実施形態の一例は、図6でリストに挙げられた変更点を反映させている。第
1の入力、ENTRY1において、ディレクトリaaaは、ファイル名308に
おいてリストに挙げられている。ファイルaaaは、タイプ301「DIR」と
してリストに挙げられる。このファイルのアクション302は、「ADD」であ
り、ファイルが追加されたことを示す。許可303は、UNIX(登録商標)形
式でリストに挙げられ、ファイルがディレクトリであること、オーナーが許可を
読み出し、書き込み、実行することを示す。ファイルサイズ304は、0として
リストに挙げられる。ファイルの日付/時刻スタンプ305は、5月27日17
:12としてリストに挙げられる。ユーザおよびグループ識別子306は、両方
とも、識別子0としてリストに挙げられる。ファイル307のチェックサムは、
0である。
【0054】 第2の入力、ENTRY2において、ファイル名308においてリストに挙げ
られるファイルは、agent.regである。このファイルは、agent.
regである(This file, agent.reg.)。ENTRY2
が、aaaディレクトリ入力(ENTRY1)および終了ステートメント(EN
TRY5)の間にあるので、このファイルは、ディレクトリaaaの中にある。
ファイルagent.regは、通常のタイプ301であり、アクション要素3
02において示すように、新たなファイルとして追加される。許可303は、オ
ーナーが許可を読み出し、書き込んだことを示す。ファイルサイズ304は、5
69バイトである。ファイルの日付305は、1998年5月11日である。ユ
ーザおよびグループ識別子306は、両方とも0である。チェックサム307は
、3564886220である。
【0055】 第5の入力、ENTRY5は、ディレクトリaaaのリスト項目の最後を示す
、タイプ301終了マーカーである。第6の入力、ENTRY6について、ディ
レクトリbbbは、aaa終了マーカーの後にリストに挙げられているので、a
aaのサブディレクトリではない。
【0056】 再度、図3を参照すると、1つの実施形態において、コンテンツディストリビ
ュータは、例えば、図4の方法を用いて変更点を判定することによって、マニフ
ェストを作成する。他の実施形態において、マニフェストは、コンテンツディス
トリビュータに通信される。1つの実施形態において、マニフェストは、マニフ
ェストを特定の位置(すなわち、ディレクトリおよびファイル名)に格納するこ
とによって通信され、コンテンツディストリビュータは、それを見出すように設
定される。他の実施形態において、マニフェストは、ネットワークを介してコン
テンツディストリビュータ125にはっきりと送信することによって、コンテン
ツディストリビュータに通信される。
【0057】 変更点が識別された後(工程181)、例えば、図3の実施形態を用いて、変
更点が、エージェントに送信される(工程182)。しばしば、変更点は、ホス
トファイルシステムの特定のディレクトリにマッピングされる。1つの実施形態
において、ソースファイルセットは、表1の実施例に示すように、様々なホスト
のファイルシステムにマッピングされる。
【0058】
【表1】 表1から明らかであるように、システム管理者は、ソースファイルセット内のフ
ァイルを、ステージングサーバファイルシステムから、様々なウェブサーバのフ
ァイルシステムにマッピングし得る。URLではなく、実際のファイルシステム
識別子を用いることによって、ユニフォームリソースロケータ(「URL」)で
識別可能でない、共有のライブラリおよび他のファイルのマッピングが可能にな
る。例えば、CGIスクリプトは、ウェブサーバからウェブページリクエストを
介して、このようなファイルが、概して利用可能でないのでURLが用いられる
場合、マッピングされず、URLを有さない。ファイルシステム識別子の代わり
に、URLを用いることが可能なので、修正され得るファイルのタイプの制限に
おけるトレードオフ以外において、マッピングは必要ない。URLが用いられる
場合、ウェブサーバからウェブページリクエストを介してアクセス可能なファイ
ルのみがアクセス可能である。
【0059】 1つの実施形態において、ソースファイルセットディレクトリ階層内のファイ
ルは、単一のアーカイブファイルに結合され、そのアーカイブファイルは、圧縮
される。設定可能な値より大きい任意のファイルは、ネットワークを介するホス
トシステムまでの通信をより効率的にし、ネットワークへの影響を低減するよう
に、より小さいブロックに分割される。ファイルをより小さいブロックに分割す
ることによって、タイムアウトの場合における再送信の量が最小化される。この
ような設定可能な値の例は、1メガバイトである。
【0060】 変更されたファイルのファイルサイズを含む変更点リスト(マニフェスト)は
、コンテンツを受け取るべき各エージェントに送信される。エージェントは、変
更リストにおけるファイルサイズおよびエージェントが認識している、行わなけ
ればならない計算に基づいて、更新のために十分なディスクの空き容量があるか
どうかを判定する。例えば、エージェントは、ファイルシステム内に、コンテン
ツ更新の圧縮されたコピー、および圧縮されてないデータのコピーを2つ、すな
わち、一時コピーおよび格納されるべきコピーを格納する、十分な場所があるか
どうかを判定し得る。このようにして、エージェントは、ホストが新たなコンテ
ンツによって負荷を掛けられ過ぎるようになる前に、転送を中止することができ
る。
【0061】 所定の数のサーバが、更新されたコンテンツを受信することに同意する場合、
データは、コンテンツディストリビュータからエージェントに送信される。多く
のエージェントが、コンテンツを受信することができない場合、コンテンツディ
ストリビュータは、ジョブを中止し得る。転送を行うために必要なエージェント
の率は、設定可能である。例えば、システムオペレータは、50%のエージェン
トが変更を受け入れることが可能になるまで転送が行われてはならないことを決
定し得る。このようにして、更新されたコンテンツを有するサーバの数が少なす
ぎることが防がれる。
【0062】 1つの実施形態において、転送は、ファイル転送プロトコル(「FTP」)の
ような標準TCP/IP転送を用いて行われる。他の実施形態において、転送は
、信頼できるマルチキャストプロトコルを用いて行われる。送信失敗がある場合
、データのブロックが再送信される。転送が繰り返し失敗する場合、転送は中止
され、システムオペレータへの警告を含む様々なアクションが取られ得る。また
、コンテンツディストリビュータは、予測されない環境に起因して、転送におい
て成功するエージェントが予期されていた数より少ない場合、変更点のインスト
ールを中止し得る。例えば、多くのエージェントが、ネットワーク接続性を失う
場合、新たなコンテンツの役に立つように利用可能なエージェントの数が不十分
であることが起こり得る。
【0063】 再度図1を参照すると、特定のエージェント106について更新が失敗する場
合、ウェブサービスシステム90は、システムの影響された部分を「避けて通る
(route around)」ように試みる。コンテンツディストリビュータ
がマネージャとは別である実施形態において、コンテンツディストリビュータ1
25は、エージェント106が失敗したことをマネージャ110に知らせる。マ
ネージャ110は、トラフィックマネージャ120と通信し、トラフィックマネ
ージャは、そのエージェント106と通信するウェブサーバ102にウェブペー
ジリクエストを向けない。また、マネージャ110は、ウェブサーバ102から
他のサーバにトラフィックを向け得る。
【0064】 1つの実施形態において、コンテンツディストリビュータ125は、失敗した
宛先エージェントを目標とする、「追い上げ(catch−up)」更新パッケ
ージを作成する。追い上げ更新パッケージは、エージェントに達する必要がある
が、達していない変更点を含む。初期的に、これは、第1の更新から、送信にお
いて失敗する、変更点のリストである。この追い上げ更新パッケージは、連続的
な更新が同じエージェントに達することを失敗する場合でも、増大し得る。更新
パッケージが失敗する場合、以前に伝送が失敗した変更点についての新たな更新
から依存し得るので、エージェントは、「追い上げ」更新が完了するまで他の更
新を受信しない。
【0065】 再度図3を参照すると、変更点がエージェント182に送信された後、変更点
がインストールされる(工程183)。エージェント106およびウェブサーバ
インターフェース104は、協力して、コンテンツをインストールする。新たな
コンテンツが受信される場合、エージェントは、更新パッケージを、再度組み立
て、その後、解凍し、データを一時データ格納に位置付ける。その後、エージェ
ントは、コンテンツディストリビュータからの信号を待って、サーバコンテンツ
ディレクトリへのファイルのコピーを開始する。信号が受信される場合、サーバ
コンテンツディレクトリで変更が行われる。また、削除するようにリストに挙げ
られた任意のファイルが、このとき除去さえる。更新が成功する場合、エージェ
ントは、ファイルの更新において成功したことをコンテンツディストリビュータ
に知らせる。1つの実施形態において、コピーは、単純な上書きによって達成さ
れる。他の実施形態において、古いファイルは、まず、再命名され、かつ/また
は、代替的なディレクトリに格納される。これによって、変化が素早く入れ替え
られるが、より多くのデータ格納を必要とするというトレードオフがある。何ら
かの理由でコピーが失敗する場合、エージェントは、コンテンツディストリビュ
ータに問題を警告する。エージェントまたはコンテンツディストリビュータのい
ずれかは、マネージャにも警告し、マネージャは、トラフィックマネージャに、
失敗したエージェントを避けるように指令し得る。1つの実施形態において、エ
ージェントは、ウェブサーバのコンテンツ状態を示すバージョン識別子を維持す
る。1つの実施形態において、バージョン識別子は、整数値である。
【0066】 1つの実施形態において、ウェブサーバは、更新プロセスの間、一時停止また
は停止する。ウェブサーバコンテンツディレクトリにファイルがコピーされる場
合、ウェブサーバは、リクエスタが首尾一貫していないコンテンツを受信するこ
とを避けるために、ウェブページリクエストの処理を止められる。ウェブサーバ
は、コンテンツ更新プロセスの間にユーザを向け直すように調節される。これは
、トラフィックマネージャがリクエストをそのウェブサーバに転送しないように
命令するマネージャによって、達成される。同時に、そのウェブサーバ102に
達するリクエストは、ウェブサーバインターフェース104によって、そのウェ
ブサーバ102から、トラフィックマネージャ120または他のウェブサーバ1
02に転送され得る。トランザクションの最中のユーザは、転送される前にトラ
ンザクションを完了するため、所定の長さの時間を与えられ得る。ウェブサーバ
が、リクエスタを除く場合、更新が起こる。アプリケーションバイナリファイル
が、変更されない場合、ウェブサーバは、リクエスタを除き得、リクエスタは、
コンテンツ転送が完了した後、サーバに向けられ得る。しかしながら、アプリケ
ーションバイナリファイルが修正された場合、ウェブサーバは再開される必要が
あり得る。
【0067】 いくつかの場合において、コンテンツを更新するために、ウェブサーバをディ
セーブルすることが可能でないこともある。一時的なブラウザの再方向付けのプ
ロセスは、非常に時間が掛かり得、その場合、ファイルの転送およびウェブサー
バの更新に必要な時間と共に、容認できないほど長い。サーバの利用可能性を最
大限にするため、コンテンツは、ウェブサーバがリクエストに応答し続ける間、
更新され得る。これは、変更されるファイルのコピーを作成し、これらのファイ
ルのコピーをウェブサーバにアクセス可能な場所に入れることによって、達成さ
れる。エージェントは、ウェブサーバインターフェースに、変更されているファ
イルについての全てのリクエストを遮らせる。変更していないファイルについて
のリクエストは、通常のコンテンツ領域に向けられ得る。変更しているファイル
についてのリクエストは、代わりに、安定コピー(stable copy)に
向けられ得、新たなファイルが、通常の領域にインストールされる。エージェン
トがファイルの修正を完了した後、ウェブサーバインターフェースは、通常領域
を再度用いるように信号送信され得る。古いコンテンツから新たなコンテンツへ
の転換の時に、関連するウェブページのシリーズに関わるトランザクションに関
わるユーザは、転換の後しばらく、トランザクションが完了するまで、「古い」
コンテンツにアクセスし続ける必要を有し得る。例えば、第1の価格で購入する
最中のユーザは、更新された異なる価格を用いるウェブページとのトランザクシ
ョンを完了すべきではない。
【0068】 1つの実施形態において、トランザクションの完全性を確実にするため、転換
のたびに、バージョン識別子が割り当てられる。1つの実施形態において、チェ
ックポイント識別子とも呼ばれるバージョン識別子は、コンテンツ更新ごとに増
分されることによって変更される整数である。ウェブサーバインターフェースは
、ブラウザによって予期されるバージョンに基づいて、ウェブページリクエスト
を遮り、そのバージョンのコンテンツを提供する。このことを行うために、ウェ
ブサーバは、ブラウザによって所望されるバージョンを知る必要がある。1つの
実施形態において、この情報は、URLに含まれる。しかし、これは、URLお
よびより複雑なファイル構造の作成という不利な点を有する。また、バージョン
変更点は、ユーザにとって、あまり意識されない。
【0069】 1つの実施形態において、ウェブサーバは、サーバによってブラウザに供給さ
れるページのその後−現在(then−current)バージョンを特定する
バージョン識別子を含むブラウザに、クッキーを発行する。クッキーは、ウェブ
サーバがブラウザに送信するので、ウェブサーバがそのブラウザについて何かを
「記憶する(remember)」ことができる特別なテキストファイルである
。ウェブのハイパーテキスト転送プロトコル(HTTP)を用いることによって
、ウェブページのリクエストの各々は、全ての他のリクエストから独立する。こ
のため、クッキーのようなメカニズムなしには、ウェブサーバは、以前にブラウ
ザに送信したページがどれかということも知らないか、または、ブラウザの以前
の訪問について何も知らない。クッキーは、サーバがブラウザについての自身の
情報をブラウザ自身のコンピュータに格納し、ユーザがウェブページリクエスト
を行う場合、その情報にアクセスすることを可能にするメカニズムである。クッ
キーには、有効な持続期間が提供され得る、すなわち、ある程度の時間の後、ブ
ラウザによって廃棄される。
【0070】 1つの実施形態において、このようなクッキーの一例が、コード、「Set−
Cookie:AtreveBCD=37;expires=Thursday
,20−January−1999 12:32:34 GMT;path=/
」として実現される。このコードは、ウェブサーバからブラウザに送信される。
ブラウザは、同じドメインにおいてウェブサーバと通信する場合、1999年1
月20日の12:32:34 GMTまで、任意のパスへの全てのリクエストに
ついて「Cookie:AtreveBCD=37」という行を含む。プロトコ
ルの「Set−Cookie」および「Cookie」部分は、HTTP規格に
よるヘッダである。「AtreveBCD」は、クッキーの名前である。Atr
eveBCDはデフォルトなので、任意の他の名前が用いられ得る。「37」は
、サーバが、終了時まで、現在、および将来(ウェブサーバインターフェースの
せいで)において提供し続けるチェックポイントである、クッキーの値である。
コード「終了」は、終了時を設定する。この例において、終了時は、1999年
1月20日である。「Path」コードは、どのページがクッキーを与えるかを
制限するために用いられ得るが、「/」は、全てのファイルを含むことを示す。
【0071】 ウェブサーバがブラウザに発行するクッキーは、ウェブサーバから、ブラウザ
がコンテンツをリクエストすることを効率的に可能にし、そのコンテンツについ
てのバージョン識別子を示す。従って、ブラウザが特定のURLを特定する特定
のクッキーで、6つのリクエストを作成する場合、これらの6つのリクエストは
、エージェントがその間に新たなバージョンのコンテンツをウェブサーバ102
に配信した場合にさえ、自己矛盾がない。
【0072】 1つの実施形態において、より早いコンテンツは、そのコンテンツを特定する
全てのクッキーが廃棄されるまで、廃棄されない。コンテンツは、1つのバージ
ョンから次のバージョンへの変更点を含む「バックアップ」領域に格納される。
例えば、バージョン2からバージョン3への移行において変更するファイルは、
バージョン2−3バックアップ領域に格納される。ウェブサーバインターフェー
スは、バージョン2からバージョン3への移行で変更されたバージョン2のウェ
ブページリクエストを、適切なバックアップ領域における適切なコンテンツに向
ける。
【0073】 図8を参照すると、簡略化された例において、ウェブサーバは、34の現在の
バージョン識別子を有するコンテンツを有する。クッキーが依然有効である以前
のバージョンは、バージョン33および32である。現在のバージョン、バージ
ョン34は、バージョン34において修正されたファイルAおよびB、バージョ
ン28において修正されたファイルC、バージョン25において修正されたファ
イルDを含む。ファイルAは、図に示す全てのバージョン(バージョン32、バ
ージョン33、およびバージョン34を含む)において修正された。ファイルB
は、バージョン30、バージョン32、上述したように、バージョン34におい
て修正された。従って、バージョン31からバージョン32への変更は、ファイ
ルAおよびBの変更点、バージョン1で作成されたファイルEの削除を含む。従
って、バージョン31からバージョン32への移行において変更されたファイル
を含む31−32バックアップ領域には、ファイルAのバージョン31、ファイ
ルBのバージョン30、ファイルEのバージョン1が格納されている。バージョ
ン32からバージョン33への変更には、ファイルAの修正が含まれるので、3
2−33バックアップ領域には、ファイルAのバージョン32が格納されている
。バージョン33からバージョン34への変更には、ファイルAおよびBの修正
、およびファイルF(バージョン10で追加)の削除が含まれるので、33−3
4バックアップ領域において、ファイルAのバージョン33、ファイルBのバー
ジョン32、ファイルFのバージョン10が格納される。
【0074】 例えば、現在のバージョン以外のコンテンツバージョンを示すクッキーを提示
することによって、ウェブサーバがコンテンツをリクエストする場合であって、
古いチェックポイントと現在のチェックポイントとの間でファイルが変更される
場合、ウェブサーバインターフェースは、ウェブサーバに現在のバージョン領域
以外の領域からコンテンツを取らせ得る。1つの実施形態において、ウェブサー
バインターフェースは、変更点リストを再び見て、リクエストされたファイルが
変更されたかどうか判定し、変更されている場合、どのバックアップ領域に位置
するかを判定する。例えば、現在のバージョンがバージョン34である、図8の
例をまた参照すると、ウェブサーバがファイルAのリクエストを受信し、クッキ
ーはブラウザがバージョン32を探していることを示す場合、ウェブサーバイン
ターフェースは、バージョン33の一部として、ファイルAが修正されたことが
わかる。従って、ファイルAのバージョン32は、32−33バックアップ領域
に位置する。ウェブサーバが、同じブラウザから(同じバージョン32クッキー
で)ファイルBのリクエストを受信する場合、ウェブサーバインターフェースは
、バージョン34でファイルBが修正され、ファイルBのバージョン32が33
−34バックアップ領域に格納されたと判定する。ウェブサーバがファイルDの
リクエストを受信する場合、ウェブサーバインターフェースは、ファイルがバー
ジョン32から修正されておらず、そのファイルが現在のバージョン領域から入
手され得ることを判定する。
【0075】 1つの実施形態において、コンテンツディストリビュータは、特定の時間また
は時間間隔に対するソースファイルセット変更点のスケジューリングされた更新
に備える。コンテンツディストリビュータは、システムオペレータの手動コマン
ドでも、更新し得る。1つの実施形態において、更新は、ファイルがどこからコ
ピーされる必要があるか(すなわち、ソースファイルセット)、どこにコピーさ
れる必要があるか(すなわち、ファイルサーバのファイルシステム)を示すコン
テンツマッピング、更新がいつ起こるかを示す開始/日付時間または時間間隔、
(上述したように)変更されたファイルのみが更新される必要があるか、または
全てのファイルがコピーされる必要があるかどうか、失敗の場合に取られる必要
があるアクション、コンテンツの更新においてサーバが再開される必要があるか
どうか、コンテンツの更新の間にサーバが一時停止または停止する必要があるか
どうか、更新が(システムオペレータがスケジューリングされた更新をディセー
ブルすることを可能にするように)イネーブルまたはディセーブルされるかどう
か、ならびに、サーバが変更を行うように命令される前に更新を許容する必要が
あるサーバの率によって、特定される。1つの実施形態において、更新は、ジョ
ブと呼ばれる。
【0076】 例えば、10分ごとに実行して、変更したファイルを更新し、任意の問題をシ
ステムオペレータに知らせる更新を特定することが可能である。また、月に1度
、更新を特定することも可能である。1つの実施形態において、システムは、フ
ァイルをコピーする間はサーバをオフにし、全ての変更されたファイルを更新し
、コンテンツが更新された場合、サーバを再開する。
【0077】 図9を参照すると、いくつかのウェブサービスシステム90は、関連付けられ
た1つ以上のキャッシュサーバ200を有する。キャッシュサーバ200は、リ
クエスタ201(例えば、ブラウザ)とウェブサービスシステム90の間に位置
するウェブサーバのタイプである。キャッシュサーバ200は、初期的には、い
ずれのコンテンツも有さない。それよりは、リクエスタ201からの命令でウェ
ブページをリクエストし、ウェブページをそのキャッシュに格納する。市販され
ているキャッシュサーバの一例として、Santa Clara, Calif
orniaのNetwork Applicance,Inc.製のNETCA
CHE製品がある。キャッシュサーバ200は、ブラウザ201から、ウェブサ
ービスシステム90に位置するコンテンツのウェブページリクエストを受信する
。リクエストおよび自身の設定に基づいて、キャッシュサーバ200は、ウェブ
ページを有する元のウェブサーバ(ウェブサービスシステム90)から、ウェブ
ページをリクエストする。キャッシュサーバ200は、元のウェブサーバ90か
ら、ウェブページを受信し、ブラウザ201にウェブページを送信する。また、
キャッシュサーバ200は、所定の期間、そのウェブページを格納する。ページ
が格納される期間は、コンテンツプロバイダ(元のウェブサービスシステム90
)によって、例えば、HTTPプロトコルに従って文書の送達の終了期間を特定
することによって、またはキャッシュサーバ200システム管理者のいずれかに
よって、決定される期間である。第2のリクエストが、同じリクエスタ201、
または異なるリクエスタから、終了期間の前にキャッシュサーバ200に到達す
る場合、キャッシュサーバは、元のサーバからコンテンツをリクエストすること
なしに、リクエストに応答して、ウェブページを再送信し得る。従って、リクエ
ストは、第2のリクエストで、元のサーバまたはネットワークにさらなる要求を
出すことなく、履行される。
【0078】 上述したように、ウェブサービスシステム90上でファイルが変更する場合、
キャッシュサーバ200上にキャッシュされたファイルは、終了し得ない。その
場合、キャッシュサーバ200は、ウェブサービスシステム90から利用可能な
更新されたバージョンよりも、よりカールした(carlier)ウェブページ
のバージョンを提供する。従って、上述したような変更点リストを用いて、ファ
イルが変更したことをキャッシュサーバ200に知らせることが有利である。
【0079】 図10を参照すると、キャッシュサーバでファイルの変更点が調整されたシス
テムにおいて、変更が行われ(工程180)、変更点が識別され(工程181)
、変更点がウェブサーバに送信され(工程182)、変更点がインストールされ
る(工程183)。また、キャッシュサーバは、変更が知らせられる(工程18
4)。キャッシュサーバに知らせる、さらなる工程(工程184)は、キャッシ
ュサーバが、もはや用いられないウェブページを破棄する(すなわち、除く)こ
とを可能にする。1つのキャッシュサーバ、または多くのキャッシュサーバがあ
り得、様々な通信技術を用いて知らせられ得る。例えば、1つの実施形態におい
て、放送メッセージが用いられる。他の実施形態において、各キャッシュサーバ
に別個のメッセージが送信される。さらに別の実施形態において、ファイルが、
1つ以上のキャッシュサーバとって利用可能なディレクトリに格納される。
【0080】 図11を参照すると、図6の方法の実施形態は、変更を行う工程(工程180
)、変更点を識別する工程(工程181)、キャッシュに知らせる工程(工程1
84)を含み得る。1つの実施形態において、知らせること(工程184)は、
変更点リストをユニフォームリソースロケータ(「URL」)に変換して、コン
テンツを識別する工程(工程186)を含む。ブラウザは、URLを用いて、コ
ンテンツを識別する。上述したように、1つの実施形態において、変更点リスト
は、ウェブサーバにとってより簡便で、殆どのファイルシステムにおける全ての
ファイルを示すことを可能にするので、ホストファイルシステムにおけるディレ
クトリおよびファイルに関して記述される。キャッシュサーバに変更点を提供す
る場合、URLを含むフォーマットで、ファイル(およびディレクトリ)が挙げ
られる変更点リストを変換することは有用である。ソースディレクトリは、可能
なURLの特定のプレフィックスに対応することがあり得る。例えば、コンテン
ツディレクトリおよびファイル「C:\WEBSPECTIVE\HOME\A
BOUT_HTML」は、URL「http://www.webspecti
ve.com/home/about_html」に対応し得る。これは、プレ
フィックスが修正された(この場合、C:\WEBSPECTIVEは、htt
p://www_webspective.comで置き換えられる)ことを含
意し、ディレクトリを分割するもの、この場合では、バックスラッシュ「\」は
、URL標準フォーワードスラッシュ「/」で置き換えられている。さらに、U
RLにおいて許容されない文字、例えばスペースが、特定化されたルールに従っ
て符号化される。このような文字の置き換えの一例が、T.Berners−L
eeらによる、「Uniform Resource Locator」という
題のIETF Network Working Group RFC−178
3文書において記載される。例えば、スペースは、「%20」で符号化され得、
この翻訳は、URLプレフィックスに連結される。
【0081】 リスト項目が、URLフォーマットに変換された後、変更されたURLのリス
トは、キャッシュサーバに送信される(工程187)。キャッシュサーバは、こ
のリストを用いて、古いコンテンツを破棄し得る。図7に示すように、通知を行
うためにコンテンツ伝送を行う必要はない。例えば、1つしかウェブサーバがな
いが、キャッシュが多い場合、図7のシステムは、1つ以上のキャッシュサーバ
に変更を知らせるように機能を果たす。図7に示すように、変更が行われ(工程
180)、変更点が識別され(工程181)、変更点のリストは、URLに変換
される(工程186)。これらの変更点は、キャッシュサーバに送信される(工
程187)。他の実施形態において、URLへの変換(工程186)は、変更が
行われる工程(工程180)と、変更点を識別する工程(工程181)との間に
行われる。
【0082】 図12を参照すると、1つの実施形態において、図3および図10の方法は、
ユーザ設定可能スクリプトを実行する工程をさらに含む。変更が行われた(工程
180)後、ユーザ設定可能スクリプトが実行される(工程280)。変更点を
識別した後(工程181)、ユーザ設定可能スクリプトが実行される(工程28
1)。スクリプトは、変更点の送信(工程182)と同時に実行される。変更点
が送信された後(工程182)、ユーザ設定可能スクリプトは再度実行される(
工程282)。ユーザ設定可能スクリプトは、カスタマーの実現に特有のコンテ
ンツ配信タスクを達成するために、用いられ得る。ユーザ設定可能スクリプトは
、オペレーティングシステム機能の適切な呼び出しを通じて実行される。
【0083】 図13を参照すると、1つの実施形態において、コールアウトスクリプトに情
報が提供される。1つの実施形態において、情報は、標準入力のスクリプトに提
供される。他の実施形態において、情報は、ファイル内に提供される。スクリプ
トは、十分な(ゼロ)ステータスコード、または、1つの実施形態において動作
を中止する非ゼロエラーコードのいずれかである。
【0084】 1つの実施形態において、情報400は、テキストフォーマットで提供され、
BEGINPARAMSステートメント401で開始し、ENDPARAMSス
テートメント420で終了する。情報400は、互換性のために用いられる、情
報ブロックのバージョン数402を含む。情報400は、この例においてEXA
MPLEJOBである、ジョブ名403を含む。
【0085】 情報400は、BEGIN、IN PROGRESS、およびENDのうちの
1つであり得るジョブ404の状態を含む。BEGIN値は、変更点を識別する
(すなわち、図11の工程280)前にスクリプトが呼び出されることを示す。
IN PROGRESS値は、変更点を識別した後、変更点が送信される前(ま
たは、ちょうど送信されるとき)にスクリプトが呼び出されることを示す(すな
わち、図11の工程281)。END値は、送信が完了したことを示す(すなわ
ち、図11の工程282)。情報400は、この場合はALLIMAGESであ
る、マッピング405の名前を含む。情報400は、この例において、/TMP
/STAGING/23423.TXT.であるマニフェストファイル406の
パス名を含む。この例において、マニフェストは、テキストファイルであり、上
述したテキストフォーマットの実施形態であることを含意する。1つの実施形態
において、マニフェストは、スクリプトが呼び出される前にテキストファイルに
変換されるように、2進数形式の実施形態に格納される。
【0086】 情報400は、ソースファイルセットディレクトリ406、および、より早い
(変更の前の)バージョンを指示し得るか、自動的に回帰される任意のコンテン
ツを保持し得る、回帰ディレクトリディレクトリ408を含む。宛先409のア
レイが示される。各アレイの要素は、ファイルの宛先についての情報を含む。こ
の例において、2つの宛先ホスト、OOLONGおよびDARJEELINGが
ある。アレイの第1の要素は、BEGINELEMENTステートメント410
で開始し、ENDELEMENTステートメント414で終了する。アレイ要素
は、この場合においてはOOLONGである、宛先ホストの名前411を含む。
アレイ要素は、この例においては/HOME/HTTPD−OOLONG/DO
C/IMAGESである、宛先ホストの宛先ディレクトリ412を含む。アレイ
要素は、この例においてはNORMALである、転送413の状態を含む。アレ
イの第2の要素は、BEGINELEMENTステートメント415で開始し、
ENDELEMENTステートメント419で終了する。第2のアレイ要素は、
この場合においてはDARJEELINGである、宛先ホストの名前416を含
む。アレイ要素は、この例においては/HOME/HTTPD−DARJEEL
ING/DOC/IMAGESである、宛先ホストの宛先ディレクトリ417を
含む。第2のアレイ要素は、この例においてはNORMALである、転送418
の状態を含む。従って、ユーザスクリプトに提供される情報は、同じスクリプト
が、ジョブの実行の間に、異なる場合に呼び出されることを可能にし、スクリプ
トは、提供されるパラメータに依存して、異なるアクションを取り得る。
【0087】 本明細書の記載の変形例、改変例、および他の実現例は、請求された本発明の
精神および範囲から逸脱することなく、当業者によって想起され得る。従って、
本発明は、前述の例示的な記載によって規定されるものではなく、特許請求の範
囲の精神および範囲によって規定される。
【図面の簡単な説明】
【図1】 図1は、本発明による、ウェブサービスシステムの実施形態のブロック図であ
る。
【図2】 図2は、ウェブサービスシステムの実施形態のより詳細なブロック図である。
【図3】 図3は、図1のコンテンツディストリビュータの実施形態の動作のフローチャ
ートである。
【図4】 図4は、現在のソースファイルセットと前のファイルセットとの比較のフロー
チャートである。
【図5】 図5は、マニフェストエントリーの実施形態の図である。
【図6】 図6は、変更されたファイルの一例の図である。
【図7】 図7は、図6の変更されたファイルを示すマニフェストの例示的な実施形態の
図である。
【図8】 図8は、古いバージョンのメンテナンスの実施形態の一例の図である。
【図9】 図9は、キャッシュサーバと通信するウェブサービスシステムの実施形態のブ
ロック図である。
【図10】 図10は、コンテンツを配信する方法の実施形態のフローチャートである。
【図11】 図11は、コンテンツディストリビュータの他の実施形態の動作のフローチャ
ートである。
【図12】 図12は、コンテンツディストリビュータの他の実施形態の動作のフローチャ
ートである。
【図13】 図13は、図12の実施形態のスクリプトに提供される情報の一例の図である
───────────────────────────────────────────────────── フロントページの続き (31)優先権主張番号 09/377,611 (32)優先日 平成11年8月19日(1999.8.19) (33)優先権主張国 米国(US) (81)指定国 EP(AT,BE,CH,CY, DE,DK,ES,FI,FR,GB,GR,IE,I T,LU,MC,NL,PT,SE),OA(BF,BJ ,CF,CG,CI,CM,GA,GN,GW,ML, MR,NE,SN,TD,TG),AP(GH,GM,K E,LS,MW,SD,SL,SZ,TZ,UG,ZW ),EA(AM,AZ,BY,KG,KZ,MD,RU, TJ,TM),AE,AL,AM,AT,AU,AZ, BA,BB,BG,BR,BY,CA,CH,CN,C R,CU,CZ,DE,DK,DM,EE,ES,FI ,GB,GD,GE,GH,GM,HR,HU,ID, IL,IN,IS,JP,KE,KG,KP,KR,K Z,LC,LK,LR,LS,LT,LU,LV,MA ,MD,MG,MK,MN,MW,MX,NO,NZ, PL,PT,RO,RU,SD,SE,SG,SI,S K,SL,TJ,TM,TR,TT,TZ,UA,UG ,UZ,VN,YU,ZA,ZW (72)発明者 シャー, スワップニル アメリカ合衆国 マサチューセッツ 01742, コンコード, サッドバリー ロード 467 (72)発明者 ウェン, ケイス アメリカ合衆国 カリフォルニア 94114, サン フランシスコ, ヒル ストリー ト 541, アパートメント ビー (72)発明者 マテオス, アーサー アメリカ合衆国 マサチューセッツ 02174, アーリントン, ブロードウェ イ 261 (72)発明者 ララ, マルコ アメリカ合衆国 マサチューセッツ 01983, トップスフィールド, ワイル デス ロード 21 (72)発明者 デベッテンコート, ジェイソン アメリカ合衆国 マサチューセッツ 01701, フラミンガム, エッジエル ロード 835 Fターム(参考) 5B075 KK07 KK13 KK33 KK40 ND20 ND23 ND36 PQ02 PQ46 UU40 5B082 GB02 HA02 HA03 5B085 AA08 BG04 BG07

Claims (20)

    【特許請求の範囲】
  1. 【請求項1】 変更されたファイルをコンピュータに知らせる方法であって
    、 (a)ソースファイルセット内の変更点を識別する工程と、 (b)該変更されたファイルを特定する、ユニフォームリソースロケータを含
    む修正リストに識別された変更点を格納する工程と、 (c)該修正リストをコンピュータに送信する工程と を包含する、方法。
  2. 【請求項2】 前記工程(c)が、前記修正リストをウェブキャッシュサー
    バに送信する工程を包含する、請求項1に記載の方法。
  3. 【請求項3】 前記識別する工程が、 ファイルのセットを検査する工程と、 ファイルのセットを以前に記録されたセットと比較する工程と を包含する、請求項1に記載の方法。
  4. 【請求項4】 前記比較する工程が、ファイル属性を前記以前に記録された
    セットのファイル属性と比較する工程を包含する、請求項3に記載の方法。
  5. 【請求項5】 前記ファイル属性が、ファイルサイズ、ファイル許可、ファ
    イル所有権、修正時刻、およびファイルのハッシュのセットから選択される少な
    くとも1つの属性を含む、請求項4に記載の方法。
  6. 【請求項6】 前記識別する工程が、 ファイル動作を行うようにデバイスドライバをインストールする工程と、 該デバイスドライバによって、前記ソースファイルセットの変更点を記録する
    工程と を包含する、請求項1に記載の方法。
  7. 【請求項7】 前記識別する工程が、 前記ソースファイルセットの変更点を記述するマニフェストを受信する工程と
    、 を包含する、請求項1に記載の方法。
  8. 【請求項8】 前記識別する工程の前に、スクリプトを呼び出す工程をさら
    に包含する、請求項1に記載の方法。
  9. 【請求項9】 前記送信する工程の前に、スクリプトを呼び出す工程をさら
    に包含する、請求項1に記載の方法。
  10. 【請求項10】 前記送信する工程の後に、スクリプトを呼び出す工程をさ
    らに包含する、請求項1に記載の方法。
  11. 【請求項11】 前記送信する工程が首尾よく完了したかどうかを判定する
    工程をさらに包含し、前記呼び出す工程が、該判定する工程の後に発生する、請
    求項10に記載の方法。
  12. 【請求項12】 ソースファイルセット内の変更点を、宛先ファイルシステ
    ムで複製し、該変更点をコンピュータに知らせる方法であって、 (a)ソースファイルセット内の変更点を識別する工程と、 (b)第1の修正リストに該変更点を格納する工程と、 (c)該第1の修正リストを、宛先ファイルシステムへのアクセスを有するエ
    ージェントに送信する工程と、 (d)変更されたファイルを特定するユニフォームリソースロケータを含む、
    第2の修正リストに変更点を格納する工程と、 (e)該第2の修正リストをコンピュータに送信する工程と を包含する、方法。
  13. 【請求項13】 前記コンピュータは、ウェブキャッシュサーバである、請
    求項12に記載の方法。
  14. 【請求項14】 前記工程(d)の前に、前記第1の修正リストを前記第2
    の修正リストに変換する工程をさらに包含する、請求項12に記載の方法。
  15. 【請求項15】 ソースファイルセット内の変更点を、宛先ファイルシステ
    ムで複製し、該変更点をコンピュータに知らせる方法であって、 (a)ソースファイルセット内の変更点を識別する工程と、 (b)変更されたファイルを特定するユニフォームリソースロケータを含む修
    正リストに該変更点を格納する工程と、 (c)該修正リストを、宛先ファイルシステムへのアクセスを有するエージェ
    ントに送信する工程と、 (d)該修正リストをコンピュータに送信する工程と を包含する、方法。
  16. 【請求項16】 ウェブサービスシステムを管理するマネージャと、 ウェブページリクエストを受信するウェブサーバ、および該マネージャと通信
    するエージェントを備えるホストと、 ウェブキャッシュと、 該ホストにコンテンツ変更点を提供するコンテンツディストリビュータと を備える、ウェブサービスシステム。
  17. 【請求項17】 ウェブページリクエストを前記ウェブサーバに向けるトラ
    フィックマネージャをさらに備える、請求項16に記載のシステム。
  18. 【請求項18】 前記コンテンツディストリビュータが、 (a)ソースファイルセット内の変更点を識別する、識別モジュールと、 (b)識別された変更点を格納する、修正リストと、 (c)該修正リストを宛先ファイルシステムへのアクセスを有するエージェン
    トに送信する、トランスミッタと を備える、請求項16に記載のシステム。
  19. 【請求項19】 前記変更されたファイルを前記エージェントに送信するト
    ランスミッタを備える、請求項18に記載のシステム。
  20. 【請求項20】 (a)ソースファイルセット内の変更点を識別する、識別
    モジュールと、 (b)識別された変更点を格納する、修正リストと、 (c)該修正リストを宛先ファイルシステムへのアクセスを有するエージェン
    トに送信する、トランスミッタと、 (d)変更されたファイルをウェブキャッシュサーバに送信する、トランスミ
    ッタと を備える、コンテンツディストリビュータ。
JP2000596488A 1999-01-28 2000-01-25 ウェブサーバコンテンツ複製 Expired - Fee Related JP4545943B2 (ja)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US11767499P 1999-01-28 1999-01-28
US09/376,017 US7035943B2 (en) 1998-05-29 1999-08-19 Web server content replication
US09/377,611 1999-08-19
US60/117,674 1999-08-19
US09/376,017 1999-08-19
US09/377,611 US6976093B2 (en) 1998-05-29 1999-08-19 Web server content replication
PCT/US2000/001837 WO2000045300A1 (en) 1999-01-28 2000-01-25 Web server content replication

Publications (2)

Publication Number Publication Date
JP2002540491A true JP2002540491A (ja) 2002-11-26
JP4545943B2 JP4545943B2 (ja) 2010-09-15

Family

ID=27382020

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2000596488A Expired - Fee Related JP4545943B2 (ja) 1999-01-28 2000-01-25 ウェブサーバコンテンツ複製
JP2000596491A Expired - Lifetime JP4590105B2 (ja) 1999-01-28 2000-01-25 ウェブサーバコンテンツ複製

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2000596491A Expired - Lifetime JP4590105B2 (ja) 1999-01-28 2000-01-25 ウェブサーバコンテンツ複製

Country Status (6)

Country Link
JP (2) JP4545943B2 (ja)
KR (2) KR100729288B1 (ja)
AU (2) AU2629300A (ja)
CA (2) CA2360891A1 (ja)
GB (2) GB2362974B (ja)
WO (2) WO2000045303A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002032261A (ja) * 2000-07-14 2002-01-31 Nec Corp 動的に作られかつ静的であるウェブコンテントの知的キャッシュとリフレッシュのためのシステムと方法

Families Citing this family (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6412017B1 (en) 1996-07-01 2002-06-25 Microsoft Corporation Urgent replication facility
US6976093B2 (en) 1998-05-29 2005-12-13 Yahoo! Inc. Web server content replication
WO2002013091A1 (en) * 2000-08-04 2002-02-14 Goldman, Sachs & Co. System for processing raw financial data to produce validated product offering information to subscribers
US7139844B2 (en) 2000-08-04 2006-11-21 Goldman Sachs & Co. Method and system for processing financial data objects carried on broadcast data streams and delivering information to subscribing clients
US7958025B2 (en) 2000-08-04 2011-06-07 Goldman Sachs & Co. Method and system for processing raw financial data streams to produce and distribute structured and validated product offering objects
US7958251B2 (en) 2000-08-04 2011-06-07 Goldman Sachs & Co. Method and system for processing raw financial data streams to produce and distribute structured and validated product offering data to subscribing clients
US6609126B1 (en) 2000-11-15 2003-08-19 Appfluent Technology, Inc. System and method for routing database requests to a database and a cache
US20020065800A1 (en) * 2000-11-30 2002-05-30 Morlitz David M. HTTP archive file
KR20020072453A (ko) 2001-03-10 2002-09-16 삼성전자 주식회사 재생장치 및 부가정보 서비스 서버 시스템
WO2003009157A1 (en) 2001-07-16 2003-01-30 Bea Systems, Inc. Method and apparatus for session replication and failover
KR20020072804A (ko) * 2002-06-10 2002-09-18 (주)코리아리더스 테크놀러지 유무선 데이터 동기화 기술과 무선 멀티미디어 전용데이터베이스를 이용한 멀티미디어 컨텐츠 관리방법
US7051053B2 (en) * 2002-09-30 2006-05-23 Dinesh Sinha Method of lazily replicating files and monitoring log in backup file system
EP1406167A1 (en) * 2002-10-01 2004-04-07 Sun Microsystems, Inc. Content server synchronization
JP2004157996A (ja) * 2002-10-15 2004-06-03 Matsushita Electric Ind Co Ltd ウェブデータ配信システム
US20070172055A1 (en) * 2003-12-11 2007-07-26 Jo Bea S Apparatus and method for distorting digital contents and recovering the distorted contents
GB2412280A (en) * 2004-03-19 2005-09-21 Canon Europa Nv Creating and editing a library of digital media documents
US7454503B2 (en) * 2004-04-08 2008-11-18 International Business Machines Corporation Method to identify transactions and manage the capacity to support the transaction
KR100680296B1 (ko) 2005-04-15 2007-02-07 주식회사 케이티프리텔 무선 네트워크를 통한 대용량 컨텐츠 이어받기 서비스 제공방법 및 이를 구현하기 위한 프로그램이 기록된 기록매체
WO2006110005A1 (en) 2005-04-15 2006-10-19 Ktfreetel Co., Ltd. Method for providing contents for mobile comunication terminal
WO2006109998A1 (en) 2005-04-15 2006-10-19 Ktfreetel Co., Ltd. Method for providing contents
EP2289261A4 (en) * 2008-06-18 2013-10-02 Blackberry Ltd METHOD AND SYSTEM FOR REPEATING MOBILE CONTENT
KR101456624B1 (ko) * 2008-10-28 2014-11-04 삼성전자주식회사 화상형성장치, 및 웹 어플리케이션 설치 방법
US8874628B1 (en) * 2009-10-15 2014-10-28 Symantec Corporation Systems and methods for projecting hierarchical storage management functions
KR200453762Y1 (ko) * 2010-12-17 2011-05-27 윤동웅 슬라이드가 구성된 단추금형
US10142436B2 (en) 2015-11-19 2018-11-27 Microsoft Technology Licensing, Llc Enhanced mode control of cached data
CN107302469B (zh) * 2016-04-14 2020-03-31 北京京东尚科信息技术有限公司 分布式服务集群系统数据更新的监控装置及方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10214216A (ja) * 1996-10-18 1998-08-11 At & T Corp データネットワーク上のキャッシュ・サーバー間の通信方法
JPH10254753A (ja) * 1996-10-18 1998-09-25 At & T Corp キャッシュ間情報転送方法

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5630116A (en) * 1993-08-11 1997-05-13 Nec Corporation Automatic delivery system for master files in a distributed processing system
US5434994A (en) * 1994-05-23 1995-07-18 International Business Machines Corporation System and method for maintaining replicated data coherency in a data processing system
US5774668A (en) * 1995-06-07 1998-06-30 Microsoft Corporation System for on-line service in which gateway computer uses service map which includes loading condition of servers broadcasted by application servers for load balancing
US5765171A (en) * 1995-12-29 1998-06-09 Lucent Technologies Inc. Maintaining consistency of database replicas
US5812793A (en) * 1996-06-26 1998-09-22 Microsoft Corporation System and method for asynchronous store and forward data replication
AU6967898A (en) * 1997-05-27 1998-12-30 Merrill Lynch & Co., Inc. System for network file distribution

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10214216A (ja) * 1996-10-18 1998-08-11 At & T Corp データネットワーク上のキャッシュ・サーバー間の通信方法
JPH10254753A (ja) * 1996-10-18 1998-09-25 At & T Corp キャッシュ間情報転送方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2002032261A (ja) * 2000-07-14 2002-01-31 Nec Corp 動的に作られかつ静的であるウェブコンテントの知的キャッシュとリフレッシュのためのシステムと方法

Also Published As

Publication number Publication date
KR20020009556A (ko) 2002-02-01
WO2000045303A1 (en) 2000-08-03
AU2629300A (en) 2000-08-18
GB2362974A (en) 2001-12-05
CA2360900A1 (en) 2000-08-03
KR20020003859A (ko) 2002-01-15
JP4590105B2 (ja) 2010-12-01
WO2000045300A1 (en) 2000-08-03
KR100729288B1 (ko) 2007-06-18
GB2363494B (en) 2003-10-15
GB2363494A (en) 2001-12-19
KR100729287B1 (ko) 2007-06-18
JP2002540492A (ja) 2002-11-26
GB2362974B (en) 2003-12-17
CA2360891A1 (en) 2000-08-03
GB0119649D0 (en) 2001-10-03
AU3473200A (en) 2000-08-18
GB0119648D0 (en) 2001-10-03
JP4545943B2 (ja) 2010-09-15

Similar Documents

Publication Publication Date Title
US6976093B2 (en) Web server content replication
JP4545943B2 (ja) ウェブサーバコンテンツ複製
US7035943B2 (en) Web server content replication
EP1410247B1 (en) A network storage system
US6711572B2 (en) File system for distributing content in a data network and related methods
US7058720B1 (en) Geographical client distribution methods, systems and computer program products
US7266555B1 (en) Methods and apparatus for accessing remote storage through use of a local device
US7428540B1 (en) Network storage system
US5991760A (en) Method and apparatus for modifying copies of remotely stored documents using a web browser
US6105028A (en) Method and apparatus for accessing copies of documents using a web browser request interceptor
US7266556B1 (en) Failover architecture for a distributed storage system
US7203731B1 (en) Dynamic replication of files in a network storage system
US7590747B2 (en) Distributed storage cluster architecture
US6061686A (en) Updating a copy of a remote document stored in a local computer system
US7356589B2 (en) Content collection
US20050010916A1 (en) System for providing software application updates to multiple clients on a network
US7281168B1 (en) Failover architecture for local devices that access remote storage
JP2002501254A (ja) ネットワークを介したコンテンツをアドレス可能なデータに対するアクセス
WO2007038275A2 (en) Systems and methods for remote storage of electronic data
JP4958951B2 (ja) コンテンツ収集
JP2003330836A (ja) データ送信方法
WO1998054631A2 (en) System for network file distribution
JP3866533B2 (ja) ファイル管理システムおよび方法、プログラム
JP2001273252A (ja) ウェブサーバおよびウェブサーバのコンテンツ管理方法、ならびにウェブサーバコンテンツ管理プログラムを記録した記録媒体

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20061226

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20070810

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20070810

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090826

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20091125

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20091202

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20100121

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20100128

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100225

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

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20100701

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130709

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130709

Year of fee payment: 3

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: R3D02

LAPS Cancellation because of no payment of annual fees