(57)【要約】      （修正有）【課題】管理コントローラを使用するマルチシャーシシステムにおいてマルチシャーシリンクを自動的に構成するシステムおよび方法を提供する。【解決手段】管理コントローラは、マルチシャーシシステムの複数のサーバシステムおよび複数のスイッチからスイッチポートデータをリクエストおよび受信する。受信したスイッチポートデータに基づいて、管理コントローラは、複数のスイッチのうち第１のスイッチおよび第２のスイッチに関するピアリンクポートを決定し、受信されたスイッチポートデータに基づいて、第１のスイッチおよび第２のスイッチの複数のポートから適切なポート群を選択し、対応する適切なポート群に関するＭＣ−ＬＡＧメンバポートとして各適切なポート群において、ポートを構成する。【選択図】図２
2019004450.tif 000002
【特許請求の範囲】
【請求項１】
管理コントローラを使用するマルチシャーシシステムにおいてマルチシャーシリンクを自動的に構成するコンピュータ実装方法であって、
前記マルチシャーシシステムの複数のサーバシステムおよび複数のスイッチからスイッチポートデータをリクエストする段階と、
前記スイッチポートデータを受信する段階であって、前記スイッチポートデータは、前記複数のサーバシステムおよび前記複数のスイッチの内部ポートアドレスおよび隣接ポートアドレスを含む、受信する段階と、
複数の合致ポートおよび複数の合致ノードを決定する段階であって、前記複数の合致ポートのそれぞれが、前記隣接ポートアドレスの１つと合致するポートアドレスを有し、前記複数の合致ノードのそれぞれが、前記複数の合致ポートの１つに対応する、決定する段階と、
前記複数のスイッチのうち第１のスイッチおよび第２のスイッチに関する複数のピアリンクポートを決定する段階であって、前記複数のピアリンクポートは前記複数の合致ポートのサブセットであり、前記複数のピアリンクポートのうち各ピアリンクポートは前記第１のスイッチおよび前記第２のスイッチのうち一方に属し、前記複数の合致ノードのうちの、前記第１のスイッチおよび前記第２のスイッチのうち他方である合致ノードに対応する、決定する段階と、
を備える、コンピュータ実装方法。
【請求項２】
前記スイッチポートデータおよび１つまたは複数の予め決められた基準に基づいて、前記第１のスイッチおよび前記第２のスイッチの複数のポートを複数のポート群にグループ化する段階と、
複数のポート群の第１のサブセットを決定する段階であって、複数のポート群の前記第１のサブセットにおけるポート群は、前記第１のスイッチに属する少なくとも１つのポートと、前記第２のスイッチに属する少なくとも１つの別のポートとを有する、決定する段階と、
複数のポート群の前記第１のサブセットの各ポート群におけるすべてのポートを、同一のメンバポートとして構成する段階と、をさらに含み、
前記同一のメンバポートがマルチシャーシリンクアグリゲーショングループ（ＭＣ−ＬＡＧ）メンバポートであり、
前記１つまたは複数の予め決められた基準は、前記複数のポート群における各ポートが、少なくとも１つの隣接ポートアドレスを有することと、前記複数のポート群のうちの各ポート群における複数のポートが、複数の合致ノードにおいて同一の対応する合致ノードを有することと、前記複数のポート群における各ポートが、前記複数の合致ノードにおいて、前記第１のスイッチまたは前記第２のスイッチのいずれでもない合致ノードに対応することとを含む、
請求項１に記載のコンピュータ実装方法。
【請求項３】
前記複数の合致ポートおよび前記複数の合致ノードを決定する段階が、
前記第１のスイッチおよび前記第２のスイッチの各ポートに関して前記隣接ポートアドレスを調べる段階と、
特定のポートのアドレスが前記第１のスイッチの隣接ポートアドレスおよび前記第２のスイッチの隣接ポートアドレスのいずれかと合致する場合に、前記特定のポートを前記複数の合致ポートにグループ化する段階と、
前記特定のポートを収容する対応するノードを、前記複数の合致ノードにグループ化する段階と、
をさらに含む、請求項１または２に記載のコンピュータ実装方法。
【請求項４】
前記マルチシャーシシステムが、ＩＥＥＥ８０２．１ＡＸＴＭ−２００８標準に対応し、
前記複数のサーバシステムおよび前記複数のスイッチが、リンク・レイヤ・ディスカバリ・プロトコル（ＬＬＤＰ）またはシスコ・ディスカバリ・プロトコル（ＣＤＰ）を使用して、前記マルチシャーシシステムの、ネットワーク上で対応する識別子、能力、および隣接を知らせ、
前記管理コントローラが、ＭＣ−ＬＡＧネットワークスイッチを構成することが可能な前記マルチシャーシシステムにおける、特定のシステム、ベースボード管理コントローラ（ＢＭＣ）、またはラック管理コントローラ（ＲＭＣ）であり得る、
請求項１から３のいずれか一項に記載のコンピュータ実装方法。
【請求項５】
マルチシャーシシステムにおいてマルチシャーシリンクを自動的に構成するためのシステムであって、
プロセッサと、
前記プロセッサによって実行される場合、
前記マルチシャーシシステムの複数のサーバシステムおよび複数のスイッチからスイッチポートデータをリクエストする段階と、
前記スイッチポートデータを受信する段階であって、前記スイッチポートデータは、前記複数のサーバシステムおよび前記複数のスイッチに対応する内部ポートアドレスおよび隣接ポートアドレスを含む、受信する段階と、
複数の合致ポートおよび複数の合致ノードを決定する段階であって、前記複数の合致ポートのそれぞれが、前記隣接ポートアドレスの１つと合致するポートアドレスを有し、前記複数の合致ノードのそれぞれが、前記複数の合致ポートの１つに対応する、決定する段階と、
前記複数のスイッチのうち第１のスイッチおよび第２のスイッチに関する複数のピアリンクポートを決定する段階であって、前記複数のピアリンクポートは前記複数の合致ポートのサブセットであり、前記複数のピアリンクポートのうち各ピアリンクポートは前記第１のスイッチおよび前記第２のスイッチのうち一方に属し、前記複数の合致ノードのうちの、前記第１のスイッチおよび前記第２のスイッチのうち他方である合致ノードに対応する、決定する段階と、
を含む動作を前記システムに実行させる命令を格納するコンピュータ可読媒体と、
を備える、システム。
【請求項６】
前記命令は、前記プロセッサによって実行される場合、
前記スイッチポートデータおよび１つまたは複数の予め決められた基準に基づいて、前記第１のスイッチおよび前記第２のスイッチの複数のポートを複数のポート群にグループ化する段階と、
ポート群の第１のサブセットを決定する段階であって、ポート群の前記第１のサブセットにおけるポート群は、前記第１のスイッチに属する少なくとも１つのポートと、前記第２のスイッチに属する少なくとも１つの別のポートとを有する、決定する段階と、
ポート群の前記第１のサブセットのうち各ポート群におけるすべてのポートを、同一のメンバポートとして構成する段階と、をさらに含む動作であって、
前記同一のメンバポートがマルチシャーシリンクアグリゲーショングループ（ＭＣ−ＬＡＧ）メンバポートであり、
前記１つまたは複数の予め決められた基準は、前記複数のポート群における各ポートが、少なくとも１つの隣接ポートアドレスを有することと、前記複数のポート群のうちの各ポート群における複数のポートが、複数の合致ノードにおいて同一の対応する合致ノードを有することと、前記複数のポート群における各ポートが、前記複数の合致ノードにおいて、前記第１のスイッチまたは前記第２のスイッチのいずれでもない合致ノードに対応することとを含む、
動作をシステムに実行させる、請求項５に記載のシステム。
【請求項７】
前記複数の合致ポートおよび前記複数の合致ノードを決定する前記動作が、
前記第１のスイッチおよび前記第２のスイッチの各ポートに関する前記隣接ポートアドレスを調べる段階と、
特定のポートのアドレスが前記第１のスイッチおよび前記第２のスイッチの隣接ポートアドレスのいずれかと合致する場合に、前記特定のポートを前記複数の合致ポートにグループ化する段階と、
前記特定のポートを収容する対応するノードを、前記複数の合致ノードにグループ化する段階と、
をさらに含む、請求項５または６に記載のシステム。
【請求項８】
前記複数のサーバシステムおよび前記複数のスイッチが、リンク・レイヤ・ディスカバリ・プロトコル（ＬＬＤＰ）またはＣＤＰ（シスコ・ディスカバリ・プロトコル）を使用して、前記マルチシャーシシステムの、ネットワーク上で対応する識別子、能力、および隣接を知らせる、請求項５から７のいずれか一項に記載のシステム。
【請求項９】
システムの少なくとも１つのプロセッサに、
マルチシャーシシステム内の複数のサーバシステムおよび複数のスイッチからスイッチポートデータをリクエストする手順と、
前記スイッチポートデータを受信する手順であって、前記スイッチポートデータは、前記複数のサーバシステムおよび前記複数のスイッチの内部ポートアドレスおよび隣接ポートアドレスを含む、受信する手順と、
複数の合致ポートおよび複数の合致ノードを決定する手順であって、前記複数の合致ポートのそれぞれが、前記隣接ポートアドレスの１つと合致するポートアドレスを有し、前記複数の合致ノードのそれぞれが、前記複数の合致ポートの１つに対応する、決定する手順と、
前記複数のスイッチのうち第１のスイッチおよび第２のスイッチに関する複数のピアリンクポートを決定する手順であって、前記複数のピアリンクポートは前記複数の合致ポートのサブセットであり、前記複数のピアリンクポートのうち各ピアリンクポートは前記第１のスイッチおよび前記第２のスイッチのうち一方に属し、前記複数の合致ノードのうちの、前記第１のスイッチおよび前記第２のスイッチのうち他方である合致ノードに対応する、決定する手順と、
を実行させるための、コンピュータプログラム。
【請求項１０】
前記少なくとも１つのプロセッサに、
前記スイッチポートデータおよび１つまたは複数の予め決められ基準に基づいて、前記第１のスイッチおよび前記第２のスイッチの複数のポートを複数のポート群にグループ化する手順と、
複数のポート群の第１のサブセットを決定する手順であって、複数のポート群の前記第１のサブセットにおけるポート群は、前記第１のスイッチに属する少なくとも１つのポートと、前記第２のスイッチに属する少なくとも１つの別のポートとを有する、決定する手順と、
複数のポート群の前記第１のサブセットの各ポート群におけるすべてのポートを、同一のメンバポートとして構成する手順と、をさらに実行させ、
前記１つまたは複数の予め決められた基準は、（１）前記複数のポート群における各ポートが、少なくとも１つの隣接ポートアドレスを有することと、（２）前記複数のポート群のうちの各ポート群における複数のポートが、複数の合致ノードにおいて同一の対応する合致ノードを有することと、（３）前記複数のポート群における各ポートが、前記複数の合致ノードにおいて、前記第１のスイッチまたは前記第２のスイッチのいずれでもない合致ノードに対応することとを含む、
請求項９に記載のコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、概してサーバシステムに関する。
【背景技術】
【０００２】
ＭＣ−ＬＡＧ（マルチシャーシリンクアグリゲーショングループ）は、別個のノード（シャーシ）上で終端する構成ポートを有する種類のリンクアグリゲーショングループであり、本質的に、ノード（シャーシ）の一方が異常となった場合に冗長性を提供することが目的である。ＭＣ−ＬＡＧ技術は、２つ以上の物理ケーブルを接続して論理／仮想チャネルを形成することによって、帯域幅およびリンクの冗長性を増やす。また、ＭＣ−ＬＡＧにおいて、２つのネットワークスイッチが、ある指定されたポート（例えば、「ピアリンク」）上でプロトコルメッセージを通信して、論理スイッチを形成し得る。スイッチの一方が故障した場合でさえ、他方のスイッチがなお通常どおり機能し得る。したがって、ＭＣ−ＬＡＧ技術はまた、ネットワークスイッチノードレベルにおける帯域幅および冗長性も向上させる。
【０００３】
例えば、米国特許出願第ＵＳ２０１２０２７５２９７Ａ１号明細書は、ネットワークデバイス上のマルチシャーシリンクアグリゲーションを開示する。それは、互いに連結され、複数の集合体デバイスにわたるリンクアグリゲーショングループ（"ＬＡＧ"）内のリンクを介してクライアントと連結された、クライアントデバイスおよび複数の集合体デバイスを、データ通信ネットワークが含む旨を開示する。集合体デバイスは、クライアントにはクライアントに連結された単一のデバイスとして見え、複数の別個の各集合体デバイスに、少なくとも１つの異なる識別子を割り当て、各集合体デバイスに位置する関連テーブルに、識別子を含む情報を格納することによって、互いに連携して動作する。複数の集合体デバイスは、別個のスイッチであり得、ＬＡＧはそれらのスイッチにわたって複数のポートを含み得、ＬＡＧにおける各ポートに異なる識別子が割り当てられる。仮想リンクトランクインタフェースは、集合体デバイスを連結し得、それは、ＬＡＧリンクが異常のときに、格納された関連テーブルの識別子を使用して、クライアントデバイスに関する、集合体デバイスにわたる通信経路を再設定し得る。
【０００４】
しかしながら、複数のノードを含むネットワークトポロジにおいてＭＣ−ＬＡＧスイッチ上でネットワーク管理者が構成をセットアップすることは、時間がかかる手順である。従来の方法において、ネットワーク管理者は、ネットワークインタフェースコントローラ（ＮＩＣ）ポートがどのようにＭＣ−ＬＡＧスイッチポートに接続されるのか知るべく、および、上流および下流スイッチがどのようにＭＣ−ＬＡＧスイッチに接続されるのか知るべく、ネットワークトポロジを注意深く計画する必要がある。ネットワークトポロジは時を経て成長、および／または動的に変化するので、ＭＣ−ＬＡＧスイッチ上で構成をセットアップする手順は、ネットワーク管理者にとってより一層の課題になり得る。
【発明の概要】
【０００５】
本開示の様々な例に係るシステムおよび方法は、管理コントローラを使用するマルチシャーシシステムにおいてマルチシャーシリンクを自動的に構成することによって、上に言及された問題への解決法を提供する。管理コントローラは、ＭＣ−ＬＡＧネットワークスイッチを構成することが可能な、特定のシステム（例えば、特定のシャーシ、特定のサーバシステム、または特定のノード）、ＢＭＣ（ベースボード管理コントローラ）、またはＲＭＣ（ラック管理コントローラ）であり得る。管理コントローラは、マルチシャーシシステムの複数のサーバシステムおよび複数のスイッチから、スイッチポートデータをリクエストおよび受信し得る。受信されたスイッチポートデータに基づき、管理コントローラは複数の合致ポートおよび複数の合致ノードを決定し得る。管理コントローラはさらに、複数のスイッチのうち第１のスイッチおよび第２のスイッチに関する複数のピアリンクポートを決定し得る。複数のピアリンクポートは複数の合致ポートのサブセットである。複数のピアリンクポートのうち各ピアリンクポートは、第１のスイッチおよび第２のスイッチのうち一方に属し、複数の合致ノードのうちの、第１のスイッチおよび第２のスイッチのうち他方である合致ノードに対応する。
【０００６】
本開示の１つの態様に係る、マルチシャーシシステムにおけるマルチシャーシリンクを自動的に構成するコンピュータ実装方法は、（１）マルチシャーシシステムの複数のサーバシステムおよび複数のスイッチからスイッチポートデータをリクエストすることと、（２）スイッチポートデータを受信することであって、スイッチポートデータは複数のサーバシステムおよび複数のスイッチの内部ポートアドレスおよび隣接ポートアドレスを含む、受信することと、（３）複数の合致ポートおよび複数の合致ノードを決定することであって、複数の合致ポートのそれぞれは複数の隣接ポートアドレスの１つと合致するポートアドレスを有し、複数の合致ノードのそれぞれは複数の合致ポートの１つに対応する、決定することと、（４）複数のスイッチのうち第１のスイッチおよび第２のスイッチに関する複数のピアリンクポートを決定することと、を含む。複数のピアリンクポートは複数の合致ポートのサブセットである。複数のピアリンクポートのうち各ピアリンクポートは、第１のスイッチおよび第２のスイッチのうち一方に属し、複数の合致ノードのうちの、第１のスイッチおよび第２のスイッチのうち他方である合致ノードに対応する。
【０００７】
いくつかの例において、コンピュータ実装方法はさらに、スイッチポートデータおよび１つまたは複数の予め決められた基準に基づいて、第１のスイッチおよび第２のスイッチの複数のポートを複数のポート群にグループ化することと、複数のポート群から第１のサブセットのポート群を選択することと、複数のポート群の第１のサブセットの各ポート群におけるすべてのポートを同一のメンバポートとして構成することと、を含む。複数のポート群の第１のサブセットのポート群は、第１のスイッチに属する少なくとも１つのポートと、第２のスイッチに属する少なくとも１つの別のポートとを有する。
【０００８】
いくつかの例において、複数の合致ポートおよび複数の合致ノードを決定することは、第１のスイッチおよび第２のスイッチの各ポートに関して隣接ポートアドレスを調べることと、特定のポートのアドレスが第１のスイッチの隣接ポートアドレスおよび第２のスイッチの隣接ポートアドレスのいずれかに合致する場合、特定のポートを複数の合致ポートにグループ化することと、特定のポートを含む対応するノードを複数の合致ノードにグループ化することと、をさらに含む。
【０００９】
いくつかの例において、マルチシャーシシステムは、ＩＥＥＥ８０２．１ＡＸＴＭ−２００８標準に対応する。マルチシャーシシステム内の複数のサーバシステムおよび複数のスイッチは、様々なプロトコルを使用して、マルチシャーシシステムのネットワーク上の、対応する識別子、能力、および隣接を知らせ得る。識別子、能力、および隣接を知らせるための様々なプロトコルは、ＬＬＤＰ（リンク・レイヤ・ディスカバリ・プロトコル）、ＣＤＰ（シスコ・ディスカバリ・プロトコル）、または特定のベンダによって提供される設定方法を含むが、それらに限定されない。
【００１０】
いくつかの例において、マルチシャーシシステムの管理コントローラは、様々なプロトコルを使用してスイッチポートデータをリクエストし得、それらは、Ｉｎｔｅｌ（登録商標）ＲＳＤ（ラックスケールデザイン）、ＮＥＴＣＯＮＦ（ネットワーク設定プロトコル）、ＲＥＳＴＣＯＮＦ（ネットワーク設定プロトコル）、または他のプロプライエタリ・ネットワーク通信方法を含むが、それらに限定されない。
【００１１】
いくつかの例において、１つまたは複数の予め決められた基準は、複数のポート群における各ポートが少なくとも１つの隣接ポートアドレスを有することと、複数のポート群のうちの各ポート群における複数のポートが、複数の合致ノードにおいて同一の対応する合致ノードを有することと、複数のポート群における各ポートが、複数の合致ノードにおいて、第１のスイッチまたは第２のスイッチのいずれでもない合致ノードに対応することと、を含む。
【００１２】
本開示の別の態様に従って、命令を格納する非一時的コンピュータ可読ストレージ媒体が提供される。命令がプロセッサによって実行される場合、それらはプロセッサに、（１）マルチシャーシシステムにおける複数のサーバシステムおよび複数のスイッチからスイッチポートデータをリクエストすることと、（２）スイッチポートデータを受信することであって、スイッチポートデータは複数のサーバシステムおよび複数のスイッチの内部ポートアドレスおよび隣接ポートアドレスを含む、受信することと、（３）複数の合致ポートおよび複数の合致ノードを決定することと、（４）複数のスイッチのうち第１のスイッチおよび第２のスイッチに関する複数のピアリンクポートを決定することと、を含む動作を実行させる。複数の合致ポートのそれぞれは、複数の隣接ポートアドレスの１つと合致するポートアドレスを有し、一方、複数の合致ノードのそれぞれは、複数の合致ポートの１つに対応する。複数のピアリンクポートは複数の合致ポートのサブセットである。複数のピアリンクポートのうち各ピアリンクポートは、第１のスイッチおよび第２のスイッチのうち一方に属し、複数の合致ノードのうちの、第１のスイッチおよび第２のスイッチのうち他方である合致ノードに対応する。
【００１３】
いくつかの例において、非一時的コンピュータ可読ストレージ媒体に格納された命令は、プロセッサによって実行される場合、スイッチポートデータおよび１つまたは複数の予め決められた基準に基づいて、第１のスイッチおよび第２のスイッチの複数のポートを複数のポート群にグループ化することと、複数のポート群から第１のサブセットのポート群を選択することであって、複数のポート群のうち第１のサブセットにおけるポート群は、第１のスイッチに属する少なくとも１つのポートと、第２のスイッチに属する少なくとも１つの別のポートとを有する、選択することと、複数のポート群の第１のサブセットの各ポート群におけるすべてのポートを同一のメンバポートとして構成することと、をさらに含む動作をプロセッサに実行させる。
【００１４】
本開示の追加の特徴および利点は、以下の説明において記載され、部分的に、説明から明らかになるであろう。または、本明細書に開示された原理を実践することによって習得することができる。本開示の特徴および利点は添付の特許請求の範囲に特に指摘された機器および組み合わせによって実現され、獲得されることができる。本開示のこれらのおよび他の特徴は、以下の説明および添付の特許請求の範囲からより十分に明らかになるであろう。または、本明細書に記載された原理を実践することによって習得することができる。
【図面の簡単な説明】
【００１５】
本開示の、上に記載されたおよび他の、利点および特徴を獲得することができる態様を説明すべく、上に簡潔に説明された原理のより詳細な説明が、添付の図面に示されるそれらの具体的な例を参照することによって提供されるであろう。これらの図面は開示の例示的な態様のみを示すものであり、したがって、それの範囲を限定するものとみなされるべきではない。添付の図面を使用することを通じて、さらに具体的におよび詳細に、本明細書の原理が説明および解説される。
【００１６】
【図１Ａ】本開示のいくつかの実装による、マルチシャーシリンクを自動的に構成する例示的なマルチシャーシシステムを示す概略ブロック図である。
【００１７】
【図１Ｂ】本開示のいくつかの実装による、Ｉｎｔｅｌ（登録商標）ＲＳＤ  ＡＰＩにサポートされた隣接スイッチポートのＭＡＣアドレスを取得するための例示的なコードコマンドを示す図である。
【００１８】
【図１Ｃ】本開示のいくつかの実装による、マルチシャーシシステムにおける複数のスイッチおよび複数のサーバシステムから集められたスイッチポートデータの例を示す図である。
【図１Ｄ】本開示のいくつかの実装による、マルチシャーシシステムにおける複数のスイッチおよび複数のサーバシステムから集められたスイッチポートデータの例を示す図である。
【図１Ｅ】本開示のいくつかの実装による、マルチシャーシシステムにおける複数のスイッチおよび複数のサーバシステムから集められたスイッチポートデータの例を示す図である。
【００１９】
【図１Ｆ】本開示のいくつかの実装による、マルチシャーシシステムにおける複数の合致ポートおよび複数の合致ノードを決定する手順を例示的に示す図である。
【００２０】
【図１Ｇ】本開示のいくつかの実装による、図１Ｆのマルチシャーシシステムにおける複数の合致ポートおよび複数の合致ノードの例を示す図である。
【００２１】
【図１Ｈ】本開示のいくつかの実装による、マルチシャーシシステムにおける第１のスイッチおよび第２のスイッチに関するピアリンクポートの例を示す図である。
【００２２】
【図１Ｉ】本開示のいくつかの実装による、第１のスイッチおよび第２のスイッチの複数のポートを複数のポート群にグループ化する例示的な手順を示す図である。
【００２３】
【図１Ｊ】本開示のいくつかの実装による、複数のポート群から第１のサブセットの複数のポート群を選択する例示的な手順、および第１のサブセットの複数のポート群の例を示す図である。
【００２４】
【図２】本開示の一実装による、マルチシャーシシステムにマルチシャーシリンクを自動的に構成する例示的な方法である。
【００２５】
【図３】本開示の様々な実装に係る、例示的なコンピューティングデバイスを示す図である。
【００２６】
【図４】本開示の様々な例に係る、例示的なシステムを示す図である。
【図５】本開示の様々な例に係る、例示的なシステムを示す図である。
【発明を実施するための形態】
【００２７】
本開示は多くの異なる形態で具現化され得る。本開示は本開示の原理の例または例示であり、本開示の広い態様を、図示された実施形態に限定する意図はないという理解の下、代表的な実施形態が図面に示され、本明細書で詳細に説明されるであろう。その範囲で、例えば、要約書、概要、および詳細な説明の項目において開示され、しかしながら特許請求の範囲に明示的に記載されたものではない要素および限定は、個々にまたは集合的にも、含意、推論、またはその他の方法によっても、特許請求の範囲に組み込まれるべきではない。本詳細な説明の目的で、具体的に請求対象から除外されない限り、単数形は複数形を含み、逆もまた同じであり、文言「含む」は「含むが、これに限定はされない」の意味である。さらに、「約」「ほぼ」「実質的に」「およそ」などの近似の文言は、例えば「〜において、〜の近く、またはほとんど〜において」または「の３−５％の範囲内で」または「製造誤差の許容範囲内で」、またはそれらの論理的な組み合わせを意味するように本明細書で使用され得る。
【００２８】
本開示の様々な例は、管理コントローラを使用してマルチシャーシシステムにおいてマルチシャーシリンクを自動的に構成する方法を提供する。管理コントローラは、複数のサーバシステムおよびマルチシャーシシステムの複数のスイッチから、スイッチポートデータをリクエストおよび受信し得る。受信されたスイッチポートデータに基づいて、管理コントローラは、複数のスイッチのうちの第１のスイッチおよび第２のスイッチに関するピアリンクポートを決定し得、受信されたスイッチポートデータに基づいて、第１のスイッチおよび第２のスイッチの複数のポートから適切なポート群を選択し得、各適切なポート群における複数のポートを、対応する適切なポート群に関するＭＣ−ＬＡＧメンバポートとして構成し得る。
【００２９】
図１Ａは、本開示のいくつかの実装による、マルチシャーシリンクを自動的に構成する例示的なシステム１０Ａを示す概略ブロック図である。この例において、マルチシャーシシステム１０Ａは、管理コントローラ１０８、サーバシステム１００、１０２、１０４および１０６、ならびにスイッチ２１０、２２０、３１０および３２０を含む。マルチシャーシシステム１０Ａにおけるシステムおよびスイッチは、様々なプロトコルを使用して、システム１０Ａのネットワーク上の、それらの識別子、能力、および隣接を知らせ得る。いくつかの例において、マルチシャーシシステム１０Ａは、ＩＥＥＥ８０２．１ＡＸＴＭ−２００８標準に対応する。識別子、能力、および隣接を知らせるための様々なプロトコルは、ＬＬＤＰ（リンク・レイヤ・ディスカバリ・プロトコル）、ＣＤＰ（シスコ・ディスカバリ・プロトコル）、または特定のベンダによって提供される設定方法を含み得るが、それらに限定されない。
【００３０】
いくつかの例において、サーバシステム１００、１０２、１０４および１０６は、ＢＩＯＳ（基本入出力システム）（図示せず）、少なくとも１つのマイクロプロセッサまたはプロセッサ（図示せず）、メインメモリ（ＭＥＭ）（図示せず）、および少なくとも１つの電源ユニット（ＰＳＵ）（図示せず）を含み得る。少なくとも１つのＰＳＵは、ＡＣ電源からＡＣ電力を受け取り、プロセッサ（図示せず）、ＰＣＩｅスロット（図示せず）、ストレージデバイス（図示せず）、ＩＳＡスロット（図示せず）、ＰＣＩスロット（図示せず）、および管理デバイス（図示せず）などの、サーバシステムの様々なコンポーネントに電力を供給する。電源がオンにされた後、サーバシステム１００、１０２、１０４および１０６は、メモリ、コンピュータストレージデバイス、または外部ストレージデバイスから、ソフトウェアアプリケーションをロードして、様々な動作を実行すべく構成される。ストレージデバイスは構造化されて、サーバシステムのオペレーティングシステムおよびアプリケーションに利用可能である論理ブロックとなる。論理ブロックは、サーバシステムの電源がオフである場合でさえもサーバデータを保管すべく構成される。
【００３１】
ＢＩＯＳは、サーバシステムの様々なコンポーネントを開始および識別すべく構成された、任意のプログラム命令またはファームウェアであり得る。ＢＩＯＳは、対応するサーバシステムのハードウェアコンポーネントを初期化およびテストすることを担う重要なシステムコンポーネントである。ＢＩＯＳは、ハードウェアコンポーネントに関する抽象化層を提供し得、それにより、アプリケーションおよびオペレーティングシステムに、キーボード、ディスプレイ、および他の入力／出力デバイスなどの周辺デバイスとの相互作用のための一貫的な手段を提供する。
【００３２】
いくつかの構成において、ＢＩＯＳは、ＯＳ（オペレーティングシステム）、例えば、Ｍｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓ（登録商標）  ＯＳ、Ｌｉｎｕｘ（登録商標）  ＯＳ、またはサーバシステム上の任意のオペレーティングシステムを起動する前に、システムチェックを実行し得る。システムチェックは、サーバシステムの初期化の最中に実行される診断システム検査である。システムチェックの例として、ＰＯＳＴ（電源オンセルフテスト）が挙げられる。ＢＩＯＳは、ＰＯＳＴの主要な機能に対処し得、特定の周辺デバイスを初期化（例えば、ビデオおよびＳＣＳＩ（スモール・コンピュータシステム・インタフェース）を初期化）すべく設計された他のプログラムへのいくつかの任務を、オフロードしてよい。ＰＯＳＴの主要な機能は、ＣＰＵレジスタおよびＢＩＯＳコードの完全性を検証することと、基本コンポーネントを確認することと、システムメインメモリを検査することと、他の特化されたＢＩＯＳ拡張機能に制御手段を渡すこととを含んでよい。いくつかの構成において、ＢＩＯＳはまた、すべてのシステムバスおよびデバイスを検出、初期化および分類することと、システムの構成を更新するためのユーザインタフェースを提供することと、オペレーティングシステムに必要なシステム環境を構築することとを含む、ＰＯＳＴのさらなる機能に対処してもよい。
【００３３】
管理デバイス（図示せず）（例えば、ＢＭＣ（ベースボード管理コントローラ）またはＲＭＣ（ラック管理コントローラ））は、サーバシステムのプロセッサおよびストレージデバイスと通信し得る。一例において、この通信は、システムバス（例えば、ＩＰＭＢ（インテリジェント・プラットフォーム管理バス／ブリッジ））を使用するＩＰＭＩ（インテリジェント・プラットフォーム管理インタフェース）メッセージを介して起こり得る。ＩＰＭＢは、Ｉ２Ｃ（集積回路間通信）バスの改良された実装であり、メッセージに基づいてハードウェアレベルの、基本的なインタフェース仕様である。しかしながら、本開示は、管理デバイスと他のコンポーネントとの間で他の通信タイプが使用され得ることを企図する。
【００３４】
メモリ（図示せず）は、ＤＲＡＭ（ダイナミックランダムアクセスメモリ）、ＤＤＲ  ＤＲＡＭ（ダブルデータレートＤＲＡＭ）、ＳＲＡＭ（スタティックＲＡＭ）、または他のタイプの適切なメモリを含み得るが、それらに限定されない。メモリはサーバシステムのＢＩＯＳデータを格納すべく構成され得る。いくつかの構成において、ＢＩＯＳデータはストレージデバイス上に格納され得る。
【００３５】
いくつかの例において、サーバシステム１００、１０２、１０４および１０６は、さらにフラッシュストレージデバイスを含み得る。フラッシュストレージデバイスは、フラッシュドライブ、ＲＡＭ（ランダムアクセスメモリ）、ＮＶＲＡＭ（不揮発性ランダムアクセスメモリ）、またはＥＥＰＲＯＭ（電気的消去可能プログラマブルリードオンリメモリ）であり得る。フラッシュストレージデバイスは、ＢＩＯＳデータなどのシステム構成を格納すべく構成され得る。
【００３６】
プロセッサ（図示せず）は、特定の機能のためにプログラム命令を実行すべく構成されるＣＰＵ（中央演算処理装置）であり得る。例えば、起動プロセスの最中、プロセッサは管理デバイスまたはフラッシュストレージデバイスに格納されたＢＩＯＳデータにアクセスし得、ＢＩＯＳを実行してサーバシステムを初期化し得る。起動プロセスの後、プロセッサは、サーバシステムに関する特定のタスクを実行および管理すべく、オペレーティングシステムを実行し得る。
【００３７】
いくつかの実装において、管理デバイスは、サーバシステム上のオペレーティングシステムが更新された旨を決定し得、ファームウェアの更新（例えば、公称メディアローテーションレートの更新）が利用可能かどうか決定し得、対応するベンダからファームウェアの更新を自動的にダウンロードし得る。いくつかの例において、管理コントローラは、中央管理サーバとの通信によって、ファームウェアの更新（例えば、公称メディアローテーションレートの更新）の利用可能性を監視し得、更新が利用可能になっているときはいつでも、最新のファームウェアの更新をダウンロードし得る。いくつかの例において、管理コントローラは、サーバシステムが動作していない場合に、または、サーバシステムの電源がオフの場合でさえも、帯域外でファームウェアの更新を受信し得る。
【００３８】
いくつかの構成において、プロセッサ（図示せず）はマルチコアプロセッサであり得、それらのそれぞれは、ＣＰＵバスを通じて一緒に連結される。複数のＰＣＩスロットまたはＰＣＩｅスロットは、ＰＣＩ  Ｅｘｐｒｅｓｓ  ｘ１、ＵＳＢ  ２．０、ＳＭバス、ＳＩＭカード、別のＰＣＩｅレーンのための将来の拡張機能、１．５Ｖおよび３．３Ｖの電力、およびサーバシステム１００のシャーシ上の診断ＬＥＤへの配線などの、接続およびバスのために使用され得る。複数のＰＣＩスロットにおいて使用され得るＰＣＩカードは、ＮＩＣ（ネットワークインタフェースカード）、サウンドカード、モデム、テレビチューナカード、ディスクコントローラ、ビデオカード、ＳＣＳＩ（スモール・コンピュータシステム・インタフェース）アダプタ、およびＰＣＭＣＩＡ（パーソナルコンピュータメモリカード国際協会）カードを含むが、それらに限定されない。
【００３９】
図１Ａにおいて、管理コントローラ１０８は、マルチシャーシシステム１０Ａのサーバシステム１００、１０２、１０４および１０６、ならびにスイッチ２１０、２２０、３１０および３２０に接続される。スイッチ２１０および２２０のそれぞれは、ポート１−１６を含む。スイッチ１  ２１０の、ポート４、ポート５および７、ポート１１、ならびにポート１０は、システム１００、システム１０２、システム１０４およびスイッチ３１０にそれぞれ接続される。スイッチ２  ２２０の、ポート５、ポート１４および１６、ポート８、ならびにポート４は、システム１０４、スイッチ３２０、システム１０６およびスイッチ３１０にそれぞれ接続される。スイッチ１  ２１０のポート１１とサーバシステム１０４との間の接続、および、スイッチ２  ２２０のポート５とサーバシステム１０４との間の接続は、冗長性を提供してスループットを増加させるべく構成される、通常ＬＡＧ（リンクアグリゲーション）である。スイッチ１  ２１０のポート１０とスイッチ３１０のポート３との間の接続、および、スイッチ２  ２２０のポート４とスイッチ３１０のポート４との間の接続もまた、通常ＬＡＧである。
【００４０】
管理コントローラ１０８は、サーバシステム１００、１０２、１０４および１０６、ならびに、スイッチ２１０、２２０、３１０および３２０から、スイッチポートデータをリクエストおよび取得し得る。管理コントローラ１０８は、スイッチポートデータをリクエストすべく様々なプロトコルを使用し得る。様々なプロトコルは、サーバシステム１００、１０２、１０４および１０６ならびにスイッチ２１０、２２０、３１０および３２０からのポートデータにアクセスする旨の１つまたは複数のコマンドを管理コントローラ１０８に生成させる、Ｉｎｔｅｌ（登録商標）ＲＳＤ（ラックスケールデザイン）、ＮＥＴＣＯＮＦ（ネットワーク設定プロトコル）、ＲＥＳＴＣＯＮＦ（ネットワーク設定プロトコル）、および他のプロプライエタリ・ネットワーク通信方法を含むが、それらに限定されない。
【００４１】
スイッチポートデータは、隣接ポート情報（例えば、隣接ポートアドレス）、およびセルフポート情報（例えば、内部ポートアドレス）を含み得る。隣接ポート情報または隣接ポートアドレスは、一意的な値（例えば、ＭＡＣアドレス）を含み、したがって、管理コントローラ１０８は、対応する隣接ポートを識別し得る。図１Ｂは、Ｉｎｔｅｌ（登録商標）ＲＳＤ  ＡＰＩにおいてサポートされる隣接スイッチポートのＭＡＣアドレスを取得するコードコマンドの例を示す。この例において、隣接ポートのＭＡＣアドレスは"５４：ａｂ：３ａ：ｃａ：ｂ４：ａ１"である。
【００４２】
セルフポート情報または内部ポートアドレスは、対応するポートがどのネットワークスイッチに属するかを識別する、図１Ｃから図１Ｊにおいて「ノードＩＤ」として示されるデータを収容し、それは対応するポートを表し得る１セットの一意的な値（例えば、ＭＡＣアドレス）である。
【００４３】
図１Ｃは、管理コントローラ１０８がスイッチ２１０から収集するスイッチポートデータの例を示す。スイッチポートデータは、複数のポートＩＤ（アイデンティフィケーション）、複数のノードＩＤ、内部ポートに関する複数のＭＡＣアドレス、および、隣接ポートに関する複数の隣接ＭＡＣアドレスを含む。同様に、図１Ｄは、管理コントローラ１０８がスイッチ２２０から収集するスイッチポートデータの例を示す。図１Ｅは、管理コントローラ１０８がマルチシャーシシステム１０Ａの残りのサーバシステムおよびスイッチから収集するスイッチポートデータの例を示す。
【００４４】
管理コントローラ１０８は、サーバシステム１００、１０２、１０４および１０６、ならびにスイッチ２１０、２２０、３１０および３２０から受信されたスイッチポートデータをさらに比較し得、図１Ｆに示されるように、複数の合致ポートおよび複数の合致ノードを決定し得る。この例において、管理コントローラ１０８は、手順４ａで隣接ＭＡＣアドレスを調べ、手順４ｂで隣接ＭＡＣアドレスを各ポートのＭＡＣアドレスと比較する。管理コントローラ１０８は次に、手順４ｃで合致するＭＡＣアドレスを有する各ポートを合致ポートとして選択し、手順４ｄで合致ポートと対応するノードを合致ノードとして選択する。複数の合致ポートおよび複数の合致ノードの例が図１Ｇに示される。この例において、複数の合致ポートのそれぞれが、隣接ポートアドレスの１つと合致するポートアドレスを有する。複数の合致ノードのそれぞれが、複数の合致ポートの１つに対応する。
【００４５】
管理コントローラ１０８は、複数の合致ポートおよび複数の合致ノードに基づいて、マルチシャーシシステム１０Ａの複数のピアリンクポートを決定し得る。複数のピアリンクポートは、複数の合致ポートのサブセットである。図１Ｈは、スイッチ１  ２１０およびスイッチ２  ２２０に関する複数のピアリンクポートの例を示す。図１Ｈにおいて、複数のピアリンクポートのうち各ピアリンクポートは、スイッチ１  ２１０およびスイッチ２  ２２０のうち一方に属し、複数の合致ノードのうちの、スイッチ１  ２１０およびスイッチ２  ２２０のうち他方である合致ノードに対応する。例えば、ピアリンクポートＰ１５およびＰ１６は複数の合致ポートのサブセットであり、スイッチ１  ２１０に属する。ピアリンクポートＰ１５およびＰ１６は、複数の合致ノードの一方であるスイッチ２  ２２０に対応する。別の例において、ピアリンクポートＰｍ＋１およびＰｍ＋２は複数の合致ポートのサブセットであり、スイッチ２  ２２０に属する。ピアリンクポートＰｍ＋１およびＰｍ＋２は、複数の合致ノードの一方であるスイッチ１  ２１０に対応する。
【００４６】
管理コントローラ１０８はさらに、受信されたスイッチポートデータに基づいて、スイッチ１  ２１０およびスイッチ２  ２２０のうち複数のポートから、適切なポート群を選択し得る。管理コントローラ１０８は、対応する適切なポート群に関するＭＣ−ＬＡＧメンバポートとして、各適切なポート群における複数のポートを構成し得る。
【００４７】
図１Ｉは、管理コントローラ１０８が、スイッチ１  ２１０およびスイッチ２  ２２０  の複数のポートを、受信されたスイッチポートデータおよび１つまたは複数の予め決められた基準に基づいて、複数のポート群にグループ化する手順を示す。１つまたは複数の予め決められた基準は、（１）複数のポート群における各ポートが、少なくとも１つの隣接ポートアドレスを有することと、（２）複数のポート群のうちの各ポート群における複数のポートが、複数の合致ノードにおいて同一の対応する合致ノードを有することと、（３）複数のポート群における各ポートが、複数の合致ノードにおいて、スイッチ１  ２１０またはスイッチ２  ２２０のいずれでもない合致ノードに対応することとを含む。例えば、各ポートＰ５およびＰ７は、少なくとも１つの隣接ポートアドレス"１０：２０：００：００：００：０２"および"１０：２０：００：００：００：０３"をそれぞれ有する。ポートＰ５およびＰ７は、スイッチ１  ２１０またはスイッチ２  ２２０のいずれでもない、同一の対応する合致ノード「システム１０２」を有する。
【００４８】
図１Ｊは、管理コントローラ１０８が、複数のポート群から第１のサブセットの複数のポート群を選択する手順と、第１のサブセットの複数のポート群の例とを示す。複数のポート群の第１のサブセットにおけるポート群は、スイッチ１  ２１０に属する少なくとも１つのポートと、スイッチ２  ２２０に属する少なくとも１つの別のポートとを有する。図１Ｊにおいて、２つのポート群「Ｐ１０およびＰｍ＋４」と「Ｐ１１およびＰｍ＋５」とが、複数のポート群の第１のサブセットとして選択される。ポート群「Ｐ１０およびＰｍ＋４」において、Ｐｍ＋４はスイッチ２  ２２０に属する一方、Ｐ１０はスイッチ１  ２１０に属する。同様に、ポート群「Ｐ１１およびＰｍ＋５」において、Ｐｍ＋５はスイッチ２  ２２０に属する一方、Ｐ１１はスイッチ１  ２１０に属する。
【００４９】
管理コントローラ１０８は次に、第１のサブセットのポート群のうち各ポート群におけるすべてのポートを、同一のメンバポートとして構成し得る。例えば、管理コントローラ１０８は、Ｐ１０およびＰｍ＋４を同一のメンバポートとして構成し得、Ｐ１１およびＰｍ＋５を同一のメンバポートとして構成し得る。
【００５０】
いくつかのコンポーネントのみが図１Ａの例示的なシステム１０Ａ内に示されるが、データを処理もしくは格納すること、信号を受信もしくは送信すること、または下流コンポーネントに新鮮な空気を提供することが可能な、様々な種類の電子コンポーネントまたはコンピューティングコンポーネントもまた、例示的なシステム１０Ａに含まれ得る。さらに、例示的なシステム１０Ａにおける電子コンポーネントまたはコンピューティングコンポーネントは、様々な種類のアプリケーションで実行すべく構成され得、および／または、様々な種類のオペレーティングシステムを使用し得る。これらのオペレーティングシステムは、Ａｎｄｒｏｉｄ（登録商標）、ＢＳＤ（バークレー・ソフトウェア・ディストリビューション）、ｉＯＳ（ｉＰｈｏｎｅ（登録商標）  ＯＳ）、Ｌｉｎｕｘ（登録商標）、ＯＳ  Ｘ、Ｕｎｉｘ（登録商標）系リアルタイムオペレーティングシステム（例えば、ＱＮＸ、Ｍｉｃｒｏｓｏｆｔ  Ｗｉｎｄｏｗｓ（登録商標）、Ｗｉｎｄｏｗ  Ｐｈｏｎｅ、およびＩＢＭ  ｚ／ＯＳ）を含み得るが、それらに限定されない。
【００５１】
例示的なシステム１０Ａに関する所望の実装に応じて、ＴＣＰ／ＩＰ、ＯＳＩ（オープン・システム・インタコネクション）、ＦＴＰ（ファイル転送プロトコル）、ＵＰｎＰ（ユニバーサル・プラグ・アンド・プレイ）、ＮＦＳ（ネットワーク・ファイル・システム）、ＣＩＦＳ（共通インターネットファイルシステム）、ＡｐｐｌｅＴａｌｋなどを含むがそれらに限定されない、様々なネットワーキングプロトコルおよびメッセージングプロトコルが使用され得る。当業者によって理解されるであろうが、図１Ａに示される例示的なシステム１００は、説明の目的で使用される。したがって、ネットワークシステムは、必要に応じて、多くの変形例と共に実装され得、なおさらに、本開示の様々な例に係るネットワークプラットフォームの構成を提供し得る。
【００５２】
図１Ａの例示的な構成において、例示的なシステム１０Ａは、特定の無線チャネルの演算範囲内で１つまたは複数の電子デバイスと通信すべく動作可能な、１つまたは複数の無線コンポーネントもまた含み得る。無線チャネルは、Ｂｌｕｅｔｏｏｔｈ（登録商標）、セルラー、ＮＦＣ、またはＷｉ−Ｆｉ（登録商標）チャネルなどの、デバイスに無線で通信することを可能にすべく使用される任意の適切なチャネルであり得る。デバイスは、当技術分野において知られるように、１つまたは複数の従来の有線通信接続を有し得ることが、理解されるべきである。様々な例の範囲内で、様々な他要素および／または組み合わせが同様に可能である。
【００５３】
上記の説明は、本開示の原理および様々な例の例示が意図されている。上記の開示がひとたび十分理解されるならば、多数の変形例および修正例が明らかになるであろう。
【００５４】
図２は、本開示の一実装による、マルチシャーシシステムのマルチシャーシリンクを自動的に構成する例示的な方法である。例示的な方法２００は、単に例示の目的で提示され、本開示による他の方法は、同様なまたは代替的な順序で、または並行して実行される、追加の、より少ない、または代替的な段階を含み得ることが、理解されるべきである。図１Ａおよび図１Ｂに示されるように、例示的な方法２００は、マルチシャーシシステムにおける複数のサーバシステムおよび複数のスイッチからスイッチポートデータをリクエストすることによって、段階２０２で開始する。マルチシャーシシステムの管理コントローラは、Ｉｎｔｅｌ（登録商標）ＲＳＤ（ラックスケールデザイン）  ＡＰＩ、ＮＥＴＣＯＮＦ、ＲＥＳＴＣＯＮＦ、および他のプロプライエタリ・ネットワーク通信方法を含むがそれらに限定されない、様々なプロトコルを使用してスイッチポートデータをリクエストし得る。複数のスイッチは第１のスイッチおよび第２のスイッチを含む。
【００５５】
段階２０４において、管理コントローラは、図１Ａから図１Ｊに示されるような複数のサーバシステムおよび複数のスイッチから、スイッチポートデータを受信し得る。スイッチポートデータは、複数のポートＩＤ（アイデンティフィケーション）、複数のノードＩＤ、内部ポートに関する複数のＭＡＣアドレス、および隣接ポートに関する複数の隣接ポートＭＡＣアドレスを含む。
【００５６】
段階２０６において、管理コントローラは、図１Ｆおよび図１Ｇに示されるように、複数の合致ポートおよび複数の合致ノードを決定し得る。複数の合致ポートのそれぞれは、隣接ポートアドレスの１つと合致するポートアドレスを有する。複数の合致ノードのそれぞれは、複数の合致ポートの１つに対応する。
【００５７】
段階２０８において、管理コントローラは、図１Ｈに示されるように、第１のスイッチおよび第２のスイッチに関する複数のピアリンクポートを決定し得る。複数のピアリンクポートは、複数の合致ポートのサブセットである。各ピアリンクポートは第１のスイッチおよび第２のスイッチのうち一方に属し、複数の合致ノードのうちの、第１のスイッチおよび第２のスイッチの他方である合致ノードに対応する。
【００５８】
段階２１０において、管理コントローラは、図１Ｉに示されるような、スイッチポートデータおよび１つまたは複数の予め決められた基準に基づいて、第１のスイッチおよび第２のスイッチの複数のポートを複数のポート群にグループ化し得る。１つまたは複数の予め決められた基準は、（１）複数のポート群における各ポートが、少なくとも１つの隣接ポートアドレスを有することと、（２）複数のポート群のうちの各ポート群における複数のポートが、複数の合致ノードにおいて同一の対応する合致ノードを有することと、（３）複数のポート群における各ポートが、複数の合致ノードにおいて、第１のスイッチまたは前記第２のスイッチのいずれでもない合致ノードに対応することとを含む。
【００５９】
段階２１２において、管理コントローラは、図１Ｊに示されるように、複数のポート群のうちのポート群が、第１のスイッチに属する少なくとも１つのポート、および、第２のスイッチに属する少なくとも１つのポートを有するかどうか、決定し得る。段階２１４において、管理コントローラは、図１Ｊに示されるように、複数のポート群から、ポート群の第１のサブセットを選択し得る。ポート群の第１のサブセットにおけるポート群は、第１のスイッチに属する少なくとも１つのポートと、第２のスイッチに属する少なくとも１つの別のポートとを有する。管理コントローラはさらに、複数のポート群のうち第１のサブセットのポート群におけるすべてのポートを、そのポート群に関するＭＣ−ＬＡＧメンバポートとして構成し得る。
【００６０】
段階２１６において、管理コントローラは、図１Ｊに示されるように、ポート群の第１のサブセットにはない複数のポート群のうちのポート群を無視し得る。例示的な方法２００は、マルチシャーシシステムのトポロジが変更された場合に、動的に反復され得る。
【００６１】
図３から図５で示されるように、例示的なシステムおよびネットワークの簡潔な導入的説明が、本明細書で開示される。これらの変形例は、様々な例が記載されるときに本明細書で説明されるものとする。ここで、本開示は図３を参照する。
【００６２】
図３は、本開示を実装するために適切なコンピューティングデバイス３００の例を示す。コンピューティングデバイス３００は、マスターＣＰＵ（中央演算処理装置）３６２、インタフェース３６８、およびバス３１５（例えば、ＰＣＩバス）を含む。適切なソフトウェアまたはファームウェアの制御のもとで動作する場合、ＣＰＵ３６２は、パケット管理、エラー検出、および／または、誤配線検出機能などの経路設定機能の実行を担う。ＣＰＵ３６２は、好ましくは、オペレーティングシステムおよび任意の適切なアプリケーションソフトウェアを含む、ソフトウェアの制御のもとでこれらすべての機能を達成する。ＣＰＵ３６２は、モトローラのマイクロプロセッサファミリのプロセッサ、またはＭＩＰＳのマイクロプロセッサファミリのプロセッサなどの、１つまたは複数のプロセッサ３６３を含み得る。代替的な例において、プロセッサ３６３は、コンピューティングデバイス３００の動作を制御するために特別に設計されたハードウェアである。特定の例において、（不揮発性ＲＡＭおよび／またはＲＯＭなどの）メモリ３６１もまた、ＣＰＵ３６２の一部を形成する。しかしながら、メモリがシステムに連結され得る手段には多くの異なるものがある。
【００６３】
インタフェース３６８は、通常インタフェースカード（場合により、「ラインカード」と呼ばれる）として提供される。概して、それらは、ネットワークを介するデータパケットの送信および受信を制御し、場合により、コンピューティングデバイス３００と共に使用される他の周辺機器をサポートする。提供され得るインタフェースの中には、イーサネット（登録商標）インタフェース、フレームリレーインタフェース、ケーブルインタフェース、ＤＳＬインタフェース、トークンリングインタフェースなどがある。さらに、高速トークンリングインタフェース、無線インタフェース、イーサネット（登録商標）インタフェース、ギガビットイーサネット（登録商標）インタフェース、ＡＴＭインタフェース、ＨＳＳＩインタフェース、ＰＯＳインタフェース、ＦＤＤＩインタフェースなどの、様々な高速度インタフェースが提供され得る。概して、これらのインタフェースは、適切な媒体との通信のために適切な複数のポートを含み得る。いくつかの事例においては、それらはまた、独立したプロセッサも含み得、いくつかの例においては、揮発性ＲＡＭも含み得る。独立したプロセッサは、パケット交換、媒体制御、および管理といった通信集約的タスクを制御し得る。通信集約的タスクのために別個のプロセッサを提供することによって、これらのインタフェースは、マスターマイクロプロセッサ３６２が、経路設定計算、ネットワーク診断、セキュリティ機能などを効率的に実行することを可能にする。
【００６４】
図３に示されるシステムは本開示の１つの特定のコンピューティングデバイスであるが、それは、本特許出願が実装され得る唯一のネットワークデバイスアーキテクチャでは決してない。例えば、通信ならびに経路設定計算などに対処する、単一のプロセッサを有するアーキテクチャが、しばしば使用される。さらに、他のタイプのインタフェースおよび媒体もまた、ルータと共に使用され得るであろう。
【００６５】
ネットワークデバイスの構成に関わらず、それは、本明細書で説明された、汎用のネットワーク動作、ならびに、ローミング、経路最適化、および経路設定機能に向けたメカニズムのための、プログラム命令を格納すべく構成される１つまたは複数のメモリまたはメモリモジュール（メモリ３６１を含む）を採用し得る。プログラム命令は、例えば、オペレーティングシステムおよび／または１つまたは複数のアプリケーションの動作を制御し得る。メモリまたは複数のメモリは、モビリティバインディングテーブル、登録テーブル、および関連テーブルなどの、テーブルを格納するようにもまた構成され得る。
【００６６】
図４および図５は、例示的なシステムの実施形態を示す。本開示を実施する場合、より適切な実施形態が、当業者には明らかになるであろう。当業者はまた、他のシステムの実施形態が可能であることを容易に理解するであろう。
【００６７】
図４は、システムのコンポーネントが、バス４０２を使用して互いに電気的に通信している、システムバスコンピューティングシステムアーキテクチャ４００を示す。例示的なシステム４００は処理ユニット（ＣＰＵまたはプロセッサ）４３０およびシステムバス４０２を含み、それは、リードオンリーメモリ（ＲＯＭ）４０６およびランダムアクセスメモリ（ＲＡＭ）４０８などの、システムメモリ４０４を含む様々なシステムコンポーネントを、プロセッサ４３０に連結する。システム４００は、プロセッサ４３０と直接接続されるか、近接しているか、または一部として統合される、高速度メモリのキャッシュを含み得る。システム４００は、プロセッサ４３０によって迅速にアクセスすべく、メモリ４０４および／またはストレージデバイス４１２からキャッシュ４２８へデータをコピーし得る。このようにして、キャッシュは、データを待つ間のプロセッサ４３０の遅延を防ぐ性能ブーストを提供し得る。これらの、および他のモジュールは、様々な動作を実行するように、プロセッサ４３０を制御し得るか、制御すべく構成され得る。他のシステムメモリ４０４が、同様に使用するために利用可能であってよい。メモリ４０４は、異なる性能特性を有する複数の異なる種類のメモリを含み得る。プロセッサ４３０は、任意の汎用プロセッサ、および、プロセッサ４３０を制御すべく構成された、ストレージデバイス４１２に格納されたモジュール１  ４１４、モジュール２  ４１６、およびモジュール３  ４１８などの、ハードウェアモジュールまたはソフトウェアモジュール、ならびに、ソフトウェア命令が実際のプロセッサ設計に組み込まれた専用プロセッサを含み得る。プロセッサ４３０は、本質的に、複数のコアまたはプロセッサ、バス、メモリコントローラ、キャッシュなどを含む、完全に自己完結型のコンピューティングシステムであってよい。マルチコアプロセッサは対称型であっても非対称型であってもよい。
【００６８】
コンピューティングデバイス４００によるユーザインタラクションを可能にすべく、入力デバイス４２０は、会話用のマイク、ジェスチャまたはグラフィカル入力用のタッチセンサ式スクリーン、キーボード、マウス、モーション入力などの、任意の数の入力メカニズムを表し得る。出力デバイス４２２はまた、当業者に知られる複数の出力メカニズムのうち１つまたは複数でもあり得る。いくつかの例において、マルチモードのシステムは、ユーザがシステム４００と通信すべく複数の種類の入力を提供することを可能にし得る。通信インタフェース４２４は、概して、ユーザ入力およびシステム出力を制御および管理し得る。いかなる特定のハードウェア構成においても動作の制約はなく、したがって、本明細書の基本的な特徴は、ハードウェアまたはファームウェアの構成が進化したときには、改良されたそれらに容易に置き換えられ得る。
【００６９】
ストレージデバイス４１２は不揮発性メモリであり、コンピュータによってアクセス可能なデータを格納し得る、ハードディスク、または、磁気カセット、フラッシュメモリカード、ソリッドステートメモリデバイス、デジタル多用途ディスク、カートリッジ、ランダムアクセスメモリ（ＲＡＭ）４０８、リードオンリーメモリ（ＲＯＭ）４０６、およびそれらのハイブリッドなどの、他のタイプのコンピュータ可読媒体であり得る。
【００７０】
ストレージデバイス４１２は、プロセッサ４３０を制御するためのソフトウェアモジュール４１４、４１６、４１８を含み得る。他のハードウェアまたはソフトウェアモジュールが考えられる。ストレージデバイス４１２は、システムバス４０２に接続され得る。１つの態様において、特定の機能を実行するハードウェアモジュールは、プロセッサ４３０、バス４０２、ディスプレイ４３６などの、機能を実行するために必要なハードウェアコンポーネントに接続された、コンピュータ可読媒体に格納されるソフトウェアコンポーネントを含み得る。
【００７１】
コントローラ４１０は、ＢＭＣ（ベースボード管理コントローラ）などの、システム４００上の特化されたマイクロコントローラまたはプロセッサであり得る。いくつかの事例において、コントローラ４１０は、インテリジェント・プラットフォーム管理インタフェース（ＩＰＭＩ）の一部であり得る。さらに、いくつかの事例において、コントローラ４１０は、システム４００のマザーボードに、または主要回路基板に組み込まれ得る。コントローラ４１０は、システム管理ソフトウェアとプラットフォームハードウェアとの間のインタフェースを管理し得る。コントローラ４１０は、また、以下でさらに説明されるような、コントローラまたは周辺コンポーネントなどの、（内部および／または外部の）様々なシステムデバイスおよびコンポーネントと通信もし得る。
【００７２】
コントローラ４１０は、通知、アラート、および／またはイベントへの特定の応答を生成し得、リモートデバイスまたはコンポーネントと通信して（例えば、電子メールメッセージ、ネットワークメッセージなど）、自動ハードウェアリカバリ手順などのための命令またはコマンドを生成し得る。管理者はまた、以下にさらに説明されるように、特定のハードウェアリカバリ手順または動作を開始または実行するように、コントローラ４１０とリモートで通信もし得る。
【００７３】
システム４００上の異なる種類のセンサ（例えば、センサ４２６）が、冷却ファン速度、電力ステータス、オペレーティングシステム（ＯＳ）ステータス、ハードウェアステータスなどのパラメータについて、コントローラ４１０に報告し得る。コントローラ４１０は、コントローラ４１０によって受信されたイベント、アラート、および通知を管理および維持するための、システムイベントログコントローラおよび／またはストレージもまた含み得る。例えば、コントローラ４１０またはシステムイベントログコントローラは、１つまたは複数のデバイスおよびコンポーネントからのアラートまたは通知を受信し得、そのアラートまたは通知をシステムイベントログストレージコンポーネントに保持し得る。
【００７４】
フラッシュメモリ４３２は、ストレージおよび／またはデータ転送のためにシステム４００によって使用され得る、電子的不揮発性コンピュータストレージ媒体またはチップであり得る。フラッシュメモリ４３２は、電気的に消去および／または再プログラムされ得る。フラッシュメモリ４３２は、例えば、ＥＰＲＯＭ（消去可能プログラマブルリードオンリメモリ）、ＥＥＰＲＯＭ（電気的消去可能プログラマブルリードオンリメモリ）、ＲＯＭ、ＮＶＲＡＭ、またはＣＭＯＳ（相補型金属酸化膜半導体）を含み得る。フラッシュメモリ４３２は、システム４００が最初に電源をオンにされたときにシステム４００によって実行されるファームウェア４３４を、ファームウェア４３４のために指定された設定のセットと共に、格納し得る。フラッシュメモリ４３２はまた、ファームウェア４３４によって使用される構成も格納し得る。
【００７５】
ファームウェア４３４は、ＥＦＩ（拡張可能ファームウェアインタフェース）またはＵＥＦＩ（統合拡張可能ファームウェアインタフェース）などの、基本入出力システムまたはそれの後継物もしくは同等物を含み得る。ファームウェア４３４は、システム４００が起動されるそれぞれの時間に、一連のプログラムとしてロードされて実行され得る。ファームウェア４３４は、設定のセットに基づいて、システム４００に存在するハードウェアを認識、初期化、および試験し得る。ファームウェア４３４は、システム４００上で、ＰＯＳＴ（電源オンセルフテスト）などのセルフテストを実行し得る。このセルフテストは、ハードディスクドライブ、光学読取デバイス、冷却デバイス、メモリモジュール、拡張カードなどの、様々なハードウェアコンポーネントの機能を試験し得る。ファームウェア４３４は、メモリ４０４、ＲＯＭ４０６、ＲＡＭ４０８、および／またはストレージデバイス４１２に、オペレーティングシステム（ＯＳ）を格納する領域をアドレス指定し得、および割り当てし得る。ファームウェア４３４は、ブートローダおよび／またはＯＳをロードし得、システム４００の制御能力をＯＳに与える。
【００７６】
システム４００のファームウェア４３４は、ファームウェア４３４がシステム４００の様々なハードウェアコンポーネントをどのように制御するかを定める、ファームウェア構成を含み得る。ファームウェア構成は、システム４００の様々なハードウェアコンポーネントが起動される順序を決定し得る。ファームウェア４３４は、ファームウェアデフォルト構成におけるパラメータとは異なり得る、様々な異なるパラメータが設定されることを可能にする、ＵＥＦＩなどのインタフェースを提供し得る。例えば、ユーザ（例えば、管理者）は、ファームウェア４３４を使用して、クロックおよびバス速度を特定し得、どの周辺機器がシステム４００に取り付けられるかを定め得、健全性（例えば、ファン速度およびＣＰＵ温度の限度）の監視を設定し得、および／または、システム４００の全体的性能および電力使用量に影響を及ぼす様々な他のパラメータを提供し得る。
【００７７】
ファームウェア４３４はフラッシュメモリ４３２に格納されるものとして示される一方、当業者は、ファームウェア４３４はメモリ４０４またはＲＯＭ４０６などの他のメモリコンポーネントに格納され得ることを容易に認識するであろう。しかしながら、ファームウェア４３４は説明の目的で非限定的な例として、フラッシュメモリ４３２に格納されるものとして示される。
【００７８】
システム４００は、１つまたは複数のセンサ４２６を含み得る。１つまたは複数のセンサ４２６は、例えば、１つまたは複数の温度センサ、熱センサ、酸素センサ、化学センサ、ノイズセンサ、加熱センサ、電流センサ、電圧検出器、空気流量センサ、流量センサ、赤外線温度計、熱流束センサ、温度計、高温計などを含み得る。１つまたは複数のセンサ４２６は、プロセッサ、キャッシュ４２８、フラッシュメモリ４３２、通信インタフェース４２４、メモリ４０４、ＲＯＭ４０６、ＲＡＭ４０８、コントローラ４１０、およびストレージデバイス４１２と、例えばバス４０２を介して通信し得る。１つまたは複数のセンサ４２６は、また、集積回路間通信（Ｉ２Ｃ）、汎用出力（ＧＰＯ）などの１つまたは複数の異なる手段を介して、システム内の他のコンポーネントとも通信し得る。
【００７９】
図５は、説明された方法または動作を実行するとき、およびグラフィカルユーザインタフェース（ＧＵＩ）を生成および表示するときに使用され得るチップセットアーキテクチャを有する、例示的なコンピュータシステム５００を示す。コンピュータシステム５００は、開示された技術を実装すべく使用され得る、コンピュータハードウェア、ソフトウェア、およびファームウェアを含み得る。システム５００は、特定の計算を実行すべく構成されたソフトウェア、ファームウェアおよびハードウェアを実行可能な、任意の数の物理的および／または論理的な別個のリソースを代表する、プロセッサ５１０を含み得る。プロセッサ５１０は、プロセッサ５１０への入力およびプロセッサ５１０からの出力を制御し得るチップセット５０２と通信し得る。この例において、チップセット５０２はディスプレイなどの出力デバイス５１４に情報を出力し、ストレージデバイス５１６と情報を読み書きし得る。ストレージデバイス５１６は、例えば、磁気媒体および半導体媒体を含み得る。チップセット５０２はまた、ＲＡＭ５１８からデータを読み込み、ＲＡＭ５１８にデータを書き込むこともできる。様々なユーザインタフェースコンポーネント５０６とインタフェース接続するためのブリッジ５０４が、チップセット５０２とインタフェース接続するために提供され得る。そのようなユーザインタフェースコンポーネント５０６は、キーボード、マイク、タッチ検出および処理回路、マウスなどのポインティングデバイス、などを含み得る。一般に、システム５００への入力は、機械によって生成される、および／または、人によって生成される、様々なソースのいずれが由来のものでもよい。
【００８０】
チップセット５０２は、異なる物理インタフェースを有し得る、１つまたは複数の通信インタフェース５０８ともまたインタフェース接続し得る。そのような通信インタフェースは、有線および無線ローカルエリアネットワークのための、ブロードバンド無線ネットワークのための、およびパーソナルエリアネットワークのための、インタフェースを含み得る。本明細書に開示されたＧＵＩを生成、表示および使用する方法のいくつかの応用は、物理インタフェースにわたって順序付けされたデータセットを受信する段階を含み得、または、ストレージ５１６または５１８に格納されたデータを分析するプロセッサ５１０によって、機械自体によって生成され得る。さらに、機械は、ユーザインタフェースコンポーネント５０６を介してユーザからの入力を受信し得、プロセッサ５１０を使用してこれらの入力を解釈することによってブラウジング機能などの適切な機能を実行し得る。
【００８１】
さらに、チップセット５０２はまた、電源をオンにしたときにコンピュータシステム５００によって実行され得るファームウェア５１２とも通信し得る。ファームウェア５１２は、１セットのファームウェア構成に基づいて、コンピュータシステム５００に存在するハードウェアを認識、初期化、および試験し得る。ファームウェア５１２は、システム５００上で、ＰＯＳＴなどのセルフテストを実行し得る。セルフテストは、様々なハードウェアコンポーネント５０２−５１８の機能を試験し得る。ファームウェア５１２は、ＯＳを格納するための領域を、メモリ５１８にアドレス指定し得、および割り当て得る。ファームウェア５１２は、ブートローダおよび／またはＯＳをロードし得、システム５００の制御能力をＯＳに与え得る。いくつかの事例において、ファームウェア５１２は、ハードウェアコンポーネント５０２−５１０および５１４−５１８と通信し得る。ここで、ファームウェア５１２は、チップセット５０２を通じて、および／または、１つまたは複数の他のコンポーネントを通じて、ハードウェアコンポーネント５０２−５１０および５１４−５１８と通信し得る。いくつかの事例において、ファームウェア５１２は、ハードウェアコンポーネント５０２−５１０および５１４−５１８と直接通信し得る。
【００８２】
例示的なシステム３００、４００および５００は、１つより多いプロセッサ（例えば、３６３、４３０、５１０）を有し得、または、より高い処理能力を提供すべく共にネットワーク接続された、コンピューティングデバイスのグループまたはクラスタの一部であり得ることが、理解され得る。
【００８３】
説明を明瞭にするために、いくつかの例において、本開示は、デバイス、デバイスコンポーネント、ソフトウェアで具現化された方法における段階あるいはルーチン、またはハードウェアおよびソフトウェアの組み合わせを含む、個々の機能ブロックを含むものとして提示されてもよい。
【００８４】
いくつかの実施形態において、コンピュータ可読ストレージデバイス、媒体、およびメモリは、ビットストリームなどを有するケーブルまたは無線信号を含み得る。しかしながら、非一時的コンピュータ可読ストレージ媒体に言及するときは、エネルギー、キャリア信号、電磁波、および信号そのものなどの媒体を、明示的に除外する。
【００８５】
上述の例による方法は、コンピュータ可読媒体に格納された、またはそうでなければ、コンピュータ可読媒体から利用可能な、コンピュータ実行可能命令を使用して実装され得る。そのような命令は、例えば、汎用コンピュータ、専用コンピュータ、または専用処理デバイスに、ある機能または複数の機能のグループを実行させる、またはそうでなければ、汎用コンピュータ、専用コンピュータ、または専用処理デバイスを、ある機能または複数の機能のグループを実行すべく構成する、命令及びデータを含み得る。使用されるコンピュータリソースの一部分は、ネットワークを介してアクセス可能であり得る。コンピュータ実行可能命令は、例えばバイナリ、アセンブリ言語などの中間フォーマット命令、ファームウェア、またはソースコードであってよい。説明された例による方法の最中の命令、説明された例による方法の最中に使用される情報、および／または、説明された例による方法の最中に作成される情報を格納すべく使用されてよいコンピュータ可読媒体の例は、磁気ディスクまたは光ディスク、フラッシュメモリ、不揮発性メモリと共に提供されるＵＳＢデバイス、ネットワーク接続されたストレージデバイスなどを含む。
【００８６】
これらの開示による方法を実装するデバイスは、ハードウェア、ファームウェア、および／またはソフトウェアを含み得、様々なフォームファクタのいずれかをとり得る。そのようなフォームファクタの代表的な例は、ラップトップ、スマートフォン、スモールフォームファクタパーソナルコンピュータ、パーソナルデジタルアシスタント、ラックマウントデバイス、スタンドアロンデバイスなどを含む。本明細書で説明された機能は、また、周辺機器またはアドインカードにおいても具現化され得る。そのような機能は、また、さらなる例として、異なるチップの間の回路基板上でも、または単一のデバイスで実行する異なるプロセスでも、実装され得る。
【００８７】
命令、そのような命令を伝達する媒体、それらを実行するコンピューティングリソース、およびそのようなコンピューティングリソースをサポートするための他の構造は、本明細書に説明される機能を提供するための手段である。
【００８８】
様々な例が、幅広い動作環境においてさらに実装され得、それらは、いくつかの事例において、複数のアプリケーションのうち任意のもので動作すべく使用され得る１つまたは複数のサーバコンピュータ、ユーザコンピュータ、またはコンピューティングデバイスを含み得る。ユーザデバイスまたはクライアントデバイスは、複数の、標準のオペレーティングシステムを動作させるデスクトップまたはラップトップコンピュータなどの汎用パーソナルコンピュータ、ならびに、モバイルソフトウェアを動作させ、複数のネットワーキングおよびメッセージングプロトコルをサポートすることが可能なセルラー、無線、およびハンドヘルドデバイス、のいずれかを含み得る。そのようなシステムは、様々な市販のオペレーティングシステム、および、開発およびデータベース管理などの目的の、他の知られているアプリケーションのいずれかを動作させる複数のワークステーションもまた含み得る。これらのデバイスは、ダミー端末、シンクライアント、ゲームシステム、およびネットワークを介して通信可能な他のデバイスなどの、他の電子デバイスをまた含み得る。
【００８９】
例またはそれらの一部分がハードウェアで実装される範囲で、本開示は、以下の技術のうち任意のもの、またはその組み合わせで実装され得る。データ信号の論理関数を実装するための論理ゲートを有する、ディスクリートなロジック回路。適切に組み合わせられた論理ゲートを有する特定用途向け集積回路（ＡＳＩＣ）。プログラマブルゲートアレイ（ＰＧＡ）などのプログラム可能なハードウェア。フィールドプログラマブルゲートアレイ（ＦＰＧＡ）など。
【００９０】
たいていの例は、ＴＣＰ／ＩＰ、ＯＳＩ、ＦＴＰ、ＵＰｎＰ、ＮＦＳ、ＣＩＦＳ、ＡｐｐｌｅＴａｌｋなどの、様々な市販のプロトコルのいずれかを使用する通信をサポートするための、当業者によく知られているであろう少なくとも１つのネットワークを利用する。ネットワークは、例えば、ローカルエリアネットワーク、ワイドエリアネットワーク、仮想プライベートネットワーク、インターネット、イントラネット、エクストラネット、公衆スイッチ電話ネットワーク、赤外線ネットワーク、無線ネットワーク、およびそれらの任意の組み合わせであり得る。
【００９１】
上述の例による方法は、コンピュータ可読媒体に格納された、またはそうでなければ、コンピュータ可読媒体から利用可能な、コンピュータ実行可能命令を使用して実装され得る。そのような命令は、例えば、汎用コンピュータ、専用コンピュータ、または専用処理デバイスに、ある機能または複数の機能のグループを実行させる、またはそうでなければ、汎用コンピュータ、専用コンピュータ、または専用処理デバイスを、ある機能または複数の機能のグループを実行すべく構成する、命令及びデータを含み得る。使用されるコンピュータリソースの一部分は、ネットワークを介してアクセス可能であり得る。コンピュータ実行可能命令は、例えば、バイナリ、アセンブリ言語などの中間フォーマット命令、ファームウェア、またはソースコードであり得る。説明された例による方法の最中の命令、説明された例による方法の最中に使用される情報、および／または、説明された例による方法の最中に作成される情報を格納すべく使用され得るコンピュータ可読媒体の例は、磁気ディスクまたは光ディスク、フラッシュメモリ、不揮発性メモリと共に提供されるＵＳＢデバイス、ネットワーク接続されたストレージデバイスなどを含む。
【００９２】
これらの技術による方法を実装するデバイスは、ハードウェア、ファームウェア、および／またはソフトウェアを含み得、様々なフォームファクタのいずれかをとり得る。そのようなフォームファクタの代表的な例は、サーバコンピュータ、ラップトップ、スマートフォン、スモールフォームファクタパーソナルコンピュータ、パーソナルデジタルアシスタントなどを含む。本明細書で説明された機能は、また、周辺機器またはアドインカードにおいても具現化され得る。そのような機能は、また、さらなる例として、異なるチップの間の回路基板上でも、または単一のデバイスで実行する異なるプロセスでも、実装され得る。
【００９３】
ウェブサーバを利用する例において、ウェブサーバは、ＨＴＴＰサーバ、ＦＴＰサーバ、ＣＧＩサーバ、データサーバ、Ｊａｖａ（登録商標）サーバ、およびビジネスアプリケーションサーバを含む、任意の様々なサーバまたはミッドティアアプリケーションを実行し得る。ユーザデバイスからのリクエストに応じて、ウェブサーバはまた、プログラムまたはスクリプトを実行可能でもあり得る。例えば、ウェブサーバは、１つまたは複数のウェブアプリケーションを実行し得、それは、Ｊａｖａ（登録商標）、Ｃ、Ｃ＃、またはＣ＋＋などの任意のプログラミング言語、または、Ｐｅｒｌ、Ｐｙｔｈｏｎ、またはＴＣＬなどの任意のスクリプト言語、ならびに、それらの組み合わせで書かれた１つまたは複数のスクリプトまたはプログラムとして実装され得る。ウェブサーバはまた、オープンマーケットにおいて市販されているものを含む、データベースサーバを包含もし得る。
【００９４】
サーバシステムは、上記で検討されたように、様々なデータ格納、ならびに他のメモリおよびストレージ媒体を含み得る。これらは、１つまたは複数のコンピュータにローカルな（および／または、それらに常駐している）ストレージ媒体上、または、ネットワークにわたるコンピュータのいくつかまたはすべてからリモートなストレージ媒体上などの、様々な位置に存在し得る。特定のセットの例において、情報は、当業者によく知られるストレージエリアネットワーク（ＳＡＮ）に存在し得る。同様に、コンピュータ、サーバ、または他のネットワークデバイスに帰属する機能を実行するために必要な任意のファイルは、必要に応じて、ローカルに、および／または、リモートに格納され得る。システムがコンピュータ化されたデバイスを含む場合、そのような各デバイスは、バスを介して電気的に連結され得るハードウェア要素を含み得、それらの要素は、例えば、少なくとも１つの中央演算処理装置（ＣＰＵ）、少なくとも１つの入力デバイス（例えば、マウス、キーボード、コントローラ、タッチセンサ式ディスプレイ要素、またはキーパッド）、および、少なくとも１つの出力デバイス（例えば、ディスプレイデバイス、プリンタ、またはスピーカ）が挙げられる。そのようなシステムは、ディスクドライブ、光学ストレージデバイス、および、ランダムアクセスメモリ（ＲＡＭ）またはリードオンリーメモリ（ＲＯＭ）などのソリッドステートストレージデバイス、ならびに、リムーバブルメディアデバイス、メモリカード、フラッシュカードなどの、１つまたは複数のストレージデバイスもまた含み得る。
【００９５】
そのようなデバイスは、上記で説明したように、コンピュータ可読ストレージ媒体リーダ、通信デバイス（例えば、モデム、無線または有線ネットワークカード、赤外線コンピューティングデバイス）、およびワーキングメモリをまた含み得る。コンピュータ可読ストレージ媒体リーダは、リモートな、ローカルな、固定された、および／またはリムーバブルなストレージデバイスを表すコンピュータ可読ストレージ媒体と、ならびに、コンピュータ可読情報を一時的および／またはより永久的に、含む、記憶する、送信する、および取得するストレージ媒体と、接続され得、または、これらのストレージ媒体を受け入れるべく構成され得る。システムおよび様々なデバイスは、オペレーティングシステム、およびクライアントアプリケーションまたはウェブブラウザなどのアプリケーションプログラムを含む、少なくとも１つのワーキングメモリデバイス内に位置する複数のソフトウェアアプリケーション、モジュール、サービスまたは他の要素もまた通常含むであろう。代替的な例は、上記で説明されたものから多数の変更を有し得ることが、理解されるべきである。例えば、カスタマイズされたハードウェアもまた、使用されるかもしれず、および／または、特定の要素が、ハードウェア、ソフトウェア（アプレットなどのポータブルソフトウェアを含む）、または両方において実装されるかもしれない。さらに、ネットワーク入力／出力デバイスなどの、他のコンピューティングデバイスへの接続が、採用され得る。
【００９６】
コードまたはコードの一部分を含む、ストレージ媒体およびコンピュータ可読媒体は、ストレージ媒体およびコンピューティング媒体を含む、当技術分野において知られるか使用される任意の適切な媒体を含み得る。ストレージ媒体およびコンピューティング媒体は、揮発性および不揮発性の、リムーバブルおよびノンリムーバブルの、データまたは情報を格納および／または送信するための媒体を含み得るが、それらに限定されない。リムーバブルな、およびノンリムーバブルな媒体は、ＲＡＭ、ＲＯＭ、ＥＰＲＯＭ、ＥＥＰＲＯＭ、フラッシュメモリもしくは他のメモリ技術、ＣＤ−ＲＯＭ、デジタル多用途ディスク（ＤＶＤ）もしくは他の光ストレージ装置、磁気カセット、磁気テープ、磁気ディスクストレージもしくは他の磁気ストレージデバイス、または、所望の情報を格納すべく使用され得、システムデバイスによってアクセスされ得る任意の他の媒体を含む。データまたは情報は、コンピュータ可読命令、データ構造、プログラムモジュール、または他のデータを含み得る。本明細書に提供される技術および教示に基づいて、当業者は、本開示の様々な態様を実装するための他の手段および／または方法を理解するであろう。
【００９７】
明細書および図面は、したがって、限定的意味ではなく例示的意味とみなされるべきである。しかしながら、特許請求の範囲に記載されたような、本特許出願のより広い主旨および範囲から逸脱することなく、様々な修正および変更がそれらに成され得ることは明らかであろう。
【図１Ａ】
2019004450.tif 000003
【図１Ｂ】
2019004450.tif 000004
【図１Ｃ】
2019004450.tif 000005
【図１Ｄ】
2019004450.tif 000006
【図１Ｅ】
2019004450.tif 000007
【図１Ｆ】
2019004450.tif 000008
【図１Ｇ】
2019004450.tif 000009
【図１Ｈ】
2019004450.tif 000010
【図１Ｉ】
2019004450.tif 000011
【図１Ｊ】
2019004450.tif 000012
【図２】
2019004450.tif 000013
【図３】
2019004450.tif 000014
【図４】
2019004450.tif 000015
【図５】
2019004450.tif 000016