(57)【要約】  階層化されたサードパーティ（拡張）アプリケーションソフトウェア冗長性が、仮想ファブリックリンクを介して結合された２つ以上のスイッチを含む不均質仮想シャーシにおいて提供される。スイッチのうちの少なくとも１つにおける仮想シャーシ管理モジュールは、仮想シャーシ内の他のスイッチを発見し、仮想シャーシ内の全てのスイッチから基本マスタスイッチを決定し、少なくとも１つの拡張スイッチにインストールされた拡張アプリケーションを検出し、拡張スイッチから拡張マスタスイッチを決定する。
2016516368.tif 000002
【特許請求の範囲】
【請求項１】
少なくとも２つのスイッチを含む不均質仮想シャーシ内のスイッチであって、
仮想ファブリックリンク（ＶＦＬ）に結合された複数のＶＦＬポートであって、ＶＦＬが仮想シャーシ内の少なくとも２つのスイッチの各々を相互接続する、複数のＶＦＬポートと、
複数の基本ソフトウェアアプリケーションと、
仮想シャーシ内の少なくとも２つのスイッチを発見し、
少なくとも２つのスイッチから、複数の基本ソフトウェアアプリケーションに対するマスタとして機能する基本マスタスイッチを決定し、
少なくとも２つのスイッチのうちの少なくとも１つの拡張スイッチにインストールされた拡張アプリケーションを検出し、少なくとも１つの拡張スイッチは、少なくとも２つのスイッチのサブセットのみを含み、
少なくとも１つの拡張スイッチから、拡張アプリケーションに対するマスタとして機能する拡張マスタスイッチを決定する
ための仮想シャーシ管理モジュールと、
基本ソフトウェアアプリケーションを実行し、仮想シャーシ管理モジュールを実行してＶＦＬを介して少なくとも２つのスイッチと通信するためのプロセッサと
を備える、スイッチ。
【請求項２】
スイッチが基本マスタスイッチであり、少なくとも２つのスイッチのうちの他のスイッチが基本スレーブスイッチであり、
仮想シャーシ管理モジュールが、ＶＦＬを介して少なくとも１つの拡張スイッチと通信し、少なくとも１つの拡張スイッチから拡張マスタスイッチを選出するための拡張アプリケーションインターフェースを含む、
請求項１に記載のスイッチ。
【請求項３】
拡張アプリケーションインターフェースが、仮想シャーシ内に少なくとも１つの拡張スイッチが存在することを通知され、拡張アプリケーションに対する設定情報を受信する、請求項２に記載のスイッチ。
【請求項４】
拡張アプリケーションインターフェースがさらに、ＶＦＬを介して少なくとも１つの拡張スイッチの各々上のさらなる拡張アプリケーションインターフェースと通信して、拡張マスタスイッチのアドレスを少なくとも１つの拡張スイッチの各々に提供し、拡張アプリケーションに対する設定情報を検証する、請求項３に記載のスイッチ。
【請求項５】
スイッチが、少なくとも１つの拡張スイッチのうちの第１の拡張スイッチであり、
仮想シャーシ管理モジュールが、基本マスタスイッチおよび少なくとも１つの拡張スイッチの各々とＶＦＬを介して通信するための拡張アプリケーションインターフェースを含む、
請求項１に記載のスイッチ。
【請求項６】
拡張アプリケーションインターフェースがさらに、ＶＦＬを介して基本マスタスイッチから拡張マスタスイッチのアドレスを受信し、基本マスタスイッチと共に拡張アプリケーションに対する設定情報を検証する、請求項５に記載のスイッチ。
【請求項７】
拡張アプリケーションインターフェースがさらに、冗長性のためにＶＦＬを介した第１の拡張スイッチと少なくとも１つの拡張スイッチのうちの他の拡張スイッチとの間の通信を可能にするために、少なくとも１つの拡張スイッチの各々にインストールされた拡張アプリケーションに関連付けられたそれぞれの内部インターネットプロトコル（ＩＰ）アドレスを受信する、請求項５に記載のスイッチ。
【請求項８】
第１の拡張スイッチが拡張マスタスイッチであり、少なくとも１つの拡張スイッチのうちの他のスイッチが拡張スレーブスイッチである、請求項５に記載のスイッチ。
【請求項９】
仮想シャーシ管理モジュールがさらに、少なくとも２つのスイッチのうちの少なくとも１つのさらなる拡張スイッチ上で動作するさらなる拡張アプリケーションを検出し、少なくとも１つのさらなる拡張スイッチからさらなる拡張マスタスイッチを決定する、請求項１に記載のスイッチ。
【請求項１０】
不均質仮想シャーシにおいてアプリケーション別冗長性を提供するための方法であって、
仮想ファブリックリンクを介して仮想シャーシ内の少なくとも２つのスイッチを相互接続することと、
少なくとも２つのスイッチのうちの少なくとも１つが、
仮想シャーシ内の少なくとも２つのスイッチを発見することと、
少なくとも２つのスイッチから、少なくとも２つのスイッチの各々にインストールされた複数の基本ソフトウェアアプリケーションに対するマスタとして機能する基本マスタスイッチを決定することと、
少なくとも２つのスイッチのうちの少なくとも１つの拡張スイッチ上で動作する拡張アプリケーションを検出することであって、少なくとも１つの拡張スイッチが少なくとも２つのスイッチのサブセットのみを含む、検出することと、
少なくとも１つの拡張スイッチから、拡張アプリケーションに対するマスタとして機能する拡張マスタスイッチを決定することと
を備える、方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は一般にはデータネットワークに関し、より詳細には仮想シャーシ構成に関する。
【背景技術】
【０００２】
データネットワークは、多数の異なるコンピューティングデバイス、たとえばパーソナルコンピュータ、ＩＰ電話デバイスまたはサーバが、互いに通信し、かつ／または、ネットワークに接続された様々な他のネットワーク要素もしくはリモートサーバと通信することを可能にする。たとえば、データネットワークは、限定はしないが、たとえばボイスオーバーＩＰ（ＶｏＩＰ）アプリケーション、データアプリケーションおよびビデオアプリケーションを含む複数のアプリケーションに対応するメトロイーサネット（登録商標）またはエンタープライズイーサネットネットワークを含むことができる。そのようなネットワークは通常、スイッチまたはルータとして一般に知られている、ネットワークを通じてトラフィックをルーティングするための、多数の相互接続されたノードを含む。
【０００３】
様々なノードは、ネットワークのサイズに応じて一般的に２つまたは３つの「階層（ｔｉｅｒ）」または「レイヤ」を特徴とするネットワークの特定領域内のそれらの位置に基づいて区別されることが多い。従来、３階層ネットワークは、エッジレイヤ、アグリゲーションレイヤ、およびコアレイヤからなる（一方、２階層ネットワークは、エッジレイヤおよびコアレイヤのみからなる）。データネットワークのエッジレイヤは、ローカルエリアネットワークなどのエンタープライズネットワークまたはホームネットワークからメトロまたはコアネットワークへの接続を通常は提供するエッジ（アクセスとも呼ばれる）ネットワークを含む。エッジ／アクセスレイヤは、ネットワークの入口点（ｅｎｔｒｙ  ｐｏｉｎｔ）であり、すなわち顧客ネットワークが名目上接続されており、エッジレイヤに存在するスイッチは、エッジノードとして知られている。様々な種類のエッジネットワークには、デジタル加入者線、ハイブリッドファイバ同軸（ＨＦＣ：ｈｙｂｒｉｄ  ｆｉｂｅｒ  ｃｏａｘ）、ファイバツーザホームおよびエンタープライズネットワーク、たとえばキャンパスおよびデータセンタネットワークがある。エッジノードは、たとえば、接続されたデバイスに対してＬ２スイッチング機能を実施することができる。エッジノードは一般的に、顧客ネットワーク内の１つまたは複数のエンタープライズスイッチおよび／またはエンドデバイスに接続され、複数のエッジノードからのアクセスリンクを終端するアグリゲートレイヤにも接続される。アグリゲーションレイヤに存在するスイッチは、アグリゲーションスイッチとして知られている。アグリゲーションスイッチは、エッジノードからアグリゲートリンクを介して受信されるトラフィックのＬ２スイッチングおよびＬ３ルーティングなどを実施することができる。アグリゲートレイヤは、（３階層ネットワーク内の）アグリゲーションスイッチまたは（２階層ネットワーク内の）エッジノードから受信されるトラフィックのレイヤ３／ＩＰルーティングを実施するメトロまたはコアネットワークレイヤに接続される。理解されるであろうが、ネットワークの各増分レイヤのノードは通常、より大容量および高速なスループットを有する。
【０００４】
データネットワークが直面する主要課題の１つは、ネットワーク回復力、すなわち最終的なコンポーネント障害、リンク障害などにも関わらず高可用性を維持する能力に対して需要があることであり、これは十分なネットワーク性能を提供するのに重要である。ネットワーク回復力は、部分的にはトポロジ的な冗長性によって、すなわち冗長ノード（およびノード内の冗長コンポーネント）ならびにノード間の複数の物理経路を設けて単一障害点を防ぐことにより実現することができ、かつ部分的には、障害が発生すると、冗長性を利用して、ネットワークを通るトラフィックフローをスイッチング／ルーティングするための代替経路に収束するためのＬ２／Ｌ３プロトコルによって実現することができる。
【０００５】
１つの知られている解決方法では、仮想シャーシを用いて冗長性を与え、同時にスループットおよび帯域幅を増大させることもできる。仮想シャーシ内で、２つ以上の物理イーサネットスイッチを「スタック」して、統一されたコントロールプレーンと設定ファイルとを有する単一の論理的なフォームファクタを形成することができる。ルートおよびスイッチエンジン冗長性は、仮想シャーシマスタスイッチにより、同期した転送テーブルを作成およびメンテナンスし、スイッチ上で動作する相手／ピアアプリケーション間で制御情報を交換することで管理される。
【０００６】
しかしながら、従来の仮想シャーシでは、各スイッチは、仮想シャーシ全体にわたって冗長性を有効にするために同一のハードウェアおよびソフトウェアが設けられている。追加機能および／またはサービスを提供するサードパーティ（拡張）ハードウェアおよび／またはソフトウェアを求める顧客にとって、仮想シャーシ内の各スイッチに拡張ハードウェアおよび／またはソフトウェアをインストールすると、全体の配備コストが著しく増大することがある。このコストを減少させるために、顧客は、拡張ハードウェアおよび／またはソフトウェアを仮想シャーシスイッチのサブセットのみにインストールすることを好む場合がある。しかしながら、現在の仮想シャーシ管理プロトコルは単一のマスタスイッチを必要とするので、そのような不均質な仮想シャーシは可能ではない。
【先行技術文献】
【非特許文献】
【０００７】
【非特許文献１】ＩＥＥＥ８０２．１ＡＸ−ＩＥＥＥ８０２．３ａｄ、２００８年１１月３日
【発明の概要】
【課題を解決するための手段】
【０００８】
したがって、アプリケーション別冗長性を提供するように不均質仮想シャーシを構成するためのシステムおよび方法が求められている。
【図面の簡単な説明】
【０００９】
【図１】本発明による仮想シャーシの一実施形態の概略ブロック図である。
【図２Ａ】本発明による仮想シャーシ内の基本スイッチの一実施形態の概略ブロック図である。
【図２Ｂ】本発明による仮想シャーシ内の拡張スイッチの一実施形態の概略ブロック図である。
【図３Ａ】本発明による仮想シャーシ内のスイッチの様々なハードウェアコンポーネントの一実施形態の概略ブロック図である。
【図３Ｂ】本発明による仮想シャーシ内の拡張スイッチの様々なハードウェアコンポーネントの一実施形態の概略ブロック図である。
【図３Ｃ】本発明による仮想シャーシ内の拡張スイッチの様々なハードウェアコンポーネントの一実施形態の概略ブロック図である。
【図４】本発明による仮想シャーシ内の様々なソフトウェアコンポーネント間の論理通信の一実施形態の概略ブロック図である。
【図５】本発明による仮想シャーシにおいてアプリケーション別冗長性を提供するための方法の例示的な流れ図である。
【図６】本発明による仮想シャーシにおいてアプリケーション別冗長性を提供するための例示的なシグナリング図である。
【発明を実施するための形態】
【００１０】
図１に、本発明による仮想シャーシ１０の一実施形態を示す。仮想シャーシ１０は、単一の論理スイッチを集合的に形成する２つ以上のイーサネットスイッチ（簡略化のため３つのスイッチ２０ａ−２０ｃが示されている）を含む。したがって、仮想シャーシ１０は、仮想シャーシ１０にトラフィックを転送するために外部ノードにより用いられるメディアアクセス制御（ＭＡＣ）アドレスと、インターネットプロトコル（ＩＰ）アドレスとを有する。仮想シャーシ１０内の各スイッチ２０ａ−２０ｃは、スイッチ２０ａ−２０ｃ間のルーティングに用いられる一意の識別子（すなわちスイッチ上に常駐するソフトウェアコンポーネント間の通信用のＩＰアドレスまたは他の内部識別子）がさらに割り当てられる。
【００１１】
イーサネットスイッチ２０ａ−２０ｃは、仮想ファブリックリンク（ＶＦＬ：ｖｉｒｔｕａｌ  ｆａｂｒｉｃ  ｌｉｎｋ）５０を介して互いに結合される。ＶＦＬ５０は、トラフィック転送、ＭＡＣアドレッシング、マルチキャストフロー、アドレス解決プロトコル（ＡＲＰ）テーブル、レイヤ２制御プロトコル（たとえばスパニングツリー、イーサネットリング保護、論理リンク検出プロトコル）、ルーティングプロトコル（たとえばＲＩＰ、ＯＳＰＦ、ＢＧＰ）、および仮想シャーシ１０を他の上流／下流ノードと接続するリンクのステータスに関して、スイッチ２０ａ−２０ｃ間で情報を交換するための接続を提供する。外部の宛先デバイスに到達するようにスイッチ２０ａ−２０ｃ間でパケットをブリッジまたはルーティングすることを可能にする外部ノード用のＭＡＣアドレス／転送テーブルが、各スイッチ２０ａ−２０ｃにおいて維持される。たとえば、パケットが、外部の宛先デバイスへ送信するために仮想シャーシ１０内で１つのスイッチ（たとえばスイッチ２０ａ）から他のスイッチ（たとえばスイッチ２０ｂ）にルーティングされる場合、ソーススイッチ２０ａの識別子と宛先スイッチ２０ｂの識別子とを含む先頭追加ヘッダ（ｐｒｅ−ｐｅｎｄｅｄ  ｈｅａｄｅｒ）が、パケットに追加される。
【００１２】
スイッチ２０ａ−２０ｃは別々の物理スイッチであり、各々、スタンドアローンスイッチとして動作可能である。スイッチ２０ａ−２０ｃは、共に単一の物理シャーシに入れてもよく、２つ以上の別々の物理シャーシに入れてもよい。シャーシ構成に応じて、スイッチ２０ａ−２０ｃは、同一の地理的領域、たとえば中央局またはデータセンタに存在してもよく、または、地理的多様性を与えるために、離れた地理的位置、たとえば異なる建物または都市に存在してもよい。
【００１３】
加えて、仮想シャーシ１０内のスイッチ２０ａ−２０ｃは、アグリゲートスイッチ、エッジスイッチ、またはエンタープライズスイッチでもよい。スイッチ２０ａ−２０ｃがエンタープライズスイッチである実施形態では、仮想シャーシ１０は、下流へローカルエリアネットワーク（ＬＡＮ）内の１つまたは複数のエンドデバイスに接続され、上流へ１つまたは複数のエッジスイッチに接続される。スイッチ２０ａ−２０ｃがエッジスイッチである実施形態では、仮想シャーシ１０は、下流へＬＡＮまたはホームネットワーク内の１つまたは複数のエンタープライズスイッチおよび／またはエンドデバイスに接続され、上流へ１つまたは複数のアグリゲートスイッチまたはネットワークノード、たとえばメトロ／コアネットワーク７０内のネットワークスイッチおよび／またはルータに接続される。スイッチ２０ａ−２０ｃがアグリゲートスイッチである実施形態では、仮想シャーシ１０は、下流へ１つまたは複数のエッジスイッチに接続され、上流へネットワーク７０内の１つまたは複数のネットワークノードに接続される。
【００１４】
一実施形態では、仮想シャーシ１０と上流または下流ノードとの間の接続は、マルチシャーシリンクアグリゲーショングループ（ＭＣ−ＬＡＧ）６０により形成され、ＭＣ−ＬＡＧでは、２つ以上の物理リンクにより特定のノードが仮想シャーシ内のスイッチ２０ａ−２０ｃのうちの２つ以上と接続され、ＭＣ−ＬＡＧは、引用により本明細書に組み込まれている、２０１１年１月２０日に出願され、「Ｓｙｓｔｅｍ  ａｎｄ  Ｍｅｔｈｏｄ  ｆｏｒ  Ｍｕｌｔｉ−Ｃｈａｓｓｉｓ  Ｌｉｎｋ  Ａｇｇｒｅｇａｔｉｏｎ」と題された、米国特許出願第１３／０１０，１６９号に記載されている。たとえば、図１に示されるように、それぞれの外部物理リンクは、スイッチ２０ａ−２０ｃの各々をメトロ／コアネットワーク７０内の特定のネットワークノード（図示せず）に接続して、ＭＣ−ＬＡＧ６０を形成する。一例示的実施形態では、仮想シャーシ１０および／またはネットワークノードは、負荷分散技法を用いて、ＭＣ−ＬＡＧ６０の利用可能なリンクの全てにわたってトラフィックを分散させることができる。たとえば、ＭＣ−ＬＡＧ６０上で伝送されるパケットごとに、物理リンクの１つが、負荷分散アルゴリズム（通常は、送信元および宛先インターネットプロトコル（ＩＰ）またはメディアアクセス制御（ＭＡＣ）アドレス情報に作用するハッシュ関数を含む）に基づいて選択される。
【００１５】
他の実施形態では、スイッチ２０ａ−２０ｃは、標準的なリンクアグリゲーショングループ（ＬＡＧ）または他のトランクもしくはリンクを用いて、上流および／または下流ノードに接続することができる。本明細書では、「ＬＡＧ」という用語が、２００８年１１月３日にリリースされたＩＥＥＥ８０２．１ＡＸ−ＩＥＥＥ８０２．３ａｄに定義されたリンクアグリゲーション制御プロトコル（ＬＡＣＰ）を用いて、２つのノード間のいくつかの物理リンクをバンドル化してそれらの間に単一の論理チャネルを形成することを指すことを理解されたい。
【００１６】
仮想シャーシ１０と上流および／または下流ノードとの間の接続の種類に関わらず、スイッチ２０ａ−２０ｃは、上流および下流ノードに対して透過的に動作し、上流および下流ノードにより単一の論理デバイス（仮想シャーシ１０）として扱われる。それゆえ、上流および下流ノードは、仮想シャーシ１０にトラフィックをアクティブに転送することができ、一方、スイッチ２０ａ−２０ｃ間のＭＡＣアドレステーブルおよびその他の転送情報の同期は、ＶＦＬ５０上のＬ２パケットフローおよび制御メッセージングにより駆動される。
【００１７】
一実施形態では、スイッチ２０ａ−２０ｃはアクティブ／パッシブ環境で動作し、その環境では、外部リンクの全てが同時にトラフィックをアクティブに転送するわけではない（すなわち、１つのスイッチ上の外部リンクはアクティブであるが、他のスイッチ上の外部リンクはパッシブまたは「待機中」のままである）。この実施形態では、アクティブリンクが故障すると、スパニングツリープロトコル（ＳＴＰ）を用いて代替経路を待機モードからアクティブ状態にし、それによって、接続を再確立することができる。他の実施形態では、スイッチ２０ａ−２０ｃはアクティブ／アクティブ環境で動作し、この環境では、全ての外部リンクが同時にアクティブである（すなわち、全てのスイッチ上の外部リンクがアクティブである）。この実施形態では、ループ防止のためにネットワークトポロジの一部または全部においてＳＴＰが実行される必要がない場合がある（たとえばＳＴＰは、ＶＦＬ５０上で、ならびに仮想シャーシ１０をネットワーク７０内の上流／コアスイッチと接続するリンク上で、やはり利用することができる）。
【００１８】
本発明の実施形態によれば、各スイッチ２０ａ−２０ｃは、基本オペレーティングシステムと、基本機能および／またはサービス（すなわち、トラフィックのＬ２スイッチングおよび／またはＬ３ルーティング）を提供するのに必要な全ての基本アプリケーションとを含む、基本ソフトウェア３０ａ−３０ｃが提供される。加えて、基本機能および／またはサービスのいずれとも異なる拡張機能および／またはサービスを仮想シャーシ１０が提供可能となるように、拡張アプリケーション４０ａ／４０ｂを、スイッチのうちの１つまたは複数（たとえばスイッチ２０ａおよび２０ｂ）にインストールすることもできる。たとえば、一実施形態では、拡張アプリケーション４０ａ／４０ｂは、ワイヤレスローカルエリアネットワーク（ＷＬＡＮ）コントローラアプリケーションであり、これはＷＬＡＮ内の１つまたは複数のアクセスポイント（ＡＰ）を制御するものである。他の実施形態では、拡張アプリケーション４０ａ／４０ｂは、基本サービス／機能のほかにサービス／機能を提供する任意のアプリケーションとすることができる。
【００１９】
均質仮想シャーシでは、拡張アプリケーション４０ａ／４０ｂは、仮想シャーシ内の各スイッチにインストールされる。不均質仮想シャーシでは、図１に示されるように、拡張アプリケーション４０ａ／４０ｂは、スイッチ２０ａ／２０ｂのサブセットのみにインストールされる。この実施形態では、拡張アプリケーションがインストールされたスイッチ２０ａおよび２０ｂは、本明細書では「拡張スイッチ」と呼ばれ、拡張アプリケーションがインストールされていないスイッチ２０ｃは、本明細書では「基本スイッチ」と呼ばれる。
【００２０】
図示されないが、複数の拡張アプリケーションが、スイッチ２０ａ−２０ｃのうちの１つまたは複数にインストールされてもよいことに留意されたい。加えて、各拡張アプリケーションは、他の拡張アプリケーションがインストールされたスイッチの１つまたは複数の他のサブセットと異なる場合があるスイッチのそれぞれのサブセットにインストールされてもよい。各拡張アプリケーションは、各拡張アプリケーションに対するアプリケーション別冗長性のそれぞれのレイヤを提供するように、仮想シャーシ内で設定される。
【００２１】
たとえば、一例示的実施形態では、仮想シャーシ１０を初期化すると、基本マスタ選出処理が、仮想シャーシ１０内のスイッチ２０ａ−２０ｃの全てから基本マスタスイッチ（たとえばスイッチ２０ｃ）を選出するために、仮想シャーシ１０内で開始される。基本マスタスイッチ２０ｃは、仮想シャーシ１０と、（図１に示すように）基本マスタスイッチ２０ｃ上で動作していない場合がある拡張アプリケーション４０ａ／４０ｂを含む仮想シャーシ内のスイッチ２０ａ−２０ｃ上で動作する全てのアプリケーションとに対する管理（設定および監視）の中心点である。たとえば、基本マスタスイッチ２０ｃは、スイッチ２０ａ−２０ｃ間の基本ソフトウェア３０ａ−３０ｃに関する負荷分担（ｌｏａｄ  ｓｈａｒｉｎｇ）、スイッチング／ルーティング、および通信の制御を担当し、仮想シャーシにおける基本ソフトウェア３０ａ−３０ｃの冗長性を高めるものである。基本マスタ選出処理は、基本マスタスイッチ２０ｃを選出するための様々な選出基準、たとえば、どのスイッチが最低の識別子／アドレスを有するか、どのスイッチが最低の優先度を有するか、および／または他の基準を考慮する従来の仮想シャーシマスタ選出アルゴリズムなどを利用することができる。基本マスタスイッチ２０ｃは、用いられる基本マスタ選出処理に応じて、（拡張アプリケーションがインストールされていない）基本スイッチ、または拡張スイッチとすることができる。
【００２２】
加えて、拡張マスタスイッチ（たとえばスイッチ２０ａ）は、拡張マスタ選出処理を用いて、（拡張アプリケーション４０ａ／４０ｂがインストールされた）拡張スイッチ２０ａおよび２０ｂから選出される。拡張マスタスイッチ２０ａは、拡張スイッチ２０ａおよび２０ｂの間の拡張アプリケーション４０ａ／４０ｂに関する負荷分担、スイッチング／ルーティング、および通信の制御を担当し、仮想シャーシにおける拡張アプリケーション４０ａ／４０ｂの冗長性を高めるものである。拡張アプリケーションが１つより多くのスイッチ２０にインストールされている場合にのみ、冗長性が得られることに留意されたい。しかしながら、本発明の拡張マスタ選出処理は、少なくとも１つであるが全てのスイッチよりは少ないスイッチに拡張アプリケーションがインストールされている限り、動作することになる。
【００２３】
拡張マスタスイッチは、（基本マスタスイッチに拡張ソフトウェアがインストールされている場合は）基本マスタスイッチと同じであってもよく、または、基本マスタスイッチと異なってもよい。拡張マスタ選出処理は、基本マスタ選出処理により考慮されるものと同様の選出基準および／または異なる選出基準を考慮する仮想シャーシ拡張マスタ選出アルゴリズムなどを利用することができる。
【００２４】
仮想シャーシ１０内の各拡張アプリケーションに対して、同一または異なる拡張マスタ選出アルゴリズムを用いて別々の拡張マスタスイッチが選出されることを理解されたい。拡張マスタスイッチは、スイッチ属性（すなわち、各スイッチにインストールされた拡張アプリケーション、各スイッチのＭＡＣアドレスおよび優先度）および他の選出基準に応じて、拡張アプリケーションごとに異なってもよく、全ての拡張アプリケーションに対して同一でもよく、または特定の拡張アプリケーションのみに対して同一でもよい。仮想シャーシ内の特定のスイッチが故障すると、基本マスタスイッチと、故障したスイッチにインストールされた各拡張アプリケーションに対する各拡張マスタスイッチとが、それぞれの基本／拡張アプリケーションに関するトラフィックを再ルーティングし、しかるべく転送テーブルを更新するという点で、各拡張マスタスイッチは、仮想シャーシ内の追加の冗長性レイヤを代表する。したがって、仮想シャーシ１０の構成スイッチ２０ａ−２０ｃの各々にインストールされた拡張アプリケーション４０ａ／４０ｂに基づいて、別々の冗長性レイヤが、拡張アプリケーションごとに基本ソフトウェア冗長性の上に仮想的に作成される。
【００２５】
図２Ａに、基本スイッチの一例示的実施形態を示す。基本スイッチ２０は、プロセッサ１００と、基本ソフトウェア３０と、１つまたは複数の仮想ファブリックリンク（ＶＦＬ）ポート１１０ａおよび１１０ｂと、１つまたは複数の外部ポート１２０ａおよび１２０ｂとを含む。本明細書では、「プロセッサ」という用語は、ＰＣなどの汎用コンピュータを駆動するデバイスであると一般に理解される。しかしながら、他の処理デバイス、たとえばマイクロコントローラ、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、特定用途向け集積回路（ＡＳＩＣ）、またはそれらの組合せもまた、本明細書に記載の利益および利点を実現するのに用いることができることに留意されたい。
【００２６】
ＶＦＬポート１１０ａおよび１１０ｂは、ＶＦＬを形成するリンクへの接続を提供する。外部ポート１２０ａおよび１２０ｂは、外部の上流および／または下流ノードへのリンクへの接続を提供する。外部ポート１２０ａおよび１２０ｂのうちの１つまたは複数は、ＭＣ−ＬＡＧ物理リンク、ＬＡＧまたは他のトランクグループ、固定リンクなどのためのメンバーポートを含むことができる。ＶＦＬポート１１０ａおよび１１０ｂならびに外部ポート１２０ａおよび１２０ｂは、同一の物理インターフェース型、たとえば銅線ポート（ＣＡＴ−５Ｅ／ＣＡＴ−６）、マルチモードファイバポート（ＳＸ）またはシングルモードファイバポート（ＬＸ）を有してもよい。他の実施形態では、ＶＦＬポート１１０ａおよび１１０ｂならびに外部ポート１２０ａおよび１２０ｂは、１つまたは複数の異なる物理インターフェース型を有してもよい。
【００２７】
基本ソフトウェア３０は、基本スイッチ２０および／または仮想シャーシ内の他のスイッチを初期化すると、仮想シャーシ内のスイッチを設定することを可能にする仮想シャーシ管理モジュール（ＶＣＣＭ：ｖｉｒｔｕａｌ  ｃｈａｓｓｉｓ  ｍａｎａｇｅｍｅｎｔ  ｍｏｄｕｌｅ）８０を含む。ＶＣＣＭ８０は、仮想シャーシ内の拡張スイッチと通信するための拡張アプリケーションインターフェース９０を含む。
【００２８】
ＶＣＣＭ８０は、１つまたは複数のＶＦＬポート１１０ａおよび１１０ｂを介して仮想シャーシ内の他のスイッチと通信して、仮想シャーシ内の各スイッチと、各スイッチの様々な属性（たとえば各スイッチの識別子、スイッチ優先度など）とを発見するトポロジ発見処理を実行するように、プロセッサ１００により実行可能である。ＶＣＣＭ８０はさらに、各スイッチのスイッチ属性および／または他の選出基準に基づいて基本マスタスイッチを選出する基本マスタ選出処理を実行するように、プロセッサにより実行可能である。
【００２９】
たとえば、例示的な動作では、初期化すると、ＶＣＣＭ８０は仮想シャーシ用の設定ファイルに基づいて、仮想シャーシモードで基本スイッチ２０を起動する。任意のユニットが（基本または拡張）マスタになる場合に、設定が全てのアプリケーションに対してシステム１０内に存在することを保証するために、基本ソフトウェアアプリケーションおよび拡張ソフトウェアアプリケーションに対する設定を設定ファイルが含むことに留意されたい。拡張アプリケーションの設定は、基本スイッチ２０上に存在する拡張アプリケーションインターフェース９０の一部として、ホストされるかまたは格納される。
【００３０】
仮想シャーシモードは、基本スイッチが仮想シャーシ内の全ての他のスイッチとは独立に起動して、基本ソフトウェア３０内の全ての標準アプリケーションとＶＦＬポート１１０ａ／１１０ｂとを立ち上げるスタンドアローン起動処理である（外部ポート１２０ａ／１２０ｂは仮想シャーシモードでは立ち上げられない）。仮想シャーシ内の全てのスイッチが仮想シャーシ起動処理を完了したことをＶＣＣＭ８０が検出した場合、ＶＣＣＭ８０はトポロジ発見処理、続いて基本マスタ選出処理を開始する。基本スイッチが基本マスタスイッチに選出された場合、ＶＣＣＭ８０はさらに、仮想シャーシのＭＡＣアドレスおよびＩＰアドレスを、仮想シャーシ内の各スイッチに提供する。基本スイッチが基本マスタスイッチに選出されなかった（すなわち、基本スイッチが基本スレーブスイッチである）場合、基本スレーブスイッチは、基本マスタスイッチから仮想シャーシのＭＡＣアドレスおよびＩＰアドレスを受信し、仮想シャーシのＭＡＣアドレスおよびＩＰアドレスを基本ソフトウェア３０内の全ての基本ソフトウェアアプリケーションに配布する。
【００３１】
トポロジ発見処理の一部として、ＶＣＣＭ８０は、仮想シャーシ内に１つまたは複数の拡張アプリケーションがインストールされた１つまたは複数の拡張スイッチが存在することを検出することができる。基本スイッチ２０が基本マスタスイッチに選出される一実施形態では、ＶＣＣＭ８０は、仮想シャーシ内に１つまたは複数の拡張スイッチが存在することを拡張アプリケーションインターフェース９０に通知する。これをトリガにして、たとえば、拡張アプリケーションインターフェース９０内の状態機械が、仮想シャーシ内の拡張アプリケーションに対する設定情報を受信し、ＶＦＬポート１１０ａ／１１０ｂを介して、拡張スイッチの各々内の対応する拡張アプリケーションインターフェースからの接続を待つためのソケットを開く。
【００３２】
そこからの接続を検出すると、拡張アプリケーションインターフェース９０は、どのスイッチに各拡張アプリケーションがインストールされているかを決定する。この情報とトポロジ情報とから、拡張アプリケーションインターフェース９０は、拡張アプリケーションごとに拡張マスタスイッチを選出する拡張マスタ選出処理を実行する。特定の拡張アプリケーションに対して選択された拡張マスタスイッチに、その特定の拡張アプリケーションがインストールされている限り、拡張マスタスイッチは、拡張アプリケーションごとに異なってもよく、拡張アプリケーションのうちの１つより多くに対して同一であってもよい。次いで、拡張アプリケーションインターフェース９０は、拡張マスタスイッチの内部ＩＰアドレスまたは他の識別子を各拡張スイッチに提供する。各拡張スイッチが、自身にインストールされた拡張アプリケーションに関する拡張マスタスイッチのＩＰアドレスのみを受信することを理解されたい。
【００３３】
図２Ｂに、拡張マスタスイッチ２０の一例示的実施形態を示す。拡張マスタスイッチ２０は、プロセッサ１００と、基本ソフトウェア３０と、拡張アプリケーション４０と、１つまたは複数の仮想ファブリックリンク（ＶＦＬ）ポート１１０ａおよび１１０ｂと、１つまたは複数の外部ポート１２０ａおよび１２０ｂとを含む。ＶＦＬポート１１０ａおよび１１０ｂは、ＶＦＬを形成するリンクへの接続を提供する。外部ポート１２０ａおよび１２０ｂは、外部の上流および／または下流ノードに対するリンクへの接続を提供する。外部ポート１２０ａおよび１２０ｂのうちの１つまたは複数は、ＭＣ−ＬＡＧ物理リンク、ＬＡＧまたは他のトランクグループ、固定リンクなどのためのメンバーポートを含むことができる。ＶＦＬポート１１０ａおよび１１０ｂならびに外部ポート１２０ａおよび１２０ｂは、同一の物理インターフェース型、たとえば銅線ポート（ＣＡＴ−５Ｅ／ＣＡＴ−６）、マルチモードファイバポート（ＳＸ）またはシングルモードファイバポート（ＬＸ）でもよい。他の実施形態では、ＶＦＬポート１１０ａおよび１１０ｂならびに外部ポート１２０ａおよび１２０ｂは、１つまたは複数の異なる物理インターフェース型でもよい。
【００３４】
基本ソフトウェア３０は、ＶＣＣＭ８０を含み、ＶＣＣＭ８０はまた、上述されたように、拡張アプリケーションインターフェース９０を含む。ＶＣＣＭ８０は、１つまたは複数のＶＦＬポート１１０ａおよび１１０ｂを介して仮想シャーシ内の他のスイッチと通信して、同じく上述されたように、トポロジ発見処理および基本マスタ選出処理を実行するよう、プロセッサ１００により実行可能である。さらに、初期化すると、ＶＣＣＭ８０は、さらに上述されたように、仮想シャーシモードで拡張スイッチ２０を起動する。しかしながら、仮想シャーシ起動処理の一部として、拡張スイッチ２０はまた、拡張アプリケーション４０を起動し、拡張アプリケーション４０を拡張アプリケーションインターフェース９０に接続する。
【００３５】
仮想シャーシ内の全てのスイッチが仮想シャーシ起動処理を完了したことをＶＣＣＭ８０が検出した場合、ＶＣＣＭ８０はトポロジ発見処理、続いて基本マスタ選出処理を開始する。拡張スイッチ２０が基本マスタスイッチに選出される一実施形態では、ＶＣＣＭ８０はさらに、上述のように、拡張マスタ選出処理を実行する。
【００３６】
しかしながら、拡張スイッチが基本マスタスイッチに選出されない（すなわち拡張スイッチが基本スレーブスイッチである）一実施形態では、基本スレーブスイッチは、基本マスタスイッチから仮想シャーシのＭＡＣアドレスおよびＩＰアドレスを受信し、仮想シャーシのＭＡＣアドレスおよびＩＰアドレスを、基本ソフトウェア３０内の全ての基本ソフトウェアアプリケーションと、拡張アプリケーション４０とに配布する。
【００３７】
そして、拡張アプリケーションインターフェース９０は、ＶＦＬポート１１０ａ／１１０ｂを介して基本マスタスイッチ内の対応する拡張アプリケーションインターフェースと接続する。そして、拡張アプリケーションインターフェース９０は、拡張アプリケーション４０に対する拡張マスタスイッチのＩＰアドレス（すなわち仮想シャーシ内でのみ使用される内部ＩＰアドレス）を、拡張アプリケーション４０がインストールされた各拡張スイッチの内部ＩＰアドレスと共に、基本マスタスイッチから受信する。
【００３８】
拡張スイッチが拡張マスタスイッチである一実施形態では、拡張アプリケーションインターフェース９０は、ソケットを開き、仮想シャーシ内の拡張スレーブスイッチの各々からの接続を待つ。そこからの接続を検出すると、拡張アプリケーション４０は、拡張スイッチのＩＰアドレス情報を用いて、仮想シャーシにインストールされた拡張アプリケーション４０の全てのインスタンスに接続し、それによって、制御通信および冗長性のためにそれらの間にＩＰ接続を形成する。拡張スイッチが拡張スレーブスイッチである一実施形態では、拡張アプリケーションインターフェース９０は、拡張マスタスイッチ上の拡張アプリケーションインターフェースに接続して、拡張マスタ／スレーブスイッチ上の拡張アプリケーション４０間にＩＰ接続を形成することになる。
【００３９】
一例示的実施形態では、拡張マスタスイッチは、基本マスタスイッチ上の拡張アプリケーションインターフェース９０と通信して、設定および管理を行う。たとえば、拡張マスタスイッチは、基本マスタスイッチ上の拡張アプリケーションインターフェース９０と共に拡張イメージ／設定を検証し、イメージ／設定が一致しない場合、基本マスタスイッチ上の拡張アプリケーションインターフェース９０から正しい拡張設定情報を受信することができる。拡張マスタスイッチはさらに、拡張スレーブスイッチと通信して、ランタイムを設定し、ランタイム状態を同期させる。
【００４０】
図３Ａに、仮想シャーシ内のスイッチ２０の様々なハードウェアコンポーネントの一例示的実施形態を示す。スイッチ２０は、基本ＣＰＵ１６０と、パケットプロセッサ１７０と、１つまたは複数のＶＦＬポート１１０と、１つまたは複数の外部ポート（図示せず）と、１つまたは複数のメモリデバイスとを含む。たとえば、図３Ａに示されるように、スイッチ２０は、フラッシュメモリ１３０と、ランダムアクセスメモリ１４０と、ブートフラッシュメモリ１５０とを含むことができる。しかしながら、任意の種類のメモリデバイスを含むことができることを理解されたい。例として、限定はしないが、メモリデバイスは、１つまたは複数のデータ記憶デバイス、ランダムアクセスメモリ（ＲＡＭ）、読み出し専用メモリ（ＲＯＭ）、フラッシュメモリ、コンパクトディスク、フロッピー（登録商標）ディスク、ＺＩＰドライブ、テープドライブ、データベースまたは他の種類の記憶デバイスもしくは記憶媒体を含むことができる。
【００４１】
初期化すると、基本ＣＰＵ１６０は、ブートフラッシュ１５０にアクセスして、ブートフラッシュ１５０に格納された基本イメージ（すなわち基本ソフトウェアアプリケーション）をロードし、仮想シャーシ内の他のスイッチと通信するためにＶＦＬポート１１０を立ち上げる。基本イメージが、仮想シャーシ内の任意の拡張アプリケーションの設定が提供された拡張アプリケーションインターフェースを含むことを理解されたい。スイッチ２０が拡張スイッチである一実施形態では、基本ＣＰＵ１６０はさらに、拡張イメージ（すなわち拡張アプリケーション）を、たとえば別々の拡張アプリケーション仮想マシン（ＶＭ：ｖｉｒｔｕａｌ  ｍａｃｈｉｎｅ）または別々のアプリケーションプロセスとして基本ＣＰＵ１６０上にロードし、拡張アプリケーションインターフェースは、図２Ｂに示されるように、拡張アプリケーションに拡張アプリケーション設定を送る。その後、ＶＦＬ１１０が起動され、パケットプロセッサ１７０はＶＦＬ１１０上で送信および受信されるパケットを生成し処理して、トポロジ発見処理、基本マスタ選出処理および拡張マスタ選出処理（適用可能な場合）を実行する。
【００４２】
拡張スイッチ用の他のハードウェア構成が、図３Ｂおよび図３Ｃに示される。図３Ｂでは、拡張スイッチ２０は、拡張アプリケーション用に、外部ＣＰＵ２００と、追加ＲＡＭ１８０と、追加ブートフラッシュメモリ１９０とを含む。基本ＣＰＵ１６０は、たとえば伝送制御プロトコル／インターネットプロトコル（ＴＣＰ／ＩＰ）を用いて外部ＣＰＵと通信して、ブートフラッシュメモリ１９０から外部ＣＰＵ２００への拡張アプリケーションのロードを容易にし、外部ＣＰＵ２００上の拡張アプリケーションと基本ＣＰＵ１６０上の拡張アプリケーションインターフェース（およびその上にロードされた他の基本ソフトウェアアプリケーション）との間の通信を可能にする。拡張アプリケーションが外部ＣＰＵ２００上にロードされているので、拡張アプリケーションの内部ＩＰアドレスは、外部ＣＰＵ２００のＩＰアドレスである。
【００４３】
図３Ｃにおいて、マルチコアＣＰＵ２１０が、基本ＣＰＵ１６０および外部ＣＰＵ２００を含んで提供される。この例示的ハードウェア実施形態では、基本ＣＰＵ２１０は、ブートフラッシュメモリ１５０から外部ＣＰＵ２００上への拡張アプリケーションのロードを容易にする。加えて、拡張アプリケーションの内部ＩＰアドレスは、外部ＣＰＵ２１０のＩＰアドレスである。仮想シャーシ内のイーサネットスイッチに対して可能な多数の異なるハードウェア構成が存在し、本発明は任意の特定のハードウェア構成に限定されないことを理解されたい。
【００４４】
図４に、本発明による仮想シャーシ内の様々なソフトウェアコンポーネント間の論理通信の一実施形態の概略ブロック図を示す。図４では、仮想シャーシを形成する４つのイーサネットスイッチ２０ａ−２０ｄが存在する。しかしながら、他の実施形態では、イーサネットスイッチの数が２および１８以上の間で変化し得ることを理解されたい。
【００４５】
各スイッチ２０ａ−２０ｄは、基本ソフトウェア３０ａ−３０ｄを含み、基本ソフトウェア３０ａ−３０ｄは、ＶＣＣＭ８０ａ−８０ｄ、拡張アプリケーションインターフェース９０ａ−９０ｄ、基本ソフトウェアアプリケーション２２０ａ−２２０ｄ、拡張アプリケーションハードウェアインターフェース２３０ａ−２３０ｄを含む。加えて、拡張スイッチ２０ｂおよび２０ｃは、拡張アプリケーション４０ａおよび４０ｂを含む。スイッチ２０ａは基本マスタスイッチであり、スイッチ２０ｂは拡張マスタスイッチである。スイッチ２０ｂ−２０ｄは基本スレーブスイッチであり、スイッチ２０ｃは拡張スレーブスイッチでもある。
【００４６】
図４から分かるように、初期化を行い基本アプリケーション２２０ａ−２２０ｄをスイッチ２０ａ−２０ｄにインストールした後、基本マスタスイッチ２０ａ内の拡張アプリケーションインターフェース９０ａは、基本スレーブスイッチの各々上の拡張アプリケーションインターフェース９０ｂ−９０ｄとの接続を確立し、拡張スイッチ２０ｂ−２０ｃ上の拡張アプリケーションインターフェース９０ｂ−９０ｃと通信して拡張マスタスイッチ２０ｂを選出する。基本マスタスイッチ２０ａ内の拡張アプリケーションインターフェース９０ａはさらに、拡張アプリケーションハードウェアインターフェース２３０ｂ−２３０ｄとの接続を確立し、拡張スイッチ２０ｂ−２０ｃ上の拡張アプリケーションハードウェアインターフェース２３０ｂ−２３０ｃと通信して、拡張アプリケーション４０ａ−４０ｂに関するハードウェアプログラミングを行う。さらに、拡張マスタスイッチ２０ｂ上の拡張アプリケーション４０ａは、制御および冗長性のために、拡張スレーブスイッチ２０ｃ上の拡張アプリケーション４０ｂとのプロセス間通信接続（ＩＰＣ：ｉｎｔｅｒ−ｐｒｏｃｅｓｓ  ｃｏｍｍｕｎｉｃａｔｉｏｎ  ｃｏｎｎｅｃｔｉｏｎ）を確立する。
【００４７】
図５に、本発明による仮想シャーシにおいてアプリケーション別冗長性を提供するための方法３００の例示的な流れ図を示す。本方法は３１０で開始し、ここでは、仮想シャーシの各スイッチ内の仮想シャーシ制御モジュールが、トポロジ発見処理を実行して仮想シャーシ内のスイッチを発見する。３２０において、仮想シャーシ制御モジュールはさらに、任意の種類のマスタ選出処理を用いて基本マスタスイッチを決定する。３３０において、トポロジ発見処理の一部として、１つまたは複数の拡張アプリケーションが仮想シャーシ内で検出される。３４０において、拡張マスタスイッチが決定される。たとえば、一実施形態では、基本マスタスイッチは、任意の種類のマスタ選出処理を用いて拡張マスタスイッチを選出し、仮想シャーシ内の他のスイッチに、拡張マスタスイッチの識別子を通知する。
【００４８】
図６に、本発明による仮想シャーシにおいてアプリケーション別冗長性を提供するための例示的なシグナリング図を示す。図６では、基本マスタスイッチは既に選出されており、基本マスタスイッチ上の拡張アプリケーションインターフェース９０ａは、拡張スイッチ（これらは基本スレーブスイッチでもある）の各々上の拡張アプリケーションインターフェース９０ｂおよび９０ｃからの接続を待機するソケットを開いている。４００および４１０において、拡張スイッチの各々上の拡張アプリケーションインターフェース９０ｂ／９０ｃは、基本マスタスイッチ上の拡張アプリケーションインターフェース９０ａに接続する。
【００４９】
前もって決定されたトポロジ情報に基づいて、４２０において、基本マスタスイッチ上の拡張アプリケーションインターフェース９０ａは、拡張マスタスイッチを選出する。そして、４３０および４４０において、基本マスタスイッチ上の拡張アプリケーションインターフェース９０ａは、拡張マスタスイッチの内部ＩＰアドレスまたは他の識別子（すなわち、拡張マスタスイッチにインストールされた拡張アプリケーションのＩＰアドレス）を、拡張スイッチの各々上の拡張アプリケーションインターフェース９０ｂ／９０ｃに提供する。
【００５０】
本明細書では、「実質的に（ｓｕｂｓｔａｎｔｉａｌｌｙ）」および「ほぼ（ａｐｐｒｏｘｉｍａｔｅｌｙ）」という用語は、その対応する用語についての業界で認められた公差、および／または項目間の相対性を与える。そのような業界で認められた公差は、１パーセント未満から５０パーセントまでの範囲に及び、限定はされないが、成分値、集積回路工程変動、温度変動、立上りおよび立下り時間、および／または熱雑音に対応する。そのような項目間の相対性は、数パーセントの差から等級の差までに及ぶ。また、本明細書では、「に結合される（ｃｏｕｐｌｅｄ  ｔｏ）」および／または「結合する（ｃｏｕｐｌｉｎｇ）」という用語は、項目間の直接結合、および／または、介在項目を介した項目間の間接結合を含み（たとえば項目は、限定はされないが、構成要素、要素、回路、および／またはモジュールを含む）、ここで間接結合に関して、介在項目は、信号の情報は修正しないが、その電流レベル、電圧レベル、および／または電力レベルを調整することがある。さらに、本明細書では、推論結合（すなわち、ある要素が推論によって他の要素に結合される）は、「に結合される」と同様に、２つの項目間の直接結合および間接結合を含む。本明細書では、「するように動作可能（ｏｐｅｒａｂｌｅ  ｔｏ）」という用語は、項目が、記載の機能または必要な対応する機能のうちの１つまたは複数を実行するための処理モジュール、データ、入力、出力などのうちの１つまたは複数を含み、記載の機能または必要な対応する機能を実行するための１つまたは複数の他の項目への推論結合をさらに含むことがあることを示す。また、本明細書では、「に接続される（ｃｏｎｎｅｃｔｅｄ  ｔｏ）」および／または「接続する（ｃｏｎｎｅｃｔｉｎｇ）」あるいは「相互接続する（ｉｎｔｅｒｃｏｎｎｅｃｔｉｎｇ）」という用語は、ノード／デバイス間の直接接続またはリンク、および／または、介在項目を介したノード／デバイス間の間接接続を含む（たとえば項目は、限定はされないが、構成要素、要素、回路、モジュール、ノード、デバイスなどを含む）。さらに、本明細書では、推論接続（すなわち、ある要素が推論によって他の要素に接続される）は、「に接続される」と同様に、２つの項目間の直接接続および間接接続を含む。
【００５１】
また、実施形態は、特定の機能の性能およびそれらの関係を示す方法ステップの助力を得て、上記で説明された。これらの機能的構築ブロックおよび方法ステップの境界および順序は、説明の都合上、本明細書では任意に定義されている。特定の機能および関係が適切に実施される限り、代替の境界および順序を定義することができる。したがって、任意のそのような代替の境界または順序は、特許請求された本発明の範囲および趣旨内にある。同様に、流れ図ブロックも、特定の重要な機能性を示すために、本明細書で任意に定義されていることがある。使用される範囲で、流れ図ブロック境界および順序は、他の方法で定義できた可能性があり、やはり特定の重要な機能性を実施する。したがって、機能的構築ブロックおよび流れ図ブロックの双方ならびに順序のそのような代替の定義は、特許請求された本発明の範囲および趣旨内にある。本明細書における機能的構築ブロック、ならびに他の例示的ブロック、モジュールおよび構成要素が、示されたように実装することができ、あるいは、適切なソフトウェアなどを実行する１つまたは複数の個別の構成要素、ネットワーク、システム、データベースまたは処理モジュール等、あるいはそれらの任意の組合せにより実装することができることもまた、平均的な当業者であれば理解するだろう。
【図１】
2016516368.tif 000003
【図２Ａ】
2016516368.tif 000004
【図２Ｂ】
2016516368.tif 000005
【図３Ａ】
2016516368.tif 000006
【図３Ｂ】
2016516368.tif 000007
【図３Ｃ】
2016516368.tif 000008
【図４】
2016516368.tif 000009
【図５】
2016516368.tif 000010
【図６】
2016516368.tif 000011
【国際調査報告】
2016516368.tif 000012
2016516368.tif 000013