(57)【要約】複数のプロセッサ間にフローを分散するための方法及びシステムを開示する。このフローは、そのフロー及び関連付けられた要求を識別し、且つそのフロー／要求を処理する少なくとも１つの内部アプリケーションを識別するフロントエンドプロセッサにより、ネットワークなどの外部ソースから受信可能である。このフロントエンドプロセッサは、識別したアプリケーションプロセッサに関連付けられたフロースケジューリングベクトルを利用する。更に、このフロースケジューリングベクトルは、アプリケーションプロセッサからの、ＣＰＵ利用率、メモリ利用率、パケット損失、及び、待ち行列の長さ又はバッファ占有率などの内因的データに基づくことができる。幾つかの実施形態では、これらアプリケーションプロセッサは、１つのグループに属するものと考えることができ、１つのグループ内のアプリケーションプロセッサは同一に構成できる。フロースケジュールベクトルは、異なるアプリケーションプロセッサグループに関して計算できる。幾つかの実施形態では、制御プロセッサが、内因的アプリケーションプロセッサデータを収集し、フロースケジューリングベクトルを計算し、且つ、そのフロースケジューリングベクトルをフロントエンドプロセッサに転送できる。【特許請求の範囲】
【請求項１】
プロセッサ間にデータフローをスケジューリングするための方法であって、
処理要求を受信する段階と、
前記要求を処理するための、少なくとも１つのプロセッサを含んだプロセッサグループを識別する段階と、
前記識別したプロセッサグループに関連付けられたフロースケジュールを調べる段階と、
前記要求を、前記識別したプロセッサグループ内の少なくとも１つのプロセッサに、前記関連付けられたフロースケジュールに基づいて転送する段階とを包含した、プロセッサ間にデータフローをスケジューリングするための方法。
【請求項２】
処理要求を受信する前記段階が、ネットワークからデータフローを受信する段階を含んだ、請求項１に記載の方法。
【請求項３】
フロースケジュールを調べる前記段階が、フロースケジュールベクトルを調べる段階を包含した、請求項１に記載の方法。
【請求項４】
前記要求を転送する前記段階が、前記調べたフロースケジュール内のプロセッサ間を順次移動することに基づいて、前記要求を転送する段階を含んだ、請求項１に記載の方法。
【請求項５】
プロセッサ間を順次移動する前記段階が、前記調べたフロースケジュールの終点に達した時点で、前記調べたフロースケジュールの開始点に戻る段階を含んだ、請求項４に記載の方法。
【請求項６】
前記識別したプロセッサグループからの内因的データに基づいてフロースケジュールを計算する段階を更に包含した、請求項１に記載の方法。
【請求項７】
内因的データに基づいてフロースケジュールを計算する前記段階が、前記識別したプロセッサグループ内の前記プロセッサの、ＣＰＵ利用率、メモリ利用率、パケット損失、及び、待ち行列の長さ又はバッファ占有率のうち少なくとも１つに基づいて、フロースケジュールを計算する段階を含んだ、請求項６に記載の方法。
【請求項８】
フロースケジュールを計算する前記段階が、前記識別したプロセッサグループ内のプロセッサから前記内因的データを受信する段階を更に包含した、請求項６に記載の方法。
【請求項９】
プロセッサからデータを受信する前記段階が、所定の間隔でデータを受信する段階を更に含んだ、請求項８に記載の方法。
【請求項１０】
フロースケジュールを計算する前記段階が、前記内因的データにフィルタにかける段階を更に包含した、請求項６に記載の方法。
【請求項１１】
少なくとも１つのプロセッサを具備した複数のプロセッサグループを提供する段階を更に包含し、更に、１つのプロセッサグループ内のプロセッサが、少なくとも１つの類似したアプリケーションを含んだ、請求項１に記載の方法。
【請求項１２】
少なくとも１つのプロセッサを具備した複数のプロセッサグループを提供する段階を更に包含し、更に、１つのプロセッサグループ内のプロセッサが同一に構成されている、請求項１に記載の方法。
【請求項１３】
前記プロセッサグループのフロースケジュールを計算する段階を更に包含した、請求項１２に記載の方法。
【請求項１４】
複数のプロセッサグループを提供する段階を更に包含し、異なるプロセッサグループ内のプロセッサが少なくとも１つの異なるアプリケーションを含んだ、請求項１に記載の方法。
【請求項１５】
フロースケジュールを調べる前記段階が、初期フロースケジュールを提供する段階を更に含んだ、請求項１に記載の方法。
【請求項１６】
プロセッサグループを識別する前記段階が、前記要求に関連付けられたアプリケーションを識別する段階を含んだ、請求項１に記載の方法。
【請求項１７】
プロセッサグループを識別する前記段階が、ハッシュテーブルを調べる段階を含んだ、請求項１に記載の方法。
【請求項１８】
ネットワーク上のデータフローを処理する装置であって、
少なくとも１つのプロセッサを備えた少なくとも１つのフロープロセッサモジュールと、
少なくとも１つのネットワークプロセッサモジュールであって、少なくとも１つのプロセッサと、前記ネットワークから前記データフローを受信する少なくとも１つのインターフェースと、前記少なくとも１つのプロセッサに、前記データフローをそのデータフローを処理可能な少なくとも１つのフロープロセッサモジュールに転送させるための命令とを備えた少なくとも１つのネットワークプロセッサモジュールと、
前記少なくとも１つのフロープロセッサと通信した少なくとも１つの制御プロセッサモジュールであって、少なくとも１つのプロセッサと、前記少なくとも１つのプロセッサに、前記少なくとも１つのフロープロセッサモジュールから内因的データを受信させるための命令とを備えた少なくとも１つの制御プロセッサモジュールと、を包含したネットワーク上のデータフローを処理する装置。
【請求項１９】
前記少なくとも１つのフロープロセッサモジュールが、少なくとも１つのアプリケーションを格納する少なくとも１つのメモリを含んだ、請求項１８に記載の装置。
【請求項２０】
前記少なくとも１つの制御プロセッサモジュールが、少なくとも１つのネットワークプロセッサモジュールと通信する、請求項１８に記載の装置。
【請求項２１】
前記少なくとも１つの制御プロセッサモジュールが、前記少なくとも１つのプロセッサに、前記少なくとも１つのアプリケーションプロセッサグループのフロースケジュールを計算させるための命令を含んだ、請求項１８に記載の装置。
【請求項２２】
前記内因的データが、ＣＰＵ利用率、メモリ利用率、パケット損失、及び、待ち行列の長さ又はバッファ占有率のうち少なくとも１つを含む、請求項１８に記載の装置。
【請求項２３】
前記制御プロセッサモジュールが、少なくとも１つのフィルタリングモジュールを更に含んだ、請求項１８に記載の装置。
【請求項２４】
前記ネットワークプロセッサモジュールが、フローを前記フロープロセッサモジュールに送るための少なくとも１つのフロースケジュールを更に含んだ、請求項１８に記載の装置。
【請求項２５】
前記ネットワークプロセッサモジュールが、少なくとも１つの初期フロースケジュールを更に含んだ、請求項１８に記載の装置。
【請求項２６】
前記ネットワークプロセッサモジュールが、データ要求をフロースケジュールに関連付けるハッシュテーブルを更に含んだ、請求項１８に記載の装置。
【請求項２７】
前記フロースケジュールが、フロープロセッサモジュールのリストを更に含んだ、請求項２４に記載の装置。
【請求項２８】
ネットワーク上のデータフローをスケジューリングするための装置であって、
前記ネットワークからデータフローを受信するフロントエンドプロセッサと、
前記フローを処理する少なくとも１つのアプリケーションプロセッサグループと、
前記少なくとも１つのアプリケーションプロセッサグループに関連付けられた少なくとも１つのフロースケジュールと、
前記フロントエンドプロセッサに、前記フローを処理する少なくとも１つのアプリケーションプロセッサグループを識別させ、前記識別したプロセッサグループ内の少なくとも１つのプロセッサを選択させ、且つ、前記フローを前記選択したプロセッサに転送させるための命令とを包含した、ネットワーク上のデータフローをスケジューリングするための装置。
【請求項２９】
前記少なくとも１つのフロープロセッサモジュールが、少なくとも１つのフローベクトルを含んだ、請求項２８に記載の装置。
【請求項３０】
前記少なくとも１つのアプリケーションプロセッサグループからデータを受信する少なくとも１つの制御プロセッサを更に包含した、請求項２８に記載の装置。
【請求項３１】
前記制御プロセッサが、少なくとも１つのフィルタを更に含んだ、請求項３０に記載の装置。
【請求項３２】
前記少なくとも１つのアプリケーションプロセッサグループが、少なくとも１つのプロセッサを含んだ、請求項２８に記載の装置。
【請求項３３】
前記少なくとも１つのプロセッサが、アプリケーションを格納する少なくとも１つのメモリを含んだ、請求項３２に記載の装置。
【請求項３４】
前記フロントエンドプロセッサが、データフローを少なくとも１つのアプリケーションプロセッサグループに関連付けるためのハッシュテーブルを含んだ、請求項２８に記載の装置。
【請求項３５】
少なくとも２つのプロセッサ間のデータフローをスケジューリングするための方法であって、前記少なくとも２つのプロセッサからの履歴性能データに基づいて、フロースケジュールを計算する段階を包含した、データフローをスケジューリングするための方法。
【請求項３６】
履歴性能データに基づいてフロースケジュールを計算する前記段階が、前記識別したプロセッサグループ内の前記プロセッサの、ＣＰＵ利用率、メモリ利用率、パケット損失、及び、待ち行列の長さ又はバッファ占有率のうち少なくとも１つに関する履歴データを提供する段階を含んだ、請求項３５に記載の方法。
【請求項３７】
履歴性能データに基づいてフロースケジュールを計算する前記段階が、前記識別したプロセッサグループ内の前記プロセッサの、ＣＰＵ利用率、メモリ利用率、パケット損失、及び、待ち行列の長さ又はバッファ占有率のうち少なくとも１つに関する既存のデータを提供する段階を含んだ、請求項３５に記載の方法。
【請求項３８】
ネットワーク装置であって、
少なくとも１つのプロセッサと、前記少なくとも１つのプロセッサが実行するアプリケーションを格納するための少なくとも１つのメモリとを備えた少なくとも１つのフロープロセッサモジュールと、
少なくとも１つのネットワークプロセッサモジュールであって、少なくとも１つのプロセッサと、前記ネットワークからデータを受信し且つ前記ネットワークへデータを送信する少なくとも１つのインターフェースと、前記少なくとも１つのプロセッサに、前記フロープロセッサモジュールのメモリ内の前記アプリケーションにより処理されるデータ要求を認識させ、且つ、前記データ要求を、この要求に従って前記データを処理可能なフロープロセッサモジュールに転送させるための命令とを備えた少なくとも１つのネットワークプロセッサモジュールと、
前記フロープロセッサモジュール及び前記ネットワークプロセッサモジュールと通信する少なくとも１つの制御プロセッサモジュールであって、少なくとも１つのプロセッサと、この少なくとも１つのプロセッサに、前記フロープロセッサモジュールのメモリ内の前記アプリケーションを管理させるための命令とを包含した、ネットワーク装置。
【請求項３９】
前記フロープロセッサモジュールのメモリ内の前記アプリケーションを管理させるための前記制御プロセッサモジュール命令が、前記制御プロセッサモジュールに、アプリケーションの前記フロープロセッサモジュールメモリへのダウンロード及び前記フロープロセッサモジュールメモリからのアプリケーション削除のうち少なくとも一方を実行させるための命令を更に含んだ、請求項３８に記載のネットワーク装置。
【請求項４０】
前記制御プロセッサモジュールと通信し且つ少なくとも１つのプロセッサを備えた管理サーバモジュールを更に包含した、請求項３８に記載のネットワーク装置。
【請求項４１】
前記管理サーバモジュールが、前記少なくとも１つの管理サーバプロセッサに指示して、前記制御プロセッサモジュールに、前記管理サーバモジュールからアプリケーションを前記フロープロセッサモジュールのメモリへのダウンロードすること、及び前記フロープロセッサモジュールのメモリからアプリケーションを削除することのうち少なくとも一方を実行させるための命令を更に含んだ、請求項４０に記載のネットワーク装置。
【請求項４２】
前記制御プロセッサモジュールに結合したローカルメモリ素子を更に包含した、請求項３８に記載のネットワーク装置。
【請求項４３】
前記制御プロセッサモジュールに結合したリモートメモリ素子を更に包含した、請求項３８に記載のネットワーク装置。
【請求項４４】
前記制御プロセッサモジュールが、前記少なくとも１つの制御プロセッサモジュールプロセッサに、データを管理サーバモジュールと前記フロープロセッサモジュールとの間で転送させるための命令を更に含んだ、請求項３８に記載のネットワーク装置。
【請求項４５】
前記少なくとも１つのフロープロセッサモジュールに結合した少なくとも１つの記憶装置を更に包含した、請求項３８に記載のネットワーク装置。
【請求項４６】
前記少なくとも１つのネットワークプロセッサモジュールに結合した少なくとも１つの記憶装置を更に包含した、請求項３８に記載のネットワーク装置。
【請求項４７】
ネットワーク装置で、
少なくとも１つのフロープロセッサモジュールであって、
少なくとも１つのフロープロセッサと、
前記少なくとも１つのプロセッサにより実行されるアプリケーションを格納するための少なくとも１つのメモリとを備えた少なくとも１つのフロープロセッサモジュールと、
第１ネットワークプロセッサモジュールであって、少なくとも１つのプロセッサと、前記ネットワークからデータを受信し且つ前記ネットワークへデータを送信する少なくとも１つのインターフェースと、前記少なくとも１つのプロセッサに、前記フロープロセッサモジュールのメモリ内の前記アプリケーションにより処理されるデータ要求を認識させ、且つ、前記データ要求を、この要求に従って前記データを処理可能なフロープロセッサモジュールに転送させるための命令とを備えた第１ネットワークプロセッサモジュールと、
前記第１ネットワークプロセッサモジュール及び前記フロープロセッサモジュールと通信する第１制御プロセッサモジュールで、
少なくとも１つのフロープロセッサと、
前記少なくとも１つのプロセッサに、前記フロープロセッサモジュールのメモリ内の前記アプリケーションを管理させるための命令とを備えた第１制御プロセッサモジュールと、を包含した、ネットワーク装置。
【請求項４８】
前記制御プロセッサモジュールと通信する管理サーバモジュールであって、前記フロープロセッサモジュール上の前記アプリケーションを管理するための命令を含んだ少なくとも１つのプロセッサを備えた管理サーバモジュールを更に包含した、請求項４７に記載のネットワーク装置。
【請求項４９】
前記第１ネットワークプロセッサモジュールと、前記フロープロセッサモジュールと、前記第１制御プロセッサモジュールとに結合した第１制御プレーンを更に包含した、請求項４７に記載のネットワーク装置。
【請求項５０】
前記第１ネットワークプロセッサモジュールと、前記フロープロセッサモジュールと、前記第１制御プロセッサモジュールとに結合した別個の第２制御プレーンを更に包含した、請求項４７に記載のネットワーク装置。
【請求項５１】
前記第１制御プレーンと前記第２制御プレーンとに結合した別個の第２ネットワークプロセッサモジュールであって、少なくとも１つのプロセッサと、前記ネットワークからデータを受信し且つ前記ネットワークへデータを送信する少なくとも１つのインターフェースと、前記プロセッサに、前記フロープロセッサモジュールのメモリ内の前記アプリケーションにより処理されるデータ要求を認識させ、且つ、前記データ要求を、この要求に従って前記データを処理可能なフロープロセッサモジュールに転送させるための命令とを備えた少なくとも１つのネットワークプロセッサモジュールと、を備えた、第２ネットワークプロセッサモジュールと、
前記第１制御プレーンと、前記別個の第２制御プレーンと、前記管理サーバモジュールとに結合した別個の第２制御プロセッサモジュールであって、少なくとも１つのプロセッサを備えた第２制御プロセッサモジュールとを更に包含した、請求項５０に記載のネットワーク装置。
【請求項５２】
前記第１制御プロセッサモジュールに結合したローカルメモリ素子を更に包含した、請求項４７に記載のネットワーク装置。
【請求項５３】
前記第１制御プロセッサモジュールと前記第２制御プロセッサモジュールとに結合したローカルメモリ素子を更に包含した、請求項５１に記載のネットワーク装置。
【請求項５４】
前記第１制御プロセッサモジュールに結合したリモートメモリ素子を更に包含した、請求項４７に記載のネットワーク装置。
【請求項５５】
前記リモートメモリ素子を前記第１制御プロセッサモジュールに結合する高速データリンクを更に包含した、請求項５４に記載のネットワーク装置。
【請求項５６】
前記第１制御プロセッサモジュールと前記第２制御プロセッサモジュールとに結合したリモートメモリ素子を更に包含した、請求項４７に記載のネットワーク装置。
【請求項５７】
前記リモートメモリ素子を前記第１制御プロセッサモジュールと前記第２制御プロセッサモジュールとに結合する高速データリンクを更に包含した、請求項５６に記載のネットワーク装置。
【請求項５８】
前記管理サーバモジュールを前記第１制御プロセッサモジュールに結合する高速データリンクを更に包含した、請求項４８に記載のネットワーク装置。
【請求項５９】
前記ネットワーク装置が、
前記制御プロセッサモジュールと通信する管理サーバモジュールであって、前記フロープロセッサモジュール上の前記アプリケーションを管理するための命令を含んだプロセッサを備えた管理サーバモジュールと、
前記管理サーバモジュールを前記第１制御プロセッサモジュールと前記第２制御プロセッサモジュールとに結合する高速データリンクとを更に包含した、請求項５１に記載のネットワーク装置。
【請求項６０】
前記管理サーバモジュールが、プロセッサと、このプロセッサに、前記第１制御プロセッサモジュールへデータを送信させ且つ前記第１制御プロセッサモジュールからデータを受信させるための命令とを更に包含した、請求項４８に記載のネットワーク装置。
【請求項６１】
前記管理サーバモジュールがパーソナルコンピュータである、請求項４８に記載のネットワーク装置。
【請求項６２】
前記管理サーバモジュールが、前記第１ネットワークプロセッサモジュールと、前記フロープロセッサモジュールと、前記第１制御プロセッサモジュールとから健全度及び維持データを受信するための命令を更に含んだ、請求項４８に記載のネットワーク装置。
【請求項６３】
ネットワーク内でアプリケーションを分散するための方法であって、
データを前記ネットワークからネットワークデバイスにおいて受信する段階と、
前記データに適用する少なくとも１つのアプリケーションを識別する段階と、前記識別したアプリケーションに従って前記データを処理する段階と、
前記処理済みデータを前記ネットワークデバイスから転送する段階とを包含した、ネットワーク内でアプリケーションを分散するための方法。
【請求項６４】
方針を前記データに適用する段階を更に包含した、請求項６３に記載の方法。
【請求項６５】
少なくとも１つのアプリケーションを識別する前記段階が、ハッシュテーブルを用いて前記データを少なくとも１つのアプリケーションに関連付ける段階を更に包含した、請求項６３に記載の方法。
【請求項６６】
少なくとも１つのアプリケーションを識別する前記段階が、加入者プロファイルを前記データに関連付ける段階と、前記加入者プロファイルに基づいて少なくとも１つのアプリケーションを選択する段階とを更に包含した、請求項６３に記載の方法。
【請求項６７】
前記識別したアプリケーションに従って前記データを処理する前記段階が、前記識別したアプリケーションを実行するための少なくとも１つのプロセッサに前記データを送る段階を更に包含した、請求項６３に記載の方法。
【請求項６８】
前記プロセッサを前記識別したアプリケーションのために構成する段階を更に含んだ、請求項６７に記載の方法。
【請求項６９】
少なくとも１つのプロセッサを、前記アプリケーションに基づいて選択する段階を更に含んだ、請求項６３に記載の方法。
【請求項７０】
少なくとも１つのプロセッサを、プロセッサ負荷に基づいて選択する段階を更に含んだ、請求項６３に記載の方法。
【請求項７１】
少なくとも１つのプロセッサを、方針を前記データに適用することに基づいて選択する段階を更に含んだ、請求項６３に記載の方法。
【請求項７２】
前記データに適用する少なくとも１つのアプリケーションを識別する前記段階が、データソースを識別する段階と、前記データソースに基づいてアプリケーションプロファイルを取り出す段階とを更に包含した、請求項６３に記載の方法。
【請求項７３】
前記処理済みデータを前記ネットワークデバイスから転送する前記段階が、前記処理済みデータを前記ネットワークに転送する段階を更に含んだ、請求項６３に記載の方法。
【請求項７４】
前記処理済みデータを前記ネットワークデバイスから転送する前記段階が、前記処理済みデータを記憶装置に転送する段階を更に含んだ、請求項６３に記載の方法。
【請求項７５】
前記処理済みデータを転送する宛先を特定する段階を更に含んだ、請求項６３に記載の方法。
【請求項７６】
アプリケーションを前記ネットワークデバイスにおけるプロセッサに提供する段階を更に包含した、請求項６３に記載の方法。
【請求項７７】
アプリケーションを前記ネットワークデバイスにおけるプロセッサに提供する前記段階が、アプリケーションを、リモートプロセッサ及び記憶装置のうち少なくとも一方からプロセッサにダウンロードする段階を更に含んだ、請求項７６に記載の方法。
【請求項７８】
ネットワーク装置上でアプリケーションを管理するための方法であって、
少なくとも１つのプロセッサと、アプリケーションを格納するための少なくとも１つのメモリとを備えた少なくとも１つのフロープロセッサモジュールを提供する段階と、
前記フロープロセッサモジュールに接続し且つ、少なくとも１つのプロセッサと命令とを備えた少なくとも１つのネットワークプロセッサモジュールを提供する段階であって、前記命令が、
前記アプリケーションにより前記フロープロセッサモジュール上で処理されるべきデータ要求を認識し、且つ、
データ要求を、この要求を処理可能なフロープロセッサモジュールに転送するための命令である、提供する段階と、
制御プロセッサモジュールを前記フロープロセッサモジュールと前記ネットワークプロセッサに接続する段階であって、前記制御プロセッサモジュールが、前記フロープロセッサモジュール及び前記ネットワークプロセッサモジュールと通信し且つ、少なくとも１つのプロセッサと、このプロセッサに、前記フロープロセッサモジュールからのアプリケーション削除及びアプリケーションの前記フロープロセッサモジュールへの格納のうち少なくとも一方を実行させるための命令とを含んだ、接続する段階と、を包含した、ネットワーク装置上でアプリケーションを管理するための方法。
【請求項７９】
前記制御プロセッサモジュールと通信する管理サーバモジュールであって、プロセッサと、前記フロープロセッサモジュール上で前記アプリケーションを制御するための命令とを含んだ管理サーバモジュールを提供する段階を更に包含した、請求項７８に記載の方法。
【請求項８０】
少なくとも１つのネットワークプロセッサモジュールを提供する前記段階が、
前記ネットワークからデータを受信し、前記ネットワークからのデータを処理し、前記フロープロセッサモジュールから処理済みデータを受信し、更に、前記処理済みデータをネットワーク宛先に転送するためのプロセッサ命令を提供する段階を、更に含んだ、請求項７８に記載の方法。
【請求項８１】
少なくとも１つのネットワークプロセッサモジュールを提供する前記段階が、受信したデータをネットワーク宛先に転送するためのプロセッサ命令を提供する段階を更に含んだ、請求項７８に記載の方法。
【請求項８２】
制御プロセッサモジュールを接続する前記段階が、前記プロセッサに、前記ネットワークプロセッサモジュールからのデータ要求を処理させるための命令を提供する段階を更に含んだ、請求項７８に記載の方法。
【発明の詳細な説明】
【０００１】
発明の背景
（１）発明の分野
本開示の方法及びシステムは、一般に、データフロー処理の能率向上に関し、より詳細には、複数プロセッサのための改良型フロースケジューリング方法及びシステムに関する。
【０００２】
（２）関連技術分野の説明
インターネット上でより今まで以上のものを提供する会社、事業、及びその他のプロバイダの数が増加している。しかし、ネットワークサービスを提供する基本的構造は、データ転送依存性による制約を受けている。残念ながら、サービスは、そのサービスに関して中央位置にあると考えられる単一のネットワーク位置から提供されることが多い。この位置は、そのサービス要求を受信且つ処理可能なサーバに対応した行先インターネットプロトコル（ＩＰ）アドレスにより識別される。従来のシステムは、行先ＩＰアドレスにおいて多数のサーバを提供することにより、所定のサービスへの要求の軽減を試みており、これらサーバはコンテンツ認識フロースイッチによって管理されている。このコンテンツ認識フロースイッチは、アプリケーション又はサービスへの要求をインターセプトして、処理負荷が比較的低いサーバと共にフローを開始する。従って、これら従来技術システムは、クライアント要求を最適サーバに通信する方法を含み、この方法では、最適サーバの識別には、サーバの現在の負荷及び最近の活動、クライアントとサーバとの間のネットワーク混雑度、及びクライアント・サーバプロキシ情報に関する情報を含んだサーバメトリクスを用いる。システムによっては、クライアントとサーバとの距離は、地理的に且つ／又はネットワークホップなどで測定するので大きくなることがあり、又、こうした情報が、最適サーバを選択する上で重要な要因となりうる。幾つかの方法及びシステムでは、「ピンギング（原語：ｐｉｎｇｉｎｇ）」と呼ばれる処理を含むことがあるが、この技法の結果は不正確になることがしばしばある。
【０００３】
最適サーバの特定に不可欠なプロセッサ負荷及び他の要因に関する正確且つ信頼性が高い情報を提供するシステム及び方法は、現時点では存在しない。
【０００４】
複数プロセッサにフローを分散するための効率的なアルゴリズムを決定するのに、多数のプロセッサから外因的データでなく、内因的データを利用するシステム及び方法が必要とされている。
【０００５】
発明の概要
ここに開示した方法及びシステムは、ネットワークサービスとアプリケーションをインターネットなどのネットワーク全体に分散することで、ネットワークサービスとアプリケーションの割り当てを容易にするスケーラブルアーキテクチャ及び方法を提供する。一実施形態では、これら方法及びシステムは、加入者プロファイルに従ってアプリケーション及びサービスを実行可能なアプリケーションプロセッサを含んだスイッチアーキテクチャを用いて実現できる。一実施形態では、これらアプリケーションプロセッサはＬＩＮＵＸオペレーティングシステムを用いて、アプリケーションをダウンロード、修正、及び管理するためのオープンアーキテクチャを提供する。上記のスイッチアーキテクチャは、ネットワーク及びアプリケーションプロセッサとインターフェースをとるフロントエンドプロセッサも含み、加入者からのデータフローを識別し、且つ、加入者プロファイルに従ってアプリケーション処理を行うためにネットワークからアプリケーションプロセッサへのデータフローを分散する。一実施形態では、フロントエンドプロセッサは非加入者からのデータフローを識別し、こうしたデータフローを標準的ネットワークスイッチに従って適切な宛先へ繋ぐ。一実施形態では、フロントエンドプロセッサは、加入者フローを、例えば方針を含む既存のフロー処理要件に基づいて、複数のアプリケーションプロセッサ間に分散するフロースケジュールを含む。
【０００６】
一実施形態では、アプリケーションプロセッサ及びフロントエンドプロセッサは、加入者プロファイル情報及びアプリケーションデータを含んだローカル及びリモート記憶装置に、更にアクセス可能な制御プロセッサに接続でき、これら加入者プロファイル情報及びアプリケーションデータは、フロントエンドプロセッサ又はアプリケーションプロセッサに転送できる。制御プロセッサは、更に、アプリケーションプロセッサ及びフロントエンドプロセッサから健全度（原語：ｈｅａｌｈ）及び維持情報を収集し、且つ、管理プロセッサとフロント及びアプリケーションプロセッサとの間に健全度、維持、及び／又は制御情報を分散するための通信路を提供する。
【０００７】
一実施形態では、本開示の方法及びシステムは、サーバネットワークのフロントエンドに配置可能なスイッチ機能を含むことができ、一実施形態では、ネットワーク装置は、複数のネットワークを接続するルータ間に位置できる。
【０００８】
一実施形態では、フロントエンドプロセッサは、ネットワークプロセッサモジュール（ＮＰＭ）でよく、少なくとも１つのアプリケーションプロセッサは、フロープロセッサモジュール（ＦＰＭ）でよい。制御プロセッサは、制御プロセッサモジュール（ＣＰＭ）を含むことができる。この実施形態では、ＮＰＭは、インターネットのような通信システムネットワークとインターフェースをとり、フローを受信且つ分類し、更に、ＦＰＭ利用度に基づくこともできるフロースケジュールに従って、フローをＦＰＭに分散する。少なくとも１つのＦＰＭは、ＦＰＭ上に位置した１つ又は複数のプロセッサを用いて個別のフローからのデータを処理するアプリケーション及びネットワークサービスのホストとしても機能できる。ＣＰＭは、ＮＭＰ及びＦＰＭを含むスイッチの異なる構成要素を連係し、スイッチへの管理アクセスを実現し、且つ、ローカル記憶装置へのアクセスをサポートする。ローカル記憶装置は、アプリケーションがＦＭＰ上で実行する際に利用可能な画像、構成ファイル、及びデータベースを格納できる。
【０００９】
一実施形態では、これら方法及びシステムは、ＣＰＭによる、アプリケーション及びデータベースを格納するリモート記憶装置へのアクセスも可能とする。少なくとも１つの管理サーバ（ＭＳ）モジュールへのインターフェースが、ＣＰＭを介してスイッチモジュール（例えば、ＮＰＭ、ＦＰＭ、ＣＰＭ）からの健全度及び状態情報を受信且つ収集できる。一実施形態では、ＭＳモジュールは、別のホストマシン上に設けられていてもよい。別の実施形態では、この管理サーバモジュールの機能は、ＣＰＭ上に位置したプロセッサに組み込まれていてもよい。
【００１０】
一実施形態では、内部交換イーサネット（商標名、この明細書において同じ）制御バスが、スイッチの内部構成要素を結合し、管理及び制御作業を容易にする。内部交換イーサネット制御バスは、内部パケット転送に利用可能な交換データ経路とは別個であってもよい。
【００１１】
一実施形態では、ＮＰＭ、ＣＰＭ、ＦＰＭ、及びＮＰＭと、ＣＰＭと、ＦＰＭとの間の相互接続は、故障許容作業を向上させ、従ってシステムの信頼性を向上するように、選択的な冗長性を付加して実現可能である。例えば、２つのＮＰＭ、１０このＦＰＭ、及び２つのＣＰＭが実装可能な実施形態では、これら２つのＮＰＭは、冗長又は相補的構成で動作可能である。更に、これら２つのＣＰＭは、第１ＣＰＭを作動状態とし、第２ＣＰＭをバックアップとした冗長構成で運用できる。ＮＰＭ及びＣＰＭは、特定のＮＰＭ又はＣＰＭの誤動作などを特定することができる管理サーバモジュールを介して制御可能である。この例では、ＦＰＭ障害が起こった場合に、８つのＦＰＭが任意時間に機能することを保証する助けとなるように、２つまでのＦＰＭを予備ＦＰＭとして識別可能である。しかし、通常の技能を備えた当業者であれば、これは例示的なものに過ぎず、予備又は動作ＦＰＭの数は、システム要件などによって変化することは理解するはずである。例示したＦＰＭは、１つ又は複数のアプリケーションのホストとして機能するよう構成可能であり、又、幾つかのアプリケーションは複数のＦＰＭ上に常駐させて、より多く要求されるアプリケーションに関する効率的なサービスを提供できるようにしてもよい。この構成のスイッチに入るデータフローは、発信者から受信し、ＮＰＭが処理し且つ発信者に返すか、ＮＰＭが処理して宛先に転送するか、ＮＰＭがフロープロセッサに転送し且つＮＰＭ経由で発信者に返すか、ＮＰＭがフロープロセッサに転送し且つＮＰＭが宛先に転送できる。２つ又は３つ以上のＮＰＭが相補的に動作するよう構成されている実施形態では、第１ＮＰＭが受信したフローは、処理及び第２ＮＰＭに転送して、更に、第２ＮＰＭが宛先に転送してもよい。別の実施形態では、第１ＮＰＭは、フローを受信すると直ちにそのフローを第２ＮＰＭに転送し、第２ＮＰＭが、それを処理及び宛先へ転送できる。相補的ＮＰＭを用いた実施形態では、ＦＰＭによる処理も上述のデータ経路内に含まれうる。
【００１２】
一実施形態では、周知のリナックスオペレーティングシステムをＦＰＭ及びＣＰＭプロセッサ上にインストールして、例えば、ＦＰＭに常駐するアプリケーションのインストール及び修正が可能なオープンアーキテクチャを提供できる。一実施形態では、ＮＰＭは、周知のＶｘＷｏｒｋｓオペレーティングシステムをＭＩＰＳプロセッサ上で実行でき、又、小型の実行可能命令をネットワークプロセッサ上で実行できる。
【００１３】
本明細書の方法及びシステムは、アプリケーションプロセッサの利用を最適化するフロースケジューリング体系を提供する。一実施形態では、これらアプリケーションプロセッサは、１つのグループに属するものと考えることができ、任意グループ内のアプリケーションプロセッサは同一に構成される。フロースケジューリングは、異なるグループに従って実行及び適合可能である。
【００１４】
一実施形態では、任意グループのアプリケーションプロセッサは、指定した間隔でリソース情報を制御プロセッサに報告できる。このリソース情報は、アプリケーションプロセッサからの、ＣＰＵ利用率、メモリ利用率、パケット損失、及び、待ち行列の長さ又はバッファ占有率などの内因的情報を含みうる。リソース情報は、診断情報又は他のアプリケーションプロセッサ固有情報を用いて提供できる。
【００１５】
制御モジュールは、任意グループのアプリケーションプロセッサに関するリソース情報を処理し、且つ、リソース情報に基づいてフロースケジュールベクトルを計算でき、実施形態によっては、現在のリソース情報を履歴リソース情報と組み合わせて、フロースケジュールベクトルを計算できる。フロースケジュールベクトルは、フロントエンドプロセッサに提供でき、その後、フロントエンドプロセッサが、このベクトルを使ってフローを様々なアプリケーションプロセッサに送ることができる。例えば、フロントエンドプロセッサはフロー及びそれに関連付けられた要求を識別し、そのフロー／要求を処理するように構成されたアプリケーションプロセッサのグループを識別し、その後、対応するフロースケジューリングベクトルを調べて、処理のためにフロー／要求を送信するアプリケーションプロセッサを決定できる。
【００１６】
他の目的及び利点は、明細書及び図面から明らかになるはずである。
【００１７】
説明
全体的な理解を可能とするため、幾つかの例示的な実施形態を次に説明するが、通常の技能を備えた当業者であれば、ここに記載されたシステム及び方法を変更及び修正して、他の適切な応用例となるシステム及び方法を提供したり、それ以外の追加及び修正が、本発明の範囲から離れることなく可能であることは理解するはずである。
【００１８】
本明細書における開示の目的では、アプリケーションとは、ハードウェア、ソフトウェア、又はその組合せで実現可能なデータ処理要素として理解可能であり、このデータ処理要素は、ゼロ又は任意の正の整数であり得る数量状態が可能である。
【００１９】
本明細書に記載された方法及びシステムの目的では、プロセッサは、中央処理装置（ＣＰＵ）に限定されないがそれを含んだ、命令を実行可能な任意の素子又は構成要素であると理解できる。
【００２０】
開示したシステム及び方法は、インターネットのようなネットワーク内の全体にわたって接続可能なネットワーク装置であって、アプリケーション及びサービスを加入者ユーザからのデータフローに、ネットワーク全体にわたって適用可能とするネットワーク装置に関する。この装置は、通常の技能を備えた当業者が通常はスイッチに属すると考える機能を実行可能であり、更に、この装置は、通常の技能を備えた当業者が理解するところのスイッチとしてネットワーク内の全体にわたって接続可能だが、この装置は、このスイッチ装置で受信するデータフローを、通常の技能を備えた当業者が現時点で理解するスイッチ動作に従って次の宛先に転送する前に、そのデータフローを識別し、データフローに基づいてプロファイルを呼び出し、方針をデータフローに適用し、プロファイル及び／又は方針に基づいてアプリケーション又はサービスによりデータフローを処理させる技術的インテリジェンスを提供することで、ネットワーク全体にわたってアプリケーション分散を可能ともする。一実施形態では、次の宛先は、ネットワークアドレス又はこのネットワーク装置にそれ以外の態様で接続された別の装置であってもよい。サービスをネットワーク全体にわたって分散してサービスの可用性を高めることで、アプリケーション及びサービスへの増大した要求を満たすための代替解決策に関連したスケーラビリティ問題が改善する。
【００２１】
図１Ａは、ここに記載したネットワーク装置又はデバイスの４つの代表的モード及びそれらに対応する例示的な動作を示すが、これらモードは例示目的であって限定を意図したものではない。図１Ａの第１モードは、例えばファイアウォールアプリケーションに利用可能で、データフローはネットワーク装置によって受信され、いわゆる「許可又は阻止」シナリオに従って処理される。こうしたアプリケーションでは、ネットワーク装置は、あるインターフェースからデータフローを受信して、ファイアウォールが発行する許可に従って別のインターフェースを用いて、宛先にデータフローを渡すか、そうでなければフローは阻止される（すなわち、宛先には転送されない）。「修正、ソース、及び送信」と記された図１Ａの第２のシナリオでは、ネットワーク装置が受信したデータフローは、第１インターフェースで受信し、修正し、第２インターフェースを介して宛先に転送される。第２シナリオの代表的実施形態には、コンテンツ挿入が含まれる。図１Ａの第３のシナリオでは、ネットワーク装置はプロキシとして機能でき、データフローは第１データインターフェースで受信、処理、及び返され、同様に、第２データインターフェースからのデータフローは、処理した後に第２データインターフェースを介して返すことができる。それぞれのデータフローは独立していても、関連していてもよい。図１Ａの第３シナリオの幾つかの実施形態には、トランザクションサービス及びプロトコル変換が含まれる。図１Ａの第４のシナリオでは、ネットワーク装置は、例えば、ＶｏＩＰ会議、コンテンツ挿入、及びアプリケーションキャッシュ保持を含んだアプリケーションに利用可能で、データフローは、第１データインターフェースで受信し、処理し、且つ第１データインターフェースを介して返すことができる。
【００２２】
図１Ｂは、ネットワーク装置の別の例を示し、ここに開示した方法及びシステムに従ってネットワーク装置を組み込んだエッジベース（原語：ｅｄｇｅ−ｂａｓｅｄ）ファイアウォール実施形態２００に関するデータフローを実例により説明する。この図では、加入者からインターネットサービスプロバイダ（ＩＳＰ）Ａ  ２０２と、別の加入者からＩＳＰ  Ｂ  ２０４とへのインターネット要求であるデータフローが、ディジタル加入者回線アクセスマルチプレクサ（ＤＳＬＡＭ）２０６へ入力され、その後、ＩＳＰ  Ａに関連したスーパーＰＯＰ内のフローを収集し且つルータ２１０へ転送する非同期転送モード（ＡＴＭ）スイッチ２０８に転送される。ルータ２１０は、データフロー・トラフィックを、ＩＳＰ加入者２０２及び２０４からのフローを識別し且つそれぞれのファイアウォール方針を適用するネットワークデバイス又は装置１２に送る。図示した実施形態では、ＩＳＰ  Ａ及びＢは、ネットワーク装置１２への加入者であり、それに従って、プロファイル及びアプリケーション／サービスをそうしたプロファイルに従って提供すると、これらプロファイルに適合した態様で、これらをネットワーク装置が分散及び処理する。図示した実施形態では、それぞれのファイアウォールに加えて、アプリケーションをそれぞれのデータフローに適用可能である。対応する処理がネットワーク装置１２により実行された後、図示した実施形態では、ＩＳＰ  Ａ加入者２０２からのデータフローは、そのデータにアプリケーションを適用してインターネット２１２に転送され、ＩＳＰ  Ｂ加入者２０４からのデータフローは、方針をそのデータに適用してＩＳＰ  Ｂ２１４に転送される。
【００２３】
ネットワーク装置１２は、データが加入者のものでなく従ってアプリケーション処理の対象とならないことも識別可能で、この場合は、こうしたデータは、通常の技能を備えた当業者に現在知られているスイッチに従って任意の宛先に繋ぐことができる。通常の技能を備えた当業者であれば、本開示は、インターネットと呼ばれるネットワーク内で接続される装置を説明しているが、このインターネット適用例は、例示目的であって限定する意図はないことも理解するはずである。この装置がインターネットなどの通信システムと共に使用される一実施形態では、この装置は、サーバネットワークのフロントエンドに接続するか、ネットワーク間を接続するルータ間に接続可能である。ただし、本開示の装置はそうした実施形態に限定されない。
【００２４】
図２は、アプリケーションのホストとして機能し且つインターネットなどのネットワークの基幹施設内の全体にわたって接続可能なネットワーク装置１２の別のブロック図１０を示す。従って、この装置がホストとなるアプリケーション及び／又はサービスがネットワーク全体にわたって分散される。通常の技能を備えた当業者であれば、図２の例は開示の補助として意図されており、限定する意図はないことは理解するはずである。図２に示したように、図示した装置１２は、２つのギガビットイーサネット接続を別々に維持することにより（図示した実施形態では）、ネットワークフローが装置１２から出入りするのを促進する２つのネットワークプロセッサモジュール（ＮＰＭ）１４を含む。通常の技能を備えた当業者であれば、ギガビットイーサネット接続は高速データリンクの一例に過ぎず、本装置及び方法の範囲から逸脱することなく他のそうしたデータリンクで代替可能なことは理解するはずである。装置１２が、加入者をインターネットコアに接続する幹線に直列で挿入されている一実施形態では、例えば、これらギガビットイーサネット接続は、加入者ネットワーク１６及びインターネットコア１８と随意にインターフェースをとることができる。通常の技能を備えた当業者であれば、別の実施形態では、単一のＮＰＭを用いることができ、又、これら２つのギガビットイーサネット接続は、例えば２つの異なるネットワークに接続できることは理解するはずである。更に、通常の技能を備えた当業者であれば、図示したシステムに関しては、装置１２は１つの双方向インターフェースを用いて、加入者ネットワーク１６及びインターネットコア１８に接続できることは理解するはずである。図２のＮＰＭ１４は、イーサネット介しクロスコネクト２０を通過して、アプリケーション及びサービスをデータフローに適用する少なくとも１つのフロープロセッサモジュール（ＦＰＭ）２２に接続し、又、データフロー要求を処理し且つＮＰＭ１４及びＦＰＭ２２から健全度及び維持情報を収集可能な少なくとも１つの制御プロセッサモジュール（ＣＰＭ）２４に接続する。
【００２５】
図示したＮＰＭ１４、ＦＰＭ２２、及びＣＰＭ２４も、全てのモジュールと相互接続したスイッチングファブリックに接続しており、このスイッチングファブリックは、ＮＰＭ１４と、ＦＰＭ２２と、ＣＰＭ２４モジュールとの間でデータフローの内部パケット転送を実現する。ＣＰＭ２４は、この代表的実施形態では、二重冗長内部交換１００メガバイト／第２イーサネット制御プレーンとすることが可能な１００Ｂａｓｅ−Ｔイーサネット制御バス２６によってＦＰＭ２２及びＮＰＭ１４に同様に別個に接続している。更に、図示したＣＰＭ２４は、１００Ｂａｓｅ−Ｔイーサネットによって管理サーバ（ＭＳ）モジュール２８にも、ローカルメモリ素子３０にも、更に、ギガビットイーサネット接続を介してデータセンタ３２にも接続している。ＭＳモジュール２８は、データ収集、アプリケーションのローディング、ＦＰＭ２２からのアプリケーション削除を可能とする一方、ローカルメモリ素子３０及びデータセンタ３２は、アプリケーションまたはプロファイル情報に関連したデータを格納できる。図２に示したシステムでは、２つのＮＰＭ１４、少なくとも２つのＣＰＭ２４、及び１０このＦＰＭ２２がある。ただし、こうしたシステムは単に例示的なものであり、通常の技能を備えた当業者であれば、本開示のシステム及び方法の範囲から逸脱することなく、これより多く或いは少ない数の構成要素を用いることができることは理解するはずである。図２に示したシステムでは、２つのＮＰＭは相補的又は冗長構成で動作可能であり、一方では、２つのＣＰＭを冗長構成することも可能である。
【００２６】
上述のように図示した原理に従ったアーキテクチャを用いれば、装置１２は、インターネットのようなネットワークの通常の体系内に配置でき、この場合、装置１２は、例えばサーバネットワークのフロントエンドに、或いは、それに代わって又はそれに追加して複数ネットワークを接続するルータ間にも配置できる。装置のモジュール用に構成されたファームウエア及び／又はソフトウェアを用いれば、装置１２は、アプリケーションを加入者に提供するように構成でき、その場合、これらアプリケーションには、ウイルス検出、進入検出、ファイアウォール、コンテンツフィルタリング、プライバシー保護、方針に基づいたブラウジング等が含まれるが、これらは単に例に過ぎず、限定する意図はない。一実施形態では、ＮＰＭ１４は、データパケットすなわちフローを受信し、そうしたパケットを適切な宛先に転送する前に完全に処理可能である。この実施形態では、ＮＰＭ１４は、ＮＰＭ１４は、パケットを受信して、適切な宛先に転送できる。更にこの実施形態では、ＦＰＭ２２に常駐するアプリケーションが実行可能な処理を必要とするデータパケットを識別し、こうした場合は、ＮＰＭ１４は、どのＦＰＭ２２が適切且つ最も効率的にそのデータを処理できるかを特定するためのフロースケジューリングを行うが、この際には、データパケットすなわちフローは、処理のため選択したＦＰＭ２２に転送できる。一実施形態では、全てのＦＰＭ２２が、全ての種類の処理要求又はデータパケットを処理できるわけではない。更に、データ要求を処理するためには、場合によっては、ＦＰＭ２２は、ローカルメモリ素子３０又はリモートメモリ素子３２から情報を要求でき、その際には、ＮＰＭ１４が、ＣＰＭ２４を介して格納データの取り出しを命令し、その後、その格納データをＦＰＭ２２に転送できる。ＦＰＭ２２は、その後、処理済みデータをＮＰＭ１４に転送し、ＮＰＭ１４が適切な宛先に転送する。図１及び３に示したような装置１２のアーキテクチャを用いれば、アプリケーションサービスプロバイダは、サービスを、しばしば単一ＩＰアドレスとして指定される単一位置でなく、インターネットのようなネットワーク全体にわたって統合し且つ利用可能とすることで、加入者により効率的にサービスを提供できる。
【００２７】
図３Ａは、図１の装置１２を通るデータフローを概略的に示す。図３Ａに示すように、ＮＰＭ１４は、加入者インターフェースとネットワークコアとの間のインターフェースとなりうる。図３ＡのＮＰＭ１４は、データを第１インターフェース１４ａから受信して、データ要求によってはそのデータを処理し、且つ、第１インターフェース１４ａ又は第２データインターフェース１４ｂを用いて処理済みデータを送信する。或いは、ＮＰＭ１４は、受信データを、後にそのデータをＮＰＭ１４に返すＦＰＭ２２に転送可能であり、その後、ＮＰＭ１４は、第１インターフェース１４ａ又は第２データインターフェース１４ｂを使って送信又は転送できる。同様に、ＮＰＭ１４は、データを第２インターフェース１４ｂから受信して、そのデータを処理し、且つ、第１インターフェース１４ａ又は第２データインターフェース１４ｂを用いて処理済みデータを送信できる。更に、第２データインターフェース１４ｂを介してＮＰＭ１４が受信したデータは、処理のためＦＰＭ２２に転送可能で、その場合、ＦＰＭ２２はＮＰＭ１４へ処理済みデータを返し、このデータは、第１インターフェース１４ａ又は第２インターフェース１４ｂを介して送信される。別の例では、ＮＰＭ１４が受信したデータは、複数のＦＰＭ２２が処理可能で、その場合、データは、ＮＰＭ１４を介して複数のＦＰＭ２２に転送し且つＮＰＭ１４に返され、ＮＰＭ１４が宛先に転送する。
【００２８】
２つのＮＰＭが相補的に動作するよう構成されている実施形態では、第１ＮＰＭが受信したデータは、第１ＮＰＭにより処理され且つ第２ＮＰＭに転送され、更に、第２ＮＰＭが宛先に転送する。或いは、第１ＮＰＭが受信したデータは、第２ＮＰＭに転送且つ処理され、適切な宛先に転送してもよい。別のシナリオでは、２つのＮＰＭの何れかで受信したデータは、何れかのＦＰＭ２２に転送し、処理し、且つ、何れかのＮＰＭに宛先に返した後に転送できる。通常の技能を備えた当業者であれば、装置１０に入る、又はその内部における、或いはそこから出るデータの動き及び処理は、単に例示目的であり限定するものではなく、補足的な実施形態においては第１ＮＰＭ及び第２ＮＰＭは、本開示の方法及びシステムの範囲から逸脱することなく、記載中で入れ替え可能なことは理解するはずである。
【００２９】
図３Ｂは、本発明の分野で周知の記憶領域ネットワーク（ＳＡＮ）に従って動作するよう構成された図２及び３Ａのシステムを示す。図３Ｂの構成では、図３Ａに示したようなＮＰＭ１４とＦＰＭ２２との統合はそのまま保持されているが、ＮＰＭ１４及びＦＰＭ２２は、本発明の分野で周知のいずれの記憶装置（ＲＡＭ、ＲＯＭ、フレキシブルディスク、ＺＩＰドライブ、ＲＡＩＤシステム、ホログラフィック記憶装置などを含むがそれに限定されないし、これらの例は例示目的であって、限定する目的で記載したものではない）でもよい１つ又は複数の記憶装置２３へのインターフェースを保持している。図３Ｂに示したように、データはＮＰＭ１４で受信し、記憶装置２３に直接転送できる。或いは、ＮＰＭ１４で受信したデータは、ＮＰＭ１４で受信したデータは、ＦＰＭ２２が記憶装置２３に転送する前に、１つ又は複数のＦＰＭ２２に転送可能であり、その場合、ＦＰＭ２２は、デ―タを記憶装置２３に転送する前にデータに処理を実行できる。同様に、図３Ｂの構成では、データは、ＮＰＭ１４又はＦＰＭ２２の何れかによって記憶装置２３から取り出し可能である。図３Ｂの構成では、ＮＰＭ１４及びＦＰＭ２２は、データ入力及び出力を可能とする外部インターフェースを保持する。
【００３０】
図４は、二重冗長アーキテクチャを実現する図２のシステムの代替実施形態を示す。冗長アーキテクチャの図４の実施形態は、１４台のラックシャーシに設けられた２つのＮＰＭ１４ａ、１４ｂ、２つのＣＰＭ２４ａ、２４ｂ、及び１０このＦＰＭ２２ａ−２２ｎを備える。図４のシステムでは、８つのＦＰＭ２２が、典型的な装置１２の動作のために設けられていて、動作中の８つのＦＰＭ２２のうち２つまでが故障した場合に備えて、２つのＦＰＭ２２がバックアップとして設けられている。図４が示すように、冗長内部交換１００メガバイト／秒（１００Ｂａｓｅ−Ｔ）イーサネット制御プレーン１７０ａ、１７０ｂが、ＮＰＭ１４ａ、１４ｂ、ＣＰＭ２４ａ、２４ｂ、及びＦＰＭ２２ａ−２２ｎそれぞれの間を接続する。図示したシステムは、更に、二重ファブリックリンク１７２ａ、１７２ｂを含み、各ＦＰＭ２２ａ−２２ｎ及びＣＰＭ２４ａ、２４ｂは各ファブリックリンク１７２ａ、１７２ｂに接続する一方、第１ＮＰＭ１４ａは第１ファブリックリンク１７２ｂに接続し、第２ＮＰＭ１４ｂは第２ファブリックリンク１７ｂに接続して、各ＮＰＭ１４ａ、１４ｂのそれぞれからの独立した動作を許容する。
【００３１】
更に、図４に示したように、図４のＮＰＭ１４ａ、１４ｂは、ネットワークへの２つのギガビットイーサネット接続を備えており、これら接続のうち一方は、加入者ネットワークなどを含んだ加入者に接続可能で、他方はインターネットコアへの接続が可能である。代替例においては、図示したＣＰＭ２４ａ、２４ｂは、図２のデータセンタ３２として示したリモート記憶装置と通信するための１つのギガビットイーサネット接続を備えている。
【００３２】
図５は、図２及び図４による例示的ＮＰＭ１４のブロック図を示す。図２及び図４に示したように、装置すなわちスイッチ１２は、１つ又は複数のＮＰＭ１４を含むことができ、複数のＮＰＭ１４を用いるときは、これらＮＰＭ１４は、冗長又は相補的に動作するように構成すればよい。
【００３３】
各ＮＰＭ１４は、ネットワークインターフェースサブシステム４０として図５に示したモジュラー式でオプションのサブシステムを含む。このサブシステム４０は、スイッチ１２とネットワークとを物理的に接続して、スイッチ１２とネットワークとの間のデータフローを可能とする。ＮＰＭ１４は、ネットワークインターフェースサブシステム４０に接続したネットワークプロセッサ４２も含む。ネットワークプロセッサ４２は、例えば、ＩＱ２０００ネットワークプロセッサでよく、通常の技能を備えた当業者であれば、この例は例示目的であり限定的でないことは理解するはずであり、ここに記載した機能を実行する類似の装置であれば、これを代替可能である。更に、第２プロセッサを、本開示の方法及びシステムの範囲から逸脱することなく、ＮＰＭアーキテクチャ内に同時に配置できる。図示したＩＱ２０００ネットワークプロセッサ４２の場合は、ネットワークインターフェースシステム４０は、ＦＯＣＵＳバスを用いてネットワークプロセッサ４２のポートＡ及びＢに接続でき、こうしたポートは、以降はＦＯＣＵＳポートＡ及びＢと称し、ネットワークプロセッサ４２の残りの２つのＦＯＣＵＳポートＣ及びＤも使用可能である。
【００３４】
ネットワークインターフェースサブシステム４０は、ＮＰＭアーキテクチャの変更可能な構成要素でよく、これに代わる様々なオプションとしては、様々なプリント回路基板（ＰＣＢ）構造又は差し込み可能なオプションボードがあるが、通常の技能を備えた当業者であれば、ネットワークインターフェースサブシステム４０を実現するこうした方法は、単に例示的であって、これら方法及びシステムは、そうした技法に限定されないことは理解するはずである。
【００３５】
例えば、図６Ａ乃至６Ｆは、図５のＮＰＭ１４の様々な例示的ネットワークインターフェースサブシステム４０のオプションを示す。図６Ａを参照すると、図５のネットワークプロセッサ４２への２つのギガビットイーサネット接続５０、５２は、ネットワークプロセッサ４２の２つの埋め込みギガビットイーサネット媒体アクセス制御装置（ＭＡＣ）を介してサポートされている。ネットワークインターフェースサブシステム４０の図６Ａに示した実施形態では、ギガビットイーサネット動作に必要な唯一の外部装置には、ギガビットイーサネット物理層装置（ＰＨＹ）５４ａ、５４ｂ及び光インターフェース５６ａ、５６ｂが含まれる。図示した実施形態では、第１光インターフェース５６ａは、加入者のネットワーク機器に結合可能で、第２光インターフェース５６ｂはインターネットコアに結合可能である。
【００３６】
図６Ｂを参照すると、図５のＮＰＭ１４の例示的な構成が示されており、ＦＯＣＵＳポートＡ及びＢは、外部オクタル１０／１００ＭＡＣ６０ａ、６０ｂを介して、８つまでの１０／１００イーサネットポートをサポート可能である。図６Ｂでは、２つの外部８ポート１０／１００ＭＡＣ６０ａ、６０ｂが、ＦＯＣＵＳポート及び２つの外部８ポート１０／１００ＰＨＹ装置６２ａ、６２ｂに結合している。これらＰＨＹ装置は、８つのＲＪ−４５接続６４ａ、６４ｂにそれぞれ結合している。図６Ｂの構成では、８つのＲＪ−４５ポート６４ａからなる一組を加入者ネットワーク専用とする一方、残りの８つのＲＪ−４５ポート６４ｂをインターネットコアに結合できる。一実施形態では、図６Ｂのアーキテクチャによれば、ソフトウェア又はファームウェアは、加入者のポートで受信したデータをインターネットポートで返すことができるように、これらポートを独立したデータストリームとして構成可能である。
【００３７】
図６Ｃを参照すると、図５に示したＮＰＭ１４のためのネットワークインターフェースサブシステム４０の構成を示し、スイッチ１２は、ＦＯＣＵＳポートＡ及びＢに接続されたセル分割・組立装置（ＳＡＲ）７０ａ、７０ｂと協力してＡＴＭセルを受信できる。ＯＣ−３ｃＡＴＭ動作を示した図６Ｃの構成では、４つの光インターフェース７２ａが、加入者インターフェースとなる一方、４つの光インターフェース７２ｂがインターネットコアインターフェースとなる。加入者及びインターネット光インターフェース７２ａ、７２ｂは、それぞれ、送信ＳＡＲ７０ａ（ＴＸ、スイッチ１２へ）への入力を提供するか、又は、受信ＳＡＲ７０ｂ（ＲＸ、スイッチ１２から）の出力を受信する４ポートフレーマ７６ａ、７６ｂに結合している。図示した構成では、ＳＡＲ７０ｂ、７０ｂは、３２ビットＳＲＡＭ７７及び６４ビットＳＤＲＡＭ７８を用いるが、こうした実施形態は単に例示目的である。図６Ｃに図示したシステムでは、ＳＡＲ  ＵＴＯＰＩＡポートが、書替え可能ゲートアレイ（ＦＰＧＡ）７９を介してＦＯＣＵＳポートＡ及びＢとインターフェースをとる。通常の技能を備えた当業者であれば、ここに示した他の図と同様に、図６Ｃのネットワークインターフェースサブシステムは例示目的にすぎず、本開示の方法及びシステムの範囲を限定する意図はないことは理解するはずである。従って、構成要素は同一機能を果たすために交換できる。例えば、送受信能力を備えた単一ＳＡＲを、図６Ｃの例に示した２つのＳＡＲ７０ａ、７０ｂの代わりに使用してもよい。
【００３８】
図６Ｄを参照すると、図４に示したＮＰＭ１４のためのネットワークインターフェースサブシステム４０の構成を示し、ここでは、ＯＣ−１２ｃＡＴＭの動作を利用可能としてもよい。図示したシステムでは、１つのＯＣ−１２ｃ光インターフェース８０ａが加入者のネットワーク機器に結合可能で、第２光インターフェース８０ｂはインターネットコアに結合可能である。図６Ｃとは対照的に、図５Ｄは、後に、ＴＸ及びＲＸ  ＳＡＲ８４ａ、８４ｂ、ＦＰＧＡ８６、及びネットワークプロセッサ４２のそれぞれのＦＯＣＵＳポートとインターフェースをとる２ポートフレーマ８２のみを示す。
【００３９】
図６Ｅを参照すると、図５のネットワークインターフェースサブシステム４０のためのＯＣ−３ｃ  ＳＯＮＥＴ利用パケット送信（ＰＯＳ）構成を示す。図６Ｅに示した構成では、４つの光インターフェース９０ａが加入者のネットワーク機器に結合でき、一方、第２光インターフェース９０ｂはインターネットコアに結合専用にできる。光インターフェース９０ａ、９０ｂは、ＦＰＧＡ９４を介してＦＯＣＵＳポートＡ及びＢとそれぞれインターフェースをとる４ポートフレーマ９２ａ、９２ｂにそれぞれ結合する。通常の技能を備えた当業者であれば、ＰＰＰ（ポイントツーポイントプロトコル）でカプセル化したパケットは、ＳＯＮＥＴペイロードエンベロープ（ＳＰＥ）内に挿入されるため、全てのＰＯＳリンクは連結されており、従って、図６Ｅで用いるＦＰＧＡ９４は、図６ＤのＦＰＧＡ８６と類似のものでよいことは理解するはずである。
【００４０】
図６Ｆを参照すると、２ポートＯＣ−１２ｃ  ＰＯＳ応用例のための図５のネットワークインターフェースサブシステム４０の構成を示す。図示したシステムでは、１つの光インターフェース１００ａが加入者のネットワーク機器に結合可能で、別の１００ｂがインターネットコアに結合可能である。図６Ｆの光インターフェース１００ａ、１００ｂは、２ポートフレーマ１０２とインターフェースをとってＦＯＣＵＳポートＡ及びＢと接続する。
【００４１】
図５を再び参照すると、図示したネットワークプロセッサ４２は、ＱＥＤ  ＲＭ７００Ａ  ４００ＭＨｚＭＩＰＳプロセッサなどのＭＩＰＳプロセッサ１１２と、ガリレオＧＴ６４１２０Ａシステムコントローラ／ＰＣブリッジなどのシステムコントローラ／ＰＣブリッジ１１４と、ローカルＳＤＲＡＭ１１６と、プログラマブルロジック装置（ＰＬＤ）１１８とを含んだＣＰＵサブシステム１１０にも接続している。図示したシステムでは、ＰＬＤ１１８が、ボード固有制御レジスタ及び種々雑多な装置へのアクセスを可能とする。図示したように、ＰＬＤ１１８は、ローカルＳＤＲＡＭ１１６と共にＧＴ６４１２０Ａ  １１４に隣接してローカル高速バスに接続され、更に、ＰＬＤ１１８は、ローカル高速バス１２０と、設定及びパラメータを半永久的に格納し且つ日時を示す実時間クロックとなるブートＰＲＯＭフラッシュ１２４及び不揮発性ＲＡＭ（ＮＶＲＡＭ）１２６を備えた低速周辺バスと、の間のバッファとして機能する。ＰＣＩブリッジに接続されている図５のＰＣＩバス１２７も、統合ＰＨＹを含んだインテルＧＤ８２５５９ＥＲ  １００ビットＭＡＣなどの２つのファストイーサネットＭＡＣ１２８ａ、１２８ｂを含み、１次及び２次１００Ｂａｓｅ−Ｔイーサネットチャンネルを介してＮＰＭ１４とＣＰＭ２４との間の冗長接続を提供する。図示したＭＡＣ１２８ａ、１２８ｂはＰＣＩバス上に位置しており、ＰＣＩ内部バッファとローカルＭＩＰＳメモリ１１２内で定義済みバッファ記述子との間で直接メモリアクセス（ＤＭＡ）転送を実行する。ＭＡＣ１２８ａ、１２８ｂがサポートするバーストサイズは上限がなく、ＰＣＩブリッジの性能により制限される。一実施形態では、フロー制御を制御プレーンに適用して、不要なパケット損失を避けることができる。図示したＧＴ６４１２０Ａ  １１４は、ＣＰＵ１１２及びその他のローカルバスマスタに、ＰＣＩメモリ及び／又はデバイスバスへのアクセスを許容する。
【００４２】
更に、図５のＮＰＭ１４は、ＮＰＭ１４とスイッチ内の他のモジュールとの間に高速の無閉塞データ接続を提供するスイッチファブリックサブシステム１３０を含む。これら接続は、別の冗長又は相補的ＮＰＭ１４への２つのリンク及び各ＣＰＭ２４へのリンクを含む。スイッチファブリックの図示したＮＰＭ１４部分は、２つのフォーカスコネクト装置１３２ａ、１３２ｂを含み、一方のフォーカスコネクト装置１３２ａは、ＦＯＣＵＳバスを用いてＩＱ２０００  ４２ポートＣに接続し、別のフォーカスコネクト装置１３２ｂはポートＤに接続している。
【００４３】
図示したシステムでは、フォーカスコネクト装置１３２ａ及び１３２ｂ上の１６ビットフォーカスバスは、ローカルポート８を除いて、二重冗長Ｉ／Ｏ機能を備え且つ二重チャンネル結合モード用に構成されている直列・並列（並直列変換回路）装置１３６であるサイプレス・クワッド・ホットリンク・ギガビット・トランシーバ１３４に取り付けられている。この二重チャンネル結合モードは、２チャンネルを単一の１６ビットチャンネルに結合するもので、装置ごとに２つのそうした１６ビットチャンネルを設けることができる。図７を参照すると、この二重冗長直列Ｉ／Ｏ機能は、１つのＮＰＭ１４しか存在しない場合にパケット又はデータ経路ベクトルの修正が必要ないように、バックプレーン上のクロスオーバと協力して、任意のスロットを他の任意のスロットと結合可能とする。図５の並直列変換回路１３６は、バックプレーンから入る直列ストリームデータを、フォーカスコネクト装置１３２ａ、１３２ｂに転送するために並列データに変換する。同様に、並直列変換回路１３６は、フォーカスコネクト装置１３２ａ、１３２ｂからの並列データを、バックプレーンに送る前に直列データに変換する。
【００４４】
例えば、図４に示したシステムを用いれば、フォーカスコネクト装置１３２ａ、１３２ｂはＩＱ２０００  ＦＯＣＵＳ  Ｃ及びＤポートに接続され、更に、フォーカスコネクト装置１３２ａ、１３２ｂは、それぞれ８つのポートを備え、１４スロットシャーシと、及びＦＰＭ２２ａ−２２ｎ用の１０スロットと、ＮＰＭ１４ａ、１４ｂ用の２スロットと、ＣＰＭ２４ａ、２４ｂ用の２スロットとが設けられた図示したシステムでは、フォーカスコネクト装置は、テーブル１及び２に示したように構成可能である。
【表１】
2004524598.tif 000002
【表２】
2004524598.tif 000003
【００４５】
表１及び２に示したように、図４のＮＰＭ１４を図１及び３に示したような冗長システムで用いることで、二重ＮＰＭ１４ａ、１４ｂは、全てのＦＰＭ２２ａ−２２ｎ及び各ＣＰＭ２４ａ、２４ｂにアクセスでき、逆も又同じである。
【００４６】
図５のＮＰＭ１４の４番目の主要なサブシステムは、メモリサブシステム１４０である。図５のメモリサブシステムは、パケットバッファ格納及びフロールックアップテーブル空間用の単一のＲＡＭバスチャンネルである。図示した実施形態では、メモリサブシステム１４０は、検索プロセッサ１４２及び幾つかのコンテンツアドレス指定可能メモリ１４４を備えるが、通常の技能を備えた当業者であれば、本開示の方法及びシステムは、メモリサブシステム１４０又はその構成要素に限定されないことは理解するはずである。
【００４７】
図５を再度参照すると、ＮＰＭ１４が受信したデータは、パケット又はデータフローを識別するための命令を含むことができるＩＱ２０００  ４２に転送可能である。例えば、ＣＰＵ又はプロセッサ命令は、ハッシュテーブルを実行し或いは用いて、識別されたパケット又はフロー用のサービス又は処理を識別可能であって、このパケット又はフローは、その後、例えば上述のサービス又は処理に従ってＦＰＭ２２に転送できる。或いは、識別されていないパケットは、そのパケット又はフロー及び関連づけられた処理又はサービスを識別するための命令を含むことが可能なＭＩＰＳ１１２に転送できる。一実施形態では、ＭＩＰＳ１１２が識別できないパケットは、ＭＩＰＳ１１２が、パケット又はフローを識別するための命令を含みうるＣＰＭ２４に転送できる。ＣＰＭ２４又はＭＩＰＳ１１２からの識別情報は、ＩＱ２０００  ４２に返すことができ、ハッシュテーブルをこの識別情報に従って更新できる。
【００４８】
図８を参照すると、図１乃至３に示したシステム用のＦＰＭ２２の基本ブロック図を示す。図８の実施形態では、ＦＰＭ２２は、インテル社の４４０ＢＸ  ＡＧＰｓｅｔに基づいており、このＦＰＭの機能の大半は、パーソナルコンピュータ（ＰＣ）に類似したものである。従って、図示したＦＰＭ２２は、プロセッサすなわちＣＰＵ１２０と、４４０ＢＸ  ＡＧＰｓｅｔ１２２と、ＦＯＣＵＳインターフェースと、周辺機器とを含む４つの主要部分を具備すると考えることができる。図２及び４に図示したシステムでは、複数のＦＰＭ２２は同一設計されているが、通常の技能を備えた当業者であれば、本開示の方法及びシステムは異なるＦＰＭ設計を含みうることは理解するはずである。
【００４９】
図８を参照すると、図示したＦＰＭ２２の実施形態は、１００メガヘルツのプロセッサシステムバス（ＰＳＢ）を備えた単一ソケット３７０インテルペンティアムＩＩＩ（商標名、この明細書において同じ）ＣＰＵ１５０をサポートするが、こうしたプロセッサは、単に例示目的であって限定するものではなく、通常の技能を備えた当業者であれば、本開示の方法及びシステムは、ここに選択したＣＰＵ又はプロセッサ構成要素に限定されないことは理解するはずである。同様に、通常の技能を備えた当業者であれば、複数のプロセッサ１５０を、本開示の方法及びシステムから逸脱することなく、このＦＰＭアーキテクチャに組み込み可能であることは理解するはずである。この代表的なＦＰＭ２２は、ＣＰＵ１５０にホスト／プロセッササポートを実現する４４０ＢＸアクセラレイティッド・グラフィックスポート（ＡＧＰｓｅｔ）１５２も含む。
【００５０】
図示したシステムのＦＰＭ２２から出入りするデータパケットは、ＦＯＣＵＳバスと呼ばれる１６ビット幅１００メガヘルツバスを用い、更に、図示した実施形態では、全二重ＦＯＣＵＳバスが、各ＮＰＭ１４から全てのＦＰＭ２２に接続されており、二重冗長ＮＰＭ１４ａ、１４ｂの図示した実施形態では、全てのＦＰＭ２２は、２つのＮＰＭ１４ａ、１４ｂと通信する。上述のように、ＦＯＣＵＳバス信号は、バックプレーンに送る前に、ＮＰＭ１４ａ、１４ｂで直列化して、信号の保全性を向上し且つトレース数を少なくする。図示したように、ＦＰＭ２２上の直並列変換器１５４ａ、１５４ｂは、バックプレーンからバスへの信号を変換し、バスが、直並列変換器１５４ａ、１５４ｂを、ＦＰＧＡ１５８及び出入力プロセッサ１６０を介して４４０ＢＸ  ＡＧＰｓｅｔ１５２とインターフェースをとるフォーカスコネクト１５６に接続する。図示したＰＲＣは、ＦＰＭ２２が正しいＮＰＭ１４にパケットを送信可能とする、８方向ＦＯＣＵＳスイッチである。
【００５１】
更に、図８のＦＰＭ２２は、制御プレーンインターフェース、大容量記憶装置、及び直列インターフェースを含んだ周辺機器の動作も維持する。図示したＦＰＭ２２では、制御プレーンは、ＡＧＰ１５２を冗長制御プレーンにインターフェースする２つのファストイーサネット（商標名；以下同じ）コントローラ１３０ａ、１３０ｂを介して、ＦＰＭ２２と通信するための専用経路となる。図２及び４に示したように、制御プレーンを介してＦＰＭ２２と通信するのは、典型的にはＣＰＭ２４ａ、２４ｂである。図示した実施形態では、ファストイーサネットコントローラ１３０ａ、１３０ｂは、２つのＣＰＭ２４が終端となる交換１００メガビット／第２イーサネットネットワークである制御プレーンに接続する。
【００５２】
図示したＦＰＭ２２は、例えば、Ｍシステムズ社のＤｉｓｋＯｎＣｈｉｐ（ＤＯＣ）、２．５インチディスクドライブ、設定及びパラメータなどを半永久的に格納するＮＶＲＡＭを含んだ種々の大容量記憶装置もサポートする。
【００５３】
図９を参照すると、図２及び４のシステムで用いられるような例示的ＣＰＭ２４を図示する。上述のように、ＣＰＭ２４は、一般的なスイッチ幅機能を実行し、且つ、図示した実施形態では、ＦＰＭ２２の図７のデータインターフェースと同一であるデータインターフェースを介して他のスイッチ構成要素と接続している。通常の技能を備えた当業者であれば、ＦＰＭ２２とＣＰＭ２４とに共通のこのデータインターフェースは、単に便宜的に共通としたに過ぎず、本開示の方法及びシステムの範囲を限定しないことは理解するはずである。
【００５４】
上述のように、図示した実施形態では、制御プレーンはＣＰＭ２４が終端であり、図示した制御プレーンは、二重冗長且つ私用の交換１００メガビットイーサネットである。このスイッチング要素は、ＣＰＭ２４上に収納されており、従って、他のモジュールとＣＰＭ２４との間の全てのポイントツーポイント接続は、バックプレーンコネクタを介して維持される。
【００５５】
更に、ＣＰＭ２４は、スイッチ１２のブートプロセスを制御し、且つ、スイッチ１２の動作時には、スイッチ１２からのモジュールの取り外し及び挿入を管理する。
【００５６】
図９に示したＣＰＭ２４では、主ＣＰＵ１７０はペンティアムＩＩＩプロセッサであるが、本開示の方法及びシステムはそれに限定されるものでなく、上述の機能を実行可能な任意のプロセッサ又はＣＰＵ、或いは装置を、本開示の方法及びシステムの範囲から逸脱することなく代替使用可能であり、複数のプロセッサ又はＣＰＵを付加的に用いてもよい。図示したＣＰＭ２４では、４４０ＢＸアクセラレイティッド・グラフィックスポート（ＡＧＰｓｅｔ）１７２が、ＣＰＵ１７０によるホスト／プロセッササポートを実現する。図９のＡＧＰ１７２は、種々雑多なハードウェア機器に接続するＰＣＩインターフェースをサポートする。
【００５７】
３つのファストイーサネットコントローラ１７４ａ、１７４ｂ、１７４ｃも、４４０ＢＸ１７２のＰＣＩバス上に位置している。これら３つのファストイーサネットコントローラのうち１つ１７４ａは、外部通信を提供し、且つ他方のＣＰＭ２４のファストイーサネットと多重通信を行う。残った２つのファストイーサネットコントローラ１７４ｂ、１７４ｃは、ＮＰＭ１４及びＦＰＭ２２への専用通信路となる。図９に示したシステムでは、ファストイーサネットコントローラは、インテル社の８２５５９ＥＲであり、これは、ＭＡＣとＰＨＹを単一の構成要素に統合した完全統合型１０ＢＡＳＥ−Ｔ／１００ＢＡＳＥ−ＴＸ  ＬＡＮソリューションであるが、こうした実施形態は例示目的で記載されているに過ぎない。図示したシステムでは、ファストイーサネットコントローラ１７４ｂ、１７４ｃは、最大で１０のＦＰＭ２２及び２つのＮＰＭ１４の制御プレーンへの１４の専用通信路を提供するイーサネットスイッチ１７６とインターフェースをとる。
【００５８】
データパケットは、１６ビット幅１００ＭＨｚＦＯＣＵＳバスを用いて、図示したＣＰＭ２４から出入りする。図示したシステムでは、各ＣＰＭ２４を各ＮＰＭ１４に結合する１つの全二重ＦＯＣＵＳバスが設けられており、二重冗長ＮＰＭ１４ａ、１４ｂを備えた図２及び４に示したシステムでは、各ＣＰＭ２４を各ＮＰＭ１４ａ、１４ｂに結合する。並直列変換回路装置１７８ａ，１７８ｂは、バックプレーンから入る直列ストリームデータを、フォーカスコネクト装置１８０に転送するために並列データに変換する。同様に、並直列変換回路１７８ａ、１７８ｂは、フォーカスコネクト装置１８０からの並列データを、バックプレーンに送る前に直列データに変換する。図示したフォーカスコネクト１８０は、ＣＰＭ２４がパケットを正しいＮＰＭ１４に送るために用いるスイッチである。図９のシステムでは、パケットは、フォーカスコネクト１８０をＡＧＰ１７２にインターフェースするＦＰＧＡ８４及び出入力プロセッサ１８６を介してＣＰＵメモリ１８２から出入りする。
【００５９】
図２及び４のシステムを再び参照すると、ＣＰＭ２４は、ＮＰＭ及びＦＰＭを始めとするスイッチの異なる構成要素を連係し、且つ、ローカルメモリ素子とも呼ぶことができるローカル記憶装置３０へのアクセスも同様にサポートする。一実施形態では、ローカル記憶装置３０は、アプリケーションをＦＰＭ２２で実行するための画像、構成ファイル、データベースを格納できる。例えば、ローカル記憶装置３０は、ＮＰＭ１４又はＦＰＭ２２による使用のために取り出し可能な加入者プロファイルを格納してもよい。一実施形態では、特定のアプリケーション又は加入者用の構成ファイルは、取り出して複数のＦＰＭ２２にコピーでき、従って、例えば、複数の同一構成されたＦＰＭ２２が望ましいようなシナリオでは効率を向上できる。こうした実施形態では、ＦＰＭ２２は、加入者ごとにグループ分けしてもよい。ローカル記憶装置３０は、フレキシブルディスク、コンパクトディスク（ＣＤ）、ディジタルビデオディスク（ＤＶＤ）などを含むがそれに限定されない、ＣＰＭ２４から取り外し可能又はＣＰＭに取り付けられた周知のメモリ構成要素ならどんなのものでもよい。図示したシステムでは、１つのＣＰＭ２４当たり少なくとも１つのローカル記憶装置が設けられている。同様に、図示したシステムでは、ローカル記憶装置３０は、複数のパーティションに分割して、様々なＦＰＭ２２上のプロセッサを含む特定プロセッサが必要とするものに対応し且つ保護してもよい。一実施形態では、ローカル記憶装置３０は、動的ソフトウェアアップグレードを可能とする２つの同一ディスクパーティションを含むことができる。一実施形態では、２つのディスクパーティションは、スワップパーティション、全プロセッサが利用する共通パーティション、及び異なるモジュールプロセッサ（ＮＰＭ、ＦＰＭ、ＣＰＭ）用の特定パーティションを含んだ同一パーティションのグループを備えることができる。
【００６０】
図示したＣＰＭ２４は、リモート記憶装置３２にもアクセス可能で、こうしたリモート記憶装置は、ローカル記憶装置３０には効率的に格納できないことがあるサービス、データベースなどを格納できる。リモート記憶装置３２は、用途によって物理的又は論理的に分割可能なメモリ構成要素の組合せでもよいが、通常の技能を備えた当業者であれば、本開示の方法及びシステムは、リモート記憶装置３２を提供するために用いた実際のメモリ構成要素には限定されないことは理解するはずである。
【００６１】
更に、図２のＣＰＭ２４は、少なくとも１つの管理サーバ（ＭＳ）モジュール２８にも結合する。図示したシステムでは、この接続は１００Ｂａｓｅ−Ｔイーサネット接続である。図２のシステムでは、ＭＳ２８は、スイッチモジュール１４、２２、２４から健全度及び状態情報を受信且つ収集できるが、その際、これら健全度及び状態情報は、ＣＰＭ２４を介してＭＳ２８に提供できる。ＮＰＭ１４、ＦＰＭ２２、及びＣＰＭ２４が冗長構成されている実施形態では、例えば、ＭＳ２８が、装置１２の特定のモジュールを起動し又はその動作を停止できる。図示した実施形態では、ＭＳ２８は、ＣＰＭ２４を介して装置１２のモジュールと通信する。一実施形態では、ＭＳ２８は、ＰＣ、サンワークステーション、又は、装置１２のモジュールを監視及び制御するためのマイクロプロセッサが実行可能な命令を備えた同様に動作するマイクロプロセッサ制御装置でよい。一実施形態では、ＭＳ２８は、装置１２の監視及び制御情報を表示するグラフィカルユーザーインターフェース（ＧＵＩ）を提供する実行可能命令を含むことができる。一実施形態では、ＭＳ２８はＣＰＭ２４とは別個の装置でもよく、別の実施形態では、ＭＳ２８の機能は、例えば、その機能実現のためＣＰＭ２４上の別のプロセッサを使用することでＣＰＭ２４に組み込み可能である。
【００６２】
一実施形態では、周知のリナックスオペレーティングシステムをＦＰＭ２２及びＣＰＭ２４プロセッサ上にインストールして、例えば、ＦＰＭ２２に常駐するアプリケーションのインストール及び修正が可能なオープンアーキテクチャを提供できる。図示したシステムでは、スイッチモジュール上のアプリケーションの管理及び制御は、ＭＳ２８を用いて実行できる。図示した実施形態では、ＭＳ２８の管理にはＣＰＭ２４を用いる。図示した実施形態におけるファイアウォールなどのアプリケーションは、ＭＳ２８を用いてダウンロードし、修正し、且つ、ＦＰＭ２２の間で転送できる。
【００６３】
一実施形態では、ＮＰＭ１４は、周知のＶｘＷｏｒｋｓオペレーティングシステムをＭＩＰＳプロセッサ上で、小型の実行可能プログラムをＩＱ２０００プロセッサ４２上で実行できる。通常の技能を備えた当業者であれば、本開示の方法及びシステムは、様々なスイッチモジュール上では上述のオペレーティングシステムの選択肢に限定されるものでなく、更に、本開示の方法及びシステムの範囲内から逸脱しなければ、オープンアーキテクチャを実現する任意のオペレーティングシステムを代わりに用いてもよい。
【００６４】
図１０を参照すると、図２乃至４に示したシステム及び方法に関するフロースケジューリング手順２００の例示的ブロック図を示す。図１０に示したように、図示したシステムに関しては、ＦＰＭ２２は、リソ―ス情報２０２をＣＰＭ２４に提供できる。リソース情報の説明又は定義は、システム構成に左右されることがあり、又、システム構成により定義可能である。更に、こうした説明又は定義には、所定の又はそれ以外の方法で設定したフロースケジューリング基準に従って、ＮＰＭ１４とＦＰＭ２２間のフロー分散の助けとなるあらゆる情報が含まれる。ＦＰＭ２２利用率を最適化するためにフローをＦＰＭ２２に送るのが望ましい実施形態では、例えば、リソース情報には、ＦＰＭ  ＣＰＵ利用率、ＦＰＭメモリ利用率、ＦＰＭパケット損失、及び、ＦＰＭ待ち行列長さ又はバッファ占有率などの内因的データが含まれるが、通常の技能を備えた当業者であれば、こうしたメトリック又はリソース情報の記載は例示目的であって、限定する意図はなく、他のリソース情報も、本開示の方法及びシステムの範囲から逸脱することなくＦＰＭ２２からＣＰＭ２４へ提供可能なことは理解するはずである。同様に、上述の例示的リソース情報のいずれかを、本開示の方法及びシステムの何れかの実施形態で用いる必要もない。
【００６５】
図示した実施形態では、複数のＦＰＭ２２は、１つのＦＰＭグループに属すると理解でき、その場合、ＦＰＭグループには、同一に構成された複数のＦＰＭ２２が含まれ、従って、任意のＦＰＭ２２は単一グループに割り当てられる。別の実施形態では、例えば、複数グループが、特定のアプリケーションを処理可能な複数のＦＰＭを含んでいれば、任意のＦＰＭ２２は様々なグループに割り当て可能である。１０このＦＰＭ２２が設けられ、それぞれ１から１０までの参照番号を付けることが可能で、更に、ＦＰＭ１、４、５、８、及び９が同一に構成され、ＦＰＭ２及び３が同一に構成され、ＦＰＭ６、７、及び１０が同一に構成されているような実施形態では、３つのＦＰＭグループを定義可能である。図示した実施形態によるシステム及び方法に関しては、これらＦＰＭグループからのリソース情報は、ＣＰＭ２４からの問合せ要求に応答してＣＰＭに提供可能である（２０２）。或いは、例えば、リソース情報は、ＦＰＭ２２がリソース情報をＣＰＭ２４に送信するよう構成された予定間隔で、ＣＰＭ２４に自動的に提供してもよい。一実施形態では、任意グループに属するＦＰＭ２２は、特定時間にＣＰＭ２４にリソース情報を転送できるが、他の実施形態では、個々のＦＰＭ２２からＣＰＭ２４へのリソース情報転送はグループに関連又は依存していなくてもよい。一実施形態では、ＦＰＭ２２からＣＰＭ２４へのリソース情報転送は、全てのＦＰＭ２２が同時に行ってもよい。
【００６６】
図示したシステムでは、例えば、ＦＰＭ２２は、１／１０秒の間隔でＣＰＭ２４へリソース情報を転送できるが、通常の技能を備えた当業者であれば、こうしたタイミングは単に例示目的で記載されているに過ぎず、本開示の方法及びシステムは、ＦＰＭ２２からＣＰＭ２４へのリソース情報転送する上述のタイミング又はスケジューリングに限定されないことは理解するはずである。図示したＣＰＭ２４は、ＦＰＭ２２のリソ―ス情報を、ＦＰＭ２２に従って、次にＦＰＭグループに従って構文解析する役割を担う（２０４）。例えば、上述の３つのＦＰＭからなるグループの例に関しては、リソース情報の送信元のＦＰＭ２２を識別し、且つ、そのＦＰＭ２２が属するグループを識別できるようにＣＰＭ２４を構成できる。通常の技能を備えた当業者であれば、データメッセージソース又は転送を識別するには様々な方法（例えば、メッセージヘッダに識別子を含めるもの、ＣＲＣなど）が存在し、本開示の方法及びシステムは、リソース情報をＦＰＭ２２に関連付ける技法又は方法に限定されないことは理解するはずである。
【００６７】
図示したＣＰＭ２４は、ＦＰＭグループに従ってＦＰＭ２２からの情報を整理し、こうした情報を用いてＦＰＭグループのフロースケジューリングベクトルを計算できる（２０４）。ＦＰＭ２２は、リソース情報を任意の時間間隔でＣＰＭ２４に提供できるが、ＣＰＭのフロースケジュール計算は、こうした情報受信と一致している必要はない。一実施形態では、ＣＰＭ２４は、ＦＰＭ情報が受信されるごとにフロースケジュールベクトルを更新できる。しかし、他の実施形態では、ＣＰＭ２４は、フロースケジュールベクトルを更新する前に、任意のＦＰＭ２２又はＦＰＭグループからの複数の更新を平均化してもよい。例えば、ＣＰＭ２４は、指定した時間間隔又は指定したＦＰＭ更新間隔などで、任意のグループに関する新たなフロースケジュールベクトルを計算するよう構成できるが、本開示の方法及びシステムは、上述のＣＰＭフロースケジュールベクトル計算のタイミングに限定されない。
【００６８】
一実施形態では、ＣＰＭによるフロースケジュールベクトル計算の間隔は、任意のＦＰＭグループ内に常駐するアプリケーションの関数としてもよい。例えば、仮にあるＦＰＭグループ構成には、完了に一定の時間を要するアプリケーションが含まれることがＣＰＭに分かっていれば、フロースケジュールベクトル計算をこの情報に基づいて実行できる。ＦＰＭグループのフロースケジュールベクトル計算がアプリケーションに依存するシステムでは、異なるＦＰＭグループのＦＰＭグループフロースケジュールベクトルは、他のＦＰＭグループとは別個に計算できる。
【００６９】
一実施形態では、フロースケジュールベクトルは、ＦＰＭからの履歴内因的データに基づいて計算できる。一実施形態では、この履歴情報は、フィルタを使ってフロースケジュールベクトルに組み込むことができる。
【００７０】
任意のＦＰＭグループの計算済みフロースケジュールベクトルの長さは様々である。例えば、５番、６番、及び７番からなる３つのＦＰＭ２２を備えたＦＰＭグループを考慮してみる。任意の時間において、ＣＰＭ２４は、５番及び７番のＦＰＭへの負荷が最大となっているが、６番のＦＰＭはそうなっていないことを特定できる。ＦＰＭグループのベクトルを、例えば、６番のＦＰＭを識別する１つの値とすることができ、例えば、５番及び７番のＦＰＭの負荷低下を示すまでは、このベクトルは一定でよい。４０パーセントのフローが５番のＦＰＭにより処理され、４０パーセントのフローが６番のＦＰＭにより処理され、２０パーセントが７番のＦＰＭにより処理する予定の上述のＦＰＭグループの別の例では、フロースケジュールベクトルは、［ＦＰＭ５番；ＦＰＭ６番；ＦＰＭ５番；ＦＰＭ６番；ＦＰＭ７番］というベクトル表記で表すことができる５つの値でよい。
【００７１】
図１０を再び参照すると、ＣＰＭ２４が、任意のＦＰＭグループのフロースケジュールベクトルを計算した後、ＣＰＭは、フロースケジュールベクトルをＮＰＭ１４に転送（２０６）できる。
ＣＰＭ構成によっては、ＣＰＭ２４からＮＰＭ１４への更新済みフロースケジュールベクトルの転送は、ＣＰＭのフロースケジュールベクトル計算とは同じ割合でなくてもよい。幾つかの実施形態では、ＣＰＭ２４からＮＰＭ１４へのフロースケジュールベクトルの転送を、ＦＰＭグループによっては異なることがある固定間隔で構成してもよい。他の実施形態では、全てのＦＰＭグループの更新済みフロースケジュールベクトルを、同時にＮＰＭ１４に転送できる。別の実施形態では、ＣＰＭ２４からＮＰＭ１４への新たなフロースケジュールベクトルは、所定の基準に基づいてのみ転送できる、例えば、この基準では、既存のフロースケジュールベクトルと、新たに計算したフロースケジュールベクトルとの間に指定した差が存在することを要件としてもよい。通常の技能を備えた当業者であれば、本開示の方法及びシステムは、ＣＰＭ２４とＮＰＭ１４との間の上述のフロースケジュールベクトル転送の頻度又はスケジューリングによって限定されないことは理解するはずである。
【００７２】
上述のように、ＮＰＭ１４は、加入者及び／又はネットワークなどとインターフェースをとり、フローを受信し、そのフローが要求するアプリケーションを識別し、且つ、どのＦＰＭ２２がそのフロー／要求を処理できるかも識別する。図１０のフロースケジューリング方法を用いるシステムでは、受信されたフローがどのアプリケーションを要求しているかをＮＰＭ１４が識別すると、ＮＰＭ１４は、そのフローを処理するＦＰＭグループを決定できる。一実施形態では、ＮＰＭ１４は、例えばハッシュテーブルを用いて、アプリケーション又はサービスに対する要求を、特定のＦＰＭグループ及び／又はフロースケジュールベクトルに関連付け可能だが、通常の技能を備えた当業者であれば、フロー又は要求をプロセッサグループに関連付ける多くの異なる技法が存在し、本開示の方法及びシステムは、いずれの特定の技法にも限定されないことは理解するはずである。ＮＰＭは、識別したＦＰＭグループのフロースケジュールベクトルを用いて、識別したＦＰＭグループ内のどのＦＰＭ２２が、処理のためにそのフロー／要求を受信すべきかも決定できる。フロースケジューリングベクトルが用いられる図示したシステム及び方法では、ＮＰＭ１４を構成して、それぞれのフロースケジュールベクトルに順番に列挙されたＦＰＭからＦＰＭ２２に、フローを順次割り当てることで、フロースケジュールベクトルに従ってフローをＦＰＭ２２に送ることができる。同時に、ベクターの終点に達した時点で、ベクターの開始点に戻ることができる。通常の技能を備えた当業者であれば、フロースケジュールベクトルは、ＦＰＭ、ＦＰＭの識別子などへのポインタを含むことができ、更に、これら方法及びシステムは、特定ＦＰＭがベクトルにより識別される上述の技法には限定されないことは理解するはずである。
【００７３】
通常の技能を備えた当業者であれば、図１０のフローチャート及び関連した説明は、単に例として意図されており、限定する意図はないことは理解するはずである。例えば、このフローチャートの説明は、ＦＰＭ２２からＣＰＭ２４へのリソース情報転送から始まっているが、通常の技能を備えた当業者であれば、こうした処理が、図１０の処理の最初のステップである必要はないことは理解するはずである。一実施形態では、初期フロースケジュールベクトルは、ＣＰＭ２４がＮＰＭ１４へ提供してもよいし、別の方法としては、異なるＦＰＭグループの初期フロースケジュールベクトルを、ＮＰＭ１４に与えるように構成してもよい。従って、図１０に示した処理は、図示したように、処理の「開始」又は「終了」に関する詳細な設定なしで、範囲を限定した方法或いは限定しない方法で繰り返すことができる。
【００７４】
従来技術に対する本開示の方法及びシステムの１つの利点は、複数プロセッサを備えた単一のアーキテクチャが開示され、プロセッサからの内因的データを用いて、フロー又はデータ要求を、複数プロセッサ間に分散するための正確なフロースケジューリングベクトルが生成できることである。
【００７５】
これまで記載してきたことは、複数プロセッサ間にフローを分散するための方法及びシステムである。このフローは、そのフロー及び関連付けられた要求を識別し、且つそのフロー／要求を処理する少なくとも１つの内部アプリケーションプロセッサを識別するフロントエンドプロセッサにより、ネットワークなどの外部ソースから受信可能である。このフロントエンドプロセッサは、識別したアプリケーションプロセッサに関連付けられたフロースケジューリングベクトルを利用する。そして、このフロースケジューリングベクトルは、アプリケーションプロセッサからの、ＣＰＵ利用率、メモリ利用率、パケット損失、及び、待ち行列の長さ又はバッファ占有率などの内因的データに基づくことができる。幾つかの実施形態では、これらアプリケーションプロセッサは、１つのグループに属するものと考えることができ、１つのグループ内のアプリケーションプロセッサは同一に構成できる。フロースケジュールベクトルは、異なるアプリケーションプロセッサグループに関して計算できる。幾つかの実施形態では、制御プロセッサは、内因的アプリケーションプロセッサデータを収集し、フロースケジューリングベクトルを計算し、且つ、そのフロースケジューリングベクトルをフロントエンドプロセッサに転送できる。
【００７６】
本開示の方法及びシステムは、特定の実施形態に関連して説明してきたが、それに限定されない。言うまでもなく、上述の教示を参考にすれば、これらの方法及びシステムには多くの修正及び変更が可能なことが明らかとなることもあろう。例えば、図示したシステムは、モジュールを様々な構成要素に分割しているが、構成要素の機能は、これら方法及びシステムに影響を与えることなく、適切な場合には単一モジュールに結合できる。これらの方法及びシステムは、ＦＰＭからＣＰＭへリソース情報を転送し、その後、フロースケジューリングベクトルを計算して、更にＮＰＭへ更に転送することを開示しているが、リソース情報はＮＰＭに転送して、ＮＰＭにおいてフロースケジューリングベクトルを計算してもよい。同様に、他のプロセッサを用いて、内因的リソース情報を処理し、且つフロースケジューリングベクトルを計算してもよい。本開示では「フロースケジュールベクトル」という用語が用いられているが、この用語は、任意の種類のスケジュール形式を示していると理解可能であり、更に、スケジュールが、ベクトル、待ち行列、アレーなどの形式である必要はなく、他の形式のスケジューリング又は順序情報を含んだ他の形式であっても、本開示の方法及びシステムの範囲から逸脱することなく利用可能である。
【００７７】
本開示の方法及びシステムの本質を説明するために本明細書に記載及び例示した部材の詳細、素材、ステップ、及び配列には、本開示の方法及びシステムの原理及び範囲を変更することなく、多くの付加的変更を行うことができる。従って、本開示の方法及びシステムは、本明細書に記載された実施形態に限定されるものではなく、具体的に記載されたものとは異なる様態で実行可能であって、次の請求項から理解されるべきであり、法律によって許された最大の範囲で解釈されるべきでことは、理解できるはずである。
【図面の簡単な説明】
【図１】
（Ａ）  本明細書に開示されたネットワーク装置の４つの例示的動作モードを示す。
（Ｂ）  本明細書に開示されたシステム及び方法のエッジベースファイアウォール実施形態の図を示す。
【図２】
本明細書に開示された方法及びシステムに従った装置のブロック図である。
【図３】
（Ａ）  図２の装置を介した基本的データフローのブロック図である。
（Ｂ）  図２の装置の記憶領域ネットワーク実施形態のブロック図である。
【図４】
図２に従ったシステムの冗長アーキテクチャのブロック図である。
【図５】
図２及び図４のシステムのネットワークプロセッサモジュール（ＮＰＭ）の略図である。
【図６】
（Ａ）乃至（Ｆ）  図５のＮＰＭのネットワークインターフェースの実施形態を詳細に示す。
【図７】
図５に示したＮＰＭ内のバックプレーン上のクロスオーバを示す。
【図８】
図２及び４の実施形態のフロープロセッサモジュール（ＦＰＭ）のアーキテクチャを示すブロック図である。
【図９】
図２及び４に示した代表的システムに従った例示的制御プロセッサモジュール（ＣＰＭ）のブロック図である。
【図１０】
図２乃至４の方法及びシステムのフロースケジューリングに関する論理の流れを表すブロック図である。
【図１Ａ】
2004524598.tif 000004
【図１Ｂ】
2004524598.tif 000005
【図２】
2004524598.tif 000006
【図３】
2004524598.tif 000007
【図４】
2004524598.tif 000008
【図５】
2004524598.tif 000009
【図６ＡＢ】
2004524598.tif 000010
【図６Ｃ】
2004524598.tif 000011
【図６Ｄ】
2004524598.tif 000012
【図６Ｅ】
2004524598.tif 000013
【図６Ｆ】
2004524598.tif 000014
【図７】
2004524598.tif 000015
【図８】
2004524598.tif 000016
【図９】
2004524598.tif 000017
【図１０】
2004524598.tif 000018
【国際公開パンフレット】
2004524598.tif 000019
2004524598.tif 000020
2004524598.tif 000021
2004524598.tif 000022
2004524598.tif 000023
2004524598.tif 000024
2004524598.tif 000025
2004524598.tif 000026
2004524598.tif 000027
2004524598.tif 000028
2004524598.tif 000029
2004524598.tif 000030
2004524598.tif 000031
2004524598.tif 000032
2004524598.tif 000033
2004524598.tif 000034
2004524598.tif 000035
2004524598.tif 000036
2004524598.tif 000037
2004524598.tif 000038
2004524598.tif 000039
2004524598.tif 000040
2004524598.tif 000041
2004524598.tif 000042
2004524598.tif 000043
2004524598.tif 000044
2004524598.tif 000045
2004524598.tif 000046
2004524598.tif 000047
2004524598.tif 000048
2004524598.tif 000049
2004524598.tif 000050
2004524598.tif 000051
2004524598.tif 000052
2004524598.tif 000053
2004524598.tif 000054
2004524598.tif 000055
2004524598.tif 000056
2004524598.tif 000057
2004524598.tif 000058
2004524598.tif 000059
2004524598.tif 000060
2004524598.tif 000061
2004524598.tif 000062
2004524598.tif 000063
2004524598.tif 000064
2004524598.tif 000065
2004524598.tif 000066
2004524598.tif 000067
2004524598.tif 000068
2004524598.tif 000069
2004524598.tif 000070
2004524598.tif 000071
2004524598.tif 000072
2004524598.tif 000073
2004524598.tif 000074
【国際公開パンフレット（コレクトバージョン）】
2004524598.tif 000075
【国際公開パンフレット（コレクトバージョン）】
2004524598.tif 000076
【国際調査報告】
2004524598.tif 000077
2004524598.tif 000078
2004524598.tif 000079