(57)【要約】【課題】  ネットワークにおいて、ネットワークトポロジをディスカバリし、および種々の装置を管理する、改善された技術を提供する。【解決手段】  ネットワークにおける複数の装置を、複数の装置に関連付けられた接続情報とともに識別する。複数の装置に関連付けられた接続情報は、階層的な構造に変換され、複数の装置の間の通信リンクを識別する。【選択図】  図２
2004326790.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークにおける複数の装置を識別すること、
前記複数の装置に関連付けられた接続情報を識別すること、
前記複数の装置に関連付けられた前記接続情報を、階層的な構造に変換すること、および、
前記装置の間の通信リンクを識別すること
を備えることを特徴とする方法。
【請求項２】
前記ネットワークに関連付けられたネットワークトポロジ・データを格納することをさらに備えることを特徴とする請求項１に記載の方法。
【請求項３】
ネットワークトポロジ・データを格納することは、少なくとも１つのシステムリンク・テーブルにネットワークトポロジ・データを格納することを含むことを特徴とする請求項２に記載の方法。
【請求項４】
前記ネットワークトポロジ・データを格納することは、装置の識別子、接続の識別子および装置間のリンクを格納することを含むことを特徴とする請求項２に記載の方法。
【請求項５】
前記ネットワークトポロジの表示を生成することをさらに備えることを特徴とする請求項１に記載の方法。
【請求項６】
前記装置は、ネットワークルーティング装置を含むことを特徴とする請求項１に記載の方法。
【請求項７】
前記装置は、コンピュータ処理システムを含むことを特徴とする請求項１に記載の方法。
【請求項８】
前記装置の間の通信リンクを識別することは、
分析するべきＩＰアドレスの範囲を識別すること、
ＩＰアドレスの前記範囲内の各ＩＰアドレスに問い合わせをすること、および、
前記問い合わせに対する応答が受け取られた場合には、前記応答をした装置から管理情報ベースのデータを要求すること
を含むことを特徴とする請求項１に記載の方法。
【請求項９】
前記問い合わせに対する応答が受け取られた場合には、前記応答をした装置についての追加的情報を検索することをさらに備えることを特徴とする請求項８に記載の方法。
【請求項１０】
前記複数の装置に関連付けられた前記接続情報を階層的な構造に変換することは、前記複数の装置に関連付けられたスパニングツリーを生成することを含むことを特徴とする請求項１に記載の方法。
【請求項１１】
前記ネットワークにおいて識別されたそれぞれの装置に、特定のディスカバリプロセスを識別するディスカバリＩＤの標識を付けることをさらに備えることを特徴とする請求項１に記載の方法。
【請求項１２】
請求項１に記載の前記方法を実行するための、プロセッサにより実行可能なコンピュータプログラムを含むことを特徴とするコンピュータで読み取り可能な１または複数のメモリ。
【請求項１３】
ネットワークにおいて複数の装置を識別すること、
前記複数の装置に関連付けられた接続情報を識別すること、
前記複数の装置に関連付けられたスパニングツリー情報を識別すること、および、
前記スパニングツリー情報を用いて前記装置の間の通信リンクを識別すること
を備えることを特徴とする方法。
【請求項１４】
前記ネットワークに関連付けられたネットワークトポロジ・データを格納することをさらに備えることを特徴とする請求項１３に記載の方法。
【請求項１５】
ネットワークトポロジ・データを格納することは、装置の識別子、接続の識別子および装置間のリンクを格納することを含むことを特徴とする請求項１４に記載の方法。
【請求項１６】
前記ネットワークトポロジ・データを格納することは、少なくとも１つのシステムリンク・テーブルにネットワークトポロジ・データを格納することを含むことを特徴とする請求項１４に記載の方法。
【請求項１７】
前記ネットワークトポロジの表示を生成することをさらに備えることを特徴とする請求項１３に記載の方法。
【請求項１８】
前記装置は、ネットワークルーティング装置を含むことを特徴とする請求項１３に記載の方法。
【請求項１９】
前記装置は、コンピュータ処理システムを含むことを特徴とする請求項１３に記載の方法。
【請求項２０】
前記装置の間の通信リンクを識別することは、
分析するべきＩＰアドレスの範囲を識別すること、
ＩＰアドレスの前記範囲内の各ＩＰアドレスに問い合わせをすること、および、
前記問い合わせに対する応答が受け取られた場合には、前記応答をした装置から管理情報ベースのデータを要求すること
を含むことを特徴とする請求項１３に記載の方法。
【請求項２１】
前記問い合わせに対する応答が受け取られた場合には、前記応答をした装置についての追加的情報を検索することをさらに備えることを特徴とする請求項２０に記載の方法。
【請求項２２】
請求項１３に記載の前記方法を実行するための、プロセッサにより実行可能なコンピュータプログラムを含むことを特徴とするコンピュータで読み取り可能な１または複数のメモリ。
【請求項２３】
ディスカバリするべきＩＰアドレスの範囲を識別すること、
ＩＰアドレスの前記範囲内の各ＩＰアドレスに問い合わせをすること、
前記問い合わせに対する応答が受け取られた場合には、
応答をした装置から管理情報ベースのデータを要求すること、
前記応答をした装置に関連付けられた装置種別を識別すること、および、
前記応答をした装置に関連付けられた前記装置種別に基づいて前記応答をした装置から追加的情報を検索すること
を備えることを特徴とする方法。
【請求項２４】
前記管理情報ベースのデータおよび前記追加的情報は、システムリンク・テーブルに格納されることを特徴とする請求項２３に記載の方法。
【請求項２５】
前記識別された装置種別は、コンピュータ処理装置およびブリッジを含むことを特徴とする請求項２３に記載の方法。
【請求項２６】
ネットワークにおいて複数の装置を識別すること、
前記複数の装置のそれぞれの状態を保持すること、
前記複数の装置のそれぞれに繰り返し問い合わせすること、
前記複数の装置のそれぞれから受け取られた応答を記録すること、
予め決定された時間期間以内に特定の装置から応答が受け取られない場合には、
前記特定の装置の前記状態を非アクティブに変更すること、および、
前記ネットワークにおける他の装置に前記特定の装置の前記変更された状態について通知すること
を備えることを特徴とする方法。
【請求項２７】
前記ネットワークにおける前記複数の装置のそれぞれに繰り返し問い合わせすることは、前記ネットワークにおける前記複数の装置のそれぞれに周期的な間隔で問い合わせすることを含むことを特徴とする請求項２６に記載の方法。
【請求項２８】
前記予め決定された時間期間は、１時間であることを特徴とする請求項２６に記載の方法。
【請求項２９】
他のアプリケーションプログラムに前記特定の装置の前記変更された状態について通知することをさらに備えることを特徴とする請求項２６に記載の方法。
【請求項３０】
ネットワークに関連付けられた装置ディスカバリプロセスを起動すること、
前記装置ディスカバリプロセスに関連付けられたディスカバリＩＤを生成すること、
前記ネットワークにおいて新規装置を識別すること、および、
前記新規装置に前記ディスカバリＩＤの標識を付けること
を備えることを特徴とする方法。
【請求項３１】
前記ネットワークにおいて新規通信リンクを識別すること、および
前記新規通信リンクに前記ディスカバリＩＤの標識を付けること
をさらに備えることを特徴とする請求項３０に記載の方法。
【請求項３２】
前記新規装置に前記ディスカバリＩＤの標識を付けることは、前記ディスカバリＩＤを他のネットワークトポロジ・データとともに記憶装置に格納することを含むことを特徴とする請求項３０に記載の方法。
【請求項３３】
各ディスカバリＩＤは、他のディスカバリＩＤに関して一意であることを特徴とする請求項３０に記載の方法。
【請求項３４】
ネットワークにおいて複数の装置を識別する手段と、
前記複数の装置に関連付けられた接続情報を識別する手段と、
前記複数の装置に関連付けられた前記接続情報を階層的な構造に表現する手段と、
前記複数の装置のそれぞれに特定のディスカバリプロセスを識別するディスカバリＩＤの標識を付ける手段と
を備えることを特徴とする装置。
【請求項３５】
前記ネットワークに関連付けられたネットワークトポロジ・データを格納する手段をさらに備えることを特徴とする請求項３４に記載の装置。
【請求項３６】
前記ネットワークにおける前記複数の装置は、複数のＩＰアドレスの接続を確認することにより識別されることを特徴とする請求項３４に記載の装置。
【請求項３７】
ネットワークに接続されたディスカバリエンジンであって、前記ネットワークにおいて複数のネットワーク装置を識別し、および前記複数のネットワーク装置に関連付けられた接続情報を識別するように構成され、さらに、前記複数のネットワーク装置に関連付けられたスパニングツリー情報を識別し、および前記スパニングツリー情報を用いて前記ネットワーク装置の間のリンクを識別するように構成された前記ディスカバリエンジンと、
前記ディスカバリエンジンに接続され、および前記ネットワークに関連付けられたネットワークトポロジ・データを格納するように構成された記憶装置と
を備えることを特徴とする装置。
【請求項３８】
前記ディスカバリエンジンは、さらに、前記ネットワークにおいて前記ネットワーク装置の状態を周期的に更新するように構成されたことを特徴とする請求項３７に記載の装置。
【請求項３９】
前記ディスカバリエンジンに接続され、および前記ネットワークトポロジを表現する表示を生成するように構成されたネットワーク監視装置をさらに備えることを特徴とする請求項３７に記載の装置。
【請求項４０】
１または複数のプロセッサにより実行された場合に、前記１または複数のプロセッサに、
ディスカバリするべき複数のＩＰアドレスを識別させ、
前記複数のＩＰアドレスにおける各ＩＰアドレスに問い合わせ、
問い合わせに対する応答が受け取られた場合には、
前記応答した装置から管理情報ベースのデータを要求させ、
前記応答した装置に関連付けられた装置種別を識別させ、および、
前記応答した装置に関連付けられた前記装置種別に基づいて前記応答した装置から追加的情報を検索させる
コンピュータプログラムを格納することを特徴とするコンピュータ読み取り可能な１または複数の媒体。
【請求項４１】
問い合わせに対する応答が受け取られなかった場合には、その次のＩＰアドレスを問い合わせることを特徴とする請求項４０に記載のコンピュータ読み取り可能な１または複数の媒体。
【請求項４２】
前記装置種別は、ブリッジであることを特徴とする請求項４０に記載のコンピュータ読み取り可能な１または複数の媒体。
【請求項４３】
前記装置種別は、コンピュータ処理装置であることを特徴とする請求項４０に記載のコンピュータ読み取り可能な１または複数の媒体。
【請求項４４】
前記複数のＩＰアドレスは、ネットワーク環境に関連付けられたＩＰアドレスに対応することを特徴とする請求項４０に記載のコンピュータ読み取り可能な１または複数の媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
ここに記述されたシステムおよび方法は、ネットワーク環境において装置をディスカバリし、およびそれら装置の間の関係を判定する構成に関する。
【背景技術】
【０００２】
インターネットの使用が過去の数年で爆発的に普及し、かつ増大し続けている。人々は、電子メール、オンラインショッピング、ニュースおよび他の情報の収集、音楽の聴取、ビデオクリップの視聴、求職活動等のように、ＷＷＷ（World Wide Web）（または単に「ウェブ」）上に提供される多くのサービスを至極当然と感ずるようになっている。インターネットベースのサービスの増大する要求に歩調を合わせるため、ウェブサイトをホスティングし、これらサイトのバックエンド・サービスを提供し、およびこれらサイトに関連付けられたデータを格納することに特化したコンピュータ・システムにおいて大幅な発展がある。
【０００３】
分散コンピュータ・システムの１つの種類に、ＩＤＣ（Internet Data Center）が有る。これは、特別に設計されたセンタであり、インターネットベース・サービスのホスティングのため、多数のコンピュータを収容する。ＩＤＣは、「ウェブファーム」または「サーバファーム」とも呼ばれ、典型的には、何百台から何千台というコンピュータを温湿度管理された物理的に安全な建物の中に包含する。これらのコンピュータは、１または複数のインターネット・サービスまたはウェブサイトをサポートする１または複数のプログラムを動作させるために相互に結合される。ＩＤＣは、信頼できるインターネット・アクセス、高信頼度電源供給、および安全な動作環境を提供する。
【０００４】
特定のデータ・センタは、例えば、複合コンピュータ（汎用コンピュータなどの）、複合記憶装置、およびルータ、ハブ、ゲートウェイおよびスイッチなどの複合データ処理装置を含むことができる。種々の装置、およびコンピュータは、互いにおよびインターネットなどの他のネットワークと相互に結合され、これにより、データ・センタにおける種々の装置間のデータの通信を可能にする。
【発明の開示】
【発明が解決しようとする課題】
【０００５】
既存のシステムは、データ・センタにおいてコンピュータおよび他の装置に対するかなりの量の手動制御を利用する。例えば、新規リソース（コンピュータ・システムなどの）をデータ・センタに追加する場合に、新規リソースを組み込み、および新規リソースの利用可能性をデータ・センタにおける他の装置に通知するために、ある特定の手作業が実行される場合がある。これら手作業は、時間がかかり、もし管理者が他の仕事で忙しい場合には、しばらくの間実行されない場合がある。
【０００６】
従って、ネットワークにおいて、ネットワークトポロジをディスカバリし、および種々の装置を管理する、改善された技術が必要となる。
【課題を解決するための手段】
【０００７】
ここに記述されたシステムおよび方法は、ネットワーク環境において種々の装置をディスカバリし、およびこれら装置間の関係を判定する。また、このシステムおよび方法は、ネットワーク装置および通信リンクを監視して、ネットワークにおけるすべての装置に関する最新情報のデータベースを維持する。
【０００８】
一実施形態においては、ネットワークにおける複合装置が、その複合装置と関連付けられた接続情報とともに識別される。この接続情報は、階層構造に変換される。この実施形態においては、次に装置間の通信リンクを識別する。
【発明を実施するための最良の形態】
【０００９】
図全体を通して同じ参照番号は、同様なコンポーネントおよび／または機能を参照するために用いられる。
【００１０】
ここに論じられるシステムおよび方法は、ネットワーク環境における複合装置をディスカバリし、これら装置間の関係を識別することに関する。これらシステムおよび方法は、手作業により実行される、ある特定のタスクを自動化する。データベースは、ネットワーク環境における複合装置、および装置が互いに接続されている方法についての情報を維持する。
【００１１】
ここに論じられる種々の例は、ネットワークおよびネットワーク環境に言及する。ここに用いられるように、「ネットワーク」は、相互に接続された２またはそれ以上の装置の任意の集合であり、相互にデータを交換することができる。ＩＤＣなどのデータ・センタは、ネットワーク環境の１例を表わす。ネットワーク環境における種々の装置は、共通領域において位置する場合と、または異なる地理的場所において位置する場合がある。特定のネットワーク環境は、相互に接続された１または複数のサブネットワークを含むことができる。ここに論じられるネットワークは、任意のデータ通信プロトコルおよび任意の種類のデータ通信媒体を利用することができる。
【００１２】
ここに用いられるように、「ネットワーク装置」は、ネットワークに接続され、または含まれる任意の装置またはシステムである。また、ネットワーク装置は、ネットワーク・ノードとして言及される場合がある。ネットワーク装置の例は、任意の種類のコンピュータ・システム、記憶システム、ブリッジ、ルータ、スイッチ、ハブ、ネットワークディスカバリシステムなどを含む。
【００１３】
特定の実施形態において、ＳＮＭＰ（Simple Network Management Protocol）を用いて、種々のネットワーク装置間の通信を行う。ＳＮＭＰは、ネットワークを管理するためのプロトコルの集合である。ＳＮＭＰは、ＰＤＵ（Protocol Data Unit）と呼ばれるメッセージをネットワークの異なった部分に送出する。ＳＮＭＰに対応している装置（「エージェント」と呼ばれる）は、それら自身についてのデータをＭＩＢ（Management Information Base）に格納しており、このデータをＳＮＭＰの要求者に返送する。別の実施形態において、他のプロトコルを、ＳＮＭＰの代わりにまたは追加して用いることができる。
【００１４】
図１は、典型的なネットワーク環境１００を示す。ネットワークディスカバリシステム１０２は、ブリッジ１０４に接続されている。ここに記述されるように、ネットワークディスカバリシステム１０２は、ネットワーク環境において種々の装置をディスカバリし、およびネットワーク装置間の通信リンクをディスカバリすることが可能である。さらに、ネットワークディスカバリシステム１０２は、適切な動作をするようネットワーク装置を監視し、およびネットワークにおける装置およびこれら装置が互いに接続されている方法に関する情報についてのデータベースを維持する。ブリッジ１０４は、イーサネットまたはトークン‐リングなどの、共通のプロトコルを用いる同一ネットワークの２またはそれ以上のセグメントを結合する装置である。一実施形態において、ブリッジ１０４は、データを送信および受信する複合通信ポートを含む。ブリッジ１０４は、それぞれのポートに関連付けられた転送テーブルを維持する。各転送テーブルは、ポートに接続された他のネットワーク装置のアドレス（例えば、ＭＡＣアドレス）を含む。
【００１５】
ブリッジ１０４は、４つのコンピュータ処理装置１１２およびもう１台のブリッジ１０６に接続される。ブリッジ１０４は、例えば、ブリッジおよびコンピュータ処理装置の各々の間のバスまたは個別接続によりコンピュータ処理装置１１２に接続される。コンピュータ処理装置１１２は、サーバ、ワーク・ステーション、ラップトップ・コンピュータ、携帯コンピュータなどを含む任意の種類のコンピュータである。コンピュータ処理装置１１２の１つは、データを格納するために、記憶装置１１４に接続される。
【００１６】
ブリッジ１０６は、インターネット１１０、２台のコンピュータ処理装置１１２、およびもう１台のブリッジ１０８に接続される。ブリッジ１０８は、３台のコンピュータ処理装置１１２に接続される。図１において示されたネットワーク装置の配置は、ネットワーク環境１００において、任意のネットワーク装置が他の任意のネットワーク装置とデータを交換することを可能とする。
【００１７】
図１におけるブリッジ１０４、１０６および１０８は、少数のコンピュータ処理装置１１２に接続されるように示されるが、特定のブリッジは、任意の数のコンピュータ処理装置または他のネットワーク装置と接続することができる。ブリッジ１０４、１０６または１０８の一実施形態を、何百または何千という異なるネットワーク装置に接続することもできる。代替のネットワーク環境は、ルータ、ゲートウェイ、スイッチ、ハブなど、他の種類のネットワーク装置を含むことができる。
【００１８】
図２は、ネットワークディスカバリシステム１０２の一実施形態を例示するブロック図である。ネットワークディスカバリシステム１０２は、ディスカバリエンジン２０２、ネットワークデータを格納するための記憶装置２０４、ネットワーク監視装置２０６、および表示装置２０８を含む。ディスカバリエンジン２０２は、ネットワーク環境においてネットワーク装置をディスカバリし、ネットワーク装置間の通信リンクを識別し、およびネットワーク環境のトポロジを判定する。ディスカバリエンジン２０２により収集され、および生成されたデータは、記憶装置２０４に格納される。
【００１９】
ネットワーク監視装置２０６は、ディスカバリエンジン２０２と共に、ネットワーク環境を監視して、新規ネットワーク装置の付加、ネットワーク装置の撤去、およびネットワーク装置間の通信リンクに対する変更などのネットワークにおける変動を識別する。記憶装置２０４において格納されたデータは、ネットワーク監視装置２０６により更新され、ネットワーク環境１００における任意の変更を反映する。ネットワーク監視装置２０６は、表示装置２０８に接続され、ネットワークトポロジ、１または複数のネットワーク装置の状態、またはネットワークディスカバリシステム１０２により検索されまたは生成された他の任意の情報を、ユーザ（ネットワーク管理者など）が見ることを可能にする。ユーザ入力装置２１０は、また、ネットワーク監視装置２０６に接続され、ユーザがネットワーク監視装置に入力を供給することを可能とする。入力装置２１０は、例えば、キーボード、マウス、トラック・パッド、タッチ・パッドなどとすることができる。ネットワーク監視装置２０６は、ネットワーク管理者などのユーザが、ネットワークについての情報（例えば、記憶装置２０４に格納されたネットワーク情報）を検索することを可能にする。
【００２０】
ネットワークインタフェース２１２は、ディスカバリエンジン２０２に接続され、ディスカバリエンジンが、ネットワーク環境における他のネットワーク装置と通信することを可能にする。ネットワークインタフェース２１２は、ネットワーク環境１００における１または複数のネットワーク装置に接続される。
【００２１】
図３は、ネットワークにおける装置およびネットワークトポロジのトポロジをディスカバリする手順３００の一実施形態を例示するフローチャートである。手順３００を、例えば、ネットワークディスカバリシステム１０２において実施することができる。初めに、手順３００は、ネットワークにおいて装置を識別する（ブロック３０２）。以下に論じられるように、この識別は、例えば、種々のネットワーク・アドレス（ＩＰ（Internet Protocol）アドレスとも称される）の接続を確認（ping）することにより、実行することができる。次に、ネットワークにおけるこれら装置に関連付けられた接続情報を識別する（ブロック３０４）。以下に論じられるように、接続情報を、識別されたネットワーク装置の各々からの情報を検索することにより識別する。
【００２２】
ブロック３０６において、上述の識別された装置に関連付けられたスパニング情報を識別する。スパニングツリーは、スイッチなどの装置により、標準的なアルゴリズムを用いて生成される。一実施形態において、手順３００は、ネットワークにおいて１または複数の装置からスパニング情報を検索する。スパニングツリー情報は、物理的ネットワークトポロジの計算処理において有用である。スパニングツリー・プロトコルは、ネットワークにおいて望ましくないループを回避しつつ、パス冗長性を提供するリンク管理プロトコルである。例えば、イーサネット・ネットワークが適切に機能するためには、２つのネットワーク・ノードの間のアクティブなパスは、唯一であるべきである。２つのネットワークノードの間に複数のアクティブなパスが存在する場合には、結果としてループが生じる場合がある。ループが存在する場合には、メッセージの重複の可能性が存在する。スパニングツリー・プロトコルは、ある特定の冗長なデータ・パスを強制的にスタンドバイ（すなわち、閉塞状態）にする。さらに、ネットワークノード間の１または複数の双方向性の通信リンクを、一方向だけのリンクに切り替えることができる。
【００２３】
ブロック３０６においてスパニングツリー情報を識別した後に、図３の手順は、引き続きスパニングツリーに含まれる情報を用いることにより、ネットワーク装置間のリンクを識別する（ブロック３０８）。次に、物理的ネットワークトポロジを計算する（ブロック３１０）。ネットワークに関連付けられたネットワークトポロジ・データを記憶装置２０４（図２）などのデータベースに格納する（ブロック３１２）。最後に、手順３００は、格納されたネットワークトポロジ・データを用いてネットワークトポロジの表示を生成する（ブロック３１４）。ネットワークトポロジの表示を、表示装置上に表示し、プリンタに印刷し、またはネットワーク管理者または他のユーザのために提供することが可能である。ネットワークトポロジの表示を、将来の参照のために保存し、および／または別のシステムまたはユーザに伝達することができる。
【００２４】
ここに論じられた特定の例は、１または複数のスパニングツリーにおいて含まれる情報を利用するが、代替の実施形態は、他のプロトコル、および／またはネットワークにおいて望ましくないループを排除するプロセスを用いることもできる。
【００２５】
図４は、ネットワーク装置を識別し、およびネットワーク装置から情報を獲得する手順４００の一実施形態を例示するフローチャートである。初めに、手順４００は、ディスカバリするべきＩＰアドレスの範囲を識別する（ブロック４０２）。これは、連続するある範囲のＩＰアドレス、または連続しない任意の番号のＩＰアドレスとすることができる。ＩＰアドレスの範囲を、ネットワーク管理者により指定することができ、またはディスカバリエンジンは、全部のＩＰアドレス空間を走査することもできる。範囲内にある最初のＩＰアドレスを選択し、そのＩＰアドレスの接続を確認する（ブロック４０４）。応答が受け取られない場合には、範囲内にある次のＩＰアドレスを選択し、そのＩＰアドレスの接続を確認する（ブロック４１４）。
【００２６】
ＩＰアドレスの接続確認の後、応答が受け取られた場合には、そのＩＰアドレスに関連付けられたネットワーク装置に問い合わせて、そのＭＩＢデータを得る（ブロック４０８）。一実施形態において、この問い合わせは、装置のシステム・テーブル（図５に関連し以下で論じられる）からの情報を受け取るＳＮＭＰクエリーである。ＭＩＢは、例えば、ネットワーク管理システムにより監視することが可能なオブジェクトのデータベースである。ＭＩＢデータを受け取った後で、手順４００は、その装置種別に基づいて、ネットワーク装置から追加情報を検索する（ブロック４１０）。装置種別情報は、ネットワーク装置から受け取られるＭＩＢデータの一部である。例えば、装置種別がコンピュータ・システムである場合には、コンピュータ・システムに関する情報（例えば、プロセッサ種別、メモリ容量、ハード・ディスク記憶容量など）を検索する。装置種別がブリッジである場合には、ＭＩＢを用いてブリッジに特有な情報を提供する追加情報を検索する。
【００２７】
装置種別に基づいて装置から追加情報を検索した後で、ＭＩＢ情報および追加情報をシステムリンク・テーブルに格納する（ブロック４１２）。システムリンク・テーブルについては、以下に論じられる。次に、範囲内にある次のＩＰアドレスを選択し、そのＩＰアドレスの接続を確認する（ブロック４１４）。手順は、そのＩＰアドレスから応答が受け取られたかどうか判定するためにブロック４０６に戻る。
【００２８】
図５は、種々のネットワーク装置およびネットワーク装置間の通信リンクに関係があるデータを格納するデータ記憶構造を例示する。図５のデータ記憶構造を使用して、ネットワーク装置の階層を構築する。「システム」テーブル５０２は、ネットワーク装置に関する情報を維持するための主テーブルを表わす。システム・テーブル５０２において、「システムＩＤ」フィールドは、それぞれのシステム（または装置）に関連付けられる識別子である。「システムＩＤ」は、図５のデータ記憶構造の中で一意である。「システム種別ＩＤ」は、装置種別（例えば、コンピュータ、ブリッジなど）を識別する。「ディスカバリＩＤ」は、装置がディスカバリされる間のディスカバリプロセスの識別子である。「所有者ＩＤ」は、ネットワーク・リソース・マネージャーなど、装置の所有者を識別する。「管理ＩＰＡｄｒ」は、装置がディスカバリされたＩＰアドレスである。「ＯＩＤ」は、オブジェクトＩＤを意味し、装置に関連付けられた、製造業者、モデルなどを表わす。「名前」は、装置の名前である。「説明」は装置の説明を表わす。「アップタイム」は、装置がどれほど長い間「起きている」か、またはアクティブであるかについて識別する。「連絡先」は、その装置に関して責任があるユーザまたはオペレータを識別する。「位置」は、装置の物理的場所を識別する（例えば、ラック４、シェルフＢ）。「サービス」は、格納サービス、ルーティング・サービスなどの装置により提供されるサービスの種別を識別する。
【００２９】
「システムポート」テーブル５０４は、システム・テーブル５０２に関連付けられる。関連づけられたシステムまたは装置（システムＩＤにより識別される）の各ポートに対して個別のシステムポート・テーブル５０４がある。「ポート番号」は、装置上の特定のポート（例えば、ネットワーク通信ポート）を表わす。「種別」は、１０Ｍｂ／秒などのポート種別を識別する。「物理アドレス」は、ＭＡＣアドレス、ＰｈｙＮｅｔアドレスなどのポートのアドレスである。「速度」は、そのポートの通信速度である。「運用状態」は、ポートの最も最近に識別された状態である。
【００３０】
「ブリッジポート」テーブル５０６は、システム・テーブル５０２に関連付けられる。「指定されたルート」は、スパニングツリーの指定されたルートのアドレスである。「指定されたブリッジ」は、このポートがもう１つのブリッジに接続されている場合には、もう１つのブリッジのアドレスである。もう１つのブリッジに接続されていなければ、「指定されたブリッジ」はヌルである。「指定されたポート番号」は、もしあれば他のブリッジ上のポートである。「シングルトン転送アドレス」は、データを転送するための唯一のアドレスである。特定のブリッジポートのための転送テーブルが、唯一のアドレスを含む場合には、シングルトン転送アドレスの値は、そのアドレスにセットされる。さもなければ、シングルトン転送アドレスの値はヌルである。シングルトン転送アドレスは、スイッチ・ポートに接続された末端の装置を識別する際に有用である。
【００３１】
「ディスカバリ」テーブル５０８は、システム・テーブル５０２に関連付けられる。個別の「ディスカバリＩＤ」は、各ディスカバリプロセスの実行毎に関連付けられる。「開始時間」は、ディスカバリプロセスが開始された時間、および「終了時間」は、ディスカバリプロセスが終了した時間である。「状態」は、ディスカバリプロセスが成功したか否か、またはエラーが発生したか否かについて識別する。「開始メッセージ」および「終了メッセージ」は、ディスカバリプロセスの開始において、およびそのディスカバリプロセスの終了において生成されたメッセージを識別する。
【００３２】
「システムリンク」テーブル５１０は、システム・テーブル５０２に関連付けられる。システムリンク・テーブル５１０は、システムＩＤにより識別されたシステムに接続された種々のリンクに関する情報を含む。「発信元システムＩＤ」は、リンクの発信元を表わすシステムを識別し、および「発信元システムポート番号」は、そのリンクの発信元に関連付けられたポートを識別する。「宛先システムＩＤ」は、リンクの宛先であるシステムを識別し、および「宛先システムポート番号」は、そのリンクの宛先に関連付けられたポートを識別する。
【００３３】
「コンピュータ」テーブル５１２は、システム・テーブル５０２に関連付けられる。「ＳｍｂｉｏｓＵＵＩＤ」は、コンピュータに関連付けられた一意な識別子である。「名前」は、コンピュータの名前であり、および「ベンダ」は、コンピュータについての情報（インストールされたメモリ、プロセッサ種別およびハード・ディスクの数など）に加えて、コンピュータのベンダを識別する。
【００３４】
「ブリッジ」テーブル５１４は、システム・テーブル５０２に関連付けられる。「ベースブリッジアドレス」は、そのブリッジに関連付けられた一意な識別子である。「ポート数」は、ブリッジによりサポートされるポートの数を識別する。「ベース種別」は、発信元レベルブリッジなど、サポートされるブリッジの種別を識別する。「ルートブリッジアドレス」は、スパニングツリーのルートのアドレスである。
【００３５】
「所有者」テーブル５１６は、システムまたは装置の所有者に関係する情報を提供する。「システム種別」テーブル５１８は、システムの種類に特有な情報を提供する。
【００３６】
「ブリッジ」および「コンピュータ」は、ともに「システム」のサブタイプである。ここでは２つのサブタイプ（ブリッジおよびコンピュータ）のみが論じられるが、代替の実施形態では、「記憶装置」、「ロード・バランサー」、「ハードウェア」などの他のサブタイプ（そのすべてが同一システム・テーブルのサブタイプである）が含まれる。
【００３７】
図５において「＊」を付された項目は、一意な識別子（システムＩＤ、ディスカバリＩＤ、およびポート番号など）である。システムリンク・テーブル５１０におけるすべての項目は、関連付けられた「＊」を有し、それらの項目がすべてそのテーブルに対する主キーの部分であることを示す。
【００３８】
図５で例示されたデータ記憶構造を用いて、ネットワーク装置およびネットワーク装置間の通信リンクに関してディスカバリされた情報を格納する。格納された情報は、ネットワークトポロジが変更される都度（例えば、結果として新規の装置およびリンクを加えた場合に、または結果として既存の装置およびリンクを削除した場合に）更新される。
【００３９】
図４の手順を用い種々のネットワーク装置を識別した後で、ネットワークディスカバリシステムは、識別されたネットワーク装置の間の種々のリンクを計算する。リンク情報が計算されると、その情報は、図５のデータ構造に格納される。特に、リンク情報は、システムリンク・テーブル５１０に格納される。
【００４０】
図６は、図４の手順を用いて識別されたネットワーク装置に関連付けられたリンク情報を識別するための手順６００の一実施形態を例示するフローチャートである。ネットワーク装置に関連付けられた多数のスパニングツリーが存在する場合には、手順６００は、各スパニングツリーに対して実行される。初めに、手順６００は、第１のスパニングツリーのルートを識別する（ブロック６０２）。そのスパニングツリーのルートは、レベル１というマークを付けられる（ブロック６０４）。ブロック６０６において、前のレベル（すなわち、レベル１）に設定された指定されたポートを有する次のレベル（すなわち、レベル２）におけるすべてのネットワーク装置を識別する。次に、識別された装置に関連付けられたリンクを、システムリンク・テーブルに加える（ブロック６０８）。識別された装置は、レベル２というマークを付けられる（ブロック６１０）。次に、追加的レベルのネットワーク装置が存在するか否かを判定する（ブロック６１２）。追加的レベルが存在する場合には、現在のレベルを次のレベルに設定し（ブロック６１４）、手順は、ブロック６０６に戻り、前のレベルに設定されたポートを有するネットワーク装置を識別する。追加的レベルが存在しない場合には、手順はブロック６１６に分岐し、もしあれば次のスパニングツリーを選択する。図６の手順によりすべてのスパニングツリーが分析された後、システムリンク・テーブルを満たすためのプロセスが完了する。
【００４１】
図７は、ネットワーク装置をディスカバリするための手順７００の一実施形態を例示するフローチャートである。手順７００を、ユーザ要求に応答して、または、予め決定された時間期間の後、特定のイベントが発生した後、他の任意の起動条件の後に実行することができる。特定の実施形態においては、ネットワークディスカバリプロセスは、１０〜１５分ごとに実行される。ネットワークディスカバリプロセスを用いて、ネットワーク装置およびネットワーク環境における通信リンクの状態を監視する。ネットワーク装置および通信リンクの現在の状態（例えば、アクティブであるかまたは非アクティブであるか）を保持することにより、ネットワークディスカバリシステムは、ネットワークトポロジを正確に把握し続けることが可能となる。
【００４２】
ネットワークディスカバリ手順は、ブロック７０２において活性化される（または起動される）。手順では、現在のネットワークディスカバリプロセスに関連付けられた新規ディスカバリＩＤを生成する（ブロック７０４）。ディスカバリＩＤを、連続的に、または別の予め決定されたパターンに従って発行することができる。各ディスカバリＩＤは、一意である。
【００４３】
新規ネットワーク装置をディスカバリし、および新規ネットワーク・リンクを識別する（ブロック７０６）。これらの新規装置は、以前に接続の確認に応答しなかったＩＰアドレスに関連付けられる場合がある。新規装置がディスカバリされた場合には、その装置に、ディスカバリＩＤのタグが付けられる（ブロック７０８）。新規装置がディスカバリされなかった場合には、ブロック７１０に進み、すべての装置がディスカバリされたか否か（すなわち、ＩＰアドレスの全範囲が検索されたか）を判定する。すべての現在アクティブな装置がディスカバリされた場合には、手順は終了する。他方、ネットワーク装置のディスカバリを続け（ブロック７１２）、ブロック７０６に戻り、新規ネットワーク装置または新規ネットワーク・リンクがディスカバリされたか否かを判定する。
【００４４】
特定のネットワーク装置が以前にディスカバリされたが、しかし最近のネットワークディスカバリプロセスの間にはディスカバリされていない場合には、その装置の状態を「非アクティブ」に変えることができる。一実施形態において、ある特定の装置またはリンクから応答が１時間以上の間受信されなかった場合には、そのネットワーク装置の状態を「非アクティブ」に変更する。
【００４５】
図８は、コンピュータ処理環境８００の一例を例示する。コンピュータ処理環境８００は、ここに記述されたコンピュータ、ネットワークおよびシステム・アーキテクチャなどのデータカルーセルシステム（data carousel system）および方法を、完全にまたは部分的に実施することができる。例示的なコンピュータ処理環境８００は、コンピュータ処理システムの一例に過ぎず、ネットワーク・アーキテクチャの使用または機能性の範囲についてなんらかの限界を示唆するよう意図されたものではない。また、このコンピュータ処理環境８００が、この典型的なコンピュータ処理環境８００において例示された、コンポーネントのいずれか１つまたはその組み合わせに関連する依存性または要求条件を有しているように解釈されるべきではない。
【００４６】
コンピュータおよびネットワーク・アーキテクチャを、多数の汎用または特定用途のコンピュータ処理システム環境または形態において実施することが可能である。使用に適した可能性のある既知のコンピュータ処理システム、環境および／または形態の例は、これに限定するものではないが、パーソナルコンピュータ、サーバコンピュータ、シンクライアント、シッククライアント、ハンドヘルドまたはラップトップ装置、マルチプロセッサーシステム、マイクロプロセッサベースのシステム、セットトップボックス、プログラム可能な家庭エレクトロニクス、ネットワークＰＣ、ミニコンピュータ、メインフレームコンピュータ、ゲームコンソール、これらの任意のシステムまたは装置を含む分散コンピュータ処理環境などを含む。
【００４７】
コンピュータ処理環境８００は、コンピュータ処理装置８０２の構成で汎用目的のコンピュータ処理システムを含む。コンピュータ処理装置８０２の構成要素は、これに限定するものではないが、１または複数のプロセッサ８０４（例えば、任意のマイクロプロセッサ、コントローラなど）、システムメモリ８０６、およびプロセッサ８０４を含む種々のシステムコンポーネントをシステムメモリ８０６に接続するシステムバス８０８を含む。１または複数のプロセッサ８０４は、コンピュータ処理装置８０２の動作を制御し、および他の電子的コンピュータ処理装置と通信するために、コンピュータで実行可能な種々の命令を処理する。
【００４８】
システムバス８０８は、メモリバスまたはメモリコントローラ、ペリフェラルバス、アクセラレートグラフィックポート、および任意の種々のバスアーキテクチャを用いるプロセッサまたはローカルバスを含むいくつかの種類のバス構造の任意の数を表わす。例えば、このようなアーキテクチャは、ＩＳＡ（Industry Standard Architecture）バス、ＭＣＡ（Micro Channel Architecture）バス、ＥＩＳＡ（Enhanced ISA）バス、ＶＥＳＡ（Video Electronics Standards Association)ローカルバス、およびメザニン・バスとしても知られるＰＣＩ（Peripheral Component Interconnects）バスを含むことができる。
【００４９】
コンピュータ処理環境８００は、典型的には、種々のコンピュータで読み取り可能な媒体を含む。このような媒体は、コンピュータ処理装置８０２によりアクセス可能であり、かつ揮発性および不揮発性媒体、取り外し可能および不可能の媒体のいずれをも含む任意の選択可能な媒体であり得る。システムメモリ８０６は、ＲＡＭ（Random Access Memory）８１０のような揮発性メモリ、および／またはＲＯＭ（Read Only Memory）８１２のような不揮発性メモリの形態のコンピュータ読み取り可能な媒体を含む。ＢＩＯＳ（Basic Input/Output System）８１４は、起動の間などに、コンピュータ処理装置８０２の中の要素の間で、情報を転送するのを支援する基本的なルーチンを含み、ＲＯＭ８１２に格納される。ＲＡＭ８１０は、典型的には、処理ユニット８０４が、すぐにそれにアクセス可能であり、および／または現在それにより動作している、データおよび／またはプログラムモジュールを含む。
【００５０】
コンピュータ処理装置８０２は、また、他の取り外し可能／不可能の、揮発性／不揮発性のコンピュータ記憶媒体を含むことができる。例として、ハード・ディスク駆動装置８１６は、取り外し不可能の不揮発性の磁気媒体（図示しない）から読み出し、そこに書き込むために、磁気ディスク駆動装置８１８は、取り外し可能な不揮発性の磁気ディスク８２０（例えば、「フロッピーディスク」）から読み出し、そこに書き込むために、および光ディスク駆動装置８２２は、ＣＤ−ＲＯＭ、ＤＶＤ、または他の任意の種類の光学式媒体のような取り外し可能な不揮発性の光ディスク８２４から読み出し、そこに書き込むために含まれる。ハード・ディスク駆動装置８１６、磁気ディスク駆動装置８１８、および光ディスク駆動装置８２２は、それぞれシステムバス８０８に１台づつ、またはデータ媒体インタフェース８６０により多数が接続される。代わりに、ハード・ディスク駆動装置８１６、磁気ディスク駆動装置８１８、および光ディスク駆動装置８２２は、ＳＣＳＩインタフェース（図示しない）により、システムバス８０８に接続することができる。
【００５１】
ディスク駆動装置およびそれらに関連付けられたコンピュータで読み取り可能な媒体は、コンピュータで読み取り可能な命令、データ構造、プログラムモジュール、およびコンピュータ処理装置８０２のための他のデータの不揮発性の記憶装置を提供する。この例では、ハード・ディスク駆動装置８１６、取り外し可能な磁気ディスク８２０、および取り外し可能な光ディスク８２４を例示するが、磁気カセットまたは他の磁気記憶装置、フラッシュメモリカード、ＣＤ−ＲＯＭ、ＤＶＤ（Digital Versatile Disk）または他の光学的記憶、ＲＡＭ（Random Access Memory）、ＲＯＭ（Read Only Memory）、ＥＥＰＲＯＭ（Electrically Erasable Programmable Read-Only Memory）などの、コンピュータによりアクセス可能なデータを格納することができるコンピュータ読み取り可能な他の種類の媒体もまた、典型的なコンピュータ処理のシステムおよび環境を実施するために利用することができることを理解されたい。
【００５２】
例として、オペレーティングシステム８２６、１または複数のアプリケーションプログラム８２８、他のプログラムモジュール８３０、およびプログラムデータ８３２を含む任意の数のプログラムモジュールを、ハード・ディスク８１６、磁気ディスク８２０、光ディスク８２４、ＲＯＭ８１２、および／またはＲＡＭ８１０に格納することができる。このようなオペレーティングシステム８２６、１または複数のアプリケーションプログラム８２８、他のプログラムモジュール８３０、およびプログラムデータ８３２（またはそれらのいくつかの組み合わせ）の各々は、テストインスタンスシステム（test instantiation system）のためのシステムおよび方法の一実施形態を含むことができる。
【００５３】
コンピュータ処理装置８０２は、通信媒体であると認識される種々の、コンピュータで読み取り可能な媒体を含むことができる。通信媒体は、典型的には、搬送波または他の伝達メカニズムのような変調されたデータ信号において、コンピュータで読み取り可能な命令、データ構造、プログラムモジュール、またはその他のデータを具現化するものであり、かつ任意の情報配信媒体を含む。用語「変調されたデータ信号」とは、その信号中に情報を符号化するような方法により設定または変更された１または複数の特徴の集合を有する信号を意味する。これに限定されないが、例として、通信媒体は、有線ネットワークまたは直接配線接続などの有線媒体、および音波、ＲＦ、赤外線、および他の無線媒体などの無線媒体を含む。上記の任意の組み合わせもまた、コンピュータで読み取り可能な媒体の範囲内に含まれる。
【００５４】
キーボード８３４および指示装置８３６（例えば、「マウス」）などの入力装置により、ユーザは、コマンドおよび情報をコンピュータ処理装置８０２に入力することができる。他の入力装置８３８（特定して示されてはいない）は、マイクロホン、ジョイスティック、ゲームパッド、コントローラ、衛星放送アンテナ、シリアルポート、スキャナなどを含むことができる。これらおよび他の入力装置は、システムバス８０８に接続される入／出力インタフェース８４０により、処理ユニット８０４に接続されるが、他のインタフェース、およびパラレルポート、ゲームポート、および／またはＵＳＢ（Universal Serial Bus）などのバス構造により接続することもできる。
【００５５】
モニタ８４２または他の種類の表示装置を、ビデオアダプタ８４４などのインタフェースにより、同じくシステムバス８０８に接続することができる。モニタ８４２に加えて、他の出力周辺装置は、スピーカ（図示しない）およびプリンタ８４６などのコンポーネントを含むことができ、入／出力インタフェース８４０により、コンピュータ処理装置８０２に接続され得る。
【００５６】
コンピュータ処理装置８０２は、１または複数の遠隔コンピュータ処理装置８４８などの遠隔のコンピュータとの論理的接続を用いて、ネットワーク化された環境で動作することができる。例として、遠隔コンピュータ処理装置８４８は、パーソナルコンピュータ、携帯コンピュータ、サーバ、ルータ、ネットワークコンピュータ、ピア（peer）装置、または他の共通ネットワークノードなどとすることができる。遠隔コンピュータ処理装置８４８は、コンピュータ処理装置８０２に関連しここに記述された、多くまたはすべての要素および機能を含むことができるポータブルコンピュータとして例示される。
【００５７】
コンピュータ処理装置８０２と遠隔コンピュータ処理装置８４８との間の論理的接続は、ＬＡＮ（Local Area Network）８５０と一般的なＷＡＮ（Wide Area Network）８５２として描写される。このようなネットワーク化された環境は、オフィス、企業規模のコンピュータネットワーク、イントラネット、およびインターネットにおいて普及している。ＬＡＮネットワーク環境において実施される場合には、コンピュータ処理装置８０２は、ネットワークインタフェースまたはアダプタ８５４によりローカルなネットワーク８５０に接続される。ＷＡＮネットワーク環境において実施される場合には、コンピュータ処理装置８０２は、広域のネットワーク８５２を通して通信を確立するために、典型的にはモデム８５６または他の手段を含む。コンピュータ処理装置８０２に内蔵され、または外付けされ得るモデム８５６を、入／出力インタフェース８４０または他の適切な機構によりシステムバス８０８に接続することができる。例示されたネットワーク接続は、典型的なものであり、コンピュータ処理装置８０２および８４８の間に通信リンクを確立する他の手段を採用することが可能であることを理解されたい。
【００５８】
コンピュータ処理環境８００により例示された、ネットワーク化された環境において、コンピュータ処理装置８０２に関連して描写されたプログラムモジュールまたはその部分は、遠隔のメモリ記憶装置に格納される場合がある。例として、遠隔アプリケーションプログラム８５８が、遠隔コンピュータ処理装置８４８のメモリ装置に存在する。このようなプログラムおよびコンポーネントは、時とともにコンピュータ・システム８０２の異なる記憶装置コンポーネントに存在し、コンピュータのデータプロセッサにより実行されると認識されるが、ここでは例示の目的のため、アプリケーションプログラムおよび、オペレーティングシステムのような、他の実行可能なプログラム・コンポーネントは個別のブロックを構成するものとして例示される。
【００５９】
本発明の記述は、構造的な特徴および／または方法論的な行為に特有な言語を用いるが、添付された請求項で定義された本発明は、記述された特定の特徴または行為に限定されるものではないということを理解されるべきである。むしろ、これらの特定の特徴および行為は本発明を実施することについての典型的な形態として開示されている。
【図面の簡単な説明】
【００６０】
【図１】ネットワーク環境の例を示す図である。
【図２】ネットワークディスカバリシステムの一実施形態を例示するブロック図である。
【図３】ネットワークにおける装置およびネットワークのトポロジをディスカバリする手順の一実施形態を例示するフローチャートである。
【図４】ネットワーク装置を識別し、およびネットワーク装置から情報を獲得する手順の一実施形態を例示するフローチャートである。
【図５】種々のネットワーク装置およびネットワーク装置間の通信リンクに関係するデータを格納するデータ記憶構造を示す図である。
【図６】図４の手順を用いて識別されたネットワーク装置に関連付けられたリンク情報を識別する手順の一実施形態を例示するフローチャートである。
【図７】ネットワーク装置をディスカバリする手順の一実施形態を例示するフローチャートである。
【図８】コンピュータ処理環境の例を示す図である。
【符号の説明】
【００６１】
１０４、１０６、１０８：  ブリッジ
１１２：  コンピュータ処理装置
【図１】
2004326790.tif 000003
【図２】
2004326790.tif 000004
【図３】
2004326790.tif 000005
【図４】
2004326790.tif 000006
【図５】
2004326790.tif 000007
【図６】
2004326790.tif 000008
【図７】
2004326790.tif 000009
【図８】
2004326790.tif 000010