(57)【特許請求の範囲】
【請求項１】
複数のサーバレプリカ、少なくとも１つのレプリカルータ、及び少なくとも１つのクライエントコンピュータが通信インターネットワークにより相互接続され、
クライエントコンピュータは、サーバレプリカへアクセスするためのネットワーク要求を、通信インターネットワークを経て送信するようにプログラムされ、
少なくとも１つのレプリカルータは、ネットワーク要求を受け取り、そして少なくとも幾つかのサーバレプリカの各々に対し、インターネットワークにおけるクライエントコンピュータの位置に基づいてクライエントコンピュータとサーバレプリカとの間の推定通信性能を特定する性能メトリック値を計算するようにプログラムされると共に、インターネットワークにおけるクライエントコンピュータの位置に基づいて良好な性能を与えると推定される少なくとも１つのサーバレプリカへクライエントコンピュータを指向するようにプログラムされ、レプリカルータは、レプリカルータにより計算されるサーバレプリカの性能メトリック値に基づいてクライエントコンピュータを指向するところのサーバレプリカを選択し、そして
レプリカルータによりクライエントコンピュータが指向されるところのサーバレプリカは、クライエントコンピュータからのネットワーク要求に応答するようにプログラムされることを特徴とするインターネットワークのレプリカルーティングシステム。
【請求項２】
サーバレプリカは、サーバレプリカ広告をレプリカルータへ送信するようにプログラムされ、上記広告は、レプリカルータが性能メトリック値を計算できるようにするところの情報を含み、そして
レプリカルータは、サーバレプリカ広告のデータベースを維持するようにプログラムされる請求項１に記載のシステム。
【請求項３】
レプリカルータは、レプリカ広告をそれらの実際のソースＩＰアドレスに一致させて、いずれかのサーバレプリカがファイアウオールの後方に位置するかどうか決定するようにプログラムされる請求項２に記載のシステム。
【請求項４】
クライエントコンピュータは、そのネットワーク環境の記述をレプリカルータへ送信するようにプログラムされ、そして
レプリカルータは、クライエントコンピュータのネットワーク環境の記述に基づいてサーバレプリカに対する性能メトリック値を計算するようにプログラムされる請求項１に記載のシステム。
【請求項５】
レプリカルータは、クライエントコンピュータからレプリカルータへの経路に配置された少なくとも１つのネットワークルータの性能メトリック値に基づいてサーバレプリカの性能メトリック値を計算するようにプログラムされる請求項１に記載のシステム。
【請求項６】
クライエントコンピュータは、レプリカルーティング要求を通信インターネットワークを経てマルチキャスト又はブロードキャストすることにより、サーバレプリカへアクセスするためのネットワーク要求をレプリカルータへ送信させるようにプログラムされる請求項１に記載のシステム。
【請求項７】
複数のレプリカルータがハイアラーキーに構成され、これらレプリカルータの少なくとも１つは、ハイアラーキー内のより下位のレプリカルータへクライエントコンピュータを指向することにより、インターネットワークにおけるクライエントコンピュータの位置に基づいて良好な性能を与えると推定されるサーバレプリカへクライエントコンピュータを指向するようにプログラムされる請求項１に記載のシステム。
【請求項８】
少なくとも１つのレプリカルータは、ハイアラーキー内のより上位のレプリカルータへレプリカルータ広告を送信するようにプログラムされ、レプリカルータ広告は、ハイアラーキー内の上位のレプリカルータが性能メトリック値を計算できるようにするところの情報を含み、そして
ハイアラーキー内の上位のレプリカルータは、レプリカルータ広告を広告のデータベースに記憶するようにプログラムされる請求項７に記載のシステム。
【請求項９】
ハイアラーキー内の上位のレプリカルータは、レプリカルータ広告をその実際のソースＩＰアドレスに一致させ、そのレプリカルータ広告を送信したレプリカルータがファイアウオールの後方に配置されているかどうか決定するようにプログラムされる請求項８に記載のシステム。
【請求項１０】
複数のサーバレプリカ、少なくとも１つのレプリカルータ、及び少なくとも１つのクライエントコンピュータを備えた通信インターネットワークにおけるレプリカルーティング方法において、
あるサーバレプリカへアクセスするためのネットワーク要求をクライエントコンピュータから通信インターネットワークを経て送信するようにし、
少なくとも１つのレプリカルータでネットワーク要求を受け取り、
そのレプリカルータにおいて、少なくとも幾つかのサーバレプリカの各々に対し、インターネットワークにおけるクライエントコンピュータの位置に基づいてクライエントコンピュータとサーバレプリカとの間の推定通信性能を特定する性能メトリック値を計算し、
インターネットワークにおけるクライエントコンピュータの位置に基づいて良好な性能を与えると推定される少なくとも１つのサーバレプリカへクライエントコンピュータを指向し、クライエントコンピュータが指向されるサーバレプリカは、レプリカルータにより計算されるサーバレプリカの性能メトリック値に基づいて選択され、そして
クライエントコンピュータが指向されるサーバレプリカにおいて、クライエントコンピュータからのネットワーク要求に応答する、
という段階を備えたことを特徴とする方法。
【請求項１１】
サーバレプリカ広告をサーバレプリカからレプリカルータへ送信するようにし、上記広告は、レプリカルータが性能メトリック値を計算できるようにするところの情報を含み、そして
レプリカルータは、サーバレプリカ広告のデータベースを維持する、
という段階を更に含む請求項１０に記載の方法。
【請求項１２】
レプリカルータにおいて、レプリカ広告をそれらの実際のソースＩＰアドレスに一致させて、いずれかのサーバレプリカ又はレプリカルータがファイアウオールの後方に位置するかどうか決定する段階を更に含む請求項１１に記載の方法。
【請求項１３】
クライエントコンピュータからそのネットワーク環境の記述をレプリカルータへ送信し、そして
レプリカルータにおいてクライエントコンピュータのネットワーク環境の記述に基づいてサーバレプリカに対する性能メトリック値を計算する、
という段階を更に含む請求項１０に記載の方法。
【請求項１４】
レプリカルータにおいて、クライエントコンピュータからレプリカルータへの経路に配置された少なくとも１つのネットワークルータの性能メトリック値に基づいてサーバレプリカの性能メトリック値を計算する段階を更に含む請求項１０に記載の方法。
【請求項１５】
レプリカルーティング要求を通信インターネットワークを経てマルチキャスト又はブロードキャストすることにより、サーバレプリカへアクセスするためのネットワーク要求をクライエントコンピュータからレプリカルータへ送信させる段階を更に含む請求項１０に記載の方法。
【請求項１６】
複数のレプリカルータがハイアラーキーに構成され、上記方法は、更に、これらレプリカルータの少なくとも１つが、ハイアラーキー内のより下位のレプリカルータへクライエントコンピュータを指向することにより、インターネットワークにおけるクライエントコンピュータの位置に基づいて良好な性能を与えると推定されるサーバレプリカへクライエントコンピュータを指向する段階を含む請求項１０に記載の方法。
【請求項１７】
レプリカルータの１つからハイアラーキー内のより上位のレプリカルータへレプリカルータ広告を送信するようにし、レプリカルータ広告は、ハイアラーキー内の上位のレプリカルータが性能メトリック値を計算できるようにするところの情報を含み、そして
ハイアラーキー内の上位のレプリカルータは、レプリカルータ広告を広告のデータベースに記憶する、
という段階を更に含む請求項１６に記載の方法。
【請求項１８】
ハイアラーキー内の上位のレプリカルータにおいてレプリカルータ広告をその実際のソースＩＰアドレスに一致させ、そのレプリカルータ広告を送信したレプリカルータがファイアウオールの後方に配置されているかどうか決定する段階を更に含む請求項１７に記載の方法。
【請求項１９】
複数のサーバレプリカ、少なくとも１つのレプリカルータ及び少なくとも１つのクライエントコンピュータが通信インターネットワークにより相互接続され、
サーバレプリカは、サーバレプリカ広告をレプリカルータへ送信するようプログラムされ、上記広告の各々は、サーバレプリカによりサービスされるべき通信インターネットワークにおけるネットワークの少なくとも１つの識別子を含み、
クライエントコンピュータは、サーバレプリカへアクセスするためのネットワーク要求を、通信インターネットワークを経て送信するようにプログラムされ、
少なくとも１つのレプリカルータは、サーバレプリカ広告のデータベースを維持し、クライエントコンピュータからネットワーク要求を受け取り、そしてデータベースの広告で識別されたネットワークと、クライエントコンピュータが位置するネットワークとの間の関係に基づいてサーバレプリカの少なくとも１つにクライエントコンピュータを指向するようプログラムされ、そして
レプリカルータによりクライエントコンピュータが指向されるところのサーバレプリカは、クライエントコンピュータからのネットワーク要求に応答するようにプログラムされることを特徴とするインターネットワークのレプリカルーティングシステム。
【請求項２０】
複数のサーバレプリカ、少なくとも１つのレプリカルータ及び少なくとも１つのクライエントコンピュータを備えた通信インターネットワークにおけるレプリカルーティング方法において、
サーバレプリカからサーバレプリカ広告をレプリカルータへ送信するようにし、上記広告の各々は、サーバレプリカによりサービスされるべき通信インターネットワークにおけるネットワークの少なくとも１つの識別子を含み、
サーバレプリカへアクセスするためのネットワーク要求をクライエントコンピュータから通信インターネットワークを経て送信するようにし、
レプリカルータは、サーバレプリカ広告のデータベースを維持し、
クライエントコンピュータからネットワーク要求をレプリカルータで受け取り、
データベースの広告で識別されたネットワークと、クライエントコンピュータが位置するネットワークとの間の関係に基づいてサーバレプリカの少なくとも１つにクライエントコンピュータを指向し、そして
レプリカルータによりクライエントコンピュータが指向されるところのサーバレプリカにおいてクライエントコンピュータからのネットワーク要求に応答する、
という段階を含むことを特徴とする方法。
【発明の詳細な説明】
発明の分野
本発明は、一般に、インターネットワークのレプリカルーティングシステムに係り、より詳細には、クライエントコンピュータに対して良好な性能を与えることが推定されるサーバレプリカへクライエントコンピュータを指向するためのシステムに係る。
先行技術の説明
インターネットのような国際的な公衆パケット交換コンピュータインターネットワークの利用者が最近急激に増加したために、それらが含む情報及びサービスについて多大な需要が生じている。インターネットワークにおけるサービスのレプリカ形成は、それらのサービスを大勢のユーザに利用できるようにする。
クライエントコンピュータをサーバに自動的に向けさせる幾つかの既知の解決策は、例えば、多数のサーバ間で負荷のバランスをとるよう試みるために多数のサーバレプリカの１つへユーザを向けるラウンドロビンＤＮＳ及び負荷バランスＤＮＳを含む。マルチプルホストネームと称する別の解決策では、各々個別のホストネームを有する多数のサーバにわたって内容が分散される。ユーザに返送されるウェブページは、負荷バランスの問題及びレプリカの内容事項に基づいてユーザに対して選択されたレプリカを指すリンクを含む。インターネット負荷バランシングと称する別の解決策では、ハードウェア要素が、単一のＩＰアドレスへ送られるユーザ要求を多数のサーバレプリカの１つへ自動的に分配して、負荷のバランスをとる。更に別の解決策は、動作状態にあって、要求で過負荷となっておらず且つ要求された情報を含んでいるレプリカへユーザを自動的に向けるように負荷バランシングをレプリカ機能と組合わせる共振ディスパッチである。
発明の要旨
本発明は、インターネットワークにおけるクライエントの位置が与えられると、クライエントに対して良好に機能するサーバレプリカへクライエントコンピュータを自動的に向けるためにレプリカルーティングと称する新たな方法を使用するネットワークサーバ複製システムを提供することである。より詳細には、クライエントコンピュータがレプリカルータと連絡し、このレプリカルータは、クライエントのネットワーク位置及びインターネットワークの推定性能が与えられると、良好に機能するインターネットワークのサーバレプリカへそれらクライエントコンピュータを透過的に再指向する。
本発明により与えられるレプリカルーティングは、クライエントコンピュータが、インターネットワークにおけるその使用位置の付近で重要な複製情報にアクセスできるようにする。特に、適当なサーバレプリカが確立されると、本発明によるレプリカルーティングは、インターネットワークにおいてその特定のレプリカの「近傍」にあるクライエントをその特定のレプリカに自動的に向け、これにより、複製されたサーバへの高性能アクセスを与える。例えば、本発明は、ネットワークリンクやネットワークルータのようなネットワーク要素により導入される遅延及び帯域巾に非常に敏感な映像のようなネットワークアプリケーションへの高性能アクセスを可能にする。この高性能アクセスは、公衆コンピュータインターネットワークが、通常、多数の個人及び組織により制御される交換、送信及びホストコンピュータ要素を含む場合に、特に重要である。
ある実施形態では、各サーバレプリカは、インターネットワークにおけるその位置と、ローカルインターネットワークトポロジー及び性能の観察とに関する情報を要約するレプリカ広告を形成する。サーバレプリカは、そのレプリカ広告をレプリカルーティングシステムに自動的に送り込む。レプリカルータは、各サーバレプリカにより供給されるレプリカ広告及び他の任意の測定に基づいて、クライエントコンピュータを１つ以上のサーバレプリカへルート指定するように応答する。管理のために不当なオーバーヘッドを伴うことなく新たなレプリカを柔軟に追加することができる。
サーバレプリカの数が増加するにつれて、各レプリカルータが１つのサービスに対して全てのサーバレプリカのレプリカ広告を含むことが不可能になり又は非効率的となる。本発明によるレプリカルーティングの１つの特定の方法は、レプリカルータを任意にハイアラーキーに構成できるようにし、そしてこのレプリカルータハイアラーキーの一部分のみを上るようにレプリカ広告を伝播できるようにする。レプリカルーティングプロセスの間に、クライエント要求がハイアラーキーを下るように自動的に送信され、やがて、それらは、通知済みレプリカルーティング判断を行うためにレプリカのインターネットワーク位置に関して充分に知識のあるレプリカルータに到達する。従って、特定のサービスに対して全てのレプリカ広告を単一のレプリカルーティングサーバに含ませる必要はない。
レプリカルータのハイアラーキーを導入する第２の理由は、機密性に関する。レプリカ広告は、インターネットワーク特性及びトポロジーに関する敏感な情報を含み得るので、ある組織は、プライベートなインターネットワーク（イントラネット）内にプライベートなレプリカルータを形成して、この情報を含むように選択することができる。本発明の１つの特定の実施形態では、イントラネットの内部からのクライエント要求がこのプライベートなレプリカルータに自動的に向けられる一方、イントラネットの外部からのクライエント要求は、アクセスできないレプリカに対して詳細な広告を知る必要のない他のレプリカルータを使用する。
本発明の別の特徴においては、クライエントアプレットがレプリカルーティングプロセスにおいて助けとなる。クライエントアプレットは、クライエントインターネットワーク環境の幾つかの特性を決定し、そしてそれらを、ルーティングプロセスを助けるための付加的な情報としてレプリカルータに送信することができる。レプリカルータは、２つ以上のレプリカアドレスをクライエントアプレットへ返送することができ、そしてクライエントアプレットは、経験的な性能実験を実行して、クライエントの使用に対する最良のサーバレプリカを選択することができる。
本発明の多数の他の目的、特徴及び効果は、添付図面を参照した以下の説明から明らかとなろう。
【図面の簡単な説明】
図１は、本発明によるレプリカルーティングシステムのブロック図である。
図２は、レプリカルーティングハイアラーキーを示す図である。
図３ａ−３ｃは、レプリカ広告の形成及びレプリカルータによるレプリカ広告の処理を示すフローチャートである。
図４ａ−４ｂは、レプリカルータへのクライエント要求を処理し、クライエントが別のレプリカルータ又はレプリカへ再指向されるところを示すフローチャートである。
図５ａ−５ｂは、クライエントレプリカルーティングアプレットの助けによるレプリカルータへのクライエント要求の別の処理を示すフローチャートである。
図６は、調整可能なサイズの隣接部においてインターネットワークの性能を決定するプロセスを示すフローチャートである。
好ましい実施形態の詳細な説明
図１に示されたレプリカルーティングシステム１００は、ファイアウオール２０及び２１により保護された公衆インターネットワーク１０及びイントラネット１１、１２を使用し、複数のクライエントコンピュータ３１、３２、３３及び３４と、サーバレプリカ４１、４２、４３及び４４と、レプリカルータ５１及び５２と、マスターサーバ６１及び６２とを相互接続する。各レプリカルータ５１及び５２は、それに対応するレプリカルーティングデータベース７１及び７２を有する。システムのユーザは、マスターサーバ６１、６２及びサーバレプリカ４１、４２、４３、４４により与えられるサービスにアクセスするためにクライエントコンピュータ３１、３２、３３、３４を使用し、そして１つ以上のレプリカルータ５１、５２により適当なサーバレプリカに向けられる。クライエントコンピュータは、ユーザワークステーション及び代理サーバを含むことができる。マスターサーバ６１、６２は、サーバレプリカ４１、４２、４３、４４において処理されないある更新要求、例えば、共用データベースの同期更新を必要とする商品の購入やユーザの登録にサービスするのに使用される。レプリカルータ、サーバレプリカ及びマスターサーバは、図示されたように個別のコンピュータにおいて実施することもできるし、又はコンピュータを共用することもできる。例えば、レプリカルータ、サーバレプリカ及びマスターサーバは、同じコンピュータに存在することができる。
サーバレプリカ４１、４２、４３、４４の内容は、マスター／スレーブ構成や重み付選択のようなネットワークベースの複製方法によって動的に維持することもできるし、或いはネットワークを経てのデジタルブロードキャスト又は衛星や地上リンクのような個別のマルチキャスト又はブロードキャストチャンネルによりレプリカを更新することもできる。或いは又、光学ディスクのような物理的に配布できる媒体によってレプリカを部分的に又は完全に実施することもできる。
特定の好ましい実施形態の基礎となるソフトウェアアーキテクチャーは、ワールドワイドウェブのハイパーテキスト規定に基づく。ハイパーテキストマークアップ言語（ＨＴＬＭ）の文書フォーマットを使用して、文書及びフォームが表わされ、そしてハイパーテキスト転送プロトコル（ＨＴＴＰ）が、クライエント、レプリカルータ、サーバレプリカと、マスターサーバコンピュータとの間に使用される。文書は、コンピュータのネットワークにおいて均一リソースロケータ（ＵＲＬ）で名前付けされる。文書は、広範囲に構成されたいかなる形式のデジタルデータでもよく、例えば、テキスト、音声及び映像を含むマルチメディア文書、及びプログラムを含む文書である。特に、新たなプログラムのダウンロードによりクライエントコンピュータを自動的に拡張する能力を許すＪａｖａアプレット及びＡｃｔｉｖｅＸコントロールを文書に含ませることもできるし、又は文書により参照することもできる。
文書に加えて、サーバレプリカは、関連データベース、マルチメディアデータ、ビデオファイル及びグループウェアデータを含むいかなる形式のデータを複製するのにも使用できる。これらのデータタイプへのアクセスをサポートするために、サーバレプリカ及びマスターサーバは、ＨＴＴＰに加えて又はそれに代わって、種々の標準化されたプロトコル、例えば、標準リモート手順コールプロトコル、ＯＤＢＣのようなデータベースインターフェイス、マイクロソフトの分散型共通オブジェクトモデル（ＤＣＯＭ）及びそれらの後継モデルをサポートすることができる。
又、サーバレプリカは、動的な内容を発生するのに使用されるプログラムを複製することもできる。サーバレプリカがこのようなプログラムのＵＲＬに対するＨＴＴＰ要求をクライエントから受け取って処理するときに、プログラムが実行され、そしてプログラムは、クライエントへ返送される動的な内容を発生する。又、同じＵＲＬベースのメカニズムを使用して、動的に実行されるプログラムへＨＴＴＰ  ＰＯＳＴデータを送信することもできる。従って、サーバレプリカは、動的な内容を発生し、クライエントデータを処理しそして静的な内容に作用するように使用することができる。このプログラム複製及び動的プログラム呼び出しメカニズムは、他の標準化された通信プロトコルと共に使用することができる。
サーバレプリカは、ある更新及びトランザクション要求を任意に処理し、そしてそれらを他のサーバレプリカ又はマスターサーバへ中継することができる。例えば、共用プロジェクトページを１つのサーバレプリカにおいて更新し、そしてこの更新を他の全てのレプリカへ自動的に伝播することができる。或いは又、ハード・グッド・オーダーの提出フォームをサーバレプリカによりファイルにスプールし、そして所定の間隔でマスターサーバへ送信して、更に処理することもできる。
１つの特定の実施形態の基礎となるネットワークアーキテクチャーは、ＴＣＰ／ＩＰ及び１群のＩＰルーティング手順である。このネットワーク技術の背景は、スチーブンス氏著の「ＴＣＰ／ＩＰイラストレーテッド（TCP/IP Illustrated）」（１９９４年、アジソン−ウエスリー、リーディング、マサチューセッツ州）、ヒューテナ氏著の「インターネットにおけるルーティング（Routing in the Internet）」（１９９５年、プレンティス・ホール、エングレウッド・クリフス、ニュージャージー州）、及びパクソン氏著の「インターネットにおける端−端ルーティング特性（End-to-End Routing Behavior in the Internet）」（１９９６年、ＳＩＧＣＯＭＭ  ’９６  ８／９６  ＣＡ、ＵＳＡ）に見ることができる。ここで使用するネットワークという用語は、ネットワーク及びサブネットワークの両方を指すものとする。ここで使用するネットワーク番号又はネットワーク識別子という用語は、ネットワーク及びサブネットワークの両方の要素を含むネットワークのＩＰアドレスを指す。
図２は、レプリカルータの例示的ハイアラーキー２００を示すもので、ルータ２０１は、ルート（根）レプリカルータであり、そしてルータ２０３は、その隣接ネットワークにおけるサーバレプリカに対するレプリカ広告を含むリーフ（葉）レプリカルータである。ハイアラーキーの各レベルに２つ以上のレプリカルータが存在してもよく、そして多数のルートレプリカルータがあってもよい。ルートレプリカルータのＩＰアドレスは、「ｗｗｗ．ｐａｔｈｆｉｎｄｅｒ．ｃｏｍ」のようなサービスのＤＮＳ名に結び付けられる。
クライエントコンピュータに対して良好な性能を与えるサーバレプリカへクライエントコンピュータを向けるためにレプリカルータがいかに動作するかを説明する前に、クライエントコンピュータ又はサーバレプリカがそのローカルインターネットワークトポロジーをいかに「発見」できるかについてここで説明する。次いで、この技術を本発明のレプリカルーティングシステムに関連していかに使用するかについて説明する。
図６は、ローカルインターネットワークトポロジー及び性能の発見を示すフローチャートである。インターネットワークに使用される全てのルーティングプロトコルが使用され、それらは、ルーティング・インフォーメーション・プロトコル（ＲＩＰ）、外部ゲートウェイ・プロトコル（ＥＧＰ）、ボーダー・ゲートウェイ・プロトコル（ＢＧＰ）、オープン・ショーテスト・パス・ファースト（ＯＰＳＦ）、クラスレス・インタードメイン・ルーティング（ＣＤＩＲ）、並びにそれらの子孫及びそれに続くものを含む。ステップ９０５において、クライエントコンピュータ（又はサーバレプリカ）は、隣接ネットワークルータについて学習するために、ブロードキャスト又はマルチキャストにより、全ての接続されたネットワークにネットワークルータ勧誘メッセージを送信する（標準的なネットワークルータは、本発明によるレプリカルータと混同されない）。
ステップ９１０において、ネットワークルーティングテーブル要求メッセージが、良く知られた又は予め構成されたネットワークルータと共に、ステップ９０５で発見された全てのネットワークルータへ送信される。ネットワークルータからの応答（ルーティングテーブル）は、ステップ９１５においてクライエントコンピュータにより受け取られる。ステップ９２０において、クライエントコンピュータは、クライエントネットワークからその受け取ったルーティングテーブルで指定された全てのネットワークへの予想される性能をルーティングテーブルから導出し、そしてその情報をネットワーク性能テーブルに記録する。ネットワーク性能テーブルは、ネットワーク番号と、ネットマスクと、クライエントからネットワーク番号への性能の推定値（例えば、帯域巾の推定値）とを各々含む行のリストである。ネットマスク（サブネットマスクと称することもある）は、ＩＰアドレスのどの部分がネットワーク及びサブネットワーク識別子を含むかを指定し、従って、２つのアドレスが同じネットワークにあるかどうかを決定するためには第２のＩＰアドレスに合致しなければならない。又、各ネットワーク性能テーブルエントリーも、ルーティングテーブルにより報告されるものとして行先ネットワークのネットマスクを含む。行先ネットワークにおけるネットワークルータによりネットマスクが報告されない場合には、行先ネットワークのＩＰアドレスのクラスに基づくデフォールトネットマスク（アドレスの最初の数字から推測される）が使用されるか、又は別の予め指定された１組のルールが使用される。２つ以上のネットワークルータが離れたネットワークへのルートを与える場合には、クライエントコンピュータが最良の性能のルートのみを性能テーブルに記録する。レプリカルーティング「性能」に対して、１つのメトリック、例えば、推定帯域巾が使用される。例えば、特定のＲＩＰネットワークルータが、離れたネットワークに到達するために必要な推定帯域巾ではなくて、離れたネットワークに到達するために必要なネットワークホップの数を報告する場合には、各ホップが報告されるたびに理想的な固定の最大値から固定量だけ帯域巾を減少するだけで、ホップの数を推定帯域巾に変換することができる。或いは又、離れたネットワークにおけるルータのアドレスがステップ９１５で受け取った情報において発見された場合には、クライエントから離れたネット枠へのネットワーク性能を推定するよう試みるために「ピング（ping）」することができる。ステップ９２５において、構成により設定された最大繰り返し数を越えない場合には、ステップ９３５において、まだ調査されていないステップ９１５で受け取られたルーティングテーブルにおいて名前付けされた全てのネットワークルータが組み立てられ、そしてその組の新たなルータがステップ９１０において使用されて、隣接ネットワークについて更に学習が行なわれる。さもなくば、ステップ９３０において、インターネットワークの性能発見が終了し、ネットワーク番号と、ネットマスクと、そのネットワーク番号に対する性能の推定値とを各々含む行のリストであるネットワーク性能テーブルが形成される。
別の実施形態においては、所与のネットワークルータに対して調査された最大深さ（最大繰り返し数）が、ネットワークルータに依存してもよい（例えば、良く知られたネットワークルータは、更に大きな最大深さを有してもよい）。更に別の実施形態では、２つ以上のネットワーク性能メトリック（帯域巾及び待ち時間）を使用することができる。
多数の形式のネットワーク番号をネットワーク性能テーブルに同時に使用することができ、従って、ＩＰネットワーク番号、ＩＰｎｇ（次世代）番号及びそれらの子孫を含むレプリカルーティングデータベースに多数の形式のネットワーク番号を使用することができる。
別の実施形態においては、予め構成されたＩＰアドレス及びサーバレプリカのＩＰアドレスへのトレースルートを実行するためにトレースルートユーティリティを使用することによりネットワーク性能マップが拡張される。トレースルートユーティリティは、スチーブンス氏著の「ＴＣＰ／ＩＰイラストレーテッド」、第１巻、第８章「トレースルートプログラム（Traceroutes Program）」（１９９４年、アジソン−ウェスリー、リーディング、マサチューセッツ州）に掲載されている。サーバレプリカアドレスは、ルートレプリカルータ及び他のレプリカルータと連絡して、特殊な要求により、サーバレプリカ及びレプリカルータアドレスのリストを送信するよう求めることにより、発見することができる。トレースルートの使用は、ルートテーブル問合せでは得られない情報を露呈することができる。
図３ａ−３ｃは、レプリカ広告の形成を含むサーバレプリカ及びレプリカルータの動作を示すフローチャートである。このシステムの動作における重要な概念は、親のレプリカルータを選択しそして親のレプリカルータに「広告」を送信する機能をサーバレプリカ及びレプリカルータの両方が実行することであり、上記広告は、インターネットワークにおけるサーバレプリカ又はレプリカルータのアドレス並びにそれらサーバレプリカ又はレプリカルータから導出されたローカルインターネットワークトポロジー及び性能推定値に関する情報を含む。
ステップ３０１において、特定のコンピュータがサーバレプリカである場合には、制御がステップ３０２へ移行し、そしてそれがレプリカルータである場合には、制御がステップ３０６へ移行する。
ステップ３０２において、サーバレプリカは、図６に示す方法を用いてネットワーク性能テーブルを形成する。ステップ３０５において、サーバレプリカは、それが到達し得る各ネットワークごとに１つのエントリを有するレプリカ要約記録を形成する。各レプリカ要約記録エントリは、ネットワーク番号と、ネットワーク性能テーブルからのネットワークのネットマスク（図６）と、ネットワーク性能テーブルからネットワークへの性能の推定値と、タイムスタンプとしての現在時間とを含む。レプリカ要約記録全体は、サーバレプリカにより形成されたものとしてマスクされる。
或いは又、特定のコンピュータがレプリカルータである場合には、ステップ３０６において、レプリカルータは、そのレプリカルーティングデータベースを走査し、そして構成により設定された時間限界より古いタイムスタンプを有するレプリカ要約記録エントリを削除する。ステップ３０７において、このレプリカルータがルートレプリカルータとして構成されているかどうか調べるためのテストが行なわれる。もしそうであれば、制御はステップ３７０へ移行し、ルートレプリカルータは広告を作成しない（ルートレプリカルータは、それが広告を送信できる親をもたないので）。このレプリカルータがルートレプリカルータでない場合には、ステップ３１０において、レプリカルーティングデータベースを使用して、そのレプリカルーティングテーブルのレプリカ要約記録で広告される各ネットワーク番号ごとに１つづつの多数のエントリーを有する新たなレプリカ要約記録が作成される。新たに作成されたレプリカ要約記録の各エントリは、ネットワーク番号と、そのネットワーク番号に対するネットマスクと、サーバレプリカ又はレプリカルータによりレプリカ要約記録において広告されるそのネットワーク番号に対する最良の性能メトリック値と、ルーティングデータベースにおけるこの最良の性能エントリーからのタイムスタンプとを備えている。新たに作成されるレプリカ要約記録は、レプリカルータにより作成されたものとして表示される。
ステップ３１５において、レプリカルータ及びサーバレプリカに共通のロジックが開始され、そして新たなレプリカ要約記録は、レプリカルータ又はサーバレプリカに対して特有のオペレータ特有のルールに基づいて変更することができる。新たなレプリカ要約記録に対する任意の変更を指定することができ、これは、あるネットワークの除去と、指定のネットワークマスク、性能メトリック値、及び「経過しない値（do not expire value）」を含むことのできるタイムスタンプを伴うネットワーク番号の追加と、ネットワーク番号によるネットワークマスク及び性能メトリック値又はレプリカ要約記録エントリーの手動オーバーライドと、指定の性能メトリック値に到達しないレプリカ要約記録エントリの除去とを含む。このように、サーバのオペレータは、例えば、イントラネットのファイアウオールの外から見ることのできないイントラネットネットワーク番号を追加することによりサーバがその意図された聴取を果たすよう確保することができる。次いで、レプリカルータ又はサーバレプリカは、親レプリカルータのセットを選択する。親のレプリカルータのアドレスは、サービスのＤＮＳネーム（ｗｗｗ．ｐａｔｈｆａｉｎｄｅｒ．ｃｏｍのような）に結合されたレプリカルータをルックアップすることにより初期化される。或いは又、親のレプリカルータのセットは、より多くの当該ハイアラーキーに対して手動で構成することができる。
別の実施形態では、サーバレプリカは、同じ基本的情報を含むが、それらの内容を外国言語でもつか又は買手−場所特有の価格をもつといったローカル特徴で特殊化される。この実施形態では、サーバレプリカの広告は、例えば国のような地理的エリア又は例えば会社のような管理ドメインにあるネットワーク番号にサービスして、これらネットワーク番号が実際にサーバレプリカに近いかどうかに関わりなく、サーバレプリカへのクライエントルーティングを内容の特殊性に基づいたものとするために、上記のようにステップ３１５において変更される。特に、サーバレプリカがサービスしようとするネットワーク番号は、サーバレプリカの位置に近いとして普通に広告されたネットワーク番号に追加することができ（サーバレプリカがサービスしようとするネットワーク番号がサーバレプリカの位置に近いとして広告された番号と異なる場合）、或いは普通に広告された番号が削除される。例えば、フランス語の内容を有するサーバレプリカは、フランスにおけるネットワーク番号にサービスすることができる。この例では、多数のサーバがフランスにおけるネットワークにサービスするときには、性能メトリック値がクライエント要求に対して最適なものを選択するのに使用される。
親のレプリカルータのセットが決定されると、それらのアドレスは、後で使用するように安定に記録される。
ステップ３２５において、レプリカ要約記録、ローカルコンピュータのＩＰアドレス及び現在時間を含むレプリカ広告が構成される。ステップ３３０において、あるサービスの全てのレプリカ及びレプリカルータに知られているサービス特有のプライベートキーに基づいてレプリカ広告にデジタル符号が追加され、そして完成したレプリカ広告がＨＴＴＰ  ＰＯＳＴメッセージ３３５において親レプリカルータに送られる。
親のレプリカルータがレプリカ広告メッセージ３３５を受け取ると、ステップ３４０において、サービスの公開キーを使用してレプリカ広告を認証する。広告が認証されると、ステップ３４１において、広告のＩＰアドレスがメッセージ３３５のヘッダにおけるソールＩＰアドレスと同じであることを確保するためのチェックがなされる。ＩＰアドレスが一致した場合には、制御はステップ３４５に続き、さもなくば、制御は３４２へ続く。
ステップ３４２において、ＩＰアドレスが一致しない場合には、レプリカ広告がファイアウオール（図１）を通過したことを意味する。レプリカ広告におけるマルチエントリのレプリカ要約記録は、メッセージ３３５のヘッダにおけるソースＩＰアドレス、全ビット「１」のネットマスク、デフォールトネットワークメトリック値、及び現在時間を含む単一の追加エントリを含む。この付加的なエントリが要約に追加される理由は、追加ＩＰアドレスが同じファイアウオールの後方からクライエントによりなされた要求のＩＰアドレスと同一であり、従って、これらクライエント要求のＩＰアドレスに一致するからである。この新たなレプリカ要約記録は、レプリカルータにより形成されたものとして表示される。
ステップ３４５において、レプリカ広告に指定された同じＩＰアドレスからのルーティングデータベースにおける以前のレプリカ広告よりも最近のタイムスタンプを広告が有する場合には、親のレプリカルータにおいてローカルルーティングデータベースにレプリカ広告が追加される。新しい広告に取って代わられるレプリカ広告は削除される。
広告に含まれたＩＰアドレス、タイムスタンプ、及びサービスプライベートキーを用いるデジタル符号を含む確認メッセージがステップ３５５において構成される。確認メッセージ３６０は、ステップ３６５において送信側サーバレプリカ又はレプリカルータにより認証され、そしてステップ３７０においてタイマーがセットされて、構成により決定される間隔で登録情報がリフレッシュされる。タイマーが時間切れすると、サーバレプリカ又はレプリカルータの制御はステップ３０１へ復帰する。
別の実施形態では、レプリカルータが、それらのレプリカルーティングデータベースにおいてレプリカ広告で記述されたサーバを規則的に「ピング（ping）」する。応答しないサーバは、それらのレプリカ要約記録が、全て「１」で構成されたネットマスク（サーバがファイアウオールの後方にあることを示す）を有するエントリを含まない限り、広告を除去している。
図４ａ−４ｂは、ＨＴＴＰ再指向を用いてクライエントコンピュータをサーバレプリカへ転送するプロセスを示すフローチャートである。ステップ５０５において、ユーザは、複製されたサービスを参照するＵＲＬを含む既に受信したＨＴＴＰページからエントリを選択する。ステップ５１０において、ＧＥＴ又はＰＯＳＴのようなネットワーク要求５１５が形成され、そしてこの要求５１５がサービスのためのルートレプリカルータへ送信される。ルートレプリカルータのＩＰアドレスは、ステップ５０５で選択されたＵＲＬのアドレス又はＤＮＳネームから導出される。
ステップ５３５において、レプリカルータは、レプリカルーティングデータベースにおけるレプリカ要約記録エントリ全部をメッセージ５１５におけるソースＩＰアドレスに一致させる。各レプリカ要約記録エントリのアドレス一致は、そのエントリに含まれたネットマスクに従ってネットワーク識別子を構成する各アドレスの部分に基づいて行なわれる。一致が見られない場合には、制御がステップ５６２へ移行する。一致が見られた場合には、ステップ５４５において、最良のネットワーク性能メトリック値を含むＮ個の一致するレプリカ要約記録エントリが選択され、そして減少するネットワーク性能メトリック値により分類され、そして対応するレプリカ広告エントリに含まれたＩＰアドレスがターゲットＩＰアドレスの候補とされる。ターゲットＩＰアドレス候補リストにおける各エントリは、それがレプリカルータであるかサーバレプリカであるかを指示する記述子を含む（この情報は、エントリのレプリカ広告から決定される）。数字Ｎは、構成パラメータである。次いで、制御は、ステップ５９０へ移行する。
ステップ５６２において、レプリカルータは、トレースルートのようなユーティリティを用いてメッセージ５１５のヘッダにおけるクライエントＩＰアドレスに対してネットワークルート及びホップバイホップ遅延を決定する。同じクライエントアドレスに対するステップ５６２の以前の実行によりレプリカルータが既にルーティング及び性能情報を有している場合には、その情報が構成により設定された最大時間より古くなければ、その情報を使用する。
ステップ５６５において、クライエントへのネットワークルートにおける各ネットワークルータのＩＰアドレスは、クライエントに最も近いネットワークルータで始めて、レプリカルーティングデータベースのレプリカ要約記録においてルックアップされる。各レプリカ要約記録エントリにおけるネットマスクを用いて一致が行なわれる。レプリカルーティングデータベースに一致するエントリがない場合には、次いで、ステップ５７５において、予め指定されたサーバレプリカのデフォールトセットがターゲットＩＰアドレス候補のセットとされ、そして全てのデフォールトレプリカがサーバレプリカとして表示される。次いで、制御は、ステップ５９０へ移行される。
ルーティングデータベースにおけるレプリカ要約記録に一致するエントリがある場合には、ステップ５７０において、各一致するレプリカ要約記録エントリは、その広告されたネットワーク性能を、クライエントからそれが一致したネットワークルータへと推定されるネットワーク性能に追加している。この性能を推定する１つの方法は、レプリカルータからクライエントへ観察されるラウンドトリップ性能を取り出し、そしてレプリカルータから一致したネットワークルータへのラウンドトリップ性能に対して調整することである。最良の集合的ネットワーク性能メトリック値を含むＮ個の一致するレプリカ広告エントリが選択され、そしてこれらのレプリカ広告エントリに含まれたＩＰアドレスがターゲットＩＰアドレスの候補とされる。ターゲットＩＰアドレス候補リストにおける各エントリは、それがレプリカルータであるかサーバレプリカであるかを指示する記述子を含み、この情報は、エントリのレプリカ広告から決定される。Ｎ個のＩＰアドレスは、減少するネットワークメトリックの特性により順序付される。次いで、制御は、ステップ５９０へ移行する。
ステップ５９０において、メッセージ５１５で送られたＵＲＬより成り、そのネットワークアドレス部分が、ターゲットＩＰアドレス候補リストの最上位のＩＰアドレスに置き換えられた新たなＵＲＬが計算される。この新たなＵＲＬは、再指向メッセージ５９５においてクライエントへ返送される。
ステップ５９６において、クライエントは再指向を処理する。新たなＵＲＬがレプリカルータを指すときには、クライエントは、異なるレプリカルータを用いてステップ５１０において再び自動的にスタートする。このような再指向の１つのアプリケーションは、クライエントのイントラネットにおいてサーバレプリカに対して特殊化されたファイアウオールの後方のレプリカルータへクライエントを再指向することである。新たなＵＲＬがサーバレプリカを指す場合には、サーバレプリカは、そのレプリカからサービスできる全ての要求に対する相対的リンクと、マスターサーバによりサービスされる必要のある全ての要求に対するマスターサーバへの絶対的リンクとを含むページを返送する。相対的リンクは、クライエントが、ローカルサーバレプリカホスト名を要求から要求へと保持できると共に、セッション識別子又はデジタル受領証のような任意の情報も保持できるようにする。サーバレプリカにより形成される絶対的リンクは、セッション識別子を含む同様の情報をエンコードできると共に、参照サーバレプリカのＩＰアドレスを常にエンコードし、従って、マスターサーバがその特殊な処理を終了すると、マスターサーバが参照レプリカのＩＰアドレスを学習して、マスターサーバがクライエントを参照レプリカへ再指向できるようにする。
別の実施形態では、ネットワーク性能の推定がネットワークルーティングサービスにより直接サポートされ、そしてレプリカルーティングに対して使用することができる。例えば、ＩＤＰＲのようなある提案されたネットワークルーティング手順は、インターネットワークにおいて２つの特定のＩＰアドレス間のルートの予想ネットワーク性能を決定することのできるネットワークルーティングサーバをサポートする。このネットワークサービスは、ステップ５３５ないし５７０又は５７５において直接使用され、レプリカルーティングデータベースにおいてサーバレプリカのＩＰアドレスからクライエントのＩＰアドレスへの最良の予想性能をもつサーバレプリカを取り上げる。
別の実施形態では、各ルートレプリカルータは、サーバレプリカと同じコンピュータで動作する。この実施形態では、特定のクライアントのＩＰアドレス及びネットワーク位置に対してサーバレプリカが見つからないときに、レプリカルータは、クライエントを再指向するのではなく、そのローカルサーバレプリカから要求された情報を直接返送する。
図５ａ−５ｂのフローチャートは、レプリカルーティングをクライエントアプレットでいかに実行できるかを示している。ステップ６０５において、ユーザは、リンクの後方のターゲットへのアクセスを取り次ぐクライエントアプレットを記述するリンクをアクチベートする。ステップ６１０において、アプレットは、図６について説明したインターネットワーク性能発見を実行し、そしてステップ６１５において、アプレットは、レプリカルーティング要求６２０を構成して１つ以上のルートレプリカルータへ送信する。ステップ６１５で構成される要求は、ステップ６１０で計算されるネットワーク性能テーブルを含む。クライエントがステップ６１０を実行すると、このステップは、構成により設定された間隔で繰り返す必要がなくなる。
ステップ６３０において、レプリカルータは、メッセージ６２０のソースＩＰアドレスを使用し、そして図４ａからステップ５３５ないし５７０又は５７５を実行して、ターゲットＩＰアドレス候補のセットを計算する。ステップ５６２の場所において、ステップ６１０で計算されてメッセージ６２０で送信されるネットワーク性能テーブルは、性能の低くなる順序でクライエントから到達し得るネットワーク番号の順序付されたリストを形成するのに使用される。これらのネットワーク番号は、レプリカルーティングデータベースのレプリカ要約記録においてルックアップされ（ステップ５６５）、そして一致するレプリカ要約記録エントリは、両方のエントリから計算される（ステップ５７０）集合的性能数と、クライエントメッセージ６２０により与えられるネットワーク性能とを生じさせる。上位のＮ個のエントリは、ターゲットＩＰアドレス候補として使用される。ターゲットＩＰアドレス候補リストの各エントリは、それがレプリカルータであるかサーバレプリカであるかを示す記述子を含む（この情報は、エントリのレプリカ広告から決定される）。メッセージ６２０におけるネットワークマップのいずれのネットワークもレプリカ要約記録に一致しない場合には、サーバレプリカのデフォールトセットがターゲットアドレス候補として使用される（ステップ５７５）。
ターゲットＩＰアドレス候補リストがステップ６３０で計算されると、ステップ６４５において、ＩＰアドレスリストと、そのリストの各エレメントに対応する性能メトリック値と、リストの各エレメントがレプリカルータであるかサーバレプリカであるかの指示と、タイムスタンプと、サービス特有のデジタル符号とを含む応答メッセージ６５０が構成され、そしてステップ６５５において、デジタル符号が認証される。ステップ６６０において、返送されるＩＰアドレス候補がレプリカルータを含む場合には、制御がステップ６１５へ復帰し、そしてＩＰアドレス候補リストが拡張されて、性能メトリック値で分類される。さもなくば、ステップ６７０において、ステップ６０５の最初のユーザ動作に対応するサービス要求が、メッセージ６７５において、最良の性能メトリックを有する一定数のサーバレプリカへ送信される。ステップ６８０では、サーバレプリカがその要求を処理し、そしてクライエントへ返送されるページに、エンコードされた相対的リンクを挿入し、これは、その後の要求に対し、返送ページを与えたレプリカにクライエントを戻す。応答メッセージ６８５は、ステップ６９０においてアプレットにより受け取られ、そして最も早期に受け取られた応答が、ステップ６０５において最初のユーザ動作に基づいて処理するために選択される。
別の実施形態では、クライエントアプレットは、メッセージ６５０で与えられた全てのサーバ及びレプリカルータのリストを記憶し、そしてステップ６７０において、最良の集合的ネットワーク性能メトリック値をリストに有するサーバレプリカ又はレプリカルータへの単一のサービス要求を単に構成する。サーバ又はレプリカルータが応答しない場合には、アプレットは、セーブされたリストへ戻り、試みるべき別のサーバアドレス又はレプリカルータアドレスを取り上げる。
更に別の実施形態では、ステップ５１０又は６１５において、クライエントは、所定のブロードキャスト又はマルチキャストアドレスへ向けられるレプリカルーティング要求を構成する。この実施形態では、レプリカルータは、ステップ５１５又は６２０においてこのアドレスに対するブロードキャスト又はマルチキャスト要求を聴取する。多数のレプリカルータがブロードキャスト又はマルチキャスト要求に応答できるので、クライエントは、第１の応答を取り上げるか、又はクライエントのインターネットワーク位置から最良の推定性能をサーバレプリカに与える応答を取り上げることができる。
レプリカルータ及びサーバレプリカの全部が単一のサービス（例えば、情報の単一収集）を実行するシステムについて説明したが、当業者であれば、メッセージ及びデータベースエントリに適当な独特のサービス識別子を導入し、そしてこれらサービス識別子を含むように上記ロジックを変更することにより、レプリカルータが多数のサービスに対して機能できるようにする一般化を達成することができよう。
以上、レプリカルーティングのための新規で且つ改良された装置及び技術について説明した。当業者であれば、本発明の概念から逸脱せずに、上述した特定の実施形態についての多数の使い方及び変更が明らかであろう。従って、本発明は、ここに開示する装置及び技術に存在し又はそれが所有する各々の新規な特徴及びそれら特徴の新規な組合せを包含するものであり、請求の範囲に記載した本発明の精神及び範囲のみによって限定されるものとする。
【図１】
0004068158.tif 000002
【図２】
0004068158.tif 000003
【図３Ａ】
0004068158.tif 000004
【図３Ｂ】
0004068158.tif 000005
【図３Ｃ】
0004068158.tif 000006
【図４Ａ】
0004068158.tif 000007
【図４Ｂ】
0004068158.tif 000008
【図５Ａ】
0004068158.tif 000009
【図５Ｂ】
0004068158.tif 000010
【図６】
0004068158.tif 000011