(57)【要約】  自動リング発見及び設定のためのコンピュータ実装方法及びシステムが提供される。代表的な方法はデータノードをネットワークに接続するステップを含み得る。接続された場合に、データノードはネットワークに対して通告を定期的に送信するとともに、１つ又は複数のデータリングと関連付けられた更なるデータノードの１つ又は複数の更なる通告に関してネットワークを監視する。監視は所定期間の間実行される。もし１つ又は複数の更なる通告が受信されるならば、データノードはあらかじめ定義された基準を使用してどのデータリングに加入するかを判定する。あらかじめ設定された基準は、データリングにおけるデータノードの数、データリングにおける空き領域、データノードの許容数、データノードとデータリングのソフトウェアバージョンの互換性を含み得る。その代りに、もし通告が所定期間内に受信されないならばデータノードは新しいデータリングを作成する。
2016527741.tif 000002
【特許請求の範囲】
【請求項１】
データノードをデータリングに自動加入するための方法であって、当該方法が、
データノードをネットワークに接続するステップと、
前記データノードにより、前記ネットワークに対して、通告を定期的に送信するステップと、
前記データノードにより、所定期間の間、１つ又は複数のデータリングと関連付けられた１つ又は複数の更なるデータノードの１つ又は複数の更なる通告を監視するステップと、
前記監視するステップに基づいて、前記データノードを前記データリングに選択的に加入するステップとを含む、方法。
【請求項２】
前記通告が、前記データノードが前記データリングに加入されるかどうかの通知を含む、請求項１に記載の方法。
【請求項３】
前記１つ又は複数のデータリングと関連付けられた前記１つ又は複数の更なるデータノードの前記１つ又は複数の更なる通告が、下記の、リング識別子、データノード識別子、複数の属性、ソフトウェアバージョン、及びノードの許容数のうちの１つ又は複数を含む、請求項１に記載の方法。
【請求項４】
前記データノードが、もし前記１つ又は複数の通告が受信されるならば、前記データリングに加入するように動作可能である、請求項１に記載の方法。
【請求項５】
もし通告が前記所定期間内に受信されないならば、新しいデータリングを作成するステップを更に含む、請求項１に記載の方法。
【請求項６】
前記１つ又は複数の通告が、新しいデータリングの作成に応答して更新される、請求項５に記載の方法。
【請求項７】
前記１つ又は複数のデータリングと関連付けられた前記１つ又は複数の通告に基づいて、前記加入するステップのための前記データリングを選択するステップを更に含む、請求項１に記載の方法。
【請求項８】
前記選択するステップが、あらかじめ定義された基準を使用して実行され、前記あらかじめ定義された基準が、下記の、前記１つ又は複数のデータリングの容量、前記１つ又は複数のデータリングにおけるノードの数、前記１つ又は複数のデータリングにおける空き領域の量、前記データノードと前記１つ又は複数のデータリングのソフトウェアバージョンのそれぞれの互換性のうちの１つ又は複数を含む、請求項７に記載の方法。
【請求項９】
前記選択するステップが無作為に実行される、請求項７に記載の方法。
【請求項１０】
前記データノードが、自動加入機能が無効にされる場合に、前記１つ又は複数のデータリングを無視するように動作可能である、請求項１に記載の方法。
【請求項１１】
データノードをデータリングに自動加入するためのシステムであって、当該システムが、
データノードをネットワークに接続し、
前記データノードにより、前記ネットワークに対して、通告を定期的に送信し、
前記データノードにより、所定期間の間、１つ又は複数のデータリングと関連付けられた１つ又は複数の更なるデータノードの１つ又は複数の更なる通告を監視し、
前記監視することに基づいて、前記データノードを前記データリングに選択的に加入するように構成されるプロセッサと、
前記プロセッサに通信可能に連結されるとともに、前記１つ又は複数のデータリングと関連付けられたデータを保存するように構成されるデータベースとを備える、システム。
【請求項１２】
前記データノードと関連付けられた記憶装置が、前記加入のあとで前記データリングに利用可能になる、請求項１１に記載のシステム。
【請求項１３】
前記データリングの設定が、前記加入のあとで前記データノードによって共有される、請求項１１に記載のシステム。
【請求項１４】
前記１つ又は複数のデータリングにおけるデータノードの設定が、ユーザにより確認可能である、請求項１１に記載のシステム。
【請求項１５】
前記プロセッサが、１つ又は複数のデータリングと関連付けられた前記１つ又は複数の通告が前記所定期間内に受信されることを判定するように更に構成される、請求項１１に記載のシステム。
【請求項１６】
前記プロセッサが、前記所定期間内の、１つ又は複数のデータリングと関連付けられた前記１つ又は複数の通告の欠如を判定するように更に構成される、請求項１１に記載のシステム。
【請求項１７】
前記プロセッサが、新しいデータリングを作成するように更に構成され、前記新しいデータリングが、下記の、前記１つ又は複数の通告の欠如、前記１つ又は複数のデータリングと前記データノードの互換性、及び前記１つ又は複数のデータリングにおけるメンバーの許容数のうちの１つ又は複数に基づいて作成される、請求項１１に記載のシステム。
【請求項１８】
前記プロセッサが、前記作成に応答して前記新しいデータリングに対するリング識別子を生成し、前記新しいデータリングによって前記１つ又は複数の通告を更新するように更に構成される、請求項１６に記載のシステム。
【請求項１９】
前記データノードが、自動加入機能の無効化に応答して、前記１つ又は複数のデータリングを無視するように動作可能である、請求項１１に記載のシステム。
【請求項２０】
命令を含む非一時的なコンピュータ読み取り可能な媒体であって、前記命令が１つ又は複数のプロセッサにより実行された場合に、下記の、
データノードをネットワークに接続する動作と、
前記データノードにより、前記ネットワークに対して、通告を定期的に送信する動作と、
前記データノードにより、所定期間の間、１つ又は複数のデータリングと関連付けられた１つ又は複数の更なるデータノードの１つ又は複数の更なる通告を監視する動作と、
前記監視する動作に基づいて、前記データノードを前記データリングに選択的に加入する動作とを実行する、コンピュータ読み取り可能な媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
この開示は、一般に、データ管理に関し、より具体的には、自動データクラスタ発見及び設定に関する。
【０００２】
本願は、２０１３年５月２１日に出願されるとともに、“Automatic  Data  Ring  Discovery  and  Configuration”と表題が付けられた米国仮特許出願第６１／８２５，８９０号に対する利益を主張する。前述の出願の開示は、全ての目的のために、参照によりここに組み込まれている。
【背景技術】
【０００３】
この項で説明されるアプローチは、実行されることができるであろうが、必ずしも、以前に考えられたか又は実行されたアプローチであるというわけではない。したがって、特に明記されない限り、この項で説明されるアプローチのどれもがこの項におけるそれらの単なる包含のせいで従来技術としての資格を得ると仮定されるべきでない。
【０００４】
いくつかのデータ記憶構造は、（同様にデータノードとして知られている）データ記憶装置がデータクラスタを形成することを必要とし得る。新しいデータノードは、現存するクラスタを拡張するために、又は新しいクラスタを形成するために使用されることができる。新しいデータノードが配置される場合に、新しいデータノードは、現存するクラスタに加入することができるか、又は、もしクラスタが存在しないならば、新しいクラスタを形成することができる。従来、現存するデータクラスタへのそのような追加は、手動で設定される。手動の設定は、時間がかかるとともに、資格のあるスタッフがそれを実行することを要求し得る。
【０００５】
さらに、従来の記憶システムにおいて、新しい記憶装置が追加される場合に、新しい記憶装置は、１つ又は複数のネットワークシェアをネットワークに向けてエクスポートするとともに、各ネットワークシェアはそれ自身の名前空間を有する。したがって、ユーザは、多くの場合リソースのミス設定及び非能率的使用をもたらすこれらのネットワークシェアをどのように利用するかを決定しなければならない。
【発明の概要】
【課題を解決するための手段】
【０００６】
この概要は、詳細な説明において下記で更に説明される、単純化された形式における概念の選択を紹介するために提供される。この概要は、権利請求された主題の重要な機能又は本質的な機能を確認することを意図しておらず、そしてまた、権利請求された主題の範囲を判定する際の補助として使用されることも意図していない。
【０００７】
一実施例によれば、データリングに自動加入することが可能であるデータノードが提供される。データノードは、ネットワークに接続し得る。接続したあとで、データノードは、その存在及び状態を他のデータノードに通知するために、通告（advertisement）をネットワークに送信することができる。通告は、データノードに関係する情報を含むことができる。さらに、データノードは、他のデータノードにより同報通信された通告に関してネットワークを監視することができる。データリングに加入されたデータノードの通告は、リング識別子、データノード識別子、様々な属性、ソフトウェアバージョン、ノードの許容数などを含むことができる。
【０００８】
データノードは、所定期間の間、ネットワークを監視し続けることができる。もし通告が所定期間内に受信されないならば、データノードは、新しいデータリングを作成する。もしいくつかの通告が所定期間内に受信されるならば、データノードは、受信された通告により示されたデータリングのうちの１つに加入する。複数のリングが検出される場合にどのデータリングに加入するかを判定するために、データノードは、様々なあらかじめ設定された基準を使用する。あらかじめ設定された基準のいくつかの実例は、データリングの容量、データリングにおけるノードの数、データリングがどのくらいの空き領域を有しているか、新しいデータノード及びリングのソフトウェアバージョンの互換性、又はこれら若しくは他の基準のあらゆる組み合わせを含むことができる。いくつかの実施例において、データノードは、どのデータリングに加入するかを無作為に選択する。
【０００９】
下記の説明及び図面は、１つ又は複数の態様の特定の実例となる特徴について、詳細に説明する。しかしながら、これらの特徴は、様々な態様の原理が使用され得る様々な方法のうちのほんの少しを表しており、そして、この説明は、全てのそのような態様、及びそれらの等価物を含むことを意図している。
【００１０】
実施例は、同様の参照符号が同様の要素を表す添付図面の図において、限定ではなく一例として、例示される。
【図面の簡単な説明】
【００１１】
【図１】いくつかの実施例による単純化されたコンピュータネットワーク基盤を示す。
【図２】データリングに加入する新しいデータノードの図形表現を示す。
【図３】新しいデータリングを作成する新しいデータノードの図形表現を示す。
【図４】新しいデータノードをコンピュータネットワーク基盤に追加する手順を例示するフローチャートである。
【図５】いくつかの実施例によるデータノードをデータリングに自動加入するための別の方法を例示するフローチャートである。
【図６】データノードをデータリングに自動加入するためのシステムのモジュールを示す構成図である。
【図７】ここで論じられた方法のうちのいずれか１つ又は複数を機械に実行させるための一組の命令が実行されることができる、コンピュータシステムの代表的な電子的形態における機械のためのコンピューティング装置の図表示を示す。
【発明を実施するための形態】
【００１２】
下記の詳細な説明は、詳細な説明の一部分を形成する添付図面に対する参照を含む。それらの図は、代表的な実施例に従った説明図を示す。“実例”としてここで同様に参照されるこれらの代表的な実施例は、当業者が本主題を実施することを可能にするように、十分な詳細において説明される。実施例は結合されることができ、他の実施例が利用されることができ、又は構造上の変更、論理的な変更、及び電気的な変更が、権利請求されたものの範囲からはずれずに行われることができる。
【００１３】
ここで開示されたアプローチ及び原理は、コンピュータネットワーク基盤内のデータリングに対する自動発見及びデータノードの自動加入のためのコンピュータ実装方法及びシステムに関係する。コンピュータネットワーク基盤は、様々なデータオブジェクトを保存するとともに、他のノードからのそれらのデータオブジェクトに対するアクセスを可能にするための記憶リソースをそれぞれが有する複数のデータノードを含む。さらに、単一のノードの記憶リソースは、ハードドライブ、ソリッドステートドライブ、又は、ＲＡＭ（ランダムアクセスメモリ）若しくはＲＯＭ（読出し専用メモリ）のような他のメモリ装置のうちの１つ又は複数を含み得る。データノードは、グローバルな名前空間を有するデータリングに加入され得る。
【００１４】
新しいデータノードがコンピュータネットワーク基盤に追加される場合に、それは、コンピュータネットワーク基盤に存在するデータリングを自動的に発見し得るとともに、あらかじめ定義された基準に従って、発見されたリングのうちの１つに加入し得る。もしデータリングが発見されないならば、データノードは、新しいデータリングを自動的に作成し得る。
【００１５】
本開示は、データリングに対する自動発見及びデータノードの自動加入のためのシステム及び方法を提供する。データノードは、共通のグローバルな名前空間を有する共通記憶プールを形成するデータリングに加入され得る。そのようなリングを形成するため、又は新しいデータノードを現存するリングに加入するために、データノードは、現存するデータリングを自動的に発見するとともに、それらのうちの１つに自動的に加入し得る。もしデータリングが発見されないならば、データノードは、新しいデータリングを自動的に作成し得る。したがって、リング作成、及び新しいデータノードをリングに加入することに関連する手動操作が、回避され得る。このプロセスは、図１を参照して更に詳細に例示される。
【００１６】
図１は、いくつかの実施例による単純化されたコンピュータネットワーク基盤１００である。コンピュータネットワーク基盤１００は、ノードＡ〜Ｆ１３０を備えるデータリング１２０を含む。ノードＡ〜Ｆ１３０のそれぞれは、ネットワークアドレスを維持するとともに、データオブジェクトを保存して他のノードと共有することができる、あらゆる適切なネットワーキング要素を含み得る。一例の実施例において、ノードＡ〜Ｆ１３０は、コンピュータ、サーバ、ラップトップ、タブレットコンピュータ、シンクライアント、又は、データを保存して共有することに適切なあらゆる他の電子コンピューティング装置のことを指す。さらに、ノードＡ〜Ｆ１３０のそれぞれは、ハードディスクドライブ、ソリッドステートドライブ、ＲＡＭ、ＲＯＭ、フラッシュメモリなどのような複数の記憶装置を含み得る。
【００１７】
図１で示されたように、データリング１２０は、ノードＡ〜Ｆ１３０を含み得る。データリング１２０におけるノードＡ〜Ｆ１３０の間の論理結合は、網の目の接続形態を形成し得る。したがって、各ノード１３０は、データリング１２０の各ノード１３０とデータを共有し得る。例えば、ノードＡ及びＢ１３０と関連付けられたデータ通信は、データリング１２０の他のノードに至る矢印により示される。ノードＡ〜Ｆ１３０は、例えば、ＬＡＮ又はＷＡＮのようなネットワークを介して通信し得る。
【００１８】
データリング１２０は、ノードＡ〜Ｆ１３０と関連付けられた共通のグローバルな名前空間を有し得る。共通のグローバルな名前空間のせいで、ノードＡ〜Ｆ１３０は、単一の実体としてユーザに提示され得る。したがって、従来のシステムと対照的に、データノードＡ〜Ｆ１３０は、結合されて全ての構成ノードの容量を有する共通記憶プールになり得る。このように、データノード１３０は、非常に大きなファイルシステムを潜在的に作るように、結合され得る。
【００１９】
リング１２０は、管理システム１５０と、ネットワーク１１０を通して通信し得る。管理システム１５０は、リング１２０の設定を制御するとともに、リング１２０における様々なプロセスを管理し得る。新しいノード１４０が例えばＬＡＮのようなコンピュータネットワーク基盤１００に接続される場合に、それは、リング１２０に加入し得るか、又はデータノードをデータリングに自動加入するためのシステム６００を使用して新しいリングを形成し得る。
【００２０】
ネットワーク１１０は、インターネット、又は、装置間でデータを伝達することが可能であるあらゆる他のネットワークを含むことができる。適切なネットワークは、例えば、ローカルイントラネット、ＰＡＮ（パーソナルエリアネットワーク）、ＬＡＮ（ローカルエリアネットワーク）、ＷＡＮ（ワイドエリアネットワーク）、ＭＡＮ（メトロポリタンエリアネットワーク）、仮想プライベートネットワーク（virtual  private  network：ＶＰＮ）、ストレージエリアネットワーク（storage  area  network：ＳＡＮ）、フレームリレー接続、高度インテリジェントネットワーク（Advanced  Intelligent  Network：ＡＩＮ）接続、同期式光ネットワーク（synchronous  optical  network：ＳＯＮＥＴ）接続、デジタルＴ１、Ｔ３、Ｅ１、若しくはＥ３ライン、デジタルデータサービス（Digital  Data  Service：ＤＤＳ）接続、ＤＳＬ（デジタル加入者回線）接続、イーサネット（登録商標）接続、ＩＳＤＮ（総合デジタル通信網）回線、Ｖ．９０、Ｖ．３４、若しくはＶ．３４ｂｉｓのような電話回線ポートのアナログモデム接続、ケーブルモデム、ＡＴＭ（非同期転送モード）接続、又はＦＤＤＩ（光ファイバ分散データインタフェース）若しくはＣＤＤＩ（銅線分散データインタフェース）接続、のうちのいずれか１つ又は複数を含むことができるか、又は、これらのうちのいずれか１つ又は複数とインタフェースすることができる。さらに、通信は、同様に、ＷＡＰ（ワイヤレスアプリケーションプロトコル）、ＧＰＲＳ（汎用パケット無線サービス）、ＧＳＭ（グローバルシステム・フォー・モバイルコミュニケーション）、ＣＤＭＡ（符号分割多元接続）若しくはＴＤＭＡ（時分割多元接続）、携帯電話ネットワーク、ＧＰＳ（全地球測位システム）、ＣＤＰＤ（セルラーデジタルパケットデータ）、ＲＩＭ（リサーチインモーションリミテッド）複信方式ページングネットワーク、ブルートゥース無線、又はＩＥＥＥ８０２．１１ベースの無線周波数ネットワークを含む様々な無線ネットワークのうちのいずれかに対するリンクを含み得る。ネットワーク１１０は、ＲＳ−２３２シリアル接続、ＩＥＥＥ−１３９４（ファイヤーワイヤー）接続、ファイバチャネル接続、ＩｒＤＡ（赤外線）ポート、ＳＣＳＩ（小規模コンピュータシステムインタフェース）接続、ＵＳＢ（ユニバーサルシリアルバス）接続、又は他の有線若しくは無線、デジタル若しくはアナログインタフェース若しくは接続、メッシュ若しくはデジ（登録商標）ネットワーキングのうちのいずれか１つ又は複数を更に含むことができるか、又は、これらのうちのいずれか１つ又は複数と更にインタフェースすることができる。ネットワーク１１０は、データ通信のために相互接続されるデータ処理ノードのネットワークを含む。
【００２１】
ここで図２を参照すると、新しいノード２４０は、ネットワーク２１０に接続され得る。ネットワーク２１０は、他の装置、データノード、データリングなどを含み得る。図２が示すように、ネットワーク２１０は、リング２２０、及びノード２２６を含む。リング２２０は、同様に、ノード２２２、及びノード２２４を含む。新しいノード２４０がネットワーク２１０に接続されたあとで、新しいノード２４０は、ネットワーク上の全ての装置に対して新しいノード２４０がネットワーク２１０に追加されたということを通告するために、マルチキャストプロトコルを使用し得る。通告することは新しいノードに限定されず、全てのノードは、既にリングのメンバーであるそれらのノードを含めて、自身を常に通告する、ということが理解されることになる。各ノードは、様々なマルチキャストプロトコルを使用して自身を通告することに関与する。例えば、マルチキャストドメインネームシステム（Multicast  Domain  Name  System：ｍＤＮＳ）、及びＤＮＳサービス発見（DNS  Service  Discovery：ＤＮＳ−ＳＤ）が、他の装置に対して新しいノード２４０の存在を通告するために使用されることができる。
【００２２】
ｍＤＮＳプロトコルは、ＲＦＣ（Request  for  Comments）６７６２として公表されるとともに、ＤＮＳサービス発見プロトコルは、ＲＦＣ６７６３として公表されており、それらは、全ての目的のために、それらの全体において参照によりここに組み込まれている。
【００２３】
新しいノード２４０は、通告２４２をネットワーク２１０に送信し得る。通告２４２は、ノードＩＤ、ソフトウェアバージョン、及び他の属性を含み得る。もし新しいノード２４０がリングＩＤを有していないならば、新しいノード２４０は何も通告しないかもしれず、そして、新しいノード２４０がリングに加入したあとで、リングＩＤは更新され得る。
【００２４】
自動発見は、ネットワーク２１０上の他の装置により生成された通告をリスニング（listening）する新しいノード２４０によって始まり得る。
【００２５】
リング２２０に加入されたノード２２２及び２２４からの通告２３２及び２３４は、単一のノード２２６により送信される通告２３６とは異なり得る。全ての通告がノードに関連する情報（例えば、ノードＩＤ、ソフトウェアバージョンなど）を含むことができるが、リング２２０に加入されたノード２２２及び２２４は、同様に、リング情報２３８を含む。リング情報２３８は、リングＩＤ、ノードの許容数、及び他の属性を含むことができる。
【００２６】
新しいノード２４０は、しばらくの間リスニングするとともに、ノード２２２、２２４、２２６からの通告２３２、２３４、２３６をヒアリング（hearing）したあとで、リング２２０に加入することを決定し得る。一方、新しいノード２４０は、あらかじめ設定された期間の間、ネットワーク２１０に関して監視（又はリスニング）し得るとともに、通告を受信しないかもしれない。
【００２７】
ここで図３を参照すると、ネットワーク２１０は、装置又はリングを全く有していないかもしれない。もし新しいノード２４０が通告２４２を送信し、そして通告をヒアリングしないならば、新しいノード２４０は、新しいリングＩＤを作成して、自身を新しいリングのメンバーにすることができ、したがって、図３において例示されたように、新しいリングの唯一のメンバーになる。新しいノード２４０が新しいリングを作成したあとで、新しいノード２４０は、新しいリングＩＤによって新しいノード２４０の通告を更新することができる。一度新しいノード２４０がリングの参加者になれば、新しいノード２４０は、自身を通告し続ける一方で、新しい通告に関して監視することを中止する。したがって、通告に関してリスニングすることは、まだリングのメンバーではないノードにより実行される、ということが理解されることになる。
【００２８】
図４は、ネットワークにおけるリングの自動発見、及び新しいノードによる新しいリングの自動作成に関連する動作フロー４００を示す。動作４１０において、新しいデータノードが、例えばＬＡＮのようなネットワークに接続され得る。動作４１５において、新しいノードが、通告することを開始し得る。
【００２９】
動作４２０において、新しいデータノードが接続されるネットワークにおける装置は、新しいデータノードについて通知されることができる。
【００３０】
動作４３０において、データノードは、あらかじめ設定された期間の間、他の装置及び／又はリングの通告に関して監視し得る。動作４４０において、期間内に通告が受信されたかどうかが判定され得る。もし通告が受信されないならば、動作４８０において、データノードは新しいデータリングを作成し得る。新しいリングの作成によって、リングＩＤが生成され得る。その場合に、通告は新しいリングＩＤによって更新される。
【００３１】
しかしながら、もし通告が受信されたならば、それは動作４５０において判定され得る。もし受信された全ての通告が同じリングにおけるデータノードから来ているならば、動作４６０において、データノードは、唯一の通告がそこから受信されるデータリングに加入し得る。リングに加入したあとで、リング属性を有する通告が更新されることができる。もし１つを超えるリングを特定する通告が受信されたならば、データノードは、動作４７０において、あらかじめ設定された基準に基づいて、どのデータリングに加入するかを判定することができる。新しいノードは、同様に、リングに加入しないことを選択し得るとともに、動作４８０において、新しいデータノードに基づいて新しいデータリングを作成し得る、ということが理解されるべきである。例えば、新しいノードは、リング属性が新しいノードと互換性がない場合に、リングに全く加入しないことを決定し得る。あるいは、新しいノードは、現存するリングに加入しないとともに、新しいデータリングを作成しないことを決定し得る。その代りとして、ノードは、動作４１５を実行し続けるかもしれず、すなわち、加入するべきリングが存在するまで、又は他のリングが利用可能ではなくなるまで、通告することを続ける。
【００３２】
あらかじめ設定された基準は、様々な要素を含み得る。例えば、判定は、加入するノードのソフトウェアがリングの他のメンバーにより実行されるソフトウェアと互換性があるかどうかに基づいて実行されることができる。判定プロセスにおいて、他の要素が、同様に、考慮されることができ、例えば、リングにおけるデータノードの結合された空き領域が比較されることができる。最小の空き領域を有するリングが選択されることができる。あるいは、最小数のデータノードを有するリングが選択されることができる。
【００３３】
いくつかの実施例において、リングは、その自動加入機能を無効にされた状態にすることができる。このような場合には、新しいデータノードは、リングに自動的に加入しないかもしれない。したがって、自動加入機能を無効にされたリングは、新しいデータノードにより無視され得る。
【００３４】
いくつかの実施例において、特定の最大数のメンバーデータノードのみが、リングにより許容されることができる。この数は、リングと関連付けられたデータノードのソフトウェアバージョンに基づいていることができる。もし同じリングにおけるデータノードが異なる数のメンバーを許容するならば、リングにおけるメンバーの許容数は、最小数のメンバーを許容するデータノードにより決定される。
【００３５】
もし、何らかの理由で、データノードがリングにより拒絶されるならば、ノードは、再度自動発見のプロセスに入り得るとともに、拒絶しているリングを無視し得る。そのような場合において、加入するべきデータリングを判定するプロセスは、残っているリングの全体にわたって繰り返されることができる。
【００３６】
いくつかの実施例において、リングの無作為抽出を保証するために、リングは、無作為であり得るリングＩＤにより分類されることができる。例えば、ノードは、最初に、最も小さなＩＤを有するリングに加入しようとし得る。リングに加入するための前述の基準は、単にわずかな非網羅的な実例を表すとともに、他の基準が同様に使用されることができる、ということが理解されるべきである。
【００３７】
リングが選択される場合に、データノードは、動作４６０において、リングに加入し得る。新しいデータノードを加入したあとで、ノードの容量は、あらゆる設定を行わなくてもリングに利用可能になる。さらに、リングの構成はノードによって共有されることができ、例えばアクセス許可がノードに伝播されることができるとともに、リングと同期して維持されることができる。
【００３８】
図５は、データノードをコンピュータネットワーク基盤１００内のデータリングに自動加入するための方法５００を示すプロセスフローチャートである。方法５００は、ハードウェア（例えば、専用のロジック、プログラマブルロジック、及びマイクロコード）、ソフトウェア（例えば、汎用コンピュータシステム又は専用の機械上で動作するソフトウェアのなど）、又は両方の組み合わせを含み得るロジックにより実行され得る。１つの代表的な実施例において、処理ロジックは、データリングに自動加入することができるデータノードに存在するとともに、データノードの様々な要素は方法５００を実行することができる。前述のモジュールの実例は仮想的であることができ、モジュールにより実行されると言われる命令は、実際には、データノードにより読み出されて実行され得る、ということが当業者により認識されることになる。様々な要素がここで説明されるいろいろな動作の一部もしくは全部を実行するように構成され得るが、より少しであるか又はより多くの要素が提供され得るとともに、それでもやはり様々な実施例の範囲内に入る。
【００３９】
図５において示されたように、方法５００は、動作５１０において、データノードをローカルエリアネットワークに接続することによって始まり得る。ネットワークは、他のデータノード、データリング、及び接続された他の装置を有し得る。ネットワーク上の装置に新しいデータノードについて通知するために、データノードと関連付けられた情報が、マルチキャストプロトコルを使用してネットワークを介して送信され得る。この目的のために、マルチキャストＤＮＳ（Multicast  DNS）、ボンジュール（Bonjour）、ランデブープロトコル（Rendezvous  protocol）が使用され得る。通知は、リングＩＤ、ノードＩＤ、ソフトウェアバージョン、ノードの許容数、及びいくつかの他の属性を含む、新しいノード１４０に関連する様々な情報２２０を含み得る。ノードＩＤ及びリングＩＤは、固有であるとともに分類可能であることを保証される。動作５１５において、新しいノードは、新しいデータノードがリングに加入したあとでさえ持続する、通告することを開始し得る。動作５２０において、データノードは、データリングによる通告に関してネットワークを監視することを開始し得る。その監視は、あらかじめ設定された期間の間、継続し得る。動作５３０において、あらかじめ設定された期間内に、ネットワーク内のデータリングの通告が受信され得る。もし１つの通告だけが受信されるならば、動作５５０において、方法は、次に、データノードをデータリングに加入することを試みようとし始め得る。もし複数の通告が受信されるならば、動作５４０において、適切なデータリングが、予め定義された基準を使用して判定され得る。
【００４０】
様々な実施例において、あらかじめ定義された基準は、データリングにおけるデータノードの数、データリングにおける空き領域の量、データリングにおけるデータノードの許容数、データリングにおけるデータノードの実際の数、データノードとデータリングのソフトウェアバージョンの互換性などを含み得る。他の実施例において、データノードは、無作為なデータリングに加入され得る。もしその無作為なデータリングがデータノードを拒絶するならば、データノードは別の無作為なデータリングに加入しようと試み得るとともに、以後同じように繰り返す。動作５５０において、一度データリングが判定されれば、データノードはデータリングに加入し得る。いくつかの実施例において、データノードがデータリングに加入したあとで、データノードの中の記憶装置は、データリングと関連付けられたグローバルな名前空間に追加され得る。
【００４１】
図６は、特定の実施例による、データノードをデータリングに自動加入するためのシステム６００のモジュールを示す構成図である。具体的には、データノードをデータリングに自動加入するためのシステム６００は、プロセッサ６０５と、データベース６１０とを含むことができる。プロセッサ６０５は、マイクロコントローラ、中央演算処理装置（ＣＰＵ）などのような、プログラム可能なプロセッサを含むことができる。他の実施例において、プロセッサ６０５は、システム６００により実行される機能を実装するように設計された、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）のような特定用途向け集積回路（ＡＳＩＣ）又はプログラマブルロジックアレイ（ＰＬＡ）を含むことができる。プロセッサ６０５は、データノードをネットワークに接続するように構成されることができる。接続された場合に、データノードは、所定期間の間、ネットワークと関連付けられたデータリングからの通告を監視することができる。もし通告が受信されるならば、プロセッサ６０５は、あらかじめ定義された基準を使用してデータリングのうちの１つを選択することができるとともに、データノードを選択されたデータリングに自動加入することができる。データリングは、データノードに加入することを拒絶することができる。そのような場合、プロセッサ６０５は、データリングを監視して選択するステップを繰り返すことができる。もし通告が所定期間内に受信されないならば、又は、もしデータノードがデータリングによる拒絶、非適合性、若しくは他の理由のためにデータリングのうちのいずれにも加入することができないならば、新しいデータリングが、データノードに基づいて作成されることができる。データベース６１０は、１つ又は複数データリングと関連付けられたデータ、及び他の情報を保存することができる。
【００４２】
図７は、ここで論じられた方法のうちのいずれか１つ又は複数を機械に実行させるための一組の命令が実行されることができる、コンピュータシステム７００の代表的な電子的形態における機械のためのコンピューティング装置の図表示を示す。様々な代表的な実施例において、機械は、独立型装置として動作するか、又は、他の機械と接続される（例えば、ネットワーク化される）ことができる。ネットワーク化された配置において、機械は、サーバ−クライアントネットワーク環境におけるサーバ又はクライアントマシンとして、又は、ピアツーピア（分散型）ネットワーク環境におけるピアマシンとして、動作することができる。機械は、サーバ、パーソナルコンピュータ（ＰＣ）、タブレットＰＣ、セットトップボックス（ＳＴＢ）、ＰＤＡ、携帯電話、デジタルカメラ、携帯用音楽プレーヤ（例えば、ムービングピクチャーエキスパートグループ、オーディオレイヤ３のような、携帯用ハードドライブオーディオ装置）、ウェブ装置、ネットワークルータ、スイッチ、ブリッジ、又はその機械により実行されるべき動作を指定する一組の（一連の又は別の）命令のセットを実行することが可能であるあらゆる機械であり得る。さらに、単一の機械のみが例示される一方、用語“機械”は、同様に、ここで論じられた方法のうちのいずれか１つ又は複数を実行するために、個々に、若しくは共同で命令のセット（又は複数のセット）を実行する機械のあらゆる収集物を含むと解釈されるべきである。
【００４３】
実例のコンピュータシステム７００は、バス７１０を通して相互に通信する、プロセッサ又はマルチプロセッサ７０２、ハードディスクドライブ７０４、メインメモリ７０６、及びスタティックメモリ７０８を含む。コンピュータシステム７００は、同様に、ネットワークインタフェース装置７１２を含み得る。ハードディスクドライブ７０４は、ここで説明される方法又は機能のうちのいずれか１つ若しくは複数により具体化されるか又は利用される命令７２２の１つ又は複数のセットを記憶するコンピュータ読み取り可能な媒体７２０を含み得る。命令７２２は、同様に、メインメモリ７０６の中に、及び／又は、コンピュータシステム７００による命令７２２の実行の間のプロセッサ７０２の中に、完全に若しくは少なくとも部分的に存在することができる。メインメモリ７０６及びプロセッサ７０２は、同様に、機械読み取り可能な媒体を構成する。
【００４４】
コンピュータ読み取り可能な媒体７２０が、代表的な実施例において、単一の媒体であるように示される一方、用語"コンピュータ読み取り可能な媒体"は、命令の１つ又は複数のセットを記憶する単一の媒体又は複数の媒体（例えば、集中型若しくは分散型のデータベース、並びに／又は、関連するキャッシュ及びサーバ）を含むと解釈されるべきである。用語"コンピュータ読み取り可能な媒体"は、同様に、機械による実行のためのものであり、そして機械に本願の方法のうちの１つ又は複数を実行させる命令のセットを、記憶するか、コード化するか、若しくは運ぶことが可能であるあらゆる媒体、又は、そのような命令のセットにより利用されるか、若しくはそのような命令のセットと関連付けられるデータ構造を、記憶するか、コード化するか、若しくは運ぶことが可能であるあらゆる媒体を含むと解釈されるべきである。用語"コンピュータ読み取り可能な媒体"は、したがって、それに限定されないが、ソリッドステートメモリ、光学媒体、及び磁気媒体を含むと解釈されるべきである。そのような媒体は、限定はしないが、同様に、ハードディスク、フロッピー（登録商標）ディスク、ＮＡＮＤ又はＮＯＲフラッシュメモリ、デジタルビデオディスク、ＲＡＭ、ＲＯＭなどを含むことができる。
【００４５】
ここで説明された代表的な実施例は、コンピュータに、ハードウェアに、又はソフトウェアとハードウェアの組み合わせにインストールされたコンピュータ実行可能命令（例えばソフトウェア）を含む動作環境において実施されることができる。コンピュータ実行可能命令は、コンピュータプログラミング言語で書かれることができるか、又はファームウェアロジックにおいて具体化されることができる。もし承認された標準に適合するプログラミング言語で書かれたならば、そのような命令は、様々なハードウェアプラットホーム上で、そして様々なオペレーティングシステムに対するインタフェースのために実行されることができる。そのことに限定されないが、本方法を実施するためのコンピュータソフトウェアプログラムは、例えば、Ｃ、パイソン（Python）、ジャバスクリプト（Javascript）、Ｇｏ、又は、他のコンパイラ、アセンブラ、インタープリタ若しくは他のコンピュータ言語若しくはプラットフォームのような、あらゆる数の適切なプログラミング言語で書かれることができる。
【００４６】
このように、自動リング発見及び設定が説明される。特定の代表的な実施例を参照して実施例が説明されたが、様々な修正及び変更が、本願のより広い精神及び範囲からはずれずに、これらの代表的な実施例に行われ得ることは、明白であろう。したがって、明細書及び図面は、限定的な意味よりむしろ実例的な意味において評価されるべきである。
【図１】
2016527741.tif 000003
【図２】
2016527741.tif 000004
【図３】
2016527741.tif 000005
【図４】
2016527741.tif 000006
【図５】
2016527741.tif 000007
【図６】
2016527741.tif 000008
【図７】
2016527741.tif 000009
【国際調査報告】
2016527741.tif 000010