(57)【特許請求の範囲】
【請求項１】
分散データ記憶システムに記憶されたファイルについての情報を記憶するクラスデータベースを備えたメタデータ記憶装置と、
１つまたは複数の処理ユニットと、
一連の命令を前記処理ユニットに提供するための揮発性媒体または不揮発性媒体であって、前記一連の命令は、前記処理ユニットにより実行されることにより、
１つまたは複数のサーバ選択基準をそれぞれ含む１つまたは複数のサブクラスを含むデータ記憶サーバのクラスの定義を受信し、前記クラスデータベースに記憶するステップ、
前記クラスに前記分散データ記憶システムの１つまたは複数のディレクトリを関連付けるステップ、
データクライアントがデータファイルをディレクトリに記憶することに応答して、前記クラスを前記データファイルにバインドすることにより、該データファイルの記憶を、バインドされた前記クラスに含まれるデータ記憶サーバに制限し、前記サーバ選択基準を満たす前記システム内の１つまたは複数のデータ記憶サーバの識別子セットを特定して記憶し、前記識別子セットを前記データクライアントに提供するステップ
を実行させる、揮発性媒体または不揮発性媒体と
を備えることを特徴とする、データ処理装置。
【請求項２】
前記処理ユニットにより実行されることにより、
前記１つまたは複数のサブクラスの前記定義において表現カウントを受信するステップ、前記表現カウントの和に基づいて、前記データファイルの複製ファクタを特定するステップ、および前記複製ファクタに従って前記データファイルの複数の複製を前記データ記憶サーバに記憶するステップを実行させる一連の命令をさらに含むことを特徴とする請求項１に記載の装置。
【請求項３】
前記処理ユニットにより実行されることにより、
前記１つまたは複数のサブクラスの前記定義においてゼロの表現カウントを受信するステップ、前記データファイルが作成されたディレクトリから継承された前記データファイルの複製ファクタプロパティに基づいて、前記データファイルの複製ファクタを特定するステップ、および前記複製ファクタに従って、前記データファイルの複数の複製を前記データ記憶サーバに記憶するステップを実行させる一連の命令をさらに含むことを特徴とする請求項１に記載の装置。
【請求項４】
前記処理ユニットにより実行されることにより、
前記サーバ選択基準を満たす前記システム内の前記データ記憶サーバのみに適用される１つまたは複数の最良可用性基準にさらに基づいて、前記識別子セットを特定して記憶するステップを実行させる一連の命令をさらに含むことを特徴とする請求項１に記載の装置。
【請求項５】
前記サーバ選択基準はプロセッサ速度、所有者、およびロケーションを含むことを特徴とする請求項１に記載の装置。
【請求項６】
前記処理ユニットにより実行されることにより、前記識別子セット内で識別される１つまたは複数の第１のデータ記憶サーバにのみ前記データファイルを自動的に記憶するステップを実行させる一連の命令をさらに含むことを特徴とする請求項１に記載の装置。
【請求項７】
前記処理ユニットにより実行されることにより、
１つまたは複数の更新されたサーバ選択基準を含む前記サブクラスのうちの１つまたは複数の更新された定義を受信するステップ、
前記更新された定義に基づいて、前記更新されたサーバ選択基準を満たす前記システム内の１つまたは複数の異なるデータ記憶サーバの更新された識別子セットを特定して記憶するステップ、
前記更新された識別子セット内で識別される１つまたは複数の第２のデータ記憶サーバのみに前記データファイルを自動的に記憶させるステップ
を実行させる一連の命令をさらに含むことを特徴とする請求項６に記載の装置。
【請求項８】
前記処理ユニットにより実行されることにより、
前記１つまたは複数のサブクラスの前記定義において表現カウントを受信し、前記表現カウントの和に基づいて、前記データファイルの第１の複製ファクタを特定し、前記第１の複製ファクタに従って、前記データファイルの複数の複製を前記データ記憶サーバに記憶するステップ、
１つまたは複数の更新されたサーバ選択基準を含む前記サブクラスのうちの１つまたは複数の更新された定義を受信するステップ、
前記更新された定義に基づいて、前記更新されたサーバ選択基準を満たす前記システム内の１つまたは複数の異なるデータ記憶サーバの更新された識別子セットを特定して記憶し、前記更新された定義内の前記表現カウントの和に基づいて、前記データファイルの第２の複製ファクタを特定するステップ、
前記第２の複製ファクタに従って、前記更新された識別子セット内で識別される１つまたは複数の第２のデータ記憶サーバのみに、複数の複製で前記データファイルを記憶するステップ
を実行させる一連の命令をさらに含むことを特徴とする請求項１に記載の装置。
【請求項９】
前記処理ユニットにより実行されることにより、
更新されたクラス識別子を含む前記データファイルの更新されたファイル属性を受信するステップ、
前記更新されたクラス識別子の前記クラスの前記１つまたは複数のサブクラスの前記サーバ選択基準を満たす前記システム内の１つまたは複数の異なるデータ記憶サーバの更新された識別子セットを特定して記憶するステップ、
前記更新された識別子セット内で識別される１つまたは複数の第２のデータ記憶サーバにのみ前記データファイルを記憶するステップ
を実行させる一連の命令をさらに含むステップを特徴とする請求項１に記載の装置。
【請求項１０】
前記処理ユニットにより実行されることにより、
前記更新されたクラス識別子の前記１つまたは複数のサブクラスの表現カウントの和に基づいて、前記データファイルの複製ファクタを特定するステップ、
前記複製ファクタに従って、前記更新された識別子セット内で識別される１つまたは複数の第２のデータ記憶サーバのみに、前記データファイルを複数の複製で記憶するステップ
を実行させる一連の命令をさらに含むことを特徴とする請求項９に記載の装置。
【請求項１１】
１つまたは複数の処理ユニットにより実行されることにより、
１つまたは複数のサーバ選択基準をそれぞれ含む１つまたは複数のサブクラスを含むデータ記憶サーバのクラスの定義を受信し、分散データ記憶システムに記憶されたファイルについての情報を記憶するメタデータ記憶装置内のクラスデータベースに記憶するステップ、
前記クラスに前記分散データ記憶システムの１つまたは複数のディレクトリを関連付けるステップ、
データクライアントがデータファイルをディレクトリに記憶することに応答して、前記クラスを前記データファイルにバインドすることにより、該データファイルの記憶を、バインドされた前記クラスに含まれるデータ記憶サーバに制限し、前記サーバ選択基準を満たす前記システム内の１つまたは複数のデータ記憶サーバの識別子セットを特定して記憶し、前記識別子セットを前記データクライアントに提供するステップ
を実行させる一連の命令を記憶したコンピュータ読み取り可能な不揮発性媒体。
【請求項１２】
前記処理ユニットにより実行されることにより、前記１つまたは複数のサブクラスの前記定義において表現カウントを受信するステップ、前記表現カウントの和に基づいて、前記データファイルの複製ファクタを特定するステップ、および前記複製ファクタに従って前記データファイルの複数の複製を前記データ記憶サーバに記憶するステップを実行させる一連の命令をさらに含むことを特徴とする請求項１１に記載の不揮発性媒体。
【請求項１３】
前記処理ユニットにより実行されることにより、前記１つまたは複数のサブクラスの前記定義においてゼロの表現カウントを受信するステップ、前記データファイルが作成されたディレクトリから継承された前記データファイルの複製ファクタプロパティに基づいて、前記データファイルの複製ファクタを特定するステップ、および前記複製ファクタに従って、前記データファイルの複数の複製を前記データ記憶サーバに記憶するステップを実行させる一連の命令をさらに含むことを特徴とする請求項１１に記載の不揮発性媒体。
【請求項１４】
前記処理ユニットにより実行されることにより、前記サーバ選択基準を満たす前記システム内の前記データ記憶サーバのみに適用される１つまたは複数の最良可用性基準にさらに基づいて、前記識別子セットを特定して記憶するステップを実行させる一連の命令をさらに含むことを特徴とする請求項１１に記載の不揮発性媒体。
【請求項１５】
前記サーバ選択基準はプロセッサ速度、所有者、およびロケーションを含むステップを特徴とする請求項１１に記載の不揮発性媒体。
【請求項１６】
前記処理ユニットにより実行されることにより、前記識別子セット内で識別される１つまたは複数の第１のデータ記憶サーバにのみ前記データファイルを自動的に記憶するステップを実行させる一連の命令をさらに含むことを特徴とする請求項１１に記載の不揮発性媒体。
【請求項１７】
前記処理ユニットにより実行されることにより、
１つまたは複数の更新されたサーバ選択基準を含む前記サブクラスのうちの１つまたは複数の更新された定義を受信するステップ、
前記更新された定義に基づいて、前記更新されたサーバ選択基準を満たす前記システム内の１つまたは複数の異なるデータ記憶サーバの更新された識別子セットを特定して記憶するステップ、
前記更新された識別子セット内で識別される１つまたは複数の第２のデータ記憶サーバのみに前記データファイルを自動的に記憶させるステップ
を実行させる一連の命令をさらに含むことを特徴とする請求項１１に記載の不揮発性媒体。
【請求項１８】
前記処理ユニットにより実行されることにより、
前記１つまたは複数のサブクラスの前記定義において表現カウントを受信し、前記表現カウントの和に基づいて、前記データファイルの第１の複製ファクタを特定し、前記第１の複製ファクタに従って、前記データファイルの複数の複製を前記データ記憶サーバに記憶するステップ、
１つまたは複数の更新されたサーバ選択基準を含む前記サブクラスのうちの１つまたは複数の更新された定義を受信するステップ、
前記更新された定義に基づいて、前記更新されたサーバ選択基準を満たす前記システム内の１つまたは複数の異なるデータ記憶サーバの更新された識別子セットを特定して記憶し、前記更新された定義内の前記表現カウントの和に基づいて、前記データファイルの第２の複製ファクタを特定するステップ、
前記第２の複製ファクタに従って、前記更新された識別子セット内で識別される１つまたは複数の第２のデータ記憶サーバのみに、複数の複製で前記データファイルを記憶するステップ
を実行させる一連の命令をさらに含むことを特徴とする請求項１１に記載の不揮発性媒体。
【請求項１９】
前記処理ユニットにより実行されると、
更新されたクラス識別子を含む前記データファイルの更新されたファイル属性を受信するステップ、
前記更新されたクラス識別子の前記クラスの前記１つまたは複数のサブクラスの前記サーバ選択基準を満たす前記システム内の１つまたは複数の異なるデータ記憶サーバの更新された識別子セットを特定して記憶するステップ、
前記更新された識別子セット内で識別される１つまたは複数の第２のデータ記憶サーバにのみ前記データファイルを記憶するステップ
を実行させる一連の命令をさらに含むことを特徴とする請求項１１に記載の不揮発性媒体。
【請求項２０】
前記処理ユニットにより実行されることにより、
前記更新されたクラス識別子の前記１つまたは複数のサブクラスの表現カウントの和に基づいて、前記データファイルの複製ファクタを特定するステップ、
前記複製ファクタに従って、前記更新された識別子セット内で識別される１つまたは複数の第２のデータ記憶サーバのみに、前記データファイルを複数の複製で記憶するステップ
を実行させる一連の命令をさらに含むことを特徴とする請求項１９に記載の不揮発性媒体。
【請求項２１】
１つまたは複数のサーバ選択基準をそれぞれ含む１つまたは複数のサブクラスを含むデータ記憶サーバのクラスの定義を受信し、分散データ記憶システムに記憶されたファイルについての情報を記憶するメタデータ記憶装置内のクラスデータベースに記憶するステップ、
前記クラスに前記分散データ記憶システムの１つまたは複数のディレクトリを関連付けるステップ、
データクライアントがデータファイルをディレクトリに記憶することに応答して、前記クラスを前記データファイルにバインドすることにより、該データファイルの記憶を、バインドされた前記クラスに含まれるデータ記憶サーバに制限し、前記サーバ選択基準を満たす前記システム内の１つまたは複数のデータ記憶サーバの識別子セットを特定して記憶し、前記識別子セットを前記データクライアントに提供するステップ
を含むことを特徴とするコンピュータにより実行される方法。
【請求項２２】
前記１つまたは複数のサブクラスの前記定義において表現カウントを受信するステップ、前記表現カウントの和に基づいて、前記データファイルの複製ファクタを特定するステップ、および前記複製ファクタに従って前記データファイルの複数の複製を前記データ記憶サーバに記憶するステップをさらに含むことを特徴とする請求項２１に記載の方法。
【請求項２３】
前記１つまたは複数のサブクラスの前記定義においてゼロの表現カウントを受信するステップ、前記データファイルが作成されたディレクトリから継承された前記データファイルの複製ファクタプロパティに基づいて、前記データファイルの複製ファクタを特定するステップ、および前記複製ファクタに従って、前記データファイルの複数の複製を前記データ記憶サーバに記憶するステップをさらに含むことを特徴とする請求項２１に記載の方法。
【請求項２４】
前記サーバ選択基準を満たす前記システム内の前記データ記憶サーバのみに適用される１つまたは複数の最良可用性基準にさらに基づいて、前記識別子セットを特定して記憶するステップをさらに含むことを特徴とする請求項２１に記載の方法。
【請求項２５】
前記識別子セット内で識別される１つまたは複数の第１のデータ記憶サーバにのみ前記データファイルを自動的に記憶するステップをさらに含むことを特徴とする請求項２１に記載の方法。
【請求項２６】
１つまたは複数の更新されたサーバ選択基準を含む前記サブクラスのうちの１つまたは複数の更新された定義を受信するステップ、
前記更新された定義に基づいて、前記更新されたサーバ選択基準を満たす前記システム内の１つまたは複数の異なるデータ記憶サーバの更新された識別子セットを特定して記憶するステップ、
前記更新された識別子セット内で識別される１つまたは複数の第２のデータ記憶サーバのみに前記データファイルを自動的に記憶させるステップ
をさらに含むことを特徴とする請求項２５に記載の方法。
【請求項２７】
前記１つまたは複数のサブクラスの前記定義において表現カウントを受信し、前記表現カウントの和に基づいて、前記データファイルの第１の複製ファクタを特定し、前記第１の複製ファクタに従って、前記データファイルの複数の複製を前記データ記憶サーバに記憶するステップ、
１つまたは複数の更新されたサーバ選択基準を含む前記サブクラスのうちの１つまたは複数の更新された定義を受信するステップ、
前記更新された定義に基づいて、前記更新されたサーバ選択基準を満たす前記システム内の１つまたは複数の異なるデータ記憶サーバの更新された識別子セットを特定して記憶し、前記更新された定義内の前記表現カウントの和に基づいて、前記データファイルの第２の複製ファクタを特定するステップ、
前記第２の複製ファクタに従って、前記更新された識別子セット内で識別される１つまたは複数の第２のデータ記憶サーバのみに、複数の複製で前記データファイルを記憶するステップ
をさらに含むことを特徴とする請求項２１に記載の方法。
【請求項２８】
更新されたクラス識別子を含む前記データファイルの更新されたファイル属性を受信するステップ、
前記更新されたクラス識別子の前記クラスの前記１つまたは複数のサブクラスの前記サーバ選択基準を満たす前記システム内の１つまたは複数の異なるデータ記憶サーバの更新された識別子セットを特定して記憶するステップ、
前記更新された識別子セット内で識別される１つまたは複数の第２のデータ記憶サーバにのみ前記データファイルを記憶するステップ
をさらに含むことを特徴とする請求項２１に記載の方法。
【請求項２９】
前記更新されたクラス識別子の前記１つまたは複数のサブクラスの表現カウントの和に基づいて、前記データファイルの複製ファクタを特定するステップ、
前記複製ファクタに従って、前記更新された識別子セット内で識別される第２のデータ記憶サーバのみに、前記データファイルを複数の複製で記憶するステップ
をさらに含むことを特徴とする請求項２８に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、一般にはコンピュータデータの記憶に関する。
【背景技術】
【０００２】
この項で説明される手法は、探求可能な手法であるが、必ずしも過去に構想または探求された手法である訳ではない。したがって、本明細書において別段のことが示される場合を除き、この項において説明される手法は、本願の特許請求の範囲に対する先行技術ではなく、この項に含まれることをもってして先行技術であると認められるものではない。
【０００３】
分散データ記憶システムでは、特定のデータがどこに記憶されるかが、特に、映像データ等のリアルタイムデータを送信するシステムにおいて、データ検索時間に影響し得る。特許文献１には、すべてのサーバにわたって可用性選択基準を大域的に最適化することにより冗長データイメージを配置できる分散データ記憶システムが記載されている。分散データ記憶は、ＲＡＩＤ（安価ドライブ冗長アレイ）、ＮＡＳ（ネットワーク接続ストレージ）、およびＳＡＮ（ストレージエリアネットワーク）を使用しても実施し得る。分散ファイルシステムの例としては、ＨＰ  Ｌｕｓｔｒｅファイルシステム、ＳＧＩクラスタ型拡張可能ファイルシステム（ＣＸＦＳ）、Ｖｅｒｉｔａｓファイルシステム（ＶｘＦＳ）、Ｇｏｏｇｌｅファイルシステム（ＧＦＳ）、Ｏｍｎｅｏｎ拡張ファイルシステム（ＥＦＳ）、Ｏｒａｃｌｅクラスタファイルシステム（ＯＣＦＳ）、およびＨａｄｏｏｐ分散ファイルシステム（ＨＤＦＳ）が挙げられる。分散ハードウェアシステムとしては、Ｉｓｉｌｏｎ、Ｐａｎａｓａｓ、Ａｖｉｄ  ＩＳＩＳが挙げられる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】米国特許出願公開第２００７−０２１４１８３−Ａ１号明細書
【図面の簡単な説明】
【０００５】
【図１】分散記憶システムのメタデータサーバのシステムマネージャクライアントおよび一実施形態において、新しいサーバクラス属性を追加し新しいクラスを定義するために行われ得る一連のステップを示す。
【図２】分散記憶システムのデータクライアントおよびデータを特定のクラスのファイルに書き込むために行われる一連のステップ例を示す。
【図３】分散記憶システムのメタデータサーバのシステムマネージャクライアントおよび既存のクラスを更新するために行われる一連のステップ例を示す。
【図４】ファイルを新しいまたは異なるクラスに再関連付けするシステムマネージャクライアントを示す。
【図５Ａ】ファイル、クラス、サブクラス、およびデータサーバの論理的な関係を示す。
【図５Ｂ】サーバプロパティデータベースの例を示す。
【図６】実施形態を実施し得るコンピュータシステムを示す。
【発明を実施するための形態】
【０００６】
以下の説明では、説明を目的として、本発明の完全な理解を提供するために、多くの特定の詳細が記される。しかし、本発明をそれら特定の詳細なしでも実施し得ることが当業者には明らかになろう。他の場合、本発明を不必要に曖昧にしないように、周知の構造および装置はブロック図の形態で示される。
【０００７】
本明細書において、実施形態は以下のアウトラインに従って説明される。
【０００８】
１．０  概説
２．０  構造的および機能的概説
３．０  実施メカニズム−ハードウェア概説
４．０  拡張および代替
１．０  概説
実施形態では、データ処理装置は、分散データ記憶システムに記憶されたファイルについての情報を記憶し、クラスデータベースを備えるメタデータ記憶装置と、１つまたは複数の処理ユニットと、ロジックとを備え、ロジックは、１つまたは複数のサーバ選択基準をそれぞれ備える１つまたは複数のサブクラスを含むデータ記憶サーバのクラスの定義を受信し、クラスデータベースに記憶し、クラスにデータ記憶システムの１つまたは複数のディレクトリを関連付け、データクライアントがデータファイルをディレクトリに記憶したことに応答して、クラスをデータファイルにバインドし、サーバ選択基準を満たすシステム内に１つまたは複数のデータ記憶サーバの識別子セットを特定して記憶し、識別子セットをデータクライアントに提供するように構成される。
【０００９】
他の実施形態では、本発明は、上記ステップを実行するように構成されたコンピュータにより実施される方法およびコンピュータ読み取り可能な記録媒体を包含する。
【００１０】
実施形態では、分散記憶システム内へのファイルデータの配置および移送を制御するために、複製の枠組みが提供される。データ配置に対する制御は、分散ファイルシステムをサポートする異種類サーバクラスタ内のサーバの違いを利用するために有用である。データ配置に対する制御により、ファイルを特定のサーバ区画内で展開させることも可能である。データ配置に対する制御は、冗長データファブリック内のファイル修復を局在化（ローカライズ）することにも役立ち得る。
【００１１】
特定の実施形態をデータファイルを記憶する文脈の中で説明するが、本開示の技法は、分散記憶システムのインテリジェントな記憶装置の要素間の分散アプリケーションの配置に適用することも可能である。
【００１２】
２．０  構造的および機能的概説
図１は、分散記憶システムのメタデータサーバ１のシステムマネージャクライアント１０２および一実施形態において、新しいサーバクラス属性を追加し、新しいクラスを定義するために行われ得る一連のステップを示す。実施形態では、ファイルには特定のサーバのクラスが関連付けられる。サーバクラスへのファイルの関連付けにより、クラスタ内のデータイメージの配置を特定のサーバのパーティションに制御する手段が提供される。実施形態では、クラスは、サーバプロパティのセットを満たすサーバのセットである。例えば、クラスは、最高帯域幅ネットワークスイッチにも接続された、クラスタ内のすべての高性能サーバとして定義し得る。任意の複雑性を有する任意の数のプロパティにより、クラスを定義し得る。
【００１３】
図５Ａは、ファイル、クラス、サブクラス、およびデータサーバの論理的な関係を示す。ファイル５０２には、メタデータサーバ１に記憶される情報により、クラス５０４が関連付けられる。クラス５０４は、１つまたは複数のサブクラス５０５Ａ、５０５Ｎにより定義される。任意の数のサブクラスを使用してよい。クラス５０４およびそのサブクラス５０５Ａ、５０５Ｎは一緒になって、クラスに整合するサーバのセット５０６を定義する。図１のシステムのクライアントは図５Ａの構造を定義することができ、したがって、クライアントは、クラス５０４およびそのサブクラスにより決定されるセット５０６内のサーバに記憶を制限することにより、ファイル５０２がどこに記憶されるかに影響を及ぼし得る。
【００１４】
実施形態では、各クラス５０４は、名前およびクラス識別子で表される。各サブクラスは、データベースビューコマンドの文字列（ストリング）、現在、基準を満たしているサーバのリスト、セット５０６と同等のもの、クラスにマッピングされるデータイメージの複製ファクタを決定するために使用可能なオプションの表現カウント（ｒｅｐｒｅｓｅｎｔａｔｉｏｎ  ｃｏｕｎｔ）、および論理クラス識別子等のサーバ選択基準で表される。名前、サーバ選択基準、およびクラス識別子は、グローバル状態値として冗長メタデータサーバ間で共有される。例えば、米国特許出願公開第２００７−０２１４１８３−Ａ１号明細書のシステムに記載されているメタデータサーバを使用することができる。あるいは、Ｏｍｎｅｏｎ，Ｉｎｃ．（Ｓｕｎｎｙｖａｌｅ，Ｃａｌｉｆｏｒｎｉａ）から市販されているＯｍｎｅｏｎ  ＭｅｄｉａＧｒｉｄ記憶システムを使用してもよい。
【００１５】
クラスは重複することができる。実施形態では、クラスの「共有／非共有」プロパティが、そのクラスが他と重複することができるか否かを示す。
【００１６】
実施形態では、サーバプロパティデータベース１１０は、分散記憶システム内の各メタデータサーバ１に保持される。データベース１１０では、行がクラスメンバであるサーバを表し、列がサーバプロパティを表す。図５Ｂは、例としてのサーバプロパティデータベース１１０を示し、列５１０が、行にそれぞれ関連付けられたサーバを識別し、列５１２、５１４、５１６、５１８、５２０は、関連付けられた行のサーバのプロパティを記憶する。任意の数の行および列をデータベース１１０において表し得る。スタートアップ中に、データベース１１０は、利用可能な各サーバの読み取り専用システムレベルプロパティを列５１４、５１６、５１８、５２０内に記憶することにより初期化される。システムレベルプロパティの例としては、図５Ｂに見られるように、シリアルナンバ、ネットワークトポロジのロケーション、プロセッサ速度、およびプロセッサコア数が挙げられるが、任意のプロパティを使用し得る。
【００１７】
実施形態では、データベース１１０は、メタデータサーバにジャーナル記憶された一連のコマンドを適用して、データベースを最新のものにすると共に、サーバクラスタを制御する他のメタデータサーバ上のデータベースと一貫させる。時間の経過に伴い、要約された読み／書きサーバプロパティの遷移リスト（ｔｒａｎｓｉｅｎｔ  ｌｉｓｔ  ｏｆ  ａｂｓｔｒａｃｔ  ｒｅａｄ／ｗｒｉｔｅ  ｓｅｒｖｅｒ  ｐｒｏｐｅｒｔｉｅｓ）（例えば、サーバ所有者、修復優先順位）をサーバに割り当て得る。
【００１８】
実施形態では、ファイル５０２のすべてのデータは１つのクラス５０４にマッピングされる。ファイルの各複製データイメージの、メタデータサーバ１に記憶されているメタデータは論理クラス識別子を含み、それにより、ファイルデータのロケーションを特定のクラスのサーバにバインドする。メタデータは、メタデータサーバ１のローカルデータ記憶装置に記憶することができ、これは、システム内の他のすべてのメタデータサーバ内のメタデータデータ記憶装置に複製され、同期される。サーバの変更により、データ記憶ファブリックの修復が生じた場合、すべてのデータが、データがバインドされたクラスのサーバに残るように、データは他のサーバに移される。クラスは再定義される際、またはファイルがクラス間を移動する際、ファイルの各データイメージを含むサーバのリストが、クラスに相対して改修される。そのようなすべてのデータ移動は、クラスタにとってローカルに行われ、クライアントユーティリティとクラスタサーバとの間でのデータ移動は必要ない。
【００１９】
実施形態では、サブクラス５０５Ａ内の非ゼロ表現カウントは、複製セット内に表されなくてはならないそのサブクラスからの最小数のサーバを示す。したがって、データ記憶要求は、サブクラス５０５Ａの非ゼロ表現カウントを使用して、そのサブクラス５０５Ａにマッピングされる任意のファイル５０２の強制複製ファクタを示し得る。
【００２０】
サブクラス５０５Ａ、５０５Ｎは、以下のように冗長データファブリック内でのデータ複製に影響し得る。クラス５０４が、すべてゼロの表現カウントを有するサブクラス５０５Ａ、５０５Ｎからなる場合、そのクラスにマッピングされたデータイメージの複製ファクタは、図５Ａに見られるように、名前空間プロパティ５０９の複製ファクタ５０８等の継承したファイルプロパティから得られる。その他の場合、有効データイメージ複製ファクタは、すべてのサブクラス表現カウントの和であり、さらに、この後者の場合、ゼロ表現カウントを有するいかなるサブクラスも、シーケンス生成およびデータファブリック修復中に無視される。さらに、ファイルの複製ファクタは、関連付けられたクラスのすべてのサブクラス表現カウントがゼロの場合のみ、個々に変更し得る。
【００２１】
メタデータサーバは、インテリジェントな記憶装置の要素との通信にメッセージベースの制御経路を使用して、ダイナミックストレージ可能性統計を収集する。メタデータサーバは、各クラスに関してデータファブリックの可用性を計算する。
【００２２】
その結果、記憶システムのクライアントは、ファイルをクラス識別子にバインドすることにより、ファイルのデータを、サーバの潜在的に巨大なクラスタ内のどこに配置すべきかを指定することができる。したがって、実施形態を使用する場合、冗長データファブリック内への複製データイメージの配置制御は、ファイル単位で提供される。この制御の追加により、ユーザは、ダイナミックビジネスニーズに従って分散ファイルシステムのアクセスをさらに最適化することができる。
【００２３】
実施形態を使用する場合、分散ファイルシステムのクライアントは、データがどのように配置され保持されるかを制御可能である。メタデータサーバを使用する従来の手法は一般に、すべてのサーバにわたって可用性選択基準を大域的に最適化することにより、冗長データイメージをデータサーバに配置した。本明細書における実施形態の場合、データの配置および最適化された可用性選択基準の使用は、特定のサーバセットに対してローカルに適用することができる。各データイメージをクラスにバインドすることにより、ファイルが書き込まれる際、またはデータファブリックが修復される際、ファイルを特定のサーバセットに配置することができる。
【００２４】
従来のいくつかの手法は、通常、配電境界に沿って位置合わせされた静的グループにサーバを区分けし、複製は、グループをまたぐことにより、イメージを大域的に分散させようとした。本手法は、静的グループストライド方法（ｓｔａｔｉｃ  ｇｒｏｕｐ  ｓｔｒｉｄｉｎｇ  ｍｅｔｈｏｄ）を補完する。特に、クラスが複数のグループに重なる場合、分散は、イメージが重なり内のすべてのグループに分散されるようにバイアスされる。
【００２５】
本明細書における技法を使用して、データ配置をクライアントが制御することにより、階層データ管理およびデータアクセス段階化を含め、そのようなファイルシステムの多種多様な新規用途が可能である。例えば、少数の大容量サーバからなるクラス内の映像ファイルを、コード変換を実行する直前に、またはファイルを映像ネットワーク内で再生する直前に、ＲＡＭディスクのみで構成された多数の高性能サーバからなるクラスに再割り当てすることができる。
【００２６】
実施形態により、クラスタ内外にデータをコピーする必要なく、クラス単位でクラスタを監視し制御するインテリジェントなクラスタマネージャアプリケーションを開発することも可能である。例えば、マネージャアプリケーションは、ファイルクラス割り当てを監視し、頻繁にアクセスされるクラス内に特定量の自由領域を維持するために、最近アクセスされていなかったファイルをクラスに再割り当てする。マネージャアプリケーションは、追加のサーバを略容量限界の重複しないクラスに再割り当てすることもできる。
【００２７】
２．１  サーバクラス属性の追加およびクラスの定義
図１は、一実施形態において、新しいサーバクラス属性を追加し、新しいクラスを定義するために行われ得る一連のステップをさらに示す。
【００２８】
実施形態では、システムマネージャ１０２はメタデータサーバ１に結合される。システムマネージャ１０２は、メタデータサーバ１のクライアントである。様々な実施形態では、任意の数のメタデータサーバがあり得る。例えば、米国特許出願公開第２００７−０２１４１８３−Ａ１号明細書アーキテクチャを使用し得る。各メタデータサーバ１は、図６に示されるように、汎用コンピュータシステムを使用して実施し得、メモリまたはローカルデータ記憶は、本明細書において説明される機能を実施するプログラム命令または他のソフトウェア要素を記憶する。例えば、メタデータサーバ１は、名前空間マネージャ１０４、クラスマネージャ１０６、サーバマネージャ１０８、およびクラスデータベース１１０を実施するロジックを備え得る。
【００２９】
まず、クライアントは、クラス属性をサーバセットに割り当てるリモートプロシージャ要求を行う（１０）。例えば、コマンド
ａｔｔｒｉｂｕｔｅ＝”ｏｗｎｅｒ＝ｄｅｍｏ”
ｓｅｒｖｅｒｓ＝｛ｓｅｒｖｅｒ１−ｓｅｒｖｅｒ３０｝
は、「ｄｅｍｏ」への所有者属性を、識別子値ｓｅｒｖｅｒ１〜ｓｅｒｖｅｒ３０を使用して識別されたサーバに割り当てる。クラスマネージャ１０６は状態データをジャーナル記録し、クラスデータベース１１０を更新する。属性およびサーバセットは、他のメタデータサーバに渡される（１６）。例えば、米国特許第６，６６５，６７５  Ｂ１号明細書に記載の冗長メタデータサーバリング上でデータを共有する技法を使用し得る。
【００３０】
システムマネージャ１０２は、クライアントとして、クラス名およびサブクラスの文字列のセットを指定することにより、新しいクラスを定義するリモートプロシージャ要求を行う（２０）。例えば、システムマネージャ１０２は、以下の要求を送信する。
【００３１】
ｎａｍｅ＝”ｆａｓｔＳｅｒｖｅｒＣｌａｓｓ”
ｓｕｂｃｌａｓｓ１＝（ｐｒｏｃｅｓｓｏｒＳｐｅｅｄ＝３ＧＨｚ  ＆＆
”ｏｗｎｅｒ＝ｄｅｍｏ”  ＆＆
”ｌｏｃａｔｉｏｎ＝ｌａｂＲｏｏｍ１）（ｒｅｐｒｅｓｅｎｔａｔｉｏｎＣｏｕｎｔ＝２）
ｓｕｂｃｌａｓｓ２＝（ｐｒｏｃｅｓｓｏｒＳｐｅｅｄ＝３ＧＨｚ  ＆＆
”ｏｗｎｅｒ＝ｄｅｍｏ”  ＆＆
”ｌｏｃａｔｉｏｎ＝ｌａｂＲｏｏｍ２）（ｒｅｐｒｅｓｅｎｔａｉｏｎＣｏｕｎｔ＝２）
この要求例は、「ｆａｓｔＳｅｒｖｅｒＣｌａｓｓ」という名称のクラスに関連付けられたサーバが、所有者「ｄｅｍｏ」に割り振られたｌａｂ１およびｌａｂ２内のすべての３ＧＨｚサーバを含むことを示す。要求に応答して、クラスマネージャ１０６は、サブクラス基準を使用して、属性基準を満たすサーバのセットを識別する。次に、クラスマネージャ１０６は、（２６）において、サーバセットをサーバマネージャ１０８に送信する。サブクラスは、プロセッサ速度、ＣＰＵまたはＣＰＵコアの数、サーバが結合されたスイッチの速度、ロケーション、読み取り待ち時間、書き込み待ち時間等の任意の所望の基準を識別することができる。
【００３２】
表現カウント値は、異なるサブクラスで異なり得る。したがって、表現カウントが、上記例の両方のサブクラスで「２」であるが、他の実施形態は、異なるサブクラスで異なるカウントを使用し得る。表現カウントの使用により、クライアントは、例えば、ファイルが高い可用性を有さなければならないことを間接的に指定することができる。例えば、高い表現カウント値は、高い複製ファクタを有するファイルの記憶に繋がり、それにより、ファイルをより多数のクライアントに同時に送出することができる。
【００３３】
それに応答して、サーバマネージャ１０８は、新しいクラス識別子をサーバに割り当て、（２７）において、冗長メタデータサーバ１１２の中の他のメタデータサーバ１の他のすべてのサーバマネージャインスタンスとこの識別子を共有する。（２２）において、サーバマネージャ１０８は、クラス識別子をクラスマネージャに返す。
【００３４】
それに応答して、クラスマネージャ１０６は、（２８）においてクラスデータベース１１０を更新し、（２９）においてクラス識別子をシステムマネージャ１０２に返す。表現カウント値は「２」であるため、クラス識別子に関連付けられたすべての後続ファイルデータは、ｌａｂ１内で「ｄｅｍｏ」により所有される３ＧＨｚサーバの中で２回、およびｌａｂ２内で「ｄｅｍｏ」により所有される３ＧＨｚサーバの中で２回、複製されることになる。
【００３５】
２．２  クラス内のファイルへのデータの書き込み
実施形態では、ファイルを記憶すべきであり、ファイルがクラスへの関連付けを有する場合、可用性選択基準を使用して、クラス内の、ファイルのデータを収容するために最良可能性のサーバを見つける。クラスのメンバが変更した場合、またはファイルの関連付けが異なるクラスに変更された場合、影響を受けるファイルのすべてのデータは、クラス内のサーバを含むクラスタの部分のみを使用して再複製される。
【００３６】
図２は、分散記憶システムのデータクライアントおよびデータを特定のクラス内のファイルに書き込むために実行し得る一連のステップ例を示す。
【００３７】
かなり分散したファイルシステムをサポートするサーバは、並列アプリケーションを同時にホストし得るため、本明細書において説明される方法を使用して、クラスタ内で実行中のアプリケーションの配置を制御することができる。したがって、本明細書において使用される用語「ファイル」は、データファイル、実行可能ファイル（ｅｘｅｃｕｔａｂｌｅ）を含むアプリケーションファイル、および記憶システムに記憶可能な他のすべてのデータを含む。
【００３８】
実施形態では、データクライアント２０２はメタデータサーバ１に結合され、ディレクトリ内にファイルを作成する（１０）。名前空間マネージャ１０４は、継承されるプロパティとして、ディレクトリのクラス識別子をファイルに割り当てる。名前空間マネージャ１０４は、経路名およびクラス識別子をクラスマネージャに送信して、後のクラスによるファイルの逆参照のために、ファイルをクラスにバインドする（１１）。名前空間マネージャ１０４は、ハンドルをクライアントに返す（１５）。
【００３９】
データクライアント２０２は、いかなるクラス定義も認識せず、書き込み先のサーバセットのネットワークアドレスを要求する（２０）。名前空間マネージャ１０４は、クラス内の書き込みに「最適」なサーバをサーバマネージャ１０８に要求する（２１）。クラス内のサーバメンバにローカルに適用される最良可用性基準に基づいて、サーバマネージャ１０８は、アドレスおよび複製ファクタをクライアントに返す（２２）。複製ファクタは、すべてのサブクラスの表現カウントを合算することにより特定される。
【００４０】
上記例を続けると、（３０）において、データクライアント２０２は、データを記憶して、シーケンス内の他のサーバに転送する命令と共に、データを第１のデータサーバ１３に送信する。それに対応して、第１のデータサーバ１３、第２のデータサーバ１５、および第３のデータサーバ１８のそれぞれは、コピー／転送動作を実行し、結果として、データはさらに３回（３１、３２、３３）、記憶され転送されることになる。
【００４１】
２．３  クラスの更新
図３は、分散記憶システムのメタデータサーバのシステムマネージャクライアントおよび既存のクラスを更新するために行われる一連のステップの例を示す。図３では、図１と同様に、システムマネージャ１０２がメタデータサーバ１に結合される。図３は、データサーバ１１、１２、１３、１４、１５、１６、１７、１８、１９、１Ａ、１Ｂ、１Ｃを含む第１のクラスおよび異なるデータサーバ２１、２２、２３、２４、２５、２６、２７、２８、２９、２Ａ、２Ｂ、２Ｃ、２Ｄ、２Ｅを含む第２の、すなわち更新されたクラスも示す。
【００４２】
例えば、ユーザが上述した「ｆａｓｔＳｅｒｖｅｒＣｌａｓｓ」の表現内で「ｌａｂ１」を「ｌａｂ３」で置換したいと想定する。
【００４３】
クライアントとして動作するシステムマネージャ１０２は、サブクラスデータベースの文字列を更新するリモートプロシージャ要求を行う（１０）。それに応答して、クラスマネージャ１０６は、クラスデータベースをローカルに更新すると共に、冗長メタデータサーバ１１２（図１）の中で、新しいデータベースの文字列を使用して他のメタデータサーバ１を更新する。それに応答して、すべてのメタデータサーバ上のサーバマネージャインスタンスは、図１と同様に、特定のクラスの新しいサーバセットと提携する。
【００４４】
名前空間マネージャ１０４は、逆参照を実行し、特定のクラスに関連付けられた経路のリストを読み取る。各ファイルのデータチャンク毎に、名前空間マネージャ１０４は、更新されたクラスに対して関連付けられたデータイメージを再び複製するようにサーバマネージャ１０８に要求する（１５）。データチャック毎に、サーバマネージャ１０８は、更新されたクラス内で最良可能性のサーバセットを計算し、特定のデータイメージを保持している各サーバ（２０、３０、４０、５０）に、更新されたクラスの最適に利用可能なサーバセット（２１、３１、４１、５１）にデータを並列に移動するように要求する。
【００４５】
更新されたクラスが、以前よりも高い複製ファクタを反映する場合、１つのサーバから複数のサーバへのデータ移動が暗黙的に定義され、実行される。サーバマネージャ１０８は、サーバ可用性の大局的なビューを保持するため、元のデータイメージを保持しているサーバによっては、忙しすぎてデータを移動できないものがある。この場合、移動は、サーバのサブセット（例えば、データサーバ１３および１７）で行われる。データ移動が完了すると、サーバマネージャ１０８は、メタデータサーバ１上のデータイメージのロケーションを更新する。データクライアント２０２（図２）は、非同期イベント通知を受信してもよく、またはメタデータサーバ１をポーリングして、データ移動が完了したか否かを判断してもよい（６０）。
【００４６】
実施形態では、データ移動は、更新されたクラス内に空き領域があることを条件とする。更新されたクラス内のサーバが空き領域を有さない場合、メタデータサーバは、そのクラス内の各サーバから収集される領域ダイナミックパラメータクラスが時間の経過に伴って変更される場合、失敗した複製を再試行することになる。
【００４７】
２．４  異なるクラスへのファイルの関連付け
図４は、ファイルを新しいまたは異なるクラスに再関連付けするシステムマネージャクライアントを示す。ファイルは、いくつかの理由により新しいクラスまたは異なるクラスに再関連付けすることができる。例えば、映像ファイルへの読み取りアクセス数が増大するにつれて、データ記憶装置クラスタ内のそのファイルの値は増大する。頻繁に要求されるファイルを、高速の中央演算処理装置およびネットワークインタフェースを有するサーバからなるクラスに再割り当てすることにより、そのクラスタは、映像がより多数のクライアントで再生されるように、読み取り要求にサービス提供することが可能である。そのクラスがより高い表現カウントも有する場合、ファイルのより多数のコピーがクラスタ内に分散して保持され、これによっても、ファイルを読み取るクライアントにより多数のファイルが提供されることになる。
【００４８】
新しいクラスへのファイルの再割り当ては、ファイルがアクセスされている間に実行することができる。本開示では、用語「再関連付け」および「再割り当て」は同義である。
【００４９】
実施形態では、システムマネージャクライアント１０２は、新しいクラス識別子を含むファイル属性を更新するリモートプロシージャ要求を名前空間マネージャ１０４に対して行う（１０）。名前空間マネージャは、クラスマネージャに対して新しいクラスを有効にする（１１、１２）。
【００５０】
ファイルに関連付けられたデータチャンク毎に、名前空間マネージャは、データチャンクを新しいクラス識別子に再割り当てすることをサーバマネージャに通知する（１５）。データチャンク毎に、サーバマネージャは、新しいクラス内の最良可能性のサーバセットを計算し、暗黙的に定義される複製ファクタ２を有する古いクラス内に特定のデータイメージを保持する各サーバ（２０、４０）に、そのデータを、データサーバ２１の真上に示されるように、より高い複製ファクタ４を有する新しいクラスの最適に利用可能なサーバセット（２１、２２、４１、４２）に移動する（並列して）ように要求する。
【００５１】
３．０  実施メカニズム−ハードウェア概説
図６は、本発明の実施形態を実施し得るコンピュータシステム６００を示すブロック図である。コンピュータシステム６００は、情報を通信するためのバス６０２または他の通信機構と、バス６０２に結合され、情報を処理するプロセッサ６０４とを含む。コンピュータシステム６００は、バス６０２に結合され、情報およびプロセッサ６０４により実行される命令を記憶する、ランダムアクセスメモリ（ＲＡＭ）または他のダイナミック記憶装置等のメインメモリ６０６も含む。メインメモリ６０６は、プロセッサ６０４により実行される命令の実行中、一時変数または他の中間情報を記憶するためにも使用し得る。コンピュータシステム６００は、バス６０２に結合され、プロセッサ６０４の静的情報および命令を記憶する読み取り専用メモリ（ＲＯＭ）６０８または他のスタティック記憶装置をさらに含む。磁気ディスクまたは光ディスク等の記憶装置６１０が設けられ、バス６０２に結合されて、情報および命令を記憶する。
【００５２】
コンピュータシステム６００は、バス６０２を介して、コンピュータユーザに情報を表示するための陰極線管（ＣＲＴ）等のディスプレイ６１２に結合することができる。英数字キーおよび他のキーを含む入力装置６１４が、バス６０２に結合されて、情報およびコマンド選択をプロセッサ６０４に伝達する。別の種類のユーザ入力装置は、方向情報およびコマンド選択をプロセッサ６０４に伝達すると共に、ディスプレイ６１２上でのカーソルの移動を制御する、マウス、トラックボール、カーソル方向キー等のカーソル制御装置６１６である。この入力装置は通常、２軸、すなわち第１の軸（例えば、ｘ）および第２の軸（例えば、ｙ）において自由度２を有し、装置が平面内の位置を特定できるようにする。
【００５３】
本発明は、本明細書において説明した技法を実施するコンピュータシステム６００の使用に関する。本発明の一実施形態によれば、これら技法は、プロセッサ６０４がメインメモリ６０６内に含まれる１つまたは複数の命令の１つまたは複数のシーケンスを実行することに応答して、コンピュータシステム６００により実行される。そのような命令は、記憶装置６１０等の別の機械読み取り可能な記録媒体からメインメモリ６０６に読み込んでもよい。メインメモリ６０６内に含まれた命令シーケンスの実行により、プロセッサ６０４は、本明細書において説明されるプロセスステップを実行する。他の実施形態では、ソフトウェア命令に代えて、またはソフトウェア命令と組み合わせて、ハードワイヤード回路を使用して本発明を実施してもよい。したがって、本発明の実施形態は、ハードウェア回路とソフトウェアとのいかなる特定の組み合わせにも限定されない。
【００５４】
本明細書において使用される用語「機械読み取り可能な記録媒体」は、機械を特定の様式で動作させるデータの提供に関わる任意の媒体を指す。コンピュータシステム６００を使用して実施される実施形態では、様々な機械読み取り可能な記録媒体が、例えば、実行のために命令をプロセッサ６０４に提供する際に関わる。そのような媒体は、記憶媒体および伝送媒体を含むが、これらに限定されない任意の形態をとり得る。記憶媒体は、不揮発性媒体および揮発性媒体の両方を含む。不揮発性媒体は、例えば、記憶装置６１０等の光ディスクまたは磁気ディスクを含む。揮発性媒体は、メインメモリ６０６等のダイナミックメモリを含む。伝送媒体は、バス６０２を構成するワイヤを含め、同軸ケーブル、銅線、および光ファイバを含む。伝送媒体は、電波および赤外線によるデータ通信中に生成されるような音波または光波の形態をとってもよい。そのようなすべての媒体は、媒体により搬送された命令を、命令を機械に読み込む物理的な機構により検出できるように明確でなければならない。
【００５５】
一般的な形態の機械読み取り可能な記録媒体としては、例えば、フロッピー（登録商標）ディスク、フレキシブルディスク、ハードディスク、磁気テープ、他の任意の磁気媒体、ＣＤ−ＲＯＭ、他の任意の光学媒体、パンチカード、紙テープ、パターンになった穴を有する他の任意の物理的な媒体、ＲＡＭ、ＰＲＯＭ、ＥＰＲＯＭ、フラッシュＥＰＲＯＭ、他の任意のメモリチップまたはカートリッジ、後述する搬送波、またはコンピュータが読み出し可能な他の任意の媒体が挙げられる。
【００５６】
様々な形態の機械読み取り可能な記録媒体が、実行のために１つまたは複数の命令の１つまたは複数のシーケンスをプロセッサ６０４に搬送する際に関わり得る。例えば、命令をまず、リモートコンピュータの磁気ディスクに搬送し得る。リモートコンピュータは、この命令をダイナミックメモリにロードし、モデムを使用し電話回線を介して送信し得る。コンピュータシステム６００にローカルなモデムが、電話回線上のデータを受信し、赤外線送信器を使用して赤外線信号に変換し得る。赤外線検出器が、赤外線信号で搬送されたデータを受信し、適切な回路がデータをバス６０２上に配置し得る。バス６０２は、データをメインメモリ６０６に搬送し、メインメモリ６０６から、プロセッサ６０４は命令を検索して実行する。メインメモリ６０６が受信した命令は、任意的に、プロセッサ６０４による実行の前または後に、記憶装置６１０に記憶し得る。
【００５７】
コンピュータシステム６００は、バス６０２に結合された通信インタフェース６１８も含む。通信インタフェース６１８は、ローカルネットワーク６２２に結合されたネットワークリンク６２０への双方向データ通信結合を提供する。例えば、通信インタフェース６１８は、データ通信接続を対応する種類の電話回線に提供する統合サービスデジタル網（ＩＳＤＮ）カードまたはモデムであり得る。別の例として、通信インタフェース６１８は、データ通信接続を互換性ＬＡＮに提供するローカルエリアネットワーク（ＬＡＮ）カードであり得る。無線リンクを実施してもよい。任意のそのような実施態様では、通信インタフェース６１８は、様々な種類の情報を表すデジタルデータストリームを搬送する電気信号、電磁信号、または光信号を送受信する。
【００５８】
ネットワークリンク６２０は通常、１つまたは複数のネットワークを通して他のデータ装置へのデータ通信を提供する。例えば、ネットワークリンク６２０は、ローカルネットワーク６２２を通してホストコンピュータ６２４またはインターネットサービスプロバイダ（ＩＳＰ）６２６により操作されるデータ機器への接続を提供し得る。そして、ＩＳＰ６２６は、現在では一般に「インターネット」６２８と呼ばれる世界規模パケットデータ通信網を介してデータ通信サービスを提供する。ローカルネットワーク６２２およびインターネット６２８は両方とも、デジタルデータストリームを搬送する電気信号、電磁信号、または光信号を使用する。デジタルデータをコンピュータシステム６００に搬送し、デジタルデータをコンピュータシステム６００から搬送する様々なネットワークを通る信号およびネットワークリンク６２０上にあり、通信インタフェース６１８を通る信号は、情報を搬送する例示的な形態の搬送波である。
【００５９】
コンピュータシステム６００は、ネットワーク、ネットワークリンク６２０、および通信インタフェース６１８を通して、プログラムコードを含むメッセージの送信とデータの受信を行うことができる。インターネットの例では、サーバ６３０は、インターネット６２８、ＩＳＰ６２６、ローカルネットワーク６２２、および通信インタフェース６１８を通してアプリケーションプログラムのためのコードの要求を送信するようにしてもよい。
【００６０】
受信されたコードは、受信時にプロセッサ６０４により実行してもよく、かつ／または後で実行するために記憶装置もしくは他の不揮発性記憶装置に記憶してもよい。このようにして、コンピュータシステム６００は、搬送波の形態でアプリケーションコードを取得することができる。
【００６１】
４．０  拡張例および代替例
上記明細書では、本発明の実施の形態を、実施の形態毎に異なり得る多くの特定の詳細を参照して説明した。したがって、本発明であるもの、および本出願人等により本発明として意図されるものを独占的かつ排他的な指標は、特許請求の範囲であって、いかなるその後の修正も含め、このような特許請求の範囲が発行される特定の形態で、本願から発行される特許請求の範囲である。そのような特許請求の範囲内に含まれる用語について本明細書に明白に記載された定義はいずれも、特許請求の範囲内で使用されるその用語の意味を決定する。したがって、請求項内で明白には記載されていない限定、要素、特性、特徴、利点、および属性のいずれも、そのような請求項の範囲を限定するものではない。したがって、明細書及び図面は限定の意味ではなくむしろ例示の意味で考えられるべきである。
【図１】
0005411250.tif 000002
【図２】
0005411250.tif 000003
【図３】
0005411250.tif 000004
【図４】
0005411250.tif 000005
【図５Ａ】
0005411250.tif 000006
【図５Ｂ】
0005411250.tif 000007
【図６】
0005411250.tif 000008