KR20160064128A - Distributed data system with document management and access control - Google Patents
Distributed data system with document management and access control Download PDFInfo
- Publication number
- KR20160064128A KR20160064128A KR1020167009349A KR20167009349A KR20160064128A KR 20160064128 A KR20160064128 A KR 20160064128A KR 1020167009349 A KR1020167009349 A KR 1020167009349A KR 20167009349 A KR20167009349 A KR 20167009349A KR 20160064128 A KR20160064128 A KR 20160064128A
- Authority
- KR
- South Korea
- Prior art keywords
- agent
- content
- file
- platform
- task
- Prior art date
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G06F17/30206—
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/14—Details of searching files based on file metadata
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/178—Techniques for file synchronisation in file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
- G06F16/1834—Distributed file systems implemented based on peer-to-peer networks, e.g. gnutella
-
- G06F17/301—
-
- G06F17/30174—
-
- G06F17/30194—
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Library & Information Science (AREA)
- Computing Systems (AREA)
- Information Transfer Between Computers (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
데이터 관리 시스템 및 방법은 클라이언트 장치에 호스팅된 에이전트나 폴터의 시스템에 결합된 클라우드-기반의 플랫폼을 포함한다. 플랫폼은 실제 데이터를 저장하지 않고, 대신에 에이전트에 의해 제공된 메타데이터를 사용하여, 시스템 내의 모든 데이터의 위치를 추적하고, 에이전트 중의 실제 데이터의 분산된 저장, 이동 및 프로세싱을 관리한다. 그렇게 함으로써, 플랫폼은 에이전트의 로컬 저장소를 사용하여 "가상 클러스터"로 네트워크된 저장소를 폴링한다. 에이전트는 상세한 설명에 기술된 바와 같이, 플랫폼에 의해 지시된대로, 데이터를 모니터, 저장 및 전송 또는 이동 및 데이터 프로세싱 작업을 집합적으로 수행한다. 에이전트는 프로세서-기반의 장치에 호스트되거나 연결된 에이전트, 로컬 영역 네트워크의 장치에 호스트된 에이전트, 광역 네트워크의 장치에 호스트된 에이전트, 모바일 장치에 호스트된 에이전트 및 클라우드-기반의 장치에 호스트된 에이전트를 포함한다.A data management system and method includes a cloud-based platform coupled to a system of agents or folks hosted on a client device. The platform does not store the actual data, but instead uses the metadata provided by the agent to track the location of all data in the system and to manage the distributed storage, movement, and processing of the actual data in the agent. In doing so, the platform uses the agent's local repository to poll the repository networked with the "virtual cluster ". The agent collectively performs data monitoring, storage and transmission or movement and data processing operations as indicated by the platform, as described in the detailed description. Agents include agents hosted or connected to a processor-based device, agents hosted on devices in a local area network, agents hosted on devices in a wide area network, agents hosted on mobile devices, and agents hosted on cloud-based devices do.
Description
관련된 출원Related Application
본 출원은 2013년 9월 13일에 출원된 미국 특허 출원 번호 제61/877,585호의 우선권을 주장한다.This application claims priority from U.S. Patent Application Serial No. 61 / 877,585 filed on September 13, 2013.
본 출원은 2013년 1월 10일에 출원된 미국 특허 출원 번호 제13/738,796호의 부분 계속 출원이다.The present application is a continuation-in-part of U.S. Patent Application No. 13 / 738,796, filed January 10, 2013.
기술 분야Technical field
본 명세서에 기술된 실시예는 데이터 프로세싱에 관한 것이고, 좀 더 구체적으로는 분산형 저장 및 프로세싱에 관한 것이다.The embodiments described herein relate to data processing, and more particularly to distributed storage and processing.
클라우드-기반의 서비스가 빠르게 확산되고, 고객은 생산성을 증가시키고, 지원 비용을 감소시키며, 선행 투자를 감소시키기 위한 클라우드-기반의 서비스를 포함하기 위해, 로컬 고객 자급 장비(customer provided equipment, CPE) 솔루션에 넘어 확산되고 있다. 로컬/클라우드가 기존 투자에 영향을 주고, 클라우드로의 완전한 이동보다 적은 위험을 가진다는 점을 고려하면, CPE와 클라우드 솔루션 모두를 결합하는 하이브리드 솔루션이 빠르게 채택되고 있다. 종래의 클라우드 서비스는 개인용 동기화 및 공유형 서비스, 온라인 백업 및 대용량 파일 전송 서비스를 포함한다. 이러한 종래의 클라우드 서비스가 온라인 저장소 제공에 초점을 맞추는 동안, 연결된 컴퓨터, 장치 및 웹사이트의 지금까지 증가하는 수는 이들 서비스의 사용자가 복수의 장치를 통해서나 웹 사이트를 통해 그들의 최근 파일을 동기화 및 액세스하는데 어려움을 계속 겪는다는 것을 의미한다. 또한, 기업 사용자는 그들의 사업 데이터를 보호하고, 세간의 이목을 끄는 보안상 침입을 막기 위해 비교적 높은 레벨의 보안을 요구하고, 클라우드 저장소 제공자의 장기간 생존 능력이 클라우드로의 이송 저장소 및 서비스와 관련된 문제에 추가된다. 결과적으로, 비교적 더 높은 레벨의 보안성은 물로 로컬 데이터 저장소 및 피어-투-피어 이송에 초점을 맞추면서도, 복수의 장치에 걸쳐 파일의 동기화 및 액세스를 위한 간결한 접근법을 가진 클라우드 서비스에 대한 요구가 있다.Customer-provided equipment (CPE) has been deployed to include cloud-based services to increase productivity, reduce support costs, and reduce upfront investment as cloud- Solution. Considering that local / cloud impacts existing investments and has less risk than complete migration to the cloud, a hybrid solution combining both CPE and cloud solutions is rapidly being adopted. Conventional cloud services include personal synchronous and shared services, online backup and large file transfer services. While these conventional cloud services focus on providing online storage, the ever-increasing number of connected computers, devices and websites has allowed users of these services to synchronize and access their recent files via multiple devices or through websites It means that you continue to have difficulties in doing so. In addition, enterprise users need a relatively high level of security to protect their business data, prevent eye-catching security intrusions, and the long-term viability of cloud storage providers to address issues related to transport storage and services to the cloud Lt; / RTI > As a result, there is a need for a cloud service with a concise approach for synchronizing and accessing files across multiple devices, while focusing on local data storage and peer-to-peer transport with water at a relatively higher level of security .
참조에 의한 포함Include by reference
본 명세서에서 언급된 특허, 특허 출원 및/또는 간행물 각각은, 각각의 개별 특허, 특허 출원 및/또는 간행물이 참조로서 포함되는 것으로 구체적이고 개별적으로 포함되는 것과 동일한 정도로, 그 전체가 본 명세서에 참조로서 포함된다.Each of the patents, patent applications and / or publications mentioned in this specification is herein incorporated in its entirety by reference to the same extent as if each individual patent, patent application and / or publication were specifically and individually incorporated by reference, .
도 1은 실시예에서 플랫폼과 에이전트를 포함하는 시스템의 블록도이다.
도 2는 실시예서, 독립적인 에이전트의 그룹과 네트워크된 에이전트 그룹에 결합된 플랫폼을 포함하는 시스템의 블록도이다.
도 3은 실시예에서, 조직 내에 포함된 다수의 에이전트와 플랫폼을 포함하는 시스템의 블록도이다.
도 4a는 실시예에서, 플랫폼과 에이전트를 포함하는 예시적인 시스템의 블록도이다.
도 4b는 실시예에서, 플랫폼과 에이전트를 포함하는 예시적인 시스템의 또 다른 블록도이다.
도 5는 실시예에서, 플랫폼과 에이전트 사이의 파일 동기화와 관련된 예시의 블록도이다.
도 6은 실시예에서, 에이전트, 플랫폼 및 데이터베이스와 관련된 예시적인 순서도이다.
도 7은 실시예에서, 라이브러리를 스캔하고 동기화하기 위한 동기화 목표의 사용과 관련된 예시적인 순서도이다.
도 8은 실시예에서, 정책 데이터베이스 및 규칙 엔진을 포함하는 플랫폼의 블록도이다.
도 9는 실시예에서, 다른 플랫폼 구성과 분리된 메타데이터를 나타내는 블록도이다.
도 10은 실시예에서, 플랫폼의 연결 타입을 도시한다.
도 11은 실시예에서, P2P 연결 타입을 도시한다.
도 12는 실시예에서, 관리 콘솔의 예시적인 스크린을 도시한다.
도 13은 실시예에서, 파일 동기화 제어를 포함하는 예시적인 실시예를 도시한다.
도 14는 실시예에서, 보안 활성화 모니터링 및 통지를 포함하는 예시적인 스크린을 도시한다.
도 15는 실시예에서, 문서 감사 추적을 포함하는 예시적인 스크린을 도시한다.
도 16은 실시예에서, 파일 검색과 분류를 포함하는 예시적인 스크린을 도시한다.
도 17은 실시예에서, 제어된 사용자 공유를 포함하는 예시적인 스크린을 도시한다.
도 18은 실시예에서, 원격 장치 관리 및 지오로케이션(geolocation) 서비스를 포함하는 예시적인 스크린을 도시한다.
도 19는 실시예에서, 저장 위치의 선택을 포함하는 예시적인 스크린을 도시한다.1 is a block diagram of a system including a platform and an agent in an embodiment.
2 is a block diagram of an embodiment, a system including a group of independent agents and a platform coupled to a networked agent group.
3 is a block diagram of a system including multiple agents and platforms included within an organization in an embodiment;
4A is a block diagram of an exemplary system that includes an platform and an agent in an embodiment.
Figure 4B is another block diagram of an exemplary system including an platform and an agent, in an embodiment.
5 is an exemplary block diagram related to file synchronization between a platform and an agent in an embodiment;
Figure 6 is an exemplary flow chart associated with an agent, platform, and database in an embodiment.
Figure 7 is an exemplary flow chart associated with the use of synchronization targets to scan and synchronize libraries in an embodiment.
8 is a block diagram of a platform including a policy database and a rules engine in an embodiment.
9 is a block diagram illustrating metadata separated from other platform configurations in an embodiment.
Figure 10 shows, in an embodiment, the connection type of the platform.
11 shows, in an embodiment, a P2P connection type.
Figure 12 shows an exemplary screen of a management console in an embodiment.
Figure 13 shows, in an embodiment, an exemplary embodiment that includes file synchronization control.
Figure 14 illustrates an exemplary screen including security activation monitoring and notification in an embodiment.
FIG. 15 illustrates an exemplary screen including a document audit trail in an embodiment.
Figure 16 shows an exemplary screen, including an example of a file search and classification, in an embodiment.
Figure 17 shows an exemplary screen, including an example of controlled user sharing, in an embodiment.
Figure 18 illustrates, in an embodiment, an exemplary screen including remote device management and geolocation services.
Figure 19 illustrates an exemplary screen that includes, in an embodiment, selection of a storage location.
클라이언트 장치에 호스트된 에이전트 또는 폴더의 시스템에 결합된 클라우드-기반의 플랫폼 또는 엔진을 포함하는 데이터 관리 시스템 및 방법이 기술된다. 한 실시예의 플랫폼이 실제 데이터를 저장하지 않으며 대신에 시스템 내 모든 데이터의 위치를 추적하고 에이전트들 중에서 실제 데이터의 분산된 저장, 이동 및 프로세싱을 관리하기 위해 상기 에이전트에 의해 제공된 메타데이터를 사용한다. 그와 같이 하여, 한 실시예의 시스템은 에이전트에서 로컬 저장장치를 사용하여 "가상의 클러스터" 내로 네트워크된 저장소를 폴링한다. 에이전트는 본 명세서의 상세한 설명에 기술된 바와 같이, 집합적으로 데이터를 모니터링, 저장 및 이송 또는 이동시키고, 플랫폼에 의해 지시된 대로 데이터 프로세싱 동작을 수행한다. 한 실시예의 에이전트는 프로세서-기반의 장치(가령, 개인용 컴퓨터(PC), 태블릿 컴퓨터, 서버 컴퓨터, 네트워크-부착 저장(NAS) 장치, 애플 컴퓨터, 모바일 장치, iOS 장치, 안드로이드 장치 등), 로컬 지역 네트워크(LAN)의 장치에 호스트된 에이전트, 유선 네트워크(WAN)의 장치에 호스트된 에이전트, 모바일 장치에서 호스트되는 에이전트, 그리고 클라우드-기반의 장치(가령, 서버, 저장 장치, 등)에 결합되거나 호스트된 에이전트를 포함하나, 이에 제한되지 않는다.A data management system and method is disclosed that includes a cloud-based platform or engine coupled to a system of agents or folders hosted on a client device. The platform of one embodiment does not store actual data and instead uses the metadata provided by the agent to track the location of all data in the system and to manage the distributed storage, movement and processing of the actual data among the agents. As such, the system of one embodiment uses local storage at the agent to poll the networked storage into a "virtual cluster ". Agents collectively monitor, store and transport or move data, as described in the detailed description herein, and perform data processing operations as directed by the platform. An agent in one embodiment may be a processor-based device (e.g., a personal computer (PC), a tablet computer, a server computer, a network-attached storage (NAS) device, an Apple computer, a mobile device, an iOS device, An agent hosted in a device in a network (LAN), an agent hosted in a device in a wired network (WAN), an agent hosted in a mobile device, and a host device coupled to a cloud-based device (e.g., server, storage device, Agents, but are not limited thereto.
비록 본 명세서의 상세한 설명이 설명을 위해 많은 구체 사항을 포함하지만, 이하의 상세한 설명에 대한 많은 변형예와 변경예는 당업자가 본 명세서에 기술된 실시예의 범위 내에서 인식할 것이다. 따라서, 이하의 설명적인 실시예는 청구된 발명에 대한 보편성을 상실하지 않고 제한 없이 적용되는 것이다.Although the detailed description of this specification includes many specifics for the purposes of illustration, many variations and modifications to the detailed description below will be apparent to those skilled in the art within the scope of the embodiments described herein. Accordingly, the following illustrative embodiments are intended to be limited, without departing from the generality of the claimed invention.
도 1은 실시예에서 플랫폼(110)과 에이전트(120)를 포함하는 시스템의 블록도이다. 이러한 실시예에서, 플랫폼은 본원 명세서의 상세한 설명에 기술된 바와 같이, 다수의 데이터베이스(130)에 연결 및/또는 포함한다. 각각이 에이전트를 포함하거나 호스트하는 복수의 클라이언트 장치(140)는 네트워크 연결을 통하여 플랫폼과 데이터베이스에 연결되며, 상기 데이터베이스를 사용하여 상기 플랫폼에 의해 지시되는 작업 태스크를 수신하고 실행한다.FIG. 1 is a block diagram of a system including an
도 2는 실시예서, 독립적인 에이전트의 그룹과 네트워크된 에이전트 그룹에 결합된 플랫폼을 포함하는 시스템의 블록도이다. 이러한 실시예의 플랫폼은 본원 명세서에서 상세히 설명되는 다수의 데이터베이스에 연결 및/또는 이들을 포함한다. 상기 클라이언트 장치는 네트워크 연결을 통하여 플랫폼에 연결된다. 제1 그룹의 클라이언트 장치(210)는 복수의 클라이언트 장치를 포함하며, 이들 각각은 한 에이전트를 포함하거나 호스트하며, 네트워크 연결을 통하여 독립적으로 상기 플랫폼에 연결된다. 제2 그룹의 클라이언트 장치(220)는, 각각이 에이전트를 포함하며 독립적으로 플랫폼으로 연결되고, 그리고 추가로 피어 네트워크(가령, LAN, WAN, 등등)를 형성하는 복수의 클라이언트 장치를 포함하고, 여기서, 피어-투-피어 통신(230)은 에이전트들 사이에서 지원된다.2 is a block diagram of an embodiment, a system including a group of independent agents and a platform coupled to a networked agent group. The platform of this embodiment connects to and / or includes a plurality of databases as described in detail herein. The client device is connected to the platform through a network connection. The first group of
도 3은 실시예에서, 조직 내에 포함된 다수의 에이전트와 플랫폼을 포함하는 시스템의 블록도이다. 상기 플랫폼은 본원 명세서에서 상세히 설명되는 바와 같이, 다양한 데이터베이스에 연결 및/또는 이들을 포함한다. 상기 조직은 복수의 그룹(가령, 그룹 1 내지 그룹 M, 여기서 M은 임의의 숫자)을 포함하며, 각 그룹은 몇 명의 사용자(가령, 사용자 1에서 사용자 N, 여기서 N는 임의의 숫자)를 포함한다. 상기 조직의 사용자 각각은 몇 몇의 장치(가령, 장치 1에서 장치 P, 여기서 P는 임의의 숫자)를 포함하며, 각 장치는 네트워크 커플링을 통하여 플랫폼에 연결된 에이전트를 포함하거나 호스팅한다. 상기 조직은 또한 플랫폼에 연결된 관리자 콘솔을 포함하며 관리자가 계층에 따라 장치에 접근하는 것을 가능하게 한다. 상기 플랫폼은 상기 조직에 따라 데이터로의 액세스를 제어하는 통제 또는 규칙을 포함하며, 상기 콘솔솔은 통제 또는 규칙으로의 액세스를 제공하고 이에 의해 관리자가 상기 규칙을 설치하고 유지하도록 한다(예를 들면, 추가, 삭제, 수정 등등).3 is a block diagram of a system including multiple agents and platforms included within an organization in an embodiment; The platform may connect to and / or include various databases, as described in detail herein. The organization includes a plurality of groups (e.g.,
이 같은 조직의 예에서, 상기 에이전트는 플랫폼으로부터 수신된 명령에 의해 지시받고, 이를 실행하며, 각 에이전트는 사용자에게 등록된 장치에서 호스트된다. 사용자 각각은 한 그룹의 서브셋이며, 각 그룹은 한 조직의 서브셋이다. 각 장치에서 상기 에이전트는 대응하는 장치에서 포함되거나 그 같은 장치에 의해 액세스 가능한 메모리의 내용을 인덱스하고, 상기 메모리 내용의 메타데이터를 상기 플랫폼에 제공한다. 상기 콘솔은 상기 조직에 따라 데이터로의 액세스를 제어하는 규칙에 대한 관리자 제어를 제공한다. 예를 들면, 관리자는 조직이 10MB 크기를 초과하는 어떠한 파일도 포함할 수 없다고 명시하는 규칙을 발생시킬 수 있다. 관리자는 그룹 1이 어떠한 음악 파일 또는 비디오 파일도 포함할 수 없다고 명시하는 또 다른 규칙을 발생시킬 수 있다. 또 다른 실시예 규칙은 그룹 2가 비밀이라 표시된 어떠한 파일도 포함할 수 없다고 명시한다.In an example of such an organization, the agent is instructed by a command received from the platform, executes it, and each agent is hosted on a device registered to the user. Each user is a subset of a group, and each group is a subset of one organization. In each device, the agent indexes the contents of a memory contained in or accessible by the corresponding device, and provides metadata of the memory content to the platform. The console provides administrative control over rules that control access to data according to the organization. For example, an administrator can generate a rule that specifies that an organization can not contain any files larger than 10MB in size. The administrator can generate another rule that specifies that
도 4a는 실시예에서, 플랫폼과 에이전트를 포함하는 예시적인 시스템의 블록도이다. 도 4b는 실시예에서, 플랫폼과 에이전트를 포함하는 예시적인 시스템의 또 다른 블록도이다. 도 4a 및 4b는 집합적으로 "도 4"라 한다. 상기 플랫폼은 작업을 생성하거나 발생시키기 위해 그리고 에이전트들로 작업을 할당하기 위해 메타데이터를 통해 얻어진 에이전트 각각에 의해 액세스 가능한 데이터의 지식을 사용한다. 결국, 상기 에이전트는 플랫폼에 의해 이들에게 할당된 작업을 수행하며 이들의 데이터 그리고 수행된 작업에 대한 정보를 플랫폼에 제공한다. 한 실시예의 에이전트가 플랫폼에 의해 지시된 작업을 수행하기 때문에, 이들은 애플리케이션도 사용자도 아니다.4A is a block diagram of an exemplary system that includes an platform and an agent in an embodiment. Figure 4B is another block diagram of an exemplary system including an platform and an agent, in an embodiment. Figures 4A and 4B are collectively referred to as "Figure 4 ". The platform uses knowledge of the data accessible by each of the agents obtained through the metadata to create or generate jobs and to assign jobs to the agents. Eventually, the agent performs tasks assigned to them by the platform and provides the platform with information about their data and the tasks performed. As an agent of one embodiment performs the tasks indicated by the platform, they are neither an application nor a user.
상기 플랫폼은 다양한 데이터베이스를 포함 및/또는 이에 연결된다. 예를 들면, 상기 플랫폼은 상기 플랫폼 및 각각의 에이전트의 관련 정보에 이용될 수 있는 모든 에이전트의 리스트인 한 에이전트 데이터베이스를 포함한다. 상기 에이전트 데이터베이스에 추가하여, 상기 플랫폼은 시스템 내 모든 데이터의 위치를 추적하고 상기 에이전트 중 실제 데이터의 분산된 저장, 이동 및 프로세싱을 관리함을 위하여 정보를 교환하는 때 에이전트에 의해 사용하기 위한 다른 데이터베이스를 포함한다. 상기 데이터베이스는 상기 설명된 에이전트 데이터베이스, 라이브러리 데이터베이스, 목표 데이터베이스, 작업 데이터베이스를 포함한다. 각 에이전트는 이들의 로컬 디스크 또는 기억 저장소를 나타내는 하나 이상의 라이브러리를 가질 수 있고, 상기 라이브러리 데이터베이스는 대응하는 에이전트에 이용될 수 있는 기억 저장소의 리스트를 포함하며, 상기 기억 저장소는 에이전트에게 판독 및/또는 기재 액세스가 허여된 임의의 장치(예를 들면, 디스크 또는 디스크 드라이브, 네트워크 마운트 포인트, 하드 드라이브, 플래시 드라이브, 기억 저장장치 서비스 등등)를 포함하나 이에 제한되지 않는다. 상기 플랫폼 및 각 에이전트는 시스템 라이브러리 리스트 및 각 라이브러리에 접근할 수 있는 시스템의 대응하는 에이전트 각각을 포함하는 라이브러리 데이터베이스를 포함한다.The platform includes and / or is connected to various databases. For example, the platform includes an agent database that is a list of all agents that can be used for the platform and the respective information of each agent. In addition to the agent database, the platform includes a database for tracking the location of all data in the system and for use by the agent in exchanging information for managing the distributed storage, movement and processing of the actual data . The database includes the agent database, library database, target database, and task database described above. Each agent may have one or more libraries representing their local disks or storage depots, the library database comprising a list of storage depots available to the corresponding agent, the storage depot being capable of reading and / or But is not limited to, any device (e.g., disk or disk drive, network mount point, hard drive, flash drive, storage storage service, etc.) The platform and each agent include a library of systems including a list of system libraries and a corresponding agent of each of the systems accessible to each library.
상기 목표 데이터베이스는 특정 작업이 수행되어야 하는(예를 들어 동기화되어야 하는) 라이브러리 집합체인 목표의 리스트를 포함한다. 상기 목표 데이터베이스는 특정한 태스크(task)(가령, 동기화)가 수행될 라이브러리의 집합체인 목표의 리스트를 포함한다. 상기 목표는 태스크를 수행하기 위해 에이전트에 의해 사용되며, 목표가 하나 이상의 라이브러리에 해당하고 라이브러리 내용에 대한 태스크 또는 작업을 수행하도록 사용된다. 또한, 상기 플랫폼은 각 에이전트에 대한 작업 데이터베이스를 발생시키며, 작업 데이터베이스 내에 대응하는 에이전트에 의해 달성될 태스크를 작업으로 한다. 상기 작업 데이터베이스는 상기 작업을 수행하기 위해 에이전트에 의해 필요한 모든 정보와 함께 한 에이전트에 의해 수행될 태스크 각각의 설명을 포함한다. 상기 데이터베이스는 하기에서 상세히 설명된다.The target database includes a list of targets that are a collection of libraries (e.g., which should be synchronized) for which a particular task should be performed. The target database contains a list of targets that are a collection of libraries on which a particular task (e.g., synchronization) will be performed. The target is used by an agent to perform a task, and the target corresponds to one or more libraries and is used to perform a task or task on library content. In addition, the platform generates a task database for each agent, and tasks to be accomplished by corresponding agents in the task database are tasks. The task database includes a description of each of the tasks to be performed by an agent together with all the information required by the agent to perform the task. The database is described in detail below.
한 실시예의 플랫폼은 플랫폼과 다수의 에이전트 사이의 커플링을 통해 그리드를 형성하는 유니버설 동기화(sync) 엔진이고, 상기 플랫폼은 에이전트들을 위한 마스터 제어기의 역할을 한다. 상기 플랫폼은 클라우드 내 하나 이상의 데이터베이스에 연결되며, 상기 데이터베이스는 플랫폼이 책임을 지는 그리드의 모든 데이터에 대한 위치와 상태에 대한 데이터(가령, 메타데이터)를 포함하는 에이전트로부터 수신된 정보를 포함한다. 상기 에이전트는 특정 장치 또는 컴퓨터에서 호스트되거나 설치되어서, 플랫폼과 통신하고, 플랫폼 및 다른 에이전트와 상호 작동하여 그리드를 형성하도록 하는 독립적으로 기능하는 엔티티이며, 상기 그리드의 구성들은 상기 플랫폼에 의해 할당된 특정 태스크를 달성하기 위해 상호 작동하여 동작한다.One embodiment of the platform is a universal synchronization (sync) engine that forms a grid through coupling between a platform and a plurality of agents, the platform serving as a master controller for agents. The platform is connected to one or more databases in the cloud and the database includes information received from an agent that contains data (e.g., metadata) about the location and status of all data in the grid for which the platform is responsible. Wherein the agent is an independently functioning entity that is hosted or installed on a particular device or computer to communicate with the platform and interact with the platform and other agents to form a grid, They work in concert to achieve the task.
동작시에, 에이전트는 한 장치에 호스트되거나 설치되며, 에이전트는 상기 플랫폼에 의해 할당된 작업 또는 태스크를 수행하는 기능을 한다. 상기 플랫폼은 플랫폼이 관련되어 있는 모든 에이전트의 식별과 위치, 그리고 각 에이전트가 액세스 하는 데이터를 알고 있다. 상기 에이전트는 애플리케이션들이 아니지만, 그 대신 플랫폼에 의한 지시대로 작업을 수행하는, 암호화된 채널을 통하여 플랫폼 그리고 다른 에이전트와 통신하는 플랫폼의 에이전트이다. 일반적으로, 상기 플랫폼은 이 같은 플랫폼이 책임이 있는 목표를 발생시켜서, 이를 포함하고, 상기 플랫폼은 작업 또는 태스크를 상기 에이전트에 할당하여 상기 에이전트가 목표를 달성하도록 한다. 또한 상기 에이전트는 각 에이전트 또는 어떤 다른 에이전트를 할당받은 태스크에 대응하는 목적(objectives)에 대한 어떠한 지식도 필요로 하지 않는다.In operation, the agent is hosted or installed on one device, and the agent is responsible for performing tasks or tasks assigned by the platform. The platform knows the identity and location of all the agents to which the platform is associated and the data that each agent is accessing. The agent is not an application, but instead is an agent of a platform that communicates with the platform and other agents over an encrypted channel, which performs operations as directed by the platform. In general, the platform generates and includes a target for which such a platform is responsible, and the platform assigns a task or task to the agent to cause the agent to achieve the goal. The agent also does not require any knowledge of the objectives corresponding to the tasks to which each agent or any other agent is assigned.
한 실시예의 플랫폼은 한 실시예의 데이터베이스에 실제 데이터를 저장하지 않고, 대신에, 그것이 책임을 지는 데이터에 대응하는 메타데이터를 저장한다. 결과적으로, 상기 플랫폼이 메타데이터만을 저장하기 때문에, 에이전트는 실제 데이터가 저장되는 분산형 데이터 기억 저장 엔티티로서의 역할을 한다. 상기 플랫폼은 에이전트에서 저장된 데이터의 비트-레벨 이해(bit-level understanding)를 위해 메타데이터를 사용하여서, 데이터에 대한 파일-레벨 이해(file-level understanding) 이상을 제공한다. 상기 메타데이터는 각 에이전트로부터 수신되며 각 에이전트가 책임을 지는 데이터로부터 상기 에이전트에 의해 발생된다. 메타데이터를 발생시키는데 있어서, 각 에이전트는 상기 플랫폼에 의해 요청되는 파일들을 스캔한다. 파일 각각에 대하여, 상기 스캐닝은 상기 파일을 본원 명세서에서 블로브(blob)라 일컬어지는 가변 크기 단편으로 분리됨에 의해 파일을 형성하는 데이터로부터 데이터의 단편 또는 구성을 발생시키는 것을 포함한다. 상기 블로브는 이하의 상세한 설명에서 기술되는 바와 같이, 사전-특정된 최소 길이와 최대 길이 사이에 있는 가변 크기를 가진 데이터의 일부를 생성하는 데이터 핑거프린팅 알고리즘(data fingerprinting algorithm)을 사용하여 발생된다. 본원 명세서에서 설명된 실시예가 한 파일의 내용으로부터 블로브들을 발생시키고 블로브는 파일의 내용을 대표하기 때문에, 용어 "파일(들)" 및 "블로브(들)"은 본원 명세서에서 상호 교환적으로 사용된다.The platform of one embodiment does not store actual data in a database of one embodiment, but instead stores metadata corresponding to the data it is responsible for. As a result, because the platform only stores metadata, the agent acts as a distributed data storage storage entity in which the actual data is stored. The platform provides more than a file-level understanding of the data using metadata for bit-level understanding of the stored data at the agent. The metadata is received from each agent and is generated by the agent from data that each agent is responsible for. In generating the metadata, each agent scans the files requested by the platform. For each file, the scanning includes generating a fragment or configuration of data from the data forming the file by separating the file into variable size fragments, referred to herein as blobs. The blob is generated using a data fingerprinting algorithm that generates a portion of the data having a variable size between a pre-specified minimum and maximum length, as described in the following detailed description . Because the embodiments described herein generate blobs from the contents of one file and the blob represents the contents of the file, the terms "file (s)" and "blob (s)" are used interchangeably herein .
블로브를 발생시키는 때, 상기 블로브에 대한 설명이 발생되며, 상기 블로브가 파일의 나머지 부분으로부터 잘려진 또는 분리된 포인트에서 해시의 값을 포함하며, 상기 블로브의 완전한 내용에 대한 해시(hash), 상기 블로브에 대한 브레이크 포인트에 기초한 오프셋 값, 그리고 상기 블로브의 크기(가령, 길이)를 포함한다. 상기 블로브의 완전한 내용 해시(블로브 해시, 또는 "해시")는 상기 블로브에 대한 고유한 식별자로서의 역할을 한다. 또한, 한 파일의 내용을 구성하는 블로브의 완전한 리스트는 해시(캐쉬)(cash)되어서, 내용 해시와 명칭 해시(훼시)(fash)의 조합의 해시인, 전체 파일 내용에 대한 고유한 식별자를 발생시키도록 한다. 한 실시예의 해시는 또한 파일 명칭의 해시 그리고 파일의 경로(패시)(pash), 그리고 파일 메타데이터의 해시(가령, 파일 명칭, 크기, 날짜, 위치, 등등)(mash)를 더욱 포함한다.When generating a blob, a description of the blob is generated, the blob contains the value of the hash at a point that is cut off or separated from the rest of the file, and the hash for the complete content of the blob An offset value based on the breakpoint for the blob, and a size (e.g., length) of the blob. The complete content hash of the blob (blob hash, or "hash") serves as a unique identifier for the blob. In addition, the complete list of blobs that constitute the contents of one file is hashed (cash), giving a unique identifier for the entire file content, which is a hash of the content hash and the name hash (fash) . The hash of one embodiment further includes a hash of the file name, a file path (pash), and a hash of the file metadata (e.g., file name, size, date, location, etc.) (mash).
이들 다양한 해시들은, 하기에서 상세히 설명되는 바와 같이, 각 에이전트가 책임이 있는, 그리고 플랫폼으로 전달된 데이터 파일 각각에 대하여 에이전트 각각에 의해 발생된다. 상기 플랫폼은 파일 각각에 대한 기록을 발생시켜서 이들 다양한 해시의 정보를 포함하도록 한다. 상기 플랫폼은 에이전트에 의해 플랫폼으로 보고된 그리고 이들 기록에 포함된 데이터의 정보 또는 상태를 사용하여 데이터의 상태를 결정하도록 하며 어느 에이전트가 데이터의 수정으로 인해 날짜가 지난 데이터의 버전을 가지고 있는가를 결정하며 에이전트들 사이에서 파일 버전을 조정하도록 한다. 다음에 상기 플랫폼은, 본원 명세서에서 설명되는 바와 같이, 파일의 가장 최근 버전으로 하나 이상의 파일들을 갱신할 필요가 있는 에이전트로 작업을 발생시킨다.These various hashes are generated by each of the agents for each of the data files that each agent is responsible for and delivered to the platform, as described in detail below. The platform may generate a record for each of the files to include information of these various hashes. The platform uses the information or state of the data reported by the agent to the platform and included in these records to determine the state of the data and determines which agent has a version of the data that is out of date due to modification of the data Let the file versions be adjusted among the agents. The platform then generates a task with an agent that needs to update one or more files with the most recent version of the file, as described herein.
따라서, 상기 메타데이터를 사용하여, 상기 플랫폼은 클라우드 내에서 데이터의 마스터 인덱스를 유지시키며, 에이전트의 마스터 인덱스 또는 라이브러리를 판독하기 위해 목표를 사용하여 각 목표와 관련된 다양한 데이터 조각의 위치를 결정하도록 하고, 데이터 내의 불일치 또는 차이를 식별하도록 하고 식별된 불일치 또는 차이를 제거하기 위해 작업을 발행 또는 발생시킨다. 익명인 것 대신, 한 실시예의 에이전트가 알려지며 상기 플랫폼에 의해 지시를 받고, 단지 상기 플랫폼에서 구축된 신원(identity)을 가지며 그리고 이 같은 신원에 의해 제어된 다른 에이전트와 내용을 교환할 뿐이기 때문에, 이는 피어-투-피어 시스템과 반대된다.Thus, using the metadata, the platform maintains a master index of the data in the cloud and uses the target to read the master index or library of the agent to determine the location of various pieces of data associated with each target , Issues or generates jobs to identify inconsistencies or differences in the data and to eliminate identified inconsistencies or differences. Instead of being anonymous, since an agent of one embodiment is known and instructed by the platform, and only has the identity established in the platform and exchanges content with another agent controlled by such identity , Which is opposed to a peer-to-peer system.
상기 플랫폼은 피어(peer)들 사이에서 가능한 한 직접적으로 가능한 한 적은 데이터를 전달하는 데 효율이 있다. 또한, 본 명세서의 상기 실시예는 에이전트들 사이의 상호 협력 프로세싱과 함께 모든 데이터 위치의 플랫폼에 의해 모아진 지식을 사용하여, 이동될 필요가 있는 데이터만을 이동하고 상기 데이터의 위치(가령, 에이전트)에서 데이터를 프로세싱하도록 하며, 이에 의해 독립적으로 동작하는 때의 어느 한 에이전트가 가지는 대역폭보다 상대적으로 큰 대역폭을 제공한다. 따라서, 한 실시예의 플랫폼이 효율적인 저장, 전달 및 글로벌 데이터 모빌리티를 제공함에 의해 데이터 유비쿼티(ubiquity)를 제공한다.The platform is efficient at delivering as little data as possible between peers as directly as possible. Further, the above embodiment of the present disclosure uses only the knowledge gathered by the platform of all the data locations together with the mutual cooperation processing between the agents, so as to move only the data that needs to be moved, Data, thereby providing a bandwidth that is relatively greater than the bandwidth of any one agent when operating independently. Thus, the platform of one embodiment provides data ubiquity by providing efficient storage, delivery, and global data mobility.
본 발명의 시스템은 상기 블로브의 사용을 통하여 장치들 중에서 데이터의 해싱 및 블록-레벨 전달을 제공한다. 상기 블록-레벨 전달은 변경된 데이터 블록을 장치들에서 갱신할 필요가 있을 뿐이므로 데이터가 변경되는 때 파일들의 효율적인 동기화를 지원한다. 상기 블록-레벨은 상기 데이터가 블록들을 형성하기 위해 해시 되면 블록들이 이동되고 다음에 다시 모아지기 때문에 비-시퀀스 파일 전달을 더욱 전달하며, 이에 의해 시퀀스 파일 전달을 위한 필요를 제거한다. 이와 유사하게, 실시예는 블로브들이 하나 이상의 다른 장치로부터 이들이 필요한 어떤 장치로 동시에 또는 거의 동시에 전달될 수 있기 때문에, 데이터 업로드/다운로드 시간의 감소를 지원한다. 게다가, 파일이 그리드에서 특정한 장치에 의해 필요한 때, 그리고 그리드에서 두 개 이상의 다른 장치에서 존재하는 때, 각기 다른 블록이 동시에 이들 다수의 장치로부터 전달될 수 있으며 상기 파일을 현재 필요한 위치(가령, 에이전트)에 위치하도록 한다.The system of the present invention provides hashing and block-level delivery of data among devices through the use of the blob. The block-level transfer only needs to update the changed data blocks in the devices, thus supporting efficient synchronization of the files as the data changes. The block-level further propagates the non-sequence file transfer because the blocks are moved and then reassembled once the data is hashed to form blocks, thereby eliminating the need for sequence file transfer. Similarly, embodiments support a reduction in data upload / download times, since blobs can be delivered from one or more other devices to any device that needs them simultaneously or nearly simultaneously. In addition, when a file is needed by a particular device in the grid and exists in more than one other device in the grid, different blocks can be delivered simultaneously from these multiple devices, ).
상기 플랫폼은 그리드 내 에이전트들로 작업을 분산시키고 특정 에이전트에 대한 태스크 또는 작업 아이템을 발생시키고 그 같은 작업 아이템을 상기 에이전트로 전달함에 의해 그 같은 작업을 지시한다. 한 작업 아이템이 그와 같은 작업 아이템에 대한 완성 조건과 함께 에이전트로 전달된다. 이 같은 실시예는 비 제한적이다. 한 실시예의 에이전트는 플랫폼에 의해 이들에게 할당된 태스크 또는 작업 아이템을 실행하는 유연한 클라이언트이다.The platform directs such work by distributing work to agents in the grid, generating tasks or work items for a particular agent, and delivering such work items to the agent. A work item is delivered to the agent along with a completion condition for the work item. Such an embodiment is non-limiting. An agent in one embodiment is a flexible client that executes tasks or work items assigned to them by the platform.
한 실시예에서, 에이전트로 할당된 작업 아이템은 에이전트에 의해 접근가능한 메모리 장치에서의 디렉토리 또는 폴더를 에이전트가 스캔하거나 모니터하도록 지시하고, 상기 디렉토리 또는 폴더 내 어떤 파일에 대한 변경도 계속하게 보고하게 한다. 이 같은 작업 아이템은 상기 플랫폼에 의해 사용되어 상기 플랫폼에 에이전트의 등록이 있게 되면 상기 에이전트에 대응하는 파일의 메타데이터를 최초 수신하도록 한다. 따라서, 어떤 파일에 대한 변화에 응답하여, 상기 스캔 작업이 상기 에이전트로 하여금 파일의 블로브 또는 메타데이터에서의 어떠한 변화도 상기 플랫폼으로 보고하게 하며, 이는 상기 보고된 변경에 적절하게 하나 이상의 다른 에이전트로 작업을 할당하게 한다. 또한, 한 실시예의 플랫폼은 하나 이상의 에이전트로 새로운 기능을 위한 논리를 분산하도록 사용된다. 따라서, 상기 플랫폼이 새로운 기능을 제공하기 위해 에이전트를 필요로 하면, 그와 같은 기능을 가능하게 하기 위한 논리가 상기 플랫폼에 의해 적절한 에이전트로 전달될 수 있다.In one embodiment, the work item assigned to the agent instructs the agent to scan or monitor the directory or folder in the memory device accessible by the agent and causes the agent to continue to report changes to any files in the directory or folder . Such a work item is used by the platform to initially receive metadata of a file corresponding to the agent if registration of the agent is made on the platform. Thus, in response to a change to a file, the scan job causes the agent to report any changes in the file's blob or metadata to the platform, To assign tasks to them. In addition, the platform of one embodiment is used to distribute logic for a new function to one or more agents. Thus, if the platform requires an agent to provide new functionality, the logic to enable such functionality can be passed to the appropriate agent by the platform.
상기 플랫폼에 의해 발생되고 실행을 위해 각각의 에이전트로 할당된 실시예의 태스크 또는 작업 아이템이 스캔닝, 삭제, 기록 및 업로딩을 포함한다. 한 에이전트가 파일 시스템 또는 디렉토리를 회귀적으로 모니터하고 플랫폼으로 어떤 파일에 대한 모든 변화(가령, 파일에 대한 수정, 파일로의 추가, 파일로의 삭제, 파일의 재 명명하기, 등등,)를 보고함에 의해 스캔 태스크를 수행한다. 이 같은 변화의 보고는 상기 로컬 데이터베이스 내 수정된 파일을 위치시킴을 포함하며, 그리고 상기 로컬 데이터베이스의 메타데이터는 이후에 상기 플랫폼으로 제공된다.Tasks or work items of an embodiment generated by the platform and assigned to each agent for execution include scanning, erasing, writing and uploading. An agent regressively monitors a file system or directory and views all changes to a file as a platform (for example, modifying a file, adding to a file, deleting a file, renaming a file, etc.) The scan task is executed. Reporting of such a change includes locating the modified file in the local database, and the metadata of the local database is then provided to the platform.
한 실시예의 기재 태스크는 하기에서 상세히 설명되는 바와 같이, 블로브의 기록을 포함한다. 이 같은 실시예로 제한되지는 않는다. 상기 에이전트는 제1 위치(가령 소스 장치)로부터 제2 위치(가령, 목적지 장치)로 하나 이상의 파일 블로브에 의해 기재 태스크를 수행한다. 제1 위치 및 제2 위치 각각은 기억 저장장치에서의 위치(가령, 컴퓨터 하드 디스크에서의 제1 위치로부터 컴퓨터 하드 디스크에서의 제2 위치로), 같은 도메인 내 다른 기억 저장장치에서의 위치, 그리고 둘 또는 그 이상의 다른 도메인 내 저장장치에서의 위치(가령, 한 에이전트의 파일 시스템으로부터 한 클라우드-기반의 저장장치로, 피어-투-피어 통신 등을 통하여 제1 에이전트의 파일 시스템으로부터 제2 에이전트의 파일 시스템으로)를 포함한다. 따라서 한 실시예의 소스가 그리고 그리고 클라우드-기반 또는 네트워크-기반의 기억 저장장치에서 어떠한 에이전트 파일 시스템의 하나 일 수 있다.The described task of an embodiment includes the recording of a blob, as will be described in detail below. The present invention is not limited to such an embodiment. The agent performs the noted tasks by one or more file blobs from a first location (e.g., source device) to a second location (e.g., destination device). Each of the first and second locations may be located at a location in the storage device (e.g., from a first location on the computer hard disk to a second location on the computer hard disk), a location on another storage device in the same domain, (E.g., from a file system of one agent to a cloud-based storage, from a file system of the first agent through peer-to-peer communication, etc.) File system). Thus, the source of one embodiment may be any of the agent file systems in a cloud-based or network-based storage device.
한 작업 아이템은 상기 설명되는 바와 같이, 그와 같은 작업 아이템에 대한 완성 조건과 함께 에이전트로 전달된다. 한 기록 작업 아이템과 관련된 완성 조건은 상기 기록을 완성하기 위해 필요한 블로브 또는 구성을 회수함을 포함하며, 겹쳐서 기록된 블로브 또는 구성은 올바른 파일이다. 겹쳐 기록된 블로브가 올바른 파일이라는 조건이 충족되지 않으면, 그러면 이 같은 보고가 플랫폼으로 제공된다.A work item is delivered to the agent along with the completion condition for such work item, as described above. The completion condition associated with a recording work item includes reclaiming the blob or configuration needed to complete the recording, and the overwritten blob or configuration is the correct file. If the condition that the overwritten blob is the correct file is not met, then this same reporting is provided to the platform.
상기 에이전트는 한 에이전트로부터 한 클라우드-기반의 기억 저장장치로 블로브를 복사함에 의해 업로드 태스크를 수행한다. 결과적으로, 새로운 파일이 에이전트의 파일 시스템 내에 놓이는 때, 상기 에이전트가 상기 플랫폼으로 파일의 추가를 보고하며, 상기 플랫폼이 상기 에이전트로 작업을 할당하여 상기 파일 블로브를 상기 클라우드-기반의 저장장치로 복사하도록 한다. 이에 응답하여, 상기 에이전트가 새로운 파일이 상기 클라우드-기반의 데이터베이스에서 존재하는 지를 결정하며, 만약 그렇지 않다면, 상기 파일을 상기 클라우드-기반의 데이터베이스로 복사한다.The agent performs an upload task by copying the blob from one agent to a cloud-based storage device. As a result, 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 a job to the agent to transfer the file blob to the cloud- Make copies. In response, the agent determines if a new file exists in the cloud-based database, and if not, copies the file to the cloud-based database.
한 실시예의 상기 작업 아이템은 대기(queued), 펜딩(pending), 그리고 완성(성공적으로 또는 실패로)을 포함하는 세 단계를 포함한다. 상기 플랫폼은 에이전트 각각으로 할당된 작업 아이템의 단계들을 추적하여 각 에이전트에 대응하는 파일의 상태를 추적한다.In one embodiment, the work item includes three steps including queued, pending, and completed (successfully or unsuccessfully). The platform keeps track of the states of the files corresponding to each agent by tracking the steps of the work items assigned to each agent.
플랫폼과 에이전트 사이 통신 효율을 극대화하기 위해, 몇 가지 정보가 상기 플랫폼과 에이전트 사이에 저장된다. 예를 들면, 한 실시예의 에이전트는 상기 작업 데이터베이스를 통하여 그와 같은 에이전트로 할당된 새로운 작업 아이템을 식별하기 위해 상기 플랫폼을 폴링(polling)하며, 그리고 주기적으로 상기 작업 데이터베이스의 할당된 작업 아이템을 수신하고 국지적으로 저장한다. 이는 상기 에이전트와 작업 아이템을 상기 에이전트로 다운로드 하기 위해 필요한 서버 사이 통신 양을 줄인다. 마찬가지로, 새로운 파일이 한 에이전트에서 식별되는 때, 상기 새로운 파일은 에이전트의 로컬 라이브러리 데이터베이스로 기록되며, 상기 로컬 라이브러리는 상기 플랫폼에서 배치로 주기적으로 복사된다. 이는 에이전트 및/또는 플랫폼이 새로운 파일의 발생시 매번 파일 전달을 수행하여야 하는 필요를 제거한다. 또한, 본원 명세서에서 상세히 설명하는 바와 같이, 본 발명 실시예의 블로브는 차별 파일(differential file) 전달을 지원하며, 블로브 그리고 시스템 내 이들의 위치를 추적하기 위해 사용된 정보 적어도 일부분이 상기 플랫폼과 에이전트 모두에 저장된다.To maximize communication efficiency between the platform and the agent, some information is stored between the platform and the agent. For example, an agent of one embodiment polls the platform to identify a new work item assigned to such an agent through the work database, and periodically polls the work database for assigned work items And store it locally. This reduces the amount of communication between the server and the server needed to download the agent and work item to the agent. Similarly, when a new file is identified at an agent, the new file is written to the agent's local library database, which is periodically copied to the batch at the platform. This eliminates the need for agents and / or platforms to perform file transfers each time a new file occurs. Also, as will be described in detail herein, the blobs of embodiments of the present invention support differential file transfer, and at least some of the information used to track the location of blobs and their presence in the system, Agent.
상기 플랫폼에 의해 할당된 작업 태스크를 수행하기 위해 한 에이전트에 의해 필요한 정보의 복구와 관련하여, 상기 에이전트는 에이전트에 의해 소유된 파일 내 현재 있지 않은 태스크를 완성하기 위해 필요한 정보의 위치를 식별하기 위해 한 계층을 포함한다. 한 실시예의 상기 계층은 로컬 메모리를 최초 조사하는 에이전트를 포함하며, 한 피어(peer)에 속하는 파일에 위치하지만 국지적으로 발견되지 않는 필요한 정보를 복구하기 위해 피어-투-피어 통신을 뒤이어 사용한다. 상기 필요한 정보가 국지적으로 발견되지 않는 때, 그리고 피어와 함께 위치하지 않는 때, 상기 에이전트가 클라우드-기반의 기억 저장장치(가령, Amazon S3, 등등) 또는 또 다른 원격 기억 저장장치 엔티티를 복구한다.With respect to the recovery of the information required by an agent to perform the work task assigned by the platform, the agent may use the agent to identify the location of the information needed to complete a task that is not currently in the file owned by the agent And one layer. The layer of one embodiment includes an agent that initially probes the local memory and subsequently uses peer-to-peer communication to recover the necessary information that is located in a file that belongs to a peer but is not locally discovered. The agent recovers a cloud-based storage device (e.g., Amazon S3, etc.) or another remote storage storage entity when the necessary information is not locally discovered and is not located with the peer.
피어-투-피어 통신이 사용되어 필요한 파일들을 얻는 때, 상기 플랫폼은 에이전트에 상기 필요한 파일들을 소유하는 피어 에이전트 리스트를 제공하며, 그러나 이 같은 실시로 제한되지 않는다. 상기 플랫폼에 의해 제공된 피어 에이전트의 리스트는 주문된 리스트이며, 이에 의해 에이전트가 상기 리스트의 순서를 사용하여 피어 에이전트를 접촉할 수 있도록 하며, 그러나 대안적 실시예의 리스트는 주문되지 않을 수 있다.When peer-to-peer communication is used to obtain the necessary files, the platform provides the agent with a list of peer agents possessing the necessary files, but is not limited to this implementation. The list of peer agents provided by the platform is an ordered list, thereby allowing the agent to contact the peer agent using the order of the list, but the list of alternative embodiments may not be ordered.
도 4b와 관련하여, 실시예의 에이전트가 에이전트의 기능을 제공하기 위해 병렬로 실행하는 다수의 스레드(threads) 또는 구성을 포함한다. 예를 들면, 제공자 스레드가 상기 플랫폼의 작업 아이템 데이터베이스로부터 에이전트에 대하여 지정된 작업 아이템을 복구하며, 상기 작업 아이템 데이터베이스를 국지적으로 제공하거나 저장한다. 러너 스레드가 에이전트의 로컬 작업 아이템 데이터베이스를 모니터하며 작업 아이템을 상기 로컬 작업 아이템 데이터베이스로부터 개별적으로 폴링하고, 상기 아이템을 상기 로컬 작업 아이템 데이터베이스에서 펜딩으로 마크하며, 그리고 상기 아이템을 적절한 태스크 실행 스레드(가령, 기재 태스크가 기록 스레드로 제공된다)로 제공한다. 한 태스크 실행 스레드가 러너 스레드로부터 수신된 태스크의 실행을 완성한 때, 이는 상기 러너 스레드로 실행의 상태(가령, 성공적인 완성, 실패한 완성, 실패한 완성의 이유, 등등)를 보고하며, 그리고 상기 러너 스레드가 이와 같은 상태 정보를 상기 로컬 작업 아이템 데이터베이스로 다시 보고한다. 한 갱신 스레드가 완성된 것으로 마크된 아이템에 대하여 로컬 작업 아이템 데이터베이스를 모니터하며, 상기 완성된 작업 아이템의 상태 정보를 상기 플랫폼으로 다시 보고한다. 응답하는 플랫폼은 에이전트에 의해 완성된 작업에 적절한 플랫폼 데이터베이스를 갱신한다.With reference to FIG. 4B, the agent of the embodiment includes a number of threads or configurations that execute in parallel to provide the functionality of the agent. For example, a provider thread recovers a work item designated for an agent from a work item database of the platform, and locally provides or stores the work item database. The runner thread monitors the agent's local work item database, polls the work item individually from the local work item database, marks the item as pending in the local work item database, and sends the item to the appropriate task execution thread , And the written task is provided as a recording thread). When a task execution thread completes execution of a task received from a runner thread, it reports the state of execution (e.g., successful completion, failed completion, reason for unsuccessful completion, etc.) to the runner thread, And reports such state information back to the local work item database. An update thread monitors the local work item database for items marked complete, and reports the status information of the completed work items back to the platform. The responding platform updates the platform database appropriate for the work completed by the agent.
한 실시예의 플랫폼이 본원 명세서에서 설명되는 바와 같이, 각각의 에이전트에 의해 플랫폼으로 보고되는, 그와 같은 플랫폼으로 연결된 에이전트 각각에 대응하는 데이터의 메타데이터를 사용하여 동작한다. 상기 플랫폼에 대한 메타데이터를 생성하기 위해, 상기 에이전트가 동기화될 폴더 내에 이들이 가지고 있는 모든 파일들을 스캔한다. 상기 에이전트는 블로브인 가변 크기 단편으로 파일들을 나눔에 의해 파일을 만드는 데이터로부터 데이터의 단편 또는 구성을 생성하거나 발생시킨다. 상기 블로브는 핑거프린팅 알고리즘을 사용하여 생성되며 본원 명세서에서 배시(bash)라 불리는, 이들의 블로브 해시(blob hash, bash)에 의해 표시된다. 특히, 상기 에이전트는 사전에 명시된 수의 바이트에 대하여 빠른-윈도우 체크섬을 실행함에 의해 블로브를 발생시킨다. 한 실시예가 사전에 명시된 최소 길이 그리고 최대 길이 사이인 가변 크기를 갖는 데이터 부분들을 생성한다.The platform of one embodiment operates using metadata of the data corresponding to each of the agents connected to such a platform, which is reported to the platform by each agent, as described herein. To create the metadata for the platform, the agent scans all the files they have in the folder to be synchronized. The agent creates or generates fragments or configurations of data from the data that make up the file by dividing the files into variable sized fragments that are blobs. The blobs are generated using fingerprinting algorithms and are represented by their blob hash, bash, referred to herein as bash. In particular, the agent generates a blob by executing a fast-window checksum on a predetermined number of bytes. One embodiment creates data portions having a variable size that is between a minimum length and a maximum length specified in advance.
핑거프린트로 언급되는, 파일들을 구성 부분들로 나누는 과정은, 데이터의 슬라이스에 대해 해시 알고리즘을 실행함을 포함하며, 상기 해시 알고리즘은 특정 패턴의 데이터(가령, 12개의 "0" 비트 시퀀스; 3개의 "0" 비트 시퀀스; 6개의 "1" 비트 시퀀스, 등등)를 식별하도록 정해진다. 각 피스의 "크기"는 해시 스트링을 세팅하여 결정되는 데, 이는 12 비트의 연속된 스트링이 덜 자주 발생되고 따라서 3 비트의 연속된 스트링보다 더욱 긴 데이터 슬라이스를 발생시키기 때문이다. 상기 핑거프린트는 한 파일 내에 데이터 블록의 경계를 결정하며 이들 경계가 둘 또는 그 이상의 파일들 사이에서 공동 블록 또는 부분들을 결정하기 위해 사용된다.The process of dividing files into constituent parts, referred to as fingerprints, includes executing a hash algorithm on a slice of data, which has a specific pattern of data (e.g., 12 "0" bit sequences; "0" bit sequence, six "1" bit sequences, etc.). The "size" of each piece is determined by setting the hash string, since 12-bit contiguous strings occur less frequently and thus generate a longer data slice than a 3-bit contiguous string. The fingerprint determines the boundaries of data blocks within a file and these boundaries are used to determine the common block or portions between two or more files.
한 해시가 사전에 명시된 크기의 슬라이딩 윈도우에서 해시 알고리즘을 사용하여 파일 내 바이트 각각에 대하여 생성된다. 예를 들면, 한 실시예에서, 상기 해시는 48-바이트 윈도우에서 BUZ 해시 알고리즘을 사용하여 상기 파일 내 각 바이트에 대항 생성되며, 상기 해시 알고리즘의 적용 결과는 64-비트 수이다. 상기 해시가 특정 값을 갖는 때(가령, 12 비트 이하이고 모두 "0" 비트인 때). 본원 명세서에서 매치 값이라 불리며, 파일 내 이같은 포인트에서 한 브레이크가 생성된다. 한 실시예의 매치 값은, 가령 상기 윈도우의 12 비트 이하가 "0" 비트인 때 발생된다.A hash is created for each byte in a file using a hash algorithm in a sliding window of a predetermined size. For example, in one embodiment, the hash is generated against each byte in the file using a BUZ hash algorithm in a 48-byte window, and the application result of the hash algorithm is a 64-bit number. When the hash has a particular value (e.g., 12 bits or less and all are "0" bits). This is called a match value in the present specification, and one break is generated at this point in the file. The match value in one embodiment is generated, for example, when 12 bits or less of the window is a "0" bit.
블로브를 생성하면, 상기 블로브가 파일의 나머지 부분으로부터 잘리거나 분리된 포인트에서 해시 값, 상기 블로브의 완전한 내용의 해시, 상기 블로브의 브레이크 포인트에 기초한 오프셋 값, 그리고 상기 블로브의 크기(가령, 길이)를 포함하는 블로브의 설명이 발생된다. 상기 블로브의 완전한 내용을 해시하기 위해 사용된 실시예의 해시 함수는 스케인 크립토그래픽(skein cryptographic) 해시 함수(내부 상태 크기가 512비트이고, 160 비트의 출력을 발생시킨다), 그러나 이 같은 실시예로 한정되지 않는다. 상기 블로브의 완전한 내용의 해시는 상기 블로브에 대한 고유 식별자로서 작용한다. 한 파일이 보고되거나 이 같은 파일을 포함하는 모든 블로브들의 리스트로서 설명되며, 파일 해시들의 이 같은 리스트가 대응하는 파일 내용의 매니패스트로서 작용한다.When a blob is generated, the blob is truncated from the remainder of the file or hash value at a separate point, a hash of the complete content of the blob, an offset value based on the breakpoint of the blob, (E. G., Length) of the blob is generated. The hash function of the embodiment used to hash the complete contents of the blob is a skein cryptographic hash function (the internal state size is 512 bits and produces an output of 160 bits) . The hash of the complete content of the blob serves as a unique identifier for the blob. A file is reported or described as a list of all blobs containing such a file, and such a list of file hashes serves as the manifest of the corresponding file content.
한 실시예의 블로브가 중앙 기억 저장장치 엔티티에서 저장되며, 그러나 이 같은 실시로 제한되지 않는다. 그와 같이 함에 있어, 상기 플랫폼이 앞서 어떠한 에이전트에 의해서도 보고되지 않은 블로브를 중앙 클라우드-기반의 기억 저장장치 엔티티(central cloud-based storage entity)로 전달하도록 에이전트 각각에 지시하며; 일 예로서 상기 중앙 기억 저장장치가 아미존 심플 스토리지 서비스(Amazon Simple Storage Service)(S3)를 포함할 수 있다. 따라서, 모든 블로브가 하나 이상의 에이전트에 국부적으로 저장되며 중앙 기억 저장장치에 저장된다. 뒤이어, 한 에이전트가 블로브를 보고하고 상기 플랫폼이 에이전트를 지시하여 그와 같은 블로브가 앞서 또 다른 에이전트에 의해 보고되지 않았다면 블로브를 상기 중앙 기억 저장장치로 전달하도록 한다.The blob of one embodiment is stored in a central storage storage entity, but is not limited to such an implementation. In doing so, the platform directs each of the agents to forward a blob that is not previously reported by any agent to a central cloud-based storage entity; As an example, the central storage device may include an Amazon Simple Storage Service (S3). Thus, all blobs are stored locally in one or more agents and stored in central storage. Subsequently, an agent reports the blob and the platform directs the agent to forward the blob to the central storage if the blob is not previously reported by another agent.
상기 설명된 배시에 추가하여, 한 실시예의 시스템은 시스템 내 데이터를 설명하는 데 사용하기 위한 다수의 다른 해시를 포함한다. 예를 들면, 한 파일 내용을 만드는 블로브의 완전한 리스트가 상기 설명한 바와 같이 해시되어서 완전한 파일을 위한 고유한 식별자를 발생시키도록 한다. 상기 완전한 파일의 이 같은 해시 식별자는 내용 해시(content hash, cash)라 불리며, 두 파일이 동일한 내용을 포함하는가를 결정하기 위해 빠른 비교를 허용한다.In addition to the above-described bases, the system of one embodiment includes a number of different hashes for use in describing data in the system. For example, a complete list of the blobs that make up one file content is hashed as described above to generate a unique identifier for the complete file. Such a hash identifier of the complete file is called a content hash (cash) and allows a quick comparison to determine whether the two files contain the same content.
한 실시예의 또 다른 해시는 상기 내용 해시(content hash)와 성명 해시의 조합 해시를 포함하며, 본원 명세서에서는 파일 해시(file hash, 훼시)(fash)라 불린다. 상기 훼시는 따라서 특정 위치에서 파일의 내용을 식별한다.Another hash of one embodiment includes a combined hash of the content hash and the name hash, and is referred to herein as a file hash (fash). The file thus identifies the contents of the file at a particular location.
한 실시예의 해시는 경로 해시 그리고 메타데이터 해시를 포함한다. 상기 경로 해시 또는 파일 경로 해시는 패시라 불리며, 파일 명칭 그리고 파일의 경로의 해시이다. 매시(mash)라 불리는 메타데이터 해시는 파일 메타데이터(가령, 파일 명칭, 크기, 날짜, 위치 등)의 해시이다. 여기서 설명된 해시는 에이전트에 의해 발생되며 플랫폼으로 전달되며, 이 같은 실시로 제한되지 않는다.One embodiment of the hash includes a path hash and a metadata hash. The path hash or file path hash is called a path, and is a file name and a hash of the path of the file. A metadata hash called a mash is a hash of file metadata (e.g., file name, size, date, location, etc.). The hash described herein is generated by the agent and is passed to the platform, and is not limited to such an implementation.
대안적 실시예는 설명된 바와 같이 데이터 블록을 형성하기 위해 해싱을 사용하며, 버전 정보로 각 블록을 저장한다. 이는 버전닝(versioning)을 가능하게 하여 이 같은 버전닝 정보가 파일의 더욱 오래된 버전을 생성하기 위해 데이터를 재조립(reassemble)하도록 사용된다.An alternative embodiment uses hashing to form data blocks as described, and stores each block with version information. This enables versioning so that such versioning information is used to reassemble the data to produce an older version of the file.
한 실시예의 해시를 사용하여, 레코드가 각 파일을 위한 플랫폼에서 생성되며, 모든 파일을 위한 모든 레코드가 파일의 모든 배시(bash) 뿐 아니라, 캐시, 훼시, 패시 그리고 매시를 포함한다. 상기 라이브러리 데이터베이스는 각 파일의 이들 기록을 포함하며, 그러나 이 같은 실시예는 상기 라이브러리 데이터베이스 내에 이들 기록의 포함으로 제한되지 않는다. 상기 플랫폼은 에이전트에 의해 보고된 그리고 이들 기록에 포함된 정보 또는 데이터의 상태를 사용하여 어느 에이전트가 변경 또는 새로운 데이터로 인하여 오래된(out of date) 데이터 버전을 갖는가를 결정하도록 하며, 그리고 에이전트들 사이에서 파일 버전을 조화시키도록 한다. 상기 플랫폼은 훼시(fash)(파일 내용 및 파일 명칭의 해시)를 사용하여 파일의 상태 그리고 한 에이전트에 의해 보고된 한 파일이 파일 중 가장 최근 버전인가를 결정하도록 한다. 다음에 상기 플랫폼이 하나 이상의 파일을 가장 최근 버전의 파일로 갱신할 필요가 있는 에이전트로 작업을 발생시킨다.Using a hash of one embodiment, a record is created on the platform for each file, and all records for all files include cache, cache, pass, and mash as well as all bash of the file. The library database includes these records of each file, but such embodiments are not limited to inclusion of these records in the library database. The platform uses the state of the information or data reported by the agent and included in these records to determine which agent has an out of date data version due to change or new data, To match the file version. The platform uses a fash (hash of file content and file name) to determine the status of the file and whether a file reported by one agent is the most recent version of the file. The platform then generates a task with an agent that needs to update one or more files with the latest version of the file.
특정 데이터 또는 블로브를 찾도록 상기 플랫폼에 의해 지시된 때, 에이전트 각각이 먼저 상기 파일 매니패스트의 로컬 카피(local copy)에 문의하여 상기 데이터에 대응하는 한 특정 해시를 갖는 블로브가 로컬 기억 저장장치에서 이용될 수 있는 결정하도록 한다. 상기 에이전트가 상기 파일을 찾지 못하는 때, 한 피어-투-피어 프로토콜을 사용하여 한 피어 에이전트에서 상기 파일을 찾기를 시도한다. 상기 피어-투-피어 프로토콜을 사용하는 때, 상기 에이전트가 상기 파일을 갖는 에이전트의 리스트 정보를 사용하여 선택적으로 파일을 찾도록 하며, 대안적 실시예가 데이터를 찾기 위한 하나 이상의 계층을 포함하며 이는 피어-투-피어 프로토콜로 제한되지 않는다.Each of the agents first queries a local copy of the file manifest and, as directed by the platform to locate the particular data or blob, the blob having a particular hash corresponding to the data is stored in the local storage < RTI ID = 0.0 > So that it can be used in the device. When the agent can not find the file, it tries to find the file at a peer agent using a peer-to-peer protocol. When using the peer-to-peer protocol, the agent causes the agent to selectively look up the file using the list information of the agent with the file, and an alternative embodiment includes one or more layers for finding data, To-peer protocol.
피어-투-피어 통신은 한 실시예의 에이전트 중에서 지원되며, 이와 같이 함에 있어서, 각 에이전트가 상기 플랫폼으로 개인 IP 주소 그리고 청취하는 포트를 보고하다. 또한, 이 같은 플랫폼은 공공 IP 주소 그리고 에이전트가 상기 개인 정보를 보고하는 시간에(가령, 상기 에이전트의 등록 중에, 등등) 에이전트 각각의 포트를 관찰한다. 상기 플랫폼은 상기 개인 IP 주소 및 포트 그리고 각 에이전트의 공공 IP 주소 및 포트와 함께 모든 에이전트의 리스트를 발생시키며 유지시킨다. 뒤이어서, 제1 에이전트가 제2 에이전트와 피어-투-피어 통신을 설정하기를 원하는 때, 상기 제1 에이전트가 문의를 하고 상기 플랫폼으로부터 제2 에이전트의 공공 및 개인 IP 주소 및 포트를 수신하고, 다음에 이 같은 공공 및 개인 정보를 사용하여 둘 모두로의 연결을 시도한다.Peer-to-peer communication is supported among the agents of one embodiment, and in this way, each agent reports the private IP address and the port it listens to the platform. In addition, such a platform observes the ports of each of the agents at a public IP address and at the time the agent reports the personal information (e.g., during registration of the agent, etc.). The platform generates and maintains a list of all agents along with the private IP address and port and the public IP address and port of each agent. Subsequently, when the first agent wants to establish peer-to-peer communication with the second agent, the first agent makes a query and receives the public and private IP addresses and ports of the second agent from the platform, Using such public and private information to try to connect to both.
한 실시예의 에이전트들 사이에서 피어-투-피어 통신이 공공-키 암호화를 위한 RAS 알고리즘을 사용하여 암호화되며, 그러나 이 같은 실시로 제한되지 않는다. 한 실시예의 암호화는 그리드 내에 국지적으로 모든 키들을 보유하거나 저장하지 않으며, 따라서 상기 그리드 바깥의 어떠한 엔티티도 암호화되지 않은 데이터에 접근할 수 없다. 또한, 어떠한 완성 파일도 상기 플랫폼에서 저장되지 않기 때문에 추가의 데이터 보안이 실현된다.Peer-to-peer communication between agents of an embodiment is encrypted using a RAS algorithm for public-key encryption, but is not limited to this implementation. The encryption in one embodiment does not hold or store all the keys locally within the grid, and therefore no entity outside the grid can access the unencrypted data. Further, additional data security is realized because no completion file is stored on the platform.
에이전트들 사이에서 암호화된 피어-투-피어 통신을 포함하는 한 예에서, 제1 에이전트 A와 통신을 원하는 제2 에이전트 B는 에이전트 A와 B 사이의 대칭 암호화(symmetric encryption)에서 사용하기 위한 데이터를 암호화하도록 사용되는 랜덤 시크릿 S를 발생시킨다. 상기 제2 에이전트 B는 제1 에이전트 A의 공공 키를 사용하여 상기 시크릿 S를 암호화하며, 이를 상기 플랫폼으로부터 복구하고 그리고 상기 암호화된 시크릿 S를 이것이 저장되는 플랫폼으로 제공한다. 상기 제2 에이전트 B는 이들이 한 세션 ID를 사용하여 통신 세션을 설정하는 제1 에이전트로 통신되며, 이에 응답하여 제1 에이전트 A는 상기 플랫폼으로부터 암호화된 시크릿 S를 페치(fetche)하며 상기 시크릿 S를 암호화한다. 이 같은 시크릿은 뒤에가서 제1 에이전트A 그리고 제2 에이전트 B에 의해 사용되어 피어-투-피어 통신을 위한 암호화된 통신 채널을 형성하도록 한다.In one example involving encrypted peer-to-peer communication between agents, a second agent B desiring to communicate with the first agent A sends data for use in symmetric encryption between the agents A and B Thereby generating a random secret S used for encryption. The second agent B uses the public key of the first agent A to encrypt the secret S, recover it from the platform, and provide the encrypted secret S to the platform where it is stored. The second agent B is communicated to a first agent that establishes a communication session using a session ID, and in response, the first agent A fetches the encrypted secret S from the platform and sends the secret S Encrypt. Such a secret is later 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, this is a block diagram of an embodiment system that includes a platform and an agent, which generates or creates a task and assigns such a task to an agent, as described in detail herein . These agents then assign tasks assigned to them by the platform. The agent then performs the tasks assigned to them by the platform and provides the platform with the information of their data and the tasks performed. Since an agent of one embodiment performs the tasks indicated by the platform, they are neither an application nor a user. In operation, each agent is registered with the platform using a passport before it can be used for operation. In one embodiment, a received passport at the platform includes a key and information identifying a corresponding agent. The platform includes a list of all agents available to the platform and associated information of each of the agents, wherein the agents are located in the agent database by the platform as soon as they are registered with the platform.
상기 에이전트 데이터베이스에 추가하여, 한 실시예의 플랫폼이 상기 클라우드 내 다수의 다른 데이터베이스를 포함하며 이에 연결되고, 여기서 한 실시예의 에이전트 그리고 플랫폼이 상기 데이터베이스에 연결되고 상기 데이터베이스를 사용하여 정보를 교환한다. 상기 데이터베이스는 상기 설명된 바와 같이 에이전트 데이터베이스로 제한되지 않으며, 라이브러리 데이터베이스 그리고 목표 데이터베이스를 포함한다. 에이전트 각각은 이들의 로컬 디스크 또는 기억 저장장치를 대표하는 하나 이상의 라이브러리를 가질 수 있으며, 상기 라이브러리 데이터베이스는 대응하는 에이전트에 이용될 수 있는 기억 저장장치의 리스트를 포함한다. 상기 목표 데이터베이스는 특정 태스크가 수행되는(가령, 동기화되는) 라이브러리 집합체인 목표의 리스트를 포함한다.In addition to the agent database, an embodiment platform includes and is coupled to a number of other databases in the cloud, wherein an agent and platform of one embodiment are connected to the database and exchange information using the database. The database is not limited to an agent database as described above, but includes a library database and a target database. Each of the agents may have one or more libraries representative of their local disks or storage devices, and the library database includes a list of storage devices available to the corresponding agent. The target database includes a list of targets that are a collection of libraries (e.g., synchronized) in which a particular task is performed.
상기 라이브러리 데이터베이스와 관련하여, 에이전트 각각은 본원 명세서에서 라이브러리로 불리는 기억 저장장치 마운트 포인트를 식별한다. 마운트로는 가령 디스크 또는 디스크 드라이브, 네트워크 마운트 포인트, 하드 드라이브, 플래시 드라이브, 그리고 기억 저장장치 서비스 등 에이전트가 판독 및/또는 기재 액세스가 허락되는 어떠한 장치를 포함할 수 있으며, 그러나 이들로 제한되지는 않는다. 상기 플랫폼 그리고 각 에이전트는 시스템의 라이브러리 리스트를 포함하는 글로벌 라이브러리 데이터베이스를 포함하며, 각각이 각 라이브러리에 걸친 시스템의 에이전트와 대응한다.With respect to the library database, each of the agents identifies a storage storage mount point, referred to herein as a library. The mount may include, but is not limited to, a disk or disk drive, a network mount point, a hard drive, a flash drive, and any device for which the agent is allowed read and / Do not. The platform and each agent include a global library database containing a list of libraries of systems, each corresponding to an agent of the system across each library.
추가로, 각 에이전트는 주기적인 "스냅샷"의 사용 또는 라이브러리 각각의 스캔을 통해 라이브러리 각각의 내용에 대한 정보를 제공하며, 상기 에이전트 및 플랫폼이 상기 스냅샷의 정보를 사용하여 라이브러리 내 모든 파일들의 현재 상태를 추적한다. 상기 라이브러리 데이터베이스는 문의가 그리드 내 라이브러리 각각을 찾을 수 있도록 하며 상기 라이브러리에 접근할 수 있는 에이전트를 각각을 식별할 수 있도록 한다. 이 같은 아키텍쳐는 상기 에이전트 그리고 플랫폼이, 만약 각각 한 특정 식별을 갖는 라이브러리에 접근하면 각각이 동일한 라이브러리에 접근함을 알 수 있도록 한다. 따라서, 라이브러리 각각은 라이브러리 데이터베이스에서 개별적으로 그리고 분리하여 제공된다. 한 실시예의 플랫폼 그리고 에이전트 각각은 그리드의 모든 라이브러리 정보를 포함하는 전체 라이브러리 데이터베이스를 포함하며, 그러나 이 같은 실시예로 한정되지 않는다. 선택적으로, 상기 플랫폼은 그리드 내 모든 라이브러리의 전체 라이브러리 데이터베이스를 포함하며, 에이전트 각각은 특정 에이전트에 의해 접근 가능한 라이브러리의 정보를 포함하는 로컬 라이브러리 데이터베이스를 포함한다.In addition, each agent provides information about the contents of each library through the use of a periodic " snapshot " or by scanning each of the libraries, and the agent and platform use the information of the snapshot Track current status. The library database allows inquiries to find each of the libraries in the grid and identifies each agent capable of accessing the library. Such an architecture allows the agent and platform to know that each accesses the same library if they each access a library with a particular identity. Thus, each of the libraries is provided separately and separately in the library database. Each of the platforms and agents of an embodiment includes an entire library database including all library information of the grid, but is not limited to such an embodiment. Optionally, the platform comprises an entire library database of all libraries in the grid, each of which includes a local library database containing information of the libraries accessible by a particular agent.
상기 플랫폼은 또한 태스크를 수행하기 위해 에이전트에 의해 사용된 목표를 포함한다. 목표는 에이전트, 마운트, 작업 등등을 취급하는 대신 라이브러리만을 취급한다. 하나 이상의 라이브러리에 대응하는 목표는 상기 라이브러리의 내용에 대한 동작 또는 작업을 수행하도록 사용된다. 또한, 한 라이브러리는 한 실시예에서 다수의 목표에 대응할 수 있다.The platform also includes a target used by the agent to perform the task. The goal is to handle only the library instead of handling agents, mounts, tasks, and so on. A target corresponding to one or more libraries is used to perform operations or tasks on the contents of the library. Further, a library may correspond to multiple goals in one embodiment.
한 실시예의 플랫폼은 각 에이전트에 대응하는 작업 데이터베이스를 포함하며, 상기 에이전트는 상기 플랫폼으로부터 작업 데이터베이스를 수신한다. 상기 플랫폼은 에이전트 각각에 대하여 작업 데이터베이스를 발생시키며, 상기 대응하는 에이전트에 의해 달성될 작업 태스크를 상기 작업 데이터베이스 내에 놓는다. 이 같은 작업 데이터베이스는 상기 작업을 수행하기 위해 상기 에이전트에 의해 필요한 모든 정보와 함께 에이전트에 의해 수행될 태스크 각각의 설명을 포함한다. 상기 플랫폼에 의해 상기 작업 데이터베이스 내에 위치한 어떠한 태스크도 상기 그리드에서 수행된 다른 작업에 응답하여 동적으로 수정되거나 삭제된다. 예를 들면, 만약 한 태스크가 "파일 A를 파일 B로 다시 명명하기 위해" 작업 데이터베이스 내에 놓이면, 그리고 뒤이어 파일 B가 파일 C로 다시 명명될 것이면, 그러면 상기 플랫폼을 상기 작업을 "파일 A를 파일 C로 다시 명명할 것"으로 상기 작업을 수정한다. 또한, 뒤이어 더 이상 쓸모가 없는 태스크는 작업 데이터베이스로부터 제거된다.The platform of one embodiment includes a task database corresponding to each agent, and the agent receives the task database from the platform. The platform generates a task database for each agent, and places the task to be accomplished by the corresponding agent in the task database. Such a task database includes a description of each of the tasks to be performed by the agent along with all the information needed by the agent to perform the task. Any task located within the task database by the platform is dynamically modified or deleted in response to other tasks performed in the grid. For example, if a task is placed in the job database "to rename file A to file B," and subsequently file B is to be renamed to file C, then the platform " Modify the above operation to "Naming again with C". Also, tasks that are no longer useless are removed from the task database.
한 실시예에서, 한 에이전트가 상기 플랫폼으로 그 능력에 대한 정보를 제공한다. 선택적으로, 상기 플랫폼은 그리드의 모든 에이전트 능력의 전체 정보를 포함하는 능력 데이터베이스를 포함하거나 발생시킨다.In one embodiment, an agent provides information about its capabilities to the platform. Optionally, the platform includes or generates a capability database that includes overall information of all agent capabilities of the grid.
에이전트는 상기 설명한 바와 같이, 작업 할당 또는 이들 각각의 작업 데이터베이스를 통해 플랫폼에 의해 발생된 태스크를 수신한다. 상기 작업 데이터베이스 내 각각의 이산 작업 아이템은 에이전트에 의해 취해질 액션을 설명하는 동사(verb)를 포함한다. 예를 들여, 한 실시예의 에이전트에 의해 실행될 수 있는 태스크는 스캐닝, 삭제, 기록, 그리고 업로딩 등을 포함한다. 한 작업 아이템은 그 같은 작업 아이템을 위한 완성 조건과 함께 에이전트로 전달된다.The agents receive tasks assigned by the platform via the task assignment or their respective task databases, as described above. Each discrete work item in the job database includes a verb describing the action to be taken by the agent. For example, a task that can be executed by an agent of one embodiment includes scanning, deleting, recording, uploading, and the like. A work item is passed to the agent along with a completion condition for that work item.
예를 들면, 상기 스캔 태스크는 상기 플랫폼으로 에이전트 라이브러리 내 파일의 현재 상태를 보고함을 포함하고, 그리고 상기 플랫폼을 상기 라이브러리의 내용에 가해진 플랫폼 변화(가령, 파일의 추가, 파일의 삭제 등등) 그리고 상기 라이브러리의 어떤 파일로도 만들어진 변화를 보고함을 포함한다.For example, the scan task may include reporting to the platform the current state of a file in an agent library, and the platform may include a platform change (e.g., adding a file, deleting a file, etc.) And reporting changes made to any file in the library.
또 다른 태스크는 에이전트가 적절한 파일을 발견하고, 상기 파일을 블로브로 나누고, 이들 블로브를 암호화하며, 그리고 클라우드-기반의 기억 저장장치와 같은 오브젝트 저장장치로 파일을 형성하는 블로브의 리스트를 기록하거나 전달하는 업로드 태스크이다. 데이터가 한 오브젝트 기억장치로 기록되는 때, 상기 데이터는 내용이 어드레스되어서, 상기 블로브의 해시가 상기 오브젝트 저장장치로 전달되고 뒤이어서 상기 블로브/데이터를 참고하도록 사용된다(즉, 상기 파일 명칭은 해시이다).Another task is to record a list of blobs where the agent finds the appropriate file, breaks the file into blobs, encrypts those blobs, and forms a file on an object storage device such as a cloud-based storage device Or an upload task. When data is written to an object storage device, the data is addressed so that a hash of the blob is passed to the object storage device and subsequently used to refer to the blob / data (i.e., Hash).
한 실시예의 태스크는 또한 파일의 하나 이상의 블로브를 찾으며 이들 블로브를 제1 위치(가령, 소스 장치)로부터 제2 위치(가령, 목적지 장치)로 상기 블로브들을 복사함을 포함한다. 수신된 기재 태스크에 응답하여, 한 에이전트가 대응하는 에이전트 라이브러리에서 블로브를 찾아낼 것을 시도한다. 만약 상기 블로브가 발견되지 않는다면, 그러면 상기 에이전트는 상기 블로브를 가지고 있음을 보고한 피어 에이전트에서 블로브를 찾을 것을 시도한다. 만약 상기 블로브가 한 피어 에이전트에서 발견되지 않는다면, 그러면 상기 에이전트는 상기 오브젝트 저장장치(가령, 클라우드-기반의 기억 저장장치)로부터 상기 파일을 복구한다. 전체 파일이 기록되어야 하는 때, 블로브의 리스트가 파일의 매니패스트로서 보고되거나 기록된다.A task of one embodiment also includes locating one or more blobs of a file and copying the blobs from a first location (e.g., a source device) to a second location (e.g., a destination device). In response to the received written task, one agent attempts to find the blob in the corresponding agent library. If the blob is not found, then the agent tries to find the blob at the peer agent reporting that it has the blob. If the blob is not found in a peer agent, then the agent recovers the file from the object storage device (e.g., a cloud-based storage device). When the entire file has to be written, the list of blobs is reported or recorded as a manifest of the file.
도 4와 관련하여, 한 실시예 동작은 문서의 버전이 또 다른 장치/에이전트에서 발견된 가장 최근의 버전이 아니라는 결정에 응답하여 장치/에이전트에서의 문서의 동기화를 포함한다. 패스포트를 사용하여 상기 에이전트 AGENT_X 등록 후에. 상기 에이전트는 상기 에이전트의 라이브러리 LIBRARY_X 내용을 포함하는 라이브러리 파일을 발생시키고 상기 플랫폼으로 제공하기 위해 스캔을 수행할 것을 지시받는다. 상기 스캔을 시작하기 위해, 상기 플랫폼은 상기 스캔 태스크를 특정한 에이전트(가령, AGENT JX)를 위한 상기 작업 데이터베이스(가령, WORK AGENTX)로 추가하며, 그리고 상기 플랫폼이 파일을 동기화하기 위해 필요한 모든 작업을 에이전트를 위한 작업 데이터베이스로 기록한다.With reference to Figure 4, an embodiment of operation includes synchronization of a document at a device / agent in response to a determination that the version of the document is not the latest version found in another device / agent. After registering agent AGENT_X using passport. The agent is instructed to perform a scan to generate and provide a library file containing the library LIBRARY_X contents of the agent to the platform. To start the scan, the platform adds the scan task to the task database (e.g., WORK AGENTX) for a particular agent (e.g., AGENT JX), and the platform does all the work required to synchronize the file Write to the operations database for the agent.
상기 라이브러리 LIBRARY_X 는 AGENTJX 에 의해 접근할 수 있는 마운트 상에 있는 파일들에 대한 메타데이터를 담고 있으며, 라이브러리 식별자 또는 필터에 의해 파일의 서브셋을 정의하는 메타데이터를 포함한다. 따라서, 상기 라이브러니는 한 마운트 상에 존재하는 한 세트의 파일들의 메타데이터를 포함한다. 상기 스캔은 플랫폼으로 제공되는 메타데이터를 발생시키는 일정하게 실행되는 잡(job)이며, 여기서 상기 메타데이터는 "스캔된" 라이브러리 각각에 대하여 그 같은 라이브러리(가령, LIBRARY_X) 내용을 대표한다. 결과적으로, 일반적으로, 에이전트 각 각에서 라이브러리 각각의 미러가 발생되며 상기 플랫폼의 라이브러리 데이터베이스 내에 놓여서 상기 라이브러리 데이터베이스가 에이전트 각각에 의해 액세스 가능한 마운트로 특정 필터의 적용에 기초한 상기 필터된 메타데이터를 포함하도록 한다.The library LIBRARY_X contains metadata about the files on the mount accessible by AGENTJX, and includes metadata defining a subset of files by library identifier or filter. Thus, the library includes metadata of a set of files residing on one mount. The scan is a job that is constantly performed to generate metadata provided to the platform, where the metadata represents the contents of such a library (e.g., LIBRARY_X) for each "scanned" library. Consequently, generally, a mirror of each of the libraries in each of the agents is generated and placed in the library database of the platform so that the library database contains the filtered metadata based on the application of a particular filter as a mount accessible by each agent do.
상기 플랫폼에 의해 액세스 가능한 모든 에이전트로 적용된 상기 동작의 결과로서, 상기 플랫폼이 이것이 접근하는 에이전트의 모든 파일들 내용의 메타데이터를 포함한다. 상기 플랫폼은 또한 이 같은 예의 목적으로 목표 데이터베이스 내에 또 다른 에이전트(도시되지 않음)의 LIBRARY_X 및 LIBRARY_Y를 위한 "동기화(sync)" 목적을 포함한다. 이 같은 동작은 동기화 문서를 발생시키며, 그리고 상기 동기화 문서는 모든 파일에 대응하는 엔트리를 사용하여 이들 라이브러리 각각에서 모든 파일의 현재 서명 또는 목표 상태를 추적하며, 라이브러리 파일 또는 아이템들이 이들 각각의 라이브러리에서 변경하는 때 목표 상태를 갱신한다. 이 같은 예를 사용하여, 상기 동기화 문서가 LIBRARY_X 및 LIBRARY_Y의 현재 목표 상태를 추적하며, 어느 파일도 현재의 목표 상태에 있지 않다면, 그러면 작업이 발생되고 상기 플랫폼에 의해 할당되어 LIBRARY_X 및 LIBRARY_Y를 올바른 (동일한) 목표 상태에 있도록 한다. 이 같은 예에서, 상기 목표 상태는 마지막 그리고 가정 현재 상태에 의해 결정되며, LIBRARY_Y 의 문서는 가장 현재의 파일 버전이어서 작업이 AGENT X로 할당되어서 LIBRARY_X의 파일들을 LIBRARY_Y의 파일들과 같은 상태로 갱신하도록 한다. 다음에 상기 시스템은 적절한 엔티티(가령, 피어 에이전트(들), 원격 기억 저장장치, 등등)을 포함하는 한 세션을 개시하며, 필요한 정보가 복구되어 데이터를 교환하고 상기 라이브러리를 동기화하도록 한다. As a result of the operation applied to all agents accessible by the platform, the platform includes metadata of the contents of all the files of the agent it accesses. The platform also includes a "sync" purpose for LIBRARY_X and LIBRARY_Y of another agent (not shown) in the target database for the purpose of this example. Such an action generates a synchronization document and the synchronization document tracks the current signature or target state of all files in each of these libraries using an entry corresponding to all of the files, Update target state when changing. Using this example, the synchronization document tracks the current target state of LIBRARY_X and LIBRARY_Y, and if neither file is in the current target state, then a task is created and allocated by the platform to make LIBRARY_X and LIBRARY_Y correct Same) target state. In this example, the target state is determined by the last and hypothetical current state, and the document of LIBRARY_Y is the most current file version, so the job is assigned to AGENT X to update the files of LIBRARY_X to the same state as the files of LIBRARY_Y do. The system then initiates a session that includes the appropriate entities (e.g., peer agent (s), remote storage, etc.) and allows the necessary information to be recovered to exchange data and synchronize the library.
에이전트들 사이의 파일 동기화와 관련된 또 다른 예시는 도 5에 도시되는데, 이는 실시예에서, 플랫폼과 에이전트 사이의 파일 동기화와 관련된 예시의 블록도이다. 이 같은 예는 세개의 에이전트(A 502, B 504, 및 C 506)를 포함하며, 각 에이전트가 대응하는 라이브러리(LIB_A 508, LIB B 510, 및 LIB C 512)를 갖지만 이들로 제한되지는 않는다. 상기 플랫폼은 목표 데이터베이스에서 한 목적(514)을 포함하여, 이들 세 라이브러리를 동기화하도록 한다. 상기 플랫폼은 다수의 레코드(516)를 포함하는 라이브러리 데이터베이스를 포함하며, 이들 레코드 각각은 상기 플랫폼에 의해 관리되는 싱글 파일에 대응한다. 레코드 각각은 파일의 각 경우에 대한 엔트리의 형태로 정보를 포함하며, 이 같은 엔트리는 파일 및 파일 경로(P)의 해시를 포함하는 라이브러리의 정보를 포함한다.Another example associated with file synchronization between agents is shown in FIG. 5, which is an example block diagram related to file synchronization between the platform and the agent in an embodiment. Such an example includes three agents (A 502,
이 같은 예의 목적을 위해 특정 파일을 위해 에이전트 B 및 C(가령, H)가 아닌 다른 해시(가령, H2)를 보고한다. 상기 플랫폼은 라이브러리 데이터베이스의 정보로부터 에이전트 A가 에이전트 B 및 C의 파일이 아닌 파일에 대한 다른 해시 정보를 보고하고 그리고 에이전트 A의 파일은 파일의 가장 최근 버전임을 결정한다. 이에 응답하여, 상기 플랫폼은 이들 파일들을 에이전트 A에 의해 소유되는 가장 최근 버전으로 갱신하기 위해 에이전트(B 518 및 C 520 (가령, WORK_B 및 WORK_C))에 대한 작업을 발생시키며 이들 파일들을 에이전트 A에 의해 소유되는 가장 최근 버전으로 갱신하도록 한다. 발생된 작업은 대응하는 파일을 찾고 펫칭(fetch)하며 복구된 정보를 사용하여 이들의 파일을 갱신하는 것이며 상기 작업 태스크는 상기 플랫폼에 의해 플랫폼의 작업 데이터베이스 내로 놓인다. 한 실시예의 플랫폼에 의해 발생된 상기 작업 태스크는 파일의 가장 최근 버전이 저장되는 시스템에서 위치의 정보(가령, 에이전트 A)를 포함하며, 그러나 이에 한정되지 않는다. 상기 작업 태스크는 적절한 위치(가령, 상기 파일의 블로브를 제어하는 하나 이상의 에이전트)로부터 대응하는 파일을 펫칭하기 위한 정보를 포함하며 상기 복구된 정보를 사용하여 파일들을 갱신하도록 한다. 상기 작업 태스크는 상기 플랫폼에 의해 플랫폼의 작업 데이터베이스 내로 위치된다.For the purposes of this example, report a hash (e.g., H2) other than Agent B and C (e.g., H) for a particular file. The platform reports from the information in the library database that agent A reports different hash information for files other than the files of agents B and C and that the file of agent A is the most recent version of the file. In response, the platform generates a job for agents B 518 and C 520 (e.g., WORK_B and WORK_C) to update these files to the most recent version owned by agent A and sends these files to agent A To the latest version owned by the user. The generated tasks are to find the corresponding files, fetch them, and update their files using the recovered information, which are put into the task database of the platform by the platform. The work task generated by the platform of one embodiment includes, but is not limited to, information of the location (e.g., Agent A) in the system where the most recent version of the file is stored. The work task includes information for p petating a corresponding file from an appropriate location (e.g., one or more agents that control the file's blob) and updates the files using the recovered information. The work task is located within the work database of the platform by the platform.
이 같은 예에서, 에이전트 B 그리고 C는 이들 각각의 작업(가령, WORK_B 및 WORK_C 각각)을 상기 플랫폼의 작업 데이터베이스로부터 복구한다. 상기 작업을 완성하자 마자, 에이전트 A, B, 및 C 각각은 에이전트 A, B, 및 C(미도시)의 라이브러리 내 해시(H2)에 의해 표시되는 바와 같이, 파일의 가장 최근 버전을 포함한다. 또한, 에이전트 B 및 C 각각은 작업 태스크의 완성을 상기 플랫폼으로 보고한다.In such an example, agents B and C recover their respective jobs (e.g., WORK_B and WORK_C, respectively) from the platform's operations database. Upon completion of the task, each of the agents A, B, and C contains the most recent version of the file, as indicated by the hash (H2) in the library of agents A, B, and C (not shown). Also, agents B and C each report the completion of the task to the platform.
좀 더 구체적으로, 도 6은 실시예에서, 에이전트, 플랫폼 및 데이터베이스와 관련된 예시적인 순서도이다. 이 같은 실시예에서, 새로운 에이전트 A는 플랫폼에 등록되며(602) 새로운 에이전트 A에 대응하는 에이전트 데이터베이스에서 한 엔트리가 생성된다. 상기 에이전트 데이터베이스에 추가되는 에이전트 A에 응답하는 플랫폼이 상기 새로운 에이전트 A를 위한 작업 데이터베이스 WORK_A를 생성한다(604). 상기 작업 데이터베이스 WORK_A는 대응하는 에이전트 A를 위한 작업 또는 태스크를 포함하도록 발생된다. 또한, 한 새로운 라이브러리 엔트리가 상기 새로운 에이전트 A에 대응하는 라이브러리 데이터베이스로 추가되며, 이에 응답하여, 새로운 데이터베이스(LIB_LA, 608)가 에이전트 A의 라이브러리 정보를 위해 생성된다. 또한, 새로운 동기화 목적(SYNC(LA), 610)이 발생되며 목표 데이터베이스로 추가되고, 그리고 상기 새로운 동기화 목적은 정보를 포함하는 데, 이 같은 정보에 의해 새로운 에이전트 A의 파일들 그리고 상기 플랫폼이 액세스하는 다른 에이전트의 파일들 가운데에서 동기화를 지시하다.More particularly, Figure 6 is an exemplary flow chart associated with an agent, platform, and database in an embodiment. In this embodiment, the new agent A is registered (602) with the platform and an entry is created in the agent database corresponding to the new agent A. A platform responding to agent A added to the agent database creates a task database WORK_A for the new agent A (604). The task database WORK_A is generated to include tasks or tasks for the corresponding agent A. [ In addition, a new library entry is added to the library database corresponding to the new agent A, and in response, a new database (LIB_LA, 608) is created for the library information of agent A. [ In addition, a new synchronization objective (SYNC (LA), 610) is generated and added to the target database, and the new synchronization objective includes information that, by such information, To synchronize among other agent's files.
새로운 에이전트 A의 등록에 응답하여서, 상기 플랫폼이 라이브러리 A의 내용 정보를 처음 요구하며, 다음에 라이브러리 A의 내용 변화에 대한 정보를 요구한다. 도 7은 실시예에서, 라이브러리를 스캔하고 동기화하기 위한 동기화 목표(sync goal)의 사용과 관련된 예시적인 순서도이다. 에이전트 A의 등록 프로세싱(702)에 뒤이어, 상기 동기화 목표 SYNC(LA)가 동작하여, 작업 태스크를 발생시키고, 에이전트 A의 상기 작업 데이터베이스(WORK_A)로 추가시킨다(704). 에이전트 A는 본원 명세서에서 상세히 설명되는 바와 같이, 라이브러리의 최초 내용을 결정하거나 알기 위해 라이브러리 A의 모든 내용을 스캔함에 의해 작업 태스크에 응답한다. 라이브러리 A 모든 내용의 메타데이터를 플랫폼으로 전달함에 추가하여, 라이브러리 A의 내용이 뒤에 가서 사용되어 언제 라이브러리 A의 내용으로 변화가 발생하는가를 결정하도록 한다.In response to the registration of the new agent A, the platform first requests the content information of the library A and then requests information on the content change of the library A. [ FIG. 7 is an exemplary flowchart related to the use of a synchronization goal (sync goal) to scan and synchronize libraries in an embodiment. Following
라이브러리 A 내용의 정보를 사용하여, 에이전트 A가 뒤에가서 내용에 어떠한 변화가 있었는지에 대해 라이브러리 A를 모니터한다. 이 같은 변화는 새로운 파일 추가, 한 파일의 삭제, 어떤 파일 내용에 대한 변경, 그리고 파일의 명칭 새로이 명명하기 등등을 포함할 수 있다. 라이브러리 A의 내용에 대한 변화를 검출함에 추가하여, 에이전트 A가 변경(706)을 라이브러리 데이터베이스 LIB_LA 내로 한 변경(706)을 포스트한다. 또한, 에이전트 A가 상기 플랫폼으로 상기 라이브러리 A의 내용 변경에 대응하는 메타데이터를 상기 플랫폼으로 보낸다.Using the information in library A content, agent A monitors the library A to see if there has been any change in content. Such changes may include adding new files, deleting one file, changing the contents of some file, naming the file again, and so on. In addition to detecting a change to the contents of library A, agent A posts change 706 into
한 실시예의 플랫폼은 동기화 데이터베이스를 포함한다. 상기 플랫폼은 상기 동기화 데이터베이스를 발생시키며 에이전트와 파일 상태의 레코드를 포함하고 유지시키도록 하며, 특히 파일 및/또는 에이전트에 대응하는 내용 해시를 포함하는 각 파일 및/또는 각 에이전트에 대한 엔트리를 포함한다. 상기 데이터베이스 라이브러리 LIB_LA 내 변경의 포스팅을 플랫폼이 검출하는 때, 상기 플랫폼이 라이브러리A 내 그 같은 변경을 반영하기 위해 상기 동기화 데이터베이스를 갱신한다(708). 라이브러리 A에 대한 이 같은 변경은 다른 라이브러리(가령, B 및 C)가 더 이상 라이브러리 A와 동기화되지 않음을 의미한다. 결과적으로, 상기 플랫폼은 다른 라이브러리의 에이전트(710)에 대한 작업을 발생시켜서 라이브러리 A의 내용과 동기화되도록 라이브러리를 갱신하도록 한다. 따라서, 이 같은 실시예에서, 작업 태스크가 에이전트 B 및 C에 대하여 발생되어 이들의 라이브러리를 동기화하도록 한다.The platform of one embodiment includes a synchronization database. The platform generates the synchronization database and includes and maintains a record of the agent and file status, and in particular includes an entry for each file and / or each agent that contains a content hash corresponding to the file and / or agent . When the platform detects the posting of a change in the database library LIB_LA, the platform updates 708 the synchronization database to reflect such changes in library A. This change to library A means that other libraries (e.g., B and C) are no longer synchronized with library A. As a result, the platform causes the operation of the
또 다른 실시예로서, 한 실시예의 플랫폼 및 에이전트가 모든 데이터를 네트워크 기억 저장장치에서 저장하는 대신, 이때 데이터가 기억 저장장치로 전달될 것을 필요로 하는 것인데, 가상의 NAS. So를 형성하며, 상기 플랫폼 그리고 에이전트가 데이터 그리고 플랫폼의 대응하는 메타데이터의 인덱스를 사용하여 가상의 NAS를 발생시키도록 사용될 수 있다. 이 같은 방식으로, 상기 NAS는 그리드를 형성하는 계산 장치의 수집을 사용하여 형성되며 따라서 사이트상에 있으며 상기 자신의 에이전시에 의해 제어된다.In another embodiment, instead of storing all the data in the network storage device, the platform and the agent in one embodiment require that the data be transferred to the storage device at this time. So, the platform and the agent can be used to generate the virtual NAS using the index of the metadata and the corresponding metadata of the platform. In this way, the NAS is formed using a collection of computing devices forming a grid, and thus is on site and controlled by its own agency.
한 실시예에서, 작은 오피스 환경이 오피스 내 모든 컴퓨터를 백업하는 데 사용하기 위한 네트워크 결합 스토리지(Network- Attached Storage)(NAS)를 포함한다. 그러나 일정 기간이 지난 뒤에, 오피스 컴퓨터의 데이터는 NAS 장치의 모든 메모리를 소모하며 상기 네트워크의 컴퓨터를 백업하기 위해 추가의 기억 저장장치가 필요하다. 종래의 기술을 사용하여, 제1 NAS가 더욱 큰 메모리를 갖는 NAS로 대체될 것이 필요할 것이며, 또는 오피스 내 각 컴퓨터는 NAS에 할당될 것을 필요로 하고 따라서 모든 컴퓨터가 같은 NAS에서 백업 되지 않도록 할 것이다. 그러나, 한 실시예의 플랫폼 사용은 이 같은 문제를 제거하는 데, 이는 상기 플랫폼이 메모리 장치 각각에서 호스트된 에이전트 또는 선택적으로 오피스 내 컴퓨터 각각에서 호스트된 에이전트와 통신하도록 사용되기 때문이며, 이때 에이전트 각각은 NAS 각각으로 기록하는 능력을 갖는다. 이와 같이 함에 있어서, 상기 플랫폼은 상기 에이전트를 통하여 형성된 그리드의 모든 멤버와 통신하며, 이 같은 통신에 의하여 상기 플랫폼이 오피스의 모든 데이터 위치에 대한 정보를 갖는다. 오피스 데이터의 메타데이터를 사용하여, 플랫폼은 에이전트가 백업 데이터를 저장하는 위치에 대하여 또는 에이전트가 프로세싱 동작을 완성하기 위해 그 같은 에이전트에 의해 필요한 데이터를 복구하거나 판독하기 위한 위치에 대하여 에이전트 각각으로 지시할 수 있다.In one embodiment, a small office environment includes Network-Attached Storage (NAS) for use in backing up all of the computers in an office. However, after a period of time, the data on the office computer consumes all of the memory of the NAS device and an additional storage device is needed to back up the computers on the network. Using conventional techniques, it would be necessary for the first NAS to be replaced by a NAS with a larger memory, or each computer in the office would need to be assigned to the NAS and thus not all computers would be backed up on the same NAS . However, the use of the platform of one embodiment eliminates this problem because the platform is used to communicate with an agent hosted on each of the memory devices or, alternatively, an agent hosted on each of the computers in the office, Respectively. In doing so, the platform communicates with all the members of the grid formed through the agent, and with such communication, the platform has information about all the data locations of the office. Using the metadata of the office data, the platform may be instructed by the agent for the location where the agent stores the backup data, or for the location to retrieve or read the data required by the agent to complete the processing operation can do.
한 실시예의 플랫폼과 관련된 또 다른 예시적인 애플리케이션으로서, 사용자는 디지털 픽쳐를 폴더 내에 위치시키며, 뒤이어서 트위터 애플리케이션을 사용하여 상기 폴더 내에 담긴 모든 픽쳐들을 트위트하고자 한다. 한 실시예에서, 한 트위터 API에서 한 에이전트가 설치되며, 상기 플랫폼은 상기 폴더 내로 위치하는 모든 픽쳐가 트위터로 제공되는 목적을 포함한다. 이 같은 목적을 사용하여, 상기 플랫폼은 픽쳐를 트위터로 제공하도록 그 같은 에이전트에 지시하며, 다음에 상기 트위터 에이전트가 상기 포토를 사용하여 한 트위트를 발생시키도록 지시받을 수 있다. 또 다른 실시예로서, 상기 트위터 에이전트는 NAS 에서의 한 특정 위치에 있는 계좌에 수신된 모든 트위트를 저장하도록 플랫폼에 의해 지시를 받을 수 있다.As another exemplary application related to one embodiment of the platform, a user places a digital picture in a folder and subsequently uses twitter application to tweet all the pictures contained in the folder. In one embodiment, an agent is installed in one Twitter API, and the platform includes the purpose that all the pictures located in the folder are provided to the tweeter. Using this same purpose, the platform may direct such agent to provide a picture to a twitter, and then the twitter agent may be instructed to generate a tweet using the port. As another example, the twitter agent may be instructed by the platform to store all tweets received in an account at a particular location in the NAS.
또 다른 실시예에서, 한 실시예의 플랫폼은 파일 전달 대신 내용 트랜스코딩 및 스트림잉을 제공한다. 이 같은 경우, 한 장치로 다운로드 될 상대적으로 큰 파일이 완전한 파일을 상기 장치로 다운로드 하는 대신 하나 이상의 피어 에이전트로부터 상기 장치로 트랜스코드 및 스트리밍 될 수 있다.In yet another embodiment, the platform of one embodiment provides content transcoding and streaming instead of file delivery. In such a case, a relatively large file to be downloaded to one device may be transcoded and streamed from the one or more peer agents to the device instead of downloading the complete file to the device.
민감한 데이터를 사업상 보호하기 위하여, 일 실시예의 플랫폼은, 본 명세서의 상세한 설명에 기술된 바와 같이, 모바일 장치, 데스크톱 및 공공, 개인 또는 로컬 클라우드에 걸쳐 사업 내용을 위한 가시성, 분석, 관리 및 보안을 제공하는, 서비스로서의 소프트웨어(software-as-a service, SaaS)-기반의 데이터 동기화 및 내용 관리 플랫폼을 포함한다. 플랫폼은 장치, 사용자 및 지리적 분포에 걸친 내용을 찾고, 추적하며 관리할 수 있는 클라우드-기반의 분산형 데이터 시스템을 포함한다. 플랫폼은 피어-투-피어(P2P) 시스템의 강도와 좀 더 전형적인 클라우드 데이터 저장 플랫폼의 중심화 및 제어를 결합시키도록 구성된다. 이러한 신규의 하이브리드 접근법은 단호한 제어 및 보안을 가져온다.In order to protect sensitive data, the platform of an embodiment may be configured to provide visibility, analysis, management and security for business content across mobile devices, desktops and public, private or local clouds, as described in the detailed description herein Software-as-a-service (SaaS) -based data synchronization and content management platform. The platform includes a cloud-based, distributed data system that can locate, track, and manage content across devices, users, and geographic distribution. The platform is configured to combine the strength of a peer-to-peer (P2P) system with the centralization and control of a more typical cloud data storage platform. This new hybrid approach brings decisive control and security.
일 실시예의 플랫폼은 플랫폼의 클라우드-기반의 정책 엔진, 불가지론 파일(agnostic file) 저장 환경, 높은 효율의 데이터 전송, 자동화된 데이터-발견 및 세그멘테이션 및 멀티-레이어된 기업 등급 보안의 결과처럼, 다른 클라우드-기반의 동기화 및 내용 관리 플랫폼과 상이하다. 종래의 클라우드 서비스 환경에서, 클라우드는 "덤 저장(dumb storage)"으로 역할하는 반면, 대부분의 플랫폼 인텔리전스는 모바일 및 데스크톱 클라이언트에 호스트된다. 일 실시예의 플랫폼은 좀 더 유연하고, 강력하며 안전한 접근법을 취한다. "덤 저장"에 접근하는 "스마트 클라이언트" 대신에, 플랫폼은 "덤 클라이언트"를 안내하는 "스마트 클라우드"를 가진다. 이러한 접근법을 가지고, 플랫폼은 클라이언트(모바일 및 데스크톱 장치)로 커맨드를 발생시키고, 기능 및 보안성을 개선시킨다.The platform of one embodiment may be a cloud-based policy engine of the platform, an agnostic file storage environment, high efficiency data transmission, automated data-discovery and segmentation, and multi-layered enterprise- Based synchronization and content management platform. In traditional cloud service environments, the cloud serves as "dumb storage", while most platform intelligence is hosted on mobile and desktop clients. The platform of one embodiment takes a more flexible, robust and secure approach. Instead of a "smart client" accessing "bonus storage ", the platform has a" smart cloud " With this approach, the platform generates commands to clients (mobile and desktop devices) and improves functionality and security.
도 8은 실시예에서, 정책 데이터베이스 및 규칙 엔진을 포함하는 플랫폼의 블록도이다. 플랫폼은 정책 데이터베이스(policy database) 내의 클라우드 레벨에서 모든 서비스 정책을 포함하고, 정책 데이터베이스는 플랫폼 규칙 엔징에 연결된다. 예를 들어, 정책은 "폴더 X 내의 새로운 파일을 사용자 A, B 및 C의 장치로 복사하기"일 수 있다. 정책 데이터베이스의 정책에 더하여, 플랫폼은 파일 메타데이터, 사용자, 장치 그룹 및 조직의 완성된 데이터베이스를 유지하여, 플랫폼에게 환경의 완전한 이해를 제공한다. 플랫폼의 컨피규레이션은 장치 특징, 파일 메타데이터 및 허락(가령, 사용자 허락, 그룹 허락, 조직 허락등)을 수신하기 위해 연결된다.8 is a block diagram of a platform including a policy database and a rules engine in an embodiment. The platform includes all service policies at the cloud level within the policy database, and the policy database is linked to the platform rule envi- ronment. For example, the policy may be "Copy a new file in folder X to a device of users A, B, and C ". In addition to the policy of the policy database, the platform maintains a complete database of file metadata, users, device groups, and organizations, providing the platform with a complete understanding of the environment. The configuration of the platform is connected to receive device features, file metadata, and permissions (e.g., user permissions, group permissions, organization permissions, etc.).
클라이언트 레벨에서, 로컬 에이전트는 (i) 이벤트(가령, 폴더 X로 추가되는 새로운 파일)를 모니터링하고, (ii) 파일의 인덱싱(파일은 다음의 중요한 용어를 포함함)을 수행하며, (iii) 파일 메타데이터, 장치 상태 및 새로운 이벤트를 플랫폼으로 업로드하고, (iv) 플랫폼으로부터 발생된 작업(가령, 데이터 이동, 폴더 스캔, 파일 생성, 피어로 연결 등)을 프로세스한다. 에이전트는 네트워크 주위에 이동하는 각각의 조각의 데이터를 클라우드 내의 정책 엔진으로 보고하여, 데이터가 위치되고, 위치될 필요가 있는 곳을 알기 위해 플랫폼을 활성화시킨다.At the client level, the local agent monitors (i) the event (e.g., a new file added to the folder X), (ii) performs indexing of the file (the file includes the following important terms) Upload file metadata, device state and new events to the platform, and (iv) process the operations originating from the platform (e.g., data movement, folder scanning, file creation, peer connection, etc.). The agent reports the data of each piece moving around the network to the policy engine in the cloud, activating the platform to know where the data is located and needs to be located.
새로운 정책이 추가되거나, 새로운 이벤트가 에이전트 레벨에서 발생되면, 플랫폼은 디렉터 또는 "교통 경찰"의 역할을 하여, 무슨 액션이 취해져야 하는지를 결정한다. 정책 엔진에 기초하여, 플랫폼은 로컬 에이전트로 커맨드를 발생시켜서, 이들의 태스크를 수행한다. 에이전트(들)는 정책 엔진으로부터 발생된 작업을 수행하기만 한다. 이러한 접근법은 용이하게 달성될 서비스의 다른 중요한 구성의 추출 및 클라우드 내에 있는 인텔리전스 때문에, 새로운 사용 사건(가령, 데이터 백업, 정보 통치)의 빠른 반복을 활성화시키고, 메타데이터가 파일 데이터로부터 분리된 보안 모델을 개선시킨다.When a new policy is added, or a new event occurs at the agent level, the platform acts as a director or "traffic police" to determine what action should be taken. Based on the policy engine, the platform generates commands to local agents to perform their tasks. The agent (s) merely perform the operations originating from the policy engine. This approach facilitates rapid repetition of new usage events (e.g., data backup, information governance) due to the extraction of other important components of the service that will be easily achieved and the intelligence in the cloud, .
전통적인 클라우드 서비스 제공자는 고객이 그들의 클라우드 인프라스트럭처내의 데이터를 파일 저장 액세스 포인트로서 업로드하고 저장하도록 한다. 이들 제공자는 저장소에 대한 청구 고객에 의해, 그리고 단일 저장 시스템 내의 모든 사용자 데이터를 결합함에 의해, 이러한 아키텍처로부터 이익을 얻는데, 이는 서비스 제공자가 내용의 중복 제거하고, 실제로 사용되지 않는 저장소에 대해 청구할 수 있다. 회사가 그들의 저장 위치를 선택할 수 없어서, 그들의 데이터에 대해 제어할 수 없고, 회사는 중복 데이터를 정확하게 제거하는 것, 그들의 민감한 사업 내용과 시스템상의 다른 사용자와 혼합되지 않는 것에 대해 그들의 서비스 제공자를 신뢰해야만 하며, 이러한 공유, 더 나아가 잠재적인 틈으로 데이터를 노출하는 것과 같은 특징을 사용하기 위해 서비스 제공자에게 그들의 암호화키를 공유해야만 한다는 것을 포함하여, 이러한 접근법은 많은 보안 문제점이 있다.Traditional cloud service providers allow customers to upload and store data within their cloud infrastructure as file storage access points. These providers benefit from such an architecture by combining billing customers for the repository and all user data within a single storage system, which allows service providers to deduplicate content and charge for unused repositories . Companies can not control their data because they can not choose their storage location and companies must trust their service providers to precisely eliminate redundant data, their sensitive business content and not being mixed with other users on the system This approach has many security problems, including the need to share their encryption keys with service providers in order to use features such as sharing, and even exposing data to potential gaps.
전통적인 클라우드 서비스와 달리, 일 실시예의 플랫폼은 다양한 공공, 개인 및 로컬 클라우드를 팡리 저장 액세스 포인트로 사용한다. 이러한 불가지론 파일 저장 액세스 포인트를 전달하기 위해, 플롯폼은 파일 내용을 메타데이터로부터 분리하고, 두 개를 매우 상이하게 다룬다. 도 9는 실시예에서, 다른 플랫폼 구성과 분리된 메타데이터를 나타내는 블록도이다. 좀 더 구체적으로, 실제 파일이나 파일 데이터가 하나 이상의 저장 액세스 포인트상에 고객에 의해 결정된 대로 저장되는 반면, 메타데이터는 해당 서버를 가진 클라우드 내에 중심화되고 저장된다. 또한, 플랫폼에 의해 제어되는 진보된 데이터 핑거프린팅 및 해싱에 의해, 파일 데이터는 복수의 데이터 저장소에 걸쳐 안전하게 저장된다. 이러한 접근법하에서, 고객은 파일이 저장되는 위치를 선택할 수 있고, 이는 보안을 개선시키고, 기존 인프라스트락처를 활용하며, 정책이 지역적으로 데이터를 저장할 수 있도록 하며, Safe Harbor 요구사항을 충족한다.Unlike traditional cloud services, the platform of one embodiment uses a variety of public, private, and local clouds as Fangry storage access points. To deliver this aggressive file storage access point, the plot form separates the file contents from the metadata and handles the two very differently. 9 is a block diagram illustrating metadata separated from other platform configurations in an embodiment. More specifically, the metadata is centered and stored in the cloud with the server, while the actual file or file data is stored as determined by the customer on one or more storage access points. Further, by advanced data fingerprinting and hashing controlled by the platform, file data is securely stored across multiple data stores. Under this approach, customers can choose where their files are stored, which improves security, leverages existing infrastructure, enables policies to store data locally, and meets Safe Harbor requirements.
전통적인 클라우드 서비스 제공자는 일반적으로, 클라이언트로부터의 모든 데이터를 그들의 중심된 클라우드로 업로딩하고, 그리고 나서 연결된 클라이언트로 다시 다운함에 의해 데이터 전송을 위한 비효율적인 2-단계 프로세스를 수행한다. 데이터 중복 제거 레벨, 해싱 및 P2P 능력에 의존하여, 이러한 데이터 전송 프로세스는 시간 소요되고 현저한 데이터 전송 비용을 발생시킨다.Traditional cloud service providers typically perform an inefficient two-step process for data transfer by uploading all data from the client to their centralized cloud and then downloading back to the connected client. Depending on the data deduplication level, hashing and P2P capabilities, this data transfer process is time consuming and results in significant data transfer costs.
이와 대비하여, 실시예의 플랫폼은 데이터를 전송하기 위한 일련의 기술을 사용한다. 예를 들어, 실시예의 플랫폼은 전체 파일 대신에 데이터의 블록을 이동시킴에 의해 블록 레벨 파일 전송을 수행한다. 예로서, 1GB 파일이 수정되면, 전체 1GB 파일이 아니라 수정된 파일의 해시된 블록(가령, 10MB 블록)이 전송된다.In contrast, the platform of the embodiment uses a set of techniques for transmitting data. For example, the platform of the embodiment performs block level file transfer by moving blocks of data instead of the entire file. As an example, when a 1 GB file is modified, a hashed block of the modified file (e.g., a 10 MB block) is sent instead of the entire 1 GB file.
플랫폼은 데이터 저장 인덱스를 포함하는데, 이는 전체 시스템에 걸쳐 데이터 블록을 인덱스하여, 벽장 포인트로부터 데이터를 요청하는 에이전트로 데이터 블록을 전송하도록 한다. 예를 들어, 파일이 이미 하나의 에이전트로부터 클라우드로 업로드되었다면, 요청하는 에이전트는, 다운로드를 위해 클라우드로 파일을 재-업로드하도록 원래의 에이전트에게 요청하는 대신에, 이를 클라우드로부터 직접 다운로드한다.The platform includes a data storage index that allows data blocks to be indexed across the entire system and transmitted to the agent requesting data from the closet point. For example, if a file has already been uploaded from the one agent to the cloud, the requesting agent downloads it directly from the cloud instead of asking the original agent to re-upload the file to the cloud for downloading.
도 10은 실시예에서, 플랫폼의 연결 타입을 도시한다. 실시예의 플랫폼은 두 개의 연결 타입을 사용한다. 제1 연결 타입은 다양한 로컬 구성과 온라인 서버들과 서비스 사이에 HTTP/TLS를 포함한다. 이는 웹 브라우저와 등가이고, 동일한 기계상에 브라우저로서 동일한 방화벽 행동을 가진다. 실시예의 제2 연결 타입은 피어-투-피어(P2P) 프로토콜이다. 도 11은 실시예에서, P2P 연결 타입을 도시한다. 플랫폼은 P2P 통신을 사용하여, 에이전트들 사이에 데이터를 효율적으로 이동시킨다. 예를 들어, 동일한 LAN상의 두 개의 에이전트는, 이들이 클라우드 저장 제공자를 통해 하는 것 보다 훨씬 더 효율적으로 직접적으로 데이터를 이동할 수 있다.Figure 10 shows, in an embodiment, the connection type of the platform. The platform of the embodiment uses two connection types. The first connection type includes HTTP / TLS between various local configurations and online servers and services. It is equivalent to a web browser and has the same firewall behavior as a browser on the same machine. The second type of connection in the embodiment is a peer-to-peer (P2P) protocol. 11 shows, in an embodiment, a P2P connection type. The platform uses P2P communications to efficiently move data between agents. For example, two agents on the same LAN can move data directly more efficiently than they do through a cloud storage provider.
실시예의 플랫폼은 사용자 데이터그램 프로토콜("UDP")를 사용하여 P2P 통신하는데, 이에 제한되지 않는다. 서비스로부터의 정보를 사용하여, 에이전트는 서로 UDP 세션을 구축하도록 시도할 것이다. 두 에이전트가 동일한 방화벽 뒤에 있다면, 이는 성공적이다. 방화벽 외부의 피어에 대해서, 통신은 좀 더 복잡해진다. 일부 기업 방화벽은 이러한 트래픽을 허용하지 않을 것이고, 이들 경우에, 플랫폼은 HTTP/TLS를 통해 피어들 사이에 데이터를 "릴레이"할 것이다.The platform of the embodiment is not limited to the P2P communication using the User Datagram Protocol ("UDP"). Using the information from the service, the agents will attempt to establish a UDP session with each other. If both agents are behind the same firewall, this is successful. For peers outside the firewall, communication becomes more complex. Some corporate firewalls will not allow such traffic, and in these cases, the platform will "relay" the data between peers via HTTP / TLS.
플랫폼은 복수의 에이전트가 이들의 업스트림 대역폭을 폴링하여서, 단일 에이전트가 단독으로 할 수 있는 것보다 더 빠르게 조각으로 대량 파일을 이동시킬 수 있는 상호동작적인 파일 전송을 수행한다. 이러한 기술은 클라우드 저장 릴레이 및 P2P 데이터 전송 모두에서 사용되나, 이에 제한되지 않는다.The platform polices its upstream bandwidth by a plurality of agents to perform interoperable file transfers that can move large files into fragments faster than a single agent can do alone. This technique is used in both, but not limited to, cloud storage relays and P2P data transfer.
실시예의 플랫폼은 비-순차적/동시적 전송을 수행하는데, 순서없는 데이터 전송은 동시적인 파일 업로드 및 다운로드로 지원된다. 이러한 방법을 사용하여, 데이터의 모든 블록이 도착하면, 이들이 전송된 순서에 무관하게, 데이터는 에이전트에서 재조립된다.The platform of the embodiment performs non-sequential / simultaneous transmission, wherein unordered data transmission is supported by simultaneous file upload and download. Using this method, when all the blocks of data arrive, the data is reassembled in the agent, regardless of the order in which they are transmitted.
종래의 클라우드 서비스의 제공자는 이들의 플랫폼 내의 최소의 데이터 가시성을 제공한다. 사용자는 이들의 파일에 액세스할 수 있으나, 정보 기술(IT) 관리자는 시스템 내의 데이터내로 비가시성을 조금 가진다. 일부 서비스 제공자는 IT 관리자가 시스템에 걸친 파일 이름의 리스팅을 볼 수 있도록 하는 반면, 다른 이는 누구든지 시스템 내의 파일상의 세부사항을 제공하지 않는다.The providers of conventional cloud services provide minimal data visibility within their platforms. Users can access their files, but an information technology (IT) administrator has little invisibility into the data in the system. Some service providers allow IT administrators to view listings of file names across the system, while others do not provide details on files within the system.
실시예의 플랫폼은 IT 관리자에게 시스템 내의 조직의 파일의 완전한 리스팅을 제공할 뿐만 아니라, 각각의 문서가 얼마나 민감한지, 또는 비밀인지를 결정하기 위해 각각의 파일의 내용을 분석한다. 이를 달성하기 위해, 플랫폼은 2-단계 프로세스를 수행하는데, 하나는 사람과 사업 내용 사이를 기술하는 단계와, 다음에 식별된 사업 데이터의 민감도를 결정하는 단계이다.The exemplary platform not only provides the IT administrator with a complete listing of the organization's files in the system, but also analyzes the contents of each file to determine how sensitive or confidential each document is. To achieve this, the platform performs a two-step process, one of describing between the person and the business content, and the next determining the sensitivity of the business data identified.
사람과 사업 내용 사이를 기술하기 위해, 에이전트는 로컬 데이터 저장소에 걸친 문서를 스캔하고, 이들 문서로부터 키 용어(key term)를 추출한다. 그리고 나서, 이들 키 용어는 전체 조직에 걸쳐 비교되어서, 회사 특정 키 용어의 리스트를 생성한다. 조직적인 키 용어와 다른 소유주 방법론을 사용하여, 플랫폼은 로컬 저장소에 걸친 사업과 사람 데이터를 분리하여, IT 관리자가 오로지 회사 데이터에 초첨을 맞출 수 있도록 한다.To describe between the person and the business content, the agent scans the document across the local data store and extracts the key term from these documents. These key terms are then compared across the entire organization to generate a list of company specific key terms. Using organizational key terminology and other proprietary methodologies, the platform separates business and human data across local repositories, allowing IT managers to focus solely on corporate data.
사업 데이터의 민감도를 결정하기 위해, 플랫폼은 특정 키 용어(가령, "회사 기밀")의 존재를 검색하고, 데이터(가령, 신용 카드 번호, 이-메일 주소, 전화 번호등)의 특정 문법을 분석하며, 다른 소유주 분석을 수행한다. 이러한 세그멘테이션은 IT 관리자가 사업 내의 가장 민감한 내용을 식별할 수 있도록 한다. 문서의 민감도가 메타데이터의 일부가 되면, 플랫폼은 IT 관리자가 데이터에 걸쳐 특정한 제어를 제정하여, 데이터가 어디에서 어떻게 액세스되는지, 그리고 공유되는지를 제한할 수 있다.To determine the sensitivity of the business data, the platform can search for the presence of a particular key term (e.g., "company secret") and analyze the specific grammar of the data (eg, credit card number, e-mail address, telephone number, etc.) And performs other proprietary analysis. This segmentation allows IT managers to identify the most sensitive content within the business. Once the sensitivity of the document becomes part of the metadata, the platform allows IT administrators to enforce specific controls over the data, limiting where and how data is accessed and shared.
자동화된 데이터-발견 및 내용의 세그멘테이션은 IT 관리자가 말단 사용자 태깅이나 분류에 의존하지 않으면서 민감한 사업 내용을 식별하고, 사람 또는 중요하지 않은 사업 파일을 통해 걸르지 않으면서 중요한 내용을 찾고, 민감한 내용을 보호하기 위해 특정한 제어를 생성할 수 있도록 한다.Automated data-discovery and segmentation of content allows IT managers to identify sensitive business content without relying on end-user tagging or classification, find critical content without the hassle of people or non-critical business files, So that a particular control can be created to protect it.
종래의 클라우드 서비스 플랫폼에서, 각 개개의 사용자 데이터는 함께 저장되고, 전체 데이터 세트에 걸쳐 중복 제거된다(가령, 클라우드 서비스 제공자를 사용하여 저장된 모든 사용자의 데이터). 이러한 혼합적인 접근법은 파일이 정확하게 인덱스되지 않는다면, 잠재적인 데이터 유출로 이어질 수 있다.In a conventional cloud service platform, each individual user data is stored together and deduplicated over the entire data set (e.g., all user data stored using a cloud service provider). This mixed approach can lead to potential data leakage if the file is not correctly indexed.
실시예의 플랫폼은, 액세스, 애플리케이션, 인프라스트럭처, 네트워크, 전송 및 데이터 레벨에서 보안을 제공하는 프레임워크 주변에서, 제어되고 보안적인 방식으로 데이터를 관리하도록 구성된다. 이러한 접근법은 각 사용자로부터의 데이터 및 "보안 사일로(security silo)"에서 관리될 조직이, 본 명세서의 상세한 설명에 기술된 바와 같은 보안 정보의 자체 고유한 세트로 가능하게 한다.The exemplary platform is configured to manage data in a controlled and secure manner around a framework that provides security at the access, application, infrastructure, network, transport and data levels. This approach makes it possible for the organization to be managed in the "security silo" with data from each user to have its own set of security information as described in the description of this specification.
플랫폼은 공유 저장소나 클라우드 내에 데이터를 암호화하는데 사용되는 고유한 조직적인 암호화 키를 각 조직에게 제공한다. 또한, 데이터 상에 컴퓨팅된 모든 해시는 조직에 고유한 가치로 솔트(salted with)된다. 기저 데이터가 동일하더라도, 두 개의 조직이 동일한 해시를 공유하지 않을 것이다. 이는 플랫폼이 고객들 사이에 데이터 중복 제거, 보안 취약하는 것을 방지하고, 반면에, 조직 레벨에서 데이터 중복 제거를 가능하게 하는데, 이는 저장 공간을 아끼고, 불필요한 데이터 전송을 최소로 한다. 권한없는 사용자가 말미 서비스 또는 데이터 저장소에 액세스하는 경우에, 그 사용자는 사용할 수 없는 암호화된 블록만 볼 수 있도록 제한될 것이다.The platform provides each organization with a unique organizational encryption key that is used to encrypt data within the shared repository or cloud. Also, any hash computed on the data is salted with a value unique to the organization. Even if the underlying data is the same, the two organizations will not share the same hash. This prevents the platform from being deduplicated and vulnerable among customers, while enabling deduplication at the organization level, which saves storage space and minimizes unnecessary data transfers. When an unauthorized user accesses an end-user service or data store, the user will be limited to viewing only unencrypted blocks.
플랫폼은 권한 있는 자들 사이에서 파일 공유를 가능하도록 구성된다. 모든 권한 있는 에이전트와 클라이언트는 조직의 데이터에 균일하게 액세스하고 기여할 수 있다. 데이터가 사용자 레벨에서 암호화되지 않아서, 데이터는 조직에 귀속된다. 새로운 사용자가 조직에 추가될 때, 새로운 사용자는 그 조직에 대한 데이터를 생성하고 액세스하기 위해 요구되는 키를 받아서, 다른 사용자와 상호작업할 수 있도록 한다. 사용자에 의해 생성된 데이터는, 사용자가 회사를 떠난 이후라도, 조직 내의 다른 사용자에게 사용 가능하다.The platform is configured to enable file sharing among authorized users. All authorized agents and clients can uniformly access and contribute to the organization's data. Data is not encrypted at the user level, so the data belongs to the organization. When a new user is added to the organization, the new user receives the keys required to create and access data for that organization, allowing them to interact with other users. The data generated by the user is available to other users in the organization even after the user leaves the company.
계정이 제공되고, 조직의 IT 관리자와 사용자로부터의 패스워드를 사용하여 암호화되면, 조직의 암호 키는 플랫폼에 의해 생성된다. 키는 사용자 또는 관리자의 패스워드 없이 액세스될 수 없는데, 이는 플랫폼에 의해 절대로 저장되지 않는다. 그 사용자가 활성화 세션에 있고, 그 또는 그녀의 제공된 신임장을 가지지 않고, 마스터 키가 없다면, 플랫폼이 고객 데이터를 해독하는 것은 불가능하다. 그러나, 플랫폼은, 잃어버린다면, 새로운 패스워드를 계정에 적용하는데 사용될 수 있는 복구 키를 저장하지 않는다.Once an account is provided and encrypted using a password from the organization's IT administrator and user, the organization's encryption key is generated by the platform. The key can not be accessed without the user or administrator's password, which is never stored by the platform. If the user is in an active session, does not have his or her provided credentials, and the master key is not present, then the platform is unable to decrypt the customer data. However, the platform does not store a recovery key, which, if lost, can be used to apply a new password to the account.
장치 레벨 데이터는 그 로컬 파일 시스템상에 저장되고, 플랫폼은 로컬 장치 파일 시스템 데이터를 암호화하거나 인코딩하지 않으나, 이에 제한되지 않는다. 그러나, 장치를 떠난 임의의 데이터나 메타데이터는 (장치에서 웹으로) SSL, (장치에서 장치로) 말단-투-말단 암호화 또는 (장치에서 클라우드나 공유된 저장소로) dot레스트 암호화를 사용하여 암호화된다Device level data is stored on its local file system, and the platform does not encrypt or encode local device file system data, but is not limited thereto. However, any data or metadata that leaves the device may be encrypted using SSL (from device to device), end-to-end encryption (from device to device), or dotless encryption (from device to cloud or shared storage) do
장치상의 각각의 에이전트는 일 실시예에서 두 개의 2048-비트 RSA 공공/사유 키 페어를 가진다. 하나가 말단-투-말단 암호화를 보안하는데 사용되고, 다른 하나가 메세지를 사인하고, 메세지 소스를 유효화하는데 사용된다. 이들 키는 사전 생성되고, 플랫폼에 의해 할당되나, 이들이 할당되면, 클라우드내에 저장되지 않는다. 키와 증명서는 운영 시스템에 의해 제공된 보안 키 저장소내에 항상 저장된다. 종래의 P2P와 달리, 플랫폼 내에 "익명 피어(anonymous peers)"가 없는데, 에이전트들 사이의 각각 및 모든 연결은, 중앙 클라우드가 이들 중 가장 효율적인 경로라고 결정되기 때문에 발생한다. 데이터 전송의 소스 및 목적지의 실체는, 연결에 앞서 알려지고, 모든 에이전트에 의해 독립적으로 확인된다. 에이전트는 이들이 예상하지 않는 연결을 허용할 수 없다.Each agent on the device has two 2048-bit RSA public / private key pairs in one embodiment. One used to secure end-to-end encryption, the other used to sign messages and validate the message source. These keys are pre-generated and assigned by the platform, but once they are assigned, they are not stored in the cloud. Keys and certificates are always stored in the secure key store provided by the operating system. Unlike conventional P2P, there is no "anonymous peers" in the platform, because each and every connection between agents occurs because the central cloud is determined to be the most efficient of these. The entities of the source and destination of the data transfer are known prior to connection and are independently verified by all agents. Agents can not allow connections they do not anticipate.
에이전트들이 데이터를 교환하기 위해 서로 결합되거나 연결될 때, 이들은 공공 키 암호술을 사용하여, 이들 사이에 전송된 모든 데이터의 말단-투-말단 암호를 제공한다. 플랫폼은 모든 에이전트를 위한 공공 키를 가지고, 이들에게 임의의 P2P 요청의 두 말단을 제공한다. 플랫폼은 사유 키를 가지지 않는데, 이는 에이전트 레벨에서만 가지나, 본 실시예는 이에 제한되지 않는다. 에이전트는 이들 사유 키를 사용하여, 정부-등급 AES-256 알고리즘을 사용하여 피어들간의 데이터를 암호화하는데 사용되는 대칭 암호 키를 안전하게 구축한다. 이는 권한 없는 사용자가 피어들 사이에 전송된 메세지의 내용을 해석할 수 없도록 보장한다. 에이전트 사이의 세션은 일시적이고, 이들이 만료되면, 새로운 연결이 설정되는데, 이는 교환될 새로운 키를 요구한다.When agents are combined or connected together to exchange data, they use public key cryptography to provide end-to-end cryptography of all data transmitted between them. The platform has public keys for all agents and provides them with two ends of arbitrary P2P requests. The platform does not have a private key, which is only at the agent level, but the present embodiment is not limited thereto. The agent uses these private keys to securely establish a symmetric encryption key that is used to encrypt data between peers using a government-grade AES-256 algorithm. This ensures that an unauthorized user can not interpret the contents of the message sent between peers. Sessions between agents are transient, and when they expire, a new connection is established, which requires a new key to be exchanged.
SSL은 웹 서버로 그리고 웹서로부터의 보안 통신을 위한 널리 허용되는 표준이다. 클라이언트나 브라우저가 플랫폼에 연결될 때마다, 이는 SSL를 사용하여 트래픽을 보안한다. 메타데이터와 에이전트 명령어도 이러한 방식으로 보안된다.SSL is a widely accepted standard for secure communication from and to Web servers. Whenever a client or browser connects to the platform, it uses SSL to secure traffic. Metadata and agent commands are also secured in this way.
플랫폼은 모든 데이터가 앳-레스트(at-rest)에 있고, 클라우드나 공유된 저장 장치에서 암호화되는 것을 보장한다. 에이전트가 데이터를 저장하도록 요구되면, 이들은 조직 암호 키를 사용하여 데이터를 암호화한다. 권한 있는 에이전트만 이러한 방식으로 저장된 데이터를 해독할 수 있다. 앳-레스트 데이터도 AES-256 알고리즘을 사용하여 암호화된다.The platform ensures that all data is at-rest and encrypted in the cloud or shared storage. When agents are required to store data, they encrypt the data using an organization cryptographic key. Only authorized agents can decrypt the stored data in this way. At-the-rest data is also encrypted using the AES-256 algorithm.
실시예의 데이터 및 메타데이터의 분리는 추가적인 보안과 완전한 제어를 제공하는 반면, 비용을 최소로 한다. 모든 데이터는 그 고객에 고유한 키로 해시되고 암호화되며, 메타데이터는 데이터로부터 분리되어 저장된다.Separation of data and metadata in the embodiment provides additional security and complete control while minimizing cost. All data is hashed and encrypted with the key unique to that customer, and the metadata is stored separately from the data.
플랫폼은 모바일 장치, 데스크톱 및 웹에 걸쳐 중요한 사업 데이터에 액세스하고, 업데이트하며 공유하는 쉬운 방법을 제공한다. 사용자는 iOS 및 Android 스마트폰과 태블릿, Window 및 Apple 컴퓨터와 웹 브라우저에 걸쳐 파일에 액세스할 수 있다. 장치상에서 수정된 파일은 모든 다른 권한 있고 연결된 장치에 자동으로 동기화된다. 사용자는 양방향 공유된 폴더나 단방향 웹 링크를 통해 조직의 외부의 상호-작업자나 개인과 파일을 공유할 수도 있다.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 the device are automatically synchronized to all other authorized and connected devices. Users can also share files with recipients or individuals external to the organization via two-way shared folders or one-way web links.
좀 더 구체적으로, 실시예의 플랫폼은, 다양한 환경(가령, 데스크톱, 모바일 장치, 서버, 클라우드 서비스 등)에 걸친 데이터, 애플리케이션 및 운영 시스템을 보호하는 백업 및 복구를 제공한다. 이는 사용자가 설치된 백업 애플리케이션을 모니터링하고, 키 백업 메트릭(metric)을 관리 코드로 통합시키며, 민감한 파일이 위험에 있다고 사용자에게 경고할 수 있도록 한다.More specifically, the platform of the embodiment provides backup and recovery to protect data, applications and operating systems across various environments (e.g., desktops, mobile devices, servers, cloud services, etc.). It allows users to monitor installed backup applications, consolidate key backup metrics into managed code, and alert users that sensitive files are at risk.
플랫폼은, 모든 민감한 문서가 백업 플랜에 포함되는 것을 보장하고, 이들 문서가 현재 백업된다고 확인한다. 임의의 민감한 문서가 시간 주기내에 보호되지 않는다면 관리자가 바뀌고, 조직에 걸쳐 민감한 문서의 위치를 찾아낸다. 또한, 플랫폼은, 백업이 실패하면, 대안적인 위치로부터 저장하고, 민감한 문서가 사용자의 중복에 의한 복수의 위치 또는 중복 백업 위치내에 백업되는 것을 보장한다. 파일의 백업은 특정 보유 정책에 따라 삭제되고, 민감한 문서는 좀 더 안전한 저장 위치 오프사이트에 백업된다. 또한, 플랫폼은 원격 컨피규레이션 및 백업 동작의 전개를 허용하는 백업 서비스를 제공한다.The platform ensures that all sensitive documents are included in the backup plan and ensures that these documents are currently backed up. If any sensitive documents are not protected within a time period, the administrator changes and locates sensitive documents across the organization. The platform also stores from an alternative location if the backup fails, and ensures that sensitive documents are backed up in multiple locations or duplicate backup locations due to user redundancy. Backups of files are deleted according to certain retention policies, and sensitive documents are backed up to a more secure storage location offsite. In addition, the platform provides a backup service that allows deployment of remote configuration and backup operations.
플랫폼에 의해 제공된 백업과 복구는 데스크톱, 서버, 공유된 저장소, 모바일 장치 및 몇 몇 온라인 저장소의 파일 소스 백업을 포함한다. 백업 및 복구 동작과 관련된 파일 타입은 데이터 파일(가령, 문서, 비디오, 음악, 이미지 등) 및 애플리케이션 특정 파일(가령, 아웃룩, PST, MS Exchange, 데이터베이스등)을 포함한다. 파일 선택은 파일 타입 및/또는 폴더 위치에 기초하여 백업할 파일을 선택하거나, 전체 장치 또는 컴퓨터 시스템(가령, 시스템 이미지)의 백업을 대안적으로 수행한다. 파일 저장소는 외부 하드 드라이버, NAS 또는 온라인상에서 선택된 파일을 저장하거나, 중복을 위해 복수의 위치를 선택한다. 저장 장치가 삭제될 때마다, 또한 스케쥴이 스케쥴에 기초하여 백업될 때마다, 자동화되거나 스케쥴된 백업은 새롭거나 변경된 파일을 백업에 자동으로 추가한다.Backup and recovery provided by the platform includes file source backup of desktops, servers, shared storage, mobile devices and several online repositories. File types associated with backup and recovery operations include data files (e.g., documents, video, music, images, etc.) and application specific files (e.g., Outlook, PST, MS Exchange, databases, etc.). The file selection selects files to be backed up based on the file type and / or folder location, or alternatively performs backup of the entire device or computer system (e.g., system image). The file store stores external hard drives, NAS or online selected files, or selects multiple locations for redundancy. Every time a storage device is deleted, and whenever a schedule is backed up based on a schedule, an automated or scheduled backup automatically adds new or changed files to the backup.
실시예의 파일 복구는 선택된 파일을 쉽게 저장하도록 구성되고, 컴퓨터가 고장거나 파일이 의도치 않게 삭제되면 모든 파일을 완전히 저장하도록 구성된다. 데이터 손실 방지는, 사용중(가령, 종점 액션), 모션 중(가령, 네트워크 트래픽) 및 앳-레스트(가령, 데이터 저장) 동안에, 데이터를 모니터링함에 의해 데이터 손실을 방지한다. 파일-레벨 DLP 소프트웨어는 민감한 파일을 식별하고, 그리고 나서 파일 내에 정보 보안 정책을 내장한다. 플랫폼의 상시적, 어디에서나의 접근은 사용자 콘솔을 통해 모든 파일 및 폴더에 온라인 액세스를 제공한다. 버젼 히스토리는 파일의 이전 버젼을 저장하여, 사용자가 이들 버전으로 되돌릴 수 있도록 한다. 삭제된 파일은 시간의 주기 동안에 저장되어서, 삭제가 우연이라면, 사용자가 삭제된 파일을 재저장할 수 있도록 한다. 파일 시스템 및 구조화되지 않은 내용은 회사 정책에 기초하여 달성되어서, 비용을 줄이고, 위험을 완화시킨다.The file recovery of the embodiment is configured to easily store the selected file and is configured to completely store all the files if the computer is malfunctioning or the file is accidentally deleted. Data loss prevention prevents data loss by monitoring data during use (e.g., endpoint action), during motion (e.g., network traffic), and during at-rest (e.g., data storage). File-level DLP software identifies sensitive files, and then embeds information security policies within the files. On a platform always, where my access provides online access to all files and folders through the user console. The version history stores the previous version of the file so that the user can revert to these versions. The deleted file is stored during 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 company policy, thus reducing costs and mitigating risk.
실시예의 플랫폼은 파일 공유와 액세스를 제공하는데, 이는 사용자가 다양한 환경(가령, 컴퓨터, 모바일 장치, 서버, 클라우드 서비스 등)과 웹에 걸친 파일과 다른 내용을 접근 및 공유할 수 있도록 한다. 파일은 양방향 폴더 공유 및 웹 링크 공유를 통해 공유될 수 있고, 키 메트릭과 제어는 관리 콘솔내로 통합될 수 있다.The exemplary platform provides file sharing and access, which allows a user to access and share files and other content across a variety of environments (e.g., computers, mobile devices, servers, cloud services, etc.) and the web. The files can be shared via two-way folder sharing and web link sharing, and key metrics and control can be integrated into the management console.
플랫폼은 회사의 특정 사용자, 그룹 또는 외부와의 공유를 방지함에 의해 민감한 문서를 제한 또는 제어한다. 민감한 문서는 플랫폼을 통해 모바일 장치로 액세스 및/또는 다운로드될 수 없고, 그 보다는, 제어를 유지하기 위해 온라인으로 볼 수 있으며, 문서 다운로드는 일시적 복사만으로 제한되어서, 이들이 연결되지 않으면 제거된다. 파일은 플랫폼-관련된 폴더의 외부 또는 외부 저장 장치나 위치로 복사될 수 없다. 또한, 파일은 첨부물로서 이메일로, 문자 전자 메세징으로 보내질 수 없고, 또한, 소셜 미디어로 업로드될 수 없다. 실시예는 단 한번의 요청을 허용하는 예외 프로세스를 포함한다. 문서로의 액세스를 가지고 수정 및 히스토리에 액세스하는 문서의 위치에 대한 상세한 보고도 가능하다.The platform restricts or controls sensitive documents by preventing sharing with a particular user, group or outside of the company. Sensitive documents can not be accessed and / or downloaded to the mobile device through the platform, but rather can be viewed online to maintain control, and document downloads are limited to temporary copying and are removed if they are not connected. The file can not be copied to an external or external storage device or location in the platform-related folder. In addition, the file can not be sent as an attachment as an email, as a text electronic messaging, nor as a file uploaded to social media. The embodiment includes an exception process that allows a single request. With access to the document, detailed reporting of the location of the document accessing the modifications and history is also possible.
실시예의 플랫폼의 파일 공유와 액세스는 장치 및 시스템에 걸친 파일을 생성, 관리, 편집 및 저장하는 내용 관리를 제공한다. 실시예의 동기화는 임의의 장치로부터 사용가능하게 하기 위하여, 장치에 걸쳐 동기화될 파일을 선택한다. 또한, 변경된 사항은 자동으로 동기화된다. 상시적, 어느 곳에서의 액세스는 임의의 장치(가령, 데스크톱, 랩톱, 폰, 태블릿, 온라인 등)로부터 임의의 파일에 액세스할 수 있도록 한다. 공유된 폴더는 내부 및 때때로는 외부 사용자가 볼 수 있고, 폴더 내에 포함된 파일을 편집할 수 있으며, 모든 사용자에게 동기화되는 변경을 할 수 있는 폴더에 액세스를 부여한다. 좀 더 과립의 허용이 포함(가령, 관리자, 편집자, 시청자 등)하나, 이에 제한되지 않는다.The file sharing and access of the embodiment's platform provides content management for creating, managing, editing and storing files across devices and systems. The synchronization of an embodiment selects a file to be synchronized across the device in order to make it available from any device. Also, changes are automatically synchronized. Anytime, anywhere access allows access to arbitrary files from any device (e.g., desktop, laptop, phone, tablet, online, etc.). Shared folders give access to folders that can be viewed internally and sometimes by external users, edit files contained within folders, and make changes that are synchronized to all users. Including but not limited to, allowing more granules (eg, managers, editors, viewers, etc.).
플랫폼은 공공 링크를 포함하는데, 이에 의해 파일은 어떠한 사용자에 의해 액세스될 수 없는 링크를 통해 공유될 수 있다. 파일은 편집을 방지하기 위해 리드-온리이나, 사용자는 파일을 볼 수 있고, 다운로딩은 때때로 제한된다. 외부 문서 관리 및 보안은, 파일을 잠궈서 인쇄되거나 편집될 수 없게 함에 의해 외부적으로 공유된 이후에 파일에게 발생하는것을 제어한다. 공동 감사는 포괄적인 감사 및 추적 도구를 제공하여서, 내용 공유의 더 나은 시청 및 파일 다운로드 활동을 부여한다. 사용자는 관련 파일을 누가 다운로드하지 않았는지를 알 수 있다. 대량 파일 전달은 공공 링크를 공유하는 것과 같은 온라인으로 대량 파일을 전송에 대한 이메일의 대안적인 방법이다. 이메일 통합은 사용자가 파일을 우클릭함에 의해 또는 이메일 선택사항을 선택함에 의해 임의의 장치로부터 직접 임의의 파일을 이메일 보낼 수 있도록 한다. 모바일 미리보기는 사용자가 임의의 모바일 장치상에서 임의의 파일을 보 수 있도록 한다. 모바일 문서 편집하기는 모바일 장치상의 파일을 편집하기 위한 능력을 제공한다. 모바일 인쇄는 사용자가 디폴트된 원격 프린터를 지정함에 의해 임의의 모바일 장치상의 임의의 파일을 인쇄할 수 있도록 한다. 모바일 스캐닝은 장치에 걸쳐 액세스하기 위해, 사용자가 모바일 장치로부터 이미지 또는 종이 문서를 스캔하도록 한다. 격리 시스템은 감염된 파일을 호스팅 시스템으로부터 격리시키기 위해 안티바이러스 능력을 사용한다. 규율 준수는 말하자면, SOX, HIPPA, PII, PCI, FINRA, FDIC, SAS70, Basel II, Dodd-Frank 및 FCPA를 준수하는 단계를 취한다.The platform includes a public link whereby the file can be shared over a link that can not be accessed by any user. The file is read-only to prevent editing, but the user can view the file, and downloading is sometimes restricted. External document management and security controls what happens to files after they are shared externally by locking them so they can not be printed or edited. Joint audits provide a comprehensive auditing and tracking tool to give better viewing and file downloading activity for content sharing. The user can know who did not download the related file. Bulk file transfer is an alternative method of email for transferring bulk 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. The mobile preview allows the user to view any file on any mobile device. Editing mobile documents provides the ability to edit files on a mobile device. Mobile printing allows a user to print any file on any mobile device by specifying a default remote printer. Mobile scanning allows a user to scan an image or paper document from a mobile device for access across the device. The quarantine system uses antivirus capabilities to isolate infected files from the hosting system. Regulatory compliance takes steps to comply with SOX, HIPPA, PII, PCI, FINRA, FDIC, SAS70, Basel II, Dodd-Frank and FCPA.
실시예의 플랫폼은 다양한 환경(가령, 데스크톱, 모바일 장치, 서버, 클라우드 서비스 등)에 걸친 문서의 동시적 편집(가령, 워드 프로세싱, 스프레드시트, 프리젠테이션, 프로젝트 플랜 등)을 포함하는 공동 작업을 제공한다. 사용 중인 파일은 공유된 문서에 대해 경고하고, 수정된 문서에 대해 통지하며, 수정 및 액세스 히스토리가 가능하다 따라서, 플랫폼은, 문서가 사용 중이어서 충돌을 방지한다면, 통지를 사용자에게 제공하고, 문서가 사용 중이면, 사용자를 잠궈서, 누군가 공유된 폴더나 파일을 편집 또는 추가할 때 경고를 전송하며, 발표된 문서의 사용자에게 통지한다. 플랫폼은 동시적 편집을 통해서만 온라인 공동 작업하도록 하고, 수정 화해 및 합병 툴, 수정 및 액세스 히스토리, 체크-인/체크-아웃 시스템 및 사무실 통합을 제공한다.The platform of the embodiment provides collaboration that includes concurrent editing (e.g., word processing, spreadsheet, presentation, project plan, etc.) of documents across a variety of environments (e.g., desktops, mobile devices, servers, do. The file in use alerts you about the shared document, notifies you about the modified document, and allows modification and access history. Thus, the platform provides a notification to the user if the document is in use and prevents conflict, Locks the user, sends an alert when someone edits or adds a shared folder or file, and notifies the user of the published document. The platform allows online collaboration only through concurrent editing, and provides reconciliation and merger tools, revision and access history, check-in / check-out systems and office consolidation.
실시예의 공동 작업은 많은 중요한 특징을 제공한다. 복수의 사람들이 동일한 파일을 보고 편집할 수 있다. 동일한 파일을 편집하기 위해 복수의 사람들(가령, 관리자, 편집자, 시청자)에 대한 과립 공유 권리를 허여한다. 공동 작업 감사는 포괄적인 감사 및 추적 툴을 제공하여서, 내용 공유와 파일 다운로드 활동의 더 나은 시각을 부여한다. 사용자는 관련 파일을 누가 다운로드하지 않았는지 알 수 있다. 활동 히스토리는, 파일 변경이 언제, 누구에 의해 이루어진 것인지와 같은 모든 파일 활동을 추적한다. 누군가 공유된 폴더나 파일을 편집하거나 내용을 추가하면, 이메일 통지는 경고를 전송한다. 코멘팅은, 피드백을 추가하거나 변경 사항을 논의하기 위해, 파일 및/또는 논의 영역에 코멘트를 할 수 있다. 공동 작업 및 논의를 위해, 주석(annotation)은 노트를 기존 파일에 추가한다. 사업 프로세스 관리는 좀 더 효율적이고, 효과적이며 변경 가능한, 정보 기술의 사용으로 사업 프로세스의 자동화를 제공한다. 이는 작업플로우 또는 태스크 관리와 같은 아이템을 포함한다.Collaboration of embodiments provides many important features. Multiple people can view and edit the same file. Grant granite sharing rights to multiple people (e.g., managers, editors, viewers) to edit the same file. Collaborative audits provide a comprehensive auditing and tracking tool, giving a better view of content sharing and file download activity. The user can know who has not downloaded the related file. The activity history keeps track of all file activity, such as when and by whom file changes were made. When someone edits or adds content to a shared folder or file, the email notification sends a warning. Comments can comment on files and / or discussion areas to add feedback or discuss changes. For collaboration and discussion, an annotation adds a note to an existing file. Business process management provides the automation of business processes through the use of information technology, more efficient, effective and changeable. This includes items such as workflow or task management.
작업플로우/태스크 관리는 태스크와 데드라인을 리뷰 프로세스의 일부로서 할당하고, 업데이트, 리뷰 또는 승인을 요청하기 위한 파일-특정 태스크를 할당한다. 프로젝트 관리는 목표를 개별 데드라인이 있는 마일스톤으로 부숴서, 최종 목표를 향해 전진하고, 다양한 마일스톤에 기초하여 태스크를 할당한다. 온라인 문서 편집하기는 사용자의 로컬 컴퓨터로 이들을 우선 다운로드하지 않고, 다양한 파일 타입을 온라인에서 편집한다. 모바일 문서 편집하기는 모바일 장치상에서 파일을 편집한다. 모바일 미리보기는 임의의 모바일 장치상에서 임의의 파일을 볼 수 있는 능력을 제공한다. 모바일 인쇄하기는 디폴트된 원격 프린터를 지정함에 의해 임의의 모바일 장치상의 임의의 파일을 프린트한다. 모바일 스캐닝은 모바일 장치로부터의 이미지나 종이 문서를 스캔하여 장치에 걸쳐 액세스한다. 종이 문서를 계속하여 디지털화한다.Job flow / task management assigns tasks and deadlines as part of the review process, and assigns file-specific tasks to request updates, reviews or approvals. Project management breaks the target into milestones with individual deadlines, moves towards the final goal, and assigns tasks based on the various milestones. Online document editing does not download them first to the user's local computer, but to various file types online. Editing a mobile document edits a file on a mobile device. Mobile preview provides the ability to view any file on any mobile device. Mobile printing prints any file on any mobile device by designating a default remote printer. Mobile scanning scans an image or paper document from a mobile device to access across the device. Continuously digitize paper documents.
실시예의 플랫폼은 문서 관리를 제공하는데, 이는 사용자 특권, 문서 사용가능성 및 문서 상태에 기초하여 문서로의 액세스를 제어한다. 실시예의 문서 관리는 제3자 애플리케이션(가령, Office)와 통합되어서, 작업플로우를 유지하고, 문서에 대한 버저닝 및 감사 트레일을 활성화하고, 문서에 대한 보안 요구사항을 강화한다. 그러므로, 플랫폼은 사용자가 사업 파일을 인덱스, 추적 및 카탈로그하고, 파일 민감도를 분류하며, 개인이나 그룹에 파일 액세스를 주는 제한된 권리 관리를 허여할 수 있다.The platform of the embodiment provides document management, which controls access to documents based on user privileges, document availability, and document status. The embodiment document management is integrated with a third party application (e.g., Office) to maintain workflow, activate versioning and auditing trails for documents, and enhance security requirements for documents. Thus, the platform can grant limited rights management that allows users to index, track and catalog business files, classify file sensitivity, and provide file access to individuals or groups.
플랫폼은 파일에 대한 권리를 사용자(가령, 관리자, 편집자, 시청자)에게 할당하고, 많은 방식으로 민감한 문서를 제한한다. 파일은 수정될 수 없고, 특정 사용자에 대해서 리드온리이며, 다른 요청이 없다면, 시간의 주기 이후에 파괴되고, 이미지 캡쳐링 소프트웨어로 캡쳐될 수 없다. 파일 포맷은, 분산(가령, 리드-온리)되기 전에, (가령, PDF 등으로) 전환되어서, 문서의 내용은 복사될 수 없고, 또 다른 문서로 붙이기될 수 없다. 또한, 파일은 회사 서버상에만 저장될 수 있어서, 공공 클라우드상에 저장될 수 없고, 파일 및 파일 파생물은 저장 장치(들)에 걸쳐 추적된다. 또한, 플랫폼은 내용(가령, Wikis, Evernote, 소셜 미디어 등)에 기반한 파일 및 비-파일을 포함하고, 한번 요청을 허용하기 위한 예외 프로세스가 있다. 플랫폼은 문서의 위치, 누가 문서에 액세스하는지, 누가 실제로 문서를 보았는지, 무슨 장치와 무슨 위치에서 보았는지에 대한 상세한 보고를 제공한다. 수정 및 액세스 히스토리도 플랫폼을 통해 사용 가능하다.The platform assigns rights to files to users (e.g., administrators, editors, viewers) and limits sensitive documents in many ways. The file can not be modified and is read-only for a particular user, and if there are no other requests, it will be destroyed after a period of time and can not be captured by the image capturing software. The file format is switched (e.g., to PDF, etc.) before being distributed (e.g., read-only) so that the contents of the document can not be copied and pasted into another document. In addition, the file can only be stored on the company server, so it can not be stored on the public cloud, and file and file derivatives are tracked over the storage device (s). In addition, the platform includes files and non-files based on content (e.g., Wikis, Evernote, social media, etc.), and there is an exception process to allow requests once. The platform provides detailed reporting of the location of the document, who accessed the document, who actually viewed the document, what device and where it looked. Modification and access history is also available through the platform.
플랫폼은 사업 정보를 식별하는 것을 사용하여 기밀 저장된 데이터를 발견한다. 플랫폼은 키 워드를 추출하고 조직에 걸쳐 추출된 용어를 비교한다. 플랫폼은 예를 들어, 하나 이상의 문서 이름, 문서 크기, 근접성(폴더 내의 문서의 90%가 사업이면 100% 가정함), 키 워드 비교 및 해시 비교를 사용하여, 복수의 소스에 걸쳐 사업 문서를 식별할 수 있다.The platform discovers confidential stored data using identifying business information. The platform extracts the keywords and compares the extracted terms across the organization. The platform identifies business documents across multiple sources, for example, using one or more document names, document size, proximity (assuming 100% of the documents in the folder are 100% business), keyword comparison and hash comparison can do.
또한, 플랫폼은 민감한 데이터를 분류한다. 표시된 문서는 수동으로 민감한 것으로 태그된다. 선택된 키 용어의 예시는 "회사 기밀의", "손익계산서", "파트너 파이프라인", "패스워드" 및 "신용 카드"를 포함한다. 학습된 키 용어는 "기밀"로 표시된 문서에서 가장 관련 있는 키 용어이다. 플랫폼은 검출된 내용(가령, 회사 이름의 5가지 예시 등)에 기초하여 추론한다. 또한, 플랫폼은 문법(가령, "###-##-####", "3767-######-#####", aaaaaaaa@aaa.com, "###-###-####")에 기초하여 데이터를 분류한다. 플랫폼은 누가 주인이고, 파일이 어디에 있으며, 허락이 무엇이고, 누가 액세스했는지와 같은 문서 특성을 기록한다.The platform also categorizes sensitive data. The displayed document is manually tagged as sensitive. Examples of selected key terms include "Company Confidential "," Income Statement ", "Partner Pipeline "," Password " The learned key term is the most relevant key term in the document marked as "confidential". Platforms infer based on the detected content (eg, five examples of company names, etc.). In addition, the platform may be implemented using grammar (e.g., "### - ## - ####", "3767 - ###### - #####", aaaaaaaa@aaa.com, Quot; ### - #### "). The platform records document characteristics such as who is the owner, where the files are, what permissions are, and who accessed them.
또한, 플랫폼은 지적 재산권, 고객 정보, 사원 정보, 판매 정보, 마케팅 정보 및 금융 정보를 포함하는 민감한 데이터를 분류하고, 가령, 지적 재산권은 소유주 엔지니어링 디자인, 과학적 공식, 소스 코드, 무역 비밀 및 새로운(비공지된) 제품 정보를 포함한다. 고객 정보는 이름, 이메일 주소, 고객 패스워드, 전화 번호, 사회 보장 번호, 주소, 신용 카드 번호(마지막 4 자리) 및 생년월일을 포함한다. 사원 정보는 사회 보장 번호, 생년월일, 및 주소를 포함한다. 판매 및 마케팅 정보는 고객 리스트, 견적, 마케팅 및 판매 플랜, 재료 비용 및 이윤 마진 및 프로젝트 플랜 및 소비 플랜을 포함한다. 금융 정보는 금융 기록 및 전략적 사업 플랜을 포함한다.The platform also categorizes sensitive data, including intellectual property rights, customer information, employee information, sales information, marketing information, and financial information, such as intellectual property rights, including proprietary engineering design, scientific formulas, source code, trade secrets, Unrecognized) product information. Customer information includes name, email address, customer password, phone number, social security number, address, credit card number (last 4 digits) and date of birth. 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, and project plans and consumption plans. Financial information includes financial records and strategic business plans.
플랫폼 내에 포함된 문서 관리는 검색/추적 인덱싱을 포함하고, 고유한 문서 식별자, 메타데이터를 인덱싱함에 의해, 또는 문서의 내용으로부터 추출된 워드 인덱스를 통해 전자 문서를 검색 및 복구하기를 포함한다. 권리 관리는 관리자가 특정 사람 또는 그룹의 사람의 타입에 기초하여 문서에 액세스를 부여할 수 있다.Document management included within the platform includes search / trace indexing and includes searching for and recovering an electronic document through a unique document identifier, indexing the metadata, or through a word index extracted from the contents of the document. Rights management allows an administrator to grant access to a document based on the type of person of a particular person or group.
실시예의 플랫폼에 의해 제공된 공동 작업은 권한 있는 사용자에 의해, 문서가 복구되고 수정되거나 편집될 수 있다. 복수의 사용자는 공동 작업 세션에서 동시에 문서를 보고 수정할 수 있고, 공동 작업 세션 동안에, 플랫폼은 각 개별 사용자에 의해 행해진 마크업을 저장한다. 그러나, 문서가 사용자에 의해 수정되거나 편집되는 동안, 다른 사용자로의 액세스는 차단되어야 한다. 또한, 플랫폼은 문서 사용 가능성에 대한 경고 및 통지를 전송하나, 이에 제한되지 않는다.The collaboration provided by the platform of the embodiment can be restored, modified or edited by the authorized user. Multiple users can view and modify documents simultaneously in a collaboration session, and during a collaboration session, the platform stores the markup done by each individual user. However, while the document is modified or edited by the user, access to other users should be blocked. In addition, the platform sends alerts and notifications about document availability, but is not limited thereto.
실시예의 플랫폼의 버저닝은 문서의 이전 버전을 복구하고, 사용자가 선택된 포인트로부터 작업을 계속하도록 한다. 제3자 통합부는 제3자 애플리케이션과 통합하여서, 사용자가 기존 문서를 문서 관리 시스템 보관소로부터 복구할 수 있고, 변경할 수 있고, 변경된 문서를 다시 보관소로 새로운 버전으로 저장할 수 있으며, 이러한 모두는 애플리케이션을 떠나지 않는다. 플랫폼을 통한 문서의 공개와 분산은 교정, 피어 또는 공공 리뷰, 권한 부여, 프린팅 및 승인을 포함한다. 보안은 특정 문서에 대한 준수 요구사항을 포함하는데, 이는 문서의 유형(가령, SOX, HIPPA, PII, PCI, FINRA, FDIC, SAS70, Basel II, Dodd-Frank, FCPA 등)에 의존하여, 비교적 복잡할 수 있다. 플랫폼은 문서에 워터마크나 지움(wipe) 능력은 물론, 프린팅, 복사 및 포워딩과 같은 과립형 능력을 포함한다. 작업플로우는 개별 문서의 자동 라우팅을 제공하거나, 스케쥴링, 체크리스트, 리뷰 노트 관리 등과 같은 연결 관리 특징과 결합된다. 외부 분서 관리와 보안은 파일이 어떻게 공유되는지를 제어하고, 다른 모듈이나 제3자 시스템과 통합한다.The embodiment's versioning restores the previous version of the document and allows the user to continue working from the selected point. Third-party integration can integrate with third-party applications, allowing users to recover existing documents from the document management system repository, and to save modified documents back to the repository in a new version, I do not leave. The disclosure and distribution of documents through the platform includes remediation, peer or public review, authorization, printing and approval. Security includes compliance requirements for a particular document, depending on the type of document (eg SOX, HIPPA, PII, PCI, FINRA, FDIC, SAS70, Basel II, Dodd-Frank, FCPA etc.) can do. The platform includes granular capabilities such as printing, copying and forwarding, as well as watermarking and wiping capabilities in documents. Workflows are combined with connection management features such as providing automatic routing of individual documents or managing scheduling, checklists, and review notes. External branch management and security controls how files are shared and integrates with other modules or third party systems.
실시예의 플랫폼은 데이터 인텔리전스(data intelligence)와 정보 거버넌스(information governance)를 제공하는데, 이는 데스크톱, 모바일 서비스, 로컬 저장소, 네트워크된 저장소 및 클라우드 서비스에 걸친 데이터(가령, 문서, Evernote, Wikis 등)를 식별한다. 이러한 데이터 인텔리전스와 정보 거버넌스는 관리, 보유 및 사업 데이터의 성향에 대해 좀 더 알려진 결정을 생성하고, 준수 위반을 식별하며, 인프라스트럭처 플래닝 결정을 한다. 플랫폼은 위치, 소유주 및 사업 날짜의 사용 분석을 결정하고, 제한된 정보 준수(기록 보유 등)는 물론 제한된 정보 거버넌스(가령, SS 번호, 신용 카드등)를 포함한다.The exemplary platform provides data intelligence and information governance, which can include data (e.g., documents, Evernote, Wikis, etc.) across desktops, mobile services, local storage, networked storage and cloud services . These data intelligence and information governance create more informed decisions about the propensity of management, retention and business data, identify compliance violations, and make infrastructure planning decisions. The platform determines the usage analysis of location, owner and business dates and includes limited information governance (eg, SS number, credit card, etc.) as well as limited information compliance (record retention, etc.).
플랫폼은 사용자가 모든 민감한 파일의 위치를 결정하고, 데이터에 대한 특정 정보를 이해하도록 한다. 또한, 사용자는 보안되지 않은 임의의 위치(가령, 모바일 장치, 공공 클라우드, 집 컴퓨터)로부터 파일을 제거할 수 있다. 선택 정책은 기록 보유, 방어가능한 삭제 및 준수 강제를 위해, 파일 메타데이터(가령, 보유, 기한, 액세스 등)에 적용될 수 있다. 전체 문서 검색은 파일 이름, 문서 키 용어 또는 전체 문서 검색을 통해 모든 데이터 소스에 걸쳐 수행될 수 있다.The platform allows the user to determine the location of all sensitive files and to understand specific information about the data. In addition, a user may remove files from any unsecured location (e.g., mobile device, public cloud, home computer). The selection policy may be applied to file metadata (e.g., retention, due date, access, etc.) for record retention, defendable deletion and compliance enforcement. Full document retrieval can be performed across all data sources through file name, document key term, or full document retrieval.
플랫폼의 데이터 인텔리전스와 정보 거버넌스는, 얼마나 많은 데이터가 사용자에게 속하는지, 데이터가 어디에 위치하는지, 누가 데이터를 소유하는지, 데이터가 어디에 있는지, 데이터의 나이, 얼마나 많은 데이터가 사용자의 사업과 관련되는지를 결정하는 차원의 맵과 사업 분석 또는 규칙을 포함한다. 플랫폼은, 파일 분류를 제공함에 의해 호스트되고, 내용 검색하며, 준수 및 규칙 위반을 발견하고, 나이를 밝히며, 비-사업성 관련 데이터되는 내용에 걸쳐 가시성을 얻는다. 정보 계보학은 기록의 보안-관련 연대기적 세트, 및 활동의 순서를 제공하는 기록의 목적지와 소스를 제공한다. 플랫폼은 모든 파일 관계 및 이들이 어디에 있는지를 추적하고, 정보 거버넌스는, 기록 보유, 방어가능한 삭제 및 규칙 강제를 포함하는 정책 관리를 제공하고, 계좌 번호, 사회 보장 번호, 신용 카드 번호, 무역 비밀, 금융 기록, 전략적 사업 플랫 및 IP/소스 코드와 같은 사업-중요 정보 자산을 보호한다. 노출된 민감한 데이터가 식별되면, 자동화된 정책은 파일의 보안 속성을 수정하고, 데이터를 기업 내의 좀 더 안전한 시스템으로 이동하거나 위험 아이템을 삭제한다.The data intelligence and information governance of the platform is based on how much data belongs to the user, where the data is located, who owns the data, where the data is, the age of the data, Includes decision-level maps and business analysis or rules. The platform is hosted by providing file classifications, retrieving content, discovering compliance and rule violations, revealing age, and gaining visibility across content that is non-business related. Information genealogy provides a set of security-related chronological sets of records, and a destination and source of records that provide a sequence of activities. The platform keeps track of all file relationships and where they are, and information governance provides policy management, including record retention, defensible deletion and rule enforcement, and provides policy management, including account number, social security number, credit card number, Records, strategic business, business and critical information assets such as flat and IP / source code. Once exposed sensitive data is identified, the automated policy modifies the security attributes of the file, moves the data to a more secure system within the enterprise, or deletes the risky item.
플랫폼에 의해 실행되는 기록 관리는 주도적이고 지속적인 기록 보유 및 성향 전략을 실행하고 자동화한다. 파일 공유 클린업은 사용자가 사용자의 환경을 이해함에 의해 사업 데이터 스프롤(sprawl)의 제어를 얻도록 한다. 플랫폼은 데이터를 분류하고, 데이터 속성을 업데이트하며, 허락을 할당한다. 인텔리전트 e-디스커버리는 증거 보존(legal hold) 통지, 트루 얼리 케이스 어세스먼트(true early case assessment) 및 인텔리전트 콜렉션을 제공한다. 플랫폼의 데이터 삭제 및 클린업은 데이터 토폴로지 맵과 분류를 사용하여, 비-사업 데이터를 식별하고, 저장/데이터 이동, e-디스커버리, 기록 관리 또는 준수 의무와 같은 정보 관리 개시이전에, 방어가능한 데이터 클린업을 수행한다. 저장 최적화는 기존 저장 자원의 사용을 최적화하고, 저장 비용을 줄이며, 데이터 토폴로지 맵 및 분류를 사용하여 모니터링하고, 미래의 저장 요구에 대해 계획한다.Records management implemented by the platform implements and automates a leading and persistent record retention and propensity strategy. The file sharing cleanup allows the user to gain control of the business data sprawl by understanding the user's environment. The platform classifies the data, updates the data attributes, and assigns permissions. Intelligent e-Discovery provides legal hold notification, true early case assessment and intelligent collection. Data erasure and cleanup of the platform uses data topology maps and classifications to identify non-business data and to perform preventive data cleanup prior to commencing information management such as storage / data movement, e-discovery, records management or compliance obligation . Storage optimization optimizes the use of existing storage resources, reduces storage costs, monitors with data topology maps and classifications, and plans for future storage needs.
실시예의 플랫폼은 모바일 장치 관리를 제공하는데, 이는 모바일 장치를 모니터하고 지원하여, 조직을 활성화시켜서 정책을 시행함은 물론, 복수의 플랫폼과 애플리케이션에 걸친 IT 제어의 원하는 레벨을 유지하기 위해 데이터를 제어하고 보호한다. 플랫폼은 단일 모바일 장치 소프트웨어 제품을 통해 모바일 장치의 중앙 관리를 통해 말단-투-말단 보안을 제공한다. 또한, 플랫폼은 GPS 자산 추적, 패스워드 준수/SSO, 원격 락/와이핑, 추적 앱과 업로드되고, 볼 수 있고, 편집되는 데이터와 같은 장치 사용 추적, 장치 애플리케이션 관리를 포함한다.The platform of the embodiment provides mobile device management, which monitors and supports mobile devices to enforce policies by activating an organization, as well as controlling data to maintain a desired level of IT control across a plurality of platforms and applications Protect. The platform provides end-to-end security through centralized management of mobile devices through a single mobile device software product. The platform also includes device asset tracking, device application tracking such as GPS asset tracking, password compliance / SSO, remote locking / wiping, tracking apps and data being uploaded, viewed and edited.
플랫폼은 사용자가 모든 소스에 걸쳐 원격 지움을 수행하고, 원래의 파일과 파생물, 원격 락을 제거하고, 탈옥한(jail-broken)장치를 검출하고 보호하도록 한다. 단일 사인-온 및 장치 컨피규레이션이 있는 패스워드 준수 및 네트워크, 이-메일 컨피규레이션 및 배터리 수명에 대한 모니터링이 있다. 애플리케이션 관리는 애플리케이션을 제한하고, 의무 애플리케이션을 푸쉬하고, 애플리케이션 모니터링(가령, 업로드되고, 보여지는 데이터 등)을 제한하고, 모든 애플리케이션이 최신이고 적절히 기능하도록 보장한다. 또한, 플랫폼은 GPS 추적 및 준수하지 않는 장치의 보고/실시간 통지를 포함한다.The platform allows the user to perform remote wiping across all sources, removing the original files and their derivatives, remote locking, and detecting and protecting jail-broken devices. Password compliance with single sign-on and device configuration, and monitoring for network, e-mail configuration and battery life. Application management limits applications, pushes mandatory applications, limits application monitoring (eg, uploaded, viewed data, etc.) and ensures that all applications are up to date and functioning properly. The platform also includes GPS tracking and reporting / real-time notification of non-compliant devices.
실시예의 모바일 장치 관리는 관련된 자원에 연결된 모든 모바일 장치에 실시간 가시성을 제공하는 모바일 위험 관리를 포함하고, 사원 선택을 포용하는 것(가령, 너의 자체 장치를 가지고 와라)과 회사 데이터를 보호하는 것 사이의 균형을 달성한다. 모바일 보안은 안티바이러스 기술, 진보된 방화벽 및 안티-스팸 특징을 제공한다. GPS 자산 추적은 중앙 콘솔 내의 모바일 장치의 좌표를 찾고 추적한다. 원격 락/와이핑은 사용자의 장치 및 권한없는 액세스의 경우 그 데이터를 보호한다. 플랫폼의 장치 목록 추적은 장치상의 업로드되고, 보여지고, 편집되는 파일과 데이터를 추적하고, (분류, 최근 보기/편집 등을 통해) 파일을 분류하기 위한 검색 기능을 통해 관리자에게 더 큰 가시성을 제공한다.The mobile device management of the embodiment includes mobile risk management that provides real-time visibility to all mobile devices connected to the associated resource, and includes between embracing employee selection (e.g., bring your own device) and protecting corporate data . Mobile security provides antivirus technology, advanced firewall and anti-spam features. GPS asset tracking locates and tracks the coordinates of mobile devices within the central console. Remote locking / wiping protects your data in the case of your device and unauthorized access. The platform's device list tracking provides administrators greater visibility through the ability to track files and data uploaded, viewed, and edited on the device and to categorize files (via classification, recent viewing / editing, etc.) do.
플랫폼의 장치 애플리케이션 관리는 그룹 설정에 기초하여 애플리케이션을 분산시키고, 지정된 공공 시장 앱을 제한하거나 허용하고, 의무 애플리케이션을 푸시한다. 또한, 플랫폼은 비-준수 장치로 경고하고 액세스할 수 없고, 사유 애플리케이션을 관리하며, 이들을 공공 애플리케이션 스토어에 노출시키지 않으면서, 사용자에게 전달한다. 또한, 플랫폼은 장치에 업데이트를 집행한다. 실시예의 보안 정책 관리는 푸시 증명, 이메일 서버 설정, 제한 및 장치에 대한 카메라 설정(가령, Android 장치, iOS 장치 등)을 포함한다. 플랫폼은 프로세스 실행, 설치된 애플리케이션, 배터리 수명 및 네트워크 정보를 나열한다. 사용자는 실시간 통지를 얻을 수 있고, 예외 사항에 대해 관리부에 경고한다.The device application management of the platform distributes the applications based on group settings, restricts or allows the specified public market apps, and pushes the mandatory applications. In addition, the platform can not warn and access non-compliant devices, manage proprietary applications, and deliver them to users without exposing them to the public application store. The platform also enforces updates to the device. The security policy management of the embodiment includes push proofs, email server settings, restrictions, and camera settings (e.g., Android devices, iOS devices, etc.) for devices. The platform lists process execution, installed applications, battery life and network information. The user can get a real-time notification and warn the management about the exception.
플랫폼은 사용자 활동(가령, 파일 업로드, 파일 다운로드, 애플리케이션 사용, 활동 공유 등)의 감사 보고를 완성시킴에 의해 사용자 보고를 생성한다. 플랫폼은, 기업 문서와 민감한 파일을 보안 방식으로 데이터 손실 방지하면서 모바일 장치로 푸시함에 의해 모바일 내용을 관리하고, 원격 업데이트를 파일로 전송하고 말단 사용자 개입없이 내용을 제거하도록 구성된다. 순간적인 복구와 백업은, 파일이 잃어버리거나 변질되면, 모든 파일을 장치로 한 번에 재저장하기 위한 능력을 제공한다. 플랫폼은 원격으로 장치를 지우나, 정책 및 애플리케이션을 장치, 블랙 또는 화이트 리스트 애플리케이션에 제공 및 탈옥한 장치에 대한 검출 및 보호를 할 수 있다.The platform creates a user report by completing an audit report of user activity (e.g., file upload, file download, application usage, activity sharing, etc.). The platform is configured to manage mobile content by pushing corporate documents and sensitive files to a mobile device in a secure manner while preventing data loss, transferring remote updates to a file, and removing content without end user intervention. Instant recovery and backup provides the ability to restore all files to the device at once, if the file is lost or corrupted. The platform can remotely erase the device, provide policies and applications to the device, a black or white list application, and detect and protect devices that have jailbroken.
실시예의 플랫폼은 자원 사용 및 보안을 제공하는데, 이는 상황과 관련된 정보를 통합하고, 가시성을 다양한 환경(가령, 모바일 장치, 데스크톱, 서버 등)에 제공하여 데이터, 애플리케이션 및 장치를 모니터, 최적화 및 보호한다. 플랫폼은 하드웨어, 소프트웨어 및 애플리케이션 사용, 저장을 위한 자원 소비, RAM 및 네트워크 모니터링을 위한 애플리케이션 정보 추적 및 저장소, 데이터 클린업 및 아키브 최적화를 포함한다.The platform of the embodiment provides resource usage and security, which integrates information related to the situation and provides visibility to various environments (e.g., mobile devices, desktops, servers, etc.) to monitor, optimize and protect data, applications and devices do. The platform includes hardware, software and application usage, resource consumption for storage, application information tracking and storage for RAM and network monitoring, data cleanup and archive optimization.
실시예의 데이터 삭제 및 클린업은 데이터 토폴로지 맵과 분류를 사용하여, 비-사업 데이터를 식별한다. 플랫폼은 저장/데이터 이동, e-디스커버리, 기록 관리, 또는 준수 의무와 같은 정보 관리 개시 이전에, 방어가능한 데이터 클린업을 수행하고, 또한, 유지될 필요가 있는 스테일 데이터(stale data)를 보관한다. 저장 최적화는 기존 저장 자원의 사용을 최적화하고, 저장 비용을 줄이며(가령, 데이터 중복 제거), 또한, 데이터 토폴로지 맵과 분류를 사용하여, 모니터링하고, 미래의 저장 요구에 대해 계획하며, 자원 소비를 추적한다(가령, 저장소, RAM, 네트워크 모니터링).The data deletion and cleanup of the embodiment uses a data topology map and classification to identify non-business data. The platform performs a defensible data cleanup prior to initiating information management such as storage / data movement, e-discovery, records management, or compliance obligations, and also maintains stale data that needs to be maintained. Storage optimization optimizes the use of existing storage resources, reduces storage costs (eg, data deduplication), and also uses data topology maps and classifications to monitor, plan for future storage needs, and consume resources (Eg, storage, RAM, network monitoring).
플랫폼의 자원 사용과 보안은 하드웨어, 소프트웨어 및 애플링케이션이 어떻게 사용되는지에 대한 정보를 수지하는 애플리케이션 및 정보 추적을 포함한다. 사용자는 가장 사용되는 프로그램, 웹사이트 및 파일 타입을 추적할 수 있다. 자원 소비 보고는 얼마나 많은 RAM, 대역폭 및 저장 공간을 사용자가 사용하는지를 나타낸다. 최적화를 위한 상황 인식 소프트웨어는 시간에 걸쳐 상이한 사용율의 패턴을 추적하고 구축하여서, 애플리케이션 사용과 데이터의 이동으로 가시성을 증가시킴에 의해 예측불가능성을 줄인다. 플랫폼은 가치있는 자원을 키 사용자, 애플리케이션 및/또는 프로그램으로 재안내한다. 개선된 가시성은 계획되고 실시간 할당을 할 수 있게 한다.Platform resource use and security include applications and information tracking that pinpoint how hardware, software, and applications are used. Users can track the most used programs, websites and file types. Resource consumption reports indicate how much RAM, bandwidth, and storage space the user is using. Context-aware software for optimization tracks and builds patterns of utilization across time, reducing unpredictability by increasing visibility through application usage and data movement. The platform redirects valuable resources to key users, applications and / or programs. Improved visibility allows for planned and real time assignments.
플랫폼 클라이언트 보안은 안티바이러스 기술, 진보된 방화벽 및 안티-맬웨어를 제공한다. 플랫폼 활동 보안은 장치 및/또는 클라이언트에 대한 이상 행동의 관리자를 모니터하고 경고한다. 플랫폼의 클라우드 보안은 정책, 기술 및 클라우드 내의 데이터와 애플리케이션을 보호하는 제어를 포함한다. 전개 및 이미징은 중앙 위치로부터 컴퓨터를 전개 및 관리한다. 안드로이드 코드 사이닝은 인증 키 및 Google Play에서 용이한 애플리케이션 버전 업데이트를 위한 애플리케이션을 관리한다. 장치 컨피규레이션 관리는 그룹 설정에 기초하여 애플리케이션/소프트웨어를 분배하고, 지정된 애플리케이션/소프트웨어를 제한 또는 허용하며, 의무 프로그램을 푸시한다. 플랫폼은 비-준수 장치로의 액세스를 경고하고 불능하게 한다. 플랫폼은 사유 애플리케이션/소프트웨어를 관리하고, 이들을 외부 노출 없이 사용자에게 전달하며, 또한, 장치에 업데이트를 집행한다. 엔드포인트 보안은 운영 시스템, 웹 브라우저를 보장하고, 다른 애플리케이션은 액세스를 허락하기 전에 최신이 된다.Platform client security provides antivirus technology, advanced firewalls and anti-malware. Platform activity security monitors and alerts administrators of abnormal behavior to devices and / or clients. The platform's cloud security includes policies, technologies, and controls to protect data and applications in the cloud. Deployment and imaging deploys and manages computers from a central location. Android code signing manages applications for authorization keys and easy application version updates on Google Play. The device configuration management distributes the application / software based on the group settings, restricts or permits the specified application / software, and pushes the mandatory program. The platform alerts and disables access to non-compliant devices. The platform manages proprietary applications / software, delivers them to the user without external exposure, and also enforces updates to the device. Endpoint security ensures the operating system, web browser, and other applications are up-to-date before allowing access.
실시예의 플랫폼은, 사업 데이터가 액세스되고, 보여지고, 수정되고 공유되는 방식에 걸친 제어와 이에 대한 비할데 없는 가시성을 IT 관리자에게 주는 관리 콘솔을 포함한다. 도 12는 실시예에서, 관리 콘솔의 예시적인 스크린을 도시한다. 온라인 관리 콘솔은, 사용자가 얼마나 활성화되는지, 이들은 서비스에 연결된 무슨 장치를 가지고 있는지, 이들이 동기화하려는 파일이 무엇인지, 이들이 누구와 데이터를 공유하는지를 포함하여, 서비스의 모든 면에 실시간 가시성을 제공한다. 또한, 관리 콘솔은 IT 관리자가, 사용자 허락, 파일 액세스 제한, 공유 제어 및 원격 데이터 지움을 포함하는 서비스의 중요 특징을 주도적으로 관리하도록 한다.The exemplary platform includes a management console that gives IT managers control over and control over how business data is accessed, viewed, modified, and shared. Figure 12 shows an exemplary screen of a management console in an embodiment. The online management console provides real-time visibility into every aspect of the service, including how users are activated, what devices they have connected to the service, what files they want to synchronize, and who they share data with. In addition, the management console allows IT administrators to proactively manage critical features of services, including user permissions, file access restrictions, shared control, and remote data deletion.
관리 콘솔은 파일 동기화 프로세스의 다양한 면을 제어하기 위한 능력을 포함한다. 플랫폼이 자동으로 민감한 문서를 식별하기 때문에, IT 관리자는 중요한 사업 문서가 서비스에 걸쳐 동기화되거나 내부적 또는 외부적으로 공유되는 것을 제한할 수 있다. 또한, IT 관리자는 제어 저장소와 동기화될 수 있는 파일을 위한 최대 크기 및 대역폭 소비를 설정할 수 있거나, 어느 파일 분류(가령, 음악 및 비디오)가 네트워크상에 있는 것을 방해하는지를 지정할 수 있다. 또한, IT 관리자는 파일이 액세스될 수 있는지 사용자 웹 포털로부터 다운로드될 수 있는지를 정의할 수 있다. 도 13은 실시예에서, 파일 동기화 제어를 포함하는 예시적인 실시예를 도시한다.The management console includes the ability to control various aspects of the file synchronization process. Because the platform automatically identifies sensitive documents, IT managers can restrict important business documents from being synchronized across services or shared internally or externally. In addition, the IT manager can set the maximum size and bandwidth consumption for files that can be synchronized with the control repository, or can specify which file classification (e.g., music and video) is prevented from being on the network. The IT administrator can also define whether the file can be accessed or downloaded from the user web portal. Figure 13 shows, in an embodiment, an exemplary embodiment that includes file synchronization control.
플랫폼은 실시간 자동화된 활동 모니터링, 감사 및 보고를 IT 관리자에게 전달하는데, 이는 날짜, 시간, 사용자, 장치, 파일 및 다른 요소에 의해 중요한 시스템 활동을 상세히 알린다. 보안 정책을 강제하기 위해, IT 관리자는 인식 불가능한 로그인, 패스워드 리셋 시도, 이벤트와 다른 활동을 공유하는 민감한 파일의 수를 볼 수 있다. 도 14는 실시예에서, 보안 활성화 모니터링 및 통지를 포함하는 예시적인 스크린을 도시한다. 이러한 예시에서, IT 관리자는 잠재적 보안 문제로 경고되는데, 왜냐하면, IT 관리자의 계좌로 5개의 인식 불가능한 로그인 시도는 Cluj, Romania에 알려지지 않은 위치로 이루어지기 때문이다. 보안 이벤트가 시스템내에서 발생하면, IT 관리자는 예를 들어, 관리 콘솔, IOS/Android 앱, 문자 또는 이메일을 통해 경고 통지를 수신할 수 있다.The platform delivers real-time, automated activity monitoring, auditing, and reporting to IT managers, detailing important system activities by date, time, user, device, file, and other factors. To enforce security policies, IT administrators can view unrecognized logins, password reset attempts, and the number of sensitive files that share events and other activities. Figure 14 illustrates an exemplary screen including security activation monitoring and notification in an embodiment. In this example, IT administrators are warned of potential security issues, because five unrecognized login attempts to an IT administrator's account are made at locations unknown to Cluj, Romania. When a security event occurs within the system, the IT administrator can receive an alert notification, for example, via a management console, IOS / Android app, text or email.
도 15는 실시예에서, 문서 감사 추적을 포함하는 예시적인 스크린을 도시한다. 플랫폼은 문서의 완전한 파일 히스토리를 서비스 내에 기록한다. 각각의 문서에 대해, IT 관리자는 파일이 추가되거나 수정되거나 삭제될 때, 볼 수 있다. 또한, IT 관리자는 어느 장치가 문서에 액세스되고, 그 장치의 지리적 위치를 결정할 수 있다. 이러한 기능은 여러 장치에 걸쳐 복수의 사용자에 의해 수정되는 공유된 문서에게 필수적이다. 문서 감사 추적을 편집하는 것에 더하여, 각 파일의 완전한 수정 히스토리도 IT 관리자나 사용자가 파일의 이전 버전으로 되돌리기 원할 경우에, 저장된다.FIG. 15 illustrates an exemplary screen including a document audit trail in an embodiment. The platform records the complete file history of the document in the service. For each document, the IT administrator can see when the file is added, modified or deleted. In addition, an IT manager can determine which devices are accessed and which devices are geographically located. This functionality is essential for shared documents that are modified by multiple users across multiple devices. In addition to editing the document audit trail, the complete revision history of each file is also stored if the IT administrator or user wants to revert to a previous version of the file.
도 16은 실시예에서, 파일 검색과 분류를 포함하는 예시적인 스크린을 도시한다. 자동 데이터 디스커버리와 세그멘테이션 기능을 사용하여, IT 관리자는 깊은 내용 검색과 키 용어 추출에 기초하여 민감한 사업 파일을 식별할 수 있다. 그리고 나서, IT 관리자는 소유주 정보(가령, 고객, 사원 및 금융 정보)를 포함하는 특정 문서를 검색하고 볼 수 있음은 물론, 이러한 정보를 제어하기 위한 특정 제한을 설정할 수 있다. 민감한 문서를 밀접하게 관리함에 더하여, IT 관리자는 파일 이름에 의해 조직에 걸쳐 파일을 검색할 수 있다. IT 관리자는 조직에 걸쳐 동기화된 전체 파일을 볼 수 있어서, 파일 타입 고장(문서, 음악, 비디오 등) 또는 크기에 기초한 파일의 분배를 이해한다. 이러한 정보는 사람 내용을 서비스에 추가하거나 아니면, 솔루션을 오용할 수 있는 IT 관리자 스포트 사용자를 도울 수 있다.Figure 16 shows an exemplary screen, including an example of a file search and classification, in an embodiment. Using automatic data discovery and segmentation capabilities, IT managers can identify sensitive business files based on deep content searches and key term extraction. The IT administrator can then search for and view specific documents, including owner information (e.g., customer, employee and financial information), as well as set specific restrictions to control this information. In addition to closely managing sensitive documents, IT administrators can search for files across an organization by file name. IT administrators can view the entire file synchronized across the organization, understanding file type breakdown (document, music, video, etc.) or distribution of files based on size. This information can help IT administrator users to add human content to the service or to misuse the solution.
플랫폼은 IT 관리자가 어느 사용자가 조직 내에서 문서를 공유할 수 있는지를 특정 공동 작업자와 공유된 폴더를 설정함에 의해 결정할 수 있다. 권한 없는 사용자는 IT 관리자 또는 신뢰있는 사용자의 허락 없이 공유된 폴더에 액세스하는 능력을 가질 수 없다. IT 관리자는 어느 사용자가 일방향 웹 링크를 통해 공유하는지를 제어할 수도 있다. 또한, 웹 링크와 공유된 폴더 모두에 대해, IT 관리자는 모든 공유 활동(사용자에 의한 파일 추가, 수정 또는 삭제, 장치, 위치 등)의 완전한 히스토리를 가진다. 도 17은 실시예에서, 제어된 사용자 공유를 포함하는 예시적인 스크린을 도시한다.The platform can determine which users can share documents within an organization by setting up shared folders with specific collaborators. Unauthorized users can not have the ability to access shared folders without the permission of the IT administrator or trusted user. IT managers can also control which users share through a one-way web link. Also, for both Web links and shared folders, IT administrators have a complete history of all sharing activities (adding, modifying, or deleting files by users, devices, locations, etc.). Figure 17 shows an exemplary screen, including an example of controlled user sharing, in an embodiment.
도 18은 실시예에서, 원격 장치 관리 및 지오로케이션(geolocation) 서비스를 포함하는 예시적인 스크린을 도시한다. IT 관리자는 관리 콘솔을 통해 모바일 장치와 데스크톱을 원격으로 관리할 수 있다. 예를 들어, 사원이 조직에서 종료되면, IT 관리자는 임의의 공유 활동에서 사용자를 원격으로 제거할 수 있고, 사용자의 계정으로부터 장치를 링크 뺄 수 있으며, 장치에 대한 서비스를 중지할 수 있다. IT 관리자는 특정 장치의 원격 지움을 수행할 수 있고, 즉각적으로 민감한 사업 내용을 제거할 수 있다. 플랫폼은 지오로케이션 서비스를 관리 콘솔에 통합하여 시스템 이벤트에 대한 특정 위치를 식별하고, 모바일 장치와 컴퓨터의 위치를 모니터할 수 있다. 이는, IT 관리자가 집 컴퓨터와 다른 개인용 장치로부터 사업 내용을 제한하기 원한다면, 특히 유용하다.Figure 18 illustrates, in an embodiment, an exemplary screen including remote device management and geolocation services. IT administrators can remotely manage mobile devices and desktops through the management console. For example, when an employee is terminated in an organization, the IT administrator can remotely remove the user from any sharing activity, unlink the device from the user's account, and stop the service to the device. IT administrators can remotely wipe specific devices and immediately remove sensitive business content. The platform can integrate geolocation services into the management console to identify specific locations for system events and to monitor the location of mobile devices and computers. This is particularly useful if an IT manager wants to limit business content from home computers and other personal devices.
플랫폼은 IT 관리자가 이들의 핵심 사업 파일의 저장 위치를 선택할 수 있도록 한다. IT 관리자는 또 다른 클라우드 저장소 제공자(가령, HP 또는 Amazon) 또는 서버나 NAS 환경(가령, NETGEAR) 내의 사내 설치로, Memeo 데이터 센터에 파일을 저장하도록 선택할 수 있다. 도 19는 실시예에서, 저장 위치의 선택을 포함하는 예시적인 스크린을 도시한다. 유연한 저장 모델은 고객들이 이미 경험했던 클라우드 제공자와 또는 로컬하게 파일을 저장할 수 있도록 함에 의해, 고객을 위한 보안을 향상시킨다. 또한, 이러한 접근법은 IT 관리자가 운영 비용을 감소시키는 기존 저장 인프라스트럭처를 사용할 수 있도록 한다.The platform allows IT managers to choose where to store their core business files. An IT administrator can choose to store files in the Memeo data center with another cloud storage provider (such as HP or Amazon) or an in-house installation in a server or NAS environment (such as NETGEAR). Figure 19 illustrates an exemplary screen that includes, in an embodiment, selection of a storage location. The flexible storage model improves security for customers by allowing customers to store files locally or with a cloud provider they have already experienced. This approach also enables IT managers to use existing storage infrastructures that reduce operational costs.
본 명세서에 기술된 실시예는 복수의 데이터베이스에 연결된 프로세서를 포함한 플랫폼을 포함하는 시스템을 포함한다. 시스템은 플랫폼에 연결된 복수의 에이전트를 포함하는 그리드를 포함한다. 복수의 에이전트의 각각의 에이전트는 클라이언트 장치상에서 실행되는 플랫폼의 에이전트이다. 시스템은 복수의 에이전트에 대응하는 복수의 클라이언트 장치에 의해 액세스 가능한 메모리의 내용의 메타데이터를 포함한다. 각각의 클라이언트 장치의 각 에이전트는 메타데이터를 생성하여 플랫폼으로 제공한다. 플랫폼은 내용 대신에 메타데이터를 포함하고, 메타데이터를 사용하여 내용의 위치를 결정하고, 내용의 상태를 유지하기 위해 작업을 나타내는 목표를 생성하며, 목표에 대응하는 복수의 태스크를 생성하고, 각각의 태스크를 태스크에 대응하는 내용에 액세스하는 에이전트에 할당한다. 각각의 태스크는 에이전트에 의해 수행될 플랫폼에 의해 안내되는 에이전트에 의해 액세스 가능한 내용에 대한 프로세싱 작업이다.The embodiments described herein include a system including a platform including a processor coupled to a plurality of databases. The system includes a grid comprising a plurality of agents coupled to the platform. Each agent of a plurality of agents is an agent of the platform running on the client device. The system includes metadata of the contents of a memory accessible by a plurality of client devices corresponding to a plurality of agents. Each agent of each client device generates metadata and provides it to the platform. The platform includes metadata in place of content, uses metadata to determine the location of the content, creates a target representing the task to maintain the state of the content, creates a plurality of tasks corresponding to the target, To the agent accessing the content corresponding to the task. Each task is a processing task for the content accessible by the agent guided by the platform to be performed by the agent.
본 명세서에 기술된 실시예는, 복수의 데이터에 연결된 프로세서를 포함하는 플랫폼과; 플랫폼에 연결된 복수의 에이전트를 포함하는 그리드 - 복수의 에이전트의 각 에이전트는 클라이언트 장치상에서 실행되는 플랫폼의 에이전트임 - 와; 및 복수의 에이전트에 대응하는 복수의 클라이언트 장치에 의해 액세스 가능한 메모리의 내용의 메타데이터 - 각각의 클라이언트 장치의 각 에이전트는 메타데이터를 생성하여 플랫폼으로 제공하고, 플랫폼은 내용 대신에 메타데이터를 포함하고, 메타데이터를 사용하여 내용의 위치를 결정하고, 내용의 상태를 유지하기 위해 작업을 나타내는 목표를 생성하며, 목표에 대응하는 복수의 태스크를 생성하고, 각각의 태스크를 태스크에 대응하는 내용에 액세스하는 에이전트에 할당한다. 각각의 태스크는 에이전트에 의해 수행될 플랫폼에 의해 안내되는 에이전트에 의해 액세스 가능한 내용에 대한 프로세싱 작업임 - 를 포함하는 시스템을 포함한다.The embodiments described herein include a platform including a processor coupled to a plurality of data; A grid comprising a plurality of agents coupled to the platform, each agent of the plurality of agents being an agent of a platform running on the client device; And metadata of the contents of a memory accessible by a plurality of client devices corresponding to the plurality of agents, each agent of each client device generating and providing metadata to the platform, wherein the platform includes metadata instead of content , The metadata is used to determine the location of the content, the goal to represent the task to maintain the state of the content, the plurality of tasks corresponding to the goal, and each task to access the content corresponding to the task To the agent. Wherein each task is a processing task for content accessible by an agent guided by a platform to be performed by an agent.
실시예의 플랫폼은 복수의 에이전트를 위한 마스터 제어기인데, 복수의 에이전트는 복수의 태스크에 의해 제어되는 것과 같이 플랫폼과 상호 작동한다.The platform of the embodiment is a master controller for a plurality of agents, wherein the plurality of agents interact with the platform as controlled by a plurality of tasks.
실시예의 복수의 에이전트의 각 에이전트는 플랫폼 및 복수의 에이전트의 다른 에이전트와 독립적으로 기능한다.Each agent of the plurality of agents of the embodiment functions independently of the platform and the other agents of the plurality of agents.
실시예의 플랫폼은 내용을 수신하는 대신에, 내용의 메타데이터를 수신하는데, 복수의 에이전트를 호스팅하는 복수의 클라이언트 장치는 상기 내용을 포함하는 분배 저장 장치를 포함한다.The platform of the embodiment receives content metadata instead of receiving content, wherein a plurality of client devices hosting a plurality of agents comprises a distribution storage device containing the content.
실시예의 플랫폼은 복수의 에이전트의 내용의 마스터 인덱스를 복수의 데이터베이스에서 유지하기 위해 메타데이터를 사용한다.The platform of the embodiment uses metadata to maintain a master index of the contents of a plurality of agents in a plurality of databases.
실시예의 메타데이터는 상기 내용의 위치에 대한 데이터를 포함한다. The metadata of the embodiment includes data on the location of the content.
실시예의 메타데이터는 상기 내용의 상태에 대한 데이터를 포함한다. The metadata of the embodiment includes data on the status of the content.
실시예의 메타데이터는 복수의 에이전트의 실체에 대한 데이터를 포함한다.The metadata of the embodiment includes data for the entities of a plurality of agents.
실시예의 메타데이터는 각 에이전트가 액세스하는 내용에 대한 데이터를 포함한다. The metadata of the embodiment includes data about contents that each agent accesses.
실시예의 메타데이터는 복수의 에이전트에 의해 수행된 복수의 태스크의 정보를 포함한다.The metadata of the embodiment includes information of a plurality of tasks performed by a plurality of agents.
실시예의 태스크는 상기 그리드에 걸쳐상기 내용의 위치를 추적하는 것과 관련된다.The task of the embodiment involves tracking the location of the content over the grid.
실시예의 태스크는 상기 그리드에서 상기 내용의 저장을 관리하는 것과 관련된다. The tasks of the embodiment relate to managing the storage of the content in the grid.
실시예의 태스크는 상기 그리드에서 상기 내용의 이동을 관리하는 것과 관련된다.The tasks of the embodiment relate to managing movement of the content in the grid.
실시예의 태스크는 그리드에서 상기 내용을 프로세스하는 것과 관련된다.The tasks of the embodiment involve processing the content in a grid.
실시예의 태스크 각각은 태스크에 대한 완성의 조건을 포함한다.Each of the tasks of the embodiment includes a condition of completion for the task.
실시예의 복수의 에이전트는 플랫폼에 의해 지시된 대로 내용을 집합적으로 모니터링한다.The plurality of agents in the embodiment collectively monitor the contents as indicated by the platform.
실시예의 복수의 에이전트는 플랫폼에 의해 지시된 대로 내용을 집합적으로 저장한다.The plurality of agents in the embodiment collectively store the contents as indicated by the platform.
실시예의 복수의 에이전트는 플랫폼에 의해 지시된 대로 내용을 집합적으로 전송한다.The plurality of agents in the embodiment collectively transmit the contents as indicated by the platform.
실시예의 복수의 에이전트는 플랫폼에 의해 지신된 대로 내용에 대한 프로세싱 작업을 집합적으로 수행한다.The plurality of agents in the embodiment collectively perform the processing operations on the contents as perceived by the platform.
실시예의 각 클라이언트 장치의 각 에이전트는 클라이언트 장치에 의해 액세스 가능한 메모리의 내용을 인덱스한다.Each agent in each client device in the embodiment indexes the contents of memory accessible by the client device.
실시예의 복수의 데이터베이스는 플랫폼에 사용가능한 에이전트 및 각 에이전트의 정보를 포함하는 에이전트 데이터베이스를포함한다.The plurality of databases of the embodiment includes an agent usable on the platform and an agent database containing information of each agent.
실시예의 각 에이전트는 적어도 하나의 라이브러리를 포함하는데, 라이브러리는 에이전트가 적어도 판독 액세스와 기재 액세스를 포함하는 액세스를 가지는 장치를 나타낸다.Each agent in an embodiment includes at least one library, wherein the library represents an apparatus having an access at least including read access and write access.
실시예의 복수의 데이터베이스는 복수의 에이전트에 대응하는 라이브러리의 리스트를 포함하는 라이브러리 데이터베이스를 포함하는데, 그리드의 각 라이브러리는 라이브러리 데이터베이스 내에 별도로 나타낸다.The plurality of databases of the embodiment includes a library database including a list of libraries corresponding to a plurality of agents, wherein each library of the grid is separately shown in the library database.
실시예의 각 에이전트는 에이전트에 대응하는 각 라이브러리에 액세스한다.Each agent in the embodiment accesses each library corresponding to the agent.
실시예의 복수의 데이터베이스는 목표의 리스트를 포함하는 목표 데이터베이스를 포함하는데, 목표의 리스트의 각 목표는 플랫폼에 의해 생성되고, 적어도 하나의 라이브러리에 해당하며, 목표는 해당 라이브러리 내용에 작업을 실행하는데 사용된다.The plurality of databases of the embodiment includes a target database containing a list of targets, each target of the list of targets being created by the platform and corresponding to at least one library, the target being used do.
실시예의 목표의 리스트는 태스크가 수행될 라이브러리의 집합체(collection)를 포함한다.The list of goals of the embodiment includes a collection of libraries on which tasks are to be performed.
실시예의 각 목표는 적어도 하나의 라이브러리에 해당하고, 에이전트에 의해 사용되어서, 해당 라이브러리의 내용에 적어도 하나의 태스크를 실행한다.Each goal in the embodiment corresponds to at least one library and is used by the agent to execute at least one task on the contents of the library.
실시예의 플랫폼은 복수의 에이전트의 복수의 라이브러리를 판독하기 위해 목표를 사용한다.The platform of the embodiment uses a target to read a plurality of libraries of a plurality of agents.
실시예의 플랫폼은 목표를 사용하여, 복수의 에이전트에 의해 액세스 가능한 내용에서, 불일치와 차이 중 적어도 하나를 식별한다.The platform of the embodiment uses a target to identify at least one of a discrepancy and a difference in content accessible by a plurality of agents.
실시예의 플랫폼은 목표를 사용하여, 내용에서 식별된 불일치와 차이 중 적어도 하나를 제거하기 위해 적어도 하나의 태스크를 생성한다.The platform of the embodiment uses the target to create at least one task to remove at least one of the discrepancies and differences identified in the content.
실시예의 복수의 데이터베이스는 작업 데이터베이스를 포함한다.The plurality of databases of the embodiment includes a task database.
실시예의 플랫폼은 각 에이전트에 대응하는 작업 데이터베이스를 생성하고, 작업 데이터베이스는 해당 에이전트에 의해 수행될 태스크를 포함한다.The platform of the embodiment creates a task database corresponding to each agent, and the task database includes tasks to be performed by the agent.
실시예의 작업 데이터베이스는 해당 에이전트에 의해 수행될 각 태스크의 설명 및 에이전트가 태스크를 수행하기 위해 필요한 정보를 포함한다.The task database of the embodiment includes a description of each task to be performed by the agent and information necessary for the agent to perform the task.
실시예의 복수의 데이터베이스는 복수의 에이전트의 능력에 대한 정보를 포함하는 능력 데이터베이스를 포함한다.The plurality of databases of the embodiment includes a capability database that includes information about capabilities of a plurality of agents.
실시예의 복수의 데이터베이스는 복수의 에이전트의 기록을 포함하고 유지하는 동기화 데이터베이스를 포함한다.The plurality of databases of the embodiment includes a synchronization database that includes and maintains a record of a plurality of agents.
실시예의 동기화 데이터베이스는 복수의 에이전트의 내용의 파일 상태의 기록을 포함한다.The synchronization database of the embodiment includes a record of the file status of the contents of a plurality of agents.
실시예의 동기화 데이터베이스는 각 파일에 대한 엔트리를포함하는데, 상기 엔트리는 파일에 대응하는 내용 해시를 포함하고, 상기 내용 해시는 파일의 내용을 나타내는 블로브의 리스트의 해시를 포함하고, 블로브의 리스트의 각 블로브는 내용내의 파일의 단편의 표시(representation)를 포함하고, 단편은 파일의 구성이다.The synchronization database of the embodiment includes an entry for each file, the entry including a content hash corresponding to the file, the content hash including a hash of the list of blobs representing the contents of the file, Each blob of the file contains a representation of the fragment of the file in the content, and the fragment is the organization of the file.
실시예의 동기화 데이터베이스는 각 에이전트에 대한 엔트리를 포함하는데, 상기 엔트리는 에이전트의 파일에 대응하는 내용 해시를 포함하고, 상기 내용 해시는 파일의 내용을 나타내는 블로브의 리스트의 해시를 포함하고, 블로브의 리스트의 각 블로브는 내용내의 파일의 단편을 나타냄을 포함하고, 단편은 파일의 구성이다.The synchronization database of the embodiment includes an entry for each agent, the entry including a content hash corresponding to the file of the agent, the content hash comprising a hash of the list of blobs representing the contents of the file, Each of the blobs in the list contains a representation of a fragment of the file within the content, and the fragment is the organization of the file.
실시예의 플랫폼은 복수의 에이전트를 사용하여 클라이언트 장치들 중에서 내용의 전송을 제어한다.The platform of the embodiment uses a plurality of agents to control the transfer of content among the client devices.
실시예의 플랫폼은 복수의 에이전트를 사용하여 클라이언트 장치들중에서 내용의 동기화를 제어하는데, 상기 내용의 동기화는 내용에서의 변경에 응답하여 내용을 동기화하는 것을 포함한다.The platform of the embodiment controls the synchronization of content among the client devices using a plurality of agents, the synchronization of which includes synchronizing the content in response to a change in content.
실시예의 내용의 전송은 블록-레벨, 내용의 비-순차적 전송을 포함한다.The transmission of the contents of the embodiment includes block-level, non-sequential transmission of content.
실시예의 내용의 전송은 내용의 제1 블록을 제2 클라이언트 장치에서 제1 클라이언트 장치로 전송하는 것 및 내용의 제2 블록을 제3 클라이언트 장치에서 제1 클라이언트 장치로 전송하는 것을 포함한다.The transfer of the contents of 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 device.
실시예의 복수의 태스크는 스캔 태스크를 포함한다.The plurality of tasks of the embodiment include scan tasks.
실시예의 스캔 태스크는 에이전트에 대응하는 라이브러리를 회귀적으로 모니터링하고, 라이브러리에서 임의의 변경을 플랫폼으로 보고하는 에이전트를 포함한다.The scan task of the embodiment includes an agent that regressively monitors the library corresponding to the agent and reports any changes from the library to the platform.
실시예의 보고는 에이전트를 호스팅하는 클라이언트 장치의 로컬 데이터베이스에서의 변경을 포함하는 라이브러리의 파일을 위치시키는 것 및 로컬 데이터베이스의 메타데이터를 플랫폼에 제공하는 것을 포함한다.The reporting of embodiments includes locating the files of the library that contain changes in the local database of the client device hosting the agent and providing metadata of the local database to the platform.
실시예의 복수의 태스크는 기재 태스크를 포함한다.The plurality of tasks of the embodiment include the described tasks.
실시예의 기재 태스크는 파일의 적어도 하나의 블로브를 제1 위치에서 제2 위치로 복사하는 에이전트를 포함하는데, 제1 위치와 제2 위치의 각각은 그리드와 연결된 클라이언트 장치들에 대응한다.Describing an embodiment includes an agent that copies at least one blob of a file from a first location to a second location, wherein each of the first location and the second location corresponds to client devices associated with the grid.
실시예의 적어도 하나의 블로브는 내용에서의 파일의 단편에 대한 표시를 포함하는데, 단편은 파일의 구성이다.At least one blob of an embodiment includes an indication of a fragment of the file in the content, wherein the fragment is a configuration of the file.
실시예의 기재 태스크는 완성의 조건을 포함한다.The described tasks of the embodiment include the conditions of completion.
실시예의 완성의 조건은 기재 태스크에 대응하는 블로브를 복구하는 것과 정확한 파일에 대응하는 기재 태스크 동안 중복기재되될 블로브를 식별하는 것 중 적어도 하나를 포함한다.The conditions of completion of the embodiment include at least one of restoring the blob corresponding to the written task and identifying the blob to be duplicated during the written task corresponding to the correct file.
실시예의 복수의 태스크는 에이전트에 의해 액세스 가능한 장치로부터 내용의 표시를 원격 저장 장치로 복사하는 것을 포함하는 업로드 태스크를 포함한다.The plurality of tasks of the embodiment include an upload task that includes copying an indication of content from a device accessible by the agent to a remote storage device.
실시예의 에이전트는 파일의 에이전트에 의해 액세스 가능한 내용에 추가하는 것을 플랫폼에 보고하고, 이에 응답하여, 플랫폼은 태스크를 에이전트에 할당하여 파일을 업로드한다.The agent of the embodiment reports to the platform what to add to the content accessible by the agent of the file, and in response, the platform assigns the task to the agent to upload the file.
태스크에 응답하여, 실시예의 에이전트는, 파일이 원격 저장 장치에 존재하는지를 결정하고, 파일이 존재하지 않다고 결정되면, 파일의 표시를 원격 저장 장치에 업로드한다.In response to the task, the agent of the embodiment determines if the file is present in the remote storage device and, if it is determined that the file does not exist, uploads an indication of the file to the remote storage device.
실시예의 업로드 태스크는 파일의 적어도 하나의 블로브를 에이전트에 의해 액세스 가능한 장치에서 원격 저장 장치로 복사하는 에이전트를 포함한다.The upload task of the embodiment includes an agent that copies at least one blob of the file from the device accessible by the agent to the remote storage device.
실시예의 적어도 하나의 블로브는 파일의 단편의표시를 포함하는데, 단편은 파일의 구성이다.At least one blob of an embodiment includes an indication of a fragment of the file, wherein the fragment is a configuration of the file.
실시예의 복수의 태스크는 삭제 태스크를 포함한다.The plurality of tasks of the embodiment include delete tasks.
실시예의 태스크는 대기, 펜딩 및 완성 중 하나를 포함하는 복수의 상태를 포함하는데, 플랫폼은 복수의 태스크의 각 태스크의 상태를 추적한다.A task of an embodiment includes a plurality of states including one of waiting, pending, and completed, wherein the platform tracks the state of each task of the plurality of tasks.
실시예의 각 에이전트는 에이전트에 할당된 클라이언트 장치 태스크에서 로컬하게 유지한다.Each agent in the embodiment maintains locally in the client device task assigned to the agent.
실시예의 에이전트는 할당된 태스크를 식별하기 위해 플랫폼을 주기적으로 폴링한다.The agent of the embodiment periodically polls the platform to identify assigned tasks.
실시예의 에이전트는 태스크를 완성하는데 필요하고, 원격 장치에 위치된 태스크 정보를 찾기 위한 계층(hierarchy)를 포함한다.The agent of the embodiment is required to complete the task and includes a hierarchy for locating task information located at the remote device.
실시예의 계층은 에이전트를 호스팅하는 클라이언트 장치의 로컬 데이터베이스를 검색하는 에이전트를 포함한다.The layer of embodiments includes an agent that retrieves a local database of client devices hosting the agent.
실시예의 계층은 태스크 정보를 찾기 위해, 복수의 에이전트의 적어도 하나의 피어 에이전트와 통신하는 에이전트를 포함한다.The layer of the embodiment includes an agent that communicates with at least one peer agent of the plurality of agents to find task information.
실시예의 에이전트는 태스크 정보를 소유한 피어 에이전트의 실체를 포함한다.The agent of the embodiment includes the entity of the peer agent that owns the task information.
실시예의 계층은 원격 저장 장치로부터 태스크 정보를 복구하는 에이전트를 포함한다.The layer of embodiments includes an agent for recovering task information from a remote storage device.
실시예의 에이전트는 주문된 리스트 내의 피어 에이전트의 실체를 플랫폼으로부터 복구하고, 주문된 리스트에 따라 태스크 정보를 검색한다.The agent of the embodiment retrieves the entity of the peer agent in the ordered list from the platform and retrieves the task information according to the ordered list.
실시예의 각 에이전트는 병렬로 실행하는 복수의 구성을 포함한다.Each agent in the embodiment includes a plurality of configurations that execute in parallel.
실시예의 복수의 구성은 상기 플랫폼으로부터 상기 에이전트에 대해 지정된 태스크를 복구하고 에이전트를 호스팅하는 클라이언트 장치에 국한된 태스크 데이터베이스에 복구된 태스크를 저장하는 제공자 구성을 포함한다.The plurality of configurations of embodiments include a provider configuration for recovering a task designated for the agent from the platform and storing the recovered task in a task database local to the client device hosting the agent.
실시예의 복수의 구성은 태스크 실행 구성을 포함한다.The plurality of configurations of the embodiment include a task execution configuration.
실시예의 복수의 구성은 태스크 데이터베이스를 모니터하고, 상기 태스크 데이터베이스로부터 각 태스크를 복구하며, 복구된 태스크를 태스크 실행 구성으로 제공하며, 상기 복구된 태스크를 지정하여 펜딩 상태를 갖도록 하는 러너(runner) 구성을 포함한다.The plurality of configurations of the embodiment include a runner configuration for monitoring a task database, recovering each task from the task database, providing the recovered task as a task execution configuration, and designating the recovered task to have a pending status .
실시예의 태스크 실행 구성은 태스크를 실행하고, 태스크 실행 상태를 상기 러너 구성에 보고한다.The task execution configuration of the embodiment executes the task and reports the task execution status to the runner configuration.
실시예의 러너 구성은 상태를 태스크 데이터베이스에 보고한다.The runner configuration of the embodiment reports the status to the task database.
실시예의 복수의 구성은 완성된 상태를 갖는 태스크에 대한 태스크 데이터베이스를 모니터하고, 완성된 태스크의 상태 정보를 상기 플랫폼으로 보고하는 업데이트 구성을 포함한다.The plurality of configurations of the embodiment include an update configuration for monitoring a task database for a task having a completed status and reporting the status information of the completed task to the platform.
실시예의 플랫폼은 상태 정보에 응답하여 복수의 데이터베이스를 업데이트한다. The platform of the embodiment updates a plurality of databases in response to status information.
실시예의 메타데이터는 복수의 에이전트에 의해 생성되는데, 에이전트에 의해 생성된 메타데이터는 에이전트가 액세스한 내용에 대응한다.The metadata of the embodiment is generated by a plurality of agents, wherein the metadata generated by the agent corresponds to the contents accessed by the agent.
실시예의 에이전트는 에이전트가 액세스한 각 파일의 내용을 스캐닝함에 의해 메타데이터를 생성한다.The agent of the embodiment generates the metadata by scanning the contents of each file accessed by the agent.
실시예의 에이전트는 파일의 내용을 복수의 단편으로 분할함에 의해 메타데이터를 생성하는데, 각 단편은 파일의 다양한 크기 구성을 포함한다.The agent of the embodiment creates metadata by dividing the contents of the file into a plurality of fragments, each fragment comprising a different size configuration of the file.
실시예의 다양한 크기 단편은 미리-특정된 최소 길이와 최대 길이 사이에 있다.The various size fragments of the embodiment are between a pre-specified minimum length and a maximum length.
실시예의 에이전트는 복수의 단편을 나타내는 복수의 블로브를 생성함에 의해 메타데이터를 생성하는데, 각 블로브는 단편을 나타낸다.The agent of the embodiment generates metadata by creating a plurality of blobs representing a plurality of fragments, each blob representing a fragment.
실시예의 에이전트는, 내용의 각 바이트에 대해 내용의 구성에 걸쳐 해시 알고리즘을 실행하는 데이터 핑거프린팅 알고리즘을 사용하여 복수의 블로브를 생성하는데, 해시 알고리즘은 데이터의 특정 패턴을 식별하도록 설정된다.The agent of the embodiment generates a plurality of blobs using a data fingerprinting algorithm that executes a hash algorithm over the content structure for each byte of content, the hash algorithm being set to identify a specific pattern of data.
실시예의 블로브를 생성하는 것은 포인트에서 해시의 값을 포함하는 블로브의 설명을 생성하는 것을 포함하는데, 블로브에 의해 나타난 단편은 파일의 나머지 부분으로부터 분리되었다.Generating a blob in an embodiment involves generating a description of the blob that contains the value of the hash at the point where the fragment represented by the blob has been separated from the rest of the file.
실시예의 블로브를 생성하는 것은 블로브에 의해 나타난 단편의 브레이크 포인트에 기초하여 오프셋 값을 생성하는 것을 포함한다.Generating a blob in an embodiment includes generating an offset value based on a breakpoint of the fragment represented by the blob.
실시예의 블로브의 생성하는 것은 블로브의 완전한 내용의 해시를 생성하는 것을 포함하는데, 블로브의 완전한 내용의 해시는 블로브의 식별자이다.Generating a blob in an embodiment involves generating a hash of the complete content of the blob, wherein the hash of the complete content of the blob is the identifier of the blob.
실시예의 블로브의 생성은 파일의 내용을 나타내는 블로브의 리스트를 생성하는 것을 포함한다.The generation of a blob in an embodiment includes generating a list of blobs representing the contents of the file.
실시예의 블로브의 생성하는 것은 파일의 내용을 나타내는 블로브의 리스트의 해시를 포함하는 내용 해시를 생성하는 것을 포함하는데, 내용 해시는 파일에 대한 식별자이다.Generating a blob in an embodiment includes generating a content hash that includes a hash of the list of blobs representing the contents of the file, wherein the content hash is an identifier for the file.
실시예의 블로브의 생성하는 것은 파일에 대응하는 파일 이름의 해시를 포함하는 이름 해시를 생성하는 것을 포함한다.Generating a blob in an embodiment includes generating a name hash containing a hash of the filename corresponding to the file.
실시예의 블로브의 생성하는 것은 내용 해시와 이름 해시의 조합의 해시를 포함하는 파일 해시를 생성하는 것을 포함한다.Generating a blob in an embodiment includes generating a file hash that includes a hash of a combination of a content hash and a name hash.
실시예의 블로브의 생성하는 것은 파일 이름의 해시 및 파일의 내용에 대응하는 파일 경로를 포함하는 경로 해시를 생성하는 것을 포함한다.The generating of the blob of the embodiment includes generating a path hash that includes a hash of the file name and a file path corresponding to the contents of the file.
실시예의 블로브의 생성하는 것은 파일의 파일 메타데이터의해시를 포함하는 메타데이터 해시를 생성하는 것을 포함한다.Generating a blob in an embodiment includes generating a metadata hash containing a poem by file metadata of the file.
실시예의 플랫폼은 파일에 대한 기록을 생성하고, 기록은 파일의 블로브 해시, 내용 해시,파일 해시, 경로 해시 및 메타데이터 해시를 포함한다.The platform of the embodiment creates a record for the file, and the record includes a blob hash of the file, a content hash, a file hash, a path hash, and a metadata hash.
실시예의 복수의 데이터베이스는 라이브러리 데이터베이스를 포함하는데, 라이브러리 데이터베이스는 기록을 포함한다.The plurality of databases of the embodiment includes a library database, which includes records.
실시예의 블로브를 생성하는 것은 블로브의 크기를 생성하는 것을 포함한다.Generating a blob in an embodiment includes generating the size of the blob.
실시예의 파일은 파일을 포함하는 블로브의 리스트로서 기술된다.The file of the embodiment is described as a list of blobs containing the file.
실시예의 각 에이전트는 에이전트를 호스팅하는 클라이언트 장치에서 로컬하게 블로브를 저장하고, 이전에 보고되지 않은 블로브를 플랫폼의 중앙 저장소로 전송한다.Each agent in the embodiment stores the blob locally in the client device hosting the agent and sends the previously unreported blob to the central repository of the platform.
본 명세서에 기술된 실시예는 복수의 데이터와 연결된 프로세서를 포함하는 플랫폼을 포함하는 시스템을 포함한다. 시스템은 플랫폼에 연결된 복수의 에이전트를 포함하는 그리드를 포함한다. 복수의 에이전트의 각 에이전트는 클라이언트 장치에서 실행되는 플랫폼의 에이전트이다. 시스템은 복수의 에이전트에 대응하는 복수의 클라이언트 장치에 의해 액세스 가능한 메모리의 내용의 메타데이터이다. 에이전트는 내용의 복수의 단편을 해싱함에 의해내용에 대응하는 메타데이터를 생성하고, 플랫폼에 제공한다. 플랫폼은 내용 대신에 메타데이터를 사용하여 내용의 저장, 전송 및 프로세싱 중 적어도 하나를 제어하는 태스크를 포함하는 복수의 태스크를 생성하고, 복수의 에이전트에 할당한다. 태스크는 태스크를 담당하는 에이전트에 의해 액세스 가능한 내용에 수행된 프로세싱 작업이다.The embodiment described herein includes a system including a platform including a processor coupled to a plurality of data. The system includes a grid comprising a plurality of agents coupled to the platform. Each agent of a plurality of agents is an agent of a platform running on the client device. A system is metadata of the contents of a memory accessible by a plurality of client devices corresponding to a plurality of agents. The agent generates the metadata corresponding to the content by hashing a plurality of fragments of the content and provides it to the platform. The platform creates a plurality of tasks including assigning tasks to the plurality of agents, including tasks for controlling at least one of storing, transmitting, and processing content using metadata instead of content. A task is a processing task performed on content accessible by the agent responsible for the task.
본 명세서에 기술된 실시예는, q고수의 데이터베이스에 연결된 프로세서를 포함하는 플랫폼과, 플랫폼에 연결된 복수의 에이전트를 포함하는 그리드 - 복수의 에이전트의 각 에이전트느 클라이언트 장치상에서 실행되는 플랫폼의 에이전트 - 와, 복수의 에이전트에 대응하는 복수의 클라이언트 장치에 의해 액세스 가능한 메모리의 내용의 메타데이터 - 에이전트는 내용의 복수의 단편을 해싱함에 의해 내용에 대응하는 메타데이터를 생성하고 플랫폼에 제공하고, 플랫폼은 내용 대신에 메타데이터를 사용하여 내용의 저장, 전송 및 프로세싱 중 적어도 하나를 제어하는 태스크를 포함하는 복수의 태스크를 생성하고 복수의 에이전트에 할당하며, 태스크는 태스크를 담당하는 에이전트에 의해 액세스 가능한 내용에 수행된 프로세싱 작업임 - 를 포함하는 시스템을 포함한다.Embodiments described herein provide a platform comprising a processor coupled to a q-numbered database, a grid comprising a plurality of agents coupled to the platform, an agent of a platform running on each agent or client device of the plurality of agents, , A metadata-agent of the contents of a memory accessible by a plurality of client devices corresponding to a plurality of agents generates and provides to the platform metadata corresponding to the content by hashing a plurality of fragments of the content, Instead, it uses metadata to create and assign to a plurality of tasks a plurality of tasks including tasks that control at least one of storage, transmission and processing of content, wherein the tasks are stored in content accessible by the agent responsible for the task Is a processing operation performed Including the system.
본 명세서에 기술된 실시예는 복수의 데이터베이스에 연결된 프로세스를 포함하는 플랫폼을 포함하는 시스템을 포함한다. 시스템은 플랫폼에 연결된 복수의 에이전트를 포함하는 그리드를 포함한다. 복수의 에이전트의 각 에이전트는 클라이언트 장치상에서 실행되는 플랫폼의 에이전트이다. 각 클라이언트 장치의 각 에이전트는 클라이언트 장치에 의해 액세스 가능한 메모리의 내용의 메타데이터를 플랫폼에 제공한다. 플랫폼은 메타데이터를 사용하여, 내용의 위치를 결정하고, 내용의 상태를 유지하기 위해 작업을 나타내는 목표를 생성하고, 목표에 대응하는 복수의 태스크를 생성하며, 태스크에 대응하는 내용에 액세스하는 에이전트에 각 태스크를 할당한다. 태스크는 에이전트에 의해 액세스 가능한 내용에, 에이전트에 의해 수행될 플랫폼에 의해 지시된 프로세싱 작업이다. 복수의 에이전트에 의해 제공되는 메타데이터는 복수의 에이전트에 의해 수행되는 복수의 태스크의 정보를 포함한다.The embodiments described herein include systems that include a platform that includes a process coupled to a plurality of databases. The system includes a grid comprising a plurality of agents coupled to the platform. Each agent of a plurality of agents is an agent of the platform running on the client device. Each agent in each client device provides the platform with metadata of the contents of the memory accessible by the client device. The platform uses metadata to determine the location of the content, to create a target representing the task to maintain the state of the content, to create a plurality of tasks corresponding to the target, and to access the content corresponding to the task To each task. A task is a processing task indicated by a platform to be executed by an agent, with contents accessible by the agent. Metadata provided by a plurality of agents includes information of a plurality of tasks performed by a plurality of agents.
본 명세서에 기술된 실시예는, 복수의 데이터베이스에 연결된 프로세스를 포함하는 플랫폼과, 플랫폼에 연결된 복수의 에이전트를 포함하는 그리드 - 복수의 에이전트의 각 에이전트는 클라이언트 장치상에서 실행되는 플랫폼의 에이전트이고, 각 클라이언트 장치의 각 에이전트는 클라이언트 장치에 의해 액세스 가능한 메모리의 내용의 메타데이터를 플랫폼에 제공하며, 플랫폼은 메타데이터를 사용하여, 내용의 위치를 결정하고, 내용의 상태를 유지하기 위해 작업을 나타내는 목표를 생성하고, 목표에 대응하는 복수의 태스크를 생성하며, 태스크에 대응하는 내용에 액세스하는 에이전트에 각 태스크를 할당하고, 태스크는 에이전트에 의해 액세스 가능한 내용에, 에이전트에 의해 수행될 플랫폼에 의해 지시된 프로세싱 작업이며, 복수의 에이전트에 의해 제공되는 메타데이터는 복수의 에이전트에 의해 수행되는 복수의 태스크의 정보를 포함함 - 를 포함하는 시스템을 포함한다.The embodiment described herein is based on a platform comprising a process connected to a plurality of databases and each agent of a grid-plurality of agents comprising a plurality of agents connected to the platform is an agent of the platform running on the client device, Each agent of the client device provides metadata of the contents of the memory accessible by the client device to the platform and the platform uses the metadata to determine the location of the content, Assigns each task to an agent that accesses the content corresponding to the task, and wherein the task is configured to cause the agent to access content that is accessible by the agent, Processing tasks, It includes a system that includes - provided by the metadata includes information of a plurality of tasks to be performed by a plurality of agents.
본 명세서에 기술된 실시예는 복수의 데이터베이스에 연결된 프로세서를 포함하는 플랫폼을 포함하는 시스템을 포함한다. 시스템은 플랫폼에 연결된 복수의 에이전트를 포함하는 그리드를 포함한다. 복수의 에이전트의 각 에이전트는 클라이언트 장치상에서 실행되는 플랫폼의 에이전트이다. 시스템은 복수의 에이전트에 대응하는 복수의 클라이언트 장치에 의해 액세스 가능한 메모리의 내용의 메타데이터를 포함한다. 각 에이전트는 에이전트가 액세스한 내용에 대응하는 메타데이터를 생성하고 플랫폼에 제공한다. 각 에이전트는 내용의 복수의 단편을 해싱함에 의해 메타데이터를 생성하여, 복수의 단편을 나타내는 복수의 블로브를 생성한다. 플랫폼은 내용 대신에 메타데이터를 사용하여, 복수의 태스크를 생성하고 복수의 에이전트에 할당한다. 태스크는 태스크를 담당하는 에이전트에 의해 액세스 가능한 내용에 수행된 프로세싱 작업이다. 복수의 태스크는 내용을 모니터, 저장, 전송 및 프로세스 중 적어도 하나를 하는 태스크를 포함한다.The embodiment described herein includes a system including a platform including a processor coupled to a plurality of databases. The system includes a grid comprising a plurality of agents coupled to the platform. Each agent of a plurality of agents is an agent of the platform running on the client device. The system includes metadata of the contents of a memory accessible by a plurality of client devices corresponding to a plurality of agents. Each agent generates metadata corresponding to the contents accessed by the agent and provides it to the platform. Each agent generates metadata by hashing a plurality of fragments of content to generate a plurality of blobs representing a plurality of fragments. The platform uses metadata instead of content to create multiple tasks and assign them to multiple agents. A task is a processing task performed on content accessible by the agent responsible for the task. A plurality of tasks includes tasks that perform at least one of monitoring, storing, transmitting, and processing content.
본 명세서에 기술된 실시에는, 복수의 데이터베이스에 연결된 프로세서를 포함하는 플랫폼과, 플랫폼에 연결된 복수의 에이전트를 포함하는 그리드 - 복수의 에이전트의 각 에이전트는 클라이언트 장치상에서 실행되는 플랫폼의 에이전트이고, 복수의 에이전트에 대응하는 복수의 클라이언트 장치에 의해 액세스 가능한 메모리의 내용의 메타데이터를 포함하며, 각 에이전트는 에이전트가 액세스한 내용에 대응하는 메타데이터를 생성하고 플랫폼에 제공하고, 각 에이전트는 내용의 복수의 단편을 해싱함에 의해 메타데이터를 생성하여, 복수의 단편을 나타내는 복수의 블로브를 생성하고, 플랫폼은 내용 대신에 메타데이터를 사용하여, 복수의 태스크를 생성하고 복수의 에이전트에 할당하며, 태스크는 태스크를 담당하는 에이전트에 의해 액세스 가능한 내용에 수행된 프로세싱 작업이고, 복수의 태스크는 내용을 모니터, 저장, 전송 및 프로세스 중 적어도 하나를 하는 태스크를 포함 - 를 포함하는 시스템을 포함한다.The implementation described herein includes a platform including a processor coupled to a plurality of databases and a grid comprising a plurality of agents coupled to the platform, wherein each agent of the plurality of agents is an agent of a platform running on the client device, Wherein the metadata includes metadata of the contents of a memory accessible by a plurality of client devices corresponding to the agent, each agent generating and providing metadata to the platform corresponding to the content accessed by the agent, Generating a plurality of blobs representing a plurality of fragments by hashing the fragments and generating a plurality of blobs representing the plurality of fragments, wherein the platform generates a plurality of tasks and assigns them to a plurality of agents by using metadata instead of contents, Accessed by the agent responsible for the task Includes a system including a-and a processing operation performed in the information as possible, a plurality of tasks including the tasks of monitoring, storing, at least one of transmit and process the information.
본 명세서에 기술된 실시예는 프로세서를 포함하는 플랫폼을 복수의 데이터베이스에 연결하는 단계를 포함한다. 본 방법은 복수의 에이전트를 플랫폼에 연결함에 의해 그리드를 형성하는 단계를 포함한다. 복수의 에이전트의 각 에이전트는 클라이언트 장치상에서 실행되는 플랫폼의 에이전트이다. 본 방법은 각 에이전트에서 메타데이터를 생성하고, 내용 대신에 메타데이터를 플랫폼에 제공하는 단계를 포함한다. 메타데이터는 복수의 에이전트에 대응하는 복수의 클라이언트 장치에 의해 액세스 가능한 메모리의 내용에 대응한다. 본 방법은 메타데이터로 내용의 위치를 결정하는 단계를 포함한다. 본 방법은 내용의 상태를 유지하기 위한 작업을 나타내는 메타데이터를 가진 목표를 생성하는 단계를 포함한다. 본 방법은 메타데이터로 목표에 대응하는 복수의 태스크를 생성하는 단계를 포함한다. 본 방법은 태스크에 대응하는 내용에 액세스하는 에이전트에 각 태스크를 할당하는 단계를 포함한다. 각 태스크는 에이전트에 의해 액세스 가능한 내용에, 플랫폼에 의해 지시되어 에이전트에 의해 수행되는 프로세싱 작업이다.The embodiments described herein include coupling a platform comprising a processor to a plurality of databases. The method includes forming a grid by connecting a plurality of agents to a platform. Each agent of a plurality of agents is an agent of the platform running on the client device. The method includes creating metadata in each agent and providing metadata to the platform instead of content. The metadata correspond to contents of a memory accessible by a plurality of client apparatuses corresponding to a plurality of agents. The method includes determining the location of the content with metadata. The method includes generating a goal with metadata representing a task for maintaining a state of content. The method includes generating a plurality of tasks corresponding to a target with metadata. The method includes assigning each task to an agent accessing content corresponding to the task. Each task is a processing task that is instructed by the platform and performed by the agent on content accessible by the agent.
본 명세서에 기술된 실시예는 프로세서를 포함하는 플랫폼을 복수의 데이터베이스에 연결하는 단계와, 복수의 에이전트를 플랫폼에 연결함에 의해 그리드를 형성하는 단계 - 복수의 에이전트의 각 에이전트는 클라이언트 장치상에서 실행되는 플랫폼의 에이전트 임 - 와, 각 에이전트에서 메타데이터를 생성하고, 내용 대신에 메타데이터를 플랫폼에 제공하는 단계 - 메타데이터는 복수의 에이전트에 대응하는 복수의 클라이언트 장치에 의해 액세스 가능한 메모리의 내용에 대응함 - 와, 메타데이터로 내용의 위치를 결정하는 단계와, 내용의 상태를 유지하기 위한 작업을 나타내는 메타데이터를 가진 목표를 생성하는 단계와, 메타데이터로 목표에 대응하는 복수의 태스크를 생성하는 단계와, 및 태스크에 대응하는 내용에 액세스하는 에이전트에 각 태스크를 할당하는 단계 - 각 태스크는 에이전트에 의해 액세스 가능한 내용에, 플랫폼에 의해 지시되어 에이전트에 의해 수행되는 프로세싱 작업임 - 를 포함하는 방법을 포함한다.The embodiment described herein includes connecting a platform including a processor to a plurality of databases, forming a grid by connecting a plurality of agents to a platform, each agent of a plurality of agents executing on a client device - generating metadata in each agent and providing metadata to the platform in place of contents, the metadata corresponding to contents of a memory accessible by a plurality of client devices corresponding to a plurality of agents; - determining a location of the content with metadata, creating a target having meta data representing a task for maintaining the state of the content, generating a plurality of tasks corresponding to the target with metadata, And an agent accessing the content corresponding to the task Assigning a disk-includes a method including the - each task to an accessible information by the agent, is indicated by the platform, the processing operation being performed by the agents.
본 방법은 복수의 에이전트에 대한 마스터 제어기로서 작동하는 플랫폼을 포함하되, 복수의 에이전트는 복수의 태스크에 의해 제어되는 대로, 플랫폼과 상호 동작한다.The method includes a platform operating as a master controller for a plurality of agents, wherein the plurality of agents interact with the platform as controlled by the plurality of tasks.
본 방법은 플랫폼 및 복수의 에이전트의 다른 에이전트와 독립적으로 기능하는 복수의 에이전트의 각 에이전트를 포함한다.The method includes each agent of a plurality of agents functioning independently of the platform and other agents of the plurality of agents.
본 방법은 내용을 수신하는 대신에, 내용의 메타데이터를 수신하는 플랫폼을 포함하되, 복수의 에이전트를 호스팅하는 복수의 클라이언트 장치는 내용을 포함하는 분산형 저장 장치를 포함한다.The method includes, instead of receiving content, a platform for receiving metadata of content, wherein a plurality of client devices hosting a plurality of agents comprises a distributed storage device containing content.
본 방법은 복수의 데이터베이스에서 메타데이터를 사용하여, 복수의 에이전트의 내용의 마스터 인덱스를 유지시키는 플랫폼을 포함한다.The method includes using a metadata in a plurality of databases to maintain a master index of the contents of a plurality of agents.
실시예의 메타데이터는 내용의 위치에 대한 데이터를 포함한다.The metadata of the embodiment includes data on the location of the contents.
실시예의 메타데이터는 내용의 상태에 대한 데이터를 포함한다.The metadata of the embodiment includes data on the status of the contents.
실시예의 메타데이터는 복수의 에이전트의 실체에 대한 데이터를 포함한다.The metadata of the embodiment includes data for the entities of a plurality of agents.
실시예의 메타데이터는 각 에이전트가 액세스하는 내용에 대한 데이터를 포함한다.The metadata of the embodiment includes data about contents that each agent accesses.
실시예의 메타데이터는 복수의 에이전트에 의해 수행된 복수의 태스크의 정보를 포함한다.The metadata of the embodiment includes information of a plurality of tasks performed by a plurality of agents.
실시예의 태스크는 그리드에 걸쳐 내용의 위치를 추적하는 것과 관련된다.The tasks of an embodiment involve tracking the location of content across a grid.
실시예의 태스크는 그리드에 걸쳐 내용의 저장을 관리하는 것과 관련된다.The tasks of the embodiment involve managing storage of content across a grid.
실시예의 태스크는 그리드에 걸쳐 내용의 이동을 관리하는 것과 관련된다.The tasks of the embodiment involve managing the movement of content across the grid.
실시예의 태스크는 그리드에 걸쳐 내용의 프로세싱을 관리하는 것과 관련된다.The tasks of an embodiment involve managing the processing of content across a grid.
실시예의 각 태스크는 태스크에 대한 완성의 조건을 포함한다.Each task in the embodiment includes a condition of completion for the task.
본 방법은 플랫폼에 의해 지시된 대로, 내용을 집합적으로 모니터링하는 복수의 에이전트를 포함한다.The method includes a plurality of agents collectively monitoring content as directed by the platform.
본 방법은 플랫폼에 의해 지시된 대로, 내용을 집합적으로 저장하는 복수의 에이전트를 포함한다.The method includes a plurality of agents collectively storing content, as indicated by the platform.
본 방법은 플랫폼에 의해 지시된 대로, 내용을 집합적으로 전송하는 복수의 에이전트를 포함한다.The method includes a plurality of agents collectively transmitting content as indicated by the platform.
본 방법은 플랫폼에 의해 지시된 대로, 내용에 대해 프로세싱 작업을 집합적으로 수행하는 복수의 에이전트를 포함한다.The method includes a plurality of agents collectively performing processing operations on content, as indicated by the platform.
본 방법은 클라이언트 장치에 의해 액세스 가능한 메모리의 내용을 인덱싱하는 각 클라이언트 장치의 각 에이전트를 포함한다.The method includes each agent of each client device indexing the contents of memory accessible by the client device.
실시예의 복수의 데이터베이스는 플랫폼에 사용가능한 에이전트와 각 에이전트의 정보를 포함하는 에이전트 데이터베이스를 포함한다.The plurality of databases of the embodiment includes an agent available to the platform and an agent database containing information of each agent.
실시예의 각 에이전트는 적어도 하나의 라이브러리를 포함하되, 라이브러리는 에이전트가 판독 액세스와 기재 액세스 중 적어도 하나를 포함하는 액세스하는 장치를 나타낸다.Each agent in an embodiment includes at least one library, wherein the library represents an accessing device wherein the agent includes at least one of a read access and a write access.
실시예의 복수의 데이터베이스는 복수의 에이전트에 대응하는 라이브러리의 리스트를 포함하는 라이브러리 데이터베이스를 포함하되, 그리드의 각 라이브러리는 라이브러리 데이터베이스에 별도로 나타낸다.The plurality of databases of the embodiment includes a library database including a list of libraries corresponding to a plurality of agents, wherein each library of the grid is separately displayed in the library database.
본 방법은 에이전트에 대응하는 각 라이브러리에 액세스하는 각 에이전트를 포함한다.The method includes each agent accessing each library corresponding to an agent.
실시예의 복수의 데이터베이스는 목표의 리스트를 포함하는 목표 데이터베이스를 포함하되, 목표의 리스트의 각 목표는 플랫폼에 의해 생성되고, 적어도 하나의 라이브러리에 대응하며, 목표는 대응하는 라이브러리 내용에 대해 작업을 실행하는데 사용된다.The plurality of databases of the embodiment includes a target database containing a list of targets, each target of the list of targets being created by a platform and corresponding to at least one library, the target performing a task on a corresponding library content .
본 방법은 태스크가 수행되는 라이브러리의 집합체를 포함하기 위해 목표의 리스트를 생성하는 단계를 포함한다.The method includes generating a list of targets to include a collection of libraries on which tasks are performed.
실시예의 각 목표는 적어도 하나의 라이브러리에 대응하고, 에이전트에 의해 사용되어서, 대응하는 라이브러리의 내용에 대해 적어도 하나의 태스크를 실행한다.Each target in the embodiment corresponds to at least one library and is used by the agent to execute at least one task against the contents of the corresponding library.
본 방법은 목표를 사용하여 복수의 에이전트의 복수의 라이브러리를 판독하는 플랫폼을 포함한다.The method includes a platform for reading a plurality of libraries of a plurality of agents using a target.
본 방법은 목표를 사용하여 복수의 에이전트에 의해 액세스 가능한 내용에서의 불일치와 차이 중 적어도 하나를 식별하는 플랫폼을 포함한다.The method includes a platform for identifying at least one of an inconsistency and a difference in content accessible by a plurality of agents using a target.
본 방법은 목표를 사용하여 내용에서 식별된 불일치와 차이 중 적어도 하나를 제거하기 위한 적어도 하나의 태스크를 생성하는플랫폼을 포함한다.The method includes a platform for creating at least one task for eliminating at least one of the discrepancies and differences identified in the content using the target.
실시예의 복수의 데이터베이스는 작업 데이터베이스를 포함한다.The plurality of databases of the embodiment includes a task database.
본 방법은 각 에이전트에 대응하는 작업 데이터베이스를 생성하는 플랫폼을 포함하고, 작업 데이터베이스는 대응하는 에이전트에 의해 수행될 태스크를 포함한다.The method includes a platform for creating a task database corresponding to each agent, and the task database includes a task to be performed by a corresponding agent.
실시예의 작업 데이터베이스는 대응하는 에이전트에 의해 수행될 각 태스크의 설명 및 에이전트가 태스크를 수행하기 위해 필요한 정보를 포함한다.The task database of the embodiment includes a description of each task to be performed by the corresponding agent and information necessary for the agent to perform the task.
실시예의 복수의 데이터베이스는 복수의 에이전트의 능력의 정보를 포함하는 능력 데이터베이스를 포함한다.The plurality of databases of the embodiment includes a capability database that includes information of capabilities of a plurality of agents.
실시예의 복수의 데이터베이스는 복수의 에이전트의 기록를 포함하고 유지하는 동기화 데이터베이스를 포함한다.The plurality of databases of the embodiment includes a synchronization database that includes and maintains a record of a plurality of agents.
실시예의 동기화 데이터베이스는 복수의 에이전트의 내용의 파일 상태의 기록을 포함한다.The synchronization database of the embodiment includes a record of the file status of the contents of a plurality of agents.
실시예의 동기화 데이터베이스는 각 파일에 대한 엔트리를 포함하는데, 엔트리는 파일에 대응하는 내용 해시를 포함하고, 내용 해시는 파일의 내용을 나타내는 블로브의 리스트의 해시를 포함하며, 블로브의 리스트의 각 블로브는 내용 내의 파일의 단편의 해시를 포함하며, 단편은 파일의 구성이다.The synchronization database of the embodiment includes an entry for each file, the entry including a content hash corresponding to the file, the content hash containing a hash of the list of blobs representing the contents of the file, The blob contains a hash of the fragment of the file in the content, and the fragment is the configuration of the file.
실시예의 동기화 데이터베이스는 각 에이전트에 대한 엔트리를 포함하고, 엔트리는 에이전트의 파일에 대응하는 내용 해시를 포함하며, 내용 해시는 파일의 내용을 나타내는 블로브의 리스트의 해시를 포함하고, 블로브의 리스트의 각 블로브는 내용 내의 파일의 단편의 해시를 포함하고, 단편은 파일의 구성이다.The synchronization database of the embodiment includes an entry for each agent, the entry includes a content hash corresponding to the file of the agent, the content hash includes a hash of the list of blobs representing the contents of the file, Each blob of the file contains a hash of the fragment of the file in the content, and the fragment is the configuration of the file.
본 방법은 복수의 에이전트를 사용하여 클라이언트 장치 중에 내용의 전송을 제어하는 플랫폼을 포함한다.The method includes using a plurality of agents to control the transmission of content among the client devices.
본 방법은 복수의 에이전트를 사용하여 클라이언트 장치 중에 내용의 동기화를 제어하는 플랫폼을 포함하고, 내용의 동기화는 내용 내의 변경에 응답하여 내용을 동기화하는 것을 포함한다.The method includes using a plurality of agents to control synchronization of content among client devices, wherein the synchronization of content includes synchronizing the content in response to a change in content.
내용의 전송은 블록-레벨, 내용의 비-순차적 전송을 포함한다.The transmission of content includes block-level, non-sequential transmission of content.
내용의 전송은 제2 클라이언트 장치에서 제1 클라이언트 장치로 제1 블록의 내용을 전송하는 단계 및 제3 클라이언트 장치에서 제1 클라이언트 장치로 제2 블록의 내용을 전송하는 단계를 포함한다.The transfer of the contents includes transferring the contents of the first block from the second client device to the first client device and transferring the contents of the second block from the third client device to the first client device.
복수의 태스크는 스캔 태스크를 포함한다.The plurality of tasks include scan tasks.
실시예의 스캔 태스크는 에이전트에 대응하는 라이브러리를 회귀적으로 모니터링하고, 라이브러리에서의 변경을 플랫폼으로 보고하는 에이전트를 포함한다.The scan task of the embodiment includes an agent that regressively monitors the library corresponding to the agent and reports the change in the library to the platform.
보고하는 것은 변경을 포함하는 라이브러이의 파일을 에이전트를 호스팅하는 클라이언트 장치의 로컬 데이터베이스에 위치시키고, 로컬 데이터베이스의 메타데이터를 플랫폼에 제공하는 것을 포함한다. Reporting includes locating the library's file containing the changes in the local database of the client device hosting the agent and providing metadata of the local database to the platform.
복수의 태스크는 기재 태스크를 포함한다.The plurality of tasks include an indicating task.
기재 태스크는 파일의 적어도 하나의 블로브를 제1 위치에서 제2 위치로 복사하는 에이전트를 포함하는데, 제1 위치와 제2 위치 각각은 그리드와 연결된 클라이언트 장치에 대응한다.The described task includes an agent that copies at least one blob of a file from a first location to a second location, wherein each of the first location and the second location corresponds to a client device associated with the grid.
실시예의 적어도 하나의 블로브는 내용 내의 파일의 단편의 해시를 포함하되, 단편은 파일의 구성이다.The at least one blob of the embodiment includes a hash of the fragment of the file in the content, wherein the fragment is a configuration of the file.
실시예의 기재 태스크는 완성의 조건을 포함한다.The described tasks of the embodiment include the conditions of completion.
실시예의 완성의 조건은 기재 태스크에 대응하는 블로브를 수신하는 것 및 정확한 파일에 대응하는 기재 태스크 동안에 중복 기재될 블로브를 식별하는 것 중 적어도 하나를 포함한다.The conditions for completion of the embodiment include at least one of receiving the blob corresponding to the written task and identifying the blob to be duplicated during the writing task corresponding to the correct file.
실시예의 복수의 태스크는 내용의 파일을 에이전트에 의해 액세스 가능한 장치에서 원격 저장 장치로 복사하는 것을 포함하는 업로드 태스크를 포함한다.The plurality of tasks of the embodiment includes an upload task that includes copying a file of content from an agent-accessible device to a remote storage device.
본 방법은 에이전트에 의해 액세스 가능한 내용으로의 파일의 추가를 플랫폼에 보고하는 에이전트를 포함하고, 플랫폼은 보고에 응답하여, 에이전트에 태스크를 할당하여 파일을 업로드한다.The method includes an agent reporting to the platform the addition of a file to content accessible by the agent, wherein the platform, in response to the report, assigns the task to the agent to upload the file.
본 방법은 파일이 원격 저장 장치에 존재하는지를 에이전트가 결정하는 것에 응답하여, 파일이 없는 것으로 결정되면, 파일을 원격 저장 장치에 업로드한다.The method, in response to the agent determining that a file is present on the remote storage device, uploads the file to the remote storage device if it is determined that the file does not exist.
실시예의 업로드 태스크는, 파일의 적어도 하나의 블로브를 에이전트에 의해 액세스 가능한 장치에서 원격 저장 장치로 복사하는 에이전트를 포함한다.The upload task of the embodiment includes an agent that copies at least one blob of the file from the agent accessible device to the remote storage device.
실시예의 적어도 하나의 블로브는 파일의 단편의 해시를 포함하되, 단편은 파일의 구성이다.The at least one blob of the embodiment includes a hash of the fragment of the file, wherein the fragment is a configuration of the file.
실시예의 복수의 태스크는 삭제 태스크를 포함한다.The plurality of tasks of the embodiment include delete tasks.
실시예의 대기, 펜딩 및 완성 중 적어도 하나를 포함하는 복수의 상태를 포함하는 태스크를 포함하고, 플랫폼은 복수의 태스크의 각 태스크의 상태를 추적한다.A task including a plurality of states including at least one of standby, pending, and completion of an embodiment, wherein the platform tracks the state of each task of the plurality of tasks.
본 방법은 클라이언트 장치에서, 에이전트에 할당된 태스크를 로컬하게 유지시키는 각 에이전트를 포함한다.The method includes, in the client device, each agent that locally maintains tasks assigned to the agent.
본 방법은 플랫폼을 주기적으로 폴링하여 할당된 태스크를 식별하는 에이전트를 포함한다.The method includes an agent that periodically polls the platform to identify assigned tasks.
실시예의 에이전트는 태스크를 완성하기에 필요하고, 원격 장치에 위치된 태스크 정보를 찾기 위한 계층을 포함한다.The agent of the embodiment is required to complete the task and includes a layer for locating task information located at the remote device.
실시예의 계층은 에이전트를 호스팅하는 클라이언트 장치의 로컬 데이터베이스를 검색하는 에이전트를 포함한다.The layer of embodiments includes an agent that retrieves a local database of client devices hosting the agent.
실시예의 계층은 태스크 정보를 찾기 위해, 복수의 에이전트의 적어도 하나의 피어 에이전트와 통신하는 에이전트를 포함한다.The layer of the embodiment includes an agent that communicates with at least one peer agent of the plurality of agents to find task information.
실시예의 에이전트는 태스크 정보를 소유하는 피어 에이전트의 실체를 포함한다.The agent of the embodiment includes the entity of the peer agent that owns the task information.
실시예의 계층은 원격 저장 장치로부터 태스크 정보를 복구하는 에이전트를 포함한다.The layer of embodiments includes an agent for recovering task information from a remote storage device.
본 방법은 주문된 리스트 내의 피어 에이전트의 실체를 플랫폼으로부터 수신하고, 주문된 리스트에 따라 태스크 정보를 검색하는 에이전트를 포함한다.The method includes receiving an entity of the peer agent from the platform in an ordered list and retrieving task information according to the ordered list.
실시예의 각 에이전트는 병렬로 실행되는 복수의 구성을 포함한다.Each agent in the embodiment includes a plurality of configurations that are executed in parallel.
실시예의 복수의 구성은, 에이전트를 위해 지정된 태스크를 플랫폼으로부터 복구하고, 테스크 데이터베이스 내의 복구된 태스크를, 에이전트를 호스팅하는 클라이언트 장치로 저장하는 제공자 구성을 포함한다.The plurality of configurations of the embodiment includes a provider configuration that restores the specified task for the agent from the platform and stores the restored task in the task database to the client device hosting the agent.
실시예의 복수의 구성은 태스크 실행 구성을 포함한다.The plurality of configurations of the embodiment include a task execution configuration.
실시예의 복수의 구성은 태스크 데이터베이스를 모니터하고, 각 태스크를 태스크 데이터베이스로부터 복구하며, 복구된 태스크를 태스크 실행 구성으로 제공하고, 복구된 태스크를 펜딩 상태를 갖도록 지정하는 러너 구성을 포함한다.The plurality of configurations of the embodiment includes a runner configuration for monitoring the task database, restoring each task from the task database, providing the restored task as a task execution configuration, and designating the restored task as having a pending status.
본 방법은 태스크를 실행하고, 태스크 실행의 상태를 러너 구성에 보고하는 태스크 실행 굿어을 포함한다.The method includes a task execution good that executes a task and reports the status of the task execution to the runner configuration.
본 방법은 상태를 테스크 데이터베이스에 보고하는 러너 구성을 포함한다.The method includes a runner configuration reporting the status to the task database.
실시예의 복수의 구성은, 태스크가 완성된 상태를 가지는지 태스크 데이터베이스를 모니터하고, 완성된 태스크의 상태 정보를 플랫폼에 보고하는 업데이트 구성을 포함한다.The plurality of configurations of the embodiment includes an update configuration for monitoring the task database to see whether the task has completed status, and reporting the status information of the completed task to the platform.
본 방법은 상태 정보에 응답하여 복수의 데이터베이스를 업데이트하는 플랫폼을 포함한다.The method includes a platform for updating a plurality of databases in response to status information.
본 방법은 메타데이터를 생성하는 복수의 에이전트를 포함하고, 에이전트에 의해 생성된 메타데이터는 에이전트가 액세스한 내용에 대응한다.The method includes a plurality of agents that generate metadata, and the metadata generated by the agent corresponds to the content accessed by the agent.
본 방법은 에이전트가 액세스한 각 파일의 스캐닝 내용에 의해 메타데이터를 생성하는 에이전트를 포함한다.The method includes an agent that generates metadata by the scanning content of each file accessed by the agent.
본 방법은 파일의 내용을 복수의 단편으로 분할함에 의해 메타데이터를 생성하는 에이전트를 포함하고, 각 단편은 파일의 다양한 크기 구성을 포함한다.The method includes an agent that generates metadata by dividing the contents of the file into a plurality of fragments, each fragment comprising a different size configuration of the file.
실시예의 다양한 크기의 단편은 사전-특정된 최소 길이와 최대 길이 사이에 있다.Fragments of various sizes of the embodiment are between the pre-specified minimum and maximum lengths.
본 방법은 복수의 단편을 나타내는 복수의 블로브를 생성함에 의해 메타데이터를 생성하는 에이전트를 포함하고, 각 블로브는 단편을 나타낸다.The method includes an agent that generates metadata by generating a plurality of blobs representing a plurality of fragments, each blob representing a fragment.
본 방법은 블로브 해시를 사용하여 복수의 블로브를 생성하는 에이전트를 포함하고, 블로브 해시는, 내용내의 각 바이트에 대해, 내용의 구성에 걸쳐 해시 알고리즘을 실행하고, 해시 알고리즘은 데이터의 특정된 패턴을 식별하도록 설정된다.The method includes an agent for generating a plurality of blobs using a blob hash, wherein for each byte in the content, the blob hash executes a hash algorithm over the composition of the content, Lt; / RTI >
실시예의 블로브를 생성하는 것은, 블로브에 의해 표현된 단편이 파일의 나머지 부분으로부터 분리되었던 포인트에서 해시의 값을 포함하는 블로브의 설명을 생성하는 것을 포함한다.Generating the blob of an embodiment includes generating a description of the blob that contains the value of the hash at the point at which the fragment represented by the blob has been separated from the rest of the file.
실시예의 블로브를 생성하는 것은 블로브에 의해 나타난 단편의 브레이크 포인트에 기초하여 오프셋 값을 생성하는 것을 포함한다.Generating a blob in an embodiment includes generating an offset value based on a breakpoint of the fragment represented by the blob.
실시예의 블로브를 생성하는 것은 블로브의 완전한 내용의 해시를 생성하는 것을 포함하고, 블로브의 완전한 내용의 해시는 블로브를 위한 식별자이다.Generating a blob in an embodiment includes generating a hash of the complete content of the blob, and the hash of the complete content of the blob is an identifier for the blob.
실시예의 블로브를 생성하는 것은 파일의 내용을 나타내는 블로브의 리스트를 생성하는 것을 포함한다.Generating a blob in an embodiment includes generating a list of blobs that represent the contents of the file.
실시예의 블로브를 생성하는 것은 파일의 내용을 나타내는 블로브의 리스트의 해시를 포함하는 내용 해시를 생성하는 것을 포함하되, 내용 해시는 파일을 위한 식별자이다.Generating a blob in an embodiment includes generating a content hash containing a hash of the list of blobs representing the contents of the file, wherein the content hash is an identifier for the file.
실시예의 블로브를 생성하는 것은 파일에 대응하는 파일 이름의 해시를 포함하는 이름 해시를 생성하는 것을 포함한다.Generating a blob in an embodiment includes generating a name hash containing a hash of the filename corresponding to the file.
실시예의 블로브를 생성하는 것은 내용 해시와 이름 해시의 조합의 해시를 포함하는 파일 해시를 생성하는 것을 포함한다.Generating a blob in an embodiment includes generating a file hash that includes a hash of a combination of a content hash and a name hash.
실시예의 블로브를 생성하는 것은 파일 이름의 해시와 파일의 내용에 대응하는 파일 경로를 포함하는 경로 해시를 생성하는 것을 포함한다.Generating a blob in an embodiment includes generating a path hash that includes a hash of the file name and a file path corresponding to the contents of the file.
실시예의 블로브를 생성하는 것은 파일의 파일 메타데이터의 해시를 포함하는 메타데이터 해시를 생성하는 것을 포함한다.Generating a blob in an embodiment includes generating a metadata hash that includes a hash of the file metadata of the file.
본 방법은 파일에 대힌 기록을 생성하는 플랫폼을 포함하고, 기록은 파일의 블로브 해시, 내용 해시, 파일 해시, 경로 해시 및 메타데이터 해시를 포함한다.The method includes a platform for generating a record for a file, the record including a blob hash of the file, a content hash, a file hash, a path hash, and a metadata hash.
실시예의 복수의 데이터베이스는 라이브러리 데이터베이스를 포함하되, 라이브러리 데이터베이스는 기록을 포함한다.The plurality of databases of the embodiment includes a library database, wherein the library database includes records.
실시예의 블로브를 생성하는 것은 블로브의 크기를 생성하는 것을 포함한다.Generating a blob in an embodiment includes generating the size of the blob.
실시예의 파일은 파일을 포함하는 블로브의 리스트대로 설명된다.The file of the embodiment is described as a list of blobs containing the file.
본 방법은 에이전트를 호스팅하는 클라이언트 장치에 로컬하게 블로브를 저장하고, 이전에 보고되지 않은 블로브를 플랫폼의 중앙 저장소에 전송하는 각 에이전트를 포함한다.The method includes each agent storing a blob locally at the client device hosting the agent and transmitting the previously unreported blob to the central repository of the platform.
플랫폼은 정책 데이터베이스와 규칙 엔진을 포함한다.The platform includes a policy database and a rules engine.
본 방법은 내용의 각 파일을 분석하는 것을 포함한다.The method includes analyzing each file of content.
본 방법은 내용의 각 파일을 사업 내용과 개인 내용 중 적어도 하나로 기술하는 것을 포함한다.The method includes describing each file of content as at least one of business content and personal content.
본 방법은 사업 내용에 대해 내용의 각 파일의 기밀 레벨를 결정하는 것을 포함한다.The method includes determining the level of confidentiality of each file of content for business content.
본 방법은 내용의 각 파일로부터 키 용어를 스캐닝하고 추출하는 것을 포함한다.The method includes scanning and extracting key terms from each file of content.
본 발명은 키 용어를 기업에 걸쳐 비교하고, 기업-특정된 키 용어의 리스트를 생성하는 것을 포함한다.The present invention involves comparing key terms across an enterprise and generating a list of enterprise-specific key terms.
기밀 레벨을 결정하는 것은 키 용어들 중 특정 키 용어를 식별하는 것을 포함한다.Determining the level of confidentiality includes identifying a particular key term among the key terms.
메타데이터를 생성하는 것은 대응하는 내용의 기밀 레벨을 포함하기 위한 메타데이터를 생성하는 것을 포함한다.Generating the metadata includes generating metadata for inclusion of the confidential level of the corresponding content.
본 방법은 기밀 레벨에 기초하여 내용의 각 파일로의 액세스를 제어하는 것을 포함한다.The method includes controlling access to each file of content based on the level of confidentiality.
액세스를 제어하는 것은 내용의 각 파일을 보는 것을 제어하는 것을 포함한다.Controlling access involves controlling the viewing of each file of content.
액세스를 제어하는 것은 내용의 각 파일의 다운로딩을 제어하는 것을 포함한다.Controlling access involves controlling the downloading of each file of content.
액세스를 제어하는 것은 내용의 각 파일의 엑세스를 제어하는 것을 포함한다.Controlling access includes controlling access to each file of content.
액세스를 제어하는 것은 내용의 각 파일의 복사하는 것을 제어하는 것을 포함한다.Controlling access involves controlling the copying of each file of content.
액세스를 제어하는 것은 내용의 각 파일의 분산하는 것을 제어하는 것을 포함한다.Controlling access involves controlling the distribution of each file of content.
본 방법은 내용으로부터 만들어진 추론에 기초하여, 내용의 각 파일을 기술하는 것을 포함한다.The method includes describing each file of content based on inferences made from the content.
본 방법은 내용의 문법에 기초하여, 내용의 각 파일을 기술하는 것을 포함한다.The method includes describing each file of content based on the grammar of the content.
본 방법은 위치와 복수의 에이전트 중 적어도 하나에 걸친 내용의 사업 내용을 식별하는 것을 포함하되, 사업 내용을 식별하는 것은 문서 이름, 문서 크기, 근접성, 키 워드 비교 및 해시 비교 중 적어도 하나를 사용하는 것을 포함한다.The method includes identifying a business content of a content over a location and at least one of a plurality of agents, wherein identifying the business content uses at least one of a document name, a document size, proximity, a key word comparison, .
본 방법은 내용의 파일을 액세스하는 복수의 장치들에서의 공동작업을 제어하는 것을 포함한다.The method includes controlling collaboration in a plurality of devices accessing a file of content.
본 방법은 내용의 파일을 동시에 편집하는 복수의 장치들에서의 내용의 편집을 제어하는 것을 포함한다.The method includes controlling the editing of content in a plurality of devices that simultaneously edit a file of content.
본 방법은 내용의 파일과 관련 있는 활동을 추적하는 것을 포함한다.The method includes tracking activity associated with the file of content.
본 방법은 내용의 파일의 수정 히스토리를 추적하는 것을 포함한다.The method includes tracking a modification history of a file of content.
본 방법은 모바일 장치를 통해 내용에 접근하고 모니터링하는 것을 포함하는 모바일 장치 관리를 포함한다.The method includes managing mobile devices, including accessing and monitoring content via a mobile device.
모바일 장치 관리는 모바일 장치의 위치를 추적하는 것을 포함한다.Mobile device management involves tracking the location of the mobile device.
모바일 장치 관리는 위치에 기초하여 내용으로의 액세스를 제어하는 것을 포함한다.Mobile device management includes controlling access to content based on location.
모바일 장치 관리는 모바일 자치의 추적 데이터를 포함하는 것을 포함한다.Mobile device management involves including mobile autonomous tracking data.
본 방법은 콘솔을 플랫폼에 연결하는 것을 포함하고, 콘솔은 자동화된 활동 모니터링, 감사 및 내용과 관련된 보고하는 것을 포함한다.The method includes connecting the console to a platform, the console including automated activity monitoring, auditing and reporting related to the content.
본 방법은 내용과 관련된 콘솔 활동을 통해 제어하는 것을 포함한다.The method involves controlling through console activity related to the content.
본 방법은 콘솔을 통해 위치를 제어하는 것을 포함This method involves controlling the position through the console
활동을 제어하는 것은 내용의 각 파일을 보는 것을 제어하는 것, 내용의 각 파일의 다운로딩을 제어하는 것, 내용의 각 파일의 액세스를 제어하는 것, 내용의 각 파일을 복사하는 것을 제어하는 것, 및 내용의 각 파일을 분산시키는 것을 제어하는 것 중 적어도 하나를 포함한다.Controlling activity controls controlling the viewing of each file of content, controlling downloading of each file of content, controlling access to each file of content, and copying each file of content , And controlling distribution of each file of content.
본 명세서에 기술된 실시예는 프로세서를 포함하는 플랫폼을 복수의 데이터베이스에 연결하는 단계를 포함한다. 본 방법은 플랫폼에 연결된 복수의 에이전트를 포함하는 그리드를 형성하는 단계를 포함한다. 각 에이전트는 클라이언트 장치상에서 실행되는 플랫폼의 에이전트이다. 본 방법은 각 에이전트에서, 에이전트에 의해 액세스 가능한 내용의 복수의 단편을 해싱함에 의해 메타데이터를 생성하는 단계를 포함한다.메타데이터는 복수의 에이전트에 대응하는 복수의 클라이언트 장치에 의해 액세스 가능한 메모리의 내용에 대응한다. 본 발명은 내용 대신에 메타데이터를 플랫폼에 제공하는 단계를 포함한다. 본 발명은 메타데이터로, 내용의 저장, 전송 및 프로세싱 중 적어도 하나를 제어하는 태스크를 포함하는 복수의 태스크를 생성하는 단계를 포함한다. 태스크는 스크를 담당하는 에이전트에 의해 액세스 가능한 내용에 수행된 프로세싱 작업이다. 본 발명은 복수의 태스크를 복수의 에이전트에 할당하는 단계를 포함한다.The embodiments described herein include coupling a platform comprising a processor to a plurality of databases. The method includes forming a grid comprising a plurality of agents coupled to the platform. Each agent is an agent of the platform running on the client device. The method includes generating, at each agent, metadata by hashing a plurality of fragments of content accessible by the agent. The metadata may be stored in a memory accessible by a plurality of client devices corresponding to the plurality of agents It corresponds to contents. The present invention includes providing metadata to the platform instead of content. The present invention includes generating a plurality of tasks, the tasks including at least one of storing, transmitting and processing content, as metadata. A task is a processing task that is performed on content accessible by the agent responsible for the task. The present invention includes assigning a plurality of tasks to a plurality of agents.
본 명세서에 기술된 실시예는 프로세서를 포함하는 플랫폼을 복수의 데이터베이스에 연결하는 단계와, 플랫폼에 연결된 복수의 에이전트를 포함하는 그리드를 형성하는 단계 - 각 에이전트는 클라이언트 장치상에서 실행되는 플랫폼의 에이전트 임 - 와, 각 에이전트에서, 에이전트에 의해 액세스 가능한 내용의 복수의 단편을 해싱함에 의해 메타데이터를 생성하는 단계 - 메타데이터는 복수의 에이전트에 대응하는 복수의 클라이언트 장치에 의해 액세스 가능한 메모리의 내용에 대응함 - 와, 내용 대신에 메타데이터를 플랫폼에 제공하는 단계와, 메타데이터로, 내용의 저장, 전송 및 프로세싱 중 적어도 하나를 제어하는 태스크를 포함하는 복수의 태스크를 생성하는 단계 - 태스크는 스크를 담당하는 에이전트에 의해 액세스 가능한 내용에 수행된 프로세싱 작업임 - 와, 및 복수의 태스크를 복수의 에이전트에 할당하는 단계를 포함한다.The embodiment described herein includes connecting a platform comprising a processor to a plurality of databases and forming a grid comprising a plurality of agents coupled to the platform, each agent being an agent of a platform running on the client device - generating, at each agent, metadata by hashing a plurality of fragments of content accessible by the agent, wherein the metadata corresponds to a content of memory accessible by a plurality of client devices corresponding to the plurality of agents - providing metadata to the platform instead of content and creating a plurality of tasks including tasks that control at least one of storing, transmitting, and processing content with metadata, Performed on content accessible by an agent that And a step of assigning, and a plurality of tasks and a plurality of agent-Rosedale washing operation being.
본 명세서에 기술된 실시예는 프로세서를 포함하는 플랫폼을 복수의 데이터베이스에 연결하는 단계를 포함한다. 본 방법은 플랫폼에 연결된 복수의 에이전트를 포함하는 그리드를 형성하는 단계를 포함한다. 각 에이전트는 클라이언트 장치상에서 실행되는 플랫폼의 에이전트이다. 본 방법은 각 클라이언트 장치의 각 에이전트에 의해, 클라이언트 장치에 의해 액세스 가능한 메모리의 내용의 메타데이터를 플랫폼에 제공하는 단계를 포함한다. 본 방법은 메타데이터로 내용의 위치를 결정하는 단계를 포함한다. 본 방법은 메타데이터로 내용의 상태를 유지하기 위한 작업을 나타내는 목표를 생성하는 단계를 포함한다. 본 방법은 메타데이터로 목표에 대응하는 복수의 태스크를 생성하는 단계를 포함한다. 본 방법은 각 태스크를 태스크에 대응하는 내용에 액세스하는 에이전트에 할당하는 단계를 포함한다. 태스크는, 에이전트에 의해 액세스 가능한 내용에 대해 플랫폼에 의해 지시되고 에이전트에 의해 수행된 프로세싱 작업이다. 복수의 에이전트에의해 제공된 메타데이터는 복수의 에이전트에 의해 수행된 복수의 태스크의 정보를 포함한다.The embodiments described herein include coupling a platform comprising a processor to a plurality of databases. The method includes forming a grid comprising a plurality of agents coupled to the platform. Each agent is an agent of the platform running on the client device. The method includes providing, by each agent of each client device, metadata of the contents of memory accessible by the client device to the platform. The method includes determining the location of the content with metadata. The method includes creating a target that represents a task for maintaining the state of the content with metadata. The method includes generating a plurality of tasks corresponding to a target with metadata. The method includes assigning each task to an agent accessing content corresponding to the task. A task is a processing task that is instructed by the platform for content accessible by an agent and performed by an agent. The metadata provided by a plurality of agents includes information of a plurality of tasks performed by a plurality of agents.
본 명세서에 기술된 실시예는 프로세서를 포함하는 플랫폼을 복수의 데이터베이스에 연결하는 단계와, 플랫폼에 연결된 복수의 에이전트를 포함하는 그리드를 형성하는 단계 - 각 에이전트는 클라이언트 장치상에서 실행되는 플랫폼의 에이전트 임 - 와, 각 클라이언트 장치의 각 에이전트에 의해, 클라이언트 장치에 의해 액세스 가능한 메모리의 내용의 메타데이터를 플랫폼에 제공하는 단계와, 메타데이터로 내용의 위치를 결정하는 단계와, 메타데이터로 내용의 상태를 유지하기 위한 작업을 나타내는 목표를 생성하는 단계와, 메타데이터로 목표에 대응하는 복수의 태스크를 생성하는 단계와, 및 각 태스크를 태스크에 대응하는 내용에 액세스하는 에이전트에 할당하는 단계 - 태스크는, 에이전트에 의해 액세스 가능한 내용에 대해 플랫폼에 의해 지시되고 에이전트에 의해 수행된 프로세싱 작업이고, 복수의 에이전트에의해 제공된 메타데이터는 복수의 에이전트에 의해 수행된 복수의 태스크의 정보를 포함함 - 를 포함한다.The embodiment described herein includes connecting a platform comprising a processor to a plurality of databases and forming a grid comprising a plurality of agents coupled to the platform, each agent being an agent of a platform running on the client device - providing, by each agent of each client device, metadata of the contents of a memory accessible by the client device to the platform; determining the location of the content by the metadata; Creating a plurality of tasks corresponding to a target with metadata; and assigning each task to an agent accessing content corresponding to the task, the task comprising the steps of: , By the platform for content accessible by the agent And wherein the metadata provided by the plurality of agents includes information of a plurality of tasks performed by the plurality of agents.
본 명세서에 기술된 실시예는 프로세서를 포함하는 플랫폼과 복수의 데이터베이스 사이에 연결을 구축하는 단계를 포함한다. 본 방법은 복수의 에이전트를 플랫폼에 연결함에 의해 그리드를 형성하는 단계를 포함한다. 복수의 에이전트의 각 에이전트는 클라이언트 장치상에서 실행되는 플랫폼의 에이전트이다. 본 방법은 복수의 에이전트에 대응하는 복수의 클라이언트 장치에 의해 액세스 가능한 메모리의 내용을 나타내는 각 에이전트에서 메타데이터를 생성하는 단계를 포함한다. 상기 생성하는 단계는 내용의 복수의 단편을 해싱하여, 복수의 단편을 나타내는 복수의 블로브를 생성하는 단계를 포함한다. 본 방법은 내용 대신에 메타데이터를 플랫폼에 제공하는 단계를 포함한다. 본 방법은 메타데이터로 복수의 태스크를 생성하는 단계를 포함한다. 태스크는 태스크를 담당하는 에이전트에 의해 액세스 가능한 내용에 수행된 프로세싱 작업이다. 복수의 태스크는 내용을 모니터, 저장, 전송 및 프로세싱 중 적어도 하나의 태스크를 포함한다. 복수의 태스크를 복수의 에이전트에 할당하는 단계를 포함한다.The embodiments described herein include establishing a connection between a platform comprising a processor and a plurality of databases. The method includes forming a grid by connecting a plurality of agents to a platform. Each agent of a plurality of agents is an agent of the platform running on the client device. The method includes generating metadata in each agent indicating the contents of a memory accessible by a plurality of client devices corresponding to the plurality of agents. The generating includes hashing a plurality of fragments of the content to generate a plurality of blobs representing the plurality of fragments. The method includes providing metadata to the platform instead of content. The method includes generating a plurality of tasks with metadata. A task is a processing task performed on content accessible by the agent responsible for the task. The plurality of tasks include at least one task of monitoring, storing, transmitting, and processing the contents. And assigning the plurality of tasks to the plurality of agents.
프로세서를 포함하는 플랫폼과 복수의 데이터베이스 사이에 연결을 구축하는 단계와, 복수의 에이전트를 플랫폼에 연결함에 의해 그리드를 형성하는 단계 - 복수의 에이전트의 각 에이전트는 클라이언트 장치상에서 실행되는 플랫폼의 에이전트임 - 와, 복수의 에이전트에 대응하는 복수의 클라이언트 장치에 의해 액세스 가능한 메모리의 내용을 나타내는 각 에이전트에서 메타데이터를 생성하는 단계 - 상기 생성하는 단계는 내용의 복수의 단편을 해싱하여, 복수의 단편을 나타내는 복수의 블로브를 생성하는 단계를 포함함 - 와, 내용 대신에 메타데이터를 플랫폼에 제공하는 단계와, 메타데이터로 복수의 태스크를 생성하는 단계 - 태스크는 태스크를 담당하는 에이전트에 의해 액세스 가능한 내용에 수행된 프로세싱 작업이고, 복수의 태스크는 내용을 모니터, 저장, 전송 및 프로세싱 중 적어도 하나의 태스크를 포함함 - 와, 및 복수의 태스크를 복수의 에이전트에 할당하는 단계를 포함한다.Comprising: establishing a connection between a platform comprising a processor and a plurality of databases; forming a grid by connecting a plurality of agents to a platform, wherein each agent of the plurality of agents is an agent of a platform running on the client device; And metadata in each agent indicating the contents of a memory accessible by a plurality of client devices corresponding to the plurality of agents, wherein the generating comprises hashing a plurality of fragments of the content to represent a plurality of fragments The method comprising the steps of: providing metadata to the platform instead of contents; and creating a plurality of tasks with metadata, wherein the task includes content that is accessible by the agent responsible for the task And a plurality of tasks are processing tasks Wherein the at least one task comprises at least one task of monitoring, storing, transmitting, and processing a task, and assigning the plurality of tasks to the plurality of agents.
상기 기술된 바와 같이, 본원 명세서에서 기술된 실시예와 함께 사용하기 위해 적합한 컴퓨터 네트워크는 로컬 네트워크(LAN), 광역 네트워크(WAN), 인터넷, 또는 월드 와이드 웹, 공중 인터넷, 사설 인터넷, 사설 컴퓨터 네트워크, 공중 네트워크, 모바일 네트워크, 셀룰러 네트워크, 부가 가치 통신망(VAD) 등과 같은 다른 연결 서비스 및 네트워크 변경을 포함한다. 상기 네트워크에 연결되거나 결합된 컴퓨팅 장치는 개인 컴퓨터, 워크스테이션 서버, 미니 컴퓨터, 메인-프레임 컴퓨터, 랩톱 컴퓨터, 모바일 컴퓨터, 팜 톱 컴퓨터, 휴대용 컴퓨터, 모바일 폰, TV 셋-톱 박스, 또는 이들의 조합과 같은 단말 장치를 포함하여, 네트워크로의 접근을 허용하는 모든 마이크로프로세서 제어 장치일 수 있다. 컴퓨터 네트워크는 하나 또는 둘 이상의 LAN, WAN, 인터넷, 그리고 컴퓨터를 포함할 수 있다. 상기 컴퓨터는 서버, 클라이언트 또는 이들의 조합으로 사용될 수 있다. As described above, a computer network suitable for use with the embodiments described herein may be a local area network (LAN), a wide area network (WAN), the Internet, or the World Wide Web, the public Internet, , Public network, mobile network, cellular network, value added network (VAD), and the like. The computing device connected to or coupled to the network may be a personal computer, a workstation server, a minicomputer, a mainframe computer, a laptop computer, a mobile computer, a palm top computer, a portable computer, a mobile phone, a TV set- May be any microprocessor control device that allows access to the network, including terminal devices such as a combination. A computer network may include one or more LANs, WANs, the Internet, and a computer. The computer can be used as a server, a client, or a combination thereof.
상기 기술된 구성은 싱글 시스템, 멀티플 시스템, 및/또는 지리적으로 분리된 시스템의 구성 일 수 있다. 상기 설명된 구성은 또한 싱글 시스템, 멀티플 시스템, 및/또는 지리적으로 분리된 시스템의 서브 구성 또는 서브 시스템일 수 있다. 상기 기술된 구성은 호스트 시스템 또는 호스트 시스템에 결합된 시스템의 하나 또는 둘 이상의 구성(도시되지 않음)에 연결될 수 있다. The configurations described above may be a single system, multiple systems, and / or a configuration of a geographically separated system. The configurations described above may also be sub-configurations or subsystems of a single system, multiple systems, and / or geographically separated systems. The configurations described above may be connected to one or more configurations (not shown) of a host system or a system coupled to the host system.
본원 명세서에서 기술된 구성은 프로세싱 시스템을 포함하거나, 이와 연합하여 실행한다. 상기 프로세싱 시스템은 당업자에게 알려진 바와 같이, 프로세서-기반의 장치 또는 함께 동작하는 컴퓨팅 장치, 또는 프로세싱 시스템 또는 장치의 구성의 집합체를 포함할 수 있다. 예를 들면, 상기 프로세싱 시스템은 하나 이상의 휴대용 컴퓨터, 통신 네트워크에서 동작하는 휴대용 통신 장치, 및/또는 네트워크 서버 중 하나 이상을 포함할 수 있다. 상기 휴대용 컴퓨터는 개인 컴퓨터, 개인용 디지털 어시스턴스, 휴대용 컴퓨팅 장치 그리고 휴대용 통신 장치에서 선택된 다수의 또는 조합의 어느 것일 수 있으나 이에 제한되지 않는다. 상기 프로세싱 시스템은 대용량 컴퓨터 시스템 내의 구성을 포함할 수 있다. The configurations described herein include or execute in conjunction with a processing system. The processing system may include a processor-based device or a collection of components of a computing device or a processing system or device that operate together, as is known to those skilled in the art. For example, the processing system may include one or more of a portable computer, a portable communication device operating in a communication network, and / or a network server. The portable computer may be any of a number of or a combination selected from a personal computer, a personal digital assistant, a portable computing device, and a portable communication device, but is not limited thereto. The processing system may include a configuration within a large computer system.
일 실시예의 프로세싱 시스템은 적어도 하나의 프로세서 그리고 적어도 하나의 메모리 장치 또는 시스템을 포함한다. 또한, 상기 프로세싱 시스템은 하나 이상의 데이터베이스를 포함하거나 이에 연결된다. 여기서, 용어 "프로세서"는 일반적으로 하나 또는 둘 이상의 중앙 프로세싱 유닛(CPU), 디지털 신호 프로세서(DSP), 주문형 반도체(ASIC) 등등과 같은 논리 프로세싱 유닛을 의미하는 것이다. The processing system of one embodiment includes at least one processor and at least one memory device or system. The processing system also includes or is connected to one or more databases. As used herein, the term "processor" generally refers to a logic processing unit such as one or more central processing units (CPUs), digital signal processors (DSPs), application specific integrated circuits (ASICs)
상세한 설명 및 청구범위의 전후 문맥이 명확하지 않은 경우에는, "포함한다", "포함하는" 등은 배타적인 의미를 갖는 것이 아니며, 포괄하는 의미를 갖는 것으로 이해되어야 한다. 즉 "포함하는, 그러나 제한하지 않는"으로 이해되어야 한다. 단일의 또는 복수의 의미를 사용하는 단어 또한 복수의 또는 단일의 의미를 각각 포함한다. 또한, 단어 "본원 명세서에서", "하기에서", "상기에서", "아래에서", 그리고 유사한 개념으로 사용되는 단어는 본원 명세서 전체를 의미하는 것이며 본원 명세서의 특정 부분을 의미하는 것이 아니다. 단어 "또는"이 둘 또는 그 이상의 아이템과 관련하여 사용되는 때, 이 같은 단어는 단어의 다음 해석 모두를 포함한다. 리스트 내 어떠한 아이템, 리스트 내 모든 아이템, 그리고 리스트 내 아이템의 어떠한 조합. 실시 예 그리고 상응하는 시스템 그리고 방법에 대한 상기 설명은 모두 포함하는 것으로 해석되지 않으며, 본 발명의 시스템과 방법을 설명된 정확한 형태로 제한하는 것이 아니다. Where the context of the specification and the claims is not clear, it is to be understood that the terms "comprises", "including", etc. are not intended to be exclusive, and have a generic meaning. That is, " including, but not limited to, " Words using single or plural meanings also include plural or single meanings, respectively. It is also to be understood that the words "in this specification "," in the following ", "above "," below ", and similar terms are used herein to mean the entirety of the specification, When the word "or" is used in connection with two or more items, such a word includes both of the following interpretations of the word. Any item in the list, all items in the list, and any combination of the items in the list. The above description of embodiments and corresponding systems and methods is not to be construed as including both, and is not intended to limit the systems and methods of the present invention to the exact forms described.
본원 명세서에서는 시스템 및 방법에 대한 특정 실시 예가 설명의 목적으로 설명되었으며, 다양한 수정이 당업자가 이해할 수 있는 바와 같이, 본 발명의 시스템 및 방법의 범위 내에서 가능하다. 시스템과 벙법의 특정 실시예와 예시는 설명적인 목적으로 기술되는 반면, 기술 분야에서의 당업자가 인식할 수 있는 바와 같이, 본 시스템과 방법의 범위 내에서 다양한 등가적인 수정예가 가능하다.본원 명세서에 제공된 시스템과 방법은 상기 기술된 시스템과 방법뿐만아니라 다른 시스템 및 방법으로 적용될 수 있기도 하다. Specific embodiments of the systems and methods have been described herein for purposes of explanation and various modifications are possible within the scope of the systems and methods of the present invention as will be appreciated by those skilled in the art. While specific embodiments and examples of system implementation are described for illustrative purposes, various equivalent modifications are possible within the scope of the present systems and methods, as will be appreciated by those skilled in the art. The provided systems and methods may be applied to other systems and methods as well as the systems and methods described above.
본원 명세서 기술된 다양한 실시예의 요소 및 동작은 또 다른 실시 예를 제공하도록 결합 될 수 있다. 이들 및 다른 변경은 상기 상세한 설명 비추어 상기 시스템 및 방법에 가해 질 수 있다.The elements and acts of the various embodiments described herein may be combined to provide further embodiments. These and other changes may be made to the system and method in light of the above detailed description.
Claims (125)
복수의 에이전트를 플랫폼에 연결함에 의해 그리드를 형성하는 단계 - 복수의 에이전트의 각 에이전트는 클라이언트 장치상에서 실행되는 플랫폼의 에이전트 임 - 와,
각 에이전트에서 메타데이터를 생성하고, 내용 대신에 메타데이터를 플랫폼에 제공하는 단계 - 메타데이터는 복수의 에이전트에 대응하는 복수의 클라이언트 장치에 의해 액세스 가능한 메모리의 내용에 대응함 - 와,
메타데이터로 내용의 위치를 결정하는 단계와,
내용의 상태를 유지하기 위한 작업을 나타내는 메타데이터를 가진 목표를 생성하는 단계와,
메타데이터로 목표에 대응하는 복수의 태스크를 생성하는 단계와, 및
태스크에 대응하는 내용에 액세스하는 에이전트에 각 태스크를 할당하는 단계 - 각 태스크는 에이전트에 의해 액세스 가능한 내용에, 플랫폼에 의해 지시되어 에이전트에 의해 수행되는 프로세싱 작업임 - 를 포함하는 방법.Connecting a platform including a processor to a plurality of databases,
Forming a grid by connecting a plurality of agents to a platform, each agent of the plurality of agents being an agent of a platform running on the client device;
Generating metadata in each agent and providing metadata to the platform instead of contents, the metadata corresponding to contents of a memory accessible by a plurality of client devices corresponding to a plurality of agents,
Determining a location of the content with metadata,
Creating a target having metadata indicating an operation for maintaining a state of content;
Generating a plurality of tasks corresponding to targets with metadata; and
Assigning each task to an agent accessing content corresponding to the task, wherein each task is a content task accessible by the agent, the task being instructed by the platform and performed by the agent.
플랫폼에 연결된 복수의 에이전트를 포함하는 그리드를 형성하는 단계 - 각 에이전트는 클라이언트 장치상에서 실행되는 플랫폼의 에이전트 임 - 와,
각 에이전트에서, 에이전트에 의해 액세스 가능한 내용의 복수의 단편을 해싱함에 의해 메타데이터를 생성하는 단계 - 메타데이터는 복수의 에이전트에 대응하는 복수의 클라이언트 장치에 의해 액세스 가능한 메모리의 내용에 대응함 - 와,
내용 대신에 메타데이터를 플랫폼에 제공하는 단계와,
메타데이터로, 내용의 저장, 전송 및 프로세싱 중 적어도 하나를 제어하는 태스크를 포함하는 복수의 태스크를 생성하는 단계 - 태스크는 태스크를 담당하는 에이전트에 의해 액세스 가능한 내용에 수행된 프로세싱 작업임 - 와, 및
복수의 태스크를 복수의 에이전트에 할당하는 단계를 포함하는 방법.Connecting a platform including a processor to a plurality of databases,
Forming a grid comprising a plurality of agents coupled to a platform, each agent being an agent of a platform running on a client device;
In each agent, generating metadata by hashing a plurality of fragments of content accessible by the agent, the metadata corresponding to contents of a memory accessible by a plurality of client devices corresponding to a plurality of agents,
Providing metadata to the platform instead of content,
The method comprising: generating a plurality of tasks, the tasks including at least one of storing, transmitting, and processing contents, as metadata, the tasks being processing tasks performed on content accessible by the agent responsible for the task; And
Assigning a plurality of tasks to a plurality of agents.
플랫폼에 연결된 복수의 에이전트를 포함하는 그리드를 형성하는 단계 - 각 에이전트는 클라이언트 장치상에서 실행되는 플랫폼의 에이전트 임 - 와,
각 클라이언트 장치의 각 에이전트에 의해, 클라이언트 장치에 의해 액세스 가능한 메모리의 내용의 메타데이터를 플랫폼에 제공하는 단계와,
메타데이터로 내용의 위치를 결정하는 단계와,
메타데이터로 내용의 상태를 유지하기 위한 작업을 나타내는 목표를 생성하는 단계와,
메타데이터로 목표에 대응하는 복수의 태스크를 생성하는 단계와, 및
각 태스크를 태스크에 대응하는 내용에 액세스하는 에이전트에 할당하는 단계 - 태스크는, 에이전트에 의해 액세스 가능한 내용에 대해 플랫폼에 의해 지시되고 에이전트에 의해 수행된 프로세싱 작업이고, 복수의 에이전트에의해 제공된 메타데이터는 복수의 에이전트에 의해 수행된 복수의 태스크의 정보를 포함함 - 를 포함하는 것을 특징으로 하는 방법.Connecting a platform including a processor to a plurality of databases,
Forming a grid comprising a plurality of agents coupled to a platform, each agent being an agent of a platform running on a client device;
Providing, by each agent of each client device, metadata of the contents of memory accessible by the client device to the platform;
Determining a location of the content with metadata,
Creating a target representing an operation for maintaining the state of the content with metadata,
Generating a plurality of tasks corresponding to targets with metadata; and
Assigning each task to an agent accessing content corresponding to the task, the task being a processing task instructed by the platform and performed by the agent for content accessible by the agent, Wherein the information includes information of a plurality of tasks performed by a plurality of agents.
복수의 에이전트를 플랫폼에 연결함에 의해 그리드를 형성하는 단계 - 복수의 에이전트의 각 에이전트는 클라이언트 장치상에서 실행되는 플랫폼의 에이전트임 - 와,
복수의 에이전트에 대응하는 복수의 클라이언트 장치에 의해 액세스 가능한 메모리의 내용을 나타내는 각 에이전트에서 메타데이터를 생성하는 단계 - 상기 생성하는 단계는 내용의 복수의 단편을 해싱하여, 복수의 단편을 나타내는 복수의 블로브를 생성하는 단계를 포함함 - 와,
내용 대신에 메타데이터를 플랫폼에 제공하는 단계와,
메타데이터로 복수의 태스크를 생성하는 단계 - 태스크는 태스크를 담당하는 에이전트에 의해 액세스 가능한 내용에 수행된 프로세싱 작업이고, 복수의 태스크는 내용을 모니터, 저장, 전송 및 프로세싱 중 적어도 하나의 태스크를 포함함 - 와, 및
복수의 태스크를 복수의 에이전트에 할당하는 단계를 포함하는 방법.Establishing a connection between a platform comprising a processor and a plurality of databases,
Forming a grid by connecting a plurality of agents to a platform, each agent of the plurality of agents being an agent of a platform running on the client device;
The method comprising: generating metadata in each agent representing content of a memory accessible by a plurality of client devices corresponding to a plurality of agents, the generating comprising hashing a plurality of fragments of content to generate a plurality of fragments representing a plurality of fragments Generating a blob,
Providing metadata to the platform instead of content,
Generating a plurality of tasks with metadata, the task being a processing task performed on contents accessible by the agent responsible for the task, and the plurality of tasks including at least one task of monitoring, storing, transmitting, and processing the contents - and, and
Assigning a plurality of tasks to a plurality of agents.
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 |
Publications (2)
Publication Number | Publication Date |
---|---|
KR20160064128A true KR20160064128A (en) | 2016-06-07 |
KR102267132B1 KR102267132B1 (en) | 2021-06-21 |
Family
ID=52666376
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020167009349A KR102267132B1 (en) | 2013-09-13 | 2014-09-15 | 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 (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2020101788A1 (en) * | 2018-11-16 | 2020-05-22 | Advanced Messaging Technologies, Inc. | Systems and methods for distributed data storage and delivery using blockchain |
US10778768B2 (en) | 2017-08-02 | 2020-09-15 | Electronics And Telecommunications Research Institute | Method and system for optimizing cloud storage services |
KR102225577B1 (en) * | 2020-08-21 | 2021-03-09 | (주)테온 | Method and device for distributed storage of data using hybrid storage |
KR20210134610A (en) * | 2018-12-20 | 2021-11-10 | 로브록스 코포레이션 | Developer Collaborative Control System |
Families Citing this family (10)
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 |
US10481781B2 (en) * | 2016-12-30 | 2019-11-19 | Dropbox, Inc. | Presence, access, and seen state for local copies of shared content items |
US10503869B2 (en) * | 2017-09-08 | 2019-12-10 | Konica Minolta Healthcare Americas, Inc. | Cloud-to-local, local-to-cloud switching and synchronization of medical images and data |
AU2020323613A1 (en) | 2019-08-01 | 2022-02-17 | Prefect Technologies, Inc | System and method for the remote execution of one or more arbitrarily defined workflows |
CN110737918B (en) * | 2019-10-15 | 2023-08-08 | 重庆远见信息产业集团股份有限公司 | External data sharing management platform |
JP7271410B2 (en) | 2019-12-16 | 2023-05-11 | 株式会社ソニー・インタラクティブエンタテインメント | Information processing device and file recording method |
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 |
JP7083973B1 (en) | 2021-03-04 | 2022-06-14 | 株式会社ストラテジット | Data linkage system and data linkage method |
Citations (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2001345850A (en) * | 2000-06-02 | 2001-12-14 | Nec Corp | Method and system for centralized management of call control data for call agent |
US20050198317A1 (en) * | 2004-02-24 | 2005-09-08 | Byers Charles C. | Method and apparatus for sharing internet content |
US7155487B2 (en) * | 2000-11-30 | 2006-12-26 | Intel Corporation | Method, system and article of manufacture for data distribution over a network |
US20070260643A1 (en) * | 2003-05-22 | 2007-11-08 | Bruce Borden | Information source agent systems and methods for distributed data storage and management using content signatures |
US20080034369A1 (en) * | 2000-04-27 | 2008-02-07 | Hyperion Solutions Corporation | Method and apparatus for processing jobs on an enterprise-wide computer system |
US20090254572A1 (en) * | 2007-01-05 | 2009-10-08 | Redlich Ron M | Digital information infrastructure and method |
US20110078018A1 (en) * | 2005-07-22 | 2011-03-31 | Rathod Yogesh Chunilal | System and method of targeting advertisements and providing advertisements management |
US20110178830A1 (en) * | 2010-01-20 | 2011-07-21 | Cogniti, Inc. | Computer-Implemented Tools and Method for Developing and Implementing Integrated Model of Strategic Goals |
US20110178831A1 (en) * | 2010-01-15 | 2011-07-21 | Endurance International Group, Inc. | Unaffiliated web domain hosting service client retention analysis |
US20110196833A1 (en) * | 2010-02-09 | 2011-08-11 | Alexandre Drobychev | Storage of Data In A Distributed Storage System |
US20110283356A1 (en) * | 2010-05-13 | 2011-11-17 | Salesforce.Com, Inc. | Security Monitoring |
US20120011170A1 (en) * | 2007-04-30 | 2012-01-12 | Quantum Leap Research, Inc. | Collaboration portal - copo - a scaleable method, system and apparatus for providing computer-accessible benefits to communities of users |
KR20120011574A (en) * | 2010-07-29 | 2012-02-08 | 에스케이 텔레콤주식회사 | Distributed file management apparatus and method |
KR101134597B1 (en) * | 2009-09-03 | 2012-04-09 | 한국과학기술원 | Method and apparatus for providing web storage service storing multimedia contents and metadata separately |
JP2012118710A (en) * | 2010-11-30 | 2012-06-21 | Brother Ind Ltd | Node device, communication system, communication method and program for information processing apparatus |
WO2013106590A2 (en) * | 2012-01-10 | 2013-07-18 | Memeo, Inc. | Cloud-based distributed data system |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7680801B2 (en) * | 2004-11-17 | 2010-03-16 | Iron Mountain, Incorporated | Systems and methods for storing meta-data separate from a digital asset |
WO2007030305A2 (en) * | 2005-09-02 | 2007-03-15 | Avvenu, Inc. | Data communication with remote network node |
US20120303827A1 (en) * | 2011-05-24 | 2012-11-29 | Microsoft Corporation | Location Based Access Control |
-
2014
- 2014-09-15 WO PCT/US2014/055652 patent/WO2015039028A1/en active Application Filing
- 2014-09-15 KR KR1020167009349A patent/KR102267132B1/en active IP Right Grant
- 2014-09-15 JP JP2016542852A patent/JP2016537746A/en active Pending
- 2014-09-15 EP EP14844269.2A patent/EP3044694A4/en not_active Ceased
-
2019
- 2019-01-17 JP JP2019006141A patent/JP6810172B2/en active Active
Patent Citations (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080034369A1 (en) * | 2000-04-27 | 2008-02-07 | Hyperion Solutions Corporation | Method and apparatus for processing jobs on an enterprise-wide computer system |
JP2001345850A (en) * | 2000-06-02 | 2001-12-14 | Nec Corp | Method and system for centralized management of 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 |
US20070260643A1 (en) * | 2003-05-22 | 2007-11-08 | Bruce Borden | 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 |
US20110078018A1 (en) * | 2005-07-22 | 2011-03-31 | Rathod Yogesh Chunilal | System and method of targeting advertisements and providing advertisements management |
US20090254572A1 (en) * | 2007-01-05 | 2009-10-08 | Redlich Ron M | Digital information infrastructure and method |
US20120011170A1 (en) * | 2007-04-30 | 2012-01-12 | 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 |
US20110178831A1 (en) * | 2010-01-15 | 2011-07-21 | Endurance International Group, Inc. | Unaffiliated web domain hosting service client retention analysis |
US20110178830A1 (en) * | 2010-01-20 | 2011-07-21 | Cogniti, Inc. | Computer-Implemented Tools and Method for Developing and Implementing Integrated Model of Strategic Goals |
US20110196833A1 (en) * | 2010-02-09 | 2011-08-11 | Alexandre Drobychev | Storage of Data In A Distributed Storage System |
US20110283356A1 (en) * | 2010-05-13 | 2011-11-17 | Salesforce.Com, Inc. | Security Monitoring |
KR20120011574A (en) * | 2010-07-29 | 2012-02-08 | 에스케이 텔레콤주식회사 | 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 |
WO2013106590A2 (en) * | 2012-01-10 | 2013-07-18 | Memeo, Inc. | Cloud-based distributed data system |
Non-Patent Citations (2)
Title |
---|
B. Pourebrahimi et al., A survey of peer-to-peer Networks, Proc. of 16th CSSP workshop, v.2005 (2005.11.01) * |
H. Castro et al., A p2p content delivery system for alternative business models harnessing internet's full potential, Int. conference on NWESP, IEEE (2011.10.19) * |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10778768B2 (en) | 2017-08-02 | 2020-09-15 | Electronics And Telecommunications Research Institute | Method and system for optimizing cloud storage services |
WO2020101788A1 (en) * | 2018-11-16 | 2020-05-22 | Advanced Messaging Technologies, Inc. | Systems and methods for distributed data storage and delivery using blockchain |
US10949388B2 (en) | 2018-11-16 | 2021-03-16 | Advanced Messaging Technologies, Inc. | Systems and methods for distributed data storage and delivery using blockchain |
US11650955B2 (en) | 2018-11-16 | 2023-05-16 | Consensus Cloud Solutions, Llc | Systems and methods for distributed data storage and delivery using blockchain |
KR20210134610A (en) * | 2018-12-20 | 2021-11-10 | 로브록스 코포레이션 | Developer Collaborative Control System |
KR102225577B1 (en) * | 2020-08-21 | 2021-03-09 | (주)테온 | Method and device for distributed storage of data using hybrid storage |
Also Published As
Publication number | Publication date |
---|---|
JP6810172B2 (en) | 2021-01-06 |
WO2015039028A1 (en) | 2015-03-19 |
EP3044694A1 (en) | 2016-07-20 |
JP2019091477A (en) | 2019-06-13 |
KR102267132B1 (en) | 2021-06-21 |
EP3044694A4 (en) | 2017-09-27 |
JP2016537746A (en) | 2016-12-01 |
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 | |
US12041161B2 (en) | Sharing encrypted documents within and outside an organization | |
US10713379B2 (en) | Distributed storage system for long term data storage | |
US11531495B2 (en) | Distributed storage system for long term data storage | |
US10069914B1 (en) | Distributed storage system for long term data storage | |
RU2531569C2 (en) | Secure and private backup storage and processing for trusted computing and data services | |
US7958148B2 (en) | Systems and methods for filtering file system input and output | |
US7849328B2 (en) | Systems and methods for secure sharing of information | |
US8037036B2 (en) | Systems and methods for defining digital asset tag attributes | |
US7958087B2 (en) | Systems and methods for cross-system digital asset tag propagation | |
US7757270B2 (en) | Systems and methods for exception handling | |
US9268964B1 (en) | Techniques for multimedia metadata security | |
US20140082749A1 (en) | Systems and methods for secure and persistent retention of sensitive information | |
WO2017023385A2 (en) | Secure searchable and shareable remote storage system and method | |
US20160156631A1 (en) | Methods and systems for shared file storage | |
US20140208124A1 (en) | High privacy of file synchronization with sharing functionality | |
US20140019498A1 (en) | System, method and computer readable medium for file management | |
US20090092252A1 (en) | Method and System for Identifying and Managing Keys | |
US20070130127A1 (en) | Systems and Methods for Automatically Categorizing Digital Assets | |
US20140019497A1 (en) | Modification of files within a cloud computing environment | |
US20070113288A1 (en) | Systems and Methods for Digital Asset Policy Reconciliation | |
US20070112784A1 (en) | Systems and Methods for Simplified Information Archival | |
US20070130218A1 (en) | Systems and Methods for Roll-Up of Asset Digital Signatures | |
CA2667264A1 (en) | Systems and methods for information organization |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
N231 | Notification of change of applicant | ||
A201 | Request for examination | ||
AMND | Amendment | ||
E902 | Notification of reason for refusal | ||
AMND | Amendment | ||
E601 | Decision to refuse application | ||
X091 | Application refused [patent] | ||
AMND | Amendment | ||
X701 | Decision to grant (after re-examination) | ||
GRNT | Written decision to grant |