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

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

Info

Publication number
JP4590105B2
JP4590105B2 JP2000596491A JP2000596491A JP4590105B2 JP 4590105 B2 JP4590105 B2 JP 4590105B2 JP 2000596491 A JP2000596491 A JP 2000596491A JP 2000596491 A JP2000596491 A JP 2000596491A JP 4590105 B2 JP4590105 B2 JP 4590105B2
Authority
JP
Japan
Prior art keywords
file
web server
web
changes
agent
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.)
Expired - Lifetime
Application number
JP2000596491A
Other languages
English (en)
Other versions
JP2002540492A (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 JP2002540492A publication Critical patent/JP2002540492A/ja
Application granted granted Critical
Publication of JP4590105B2 publication Critical patent/JP4590105B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

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/00Information and communication technology [ICT] specially adapted for implementation of business processes of 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • Business, Economics & Management (AREA)
  • General Physics & Mathematics (AREA)
  • Tourism & Hospitality (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Health & Medical Sciences (AREA)
  • Economics (AREA)
  • General Health & Medical Sciences (AREA)
  • Human Resources & Organizations (AREA)
  • Marketing (AREA)
  • Primary Health Care (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Between Computers (AREA)

Description

【0001】
(関連出願の相互参照)
本願は、1998年5月29日に出願された米国特許出願第09/086,821号の一部継続出願であり、本願は、1998年5月29日に出願された米国特許出願第09/086,836号の一部継続出願であり、本願は、1998年5月29日に出願された米国特許出願第09/086,874号の一部継続出願であり、本願は、1998年5月29日に出願された米国特許出願第09/087,263号の一部継続出願であり、1999年1月28日に出願された米国仮特許出願第60/117,674号、1999年8月19日に出願された米国特許出願第09/377,611号、1999年8月19日に出願された米国特許出願第09/376,017号の優先権を主張する。
【0002】
(技術分野)
本発明は、複数のウェブサーバの管理、より具体的には、システムオペレータがウェブサービスシステム内の各ウェブサーバにコンテンツを配信することを可能にする。ウェブサービスシステムに関する。
【0003】
(背景情報)
コンピュータネットワーク環境において、ウェブサーバは、ユーザのウェブページリクエストに応答するように用いられ、ユーザのウェブページリクエストは、コンピュータネットワークにわたって送信される。コンテンツリクエストとも呼ばれるウェブページリクエストは、典型的には、ユーザのコンピュータで実行するブラウザによって行われる。ウェブサーバは、ウェブページリクエストに対し、1つ以上のコンピュータネットワークアドレス/ポートエンドポイント端点を監視し、リクエスタにウェブページを送信することによりウェブページリクエストに、応答する。ウェブサーバは、特殊用途のデバイスであってもよいし、汎用コンピュータで実行するソフトウェアプログラムによって実現されてもよい。ウェブサーバのサービス容量は、所与の時間間隔で受信され得、応答され得るウェブページリクエストの数を制限する。
【0004】
ウェブサービスシステムは、1つのウェブサーバまたは1つより多いウェブサーバを含み得る。概して、ウェブサービスシステムが、1つより多いウェブサーバを含む場合、ウェブサービスシステムは、複数のウェブサーバの各々がウェブページリクエストに応答するように設計される。典型的には、ユーザのウェブページリクエストは、ウェブサーバのうちの1つに振り向けられ、そのウェブサーバはそのウェブページリクエストに応答する。また、典型的には、多数のウェブページリクエストを受信するように設計されるウェブサービスシステムが、多くのウェブサーバを含む。
【0005】
概して、複数のウェブサーバを有するシステムにおいて、単数または複数のシステムオペレータは、様々なサーバによって提供されるコンテンツを管理する。システムオペレータは、システムのコンテンツを調整し、例えば、様々なウェブサーバのコンテンツが同一であることを確認し、もしくは1つのウェブサーバから得られる一部のコンテンツおよび他のウェブサーバから得られる他のコンテンツを有することを時に望み得る。これは、特にコンテンツの更新がユーザに対し明白であるべき場合、達成するのが困難であり、ユーザは、一連の関連するウェブページを含むシステムとのインタラクションの最中である可能性がある。
【0006】
また、コンテンツの管理は、キャッシュサーバにとって問題である。キャッシュサーバは、連続的な同一のリクエストを満たすのに用いる、ブラウザからウェブサーバに伝えられるリクエストの結果を、「キャッシュする」、つまり一時的に格納する。キャッシュサーバ設計および操作における課題は、格納された(キャッシュされた)コンテンツが元のサーバのコンテンツと一致しなくなるか、すなわち、キャッシュされたコンテンツがいつ無効になるかを判定することである。ハイパーテキスト転送プロトコル(「http」)は、キャッシュサーバがコンテンツのコピーを保たなければならない持続時間を特定する、一部のコンテンツの元のサーバ用の仕組みを含む。しかし、一部のコンテンツについては、コンテンツがどれぐらいの間、有効性を維持するかを、元のサーバが前もって正確に判定することが不可能であり、元のサーバによって特定された終了時間よりも早くにコンテンツが予期せず更新される場合があり得る。
【0007】
(発明の要旨)
1つまたは多くのウェブサーバを有するウェブサービスシステムにおいて、1つ以上のウェブサーバ上のコンテンツを管理および配信するシステムおよび方法が、システムオペレータにとって有用である。例えば、コンテンツ更新は、しばしば、素早く行われることが所望される。スケジューリングおよび自動化は、効率的かつ一貫した様態で、サーバ上のコンテンツを更新するために用いられ得る。また、可能な限り素早く、コンテンツの更新の失敗を識別し、機能しなくなったサーバを休止させ、サーバを修理し、ウェブサービスシステムにおいてサーバを動作状態に戻すことは、有用である。更新を行うと同時に、トランザクションの分断を最小化しながら、ウェブサイト利用可能性を最大化することが所望される。変更は、例えば、ウェブサーバプロセス(単数または複数)が終了するまでロードされない(および/または更新されない)共有のライブラリを用いてコンテンツが供給される場合、サーバが再開することを必要とし得る。
【0008】
本発明によるウェブサービスシステムは、システムにおける1つ以上のウェブサーバの変更されたコンテンツを、正確に、かつ、効率的に更新する。その結果ウェブサーバ間の変更は首尾一貫し、変更は過剰なネットワーク帯域幅を要求しない。これは、ウェブサーバとのトランザクションに関係するブラウザにコンテンツの変化が顕著でなく、達成され、コンテンツのバージョンは、より古いコンテンツを用いて開始されるトランザクションの一貫性のため、および更新に問題がある場合に古いコンテンツにウェブサーバが戻ることを可能にするため、保存される。また、本発明のウェブサービスシステムは、コンテンツの変更点を探知し得、適切なときにキャッシュされたコンテンツが無効になったことをキャッシュサーバに知らせ得る。
【0009】
概して、1つの局面において、本発明は、宛先ファイルシステム上のソースファイルセットの変更点を複製するシステムおよび方法に関する。ソースファイルセット内の変更点は、識別される。変更点は、修正リストに格納される。修正リストは、宛先ファイルシステムへのアクセスを有するエージェントに送信される。1つの実施形態において、変更されたファイルは、エージェントに送信される。他の実施形態において、変更されたファイルは、宛先ファイルシステムにインストールされる。他の実施形態において、ファイルのセットを検査し、ファイルのセットを以前に記録されたセットと比較することによって、変更点が識別される。他の実施形態において、ファイル動作を行うようにデバイスドライバをインストールすること、および、デバイスドライバによって、ソースファイルセットの変更点を記録することによって、変更点が識別される。他の実施形態において、ソースファイルセットの変更点を記述するマニフェスト(manifest)を受信することによって、変更点が識別される。他の実施形態において、ファイル属性を以前に記録されたセットのファイル属性と比較することによって、ファイルが比較される。他の実施形態において、ファイル属性は、ファイルサイズ、ファイルの許可、ファイルの所有権、修正時刻、およびハッシュファイルのセットから選択される少なくとも1つの属性を含む。他の実施形態において、方法は、変更点を識別する工程の前に、スクリプトを呼び出す工程を包含する。他の実施形態において、方法は、変更点を送信する工程の前に、スクリプトを呼び出す工程を包含する。他の実施形態において、方法は、変更点を送信する工程の後に、スクリプトを呼び出す工程を包含する。他の実施形態において、方法は、送信が首尾よく完了したかどうかを判定する工程の後、スクリプトを呼び出す工程を包含する。
【0010】
概して、他の局面において、本発明は、ソースファイルセット内の変更点を、宛先ファイルシステムで複製するシステムおよび方法に関する。ソースファイルセット内の変更点は識別される。識別された変更点は、変更されたファイルを特定するユニフォームリソースロケータを含む、修正リストに格納される。修正リストは、少なくとも2つのウェブサーバに送信される。1つの実施形態において、送信は、マルチキャスティングによって達成される。1つの実施形態において、ファイルのセットを検査し、ファイルのセットを以前に記録されたセットと比較することによって、変更点が識別される。他の実施形態において、ファイル属性を以前に記録されたセットのファイル属性と比較することによって、ファイルのセットが以前に記録されたセットと比較される。他の実施形態において、ファイル属性は、ファイルサイズ、ファイルの許可、ファイルの所有権、修正時刻、およびハッシュファイルのセットから選択される少なくとも1つの属性を含む。
【0011】
概して、他の局面において、本発明は、ウェブサービスシステムに関する。システムは、ウェブサービスシステムを管理するマネージャを含む。また、システムは、ウェブページリクエストを受信するウェブサーバ、およびマネージャと通信するエージェントを備えるホストを含む。また、システムは、ホストにコンテンツ変更点を提供するコンテンツディストリビュータを含む。1つの実施形態において、システムは、ウェブページリクエストを向けるトラフィックマネージャを含む。他の実施形態において、コンテンツディストリビュータは、ソースファイルセット内の変更点を識別する識別モジュールと、識別された変更点を格納する修正リストと、修正リストを宛先ファイルシステムへのアクセスを有するエージェントに送信するトランスミッタとを含む。他の実施形態において、システムは、変更されたファイルをエージェントに送信するトランスミッタを含む。他の実施形態において、エージェントは、宛先ファイルシステム上に変更されたファイルをインストールする、インストーラを含む。
【0012】
概して、他の局面において、本発明は、コンテンツディストリビュータに関する。コンテンツディストリビュータは、ソースファイルセット内の変更点を識別する識別モジュールを含む。また、コンテンツディストリビュータは、識別された変更点を格納する修正リストを含む。また、コンテンツディストリビュータは、修正リストを宛先ファイルシステムへのアクセスを有するエージェントに送信するトランスミッタを含む。1つの実施形態において、コンテンツディストリビュータは、変更されたファイルをエージェントに送信するトランスミッタを含む。
【0013】
本発明の上記および他の目的、局面、特徴、および利点は、以下の説明からより明らかになる。
【0014】
図面において、同一の参照符号は、概して、異なる図を通じて同じ部分を指す。また、図面は、必ずしも一定の縮尺比で縮尺される必要はなく、概して、本発明の原理を示すことに重点が置かれている。
【0015】
(説明)
ウェブページを供給するシステムは、複数のウェブサーバを有し、複数のウェブサーバの動作を調整する機能およびツールをシステムオペレータに提供する。システムは、1つのウェブサーバのみを有してもよいが、典型的には、1つより多いウェブサーバを含む。システムは、概して、クライアントコンピュータ上のウェブブラウザから発生するウェブページリクエストを、利用可能なウェブサーバに向けることによって、トラフィックを管理し得る。このようにして、システムは、複数のサーバ間のウェブページリクエストサービス負荷の均衡を取る。システムは、ウェブページリクエスト、およびこれらのウェブページリクエストに対するウェブサーバ応答についてのデータを収集し得、データの報告と、自動および手動解析ツールとを提供する。システムは、特定のイベントを監視し得、このようなイベントの発生時には自動的に動作し得る。イベントは、今にも起こりそうなシステム問題を示す予測または閾値を含む。システムは、自動エラー復旧を提供し、構成要素の欠陥またはネットワーク環境問題のようなイベントから回復するために取られ得る可能な動作を通じてシステムオペレータをガイドする、危機管理能力を含み得る。システムは、システムオペレーションについての現在の情報を、システムオペレータに示し得る。システムは、バージョン管理およびデータのアップデートでコンテンツの複製を管理し得る。これらの機能性の一部または全てが、特定の実施形態において提供され得る。
【0016】
図1を参照すると、ウェブサービスシステム90の実施形態が、ブラウザ1からのウェブページリクエストを受信する。このコンテキストにおいて、ウェブページは、ウェブページリクエストに応答して、コンピュータネットワーク2上で利用可能にされ得る電子コンテンツである。リクエストは、典型的には、ウェブブラウザ1から発生される。ウェブページの一例として、表示、実行、再生、処理、ストリーミング、および/または格納され得、他のウェブページへのリンク、またはポインタを含み得る、コンピュータ実行可能または解釈可能な情報、グラフィックス、音、テキスト、および/または映像を含むデータファイルがある。リクエストは、通信ネットワーク2を介して通信され得る。1つの実施形態において、通信ネットワーク2はイントラネットである。他の実施形態において、通信ネットワーク2は、インターネットとして公知のグローバル通信ネットワークである。ブラウザ1は、ユーザによって操作されて、ウェブページリクエストを作成し得る。また、ブラウザ1は、コンピュータまたはコンピュータプログラムによって操作されて、コンピュータプログラミングに基づいて自動的にリクエストを作成し得る。ウェブページリクエストは、ハイパーテキスト転送プロトコル(「http」)フォーマットを用いて作成されてもよいし、リクエスト能力を提供する他のプロトコルを用いて作成されてもよい。
【0017】
図2を参照すると、様々な構成要素100〜126を含むウェブサービスシステム90の実施形態が示される。構成要素は、1つ以上のコンピュータネットワークを介して通信する。構成要素の物理的な位置は、様々な構成要素間の通信リンクが十分なデータ通信能力を有する限り、システムの性能またはパフォーマンスに影響を与えない。ウェブサービスシステム90は、種々の設計のファイアウォールを通って機能し得、遠隔的に設定および管理され得る。
【0018】
ウェブサービスシステム90は、1つ以上のホスト100を管理する。例として、1つのホスト100が示されている。ウェブサービスシステム90の実施形態は、任意の数のホスト100を有し得る。各ホスト100は、市販されており、UNIX(登録商標)またはWindows(登録商標) NTのようなマルチスレッドのオペレーティングシステムを用いることができるコンピュータシステムであり得る。各ホスト100は、例えば、インターネットまたはイントラネット、あるいは任意の他のネットワークのような、コンピュータネットワークへの少なくとも1つのネットワーク接続を有し得る。このことによって、ホスト100が、ウェブページデータリクエストに応答して、ウェブページデータを提供することが可能になる。各ホスト100は、少なくとも1つのウェブサーバ102を含む。
【0019】
ウェブサーバ102は、コンピュータネットワークを介して受信したウェブページリクエストに応答して、ウェブページを提供する任意のウェブサーバであり得る。このようなウェブサーバの2つの例は、Mountain View,CaliforniaのNetscape Communications Corporationから市販されているNETSCAPE ENTERPRISE SERVERと、Redmond,WashingtonのMicrosoft Corporationから市販されているMICROSOFT INTERNET INFORMATION SERVICES SERVERとがある。ウェブサーバ102は、ブラウザおよび/またはウェブページのリクエスタとも呼ばれるウェブクライアントから、ウェブページリクエストを受信することができる。また、ブラウザからのウェブページリクエストは、コンテンツリクエストと呼ばれるか、またはウェブサーバの視点から、「ヒットする」とも呼ばれる。しばしば、ウェブページリクエストは、いくつかのリクエストおよび応答に関わる、ウェブサーバ102との通信のシリーズの一部である。セッションと呼ばれる、このようなシリーズは、ウェブサーバとの、広げられたインタラクションである。より短いインタラクション、例えば、商品の購入は、トランザクションと呼ばれる。セッションは、いくつかのトランザクションを含み得る。ユーザは、ウェブサーバ102の初期リクエストを作成することで、ウェブサーバ102とやりとりし、そのやりとりの結果ウェブサーバ102はウェブページを応答として送信する。ウェブページは情報を含み得、ユーザがウェブサーバ102またはおそらく他のウェブサーバから作成し得る他のリクエストへのポインタも含み得る。リクエストは、データベースから検索されなければならない情報を求める場合もあれば、データベースに格納される情報を含む場合もある。リクエストは、ウェブサーバ102による処理、または他のコンピュータシステムとのインタラクションを必要とする場合もある。高性能なウェブサーバとブラウザとは、様々な方法でインタラクトし得る。
【0020】
関連するトピックについてのウェブページのセットとして、または、特定のソース、必ずではないが、通常は同じウェブサーバ102から、ユーザに提示される、関連するウェブページの集合は、アプリケーションと呼ばれる。アプリケーションの一例として、会社についての情報を提供するページのセットがある。アプリケーションの他の例として、ユーザが自身の貯蓄銀行と取り引きすることを可能にするページのシリーズがある。ウェブページの2つのセットは、1つのアプリケーションとして考えられてもよいし、2つの別個のアプリケーションとして考えられてもよい。例えば、ウェブページのセットは、銀行についての情報を提供し得、ウェブページのカスタマーサービスセットは、銀行との事務処理を可能にし得る。ウェブページのセットが、1つのアプリケーションとして考えられるか、またはいくつかのアプリケーションとして考えられるかは、アプリケーション設計者によって決定される。ウェブサービスシステム90は、1つ以上のアプリケーションをユーザに送る能力を有する。ウェブサービスシステム90は、ウェブサーバ102の一部のサブセットが、1つのアプリケーションのみの役に立つように設定され得る。1つの実施形態においては、ウェブサーバ102の一部のサブセットが、利用可能なアプリケーションのサブセットの役に立ち、他のウェブサーバ102は、他のアプリケーションの役に立つ。他の実施形態においては、全てのウェブサーバ102が、全ての利用可能なアプリケーションの役に立つ。
【0021】
ユーザのウェブブラウザからのウェブページリクエストに応答してユーザに提示されるウェブページは、ホスト100、または、ウェブサーバ102にアクセス可能なファイルシステムに格納され得る。一部または全てのウェブページコンテンツは、ウェブサーバ102に利用可能なデータを処理することによって、ウェブサーバ102によって生成され得る。例えば、トピックについてのドキュメントであるウェブページについて、ウェブページが、作成(設計)され、ウェブサーバ102ファイルシステムに格納され得る。ウェブページリクエストに応答して、このようなウェブページは、ファイルシステムに格納されるのと同時に、ユーザに送信され得る。しかし、銀行取引システムにおいては、ユーザの銀行口座についての情報が、データベースに格納される可能性が高い。ウェブサーバ102は、ユーザがページをリクエストするたびに、ユーザの口座情報を含むウェブページを生成し得る。しばしば、ウェブページは、部分的にはファイルシステムに格納され、部分的には、リクエストされるとき、ウェブサーバ102によって生成される。
【0022】
ユーザのウェブサーバ102とのセッションの「状態」とも呼ばれるステータス情報を格納するため、様々な技術が用いられる。ユーザは、自身とウェブサーバ102とのインタラクションの間に、作成するウェブサーバ102へのリクエスト、およびこれらのリクエストに対する応答として受信したウェブページを通じて、状態を発展させ得る。一例として、ユーザの状態は、ユーザを識別する情報を含み得る。他の例として、状態は、ユーザが既にリクエストしたウェブページ、またはユーザがシステムとのインタラクションにおいて選択したオプションを特定する情報を含み得る。他の例として、状態は、商品販売アプリケーションからユーザが購入することを選択したアイテムを含み得る。概して、セッションの状態についての一部の情報またはセッションの状態を識別する情報は、例えば、以下で説明するクッキーとして、クライアントウェブブラウザに格納され、一部の情報は、ウェブサーバ102に格納され得る。
【0023】
ホスト100は、ホスト容量、性能、およびコストについての考慮に依存して、任意の数の、その上で実行されるウェブサーバ102を有し得る。1つの実施形態において、ホスト100は、1つのウェブサーバ102を含む。他の実施形態において、ホストは、1つより多いウェブサーバ102を含む。ホスト100上の1つのウェブサーバ102は、簡略化された例示的な例であり、ウェブサーバ102の取り得る数を限定するものではない。各ウェブサーバ102は、エンドポイントとも呼ばれる、少なくとも1つのネットワークアドレスおよびポートを監視する。特定のアドレスおよびポートが、バーチャルな通信のエンドポイントであるので、エンドポイントと呼ばれ、ネットワーク接続は、1つのアドレス/ポートエンドポイントと他のアドレス/ポートエンドポイントとの間で作成される。ウェブサーバ102は、そのエンドポイントのうちの1つに向けられたリクエストを受信し、ウェブページの形式のデータでこれらのリクエストに応答する。
【0024】
複数のネットワークアドレス/ポートエンドポイントでリクエストを受け取るウェブサーバ102は、実際には1つのウェブサーバ102として実行されるにも関わらず、複数の異なるウェブサーバ102であるかのように、動作し得る。このようなウェブサーバは、複数エンドポイントウェブサーバと呼ばれる。説明のため、複数のエンドポイントウェブサーバは、実際に、各ウェブサーバ102がネットワークアドレス/ポートエンドポイントでリクエストを受信する、複数のウェブサーバ102であるかのように、説明され得る。1つの実施形態において、このような複数エンドポイントウェブサーバは、複数のエンドポイント全てとのインターフェースである、ウェブサーバインターフェース104を1つ有する。
【0025】
各ウェブサーバ102は、ウェブサーバインターフェース104と関連付けられ得る。ウェブサーバインターフェースは、ウェブサーバ102とウェブサービスシステム90の他の構成要素との間のインターフェースとして役に立つ、プラグイン、フィルタ、または、ウェブサーバ102と関連付けられた他のソフトウェアであり得る。このコンテキストにおいて、タームウェブサーバインターフェースは、ホスト100に存在し得るネットワークインターフェースとは異なる。例えば、ウェブサーバ102は、ウェブサーバインターフェース104を有する。各ウェブサーバインターフェースは、各ホスト100上のエージェント106と通信し得る。
【0026】
ホスト100は、エージェント106を含む。エージェント106は、ホスト100とインターフェースをとるウェブサービスシステム90を提供する。エージェント106は、ウェブサーバインターフェース104をウェブサービスシステム90とリンクする。また、エージェント106は、ホスト100をウェブサービスシステム90とリンクする。複数のウェブサーバを有するホストにおいて、1つより多いエージェントを有することが可能であるとしても、一般的には、ホスト100上で実行しているエージェント106は1つしかない。各エージェント106は、システム構成要素についての情報を含むデータベース108へのアクセスを有する。
【0027】
ホスト100上のエージェント106は、ウェブサービスシステムマネージャ110と通信する。マネージャ110は、ホスト100およびウェブサーバ102のステータスについての情報を、エージェント106から受信する。マネージャ110は、コマンドをエージェント106に送信して、ウェブサーバ102を開始、終了、または一時停止させて、ウェブサーバ102の負荷を管理するように、ホスト100を設定し得る。マネージャ110は、システム活動およびイベントのロギングにおいて用いられるロギングデータベース114へのアクセスを有する。また、マネージャ110は、システムの様々な構成要素についての情報を格納するために用いられる、管理されているオブジェクトデータベース112へのアクセスを有する。また、マネージャ110は、1つ以上のコンソール116A〜116X、全体的に116と呼ばれるコンソールと通信する。コンソール116は、システムオペレータにユーザインターフェースを提供する。システムオペレータは、システムのステータスを監視し、コンソールを通じてシステムを設定し得る。マネージャ110は、ウェブサーバ102の1つまたはトラフィックマネージャ120、あるいは、十分な容量の他のコンピュータのような、ウェブサービスシステム90の他の構成要素と同じホスト100上で実行し得る。
【0028】
マネージャ110は、インターセプタとも呼ばれるトラフィックマネージャ120と通信する。トラフィックマネージャ120は、ウェブページリクエストをウェブサーバに向ける。本発明は、トラフィックマネージャ120の任意の特定のタイプによって限定されず、ウェブページリクエストをウェブサーバ102に向ける、任意の種類のトラフィックマネージャ120と共に動作するように意図される。
【0029】
1つの実施形態において、トラフィックマネージャ120は、マネージャ110から情報およびコマンドを受信する。また、トラフィックマネージャ120は、制御プログラム122から情報およびコマンドを受信する。トラフィックマネージャ制御プログラムは、トラフィックマネージャ120と同じコンピュータシステム上にあってもよく、あるいは、他のシステム上で実行してもよい。トラフィックマネージャ120は、ウェブページリクエストを受信し、ウェブサーバのうちの1つにリクエストを問い合わせる。ウェブサービスシステム90の管理能力のうちの一部は、ウェブサーバ102によって作成されるウェブページリクエストと、得られるウェブサーバ102およびホスト100上の負荷とを監視することによって達成される。ウェブページリクエストは、ウェブサーバ102間の負荷の均衡を取るように、向けられ得る。1つの実施形態において、トラフィックマネージャ120は、ユーザが最初に接触する点である。トラフィックマネージャ120は、ユーザからウェブページリクエストを受信し、ユーザのウェブブラウザをそのリクエストに関して適切なウェブサーバ102に「問い合わせる」。ユーザのウェブブラウザは、適切なウェブサーバ102上のウェブページへの照会を用い、ウェブページリクエストに応答することで、問い合わせられる。この照会能力は、ハイパーテキスト転送プロトコルに組込まれる能力で達成され得るが、他の方法でも達成され得る。ユーザは、ウェブブラウザが、適切なウェブサーバ102に問い合わせられたことを認識してもよいし、しなくてもよい。ユーザは、そのウェブサーバ102上のアプリケーションにアクセスし、そのウェブサーバ102からのウェブページリクエストへの応答を受信し得る。1つの実施形態において、ウェブサーバ102に負荷が掛けられ過ぎた場合、そのウェブサーバ102は、マネージャ110の指示の下で、ユーザをトラフィックマネージャ120に差し戻すか、またはアプリケーションを送る能力を有する他のウェブサーバ102に問い合わせ得る。
【0030】
トラフィックマネージャ120は、ユーザからのリクエストを受信し、ユーザのリクエストをウェブサーバ102に向け直す。1つの実施形態において、トラフィックマネージャ120が、他のトラフィックマネージャ120または単一のエンドポイントのように、全てのユーザを1つのウェブサーバ102に向けるように用いられる。このようにして、トラフィックマネージャ120は、分路として機能を果たす。すなわち、トラフィックマネージャ120は、ホストの1つ以上のウェブサーバに向けられた全てのリクエストを、他のウェブサーバ102に向ける。他の実施形態において、トラフィックマネージャ120は、マネージャ110から、ステータス情報を受信し、その情報を用いてユーザを向け直す。ステータス情報は、サーバ利用可能性および負荷、管理者の変化、ならびにアプリケーションまたはウェブサーバ102の開始および終了アクションを含む。トラフィックマネージャ120は、速度およびセキュリティのために設計される。トラフィックマネージャ120は、システムの正面入り口であり、その性能は、全体ウェブサービスシステム90の知覚された性能に影響する。トラフィックマネージャ120を、ネットワークトポロジーの意味において、可能な限りバックボーンの近傍に配置することが有用であり得る。従って、必然的に、トラフィックマネージャ120は、ウェブサービスシステム90の最も露出される構成要素である。
【0031】
1つの実施形態において、トラフィックマネージャ120は、ハードウェアにおいて実現される。他の実施形態において、トラフィックマネージャ120は、ホストコンピュータ上で実行されるソフトウェアプログラムである。ソフトウェア実施形態の1つにおいて、トラフィックマネージャ120は、マルチスレッドのオペレーティングシステムを実行する能力を有するサーバクラスコンピュータで実行されるスタンドアロンのプログラムである。UNIX(登録商標)の下で、トラフィックマネージャ120は、例えば、デーモンとして実行し得る。Windows(登録商標) NTの下で、トラフィックマネージャ120は、サービスとして実行し得る。
【0032】
他の実施形態において、トラフィックマネージャ120は、1つのエンドポイントに向けられたリクエストをウェブサーバ102に属するエンドポイントに向けるインターネットプロトコルブリッジまたはルーターである。このようにして、トラフィックマネージャ120は、ウェブページリクエストを、1つ以上のウェブサーバ102に向ける。このようなトラフィックマネージャの一例として、San Jose, CaliforniaのCisco Systems, Inc.製のLOCALDIRECTORがある。さらに別の実施形態において、トラフィックマネージャ120は、Westford, MassachusettsのArrowpoint Communications, Inc.製のCONTENT SMART WEB SWITCHのようなウェブスイッチである。トラフィックマネージャ120は、各ウェブページリクエストを受信し、リクエストに基づいて、リクエストをウェブサーバに向ける。
【0033】
また、ウェブサービスシステム90は、コンテンツディストリビュータ125とも呼ばれるバージョンコントローラを含む。コンテンツディストリビュータ125は、ウェブサービスシステム90内の様々なウェブサーバ102上のコンテンツの更新を含むバージョンおよびコンテンツ複製を管理する。コンテンツディストリビュータ125のシステムオペレータインターフェースは、コンテンツコントロール126によって提供される。1つの実施形態において、コンテンツディストリビュータ125およびコンテンツコントロール126は、それぞれ、ホスト100上で動作するスタンドアロンのプロセスである。他の実施形態において、コンテンツディストリビュータ125およびコンテンツコントロール126は、マネージャ110と同じホストで動作する。他の実施形態において、コンテンツディストリビュータ125およびコンテンツコントロール126は、他のホスト上で動作する。コンテンツディストリビュータ125とコンテンツコントロール126とは、同じホスト上で動作してもよいし、異なるホスト上で動作してもよい。他の実施形態において、コンテンツディストリビュータ125は、マネージャ110、またはシステム90の他の構成要素の機能に組み込まれ得る。
【0034】
コンテンツディストリビュータ125は、情報をエージェント106に送信し、エージェント106を通じてウェブサーバインターフェース104に送信する。送信された情報は、ソースファイルと呼ばれ、概して、階層ディレクトリ構造に編成される、コンテンツディレクトリおよびファイルのセットの変更点を記述する。これらのソースファイルは、ウェブサーバ用のコンテンツの「マスター」コピーである。ディレクトリおよびファイルは、共に、概して、ソースファイルまたはソースファイルセットと呼ばれる。ソースファイルセットは、ステージングサーバとも呼ばれるソースホストに格納され得る。ステージングサーバは、典型的には、コンテンツディストリビュータ125が実行しているホストであるが、必ずしもそうでなくてもよい。説明を簡略にするため、以下の説明において、コンテンツディレクトリおよびファイルは、ソースファイルであっても、ホスト100上であっても、概して、単にファイルと呼ばれる。ソースファイルセットは、ディレクトリおよびファイルの両方を含み得、また、ファイルの変更点は、ディレクトリの追加、削除、および変更を含み得る。
【0035】
図3を参照すると、ある程度の期間にわたって、ソースファイルセットに対して変更が行われる(工程180)。行われる変更には、新しいファイルの作成、古いファイルの削除、現存するファイルを新しいコンテンツで置換(すなわち、ファイル内容の変更)、ならびに、許可制限および所有権のようなファイル属性を変更することが含まれる。また、ファイルの変更について説明する場合でも、ディレクトリの変更も含まれるように意図される。変更は、アプリケーションプログラムおよびオペレーティングシステムユーティリティを含む、当該技術において公知である、このような編集技術およびツールを用いて、ファイルを編集することによって行われる。変更は、テストされ、発展および承認プロセスにおいて承認され得る。実際には、特定の時間では、ファイルの変更点がない場合があり、システムは、これを識別し得る。このような場合、変更点がないことが識別された後、次の起こり得る変化が識別されるまで、さらなる処理が行われない。
【0036】
コンテンツディストリビュータは、ファイルの変更点を識別する(工程181)。ファイルの変更は、多数の方法で識別され得る。1つの実施形態において、コンテンツ設計者は、変更点のリストである、マニフェストを提供する。設計者は、例えば、コンテンツコントロールユーザインターフェース126を用いて、または、マニフェストをコンテンツディストリビュータ125に通信することによって、変更点を把握し、コンテンツディストリビュータへの変更を手動で識別する。他の実施形態において、設計するためにコンテンツ設計者によって用いられるソフトウェアおよびシステムは、変更点をたどり、コンテンツディストリビュータ125に通信される変更点のマニフェストを提供する。
【0037】
他の実施形態において、コンテンツディストリビュータ125は、オペレーティングシステムファイルサービスと一体化し、ソースファイルセットへの変更点を監視する。このような実施形態の1つにおいて、オペレーティングシステムによって呼び出される、ソフトウェアデバイスドライバ「モニタ」がインストールされて、ファイルオペレーションが行われる。デバイスモニタは、オペレーティングシステムと実際のデバイスドライバ(すなわち、ハードディスクドライバソフトウェア)との間でデータを通過させるパススルー(pass through)デバイスドライバとして機能を果たす。ディスクドライバを通じてディスクI/Oコマンドを通過させることに加えて、デバイスモニタは、それらのI/Oコマンドを観察し、ソースファイルセットの変更点を記録する。1つの実施形態において、デバイスモニタは、コンテンツディストリビュータ125と一体化される。他の実施形態において、デバイスモニタは、コンテンツディストリビュータ125に通信されたマニフェストを生成する。
【0038】
さらに別の実施形態において、コンテンツディストリビュータ125は、現在のソースファイルセットと以前のソースファイルセットとの比較を行って、ソースファイルセットの変更点を判定する。コンテンツディストリビュータは、比較のため、最後に更新されたときに存在したファイルのリストを維持する。このリストには、ファイル名と、ファイルサイズ、ファイルが最後に変更された日付/時間、コンテンツのハッシュコード、許可および/またはアクセスコントロール制限、ユーザ/グループ所有権のような、他のファイル特性とが含まれる。1つの実施形態において、ファイルのリストは、以前のソースファイルセットにおける全てのファイルの完全なコピーを含むが、大きなファイルシステムについては、この実施形態は非効率的である。より効率的な実施形態において、以下で説明するように、以前のファイルのリストおよび特定のファイル属性のみが必要とされる。変更点を識別する工程(工程181)、変更点を送信する工程(工程182)、および変更点をインストール工程(工程183)は、更新と呼ばれることもある。
【0039】
図4を参照すると、1つの実施形態において、ソースファイルと以前のソースファイルセットとの比較は、ソースファイルセット内のファイル(およびディレクトリ)の解析によって行われる。ソースファイルセット内の各ファイルについて(工程190)、コンテンツディストリビュータは、ソースファイルセット内のファイルを、1つの実施形態において、上述したリストの形態である、以前のソースファイルセットを記述する情報と比較する。各ファイルについて、コンテンツディストリビュータは、ファイルが以前のソースファイルセットリスト内にあるかどうか判定する(工程191)。以前のソースファイルセットリスト内にない場合、ファイルは新たなファイルとしてリストに挙げられ(工程192)、このファイルがソースファイルセットに追加されたことが示され、ファイルでハッシュが計算される(工程193)。ファイルがリストに挙げられる場合、ファイルリスト項目がマークされて(工程194)、ファイルが依然ファイルセットに含まれていることを示す。これは、後に、以前のリストのファイルがなくなっている、すなわち、削除されたものがあるかどうか判定するために用いられる。
【0040】
ファイルのサイズは、リスト内の情報と比較される(工程195)。ファイルサイズが異なる場合、このファイルは修正されたと考えられ、このようにリストに挙げられる(工程196)。ファイルの新たなハッシュが、計算され、リストに格納される(工程193)。サイズが同じである場合、日付/時間が比較される(工程197)。日付/時間が異なる場合、ファイルのハッシュは、計算され、以前のリストに含まれるハッシュと比較される(工程198)。このコンテキストにおいて、ハッシュは、ファイルのコンテンツについて行われ、ファイルコンテンツに関連する単一の数が得られる計算である。このようなハッシュは、メッセージ完全性コードとも呼ばれる。ハッシュコードの例として、チェックサムおよび周期的冗長コードがある。ファイルのハッシュが異なる場合、このファイルは、修正されたとしてリストに挙げられ(工程196)、新たなハッシュがリストに格納される(工程193)。そうでない場合、ファイル属性(オーナー、グループなど)が変更された場合(工程199)、ファイルは、修正された属性を有するものとしてリストに挙げられる(工程200)。
【0041】
1つの実施形態において、ファイルコンテンツが変更されていない場合、システムはまた、ファイル属性が変化していないかどうかを判定する(工程199)。他の実施形態において、属性情報は、コンテンツ更新の一部として送信される。これらの工程が、ソースファイルセット内の全てのファイルについて完了した場合、工程194からのマーキングは、以前にリストに挙げられたファイルがなくなっている、すなわち、ファイルセットから削除されたものがあるかどうかが調べられる(工程200)。マークされていないファイルは、削除されたとしてリストに挙げられる(工程202)。
【0042】
ソースファイルセットの変更点は、マニフェストとも呼ばれる変更点リスト内にあることが、コンテンツディストリビュータ125に知らせられる(identify)。1つの実勢形態において、追加、削除、コンテンツ修正、および/または属性修正のような、ファイルの変更点を示す項目を含む。例えば、追加ステートメント「ADD source/dir/dir/file 1」は、ファイル1が追加されたことを示し、ステートメント「CHMOS source/file 2」は、「file2」に関連する許可が変更されたことを示す。例えば、他のステートメントには、ファイルの除去を示す「DELETE」、およびコンテンツの変更を示す「MODIFY」が含まれる。また、さらなる属性の違いは、CHMODステートメントを用いるか、または、所有権変更についてのCHOWN、またはグループ関連の変更についてのCHGRPのような、自身の特有ステートメントを有する。
【0043】
図5を参照すると、1つの実施形態において、マニフェストエントリー300は、少なくとも8つの情報要素301〜308を含む。1つの実施形態において、各エントリーは、テキストフォーマットで格納されるので、情報は、シンプルテキストエディタでシステムオペレータによって読み出され得るか、他のソフトウェアによって翻訳され得る。他の実施形態において、各エントリーは、テキストフォーマットと同様に、同じ情報を含むが、よりコンパクトな2進数形式で格納される。2進数形式は、変換ツールで、テキストフォーマットに変換され得る。また、テキストフォーマットは、2進数形式に変換され得る。
【0044】
1つの実施形態において、マニフェストエントリー300は、ファイルタイプフィールド301を含む。可能なファイルタイプは、ディレクトリ、ファイル、記号リンク、ハードリンク、または、ディレクトリ内の最後のファイルの後に来るエンドオブディレクトリマーカーである。テキストフォーマットの実施形態において、各ファイルは、ディレクトリの「DIR」、エンドオブディレクトリマーカーの「END」、通常ファイルの「NRM」、記号リンクの「LNK」、およびハードリンクの「HLK」のような3文字コードで記述される。2進数形式の実施形態において、各選択肢は、整数コードによって表される。例えば、1つの実施形態において、ディレクトリは、数字1で表され、ファイルは2で表され、以下同様に続く。
【0045】
また、マニフェストエントリー300は、取得されるアクションフィールド302を含む。テキストフォーマットの実施形態において、取得されるアクションは、追加されるファイルの「ADD」、変更されたコンテンツの「CHG」、変更されたオーナー、グループ、または許可の「CHP」、削除されたファイルの「DEL」のような3文字コードである。3文字コード「NOC」は、ファイルが変更されてないことを記述するために用いられる。2進数形式の実施形態において、各選択肢は、整数コードによって表される。例えば、1つの実施形態において、追加されたファイルは、数字1で表され、変更されたコンテンツは、2で表され、以下同様に続く。
【0046】
また、マニフェストエントリー300は、ファイルアクセス許可、およびファイルについての他の情報を記述する、許可フィールド303を含む。テキストフォーマットの実施形態において、UNIX(登録商標)形式で、4つの3項目バイナリ入力(すなわち、rwxrwxrwx)として、許可は格納される。ここで、第1の3項目バイナリ入力は、実行可能プログラムがユーザとして実行されるかどうかを記述し、続く3つの入力は、それぞれ、オーナー、グループ、およびパブリックの読み出し、書き込みおよび実行許可を示す。バイナリ実施形態において、許可情報は、許可を表す4桁の8進数である、バイナリ整数として格納される。
【0047】
また、マニフェストエントリー300は、ファイルのサイズを記述するファイルサイズフィールド304を含む。テキストフォーマットの実施形態において、ファイルサイズは、ASCII文字で書かれる。2進数形式の実施形態において、ファイルサイズは、整数として格納される。
【0048】
また、マニフェストエントリー300は、日付/時刻スタンプ305を含む。テキストフォーマットの実施形態において、日付および時刻は、ASCII文字で書かれる。2進数形式の実施形態において、日付/時刻は、1970年1月1日深夜からの秒数を表す整数として格納される。
【0049】
また、マニフェストエントリー300は、所有権情報306を含む。この情報は、2つの部分、ファイルオーナーのユーザ識別子、およびグループオーナーのグループ識別子を含む。テキストフォーマット実施形態において、オーナーおよびグループ識別子は、ASCIIストリングとして格納される。2進数形式の実施形態において、オーナーおよびグループ識別子は、整数として、それぞれ格納される。
【0050】
また、マニフェストエントリー300は、チェックサム307またはハッシュ結果を含む。テキストフォーマットの実施形態において、これは、ASCIIストリングとして格納される。また、マニフェストエントリーは、ファイルの相対パス名308を含む。テキストおよび2進数形式の両方の実施形態において、相対パス名308は、ASCIIストリングとして格納される。
【0051】
図6を参照すると、変更点の例示的なリストに、追加されたファイルaaa(ディレクトリである)、ディレクトリaaaのファイルagent.reg、questd.reg、およびsqlserver.reg、ならびに、同様にディレクトリであるファイルbbbおよびcccが示されている。ディレクトリdddと、ディレクトリddd内のファイルabcおよびefgは、変更されていない。また、ディレクトリefgも変更されていない。ディレクトリmmm、xxx、およびyyyは削除され、ファイルagent.reg、questd.reg、およびsqlserver.regはディレクトリxxxから削除されている。
【0052】
図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である。
【0053】
第2の入力、ENTRY2において、ファイル名308においてリストに挙げられるファイルは、agent.regである。このファイルは、agent.regである(This file, agent.reg.)。ENTRY2が、aaaディレクトリ入力(ENTRY1)および終了ステートメント(ENTRY5)の間にあるので、このファイルは、ディレクトリaaaの中にある。ファイルagent.regは、通常のタイプ301であり、アクション要素302において示すように、新たなファイルとして追加される。許可303は、オーナーが許可を読み出し、書き込んだことを示す。ファイルサイズ304は、569バイトである。ファイルの日付305は、1998年5月11日である。ユーザおよびグループ識別子306は、両方とも0である。チェックサム307は、3564886220である。
【0054】
第5の入力、ENTRY5は、ディレクトリaaaのリスト項目の最後を示す、タイプ301終了マーカーである。第6の入力、ENTRY6について、ディレクトリbbbは、aaa終了マーカーの後にリストに挙げられているので、aaaのサブディレクトリではない。
【0055】
再度、図3を参照すると、1つの実施形態において、コンテンツディストリビュータは、例えば、図4の方法を用いて変更点を判定することによって、マニフェストを作成する。他の実施形態において、マニフェストは、コンテンツディストリビュータに通信される。1つの実施形態において、マニフェストは、マニフェストを特定の位置(すなわち、ディレクトリおよびファイル名)に格納することによって通信され、コンテンツディストリビュータは、それを見出すように設定される。他の実施形態において、マニフェストは、ネットワークを介してコンテンツディストリビュータ125にはっきりと送信することによって、コンテンツディストリビュータに通信される。
【0056】
変更点が識別された後(工程181)、例えば、図3の実施形態を用いて、変更点が、エージェントに送信される(工程182)。しばしば、変更点は、ホストファイルシステムの特定のディレクトリにマッピングされる。1つの実施形態において、ソースファイルセットは、表1の実施例に示すように、様々なホストのファイルシステムにマッピングされる。
【0057】
【表1】
Figure 0004590105
表1から明らかであるように、システム管理者は、ソースファイルセット内のファイルを、ステージングサーバファイルシステムから、様々なウェブサーバのファイルシステムにマッピングし得る。URLではなく、実際のファイルシステム識別子を用いることによって、ユニフォームリソースロケータ(「URL」)で識別可能でない、共有のライブラリおよび他のファイルのマッピングが可能になる。例えば、CGIスクリプトは、ウェブサーバからウェブページリクエストを介して、このようなファイルが、概して利用可能でないのでURLが用いられる場合、マッピングされず、URLを有さない。ファイルシステム識別子の代わりに、URLを用いることが可能なので、修正され得るファイルのタイプの制限におけるトレードオフ以外において、マッピングは必要ない。URLが用いられる場合、ウェブサーバからウェブページリクエストを介してアクセス可能なファイルのみがアクセス可能である。
【0058】
1つの実施形態において、ソースファイルセットディレクトリ階層内のファイルは、単一のアーカイブファイルに結合され、そのアーカイブファイルは、圧縮される。設定可能な値より大きい任意のファイルは、ネットワークを介するホストシステムまでの通信をより効率的にし、ネットワークへの影響を低減するように、より小さいブロックに分割される。ファイルをより小さいブロックに分割することによって、タイムアウトの場合における再送信の量が最小化される。このような設定可能な値の例は、1メガバイトである。
【0059】
変更されたファイルのファイルサイズを含む変更点リスト(マニフェスト)は、コンテンツを受け取るべき各エージェントに送信される。エージェントは、変更リストにおけるファイルサイズおよびエージェントが認識している、行わなければならない計算に基づいて、更新のために十分なディスクの空き容量があるかどうかを判定する。例えば、エージェントは、ファイルシステム内に、コンテンツ更新の圧縮されたコピー、および圧縮されてないデータのコピーを2つ、すなわち、一時コピーおよび格納されるべきコピーを格納する、十分な場所があるかどうかを判定し得る。このようにして、エージェントは、ホストが新たなコンテンツによって負荷を掛けられ過ぎるようになる前に、転送を中止することができる。
【0060】
所定の数のサーバが、更新されたコンテンツを受信することに同意する場合、データは、コンテンツディストリビュータからエージェントに送信される。多くのエージェントが、コンテンツを受信することができない場合、コンテンツディストリビュータは、ジョブを中止し得る。転送を行うために必要なエージェントの率は、設定可能である。例えば、システムオペレータは、50%のエージェントが変更を受け入れることが可能になるまで転送が行われてはならないことを決定し得る。このようにして、更新されたコンテンツを有するサーバの数が少なすぎることが防がれる。
【0061】
1つの実施形態において、転送は、ファイル転送プロトコル(「FTP」)のような標準TCP/IP転送を用いて行われる。他の実施形態において、転送は、信頼できるマルチキャストプロトコルを用いて行われる。送信失敗がある場合、データのブロックが再送信される。転送が繰り返し失敗する場合、転送は中止され、システムオペレータへの警告を含む様々なアクションが取られ得る。また、コンテンツディストリビュータは、予測されない環境に起因して、転送において成功するエージェントが予期されていた数より少ない場合、変更点のインストールを中止し得る。例えば、多くのエージェントが、ネットワーク接続性を失う場合、新たなコンテンツの役に立つように利用可能なエージェントの数が不十分であることが起こり得る。
【0062】
再度図1を参照すると、特定のエージェント106について更新が失敗する場合、ウェブサービスシステム90は、システムの影響された部分を「避けて通る(route around)」ように試みる。コンテンツディストリビュータがマネージャとは別である実施形態において、コンテンツディストリビュータ125は、エージェント106が失敗したことをマネージャ110に知らせる。マネージャ110は、トラフィックマネージャ120と通信し、トラフィックマネージャは、そのエージェント106と通信するウェブサーバ102にウェブページリクエストを向けない。また、マネージャ110は、ウェブサーバ102から他のサーバにトラフィックを向け得る。
【0063】
1つの実施形態において、コンテンツディストリビュータ125は、失敗した宛先エージェントを目標とする、「追い上げ(catch−up)」更新パッケージを作成する。追い上げ更新パッケージは、エージェントに達する必要があるが、達していない変更点を含む。初期的に、これは、第1の更新から、送信において失敗する、変更点のリストである。この追い上げ更新パッケージは、連続的な更新が同じエージェントに達することを失敗する場合でも、増大し得る。更新パッケージが失敗する場合、以前に伝送が失敗した変更点についての新たな更新から依存し得るので、エージェントは、「追い上げ」更新が完了するまで他の更新を受信しない。
【0064】
再度図3を参照すると、変更点がエージェント182に送信された後、変更点がインストールされる(工程183)。エージェント106およびウェブサーバインターフェース104は、協力して、コンテンツをインストールする。新たなコンテンツが受信される場合、エージェントは、更新パッケージを、再度組み立て、その後、解凍し、データを一時データ格納に位置付ける。その後、エージェントは、コンテンツディストリビュータからの信号を待って、サーバコンテンツディレクトリへのファイルのコピーを開始する。信号が受信される場合、サーバコンテンツディレクトリで変更が行われる。また、削除するようにリストに挙げられた任意のファイルが、このとき除去さえる。更新が成功する場合、エージェントは、ファイルの更新において成功したことをコンテンツディストリビュータに知らせる。1つの実施形態において、コピーは、単純な上書きによって達成される。他の実施形態において、古いファイルは、まず、再命名され、かつ/または、代替的なディレクトリに格納される。これによって、変化が素早く入れ替えられるが、より多くのデータ格納を必要とするというトレードオフがある。何らかの理由でコピーが失敗する場合、エージェントは、コンテンツディストリビュータに問題を警告する。エージェントまたはコンテンツディストリビュータのいずれかは、マネージャにも警告し、マネージャは、トラフィックマネージャに、失敗したエージェントを避けるように指令し得る。1つの実施形態において、エージェントは、ウェブサーバのコンテンツ状態を示すバージョン識別子を維持する。1つの実施形態において、バージョン識別子は、整数値である。
【0065】
1つの実施形態において、ウェブサーバは、更新プロセスの間、一時停止または停止する。ウェブサーバコンテンツディレクトリにファイルがコピーされる場合、ウェブサーバは、リクエスタが首尾一貫していないコンテンツを受信することを避けるために、ウェブページリクエストの処理を止められる。ウェブサーバは、コンテンツ更新プロセスの間にユーザを向け直すように調節される。これは、トラフィックマネージャがリクエストをそのウェブサーバに転送しないように命令するマネージャによって、達成される。同時に、そのウェブサーバ102に達するリクエストは、ウェブサーバインターフェース104によって、そのウェブサーバ102から、トラフィックマネージャ120または他のウェブサーバ102に転送され得る。トランザクションの最中のユーザは、転送される前にトランザクションを完了するため、所定の長さの時間を与えられ得る。ウェブサーバが、リクエスタを除く場合、更新が起こる。アプリケーションバイナリファイルが、変更されない場合、ウェブサーバは、リクエスタを除き得、リクエスタは、コンテンツ転送が完了した後、サーバに向けられ得る。しかしながら、アプリケーションバイナリファイルが修正された場合、ウェブサーバは再開される必要があり得る。
【0066】
いくつかの場合において、コンテンツを更新するために、ウェブサーバをディセーブルすることが可能でないこともある。一時的なブラウザの再方向付けのプロセスは、非常に時間が掛かり得、その場合、ファイルの転送およびウェブサーバの更新に必要な時間と共に、容認できないほど長い。サーバの利用可能性を最大限にするため、コンテンツは、ウェブサーバがリクエストに応答し続ける間、更新され得る。これは、変更されるファイルのコピーを作成し、これらのファイルのコピーをウェブサーバにアクセス可能な場所に入れることによって、達成される。エージェントは、ウェブサーバインターフェースに、変更されているファイルについての全てのリクエストを遮らせる。変更していないファイルについてのリクエストは、通常のコンテンツ領域に向けられ得る。変更しているファイルについてのリクエストは、代わりに、安定コピー(stable copy)に向けられ得、新たなファイルが、通常の領域にインストールされる。エージェントがファイルの修正を完了した後、ウェブサーバインターフェースは、通常領域を再度用いるように信号送信され得る。古いコンテンツから新たなコンテンツへの転換の時に、関連するウェブページのシリーズに関わるトランザクションに関わるユーザは、転換の後しばらく、トランザクションが完了するまで、「古い」コンテンツにアクセスし続ける必要を有し得る。例えば、第1の価格で購入する最中のユーザは、更新された異なる価格を用いるウェブページとのトランザクションを完了すべきではない。
【0067】
1つの実施形態において、トランザクションの完全性を確実にするため、転換のたびに、バージョン識別子が割り当てられる。1つの実施形態において、チェックポイント識別子とも呼ばれるバージョン識別子は、コンテンツ更新ごとに増分されることによって変更される整数である。ウェブサーバインターフェースは、ブラウザによって予期されるバージョンに基づいて、ウェブページリクエストを遮り、そのバージョンのコンテンツを提供する。このことを行うために、ウェブサーバは、ブラウザによって所望されるバージョンを知る必要がある。1つの実施形態において、この情報は、URLに含まれる。しかし、これは、URLおよびより複雑なファイル構造の作成という不利な点を有する。また、バージョン変更点は、ユーザにとって、あまり意識されない。
【0068】
1つの実施形態において、ウェブサーバは、サーバによってブラウザに供給されるページのその後−現在(then−current)バージョンを特定するバージョン識別子を含むブラウザに、クッキーを発行する。クッキーは、ウェブサーバがブラウザに送信するので、ウェブサーバがそのブラウザについて何かを「記憶する(remember)」ことができる特別なテキストファイルである。ウェブのハイパーテキスト転送プロトコル(HTTP)を用いることによって、ウェブページのリクエストの各々は、全ての他のリクエストから独立する。このため、クッキーのようなメカニズムなしには、ウェブサーバは、以前にブラウザに送信したページがどれかということも知らないか、または、ブラウザの以前の訪問について何も知らない。クッキーは、サーバがブラウザについての自身の情報をブラウザ自身のコンピュータに格納し、ユーザがウェブページリクエストを行う場合、その情報にアクセスすることを可能にするメカニズムである。クッキーには、有効な持続期間が提供され得る、すなわち、ある程度の時間の後、ブラウザによって廃棄される。
【0069】
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」は、クッキーの名前である。AtreveBCDはデフォルトなので、任意の他の名前が用いられ得る。「37」は、サーバが、終了時まで、現在、および将来(ウェブサーバインターフェースのせいで)において提供し続けるチェックポイントである、クッキーの値である。コード「終了」は、終了時を設定する。この例において、終了時は、1999年1月20日である。「Path」コードは、どのページがクッキーを与えるかを制限するために用いられ得るが、「/」は、全てのファイルを含むことを示す。
【0070】
ウェブサーバがブラウザに発行するクッキーは、ウェブサーバから、ブラウザがコンテンツをリクエストすることを効率的に可能にし、そのコンテンツについてのバージョン識別子を示す。従って、ブラウザが特定のURLを特定する特定のクッキーで、6つのリクエストを作成する場合、これらの6つのリクエストは、エージェントがその間に新たなバージョンのコンテンツをウェブサーバ102に配信した場合にさえ、自己矛盾がない。
【0071】
1つの実施形態において、より早いコンテンツは、そのコンテンツを特定する全てのクッキーが廃棄されるまで、廃棄されない。コンテンツは、1つのバージョンから次のバージョンへの変更点を含む「バックアップ」領域に格納される。例えば、バージョン2からバージョン3への移行において変更するファイルは、バージョン2−3バックアップ領域に格納される。ウェブサーバインターフェースは、バージョン2からバージョン3への移行で変更されたバージョン2のウェブページリクエストを、適切なバックアップ領域における適切なコンテンツに向ける。
【0072】
図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の修正が含まれるので、32−33バックアップ領域には、ファイルAのバージョン32が格納されている。バージョン33からバージョン34への変更には、ファイルAおよびBの修正、およびファイルF(バージョン10で追加)の削除が含まれるので、33−34バックアップ領域において、ファイルAのバージョン33、ファイルBのバージョン32、ファイルFのバージョン10が格納される。
【0073】
例えば、現在のバージョン以外のコンテンツバージョンを示すクッキーを提示することによって、ウェブサーバがコンテンツをリクエストする場合であって、古いチェックポイントと現在のチェックポイントとの間でファイルが変更される場合、ウェブサーバインターフェースは、ウェブサーバに現在のバージョン領域以外の領域からコンテンツを取らせ得る。1つの実施形態において、ウェブサーバインターフェースは、変更点リストを再び見て、リクエストされたファイルが変更されたかどうか判定し、変更されている場合、どのバックアップ領域に位置するかを判定する。例えば、現在のバージョンがバージョン34である、図8の例をまた参照すると、ウェブサーバがファイルAのリクエストを受信し、クッキーはブラウザがバージョン32を探していることを示す場合、ウェブサーバインターフェースは、バージョン33の一部として、ファイルAが修正されたことがわかる。従って、ファイルAのバージョン32は、32−33バックアップ領域に位置する。ウェブサーバが、同じブラウザから(同じバージョン32クッキーで)ファイルBのリクエストを受信する場合、ウェブサーバインターフェースは、バージョン34でファイルBが修正され、ファイルBのバージョン32が33−34バックアップ領域に格納されたと判定する。ウェブサーバがファイルDのリクエストを受信する場合、ウェブサーバインターフェースは、ファイルがバージョン32から修正されておらず、そのファイルが現在のバージョン領域から入手され得ることを判定する。
【0074】
1つの実施形態において、コンテンツディストリビュータは、特定の時間または時間間隔に対するソースファイルセット変更点のスケジューリングされた更新に備える。コンテンツディストリビュータは、システムオペレータの手動コマンドでも、更新し得る。1つの実施形態において、更新は、ファイルがどこからコピーされる必要があるか(すなわち、ソースファイルセット)、どこにコピーされる必要があるか(すなわち、ファイルサーバのファイルシステム)を示すコンテンツマッピング、更新がいつ起こるかを示す開始/日付時間または時間間隔、(上述したように)変更されたファイルのみが更新される必要があるか、または全てのファイルがコピーされる必要があるかどうか、失敗の場合に取られる必要があるアクション、コンテンツの更新においてサーバが再開される必要があるかどうか、コンテンツの更新の間にサーバが一時停止または停止する必要があるかどうか、更新が(システムオペレータがスケジューリングされた更新をディセーブルすることを可能にするように)イネーブルまたはディセーブルされるかどうか、ならびに、サーバが変更を行うように命令される前に更新を許容する必要があるサーバの率によって、特定される。1つの実施形態において、更新は、ジョブと呼ばれる。
【0075】
例えば、10分ごとに実行して、変更したファイルを更新し、任意の問題をシステムオペレータに知らせる更新を特定することが可能である。また、月に1度、更新を特定することも可能である。1つの実施形態において、システムは、ファイルをコピーする間はサーバをオフにし、全ての変更されたファイルを更新し、コンテンツが更新された場合、サーバを再開する。
【0076】
図9を参照すると、いくつかのウェブサービスシステム90は、関連付けられた1つ以上のキャッシュサーバ200を有する。キャッシュサーバ200は、リクエスタ201(例えば、ブラウザ)とウェブサービスシステム90の間に位置するウェブサーバのタイプである。キャッシュサーバ200は、初期的には、いずれのコンテンツも有さない。それよりは、リクエスタ201からの命令でウェブページをリクエストし、ウェブページをそのキャッシュに格納する。市販されているキャッシュサーバの一例として、Santa Clara, CaliforniaのNetwork Applicance,Inc.製のNETCACHE製品がある。キャッシュサーバ200は、ブラウザ201から、ウェブサービスシステム90に位置するコンテンツのウェブページリクエストを受信する。リクエストおよび自身の設定に基づいて、キャッシュサーバ200は、ウェブページを有する元のウェブサーバ(ウェブサービスシステム90)から、ウェブページをリクエストする。キャッシュサーバ200は、元のウェブサーバ90から、ウェブページを受信し、ブラウザ201にウェブページを送信する。また、キャッシュサーバ200は、所定の期間、そのウェブページを格納する。ページが格納される期間は、コンテンツプロバイダ(元のウェブサービスシステム90)によって、例えば、HTTPプロトコルに従って文書の送達の終了期間を特定することによって、またはキャッシュサーバ200システム管理者のいずれかによって、決定される期間である。第2のリクエストが、同じリクエスタ201、または異なるリクエスタから、終了期間の前にキャッシュサーバ200に到達する場合、キャッシュサーバは、元のサーバからコンテンツをリクエストすることなしに、リクエストに応答して、ウェブページを再送信し得る。従って、リクエストは、第2のリクエストで、元のサーバまたはネットワークにさらなる要求を出すことなく、履行される。
【0077】
上述したように、ウェブサービスシステム90上でファイルが変更する場合、キャッシュサーバ200上にキャッシュされたファイルは、終了し得ない。その場合、キャッシュサーバ200は、ウェブサービスシステム90から利用可能な更新されたバージョンよりも、より初期の(earlier)ウェブページのバージョンを提供する。従って、上述したような変更点リストを用いて、ファイルが変更したことをキャッシュサーバ200に知らせることが有利である。
【0078】
図10を参照すると、キャッシュサーバ200でファイルの変更が調整されたシステムにおいて、ファイルに変更が行われ(工程180)、変更点が識別され(工程181)、変更点がウェブサーバに送信され(工程182)、変更点がインストールされる(工程183)。また、キャッシュサーバは、変更が知らせられる(工程184)。キャッシュサーバに知らせる、さらなる工程(工程184)は、キャッシュサーバが、もはや用いられないウェブページを破棄する(すなわち、除く)ことを可能にする。1つのキャッシュサーバ、または多くのキャッシュサーバがあり得、様々な通信技術を用いて知らせられ得る。例えば、1つの実施形態において、放送メッセージが用いられる。他の実施形態において、各キャッシュサーバに別個のメッセージが送信される。さらに別の実施形態において、ファイルが、1つ以上のキャッシュサーバとって利用可能なディレクトリに格納される。
【0079】
図11を参照すると、図6の方法の実施形態は、変更を行う工程(工程180)、変更点を識別する工程(工程181)、キャッシュに知らせる工程(工程184)を含み得る。1つの実施形態において、知らせること(工程184)は、変更点リストをユニフォームリソースロケータ(「URL」)に変換して、コンテンツを識別する工程(工程186)を含む。ブラウザは、URLを用いて、コンテンツを識別する。上述したように、1つの実施形態において、変更点リストは、ウェブサーバにとってより簡便で、殆どのファイルシステムにおける全てのファイルを示すことを可能にするので、ホストファイルシステムにおけるディレクトリおよびファイルに関して記述される。キャッシュサーバに変更点を提供する場合、URLを含むフォーマットで、ファイル(およびディレクトリ)が挙げられる変更点リストを変換することは有用である。ソースディレクトリは、可能なURLの特定のプレフィックスに対応することがあり得る。例えば、コンテンツディレクトリおよびファイル「C:\WEBSPECTIVE\HOME\ABOUT.HTML」は、URL「http://www.webspective.com/home/about.html」に対応し得る。これは、プレフィックスが修正された(この場合、C:\WEBSPECTIVEは、http://www.webspective.comで置き換えられる)ことを含意し、ディレクトリを分割するもの、この場合では、バックスラッシュ「\」は、URL標準フォーワードスラッシュ「/」で置き換えられている。さらに、URLにおいて許容されない文字、例えばスペースが、特定化されたルールに従って符号化される。このような文字の置き換えの一例が、T.Berners−Leeらによる、「Uniform Resource Locators」という題のIETF Network Working Group RFC−1783文書において記載される。例えば、スペースは、「%20」で符号化され得、この翻訳は、URLプレフィックスに連結される。
【0080】
リスト項目が、URLフォーマットに変換された後、変更されたURLのリストは、キャッシュサーバに送信される(工程187)。キャッシュサーバは、このリストを用いて、古いコンテンツを破棄し得る。図7に示すように、通知を行うためにコンテンツ伝送を行う必要はない。例えば、1つしかウェブサーバがないが、キャッシュが多い場合、図7のシステムは、1つ以上のキャッシュサーバに変更を知らせるように機能を果たす。図7に示すように、変更が行われ(工程180)、変更点が識別され(工程181)、変更点のリストは、URLに変換される(工程186)。これらの変更点は、キャッシュサーバに送信される(工程187)。他の実施形態において、URLへの変換(工程186)は、変更が行われる工程(工程180)と、変更点を識別する工程(工程181)との間に行われる。
【0081】
図12を参照すると、1つの実施形態において、図3および図10の方法は、ユーザ設定可能スクリプトを実行する工程をさらに含む。変更が行われた(工程180)後、ユーザ設定可能スクリプトが実行される(工程280)。変更点を識別した後(工程181)、ユーザ設定可能スクリプトが実行される(工程281)。スクリプトは、変更点の送信(工程182)と同時に実行される。変更点が送信された後(工程182)、ユーザ設定可能スクリプトは再度実行される(工程282)。ユーザ設定可能スクリプトは、カスタマーの実現に特有のコンテンツ配信タスクを達成するために、用いられ得る。ユーザ設定可能スクリプトは、オペレーティングシステム機能の適切な呼び出しを通じて実行される。
【0082】
図13を参照すると、1つの実施形態において、コールアウトスクリプトに情報が提供される。1つの実施形態において、情報は、標準入力のスクリプトに提供される。他の実施形態において、情報は、ファイル内に提供される。スクリプトは、十分な(ゼロ)ステータスコード、または、1つの実施形態において動作を中止する非ゼロエラーコードのいずれかである。
【0083】
1つの実施形態において、情報400は、テキストフォーマットで提供され、BEGINPARAMSステートメント401で開始し、ENDPARAMSステートメント420で終了する。情報400は、互換性のために用いられる、情報ブロックのバージョン数402を含む。情報400は、この例においてEXAMPLEJOBである、ジョブ名403を含む。
【0084】
情報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進数形式の実施形態に格納される。
【0085】
情報400は、ソースファイルセットディレクトリ406、および、より早い(変更の前の)バージョンを支持し得るか、自動的に回帰される任意のコンテンツを保持し得る、回帰ディレクトリディレクトリ408を含む。宛先409のアレイが示される。各アレイの要素は、ファイルの宛先についての情報を含む。この例において、2つの宛先ホスト、OOLONGおよびDARJEELINGがある。アレイの第1の要素は、BEGINELEMENTステートメント410で開始し、ENDELEMENTステートメント414で終了する。アレイ要素は、この場合においてはOOLONGである、宛先ホストの名前411を含む。アレイ要素は、この例においては/HOME/HTTPD−OOLONG/DOC/IMAGESである、宛先ホストの宛先ディレクトリ412を含む。アレイ要素は、この例においてはNORMALである、転送413の状態を含む。アレイの第2の要素は、BEGINELEMENTステートメント415で開始し、ENDELEMENTステートメント419で終了する。第2のアレイ要素は、この場合においてはDARJEELINGである、宛先ホストの名前416を含む。アレイ要素は、この例においては/HOME/HTTPD−DARJEELING/DOC/IMAGESである、宛先ホストの宛先ディレクトリ417を含む。第2のアレイ要素は、この例においてはNORMALである、転送418の状態を含む。従って、ユーザスクリプトに提供される情報は、同じスクリプトが、ジョブの実行の間に、異なる場合に呼び出されることを可能にし、スクリプトは、提供されるパラメータに依存して、異なるアクションを取り得る。
【0086】
本明細書の記載の変形例、改変例、および他の実現例は、請求された本発明の精神および範囲から逸脱することなく、当業者によって想起され得る。従って、本発明は、前述の例示的な記載によって規定されるものではなく、特許請求の範囲の精神および範囲によって規定される。
【図面の簡単な説明】
【図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の実施形態のスクリプトに提供される情報の一例の図である。

Claims (25)

  1. マスターソースファイルセット内の変更点を、1つ以上のホストに配置された宛先ファイルシステムで複製する方法であって、該宛先ファイルシステムは、各ホスト内のそれぞれのウェブサーバによってアクセスされ、
    該方法は、
    (a)マスターコンピュータ上で該マスターソースファイルセット内の変更点を識別する工程と、
    (b)修正リストに該識別された変更点を格納する工程と、
    (c)該ウェブサーバの各々に該マスターソースファイルセットがすでに変更されたことを通知するために、各ホストにおけるそれぞれのエージェントに、該修正リストを送信する工程であって、該それぞれのエージェントは、同じホスト内で動作する該ウェブサーバのうちのそれぞれの1つのウェブサーバと通信し、該エージェントは、対応するホストにおける該宛先ファイルシステムへのアクセスを有する、工程と、
    (d)該識別された変更点を該エージェントに送信する前に、所定のゼロでない数のエージェントが、それぞれのウェブサーバが該識別された変更点を受信可能であると判定するまで待つ工程と、
    (e)該ウェブサーバのうち、そのウェブサーバでのインストールの完了のために該識別された変更点を受信可能であるウェブサーバに対応する該エージェントに、該ウェブサーバのうちの他の1つのウェブサーバが該識別された変更点のインストールを完了することが不可能であるかどうかにかかわらず、該識別された変更点を送信する工程と、
    (f)工程(d)の後に、該宛先ファイルシステムが該識別された変更点をインストールしたことを示す応答を、該エージェントのうちの少なくとも1つから受信する工程と
    を包含する、方法。
  2. (g)前記エージェントに前記マスターソースファイルセットの変更されたファイルのコピーを送信する工程をさらに包含する、請求項1に記載の方法。
  3. 前記識別する工程が、
    現在のバージョンのマスターソースファイルセットを検査する工程と、
    前記マスターコンピュータ上で、該現在のバージョンのマスターソースファイルセットを以前のバージョンのマスターソースファイルセットと比較する工程と
    を包含する、請求項1に記載の方法。
  4. 前記比較する工程が、前記現在のバージョンのマスターソースファイルセットのファイルのファイル属性を前記以前のバージョンのマスターソースファイルセットのファイルのファイル属性と比較することを包含する、請求項3に記載の方法。
  5. 前記ファイル属性が、ファイルサイズ、ファイル許可、ファイル所有権、修正時刻、およびファイルのハッシュからなるグループから選択された少なくとも1つの属性を含む、請求項4に記載の方法。
  6. 前記ファイル属性が、ファイル属性のリストに格納される、請求項4に記載の方法。
  7. 前記識別する工程が、
    ファイルオペレーションを実行し、前記マスターソースファイルセットの変更点を監視するためにデバイスドライバをインストールする工程と、
    該デバイスドライバによって、該マスターソースファイルセットの変更点を記録する工程と
    を包含する、請求項1に記載の方法。
  8. 前記識別する工程が、
    前記マスターソースファイルセットの変更点を記述するマニフェストを受信することを包含する、請求項1に記載の方法。
  9. 前記識別する工程の前に、オペレーティングシステム機能を呼び出すことによって、ユーザ設定可能な命令のスクリプトを呼び出す工程をさらに包含する、請求項1に記載の方法。
  10. 前記送信する工程の前に、オペレーティングシステム機能を呼び出すことによって、ユーザ設定可能な命令のスクリプトを呼び出す工程をさらに包含する、請求項1に記載の方法。
  11. 前記送信する工程の後に、オペレーティングシステム機能を呼び出すことによって、ユーザ設定可能な命令のスクリプトを呼び出す工程をさらに包含する、請求項1に記載の方法。
  12. 前記送信する工程が完了したかどうかを判定する工程をさらに包含し、前記呼び出す工程が、該判定する工程の後に生じる、請求項11に記載の方法。
  13. 前記スクリプトを呼び出す工程は、前記送信が成功したことが既知になった後に生じる、請求項11に記載の方法。
  14. 前記送信する工程は、マルチキャスティングすることを包含する、請求項1に記載の方法。
  15. 前記修正リストとは別に前記エージェントに信号を送信することをさらに包含し、該信号は、該エージェントが前記少なくとも1つのウェブサーバに前記変更点をインストールすることが許可されていることを示す、請求項1に記載の方法。
  16. ウェブサービスシステムであって、
    該ウェブサービスシステムは、
    該ウェブサービスシステムを管理するように構成されたマネージャと、
    1つ以上のホストであって、各ホストは、ウェブページリクエストを受信するウェブサーバと、該マネージャおよび該ウェブサーバと通信するエージェントとを備える、ホストと、
    該1つ以上のホストおよび該マネージャと通信するコンテンツディストリビュータと
    を備え、
    該コンテンツディストリビュータは、該1つ以上のホストに、マスターコンピュータ上でのマスターソースファイルセットの変更点の通知を提供するように構成されており、該コンテンツディストリビュータは、該識別された変更点を該エージェントに送信する前に、所定のゼロでない数のエージェントが、それぞれのウェブサーバが該識別された変更点を受信可能であると判定するまで待ち、その後、該ウェブサーバのうち、そのウェブサーバでのインストールの完了のために該識別された変更点を受信可能であるウェブサーバに対応する該エージェントに、該ウェブサーバのうちの他の1つのウェブサーバが該識別された変更点のインストールを完了することが不可能であるかどうかにかかわらず、該識別された変更点を送信するように構成されており、該コンテンツディストリビュータは、該識別された変更点がインストールされたことを示す応答を受信するように構成されている、ウェブサービスシステム。
  17. 前記マネージャと通信するトラフィックマネージャをさらに備え、該トラフィックマネージャは、ウェブページリクエストを前記ウェブサーバに向ける、請求項16に記載のシステム。
  18. 前記コンテンツディストリビュータが、
    (a)マスターコンピュータ上で前記マスターソースファイルセット内の変更点を識別する識別モジュールと、
    (b)該マスターソースファイルセットの識別された変更点を格納する修正リストを格納する修正リスト記憶手段と、
    (c)該修正リストを、宛先ファイルシステムへのアクセスを有する前記エージェントに送信する送信器と、
    (d)該宛先ファイルシステムが該識別された変更点を受信したことを示す応答を受信する受信器と
    を備える、請求項16に記載のシステム。
  19. 前記マスターソースファイルセットの変更されたファイルのコピーを前記エージェントに送信する送信器をさらに備える、請求項18に記載のシステム。
  20. 前記エージェントが、前記宛先ファイルシステム上で前記マスターソースファイルセットの変更されたファイルのコピーをインストールするインストーラを備える、請求項18に記載のシステム。
  21. コンピュータと通信するコンテンツディストリビュータであって、
    該コンテンツディストリビュータは、
    (a)マスターコンピュータ上でマスターソースファイルセット内の変更点を識別するように構成された識別モジュールと、
    (b)該マスターソースファイルセットの識別された変更点を格納する修正リストを格納するように構成された修正リスト記憶手段と、
    (c)該修正リストを、該コンピュータと通信する1つ以上のエージェントに送信するように構成された送信器であって、該エージェントは、宛先ファイルシステムへのアクセスを有し、該送信器は、該識別された変更点を該エージェントに送信する前に、所定のゼロでない数のエージェントが、それぞれのウェブサーバが該識別された変更点を受信可能であると判定するまで待ち、その後、該ウェブサーバのうち、そのウェブサーバでのインストールの完了のために該識別された変更点を受信可能であるウェブサーバに対応する該エージェントに、該ウェブサーバのうちの他の1つのウェブサーバが該識別された変更点のインストールを完了することが不可能であるかどうかにかかわらず、該識別された変更点を送信する、送信器と、
    (d)該修正リストが送信された後に、該宛先ファイルシステムが該識別された変更点を受信したことを示す応答を該コンピュータから受信するように構成された受信器と
    を備える、コンテンツディストリビュータ。
  22. 前記送信器は、前記宛先ファイルシステム上でのインストールのために、前記マスターソースファイルセットの変更されたファイルのコピーを前記エージェントに送信するようにさらに構成されている、請求項21に記載のコンテンツディストリビュータ。
  23. マスターソースファイルセット内の変更点を、それぞれのホストに配置された宛先ファイルシステムで複製する方法であって、該宛先ファイルシステムは、複数のウェブサーバのうちのそれぞれのウェブサーバによってアクセスされ、
    該方法は、
    (a)マスターコンピュータ上で該マスターソースファイルセット内の変更点を識別する工程と、
    (b)修正リストに該識別された変更点を格納する工程と、
    (c)それぞれのエージェントに、該修正リストを送信する工程であって、該それぞれのエージェントは、該ウェブサーバのうちのそれぞれのウェブサーバと通信し、該エージェントは、それぞれの宛先ファイルシステムへのアクセスを有し、該宛先ファイルシステムの各々は、それぞれのエージェント、およびそれぞれの同じホスト上で動作するウェブサーバを有し、それにより、それぞれのウェブサーバに、該マスターソースファイルセットがすでに変更されたことを通知する、工程と、
    (d)所定の数のウェブサーバが、更新されたコンテンツを受信可能になることを待つ工程と、
    (e)所定のゼロでない数のウェブサーバが、該更新されたコンテンツを受信可能である場合には、
    (1)該ウェブサーバのうち、そのウェブサーバでのインストールの完了のために該識別された変更点を受信可能であるウェブサーバに対応する該エージェントに、該ウェブサーバのうちの他の1つのウェブサーバが該識別された変更点のインストールを完了することが不可能であるかどうかにかかわらず、該変更点を送信する工程、および、
    (2)該識別された変更点が該エージェントのそれぞれの宛先ファイルシステムにインストールされたことを示す応答を少なくとも1つのウェブサーバから受信する工程と、
    (f)該所定の数よりも少ないウェブサーバが、該更新されたコンテンツを受信可能な場合には、該変更点を該エージェントに送信することを中止する工程と
    を包含する、方法。
  24. 新たなコンテンツをサービス可能なエージェントの数が十分で無い場合に、前記変更点のインストールを中止することをさらに包含する、請求項23に記載の方法。
  25. 前記修正リストとは別に前記エージェントに信号を送信することをさらに包含し、該信号は、該エージェントがそれぞれのウェブサーバに前記変更点をインストールすることが許可されていることを示す、請求項23に記載の方法。
JP2000596491A 1999-01-28 2000-01-25 ウェブサーバコンテンツ複製 Expired - Lifetime JP4590105B2 (ja)

Applications Claiming Priority (7)

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

Publications (2)

Publication Number Publication Date
JP2002540492A JP2002540492A (ja) 2002-11-26
JP4590105B2 true JP4590105B2 (ja) 2010-12-01

Family

ID=27382020

Family Applications (2)

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

Family Applications After (1)

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

Country Status (6)

Country Link
JP (2) JP4590105B2 (ja)
KR (2) KR100729287B1 (ja)
AU (2) AU3473200A (ja)
CA (2) CA2360900A1 (ja)
GB (2) GB2363494B (ja)
WO (2) WO2000045300A1 (ja)

Families Citing this family (27)

* 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
US6591266B1 (en) * 2000-07-14 2003-07-08 Nec Corporation System and method for intelligent caching and refresh of dynamically generated and static web content
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
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
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
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
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 삼성전자 주식회사 재생장치 및 부가정보 서비스 서버 시스템
AU2002329602B2 (en) * 2001-07-16 2008-05-22 Oracle International Corporation 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 ウェブデータ配信システム
WO2005057420A1 (en) * 2003-12-11 2005-06-23 Bea Su Jo 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
EP1891496A4 (en) 2005-04-15 2011-11-30 Kt Freetel Co Ltd METHOD FOR DISTRIBUTING CONTENTS
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
WO2009152603A1 (en) 2008-06-18 2009-12-23 Chalk Media Service Corp. Method and system for republishing 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 北京京东尚科信息技术有限公司 分布式服务集群***数据更新的监控装置及方法

Family Cites Families (8)

* 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
US6138141A (en) * 1996-10-18 2000-10-24 At&T Corp Server to client cache protocol for improved web performance
US5787470A (en) * 1996-10-18 1998-07-28 At&T Corp Inter-cache protocol for improved WEB performance
WO1998054631A2 (en) * 1997-05-27 1998-12-03 Merrill Lynch & Co., Inc. System for network file distribution

Also Published As

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

Similar Documents

Publication Publication Date Title
JP4590105B2 (ja) ウェブサーバコンテンツ複製
US6976093B2 (en) Web server content replication
US7035943B2 (en) Web server content replication
US9009267B2 (en) Method and system for purging content from a content delivery network
JP3967806B2 (ja) リソースの位置を指名するためのコンピュータ化された方法及びリソース指名機構
JP4698756B2 (ja) ウェブベースアプリケーションのオフライン実行
US8024306B2 (en) Hash-based access to resources in a data processing network
US7734951B1 (en) System and method for data protection management in a logical namespace of a storage system environment
EP1410247B1 (en) A network storage system
US7428540B1 (en) Network storage system
CN101263494B (zh) 用于监控与存储网络中的对象相关的事务的方法和装置
US20050246393A1 (en) Distributed storage cluster architecture
US7281168B1 (en) Failover architecture for local devices that access remote storage
WO2014071786A1 (zh) 一种文件传输的方法及***
WO2002052381A2 (en) System and method for intelligently distributing content over a communications network
JP4958951B2 (ja) コンテンツ収集
JP3718273B2 (ja) メンテナンスデータ管理方法
JP2005173724A (ja) 文書管理システム、ファイルサーバ、文書管理プログラム、文書管理方法
JPH10269127A (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

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

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100422

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100715

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

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

R150 Certificate of patent or registration of utility model

Ref document number: 4590105

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20130917

Year of fee payment: 3

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

Free format text: PAYMENT UNTIL: 20130917

Year of fee payment: 3

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: R3D02

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S531 Written request for registration of change of domicile

Free format text: JAPANESE INTERMEDIATE CODE: R313531

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S533 Written request for registration of change of name

Free format text: JAPANESE INTERMEDIATE CODE: R313533

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

EXPY Cancellation because of completion of term
S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R370 Written measure of declining of transfer procedure

Free format text: JAPANESE INTERMEDIATE CODE: R370