(57)【特許請求の範囲】
【請求項１】
コマンドサーバによって、コマンドをネットワーク上の複数のノード内のノードセットに通知するステップと、
前記ノードセット内の各ノードによって、前記コマンドを実行するステップと、
実行されたアクションのタイプを示す応答メッセージを、前記ノードセット内の各ノードによって、前記コマンドサーバに送信するステップであって、各ノードからの応答から生じる複数の応答メッセージが作成されるステップと
を含み、
前記コマンドサーバが、前記ネットワーク上の前記複数のノード内の、ユーザによってログインされた任意のノードである、方法。
【請求項２】
ネットワーク構造を発見するために前記ネットワーク上の前記複数のノードが、相互通信するステップをさらに含む、請求項1に記載の方法。
【請求項３】
前記セットの各ノードが、前記セット内の各ノードを識別するように構成された識別子を含む、請求項1に記載の方法。
【請求項４】
前記ノードセットが、ワーキングセットを形成し、前記応答メッセージが、確認メッセージを含み、前記複数の応答メッセージの各応答メッセージが、前記各応答メッセージと関連付けられたノードが前記ワーキングセットに参加したかどうかを示す、請求項1に記載の方法。
【請求項５】
前記コマンドサーバによって、前記複数の応答メッセージをユーザに報告するステップと、
前記コマンドサーバによって、前記複数の応答メッセージをロギングするステップと、
前記コマンドサーバによって、前記複数の応答メッセージを表現するステップであって、前記複数の応答メッセージを表現する前記ステップが、可視表示および可聴表示から成るグループから選択された、1つまたは複数の実行されたアクションを含むステップと
をさらに含む、請求項1に記載の方法。
【請求項６】
前記コマンドサーバによって、前記複数の応答メッセージから同様の応答メッセージを集約し、前記集約された応答メッセージをユーザに報告するステップをさらに含む、請求項1に記載の方法。
【請求項７】
少なくとも1つのコマンドを前記コマンドサーバからノードセットに通知するために、前記コマンドサーバによって、スクリプトを実行するステップをさらに含む、請求項1に記載の方法。
【請求項８】
前記コマンドサーバによって、ネットワークサイズを生成するために使用される、ノードの数および様々なノードタイプを含む、発見されたネットワーク構造の情報を保管するステップをさらに含む、請求項2に記載の方法。
【請求項９】
前記複数のノードの各ノードによって、前記複数のノードの他のノードに通知するステップと、
前記複数のノード間で通信の同期をとるステップと、
前記複数のノード間で情報を交換するステップと
をさらに含む、請求項1に記載の方法。
【請求項１０】
ユーザによって入力された入力コマンドを受信するために、コマンドサーバに接続するように構成されたユーザインタフェースであって、前記ユーザインタフェースが、ネットワークの複数のノードからコマンドサーバにアクセスするようにさらに構成され、前記入力コマンド、および前記複数のノードのノードセットからの応答メッセージが、前記コマンドサーバと前記ノードセットとの間で通知されるユーザインタフェースと、
前記ネットワークを分析し、前記ネットワークに関連する構造を発見するために、メッセージを前記複数のノード間で相互通信するように構成された通信システムと
を備え、
前記コマンドサーバが、前記ネットワーク上の前記複数のノード内の、ユーザによってログインされた任意のノードである、装置。
【請求項１１】
前記入力コマンドが、前記ノードセットをノードのワーキングセットとして定義するように構成された識別子を含むように構成されており、応答メッセージが、特定のノードがノードの前記ワーキングセットに参加するかどうかを示す確認メッセージを含むように構成されている、請求項10に記載の装置。
【請求項１２】
前記応答メッセージからのある応答メッセージが、応答メッセージと関連付けられた特定のノードが、前記入力コマンドでノードのワーキングセットとして定義されたノードセットに参加したかどうかを示すように構成されている、請求項10に記載の装置。
【請求項１３】
前記ネットワーク構造、前記ネットワークの前記複数のノード、ノードと関連付けられた一意のセッション識別子を伴う各アクティブユーザセッション、および前記ネットワークを離れるノードを含むネットワーク情報を保管するように構成されたノードデータベースをさらに備える、請求項10に記載の装置。
【請求項１４】
前記複数のノードの各ノードが、起動の間、前記通信システムを使用して、前記複数のノードの他のノードの場所および性質を発見する、請求項10に記載の装置。
【請求項１５】
前記ネットワークが、前記ネットワーク内の各ノードと関連付けられた前記ネットワーク構造のデータベースを含む、請求項10に記載の装置。
【請求項１６】
メッセージをネットワークの複数のノード間で周期的に伝送するステップと、
ネットワーク構造を分析し、発見するために、前記複数のノードによって、相互通信をし、データベース内に、前記ネットワーク構造を記録するステップと、
前記複数のノードによって、前記ネットワーク構造内のどのような変化も動的に管理するステップであって、前記管理するステップが、ノードの数を修正すること、および前記データベース内の前記ネットワーク構造の記録を更新することを含むステップと
を含み、
コマンドサーバは、前記ネットワーク上の前記複数のノード内の、ユーザによってログインされた任意のノードである、方法。
【請求項１７】
前記ネットワーク構造の前記記録を更新することが、ノードの数および様々なノードタイプを使用してネットワークサイズを生成することを含む、請求項16に記載の方法。
【請求項１８】
前記複数のノードによって、前記ネットワークの同期をとるステップと、
前記ネットワークの各ノードによって、前記データベース内の前記ネットワーク構造の前記記録を更新するステップと
をさらに含む、請求項16に記載の方法。
【請求項１９】
各ノードが起動するときに、前記各ノードによって、メッセージを伝送するステップと、
前記ネットワークの各ノード間で記録を交換するステップと、
前記各ノードによって、前記複数のノードからの記録をメッセージを使用して要求するステップと、
要求された記録を、前記各ノードによって、メッセージへの応答を使用して受信するステップとをさらに含む、請求項16に記載の方法。
【請求項２０】
前記コマンドが通知される前記ノードセットは、前記ノードセット内の各ノードに共通する1つまたは複数の共用識別子を指定することにより定義される、請求項1から9のいずれか一項に記載の方法。
【請求項２１】
前記入力コマンドが通知される前記ノードセットは、前記ノードセット内の各ノードに共通する1つまたは複数の共用識別子を指定することにより定義される、請求項10から15のいずれか一項に記載の装置。
【請求項２２】
前記ネットワーク上の前記複数のノード内のコマンドが通知されるノードセットは、前記ノードセット内の各ノードに共通する1つまたは複数の共用識別子を指定することにより定義される、請求項16から19のいずれか一項に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
関連出願の相互参照
本出願は、第1の指定発明者Geoffrey Douglas McCaughanによる2013年2月19日に出願されたニュージーランド出願番号第607298号、名称「Improvements in and Relating to Network Communications」に基づく。
【背景技術】
【０００２】
特定のネットワークノードとの直接通信を介して物理的なネットワーク機器を構成することは、大規模なネットワークが構成を必要とする多数のノードを有している可能性があるので、大きな負担である。1対以上のノードを含むネットワークでは、ユーザは通常、ネットワーク内の各ノードを個々に構成する必要がある。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
データ通信ネットワークを含むネットワークの構成では、ユーザが、コマンドを各ノード上に入力することにより、または各ノード上でスクリプトを手動でコピーし、実行することにより、ネットワーク上の各ノードを手動で更新する必要がある。
【課題を解決するための手段】
【０００４】
実施態様は、自動化された通信をネットワーク上の複数のノード間で使用して、いくつかのネットワーク関連ノードを、単一インタフェースを介して迅速に構成する方法を含む。
【図面の簡単な説明】
【０００５】
【図１】一実施形態による例示的ネットワークの概略図の例を示す図である。
【図２】一実施形態によるコマンドサーバとのユーザ対話の概略フローチャートのブロック図である。
【図３】一実施形態による、コマンドサーバのアクションに応答した、ノードのプロセスステップの概略フローチャートのブロック図である。
【図４】一実施形態による、発見プロセスの概略フローチャートのブロック図である。
【発明を実施するための形態】
【０００６】
以下の説明では、その一部を形成する添付図面が参照され、そこでは例示によって、実施形態が実施され得る特定の例が示される。他の実施形態が利用可能であり、構造的変更が、範囲から逸脱することなく、実施可能であることを理解されたい。
【０００７】
以降に続く、例えば、ネットワーク通信用の自動化されたコマンドおよび発見プロセスに関する説明は、例示を目的に述べられているが、基礎となるシステムは、任意の数の、ならびに複数のタイプのネットワーク通信システムおよびデバイスに適用可能であることに留意されたい。一実施形態によれば、ネットワーク通信用の自動化されたコマンドおよび発見プロセスを提供するためのシステムは、コマンドサーバとのユーザ対話を使用して構成することができる。ネットワーク通信用の自動化されたコマンドおよび発見プロセスのためのシステムは、コマンドサーバアクションに応答した、ノードのプロセスステップを含むように構成可能であり、また本実施形態を使用して、発見プロセスを含むように構成可能である。
【０００８】
本明細書を通じて、「備える、含む(comprise)」という語、または「備える、含む(comprises)」や「備える、含む(comprising)」などのその変化形は、記載の要素、整数、もしくはステップ、または要素、整数、もしくはステップのグループを含めることを意味するが、任意の他の要素、整数、もしくはステップ、または要素、整数、もしくはステップのグループを排除しないことを意味すると理解され得る。
【０００９】
「コマンドサーバ」という語は、コマンドをネットワーク内の他のノードに供給するように構成されたノードを描写する。複数のノード内の他のノードは、「クライアント」と呼ばれる場合がある。コマンドサーバは、実施形態がその上に実装されているネットワーク内の任意のノードであり得る。ネットワーク内の様々なノードは、様々な時間に、コマンドサーバの役割を果たしてもよい。ユーザがノードにログインすると、ノードはコマンドサーバになる。2つ以上のコマンドサーバが存在してもよい。例えば、2人以上のユーザが同じネットワーク上の任意のノードにログインしたとき、各ユーザが、コマンドサーバのインスタンスを作成していることになる。
【００１０】
「ユーザ」という語は、ノードのコマンドインタフェースおよびコマンドサーバとの対話に言及する際、本明細書で使用される。ネットワーク管理のコンテキストにおいて、ユーザは、ネットワーク管理者などの実際の人と、コンピュータ上で動作するスクリプトなどの自動化された手段のどちらかに言及することができる。
【００１１】
図1は、一実施形態による例示的ネットワークの概略図の例を示す。ネットワークは、コアスイッチ3、高速分配スイッチ4aおよび4b、ローカル分配スイッチ5aおよび5b、ならびにエッジスイッチ6a、6b、および6cを含むいくつかの他のネットワークノードを介して、ネットワークコンピュータ7a、7b、8a、8b、9a、および9bにネットワーク接続されているサーバ2aならびに2bを備える。
【００１２】
本明細書の記述および図は、代表的なコマンドがコマンドサーバ上で発行されるのを実例を挙げて説明するとともに、単一デバイスからの複数のネットワークデバイスの制御について説明する。ネットワーク上の任意の互換ノードは、コマンドサーバとして機能することができる。ネットワーク通信用の自動化された発見プロセスを使用する任意のノードは、互換ノードと見なされる。
【００１３】
開放型システム間相互接続(OSI)モデルは、インターネット上の接続を実装するための7層のネットワーク構造を定義している。ベースレベル(レイヤ1)は、無線によるか、物理媒体経由かに関わらず、情報をネットワーク全体にわたってデータパケットの形で伝送することを介して相互通信するように構成された物理ネットワーク機器によって提供される。ネットワークの物理レイヤを形成し、情報の送信、受信、または転送が可能である個々のデバイスのそれぞれは、ネットワークノードと呼ばれる。
【００１４】
ネットワークノードを構成する現在の手段は、通常、構成すべき特定のネットワークノードとの直接通信による。例えば、構成は、組込みwebサーバやテキストベースのコマンドラインインタフェース(CLI)などの、デバイス上にあるユーザインタフェース、または物理インタフェースを介して提供され得る。一部の既存のネットワークでは、このコマンドラインインタフェースは、シリアル制御ポートおよびリモートログインセッション(例えば、セキュアシェル(ssh))を介して利用可能である。したがって、いくつかの関連ノードを、単一インタフェースを介して迅速に構成できるならば、それは有用であろう。
【００１５】
一実施形態によれば、コマンドサーバ上で少なくとも1つのコマンドを入力することは、手動で実施され得る。手動コマンドは、通常、bash shellなどのテキストベースのユーザインタフェースを介して入力され得る。一実施形態によれば、データ通信ネットワークの少なくとも一部を形成する複数のノード内のノードセット上でコマンドを実行する方法が提供され、ノードセットは少なくとも1つの共通コマンドを共用する。方法は、複数のノードから選択されたコマンドサーバ上で少なくとも1つのコマンドを入力することと、少なくとも1つのコマンドをコマンドサーバからセット内の他のノードに通知することと、セット内のノードのそれぞれにおいて少なくとも1つのコマンドを実行することとを含み、コマンドサーバが、複数のノード内の任意のノードであり得るように構成されている。いくつかの実施形態によれば、コマンドサーバ上で少なくとも1つのコマンドを入力することは、スクリプトの実行により、または別の自動化された方法により実施されてもよい。
【００１６】
いくつかの実施形態によれば、ノードは、識別子を共用するグループに割当て可能である。グループは、ネットワーク内の複数のノード内のノードセットを指す。グループメンバは通常、識別子として使用され得る何らかの共通特性を共用する場合がある。共通特性の例には、ネットワーク内のノードの地理的な位置、ノードのタイプ、製品ID、またはノードによって提供される特定の特徴が含まれ得る。グループIDの特定の例には、「エッジスイッチ」や「2階」が含まれ得る。グループIDは、ユーザによって恣意的に作成されてもよい。
【００１７】
いくつかの実施形態によれば、コマンドがその上で実行され得るノードセットが、「ワーキングセット(working set)」を形成する。ワーキングセットは、ノードの一時的なグループ分けであって、コマンドがノードセットに送信されるのを可能にするようにユーザによって作成される。各ノードは、少なくとも1つの一意の識別子を有する。各ノードはまた、1つまたは複数のグループ識別子を含む場合がある。一意の識別子または1つもしくは複数のグループ識別子は、特定のノードが特定のワーキングセットに属するか否かを判定するために使用され得る。
【００１８】
ユーザが初めてノードにログインすると、ワーキングセットは、ユーザがログインしたノードのみを含む。しかし、ワーキングセットには、ネットワーク上の個々のノードのうちの1つまたは複数、特定の自動定義されたノードグループ、特定のユーザ定義されたノードグループ、上記ノードの任意の恣意的な集合、またはネットワーク上のすべてのノードが含まれ得ることが理解される。
【００１９】
コマンドは、同期的に、選択されたワーキングセット内のすべてのノードに送信され得る。ユーザは、各ノードに対する一意の識別子、または所望のワーキングセット内の各ノードに共通の1つもしくは複数の共用識別子を指定することにより、ワーキングセットを定義してもよい。ユーザがワーキングセットメンバを指定すると、コマンドサーバは、1つまたは複数の識別子を含むコマンドを使用して、ワーキングセットに通知することができる。ネットワーク内の一部またはすべてのノードは、通知されたコマンドに応答して、確認メッセージを送信することができる。確認メッセージは、1つまたは複数の識別子によって定義されたワーキングセットにノードが参加したという確認であっても、ノードがワーキングセットに参加できないと応答するメッセージであってもよい。
【００２０】
コマンドサーバは、ワーキングセットに参加したと応答したノードのリストを作成してもよい。ワーキングセットに参加するノードの数が、ワーキングセットサイズを定義する。定義されたワーキングセット内の各ノードに通知され、そこで実行されたコマンドによって生成された出力メッセージは、コマンドサーバに折返し通知される。コマンドサーバに折返し通知されたメッセージは、通知されたメッセージのロギングのうちの1つもしくは複数、可視表示、および/または可聴表示によってユーザに報告される。
【００２１】
通知されたメッセージのロギングは、例えば、送信されたメッセージ、応答メッセージなどのメッセージを、コマンドサーバと関連付けられたメモリに保管するのであってもよい。メッセージの保管は、恒久的、すなわち記録がユーザによって削除されるまでのものでも、また一時期、一時的に、すなわち新しい記録が作成されるまで保管されるものでもよい。可視表示は、画面上の表示を含んでも、また点滅する光源を含んでもよい。可聴表示は、音声メッセージと同じくらい複雑であってよく、また可聴音を含んでもよい。コマンドサーバは、メッセージパーサを含んでもよく、メッセージパーサは、ワーキングセットから折返し通知されたメッセージを照合する。パーサは、ワーキングセット内の各ノード上に通知されたコマンドの実行の成功または失敗を確認するメッセージを生成してコマンドサーバのユーザに表示することになる。
【００２２】
ワーキングセットから折返し通知されたメッセージは、プロキシレイヤ(proxying layer)を使用して、構文解析されてもよい。プロキシレイヤの構文解析は、ソフトウェアで実装され得る。プロキシレイヤは、コマンドサーバのユーザインタフェースとコマンドサーバ構文解析/実行機構との間のインタフェースとなるように実装される。複数のノードが同じ応答メッセージをコマンドサーバに送信した場合、そのメッセージは集約されてユーザに単一メッセージとして提示され得る。しかし、様々なノードが様々なメッセージをコマンドサーバに送信する可能性がある。様々なメッセージの例には、エラーメッセージや状況出力表示が含まれる。各1組の様々なメッセージは、単一の別々のメッセージとしてユーザに提示され得る。集約型および非集約型メッセージはまた、どの1つまたは複数のノードが各メッセージを送信したかを識別する情報を含む。このメッセージ集約は、ユーザが、大規模なワーキングセットから折返し通知されたメッセージを迅速かつ容易に理解することを可能にする。メッセージの集約は、互換性のないコマンドセットを有するノードが、選ばれたワーキングセット内に存在することをユーザに伝えるのに有用である。ユーザは、次いで、そのノードまたはそれらのノードと互換性のある、さらなるコマンドを発行することができる。
【００２３】
ワーキングセットは、全く異種のコマンドセットを特徴とするノードを含んでもよい。ワーキングセットが、物理的に異なるデバイスであるノードを含む場合、特にその例となる。しかし、モードタイプのコマンドセットを利用するノードの場合もまた、その例である。モードコマンドセットの例は階層型のコマンドセットであり、階層型のコマンドセットでは、一定の特徴が、支配的な特徴のサブセットとして構成されている。例えば、ネットワークスイッチは、最上位の全体的な構成モードを備えることができるが、ユーザはそうした最上位モードからコマンドを入力して下位レベルのルーティング構成モードに移動でき、またユーザはそうした下位モードから別のコマンドを入力してさらに下位レベルの構成モードに移動して、特定のルーティングプロトコルの特定のインスタンスを構成することができる。この例では、ネットワークのすべてのノードが、そうした例示的なルーティングプロトコルのその特定のインスタンスに参加することができるわけではない。したがって、ワーキングセットは、ルーティングプロトコルのそのインスタンスに参加するノード、および参加しないノードを含むことができる。
【００２４】
指定されたワーキングセット内では、通知されたコマンドを実行することができるノード、および実行することができない他のノードが存在し得る。分かりやすくするために、通知されたコマンドを実行することができる、ワーキングセット内のノードは、「モードセット」と呼ぶことにする。特定のコマンドと互換性のあるワーキングセット内のノードはすべて、ワーキングセット内のモードセットを形成する。コマンドサーバがコマンドを通知する場合は常に、ワーキングセット内の各ノードは、モードセットに参加するか、ワーキングセットのメンバとしてのみ残るかになる。モードセットサイズとワーキングセットサイズのどのような違いも、コマンドサーバのユーザに視覚的に示すことができる。通知されたコマンドと互換性のない、ワーキングセットのメンバは、どのモードにメンバが現在属するかを含む応答を使用して、コマンドサーバに応答することになる。この応答は、どのノードがモードを変更したかのコマンドサーバによる決定を可能にすることになる。ノードは、コマンドサーバに、モードを変更したか否かを明示的に伝える。モードセットのメンバでない、ワーキングセットのメンバは、通知されたコマンドを実行しようと試みない。モードセットに属さないノードは、実行することができるコマンドが到着する、すなわちコマンドを実行し、新しいモードセットに参加することになるときまで、コマンドを実行しようと試みない。
【００２５】
ネットワークノード上で実行可能な一部のコマンドは、対話型であるか、多数の出力メッセージをもたらすか、連続的な出力ストリームを生成する。そうした場合、折返し通知されたメッセージを集約することは過度に負担になるので、すべてのノードが同時に、コマンドサーバに折返し通知することは望ましくない場合がある。対話型であるか、多数の出力メッセージをもたらすか、連続的な出力ストリームを生成する、任意の命令は、以下「詳細コマンド(verbose command)」と呼ばれる。詳細コマンドの例には、対話型コマンド、ネットワーク診断コマンド、詳細な動的状態を示すコマンドなどが含まれる。詳細コマンドは、ワーキングセットが1メンバのみを含む場合、実行可能である。詳細コマンドがコマンドサーバ上で入力されると、ユーザは、ワーキングセットから1つまたは複数のノードを選択するように促される場合があり、その場合、コマンドは、選択されたノード上で実行されることになる。
【００２６】
ノードおよび他のネットワーク情報のデータベースは、ネットワーク内の各ノード上に作成される。他のネットワーク情報の例には、任意のアクティブユーザセッションの詳細、ユーザセキュリティキー、またはこれに類するものが含まれる。新しいノードがネットワークに追加される場合、またはノードがネットワークから除外される場合は常に、データベースは動的に更新される。データベースへの変更は、プロセス間通信メッセージを使用して、すべてのノードにわたってミラーリングされる。これにより、ネットワーク内のすべてのノードは、ネットワーク内の現在のノードセットと同期がとられた状態を保つことができる。ノードは、現在のネットワーク構造を有するデータベースを自律的に維持することができる。ネットワーク情報のデータベースは、ネットワーク内の各ノード上で維持される。コマンドサーバから通知されたメッセージは、ネットワーク情報のデジタル表現を含む。
【００２７】
コマンドサーバは、現在のワーキングセットのデジタル表現を維持する。コマンドサーバは、現在のワーキングセットのデジタル表現を、ネットワーク内のノードによってコマンドサーバに送信された対応する応答メッセージに基づいて、更新する。コマンドサーバは、通知されたコマンドを実行した、ワーキングセット内のノードを確認することができる。確認は、通知されたコマンドの実行の成功を確認したノードをワーキングセットのデジタル表現に整合させることによって行われる。再送信プロセスは、通知されたコマンドの実行の成功を確認していないノードに対して開始される。ノードまたはノードセットが、通知されたコマンドに所与の時間内に応答しなかった場合、メッセージは再通知されるが、今回、ワーキングセットは、元のワーキングセット内の、通知されたコマンドの実行の成功を確認しなかったノードのみを含むように修正される。1つまたは複数のノードが、再通知されたメッセージに所与の時間内に応答しない場合、デジタル表現は、応答しない1つまたは複数のノードを除外するように修正される。
【００２８】
いくつかの実施形態によれば、データ通信ネットワークの少なくとも一部を形成する複数のノード内のノードセットにコマンドを通知する方法は、複数のノードに対するコマンドサーバと関連付けられたユーザインタフェースにアクセスすることと、ノードセットをアドレス指定するようにコマンドサーバを構成することと、コマンドサーバ上でコマンドを入力することと、入力されたコマンドをコマンドサーバからノードセットに中継することとを含む。ノードセットを構成することは、必要なノードを識別できるように少なくとも1つの識別子を指定することを含む。識別子は、個々のノードを一意に識別しても、またネットワーク上の複数のノードに共通であってもよい。ノードセットを選択するように前記少なくとも1つの識別子を指定することは、ワーキングセットを定義する。定義されたワーキングセットをアドレス指定するようにコマンドサーバを構成することは、コマンドサーバが、少なくとも1つの識別子を含むワーキングセットコマンドを通知することにつながる。
【００２９】
定義されたワーキングセット内のノードは、通知されたワーキングセットコマンドの受信に応答して、確認メッセージを送信する。確認メッセージは、定義されたワーキングセットにノードが参加した確認か、ノードがワーキングセットに参加していない可能性があると応答するメッセージのいずれかである。ワーキングセットが定義された後、コマンドサーバ上で入力されたコマンドは、ワーキングセットに通知される。
【００３０】
コマンドによって、ノードを、異なるコマンドモードに変更させる場合がある。新しいモードに変わることができる、ワーキングセット内のノードは、モードを変更することになり、またモードセットを形成することになる。新しいモードに変わることができないノードは、ワーキングセット内に残るものの、モードセットに参加しない。モードセットに参加しないノードは、モード変更コマンドを実行しようとする試みは失敗に終わったとコマンドサーバに伝える応答をコマンドサーバに送信する。モードセットに通知された追加のコマンドは、ワーキングセット内に存在するもののモードセット内に存在しないノードによって無視される場合がある。コマンドサーバ上で入力されたコマンドは、モードセット内のノードのそれぞれによって、事実上、同期的に実行され得る。
【００３１】
いくつかの実施形態によれば、ネットワークの少なくとも一部を形成する複数のノードにコマンドを通知するように構成されたコマンドサーバであって、コマンドサーバが、ネットワークインタフェース、複数のノードと関連付けられた少なくとも1つのワーキングセット識別子を保管するように構成された不揮発性メモリ、ネットワーク構造を表すデータベース、およびユーザインタフェースを備え、データベースが、ネットワークを形成するノードのタイプに関する情報を含む、コマンドサーバがある。情報のデータベースは、どのようなノードがネットワーク内に存在するかに関する情報を含む。データベースは、各アクティブセッションに対する一意のセッション識別子を含む、アクティブユーザセッションの記録を含む。
【００３２】
図2は、一実施形態におけるコマンドサーバとのユーザ対話の概略フローチャートのブロック図を示す。ステップ10において、ユーザは、コマンドサーバにログインする。ステップ11において、コマンドサーバの1つ、例えば、図1のサーバ2aは次に、ユーザインタフェースを初期設定し、ワーキングセットをローカルノードのみとして定義し、一意のセッションIDを作成し、セッションIDをすべてのノードにブロードキャストすることに移る。ステップ12において、ユーザは、コマンドを入力する。図1のサーバ2aは、ステップ13において、実行するノードに関連するノードすべてにコマンドを確実に転送する。
【００３３】
ノードは、例えば論理フィルタリングを実行する命令を有する。ステップ14において、命令は、例えば、コマンドがログアウトコマンドであるかどうかを判定することができる論理フィルタ命令となり得る。フィルタが、コマンドがログアウトコマンドであると判定した場合、ステップ15において、セッションは終了する。しかし、フィルタが、コマンドがログアウトコマンドでないと判定した場合、プロセスは、次の命令に続く。
【００３４】
ステップ16において、論理フィルタ命令は、コマンドがワーキングセットを定義するかどうかを判定するために使用することができる。ステップ17において、ワーキングセットサイズを設定する、参加確認の数が数えられる。ステップ21において、参加確認の数およびワーキングセットサイズ、および応答は、集約され、表示される。プロセスは、コマンドインタフェースに戻り、そこでユーザは別のコマンドを入力することができる。
【００３５】
コマンドがワーキングセットを定義しないと判定された場合、ステップ18において、モードが変更されたかどうかが判定される。モードが変更されたと判定された場合、ステップ19において、コマンドサーバは、新しいモードになる。ステップ20において、サーバモードと整合するいくつかの応答が数えられ、モードセットサイズをその数えられた数に設定する。ステップ21において、プロセスは、続けて応答を集約し、それを表示する。プロセスは次いで、コマンドインタフェースに戻り、そこでユーザは別のコマンドを入力することができる。ステップ18において、モードが変更されないと判定された場合、ステップ20において、サーバモードと整合するいくつかの応答が数えられ、モードセットサイズをその数えられた数に設定する。ステップ21において、プロセスは、続けて応答を集約し、それを表示する。プロセスは次いで、コマンドインタフェースに戻り、そこでユーザは別のコマンドを入力することができる。
【００３６】
図2は、図1および図2を参照しながら、ユーザ(図示せず)による、コマンドをそこで発行するための、便利で互換性のあるコマンドサーバの選択を示すものであるが、ユーザは、ステップ10においてコマンドサーバに、また特定のノードにログインする。この例の場合、ローカル分配スイッチ5bが、コマンドサーバに選ばれ、この例のコマンドサーバ5bに指定されることになる。コマンドサーバ5bへの接続は、例えばラップトップなどのリモートクライアントを使用して、コマンドサーバ5b上のwebサーバまたはこれに類するものにログインして、確立され得る。ユーザセッションは、コマンドサーバ5bにログインすることによって開始される。ユーザセッションは、コマンドサーバ5bのコマンドラインインタフェースが、処理をして、ステップ11において、ユーザインタフェースを初期設定し、ワーキングセットをローカルノードのみとして定義し、一意のセッションIDを作成し、セッションIDをすべてのノードにブロードキャストすることにつながり、そこでは、ローカルノードのみとは、コマンドサーバ5bである。一意のセッションIDが作成され、他のすべてのノード3、4a、4b、5a、6a、6b、および6cに通知される。一実施形態では、自動化された発見プロセスは、ネットワークスイッチであるノード3、4a、4b、5a、5b、6a、6b、および6c上に実装されている。他の実施形態では、ネットワークおよびノードは、いくつものサーバまたはPCの他のネットワーク構成上に、自動化された発見プロセスを実装することを含むことができる。別の実施形態では、複数のユーザは、ネットワーク内の様々なノード上にセッションを作成し、管理業務を実行することができる。いずれの場合にも、一意のセッションIDが作成される。
【００３７】
初期設定が完了すると、ユーザは、コマンドサーバ5bのユーザインタフェースへのアクセスが提供され、ユーザインタフェースは通常、bash shellなどのコマンドラインインタフェースの形態となる。ステップ12において、ユーザは、一実施形態によるユーザインタフェースを使用して、コマンドを入力することができる。
【００３８】
ステップ13において、入力されたコマンドは、処理されて、実行するノードに関連するノードすべてにコマンドを確実に転送する。確実な通信は、いくつもの方法で実現される。様々な実施形態において、コマンドは、ブロードキャスト、マルチキャスト、またはユニキャスト機構により、関連するノードに送信可能であり、様々な機構は、通知されるメッセージの確実な転送を確保するために使用可能である。この例では、入力されたコマンドは、ブロードキャストであり、再試行機構が、確実な転送を確保するために使用される。再試行機構では、ネットワーク内のすべてのノードは、コマンドに応答し、コマンドサーバ5bは、応答の数を、そこからの応答を予想していたノードの数と比較する。いずれかのノードが応答しなかった場合、コマンドサーバ5bは、再試行カウンタによって追跡されながら、所定の回数、コマンドを再送信する。
【００３９】
プロセスは、ステップ14において、コマンドが、ログアウトコマンドであるかどうかを検査する。コマンドがログアウトコマンドである場合、ステップ15において、その一意のセッションIDは破棄される。ログアウトコマンドは、コマンドラインの退出または終了をもたらすいずれかのコマンドであり得る。コマンドがログアウトコマンドでない場合、ステップ16において、コマンドサーバ5bは、コマンドがワーキングセットを定義するかどうかを評価する。ステップ17において、コマンドがワーキングセットを定義する場合、コマンドサーバ5bは、続けて確認の数を数え、ワーキングセットサイズを設定する。確認メッセージはノードがワーキングセットに参加したことの表示であり得ることが理解される。したがって、ワーキングセットサイズは、それに応じて設定され得る。プロセスは、ユーザが次のコマンドを入力するのを待ってもよい。コマンドサーバはまた、数のみではなく、ノードがワーキングセットに参加したことを示す確認メッセージをどのノードが送信したかを保管してもよい。初期のワーキングセットのメンバ構成には、コマンドサーバ5bが含まれ得る。したがって、ワーキングセットコマンドが発行されるまで、コマンドは、コマンドサーバ5b上のみで実行されることになる。コマンドがワーキングセットを定義しない場合、ステップ18において、コマンドサーバ5bは、モードが変化したかどうかを評価する。モードが変化した場合、ステップ19において、コマンドサーバを新しいモードに変更する命令が送信される。したがって、コマンドサーバは、コマンドをうまく実行したワーキングセットのメンバと同じモードに属する。
【００４０】
ステップ20において、サーバモードと整合する応答の数が数えられ、モードセットサイズがその数えられた数に設定される。ワーキングセットに属するものの、モードセットのメンバでないノードは、コマンドを実行しない。コマンドを実行しないノードは、現在のモードを示すためにコマンドサーバに応答を送信する。コマンドサーバ5bは、コマンドを実行したノードからの任意の応答をグループ化し、ステップ21において応答を集約し、それをユーザに表示する機能を実行する。プロセスは戻り、ステップ12において、別のユーザコマンドを待つ。
【００４１】
図3は、一実施形態のコマンドサーバのアクションに応答した、ノードのプロセスステップの概略フローチャートのブロック図を示す。図3は、コマンドサーバ34のアクションに応答した、互換ノード35におけるネットワークセッション作成33を示す。コマンドサーバ34がユーザログオンに応答して初期設定すると、新しいユーザセッションの作成のため、一意のセッションIDが生成され、ネットワーク上のすべてのノードにブロードキャストされる。コマンドサーバ34およびネットワーク上の各ノード35は、各新しいユーザセッションの作成の間、同期をとる。同期が完了すると、同期がとられたノードは、コマンドサーバ34から通知されるコマンドを待つ。
【００４２】
ノード35は、36において、コマンドサーバ34からの入力コマンドを受信するプロセスを開始する。ノード35は、例えば論理フィルタリングを実行する命令に従う。37において、論理フィルタは、入力コマンドアクションがワーキングセットコマンドであるかどうかを判定する。ワーキングセットコマンドであるならば、38において、ノード35は、現在所属しているいずれかのワーキングセットを抜け、39において、通知されたワーキングセットコマンドによって定義されたワーキングセットのメンバであるかどうかを検査する。
【００４３】
ノード35が、新しく定義されたワーキングセットのメンバであると判定された場合、41において、参加応答が、ノード35からコマンドサーバ34に送信される。40において、ノード35が、ワーキングセットコマンドによって定義されたワーキングセットのメンバでない場合、ノード35は、不参加応答をコマンドサーバ34に送信することになる。
【００４４】
一実施形態では、36において受信されたコマンドが、37において、ワーキングセットコマンドの一部でないと判定されると、ノード35は、42において、ノードがワーキングセットのメンバであるかどうかを判定する。ノード35がワーキングセットのメンバでないと判定された場合、42において、応答はノード35からコマンドサーバ34に送信されない。一実施形態によれば、コマンドは無視され、ノードは、36において、次の通知されるコマンドを待ち受ける。一方、42において、ノード35がワーキングセットのメンバであると判定された場合、43において、ノード35は、検査して、コマンドが現在のローカルコマンドモードで実行可能かどうかを判定する。実行可能な場合、通知されたコマンドは、一実施形態のノード35で実行される。
【００４５】
43において、ノード35は、コマンドが現在のローカルコマンドモードで実行可能かどうかを検査する。コマンドが現在のローカルモードで実行可能であると判定された場合、44において、コマンドの実行が試みられる。14において、コマンドがログアウトコマンドであるかどうかを判定するためにコマンドが評価される。コマンドがログアウトコマンドであると判定された場合、15において、セッションは終了する。
【００４６】
一方、コマンドがログアウトコマンドでない場合、47において、コマンドがモード変更を引き起こしたかどうかが判定される。コマンドがモード変更を引き起こしたという47における判定に応答して、48において、新しい現在のローカルモードが設定される。49において、応答が、ノード35からコマンドサーバ34に送信される。コマンドがモード変更を引き起こさなかったという判定に応答して、49において、ノード35は、応答をコマンドサーバ34に送信する。
【００４７】
43において、通知されたコマンドが現在のローカルモードと互換性がない場合、ノード35は、現在のモードと、ノード35がコマンドの実行を試みなかったことを示すメッセージをコマンドサーバ34に送信する。
【００４８】
49において、ノード35は、コマンドの実行の成功または失敗を示すメッセージのほか、コマンドによって生成された出力とともに応答をコマンドサーバ34に送り返すことになる。生成された出力は、例えば、成功メッセージ、またはエラーメッセージ、またはコマンドの実行によって生成された出力を含んでもよい。一実施形態によれば、メッセージは、コマンドサーバ34に戻され、図2の21において、応答を集約し、それをユーザに表示することになる。
【００４９】
図4は、一実施形態の発見プロセスの概略フローチャートのブロック図を示す。図4は、ネットワーク上のノードとユーザとの間の対話に先だって、ネットワーク内のノードが、ネットワークの構造を決定するために相互通信することを示す。ネットワーク構造を発見するシーケンスが図4に示されている。発見は、一般に指名子(designator)によって示される、ノード間の自動化されたメッセージの周期的な伝送によって実現される。経時的にネットワークの構造が判定され、ノードの追加や除外などの、ネットワーク構造内のどのような変化も動的に管理される。ネットワーク構造は、データベース内に保管され、データベースは、数ある詳細の中でも、ノードの数および様々なノードタイプを記録する。様々なノードタイプの記録はネットワークサイズを生成するために使用されることが理解されよう。ネットワークノード構造のデータベースは、ネットワーク上のすべての互換ノード間で同期がとられる。
【００５０】
50において各ノードが起動すると、各ノードは、発見プロセスを開始して、20において、隣接するノードを発見する。このプロセスが使用されて、51において隣接の関係を形成する。52において関係内の各隣接物に対して、プロセスが使用されて、53においてデータベース記録の記述が交換され、54において、このノード上にない記録に対するデータベース記録を要求し、55において要求されたデータベース記録を受信する。一実施形態によれば、発見プロセスは、56において、データベース更新の完了に至り、現在では他のすべてのノードに関する情報が分かる。
【００５１】
コマンドラインインタフェースのコマンドを、ネットワーク内の複数のノード上で、単一インタフェースから実行する機能を含む、ネットワーク通信用の自動化された発見プロセスには、いくつかの利点がある。このプロセスは、構成変更がいくつかのノードにわたって実施できたとき、時間を節約する。コマンドラインインタフェースのコマンドは、いったん発行でき、そして指定されたワーキングセット内の各ノードに伝搬可能である。コマンドが発行される先のワーキングセット内の各ノードからの、コマンドラインインタフェース出力およびエラーメッセージの集約は、有用な診断情報をユーザに単一の場所から提供する。コマンドは、現在の実施形態が実装されているネットワーク上の任意のノードと関連付けられたユーザインタフェースから、ワーキングセットに発行可能である。これにより、ユーザは、接続する先の任意の便利なノードを選択し、ネットワーク上の任意の他の互換ノード、またはノードのサブセットにコマンドを発行できるようになる。
【００５２】
以上は、本実施形態の原理、実施形態、および動作モードを説明している。しかし、実施形態は、議論されている特定の実施形態に限定されるものとして解釈されるべきではない。前述の実施形態は、限定的なものとしてではなく、例示的なものとして見なされるべきであり、また変形形態は、そうした実施形態において、当業者によって、以下の特許請求の範囲によって定義される、本実施形態の範囲から逸脱することなく、作成可能であることを理解されたい。
【符号の説明】
【００５３】
2a  サーバ
2b  サーバ
3  コアスイッチ、ノード
4a  高速分配スイッチ、ノード
4b  高速分配スイッチ、ノード
5a  ローカル分配スイッチ、ノード
5b  ローカル分配スイッチ、コマンドサーバ、ノード
6a  エッジスイッチ、ノード
6b  エッジスイッチ、ノード
6c  エッジスイッチ、ノード
7a  ネットワークコンピュータ
7b  ネットワークコンピュータ
8a  ネットワークコンピュータ
8b  ネットワークコンピュータ
9a  ネットワークコンピュータ
9b  ネットワークコンピュータ
34  コマンドサーバ
35  ノード
【図１】
0006456304.tif 000002
【図２】
0006456304.tif 000003
【図３】
0006456304.tif 000004
【図４】
0006456304.tif 000005