(57)【特許請求の範囲】
【請求項１】
データ通信ネットワーク内でサービスを提供する遊休ネットワーク・デバイスを示すための方法であって、データ処理システムにおいて、
ネットワーク・デバイスに対して確立された各接続について、前記接続についてのソース・デバイス識別子及び宛先デバイス識別子と、前記接続についてのサービス・プロバイダ及びサービス・コンシューマを識別するデータと、前記接続上のトラフィック・フロー率を示すトラフィック率データとを含む、ネットワーク・トラフィック・データを受け取ることと、
事前定義された接続についてのデータを除外するように、前記ネットワーク・トラフィック・データをフィルタリングすることと、
前記フィルタリングされたデータによって示される前記デバイス間の前記接続がグラフのノード間のリンクによって表され、かつ前記接続についての前記トラフィック率データが前記グラフ内の前記対応するリンクに関連付けられるグラフを、前記フィルタリングされたデータから生成することと、
前記ネットワーク内部のデバイスを表すその他のいかなるノードにも接続されていない相互接続されたノードのいずれかの集合を識別するように、前記グラフを解析することと、
前記ネットワークの外部から前記集合へのいずれかのリンクに関連付けられたトラフィック率データに応じた出力を生成することによって、いずれかの遊休ネットワーク・デバイスを示すことと
を含む方法。
【請求項２】
ネットワーク・デバイスの遊休率を減らすように、前記出力に応じて前記ネットワークを再構築することと
を更に含む
請求項１に記載の方法。
【請求項３】
ネットワーク・デバイスの遊休率を減らすように、前記出力に応じて、全体としてのデバイス利用率を向上させるために、ハードウェア又はソフトウェアを除去し、修正し、統合し、又は移動することで前記ネットワークを再構築することと
を更に含む
請求項１に記載の方法。
【請求項４】
前記ネットワークを監視して、前記ネットワーク・トラフィック・データを生成することを更に含む、請求項１乃至３のいずれかに記載の方法。
【請求項５】
前記事前定義された接続が、所定のルーチン・サービスを前記ネットワーク内の前記デバイスに提供する１つ又は複数のネットワーク・デバイスへの接続を含む、請求項１乃至４のいずれかに記載の方法。
【請求項６】
前記事前定義された接続が、ブロードキャスト・トラフィックを伝える接続を含む、請求項１乃至５のいずれかに記載の請求項に記載の方法。
【請求項７】
前記事前定義された接続が、前記サービス・プロバイダが前記ネットワークの外部に存在する接続を含む、請求項１乃至６のいずれかに記載の方法。
【請求項８】
前記出力を、前記ネットワークの外部から前記集合へのリンクに関連付けられたトラフィック率データによって示される前記トラフィック・フロー率を所定の閾値と比較することによって生成することを更に含み、前記出力は、前記トラフィック・フロー率が前記閾値を下回る場合に、前記集合内の少なくとも１つのデバイスが遊休状態であることを示す、請求項１乃至７のいずれかに記載の方法。
【請求項９】
前記出力を、前記ネットワークの外部から前記集合への少なくとも１つのリンクによって表される少なくとも１つの接続を示すユーザ入力に応答して生成することを含み、前記出力は、前記少なくとも１つの接続に関連付けられたいずれかの遊休ネットワーク・デバイスの指標である、請求項１乃至８のいずれかに記載の方法。
【請求項１０】
前記グラフを解析することが、前記グラフに対して深さ優先探索を実行することと、前記探索においてトラバースされたノードにマーク付けすることとを含み、前記マーク付けされたノードは、前記探索において再びトラバースされない、請求項１乃至９のいずれかに記載の方法。
【請求項１１】
前記ソース・デバイス識別子及び前記宛先デバイス識別子が、それぞれ、前記接続についてのソースＩＰアドレス及び宛先ＩＰアドレスを含む、請求項１乃至１０のいずれかに記載の方法。
【請求項１２】
前記接続についての前記サービス・プロバイダ及び前記サービス・コンシューマを識別する前記データが、前記接続についてのサービス・プロバイダ識別子及びサービス・コンシューマ識別子を含む、請求項１乃至１１のいずれかに記載の方法。
【請求項１３】
前記サービス・プロバイダ識別子及び前記サービス・コンシューマ識別子が、それぞれ、宛先ポート番号及びソース・ポート番号を含む、請求項１２に記載の方法。
【請求項１４】
前記出力を、前記ネットワークの外部から前記集合への少なくとも１つのリンクによって表される少なくとも１つの接続を示すユーザ入力に応答して生成することを含み、
前記ユーザ入力が、前記少なくとも１つの接続を示すための少なくとも１つのポート番号を含む、請求項１３に記載の方法。
【請求項１５】
請求項１乃至１４のいずれかに記載の方法をコンピュータに実行させるコンピュータ・プログラム。
【請求項１６】
データ通信ネットワーク内でサービスを提供する遊休ネットワーク・デバイスを示すためのデータ処理システムであって、
ネットワーク・デバイスに対して確立された各接続について、前記接続についてのソース・デバイス識別子及び宛先デバイス識別子と、前記接続についてのサービス・プロバイダ及びサービス・コンシューマを識別するデータと、前記接続上のトラフィック・フロー率を示すトラフィック率データとを含むネットワーク・トラフィック・データを格納するためのメモリと、
事前定義された接続についてのデータを除外するように、前記ネットワーク・トラフィック・データをフィルタリングし、
前記フィルタリングされたデータによって示される前記デバイス間の前記接続がグラフのノード間のリンクによって表され、かつ前記接続についての前記トラフィック率データが前記グラフ内の前記対応するリンクに関連付けられグラフを、前記フィルタリングされたデータから生成し、
前記ネットワーク内部の前記デバイスを表すその他のいかなるノードにも接続されていない相互接続されたノードのいずれかの集合を識別するように、前記グラフを解析し、
前記ネットワークの外部から前記集合へのいずれかのリンクに関連付けられたトラフィック率データに応じた出力を生成することによって、いずれかの遊休ネットワーク・デバイスを示す
ように構成された制御論理と
を含むシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般に、データ通信ネットワーク内でサービスを提供する遊休（ｕｎｄｅｒｕｔｉｌｉｚｅｄ）ネットワーク・デバイスの識別に関する。ネットワークを再構築して効率を向上させることを目的として、遊休ネットワーク・デバイスを識別するための方法、装置及びコンピュータ・プログラムが提供される。
【背景技術】
【０００２】
現代の情報技術（ＩＴ）環境における大きな課題は、エネルギー効率である。このことは、現代のグリーンＩＴプロジェクトの大部分が、一般に、データセンタ及びデータ通信ネットワークといったＩＴ環境の効率を高めることを目標としているという事実に反映される。効率を高めるためには、例えば、データセンタにおいて高度な冷却システムを使用すること、又はネットワーク・デバイスを仮想化することによって単一の物理マシンを複数の仮想マシンに論理的に分割することなど、様々な方法がある。効率を向上させるための一見簡単そうに見えるアイデアは、使用されていないハードウェアを廃止することである。しかしながら、このアイデアを実用上で実施することは、決して簡単なことではない。重要な問題は、遊休デバイス、即ち、使用されていない又は所望のレベルまで使用されていないデバイスを、典型的なネットワーク・システムのデバイスの数、サービス、及び全体としての動作の複雑さを念頭において、どのようにして識別するかである。データセンタは、例えば、何千ものサービスをホストする数千のコンピュータ・システムを収容することができる。１つの公知の技術は、各々の個別のデバイスに対して監視を実行して利用率を追跡することであり、これは、通常、使用パターンが変動する、主プロセッサ、ネットワーク・インターフェース、ディスクドライブ又はその他のコンポーネントの状態を監視することによる。しかしながら、この監視プロセスは複雑であり、その技術は難しく、また、所与のネットワーク内の必要とされるシステムにまだインストールされていない場合には、セットアップに時間がかかる。ネットワークの管理者は、ＩＴインベントリの詳細な解析によっても、デバイスの利用率を評価することができるはずである。しかしながら、十分かつ正確に維持されたインベントリは、あるいは実際のところどんなインベントリも、まったく利用可能にはなっていないであろう。個別デバイスの監視システムの事後インストールと同様に、目的のために特化した適切なインベントリを生成することは、過大な労力を要し、又は法外な費用がかかることになろう。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
本発明の目的は、ネットワークを再構築して効率を向上させることを目的として、遊休ネットワーク・デバイスを識別するための方法、装置及びコンピュータ・プログラムを提供することである。
【課題を解決するための手段】
【０００４】
本発明の第１の態様は、データ通信ネットワーク内でサービスを提供する遊休ネットワーク・デバイスを示すための方法を提供する。この方法は、データ処理システムにおいて、
ネットワーク・デバイスに対して確立された各接続について、その接続についてのソース・デバイス識別子及び宛先デバイス識別子と、その接続についてのサービス・プロバイダ及びサービス・コンシューマを識別するデータと、その接続上のトラフィック・フロー率を示すトラフィック率データとを含む、ネットワーク・トラフィック・データを受け取ることと、
事前定義された接続に関するデータを除外するように、ネットワーク・トラフィック・データをフィルタリングすることと、
フィルタリングされたデータによって示されるデバイス間の接続がグラフのノード間のリンクによって表され、かつ上記接続についてのトラフィック率データがグラフ内の対応するリンクに関連付けられるグラフを、フィルタリングされたデータから生成することと、
ネットワーク内部のデバイスを表すその他のいかなるノードにも接続されていない相互接続されたノードのいずれかの集合を識別するように、グラフを解析することと、
ネットワーク外部から上記集合へのいずれかのリンクに関連付けられたトラフィック率データに応じた出力を生成することによって、いずれかの遊休ネットワーク・デバイスを示すことと
を含む。
【０００５】
本発明を具体化する方法は、基本的なネットワーク・トラフィック・データに基づいて動作することによって、遊休ネットワーク・デバイスを識別し、かつ示すことができる。トラフィック・データは、対象ネットワーク内のデバイスに対して確立された各接続について、単に、ソース・デバイス及び宛先デバイスを識別し、サービス・プロバイダ及びサービス・コンシューマを示し、トラフィック・フロー率に関する情報を提供するものとすることができる。このようなトラフィック・データは、さらに後述するように、ネットワークに関して、一般に利用可能であり、又は入手することが可能である。最初にトラフィック・データをフィルタリングして、事前定義された接続に関連するデータを除外することができる。本発明の実施形態によると、事前定義された接続は、非意味論的接続である。これらは、実行される効用評価に対して意味論的に関連があるとはみなされない種類の接続である。次に、フィルタリングされたデータからグラフが生成され、このグラフは、デバイス間の接続を表すリンク及びノードを含み、接続についてのトラフィック率データは、適切なリンクに関連付けられる。次に、このグラフを解析して、以下「アイランド」と呼ばれる特定のエンティティを識別する。アイランドは、対象ネットワーク内部のデバイスを表すその他のいかなるノードにも接続していない、グラフ内の相互接続された（１つ又は複数の）ノードの集合である。従って、これらのアイランドは、対象ネットワークの外部のノードへのリンクのみを有し得る、隔離されたノードの集合である。効用評価の基礎を形成するのは、これらのアイランドである。特に、本発明の実施形態は、ネットワーク外部からのアイランドへのいずれかのリンクに関連付けられたトラフィック率データに応じた出力を生成することによって、遊休ネットワーク・デバイスを示す。これは、単一の遊休デバイスだけではなく遊休デバイスの群も識別するための、実用的かつ効率的なシステムを構成する。例えば、ウェブ・サーバと、アプリケーション・サーバと、データベースとから成る典型的なウェブ・サービス・インストレーションについて考える。たとえシステムが使用されていなくても、そのウェブ・サービス・インストレーションを実装する個別のコンピュータ上には、ある程度のネットワーク・トラフィック、ＣＰＵの使用又はより一般的なシステムの使用がなお存在するはずである。個別のコンピュータを監視する公知の技術は、これらのデバイスを、使用されていないものとしては識別しないであろう。対照的に、アイランド・ベースの技術は、構成要素であるデバイスがアイランド外部のデバイスによって使用されていないことを識別することができる。本発明を具体化する方法は、したがって、遊休ネットワーク・デバイスを識別する効率が高い。多数のデバイスを個別に観察する代わりに、観察ポイントの数は、１つ、つまり対象ネットワークにまで効果的に減らされる。さらに、動作のために必要とされるのは、基本的で容易に入手可能なネットワーク・トラフィック・データのみなので、本発明の実施形態は、過度の労力又は経費をかけずに、既存のネットワーク内で容易に使用することができる。
【０００６】
本発明を具体化する方法が適用されるネットワークは、一般に、効用を評価すべき、相互接続されたデバイスのあらゆる集合を含むことができ、従って、１つ又は複数の固有ネットワーク（ｐｒｏｐｒｉｅｔａｒｙ  ｎｅｔｗｏｒｋ）又はインターネットワークの全て又は一部を構成し得る。ネットワーク・デバイス自身は、一般に、現実のデバイス及び仮想デバイスの両方を含むことができる。従って、所与のデバイスは、それ自体で物理マシンを構成するものであってもよく、又は単一の物理マシンのハードウェア・リソースを共有する仮想マシンであってもよい。例えば、単一の物理マシン上で区分方式で稼働する多重ＯＳ（オペレーティング・システム）インスタンスは、本発明の実施形態においては、異なるデバイスとして扱うことができる。また、所与のデバイスはいずれも、一般にネットワーク内で１つ又は複数のサービスを提供することができ、所与のサービスはいずれも、単一のデバイスによって提供されてもよく、又はデバイスの群によって集合的に提供されてもよい。多くのサービス、例えば、あるリソースへのアクセスを提供し、ある要求された動作を実行し、又はある要求された情報若しくは機能を供給するサービスを、ここで想定することができる。
【０００７】
一般に、上述の基本的なデータを提供するいかなるネットワーク・トラフィック・データも、本発明の実施形態において利用することができる。特定の例は、ＮｅｔＦｌｏｗネットワーク・プロトコル又はＩＥＴＦ（インターネット・エンジニアリング・タスク・フォース）標準インターネット・プロトコル・フロー情報エクスポート（ＩＰＦＩＸ）によって生成されたトラフィック記録である。このようなシステムがネットワーク内で既に動作している場合には、所望の動作期間にわたって生成されたトラフィック記録を、本発明を具体化する方法のための入力として用いることができる。あるいは、このようなトラフィック・フロー監視システムは、本発明の実施形態における使用のために容易にネットワークにインストールすることができる。
【０００８】
本発明を具体化する方法は、ネットワークを監視して、ネットワーク・トラフィック・データを生成するステップを含むことができる。ネットワーク動作中のデバイス利用率を監視するために、動的に生成されたネットワーク・トラフィック・データに応答して動的に（例えば、所望の間隔で）効用評価プロセスを実行する実施形態を想定することができる。代替的な実施形態は、例えば、ネットワークの統合又はその他のある種の再構築プロセスに先立つ単発プロセスとして、以前のネットワーク動作期間のデータに基づいてオフラインで実施することができる。いずれにしても、ネットワーク内のいずれかの遊休ネットワーク・デバイスを示す生成された出力を用いて、それに応じてネットワークを再構築することができる。従って、本発明の第２の態様は、データ通信ネットワークを再構築するための方法を提供する。この方法は、
本発明の第１の態様による方法を実行して、遊休ネットワーク・デバイスを示す上記の出力を生成することと、
ネットワーク・デバイスの遊休率（ｕｎｄｅｒｕｔｉｌｉｚａｔｉｏｎ）を減らすように、上記出力に応じてネットワークを再構築することと
を含む。一般に、ネットワーク再構築プロセスは、全体としてのデバイス利用率を向上させるために、ハードウェア又はソフトウェア、例えばサービス・アプリケーションを除去し（廃止）、修正し、統合し、移動し、又はそれ以外の方法で適合することを含むことができる。状況に応じて、再構築プロセスは、ソフトウェア制御の下で自動的に実施されてもよく、若しくは出力に応答してネットワーク管理者によって実行されてもよく、又はこれらの２つの手法の組み合わせを用いてもよい。
【０００９】
当該ネットワークに応じて、フィルタリング・プロセスにおいて除外するための、種々の非意味論的接続を事前に定義することができる。一般に、デバイス利用率の評価にとって意味がある又は重要であるとはみなされないいかなる接続も、非意味論的であるとみなされ、除外のために指定することができる。特に、例えば意味論的に何も存在しないところにアイランド間のリンクを作成することによって、ネットワークを表すグラフ内のアイランドを不明瞭にするか又は覆い隠す傾向がある接続を、ここで除外のために事前に定義することができる。これについては、好ましい実施形態において事前定義される種々の非意味論的接続に関連して、さらに後述する。
【００１０】
上述のようないずれかのアイランドを識別するためのグラフの解析に続いて、ネットワーク外部からアイランドへのいずれかのリンクに関連付けられたトラフィック率データに応じた出力を生成することによって、遊休ネットワーク・デバイスが示される。所与のアイランドについて、このような外部ノードへのリンクが存在しない場合があり、これはそのアイランドが使用されていないことを示す。外部ノードへの少なくとも１つのリンクでも存在する場合には、そのリンクに関連付けられたトラフィック率データは、そのトラフィック率データが属する接続に関連付けられたサービスによる、アイランド内の１つ又は複数のデバイスの遊休率を示唆することができる。いずれにしても、出力は、様々な方式で遊休デバイスを示すことができる。非常に単純な例においては、遊休デバイスは、アイランド・デバイスに関連付けられたトラフィック・フロー率を単に示す出力によって暗黙的に示すことでき、これにより、オペレータは、望ましくないほど低いトラフィック・レベルを識別することができる。しかしながら、好ましい実施形態においては、出力は、遊休デバイスを明示的に示す。特に、トラフィック率データによって示されたトラフィック・フロー率を所定の閾値と比較することができる。トラフィック・フロー率が閾値よりも小さい場合には、出力は、そのトラフィック率データに関連付けられた集合内の１つ又は複数のデバイスを遊休状態として識別することができる。いずれの所与のアイランドについても、そのアイランドに関連付けられたデバイス又はサービスの全て又は部分集合のみについての出力を生成することができる。例えば、対象デバイス／サービスを指示し、適用される閾値を指定する、ユーザ入力に応答して、出力を生成することができる。
【００１１】
別の選択肢を想定することもできるが、ＩＰ（インターネット・プロトコル）ネットワーキング・シナリオにおいて、ネットワーク・トラフィック・データ内のソース及び宛先デバイス識別子は、各接続についてのソース及び宛先ＩＰアドレスを含むことが好都合であり得る。ある接続についてのサービス・プロバイダ及びサービス・コンシューマを識別するデータが、単にプロバイダとコンシューマとを区別するいずれかのデータであり得る実施形態を想定することができる。しかしながら、より普通には、このデータは、その接続についてのサービス・コンシューマ識別子及びサービス・プロバイダ識別子を含む。これらは、ＩＰシナリオにおいては、ソース及び宛先ポート番号を含むことが好都合であり得る。一般に、トラフィック率データは、トラフィック・フロー率の指標となるあらゆるデータを含むことができる。このデータは、トラフィック・フロー率を直接又は間接的に示すことができる。例えば、このデータは、単に、その接続を介して送信されたバイト、パケット又はその他の定義されたデータ単位の数（最も好ましくはバイト数）の指標を、接続時間の指標と共に含むものとすることができ、これにより、ある時間にわたるトラフィック量を判定することができる。効用評価のために所望であれば、追加のデータをここに含めることも当然可能である。
【００１２】
本発明の第３の態様は、データ通信ネットワーク内でサービスを提供する遊休ネットワーク・デバイスを示すためのデータ処理システムを提供する。このシステムは、ネットワーク・デバイスに対して確立された各接続について、その接続についてのソース・デバイス識別子及び宛先デバイス識別子と、その接続についてのサービス・プロバイダ及びサービス・コンシューマを識別するデータと、その接続上のトラフィック・フロー率を示すトラフィック率データとを含むネットワーク・トラフィック・データを格納するためのメモリを含む。このシステムは、
事前定義された接続に関するデータを除外するように、ネットワーク・トラフィック・データをフィルタリングし、
フィルタリングされたデータによって示されるデバイス間の接続をグラフのノード間のリンクによって表し、かつ上記接続についてのトラフィック率データがグラフ内の対応するリンクに関連付けられるグラフを、フィルタリングされたデータから生成し、
ネットワーク内部のデバイスを表すその他のいかなるノードにも接続されていない相互接続されたノードのいずれかの集合を識別するように、グラフを解析し、
ネットワーク外部から上記の集合へのいずれかのリンクに関連付けられたトラフィック率データに応じた出力を生成することによって、いずれかの遊休ネットワーク・デバイスを示す
ように適合された制御論理をさらに含む。
【００１３】
本発明を具体化するデータ処理システムは、１つ又は複数の処理デバイスによって実装することができる。特に、本発明の第４の態様は、本発明の第１の態様又は第２の態様による方法をコンピュータに実行させるためのプログラム・コード手段を含む、コンピュータ・プログラムを提供する。「コンピュータ」という用語は、最も一般的な意味で用いられ、コンピュータ・プログラムを実施するためのデータ処理能力を有する、任意のデバイス、コンポーネント又はシステムを含む。さらに、本発明を具体化するコンピュータ・プログラムは、独立したプログラムを構成することも、又はより大きなプログラムの要素とすることもでき、又はコンピュータ内にロードするために供給すること、例えば、ディスクのようなコンピュータ可読媒体内で、又は電子的な伝送において、具体化することができる。コンピュータ・プログラムのプログラム・コード手段は、当該方法を、直接、又は（ａ）別の言語、コード若しくは表記法への変換、及び（ｂ）異なる材料形態での再生のいずれか又は両方の後に、コンピュータに実行させることを意図した命令の集合の、任意の言語、コード又は表記法での任意の表現を含むことができる。
【００１４】
一般に、本明細書において、本発明の１つの態様の実施形態を参照して特徴が説明されている場合、対応する特徴が、本発明の別の態様の実施形態において提供され得る。
【００１５】
本発明の好ましい実施形態について、添付の図面を参照して、例としてここで説明する。
【図面の簡単な説明】
【００１６】
【図１】本発明を具体化するネットワーク最適化システムが使用されるネットワーク・システムの概略的表現である。
【図２】図１の実施形態において実行される効用評価プロセスの重要なステップを示す。
【図３】図２のプロセスのフィルタリング・ステージのより詳細なステップを示す。
【図４】図２のプロセスにおけるグラフの探索を示す図である。
【図５】図２のプロセスによって検出された図１のネットワーク内のアイランドについてのトラフィック・フローの概略的表現である。
【発明を実施するための形態】
【００１７】
図１は、本発明を具体化するネットワーク最適化プロセスが使用される例示的なネットワーク・システムの簡略化された略図である。システム１は、ネットワーク最適化プロセスの一部としてその効用が評価される複数のネットワーク・デバイス３を収容する、ネットワーク２を含む。デバイス３は、他のデバイスがネットワーク２を介してアクセスすることができる種々のサービスを、個別に又は群で提供する。これらのサービスにアクセスするデバイスは、ネットワーク２の内部にあっても又は外部にあってもよい。特に、ネットワーク内部のデバイス３は、図中、外部ネットワーク４によって単純化して表される１つ又は複数の他のネットワーク内のデバイスと通信することができる。一般に、ネットワーク２は、対象領域内（「範囲内（ｉｎ−ｓｃｏｐｅ）」）の相互接続されたデバイス３の任意の集合を表すことができ、したがって、１つ又は複数の定義されたネットワーク又はインターネットワークの全て又は一部を構成することができる。外部ネットワーク４は、典型的には、ネットワーク２に接続する全ての外部デバイスを含み、１つ又は複数の定義されたネットワーク又はインターネットワークを含むこともできるが、一般には、ネットワーク４は、所与のシステムにおいて所望に応じて定義することができる。この例においては、ネットワーク２は、外部ネットワーク４にサービスを提供する所有ネットワークと仮定される。
【００１８】
システム１は、ネットワーク２内のトラフィックを監視するネットワーク・モニタ５を含む。この例においては、ネットワーク・モニタ５は、周知のＮｅｔＦｌｏｗネットワーク・プロトコルに従ってネットワーク２内のスイッチ、ルータ等（図示せず）のような交換ポイントによって転送されるトラフィック・フロー情報を管理する。ネットワーク・モニタ５は、この例においてはネットワーク監視ソフトウェアを稼働する汎用コンピュータによって実装されており、監視プロセスを調整し、得られたＮｅｔＦｌｏｗトラフィック記録を関連付けられたデータベース６内に格納する。
【００１９】
ネットワークの性能を最適化することを目的としてネットワーク２の効率を評価するために、効用評価システム７がシステム１内に設けられる。効用評価システム７は、ネットワーク２内で遊休状態であるいずれかのデバイス３、即ち、使用されていないか又は所望のレベルまで活用されていないデバイスを検出するように動作する。効用評価システム７は、制御論理を、システム７の動作を全般的に制御する、説明される効用評価プロセスの重要なステップを実施する解析コントローラ８の形態で含む。一般には、解析コントローラ８の制御倫理は、ハードウェア、ソフトウェア又はそれらの組み合わせとして実装することができる。しかしながら、この例においては、効用評価システム７は、汎用コンピュータによって実装され、解析コントローラ８は、そのコンピュータを説明される機能を実行するように構成するソフトウェアによって実装される。適切なソフトウェアは、本明細書の説明から当業者には明らかとなろう。システム７はまた、さらに後述するように効用評価プロセスにおいて用いられる種々のデータを格納するためのメモリ９と、ユーザ・インターフェースを提供するＩ／Ｏ（入力／出力）１０とを含む。Ｉ／Ｏシステム１０は、ここでは、コンピュータ７に関連付けられた通常のキーボード及びディスプレイによって実装することができる。
【００２０】
動作中、ネットワーク２の効率を評価すべきときに、解析コントローラ８は、ネットワークの所望の動作期間にわたるネットワーク・トラフィック・データを取得する。このトラフィック・データは、ネットワーク・モニタ５から、当該期間にわたってデータベース６内に格納されたＮｅｔＦｌｏｗトラフィック記録の形態で取得される。システム７のその後の動作は、図２のフローチャート内に示される。図２のステップ２０において、ＮｅｔＦｌｏｗデータが、解析コントローラ８によって受け取られ、効用評価プロセスにおいて用いられる重要なトラフィック・データは、メモリ９内に格納される。このトラフィック・データは、ネットワーク２内のデバイス３に対して確立された（即ち、デバイス３へ又はデバイス３からの）各接続に関する種々の情報を含む。具体的には、各接続についてのソース及び宛先デバイスは、ソース及び宛先ＩＰアドレスによって識別される。接続についてのソース及び宛先ポート番号は、そのためにその接続が確立された特定のサービスを識別し、そのサービスについて、ソース・デバイス及び宛先デバイスのうちのどちらがサービス・プロバイダであり、どちらがサービス・コンシューマであるかを識別する。接続上のトラフィック・フロー率は、この例においては、その接続を介して通信された全データ・バイト数を接続時間と共に指定するトラフィック率データによって示される。
【００２１】
図２のステップ２１において、解析コントローラ８は、ステップ２０において格納されたトラフィック・データをフィルタリングして、事前定義された接続、特に事前定義された非意味論的接続に関連するデータを除外する。これらの非意味論的接続は、実行される効用評価にとって意味があるとはみなされない接続である。このような接続は、デバイス間の意味論的従属性を覆い隠す傾向があり、後述のプロセスにおいて、アイランドの識別を妨げる。非意味論的接続は、解析コントローラ８において事前に定義される。例えば、非意味論的接続の型式のリストを用いて、解析コントローラ８を予め設定することもでき、及び／又は、所与のネットワークについてのこのような接続を、Ｉ／Ｏインターフェース１０を介したオペレータの入力によって定義することもできる。本例においては、フィルタリング・ステージ２１は、３つの主要なフィルタリング・ステップから成る。フィルタリング・ステージの３つのステップは、図３でより詳細に示される。
【００２２】
図３のステップ２１ａは、第１のフィルタリング・ステップを表す。このステップは、いわゆる「共通共有ホスト」への接続に関連したトラフィック・データを除外することを伴う。これらは、所定のルーチン・サービスをネットワーク・デバイス３に提供するデバイスである。このようなルーチン・サービスは、例えば、ネットワーク２内の侵入検出システムによって提供される、脆弱性スキャン等のようなセキュリティ監視サービスを含むことができる。共通共有ホストの他の例は、例えば昼食のメニューのような頻繁にアクセスされる情報をネットワークに発行する企業内ウェブ・サーバ、又は日常的なソフトウェア更新をネットワーク・ホストに提供するソフトウェア更新サーバであり得る。その他の多くの例をここで想定することができる。共通共有ホストによって提供されるルーチン・サービスは、全てのネットワーク・デバイスに対して定期的にも提供される傾向があり、その結果として生じる接続は、ネットワーク・デバイス間の意味論的な相互関係を覆い隠す傾向があり、その後の解析を誤った方向に導く従属性を生じさせる。特に、共通共有ホストへの接続は、意味論的には何も存在しないところにアイランド間のリンクを作成することによって、後述のようなネットワークを表すグラフにおけるアイランドを不明瞭にするか又は覆い隠す傾向がある。事前定義された共通共有ホストについてのこれらの影響を除外することによって、フィルタリング・ステージのステップ２１ａは、後続のプロセスの効力を著しく向上させることができる。
【００２３】
第２のフィルタリング・ステップは、図３のステップ２１ｂによって表され、同様の目的を有する。このステップは、ブロードキャスト・トラフィックを伝える接続に関連したトラフィック・データを除外することを伴う。（「ブロードキャスト」という用語は、ここでは、現在適用可能な標準において厳密に定義されたブロードキャスト通信のみならず、非標準ブロードキャスト、例えば、ウィンドウズ環境におけるＳＭＢ（サーバ・メッセージ・ブロック）ネーム・サービス・トラフィック、及びマルチキャスト通信（マルチキャストは、本質的にブロードキャストの特別な事例である）のような同様の通信も含む、一般的な意味で用いられる）。前述の接続と同様に、このような接続は、ネットワーク内の意味論的な相互関係性を覆い隠し、後続の解析プロセスを妨げる傾向があり、したがって、このフィルタリング・ステップにおいて除外される。
【００２４】
第３のフィルタリング・ステップは、図３のステップ２１ｃによって表される。このステップにおいて、解析コントローラ８は、サービス・プロバイダがネットワーク外部に存在する接続に関連したトラフィック・データをフィルタリングにより除外する。別の選択肢を想定することもできるが、この例においては、サービス・プロバイダは、その接続についての宛先ポートから、解析コントローラ８によって判定される。このフィルタリング・ステップは、後で詳述するアイランド識別プロセスの一部として実行される探索のための終了（ｅｘｉｔ)条件の１つを有効に準備する（範囲内の全てのノードがすでに処理され、かつ範囲外のノードに続いていない場合に、探索プロセスが停止することを保証する）。本発明の実施形態に従ってこのフィルタリング・ステップを実行することには、多くの理由がある。第１に、再構築プロセスは、ネットワーク２に対して、このネットワーク内でサービスを提供するデバイスの利用率に基づいて実行される。従って、範囲内の、即ちネットワーク２内のサービス・コンシューマ・デバイスから、範囲外の外部ネットワーク４内のサービス・プロバイダへの接続は、サービス・プロバイダが対象領域の外部に存在し、それゆえ典型的には影響が及ばないので、意味論的に無関係である。第２に、このフィルタリング・ステップは、それ以外には接続されていない内部デバイス３間に接続ポイントを形成する外部デバイスを、妨げることができる。これは、後述の探索プロセスにおいて識別されるアイランドの併合を生じさせ、それゆえデバイス３の間の真の意味論的な従属性を覆い隠す傾向がある。例えば、異なるアイランド内の２つのホスト３が各々、ソフトウェア更新サーバのような範囲外の１つのホストに接続している場合、内部ホスト３は、意味論的には接続が存在しないときに、外部ホストを通じて接続されるように見えることになる。
【００２５】
図２に戻ると、ステップ２１のフィルタリング・ステージが完了すると、動作はステップ２２に進み、ここで、解析コントローラ８は、メモリ９内に格納された、フィルタリングされたトラフィック・データを処理して、残りの、意味論的接続であるとみなされる接続を表すグラフを生成する。（「グラフ」という用語は、ここでは、グラフ理論グラフの意味で用いられる）。こうしたグラフ表現において、ネットワーク・デバイス（それらのＩＰアドレスによって識別される）は、グラフのノードによって表され、デバイス間の接続は、ノード間のリンクによって表される。一般に、１つのリンクが、所与の一対のノードによって表されたデバイス間の接続の数に応じて、フィルタリングされたトラフィック・データにおける１つ又は複数の接続を表すことができる。所与の接続についてのトラフィック率データは、グラフ内の対応するリンクに関連付けられる。この実施形態においては、各接続についてのポート番号も、グラフ内の適切なノードに関連付けられる。したがって、各ノードは、特定のＩＰアドレスを有効に表し、そのアドレスから出る／そのアドレスに入る接続についての１つ又は複数の関連付けられたポート番号を有することができる。この例においては、所与のＩＰアドレス／ポート番号の対の間の接続についてのトラフィック率データは、グラフ内の対応するリンクに関連付けられる。得られたグラフは、解析コントローラ８によってメモリ９内に格納される。
【００２６】
図２のステップ２３において、解析コントローラ８は、グラフを解析して、グラフ内のいずれかのアイランドを識別する。アイランドは、範囲内のデバイス、即ち、ネットワーク２内部のデバイス３を表すその他のいかなるノードにも接続していない、相互接続されたノードの集合として定義される。このようなアイランドは、外部ノードへの１つ又は複数のリンクを有する場合もあり、有さない場合もあるが、このようなリンクはいずれも、フィルタリング・ステージのステップ２１ｃに起因して、必然的に、インバウンド接続、つまりサービス・プロバイダが範囲内に存在する接続を表すことになる。アイランド識別プロセスは、グラフ上で深さ優先探索を実行し、探索中にトラバースされたノードにマークを付け、マーク付けされたノードをその探索中に再びトラバースしないようにする。深さ優先探索は、グラフを処理するための一般的に知られている技術であるが、ここで用いられるプロセスを、図４のダイヤグラムを参照して簡単に説明する。
【００２７】
図４は、上述のような、グラフ内の相互接続されたノードの集合を表し、数字及び矢印は、この集合を通る深さ優先探索アルゴリズムの進行を示す。最初に、探索アルゴリズムは、ランダムなノード、ここではノード１をグラフから取り出す。このノードは、訪問済みとしてマーク付けされ、このノードからの１つ又は複数のリンクが存在する場合には、第１のリンクがランダムに選択され、次のノード、ここではノード２へと続く。同じプロセスを、ノード２から繰り返し、このようにしてノード３へと到達する。このノードはリンクを有していないので、アルゴリズムは、すぐ前のマーク付けされたノードであるノード２に戻り、マーク付けされていないノードへの残りのリンクのいずれかのうちの１つをランダムに選択する。これらの基本的な動作を繰り返すことによって、探索プロセスは、ツリーを再帰的にトラバースし、図中に示された番号順に接続ノードを見いだす。ノードにマークを付けることで、１つのノードを再訪するループ化が回避される。次のノードが存在しない、又は次のノードは既に訪問済みである（ループ化防止）、又は次のノードは範囲外（ネットワーク２の外部）である、という条件のうちの１つが満たされたときに、再帰的なプロセスは終了（ｅｘｉｔ)する。このようにして、探索プロセスは、上記で定義されたアイランド内の全てのノード及びリンクを識別する。探索アルゴリズムが終了すると、解析コントローラ８は、訪問済みノードとリンクとの集合（アイランドを表す部分グラフ）を、入力グラフから移動させ（コピーし）、部分グラフを別々にメモリ９内に格納する。入力グラフが、少なくとも１つのマーク付けされていないノードをまだ含んでいる場合には、解析コントローラ８は、探索プロセスを再び開始し、ランダムなノードを選択し、そこからグラフをトラバースする。これは、入力グラフが「空」（即ち、マーク付けされていないノードを１つも含まない）になるまで繰り返される。
【００２８】
図２を再び参照すると、ステップ２３におけるアイランドの識別の後に、解析コントローラ８は、続いて、いずれかの遊休ネットワーク・デバイス３の検出へと進む。デバイス利用率は、ここで、ネットワーク２の外部からアイランドへの接続上のトラフィック・フローを解析することによって評価される。このようなインバウンド接続はいずれも、ネットワーク・グラフにおいて外部デバイスからアイランドへのリンクによって表される。アイランドへのいずれかのインバウンドリンクに関連付けられたトラフィック率データを解析することによって、解析コントローラは、遊休デバイスを識別することができる。特に、このトラフィック率データによって示されるトラフィック・フロー率を、解析コントローラ８において事前定義された適切な閾値と比較することができる。一般に、所望に応じた適用のためにシステム７内で１つ又は複数のこのような閾値を予め定義することができ、例えば、アイランドへの全てのインバウンドリンクに対して１つの閾値とすることも、又は、異なるアイランド、若しくは異なるＩＰアドレス／ポート番号への接続に対して異なる閾値とすることもできる。また、解析コントローラは、一般に、インバウンドリンクに関連付けられたトラフィック・フロー率を、全てのアイランドについて、又はアイランド／デバイス／サービスの部分集合のみについての適切な閾値と比較することができる。しかしながら、この例においては、適用すべきトラフィック閾値は、Ｉ／Ｏインターフェース１０を介してオペレータが入力することができる。具体的には、所与の解析実行に対して、オペレータは、解析を実行すべきポート番号及び関連付けられた閾値を入力することができる。図２のステップ２４において、解析コントローラは、次に、指定されたポート番号に関連付けられたノードを含むアイランドを識別する。このようなアイランドごとに、指定されたポート番号に対する少なくとも１つの接続を表すインバウンドリンクが存在するかどうかが判定される。存在する場合には、次に、そのポート番号への接続についてのトラフィック率データによって示される全トラフィック・フロー率が、指定された閾値と比較される。トラフィック・フロー率が閾値よりも小さい場合には、そのアイランドは遊休状態であるとみなされ、遊休デバイスは、ステップ２５において、Ｉ／Ｏインターフェース１０を介してオペレータに提供される出力内で識別される。アイランド内の指定されたポート番号への接続を表すインバウンドリンクが存在しない場合にも、そのアイランドは遊休状態であるとみなされ、前述のようにして出力が生成される。
【００２９】
図２のステップ２４及びステップ２５を、別のポート番号及び関連付けられた閾値を指定するオペレータ入力に応じて要望通りに繰り返すことができる。このようにして、遊休アイランドを、それゆえ遊休ネットワーク・デバイス３を識別することが可能であり、それに応じてネットワーク２を再構築して効率を向上させることができる。図５は、ネットワーク２の解析に対する例示的な結果の単純な表現を提供する。ここでは、ＡからＥで示される５つのアイランドが識別されている。アイランドは、矢印によって示されるように接続されており、高いトラフィック・フロー率は単純に太い矢印によって表されている。アイランドＣの場合のように、明らかにアイランドへのインバウンドリンクが存在しない場合には、そのアイランド・デバイスは使用されていない。このようなデバイスは、ネットワーク２から単に除去（廃止する）ことができる。ここでのアイランドＡ及びＢの場合のように、アイランドがトラフィック・レベルが過度に低い１つ又は複数のインバウンドリンクを有する場合には、１つ又は複数のアイランド・デバイスが遊休状態であるとみなされることになる（デバイスが複数のサービスを提供する場合に少なくともそのサービスの部分集合が関係する限りにおいて）。これに対処するために、種々の方法でネットワークを再構築することができる。例えば、別々のデバイスを、例えば１つの物理マシン内の複数のデバイスの仮想化によって、統合することができ、又はデバイス若しくはサービスをネットワーク内で移動させることができ、又はアウトソーシング・サービスを優先して常駐サービスを除去することができる。一般に、デバイス３の遊休率を減らし、それゆえネットワークの全効率を向上させるいかなる再構築作業も、ここで適切なものとみなして採用することができる。この再構築プロセスは、完全にネットワーク・オペレータによって実施することもできるが、デバイスの遊休状態が検出されたときに一定の再構築タスクを実施するように解析コントローラ８がプログラムされる実施形態を想定することもできる。
【００３０】
上記により、遊休ネットワーク・デバイスを識別し、それに応じてネットワークを再構築するための実用的かつ効率的なシステムが提供されることが理解されよう。このシステムは、単一の遊休デバイスのみならず遊休デバイスの群も検出することができ、本当に十分に利用されておらず、したがってシャットダウンすることが可能な遊休ホスト又はアプリケーションを識別する可能性を高める。このようなシステムをシャットダウンすることによって、著しい電力及びリソースの節約を達成することができる。例えば典型的なデータセンタにおいては、５％から３０％の節約を現実的に想定することができる。そのうえ、動作のために必要とされる基本的なネットワーク・トラフィック・データは、容易に入手することができる。これは、利用可能である場合には既存のトラフィック記録から取り出すことが可能であり、又はネットワークの観察及び基本的なデータの抽出によって容易に生成することができる。従って、本発明の実施形態は、計画されたネットワーク統合に先立つ単発のプロセスとして、又は定期的な効率解析のためのいずれであっても、過度の労力又は経費をかけずに既存のネットワーク内で利用することができる。
【００３１】
上述の特定の実施形態に対して種々の変更及び修正を行うことができることが、当然、認識されよう。例えば、説明した実施形態においては、単純なフロー率の閾値を使用して遊休デバイスを識別するが、他の実施形態においては、トラフィック率データと共に付加的なデータも用いるより複雑な閾値処理技術又はその他のアルゴリズムを使用することができる。ネットワーク・モニタ５と効用評価システム７とは、図１において別個のエンティティとして図示されているように示されているが、一般に、これらのシステムの機能は１つ又は複数のコンピュータ上で実装することができる。本発明の範囲から逸脱することなく、説明した例示的な実施形態に対して、その他の多くの変更及び修正を行うことができる。
【符号の説明】
【００３２】
１：ネットワーク・システム
２：ネットワーク
３：ネットワーク・デバイス
４：外部ネットワーク
５：ネットワーク・モニタ
６：データベース
７：効用評価システム
８：解析コントローラ
９：メモリ
１０：Ｉ／Ｏインターフェース
【図１】
0005613237.tif 000002
【図２】
0005613237.tif 000003
【図３】
0005613237.tif 000004
【図４】
0005613237.tif 000005
【図５】
0005613237.tif 000006