(57)【特許請求の範囲】
【請求項１】
分散型コンピュータネットワークにおいてサービスプロバイダの管理下で加入コンテンツプロバイダに代わってコンテンツを配信する方法であって、
エンドユーザクライアントマシンは、サービスプロバイダへインターネットを介して接続される加入コンテンツプロバイダへコンテンツを要求し、サービスプロバイダはリダイレクトサーバを含み、所与のエンドユーザクライアントマシンは分散型コンピュータネットワークのＩＰアドレスを有し、
前記コンテンツ配信方法は、
少なくとも一つはインターネットポップ（ＰｏＰ）である所定のネットワーク位置に、一つ以上ある加入コンテンツプロバイダのコンテンツを有する配信サイトを設置する過程と、
ＩＰアドレスの第１のバイトに対応するバイト値により索引されるテーブルであって、前記バイト値の各々につき、所与のネットワークパフォーマンス試験のデータに基き該バイト値をＩＰアドレスの第１のバイトとして有するエンドユーザクライアントマシンにとって好ましい配信サイトのサブセットのＩＰアドレスを含むテーブルを、リダイレクトサーバが、生成する過程と、
所与のＩＰアドレスのエンドユーザクライアントマシンがサービスプロバイダが管理するコンテンツを要求すると、それに応答して、リダイレクトサーバが、該エンドユーザクライアントマシンのＩＰアドレスの第１のバイトに対応するバイト値をテーブルの索引として使用することにより前記要求を配信サイトの一つのサブセットのＩＰアドレスと関連付ける過程とを含むことを特徴とするコンテンツ配信方法。
【請求項２】
リダイレクトサーバが、サービスプロバイダにネットワークパフォーマンス試験のデータを統合及び維持させる段階をさらに含む請求項１に記載のコンテンツ配信方法。
【請求項３】
リダイレクトサーバが、ネットワークパフォーマンス試験のデータに応じてテーブルを修正する段階をさらに含む請求項２に記載のコンテンツ配信方法。
【請求項４】
テーブルは、前記サブセットの配信サイトをそれぞれ識別するＩＰアドレスを変更するように修正されることを特徴とする請求項３に記載のコンテンツ配信方法。
【発明の詳細な説明】
本発明は、分散型データの記憶保持および検索のためのシステムおよび方法に関し、さらに詳細には、それによりユーザが、動的でかつ分散されている多目的ネットワーク用のネットワークパフォーマンスの情報を取得することができる、システムおよび方法に関する。ここで、この情報は、コンピュータデータ、具体的には、マルチメディア・コンテンツを受信するための最適な配信サイトまたはサーバを識別し、および、選択するために、使用されるものとなる。このような配信サイトおよびサーバは、ネットワーク容量を増加し、サーバ負荷を分散し、および、サーバとユーザの間の伝達遅延を削減するように、選択される。
発明の背景
インターネットは、世界中に広がっていて接続されているコンピュータの開放的なネットワークである。メッセージは、宛先アドレスを指定するとともに、一連の“ホップ”（“hops”）を介してコンピュータからコンピュータへメッセージを渡すことによって、インターネット上の任意のコンピュータから他の任意のコンピュータに送信することができる。インターネット上の各コンピュータ、各ルータ、または、各“ノード”（“node”）には、ユニークなインターネットアドレスがある。中間のコンピュータまたはルータが通過中のメッセージを受信すると、コンピュータは、そのメッセージの意図されている宛先をチェックするとともに、それに応じてそのメッセージを次々と回送する。
インターネットは、規模と高度化という両方の点で、急激な速度で発達している。過去においては、インターネットの大部分のユーザは、学術、研究もしくは機関のユーザであった。インターネットは、その頃は、おもに、電子メールおよびネットワークニュースを送信および受信するためと、コンピュータ・ファイルの転送を可能にするためとに使用されていた。しかし、数年前にワールドワイドウェブ（“ウェブ”または“ＷＷＷ”としても知られている）が導入されて以来、インターネットは、一般的に関心をよせられる、つまり画像や記事等の表現の、他の種類のデータの量を増大させることを、ホストし始めた。
ウェブのプロトコルおよび言語は、インターネットの広々とした区域（expanses）をナビゲーションするグラフィックの手段を確立する。多くの場合、おもにテキストとグラフィックの資材から成り立っている“ウェブページ”は、インターネット中にある“ウェブサーバ”として知られている多数のコンピュータに蓄積されている。“ブラウザ”として知られているソフトウェアプログラムは、希望されるウェブページの場所（すなわち、インターネットアドレス）を指定することにより、インターネットを経由してウェブページにアクセスしかつウェブページを見るために使用することができる。ウェブページにアクセスすると、その情報は、それが世界中のどこに位置していようとも、遠隔のコンピュータ（サーバまたは配信サイト）からインターネットを経由してユーザへと送信される。
最近では、ウェブは、音声データおよびビデオデータのようなきわめて高度化されている種類のマルチメディアコンテンツとコンピュータソフトウェアとをホストし始めた。第１世代のウェブコンテンツ、つまりテキストおよび静止画像に比較して、音声クリップ、ビデオクリップおよびソフトウェアプログラムは、きわめて高い記憶領域と帯域幅の要求をもっている。
現在、インターネットのマルチノードリンク上で大きな音声／ビデオファイルの高速持続伝送を提供することは、不可能ではないにしても、困難である。データは多くの場合遠くから転送されるため、多くの要因によって伝送の一部もしくはすべての遅延または損失さえ生じ得る。ユーザが小さいグラフィックファイルまたはテキストファイルを受信する上でマイナーな遅延を体験するかどうかは、概して重大ではない。しかし、ビデオのようなリアルタイムデータがデータの転送および表示に非常に特殊かつ厳密なタイミング要件を有することは、認識されている。
残念なことに、従来のインターネットに類似するデータネットワークの現在の設計は、遅延および大きなデータ伝達速度の変動が通常のデータ（例えば、テキストおよび静止画像）の場合に許容できるという原則に基づいている。その結果、世界中の場所からのテキスト情報およびグラフィック情報へのアクセスを可能にする高い価格のために、このような伝送の欠陥は許容できると考えられ、インターネットの基本容量は、データ伝送コストを削減するためにいくぶん“加入超過”（“oversubscribed”）になっている。言い換えると、ネットワークデータ伝送の適時性（timeliness）は、長距離通信接続であることの総費用を相対的に無意味にするために、かなり妥協されてきていた。
音声−ビデオデータをインターネットのようなメッセージ指向型ネットワーク経由で無事に転送するためには、数人を超える任意のユーザにとって、ネットワークリソースが伝送の適時性を促進する形式で寄託される必要がある。寄託されているネットワークリソースを使用するシステムは、それがデータパケット単位によるデータパケットでのネットワークリソースの共有に参加することができないため、通常、インターネットのような共有ネットワークの既存の価格形成方式を利用することはできない。ビデオデータは、より低い優先順位のデータを除外して伝送されなければならない。したがって、特に、接続が“長距離”のとき、あるいは、延長された時間の間接続が続行されるときには、伝送コストが多大になる。
上述した適時性対コストの折り合いの別の結果は、見た目には無差別のネットワークの構造設計になっている。遅延およびスループット（throughput）の変動は、従来、低コストを好んで大目に見られてきたため、インターネット・インフラストラクチャのコンフィギュレーションもコストの考慮によって決定されてきていた。このため、ネットワークの相互間接続の効率は、めったに考慮されることはなかった。リアルタイムデータの急激な発展がこの要求を変えつつある。
インターネット上での時間に敏感なデータの不十分なデータ転送パフォーマンスは、典型的には以下の４つの要因によって引き起こされることが認識されている。すなわち、パケットの損失、過剰なサーバの活用、ネットワーク・インフラストラクチャの相対的に低い容量、および、ネットワークハードウェアにおける固有の遅延である。特に、パケットの損失は、不十分なインフラストラクチャおよびルーティングにおける堅固さの欠如によって引き起こされる。固有の遅延は、とりわけ、インターネット上での多数ノード経路における隣接ノード間のフロー制御の欠如によって引き起こされると考えられている。
より小さいテキストファイルとグラフィックファイルとは異なり、相対的に大きなビデオファイルは、数分間（またはそれ以上）の“ストリーム”（“streaming”）、すなわち、絶えず続くデータフローを要することがある。その結果、通常のネットワークパフォーマンスの問題は悪化する。ネットワーク帯域幅、すなわち、ある特定のネットワークのデータ搬送容量が制限される。このため、パケット損失および遅延が増加する。長い配信時間は、長期間大量のサーバ容量を消費し、他のユーザが使用できるリソースを減少させる。したがって、ネットワーク・インフラストラクチャがますます輻輳するようになるので、パケット損失と遅延は増加し続け、伝送時間は上昇し、および、サーバ負荷はさらに増大する。
このパターンは、ビデオクリップのような大きいデータファイルの伝送の試行によって左右され得るネットワークパフォーマンスの“連続的下降”（“downward spiral”）を例示するものである。ネットワークトラフィックがネットワーク帯域幅によって課されれている制限の範囲内に留まる限り、ネットワークパフォーマンスは許容可能なままになる。しかし、ピークネットワーク負荷が容量を越えると常に、前述の連続的下降が始まり、不十分なネットワークパフォーマンスの期間を引き延ばす。
上述したように、ブラウザプログラムは、希望されているウェブページの場所（つまり、インターネットアドレス）を指定することによって、あるいは、より一般的には、ウェブページに“ホットリンクする”（“hotlinking”）ことによって、インターネットを経由してウェブページにアクセスし、かつ、これを見るのに使用することができる。一般のブラウザは、Ｌｙｎｘ、ＮＣＳＡ  Mosaic、Netscape Navigator、および、Microsoft Internet Explorerである。希望されているウェブページは、構文“http://internet.address/directory/filename.html”を使用してファイルの正確な場所を示す全域資源位置指示子（“ＵＲＬ”（uniform resource locator））によって指定される。
ウェブページは、通常、レイアウトとコンテンツという点で、“ＨＴＭＬ”（HyperText Markup Language）として知られている言語によって記述されている。インターネットにリンクされている特定のコンピュータは、いずれも、１つまたは２つ以上のウェブページ、すなわち、ＨＴＭＬフォーマットで書かれたコンピュータファイルを、ユーザによるアクセスのために記憶蓄積することができる。
あるＨＴＭＬウェブページから別のＨＴＭＬウェブページへのホットリンクは、以下のように達成される。ユーザは、まず、多くの場合ユーザのＩＳＰ（Internet Service Provider）に位置しているコンピュータ上の、既知のアドレスを有しているウェブページにアクセスする。ＩＳＰは、ユーザにインターネット接続性を提供している組織である。そのウェブページは、ＨＴＭＬフォーマットで指定されているテキストのデータと視覚的なデータとに加えて、多くの場合、“リンク”、つまりインターネット全体を通じた他のコンピュータ上の、他のウェブページのインターネットアドレスを指す（ＵＲＬの形をした）はめ込まれた情報を含むことができる。それから、ユーザは、リンクを選択することによって（多くの場合、マウスで指し示してクリックすることによって）、他のウェブページにアクセスすることができ、それらは、次々と一層のデータおよび／または追加リンクを含み得るものとなっている。
NetscapeのＥＭＢＥＤタグのようなＨＴＭＬへの多様な拡張は、ウェブページの中にはめ込まれる他のデータの参照を可能にする。テキストおよび画像以外のデータを処理することができないブラウザもある。その一方で、多様な方法でデータを処理することができるブラウザもある。例えば、ＮＣＳＡのMosaicは、データがユーザのコンピュータにダウンロードされるのを可能にし、かつ、その後にデータを見てまたは操作するための外部プログラムを任意で呼び出すことによって、既知ではない種類のデータに対する参照を取り扱う。Netscape NavigatorおよびMicrosoft Internet Explorerの最近のリリースにより、概念はさらに一歩進んだ。すなわち、データがリモートウェブページから受信されると、そのデータを処理するためにブラウザ拡張、つまり“プラグ−イン”（“plug-in”）を、自動的に呼び出すことができる。Ｊａｖａ言語（または類似した言語）で記述されているネットワークプログラム“アプレット”（“applets”）のような他の手段は、ブラウザ環境またはネットワークの機能性を拡張するために使用することができる。
デジタルのマルチメディアデータは、きわめて高い記憶領域および帯域幅の要求を有し得る。特に、ビデオファイルは、約１０メガバイトから１０ギガバイトと非常に大きくなる可能性がある。ユーザの端末で、それが録画された速度に近づく速度でビデオファイルを再生するためには、ファイルは高速、不変の速度で配信されなければならない。低速過ぎると、画像は、もとの録画されたものよりゆっくりとプレイバックされる。速度が一様ではない場合には、ビデオは、昔の映画のようにぴくぴく動く（jerky）ように見える。
上述したネットワーク設計の折り合いは、通常、インターネットを経由する音声データおよびビデオデータの伝送に悪影響を及ぼす。ウェブを“サーフ”（“surf”）するためにブラウザを使用しているユーザは、テキストおよび静止画像を検索している間のマイナーな遅延および伝送速度の変動に気がつかない可能性があるが、このような欠陥は、リアルタイムの音声情報およびビデオ情報がアクセスされると明白になり、かつ、顕著になる。
これらの問題を解決する試みにおいて、インターネットコンテンツプロバイダは、“ミラーサイト”（“mirror sites”）として知られている多様なサーバまたは配信サイト上で、インターネット中の人気のあるコンテンツを拡布することがある。各ミラーサイトは、元のサイトの情報と本質的に同一である情報を含んでいる。例えば、人気のあるウェブサイトがニューヨークに位置する場合、ミラーサイトは、ロスアンジェルス、ロンドンおよび東京に位置していてもよい。したがって、ヨーロッパのユーザが元のニューヨークのサイトにアクセスするのが困難な場合、そのユーザは、地理的に最も近いミラーサイト、つまりロンドンにホットリンクすることができる。
しかしながら、ミラーサイトにはいくつかの不利な点がある。例えば、ミラーサイトは、地理的には幅広く分散していてもよいが、実際の使用量、ネットワークトラフィック等という点ではネットワーク上で効率的に分散されていないことがある。したがって、ニューヨークとロスアンジェルスのミラーサイトは、両方とも、同じ国内インターネットサービスプロバイダのネットワークに接続され、それらのサイトの一方にアクセスする上での困難さが他方にも影響を及ぼす可能性があることを、意味することがある。
さらに、ミラーサイトは、各サーバに対する負荷を削減するために最適に配置されていないことがある。ミラーサイトがどこに設置されるべきかに関して“知識に基づいた推測”（“educated guess”）がなされるかもしれないが、実際の使用量パターンは異なる可能性がある。さらに、パフォーマンスの改善の保証はない。ミラーサイトの帯域幅は、元のサイトの帯域幅より低く、あるいは、それが他の理由から過剰負荷の状態になっていることがある。
さらに、ミラーサイトは、多くの場合、自発的な基準によってホストされている。あるウェブサイトがきわめて人気があり、かつ、主題がその加入者にとって関心がある可能性があるとサービスプロバイダが判断すると、そのサービスプロバイダは、元のウェブサイトのミラーサイトをホストすることに同意する可能性がある。人々がミラーサイトに引かれ、かつ、そこでホストされている他のコンテンツにもホットリンクする可能性があるため、このような調整は、ミラーサイトのホストにとって魅力的なものとなる。他方、このような自発的な提携は、典型的には信頼性がなく、かつ、任意の時点で断ち切られる可能性がある。
本来、ミラーサイトは、データにとって、使用できることもあれば、使用できないこともあり、かつ、ユーザの利便性を改善することもあるが、ネットワークの帯域幅または効率には取り組まない、二次的なソースを提供する。ミラーサイトは、ネットワークのパフォーマンス特性も考慮に入れず、インターネット上の方式のような既存の低コストの価格形成方式を依然として活用する一方で効率的にビデオデータを伝送するために使用し得る利用可能な帯域幅も識別しない。
現在では、配信サイトのための最適な場所の選択に関するガイダンスがまったくなく、どのミラーサイトに接続するのかをユーザが判断できるようにする、最適なパフォーマンスを保証するであろう方法も知られていない。実際、従来のミラーサイトの使用は自発的である。典型的には、ユーザは、元のサイト（もしくは、既知のミラーサイト）にアクセスしようと試み、１回または２回以上の試行の後にパフォーマンスが不十分であると判明する場合にだけ、別のミラーサイトへの切り替えをすることになる。このアプローチは、ネットワークリソースの非効率的な活用である。明らかに、ミラーサイトは、過剰負荷になっているウェブサイトの問題にとっての最適な解決策ではない。とりわけ、この主要な理由とは、ネットワークパフォーマンスを考慮できていない点にある。
ネットワーク分析、特に、インターネット上での特定の経路およびリンクのパフォーマンスは周知であり、かつ、開発されている。例えば、“ｐｉｎｇ”プログラムは、インターネットに接続されているコンピュータに対し、遠隔のホストがアクセス可能であるかどうかを判断できるようにする。しかし、このｐｉｎｇプログラムは、ＩＣＭＰプロトコルとして知られている低優先順位ネットワークプロトコルを使用しており、かつ、そのために有意義なパフォーマンスの分析情報を提供しない。“ｔｒａｃｅｒｏｕｔｅ”プログラムは、コンピュータから遠隔のホストへのメッセージの伝送を追跡し、各リンクに沿った遅延を追跡調査し、および、該メッセージによって取られる経路を決定する。このｔｒａｃｅｒｏｕｔｅアプリケーションは、データの流れをマッピングするのに使用できる。ただし、それには、有意義なパフォーマンスの分析情報を提供する能力が欠けている。Ｔｒａｃｅｒｏｕｔｅは、ある方向で伝搬するメッセージに関するルート情報を提供するだけであり、かつ、時間的にある一瞬に関してだけ提供する。
さらに、テストを実行中の単一のコンピュータに続く経路とそれから続く経路の接続性特性だけは、典型的に決定される。テストの範囲を拡大することは可能であるが、インターネットは非常に大規模であるため、論理学的には実行不可能である。
“ｐｉｎｇ”プログラムおよび“ｔｒａｃｅｒｏｕｔｅ”プログラムのような従来のネットワーク分析技術は、ネットワーク接続性という観点を提供するが、プロバイダとインターネットを経由するミラーサイトからどのようなパフォーマンスを期待できるかについての理解はほとんど提供しない。したがって、配信サイトまたはミラーサイトがどこに位置すべきなのか、あるいは、パフォーマンスを最適化するためにはどのミラーサイトを使用すべきなのかに関しては、「推測」だけを行うことができるに過ぎない。
したがって、総合的なネットワークパフォーマンスを判断する方法に対するニーズが存在する。コンテンツプロバイダが最適なネットワークの位置にデータ配信またはミラーサイトを動的に配置することができるようにし、かつ、ユーザがデータを受信すべき最適なミラーサイトを選択するのを許容する、その方法を適用するシステムにとってはさらに別のニーズが存在する。
発明の要約
本発明は、インターネット中に位置しているサイトへのウェブコンテンツの最適化された分散のためのシステムおよび方法を目的としている。ここで、“スマートミラー化”（“Smart Mirroring”）と呼ばれているインテリジェント・ミラー化方式は、ミラーサイトに対するニーズおよびその分散を判断するとともに、一定のウェブコンテンツに対するユーザの要求を最適なミラーサイトに向けるために使用される。
多くの“スマート”（“Smart”）な配信サイトまたはミラーサイトは、人気のあるウェブコンテンツをインターネットの多様な部分に分散するために使用される。多数のユーザによって実行されているテストに基づいたネットワーク分析の包括的な方式が、サイトに好ましい位置（locations）を対話的に決定し、かつ、各個別のユーザによって使用される最適なサイトを決定するために、使用される。
したがって、各個別のユーザが改善されたパフォーマンスを提供するスマートミラーまたは配信サイトへルーティングされるため、総合的なネットワークの輻輳は削減される。大部分のケースでは、データがその上を移動しなければならないネットワーク接続の数を減少させ、それによりパケット損失および遅延を削減するために、改良されたサーバがユーザに電子的に近くに配置される。
さらに、ネットワーク分析の結果により、メッセージのトラフィックを、すでに過剰負荷になっているそれらの配信サイトおよびネットワーク領域から遠ざけ、かつ、十分に利用されていないサーバおよびネットワークに向けてルーティングすることができるようにする。このため、各ユーザによって理解されるようにスループット（throughput）における改善がなされ、かつ、それによって該システムを使用しているコンテンツプロバイダにより提供されているコンテンツの魅力が増すことになる。コンテンツプロバイダは、パフォーマンスにおける顕著な低下を被ることなく、インターネットを経由してより多数のユーザに到達することができる。
本発明によるシステムは、元のウェブサイトおよび少なくとも１つの追加配信（またはミラー）サイトで始まる。このシステムの使用を希望している各ユーザには、好ましい実施の形態においては、コンフィギュレーション・ユーティリティおよびクライアント・プログラムを含むソフトウェアが与えられることになる。そのコンフィギュレーション・ユーティリティは、まず、どの配信サイトがその特定のユーザにとって改善されたパフォーマンスを提供するのかを判断するために使用される。
本発明の一実施形態においては、コンフィギュレーション・ユーティリティは、最初に、サービスプロバイダから“配信サイトファイル”（“delivery site file”）をダウンロードする。この配信サイトファイルには、利用可能な配信サイトのリストおよび実行されるネットワークテストのリストが含まれている。テストの種類および実行されるテストの頻度は、ネットワークをテストしているユーザの数およびネットワーク上での概算流出もしくは配信システム容量に応じるように、該配信サイトファイルにおいて指定することとしてもよい。
コンフィギュレーション・ユーティリティは、該配信サイトファイルにおいて指定されているテストのサブセットを実行することになる。テストの結果は、どの配信サイトがユーザにとって改善されたパフォーマンスを生み出すのかを示すとともに、テストを実行しているユーザの観点からの多様な汎用化されたネットワークの性能に関する情報をも含んでいる。ネットワークのテスト結果および選ばれた配信サイトの識別情報は、（１つの可能なコンフィギュレーションにおいてはｅメールによって）サービスプロバイダのデータベースの中に取り込むために配信サービスプロバイダへ送り返されることになる。
その後、コンフィギュレーション・ユーティリティによって選ばれた配信サイトは、配信システムのサービスプロバイダが管理しているすべてのコンテンツの検索のために、そのユーザによって使用される。その結果、ユーザがウェブコンテンツをブラウザして、そして、サービスプロバイダの配信システムによって管理されている特定のアイテム、例えばビデオクリップを見つけると、クライアント・ソフトウェアは、自動的に、指定されている“スマートミラー”配信サイトからそれを検索する。サイトの優先およびデフォルトのサイトは、要求に応じて定期的に、指定されたときに、または、ネットワークの負荷およびトラフィックにおける変化に応答して、アップデートすることができる。
さらに、本発明のコンフィギュレーション・ユーティリティは、多様なネットワークテストを実行し、かつ、サービスプロバイダにそのテストの結果を提供しているため、システムおよびネットワークのパフォーマンスに関する貴重なデータを入手することができる。このようなデータは、どの“スマートミラー”配信サイトが効果的に実行していてどの“スマートミラー”配信サイトが効果的に実行していないのか、どのスマートミラー配信サイトが過剰負荷になっているのか、および、インターネットのどの部分がさらに多くの配信サイトまたは容量の追加から利益を得る可能性があるのか、に関する情報を提供する。このようなデータは、また、エンド−ツー−エンド（end-to-end）のパフォーマンスの測定、処理量の特徴化、ルートの安定性および動作不能状態の測定基準のような高度なネットワーク分析の実行をも可能にする。
本発明の実施の形態においては、ミラーサービスプロバイダは、インターネットＩＰアドレスを“電子的に近い”（“electronically close”）配信サイトに相関付けるルックアップテーブルを運営するために、エンドユーザによって提供されているネットワークパフォーマンスのデータを使用する。ユーザがウェブページをブラウジングしつつ、例えば、サービスプロバイダの配信システムによって管理されている広告の見出しまたはビデオクリップなどのファイルを要求すると、サービスプロバイダは、そのユーザのＩＰアドレスをそのルックアップテーブルにマッピングし、かつ、どの配信サイトがそのユーザにとって“電子的に近い”のかを判断することができる。サービスプロバイダは、その後、ユーザのコンフィギュレーション・ユーティリティまたはクライアント・プログラムに対し、単一の配信サイトアドレスまたはこれらのサーバへの配信サイトアドレスのリストを提供することができる。後者の場合、ユーザ端末は、最終的な配信サイト選択を行うルータとして動作する。
一般的には、ある特定のユーザにとって改善された配信サイトは、一群のユーザによって以前に実行されたネットワークのテストから収集されたネットワークパフォーマンスの総合データを分析することにより、事前に予測することができる。したがって、配信サイトの選択は、ユーザがミラーサービスプロバイダの配信システムによって管理されているファイルを要求するたびに、実行中（on-the-fly）に起こる可能性がある。ユーザの観点からは、配信サイトの選択は、ウェブページからファイルを選択することとユーザの端末へ配信されたファイルを所有することとの間にまったく遅延がないものと見えるように、自動的にかつ透明的（transparently）に行われる。サービスプロバイダによって維持されているルックアップリストは絶えずアップデートされてネットワークパフォーマンスにおける変化を反映し、サービスプロバイダがネットワークトラフィックの負荷配分を効率的に行うことを可能にする。
このようにして、工学技術的な観点から、ミラーサービスプロバイダは、改善されたパフォーマンスが提供されていることを保証し続けることができる。マーケティングの観点からは、コンテンツプロバイダに対し、パフォーマンスの改善のためにスマートミラーまたは配信サイトをどこに配置するべきなのか、および、どのＩＳＰが改善された配信を実現するのか、を告げることができる。
【図面の簡単な説明】
図１は、多種多様なユーザおよび多種多様なコンテンツプロバイダを含む本発明によるシステムの例示的なネットワークトポロジのブロックダイヤグラムである。
図２は、本発明によるシステムにおいて使用されるコンフィギュレーション・ユーティリティの動作を説明するフローチャートである。
図３は、本発明によるシステムにおいて使用されるクライアント・プログラムの動作を説明するフローチャートである。
図４は、サイト選択が本発明の実施の形態においてどのように実行されるのかを示すフローチャートである。
発明の詳細な説明
本発明は、詳説されている例示的な実施の形態に関して以下に説明される。本発明が多岐に渡る種々の形式で実現できることは明白であり、そのいくつかは、開示されている実施の形態の形式とはきわめて異なるものであってもよい。従って、ここに開示されている特定の構造上および機能上の詳細は、単に代表的なものにすぎず、かつ、本発明の範囲を制限しない。
最初に図１を参照すると、インターネット１０が“クラウド”（“cloud”）として描かれている。このインターネット１０は、一般的な広域通信ネットワークを表すことを意図したものである。インターネットは、多数のコンピュータの相互接続されたネットワークとして知られている。互いに“地理的に”（“geographically”）近いインターネット接続されたコンピュータがインターネット上で互いに“電子的に”（“electronically”）近いこともあり得るが、このようなことは通常のケースではない。しかし、インターネットに接続されているあるコンピュータが、インターネットに接続されている任意の他のコンピュータと通信することはできる。つまり、メッセージは、直接的に互いに接続されているコンピュータ間で、リンクのシーケンスまたは“ホップ”（“hops”）を含む経路上をほぼ確実に移動することになる。
第１ユーザ端末１２も図１に描かれている。第１ユーザ端末１２は、典型的にはただのコンピュータ、ルータ、または、インターネット１０に接続されている端末サーバであるインターネットサービスプロバイダ（ＩＳＰ（Internet service provider））１４に接続されている。ＩＳＰ１４は、第２ユーザ端末１６のような追加のユーザ端末をホストすることができる。第２ＩＳＰ１８のような他のＩＳＰもまた、インターネット１０に接続されている。第３ユーザ端末２０は、第２ＩＳＰ１８に接続されて図示されている。３つのユーザ端末しか示されていないが、本発明の並行ユーザの数は後述の実用可能な詳細を条件として無制限であることを注記する。
この技術分野で公知であるように、コンテンツプロバイダもまたインターネット１０に接続されている。第１コンテンツプロバイダ２２は、ある一定の種類のコンテンツ、例えばスポーツのスコアとハイライトを提供するものでもよい。第２のコンテンツプロバイダ２４は、他の種類のコンテンツ、例えばビジネスニュースを提供するものでもよい。
従来、（第１ユーザ端末１２を使用しているユーザのような）ユーザが第１コンテンツプロバイダ２２によって提供されているコンテンツにアクセスすることを希望すると、端末１２は、第１コンテンツプロバイダ２２を直接問い合わせることになる。要求メッセージは、端末１２からインターネット１０を経由してコンテンツプロバイダ２２へと伝搬することになる。コンテンツプロバイダ２２は、インターネット１０を経由して端末１２へ希望されているデータを送り返すことになる。
図１では、いくつかの配信または“ミラー”（“mirror”）サイトが、インターネット１０に接続されて示されている。第１配信サイト２６は、第１ユーザ端末１２からの少数の“ホップ”を配置されてもよい。第２配信サイト２８は、第１ユーザ端末１２からさらに遠く離れて配置されていてもよいが、、第３ユーザ端末２０の近くに位置していてもよい。第３配信サイト３０は、第２配信サイト２８が第３ユーザ端末２０に近いのと同程度に第３ユーザ端末２０の近くにあってもよい。前記したように、“地理的に”互いに近いユーザおよびプロバイダもしくは配信サイトは、インターネット上で“電子的に”互いに近くないことがある。ユーザとプロバイダまたは配信サイトとの間の“電子的な”（“electronic”）距離を減なくすることによって、その上をデータが移動しなければならないネットワーク接続およびルータの数は、減少させることができる。
上述したように、スマートミラー化システムは、上記ネットワークの問題の発生率を減少させることによって、ネットワークパフォーマンスを改善する役割を果す。いくつかのケースでは、本発明のネットワークのテスト手順は、さらに長い経路の方がより短い経路より優れたスループット（throughput）を提供することがあることを示すが、パケット損失および遅延の問題は、一般的には、データがその上を移動しなければならないネットワーク接続の数を削減することによって軽減される。ネットワークのケーブルにおいては、パケット損失はほとんど発生せず、かつ、本来遅延はまったく生じない。したがって、典型的には、それは過剰負荷になっているネットワークの記憶装置とルーティング装置とによって引き起こされている。本発明のスマートミラーサイトは、各ユーザに電子的に近くに位置しているため、パケット損失および遅延は削減される。過剰なサーバ活用の問題は、多種多様な配信サイトが典型的には単一サーバによって処理されていたであろう負荷を共用するので、削減される。別々の場所にあるパラレルの配信サイトから検索されるデータが通常同じネットワークリンク上を移動する必要がないため、ネットワーク・インフラストラクチャの相対的に低い容量は、より問題になりにくい。
この発明を説明するため、配信サイトは、配信のためにソフトウェアコードのようなデータまたはその他のファイルを記憶することもできるネットワーク上の“ノード”（“node”）であるものとする。この用語は、また、ミラーサイト、コンテンツプロバイダおよびビデオストリームもしくはウェブサイトの一斉送信（broadcast）用サーバを含む、データ配信に対応することができるサイトを含み得る。
システムでは、ミラーサービスプロバイダ（ＭＳＰ（mirror service provider））３２が、インターネット１０に接続されている。配信サイト２６、２８および３０の分散と、ユーザ端末１２、１６および２０からの元のサイトおよび配信サイトへの要求の割当とで、管理機能を実行するＭＳＰ３２は、インターネット１０上でデータを送信しかつ受信することができるデータベースを含む。
この管理機能は、ユーザ端末１２上の記憶媒体（つまり、ランダムアクセスメモリ）内で実行されるコンフィギュレーション・ユーティリティ３４およびクライアント・プログラム３６の使用によって容易にされる。コンフィギュレーション・ユーティリティ３４およびクライアント・プログラム３６は、第１ユーザ端末１２だけの一部として図１に示されているが、端末１６および２０のようなこのシステムに加入している任意のユーザ端末がこのようなソフトウェアを使用することになると認識すべきであることを注記する。このシステムに加入することを希望するユーザは、コンフィギュレーション・ユーティリティ３４およびクライアント・プログラム３６を含むソフトウェアを、ＭＳＰ３２から直接的に、あるいは、従来の小売経路、もしくは（コンピュータのブラウザもしくはオペレーティングシステムの一部であるような）他の経路を通して入手することができる。この本発明が説明されている実施の形態においてコンフィギュレーション・ユーティリティ３４によって実行される機能は、ブラウザまたはその他のネットワークアプリケーションのような一般的なインターネットアプリケーションソフトウェアの中に統合することができることを注記する。スタンド−アロン・プログラムは必要ではない。
好ましい実施の形態においては、コンフィギュレーション・ユーティリティ３４は、ユーザ端末１２がシステムへのアクセスを得る前に、コマンドによってか、または、自動的かによって、ユーザにより実行されなければならない。コンフィギュレーション・ユーティリティ３４の動作は、図２に詳細に示されている。
コンフィギュレーション・ユーティリティ３４は、最初にユーザ端末１２上で実行されるとき、ＭＳＰ３２（図１）から配信サイトファイルを検索する（ステップ４０）。ユーザがすでに配信サイトファイルを持っており（例えば、それがコンフィギュレーション・ユーティリティ３４を使って受け取られ）、かつ、その配信サイトファイルが十分に新しい場合、配信サイトファイルは、ユーザ端末１２のローカルハードディスクから検索することができる。この配信サイトファイルには、（配信サイト２６、２８および３０のような）すべての利用可能な配信サイトのリストと、ユーザ端末１２で実行されるネットワークのテストのリストとが含まれている。本発明のコンテキストでは、２つほど少ない配信サイト、あるいは、ユーザの数がそれを正当化する場合には数千ほど多い配信サイトがあり得る。原則的にはサイト数は無制限であり、それぞれの利用可能な配信サイトが配信サイトファイルに表されている。
配信サイトファイルは、ＭＳＰのコンピュータシステム内からデータベースによって作成される。データベースのアプリケーションは、ユーザについての情報を使用し、実行すべき最適なテストを動的に決定する。その結果、配信サイトファイルは、存在するあらゆる配信サイトに対するエントリを含む必要はない。つまり、そのリストは、適切または実行可能と考えられるサイトだけを含むように調整することができる。
当初、配信システムのユーザ用のテスト・コンフィギュレーションにおける実行時間の変動の規模は低い。つまり、ユーザの第１グループは、すべて本質的には同じテストを実行する。しかしながら、配信サービスが発達するにつれて、各ユーザのテストの激しさは、ネットワーク全体でテストする規模の増加を埋め合わせるために削減される。テストの範囲およびテストされる配信サイトの数は、両方とも、ネットワークテストの総計負荷をさらに削減するために狭めることができる。
ある実施の形態においては、配信サイトファイルは、一般的に以下のようなフォーマットを有するものとなる。
１．ファイル改訂番号およびメッセージ。ファイルは、コンフィギュレーション・ユーティリティ３４の新しいバージョンが利用できるかどうかを判断するために、このフィールドを有する。配信サイトファイルの改訂番号がコンフィギュレーション・ユーティリティのためのバージョン番号より高い場合、コンフィギュレーションは許容されていない。代わりに、ユーザは、コンフィギュレーション・ユーティリティ３４のさらに新しいバージョンを取得するようにプロンプトを出されることになる。ここに説明されているようなファイル改訂の検証は、もっともアップ−トゥ−デートな配信サイト選択アルゴリズムがコンフィギュレーション・ユーティリティ３４によって生成されているテストデータに適用されることを保証する。
２．利用可能なスマートミラー配信サイトのリスト。それぞれの利用可能な配信サイトに関し、以下の情報が提供される。
ａ．ホスト名。“www.server.com”という公知のインターネットフォーマットによる。
ｂ．ＩＰアドレス。公知のフォーマットでの数値のインターネットアドレス。このアドレスは、現在では、w.x.y.zという形の３２ビットの数値であり、この場合、ｗ、ｘ、ｙおよびｚは、それぞれ０から２５５の範囲内にある。
ｃ．代替名。“第１ミラーサイト”のような非公式の名称。
ｄ．実行されるテストのリスト。それぞれのテストに対し、以下の情報が提供される。
ｉ．テストＩＤ。各種テストは、コンフィギュレーション・ユーティリティ３４に既知であるユニークな識別子を有している。
ｉｉ．重み付けファクタ。各テストは、指定されたパーセンテージ分だけ、重み付けされることになる。
ｉｉｉ．頻度。各テストは必ずしも毎回実行される必要はない。このフィールドは、どの程度頻繁にある特定のテストが実行されるのかを求める確率を指定する。
ｉｖ．追加情報（オプション）。ある一定のテストに対し、追加情報が必要とされることとしてもよい。
ｅ．サイト優先レベル。各サイトには、例えば１と１００の間の重み付け、つまり優先レベルを与えることができる。後述するように、ＭＳＰのデータベース内の総計データは、単一ユーザの瞬間的なエンド−ツー−エンドのテストだけでは可能ではないネットワーク使用の分析を実行するために使用される。ここで規定されている重み付けファクタは、サービスプロバイダのデータベースから受け取られるテスト結果をを取り入れるために使用される。いったん所定の最大使用レベルに到達すると、この重み付けファクタは、また、新規ユーザの配信サイトへの割当を制限するためにも使用される。
ｆ．テストサイトのフラグ。このフラグがイネーブルされると、前記テストが実行されるが、サイトは、たとえそれが最良のパフォーマンスを生じさせるとしても、配信サイトとして割り当てられないことになる。
ｇ．コンテンツプロバイダのグループ。各サイトは、１つまたは２つ以上のコンテンツプロバイダグループに属し、それによって一定のコンテンツだけをミラー化することができる。ユーザがある特定の配信サイトによってホストされているデータの種類に関心がない場合には、それがテストされる必要はない。
コンフィギュレーション・ユーティリティ３４は、その後、例えば、ユーザの氏名、ｅメールのアドレス、パスワード、モデム速度、および、アクセス制御に関係する情報（例えば、該ユーザが多様な属性のどのレベルを見ることができるのか）などのコンフィギュレーション・プロセスにおいて必要とされる情報の多様な項目に関して、ユーザに問い合わせる（ステップ４２）。アクセス制御メカニズムは、以下により詳細に説明することにする。本発明の一実施形態においては、ユーザから受け取られる情報は、暗号化され、かつユーザ端末１２上のコンフィギュレーション・ファイル内に記憶されている。
それから、コンフィギュレーション・ユーティリティ３４は、ユーザ端末１２が、インターネットに接続しているかどうか判断する（ステップ４２）。接続していない場合、それは接続を始動し（ステップ４４）、または、ユーザにそれを行うようにプロンプトを出す。
それから、一連のネットワークテストが実行される（ステップ４６）。配信サイトファイルに一覧表記されている利用可能なサイトごとに、１回または２回以上のテストを実行することができる。ファイル内のすべてのサイトがテストされる必要はない。
以下のテストの種類は、現在、有効なデータを提供すると考えられている。
１．Ｐｉｎｇ。遠隔のサーバが到達可能であるのかどうか、および、到達可能である場合、低優先順位のメッセージがユーザ端末１２からその遠隔のサーバへの往復を移動するのにどの程度の時間を要するのか、に関する情報を提供する。ｐｉｎｇは、サイトが追加評価に使用できるのかどうかを決める上で有効な簡易テストである。ｐｉｎｇアプリケーションによって戻される過剰時間は、効果的な情報の配信には“低速”すぎる配信システムを排除するために使用することができる。このテストは、テストされている配信サイトの数を削減するために端末によって使用される。
２．Ｔｒａｃｅｒｏｕｔｅ。途中でどのシステムが使用されるのかと各ホップにどのくらいの時間を要するのかとを含む、ユーザ端末１２から遠隔のサーバまでにメッセージがどのルートを取るのかに関する情報を、提供する。Ｔｒａｃｅｒｏｕｔｅは、情報伝達の経路を文書化するために、コンフィギュレーション・プログラム３４によって使用される。結果が異なるいくつかのトレースが、ある特定のユーザから特殊なサーバまでのルートの安定性が許容できないことを示す場合がある。サービスプロバイダのシステムデータベースからの、特定のルートに関して以前に総計されたデータもまた、特殊なユーザ向けの特定の配信サイトを選択するための決定に影響を及ぼすことがある。ルートの安定性は、主要な考慮事項である。
３．逆Ｔｒａｃｅｒｏｕｔｅ。途中でどのシステムが使用されるのかと各ホップにどのくらい時間を要するのかとを含む、遠隔のサーバからユーザ端末までにメッセージがどのルートを取るのかに関する情報を提供する。逆Ｔｒａｃｅｒｏｕｔｅは、情報受取りの経路を文書化するために、コンフィギュレーション・プログラムによって使用される。結果が異なるいくつかのトレースが、ある特定のサーバから特殊なユーザまでのルートの安定性が許容できないことを示す場合がある。サービスプロバイダのシステムデータベースから特定のルートに関して以前に総計されたデータもまた、特殊なユーザ向けの特定の配信サイトを選択するための決定に影響を及ぼすことがある。再び、ルートの安定性は主要な考慮事項である。
４．動的Ｔｒａｃｅｒｏｕｔｅ。ｔｒａｃｅｒｏｕｔｅまたは逆ｔｒａｃｅｒｏｕｔｅに同様であるが、インターネット上の任意の指定されたコンピュータの対の間。動的Ｔｒａｃｅｒｏｕｔｅは、情報伝達の経路を文書化するためにコンフィギュレーション・プログラムによって使用される。結果が異なるいくつかのトレースが、２つのネットワークの位置間のルートの安定性が許容できないことを示すことがある。サービスプロバイダのシステムデータベースから、特定のルートに関して以前に総計されたデータもまた、特殊なユーザ向けの特定の配信サイトを選択するための決定に影響を及ぼすことがある。上述のように、ルートの安定性は、主要な考慮事項である。
５．ネームサーバ解像度遅延（Name Server Resolution Delay）。数値インターネットアドレスが未指定である場合、ネームサーバのルックアップが実行され、どの数値アドレスが希望されているホスト名に相当するのかを判断する。このプロセスは、かなりの量の時間を要する場合がある。
６．スループット（Throughput）。サンプルファイルは、遠隔のサーバからダウンロードされるか、または、部分的にダウンロードされ、毎秒バイト単位で実際のスループットを求める。
７．スループット変動（Throughput variation）。サンプルファイルは、遠隔のサーバからダウンロードされるか、または、部分的にダウンロードされ、スループットが相対的に不変であるのか、または、浮動しているのかを判断する。
８．誤り率。サンプルファイルは、遠隔のサーバからダウンロードされるか、または、部分的にダウンロードされ、伝送が伝送誤差を受けるかどうかを判断する。この情報は、ユーザに戻されるエラーメッセージパケットの数を数えることによって得られ、それによってユーザからサーバへの誤り率を習得し、および、転送されたバイト数の分数として受信されたバイト数を追跡調査し、それによってサーバからユーザへの誤り率を習得する。
９．パケット断片化（PacketFragmentation）。サンプルファイルは、遠隔のサーバからダウンロードされるか、または、部分的にダウンロードされ、伝送が、断片化または故障しているパケットの受信にさらされるかどうかを判断する。
１０．容量問い合わせ（Capacity Query）。遠隔のサーバがこのように作動されている場合、コンフィギュレーション・ユーティリティ３４は、その伝送容量およびその平均負荷を求めるためにサーバに問い合わせる。この情報は、ほぼすべてのインターネットサーバによってサポートされている簡易ネットワーク管理プロトコル（“ＳＮＭＰ”（Simple Network Management Protocol））を介して収集される。
１１．巨視的ネットワーク分析（Macroscopic Network Analysis）。ＭＳＰデータベースによって蓄積されているデータは、ネットワーク動作の大局的なビューを提供する。この情報により、スマートミラーシステムのユーザは、利用可能な配信サイトのパフォーマンスの履歴的な表示を見ることができる。該蓄積データは、すでにパフォーマンスの衰えを経験している領域での使用の重視をやめる一方で、ネットワークの高容量領域での使用を重視する目的でネットワークパフォーマンスを分析するために、配信システムのデータベースにより操作される。
前記テストのそれぞれがどのように実行されるのかに関する情報は、ネットワーク分析の技術分野では周知である。例えば、Bob QuinnおよびDave Shuteのウィンドウズ・ソケット・ネットワーク・プログラミング（Windows Sockets Network Programming）（アディソン−ウェズレイ（Addison-Wesley）、１９９６年）を参照のこと。本発明の一実施形態においては、テストは、サーバが到達可能であるかどうかを検証するための“ｐｉｎｇ”テスト、一連の小さい（例えば、２０Ｋ）ダウンロード、一連の大きい（例えば、２００Ｋ）ダウンロード、および、配信経路を文書化するための“ｔｒａｃｅｒｏｕｔｅ”テストと“逆ｔｒａｃｅｒｏｕｔｅ”テストを実行することによって達成される。
ｔｒａｃｅｒｏｕｔｅ情報は、テストデータをそのデータベースにおける情報に相関付けるためにＭＳＰ３２によって使用される。そのようにして、特に不良なネットワークリンクおよびサーバが識別できる。このような情報は、前述した配信サイトファイルに提供される。ある特定のリンクまたはサーバが信頼できないことが分かっている場合、他のユーザから得られた情報に基づいて、個々のユーザは、たとえ単一のテストが良好な結果を出したとしても、それから離れてルーティングされるものとすることかできる。
短いダウンロードは、サーバ容量を求めるために使用される。ネームサーバ解像度遅延は、データ送信を開始するために要する時間と同様に、、このようなテストによって決定することができる。もっと後の結果は、サーバ負荷、容量およびパフォーマンスに強く関係している。
長いダウンロードによって、コンフィギュレーション・ユーティリティ３４は、パケット損失、ネットワーク輻輳およびサーバ活用がどのようにファイル配信に影響を与えるのかを判断できることになる。単一ユーザからのテストの結果に基づき、前記ファクタのどれがパフォーマンスの低下を引き起こしているのかを判断するのは理想的ではない。ただし、ＭＳＰ３２によって維持されているデータベースに記憶されているような総計中のこのような結果が、根本的な原因を示す。
テスト結果のいくつかが、それ以外のテスト結果とともに使用されてもよいことに注意する必要がある。例えば、容量問い合わせを通して決定される配信サイトに対する負荷は、サーバの負荷特性を仮定すると、平均予想ダウンロード時間を引き出すために、スループットテストの結果によって分割される。
すべての指定されたテストが実行された後、結果が収集され、かつ、処理される（ステップ４８）。一定のテストが無事に実行できなかったと考えることは可能である。このようなケースでは、結果は、適切な最悪ケースの値（例えば、ゼロ・スループットまたはきわめて大きい遅延）を示すはずである。
コンフィギュレーション・ユーティリティ３４が実行されるたびに、可能なすべてのテストが実行されるわけではないことに注意することが重要である。多数のユーザがシステムを使用しているとき、テスト手順だけによっても、サーバとネットワーク容量の多大な流出が生じ、前述したネットワークパフォーマンスの連続的下降を増大することになる。
上述したように、テストの頻度数は、テストを実行しているユーザの数を動的に制御する目的で、配信サイトファイル内に記憶される。コンフィギュレーション・ユーティリティ３４によって実行されるテストは、どの配信サイトがある特定のユーザへのデータの配信にもっともよく適しているのかを決定する上で統計的な信頼を達成するために実行される。統計的な信頼は、ユーザの小さいサンプルを十分によく試験し、かつ、そのデータを配信サイトの選択肢に影響を及ぼすために使用することによってか、あるいは、多数のユーザにいくつかの利用可能なサイトをそれぞれ“軽く”（“lightly”）テストさせ、そのデータを総計の中で使用することによって、得られる。
したがって、システムが最初に使用されるとき、相対的に小さい数のユーザがシステムに“登録”される（enrolled）。ＭＳＰ３２によって維持されている配信サイトファイルは、それらの条件を反映し、かつ、各ユーザに、相対的に激しく（コンフィギュレーション・ユーティリティ３４を通して）ネットワークをテストすることを要求する。ユーザ数が増加するに従い、配信サイトファイルは、各ユーザによって実行されるテストを軽減するために修正される。非常に多数のユーザがシステムを使用する時までは、コンフィギュレーション・ユーティリティ３４は、大部分は（上述したように、“ｐｉｎｇ”型（“ping”-type）のテストによって）配信サイトの到達性に関し試験するとともに、おもに他のユーザによって提供されかつＭＳＰ３２によって維持されているデータベースに記憶されているテストデータを信頼する。ただし、多くのユーザがシステムをテストしている時でも、少数のユーザ（例えば、５０００分の１）がテストの包括的なセットを実行するために選択されてよい。
好ましくは、テストは、総サーバ負荷の約５%を超えて寄与してはならない。この目標に到達するための1つの方法が、多数のサーバを軽く（lightly）テストし、適切なパフォーマンスを有する配信サイトのグループを生じさせることである。すると、この配信サイトのグループは、データを検索するためのローテーションで使用することができる。グループ内の配信サイトのそれぞれのためのマルチメディア・クリップの実際のダウンロード時間に関する情報は、後述するように蓄積され、その後、配信サイトパフォーマンスに関する追加情報は、追加の即座テストを必要としなくても、透明的（transparently）にＭＳＰ３２へ供給することができる。
これにより、収集されたテスト結果およびＭＳＰ３２によって配信サイトファイルの中に提供された情報に基づき、コンフィギュレーション・ユーティリティ３４は、との配信サイトまたは配信サイトのグループがユーザ端末１２にとって最良であるのかを決定する（ステップ５０）。この決定は、実行される多用な試験を重み付けし、かつ、サイトごとにスコアを比較することによって、数値的に下すことができる。
好ましい本実施形態においては、配信サイトおよびユーザの数が比較的に少数である低トラフィック（low-traffic）環境で使用するために、コンフィギュレーション・ユーティリティ３４は、おもに、利用可能な配信サイトごとのｐｉｎｇテストおよびスループットテストに頼る。初期のｐｉｎｇテストは、配信サイトが到達可能であるかどうかを判断するために実行される。短いダウンロードおよび長いダウンロードが、スループットテストで実行され、配信サイトからの最大スループットおよび最小スループットを求め、および、スループット変動がビデオデータの伝送に対処できるほど十分に小さいかどうかを判断する。したがって、それらのテストにはすべて高い重みが与えられている。ｔｒａｃｅｒｏｕｔｅのような他のテストを実行することができ、かつ、その結果は、配信サイトの選択で役割を果さないでＭＳＰ３２に報告することができる（このような他のテストには、例えば、ゼロまたはほぼゼロの重みを与えることができる）。システムのサイズが大きくなるとともに、追加の配信サイトおよびユーザが登録されるに従って、変化を遂げるネットワーク状態を反映するために、サイトの選択方式を、配信サイトファイルのコンテンツを変更することによって変えることができる。
本発明の一実施形態においては、ユーザの位置とテストされている各サイトの（地理的および電子的の両方の）位置がユーザ端末１２に接続されているモニタ上に表示できるように、所有権のグラフィックインタフェースが提供され、サイト間の相対的な距離の視覚的な表示を可能にする。一実施形態においては、そのディスプレイは、その上でユーザ端末１２と配信サイトが関連する地理的な地域のマップ上に重畳されている“ブリップ”（“blips”）として表示される“レーダー・スクリーン”（“radar screen”）の形で示されている。ユーザに、アプリケーションを使用し、かつ、さらにネットワーク全体のデータを提供するように促すために、ユーザインタフェースは、ユーザが追加のパフォーマンステスト用の“暫定”（“ad-hoc”）テストサイトを入力できるようにする。このケースでは、コンフィギュレーション・ユーティリティは、デフォルトのウェブページファイル（例えば“index.html”）またはユーザによって要求されている特殊なファイルのどちらかをテストすることになる。ユーザによって選択されているサイトからの分析結果は、その他のサイトからの結果との妥当な比較を行うことができるように調整される。
コンテンツプロバイダの複数のグループに対応するために、配信サイトの多種多様なセットを本発明によって維持できることに注意する必要がある。各コンテンツプロバイダは、一定のサイトだけでミラー化されることとしてもよい。したがって、配信サイトのユニークなセットを有するコンテンツプロバイダごとに、一次配信ファイルがコンフィギュレーション・ユーティリティ３４によって選択される。これを達成するために、前記テストを一度実行することができ、その後、一実施形態においては、数値重みを配信サイトのそれぞれの適切なセットに適用することができる。コンテンツプロバイダのグループごとに１つ、複数のスマートミラーサイトが選択される。コンテンツプロバイダのグループは、配信サイトファイルにおいて指定される。それぞれの考えられる配信サイトは、１つまたは２つ以上のコンテンツプロバイダグループに属しているとして識別される。コンテンツプロバイダグループが使用されるとき、２つのグループしかないことがある。最大数は、本来、無制限である。
配信サイトの優先順位が付けられている格付けもまた作成しかつ維持することができることに注意する必要がある。これが実行される場合、１次スマートミラーサイトが応答できないと、システムは次に高い順位が付けられているスマートミラーサイトに後退することを許容される。
スマートミラーサイトが選択された後、一定のデータが、ｅメールまたはその他のインターネット電子プロトコルを介してＭＳＰ３２に送信されることになる（ステップ５２）。ユーザに照会することによって受け取られる情報、選択されたスマートミラーサイトの識別情報、および、各テストが実行された時刻と日付を含む、すべての未処理テストデータと結果が（ある実施の形態では暗号化されている）テキストファイルにコンパイルされる。ＭＳＰ３２によって受信されると、データは、システムを管理しかつ分析する上で使用するためのデータベースに記憶される。
最終的に、コンフィギュレーション・ユーティリティ３４は、配信サイトの各セットごとのために選択されたスマートミラーサイトの識別情報または（暗号化されている）コンフィギュレーション・ファイルに従って優先順位が付けられているリストを保存する（ステップ５４）。コンフィギュレーション・ユーティリティは、また、テストされた各配信サイトごとの相対的なパフォーマンスに関する情報も保存することとしてもよい。クライアント・プログラム３６は、適切なスマートミラーサイトからデータファイル（ビデオクリップまたはその他のコンテンツ）をダウンロードするために暗号化されているコンフィギュレーション・ファイルを使用する。
システムの運用では、ＭＳＰ３２が一定の機能を実行することに注意する必要がある。ＭＳＰ３２は、配信サイトのリストを維持し、必要に応じてサイトを追加し、かつ、削除する。ＭＳＰ３２は、また、コンフィギュレーション・ユーティリティ３４を実行しているユーザから、ｅメールまたは他の手段によって受け取られる情報を格納するネットワークパフォーマンスに関するデータベースも維持する。大量のデータが多数のユーザから受け取られるので、データベースは、インターネットのパフォーマンスとその他の特性、および、その部分に関する貴重な情報を提供することができる。このような情報を運営するためには、多様なデータ処理技術が知られている。
本発明で使用される配信サイトの位置は、究極的には、マーケティングの考慮事項およびコスト／利益の分析を含む数多くのファクタによって決定される。しかしながら、ＭＳＰのデータベースに記憶されているデータは、インターネットまたはそれ以外のネットワーク上の与えられた位置に配信サイトを配置する有用性を確認することができる。一実施形態においては、サーバは、各主線（major backbone）（単一の企業によって維持されているインターネットの部分）の上に、および、地域ベル電話会社（“ＲＢＯＣｓ”（Regional Bell Operating Companies））によって運用されている主要回線のような多数のユーザにサービスを提供している他のインターネット回線上に、配置される。多数のユーザにサービスを提供し、または、激しいビデオ配信トラフィックを有する一定のネットワークでは、サーバは、各ユーザが高速サーバにアクセスすることを確実にするために、ネットワークのための主要な接続点（“ＰＯＰｓ”（Points of Presence））に配置することができる。
いったんコンフィギュレーション・ユーティリティ３４が実行されると、ユーザは、システムを使用し、データファイル、具体的にはビデオクリップ、音声クリップ、ソフトウェアプログラムおよびその他のコンテンツの受信をイネーブルし、かつ、容易にすることができる。
時間が経過するとともに、ユーザのインターネットの領域の使用パターンが変化するにつれて、ユーザは、自分のユーザ端末１２に対応しているスマートミラーサイトのパフォーマンスに満足できなくなる可能性がある。それが起こると、ユーザはコンフィギュレーション・ユーティリティ３４を自由に再実行する。そのときまでに、追加配信サイトがサービスとして稼動されているか、あるいは、別の先に存在していたサイトが以前に割り当てられたサイトより良好に実行動作をする可能性がある。さらに、選択されたスマートミラーサイトが十分に実行されていない（例えば、それが１０回の試行の内３回失敗した）とプレーヤー・プログラム３６が判断すると、プレーヤー・プログラム３６は、ユーザにコンフィギュレーション・ユーティリティ３４を再実行するようにプロンプトを出すことができる。本発明の他の実施の形態では、テストおよびミラーの割当てが、スマートミラーサービス上でのファイルに対する各要求で、または、各別の要求、３回目の要求、１０回目の要求もしくは１００回目の要求のたびのように、なんらかの間欠時間で、自動的に実行される。
本発明の一実施形態では、スマートミラーシステムは、ウェブページ上で参照されているビデオクリップまたは音声クリップ（“クリップ”（“clip”））をそこからダウンロードする配信サイトの位置を突き止めるために使用される。この実施の形態においては、クライアント・プログラムは、“プレーヤー・プログラム”と呼ばれるか、“プレーヤー・プログラム”と見なすことができる。プレーヤー・プログラムは、クライアント・プログラム３６の機能を実行することに加え、ビデオデータの検索およびプレーバックも可能にする。通常、ブラウザ・プログラム３８は、ウェブコンテンツを表示するためにユーザ端末１２上で実行される。典型的に使用されているブラウザ・プログラムは、ＮＣＳＡ Mosaic、Netscape NavigatorおよびMicrosoft Internet Explorerを含む。ブラウザ・プログラム３８によって、ユーザは、インターネット上の多様なウェブサイトの間でホットリンクをすることができる。
ＥＭＢＥＤタグは、ＨＴＭＬ文書内で使用され、どのウェブページがシステムによって管理されているコンテンツを含んでいるのかを示す。ブラウザ・プログラム３８がＥＭＢＥＤタグを含むウェブページを受け取ると、そのタグで参照されているファイルのダウンロードが始まるとともに、そのファイルタイプが分析される。ファイルがＭＰＥＧなどのプレーヤー・プログラムによって処理されているタイプである場合、ブラウザ・プログラム３８は、プレーヤー・プログラム３６を開始する。それから、そのタグのコンテンツはブラウザ・プログラム３８によってプレーヤー・プログラム３６に渡される。
プレーヤー・プログラム３６（図１）は、ＭＳＰ３２によって容易にされているスマートミラー化サービスを提供する。プレーヤー・プログラム３６の動作は、図３に詳細に示されている。
プレーヤー・プログラムは、最初に、ＥＭＢＥＤタグを分析し、「ＳＭ」（スマートミラー）パラメータがあるかどうかを判断する（ステップ６０）。このようなパラメータの存在は、埋め込まれているクリップがスマートミラー化のためにイネーブルされていることを示す。「ＳＭ」パラメータに関連しているデータは、希望されているクリップの発信元である特定のコンテンツプロバイダを指定するとともに、その特定のコンテンツプロバイダが使用するミラーサーバのグループも同様に指定する。
ＥＭＢＥＤタグがシステムによって処理されているビデオクリップまたはその他のコンテンツを参照しているとプレーヤー・プログラム３６が判断する場合（ステップ６２）、コンテンツプロバイダ２２からの埋め込まれているクリップの転送は停止される。それから、プレーヤー・プログラム３６は、存在する場合には、ＥＭＢＥＤステートメントからアクセス制御またはレーティング情報を抽出する（ステップ６４）。このレーティング情報は、ユーザ端末１２に格納されているコンフィギュレーション・ファイルに記憶されている基準レベルに対して比較される（ステップ６６）。レーティング情報がクリップに関し存在しない場合、コンフィギュレーション・ファイルは、以下に規定するように、レートが定められていないクリップが再生されてよいかどうかを判断するために問い合わせをされる（ステップ６８）。前記情報に基づき、プレーヤー・プログラム３６は、希望されているクリップの表示を許可するか、または、拒絶することになる。
プレーバックが許可されると、プレーヤー・プログラム３６が、ユーザ端末１２に属しているローカルコンピュータ上で参照されているクリップを発見しようとする（ステップ７０）。それがそこに存在する場合、それは再ダウンロードされず、（ディスクからまたはＲＡＭから）コンピュータ上で直接再生することができる（ステップ７２）。ただし、ローカルコンピュータでのクリップの作成の時刻および日付は、まず、ネットワークで利用可能なクリップの時刻および日付に付き合わせて検証され、記憶されているクリップが最も最近のバージョンであるかどうかを判断する（ステップ７４）。それが最も最近のバージョンではない場合、記憶されているクリップは破棄され（ステップ７６）、かつ、ダウンロードが以下のように進む。
クリップがローカルコンピュータ上に存在しない場合、プレーヤーは、以下の形式による新たなＵＲＬを作成する（ステップ７８）。すなわち、コンフィギュレーション・ファイルに記憶されている選択されたスマートミラーサイトのＩＰアドレスと、ミラーファイルへのパス名（例えば、“/pub/mirror/”）と、ＥＭＢＥＤステートメントにおける「ＳＭ」のパラメータから取得されるコンテンツプロバイダの名称と、ＥＭＢＥＤステートメントから取得されるファイル名とを、“http://”にプラスする。その構築されたＵＲＬは、コンフィギュレーション・ユーティリティ３４によって選択される適切なスマートミラーサイトから、選択されるクリップを検索するために使用される（ステップ８０）。１つより多いセットの配信サイトが異なるコンテンツプロバイダに存在する場合、「ＳＭ」パラメータは、さらにプレーヤー・プログラム３６によって使用され、構築されたＵＲＬでコンフィギュレーション・ファイルにおけるどのスマートミラーサイトが使用されるのかを決定する（ステップ８２）。本発明の一実施形態では、サイト選択が少なくとも部分的にリダイレクトサーバ（redirection server）によって実行される。この実施の形態は、図４を参照して後に詳述する。
構築されたＵＲＬに対応するクリップがスマートミラーサイトで見つからない場合、または、アクセスできない場合には、ダウンロードは、その後、コンフィギュレーション・ファイル内の次に高い順位のスマートミラーサイト、あるいは、リダイレクトサーバによって選択された次に高い順位の配信サイト（図４を参照のこと）から進む（ステップ８４）。すべての配信サイトが失敗すると、ダウンロードは、ＥＭＢＥＤステートメントによって直接的に指定されているように、元のコンテンツプロバイダのサイトから進む。
プレーバックが禁じられると、プレーヤーはクリップが転送されるのを防止するとともに（ステップ８８）、ユーザに対してダウンロードが許可されないことを忠告するビットマップを表示する（ステップ９０）。
ＥＭＢＥＤタグがシステムによって処理されていないビデオクリップまたはそれ以外のコンテンツを参照しているとプレーヤー・プログラム３６が判断すると、そのプレーヤーは、コンフィギュレーション・ファイル内に設定されているアクセス制御レベルが、ユーザに対し、これらのクリップまたは“レートが定められていない”（“unrated”）と見なされている他のファイルを再生することを許すかどうかをチェックすることになる（ステップ９２）。許すのであれば、そのクリップは、従来の手段によってその元のコンテンツプロバイダ２２から転送され（ステップ９４）、プレーヤー・プログラム３６がダウンロードされたファイルを表示する（ステップ９６）。許されない場合は、プレーヤーは、クリップが転送されるのを防止するとともに（ステップ９８）、ユーザに対し、ダウンロードが許可されていないことを忠告するメッセージを表示する（ステップ１００）。
ダウンロード時、希望されているクリップを表すデータファイルは、ユーザ端末１２に属しているローカルコンピュータ上の指定されているデータ領域内、通常はハードディスク上に記憶される（ステップ１０２）。一実施形態においては、このデータ領域は、プレーヤー・プログラム３６によって最低使用頻度（least-recently-used）を基準として管理することができる。すなわち、データ領域内に新規クリップ用に場所がない場合、最低使用頻度の（または表示されていない）１つまたは複数のクリップを場所を作るために破棄することができる（ステップ１０４）。
本発明の一実施形態においては、クライアント・プログラム３６が、ダウンロードが成功したかどうかを反映するために、ＭＳＰ３２にメッセージを送信することができるものとなっている（ステップ１０６）。このメッセージには、ユーザ端末１２のインターネットアドレス、選択されたサーバセットの識別情報、ダウンロードを達成するために使用されているサイトのインターネットアドレス、失敗したすべてのサイトのインターネットアドレス、ダウンロードされたファイルの名前、および。ファイルをダウンロードするための時間が含まれている。この情報は、また、ファイルのダウンロードを追跡調査するため、および、リアルタイムで任意のスマートミラーサイトに問題があるかどうかを判断するために、ＭＳＰ３２によって使用することもできる。
代わりに、クライアント・プログラム３６は、ファイル転送パフォーマンスの小さいローカルデータベースを維持することができる。それから、各ダウンロードが時間を合わせられることになる。具体的には、サーバが要求されたファイルを送信し始めるのに要する時間、データ転送速度の安定性、および、転送の誤り率に関して情報を集めることができる。なんらかの間隔（例えば、毎週、またはダウンロード１００回につき1度）で、前述したユーザとサーバの情報と同様に、蓄積されたファイル転送パフォーマンスの情報を含むメッセージが（自動的にまたは要求時に）ＭＳＰ３２に送信され（ステップ１０６）、ＭＳＰのデータベースをアップデートする。この追加情報によって、いかなる追加のテスト間接費をも生じさせることなく、ネットワークパフォーマンスに関するＭＳＰの“知識”（“knowledge”）が増加する。
このデータは、配信サイトプロバイダから購入されているサービスの質を評価する目的で、および、システムのコストをサポートするためにコンテンツプロバイダにサービスの質を文書化する目的で、配信サイトのパフォーマンスを把握する上で特に貴重である。しかし、同じ情報の多くは、コンフィギュレーション・ユーティリティ３４を実行している新規ユーザを通して入手することができることが認識される。
本発明の一実施形態においては、ＭＳＰ３２のデータベースから引き出される情報は、そのユーザと潜在的な配信サイトのリストの間のネットワークを試験するために、実際にコンフィギュレーション・ユーティリティを実行する必要なしに与えられたユーザのための配信サイトの改善を予測するのに使用することができる。さらに具体的には、ＭＳＰ３２データベースに含まれている総計ネットワークパフォーマンスデータは、与えられたインターネットＩＰアドレスと異なる配信サイトの数との間のパフォーマンスの差異という点で分析される。この分析に基づき、ユーザのＩＰアドレスと、さらに優れたデータ配信パフォーマンスを提供する配信サイトとの間の相関関係を引き出すことができる。この相関付けられているデータは、配信サイト選択の過程でＭＳＰ３２が活用することができるルックアップテーブルを作成するために使用される。
実際には、リダイレクトサーバがＭＳＰネットワーク内に含まれる。一実施形態においては、リダイレクトサーバの機能が、ＭＳＰ３２サーバ内で実現され、かつ、ＭＳＰ３２サーバによって実行される。代替の実施形態においては、複数のリダイレクトサーバがネットワーク全体の様々な位置で利用されることとしてもよい。
動作中、リダイレクトサーバは、ユーザがＭＳＰ配信システムによって管理されているファイルを要求するときに、ユーザのＩＰアドレスを取得することになる。前述したように、ＥＭＢＥＤステートメントを通してリダイレクトサーバに対する要求がなされる。ＥＭＢＥＤステートメントは、単一のリダイレクトサーバ（例えば、ＭＳＰ３２）を識別して特殊なサーバＩＰアドレスを明示的に参照することができ、あるいは、シーケンスもしくはランダムな順序でアクセスを試みることができる複数のリダイレクトサーバを指定している（例えば、ＪａｖａＳｃｒｉｐｔまたはＪａｖａプログラミング言語の）スクリプトもしくは実行可能なプログラムコードを含むことができる。それから、ＨＴＴＰ（HyperText Transport Protocol）要求が典型的には要求者のアドレスに関する情報を含むので、ユーザのＩＰアドレスは従来の手段を介してサーバによって決定される。それから、リダイレクトサーバが、ユーザのＩＰアドレスをルックアップテーブル内に位置している最適な配信サイトにマッピングし、かつ、配信サイトアドレスをユーザに転送する。それから、ユーザのクライアント・プログラム３６またはリダイレクトサーバは、ファイルが最適な配信サイトから配信されるように、ファイル要求の宛先変更をする。
ルックアップテーブルを設計する上で重要なファクタは、インターネット上の多数のアドレスに由来する。インターネットに接続されているあらゆるコンピュータには、アドレスが割り当てられている。従来のインターネットアドレス指定方式では、アドレスは、規約により４バイトの値から構成され、各バイトを１０進数（０−２５５）に変換し、かつ、バイトをピリオドで区切ることによって表記される。例えば、“www.intervu.net”サーバのアドレスは、192.215.147.185である。このアドレス方式を使用する場合、インターネット上には４０億を超える使用可能なアドレスがあることになる。この技術分野の現行の状態を考慮するならば、４０億のアドレスを含むルックアップテーブルは、大規模過ぎてここに説明されている実施の形態では使用できないため、テーブルを圧縮するための方法が探求された。
最適な配信サイトの選択は、多くの場合、ユーザのＩＰアドレスの第１番目のバイトに相関付けることができることが判明している。この相関関係は、コンフィギュレーション・ユーティリティ３４を実行した後に、同じ第１バイトのアドレスを有している統計的に意味のある数のユーザが、同じ配信サイトまたは配信サイトの小さいグループからの別のサイトを選択するようなものとなっている。これらの配信サイトが、相関付けられていない配信サイトに比較して、同じ第１バイトアドレスを有する大部分のユーザにとって改善されたパフォーマンスを提供することが認められる。相関関係は、本発明の一実施形態において、０−２５５に番号付けされた第１バイトのＩＰアドレスのリストと、各アドレスに対して対応しているＩＰアドレスを有するユーザに改善されたパフォーマンスを提供する配信サイトのリストとを含む、圧縮されたルックアップテーブルが形成されるに充分な、重要なものである。このようにして、１つまたは２つ以上の配信サイトが、アドレスリストの各エントリにマッピングされる。
一定の状況では、ルックアップテーブルにおける第１バイトＩＰアドレスのいくつかは、対応するサーバにマッピングされないことがあることに注意する必要がある。これは、例えば、ほとんどのユーザがテーブル中のある特定のエントリに対応しているＩＰアドレスを持っておらず、かつ、それらの内の十分な数が統計的に重要または信頼できる結果を生じさせるためにコンフィギュレーション・ユーティリティ３４を実行しなかったときのケースが当てはまる。このケースでは、１つまたは２つ以上のデフォルトサーバを、特殊なサーバがルックアップテーブルにおいて識別されていないときに、使用するためのデータベースにおいて指定することができる。
好ましい実施の形態においては、ルックアップリストは、単一リダイレクトサーバ、例えばＭＳＰ３２に記憶される。ただし、ルックアップリストおよび関連するプログラミングは、また、ウェブページのサーバ、コンテンツプロバイダ２２サーバ、または、前記の組み合わせにおいて記憶することもできる。
リダイレクトサーバは、以下のように、また図４に説明されるように、配信サイトを選択するためにアクセスされる（ステップ８２、図３）。ユーザは、そのファイルのＥＭＢＥＤステートメントを有しているリンクをクリックすることによって、ユーザ端末ブラウザを介して、ウェブページ上で参照されているファイルを要求する。そのファイル要求がＭＳＰの配信システムによって管理されているファイルに対してである場合、そのファイル要求は、従来のＨＴＭＬファイル要求意味論、つまりサーバ「ＧＥＴ」を使用して、リダイレクトサーバ（例えば、ＭＳＰ３２）に転送される（ステップ１２０）。
リダイレクトサーバは、到来する要求を調べ、かつ、ウェブサーバによって供給されている“ＲＥＭＯＴＥ＿ＨＯＳＴ”変数を使用してユーザのネットワークアドレス（ＩＰアドレス）を判断する（ステップ１２２）。図４に説明されている本発明の実施形態は、ユーザ端末１２上にインストールされている（クライアント・プログラム３６のような）特殊目的クライアント・プログラムがなくても達成することができることに注意する必要がある。クライアント・プログラム３６がまったくインストールされておらず（ステップ１２４）、かつ、ユーザが、スクリプトまたはダウンロードされたプログラムによって問い合わされるときに、クライアント・プログラムのインストールを希望しない（ステップ１２６）場合は、サイト選択は完全にリダイレクトサーバによって実行される。
それから、リダイレクトサーバは、ユーザのＩＰアドレスを分析するとともに、ルックアップテーブルの潜在的な配信サイトのリストを調べ、１つまたは複数のどの配信サイトがユーザのＩＰアドレスと相関付けられているのかを判断する（ステップ１２８）。それから、リダイレクトサーバは、１つ以上のアドレスがユーザのルックアップテーブルのエントリに一致する場合、配信サイトアドレスを選択する（ステップ１３０）。単一の配信サイトアドレスが見つかったときは、ＨＴＴＰリダイレクト応答が、選択された配信サイトからファイルを配信するために使用される（ステップ１３２）。ＨＴＴＰ仕様に従って、あるサーバから要求されているファイルは、ユーザまたはクライアント・プログラムのいかなる介入をも要せずに、そのサーバによって別の位置に宛先変更することができる。これでサイト選択は完了する（ステップ１３４）。トランザクションを完了するためには、クライアント・プログラムが選択された配信サイトからファイルのコピーを要求し、かつ、配信サイトサーバが該ファイルを検索するとともにそれをユーザに配信する。
ユーザがクライアント・プログラム３６のインストールを希望する（ステップ１２６）場合には、そのプログラムは従来の手段によってダウンロードされ、かつ、インストールされることになる（ステップ１３６）。クライアント・プログラム３６がすでにインストールされていた場合（ステップ１２４）、あるいは、インストールがちょうど完了したところである場合、ファイル要求は違うように進み、サーバ側とクライアント側両方の処理を活用し、考えられる最も効率的な方法でファイルを検索することができる。
第１に、リダイレクトサーバは、ユーザのＩＰアドレスを分析し、かつ、ルックアップテーブルの潜在的な配信サイトのリストを調べ、１つまたは複数のどの配信サイトがユーザのＩＰアドレスと関連付けられているのかを判断する（ステップ１３８）。ルックアップテーブルを格納しているリダイレクトサーバが、配信サイトのサブリストを含む小さいファイルを作成し（ステップ１４０）、かつ、これをユーザ端末１２に送信し（ステップ１４２）、および、最終的な配信サイトの選択を行うために、クライアント・プログラム３６に依存すること（ステップ１４４）が考えられる場合もある。これが発生するいくつかの理由がある。
第１に、前述したように、総計ネットワークパフォーマンスデータの分析は、（単一の配信サイトとは対照的に）多くの配信サイトが同じ第１バイトアドレスの範囲を有する一定のユーザに対して改善されたパフォーマンスを提供することを示すことがある。例えば、これは、全員が単一の第1バイトアドレス内で同じ第1バイトアドレスまたはアドレスの範囲を有する数多くのユーザは、コンフィギュレーション・ユーティリティを実行後に異なる配信サイトを選択した場合に発生する。この場合では、クライアント・プログラム３６は、リダイレクトサーバによってダウンロードされているサブリストを取得し、かつ、それをコンフィギュレーション・ユーティリティの実行によって以前に選択された（図３、ステップ５４を参照）ミラーサイトの保存されているリストと比較することができる。一致が見つかると、クライアント・プログラムは、ファイル要求を一致している配信サイトに宛先変更する（ステップ１４６）。これらの配信サイトの１つまたは２つ以上が、特にコンフィギュレーション・ユーティリティが最近実行されていない場合に、以前にコンフィギュレーション・ユーティリティによって選択された任意の配信サイト上で改善されたパフォーマンスを提供することがあるため、クライアントには、また、クライアント・プログラムによってなされた選択を無視するとともに、ルックアップリストに含まれている配信サイトの中から最良の推量の選択を行うというオプションもあることになる。
第２に、ＭＳＰによって管理されている配信サイトおよびＩＰアドレスの数が、ルックアップテーブルが大きくなりすぎて実践的でありえない点まで増加した場合、つまりリダイレクトサーバが以前のファイル要求の代わりにルックアップテーブルを捜索することでビジー状態になるために新しいファイル要求に応答することに遅れる場合にもまた、状況が発生する可能性がある。これが当てはまる場合には、ルックアップテーブルを捜索するというタスクは、リダイレクトサーバとクライアント・プログラム３６との間で分けられる。このようにして、ユーザ端末１２は、処理のいくらかを実行することと、最終的な配信サイトの選択を行うことによってルータとしての役割も果すこととを要求される。
これを達成するため、リダイレクトサーバは、ルックアップテーブルを与えられた範囲のアドレスを含むより小さいサブリストに細分化する。このようにして、リダイレクトサーバがファイルに対する要求を受け取ると、サーバはユーザのＩＰアドレスを、対応するアドレス範囲を含むサブリストにマッピングし（ステップ１３８）、その後、該サブリストを含む小さいファイルを作成し（ステップ１４０）、かつ、ユーザにダウンロードする（ステップ１４２）。それから、クライアント・プログラム３６はルータとしての役割を果たし、ユーザのＩＰアドレスをサブリスト上の適切な相関付けられている配信サイトアドレスにマッピングするか、あるいは、サブリスト上の配信サイトと前述したようにネットワークパフォーマンステストを以前に実行した後にコンフィギュレーション・ユーティリティ３４によって保存された優先順位が付けられているサイトのリスト上の配信サイトとの一致を探すことによって、サブリストのルックアップテーブルにおける配信サイトの中から配信サイトを選択する（ステップ１４４）。クライアント・プログラムがいったん配信サイトを選択すると、そのクライアント・プログラムは、選択された配信サイトへファイル要求を宛先変更する（ステップ１４６）。リダイレクトサーバとユーザ端末１２の間で作業を分割することによって、ファイル要求をより迅速に処理することができ、それによってユーザがファイルを要求する時刻とファイルがユーザ端末１２によって受け取られる時刻との間の遅延を減少させる。
ＭＳＰ３２のリダイレクトルックアップテーブルは、ネットワークパフォーマンスの変化に応じて頻繁にアップデートされるが、ユーザに渡されているサブリストは、少なくとも数日間は満足の行くものであることが予想される。したがって、クライアント・プログラム３６は、新しいサブリストを取得する前の数日間、該リストを再利用することができる。この機能は、例えば、ファイル要求ステートメントをホストするウェブページに埋め込まれているスクリプトによって実現することができる。そのスクリプトは、ユーザ端末１２に記憶されているサブリストにおいて符号化されている満期日に関してクライアント・プログラム３６に問い合わせることができる。満期日およびサブリストのタイプは、リダイレクトサーバに戻すことができ、かつ、必要ならばサーバが新しいサブリストを回送することになる。
ある特定のユーザがＭＳＰ配信システムによって管理されているファイルを要求することとしてもよく、システムがそのユーザに関する知識を持っていない（つまり、ユーザのＩＰアドレスとルックアップテーブル中の配信サイトの間で一致がまったく見つからない）ことが可能である。この場合、リダイレクトサーバは、リダイレクトサーバに格納されているデフォルトリストからそのユーザ向けの配信サイトを選択することになる（ステップ１３０および１４４）。ユーザがこの配信サイトから要求されているファイルをダウンロードすると、そのユーザは、埋め込まれているスクリプトまたはプログラムにより、コンテンツ配信を改善する目的でＭＳＰ３２からコンフィギュレーション・ユーティリティファイルを取得するようにプロンプトを出されてもよく、あるいは、コンテンツ配信の改善のための近似（approximation）である（例えば、類似しているが同一ではない第１バイトＩＰアドレスの）サーバを一時的に割り当てられることになる。ユーザがコンフィギュレーション・ユーティリティを取得し、かつ、実行すると、ユーザ端末１２は、前述したように、ＭＳＰ３２に多様なネットワーク試験の結果を提供し始め、この情報は、究極的にはネットワークパフォーマンスデータのＭＳＰデータベースの一部となる。このようにして、その新しいユーザからの次のファイル要求時には、リダイレクトサーバは、追加ネットワークパフォーマンスデータの分析に基づき、該ユーザのＩＰアドレスをさらに適切なサーバにマッピングすることになる。
ルックアップテーブルを変更することによって、リダイレクトサーバは、また、ファイル要求に関して負荷の配分と管理も実行することができる。ＭＳＰ３２（またはＭＳＰ３２を制御している個人）が、ネットワークのセクションがある時間の間ダウンするだろうと事前に判断する場合、あるいは、一定の配信サイトがある時間の間シャットダウンされなければならない場合、リダイレクトサーバがユーザの注意を代替の配信サイトに向けるように、ルックアップテーブルを修正することができる。したがって、同じファイルに対する２つの連続する（back-to-back）要求時には、ユーザは２つの異なる配信サイトに向けられてよいこととするのも可能である。
ルックアップテーブルのサブリストを含むファイルが、コンフィギュレーション・ユーティリティ３４によってネットワークテストを実行するために使用される配信サイトファイルとして機能することができることが理解される必要がある。そのサブリストは、以前にネットワークテストを実施したことのある他のユーザのグループから引き出される総計ネットワークパフォーマンスデータにより、パフォーマンス改善があるかどうかすでに審査された配信サイトを表す。この配信サイトのサブリストは、リストに対してコンフィギュレーション・ユーティリティ３４を実行し、かつ、過去の配信サイトファイルから保持されているネットワークテストのシーケンスを実行することによって、さらに切り詰める、または、優先順位を付けることができる。いったんサブリストに優先順位が付けられると、コンフィギュレーション・ユーティリティ３４は、前述したように（暗号化されている）コンフィギュレーション・ファイルに従って、リストを保存する。
以下の例示的な説明において、スマートミラーシステムは、ウェブページの広告の見出しに参照されているビデオクリップのダウンロード元の、改善されている配信サイトの位置を突きとめるためにルックアップテーブルを活用する。広告のような相対的に人気のないコンテンツを取り扱うときには、潜在的な顧客が興味を失わないように、意図されている顧客に広告の内容を可能な限り迅速に配信することが重要である。ウェブページの広告見出しの内容に関しては、同じことが当てはまる。つまり、事前に相当量のソフトウェアをダウンロードする必要なしに、顧客にビデオを可能な限り迅速に配信することができることが望ましい。したがって、高価なサービスとして本発明を活用することの代替策として、サービスプロバイダは、インターネットを経由してウェブページに広告見出しを拡布することができる。各見出しはビデオクリップを参照し、それらクリップのすべてがその目的のために確立されているコンテンツプロバイダのサーバで格納されることになる。
この例では、クライアント・プログラム３６は、“プレーヤー・プログラム”と呼ばれるとともに、それは、前述したように、ビデオデータを検索し、かつ、プレーバックする追加機能性を有している。（Netscape NavigatorまたはMicrosoft Internet Explorerのような）ブラウザ３８は、ユーザ端末１２でウェブコンテンツを表示するため、および、ユーザ端末１２とインターネット１０上のその他のコンピュータとの間で通信するために、使用される。
クライアントがウェブページに表示されている広告見出しを選択すると、その見出し中に符号化されているＥＭＢＥＤタグがブラウザによって調べられる。ブラウザが、ＥＭＢＥＤタグによって参照されているファイルのダウンロードを開始し、かつ、ファイルのタイプが分析される。ファイルがＭＰＥＧなどのプレーヤー・プログラムによって処理されているタイプであれば、ブラウザはタグをプレーヤー・プログラムに渡すことによってプレーヤー・プログラムを始動する。プレーヤー・プログラムは、ビデオクリップのファイル名がないかＥＭＢＥＤタグを調べ、かつ、ユーザ端末に属しているローカルコンピュータ上でそのクリップを見つけようとする。そのクリップがそこに存在する場合、それは再ダウンロードされず、（ディスクからまたはＲＡＭから）コンピュータ上で直接再生することができる。そのビデオクリップがローカルコンピュータ上にない場合は、プレーヤー・プログラムはＥＭＢＥＤタグを分析し、「ＳＭ」（スマートミラー）パラメータがあるかどうか判断する。このようなパラメータの存在は、埋め込まれているクリップがスマートミラー化のためにイネーブルにされていることを示す。ＳＭパラメータは、さらに、特定のコンテンツプロバイダが使用するミラーサーバのグループと同様に、リダイレクトサーバのアドレスと、上述したように希望されているクリップの発信元である特定のコンテンツプロバイダとを指定する。
プレーヤー・プログラムがリダイレクトサーバを指定しているパラメータを認識すると、プレーヤー・プログラムはブラウザを呼び出し、参照されている広告見出しファイルを従来のＨＴＭＬファイル要求技術によってリダイレクトサーバから要求する。リダイレクトサーバは到来する要求を調べ、かつ、クライアントのＩＰアドレスを判断する。リダイレクトサーバは、クライアントのＩＰアドレスをルックアップテーブルにマッピングするとともに、配信サイトアドレスまたはサブリストを検索する。配信サイトアドレス（または配信サイトとＩＰアドレスのサブリスト）は、リダイレクトサーバによってプレーヤー・プログラムに戻される。サブリストが戻されると、前述したように、プレーヤー・プログラムは、一覧表示されているサイトの中からただ一つの配信サイトを選択する。ただ一つの配信サイトがいったん決定されると、プレーヤー・プログラムは、“http://”に、選択された配信サイトのＩＰアドレスと、ファイルをミラー化するためのパス名（例えば、“/pub/mirror/”）と、ＥＭＢＥＤステートメントにおける「ＳＭ」パラメータから取得されるコンテンツプロバイダの名前と、ＥＭＢＥＤステートメントから取得されるファイル名とを、足し合わせた形式の新規なＵＲＬを作成する。構築されたＵＲＬは、ルックアップテーブルから選択された配信ファイルから、選択したクリップを検索するために使用される。
ＥＭＢＥＤタグの中のＳＭパラメータがリダイレクトサーバを指定していない場合、あるいは、リダイレクトサーバが利用できず、かつ、応答を返さない場合、プレーヤー・プログラムは、コンフィギュレーション・ユーティリティファイルに記憶されているスマートミラーサイトの優先順位がつけられているリストから任意のＩＰアドレスを選択するとともに、ＵＲＬにおけるこのアドレスを置換することになる。プレーヤー・プログラムが、スマートミラーサイトの優先順位が付けられているリストの存在を検出しない場合（例えば、ユーザがコンフィギュレーション・ユーティリティ３４を絶対にダウンロードしなかった場合）は、プレーヤー・プログラムは、ＥＭＢＥＤステートメントによって直接指定されるように、元のコンテンツプロバイダのサーバのアドレスを使用してビデオを要求することになる。
広告コンテンツの配信に目標が明示的に定められていない用途では、ダウンロード情報をＭＳＰに提供することによって、高価な加入を基本としたサービスとしての本発明の使用が容易になる。成功したダウンロードはデータベースにおいて追跡調査されるので、各ユーザが請求金額を追跡調査するための関連「アカウント」を持つことができる。ユーザは、ファイル単位、メガバイト単位、月単位、あるいは、それ以外の既知の手段によって、スマートミラーシステムの使用に関して料金請求され得る。一実施形態においては、ファイルに関連しているＥＭＢＥＤタグが料金請求書作成発行の情報、つまりファイルの「価格」を含む。本発明のダウンロードパフォーマンスの追跡調査によって、ダウンロードが過度に困難であるか、あるいは低速であると判明すると、割引または信用貸し（ｃｒｅｄｉｔｓ）を発行することができる。
スマートミラー配信サイト上で記憶されているファイルが、本発明の認可されているユーザ（例えば、支払い済みアカウントを有するそれらのユーザ）だけによって使用されることを保証するために、配信サイトで記憶されているファイルは、任意に暗号化形式を取ることができ、かつ、前述したダウンロードステップは、暗号解読ステップを含むこととすることができる。このような暗号化および暗号解読は、周知の手段によって達成することができる。
上述したように、本発明によって管理されているクリップは、それと関連しているコンテンツのレーティング情報を有するものとすることができる。これは、クリップに対応するＥＭＢＥＤステートメントにおける「ＰＧ」パラメータを提供することによって達成される。一実施形態においては、４つの特徴が指定されている。つまり、裸体（nudity）、性別（sexuality）、不敬（profanity）および暴力（violence）である。したがって、ＰＧパラメータは、４桁の引数によって指定することができる。各特徴は１対３という尺度で指定されている。１はフィルタ機能なし（つまり、すべてのコンテンツが許容できる）に対応し、２は多少のフィルタ機能（例えば、基本的に放送テレビで許されているレベルに等しい）に対応し、３は最も広範囲なフィルタ機能（例えば、子供用）に対応する。あるファイルのためにＥＭＢＥＤステートメントに含まれているレーティングのレベルは、前記認可プロセスにおいてユーザ端末１２に格納されたコンフィギュレーション・ファイルに含まれているレーティング・フィルタ・レベルと比較され、認可されているファイルだけが転送される。
上述した観点からすると、本発明の実施の形態が、与えられたユーザとコンテンツプロバイダまたは配信サイトとの間のネットワークのためのパフォーマンスデータの取得および分析を可能にする多くの異なるアプリケーションにおいて利用されてよいことが理解される。したがって、説明されている実施の形態は、インターネットというコンテキストの範囲で、インターネット型のアドレス指定方式を使用して動作しているシステムを示しているが、このようなシステムが、法人組織の“イントラネット”を含むが、それに限定されないその他のネットワーク環境において有効であることは明白であることが認識される。
さらに、例示的な実施の形態は、おもに、ビデオ配信システムで使用するために説明されているが、本発明によるシステムが、それ以外の多様な種類のコンピュータデータ（例えば、アプリケーションプログラム、データベースファイル、およびその他のビジネス情報、バーチャル・リアリティ・ファイル、マクロメディア・ショックウェーブ・ファイル（Macromedia Shockwave files）のようなマルチメディア、並びに、本などの大型テキストファイル）を分散するために、同様に使用できることが認識される必要がある。このような他の種類のデータは、上に詳細に説明したように異なるコンテンツプロバイダグループにおいて本発明によって管理することができる。（プレーヤー・プログラム３６よりはむしろ）別の種類のプログラムが、他の種類のデータを表示または使用するために、ユーザ端末１２で典型的に呼び出されることになる。
また、ユーザ端末１２で実行されているものと記述された一定の機能性（特に、コンフィギュレーション・ユーティリティ３４またはクライアント／プレーヤー・プログラム３６によって実行される一定の機能）は、スタンドアロン・プログラムとして、ブラウザプログラム内で実行するための“プラグ−イン”（“plug-in”）もしくは“ヘルパー・アプリケーション”（“helper application”）として、または、ブラウザ環境内で実行するために配信サイトからダウンロードされるＪａｖａアプレットとして、実現できることも注意する必要がある。Microsoft Windowsオペレーティングシステムを実行することができるユーザ端末にとっては、Microsoft ActiveXとして知られている環境もまた有効である。
一定の例示的な構成および動作が説明されてきたが、本発明は、そのように限定されず、かつ、その範囲は、以下に述べられている請求の範囲に従って決定されるべきである。
【図１】
0004968975.tif 000002
【図２】
0004968975.tif 000003
【図３】
0004968975.tif 000004
【図４】
0004968975.tif 000005