JP2016537746A - Distributed data system with document management and access control - Google Patents

Distributed data system with document management and access control Download PDF

Info

Publication number
JP2016537746A
JP2016537746A JP2016542852A JP2016542852A JP2016537746A JP 2016537746 A JP2016537746 A JP 2016537746A JP 2016542852 A JP2016542852 A JP 2016542852A JP 2016542852 A JP2016542852 A JP 2016542852A JP 2016537746 A JP2016537746 A JP 2016537746A
Authority
JP
Japan
Prior art keywords
content
agent
file
platform
task
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.)
Pending
Application number
JP2016542852A
Other languages
Japanese (ja)
Other versions
JP2016537746A5 (en
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
Application filed by ユニコム・システムズ,インコーポレーテッド filed Critical ユニコム・システムズ,インコーポレーテッド
Publication of JP2016537746A publication Critical patent/JP2016537746A/en
Publication of JP2016537746A5 publication Critical patent/JP2016537746A5/ja
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • 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/182Distributed file systems
    • G06F16/1834Distributed file systems implemented based on peer-to-peer networks, e.g. gnutella
    • 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/14Details of searching files based on file metadata
    • 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/17Details of further file system functions
    • G06F16/178Techniques for file synchronisation in 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/182Distributed file systems

Abstract

データ管理システムおよび方法は、クライアントデバイスでホストされるエージェントまたはフォルダのシステムに接続されたクラウドベースのプラットフォームを含む。プラットフォームは実データを保存せず、代わりに、エージェントが供給するメタデータを、システム内の全テータの位置を追跡したり、分散されたストレージ、エージェント間での実データの移動および処理を管理したりするために利用する。その際、プラットフォームは、ネットワーク接続されたストレージをエージェントでローカルストレージを用いる「仮想クラスタ」にプールする。ここで詳細に説明するように、エージェントは集合的にデータを監視し、保存し、また転送あるいは移動し、プラットフォームに命令されるようにデータ処理動作を実行する。エージェントは、プロセッサベースのデバイスでホストされるか、プロセッサベースのデバイスに接続されるエージェント、ローカルエリアネットワークのデバイスでホストされるエージェント、ワイドエリアネットワークのデバイスでホストされるエージェント、モバイルデバイスでホストされるエージェント、およびクラウドベースのデバイスでホストされるエージェントを含む。The data management system and method includes a cloud-based platform connected to an agent or folder system hosted on a client device. The platform does not store the actual data; instead, the metadata supplied by the agent tracks the location of all the data in the system, manages the distributed storage, and the movement and processing of the actual data between agents. To use. At that time, the platform pools the network-connected storage in a “virtual cluster” that uses local storage at the agent. As described in detail herein, the agent collectively monitors, stores, transfers, or moves data, and performs data processing operations as directed by the platform. Agents are hosted on or connected to processor-based devices, agents hosted on local area network devices, agents hosted on wide area network devices, and hosted on mobile devices. And agents hosted on cloud-based devices.

Description

関連出願
本願は2013年9月13日出願の米国(US)特許出願第61/877,585号の優先権主張出願である。
RELATED APPLICATION This application is a priority application of US Patent Application No. 61 / 877,585, filed September 13, 2013.

本願は2013年1月10日出願の米国特許出願第13/738,796号部分継続出願である。   This application is a continuation-in-part of US Patent Application No. 13 / 738,796, filed January 10, 2013.

ここに記述する実施形態はデータ処理に関し、より具体的には分散記憶および処理に関する。   The embodiments described herein relate to data processing, and more specifically to distributed storage and processing.

クラウドベースのサービスは急速に拡大しており、顧客もまた、生産性の増強、サポートコストの低減、および先行投資の削減のため、クラウドベースのサービスを含むようにローカルな顧客宅内機器(CPE)ソリューションを拡張している。CPEとクラウドソリューションの両方を組み合わせたハイブリッドソリューションは、ローカル/クラウドアプローチが既存の投資の効果を最大限に利用し、かつクラウドへの完全な移行よりもリスクが低いことから、急速に採用されている。従前のクラウドサービスはパーソナル同期および共有サービス、オンラインバックアップ、および大容量ファイル転送サービスを含んでいる。これら従前のクラウドサービスはオンラインストレージの提供に注力してきたが、接続されるコンピュータ、デバイスおよびウエブサイトの数は常に増加しており、その結果、これらサービスのユーザは、複数のデバイスにわたって、あるいはウェブを通じて、自身の最新ファイルについて同期させたりアクセスしたりすることの難しさを体験し続けていた。さらに、企業ユーザは自身の業務データを守るために比較的高レベルのセキュリティを必要とし、ストレージおよびサービスをクラウドへ移行することに関する問題として、注目を浴びるセキュリティ違反およびクラウドストレージ提供者の長期継続性が加わっている。従って、複数のデバイスにまたがったファイルの同期ならびにアクセスのための効率化された手法を有し、かつローカルデータストレージおよびピアツーピア転送、さらには比較的高レベルなセキュリティに注力したクラウドサービスへの必要性が存在する。   Cloud-based services are expanding rapidly, and customers also have local customer premises equipment (CPE) to include cloud-based services to increase productivity, reduce support costs, and reduce upfront investments. Extending the solution. Hybrid solutions combining both CPE and cloud solutions are rapidly adopted because the local / cloud approach takes full advantage of existing investments and is less risky than a full migration to the cloud. Yes. Traditional cloud services include personal synchronization and sharing services, online backup, and large file transfer services. While these traditional cloud services have focused on providing online storage, the number of connected computers, devices and websites is constantly increasing, so that users of these services can spread across multiple devices or across the web Through this, I continued to experience the difficulty of synchronizing and accessing my latest files. In addition, enterprise users require a relatively high level of security to protect their business data, and security breaches and cloud storage providers' long-term continuity that are notable as issues related to moving storage and services to the cloud. Is added. Therefore, there is a need for a cloud service that has an efficient approach for file synchronization and access across multiple devices, and that focuses on local data storage and peer-to-peer transfers, as well as a relatively high level of security. Exists.

参照による組み込み
本明細書で言及される特許、特許出願、および/または公開特許は、その個別の特許、特許出願、および/または公開特許が具体的かつ個別に、参照によって組み込まれることが示されているのと同様の範囲でその全体が本明細書に組み込まれる。
INCORPORATION BY REFERENCE Patents, patent applications, and / or published patents referred to herein are shown to express their individual patents, patent applications, and / or published patents, specifically and individually, incorporated by reference. In its entirety to the same extent as described herein.

図1は実施形態に係る、プラットフォームおよびエージェントを含むシステムのブロック図である。FIG. 1 is a block diagram of a system including a platform and an agent according to the embodiment. 図2は実施形態に係る、独立エージェントのグループおよびネットワークエージェントのグループに接続されたプラットフォームを含むシステムのブロック図である。FIG. 2 is a block diagram of a system including a platform connected to a group of independent agents and a group of network agents, according to an embodiment. 図3は実施形態に係る、プラットフォームおよび、組織に含まれる多数のエージェントを含むシステムのブロック図である。FIG. 3 is a block diagram of a system including a platform and a number of agents included in an organization according to an embodiment. 図4Aは実施形態に係る、プラットフォームおよびエージェントを含んだ例示的なシステムのブロック図である。FIG. 4A is a block diagram of an exemplary system including a platform and agents, according to an embodiment. 図4Bは実施形態に係る、プラットフォームおよびエージェントを含んだ例示的なシステムの別のブロック図である。FIG. 4B is another block diagram of an exemplary system including a platform and agents, according to an embodiment. 図5は実施形態に係る、プラットフォームとエージェントとのファイル同期を伴う例のブロック図である。FIG. 5 is a block diagram of an example involving file synchronization between the platform and the agent according to the embodiment. 図6は実施形態に係る、エージェント、プラットフォーム、およびデータベースを含む例示的なフロー図である。FIG. 6 is an exemplary flow diagram including agents, platforms, and databases, according to an embodiment. 図7は実施形態に係る、ライブラリをスキャンおよび同期するための同期ゴールの利用を含んだ例示的なフロー図である。FIG. 7 is an exemplary flow diagram that includes the use of a synchronization goal to scan and synchronize a library, according to an embodiment. 図8は実施形態に係る、ポリシデータベースおよびルールエンジンを含んだプラットフォームのブロック図である。FIG. 8 is a block diagram of a platform including a policy database and a rule engine according to the embodiment. 図9は実施形態に係る、別のプラットフォームコンポーネントから分離されたメタデータを示すブロック図である。FIG. 9 is a block diagram illustrating metadata separated from another platform component, according to an embodiment. 図10は実施形態に係る、プラットフォームのコネクションタイプを示す図である。FIG. 10 is a diagram illustrating platform connection types according to the embodiment. 図11は実施形態に係る、プラットフォームのP2Pコネクションタイプを示す図である。FIG. 11 is a diagram illustrating the P2P connection type of the platform according to the embodiment. 図12は実施形態に係る、管理コンソールの画面例を示す図である。FIG. 12 is a diagram illustrating a screen example of the management console according to the embodiment. 図13は実施形態に係る、ファイル同期コントロールを含む画面例を示す図である。FIG. 13 is a diagram illustrating a screen example including file synchronization control according to the embodiment. 図14は実施形態に係る、セキュリティアクティビティ監視および通知を含む画面例を示す図である。FIG. 14 is a diagram illustrating an example of a screen including security activity monitoring and notification according to the embodiment. 図15は実施形態に係る、ドキュメント監査証跡を含む画面例を示す図である。FIG. 15 is a diagram illustrating an example of a screen including a document audit trail according to the embodiment. 図16は実施形態に係る、ファイルサーチおよび分類を含んだ画面例を示す図である。FIG. 16 is a diagram showing an example of a screen including file search and classification according to the embodiment. 図17は実施形態に係る、制御されたユーザ共有を含んだ画面例を示す図である。FIG. 17 is a diagram illustrating an example of a screen including controlled user sharing according to the embodiment. 図18は実施形態に係る、リモートデバイス管理およびジオロケーションサービスを含んだ画面例を示す図である。FIG. 18 is a diagram showing an example of a screen including remote device management and geolocation service according to the embodiment. 図19は実施形態に係る、保存場所の選択を含んだ画面例を示す図である。FIG. 19 is a diagram illustrating an example of a screen including selection of a storage location according to the embodiment.

クライアントデバイスでホストされるエージェントまたはフォルダのシステムに接続されるクラウドベースのプラットフォームまたはエンジンを含む、データ管理システムおよび方法が記述される。ある実施形態のプラットフォームは実データを保存せず、代わりに、システム内の全テータの位置を追跡したり、分散されたストレージ、エージェント間での実データの移動および処理を管理したりするために、エージェントが供給するメタデータを利用する。その際、ある実施形態のシステムは、エージェントのローカルストレージを用いて、ネットワーク接続されたストレージを”仮想クラスタ”にプールする。ここで詳細に説明するように、エージェントは集合的にデータを監視し、保存し、また転送あるいは移動し、プラットフォームに命令されるようにデータ処理動作を実行する。ある実施形態のエージェントは、プロセッサベースのデバイス(例えばパーソナルコンピュータ(PC)、タブレットコンピュータ、サーバコンピュータ、ネットワーク接続ストレージ(NAS)デバイス、アップルコンピュータ、モバイルデバイス、iOSデバイス、アンドロイドデバイスなど)にホストあるいは接続されるエージェント、ローカルエリアネットワーク(LAN)のデバイスにホストされるエージェント、広域ネットワーク(WAN)のデバイスにホストされるエージェント、モバイルデバイスにホストされるエージェント、およびクラウドベースのデバイス(例えばサーバ、ストレージデバイスなど)にホストされるエージェントを含むが、これらに限定されない。   Data management systems and methods are described that include a cloud-based platform or engine connected to a system of agents or folders hosted on a client device. The platform of an embodiment does not store the actual data, but instead tracks the location of all the data in the system and manages the movement and processing of the actual data between distributed storage and agents. , Use the metadata supplied by the agent. In that case, the system of an embodiment pools network-connected storage in a “virtual cluster” using the agent's local storage. As described in detail herein, the agent collectively monitors, stores, transfers, or moves data, and performs data processing operations as directed by the platform. Agents in certain embodiments are hosted or connected to processor-based devices (eg personal computers (PCs), tablet computers, server computers, network attached storage (NAS) devices, Apple computers, mobile devices, iOS devices, Android devices, etc.) Agents hosted on local area network (LAN) devices, agents hosted on wide area network (WAN) devices, agents hosted on mobile devices, and cloud-based devices (eg, servers, storage devices) Including, but not limited to, hosted agents.

ここでの詳細な説明は例示を目的とした多くの具体的な記載を含んでいるが、本技術分野に属する当業者であれば、以下の詳細に対する多くの派生物や変更物がここで説明される実施形態の範囲に含まれることを理解するであろう。したがって、以下の例示的な実施形態の説明が、特許請求の範囲に記載された発明の汎用性を低減させたり、発明に何らかの限定を与えたりすることはない。   Although the detailed description herein includes many specific descriptions for purposes of illustration, those skilled in the art will appreciate that many derivatives and modifications to the following details are described herein. It will be understood that it is within the scope of the described embodiments. Accordingly, the following description of the exemplary embodiments does not reduce the versatility of the claimed invention or impose any limitation on the invention.

図1は実施形態に係る、プラットフォーム110およびエージェント120を含んだシステムのブロック図である。ここで詳細に説明するように、本実施形態において、プラットフォームは多くのデータベース130に接続され、および/または多くのデータベース130を含んでいる。それぞれがエージェントを含んだりホストしたりする複数のクライアントデバイス140が、ネットワーク接続によってプラットフォームおよびデータベースと接続されており、また、プラットフォームによって命令されるようにワークタスクを受信したり実行したりするためにデータベースを利用する。   FIG. 1 is a block diagram of a system including a platform 110 and an agent 120 according to an embodiment. As described in detail herein, in this embodiment, the platform is connected to and / or includes many databases 130. Multiple client devices 140, each containing or hosting an agent, are connected to the platform and database via a network connection, and to receive and execute work tasks as instructed by the platform Use a database.

図2は実施形態に係る、独立エージェントのグループと、ピアエージェントのグループとを含んだシステムのブロック図である。本実施形態のプラットフォームは、以下に詳細を説明するように、多数のデータベースに接続され、および/または多数のデータベースを含んでいる。クライアントデバイスはネットワーク接続によってプラットフォームに接続されている。クライアントデバイスの第1グループ210は複数のクライアントデバイスを含み、クライアントデバイスのそれぞれは、エージェントを含むかホストし、またネットワーク接続によってプラットフォームに別個に接続されている。クライアントデバイスの第2グループ220は複数のクライアントデバイスを含み、クライアントデバイスのそれぞれはエージェントを含み、またプラットフォームに別個に接続されるとともに、ピアネットワーク(例えばTAN、WANなど)を形成する。ピアネットワーク内ではエージェント間のピアツーピア通信230がサポートされる。   FIG. 2 is a block diagram of a system including an independent agent group and a peer agent group according to the embodiment. The platform of this embodiment is connected to and / or includes multiple databases, as will be described in detail below. The client device is connected to the platform by a network connection. The first group of client devices 210 includes a plurality of client devices, each of which includes or hosts an agent and is separately connected to the platform by a network connection. The second group of client devices 220 includes a plurality of client devices, each of which includes an agent and is separately connected to the platform and forms a peer network (eg, TAN, WAN, etc.). Peer-to-peer communication 230 between agents is supported within the peer network.

図3は実施形態に係る、プラットフォームと、組織に含まれる多数のピアエージェントとを含んだシステムのブロック図である。以下に詳細を説明するように、プラットフォームは多数のデータベースに接続され、および/または多数のデータベースを含んでいる。組織は複数のグループ(例えば、グループ1からグループM(Mは任意の数))を含み、各グループはいくらかの数のユーザ(例えばユーザ1からユーザN(Nは任意の数))を含んでいる。組織の各ユーザはいくらかのデバイス(例えばデバイス1からデバイスP(Pは任意の数)を含み、各デバイスはネットワーク接続によってプラットフォームに接続される1つのエージェントを含むかホストする。組織はまた、プラットフォームに接続され、管理者がヒエラルキーに従ってデバイスにアクセスすることを可能にする管理者コンソールを含んでいる。プラットフォームは、組織に従ってデータへのアクセスを制御するコントロールまたは規則を含み、コンソールはコントロールまたは規則へのアクセスを提供することにより、管理者が規則を設定および維持(例えば追加、削除、変更など)することを可能にする。   FIG. 3 is a block diagram of a system including a platform and multiple peer agents included in an organization according to an embodiment. As described in detail below, the platform is connected to and / or includes multiple databases. An organization includes a plurality of groups (eg, group 1 to group M (M is an arbitrary number)), and each group includes some number of users (eg, user 1 to user N (N is an arbitrary number)). Yes. Each user of the organization includes some device (eg, device 1 to device P, where P is any number), and each device includes or hosts one agent connected to the platform by a network connection. And includes an administrator console that allows an administrator to access the device according to the hierarchy, the platform includes controls or rules that control access to data according to the organization, and the console to the controls or rules Providing access to the administrator allows the administrator to set and maintain (eg, add, delete, modify, etc.) rules.

この組織の例において、エージェントは、プラットフォームから受信される命令によって管理されるとともに、その命令を実行する。各エージェントはユーザに登録されたデバイスでホストされる。各ユーザはグループのサブセットであり、各グループは組織のサブセットである。各デバイス上のエージェントは対応するデバイスに含まれる(あるいは対応するデバイスがアクセス可能な)メモリの内容にインデックスを付与し、メモリ内容のメタデータをプラットフォームに供給する。コンソールは、組織に従ってデータへのアクセスを制御する、規則に対する管理者コントロールを提供する。例えば、管理者は、組織が10MBを超えるサイズのファイルを含むことができないことを指定する規則を作ることができる。管理者は、グループ1が音楽ファイルおよびビデオファイルを含むことができないことを指定する別の規則を作ることができる。さらに別の例の規則は、グループ2が秘密とマークされたファイルを含むことができないことを指定する。   In this example organization, the agent is managed by and executes instructions received from the platform. Each agent is hosted on a device registered with the user. Each user is a subset of a group, and each group is a subset of an organization. The agent on each device indexes the contents of the memory included in the corresponding device (or accessible by the corresponding device), and supplies the memory contents metadata to the platform. The console provides administrator control over the rules that control access to data according to the organization. For example, an administrator can create a rule that specifies that an organization cannot contain files larger than 10 MB. The administrator can create another rule that specifies that group 1 cannot contain music and video files. Yet another example rule specifies that group 2 cannot contain files marked as secret.

図4Aは実施形態に係る、プラットフォームおよびエージェントを含んだ例示的なシステムのブロック図である。図4Bは実施形態に係る、プラットフォームおよびエージェントを含んだ例示的なシステムの別のブロック図である。ここでは、図4Aおよび4Bをまとめて「図4」と呼ぶ。プラットフォームは、ワークを創成または生成したり、ワークをエージェントに割り当てるために、メタデータによって取得した、各エージェントがアクセス可能なデータの知見を用いる。そしてエージェントはプラットフォームによって自身に割り当てられたワークを実行し、自身のデータおよび実行したワークの情報をプラットフォームに供給する。ある実施形態のエージェントはプラットフォームに命令されるようにワークを実行するので、アプリケーションでもなければユーザでもない。   FIG. 4A is a block diagram of an exemplary system including a platform and agents, according to an embodiment. FIG. 4B is another block diagram of an exemplary system including a platform and agents, according to an embodiment. Here, FIGS. 4A and 4B are collectively referred to as “FIG. 4”. The platform uses knowledge of data accessible by each agent acquired by metadata to create or generate a work or assign a work to an agent. Then, the agent executes the work assigned to itself by the platform, and supplies its own data and information of the executed work to the platform. In some embodiments, the agent performs work as directed by the platform, so it is neither an application nor a user.

プラットフォームは少なくとも、様々なデータベースを含むか、様々なデータベースに接続されるかする。例えばプラットフォームは、プラットフォームが利用可能な全エージェントのリストおよび各エージェントの関連情報である、エージェントデータベースを含む。エージェントデータベースに加え、プラットフォームはシステム内の全データの位置の追跡、分散ストレージの管理やエージェント間の実データの移動および処理の管理のサポートにおける情報交換においてエージェントが用いるための、他のデータベースを有する。データベースは上述したようなエージェントデータベース、ライブラリデータベース、ゴールデータベース、ワークデータベースを含むが、これらに限定されない。各エージェントは、自身のローカルディスクまたはストレージを表す1つ以上のライブラリと、対応するエージェントが利用可能なストレージのリストを含んだライブラリデータベースを有することができる。ストレージはエージェントがリードおよび/またはライトアクセスを許可されている任意のデバイス(例えば、ディスクまたはディスクドライブ、ネットワークマウントポイント、ハードドライブ、フラッシュドライブ、ストレージサービスなど)を含むが、これらに限定されない。プラットフォームおよび各エージェントはシステムのライブラリおよび、各ライブラリにアクセス可能な、システムの各対応エージェントのリストを含んだライブラリデータベースを有する。   The platform at least includes or is connected to various databases. For example, the platform includes an agent database that is a list of all agents available to the platform and associated information for each agent. In addition to the agent database, the platform has other databases for use by agents in tracking the location of all data in the system, managing distributed storage and exchanging information in support of managing real data movement and processing between agents. . Databases include, but are not limited to, the agent database, library database, goal database, and work database as described above. Each agent may have one or more libraries representing its own local disk or storage and a library database containing a list of storage available to the corresponding agent. Storage includes, but is not limited to, any device (eg, disk or disk drive, network mount point, hard drive, flash drive, storage service, etc.) that the agent is authorized for read and / or write access. The platform and each agent have a library database that includes a library of systems and a list of each corresponding agent of the system that can access each library.

ゴールデータベースは、特定のタスクが実行される(例えば同期される)ライブラリのコレクションであるゴールのリストを含む。ゴールはタスクを実行するためにエージェントが用いる。ゴールは1つ以上のライブラリに対応し、ライブラリのコンテンツにタスクまたはワークを実行するために用いられる。さらに、プラットフォームは各エージェント用にワークデータベースを生成し、対応するエージェントによって達成されるべきワークタスクをワークデータベースに登録する。ワークデータベースはエージェントに実行されるべき各タスクの記述を、ワークを実行するためにエージェントが必要とする情報とともに含んでいる。データベースについては詳細に説明する。   The goal database includes a list of goals, which is a collection of libraries in which a particular task is performed (eg, synchronized). The goal is used by the agent to execute the task. A goal corresponds to one or more libraries and is used to perform a task or work on the contents of the library. In addition, the platform creates a work database for each agent and registers the work tasks to be achieved by the corresponding agent in the work database. The work database contains a description of each task to be performed by the agent, along with information needed by the agent to perform the work. The database will be described in detail.

ある実施形態のプラットフォームは、プラットフォームと多数のエージェント間のカップリングを通じてグリッドを形成するユニバーサル同期(sync)エンジンであり、そこでプラットフォームはエージェント用のマスターコントローラとして振る舞う。プラットフォームはクラウド内の1つ以上のデータベースを含むか、データベースに接続される。データベースはエージェントから受信した情報であって、そのプラットフォームが受け持つグリッドの全データの位置および状態に関するデータ(例えばメタデータ)を含む情報を有する。エージェントは特定のデバイスまたはコンピュータにホストまたはインストールされるが、それ自身はプラットフォームおよびグリッドを形成する他のエージェントと通信したり共同して動作したりすることが可能な、独立して機能するエンティティである。なお、グリッドの構成要素はプラットフォームによって割当られた特定のタスクを達成するために協調して動作する。   The platform of an embodiment is a universal sync engine that forms a grid through coupling between the platform and multiple agents, where the platform acts as a master controller for the agent. The platform includes or is connected to one or more databases in the cloud. The database is information received from the agent, and includes information including data (for example, metadata) regarding the position and state of all data of the grid handled by the platform. An agent is an independently functioning entity that can be hosted or installed on a specific device or computer, but can itself communicate and work with other agents that form the platform and grid. is there. It should be noted that the components of the grid work in concert to accomplish specific tasks assigned by the platform.

動作中、エージェントはデバイスにホストまたはインストールされており、エージェントはプラットフォームによって割り当てられたワークまたはタスクを実行するように機能する。プラットフォームは自身が関連づけられている全エージェントのID(identitiy)および位置、および各エージェントがアクセス可能なデータを知っている。エージェントはアプリケーションではなく、プラットフォームに命令されるようにワークを実行するために、プラットフォームおよび他のエージェントの両方と暗号化されたチャネルを通じて通信する、プラットフォームのエージェントである。一般に、プラットフォームは自身が受け持つゴールを生成ならびに含んでおり、プラットフォームはゴールを達成するするためにワークまたはタスクをエージェントに割り当てたり、エージェントを管理したりする。さらに、エージェントは個々のエージェントまたは他のいかなるエージェントに割り当てられているタスクに対応する目的の知見を必要としない。   In operation, the agent is hosted or installed on the device, and the agent functions to perform work or tasks assigned by the platform. The platform knows the identity (identity) and location of all agents with which it is associated, and the data that each agent can access. An agent is not an application, but a platform agent that communicates with both the platform and other agents over an encrypted channel to perform work as directed by the platform. In general, a platform generates and includes goals that it is responsible for, and the platform assigns work or tasks to agents and manages agents to achieve the goals. Furthermore, the agent does not require knowledge of the purpose corresponding to the tasks assigned to the individual agent or any other agent.

ある実施形態のプラットフォームは実施形態のデータベースに実データを保存しないが、その代わりに自身が受け持つデータに対応するメタデータを保存する。したがって、プラットフォームがメタデータだけを保存するため、エージェントは実データが保存される分散データストレージとして機能する。プラットフォームはエージェントに保存されているデータをビットレベルで理解するためにメタデータを用い、それによってデータのファイルレベル以上の理解を提供する。メタデータは各エージェントから受信されるとともに、個々のエージェントが受け持つデータから、エージェントによって生成される。メタデータの生成において、エージェントはプラットフォームによる要求に応じてファイルをスキャンする。各ファイルに対するスキャンは、ファイルをブロブ(blob)と呼ぶ可変サイズのフラグメントに分割することにより、ファイルを形成するデータからデータのフラグメントまたはコンポーネントを生成することを含む。より詳細に説明されるように、ブロブは、予め定められた最小長と最大長の間の可変サイズを有するデータ部分を生成するデータフィンガプリンティングアルゴリズムを用いて生成される。ここで説明される実施形態がブロブをファイルのコンテンツから生成し、ブロブがファイルのコンテンツを表すため、用語「ファイル」と「ブロブ」とはここでの説明において交換可能に用いられる。   The platform of an embodiment does not store actual data in the database of the embodiment, but instead stores metadata corresponding to the data it serves. Therefore, since the platform stores only metadata, the agent functions as a distributed data storage in which actual data is stored. The platform uses metadata to understand the data stored at the agent at the bit level, thereby providing a better understanding of the data than at the file level. The metadata is received from each agent and is generated by the agent from data handled by each agent. In generating metadata, the agent scans the file as requested by the platform. Scanning for each file involves generating data fragments or components from the data forming the file by dividing the file into variable-sized fragments called blobs. As described in more detail, blobs are generated using a data fingerprinting algorithm that generates a data portion having a variable size between a predetermined minimum length and maximum length. The term “file” and “blob” are used interchangeably in the description herein because the embodiments described herein generate blobs from the contents of a file, and blobs represent the contents of a file.

ブロブを生成する際、ブロブがファイルの残りの部分から分割または分離された位置のハッシュの値と、ブロブの完全なコンテンツのハッシュと、ブロブの分割位置に基づくオフセット値と、ブロブのサイズ(例えば長さ)を含んだブロブの記述が生成されるブロブの完全なコンテンツのハッシュ(ブロブハッシュまたは「バッシュ」)は、ブロブの固有識別子として機能する。さらに、ファイルコンテンツ全体に対する固有識別子を生成するため、ファイルのコンテンツを形成するブロブの完全なリストは、コンテンツハッシュと名称ハッシュ(ファッシュ(fash))の組み合わせのハッシュとしてハッシュされている(キャッシュ(cash))。ある実施形態のハッシュはさらに、ファイル名およびファイルのパスのハッシュ(パッシュ(pash))、およびファイルメタデータ(例えばファイル名、サイズ、日付、位置など)のハッシュ(マッシュ(mash))を含む。   When generating a blob, the hash value of the location where the blob is split or separated from the rest of the file, the hash of the complete content of the blob, the offset value based on the location of the blob, and the size of the blob (e.g. The blob's complete content hash (blob hash or “bash”) from which the blob description containing the length is generated serves as a unique identifier for the blob. Furthermore, to generate a unique identifier for the entire file content, the complete list of blobs that make up the content of the file is hashed as a hash of a combination of a content hash and a name hash (fash) (cash )). The hash of an embodiment further includes a hash of the file name and file path (pash), and a hash of file metadata (eg, file name, size, date, location, etc.) (mash).

ここで詳細に説明するこれらの様々なハッシュは、各エージェントによって、各エージェントが受け持つ各データファイルについて生成され、プラットフォームに配信される。プラットフォームはこれらの様々なハッシュの情報を含めるため、各ファイルについてレコードを生成する。プラットフォームはエージェントによって報告され、それらのレコードに含まれているデータの情報または状態を、データの状態を判定したり、データの変更によって古くなったバージョンのデータを有するエージェントを判定したり、エージェント間でのファイルバージョンを一致させたりするために用いる。そして、プラットフォームは、1つ以上のファイルを最新バージョンに更新することが必要なエージェントに、ここで詳細に説明するようにワークを発行する。   These various hashes, which will be described in detail here, are generated by each agent for each data file handled by each agent and distributed to the platform. The platform generates a record for each file to include these various hash information. Platforms are reported by agents and the information or status of the data contained in those records can be used to determine the status of the data, to determine which agents have a version of data that has become outdated due to data changes, Used to match file versions in. The platform then issues work to the agent that needs to update one or more files to the latest version, as described in detail herein.

従って、メタデータを用いてプラットフォームはデータのマスターインデックスをクラウドに維持するとともに、個々のゴールに関連するデータの様々な部分の位置を判定し、データの不一致や矛盾を特定し、特定された不一致や矛盾を除去するためのワークを発行または生成するため、エージェントのマスターインデックスまたはライブラリを読むためにゴールを用いる。ある実施形態のエージェントは、匿名ではなくプラットフォームに知られ、かつプラットフォームに指揮されるほか、プラットフォームに制御され、かつプラットフォームで確立されたIDを有する他のエージェントとのみコンテンツを交換するため、ピアツーピアシステムとは対照的である。   Thus, using metadata, the platform maintains a master index of data in the cloud, determines the location of various parts of the data associated with individual goals, identifies data inconsistencies and inconsistencies, and identifies identified inconsistencies Goals are used to read the agent's master index or library to publish or generate work to eliminate or conflicts. In some embodiments, the agent is not known anonymously and is directed to the platform, and in addition to exchanging content only with other agents controlled by the platform and having an ID established on the platform, the peer-to-peer system In contrast to

プラットフォームはできるだけ少ないデータをできるだけ直接的にピア間で転送することで効率性を実現する。また、ここでの実施形態は、移動が必要なデータだけを移動し、データをそのデータの位置(例えばエージェント)で処理するために、全データの位置についてプラットフォームが集めた知見を、エージェント間の協調処理とともに用いることにより、独立して動作する際に、1つのエージェントが有するものよりも相対的に大きな帯域を提供する。そのため、ある実施形態のプラットフォームは、効率的なストレージ、配信、および世界的なデータモビリティを提供することで、データのユビキタス性を提供する。   The platform achieves efficiency by transferring as little data as possible between peers as directly as possible. In addition, in this embodiment, in order to move only the data that needs to be moved and process the data at the position of the data (for example, the agent), the knowledge gathered by the platform for the position of all the data is obtained between the agents. When used in conjunction with cooperative processing, it provides a relatively larger bandwidth than one agent has when operating independently. As such, the platform of an embodiment provides data ubiquity by providing efficient storage, distribution, and global data mobility.

システムはブロブの使用を通じてハッシュ化およびデバイス間でのブロックレベル転送を提供する。変更されたデータブロックだけをデバイス間で更新すればよいため、ブロックレベル転送はデータ変更時の効率的なファイル同期をサポートする。ブロブを形成するためにデータがハッシュされると、ブロブは移動された後に再組み立てされるため、シーケンシャルなファイル転送の必要がなく、ブロックレベル転送はさらに非順序的なファイル転送をサポートする。同様に、ブロブはそれを必要とする任意のデバイスに1つ以上の他のデバイスから同時または同時に近い転送が可能であるため、実施形態はアップロード/ダウンロード回数の削減をサポートする。さらに、ファイルがグリッド上の特定のデバイスに必要とされる場合、またそれがグリッド上の他の複数のデバイスに存在する場合、そのファイルを現在必要とする位置(例えばエージェント)に配置するため、それら複数のデバイスから異なるブロックを同時に転送することができる。   The system provides hashing and block level transfer between devices through the use of blobs. Since only changed data blocks need to be updated between devices, block level transfer supports efficient file synchronization during data changes. When the data is hashed to form a blob, the blob is reassembled after being moved, so there is no need for sequential file transfers, and block level transfers further support unordered file transfers. Similarly, embodiments support a reduction in upload / download times because a blob can transfer simultaneously or near simultaneously from one or more other devices to any device that needs it. In addition, if the file is needed for a specific device on the grid, and if it exists on other devices on the grid, to place the file at the location where it is currently needed (eg agent) Different blocks can be transferred simultaneously from these multiple devices.

プラットフォームはグリッド内のエージェントにワークを割り当て、個々のエージェントに対するタスクまたはワーク項目を生成してワーク項目をエージェントに送付することによってワークを指揮する。ワーク項目はそのワーク項目についての完了条件とともに送付されるが、実施形態はそれに限定されない。ある実施形態のエージェントは、プラットフォームによって割り当てられたタスクまたはワーク項目を実行するフレキシブルクライアントである。   The platform directs work by assigning work to agents in the grid, generating tasks or work items for individual agents, and sending work items to the agents. A work item is sent with a completion condition for the work item, but embodiments are not so limited. In one embodiment, the agent is a flexible client that performs tasks or work items assigned by the platform.

一例として、エージェントに割り当てられたワーク項目は、エージェントがアクセス可能なメモリデバイスのディレクトリまたはフォルダをスキャンまたは監視するとともに、ディレクトリまたはフォルダ内のいずれかのファイルに対する変化を継続的に報告するようにエージェントに命令する。このワーク項目はプラットフォームによって、エージェントがプラットフォームに登録されるとエージェントに対応するファイルのメタデータをまず受信するために用いられるほか、それらのファイルの内容に変更が加えられたことに応答してメタデータを継続的に更新するためにも用いられる。従って、いずれかのファイルに対する何らかの変更に応答して、スキャンタスクはエージェントにそのファイルのブロブまたはメタデータの変更をプラットフォームに報告させ、プラットフォームは報告された変更に応じて1つ以上の他のエージェントにワークを割り当てる。さらに、ある実施形態のプラットフォームは、新たな機能に関するロジックを1つ以上のエージェントに配信するために用いられる。従って、プラットフォームがエージェントに新しい機能を提供する必要がある場合、その機能を可能にするロジックをプラットフォームによって適切なエージェントに送信することができる。   As an example, a work item assigned to an agent scans or monitors a directory or folder on a memory device that the agent can access, and continuously reports changes to any file in the directory or folder. To order. This work item is used by the platform to first receive the metadata for the files corresponding to the agent when the agent registers with the platform, and in response to changes to the contents of those files. It is also used to continuously update data. Thus, in response to any change to any file, the scan task causes the agent to report the file's blob or metadata changes to the platform, which responds to one or more other agents depending on the reported change. Assign work to. Furthermore, the platform of an embodiment is used to distribute logic related to new functions to one or more agents. Thus, when a platform needs to provide a new function to an agent, the logic that enables that function can be sent by the platform to the appropriate agent.

プラットフォームによって生成され、また実行のために個々のエージェントに割り当てられる、ある実施形態のタスクまたはワーク項目はスキャン、削除、書き込み、更新を含む。エージェントは、ファイルシステムまたはディレクトリを再起的に監視し、ファイルに対する変更(例えば、ファイルの変更、ファイルへの追加、ファイルに対する削除、ファイル名の変更など)をプラットフォームに報告することにより、スキャンタスクを実行する。変更の報告には、変更されたファイルをローカルデータベースに配置することを含み、ローカルデータベースのメタデータがその後プラットフォームに供給される。   Certain embodiments of tasks or work items generated by the platform and assigned to individual agents for execution include scans, deletes, writes, and updates. The agent recursively monitors the file system or directory and reports scan tasks by reporting changes to the file (eg, file changes, additions to files, deletions to files, file name changes, etc.) to the platform. Run. The change report includes placing the changed file in the local database, and the local database metadata is then provided to the platform.

ある実施形態の書き込みタスクは、ここで詳細に説明されるようなブロブの書き込みを含むが、それに限定されない。エージェントは、1つ以上のブロブを第1の場所(例えばソースデバイス)から第2の場所(例えばディスティネーションデバイス)にコピーすることによって書き込みタスクを実行する。第1の場所および第2の場所のそれぞれは、ストレージデバイス上の位置(例えば、コンピュータのハードディスク上の第1の位置から、そのコンピュータのそのハードディスク上の第2の位置へ)、同一ドメイン内の異なるストレージデバイス上の位置、および2つ以上の異なるドメイン内のストレージデバイス上の位置(例えばエージェントのファイルシステムからクラウドベースのストレージデバイスへ、ピアツーピア通信による第1のエージェントのファイルシステムから第2のエージェントのファイルシステムへ、など)を含む。従って、エージェントのソースは、グリッド上の任意のエージェントのファイルシステムおよび、クラウドベースもしくはネットワークベースのストレージデバイスの1つであってよい。   The write task of an embodiment includes, but is not limited to, writing a blob as described in detail herein. The agent performs the write task by copying one or more blobs from a first location (eg, source device) to a second location (eg, destination device). Each of the first location and the second location is a location on the storage device (eg, from a first location on a computer hard disk to a second location on the computer hard disk), within the same domain. Location on different storage devices, and location on storage devices in two or more different domains (eg, from agent file system to cloud-based storage device, from first agent file system to second agent via peer-to-peer communication) To the file system, etc.). Thus, the source of the agent may be one of the file system of any agent on the grid and a cloud-based or network-based storage device.

上述の通り、ワーク項目はそのワーク項目の完了条件とともに送信される。書き込みワーク項目に関連づけられる完了条件は、書き込みを完了するために必要なブロブまたはコンポーネントを読み出すこと、および、そのブロブまたはコンポーネントが正しいファイルに上書きされることを含む。ブロブが正しいファイルに上書きされるという条件が満たされなければ、そのことがプラットフォームに報告される。   As described above, the work item is transmitted together with the completion condition of the work item. Completion conditions associated with a write work item include reading the blob or component required to complete the write, and that the blob or component is overwritten with the correct file. If the condition that the blob is overwritten with the correct file is not met, it is reported to the platform.

エージェントは、ブロブをエージェントからクラウドベースのストレージデバイスにコピーすることによって更新タスクを実行する。従って、新しいファイルがエージェントのファイルシステムに配置されると、エージェントはそのファイルの追加をプラットフォームに報告し、プラットフォームは、ファイルブロブをクラウドベースのストレージデバイスにコピーするためにワークをエージェントに割り当てる。それに応答してエージェントは、新しいファイルがクラウドベースのデータベースに存在するかどうかを判定し、存在しなければ、そのファイルをクラウドベースのデータベースにコピーする。   The agent performs update tasks by copying blobs from the agent to the cloud-based storage device. Thus, when a new file is placed in the agent's file system, the agent reports the addition of the file to the platform, and the platform assigns the work to the agent to copy the file blob to the cloud-based storage device. In response, the agent determines whether the new file exists in the cloud-based database, and if not, copies the file to the cloud-based database.

ある実施形態のワーク項目は、待機中、未完了、および完了(成功または不成功)を含む、3つのフェーズを含む。プラットフォームは個々のエージェントに対応するファイルの状態を追跡するため、各エージェントに割り当てられたワーク項目のフェーズを追跡する。   The work item of an embodiment includes three phases including waiting, incomplete, and completion (success or failure). The platform tracks the state of the file corresponding to each agent, and therefore tracks the phase of the work item assigned to each agent.

プラットフォームとエージェントとの通信の効率性を最大化するため、プラットフォームとエージェントの両方にいくらかの情報が保存される。例えば、ある実施形態のエージェントは、ワークデータベースを通じてエージェントに割り当てられた新しいワーク項目を特定するためにプラットフォームにポーリングし、ワークデータベースの割り当て済みワーク項目を周期的に受信し、ローカル保存する。これにより、ワーク項目をエージェントにダウンロードするために必要な、エージェントとサーバとの通信量を削減する。同様に、新しいファイルがエージェント上で確認された場合、新しいファイルはエージェントのローカルライブラリデータベースに書き込まれ、ローカルライブラリデータベースはプラットフォームで周期的に複数回に分けて複製される。これにより、エージェントおよび/またはプラットフォームが新たなファイルの発生ごとにファイル転送を実行する必要性を取り除く。さらに、ここで詳細に説明するように、ある実施形態のブロブは差分ファイル転送をサポートし、システム内のブロブおよびそれらの位置を追跡するために用いられる情報の少なくとも一部が、プラットフォームおよびエージェントの両方に保存される。   To maximize the efficiency of communication between the platform and the agent, some information is stored on both the platform and the agent. For example, the agent of an embodiment polls the platform to identify new work items assigned to the agent through the work database, periodically receives the work database assigned work items, and stores them locally. This reduces the amount of communication between the agent and the server that is necessary for downloading the work item to the agent. Similarly, if a new file is confirmed on the agent, the new file is written to the agent's local library database, and the local library database is replicated in multiple cycles periodically on the platform. This eliminates the need for the agent and / or platform to perform a file transfer for each new file occurrence. In addition, as described in detail herein, certain embodiments of blobs support differential file transfer, and at least some of the information used to track blobs and their location in the system may be Saved in both.

プラットフォームに割り当てられたワークタスクを実行するためにエージェントが必要とする情報の取得に関して、エージェントはタスクの完了に必要とされるが、エージェントが所有するファイルには存在しない情報の位置を特定するためのヒエラルキーを含む。ある実施形態のヒエラルキーは、エージェントがまずローカルメモリを探索することと、ローカルで見つからずピアに属しているファイルで見つかった、必要な情報を取得するためにピアツーピア通信を利用することを含む。必要な情報がローカルで見つからず、ピアでも見つからない場合、エージェントは情報をクラウドベースのストレージ(例えばアマゾンS3など)や別のリモートストレージエンティティから取得する。   With regard to obtaining information required by the agent to perform the work task assigned to the platform, the agent is required to complete the task, but to locate information that is not present in the agent-owned file Including the hierarchy. The hierarchy of an embodiment includes the agent first searching local memory and utilizing peer-to-peer communication to obtain the necessary information found in files that are not found locally and belong to the peer. If the required information is not found locally or even at the peer, the agent gets the information from a cloud-based storage (eg Amazon S3, etc.) or another remote storage entity.

必要とされるファイルを得るためにピアツーピア通信が用いられる場合、プラットフォームはエージェントに、必要とされるファイルを所有するピアエージェントのリストを供給するが、それに限定されない。プラットフォームによって供給されるピアエージェントのリストは順序付きリストであり、それによってエージェントがリストの順序を用いてピアエージェントにコンタクトすることを可能にするが、別の実施形態のリストは順序付けされなくてもよい。   If peer-to-peer communication is used to obtain the required files, the platform provides the agent with a list of peer agents that own the required files, but is not so limited. The list of peer agents supplied by the platform is an ordered list, which allows agents to contact peer agents using the order of the list, although the list in another embodiment is not ordered. Good.

図4Bを参照して、ある実施形態のエージェントは、エージェントに機能を提供するために並列に実行する多数のスレッドまたはコンポーネントを含んでいる。例えば、プロバイダスレッドはエージェントに指定されたワーク項目をプラットフォームのワーク項目データベースから取得し、ローカルのワーク項目データベースに供給または格納する。ランナースレッドはエージェントのローカルワーク項目データベースを監視し、ローカルワーク項目データベースからワーク項目を個別に取り出し、項目をローカルワーク項目データベース内で未完了(pending)とマークし、項目を適切なタスク実行スレッドに供給する(例えば書き込みタスクは書き込みスレッドに供給される)。タスク実行スレッドはランナースレッドから受信したタスクの実行を完了すると、実行のステータスをランナースレッドに報告し(例えば、成功完了、不成功完了、不成功完了の理由など)、ランナースレッドはこのステータス情報をローカルワーク項目データベースに報告する。更新スレッドはローカルワーク項目データベースを完了とマークされた項目について監視し、完了したワーク項目のステータス情報をプラットフォームに報告する。プラットフォームはいずれかのエージェントによるワークの完了に応答して、必要に応じてプラットフォームデータベースを更新する。   With reference to FIG. 4B, an agent of an embodiment includes a number of threads or components executing in parallel to provide functionality to the agent. For example, the provider thread retrieves the work item specified by the agent from the platform work item database and supplies or stores it in the local work item database. The runner thread monitors the agent's local work item database, retrieves work items individually from the local work item database, marks the item as pending in the local work item database, and places the item in the appropriate task execution thread. (E.g., write task is supplied to the write thread) When the task execution thread completes the execution of the task received from the runner thread, it reports the execution status to the runner thread (for example, successful completion, unsuccessful completion, reason for unsuccessful completion, etc.), and the runner thread reports this status information. Report to local work item database. The update thread monitors the local work item database for items marked as complete and reports the status information of completed work items to the platform. In response to the completion of work by any agent, the platform updates the platform database as necessary.

ここで詳細に説明するように、ある実施形態のプラットフォームは、個々のエージェントによってプラットフォームに報告されるような、プラットフォームに結合または接続された各エージェントに対応するデータのメタデータを用いて動作する。プラットフォーム用のメタデータを生成するため、エージェントは、同期されるフォルダ内に有するすべてのファイルをスキャンする。エージェントは、ファイルを可変サイズのフラグメント(ブロブ)に分割することにより、ファイルを構成するデータからデータのフラグメントまたはコンポーネントを創成または生成する。ブロブはフィンガープリントアルゴリズムを用いて生成され、またブロブハッシュ(バッシュ(bash))によって識別される。具体的には、エージェントは、予め定められたバイト数に対する高速ウインドウチェックサム(fast-windowed checksum)を稼働することによってブロブを生成する。ある実施形態は、予め定められた最小長と最大長の間の可変長サイズを有するデータの一部を生成する。   As described in detail herein, an embodiment platform operates with data metadata corresponding to each agent coupled or connected to the platform, as reported to the platform by individual agents. In order to generate metadata for the platform, the agent scans all the files it has in the folder to be synchronized. The agent creates or generates data fragments or components from the data that make up the file by dividing the file into variable-sized fragments (blobs). Blobs are generated using a fingerprint algorithm and are identified by a blob hash (bash). Specifically, the agent generates a blob by running a fast-windowed checksum for a predetermined number of bytes. Some embodiments generate a portion of data having a variable length size between a predetermined minimum length and maximum length.

ファイルをコンポーネント部分(ここではフィンガープリントと呼ぶ)に分割する手順は、データのスライスにハッシュアルゴリズムを実行することを含み、ハッシュアルゴリズムはデータの特定パターン(例えば「0」ビットの12連続、「0」ビットの3連続、「1」ビットの6連続、など)を識別するように設定される。各部分の「サイズ」は、ハッシュ文字列の設定を通じて決定される。なぜなら、12ビットの連続文字列はあまり頻繁には発生しないため、3ビットの連続文字列よりも長いデータスライスを生成するからである。フィンガープリントはファイル内のデータブロックの境界を決定し、境界は2つ以上のファイル間に共通するブロックまたは部分を決定するために用いられる。   The procedure of dividing a file into component parts (referred to herein as fingerprints) includes performing a hash algorithm on the slice of data, which is a specific pattern of data (eg, 12 consecutive “0” bits, “0” "3 consecutive bits", 6 consecutive "1" bits, etc.). The “size” of each part is determined through the setting of a hash character string. This is because a 12-bit continuous character string does not occur very frequently, and therefore a data slice longer than a 3-bit continuous character string is generated. Fingerprints determine the boundaries of data blocks within a file, and the boundaries are used to determine blocks or portions that are common between two or more files.

ハッシュは予め定められたサイズのスライディングウィンドウにわたるハッシュアルゴリズムを用いて、ファイル内の各バイトに対して生成される。例えば、ある実施形態では、48バイトウィンドウにわたるBUZハッシュアルゴリズムを用いて、ファイル内の各バイトに対してハッシュが生成され、ハッシュアルゴリズムの適用結果は64ビットの数値である。ハッシュが合致値(match value)と呼ばれる特定の値(例えば下位12ビットがすべて「0」ビットである値)を有する場合、ファイル内のその点で分割が行われる。ある実施形態の合致値は例えば、ウィンドウの下位12ビットが「0」ビットの場合に生じる。   A hash is generated for each byte in the file using a hash algorithm over a predetermined size sliding window. For example, in one embodiment, a hash is generated for each byte in the file using a BUZ hash algorithm over a 48 byte window, and the application result of the hash algorithm is a 64-bit number. If the hash has a specific value called a match value (eg, a value in which the lower 12 bits are all “0” bits), the split is performed at that point in the file. The match value of an embodiment occurs, for example, when the lower 12 bits of the window are “0” bits.

ブロブを生成する際、ブロブがファイルの残り部分と分割または分離された位置でのハッシュ値、ブロブの完全なコンテンツのハッシュ、ブロブの分割位置に基づくオフセット値、およびブロブのサイズ(例えば長さ)を含む、ブロブの記述が生成される。ブロブの完全なコンテンツをハッシュするために用いられるある実施形態のハッシュ関数は、skein暗号学的ハッシュ関数(内部状態サイズ512ビット、160ビット出力を生成)であるが、実施形態はこれに限定されない。ブロブの完全なコンテンツのハッシュは、そのブロブに関する固有識別子として機能する。ファイルは、ファイルを構成するすべてのブロブのリストとして報告もしくは記述され、このファイルハッシュのリストは対応するファイルコンテンツの目録として機能する。   When generating a blob, a hash value where the blob is split or separated from the rest of the file, a hash of the blob's complete content, an offset value based on the blob's split position, and the blob size (eg length) A blob description is generated, including One embodiment hash function used to hash the complete content of a blob is a skein cryptographic hash function (which generates an internal state size of 512 bits and 160 bit output), but embodiments are not limited thereto. . The blob's complete content hash serves as a unique identifier for that blob. Files are reported or described as a list of all blobs that make up the file, and this list of file hashes serves as an inventory of the corresponding file content.

ある実施形態のブロブは中央ストレージエンティティで保存されるが、そのような形態に限定されない。そのようにする場合、プラットフォームは各エージェントに、いずれかのエージェントによって中央クラウドベースストレージエンティティに以前報告されていないブロブを転送するように命令する。一例として、中央ストレージエンティティはアマゾンウェブサービスから利用可能なアマゾンシンプルストレージサービス(S3)を含むことができる。従って、全てのブロブは1つ以上のエージェントにローカル保存されるとともに、中央ストレージに保存される。その後、エージェントがブロブを報告し、そのブロブが中央ストレージに存在しないとプラットフォームが判定した場合、そのブロブが他のエージェントによって既に報告されていなければ、プラットフォームはエージェントにそのプロブを中央ストレージに転送するように命令する。   Some embodiments of blobs are stored in a central storage entity, but are not limited to such forms. In doing so, the platform instructs each agent to transfer blobs that have not been previously reported to the central cloud-based storage entity by any agent. As an example, the central storage entity may include an Amazon simple storage service (S3) available from the Amazon web service. Thus, all blobs are stored locally on one or more agents and in central storage. Later, if the agent reports a blob and the platform determines that the blob does not exist in central storage, the platform forwards the prob to the agent to central storage, unless the blob has already been reported by another agent. To order.

上述したバッシュに加え、ある実施形態のシステムは、システム内のデータの記述に用いるための他の複数のハッシュを含んでいる。例えば、上述のとおり、ファイルのコンテンツを形成するブロブの完全なリストは、完全なリストについての固有識別子を生成するためにハッシュされる。この、コンテンツハッシュ(キャッシュ)と呼ばれる、ファイル全体のハッシュ識別子は、2つのファイルコンテンツが同一コンテンツかどうかを判定するための素早い比較を可能にする。   In addition to the bash described above, the system of an embodiment includes a plurality of other hashes for use in describing data within the system. For example, as described above, the complete list of blobs that form the content of the file is hashed to generate a unique identifier for the complete list. This hash identifier of the entire file, called a content hash (cache), allows a quick comparison to determine whether the two file contents are the same content.

ある実施形態の別のハッシュは、ここでファイルハッシュ(ファッシュ(fash))と呼ぶ、コンテンツハッシュと名称ハッシュとの組み合わせのハッシュを含む。従って、ファッシュはある特定の位置でファイルのコンテンツを識別する。   Another hash of an embodiment includes a hash of a combination of a content hash and a name hash, referred to herein as a file hash (fash). Thus, the Fash identifies the contents of the file at a specific location.

ある実施形態のハッシュは、パスハッシュおよびメタデータハッシュをさらに含む。ここではパッシュ(pash)と呼ぶ、パスハッシュまたはファイルパスハッシュは、ファイル名およびファイルのパスのハッシュである。マッシュ(mash)と呼ぶメタデータハッシュは、ファイルメタデータ(例えばファイル名、サイズ、日付、場所など)のハッシュである。ここで記述されるハッシュはエージェントによって生成されプラットフォームに送信されるが、そのような構成に限定されない。   The hash of an embodiment further includes a path hash and a metadata hash. The path hash or file path hash, referred to herein as pash, is a hash of the file name and file path. A metadata hash called mash is a hash of file metadata (for example, file name, size, date, location, etc.). The hash described here is generated by the agent and sent to the platform, but is not limited to such a configuration.

代替実施形態は、ここで記述されるようにデータのブロックを形成し、個々のブロックをバージョン情報と保存するためにハッシングを用いる。これは、ファイルの古いバージョンを生成するためにデータを再組み立てするためにバージョン付け(versioning)情報が用いられるようなバージョン付けを可能にする。   An alternative embodiment forms blocks of data as described herein and uses hashing to store individual blocks with version information. This allows versioning such that versioning information is used to reassemble the data to generate an older version of the file.

ある実施形態のハッシュを用い、各ファイルに対してプラットフォームでレコードが生成され、それぞれのファイルに対するそれぞれのレコードは、ファイルの全バッシュ(bash)ならびに、キャッシュ(cash)、ファッシュ(fash)、パッシュ(pash)、およびマッシュ(mash)を含む。ある実施形態のライブラリデータベースは各ファイルに対するこれらのレコードを含むが、実施形態はライブラリデータベースにこれらのレコードを含む構成に限定されない。プラットフォームは、変更や新しいデータにより期限切れとなっているデータのバージョンをどのエージェントが有するかを判定し、エージェント間でファイルバージョンを統一するために、エージェントからプラットフォームに報告され、それらのレコードに含められているデータの情報または状態を用いる。プラットフォームは、ファイルの状態を判定したり、エージェントによって報告されたファイルがそのファイルの最新バージョンかどうかを判定したりするために、ファッシュ(ファイルコンテンツおよびファイル名のハッシュ)を用いる。そしてプラットフォームは、1つ以上のファイルをその最新バージョンに更新する必要のあるエージェントにワークを発行する。   Using a hash of an embodiment, a record is generated on the platform for each file, and each record for each file is a full bash of the file, as well as a cache, a cache, a fash, a rush ( pash), and mash. Although an embodiment's library database includes these records for each file, embodiments are not limited to configurations that include these records in the library database. The platform determines which agent has a version of data that has expired due to changes or new data, and reports the agent to the platform and includes it in those records in order to unify the file version among the agents. Use data information or status. The platform uses the cache (hash of file content and file name) to determine the state of a file and to determine if the file reported by the agent is the latest version of the file. The platform then issues the work to an agent that needs to update one or more files to its latest version.

データまたはブロブの特定の部分を見つけるようにプラットフォームに命令されると、各エージェントはまず、そのデータに対応する特定のハッシュを有するブロブがローカルストレージに存在するかどうかを判定するために、ファイル目録のローカルコピーに問い合わせる。エージェントがそのファイルをローカルで見つけられなければ、エージェントはピアツーピアプロトコルを用いてピアエージェント上でそのファイルを見つけようとする。ピアツーピアプロトコルを用いる場合、選択的にファイルを見つけるため、そのファイルを有するエージェントのリストの情報を用いる。なお、リストはプラットフォームから受信される。代替実施形態はデータを見つけるための1つ以上の代替ハイアラーキを含むことができ、それ自体はピアツーピアプロトコルに限定されない。   When the platform is instructed to find a specific part of the data or blob, each agent first looks at the file inventory to determine whether a blob with a specific hash corresponding to that data exists in local storage. Query local copy of. If the agent cannot find the file locally, the agent attempts to find the file on the peer agent using a peer-to-peer protocol. When using the peer-to-peer protocol, the information of the list of agents having the file is used to selectively find the file. The list is received from the platform. Alternative embodiments may include one or more alternative hierarchies for finding data and are not limited to peer-to-peer protocols per se.

ピアツーピア通信はある実施形態のエージェント間でサポートされ、その際、各エージェントはプラットフォームにプライベートIPアドレスおよび自身がリスンしているポートを報告する。さらに、プラットフォームは、エージェントがプライベート情報を報告するとき(例えばエージェントの登録中など)に、各エージェントのバブリックIPアドレスおよびポートを観察する。プラットフォームは全てのエージェントのリストを、各エージェントのプライベートIPアドレスおよびポート、パブリックIPアドレスおよびポートとともに生成ならびに維持する。その後、第1のエージェントがピアツーピア通信を第2のエージェントと確立することを欲すると、第1のエージェントはプラットフォームに第2のエージェントのパブリックおよびプライベートIPアドレスおよびポートを問い合わせてプラットフォームから受信し、パブリックおよびプライベート情報の両方を用いて両方に接続を試みる。   Peer-to-peer communication is supported between agents in certain embodiments, where each agent reports its private IP address and the port it is listening on to the platform. In addition, the platform observes each agent's public IP address and port when the agent reports private information (eg, during agent registration). The platform generates and maintains a list of all agents along with each agent's private IP address and port, public IP address and port. Thereafter, when the first agent wants to establish peer-to-peer communication with the second agent, the first agent queries the platform for the public and private IP address and port of the second agent, receives from the platform, and And try to connect to both using private information.

ある実施形態におけるエージェント間のピアツーピア通信は公開鍵暗号化用のRSAアルゴリズムを用いて暗号化されるが、それに限定されない。ある実施形態の暗号化は全ての鍵をグリッド内にローカル保有または保存するので、ブリッド外のエンティティは非暗号化データにはアクセスできない。さらに、プラットフォームには完全なファイルが一度も保存されないので、更なるデータセキュリティが実現される。   Peer-to-peer communication between agents in certain embodiments is encrypted using, but is not limited to, the RSA algorithm for public key encryption. Because some embodiments of encryption have all keys locally held or stored in the grid, non-brid entities cannot access unencrypted data. In addition, complete data security is realized because the platform never stores a complete file.

エージェント間の暗号化ピアツーピア通信を伴う一例において、第1のエージェントAと通信との確立を望む第2のエージェントBは、エージェントAおよびB間の対称暗号化で用いるためのデータを暗号化するために用いるランダムシークレットSを生成する。第2のエージェントBは、プラットフォームから取得した第1のエージェントAの公開鍵を用いてシークレットSを暗号化し、暗号化されたシークレットSをプラットフォームに供給する。暗号化されたシークレットSは、プラットフォームに保存される。第2のエージェントBは第1のエージェントAに、セッションIDを用いて通信セッションを両者が確立しようとしていることを通信し、それに応答して第1のエージェントAはプラットフォームから暗号化されたシークレットSを取得してシークレットSの暗号化を解除する。その後シークレットは、ピアツーピア通信のための暗号化された通信チャネルを形成するために第1のエージェントAおよび第2のエージェントBによって用いられる。   In one example involving encrypted peer-to-peer communication between agents, a second agent B wishing to establish communication with the first agent A encrypts data for use in symmetric encryption between agents A and B. A random secret S used in the above is generated. The second agent B encrypts the secret S using the public key of the first agent A acquired from the platform, and supplies the encrypted secret S to the platform. The encrypted secret S is stored in the platform. The second agent B communicates to the first agent A that they are trying to establish a communication session using the session ID, and in response, the first agent A sends the secret S encrypted from the platform. And the secret S is decrypted. The secret is then used by the first agent A and the second agent B to form an encrypted communication channel for peer-to-peer communication.

プラットフォームおよびエージェントを含んだ例示的なシステムのブロック図である図4に関し、ここで記述するように、プラットフォームはワークを創成または生成し、そのワークをエージェントに割り当てる。そしてエージェントはプラットフォームによって自身に割り当てられたワークを実行し、自身のデータおよび実行したワークの情報をプラットフォームに供給する。ある実施形態のエージェントはプラットフォームに命令されるようにワークを実行するので、アプリケーションでもなければユーザでもない。動作時、各エージェントは、動作に利用可能となる前に、パスポートを用いてプラットフォームに登録する。ある実施形態ではプラットフォームから取得されるパスポートは、鍵と、対応するエージェントを特定する情報とを含んでいる。プラットフォームはプラットフォームが利用可能な全てのエージェントおよび各エージェントの関連情報のリストであるエージェントデータベースを含み、エージェントはプラットフォームへの登録時にプラットフォームによってエージェントデータベースに配置される。   With reference to FIG. 4, which is a block diagram of an exemplary system including a platform and an agent, the platform creates or creates a work and assigns the work to an agent, as described herein. Then, the agent executes the work assigned to itself by the platform, and supplies its own data and information of the executed work to the platform. In some embodiments, the agent performs work as directed by the platform, so it is neither an application nor a user. In operation, each agent registers with the platform using a passport before being available for operation. In one embodiment, the passport obtained from the platform includes a key and information identifying the corresponding agent. The platform includes an agent database that is a list of all the agents available to the platform and the associated information for each agent, and agents are placed in the agent database by the platform upon registration with the platform.

エージェントデータベースに加え、ある実施形態のプラットフォームは、クラウド内の複数の他のデータベースを有するか、それらデータベースに接続され、ある実施形態のエージェントおよびプラットフォームはデータベースに接続されるとともにデータベースを用いて情報を交換する。それに限定されないが、データベースは上述したようなエージェントデータベース、ライブラリデータベース、およびゴールデータベースを含む。各エージェントは1つ以上のライブラリを有することができ、1つ以上のライブラリはそれらのローカルディスクまたはストレージを表す。また、ライブラリデータベースは、対応するエージェントが利用可能なストレージのリストを含む。ゴールデータベースは、特定のタスクが実行されるべき(例えば同期されるべき)ライブラリのコレクションであるゴールのリストを含む。   In addition to the agent database, an embodiment platform may have or be connected to a number of other databases in the cloud, and an embodiment agent and platform may be connected to and use the database to store information. Exchange. The database includes, but is not limited to, the agent database, library database, and goal database as described above. Each agent can have one or more libraries, one or more libraries representing their local disk or storage. The library database also includes a list of storage that can be used by the corresponding agent. The goal database includes a list of goals that are collections of libraries in which a particular task is to be performed (eg, to be synchronized).

ライブラリデータベースに関し、各エージェントは、ここではライブラリと呼ぶ、プラットフォームへのストレージマウントポイントを特定する。マウントは、それに限らないが、エージェントが読み出しおよび/または書き込みアクセスを許可されている任意のデバイス、例えばいくつかを挙げれば、ディスクまたはディスクドライブ、ネットワークマウントポイント、ハードドライブ、フラッシュドライブ、およびストレージサービスを含む。プラットフォームおよび各エージェントはグローバルライブラリデータベースを含んでいる。グローバルライブラリデータベースは、システムのライブラリおよび、各ライブラリにアクセス可能な、対応するシステムのエージェントのそれぞれのリストを含んでいる。   For the library database, each agent identifies a storage mount point to the platform, referred to herein as a library. Mounts include, but are not limited to, any device that the agent is authorized to read and / or write access to, such as a disk or disk drive, network mount point, hard drive, flash drive, and storage service, to name a few including. The platform and each agent includes a global library database. The global library database contains a list of each of the system's libraries and corresponding system agents that can access each library.

さらに、各エージェントは、各ライブラリの周期的な「スナップショット」またはスキャンの利用を通じて各ライブラリのコンテンツの情報を提供し、エージェントおよびプラットフォームはスナップショットの情報を用いてライブラリ内の全ファイルの現在状況を追跡する。ライブラリデータベースは、グリッド内の各ライブラリの存在場所を突き止めるとともに、ライブラリにアクセス可能な各エージェントを特定するための問い合わせを可能にする。このアーキテクチャは、エージェントおよびプラットフォームがそれぞれ、特定のIDを有するライブラリにアクセス可能かどうかと、同じライブラリにアクセスしているかどうかが知ることを可能にする。従って、ライブラリデータベース内で各ライブラリは別個にかつ独立して表される。ある実施形態のプラットフォームおよびエージェントはそれぞれ、グリッド内の全ライブラリの情報を含んだグローバルライブラリデータベースを含むが、実施形態はそのようなものに限定されない。代わりに、プラットフォームはグリッド内の全ライブラリのグローバルライブラリデータベースを含み、各エージェントは個々のエージェントがアクセス可能なライブラリの情報を含んだローカルライブラリデータベースを含む。   In addition, each agent provides information on the contents of each library through the use of periodic “snapshots” or scans of each library, and agents and platforms use the snapshot information to determine the current status of all files in the library. To track. The library database locates each library in the grid and allows queries to identify each agent that can access the library. This architecture allows each agent and platform to know whether they can access a library with a particular ID and whether they are accessing the same library. Thus, each library is represented separately and independently in the library database. Although the platform and agent of an embodiment each include a global library database that includes information for all libraries in the grid, embodiments are not limited to such. Instead, the platform includes a global library database of all libraries in the grid, and each agent includes a local library database that contains information about the libraries accessible to individual agents.

プラットフォームはさらに、タスクを実行するためにエージェントに取り込まれ、あるいは用いられるゴールを含んでいる。ゴールは、エージェント、マウント、ワークなどを処理する代わりに、ライブラリだけを処理する。ゴールは1つ以上のライブラリに対応し、ライブラリのコンテンツに操作またはワークを実行するために用いられる。さらに、ライブラリはある実施形態において複数のゴールに対応する。   The platform further includes a goal that is captured or used by the agent to perform the task. Instead of processing agents, mounts, works, etc., the goal is to process only the library. A goal corresponds to one or more libraries and is used to perform operations or work on the contents of the library. Further, the library corresponds to multiple goals in certain embodiments.

ある実施形態のプラットフォームは各エージェントに対応するワークデータベースを含み、エージェントはプラットフォームからそのワークデータベースを受信する。プラットフォームは各エージェントについてのワークデータベースを生成し、対応するエージェントによって達成されるべきワークタスクをワークデータベースに追加する。ワークデータベースはエージェントに実行されるべき各タスクの記述を、ワークを実行するためにエージェントが必要とする情報とともに含んでいる。プラットフォームによってワークデータベースにおかれる任意のタスクは、グリッド内で実行される他のワークに応答して動的に変更および/または削除されてよい。例えば、「ファイルAの名前をファイルBに変更する」タスクがワークデータベースに追加され、その後ファイルBの名前がファイルCに変更される場合、プラットフォームはワークを「ファイルAの名前をファイルCに変更する」に修正する。さらに、後で使われなくなるいかなるタスクもワークデータベースから除去される。   The platform of an embodiment includes a work database corresponding to each agent, and the agent receives the work database from the platform. The platform creates a work database for each agent and adds work tasks to be accomplished by the corresponding agent to the work database. The work database contains a description of each task to be performed by the agent, along with information needed by the agent to perform the work. Any task placed in the work database by the platform may be dynamically changed and / or deleted in response to other work performed in the grid. For example, if a task “Rename file A to file B” is added to the work database and then file B is renamed to file C, the platform will rename the work “rename file A to file C. To "Yes". In addition, any tasks that are no longer used are removed from the work database.

ある実施形態において、エージェントはその能力に関する情報をプラットフォームに供給する。あるいは、プラットフォームは、グリッドの全エージェントの能力の全般的な情報を有する能力データベースを含むか生成する。   In one embodiment, the agent provides information about its capabilities to the platform. Alternatively, the platform includes or generates a capability database that has general information about the capabilities of all agents in the grid.

上述のとおり、エージェントはプラットフォームに生成されるワーク割り当てまたはタスクを自身のワークデータベースを通じて受信する。ワークデータベース内の別個のワーク項目のそれぞれは、エージェントによって行われるべき動作を記述する動詞を含む。ある実施形態のエージェントが実行可能なタスクまたはワーク項目は、例えばスキャン、削除、書き込み、およびアップロードである。ワーク項目はその完了条件とともにエージェントに送信される。   As described above, the agent receives work assignments or tasks generated on the platform through its work database. Each separate work item in the work database includes a verb that describes the action to be performed by the agent. Tasks or work items that an agent of an embodiment can perform are, for example, scan, delete, write, and upload. The work item is sent to the agent along with its completion condition.

例えば、スキャンタスクはエージェントのライブラリ内のファイルの現在状況をプラットフォームに報告すること、およびライブラリのコンテンツに対して加えられた変更(例えば1以上のファイルの追加、1以上のファイルの削除など)およびライブラリのいずれかのファイルに加えられた変更をプラットフォームに報告することを含む。   For example, the scan task reports the current status of files in the agent's library to the platform, and changes made to the library contents (eg, adding one or more files, deleting one or more files) and Includes reporting changes made to any file in the library to the platform.

別のタスクは、エージェントが適切なファイルの場所を突き止め、ファイルをブロブに分割し、ブロブを暗号化し、そしてファイルを形成するブロブのリストをクラウドベースのストレージサービスのようなオブジェクトストアに書き込みまたは転送するアップロードタスクである。データがオブジェクトストアに書き込まれる際、データはコンテンツアドレス指定され、従ってブロブのハッシュはオブジェクトストアに転送された後、ブロブ/データを参照するために用いられる(すなわち、ファイル名がハッシュである)。   Another task is that the agent locates the appropriate file, splits the file into blobs, encrypts the blob, and writes or transfers the list of blobs that form the file to an object store such as a cloud-based storage service This is an upload task. When data is written to the object store, the data is content addressed, so the blob hash is used to reference the blob / data after it is transferred to the object store (ie, the file name is a hash).

ある実施形態のタスクはさらに、ファイルの1つ以上のブロブの位置を突き止めることと、そのブロブを第1の位置(例えばソースデバイス)から第2の位置(例えばディスティネーションデバイス)へコピーすることとを含む、書き込みタスクを含む。受信した書き込みタスクに応答して、エージェントは対応するエージェントライブラリ内でブロブをローカルで見つけようとする。ブロブがローカルで見つからない場合、エージェントはブロブを、そのブロブを有することを報告しているピアエージェントで見つけようとする。ブロブをピアエージェントで見つけることができなければ、エージェントはファイルをオブジェクトストア(例えばクラウドベースのストレージデバイス)から取得する。ファイル全体が書き込まれる場合、ブロブのリストはファイルの目録として報告または書き込まれる。   The task of an embodiment further includes locating one or more blobs in the file and copying the blob from a first location (eg, source device) to a second location (eg, destination device). Includes writing tasks. In response to the received write task, the agent attempts to find the blob locally in the corresponding agent library. If the blob is not found locally, the agent tries to find the blob with the peer agent reporting that it has the blob. If the blob cannot be found at the peer agent, the agent retrieves the file from an object store (eg, a cloud-based storage device). If the entire file is written, the list of blobs is reported or written as a file inventory.

図4に関し、例示的な動作は、ドキュメントのバージョンが他のデバイス/エージェントで見つかったような最新バージョンではないという判定に応答した、デバイス/エージェント上のドキュメントの同期を含む。パスポートを用いたエージェントAGENT_Xの登録に引き続き、エージェントはライブラリLIBRARY_Xのコンテンツを含んだライブラリファイルを生成し、プラットフォームに送信するためのスキャンを実行するように命令される。スキャンを開始するため、プラットフォームはスキャンタスクを特定のエージェント(例えばWORK_AGENTX)のためのワークデータベース(例えばWORK_AGENTX)に追加し、プラットフォームはそのエージェントについてのワークデータベースに、ファイルを同期するために必要な全てのワークを書き込む。   With reference to FIG. 4, an exemplary operation includes synchronizing a document on a device / agent in response to determining that the version of the document is not the latest version as found on other devices / agents. Following registration of the agent AGENT_X using the passport, the agent is instructed to generate a library file containing the contents of the library LIBRARY_X and perform a scan to send to the platform. To initiate a scan, the platform adds a scan task to the work database (eg WORK_AGENTX) for a specific agent (eg WORK_AGENTX), and the platform does everything necessary to synchronize files to the work database for that agent. Write the workpiece.

ライブラリLIBRARY_XはAGENT Xがアクセス可能なマウントに存在するファイルに関するメタデータを格納しており、ライブラリ識別子またはファイルのフィルタによってファイルのサブセットを規定するメタデータを含んでいる。従って、ライブラリはマウントに存在するファイルセットのメタデータを含んでいる。スキャンは継続的に稼働しているジョブであり、ジョブの結果、各ライブラリについて、そのライブラリ(例えばLIBRARY_X)のコンテンツが「スキャン済」であることを表すメタデータがプラットフォームに供給される。その結果、通常は、各エージェントがアクセス可能なマウントに対する特定のフィルタの適用に基づいてフィルタ処理されたメタデータをライブラリデータベースが含むように、各エージェント上の各ライブラリの写し(mirror)が生成され、プラットフォームのライブラリデータベースに配置される。   Library LIBRARY_X stores metadata about files residing on mounts accessible to AGENT X, and includes metadata that defines a subset of files by library identifier or file filter. Thus, the library contains the metadata for the fileset that exists on the mount. Scanning is a job that runs continuously. As a result of the job, for each library, metadata indicating that the contents of the library (for example, LIBRARY_X) are “scanned” is supplied to the platform. As a result, a mirror of each library on each agent is typically generated so that the library database contains metadata that is filtered based on the application of a specific filter to the mounts that each agent can access. Placed in the platform library database.

プラットフォームがアクセス可能な全てのエージェントに対して上述した動作を提供した結果として、プラットフォームは、自身がアクセス可能なエージェントの全ファイルのコンテンツのメタデータを含む。プラットフォームはまた、ゴールデータベースに、(この例においては)LIBRARY_Xと他のエージェント(不図示)のLIBRARY_Y(不図示)についての「同期」ゴールを含んでいる。この動作は同期ドキュメントを生成し、同期ドキュメントは、各ファイルに対応するエントリを用いて、これらライブラリの各々について各ファイルの現在のシグネチャーまたはゴール状態を追跡し、個々のライブラリ内のライブラリファイルまたは項目の変化に伴ってゴール状態を更新する。この例を用い、同期ドキュメントはLIBRARY_XとLIBRARY_Yの現在のゴール状態を追跡し、いずれかのファイルが正しいゴール状態でない場合には、LIBRARY_XとLIBRARY_Yを正しい(同じ)ゴール状態とするためのワークがプラットフォームによって生成されるとともに割り当てられる。この例において、ゴール状態は最後の、あるいは最新の状態によって決定され、LIBRARY_Yのドキュメントは最新ファイルバージョンであるため、LIBRARY_XのファイルをLIBRARY_Yのファイルと同じ状態に更新するためにワークがLIBRARY_Xに割り当てられる。そしてシステムは、データを交換し、ライブラリを同期させるために必要な情報が取得できるように、適切なエンティティ(例えば1以上のピアエージェント、1以上のリモートストレージデバイスなど)を伴うセッションを開始する 。   As a result of providing the operations described above for all agents accessible by the platform, the platform includes metadata of the contents of all files of the agent that it can access. The platform also includes “synchronized” goals for LIBRARY_X (in this example) and LIBRARY_Y (not shown) of other agents (not shown) in the goal database. This action generates a synchronized document that tracks the current signature or goal state of each file for each of these libraries, using an entry corresponding to each file, and the library file or item within an individual library. The goal state is updated with the change of. Using this example, the synchronization document tracks the current goal state of LIBRARY_X and LIBRARY_Y, and if either file is not in the correct goal state, the work to make LIBRARY_X and LIBRARY_Y the correct (same) goal state is the platform Generated and assigned by In this example, the goal state is determined by the last or latest state, and the LIBRARY_Y document is the latest file version, so work is assigned to LIBRARY_X to update the LIBRARY_X file to the same state as the LIBRARY_Y file. . The system then initiates a session with the appropriate entities (eg, one or more peer agents, one or more remote storage devices, etc.) so that the information necessary to exchange data and synchronize the library can be obtained.

エージェント間のファイル同期を伴う別の例を図5に示す。図5は、ある実施形態に係る、プラットフォームと複数のエージェントとの間でのファイル同期を伴う一例のブロック図を示している。この例は3つのエージェントA502、B504、およびC506を含み、各エージェントは対応するライブラリLIB_A508、LIB_B510、およびLIB_C512を有するが、実施形態はこのような形態に限定されない。プラットフォームはこれら3つのライブラリを同期させるために、ゴールデータベースにゴール514を含んでいる。プラットフォームは多数のレコード516を有するライブラリデータベースを含んでいる。レコード516の各々は、プラットフォームによって管理される1つのファイルに対応している。各レコードはファイルの各インスタンスに対する1つのエントリの形式で情報を含んでおり、エントリは、ファイルおよびファイルパスのハッシュ(P)を含む、ライブラリの情報を含んでいる。   Another example with file synchronization between agents is shown in FIG. FIG. 5 illustrates an example block diagram with file synchronization between a platform and multiple agents, according to an embodiment. This example includes three agents A 502, B 504, and C 506, each agent having a corresponding library LIB_A 508, LIB_B 510, and LIB_C 512, but embodiments are not limited to such a form. The platform includes a goal 514 in the goal database to synchronize these three libraries. The platform includes a library database having a number of records 516. Each record 516 corresponds to one file managed by the platform. Each record contains information in the form of one entry for each instance of the file, and the entry contains library information, including a file and a hash (P) of the file path.

この例のために、エージェントAが特定のファイルについてエージェントBおよびCが報告するハッシュ(例えばH)と異なるハッシュ(例えばH2)を報告するものと仮定する。プラットフォームはライブラリデータベースの情報から、エージェントAがそのファイルについてエージェントBおよびCと異なるハッシュ情報を報告していることおよび、エージェントAのそのファイルが最新バージョンであることを判定する。これに応答してプラットフォームは、エージェントB518およびC520のファイルを、エージェントAが所有する最新バージョンに更新するため、エージェントB518およびC520のためのワーク(例えば、それぞれWORK_BおよびWORK_C)を生成する。生成されたワークは対応するファイルの位置を特定して取得するためのものであり、取得した情報をファイル更新のために用いる。また、ワークタスクがプラットフォームによってプラットフォームのワークデータベースに配置される。ある実施形態のプラットフォームによって生成されるワークタスクは、ファイルの最新バージョンが保存されているシステム内の位置(例えばエージェントA)の情報を含むが、それに限定されない。ワークタスクは、1つ以上の適切な位置(例えばファイルのブロブを制御している1つ以上のエージェント)から対応するファイルを取得し、取得した情報をファイルを更新するために用いるための情報を含む。ワークタスクはプラットフォームによってプラットフォームのワークデータベースに配置される。   For this example, assume that agent A reports a hash (eg, H2) that differs from the hash (eg, H) reported by agents B and C for a particular file. The platform determines from the information in the library database that agent A is reporting hash information different from agents B and C for the file and that the file on agent A is the latest version. In response, the platform generates work for agents B 518 and C 520 (eg, WORK_B and WORK_C, respectively) to update agent B 518 and C 520 files to the latest version owned by agent A. The generated work is for specifying and acquiring the position of the corresponding file, and the acquired information is used for updating the file. Also, work tasks are placed in the platform work database by the platform. The work task generated by the platform of an embodiment includes, but is not limited to, information about the location in the system (eg, Agent A) where the latest version of the file is stored. The work task obtains the corresponding file from one or more appropriate locations (eg, one or more agents controlling the blobs of the file) and uses the obtained information to update the file. Including. Work tasks are placed in the platform work database by the platform.

この例において、エージェントBおよびCは自身のそれぞれのワーク(例えばそれぞれWORK_BおよびWORK_C)をプラットフォームのワークデータベースから取得する。エージェントA、B、Cのライブラリ内のハッシュH2(不図示)によって示されるように、ワーク完了時にエージェントA、B、Cの各々はファイルの最新バージョンを含んでいる。さらに、エージェントBおよびCの各々は、ワークタスクの完了をプラットフォームに報告する。   In this example, agents B and C obtain their respective work (eg, WORK_B and WORK_C, respectively) from the platform work database. As indicated by the hash H2 (not shown) in the library of Agents A, B, and C, each of Agents A, B, and C includes the latest version of the file when the work is complete. In addition, each of agents B and C reports the completion of the work task to the platform.

より具体的には、図6は実施形態に係るエージェント、プラットフォーム、およびデータベースを含んだ例示的なフロー図である。この例において、新しいエージェントAは602でプラットフォームに登録し、新しいエージェントAに対応するエージェントデータベースにエントリが生成される。エージェントAがエージェントデータベースに追加されるとプラットフォームは、604で新しいエージェントAについてのワークデータベースWORK_Aを生成する。ワークデータベースWORK_Aは対応するエージェントAのためのワークまたはタスクを含むように生成される。   More specifically, FIG. 6 is an exemplary flow diagram including agents, platforms, and databases according to an embodiment. In this example, a new agent A registers with the platform at 602 and an entry is created in the agent database corresponding to the new agent A. When agent A is added to the agent database, the platform creates a work database WORK_A for new agent A at 604. The work database WORK_A is generated to include a work or task for the corresponding agent A.

さらに、新しいエージェントAに対応するライブラリデータベースに新しいライブラリエントリが606で追加され、それに応答して608で新しいデータベースLIB_LAがエージェントAのライブラリの情報のために生成される。さらに、新しい同期ゴールSYNC(LA)が610で生成されてゴールデータベースに追加され、新しい同期ゴールは情報を有し、この情報を用いてプラットフォームが新しいエージェントAのファイルとプラットフォームがアクセス可能な他のエージェントのファイルとの同期を命令する。   In addition, a new library entry is added at 606 to the library database corresponding to the new agent A, and in response, a new database LIB_LA is created at 608 for information about the agent A library. In addition, a new synchronization goal SYNC (LA) is generated at 610 and added to the goal database, the new synchronization goal has information, and the platform uses this information to create a new agent A file and other platform accessible platforms. Command synchronization with agent files.

新しいエージェントAの登録に応答して、プラットフォームはまず、ライブラリAのコンテンツの情報を必要とし、その後は、ライブラリAのコンテンツに対する変化の情報を必要とする。図7は、あるライブラリをスキャンならびに同期するために同期ゴールの利用を伴う、実施形態に係る一例のフロー図である。エージェントAの登録処理702に続き、同期ゴールSYNC(LA)は704でワークタスクを生成し、エージェントAのワークデータベースWORK_Aに追加する。ここで詳細に記述するように、エージェントAは、ライブラリの初期コンテンツを調査または学習するためにライブラリAのコンテンツをスキャンすることによってワークタスクに応答する。ライブラリAの全コンテンツのメタデータをプラットフォームに渡すことに加え、その後、ライブラリAのコンテンツに変化が発生したときを判定するためにライブラリAのコンテンツの情報が用いられる。   In response to the registration of the new agent A, the platform first needs information about the contents of library A, and then needs information about changes to the contents of library A. FIG. 7 is an example flow diagram according to an embodiment involving the use of synchronization goals to scan and synchronize a library. Following the registration process 702 of agent A, the synchronization goal SYNC (LA) generates a work task at 704 and adds it to the work database WORK_A of agent A. As described in detail herein, Agent A responds to the work task by scanning the contents of Library A to examine or learn the initial contents of the library. In addition to passing the metadata of all the contents of library A to the platform, information on the contents of library A is then used to determine when a change has occurred in the contents of library A.

ライブラリAのコンテンツの情報を用いて、その後エージェントAはコンテンツに対する変更に関してライブラリAを監視する。変更は、新しいファイルの追加、ファイルの削除、ファイルのコンテンツに対する変更、およびファイルの名称変更などを含むことができるが、これらに限定されない。ライブラリAのコンテンツに対する変更を検出したことに応答して、エージェントAは706でライブラリデータベースLIB_LAに変更をポストする。さらに、エージェントAはライブラリAのコンテンツにおけるその後の全ての変更に対応するメタデータをプラットフォームに渡す。   Using the content information in library A, agent A then monitors library A for changes to the content. Changes can include, but are not limited to, adding new files, deleting files, changes to file contents, and renaming files. In response to detecting a change to the contents of library A, agent A posts the change to library database LIB_LA at 706. In addition, Agent A passes metadata corresponding to all subsequent changes in the contents of Library A to the platform.

ある実施形態のプラットフォームは同期データベースを含んでいる。プラットフォームはエージェントのレコードおよびファイル状態を含めるとともに維持するために、より具体的には各ファイルおよび/または各エージェントについてのエントリであって、そのファイルおよび/またはエージェントに対応するコンテンツハッシュを含むエントリを含めるために、同期データベースを生成する。データベースライブラリLIB_LA内での変更のポスティングをプラットフォームが検出すると、プラットフォームは708で、その変更をライブラリAに反映させるために同期データベースを更新する。ライブラリAへのこの変更は、他のライブラリ(例えばBおよびC)がライブラリAともはや同期していないことを意味する。その結果、プラットフォームは710で、それら他のライブラリがライブラリAのコンテンツと同期した状態になるように、それら他のライブラリのエージェントのためのワークを生成する。従って、この例では、ワークタスクはエージェントBおよびCについて、それらのライブラリを同期させるために生成される。   In some embodiments, the platform includes a synchronization database. In order for the platform to include and maintain agent records and file states, it more specifically includes an entry for each file and / or each agent that includes a content hash corresponding to that file and / or agent. Generate a synchronization database for inclusion. When the platform detects posting changes in the database library LIB_LA, the platform updates the synchronization database to reflect the changes in Library A at 708. This change to library A means that the other libraries (eg B and C) are no longer synchronized with library A. As a result, the platform 710 generates work for the agents of these other libraries so that these other libraries are in sync with the contents of library A. Thus, in this example, work tasks are generated for agents B and C to synchronize their libraries.

別の例として、ある実施形態のプラットフォームおよびエージェントは、仮想NASを形成する。そのため、ネットワークストレージデバイスで全てのデータを保存する(この場合、データをネットワークストレージデバイスに転送する必要がある)代わりに、データのインデックスとプラットフォームの対応するメタデータとを用いる仮想NASを生成するためにプラットフォームおよびエージェントを用いることができる。このようにして、グリッドを形成するコンピューティングデバイスのコレクションを用いてNASが形成され、従って、NASはオンサイトかつ所有するエージェンシーによって制御される。   As another example, the platform and agents of an embodiment form a virtual NAS. Therefore, instead of storing all data on the network storage device (in this case, the data needs to be transferred to the network storage device) to create a virtual NAS that uses the data index and the corresponding metadata of the platform Platforms and agents can be used. In this way, a NAS is formed using a collection of computing devices that form a grid, and thus the NAS is controlled on-site and by an owned agency.

一例として、スモールオフィス環境は、オフィス内の全てのコンピュータのバックアップに用いるためのネットワーク接続ストレージ(NAS)デバイスを含んでいる。しかしながら、いくらかの時間が経過した後、オフィスコンピュータのデータはNASデバイスの全メモリを消費し、ネットワークのコンピュータをバックアップするために追加のストレージが必要になる。従前の技術を用いると、第1のNASはより大きなメモリを有するNASに置き換える必要があるか、全てのコンピュータが同一のNASにバックアップされないようにオフィス内の各コンピュータをNASに割り当てる必要があるであろう。しかし、メモリデバイスのそれぞれでホストされるか、オフィス内の各コンピュータでホストされるエージェントと通信するためにプラットフォームを用いることができるため、実施形態に係るプラットフォームの利用はこの問題を取り除く。なお、各エージェントは各NASに書き込む能力を有する。その際、プラットフォームはエージェントによって形成されるグリッドの全メンバと通信し、その通信によってプラットフォームはオフィルの全データの位置の情報を有する。オフィスデータのメタデータを利用して、プラットフォームは各エージェントに、そのエージェントがバックアップデータを保存すべき位置、またはそのエージェントが処理動作を達成するために必要なデータを取得または読み出しに行くべき位置に関して指示することができる。   As an example, a small office environment includes a network attached storage (NAS) device for use in backing up all computers in the office. However, after some time, the office computer data consumes the entire memory of the NAS device, and additional storage is required to back up the networked computer. Using conventional technology, the first NAS needs to be replaced with a NAS with larger memory, or each computer in the office needs to be assigned to the NAS so that not all computers are backed up to the same NAS I will. However, the use of a platform according to embodiments removes this problem because the platform can be used to communicate with agents hosted on each of the memory devices or hosted on each computer in the office. Each agent has the ability to write to each NAS. In that case, the platform communicates with all members of the grid formed by the agent, and by the communication, the platform has information on the location of all data of the office. Using office data metadata, the platform tells each agent as to where it should store backup data, or where it should go to retrieve or retrieve the data it needs to achieve processing operations. Can be directed.

実施形態に係るプラットフォームを用件とする別の応用例として、ユーザがデジタル写真をフォルダに追加し、その後、そのフォルダ内に格納されている全ての写真をツイッター(登録商標)アプリケーションを用いてツイートすることを欲したとする。ある実施形態ではエージェントがツイッターAPIにインストールされ、プラットフォームはフォルダ内に配置された全ての写真がツイッターに供給されるというゴールを含む。このゴールを用いてプラットフォームは、写真をツイッターに供給するようにそのエージェントに命令し、その後、ツイッターエージェントはその写真を用いたツィートを生成するように命令されることができる。さらに別の例として、ツイッターエージェントはあるアカウントで受信された全てのツイートをNAS上の特定の位置で保存するようにプラットフォームによって命令されることができる。   As another application example using the platform according to the embodiment, a user adds a digital photo to a folder, and then tweetes all the photos stored in the folder using a Twitter (registered trademark) application. Suppose you want to. In one embodiment, the agent is installed in the Twitter API and the platform includes a goal that all photos placed in the folder are served to Twitter. With this goal, the platform can instruct the agent to supply the photo to Twitter, and then the Twitter agent can be instructed to generate a tweet using the photo. As yet another example, a Twitter agent can be instructed by the platform to store all tweets received on an account at a specific location on the NAS.

さらに別の例として、ある実施形態のプラットフォームはファイル転送の代わりにコンテンツのトランスコーディングおよびストリーミングを提供する。この場合、デバイスにダウンロードする比較的大きなファイルを、完全なファイルをデバイスにダウンロードする代わりに、1つ以上のピアエージェントからデバイスに、トランスコードディングしてストリーミングすることができる。   As yet another example, an embodiment platform provides content transcoding and streaming instead of file transfer. In this case, a relatively large file to download to the device can be transcoded and streamed from one or more peer agents to the device instead of downloading the complete file to the device.

企業が極秘データを守ることを支援するため、ここで詳細に記述するように、ある実施形態のプラットフォームは、ビジネスコンテンツのための、可視性(visibility)、分析性、管理およびセキュリティをモバイルデバイス、デスクトップ、およびパブリック、プライベートまたはローカルクラウドにまたがって提供する、SaaS (software-as-a servece)ベースのデータ同期およびコンテンツ管理プラットフォームを含む。プラットフォームは、コンテンツをデバイス、ユーザ、および場所(geographies)に跨がってコンテンツを発見、追跡、ならびに管理することが可能なクラウドベースの分散型データシステムを含む。プラットフォームはピアツーピア(P2P)システムの強さと、より多くの従前のクラウドデータストレージプラットフォームの集中化および制御とを両立させる。この新規なハイブリッドアプローチは妥協のない制御およびセキュリティを提供する。   To help companies protect sensitive data, as described in detail here, an embodiment platform provides visibility, analytics, management and security for mobile content, Includes software-as-a servece (SaaS) -based data synchronization and content management platforms that span desktops and public, private or local clouds. The platform includes a cloud-based distributed data system that can discover, track, and manage content across devices, users, and geographies. The platform balances the strength of peer-to-peer (P2P) systems with the centralization and control of more traditional cloud data storage platforms. This new hybrid approach provides uncompromised control and security.

ある実施形態のプラットフォームは、それが有する、クラウドベースのポリシエンジン、不可知的なファイルストレージ環境、高度に効率的なデータ転送、自動化されたデータ発見および分解(segmentation)、および多層化されたエンタプライズグレードセキュリティによって他のクラウドベースの同期およびコンテンツ管理プラットフォームと差別化される。従前のクラウドサービス環境において、プラットフォームインテリジェンスの大半はモバイルおよびデスクトップクライアントにホストされ、クラウドは「非インテリジェントなストレージ(dumb storage)」として機能している。ある実施形態のプラットフォームはより柔軟で、パワフルならびにセキュアなアプローチをとる。「スマートクライアント」が「非インテリジェントなストレージ」にアクセスする代わりに、「非インテリジェントなクライアント」を管理する「スマートクラウド」をプラットフォームが有する。このアプローチにより、プラットフォームはクライアント(モバイルおよびデスクトップデバイス)にコマンドを発行し、機能性およびセキュリティを向上させる。   An embodiment platform includes a cloud-based policy engine, an agnostic file storage environment, highly efficient data transfer, automated data discovery and segmentation, and multi-layered entertainment. Differentiate from other cloud-based synchronization and content management platforms with prize-grade security. In traditional cloud service environments, most of the platform intelligence is hosted on mobile and desktop clients, and the cloud functions as “dumb storage”. Certain embodiments of the platform take a more flexible, powerful and secure approach. Instead of “smart clients” accessing “non-intelligent storage”, the platform has a “smart cloud” that manages “non-intelligent clients”. With this approach, the platform issues commands to clients (mobile and desktop devices) to improve functionality and security.

図8は実施形態に係る、ポリシデータベースおよびルールエンジンを含んだプラットフォームのブロック図である。プラットフォームは全てのサービスポリシをポリシデータベースにクラウドレベルで有し、ポリシデータベースはプラットフォームルールエンジンに接続されている。例えば、ポリシは「フォルダX内のどんな新しいファイルもユーザA,B,Cのデバイスにコピーする」であってよい。ポリシデータベースのポリシに加え、プラットフォームはファイルメタデータ、ユーザ、デバイス、グループおよび組織の完全なデータベースを維持し、プラットフォームに環境の完全な理解を与えている。プラットフォームの構成は、デバイス特性、ファイルメタデータ、およびパーミッション(例えばユーザパーミッション、グループパーミッション、組織パーミッションなど)を受信するために接続されたポリシデータベースを含んでいる。   FIG. 8 is a block diagram of a platform including a policy database and a rule engine according to the embodiment. The platform has all service policies in the policy database at the cloud level, and the policy database is connected to the platform rule engine. For example, the policy may be “Copy any new files in folder X to user A, B, C devices”. In addition to policy database policies, the platform maintains a complete database of file metadata, users, devices, groups and organizations, giving the platform a complete understanding of the environment. The platform configuration includes a policy database connected to receive device characteristics, file metadata, and permissions (eg, user permissions, group permissions, organization permissions, etc.).

クライアントレベルでは、ローカルエージェントが(i)イベント(例えば、フォルダXへの新しいファイル追加)を監視し、(ii)ファイル(ファイルは以下のキータームを含んでいる)へのインデックス付与を実行し、(iii)ファイルメタデータ、デバイスステータス、および新しいイベントをプラットフォームにアップロードし、(iv)プラットフォームから発行されたワークを処理する(例えば、データ移動、フォルダスキャン、ファイル生成、ピアに接続、など)。エージェントは、ネットワーク中を移動するデータのそれぞれをクラウド内のポリシエンジンへ報告し、どこにデータが配置されているかおよびどこにそれを配置する必要があるかをプラットフォームが知ることを可能にしている。   At the client level, the local agent (i) monitors for events (eg, new file additions to folder X), (ii) performs indexing on files (files contain the following key terms), ( iii) Upload file metadata, device status, and new events to the platform, and (iv) process work published from the platform (eg, data movement, folder scan, file generation, connect to peer, etc.). The agent reports each piece of data moving through the network to a policy engine in the cloud, allowing the platform to know where the data is located and where it needs to be placed.

エージェントレベルで新しいポリシが追加されるか、新しいイベントが発生すると、どのアクションを取るべきかを決定するため、プラットフォームは管理者または「トラフィックコップ」として振る舞う。ポリシエンジンに基づいて、プラットフォームは1つ以上のローカルエージェントにタスクを実行させるためにコマンドを発行する。1つ以上のエージェントはポリシエンジンから自身に発行されたワークだけを実行する。このアプローチにより、サービスの他の重要なコンポーネントの抽象化を容易な実現、クラウド内にインテリジェンスが存在することによる新たなユースケース(例えばデータバックアップ、情報管理)の素早い反復、および、メタデータがファイルデータから分離された、改良されたセキュリティモデル、が可能になる。   When new policies are added at the agent level or new events occur, the platform acts as an administrator or “traffic cup” to determine what action to take. Based on the policy engine, the platform issues commands to cause one or more local agents to perform tasks. One or more agents execute only work issued to them from the policy engine. This approach facilitates abstraction of other critical components of the service, new iterations of new use cases (eg data backup, information management) due to the presence of intelligence in the cloud, and metadata files An improved security model, separated from the data, becomes possible.

従前のクラウドサービスプロバイダは、ファイルストレージアクセスポイントとしてのクラウドインフラストラクチャにデータをアップロードおよび保存することを顧客に強いていた。これらのプロバイダは、ストレージに対して顧客に課金し、ユーザデータの全てを単一のストレージシステムに統合することによってこのアーキテクチャから利益を得ている。これは、サービスプロバイダがコンテンツの重複除外(de-duplicate)を行ったり、実際には使用されていないストレージに関して課金することを可能にしている。このアプローチには以下の問題を含む、いくつかのセキュリティ上の問題が存在する。会社は自身のストレージ場所を選択することができず、従って自身のデータに対する制御が行えない。また、会社はサービスプロバイダがデータを正しく重複除外し、かつ自身の極秘ビジネスコンテンツをシステム上の他のユーザと混ぜ合わせないことを信用しなければならない。さらに、会社は共有などの機能を利用するために自身の暗号鍵をサービスプロバイダと共有しなければならない。加えて、データを潜在的な違反に曝すことになる。   Previous cloud service providers forced customers to upload and store data on a cloud infrastructure as a file storage access point. These providers benefit from this architecture by charging customers for storage and consolidating all of the user data into a single storage system. This allows service providers to de-duplicate content or charge for storage that is not actually used. There are several security issues with this approach, including the following: The company cannot select its own storage location and therefore has no control over its data. The company must also trust that the service provider correctly deduplicates the data and does not mix its sensitive business content with other users on the system. Furthermore, a company must share its encryption key with a service provider in order to use functions such as sharing. In addition, the data is exposed to potential violations.

従前のクラウドサービスと対照的に、ある実施形態のプラットフォームは、様々なパブリック、プライベート、およびローカルクラウドをファイルストレージアクセスポイントとして用いる。この不可知的なファイルストレージアクセスポイントを提供するため、プラットフォームはファイルコンテンツをメタデータから分離し、2つのを非常に異なった方法で取り扱う。図9は実施形態に係る、別のプラットフォーム構成要素から分離されたメタデータを示すブロック図である。より具体的には、メタデータは対応するサーバによって集約されかつクラウド内に保存されるが、実際のファイルまたはファイルデータは、顧客による決定に応じて1つ以上のストレージアクセスポイントに保存される。さらに、プラットフォームが制御する高度なデータフィンガープリント処理やハッシュ処理により、ファイルデータを複数のデータストアに安全に保存することが可能になる。このようなアプローチにより、顧客はファイルを保存する場所を選択することが可能となり、セキュリティを向上させたり、既存のインフラストラクチャーを活用したり、データをローカル保存するためにポリシを施行したり、セーフハーバー要件を満たしたりすることが可能になる。   In contrast to previous cloud services, the platform of an embodiment uses various public, private, and local clouds as file storage access points. To provide this agnostic file storage access point, the platform separates the file content from the metadata and treats the two in very different ways. FIG. 9 is a block diagram illustrating metadata separated from another platform component, according to an embodiment. More specifically, the metadata is aggregated by the corresponding server and stored in the cloud, while the actual file or file data is stored in one or more storage access points as determined by the customer. In addition, advanced data fingerprinting and hashing controlled by the platform allows file data to be securely stored in multiple data stores. This approach allows customers to choose where to store files, improving security, leveraging existing infrastructure, enforcing policies to store data locally, and safe Or meeting harbor requirements.

従前のクラウドサービスプロバイダは通常、データ転送のために、全てのデータををクライアントからプロバイダの集中クラウドにアップロードしてから、接続されたクライアントにダウンロードするという、非効率的な2ステップ手順を実行する。データの重複除外、ハッシュ処理およびP2P能力のレベルに応じて、このデータ転送手順は多くの時間を要したり、かなりのデータ転送コストを要したりする場合がある。   Traditional cloud service providers typically perform an inefficient two-step procedure for uploading all data from the client to the provider's central cloud and then downloading it to the connected client for data transfer . Depending on the level of data deduplication, hashing, and P2P capability, this data transfer procedure can take a lot of time or can require significant data transfer costs.

対照的に、ある実施形態のプラットフォームは、データを転送するために一連の技術を用いる。例えば、ある実施形態のプラットフォームは、ファイル全体ではなくデータのブロックを移動させることにより、ブロックレベルファイル転送を実行する。一例として、ある1GBのファイルが変更されたとすると、1GBファイルの全体ではなく、変更されたファイルのハッシュされたブロック(例えば10MBブロック)が転送される。   In contrast, an embodiment platform uses a series of techniques to transfer data. For example, the platform of an embodiment performs block-level file transfers by moving blocks of data rather than entire files. As an example, if a certain 1 GB file is changed, a hashed block (for example, 10 MB block) of the changed file is transferred instead of the entire 1 GB file.

プラットフォームは、システム全体に渡ってデータブロックにインデックスを付与するデータストアインデックスを含み、それによってデータを要求しているエージェントに、最も近いポイントからデータブロックを転送することを可能にする。例えば、あるファイルが1つのエージェントからクラウドにアップロード済みであるとすると、要求元のエージェントは、ダウンロードのためにファイルの再アップロードをアップロード元のエージェントに要求する代わりに、ファイルをクラウドから直接ダウンロードする。   The platform includes a data store index that indexes the data blocks throughout the system, thereby allowing the data blocks to be transferred from the nearest point to the agent requesting the data. For example, if a file has been uploaded to the cloud from one agent, the requesting agent downloads the file directly from the cloud instead of requiring the uploading agent to re-upload the file for download .

図10は実施形態に係る、プラットフォームのコネクションタイプを示す図である。ある実施形態のプラットフォームは、2つのコネクションタイプを用いる。第1のコネクションタイプは様々なローカルコンポーネントとオンラインサーバおよびサービスとの間のHTTP/TLSを有する。これは、ウェブブラウザと等価であり、同一マシン上のブラウザと同じファイヤウォールを有する。ある実施形態の第2のコネクションタイプは、ピアツーピア(P2P)プロトコルである。図11は実施形態に係る、プラットフォームのP2Pコネクションタイプを示す図である。プラットフォームは、エージェント間でデータを効率的に移動させるためにP2P通信の長所を利用する。例えば、同一LAN上の2つのエージェントは、クラウドストレージプロバイダを経由する場合よりもずっと効率的に直接データを移動することができる。   FIG. 10 is a diagram illustrating platform connection types according to the embodiment. An embodiment platform uses two connection types. The first connection type has HTTP / TLS between various local components and online servers and services. This is equivalent to a web browser and has the same firewall as the browser on the same machine. The second connection type of an embodiment is a peer to peer (P2P) protocol. FIG. 11 is a diagram illustrating the P2P connection type of the platform according to the embodiment. Platforms take advantage of P2P communication to efficiently move data between agents. For example, two agents on the same LAN can move data directly more efficiently than when going through a cloud storage provider.

ある実施形態のプラットフォームはP2Pを通信するためにUDP(User Datagram Protocol)を用いるが、それに限定されない。サービスからの情報を用いて、エージェントは互いの間にUDPセッションを確立しようと試みるであろう。エージェントが両方とも同一のファイヤウォールの後ろに存在する場合、これはうまくいく。ファイアウォール外のピアに関しては、通信はより複雑である。一部のエンタープライズファイアウォールはこのトラフィックを許可しないであろう。このような場合、プラットフォームはHTTP/TLSを用いてピア間でデータを「中継」するであろう。   A platform of an embodiment uses UDP (User Datagram Protocol) to communicate P2P, but is not limited thereto. Using information from the service, agents will attempt to establish a UDP session between each other. This works if both agents are behind the same firewall. For peers outside the firewall, communication is more complex. Some enterprise firewalls will not allow this traffic. In such cases, the platform will “relay” data between peers using HTTP / TLS.

プラットフォームは協働ファイル転送を実行する。協働ファイル転送では、いずれかの単独のエージェントが独力で実現できるかもしれない速度よりも高速に、大きなファイルをばらばらに移動させるために、複数のエージェントがそれらのアップストリーム帯域をプールすることが可能である。この技術はクラウドストレージ中継およびP2Pデータ転送の両方について用いることができるが、それに限定されない。   The platform performs a collaborative file transfer. In collaborative file transfer, multiple agents pool their upstream bandwidth in order to move large files apart at a rate faster than any single agent might be able to achieve on their own. Is possible. This technique can be used for both cloud storage relay and P2P data transfer, but is not so limited.

ある実施形態のプラットフォームは、順序がばらばらなデータ転送が同時ファイルアップロードおよびダウンロードでサポートされる、非順序的/同時転送を実行する。この方法を用いて、データブロックの転送順序とは無関係に、データの全ブロックが到着するとエージェントでデータが再組立される。   The platform of an embodiment performs out-of-order / simultaneous transfers where out-of-order data transfers are supported with simultaneous file uploads and downloads. Using this method, the data is reassembled at the agent when all blocks of data arrive, regardless of the transfer order of the data blocks.

従前のクラウドサービスのプロバイダは、プラットフォーム内で最小限のデータ可視性しか提供していない。ユーザは自分のファイルにアクセスすることはできるが、情報技術(IT)管理者はシステム内のデータに皆無かそれに近い可視性しか有さない。一部のサービスプロバイダはIT管理者がシステムに渡るファイル名のリストを見ることを許しているが、他のサービスプロバイダはシステム内のファイルに関する詳細を一切提供していない。   Previous cloud service providers offer minimal data visibility within the platform. Users can access their files, but information technology (IT) administrators have little or no visibility into the data in the system. Some service providers allow IT administrators to see a list of file names across the system, while other service providers do not provide any details about the files in the system.

ある実施形態のプラットフォームはシステム内に存在する組織のファイルの完全なリストをIT管理者に提供するだけでなく、各ドキュメントの秘密性(sensitivity)や機密性(confidential)がどの程度であろうかを判定するために各ファイルのコンテンツを解析する。これを達成するため、プラットフォームは、まず個人コンテンツと業務コンテンツとを明確にしたのち、特定された業務データの秘密性を判定する。   The platform of an embodiment not only provides the IT administrator with a complete list of organizational files that exist in the system, but also how sensitive and confidential each document is. Analyze the contents of each file to determine. In order to achieve this, the platform first clarifies personal content and business content, and then determines the confidentiality of the specified business data.

個人コンテンツと業務コンテンツとを明確にするために、エージェントはローカルデータストア中のドキュメントをスキャンし、それらドキュメントからキー用語(key terms)を抽出する。そして、これらのキー用語は、企業固有のキー用語のリストを生成するために、組織全体にわたって比較される。この組織キー用語セットおよび他のユーザ固有(proprietaty)の方法論を用い、プラットフォームはローカルストアにわたって業務および個人データを分離し、IT管理者が企業データの管理に専念できるようにする。   To clarify personal and business content, the agent scans documents in the local data store and extracts key terms from those documents. These key terms are then compared across the organization to generate a list of company specific key terms. Using this organizational key term set and other user-specific methodologies, the platform segregates business and personal data across local stores, allowing IT administrators to focus on managing enterprise data.

業務データの秘密性を判定するため、プラットフォームは特定のキー用語(例えば、「企業秘密」)の存在を探索し、データの特定構文(例えばクレジットカード番号、電子メールアドレス、電話番号など)を解析し、ユーザ固有の他の解析を実行する。この分解により、企業内で最も秘密性の高いコンテンツをIT管理者が特定することを可能にする。ドキュメントの秘密性がメタデータの一部になると、プラットフォームは、データにアクセスしたりデータを共有したりすることができる場所や方法を制限する、特定の制御をIT管理者が制定することを許す。   To determine the confidentiality of business data, the platform searches for the presence of specific key terms (eg, “trade secret”) and analyzes the specific syntax of the data (eg, credit card number, email address, phone number, etc.) And perform other user-specific analysis. This decomposition enables the IT administrator to specify the most confidential content in the company. When document confidentiality becomes part of the metadata, the platform allows IT administrators to establish specific controls that limit where and how data can be accessed and shared. .

自動化されたデータ発見およびコンテンツの分解により、IT管理者が、機密業務コンテンツをエンドユーザによるタグ付けや分類に頼らずに特定し、個人的なファイルまたはクリティカルでない業務上のファイルを精査する必要なしにクリティカルなコンテンツを見つけ、機密コンテンツを保護するための特定の制御を生成することが可能になる。   Automated data discovery and content decomposition eliminates the need for IT managers to identify sensitive business content without relying on end-user tagging or classification to scrutinize personal or non-critical business files It is possible to find critical content and generate specific controls to protect sensitive content.

従前のクラウドサービスプラットフォームでは、各個人のユーザデータが一緒に保存され、かつデータセット全体にわたって重複除外されている(例えば、全ユーザのデータがクラウドサービスプロバイダによって保存されている)。この、混ぜ合わせのアプローチは、ファイルが正しくインデックス付けされていない場合、潜在的なデータリークにつながりうる。   In previous cloud service platforms, each individual user data is stored together and deduplicated across the entire data set (eg, all user data is stored by the cloud service provider). This mixed approach can lead to potential data leaks if the file is not indexed correctly.

ある実施形態のプラットフォームは、アクセス、アプリケーション、インフラストラクチャ、ネットワーク、伝送、およびデータレベルでセキュリティを提供するフレームワークのいたる所で、制御されかつセキュアな方法でデータを管理するように構成される。ここで詳細に記述するように、このアプローチは、各ユーザおよび組織からのデータを「セキュリティサイロ」内で、それ自身のセキュリティ情報の固有セットを用いて管理することを可能にする。   The platform of an embodiment is configured to manage data in a controlled and secure manner throughout the framework that provides security at the access, application, infrastructure, network, transmission, and data levels. As described in detail herein, this approach allows data from each user and organization to be managed within a “security silo” with its own set of security information.

プラットフォームは各組織に、共有ストレージまたはクラウド内のデータを暗号化するために用いられる固有組織暗号鍵を提供する。さらに、データについて算出された全てのハッシュには、組織の固有値がソルトとして付与される。基本的なデータが同一であったとしても、同じハッシュを2つの組織が共有することはない。これにより、プラットフォームが顧客間でデータを重複除外すること、すなわちセキュリティ上の弱点、を回避しつつ、組織レベルでのデータの重複除外を可能とし、記憶容量の節約や不必要なデータ転送の最小化を実現する。権限のないユーザがバックエンドサービスまたはデータストアにアクセスした場合、そのユーザは使用できない暗号化ブロックだけを見ることに制限されるであろう。   The platform provides each organization with a unique organizational encryption key that is used to encrypt data in shared storage or the cloud. Furthermore, an eigenvalue of the organization is given as a salt to all hashes calculated for the data. Even if the basic data is the same, no two organizations share the same hash. This allows the platform to deduplicate data between customers, i.e., security weaknesses, while enabling deduplication of data at the organization level, saving storage space and minimizing unnecessary data transfer. Realize. If an unauthorized user accesses a backend service or data store, the user will be limited to seeing only encrypted blocks that are not available.

プラットフォームは権限のあるパーティ間でのファイル共有を容易にするように構成される。権限のあるエージェントおよびクライアントは、組織のデータにシームレスにアクセスしたり投稿したりすることができる。ユーザレベルではデータは暗号化されていないので、データは組織に属している。新規ユーザが組織に追加される場合、新規ユーザはその組織に関するデータの生成やアクセスに必要な鍵を受け取る。そのユーザが生成したデータは、そのユーザが退職した後も組織内の他のユーザが利用可能である。   The platform is configured to facilitate file sharing between authorized parties. Authorized agents and clients can access and post organization data seamlessly. Since the data is not encrypted at the user level, the data belongs to the organization. When a new user is added to an organization, the new user receives a key necessary for generating and accessing data related to the organization. The data generated by the user can be used by other users in the organization even after the user leaves.

組織の暗号鍵は、アカウントの提供時にプラットフォームによって生成された後、その組織のIT管理者およびユーザからのパスワードを用いて暗号化される。鍵はユーザ又は管理者のパスワード無しではアクセスできず、またこれらのパスワードはプラットフォームに決して保存されない。プラットフォームは、ユーザがアクティブセッションに存在し、かつ自身のクレデンシャルを提供しない限り、顧客データの暗号解除を実行できず、またマスター鍵は存在しない。しかし、プラットフォームは、パスワードが忘れられたアカウントに対して新しいパスワードを適用するために用いることのできる回復鍵(recovery key)を保存する。   The organization's encryption key is generated by the platform when the account is provided and then encrypted using passwords from the organization's IT administrator and user. The key cannot be accessed without a user or administrator password, and these passwords are never stored on the platform. The platform cannot perform decryption of customer data and there is no master key unless the user is in an active session and provides his credentials. However, the platform stores a recovery key that can be used to apply a new password to an account whose password has been forgotten.

デバイスレベルデータはそのローカルファイルシステムに保存され、プラットフォームはローカルデバイスファイルシステムデータを暗号化または符号化しないが、それに限定されない。しかし、デバイスから出るデータやメタデータはどれも、SSL(デバイスからウェブへ)、エンドツーエンド暗号化(デバイスからデバイスへ)、または保存データ暗号化(at-rest encryption)(デバイスからクラウドまたは共有ストレージへ)を用いて暗号化される。   Device level data is stored in its local file system and the platform does not encrypt or encode local device file system data, but is not so limited. However, any data or metadata coming out of the device is SSL (device to web), end-to-end encryption (device to device), or at-rest encryption (device to cloud or shared) To storage).

ある実施形態において、デバイス上の各エージェントは2つの2048ビットRSA公開/秘密鍵ペアを有している。一方はエンドツーエンド暗号化を確保するために用いられ、もう一方はメッセージに署名したりメッセージソースを認証するために用いられる。これらの鍵はプラットフォームによって予め生成されかつ割り当てられるが、一旦割り当てられるとクラウドには保存されない。鍵および証明書はオペレーティングシステムが提供するセキュアキーストアに常に保存される。従前のP2Pとは異なり、プラットフォーム内には「匿名ピア」は存在しない。エージェント間のどのコネクションも、エージェント間で最も効率的なパスであると中央クラウドが判定したことの結果として発生する。データ転送の転送元(source)と転送先(destination)のIDはコネクションの前に分かっており、かつそれぞれのエージェントによって別々に検証される。エージェントはそれらが予期していないコネクションを受け入れることができない。   In one embodiment, each agent on the device has two 2048 bit RSA public / private key pairs. One is used to ensure end-to-end encryption and the other is used to sign messages and authenticate message sources. These keys are pre-generated and assigned by the platform, but once assigned, they are not stored in the cloud. Keys and certificates are always stored in a secure key store provided by the operating system. Unlike previous P2P, there is no “anonymous peer” in the platform. Any connection between agents occurs as a result of the central cloud determining that it is the most efficient path between agents. The ID of the source and destination of the data transfer is known before the connection and is verified separately by each agent. Agents cannot accept connections they do not expect.

データ交換のためにエージェントが互いに結合または接続する際、エージェントはエージェント間で送信される全データのエンドツーエンド暗号化を提供するために公開鍵暗号方式を用いる。プラットフォームは全エージェント用の公開鍵を保持しており、全てのP2P要求の両エンドに公開鍵を与える。プラットフォームは秘密鍵を保持せず、秘密鍵はエージェントレベルでのみ保持されるが、そのような実施形態に限定されない。エージェントは、政府機関で使用されているAES−256アルゴリズムを用いてピア間のデータを暗号化するために用いる対称暗号鍵を確立するために、これらの秘密鍵を用いる。これにより、権限をもたないユーザがピア間のメッセージのコンテンツを解読不能であることを確実にする。エージェント間のセッションは一時的なもので、それらが失効すると新たなコネクションを設定しなければならず、新しい鍵の交換が必要となる。   When agents join or connect to each other for data exchange, they use public key cryptography to provide end-to-end encryption of all data transmitted between agents. The platform holds public keys for all agents and gives public keys to both ends of all P2P requests. The platform does not hold a secret key and the secret key is only held at the agent level, but is not limited to such an embodiment. The agent uses these secret keys to establish symmetric encryption keys that are used to encrypt data between peers using the AES-256 algorithm used in government agencies. This ensures that unauthorized users cannot decrypt the content of messages between peers. Sessions between agents are temporary, and if they expire, a new connection must be established and a new key exchange is required.

SSLはウェブサーバとの間のセキュアな通信のための標準として広く受け入れられている。クライアントまたはブラウザは、プラットフォームに接続されている限り、トラフィックをセキュアにするためにSSLを用いる。メタデータおよびエージェント命令もまた同じ方法でセキュアにされる。   SSL is widely accepted as a standard for secure communication with web servers. As long as the client or browser is connected to the platform, it uses SSL to secure the traffic. Metadata and agent instructions are also secured in the same way.

プラットフォームは、クラウドまたは共有ストレージデバイスに保存されている全データが暗号化されていることを保証する。エージェントはデータを保存するように求められると、そのデータを暗号化するために組織暗号鍵を用いる。この方法で保存されたデータは、権限のあるエージェントのみが暗号解除できる。保存データ(at-rest data)もまたAES−256アルゴリズムを用いて暗号化される。   The platform ensures that all data stored in the cloud or shared storage device is encrypted. When an agent is asked to save data, it uses an organizational encryption key to encrypt the data. Data stored in this way can only be decrypted by authorized agents. At-rest data is also encrypted using the AES-256 algorithm.

ある実施形態におけるデータおよびメタデータの分離は、コストを最小化しながら、さらなるセキュリティおよび完全な制御を提供する。全てのデータはその顧客に固有の鍵を用いてハッシュならびに暗号化され、メタデータはデータとは別に保存される。   The separation of data and metadata in certain embodiments provides additional security and complete control while minimizing costs. All data is hashed and encrypted using the customer's unique key, and metadata is stored separately from the data.

プラットフォームは、クリティカルな業務データをモバイルデバイス、デスクトップおよびウェブにわたってアクセス、更新および共有するための簡単な方法を提供する。ユーザはiOSおよびアンドロイドのスマートフォンおよびタブレット、ウィンドウズ(登録商標)およびアップルコンピュータ、およびウェブブラウザにわたってファイルにアクセスできる。1つのデバイスで変更されたファイルは、他の全ての認証済みかつ接続中のデバイスに自動的に同期される。ユーザはまた、同僚や組織外の個人と、双方向共有フォルダまたは一方向ウェブリンクを通じてファイルを共有することができる。   The platform provides an easy way to access, update and share critical business data across mobile devices, desktops and the web. Users can access files across iOS and Android smartphones and tablets, Windows and Apple computers, and web browsers. Files modified on one device are automatically synchronized to all other authenticated and connected devices. Users can also share files with colleagues and individuals outside the organization through interactive shared folders or one-way web links.

より具体的には、ある実施形態のプラットフォームは、データ、アプリケーションおよびオペレーティングシステムを様々な環境(例えばデスクトップ、モバイルデバイス、サーバ、クラウドサービスなど)にわたって保護するバックアップおよび回復を提供する。これによりユーザがインストールされたバックアップアプリケーションを監視し、鍵バックアップメトリックを管理コードに統合することを可能にするとともに、機密ファイルが危険にさらされていることをユーザにアラートすることを可能にする。   More specifically, the platform of an embodiment provides backup and recovery that protects data, applications and operating systems across various environments (eg, desktops, mobile devices, servers, cloud services, etc.). This allows the user to monitor installed backup applications, integrate key backup metrics into management code, and alert the user that sensitive files are at risk.

プラットフォームは機密ドキュメントが全てバックアップ計画に含まれていることを保証するとともに、それらのドキュメントが現在バックアップされていることを検証する。ある期間内に保護されていない機密ドキュメントがあれば管理者にアラートがなされるとともに、組織中の機密ドキュメントの場所を特定する。プラットフォームはさらに、バックアップに失敗した場合には代替場所から復元し、複数のユーザにまたがる複製またはバックアップ場所の二重化により、機密ドキュメントが複数の場所にバックアップされていることを保証する。ファイルのバックアップは特定のリテンションポリシに従って削除され、機密ドキュメントがオフサイトのよりセキュアな保存場所にバックアップされることを保証する。さらに、プラットフォームはバックアップ動作の遠隔設定およびデプロイが可能なバックアップサービスを提供する。   The platform ensures that all sensitive documents are included in the backup plan and verifies that those documents are currently backed up. Administrators are alerted to any confidential documents that are not protected within a period of time, and the location of the confidential documents in the organization is identified. The platform further restores from alternate locations if backup fails, and ensures that confidential documents are backed up to multiple locations by duplication or duplication of backup locations across multiple users. File backups are deleted according to a specific retention policy, ensuring that confidential documents are backed up to a more secure off-site storage location. In addition, the platform provides a backup service that allows remote configuration and deployment of backup operations.

プラットフォームによって提供されるバックアップおよび回復は、デスクトップ、サーバ、共有ストレージ、モバイルデバイスおよびオンラインストレージ(これらは例示である)のファイルソースバックアップを含む。バックアップおよび回復動作に関与するファイルタイプは、データファイル(例えばドキュメント、ビデオ、音楽、画像など)およびアプリケーション固有ファイル(例えばアウトルック、PST、MSエクスチェンジ、データベースなど)を含む。ファイル選択はバックアップするファイルを、ファイルタイプおよび/またはフォルダ場所に基づいて選択するか、あるいはドライブまたはコンピュータシステム全体(例えばシステムイメージ)のバックアップを実行する。ファイルストレージは選択されたファイルを外部ハードドライブ、NASまたはオンラインに保存するか、冗長化のために複数の場所を選ぶ。自動化またはスケジュールされたバックアップは、ストレージデバイスが検出された全ての場所に、新しいファイルまたは変更されたファイルをバックアップに自動的に追加するとともに、スケジュールに基づいてバックアップをスケジュールする。   Backup and recovery provided by the platform includes file source backups of desktops, servers, shared storage, mobile devices and online storage (these are examples). File types involved in backup and recovery operations include data files (eg, documents, videos, music, images, etc.) and application specific files (eg, Outlook, PST, MS exchange, database, etc.). File selection selects the files to back up based on file type and / or folder location, or performs a backup of the entire drive or computer system (eg, system image). File storage stores selected files on an external hard drive, NAS or online, or chooses multiple locations for redundancy. Automated or scheduled backup automatically adds new or modified files to the backup everywhere the storage device is detected and schedules the backup based on the schedule.

ある実施形態のファイル回復は、コンピュータがクラッシュした場合やファイルが不注意に削除された場合に、選択されたファイルを簡単に復元するか、全てのファイルを完全に復元するように構成される。データ損失防止は、使用中(例えばエンドポイントアクション)、移動中(例えばネットワークトラフィック)、および保存中(例えばデータストレージ)にデータを監視することにより、データ損失を防止する。ファイルレベルのDLPソフトウェアは機密ファイルを特定したのち、情報セキュリティポリシをファイル内に埋め込む。プラットフォームのエニイタイム(anytime)、エニイホエア(anywhere)アクセスは、ユーザ端末を通じてオンラインでいつでも全てのファイルおよびフォルダに対するアクセスを提供する。バージョンヒストリはファイルの過去バージョンを保存し、ユーザがそれらのバージョンに戻すことを可能にする。削除されたファイルは、削除が偶発的である場合にユーザが削除されたファイルを復元できるよう、ある期間保存される。ファイルシステムおよび非構造化コンテンツは、コストを削減しリスクを軽減するための企業ポリシに基づいて達成される。   The file recovery of an embodiment is configured to easily restore a selected file or restore all files completely if a computer crashes or a file is inadvertently deleted. Data loss prevention prevents data loss by monitoring data in use (eg, endpoint actions), moving (eg, network traffic), and stored (eg, data storage). The file level DLP software identifies a confidential file and then embeds an information security policy in the file. Platform anytime, anywhere access provides access to all files and folders at any time online through the user terminal. Version history saves past versions of a file and allows the user to revert to those versions. The deleted file is stored for a period of time so that if the deletion is accidental, the user can restore the deleted file. File systems and unstructured content are achieved based on corporate policies to reduce costs and mitigate risk.

ある実施形態のプラットフォームは、ユーザが様々な環境(例えばコンピュータ、モバイルデバイス、サーバ、クラウドサービスなど)およびウェブにわたってファイルおよび他のコンテンツをアクセスしたり共有したりすることを可能にするファイル共有およびアクセスを提供する。ファイルは双方向フォルダ共有およびウェブリンク共有によって共有することが可能で、鍵メトリクスおよびコントロールは管理端末に統合することができる。   Certain embodiments of the platform provide file sharing and access that allows users to access and share files and other content across various environments (eg, computers, mobile devices, servers, cloud services, etc.) and the web. I will provide a. Files can be shared via interactive folder sharing and web link sharing, and key metrics and controls can be integrated into the management terminal.

プラットフォームは所定のユーザ、グループ、または社外との共有を防止することにより、機密ドキュメントを制限または制御する。機密ドキュメントはプラットフォームを通じてアクセスしたりおよび/またはモバイルデバイスにダウンロードしたりすることはできず、制御を維持するためにオンライン閲覧だけが許可される。そして、ドキュメントダウンロードは、接続されなくなると消去される一時的なコピーに限定される。ファイルはプラットフォーム関連フォルダ外や外部のストレージデバイスまたは場所にはコピーできない。   The platform limits or controls sensitive documents by preventing sharing with a given user, group, or outside the company. Sensitive documents cannot be accessed through the platform and / or downloaded to the mobile device, and only online viewing is allowed to maintain control. And document download is limited to temporary copies that are erased when they are no longer connected. Files cannot be copied to platform-related folders or to external storage devices or locations.

さらに、ファイルを添付ファイルとして電子メールすること、テキスト電子メッセージングを通じて送信すること、またはソーシャルメディアにアップロードすることはできない。ある実施形態は1度限りの要求を許可するための例外処理を含む。ドキュメントの場所、ドキュメントに誰がアクセス可能かや、修正およびアクセス履歴に関する詳細な報告もまた利用可能である。   Furthermore, the file cannot be emailed as an attachment, sent through text electronic messaging, or uploaded to social media. Some embodiments include exception handling to allow a one-time request. Detailed reports on the location of the document, who has access to the document, revisions and access history are also available.

実施形態のプラットフォームのファイル共有およびアクセスは、複数のデバイスおよびシステムにまたがったファイルの生成、管理、編集および保存を行うコンテンツ管理を提供する。ある実施形態の同期は、任意のデバイスからファイルを利用できるようにするために、複数のデバイスにまたがって同期するファイルを選択する。変更もまた自動的に同期される。エニイタイム、エニイホエアアクセスは、任意のデバイス(例えばデスクトップ、ラップトップ、電話機、タブレット、オンラインなど)から任意のファイルへのアクセスを可能にする。共有フォルダは、内部もしくは場合により外部のユーザがフォルダ内に含まれるファイルを見たり編集したりすることや、変更を全ユーザに同期させたりすることが可能なフォルダへのアクセスを提供する。より細かなパーミッションが含まれる(例えばマネージャ、編集者、閲覧者など)が、実施形態はそれに限定されない。   The file sharing and access of the platform of the embodiment provides content management that creates, manages, edits and stores files across multiple devices and systems. The synchronization of an embodiment selects files to be synchronized across multiple devices in order to make the files available from any device. Changes are also automatically synchronized. Anytime, anywhere access allows access to any file from any device (eg, desktop, laptop, phone, tablet, online, etc.). A shared folder provides access to a folder that allows an internal or possibly external user to view and edit files contained within the folder and to synchronize changes with all users. Finer permissions are included (eg, manager, editor, viewer, etc.), but embodiments are not so limited.

プラットフォームは非ユーザを含む誰からでもアクセス可能なリンクによってファイルを共有することを可能にする公開リンクを含む。編集を防止するためにファイルは読み出し専用だが、ユーザはファイルを閲覧することが可能で、ダウンロードは場合によって制限される。外部ドキュメント管理およびセキュリティは、印刷や編集できないようにファイルをロックすることにより、ファイルが外部から共有された後にファイルに起こることを制御する。共同検査は、コンテンツ共有およびファイルダウンロードアクティビティのより良いビューを与えるための、網羅的な検査および追跡ツールを提供する。ユーザは関連ファイルをダウンロードしていないのが誰かを見ることができる。大容量ファイル送信は、公開リンクの共有のような、大容量のファイルをオンラインで送信するための、電子メールに代わる方法を提供する。電子メール統合は、ユーザがファイルを右クリックするか、電子メールオプションを選択することによって、どのデバイスからでも、どのファイルでも直接電子メールすることを可能にする。モバイルプレビューはユーザが任意のモバイルデバイスで、任意のファイルを閲覧することを可能にする。モバイルドキュメント編集は、モバイルデバイスでファイルを編集する能力を提供する。モバイルプリントは、デフォルトリモートプリンタを指定することで、ユーザが任意のモバイルデバイスで任意のファイルを印刷することを可能にする。   The platform includes public links that allow files to be shared by links accessible to anyone, including non-users. The file is read-only to prevent editing, but the user can view the file and download is limited in some cases. External document management and security controls what happens to a file after it has been shared externally by locking the file so that it cannot be printed or edited. Collaborative inspection provides an exhaustive inspection and tracking tool to give a better view of content sharing and file download activity. The user can see who has not downloaded the associated file. Large file transmission provides an alternative to e-mail for transmitting large files online, such as sharing public links. Email integration allows a user to email any file directly from any device by right clicking on the file or selecting an email option. Mobile preview allows the user to view any file on any mobile device. Mobile document editing provides the ability to edit files on mobile devices. Mobile printing allows a user to print any file on any mobile device by specifying a default remote printer.

モバイルスキャンは複数のデバイスにわたってアクセスするために、ユーザが画像または紙ドキュメントをモバイルデバイスからスキャンすることを可能にする。検疫システムは、感染したファイルをホスティングシステムから隔離するためにアンチウイルス能力を用いる。規制コンプライアンスは、いくつか例を挙げると、SOX, HIPPA, PII, PCI, FINRA, FDIC, SAS70, Basel II, Dodd-Frank,およびFCPAに準拠した対策を講じる。   Mobile scanning allows a user to scan an image or paper document from a mobile device for access across multiple devices. The quarantine system uses antivirus capabilities to isolate infected files from the hosting system. Regulatory compliance will take measures in compliance with SOX, HIPPA, PII, PCI, FINRA, FDIC, SAS70, Basel II, Dodd-Frank, and FCPA, to name a few examples.

ある実施形態のプラットフォームは、様々な環境(例えばデスクトップ、モバイルデバイス、サーバ、クラウドサービスなど)にまたがった、ドキュメント(例えばワードプロセッシング、スプレッドシート、プレゼンテーション、プロジェクト計画など)の同時編集を含む、共同制作環境を提供する。共有ドキュメントが使用中であることのアラート、変更されたドキュメントの通知、および修正およびアクセス履歴が利用可能である。そのため、プラットフォームは、あるドキュメントが使用中であれば衝突を防止するためにユーザに通知し、ドキュメントが使用中であればユーザをロックアウトし、共有フォルダ又はファイルのコンテンツについて誰かが編集したり追加したりするとアラートを送信し、また、解放されたドキュメントをユーザに通知する。プラットフォームは同時編集を通じてのみオンライン共同制作を行わせ、修正調停およびマージツール、修正およびアクセス履歴、チェックイン/チェックアウトシステム、およびオフライン統合を提供する。   The platform of an embodiment includes collaborative production, including simultaneous editing of documents (eg, word processing, spreadsheets, presentations, project plans, etc.) across various environments (eg, desktops, mobile devices, servers, cloud services, etc.) Provide an environment. Alerts that shared documents are in use, notifications of changed documents, and modification and access history are available. Therefore, the platform notifies the user to prevent a conflict if a document is in use, locks out the user if the document is in use, and someone edits or adds to the contents of a shared folder or file Or send an alert and notify the user of the released document. The platform allows online collaboration only through simultaneous editing and provides a correction mediation and merging tool, correction and access history, check-in / check-out system, and offline integration.

ある実施形態の共同制作環境は、多くの重要な機能を提供する。複数人が同一ファイルを見たり編集したりできる。パーミッションは、同一ファイルを編集するための粒度の異なる共有権限を複数人に与える(例えば管理者、編集者、閲覧者)。共同検査(collaboration auditing)機能は、コンテンツ共有およびファイルダウンロードアクティビティのより良いビューを与えるための、網羅的な検査および追跡ツールを提供する。ユーザは関連ファイルを誰がダウンロードし、また誰がダウンロードしていないのかを見ることができる。   An embodiment collaborative environment provides many important functions. Multiple people can view and edit the same file. The permission gives a plurality of sharing authorities with different granularities for editing the same file (for example, an administrator, an editor, a viewer). The collaboration auditing feature provides an exhaustive inspection and tracking tool to give a better view of content sharing and file download activity. The user can see who downloaded the relevant file and who did not download it.

アクティビティ履歴機能は、ファイル変更がいつ誰によってなされたかといった、全てのファイルアクティビティを追跡する。電子メール通知機能は共有フォルダまたはファイルについて、誰かが編集したりコンテンツを追加したりすると、アラートを送信する。コメント機能は、フィードバックを追加したり変更をディスカッションするための、ファイルおよび/またはディスカッションエリアへのコメントを可能にする。注釈機能は、既存のファイルに共同制作やディスカッションを目的とした注釈を追加する。業務目的管理機能はより効率的に、より効果的に、かつより優れた変更能力となるように、情報テクノロジを利用した業務処理の自動化を提供する。これは、ワークフローまたはタスク管理のような項目を含む。   The activity history function tracks all file activity, such as when and when a file change was made. The email notification feature sends an alert when someone edits or adds content to a shared folder or file. The comment feature allows comments on files and / or discussion areas to add feedback and discuss changes. The annotation function adds annotations for collaborative production and discussion to existing files. The business purpose management function provides automation of business processing using information technology so that it can be changed more efficiently, more effectively, and better. This includes items such as workflow or task management.

ワークフロー/タスク管理はプレビュープロセスの一部としてタスクおよびデッドラインを割り当て、更新、レビューおよび承認をIRAするためのファイル固有タスクを割り当てる。プロジェクト管理はゴールを、最終的なゴールに向かって進行するための個々のデッドラインを有するマイルストーンに分解し、様々なマイルストーンに基づいてタスクを割り当てる。オンラインドキュメント編集機能は、様々なファイルタイプについて、それらをユーザのローカルコンピュータにまずダウンロードすることを必要とせずにオンラインで編集する。モバイルドキュメント編集機能は、モバイルデバイスでファイルを編集する。   Workflow / task management assigns tasks and deadlines as part of the preview process and assigns file specific tasks for IRA update, review and approval. Project management breaks down goals into milestones with individual deadlines to progress towards the final goal and assign tasks based on the various milestones. The online document editing function edits various file types online without having to first download them to the user's local computer. The mobile document editing function edits a file on a mobile device.

モバイルプレビュー機能は、任意のモバイルデバイスで任意のファイルを見るための能力を提供する。モバイルプリント機能は、デフォルトリモートプリンタを指定することで、任意のモバイルデバイスで任意のファイルを印刷する。モバイルスキャン機能は、複数のデバイスにわたってアクセスするために、画像または紙ドキュメントをモバイルデバイスからスキャンする。この機能は、紙ドキュメントを出先でデジタイズする。   The mobile preview feature provides the ability to view any file on any mobile device. The mobile print function prints an arbitrary file on an arbitrary mobile device by designating a default remote printer. The mobile scan function scans an image or paper document from a mobile device for access across multiple devices. This feature digitizes paper documents on the go.

ある実施形態のプラットフォームは、ユーザ権限、ドキュメントの利用可能性、およびドキュメントの状態に基づいてドキュメントへのアクセスを制御する、ドキュメント管理を提供する。ある実施形態のドキュメント管理は、ワークフローを維持し、ドキュメントに関するバージョニングおよびオーディットトレールを可能にし、またドキュメントに関するセキュリティ要件を実行するために、サードパーティアプリケーション(例えばオフィス)と統合する。そのためプラットフォームはユーザが業務ファイルにインデックスを付与したり、追跡したり、カタログを作ったり、またファイルの機密性を分類したりすることを可能にし、限定された権限管理が個人またはグループに対してファイルアクセスを与える。   The platform of an embodiment provides document management that controls access to documents based on user rights, document availability, and document status. Certain embodiments of document management integrate with third-party applications (eg, offices) to maintain workflow, enable versioning and audit trails for documents, and to enforce security requirements for documents. The platform therefore allows users to index, track, catalog, and classify file confidentiality, with limited rights management for individuals or groups. Give file access.

プラットフォームはユーザにファイルに対する権限を割り当て(例えば管理者、編集者、閲覧者)、機密ドキュメントを様々な方法で制限する。ファイルは所定のユーザについて変更不能で読み取り専用であり、破壊しないような要求が無い限り、ある期間が経過すると破壊され、画像キャプチャソフトウェアでのキャプチャもできない。ドキュメントのコンテンツがコピーされたり別のドキュメントにペーストされたりできないように(例えば読み取り専用に)するため、配布前にファイルフォーマットは(例えばPDFなどに)変換される。さらに、ファイルは企業サーバにのみ保存可能であり、従ってパブリッククラウドには保存できない。そして、ファイルおよびファイル派生物(derivative)は1以上のストレージデバイスにわたって追跡される。プラットフォームはまた、ファイルおよび非ファイルベースコンテンツ(例えばウィキ、エバーノート、ソーシャルメディアなど)を含み、1度限りの要求を許可する例外処理が存在する。プラットフォームはドキュメントの場所、誰がドキュメントにアクセス可能か、および誰がドキュメントを実際に閲覧したかに関する詳細な報告や、どのデバイスがどの場所でに関する詳細な報告を提供する。修正およびアクセス履歴もまたプラットフォームを通じて入手可能である。   The platform assigns users rights to files (eg, administrators, editors, viewers) and restricts confidential documents in various ways. The file cannot be changed for a given user and is read-only. Unless there is a request not to be destroyed, the file is destroyed after a certain period of time and cannot be captured by image capture software. The file format is converted (eg, to PDF) before distribution so that the document content cannot be copied or pasted into another document (eg, read-only). Furthermore, the file can only be stored on the corporate server and therefore cannot be stored on the public cloud. Files and file derivatives are then tracked across one or more storage devices. The platform also includes files and non-file based content (eg, Wiki, Evernote, social media, etc.), and there is exception handling that allows one-off requests. The platform provides a detailed report on the location of the document, who has access to the document, and who actually viewed the document, and a detailed report on which device is in which location. Modifications and access history are also available through the platform.

プラットフォームは業務情報の特定を利用して、機密保存ファイルを見つける。プラットフォームはキーワードを抽出し、抽出した用語を組織の全域で比較する。プラットフォームは、ドキュメント名、ドキュメントサイズ、プロキシミティ(例えばフォルダ内の90%が業務ドキュメントであれば、100%が業務ドキュメントとみなす)、キーワード比較、およびハッシュ比較(これらは例の一部である)の1つ以上を用いて、複数のソースにわたって業務ドキュメントを特定することができる。   The platform uses business information identification to find confidential files. The platform extracts keywords and compares the extracted terms across the organization. The platform includes document name, document size, proximity (eg, 90% of a folder is a business document, 100% is considered a business document), keyword comparison, and hash comparison (these are part of the example) One or more of can be used to identify business documents across multiple sources.

プラットフォームはまた、機密データを分類する。マークされたドキュメントは、機密性を有するものとして手動でタグ付けされる。選択されるキー用語の例は、「企業秘密」、「損益計算書」、「パートナーパイプライン」、「パスワード」、および「クレジットカード」を含む。「秘密」とマークされたドキュメントに最も関連が高いキー用語が、後天的なキー用語(learned key terms)である。プラットフォームは検出されたコンテンツ(例えば企業名の5例など)に基づいて推論を行う。プラットフォームはさらに、構文(例えば”###-##-####”, ”3767-######-#####”, aaaaaaaa@aaa.com, ”###-###-####”)に基づいてデータを分類する。プラットフォームは、誰が所有者か、どこにファイルがあるか、どのパーミッションか、誰がアクセス可能か、といったドキュメントの属性を記録する。   The platform also classifies sensitive data. The marked document is manually tagged as confidential. Examples of selected key terms include “trade secret”, “income statement”, “partner pipeline”, “password”, and “credit card”. The key term that is most relevant to documents that are marked "secret" is the learned key terms. The platform performs inference based on the detected content (for example, five examples of company names). The platform also has syntax (eg “###-##-####”, “3767-######-#####”, aaaaaaaa@aaa.com, “###-# ##-#### ”) to classify the data. The platform records document attributes such as who owns it, where it is located, what permissions it is, and who can access it.

プラットフォームはさらに、知的財産、顧客情報、従業員情報、販売情報、マーケティング情報、会計情報を含む機密データを分類する。例えば、知的財産は独自工学設計、科学的な式、ソースコード、トレードシークレット、および新規な(公知でない)製品情報を含む。顧客情報は氏名、電子メールアドレス、顧客パスワード、電話番号、社会保障番号、住所、クレジットカード番号(下4桁)、および誕生日を含む。従業員情報は社会保障番号、誕生日および住所を含む。販売およびマーケティング情報は顧客リスト、見積もり、マーケティングおよび販売計画、材料コストおよび利益マージン、プロジェクト計画および支出計画を含む。会計情報は会計記録および戦略的事業計画を含む。   The platform further classifies sensitive data including intellectual property, customer information, employee information, sales information, marketing information, and accounting information. For example, intellectual property includes proprietary engineering designs, scientific formulas, source code, trade secrets, and new (unknown) product information. Customer information includes name, email address, customer password, phone number, social security number, address, credit card number (last 4 digits), and birthday. Employee information includes social security number, date of birth and address. Sales and marketing information includes customer lists, quotes, marketing and sales plans, material costs and profit margins, project plans and spending plans. Accounting information includes accounting records and strategic business plans.

プラットフォームに含まれるドキュメント管理は、履歴(tracks)の探索/インデックス付けおよび、固有ドキュメント識別子、メタデータまたは、そのドキュメントのコンテンツから抽出されたスルーワードインデックスをインデックス付けすることによる電子ドキュメントの探索および取得を含む。権限管理は管理者がタイプに基づいて所定の人物または人物のグループだけにドキュメントへのアクセスを与えることを可能にする。   The document management included in the platform is the search / indexing of tracks and the search and retrieval of electronic documents by indexing unique document identifiers, metadata or throughword indexes extracted from the content of the document including. Authority management allows an administrator to give access to a document only to a given person or group of persons based on type.

プラットフォームが提供する共同制作は、ドキュメントが認可ユーザによって取得並びに変更もしくは編集されることを可能にする。共同制作セッションでは1つのドキュメントを複数のユーザが同時に閲覧および変更可能であり、プラットフォームは、共同制作セッション中に個々のユーザによって行われたマークアップを保存する。しかし、ドキュメントがあるユーザによって修正もしくは変更中である間、他のユーザはブロックされるべきである。プラットフォームはまた、ドキュメントの可用性について警報及び通知を送信するが、そのような形態に限定されない。   The collaboration provided by the platform allows documents to be acquired and modified or edited by authorized users. In a collaborative session, a single document can be viewed and modified by multiple users simultaneously, and the platform stores markup made by individual users during the collaborative session. However, other users should be blocked while the document is being modified or changed by one user. The platform also sends alerts and notifications about document availability, but is not limited to such forms.

ある実施形態のプラットフォームのバージョニングはドキュメントの過去バージョンを取得し、選択された時点からユーザが作業を継続することを可能にする。サードパーティ統合機能はユーザが既存のドキュメントをドキュメント管理システムレポジトリから直接取得し、変更を加え、変更されたドキュメントを新しいバージョンとしてレポジトリに戻すことができるように、サードパーティアプリケーションを統合する。プラットフォームを通じたドキュメントの公開および配布は、校正、ピアまたはパブリックレビュー、認可、印刷および承認を含む。セキュリティは所定のドキュメントに対するコンプライアンス要件を含み、ドキュメントのタイプ(SOX, HIPPA, PII, PCI, FINRA, FDIC, SAS70, Basel II, Dodd-Frank, FCPAなど)によって、比較的複雑になりうる。プラットフォームは印刷、コピーおよび転送の制御のような細かな機能や、ドキュメントにすかしを入れたりドキュメントのデータ消去(wipe)のための能力を含む。ワークフローは、スケジューリング、チェックリスト、レビューノート管理などのような予定管理機能を用いて個々のドキュメントまたはバインダの自動ルーティングを提供する。外部ドキュメント管理およびセキュリティ機能は、ファイルがどのように共有されるかを制御するとともに、他のモジュールおよびサードパーティシステムと統合する。   The platform versioning of an embodiment obtains past versions of a document and allows the user to continue working from a selected point in time. The third-party integration feature integrates the third-party application so that the user can retrieve existing documents directly from the document management system repository, make changes, and return the changed documents to the repository as a new version. Publication and distribution of documents through the platform includes proofreading, peer or public review, authorization, printing and approval. Security includes compliance requirements for a given document and can be relatively complex depending on the type of document (SOX, HIPPA, PII, PCI, FINRA, FDIC, SAS70, Basel II, Dodd-Frank, FCPA, etc.). The platform includes fine-grained functions such as printing, copying and transfer control, and the ability to add watermarks to documents and wipe documents. The workflow provides automatic routing of individual documents or binders using schedule management functions such as scheduling, checklists, review note management, and the like. External document management and security functions control how files are shared and integrate with other modules and third-party systems.

ある実施形態のプラットフォームはデータインテリジェンスおよび情報ガバナンスを提供し、デスクトップ、モバイルデバイス、ローカルストレージ、ネットワークストレージおよびクラウドサービスにわたってデータ(例えばドキュメント、エバーノート、ウィキなど)を特定する。このデータインテリジェンスおよび情報ガバナンスは、業務データの管理、リテンションおよび廃棄に関して、より多くの情報に基づく決定を生成し、コンプライアンス違反を特定し、インフラストラクチャ計画を決定する。プラットフォームは業務データの場所、所有者および使用法分析を調べ、限定的な情報コンプライアンス(レコードリテンションなど)および限定的な情報ガバナンス(例えばSS番号、クレジットカードなど)を含む。   The platform of an embodiment provides data intelligence and information governance and identifies data (eg, documents, evernotes, wikis, etc.) across desktop, mobile devices, local storage, network storage and cloud services. This data intelligence and information governance generates more information-based decisions regarding the management, retention and disposal of business data, identifies compliance violations, and determines infrastructure plans. The platform examines business data location, ownership and usage analysis and includes limited information compliance (such as record retention) and limited information governance (such as SS numbers, credit cards, etc.).

プラットフォームはユーザが機密ファイルの全ての場所を調べ、データに関する所定の情報を理解することを可能にする。ユーザはさらに、セキュアでない任意の場所(例えばモバイルデバイス、パブリッククラウド、自宅コンピュータ)からファイルを削除することもできる。レコードリテンション、防御的削除およびコンプライアンス施行のために、ポリシ選択をファイルメタデータ(例えばリテンション、期限切れ、アクセスなど)に適用してもよい。ファイル名、ドキュメントキー用語、またはフルテキストサーチを用いて、全てのデータソースにわたってフルドキュメントサーチを実行することができる。   The platform allows the user to go through all of the sensitive files and understand certain information about the data. Users can also delete files from any location that is not secure (eg, mobile devices, public clouds, home computers). Policy selection may be applied to file metadata (eg, retention, expiration, access, etc.) for record retention, defensive deletion, and compliance enforcement. A full document search can be performed across all data sources using file names, document key terms, or full text search.

プラットフォームのデータインテリジェンスおよび情報ガバナンスは、どれくらいの量のデータがユーザに属しているか、どこにデータが配置されているか、データの所有者は誰か、データがどこにあったか、データの古さ、およびユーザの業務に関連するデータ量はどれくらいか、を求める、ディメンジョナルマップおよび、業務分析またはルールを含む。プラットフォームはそれがどこでホストされていても、ファイル分類を提供することによってコンテンツに関する可視性を向上させ、コンテンツでサーチし、コンプライアンスおよび規制違反を発見し、また古くなった非業務関連データを発見する。情報系図は、セキュリティ関連のレコードの時系列セットおよび、一連のアクティビティを提供するレコードのデスティネーションおよびソースを提供する。プラットフォームは全ファイルの関係および配置場所を追跡し、情報ガバナンスはレコードリテンション、防御的削除およびコンプライアンス施行を含むポリシ管理を提供するとともに、アカウント番号、社会保障番号、クレジットカード番号、トレードシークレット、会計記録、戦略的事業計画およびIP/ソースコードといった業務上重要な情報資産を保護する。危険にさらされている機密データが見つかると、自動化されたポリシはそのファイルのセキュリティ属性を変更し、データを企業内のよりセキュアなシステムに移動させるか、リスク項目を削除することができる。   The platform's data intelligence and information governance determines how much data belongs to the user, where the data is located, who owns the data, where the data was, the age of the data, and the user's work Dimensional maps and business analysis or rules to find out how much data is associated with. The platform improves file visibility by providing file classifications wherever it is hosted, searches the content, discovers compliance and regulatory violations, and discovers stale non-business related data . The information tree provides a time series set of security-related records and a destination and source of records that provide a series of activities. The platform tracks the relationship and location of all files, information governance provides policy management including record retention, defensive deletion and compliance enforcement, as well as account numbers, social security numbers, credit card numbers, trade secrets, accounting records Protect business critical information assets such as strategic business plans and IP / source code. Once sensitive data at risk is found, the automated policy can change the security attributes of the file and move the data to a more secure system in the enterprise or delete the risk item.

プラットフォームが実施するレコード管理は、事前対策的かつ継続的なレコードリテンションおよび廃棄戦略を実施並びに自動化する。ファイル共有クリーンアップはユーザの環境を理解することにより、ユーザが業務データスプロールの制御を達成できるようにする。プラットフォームはデータを分類し、データ属性を更新し、パーミッションを割り当てる。インテリジェントe−ディスカバリはリーガルホールド通知、真の訴訟案件の早期評価査定、および情報収集を提供する。プラットフォームのデータ削除およびクリーンアップは、非業務データを特定するためにデータトポロジマップおよび分類を活用し、ストレージ/データ移行、e-ディスカバリ、レコード管理、またはコンプライアンス要件(compliance mandates)のような情報管理イニシアチブに先立って防御的データクリーンアップを実行する。ストレージ最適化は既存のストレージリソースの利用を最適化してストレージコストを削減するとともに、将来のストレージニーズについて監視および計画するためにデータトポロジマップおよび分類を活用する。   The record management implemented by the platform implements and automates proactive and ongoing record retention and disposal strategies. File share cleanup allows users to achieve control of business data sprawl by understanding the user's environment. The platform classifies data, updates data attributes, and assigns permissions. Intelligent e-Discovery provides legal hold notification, early assessment of true litigation cases, and information gathering. Platform data removal and cleanup leverages data topology maps and classifications to identify non-business data and information management such as storage / data migration, e-discovery, records management, or compliance mandates Perform defensive data cleanup prior to initiative. Storage optimization optimizes the use of existing storage resources to reduce storage costs and leverages data topology maps and classifications to monitor and plan for future storage needs.

ある実施形態のプラットフォームは、モバイルデバイスを監視並びにサポートするモバイルデバイス管理を提供し、組織がポリシを施行するだけでなく、複数のプラットフォームおよびアプリケーションにわたって望ましいレベルのIT制御を維持するためにデータを制御並びに保護することを可能にする。プラットフォームは1つのモバイルデバイスソフトウェア製品を用いたモバイル機器の集中管理を通じて、エンドツーエンドセキュリティを提供する。プラットフォームはまた、GPSアセット追跡、パスワードコンプライアンス/SSO、リモートロック/ワイプ、アップロード、閲覧、および編集されたされたアプリケーションおよびデータの追跡のようなデバイス利用法追跡、およびデバイスアプリケーション管理を含む。   The platform of certain embodiments provides mobile device management that monitors and supports mobile devices and controls data to help organizations enforce policies as well as maintain the desired level of IT control across multiple platforms and applications. As well as allow protection. The platform provides end-to-end security through centralized management of mobile devices using one mobile device software product. The platform also includes device usage tracking, such as GPS asset tracking, password compliance / SSO, remote lock / wipe, uploading, viewing, and tracking of edited applications and data, and device application management.

プラットフォームは、ユーザが全てのソースにわたってリモートワイプを実行すること、オリジナルファイルおよび派生物を削除すること、リモートロックを実行すること、およびジェイルブレイクされたデバイスの検出やジェイルブレイクされたデバイスからの保護を実行すること可能にする。シングルサインオンおよびデバイス設定を用い、ネットワーク、電子メール設定、および電池寿命を監視するパスワードコンプライアンスが存在する。   The platform allows users to perform remote wipes across all sources, delete original files and derivatives, perform remote locks, and detect jailbroken devices and protect against jailbroken devices Can be executed. There is password compliance that uses single sign-on and device settings to monitor network, email settings, and battery life.

アプリケーション管理はアプリケーションを制限するとともに必須アプリケーションをプッシュする。また、アプリケーション管理はアプリケーション監視(例えばデータがアップロード、閲覧されたなど)を含み、全アプリケーションが最新版かつ正しく機能することを保証する。プラットフォームはさらに、非準拠デバイスのGPS追跡および報告/リアルタイム通知を含む。   Application management limits applications and pushes essential applications. Application management also includes application monitoring (eg, data uploaded, viewed, etc.) to ensure that all applications are up to date and function properly. The platform further includes GPS tracking and reporting / real-time notification of non-compliant devices.

ある実施形態のモバイルデバイス管理は、関連リソースに接続している全てのモバイルデバイスにリアルタイム可視性を提供するモバイルリスク管理を含み、従業員の選択(例えば私的デバイス活用(BYOD))の容認と企業データ保護とのバランスを実現する。モバイルセキュリティはアンチウイルス技術、進化型ファイアウォール、およびアンチスパム機能を提供する。GPSアセット追跡は、モバイルデバイスの座標を、セントラルコンソールで測位ならびに追跡する。リモートロック/ワイピングは、不正アクセスの場合にユーザのデバイスおよびそのデータを保護する。プラットフォームのデバイスインベントリ追跡は、デバイスにアップロードされたり、デバイス上で閲覧および編集されたファイルおよびデータを追跡し、(例えば分類、最近閲覧された/編集された、などによって)ファイルをソートするためのサーチ機能を通じて管理者に優れた可視性を提供する。   Certain embodiments of mobile device management include mobile risk management that provides real-time visibility to all mobile devices connected to relevant resources, including acceptance of employee choice (eg Private Device Utilization (BYOD)) and Achieve a balance with corporate data protection. Mobile security provides anti-virus technology, evolved firewall, and anti-spam features. GPS asset tracking measures and tracks the coordinates of mobile devices at a central console. Remote lock / wiping protects the user's device and its data in case of unauthorized access. Platform device inventory tracking to track files and data uploaded to the device or viewed and edited on the device, for sorting files (eg by classification, recently viewed / edited, etc.) Provides superior visibility to the administrator through the search function.

プラットフォームのデバイスアプリケーション管理はグループ設定に基づいてアプリケーションを配信し、指定された市販アプリケーション(public market apps)を制限または許可し、必須アプリケーションをプッシュする。プラットフォームはさらに、非準拠デバイスへのアクセスに警報を出したり無効化したり、プライベートアプリケーションを管理し、公開アプリケーションストアに出すことなしにそれらをユーザに配信したりする。プラットフォームはさらに、デバイスに対する更新を実施する。ある実施形態のセキュリティポリシ管理は、デバイス(アンドロイドデバイス、iOSデバイスなど)のための証明書、電子メールサーバ設定、制限、およびカメラ設定のプッシュ送信を含む。プラットフォームは、稼働中のプロセス、インストールされたアプリケーション、電池寿命、およびネットワーク情報をリストする。ユーザは例外に関するアドミニストレーションへのリアルタイム通知および警報を得ることができる。   Platform device application management distributes applications based on group settings, restricts or allows specified public market apps, and pushes required applications. The platform further alerts and disables access to non-compliant devices, manages private applications, and delivers them to users without submitting them to a public application store. The platform further performs updates to the device. Security policy management in certain embodiments includes push sending of certificates, email server settings, restrictions, and camera settings for devices (Android devices, iOS devices, etc.). The platform lists running processes, installed applications, battery life, and network information. Users can get real-time notifications and alerts to the administration regarding exceptions.

プラットフォームはユーザアクティビティ(例えばファイルアップロード、ファイルダウンロード、アプリケーション利用、共有アクティビティなど)の検査レポートを完成させることによってユーザレポートを生成する。プラットフォームは、企業ドキュメントおよび機密ファイルをデータ損失防止を用いるセキュアな方法でモバイルデバイスへプッシュすることによりモバイルコンテンツ共有を管理するとともに、エンドユーザの介入無しに、ファイルに対するリモート更新を送信し、コンテンツを削除するように構成される。インスタント回復およびバックアップは、ファイルが失われたり壊れた場合に全ファイルを一度にデバイスに復元するための能力を提供する。プラットフォームは遠隔的にデバイスをワイプするが、一方でポリシおよびアプリケーションをデバイスに与えるたり、アプリケーションをブラックまたはホワイトリストに載せたり、ジェイルブレイクされたデバイスの検出やジェイルブレイクされたデバイスからの保護を行ったりすることもできる。   The platform generates a user report by completing an inspection report of user activity (eg, file upload, file download, application usage, sharing activity, etc.). The platform manages mobile content sharing by pushing corporate documents and sensitive files to mobile devices in a secure manner using data loss prevention, and sends remote updates to files without end user intervention, Configured to delete. Instant recovery and backup provide the ability to restore all files to the device at once if the files are lost or corrupted. The platform wipes the device remotely, while providing policies and applications to the device, putting the application on a black or white list, detecting jailbroken devices, and protecting against jailbroken devices. You can also.

ある実施形態のプラットフォームは、文脈情報を統合し、データ、アプリケーション、およびデバイスを監視、最適化、および保護するための可視性を様々な環境(例えばモバイルデバイス、デスクトップ、サーバなど)に提供するリソース活用およびセキュリティを提供する。プラットフォームは、ハードウェア、ソフトウェアおよびアプリケーション利用、ストレージに関するリソース消費、RAMおよびネットワーク監視についてのアプリケーション情報追跡機能を有し、ストレージ、データクリーンアップ、およびアーカイブを最適化する。   The platform of an embodiment is a resource that integrates contextual information and provides visibility to various environments (eg, mobile devices, desktops, servers, etc.) to monitor, optimize, and protect data, applications, and devices. Provide utilization and security. The platform has application information tracking capabilities for hardware, software and application utilization, storage resource consumption, RAM and network monitoring, and optimizes storage, data cleanup and archiving.

ある実施形態のデータ削除およびクリーンアップは、非業務データを特定するためにデータトポロジマップおよび分類を活用する。プラットフォームは、ストレージ/データ移行、e-ディスカバリ、レコード管理、またはコンプライアンス要件のような情報管理イニシアチブに先立って防御的データクリーンアップを実行するとともに、維持が必要な古いデータをアーカイブする。ストレージ最適化は既存のストレージリソースの利用を最適化するとともにストレージコストを削減する(例えばデータ重複除外)。さらに、ストレージ最適化は将来のストレージ需要を監視および計画したり、リソース消費を追跡(例えばストレージ、RAM、ネットワーク監視)したりするために、データトポロジマップおよび分類を活用する。   Certain embodiments of data deletion and cleanup leverage data topology maps and classifications to identify non-business data. The platform performs defensive data cleanup prior to information management initiatives such as storage / data migration, e-discovery, records management, or compliance requirements, and archives old data that needs to be maintained. Storage optimization optimizes the use of existing storage resources and reduces storage costs (eg, data deduplication). In addition, storage optimization utilizes data topology maps and classifications to monitor and plan future storage demand and track resource consumption (eg, storage, RAM, network monitoring).

プラットフォームのリソース活用およびセキュリティは、ハードウェア、ソフトウェア、およびアプリケーションがどのように用いられているかについての情報を収集する、アプリケーションおよび情報追跡を含む。ユーザは最も活用されているプログラム、ウェブサイト、およびファイルタイプを追跡することができる。リソース消費報告は、RAM、帯域、およびストレージ空間をユーザがどれくらい使用しているかを示す。文脈を意識する最適化用ソフトウェアは、経時的な様々な使用率のパターンを追跡および確立し、その結果、アプリケーション利用およびデータの移動についての可視性を向上させて、予測不可能性を低減する。プラットフォームは貴重なリソースを重要なユーザ、アプリケーションおよび/またはプログラムに向け直す。可視性の向上により、計画的かつリアルタイムでの割り当てが可能になる。   Platform resource utilization and security includes application and information tracking that collects information about how hardware, software, and applications are being used. Users can track the most utilized programs, websites, and file types. The resource consumption report indicates how much the user is using RAM, bandwidth, and storage space. Context-aware optimization software tracks and establishes various usage patterns over time, thus increasing visibility into application usage and data movement, reducing unpredictability . The platform redirects valuable resources to important users, applications and / or programs. Increased visibility enables planned and real-time assignments.

プラットフォームクライアントセキュリティはアンチウィルス技術、進化型ファイアウォール、およびアンチマルウェアを提供する。プラットフォームアクティビティセキュリティは、デバイスおよび/またはクライアントでの異常なアクティビティを監視し、管理者に警報を与える。プラットフォームのクラウドセキュリティは、クラウド内のデータおよびアプリケーションを保護するポリシ、技術、および制御を含む。   Platform client security provides anti-virus technology, evolutionary firewall, and anti-malware. Platform activity security monitors abnormal activity on devices and / or clients and alerts administrators. Platform cloud security includes policies, technologies, and controls that protect data and applications in the cloud.

デプロイおよびイメージングは集中管理場所からコンピュータをデプロイおよび管理する。アンドロイドコード署名は、グーグルプレイにおける簡単なアプリケーションバージョンアップデートのための証明鍵およびアプリケーションを管理する。デバイス設定管理は、グループ設定に基づいてアプリケーション/ソフトウェアを配信し、指定されたアプリケーション/ソフトウェアを制限もしくは許可するとともに、必須プログラムをプッシュする。プラットフォームは非準拠デバイスへのアクセスを警告および無効化する。プラットフォームはプライベートアプリケーション/ソフトウェアを管理するとともに、それらを外部に露出させることなくユーザに配信し、またデバイスへの更新を実施する。エンドポイントセキュリティは、アクセスを許可する前に、オペレーティングシステム、ウェブブラウザ、および他のアプリケーションが最新版であることを保証する。   Deployment and imaging deploys and manages computers from a central location. Android code signing manages proof keys and applications for simple application version updates in Google Play. Device setting management distributes applications / software based on group settings, restricts or permits specified applications / software, and pushes essential programs. The platform warns and disables access to non-compliant devices. The platform manages private applications / software, distributes them to users without exposing them to the outside, and implements updates to devices. Endpoint security ensures that the operating system, web browser, and other applications are up to date before allowing access.

ある実施形態のプラットフォームは、業務データがアクセスされ、閲覧され、変更され、また共有されている様子について比類無い可視性および制御をIT管理者に与える管理コンソールを含む。図12は実施形態に係る、管理コンソールの画面例を示す図である。オンライン管理コンソールは、ユーザがどの程度アクティブであるか、ユーザがどんなデバイスでサービスに接続しているか、ユーザがどのファイルを同期しているか、およびユーザが誰とデータを共有しているかを含む、サービスの全ての側面についてリアルタイム可視性を提供する。管理コンソールはまた、ユーザパーミッション、ファイルアクセス制限、共有制御およびリモートデータワイプを含む、サービスの重大な機能をIT管理者が積極的に管理することを可能にする。   The platform of an embodiment includes a management console that provides IT administrators with unmatched visibility and control over how business data is accessed, viewed, modified, and shared. FIG. 12 is a diagram illustrating a screen example of the management console according to the embodiment. The online management console includes how active the user is, what device the user is connecting to the service on, what files the user is synchronizing, and who the user is sharing data with, Provide real-time visibility for all aspects of the service. The management console also allows IT administrators to actively manage critical functions of the service, including user permissions, file access restrictions, sharing controls and remote data wipe.

管理コンソールはファイル同期手順の様々な側面を制御する能力を含んでいる。プラットフォームは機密ドキュメントを自動的に特定するので、IT管理者は重要な業務ドキュメントがサービスを超えて同期されたり内的または外的に共有されたりすることを制限することができる。さらに、IT管理者はストレージおよび帯域消費を制御するために同期が可能なファイルの最大サイズを設定したり、ネットワーク上に存在することを禁止するファイルカテゴリ(例えば音楽およびビデオ)を指定したりすることができる。IT管理者はまた、ユーザウェブポータルからファイルにアクセスしたりおよびファイルをダウンロードしたりすることができるかどうかを規定することもできる。図13は実施形態に係る、ファイル同期コントロールを含む画面例を示す図である。   The management console includes the ability to control various aspects of the file synchronization procedure. Because the platform automatically identifies sensitive documents, IT managers can restrict critical business documents from being synchronized across services and shared internally or externally. In addition, IT administrators can set the maximum size of files that can be synchronized to control storage and bandwidth consumption, or specify file categories that are prohibited from existing on the network (eg music and video). be able to. The IT administrator can also define whether the file can be accessed and downloaded from the user web portal. FIG. 13 is a diagram illustrating a screen example including file synchronization control according to the embodiment.

プラットフォームは、重要なシステムアクティビティを日付、時刻、ユーザ、デバイス、ファイルおよび他の要素によって列挙する、リアルタイムの自動化されたアクティビティ監視、検査および報告をIT管理者に提供する。セキュリティポリシを施行するため、IT管理者は無効ログイン、パスワードリセット試行、機密ファイル共有イベントおよび他のアクティビティの数を見ることができる。図14は実施形態に係る、セキュリティアクティビティ監視および通知を含む画面例を示す図である。この例においては、ルーマニア(Romania)のクルージュ(Cluj)の未知の場所からIT管理者のアカウントに無効ログイン試行が5回あったため、IT管理者は潜在的なセキュリティ問題について警報されている。システム内でセキュリティイベントが発生した場合、IT管理者は管理コンソール、iOS/アンドロイドアプリケーション、テキストまたは電子メール(これらは例の一部である)を通じて警告通知を受信することができる。   The platform provides IT administrators with real-time automated activity monitoring, inspection and reporting that enumerates important system activities by date, time, user, device, file and other factors. To enforce security policies, IT administrators can see the number of invalid logins, password reset attempts, sensitive file sharing events, and other activities. FIG. 14 is a diagram illustrating an example of a screen including security activity monitoring and notification according to the embodiment. In this example, the IT administrator has been alerted to a potential security issue because there have been five invalid login attempts to the IT administrator's account from an unknown location in Cluj, Romania. If a security event occurs in the system, the IT administrator can receive an alert notification through the management console, iOS / Android application, text or email (these are part of the example).

図15は実施形態に係る、ドキュメント監査証跡を含む画面例を示す図である。プラットフォームはサービス内のドキュメントの完全なファイルヒストリを記録する。各ドキュメントについて、IT管理者はファイルがいつ追加、変更、または削除されたかを見ることができる。さらに、IT管理者はそのドキュメントにどのデバイスがアクセスしたのか、およびそのデバイスの地理的位置を調べることができる。これは、いくつかのデバイスにまたがる複数のユーザによって変更中の共有ドキュメントについて必須の機能である。ドキュメント監査証跡の作成に加え、IT管理者またはユーザがファイルの過去バージョンへの復帰を望む場合には、各ファイルの完全な修正履歴も保存される。   FIG. 15 is a diagram illustrating an example of a screen including a document audit trail according to the embodiment. The platform records the complete file history of the documents in the service. For each document, the IT administrator can see when the file was added, changed, or deleted. In addition, the IT administrator can determine which device accessed the document and the geographical location of the device. This is an essential feature for shared documents being modified by multiple users across several devices. In addition to creating a document audit trail, if the IT administrator or user wants to revert to a previous version of the file, a complete revision history of each file is also saved.

図16は実施形態に係る、ファイルサーチおよび分類を含んだ画面例を示す図である。自動データ発見および分解機能を用い、IT管理者はディープコンテンツサーチおよびキー用語抽出に基づいて機密業務ファイルを特定することができる。そしてIT管理者は、独自情報(例えば顧客、従業員、および会計情報)を含んだ特定のドキュメントを探索および見ることができるほか、この情報を制御するための特定の制限を設定することができる。機密ドキュメントを厳重に管理することに加え、IT管理者はファイル名によって組織中でファイルを探索することができる。IT管理者はまた、ファイルタイプの詳細(ドキュメント、音楽、ビデオなど)またはサイズに基づくファイルの分布を理解するため、組織中で同期されているファイルの合計を見ることもできる。この情報は、個人的なコンテンツをサービスに追加しているか、あるいはソリューションを誤用しているかもしれないユーザにIT管理者が見当をつけることを支援する。   FIG. 16 is a diagram showing an example of a screen including file search and classification according to the embodiment. Using automatic data discovery and decomposition functions, IT managers can identify sensitive business files based on deep content search and key term extraction. IT managers can then search and view specific documents containing proprietary information (eg, customer, employee, and accounting information) and set specific restrictions to control this information. . In addition to strictly managing confidential documents, IT administrators can search for files in the organization by file name. The IT administrator can also see the total number of files synchronized in the organization to understand file type details (document, music, video, etc.) or file distribution based on size. This information helps IT managers identify users who may be adding personal content to the service or misusing the solution.

プラットフォームは、特定の共同制作者とともに共有フォルダを設定することにより、どのユーザが組織内でドキュメントを共有可能なのかをユーザがIT管理者が決定することを可能にする。未承認のユーザはIT管理者あるいは信頼できるユーザの許可無しには共有フォルダにアクセスする能力を持たない。IT管理者はまた、どのユーザが1方向ウェブリンクの共有を許可されるかを制御することができる。加えて、ウェブリンクおよび共有フォルダの両方について、IT管理者は全ての共有アクティビティ(ユーザ、デバイス、場所などによるファイルの追加、変更、または削除)の完全な履歴を有する。図17は実施形態に係る、制御されたユーザ共有を含んだ画面例を示す図である。   The platform allows the IT administrator to determine which users can share documents within an organization by setting up shared folders with specific collaborators. Unauthorized users do not have the ability to access shared folders without the permission of the IT administrator or a trusted user. The IT administrator can also control which users are allowed to share one-way web links. In addition, for both web links and shared folders, the IT administrator has a complete history of all sharing activities (adding, changing, or deleting files by user, device, location, etc.). FIG. 17 is a diagram illustrating an example of a screen including controlled user sharing according to the embodiment.

図18は実施形態に係る、リモートデバイス管理およびジオロケーションサービスを含んだ画面例を示す図である。IT管理者は管理コンソールを通じてモバイルデバイスおよびデスクトップを遠隔的に管理することができる。例えば、従業員が組織から解雇された場合、IT管理者は遠隔的に、そのユーザをいかなる共有アクティビティからも除去し、デバイスをユーザのアカウントから切り離し、そのデバイスについてのサービスを一時的に中止することができる。IT管理者はさらに、特定のデバイスのリモートワイプを実行することができ、それによって機密業務コンテンツを直ちに削除することができる。プラットフォームは、システムイベントの具体的な場所を特定したり、モバイルデバイスおよびコンピュータの場所を監視したりするために、ジオロケーションサービスを管理コンソールに統合する。IT管理者が業務コンテンツを家庭内のコンピュータおよび他の私有デバイスから制限したい場合、この機能は特に便利である。   FIG. 18 is a diagram showing an example of a screen including remote device management and geolocation service according to the embodiment. IT administrators can remotely manage mobile devices and desktops through a management console. For example, if an employee is fired from an organization, the IT administrator remotely removes the user from any sharing activity, disconnects the device from the user's account, and temporarily suspends service for the device be able to. The IT administrator can also perform a remote wipe of a specific device, thereby removing sensitive business content immediately. The platform integrates a geolocation service into the management console to identify the specific location of system events and to monitor the location of mobile devices and computers. This feature is particularly useful if the IT administrator wants to restrict business content from home computers and other private devices.

プラットフォームはIT管理者が中核的な業務ファイルの保存場所を選択することを可能にする。IT管理者は、別のクラウドストレージプロバイダ(例えばHPまたはアマゾン)や、サーバまたはNAS環境内のオンプレミス(例えばNETGEAR)を用い、Memeoデータセンタ内にファイルを保存することを選択できる。図19は実施形態に係る、保存場所の選択を含んだ画面例を示す図である。柔軟なストレージモデルは、顧客がファイルをローカルに保存するか、顧客が既に使っているクラウドプロバイダを用いて保存することを可能にすることで、顧客に対するセキュリティを強化する。さらに、このアプローチはIT管理者が既存のストレージインフラストラクチャを利用することを可能にし、運用コストを低減する。   The platform allows IT managers to select a storage location for core business files. The IT administrator can choose to store the file in the Memeo data center using another cloud storage provider (eg HP or Amazon) or on-premises (eg NETGEAR) in a server or NAS environment. FIG. 19 is a diagram illustrating an example of a screen including selection of a storage location according to the embodiment. A flexible storage model enhances security for customers by allowing customers to store files locally or using a cloud provider that the customer already uses. In addition, this approach allows IT administrators to utilize existing storage infrastructure, reducing operational costs.

ここに記述した実施形態は、複数のデータベースに接続されたプロセッサを含むプラットフォームを有するシステムを含む。システムはプラットフォームに接続された複数のエージェントを有するグリッドを含む。複数のエージェントの各エージェントは、クライアントデバイス上で稼働するプラットフォームのエージェントである。システムは複数のエージェントに対応する複数のクライアントデバイスからアクセス可能なメモリのコンテンツのメタデータを有する。各クライアントの各エージェントは、メタデータを生成してプラットフォームに供給する。プラットフォームはコンテンツのかわりにメタデータを有し、メタデータを、コンテンツの場所を調べ、コンテンツの状態を維持するための動作を表すゴールを生成し、ゴールに対応する複数のタスクを生成するとともに、各タスクをそのタスクに対応するコンテンツにアクセス可能なエージェントに割り当てるために用いる。各タスクはプラットフォームによって命令される処理動作であり、エージェントによって、そのエージェントがアクセス可能なコンテンツに実行される。   The embodiments described herein include a system having a platform that includes a processor connected to a plurality of databases. The system includes a grid having a plurality of agents connected to the platform. Each agent of the plurality of agents is a platform agent that runs on the client device. The system has metadata of memory contents accessible from a plurality of client devices corresponding to a plurality of agents. Each agent of each client generates metadata and supplies it to the platform. The platform has metadata instead of content, and the metadata examines the location of the content, generates a goal representing an action for maintaining the state of the content, generates a plurality of tasks corresponding to the goal, Used to assign each task to an agent that can access the content corresponding to that task. Each task is a processing operation instructed by the platform and is performed by the agent on content accessible to the agent.

ここで記述した実施形態は、以下のシステムを含む。複数のデータベースに接続されたプロセッサと、プラットフォームに接続された複数のエージェントを有するグリッドと、ここで複数のエージェントの各エージェントはクライアントデバイス上で稼働するプラットフォームのエージェントであり、複数のエージェントに対応する複数のクライアントデバイスがアクセス可能なメモリのコンテンツのメタデータと、を有し、各クライアントデバイスの各エージェントはメタデータを生成してプラットフォームに提供し、プラットフォームはコンテンツのかわりにメタデータを有し、コンテンツの場所を調べ、コンテンツの状態を維持するための動作を表すゴールを生成し、ゴールに対応する複数のタスクを生成するとともに、各タスクをそのタスクに対応するコンテンツにアクセス可能なエージェントに割り当てるためにメタデータを用い、各タスクは、プラットフォームによって命令される処理動作であって、エージェントによって、そのエージェントがアクセス可能なコンテンツに実行される。   The embodiments described herein include the following systems. A grid with processors connected to multiple databases, multiple agents connected to a platform, where each agent of multiple agents is an agent of a platform running on a client device and corresponds to multiple agents Content metadata in memory accessible to a plurality of client devices, each agent of each client device generates and provides metadata to the platform, the platform having metadata instead of content, A goal representing the action for examining the location of the content and maintaining the state of the content is generated, a plurality of tasks corresponding to the goal are generated, and each task can access the content corresponding to the task. Using metadata for assignment to Ento, each task is a process operation instructed by the platform, by the agent, the agent runs accessible content.

ある実施形態のプラットフォームは複数のエージェントのマスターコントローラであり、複数のエージェントは複数のタスクによって制御されるようにプラットフォームと協働する。   In some embodiments, the platform is a master controller for multiple agents, and the multiple agents work with the platform to be controlled by multiple tasks.

ある実施形態の複数のエージェントの各エージェントは、プラットフォームおよび複数のエージェントの他の全てのエージェントとは独立して機能する。   Each agent of the plurality of agents of an embodiment functions independently of all other agents of the platform and the plurality of agents.

ある実施形態のプラットフォームはコンテンツを受信するかわりにコンテンツのメタデータを受信し、複数のエージェントをホストする複数のクライアントデバイスはコンテンツを含んだ分散ストレージデバイスを有する。   In some embodiments, the platform receives content metadata instead of receiving content, and the plurality of client devices hosting the plurality of agents have distributed storage devices containing the content.

ある実施形態のプラットフォームは、複数のエージェントのコンテンツのマスタインデックスを複数のデータベースで維持するためにメタデータを用いる。   The platform of an embodiment uses metadata to maintain a master index of content for multiple agents in multiple databases.

ある実施形態のメタデータは、コンテンツの場所に関するデータを有する。   The metadata of an embodiment includes data regarding the location of the content.

ある実施形態のメタデータは、コンテンツの状態に関するデータを有する。   The metadata of an embodiment includes data regarding the state of the content.

ある実施形態のメタデータは、複数のエージェントの身元に関するデータを有する。   The metadata of an embodiment includes data regarding the identity of multiple agents.

ある実施形態のメタデータは、各エージェントがアクセス可能なコンテンツに関するデータを有する。   The metadata of an embodiment includes data regarding content accessible to each agent.

ある実施形態のメタデータは、複数のエージェントによって実行される複数のタスクの情報を有する。   The metadata of an embodiment includes information on a plurality of tasks executed by a plurality of agents.

ある実施形態のタスクは、グリッドにわたってコンテンツの場所を追跡することに関する。   An embodiment task relates to tracking the location of content across a grid.

ある実施形態のタスクは、グリッドにわたってコンテンツの保存を管理することに関する。   The task of an embodiment relates to managing the storage of content across the grid.

ある実施形態のタスクは、グリッドにわたってコンテンツの移動を管理することに関する。   The task of an embodiment relates to managing the movement of content across the grid.

ある実施形態のタスクは、グリッドにわたってコンテンツを処理することに関する。   The task of an embodiment relates to processing content across the grid.

ある実施形態の各タスクは、タスクについての完了の条件を有する。   Each task of an embodiment has a completion condition for the task.

ある実施形態の複数のエージェントはプラットフォームに命令されるようにコンテンツを集合的に監視する。   In some embodiments, multiple agents collectively monitor content as directed by the platform.

ある実施形態の複数のエージェントはプラットフォームに命令されるようにコンテンツを集合的に保存する。   In some embodiments, multiple agents collectively store content as directed by the platform.

ある実施形態の複数のエージェントはプラットフォームに命令されるようにコンテンツを集合的に転送する。   Agents in certain embodiments collectively transfer content as directed by the platform.

ある実施形態の複数のエージェントはプラットフォームに命令されるようにコンテンツに処理動作を集合的に実施する。   Agents in certain embodiments collectively perform processing operations on content as directed by the platform.

各クライアントデバイスの各エージェントは、クライアントデバイスがアクセス可能なメモリのコンテンツにインデックスを付与する。   Each agent of each client device indexes the contents of memory accessible to the client device.

ある実施形態の複数のデータベースは、プラットフォームが利用可能なエージェントおよび各エージェントの情報を有するエージェントデータベースを含む。   The plurality of databases of an embodiment includes an agent database having information about each agent available to the platform and each agent.

ある実施形態の各エージェントは少なくとも1つのライブラリを含み、ライブラリはエージェントがリードアクセスおよびライトアクセスの少なくとも1つを含むアクセスが可能なデバイスを表す。   Each agent of an embodiment includes at least one library, which represents an accessible device that the agent includes at least one of read access and write access.

ある実施形態の複数のデータベースは複数のエージェントに対応するライブラリのリストを有するライブラリデータベースを含み、グリッドの各ライブラリはライブラリデータベース内で別個に表される。   The plurality of databases of an embodiment includes a library database having a list of libraries corresponding to a plurality of agents, and each library of the grid is represented separately in the library database.

ある実施形態の各エージェントはエージェントに対応する各ライブラリにアクセス可能である。   Each agent of an embodiment can access each library corresponding to the agent.

ある実施形態の複数のデータベースはゴールのリストを有するゴールデータベースを含み、ゴールのリストの各ゴールはプラットフォームによって生成されるとともに、少なくとも1つのライブラリに対応し、ゴールは対応するライブラリコンテンツに動作を実行するために用いられる。   The databases of an embodiment include a goal database having a list of goals, each goal in the list of goals is generated by the platform and corresponds to at least one library, and the goal performs an action on the corresponding library content Used to do.

ある実施形態のゴールのリストはタスクが実行されるライブラリのコレクションを有している。   In one embodiment, the list of goals includes a collection of libraries on which the task is performed.

ある実施形態の各ゴールは少なくとも1つのライブラリに対応するとともに、対応するライブラリのコンテンツに少なくとも1つのタスクを実行するためにエージェントによって用いられる。   Each goal of an embodiment corresponds to at least one library and is used by an agent to perform at least one task on the contents of the corresponding library.

ある実施形態のプラットフォームは複数のエージェントの複数のライブラリを読むためにゴールを用いる。   An embodiment platform uses goals to read multiple libraries of multiple agents.

ある実施形態のプラットフォームは、複数のエージェントがアクセス可能なコンテンツ内の矛盾点および相違点の少なくとも一方を特定するためにゴールを用いる。   The platform of an embodiment uses goals to identify at least one of inconsistencies and differences in content accessible to multiple agents.

ある実施形態のプラットフォームは、コンテンツ内で特定された矛盾点および相違点の少なくとも一方を除去するための少なくとも1つのタスクを生成するためにゴールを用いる。   The platform of an embodiment uses the goal to generate at least one task for removing at least one of inconsistencies and differences identified in the content.

ある実施形態のプラットフォームはワークデータベースを含んでいる。   In some embodiments, the platform includes a work database.

ある実施形態のプラットフォームは各エージェントに対応するワークデータベースを含み、ワークデータベースは対応するエージェントによって実行されるタスクを含む。   The platform of an embodiment includes a work database corresponding to each agent, which includes tasks performed by the corresponding agent.

ある実施形態のワークデータベースは、対応するエージェントによって実行される各タスクの記述と、そのタスクを実行するためにエージェントが必要とする情報とを含む。   The work database of an embodiment includes a description of each task performed by the corresponding agent and information required by the agent to execute that task.

ある実施形態の複数のデータベースは、複数のエージェントの能力の情報を有する能力データベースを含む。   The plurality of databases of an embodiment includes a capability database having information on capabilities of a plurality of agents.

ある実施形態の複数のデータベースは、複数のエージェントのレコードを含み、かつ維持する同期データベースを含む。   The plurality of databases of an embodiment includes a synchronization database that includes and maintains records of a plurality of agents.

ある実施形態の同期データベースは、複数のエージェントのコンテンツのファイル状態のレコードを含む。   The synchronization database of an embodiment includes a file status record of content for multiple agents.

ある実施形態の同期データベースは各ファイルに対するエントリを含み、エントリはファイルに対応するコンテンツハッシュを含み、コンテンツハッシュはファイルのコンテンツを表すブロブのリストのハッシュを有し、ブロブのリストの各ブロブはコンテンツ内のファイルのフラグメントの表現を有し、フラグメントはファイルのコンポーネントである。   The synchronization database of an embodiment includes an entry for each file, the entry includes a content hash corresponding to the file, the content hash has a hash of a list of blobs representing the contents of the file, and each blob in the list of blobs is a content The fragment is a component of the file.

ある実施形態の同期データベースは各エージェントに対するエントリを含み、エントリはエージェントのファイルに対応するコンテンツハッシュを含み、コンテンツハッシュはファイルのコンテンツを表すブロブのリストのハッシュを有し、ブロブのリストの各ブロブはコンテンツ内のファイルのフラグメントの表現を有し、フラグメントはファイルのコンポーネントである。   The synchronization database of an embodiment includes an entry for each agent, the entry includes a content hash corresponding to the agent's file, the content hash having a hash of a list of blobs representing the contents of the file, and each blob in the list of blobs Has a representation of a fragment of the file in the content, where the fragment is a component of the file.

ある実施形態のプラットフォームはクライアントデバイス間でのコンテンツの転送を、複数のエージェントを用いて制御する。   An embodiment platform controls the transfer of content between client devices using multiple agents.

ある実施形態のプラットフォームはクライアントデバイス間でのコンテンツの同期を複数のエージェントを用いて制御し、コンテンツの同期はコンテンツの変化に応答してコンテンツを同期することを含む。   The platform of an embodiment controls content synchronization between client devices using multiple agents, and content synchronization includes synchronizing content in response to content changes.

ある実施形態のコンテンツの転送は、コンテンツの、ブロックレベルかつ非順序的な転送を有する。   The transfer of content in one embodiment includes block level and unordered transfer of content.

ある実施形態のコンテンツの転送は、コンテンツの第1のブロックを第2のクライアントデバイスから第1のクライアントデバイスへ転送することと、コンテンツの第2のブロックを第3のクライアントデバイスから第1のクライアントデバイスへ転送することとを有する。   The transfer of content in an embodiment includes transferring a first block of content from a second client device to a first client device, and transferring a second block of content from a third client device to the first client. Transferring to the device.

ある実施形態の複数のタスクはスキャンタスクを含む。   In some embodiments, the plurality of tasks includes a scan task.

ある実施形態のスキャンタスクは、エージェントがエージェントに対応するライブラリを再帰的に監視することと、ライブラリに対する変化をプラットフォームに報告することとを含む。   The scan task of an embodiment includes an agent recursively monitoring a library corresponding to the agent and reporting changes to the library to the platform.

ある実施形態の報告は、変更を含んだライブラリのファイルを、エージェントをホストするクライアントデバイスのローカルデータベースに配置することと、ローカルデータベースのメタデータをプラットフォームに供給することとを有する。   The report of an embodiment includes placing the library file containing the changes in a local database of the client device hosting the agent and providing the metadata of the local database to the platform.

ある実施形態の複数のタスクは書き込みタスクを含む。   The plurality of tasks of an embodiment includes a write task.

ある実施形態の書き込みタスクは、エージェントがファイルの少なくとも1つのブロブを第1の場所から第2の場所へコピーすることを含み、第1の場所および第2の場所のそれぞれは、グリッドに接続されたクライアントデバイスに対応する。   The write task of an embodiment includes an agent copying at least one blob of a file from a first location to a second location, each of the first location and the second location being connected to a grid. Corresponding to the client device.

ある実施形態の少なくとも1つのブロブは、コンテンツ内のファイルのフラグメントの表現を有し、フラグメントはファイルのコンポーネントである。   At least one blob of an embodiment has a representation of a fragment of a file in the content, where the fragment is a component of the file.

ある実施形態の書き込みタスクは完了の条件を有する。   The write task of some embodiments has a completion condition.

ある実施形態の完了の条件は、書き込みタスクに対応するブロブを取得することと、書き込みタスク中に上書きされるブロブが正しいファイルに対応していることを特定することと、の少なくとも1つを有する。   The completion condition of an embodiment has at least one of obtaining a blob corresponding to the write task and identifying that the blob that is overwritten during the write task corresponds to the correct file. .

ある実施形態の複数のタスクは、コンテンツの表現をエージェントがアクセス可能なデバイスからリモートストレージデバイスにコピーすることを含む、アップロードタスクを有する。   The tasks of an embodiment include an upload task that includes copying a representation of content from an agent accessible device to a remote storage device.

ある実施形態のエージェントは、エージェントがアクセス可能なコンテンツに対するファイルの追加をプラットフォームに報告し、それに応答してプラットフォームはファイルをアップロードするためのタスクをエージェントに割り当てる。   In one embodiment, the agent reports to the platform the addition of a file to content that the agent can access, and in response the platform assigns the agent a task to upload the file.

ある実施形態のエージェントはそのタスクに応答して、ファイルがリモートストレージデバイスに存在するかどうかを判定し、ファイルが存在しないと判定されるとファイルの表現をリモートストレージデバイスにアップロードする。   The agent of an embodiment is responsive to the task to determine if the file exists on the remote storage device and uploads a representation of the file to the remote storage device if it is determined that the file does not exist.

ある実施形態のアップロードタスクは、エージェントがファイルの少なくとも1つのブロブをエージェントがアクセス可能なデバイスからリモートストレージデバイスにコピーすることを含む。   In one embodiment, the upload task includes an agent copying at least one blob of a file from a device accessible to the agent to a remote storage device.

ある実施形態の少なくとも1つのブロブは、ファイルのフラグメントの表現を有し、フラグメントはファイルのコンポーネントである。   At least one blob of an embodiment has a representation of a fragment of a file, where the fragment is a component of the file.

ある実施形態の複数のタスクは削除タスクを含む。   The tasks of some embodiments include delete tasks.

ある実施形態のタスクは、待機中、未完了、および完了の少なくとも1つを含む複数のフェーズを有し、プラットフォームは複数のタスクの各タスクのフェーズを追跡する。   A task of an embodiment has multiple phases including at least one of waiting, incomplete, and completion, and the platform tracks the phase of each task of the multiple tasks.

ある実施形態の各エージェントは、エージェントに割り当てられたタスクをクライアントデバイスでローカルに維持する。   Each agent of an embodiment maintains the tasks assigned to the agent locally on the client device.

ある実施形態のエージェントは、割り当てられたタスクを特定するためにプラットフォームを周期的にポーリングする。   The agent of an embodiment periodically polls the platform to identify assigned tasks.

ある実施形態のエージェントは、タスクを完了するために必要で、かつリモートデバイスに配置されたタスク情報を見つけるためのヒエラルキーを有する。   The agent of an embodiment has a hierarchy for finding task information that is required to complete a task and is located on a remote device.

ある実施形態のヒエラルキーは、エージェントがエージェントをホストするクライアントデバイスのローカルデータベースを探索することを有する。   In one embodiment, the hierarchy includes an agent searching a local database of a client device hosting the agent.

ある実施形態のヒエラルキーは、エージェントがタスク情報を見つけるために複数のエージェントの少なくとも1つのピアエージェントと通信することを有する。   The hierarchy of an embodiment includes the agent communicating with at least one peer agent of the plurality of agents to find task information.

ある実施形態のエージェントは、タスク情報を所持するピアエージェントのIDを有する。   An agent of an embodiment has an ID of a peer agent that possesses task information.

ある実施形態のヒエラルキーは、エージェントがリモートストレージデバイスからタスク情報を取得することを有する。   An embodiment hierarchy includes an agent obtaining task information from a remote storage device.

ある実施形態のエージェントは、プラットフォームからピアエージェントのIDを順序付きリストで受信し、順序付きリストに従ってタスク情報を探索する。   The agent of an embodiment receives peer agent IDs from the platform in an ordered list and searches for task information according to the ordered list.

ある実施形態の各エージェントは並行に実行する複数のコンポーネントを含む。   Each agent of an embodiment includes multiple components that execute in parallel.

ある実施形態の複数のコンポーネントは、エージェントに指定されたタスクをプラットフォームから取得し、取得したタスクをエージェントをホストするクライアントデバイスのローカルタスクデータベースに保存するプロバイダコンポーネントを含む。   The components of an embodiment include a provider component that obtains a task specified for the agent from the platform and stores the obtained task in a local task database of a client device that hosts the agent.

ある実施形態の複数のコンポーネントはタスク実行コンポーネントを有する。   The components of an embodiment have task execution components.

ある実施形態の複数のコンポーネントは、タスクデータベースを監視し、タスクデータベースから各タスクを取得し、取得したタスクをタスク実行コンポーネントに供給し、未完了ステータスを有するように取得したタスクに指示するランナーコンポーネントを含む。   A plurality of components of an embodiment is a runner component that monitors a task database, obtains each task from the task database, supplies the obtained task to a task execution component, and instructs the obtained task to have an incomplete status including.

ある実施形態のタスク実行コンポーネントはタスクを実行し、タスク実行のステータスをランナーコンポーネントに報告する。   In one embodiment, the task execution component executes the task and reports the status of task execution to the runner component.

ある実施形態のランナーコンポーネントはステータスをタスクデータベースに報告する。ある実施形態の複数のコンポーネントは、完了ステータスを有するタスクについてタスクデータベースを監視し、完了されたタスクのステータス情報をプラットフォームに報告する更新コンポーネントを含む。   In one embodiment, the runner component reports status to a task database. The components of an embodiment include an update component that monitors the task database for tasks with completion status and reports status information of completed tasks to the platform.

ある実施形態のプラットフォームは、ステータス情報に応答して複数のデータベースを更新する。   The platform of an embodiment updates multiple databases in response to status information.

ある実施形態のメタデータは複数のエージェントによって生成され、あるエージェントに生成されるメタデータはそのエージェントがアクセス可能なコンテンツに対応する。   The metadata of an embodiment is generated by a plurality of agents, and the metadata generated for an agent corresponds to content accessible to the agent.

ある実施形態のエージェントは、エージェントがアクセス可能な各ファイルのコンテンツをスキャンすることによってメタデータを生成する。   In one embodiment, the agent generates metadata by scanning the contents of each file accessible to the agent.

ある実施形態のエージェントは、ファイルのコンテンツを複数のフラグメントに分割することによってメタデータを生成し、各フラグメントはファイルの可変サイズコンポーネントを有する。   An agent of an embodiment generates metadata by dividing the contents of a file into a plurality of fragments, each fragment having a variable size component of the file.

ある実施形態の可変サイズフラグメントは、予め指定された最小長と最大長との間である。   In some embodiments, the variable size fragment is between a pre-specified minimum and maximum length.

ある実施形態のエージェントは、複数のフラグメントを表す複数のブロブを生成することによってメタデータを生成し、各ブロブはフラグメントを表す。   An agent of an embodiment generates metadata by generating a plurality of blobs that represent a plurality of fragments, each blob representing a fragment.

ある実施形態のエージェントは、コンテンツの各バイトについて、コンテンツのコンポーネントにハッシュアルゴリズムを実行することを有するデータフィンガプリンティングアルゴリズムを用いて複数のブロブを生成し、ハッシュアルゴリズムはデータの指定されたパターンを特定するように設定される。   The agent of an embodiment generates, for each byte of content, a plurality of blobs using a data fingerprinting algorithm that includes performing a hash algorithm on the content component, where the hash algorithm identifies a specified pattern of data Set to do.

ある実施形態のブロブの生成は、ブロブで表されるフラグメントがファイルの残り部分から分離された位置でのハッシュ値を含んだブロブの記述を生成することを有する。   The generation of a blob in one embodiment includes generating a blob description that includes a hash value at a location where the fragment represented by the blob is separated from the rest of the file.

ある実施形態のブロブの生成は、ブロブで表されるフラグメントの分割位置に基づくオフセット値を生成することを有する。   In some embodiments, the generation of blobs comprises generating an offset value based on the fragmentation position of the fragment represented by the blob.

ある実施形態のブロブの生成は、ブロブの完全なコンテンツのハッシュを生成することを有し、ブロブの完全なコンテンツのハッシュはブロブの識別子である。   The blob generation of an embodiment includes generating a blob complete content hash, where the blob complete content hash is a blob identifier.

ある実施形態のブロブの生成は、ファイルのコンテンツを表すブロブのリストを生成することを含む。   The generation of blobs in one embodiment includes generating a list of blobs that represent the contents of the file.

ある実施形態のブロブの生成は、ファイルのコンテンツを表すブロブのリストのハッシュを有するコンテンツハッシュを生成することを含み、コンテンツハッシュはファイルの識別子である。   In some embodiments, the generation of blobs includes generating a content hash having a hash of a list of blobs representing the content of the file, where the content hash is an identifier for the file.

ある実施形態のブロブの生成は、ファイルに対応するファイル名のハッシュを有する名称ハッシュを生成することを含み、コンテンツハッシュはファイルの識別子である。   In some embodiments, the generation of the blob includes generating a name hash having a hash of the file name corresponding to the file, where the content hash is an identifier of the file.

ある実施形態のブロブの生成は、コンテンツハッシュと名称ハッシュとの組み合わせのハッシュを有するファイルハッシュを生成することを含む。   Generating a blob in an embodiment includes generating a file hash having a hash of a combination of a content hash and a name hash.

ある実施形態のブロブの生成は、ファイルのコンテンツに対応するファイル名およびファイルパスのハッシュを有するパスハッシュを生成することを含む。   The generation of a blob in an embodiment includes generating a path hash having a file name corresponding to the contents of the file and a hash of the file path.

ある実施形態のブロブの生成は、ファイルのファイルメタデータのハッシュを有するメタデータハッシュを生成することを含む。   Generating a blob of an embodiment includes generating a metadata hash having a file metadata hash of the file.

ある実施形態のプラットフォームは、ファイルに対するレコードを生成し、レコードはファイルのブロブハッシュ、コンテンツハッシュ、ファイルハッシュ、パスハッシュ、およびメタデータハッシュを有する。   The platform of an embodiment generates a record for the file, the record having a file blob hash, content hash, file hash, path hash, and metadata hash.

ある実施形態の複数のデータベースはライブラリデータベースを含み、ライブラリデータベースはレコードを有する。   In some embodiments, the plurality of databases includes a library database, the library database having records.

ある実施形態のブロブの生成は、ブロブのサイズを生成することを有する。   Generating the blob of an embodiment includes generating the size of the blob.

ある実施形態のファイルは、ファイルを構成するブロブのリストとして記述される。   The file of an embodiment is described as a list of blobs that make up the file.

ある実施形態の各エージェントは、エージェントをホストするクライアントデバイスにブロブをローカル保存し、過去に報告されていないブロブをプラットフォームの中央ストレージに転送する。   Each agent of an embodiment stores blobs locally on the client device hosting the agent and forwards blobs not previously reported to the platform's central storage.

ここで記述した実施形態は、複数のデータベースに接続されたプロセッサを含むプラットフォームを有するシステムを含む。システムはプラットフォームに接続された複数のエージェントを有するグリッドを含む。複数のエージェントの各エージェントは、クライアントデバイス上で稼働するプラットフォームのエージェントである。システムは、複数のエージェントに対応する複数のクライアントデバイスがアクセス可能なメモリのコンテンツのメタデータを有する。エージェントは、コンテンツの複数のフラグメントをハッシュすることによりコンテンツに対応するメタデータを生成し、プラットフォームに供給する。プラットフォームは、コンテンツの保存、転送、および処理の少なくとも1つを制御するタスクを含む、複数のタスクを生成して複数のエージェントに割り当てるために、コンテンツの代わりにメタデータを用いる。タスクは、そのタスクを受け持つエージェントがアクセス可能なコンテンツに実行される処理動作である。   The embodiments described herein include a system having a platform that includes a processor connected to a plurality of databases. The system includes a grid having a plurality of agents connected to the platform. Each agent of the plurality of agents is a platform agent that runs on the client device. The system has metadata of memory contents accessible to a plurality of client devices corresponding to a plurality of agents. The agent generates metadata corresponding to the content by hashing a plurality of fragments of the content, and supplies the metadata to the platform. The platform uses metadata instead of content to generate multiple tasks and assign them to multiple agents, including tasks that control at least one of content storage, transfer, and processing. A task is a processing operation that is performed on content accessible to an agent responsible for the task.

ここで記述した実施形態は、以下のシステムを含む。複数のデータベースに接続されたプロセッサと、プラットフォームに接続された複数のエージェントを有するグリッドと、ここで複数のエージェントの各エージェントはクライアントデバイス上で稼働するプラットフォームのエージェントであり、複数のエージェントに対応する複数のクライアントデバイスがアクセス可能なメモリのコンテンツのメタデータと、を有し、エージェントはコンテンツの複数のフラグメントをハッシュすることによってコンテンツに対応するメタデータを生成してプラットフォームに供給し、プラットフォームは、コンテンツの保存、転送、および処理の少なくとも1つを制御するタスクを含む、複数のタスクを生成して複数のエージェントに割り当てるために、コンテンツの代わりにメタデータを用い、タスクは、そのタスクを受け持つエージェントがアクセス可能なコンテンツに実行される処理動作である。   The embodiments described herein include the following systems. A grid with processors connected to multiple databases, multiple agents connected to a platform, where each agent of multiple agents is an agent of a platform running on a client device and corresponds to multiple agents Content metadata in memory accessible by a plurality of client devices, and the agent generates metadata corresponding to the content by hashing the plurality of fragments of the content, and supplies the platform to the platform, Use metadata instead of content to generate multiple tasks and assign them to multiple agents, including tasks that control at least one of content storage, transfer, and processing. Is a processing operation which the agent responsible for the task to run at a content accessible.

ここで記述した実施形態は、複数のデータベースに接続されたプロセッサを含むプラットフォームを有するシステムを含む。システムはプラットフォームに接続された複数のエージェントを有するグリッドを含む。複数のエージェントの各エージェントは、クライアントデバイスで稼働するプラットフォームのエージェントである。各クライアントデバイスの各エージェントは、クライアントデバイスがアクセス可能なメモリのコンテンツのメタデータをプラットフォームに供給する。プラットフォームは、メタデータを、コンテンツの場所を調べ、コンテンツの状態を維持するための動作を表すゴールを生成し、ゴールに対応する複数のタスクを生成するとともに、各タスクをそのタスクに対応するコンテンツにアクセス可能なエージェントに割り当てるために用いる。タスクはプラットフォームによって命令される処理動作であり、エージェントによって、そのエージェントがアクセス可能なコンテンツに実行される。複数のエージェントによって供給されるメタデータは、複数のエージェントによって実行される複数のタスクの情報を含む。   The embodiments described herein include a system having a platform that includes a processor connected to a plurality of databases. The system includes a grid having a plurality of agents connected to the platform. Each agent of the plurality of agents is a platform agent that runs on a client device. Each agent of each client device provides the platform with metadata of the contents of memory accessible to the client device. The platform examines the location of the content, generates a goal that represents the action to maintain the state of the content, generates multiple tasks corresponding to the goal, and each task corresponds to the task Used to assign to agents that can access A task is a processing operation instructed by the platform and is executed by an agent on content accessible to that agent. The metadata supplied by the plurality of agents includes information on a plurality of tasks executed by the plurality of agents.

ここで記述した実施形態は、以下のシステムを含む。複数のデータベースに接続されたプロセッサを有するプラットフォームと、プラットフォームに接続された複数のエージェントを有するグリッドと、ここで複数のエージェントの各エージェントはクライアントデバイス上で稼働するプラットフォームのエージェントであり、各クライアントデバイスに対応する各エージェントは、クライアントデバイスがアクセス可能なメモリのコンテンツのメタデータをプラットフォームに供給し、プラットフォームは、メタデータを、コンテンツの場所を調べ、コンテンツの状態を維持するための動作を表すゴールを生成し、ゴールに対応する複数のタスクを生成するとともに、各タスクをそのタスクに対応するコンテンツにアクセス可能なエージェントに割り当てるために用い、タスクはプラットフォームによって命令される処理動作であり、エージェントによって、そのエージェントがアクセス可能なコンテンツに実行され、複数のエージェントによって供給されるメタデータは、複数のエージェントによって実行される複数のタスクの情報を含む。   The embodiments described herein include the following systems. A platform having a processor connected to a plurality of databases, a grid having a plurality of agents connected to the platform, wherein each agent of the plurality of agents is an agent of a platform running on a client device, and each client device Each of the corresponding agents provides memory content metadata accessible to the client device to the platform, and the platform is responsible for examining the location of the content and representing actions to maintain the state of the content. Is used to generate multiple tasks corresponding to the goal and assign each task to an agent that can access the content corresponding to that task. A process operation instructed by beam, by the agent, the agent is executed content accessible, metadata provided by a plurality of agents, including information of a plurality of tasks performed by multiple agents.

ここで記述した実施形態は、複数のデータベースに接続されたプロセッサを含むプラットフォームを有するシステムを含む。システムはプラットフォームに接続された複数のエージェントを有するグリッドを含む。複数のエージェントの各エージェントは、クライアントデバイス上で稼働するプラットフォームのエージェントである。システムは、複数のエージェントに対応する複数のクライアントデバイスがアクセス可能なメモリのコンテンツのメタデータを有する。各エージェントは、エージェントがアクセス可能なコンテンツに対応するメタデータを生成してプラットフォームに供給する。各エージェントは、複数のフラグメントを表す複数のブロブを生成するためにコンテンツの複数のフラグメントをハッシュすることによりメタデータを生成する。プラットフォームは複数のタスクを生成して複数のエージェントに割り当てるために、コンテンツの代わりにメタデータを用いる。タスクは、そのタスクを受け持つエージェントがアクセス可能なコンテンツに実行される処理動作である。複数のタスクは、コンテンツの監視、保存、転送、および処理の少なくとも1つであるタスクを含む。   The embodiments described herein include a system having a platform that includes a processor connected to a plurality of databases. The system includes a grid having a plurality of agents connected to the platform. Each agent of the plurality of agents is a platform agent that runs on the client device. The system has metadata of memory contents accessible to a plurality of client devices corresponding to a plurality of agents. Each agent generates metadata corresponding to content accessible by the agent and supplies it to the platform. Each agent generates metadata by hashing multiple fragments of content to generate multiple blobs that represent multiple fragments. The platform uses metadata instead of content to generate multiple tasks and assign them to multiple agents. A task is a processing operation that is performed on content accessible to an agent responsible for the task. The plurality of tasks include a task that is at least one of content monitoring, storage, transfer, and processing.

ここで記述した実施形態は、複数のデータベースに接続されたプロセッサと、プラットフォームに接続された複数のエージェントを有するグリッドと、ここで複数のエージェントの各エージェントはクライアントデバイス上で稼働するプラットフォームのエージェントであり、複数のエージェントに対応する複数のクライアントデバイスによってアクセス可能なメモリのコンテンツのメタデータと、を有し、各エージェントは、エージェントがアクセス可能なコンテンツに対応するメタデータを生成してプラットフォームに供給し、各エージェントは、複数のフラグメントを表す複数のブロブを生成するためにコンテンツの複数のフラグメントをハッシュすることによりメタデータを生成し、プラットフォームは複数のタスクを生成して複数のエージェントに割り当てるために、コンテンツの代わりにメタデータを用い、タスクは、そのタスクを受け持つエージェントがアクセス可能なコンテンツに実行される処理動作であり、複数のタスクは、コンテンツの監視、保存、転送、および処理の少なくとも1つであるタスクを含む、システムを含む。   The described embodiment includes a processor having a plurality of databases connected to a platform, a grid having a plurality of agents connected to a platform, wherein each agent of the plurality of agents is an agent of a platform running on a client device. And metadata of memory contents accessible by a plurality of client devices corresponding to a plurality of agents, and each agent generates metadata corresponding to the contents accessible by the agent and supplies it to the platform Each agent generates metadata by hashing multiple fragments of content to generate multiple blobs representing multiple fragments, and the platform generates multiple tasks Metadata is used instead of content to assign to agents, tasks are processing operations performed on content accessible to the agent responsible for the task, and multiple tasks can be monitored, stored, transferred, And a system including a task that is at least one of the processes.

ここで記述した実施形態は、プロセッサを有するプラットフォームを複数のデータベースに接続することを有する方法を含む。方法は、プラットフォームに複数のエージェントを接続してグリッドを形成することを有する。複数のエージェントの各エージェントは、クライアントデバイス上で稼働するプラットフォームのエージェントである。方法は、各エージェントでメタデータを生成してコンテンツの代わりにメタデータをプラットフォームに供給することを有する。メタデータは、複数のエージェントに対応する複数のクライアントデバイスがアクセス可能なメモリのコンテンツに対応する。方法は、メタデータを用いてコンテンツの場所を調べることを有する。方法は、メタデータを用いて、コンテンツの状態を維持するための動作を表すゴールを生成することを有する。方法は、メタデータを用いてゴールに対応する複数のタスクを生成することを有する。方法は、各タスクを、タスクに対応するコンテンツにアクセス可能なエージェントに割り当てることを有する。各タスクはプラットフォームによって命令される処理動作であり、エージェントによって、そのエージェントがアクセス可能なコンテンツに実行される。   Embodiments described herein include a method that includes connecting a platform having a processor to a plurality of databases. The method includes connecting a plurality of agents to the platform to form a grid. Each agent of the plurality of agents is a platform agent that runs on the client device. The method includes generating metadata at each agent and providing the metadata to the platform instead of the content. The metadata corresponds to the contents of a memory that can be accessed by a plurality of client devices corresponding to a plurality of agents. The method includes using the metadata to locate the content. The method includes using the metadata to generate a goal that represents an action for maintaining the state of the content. The method includes generating a plurality of tasks corresponding to the goal using the metadata. The method includes assigning each task to an agent that can access content corresponding to the task. Each task is a processing operation instructed by the platform and is performed by the agent on content accessible to the agent.

ここで記述した実施形態は、プロセッサを有するプラットフォームを複数のデータベースに接続することと、プラットフォームに複数のエージェントを接続してグリッドを形成することと、ここで、複数のエージェントの各エージェントは、クライアントデバイス上で稼働するプラットフォームのエージェントであり、各エージェントでメタデータを生成してコンテンツの代わりにメタデータをプラットフォームに供給することと、ここで、メタデータは、複数のエージェントに対応する複数のクライアントデバイスがアクセス可能なメモリのコンテンツに対応し、メタデータを用いてコンテンツの場所を調べることと、メタデータを用いて、コンテンツの状態を維持するための動作を表すゴールを生成することと、メタデータを用いてゴールに対応する複数のタスクを生成することと、各タスクを、タスクに対応するコンテンツにアクセス可能なエージェントに割り当てることとを有し、ここで、各タスクはプラットフォームによって命令される処理動作であり、エージェントによって、そのエージェントがアクセス可能なコンテンツに実行される、方法を含む。   Embodiments described herein include connecting a platform having a processor to a plurality of databases, connecting a plurality of agents to the platform to form a grid, wherein each agent of the plurality of agents is a client A platform agent running on a device that generates metadata on each agent and supplies it to the platform instead of content, where the metadata is multiple clients corresponding to multiple agents Corresponding to the contents of the memory accessible to the device, using the metadata to locate the content, using the metadata to generate a goal representing the action to maintain the content state, Go with the data Generating a plurality of tasks corresponding to the task and assigning each task to an agent accessible to the content corresponding to the task, wherein each task is a processing operation commanded by the platform; Including a method performed by an agent on content accessible to the agent.

方法は、プラットフォームが複数のエージェントのマスターコントローラとして動作することを有し、複数のエージェントは複数のタスクによって制御されるようにプラットフォームと協働する。   The method includes the platform acting as a master controller for multiple agents, wherein the multiple agents cooperate with the platform such that they are controlled by multiple tasks.

方法は、複数のエージェントの各エージェントがプラットフォームおよび複数のエージェントの他の全てのエージェントとは独立して機能することを含む。   The method includes that each agent of the plurality of agents functions independently of the platform and all other agents of the plurality of agents.

方法は、プラットフォームがコンテンツを受信するかわりにコンテンツのメタデータを受信することを有し、複数のエージェントをホストする複数のクライアントデバイスはコンテンツを含んだ分散ストレージデバイスを有する。   The method has the platform receiving content metadata instead of receiving content, and the plurality of client devices hosting the plurality of agents have distributed storage devices containing the content.

方法は、プラットフォームが、複数のエージェントのコンテンツのマスタインデックスを複数のデータベースで維持するためにメタデータを用いることを有する。   The method comprises the platform using the metadata to maintain a master index of the content of multiple agents in multiple databases.

ある実施形態のメタデータは、コンテンツの場所に関するデータを有する。   The metadata of an embodiment includes data regarding the location of the content.

ある実施形態のメタデータは、コンテンツの状態に関するデータを有する。   The metadata of an embodiment includes data regarding the state of the content.

ある実施形態のメタデータは、複数のエージェントの身元に関するデータを有する。   The metadata of an embodiment includes data regarding the identity of multiple agents.

ある実施形態のメタデータは、各エージェントがアクセス可能なコンテンツに関するデータを有する。   The metadata of an embodiment includes data regarding content accessible to each agent.

ある実施形態のメタデータは、複数のエージェントによって実行される複数のタスクの情報を有する。   The metadata of an embodiment includes information on a plurality of tasks executed by a plurality of agents.

ある実施形態のタスクは、グリッドにわたってコンテンツの場所を追跡することに関する。   An embodiment task relates to tracking the location of content across a grid.

ある実施形態のタスクは、グリッドにわたってコンテンツの保存を管理することに関する。   The task of an embodiment relates to managing the storage of content across the grid.

ある実施形態のタスクは、グリッドにわたってコンテンツの移動を管理することに関する。   The task of an embodiment relates to managing the movement of content across the grid.

ある実施形態のタスクは、グリッドにわたってコンテンツを処理することに関する。   The task of an embodiment relates to processing content across the grid.

ある実施形態の各タスクは、タスクの完了の条件を有する。方法は、複数のエージェントがプラットフォームに命令されるようにコンテンツを集合的に監視することを有する。   Each task of an embodiment has a condition for completion of the task. The method includes collectively monitoring content such that multiple agents are commanded to the platform.

方法は、複数のエージェントがプラットフォームに命令されるようにコンテンツを集合的に保存することを有する。   The method includes storing content collectively so that multiple agents are instructed to the platform.

方法は、複数のエージェントがプラットフォームに命令されるようにコンテンツを集合的に転送することを有する。   The method includes transferring content collectively such that multiple agents are instructed to the platform.

方法は、複数のエージェントがプラットフォームに命令されるようにコンテンツに処理動作を集合的に実施することを有する。   The method includes collectively performing processing operations on the content such that multiple agents are instructed to the platform.

方法は、各クライアントデバイスの各エージェントが、クライアントデバイスがアクセス可能なメモリのコンテンツにインデックスを付与することを有する。   The method includes that each agent of each client device indexes the contents of memory accessible to the client device.

ある実施形態の複数のデータベースは、プラットフォームが利用可能なエージェントおよび各エージェントの情報を有するエージェントデータベースを含む。   The plurality of databases of an embodiment includes an agent database having information about each agent available to the platform and each agent.

ある実施形態の各エージェントは少なくとも1つのライブラリを含み、ライブラリはエージェントがリードアクセスおよびライトアクセスの少なくとも1つを含むアクセスが可能なデバイスを表す。   Each agent of an embodiment includes at least one library, which represents an accessible device that the agent includes at least one of read access and write access.

ある実施形態の複数のデータベースは、複数のエージェントに対応するライブラリのリストを有するライブラリデータベースを含み、グリッドの各ライブラリはライブラリデータベース内で別個に表される。   The plurality of databases of an embodiment includes a library database having a list of libraries corresponding to a plurality of agents, and each library of the grid is represented separately in the library database.

方法は、各エージェントがエージェントに対応する各ライブラリにアクセス可能であることを有する。   The method includes that each agent has access to each library corresponding to the agent.

ある実施形態の複数のデータベースはゴールのリストを有するゴールデータベースを含み、ゴールのリストの各ゴールはプラットフォームによって生成されるとともに、少なくとも1つのライブラリに対応し、ゴールは対応するライブラリコンテンツに動作を実行するために用いられる。   The databases of an embodiment include a goal database having a list of goals, each goal in the list of goals is generated by the platform and corresponds to at least one library, and the goal performs an action on the corresponding library content Used to do.

方法は、ゴールのリストを、タスクが実行されるライブラリのコレクションを含むように生成することを有する。   The method includes generating a list of goals to include a collection of libraries on which the task is performed.

ある実施形態の各ゴールは少なくとも1つのライブラリに対応し、少なくとも1つのタスクを対応するライブラリのコンテンツに実行するために用いられる。   Each goal of an embodiment corresponds to at least one library and is used to perform at least one task on the contents of the corresponding library.

方法は、プラットフォームが複数のエージェントの複数のライブラリを読むためにゴールを用いることを有する。   The method includes using a goal for the platform to read multiple libraries of multiple agents.

方法は、プラットフォームが、複数のエージェントがアクセス可能なコンテンツ内の矛盾点および相違点の少なくとも一方を特定するためにゴールを用いることを有する。   The method includes the platform using a goal to identify at least one of inconsistencies and differences in content accessible to multiple agents.

方法は、プラットフォームが、コンテンツ内で特定された矛盾点および相違点の少なくとも一方を除去するための少なくとも1つのタスクを生成するためにゴールを用いることを有する。   The method includes the platform using a goal to generate at least one task to remove at least one of inconsistencies and differences identified in the content.

ある実施形態の複数のデータベースはワークデータベースを含む。   The plurality of databases of an embodiment includes a work database.

方法は、プラットフォームが、各エージェントに対応するワークデータベースを生成することを有し、ワークデータベースは対応するエージェントによって実行されるタスクを含む。   The method includes the platform generating a work database corresponding to each agent, the work database including tasks performed by the corresponding agent.

ある実施形態のワークデータベースは、対応するエージェントによって実行される各タスクの記述と、そのタスクを実行するためにエージェントが必要とする情報とを含む。   The work database of an embodiment includes a description of each task performed by the corresponding agent and information required by the agent to execute that task.

ある実施形態の複数のデータベースは、複数のエージェントの能力の情報を有する能力データベースを含む。   The plurality of databases of an embodiment includes a capability database having information on capabilities of a plurality of agents.

ある実施形態の複数のデータベースは、複数のエージェントのレコードを含み、かつ維持する同期データベースを含む。   The plurality of databases of an embodiment includes a synchronization database that includes and maintains records of a plurality of agents.

ある実施形態の同期データベースは、複数のエージェントのコンテンツのファイル状態のレコードを含む。   The synchronization database of an embodiment includes a file status record of content for multiple agents.

ある実施形態の同期データベースは各ファイルに対するエントリを含み、エントリはファイルに対応するコンテンツハッシュを含み、コンテンツハッシュはファイルのコンテンツを表すブロブのリストのハッシュを有し、ブロブのリストの各ブロブはコンテンツ内のファイルのフラグメントの表現を有し、フラグメントはファイルのコンポーネントである。   The synchronization database of an embodiment includes an entry for each file, the entry includes a content hash corresponding to the file, the content hash has a hash of a list of blobs representing the contents of the file, and each blob in the list of blobs is a content The fragment is a component of the file.

ある実施形態の同期データベースは各エージェントに対するエントリを含み、エントリはエージェントのファイルに対応するコンテンツハッシュを含み、コンテンツハッシュはファイルのコンテンツを表すブロブのリストのハッシュを有し、ブロブのリストの各ブロブはコンテンツ内のファイルのフラグメントの表現を有し、フラグメントはファイルのコンポーネントである。   The synchronization database of an embodiment includes an entry for each agent, the entry includes a content hash corresponding to the agent's file, the content hash having a hash of a list of blobs representing the contents of the file, and each blob in the list of blobs Has a representation of a fragment of the file in the content, where the fragment is a component of the file.

方法は、プラットフォームが、クライアントデバイス間でのコンテンツの転送を、複数のエージェントを用いて制御することを含む。   The method includes a platform controlling the transfer of content between client devices using a plurality of agents.

方法は、プラットフォームが、クライアントデバイス間でコンテンツを同期することを複数のエージェントを用いて制御することを有し、コンテンツを同期することはコンテンツの変化に応答してコンテンツを同期することを含む。   The method includes controlling, using a plurality of agents, the platform to synchronize content between client devices, and synchronizing the content includes synchronizing the content in response to content changes.

コンテンツの転送は、コンテンツの、ブロックレベルかつ非順序的な転送を有する。   Content transfer includes block-level and unordered transfer of content.

コンテンツの転送は、コンテンツの第1のブロックを第2のクライアントデバイスから第1のクライアントデバイスへ転送することと、コンテンツの第2のブロックを第3のクライアントデバイスから第1のクライアントデバイスへ転送することとを有する。   The transfer of content includes transferring a first block of content from the second client device to the first client device and transferring a second block of content from the third client device to the first client device. Have.

ある実施形態の複数のタスクはスキャンタスクを含む。   In some embodiments, the plurality of tasks includes a scan task.

ある実施形態のスキャンタスクは、エージェントがエージェントに対応するライブラリを再帰的に監視することと、ライブラリに対する変化をプラットフォームに報告することとを含む。   The scan task of an embodiment includes an agent recursively monitoring a library corresponding to the agent and reporting changes to the library to the platform.

報告することは、変更を含んだライブラリのファイルを、エージェントをホストするクライアントデバイスのローカルデータベースに配置することと、ローカルデータベースのメタデータをプラットフォームに供給することとを有する。   Reporting comprises placing the library file containing the changes in the local database of the client device hosting the agent and providing the local database metadata to the platform.

ある実施形態の複数のタスクは書き込みタスクを含む。   The plurality of tasks of an embodiment includes a write task.

ある実施形態の書き込みタスクは、エージェントがファイルの少なくとも1つのブロブを第1の場所から第2の場所へコピーすることを含み、第1の場所および第2の場所のそれぞれは、グリッドに接続されたクライアントデバイスに対応する。   The write task of an embodiment includes an agent copying at least one blob of a file from a first location to a second location, each of the first location and the second location being connected to a grid. Corresponding to the client device.

ある実施形態の少なくとも1つのブロブは、コンテンツ内のファイルのフラグメントの表現を有し、フラグメントはファイルのコンポーネントである。   At least one blob of an embodiment has a representation of a fragment of a file in the content, where the fragment is a component of the file.

ある実施形態の書き込みタスクは完了の条件を有する。   The write task of some embodiments has a completion condition.

ある実施形態の完了の条件は、書き込みタスクに対応するブロブを取得することと、書き込みタスク中に上書きされるブロブが正しいファイルに対応していることを特定することと、の少なくとも1つを有する   The completion condition of an embodiment has at least one of obtaining a blob corresponding to the write task and identifying that the blob that is overwritten during the write task corresponds to the correct file.

ある実施形態の複数のタスクは、コンテンツのファイルの表現をエージェントがアクセス可能なデバイスからリモートストレージデバイスにコピーすることを含む、アップロードタスクを有する。   The tasks of an embodiment have an upload task that includes copying a representation of a file of content from a device accessible to an agent to a remote storage device.

方法は、エージェントが、エージェントがアクセス可能なコンテンツに対するファイルの追加をプラットフォームに報告することと、それに応答してプラットフォームがファイルをアップロードするためのタスクをエージェントに割り当てることとを有する。   The method includes the agent reporting to the platform the addition of a file to content accessible to the agent and responsively assigning a task to the agent for the platform to upload the file.

方法は、タスクに応答して、エージェントが、ファイルがリモートストレージデバイスに存在するかどうかを判定し、ファイルが存在しないと判定されるとファイルの表現をリモートストレージデバイスにアップロードすることを有する。   In response to the task, the method includes determining whether the file exists on the remote storage device and uploading a representation of the file to the remote storage device if it is determined that the file does not exist.

ある実施形態のアップロードタスクは、エージェントがファイルの少なくとも1つのブロブをエージェントがアクセス可能なデバイスからリモートストレージデバイスにコピーすることを含む。   In one embodiment, the upload task includes an agent copying at least one blob of a file from a device accessible to the agent to a remote storage device.

ある実施形態の少なくとも1つのブロブは、ファイルのフラグメントの表現を有し、フラグメントはファイルのコンポーネントである。   At least one blob of an embodiment has a representation of a fragment of a file, where the fragment is a component of the file.

ある実施形態の複数のタスクは削除タスクを含む。   The tasks of some embodiments include delete tasks.

ある実施形態のタスクは、待機中、未完了、および完了の少なくとも1つを含む複数のフェーズを有し、プラットフォームは複数のタスクの各タスクのフェーズを追跡する。   A task of an embodiment has multiple phases including at least one of waiting, incomplete, and completion, and the platform tracks the phase of each task of the multiple tasks.

方法は、各エージェントが、エージェントに割り当てられたタスクをクライアントデバイスでローカルに維持することを有する。   The method includes each agent maintaining a task assigned to the agent locally at the client device.

方法は、エージェントが、割り当てられたタスクを特定するためにプラットフォームを周期的にポーリングすることを有する。   The method includes the agent periodically polling the platform to identify assigned tasks.

ある実施形態のエージェントは、タスクを完了するために必要で、かつリモートデバイスに配置されたタスク情報を見つけるためのヒエラルキーを有する。   The agent of an embodiment has a hierarchy for finding task information that is required to complete a task and is located on a remote device.

ある実施形態のヒエラルキーは、エージェントがエージェントをホストするクライアントデバイスのローカルデータベースを探索することを有する。   In one embodiment, the hierarchy includes an agent searching a local database of a client device hosting the agent.

ある実施形態のヒエラルキーは、エージェントがタスク情報を見つけるために複数のエージェントの少なくとも1つのピアエージェントと通信することを有する。   The hierarchy of an embodiment includes the agent communicating with at least one peer agent of the plurality of agents to find task information.

ある実施形態のエージェントは、タスク情報を所持するピアエージェントのIDを有する。   An agent of an embodiment has an ID of a peer agent that possesses task information.

ある実施形態のヒエラルキーは、エージェントがリモートストレージデバイスからタスク情報を取得することを有する。   An embodiment hierarchy includes an agent obtaining task information from a remote storage device.

方法は、エージェントが、プラットフォームからピアエージェントのIDを順序付きリストで受信することと、順序付きリストに従ってタスク情報を探索することとを有する。   The method includes an agent receiving peer agent IDs from a platform in an ordered list and searching task information according to the ordered list.

ある実施形態の各エージェントは並行に実行する複数のコンポーネントを含む。   Each agent of an embodiment includes multiple components that execute in parallel.

ある実施形態の複数のコンポーネントは、エージェントに指定されたタスクをプラットフォームから取得し、取得したタスクをエージェントをホストするクライアントデバイスのローカルタスクデータベースに保存するプロバイダコンポーネントを含む。   The components of an embodiment include a provider component that obtains a task specified for the agent from the platform and stores the obtained task in a local task database of a client device that hosts the agent.

ある実施形態の複数のコンポーネントはタスク実行コンポーネントを有する。   The components of an embodiment have task execution components.

ある実施形態の複数のコンポーネントは、タスクデータベースを監視し、タスクデータベースから各タスクを取得し、取得したタスクをタスク実行コンポーネントに供給し、未完了ステータスを有するように取得したタスクに指示するランナーコンポーネントを含む。   A plurality of components of an embodiment is a runner component that monitors a task database, obtains each task from the task database, supplies the obtained task to a task execution component, and instructs the obtained task to have an incomplete status including.

方法は、タスク実行コンポーネントがタスクを実行し、タスク実行のステータスをランナーコンポーネントに報告することを有する。   The method includes the task execution component executing the task and reporting the task execution status to the runner component.

方法は、ランナーコンポーネントがステータスをタスクデータベースに報告することを有する。   The method includes a runner component reporting status to a task database.

ある実施形態の複数のコンポーネントは、完了ステータスを有するタスクについてタスクデータベースを監視し、完了されたタスクのステータス情報をプラットフォームに報告する更新コンポーネントを含む。   The components of an embodiment include an update component that monitors the task database for tasks with completion status and reports status information of completed tasks to the platform.

方法は、プラットフォームがステータス情報に応答して複数のデータベースを更新することを有する。   The method includes the platform updating a plurality of databases in response to the status information.

方法は、複数のエージェントがメタデータを生成することを有し、あるエージェントに生成されるメタデータはそのエージェントがアクセス可能なコンテンツに対応する。   The method includes a plurality of agents generating metadata, wherein the metadata generated by an agent corresponds to content accessible to that agent.

方法は、エージェントが、エージェントがアクセス可能な各ファイルのコンテンツをスキャンすることによってメタデータを生成することを有する。   The method includes the agent generating metadata by scanning the contents of each file accessible to the agent.

方法は、エージェントが、ファイルのコンテンツを複数のフラグメントに分割することによってメタデータを生成することを有し、各フラグメントはファイルの可変サイズコンポーネントを有する。   The method includes generating metadata by splitting the contents of a file into a plurality of fragments, each fragment having a variable size component of the file.

ある実施形態の可変サイズフラグメントは、予め指定された最小長と最大長との間である。   In some embodiments, the variable size fragment is between a pre-specified minimum and maximum length.

方法は、エージェントが、複数のフラグメントを表す複数のブロブを生成することによってメタデータを生成することを有し、各ブロブはフラグメントを表す。   The method includes the agent generating metadata by generating a plurality of blobs that represent a plurality of fragments, each blob representing a fragment.

方法は、エージェントが、コンテンツの各バイトについて、コンテンツのコンポーネントにハッシュアルゴリズムを実行することを有するデータフィンガプリンティングアルゴリズムを用いて複数のブロブを生成することを有し、ハッシュアルゴリズムはデータの指定されたパターンを特定するように設定される。   The method includes generating a plurality of blobs using a data fingerprinting algorithm, wherein the agent has to perform a hash algorithm on a component of the content for each byte of content, the hash algorithm being specified for the data It is set to specify the pattern.

ある実施形態のブロブの生成は、ブロブで表されるフラグメントがファイルの残り部分から分離された位置でのハッシュ値を含んだブロブの記述を生成することを有する。   The generation of a blob in one embodiment includes generating a blob description that includes a hash value at a location where the fragment represented by the blob is separated from the rest of the file.

ある実施形態のブロブの生成は、ブロブで表されるフラグメントの分割位置に基づくオフセット値を生成することを有する。   In some embodiments, the generation of blobs comprises generating an offset value based on the fragmentation position of the fragment represented by the blob.

ある実施形態のブロブの生成は、ブロブの完全なコンテンツのハッシュを生成することを有し、ブロブの完全なコンテンツのハッシュはブロブの識別子である。   The blob generation of an embodiment includes generating a blob complete content hash, where the blob complete content hash is a blob identifier.

ある実施形態のブロブの生成は、ファイルのコンテンツを表すブロブのリストを生成することを含む。   The generation of blobs in one embodiment includes generating a list of blobs that represent the contents of the file.

ある実施形態のブロブの生成は、ファイルのコンテンツを表すブロブのリストのハッシュを有するコンテンツハッシュを生成することを含み、コンテンツハッシュはファイルの識別子である。   In some embodiments, the generation of blobs includes generating a content hash having a hash of a list of blobs representing the content of the file, where the content hash is an identifier for the file.

ある実施形態のブロブの生成は、ファイルに対応するファイル名のハッシュを有する名称ハッシュを生成することを含み、コンテンツハッシュはファイルの識別子である。   In some embodiments, the generation of the blob includes generating a name hash having a hash of the file name corresponding to the file, where the content hash is an identifier of the file.

ある実施形態のブロブの生成は、コンテンツハッシュと名称ハッシュとの組み合わせのハッシュを有するファイルハッシュを生成することを含む。   Generating a blob in an embodiment includes generating a file hash having a hash of a combination of a content hash and a name hash.

ある実施形態のブロブの生成は、ファイルのコンテンツに対応するファイル名およびファイルパスのハッシュを有するパスハッシュを生成することを含む。   The generation of a blob in an embodiment includes generating a path hash having a file name corresponding to the contents of the file and a hash of the file path.

ある実施形態のブロブの生成は、ファイルのファイルメタデータのハッシュを有するメタデータハッシュを生成することを含む。   Generating a blob of an embodiment includes generating a metadata hash having a file metadata hash of the file.

方法は、プラットフォームがファイルに対するレコードを生成することを有し、レコードはファイルのブロブハッシュ、コンテンツハッシュ、ファイルハッシュ、パスハッシュ、およびメタデータハッシュを有する。   The method includes the platform generating a record for the file, the record having a file blob hash, content hash, file hash, path hash, and metadata hash.

ある実施形態の複数のデータベースはライブラリデータベースを含み、ライブラリデータベースはレコードを有する。   In some embodiments, the plurality of databases includes a library database, the library database having records.

ある実施形態のブロブの生成は、ブロブのサイズを生成することを有する。   Generating the blob of an embodiment includes generating the size of the blob.

ある実施形態のファイルは、ファイルを構成するブロブのリストとして記述される。   The file of an embodiment is described as a list of blobs that make up the file.

方法は、各エージェントが、エージェントをホストするクライアントデバイスにブロブをローカル保存し、過去に報告されていないブロブをプラットフォームの中央ストレージに転送することを有する。   The method includes each agent storing a blob locally on the client device hosting the agent and transferring a blob that has not been reported to the central storage of the platform.

プラットフォームはポリシデータベースおよびルールエンジンを有する。   The platform has a policy database and a rules engine.

方法は、コンテンツの各ファイルを解析することを有する。   The method includes analyzing each file of content.

方法は、コンテンツの各ファイルを、業務コンテンツおよび個人コンテンツの少なくとも1つとして明確にすることを有する。   The method comprises defining each file of content as at least one of business content and personal content.

方法は、コンテンツの各ファイルの機密レベルを業務コンテンツについて判定することを有する。   The method includes determining a security level for each file of content for operational content.

方法は、コンテンツの各ファイルをスキャンしてキー用語を抽出することを有する。   The method includes scanning each file of content to extract key terms.

方法は、キー用語を企業にわたって比較することと企業固有のキー用語のリストを生成することとを有する。   The method includes comparing key terms across companies and generating a list of company specific key terms.

機密レベルを判定することは、キー用語のうち特定のキー用語を特定することを有する。   Determining the confidentiality level includes identifying a specific key term among the key terms.

メタデータを生成することは、対応するコンテンツの機密レベルを含むようにメタデータを生成することを含む。   Generating the metadata includes generating the metadata to include the confidentiality level of the corresponding content.

方法は、機密レベルに基づいてコンテンツの各ファイルへのアクセスを制御することを含む。   The method includes controlling access to each file of content based on a security level.

アクセスを制御することはコンテンツの各ファイルを閲覧することを制御することを有する。   Controlling access includes controlling browsing of each file of content.

アクセスを制御することはコンテンツの各ファイルをダウンロードすることを制御することを有する。   Controlling access includes controlling downloading of each file of content.

アクセスを制御することはコンテンツの各ファイルにアクセスすることを制御することを有する。   Controlling access includes controlling access to each file of content.

アクセスを制御することはコンテンツの各ファイルをコピーすることを制御することを有する。   Controlling access includes controlling copying of each file of content.

アクセスを制御することはコンテンツの各ファイルを配信することを制御することを有する。   Controlling access includes controlling the distribution of each file of content.

方法は、コンテンツの各ファイルをコンテンツからの推論に基づいて明確にすることを有する。   The method includes clarifying each file of content based on inferences from the content.

方法は、コンテンツの各ファイルをコンテンツの構文に基づいて明確にすることを有する。   The method includes clarifying each file of content based on the syntax of the content.

方法は、複数の場所および複数のエージェントの少なくとも1つにまたがってコンテンツの業務コンテンツを特定することを有し、業務コンテンツを特定することが、ドキュメント名、ドキュメントサイズ、プロキシミティ、キーワード比較、およびハッシュ比較の少なくとも1つを用いることを有する。   The method includes identifying operational content of content across at least one of multiple locations and multiple agents, wherein identifying the operational content includes document name, document size, proximity, keyword comparison, and Using at least one of the hash comparisons.

方法は、コンテンツのファイルにアクセスする複数のデバイス間の共同制作を制御することを有する。   The method comprises controlling collaboration between multiple devices accessing a file of content.

方法は、コンテンツのファイルを同時に編集する複数のデバイス間でのコンテンツの編集を制御することを有する。   The method includes controlling editing of content between multiple devices that simultaneously edit the file of content.

方法は、コンテンツのファイルに関するアクティビティを追跡することを有する。   The method includes tracking activity related to files of content.

方法は、コンテンツのファイルの修正履歴を追跡することを有する。   The method includes tracking a modification history of the content file.

方法は、モバイルデバイスを通じたコンテンツへのアクセスを監視および制御することを含む、モバイルデバイス管理を有する。   The method has mobile device management that includes monitoring and controlling access to content through the mobile device.

モバイルデバイス管理は、モバイルデバイスの場所を追跡することを有する。   Mobile device management includes tracking the location of mobile devices.

モバイルデバイス管理は、場所に基づいてコンテンツへのアクセスを制御することを有する。   Mobile device management includes controlling access to content based on location.

モバイルデバイス管理は、モバイルデバイスのデータを追跡することを有する。   Mobile device management includes tracking mobile device data.

方法は、コンソールをプラットフォームに接続することを有する。コンソールは、コンテンツに関連する自動化されたアクティビティ監視、検査、報告を含む。   The method includes connecting a console to the platform. The console includes automated activity monitoring, inspection and reporting related to the content.

方法は、コンテンツに関するアクティビティを、コンソールを通じて制御することを有する。方法は、コンソールを通じて場所を制御することを有する。   The method includes controlling activity related to the content through the console. The method includes controlling the location through the console.

アクティビティを制御することは、コンテンツの各ファイルを閲覧することを制御すること、コンテンツの各ファイルをダウンロードすることを制御すること、コンテンツの各ファイルにアクセスすることを制御すること、コンテンツの各ファイルをコピーすることを制御すること、およびコンテンツの各ファイルを配信することを制御すること、の少なくとも1つを有する。   Controlling activity controls browsing each file of content, controlling downloading each file of content, controlling access to each file of content, each file of content And at least one of controlling the distribution of each file of the content.

ここで記述した実施形態は、プロセッサを有するプラットフォームを複数のデータベースに接続することを有する方法を含む。方法は、プラットフォームに接続された複数のエージェントを有するグリッドを形成することを有する。各エージェントは、クライアントデバイス上で稼働するプラットフォームのエージェントである。方法は、各エージェントで、エージェントがアクセス可能なコンテンツの複数のフラグメントをハッシュすることによりメタデータを生成することを有する。メタデータは、複数のエージェントに対応する複数のクライアントデバイスがアクセス可能なメモリのコンテンツに対応する。方法は、コンテンツの代わりにメタデータをプラットフォームに供給することを有する。方法は、コンテンツの保存、転送、および処理の少なくとも1つを制御するタスクを含む複数のタスクを、メタデータを用いて生成することを有する。タスクは、そのタスクを受け持つエージェントがアクセス可能なコンテンツに実行される処理動作である。方法は、複数のエージェントに複数のタスクを割り当てることを有する。   Embodiments described herein include a method that includes connecting a platform having a processor to a plurality of databases. The method includes forming a grid having a plurality of agents connected to the platform. Each agent is a platform agent that runs on the client device. The method includes generating metadata at each agent by hashing multiple fragments of content accessible to the agent. The metadata corresponds to the contents of a memory that can be accessed by a plurality of client devices corresponding to a plurality of agents. The method includes providing metadata to the platform instead of content. The method includes generating a plurality of tasks using the metadata, including a task that controls at least one of content storage, transfer, and processing. A task is a processing operation that is performed on content accessible to an agent responsible for the task. The method includes assigning multiple tasks to multiple agents.

ここで記述した実施形態は、プロセッサを有するプラットフォームを複数のデータベースに接続することと、プラットフォームに接続された複数のエージェントを有するグリッドを形成することと、ここで、各エージェントは、クライアントデバイス上で稼働するプラットフォームのエージェントであり、各エージェントで、エージェントがアクセス可能なコンテンツの複数のフラグメントをハッシュすることによりメタデータを生成することと、ここで、メタデータは、複数のエージェントに対応する複数のクライアントデバイスがアクセス可能なメモリのコンテンツに対応し、コンテンツの代わりにメタデータをプラットフォームに供給することと、コンテンツの保存、転送、および処理の少なくとも1つを制御するタスクを含む複数のタスクを、メタデータを用いて生成することことと、ここで、タスクは、そのタスクを受け持つエージェントがアクセス可能なコンテンツに実行される処理動作であり、複数のエージェントに複数のタスクを割り当てることと、を有する方法を含む。   Embodiments described herein connect a platform having a processor to a plurality of databases and form a grid having a plurality of agents connected to the platform, where each agent is on a client device. An agent for a running platform, where each agent generates metadata by hashing multiple fragments of content accessible to the agent, where the metadata is a plurality of corresponding multiple agents A plurality of tasks that correspond to the contents of the memory accessible to the client device, including providing the metadata to the platform instead of the contents and controlling at least one of the storage, transfer, and processing of the contents A task is generated using metadata, and a task is a processing operation performed on content accessible to an agent responsible for the task, and a plurality of tasks are assigned to a plurality of agents. Including a method.

ここで記述した実施形態は、プロセッサを有するプラットフォームを複数のデータベースに接続することを有する方法を含む。方法は、プラットフォームに接続された複数のエージェントを有するグリッドを形成することを有する。各エージェントは、クライアントデバイス上で稼働するプラットフォームのエージェントである。方法は、各クライアントデバイスの各エージェントが、クライアントデバイスがアクセス可能なメモリのコンテンツのメタデータをプラットフォームに供給することを有する。方法は、メタデータを用いてコンテンツの場所を調べることを有する。   Embodiments described herein include a method that includes connecting a platform having a processor to a plurality of databases. The method includes forming a grid having a plurality of agents connected to the platform. Each agent is a platform agent that runs on the client device. The method includes that each agent of each client device provides the platform with metadata of the contents of memory accessible to the client device. The method includes using the metadata to locate the content.

方法は、メタデータを用いて、コンテンツの状態を維持するための動作を表すゴールを生成することを有する。方法は、メタデータを用いて、ゴールに対応する複数のタスクを生成することを有する。方法は、各タスクを、タスクに対応するコンテンツにアクセス可能なエージェントに割り当てることを有する。タスクはプラットフォームによって命令される処理動作であり、エージェントによって、そのエージェントがアクセス可能なコンテンツに実行される。複数のエージェントによって供給されるメタデータは、複数のエージェントによって実行される複数のタスクの情報を含む。   The method includes using the metadata to generate a goal that represents an action for maintaining the state of the content. The method includes generating a plurality of tasks corresponding to the goal using the metadata. The method includes assigning each task to an agent that can access content corresponding to the task. A task is a processing operation instructed by the platform and is executed by an agent on content accessible to that agent. The metadata supplied by the plurality of agents includes information on a plurality of tasks executed by the plurality of agents.

ここで記述した実施形態は、プロセッサを有するプラットフォームを複数のデータベースに接続することと、プラットフォームに接続された複数のエージェントを有するグリッドを形成することと、ここで、各エージェントは、クライアントデバイス上で稼働するプラットフォームのエージェントであり、各クライアントデバイスの各エージェントが、クライアントデバイスがアクセス可能なメモリのコンテンツのメタデータをプラットフォームに供給することと、メタデータを用いてコンテンツの場所を調べることと、メタデータを用いて、コンテンツの状態を維持するための動作を表すゴールを生成することと、メタデータを用いて、ゴールに対応する複数のタスクを生成することと、各タスクを、タスクに対応するコンテンツにアクセス可能なエージェントに割り当てることと、を有し、タスクはプラットフォームによって命令される処理動作であり、エージェントによって、そのエージェントがアクセス可能なコンテンツに実行され、複数のエージェントによって供給されるメタデータは、複数のエージェントによって実行される複数のタスクの情報を含む、方法を含む。   Embodiments described herein connect a platform having a processor to a plurality of databases and form a grid having a plurality of agents connected to the platform, where each agent is on a client device. A running platform agent, where each agent on each client device supplies the platform with content metadata in memory accessible to the client device, uses the metadata to locate the content, Use data to generate goals that represent actions to maintain the state of content, use metadata to generate multiple tasks that correspond to goals, and each task to a task Access content A task is a processing operation instructed by the platform, performed by the agent on content accessible to the agent, and the metadata provided by multiple agents is multiple Including a method comprising information of a plurality of tasks performed by a plurality of agents.

ここで記述した実施形態は、プロセッサを有するプラットフォームと、複数のデータベースとの間のカップリングを確立することを有する方法を含む。方法は、プラットフォームに複数のエージェントを接続してグリッドを形成することを有する。複数のエージェントの各エージェントは、クライアントデバイス上で稼働するプラットフォームのエージェントである。方法は、各エージェントで、複数のエージェントに対応する複数のクライアントデバイスがアクセス可能なメモリのコンテンツを表すメタデータを生成することを有する。生成することは、複数のフラグメントを表す複数のブロブを生成するためにコンテンツの複数のフラグメントをハッシュすることを含む。方法は、コンテンツの代わりにメタデータをプラットフォームに供給することを有する。方法は、メタデータを用いて複数のタスクを生成することを有する。タスクは、そのタスクを受け持つエージェントがアクセス可能なコンテンツに実行される処理動作である。複数のタスクは、コンテンツの監視、保存、転送、および処理の少なくとも1つであるタスクを含む。方法は、複数のエージェントに複数のタスクを割り当てることを有する。   Embodiments described herein include a method that includes establishing a coupling between a platform having a processor and a plurality of databases. The method includes connecting a plurality of agents to the platform to form a grid. Each agent of the plurality of agents is a platform agent that runs on the client device. The method includes generating, at each agent, metadata representing the contents of memory accessible to a plurality of client devices corresponding to the plurality of agents. Generating includes hashing the plurality of fragments of content to generate a plurality of blobs that represent the plurality of fragments. The method includes providing metadata to the platform instead of content. The method includes generating a plurality of tasks using the metadata. A task is a processing operation that is performed on content accessible to an agent responsible for the task. The plurality of tasks include a task that is at least one of content monitoring, storage, transfer, and processing. The method includes assigning multiple tasks to multiple agents.

ここで記述した実施形態は、プロセッサを有するプラットフォームと複数のデータベースとの間のカップリングを確立すること、プラットフォームに複数のエージェントを接続してグリッドを形成することと、ここで、複数のエージェントの各エージェントは、クライアントデバイス上で稼働するプラットフォームのエージェントであり、各エージェントで、複数のエージェントに対応する複数のクライアントデバイスがアクセス可能なメモリのコンテンツを表すメタデータを生成することと、ここで、生成することは、複数のフラグメントを表す複数のブロブを生成するためにコンテンツの複数のフラグメントをハッシュすることを含み、コンテンツの代わりにメタデータをプラットフォームに供給することと、メタデータを用いて複数のタスクを生成することと、ここで、タスクは、そのタスクを受け持つエージェントがアクセス可能なコンテンツに実行される処理動作であり、また、複数のタスクは、コンテンツの監視、保存、転送、および処理の少なくとも1つであるタスクを含み、複数のエージェントに複数のタスクを割り当てることと、を有する方法を含む。   Embodiments described herein include establishing a coupling between a platform having a processor and a plurality of databases, connecting a plurality of agents to the platform to form a grid, and Each agent is a platform agent that runs on a client device, where each agent generates metadata representing the contents of memory accessible to multiple client devices corresponding to multiple agents, where Generating includes hashing a plurality of fragments of content to generate a plurality of blobs representing the plurality of fragments, supplying metadata to the platform instead of the content, and using the metadata to of Task, where a task is a processing action performed on content accessible to the agent responsible for that task, and multiple tasks are responsible for content monitoring, storage, transfer and processing Including a task that is at least one and assigning a plurality of tasks to a plurality of agents.

上述の通り、ここに記述した実施形態とともに用いるのに好適なコンピュータネットワークは、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、インターネット、または、ワールドワイドウェブ、公衆インターネット、プライベートインターネット、プライベートコンピュータネットワーク、公衆ネットワーク、モバイルネットワーク、セルラネットワーク、付加価値ネットワークなどのような、他の接続サービスおよびネットワーク派生物を含む。ネットワークに結合または接続されるコンピューティングデバイスは、パーソナルコンピュータ、ワークステーション、サーバ、ミニコンピュータ、メインフレームコンピュータ、ラップトップコンピュータ、モバイルコンピュータ、パームトップコンピュータ、ハンドヘルドコンピュータ、携帯電話機、テレビセットトップボックス、またはそれらの組み合わせのような端末デバイスを含む、ネットワークへのアクセスを許す、マイクロプロセッサが制御する任意のデバイスであってよい。コンピュータネットワークは複数のLAN、複数のWAN、複数のインターネット、および複数のコンピュータの1つ以上を含んでよい。コンピュータはサーバ、クライアント、またはそれらの組み合わせとしての機能を果たすことができる。   As noted above, suitable computer networks for use with the embodiments described herein are a local area network (LAN), a wide area network (WAN), the Internet, or the World Wide Web, the public Internet, the private Internet, a private computer. Includes other connection services and network derivatives such as networks, public networks, mobile networks, cellular networks, value added networks, and the like. A computing device coupled or connected to the network can be a personal computer, workstation, server, minicomputer, mainframe computer, laptop computer, mobile computer, palmtop computer, handheld computer, mobile phone, television set top box, or It can be any device controlled by the microprocessor that allows access to the network, including terminal devices such as combinations thereof. The computer network may include one or more of multiple LANs, multiple WANs, multiple Internets, and multiple computers. The computer can function as a server, a client, or a combination thereof.

ここで記述した構成要素は単一システム、複数システム、および/または地理的に分かれたシステムの構成要素でありうる。ここで記述した構成要素はまた、単一システム、複数システム、および/または地理的に分かれたシステムのサブシステムまたはサブコンポーネントでありうる。ここで記述した構成要素は、ホストシステムまたはホストシステムに接続されたシステムの1つ以上の他の構成要素(不図示)と接続されてよい。   The components described herein can be components of a single system, multiple systems, and / or geographically separated systems. The components described herein can also be subsystems or subcomponents of a single system, multiple systems, and / or geographically separated systems. The components described herein may be connected to one or more other components (not shown) of the host system or systems connected to the host system.

ここで記述した構成要素は、処理システムを含んでもよいし、処理システムの下でおよび/またはと共同して稼働してもよい。処理システムは、本技術分野で知られているように、共に動作する、プロセッサを用いるデバイスまたはコンピューティングデバイスの任意の集団、あるいは処理システムまたはデバイスの構成要素の任意の集団、を含む。例えば、処理システムは、ポータブルコンピュータ、通信ネットワーク内で動作するポータブル通信デバイス、および/またはネットワークサーバの1つ以上を含むことができる。ポータブルコンピュータは、パーソナルコンピュータ、携帯情報端末(PDA)、ポータブルコンピューティングデバイス、およびポータブル通信デバイスから選択された複数のデバイスおよび/またはデバイスの組み合わせのどれであってもよいが、それらに限定されない。処理システムはより大きなコンピュータシステム内部の構成要素を含んでもよい。   The components described herein may include a processing system or may operate under and / or in cooperation with a processing system. A processing system includes any group of devices or computing devices that use a processor or components of a processing system or device that operate together, as is known in the art. For example, the processing system can include one or more of a portable computer, a portable communication device operating within a communication network, and / or a network server. The portable computer may be any of a plurality of devices and / or combinations of devices selected from, but not limited to, personal computers, personal digital assistants (PDAs), portable computing devices, and portable communication devices. The processing system may include components within a larger computer system.

ある実施形態の処理システムは少なくとも1つのプロセッサおよび、少なくとも1つのメモリデバイスまたはサブシステムを含む。処理システムはまた、少なくとも1つのデータベースを含むか、少なくとも1つのデータベースに接続されてよい。ここで一般に用いられる用語「プロセッサ」は、1つ又は複数の中央処理ユニット(CPU)、デジタルシグナルプロセッサ(DSP)、特定用途向け集積回路(ASIC)、などの、任意の論理処理ユニットを指す。   The processing system of an embodiment includes at least one processor and at least one memory device or subsystem. The processing system may also include or be connected to at least one database. The term “processor” as generally used herein refers to any logical processing unit, such as one or more central processing units (CPUs), digital signal processors (DSPs), application specific integrated circuits (ASICs), and the like.

文脈が明らかに異なっていない限り、明細書および特許請求の範囲を通じて、「有する」「有している」および同様の単語は排他的もしくは網羅的な意味とは対照的に、包括的な意味として、つまりは「含むが、それに限定されない」という意味に解されるものである。単数形もしくは複数形を用いている単語もまた、複数または単数をそれぞれ含む。さらに、「ここで」「以下で」「上で」「下で」および同様の意味の単語は、本願で用いられる場合、本願全体を指し、本願のどこか特定の部分を指すものではない。単語「または」は、2つ以上の項目のリストに関連して用いられる場合、その単語の以下の解釈の全てをカバーする:リスト内の項目のどれか、リスト内の項目の全て、およびリスト内の項目の任意の組み合わせ。   Unless the context clearly dictates, throughout the specification and claims, the words “having”, “having” and similar words have a comprehensive meaning, as opposed to an exclusive or exhaustive meaning. That is, it is understood to mean "including but not limited to". Words using the singular or plural form also include the plural or singular number, respectively. Furthermore, “here”, “below”, “above”, “below” and similar meaning words when used in this application refer to the entire application and do not refer to any particular part of the application. The word "or" when used in connection with a list of two or more items covers all of the following interpretations of that word: any of the items in the list, all of the items in the list, and the list Any combination of items in

実施形態および、対応するシステムならびに方法の記述は、網羅的であること、またはシステムおよび方法を開示された形態そのものに限定することを意図していない。システムおよび方法の特定の実施形態、およびシステムおよび方法の例は例示目的で記述されており、関連する技術分野に属する当業者が理解するように、システムおよび方法の範囲内で様々な等価的な変形物が可能である。ここで提供されるシステムおよび方法の教示は、上に記述したシステムおよび方法のためだけでなく、他のシステムおよび方法にも適用可能である。   The descriptions of embodiments and corresponding systems and methods are not intended to be exhaustive or to limit the systems and methods to the precise forms disclosed. Specific embodiments of the systems and methods, and examples of systems and methods are described for purposes of illustration, and various equivalents within the scope of the systems and methods will be appreciated by those skilled in the relevant art. Variations are possible. The teachings of the systems and methods provided herein are applicable not only to the systems and methods described above, but also to other systems and methods.

上で記述した様々な実施形態の要素および振る舞いは、別の実施形態を提供するために組み合わせることができる。これらの、また他の変更は、上述した説明を踏まえてシステムおよび方法に適用することができる。   The elements and behaviors of the various embodiments described above can be combined to provide another embodiment. These and other changes can be applied to the systems and methods in light of the above description.

Claims (125)

プロセッサを有するプラットフォームを複数のデータベースに接続することと、
前記プラットフォームに複数のエージェントを接続してグリッドを形成することと、ここで、前記複数のエージェントの各エージェントは、クライアントデバイス上で稼働する前記プラットフォームのエージェントであり、
各エージェントでメタデータを生成してコンテンツの代わりに前記メタデータを前記プラットフォームに供給することと、ここで、前記メタデータは、前記複数のエージェントに対応する複数のクライアントデバイスがアクセス可能なメモリの前記コンテンツに対応し、
前記メタデータを用いて前記コンテンツの場所を調べることと、
前記メタデータを用いて、前記コンテンツの状態を維持するための動作を表すゴールを生成することと、
前記メタデータを用いて前記ゴールに対応する複数のタスクを生成することと、
各タスクを、前記タスクに対応する前記コンテンツにアクセス可能なエージェントに割り当てることと、を有し、各タスクは前記プラットフォームによって命令される処理動作であり、エージェントによって、該エージェントがアクセス可能なコンテンツに実行される、方法。
Connecting a platform having a processor to multiple databases;
Connecting a plurality of agents to the platform to form a grid, wherein each agent of the plurality of agents is an agent of the platform running on a client device;
Generating metadata at each agent and supplying the metadata to the platform instead of content, wherein the metadata is stored in a memory accessible to a plurality of client devices corresponding to the plurality of agents; Corresponding to the content,
Using the metadata to locate the content;
Using the metadata to generate a goal representing an action for maintaining the state of the content;
Generating a plurality of tasks corresponding to the goal using the metadata;
Assigning each task to an agent accessible to the content corresponding to the task, wherein each task is a processing operation instructed by the platform, to the content accessible to the agent by the agent. The method that is performed.
前記プラットフォームが前記複数のエージェントのマスターコントローラとして動作することを有し、前記複数のエージェントは前記複数のタスクによって制御されるように前記プラットフォームと協働する、請求項1に記載の方法。   The method of claim 1, wherein the platform comprises acting as a master controller for the plurality of agents, wherein the plurality of agents cooperate with the platform to be controlled by the plurality of tasks. 前記複数のエージェントの各エージェントが、前記プラットフォームおよび前記複数のエージェントの他の全てのエージェントとは独立して機能することを含む、請求項1に記載の方法。   The method of claim 1, comprising each agent of the plurality of agents functioning independently of the platform and all other agents of the plurality of agents. 前記プラットフォームが前記コンテンツを受信する代わりに前記コンテンツの前記メタデータを受信することを有し、前記複数のエージェントをホストする複数のクライアントデバイスは前記コンテンツを含む分散ストレージデバイスを有する、請求項1に記載の方法。   The platform of claim 1, comprising receiving the metadata of the content instead of receiving the content, and wherein a plurality of client devices hosting the plurality of agents have a distributed storage device containing the content. The method described. 前記プラットフォームが、前記複数のエージェントの前記コンテンツのマスタインデックスを前記複数のデータベースで維持するために前記メタデータを用いることを有する、請求項1に記載の方法。   The method of claim 1, wherein the platform comprises using the metadata to maintain a master index of the content of the plurality of agents in the plurality of databases. 前記メタデータが前記コンテンツの場所に関するデータを有する、請求項1に記載の方法。   The method of claim 1, wherein the metadata comprises data regarding the location of the content. 前記メタデータが前記コンテンツの状態に関するデータを有する、請求項1に記載の方法。   The method of claim 1, wherein the metadata comprises data relating to the state of the content. 前記メタデータが前記複数のエージェントの身元に関するデータを有する、請求項1に記載の方法。   The method of claim 1, wherein the metadata comprises data regarding the identity of the plurality of agents. 前記メタデータが、各エージェントがアクセス可能な前記コンテンツに関するデータを有する、請求項1に記載の方法。   The method of claim 1, wherein the metadata comprises data regarding the content accessible to each agent. 前記メタデータが前記複数のエージェントによって実行される前記複数のタスクの情報を有する、請求項1に記載の方法。   The method of claim 1, wherein the metadata comprises information of the plurality of tasks executed by the plurality of agents. 前記タスクは、前記グリッドにわたって前記コンテンツの場所を追跡することに関する、請求項1に記載の方法。   The method of claim 1, wherein the task relates to tracking the location of the content across the grid. 前記タスクは、前記グリッドにわたって前記コンテンツの保存を管理することに関する、請求項1に記載の方法。   The method of claim 1, wherein the task relates to managing storage of the content across the grid. 前記タスクは、前記グリッドにわたって前記コンテンツの移動を管理することに関する、請求項1に記載の方法。   The method of claim 1, wherein the task relates to managing movement of the content across the grid. 前記タスクは、前記グリッドにわたって前記コンテンツを処理することに関する、請求項1に記載の方法。   The method of claim 1, wherein the task relates to processing the content across the grid. 各タスクは、該タスクについての完了の条件を有する、請求項1に記載の方法。   The method of claim 1, wherein each task has a completion condition for the task. 前記複数のエージェントが前記プラットフォームに命令されるように前記コンテンツを集合的に監視することを有する、請求項1に記載の方法。   The method of claim 1, comprising collectively monitoring the content such that the plurality of agents are instructed to the platform. 前記複数のエージェントが前記プラットフォームに命令されるように前記コンテンツを集合的に保存することを有する、請求項1に記載の方法。   The method of claim 1, comprising storing the content collectively such that the plurality of agents are instructed to the platform. 前記複数のエージェントが前記プラットフォームに命令されるように前記コンテンツを集合的に転送することを有する、請求項1に記載の方法。   The method of claim 1, comprising transferring the content collectively such that the plurality of agents are instructed to the platform. 前記複数のエージェントが前記プラットフォームに命令されるように前記コンテンツに処理動作を集合的に実施することを有する、請求項1に記載の方法。   The method of claim 1, comprising collectively performing processing operations on the content such that the plurality of agents are instructed to the platform. 各クライアントデバイスの各エージェントが、該クライアントデバイスがアクセス可能なメモリのコンテンツにインデックスを付与することを有する、請求項1に記載の方法。   The method of claim 1, wherein each agent of each client device includes indexing content of memory accessible to the client device. 前記複数のデータベースは、前記プラットフォームが利用可能なエージェントおよび各エージェントの情報を有するエージェントデータベースを含む、請求項1に記載の方法。   The method of claim 1, wherein the plurality of databases includes an agent database having agents available to the platform and information for each agent. 各エージェントは少なくとも1つのライブラリを含み、ライブラリは前記エージェントがリードアクセスおよびライトアクセスの少なくとも1つを含むアクセスが可能なデバイスを表す、請求項1に記載の方法。   The method of claim 1, wherein each agent includes at least one library, the library representing an accessible device that the agent includes at least one of read access and write access. 前記複数のデータベースは、前記複数のエージェントに対応するライブラリのリストを有するライブラリデータベースを含み、前記グリッドの各ライブラリは前記ライブラリデータベース内で別個に表される、請求項22に記載の方法。   23. The method of claim 22, wherein the plurality of databases includes a library database having a list of libraries corresponding to the plurality of agents, and each library of the grid is represented separately in the library database. 各エージェントが該エージェントに対応する各ライブラリにアクセス可能であることを有する、請求項23に記載の方法。   24. The method of claim 23, wherein each agent has access to each library corresponding to the agent. 前記複数のデータベースは前記ゴールのリストを有するゴールデータベースを含み、前記ゴールのリストの各ゴールは前記プラットフォームによって生成されるとともに、少なくとも1つのライブラリに対応し、前記ゴールは対応するライブラリコンテンツに動作を実行するために用いられる、請求項22に記載の方法。   The plurality of databases includes a goal database having the list of goals, each goal in the list of goals is generated by the platform and corresponds to at least one library, and the goal operates on the corresponding library content. 23. The method of claim 22, used to perform. 前記ゴールのリストを、タスクが実行されるライブラリのコレクションを含むように生成することを有する、請求項25に記載の方法。   26. The method of claim 25, comprising generating the list of goals to include a collection of libraries on which tasks are performed. 各ゴールは少なくとも1つのライブラリに対応し、少なくとも1つのタスクを対応するライブラリのコンテンツに実行するために用いられる、請求項25に記載の方法。   26. The method of claim 25, wherein each goal corresponds to at least one library and is used to perform at least one task on the contents of the corresponding library. 前記プラットフォームが前記複数のエージェントの複数のライブラリを読むために前記ゴールを用いることを有する、請求項25に記載の方法。   26. The method of claim 25, wherein the platform uses the goal to read a plurality of libraries of the plurality of agents. 前記プラットフォームが、前記複数のエージェントがアクセス可能な前記コンテンツ内の矛盾点および相違点の少なくとも一方を特定するために前記ゴールを用いることを有する、請求項25に記載の方法。   26. The method of claim 25, wherein the platform comprises using the goal to identify at least one of inconsistencies and differences in the content accessible to the plurality of agents. 前記プラットフォームが、前記コンテンツ内で特定された矛盾点および相違点の少なくとも一方を除去するための少なくとも1つのタスクを生成するために前記ゴールを用いることを有する、請求項29に記載の方法。   30. The method of claim 29, wherein the platform comprises using the goal to generate at least one task to remove at least one of inconsistencies and differences identified in the content. 前記複数のデータベースがワークデータベースを含む、請求項1に記載の方法。   The method of claim 1, wherein the plurality of databases comprises a work database. 前記プラットフォームが、各エージェントに対応するワークデータベースを生成することを有し、前記ワークデータベースは前記対応するエージェントによって実行されるタスクを含む、請求項31に記載の方法。   32. The method of claim 31, wherein the platform comprises generating a work database corresponding to each agent, the work database including tasks performed by the corresponding agent. 前記ワークデータベースは、対応するエージェントによって実行される各タスクの記述と、該タスクを実行するために該エージェントが必要とする情報とを含む、請求項32に記載の方法。   The method of claim 32, wherein the work database includes a description of each task performed by a corresponding agent and information needed by the agent to perform the task. 前記複数のデータベースは、前記複数のエージェントの能力の情報を有する能力データベースを含む、請求項1に記載の方法。   The method of claim 1, wherein the plurality of databases includes a capability database having capability information of the plurality of agents. 前記複数のデータベースは、前記複数のエージェントのレコードを含み、かつ維持する同期データベースを含む、請求項1に記載の方法。   The method of claim 1, wherein the plurality of databases includes a synchronization database that includes and maintains records of the plurality of agents. 前記同期データベースは、前記複数のエージェントのコンテンツのファイル状態のレコードを含む、請求項35に記載の方法。   36. The method of claim 35, wherein the synchronization database includes a file status record of content of the plurality of agents. 前記同期データベースは各ファイルに対するエントリを含み、前記エントリは前記ファイルに対応するコンテンツハッシュを含み、前記コンテンツハッシュは前記ファイルの前記コンテンツを表すブロブのリストのハッシュを有し、前記ブロブのリストの各ブロブは前記コンテンツ内のファイルのフラグメントのハッシュを有し、前記フラグメントは前記ファイルのコンポーネントである、請求項36に記載の方法。   The synchronization database includes an entry for each file, the entry includes a content hash corresponding to the file, the content hash having a hash of a list of blobs representing the content of the file, and each of the lists of blobs 38. The method of claim 36, wherein a blob has a hash of a fragment of a file in the content, and the fragment is a component of the file. 前記同期データベースは各ファイルに対するエントリを含み、前記エントリは前記エージェントのファイルに対応するコンテンツハッシュを含み、前記コンテンツハッシュは前記ファイルの前記コンテンツを表すブロブのリストのハッシュを有し、前記ブロブのリストの各ブロブは前記コンテンツ内のファイルのフラグメントのハッシュを有し、前記フラグメントは前記ファイルのコンポーネントである、請求項36に記載の方法。   The synchronization database includes an entry for each file, the entry includes a content hash corresponding to the agent's file, the content hash having a hash of a list of blobs representing the content of the file, the list of blobs 38. The method of claim 36, wherein each blob of has a hash of a fragment of a file in the content, the fragment being a component of the file. 前記プラットフォームが、クライアントデバイス間でのコンテンツの転送を、前記複数のエージェントを用いて制御することを含む、請求項1に記載の方法。   The method of claim 1, wherein the platform includes controlling the transfer of content between client devices using the plurality of agents. 前記プラットフォームが、クライアントデバイス間で前記コンテンツを同期することを前記複数のエージェントを用いて制御することを有し、前記コンテンツを前記同期することは前記コンテンツの変化に応答して前記コンテンツを同期することを含む、請求項39に記載の方法。   The platform includes controlling the synchronization of the content between client devices using the plurality of agents, wherein the synchronization synchronizes the content in response to changes in the content; 40. The method of claim 39, comprising: コンテンツの前記転送は、コンテンツの、ブロックレベルかつ非順序的な転送を有する、請求項39に記載の方法。   40. The method of claim 39, wherein the transfer of content comprises a block level and unordered transfer of content. コンテンツの前記転送は、前記コンテンツの第1のブロックを第2のクライアントデバイスから第1のクライアントデバイスへ転送することと、前記コンテンツの第2のブロックを第3のクライアントデバイスから第1のクライアントデバイスへ転送することとを有する、請求項41に記載の方法。   The transfer of content includes transferring a first block of content from a second client device to a first client device, and transferring a second block of content from a third client device to a first client device. 42. The method of claim 41, further comprising: 前記複数のタスクがスキャンタスクを含む、請求項1に記載の方法。   The method of claim 1, wherein the plurality of tasks includes a scan task. 前記スキャンタスクは、前記エージェントが前記エージェントに対応するライブラリを再帰的に監視することと、前記ライブラリに対する変化を前記プラットフォームに報告することとを含む、請求項43に記載の方法。   44. The method of claim 43, wherein the scan task includes the agent recursively monitoring a library corresponding to the agent and reporting changes to the library to the platform. 前記報告することは、変更を含んだ前記ライブラリのファイルを、前記エージェントをホストする前記クライアントデバイスのローカルデータベースに配置することと、前記ローカルデータベースの前記メタデータを前記プラットフォームに供給することとを有する、請求項44に記載の方法。   The reporting comprises placing the library file containing changes in a local database of the client device hosting the agent and providing the metadata of the local database to the platform. 45. The method of claim 44. 前記複数のタスクが書き込みタスクを含む、請求項1に記載の方法。   The method of claim 1, wherein the plurality of tasks includes a write task. 前記書き込みタスクは、前記エージェントがファイルの少なくとも1つのブロブを第1の場所から第2の場所へコピーすることを含み、前記第1の場所および前記第2の場所のそれぞれは、前記グリッドに接続されたクライアントデバイスに対応する、請求項46に記載の方法。   The write task includes the agent copying at least one blob of a file from a first location to a second location, each of the first location and the second location connected to the grid 48. The method of claim 46, corresponding to a designated client device. 前記少なくとも1つのブロブは、前記コンテンツ内のファイルのフラグメントのハッシュを有し、前記フラグメントは前記ファイルのコンポーネントである、請求項47に記載の方法。   48. The method of claim 47, wherein the at least one blob has a hash of a fragment of a file in the content, and the fragment is a component of the file. 前記書き込みタスクが完了の条件を有する、請求項46に記載の方法。   The method of claim 46, wherein the write task has a condition for completion. 前記完了の条件は、前記書き込みタスクに対応する前記ブロブを取得することと、前記書き込みタスク中に上書きされる前記ブロブが正しいファイルに対応していることを特定することと、の少なくとも1つを有する、請求項49に記載の方法。   The completion condition includes at least one of obtaining the blob corresponding to the write task and identifying that the blob to be overwritten during the write task corresponds to a correct file. 50. The method of claim 49, comprising: 前記複数のタスクは、前記コンテンツのファイルを前記エージェントがアクセス可能なデバイスからリモートストレージデバイスにコピーすることを含むアップロードタスクを有する、請求項1に記載の方法。   The method of claim 1, wherein the plurality of tasks comprises an upload task that includes copying the content file from a device accessible to the agent to a remote storage device. 前記エージェントが、前記エージェントがアクセス可能な前記コンテンツに対するファイルの追加を前記プラットフォームに報告することと、それに応答して前記プラットフォームが前記ファイルをアップロードするためのタスクを前記エージェントに割り当てることとを有する、請求項51に記載の方法。   The agent reporting to the platform the addition of a file to the content accessible to the agent and responsively assigning a task to the agent for the platform to upload the file; 52. The method of claim 51. 前記タスクに応答して前記エージェントが、前記ファイルが前記リモートストレージデバイスに存在するかどうかを判定し、前記ファイルが存在しないと判定されると前記ファイルを前記リモートストレージデバイスにアップロードすることを有する、請求項52に記載の方法。   In response to the task, the agent determines whether the file exists on the remote storage device and uploads the file to the remote storage device if it is determined that the file does not exist; 53. The method of claim 52. 前記アップロードタスクは、前記エージェントがファイルの少なくとも1つのブロブを前記エージェントがアクセス可能な前記デバイスから前記リモートストレージデバイスにコピーすることを含む、請求項51に記載の方法。   52. The method of claim 51, wherein the upload task includes the agent copying at least one blob of a file from the device accessible to the agent to the remote storage device. 前記少なくとも1つのブロブは、前記ファイルのフラグメントのハッシュを有し、前記フラグメントは前記ファイルのコンポーネントである、請求項54に記載の方法。   55. The method of claim 54, wherein the at least one blob has a hash of a fragment of the file, and the fragment is a component of the file. 前記複数のタスクが削除タスクを含む、請求項1に記載の方法。   The method of claim 1, wherein the plurality of tasks includes a delete task. タスクは、待機中、未完了、および完了の少なくとも1つを含む複数のフェーズを有し、前記プラットフォームは前記複数のタスクの各タスクのフェーズを追跡する、請求項1に記載の方法。   The method of claim 1, wherein a task has a plurality of phases including at least one of waiting, incomplete, and completion, and wherein the platform tracks the phase of each task of the plurality of tasks. 各エージェントが、該エージェントに割り当てられたタスクを前記クライアントデバイスでローカルに維持することを有する、請求項1に記載の方法。   The method of claim 1, wherein each agent comprises maintaining a task assigned to the agent locally at the client device. 前記エージェントが、割り当てられたタスクを特定するために前記プラットフォームを周期的にポーリングすることを有する、請求項58に記載の方法。   59. The method of claim 58, wherein the agent comprises polling the platform periodically to identify assigned tasks. エージェントは、タスクを完了するために必要で、かつリモートデバイスに配置されたタスク情報を見つけるためのヒエラルキーを有する、請求項1に記載の方法。   The method of claim 1, wherein the agent has a hierarchy for finding task information required to complete the task and located at the remote device. 前記ヒエラルキーは、前記エージェントが前記エージェントをホストする前記クライアントデバイスのローカルデータベースを探索することを有する、請求項60に記載の方法。   61. The method of claim 60, wherein the hierarchy comprises the agent searching a local database of the client device that hosts the agent. 前記ヒエラルキーは、前記エージェントが前記タスク情報を見つけるために前記複数のエージェントの少なくとも1つのピアエージェントと通信することを有する、請求項61に記載の方法。   62. The method of claim 61, wherein the hierarchy comprises the agent communicating with at least one peer agent of the plurality of agents to find the task information. 前記エージェントは、前記タスク情報を所持するピアエージェントのIDを有する、請求項62に記載の方法。   64. The method of claim 62, wherein the agent has an ID of a peer agent possessing the task information. 前記ヒエラルキーは、前記エージェントがリモートストレージデバイスから前記タスク情報を取得することを有する、請求項62に記載の方法。   64. The method of claim 62, wherein the hierarchy comprises the agent obtaining the task information from a remote storage device. 前記エージェントが、前記プラットフォームからピアエージェントのIDを順序付きリストで受信することと、前記順序付きリストに従って前記タスク情報を探索することとを有する、請求項64に記載の方法。   68. The method of claim 64, wherein the agent comprises receiving peer agent IDs from the platform in an ordered list and searching the task information according to the ordered list. 各エージェントは並行に実行する複数のコンポーネントを含む、請求項1に記載の方法。   The method of claim 1, wherein each agent includes a plurality of components executing in parallel. 前記複数のコンポーネントは、前記エージェントに指定されたタスクを前記プラットフォームから取得し、取得したタスクを前記エージェントをホストする前記クライアントデバイスにローカルなタスクデータベースに保存するプロバイダコンポーネントを含む、請求項66に記載の方法。   68. The plurality of components includes a provider component that obtains a task specified for the agent from the platform and stores the obtained task in a task database local to the client device hosting the agent. the method of. 前記複数のコンポーネントはタスク実行コンポーネントを有する、請求項67に記載の方法。   68. The method of claim 67, wherein the plurality of components comprises a task execution component. 前記複数のコンポーネントは、前記タスクデータベースを監視し、前記タスクデータベースから各タスクを取得し、取得したタスクを前記タスク実行コンポーネントに供給し、未完了ステータスを有するように前記取得したタスクに指示するランナーコンポーネントを含む、請求項68に記載の方法。   The plurality of components monitor the task database, acquire each task from the task database, supply the acquired task to the task execution component, and instruct the acquired task to have an incomplete status 69. The method of claim 68, comprising a component. 前記タスク実行コンポーネントが前記タスクを実行し、タスク実行のステータスを前記ランナーコンポーネントに報告することを有する、請求項69に記載の方法。   70. The method of claim 69, wherein the task execution component executes the task and reports a status of task execution to the runner component. 前記ランナーコンポーネントが前記ステータスを前記タスクデータベースに報告することを有する、請求項70に記載の方法。   71. The method of claim 70, wherein the runner component comprises reporting the status to the task database. 前記複数のコンポーネントは、完了ステータスを有する前記タスクについて前記タスクデータベースを監視し、完了されたタスクのステータス情報を前記プラットフォームに報告する更新コンポーネントを含む、請求項71に記載の方法。   72. The method of claim 71, wherein the plurality of components includes an update component that monitors the task database for the task having a completion status and reports status information of completed tasks to the platform. 前記プラットフォームが前記ステータス情報に応答して前記複数のデータベースを更新することを有する、請求項72に記載の方法。   The method of claim 72, wherein the platform comprises updating the plurality of databases in response to the status information. 前記複数のエージェントが前記メタデータを生成することを有し、あるエージェントに生成されるメタデータは該エージェントがアクセス可能な前記コンテンツに対応する、請求項1に記載の方法。   The method of claim 1, wherein the plurality of agents comprises generating the metadata, wherein the metadata generated for an agent corresponds to the content accessible to the agent. 前記エージェントが、前記エージェントがアクセス可能な各ファイルのコンテンツをスキャンすることによって前記メタデータを生成することを有する、請求項74に記載の方法。   75. The method of claim 74, wherein the agent comprises generating the metadata by scanning the contents of each file accessible to the agent. 前記エージェントが、前記ファイルの前記コンテンツを複数のフラグメントに分割することによって前記メタデータを生成することを有し、各フラグメントは前記ファイルの可変サイズコンポーネントを有する、請求項75に記載の方法。   76. The method of claim 75, wherein the agent comprises generating the metadata by dividing the content of the file into a plurality of fragments, each fragment having a variable size component of the file. 前記可変サイズフラグメントは、予め指定された最小長と最大長との間である、請求項76に記載の方法。   77. The method of claim 76, wherein the variable size fragment is between a pre-specified minimum and maximum length. 前記エージェントが、前記複数のフラグメントを表す複数のブロブを生成することによって前記メタデータを生成することを有し、各ブロブはフラグメントを表す、請求項76に記載の方法。   77. The method of claim 76, wherein the agent comprises generating the metadata by generating a plurality of blobs representing the plurality of fragments, each blob representing a fragment. 前記エージェントがブロブハッシュを用いて前記複数のブロブを生成することを有し、前記ブロブハッシュが、前記コンテンツの各バイトについて、前記コンテンツのコンポーネントにハッシュアルゴリズムを実行することを有し、前記ハッシュアルゴリズムはデータの指定されたパターンを特定するように設定される、請求項76に記載の方法。   Said agent generating said plurality of blobs using a blob hash, said blob hash comprising: performing a hash algorithm on said content component for each byte of said content; 77. The method of claim 76, wherein is set to identify a specified pattern of data. 前記ブロブを生成することが、前記ブロブで表される前記フラグメントが前記ファイルの残り部分から分離された位置でのハッシュ値を含んだ前記ブロブの記述を生成することを有する、請求項79に記載の方法。   80. Generating the blob comprises generating a description of the blob that includes a hash value at a location where the fragment represented by the blob is separated from the rest of the file. the method of. 前記ブロブを生成することは、前記ブロブで表される前記フラグメントの分割位置に基づくオフセット値を生成することを有する、請求項80に記載の方法。   81. The method of claim 80, wherein generating the blob includes generating an offset value based on a fragmentation position of the fragment represented by the blob. 前記ブロブを生成することは、前記ブロブの完全なコンテンツのハッシュを生成することを有し、前記ブロブの前記完全なコンテンツの前記ハッシュは前記ブロブの識別子である、請求項81に記載の方法。   82. The method of claim 81, wherein generating the blob comprises generating a hash of the complete content of the blob, wherein the hash of the complete content of the blob is an identifier of the blob. 前記ブロブを生成することは、前記ファイルのコンテンツを表すブロブのリストを生成することを含む、請求項82に記載の方法。   83. The method of claim 82, wherein generating the blob includes generating a list of blobs that represent the contents of the file. 前記ブロブを生成することは、前記ファイルの前記コンテンツを表す前記ブロブのリストのハッシュを有するコンテンツハッシュを生成することを含み、前記コンテンツハッシュは前記ファイルの識別子である、請求項83に記載の方法。   84. The method of claim 83, wherein generating the blob includes generating a content hash having a hash of the list of blobs representing the content of the file, the content hash being an identifier of the file. . 前記ブロブを生成することは、前記ファイルに対応するファイル名のハッシュを有する名称ハッシュを生成することを含む、請求項84に記載の方法。   85. The method of claim 84, wherein generating the blob includes generating a name hash having a file name hash corresponding to the file. 前記ブロブを生成することは、前記コンテンツハッシュと名称ハッシュとの組み合わせのハッシュを有するファイルハッシュを生成することを含む、請求項85に記載の方法。   86. The method of claim 85, wherein generating the blob includes generating a file hash having a hash of a combination of the content hash and a name hash. 前記ブロブを生成することは、前記ファイルの前記コンテンツに対応する前記ファイル名およびファイルパスのハッシュを有するパスハッシュを生成することを含む、請求項86に記載の方法。   87. The method of claim 86, wherein generating the blob includes generating a path hash having a hash of the file name and file path corresponding to the content of the file. 前記ブロブを生成することは、前記ファイルのファイルメタデータのハッシュを有するメタデータハッシュを生成することを含む、請求項87に記載の方法。   90. The method of claim 87, wherein generating the blob includes generating a metadata hash having a file metadata hash of the file. 前記プラットフォームが前記ファイルに対するレコードを生成することを有し、前記レコードは前記ファイルのブロブハッシュ、前記コンテンツハッシュ、前記ファイルハッシュ、前記パスハッシュ、および前記メタデータハッシュを有する、請求項88に記載の方法。   90. The platform of claim 88, comprising generating a record for the file, the record comprising a blob hash of the file, the content hash, the file hash, the path hash, and the metadata hash. Method. 前記複数のデータベースはライブラリデータベースを含み、ライブラリデータベースはレコードを有する、請求項89に記載の方法。   90. The method of claim 89, wherein the plurality of databases includes a library database, the library database having records. 前記ブロブを生成することは、前記ブロブのサイズを生成することを含む、請求項79に記載の方法。   80. The method of claim 79, wherein generating the blob includes generating a size of the blob. 前記ファイルは、前記ファイルを構成するブロブのリストとして記述される、請求項79に記載の方法。   80. The method of claim 79, wherein the file is described as a list of blobs that make up the file. 各エージェントが、該エージェントをホストする前記クライアントデバイスにブロブをローカル保存し、過去に報告されていないブロブを前記プラットフォームの中央ストレージに転送することを有する、請求項79に記載の方法。   80. The method of claim 79, wherein each agent comprises storing a blob locally on the client device hosting the agent and transferring an unreported blob to the central storage of the platform. 前記プラットフォームはポリシデータベースおよびルールエンジンを有する、請求項1に記載の方法。   The method of claim 1, wherein the platform comprises a policy database and a rules engine. 前記コンテンツの各ファイルを解析することを有する、請求項1に記載の方法。   The method of claim 1, comprising analyzing each file of the content. 前記コンテンツの各ファイルを、業務コンテンツおよび個人コンテンツの少なくとも1つとして明確にすることを有する、請求項95に記載の方法。   96. The method of claim 95, comprising defining each file of the content as at least one of business content and personal content. 前記コンテンツの各ファイルの機密レベルを前記業務コンテンツについて判定することを有する、請求項96に記載の方法。   99. The method of claim 96, comprising determining a security level for each file of the content for the operational content. 前記コンテンツの各ファイルをスキャンしてキー用語を抽出することを有する、請求項96に記載の方法。   99. The method of claim 96, comprising scanning each file of the content to extract key terms. 前記キー用語を企業にわたって比較して企業固有のキー用語のリストを生成することを有する、請求項98に記載の方法。   99. The method of claim 98, comprising comparing the key terms across companies to generate a list of company specific key terms. 前記機密レベルを判定することは、前記キー用語のうち特定のキー用語を特定することを有する、請求項98に記載の方法。   99. The method of claim 98, wherein determining the security level comprises identifying a particular key term among the key terms. 前記メタデータを生成することは、対応するコンテンツの前記機密レベルを含むように前記メタデータを生成することを含む、請求項97に記載の方法。   98. The method of claim 97, wherein generating the metadata includes generating the metadata to include the sensitivity level of corresponding content. 前記機密レベルに基づいて前記コンテンツの各ファイルへのアクセスを制御することを含む、請求項97に記載の方法。   98. The method of claim 97, comprising controlling access to each file of the content based on the security level. 前記アクセスを制御することは、前記コンテンツの各ファイルを閲覧することを制御することを有する、請求項102に記載の方法。   103. The method of claim 102, wherein controlling the access comprises controlling browsing of each file of the content. 前記アクセスを制御することは、前記コンテンツの各ファイルをダウンロードすることを制御することを有する、請求項102に記載の方法。   103. The method of claim 102, wherein controlling the access comprises controlling downloading each file of the content. 前記アクセスを制御することは、前記コンテンツの各ファイルにアクセスすることを制御することを有する、請求項102に記載の方法。   104. The method of claim 102, wherein controlling the access comprises controlling access to each file of the content. 前記アクセスを制御することは、前記コンテンツの各ファイルをコピーすることを制御することを有する、請求項102に記載の方法。   104. The method of claim 102, wherein controlling the access comprises controlling copying each file of the content. 前記アクセスを制御することは、前記コンテンツの各ファイルを配信することを制御することを有する、請求項102に記載の方法。   103. The method of claim 102, wherein controlling the access comprises controlling delivering each file of the content. 前記コンテンツの各ファイルを前記コンテンツからの推論に基づいて明確にすることを有する、請求項95に記載の方法。   96. The method of claim 95, comprising clarifying each file of the content based on inferences from the content. 前記コンテンツの各ファイルを前記コンテンツの構文に基づいて明確にすることを有する、請求項95に記載の方法。   96. The method of claim 95, comprising clarifying each file of the content based on the syntax of the content. 前記場所および前記複数のエージェントの少なくとも1つにまたがって前記コンテンツの業務コンテンツを特定することを有し、前記業務コンテンツを特定することが、ドキュメント名、ドキュメントサイズ、プロキシミティ、キーワード比較、およびハッシュ比較の少なくとも1つを用いることを有する、請求項95に記載の方法。   Identifying the operational content of the content across the location and at least one of the plurality of agents, wherein identifying the operational content includes: document name, document size, proximity, keyword comparison, and hash 96. The method of claim 95, comprising using at least one of the comparisons. 前記コンテンツのファイルにアクセスする複数のデバイス間の共同制作を制御することを有する、請求項1に記載の方法。   The method of claim 1, comprising controlling collaboration between a plurality of devices accessing the content file. 前記コンテンツのファイルを同時に編集する複数のデバイス間でのコンテンツの編集を制御することを有する、請求項111に記載の方法。   111. The method of claim 111, comprising controlling editing of content between a plurality of devices that edit the content file simultaneously. 前記コンテンツのファイルに関するアクティビティを追跡することを有する、請求項111に記載の方法。   111. The method of claim 111, comprising tracking activity on the content file. 前記コンテンツのファイルの修正履歴を追跡することを有する、請求項111に記載の方法。   111. The method of claim 111, comprising tracking a modification history of the content file. モバイルデバイスを通じた前記コンテンツへのアクセスを監視および制御することを含むモバイルデバイス管理を有する、請求項1に記載の方法。   The method of claim 1, comprising mobile device management comprising monitoring and controlling access to the content through a mobile device. 前記モバイルデバイス管理は、モバイルデバイスの場所を追跡することを有する、請求項115に記載の方法。   116. The method of claim 115, wherein the mobile device management comprises tracking a mobile device location. 前記モバイルデバイス管理は、前記場所に基づいて前記コンテンツへのアクセスを制御することを有する、請求項116に記載の方法。   117. The method of claim 116, wherein the mobile device management comprises controlling access to the content based on the location. 前記モバイルデバイス管理は、モバイルデバイスのデータを追跡することを有する、請求項115に記載の方法。   116. The method of claim 115, wherein the mobile device management comprises tracking mobile device data. コンソールを前記プラットフォームに接続することを含み、前記コンソールは、前記コンテンツに関連する自動化されたアクティビティ監視、検査、報告を含む、請求項1に記載の方法。   The method of claim 1, comprising connecting a console to the platform, the console including automated activity monitoring, inspection, and reporting associated with the content. 前記コンテンツに関するアクティビティを、前記コンソールを通じて制御することを有する、請求項119に記載の方法。   120. The method of claim 119, comprising controlling activity related to the content through the console. 前記コンソールを通じて前記場所を制御することを有する、請求項119に記載の方法。   120. The method of claim 119, comprising controlling the location through the console. 前記アクティビティを制御することは、前記コンテンツの各ファイルを閲覧することを制御すること、前記コンテンツの各ファイルをダウンロードすることを制御すること、前記コンテンツの各ファイルにアクセスすることを制御すること、前記コンテンツの各ファイルをコピーすることを制御すること、および前記コンテンツの各ファイルを配信することを制御すること、の少なくとも1つを有する、請求項120に記載の方法。   Controlling the activity includes controlling browsing of each file of the content, controlling downloading of each file of the content, controlling accessing each file of the content, 121. The method of claim 120, comprising at least one of controlling copying each file of the content and controlling delivering each file of the content. プロセッサを有するプラットフォームを複数のデータベースに接続することと、
前記プラットフォームに接続された複数のエージェントを有するグリッドを形成することと、ここで各エージェントはクライアントデバイス上で稼働する前記プラットフォームのエージェントであり、
各エージェントで、該エージェントがアクセス可能なコンテンツの複数のフラグメントをハッシュすることによってメタデータを生成することと、ここで前記メタデータは、前記複数のエージェントに対応する複数のクライアントデバイスがアクセス可能なメモリの前記コンテンツに対応し、
前記コンテンツの代わりに前記メタデータを前記プラットフォームに供給することと、
前記コンテンツの保存、転送、および処理の少なくとも1つを制御するタスクを含む複数のタスクを、前記メタデータを用いて生成することと、ここで、タスクは該タスクを受け持つエージェントによって、該エージェントがアクセス可能なコンテンツに実行される処理動作であり、
前記複数のエージェントに前記複数のタスクを割り当てることと、を有する方法。
Connecting a platform having a processor to multiple databases;
Forming a grid having a plurality of agents connected to the platform, wherein each agent is an agent of the platform running on a client device;
Each agent generates metadata by hashing a plurality of fragments of content accessible to the agent, wherein the metadata is accessible to a plurality of client devices corresponding to the plurality of agents Corresponding to the content of the memory,
Providing the metadata to the platform instead of the content;
Generating a plurality of tasks including a task for controlling at least one of storing, transferring, and processing of the content using the metadata, wherein the task is executed by an agent responsible for the task; Processing operations performed on accessible content,
Assigning the plurality of tasks to the plurality of agents.
プロセッサを有するプラットフォームを複数のデータベースに接続することと、
前記プラットフォームに接続された複数のエージェントを有するグリッドを形成することと、ここで各エージェントはクライアントデバイス上で稼働する前記プラットフォームのエージェントであり、
各クライアントデバイスの各エージェントが、前記クライアントデバイスがアクセス可能なメモリのコンテンツのメタデータを前記プラットフォームに供給することと、
前記メタデータを用いて前記コンテンツの場所を調べることと、
前記メタデータを用いて、前記コンテンツの状態を維持するための動作を表すゴールを生成することと、
前記メタデータを用いて、前記ゴールに対応する複数のタスクを生成することと、
各タスクを、該タスクに対応する前記コンテンツにアクセス可能なエージェントに割り当てることと、を有し、タスクは前記プラットフォームによって命令される処理動作であり、エージェントによって、該エージェントがアクセス可能なコンテンツに実行され、複数のエージェントによって供給される前記メタデータは、前記複数のエージェントによって実行される前記複数のタスクの情報を含む、方法。
Connecting a platform having a processor to multiple databases;
Forming a grid having a plurality of agents connected to the platform, wherein each agent is an agent of the platform running on a client device;
Each agent of each client device provides metadata of the contents of memory accessible to the client device to the platform;
Using the metadata to locate the content;
Using the metadata to generate a goal representing an action for maintaining the state of the content;
Generating a plurality of tasks corresponding to the goal using the metadata;
Assigning each task to an agent accessible to the content corresponding to the task, wherein the task is a processing operation instructed by the platform and executed by the agent on the content accessible to the agent And the metadata provided by the plurality of agents includes information of the plurality of tasks executed by the plurality of agents.
プロセッサを有するプラットフォームと、複数のデータベースとの間のカップリングを確立することと、
前記プラットフォームに複数のエージェントを接続してグリッドを形成することと、ここで、前記複数のエージェントの各エージェントは、クライアントデバイス上で稼働する前記プラットフォームのエージェントであり、
各エージェントで、前記複数のエージェントに対応する複数のクライアントデバイスがアクセス可能なメモリのコンテンツを表すメタデータを生成することと、ここで、該生成することは、前記コンテンツの複数のフラグメントを表す複数のブロブを生成するために前記複数のフラグメントをハッシュすることを含み、
前記コンテンツの代わりに前記メタデータを前記プラットフォームに供給することと、
前記メタデータを用いて複数のタスクを生成することと、ここで、タスクは、該タスクを受け持つ前記エージェントがアクセス可能なコンテンツに実行される処理動作であり、また、前記複数のタスクは、前記コンテンツの監視、保存、転送、および処理の少なくとも1つであるタスクを含み、
前記複数のエージェントに前記複数のタスクを割り当てることと、を有する方法。
Establishing a coupling between a platform having a processor and a plurality of databases;
Connecting a plurality of agents to the platform to form a grid, wherein each agent of the plurality of agents is an agent of the platform running on a client device;
Each agent generates metadata representing the contents of memory accessible by a plurality of client devices corresponding to the plurality of agents, wherein the generating is a plurality of fragments representing a plurality of fragments of the contents Hashing the plurality of fragments to generate a blob of
Providing the metadata to the platform instead of the content;
Generating a plurality of tasks using the metadata, wherein the task is a processing operation executed on content accessible to the agent responsible for the task, and the plurality of tasks include the task Including tasks that are at least one of content monitoring, storage, transfer and processing;
Assigning the plurality of tasks to the plurality of agents.
JP2016542852A 2013-09-13 2014-09-15 Distributed data system with document management and access control Pending JP2016537746A (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201361877585P 2013-09-13 2013-09-13
US61/877,585 2013-09-13
PCT/US2014/055652 WO2015039028A1 (en) 2013-09-13 2014-09-15 Distributed data system with document management and access control

Related Child Applications (1)

Application Number Title Priority Date Filing Date
JP2019006141A Division JP6810172B2 (en) 2013-09-13 2019-01-17 Distributed data system with document management and access control

Publications (2)

Publication Number Publication Date
JP2016537746A true JP2016537746A (en) 2016-12-01
JP2016537746A5 JP2016537746A5 (en) 2017-10-19

Family

ID=52666376

Family Applications (2)

Application Number Title Priority Date Filing Date
JP2016542852A Pending JP2016537746A (en) 2013-09-13 2014-09-15 Distributed data system with document management and access control
JP2019006141A Active JP6810172B2 (en) 2013-09-13 2019-01-17 Distributed data system with document management and access control

Family Applications After (1)

Application Number Title Priority Date Filing Date
JP2019006141A Active JP6810172B2 (en) 2013-09-13 2019-01-17 Distributed data system with document management and access control

Country Status (4)

Country Link
EP (1) EP3044694A4 (en)
JP (2) JP2016537746A (en)
KR (1) KR102267132B1 (en)
WO (1) WO2015039028A1 (en)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2019079485A (en) * 2017-09-08 2019-05-23 コニカ ミノルタ ヘルスケア アメリカズ, インコーポレイテッド Switch from cloud to local, switch from local to cloud, and synchronization of medical image and data
JP2020501215A (en) * 2016-12-30 2020-01-16 ドロップボックス, インコーポレイテッド Presence, access, and view status of local copies of shared content items
JP2022542092A (en) * 2019-08-01 2022-09-29 プリフェクト テクノロジーズ,インコーポレイテッド Systems and methods for remote execution of one or more arbitrarily defined workflows

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9910968B2 (en) 2015-12-30 2018-03-06 Dropbox, Inc. Automatic notifications for inadvertent file events
JP6597314B2 (en) * 2016-01-05 2019-10-30 株式会社バッファロー File sharing support system, network storage device, file sharing support method, and file sharing support program
US10778768B2 (en) 2017-08-02 2020-09-15 Electronics And Telecommunications Research Institute Method and system for optimizing cloud storage services
US10949388B2 (en) 2018-11-16 2021-03-16 Advanced Messaging Technologies, Inc. Systems and methods for distributed data storage and delivery using blockchain
US10795670B2 (en) * 2018-12-20 2020-10-06 Roblox Corporation Developer collaboration control system
CN110737918B (en) * 2019-10-15 2023-08-08 重庆远见信息产业集团股份有限公司 External data sharing management platform
JP7316204B2 (en) 2019-12-16 2023-07-27 株式会社ソニー・インタラクティブエンタテインメント Information processing device and file access method
JP7321917B2 (en) * 2019-12-16 2023-08-07 株式会社ソニー・インタラクティブエンタテインメント Information processing device and file access method
KR102225577B1 (en) * 2020-08-21 2021-03-09 (주)테온 Method and device for distributed storage of data using hybrid storage
JP7083973B1 (en) 2021-03-04 2022-06-14 株式会社ストラテジット Data linkage system and data linkage method

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013106590A2 (en) * 2012-01-10 2013-07-18 Memeo, Inc. Cloud-based distributed data system

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6643661B2 (en) * 2000-04-27 2003-11-04 Brio Software, Inc. Method and apparatus for implementing search and channel features in an enterprise-wide computer system
JP3601777B2 (en) * 2000-06-02 2004-12-15 日本電気株式会社 Centralized management method and system for call control data for call agent
US7155487B2 (en) * 2000-11-30 2006-12-26 Intel Corporation Method, system and article of manufacture for data distribution over a network
US9678967B2 (en) * 2003-05-22 2017-06-13 Callahan Cellular L.L.C. Information source agent systems and methods for distributed data storage and management using content signatures
US20050198317A1 (en) * 2004-02-24 2005-09-08 Byers Charles C. Method and apparatus for sharing internet content
US8429131B2 (en) * 2004-11-17 2013-04-23 Autonomy, Inc. Systems and methods for preventing digital asset restoration
CA2615659A1 (en) * 2005-07-22 2007-05-10 Yogesh Chunilal Rathod Universal knowledge management and desktop search system
JP2009507298A (en) * 2005-09-02 2009-02-19 アベニュー インク Data communication with remote network nodes
US8468244B2 (en) * 2007-01-05 2013-06-18 Digital Doors, Inc. Digital information infrastructure and method for security designated data and with granular data stores
US7890549B2 (en) * 2007-04-30 2011-02-15 Quantum Leap Research, Inc. Collaboration portal (COPO) a scaleable method, system, and apparatus for providing computer-accessible benefits to communities of users
KR101134597B1 (en) * 2009-09-03 2012-04-09 한국과학기술원 Method and apparatus for providing web storage service storing multimedia contents and metadata separately
EP2524321A4 (en) * 2010-01-15 2013-09-11 Endurance Int Group Inc Unaffiliated web domain hosting service based on a common service architecture
EP2526513A1 (en) * 2010-01-20 2012-11-28 Cogniti Inc Computer-implemented tools and method for developing and implementing integrated model of strategic goals
US8868508B2 (en) * 2010-02-09 2014-10-21 Google Inc. Storage of data in a distributed storage system
US8850219B2 (en) * 2010-05-13 2014-09-30 Salesforce.Com, Inc. Secure communications
KR101527058B1 (en) * 2010-07-29 2015-06-09 에스케이텔레콤 주식회사 Distributed file management apparatus and method
JP2012118710A (en) * 2010-11-30 2012-06-21 Brother Ind Ltd Node device, communication system, communication method and program for information processing apparatus

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013106590A2 (en) * 2012-01-10 2013-07-18 Memeo, Inc. Cloud-based distributed data system

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2020501215A (en) * 2016-12-30 2020-01-16 ドロップボックス, インコーポレイテッド Presence, access, and view status of local copies of shared content items
US11249632B2 (en) 2016-12-30 2022-02-15 Dropbox, Inc. Presence, access, and seen state for local copies of shared content items
JP7074745B2 (en) 2016-12-30 2022-05-24 ドロップボックス, インコーポレイテッド Presenting a graphical user interface that provides presence information related to shared content items
JP2019079485A (en) * 2017-09-08 2019-05-23 コニカ ミノルタ ヘルスケア アメリカズ, インコーポレイテッド Switch from cloud to local, switch from local to cloud, and synchronization of medical image and data
JP6991909B2 (en) 2017-09-08 2022-01-13 コニカ ミノルタ ヘルスケア アメリカズ, インコーポレイテッド Switching from cloud to local, local to cloud, and synchronization of medical images and data
JP2022542092A (en) * 2019-08-01 2022-09-29 プリフェクト テクノロジーズ,インコーポレイテッド Systems and methods for remote execution of one or more arbitrarily defined workflows
US11868829B2 (en) 2019-08-01 2024-01-09 Prefect Technologies, Inc. System and method for the remote execution of one or more arbitrarily defined workflows

Also Published As

Publication number Publication date
KR20160064128A (en) 2016-06-07
JP6810172B2 (en) 2021-01-06
JP2019091477A (en) 2019-06-13
EP3044694A1 (en) 2016-07-20
EP3044694A4 (en) 2017-09-27
KR102267132B1 (en) 2021-06-21
WO2015039028A1 (en) 2015-03-19

Similar Documents

Publication Publication Date Title
JP6810172B2 (en) Distributed data system with document management and access control
US20150127607A1 (en) Distributed data system with document management and access control
US11695547B2 (en) Sharing encrypted documents within and outside an organization
US11044088B2 (en) System and method for rotating client security keys
US10445517B1 (en) Protecting data in insecure cloud storage
US20230139473A1 (en) Malware detection and content item recovery
US10762229B2 (en) Secure searchable and shareable remote storage system and method
US9424432B2 (en) Systems and methods for secure and persistent retention of sensitive information
WO2014118791A1 (en) Methods and systems for shared file storage
US10824756B2 (en) Hosted application gateway architecture with multi-level security policy and rule promulgations
EP2962209A1 (en) System and method for conflict-free cloud storage encryption
US11943260B2 (en) Synthetic request injection to retrieve metadata for cloud policy enforcement
JP6435616B2 (en) Storage device, storage system, storage system control method and control program
Kanimozhi et al. Cloud Based Remote File Access from PC to Mobile Using File Directory

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170907

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170907

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180629

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180717

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20181017

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20190312