(57)【要約】【課題】特定の動作を行うための規定の能力を有するエージェントの等価セットを識別および選択するための技術を提供する。【解決手段】記憶領域ネットワーク・ファブリックに対する情報を集めるためのエージェントを定めるステップは、ファブリック内でさまざまな動作を行い得るエージェントを識別するファブリック発見動作の使用によって行われてもよい。エージェントの定められた能力から、さまざまな動作を行うための等価サブセットのリストの生成を助けるために動的能力グリッドにデータが投入されてもよい。次いで、各等価サブセットからのエージェントの最も効率的なセットを選択して動作を行ってもよく、等価サブセット内のエージェントの他のセットは予期せぬ失敗の際の２次的選択として利用可能である。たとえば、ゾーン分けおよびトポロジなどのネットワーク動作を最も効率的に達成するために、等価サブセットのリストから発見されたエージェントを用いて記憶領域ネットワーク内でファブリック探索を実行してもよい。【選択図】図２
2013542476.tif 000002
【特許請求の範囲】
【請求項１】
記憶領域ネットワーク内のファブリックのセットから情報を集めるためにエージェントを選択する方法であって、前記方法は、
前記記憶領域ネットワークに接続された各エージェントを用いて前記ファブリックのセットに対してファブリック発見動作を行うステップであって、前記ファブリック発見動作は前記ファブリックのセット内の各エージェントの能力情報を生成する、ステップと、
前記ファブリックのセットに対する情報を収集できるエージェントの等価サブセットのグループを生成するステップであって、エージェントの前記等価サブセットは前記記憶領域ネットワーク内の各ファブリックに関するエージェント能力に基づいてグループ化される、ステップとを含み、前記等価サブセットのグループを生成するステップは、各ファブリックに対して、
前記ファブリックについて報告する各エージェントに対するデータを能力マトリックスに投入するステップであって、前記能力マトリックスは前記ファブリックに対する各エージェントの能力のセットの指示を提供する、ステップと、
前記能力マトリックスに示されるとおりに前記ファブリックに対する重複した能力を有するエージェントのサブセットを識別するステップと、
識別されたエージェントの各サブセット内の各エージェントに対する通信チェックを行うステップと、
識別されたエージェントの前記サブセットに対する前記通信チェックが成功したことに応答して、識別されたエージェントの各サブセットを前記等価サブセットのグループ内のグループに追加するステップと
を含み、前記方法はさらに、
前記ファブリックのセットに対して、エージェントの前記等価サブセットのグループからエージェントの等価サブセットを選択するステップと、
前記選択された等価サブセットを用いて前記ファブリックのセットに対するファブリック探索を実行するステップと
を含む、方法。
【請求項２】
等価サブセットを選択するステップおよび前記ファブリックのセットに対する前記ファブリック探索を実行するステップは、
各ファブリックに対して１つの等価エージェント・サブセットを用いてファブリック探索を試みるための第１のジョブを生成するステップであって、前記１つの等価エージェント・サブセットは等価エージェント・サブセットのランク付きリストから選択される、ステップと、
前記第１のジョブが完了するのを待つステップと、
前記第１のジョブの実行が成功しなかったことに応答して、等価エージェント・サブセットの前記ランク付きリストから選択された他の等価サブセットを用いてファブリック探索を試みるための第２のジョブを生成するステップと、
前記第２のジョブが完了するのを待つステップと、
もし前記第１のジョブまたは前記第２のジョブにおいて１つまたはそれ以上のエージェントの実行が成功しなければ、等価エージェント・サブセットの前記ランク付きリストを更新するステップと
をさらに含む、請求項１に記載の方法。
【請求項３】
識別されたエージェントの各サブセットを前記等価サブセットのグループに追加するステップは、等価サブセットの各グループ内の等価サブセットをランク付けするステップを含む、請求項１または２に記載の方法。
【請求項４】
等価サブセットの各グループ内の等価サブセットは、エージェント・タイプまたはエージェント固有識別子に基づいて分類される、請求項１から３のいずれか１項に記載の方法。
【請求項５】
等価サブセットの各グループ内の等価サブセットは、ほとんどのセルをカバーするセット、ＣＩＭＯＭエージェントのみを有するサブセット、ＣＩＭＯＭおよびＳＮＭＰエージェントのみを有するサブセット、ＣＩＭＯＭ、ＳＮＭＰおよび帯域内エージェントのみを有するサブセット、ネイティブＡＰＩを有するサブセット、コマンド・ライン・インタフェースを有するサブセット、およびすべてのエージェントの順序でランク付けされる、請求項１から４のいずれか１項に記載の方法。
【請求項６】
ファブリック発見動作を行うステップは、現在探索されるファブリックの部分であるスイッチのリストを得るステップをさらに含む、請求項１から５のいずれか１項に記載の方法。
【請求項７】
各等価サブセット内の識別されたエージェント・サブセットの複合能力を定めることによって、前記ファブリックから収集できる情報の限界を定めるステップをさらに含む、請求項１から６のいずれか１項に記載の方法。
【請求項８】
エージェントを選択する前記方法は、１つまたはそれ以上のファブリックに対するファブリック探索のスケジューリングに応答して行われる、請求項１から７のいずれか１項に記載の方法。
【請求項９】
エージェントを選択する前記方法は、ファブリック・イベントの受け取り、および前記ファブリック・イベントによるファブリック変化の可能性を検出するための自動ファブリック探索の開始に応答して行われる、請求項１から８のいずれか１項に記載の方法。
【請求項１０】
記憶管理システムであって、
ファブリックのセットを提供するように構成された記憶領域ネットワークと、
前記記憶管理システム内の少なくとも１つのプロセッサと、
前記記憶領域ネットワーク内の前記ファブリックのセットから情報を集めるためにエージェントを選択するために前記少なくとも１つのプロセッサとともに動作可能な命令を有する、前記記憶管理システム内の少なくとも１つのメモリ記憶装置とを含み、前記命令は前記記憶管理システム内のハードウェア構成要素において実行されることによって、
前記記憶領域ネットワークに接続された各エージェントを用いて前記ファブリックのセットに対してファブリック発見動作を行うステップであって、前記ファブリック発見動作は前記ファブリックのセット内の各エージェントの能力情報を生成する、ステップと、
前記ファブリックのセットに対する情報を収集できるエージェントの等価サブセットのグループを生成するステップであって、エージェントの前記等価サブセットは前記記憶領域ネットワーク内の各ファブリックに関するエージェント能力に基づいてグループ化される、ステップを行い、前記等価サブセットのグループを生成するステップは、各ファブリックに対して、
前記ファブリックについて報告する各エージェントに対するデータを能力マトリックスに投入するステップであって、前記能力マトリックスは前記ファブリックに対する各エージェントの能力のセットの指示を提供する、ステップと、
前記能力マトリックスに示されるとおりに前記ファブリックに対する重複した能力を有するエージェントのサブセットを識別するステップと、
識別されたエージェントの各サブセット内の各エージェントに対する通信チェックを行うステップと、
識別されたエージェントの前記サブセットに対する前記通信チェックが成功したことに応答して、識別されたエージェントの各サブセットを前記等価サブセットのグループ内のグループに追加するステップと
を含み、前記命令はさらに、
前記ファブリックのセットに対して、エージェントの前記等価サブセットのグループからエージェントの等価サブセットを選択するステップと、
前記選択された等価サブセットを用いて前記ファブリックのセットに対するファブリック探索を実行するステップと
を行う、記憶管理システム。
【請求項１１】
等価サブセットを選択するステップおよび前記ファブリックのセットに対する前記ファブリック探索を実行するステップは、
各ファブリックに対して１つの等価エージェント・サブセットを用いてファブリック探索を試みるための第１のジョブを生成するステップであって、前記１つの等価エージェント・サブセットは等価エージェント・サブセットのランク付きリストから選択される、ステップと、
前記第１のジョブが完了するのを待つステップと、
前記第１のジョブの実行が成功しなかったことに応答して、等価エージェント・サブセットの前記ランク付きリストから選択された他の等価サブセットを用いてファブリック探索を試みるための第２のジョブを生成するステップと、
前記第２のジョブが完了するのを待つステップと、
もし前記第１のジョブまたは前記第２のジョブにおいて１つまたはそれ以上のエージェントの実行が成功しなければ、等価エージェント・サブセットの前記ランク付きリストを更新するステップと
をさらに含む、請求項１０に記載の記憶管理システム。
【請求項１２】
識別されたエージェントの各サブセットを前記等価サブセットのグループに追加するステップは、等価サブセットの各グループ内の等価サブセットをランク付けするステップを含む、請求項１０または１１に記載の記憶管理システム。
【請求項１３】
等価サブセットの各グループ内の等価サブセットは、エージェント・タイプまたはエージェント固有識別子に基づいて分類される、請求項１０から１２のいずれか１項に記載の記憶管理システム。
【請求項１４】
等価サブセットの各グループ内の等価サブセットは、ほとんどのセルをカバーするセット、ＣＩＭＯＭエージェントのみを有するサブセット、ＣＩＭＯＭおよびＳＮＭＰエージェントのみを有するサブセット、ＣＩＭＯＭ、ＳＮＭＰおよび帯域内エージェントのみを有するサブセット、ネイティブＡＰＩを有するサブセット、コマンド・ライン・インタフェースを有するサブセット、およびすべてのエージェントの順序でランク付けされる、請求項１０から１３のいずれか１項に記載の記憶管理システム。
【請求項１５】
ファブリック発見動作を行うステップは、現在探索されるファブリックの部分であるスイッチのリストを得るステップをさらに含む、請求項１０から１４のいずれか１項に記載の記憶管理システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は一般的に、記憶領域ネットワークおよびその他の規定のシステムにおいて起こるデータ通信および動作に関する。本発明の一実施形態は、より特定的にエージェントの使用による記憶領域ネットワーク動作の管理に関する。
【背景技術】
【０００２】
ファイバ・チャネル（Ｆｉｂｒｅ  ｃｈａｎｎｅｌ：ＦＣ）記憶領域ネットワーク（ｓｔｏｒａｇｅ  ａｒｅａ  ｎｅｔｗｏｒｋｓ：ＳＡＮｓ）は、複数の「ファブリック」を有するネットワーク・トポロジを提供するように構成されてもよい。ファブリックは典型的に１つまたはそれ以上のファイバ・チャネル・スイッチで構成されることによって、互いに接続されたエンドポイント・デバイス（「ノード」）が交換ネットワークを介して通信できるようにする。ＦＣ記憶領域ネットワークのための典型的な管理アプリケーションは、ファブリックおよびそのファブリックのメンバの状態を探索して報告できるさまざまなデータ・ソース（一般的に「エージェント」と呼ばれる）を用いる。これらのエージェントは通信のためにさまざまなアプリケーション・プログラミング・インタフェース（ａｐｐｌｉｃａｔｉｏｎ  ｐｒｏｇｒａｍｍｉｎｇ  ｉｎｔｅｒｆａｃｅｓ：ＡＰＩｓ）を用い、エージェントに対して「可視の」スイッチ、およびこれらのエンティティに与えられる情報のタイプの両方の点で、ある範囲の（おそらくは重複する）能力を有する。エージェントの能力およびエージェントに対して可視のスイッチのリストは、時間とともに変化し得る。
【０００３】
典型的には、データを収集する必要があるたびに各ファブリックに対する情報を収集するために、複数のエージェントのセットが必要になることがある。なぜならエージェントは異なる能力を有することがあり、ファブリック内のスイッチの異なるサブセットについて報告し得るかもしれないからである。エージェント間の重複および冗長性のために、ファブリック内の１つまたはそれ以上のスイッチのある局面を報告できるエージェントのすべてを使用することは非効率的である。この効率の悪さは、ファブリックに生成されるトラフィック負荷、ならびに冗長なデータ収集およびその後の処理オーバーヘッドによってもたらされる。
【０００４】
より効率的な解決策は、（ファブリック内のスイッチおよび能力／報告される情報のカテゴリの両方の点で）情報の最大カバレッジを提供できるエージェントのサブセットを見出してから、そのセットを用いて管理トラフィック負荷およびその後の処理を低減させることである。いくつかの既存の技術は複数の情報収集エージェントからのネットワーク情報を発見できるが、既存の技術は必要とされるエージェントの数に対する最小解を効率的に見つけることができず、障害への応答に欠点を有する。
【発明の概要】
【発明が解決しようとする課題】
【０００５】
エージェントのサブセットを決定してランク付けする改善された技術、およびファブリック内のノードに関する情報を集めるためにこれらのサブセットを用いるための改善された技術が必要とされている。
【課題を解決するための手段】
【０００６】
したがって本発明は第１の側面において、記憶領域ネットワーク内のファブリックのセットから情報を集めるためにエージェントを選択する方法を提供し、この方法は、記憶領域ネットワークに接続された各エージェントを用いてファブリックのセットに対してファブリック発見動作を行うステップであって、ファブリック発見動作はファブリックのセット内の各エージェントの能力情報を生成する、ステップと、ファブリックのセットに対する情報を収集できるエージェントの等価サブセットのグループを生成するステップであって、エージェントの等価サブセットは記憶領域ネットワーク内の各ファブリックに関するエージェント能力に基づいてグループ化される、ステップとを含み、このステップは各ファブリックに対して、そのファブリックについて報告する各エージェントに対するデータを能力マトリックスに投入するステップであって、能力マトリックスはファブリックに対する各エージェントの能力のセットの指示を提供する、ステップと、能力マトリックスに示されるとおりにファブリックに対する重複した能力を有するエージェントのサブセットを識別するステップと、識別されたエージェントの各サブセット内の各エージェントに対する通信チェックを行うステップと、識別されたエージェントのサブセットに対する通信チェックが成功したことに応答して、識別されたエージェントの各サブセットを等価サブセットのグループ内のグループに追加するステップとを含み、この方法はさらに、ファブリックのセットに対して、エージェントの等価サブセットのグループからエージェントの等価サブセットを選択するステップと、選択された等価サブセットを用いてファブリックのセットに対するファブリック探索を実行するステップとを含む。
【０００７】
好ましくは、等価サブセットを選択するステップおよびファブリックのセットに対するファブリック探索を実行するステップは、各ファブリックに対して１つの等価エージェント・サブセットを用いてファブリック探索を試みるための第１のジョブを生成するステップであって、この１つの等価エージェント・サブセットは等価エージェント・サブセットのランク付きリストから選択される、ステップと、第１のジョブが完了するのを待つステップと、第１のジョブの実行が成功しなかったことに応答して、等価エージェント・サブセットのランク付きリストから選択された他の等価サブセットを用いてファブリック探索を試みるための第２のジョブを生成するステップと、第２のジョブが完了するのを待つステップと、もし第１のジョブまたは第２のジョブにおいて１つまたはそれ以上のエージェントの実行が成功しなければ、等価エージェント・サブセットのランク付きリストを更新するステップとをさらに含む。
【０００８】
好ましくは、識別されたエージェントの各サブセットを等価サブセットのグループに追加するステップは、等価サブセットの各グループ内の等価サブセットをランク付けするステップを含む。好ましくは、等価サブセットの各グループ内の等価サブセットは、エージェント・タイプまたはエージェント固有識別子に基づいて分類される。好ましくは、等価サブセットの各グループ内の等価サブセットは、次の順序でランク付けされる。すなわち、ほとんどのセルをカバーするセット、ＣＩＭＯＭエージェントのみを有するサブセット、ＣＩＭＯＭおよびＳＮＭＰエージェントのみを有するサブセット、ＣＩＭＯＭ、ＳＮＭＰおよび帯域内エージェントのみを有するサブセット、ネイティブＡＰＩを有するサブセット、コマンド・ライン・インタフェースを有するサブセット、およびすべてのエージェントである。好ましくは、ファブリック発見動作を行うステップは、現在探索されるファブリックの部分であるスイッチのリストを得るステップをさらに含む。好ましくはこの方法は、各等価サブセット内の識別されたエージェント・サブセットの複合能力を定めることによって、そのファブリックから収集できる情報の限界を定めるステップをさらに含む。
【０００９】
好ましくは、エージェントを選択する方法は、１つまたはそれ以上のファブリックに対するファブリック探索のスケジューリングに応答して行われる。好ましくは、エージェントを選択する方法は、ファブリック・イベントの受け取り、およびそのファブリック・イベントによるファブリック変化の可能性を検出するための自動ファブリック探索の開始に応答して行われる。
【００１０】
動的能力グリッドを用いて規定の能力を有するエージェントの等価セットを選択する方法が具現化されてもよく、この方法は、規定の環境内の各エージェントを用いて発見動作を行うことによってエージェント能力情報を定めるステップと、発見動作から収集されたエージェント能力情報に基づいて、エージェントの等価サブセットのグループを生成するステップであって、エージェントの等価サブセットは規定の環境において発見された各エージェント能力によってグループ化される、ステップとを含み、このステップは、規定の環境内で動作する各エージェントに対するデータを能力マトリックスに投入するステップであって、能力マトリックスは規定の環境内の項目に関する各エージェントに対する能力のセットの指示を提供する、ステップと、能力マトリックスに示されるとおりに規定の環境内で重複した能力を有するエージェントのセットを識別するステップと、識別されたエージェントのセットのスコア付けおよびランク付けを行うステップと、識別されたエージェントの各セットを等価サブセットのグループ内のグループに追加するステップとを含み、この方法はさらに、等価サブセットに関連する能力に基づいて規定の環境内で動作を行うために等価サブセットのグループから等価サブセットを選択するステップと、選択された等価サブセットを用いて規定の環境内で動作を実行するステップとを含む。
【００１１】
第２の側面においては、記憶管理システムが提供され、この記憶管理システムは、ファブリックのセットを提供するように構成された記憶領域ネットワークと、記憶管理システム内の少なくとも１つのプロセッサと、記憶領域ネットワーク内のファブリックのセットから情報を集めるためにエージェントを選択するために少なくとも１つのプロセッサとともに動作可能な命令を有する、記憶管理システム内の少なくとも１つのメモリ記憶装置とを含み、この命令は記憶管理システム内のハードウェア構成要素において実行されることによって以下のステップを行う。すなわち、記憶領域ネットワークに接続された各エージェントを用いてファブリックのセットに対してファブリック発見動作を行うステップであって、ファブリック発見動作はファブリックのセット内の各エージェントの能力情報を生成する、ステップと、ファブリックのセットに対する情報を収集できるエージェントの等価サブセットのグループを生成するステップであって、エージェントの等価サブセットは記憶領域ネットワーク内の各ファブリックに関するエージェント能力に基づいてグループ化される、ステップとを行い、このステップは各ファブリックに対して、そのファブリックについて報告する各エージェントに対するデータを能力マトリックスに投入するステップであって、能力マトリックスはファブリックに対する各エージェントの能力のセットの指示を提供する、ステップと、能力マトリックスに示されるとおりにファブリックに対する重複した能力を有するエージェントのサブセットを識別するステップと、識別されたエージェントの各サブセット内の各エージェントに対する通信チェックを行うステップと、識別されたエージェントのサブセットに対する通信チェックが成功したことに応答して、識別されたエージェントの各サブセットを等価サブセットのグループ内のグループに追加するステップとを含み、この命令はさらに、ファブリックのセットに対して、エージェントの等価サブセットのグループからエージェントの等価サブセットを選択するステップと、選択された等価サブセットを用いてファブリックのセットに対するファブリック探索を実行するステップとを行う。
【００１２】
好ましくは、等価サブセットを選択するステップおよびファブリックのセットに対するファブリック探索を実行するステップは、各ファブリックに対して１つの等価エージェント・サブセットを用いてファブリック探索を試みるための第１のジョブを生成するステップであって、この１つの等価エージェント・サブセットは等価エージェント・サブセットのランク付きリストから選択される、ステップと、第１のジョブが完了するのを待つステップと、第１のジョブの実行が成功しなかったことに応答して、等価エージェント・サブセットのランク付きリストから選択された他の等価サブセットを用いてファブリック探索を試みるための第２のジョブを生成するステップと、第２のジョブが完了するのを待つステップと、もし第１のジョブまたは第２のジョブにおいて１つまたはそれ以上のエージェントの実行が成功しなければ、等価エージェント・サブセットのランク付きリストを更新するステップとをさらに含む。好ましくは、識別されたエージェントの各サブセットを等価サブセットのグループに追加するステップは、等価サブセットの各グループ内の等価サブセットをランク付けするステップを含む。好ましくは、等価サブセットの各グループ内の等価サブセットは、エージェント・タイプまたはエージェント固有識別子に基づいて分類される。好ましくは、等価サブセットの各グループ内の等価サブセットは、次の順序でランク付けされる。すなわち、ほとんどのセルをカバーするセット、ＣＩＭＯＭエージェントのみを有するサブセット、ＣＩＭＯＭおよびＳＮＭＰエージェントのみを有するサブセット、ＣＩＭＯＭ、ＳＮＭＰおよび帯域内エージェントのみを有するサブセット、ネイティブＡＰＩを有するサブセット、コマンド・ライン・インタフェースを有するサブセット、およびすべてのエージェントである。好ましくは、ファブリック発見動作を行うステップは、現在探索されるファブリックの部分であるスイッチのリストを得るステップをさらに含む。好ましくはこの記憶管理システムは、各等価サブセット内の識別されたエージェント・サブセットの複合能力を定めることによって、そのファブリックから収集できる情報の限界を定めるステップを行うための命令をさらに含む。好ましくは、エージェントを選択する方法は、１つまたはそれ以上のファブリックに対するファブリック探索のスケジューリングに応答して行われる。好ましくは、エージェントを選択する方法は、ファブリック・イベントの受け取り、およびそのファブリック・イベントによるファブリック変化の可能性を検出するための自動ファブリック探索の開始に応答して行われる。
【００１３】
よって、以下のものを含むシステムが具現化されてもよい。すなわちこのシステムは、システム内の少なくとも１つのプロセッサと、動的能力グリッドを用いて規定の能力を有するエージェントの等価セットを選択するために少なくとも１つのプロセッサとともに動作可能な命令を有する、システム内の少なくとも１つのメモリ記憶装置とを含み、この命令はシステム内のハードウェア構成要素において実行されることによって以下のステップを行う。すなわち、規定の環境内の各エージェントを用いて発見動作を行うことによってエージェント能力情報を定めるステップと、発見動作から収集されたエージェント能力情報に基づいて、エージェントの等価サブセットのグループを生成するステップであって、エージェントの等価サブセットは規定の環境において発見された各エージェント能力によってグループ化される、ステップとを行い、このステップは、規定の環境内で動作する各エージェントに対するデータを能力マトリックスに投入するステップであって、能力マトリックスは規定の環境内の項目に関する各エージェントに対する能力のセットの指示を提供する、ステップと、能力マトリックスに示されるとおりに規定の環境内で重複した能力を有するエージェントのセットを識別するステップと、識別されたエージェントのセットのスコア付けおよびランク付けを行うステップと、識別されたエージェントの各セットを等価サブセットのグループ内のグループに追加するステップとを含み、この命令はさらに、等価サブセットに関連する能力に基づいて規定の環境内で動作を行うために等価サブセットのグループから等価サブセットを選択するステップと、選択された等価サブセットを用いて規定の環境内で動作を実行するステップとを行う。
【００１４】
すなわち、本発明のさまざまな実施形態は、記憶領域ネットワーク・ファブリックまたはその他の規定の環境に対する情報を最も効果的に集めるために用いられ得るエージェントの等価（またはいくつかの制限を伴う等価）サブセットを定めるための技術を提供する。本明細書に開示される技術はさらに、エージェントの混合が与えられたときにファブリックに対して集められる情報を最大化するための解決策を提供し、ファブリックに対して集められる情報の限界を定める能力を提供し、かつエージェントの追加および除去の影響を分析するための「ｗｈａｔ  ｉｆ（仮定）」分析を行う一方で、集められる情報の限界を克服するために追加すべきエージェントを定める能力を提供する。
【００１５】
一実施形態においては、アルゴリズムを用いて等価サブセットを計算し、次いでエージェント割り当てを行う。エージェント割り当ては、ファブリックに対する情報を集めるために、エージェントの１つまたはそれ以上の最高ランクが付けられた等価サブセットからのエージェントを利用する。こうした割り当ては、収集される情報を最大化したまま、より少数のエージェントを用いてファブリックに対する情報を集める可能性がある。割り当てられたエージェントは、次いでファブリックから情報を集めるために動作してもよく、適切に実行または機能できなかったあらゆるエージェントは、好適なエージェントの他の等価サブセットに置換されてもよい。
【００１６】
本発明のさらなる側面は、「等価サブセット」の概念を拡張して、ファブリックに対する情報の可用性の機能向上を提供する。たとえば、いくつかの「ｗｈａｔ  ｉｆ」シナリオを行って、エージェントまたはエージェント・タイプの追加または除去の影響を分析することが可能である。加えて、ファブリックに対する完全な情報を収集できるようにするためにはどのタイプのエージェントまたは特定の単数もしくは複数のエージェントを追加する必要があるかを定め、一方でエージェントのどのサブセットが情報収集に成功しそうかを定めることも可能である。さらに、等価サブセットの使用によって、情報を集めている間にいくつかのサブセットが失敗したときに、追加の等価サブセットを試みることが可能になり、それによってファブリックに対する情報収集の可能性が高くなる。
【００１７】
先行技術において公知の技術に対する本開示技術の利点のいくつかは以下を含む。１）最小数のエージェントを用いて収集される情報の最大化、および情報のいくつかが必要とされないか、または他のエージェントによって収集される場合に、部分的な情報を収集するためにエージェントを使用する能力、２）エージェントの混合に基づいてファブリックに対する完全な情報を収集できるかどうかの判定、および部分的情報しか収集できない場合に収集されない特定の情報を判定すること、３）失敗が起こったときに、情報を集めるために使用すべき特定の代替エージェントを定めるステップと、誤りのアラートが生成されることを防ぐステップとを含む失敗シナリオを操作する能力、および第１の実行における成功の可能性を改善するために事前チェックを行う能力、ならびに４）エージェント／エージェント・タイプの追加／除去の効果、および情報のカバレッジを改善するためにどのエージェント／エージェント・タイプを追加する必要があるかの「ｗｈａｔ  ｉｆ」分析を支持し、代替アルゴリズムを用いて等価エージェント・サブセットを並行して呼び出すことによって、全体の処理時間を低減させながら同時に頑強性を改善する能力。
【００１８】
本明細書に開示される１つの特定の実施形態において、記憶領域ネットワーク内のファブリックから情報を集めるためにエージェントを定めるための方法は、記憶領域ネットワークに接続されたエージェントを用いてファブリックのセットに対してファブリック発見動作を行うステップと、ファブリック発見動作から識別された能力情報を用いて、ファブリックに対する情報を収集できるエージェントの等価サブセットのグループを生成するステップと、探索される各ファブリックに対してエージェントの等価サブセットを選択するステップと、最終的に、選択された等価サブセットを用いてファブリックのセットに対するファブリック探索を実行するステップとを含む。
【００１９】
より特定的には、ファブリック発見動作からエージェントの等価サブセットのグループを生成するときに、エージェントの等価サブセットは記憶領域ネットワーク内の各ファブリックに関するエージェント能力に基づいてグループ化されてもよい。たとえば、これらの能力はトポロジ、ブレード、性能管理のためのスイッチ・ポート情報、および物理インフラストラクチャを含んでもよい。次いで、各ファブリックに対して次のステップが繰り返されてもよい。すなわち、ファブリックについて報告する各エージェントに対するデータを能力マトリックスに投入するステップであって、能力マトリックスはファブリックに対する各エージェントの能力のセットの指示を提供する、ステップと、能力マトリックスに示されるとおりにファブリックに対する重複した能力を有するエージェントのサブセットを識別するステップと、識別されたエージェントの各サブセット内の各エージェントに対する通信チェックを行うステップと、識別されたエージェントのサブセットに対する通信チェックが成功したことに応答して、識別されたエージェントの各サブセットを等価サブセットのグループ内のグループに追加するステップとである。生成されるこれらの等価サブセットは、ファブリック内のすべてのスイッチに対するすべてのカテゴリの情報を最大限にカバーするサブセットの組み合わせである。
【００２０】
動的能力グリッドを用いて規定の能力を有するエージェントの等価セットを選択するための別の特定の実施形態も本明細書に記載されており、それはより一般的な環境からの等価サブセットの選択および使用を可能にする。この実施形態においては類似のステップが行われ、そのステップには規定の環境内で情報を収集できる各エージェントを用いて発見動作を行うステップと、発見動作からエージェントの等価サブセットのグループを生成するステップと、等価サブセットに関連するエージェント能力および特性に基づいて、動作を行うために等価サブセットのグループから等価サブセットを選択するステップと、選択された等価サブセットを用いて規定の環境内で動作を実行するステップとが含まれる。
【００２１】
エージェントの等価サブセットは規定の環境において発見されたエージェント能力のタイプに基づいてグループ化され、このステップは、規定の環境内で動作する各エージェントに対するデータを能力マトリックスに投入するステップであって、能力マトリックスは規定の環境内の項目に関する各エージェントに対する能力のセットの指示を提供する、ステップと、能力マトリックスに示されるとおりに規定の環境内で重複した能力を有するエージェントのセットを識別するステップと、識別されたエージェントのセットのスコア付けおよびランク付けを行うステップと、識別されたエージェントの各セットを等価サブセットのグループ内のグループに追加するステップとを含む。
【００２２】
本発明の別の実施形態は、本明細書に記載される技術と整合性のあるプロセッサと、メモリ・ユニットと、記憶領域ネットワーク内のファブリックのセット（またはより一般的に規定される環境）から情報を集めるためにメモリ・ユニット内に保存される命令とを含む記憶管理システムを提供する。加えて、本発明の別の実施形態は、記憶領域ネットワーク内のファブリックのセット（またはより一般的に規定される環境）から情報を集めるためのコンピュータ・プログラム製品を提供し、このコンピュータ・プログラム製品は、本明細書に記載される技術を実装するためにともに具現化されるコンピュータ可読プログラム・コードを有するコンピュータ可読記憶媒体を含む。
【００２３】
添付の図面を参照して、単なる例として本発明の好ましい実施形態を説明する。
【図面の簡単な説明】
【００２４】
【図１】本発明の実施形態を実装し得る記憶領域ネットワークおよび２つのファブリックの構成の例を示す図である。
【図２】本発明の実施形態を実装し得る、スイッチのセットおよびエージェントのセットを有するファブリックの例を示す図である。
【図３】本発明の一実施形態に従う、記憶領域ネットワーク・ファブリックの特性を識別するために用いられる動的能力グリッドを示す図である。
【図４】本発明の実施形態を実装し得る、スイッチのセットおよびエージェントのセットを有するファブリックの別の例を示す図である。
【図５】本発明の一実施形態に従う、ファブリック内のスイッチのセットおよびエージェントに対する値を保存する動的能力グリッドの例を示す図である。
【図６】本発明の実施形態を実装し得る、スイッチのセットおよびエージェントのセットを有するファブリックの別の例を示す図である。
【発明を実施するための形態】
【００２５】
本開示発明の実施形態は、記憶領域ネットワーク・ファブリックまたはその他の複合項目構成から情報を集めるためのエージェントの効率的な識別および使用を容易にするためのさまざまな技術および構成を提供する。たとえば既存のＳＡＮファブリック管理シナリオにおいては、複数のエージェントがファブリックに関する冗長な情報を集める。本開示発明の一実施形態は、エージェントのサブセットを用いて、それらのエージェントの各々が探索すべきファブリックの割り当てを行うことによって管理負荷を低減し、かつ必要な処理の量を低減するように動作する。
【００２６】
以下の開示は、記憶領域ネットワークおよびこうしたネットワーク内のさまざまなファブリック管理技術に関する非限定的な実施例のセットを提供する。当業者が認識するとおり、本発明の実施形態は、複合構成（たとえばファブリックなど）に関する情報を報告または収集できるエージェント（または類似のデータ収集ソース）が存在するあらゆる環境において用いられてもよい。
【００２７】
ＳＡＮにおいて、エージェントはファブリックに関する何らかの情報を報告できるデータ・ソースの役割をする。ＳＡＮファブリックを探索できるエージェントの混合が与えられるとき、本発明の一実施形態は、ファブリック探索の際に収集できる情報の限界（もしあれば）を定めるために動作してもよい。さらに、本発明のさまざまな実施形態は、もしエージェントの１つまたはそれ以上が適切に動作できなければ、ファブリックから情報を収集できる等価エージェントおよびエージェントの等価サブセットを定めるために動作してもよい。あるファブリックに対して等価エージェント・サブセットが競合するときは、いくつかのｗｈａｔ−ｉｆシナリオが実行されてもよく、このシナリオはエージェントの除去の影響を定めるステップと、等価サブセット内の複数のサブセットからエージェントを呼び出すステップと、探索に用いられるエージェントの数を減らすと同時にファブリック探索の頑強性を改善するための他のやり方を算出するステップとを含む。
【００２８】
図１は、本発明のさまざまな実施形態の側面を実装し得る記憶領域ネットワーク（ＳＡＮ）の例を示す。図１に示されるＳＡＮ１００は、相互接続された計算デバイス、記憶装置およびネットワーキング・デバイスのネットワークを示す。特定的には、ＳＡＮ１００は複数のノード１０２、１０４、１０６、１０８、１１０、１１２を含む。これらのノードはＳＡＮの記憶能力にアクセスするホストであってもよいし、ノードはＳＡＮのデータ記憶能力を提供するために用いられる記憶サブシステムであってもよい。ＳＡＮには、たとえばテープ・ライブラリおよび記憶バーチャライザなどの他のタイプのノードも存在してもよい。図１に示されるとおり、これらのノードは計算システム１０２、１０４および１１２に加えて記憶ユニット１０６、１０８および１１０を含んでもよい。
【００２９】
図１に示されるとおり、ＳＡＮ１００内の複数のノード間に存在する交換ネットワークは第１のファブリック１２０によって設定される。ファブリックはノードおよびノードに接続される交換ネットワークを包含し、ＳＡＮは１つまたはそれ以上のファブリックおよびネットワーク構成全体のより大きな集合体である。したがってファブリック１２０は、ＳＡＮ１００内の複数のスイッチ（１２２および１２４）に加えて、ＳＡＮ１００内で接続されるすべてのノードを含む。ファブリック１２０内に示されるとおり、スイッチ１２２および１２４は接続１３１、１３２、１３３、１３４、１３５、１３６を介してさまざまなネットワーク・ノードに接続されることによって、ファブリック接続に冗長性を有さないライン・トポロジ・ネットワークを有するネットワークを生成する（スイッチ１２２および１２４はインタ・スイッチ・リンク１５２を通じて直接接続される）。
【００３０】
加えて図１は、スイッチ１２６および１２８を含む第２のファブリック１２５のオーバーレイ図も提供する。つまり、第２のファブリック１２５もネットワーク・ノード１０２、１０４、１０６、１０８、１１０、１１２をカバーするが、それはスイッチ１２６および１２８を通じた接続１４１、１４２、１４３、１４４、１４５、１４６を介したものである（スイッチ１２６および１２８はインタ・スイッチ・リンク１５４を通じて直接接続される）。
【００３１】
図１のＳＡＮ１００には２つのファブリックのみが示されているが、異なるサイズの記憶領域ネットワーク内に多数のファブリックが構成されてもよいことを当業者は認識するであろう。同様にＳＡＮの構成は、たとえばＳＡＮ内のスイッチ間に追加のインタ・スイッチ・リンクを生成して部分的または完全に接続されたメッシュ・トポロジを生成することなどによって異なっていてもよい。たとえば、ＳＡＮ１００内の接続はファイバ・チャネル接続であってもよく、スイッチ１２２、１２４、１２６、１２８はファイバ・チャネル・スイッチであってもよい。代替的な実施形態において、ＳＡＮ１００内で用いられるネットワーク・タイプは、シリアル接続ＳＣＳＩ（ｓｅｒｉａｌ  ａｔｔａｃｈｅｄ  ＳＣＳＩ：ＳＡＳ）、ｉＳＣＳＩ、ファイバ・チャネル・オーバ・イーサネット（Ｒ）（Ｆｉｂｒｅ  Ｃｈａｎｎｅｌ  ｏｖｅｒ  Ｅｔｈｅｒｎｅｔ：ＦＣｏＥ）、またはその他の好適な記憶領域ネットワーク・データ転送技術であってもよい。よって、ＳＡＮ内のファブリックに接続される記憶装置、スイッチおよびサブシステムは、ファイバ・チャネル記憶装置、ＳＡＳ記憶装置、単一記憶装置、または記憶装置および適切なネットワーク・トポロジにおいて動作可能なエンクロージャのその他の組み合わせであってもよい。以下の開示は、記憶領域ネットワークにおける使用が普及していることから、概してファイバ・チャネル・トポロジを用いるファブリックを示すが、本発明は他のネットワーク・プロトコルおよび技術にも等しく適用可能であることを当業者は認識するであろう。
【００３２】
ＳＡＮまたはあらゆるその他の分散処理システムの動作の成功は、ネットワークの構成要素がうまく通信して常時機能することに依存している。ＳＡＮの正しい継続的な動作を確認するために、ファブリックのさまざまな構成要素を探索するためにエージェントが配置されてもよい。たとえば、ファブリックの探索を用いて、たとえばファブリック内のスイッチ、スイッチ内のポート、およびこれらのスイッチ・ポートが接続されるポートのリストなどの詳細を含むトポロジ情報を集めてもよい。すなわち、エージェントは探索動作を用いてＳＡＮの構成を定め、すべてのネットワーク接続が完全かつ動作可能であることを確認してもよい。しかし、エージェントがファブリックに配置されて探索を進行できるようになる前の重要なタスクは、ファブリック発見を行って、利用可能なエージェントのどの選択が将来の動作においてファブリックを最も完全かつ効率的に探索するかを識別することである。
【００３３】
エージェントを用いる既存の技術は、ファブリック発見および最も適切なファブリック・モニタリング・エージェントの識別に対する包括的な解決策を提供していない。たとえば、エージェントを識別するための限定されたアプローチの１つがナガラジラオ（Ｎａｇａｒａｊｒａｏ）らの米国特許出願第１０／６６６，０４６号「複数の情報収集エージェントからのネットワーク情報の知的発見（Ｉｎｔｅｌｌｉｇｅｎｔ  ｄｉｓｃｏｖｅｒｙ  ｏｆ  ｎｅｔｗｏｒｋ  ｉｎｆｏｒｍａｔｉｏｎ  ｆｒｏｍ  ｍｕｌｔｉｐｌｅ  ｉｎｆｏｒｍａｔｉｏｎ  ｇａｔｈｅｒｉｎｇ  ａｇｅｎｔｓ）」に記載されており、本明細書においてその全体が引用により援用される。以下の考察から明らかであるとおり、本開示発明はこの技術およびその他の技術に対する顕著な改善を提供する。
【００３４】
１．米国特許出願第１０／６６６，０４６号に開示されるものなどの技術において、候補エージェントは一般的に、特定のエンティティをカバーできる最初のエージェントを見出すことによって捜し出される。このアプローチは資格のあるエージェントを識別するが、それは複数のエンティティから情報を検索する必要があるシナリオにおいて、必ずしも最も効率的な解を提供しない。なぜならそれは複数のエンティティをカバーできるエージェントを計算に入れないからである。このアプローチの重要な問題の１つは、各構成要素の解集合が別々であるために最小解が定められないおそれがあることである。簡単な例として、たとえエージェントＡ１およびＡ２が両方ともエンティティＥ１およびＥ２を見ることができたとしても、解集合はＡ１またはＡ２だけを用いるのではなく、Ｅ１に対してＡ１を、Ｅ２に対してＡ２を用いるという結果をもたらすことがある。
【００３５】
２．米国特許出願第１０／６６６，０４６号に開示されるものなどの技術によって認識されるとおり、あるエンティティについて報告できるエージェントの能力には細分性がない。そうではなくて、すべてのエージェントはあるエンティティについて報告できるか否かで分類される。これは以下のいくつかの問題をもたらす。ａ）各々がエンティティに対する部分的な情報を提供する２つのエージェントがそのエンティティに対する完全解として一緒にグループ化されることができず、代わりに無視されなければならないことによって、何らかの情報が収集されないことになる。ｂ）もしあるエージェントが情報検索の途中で失敗し、そのエンティティに対する完全なデータ・セットを提供できる他のエージェントがなければ、その失われたデータのみを収集するために使用できるエージェントがあるかどうかを判断する方法がない。この制限によって、部分的なデータのみを収集する必要があるときにもエンティティに対する完全なデータ・セットを収集することがエージェントに求められる可能性があり、よってその解は最適でなくなる。ｃ）同様に、利用可能な情報のサブセットのみが必要な場合に、エンティティに対するすべての情報を報告できないエージェントがその所望のサブセットを報告できるかどうかを判断することができない。この制限によって、特定のデータが収集されなくなるか、または必要以上のデータを収集することがエージェントに求められる可能性がある。ｄ）エージェントの混合に基づいて、収集されない可能性のある特定の部分的情報を定めることができない。ｅ）使用されるエージェントの数が必要数より多くなることがある。
【００３６】
３．既存の技術は、ファブリックをモニタする責を負う個々のエージェントにおいて起こる失敗に関する問題の多くに完全に対処していない。実行のために選択された１つまたはそれ以上のエージェントが失敗して、代替エージェントが情報収集に用いられるとき、その遷移によって誤りのアラートがトリガされるべきではない。（たとえば、エージェント１が失敗したときにファブリックの状態遷移がミッシングとマーク付けされ、次いでファブリックが所定の期間にわたって少なくとも１つのエージェントに対して可視であるときに検出可能とマーク付けされることが、代替エージェントが用いられたという事実のみによってもたらされる。）こうした誤りのアラートは回避されるべきである。加えて、呼び出される前の１つまたはそれ以上のエージェントと通信できないとき、または１つまたはそれ以上のエージェントが後に失敗したときには、情報を集めるために（もし使用できるものがあれば）代替エージェントを定め得るべきである。
【００３７】
これらの問題に応答して、本開示発明はエージェントの「等価サブセット」の識別および使用を提供する。等価サブセットを捜し出すことによって、「ｗｈａｔ  ｉｆ」シナリオのセットを実行して、エージェントの異なるセットが収集されるデータをどのように増加もしくは低減させるかという点で、または使用されるエージェントの総数の点で、エージェントまたはエージェント・タイプの追加または除去の影響を分析することが可能である。さらに、本開示の実施形態を用いて、あるファブリックに対する完全な情報を収集できるようにするためにはどのタイプのエージェントまたはどの特定の単数／複数のエージェントを追加する必要があるかを定めることが可能である。加えて、事前チェックを行って、エージェントのどのサブセットが情報収集に成功しそうかを見出す（たとえば、エージェントの使用を試みる前にサブセット内のエージェントにある種のｐｉｎｇを用いる）ことによって、失敗が起こった後ではなくその事実より前に失敗を処理し得るようにすることも可能である。加えて、情報を集めているときにもしいくつかのサブセットが失敗すれば、追加の等価サブセットを試みることによってファブリックに対する情報収集の可能性を増加させることも可能である。
【００３８】
たとえば２つ以上の等価サブセットを並行して用いること（これによって１つのサブセットが失敗した場合に他のサブセットによって情報が集められ、処理が同時であるために経過時間が低減される）など、本開示の実施形態に対する代替的アプローチおよび変形を用いて処理時間を速くしてもよい。加えて、等価サブセット間のデルタを計算することによって、第１のサブセットが失敗したときに代替等価サブセットによる最小数のエージェントを代わりに用い得るようにすることも可能である。
【００３９】
ファブリック発見および探索
以下の実施例およびアルゴリズムにおいて、ファブリック発見および探索を詳細に考察する。以下の技術は、たとえばファブリックにゾーン変更を加えるなどの他のネットワーク動作または他のタイプの問題ドメインに対して適用可能であってもよいし、別様に適合されてもよい。
【００４０】
ファブリック発見は、エージェントが自身が報告できるファブリックを発見するプロセスである。ファブリック発見によって報告される情報は、ファブリックおよびこうしたファブリックの部分であるスイッチに対する識別子を含む。ファブリック発見が行われると、ファブリックを発見したエージェントの能力も既知となる。能力とは、あるエージェントが収集できるファブリックに関する情報の種類を説明するものである。
【００４１】
ファブリック探索は、エージェントが１つまたはそれ以上のファブリックに対する詳細なトポロジおよびゾーン分け情報を報告する実際のプロセスである。これはファブリック内のスイッチ、ファブリックの各スイッチ内のポート、それらのスイッチ・ポートが接続されるポート、ファブリックに対するゾーン分け構成、ならびにファブリック内の物理的および論理的エンティティのその他の詳細のリストを含んでもよい。
【００４２】
エージェントが報告できるファブリック内のスイッチの点から、もしくはファブリック内の１つもしくはそれ以上のスイッチに対してエージェントが報告できる情報のカテゴリの点から、またはその両方の点から、重複する能力が識別されてもよい。（たとえば、エージェントＡ１はファブリック内のスイッチＳ１およびＳ２について報告でき、エージェントＡ２はスイッチＳ１についてのみ報告できることを識別するか、またはエージェントＡ１はスイッチＳ１およびＳ２に対するトポロジ情報を報告でき、エージェントＡ２はスイッチＳ１およびＳ２に対するゾーン分け情報を報告できることを識別することなどによる。）
【００４３】
図２は、スイッチＳＷ１  ２２１、ＳＷ２  ２２２を有するファブリックＦ１  ２１０、ならびにエージェントＣ１  ２３０、Ｃ２  ２４０およびＳＲＡ１  ２５０の構成例を示す。ファブリックＦ１  ２１０のファブリック発見において定められるとおり、エージェントＣ１  ２３０はＦ１−＞ＳＷ１について報告でき、エージェントＣ２  ２４０はＦ１−＞ＳＷ２について報告でき、エージェントＳＲＡ１  ２５０はＦ１−＞ＳＷ１，ＳＷ２について報告できる。Ｃ１、Ｃ２およびＳＲＡ１の各々はゾーン分けについて報告できる。
【００４４】
ファブリックＦ１  ２１０はトポロジについて探索されるため、ファブリックのトポロジに対する等価サブセットは｛｛Ｃ１，Ｃ２｝，｛ＳＲＡ１｝｝と定められる。さらに、ファブリックのゾーン分けに対する等価サブセットは｛｛Ｃ１｝，｛Ｃ２｝，｛ＳＲＡ１｝｝と定められる。この例において、もしＣ１がトポロジおよびゾーン分け情報を得るために割り当てられ、Ｃ２がトポロジ情報を得るために割り当てられれば、ファブリックＦ１の探索は成功し得る。情報はすべてのカテゴリに対して収集されてもよいため、ファブリック内の収集されていない情報に関する警告メッセージはない。
【００４５】
一実施形態においては、エージェントの能力を表すために能力グリッドが用いられる。図３は、ＳＡＮファブリックに関連する動的能力グリッド３００の図を提供する。グリッドの行３０５の数は、ファブリック内のスイッチの数にファブリックについて報告できるエージェントの数を乗じたものに対応する。さらに、エージェント３１０、ファブリック３２０およびスイッチ３３０に対する保存情報に加えて、グリッドはいくつかのカスタム能力を追跡してもよい。たとえば、トポロジ、全ゾーン・データベース、活動中のゾーン分け構成などの特定の能力が、列３４０、３５０、３６０において追跡されてもよい。
【００４６】
動的能力グリッドの使用は、さまざまな他の設定のためのデータ収集に適用されてもよい。たとえば、電気エネルギ・グリッドをネットワーク化構成とみなして、エネルギ・シンクに対するエネルギ・ソースをエージェントと考え、動作をエネルギ・シンクに対する潜在的エネルギ・ソースの決定にしてもよい。
【００４７】
エージェントの選択のためのアルゴリズム
エージェントの選択に用いられ得る以下のアルゴリズムは一般的なものであり、問題に関連するあらゆる種類の能力を含む能力グリッドを入力として取ることができる。しかしその主要な要求は、すべてのエージェントに対する能力グリッドの寸法が等しい（すなわち同数の能力になる）ことである。
【００４８】
１）ファブリック探索を開始する。これはユーザが１つまたはそれ以上のファブリックのファブリック探索をスケジュールすることの結果として行われてもよいし、ファブリック・イベントが受け取られて、システムがそのイベントによるあらゆるファブリック変化の可能性を検出するために自動ファブリック探索を行うことを決定したことに応答して行われてもよい。２）現在探索されるファブリックの部分であるスイッチのリストを得る（このステップは一変形であり、不可欠なステップではない）。３）すべてのエージェントを用いてファブリック発見を行う。４）（発見を実行する前に得られたリストを用いて）スイッチが部分をなすファブリックを見出すことによって探索されるべきファブリックのリストを構築する（このステップも変形であり、不可欠なステップではない）。
【００４９】
５）探索されるべき各ファブリックに対して以下のステップを行う。Ａ．）そのファブリックについて報告するさまざまなエージェントに対する能力マトリックスを構築し、分類された等価サブセット・リストを構築する。本明細書において用いられるエージェントの等価サブセットとは、ただ１つのサブセットを用いれば十分であるほどの等価累積能力を有するエージェントのサブセットのことである。たとえば、もし｛Ａ１，Ａ２｝、｛Ａ３｝、｛Ａ４｝が等価サブセットであれば、ａ）Ａ１およびＡ２の組み合わせ、ｂ）Ａ３、またはｃ）Ａ４のいずれかがファブリック探索に用いられてもよい。Ｂ．）エージェントを等価サブセットに含める前に通信事前チェックを行うことによって、エージェントが等価サブセットに含まれたときに、選択されたエージェント・サブセットに非活動／非機能エージェントが含まれないようにする。Ｃ．）等価サブセットに加えられる各エージェントおよび各エージェント・サブセットに「スコア」を割り当てることによって、すべてのリストが常に分類されて優先順位付きであるようにする。分類は割り当てを示すために有用である。加えて分類は、同じエージェントが別のファブリックを探索するためにすでに選択されているときに、ファブリックを探索するために同じエージェントを潜在的に選択することを助ける。Ｄ．）等価サブセット・リスト内の各サブセットの複合能力を定めることによって、収集できる情報に対する限界（もしあれば）が識別されるようにする。
【００５０】
より特定的には、ステップ５）に用いられるステップは以下の技術を用いる。各エージェント・タイプに対して、ファブリックを管理するために用いられるエージェントのリストが戻される。このリストはいくつかの規則を用いて選別および分類されてもよく、こうしたリスト内の各エージェントに対して能力グリッドが戻される。各スイッチに対して、ファブリックを管理する各エージェントに対する能力グリッドを用い、収集される情報の各カテゴリを追跡して、そのスイッチに対するそのカテゴリに対する情報を収集できるエージェントのリストを構築する。次いで、そのスイッチに対するすべてのカテゴリに対する情報をともに収集できるエージェントのさまざまな組み合わせを生成する。次に、ファブリック内の各スイッチに対する情報を集めるサブセットのクロス積を行うことによって、等価セットのすべての組み合わせを見出す。次いで等価サブセットがランク付けされる。
【００５１】
ステップ５）に対する一変形は、戻されたエージェントのリストに対して、たとえばエージェント・タイプ、またはエージェントの固有ＩＤのアルファベット順などの分類基準を適用するステップを含む。（戻された各エージェントは固有の順序番号を有する。）等価サブセットに対するスコア付けは、ほとんどのセルをカバーするセットを最も高くランク付けし、その後にサブセットのエージェント・タイプの組み合わせ（ＣＩＭＯＭエージェントのみを有するサブセット、ＣＩＭＯＭおよびＳＮＭＰエージェントのみを有するサブセット、ＣＩＭＯＭ、ＳＮＭＰおよび帯域内エージェントのみを有するサブセット、ネイティブＡＰＩを有するサブセット、コマンド・ライン・インタフェースを有するサブセット、およびすべてのエージェント）を続けることによって適用されてもよい。サブセット内のエージェントの順序番号の合計がタイブレーカの役割をしてもよい。
【００５２】
６）識別された等価サブセットを用いて、探索されるファブリックの各々に対するエージェント割り当てを示し、ファブリック探索を実行する。このステップに対する一変形は、（もしあれば）各ファブリックに対する１つの等価エージェント・サブセットを含むジョブを生成するステップを含む。選択されるであろう等価エージェント・サブセットは、リスト内の「第１の」サブセットである。（リストは分類済みのため、第１のサブセットを選ぶことによって、最高の「スコア」を有するサブセットが選ばれることになる。）新しく生成されたジョブが完了した後に、もしいずれかのファブリックに対して等価サブセットが用いられていて、そのサブセットを用いた探索が失敗していれば、こうしたファブリックの各々に対する残りすべての利用可能な等価サブセットを含む別の新たなジョブが生成される。（もし適用可能であれば）この第２の新たなジョブが完了した後に、どのファブリック・エンティティがさまざまなエージェントに対してなおも可視であるかに関する判定をもたらすあらゆる論理、およびエージェント割り当てのために実行されなかったエージェントによるファブリック・エンティティの可視性を処理するためのあらゆる論理を行う。このステップは最後に行われることによって、選択された等価サブセットが失敗して代替サブセットが用いられるときに遷移が適切に処理されるようにする。遷移のこうした処理は、あらゆる誤りのアラートが生成されることを防ぐ。たとえば、ファブリック情報を集めるためにエージェント割り当てによって最初に選択されたエージェントＡ１が失敗し、その後用いられた代替エージェントＡ２が処理のこのウィンドウにわたってファブリック情報を集めたとき、ファブリック・エンティティは検出可能であるとみなされることが望ましい。エージェントによるファブリック・エンティティの可視性を取り扱う処理が、もしすべての代替エージェントがファブリック探索に用いられるまで延期されなければ、遷移の際にファブリック・エンティティがミッシングとマーク付けされる可能性があり、その結果システムに対してファブリックが可視でないという望ましくないアラートがもたらされた後に、一旦代替エージェントがファブリック情報を集めると、システムに対してファブリック・エンティティが可視であるというアラートがもたらされることが起こり得る。
【実施例】
【００５３】
以下の実施例は、本明細書に記載されるエージェントを識別するためのさまざまな技術のいくつかを示すものである。ファブリックおよびファブリックについて報告できるエージェントのセットが与えられて、以下の図面は動的能力グリッドの使用と、等価サブセットの計算とを示す。ＳＡＮファブリックにおいて使用されるときの実施例に挙げられた能力（トポロジ、スイッチ・ポート情報など）は例示の目的のためのみのものであり、あらゆる数の同様の能力に置換されてもよい。
【００５４】
等価サブセットを計算するための実際のアルゴリズムは一般的なものであり、能力のあらゆるリストを処理してもよい。同様にファブリック内のスイッチは、エージェントがそれに対する情報を報告できるファブリックの構成要素とみなされる。エージェントがそれに対する１つまたはそれ以上の能力／カテゴリの情報を報告できるファブリックのその他の関連構成要素があるときには、それらの構成要素が加えられてもよい。アルゴリズムへの入力は、各々が２次元グリッドに１つの軸におけるスイッチ（または情報が収集されるファブリックのあらゆるその他の構成要素）および能力（その構成要素に対して収集され得る情報のカテゴリ）を投入するエージェントのセットである。
【００５５】
図４は、本発明によって提供されるさまざまな技術を用いて探索され得る第１のファブリック構成の例を提供する。ユーザはファブリックＦ１  ４１０のトポロジを探索する。エージェントＣ１  ４３０は、ファブリックＦ１  ４１０に対するトポロジおよびゾーン分け情報を得るために割り当てられる。エージェントＯ１  ４４０およびＯ２  ４６０も呼び出される。Ｃ１  ４３０に対する探索は成功して終了する。選択された候補サブセットはファブリックＦ１  ４１０の探索に成功する。エージェントＳＲＡ４５０は実行されなかったため、内部テーブルはそれに従って更新される。
【００５６】
この構成において、エージェントＣ１  ４３０はファブリックＦ１  ４１０内のすべてのスイッチに対する性能管理のためのトポロジ、ブレードおよびスイッチ・ポート情報を報告できること、エージェントＳＲＡ１はファブリックＦ１内のすべてのスイッチに対するトポロジを報告できること、エージェントＣ１  ４３０はゾーン分けを報告できること、ならびにエージェントＯ１  ４４０およびＯ２  ４６０はそれぞれＳＷ１  ４２１およびＳＷ２  ４２２に対するトポロジ情報を報告できることが判定されてもよい。したがってトポロジに対する等価サブセットは、ファブリックＦ１  ４１０に対して｛Ｃ１｝、｛Ｃ１，Ｏ１｝、｛Ｃ１，Ｏ２｝、｛Ｃ１，Ｏ１，Ｏ２｝、｛Ｃ１，ＳＲＡ１｝、｛Ｃ１，Ｏ１，ＳＲＡ１｝、｛Ｃ１，Ｏ２，ＳＲＡ１｝である。ゾーン分けに対する等価サブセットは、ファブリックＦ１  ４１０に対して｛｛Ｃ１｝｝である。
【００５７】
図５は、図４で行われたファブリック探索を用いて集められた情報に基づく動的能力グリッド５００の例を提供する。図示されるとおり、行５０１はスイッチＳＷ１に接続されたエージェントに対して収集された情報を詳述し、行５０２はスイッチＳＷ２に接続されたエージェントに対して収集された情報を詳述する。グリッド５００内で追跡されるネットワーク特有情報は、エージェントの識別子５１０、ファブリック５２０、スイッチ５３０、トポロジ５４０、ブレード情報５５０、性能管理（ｐｅｒｆｏｒｍａｎｃｅ  ｍａｎａｇｅｍｅｎｔ：ＰＭ）のためのスイッチ・ポート情報５６０、およびたとえばＣＩＳＣＯ物理インフラストラクチャなどの特定の物理インフラストラクチャ５７０が存在するかどうかの表示を含む。
【００５８】
グリッド５００内で、スイッチＳＷ１に対して保存された情報は以下を含む。トポロジ−Ｃ１、Ｏ１、ＳＲＡ１。ブレード−Ｃ１。ＰＭ−Ｃ１。物理インフラストラクチャ−。したがってＳＷ１をカバーし得るサブセットは｛Ｃ１｝、｛Ｃ１，Ｏ１｝、｛Ｃ１，ＳＲＡ１｝である。スイッチＳＷ２に対して保存された情報は以下を含む。トポロジ−Ｃ１、Ｏ２、ＳＲＡ１。ブレード−Ｃ１。ＰＭ−Ｃ１。物理インフラストラクチャ−。ＳＷ２をカバーし得るサブセットは｛Ｃ１｝、｛Ｃ１，Ｏ２｝、｛Ｃ１，ＳＲＡ１｝である。ここでも等価サブセットは、ファブリック内のすべてのスイッチに対する情報のすべてのカテゴリをカバーするサブセットの組み合わせである。エージェントに対する順序番号を用いると、Ｃ１は１、Ｏ１は２、Ｏ２は３、ＳＲＡ１は４である。よって順序は｛Ｃ１｝、｛Ｃ１，Ｏ１｝、｛Ｃ１，Ｏ２｝、｛Ｃ１，Ｏ１，Ｏ２｝、｛Ｃ１，ＳＲＡ１｝、｛Ｃ１，Ｏ１，ＳＲＡ１｝、｛Ｃ１，Ｏ２，ＳＲＡ１｝となる。ゾーン分けに対する等価サブセットは｛｛Ｃ１｝｝である。
【００５９】
図４に示されるファブリック構成の第２の実施例において、Ｃ１はファブリックＦ１に対するトポロジおよびゾーン分け情報を得るために割り当てられてもよい。Ｏ１およびＯ２も呼び出されてもよい。Ｃ１に対する探索が失敗したと仮定する。ＳＲＡ１も呼び出される。その結果、ＰＭおよびブレード情報に対するデータが収集されなかったという警告メッセージがもたらされる。ユーザはＦ１のトポロジを探索する。エージェントＣ１はファブリックＦ１内のすべてのスイッチに対する性能管理のためのトポロジ、ブレードおよびスイッチ・ポート情報を報告でき、エージェントＳＲＡ１はファブリックＦ１内のすべてのスイッチに対するトポロジを報告できる。エージェントＣ１はゾーン分けを報告できる。エージェントＯ１およびＯ２はそれぞれスイッチＳＷ１およびＳＷ２に対するトポロジを報告できる。Ｃ１の失敗後のトポロジに対する等価サブセットは、Ｆ１に対して｛Ｏ１，Ｏ２｝、｛ＳＲＡ１｝、｛Ｏ１，ＳＲＡ１｝、｛Ｏ２，ＳＲＡ１｝である。Ｃ１が失敗したことが既知となった後のゾーン分けに対する等価サブセットは、Ｆ１に対して｛  ｝である。
【００６０】
動的能力グリッド内には以下の値が記録されてもよい。スイッチＳＷ１に対して、トポロジ−Ｏ１、ＳＲＡ１。ブレード−（ブランク）。ＰＭ−（ブランク）。物理インフラストラクチャ−（ブランク）。ＳＷ１をカバーし得るサブセットは｛Ｏ１｝、｛ＳＲＡ１｝である。スイッチＳＷ２に対して、トポロジ−Ｏ２、ＳＲＡ１。ブレード−（ブランク）。ＰＭ−（ブランク）。物理インフラストラクチャ−（ブランク）。ＳＷ２をカバーし得るサブセットは｛Ｏ２｝、｛ＳＲＡ１｝である。エージェントに対する順序番号−Ｃ１は１、Ｏ１は２、Ｏ２は３、ＳＲＡ１は４である。よって順序は｛Ｏ１，Ｏ２｝、｛ＳＲＡ１｝、｛Ｏ１，ＳＲＡ１｝、｛Ｏ２，ＳＲＡ１｝となる。ゾーン分けに対する等価サブセットのリストはブランク｛  ｝である。
【００６１】
図６は、スイッチＳＷ１  ４２１およびＳＷ２  ４２２を有するファブリックＦ１  ４１０、ならびにエージェントＣ１  ４３０、Ｃ２  ４７０、Ｏ１  ４４０、ＳＲＡ１  ４５０およびＯ２  ４６０の別の構成を提供する。図６に示される構成を用いた第１の実施例において、エージェントＯ１  ４４０およびＯ２  ４６０はトポロジおよび物理インフラストラクチャ情報を得るために割り当てられ、Ｃ１およびＣ２はスイッチ・ポート情報を得るために割り当てられ、ＳＲＡ１はファブリックＦ１に対するゾーン分けを得るために割り当てられる。Ｏ１、Ｏ２、Ｃ１、Ｃ２およびＳＲＡ１に対する各々の探索は成功する。ユーザはＦ１のトポロジを探索する。エージェントＣ１およびＣ２は、それぞれスイッチＳＷ１およびＳＷ２に対する性能管理のためのスイッチ・ポート情報を報告できる。エージェントＳＲＡ１はファブリックＦ１内のすべてのスイッチに対するトポロジおよびゾーン分けを報告できる。エージェントＯ１およびＯ２は、それぞれＳＷ１およびＳＷ２に対するトポロジおよび物理インフラストラクチャを報告できる。動的能力グリッド内では、スイッチＳＷ１に対して次のとおりである。トポロジ−Ｏ１、ＳＲＡ１。ブレード−（ブランク）。ＰＭ−Ｃ１。物理インフラストラクチャ−Ｏ１。ＳＷ１をカバーし得るサブセットは｛Ｏ１，Ｃ１｝、｛Ｏ１，Ｃ１，ＳＲＡ１｝である。スイッチＳＷ２に対しては次のとおりである。トポロジ−Ｏ２、ＳＲＡ１。ブレード−（ブランク）。ＰＭ−Ｃ２。物理インフラストラクチャ−Ｏ２。ＳＷ２をカバーし得るサブセットは｛Ｏ２，Ｃ２｝、｛Ｏ２，Ｃ２，ＳＲＡ１｝である。等価サブセットは各スイッチをカバーするサブセットのクロス積である。エージェントに対する順序番号−Ｃ１は１、Ｃ２は２、Ｏ１は３、Ｏ２は４、ＳＲＡ１は５であることから、ファブリックＦ１に対して｛Ｏ１，Ｏ２，Ｃ１，Ｃ２｝、｛Ｏ１，Ｏ２，Ｃ１，Ｃ２，ＳＲＡ１｝がもたらされる。ゾーン分けに対する等価サブセットはファブリックＦ１に対して｛｛ＳＲＡ１｝｝である。
【００６２】
図６に示される構成を用いた第２の実施例において、ファブリックＦ１に対する性能管理のために、Ｏ１およびＯ２はトポロジを得るために割り当てられ、ＳＲＡ１はゾーン分け情報を得るために割り当てられ、Ｃ１およびＣ２はスイッチ・ポート情報を得るために割り当てられる。Ｏ１、Ｏ２、ＳＲＡ１、Ｃ１、Ｃ２に対する探索は成功する。ユーザはＦ１のトポロジを探索する。この構成において、エージェントＣ１およびＣ２はそれぞれスイッチＳＷ１およびＳＷ２に対するスイッチ・ポート情報を報告できる。エージェントＳＲＡ１はＦ１に対するトポロジおよびゾーン分けを報告できる。エージェントＯ１およびＯ２は、それぞれＳＷ１およびＳＷ２に対するトポロジを報告できる。
【００６３】
動的能力グリッド内では、スイッチＳＷ１に対して次のとおりである。トポロジ−Ｏ１、ＳＲＡ１。ブレード−（ブランク）。ＰＭ−Ｃ１。物理インフラストラクチャ−（ブランク）。ＳＷ１をカバーし得るサブセットは｛Ｏ１，Ｃ１｝、｛Ｃ１，ＳＲＡ１｝である。スイッチＳＷ２に対しては次のとおりである。トポロジ−Ｏ２、ＳＲＡ１。ブレード−（ブランク）。ＰＭ−Ｃ２。物理インフラストラクチャ−（ブランク）。ＳＷ２をカバーし得るサブセットは｛Ｏ２，Ｃ２｝、｛Ｃ２，ＳＲＡ１｝である。等価サブセットは各スイッチをカバーするサブセットのクロス積である。エージェントに対する順序番号−Ｃ１は１、Ｃ２は２、Ｏ１は３、Ｏ２は４、ＳＲＡ１は５であることから、ファブリックＦ１に対するトポロジに対して｛｛Ｏ１，Ｏ２，Ｃ１，Ｃ２｝，｛Ｃ１，Ｃ２，ＳＲＡ１｝，｛Ｏ１，Ｃ１，Ｃ２，ＳＲＡ１｝，｛Ｏ２，Ｃ１，Ｃ２，ＳＲＡ１｝｝の順序がもたらされる。ゾーン分けに対する等価サブセットはファブリックＦ１に対して｛｛ＳＲＡ１｝｝である。
【００６４】
当業者に認識されるとおり、記憶領域ネットワーク内のプロセス、ファブリックおよびエージェントの使用に対して、本開示ステップの変形が追加または省略されてもよい。さらに、本明細書に記載される技術の多くの部分は、たとえば非ファイバ・チャネル・ネットワークなど、他のタイプのネットワーク・トポロジにも適用可能である。さらに、示されたネットワーク・トポロジおよび記載されたネットワークの特徴は顕著に変動してもよい。当業者にさらに認識されるとおり、本発明の側面はシステム、方法またはコンピュータ・プログラム製品として具現化されてもよい。したがって本発明の側面は、完全にハードウェアの実施形態、完全にソフトウェアの実施形態（ファームウェア、常駐ソフトウェア、マイクロコードなどを含む）、またはソフトウェアおよびハードウェアの側面を組み合わせた実施形態の形を取ってもよく、本明細書においてこれらはすべて一般的に「回路」、「モジュール」または「システム」と呼ばれることがある。さらに、本発明の側面は、媒体において具現化されるコンピュータ可読プログラム・コードを有する１つまたはそれ以上のコンピュータ可読媒体（単数または複数）において具現化されるコンピュータ・プログラム製品の形を取ってもよい。
【００６５】
１つまたはそれ以上のコンピュータ可読媒体（単数または複数）のあらゆる組み合わせが使用されてもよい。コンピュータ可読媒体は、コンピュータ可読信号媒体またはコンピュータ可読記憶媒体であってもよい。コンピュータ可読記憶媒体は、たとえば電子、磁気、光学、電磁気、赤外、または半導体のシステム、装置、もしくはデバイス、または前述のもののあらゆる好適な組み合わせなどであってもよいがそれに限定されない。コンピュータ可読記憶媒体のより特定的な例（非網羅的なリスト）は以下を含む。すなわち、１つまたはそれ以上のワイヤを有する電気的接続、ポータブル・コンピュータ・ディスケット、ハード・ディスク、ランダム・アクセス・メモリ（ｒａｎｄｏｍ  ａｃｃｅｓｓ  ｍｅｍｏｒｙ：ＲＡＭ）、読出し専用メモリ（ｒｅａｄ−ｏｎｌｙ  ｍｅｍｏｒｙ：ＲＯＭ）、消去可能プログラマブル読出し専用メモリ（ｅｒａｓａｂｌｅ  ｐｒｏｇｒａｍｍａｂｌｅ  ｒｅａｄ−ｏｎｌｙ  ｍｅｍｏｒｙ）（ＥＰＲＯＭまたはフラッシュ・メモリ）、光ファイバ、ポータブル・コンパクト・ディスク読出し専用メモリ（ｃｏｍｐａｃｔ  ｄｉｓｃ  ｒｅａｄ−ｏｎｌｙ  ｍｅｍｏｒｙ：ＣＤ−ＲＯＭ）、光学記憶装置、磁気記憶装置、または前述のもののあらゆる好適な組み合わせである。この文書の状況において、コンピュータ可読記憶媒体は、命令実行システム、装置またはデバイスによる使用、またはそれに関連する使用のためのプログラムを含有または保存できるあらゆる有形の媒体であってもよい。
【００６６】
コンピュータ可読信号媒体は、たとえばベースバンド内または搬送波の部分などとして媒体内で具現化されるコンピュータ可読プログラム・コードを有する伝播データ信号を含んでもよい。こうした伝播信号は、電磁気信号、光学信号、またはそのあらゆる好適な組み合わせを含むがそれに限定されないさまざまな形のいずれかを取ってもよい。コンピュータ可読信号媒体は、コンピュータ可読記憶媒体ではなく、かつ命令実行システム、装置またはデバイスによる使用、またはそれに関連する使用のためのプログラムを通信、伝播または移送できるあらゆるコンピュータ可読媒体であってもよい。コンピュータ可読媒体において具現化されるプログラム・コードは、ワイヤレス、ワイヤライン、光ファイバ・ケーブル、ＲＦなど、または前述のもののあらゆる好適な組み合わせを含むがそれに限定されないあらゆる適切な媒体を用いて伝送されてもよい。本発明の側面に対する動作を行うためのコンピュータ・プログラム・コードは、オブジェクト指向プログラミング言語、たとえばＪａｖａ（Ｒ）、Ｓｍａｌｌｔａｌｋ（Ｒ）、Ｃ＋＋など、および従来の手続き型プログラミング言語、たとえば「Ｃ」プログラミング言語または類似のプログラミング言語などを含む、１つまたはそれ以上のプログラミング言語のあらゆる組み合わせで書かれていてもよい。プログラム・コードは、すべてがユーザのコンピュータで実行されてもよいし、スタンド・アロン・ソフトウェア・パッケージとして部分的にユーザのコンピュータで実行されてもよいし、一部がユーザのコンピュータで、一部がリモート・コンピュータで実行されてもよいし、すべてがリモート・コンピュータまたはサーバで実行されてもよい。後者のシナリオにおいて、リモート・コンピュータは、ローカル・エリア・ネットワーク（ｌｏｃａｌ  ａｒｅａ  ｎｅｔｗｏｒｋ：ＬＡＮ）または広域ネットワーク（ｗｉｄｅ  ａｒｅａ  ｎｅｔｗｏｒｋ：ＷＡＮ）を含むあらゆるタイプのネットワークを通じてユーザのコンピュータに接続されてもよいし、（たとえば、インターネット・サービス・プロバイダを用いてインターネットを通じて）外部コンピュータへの接続が行われてもよい。
【００６７】
本発明の実施形態に従う方法、装置（システム）およびコンピュータ・プログラム製品の流れ図もしくはブロック図またはその両方を参照して、本発明の側面を上述した。流れ図もしくはブロック図またはその両方の各ブロック、および流れ図もしくはブロック図またはその両方におけるブロックの組み合わせは、コンピュータ・プログラム命令によって実装され得ることが理解されるだろう。これらのコンピュータ・プログラム命令が、汎用コンピュータもしくは特定目的のコンピュータのプロセッサ、またはマシンを生成するためのその他のプログラマブル・データ処理装置に与えられることによって、そのコンピュータのプロセッサまたはその他のプログラマブル・データ処理装置を介して実行された命令が、流れ図もしくはブロック図またはその両方の単数または複数のブロックにおいて指定された機能／動作を実装するための手段を生成するようにしてもよい。
【００６８】
これらのコンピュータ・プログラム命令は、コンピュータ、その他のプログラマブル・データ処理装置またはその他のデバイスに特定の態様で機能するよう指示できるコンピュータ可読媒体の中にも保存されることによって、コンピュータ可読媒体中に保存された命令が、流れ図もしくはブロック図またはその両方の単数または複数のブロックにおいて指定された機能／動作を実装する命令を含む製造品を生成するようにしてもよい。
【００６９】
さらに、コンピュータ・プログラム命令は、コンピュータ、その他のプログラマブル・データ処理装置またはその他のデバイスにロードされることによって、そのコンピュータ、その他のプログラマブル装置またはその他のデバイスにおいて一連の動作ステップを行わせることにより、コンピュータまたはその他のプログラマブル装置において実行される命令が、流れ図もしくはブロック図またはその両方の単数または複数のブロックにおいて指定された機能／動作を実装するためのプロセスを提供するような、コンピュータに実装されるプロセスを生成してもよい。
【００７０】
図面中の流れ図およびブロック図は、本発明のさまざまな実施形態に従うシステム、方法およびコンピュータ・プログラム製品の実装可能なアーキテクチャ、機能および動作を例示するものである。これに関して、流れ図またはブロック図における各ブロックは、指定された論理関数（単数または複数）を実装するための１つまたはそれ以上の実行可能な命令を含むモジュール、セグメント、またはコードの部分を表していてもよい。さらに、いくつかの代替的な実装においては、ブロック中に示される機能が図面に示される以外の順序で起こることがあることに留意すべきである。たとえば、連続して示される２つのブロックは、伴われる機能に依存して、実際には実質的に同時に実行されてもよいし、それらのブロックがときには逆の順序で実行されてもよい。さらに、ブロック図もしくは流れ図またはその両方の各ブロック、およびブロック図もしくは流れ図またはその両方のブロックの組み合わせは、指定された機能もしくは動作を行う特定目的のハードウェアに基づくシステム、または特定目的のハードウェアとコンピュータ命令との組み合わせによって実装され得ることが注目される。
【００７１】
本発明のさまざまな代表的実施形態をある程度特定的に上述したが、当業者は明細書および請求項に示される発明の主題の範囲から逸脱することなく、開示される実施形態に多数の変更を加えることができるだろう。
【図１】
2013542476.tif 000003
【図２】
2013542476.tif 000004
【図３】
2013542476.tif 000005
【図４】
2013542476.tif 000006
【図５】
2013542476.tif 000007
【図６】
2013542476.tif 000008
【国際調査報告】
2013542476.tif 000009
2013542476.tif 000010
2013542476.tif 000011