JP2018512674A - 選択的コンテンツ共有のためのネスト化ネームスペース - Google Patents

選択的コンテンツ共有のためのネスト化ネームスペース Download PDF

Info

Publication number
JP2018512674A
JP2018512674A JP2017550811A JP2017550811A JP2018512674A JP 2018512674 A JP2018512674 A JP 2018512674A JP 2017550811 A JP2017550811 A JP 2017550811A JP 2017550811 A JP2017550811 A JP 2017550811A JP 2018512674 A JP2018512674 A JP 2018512674A
Authority
JP
Japan
Prior art keywords
namespace
folder
access
user
root
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2017550811A
Other languages
English (en)
Other versions
JP6522780B2 (ja
Inventor
ミューレン, マルシオ ヴォン
ミューレン, マルシオ ヴォン
ニルス バンガー,
ニルス バンガー,
エミル イブリシモフ,
エミル イブリシモフ,
ツァヒ グリク,
ツァヒ グリク,
グレッグ プライス,
グレッグ プライス,
Original Assignee
ドロップボックス, インコーポレイテッド
ドロップボックス, インコーポレイテッド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=55752745&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=JP2018512674(A) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by ドロップボックス, インコーポレイテッド, ドロップボックス, インコーポレイテッド filed Critical ドロップボックス, インコーポレイテッド
Publication of JP2018512674A publication Critical patent/JP2018512674A/ja
Application granted granted Critical
Publication of JP6522780B2 publication Critical patent/JP6522780B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/16File or folder operations, e.g. details of user interfaces specifically adapted to file systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/18File system types
    • G06F16/185Hierarchical storage management [HSM] systems, e.g. file migration or policies thereof
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/104Grouping of entities
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2145Inheriting rights or properties, e.g., propagation of permissions or restrictions within a hierarchy
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/101Access control lists [ACL]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Data Mining & Analysis (AREA)
  • General Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Human Computer Interaction (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

選択的コンテンツ共有のためのネスト化ネームスペースを提供する。コンテンツ管理システムにおいて、複数のユーザについてコンテンツが格納される。当該コンテンツは、複数の階層構造に配置される複数のコンテンツアイテム及び複数のフォルダを含む。複数のルートネームスペースが設けられる。各ルートネームスペースは、アカウントのルートフォルダをルートとしている。複数のフォルダから選択された第1のフォルダをルートとしている第1のネームスペースが設けられる。ユーザの第1の集合に対してアクセスを許可する第1のパーミッションが、第1のネームスペースに対して保持される。第2のフォルダの共有を求める要求が受け付けられる。第2のフォルダは、特定の階層構造において第1のフォルダの子である。第2のフォルダをルートとしている第2のネームスペースが設けられる。ユーザの第2の集合に対してアクセスを許可する第2のパーミッションが、第2のネームスペースに対して保持される。

Description

本発明は、クラウドベースのコンテンツ管理システムに関するものである。より具体的には、本明細書に記載の(複数の)実施形態の例は、デジタルドキュメント及びコンテンツアイテムのようなデジタルコンテンツの格納、管理、共有、及び当該デジタルコンテンツへのアクセスのための、クラウドベースのコンテンツ管理システムに関するものである。
従来、企業及びその他の組織は、ネットワークファイルサーバに、ドキュメント、ファイル、及びその他のデジタル情報といったデジタルコンテンツを格納している。そのようなファイルサーバは、典型的には、ファイルサーバに格納されたコンテンツアイテムへの不正なネットワークを防ぐネットワークファイアウォールの内側にある施設内に設置される。従業員によって作成されたコンテンツは、企業に帰属する。ファイルサーバ上にはそのようなコンテンツが集中化され、それにより、企業が、当該企業に属するコンテンツから個人的なコンテンツアイテムを区別することが可能になる。即ち、企業は、ファイルサーバ上に存在する全てのアイテムを、企業所有のコンテンツとして扱う。更に、この集中化の見方により、企業がコンテンツを容易に管理することが可能になる。例えば、IT管理者又はアドミニストレータは、会社のファイルサーバに格納されているコンテンツに対してアクセス制御パーミッションを設定できる。
遠隔で働くために、従業員は、多くの場合、そのパーソナルコンピュータ、パーソナルアカウント及び/又はパーソナルストレージデバイスにコンテンツアイテムを格納しており、それにより、オフラインで、又はさもなければファイルサーバに接続されていない間に、コンテンツアイテムを用いて働くことができる。これは雇用主の観点からは理想的ではなく、それは、雇用主は、ファイルサーバに格納されているコンテンツアイテムと比較した場合に、ローカルに格納されたコンテンツアイテムに対するコントロールをほとんど有しないためである。これは、例えば従業員のパーソナルコンピューティングデバイスが紛失、損傷、又は盗難されたような場合に、リスクをもたらす。更に、雇用主は、ファイルサーバの外部ではオフラインコピーについてのアクセスのコントロールを失う。
企業は、自らが所有するファイルサーバ上にコンテンツを格納するのに加えて、又はそれとともに、サービスによって運用されているサーバ上に自らのコンテンツを「ホスティングする(host)」ためにクラウドベースのコンテンツ管理サービスを使用しうる。クラウドベースのストレージは、企業及びその従業員に一様に多くの利点を提供できる。オンラインコンテンツ管理サービスの1つの例は、サンフランシスコ,CAのDropbox,Inc.によって提供される「Dropbox」サービスである。Dropboxサービスは、ホスティングされたコンテンツアイテムを、多数のデバイス及びユーザ間で同期及び共有する能力を提供している。エンドユーザデバイス及びDropbox,Inc.のサーバの両方にコンテンツを格納して同期させることから生じる、この柔軟性は、社内及び遠隔の様々な異なる勤務形態を後押しする。
いくつかの既存のクラウドベースのコンテンツ管理システムでは、コンテンツストレージモデルが、従来のファイルサーバモデルよりも集中化されていない。特に、これらのシステムでは、システムの各ユーザは、システムと同期させられるコンテンツアイテムが格納された、当該ユーザのパーソナルコンピューティングデバイス上に、独自の個人同期リポジトリを有している。更に、各ユーザは、互いに独立した個人同期リポジトリを保持している。
いくつかの既存のシステムは、選択されたコンテンツアイテムを同期リポジトリ間で共有するための仕組みを提供する。例えば、いくつかの既存のシステムでは、ユーザ・アリスは、ボブが彼の同期リポジトリ内の共有フォルダに対して行う更新がアリスの同期リポジトリ内でアリスに見えるように、アリスの同期リポジトリ内のフォルダをユーザ・ボブと共有できる。しかし、既存のシステムでは、共有フォルダの所有者は、個人に関係している。これは、アリスが会社を辞め、彼女の同期リポジトリを廃止した、又は単に彼女の同期リポジトリから共有フォルダを削除した場合に問題がある。この場合、彼女がボブと共有していたフォルダに、もはやボブがアクセスできなくなりうる。最悪の場合、共有フォルダに蓄積されていた作業結果の全てが失われる。
既存のシステム上の共有フォルダに関する他の問題は、当該共有フォルダが他の人の同期リポジトリに組み込まれた場合に、共有フォルダに関連する階層情報が失われうることである。例えば、アリスが彼女の同期リポジトリ内に、パス/A/B/Cを有するフォルダを有していると仮定する。既存のシステムでは、アリスがフォルダ/A/B/Cをクリスと共有する場合、当該フォルダは、親フォルダ「A」及び「B」についての階層情報が失われたクリスの同期リポジトリ内において/Cとして表れる。このため、同一のリソースに関して、異なるユーザに対して異なる階層情報が使用可能になりうるため、当該リソースの正確なロケーションについて伝えることが難しくなる。更には、当該リソース又は親リソースの更なる共有が制約される。例えば、システムは、アリスが、フォルダ/A/B/Cをクリスと共有した後に、フォルダ/A/Bをボブと共有することを妨げる。
全体としては、既存のクラウドベースのコンテンツ管理システムは、同期リポジトリの個別化の特性及び分散化の特性に起因して、企業に属するコンテンツアイテムの管理及び格納に使用される場合に当該企業に対して調整コストを増加させる。企業によって生成されるデジタル情報の量の増加を前提とすると、クラウドベースのコンテンツ管理サービスへの企業によるコンテンツアイテムのホスティングは、増加することのみが予測されうる。この傾向は、そのようなサービスに企業がホスティングするコンテンツに対するコントロールのレベルを保持し、かつ、よりカスタマイズ可能なパーミッションをそのようなコンテンツに対して提供するという、企業の要求と関連している。本発明は、このニーズ及び他のニーズを満たす。
このセクションに記載のアプローチは、追及可能なアプローチであるが、必ずしもこれまでに考え出されてきた又は追求されてきたアプローチとは限らない。したがって、特に記載されている場合を除き、このセクションに記載のアプローチのいずれも単にこのセクションに含まれるとの理由で従来技術とみなされると考えられてはならない。
本発明の(複数の)実施形態の例は、添付の図面において、限定ではなく例として示されており、以下の図面において同様の参照番号は同様のエレメントを参照する。
図1は、本明細書に記載の1つ以上の実施形態に係る分散型コンピューティング環境の例を示すブロック図である。
図2は、1つ以上の実施形態に係る、2つの階層構造との関連で、ネスト化ネームスペースを含むネームスペースの例を示している。
図3は、個別のパーミッションを有する共有フォルダに対応するネスト化ネームスペースを作成するためのプロセスの例を図示するフローチャートである。
図4A〜図4Cは、1つ以上の実施形態に係る、パーミッションに基づいて特定のユーザが使用可能な階層データの例を示している。
図5は、1つ以上の実施形態に係るマウント動作の例に関して取得が成功したマウントロックの例を示している。
図6は、1つ以上の実施形態に係るマウント動作の例に関して取得が成功していないマウントロックの例を示している。
図7は、1つ以上の実施形態に係る、ネームスペースをマウントするためのプロセスの例を図示するフローチャートである。
図8は、1つ以上の実施形態が実施されるコンピューティングデバイスの例のブロック図である。
図9は、1つ以上の実施形態が実施されるコンピューティングデバイスの例の動作を制御するためのソフトウェアシステムの例のブロック図である。
以下の記載では、説明を目的として、本発明の(複数の)実施形態の例の深い理解を提供するために多数の具体的詳細を説明する。しかし、当該(複数の)実施形態の例がそれらの具体的詳細なしで実施されるることは理解されよう。他の例では、既知の構成及びデバイスについては、当該(複数の)実施形態を不必要に分かりにくくすることを避けるためにブロック図の形式で示していない。
<コンテンツ管理システム>
図1は、本明細書に記載の1つ以上の実施形態に係る分散型コンピューティング環境の例を示すブロック図である。システム100は、1つ以上のクライアント102〜104を含みうる。クライアントデバイス102〜104は、コンテンツ管理システム108によって管理されるコンテンツにアクセスすることを含む、以下で説明するアクティビティを実現するために使用可能な多数のコンピューティングデバイスのいずれかでありうる。クライアント102〜104は、パーソナルコンピュータ(PC)、インターネットキオスク、パーソナル・デジタル・アシスタント、携帯電話、スマートフォン、他のセルラデバイス、ゲームデバイス、デスクトップコンピュータ、ラップトップコンピュータ、タブレットコンピュータ、他の無線デバイス、セットトップデバイス、車載コンピュータ、他のコンピューティングデバイス、及び/又はそれらの組み合わせでありうるが、それらに限定されない。
クライアントデバイス102〜104は、クライアントアプリケーション112を実行する。本明細書で使用される「アプリケーション」との用語は、一般に、ある機能又は主題を実施する実行可能なソフトウェアの単位を指す。アプリケーションの主題は、広く、任意の数の規律及び機能(オンデマンドコンテンツ管理、電子商取引、証券仲介取引、家庭用娯楽、電卓等)に広くわたって変化し、1つのアプリケーションが2つ以上の主題を有してもよい。実行可能なソフトウェアの単位は、一般に、所定の環境で動作する。クライアントアプリケーション112は、グラフィカルユーザインタフェース(GUI)110、1以上のネームスペースと関連付けて格納されたコンテンツ114へのアクセス、及びネームスペースメタデータ116(ただしこれらに限定されない)等の、1つ以上のコンポーネントを、クライアントデバイス102〜104上で使用可能にしうる。
クライアント102〜104は、通信ネットワーク106に接続されるよう構成される。通信ネットワーク106は、ローカルエリアネットワーク、携帯電話ネットワーク、無線ネットワーク、イントラネット、インターネット、及び/又はデータが転送されうる他の任意の通信リンクといった、1つ以上の通信ネットワークを含みうるが、それらに限定されない。通信ネットワーク106は、クライアント102〜104を、クラウドベースのコンテンツ管理システム108に接続する。
コンテンツ管理システム108は、ユーザがアクセス可能な「クラウドで」管理されるコンテンツを管理及び格納する。例えば、クライアントデバイス102〜104を使用するユーザは、デスクトップアプリケーション、モバイルアプリケーション、ウェブアプリケーション、又はアプリケーションプログラムインタフェース(API)を介して、コンテンツ管理システム108によって管理される管理コンテンツにアクセスしうる。ユーザは、1つ以上のクライアントデバイス102〜104を使用しうる。例えば、ユーザは、1つ以上のデバイスから、関連するアカウントにログインしうる。いくつかの実施形態では、ユーザは、1つ以上のデバイスをコンテンツ管理システム108に登録しうる。コンテンツにアクセスするためのパーミッションは、ユーザ単位及びデバイス単位の少なくともいずれかで管理されうるとともに、それらの任意の組み合わせが、コンテンツの任意のサブセットに対して実施されうる。
いくつかの実施形態では、ユーザは、1つ以上のクライアントデバイス102〜104上の特定のコンテンツのローカルコピーを、1つ以上の他のクライアントデバイス102〜104上のコンテンツ及び/又はコンテンツ管理システム108に格納されているコンテンツと同期させる同期プロセスを通じて、管理されているコンテンツにアクセスできる。例えば、ユーザは、当該ユーザのアカウントと関連付けられているラップトップコンピュータデバイス上でドキュメントを作成又は修正でき、当該更新が、コンテンツ管理システム108を通じて、当該ユーザのアカウントに同様に関連付けられているデスクトップコンピュータデバイスに対して自動的に複製される。代替的に及び/又は追加的には、当該ドキュメントの更新されたバージョンが、コンテンツ管理システム108によって、例えばコンテンツアイテムサーバ118に格納されてもよく、ユーザが、例えばスマートフォンコンピューティングデバイス上で実行するブラウザ又はアプリケーションから、インターネットを介して当該ドキュメントにアクセスしてもよい。
コンテンツ管理システム108は、通信ネットワーク106に接続されたコンテンツアイテムサーバ118及び制御サーバ120と、コンテンツアイテムストレージサーバ122〜124と、ユーザアカウントデータベース126と、ネームスペースメタデータ・データベース128とを含む。本明細書で使用される「サーバ」との用語は、形式にかかわらず、データ、ファイル、アプリケーション、コンテンツ、又は他のサービスを、コンピュータネットワーク上の1つ以上の他のデバイス又はエンティティに提供するよう構成された、任意のコンピュータ化されたコンポーネント、システム、又はエンティティを指す。いくつかの実施形態によれば、コンテンツ管理システム108は、サーバコンピュータ、ネットワークデバイス、ラップトップコンピュータデスクトップコンピュータ、ワークステーションコンピュータ、ブレードサーバ、メインフォースコンピュータ、他のタイプのコンピューティングデバイス、又はそれらの組み合わせ(ただしこれらに限定されない)等の、1つ以上の従来のコンピューティングデバイスに実装される。
コンテンツ管理システム108は、1つ以上のネームスペースに関連付けて格納されているコンテンツアイテム及びフォルダ等のコンテンツについて、クライアント102〜104にコンテンツ管理サービスを提供する。フォルダは、共有フォルダを含んでよく、ネームスペースは、ネスト化ネームスペースを含んでよく、それらの全てについて以降でより詳細に説明する。本明細書で使用される「管理する」との用語は、コンテンツの格納及び提供、コンテンツメタデータの格納及び提供、認証、パーミッションの管理、アカウントの作成及び管理、並びに、コンテンツ管理システム108に関して本明細書で説明する全ての機能を含むがそれに限定されない他の任意の機能を指す。
いくつかの実施形態では、コンテンツ管理システム108は、インターネット又は他の公衆ネットワークを介してコンテンツを管理するためのインターネット・コンテンツ管理サービス、及び/又は、ローカルエリアネットワーク(LAN)又は他のプライベートネットワークを介してコンテンツを管理するためのイントラネット・コンテンツ管理サービスである。コンテンツ管理システム108内のコンポーネントの構成は、単に構成例であり、コンテンツ管理システム108内のコンポーネントは、他の適切な構成に配置されてもよい。
コンテンツ管理システム108によって管理されるコンテンツアイテムは、デジタルドキュメント、ファイル、又はデジタル情報のその他の論理コレクションを含むがそれらに限定されない、デジタル情報の論理コレクションでありうる。多くの場合、コンテンツアイテムは、例えば、画像(例えば、JPEG、TIFF、GIF等)、音楽(例えば、MP3、AIFF、M4A、WAV等)、動画(例えば、MOV、MP4、M4V等)、文書処理ドキュメント(例えば、DOC、DOCX、PAGES等)、他のドキュメント(例えば、PDF等)、スプレッドシートドキュメント(例えば、XLS、XLSX、NUMBERS等)、プレゼンテーションドキュメント(例えば、PPT、PPTX、KEY等)、ウェブページ(例えば、HTM、HTMLS等)、又はテキストファイル(例えば、TXT、RTF等)のような、既知のメディアタイプに対応する。しかし、コンテンツ管理システム108によって管理されるコンテンツアイテムは、特定のメディアタイプに限定されることはなく、コンテンツアイテムには、バイナリデータ、テキストデータ、又は他のデジタル情報を含む、デジタル情報の任意の論理コレクションが包含されうる。
コンテンツ管理システム108は、更に、1つ以上のフォルダを管理しうる。コンテンツ管理システム108によって管理されるフォルダは、1つ以上のコンテンツアイテム及び/又は他のフォルダのコレクションと名付けられる。フォルダは空であってもよく、それは、コンテンツアイテム又は他のフォルダを含んでいないことを意味する。フォルダは他のフォルダ内にネストされることが可能であるため、コンテンツアイテム及びフォルダは複数の階層構造内に配置される。階層構造の葉ノードは、コンテンツアイテム、又はコンテンツを含まない空のフォルダを表す。
コンテンツ管理システム108は、コンテンツアイテムサーバ118、制御サーバ120、ストレージサーバ122〜124、及び/又は他のサーバ等の1つ以上のサーバを含むバックエンドシステムを収納した多数のデータセンタを含んでもよい。データセンタは、米国の州間のように地理的に互いに分散されうる。クライアント102〜104の1つからコンテンツ管理システム108へのネットワーク要求は、例えば、要求のコンテンツ、特性若しくはタイプ、及び/又は、ネットワーク要求の地理的ロケーション(ただしこれらに限定されない)等の、種々の可能性のあるファクタに基づいて、特定のバックエンドシステムを有する適切なデータセンタへルーティングされる。
いくつかの実施形態では、各バックエンドシステムは、それぞれのネットワーク通信モジュール(例えば、132又は136)を介してそれぞれ通信ネットワーク106に接続される、制御サーバ120のような複数の制御サーバ、及び/又は、コンテンツアイテムサーバ118のような複数のコンテンツアイテムサーバを含む。通信ネットワーク106は、インターネットでありうるが、任意のローカルエリアネットワーク(LAN)及び/又はワイドエリアネットワーク(WAN)であってもよい。
いくつかの実施形態において、各コンテンツアイテムサーバ118及び各制御サーバ120は、HTTP、HTTPS又は同じようなプロトコルを介して、ネットワーク要求をクライアントアプリケーション112から受信し、クライアントアプリケーション112へネットワーク応答を配信するWebサーバである。基本的には、コンテンツアイテムサーバ118は、クライアントアプリケーション112によって要求されたとおりに、ストレージサーバ122〜124に格納されているコンテンツアイテムのブロックの格納及び取り出しを行うよう構成される。制御サーバ120は、以下で説明するように、クライアントアプリケーション112に関連する、1つ以上のネームスペースに関連付けて格納されているコンテンツ114へのアクセスの提供、及び、コンテンツ管理システム108とクライアント102〜104との間のコンテンツ114の選択的な同期を含む、クライアントアプリケーション112に関連するコンテンツアイテム管理プロセスを制御するよう構成される。
コンテンツアイテムサーバ118は、典型的には、互いに接続された、ネットワーク通信モジュール132と、ブロック要求モジュール134とを含む。ネットワーク通信モジュール132は、コンテンツアイテムサーバ118を通信ネットワーク106に接続し、通信ネットワーク106からの通信の受信と、クライアントデバイス102〜104又は他の宛先に向かう、通信ネットワーク106への通信の提供とを可能にする。ブロック要求モジュール134は、主として、コンテンツアイテムブロックの要求の受信と、それらの処理と、ネットワーク通信モジュール132を介した、要求されたブロックのクライアント102への返送とに関与する。
ストレージサーバ122〜124は、コンテンツアイテムブロックを格納する。各コンテンツアイテムブロックは、コンテンツ管理システム108によって管理されるコンテンツアイテムの全体又は一部を含みうる。各コンテンツアイテムブロックは、例えば4メガバイト(MB)のような固定サイズであってもよい。コンテンツアイテムのサイズに依存して、コンテンツアイテムは、ストレージサーバ122〜124のうちの1つ以上のストレージサーバ上で、1つ以上のコンテンツアイテムブロック内に格納されてよく、最後のコンテンツアイテムブロックは固定サイズのデータ量より少ないデータ量を有する可能性がある。例えば、ブロック要求モジュール134は、1つ以上の指定されたコンテンツアイテムに対応するデータB1, B2, ... BNの1つ以上のブロックを格納するための、「ストア」要求及び/又は「取り出し」要求を受信及び処理しうる。
制御サーバ120は、互いに通信する、ネットワーク通信モジュール136、ネームスペース管理モジュール138、及び同期モジュール140を含む。ネットワーク通信モジュール136は、制御サーバ120を通信ネットワーク106に接続し、通信ネットワーク106からの通信の受信と、クライアントデバイス102のクライアントアプリケーション112又は他の宛先に向かう、通信ネットワーク106への通信の提供とを可能にする。
ネームスペース管理モジュール138は、主として、ネームスペースメタデータ・データベース128内のネームスペースメタデータを閲覧又は変更(即ち、追加、編集、又は削除)することを求める要求を受信すること、当該要求を処理すること、及び要求中のクライアントデバイス102へ通信モジュール136を介して応答を返すことに関与する。いくつかの実施形態では、ネームスペース管理モジュール138は、特定のネームスペースへのアクセスをユーザの集合に許可するパーミッションを保持している。パーミッションについては以降でより詳しく議論する。
いくつかの実施形態では、ネームスペースへのアクセスを有するユーザは、クライアントデバイス102〜104上で当該ネームスペースに関連付けて格納されているコンテンツ114を、コンテンツ管理システム108によって管理されている、対応するコンテンツアイテムと同期させうる。例えば、同期モジュール140は、特定のネームスペースに関連付けて格納され、かつ、クライアントデバイス102〜104において格納されたコンテンツ114を、ストレージサーバ122〜124に格納されている対応するコンテンツ(例えば、コンテンツアイテム及び/又はフォルダ)と、定期的に同期させうる。コンテンツアイテム又はフォルダ等のコンテンツが、特定のネームスペースがルートとしているフォルダから下降する場合、当該コンテンツは、当該特定のネームスペースに帰属する。ネームスペースについては以降でより詳しく説明する。
いくつかの実施形態では、同期モジュール140は、クライアントデバイス102〜104において格納されているネームスペースメタデータ116を、ネームスペースメタデータ・データベース128に格納されているネームスペースメタデータと、定期的に同期させる。例えば、クライアントデバイス102〜104とコンテンツ管理システム108との間のロングポーリング又はショートポーリング技術によって、ネームスペースに属するコンテンツ114についての変更が検出されると、同期が開始されうる。
アカウントデータベース126は、コンテンツ管理システム108によって作成及び/又は管理が行われるアカウントについての情報を格納している。いくつかの実施形態では、コンテンツ管理システム108は、それぞれ個人ユーザに対応する個人アカウントをサポートしている。代替的に及び/又は追加的には、コンテンツ管理システム108は、エンティティアカウントをサポートしうる。エンティティアカウントは、ユーザの集合と関連付けられたエンティティに対応する。ユーザの集合は、個人アカウントを有するユーザに限定されうるか、又は、コンテンツ管理システム108にアカウントを有していない1以上のユーザを含みうる。各ユーザは、アカウントデータベース126内にレコードを有しうる。いくつかの実施形態において、アカウントデータベース126内の個人アカウントについてのレコードは、以下の情報又は当該情報のサブセット若しくは上位セットを含む:
●アカウントID − アカウントの固有の識別子。
●認証クレデンシャル − アカウントのユーザを認証するために使用されうるユーザ名及びパスワード(ただしこれらに限定されない)等の情報。
●リンクされたデバイス[デバイスID1, デバイスID2, ... デバイスIDn] − 当該アカウントにリンクされたクライアント102〜104の1つ以上の固有の識別子のリスト。このリストは、クライアント102〜104が現在、アカウントにリンクされていなければ、空であってもよい。クライアントデバイス102は、異なる種々の方法でアカウントにリンクされうる。1つの方法では、ユーザが、クライアントアプリケーション112をクライアントデバイス102にインストールすることに成功し、かつ、アカウントに対してクライアントデバイス102から認証することに成功することによって、当該アカウントにクライアントデバイス102をリンクさせうる。例えば、ユーザは、アカウントレコードの認証クレデンシャルをクライアントデバイス102から制御サーバ120へ提供することによって、当該アカウントに対する認証に成功しうる。場合によっては、ユーザがクライアントデバイス102からアカウントに対して認証に成功すること、及びクライアントアプリケーション112がクライアントデバイス102から制御サーバ120との通信に成功することの両方の後まで、クライアントデバイス102はアカウントにリンクされない。
●アクセス可能なネームスペース{デバイスIDi, [ネームスペースID1, ネームスペースID2, ... ネームスペースIDn]} − [デバイスID1, デバイスID2, ... デバイスIDn] におけるアカウントにリンクされたクライアントデバイス102(デバイスIDi)ごとの、クライアントデバイス102がアクセスを有するネームスペースの1つ以上の識別子のリスト。いくつかの実施形態では、個人アカウントも、個人アカウントのルートフォルダをルートとしているルートネームスペースに関連付けられる。アクセス可能なネームスペースのリストは、ルートネームスペースを含んでもよいし、又はルートネームスペースを除外してもよい。
いくつかの実施形態において、より少ない及び/又は更なるモジュール、機能、又はデータベースが、コンテンツ管理システム108に含まれていてもよい。図1においてコンテンツ管理システム108の一部として示されるモジュールは、実施形態の例において実行される機能を表す。
図1では離散的なブロックを描いているが、同図は、機能エレメントの構造的な記載ではなく、いくつかの実施形態の機能的な記載を意図している。当業者は、実際の実装が、種々のコンポーネント間でグループ化又は分割された機能エレメントを有しうることを理解する。同様に、本明細書に記載のデータベースは、1つ以上の結合したデータベース及び/又は1つ以上の分離したデータベースに格納されてもよい。
加えて、図1の1つ以上のブロックは、説明した機能を提供するように設計された1つ以上のサーバ上で実装されてもよい。更に、本明細書の説明では、クライアントデバイス102〜104に実装される特定の特徴、及びコンテンツ管理システム108に実装される特定の特徴に言及しているが、本発明の実施形態は、そのような特徴に限定されない。例えば、コンテンツ管理システム108の一部として本明細書で説明した特徴は、その全体又はその一部がクライアントデバイス102に実装されうるし、その逆も同様でありうる。
<ネームスペース>
ネームスペースは、コンテンツ管理システム108において共通のアクセス制御下にあるコンテンツのコレクションである。ネームスペースは、当該ネームスペース内のコンテンツにアクセスすることをユーザの集合に許可するアクセス制御情報を含むパーミッションを有する。パーミッションは、特定のネームスペースについて異なるユーザに対して許可された異なるタイプのアクセスを特定できる。パーミッションについては以降でより詳しく説明する。
ネームスペースは、特定のフォルダをルートとすることができる。しかし、ネームスペースは、フォルダと等価ではなく、全てのフォルダが、当該フォルダをルートとするネームスペースを有するのではない。コンテンツアイテム又はフォルダ等のコンテンツが、特定のネームスペースがルートとしているフォルダから下降する場合、当該コンテンツは、当該特定のネームスペースに帰属する。特定のネームスペースに属するコンテンツは、更に、当該ネームスペースがルートとしているフォルダから下降する階層構造内にある。このため、ネームスペースのルートフォルダは、当該ネームスペースに属するコンテンツを含む特定の階層構造のルートである。
いくつかの実施形態によれば、ネームスペース内のコンテンツアイテムのサブセットのみが、任意の時点においてクライアントデバイス102と同期させられる。例えば、いくつかの実施形態では、ユーザが、ネームスペースへのアクセスを許可され、関連するクライアントデバイス102を当該ネームスペースと接続すると、ネームスペースメタデータ116及び/又は当該ネームスペースに属するコンテンツを含む階層構造を記述する階層データ等の、当該ネームスペースと関連付けられたデータのサブセットのみが、コンテンツ管理システム108から自動的にダウンロードされて、クライアントデバイス102において格納される。いくつかの実施形態では、階層構造を記述する階層データは、ネームスペースメタデータ116として扱われ、ネームスペースメタデータ116に含められる。
ネームスペースと関連付けられたデータのサブセットのみが自動的にダウンロードされる場合、ユーザは、クライアントデバイス102をより早く当該ネームスペースに参加させることができ、それは、当該ネームスペース内に、1つ以上のネームスペースに関連付けて格納されているコンテンツ114の少なくとも一部が、コンテンツアイテムサーバ118から通信ネットワーク106を介してクライアントデバイス102へダウンロードされないためである。更に、これにより、クライアントデバイス102において利用可能なストレージ空間の量が、ネームスペースに属するコンテンツ114の大部分又は全てを格納するのに必要となるであろう量よりも少ない場合であっても、ユーザがクライアントデバイス102を当該ネームスペースへ参加させることが可能になる。
いくつかの実施形態では、提示されるGUI110は、ネームスペースの階層構造の、ユーザがブラウジング可能なインタラクティブ表現を含む。これは、ルートネームスペース、共有ネームスペース、ネスト化ネームスペース、又はそれらの任意の組み合わせ(ただしこれらに限定されない)等の、以降で説明するネームスペースのタイプの1つ以上に適用されうる。いくつかの実施形態によれば、ユーザは、クライアントデバイス102のオペレーティングシステムによって提供される、MAC OSデバイス上のFinder、又はWINDOWS(登録商標)デバイス上のWINDOWS EXPLORER(ただしこれらに限定されない)等の、ファイルシステムブラウザを用いて、クライアントデバイス102において階層構造をブラウジングできる。
いくつかの実施形態によれば、クライアントデバイス102がネームスペースのメンバーになった後に、アクション可能アイコンが、クライアントデバイス102のGUI110に現れる。例えば、当該アイコンは、クライアント102デバイス上のオペレーティングシステムによって提供されるGUI110のデスクトップ上に現れうる。ユーザは、ネームスペースのコンテンツアイテム階層構造の、ファイルエクスプローラのようなビューを開くために、当該アイコンとのインタラクション(例えば、当該アイコンに対するダブルクリック)を行いうる。更に、ネームスペースのアイコン又は他のインジケーションも、クライアントデバイス102上のオペレーティングシステムによって提供されるインタフェースにおいて他のリソースとともに表示されうる。例えば、アクション可能アイコン又はテキストが、搭載ドライブ、共有ドライブ、ネットワークドライブ、又はクライアントデバイス102の他の接続されたリソースとともに、GUI110内でリスト化されうる。そうすることにより、ユーザが、搭載ドライブ、外部ディスク、及びネットワークドライブといった、他の接続されたリソースにアクセスするために知っているなじみのあるロケーションから、ネームスペースにアクセスできる。
<ルートネームスペース>
ネームスペースの1つの特定のタイプは、ルートネームスペースである。いくつかの実施形態では、ルートネームスペースは、個人アカウント及び/又はエンティティアカウントのルートフォルダをルートとする。
いくつかの実施形態では、ルートネームスペースは、個人アカウントのルートフォルダをルートとする。ユーザのアカウントと関連付けられたコンテンツアイテム及びフォルダは、ルートフォルダを含む階層構造内に配置され、当該ルートフォルダは、当該階層構造のルートノードである。ルートネームスペースは、例えば上述のDROPBOXコンテンツ管理サービスといったクラウドデータストレージサービスのユーザアカウントと関連付けられたコンテンツアイテム及びフォルダを含む。(例えば、有効なユーザ名/パスワードを用いて)アカウントに対する認証に成功することで、ユーザは、当該ユーザのアカウントと関連付けられたルートネームスペース内のドキュメントへのアクセスを黙示的に有する。
いくつかの実施形態では、個人アカウントは、それぞれがルートフォルダをルートとしている複数のルートネームスペースと関連付けられてよい。例えば、ある実施において、複数のルートネームスペースが、ファイルシステムにおいてマウントされている複数のドライブをエミュレートしうる。代替的に及び/又は追加的には、いくつかの実施形態は、各個人アカウントを、1つのルートフォルダ及び1つのルートネームスペースに制限しうる。この場合、ファイルシステムにおいてマウントされている複数のドライブは、ルートフォルダの子フォルダによってエミュレートされるであろう。
いくつかの実施形態では、ルートネームスペースは、エンティティアカウントのルートフォルダをルートとする。エンティティアカウントは、ユーザ又は個人アカウントの集合と関連付けられる。このため、エンティティアカウントのルートフォルダは、共有フォルダと考えることができ、エンティティアカウントのルートネームスペースは、共有されたルートネームスペースと考えることができる。いくつかの実施形態では、エンティティアカウントは、それぞれが当該エンティティアカウントのルートフォルダをルートとしている複数のルートネームスペースと関連付けられうる。パーミッションは、これらのルートネームスペースに対して個別に管理されうる。代替的に及び/又は追加的には、いくつかの実施形態は、各エンティティアカウントを、1つのルートフォルダ及び1つのルートネームスペースに制限しうる。
いくつかの実施形態では、チームと関連付けられたチームフォルダが実装される。チームは、1以上のユーザの集合、又は複数の個人アカウントを含む。しかし、エンティティアカウントは、チームに対して維持されない。チームと関連付けられたコンテンツアイテム及びフォルダは、チームフォルダから下降する階層構造内に配置されており、当該チームフォルダは、当該チームフォルダに属するコンテンツの階層構造のルートノードである。チームネームスペースは、チームフォルダをルートとする。いくつかの実施形態では、チームネームスペースは、ルートネームスペースとして扱われる。代替的に及び/又は追加的には、いくつかの実施形態において、チームネームスペースは、ルートネームスペースではない共有ネームスペースとして扱われる。
<共有ネームスペース>
いくつかの実施形態では、コンテンツ管理システム108は、1つ以上の共有フォルダを管理する。コンテンツ管理システム108は、共有フォルダをネームスペースと関連付け、当該ネームスペースは、共有ネームスペースと考えらえる。本明細書で使用される、共有ネームスペースとの用語は、共有フォルダのような、複数のユーザがアクセスを有しうる共有リソースをルートとしているネームスペースを指す。
コンテンツ管理システム108は、共有ネームスペースに対してパーミッションを保持する。当該パーミッションは、共有フォルダから下降する階層構造におけるフォルダ及びコンテンツアイテム等の、共有フォルダ内のコンテンツへのアクセスを許可する。このコンテンツは、共有フォルダをルートしているネームスペースに「属している」とみなされる。
いくつかの実施形態において、ルートフォルダは、共有フォルダであってもよく、即ち、共有ネームスペースは、当該ルートフォルダをルートとしていてもよい。例えば、エンティティアカウントと関連付けられたルートフォルダは、グループと関連付けられたユーザの集合によるアクセスが可能でありうる。共有ルートフォルダは、ジェネリック共有フォルダとして、共有フォルダの個別タイプとして実装されうる。いくつかの実施形態では、共有ルートフォルダは、ユーザの集合を含む、グループ又はチームに関連付けて存在してもよく、このような共有ルートフォルダは、エンティティアカウントのような特定のアカウントと関連付けられる必要はない。
コンテンツ管理システム108は、ユーザの集合に対して共有ネームスペースへのアクセスを許可する、共有ネームスペースについてのパーミッションを保持する。パーミッションについては以降でより詳しく議論する。ネームスペースへのアクセスが許可されたユーザの集合は、当該ネームスペースのメンバーと考えられる。いくつかの実施形態では、共有が有効化されたネームスペースは、共有ネームスペースのメンバーの数が1又は0まで現象した場合であっても、共有ネームスペースであると考えられる。
パーミッションは、共有ネームスペースへのアクセスをユーザの集合に対して許可しうる。ユーザの集合に含まれる異なるユーザは、以降でより詳しく説明される、異なるアクセスタイプを有してもよい。共有ネームスペースは、当該共有ネームスペースに属するコンテンツへのアクセスを複数のユーザに許可するパーミッションを保持するために、コンテンツ管理システム108によって使用される。しかし、いくつかの実施形態では、共有ネームスペースへのアクセスを許可されたユーザの集合が、1ユーザ又は0ユーザまで減少してもよい。
共有ネームスペースは、共有ルートネームスペースであってもよい。共有ルートネームスペースは、エンティティアカウントのルートフォルダのような、アカウントのルートフォルダをルートとしている。共有ネームスペースは、任意のアカウントのルートフォルダではないフォルダを、ルートとしてもよい。例えば、共有ネームスペースは、第2のネームスペースをルートとしている親フォルダの子フォルダである共有フォルダを、ルートとしてもよい。本明細書で使用される、親フォルダの子フォルダは、階層構造において直接的に又は間接的に当該親フォルダから下降したフォルダである。即ち、親フォルダは、当該親フォルダと子フォルダとの間の中間フォルダの祖先であってもよい。このように、第2のネームスペースは、共有ネームスペースの親ネームスペースである。即ち、この共有フォルダは、親ネームスペースがルートとしている親フォルダから始まる階層構造内にある。この場合、共有ネームスペースは、親ネームスペースの子・共有ネームスペースであり、
共有ネームスペースのマウントロケーションとも称される、親ネームスペースに対して相対的なパスにマウントされる。例えば、図2では、
●NS_Aは、フォルダA_ROOTをルートとしており、当該フォルダは、NS_Aのルートフォルダであり、
●NS_1は、フォルダF1をルートとしており、当該フォルダは、NS_1のルートフォルダであり、
●NS_Aは、NS_1の親ネームスペースであり、
●NS_1は、パス /A_root/F1にマウントされる。
いくつかの実施形態では、第1のネームスペースは、第2のネームスペースのパスにマウントされ、当該パスは、第2のネームスペースに対して相対的に特定される。ネスト化ネームスペースについては以降でより詳しく説明する。
いくつかの実施形態では、共有ネームスペースは、異なる同期設定を有しうる。これらの同期設定は、共有ネームスペースへのアクセスを有する全ユーザに対して設定されてもよいし、又は、各ユーザ及び/又は各クライアントデバイス102〜104に対して個別に設定されてもよい。クラウドのみの同期設定では、共有ネームスペース内のコンテンツは、クラウドアクセスのみのために設定される。オフラインの同期設定では、ネームスペースに属するコンテンツ114は、クライアントデバイス102において同期され、オフラインアクセスに利用可能である。代替的に及び/又は追加的には、任意の共有フォルダ及び/又は共有フォルダ内のコンテンツアイテムに対して、同期ステータスが設定されてもよい。
クライアントデバイス102〜104のユーザが、コンテンツの現在の同期設定ステータスを素早く識別できるように、同期設定ステータスアイコンが、共有ネームスペース、共有フォルダ、及び/又はコンテンツアイテムに関連付けて表示されてもよい。例えば、GUI110は、クライアントデバイス102〜104の特定のユーザが、どのコンテンツにオフラインアクセスを有するかを視覚的に判断できるようにコンテンツに関連付けて同期設定ステータスアイコンを表示してもよい。
<ネスト化ネームスペース>
上記のように、ネームスペースは、共通アクセス制御の下にあるコンテンツのコレクションであり、当該ネームスペース内のコンテンツにアクセスすることをユーザの集合に許可するアクセス制御情報を含むパーミッションを有する。最高レベルでは、ネスト化ネームスペースは、親ネームスペースに対するパーミッションとは異なりうる共通アクセス制御の下にあるコンテンツのコレクションである。ネスト化ネームスペースは、親ネームスペースがルートしている親フォルダから下降する階層構造内にあるフォルダをルートとしうる。ネスト化ネームスペースは、親ネームスペースに対して相対的なパスにおいて当該親ネームスペースに対してマウントされる。ネスト化ネームスペースのマウントについては以降でより詳しく説明する。
いくつかの実施形態では、ネスト化ネームスペースは、親・共有フォルダの内部の共有フォルダをルートしており、親・共有フォルダをルートしている親ネームスペースに対して保持されるパーミッションとは異なるパーミッションを、ネスト化フォルダに対して保持することを許可するために作成された、ネスト化ネームスペースである。例えば、ネスト化ネームスペースは、親ネームスペースへの管理アクセスを有するユーザが、当該親ネームスペース内のコンテンツアイテム又はフォルダを、当該親ネームスペースのメンバーではない他のユーザと共有する場合に、アクセス制御を区別して管理するために、作成されうる。
いくつかの実施形態では、コンテンツアイテム及び/又はフォルダに対して異なるパーミッションを作成する指示を受けた場合を除き、当該コンテンツアイテム及び/又はフォルダに対してネスト化ネームスペースは作成されない。いくつかの実施形態では、ネームスペースは、フォルダのみをルートとしており、個人のコンテンツアイテムに対する固有のパーミッションは、ネームスペースを使用せずに、アイテムごとに保持される。
いくつかの実施形態では、コンテンツ管理システム108は、ネスト化ネームスペースに対するパーミッションが、親ネームスペースに対するパーミッションと一致しても、1つ以上のネスト化ネームスペースを保持し続ける。例えば、親ネームスペースのサブフォルダが、当該親ネームスペースのメンバーではない第1のユーザに共有されたためにネスト化ネームスペースが作成された場合、第1のユーザによる当該サブフォルダへのアクセスが無効になったとしても、又は第1のユーザが当該親ネームスペースのメンバーになったとしても、当該ネスト化ネームスペースは保持されうる。
代替的に及び/又は追加的には、ネスト化ネームスペースは、親ネームスペースのパーミッションが、子・ネスト化ネームスペースのパーミッションと一致した場合に無効化されうる。コンテンツ管理システム108は、両方の動作、いずれかの動作、又は他の動作を実施しうる。当該動作は、設定を設定するための許可を有するメンバーによって選択された設定等の、ユーザ入力に依存しうる。一実施形態において、ガーベジコレクションの仕組みによって、もはや必要ないネスト化ネームスペースが定期的に削除され、これは、ネスト化ネームスペースのパーミッションが、一致し、かつ、親ネームスペースのパーミッションにマージされうるためである。
ネスト化ネームスペースは、異なるネームスペースにマウントされてもよい。例えば、図2において、ネスト化ネームスペースNS_5は、ユーザAの親ネームスペースNS_3にマウントされる。他方、ネームスペースNS_5へのアクセスのみを有し、ネームスペースNS_3へのアクセスを有しない、ユーザBについては、ネームスペースNS_5は、ユーザBのルートネームスペースNS_Bにマウントされる。いくつかの実施形態では、ネスト化ネームスペースのマウントに対する1つ以上の制約が、コンテンツ管理システム108によって課せられる。このような制約は、再帰的ループの防止、エラーの防止、複雑度の制御、及び/又は他の理由のために、使用されうる。制約については以降でより詳しく説明する。
図2は、1つ以上の実施形態に係る、2つの階層構造との関連で、ネスト化ネームスペースを含むネームスペースの例を示している。図2は、ユーザAが利用可能なコンテンツの階層構造200と、コンテンツ管理システム108のようなコンテンツ管理システムによって管理されるユーザBが利用可能なコンテンツの階層構造202とを示している。ルートネームスペースNS_Aは、ユーザAの階層構造200のルートフォルダA_ROOTをルートとしている。ルートネームスペースNS_Bは、ユーザBの階層構造202のルートフォルダB_ROOTをルートとしている。
コンテンツ管理システム108は、共有フォルダF1を管理する。ネームスペースNS_1は、共有フォルダF1をルートとしている。コンテンツ管理システム108は、ユーザの第1の集合に対してネームスペースNS_1へのアクセスを許可する、ネームスペースNS_1についてのパーミッションを保持する。ネームスペースNS_1は両方のユーザが利用可能であるため、ネームスペースNS_1についてのパーミッションは、ユーザA及びユーザBの両方にアクセスを許可する。両ユーザは、ネームスペースNS_1を、当該両ユーザのルートフォルダであるA_ROOT及びB_ROOTにそれぞれマウントしている。
コンテンツ管理システム108は、フォルダF2も管理する。フォルダF2は、フォルダF1の子フォルダである。フォルダF2は、共有フォルダであるが、フォルダF2に対して特別なパーミッションは定められていない。フォルダF2は、ネームスペースNS_1についてのパーミッションに基づいて、ユーザA及びユーザBの両方が利用可能である。いくつかの実施形態では、共有フォルダF2についてのパーミッションが、フォルダF2が属するネームスペースであるネームスペースNS_1とは独立して保持される場合を除き、F2をルートとするネームスペースは存在しない。
コンテンツ管理システム108は、フォルダF3も管理する。ネームスペースNS_3は、共有フォルダF3をルートとしている。コンテンツ管理システム108は、ユーザの第2の集合に対してネームスペースNS_3へのアクセスを許可する、ネームスペースNS_3についてのパーミッションを保持する。ネームスペースNS_3についてのパーミッションは、ユーザAにアクセスを許可する。ユーザAは、ネームスペースNS_3を、ルートネームスペースNS_Aにマウントしている。いくつかの実施形態では、ネームスペースNS_3についてのパーミッションは、ユーザBにアクセスを許可しないか、又はユーザBは、NS_3にアクセスしないように選択されている。
コンテンツ管理システム108は、フォルダF4も管理する。フォルダF4は、フォルダF3の子フォルダである。フォルダF4は、共有フォルダであるが、フォルダF4に対して特別なパーミッションは定められていない。フォルダF4は、ネームスペースNS_3についてのパーミッションに基づいて、ユーザAが利用可能である。
コンテンツ管理システムは、フォルダF5も管理する。ネームスペースNS_5は、共有フォルダF5をルートとしている。コンテンツ管理システムは、ユーザの第3の集合に対してネームスペースNS_5へのアクセスを許可する、ネームスペースNS_5についてのパーミッションを保持する。ネームスペースNS_5は両方のユーザが利用可能であるため、ネームスペースNS_5についてのパーミッションは、ユーザA及びユーザBの両方にネームスペースNS_5へのアクセスを許可する。ユーザAは、ネームスペースNS_5をフォルダF3にマウントしている一方で、ユーザBは、ルートフォルダNS_5を、そのルートフォルダB_ROOTにマウントしている。
コンテンツ管理システムは、フォルダF6も管理する。F6は、ユーザBの、共有されないプライベートフォルダである。フォルダF6に対してはネームスペースは設けられていない。
ネームスペースがマウントされるマウントロケーションは、他のネームスペースに対して相対的なパスによって記述されてもよい。いくつかの実施形態では、ネームスペースのマウントロケーションは、アカウントと関連付けられたルートネームスペースに対して相対的なパスによって記述される。いくつかの実施形態では、マウントテーブルが、複数のルートネームスペースに対して保持される。マウントテーブルは、マウントされたネームスペースの識別子、及びルートネームスペースに対して相対的なパスを含む。例えば、NS_Aについてのマウントテーブルは、(ルートネームスペースNS_Aに対して相対的に)、
●パス/F1におけるNS_1、
●パス/F3におけるNS_3、及び
●パス/F3/F5におけるNS_5、を含む。
例えば、NS_Bについてのマウントテーブルは、(ルートネームスペースNS_Bに対して相対的に)、
●パス/F1におけるNS_1、及び
●パス/F5におけるNS_5、を含む。
いくつかの実施形態では、1つ以上のタイプのネームスペース(例えば、ルートネームスペース、共有ネームスペース、ネスト化ネームスペース、又はそれらの組み合わせ)が、同じデータ構造、オブジェクトタイプ、及び/又は他の実装メカニズムを使用して実装される。代替的に及び/又は追加的には、1つ以上のタイプのネームスペースが、異なるデータ構造、異なるオブジェクトタイプ、又は他の異なる実装メカニズムを使用して実装されてもよい。
<ネームスペースを作成するプロセスの例>
図3は、個別のパーミッションを有する共有フォルダに対応するネスト化ネームスペースを作成するためのプロセスの例を図示するフローチャートである。プロセス300は、1つ以上のコンピューティングデバイス及び/又はそのプロセッサによって実行されうる。例えば、プロセッサ300の1つ以上のブロックが、コンピューティングデバイス800によって実行されてもよい。いくつかの実施形態では、プロセス300の1つ以上のブロックは、コンテンツ管理システム108等のコンテンツ管理システム内の1つ以上のサーバによって実行される。
ブロック302において、コンテンツアイテムサーバ118等のコンピューティングデバイスは、複数のユーザについて、コンテンツ管理システム108等のコンテンツ管理システムに、コンテンツを格納する。当該コンテンツは、複数の階層構造に配置される、複数のコンテンツアイテム及び複数のフォルダを含む。
ブロック304において、制御サーバ120等のコンピューティングデバイスは、複数のルートネームスペースを設ける。各ルートネームスペースは、1以上のユーザに対応するアカウントの、関連するルートフォルダである。例えば、ルートネームスペースは、ユーザの個人アカウントのルートフォルダをルートとしうる。代替的に及び/又は追加的には、ルートネームスペースは、エンティティアカウントのルートネームスペースへアクセスするためのパーミッションを有するユーザの集合と関連付けられた、当該エンティティアカウントのルートフォルダをルートしうる。
ブロック306において、制御サーバ120等のコンピューティングデバイスは、複数のフォルダから選択された第1のフォルダをルートとしている第1のネームスペースを設ける。いくつかの実施形態では、第1のネームスペースは、個人アカウント及び/又はエンティティアカウントのルートネームスペースである。いくつかの実施形態では、第1のネームスペースは、個人アカウントの集合と関連付けられたチームフォルダをルートとしているネームスペースである。いくつかの実施形態では、第1のネームスペースは、個人アカウント及び/又はエンティティアカウントのルートネームスペース以外の共有ネームスペースである。
ブロック308において、制御サーバ120等のコンピューティングデバイスは、第1のネームスペースに対して第1のパーミッションを保持する。第1のパーミッションは、複数のユーザのうちのユーザの第1の集合に対して第1のネームスペースへのアクセスを許可する。
ブロック310において、制御サーバ120等のコンピューティングデバイスは、複数の階層構造のうちの特定の階層構造において第1のフォルダの子である第2のフォルダを共有することを求める要求を受信する。
ブロック312において、制御サーバ120等のコンピューティングデバイスは、第2のフォルダをルートとしている第2のネームスペースを設ける。いくつかの実施形態では、第2のネームスペースは、ネスト化ネームスペースである。
ブロック314において、制御サーバ120等のコンピューティングデバイスは、第2のネームスペースに対して第2のパーミッションを保持する。第2のパーミッションは、複数のユーザのうちのユーザの第2の集合に対して第2のネームスペースへのアクセスを許可する。
ブロック316において、プロセス300は、リターン及び/又は終了を行う。例えば、処理は、次の要求の処理、呼び出しプロセスへの制御の受け渡し、任意の適切なレコード若しくは通知の生成、方法若しくは機能の呼び出しの後のリターン、又は終了に続く。
<ネームスペースメタデータ>
ネームスペースメタデータ・データベース128は、ネームスペースに関する情報を格納し、当該情報は、クライアントデバイス102〜104上のネームスペースメタデータ116と同期されうる。例えば、ネームスペースメタデータ・データベース128は、共有されていない個人アカウントのルートネームスペース共有されているエンティティアカウントのルートネームスペース、他の共有ネームスペース、及び/又は他の共有されていないネームスペースに関する情報を格納しうる。
いくつかの実施形態によれば、ネームスペースメタデータ・データベース128は、対応する各ネームスペースに属するコンテンツアイテム及び/又はフォルダの階層構造を記述する階層データを含む。いくつかの実施形態では、各ネームスペースについてレコードの集合が保持され、各レコードは、コンテンツアイテム又はフォルダと、当該ネームスペースに対して相対的な、当該コンテンツアイテム又はフォルダのパスとを示す。このようなレコードは、現在のネームスペース内のマウントロケーションを示す、現在のネームスペースに対して相対的なパスとともに、現在のネームスペースにマウントされている1つ以上のネームスペースを更に含みうる。
いくつかの実施形態によれば、ネームスペースメタデータ・データベース128は、ネームスペースに対するアクセス制御情報から成るパーミッションを含む。いくつかの実施形態では、パーミッションは、共有ネームスペース、又は共有フォルダをルートとしているネームスペースに対してのみ保持される。いくつかの実施形態では、パーミッションは、ネームスペース内のコンテンツへのアクセスをユーザの集合に対して許可する。このようなパーミッションは、親ネームスペース内のネスト化ネームスペースに対して保持されるパーミッションの影響下にありうる。即ち、親ネームスペースのメンバーであるユーザは、必ずしも子ネームスペースのメンバーではない。いくつかの実施形態では、ユーザが親ネームスペース及び子ネームスペースの両方のメンバーであっても、当該ユーザは、親ネームスペース及び子ネームスペースに対して同じアクセスタイプを有しない場合がある。
<パーミッション>
いずれの(複数の)ユーザ及び/又はユーザの(複数の)グループが、ネームスペースに属するコンテンツへのアクセスを有するかを特定する、又はさもなければ示す、パーミッションが保持される。特定のネームスペースに対するパーミッションが、当該特定のネームスペースへのアクセスを特定のユーザに対して許可する場合、当該特定のネームスペース内のコンテンツは、当該ユーザが利用可能である。パーミッションは、以降でより詳しく説明する、異なるアクセスレベル、又はアクセスタイプを指定しうる。
以降で説明する1つ以上の実施形態は、デバイスを特定せずにユーザにアクセスを許可するパーミッションに言及するが、いずれかの実施形態のパーミッションは、ユーザの全デバイス、ユーザの特定のデバイス、又はその組み合わせに対して具体的にパーミッションが許可されるように、実現されてもよい。
特定のネームスペースに対応するパーミッションは、いずれの(複数の)ユーザ及び/又はユーザの(複数の)グループが、当該ネームスペースに属する、コンテンツアイテム又はフォルダ等のコンテンツへのアクセスを有するかを、特定するか、示すか又はその両方を行う、明示的及び/又は黙示的なパーミッションに基づきうる。特定のネームスペースに対応するパーミッションは、更に、ユーザに許可されたアクセスタイプを特定してもよい。アクセスタイプのいくつかの例が以下に記載されており、アクセスタイプのサブセット、アクセスタイプの上位セット、アクセスタイプの重複セット、又は他のアクセスタイプが実現されうる。
●存在 − このアクセスタイプは、ネームスペースパスを通じたコンテンツアイテム又はフォルダの存在について知ることをユーザに許可する。しかし、ユーザは、当該コンテンツアイテム又はフォルダのコンテンツを開く又は当該コンテンツにアクセスするためのパーミッションを有しない。
●閲覧 − このアクセスタイプは、コンテンツアイテム又はフォルダのコンテンツを開く又は当該コンテンツにアクセスすることをユーザに許可するが、コンテンツの修正はできない。このアクセスタイプは、存在アクセスタイプによって与えられる全アクセス権を含みうる。
●修正 − このアクセスタイプは、コンテンツアイテム又はフォルダのコンテンツを修正することをユーザに許可する。しかし、ユーザは、当該コンテンツアイテム又はフォルダのコンテンツを削除するためのパーミッションを有しない。このアクセスタイプは、閲覧アクセスタイプによって与えられる全アクセス権を含みうる。
●削除 − このアクセスタイプは、ネームスペースからコンテンツアイテム又はフォルダを消去又は削除することをユーザに許可する。このアクセスタイプは、修正アクセスタイプによって与えられる全アクセス権を含みうる。
●管理 − このアクセスタイプは、メンバーの追加及び/又は削除と、子フォルダの共有との少なくともいずれかといった、他のユーザのパーミッションを管理することをユーザに許可する。このアクセスタイプは、削除アクセスタイプによって与えられる全アクセス権を含みうる。
いくつかの実施形態では、特定のネームスペースに対応するパーミッションは、1つ以上のアクセス制御レコードとして保持される。アクセス制御レコードは、個人コンテンツアイテム、個人フォルダ、又は、特定の共有フォルダに対応するネームスペースのような、コンテンツのコレクションに対応しうる。アクセス制御レコードは、グループ化されるてもよいし、インデックスを付けられもよいし、又はさもなければ、ネームスペース、その他の特性によってソートされてもよい。いくつかの実施形態では、アクセス制御レコードは、共有されていないネームスペース、コンテンツアイテム及び/又はフォルダに対して保持される。あるいは、アクセス制御レコードは、共有ワークスペースに属する共有ネームスペース、コンテンツアイテム及び/又はフォルダに対して保持されてもよい。
いくつかの実施形態では、ユーザに対して明示的なアクセス又は黙示的なアクセスを許可する、ネームスペースメタデータ・データベース128内のアクセス制御レコードが存在する場合を除き、当該ユーザは、特定のネームスペース、コンテンツアイテム又はフォルダへのアクセスを有しない。
いくつかの実施形態では、ネームスペースに対するパーミッションは、明示的なアクセスを特定のユーザに対して許可する。明示的なアクセスは、例えば、1つ以上のアクセス制御リスト(ACL:access control lists)及び/又はネームスペースと関連付けられた他のデータ、又はそれらの識別子の形式で生じる。例えば、特定の共有フォルダが1以上のユーザと共有される場合、当該1以上のユーザは、当該特定の共有フォルダをルートとしている共有ネームスペースに対して保持されているパーミッションに、明示的に追加される。1以上のユーザは、共有ネームスペースの明示的なメンバーである。
いくつかの実施形態では、ネームスペースに対するパーミッションは、黙示的なアクセスを特定のユーザに対して許可する。黙示的なパーミッションが、他のネームスペースに対する明示的なパーミッションから導き出される。例えば、特定のネームスペースに対するパーミッションが、当該特定のネームスペースがマウントされている親ネームスペースから継承されることを特定する場合、当該親ネームスペースへのアクセスを有するユーザは、当該親ネームスペースに対して保持されているパーミッションに基づいて、当該特定のネームスペースへのアクセスを有することになる。これらのメンバーは、特定のネームスペースの黙示的なメンバーである。
いくつかの実施形態では、特定のネームスペースに対するパーミッション及び関係する祖先ネームスペースが、パーミッションが継承されることを特定する場合、当該特定のネームスペースに対する黙示的なパーミッションが、親ネームスペースより上位の祖先ネームスペースから導き出されてもよい。例えば、クライアントデバイスが、特定のネームスペースに属する特定のコンテンツへのアクセスを要求する場合、対応するパーミッションを評価するために、及びユーザが当該特定のネームスペースの黙示的なメンバーであるかを判定するために、ネームスペースの階層構造のトラバーサル(traversal)が実行されてもよい。
いくつかの実施形態において、特定のネームスペース、コンテンツアイテム、又はフォルダについてのアクセス制御レコードは、以下の情報の全て又は当該情報のサブセット若しくは上位セットを含む:
●親ネームスペースID − 特定のネームスペース、コンテンツアイテム又はフォルダが属する親ネームスペースの識別子。ネームスペースについて、特定のネームスペースがルートネームスペースである場合等には、親ネームスペースIDはヌル(NULL)であってもよい。
●継承フラグ − 親ネームスペースIDによって特定される親ネームスペースからパーミッションが継承されるべきかを特定する識別子。
●アクセス制御リスト − それぞれが、特定のネームスペース、コンテンツアイテム又はフォルダに関する、ユーザ又はユーザのグループと、当該ユーザ又はユーザのグループに適用する1つ以上のパーミッションとを特定する、1つ以上のアクセス制御アイテムの集合。
いくつかの実施形態では、共有フォルダが属する親・共有ネームスペース内の共有フォルダについて固有のパーミッションが要求される場合、共有のネスト化ネームスペースが作成される。シチュエーションの例には、親・共有ネームスペースのメンバーではないユーザとのサブフォルダの共有、サブフォルダへの異なるパーミッションタイプの、親・共有ネームスペースのメンバーではないユーザに対する許可、又は、サブフォルダへのアクセスの更なる制限、が含まれるが、これらに限定されない。
いくつかの実施形態では、共有のネスト化ネームスペースを作成することは、親・共有ネームスペースを識別するための親ネームスペースIDを設定すること、及び親ネームスペースからパーミッションが継承されるべきかを示すための継承フラグを設定することを含む。パーミッションは、共有のネスト化ネームスペースと親ネームスペースとに対して保持される。継承フラグの値に依存して、共有のネスト化ネームスペースに対するパーミッションが、親・共有ネームスペースから継承されてもよいし、継承されなくてもよい。
<トラバーサル権>
設定の例において、第1のネームスペースは、第1のフォルダをルートしている共有ネームスペースであり、第2のネームスペースは、コンテンツアイテム又はフォルダの特定の階層構造において第1のフォルダに含まれる第2のフォルダをルートとしている、ネスト化された共有ネームスペースである。このように、第1のネームスペースは、第2のネームスペースの親ネームスペースである。
ユーザが、第1のネームスペース及び第2のネームスペースへのアクセスを有する場合に、当該ユーザは、第2のフォルダを含む、特定の階層構造における第1のフォルダ及び当該第1のフォルダの子へのアクセスを提供される。ユーザが、第1のネームスペースへのアクセスを有し、かつ、第2のネームスペースへのアクセスを有しない場合に、当該ユーザは、第2のフォルダを除く、特定の階層構造における第1のフォルダ及びその子へのアクセスを提供される。即ち、第2のネームスペースからのユーザの除外は、第2のネームスペースに属する第1のフォルダのコンテンツに対するパーミッションを無効にするように作用するが、否定的なパーミッション(即ち、ユーザが第2のネームスペースへのアクセスを有しない)について、ユーザは、そうでなければ、第1のコンテンツへのアクセスを許可されていたであろう。ユーザが、第2のネームスペースへのアクセスを有し、かつ、第1のネームスペースへのアクセスを有しない場合に、当該ユーザは、第2のフォルダへのアクセスを提供され、第1のフォルダへのアクセスを提供されない。
いくつかの実施形態では、コンテンツ管理システム108は、クライアントデバイス102〜104に、コンテンツアイテム及びフォルダ等のコンテンツの1つ以上の階層構造を記述する階層データを提供しうる。例えば、階層データは、ファイルシステムのような階層構造をユーザに対して表示すること、当該ファイルシステムのような階層構造を使用して、利用可能なコンテンツのローカルコピーを同期させること、及び/又は、さもなければ当該ファイルシステムのような階層構造に基づいてコンテンツにアクセスすることを、クライアントデバイス102〜104に許可しうる。いくつかの実施形態では、1つ以上のネームスペースにアクセスするためのパーミッションは、ネームスペース内のコンテンツアイテム及び/又はフォルダの存在について知ることへのアクセスを制限するアクセスタイプ(例えば、存在)を含みうる。存在アクセスタイプは、階層データの閲覧をユーザに許可する。
図4A〜図4Cは、1つ以上の実施形態に係る、パーミッションに基づいて特定のユーザが使用可能な階層データの例を示している。第1のユーザが、少なくとも第1のネームスペースNS_1及び第2のネームスペースNS_2への存在アクセスを有する場合、第1のユーザのクライアントデバイスは、第2のフォルダF2及びその子孫を含む、第1のフォルダF1からの特定の階層構造を記述する階層データ400の表示、格納、及び/又はさもなければ使用を行うことが可能である。NS_1は、第1のユーザのルートフォルダでありうる又は第1のユーザがアクセスを有する他のフォルダでありうるフォルダ402をルートとしている他のネームスペース、及び/又はフォルダ402を含む他のネームスペースに、マウントされているように示されている。
第2のユーザが、少なくとも第1のネームスペースNS_1への存在アクセスを有するが、第2のネームスペースNS_2への存在アクセスを有しない場合、第2のユーザのクライアントデバイスは、第2のフォルダF2及びその子孫を除く、第1のフォルダF1からの特定の階層構造を記述する階層データ402の表示、格納、及び/又はさもなければ使用を行うことが可能である。NS_1は、第2のユーザのルートフォルダでありうる又は第2のユーザがアクセスを有する他のフォルダでありうるフォルダ412をルートとしている他のネームスペース、及び/又はフォルダ412を含む他のネームスペースに、マウントされているように示されている。
一実施形態において、第3のユーザが、少なくとも第2のネームスペースNS_2への存在アクセスを有するが、少なくとも第1のネームスペースNS_1への閲覧アクセスを有しない場合、第3のユーザのクライアントデバイスは、それでも、第2のフォルダF2及びその子孫だけを記述する、階層データ402の一部の表示、格納、及び/又はさもなければ使用を行うことが可能である。即ち、ユーザが、フォルダF1の他のコンテンツにアクセスできなくとも、当該ユーザは、フォルダF2がフォルダF1の子であるという情報を提供される。NS_2は、第3のユーザのルートフォルダでありうる又は第3のユーザがアクセスを有する他のフォルダでありうるフォルダ422をルートとしている他のネームスペース、及び/又はフォルダ422を含む他のネームスペースに、マウントされているように示されている。
<ネームスペースのマウント>
ネスト化ネームスペースは、親ネームスペースに対して相対的なパスにおいて当該親ネームスペースに対してマウントされうる。本明細書で使用される、マウント動作は、1つ以上のネームスペースを1つ以上のマウントロケーションからマウント又はアンマウントする動作を指す。いくつかの実施形態では、共有ネームスペースは、複数のユーザによってマウントされうる。いくつかの実施形態では、ユーザは、共有ネームスペースを、当該ユーザのルートネームスペース、又は当該ルートネームスペースから下降した他のネームスペースに対してマウントできる。即ち、共有ネームスペースは、ルートネームスペースに対して相対的なパスを含むマウントロケーションにマウントされる。1つ以上の中間ネームスペースが存在する場合、ルートネームスペースに対して相対的なパスは、ネームスペースをトラバースすることによって構成されうる。
ネスト化ネームスペースは、他のネスト化ネームスペースにマウントされてもよく、それにより、ネームスペース階層構造が作成される。いくつかの実施形態では、ネスト化のレベルの限度が実装されうる。例えば、マウント動作の実行前に満たされる必要がある制約として、限度が実装されうる。制約については以降でより詳しく説明する。
いくつかの実施形態では、明示的なメンバーであるユーザのみが、共有ネームスペースを直接的にマウントすることを許可される。即ち、ユーザが、ユーザがメンバーである親ネームスペースからネームスペースがパーミッションを継承することを理由として当該ネームスペースへのアクセスを有するユーザのような、ネームスペースの黙示的なメンバーにすぎない場合、コンテンツ管理システム108は、当該ネームスペースをマウントすることをユーザに許可しえない。このようなユーザは、それでも、親ネームスペースを通じてネームスペースにアクセスすることが可能である。
<マウント動作を伴うアクション>
以下のアクションの例は、マウント動作(例えば、1つ以上のマウントロケーションからの1つ以上のネームスペースのマウント又はアンマウント)を伴う。マウント動作を伴う他のアクションは、ネスト化ネームスペース及び当該ネスト化ネームスペースに対して保持されているパーミッションに基づいて実行される。いくつかの実施形態では、以下のアクション及び/又はマウント動作が実行されるか、そのサブセット若しくは上位セットが実行される。これらのアクション及び/又はマウント動作はいずれも、デフォルトの動作として実行されうるか、又は当該アクション及び/又はマウント動作を進めることを許可するよう、関係のあるユーザが促されうる。説明されるマウント動作以外の他の挙動は、これらのアクションのいずれかに応じて実行されてもよい。
いくつかの実施形態では、1つ以上のマウント動作を生じさせる1つのアクションは、ユーザが、独特なパーミッションを有する共有フォルダを作成したときであり、ここで、当該共有フォルダは親・共有フォルダ内にある。新たな共有フォルダをルートとしているネスト化ネームスペースが作成される。親・共有フォルダをルートとしている親ネームスペースのメンバーは、当該メンバーがネスト化ネームスペースのメンバーであるかどうかに基づいて、変更を見られるか又は見られない。例えば、ネスト化ネームスペースがパーミッションを継承せず、かつ、親ネームスペースの特定のメンバーが当該ネスト化ネームスペースのメンバーではない場合、当該ネスト化ネームスペースのコンテンツは、当該メンバーのクライアントデバイスから削除されることになる。いくつかの実施形態では、特定のユーザが、ネスト化ネームスペース及び親ネームスペースの両方のメンバーである場合、新たなネスト化ネームスペースについてのネームスペースメタデータの同期が行われる。いくつかの実施形態では、特定のユーザのクライアントデバイス上のGUIは、共有フォルダが独特なパーミッションを有していることを示し得る。特定のユーザが、ネスト化ネームスペースのメンバーにすぎない場合、当該特定のユーザは、当該ネスト化ネームスペースの外部の階層データを受け取ることはない。このようなユーザは、親ネームスペースに気付かないため、本明細書では外部ユーザと称される。
いくつかの実施形態では、1つ以上のマウント動作を生じさせる1つのアクションは、子ネームスペースのメンバーが、当該子ネームスペースがマウントされている親ネームスペースのメンバーとして追加されたときである。親ネームスペースへのアクセスをユーザが得ると、子ネームスペースが当該ユーザのルートネームスペースにマウントされている場合には、子ネームスペースは、当該ユーザの親ネームスペースからアンマウントされうるとともに、親ネームスペースは、当該のユーザのルートネームスペースにマウントされうる。ユーザは、子ネームスペースの明示的なメンバーとして維持されるる。
いくつかの実施形態では、1つ以上のマウント動作を生じさせる1つのアクションは、ユーザのルートネームスペースにマウントされたネームスペースがルートとしている共有フォルダを、当該ユーザが消去したときである。これに応じて、ユーザが消去を望む共有フォルダをルートとしているネームスペースをアンマウントするマウント動作が実行されうる。共有フォルダ及び対応するネームスペースは、以前として他のユーザが利用可能でありうるとともに、他のユーザ(例えば、他のユーザのネームスペース)に関する、対応するネームスペースのマウントは、影響を受けない。
いくつかの実施形態では、1つ以上のマウント動作を生じさせる1つのアクションは、共有ネームスペースがルートとしているチームフォルダにマウントした子・共有フォルダをユーザが消去したときである。ユーザは、子・共有フォルダへの管理アクセスと、親・共有フォルダへの修正アクセスとを有することを求められうる。子・共有フォルダは、外部ユーザを含む、全てのユーザに対しては共有されえない。いくつかの実施形態では、コンテンツ管理システムは、子ネームスペース及び子・共有フォルダと関連付けられたコンテンツを保有する。これは、子・共有フォルダ及びそのコンテンツに対して、データが回復されることを可能にする。
いくつかの実施形態では、1つ以上のマウント動作を生じさせる1つのアクションは、ユーザが、親・共有フォルダの外部の子・共有フォルダを、親・共有フォルダをルートとしている親ネームスペース又は親・共有フォルダを含む親ネームスペースとは異なるネームスペースへ移動したときである。ユーザは、親ネームスペースへの修正アクセスと、宛先ネームスペースへの修正アクセスと、移動された子・共有フォルダをルートとしている子ネームスペースへの管理アクセスとを有することが求められうる。外部ユーザは、子ネームスペースに対して維持されるが、親ネームスペースのメンバーシップに基づいてパーミッションを継承した黙示的なユーザはいずれも、もはや子ネームスペースへのアクセスを有しえない。1つの実施形態において、子・共有フォルダが親・共有フォルダの外部へ移動された場合、親ネームスペースへのアクセスを有する子ネームスペースの明示的なメンバーは、子ネームスペースを親ネームスペースからアンマウントし、子ネームスペースを再マウントすることになる。
いくつかの実施形態では、1つ以上のマウント動作を生じさせる1つのアクションは、親ネームスペースへのアクセスをユーザに許可するパーミッションが無効にされたが、当該ユーザが以前として親ネームスペースの子ネームスペースへのアクセスを有するときである。この場合、親ネームスペースは、ユーザのルートネームスペースからアンマウントされ、子ネームスペースは、当該ユーザのルートネームスペースへマウントされる。
いくつかの実施形態では、1つ以上のマウント動作を生じさせる1つのアクションは、ユーザが、特定のネームスペースがルートとしている共有フォルダの名前を変更したときである。ユーザは、当該特定のネームスペースへの修正アクセスを有することを求められうる。いくつかの実施形態では、当該変更は、共有ネームスペースを、その現在の親ネームスペースからアンマウントし、かつ、次に修正後の共有ネームスペースを、現在の親ネームスペースに再マウントすることによって、実現される。このアクションは、親ネームスペース及び特定のネームスペースの両方へアクセスするためのパーミッションを有する全てのユーザに、当該変更の同期を生じさせることになる。
<マウントの制約>
いくつかの実施形態では、1つ以上の制約が、ネームスペースのマウントに課せられる。例えば、コンテンツ管理システム108は、1つ以上の制約の集合が、マウント動作を要求するアクションの完了前に満たされることを要求しうる。このような制約は、再帰的ループの防止、アクセスパーミッションの曖昧さの防止、エラーの防止、複雑度の制御、及び/又は他の理由のために、使用されうる。例えば、1つ以上の制約は、巡回グラフを含まない、アカウントと関連付けられたネームスペース内で、従来のファイルシステムの階層構造を強制しうる。
いくつかの実施形態では、第1の制約は、ルートネームスペースをルートとしていないあらゆる共有ネームスペースの2つ以上のパスに、ネームスペースをマウントできないことを要求する。
即ち、ネームスペースは、ルートネームスペースをルートとしていない2つ以上の親ネームスペースを有することができない。第1の制約は、ルートネームスペース以外の共有ネームスペース内に含まれるコンテンツの階層構造を、単純なディレクトリツリーに制限することと類似している。いくつかの実施形態では、同様に共有ネームスペースであるルートネームスペースを含む、あらゆる共有ネームスペースの2つ以上のパスにルートネームスペースをマウントすることを許可しない、第1の制約のバージョンが実施される。
いくつかの実施形態では、第1の制約は、ネームスペースを、ルートネームスペース以外の単一の親ネームスペースを識別する単一親ポインタと関連付けることによって、実施される。例えば、親のルートネームスペースと子の共有ネームスペースとの間の親子関係は、親のルートネームスペースについてのネームスペースメタデータにおいて保持されうる。このため、単一親ポインタは、それぞれのルートネームスペースにマウントされている子の共有ネームスペースを有するいずれのアカウントに対するルートネームスペースをも参照する必要がない。
いくつかの実施形態では、第2の制約は、あらゆるユーザについて、ルートネームスペース又はその子ネームスペースにおける2つ以上のパスに、ネームスペースをマウントできないことを要求する。即ち、各ネームスペースは、ルートネームスペースが祖先である任意の中間ネームスペースを含め、ルートネームスペースに1回マウントできるにすぎない。実施された場合、第2の制約は、ループするシナリオを防ぐことになり、これは、従来のファイルシステム階層構造と整合する。例えば、ネスト化ネームスペースBが、ネームスペースA内でネスト化される場合、ユーザは、B及びAを、当該ユーザのルートネームスペースへ直接マウントすることはできず、これは、ネームスペースAがネスト化ネームスペースBを含むためであり、これは、ルートネームスペースBが、当該ユーザのルートネームスペースに2回マウントされることにつながりうる。
コンテンツ管理システム108は、第1の制約、第2の制約、及び1以上の他の制約のうちの1つ以上を含む、満たされるべき制約の集合を要求しうる。1つの実施形態では、コンテンツ管理システム108が、特定のネームスペースの特定のパスに第2のネームスペースをマウントすることを求める要求を、特定のユーザから受け付けた場合、コンテンツ管理システム108は、1つ以上の制約が満たされるかどうかを判定する。1つ以上の制約の集合が満たされる場合に、第2のネームスペースを、特定のネームスペースにおける特定のパスへマウントする。1つ以上の制約の集合に含まれるいずれの制約も満たされない場合、コンテンツ管理システム108は、マウント動作を必要とするアクションが失敗したことを知らせうる。代替的に及び/又は追加的には、コンテンツ管理システム108は、デフォルトの動作を実行すること、1つ以上の代替のソリューションをユーザに促すこと、1つ以上の代替のソリューションを実行すること、1つ以上の制約を満たすように要求を解決すること、及び/又は、それらの組み合わせを行いうる。
<マウントロック>
いくつかの実施形態では、1つ以上の制約は、マウントロックを用いて強制される。本明細書で使用される、マウントロックとの用語は、マウントロケーションの変更に関して、対応するネームスペースへのアクセスを制御するための、個人ネームスペースと関連付けられた同期メカニズムを指す。1つ以上の制約について、当該制約を満たすことは、影響を受けるネームスペースについてのマウントロックを得ることを含む。マウント動作の実行に成功するために、影響を受ける各ネームスペースについてマウントロックが得られる必要がある。
本明細書で使用される、「影響を受けるネームスペース」との用語は、特定のマウント動作を実行するために、対応するマウントロックが保持される必要がある、任意のネームスペースを指す。いくつかの実施形態では、マウント動作のために影響を受けるネームスペースは、マウント動作が実行される対象ネームスペースと、対象ネームスペースの任意の祖先ネームスペースとを含み、マウント動作が、対象ネームスペースに対して新たな親ネームスペースを特定する場合には、当該新たな親ネームスペースと、当該新たな親ネームスペースの任意の祖先ネームスペースとを含む。
いくつかの実施形態では、以下のマウンド動作についてマウントロックが得られる。
●ネームスペースNS_X又はその子孫のいずれかの、他のマウントロケーションへのマウント
●NS_X又はその子孫のいずれかへの、他のネームスペースのマウント
●NS_X又はその子孫のいずれかのアンマウント
●NS_X又はその子孫のいずれかからの、他のネームスペースのアンマウント
いくつかの実施形態では、ルートネームスペースは、影響を受けるネームスペースの集合から除外される。例えば、影響を受けるネームスペースの集合からルートネームスペースを除外することにより、ルートネームスペースではないあらゆる共有ネームスペースの2以上のパスに第2のネームスペースをマウントできないという制約を強制することを促進できる。ルートネームスペースを除外する1つの方法は、当該ルートネームスペースについてマウントロックを要求しないことである。いくつかの実施形態では、個人アカウントのルートネームスペースのみが、影響を受けるネームスペースの集合から除外される一方、エンティティアカウントのルートネームスペースは含められる。
図5は、1つ以上の実施形態に係るマウント動作の例に関して取得が成功したマウントロックの例を示している。図5は、ユーザCが利用可能なコンテンツの階層構造500と、コンテンツ管理システム108のようなコンテンツ管理システムによって管理されるユーザDが利用可能なコンテンツの階層構造502とを示している。ユーザCについては、ルートネームスペースNS_Cは、ユーザCの階層構造500のルートフォルダC_ROOTをルートとしている。ユーザDについては、ルートネームスペースNS_Dは、ユーザDの階層構造502のルートフォルダD_ROOTをルートとしている。
矢印は、ユーザCが、フォルダF13をフォルダF12へ移動させることを試みることを示す。このアクションを実行するために、ネームスペースNS_13は、ルートネームスペースNS_Cからアンマウントされる必要があり、ネームスペースNS_13は、ネームスペースNS_12にマウントされる必要がある。マウント動作の実行に成功するために、影響を受ける各ネームスペースについてマウントロックが得られる必要がある。
いくつかの実施形態では、影響を受けるネームスペースには、任意のルートネームスペースを除く、対象ネームスペース及びその祖先が含まれる。NS_13は、マウント動作が実行される対象ネームスペースであるため、影響を受けるネームスペースである。このため、マウントロック504が、NS_13について取得される。
いくつかの実施形態では、影響を受けるネームスペースには、任意のルートネームスペースを除く、新たな親ネームスペース及びその祖先が含まれる。NS_12は、対象ネームスペースについての新たな親ネームスペースであるため、影響を受けるネームスペースである。このため、マウントロック506が、NS_12について取得される。NS_11は、NS_12の祖先であるため、影響を受けるネームスペースである。このため、マウントロック508が、NS_11について取得される。
この場合、影響を受けるネームスペースについての全てのマウントロックの取得が成功する。このため、コンテンツ管理システムは、マウント動作の実行、及びマウントロックの解放を行う。
図6は、1つ以上の実施形態に係るマウント動作の例に関して取得が成功していないマウントロックの例を示している。図6は、図5に示すマウント動作の成功後にユーザCが利用可能なコンテンツの階層構造600を示している。図6は更に、ユーザDが利用可能なコンテンツの階層構造602を含んでいる。ユーザDが、フォルダF14をフォルダF12へマウントすることを試みた場合、マウント動作が要求される。
マウント動作の実行に成功するために、影響を受ける各ネームスペースについてマウントロックが得られる必要がある。NS_14は、マウント動作が実行される対象ネームスペースであるため、影響を受けるネームスペースである。このため、マウントロック604が、NS_14について取得される。
いくつかの実施形態では、影響を受けるネームスペースには、任意のルートネームスペースを除く、対象ネームスペースの祖先が含まれる。このため、マウントロック606〜610が、ネームスペースNS_13、NS_12及びNS11について取得される。
いくつかの実施形態では、影響を受けるネームスペースには、任意のルートネームスペースを除く、新たな親ネームスペース及びその祖先が含まれる。この場合、ユーザDは、NS_14をNS_12にマウントすることを試みているため、影響を受けるネームスペースには、NS_12及びその祖先ネームスペースNS_11が含まれる。しかし、NS_12についてのマウントロック608が既に保持されているため、マウントロック612を得ることはできない。同様に、NS_11についてのマウントロック610が既に保持されているため、マウントロック614を得ることはできない。
影響を受けるネームスペースについてのマウントロックの取得に成功しない場合、制約が失敗する。いくつかの実施形態では、制約が失敗した場合、コンテンツ管理システム108及び/又はクライアントデバイス102〜104の他のコンポーネント等へ、マウント動作を要求するアクション及び失敗が報告される。いくつかの実施形態では、デフォルトのリーガルマウント動作を自動的に実行すること、1つ以上の可能性のあるリーガルマウント動作をユーザに促すこと、及び/又は、失敗の原因を解決し、かつ、制約を満たす互換性のあるマウント動作を決定すること等によって、マウント動作を復旧できる。
<ネームスペースをマウントするプロセスの例>
図7は、1つ以上の実施形態に係る、ネームスペースをマウントするためのプロセスの例を図示するフローチャートである。プロセス700は、1つ以上のコンピューティングデバイス及び/又はそのプロセッサによって実行されうる。例えば、プロセッサ700の1つ以上のブロックが、コンピューティングデバイス800によって実行されてもよい。いくつかの実施形態では、プロセス700の1つ以上のブロックは、コンテンツ管理システム108等のコンテンツ管理システム内の1つ以上のサーバによって実行される。
ブロック702において、制御サーバ120等のコンピューティングデバイスは、対象ネームスペースに対するマウント動作の実行を求める要求を受け付ける。例えば、当該要求は、1つ以上のネームスペースが、他のネームスペースからマウント及び/又はアンマウントされることを必要とするアクションを含む。
ブロック704において、コンピューティングデバイスは、マウント動作についての1つ以上の影響を受けるネームスペースを判定する。いくつかの実施形態では、対象ネームスペースに加えて、1つ以上の影響を受けるネームスペースの集合は、マウント動作が実行される対象ネームスペースと、対象ネームスペースの任意の祖先ネームスペースとを含み、マウント動作が、対象ネームスペースに対して新たな親ネームスペースを特定する場合には、当該新たな親ネームスペースと、当該新たな親ネームスペースの任意の祖先ネームスペースとを含む。
ブロック706において、コンピューティングデバイスは、影響を受けるネームスペースの集合に含まれる、影響を受けるネームスペースについてマウントロックの取得を試みる。
ブロック708において、影響を受けるネームスペースについてのマウントロックの取得が成功したかどうかが判定される。影響を受けるネームスペースについてのマウントロックの取得が成功したと判定されると、処理がブロック710へ進む。
ブロック710において、コンピューティングデバイスは、影響を受けるネームスペースについてのマウントロックを保持しながら、マウント動作を実行する。
ブロック712において、コンピューティングデバイスは、影響を受けるネームスペースの集合についてのマウントロックを解放する。
判定ブロック704に戻り、影響を受けるネームスペースについてのマウントロックの取得が成功しなかったと判定されると、処理がブロック714へ進む。ブロック714において、要求されたマウント動作が実行されず、マウント動作の実行の失敗が処理される。いくつかの実施形態では、失敗を処理することは、コンテンツ管理システム108及び/又は1つ以上のクライアントデバイス102〜104の他のコンポーネント等の、1つ以上の他のコンポーネントへ失敗を報告することを含む。いくつかの実施形態では、失敗を処理することは、デフォルトのリーガルマウント動作を自動的に実行すること、1つ以上の可能性のあるリーガルマウント動作をユーザに促すこと、及び/又は、失敗の原因を解決し、かつ、制約を満たす互換性のあるマウント動作を決定すること等によって、マウント動作を復旧することを含む。
ブロック716において、プロセス700は、リターン及び/又は終了を行う。例えば、処理は、次の要求の処理、呼び出しプロセスへの制御の受け渡し、任意の適切なレコード若しくは通知の生成、方法若しくは機能の呼び出しの後のリターン、又は終了に続く。
<コンピューティングデバイスの例>
図8は、1つ以上の実施形態が実施されるコンピューティングデバイスの例のブロック図である。コンピューティングデバイス800及びその構成要素は、それらの接続、関係、及び機能を含め、例示のみが意図されており、実施形態の例を制限することは意図されていない。実施形態の例の実施に適した他のコンピューティングデバイスは、種々の接続、関係、及び機能を有する構成要素を含む、種々の構成要素を有しうる。
コンピューティングデバイス800は、メインメモリ806にアドレスするための、及びデバイス800の種々の構成要素間でデータを転送するための、バス802又はその他の通信機構を含みうる。
コンピューティングデバイス800は、情報を処理するためのバス802と接続された1つ以上のハードウェアプロセッサ804を更に含みうる。ハードウェアプロセッサ804は、汎用マイクロプロセッサ、システムオンチップ(SoC)、又はその他のプロセッサでありうる。
ランダムアクセスメモリ(RAM)又はその他の動的ストレージデバイス等のメインメモリ806も、情報又は(複数の)プロセッサ804によって実行されるソフトウェア命令を格納するためにバス802に接続されうる。メインメモリ806は更に、(複数の)プロセッサ804によって実行されるソフトウェア命令の実行中に一時変数又はその他の中間情報を格納するために使用されてもよい。
(複数の)プロセッサ804へアクセス可能な、コンピュータで読み取り可能なストレージ媒体に格納される場合、ソフトウェア命令は、コンピューティングデバイス800を、ソフトウェア命令に特定された動作を実行するようにカスタマイズされた特定用途のコンピューティングデバイスにする。「ソフトウェア」、「ソフトウェア命令」、「コンピュータプログラム」、「コンピュータで実行可能な命令」、及び「プロセッサで実行可能な命令」は、人間が読み取り可能であろうとなかろうと、特定の動作を実行するようコンピューティングデバイスに命令するための、機械で実行可能なあらゆる情報をカバーするよう広く解釈されるべきであり、アプリケーションソフトウェア、デスクトップアプリケーション、スクリプト、バイナリ、オペレーティングシステム、デバイスドライバ、ブートローダ、シェル、ユーティリティ、システムソフトウェア、JAVASCRIPT(登録商標)、ウェブページ、ウェブアプリケーション、プラグイン、組み込みソフトウェア、マイクロコード、コンパイラ、デバッガ、インタプリタ、仮想マシン、リンカー、及びテキストエディタを含むが、それらに限定されない。
コンピューティングデバイス800は更に、静的情報及び(複数の)プロセッサ804へのソフトウェア命令を格納するためにバス802に接続された、読み取り専用メモリ(ROM)808又はその他の静的ストレージデバイスを含む。
1つ以上のマスストレージ810は、磁気、光学、ソリッドステート、光磁気、フラッシュメモリ、又はその他の利用可能なマスストレージ技術といった、固定メディア又はリムーバブルメディアに、情報及びソフトウェア命令を永続的に格納するためにバス802に接続されうる。マスストレージは、ネットワーク上で共有されてもよいし、又は専用のマスストレージであってもよい。典型的には、マスストレージデバイス810(例えば、デバイス用のメインハードディスク)の少なくとも1つは、他のあらゆる種類の他のデータファイルだけでなく、オペレーティングシステム、ユーザアプリケーションプログラム、ドライバ、及び他のサポートファイルを含む、コンピューティングデバイスの動作を命令するためのプログラム及びデータの本体を格納している。
コンピューティングデバイス800は、バス802を介して、情報をコンピュータユーザに表示するための液晶ディスプレイ(LCD)等のディスプレイ812と接続されうる。いくつかの構成では、タッチ検出技術(例えば、抵抗性、容量性等)を組み込んだタッチセンシティブ面が、タッチジェスチャ(例えば、指又はスライタス)入力を(複数の)プロセッサ804へ伝達するタッチセンシティブディスプレイを形成するために、ディスプレイ812に重ね合わせられうる。
入力デバイス814は、英数字キー又は他のキーを含み、情報及びコマンドの選択をプロセッサ804へ伝達するためにバス802に接続されうる。英数字キー又は他のキーに加えて、又はそれに代えて、入力デバイス814は、例えば、電源(オン/オフ)ボタン、「ホーム」ボタン、音量調節ボタン等の、1つ以上の物理ボタン又はスイッチを含んでもよい。
他のタイプのユーザ入力デバイスは、プロセッサ804へ方向情報やコマンドの選択を伝達し、ディスプレイ812上でのカーソルの移動を制御するための、マウス、トラックボール、カーソル方向キー等の、カーソルコントロール816であってもよい。当該入力デバイスは、通常、デバイスが平面上の位置を特定することが可能になる第1軸(例えば、x)と第2軸(例えば、y)の2つの軸の2つの自由度を有する。
図8に示す構成のようないくつかの構成では、1つ以上のディスプレイ812、入力デバイス814、及びカーソルコントロール816は、コンピューティングデバイス800の外部コンポーネント(例えば、周辺機器)であるが、他の構成では、ディスプレイ812、入力デバイス814、及びカーソルコントロール816の一部又は全ては、コンピューティングデバイス800の形成要素の一部として統合される。
開示したシステム、方法及びモジュールの機能は、メインメモリ806に含まれるソフトウェア命令の1つ以上のプログラムを(複数の)プロセッサ804が実行することに応じて、コンピューティングデバイス800によって実行されうる。そのようなソフトウェア命令は、(複数の)ストレージデバイス810等の他のストレージ媒体からメインメモリ806へ読み込まれてもよい。メインメモリ806に含まれるソフトウェアプログラム命令の実行は、(複数の)プロセッサ804に、(複数の)実施形態の例の機能を実行させる。
(複数の)実施形態の例の機能及び動作は、全体がソフトウェア命令によって実施されうるが、他の実施形態では、コンピューティングデバイス800のハードワイヤード回路又はプログラム可能回路(例えば、ASIC、FPGA等)が、間近の具体的な実施の要件に従って機能を実行するために、ソフトウェア命令に代えて又はソフトウェア命令と組み合わせて使用されてもよい。
本明細書で使用される「ストレージ媒体」との用語は、特定の様式でコンピューティングデバイスを動作させるデータ及び/又はソフトウェア命令を格納する、非一時的な任意の媒体として参照される。そのようなストレージ媒体は、不揮発性の媒体及び/又は揮発性の媒体を備えてもよい。不揮発性の媒体は、例えば、ストレージデバイス810等の不揮発性ランダムアクセスメモリ(NVRAM)、フラッシュメモリ、光学ディスク、磁気ディスク、又はソリッドステートドライブを含む。揮発性の媒体は、メインメモリ806等のダイナミックメモリを含む。ストレージ媒体の共通の形態は、例えば、フロッピーディスク、フレキシブルディスク、ハードディスク、ソリッドステートドライブ、磁気テープ、又は、他の任意の磁気データストレージ媒体、CD−ROM、他の任意の光学データストレージ媒体、ホールのパターンを有する任意の物理媒体、RAM、PROM、EPROM、FLASH−EPROM、NVRAM,フラッシュメモリ、他の任意のメモリチップ若しくはカートリッジを含む。
ストレージ媒体は、伝送媒体とは区別されるものの、伝送媒体とともに使用されてもよい。伝送媒体は、ストレージ媒体間で情報を転送することに使用されてもよい。例えば、伝送媒体は、バス802を備える有線を含む同軸ケーブル、銅線、及び光ファイバーを含む。伝送媒体は、電波及び赤外線のデータ通信中に生成されるような音波又は光波の形式をとることもできる。
種々の形式の媒体が、(複数の)プロセッサ804に対する、実行用の1つ以上のソフトウェア命令から成る1つ以上のシーケンスを担持することに関与しうる。例えば、当該ソフトウェア命令は、初期的には、磁気ディスク又はリモートコンピュータのソリッドステートドライブ上に担持されうる。リモートコンピュータが、当該ソフトウェア命令をダイナミックメモリにロードし、モデムを使用して電話線を介して当該ソフトウェア命令を送信できる。コンピューティングデバイス800に対してローカルなモデムが、電話線でデータを受信し、赤外線送信機を使用して当該データを赤外線信号に変換できる。赤外線検出器が、赤外線信号で運ばれるデータを受信でき、適切な回路が、当該データをバス802に入れることができる。バス802は、当該データをメインメモリ806へ運び、そこから(複数の)プロセッサ804がソフトウェア命令を取り出して実行する。メインメモリ806によって受信されたソフトウェア命令は、オプションで、(複数の)プロセッサ804による実行の前又は後に(複数の)ストレージデバイス810に格納されてもよい。
コンピューティングデバイス800は更に、バス802に接続された1つ以上の通信インタフェース818を含みうる。通信インタフェース818は、ローカルネットワーク822(例えば、イーサネット(登録商標)ネットワーク、無線ローカルエリアネットワーク、携帯電話ネットワーク、Bluetooth(登録商標)無線ネットワーク等)に接続された有線又は無線のネットワークリンク820に結合している双方向のデータ通信を提供する。通信インタフェース818は、種々のタイプの情報を表すデジタルデータストリームを運ぶ電気信号、電磁気信号、又は光信号を送信及び受信する。例えば、通信インタフェース818は、有線ネットワークインタフェースカード、組み込み無線アンテナを有する無線ネットワークインタフェースカード、又はモデム(例えば、ISDN、DSL、若しくはケーブルモデム)であってもよい。
(複数の)ネットワークリンク820は、典型的には、他のデータデバイスへの1つ以上のネットワークを介したデータ通信を提供する。例えば、ネットワークリンク820は、ローカルネットワーク822を通じて、ホストコンピュータ824へのコネクション、又はインターネットサービスプロバイダ(ISP)826によって運用されるデータ機器へのコネクションを提供しうる。そして、ISP826は、今日では一般に「インターネット」828と称される、世界的なパケットデータ通信ネットワークを通じて、データ通信サービスを提供する。(複数の)ローカルネットワーク822及びインターネット828は、デジタルデータストリームを運ぶ電気信号、電磁気信号、又は光信号を使用する。種々のネットワークを通る信号、並びに(複数の)ネットワークリンク820上の信号及び(複数の)通信インタフェース818を通る信号は、コンピューティングデバイス800へのデジタルデータ及び当該デバイスからのデジタルデータを運び、伝送媒体の形態の例である。
コンピューティングデバイス800は、(複数の)ネットワーク、(複数の)ネットワークリンク820、及び(複数の)通信インタフェース818を通じて、プログラムコードを含む、メッセージを送信し、データを受信することができる。インターネットの例では、サーバ830は、インターネット828、ISP826、(複数の)ローカルネットワーク822、及び(複数の)通信インタフェース818を通じて、アプリケーションプログラムに対して要求されるコードを送信するかもしれない。
受信コードは、受信した際にプロセッサ804によって実行されてもよく、及び、後の実行のためにストレージデバイス810又は他の不揮発性のストレージに格納されてもよく、或いは、そのいずれもが行われてもよい。
<ソフトウェアシステムの例>
図9は、コンピューティングデバイス800の動作を制御するために用いられうる基本的なソフトウェアシステム900のブロック図である。ソフトウェアシステム900及びその構成要素は、それらの接続、関係、及び機能を含め、例示のみが意図されており、(複数の)実施形態の例を制限することは意図されていない。(複数の)実施形態の例の実施に適した他のソフトウェアシステムは、種々の接続、関係、及び機能を有する構成要素を含む、種々の構成要素を有しうる。
ソフトウェアシステム900は、コンピューティングデバイス800の動作を命令するために提供される。ソフトウェアシステム900は、システムメモリ(RAM)806内に格納されてよく、また、固定ストレージ(例えば、ハードディスク又はフラッシュメモリ)810に格納されてよく、カーネル又はオペレーティングシステム(OS)910を含む。OS910は、プロセスの実行、メモリの割り当て、ファイルの入出力(I/O)、及びデバイスI/Oを含む、コンピュータ動作の低レベルの側面を管理する。図9において902A,902B,902C,... 902Nとして表される、1つ以上のアプリケーションプログラムは、システム900による実行のために「ロード」されうる(即ち、固定ストレージ810からメモリ806へ転送されうる)。デバイス900での使用が意図されたアプリケーション又は他のソフトウェアは更に、
例えば、インターネットロケーション(例えば、Webサーバ)からのダウンロード及びインストールのために、ダウロード可能な、コンピュータで実行可能な命令のセットとして、格納されてもよい。
ソフトウェアシステム900は、グラフィカルな(例えば、「ポイント・アンド・クリック」又は「タッチジェスチャ」)方法でユーザコマンド及びデータを受け付けるための、グラフィカルユーザインタフェース(GUI)915を含む。そして、これらの入力は、オペレーティングシステム910及び/又は(複数の)アプリケーション902からの命令に従って、システム900によって作用されうる。GUI915は更に、ユーザが追加の入力を提供又はセッションを終了(例えば、ログオフ)すると、OS910及び(複数の)アプリケーション902からの動作の結果を表示する働きをする。
OS910は、デバイス800のベア・ハードウェア(例えば、(複数の)プロセッサ804)上で直接実行できる。あるいは、ハイパーバイザ又は仮想マシンモニタ(VMM)930が、ベア・ハードウェア920とOS910との間に介在してもよい。この構成では、VMM930は、OS910とデバイス800のベア・ハードウェア920との間のソフトウェア「クッション」又は仮想レイヤとして機能する。
VMM930は、1つ以上の仮想マシン・インスタンス(「ゲストマシン」)を生成して実行する。各ゲストマシンは、OS910のような「ゲスト」オペレーティングシステムと、ゲスト・オペレーティングシステム上で実行するよう設計された、(複数の)アプリケーション902のような1つ以上のアプリケーションとを備える。VMM930は、ゲスト・オペレーティングシステムに仮想オペレーティングプラットフォームを与え、ゲスト・オペレーティングシステムの実行を管理する。
場合によっては、VMM930は、ゲスト・オペレーティングシステムが、あたかもデバイス800のベア・ハードウェア920上で直接動作しているかのうように動作することを可能にしうる。この場合、ベア・ハードウェア920上で実行するよう構成されたゲスト・オペレーティングシステムの同じバージョンも、直接、修正又は再構成なしでVMM930上で実行することが可能であってもよい。言い換えれば、VMM930は、場合によってはゲスト・オペレーティングシステムに対してフル・ハードウェア及びCPU仮想化を提供しうる。
その他の場合において、ゲスト・オペレーティングシステムは、効率化のため、VMM930上で実行するよう、特別に構成又は設計されてもよい。この場合には、ゲスト・オペレーティングシステムは、仮想マシンモニタ上で実行することを「知っている」。言い換えれば、VMM930は、場合によってはゲスト・オペレーティングシステムに対して準仮想化(para-virtualization)を提供しうる。
上述の基本的なコンピュータハードウェア及びソフトウェアは、(複数の)実施形態の例の実施のために採用されうる、基礎となる基本的なコンピュータコンポーネントの例を説明する目的で与えられている。しかし、(複数の)実施形態の例は、任意の特定のコンピューティング環境又はコンピューティングデバイス構成に限定されない。その代わりに、当該(複数の)実施形態の例は、当業者が本開示を考慮して、本明細書で提示される(複数の)実施形態の例の特徴及び機能をサポートできるものと理解する、任意のタイプのシステム構成又は処理環境において実施されうる。
上述の明細書では、多数の具体的詳細を参照して本発明の(複数の)実施形態の例について説明してきた。しかし、当該詳細は、間近の具体的な実施の要件に従って実施ごとに変化してもよい。したがって、上記(複数の)実施形態の例は、限定的ではなく例示的な意味で考えられるべきである。
上述の明細書では、多数の具体的詳細を参照して本発明の(複数の)実施形態の例について説明してきた。しかし、当該詳細は、間近の具体的な実施の要件に従って実施ごとに変化してもよい。したがって、上記(複数の)実施形態の例は、限定的ではなく例示的な意味で考えられるべきである。
なお、本願の出願当初の特許請求の範囲に記載された発明を以下に付記する。
[C1]
システムであって、
1つ以上のプロセッサと、
前記1つ以上のプロセッサによる実行のための1つ以上のコンピュータプログラムを格納した、コンピュータで読み取り可能な1つ以上の媒体と、を備え、前記1つ以上のコンピュータプログラムは、
複数のユーザに対するコンテンツであって、複数の階層構造内に配置されている複数のコンテンツアイテム及び複数のフォルダを含む前記コンテンツを、コンテンツ管理システムに格納することと、
複数のルートネームスペースを設けることと、ここで、前記複数のルートネームスペースの各ルートネームスペースは、アカウントのルートフォルダをルートとしており、
前記複数のフォルダから選択された第1のフォルダをルートとしている第1のネームスペースを設けることと、
前記複数のユーザのうちのユーザの第1の集合に対して前記第1のネームスペースへのアクセスを許可する第1のパーミッションであって、前記第1のネームスペースに対する前記第1のパーミッションを保持することと、
前記複数の階層構造のうちの特定の階層構造において前記第1のフォルダの子である第2のフォルダを共有することを求める要求を受け付けることと、
前記第2のフォルダをルートとしている第2のネームスペースを設けることと、
前記複数のユーザのうちのユーザの第2の集合に対して前記第2のネームスペースへのアクセスを許可する第2のパーミッションであって、前記第2のネームスペースに対する 前記第2のパーミッションを保持することと、
を行うための命令を含む、システム。
[C2]
C1に記載のシステムであって、前記1つ以上のコンピュータプログラムは、更に、
前記第1のパーミッション及び前記第2のパーミッションの少なくとも1つに基づいて、前記第1のネームスペース及び前記第2のネームスペースの少なくとも1つへのアクセスを特定のユーザが有することを判定することと、
前記特定のユーザが、前記第1のネームスペース及び前記第2のネームスペースへのアクセスを有する場合に、前記第2のフォルダを含む、前記特定の階層構造における前記第1のフォルダ及びそのフォルダの子へのアクセスを、前記特定のユーザに提供することと、
前記特定のユーザが、前記第1のネームスペースへのアクセスを有し、かつ、前記第2のネームスペースへのアクセスを有しない場合に、前記第2のフォルダを除く、前記特定の階層構造における前記第1のフォルダ及びその子へのアクセスを、前記特定のユーザに提供することと、
前記特定のユーザが、前記第2のネームスペースへのアクセスを有し、かつ、前記第1のネームスペースへのアクセスを有しない場合に、前記第2のフォルダへのアクセスを、前記特定のユーザに提供することと、
を行うための命令を含む、システム。
[C3]
C1に記載のシステムであって、前記第1のネームスペースは、共有ネームスペースであり、前記第1のフォルダは、前記第1のネームスペースの共有フォルダである、システム。
[C4]
C1に記載のシステムであって、
前記第1のフォルダは、エンティティアカウントのルートフォルダを含むサブツリー内にあり、
ユーザの前記第1の集合は、前記エンティティアカウントと関連付けられたユーザのサブセットを少なくとも含む、システム。
[C5]
C1に記載のシステムであって、前記1つ以上のコンピュータプログラムは、更に、
前記第1のパーミッション及び前記第2のパーミッションの少なくとも1つに基づいて、前記第1のネームスペース及び前記第2のネームスペースの少なくとも1つへのアクセスを特定のユーザが有することを判定することと、
前記特定のユーザが、前記第1のネームスペース及び前記第2のネームスペースへのアクセスを有する場合に、前記第2のフォルダ及びその子孫を含む、前記特定の階層構造を記述している階層データを、前記特定のユーザに提供することと、
前記特定のユーザが、前記第1のネームスペースへのアクセスを有し、かつ、前記第2のネームスペースへのアクセスを有しない場合に、前記第2のフォルダ及びその子孫を含まない、前記特定の階層構造を記述している階層データを、前記特定のユーザに提供することと、
前記特定のユーザが、前記第2のネームスペースへのアクセスを有し、かつ、前記第1のネームスペースへのアクセスを有しない場合に、前記第2のフォルダのサブツリーを記述している階層データを、前記特定のユーザに提供することと、
を行うための命令を含む、システム。
[C6]
C1に記載のシステムであって、前記1つ以上のコンピュータプログラムは、更に、
前記第2のネームスペースの親フォルダを、前記第1のネームスペースにおけるパスとして設定することと、
前記親のネームスペースからパーミッションが継承されるべきであるかどうかを示す、前記第2のネームスペースに対するパーミッション継承フラグを設定することと、
前記パーミッション継承フラグが、前記親のネームスペースからパーミッションが継承されるべきであることを示す場合に、ユーザの前記第2の集合内のユーザの前記第1の集合を含む前記第2のネームスペースに対して前記第2のパーミッションを保持することと、
を行うための命令を含む、システム。
[C7]
C1に記載のシステムであって、前記1つ以上のコンピュータプログラムは、更に、
前記特定のネームスペースにおける特定のパスへ前記第2のネームスペースをマウントすることを求める要求を、前記特定のネームスペースへのアクセスを有する特定のユーザから受け付けることと、
ここで、前記第2のパーミッションは、前記第2のネームスペースへのアクセスを前記特定のユーザに許可し、
1つ以上の制約の集合が満たされるかどうかを判定することと、
1つ以上の制約の集合が満たされる場合に、前記第2のネームスペースを、前記特定のネームスペースにおける前記特定のパスへマウントすることと、
を行うための命令を含む、システム。
[C8]
C7に記載のシステムであって、1つ以上の制約の前記集合は、ルートネームスペースではない共有ネームスペースにおける2つ以上のパスに、前記第2のネームスペースをマウントできないという制約を含む、システム。
[C9]
C7に記載のシステムであって、1つ以上の制約の前記集合は、ユーザの前記第2の集合のユーザについて、ルートネームスペース又はその子ネームスペースにおける2つ以上のパスに前記第2のネームスペースをマウントできないという制約を含む、システム。
[C10]
C1に記載のシステムであって、前記1つ以上のコンピュータプログラムは、更に、
前記第2のネームスペースに関係するマウント動作を実行することを求める要求を、特定のユーザから受け付けることと、
1つ以上の影響を受けるネームスペースについての1つ以上のマウントロックを取得することによって、少なくとも1つの制約を強制することであって、前記1つ以上のマウントロックが取得できない場合に前記マウント動作が失敗する、前記強制することと、
を行うための命令を含む、システム。
[C11]
方法であって、
1つ以上のプロセッサと、前記方法を実行するために前記1つ以上のプロセッサによって実行される1つ以上のコンピュータプログラムを格納したメモリと、を備える1つ以上のコンピューティングデバイスにおいて、
複数のユーザに対するコンテンツであって、複数の階層構造内に配置されている複数のコンテンツアイテム及び複数のフォルダを含む前記コンテンツを、コンテンツ管理システムに格納することと、
複数のルートネームスペースを設けることと、ここで、前記複数のルートネームスペースの各ルートネームスペースは、アカウントのルートフォルダをルートとしており、
前記複数のフォルダから選択された第1のフォルダをルートとしている第1のネームスペースを設けることと、
前記複数のユーザのうちのユーザの第1の集合に対して前記第1のネームスペースへのアクセスを許可する第1のパーミッションであって、前記第1のネームスペースに対する前記第1のパーミッションを保持することと、
前記複数の階層構造のうちの特定の階層構造において前記第1のフォルダの子である第2のフォルダを共有することを求める要求を受け付けることと、
前記第2のフォルダをルートとしている第2のネームスペースを設けることと、
前記複数のユーザのうちのユーザの第2の集合に対して前記第2のネームスペースへのアクセスを許可する第2のパーミッションであって、前記第2のネームスペースに対する前記第2のパーミッションを保持することと、
を含む動作を実行することを含む、方法。
[C12]
C11に記載の方法であって、更に、
前記第1のパーミッション及び前記第2のパーミッションの少なくとも1つに基づいて、前記第1のネームスペース及び前記第2のネームスペースの少なくとも1つへのアクセスを特定のユーザが有することを判定することと、
前記特定のユーザが、前記第1のネームスペース及び前記第2のネームスペースへのアクセスを有する場合に、前記第2のフォルダを含む、前記特定の階層構造における前記第1のフォルダ及びそのフォルダの子へのアクセスを、前記特定のユーザに提供することと、
前記特定のユーザが、前記第1のネームスペースへのアクセスを有し、かつ、前記第2のネームスペースへのアクセスを有しない場合に、前記第2のフォルダを除く、前記特定の階層構造における前記第1のフォルダ及びその子へのアクセスを、前記特定のユーザに提供することと、
前記特定のユーザが、前記第2のネームスペースへのアクセスを有し、かつ、前記第1のネームスペースへのアクセスを有しない場合に、前記第2のフォルダへのアクセスを、前記特定のユーザに提供することと、
を含む、方法。
[C13]
C11に記載の方法であって、前記第1のネームスペースは、共有ネームスペースであり、前記第1のフォルダは、前記第1のネームスペースの共有フォルダである、方法。
[C14]
C11に記載の方法であって、
前記第1のフォルダは、エンティティアカウントのルートフォルダを含むサブツリー内にあり、
ユーザの前記第1の集合は、前記エンティティアカウントと関連付けられたユーザのサブセットを少なくとも含む、方法。
[C15]
C11に記載の方法であって、更に、
前記第1のパーミッション及び前記第2のパーミッションの少なくとも1つに基づいて、前記第1のネームスペース及び前記第2のネームスペースの少なくとも1つへのアクセスを特定のユーザが有することを判定することと、
前記特定のユーザが、前記第1のネームスペース及び前記第2のネームスペースへのアクセスを有する場合に、前記第2のフォルダ及びその子孫を含む、前記特定の階層構造を記述している階層データを、前記特定のユーザに提供することと、
前記特定のユーザが、前記第1のネームスペースへのアクセスを有し、かつ、前記第2のネームスペースへのアクセスを有しない場合に、前記第2のフォルダ及びその子孫を含まない、前記特定の階層構造を記述している階層データを、前記特定のユーザに提供することと、
前記特定のユーザが、前記第2のネームスペースへのアクセスを有し、かつ、前記第1のネームスペースへのアクセスを有しない場合に、前記第2のフォルダのサブツリーを記述している階層データを、前記特定のユーザに提供することと、
を含む、方法。
[C16]
C11に記載の方法であって、更に、
前記第2のネームスペースの親フォルダを、前記第1のネームスペースにおけるパスとして設定することと、
前記親のネームスペースからパーミッションが継承されるべきであるかどうかを示す、前記第2のネームスペースに対するパーミッション継承フラグを設定することと、
前記パーミッション継承フラグが、前記親のネームスペースからパーミッションが継承されるべきであることを示す場合に、ユーザの前記第2の集合内のユーザの前記第1の集合を含む前記第2のネームスペースに対して前記第2のパーミッションを保持することと、
を含む、方法。
[C17]
C11に記載の方法であって、更に、
前記特定のネームスペースにおける特定のパスへ前記第2のネームスペースをマウントすることを求める要求を、前記特定のネームスペースへのアクセスを有する特定のユーザから受け付けることと、
ここで、前記第2のパーミッションは、前記第2のネームスペースへのアクセスを前記特定のユーザに許可し、
1つ以上の制約の集合が満たされるかどうかを判定することと、
1つ以上の制約の集合が満たされる場合に、前記第2のネームスペースを、前記特定のネームスペースにおける前記特定のパスへマウントすることと、
を含む、方法。
[C18]
C17に記載の方法であって、1つ以上の制約の前記集合は、ルートネームスペースではない共有ネームスペースにおける2つ以上のパスに、前記第2のネームスペースをマウントできないという制約を含む、方法。
[C19]
C17に記載の方法であって、1つ以上の制約の前記集合は、ユーザの前記第2の集合のユーザについて、ルートネームスペース又はその子ネームスペースにおける2つ以上のパスに前記第2のネームスペースをマウントできないという制約を含む、方法。
[C20]
C11に記載の方法であって、更に、
前記第2のネームスペースに関係するマウント動作を実行することを求める要求を、特定のユーザから受け付けることと、
1つ以上の影響を受けるネームスペースについての1つ以上のマウントロックを取得することによって、少なくとも1つの制約を強制することであって、前記1つ以上のマウントロックが取得できない場合に前記マウント動作が失敗する、前記強制することと、
を含む、方法。
[C21]
1つ以上のコンピュータの1つ以上のプロセッサによって実行された場合に、C11からC20のいずれか1項に記載の方法を実行させる、1つ以上のプログラムを格納した、1つ以上の非一時的なコンピュータ読み取り可能媒体。

Claims (21)

  1. システムであって、
    1つ以上のプロセッサと、
    前記1つ以上のプロセッサによる実行のための1つ以上のコンピュータプログラムを格納した、コンピュータで読み取り可能な1つ以上のストレージ媒体と、を備え、前記1つ以上のコンピュータプログラムは、
    複数のユーザに対するコンテンツであって、複数の階層構造内に配置されている複数のコンテンツアイテム及び複数のフォルダを含む前記コンテンツを、コンテンツ管理システムに格納することと、
    複数のルートネームスペースを設けることと、ここで、前記複数のルートネームスペースの各ルートネームスペースは、アカウントのルートフォルダをルートとしており、
    前記複数のフォルダから選択された第1のフォルダをルートとしている第1のネームスペースを設けることと、
    前記複数のユーザのうちのユーザの第1の集合に対して前記第1のネームスペースへのアクセスを許可する第1のパーミッションであって、前記第1のネームスペースに対する前記第1のパーミッションを保持することと、
    前記複数の階層構造のうちの特定の階層構造において前記第1のフォルダの子である第2のフォルダを共有することを求める要求を受け付けることと、
    前記第2のフォルダをルートとしている第2のネームスペースを設けることと、
    前記複数のユーザのうちのユーザの第2の集合に対して前記第2のネームスペースへのアクセスを許可する第2のパーミッションであって、前記第2のネームスペースに対する 前記第2のパーミッションを保持することと、
    を行うための命令を含む、システム。
  2. 請求項1に記載のシステムであって、前記1つ以上のコンピュータプログラムは、更に、
    前記第1のパーミッション及び前記第2のパーミッションの少なくとも1つに基づいて、前記第1のネームスペース及び前記第2のネームスペースの少なくとも1つへのアクセスを特定のユーザが有することを判定することと、
    前記特定のユーザが、前記第1のネームスペース及び前記第2のネームスペースへのアクセスを有する場合に、前記第2のフォルダを含む、前記特定の階層構造における前記第1のフォルダ及びそのフォルダの子へのアクセスを、前記特定のユーザに提供することと、
    前記特定のユーザが、前記第1のネームスペースへのアクセスを有し、かつ、前記第2のネームスペースへのアクセスを有しない場合に、前記第2のフォルダを除く、前記特定の階層構造における前記第1のフォルダ及びその子へのアクセスを、前記特定のユーザに提供することと、
    前記特定のユーザが、前記第2のネームスペースへのアクセスを有し、かつ、前記第1のネームスペースへのアクセスを有しない場合に、前記第2のフォルダへのアクセスを、前記特定のユーザに提供することと、
    を行うための命令を含む、システム。
  3. 請求項1に記載のシステムであって、前記第1のネームスペースは、共有ネームスペースであり、前記第1のフォルダは、前記第1のネームスペースの共有フォルダである、システム。
  4. 請求項1に記載のシステムであって、
    前記第1のフォルダは、エンティティアカウントのルートフォルダを含むサブツリー内にあり、
    ユーザの前記第1の集合は、前記エンティティアカウントと関連付けられたユーザのサブセットを少なくとも含む、システム。
  5. 請求項1に記載のシステムであって、前記1つ以上のコンピュータプログラムは、更に、
    前記第1のパーミッション及び前記第2のパーミッションの少なくとも1つに基づいて、前記第1のネームスペース及び前記第2のネームスペースの少なくとも1つへのアクセスを特定のユーザが有することを判定することと、
    前記特定のユーザが、前記第1のネームスペース及び前記第2のネームスペースへのアクセスを有する場合に、前記第2のフォルダ及びその子孫を含む、前記特定の階層構造を記述している階層データを、前記特定のユーザに提供することと、
    前記特定のユーザが、前記第1のネームスペースへのアクセスを有し、かつ、前記第2のネームスペースへのアクセスを有しない場合に、前記第2のフォルダ及びその子孫を含まない、前記特定の階層構造を記述している階層データを、前記特定のユーザに提供することと、
    前記特定のユーザが、前記第2のネームスペースへのアクセスを有し、かつ、前記第1のネームスペースへのアクセスを有しない場合に、前記第2のフォルダのサブツリーを記述している階層データを、前記特定のユーザに提供することと、
    を行うための命令を含む、システム。
  6. 請求項1に記載のシステムであって、前記1つ以上のコンピュータプログラムは、更に、
    前記第2のネームスペースの親フォルダを、前記第1のネームスペースにおけるパスとして設定することと、
    前記親のネームスペースからパーミッションが継承されるべきであるかどうかを示す、前記第2のネームスペースに対するパーミッション継承フラグを設定することと、
    前記パーミッション継承フラグが、前記親のネームスペースからパーミッションが継承されるべきであることを示す場合に、ユーザの前記第2の集合内のユーザの前記第1の集合を含む前記第2のネームスペースに対して前記第2のパーミッションを保持することと、
    を行うための命令を含む、システム。
  7. 請求項1に記載のシステムであって、前記1つ以上のコンピュータプログラムは、更に、
    前記特定のネームスペースにおける特定のパスへ前記第2のネームスペースをマウントすることを求める要求を、前記特定のネームスペースへのアクセスを有する特定のユーザから受け付けることと、
    ここで、前記第2のパーミッションは、前記第2のネームスペースへのアクセスを前記特定のユーザに許可し、
    1つ以上の制約の集合が満たされるかどうかを判定することと、
    1つ以上の制約の集合が満たされる場合に、前記第2のネームスペースを、前記特定のネームスペースにおける前記特定のパスへマウントすることと、
    を行うための命令を含む、システム。
  8. 請求項7に記載のシステムであって、1つ以上の制約の前記集合は、ルートネームスペースではない共有ネームスペースにおける2つ以上のパスに、前記第2のネームスペースをマウントできないという制約を含む、システム。
  9. 請求項7に記載のシステムであって、1つ以上の制約の前記集合は、ユーザの前記第2の集合のユーザについて、ルートネームスペース又はその子ネームスペースにおける2つ以上のパスに前記第2のネームスペースをマウントできないという制約を含む、システム。
  10. 請求項1に記載のシステムであって、前記1つ以上のコンピュータプログラムは、更に、
    前記第2のネームスペースに関係するマウント動作を実行することを求める要求を、特定のユーザから受け付けることと、
    1つ以上の影響を受けるネームスペースについての1つ以上のマウントロックを取得することによって、少なくとも1つの制約を強制することであって、前記1つ以上のマウントロックが取得できない場合に前記マウント動作が失敗する、前記強制することと、
    を行うための命令を含む、システム。
  11. 方法であって、
    1つ以上のプロセッサと、前記方法を実行するために前記1つ以上のプロセッサによって実行される1つ以上のコンピュータプログラムを格納したメモリと、を備える1つ以上のコンピューティングデバイスにおいて、
    複数のユーザに対するコンテンツであって、複数の階層構造内に配置されている複数のコンテンツアイテム及び複数のフォルダを含む前記コンテンツを、コンテンツ管理システムに格納することと、
    複数のルートネームスペースを設けることと、ここで、前記複数のルートネームスペースの各ルートネームスペースは、アカウントのルートフォルダをルートとしており、
    前記複数のフォルダから選択された第1のフォルダをルートとしている第1のネームスペースを設けることと、
    前記複数のユーザのうちのユーザの第1の集合に対して前記第1のネームスペースへのアクセスを許可する第1のパーミッションであって、前記第1のネームスペースに対する前記第1のパーミッションを保持することと、
    前記複数の階層構造のうちの特定の階層構造において前記第1のフォルダの子である第2のフォルダを共有することを求める要求を受け付けることと、
    前記第2のフォルダをルートとしている第2のネームスペースを設けることと、
    前記複数のユーザのうちのユーザの第2の集合に対して前記第2のネームスペースへのアクセスを許可する第2のパーミッションであって、前記第2のネームスペースに対する前記第2のパーミッションを保持することと、
    を含む、方法。
  12. 請求項11に記載の方法であって、更に、
    前記第1のパーミッション及び前記第2のパーミッションの少なくとも1つに基づいて、前記第1のネームスペース及び前記第2のネームスペースの少なくとも1つへのアクセスを特定のユーザが有することを判定することと、
    前記特定のユーザが、前記第1のネームスペース及び前記第2のネームスペースへのアクセスを有する場合に、前記第2のフォルダを含む、前記特定の階層構造における前記第1のフォルダ及びそのフォルダの子へのアクセスを、前記特定のユーザに提供することと、
    前記特定のユーザが、前記第1のネームスペースへのアクセスを有し、かつ、前記第2のネームスペースへのアクセスを有しない場合に、前記第2のフォルダを除く、前記特定の階層構造における前記第1のフォルダ及びその子へのアクセスを、前記特定のユーザに提供することと、
    前記特定のユーザが、前記第2のネームスペースへのアクセスを有し、かつ、前記第1のネームスペースへのアクセスを有しない場合に、前記第2のフォルダへのアクセスを、前記特定のユーザに提供することと、
    を含む、方法。
  13. 請求項11に記載の方法であって、前記第1のネームスペースは、共有ネームスペースであり、前記第1のフォルダは、前記第1のネームスペースの共有フォルダである、方法。
  14. 請求項11に記載の方法であって、
    前記第1のフォルダは、エンティティアカウントのルートフォルダを含むサブツリー内にあり、
    ユーザの前記第1の集合は、前記エンティティアカウントと関連付けられたユーザのサブセットを少なくとも含む、方法。
  15. 請求項11に記載の方法であって、更に、
    前記第1のパーミッション及び前記第2のパーミッションの少なくとも1つに基づいて、前記第1のネームスペース及び前記第2のネームスペースの少なくとも1つへのアクセスを特定のユーザが有することを判定することと、
    前記特定のユーザが、前記第1のネームスペース及び前記第2のネームスペースへのアクセスを有する場合に、前記第2のフォルダ及びその子孫を含む、前記特定の階層構造を記述している階層データを、前記特定のユーザに提供することと、
    前記特定のユーザが、前記第1のネームスペースへのアクセスを有し、かつ、前記第2のネームスペースへのアクセスを有しない場合に、前記第2のフォルダ及びその子孫を含まない、前記特定の階層構造を記述している階層データを、前記特定のユーザに提供することと、
    前記特定のユーザが、前記第2のネームスペースへのアクセスを有し、かつ、前記第1のネームスペースへのアクセスを有しない場合に、前記第2のフォルダのサブツリーを記述している階層データを、前記特定のユーザに提供することと、
    を含む、方法。
  16. 請求項11に記載の方法であって、更に、
    前記第2のネームスペースの親フォルダを、前記第1のネームスペースにおけるパスとして設定することと、
    前記親のネームスペースからパーミッションが継承されるべきであるかどうかを示す、前記第2のネームスペースに対するパーミッション継承フラグを設定することと、
    前記パーミッション継承フラグが、前記親のネームスペースからパーミッションが継承されるべきであることを示す場合に、ユーザの前記第2の集合内のユーザの前記第1の集合を含む前記第2のネームスペースに対して前記第2のパーミッションを保持することと、
    を含む、方法。
  17. 請求項11に記載の方法であって、更に、
    前記特定のネームスペースにおける特定のパスへ前記第2のネームスペースをマウントすることを求める要求を、前記特定のネームスペースへのアクセスを有する特定のユーザから受け付けることと、
    ここで、前記第2のパーミッションは、前記第2のネームスペースへのアクセスを前記特定のユーザに許可し、
    1つ以上の制約の集合が満たされるかどうかを判定することと、
    1つ以上の制約の集合が満たされる場合に、前記第2のネームスペースを、前記特定のネームスペースにおける前記特定のパスへマウントすることと、
    を含む、方法。
  18. 請求項17に記載の方法であって、1つ以上の制約の前記集合は、ルートネームスペースではない共有ネームスペースにおける2つ以上のパスに、前記第2のネームスペースをマウントできないという制約を含む、方法。
  19. 請求項17に記載の方法であって、1つ以上の制約の前記集合は、ユーザの前記第2の集合のユーザについて、ルートネームスペース又はその子ネームスペースにおける2つ以上のパスに前記第2のネームスペースをマウントできないという制約を含む、方法。
  20. 請求項11に記載の方法であって、更に、
    前記第2のネームスペースに関係するマウント動作を実行することを求める要求を、特定のユーザから受け付けることと、
    1つ以上の影響を受けるネームスペースについての1つ以上のマウントロックを取得することによって、少なくとも1つの制約を強制することであって、前記1つ以上のマウントロックが取得できない場合に前記マウント動作が失敗する、前記強制することと、
    を含む、方法。
  21. 1つ以上のコンピュータの1つ以上のプロセッサによって実行された場合に、請求項11から20のいずれか1項に記載の方法を実行させる、1つ以上のプログラムを格納した、1つ以上の非一時的なコンピュータ読み取り可能媒体。
JP2017550811A 2015-04-01 2016-03-30 選択的コンテンツ共有のためのネスト化ネームスペース Active JP6522780B2 (ja)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201562141577P 2015-04-01 2015-04-01
US62/141,577 2015-04-01
US14/961,067 2015-12-07
US14/961,067 US9922201B2 (en) 2015-04-01 2015-12-07 Nested namespaces for selective content sharing
PCT/US2016/025014 WO2016160994A1 (en) 2015-04-01 2016-03-30 Nested namespaces for selective content sharing

Publications (2)

Publication Number Publication Date
JP2018512674A true JP2018512674A (ja) 2018-05-17
JP6522780B2 JP6522780B2 (ja) 2019-05-29

Family

ID=55752745

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2017550811A Active JP6522780B2 (ja) 2015-04-01 2016-03-30 選択的コンテンツ共有のためのネスト化ネームスペース

Country Status (5)

Country Link
US (4) US9922201B2 (ja)
EP (1) EP3278535B1 (ja)
JP (1) JP6522780B2 (ja)
AU (1) AU2016242857C1 (ja)
WO (1) WO2016160994A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021535475A (ja) * 2018-08-22 2021-12-16 京東方科技集團股▲ふん▼有限公司Boe Technology Group Co., Ltd. アクセスコントロールポリシーの配置方法、装置、システム及び記憶媒体

Families Citing this family (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9773119B2 (en) * 2015-02-25 2017-09-26 Sap Se Parallel and hierarchical password protection on specific document sections
US9922201B2 (en) * 2015-04-01 2018-03-20 Dropbox, Inc. Nested namespaces for selective content sharing
US10963430B2 (en) 2015-04-01 2021-03-30 Dropbox, Inc. Shared workspaces with selective content item synchronization
US10001913B2 (en) 2015-04-01 2018-06-19 Dropbox, Inc. Shared workspaces with selective content item synchronization
US10277601B1 (en) * 2015-05-11 2019-04-30 Google Llc System and method for recursive propagating application access control
US10691718B2 (en) 2015-10-29 2020-06-23 Dropbox, Inc. Synchronization protocol for multi-premises hosting of digital content items
US9571573B1 (en) 2015-10-29 2017-02-14 Dropbox, Inc. Peer-to-peer synchronization protocol for multi-premises hosting of digital content items
US10032045B2 (en) * 2015-10-30 2018-07-24 Raytheon Company Dynamic runtime field-level access control using a hierarchical permission context structure
US9537952B1 (en) 2016-01-29 2017-01-03 Dropbox, Inc. Apparent cloud access for hosted content items
AU2017322114B8 (en) 2016-09-02 2022-09-08 FutureVault Inc. Real-time document filtering systems and methods
EP3507723A4 (en) 2016-09-02 2020-04-01 FutureVault Inc. SYSTEMS AND METHODS FOR SHARING DOCUMENTS
SG11201901778YA (en) 2016-09-02 2019-03-28 Futurevault Inc Automated document filing and processing methods and systems
US10373080B2 (en) * 2016-10-28 2019-08-06 NoStatik Media S.A. Distributing a user interface for accessing files
US10579587B2 (en) 2017-01-03 2020-03-03 International Business Machines Corporation Space management for a hierarchical set of file systems
US10592479B2 (en) 2017-01-03 2020-03-17 International Business Machines Corporation Space management for a hierarchical set of file systems
US20180189124A1 (en) * 2017-01-03 2018-07-05 International Business Machines Corporation Rebuilding the namespace in a hierarchical union mounted file system
US10657102B2 (en) 2017-01-03 2020-05-19 International Business Machines Corporation Storage space management in union mounted file systems
US10649955B2 (en) 2017-01-03 2020-05-12 International Business Machines Corporation Providing unique inodes across multiple file system namespaces
US10585860B2 (en) 2017-01-03 2020-03-10 International Business Machines Corporation Global namespace for a hierarchical set of file systems
US10579598B2 (en) 2017-01-03 2020-03-03 International Business Machines Corporation Global namespace for a hierarchical set of file systems
US10454930B2 (en) * 2017-07-14 2019-10-22 EMC IP Holding Company LLC System and method for local data IP based network security for preventing data breach attempts in a multi-tenant protection storage deployment
US10812570B1 (en) * 2017-08-02 2020-10-20 Intuit Inc. System for data consolidation across disparate namespaces
US10819675B2 (en) 2017-08-14 2020-10-27 Nicira, Inc. Managing network connectivity between cloud computing service endpoints and virtual machines
US11063951B1 (en) * 2017-10-18 2021-07-13 Stealthbits Technologies Llc Systems and methods for correcting file system permissions
US10713378B2 (en) * 2017-12-19 2020-07-14 Dropbox, Inc. Techniques for eventually consistent inheritance propagation for nested content item namespaces
CN108228767B (zh) * 2017-12-27 2022-03-15 中国地质大学(武汉) 一种智能手机定向删除文件方法、设备及存储设备
US10866963B2 (en) * 2017-12-28 2020-12-15 Dropbox, Inc. File system authentication
US10769101B2 (en) * 2018-08-23 2020-09-08 Oath Inc. Selective data migration and sharing
US11385954B2 (en) * 2019-01-28 2022-07-12 Yahoo Assets Llc Graphical management of big data pipelines
US20200379994A1 (en) 2019-05-31 2020-12-03 Snowflake Inc. Sharing Materialized Views In Multiple Tenant Database Systems
US11042698B2 (en) * 2019-08-22 2021-06-22 Paul Bannister System and method of contextually converting a media file into an electronic document
US11290531B2 (en) 2019-12-04 2022-03-29 Dropbox, Inc. Immediate cloud content item creation from local file system interface
US11829500B2 (en) * 2020-09-04 2023-11-28 Netflix, Inc. File interface to dynamically manage access to remote files
US20220083510A1 (en) * 2020-09-15 2022-03-17 Open Text Holdings, Inc. Connector for content repositories
US11593410B1 (en) * 2021-09-30 2023-02-28 Lucid Software, Inc. User-defined groups of graphical objects
WO2024103165A1 (en) * 2022-11-15 2024-05-23 CoLab Software Inc. Multi-user collaboration systems, and methods of providing thereof
WO2024137075A1 (en) * 2022-12-22 2024-06-27 Dropbox, Inc. A method for synchronizing a root namespace in a multi-root synchronization system
US20240211444A1 (en) * 2022-12-22 2024-06-27 Dropbox, Inc. Multi-root content management system

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003030026A (ja) * 2001-07-19 2003-01-31 Dainippon Printing Co Ltd データ管理装置
JP2008305221A (ja) * 2007-06-08 2008-12-18 Fujitsu Ltd アクセス権設定装置、アクセス権設定方法、及びアクセス権設定プログラム
JP2012093911A (ja) * 2010-10-26 2012-05-17 Canon Inc データ移行システム、データ移行方法、プログラム
US20150058932A1 (en) * 2007-10-11 2015-02-26 Varonis Systems Inc. Visualization of access permission status

Family Cites Families (289)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2507235B2 (ja) 1994-06-24 1996-06-12 インターナショナル・ビジネス・マシーンズ・コーポレイション クライアント・サ―バ・コンピュ―タ・システム、及びそのクライアント・コンピュ―タ、サ―バ・コンピュ―タ、並びにオブジェクト更新方法
US5581765A (en) 1994-08-30 1996-12-03 International Business Machines Corporation System for combining a global object identifier with a local object address in a single object pointer
US6412017B1 (en) 1996-07-01 2002-06-25 Microsoft Corporation Urgent replication facility
US5940394A (en) 1996-08-08 1999-08-17 At&T Corp Transferring messages in networks made up of subnetworks with different namespaces
JPH1063555A (ja) 1996-08-19 1998-03-06 Hitachi Ltd ファイル管理方法
US5893116A (en) 1996-09-30 1999-04-06 Novell, Inc. Accessing network resources using network resource replicator and captured login script for use when the computer is disconnected from the network
US6335927B1 (en) 1996-11-18 2002-01-01 Mci Communications Corporation System and method for providing requested quality of service in a hybrid network
US5907848A (en) 1997-03-14 1999-05-25 Lakeview Technology, Inc. Method and system for defining transactions from a database log
US6061743A (en) 1998-02-19 2000-05-09 Novell, Inc. Method and apparatus for aggregating disparate namespaces
US6065018A (en) 1998-03-04 2000-05-16 International Business Machines Corporation Synchronizing recovery log having time stamp to a remote site for disaster recovery of a primary database having related hierarchial and relational databases
US6108703A (en) 1998-07-14 2000-08-22 Massachusetts Institute Of Technology Global hosting system
US6336173B1 (en) 1999-04-01 2002-01-01 International Business Machines Corporation Storing and tracking multiple copies of data in data storage libraries
US6623151B2 (en) 1999-08-04 2003-09-23 911Ep, Inc. LED double light bar and warning light signal
US6834284B2 (en) 1999-08-12 2004-12-21 International Business Machines Corporation Process and system for providing name service scoping behavior in java object-oriented environment
US6728723B1 (en) 1999-10-12 2004-04-27 Cisco Technology, Inc. Method and system for verifying configuration transactions managed by a centralized database
US6671757B1 (en) 2000-01-26 2003-12-30 Fusionone, Inc. Data transfer and synchronization system
US7327761B2 (en) 2000-02-03 2008-02-05 Bandwiz Inc. Data streaming
US6470329B1 (en) 2000-07-11 2002-10-22 Sun Microsystems, Inc. One-way hash functions for distributed data synchronization
US7689510B2 (en) 2000-09-07 2010-03-30 Sonic Solutions Methods and system for use in network management of content
US6732125B1 (en) 2000-09-08 2004-05-04 Storage Technology Corporation Self archiving log structured volume with intrinsic data protection
US6560591B1 (en) 2000-09-29 2003-05-06 Intel Corporation System, method, and apparatus for managing multiple data providers
US7660453B2 (en) 2000-10-11 2010-02-09 Imaging Therapeutics, Inc. Methods and devices for analysis of x-ray images
US6970939B2 (en) 2000-10-26 2005-11-29 Intel Corporation Method and apparatus for large payload distribution in a network
US7171475B2 (en) 2000-12-01 2007-01-30 Microsoft Corporation Peer networking host framework and hosting API
US20040133606A1 (en) 2003-01-02 2004-07-08 Z-Force Communications, Inc. Directory aggregation for files distributed over a plurality of servers in a switched file system
TW561358B (en) 2001-01-11 2003-11-11 Force Corp Z File switch and switched file system
US7509322B2 (en) 2001-01-11 2009-03-24 F5 Networks, Inc. Aggregated lock management for locking aggregated files in a switched file system
US7383288B2 (en) 2001-01-11 2008-06-03 Attune Systems, Inc. Metadata based file switch and switched file system
US7788335B2 (en) 2001-01-11 2010-08-31 F5 Networks, Inc. Aggregated opportunistic lock and aggregated implicit lock management for locking aggregated files in a switched file system
AU2002303126A1 (en) 2001-03-16 2002-10-03 Novell, Inc. Client-server model for synchronization of files
US6912645B2 (en) 2001-07-19 2005-06-28 Lucent Technologies Inc. Method and apparatus for archival data storage
US6947940B2 (en) 2002-07-30 2005-09-20 International Business Machines Corporation Uniform name space referrals with location independence
US7051053B2 (en) 2002-09-30 2006-05-23 Dinesh Sinha Method of lazily replicating files and monitoring log in backup file system
US7437405B1 (en) 2002-10-01 2008-10-14 Danger, Inc. System and method for managing data objects in a wireless device
US6993714B2 (en) 2002-10-03 2006-01-31 Microsoft Corporation Grouping and nesting hierarchical namespaces
US20040068523A1 (en) 2002-10-07 2004-04-08 Keith Robert Olan Method and system for full asynchronous master-to-master file synchronization
US20040162900A1 (en) 2002-12-17 2004-08-19 Tim Bucher Distributed content management system
US7117303B1 (en) 2003-03-14 2006-10-03 Network Appliance, Inc. Efficient, robust file handle invalidation
US7308545B1 (en) 2003-05-12 2007-12-11 Symantec Operating Corporation Method and system of providing replication
US7577960B2 (en) 2003-06-19 2009-08-18 Microsoft Corporation System and method for managing cached objects using notifications bonds
US7340723B2 (en) 2003-07-02 2008-03-04 Scaleform Corporation Identifier implementation mapping and methods of using namespaces
US7512638B2 (en) 2003-08-21 2009-03-31 Microsoft Corporation Systems and methods for providing conflict handling for peer-to-peer synchronization of units of information manageable by a hardware/software interface system
US7734690B2 (en) 2003-09-05 2010-06-08 Microsoft Corporation Method and apparatus for providing attributes of a collaboration system in an operating system folder-based file system
US20050071336A1 (en) 2003-09-30 2005-03-31 Microsoft Corporation Systems and methods for logging and recovering updates to data structures
US7426734B2 (en) 2003-10-24 2008-09-16 Microsoft Corporation Facilitating presentation functionality through a programming interface media namespace
JP4464656B2 (ja) 2003-11-06 2010-05-19 国立大学法人東京工業大学 コンテンツ蓄積システムおよびその方法
US7478381B2 (en) 2003-12-15 2009-01-13 Microsoft Corporation Managing software updates and a software distribution service
US7318134B1 (en) 2004-03-16 2008-01-08 Emc Corporation Continuous data backup using distributed journaling
US7395446B2 (en) 2004-05-03 2008-07-01 Microsoft Corporation Systems and methods for the implementation of a peer-to-peer rule-based pull autonomous synchronization system
US7774378B2 (en) 2004-06-04 2010-08-10 Icentera Corporation System and method for providing intelligence centers
JP4490743B2 (ja) 2004-06-24 2010-06-30 株式会社日立製作所 ファイル共有システム、ファイル共有用管理サーバおよびクライアント装置
US20060041844A1 (en) 2004-08-19 2006-02-23 Homiller Daniel P Methods, devices, systems and computer program products for providing availability data associated with data files to users of a presence service
US7702730B2 (en) 2004-09-03 2010-04-20 Open Text Corporation Systems and methods for collaboration
US20060064467A1 (en) 2004-09-17 2006-03-23 Libby Michael L System and method for partial web page caching and cache versioning
US7613703B2 (en) * 2004-09-30 2009-11-03 Microsoft Corporation Organizing resources into collections to facilitate more efficient and reliable resource access
US7496565B2 (en) * 2004-11-30 2009-02-24 Microsoft Corporation Method and system for maintaining namespace consistency with a file system
US7610307B2 (en) * 2004-11-30 2009-10-27 Microsoft Corporation Method and system of detecting file system namespace changes and restoring consistency
US7844691B2 (en) 2004-12-30 2010-11-30 Xstor Systems, Inc. Scalable distributed storage and delivery
US9361311B2 (en) 2005-01-12 2016-06-07 Wandisco, Inc. Distributed file system using consensus nodes
US7483929B2 (en) 2005-02-08 2009-01-27 Pro Softnet Corporation Systems and methods for storing, backing up and recovering computer data files
US7506010B2 (en) 2005-02-08 2009-03-17 Pro Softnet Corporation Storing and retrieving computer data files using an encrypted network drive file system
US7822793B2 (en) * 2005-04-01 2010-10-26 Microsoft Corporation User data profile namespace
US7984018B2 (en) 2005-04-18 2011-07-19 Microsoft Corporation Efficient point-to-multipoint data reconciliation
US7607582B2 (en) 2005-04-22 2009-10-27 Microsoft Corporation Aggregation and synchronization of nearby media
JP4824085B2 (ja) 2005-04-25 2011-11-24 ネットアップ,インコーポレイテッド ネットワークファイルシステムをキャッシュするシステム、及び方法
JP4729987B2 (ja) 2005-06-02 2011-07-20 富士ゼロックス株式会社 データ管理システム及びデータサーバ
EP1900189B1 (en) 2005-06-29 2018-04-18 Cisco Technology, Inc. Parallel filesystem traversal for transparent mirroring of directories and files
CA2615659A1 (en) 2005-07-22 2007-05-10 Yogesh Chunilal Rathod Universal knowledge management and desktop search system
US7571168B2 (en) 2005-07-25 2009-08-04 Parascale, Inc. Asynchronous file replication and migration in a storage network
US20070028215A1 (en) 2005-07-26 2007-02-01 Invensys Systems, Inc. Method and system for hierarchical namespace synchronization
US7401089B2 (en) 2005-08-17 2008-07-15 Microsoft Corporation Storage reports file system scanner
BRPI0520497A2 (pt) 2005-08-26 2009-05-12 Thomson Licensing sistema e método sob demanda que usam programação de transmissão dinámica
US20070055703A1 (en) * 2005-09-07 2007-03-08 Eyal Zimran Namespace server using referral protocols
US7574579B2 (en) 2005-09-30 2009-08-11 Cleversafe, Inc. Metadata management system for an information dispersed storage system
US8131689B2 (en) 2005-09-30 2012-03-06 Panagiotis Tsirigotis Accumulating access frequency and file attributes for supporting policy based storage management
US20070088702A1 (en) 2005-10-03 2007-04-19 Fridella Stephen A Intelligent network client for multi-protocol namespace redirection
US8041677B2 (en) 2005-10-12 2011-10-18 Datacastle Corporation Method and system for data backup
US20070100829A1 (en) 2005-10-26 2007-05-03 Allen J V Content manager system and method
EP1974296B8 (en) 2005-12-19 2016-09-21 Commvault Systems, Inc. Systems and methods for performing data replication
US7716180B2 (en) 2005-12-29 2010-05-11 Amazon Technologies, Inc. Distributed storage system with web services client interface
PL1972092T3 (pl) 2006-01-09 2013-11-29 Thomson Licensing Sposób i system dystrybucji treści multimedialnej
US8015491B2 (en) 2006-02-28 2011-09-06 Maven Networks, Inc. Systems and methods for a single development tool of unified online and offline content providing a similar viewing experience
US20070214497A1 (en) 2006-03-10 2007-09-13 Axalto Inc. System and method for providing a hierarchical role-based access control
US8171251B2 (en) 2006-03-16 2012-05-01 Sandisk Il Ltd. Data storage management method and device
US8281026B2 (en) 2006-03-18 2012-10-02 Metafluent, Llc System and method for integration of streaming and static data
US7890646B2 (en) 2006-04-27 2011-02-15 Microsoft Corporation Synchronization orchestration
US8370423B2 (en) 2006-06-16 2013-02-05 Microsoft Corporation Data synchronization and sharing relationships
US20080005195A1 (en) 2006-06-30 2008-01-03 Microsoft Corporation Versioning synchronization for mass p2p file sharing
US7953785B2 (en) 2006-06-30 2011-05-31 Microsoft Corporation Content synchronization in a file sharing environment
US20080046218A1 (en) 2006-08-16 2008-02-21 Microsoft Corporation Visual summarization of activity data of a computing session
US8082231B1 (en) 2006-09-22 2011-12-20 Emc Corporation Techniques using identifiers and signatures with data operations
US7685171B1 (en) 2006-09-22 2010-03-23 Emc Corporation Techniques for performing a restoration operation using device scanning
DE102006051187A1 (de) 2006-10-30 2008-05-08 Siemens Ag Verteilte Taskflow-Architektur
US8180735B2 (en) 2006-12-29 2012-05-15 Prodea Systems, Inc. Managed file backup and restore at remote storage locations through multi-services gateway at user premises
US7865571B2 (en) 2007-01-08 2011-01-04 Mspot, Inc. Method and apparatus for transferring digital content from a personal computer to a mobile handset
US7937451B2 (en) 2007-01-08 2011-05-03 Mspot, Inc. Method and apparatus for transferring digital content from a computer to a mobile handset
EP1944944A1 (en) 2007-01-12 2008-07-16 Thomson Licensing System and method for combining pull and push modes
US7930270B2 (en) 2007-02-26 2011-04-19 Microsoft Corporation Managing files on multiple computing devices
US8312046B1 (en) 2007-02-28 2012-11-13 Netapp, Inc. System and method for enabling a data container to appear in a plurality of locations in a super-namespace
US7933296B2 (en) 2007-03-02 2011-04-26 Microsoft Corporation Services for data sharing and synchronization
US7937686B2 (en) 2007-04-17 2011-05-03 Microsoft Corporation Name-based identifiers of model elements
US7900203B2 (en) 2007-04-24 2011-03-01 Microsoft Corporation Data sharing and synchronization with relay endpoint and sync data element
WO2008147973A2 (en) 2007-05-25 2008-12-04 Attune Systems, Inc. Remote file virtualization in a switched file system
CN101715650B (zh) 2007-06-28 2012-03-21 纽约市哥伦比亚大学信托人 机顶盒对等端辅助的视频点播
US8180720B1 (en) 2007-07-19 2012-05-15 Akamai Technologies, Inc. Content delivery network (CDN) cold content handling
US8073922B2 (en) 2007-07-27 2011-12-06 Twinstrata, Inc System and method for remote asynchronous data replication
CN101409706B (zh) 2007-10-09 2011-11-23 华为技术有限公司 一种边缘网络中的数据分发方法、数据分发系统及相关设备
US20090313353A1 (en) 2007-10-15 2009-12-17 University Of Southern California Copyrighted content delivery over p2p file-sharing networks
JP5000457B2 (ja) 2007-10-31 2012-08-15 株式会社日立製作所 ファイル共有システム及びファイル共有方法
FR2924244B1 (fr) 2007-11-22 2010-04-23 Canon Kk Procede et dispositif d'encodage et de decodage d'information
US20090192845A1 (en) 2008-01-30 2009-07-30 Microsoft Corporation Integrated real time collaboration experiences with online workspace
US8301618B2 (en) 2008-02-26 2012-10-30 Microsoft Corporation Techniques to consume content and metadata
US9824333B2 (en) 2008-02-29 2017-11-21 Microsoft Technology Licensing, Llc Collaborative management of activities occurring during the lifecycle of a meeting
US8019900B1 (en) 2008-03-25 2011-09-13 SugarSync, Inc. Opportunistic peer-to-peer synchronization in a synchronization system
US8606996B2 (en) 2008-03-31 2013-12-10 Amazon Technologies, Inc. Cache optimization
WO2009132261A1 (en) 2008-04-25 2009-10-29 Vmware, Inc. Updating a file using differences and file format therefor
US8296398B2 (en) 2008-04-29 2012-10-23 Overland Storage, Inc. Peer-to-peer redundant file server system and methods
US8185601B2 (en) 2008-05-11 2012-05-22 Nokia Corporation Sharing information between devices
US8195608B2 (en) 2008-06-02 2012-06-05 International Business Machines Corporation File synchronization between multiple nodes
US8341532B2 (en) 2008-06-10 2012-12-25 Microsoft Corporation Automated set-up of a collaborative workspace
US20090327405A1 (en) 2008-06-27 2009-12-31 Microsoft Corporation Enhanced Client And Server Systems for Operating Collaboratively Within Shared Workspaces
US9727628B2 (en) 2008-08-11 2017-08-08 Innography, Inc. System and method of applying globally unique identifiers to relate distributed data sources
JP2010074604A (ja) 2008-09-19 2010-04-02 Nec Corp データアクセスシステム、データアクセス方法およびデータアクセス用プログラム
US8214747B1 (en) 2008-10-10 2012-07-03 Adobe Systems Incorporated Role based state and dynamic feature enablement for collaborative and non-collaborative workspaces and imbeded applications
US8140473B2 (en) 2008-11-07 2012-03-20 International Business Machines Corporation Real-time file synchronization
US9614924B2 (en) 2008-12-22 2017-04-04 Ctera Networks Ltd. Storage device and method thereof for integrating network attached storage with cloud storage services
US9239767B2 (en) 2008-12-22 2016-01-19 Rpx Clearinghouse Llc Selective database replication
US8296338B2 (en) 2009-05-05 2012-10-23 Entangled Media Corp. Method for a cloud-based meta-file system to virtually unify remote and local files across a range of devices' local file systems
US20100293147A1 (en) 2009-05-12 2010-11-18 Harvey Snow System and method for providing automated electronic information backup, storage and recovery
CN101582920B (zh) 2009-06-09 2012-09-05 中兴通讯股份有限公司 一种分布式文件系统中校验和同步数据块的方法及装置
US8285681B2 (en) 2009-06-30 2012-10-09 Commvault Systems, Inc. Data object store and server for a cloud storage environment, including data deduplication and data management across multiple cloud storage sites
US8825597B1 (en) 2009-08-13 2014-09-02 Dropbox, Inc. Network folder synchronization
JP5061166B2 (ja) 2009-09-04 2012-10-31 Kii株式会社 データ同期システムおよびデータ同期方法
US8301874B1 (en) 2009-10-20 2012-10-30 Wanova Technologies, Ltd. Atomic switching of images in desktop streaming over wide area networks
US9684785B2 (en) 2009-12-17 2017-06-20 Red Hat, Inc. Providing multiple isolated execution environments for securely accessing untrusted content
US8503984B2 (en) 2009-12-23 2013-08-06 Amos Winbush, III Mobile communication device user content synchronization with central web-based records and information sharing system
US8527549B2 (en) 2010-02-22 2013-09-03 Sookasa Inc. Cloud based operating and virtual file system
US8458299B2 (en) 2010-03-17 2013-06-04 Hitachi, Ltd. Metadata management method for NAS global namespace design
WO2011117461A1 (en) 2010-03-23 2011-09-29 Nokia Corporation Method and apparatus for managing files in an online account
US9043484B2 (en) 2010-04-02 2015-05-26 Disney Enterprises, Inc. Streaming playback and dynamic ad insertion
US9170892B2 (en) 2010-04-19 2015-10-27 Microsoft Technology Licensing, Llc Server failure recovery
US9852150B2 (en) 2010-05-03 2017-12-26 Panzura, Inc. Avoiding client timeouts in a distributed filesystem
US8650159B1 (en) 2010-08-26 2014-02-11 Symantec Corporation Systems and methods for managing data in cloud storage using deduplication techniques
JP5328739B2 (ja) 2010-09-30 2013-10-30 ヤフー株式会社 アイコン表示プログラム、方法及びシステム
JP5289407B2 (ja) 2010-09-30 2013-09-11 ヤフー株式会社 ファイル同期システム、方法及びプログラム
CN102567042B (zh) 2010-12-14 2015-04-15 国际商业机器公司 利用引导块重定位来管理多个软件镜像的方法和系统
US20120179874A1 (en) 2011-01-07 2012-07-12 International Business Machines Corporation Scalable cloud storage architecture
US8924354B2 (en) 2011-02-01 2014-12-30 Ca, Inc. Block level data replication
US8880538B1 (en) 2011-02-08 2014-11-04 Google Inc. Electronic document encoding
TWI424322B (zh) 2011-02-08 2014-01-21 Kinghood Technology Co Ltd 提供大量資料流存取的資料流管理系統
US9639540B2 (en) 2011-02-25 2017-05-02 Hewlett Packard Enterprise Development Lp Retention management in a worm storage system
US9721033B2 (en) 2011-02-28 2017-08-01 Micro Focus Software Inc. Social networking content management
JP2012182292A (ja) 2011-03-01 2012-09-20 Mitsubishi Paper Mills Ltd 樹脂開口方法
US9213709B2 (en) 2012-08-08 2015-12-15 Amazon Technologies, Inc. Archival data identification
US9563681B1 (en) 2012-08-08 2017-02-07 Amazon Technologies, Inc. Archival data flow management
US9201742B2 (en) 2011-04-26 2015-12-01 Brian J. Bulkowski Method and system of self-managing nodes of a distributed database cluster with a consensus algorithm
US9021471B2 (en) 2011-05-03 2015-04-28 International Business Machines Corporation Managing change-set delivery
US9357004B2 (en) 2011-05-13 2016-05-31 Simplivity Corp. Reference count propagation
EP2710510A4 (en) 2011-05-14 2015-05-06 Bitcasa Inc CLOUD FILE SYSTEM WITH SERVER DEPLOYMENT OF USER UNKNOWN ENCRYPTED FILES
US9037797B2 (en) 2011-05-24 2015-05-19 International Business Machines Corporation Intelligent caching
US9652741B2 (en) 2011-07-08 2017-05-16 Box, Inc. Desktop application for access and interaction with workspaces in a cloud-based content management system and synchronization mechanisms thereof
GB2503625A (en) 2011-07-08 2014-01-01 Box Inc Collaboration sessions in a workspace on cloud-based content management system
US8959607B2 (en) 2011-08-03 2015-02-17 Cisco Technology, Inc. Group key management and authentication schemes for mesh networks
US8533231B2 (en) 2011-08-12 2013-09-10 Nexenta Systems, Inc. Cloud storage system with distributed metadata
US9710535B2 (en) 2011-08-12 2017-07-18 Nexenta Systems, Inc. Object storage system with local transaction logs, a distributed namespace, and optimized support for user directories
US8301597B1 (en) 2011-09-16 2012-10-30 Ca, Inc. System and method for network file system server replication using reverse path lookup
US9552367B2 (en) 2011-09-16 2017-01-24 Ca, Inc. System and method for network file system server replication using reverse path lookup
US9521214B2 (en) 2011-09-20 2016-12-13 Instart Logic, Inc. Application acceleration with partial file caching
US9197718B2 (en) 2011-09-23 2015-11-24 Box, Inc. Central management and control of user-contributed content in a web-based collaboration environment and management console thereof
US8949208B1 (en) 2011-09-30 2015-02-03 Emc Corporation System and method for bulk data movement between storage tiers
KR20140073588A (ko) 2011-10-13 2014-06-16 인터디지탈 패튼 홀딩스, 인크 콘텐츠 배달 네트워크들 간의 인터페이싱을 제공하는 방법 및 장치
GB2500152A (en) 2011-11-29 2013-09-11 Box Inc Mobile platform file and folder selection functionalities for offline access and synchronization
US20130135608A1 (en) 2011-11-30 2013-05-30 Reflectronics, Inc. Apparatus and method for improved processing of food products
US8813172B2 (en) 2011-12-16 2014-08-19 Microsoft Corporation Protection of data in a mixed use device
US9164997B2 (en) 2012-01-19 2015-10-20 Microsoft Technology Licensing, Llc Recognizing cloud content
US11232481B2 (en) 2012-01-30 2022-01-25 Box, Inc. Extended applications of multimedia content previews in the cloud-based content management system
US9307009B2 (en) 2012-02-15 2016-04-05 Mobilespan Inc. Presenting execution of a remote application in a mobile device native format
US20130218837A1 (en) 2012-02-16 2013-08-22 Verizon Patent And Licensing Inc. Cloud data synchronization with local data
KR102039028B1 (ko) 2012-02-24 2019-10-31 삼성전자 주식회사 휴대단말기의 데이터 공유 장치 및 방법
JP2013182292A (ja) 2012-02-29 2013-09-12 Keepdata Ltd クラウドシステム
US20140208220A1 (en) 2012-03-01 2014-07-24 Aditya Watal System and Method for Contextual and Collaborative Knowledge Generation and Management Through an Integrated Online-Offline Workspace
US9355120B1 (en) 2012-03-02 2016-05-31 Netapp, Inc. Systems and methods for managing files in a content storage system
US9043567B1 (en) 2012-03-28 2015-05-26 Netapp, Inc. Methods and systems for replicating an expandable storage volume
US8874799B1 (en) 2012-03-31 2014-10-28 Emc Corporation System and method for improving cache performance
US20130268480A1 (en) 2012-04-05 2013-10-10 Box, Inc. Method and apparatus for selective subfolder synchronization in a cloud-based environment
US9575981B2 (en) 2012-04-11 2017-02-21 Box, Inc. Cloud service enabled to handle a set of files depicted to a user as a single file in a native operating system
US9307006B2 (en) 2012-04-11 2016-04-05 Salesforce.Com, Inc. System and method for synchronizing data objects in a cloud based social networking environment
US8949179B2 (en) 2012-04-23 2015-02-03 Google, Inc. Sharing and synchronizing electronically stored files
US9594686B2 (en) 2012-05-05 2017-03-14 Google Inc. File handling within a cloud-based file system
US9479548B2 (en) 2012-05-23 2016-10-25 Haworth, Inc. Collaboration system with whiteboard access to global collaboration data
US9218353B2 (en) 2012-05-25 2015-12-22 Netapp, Inc. Method and system for name space propagation and file caching to remote nodes in a storage system
KR101694288B1 (ko) 2012-06-08 2017-01-09 한국전자통신연구원 비대칭형 클러스터 파일 시스템의 데이터 관리 방법
US9575978B2 (en) 2012-06-26 2017-02-21 International Business Machines Corporation Restoring objects in a client-server environment
CN103533006B (zh) 2012-07-06 2019-09-24 中兴通讯股份有限公司 一种联合云盘客户端、服务器、系统和联合云盘服务方法
US9037856B2 (en) 2012-07-18 2015-05-19 Nexenta Systems, Inc. System and method for distributed deduplication of encrypted chunks
US9547774B2 (en) 2012-07-18 2017-01-17 Nexenta Systems, Inc. System and method for distributed deduplication of encrypted chunks
US8805793B2 (en) 2012-08-08 2014-08-12 Amazon Technologies, Inc. Data storage integrity validation
US8959067B1 (en) 2012-08-08 2015-02-17 Amazon Technologies, Inc. Data storage inventory indexing
CN103577503A (zh) 2012-08-10 2014-02-12 鸿富锦精密工业(深圳)有限公司 云端文件存储系统及方法
US8984582B2 (en) 2012-08-14 2015-03-17 Confidela Ltd. System and method for secure synchronization of data across multiple computing devices
JP2014038569A (ja) 2012-08-20 2014-02-27 Hitachi Maxell Ltd ディスク記録内容バックアップシステムおよびディスク記録内容バックアップ方法
US9087191B2 (en) 2012-08-24 2015-07-21 Vmware, Inc. Method and system for facilitating isolated workspace for applications
US9075954B2 (en) 2012-08-29 2015-07-07 Dropbox, Inc. Requesting modification rights to a linked file set
US20140074783A1 (en) 2012-09-09 2014-03-13 Apple Inc. Synchronizing metadata across devices
US20140074663A1 (en) 2012-09-09 2014-03-13 Apple Inc. Integrating purchase history and metadata across devices
US9106721B2 (en) 2012-10-02 2015-08-11 Nextbit Systems Application state synchronization across multiple devices
US20140101310A1 (en) 2012-10-04 2014-04-10 Box, Inc. Seamless access, editing, and creation of files in a web interface or mobile interface to a collaborative cloud platform
CN103181143B (zh) 2012-10-22 2015-07-08 华为终端有限公司 一种播放流媒体文件的方法和装置
US8819587B1 (en) 2012-10-30 2014-08-26 Google Inc. Methods of managing items in a shared workspace
US9400800B2 (en) 2012-11-19 2016-07-26 Palo Alto Research Center Incorporated Data transport by named content synchronization
US9037556B2 (en) 2012-12-03 2015-05-19 Vmware, Inc. Distributed, transactional key-value store
US20140172783A1 (en) 2012-12-17 2014-06-19 Prowess Consulting, Llc System and method for providing computing environment delivery service with offline operations
US9143568B2 (en) 2012-12-18 2015-09-22 Microsoft Technology Licensing, Llc. Peer-to-peer sharing of cloud-based content
US9298391B2 (en) 2012-12-19 2016-03-29 Dropbox, Inc. Application programming interfaces for data synchronization with online storage systems
US9253075B2 (en) 2012-12-19 2016-02-02 Palo Alto Research Center Incorporated Dynamic routing protocols using database synchronization
US10198140B2 (en) 2012-12-20 2019-02-05 Dropbox, Inc. Systems and methods for facilitating communication between users of a content management service
US9678978B2 (en) 2012-12-31 2017-06-13 Carbonite, Inc. Systems and methods for automatic synchronization of recently modified data
US9614907B2 (en) 2013-01-04 2017-04-04 Bittorrent, Inc. Expediting content retrieval using peer-to-peer networks
US9294485B2 (en) 2013-01-27 2016-03-22 Dropbox, Inc. Controlling access to shared content in an online content management system
US20150046557A1 (en) 2013-02-10 2015-02-12 Einar Rosenberg System, method and apparatus for using a virtual bucket to transfer electronic data
US9310981B2 (en) 2013-02-13 2016-04-12 Dropbox, Inc. Seamless editing and saving of online content items using applications
CN104009926B (zh) 2013-02-26 2017-04-12 杭州华三通信技术有限公司 Evi网络中的组播方法及边缘设备ed
US9020893B2 (en) 2013-03-01 2015-04-28 Datadirect Networks, Inc. Asynchronous namespace maintenance
US9794760B2 (en) 2013-03-14 2017-10-17 Cisco Technology, Inc. Collaborative group and content management utilizing user activated collaboration threads
US10341275B2 (en) 2013-04-03 2019-07-02 Dropbox, Inc. Shared content item commenting
US20140304384A1 (en) 2013-04-04 2014-10-09 Dropbox, Inc. Uploading large content items
KR101451194B1 (ko) 2013-04-11 2014-10-16 (주)씨디네트웍스 콘텐츠 전송 네트워크에서의 거리 계산 방법 및 장치
US9166866B2 (en) 2013-04-30 2015-10-20 Microsoft Technology Licensing, Llc Hydration and dehydration with placeholders
US9218350B2 (en) 2013-04-30 2015-12-22 Microsoft Technology Licensing, Llc Searching and placeholders
US9405767B2 (en) 2013-05-01 2016-08-02 Microsoft Technology Licensing, Llc Streaming content and placeholders
US9189533B2 (en) 2013-05-29 2015-11-17 Microsoft Technology Licensing, Llc Sync framework extensibility
US20140359465A1 (en) 2013-05-31 2014-12-04 Nubo Software Ltd. Method and Apparatus for Annotated Electronic File Sharing
US20140365432A1 (en) 2013-06-10 2014-12-11 Dropbox, Inc. Dropsite for shared content
US10110656B2 (en) 2013-06-25 2018-10-23 Box, Inc. Systems and methods for providing shell communication in a cloud-based platform
US20150006475A1 (en) 2013-06-26 2015-01-01 Katherine H. Guo Data deduplication in a file system
US20150006146A1 (en) 2013-06-28 2015-01-01 Google Inc. Omega names: name generation and derivation
US20150019432A1 (en) 2013-07-12 2015-01-15 Qualcomm Incorporated Mobile payments using proximity-based peer-to-peer communication and an intent-to-pay gesture
US9282169B1 (en) 2013-07-12 2016-03-08 Oxygen Cloud, Inc. Real-time user interaction-based alterations to the scope of data synchronization between client and remote devices
US11422907B2 (en) 2013-08-19 2022-08-23 Microsoft Technology Licensing, Llc Disconnected operation for systems utilizing cloud storage
US8892679B1 (en) 2013-09-13 2014-11-18 Box, Inc. Mobile device, methods and user interfaces thereof in a mobile device platform featuring multifunctional access and engagement in a collaborative environment provided by a cloud-based platform
JP6183092B2 (ja) 2013-09-19 2017-08-23 セイコーエプソン株式会社 画像記録装置
US9098413B2 (en) 2013-10-18 2015-08-04 International Business Machines Corporation Read and write requests to partially cached files
US9692840B2 (en) 2013-11-11 2017-06-27 Dropbox, Inc. Systems and methods for monitoring and applying statistical data related to shareable links associated with content items stored in an online content management service
US20150142742A1 (en) 2013-11-17 2015-05-21 Zhen-Chao HONG System and method for syncing local directories that enable file access across multiple devices
US9544373B2 (en) 2013-12-24 2017-01-10 Dropbox, Inc. Systems and methods for maintaining local virtual states pending server-side storage across multiple devices and users and intermittent network connections
US9778817B2 (en) 2013-12-31 2017-10-03 Findo, Inc. Tagging of images based on social network tags or comments
US9509747B2 (en) 2014-01-23 2016-11-29 Dropbox, Inc. Content item synchronization by block
US9641488B2 (en) 2014-02-28 2017-05-02 Dropbox, Inc. Advanced security protocol for broadcasting and synchronizing shared folders over local area network
US9547706B2 (en) 2014-03-10 2017-01-17 Dropbox, Inc. Using colocation hints to facilitate accessing a distributed data storage system
ES2881606T3 (es) 2014-03-31 2021-11-30 Wandisco Inc Sistema de ficheros geográficamente distribuido que usa replicación de espacio de nombres coordinada
US9294558B1 (en) 2014-03-31 2016-03-22 Amazon Technologies, Inc. Connection re-balancing in distributed storage systems
US10075521B2 (en) 2014-04-07 2018-09-11 Cisco Technology, Inc. Collection synchronization using equality matched network names
US9473576B2 (en) 2014-04-07 2016-10-18 Palo Alto Research Center Incorporated Service discovery using collection synchronization with exact names
US9680891B2 (en) 2014-04-18 2017-06-13 You42 Radio, Inc. System, method and network device for streaming data from a network
US10831380B2 (en) 2014-05-28 2020-11-10 Hitachi Vantara Llc System and method of collision management in a namespace of a storage system
US10387451B2 (en) 2014-05-30 2019-08-20 Apple Inc. Synchronization system for multiple client devices
US10387449B2 (en) 2014-05-30 2019-08-20 Hitachi Vantara Corporation Metadata favored replication in active topologies
US10198452B2 (en) 2014-05-30 2019-02-05 Apple Inc. Document tracking for safe save operations
US10523723B2 (en) 2014-06-06 2019-12-31 Koninklijke Kpn N.V. Method, system and various components of such a system for selecting a chunk identifier
US9729616B2 (en) 2014-07-18 2017-08-08 Cisco Technology, Inc. Reputation-based strategy for forwarding and responding to interests over a content centric network
US9729662B2 (en) 2014-08-11 2017-08-08 Cisco Technology, Inc. Probabilistic lazy-forwarding technique without validation in a content centric network
US9503402B2 (en) 2014-08-18 2016-11-22 Dropbox, Inc. Managing drafts of electronic documents across client devices
US9984110B2 (en) 2014-08-21 2018-05-29 Dropbox, Inc. Multi-user search system with methodology for personalized search query autocomplete
US10565293B2 (en) 2014-08-26 2020-02-18 Adobe Inc. Synchronizing DOM element references
US9753955B2 (en) 2014-09-16 2017-09-05 Commvault Systems, Inc. Fast deduplication data verification
US10296163B2 (en) 2014-09-25 2019-05-21 Oracle International Corporation Electronic presentation repository and interface
US9727470B1 (en) 2014-09-30 2017-08-08 EMC IP Holding Company LLC Using a local cache to store, access and modify files tiered to cloud storage
US9854384B2 (en) * 2014-10-31 2017-12-26 Dropbox, Inc. Proximity based content sharing
US9286102B1 (en) 2014-11-05 2016-03-15 Vmware, Inc. Desktop image management for hosted hypervisor environments
US9866650B2 (en) 2014-12-03 2018-01-09 Verizon Digital Media Services Inc. Stream monitoring across a distributed platform
US10116732B1 (en) 2014-12-08 2018-10-30 Amazon Technologies, Inc. Automated management of resource attributes across network-based services
US10387794B2 (en) 2015-01-22 2019-08-20 Preferred Networks, Inc. Machine learning with model filtering and model mixing for edge devices in a heterogeneous environment
US9361349B1 (en) 2015-01-30 2016-06-07 Dropbox, Inc. Storage constrained synchronization of shared content items
US9183303B1 (en) 2015-01-30 2015-11-10 Dropbox, Inc. Personal content item searching system and method
US9185164B1 (en) 2015-01-30 2015-11-10 Dropbox, Inc. Idle state triggered constrained synchronization of shared content items
US10831715B2 (en) 2015-01-30 2020-11-10 Dropbox, Inc. Selective downloading of shared content items in a constrained synchronization system
US9413824B1 (en) 2015-01-30 2016-08-09 Dropbox, Inc. Storage constrained synchronization of content items based on predicted user access to shared content items using retention scoring
US9384226B1 (en) 2015-01-30 2016-07-05 Dropbox, Inc. Personal content item searching system and method
US9922201B2 (en) 2015-04-01 2018-03-20 Dropbox, Inc. Nested namespaces for selective content sharing
US9852147B2 (en) 2015-04-01 2017-12-26 Dropbox, Inc. Selective synchronization and distributed content item block caching for multi-premises hosting of digital content items
US11144510B2 (en) 2015-06-11 2021-10-12 Egnyte, Inc. System and method for synchronizing file systems with large namespaces
US10803020B1 (en) 2015-06-30 2020-10-13 EMC IP Holding Company LLC Data deduplication on a distributed file system
US10235097B2 (en) * 2015-07-21 2019-03-19 Samsung Electronics Co., Ltd. Area and performance optimized namespace sharing method in virtualized PCIE based SSD controller
US10691718B2 (en) 2015-10-29 2020-06-23 Dropbox, Inc. Synchronization protocol for multi-premises hosting of digital content items
US9571573B1 (en) 2015-10-29 2017-02-14 Dropbox, Inc. Peer-to-peer synchronization protocol for multi-premises hosting of digital content items
US9479578B1 (en) 2015-12-31 2016-10-25 Dropbox, Inc. Randomized peer-to-peer synchronization of shared content items
US20170208125A1 (en) 2016-01-19 2017-07-20 Hope Bay Technologies, Inc Method and apparatus for data prefetch in cloud based storage system
US9537952B1 (en) 2016-01-29 2017-01-03 Dropbox, Inc. Apparent cloud access for hosted content items
US10866963B2 (en) 2017-12-28 2020-12-15 Dropbox, Inc. File system authentication

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003030026A (ja) * 2001-07-19 2003-01-31 Dainippon Printing Co Ltd データ管理装置
JP2008305221A (ja) * 2007-06-08 2008-12-18 Fujitsu Ltd アクセス権設定装置、アクセス権設定方法、及びアクセス権設定プログラム
US20150058932A1 (en) * 2007-10-11 2015-02-26 Varonis Systems Inc. Visualization of access permission status
JP2012093911A (ja) * 2010-10-26 2012-05-17 Canon Inc データ移行システム、データ移行方法、プログラム

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2021535475A (ja) * 2018-08-22 2021-12-16 京東方科技集團股▲ふん▼有限公司Boe Technology Group Co., Ltd. アクセスコントロールポリシーの配置方法、装置、システム及び記憶媒体
US11902279B2 (en) 2018-08-22 2024-02-13 Boe Technology Group Co., Ltd. Method, apparatus, system and storage medium for access control policy configuration
JP7433294B2 (ja) 2018-08-22 2024-02-19 京東方科技集團股▲ふん▼有限公司 アクセスコントロールポリシーの配置方法、装置、システム及び記憶媒体

Also Published As

Publication number Publication date
US20230185946A1 (en) 2023-06-15
AU2016242857B2 (en) 2019-01-03
US11580241B2 (en) 2023-02-14
JP6522780B2 (ja) 2019-05-29
WO2016160994A1 (en) 2016-10-06
EP3278535A1 (en) 2018-02-07
US9922201B2 (en) 2018-03-20
US20180165471A1 (en) 2018-06-14
US20160292443A1 (en) 2016-10-06
US20200334373A1 (en) 2020-10-22
AU2016242857A1 (en) 2017-10-26
AU2016242857C1 (en) 2019-06-27
EP3278535B1 (en) 2020-01-29
US12118112B2 (en) 2024-10-15
US10699025B2 (en) 2020-06-30

Similar Documents

Publication Publication Date Title
US12118112B2 (en) Nested namespaces for selective content sharing
US10001913B2 (en) Shared workspaces with selective content item synchronization
JP6518002B2 (ja) デジタルコンテンツアイテムのマルチプレミスにおけるホスティングのための選択的な同期及び分散化コンテンツアイテムブロックのキャッシュ
US11372990B2 (en) Restricting access to content
US9294485B2 (en) Controlling access to shared content in an online content management system
JP6276388B2 (ja) 共有コンテンツのアクセス許可
US11023424B2 (en) Migrating content items
US10963430B2 (en) Shared workspaces with selective content item synchronization
JP7407275B2 (ja) 同期のためのローカルデバイスフォルダのコンテンツ管理システムへのバインディング
US20230274027A1 (en) System and method for external users in groups of a multitenant system
Shi et al. An Approach of Extending Net Disks’ Collaborative Document Editing Functionality

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20181102

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20181031

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20190204

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20190408

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20190424

R150 Certificate of patent or registration of utility model

Ref document number: 6522780

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250