JP4968975B2 - Content distribution method in distributed computer network - Google Patents

Content distribution method in distributed computer network Download PDF

Info

Publication number
JP4968975B2
JP4968975B2 JP50484999A JP50484999A JP4968975B2 JP 4968975 B2 JP4968975 B2 JP 4968975B2 JP 50484999 A JP50484999 A JP 50484999A JP 50484999 A JP50484999 A JP 50484999A JP 4968975 B2 JP4968975 B2 JP 4968975B2
Authority
JP
Japan
Prior art keywords
site
distribution
user
network
file
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
JP50484999A
Other languages
Japanese (ja)
Other versions
JP2002506543A (en
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
Application filed by インタヴュ・インコーポレーテッド filed Critical インタヴュ・インコーポレーテッド
Publication of JP2002506543A publication Critical patent/JP2002506543A/en
Application granted granted Critical
Publication of JP4968975B2 publication Critical patent/JP4968975B2/en
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1008Server selection for load balancing based on parameters of servers, e.g. available memory or workload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/101Server selection for load balancing based on network conditions
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1021Server selection for load balancing based on client or server locations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1038Load balancing arrangements to avoid a single path through a load balancer
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1014Server selection for load balancing based on the content of a request
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1004Server selection for load balancing
    • H04L67/1023Server selection for load balancing based on a hash applied to IP addresses or costs
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1001Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers
    • H04L67/1029Protocols in which an application is distributed across nodes in the network for accessing one among a plurality of replicated servers using data related to the state of servers by a load balancer

Description

本発明は、分散型データの記憶保持および検索のためのシステムおよび方法に関し、さらに詳細には、それによりユーザが、動的でかつ分散されている多目的ネットワーク用のネットワークパフォーマンスの情報を取得することができる、システムおよび方法に関する。ここで、この情報は、コンピュータデータ、具体的には、マルチメディア・コンテンツを受信するための最適な配信サイトまたはサーバを識別し、および、選択するために、使用されるものとなる。このような配信サイトおよびサーバは、ネットワーク容量を増加し、サーバ負荷を分散し、および、サーバとユーザの間の伝達遅延を削減するように、選択される。
発明の背景
インターネットは、世界中に広がっていて接続されているコンピュータの開放的なネットワークである。メッセージは、宛先アドレスを指定するとともに、一連の“ホップ”(“hops”)を介してコンピュータからコンピュータへメッセージを渡すことによって、インターネット上の任意のコンピュータから他の任意のコンピュータに送信することができる。インターネット上の各コンピュータ、各ルータ、または、各“ノード”(“node”)には、ユニークなインターネットアドレスがある。中間のコンピュータまたはルータが通過中のメッセージを受信すると、コンピュータは、そのメッセージの意図されている宛先をチェックするとともに、それに応じてそのメッセージを次々と回送する。
インターネットは、規模と高度化という両方の点で、急激な速度で発達している。過去においては、インターネットの大部分のユーザは、学術、研究もしくは機関のユーザであった。インターネットは、その頃は、おもに、電子メールおよびネットワークニュースを送信および受信するためと、コンピュータ・ファイルの転送を可能にするためとに使用されていた。しかし、数年前にワールドワイドウェブ(“ウェブ”または“WWW”としても知られている)が導入されて以来、インターネットは、一般的に関心をよせられる、つまり画像や記事等の表現の、他の種類のデータの量を増大させることを、ホストし始めた。
ウェブのプロトコルおよび言語は、インターネットの広々とした区域(expanses)をナビゲーションするグラフィックの手段を確立する。多くの場合、おもにテキストとグラフィックの資材から成り立っている“ウェブページ”は、インターネット中にある“ウェブサーバ”として知られている多数のコンピュータに蓄積されている。“ブラウザ”として知られているソフトウェアプログラムは、希望されるウェブページの場所(すなわち、インターネットアドレス)を指定することにより、インターネットを経由してウェブページにアクセスしかつウェブページを見るために使用することができる。ウェブページにアクセスすると、その情報は、それが世界中のどこに位置していようとも、遠隔のコンピュータ(サーバまたは配信サイト)からインターネットを経由してユーザへと送信される。
最近では、ウェブは、音声データおよびビデオデータのようなきわめて高度化されている種類のマルチメディアコンテンツとコンピュータソフトウェアとをホストし始めた。第1世代のウェブコンテンツ、つまりテキストおよび静止画像に比較して、音声クリップ、ビデオクリップおよびソフトウェアプログラムは、きわめて高い記憶領域と帯域幅の要求をもっている。
現在、インターネットのマルチノードリンク上で大きな音声/ビデオファイルの高速持続伝送を提供することは、不可能ではないにしても、困難である。データは多くの場合遠くから転送されるため、多くの要因によって伝送の一部もしくはすべての遅延または損失さえ生じ得る。ユーザが小さいグラフィックファイルまたはテキストファイルを受信する上でマイナーな遅延を体験するかどうかは、概して重大ではない。しかし、ビデオのようなリアルタイムデータがデータの転送および表示に非常に特殊かつ厳密なタイミング要件を有することは、認識されている。
残念なことに、従来のインターネットに類似するデータネットワークの現在の設計は、遅延および大きなデータ伝達速度の変動が通常のデータ(例えば、テキストおよび静止画像)の場合に許容できるという原則に基づいている。その結果、世界中の場所からのテキスト情報およびグラフィック情報へのアクセスを可能にする高い価格のために、このような伝送の欠陥は許容できると考えられ、インターネットの基本容量は、データ伝送コストを削減するためにいくぶん“加入超過”(“oversubscribed”)になっている。言い換えると、ネットワークデータ伝送の適時性(timeliness)は、長距離通信接続であることの総費用を相対的に無意味にするために、かなり妥協されてきていた。
音声−ビデオデータをインターネットのようなメッセージ指向型ネットワーク経由で無事に転送するためには、数人を超える任意のユーザにとって、ネットワークリソースが伝送の適時性を促進する形式で寄託される必要がある。寄託されているネットワークリソースを使用するシステムは、それがデータパケット単位によるデータパケットでのネットワークリソースの共有に参加することができないため、通常、インターネットのような共有ネットワークの既存の価格形成方式を利用することはできない。ビデオデータは、より低い優先順位のデータを除外して伝送されなければならない。したがって、特に、接続が“長距離”のとき、あるいは、延長された時間の間接続が続行されるときには、伝送コストが多大になる。
上述した適時性対コストの折り合いの別の結果は、見た目には無差別のネットワークの構造設計になっている。遅延およびスループット(throughput)の変動は、従来、低コストを好んで大目に見られてきたため、インターネット・インフラストラクチャのコンフィギュレーションもコストの考慮によって決定されてきていた。このため、ネットワークの相互間接続の効率は、めったに考慮されることはなかった。リアルタイムデータの急激な発展がこの要求を変えつつある。
インターネット上での時間に敏感なデータの不十分なデータ転送パフォーマンスは、典型的には以下の4つの要因によって引き起こされることが認識されている。すなわち、パケットの損失、過剰なサーバの活用、ネットワーク・インフラストラクチャの相対的に低い容量、および、ネットワークハードウェアにおける固有の遅延である。特に、パケットの損失は、不十分なインフラストラクチャおよびルーティングにおける堅固さの欠如によって引き起こされる。固有の遅延は、とりわけ、インターネット上での多数ノード経路における隣接ノード間のフロー制御の欠如によって引き起こされると考えられている。
より小さいテキストファイルとグラフィックファイルとは異なり、相対的に大きなビデオファイルは、数分間(またはそれ以上)の“ストリーム”(“streaming”)、すなわち、絶えず続くデータフローを要することがある。その結果、通常のネットワークパフォーマンスの問題は悪化する。ネットワーク帯域幅、すなわち、ある特定のネットワークのデータ搬送容量が制限される。このため、パケット損失および遅延が増加する。長い配信時間は、長期間大量のサーバ容量を消費し、他のユーザが使用できるリソースを減少させる。したがって、ネットワーク・インフラストラクチャがますます輻輳するようになるので、パケット損失と遅延は増加し続け、伝送時間は上昇し、および、サーバ負荷はさらに増大する。
このパターンは、ビデオクリップのような大きいデータファイルの伝送の試行によって左右され得るネットワークパフォーマンスの“連続的下降”(“downward spiral”)を例示するものである。ネットワークトラフィックがネットワーク帯域幅によって課されれている制限の範囲内に留まる限り、ネットワークパフォーマンスは許容可能なままになる。しかし、ピークネットワーク負荷が容量を越えると常に、前述の連続的下降が始まり、不十分なネットワークパフォーマンスの期間を引き延ばす。
上述したように、ブラウザプログラムは、希望されているウェブページの場所(つまり、インターネットアドレス)を指定することによって、あるいは、より一般的には、ウェブページに“ホットリンクする”(“hotlinking”)ことによって、インターネットを経由してウェブページにアクセスし、かつ、これを見るのに使用することができる。一般のブラウザは、Lynx、NCSA Mosaic、Netscape Navigator、および、Microsoft Internet Explorerである。希望されているウェブページは、構文“http://internet.address/directory/filename.html”を使用してファイルの正確な場所を示す全域資源位置指示子(“URL”(uniform resource locator))によって指定される。
ウェブページは、通常、レイアウトとコンテンツという点で、“HTML”(HyperText Markup Language)として知られている言語によって記述されている。インターネットにリンクされている特定のコンピュータは、いずれも、1つまたは2つ以上のウェブページ、すなわち、HTMLフォーマットで書かれたコンピュータファイルを、ユーザによるアクセスのために記憶蓄積することができる。
あるHTMLウェブページから別のHTMLウェブページへのホットリンクは、以下のように達成される。ユーザは、まず、多くの場合ユーザのISP(Internet Service Provider)に位置しているコンピュータ上の、既知のアドレスを有しているウェブページにアクセスする。ISPは、ユーザにインターネット接続性を提供している組織である。そのウェブページは、HTMLフォーマットで指定されているテキストのデータと視覚的なデータとに加えて、多くの場合、“リンク”、つまりインターネット全体を通じた他のコンピュータ上の、他のウェブページのインターネットアドレスを指す(URLの形をした)はめ込まれた情報を含むことができる。それから、ユーザは、リンクを選択することによって(多くの場合、マウスで指し示してクリックすることによって)、他のウェブページにアクセスすることができ、それらは、次々と一層のデータおよび/または追加リンクを含み得るものとなっている。
NetscapeのEMBEDタグのようなHTMLへの多様な拡張は、ウェブページの中にはめ込まれる他のデータの参照を可能にする。テキストおよび画像以外のデータを処理することができないブラウザもある。その一方で、多様な方法でデータを処理することができるブラウザもある。例えば、NCSAのMosaicは、データがユーザのコンピュータにダウンロードされるのを可能にし、かつ、その後にデータを見てまたは操作するための外部プログラムを任意で呼び出すことによって、既知ではない種類のデータに対する参照を取り扱う。Netscape NavigatorおよびMicrosoft Internet Explorerの最近のリリースにより、概念はさらに一歩進んだ。すなわち、データがリモートウェブページから受信されると、そのデータを処理するためにブラウザ拡張、つまり“プラグ−イン”(“plug-in”)を、自動的に呼び出すことができる。Java言語(または類似した言語)で記述されているネットワークプログラム“アプレット”(“applets”)のような他の手段は、ブラウザ環境またはネットワークの機能性を拡張するために使用することができる。
デジタルのマルチメディアデータは、きわめて高い記憶領域および帯域幅の要求を有し得る。特に、ビデオファイルは、約10メガバイトから10ギガバイトと非常に大きくなる可能性がある。ユーザの端末で、それが録画された速度に近づく速度でビデオファイルを再生するためには、ファイルは高速、不変の速度で配信されなければならない。低速過ぎると、画像は、もとの録画されたものよりゆっくりとプレイバックされる。速度が一様ではない場合には、ビデオは、昔の映画のようにぴくぴく動く(jerky)ように見える。
上述したネットワーク設計の折り合いは、通常、インターネットを経由する音声データおよびビデオデータの伝送に悪影響を及ぼす。ウェブを“サーフ”(“surf”)するためにブラウザを使用しているユーザは、テキストおよび静止画像を検索している間のマイナーな遅延および伝送速度の変動に気がつかない可能性があるが、このような欠陥は、リアルタイムの音声情報およびビデオ情報がアクセスされると明白になり、かつ、顕著になる。
これらの問題を解決する試みにおいて、インターネットコンテンツプロバイダは、“ミラーサイト”(“mirror sites”)として知られている多様なサーバまたは配信サイト上で、インターネット中の人気のあるコンテンツを拡布することがある。各ミラーサイトは、元のサイトの情報と本質的に同一である情報を含んでいる。例えば、人気のあるウェブサイトがニューヨークに位置する場合、ミラーサイトは、ロスアンジェルス、ロンドンおよび東京に位置していてもよい。したがって、ヨーロッパのユーザが元のニューヨークのサイトにアクセスするのが困難な場合、そのユーザは、地理的に最も近いミラーサイト、つまりロンドンにホットリンクすることができる。
しかしながら、ミラーサイトにはいくつかの不利な点がある。例えば、ミラーサイトは、地理的には幅広く分散していてもよいが、実際の使用量、ネットワークトラフィック等という点ではネットワーク上で効率的に分散されていないことがある。したがって、ニューヨークとロスアンジェルスのミラーサイトは、両方とも、同じ国内インターネットサービスプロバイダのネットワークに接続され、それらのサイトの一方にアクセスする上での困難さが他方にも影響を及ぼす可能性があることを、意味することがある。
さらに、ミラーサイトは、各サーバに対する負荷を削減するために最適に配置されていないことがある。ミラーサイトがどこに設置されるべきかに関して“知識に基づいた推測”(“educated guess”)がなされるかもしれないが、実際の使用量パターンは異なる可能性がある。さらに、パフォーマンスの改善の保証はない。ミラーサイトの帯域幅は、元のサイトの帯域幅より低く、あるいは、それが他の理由から過剰負荷の状態になっていることがある。
さらに、ミラーサイトは、多くの場合、自発的な基準によってホストされている。あるウェブサイトがきわめて人気があり、かつ、主題がその加入者にとって関心がある可能性があるとサービスプロバイダが判断すると、そのサービスプロバイダは、元のウェブサイトのミラーサイトをホストすることに同意する可能性がある。人々がミラーサイトに引かれ、かつ、そこでホストされている他のコンテンツにもホットリンクする可能性があるため、このような調整は、ミラーサイトのホストにとって魅力的なものとなる。他方、このような自発的な提携は、典型的には信頼性がなく、かつ、任意の時点で断ち切られる可能性がある。
本来、ミラーサイトは、データにとって、使用できることもあれば、使用できないこともあり、かつ、ユーザの利便性を改善することもあるが、ネットワークの帯域幅または効率には取り組まない、二次的なソースを提供する。ミラーサイトは、ネットワークのパフォーマンス特性も考慮に入れず、インターネット上の方式のような既存の低コストの価格形成方式を依然として活用する一方で効率的にビデオデータを伝送するために使用し得る利用可能な帯域幅も識別しない。
現在では、配信サイトのための最適な場所の選択に関するガイダンスがまったくなく、どのミラーサイトに接続するのかをユーザが判断できるようにする、最適なパフォーマンスを保証するであろう方法も知られていない。実際、従来のミラーサイトの使用は自発的である。典型的には、ユーザは、元のサイト(もしくは、既知のミラーサイト)にアクセスしようと試み、1回または2回以上の試行の後にパフォーマンスが不十分であると判明する場合にだけ、別のミラーサイトへの切り替えをすることになる。このアプローチは、ネットワークリソースの非効率的な活用である。明らかに、ミラーサイトは、過剰負荷になっているウェブサイトの問題にとっての最適な解決策ではない。とりわけ、この主要な理由とは、ネットワークパフォーマンスを考慮できていない点にある。
ネットワーク分析、特に、インターネット上での特定の経路およびリンクのパフォーマンスは周知であり、かつ、開発されている。例えば、“ping”プログラムは、インターネットに接続されているコンピュータに対し、遠隔のホストがアクセス可能であるかどうかを判断できるようにする。しかし、このpingプログラムは、ICMPプロトコルとして知られている低優先順位ネットワークプロトコルを使用しており、かつ、そのために有意義なパフォーマンスの分析情報を提供しない。“traceroute”プログラムは、コンピュータから遠隔のホストへのメッセージの伝送を追跡し、各リンクに沿った遅延を追跡調査し、および、該メッセージによって取られる経路を決定する。このtracerouteアプリケーションは、データの流れをマッピングするのに使用できる。ただし、それには、有意義なパフォーマンスの分析情報を提供する能力が欠けている。Tracerouteは、ある方向で伝搬するメッセージに関するルート情報を提供するだけであり、かつ、時間的にある一瞬に関してだけ提供する。
さらに、テストを実行中の単一のコンピュータに続く経路とそれから続く経路の接続性特性だけは、典型的に決定される。テストの範囲を拡大することは可能であるが、インターネットは非常に大規模であるため、論理学的には実行不可能である。
“ping”プログラムおよび“traceroute”プログラムのような従来のネットワーク分析技術は、ネットワーク接続性という観点を提供するが、プロバイダとインターネットを経由するミラーサイトからどのようなパフォーマンスを期待できるかについての理解はほとんど提供しない。したがって、配信サイトまたはミラーサイトがどこに位置すべきなのか、あるいは、パフォーマンスを最適化するためにはどのミラーサイトを使用すべきなのかに関しては、「推測」だけを行うことができるに過ぎない。
したがって、総合的なネットワークパフォーマンスを判断する方法に対するニーズが存在する。コンテンツプロバイダが最適なネットワークの位置にデータ配信またはミラーサイトを動的に配置することができるようにし、かつ、ユーザがデータを受信すべき最適なミラーサイトを選択するのを許容する、その方法を適用するシステムにとってはさらに別のニーズが存在する。
発明の要約
本発明は、インターネット中に位置しているサイトへのウェブコンテンツの最適化された分散のためのシステムおよび方法を目的としている。ここで、“スマートミラー化”(“Smart Mirroring”)と呼ばれているインテリジェント・ミラー化方式は、ミラーサイトに対するニーズおよびその分散を判断するとともに、一定のウェブコンテンツに対するユーザの要求を最適なミラーサイトに向けるために使用される。
多くの“スマート”(“Smart”)な配信サイトまたはミラーサイトは、人気のあるウェブコンテンツをインターネットの多様な部分に分散するために使用される。多数のユーザによって実行されているテストに基づいたネットワーク分析の包括的な方式が、サイトに好ましい位置(locations)を対話的に決定し、かつ、各個別のユーザによって使用される最適なサイトを決定するために、使用される。
したがって、各個別のユーザが改善されたパフォーマンスを提供するスマートミラーまたは配信サイトへルーティングされるため、総合的なネットワークの輻輳は削減される。大部分のケースでは、データがその上を移動しなければならないネットワーク接続の数を減少させ、それによりパケット損失および遅延を削減するために、改良されたサーバがユーザに電子的に近くに配置される。
さらに、ネットワーク分析の結果により、メッセージのトラフィックを、すでに過剰負荷になっているそれらの配信サイトおよびネットワーク領域から遠ざけ、かつ、十分に利用されていないサーバおよびネットワークに向けてルーティングすることができるようにする。このため、各ユーザによって理解されるようにスループット(throughput)における改善がなされ、かつ、それによって該システムを使用しているコンテンツプロバイダにより提供されているコンテンツの魅力が増すことになる。コンテンツプロバイダは、パフォーマンスにおける顕著な低下を被ることなく、インターネットを経由してより多数のユーザに到達することができる。
本発明によるシステムは、元のウェブサイトおよび少なくとも1つの追加配信(またはミラー)サイトで始まる。このシステムの使用を希望している各ユーザには、好ましい実施の形態においては、コンフィギュレーション・ユーティリティおよびクライアント・プログラムを含むソフトウェアが与えられることになる。そのコンフィギュレーション・ユーティリティは、まず、どの配信サイトがその特定のユーザにとって改善されたパフォーマンスを提供するのかを判断するために使用される。
本発明の一実施形態においては、コンフィギュレーション・ユーティリティは、最初に、サービスプロバイダから“配信サイトファイル”(“delivery site file”)をダウンロードする。この配信サイトファイルには、利用可能な配信サイトのリストおよび実行されるネットワークテストのリストが含まれている。テストの種類および実行されるテストの頻度は、ネットワークをテストしているユーザの数およびネットワーク上での概算流出もしくは配信システム容量に応じるように、該配信サイトファイルにおいて指定することとしてもよい。
コンフィギュレーション・ユーティリティは、該配信サイトファイルにおいて指定されているテストのサブセットを実行することになる。テストの結果は、どの配信サイトがユーザにとって改善されたパフォーマンスを生み出すのかを示すとともに、テストを実行しているユーザの観点からの多様な汎用化されたネットワークの性能に関する情報をも含んでいる。ネットワークのテスト結果および選ばれた配信サイトの識別情報は、(1つの可能なコンフィギュレーションにおいてはeメールによって)サービスプロバイダのデータベースの中に取り込むために配信サービスプロバイダへ送り返されることになる。
その後、コンフィギュレーション・ユーティリティによって選ばれた配信サイトは、配信システムのサービスプロバイダが管理しているすべてのコンテンツの検索のために、そのユーザによって使用される。その結果、ユーザがウェブコンテンツをブラウザして、そして、サービスプロバイダの配信システムによって管理されている特定のアイテム、例えばビデオクリップを見つけると、クライアント・ソフトウェアは、自動的に、指定されている“スマートミラー”配信サイトからそれを検索する。サイトの優先およびデフォルトのサイトは、要求に応じて定期的に、指定されたときに、または、ネットワークの負荷およびトラフィックにおける変化に応答して、アップデートすることができる。
さらに、本発明のコンフィギュレーション・ユーティリティは、多様なネットワークテストを実行し、かつ、サービスプロバイダにそのテストの結果を提供しているため、システムおよびネットワークのパフォーマンスに関する貴重なデータを入手することができる。このようなデータは、どの“スマートミラー”配信サイトが効果的に実行していてどの“スマートミラー”配信サイトが効果的に実行していないのか、どのスマートミラー配信サイトが過剰負荷になっているのか、および、インターネットのどの部分がさらに多くの配信サイトまたは容量の追加から利益を得る可能性があるのか、に関する情報を提供する。このようなデータは、また、エンド−ツー−エンド(end-to-end)のパフォーマンスの測定、処理量の特徴化、ルートの安定性および動作不能状態の測定基準のような高度なネットワーク分析の実行をも可能にする。
本発明の実施の形態においては、ミラーサービスプロバイダは、インターネットIPアドレスを“電子的に近い”(“electronically close”)配信サイトに相関付けるルックアップテーブルを運営するために、エンドユーザによって提供されているネットワークパフォーマンスのデータを使用する。ユーザがウェブページをブラウジングしつつ、例えば、サービスプロバイダの配信システムによって管理されている広告の見出しまたはビデオクリップなどのファイルを要求すると、サービスプロバイダは、そのユーザのIPアドレスをそのルックアップテーブルにマッピングし、かつ、どの配信サイトがそのユーザにとって“電子的に近い”のかを判断することができる。サービスプロバイダは、その後、ユーザのコンフィギュレーション・ユーティリティまたはクライアント・プログラムに対し、単一の配信サイトアドレスまたはこれらのサーバへの配信サイトアドレスのリストを提供することができる。後者の場合、ユーザ端末は、最終的な配信サイト選択を行うルータとして動作する。
一般的には、ある特定のユーザにとって改善された配信サイトは、一群のユーザによって以前に実行されたネットワークのテストから収集されたネットワークパフォーマンスの総合データを分析することにより、事前に予測することができる。したがって、配信サイトの選択は、ユーザがミラーサービスプロバイダの配信システムによって管理されているファイルを要求するたびに、実行中(on-the-fly)に起こる可能性がある。ユーザの観点からは、配信サイトの選択は、ウェブページからファイルを選択することとユーザの端末へ配信されたファイルを所有することとの間にまったく遅延がないものと見えるように、自動的にかつ透明的(transparently)に行われる。サービスプロバイダによって維持されているルックアップリストは絶えずアップデートされてネットワークパフォーマンスにおける変化を反映し、サービスプロバイダがネットワークトラフィックの負荷配分を効率的に行うことを可能にする。
このようにして、工学技術的な観点から、ミラーサービスプロバイダは、改善されたパフォーマンスが提供されていることを保証し続けることができる。マーケティングの観点からは、コンテンツプロバイダに対し、パフォーマンスの改善のためにスマートミラーまたは配信サイトをどこに配置するべきなのか、および、どのISPが改善された配信を実現するのか、を告げることができる。
【図面の簡単な説明】
図1は、多種多様なユーザおよび多種多様なコンテンツプロバイダを含む本発明によるシステムの例示的なネットワークトポロジのブロックダイヤグラムである。
図2は、本発明によるシステムにおいて使用されるコンフィギュレーション・ユーティリティの動作を説明するフローチャートである。
図3は、本発明によるシステムにおいて使用されるクライアント・プログラムの動作を説明するフローチャートである。
図4は、サイト選択が本発明の実施の形態においてどのように実行されるのかを示すフローチャートである。
発明の詳細な説明
本発明は、詳説されている例示的な実施の形態に関して以下に説明される。本発明が多岐に渡る種々の形式で実現できることは明白であり、そのいくつかは、開示されている実施の形態の形式とはきわめて異なるものであってもよい。従って、ここに開示されている特定の構造上および機能上の詳細は、単に代表的なものにすぎず、かつ、本発明の範囲を制限しない。
最初に図1を参照すると、インターネット10が“クラウド”(“cloud”)として描かれている。このインターネット10は、一般的な広域通信ネットワークを表すことを意図したものである。インターネットは、多数のコンピュータの相互接続されたネットワークとして知られている。互いに“地理的に”(“geographically”)近いインターネット接続されたコンピュータがインターネット上で互いに“電子的に”(“electronically”)近いこともあり得るが、このようなことは通常のケースではない。しかし、インターネットに接続されているあるコンピュータが、インターネットに接続されている任意の他のコンピュータと通信することはできる。つまり、メッセージは、直接的に互いに接続されているコンピュータ間で、リンクのシーケンスまたは“ホップ”(“hops”)を含む経路上をほぼ確実に移動することになる。
第1ユーザ端末12も図1に描かれている。第1ユーザ端末12は、典型的にはただのコンピュータ、ルータ、または、インターネット10に接続されている端末サーバであるインターネットサービスプロバイダ(ISP(Internet service provider))14に接続されている。ISP14は、第2ユーザ端末16のような追加のユーザ端末をホストすることができる。第2ISP18のような他のISPもまた、インターネット10に接続されている。第3ユーザ端末20は、第2ISP18に接続されて図示されている。3つのユーザ端末しか示されていないが、本発明の並行ユーザの数は後述の実用可能な詳細を条件として無制限であることを注記する。
この技術分野で公知であるように、コンテンツプロバイダもまたインターネット10に接続されている。第1コンテンツプロバイダ22は、ある一定の種類のコンテンツ、例えばスポーツのスコアとハイライトを提供するものでもよい。第2のコンテンツプロバイダ24は、他の種類のコンテンツ、例えばビジネスニュースを提供するものでもよい。
従来、(第1ユーザ端末12を使用しているユーザのような)ユーザが第1コンテンツプロバイダ22によって提供されているコンテンツにアクセスすることを希望すると、端末12は、第1コンテンツプロバイダ22を直接問い合わせることになる。要求メッセージは、端末12からインターネット10を経由してコンテンツプロバイダ22へと伝搬することになる。コンテンツプロバイダ22は、インターネット10を経由して端末12へ希望されているデータを送り返すことになる。
図1では、いくつかの配信または“ミラー”(“mirror”)サイトが、インターネット10に接続されて示されている。第1配信サイト26は、第1ユーザ端末12からの少数の“ホップ”を配置されてもよい。第2配信サイト28は、第1ユーザ端末12からさらに遠く離れて配置されていてもよいが、、第3ユーザ端末20の近くに位置していてもよい。第3配信サイト30は、第2配信サイト28が第3ユーザ端末20に近いのと同程度に第3ユーザ端末20の近くにあってもよい。前記したように、“地理的に”互いに近いユーザおよびプロバイダもしくは配信サイトは、インターネット上で“電子的に”互いに近くないことがある。ユーザとプロバイダまたは配信サイトとの間の“電子的な”(“electronic”)距離を減なくすることによって、その上をデータが移動しなければならないネットワーク接続およびルータの数は、減少させることができる。
上述したように、スマートミラー化システムは、上記ネットワークの問題の発生率を減少させることによって、ネットワークパフォーマンスを改善する役割を果す。いくつかのケースでは、本発明のネットワークのテスト手順は、さらに長い経路の方がより短い経路より優れたスループット(throughput)を提供することがあることを示すが、パケット損失および遅延の問題は、一般的には、データがその上を移動しなければならないネットワーク接続の数を削減することによって軽減される。ネットワークのケーブルにおいては、パケット損失はほとんど発生せず、かつ、本来遅延はまったく生じない。したがって、典型的には、それは過剰負荷になっているネットワークの記憶装置とルーティング装置とによって引き起こされている。本発明のスマートミラーサイトは、各ユーザに電子的に近くに位置しているため、パケット損失および遅延は削減される。過剰なサーバ活用の問題は、多種多様な配信サイトが典型的には単一サーバによって処理されていたであろう負荷を共用するので、削減される。別々の場所にあるパラレルの配信サイトから検索されるデータが通常同じネットワークリンク上を移動する必要がないため、ネットワーク・インフラストラクチャの相対的に低い容量は、より問題になりにくい。
この発明を説明するため、配信サイトは、配信のためにソフトウェアコードのようなデータまたはその他のファイルを記憶することもできるネットワーク上の“ノード”(“node”)であるものとする。この用語は、また、ミラーサイト、コンテンツプロバイダおよびビデオストリームもしくはウェブサイトの一斉送信(broadcast)用サーバを含む、データ配信に対応することができるサイトを含み得る。
システムでは、ミラーサービスプロバイダ(MSP(mirror service provider))32が、インターネット10に接続されている。配信サイト26、28および30の分散と、ユーザ端末12、16および20からの元のサイトおよび配信サイトへの要求の割当とで、管理機能を実行するMSP32は、インターネット10上でデータを送信しかつ受信することができるデータベースを含む。
この管理機能は、ユーザ端末12上の記憶媒体(つまり、ランダムアクセスメモリ)内で実行されるコンフィギュレーション・ユーティリティ34およびクライアント・プログラム36の使用によって容易にされる。コンフィギュレーション・ユーティリティ34およびクライアント・プログラム36は、第1ユーザ端末12だけの一部として図1に示されているが、端末16および20のようなこのシステムに加入している任意のユーザ端末がこのようなソフトウェアを使用することになると認識すべきであることを注記する。このシステムに加入することを希望するユーザは、コンフィギュレーション・ユーティリティ34およびクライアント・プログラム36を含むソフトウェアを、MSP32から直接的に、あるいは、従来の小売経路、もしくは(コンピュータのブラウザもしくはオペレーティングシステムの一部であるような)他の経路を通して入手することができる。この本発明が説明されている実施の形態においてコンフィギュレーション・ユーティリティ34によって実行される機能は、ブラウザまたはその他のネットワークアプリケーションのような一般的なインターネットアプリケーションソフトウェアの中に統合することができることを注記する。スタンド−アロン・プログラムは必要ではない。
好ましい実施の形態においては、コンフィギュレーション・ユーティリティ34は、ユーザ端末12がシステムへのアクセスを得る前に、コマンドによってか、または、自動的かによって、ユーザにより実行されなければならない。コンフィギュレーション・ユーティリティ34の動作は、図2に詳細に示されている。
コンフィギュレーション・ユーティリティ34は、最初にユーザ端末12上で実行されるとき、MSP32(図1)から配信サイトファイルを検索する(ステップ40)。ユーザがすでに配信サイトファイルを持っており(例えば、それがコンフィギュレーション・ユーティリティ34を使って受け取られ)、かつ、その配信サイトファイルが十分に新しい場合、配信サイトファイルは、ユーザ端末12のローカルハードディスクから検索することができる。この配信サイトファイルには、(配信サイト26、28および30のような)すべての利用可能な配信サイトのリストと、ユーザ端末12で実行されるネットワークのテストのリストとが含まれている。本発明のコンテキストでは、2つほど少ない配信サイト、あるいは、ユーザの数がそれを正当化する場合には数千ほど多い配信サイトがあり得る。原則的にはサイト数は無制限であり、それぞれの利用可能な配信サイトが配信サイトファイルに表されている。
配信サイトファイルは、MSPのコンピュータシステム内からデータベースによって作成される。データベースのアプリケーションは、ユーザについての情報を使用し、実行すべき最適なテストを動的に決定する。その結果、配信サイトファイルは、存在するあらゆる配信サイトに対するエントリを含む必要はない。つまり、そのリストは、適切または実行可能と考えられるサイトだけを含むように調整することができる。
当初、配信システムのユーザ用のテスト・コンフィギュレーションにおける実行時間の変動の規模は低い。つまり、ユーザの第1グループは、すべて本質的には同じテストを実行する。しかしながら、配信サービスが発達するにつれて、各ユーザのテストの激しさは、ネットワーク全体でテストする規模の増加を埋め合わせるために削減される。テストの範囲およびテストされる配信サイトの数は、両方とも、ネットワークテストの総計負荷をさらに削減するために狭めることができる。
ある実施の形態においては、配信サイトファイルは、一般的に以下のようなフォーマットを有するものとなる。
1.ファイル改訂番号およびメッセージ。ファイルは、コンフィギュレーション・ユーティリティ34の新しいバージョンが利用できるかどうかを判断するために、このフィールドを有する。配信サイトファイルの改訂番号がコンフィギュレーション・ユーティリティのためのバージョン番号より高い場合、コンフィギュレーションは許容されていない。代わりに、ユーザは、コンフィギュレーション・ユーティリティ34のさらに新しいバージョンを取得するようにプロンプトを出されることになる。ここに説明されているようなファイル改訂の検証は、もっともアップ−トゥ−デートな配信サイト選択アルゴリズムがコンフィギュレーション・ユーティリティ34によって生成されているテストデータに適用されることを保証する。
2.利用可能なスマートミラー配信サイトのリスト。それぞれの利用可能な配信サイトに関し、以下の情報が提供される。
a.ホスト名。“www.server.com”という公知のインターネットフォーマットによる。
b.IPアドレス。公知のフォーマットでの数値のインターネットアドレス。このアドレスは、現在では、w.x.y.zという形の32ビットの数値であり、この場合、w、x、yおよびzは、それぞれ0から255の範囲内にある。
c.代替名。“第1ミラーサイト”のような非公式の名称。
d.実行されるテストのリスト。それぞれのテストに対し、以下の情報が提供される。
i.テストID。各種テストは、コンフィギュレーション・ユーティリティ34に既知であるユニークな識別子を有している。
ii.重み付けファクタ。各テストは、指定されたパーセンテージ分だけ、重み付けされることになる。
iii.頻度。各テストは必ずしも毎回実行される必要はない。このフィールドは、どの程度頻繁にある特定のテストが実行されるのかを求める確率を指定する。
iv.追加情報(オプション)。ある一定のテストに対し、追加情報が必要とされることとしてもよい。
e.サイト優先レベル。各サイトには、例えば1と100の間の重み付け、つまり優先レベルを与えることができる。後述するように、MSPのデータベース内の総計データは、単一ユーザの瞬間的なエンド−ツー−エンドのテストだけでは可能ではないネットワーク使用の分析を実行するために使用される。ここで規定されている重み付けファクタは、サービスプロバイダのデータベースから受け取られるテスト結果をを取り入れるために使用される。いったん所定の最大使用レベルに到達すると、この重み付けファクタは、また、新規ユーザの配信サイトへの割当を制限するためにも使用される。
f.テストサイトのフラグ。このフラグがイネーブルされると、前記テストが実行されるが、サイトは、たとえそれが最良のパフォーマンスを生じさせるとしても、配信サイトとして割り当てられないことになる。
g.コンテンツプロバイダのグループ。各サイトは、1つまたは2つ以上のコンテンツプロバイダグループに属し、それによって一定のコンテンツだけをミラー化することができる。ユーザがある特定の配信サイトによってホストされているデータの種類に関心がない場合には、それがテストされる必要はない。
コンフィギュレーション・ユーティリティ34は、その後、例えば、ユーザの氏名、eメールのアドレス、パスワード、モデム速度、および、アクセス制御に関係する情報(例えば、該ユーザが多様な属性のどのレベルを見ることができるのか)などのコンフィギュレーション・プロセスにおいて必要とされる情報の多様な項目に関して、ユーザに問い合わせる(ステップ42)。アクセス制御メカニズムは、以下により詳細に説明することにする。本発明の一実施形態においては、ユーザから受け取られる情報は、暗号化され、かつユーザ端末12上のコンフィギュレーション・ファイル内に記憶されている。
それから、コンフィギュレーション・ユーティリティ34は、ユーザ端末12が、インターネットに接続しているかどうか判断する(ステップ42)。接続していない場合、それは接続を始動し(ステップ44)、または、ユーザにそれを行うようにプロンプトを出す。
それから、一連のネットワークテストが実行される(ステップ46)。配信サイトファイルに一覧表記されている利用可能なサイトごとに、1回または2回以上のテストを実行することができる。ファイル内のすべてのサイトがテストされる必要はない。
以下のテストの種類は、現在、有効なデータを提供すると考えられている。
1.Ping。遠隔のサーバが到達可能であるのかどうか、および、到達可能である場合、低優先順位のメッセージがユーザ端末12からその遠隔のサーバへの往復を移動するのにどの程度の時間を要するのか、に関する情報を提供する。pingは、サイトが追加評価に使用できるのかどうかを決める上で有効な簡易テストである。pingアプリケーションによって戻される過剰時間は、効果的な情報の配信には“低速”すぎる配信システムを排除するために使用することができる。このテストは、テストされている配信サイトの数を削減するために端末によって使用される。
2.Traceroute。途中でどのシステムが使用されるのかと各ホップにどのくらいの時間を要するのかとを含む、ユーザ端末12から遠隔のサーバまでにメッセージがどのルートを取るのかに関する情報を、提供する。Tracerouteは、情報伝達の経路を文書化するために、コンフィギュレーション・プログラム34によって使用される。結果が異なるいくつかのトレースが、ある特定のユーザから特殊なサーバまでのルートの安定性が許容できないことを示す場合がある。サービスプロバイダのシステムデータベースからの、特定のルートに関して以前に総計されたデータもまた、特殊なユーザ向けの特定の配信サイトを選択するための決定に影響を及ぼすことがある。ルートの安定性は、主要な考慮事項である。
3.逆Traceroute。途中でどのシステムが使用されるのかと各ホップにどのくらい時間を要するのかとを含む、遠隔のサーバからユーザ端末までにメッセージがどのルートを取るのかに関する情報を提供する。逆Tracerouteは、情報受取りの経路を文書化するために、コンフィギュレーション・プログラムによって使用される。結果が異なるいくつかのトレースが、ある特定のサーバから特殊なユーザまでのルートの安定性が許容できないことを示す場合がある。サービスプロバイダのシステムデータベースから特定のルートに関して以前に総計されたデータもまた、特殊なユーザ向けの特定の配信サイトを選択するための決定に影響を及ぼすことがある。再び、ルートの安定性は主要な考慮事項である。
4.動的Traceroute。tracerouteまたは逆tracerouteに同様であるが、インターネット上の任意の指定されたコンピュータの対の間。動的Tracerouteは、情報伝達の経路を文書化するためにコンフィギュレーション・プログラムによって使用される。結果が異なるいくつかのトレースが、2つのネットワークの位置間のルートの安定性が許容できないことを示すことがある。サービスプロバイダのシステムデータベースから、特定のルートに関して以前に総計されたデータもまた、特殊なユーザ向けの特定の配信サイトを選択するための決定に影響を及ぼすことがある。上述のように、ルートの安定性は、主要な考慮事項である。
5.ネームサーバ解像度遅延(Name Server Resolution Delay)。数値インターネットアドレスが未指定である場合、ネームサーバのルックアップが実行され、どの数値アドレスが希望されているホスト名に相当するのかを判断する。このプロセスは、かなりの量の時間を要する場合がある。
6.スループット(Throughput)。サンプルファイルは、遠隔のサーバからダウンロードされるか、または、部分的にダウンロードされ、毎秒バイト単位で実際のスループットを求める。
7.スループット変動(Throughput variation)。サンプルファイルは、遠隔のサーバからダウンロードされるか、または、部分的にダウンロードされ、スループットが相対的に不変であるのか、または、浮動しているのかを判断する。
8.誤り率。サンプルファイルは、遠隔のサーバからダウンロードされるか、または、部分的にダウンロードされ、伝送が伝送誤差を受けるかどうかを判断する。この情報は、ユーザに戻されるエラーメッセージパケットの数を数えることによって得られ、それによってユーザからサーバへの誤り率を習得し、および、転送されたバイト数の分数として受信されたバイト数を追跡調査し、それによってサーバからユーザへの誤り率を習得する。
9.パケット断片化(PacketFragmentation)。サンプルファイルは、遠隔のサーバからダウンロードされるか、または、部分的にダウンロードされ、伝送が、断片化または故障しているパケットの受信にさらされるかどうかを判断する。
10.容量問い合わせ(Capacity Query)。遠隔のサーバがこのように作動されている場合、コンフィギュレーション・ユーティリティ34は、その伝送容量およびその平均負荷を求めるためにサーバに問い合わせる。この情報は、ほぼすべてのインターネットサーバによってサポートされている簡易ネットワーク管理プロトコル(“SNMP”(Simple Network Management Protocol))を介して収集される。
11.巨視的ネットワーク分析(Macroscopic Network Analysis)。MSPデータベースによって蓄積されているデータは、ネットワーク動作の大局的なビューを提供する。この情報により、スマートミラーシステムのユーザは、利用可能な配信サイトのパフォーマンスの履歴的な表示を見ることができる。該蓄積データは、すでにパフォーマンスの衰えを経験している領域での使用の重視をやめる一方で、ネットワークの高容量領域での使用を重視する目的でネットワークパフォーマンスを分析するために、配信システムのデータベースにより操作される。
前記テストのそれぞれがどのように実行されるのかに関する情報は、ネットワーク分析の技術分野では周知である。例えば、Bob QuinnおよびDave Shuteのウィンドウズ・ソケット・ネットワーク・プログラミング(Windows Sockets Network Programming)(アディソン−ウェズレイ(Addison-Wesley)、1996年)を参照のこと。本発明の一実施形態においては、テストは、サーバが到達可能であるかどうかを検証するための“ping”テスト、一連の小さい(例えば、20K)ダウンロード、一連の大きい(例えば、200K)ダウンロード、および、配信経路を文書化するための“traceroute”テストと“逆traceroute”テストを実行することによって達成される。
traceroute情報は、テストデータをそのデータベースにおける情報に相関付けるためにMSP32によって使用される。そのようにして、特に不良なネットワークリンクおよびサーバが識別できる。このような情報は、前述した配信サイトファイルに提供される。ある特定のリンクまたはサーバが信頼できないことが分かっている場合、他のユーザから得られた情報に基づいて、個々のユーザは、たとえ単一のテストが良好な結果を出したとしても、それから離れてルーティングされるものとすることかできる。
短いダウンロードは、サーバ容量を求めるために使用される。ネームサーバ解像度遅延は、データ送信を開始するために要する時間と同様に、、このようなテストによって決定することができる。もっと後の結果は、サーバ負荷、容量およびパフォーマンスに強く関係している。
長いダウンロードによって、コンフィギュレーション・ユーティリティ34は、パケット損失、ネットワーク輻輳およびサーバ活用がどのようにファイル配信に影響を与えるのかを判断できることになる。単一ユーザからのテストの結果に基づき、前記ファクタのどれがパフォーマンスの低下を引き起こしているのかを判断するのは理想的ではない。ただし、MSP32によって維持されているデータベースに記憶されているような総計中のこのような結果が、根本的な原因を示す。
テスト結果のいくつかが、それ以外のテスト結果とともに使用されてもよいことに注意する必要がある。例えば、容量問い合わせを通して決定される配信サイトに対する負荷は、サーバの負荷特性を仮定すると、平均予想ダウンロード時間を引き出すために、スループットテストの結果によって分割される。
すべての指定されたテストが実行された後、結果が収集され、かつ、処理される(ステップ48)。一定のテストが無事に実行できなかったと考えることは可能である。このようなケースでは、結果は、適切な最悪ケースの値(例えば、ゼロ・スループットまたはきわめて大きい遅延)を示すはずである。
コンフィギュレーション・ユーティリティ34が実行されるたびに、可能なすべてのテストが実行されるわけではないことに注意することが重要である。多数のユーザがシステムを使用しているとき、テスト手順だけによっても、サーバとネットワーク容量の多大な流出が生じ、前述したネットワークパフォーマンスの連続的下降を増大することになる。
上述したように、テストの頻度数は、テストを実行しているユーザの数を動的に制御する目的で、配信サイトファイル内に記憶される。コンフィギュレーション・ユーティリティ34によって実行されるテストは、どの配信サイトがある特定のユーザへのデータの配信にもっともよく適しているのかを決定する上で統計的な信頼を達成するために実行される。統計的な信頼は、ユーザの小さいサンプルを十分によく試験し、かつ、そのデータを配信サイトの選択肢に影響を及ぼすために使用することによってか、あるいは、多数のユーザにいくつかの利用可能なサイトをそれぞれ“軽く”(“lightly”)テストさせ、そのデータを総計の中で使用することによって、得られる。
したがって、システムが最初に使用されるとき、相対的に小さい数のユーザがシステムに“登録”される(enrolled)。MSP32によって維持されている配信サイトファイルは、それらの条件を反映し、かつ、各ユーザに、相対的に激しく(コンフィギュレーション・ユーティリティ34を通して)ネットワークをテストすることを要求する。ユーザ数が増加するに従い、配信サイトファイルは、各ユーザによって実行されるテストを軽減するために修正される。非常に多数のユーザがシステムを使用する時までは、コンフィギュレーション・ユーティリティ34は、大部分は(上述したように、“ping”型(“ping”-type)のテストによって)配信サイトの到達性に関し試験するとともに、おもに他のユーザによって提供されかつMSP32によって維持されているデータベースに記憶されているテストデータを信頼する。ただし、多くのユーザがシステムをテストしている時でも、少数のユーザ(例えば、5000分の1)がテストの包括的なセットを実行するために選択されてよい。
好ましくは、テストは、総サーバ負荷の約5%を超えて寄与してはならない。この目標に到達するための1つの方法が、多数のサーバを軽く(lightly)テストし、適切なパフォーマンスを有する配信サイトのグループを生じさせることである。すると、この配信サイトのグループは、データを検索するためのローテーションで使用することができる。グループ内の配信サイトのそれぞれのためのマルチメディア・クリップの実際のダウンロード時間に関する情報は、後述するように蓄積され、その後、配信サイトパフォーマンスに関する追加情報は、追加の即座テストを必要としなくても、透明的(transparently)にMSP32へ供給することができる。
これにより、収集されたテスト結果およびMSP32によって配信サイトファイルの中に提供された情報に基づき、コンフィギュレーション・ユーティリティ34は、との配信サイトまたは配信サイトのグループがユーザ端末12にとって最良であるのかを決定する(ステップ50)。この決定は、実行される多用な試験を重み付けし、かつ、サイトごとにスコアを比較することによって、数値的に下すことができる。
好ましい本実施形態においては、配信サイトおよびユーザの数が比較的に少数である低トラフィック(low-traffic)環境で使用するために、コンフィギュレーション・ユーティリティ34は、おもに、利用可能な配信サイトごとのpingテストおよびスループットテストに頼る。初期のpingテストは、配信サイトが到達可能であるかどうかを判断するために実行される。短いダウンロードおよび長いダウンロードが、スループットテストで実行され、配信サイトからの最大スループットおよび最小スループットを求め、および、スループット変動がビデオデータの伝送に対処できるほど十分に小さいかどうかを判断する。したがって、それらのテストにはすべて高い重みが与えられている。tracerouteのような他のテストを実行することができ、かつ、その結果は、配信サイトの選択で役割を果さないでMSP32に報告することができる(このような他のテストには、例えば、ゼロまたはほぼゼロの重みを与えることができる)。システムのサイズが大きくなるとともに、追加の配信サイトおよびユーザが登録されるに従って、変化を遂げるネットワーク状態を反映するために、サイトの選択方式を、配信サイトファイルのコンテンツを変更することによって変えることができる。
本発明の一実施形態においては、ユーザの位置とテストされている各サイトの(地理的および電子的の両方の)位置がユーザ端末12に接続されているモニタ上に表示できるように、所有権のグラフィックインタフェースが提供され、サイト間の相対的な距離の視覚的な表示を可能にする。一実施形態においては、そのディスプレイは、その上でユーザ端末12と配信サイトが関連する地理的な地域のマップ上に重畳されている“ブリップ”(“blips”)として表示される“レーダー・スクリーン”(“radar screen”)の形で示されている。ユーザに、アプリケーションを使用し、かつ、さらにネットワーク全体のデータを提供するように促すために、ユーザインタフェースは、ユーザが追加のパフォーマンステスト用の“暫定”(“ad-hoc”)テストサイトを入力できるようにする。このケースでは、コンフィギュレーション・ユーティリティは、デフォルトのウェブページファイル(例えば“index.html”)またはユーザによって要求されている特殊なファイルのどちらかをテストすることになる。ユーザによって選択されているサイトからの分析結果は、その他のサイトからの結果との妥当な比較を行うことができるように調整される。
コンテンツプロバイダの複数のグループに対応するために、配信サイトの多種多様なセットを本発明によって維持できることに注意する必要がある。各コンテンツプロバイダは、一定のサイトだけでミラー化されることとしてもよい。したがって、配信サイトのユニークなセットを有するコンテンツプロバイダごとに、一次配信ファイルがコンフィギュレーション・ユーティリティ34によって選択される。これを達成するために、前記テストを一度実行することができ、その後、一実施形態においては、数値重みを配信サイトのそれぞれの適切なセットに適用することができる。コンテンツプロバイダのグループごとに1つ、複数のスマートミラーサイトが選択される。コンテンツプロバイダのグループは、配信サイトファイルにおいて指定される。それぞれの考えられる配信サイトは、1つまたは2つ以上のコンテンツプロバイダグループに属しているとして識別される。コンテンツプロバイダグループが使用されるとき、2つのグループしかないことがある。最大数は、本来、無制限である。
配信サイトの優先順位が付けられている格付けもまた作成しかつ維持することができることに注意する必要がある。これが実行される場合、1次スマートミラーサイトが応答できないと、システムは次に高い順位が付けられているスマートミラーサイトに後退することを許容される。
スマートミラーサイトが選択された後、一定のデータが、eメールまたはその他のインターネット電子プロトコルを介してMSP32に送信されることになる(ステップ52)。ユーザに照会することによって受け取られる情報、選択されたスマートミラーサイトの識別情報、および、各テストが実行された時刻と日付を含む、すべての未処理テストデータと結果が(ある実施の形態では暗号化されている)テキストファイルにコンパイルされる。MSP32によって受信されると、データは、システムを管理しかつ分析する上で使用するためのデータベースに記憶される。
最終的に、コンフィギュレーション・ユーティリティ34は、配信サイトの各セットごとのために選択されたスマートミラーサイトの識別情報または(暗号化されている)コンフィギュレーション・ファイルに従って優先順位が付けられているリストを保存する(ステップ54)。コンフィギュレーション・ユーティリティは、また、テストされた各配信サイトごとの相対的なパフォーマンスに関する情報も保存することとしてもよい。クライアント・プログラム36は、適切なスマートミラーサイトからデータファイル(ビデオクリップまたはその他のコンテンツ)をダウンロードするために暗号化されているコンフィギュレーション・ファイルを使用する。
システムの運用では、MSP32が一定の機能を実行することに注意する必要がある。MSP32は、配信サイトのリストを維持し、必要に応じてサイトを追加し、かつ、削除する。MSP32は、また、コンフィギュレーション・ユーティリティ34を実行しているユーザから、eメールまたは他の手段によって受け取られる情報を格納するネットワークパフォーマンスに関するデータベースも維持する。大量のデータが多数のユーザから受け取られるので、データベースは、インターネットのパフォーマンスとその他の特性、および、その部分に関する貴重な情報を提供することができる。このような情報を運営するためには、多様なデータ処理技術が知られている。
本発明で使用される配信サイトの位置は、究極的には、マーケティングの考慮事項およびコスト/利益の分析を含む数多くのファクタによって決定される。しかしながら、MSPのデータベースに記憶されているデータは、インターネットまたはそれ以外のネットワーク上の与えられた位置に配信サイトを配置する有用性を確認することができる。一実施形態においては、サーバは、各主線(major backbone)(単一の企業によって維持されているインターネットの部分)の上に、および、地域ベル電話会社(“RBOCs”(Regional Bell Operating Companies))によって運用されている主要回線のような多数のユーザにサービスを提供している他のインターネット回線上に、配置される。多数のユーザにサービスを提供し、または、激しいビデオ配信トラフィックを有する一定のネットワークでは、サーバは、各ユーザが高速サーバにアクセスすることを確実にするために、ネットワークのための主要な接続点(“POPs”(Points of Presence))に配置することができる。
いったんコンフィギュレーション・ユーティリティ34が実行されると、ユーザは、システムを使用し、データファイル、具体的にはビデオクリップ、音声クリップ、ソフトウェアプログラムおよびその他のコンテンツの受信をイネーブルし、かつ、容易にすることができる。
時間が経過するとともに、ユーザのインターネットの領域の使用パターンが変化するにつれて、ユーザは、自分のユーザ端末12に対応しているスマートミラーサイトのパフォーマンスに満足できなくなる可能性がある。それが起こると、ユーザはコンフィギュレーション・ユーティリティ34を自由に再実行する。そのときまでに、追加配信サイトがサービスとして稼動されているか、あるいは、別の先に存在していたサイトが以前に割り当てられたサイトより良好に実行動作をする可能性がある。さらに、選択されたスマートミラーサイトが十分に実行されていない(例えば、それが10回の試行の内3回失敗した)とプレーヤー・プログラム36が判断すると、プレーヤー・プログラム36は、ユーザにコンフィギュレーション・ユーティリティ34を再実行するようにプロンプトを出すことができる。本発明の他の実施の形態では、テストおよびミラーの割当てが、スマートミラーサービス上でのファイルに対する各要求で、または、各別の要求、3回目の要求、10回目の要求もしくは100回目の要求のたびのように、なんらかの間欠時間で、自動的に実行される。
本発明の一実施形態では、スマートミラーシステムは、ウェブページ上で参照されているビデオクリップまたは音声クリップ(“クリップ”(“clip”))をそこからダウンロードする配信サイトの位置を突き止めるために使用される。この実施の形態においては、クライアント・プログラムは、“プレーヤー・プログラム”と呼ばれるか、“プレーヤー・プログラム”と見なすことができる。プレーヤー・プログラムは、クライアント・プログラム36の機能を実行することに加え、ビデオデータの検索およびプレーバックも可能にする。通常、ブラウザ・プログラム38は、ウェブコンテンツを表示するためにユーザ端末12上で実行される。典型的に使用されているブラウザ・プログラムは、NCSA Mosaic、Netscape NavigatorおよびMicrosoft Internet Explorerを含む。ブラウザ・プログラム38によって、ユーザは、インターネット上の多様なウェブサイトの間でホットリンクをすることができる。
EMBEDタグは、HTML文書内で使用され、どのウェブページがシステムによって管理されているコンテンツを含んでいるのかを示す。ブラウザ・プログラム38がEMBEDタグを含むウェブページを受け取ると、そのタグで参照されているファイルのダウンロードが始まるとともに、そのファイルタイプが分析される。ファイルがMPEGなどのプレーヤー・プログラムによって処理されているタイプである場合、ブラウザ・プログラム38は、プレーヤー・プログラム36を開始する。それから、そのタグのコンテンツはブラウザ・プログラム38によってプレーヤー・プログラム36に渡される。
プレーヤー・プログラム36(図1)は、MSP32によって容易にされているスマートミラー化サービスを提供する。プレーヤー・プログラム36の動作は、図3に詳細に示されている。
プレーヤー・プログラムは、最初に、EMBEDタグを分析し、「SM」(スマートミラー)パラメータがあるかどうかを判断する(ステップ60)。このようなパラメータの存在は、埋め込まれているクリップがスマートミラー化のためにイネーブルされていることを示す。「SM」パラメータに関連しているデータは、希望されているクリップの発信元である特定のコンテンツプロバイダを指定するとともに、その特定のコンテンツプロバイダが使用するミラーサーバのグループも同様に指定する。
EMBEDタグがシステムによって処理されているビデオクリップまたはその他のコンテンツを参照しているとプレーヤー・プログラム36が判断する場合(ステップ62)、コンテンツプロバイダ22からの埋め込まれているクリップの転送は停止される。それから、プレーヤー・プログラム36は、存在する場合には、EMBEDステートメントからアクセス制御またはレーティング情報を抽出する(ステップ64)。このレーティング情報は、ユーザ端末12に格納されているコンフィギュレーション・ファイルに記憶されている基準レベルに対して比較される(ステップ66)。レーティング情報がクリップに関し存在しない場合、コンフィギュレーション・ファイルは、以下に規定するように、レートが定められていないクリップが再生されてよいかどうかを判断するために問い合わせをされる(ステップ68)。前記情報に基づき、プレーヤー・プログラム36は、希望されているクリップの表示を許可するか、または、拒絶することになる。
プレーバックが許可されると、プレーヤー・プログラム36が、ユーザ端末12に属しているローカルコンピュータ上で参照されているクリップを発見しようとする(ステップ70)。それがそこに存在する場合、それは再ダウンロードされず、(ディスクからまたはRAMから)コンピュータ上で直接再生することができる(ステップ72)。ただし、ローカルコンピュータでのクリップの作成の時刻および日付は、まず、ネットワークで利用可能なクリップの時刻および日付に付き合わせて検証され、記憶されているクリップが最も最近のバージョンであるかどうかを判断する(ステップ74)。それが最も最近のバージョンではない場合、記憶されているクリップは破棄され(ステップ76)、かつ、ダウンロードが以下のように進む。
クリップがローカルコンピュータ上に存在しない場合、プレーヤーは、以下の形式による新たなURLを作成する(ステップ78)。すなわち、コンフィギュレーション・ファイルに記憶されている選択されたスマートミラーサイトのIPアドレスと、ミラーファイルへのパス名(例えば、“/pub/mirror/”)と、EMBEDステートメントにおける「SM」のパラメータから取得されるコンテンツプロバイダの名称と、EMBEDステートメントから取得されるファイル名とを、“http://”にプラスする。その構築されたURLは、コンフィギュレーション・ユーティリティ34によって選択される適切なスマートミラーサイトから、選択されるクリップを検索するために使用される(ステップ80)。1つより多いセットの配信サイトが異なるコンテンツプロバイダに存在する場合、「SM」パラメータは、さらにプレーヤー・プログラム36によって使用され、構築されたURLでコンフィギュレーション・ファイルにおけるどのスマートミラーサイトが使用されるのかを決定する(ステップ82)。本発明の一実施形態では、サイト選択が少なくとも部分的にリダイレクトサーバ(redirection server)によって実行される。この実施の形態は、図4を参照して後に詳述する。
構築されたURLに対応するクリップがスマートミラーサイトで見つからない場合、または、アクセスできない場合には、ダウンロードは、その後、コンフィギュレーション・ファイル内の次に高い順位のスマートミラーサイト、あるいは、リダイレクトサーバによって選択された次に高い順位の配信サイト(図4を参照のこと)から進む(ステップ84)。すべての配信サイトが失敗すると、ダウンロードは、EMBEDステートメントによって直接的に指定されているように、元のコンテンツプロバイダのサイトから進む。
プレーバックが禁じられると、プレーヤーはクリップが転送されるのを防止するとともに(ステップ88)、ユーザに対してダウンロードが許可されないことを忠告するビットマップを表示する(ステップ90)。
EMBEDタグがシステムによって処理されていないビデオクリップまたはそれ以外のコンテンツを参照しているとプレーヤー・プログラム36が判断すると、そのプレーヤーは、コンフィギュレーション・ファイル内に設定されているアクセス制御レベルが、ユーザに対し、これらのクリップまたは“レートが定められていない”(“unrated”)と見なされている他のファイルを再生することを許すかどうかをチェックすることになる(ステップ92)。許すのであれば、そのクリップは、従来の手段によってその元のコンテンツプロバイダ22から転送され(ステップ94)、プレーヤー・プログラム36がダウンロードされたファイルを表示する(ステップ96)。許されない場合は、プレーヤーは、クリップが転送されるのを防止するとともに(ステップ98)、ユーザに対し、ダウンロードが許可されていないことを忠告するメッセージを表示する(ステップ100)。
ダウンロード時、希望されているクリップを表すデータファイルは、ユーザ端末12に属しているローカルコンピュータ上の指定されているデータ領域内、通常はハードディスク上に記憶される(ステップ102)。一実施形態においては、このデータ領域は、プレーヤー・プログラム36によって最低使用頻度(least-recently-used)を基準として管理することができる。すなわち、データ領域内に新規クリップ用に場所がない場合、最低使用頻度の(または表示されていない)1つまたは複数のクリップを場所を作るために破棄することができる(ステップ104)。
本発明の一実施形態においては、クライアント・プログラム36が、ダウンロードが成功したかどうかを反映するために、MSP32にメッセージを送信することができるものとなっている(ステップ106)。このメッセージには、ユーザ端末12のインターネットアドレス、選択されたサーバセットの識別情報、ダウンロードを達成するために使用されているサイトのインターネットアドレス、失敗したすべてのサイトのインターネットアドレス、ダウンロードされたファイルの名前、および。ファイルをダウンロードするための時間が含まれている。この情報は、また、ファイルのダウンロードを追跡調査するため、および、リアルタイムで任意のスマートミラーサイトに問題があるかどうかを判断するために、MSP32によって使用することもできる。
代わりに、クライアント・プログラム36は、ファイル転送パフォーマンスの小さいローカルデータベースを維持することができる。それから、各ダウンロードが時間を合わせられることになる。具体的には、サーバが要求されたファイルを送信し始めるのに要する時間、データ転送速度の安定性、および、転送の誤り率に関して情報を集めることができる。なんらかの間隔(例えば、毎週、またはダウンロード100回につき1度)で、前述したユーザとサーバの情報と同様に、蓄積されたファイル転送パフォーマンスの情報を含むメッセージが(自動的にまたは要求時に)MSP32に送信され(ステップ106)、MSPのデータベースをアップデートする。この追加情報によって、いかなる追加のテスト間接費をも生じさせることなく、ネットワークパフォーマンスに関するMSPの“知識”(“knowledge”)が増加する。
このデータは、配信サイトプロバイダから購入されているサービスの質を評価する目的で、および、システムのコストをサポートするためにコンテンツプロバイダにサービスの質を文書化する目的で、配信サイトのパフォーマンスを把握する上で特に貴重である。しかし、同じ情報の多くは、コンフィギュレーション・ユーティリティ34を実行している新規ユーザを通して入手することができることが認識される。
本発明の一実施形態においては、MSP32のデータベースから引き出される情報は、そのユーザと潜在的な配信サイトのリストの間のネットワークを試験するために、実際にコンフィギュレーション・ユーティリティを実行する必要なしに与えられたユーザのための配信サイトの改善を予測するのに使用することができる。さらに具体的には、MSP32データベースに含まれている総計ネットワークパフォーマンスデータは、与えられたインターネットIPアドレスと異なる配信サイトの数との間のパフォーマンスの差異という点で分析される。この分析に基づき、ユーザのIPアドレスと、さらに優れたデータ配信パフォーマンスを提供する配信サイトとの間の相関関係を引き出すことができる。この相関付けられているデータは、配信サイト選択の過程でMSP32が活用することができるルックアップテーブルを作成するために使用される。
実際には、リダイレクトサーバがMSPネットワーク内に含まれる。一実施形態においては、リダイレクトサーバの機能が、MSP32サーバ内で実現され、かつ、MSP32サーバによって実行される。代替の実施形態においては、複数のリダイレクトサーバがネットワーク全体の様々な位置で利用されることとしてもよい。
動作中、リダイレクトサーバは、ユーザがMSP配信システムによって管理されているファイルを要求するときに、ユーザのIPアドレスを取得することになる。前述したように、EMBEDステートメントを通してリダイレクトサーバに対する要求がなされる。EMBEDステートメントは、単一のリダイレクトサーバ(例えば、MSP32)を識別して特殊なサーバIPアドレスを明示的に参照することができ、あるいは、シーケンスもしくはランダムな順序でアクセスを試みることができる複数のリダイレクトサーバを指定している(例えば、JavaScriptまたはJavaプログラミング言語の)スクリプトもしくは実行可能なプログラムコードを含むことができる。それから、HTTP(HyperText Transport Protocol)要求が典型的には要求者のアドレスに関する情報を含むので、ユーザのIPアドレスは従来の手段を介してサーバによって決定される。それから、リダイレクトサーバが、ユーザのIPアドレスをルックアップテーブル内に位置している最適な配信サイトにマッピングし、かつ、配信サイトアドレスをユーザに転送する。それから、ユーザのクライアント・プログラム36またはリダイレクトサーバは、ファイルが最適な配信サイトから配信されるように、ファイル要求の宛先変更をする。
ルックアップテーブルを設計する上で重要なファクタは、インターネット上の多数のアドレスに由来する。インターネットに接続されているあらゆるコンピュータには、アドレスが割り当てられている。従来のインターネットアドレス指定方式では、アドレスは、規約により4バイトの値から構成され、各バイトを10進数(0−255)に変換し、かつ、バイトをピリオドで区切ることによって表記される。例えば、“www.intervu.net”サーバのアドレスは、192.215.147.185である。このアドレス方式を使用する場合、インターネット上には40億を超える使用可能なアドレスがあることになる。この技術分野の現行の状態を考慮するならば、40億のアドレスを含むルックアップテーブルは、大規模過ぎてここに説明されている実施の形態では使用できないため、テーブルを圧縮するための方法が探求された。
最適な配信サイトの選択は、多くの場合、ユーザのIPアドレスの第1番目のバイトに相関付けることができることが判明している。この相関関係は、コンフィギュレーション・ユーティリティ34を実行した後に、同じ第1バイトのアドレスを有している統計的に意味のある数のユーザが、同じ配信サイトまたは配信サイトの小さいグループからの別のサイトを選択するようなものとなっている。これらの配信サイトが、相関付けられていない配信サイトに比較して、同じ第1バイトアドレスを有する大部分のユーザにとって改善されたパフォーマンスを提供することが認められる。相関関係は、本発明の一実施形態において、0−255に番号付けされた第1バイトのIPアドレスのリストと、各アドレスに対して対応しているIPアドレスを有するユーザに改善されたパフォーマンスを提供する配信サイトのリストとを含む、圧縮されたルックアップテーブルが形成されるに充分な、重要なものである。このようにして、1つまたは2つ以上の配信サイトが、アドレスリストの各エントリにマッピングされる。
一定の状況では、ルックアップテーブルにおける第1バイトIPアドレスのいくつかは、対応するサーバにマッピングされないことがあることに注意する必要がある。これは、例えば、ほとんどのユーザがテーブル中のある特定のエントリに対応しているIPアドレスを持っておらず、かつ、それらの内の十分な数が統計的に重要または信頼できる結果を生じさせるためにコンフィギュレーション・ユーティリティ34を実行しなかったときのケースが当てはまる。このケースでは、1つまたは2つ以上のデフォルトサーバを、特殊なサーバがルックアップテーブルにおいて識別されていないときに、使用するためのデータベースにおいて指定することができる。
好ましい実施の形態においては、ルックアップリストは、単一リダイレクトサーバ、例えばMSP32に記憶される。ただし、ルックアップリストおよび関連するプログラミングは、また、ウェブページのサーバ、コンテンツプロバイダ22サーバ、または、前記の組み合わせにおいて記憶することもできる。
リダイレクトサーバは、以下のように、また図4に説明されるように、配信サイトを選択するためにアクセスされる(ステップ82、図3)。ユーザは、そのファイルのEMBEDステートメントを有しているリンクをクリックすることによって、ユーザ端末ブラウザを介して、ウェブページ上で参照されているファイルを要求する。そのファイル要求がMSPの配信システムによって管理されているファイルに対してである場合、そのファイル要求は、従来のHTMLファイル要求意味論、つまりサーバ「GET」を使用して、リダイレクトサーバ(例えば、MSP32)に転送される(ステップ120)。
リダイレクトサーバは、到来する要求を調べ、かつ、ウェブサーバによって供給されている“REMOTE_HOST”変数を使用してユーザのネットワークアドレス(IPアドレス)を判断する(ステップ122)。図4に説明されている本発明の実施形態は、ユーザ端末12上にインストールされている(クライアント・プログラム36のような)特殊目的クライアント・プログラムがなくても達成することができることに注意する必要がある。クライアント・プログラム36がまったくインストールされておらず(ステップ124)、かつ、ユーザが、スクリプトまたはダウンロードされたプログラムによって問い合わされるときに、クライアント・プログラムのインストールを希望しない(ステップ126)場合は、サイト選択は完全にリダイレクトサーバによって実行される。
それから、リダイレクトサーバは、ユーザのIPアドレスを分析するとともに、ルックアップテーブルの潜在的な配信サイトのリストを調べ、1つまたは複数のどの配信サイトがユーザのIPアドレスと相関付けられているのかを判断する(ステップ128)。それから、リダイレクトサーバは、1つ以上のアドレスがユーザのルックアップテーブルのエントリに一致する場合、配信サイトアドレスを選択する(ステップ130)。単一の配信サイトアドレスが見つかったときは、HTTPリダイレクト応答が、選択された配信サイトからファイルを配信するために使用される(ステップ132)。HTTP仕様に従って、あるサーバから要求されているファイルは、ユーザまたはクライアント・プログラムのいかなる介入をも要せずに、そのサーバによって別の位置に宛先変更することができる。これでサイト選択は完了する(ステップ134)。トランザクションを完了するためには、クライアント・プログラムが選択された配信サイトからファイルのコピーを要求し、かつ、配信サイトサーバが該ファイルを検索するとともにそれをユーザに配信する。
ユーザがクライアント・プログラム36のインストールを希望する(ステップ126)場合には、そのプログラムは従来の手段によってダウンロードされ、かつ、インストールされることになる(ステップ136)。クライアント・プログラム36がすでにインストールされていた場合(ステップ124)、あるいは、インストールがちょうど完了したところである場合、ファイル要求は違うように進み、サーバ側とクライアント側両方の処理を活用し、考えられる最も効率的な方法でファイルを検索することができる。
第1に、リダイレクトサーバは、ユーザのIPアドレスを分析し、かつ、ルックアップテーブルの潜在的な配信サイトのリストを調べ、1つまたは複数のどの配信サイトがユーザのIPアドレスと関連付けられているのかを判断する(ステップ138)。ルックアップテーブルを格納しているリダイレクトサーバが、配信サイトのサブリストを含む小さいファイルを作成し(ステップ140)、かつ、これをユーザ端末12に送信し(ステップ142)、および、最終的な配信サイトの選択を行うために、クライアント・プログラム36に依存すること(ステップ144)が考えられる場合もある。これが発生するいくつかの理由がある。
第1に、前述したように、総計ネットワークパフォーマンスデータの分析は、(単一の配信サイトとは対照的に)多くの配信サイトが同じ第1バイトアドレスの範囲を有する一定のユーザに対して改善されたパフォーマンスを提供することを示すことがある。例えば、これは、全員が単一の第1バイトアドレス内で同じ第1バイトアドレスまたはアドレスの範囲を有する数多くのユーザは、コンフィギュレーション・ユーティリティを実行後に異なる配信サイトを選択した場合に発生する。この場合では、クライアント・プログラム36は、リダイレクトサーバによってダウンロードされているサブリストを取得し、かつ、それをコンフィギュレーション・ユーティリティの実行によって以前に選択された(図3、ステップ54を参照)ミラーサイトの保存されているリストと比較することができる。一致が見つかると、クライアント・プログラムは、ファイル要求を一致している配信サイトに宛先変更する(ステップ146)。これらの配信サイトの1つまたは2つ以上が、特にコンフィギュレーション・ユーティリティが最近実行されていない場合に、以前にコンフィギュレーション・ユーティリティによって選択された任意の配信サイト上で改善されたパフォーマンスを提供することがあるため、クライアントには、また、クライアント・プログラムによってなされた選択を無視するとともに、ルックアップリストに含まれている配信サイトの中から最良の推量の選択を行うというオプションもあることになる。
第2に、MSPによって管理されている配信サイトおよびIPアドレスの数が、ルックアップテーブルが大きくなりすぎて実践的でありえない点まで増加した場合、つまりリダイレクトサーバが以前のファイル要求の代わりにルックアップテーブルを捜索することでビジー状態になるために新しいファイル要求に応答することに遅れる場合にもまた、状況が発生する可能性がある。これが当てはまる場合には、ルックアップテーブルを捜索するというタスクは、リダイレクトサーバとクライアント・プログラム36との間で分けられる。このようにして、ユーザ端末12は、処理のいくらかを実行することと、最終的な配信サイトの選択を行うことによってルータとしての役割も果すこととを要求される。
これを達成するため、リダイレクトサーバは、ルックアップテーブルを与えられた範囲のアドレスを含むより小さいサブリストに細分化する。このようにして、リダイレクトサーバがファイルに対する要求を受け取ると、サーバはユーザのIPアドレスを、対応するアドレス範囲を含むサブリストにマッピングし(ステップ138)、その後、該サブリストを含む小さいファイルを作成し(ステップ140)、かつ、ユーザにダウンロードする(ステップ142)。それから、クライアント・プログラム36はルータとしての役割を果たし、ユーザのIPアドレスをサブリスト上の適切な相関付けられている配信サイトアドレスにマッピングするか、あるいは、サブリスト上の配信サイトと前述したようにネットワークパフォーマンステストを以前に実行した後にコンフィギュレーション・ユーティリティ34によって保存された優先順位が付けられているサイトのリスト上の配信サイトとの一致を探すことによって、サブリストのルックアップテーブルにおける配信サイトの中から配信サイトを選択する(ステップ144)。クライアント・プログラムがいったん配信サイトを選択すると、そのクライアント・プログラムは、選択された配信サイトへファイル要求を宛先変更する(ステップ146)。リダイレクトサーバとユーザ端末12の間で作業を分割することによって、ファイル要求をより迅速に処理することができ、それによってユーザがファイルを要求する時刻とファイルがユーザ端末12によって受け取られる時刻との間の遅延を減少させる。
MSP32のリダイレクトルックアップテーブルは、ネットワークパフォーマンスの変化に応じて頻繁にアップデートされるが、ユーザに渡されているサブリストは、少なくとも数日間は満足の行くものであることが予想される。したがって、クライアント・プログラム36は、新しいサブリストを取得する前の数日間、該リストを再利用することができる。この機能は、例えば、ファイル要求ステートメントをホストするウェブページに埋め込まれているスクリプトによって実現することができる。そのスクリプトは、ユーザ端末12に記憶されているサブリストにおいて符号化されている満期日に関してクライアント・プログラム36に問い合わせることができる。満期日およびサブリストのタイプは、リダイレクトサーバに戻すことができ、かつ、必要ならばサーバが新しいサブリストを回送することになる。
ある特定のユーザがMSP配信システムによって管理されているファイルを要求することとしてもよく、システムがそのユーザに関する知識を持っていない(つまり、ユーザのIPアドレスとルックアップテーブル中の配信サイトの間で一致がまったく見つからない)ことが可能である。この場合、リダイレクトサーバは、リダイレクトサーバに格納されているデフォルトリストからそのユーザ向けの配信サイトを選択することになる(ステップ130および144)。ユーザがこの配信サイトから要求されているファイルをダウンロードすると、そのユーザは、埋め込まれているスクリプトまたはプログラムにより、コンテンツ配信を改善する目的でMSP32からコンフィギュレーション・ユーティリティファイルを取得するようにプロンプトを出されてもよく、あるいは、コンテンツ配信の改善のための近似(approximation)である(例えば、類似しているが同一ではない第1バイトIPアドレスの)サーバを一時的に割り当てられることになる。ユーザがコンフィギュレーション・ユーティリティを取得し、かつ、実行すると、ユーザ端末12は、前述したように、MSP32に多様なネットワーク試験の結果を提供し始め、この情報は、究極的にはネットワークパフォーマンスデータのMSPデータベースの一部となる。このようにして、その新しいユーザからの次のファイル要求時には、リダイレクトサーバは、追加ネットワークパフォーマンスデータの分析に基づき、該ユーザのIPアドレスをさらに適切なサーバにマッピングすることになる。
ルックアップテーブルを変更することによって、リダイレクトサーバは、また、ファイル要求に関して負荷の配分と管理も実行することができる。MSP32(またはMSP32を制御している個人)が、ネットワークのセクションがある時間の間ダウンするだろうと事前に判断する場合、あるいは、一定の配信サイトがある時間の間シャットダウンされなければならない場合、リダイレクトサーバがユーザの注意を代替の配信サイトに向けるように、ルックアップテーブルを修正することができる。したがって、同じファイルに対する2つの連続する(back-to-back)要求時には、ユーザは2つの異なる配信サイトに向けられてよいこととするのも可能である。
ルックアップテーブルのサブリストを含むファイルが、コンフィギュレーション・ユーティリティ34によってネットワークテストを実行するために使用される配信サイトファイルとして機能することができることが理解される必要がある。そのサブリストは、以前にネットワークテストを実施したことのある他のユーザのグループから引き出される総計ネットワークパフォーマンスデータにより、パフォーマンス改善があるかどうかすでに審査された配信サイトを表す。この配信サイトのサブリストは、リストに対してコンフィギュレーション・ユーティリティ34を実行し、かつ、過去の配信サイトファイルから保持されているネットワークテストのシーケンスを実行することによって、さらに切り詰める、または、優先順位を付けることができる。いったんサブリストに優先順位が付けられると、コンフィギュレーション・ユーティリティ34は、前述したように(暗号化されている)コンフィギュレーション・ファイルに従って、リストを保存する。
以下の例示的な説明において、スマートミラーシステムは、ウェブページの広告の見出しに参照されているビデオクリップのダウンロード元の、改善されている配信サイトの位置を突きとめるためにルックアップテーブルを活用する。広告のような相対的に人気のないコンテンツを取り扱うときには、潜在的な顧客が興味を失わないように、意図されている顧客に広告の内容を可能な限り迅速に配信することが重要である。ウェブページの広告見出しの内容に関しては、同じことが当てはまる。つまり、事前に相当量のソフトウェアをダウンロードする必要なしに、顧客にビデオを可能な限り迅速に配信することができることが望ましい。したがって、高価なサービスとして本発明を活用することの代替策として、サービスプロバイダは、インターネットを経由してウェブページに広告見出しを拡布することができる。各見出しはビデオクリップを参照し、それらクリップのすべてがその目的のために確立されているコンテンツプロバイダのサーバで格納されることになる。
この例では、クライアント・プログラム36は、“プレーヤー・プログラム”と呼ばれるとともに、それは、前述したように、ビデオデータを検索し、かつ、プレーバックする追加機能性を有している。(Netscape NavigatorまたはMicrosoft Internet Explorerのような)ブラウザ38は、ユーザ端末12でウェブコンテンツを表示するため、および、ユーザ端末12とインターネット10上のその他のコンピュータとの間で通信するために、使用される。
クライアントがウェブページに表示されている広告見出しを選択すると、その見出し中に符号化されているEMBEDタグがブラウザによって調べられる。ブラウザが、EMBEDタグによって参照されているファイルのダウンロードを開始し、かつ、ファイルのタイプが分析される。ファイルがMPEGなどのプレーヤー・プログラムによって処理されているタイプであれば、ブラウザはタグをプレーヤー・プログラムに渡すことによってプレーヤー・プログラムを始動する。プレーヤー・プログラムは、ビデオクリップのファイル名がないかEMBEDタグを調べ、かつ、ユーザ端末に属しているローカルコンピュータ上でそのクリップを見つけようとする。そのクリップがそこに存在する場合、それは再ダウンロードされず、(ディスクからまたはRAMから)コンピュータ上で直接再生することができる。そのビデオクリップがローカルコンピュータ上にない場合は、プレーヤー・プログラムはEMBEDタグを分析し、「SM」(スマートミラー)パラメータがあるかどうか判断する。このようなパラメータの存在は、埋め込まれているクリップがスマートミラー化のためにイネーブルにされていることを示す。SMパラメータは、さらに、特定のコンテンツプロバイダが使用するミラーサーバのグループと同様に、リダイレクトサーバのアドレスと、上述したように希望されているクリップの発信元である特定のコンテンツプロバイダとを指定する。
プレーヤー・プログラムがリダイレクトサーバを指定しているパラメータを認識すると、プレーヤー・プログラムはブラウザを呼び出し、参照されている広告見出しファイルを従来のHTMLファイル要求技術によってリダイレクトサーバから要求する。リダイレクトサーバは到来する要求を調べ、かつ、クライアントのIPアドレスを判断する。リダイレクトサーバは、クライアントのIPアドレスをルックアップテーブルにマッピングするとともに、配信サイトアドレスまたはサブリストを検索する。配信サイトアドレス(または配信サイトとIPアドレスのサブリスト)は、リダイレクトサーバによってプレーヤー・プログラムに戻される。サブリストが戻されると、前述したように、プレーヤー・プログラムは、一覧表示されているサイトの中からただ一つの配信サイトを選択する。ただ一つの配信サイトがいったん決定されると、プレーヤー・プログラムは、“http://”に、選択された配信サイトのIPアドレスと、ファイルをミラー化するためのパス名(例えば、“/pub/mirror/”)と、EMBEDステートメントにおける「SM」パラメータから取得されるコンテンツプロバイダの名前と、EMBEDステートメントから取得されるファイル名とを、足し合わせた形式の新規なURLを作成する。構築されたURLは、ルックアップテーブルから選択された配信ファイルから、選択したクリップを検索するために使用される。
EMBEDタグの中のSMパラメータがリダイレクトサーバを指定していない場合、あるいは、リダイレクトサーバが利用できず、かつ、応答を返さない場合、プレーヤー・プログラムは、コンフィギュレーション・ユーティリティファイルに記憶されているスマートミラーサイトの優先順位がつけられているリストから任意のIPアドレスを選択するとともに、URLにおけるこのアドレスを置換することになる。プレーヤー・プログラムが、スマートミラーサイトの優先順位が付けられているリストの存在を検出しない場合(例えば、ユーザがコンフィギュレーション・ユーティリティ34を絶対にダウンロードしなかった場合)は、プレーヤー・プログラムは、EMBEDステートメントによって直接指定されるように、元のコンテンツプロバイダのサーバのアドレスを使用してビデオを要求することになる。
広告コンテンツの配信に目標が明示的に定められていない用途では、ダウンロード情報をMSPに提供することによって、高価な加入を基本としたサービスとしての本発明の使用が容易になる。成功したダウンロードはデータベースにおいて追跡調査されるので、各ユーザが請求金額を追跡調査するための関連「アカウント」を持つことができる。ユーザは、ファイル単位、メガバイト単位、月単位、あるいは、それ以外の既知の手段によって、スマートミラーシステムの使用に関して料金請求され得る。一実施形態においては、ファイルに関連しているEMBEDタグが料金請求書作成発行の情報、つまりファイルの「価格」を含む。本発明のダウンロードパフォーマンスの追跡調査によって、ダウンロードが過度に困難であるか、あるいは低速であると判明すると、割引または信用貸し(credits)を発行することができる。
スマートミラー配信サイト上で記憶されているファイルが、本発明の認可されているユーザ(例えば、支払い済みアカウントを有するそれらのユーザ)だけによって使用されることを保証するために、配信サイトで記憶されているファイルは、任意に暗号化形式を取ることができ、かつ、前述したダウンロードステップは、暗号解読ステップを含むこととすることができる。このような暗号化および暗号解読は、周知の手段によって達成することができる。
上述したように、本発明によって管理されているクリップは、それと関連しているコンテンツのレーティング情報を有するものとすることができる。これは、クリップに対応するEMBEDステートメントにおける「PG」パラメータを提供することによって達成される。一実施形態においては、4つの特徴が指定されている。つまり、裸体(nudity)、性別(sexuality)、不敬(profanity)および暴力(violence)である。したがって、PGパラメータは、4桁の引数によって指定することができる。各特徴は1対3という尺度で指定されている。1はフィルタ機能なし(つまり、すべてのコンテンツが許容できる)に対応し、2は多少のフィルタ機能(例えば、基本的に放送テレビで許されているレベルに等しい)に対応し、3は最も広範囲なフィルタ機能(例えば、子供用)に対応する。あるファイルのためにEMBEDステートメントに含まれているレーティングのレベルは、前記認可プロセスにおいてユーザ端末12に格納されたコンフィギュレーション・ファイルに含まれているレーティング・フィルタ・レベルと比較され、認可されているファイルだけが転送される。
上述した観点からすると、本発明の実施の形態が、与えられたユーザとコンテンツプロバイダまたは配信サイトとの間のネットワークのためのパフォーマンスデータの取得および分析を可能にする多くの異なるアプリケーションにおいて利用されてよいことが理解される。したがって、説明されている実施の形態は、インターネットというコンテキストの範囲で、インターネット型のアドレス指定方式を使用して動作しているシステムを示しているが、このようなシステムが、法人組織の“イントラネット”を含むが、それに限定されないその他のネットワーク環境において有効であることは明白であることが認識される。
さらに、例示的な実施の形態は、おもに、ビデオ配信システムで使用するために説明されているが、本発明によるシステムが、それ以外の多様な種類のコンピュータデータ(例えば、アプリケーションプログラム、データベースファイル、およびその他のビジネス情報、バーチャル・リアリティ・ファイル、マクロメディア・ショックウェーブ・ファイル(Macromedia Shockwave files)のようなマルチメディア、並びに、本などの大型テキストファイル)を分散するために、同様に使用できることが認識される必要がある。このような他の種類のデータは、上に詳細に説明したように異なるコンテンツプロバイダグループにおいて本発明によって管理することができる。(プレーヤー・プログラム36よりはむしろ)別の種類のプログラムが、他の種類のデータを表示または使用するために、ユーザ端末12で典型的に呼び出されることになる。
また、ユーザ端末12で実行されているものと記述された一定の機能性(特に、コンフィギュレーション・ユーティリティ34またはクライアント/プレーヤー・プログラム36によって実行される一定の機能)は、スタンドアロン・プログラムとして、ブラウザプログラム内で実行するための“プラグ−イン”(“plug-in”)もしくは“ヘルパー・アプリケーション”(“helper application”)として、または、ブラウザ環境内で実行するために配信サイトからダウンロードされるJavaアプレットとして、実現できることも注意する必要がある。Microsoft Windowsオペレーティングシステムを実行することができるユーザ端末にとっては、Microsoft ActiveXとして知られている環境もまた有効である。
一定の例示的な構成および動作が説明されてきたが、本発明は、そのように限定されず、かつ、その範囲は、以下に述べられている請求の範囲に従って決定されるべきである。
The present invention relates to a system and method for distributed data storage and retrieval, and more particularly, by which a user obtains network performance information for a multipurpose network that is dynamic and distributed. The present invention relates to a system and method. Here, this information will be used to identify and select the optimal distribution site or server for receiving computer data, specifically multimedia content. Such distribution sites and servers are selected to increase network capacity, distribute server load, and reduce transmission delays between servers and users.
Background of the Invention
The Internet is an open network of computers that are spread and connected throughout the world. A message can be sent from any computer on the Internet to any other computer by specifying the destination address and passing the message from computer to computer through a series of “hops”. it can. Each computer, router, or “node” on the Internet has a unique Internet address. When an intermediate computer or router receives a passing message, the computer checks the intended destination of the message and forwards the message one after another accordingly.
The Internet is developing at a rapid rate, both in terms of scale and sophistication. In the past, the majority of users on the Internet were academic, research or institutional users. The Internet was then used primarily to send and receive e-mail and network news and to allow the transfer of computer files. However, since the introduction of the World Wide Web (also known as “Web” or “WWW”) a few years ago, the Internet has generally been of interest, ie, the representation of images, articles, etc. Began to increase the amount of other types of data.
Web protocols and languages establish a graphical means of navigating the expanses of the Internet. In many cases, “web pages”, primarily consisting of text and graphic materials, are stored in a number of computers known as “web servers” in the Internet. A software program known as a “browser” is used to access and view web pages via the Internet by specifying the location of the desired web page (ie, the internet address) be able to. When a web page is accessed, that information is transmitted from the remote computer (server or distribution site) to the user via the Internet, wherever it is located in the world.
Recently, the web has begun to host highly sophisticated types of multimedia content and computer software, such as audio and video data. Compared to first generation web content, text and still images, audio clips, video clips and software programs have very high storage and bandwidth requirements.
Currently, it is difficult, if not impossible, to provide high-speed sustained transmission of large audio / video files over the Internet's multi-node links. Since data is often transferred from a distance, many factors can cause some or even some delay or loss of transmission. Whether the user experiences a minor delay in receiving a small graphic or text file is generally not critical. However, it is recognized that real-time data such as video has very specific and strict timing requirements for data transfer and display.
Unfortunately, the current design of a data network similar to the traditional Internet is based on the principle that delays and large data transmission rate variations are acceptable for normal data (eg text and still images) . As a result, due to the high price that allows access to text and graphic information from locations around the world, such transmission flaws are considered acceptable, and the basic capacity of the Internet reduces the data transmission costs. Somewhat “oversubscribed” to reduce. In other words, the timeliness of network data transmission have been compromised considerably to make the total cost of being a long distance communication connection relatively meaningless.
In order to successfully transfer audio-video data over a message-oriented network such as the Internet, network resources need to be deposited in a form that facilitates the timeliness of transmission for any user over several people. . A system that uses deposited network resources typically uses existing pricing methods for shared networks such as the Internet because it cannot participate in sharing network resources in data packets on a data packet basis. I can't do it. Video data must be transmitted excluding lower priority data. Therefore, especially when the connection is “long distance” or when the connection is continued for an extended time, the transmission cost is significant.
Another consequence of the time-to-cost tradeoff described above is an apparently indiscriminate network structural design. Variations in latency and throughput have traditionally been favored by low cost, so the configuration of the Internet infrastructure has also been determined by cost considerations. For this reason, the efficiency of network interconnections was rarely considered. Rapid development of real-time data is changing this demand.
It has been recognized that poor data transfer performance of time sensitive data over the Internet is typically caused by four factors: Packet loss, excessive server utilization, relatively low network infrastructure capacity, and inherent delays in network hardware. In particular, packet loss is caused by insufficient infrastructure and lack of robustness in routing. The inherent delay is believed to be caused by, among other things, the lack of flow control between adjacent nodes in a multi-node path on the Internet.
Unlike smaller text and graphic files, relatively large video files may require several minutes (or more) of “streaming”, ie, a continuous data flow. As a result, normal network performance problems are exacerbated. The network bandwidth, ie the data carrying capacity of a certain network is limited. This increases packet loss and delay. Long distribution time consumes a large amount of server capacity for a long period of time and reduces resources available to other users. Thus, as the network infrastructure becomes increasingly congested, packet loss and delay continue to increase, transmission times increase, and server load further increases.
This pattern illustrates a “downward spiral” of network performance that can be influenced by attempts to transmit large data files such as video clips. As long as the network traffic remains within the limits imposed by the network bandwidth, the network performance remains acceptable. However, whenever the peak network load exceeds capacity, the aforementioned continuous decline begins, extending the period of poor network performance.
As described above, the browser program may specify a desired web page location (ie, an internet address) or, more generally, “hot linking” to a web page (“hotlinking”). Can be used to access and view web pages via the Internet. Common browsers are Lynx, NCSA Mosaic, Netscape Navigator, and Microsoft Internet Explorer. The desired web page is a global resource location indicator (“URL” (uniform resource locator)) that uses the syntax “http: //internet.address/directory/filename.html” to indicate the exact location of the file. Specified by.
Web pages are usually written in a language known as “HTML” (HyperText Markup Language) in terms of layout and content. Any particular computer linked to the Internet can store and store one or more web pages, ie computer files written in HTML format, for access by the user.
Hot linking from one HTML web page to another HTML web page is accomplished as follows. A user first accesses a web page having a known address, often on a computer located in the user's ISP (Internet Service Provider). An ISP is an organization that provides Internet connectivity to users. In addition to textual and visual data specified in HTML format, the web page is often a “link”, the Internet of other web pages on other computers throughout the Internet. It may contain embedded information (in the form of a URL) that points to an address. The user can then access other web pages by selecting a link (often by pointing and clicking with the mouse), which in turn contains more data and / or additional links. Can be included.
Various extensions to HTML, such as Netscape's EMBED tag, allow other data to be referenced within a web page. Some browsers cannot process data other than text and images. On the other hand, there are browsers that can process data in various ways. For example, NCSA's Mosaic allows data to be downloaded to a user's computer, and subsequently calls an external program for viewing or manipulating the data, for unknown types of data. Handle references. With the recent release of Netscape Navigator and Microsoft Internet Explorer, the concept has gone one step further. That is, when data is received from a remote web page, a browser extension, or “plug-in”, can be automatically invoked to process the data. Other means such as the network program “applets” (“applets”) written in the Java language (or similar language) can be used to extend the functionality of the browser environment or network.
Digital multimedia data can have very high storage and bandwidth requirements. In particular, video files can be as large as about 10 megabytes to 10 gigabytes. In order for a user's terminal to play a video file at a speed approaching the recorded speed, the file must be delivered at a fast, unchanging speed. If it is too slow, the image will be played back more slowly than the original recorded one. If the speed is not uniform, the video will appear jerky like an old movie.
The network design tradeoff described above typically has an adverse effect on the transmission of audio and video data over the Internet. Users using browsers to “surf” the web may not be aware of minor delays and transmission rate fluctuations while searching for text and still images, Such defects become obvious and become prominent when real-time audio and video information is accessed.
In an attempt to solve these problems, Internet content providers may distribute popular content in the Internet on a variety of servers or distribution sites known as “mirror sites”. is there. Each mirror site contains information that is essentially identical to the information of the original site. For example, if a popular website is located in New York, the mirror sites may be located in Los Angeles, London and Tokyo. Thus, if a European user has difficulty accessing the original New York site, the user can hot link to the geographically closest mirror site, London.
However, mirror sites have some disadvantages. For example, mirror sites may be widely distributed geographically, but may not be efficiently distributed on the network in terms of actual usage, network traffic, and the like. Thus, both New York and Los Angeles mirror sites are connected to the same network of domestic Internet service providers, and the difficulty in accessing one of those sites may affect the other. It may mean that.
Furthermore, the mirror site may not be optimally arranged to reduce the load on each server. Although “educated guess” may be made as to where the mirror site should be located, the actual usage pattern may be different. Furthermore, there is no guarantee of performance improvement. The bandwidth of the mirror site may be lower than the bandwidth of the original site, or it may be overloaded for other reasons.
In addition, mirror sites are often hosted on a voluntary basis. If a service provider determines that a website is very popular and the subject matter may be of interest to the subscriber, the service provider agrees to host a mirror site of the original website there is a possibility. Such adjustments are attractive to mirror site hosts because people can be drawn to the mirror site and potentially hot-link to other content hosted there. On the other hand, such voluntary partnerships are typically unreliable and can be broken at any time.
Mirror sites are inherently secondary to data that may or may not be available and may improve user convenience, but do not address network bandwidth or efficiency. Provide source. Mirror sites do not take into account the performance characteristics of the network and can be used to efficiently transmit video data while still utilizing existing low cost pricing methods such as those over the Internet Does not identify any bandwidth.
There is currently no guidance on choosing the best location for a distribution site, nor is there any known way to guarantee optimal performance that will allow users to determine which mirror site to connect to . In fact, the use of conventional mirror sites is voluntary. Typically, a user tries to access the original site (or a known mirror site), and only if another person finds poor performance after one or more attempts. You will switch to the mirror site. This approach is an inefficient utilization of network resources. Clearly, mirror sites are not the best solution for overloaded website problems. Among other things, the main reason is that network performance is not taken into account.
Network analysis, particularly the performance of specific routes and links on the Internet, is well known and developed. For example, a “ping” program allows a computer connected to the Internet to determine whether a remote host is accessible. However, this ping program uses a low priority network protocol known as the ICMP protocol and therefore does not provide meaningful performance analysis information. The “traceroute” program tracks the transmission of messages from the computer to the remote host, tracks the delay along each link, and determines the path taken by the message. This traceroute application can be used to map the flow of data. However, it lacks the ability to provide meaningful performance analysis information. Traceroute only provides route information for messages propagating in a certain direction and only for a certain moment in time.
Furthermore, only the connectivity characteristics of the path following the single computer running the test and the path following it are typically determined. While it is possible to extend the scope of testing, the Internet is so large that it is logically not feasible.
Traditional network analysis technologies such as “ping” and “traceroute” programs provide a network connectivity perspective, but understanding what performance can be expected from providers and mirror sites via the Internet Almost no offer. Thus, only a “guess” can be made as to where the distribution site or mirror site should be located or which mirror site should be used to optimize performance.
Accordingly, there is a need for a method for determining overall network performance. A method that allows a content provider to dynamically place a data distribution or mirror site at the optimal network location and allows the user to select the optimal mirror site to receive the data. There is yet another need for the system to apply.
Summary of invention
The present invention is directed to a system and method for optimized distribution of web content to sites located in the Internet. Here, the intelligent mirroring method, called “Smart Mirroring”, determines the needs and distribution of mirror sites, and also optimizes the user's demand for certain web content. Used to point to the site.
Many “Smart” distribution sites or mirror sites are used to distribute popular web content across various parts of the Internet. A comprehensive method of network analysis based on tests performed by a large number of users interactively determines the preferred locations for the site and the optimal site to be used by each individual user Used to do.
Thus, overall network congestion is reduced because each individual user is routed to a smart mirror or distribution site that provides improved performance. In most cases, an improved server is placed electronically close to the user to reduce the number of network connections over which data must travel and thereby reduce packet loss and delay. The
In addition, network analysis results allow message traffic to be routed away from those overloaded delivery sites and network areas and towards under-utilized servers and networks. To. This provides an improvement in throughput as understood by each user and thereby increases the attractiveness of the content provided by content providers using the system. Content providers can reach a greater number of users via the Internet without suffering a noticeable degradation in performance.
The system according to the invention starts with the original website and at least one additional delivery (or mirror) site. Each user who wishes to use the system will be provided with software, including a configuration utility and a client program, in the preferred embodiment. The configuration utility is first used to determine which distribution site will provide improved performance for that particular user.
In one embodiment of the invention, the configuration utility first downloads a “delivery site file” from the service provider. This distribution site file contains a list of available distribution sites and a list of network tests to be performed. The type of test and the frequency of tests performed may be specified in the distribution site file to depend on the number of users testing the network and the approximate spill or distribution system capacity on the network.
The configuration utility will run a subset of the tests specified in the distribution site file. The test results indicate which distribution sites produce improved performance for the user, as well as information on the performance of various generalized networks from the perspective of the user performing the test. The network test results and selected distribution site identification information will be sent back to the distribution service provider for incorporation into the service provider's database (via email in one possible configuration).
The distribution site chosen by the configuration utility is then used by the user for searching all content managed by the distribution system service provider. As a result, when the user browses the web content and finds a particular item, such as a video clip, managed by the service provider's delivery system, the client software is automatically designated the “smart” Search for it from the “mirror” distribution site. Site preferences and default sites can be updated on demand, at a specified time, or in response to changes in network load and traffic.
In addition, the configuration utility of the present invention performs a variety of network tests and provides the service provider with the results of the tests so that valuable data regarding system and network performance can be obtained. . Such data is overloaded, which “smart mirror” distribution sites are performing effectively, which “smart mirror” distribution sites are not performing effectively, and which smart mirror distribution sites are overloading And information about which parts of the Internet may benefit from the addition of more distribution sites or capacity. Such data can also be used for advanced network analysis such as end-to-end performance measurements, throughput characterization, route stability and inactivity metrics. Enable execution.
In an embodiment of the invention, a mirror service provider is provided by an end user to operate a lookup table that correlates Internet IP addresses to “electronically close” distribution sites. Use network performance data. When a user browses a web page and requests a file such as an ad headline or video clip managed by the service provider's distribution system, the service provider maps the user's IP address to its lookup table In addition, it is possible to determine which distribution site is “electronically close” to the user. The service provider can then provide the user's configuration utility or client program with a single distribution site address or a list of distribution site addresses to these servers. In the latter case, the user terminal operates as a router that performs final distribution site selection.
In general, an improved delivery site for a particular user can be predicted in advance by analyzing aggregate network performance data collected from network tests previously performed by a group of users. it can. Thus, delivery site selection can occur on-the-fly each time a user requests a file managed by the mirror service provider's delivery system. From the user's point of view, the selection of the distribution site is automatically such that there appears to be no delay between selecting the file from the web page and owning the file distributed to the user's device. And transparently. The lookup list maintained by the service provider is constantly updated to reflect changes in network performance, allowing the service provider to efficiently load network traffic.
In this way, from an engineering point of view, the mirror service provider can continue to ensure that improved performance is provided. From a marketing perspective, content providers can be told where to place smart mirrors or distribution sites for improved performance and which ISPs will deliver improved distribution.
[Brief description of the drawings]
FIG. 1 is a block diagram of an exemplary network topology of a system according to the present invention that includes a wide variety of users and a wide variety of content providers.
FIG. 2 is a flowchart illustrating the operation of the configuration utility used in the system according to the present invention.
FIG. 3 is a flowchart for explaining the operation of the client program used in the system according to the present invention.
FIG. 4 is a flow chart showing how site selection is performed in an embodiment of the present invention.
Detailed Description of the Invention
The invention is described below with reference to exemplary embodiments that have been described in detail. It will be apparent that the invention may be implemented in a variety of different forms, some of which may be quite different from the forms of the disclosed embodiments. Accordingly, the specific structural and functional details disclosed herein are merely representative and do not limit the scope of the invention.
Referring initially to FIG. 1, the Internet 10 is depicted as a “cloud”. The Internet 10 is intended to represent a general wide area communication network. The Internet is known as an interconnected network of many computers. Although Internet connected computers that are “geographically” close to each other may be “electronically” close to each other on the Internet, this is not the usual case. However, one computer connected to the Internet can communicate with any other computer connected to the Internet. In other words, messages will almost certainly travel between computers that are directly connected to each other on a path that includes a sequence of links or “hops”.
A first user terminal 12 is also depicted in FIG. The first user terminal 12 is connected to an Internet service provider (ISP) 14 which is typically a computer, a router, or a terminal server connected to the Internet 10. The ISP 14 can host additional user terminals such as the second user terminal 16. Other ISPs such as the second ISP 18 are also connected to the Internet 10. The third user terminal 20 is shown connected to the second ISP 18. Note that although only three user terminals are shown, the number of concurrent users of the present invention is unlimited, subject to the practical details described below.
Content providers are also connected to the Internet 10, as is known in the art. The first content provider 22 may provide certain types of content, such as sports scores and highlights. The second content provider 24 may provide other types of content, such as business news.
Conventionally, if a user (such as a user using the first user terminal 12) desires to access content provided by the first content provider 22, the terminal 12 directly connects the first content provider 22. You will be inquired. The request message is propagated from the terminal 12 to the content provider 22 via the Internet 10. The content provider 22 sends the desired data back to the terminal 12 via the Internet 10.
In FIG. 1, several distribution or “mirror” sites are shown connected to the Internet 10. The first distribution site 26 may be arranged with a small number of “hops” from the first user terminal 12. The second distribution site 28 may be arranged farther away from the first user terminal 12, but may be located near the third user terminal 20. The third distribution site 30 may be as close to the third user terminal 20 as the second distribution site 28 is close to the third user terminal 20. As noted above, users and providers or distribution sites that are “geographically” close to each other may not be “electronically” close to each other on the Internet. By reducing the “electronic” distance between the user and the provider or distribution site, the number of network connections and routers over which data must travel can be reduced. it can.
As described above, the smart mirroring system plays a role in improving network performance by reducing the occurrence rate of the network problem. In some cases, the network testing procedure of the present invention shows that longer paths may provide better throughput than shorter paths, but packet loss and delay issues are In general, this is mitigated by reducing the number of network connections over which data must travel. In a network cable, there is almost no packet loss and no delay is inherently caused. Therefore, it is typically caused by overloaded network storage and routing devices. Because the smart mirror site of the present invention is located electronically close to each user, packet loss and delay are reduced. The problem of excessive server utilization is reduced because a wide variety of distribution sites typically share the load that would have been handled by a single server. The relatively low capacity of the network infrastructure is less likely to be a problem because the data retrieved from parallel distribution sites at different locations does not usually need to travel over the same network link.
For purposes of describing the present invention, a distribution site is assumed to be a “node” on a network that can also store data such as software code or other files for distribution. The term may also include sites that can support data distribution, including mirror sites, content providers and servers for video streams or website broadcasts.
In the system, a mirror service provider (MSP) 32 is connected to the Internet 10. The MSP 32 that executes the management function by distributing the distribution sites 26, 28, and 30 and assigning requests from the user terminals 12, 16, and 20 to the original site and distribution site transmits data on the Internet 10. And a database that can be received.
This management function is facilitated by the use of a configuration utility 34 and a client program 36 that are executed in a storage medium (ie, random access memory) on the user terminal 12. Although the configuration utility 34 and client program 36 are shown in FIG. 1 as part of only the first user terminal 12, any user terminal subscribed to this system, such as terminals 16 and 20, may be Note that you should recognize that you will use such software. Users wishing to join this system can download software, including the configuration utility 34 and client program 36, either directly from the MSP 32 or through a conventional retail channel or (one of a computer browser or operating system). Can be obtained through other routes (such as Note that the functions performed by the configuration utility 34 in this described embodiment of the invention can be integrated into common Internet application software such as a browser or other network application. . A stand-alone program is not necessary.
In the preferred embodiment, the configuration utility 34 must be executed by the user, either by command or automatically, before the user terminal 12 gains access to the system. The operation of the configuration utility 34 is shown in detail in FIG.
When first executed on the user terminal 12, the configuration utility 34 retrieves the distribution site file from the MSP 32 (FIG. 1) (step 40). If the user already has a distribution site file (eg, it was received using the configuration utility 34) and the distribution site file is sufficiently new, the distribution site file is stored in the local hard disk of the user terminal 12. You can search from. This distribution site file contains a list of all available distribution sites (such as distribution sites 26, 28 and 30) and a list of network tests performed on user terminal 12. In the context of the present invention, there can be as few as two distribution sites, or as many as thousands of distribution sites if the number of users justifies it. In principle, the number of sites is unlimited, and each available distribution site is represented in the distribution site file.
The distribution site file is created by a database from within the MSP computer system. Database applications use information about the user to dynamically determine the best test to run. As a result, the distribution site file need not include an entry for every existing distribution site. That is, the list can be tailored to include only those sites that are deemed appropriate or feasible.
Initially, the scale of execution time variation in a test configuration for a user of a distribution system is low. That is, the first group of users all perform essentially the same test. However, as delivery services develop, the intensity of testing for each user is reduced to make up for the increased scale of testing across the network. Both the test scope and the number of distribution sites tested can be narrowed to further reduce the aggregate load of network testing.
In one embodiment, the distribution site file generally has the following format:
1. File revision number and message. The file has this field to determine if a new version of the configuration utility 34 is available. If the revision number of the distribution site file is higher than the version number for the configuration utility, the configuration is not allowed. Instead, the user will be prompted to obtain a newer version of the configuration utility 34. Verification of file revisions as described herein ensures that the most up-to-date delivery site selection algorithm is applied to the test data generated by the configuration utility 34.
2. A list of available Smart Mirror distribution sites. The following information is provided for each available distribution site:
a. hostname. According to the well-known Internet format “www.server.com”.
b. IP address. A numeric internet address in a known format. This address is currently a 32-bit number in the form of wxyz, where w, x, y and z are each in the range 0 to 255.
c. Alternative name. An informal name such as “First Mirror Site”.
d. A list of tests to be run. The following information is provided for each test:
i. Test ID. Each test has a unique identifier that is known to the configuration utility 34.
ii. Weighting factor. Each test will be weighted by the specified percentage.
iii. frequency. Each test does not necessarily have to be executed every time. This field specifies the probability of determining how often a particular test is run.
iv. Additional information (optional). Additional information may be required for certain tests.
e. Site priority level. Each site can be given a weighting or priority level between 1 and 100, for example. As described below, aggregate data in the MSP database is used to perform network usage analysis that is not possible with single user instantaneous end-to-end testing alone. The weighting factors specified here are used to capture the test results received from the service provider database. Once a predetermined maximum usage level is reached, this weighting factor is also used to limit the allocation of new users to distribution sites.
f. Test site flag. When this flag is enabled, the test is performed, but the site will not be assigned as a distribution site, even if it yields the best performance.
g. A group of content providers. Each site belongs to one or more content provider groups so that only certain content can be mirrored. If the user is not interested in the type of data hosted by a particular distribution site, it need not be tested.
The configuration utility 34 can then view, for example, the user's name, email address, password, modem speed, and information related to access control (eg, what level of various attributes the user can see). The user is queried for various items of information required in the configuration process (step 42). The access control mechanism will be described in more detail below. In one embodiment of the present invention, the information received from the user is encrypted and stored in a configuration file on the user terminal 12.
The configuration utility 34 then determines whether the user terminal 12 is connected to the Internet (step 42). If not, it initiates a connection (step 44) or prompts the user to do so.
A series of network tests are then performed (step 46). One or more tests can be performed for each available site listed in the distribution site file. Not every site in the file needs to be tested.
The following test types are currently considered to provide valid data.
1. Ping. Whether the remote server is reachable, and if so, how long it will take a low priority message to travel round trip from the user terminal 12 to the remote server Provide information. Ping is a simple test that is effective in determining whether a site can be used for additional evaluation. The excess time returned by the ping application can be used to eliminate delivery systems that are "slow" for effective information delivery. This test is used by the terminal to reduce the number of distribution sites being tested.
2. Traceroute. Information about which route the message takes from the user terminal 12 to the remote server is provided, including which system is used along the way and how much time is required for each hop. Traceroute is used by the configuration program 34 to document the path of information transmission. Several traces with different results may indicate that the stability of a route from a particular user to a special server is unacceptable. Previously aggregated data for a particular route from the service provider's system database may also influence the decision to select a particular distribution site for a particular user. Route stability is a major consideration.
3. Reverse Traceroute. Provides information about which route the message takes from the remote server to the user terminal, including which system is used along the way and how long each hop takes. Inverse Traceroute is used by the configuration program to document the route of information reception. Several traces with different results may indicate that the stability of a route from a particular server to a special user is unacceptable. Previously aggregated data for a particular route from the service provider's system database may also affect the decision to select a particular distribution site for a particular user. Again, route stability is a major consideration.
4). Dynamic Traceroute. Similar to traceroute or reverse traceroute, but between any specified pair of computers on the Internet. Dynamic Traceroute is used by configuration programs to document information transmission paths. Several traces with different results may indicate that the stability of the route between the two network locations is unacceptable. Previously aggregated data for a particular route from the service provider's system database may also affect the decision to select a particular distribution site for a particular user. As mentioned above, route stability is a major consideration.
5. Name Server Resolution Delay. If the numeric internet address is not specified, a name server lookup is performed to determine which numeric address corresponds to the desired host name. This process can take a significant amount of time.
6). Throughput. The sample file is downloaded from a remote server or partially downloaded to determine the actual throughput in bytes per second.
7). Throughput variation. The sample file is downloaded from a remote server or partially downloaded to determine if the throughput is relatively unchanged or floating.
8). Error rate. The sample file is downloaded from a remote server or partially downloaded to determine if the transmission is subject to transmission errors. This information is obtained by counting the number of error message packets returned to the user, thereby learning the error rate from the user to the server and tracking the number of bytes received as a fraction of the number of bytes transferred. Investigate and thereby learn error rates from server to user.
9. Packet fragmentation (PacketFragmentation). The sample file is downloaded from a remote server or partially downloaded to determine if the transmission is exposed to receiving a fragmented or broken packet.
10. Capacity query. If the remote server is operating in this manner, the configuration utility 34 queries the server to determine its transmission capacity and its average load. This information is collected via a simple network management protocol (“Simple Network Management Protocol”) supported by almost all Internet servers.
11. Macroscopic network analysis. The data stored by the MSP database provides a global view of network operation. With this information, users of the smart mirror system can see a historical display of available distribution site performance. The accumulated data is used in the distribution system database in order to analyze the network performance for the purpose of emphasizing the use in the high capacity area of the network while stopping the emphasis on the use in the area where the performance has already deteriorated. Is operated by.
Information regarding how each of the tests is performed is well known in the art of network analysis. For example, Bob Quinn and Dave Shute Windows socket network programming (Windows Sockets Network Programming) (Addison-Wesley, 1996). In one embodiment of the present invention, the tests include a “ping” test to verify whether the server is reachable, a series of small (eg, 20K) downloads, a series of large (eg, 200K) downloads, And by performing a “traceroute” test and a “reverse route” test to document the delivery path.
The traceroute information is used by the MSP 32 to correlate test data with information in its database. In that way, particularly bad network links and servers can be identified. Such information is provided in the distribution site file described above. If a particular link or server is known to be unreliable, based on information obtained from other users, individual users can move away from it even if a single test gives good results. Can be routed.
Short downloads are used to determine server capacity. The name server resolution delay can be determined by such a test, as well as the time required to initiate data transmission. Later results are strongly related to server load, capacity and performance.
Long downloads allow the configuration utility 34 to determine how packet loss, network congestion, and server utilization impact file delivery. Based on the results of tests from a single user, it is not ideal to determine which of the above factors is causing performance degradation. However, such a result in the grand total as stored in the database maintained by the MSP 32 indicates the root cause.
Note that some of the test results may be used with other test results. For example, the load on the distribution site determined through the capacity query is divided by the result of the throughput test to derive the average expected download time given the server load characteristics.
After all specified tests have been run, the results are collected and processed (step 48). It is possible to think that certain tests have not been successfully performed. In such a case, the result should show a reasonable worst case value (eg, zero throughput or very large delay).
It is important to note that not every possible test is run each time the configuration utility 34 is run. When a large number of users are using the system, the testing procedure alone will cause a significant drain on server and network capacity, increasing the aforementioned continuous decline in network performance.
As described above, the test frequency number is stored in the distribution site file for the purpose of dynamically controlling the number of users executing the test. The tests performed by the configuration utility 34 are performed to achieve statistical confidence in determining which distribution site is best suited for distributing data to a particular user. Statistical confidence can be either by testing a small sample of users well enough and using that data to influence delivery site choices, or some available to many users It is obtained by having each site “lightly” tested and using that data in the aggregate.
Thus, when the system is first used, a relatively small number of users are “enrolled” into the system. The distribution site file maintained by the MSP 32 reflects those conditions and requires each user to test the network relatively hard (through the configuration utility 34). As the number of users increases, the distribution site file is modified to mitigate the tests performed by each user. Until a very large number of users use the system, the configuration utility 34 is largely responsible for delivery site reachability (by “ping” -type testing as described above). And rely on the test data stored in the database provided by other users and maintained by the MSP 32. However, even when many users are testing the system, a small number of users (eg, 1/5000) may be selected to perform a comprehensive set of tests.
Preferably, the test should not contribute more than about 5% of the total server load. One way to reach this goal is to lightly test a large number of servers, resulting in a group of distribution sites with adequate performance. Then, this group of distribution sites can be used in rotation for searching for data. Information about the actual download time of multimedia clips for each of the distribution sites in the group is accumulated as described below, after which additional information about distribution site performance may not require additional immediate testing. Can be supplied to the MSP 32 transparently.
Thus, based on the collected test results and the information provided in the distribution site file by the MSP 32, the configuration utility 34 determines whether the distribution site or group of distribution sites is the best for the user terminal 12. Determine (step 50). This decision can be made numerically by weighting the extensive tests performed and comparing the scores for each site.
In the preferred embodiment, for use in a low-traffic environment where the number of distribution sites and users is relatively small, the configuration utility 34 is primarily for each available distribution site. Rely on ping and throughput tests. An initial ping test is performed to determine if the distribution site is reachable. Short and long downloads are performed in a throughput test to determine the maximum and minimum throughput from the distribution site and to determine if the throughput variation is small enough to handle the transmission of video data. Therefore, all these tests are given high weight. Other tests such as traceroute can be performed and the results can be reported to MSP32 without playing a role in the selection of the delivery site (for example, such other tests include: Zero or nearly zero weight). As the system grows in size, as additional distribution sites and users are registered, the site selection method can be changed by changing the content of the distribution site file to reflect the changing network conditions it can.
In one embodiment of the invention, ownership is such that the user's location and the location (both geographical and electronic) of each site being tested can be displayed on a monitor connected to the user terminal 12. A graphical interface is provided to allow visual display of relative distances between sites. In one embodiment, the display is a “radar screen” that is displayed as a “blips” superimposed on a map of the geographic region to which the user terminal 12 and distribution site are associated. "(" Radar screen "). In order to encourage users to use the application and provide data for the entire network, the user interface allows the user to enter an “ad-hoc” test site for additional performance testing. It can be so. In this case, the configuration utility will test either the default web page file (eg, “index.html”) or a special file requested by the user. The analysis results from the site selected by the user are adjusted so that a reasonable comparison can be made with the results from other sites.
It should be noted that a wide variety of distribution sites can be maintained by the present invention to accommodate multiple groups of content providers. Each content provider may be mirrored only at certain sites. Accordingly, a primary delivery file is selected by the configuration utility 34 for each content provider having a unique set of delivery sites. To accomplish this, the test can be performed once, and then in one embodiment, numerical weights can be applied to each appropriate set of distribution sites. Multiple smart mirror sites are selected, one for each group of content providers. A group of content providers is specified in the distribution site file. Each possible distribution site is identified as belonging to one or more content provider groups. When content provider groups are used, there may be only two groups. The maximum number is inherently unlimited.
It should be noted that prioritized ratings for distribution sites can also be created and maintained. When this is done, if the primary smart mirror site fails to respond, the system is allowed to retreat to the next highest ranked smart mirror site.
After the smart mirror site is selected, certain data will be sent to the MSP 32 via email or other Internet electronic protocol (step 52). All raw test data and results, including the information received by querying the user, the identification information of the selected smart mirror site, and the time and date that each test was run (in some embodiments, encrypted) Compiled into a text file. When received by the MSP 32, the data is stored in a database for use in managing and analyzing the system.
Finally, the configuration utility 34 is prioritized according to the identity of the smart mirror site selected for each set of distribution sites or the (encrypted) configuration file. Is stored (step 54). The configuration utility may also store information regarding the relative performance of each distribution site tested. The client program 36 uses an encrypted configuration file to download data files (video clips or other content) from the appropriate smart mirror site.
It should be noted that in system operation, the MSP 32 performs certain functions. The MSP 32 maintains a list of distribution sites, and adds and deletes sites as necessary. The MSP 32 also maintains a database of network performance that stores information received by email or other means from the user running the configuration utility 34. Since a large amount of data is received from a large number of users, the database can provide valuable information about the performance and other characteristics of the Internet and parts thereof. In order to manage such information, various data processing techniques are known.
The location of the distribution site used in the present invention is ultimately determined by a number of factors, including marketing considerations and cost / benefit analysis. However, the data stored in the MSP database can confirm the utility of placing a distribution site at a given location on the Internet or other networks. In one embodiment, the server is on each major backbone (the portion of the Internet maintained by a single company) and regional bell operating companies ("RBOCs" (Regional Bell Operating Companies)). Placed on other Internet lines serving multiple users, such as the main line operated by. In certain networks that serve a large number of users or have heavy video delivery traffic, the server will be the primary point of attachment for the network (to ensure that each user has access to a high-speed server ( “POPs” (Points of Presence).
Once the configuration utility 34 is executed, the user uses the system to enable and facilitate the reception of data files, specifically video clips, audio clips, software programs and other content. be able to.
As time passes and the usage pattern of the user's Internet area changes, the user may become unsatisfied with the performance of the smart mirror site corresponding to his user terminal 12. When that happens, the user is free to re-run the configuration utility 34. By that time, the additional distribution site may be operating as a service, or a site that existed elsewhere may perform better than the previously assigned site. In addition, if the player program 36 determines that the selected smart mirror site is not performing sufficiently (eg, it failed 3 of 10 attempts), the player program 36 will prompt the user to configure A prompt can be issued to rerun the utility 34. In other embodiments of the present invention, the test and mirror assignment is performed on each request for a file on the smart mirror service, or on each separate request, third request, tenth request or 100th request. It is automatically executed in some intermittent time as in the case of.
In one embodiment of the invention, the smart mirror system is used to locate a distribution site from which a video clip or audio clip ("clip") referenced on a web page is downloaded. Is done. In this embodiment, the client program is called a “player program” or can be considered a “player program”. In addition to performing the functions of the client program 36, the player program also enables video data retrieval and playback. Typically, the browser program 38 is executed on the user terminal 12 to display web content. Browser programs that are typically used include NCSA Mosaic, Netscape Navigator, and Microsoft Internet Explorer. Browser program 38 allows users to hot link between various websites on the Internet.
The EMBED tag is used in an HTML document to indicate which web page contains content managed by the system. When the browser program 38 receives a web page that includes an EMBED tag, the file referenced by that tag begins to be downloaded and its file type is analyzed. If the file is of a type that is being processed by a player program such as MPEG, the browser program 38 starts the player program 36. The tag content is then passed to the player program 36 by the browser program 38.
Player program 36 (FIG. 1) provides a smart mirroring service that is facilitated by MSP 32. The operation of the player program 36 is shown in detail in FIG.
The player program first analyzes the EMBED tag to determine if there is a “SM” (smart mirror) parameter (step 60). The presence of such a parameter indicates that the embedded clip is enabled for smart mirroring. The data associated with the “SM” parameter specifies the particular content provider from which the desired clip originates, as well as the group of mirror servers used by that particular content provider.
If the player program 36 determines that the EMBED tag refers to a video clip or other content being processed by the system (step 62), the transfer of the embedded clip from the content provider 22 is stopped. . The player program 36 then extracts access control or rating information from the EMBED statement, if present (step 64). This rating information is compared against a reference level stored in a configuration file stored in the user terminal 12 (step 66). If rating information does not exist for the clip, the configuration file is queried to determine whether an unrated clip may be played (step 68), as defined below. Based on the information, the player program 36 will either allow or refuse to display the desired clip.
If playback is allowed, the player program 36 will attempt to find a referenced clip on the local computer belonging to the user terminal 12 (step 70). If it is there, it is not re-downloaded and can be played directly on the computer (from disk or RAM) (step 72). However, the creation time and date of the clip on the local computer is first verified against the time and date of the clip available on the network to determine if the stored clip is the most recent version. (Step 74). If it is not the most recent version, the stored clip is discarded (step 76) and the download proceeds as follows.
If the clip does not exist on the local computer, the player creates a new URL in the following format (step 78). That is, from the IP address of the selected smart mirror site stored in the configuration file, the path name to the mirror file (eg, “/ pub / mirror /”), and the “SM” parameter in the EMBED statement The name of the acquired content provider and the file name acquired from the EMBED statement are added to “http: //”. The constructed URL is used to retrieve the selected clip from the appropriate smart mirror site selected by the configuration utility 34 (step 80). If more than one set of distribution sites exist at different content providers, the “SM” parameter is also used by the player program 36 and which smart mirror site in the configuration file is used with the constructed URL. Is determined (step 82). In one embodiment of the invention, site selection is performed at least in part by a redirection server. This embodiment will be described in detail later with reference to FIG.
If the clip corresponding to the constructed URL is not found or accessible on the smart mirror site, the download is then made by the next highest order smart mirror site in the configuration file, or by a redirect server. Proceed from the selected next highest distribution site (see FIG. 4) (step 84). If all distribution sites fail, the download proceeds from the original content provider's site as specified directly by the EMBED statement.
If playback is prohibited, the player prevents the clip from being transferred (step 88) and displays a bitmap that advises the user that download is not allowed (step 90).
If the player program 36 determines that the EMBED tag refers to a video clip or other content that has not been processed by the system, then the player has the access control level set in the configuration file set to the user. Is checked to see if these clips or other files deemed “unrated” are allowed to be played (step 92). If so, the clip is transferred from its original content provider 22 by conventional means (step 94) and the player program 36 displays the downloaded file (step 96). If not, the player prevents the clip from being transferred (step 98) and displays a message to the user advising that the download is not permitted (step 100).
At the time of download, a data file representing a desired clip is stored in a designated data area on the local computer belonging to the user terminal 12, usually on a hard disk (step 102). In one embodiment, this data area can be managed by the player program 36 on the basis of least-recently-used. That is, if there is no place for a new clip in the data area, the least recently used (or undisplayed) clip or clips can be discarded to create a place (step 104).
In one embodiment of the present invention, the client program 36 can send a message to the MSP 32 to reflect whether the download was successful (step 106). This message includes the Internet address of the user terminal 12, the identification information of the selected server set, the Internet address of the site being used to accomplish the download, the Internet addresses of all failed sites, the downloaded file's Name, and. Includes time to download the file. This information can also be used by the MSP 32 to track file downloads and to determine if there is a problem with any smart mirror site in real time.
Instead, the client program 36 can maintain a local database with low file transfer performance. Then each download will be timed. Specifically, information can be gathered regarding the time it takes for the server to begin sending the requested file, the stability of the data transfer rate, and the transfer error rate. At some interval (eg, every week or once per 100 downloads), a message containing accumulated file transfer performance information (either automatically or upon request) is sent to the MSP 32, similar to the user and server information described above. Sent (step 106) to update the MSP database. This additional information increases the MSP “knowledge” of network performance without incurring any additional test overhead.
This data captures delivery site performance for the purpose of assessing the quality of services purchased from delivery site providers and documenting quality of service to content providers to support system costs. It is especially valuable to do. However, it will be appreciated that much of the same information can be obtained through a new user running the configuration utility 34.
In one embodiment of the present invention, the information derived from the MSP32 database is used without actually running a configuration utility to test the network between that user and a list of potential distribution sites. It can be used to predict distribution site improvements for a given user. More specifically, aggregate network performance data contained in the MSP32 database is analyzed in terms of performance differences between a given Internet IP address and the number of different distribution sites. Based on this analysis, a correlation between the user's IP address and a distribution site that provides better data distribution performance can be derived. This correlated data is used to create a lookup table that can be utilized by the MSP 32 in the process of distribution site selection.
In practice, a redirect server is included in the MSP network. In one embodiment, the redirect server functionality is implemented in and performed by the MSP32 server. In alternative embodiments, multiple redirect servers may be utilized at various locations throughout the network.
In operation, the redirect server will obtain the user's IP address when the user requests a file managed by the MSP distribution system. As described above, a request to the redirect server is made through an EMBED statement. An EMBED statement can identify a single redirect server (eg, MSP32) and explicitly reference a special server IP address, or multiple redirects that can attempt to access in sequence or random order Scripts or executable program code (e.g., in JavaScript or Java programming language) specifying the server can be included. Then, since the HTTP (HyperText Transport Protocol) request typically includes information about the requester's address, the user's IP address is determined by the server via conventional means. The redirect server then maps the user's IP address to the optimal distribution site located in the lookup table and forwards the distribution site address to the user. The user's client program 36 or redirect server then redirects the file request so that the file is delivered from the optimal delivery site.
An important factor in designing a look-up table comes from numerous addresses on the Internet. Every computer connected to the Internet is assigned an address. In the conventional Internet addressing system, an address is composed of a 4-byte value by convention, and each byte is expressed by converting each byte into a decimal number (0-255) and separating the bytes with a period. For example, the address of the “www.intervu.net” server is 192.215.147.185. When this address scheme is used, there are over 4 billion usable addresses on the Internet. Given the current state of the art, a look-up table containing 4 billion addresses is too large to be used in the embodiment described here, so a method for compressing the table is available. Quested.
It has been found that the selection of the optimal delivery site can often be correlated to the first byte of the user's IP address. This correlation indicates that after running the configuration utility 34, a statistically significant number of users having the same first byte address may receive another distribution from the same distribution site or a small group of distribution sites. It ’s like choosing a site. It will be appreciated that these distribution sites provide improved performance for most users with the same first byte address as compared to uncorrelated distribution sites. Correlation, in one embodiment of the present invention, provides improved performance for users with a list of IP addresses in the first byte numbered 0-255 and corresponding IP addresses for each address. It is important enough to form a compressed look-up table that includes a list of distribution sites to provide. In this way, one or more distribution sites are mapped to each entry in the address list.
It should be noted that in certain situations, some of the first byte IP addresses in the lookup table may not be mapped to the corresponding server. This can result, for example, that most users do not have an IP address corresponding to a particular entry in the table, and a sufficient number of them will yield statistically significant or reliable results. This is the case when the configuration utility 34 is not executed. In this case, one or more default servers may be specified in the database for use when no special server is identified in the lookup table.
In the preferred embodiment, the lookup list is stored on a single redirect server, eg, MSP32. However, the lookup list and associated programming can also be stored at the web page server, the content provider 22 server, or a combination of the foregoing.
The redirect server is accessed to select a delivery site as described below and as illustrated in FIG. 4 (step 82, FIG. 3). The user requests the file referenced on the web page via the user terminal browser by clicking on the link with the EMBED statement for that file. If the file request is for a file managed by the distribution system of the MSP, the file request is redirected to a redirect server (eg, MSP32 using conventional HTML file request semantics, or server “GET”). (Step 120).
The redirect server examines the incoming request and determines the user's network address (IP address) using the “REMOTE_HOST” variable supplied by the web server (step 122). It should be noted that the embodiment of the invention described in FIG. 4 can be achieved without a special purpose client program (such as client program 36) installed on user terminal 12. There is. Site selection if the client program 36 is not installed at all (step 124) and the user does not wish to install the client program (step 126) when queried by a script or downloaded program Is executed entirely by the redirect server.
The redirect server then analyzes the user's IP address and looks up a list of potential distribution sites in the lookup table to determine which distribution site or sites are correlated with the user's IP address. Judgment is made (step 128). The redirect server then selects a delivery site address if one or more addresses match an entry in the user's lookup table (step 130). If a single delivery site address is found, an HTTP redirect response is used to deliver the file from the selected delivery site (step 132). According to the HTTP specification, a file requested from a server can be redirected to another location by that server without any user or client program intervention. This completes site selection (step 134). To complete the transaction, the client program requests a copy of the file from the selected distribution site, and the distribution site server retrieves the file and distributes it to the user.
If the user wishes to install the client program 36 (step 126), the program will be downloaded and installed by conventional means (step 136). If the client program 36 has already been installed (step 124), or if the installation has just been completed, the file request proceeds differently, utilizing both server side and client side processing, You can search for files in an efficient way.
First, the redirect server analyzes the user's IP address and looks up a list of potential distribution sites in the lookup table, and one or more distribution sites are associated with the user's IP address. (Step 138). The redirect server storing the lookup table creates a small file containing the distribution site sub-list (step 140) and sends it to the user terminal 12 (step 142), and the final distribution. It may be possible to rely on the client program 36 (step 144) to make a site selection. There are several reasons why this occurs.
First, as described above, the analysis of aggregate network performance data is improved for certain users where many distribution sites have the same first byte address range (as opposed to a single distribution site). May provide improved performance. For example, this occurs when many users, all of whom have the same first byte address or range of addresses within a single first byte address, select a different distribution site after running the configuration utility. In this case, the client program 36 obtains the sublist that has been downloaded by the redirect server, and it has been previously selected by the execution of the configuration utility (see FIG. 3, step 54). Can be compared with a saved list of If a match is found, the client program redirects the file request to the matching delivery site (step 146). One or more of these distribution sites provide improved performance on any distribution site previously selected by the configuration utility, especially if the configuration utility has not been run recently. As a result, the client will also have the option of ignoring the selection made by the client program and making the best guess from the distribution sites included in the lookup list. .
Second, if the number of distribution sites and IP addresses managed by MSP increases to the point where the lookup table becomes too large to be practical, that is, the redirect server looks up instead of the previous file request A situation can also arise if you are late in responding to a new file request to get busy searching the table. If this is the case, the task of looking up the lookup table is divided between the redirect server and the client program 36. In this way, the user terminal 12 is required to perform some of the processing and to also serve as a router by selecting the final delivery site.
To accomplish this, the redirect server subdivides the lookup table into smaller sublists containing a given range of addresses. In this way, when the redirect server receives a request for a file, the server maps the user's IP address to a sublist containing the corresponding address range (step 138) and then creates a small file containing the sublist. (Step 140) and download to the user (step 142). The client program 36 then acts as a router, mapping the user's IP address to the appropriate correlated distribution site address on the sublist, or as described above with the distribution site on the sublist. Distribution sites in the sub-list lookup table by looking for matches with distribution sites on the prioritized list of sites saved by the configuration utility 34 after previously performing network performance tests. A delivery site is selected from the list (step 144). Once the client program selects a distribution site, the client program redirects the file request to the selected distribution site (step 146). By splitting the work between the redirect server and the user terminal 12, the file request can be processed more quickly, so that the time between when the user requests the file and when the file is received by the user terminal 12. Reduce the delay.
Although the MSP32 redirect lookup table is frequently updated as network performance changes, the sub-list being passed to the user is expected to be satisfactory for at least several days. Thus, the client program 36 can reuse the list for several days before obtaining a new sublist. This functionality can be implemented, for example, by a script embedded in a web page that hosts the file request statement. The script can query the client program 36 for the maturity date encoded in the sublist stored in the user terminal 12. The maturity date and sublist type can be returned to the redirect server, and the server will forward the new sublist if necessary.
A particular user may request a file managed by the MSP distribution system, and the system has no knowledge of that user (ie, between the user's IP address and the distribution site in the lookup table). It is possible that no match is found. In this case, the redirect server selects a distribution site for the user from the default list stored in the redirect server (steps 130 and 144). When a user downloads the requested file from this distribution site, the user is prompted by an embedded script or program to obtain a configuration utility file from the MSP 32 to improve content distribution. Alternatively, a server that is an approximation for improved content distribution (eg, a first byte IP address that is similar but not identical) will be temporarily assigned. As the user obtains and executes the configuration utility, the user terminal 12 begins to provide various network test results to the MSP 32, as described above, and this information is ultimately stored in the network performance data. Part of the MSP database. In this way, upon the next file request from the new user, the redirect server will map the user's IP address to a more appropriate server based on the analysis of the additional network performance data.
By changing the lookup table, the redirect server can also perform load distribution and management for file requests. Redirect if the MSP32 (or the individual controlling the MSP32) pre-determines that a section of the network will be down for a period of time, or if certain distribution sites must be shut down for a period of time The lookup table can be modified so that the server directs the user's attention to alternative delivery sites. Thus, on two back-to-back requests for the same file, the user may be directed to two different distribution sites.
It should be understood that the file containing the lookup table sub-list can serve as a distribution site file used by the configuration utility 34 to perform network tests. The sub-list represents distribution sites that have already been screened for performance improvements due to aggregate network performance data derived from groups of other users who have previously performed network tests. This distribution site sub-list is further truncated or prioritized by running the configuration utility 34 on the list and executing a sequence of network tests retained from past distribution site files. Can be attached. Once the sublists are prioritized, the configuration utility 34 saves the list according to the configuration file (encrypted) as described above.
In the following exemplary description, the smart mirror system utilizes a look-up table to locate the improved distribution site from which the video clip referenced in the web page ad headline is downloaded. . When dealing with relatively unpopular content such as advertisements, it is important to deliver the content of the advertisement to the intended customers as quickly as possible so that potential customers do not lose interest. The same is true for the content of advertising headlines on web pages. In other words, it is desirable to be able to deliver videos to customers as quickly as possible without having to download a significant amount of software in advance. Thus, as an alternative to utilizing the present invention as an expensive service, service providers can spread advertising headlines on web pages via the Internet. Each heading references a video clip, and all of those clips will be stored at the content provider's server established for that purpose.
In this example, the client program 36 is referred to as a “player program” and it has the additional functionality of retrieving and playing back video data as described above. A browser 38 (such as Netscape Navigator or Microsoft Internet Explorer) is used to display web content on the user terminal 12 and to communicate between the user terminal 12 and other computers on the Internet 10. The
When the client selects an advertising headline displayed on the web page, the browser examines the EMBED tag encoded in the heading. The browser begins downloading the file referenced by the EMBED tag and the file type is analyzed. If the file is of a type being processed by a player program such as MPEG, the browser starts the player program by passing a tag to the player program. The player program looks up the EMBED tag for the file name of the video clip and tries to find the clip on the local computer belonging to the user terminal. If the clip is there, it is not re-downloaded and can be played directly on the computer (from disk or RAM). If the video clip is not on the local computer, the player program analyzes the EMBED tag to determine if there is an “SM” (smart mirror) parameter. The presence of such a parameter indicates that the embedded clip is enabled for smart mirroring. The SM parameter further specifies the address of the redirect server and the specific content provider that is the source of the desired clip as described above, as well as the group of mirror servers used by the specific content provider.
When the player program recognizes the parameter specifying the redirect server, the player program calls the browser and requests the referenced ad header file from the redirect server by conventional HTML file request technology. The redirect server examines incoming requests and determines the client's IP address. The redirect server maps the client's IP address to a lookup table and searches for a distribution site address or sublist. The distribution site address (or a sublist of distribution sites and IP addresses) is returned to the player program by the redirect server. When the sublist is returned, as described above, the player program selects only one distribution site from the listed sites. Once a single distribution site is determined, the player program will add the “http: //” to the IP address of the selected distribution site and the path name to mirror the file (eg, “/ pub / mirror / ") and the name of the content provider acquired from the" SM "parameter in the EMBED statement and the file name acquired from the EMBED statement are created in a new URL. The constructed URL is used to retrieve the selected clip from the delivery file selected from the lookup table.
If the SM parameter in the EMBED tag does not specify a redirect server, or if the redirect server is not available and does not return a response, the player program is stored in the configuration utility file. An arbitrary IP address is selected from the prioritized list of mirror sites, and this address in the URL is replaced. If the player program does not detect the presence of a prioritized list of smart mirror sites (eg, if the user never downloaded the configuration utility 34), then the player program is EMBED The video will be requested using the address of the original content provider's server, as specified directly by the statement.
In applications where the goal is not explicitly set for the distribution of advertising content, providing the download information to the MSP facilitates the use of the present invention as an expensive subscription based service. Successful downloads are tracked in the database so that each user can have an associated “account” to track the billing amount. The user may be charged for using the smart mirror system by file, megabyte, monthly, or other known means. In one embodiment, the EMBED tag associated with the file includes billing issue information, ie, the “price” of the file. If the download performance tracking of the present invention reveals that the download is too difficult or slow, discounts or credits can be issued.
To ensure that the files stored on the smart mirror distribution site are used only by authorized users of the present invention (for example those users with paid accounts), The file may optionally take an encrypted form, and the download step described above may include a decryption step. Such encryption and decryption can be accomplished by well-known means.
As described above, a clip managed by the present invention may have content rating information associated with it. This is accomplished by providing a “PG” parameter in the EMBED statement corresponding to the clip. In one embodiment, four features are specified. That is, nudity, sexuality, profanity and violence. Therefore, the PG parameter can be specified by a 4-digit argument. Each feature is specified on a 1 to 3 scale. 1 corresponds to no filter function (ie, all content is acceptable), 2 corresponds to some filter function (eg, basically equal to the level allowed for broadcast television), 3 is the most extensive Corresponding to a simple filter function (for example, for children). The level of rating included in the EMBED statement for a file is compared with the rating filter level included in the configuration file stored in the user terminal 12 in the authorization process and is authorized. Only files are transferred.
In view of the above, embodiments of the present invention are utilized in many different applications that allow the acquisition and analysis of performance data for a network between a given user and a content provider or distribution site. It is understood that it is good. Thus, although the described embodiment shows a system operating using an Internet-type addressing scheme within the context of the Internet, such a system is incorporated in the corporate intranet. It will be appreciated that it will be useful in other network environments including but not limited to.
Further, although the exemplary embodiments are described primarily for use in video distribution systems, the system according to the present invention may be used in various other types of computer data (eg, application programs, database files, And other business information, virtual reality files, multimedia such as Macromedia Shockwave files, as well as large text files such as books) can be used similarly. It is necessary to Such other types of data can be managed by the present invention in different content provider groups as described in detail above. Another type of program (rather than player program 36) will typically be called at user terminal 12 to display or use other types of data.
Also, certain functionality described as being executed on the user terminal 12 (particularly, certain functions executed by the configuration utility 34 or the client / player program 36) can be stored as a stand-alone program in the browser. Java downloaded as a “plug-in” or “helper application” (“helper application”) for execution within a program, or from a distribution site for execution within a browser environment Note also that it can be implemented as an applet. For user terminals capable of running the Microsoft Windows operating system, an environment known as Microsoft ActiveX is also useful.
While certain exemplary configurations and operations have been described, the invention is not so limited and the scope should be determined according to the claims set forth below.

Claims (4)

分散型コンピュータネットワークにおいてサービスプロバイダの管理下で加入コンテンツプロバイダ代わってコンテンツ配信する方法であって、
エンドユーザクライアントマシンは、サービスプロバイダへインターネットを介して接続される加入コンテンツプロバイダへコンテンツを要求し、サービスプロバイダはリダイレクトサーバを含み、所与のエンドユーザクライアントマシンは分散型コンピュータネットワークのIPアドレスを有し、
前記コンテンツ配信方法は、
少なくとも一つはインターネットポップ(PoP)である所定のネットワーク位置に、一つ以上ある加入コンテンツプロバイダのコンテンツを有する配信サイトを設置する過程と、
IPアドレスの第1のバイトに対応するバイト値により索引れるテーブルであって、前記バイト値の各々につき、所与のネットワークパフォーマンス試験のデータに基き該バイト値をIPアドレスの第1のバイトとして有するエンドユーザクライアントマシンにとって好ましい配信サイトのサブセットのIPアドレスを含むテーブルを、リダイレクトサーバが、生成する過程と、
所与のIPアドレスのエンドユーザクライアントマシンがサービスプロバイダ管理るコンテンツを要求すると、それに応答して、リダイレクトサーバが、該エンドユーザクライアントマシンのIPアドレスの第1のバイトに対応するバイト値をテーブルの索引として使用することにより前記要求を配信サイトの一つのサブセットのIPアドレスと関連付ける過程とを含むことを特徴とするコンテンツ配信方法。
In a distributed computer network under the control of the service provider A method for distributing content on behalf of subscriber content provider,
An end user client machine requests content from a subscribed content provider connected to the service provider via the Internet, the service provider includes a redirect server, and a given end user client machine has an IP address of a distributed computer network. And
The content distribution method includes:
Installing at least one distribution site having content of one or more subscribed content providers at a predetermined network location, at least one of which is Internet Pop (PoP) ;
A table indexed by a byte value corresponding to a first byte of an IP address , wherein for each of the byte values, the byte value is defined as the first byte of the IP address based on data of a given network performance test a table containing the IP address of a subset of preferred delivery site to the end user client machine with the steps of redirect server generates,
When an end-user client machine of a given IP address requests content service provider that manages, bytes in response thereto, the redirect server, corresponding to the first byte of the IP address of the end-user client machine content distribution method which comprises a step of associating the IP address of a subset of the distribution site the request by using the value as an index of the table.
リダイレクトサーバが、サービスプロバイダにネットワークパフォーマンス試験のデータを統合及び維持させる段階をさらに含む請求項1に記載のコンテンツ配信方法。The content distribution method according to claim 1, further comprising the step of causing the redirect server to integrate and maintain network performance test data in the service provider. リダイレクトサーバが、ネットワークパフォーマンス試験のデータに応じてテーブルを修正する段階をさらに含む請求項2に記載のコンテンツ配信方法。Redirect server, the content delivery method according to claim 2, further comprising a step of modifying the table in accordance with the data network performance tests. テーブルは、前記サブセットの配信サイトをそれぞれ識別するIPアドレスを変更するよう修正されることを特徴とする請求項3に記載のコンテンツ配信方法。 4. The content distribution method according to claim 3, wherein the table is modified so as to change IP addresses respectively identifying the distribution sites of the subset.
JP50484999A 1997-06-18 1998-06-16 Content distribution method in distributed computer network Expired - Lifetime JP4968975B2 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US08/878,385 1997-06-18
US08/878,385 US6112239A (en) 1997-06-18 1997-06-18 System and method for server-side optimization of data delivery on a distributed computer network
PCT/US1998/012784 WO1998058315A1 (en) 1997-06-18 1998-06-16 System and method for server-side optimization of data delivery on a distributed computer network

Publications (2)

Publication Number Publication Date
JP2002506543A JP2002506543A (en) 2002-02-26
JP4968975B2 true JP4968975B2 (en) 2012-07-04

Family

ID=25371929

Family Applications (1)

Application Number Title Priority Date Filing Date
JP50484999A Expired - Lifetime JP4968975B2 (en) 1997-06-18 1998-06-16 Content distribution method in distributed computer network

Country Status (8)

Country Link
US (4) US6112239A (en)
EP (1) EP0990205B1 (en)
JP (1) JP4968975B2 (en)
CN (1) CN1109298C (en)
AU (1) AU8153998A (en)
CA (1) CA2294149A1 (en)
DE (1) DE69835674T2 (en)
WO (1) WO1998058315A1 (en)

Families Citing this family (469)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8352400B2 (en) 1991-12-23 2013-01-08 Hoffberg Steven M Adaptive pattern recognition based controller apparatus and method and human-factored interface therefore
US6963859B2 (en) 1994-11-23 2005-11-08 Contentguard Holdings, Inc. Content rendering repository
JPH08263438A (en) 1994-11-23 1996-10-11 Xerox Corp Distribution and use control system of digital work and access control method to digital work
US6006252A (en) * 1996-10-08 1999-12-21 Wolfe; Mark A. System and method for communicating information relating to a network resource
US6233684B1 (en) * 1997-02-28 2001-05-15 Contenaguard Holdings, Inc. System for controlling the distribution and use of rendered digital works through watermaking
US7447738B1 (en) * 1997-03-14 2008-11-04 International Business Machines Corporation Component download selection mechanism for web browsers
US6112239A (en) * 1997-06-18 2000-08-29 Intervu, Inc System and method for server-side optimization of data delivery on a distributed computer network
US7058720B1 (en) * 1997-06-30 2006-06-06 Microsoft Corporation Geographical client distribution methods, systems and computer program products
US6223209B1 (en) * 1997-09-30 2001-04-24 Ncr Corporation Distributed world wide web servers
US7581077B2 (en) 1997-10-30 2009-08-25 Commvault Systems, Inc. Method and system for transferring data in a storage operation
US6418478B1 (en) * 1997-10-30 2002-07-09 Commvault Systems, Inc. Pipelined high speed data transfer mechanism
US7257604B1 (en) 1997-11-17 2007-08-14 Wolfe Mark A System and method for communicating information relating to a network resource
US6385596B1 (en) * 1998-02-06 2002-05-07 Liquid Audio, Inc. Secure online music distribution system
US7047300B1 (en) * 1998-02-10 2006-05-16 Sprint Communications Company L.P. Survivable and scalable data system and method for computer networks
US6185598B1 (en) 1998-02-10 2001-02-06 Digital Island, Inc. Optimized network resource location
US8296396B2 (en) 1998-02-10 2012-10-23 Level 3 Communications, Llc Delivering resources to clients in a distributed computing environment with rendezvous based on load balancing and network conditions
US6779118B1 (en) * 1998-05-04 2004-08-17 Auriq Systems, Inc. User specific automatic data redirection system
US7143193B1 (en) 1998-05-29 2006-11-28 Yahoo! Inc. Content collection
US7581006B1 (en) * 1998-05-29 2009-08-25 Yahoo! Inc. Web service
US6782409B1 (en) * 1998-05-29 2004-08-24 Sony Corporation Experience/sympathy information providing system
US6976093B2 (en) 1998-05-29 2005-12-13 Yahoo! Inc. Web server content replication
US6108703A (en) * 1998-07-14 2000-08-22 Massachusetts Institute Of Technology Global hosting system
US6249801B1 (en) * 1998-07-15 2001-06-19 Radware Ltd. Load balancing
US6665702B1 (en) 1998-07-15 2003-12-16 Radware Ltd. Load balancing
JP3786328B2 (en) * 1998-07-27 2006-06-14 株式会社日立製作所 Server and communication control method
US7047483B1 (en) * 1998-09-01 2006-05-16 Lucent Technologies Inc. Computer implemented method and apparatus for providing a logical point of access to one or more files
WO2000016210A1 (en) 1998-09-17 2000-03-23 Nexchange Corporation Affiliate commerce system and method
US8010627B1 (en) 1998-09-25 2011-08-30 Sprint Communications Company L.P. Virtual content publishing system
US6751777B2 (en) * 1998-10-19 2004-06-15 International Business Machines Corporation Multi-target links for navigating between hypertext documents and the like
JP3935276B2 (en) * 1998-10-21 2007-06-20 キヤノン株式会社 Network device management method, apparatus, storage medium, and transmission apparatus
US6691165B1 (en) * 1998-11-10 2004-02-10 Rainfinity, Inc. Distributed server cluster for controlling network traffic
US7664864B2 (en) * 1998-11-13 2010-02-16 Verisign, Inc. Meta content distribution network
US7225264B2 (en) 1998-11-16 2007-05-29 Softricity, Inc. Systems and methods for delivering content over a computer network
US7017188B1 (en) 1998-11-16 2006-03-21 Softricity, Inc. Method and apparatus for secure content delivery over broadband access networks
US6763370B1 (en) 1998-11-16 2004-07-13 Softricity, Inc. Method and apparatus for content protection in a secure content delivery system
US7194554B1 (en) 1998-12-08 2007-03-20 Nomadix, Inc. Systems and methods for providing dynamic network authorization authentication and accounting
US8713641B1 (en) 1998-12-08 2014-04-29 Nomadix, Inc. Systems and methods for authorizing, authenticating and accounting users having transparent computer access to a network using a gateway device
US8266266B2 (en) 1998-12-08 2012-09-11 Nomadix, Inc. Systems and methods for providing dynamic network authorization, authentication and accounting
DE19900636B8 (en) 1999-01-11 2005-04-07 Gailer, Peter Data access and management system and method for data access and data management for a computer system and their use
US6611872B1 (en) * 1999-01-11 2003-08-26 Fastforward Networks, Inc. Performing multicast communication in computer networks by using overlay routing
US7904187B2 (en) 1999-02-01 2011-03-08 Hoffberg Steven M Internet appliance system and method
US7099848B1 (en) 1999-02-16 2006-08-29 Listen.Com, Inc. Audio delivery and rendering method and apparatus
US6901604B1 (en) * 1999-02-19 2005-05-31 Chaincast, Inc. Method and system for ensuring continuous data flow between re-transmitters within a chaincast communication system
US7185097B1 (en) * 1999-02-25 2007-02-27 Nortel Networks Limited Encoding addresses in a communication system
GB9906628D0 (en) * 1999-03-23 1999-05-19 Koninkl Philips Electronics Nv Data network load management
JP3808660B2 (en) * 1999-03-31 2006-08-16 株式会社東芝 Communication system and terminal device
US6721794B2 (en) * 1999-04-01 2004-04-13 Diva Systems Corp. Method of data management for efficiently storing and retrieving data to respond to user access requests
US6233607B1 (en) * 1999-04-01 2001-05-15 Diva Systems Corp. Modular storage server architecture with dynamic data management
US6578078B1 (en) * 1999-04-02 2003-06-10 Microsoft Corporation Method for preserving referential integrity within web sites
GB2348718A (en) * 1999-04-07 2000-10-11 Ibm Data processing system having a centralised trace facility with dynamic tracing
US6801949B1 (en) 1999-04-12 2004-10-05 Rainfinity, Inc. Distributed server cluster with graphical user interface
US7730169B1 (en) 1999-04-12 2010-06-01 Softricity, Inc. Business method and system for serving third party software applications
US7370071B2 (en) 2000-03-17 2008-05-06 Microsoft Corporation Method for serving third party software applications from servers to client computers
US6757698B2 (en) * 1999-04-14 2004-06-29 Iomega Corporation Method and apparatus for automatically synchronizing data from a host computer to two or more backup data storage locations
US6571288B1 (en) * 1999-04-26 2003-05-27 Hewlett-Packard Company Apparatus and method that empirically measures capacity of multiple servers and forwards relative weights to load balancer
US8099758B2 (en) 1999-05-12 2012-01-17 Microsoft Corporation Policy based composite file system and method
US6850987B1 (en) 1999-06-01 2005-02-01 Fastforward Networks, Inc. System for multipoint infrastructure transport in a computer network
US6735633B1 (en) * 1999-06-01 2004-05-11 Fast Forward Networks System for bandwidth allocation in a computer network
US6275470B1 (en) 1999-06-18 2001-08-14 Digital Island, Inc. On-demand overlay routing for computer-based communication networks
US7035880B1 (en) 1999-07-14 2006-04-25 Commvault Systems, Inc. Modular backup and retrieval system used in conjunction with a storage area network
US7395282B1 (en) 1999-07-15 2008-07-01 Commvault Systems, Inc. Hierarchical backup and retrieval system
US7389311B1 (en) * 1999-07-15 2008-06-17 Commvault Systems, Inc. Modular backup and retrieval system
US6785704B1 (en) 1999-12-20 2004-08-31 Fastforward Networks Content distribution system for operation over an internetwork including content peering arrangements
US6415323B1 (en) 1999-09-03 2002-07-02 Fastforward Networks Proximity-based redirection system for robust and scalable service-node location in an internetwork
US6857106B1 (en) 1999-09-15 2005-02-15 Listen.Com, Inc. Graphical user interface with moveable, mergeable elements
US6721789B1 (en) * 1999-10-06 2004-04-13 Sun Microsystems, Inc. Scheduling storage accesses for rate-guaranteed and non-rate-guaranteed requests
US8190708B1 (en) 1999-10-22 2012-05-29 Nomadix, Inc. Gateway device having an XML interface and associated method
US8543901B1 (en) 1999-11-01 2013-09-24 Level 3 Communications, Llc Verification of content stored in a network
US7127500B1 (en) * 1999-11-10 2006-10-24 Oclc Online Computer Library Center, Inc. Retrieval of digital objects by redirection of controlled vocabulary searches
US6405252B1 (en) * 1999-11-22 2002-06-11 Speedera Networks, Inc. Integrated point of presence server network
US7925713B1 (en) * 1999-11-22 2011-04-12 Akamai Technologies, Inc. Method for operating an integrated point of presence server network
US6754699B2 (en) * 2000-07-19 2004-06-22 Speedera Networks, Inc. Content delivery and global traffic management network system
US7363361B2 (en) * 2000-08-18 2008-04-22 Akamai Technologies, Inc. Secure content delivery system
US7523181B2 (en) 1999-11-22 2009-04-21 Akamai Technologies, Inc. Method for determining metrics of a content delivery and global traffic management network
US8516146B1 (en) 1999-11-24 2013-08-20 Robert C. Yen Method and system for reduction of delay and bandwidth requirements in internet data transfer
US7222161B2 (en) * 1999-11-24 2007-05-22 Yen Robert C Method and system for facilitating usage of local content at client machine
US7245634B2 (en) 2000-09-27 2007-07-17 Yen Robert C Wireless internet access with enhanced bandwidth capabilities
US9538386B2 (en) 1999-11-24 2017-01-03 Robert C. Yen Wireless internet access with enhanced bandwidth capabilities
US6904455B1 (en) 1999-11-24 2005-06-07 Robert C. Yen Method and system for providing local content for use in partially satisfying internet data requests from remote servers
JP4574097B2 (en) * 1999-12-03 2010-11-04 パナソニック株式会社 Content distribution system, reference server
US7565675B2 (en) 1999-12-08 2009-07-21 Listen.Com, Inc. Scheduled retrieval, storage and access of media data
US6442708B1 (en) * 1999-12-14 2002-08-27 Honeywell International Inc. Fault localization and health indication for a controller area network
US6754706B1 (en) 1999-12-16 2004-06-22 Speedera Networks, Inc. Scalable domain name system with persistence and load balancing
EP1243116A2 (en) * 1999-12-31 2002-09-25 Realscale Technologies Inc. A server module and a distributed server-based internet access scheme and method of operating the same
EP1113646A1 (en) * 1999-12-31 2001-07-04 Advanced Communication Research A server module and a distributed server based internet access scheme and method of operating the same
US6606643B1 (en) * 2000-01-04 2003-08-12 International Business Machines Corporation Method of automatically selecting a mirror server for web-based client-host interaction
US6763380B1 (en) * 2000-01-07 2004-07-13 Netiq Corporation Methods, systems and computer program products for tracking network device performance
US6519648B1 (en) 2000-01-24 2003-02-11 Friskit, Inc. Streaming media search and continuous playback of multiple media resources located on a network
US6389467B1 (en) * 2000-01-24 2002-05-14 Friskit, Inc. Streaming media search and continuous playback system of media resources located by multiple network addresses
US7281034B1 (en) 2000-01-24 2007-10-09 Friskit, Inc. System and method for media playback over a network using links that contain control signals and commands
US7228305B1 (en) * 2000-01-24 2007-06-05 Friskit, Inc. Rating system for streaming media playback system
CN1115839C (en) * 2000-01-28 2003-07-23 国际商业机器公司 Method and device for balancing load of image server
US7003641B2 (en) 2000-01-31 2006-02-21 Commvault Systems, Inc. Logical view with granular access to exchange data managed by a modular data and storage management system
US6658436B2 (en) 2000-01-31 2003-12-02 Commvault Systems, Inc. Logical view and access to data managed by a modular data and storage management system
US7155481B2 (en) 2000-01-31 2006-12-26 Commvault Systems, Inc. Email attachment management in a computer system
DE60142826D1 (en) * 2000-02-04 2010-09-30 Listen Com Inc System with a distributed multimedia network and a metadata server
US8418195B1 (en) * 2000-02-04 2013-04-09 Sprint Communications Company L.P. Advertising insertion for a video-on-demand system
US20010034693A1 (en) * 2000-02-25 2001-10-25 Jay Farhat Method and system to broker a service access transaction
US7792745B2 (en) * 2000-02-25 2010-09-07 Ipass Inc. Method and system to facilitate financial settlement of service access transactions between multiple parties
US20020116444A1 (en) * 2000-02-29 2002-08-22 Imran Chaudhri Method and system for providing intelligent network content delivery
US6799214B1 (en) * 2000-03-03 2004-09-28 Nec Corporation System and method for efficient content delivery using redirection pages received from the content provider original site and the mirror sites
US20030088878A1 (en) * 2000-03-25 2003-05-08 Karl Rogers System and method for integration of high quality video multi-casting service with an interactive communication and information environment using internet protocols
US6687846B1 (en) 2000-03-30 2004-02-03 Intel Corporation System and method for error handling and recovery
US20050021862A1 (en) * 2000-03-31 2005-01-27 Dickens Coal Llc Automatic selection of content-delivery provider using link mapping database
US7058706B1 (en) 2000-03-31 2006-06-06 Akamai Technologies, Inc. Method and apparatus for determining latency between multiple servers and a client
US7240100B1 (en) 2000-04-14 2007-07-03 Akamai Technologies, Inc. Content delivery network (CDN) content server request handling mechanism with metadata framework support
US6996616B1 (en) * 2000-04-17 2006-02-07 Akamai Technologies, Inc. HTML delivery from edge-of-network servers in a content delivery network (CDN)
US7010537B2 (en) * 2000-04-27 2006-03-07 Friskit, Inc. Method and system for visual network searching
US6928481B1 (en) * 2000-05-05 2005-08-09 International Business Machines Corporation Method, apparatus and program to optimize the network distribution of digital information based on hierarchical grouping of server topology and code distribution
US7299291B1 (en) 2000-05-18 2007-11-20 Akamai Technologies, Inc. Client-side method for identifying an optimum server
US7082427B1 (en) * 2000-05-24 2006-07-25 Reachforce, Inc. Text indexing system to index, query the archive database document by keyword data representing the content of the documents and by contact data associated with the participant who generated the document
US7120629B1 (en) 2000-05-24 2006-10-10 Reachforce, Inc. Prospects harvester system for providing contact data about customers of product or service offered by business enterprise extracting text documents selected from newsgroups, discussion forums, mailing lists, querying such data to provide customers who confirm to business profile data
US7240112B2 (en) * 2000-05-26 2007-07-03 Ipass Inc. Service quality monitoring process
US7096263B2 (en) * 2000-05-26 2006-08-22 Akamai Technologies, Inc. Method for predicting file download time from mirrored data centers in a global computer network
US7519695B2 (en) * 2000-05-26 2009-04-14 Ipass Inc. Service quality monitoring process
US6985945B2 (en) * 2000-12-07 2006-01-10 Ipass, Inc. Service quality monitoring process
US6510463B1 (en) * 2000-05-26 2003-01-21 Ipass, Inc. Service quality monitoring process
US7103664B1 (en) * 2000-05-31 2006-09-05 International Business Machines Corporation Method, system and program products for ordering lists of service addresses to provide load balancing of a clustered environment
US20010049732A1 (en) * 2000-06-01 2001-12-06 Raciborski Nathan F. Content exchange apparatus
US20010051980A1 (en) * 2000-06-01 2001-12-13 Raciborski Nathan F. Preloading content objects on content exchanges
US6836806B1 (en) 2000-06-01 2004-12-28 Aerocast, Inc. System for network addressing
US6658000B1 (en) 2000-06-01 2003-12-02 Aerocast.Com, Inc. Selective routing
US6879998B1 (en) * 2000-06-01 2005-04-12 Aerocast.Com, Inc. Viewer object proxy
US7213062B1 (en) 2000-06-01 2007-05-01 General Instrument Corporation Self-publishing network directory
AR028661A1 (en) * 2000-06-01 2003-05-21 Aerocast Com Inc METHOD FOR SELECTING AN ADDRESS NODE FROM THE CLIENT'S SIDE
US6904460B1 (en) 2000-06-01 2005-06-07 Aerocast.Com, Inc. Reverse content harvester
US7020709B1 (en) * 2000-06-30 2006-03-28 Intel Corporation System and method for fault tolerant stream splitting
US7318107B1 (en) 2000-06-30 2008-01-08 Intel Corporation System and method for automatic stream fail-over
US7111163B1 (en) 2000-07-10 2006-09-19 Alterwan, Inc. Wide area network using internet with quality of service
US7912978B2 (en) * 2000-07-19 2011-03-22 Akamai Technologies, Inc. Method for determining metrics of a content delivery and global traffic management network
US7653706B2 (en) * 2000-07-19 2010-01-26 Akamai Technologies, Inc. Dynamic image delivery system
US7346676B1 (en) * 2000-07-19 2008-03-18 Akamai Technologies, Inc. Load balancing service
US8060581B2 (en) * 2000-07-19 2011-11-15 Akamai Technologies, Inc. Dynamic image delivery system
US8341297B2 (en) 2000-07-19 2012-12-25 Akamai Technologies, Inc. Latencies and weightings in a domain name service (DNS) system
US7725602B2 (en) 2000-07-19 2010-05-25 Akamai Technologies, Inc. Domain name resolution using a distributed DNS network
FI112148B (en) * 2000-07-24 2003-10-31 Stonesoft Oyj Procedure for checking data transfer
EP1176760A1 (en) * 2000-07-27 2002-01-30 Telefonaktiebolaget Lm Ericsson Method of establishing access from a terminal to a server
US7191239B2 (en) * 2000-08-02 2007-03-13 Ipass Inc. Method and system to customize and update a network connection application for distribution to multiple end-users
US7801158B2 (en) * 2000-10-16 2010-09-21 Verizon Communications Inc. Congestion and thru-put visibility and isolation
US7603319B2 (en) 2000-08-28 2009-10-13 Contentguard Holdings, Inc. Method and apparatus for preserving customer identity in on-line transactions
US7743259B2 (en) * 2000-08-28 2010-06-22 Contentguard Holdings, Inc. System and method for digital rights management using a standard rendering engine
EP1320994B1 (en) * 2000-08-31 2011-03-30 Ericsson Television Inc. Systems and method for interacting with users over a communications network
US7657629B1 (en) * 2000-09-26 2010-02-02 Foundry Networks, Inc. Global server load balancing
US7454500B1 (en) 2000-09-26 2008-11-18 Foundry Networks, Inc. Global server load balancing
US9130954B2 (en) * 2000-09-26 2015-09-08 Brocade Communications Systems, Inc. Distributed health check for global server load balancing
JP2002108350A (en) * 2000-09-28 2002-04-10 Internatl Business Mach Corp <Ibm> Method and system for music distribution
US7330850B1 (en) 2000-10-04 2008-02-12 Reachforce, Inc. Text mining system for web-based business intelligence applied to web site server logs
US7043531B1 (en) 2000-10-04 2006-05-09 Inetprofit, Inc. Web-based customer lead generator system with pre-emptive profiling
US7401125B1 (en) * 2000-10-10 2008-07-15 Ricoh Corporation System, computer program product and method for managing documents
US6714970B1 (en) * 2000-10-26 2004-03-30 International Business Machines Corporation Protecting open world wide web sites from known malicious users by diverting requests from malicious users to alias addresses for the protected sites
US6970939B2 (en) * 2000-10-26 2005-11-29 Intel Corporation Method and apparatus for large payload distribution in a network
US7111057B1 (en) * 2000-10-31 2006-09-19 Akamai Technologies, Inc. Method and system for purging content from a content delivery network
US7343324B2 (en) 2000-11-03 2008-03-11 Contentguard Holdings Inc. Method, system, and computer readable medium for automatically publishing content
US7353277B1 (en) * 2000-11-14 2008-04-01 Hewlett-Packard Development Company, L.P. Dynamic load balancing of video requests
US7158534B2 (en) * 2000-11-30 2007-01-02 Imajet Communications, Inc. Unified distributed architecture for a multi-point video conference and interactive broadcast systems
US20020065922A1 (en) * 2000-11-30 2002-05-30 Vijnan Shastri Method and apparatus for selection and redirection of an existing client-server connection to an alternate data server hosted on a data packet network (DPN) based on performance comparisons
US6928474B2 (en) * 2000-12-14 2005-08-09 Honeywell International, Inc. Using a probability associative matrix algorithm to modify web pages
US7502857B2 (en) * 2000-12-15 2009-03-10 International Business Machines Corporation Method and system for optimally allocating a network service
US6795941B2 (en) 2000-12-21 2004-09-21 Honeywell International Inc. Method for diagnosing a network
US6993508B1 (en) 2000-12-29 2006-01-31 Novell, Inc. Method and mechanism for vending digital content
US6912294B2 (en) * 2000-12-29 2005-06-28 Contentguard Holdings, Inc. Multi-stage watermarking process and system
US6651141B2 (en) 2000-12-29 2003-11-18 Intel Corporation System and method for populating cache servers with popular media contents
US20020094868A1 (en) * 2001-01-16 2002-07-18 Alma Tuck Methods for interactive internet advertising, apparatuses and systems including same
US20040039704A1 (en) * 2001-01-17 2004-02-26 Contentguard Holdings, Inc. System and method for supplying and managing usage rights of users and suppliers of items
US8069116B2 (en) 2001-01-17 2011-11-29 Contentguard Holdings, Inc. System and method for supplying and managing usage rights associated with an item repository
US6754642B2 (en) * 2001-05-31 2004-06-22 Contentguard Holdings, Inc. Method and apparatus for dynamically assigning usage rights to digital works
US7028009B2 (en) * 2001-01-17 2006-04-11 Contentguardiholdings, Inc. Method and apparatus for distributing enforceable property rights
US7774279B2 (en) 2001-05-31 2010-08-10 Contentguard Holdings, Inc. Rights offering and granting
US20040025186A1 (en) * 2001-01-19 2004-02-05 Jennings Charles A. System and method for managing media
US9674575B2 (en) 2001-01-19 2017-06-06 SITO Mobile R&D IP, LLC System and method for routing media
US7054949B2 (en) * 2001-01-19 2006-05-30 World Streaming Network, Inc. System and method for streaming media
US7191244B2 (en) * 2001-01-19 2007-03-13 Streamworks Technologies, Inc. System and method for routing media
US20020123330A1 (en) * 2001-02-06 2002-09-05 Yen Robert C. Wireless internet access with enhanced bandwidth capabilities
WO2002071242A1 (en) * 2001-03-01 2002-09-12 Akamai Technologies, Inc. Optimal route selection in a content delivery network
US20020133597A1 (en) * 2001-03-14 2002-09-19 Nikhil Jhingan Global storage system
JP4254071B2 (en) * 2001-03-22 2009-04-15 コニカミノルタビジネステクノロジーズ株式会社 Printer, server, monitoring device, printing system, and monitoring program
US6766407B1 (en) * 2001-03-27 2004-07-20 Microsoft Corporation Intelligent streaming framework
US7149797B1 (en) * 2001-04-02 2006-12-12 Akamai Technologies, Inc. Content delivery network service provider (CDNSP)-managed content delivery network (CDN) for network service provider (NSP)
US20020143798A1 (en) * 2001-04-02 2002-10-03 Akamai Technologies, Inc. Highly available distributed storage system for internet content with storage site redirection
US20030065919A1 (en) * 2001-04-18 2003-04-03 Albert Roy David Method and system for identifying a replay attack by an access device to a computer system
US7921290B2 (en) * 2001-04-18 2011-04-05 Ipass Inc. Method and system for securely authenticating network access credentials for users
US7469341B2 (en) * 2001-04-18 2008-12-23 Ipass Inc. Method and system for associating a plurality of transaction data records generated in a service access system
JP2002328855A (en) * 2001-05-02 2002-11-15 Sony Corp Device and method for processing information, recording medium and program
US6959333B2 (en) * 2001-05-08 2005-10-25 Lucent Technologies Inc. Technique for content delivery over the internet
US6876984B2 (en) 2001-05-31 2005-04-05 Contentguard Holdings, Inc. Method and apparatus for establishing usage rights for digital content to be created in the future
US7152046B2 (en) * 2001-05-31 2006-12-19 Contentguard Holdings, Inc. Method and apparatus for tracking status of resource in a system for managing use of the resources
US8275716B2 (en) 2001-05-31 2012-09-25 Contentguard Holdings, Inc. Method and system for subscription digital rights management
US7725401B2 (en) 2001-05-31 2010-05-25 Contentguard Holdings, Inc. Method and apparatus for establishing usage rights for digital content to be created in the future
US8099364B2 (en) 2001-05-31 2012-01-17 Contentguard Holdings, Inc. Digital rights management of content when content is a future live event
US8275709B2 (en) 2001-05-31 2012-09-25 Contentguard Holdings, Inc. Digital rights management of content when content is a future live event
US8001053B2 (en) 2001-05-31 2011-08-16 Contentguard Holdings, Inc. System and method for rights offering and granting using shared state variables
US6895503B2 (en) 2001-05-31 2005-05-17 Contentguard Holdings, Inc. Method and apparatus for hierarchical assignment of rights to documents and documents having such rights
US7007089B2 (en) * 2001-06-06 2006-02-28 Akarnai Technologies, Inc. Content delivery network map generation using passive measurement data
AU2002305814B2 (en) 2001-06-07 2004-06-10 Contentguard Holdings, Inc. Cryptographic trust zones in digital rights management
US7774280B2 (en) 2001-06-07 2010-08-10 Contentguard Holdings, Inc. System and method for managing transfer of rights using shared state variables
US7454485B2 (en) * 2001-06-29 2008-11-18 Intel Corporation Providing uninterrupted media streaming using multiple network sites
US20030009657A1 (en) * 2001-06-29 2003-01-09 Ibm Corporation Method and system for booting of a target device in a network management system
WO2003009539A1 (en) * 2001-07-10 2003-01-30 Fujitsu Limited Mobile machine communication system and communication method
US7379977B2 (en) * 2001-07-24 2008-05-27 Steve Walrath System and method for display of multiple electronic pages
US20030188160A1 (en) * 2001-08-02 2003-10-02 Singam Sunder Method and system to securely update files via a network
US7761606B2 (en) * 2001-08-02 2010-07-20 Ipass Inc. Method and system to secure a connection application for distribution to multiple end-users
ES2214390T3 (en) * 2001-08-31 2004-09-16 Stonesoft Corporation DATA TRANSMISSION CONTROL METHOD.
US20030051015A1 (en) * 2001-09-10 2003-03-13 Brown Brian J. System and method for distributing software
US20030055971A1 (en) * 2001-09-19 2003-03-20 Menon Rama R. Providing load balancing in delivering rich media
US6915234B2 (en) 2001-09-24 2005-07-05 Electronic Data Systems Corporation Monitoring submission of performance data describing a relationship between a provider and a client
US20030065553A1 (en) * 2001-09-24 2003-04-03 Electronic Data Systems Corporation Reporting performance data describing a relationship between a provider and a client
US6850866B2 (en) * 2001-09-24 2005-02-01 Electronic Data Systems Corporation Managing performance metrics describing a relationship between a provider and a client
WO2003029980A1 (en) * 2001-09-24 2003-04-10 Electronic Data Systems Corporation Evaluating performance data describing a relationship between a provider and a client
US20030061006A1 (en) * 2001-09-24 2003-03-27 Richards Kevin T. Evaluating performance data describing a relationship between a provider and a client
US6687560B2 (en) 2001-09-24 2004-02-03 Electronic Data Systems Corporation Processing performance data describing a relationship between a provider and a client
US7860964B2 (en) 2001-09-28 2010-12-28 Level 3 Communications, Llc Policy-based content delivery network selection
EP1436736B1 (en) 2001-09-28 2017-06-28 Level 3 CDN International, Inc. Configurable adaptive global traffic control and management
US7373644B2 (en) 2001-10-02 2008-05-13 Level 3 Communications, Llc Automated server replication
US20030074670A1 (en) * 2001-10-12 2003-04-17 Penk Mark D. Propagation of dynamic network information
US20030079027A1 (en) * 2001-10-18 2003-04-24 Michael Slocombe Content request routing and load balancing for content distribution networks
US20030084104A1 (en) * 2001-10-31 2003-05-01 Krimo Salem System and method for remote storage and retrieval of data
WO2003042832A1 (en) * 2001-11-13 2003-05-22 Electronic Data Systems Corporation Managing performance metrics describing a relationship between a provider and a client
US20030093515A1 (en) * 2001-11-14 2003-05-15 Kauffman Marc W. Quality of service control of streamed content delivery
US6978270B1 (en) 2001-11-16 2005-12-20 Ncr Corporation System and method for capturing and storing operational data concerning an internet service provider's (ISP) operational environment and customer web browsing habits
US7974923B2 (en) * 2001-11-20 2011-07-05 Contentguard Holdings, Inc. Extensible rights expression processing system
US7840488B2 (en) * 2001-11-20 2010-11-23 Contentguard Holdings, Inc. System and method for granting access to an item or permission to use an item based on configurable conditions
US7558759B2 (en) * 2001-11-20 2009-07-07 Contentguard Holdings, Inc. Systems and methods for creating, manipulating and processing rights and contract expressions using tokenized templates
US20030099364A1 (en) * 2001-11-28 2003-05-29 Thompson Mark R. Playback manipulation of HTTP streamed content objects
JP2003223378A (en) * 2002-01-29 2003-08-08 Fujitsu Ltd Contents delivery network service method and system
US9167036B2 (en) 2002-02-14 2015-10-20 Level 3 Communications, Llc Managed object replication and delivery
US20030229593A1 (en) * 2002-03-14 2003-12-11 Michael Raley Rights expression profile system and method
AU2003221995A1 (en) * 2002-03-14 2003-09-29 Contentguard Holdings, Inc. System and method for graphical rights expressions
US7805371B2 (en) * 2002-03-14 2010-09-28 Contentguard Holdings, Inc. Rights expression profile system and method
US7194433B1 (en) * 2002-04-05 2007-03-20 Ricoh Company, Ltd. System, computer program product and method for managing documents
US7961884B2 (en) * 2002-08-13 2011-06-14 Ipass Inc. Method and system for changing security information in a computer network
US9137324B2 (en) * 2002-04-10 2015-09-15 International Business Machines Corporation Capacity on-demand in distributed computing environments
JP4000895B2 (en) * 2002-04-23 2007-10-31 日本電気株式会社 Bit rate control method and apparatus for real-time communication
US8543511B2 (en) * 2002-04-29 2013-09-24 Contentguard Holdings, Inc. System and method for specifying and processing legality expressions
US20040059777A1 (en) * 2002-05-31 2004-03-25 Palazzo Craig M. System and method for distributed component object model load balancing
US7836295B2 (en) * 2002-07-29 2010-11-16 International Business Machines Corporation Method and apparatus for improving the resilience of content distribution networks to distributed denial of service attacks
US20040024900A1 (en) * 2002-07-30 2004-02-05 International Business Machines Corporation Method and system for enhancing streaming operation in a distributed communication system
GB0217795D0 (en) * 2002-07-31 2002-09-11 Hewlett Packard Co Establishment of network connections
EP1387302A3 (en) * 2002-07-31 2006-05-24 Hewlett-Packard Development Company, L.P. Establishment of network connections
US7086061B1 (en) 2002-08-01 2006-08-01 Foundry Networks, Inc. Statistical tracking of global server load balancing for selecting the best network address from ordered list of network addresses based on a set of performance metrics
US7676576B1 (en) 2002-08-01 2010-03-09 Foundry Networks, Inc. Method and system to clear counters used for statistical tracking for global server load balancing
US7574508B1 (en) 2002-08-07 2009-08-11 Foundry Networks, Inc. Canonical name (CNAME) handling for global server load balancing
US7305464B2 (en) * 2002-09-03 2007-12-04 End Ii End Communications, Inc. Systems and methods for broadband network optimization
US8370542B2 (en) 2002-09-16 2013-02-05 Commvault Systems, Inc. Combined stream auxiliary copy system and method
US7542471B2 (en) 2002-10-30 2009-06-02 Citrix Systems, Inc. Method of determining path maximum transmission unit
US7630305B2 (en) 2003-07-29 2009-12-08 Orbital Data Corporation TCP selective acknowledgements for communicating delivered and missed data packets
US7616638B2 (en) * 2003-07-29 2009-11-10 Orbital Data Corporation Wavefront detection and disambiguation of acknowledgments
US8233392B2 (en) 2003-07-29 2012-07-31 Citrix Systems, Inc. Transaction boundary detection for reduction in timeout penalties
US8270423B2 (en) 2003-07-29 2012-09-18 Citrix Systems, Inc. Systems and methods of using packet boundaries for reduction in timeout prevention
CN1317662C (en) * 2002-10-31 2007-05-23 中兴通讯股份有限公司 Distribution type file access method
EP1443716B1 (en) * 2003-02-03 2007-05-02 Alcatel Lucent Establishing diverse connections via different edge nodes
US20040260710A1 (en) * 2003-02-28 2004-12-23 Marston Justin P. Messaging system
US7490348B1 (en) 2003-03-17 2009-02-10 Harris Technology, Llc Wireless network having multiple communication allowances
JP4271483B2 (en) * 2003-04-24 2009-06-03 ソニー株式会社 Content processing apparatus and content processing method
US20050010961A1 (en) * 2003-06-02 2005-01-13 Hagen David A. System for providing live and pre-recorded audio-video content to a plurality of portals over the Internet
US8606885B2 (en) * 2003-06-05 2013-12-10 Ipass Inc. Method and system of providing access point data associated with a network access point
US20050055371A1 (en) * 2003-06-05 2005-03-10 Singam Sunder Method and system to manage a network connection application
US20040254999A1 (en) * 2003-06-13 2004-12-16 Bellsouth Intellectual Property Corporation System for providing content to multiple users
JP4278445B2 (en) * 2003-06-18 2009-06-17 株式会社日立製作所 Network system and switch
US7454569B2 (en) 2003-06-25 2008-11-18 Commvault Systems, Inc. Hierarchical system and method for performing storage operations in a computer network
US7685642B2 (en) * 2003-06-26 2010-03-23 Contentguard Holdings, Inc. System and method for controlling rights expressions by stakeholders of an item
US7475108B2 (en) * 2003-06-26 2009-01-06 International Business Machines Corporation Slow-dynamic load balancing method
US8238241B2 (en) 2003-07-29 2012-08-07 Citrix Systems, Inc. Automatic detection and window virtualization for flow control
US7656799B2 (en) 2003-07-29 2010-02-02 Citrix Systems, Inc. Flow control system architecture
US7698453B2 (en) * 2003-07-29 2010-04-13 Oribital Data Corporation Early generation of acknowledgements for flow control
US8432800B2 (en) 2003-07-29 2013-04-30 Citrix Systems, Inc. Systems and methods for stochastic-based quality of service
US8437284B2 (en) 2003-07-29 2013-05-07 Citrix Systems, Inc. Systems and methods for additional retransmissions of dropped packets
US9525566B2 (en) * 2003-07-31 2016-12-20 Cloudsoft Corporation Limited Self-managed mediated information flow
US20080089347A1 (en) * 2003-08-29 2008-04-17 End Ii End Communications Inc. Systems and methods for broadband network optimization
US7512679B2 (en) * 2003-08-29 2009-03-31 International Business Machines Corporation Apparatus and method to select a captain from a plurality of control nodes
US7715934B2 (en) 2003-09-19 2010-05-11 Macrovision Corporation Identification of input files using reference files associated with nodes of a sparse binary tree
US9584360B2 (en) * 2003-09-29 2017-02-28 Foundry Networks, Llc Global server load balancing support for private VIP addresses
US20050097185A1 (en) * 2003-10-07 2005-05-05 Simon Gibson Localization link system
US7356566B2 (en) * 2003-10-09 2008-04-08 International Business Machines Corporation Selective mirrored site accesses from a communication
US20050089014A1 (en) * 2003-10-27 2005-04-28 Macrovision Corporation System and methods for communicating over the internet with geographically distributed devices of a decentralized network using transparent asymetric return paths
US20050144242A1 (en) * 2003-10-31 2005-06-30 Justin Marston Caching in an electronic messaging system
US20050097593A1 (en) * 2003-11-05 2005-05-05 Michael Raley System, method and device for selected content distribution
CA2544063C (en) 2003-11-13 2013-09-10 Commvault Systems, Inc. System and method for combining data streams in pilelined storage operations in a storage network
CA2546304A1 (en) 2003-11-13 2005-05-26 Commvault Systems, Inc. System and method for performing an image level snapshot and for restoring partial volume data
US7546324B2 (en) 2003-11-13 2009-06-09 Commvault Systems, Inc. Systems and methods for performing storage operations using network attached storage
US20050198168A1 (en) * 2003-12-04 2005-09-08 Justin Marston Messaging protocol discovery
US7895625B1 (en) * 2003-12-24 2011-02-22 Time Warner, Inc. System and method for recommending programming to television viewing communities
EP1787199A2 (en) * 2004-02-18 2007-05-23 Ipass, Inc. Method and system for managing transactions in a remote network access system
US7877810B2 (en) * 2004-03-02 2011-01-25 Rovi Solutions Corporation System, method and client user interface for a copy protection service
US7539862B2 (en) 2004-04-08 2009-05-26 Ipass Inc. Method and system for verifying and updating the configuration of an access device during authentication
US7818444B2 (en) 2004-04-30 2010-10-19 Move Networks, Inc. Apparatus, system, and method for multi-bitrate content streaming
US20060064478A1 (en) * 2004-05-03 2006-03-23 Level 3 Communications, Inc. Geo-locating load balancing
US8089972B2 (en) 2004-05-03 2012-01-03 Level 3 Communications, Llc Registration redirect server
US7584301B1 (en) * 2004-05-06 2009-09-01 Foundry Networks, Inc. Host-level policies for global server load balancing
US7496651B1 (en) 2004-05-06 2009-02-24 Foundry Networks, Inc. Configurable geographic prefixes for global server load balancing
US8073911B2 (en) * 2004-05-12 2011-12-06 Bluespace Software Corporation Enforcing compliance policies in a messaging system
US20060031352A1 (en) * 2004-05-12 2006-02-09 Justin Marston Tamper-proof electronic messaging
US20060190549A1 (en) * 2004-07-23 2006-08-24 Kouichi Teramae Multi-media information device network system
KR101200453B1 (en) * 2004-08-12 2012-11-12 텔레콤 이탈리아 소시에떼 퍼 아찌오니 A system, a method and a device for updating a data set through a communication network
US7423977B1 (en) 2004-08-23 2008-09-09 Foundry Networks Inc. Smoothing algorithm for round trip time (RTT) measurements
US20060069700A1 (en) * 2004-09-22 2006-03-30 Justin Marston Generating relational structure for non-relational messages
US7748032B2 (en) 2004-09-30 2010-06-29 Citrix Systems, Inc. Method and apparatus for associating tickets in a ticket hierarchy
US8613048B2 (en) 2004-09-30 2013-12-17 Citrix Systems, Inc. Method and apparatus for providing authorized remote access to application sessions
US7711835B2 (en) 2004-09-30 2010-05-04 Citrix Systems, Inc. Method and apparatus for reducing disclosure of proprietary data in a networked environment
EP1805990A4 (en) * 2004-10-27 2010-10-20 Eg Technology Inc Network architecture for real time delivery of video over lossy networks from remote locations
US8346956B2 (en) 2004-10-29 2013-01-01 Akamai Technologies, Inc. Dynamic image delivery system
US20060107326A1 (en) * 2004-11-12 2006-05-18 Demartini Thomas Method, system, and device for verifying authorized issuance of a rights expression
US20060106726A1 (en) * 2004-11-18 2006-05-18 Contentguard Holdings, Inc. Method, system, and device for license-centric content consumption
US8660961B2 (en) 2004-11-18 2014-02-25 Contentguard Holdings, Inc. Method, system, and device for license-centric content consumption
US20060112015A1 (en) * 2004-11-24 2006-05-25 Contentguard Holdings, Inc. Method, system, and device for handling creation of derivative works and for adapting rights to derivative works
US7734019B1 (en) * 2004-12-09 2010-06-08 Level 3 Communications, Llc Systems and methods for third party emergency call termination
US9843557B2 (en) 2004-12-09 2017-12-12 Level 3 Communications, Llc Systems and methods for dynamically registering endpoints in a network
US8768350B2 (en) 2004-12-09 2014-07-01 Level 3 Communications, Llc Systems and methods for locating endpoints in a communication network
US8200828B2 (en) 2005-01-14 2012-06-12 Citrix Systems, Inc. Systems and methods for single stack shadowing
US20060159432A1 (en) 2005-01-14 2006-07-20 Citrix Systems, Inc. System and methods for automatic time-warped playback in rendering a recorded computer session
US8230096B2 (en) 2005-01-14 2012-07-24 Citrix Systems, Inc. Methods and systems for generating playback instructions for playback of a recorded computer session
US8296441B2 (en) 2005-01-14 2012-10-23 Citrix Systems, Inc. Methods and systems for joining a real-time session of presentation layer protocol data
US8340130B2 (en) 2005-01-14 2012-12-25 Citrix Systems, Inc. Methods and systems for generating playback instructions for rendering of a recorded computer session
US7831728B2 (en) 2005-01-14 2010-11-09 Citrix Systems, Inc. Methods and systems for real-time seeking during real-time playback of a presentation layer protocol data stream
US8935316B2 (en) 2005-01-14 2015-01-13 Citrix Systems, Inc. Methods and systems for in-session playback on a local machine of remotely-stored and real time presentation layer protocol data
US8145777B2 (en) 2005-01-14 2012-03-27 Citrix Systems, Inc. Method and system for real-time seeking during playback of remote presentation protocols
US8024568B2 (en) 2005-01-28 2011-09-20 Citrix Systems, Inc. Method and system for verification of an endpoint security scan
US7711794B2 (en) * 2005-02-01 2010-05-04 International Business Machines Corporation Adjusting timing between automatic, non-user-initiated pollings of server to download data therefrom
US8918515B1 (en) * 2005-02-10 2014-12-23 Symantec Corporation Interstitial redirection management
US7436936B2 (en) * 2005-02-22 2008-10-14 Level 3 Communications, Llc VoIP call through tester
US7519074B2 (en) * 2005-02-22 2009-04-14 Level 3 Communications, Llc Voice call coordinator
US20060282386A1 (en) * 2005-03-14 2006-12-14 Szeto Christopher T Method and system for premium access
US20080307339A1 (en) 2006-03-20 2008-12-11 Kidzui, Inc. Child-oriented computing system
US20060248573A1 (en) * 2005-04-28 2006-11-02 Content Guard Holdings, Inc. System and method for developing and using trusted policy based on a social model
GB0508946D0 (en) * 2005-04-30 2005-06-08 Ibm Method and apparatus for streaming data
US7647424B2 (en) * 2005-06-15 2010-01-12 Hostway Corporation Multi-level redirection system
US9450908B2 (en) * 2005-06-23 2016-09-20 Go Daddy Operating Company, LLC Routing DNS system and method for shared domain name
US20050289242A1 (en) * 2005-06-24 2005-12-29 The Go Daddy Group, Inc. Resolving access to content associated with shared domain name using routing website
US8706816B2 (en) * 2005-06-24 2014-04-22 Go Daddy Operating Company, LLC System and method for email delivery for shared domain name
US8601475B2 (en) * 2005-08-02 2013-12-03 Aol Inc. Download and upload of email messages using control commands in a client/server web application
US7809943B2 (en) * 2005-09-27 2010-10-05 Rovi Solutions Corporation Method and system for establishing trust in a peer-to-peer network
EP1929685A4 (en) * 2005-09-29 2011-12-21 Contentguard Holdings Inc System and method for digital rights management using advanced copy with issue rights, and managed copy tokens
US8191008B2 (en) 2005-10-03 2012-05-29 Citrix Systems, Inc. Simulating multi-monitor functionality in a single monitor environment
US7720767B2 (en) * 2005-10-24 2010-05-18 Contentguard Holdings, Inc. Method and system to support dynamic rights and resources sharing
KR100772385B1 (en) * 2005-12-07 2007-11-01 삼성전자주식회사 Method and apparatus for transmitting and receiving content on distributed storage system
US7636743B2 (en) 2005-12-19 2009-12-22 Commvault Systems, Inc. Pathname translation in a data replication system
US8661216B2 (en) 2005-12-19 2014-02-25 Commvault Systems, Inc. Systems and methods for migrating components in a hierarchical storage network
US7606844B2 (en) 2005-12-19 2009-10-20 Commvault Systems, Inc. System and method for performing replication copy storage operations
US7617262B2 (en) 2005-12-19 2009-11-10 Commvault Systems, Inc. Systems and methods for monitoring application data in a data replication system
EP1974296B8 (en) 2005-12-19 2016-09-21 Commvault Systems, Inc. Systems and methods for performing data replication
US7962709B2 (en) 2005-12-19 2011-06-14 Commvault Systems, Inc. Network redirector systems and methods for performing data replication
US7651593B2 (en) 2005-12-19 2010-01-26 Commvault Systems, Inc. Systems and methods for performing data replication
US8086722B2 (en) * 2005-12-21 2011-12-27 Rovi Solutions Corporation Techniques for measuring peer-to-peer (P2P) networks
US20070150600A1 (en) * 2005-12-22 2007-06-28 International Business Machines Corporation Method and apparatus for collecting data for characterizing HTTP session workloads
US8447837B2 (en) * 2005-12-30 2013-05-21 Akamai Technologies, Inc. Site acceleration with content prefetching enabled through customer-specific configurations
CN1997005B (en) * 2006-01-06 2010-11-10 鸿富锦精密工业(深圳)有限公司 System and method for management and control of the network communication data
CN100377522C (en) * 2006-01-11 2008-03-26 北京北方烽火科技有限公司 OMA download realizing method in content distributing network
WO2007082308A2 (en) * 2006-01-13 2007-07-19 Bluespace Software Corp. Determining relevance of electronic content
CN100458721C (en) * 2006-02-17 2009-02-04 深圳奇峰创智科技有限公司 Method for automatic backup using computer network
WO2007118052A2 (en) * 2006-04-03 2007-10-18 Ebiz.Mobility Ltd Method for universal electronic payment processing
US8321523B1 (en) * 2006-04-24 2012-11-27 Centrify Corporation Method and apparatus for dynamically and incrementally modifying NIS maps
US8726242B2 (en) 2006-07-27 2014-05-13 Commvault Systems, Inc. Systems and methods for continuous data replication
US7610383B2 (en) * 2006-08-11 2009-10-27 Hewlett-Packard Development Company, L.P. Data-object-related-request routing in a dynamic, distributed data-storage system
US20080077524A1 (en) * 2006-09-25 2008-03-27 Greene Jeffrey Marc Global communication and transaction system and method
US8159457B2 (en) * 2006-09-27 2012-04-17 Yahoo! Inc. Zero-click activation of an application
US8533846B2 (en) 2006-11-08 2013-09-10 Citrix Systems, Inc. Method and system for dynamically associating access rights with a resource
JP4973145B2 (en) * 2006-11-20 2012-07-11 船井電機株式会社 Management server and content transfer system
MX2009006825A (en) * 2006-12-20 2010-03-23 United Video Properties Inc Systems and methods for providing remote access to interactive media guidance applications.
US8719809B2 (en) 2006-12-22 2014-05-06 Commvault Systems, Inc. Point in time rollback and un-installation of software
US8312323B2 (en) 2006-12-22 2012-11-13 Commvault Systems, Inc. Systems and methods for remote monitoring in a computer network and reporting a failed migration operation without accessing the data being moved
US8854652B2 (en) * 2007-01-26 2014-10-07 Samsung Electronics Co., Ltd. Host device and printing control method thereof
US20080208961A1 (en) * 2007-02-23 2008-08-28 Hostway Corporation Parallel retrieval system
US8290808B2 (en) 2007-03-09 2012-10-16 Commvault Systems, Inc. System and method for automating customer-validated statement of work for a data storage environment
US7796510B2 (en) 2007-03-12 2010-09-14 Citrix Systems, Inc. Systems and methods for providing virtual fair queueing of network traffic
US7760642B2 (en) 2007-03-12 2010-07-20 Citrix Systems, Inc. Systems and methods for providing quality of service precedence in TCP congestion control
US8046509B2 (en) 2007-07-06 2011-10-25 Prostor Systems, Inc. Commonality factoring for removable media
US8615008B2 (en) 2007-07-11 2013-12-24 Foundry Networks Llc Duplicating network traffic through transparent VLAN flooding
US20090037963A1 (en) * 2007-08-02 2009-02-05 Youbiquity, Llc System for electronic retail sales of multi-media assets
US9531798B2 (en) * 2007-10-03 2016-12-27 Virtela Technology Services Incorporated Pandemic remote access design
US8248928B1 (en) 2007-10-09 2012-08-21 Foundry Networks, Llc Monitoring server load balancing
US20090106387A1 (en) * 2007-10-18 2009-04-23 Dorai Ashok Shanmugavel Anbalagan Cidr based caching at application layer
WO2009076658A1 (en) * 2007-12-13 2009-06-18 Highwinds Holdings, Inc. Content delivery network
US8489731B2 (en) 2007-12-13 2013-07-16 Highwinds Holdings, Inc. Content delivery network with customized tracking of delivery data
US20090189892A1 (en) 2008-01-27 2009-07-30 Nitin Desai Methods and systems for detecting a dirty region within a frame encompassing three dimensional graphics
US8868741B2 (en) 2008-03-03 2014-10-21 Leapfrog Enterprises, Inc. Method and apparatus for custodial monitoring, filtering, and approving of content
US8521879B1 (en) 2008-03-11 2013-08-27 United Services Automobile Assocation (USAA) Systems and methods for a load balanced interior gateway protocol intranet
US8930538B2 (en) 2008-04-04 2015-01-06 Level 3 Communications, Llc Handling long-tail content in a content delivery network (CDN)
US9762692B2 (en) 2008-04-04 2017-09-12 Level 3 Communications, Llc Handling long-tail content in a content delivery network (CDN)
US10924573B2 (en) 2008-04-04 2021-02-16 Level 3 Communications, Llc Handling long-tail content in a content delivery network (CDN)
US8074049B2 (en) 2008-08-26 2011-12-06 Nine Technology, Llc Online backup system with global two staged deduplication without using an indexing database
AU2010202034B1 (en) 2010-04-07 2010-12-23 Limelight Networks, Inc. Partial object distribution in content delivery network
CN102203758A (en) * 2008-09-19 2011-09-28 杰出网络公司 Content delivery network stream server vignette distribution
AU2010276462B1 (en) 2010-12-27 2012-01-12 Limelight Networks, Inc. Partial object caching
JP5337879B2 (en) * 2008-09-29 2013-11-06 株式会社東芝 Prior evaluation of multiple network access points
US8316106B2 (en) 2008-12-05 2012-11-20 At&T Intellectual Property Ii, Lp System and method for assigning requests in a content distribution network
US9495382B2 (en) 2008-12-10 2016-11-15 Commvault Systems, Inc. Systems and methods for performing discrete data replication
US8204859B2 (en) 2008-12-10 2012-06-19 Commvault Systems, Inc. Systems and methods for managing replicated database data
US20120072604A1 (en) * 2009-05-29 2012-03-22 France Telecom technique for delivering content to a user
WO2010151496A1 (en) * 2009-06-22 2010-12-29 Citrix Systems, Inc. Systems and methods for platform rate limiting
KR101135087B1 (en) * 2009-08-12 2012-04-16 삼성에스디에스 주식회사 System and method for providing contents
WO2011034956A2 (en) 2009-09-15 2011-03-24 Comcast Cable Communications, Llc Dynamic content packaging
CN102792292B (en) * 2009-12-07 2015-12-16 考持·维 The system and method for site performance optimization and internet service process
US8504517B2 (en) 2010-03-29 2013-08-06 Commvault Systems, Inc. Systems and methods for selective data replication
US8352422B2 (en) 2010-03-30 2013-01-08 Commvault Systems, Inc. Data restore systems and methods in a replication environment
US8725698B2 (en) 2010-03-30 2014-05-13 Commvault Systems, Inc. Stub file prioritization in a data replication system
US8504515B2 (en) 2010-03-30 2013-08-06 Commvault Systems, Inc. Stubbing systems and methods in a data replication environment
US9049247B2 (en) 2010-04-01 2015-06-02 Cloudfare, Inc. Internet-based proxy service for responding to server offline errors
US10102301B2 (en) 2010-04-01 2018-10-16 Cloudflare, Inc. Internet-based proxy security services
US8572038B2 (en) 2010-05-28 2013-10-29 Commvault Systems, Inc. Systems and methods for performing data replication
EP2583211B1 (en) 2010-06-15 2020-04-15 Oracle International Corporation Virtual computing infrastructure
US10715457B2 (en) 2010-06-15 2020-07-14 Oracle International Corporation Coordination of processes in cloud computing environments
KR101753195B1 (en) * 2010-07-27 2017-07-19 아주대학교산학협력단 Apparatus and method to control session connection in a communication system
US8639748B2 (en) 2010-09-01 2014-01-28 Edgecast Networks, Inc. Optimized content distribution based on metrics derived from the end user
US8549148B2 (en) 2010-10-15 2013-10-01 Brocade Communications Systems, Inc. Domain name system security extensions (DNSSEC) for global server load balancing
US9021198B1 (en) 2011-01-20 2015-04-28 Commvault Systems, Inc. System and method for sharing SAN storage
US8949349B2 (en) 2011-03-28 2015-02-03 Blackberry Limited Communications system including trusted server to verify a redirection request and associated methods
EP2506618B1 (en) * 2011-03-28 2019-08-28 BlackBerry Limited Communications system including trusted server to verify a redirection request and associated methods
US8584211B1 (en) 2011-05-18 2013-11-12 Bluespace Software Corporation Server-based architecture for securely providing multi-domain applications
US8285808B1 (en) 2011-05-20 2012-10-09 Cloudflare, Inc. Loading of web resources
US9201895B2 (en) 2011-06-03 2015-12-01 Apple Inc. Management of downloads from a network-based digital data repository based on network performance
US8510807B1 (en) 2011-08-16 2013-08-13 Edgecast Networks, Inc. Real-time granular statistical reporting for distributed platforms
EP2560344B8 (en) * 2011-08-18 2018-06-27 Apple Inc. Management of downloads from a network-based digital data repository based on network performance
US8615159B2 (en) 2011-09-20 2013-12-24 Citrix Systems, Inc. Methods and systems for cataloging text in a recorded session
US8738766B1 (en) 2011-11-01 2014-05-27 Edgecast Networks, Inc. End-to-end monitoring and optimization of a content delivery network using anycast routing
US8745177B1 (en) 2011-11-01 2014-06-03 Edgecast Networks, Inc. End-to-end monitoring and optimization of a content delivery network using anycast routing
KR20130051811A (en) * 2011-11-10 2013-05-21 삼성전자주식회사 Apparatus and method for selecting access point
JP6460798B2 (en) 2012-02-10 2019-01-30 オラクル・インターナショナル・コーポレイション Cloud computing service framework
US9298715B2 (en) 2012-03-07 2016-03-29 Commvault Systems, Inc. Data storage system utilizing proxy device for storage operations
US9471578B2 (en) 2012-03-07 2016-10-18 Commvault Systems, Inc. Data storage system utilizing proxy device for storage operations
US9342537B2 (en) 2012-04-23 2016-05-17 Commvault Systems, Inc. Integrated snapshot interface for a data storage system
CN103384214A (en) * 2012-05-04 2013-11-06 深圳富泰宏精密工业有限公司 Network detection system and method
US20130346624A1 (en) * 2012-06-20 2013-12-26 Steven Chervets Dynamic media throttling based on data quotas
US9886346B2 (en) 2013-01-11 2018-02-06 Commvault Systems, Inc. Single snapshot for multiple agents
US20140201140A1 (en) 2013-01-11 2014-07-17 Commvault Systems, Inc. Data synchronization management
US10225135B2 (en) * 2013-01-30 2019-03-05 Lenovo Enterprise Solutions (Singapore) Pte. Ltd. Provision of management information and requests among management servers within a computing network
US10027586B2 (en) * 2013-03-15 2018-07-17 Star2Star Communications, LLC Network address family translation method and system
CN104079614B (en) * 2013-03-29 2017-09-12 国际商业机器公司 The method and system obtained in order for distributed post ordering system message
CA2920122A1 (en) 2013-08-08 2015-02-12 Ricoh Company, Limited Program, communication quality estimation method, information processing apparatus, communication quality estimation system, and storage medium
US9565138B2 (en) 2013-12-20 2017-02-07 Brocade Communications Systems, Inc. Rule-based network traffic interception and distribution scheme
US9753812B2 (en) 2014-01-24 2017-09-05 Commvault Systems, Inc. Generating mapping information for single snapshot for multiple applications
US9639426B2 (en) 2014-01-24 2017-05-02 Commvault Systems, Inc. Single snapshot for multiple applications
US9495251B2 (en) 2014-01-24 2016-11-15 Commvault Systems, Inc. Snapshot readiness checking and reporting
US9632874B2 (en) 2014-01-24 2017-04-25 Commvault Systems, Inc. Database application backup in single snapshot for multiple applications
US9648542B2 (en) 2014-01-28 2017-05-09 Brocade Communications Systems, Inc. Session-based packet routing for facilitating analytics
US9633128B2 (en) 2014-03-13 2017-04-25 Go Daddy Operating Company, LLC Lightweight web page generation
US11553018B2 (en) 2014-04-08 2023-01-10 Comcast Cable Communications, Llc Dynamically switched multicast delivery
US9501211B2 (en) 2014-04-17 2016-11-22 GoDaddy Operating Company, LLC User input processing for allocation of hosting server resources
US9660933B2 (en) 2014-04-17 2017-05-23 Go Daddy Operating Company, LLC Allocating and accessing hosting server resources via continuous resource availability updates
US9774672B2 (en) 2014-09-03 2017-09-26 Commvault Systems, Inc. Consolidated processing of storage-array commands by a snapshot-control media agent
US10042716B2 (en) 2014-09-03 2018-08-07 Commvault Systems, Inc. Consolidated processing of storage-array commands using a forwarder media agent in conjunction with a snapshot-control media agent
US9448731B2 (en) 2014-11-14 2016-09-20 Commvault Systems, Inc. Unified snapshot storage management
US9648105B2 (en) 2014-11-14 2017-05-09 Commvault Systems, Inc. Unified snapshot storage management, using an enhanced storage manager and enhanced media agents
US10164933B2 (en) 2014-12-19 2018-12-25 Go Daddy Operating Company, LLC System and method for domain name system restore points
US10659423B2 (en) 2014-12-19 2020-05-19 Go Daddy Operating Company, LLC System and method for modifying a domain name system template
US9904481B2 (en) 2015-01-23 2018-02-27 Commvault Systems, Inc. Scalable auxiliary copy processing in a storage management system using media agent resources
US9898213B2 (en) 2015-01-23 2018-02-20 Commvault Systems, Inc. Scalable auxiliary copy processing using media agent resources
US10009406B2 (en) * 2015-02-09 2018-06-26 Verizon Patent And Licensing Inc. Incentivized sharing for toll-free data
US10771475B2 (en) 2015-03-23 2020-09-08 Extreme Networks, Inc. Techniques for exchanging control and configuration information in a network visibility system
US9866478B2 (en) 2015-03-23 2018-01-09 Extreme Networks, Inc. Techniques for user-defined tagging of traffic in a network visibility system
US10911353B2 (en) 2015-06-17 2021-02-02 Extreme Networks, Inc. Architecture for a network visibility system
US10129088B2 (en) 2015-06-17 2018-11-13 Extreme Networks, Inc. Configuration of rules in a network visibility system
US10834065B1 (en) 2015-03-31 2020-11-10 F5 Networks, Inc. Methods for SSL protected NTLM re-authentication and devices thereof
US10530688B2 (en) 2015-06-17 2020-01-07 Extreme Networks, Inc. Configuration of load-sharing components of a network visibility router in a network visibility system
US10057126B2 (en) 2015-06-17 2018-08-21 Extreme Networks, Inc. Configuration of a network visibility system
US10454796B2 (en) * 2015-10-08 2019-10-22 Fluke Corporation Cloud based system and method for managing messages regarding cable test device operation
US10404698B1 (en) 2016-01-15 2019-09-03 F5 Networks, Inc. Methods for adaptive organization of web application access points in webtops and devices thereof
CN105577830A (en) * 2016-02-02 2016-05-11 明博教育科技股份有限公司 Optimal selection method and system for downloading list based on statistics
US10091075B2 (en) 2016-02-12 2018-10-02 Extreme Networks, Inc. Traffic deduplication in a visibility network
US10503753B2 (en) 2016-03-10 2019-12-10 Commvault Systems, Inc. Snapshot replication operations based on incremental block change tracking
US10999200B2 (en) 2016-03-24 2021-05-04 Extreme Networks, Inc. Offline, intelligent load balancing of SCTP traffic
US10567259B2 (en) 2016-10-19 2020-02-18 Extreme Networks, Inc. Smart filter generator
US10263951B2 (en) * 2017-01-09 2019-04-16 Star2Star Communications, LLC Network address family translation method and system
US10200745B2 (en) 2017-03-06 2019-02-05 Cisco Technology, Inc. System and method for cloud digital video recorders
US11010261B2 (en) 2017-03-31 2021-05-18 Commvault Systems, Inc. Dynamically allocating streams during restoration of data
US10476837B2 (en) * 2017-06-19 2019-11-12 Saudi Arabian Oil Company IPV4 addressing schema design methodology using a visual interactive tool
US10740022B2 (en) 2018-02-14 2020-08-11 Commvault Systems, Inc. Block-level live browsing and private writable backup copies using an ISCSI server
US11042318B2 (en) 2019-07-29 2021-06-22 Commvault Systems, Inc. Block-level data replication
CN111273935A (en) * 2020-03-16 2020-06-12 上海商魁信息科技有限公司 Method for terminal to inquire cloud management background to which terminal belongs and terminal
US11025710B1 (en) * 2020-10-26 2021-06-01 Verizon Digital Media Services Inc. Systems and methods for dynamic load balancing based on server utilization and content popularity
US11809285B2 (en) 2022-02-09 2023-11-07 Commvault Systems, Inc. Protecting a management database of a data storage management system to meet a recovery point objective (RPO)

Family Cites Families (44)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN86107645A (en) * 1986-11-11 1988-05-25 美国电话电报公司 Transmit the method for resource information in the computer network
CA1337132C (en) * 1988-07-15 1995-09-26 Robert Filepp Reception system for an interactive computer network and method of operation
US5341477A (en) * 1989-02-24 1994-08-23 Digital Equipment Corporation Broker for computer network server selection
DE69030340T2 (en) * 1989-02-24 1997-11-20 Digital Equipment Corp Broker for the selection of computer network servers
US5544347A (en) * 1990-09-24 1996-08-06 Emc Corporation Data storage system controlled remote data mirroring with respectively maintained data indices
US5511177A (en) * 1991-11-21 1996-04-23 Hitachi, Ltd. File data multiplexing method and data processing system
JPH0766829A (en) * 1993-06-30 1995-03-10 Kawasaki Steel Corp Electronic mail multiplexing system and communication control method in the system
US6185619B1 (en) 1996-12-09 2001-02-06 Genuity Inc. Method and apparatus for balancing the process load on network servers according to network and serve based policies
JPH0844638A (en) * 1994-08-01 1996-02-16 Nippon Telegr & Teleph Corp <Ntt> System and method for providing multimedia service
JP3452410B2 (en) * 1994-12-06 2003-09-29 日本電信電話株式会社 Virtual space data transfer method
US5920701A (en) * 1995-01-19 1999-07-06 Starburst Communications Corporation Scheduling data transmission
US6181867B1 (en) 1995-06-07 2001-01-30 Intervu, Inc. Video storage and retrieval system
US6003030A (en) * 1995-06-07 1999-12-14 Intervu, Inc. System and method for optimized storage and retrieval of data on a distributed computer network
US5734865A (en) * 1995-06-07 1998-03-31 Bull Hn Information Systems Inc. Virtual local area network well-known port routing mechanism for mult--emulators in an open system environment
US5764899A (en) * 1995-11-13 1998-06-09 Motorola, Inc. Method and apparatus for communicating an optimized reply
US6473609B1 (en) * 1995-12-11 2002-10-29 Openwave Systems Inc. Method and architecture for interactive two-way communication devices to interact with a network
US5751961A (en) * 1996-01-31 1998-05-12 Bell Communications Research, Inc. Integrated internet system for translating logical addresses of internet documents to physical addresses using integrated service control point
US5894554A (en) 1996-04-23 1999-04-13 Infospinner, Inc. System for managing dynamic web page generation requests by intercepting request at web server and routing to page server thereby releasing web server to process other requests
US5901214A (en) * 1996-06-10 1999-05-04 Murex Securities, Ltd. One number intelligent call processing system
US6134583A (en) 1996-07-01 2000-10-17 Sun Microsystems, Inc. Method, system, apparatus and article of manufacture for providing identity-based caching services to a plurality of computer systems (#16)
US5793970A (en) * 1996-07-11 1998-08-11 Microsoft Corporation Method and computer program product for converting message identification codes using a conversion map accesible via a data link
US5987506A (en) * 1996-11-22 1999-11-16 Mangosoft Corporation Remote access and geographically distributed computers in a globally addressable storage environment
US6272523B1 (en) * 1996-12-20 2001-08-07 International Business Machines Corporation Distributed networking using logical processes
US6424992B2 (en) * 1996-12-23 2002-07-23 International Business Machines Corporation Affinity-based router and routing method
US5889470A (en) * 1996-12-24 1999-03-30 Paradyne Corporation Digital subscriber line access device management information base
US6052718A (en) 1997-01-07 2000-04-18 Sightpath, Inc Replica routing
US6421726B1 (en) * 1997-03-14 2002-07-16 Akamai Technologies, Inc. System and method for selection and retrieval of diverse types of video data on a computer network
US5898850A (en) * 1997-03-31 1999-04-27 International Business Machines Corporation Method and system for executing a non-native mode-sensitive instruction within a computer system
AU6882998A (en) * 1997-03-31 1998-10-22 Broadband Associates Method and system for providing a presentation on a network
US5893091A (en) * 1997-04-11 1999-04-06 Immediata Corporation Multicasting with key words
US6256675B1 (en) 1997-05-06 2001-07-03 At&T Corp. System and method for allocating requests for objects and managing replicas of objects on a network
US6119143A (en) * 1997-05-22 2000-09-12 International Business Machines Corporation Computer system and method for load balancing with selective control
US5983227A (en) * 1997-06-12 1999-11-09 Yahoo, Inc. Dynamic page generator
US6173399B1 (en) * 1997-06-12 2001-01-09 Vpnet Technologies, Inc. Apparatus for implementing virtual private networks
US6112239A (en) * 1997-06-18 2000-08-29 Intervu, Inc System and method for server-side optimization of data delivery on a distributed computer network
US6230196B1 (en) 1997-11-12 2001-05-08 International Business Machines Corporation Generation of smart HTML anchors in dynamic web page creation
US6178160B1 (en) 1997-12-23 2001-01-23 Cisco Technology, Inc. Load balancing of client connections across a network using server based algorithms
US6185598B1 (en) 1998-02-10 2001-02-06 Digital Island, Inc. Optimized network resource location
US6175917B1 (en) * 1998-04-23 2001-01-16 Vpnet Technologies, Inc. Method and apparatus for swapping a computer operating system
US6144996A (en) 1998-05-13 2000-11-07 Compaq Computer Corporation Method and apparatus for providing a guaranteed minimum level of performance for content delivery over a network
US6115752A (en) 1998-05-21 2000-09-05 Sun Microsystems, Inc. System and method for server selection for mirrored sites
US6108703A (en) * 1998-07-14 2000-08-22 Massachusetts Institute Of Technology Global hosting system
US6799248B2 (en) * 2000-09-11 2004-09-28 Emc Corporation Cache management system for a network data node having a cache memory manager for selectively using different cache management methods
US7039627B1 (en) * 2000-12-22 2006-05-02 Nortel Networks Limited Method and apparatus for performing a radix search by selecting one of a valid table and a transition table

Also Published As

Publication number Publication date
JP2002506543A (en) 2002-02-26
WO1998058315A9 (en) 1999-04-08
WO1998058315A1 (en) 1998-12-23
US6799221B1 (en) 2004-09-28
DE69835674T2 (en) 2006-12-28
CN1264476A (en) 2000-08-23
EP0990205A1 (en) 2000-04-05
US20080201488A1 (en) 2008-08-21
DE69835674D1 (en) 2006-10-05
CA2294149A1 (en) 1998-12-23
US20050063401A1 (en) 2005-03-24
CN1109298C (en) 2003-05-21
AU8153998A (en) 1999-01-04
US6112239A (en) 2000-08-29
US7366793B2 (en) 2008-04-29
EP0990205B1 (en) 2006-08-23

Similar Documents

Publication Publication Date Title
JP4968975B2 (en) Content distribution method in distributed computer network
US6502125B1 (en) System and method for optimized storage and retrieval of data on a distributed computer network
US6421726B1 (en) System and method for selection and retrieval of diverse types of video data on a computer network
CA2269069C (en) System and method for optimized storage and retrieval of data on a distributed computer network
US7035907B1 (en) Manipulating content objects to control their display
US8903950B2 (en) Personalized content delivery using peer-to-peer precaching
WO2001093109A2 (en) Viewer object proxy
CA2410850A1 (en) A qos based content distribution network
US8370420B1 (en) Web-integrated display of locally stored content objects
CA2410959A1 (en) Content tracking
WO2001093108A2 (en) Content manager
CA2410863A1 (en) Client side address routing analysis
JP2004501443A (en) Deterministic routing and transparent destination change on the client side

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050128

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20080129

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20080430

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20080616

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20080729

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090407

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20090707

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20090817

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20091007

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20100525

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20100616

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20100621

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20100824

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20101004

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20100924

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20101101

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20101022

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20101129

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20101125

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20110315

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20110715

A911 Transfer to examiner for re-examination before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20111020

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

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

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

Free format text: PAYMENT UNTIL: 20150413

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

EXPY Cancellation because of completion of term