(57)【要約】ファイルシステム・コマンドは、第１のプロセッサによって送信され、第２のプロセッサによる同期のためである。ファイルシステム・コマンドは、第１のファイルシステムの第１のオブジェクトと同期する第２のファイルシステムの第２のオブジェクトを対象とする。エクスプレッションは、第１のプロセッサによって第２のファイルシステムへ送信され、第２のプロセッサによるファイルシステム・コマンドの認証のためである。エクスプレッションは、第２のファイルシステムの第４のオブジェクトと同期する第１のファイルシステムの第３のオブジェクトに基づいて生成される。
2020537246.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータの情報処理による方法であって、
第１のファイルシステムの第１のオブジェクトが第２のファイルシステムの第２のオブジェクトと同期するとして、前記第２のオブジェクトを対象としたファイルシステム・コマンドを、第１のプロセッサによって、そして、第２のプロセッサによる同期のために、送信することと、
前記第１のファイルシステムの第３のオブジェクトが前記第２のファイルシステムの第４のオブジェクトと同期するとして、前記第３のオブジェクトに基づいて生成されたエクスプレッションを、前記第１のプロセッサによって、そして、前記第２のプロセッサによる前記ファイルシステム・コマンドの認証のために、前記第２のファイルシステムへ送信することと
を含む方法。
【請求項２】
前記第３のオブジェクトの、前記第２のファイルシステムの前記第４のオブジェクトとの前記同期は、前記第３のオブジェクトの更新を受信することに基づき、前記第４のオブジェクトの更新を受信すると前記第４のオブジェクトは前記第１のファイルシステムの前記第３のオブジェクトと同期する、請求項１に記載の方法。
【請求項３】
前記エクスプレッションが副認証ファクタであり、前記方法は、
前記第１のプロセッサによって、そして、前記第２のプロセッサによる認証のために、主認証ファクタを送信すること
を更に含む、請求項１に記載の方法。
【請求項４】
前記第１のファイルシステムの前記第３のオブジェクトがパスワードでない、請求項１に記載の方法。
【請求項５】
前記第１のファイルシステムの前記第３のオブジェクトが前記第１のファイルシステムの第１のフォルダ内のファイルの数を記述する属性である、請求項１に記載の方法。
【請求項６】
前記第１のファイルシステムの前記第３のオブジェクトがメタデータ値である、請求項１に記載の方法。
【請求項７】
前記方法は、
前記第１のファイルシステムにおいて、前記第１のオブジェクトではない、第３のオブジェクトを検索することと、
前記第３のオブジェクトが前記第２のファイルシステムの第４のオブジェクトと同期することを検出することと、
前記第３のオブジェクトの属性を判断することと、
前記属性および前記第３のオブジェクトに関係する質問であって、前記第２のファイルシステムによる分析に基づいて真であると解決される質問を生成することと
を更に含む、請求項１に記載の方法。
【請求項８】
階層型ファイルシステムであって、
第１のメモリと、
１つまたは複数の第１のファイルシステム・オブジェクトからなる第１のファイルシステムを収容する第１のストレージ・デバイスと、
前記第１のメモリおよび前記第１のストレージ・デバイスに通信可能に結合された第１のプロセッサと
を備え、
前記第１のプロセッサは、
第１のファイルシステム・コマンドを受信することと、
前記第１のファイルシステム・コマンドが、第２のファイルシステムの第２のオブジェクトと同期する前記第１のファイルシステムの第１のオブジェクトを対象とすることを検出することと、
前記検出に基づいて、１つまたは複数の認証クレデンシャルを読み出すことと、
前記第１のファイルシステム・コマンドが削除コマンドであることを識別することと、
前記識別に基づいて、前記第１のファイルシステムに関係する言語エクスプレッションを生成することと、
前記言語エクスプレッション、前記認証クレデンシャル、および、前記第２のファイルシステムに対する第２の削除コマンドを前記第２のファイルシステムに与えることと
を実行するように構成される、階層型ファイルシステム。
【請求項９】
前記階層型ファイルシステムが、
第２のメモリと、
前記第１のファイルシステムと同期する１つまたは複数の第２のファイルシステム・オブジェクトからなる第２のファイルシステムを収容する第２のストレージ・デバイスと、
前記第２のメモリおよび前記第２のストレージ・デバイスに通信可能に結合された第２のプロセッサと、
を更に備え、
前記第２のプロセッサは、
前記与えられた第２の削除コマンドを受信することと、
前記受信した第２の削除コマンドに基づいて、前記認証クレデンシャルに基づく前記第２の削除コマンドの正当性を確認することと、
前記言語エクスプレッションを前記第２のファイルシステムと比較することと、
前記比較に基づいて、前記第２の削除コマンドを検証することと、
前記正当性を確認され検証された削除コマンドに基づいて、前記１つまたは複数の第２のファイルシステム・オブジェクトのうちの前記第２のオブジェクトを削除することと
を実行するように構成される、請求項８に記載の階層型ファイルシステム。
【請求項１０】
システムであって、
メモリと、
前記メモリに通信可能に結合されたプロセッサと
を備え、
前記プロセッサは、
第１のファイルシステムの第１のオブジェクトが第２のファイルシステムの第２のオブジェクトと同期するとして、前記第２のオブジェクトを対象としたファイルシステム・コマンドを、第１のプロセッサによって、そして、第２のプロセッサによる同期のために、送信することと、
前記第１のファイルシステムの第３のオブジェクトが前記第２のファイルシステムの第４のオブジェクトと同期するとして、前記第３のオブジェクトに基づいて生成されたエクスプレッションを、前記第１のプロセッサによって、そして、前記第２のプロセッサによる認証のために、前記第２のファイルシステムへ送信することと
を含む方法を実行するように構成される、システム。
【請求項１１】
前記第３のオブジェクトの、前記第２のファイルシステムの前記第４のオブジェクトとの前記同期は、前記第３のオブジェクトの更新を受信することに基づき、前記第４のオブジェクトの更新を受信すると前記第４のオブジェクトは前記第１のファイルシステムの前記第３のオブジェクトと同期する、請求項１０に記載のシステム。
【請求項１２】
前記エクスプレッションが副認証ファクタであり、前記方法は、
前記第１のプロセッサによって、そして、前記第２のプロセッサによる認証のために、主認証ファクタを送信すること
を更に含む、請求項１０に記載のシステム。
【請求項１３】
前記第１のファイルシステムの前記第３のオブジェクトがパスワードでない、請求項１０に記載のシステム。
【請求項１４】
前記第１のファイルシステムの前記第３のオブジェクトが前記第１のファイルシステムの第１のフォルダ内のファイルの数を記述する属性である、請求項１０に記載のシステム。
【請求項１５】
それによって具体化されるプログラム命令を有するコンピュータ可読記憶媒体を含むコンピュータ・プログラムであって、
コンピュータによって実行可能な前記プログラム命令は、前記コンピュータに、
第１のファイルシステムの第１のオブジェクトが第２のファイルシステムの第２のオブジェクトと同期するとして、前記第２のオブジェクトを対象としたファイルシステム・コマンドを、第１のプロセッサによって、そして、第２のプロセッサによる同期のために、送信することと、
前記第１のファイルシステムの第３のオブジェクトが前記第２のファイルシステムの第４のオブジェクトと同期するとして、前記第３のオブジェクトに基づいて生成されたエクスプレッションを、前記第１のプロセッサによって、そして、前記第２のプロセッサによる認証のために、前記第２のファイルシステムへ送信することと
を実行させる、コンピュータ・プログラム。
【請求項１６】
前記第３のオブジェクトの、前記第２のファイルシステムの前記第４のオブジェクトとの前記同期は、前記第３のオブジェクトの更新を受信することに基づき、前記第４のオブジェクトの更新を受信すると前記第４のオブジェクトは前記第１のファイルシステムの前記第３のオブジェクトと同期する、請求項１５に記載のコンピュータ・プログラム。
【請求項１７】
前記エクスプレッションが副認証ファクタであり、前記プログラム命令が、前記コンピュータに
前記第１のプロセッサによって、そして、前記第２のプロセッサによる認証のために、主認証ファクタを送信すること
を更に実行させるように、前記コンピュータによって実行可能である、請求項１５に記載のコンピュータ・プログラム。
【請求項１８】
前記第１のファイルシステムの前記第３のオブジェクトがパスワードでない、請求項１５に記載のコンピュータ・プログラム。
【請求項１９】
前記第１のファイルシステムの前記第３のオブジェクトが前記第１のファイルシステムの第１のフォルダ内のファイルの数を記述する属性である、請求項１５に記載のコンピュータ・プログラム。
【請求項２０】
前記第１のファイルシステムの前記第３のオブジェクトがメタデータ値である、請求項１５に記載のコンピュータ・プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ファイルシステムに関し、より詳細には、ファイル同期セキュリティを補強するためにファイルを利用することに関する。
【背景技術】
【０００２】
ファイル同期は、様々な地理的な位置の至るどころで、ファイルへのアクセスを提供するために営利企業において使用され得る。ファイル同期は、複数のデバイス上のファイルへのアクセスを、または、多数のクライアントを介してのファイルへのアクセスを、エンドユーザに提供するために、プライベートな設定において使用され得る。ファイル同期は、重要な患者情報の記録およびバックアップを提供するために医療目的で使用され得る。ファイル同期は、１つの位置が竜巻、地震、洪水、または、他の自然災害に遭った場合に、複数の位置にわたってデータを維持するために、災害復興の局面において使用され得る。
【発明の概要】
【０００３】
本発明の複数の態様によれば、方法、システム、および、コンピュータ・プログラム製品が提供される。ファイルシステム・コマンドは、第２のプロセッサによる同期のために、第１のプロセッサによって送信される。ファイルシステム・コマンドは、第１のファイルシステムの第１のオブジェクトと同期する第２のファイルシステムの第２のオブジェクトを対象とする。第２のプロセッサによる認証のために、第１のプロセッサによって第２のファイルシステムへエクスプレッションが送信される。このエクスプレッションは、第２のファイルシステムの第４のオブジェクトと同期する第１のファイルシステムの第３のオブジェクトに基づいて生成される。
【０００４】
また、本開示の複数の実施形態によれば、複数の態様は、階層型ファイルシステムを含み得る。この階層型ファイルシステムは、第１のメモリ、第１のストレージ・デバイス、および、第１のプロセッサを備える。第１のストレージ・デバイスは、１つまたは複数の第１のファイルシステム・オブジェクトからなる第１のファイルシステムを収容する。第１のプロセッサは、第１のメモリおよび第１のストレージ・デバイスと通信可能に結合される。第１のプロセッサは、第１のファイルシステム・コマンドを受信する。第１のプロセッサは、第１のファイルシステム・コマンドが第２のファイルシステムの第２のオブジェクトと同期する第１のファイルシステムの第１のオブジェクトを対象とすることを、検出する。第１のプロセッサは、この検出に基づいて１つまたは複数の認証クレデンシャルを読み出す。第１のプロセッサは、第１のファイルシステム・コマンドが削除コマンドであることを、識別する。第１のプロセッサは、この識別に基づいて、第１のファイルシステムに関連した言語エクスプレッションを生成する。第１のファイルシステムは、この言語エクスプレッションを第２のファイルシステムに提供する。第１のファイルシステムは、認証クレデンシャルを第２のファイルシステムに提供する。第１のファイルシステムは、第２の削除コマンドを第２のファイルシステムに提供する。
【０００５】
上記の概要は、本開示の記述された実施形態の各々または全ての具現化を記述することを意図しない。
【０００６】
本出願に含まれる図面は、本明細書に組み込まれ、本明細書の一部をなす。それらは、本開示の実施形態を例示し、本明細書の記述と共に、本開示の原則を説明するために役立つ。図面は、特定の実施形態を例示するのみで、本開示を制限するものではない。
【図面の簡単な説明】
【０００７】
【図１】複数の実施形態と一致するファイル同期を利用するコンピューティング・システムの１つの例を示す図である。
【図２】複数の実施形態と一致する、同期したコンテンツに基づいてファイルシステムを同期させる方法のフロー図である。
【図３】複数の実施形態と一致する、同期したコンテンツに基づいて、同期したファイルシステムにおける削除を実行する方法のフロー図である。
【図４】本開示の複数の実施形態に従って用いられ得るコンピュータ・システムの１つの例の代表的な重要コンポーネントを示す図である。
【図５】本発明の１つの実施形態によるクラウド・コンピューティング環境を示す図である。
【図６】本発明の１つの実施形態による複数の抽象化モデル層を示す図である。
【発明を実施するための形態】
【０００８】
本発明は様々な変更および代替形態を受け入れることができるが、それらの詳細は例として図面に示されており、詳しく記述されるであろう。しかしながら、本発明を、本明細書に記述されている特定の実施形態に限定する意図ではないことは理解されるべきである。逆に、本発明の技術範囲内の全ての変更、均等物、および、代替を含むことを意図している。
【０００９】
本開示の複数の態様は、ファイルシステムに関し、特に、ファイル同期セキュリティを補強するためにファイルを利用することに関する。本開示は、必ずしもそのような用途に限定されるというわけではなく、本開示の様々な態様は、この文脈を用いる様々な例についての説明によって理解されるであろう。
【００１０】
ファイルシステム（ファイルシステムとも称する）は、現代社会においてコンピューティングの重要な部分である。ファイルシステムは、１つのコンピュータ・システムに関する情報およびデータが長期間記憶される場所である。コンピュータ・システム上のファイルは、コンピューティングのあらゆる面での使用において重要であり得る。ある場合には、個人は、友人や家族の写真をファイルシステムに記憶する。他の場合には、長年の、科学研究または興味深い進歩および発見が、コンピュータ・システムの様々なファイルおよびフォルダに記憶される。更に他の場合には、例えば、報酬目的で労力をかけてきた、様々なマーケティング文書、著述文書、または、イメージ文書のような、現代の仕事の成果がファイルシステムに記憶される。
【００１１】
インターネットが至る所にあるようになるにつれて、ファイルシステムは、常に繋がるライフスタイルをサポートするべく成長してきた。ユーザは、彼らが使用するデバイス、および、それらのデバイスに記憶されたコンテンツが多くの場所において利用できることを期待する。コンピュータのハードウェアおよびソフトウェア製品は、これらの使用事例に適応するように様々な接続されたサービスを創造してきた。幾つかの状況において、コンピューティング・デバイスは、クラウドでホストされた複数のファイルのシームレスな統合を提供する。クラウドでホストされたファイルは、リモート・サーバに記憶されたファイルの直接の閲覧およびアクセスを許容するポータルまたはクラウド・インタフェースの形であり得る。クラウドでホストされたファイルは、幾つかのファイルがローカルに記憶され、他が遠隔で記憶される階層化された構成（例えば、クラウド階層化（cloud tiering）、または、階層としてのクラウド（cloud-as-tier））の形で相互に作用され得る。ネットワーク・アクセス可能なデバイスが、データのサブセットだけをローカルに記憶し得ると共に、遠隔に記憶されているデータの他のサブセットを閲覧し、これらにアクセスするためのシームレスな備えをし得るので、階層化は、デバイス記憶容量に対して、より大きな柔軟性を提供する。
【００１２】
ファイルシステムの他の利点は、データ冗長度（すなわち、データ・バックアップまたはファイルシステム・バックアップ）の形にある。ファイルシステム・バックアップは、コンピュータのユーザに、データ喪失に対する強化された防護を提供する。幾つかの場合には、コンピュータのユーザは、コンピュータの損傷を受けたコンポーネントの障害の発生以前の状態から情報を復元することが可能となるようにバックアップを活用し得る。クラウド・ベースのファイルシステムは、ネットワークまたはインターネットを通してファイルシステム・バックアップを遠隔で提供するために活用され得る。幾つかの場合には、コンピュータのユーザは、クラウド・ベースのファイルシステムを利用するバックアップによって恩恵を受けることができ、ユーザのデータが安全にバックアップされ得るという保証が増した状況で、ユーザは、例えば、海上の船のような危険な環境へコンピューティング・デバイスを持って行くことができる。
【００１３】
クラウド・ベースのファイルシステムおよびバックアップは、ファイル同期を利用する。ファイル同期において、データの整合性は、機能しているシステムにとって重要である。複数の特定の状況では、ファイル同期は、複数のファイルシステムを管理することのため、多くの技術的問題に悩まされる。ファイル同期は、部分的にはトランザクションによって（すなわち、当該ファイルシステムのコピーを維持する１つのデバイス上のデータへの更新を受信することによって）動作する。幾つかの場合には、これらの更新は、クラウド・ベースのファイルシステムのユーザから指示され得る。幾つかの場合には、上記の更新は、クラウド・ベースのファイルシステムの一部を形成する複数のデバイスのうちの１つから指示され得る。ファイル同期システムは、複数のトランザクションがデータの整合性を維持することを確実にすることを試みる。幾つかの場合には、受信した更新の幾つかは、それらが適切な更新であることを検証されることを必要とする。幾つかの場合には、問題は、トランザクションを妨害する不正な第三者から生じる可能性がある。第三者は偽のコマンドを送信することを試みる可能性があり、従って、各ファイル同期コマンドの正当性が確認されることが必要な場合がある。
【００１４】
コンテンツベース・セキュリティ・ファクタ（ＣＳＦ）は、ファイル同期システムに技術的な改良を提供し得る。ＣＳＦは、ファイル同期システムによって同期させられたコンテンツが、主認証ファクタまたは副認証ファクタとして用いられ得るようにし得る。ＣＳＦは、ファイルシステムによって同期させられたコンテンツに基づいて生成されたエクスプレッションを利用し得る。ＣＳＦは、例えば、クラウド・ベースのファイルシステムのような、双方向ファイル同期システムを改善し得る。ＣＳＦは、例えば、ファイル・バックアップのような、一方向のファイル同期システムを改善し得る。ＣＳＦは、追加のセキュリティ・ファクタを提供してセキュリティを強化することによって、ファイル同期の動作を改善し得る。
【００１５】
ＣＳＦの追加のセキュリティによって、既存のファイル同期システムの特定のトランザクションが自動化され得る。例えば、これらの自動化されたトランザクションは、複数のファイルシステムのうちの１つによって発行された、複数の同期コマンドの結果としての、第２のファイルシステムとの同期が保たれている第１のファイルシステムへのコンテンツ更新を含み得る。１つのｉｎｏｔｉｆｙ機構（例えば、ライト・ウェイト・イベント）を使用することは、１つのファイル同期システムにおける１つのファイルシステムに対する複数のコマンドのモニタリングを可能にし得る。このｉｎｏｔｉｆｙ機構は、１つのファイル同期システムにおいて１つのファイルシステムを他のファイルシステムと同期させるための、削除コマンドの生成および伝送を、１つのシステムが自動化することができる。幾つかの場合には、削除コマンドは非可逆効果を有し得るので、幾らかのファイルシステム管理者は、リモート・ファイルシステムへ送信された削除コマンド・トランザクションを自動化することを嫌う。ＣＳＦにより提供される強化されたセキュリティは、ファイルシステムのセキュリティおよび整合性を維持すると共に、削除コマンド（または、他の任意のトランザクション）の自動化を可能にし得る。
【００１６】
ＣＳＦは、まさに同期させられたコンテンツを利用して動作し得る。ＣＳＦは、互換性によって、より高いパフォーマンスを提供し得る。例えば、同期しているファイルシステムの各々は、フォーマットまたは規則に関係なく、コンテンツを同期する。本開示の全体にわたって、複数の実施形態は、同期したコンテンツを記述するために様々な用語を利用し得る。例として、以下の開示では、コンテンツを同期させることに関する議論において互換可能に使用され得る様々な用語および名称について述べる場合がある。例えば、それらの用語が例示目的で利用されること、および、当該分野における他の用語が本開示の実施形態を伝達するために利用され得ることが理解されるべきである。インターネット・サービス・プロバイダ（ＩＳＰ）は、様々なファイルシステムの同期を容易にするコンピューティング・サービス（例えば、プロセッサ、メモリ、ＡＰＩ、ネットワーク等）のうちの１つまたは複数を提供し得る。特定のＩＳＰは、同期したファイルのための（例えば、オブジェクトまたはブロブのような）様々な用語を使用する場合がある。様々な用語が、同期したフォルダ（例えば、ディレクトリ、コンテナ、バケット等）のために使用され得る。（例えば、ドメインまたはボールトのような）様々な用語が、ファイルシステムのユーザと関係付けられたアカウントのために使用され得る。（例えば、タグまたはｘａｔｔｒのような）様々な用語が、同期したメタデータのために使用され得る。「メタデータ」は、複数のタイプのメタデータ（例えば、ユーザ・メタデータ、システム・メタデータ）の何れかのことを意味する場合がある。ユーザ・メタデータは、例えば、英単語、句、および、文、あるいは、その組合せを使用してフォルダを記述する記述メタデータ・フィールド（description metadata field）のような、ユーザが特別に作るメタデータであり得る。システム・メタデータは、作成日、最終更新時のタイムスタンプ等のような、システムが作るメタデータであり得る。
【００１７】
第１の例において、ローカル・コンピュータは、１つまたは複数のディレクトリ（フォルダとも称する）内に１つまたは複数のファイルを収容し得るローカル・ファイルシステムをホストし得る。ファイルまたはフォルダのサブセットは、１つまたは複数のアカウントに結び付けられ得、メタデータまたはｘａｔｔｒは、これらのファイルまたはフォルダあるいはその両方の属性を記載し得る。ローカル・コンピュータは、遠隔地でホストされるインターネット・サービス・プロバイダ（ＩＳＰ）によって、同期させられ、そして、このインターネット・サービス・プロバイダ（ＩＳＰ）と協力し得る。ＩＳＰは、ファイル毎に、そのファイルと同期した状態が維持されるオブジェクトを有し得る。ＩＳＰは、ディレクトリ毎に、同期したコンテナを有し得る。ＩＳＰはタグを利用して、各オブジェクトおよびコンテナの様々な属性を記載し得る。ＩＳＰは、アカウントに対応する一連のボールトを維持し得る。
【００１８】
図１は、複数の実施形態と一致するファイル同期を利用するコンピューティング・システムの１つの例１００を示す。コンピューティング・システム１００は、１つまたは複数のクライアント・デバイス１１０−１、１１０−２、１１０−３、および、１１０−４（集合的には、１１０）を含み得る。コンピューティング・システム１００は、第１のファイル同期ノード１２０（ローカル・ノードとも称する）および第２のファイル同期ノード１３０（リモート・ノードとも称する）を含むこともできる。コンピューティング・システム１００は、クライアント・デバイス１１０−１および１１０−２をノード１２０に通信可能に結合するローカル・ネットワーク１４０を含むこともできる。コンピューティング・システム１００は、リモート・ネットワーク１５０および第２のノード１３０を含むこともできる。更なるネットワーク（図示せず）は、ローカル・ネットワーク１４０およびリモート・ネットワーク１５０（例えば、ＷＡＮ、インターネット等）を通信可能に結合し得る。
【００１９】
クライアント・デバイス１１０は、１つまたは複数のコンピュータおよびパーソナル・デジタル・アシスタンス（personal digital assistance、例えば、スマートフォン、タブレット、ポータブル・コンピュータ等）を含み得る。各クライアント・デバイス１１０は、プロセッサおよびメモリを含み得る。図４は、あるクライアント・デバイス１１０と一致するコンピュータの１つの例を記述し得る。各クライアント・デバイス１１０は、ファイル同期ノード１２０および１３０へ命令を送信することによって、または、ファイル同期ノード１２０および１３０から命令を送信することによって動作し得る。各クライアント・デバイス１１０は、ファイル同期ノード１２０および１３０からコンテンツを送受信することによって、動作することもできる。例えば、クライアント・デバイス１１０−２は、ネットワーク１４０を通してローカル・ファイル同期ノード１２０へコマンドを送信し得る。第２の例において、クライアント・デバイス１１０−３は、リモート・ファイル同期ノード１３０からネットワーク１５０を通してコンテンツの更新を受信し得る。幾つかの実施形態では、クライアント・デバイスは更なるネットワークを利用して、コマンドを発することができる。例えば、クライアント・デバイス１１０−２は広域ネットワーク（ＷＡＮ）を利用して、第２のファイル同期ノード１３０へコマンドを発することができる。
【００２０】
第１のファイル同期ノード１２０は、第１のサーバ１２２および第１のデータストア１２４を含み得る。第１のサーバ１２２は、第１のファイルシステムを維持するように構成される１つまたは複数のコンピューティング・デバイスおよびソフトウェア・サービスでもよい。第１のサーバ１２２は、クライアント・デバイス１１０−１および１１０−２からの１つまたは複数の要求に基づいて動作し得る。第１のサーバ１２２は、ネットワーク１４０、ネットワーク１５０、または、インターネットを通してクライアント・デバイス１１０と通信し得る。第１のサーバ１２２は、追加のファイルシステム（例えば、第２のファイル同期ノード１３０）と同期する第１のファイルシステムをホストし得る。
【００２１】
第１のデータストア１２４は、データを記憶するように構成される１つまたは複数のコンピュータおよびストレージ・デバイスでもよい。例えば、第１のデータストア１２４は、サーバ筐体内のプラッタまたはディスク型のハードドライブ、または、サーバ内に位置するソリッドステート・ハードドライブでもよい。第１のデータストア１２４は、ファイルおよびフォルダを記憶して、系統化するように設計された１つまたは複数のファイルシステム（例えば、ＮＴＦＳ、ＦＡＴ３２、ＺＦＳ等）を含み得る。第１のデータストア１２４は、複数の値を記憶する１つまたは複数のデータベースを含み得る。幾つかの実施形態では、記憶した値は、ファイルシステムに関連があり得る。第１のデータストア１２４は、第１のオブジェクト１２６−１、１２６−２〜１２６−Ｎ（集合的には、１２６）の集合を含み得る。第１のオブジェクト１２６の集合は、ファイルシステムのローカル・ファイルおよびフォルダでもよい。幾つかの実施形態では、第１のファイル同期ノード１２０のファイルおよびフォルダの全ては、第２のファイル同期ノード１３０によって記憶され得る。例えば、第１のファイル同期ノード１２０はメインフレーム・サーバのファイルシステムでもよく、第１のデータストア１２４のデータのリモート・バックアップは第２のファイル同期ノード１３０によってミラー化され得る。引き続き、上記の例において、第１のデータストア１２４でデータ喪失があった場合、第２のファイル同期ノード１３０は、メインフレーム・サーバ用のデータを作り直すために利用され得る。
【００２２】
幾つかの実施形態では、ファイルシステムのファイルおよびフォルダの１つのサブセットだけが第１のファイル同期ノード１２４によって記憶され得る。例えば、階層化ベースのクラウド・サービスにおいて、一部のファイルおよびフォルダがデータストア１２４に保たれ得る。ローカルにデータストア１２４に記憶されるファイルの部分は、ファイル１２６−１〜１２６−４，０００で表され得る。データストア１２４がハード・ドライブ領域不足に陥り始めると、第１のサーバ１２２は、１つまたは複数のファイルがリモート同期ノード１３０に記憶される必要があると判断し得る。第１のサーバ１２２は、ファイル１２６−４，００１〜１２６−３２，５４７が第２の同期ノード１３０によって記憶されるように指示し得る。第１のサーバ１２２は、第２の同期ノード１３０に同期するファイルを記述する１つまたは複数のスタブを作成し得る。第１のサーバ１２２は、第２の同期ノード１３０に記憶されるファイルに関する情報を、スタブ（例えば、ファイル・ブラウザでファイルおよびフォルダの表示の速度を上げることができるメタデータ）に直接記憶し得る。第１のサーバ１２２は、第２の同期ノード１３０に記憶されるファイルに関する情報を、間接的にスタブに記憶し得る。スタブは、これもまたデータストア１２４に記憶されるデータベースを指し示すことができ、第２の同期ノードに記憶されるファイルに関する情報は、スタブ内のリンクによってデータベースへ読み出され得る。
【００２３】
リモート・ファイル同期ノード１３０は、第２のサーバ１３２および第２のデータストア１３４を含み得る。第２のサーバ１３２は、第２のファイルシステムを維持するように構成される１つまたは複数のコンピューティング・デバイスおよびソフトウェア・サービスでもよい。第２のサーバ１２２は、クライアント・デバイス１１０からの１つまたは複数の要求に基づいて動作し得る。第２のサーバ１３２は、ネットワーク１５０、ネットワーク１４０、または、インターネットを通してクライアント・デバイス１１０と通信し得る。第２のサーバ１３２は、複数の追加のファイルシステム（例えば、第１のファイル同期ノード１２０）と同期する第２のファイルシステムをホストし得る。第２のサーバ１３２は、第１のサーバ１２２とは地理的に異なる位置に存在し得、第１のファイル同期ノード１２０と異なるエンティティによって動作され得る。幾つかの実施形態では、第２のサーバ１３２は、特定のセキュリティ対策を利用して第２のデータストア１３４を保護し得る。例えば、ＩＳＰは、リモート・ファイル同期ノード１３０をホストし得、ユーザ名またはパスワードあるいはその両方を利用して、第１のサーバ１３２およびリモート・ファイル同期ノードへのアクセスを認証し得る。
【００２４】
第２のデータストア１３４は、データを記憶するように構成される１つまたは複数のコンピュータおよびストレージ・デバイスでもよい。例えば、第２のデータストア１３４は、サーバ筐体内のプラッタまたはディスク型のハード・ドライブ、または、サーバ内に位置するソリッド・ステート・ドライブでもよい。幾つかの実施形態では、第２のデータストア１３４は、複数のデータ記憶ハードウェア（例えば、テープ、回転プラッタ・ドライブ、ソリッド・ステート・ドライブ、ＲＡＭベースのディスク、積層可能クロス・グリッド型不揮発性メモリ（stackable cross-gridded non-volatile memory）等）を含み得る。第２のデータストア１３４は、ファイルおよびフォルダを記憶して、系統化するように設計された１つまたは複数のファイルシステム（例えば、ＮＴＦＳ、ＦＡＴ３２、ＺＦＳ等）を含み得る。第２のデータストア１３４は、特定の性能特性（例えば、容量またはアクセス・レイテンシ）に重点を置く１つまたは複数のデータベースまたはファイルシステムを含み得るか、または、そのようなデータベースまたはファイルシステムを利用するように構成され得る。第２のデータストア１３４は、第２のオブジェクト１３６−１、１３６−２〜１３６−Ｎ（集合的には、１３６）の集合を含み得る。幾つかの実施形態では、第２のデータストア１３４は、冗長性を増加させるに十分なストレージを提供し得る。例えば、第２のデータストア１３４は複数のハード・ドライブを有し得、第２のサーバ１３２は、これら複数のハード・ドライブのうちの複数のハード・ドライブに、第２のオブジェクト１３６の集合のコピーを作成し得る。
【００２５】
第２のオブジェクト１３６の集合は、第１のオブジェクト１２６の集合の直接のコピーでもよく、または、第１のオブジェクト１２６の集合に、直接関係するものでもよい。例えば、第２のデータストア１３４はデータストア１２４のバックアップでもよく、各オブジェクト１３６はオブジェクト１２６に直接対応するものでもよい。幾つかの実施形態では、第２のオブジェクトの集合１３６は第１のデータストア１２４の直接のコピーでではない場合があり、第２のデータストア１３４は異なるフォーマットでデータを記憶し得る。例えば、第２のデータストア１３４は、一連のブロブ１３６でもよく、各ブロブは第１のデータストア１２４の１つのファイルまたはフォルダに対応するものでもよい。第２の例においては、第２のデータストア１３４は、一連のオブジェクトおよびコンテナ１３６を有し得る。幾つかの実施形態では、データストア１３４の１つまたは複数の属性は、強化したセキュリティを提供するように難読化され得る。例えば、第２の組のオブジェクト１３６は、アカウントまたは所有者とは無関係に連番で名づけられ得る。引き続き、この例において、データ・オブジェクト１３６−１０７は、「４３５１３２０９ＤＦＣ２３９８」という連番化された名称を有して、第１のアカウントに関係付けられてもよい。更に上記の例において、第２のデータ・オブジェクト１３６−１０８は、「４３５１３２０９ＤＦＣ２３９９」という連番化された名称を有して、第２のアカウントに関係付けられてもよい。
【００２６】
コンピューティング・システム１００は、データ・オブジェクト１２６および１３６を安全にするために様々なセキュリティ対策を提供し得る。クライアント・デバイス１１０は、ローカル・ファイル同期ノード１２０およびリモート・ファイル同期ノード１３０を利用して、データ・オブジェクト１２６および１３６にアクセスし得る。幾つかの実施形態では、コンピューティング・システム１００は、ユーザ名およびパスワードのような認証ファクタを利用し得る。例えば、クライアント・デバイス１１０−３は、ローカルに複数のファイルおよびフォルダを含むことができ、階層化されたファイルをコンピューティング・システム１００に対して表す複数のファイル・スタブを含むこともできる。クライアント・デバイス１１０−３は、スタブの１つの例に関係付けられたフォルダを要求し得、更に、オブジェクト１３６−１に関係付けられ得る。ネットワーク１５０を通しての同期によって実フォルダへのアクセスができるようにするために、サーバ１３２は、クライアント・デバイス１１０−３からのユーザ名およびパスワードの受信のみに基づいて、オブジェクト１３６−１に関して応答し得る。
【００２７】
幾つかの実施形態では、コンピューティング・システム１００は、データ・オブジェクト１２６または１３６へのアクセスを安全にするために、コンテンツベース・セキュリティ・ファクタ（ＣＳＦ）を利用し得る。ここで、ＣＳＦの複数の実施形態と一致する第１の例を説明する。クライアント・デバイス１１０−１はネットワーク１４０に接続され、第１のサーバ１２２を通して第１のデータストア１２４に接続し得る。ユーザは、クライアント・デバイス１１０−１のオペレーティング・システムによって実行されるファイル・ブラウザを使用し得る。このファイル・ブラウザは、クライアント・デバイス１１０−１と第１のサーバ１２２との間の一連の要求によって、第１のデータストア１２４上でホストされるファイルシステムをマウントすることができる。ユーザがクライアント・デバイス１１０−１からのファイルを見て、更新すると、第１のデータストア１２４に記憶されるファイルおよびフォルダは第１のサーバ１２２によって更新され得る。
【００２８】
引き続き、上記第１の例において、第１の同期ノード１２０は、第２の同期ノード１３０との階層化同期（tiering synchronization）を実行し得る。第１の同期ノード１２０の第１のサーバ１２２は、１つまたは複数のファイルおよびフォルダ１２６が第２の同期ノード１３０に対して階層化されるべきであると判断し得る。この判断は、スタブであるファイル１２６−８に基づくことができる。第１のサーバ１２２は、１７０において同期動作を実行し得る。上記判断および動作１７０は、デーモンまたはシステム・レベル・フレームワーク（例えば、ｉｎｏｔｉｆｙ、ライト・ウェイト・イベント・ポリシー等）として自動化され得る。動作１７０は、ファイル１２６−８への更新を第２のサーバ１３２へ送信し得る。動作１７０は、このファイル１２６−８への更新を、オブジェクト１３６−８へ変換することを含むことができる。オブジェクト１３６−８は、ファイル・スタブ１２６−８への、そして、データストア１２４に記憶される関連したデータベースへのアクセス無しでは読み込み不可であるフォーマットで記載され得る。動作１７０は、ＣＳＦを第２のサーバ１３２へ送信することもできる。ＣＳＦは、同期属性、つまり第１のファイル同期ノード１２０と第２のファイル同期ノード１３０の間で同期される属性、を記述するエクスプレッションであり得る。同期属性は、以下の何れかを含み得る：ファイル、フォルダ、ファイルのメタデータ、フォルダのメタデータ、ファイルに関連したアカウント情報、フォルダに関連したアカウント情報等。同期属性は、更に、以下の何れかを含み得る：ファイルまたはフォルダのサイズ、ファイルまたはフォルダの数、ファイル間またはフォルダ間の関係（例えば、フォルダ『Ｐｒｏｇｒａｍ  Ｆｉｌｅｓ』内に１２個のファイルがあり、ファイルＸがフォルダＹにおいて２番目に大きいファイルであること等）。
【００２９】
引き続き、第１の例において、動作１７０において、第１のサーバ１２２は、フォルダ１２６−１３７，０２３、ならびに、ファイル１２６−１３８，１１０、１２６−１３８，１１１、および、１２６−１３８，１１２（フォルダ１２６−１３７，０２３内に位置する３つのファイル）に関してデータストア１２４の属性を選択する。それらが、データストア１２４に記憶されて、対応するコンテナ１３６−１４０，１１１、ならびに、オブジェクト１３６−１４０，１１２、１３６−１４０，１１３、および、１３６−１４０，１１４と同期するスタブであるので、第１のサーバ１２２は、フォルダ１２６−１３７，０２３、ならびに、ファイル１２６−１３８，１１０、１２６−１３８，１１１、および、１２６−１３８，１１２を選択する。動作１７０において、第１のサーバ１２２は、以下のエクスプレッションを生成し得る：「ファイル１２６−１３８，１１１は、ファイル１２６−１３８，１１０および１２６−１３８，１１２より後に最終変更をされた」。
【００３０】
引き続き、第１の例において、動作１７０において、第１のサーバ１２２は、ＣＳＦを第２のファイル同期ノード１３０へ送信し得る。幾つかの実施形態では、動作１７０には、オプションの動作１６０を伴うことができる。オプションの動作１６０は、認証のためにＣＳＦを要求する第２のサーバ１３２によるプロンプトでもよい。オプションの動作１６０は、受領確認および第２のサーバ１３２による同期の実行でもよい。オプションの動作１６０は、１７０において受信されたＣＳＦによる成功した認証の確認でもよい。幾つかの実施形態では、ＣＳＦは副認証ファクタでもよく、動作１７０の実行は、第１の認証ファクタ（例えば、ユーザ名およびパスワード）およびＣＳＦ（例えば、ファイルシステムの同期したコンテンツのエクスプレッション）の送信を含み得る。動作１７０の実行は、ファイルシステムＡＰＩ（例えば、get(), put(), update(), delete()）の形であり得る。幾つかの実施形態では、動作１７０の実行は、例えば、ＲＥＳＴ動作（例えば、create, update, read, delete）のような、サーバクライアント・モデル・プロトコルの形であり得る。
【００３１】
引き続き、第１の例において、送信された同期更新およびＣＳＦによる認証を受信すると、１７０において、第２のサーバ１３２は、同期を実行し得る。より詳細には、第２のサーバ１３２は、受信した同期更新を、受信した順序で処理されるべき複数の更新コマンドのキャッシュ内に記憶し得る。第２のサーバ１３２は、受信したＣＳＦのエクスプレッションをコンテナ１３６−１４０，１１１、ならびに、オブジェクト１３６−１４０，１１２、１３６−１４０，１１３、および、１３６−１４０，１１４と比較することによって、受信したＣＳＦのエクスプレッションを認証し得る。オブジェクト１３６−１４０，１１３がオブジェクト１３６−１４０，１１２および１３６−１４０，１１４より後に最終変更をされた場合、１７０において受信した同期コマンドは認証され得る。１７０において受信した同期コマンドが認証される場合、オブジェクト１３６−８は更新され得る。ＣＳＦの利用によれば、他のセキュリティ方法と比較して、ファイル同期のパフォーマンスを高めることができる。例えば、第１のデータストア１２４と第２のデータストア１３４との間で同期するコンテンツを利用すると、（しばしばストレージをたくさん使う）追加の専用の認証クレデンシャルに対する依存を無くするので、メモリ利用量を減らすことができる。他の例では、第１のデータストア１２４と第２のデータストア１３４との間で同期するコンテンツを利用することによって、（しばしば数学的に膨大な）追加の専用の認証クレデンシャルが生成される必要がないので、オーバーヘッドの処理を減らすことができる。
【００３２】
ＣＳＦの複数の実施形態と一致する第２の例は、以下に記述される。ファイル同期動作は、第２のファイル同期ノード１３０からの更新に基づいて開始され得る。同期動作の前に、クライアント・デバイス１１０−４によって削除コマンドが発され、第２のデータストア１３４のオブジェクト１３６−１３７，１８９を対象とし得る。オブジェクト１３６−１３７，１８９は、オブジェクト識別子「ＡＤ２３４２０３８１ＤＪＬ１７−３８３２２Ａ」を有し得る。第２のサーバ１３２は、データストア１３４からＣＳＦエクスプレッションを生成し得る。ＣＳＦエクスプレッションは、オブジェクト１３６−１３７，１８９を所有する当事者と同じ当事者によって所有されるコンテンツから作られたものでもよい。幾つかの実施形態では、ＣＳＦエクスプレッションは、オブジェクト１３６−１３７，１８９を所有する当事者以外のエンティティによって所有されるコンテンツでもよい。上記コマンドおよび上記ＣＳＦを受信すると、第１のサーバ１２２は、オブジェクト１２６−１３７，１８９を更新し得る。オブジェクト１２６−１３７，１８９は、第１のユーザに属するファイルでもよい。
【００３３】
引き続き、第２の例において、第２のファイル同期ノード１３０から第１のファイル同期ノード１２０に送信されたコマンドのフォーマットは、以下の通りでもよい。「"curl -X DELETE -H "Content-Length: 256" -h "X-Token: abc123pqrs" -H "X-OBJ-UUID: AD23420381DJL17-38322A"」。ＣＳＦエクスプレッションは、「ＪＫ１２４２５２６１ＤＩＬ１７−２２４３Ｋ２は、４３，７８１，２３５バイトであるか？」であり、質問の形であり得る。コンピュータ・システム１００は複数のエクスプレッションを交替させて、同じエクスプレッションを繰り返すことを防ぐことができる。幾つかの実施形態では、コンピュータ・システム１００は、それらを最近使用されたものリストに入れることによって、ＣＳＦエクスプレッションの再使用を防止し得る。ファイル同期ノード１２０および１３０は、エクスプレッションがこのリストに載っていないことを確実にすることによって、ＣＳＦを生成し得る。幾つかの実施形態では、上記のリストは、（例えば、３０日毎に上記のリストの最も古いエントリを取り除くこと、１週間より古い全てのエントリを毎日削除すること等によって）周期的に選別され得る。
【００３４】
幾つかの実施形態では、コンピュータ・システム１００は、ＣＳＦを利用しない他のファイル同期ノードと比較して、向上した性能を提供し得る。第三者は、ファイル同期ノード１２０と１３０との間で送信されるコマンドを傍受して、見ることができるであろう。例えば、削除コマンドがインターネットを通して送信されるとき、悪意のある者が第２のファイル同期ノード１３０から第１のファイル同期ノード１２０へ送信される削除コマンドをモニタすることもあり得る。この悪意のある者は、削除コマンドのＸ−ＯＢＪ−ＵＵＩＤを調整することによって、削除コマンドを変更することができる（例えば、前の例から、「ＡＤ２３４２０３８１ＤＪＬ１７−３８３２２Ａ」は、他のファイルと関係付けられているかもしれない「ＡＤ２３４２０３８１ＤＪＬ１７−３８３２２Ｂ」に変えられ得たであろう）。しかしながら、同期したコンテンツに関するエクスプレッションを提供することが可能でないであろうから、この悪意のある者は、ファイル同期ノード１２０および１３０のどちらか一方を信じさせることはできず、削除コマンドを完成することはできないであろう。同期するファイルシステム・コンテンツが常に変化するので、コンピュータ・システム１００は固定されたキーより向上したセキュリティを提供し得る。悪意のある者が１つのＣＳＦエクスプレッションへのアクセスを取得し得た場合であっても、コンテンツが変化したか、または、ＣＳＦエクスプレッションが再利用されないので、無意味となるであろう。
【００３５】
図２は、同期したコンテンツに基づいてファイルシステムを同期させるための複数の実施形態と一致する方法２００のフロー図である。方法２００は、ファイル同期システムにおけるファイルシステム・サーバまたはデータ・サーバによって実行され得る。方法２００は、本願明細書において開示されるより多いかまたは少ない動作を含み得る。幾らかの動作は、連続的に、または、周期的に実行され得る。動作２１０は、例えば、毎秒、３秒毎、または、１６ミリ秒毎に実行され得る。方法２００の幾らかの動作は、組み合わされるか、または分離され得る。複数の特定のファイル同期システムでは複数のサーバを含み得るので、方法２００の幾らかの動作は第１のサーバによって実行され得、他の動作は第２のサーバによって実行され得る。幾つかの実施形態では、方法２００は、ファイル同期システムの複数のサーバによって並行して実行され得る。
【００３６】
開始２０５の後、２１０において１つまたは複数のファイル同期要求が受信され得る。これらのファイル同期要求は、ファイル同期システム内の１つのファイルシステム上の１つまたは複数の値を更新するためのコマンドを含み得る。例えば、ネットワーク共有を通して接続するクライアント・デバイスは、１つまたは複数の値を更新し得る。幾つかの実施形態では、ファイル同期要求は、直接に、または、ローカル動作の一部として為され得る。例えば、デスクトップ・コンピュータのユーザは、デスクトップ・コンピュータに通信可能に結合され、物理的にデスクトップ・コンピュータ内に位置するハード・ドライブ上の１つまたは複数のファイルをローカルに更新し得る。更新されたローカル・ファイルは、ファイル同期システムの一部であるハード・ドライブのファイルシステムであってもよい。デスクトップ・コンピュータ上で実行するデーモンまたはジョブは、ローカルデータを更新した後に、２１０において上記ファイル同期要求を生成し得る。幾つかの実施形態では、ファイル同期要求は、間接的に為され得るか、または、リモート・ノードから開始された動作から為され得る。例えば、ファイル同期システムのリモート・ノード上で更新が実行された後、ローカル・ドライブ上で同期を実行するための要求が受信され得る。
【００３７】
２１５において、その同期がローカルに開始された同期である場合、２２０において同期更新はファイル同期システム内の他のノードへ送信され得る。例えば、第２のファイル同期サーバは、２２０において、第２のファイル同期サーバのユーザによって更新された第１のテキスト・ファイルを更新するためのコマンドを第１のファイル同期サーバへ送ることができる。２２０において、複数の同期更新が送信され得る。例えば、あるファイル同期システムは、互いに同期した状態に保たれる７つのファイルシステムを含み得る。引き続き、上記の例において、第５のファイル同期サーバは、第５のファイルシステム・オブジェクトを更新し得たであろう。更に上記の例において、２２０において、６つのファイルシステム同期更新が、ファイル同期サーバ１、２、３、４、６、および、７へ送信され得る。
【００３８】
２３０において、コンテンツベース・セキュリティ・ファクタ（ＣＳＦ）のためにエクスプレッションが生成され得る。２３０において生成されたエクスプレッションは、２２０において送信された同期更新の認証のために利用され得る。２３０において生成されたエクスプレッションは、同期したファイルシステム内の１つまたは複数のコンテンツを記述し得る。例えば、作動中のサーバおよびバックアップ・サーバを含むファイル・サーバ・バックアップにおいて、作動中のサーバ内にある１つのコンテンツはバックアップ・サーバにバックアップされ得、任意のコンテンツは２３０においてエクスプレッションを生成するために利用され得る。２３０において生成されたエクスプレッションは、例えば、ファイルおよびフォルダのような、ファイルシステムの任意の直接的なコンテンツにも基づくものでもよい。２３０において生成されたエクスプレッションはファイルシステムの任意の間接的なコンテンツ（例えば、ファイルまたはフォルダのメタデータ、あるいは、ファイルまたはフォルダに関係するアカウント情報に含まれるコンテンツ）に基づくものでもよい。２３０において生成されたエクスプレッションは、複数のコンテンツ・アイテム（例えば、一連のファイルまたはフォルダ、あるいは、それらの関係）に基づくものでもよい。例えば、同期したファイルシステム内の３つのファイルの最も最近更新されたメタデータの記述。
【００３９】
２３０において生成されたエクスプレッションは、所定のテンプレートに基づくものでもよい。所定のテンプレートは、全てのファイル同期ノードの間で同期され得る。幾つかの実施形態では、所定のテンプレートは、本開示と一致するＣＳＦベースのファイル同期システムのユーザによって生成され得る。例えば、一連のテンプレートが表１に開示されている。
【００４０】
【表１】
2020537246.tif 000003
【００４１】
表１によれば、ＣＳＦにより読み出され得る様々な値は、以下のように表され得る：アカウント、ドメイン、および、ボールトのための＜ＡＣＣＴ＞、メタデータ、タグ、または、ｘａｔｔｒ情報のための＜ＭＥＴＡ＞、フォルダ、ディレクトリ、コンテナ、または、バケットのための＜ＣＯＮＴ＞、オブジェクト、ブロブ、または、ファイルのための＜ＯＢＪ＞。利用される幾つかの値は、＜ＶＡＬ＞によって表され得る。上記の値は、必要に応じて、切り下げ、または、切り上げて生成され得る。表現は、適切にＣＳＦを生成するために適切なコンテンツベース情報を選択するように方法２００によって利用され得る。幾つかの実施形態では、ＣＳＦは自然言語の要素だけを含み得る。例えば、「'Jennifer" is the owner of object 'summer job.csv'.」（「『ジェニファー』は、オブジェクト『ｓｕｍｍｅｒ  ｊｏｂ．ｃｓｖ』の所有者である。」）。幾つかの実施形態では、ＣＳＦはタグを含むこともできる。例えば、「<ACCT>Jennifer</ACCT> is the owner of object <OBJ>summer job.csv</OBJ>.」（「＜ＡＣＣＴ＞ジェニファー＜／ＡＣＣＴ＞は、オブジェクト＜ＯＢＪ＞ｓｕｍｍｅｒ  ｊｏｂ．ｃｓｖ＜／ＯＢＪ＞の所有者である。」）。
【００４２】
幾つかの実施形態では、ＣＳＦエクスプレッションを補充するために利用される追加の認証キーが存在し得る。例えば、ファイル同期ノードの間で同期するファイルまたはフォルダが未だ多くない場合がある。バックアップが実行され始めたばかりであるために、未だそれほど同期情報がない場合がある。第１のファイルシステムがかなり空いており、他のファイル同期ノードに対するファイルの階層化も多くないために、同期情報が未だそれほどない場合がある。ファイル同期システムの初期セットアップの間に、追加の認証キーは、事前に生成され得、ファイル同期システムのノードの間で共有され得る。２３０においてエクスプレッションを生成することは、同期したコンテンツに基づいてエクスプレッションを生成する代わりに、事前生成された１つのキーを選択することを含み得る。同期システムが上記ノードの間で同期した一定数のコンテンツ・アイテムに達すると、事前生成されたキーは記憶空間を節約するために取り除かれ得る。幾つかの実施形態では、事前生成されたキーは、１００個のオブジェクトが同期すると取り除かれ得る。幾つかの実施形態では、事前生成されたキーは、１２，０００個のオブジェクトが同期すると取り除かれ得る。
【００４３】
幾つかの実施形態では、２３０においてエクスプレッション生成のために使用されるコンテンツの選択は、ファイル同期システムの１つまたは複数のファクタに基づいてもよい。例えば、エクスプレッションのコンテンツが同一であることを確実にするために、エクスプレッションは、最近同期していないコンテンツに基づくものでもよい。引き続き、上記の例において、同期したコンテンツの１つまたは複数のアイテムがこの２４時間以内に更新された場合、それは選択されなくてもよい。エクスプレッションが２３０において生成された後、エクスプレッションは２４０においてリモート・ファイル同期ノードへ送信され得る。エクスプレッションは、２４０において複数のリモート・ファイル同期ノードへ送信され得る。２４０においてエクスプレッションを送信した後、方法２００は、２９５において終了することができる。
【００４４】
もし、２１５において上記の同期がローカルに開始された同期でない（例えば、遠隔開始の同期）ならば、２５０において、受信したＣＳＦベースのエクスプレッションが評価され得る。エクスプレッションは、２５０において、同期したファイルシステムのノードで共有される１つまたは複数のテンプレートに基づいて評価され得る。２５０において、エクスプレッションは、自然言語処理エンジンに基づいて評価され得る。実施形態において、事前生成されたキーが依然利用される場合、２５０におけるエクスプレッションの評価は、同期した、事前生成されたキーに基づいてもよい。幾つかの実施形態では、ファイルシステムは、２５０におけるエクスプレッションの評価の実行を確実にするために、同期しているコンテンツの１つまたは複数のアイテムをキャッシュし得る。第１の例においては、第１のオブジェクトは、先の同期動作に基づいて更新され得、更新される前のオブジェクトの状態は更新キャッシュに置かれるであろう。更新キャッシュは更新を一定期間記憶し得る。幾つかの実施形態では、この期間によって、正当なトランザクションのみの成功した認証と、キーの組の変化の現実（すなわち、同期したファイルシステムの同期したコンテンツ）とのバランスをとることができる。第１の例においては、キャッシュは、２５０における３０分古いトランザクションについての正当なエクスプレッションの評価のために利用され得る。第２の例においては、キャッシュは、２５０における４５秒古いトランザクションについての正当なエクスプレッションの評価のために利用され得る。
【００４５】
エクスプレッションが２５５において正当なエクスプレッションとして評価する場合、２６０において同期動作が実行され得る。２６０における同期動作の実行は、受領側ファイル同期ノードに含まれるローカル・ファイルシステムまたはデータベースへ１つまたは複数の値を書き込むことを含み得る。例えば、ディスク・コントローラに、ハード・ディスクの１つまたは複数のプラッタ上の磁気ビットを反転させる。２５５においてエクスプレッションが正当と評価するかどうか判断した後に（または同期動作２６０を実行した後に）、方法２００は、２９５において終了することができる。
【００４６】
第１の例においては、２３０においてエクスプレッションを生成することは、第１のファイルシステムから１つまたは複数のコンテンツ・アイテムの中から「Henry Pictures」という名の第１のフォルダを選択することを含む場合がある。第１のフォルダは、第１の属性を含む１つまたは複数の属性を含み得る。第１の属性は、３１個のファイルおよびフォルダが第１のフォルダの中にあることを示す。１つのフォルダ内のコンテンツ・アイテムの数を示すテンプレート・エントリが、コンテンツ・テーブルから選択される。２３０においてエクスプレッションを生成した結果は第１のエクスプレッションになる。第１のエクスプレッションには、「『３１個の』アイテムがフォルダ『Henry Pictures』に位置する？」と記載される。エクスプレッションは、第２のファイルシステムによる検査および比較により真であると解決したエクスプレッションであり得る。
【００４７】
第２の例においては、２５０においてエクスプレッションを評価することは、第２のファイルシステムのコンテンツを、受信したエクスプレッション（例えば、先行する段落における第１の例において生成されたエクスプレッション）と比較することを含み得る。このエクスプレッションには、「『３１個の』アイテムがフォルダ『Henry Pictures』に位置する？」と記載されている。このエクスプレッションは、第１のアイテム『３１』、および、第２のアイテム『Henry Pictures』、ならびに、ボディ「＿個のアイテムが、フォルダ＿に位置する？」を含み得る。このエクスプレッションは、２１０において、ファイル同期要求の一部として受信され得る。この評価は、第２のファイルシステムから１つまたは複数のコンテンツ・アイテムを読み出すことを含み得る。このエクスプレッションは、自然言語処理を使用して解析され、第１のアイテムおよび第２のアイテムを比較可能な要素に変える。この評価は、第２のファイルシステムから全てのフォルダを読み出して、「Henry Pictures」に対する一致が見つかるまで各フォルダにわたって繰り返すことを含み得る。第２のファイルシステムにおいて一致するフォルダを発見すると、一致するフォルダの属性および一致するフォルダに関連したメタデータの属性の走査によって、エクスプレッションを真であると（すなわち、現在、３１のアイテムがフォルダHenry Picturesにあると）評価することができる。
【００４８】
図３は、同期したコンテンツに基づいて、同期したファイルシステムにおいて削除を実行するための実施形態と一致する方法３００のフロー図である。方法３００は、ファイル同期システムのファイルシステム・サーバまたはデータ・サーバによって実行され得る。方法３００は、本願明細書において開示されるより多いかまたは少ない動作を含み得る。幾らかの動作は、連続的に、または、周期的に実行され得る。動作３１０は、例えば、毎秒、３秒毎、または、１６ミリ秒毎に実行され得る。方法３００の幾らかの動作は、組み合わされるか、または分離され得る。特定のファイル同期システムが複数のサーバを含み得るので、方法３００の幾らかの動作は第１のサーバによって実行され得、他の動作は第２のサーバによって実行され得る。幾つかの実施形態では、方法３００は、ファイル同期システムの複数のサーバによって並行して実行され得る。説明のために、方法３００は、１つのローカル・ファイルシステムと１つのリモート・ファイルシステムとの間で記述されるであろうし、２つのファイルシステムが共に同期される。
【００４９】
３１０において、１つまたは複数のファイルシステム・コマンドが受信され得る。ファイルシステム・コマンドは、コンピュータ（例えば、コンピュータのファイルシステム上のフォルダに新しい画像ファイルを作成するユーザ）のユーザから、３１０において受信され得る。ファイルシステム・コマンドは、自動化されたデーモンまたはジョブに基づいて３１０において受信され得る。幾つかの実施形態では、ファイルシステム・コマンドは、ｉｎｏｔｉｆｙフレームワークに基づいて受信され得る。幾つかの実施形態では、ファイルシステム・コマンドは、ＬＷＥフレームワークに基づいて受信され得る。ファイルシステム・コマンドは、ＡＰＩ（例えば、get(), put(), delete(), post()）の形であり得る。幾つかの実施形態では、ファイルシステム・コマンドは、ＲＥＳＴプロトコル（例えば、create(), update(), read(), delete()）の形であり得る。ファイルシステム・コマンドは、他の同期しているファイルシステムと同期しているローカル・ファイルシステム上の第１のコンテンツ・アイテムを対象とし得る。
【００５０】
３２０において、ファイルシステム・コマンドのタイプが判断され得る。３２０において、ファイルシステム・コマンドのタイプは、コマンドを伝えるために用いられるプロトコルのタイプに基づいて判断され得る。例えば、受信したコマンドをＣＵＲＤモデルと比較することにより、３２０において受信したコマンドがＲＥＳＴコマンドであると判断する。３３０においてファイルシステム・コマンドが削除でない場合、方法３００は３９５において終了することができる。３３０においてファイルシステム・コマンドが削除コマンドであると判断される場合、削除されるべきコンテンツ・アイテムは同期していることが、３４０において確認される。同期しているアイテムは、１つまたは複数の追加のファイルシステムと同期している１つのファイルシステムのコンテンツの１つまたは複数のアイテム（例えば、ファイルシステム・バックアップによってバックアップされるファイル、階層型ファイルシステムに対して階層化されたファイル、クラウド・ベースのファイル記憶サービスにおけるクラウド同期ファイル等）である。３４０において、上記コマンドによって識別されたアイテムの検査を実行することにより、アイテムが同期していることが確認され得る。第１の例においては、このアイテムは、クラウド・ベースの階層型システムのリモート・アイテム（例えば、オブジェクト、コンテナ、メタデータ、ドメイン等）であり得る。引き続き、第１の例において、上記階層化されたアイテムは、階層化されたストレージに関係付けられたローカル・ストレージ・デバイスへのアクセス（例えば、ローカル・アイテムを指し示す連番化された名称）によって区別可能である階層型記憶フォーマットであり得る。第２の例においては、上記アイテムは、階層化された同等物を有するローカル・アイテムでもよい。引き続き、第２の例において、上記アイテムは、縮小されたサイズを有し対応する階層化されたアイテムへのポインタのみを含む、スタブまたはショートフォーム・オブジェクト（short-form object）のフォーマットであってもよい。引き続き、第２の例において、スタブは、直接的（例えば、対応する階層化されたアイテムへのポインタ）でも、間接的（例えば、階層化されたアイテムに関する情報を含むデータベースを指し示すもの）でもよい。スタブは、例えば、そのスタブまたはそのスタブのポインタにおいて表される、対応する同期したコンテンツの最終変更日、のような追加情報を含み得る。コマンドは、ローカル・ファイルシステムに記憶されるアイテムを対象とし得る。
【００５１】
３４０において１つのアイテムが同期していることが確認される場合、３４２において第１の認証ファクタが第２のファイルシステムへ送信され得る。第１の認証ファクタは、主認証ファクタでもよい。幾つかの実施形態では、主認証ファクタは、同期したファイルシステム内の１つまたは複数のデバイスへアクセスするために、それら１つまたは複数のデバイスによって利用されるファクタであり得る。第１の認証ファクタは、例えば、パスワードまたはパスフレーズのような、単一の情報でもよい。第１の認証ファクタは、例えば、ユーザ名およびパスワードのような、複数の情報でもよい。第１の認証ファクタは、ローカル・ファイルシステムとは別に記憶され得る（例えば、ＲＳＡキー・フォブに記憶され得る、または、認証データベースに記憶され得る、または、安全なネットワーク上だけでアクセスできるキー・サーバに記憶され得る等）。幾つかの実施形態では、第１の認証ファクタは、３４２において、第１の伝送チャネル（例えば、第１のネットワーク、ワイヤレス・ネットワーク、ＬＡＮ、Ｂｌｕｅｔｏｏｔｈ（登録商標）パーソナル・エリア・ネットワーク等）を通して送信され得る。３４２において、第１の認証ファクタは、リモート・ファイルシステムを動作するサーバへ送信され得る。
【００５２】
３４２において第１の認証ファクタを送信した後に、３４４においてコンテンツベース副認証ファクタ（ＣＳＦ）が送信され得る。ＣＳＦは、３４２において第１の認証ファクタを受信した受領側同期サーバからの要求に応答して３４４において送信され得る。３４４におけるＣＳＦの送信は、第２の伝送チャネル（例えば、第２のネットワーク、第２のワイヤレス・ネットワーク、別のＬＡＮ、別のパーソナル・エリア・ネットワーク等）を通してであってよい。
【００５３】
３４４においてＣＳＦを送信することの一部として、ＣＳＦは、ローカル・ファイルシステムに含まれる同期コンテンツに基づいて生成され得る。幾つかの実施形態では、ＣＳＦは、３４４におけるＣＳＦの送信とは別の動作として生成され得る。上記ファイルシステムの上記コンテンツは、任意の属性、ディスクリプタ、特性、値、あるいは、ファイル、フォルダ、メタデータ、または、アカウントに関係するか、または、これらの何れかを記述する、他の任意の情報であり得る。ＣＳＦを生成するために用いるコンテンツは、削除コマンドが対象とされたアカウントに関係するものであってもよい。幾つかの実施形態では、ＣＳＦを生成するために用いるコンテンツは、他のアカウント（例えば、これもまたローカル・ファイルシステムとリモート・ファイルシステムとの間において同期している第２のユーザのアカウント）に関係するものであってもよい。ＣＳＦを生成するために用いるコンテンツは、第１の認証ファクタとは別（例えば、パスワードでない、ユーザ名でない、生成されたＲＳＡキーでない等）であり得る。ＣＳＦは、質問文または宣言文のようなエクスプレッション（言語エクスプレッションとも称する）でもよい。生成されたＣＳＦは、３４４において、リモート・ファイルシステムを動作するサーバへ送信され得る。
【００５４】
３４２において第１の認証ファクタを、または、３４４において第２の認証ファクタ（すなわち、ＣＳＦ）を送信した後に、３４６において、削除コマンドはリモート・ファイルシステムへ送信され得る。削除コマンドは、３４２における第１の認証ファクタの一部として３４６において送信されてもよい。幾つかの実施形態では、第１の認証ファクタ、第２の認証ファクタ、または、削除コマンド、あるいはその組合せは、共に送信され得る。例えば、３４６において削除コマンドを送信すること、および、３４４においてＣＳＦを送信することは、同時に起こってもよい。幾つかの実施形態では、第１の認証ファクタ、第２の認証ファクタ、または、削除コマンド、あるいはその組合せは、単一の送信として、３４２、３４４、および、３４６において送信され得る。
【００５５】
確認応答（acknowledgement、確認（confirmation）とも称する）は、３４８において受信され得る。確認応答は、３４２において送信された第１の認証ファクタが受信されたことの確認を受信することに応答して、３４８において受信され得る。確認応答は、３４４で送信されたＣＳＦが受信されたことの確認を受信することに応答して、３４８において受信され得る。確認応答は、３４６で送信された削除コマンドが受信されたことの確認を受信することに応答して、３４８において受信され得る。確認応答は、リモート・ファイルシステムと関連して１つまたは複数のサーバまたはコンピュータによって生成され得る。確認応答は、第１の伝送チャネル、第２の伝送チャネル、または、追加の伝送チャネルを通して受信され得る。幾つかの実施形態では、３４８において受信される確認応答は、３４２における第１の認証ファクタまたは３４４におけるＣＳＦが３４６において送信された削除コマンドを認証しないことを示すことができる。
【００５６】
３５０において、削除コマンドは、ローカル・ファイルシステム上で実行され得る。３４２、３４４、または、３４６において様々なコンポーネントをリモート・ファイルシステムへ送信した後に、あるいは、３４８の確認応答の後に、削除コマンドは３５０において実行され得る。削除コマンドが同期したコンテンツを対象としないと３４０において判断されるならは、削除コマンドは３５０において実行され得る。３５０において削除コマンドがローカル・ファイルシステム上で実行された後、３９５において方法３００は終了することができる。
【００５７】
図４は、本開示の実施形態に従って用いられ得るコンピュータ・システムの１つの例４０１の代表的な重要コンポーネントを示す。個々のコンポーネントは、複雑さ、数、タイプ、または、構成、あるいはその組合せにおいて異なる場合があると認識される。開示される特定の例は、例示のみを目的とし、必ずしもそのような変形に限られるというわけではない。コンピュータ・システム４０１は、プロセッサ４１０、メモリ４２０、入出力インタフェース（本願明細書においては、Ｉ／ＯまたはＩ／Ｏインタフェース）４３０、および、メインバス４４０を含み得る。メインバス４４０は、コンピュータ・システム４０１の他のコンポーネントに対して通信経路を提供することができる。幾つかの実施形態では、メインバス４４０は、特別なデジタル・シグナル・プロセッサ（図示せず）のような他のコンポーネントに接続し得る。
【００５８】
コンピュータ・システム４０１のプロセッサ４１０は、１つまたは複数のコア４１２Ａ、４１２Ｂ、４１２Ｃ、４１２Ｄ（集合的には、４１２）を含んで構成され得る。プロセッサ４１０は、更に、コア４１２のために命令およびデータの一時ストレージを提供する、１つまたは複数のメモリ・バッファまたはキャッシュ（図示せず）を含み得る。コア４１２は、キャッシュから、または、メモリ４２０から与えられる入力に対して命令を実行して、結果をキャッシュまたはメモリに出力することができる。コア４１２は、本開示の実施形態と一致する１つまたは複数の方法を実行するように構成された１つまたは複数の回路を含んで構成され得る。幾つかの実施形態では、コンピュータ・システム４０１は、複数のプロセッサ４１０を含み得る。幾つかの実施形態では、コンピュータ・システム４０１は、単一のコア４１２を有する単一のプロセッサ４１０でもよい。
【００５９】
コンピュータ・システム４０１のメモリ４２０は、メモリ・コントローラ４２２を含み得る。幾つかの実施形態では、メモリ４２０は、データおよびプログラムを記憶するために、ランダムアクセス半導体メモリ、ストレージ・デバイス、または、記憶媒体（揮発性または不揮発性の何れか）を含み得る。幾つかの実施形態では、メモリは、複数のモジュールの形（例えば、デュアル・インライン・メモリ・モジュール）であり得る。メモリ・コントローラ４２２はプロセッサ４１０と通信することができ、メモリ４２０内の情報の記憶および検索を容易にする。メモリ・コントローラ４２２はＩ／Ｏインタフェース４３０と通信することができ、メモリ４２０における入力または出力の記憶および検索を容易にする。
【００６０】
Ｉ／Ｏインタフェース４３０は、Ｉ／Ｏバス４５０、端末インタフェース４５２、ストレージ・インタフェース４５４、Ｉ／Ｏデバイス・インタフェース４５６、および、ネットワーク・インタフェース４５８を含み得る。Ｉ／Ｏインタフェース４３０は、メインバス４４０をＩ／Ｏバス４５０に接続し得る。Ｉ／Ｏインタフェース４３０は、プロセッサ４１０およびメモリ４２０からＩ／Ｏバス４５０の様々なインタフェースへ命令およびデータを導くことができる。Ｉ／Ｏインタフェース４３０は、Ｉ／Ｏバス４５０の様々なインタフェースからプロセッサ４１０およびメモリ４２０へ命令およびデータを導くこともできる。これらの様々なインタフェースは、端末インタフェース４５２、ストレージ・インタフェース４５４、Ｉ／Ｏデバイス・インタフェース４５６、および、ネットワーク・インタフェース４５８を含み得る。幾つかの実施形態では、上記様々なインタフェースは、上述したインタフェースのサブセットを含む場合がある（例えば、産業上の応用における組込み型コンピュータ・システムは、端末インタフェース４５２およびストレージ・インタフェース４５４を含まない場合がある）。
【００６１】
コンピュータ・システム４０１の全体にわたる複数の論理モジュールは、ハイパーバイザまたはオペレーティング・システム（図示せず）に対して、１つまたは複数のコンポーネントへの変更および障害についての情報を通信することができる。複数の論理モジュールは、メモリ４２０、プロセッサ４１０、および、Ｉ／Ｏインタフェース４３０を含むがこれらに限らない。ハイパーバイザまたはオペレーティング・システムは、コンピュータ・システム４０１において利用可能な様々なリソースを割り当てることができ、メモリ４２０におけるデータの位置、および、様々なコア４１２に割り当てられるプロセスの位置を追跡することができる。複数の要素を組み合わせるかまたは再編成する実施形態において、上記論理モジュールの態様および能力は組み合わされるまたは再分配され得る。これらの変形は、当業者にとって明らかである。
【００６２】
本開示はクラウド・コンピューティングに関する詳細な記述を含むが、本願明細書において詳述される教示の実施がクラウド・コンピューティング環境に限られないことは理解すべきである。むしろ、本発明の実施形態は、現在知られているかまたは後に開発される他のタイプの任意のコンピューティング環境に関連しても実施され得る。
【００６３】
クラウド・コンピューティングは、サービスのプロバイダとの対話および管理作業を最小にしつつ迅速に配給且つリリースされ得る構成可能なコンピューティング・リソース（例えば、ネットワーク、ネットワーク帯域、サーバ、処理、メモリ、ストレージ、アプリケーション、仮想マシン、および、サービス）の共用プールへの便利なオンデマンドのネットワーク・アクセスを可能にするためのサービス配給のモデルである。このクラウド・モデルは、少なくとも５つの特性、少なくとも３つのサービス・モデル、および、少なくとも４つの展開モデルを含み得る。
【００６４】
特性は、以下の通りである。
オンデマンドのセルフサービス：クラウドの消費者は、サービスのプロバイダとの人間の対話を必要とせずに自動的に必要に応じて、例えば、サーバ時間およびネットワーク・ストレージのようなコンピューティング能力を一方的に設定し得る。
広いネットワーク・アクセス：能力はネットワークを通じて利用可能で、種々のシン（thin）またはシック（thick）クライアントのプラットフォーム（例えば、携帯電話、ラップトップ、および、ＰＤＡ）による使用を促進する標準メカニズムを通してアクセスされる。
リソース・プーリング：プロバイダのコンピューティング・リソースは、需要に従って動的に割り当てられ再割り当てされる様々な物理的および仮想的なリソースを、マルチテナント・モデルを用いて、複数の消費者に提供するためにプールされる。消費者が、一般に、提供されたリソースの正確な位置について制御または知識を有することなく、より高い抽象化のレベルにおける位置（例えば、国、州、または、データ・センター）を特定することが可能であり得るという点で、位置独立の意味がある。
迅速な弾力性：能力は、迅速に、そして、弾性力をもって、そして、場合によっては自動的に、配給されて、急速にスケールアウトすること、および、迅速にリリースされて急速にスケールインすることができる。消費者にとっては、配給に利用できる能力はしばしば無制限であるように見え、何時でも任意の量が購入可能である。
計測サービス：クラウド・システムは、サービスのタイプ（例えば、ストレージ、処理、帯域、および、アクティブなユーザ・アカウント）に相応しい、ある程度の抽象化レベルで計測能力を活用することによってリソースの使用を自動制御し最適化する。リソースの使用状況は、モニタされ、制御され、報告され得、利用されたサービスのプロバイダおよび消費者の両方に透明性を提供する。
【００６５】
サービス・モデルは、以下の通りである。
サービスとしてのソフトウェア（ＳａａＳ）：消費者へ提供される能力は、クラウド基盤上で実行されるプロバイダのアプリケーションを使用することである。アプリケーションは、ウェブ・ブラウザ（例えば、ウェブ・ベースの電子メール）のようなシン・クライアント・インタフェースを通して様々なクライアント・デバイスからアクセス可能である。限られたユーザに特有のアプリケーションの構成設定という例外があり得るが、消費者は、ネットワーク、サーバ、オペレーティング・システム、ストレージ、または、個々のアプリケーション機能さえも含む、基礎となるクラウド基盤を管理も制御もしない。
サービス（ＰａａＳ）としてのプラットフォーム：消費者へ供給される能力は、プロバイダによってサポートされるプログラミング言語およびツールを用いて作成された、消費者により作られまたは消費者により獲得されたアプリケーションをクラウド基盤上へ展開することである。消費者は、ネットワーク、サーバ、オペレーティング・システム、または、ストレージを含む、基礎となるクラウド基盤を管理も制御もしないが、展開されたアプリケーション、そして、おそらくは、環境設定をホストするアプリケーションを制御する。
サービス（ＩａａＳ）としての基盤：消費者へ供給される能力は、処理、ストレージ、ネットワーク、および、他の基本的なコンピューティング・リソースを配給することである。ここで、消費者は、オペレーティング・システムおよびアプリケーションを含むことができる任意のソフトウェアを展開し実行することができる。消費者は、基礎となるクラウド基盤を管理も制御もしないが、オペレーティング・システム、ストレージ、および、展開されたアプリケーションを制御し、そして、おそらくは、選択されたネットワーキング・コンポーネント（例えば、ホスト・ファイアウォール）を限定的に制御する。
【００６６】
展開モデルは、以下の通りである。
プライベート・クラウド：クラウド基盤は、単に１つの組織のためにだけ動作される。それは、組織または第三者によって管理され得、構内または構外に存在し得る。
共同体クラウド：クラウド基盤は、幾つかの組織によって共有され、懸念（例えば、任務、セキュリティ要求、ポリシー、および、コンプライアンス上の問題）を共有した特定の共同体をサポートする。それが、それらの組織または第三者によって管理され得、構内または構外に存在し得る。
公的なクラウド：クラウド基盤は、一般市民または大きい産業グループに対して利用可能にされ、クラウド・サービスを販売する組織によって所有される。
ハイブリッド・クラウド：クラウド基盤は、それぞれ固有のエンティティのままであるが、データおよびアプリケーションのポータビリティを有効にする標準化された技術またはプロプライエタリの技術（例えば、クラウドの間のロード・バランシングのためのクラウド・バースティング）によって結び付けられた２つ以上のクラウド（プライベート、共同体、または、公的）の混合形態である。
【００６７】
クラウド・コンピューティング環境は、無国籍、低結合、モジュラー性、および、意味的な相互運用性に焦点を合わせて方向付けられたサービスである。クラウド・コンピューティングの核心は、相互接続したノードのネットワークを含む基盤である。
【００６８】
ここで図５を参照する。例示的なクラウド・コンピューティング環境５０が示されている。図示されているように、クラウド・コンピューティング環境５０は、例えば、パーソナル・デジタル・アシスタント（ＰＤＡ）またはセルラ電話５４Ａ、デスクトップ・コンピュータ５４Ｂ、ラップトップ・コンピュータ５４Ｃ、または、自動車コンピュータ・システム５４Ｎ、あるいはその組合せのような、クラウド利用者により用いられるローカル・コンピューティング・デバイスが通信し得る１つまたは複数のクラウド・コンピューティング・ノード１０を含む。ノード１０は、互いに通信し得る。それらは、例えば、前述のような、プライベート・クラウド、共同体クラウド、公的なクラウド、もしくは、ハイブリッド・クラウドまたはその組合せのように、１つまたは複数のネットワークにおいて、物理的または仮想的にグループ化され得る（図示せず）。これによって、クラウド消費者がローカル・コンピューティング・デバイス上のリソースを維持する必要はないようなサービスとして、基盤、プラットフォーム、または、ソフトウェア、あるいはその組合せをクラウド・コンピューティング環境５０が提供し得るようになる。図５に示されるコンピューティング・デバイス５４Ａ〜５４Ｎのタイプが例示のみであることが意図されていることと、コンピューティング・ノード１０およびクラウド・コンピューティング環境５０が任意のタイプのネットワークまたはネットワーク・アドレス指定可能な接続、あるいはその両方を通って（例えば、ウェブ・ブラウザを用いて）、任意のタイプのコンピュータ化されたデバイスと通信し得ることとは理解されるであろう。
【００６９】
次に図６を参照する。クラウド・コンピューティング環境５０（図５）により提供される一組の機能抽象化層が示される。図１、図２、および、図３に示されるコンポーネント、層、および、機能が例示のみであることを意図するものであり、それらによって本発明の実施形態が制限されないことが事前に理解されるべきである。図示されているように、以下の層および対応する機能が提供される。
【００７０】
ハードウェアおよびソフトウェア層６０は、ハードウェア・コンポーネントおよびソフトウェア・コンポーネントを含む。ハードウェア・コンポーネントの複数の例は、メインフレーム６１、ＲＩＳＣ（Reduced Instruction Set Computer）アーキテクチャ・ベースのサーバ６２、サーバ６３、ブレード・サーバ６４、ストレージ・デバイス６５、および、ネットワークおよびネットワーキング・コンポーネント６６を含む。幾つかの実施形態では、ソフトウェア・コンポーネントは、ネットワーク・アプリケーション・サーバ・ソフトウェア６７およびデータベース・ソフトウェア６８を含む。
【００７１】
仮想化層７０は、そこから以下の例の仮想エンティティが設けられ得る、１つの抽象化層を提供する。仮想サーバ７１、仮想ストレージ７２、仮想ネットワーク７３（仮想プライベート・ネットワークを含む）、仮想アプリケーションおよびオペレーティング・システム７４、および、仮想クライアント７５。
【００７２】
１つの例において、管理層８０が以下に記述する機能を提供し得る。リソース配給８１は、コンピューティング・リソース、および、クラウド・コンピューティング環境の中でタスクを実行するために利用される他のリソースの動的な獲得を行う。測定およびプライシング８２は、リソースがクラウド・コンピューティング環境の中で利用されるとき、費用追跡を実行し、そして、これらのリソースの消費に対する課金および請求書発行を行う。１つの例において、これらのリソースは、アプリケーション・ソフトウェア・ライセンスを含み得る。セキュリティは、データおよび他のリソースの保護と共に、クラウド消費者およびタスクのためにアイデンティティ検証を行う。ユーザ・ポータル８３は、消費者およびシステム管理者が、クラウド・コンピューティング環境へアクセスできるようにする。サービス・レベル管理８４は、必要なサービス・レベルが満たされるようにクラウド・コンピューティング・リソースの割振りおよび管理を行う。サービス品質保証契約（ＳＬＡ：Service Level Agreement）計画および遂行８５は、それに対する将来の要求がＳＬＡに従って予想されるクラウド・コンピューティング・リソースのための事前の合意および獲得を行う。
【００７３】
ワークロード層９０は、クラウド・コンピューティング環境が利用され得る機能の例を提供する。この層から提供され得るワークロードおよび機能の例は、以下のものを含む。マッピングおよびナビゲーション９１、ソフトウェア開発およびライフサイクル管理９２、仮想教室の教育配信９３、データ解析処理９４、トランザクション処理９５、および、セキュリティおよび認証９６。
【００７４】
本発明は、任意の考えられる技術的な詳細さの集積化レベルにおける、システム、方法、または、コンピュータ・プログラム製品、あるいはその組合せであり得る。コンピュータ・プログラム製品は、プロセッサに本発明の態様を実施させるためのコンピュータ可読プログラム命令を、その上に有するコンピュータ可読記憶媒体（または複数の媒体）を含み得る。
【００７５】
コンピュータ可読記憶媒体は、命令実行デバイスによる使用のために命令を保持し記憶し得る有形のデバイスであり得る。コンピュータ可読記憶媒体は、例えば、これらに限定されないが、電子ストレージ・デバイス、磁気ストレージ・デバイス、光学的ストレージ・デバイス、電磁ストレージ・デバイス、半導体ストレージ・デバイス、または、前述の任意の適当な組合せであり得る。コンピュータ可読記憶媒体のより多くの具体例の網羅的でないリストは、以下のものを含む。ポータブル・コンピュータ・ディスケット、ハード・ドライブ、ランダム・アクセス・メモリ（ＲＡＭ）、読取り専用メモリ（ＲＯＭ）、消去可能プログラム可能読取り専用メモリ（ＥＰＲＯＭまたはフラッシュ・メモリ）、スタティック・ランダム・アクセス・メモリ（ＳＲＡＭ）、ポータブルコンパクト・ディスク読取り専用メモリ（ＣＤ−ＲＯＭ）、デジタル・ヴァーサタイル・ディスク（ＤＶＤ）、メモリ・スティック、フロッピー・ディスク、機械的に符号化されたデバイス（例えば、その上に記録された命令を有する穿孔カードまたは溝内の隆起構造）、および、前述の任意の適当な組合せ。（本明細書で用いられる）コンピュータ可読記憶媒体は、一過性の信号それ自体であるものとして解釈されるべきではない。一過性の信号とは、例えば、電波または他の自由に伝播する電磁波、導波管または他の伝送媒体を通って伝播する電磁波（例えば、光ファイバーケーブルを通過する光パルス）、または、ワイヤを通って伝導する電気信号である。
【００７６】
本願明細書において記述されているコンピュータ可読プログラム命令は、コンピュータ可読記憶媒体からそれぞれのコンピューティング／処理デバイスに、あるいは、ネットワーク（例えば、インターネット、ローカル・エリア・ネットワーク、広域ネットワーク、もしくは、ワイヤレス・ネットワーク、またはその組合せ）を経由して外部コンピュータもしくは外部ストレージ・デバイスにダウンロードされ得る。ネットワークは、銅の伝送ケーブル、光伝送ファイバ、無線通信、ルータ、ファイアウォール、スイッチ、ゲートウェイ・コンピュータ、または、エッジサーバ、あるいはその組合せを含み得る。各コンピューティング／処理デバイス内のネットワーク・アダプタ・カードまたはネットワーク・インタフェースは、ネットワークからコンピュータ可読プログラム命令を受信して、それぞれのコンピューティング／処理デバイスの中のコンピュータ可読記憶媒体に記憶するために、これらのコンピュータ可読プログラム命令を転送する。
【００７７】
本発明の動作を実行するためのコンピュータ可読プログラム命令は、アセンブラ命令、命令セット・アーキテクチャ（ＩＳＡ）命令、機械語命令、機械依存命令、マイクロコード、ファームウェア命令、状態設定データ、集積回路用の設定データ、または、Ｓｍａｌｌｔａｌｋ、Ｃ＋＋、等のようなオブジェクト指向プログラミング言語、および、「Ｃ」プログラミング言語または類似のプログラミング言語のような手続き型プログラミング言語を含む１つまたは複数のプログラミング言語の任意の組合せで記された、ソース・コードもしくはオブジェクトコードの何れかであり得る。コンピュータ可読プログラム命令は、全体的にユーザのコンピュータ上で、スタンドアロン・ソフトウェア・パッケージとして、部分的にユーザのコンピュータ上で、それぞれ部分的にユーザのコンピュータ上およびリモート・コンピュータ上で、あるいは、全体的にリモート・コンピュータまたはサーバ上で実行し得る。後者の状況において、リモート・コンピュータは、（ローカル・エリア・ネットワーク（ＬＡＮ）または広域ネットワーク（ＷＡＮ）を含む）任意のタイプのネットワーク経由でユーザのコンピュータに接続され得る、あるいは、この接続は、（例えば、インターネット・サービス・プロバイダを用いインターネットを通して）外部コンピュータに為され得る。幾つかの実施形態では、本発明の複数の態様を実行するために、例えば、プログラマブル・ロジック回路、フィールドプログラマブル・ゲートアレイ（ＦＰＧＡ）、または、プログラマブル・ロジック・アレイ（ＰＬＡ）を含む電子回路は、コンピュータ可読プログラム命令の状態情報を利用して電子回路を個人化することによって、コンピュータ可読プログラム命令を実行し得る。
【００７８】
本願明細書において、本発明の複数の態様は、本発明の複数の実施形態に従って、方法、装置（システム）、および、コンピュータ・プログラム製品のフローチャート図示、または、ブロック図、あるいはその両方を参照して記述されている。フローチャート図示またはブロック図あるいはその両方の各ブロック、および、フローチャート図示またはブロック図あるいはその両方のブロックの組合せが、コンピュータ可読プログラム命令によって実装され得ることが理解されるであろう。
【００７９】
これらのコンピュータ可読プログラム命令は、汎用コンピュータ、専用コンピュータ、または、他のプログラマブル・データ処理装置のプロセッサに提供され得、コンピュータまたは他のプログラマブル・データ処理装置プロセッサによって実行される命令がフローチャートまたはブロック図あるいはその両方の１つまたは複数のブロックで指定されている機能／動作を実現するための手段を作るようにして、マシンを形成することができる。これらのコンピュータ可読プログラム命令は、コンピュータ、プログラマブル・データ処理装置、または、他のデバイス、あるいはその組合せに対して、その中に記憶される命令を有するコンピュータ可読記憶媒体がフローチャートまたはブロック図あるいはその両方の１つまたは複数のブロックで指定されている機能／動作の複数の態様を実施する命令を含む製品を構成するような、特定の仕方で機能するように指示し得るコンピュータ可読記憶媒体に記憶され得る。
【００８０】
上記のコンピュータ可読プログラム命令は、また、コンピュータ、他のプログラマブル・データ処理デバイス、または、他のデバイス上へロードされ、このコンピュータ、他のプログラマブル装置、または、他のデバイス上で実行されるべき一連の動作ステップに、このコンピュータ、他のプログラマブル装置、または、他のデバイス上で実行される命令がフローチャートまたはブロック図あるいはその両方の１つまたは複数のブロックで指定されている機能／動作を実施するように、コンピュータ実施プロセスを生じさせることができる。
【００８１】
図面のフローチャートおよびブロック図は、本発明の様々な実施形態に従う、システム、方法、および、コンピュータ・プログラム製品の可能な実施のアーキテクチャ、機能、および、動作を例示する。この点に関しては、フローチャートまたはブロック図の各ブロックは、指定された論理機能を実施するための１つまたは複数の実行可能命令を含む、１つのモジュール、１つのセグメント、または、複数の命令の１つの部分を示すことができる。幾らかの代替の実施において、複数のブロックに記載された複数の機能は、図面に記載された順序とは異なる順序で起こる場合がある。例えば、連続して示される２ブロックは、関係する機能によっては、実際には、実質的に並行して、または、時々は逆順で実行され得る。ブロック図またはフローチャート図示あるいはその両方の各ブロック、および、ブロック図またはフローチャート図示あるいはその両方における複数のブロックの組合せは、指定された機能または動作を実行するかまたは専用ハードウェアおよびコンピュータ命令の組合せを実施専用ハードウェア・ベースのシステムによって実現され得る点にも留意される。
【００８２】
本開示の様々な実施形態の記述は、例示目的で提示されたが、網羅的であることも開示された実施形態に限られることも意図されるものではない。記述されている実施形態の範囲を逸脱しない範囲で多くの変更および変形が当業者にとって明らかであろう。本願明細書において用いられる用語は、実施形態の原理、実際的応用、または、市場で見つかる技術を越える技術的な進歩を説明するため、あるいは、他の当業者が本願明細書において開示された実施形態を理解できるようにするために選ばれたものである。
【図１】
2020537246.tif 000004
【図２】
2020537246.tif 000005
【図３】
2020537246.tif 000006
【図４】
2020537246.tif 000007
【図５】
2020537246.tif 000008
【図６】
2020537246.tif 000009
【国際調査報告】
2020537246.tif 000010
2020537246.tif 000011