KR102267132B1 - 문서 관리와 액세스 제어가 있는 분산형 데이터 시스템 - Google Patents

문서 관리와 액세스 제어가 있는 분산형 데이터 시스템 Download PDF

Info

Publication number
KR102267132B1
KR102267132B1 KR1020167009349A KR20167009349A KR102267132B1 KR 102267132 B1 KR102267132 B1 KR 102267132B1 KR 1020167009349 A KR1020167009349 A KR 1020167009349A KR 20167009349 A KR20167009349 A KR 20167009349A KR 102267132 B1 KR102267132 B1 KR 102267132B1
Authority
KR
South Korea
Prior art keywords
content
agent
file
platform
delete delete
Prior art date
Application number
KR1020167009349A
Other languages
English (en)
Other versions
KR20160064128A (ko
Inventor
브렛 사바지
카세이 마샬
지오프레이 스투치맨
로스 엘더링톤
스티브 오웬
조지 노스업
Original Assignee
유니콤 시스템스, 인코포레이티드.
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 유니콤 시스템스, 인코포레이티드. filed Critical 유니콤 시스템스, 인코포레이티드.
Publication of KR20160064128A publication Critical patent/KR20160064128A/ko
Application granted granted Critical
Publication of KR102267132B1 publication Critical patent/KR102267132B1/ko

Links

Images

Classifications

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

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

데이터 관리 시스템 및 방법은 클라이언트 장치에 호스팅된 에이전트나 폴터의 시스템에 결합된 클라우드-기반의 플랫폼을 포함한다. 플랫폼은 실제 데이터를 저장하지 않고, 대신에 에이전트에 의해 제공된 메타데이터를 사용하여, 시스템 내의 모든 데이터의 위치를 추적하고, 에이전트 중의 실제 데이터의 분산된 저장, 이동 및 프로세싱을 관리한다. 그렇게 함으로써, 플랫폼은 에이전트의 로컬 저장소를 사용하여 "가상 클러스터"로 네트워크된 저장소를 폴링한다. 에이전트는 상세한 설명에 기술된 바와 같이, 플랫폼에 의해 지시된대로, 데이터를 모니터, 저장 및 전송 또는 이동 및 데이터 프로세싱 작업을 집합적으로 수행한다. 에이전트는 프로세서-기반의 장치에 호스트되거나 연결된 에이전트, 로컬 영역 네트워크의 장치에 호스트된 에이전트, 광역 네트워크의 장치에 호스트된 에이전트, 모바일 장치에 호스트된 에이전트 및 클라우드-기반의 장치에 호스트된 에이전트를 포함한다.

Description

문서 관리와 액세스 제어가 있는 분산형 데이터 시스템 {DISTRIBUTED DATA SYSTEM WITH DOCUMENT MANAGEMENT AND ACCESS CONTROL}
관련된 출원
본 출원은 2013년 9월 13일에 출원된 미국 특허 출원 번호 제61/877,585호의 우선권을 주장한다.
본 출원은 2013년 1월 10일에 출원된 미국 특허 출원 번호 제13/738,796호의 부분 계속 출원이다.
기술 분야
본 명세서에 기술된 실시예는 데이터 프로세싱에 관한 것이고, 좀 더 구체적으로는 분산형 저장 및 프로세싱에 관한 것이다.
클라우드-기반의 서비스가 빠르게 확산되고, 고객은 생산성을 증가시키고, 지원 비용을 감소시키며, 선행 투자를 감소시키기 위한 클라우드-기반의 서비스를 포함하기 위해, 로컬 고객 자급 장비(customer provided equipment, CPE) 솔루션에 넘어 확산되고 있다. 로컬/클라우드가 기존 투자에 영향을 주고, 클라우드로의 완전한 이동보다 적은 위험을 가진다는 점을 고려하면, CPE와 클라우드 솔루션 모두를 결합하는 하이브리드 솔루션이 빠르게 채택되고 있다. 종래의 클라우드 서비스는 개인용 동기화 및 공유형 서비스, 온라인 백업 및 대용량 파일 전송 서비스를 포함한다. 이러한 종래의 클라우드 서비스가 온라인 저장소 제공에 초점을 맞추는 동안, 연결된 컴퓨터, 장치 및 웹사이트의 지금까지 증가하는 수는 이들 서비스의 사용자가 복수의 장치를 통해서나 웹 사이트를 통해 그들의 최근 파일을 동기화 및 액세스하는데 어려움을 계속 겪는다는 것을 의미한다. 또한, 기업 사용자는 그들의 사업 데이터를 보호하고, 세간의 이목을 끄는 보안상 침입을 막기 위해 비교적 높은 레벨의 보안을 요구하고, 클라우드 저장소 제공자의 장기간 생존 능력이 클라우드로의 이송 저장소 및 서비스와 관련된 문제에 추가된다. 결과적으로, 비교적 더 높은 레벨의 보안성은 물로 로컬 데이터 저장소 및 피어-투-피어 이송에 초점을 맞추면서도, 복수의 장치에 걸쳐 파일의 동기화 및 액세스를 위한 간결한 접근법을 가진 클라우드 서비스에 대한 요구가 있다.
참조에 의한 포함
본 명세서에서 언급된 특허, 특허 출원 및/또는 간행물 각각은, 각각의 개별 특허, 특허 출원 및/또는 간행물이 참조로서 포함되는 것으로 구체적이고 개별적으로 포함되는 것과 동일한 정도로, 그 전체가 본 명세서에 참조로서 포함된다.
도 1은 실시예에서 플랫폼과 에이전트를 포함하는 시스템의 블록도이다.
도 2는 실시예서, 독립적인 에이전트의 그룹과 네트워크된 에이전트 그룹에 결합된 플랫폼을 포함하는 시스템의 블록도이다.
도 3은 실시예에서, 조직 내에 포함된 다수의 에이전트와 플랫폼을 포함하는 시스템의 블록도이다.
도 4a는 실시예에서, 플랫폼과 에이전트를 포함하는 예시적인 시스템의 블록도이다.
도 4b는 실시예에서, 플랫폼과 에이전트를 포함하는 예시적인 시스템의 또 다른 블록도이다.
도 5는 실시예에서, 플랫폼과 에이전트 사이의 파일 동기화와 관련된 예시의 블록도이다.
도 6은 실시예에서, 에이전트, 플랫폼 및 데이터베이스와 관련된 예시적인 순서도이다.
도 7은 실시예에서, 라이브러리를 스캔하고 동기화하기 위한 동기화 목표의 사용과 관련된 예시적인 순서도이다.
도 8은 실시예에서, 정책 데이터베이스 및 규칙 엔진을 포함하는 플랫폼의 블록도이다.
도 9는 실시예에서, 다른 플랫폼 구성과 분리된 메타데이터를 나타내는 블록도이다.
도 10은 실시예에서, 플랫폼의 연결 타입을 도시한다.
도 11은 실시예에서, P2P 연결 타입을 도시한다.
도 12는 실시예에서, 관리 콘솔의 예시적인 스크린을 도시한다.
도 13은 실시예에서, 파일 동기화 제어를 포함하는 예시적인 실시예를 도시한다.
도 14는 실시예에서, 보안 활성화 모니터링 및 통지를 포함하는 예시적인 스크린을 도시한다.
도 15는 실시예에서, 문서 감사 추적을 포함하는 예시적인 스크린을 도시한다.
도 16은 실시예에서, 파일 검색과 분류를 포함하는 예시적인 스크린을 도시한다.
도 17은 실시예에서, 제어된 사용자 공유를 포함하는 예시적인 스크린을 도시한다.
도 18은 실시예에서, 원격 장치 관리 및 지오로케이션(geolocation) 서비스를 포함하는 예시적인 스크린을 도시한다.
도 19는 실시예에서, 저장 위치의 선택을 포함하는 예시적인 스크린을 도시한다.
클라이언트 장치에 호스트된 에이전트 또는 폴더의 시스템에 결합된 클라우드-기반의 플랫폼 또는 엔진을 포함하는 데이터 관리 시스템 및 방법이 기술된다. 한 실시예의 플랫폼이 실제 데이터를 저장하지 않으며 대신에 시스템 내 모든 데이터의 위치를 추적하고 에이전트들 중에서 실제 데이터의 분산된 저장, 이동 및 프로세싱을 관리하기 위해 상기 에이전트에 의해 제공된 메타데이터를 사용한다. 그와 같이 하여, 한 실시예의 시스템은 에이전트에서 로컬 저장장치를 사용하여 "가상의 클러스터" 내로 네트워크된 저장소를 폴링한다. 에이전트는 본 명세서의 상세한 설명에 기술된 바와 같이, 집합적으로 데이터를 모니터링, 저장 및 이송 또는 이동시키고, 플랫폼에 의해 지시된 대로 데이터 프로세싱 동작을 수행한다. 한 실시예의 에이전트는 프로세서-기반의 장치(가령, 개인용 컴퓨터(PC), 태블릿 컴퓨터, 서버 컴퓨터, 네트워크-부착 저장(NAS) 장치, 애플 컴퓨터, 모바일 장치, iOS 장치, 안드로이드 장치 등), 로컬 지역 네트워크(LAN)의 장치에 호스트된 에이전트, 유선 네트워크(WAN)의 장치에 호스트된 에이전트, 모바일 장치에서 호스트되는 에이전트, 그리고 클라우드-기반의 장치(가령, 서버, 저장 장치, 등)에 결합되거나 호스트된 에이전트를 포함하나, 이에 제한되지 않는다.
비록 본 명세서의 상세한 설명이 설명을 위해 많은 구체 사항을 포함하지만, 이하의 상세한 설명에 대한 많은 변형예와 변경예는 당업자가 본 명세서에 기술된 실시예의 범위 내에서 인식할 것이다. 따라서, 이하의 설명적인 실시예는 청구된 발명에 대한 보편성을 상실하지 않고 제한 없이 적용되는 것이다.
도 1은 실시예에서 플랫폼(110)과 에이전트(120)를 포함하는 시스템의 블록도이다. 이러한 실시예에서, 플랫폼은 본원 명세서의 상세한 설명에 기술된 바와 같이, 다수의 데이터베이스(130)에 연결 및/또는 포함한다. 각각이 에이전트를 포함하거나 호스트하는 복수의 클라이언트 장치(140)는 네트워크 연결을 통하여 플랫폼과 데이터베이스에 연결되며, 상기 데이터베이스를 사용하여 상기 플랫폼에 의해 지시되는 작업 태스크를 수신하고 실행한다.
도 2는 실시예서, 독립적인 에이전트의 그룹과 네트워크된 에이전트 그룹에 결합된 플랫폼을 포함하는 시스템의 블록도이다. 이러한 실시예의 플랫폼은 본원 명세서에서 상세히 설명되는 다수의 데이터베이스에 연결 및/또는 이들을 포함한다. 상기 클라이언트 장치는 네트워크 연결을 통하여 플랫폼에 연결된다. 제1 그룹의 클라이언트 장치(210)는 복수의 클라이언트 장치를 포함하며, 이들 각각은 한 에이전트를 포함하거나 호스트하며, 네트워크 연결을 통하여 독립적으로 상기 플랫폼에 연결된다. 제2 그룹의 클라이언트 장치(220)는, 각각이 에이전트를 포함하며 독립적으로 플랫폼으로 연결되고, 그리고 추가로 피어 네트워크(가령, LAN, WAN, 등등)를 형성하는 복수의 클라이언트 장치를 포함하고, 여기서, 피어-투-피어 통신(230)은 에이전트들 사이에서 지원된다.
도 3은 실시예에서, 조직 내에 포함된 다수의 에이전트와 플랫폼을 포함하는 시스템의 블록도이다. 상기 플랫폼은 본원 명세서에서 상세히 설명되는 바와 같이, 다양한 데이터베이스에 연결 및/또는 이들을 포함한다. 상기 조직은 복수의 그룹(가령, 그룹 1 내지 그룹 M, 여기서 M은 임의의 숫자)을 포함하며, 각 그룹은 몇 명의 사용자(가령, 사용자 1에서 사용자 N, 여기서 N는 임의의 숫자)를 포함한다. 상기 조직의 사용자 각각은 몇 몇의 장치(가령, 장치 1에서 장치 P, 여기서 P는 임의의 숫자)를 포함하며, 각 장치는 네트워크 커플링을 통하여 플랫폼에 연결된 에이전트를 포함하거나 호스팅한다. 상기 조직은 또한 플랫폼에 연결된 관리자 콘솔을 포함하며 관리자가 계층에 따라 장치에 접근하는 것을 가능하게 한다. 상기 플랫폼은 상기 조직에 따라 데이터로의 액세스를 제어하는 통제 또는 규칙을 포함하며, 상기 콘솔솔은 통제 또는 규칙으로의 액세스를 제공하고 이에 의해 관리자가 상기 규칙을 설치하고 유지하도록 한다(예를 들면, 추가, 삭제, 수정 등등).
이 같은 조직의 예에서, 상기 에이전트는 플랫폼으로부터 수신된 명령에 의해 지시받고, 이를 실행하며, 각 에이전트는 사용자에게 등록된 장치에서 호스트된다. 사용자 각각은 한 그룹의 서브셋이며, 각 그룹은 한 조직의 서브셋이다. 각 장치에서 상기 에이전트는 대응하는 장치에서 포함되거나 그 같은 장치에 의해 액세스 가능한 메모리의 콘텐츠을 인덱스하고, 상기 메모리 콘텐츠의 메타데이터를 상기 플랫폼에 제공한다. 상기 콘솔은 상기 조직에 따라 데이터로의 액세스를 제어하는 규칙에 대한 관리자 제어를 제공한다. 예를 들면, 관리자는 조직이 10MB 크기를 초과하는 어떠한 파일도 포함할 수 없다고 명시하는 규칙을 발생시킬 수 있다. 관리자는 그룹 1이 어떠한 음악 파일 또는 비디오 파일도 포함할 수 없다고 명시하는 또 다른 규칙을 발생시킬 수 있다. 또 다른 실시예 규칙은 그룹 2가 비밀이라 표시된 어떠한 파일도 포함할 수 없다고 명시한다.
도 4a는 실시예에서, 플랫폼과 에이전트를 포함하는 예시적인 시스템의 블록도이다. 도 4b는 실시예에서, 플랫폼과 에이전트를 포함하는 예시적인 시스템의 또 다른 블록도이다. 도 4a 및 4b는 집합적으로 "도 4"라 한다. 상기 플랫폼은 작업을 생성하거나 발생시키기 위해 그리고 에이전트들로 작업을 할당하기 위해 메타데이터를 통해 얻어진 에이전트 각각에 의해 액세스 가능한 데이터의 지식을 사용한다. 결국, 상기 에이전트는 플랫폼에 의해 이들에게 할당된 작업을 수행하며 이들의 데이터 그리고 수행된 작업에 대한 정보를 플랫폼에 제공한다. 한 실시예의 에이전트가 플랫폼에 의해 지시된 작업을 수행하기 때문에, 이들은 애플리케이션도 사용자도 아니다.
상기 플랫폼은 다양한 데이터베이스를 포함 및/또는 이에 연결된다. 예를 들면, 상기 플랫폼은 상기 플랫폼 및 각각의 에이전트의 관련 정보에 이용될 수 있는 모든 에이전트의 리스트인 한 에이전트 데이터베이스를 포함한다. 상기 에이전트 데이터베이스에 추가하여, 상기 플랫폼은 시스템 내 모든 데이터의 위치를 추적하고 상기 에이전트 중 실제 데이터의 분산된 저장, 이동 및 프로세싱을 관리함을 위하여 정보를 교환하는 때 에이전트에 의해 사용하기 위한 다른 데이터베이스를 포함한다. 상기 데이터베이스는 상기 설명된 에이전트 데이터베이스, 라이브러리 데이터베이스, 목표 데이터베이스, 작업 데이터베이스를 포함한다. 각 에이전트는 이들의 로컬 디스크 또는 기억 저장소를 나타내는 하나 이상의 라이브러리를 가질 수 있고, 상기 라이브러리 데이터베이스는 대응하는 에이전트에 이용될 수 있는 기억 저장소의 리스트를 포함하며, 상기 기억 저장소는 에이전트에게 판독 및/또는 기재 액세스가 허여된 임의의 장치(예를 들면, 디스크 또는 디스크 드라이브, 네트워크 마운트 포인트, 하드 드라이브, 플래시 드라이브, 기억 저장장치 서비스 등등)를 포함하나 이에 제한되지 않는다. 상기 플랫폼 및 각 에이전트는 시스템 라이브러리 리스트 및 각 라이브러리에 접근할 수 있는 시스템의 대응하는 에이전트 각각을 포함하는 라이브러리 데이터베이스를 포함한다.
상기 목표 데이터베이스는 특정 작업이 수행되어야 하는(예를 들어 동기화되어야 하는) 라이브러리 집합체인 목표의 리스트를 포함한다. 상기 목표 데이터베이스는 특정한 태스크(task)(가령, 동기화)가 수행될 라이브러리의 집합체인 목표의 리스트를 포함한다. 상기 목표는 태스크를 수행하기 위해 에이전트에 의해 사용되며, 목표가 하나 이상의 라이브러리에 해당하고 라이브러리 콘텐츠에 대한 태스크 또는 작업을 수행하도록 사용된다. 또한, 상기 플랫폼은 각 에이전트에 대한 작업 데이터베이스를 발생시키며, 작업 데이터베이스 내에 대응하는 에이전트에 의해 달성될 태스크를 작업으로 한다. 상기 작업 데이터베이스는 상기 작업을 수행하기 위해 에이전트에 의해 필요한 모든 정보와 함께 한 에이전트에 의해 수행될 태스크 각각의 설명을 포함한다. 상기 데이터베이스는 하기에서 상세히 설명된다.
한 실시예의 플랫폼은 플랫폼과 다수의 에이전트 사이의 커플링을 통해 그리드를 형성하는 유니버설 동기화(sync) 엔진이고, 상기 플랫폼은 에이전트들을 위한 마스터 제어기의 역할을 한다. 상기 플랫폼은 클라우드 내 하나 이상의 데이터베이스에 연결되며, 상기 데이터베이스는 플랫폼이 책임을 지는 그리드의 모든 데이터에 대한 위치와 상태에 대한 데이터(가령, 메타데이터)를 포함하는 에이전트로부터 수신된 정보를 포함한다. 상기 에이전트는 특정 장치 또는 컴퓨터에서 호스트되거나 설치되어서, 플랫폼과 통신하고, 플랫폼 및 다른 에이전트와 상호 작동하여 그리드를 형성하도록 하는 독립적으로 기능하는 엔티티이며, 상기 그리드의 구성들은 상기 플랫폼에 의해 할당된 특정 태스크를 달성하기 위해 상호 작동하여 동작한다.
동작시에, 에이전트는 한 장치에 호스트되거나 설치되며, 에이전트는 상기 플랫폼에 의해 할당된 작업 또는 태스크를 수행하는 기능을 한다. 상기 플랫폼은 플랫폼이 관련되어 있는 모든 에이전트의 식별과 위치, 그리고 각 에이전트가 액세스 하는 데이터를 알고 있다. 상기 에이전트는 애플리케이션들이 아니지만, 그 대신 플랫폼에 의한 지시대로 작업을 수행하는, 암호화된 채널을 통하여 플랫폼 그리고 다른 에이전트와 통신하는 플랫폼의 에이전트이다. 일반적으로, 상기 플랫폼은 이 같은 플랫폼이 책임이 있는 목표를 발생시켜서, 이를 포함하고, 상기 플랫폼은 작업 또는 태스크를 상기 에이전트에 할당하여 상기 에이전트가 목표를 달성하도록 한다. 또한 상기 에이전트는 각 에이전트 또는 어떤 다른 에이전트를 할당받은 태스크에 대응하는 목적(objectives)에 대한 어떠한 지식도 필요로 하지 않는다.
한 실시예의 플랫폼은 한 실시예의 데이터베이스에 실제 데이터를 저장하지 않고, 대신에, 그것이 책임을 지는 데이터에 대응하는 메타데이터를 저장한다. 결과적으로, 상기 플랫폼이 메타데이터만을 저장하기 때문에, 에이전트는 실제 데이터가 저장되는 분산형 데이터 기억 저장 엔티티로서의 역할을 한다. 상기 플랫폼은 에이전트에서 저장된 데이터의 비트-레벨 이해(bit-level understanding)를 위해 메타데이터를 사용하여서, 데이터에 대한 파일-레벨 이해(file-level understanding) 이상을 제공한다. 상기 메타데이터는 각 에이전트로부터 수신되며 각 에이전트가 책임을 지는 데이터로부터 상기 에이전트에 의해 발생된다. 메타데이터를 발생시키는데 있어서, 각 에이전트는 상기 플랫폼에 의해 요청되는 파일들을 스캔한다. 파일 각각에 대하여, 상기 스캐닝은 상기 파일을 본원 명세서에서 블로브(blob)라 일컬어지는 가변 크기 단편으로 분리됨에 의해 파일을 형성하는 데이터로부터 데이터의 단편 또는 구성을 발생시키는 것을 포함한다. 상기 블로브는 이하의 상세한 설명에서 기술되는 바와 같이, 사전-특정된 최소 길이와 최대 길이 사이에 있는 가변 크기를 가진 데이터의 일부를 생성하는 데이터 핑거프린팅 알고리즘(data fingerprinting algorithm)을 사용하여 발생된다. 본원 명세서에서 설명된 실시예가 한 파일의 콘텐츠로부터 블로브들을 발생시키고 블로브는 파일의 콘텐츠를 대표하기 때문에, 용어 "파일(들)" 및 "블로브(들)"은 본원 명세서에서 상호 교환적으로 사용된다.
블로브를 발생시키는 때, 상기 블로브에 대한 설명이 발생되며, 상기 블로브가 파일의 나머지 부분으로부터 잘려진 또는 분리된 포인트에서 해시의 값을 포함하며, 상기 블로브의 완료 콘텐츠에 대한 해시(hash), 상기 블로브에 대한 브레이크 포인트에 기초한 오프셋 값, 그리고 상기 블로브의 크기(가령, 길이)를 포함한다. 상기 블로브의 완료 콘텐츠 해시(블로브 해시, 또는 "해시")는 상기 블로브에 대한 고유한 식별자로서의 역할을 한다. 또한, 한 파일의 콘텐츠를 구성하는 블로브의 완전한 리스트는 해시(캐쉬)(cash)되어서, 콘텐츠 해시와 명칭 해시(훼시)(fash)의 조합의 해시인, 전체 파일 콘텐츠에 대한 고유한 식별자를 발생시키도록 한다. 한 실시예의 해시는 또한 파일 명칭의 해시 그리고 파일의 경로(패시)(pash), 그리고 파일 메타데이터의 해시(가령, 파일 명칭, 크기, 날짜, 위치, 등등)(mash)를 더욱 포함한다.
이들 다양한 해시들은, 하기에서 상세히 설명되는 바와 같이, 각 에이전트가 책임이 있는, 그리고 플랫폼으로 전달된 데이터 파일 각각에 대하여 에이전트 각각에 의해 발생된다. 상기 플랫폼은 파일 각각에 대한 기록을 발생시켜서 이들 다양한 해시의 정보를 포함하도록 한다. 상기 플랫폼은 에이전트에 의해 플랫폼으로 보고된 그리고 이들 기록에 포함된 데이터의 정보 또는 상태를 사용하여 데이터의 상태를 결정하도록 하며 어느 에이전트가 데이터의 수정으로 인해 날짜가 지난 데이터의 버전을 가지고 있는가를 결정하며 에이전트들 사이에서 파일 버전을 조정하도록 한다. 다음에 상기 플랫폼은, 본원 명세서에서 설명되는 바와 같이, 파일의 가장 최근 버전으로 하나 이상의 파일들을 갱신할 필요가 있는 에이전트로 작업을 발생시킨다.
따라서, 상기 메타데이터를 사용하여, 상기 플랫폼은 클라우드 내에서 데이터의 마스터 인덱스를 유지시키며, 에이전트의 마스터 인덱스 또는 라이브러리를 판독하기 위해 목표를 사용하여 각 목표와 관련된 다양한 데이터 조각의 위치를 결정하도록 하고, 데이터 내의 불일치 또는 차이를 식별하도록 하고 식별된 불일치 또는 차이를 제거하기 위해 작업을 발행 또는 발생시킨다. 익명인 것 대신, 한 실시예의 에이전트가 알려지며 상기 플랫폼에 의해 지시를 받고, 단지 상기 플랫폼에서 구축된 신원(identity)을 가지며 그리고 이 같은 신원에 의해 제어된 다른 에이전트와 콘텐츠를 교환할 뿐이기 때문에, 이는 피어-투-피어 시스템과 반대된다.
상기 플랫폼은 피어(peer)들 사이에서 가능한 한 직접적으로 가능한 한 적은 데이터를 전달하는 데 효율이 있다. 또한, 본 명세서의 상기 실시예는 에이전트들 사이의 상호 협력 프로세싱과 함께 모든 데이터 위치의 플랫폼에 의해 모아진 지식을 사용하여, 이동될 필요가 있는 데이터만을 이동하고 상기 데이터의 위치(가령, 에이전트)에서 데이터를 프로세싱하도록 하며, 이에 의해 독립적으로 동작하는 때의 어느 한 에이전트가 가지는 대역폭보다 상대적으로 큰 대역폭을 제공한다. 따라서, 한 실시예의 플랫폼이 효율적인 저장, 전달 및 글로벌 데이터 모빌리티를 제공함에 의해 데이터 유비쿼티(ubiquity)를 제공한다.
본 발명의 시스템은 상기 블로브의 사용을 통하여 장치들 중에서 데이터의 해싱 및 블록-레벨 전달을 제공한다. 상기 블록-레벨 전달은 변경된 데이터 블록을 장치들에서 갱신할 필요가 있을 뿐이므로 데이터가 변경되는 때 파일들의 효율적인 동기화를 지원한다. 상기 블록-레벨은 상기 데이터가 블록들을 형성하기 위해 해시 되면 블록들이 이동되고 다음에 다시 모아지기 때문에 비-시퀀스 파일 전달을 더욱 전달하며, 이에 의해 시퀀스 파일 전달을 위한 필요를 제거한다. 이와 유사하게, 실시예는 블로브들이 하나 이상의 다른 장치로부터 이들이 필요한 어떤 장치로 동시에 또는 거의 동시에 전달될 수 있기 때문에, 데이터 업로드/다운로드 시간의 감소를 지원한다. 게다가, 파일이 그리드에서 특정한 장치에 의해 필요한 때, 그리고 그리드에서 두 개 이상의 다른 장치에서 존재하는 때, 각기 다른 블록이 동시에 이들 다수의 장치로부터 전달될 수 있으며 상기 파일을 현재 필요한 위치(가령, 에이전트)에 위치하도록 한다.
상기 플랫폼은 그리드 내 에이전트들로 작업을 분산시키고 특정 에이전트에 대한 태스크 또는 작업 아이템을 발생시키고 그 같은 작업 아이템을 상기 에이전트로 전달함에 의해 그 같은 작업을 지시한다. 한 작업 아이템이 그와 같은 작업 아이템에 대한 완성 조건과 함께 에이전트로 전달된다. 이 같은 실시예는 비 제한적이다. 한 실시예의 에이전트는 플랫폼에 의해 이들에게 할당된 태스크 또는 작업 아이템을 실행하는 유연한 클라이언트이다.
한 실시예에서, 에이전트로 할당된 작업 아이템은 에이전트에 의해 접근가능한 메모리 장치에서의 디렉토리 또는 폴더를 에이전트가 스캔하거나 모니터하도록 지시하고, 상기 디렉토리 또는 폴더 내 어떤 파일에 대한 변경도 계속하게 보고하게 한다. 이 같은 작업 아이템은 상기 플랫폼에 의해 사용되어 상기 플랫폼에 에이전트의 등록이 있게 되면 상기 에이전트에 대응하는 파일의 메타데이터를 최초 수신하도록 한다. 따라서, 어떤 파일에 대한 변화에 응답하여, 상기 스캔 작업이 상기 에이전트로 하여금 파일의 블로브 또는 메타데이터에서의 어떠한 변화도 상기 플랫폼으로 보고하게 하며, 이는 상기 보고된 변경에 적절하게 하나 이상의 다른 에이전트로 작업을 할당하게 한다. 또한, 한 실시예의 플랫폼은 하나 이상의 에이전트로 새로운 기능을 위한 논리를 분산하도록 사용된다. 따라서, 상기 플랫폼이 새로운 기능을 제공하기 위해 에이전트를 필요로 하면, 그와 같은 기능을 가능하게 하기 위한 논리가 상기 플랫폼에 의해 적절한 에이전트로 전달될 수 있다.
상기 플랫폼에 의해 발생되고 실행을 위해 각각의 에이전트로 할당된 실시예의 태스크 또는 작업 아이템이 스캔닝, 삭제, 기록 및 업로딩을 포함한다. 한 에이전트가 파일 시스템 또는 디렉토리를 회귀적으로 모니터하고 플랫폼으로 어떤 파일에 대한 모든 변화(가령, 파일에 대한 수정, 파일로의 추가, 파일로의 삭제, 파일의 재 명명하기, 등등,)를 보고함에 의해 스캔 태스크를 수행한다. 이 같은 변화의 보고는 상기 로컬 데이터베이스 내 수정된 파일을 위치시킴을 포함하며, 그리고 상기 로컬 데이터베이스의 메타데이터는 이후에 상기 플랫폼으로 제공된다.
한 실시예의 기재 태스크는 하기에서 상세히 설명되는 바와 같이, 블로브의 기록을 포함한다. 이 같은 실시예로 제한되지는 않는다. 상기 에이전트는 제1 위치(가령 소스 장치)로부터 제2 위치(가령, 목적지 장치)로 하나 이상의 파일 블로브에 의해 기재 태스크를 수행한다. 제1 위치 및 제2 위치 각각은 기억 저장장치에서의 위치(가령, 컴퓨터 하드 디스크에서의 제1 위치로부터 컴퓨터 하드 디스크에서의 제2 위치로), 같은 도메인 내 다른 기억 저장장치에서의 위치, 그리고 둘 또는 그 이상의 다른 도메인 내 저장장치에서의 위치(가령, 한 에이전트의 파일 시스템으로부터 한 클라우드-기반의 저장장치로, 피어-투-피어 통신 등을 통하여 제1 에이전트의 파일 시스템으로부터 제2 에이전트의 파일 시스템으로)를 포함한다. 따라서 한 실시예의 소스가 그리고 그리고 클라우드-기반 또는 네트워크-기반의 기억 저장장치에서 어떠한 에이전트 파일 시스템의 하나 일 수 있다.
한 작업 아이템은 상기 설명되는 바와 같이, 그와 같은 작업 아이템에 대한 완성 조건과 함께 에이전트로 전달된다. 한 기록 작업 아이템과 관련된 완성 조건은 상기 기록을 완성하기 위해 필요한 블로브 또는 구성을 회수함을 포함하며, 겹쳐서 기록된 블로브 또는 구성은 올바른 파일이다. 겹쳐 기록된 블로브가 올바른 파일이라는 조건이 충족되지 않으면, 그러면 이 같은 보고가 플랫폼으로 제공된다.
상기 에이전트는 한 에이전트로부터 한 클라우드-기반의 기억 저장장치로 블로브를 복사함에 의해 업로드 태스크를 수행한다. 결과적으로, 새로운 파일이 에이전트의 파일 시스템 내에 놓이는 때, 상기 에이전트가 상기 플랫폼으로 파일의 추가를 보고하며, 상기 플랫폼이 상기 에이전트로 작업을 할당하여 상기 파일 블로브를 상기 클라우드-기반의 저장장치로 복사하도록 한다. 이에 응답하여, 상기 에이전트가 새로운 파일이 상기 클라우드-기반의 데이터베이스에서 존재하는 지를 결정하며, 만약 그렇지 않다면, 상기 파일을 상기 클라우드-기반의 데이터베이스로 복사한다.
한 실시예의 상기 작업 아이템은 대기(queued), 펜딩(pending), 그리고 완성(성공적으로 또는 실패로)을 포함하는 세 단계를 포함한다. 상기 플랫폼은 에이전트 각각으로 할당된 작업 아이템의 단계들을 추적하여 각 에이전트에 대응하는 파일의 상태를 추적한다.
플랫폼과 에이전트 사이 통신 효율을 극대화하기 위해, 몇 가지 정보가 상기 플랫폼과 에이전트 사이에 저장된다. 예를 들면, 한 실시예의 에이전트는 상기 작업 데이터베이스를 통하여 그와 같은 에이전트로 할당된 새로운 작업 아이템을 식별하기 위해 상기 플랫폼을 폴링(polling)하며, 그리고 주기적으로 상기 작업 데이터베이스의 할당된 작업 아이템을 수신하고 국지적으로 저장한다. 이는 상기 에이전트와 작업 아이템을 상기 에이전트로 다운로드 하기 위해 필요한 서버 사이 통신 양을 줄인다. 마찬가지로, 새로운 파일이 한 에이전트에서 식별되는 때, 상기 새로운 파일은 에이전트의 로컬 라이브러리 데이터베이스로 기록되며, 상기 로컬 라이브러리는 상기 플랫폼에서 배치로 주기적으로 복사된다. 이는 에이전트 및/또는 플랫폼이 새로운 파일의 발생시 매번 파일 전달을 수행하여야 하는 필요를 제거한다. 또한, 본원 명세서에서 상세히 설명하는 바와 같이, 본 발명 실시예의 블로브는 차별 파일(differential file) 전달을 지원하며, 블로브 그리고 시스템 내 이들의 위치를 추적하기 위해 사용된 정보 적어도 일부분이 상기 플랫폼과 에이전트 모두에 저장된다.
상기 플랫폼에 의해 할당된 작업 태스크를 수행하기 위해 한 에이전트에 의해 필요한 정보의 복구와 관련하여, 상기 에이전트는 에이전트에 의해 소유된 파일 내 현재 있지 않은 태스크를 완성하기 위해 필요한 정보의 위치를 식별하기 위해 한 계층을 포함한다. 한 실시예의 상기 계층은 로컬 메모리를 최초 조사하는 에이전트를 포함하며, 한 피어(peer)에 속하는 파일에 위치하지만 국지적으로 발견되지 않는 필요한 정보를 복구하기 위해 피어-투-피어 통신을 뒤이어 사용한다. 상기 필요한 정보가 국지적으로 발견되지 않는 때, 그리고 피어와 함께 위치하지 않는 때, 상기 에이전트가 클라우드-기반의 기억 저장장치(가령, Amazon S3, 등등) 또는 또 다른 원격 기억 저장장치 엔티티를 복구한다.
피어-투-피어 통신이 사용되어 필요한 파일들을 얻는 때, 상기 플랫폼은 에이전트에 상기 필요한 파일들을 소유하는 피어 에이전트 리스트를 제공하며, 그러나 이 같은 실시로 제한되지 않는다. 상기 플랫폼에 의해 제공된 피어 에이전트의 리스트는 순서화된 리스트(ordered list)이며, 이에 의해 에이전트가 상기 리스트의 순서를 사용하여 피어 에이전트를 접촉할 수 있도록 하며, 그러나 대안적 실시예의 리스트는 순서화되지 않을 수 있다.
도 4b와 관련하여, 실시예의 에이전트가 에이전트의 기능을 제공하기 위해 병렬로 실행하는 다수의 스레드(threads) 또는 구성을 포함한다. 예를 들면, 제공자 스레드가 상기 플랫폼의 작업 아이템 데이터베이스로부터 에이전트에 대하여 지정된 작업 아이템을 복구하며, 상기 작업 아이템 데이터베이스를 국지적으로 제공하거나 저장한다. 러너 스레드가 에이전트의 로컬 작업 아이템 데이터베이스를 모니터하며 작업 아이템을 상기 로컬 작업 아이템 데이터베이스로부터 개별적으로 폴링하고, 상기 아이템을 상기 로컬 작업 아이템 데이터베이스에서 펜딩으로 마크하며, 그리고 상기 아이템을 적절한 태스크 실행 스레드(가령, 기재 태스크가 기록 스레드로 제공된다)로 제공한다. 한 태스크 실행 스레드가 러너 스레드로부터 수신된 태스크의 실행을 완성한 때, 이는 상기 러너 스레드로 실행의 상태(가령, 성공적인 완성, 실패한 완성, 실패한 완성의 이유, 등등)를 보고하며, 그리고 상기 러너 스레드가 이와 같은 상태 정보를 상기 로컬 작업 아이템 데이터베이스로 다시 보고한다. 한 갱신 스레드가 완성된 것으로 마크된 아이템에 대하여 로컬 작업 아이템 데이터베이스를 모니터하며, 상기 완성된 작업 아이템의 상태 정보를 상기 플랫폼으로 다시 보고한다. 응답하는 플랫폼은 에이전트에 의해 완성된 작업에 적절한 플랫폼 데이터베이스를 갱신한다.
한 실시예의 플랫폼이 본원 명세서에서 설명되는 바와 같이, 각각의 에이전트에 의해 플랫폼으로 보고되는, 그와 같은 플랫폼으로 연결된 에이전트 각각에 대응하는 데이터의 메타데이터를 사용하여 동작한다. 상기 플랫폼에 대한 메타데이터를 생성하기 위해, 상기 에이전트가 동기화될 폴더 내에 이들이 가지고 있는 모든 파일들을 스캔한다. 상기 에이전트는 블로브인 가변 크기 단편으로 파일들을 나눔에 의해 파일을 만드는 데이터로부터 데이터의 단편 또는 구성을 생성하거나 발생시킨다. 상기 블로브는 핑거프린팅 알고리즘을 사용하여 생성되며 본원 명세서에서 배시(bash)라 불리는, 이들의 블로브 해시(blob hash, bash)에 의해 표시된다. 특히, 상기 에이전트는 사전에 명시된 수의 바이트에 대하여 빠른-윈도우 체크섬을 실행함에 의해 블로브를 발생시킨다. 한 실시예가 사전에 명시된 최소 길이 그리고 최대 길이 사이인 가변 크기를 갖는 데이터 부분들을 생성한다.
핑거프린트로 언급되는, 파일들을 구성 부분들로 나누는 과정은, 데이터의 슬라이스에 대해 해시 알고리즘을 실행함을 포함하며, 상기 해시 알고리즘은 특정 패턴의 데이터(가령, 12개의 "0" 비트 시퀀스; 3개의 "0" 비트 시퀀스; 6개의 "1" 비트 시퀀스, 등등)를 식별하도록 정해진다. 각 피스의 "크기"는 해시 스트링을 세팅하여 결정되는 데, 이는 12 비트의 연속된 스트링이 덜 자주 발생되고 따라서 3 비트의 연속된 스트링보다 더욱 긴 데이터 슬라이스를 발생시키기 때문이다. 상기 핑거프린트는 한 파일 내에 데이터 블록의 경계를 결정하며 이들 경계가 둘 또는 그 이상의 파일들 사이에서 공동 블록 또는 부분들을 결정하기 위해 사용된다.
한 해시가 사전에 명시된 크기의 슬라이딩 윈도우에서 해시 알고리즘을 사용하여 파일 내 바이트 각각에 대하여 생성된다. 예를 들면, 한 실시예에서, 상기 해시는 48-바이트 윈도우에서 BUZ 해시 알고리즘을 사용하여 상기 파일 내 각 바이트에 대항 생성되며, 상기 해시 알고리즘의 적용 결과는 64-비트 수이다. 상기 해시가 특정 값을 갖는 때(가령, 12 비트 이하이고 모두 "0" 비트인 때). 본원 명세서에서 매치 값이라 불리며, 파일 내 이같은 포인트에서 한 브레이크가 생성된다. 한 실시예의 매치 값은, 가령 상기 윈도우의 12 비트 이하가 "0" 비트인 때 발생된다.
블로브를 생성하면, 상기 블로브가 파일의 나머지 부분으로부터 잘리거나 분리된 포인트에서 해시 값, 상기 블로브의 완료 콘텐츠의 해시, 상기 블로브의 브레이크 포인트에 기초한 오프셋 값, 그리고 상기 블로브의 크기(가령, 길이)를 포함하는 블로브의 설명이 발생된다. 상기 블로브의 완료 콘텐츠를 해시하기 위해 사용된 실시예의 해시 함수는 스케인 크립토그래픽(skein cryptographic) 해시 함수(내부 상태 크기가 512비트이고, 160 비트의 출력을 발생시킨다), 그러나 이 같은 실시예로 한정되지 않는다. 상기 블로브의 완료 콘텐츠의 해시는 상기 블로브에 대한 고유 식별자로서 작용한다. 한 파일이 보고되거나 이 같은 파일을 포함하는 모든 블로브들의 리스트로서 설명되며, 파일 해시들의 이 같은 리스트가 대응하는 파일 콘텐츠의 매니패스트로서 작용한다.
한 실시예의 블로브가 중앙 기억 저장장치 엔티티에서 저장되며, 그러나 이 같은 실시로 제한되지 않는다. 그와 같이 함에 있어, 상기 플랫폼이 앞서 어떠한 에이전트에 의해서도 보고되지 않은 블로브를 중앙 클라우드-기반의 기억 저장장치 엔티티(central cloud-based storage entity)로 전달하도록 에이전트 각각에 지시하며; 일 예로서 상기 중앙 기억 저장장치가 아미존 심플 스토리지 서비스(Amazon Simple Storage Service)(S3)를 포함할 수 있다. 따라서, 모든 블로브가 하나 이상의 에이전트에 국부적으로 저장되며 중앙 기억 저장장치에 저장된다. 뒤이어, 한 에이전트가 블로브를 보고하고 상기 플랫폼이 에이전트를 지시하여 그와 같은 블로브가 앞서 또 다른 에이전트에 의해 보고되지 않았다면 블로브를 상기 중앙 기억 저장장치로 전달하도록 한다.
상기 설명된 배시에 추가하여, 한 실시예의 시스템은 시스템 내 데이터를 설명하는 데 사용하기 위한 다수의 다른 해시를 포함한다. 예를 들면, 한 파일 콘텐츠를 만드는 블로브의 완전한 리스트가 상기 설명한 바와 같이 해시되어서 완전한 파일을 위한 고유한 식별자를 발생시키도록 한다. 상기 완전한 파일의 이 같은 해시 식별자는 콘텐츠 해시(content hash, cash)라 불리며, 두 파일이 동일한 콘텐츠를 포함하는가를 결정하기 위해 빠른 비교를 허용한다.
한 실시예의 또 다른 해시는 상기 콘텐츠 해시(content hash)와 성명 해시의 조합 해시를 포함하며, 본원 명세서에서는 파일 해시(file hash, 훼시)(fash)라 불린다. 상기 훼시는 따라서 특정 위치에서 파일의 콘텐츠를 식별한다.
한 실시예의 해시는 경로 해시 그리고 메타데이터 해시를 포함한다. 상기 경로 해시 또는 파일 경로 해시는 패시라 불리며, 파일 명칭 그리고 파일의 경로의 해시이다. 매시(mash)라 불리는 메타데이터 해시는 파일 메타데이터(가령, 파일 명칭, 크기, 날짜, 위치 등)의 해시이다. 여기서 설명된 해시는 에이전트에 의해 발생되며 플랫폼으로 전달되며, 이 같은 실시로 제한되지 않는다.
대안적 실시예는 설명된 바와 같이 데이터 블록을 형성하기 위해 해싱을 사용하며, 버전 정보로 각 블록을 저장한다. 이는 버전닝(versioning)을 가능하게 하여 이 같은 버전닝 정보가 파일의 더욱 오래된 버전을 생성하기 위해 데이터를 재조립(reassemble)하도록 사용된다.
한 실시예의 해시를 사용하여, 레코드가 각 파일을 위한 플랫폼에서 생성되며, 모든 파일을 위한 모든 레코드가 파일의 모든 배시(bash) 뿐 아니라, 캐시, 훼시, 패시 그리고 매시를 포함한다. 상기 라이브러리 데이터베이스는 각 파일의 이들 기록을 포함하며, 그러나 이 같은 실시예는 상기 라이브러리 데이터베이스 내에 이들 기록의 포함으로 제한되지 않는다. 상기 플랫폼은 에이전트에 의해 보고된 그리고 이들 기록에 포함된 정보 또는 데이터의 상태를 사용하여 어느 에이전트가 변경 또는 새로운 데이터로 인하여 오래된(out of date) 데이터 버전을 갖는가를 결정하도록 하며, 그리고 에이전트들 사이에서 파일 버전을 조화시키도록 한다. 상기 플랫폼은 훼시(fash)(파일 콘텐츠 및 파일 명칭의 해시)를 사용하여 파일의 상태 그리고 한 에이전트에 의해 보고된 한 파일이 파일 중 가장 최근 버전인가를 결정하도록 한다. 다음에 상기 플랫폼이 하나 이상의 파일을 가장 최근 버전의 파일로 갱신할 필요가 있는 에이전트로 작업을 발생시킨다.
특정 데이터 또는 블로브를 찾도록 상기 플랫폼에 의해 지시된 때, 에이전트 각각이 먼저 상기 파일 매니패스트의 로컬 카피(local copy)에 문의하여 상기 데이터에 대응하는 한 특정 해시를 갖는 블로브가 로컬 기억 저장장치에서 이용될 수 있는 결정하도록 한다. 상기 에이전트가 상기 파일을 찾지 못하는 때, 한 피어-투-피어 프로토콜을 사용하여 한 피어 에이전트에서 상기 파일을 찾기를 시도한다. 상기 피어-투-피어 프로토콜을 사용하는 때, 상기 에이전트가 상기 파일을 갖는 에이전트의 리스트 정보를 사용하여 선택적으로 파일을 찾도록 하며, 대안적 실시예가 데이터를 찾기 위한 하나 이상의 계층을 포함하며 이는 피어-투-피어 프로토콜로 제한되지 않는다.
피어-투-피어 통신은 한 실시예의 에이전트 중에서 지원되며, 이와 같이 함에 있어서, 각 에이전트가 상기 플랫폼으로 개인 IP 주소 그리고 청취하는 포트를 보고하다. 또한, 이 같은 플랫폼은 공공 IP 주소 그리고 에이전트가 상기 개인 정보를 보고하는 시간에(가령, 상기 에이전트의 등록 중에, 등등) 에이전트 각각의 포트를 관찰한다. 상기 플랫폼은 상기 개인 IP 주소 및 포트 그리고 각 에이전트의 공공 IP 주소 및 포트와 함께 모든 에이전트의 리스트를 발생시키며 유지시킨다. 뒤이어서, 제1 에이전트가 제2 에이전트와 피어-투-피어 통신을 설정하기를 원하는 때, 상기 제1 에이전트가 문의를 하고 상기 플랫폼으로부터 제2 에이전트의 공공 및 개인 IP 주소 및 포트를 수신하고, 다음에 이 같은 공공 및 개인 정보를 사용하여 둘 모두로의 연결을 시도한다.
한 실시예의 에이전트들 사이에서 피어-투-피어 통신이 공공-키 암호화를 위한 RAS 알고리즘을 사용하여 암호화되며, 그러나 이 같은 실시로 제한되지 않는다. 한 실시예의 암호화는 그리드 내에 국지적으로 모든 키들을 보유하거나 저장하지 않으며, 따라서 상기 그리드 바깥의 어떠한 엔티티도 암호화되지 않은 데이터에 접근할 수 없다. 또한, 어떠한 완성 파일도 상기 플랫폼에서 저장되지 않기 때문에 추가의 데이터 보안이 실현된다.
에이전트들 사이에서 암호화된 피어-투-피어 통신을 포함하는 한 예에서, 제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에 의해 사용되어 피어-투-피어 통신을 위한 암호화된 통신 채널을 형성하도록 한다.
도 4와 관련하여, 이는 플랫폼 그리고 에이전트를 포함하는 실시예 시스템의 블록도이며, 상기 플랫폼은 작업을 발생시키거나 생성시키며, 본원 명세서에서 상세히 설명되는 바와 같이, 그와 같은 작업을 에이전트로 할당한다. 이 같은 에이전트는 다음에 플랫폼에 의해 이들에게 할당된 작업을 할당한다. 다음에 상기 에이전트는 상기 플랫폼에 의해 이들에게 할당된 작업을 수행하며 이들의 데이터와 수행된 작업의 정보를 플랫폼으로 제공한다. 한 실시예의 에이전트가 상기 플랫폼에 의해 지시되는 작업을 수행하기 때문에, 이들은 애플리케이션도 사용자도 아니다. 동작시에, 각 에이전트는 동작을 위해 이용될 수 있기 전에 패스포트를 사용하여 상기 플랫폼에 등록된다. 한 실시예에서 상기 플랫폼에서 수신된 패스포트는 대응하는 에이전트를 식별하는 키와 정보를 포함한다. 상기 플랫폼은 상기 플랫폼에 이용될 수 있는 모든 에이전트의 리스트 그리고 에이전트 각각의 관련 정보를 포함하며, 에이전트는 상기 플랫폼에 등록되자마자 상기 플랫폼에 의해 에이전트 데이터베이스 내에 위치한다.
상기 에이전트 데이터베이스에 추가하여, 한 실시예의 플랫폼이 상기 클라우드 내 다수의 다른 데이터베이스를 포함하며 이에 연결되고, 여기서 한 실시예의 에이전트 그리고 플랫폼이 상기 데이터베이스에 연결되고 상기 데이터베이스를 사용하여 정보를 교환한다. 상기 데이터베이스는 상기 설명된 바와 같이 에이전트 데이터베이스로 제한되지 않으며, 라이브러리 데이터베이스 그리고 목표 데이터베이스를 포함한다. 에이전트 각각은 이들의 로컬 디스크 또는 기억 저장장치를 대표하는 하나 이상의 라이브러리를 가질 수 있으며, 상기 라이브러리 데이터베이스는 대응하는 에이전트에 이용될 수 있는 기억 저장장치의 리스트를 포함한다. 상기 목표 데이터베이스는 특정 태스크가 수행되는(가령, 동기화되는) 라이브러리 집합체인 목표의 리스트를 포함한다.
상기 라이브러리 데이터베이스와 관련하여, 에이전트 각각은 본원 명세서에서 라이브러리로 불리는 기억 저장장치 마운트 포인트를 식별한다. 마운트로는 가령 디스크 또는 디스크 드라이브, 네트워크 마운트 포인트, 하드 드라이브, 플래시 드라이브, 그리고 기억 저장장치 서비스 등 에이전트가 판독 및/또는 기재 액세스가 허락되는 어떠한 장치를 포함할 수 있으며, 그러나 이들로 제한되지는 않는다. 상기 플랫폼 그리고 각 에이전트는 시스템의 라이브러리 리스트를 포함하는 글로벌 라이브러리 데이터베이스를 포함하며, 각각이 각 라이브러리에 걸친 시스템의 에이전트와 대응한다.
추가로, 각 에이전트는 주기적인 "스냅샷"의 사용 또는 라이브러리 각각의 스캔을 통해 라이브러리 각각의 콘텐츠에 대한 정보를 제공하며, 상기 에이전트 및 플랫폼이 상기 스냅샷의 정보를 사용하여 라이브러리 내 모든 파일들의 현재 상태를 추적한다. 상기 라이브러리 데이터베이스는 문의가 그리드 내 라이브러리 각각을 찾을 수 있도록 하며 상기 라이브러리에 접근할 수 있는 에이전트를 각각을 식별할 수 있도록 한다. 이 같은 아키텍쳐는 상기 에이전트 그리고 플랫폼이, 만약 각각 한 특정 식별을 갖는 라이브러리에 접근하면 각각이 동일한 라이브러리에 접근함을 알 수 있도록 한다. 따라서, 라이브러리 각각은 라이브러리 데이터베이스에서 개별적으로 그리고 분리하여 제공된다. 한 실시예의 플랫폼 그리고 에이전트 각각은 그리드의 모든 라이브러리 정보를 포함하는 전체 라이브러리 데이터베이스를 포함하며, 그러나 이 같은 실시예로 한정되지 않는다. 선택적으로, 상기 플랫폼은 그리드 내 모든 라이브러리의 전체 라이브러리 데이터베이스를 포함하며, 에이전트 각각은 특정 에이전트에 의해 접근 가능한 라이브러리의 정보를 포함하는 로컬 라이브러리 데이터베이스를 포함한다.
상기 플랫폼은 또한 태스크를 수행하기 위해 에이전트에 의해 사용된 목표를 포함한다. 목표는 에이전트, 마운트, 작업 등등을 취급하는 대신 라이브러리만을 취급한다. 하나 이상의 라이브러리에 대응하는 목표는 상기 라이브러리의 콘텐츠에 대한 동작 또는 작업을 수행하도록 사용된다. 또한, 한 라이브러리는 한 실시예에서 다수의 목표에 대응할 수 있다.
한 실시예의 플랫폼은 각 에이전트에 대응하는 작업 데이터베이스를 포함하며, 상기 에이전트는 상기 플랫폼으로부터 작업 데이터베이스를 수신한다. 상기 플랫폼은 에이전트 각각에 대하여 작업 데이터베이스를 발생시키며, 상기 대응하는 에이전트에 의해 달성될 작업 태스크를 상기 작업 데이터베이스 내에 놓는다. 이 같은 작업 데이터베이스는 상기 작업을 수행하기 위해 상기 에이전트에 의해 필요한 모든 정보와 함께 에이전트에 의해 수행될 태스크 각각의 설명을 포함한다. 상기 플랫폼에 의해 상기 작업 데이터베이스 내에 위치한 어떠한 태스크도 상기 그리드에서 수행된 다른 작업에 응답하여 동적으로 수정되거나 삭제된다. 예를 들면, 만약 한 태스크가 "파일 A를 파일 B로 다시 명명하기 위해" 작업 데이터베이스 내에 놓이면, 그리고 뒤이어 파일 B가 파일 C로 다시 명명될 것이면, 그러면 상기 플랫폼을 상기 작업을 "파일 A를 파일 C로 다시 명명할 것"으로 상기 작업을 수정한다. 또한, 뒤이어 더 이상 쓸모가 없는 태스크는 작업 데이터베이스로부터 제거된다.
한 실시예에서, 한 에이전트가 상기 플랫폼으로 그 능력에 대한 정보를 제공한다. 선택적으로, 상기 플랫폼은 그리드의 모든 에이전트 능력의 전체 정보를 포함하는 능력 데이터베이스를 포함하거나 발생시킨다.
에이전트는 상기 설명한 바와 같이, 작업 할당 또는 이들 각각의 작업 데이터베이스를 통해 플랫폼에 의해 발생된 태스크를 수신한다. 상기 작업 데이터베이스 내 각각의 이산 작업 아이템은 에이전트에 의해 취해질 액션을 설명하는 동사(verb)를 포함한다. 예를 들여, 한 실시예의 에이전트에 의해 실행될 수 있는 태스크는 스캐닝, 삭제, 기록, 그리고 업로딩 등을 포함한다. 한 작업 아이템은 그 같은 작업 아이템을 위한 완성 조건과 함께 에이전트로 전달된다.
예를 들면, 상기 스캔 태스크는 상기 플랫폼으로 에이전트 라이브러리 내 파일의 현재 상태를 보고함을 포함하고, 그리고 상기 플랫폼을 상기 라이브러리의 콘텐츠에 가해진 플랫폼 변화(가령, 파일의 추가, 파일의 삭제 등등) 그리고 상기 라이브러리의 어떤 파일로도 만들어진 변화를 보고함을 포함한다.
또 다른 태스크는 에이전트가 적절한 파일을 발견하고, 상기 파일을 블로브로 나누고, 이들 블로브를 암호화하며, 그리고 클라우드-기반의 기억 저장장치와 같은 오브젝트 저장장치로 파일을 형성하는 블로브의 리스트를 기록하거나 전달하는 업로드 태스크이다. 데이터가 한 오브젝트 기억장치로 기록되는 때, 상기 데이터는 콘텐츠가 어드레스되어서, 상기 블로브의 해시가 상기 오브젝트 저장장치로 전달되고 뒤이어서 상기 블로브/데이터를 참고하도록 사용된다(즉, 상기 파일 명칭은 해시이다).
한 실시예의 태스크는 또한 파일의 하나 이상의 블로브를 찾으며 이들 블로브를 제1 위치(가령, 소스 장치)로부터 제2 위치(가령, 목적지 장치)로 상기 블로브들을 복사함을 포함한다. 수신된 기재 태스크에 응답하여, 한 에이전트가 대응하는 에이전트 라이브러리에서 블로브를 찾아낼 것을 시도한다. 만약 상기 블로브가 발견되지 않는다면, 그러면 상기 에이전트는 상기 블로브를 가지고 있음을 보고한 피어 에이전트에서 블로브를 찾을 것을 시도한다. 만약 상기 블로브가 한 피어 에이전트에서 발견되지 않는다면, 그러면 상기 에이전트는 상기 오브젝트 저장장치(가령, 클라우드-기반의 기억 저장장치)로부터 상기 파일을 복구한다. 전체 파일이 기록되어야 하는 때, 블로브의 리스트가 파일의 매니패스트로서 보고되거나 기록된다.
도 4와 관련하여, 한 실시예 동작은 문서의 버전이 또 다른 장치/에이전트에서 발견된 가장 최근의 버전이 아니라는 결정에 응답하여 장치/에이전트에서의 문서의 동기화를 포함한다. 패스포트를 사용하여 상기 에이전트 AGENT_X 등록 후에. 상기 에이전트는 상기 에이전트의 라이브러리 LIBRARY_X 콘텐츠를 포함하는 라이브러리 파일을 발생시키고 상기 플랫폼으로 제공하기 위해 스캔을 수행할 것을 지시받는다. 상기 스캔을 시작하기 위해, 상기 플랫폼은 상기 스캔 태스크를 특정한 에이전트(가령, AGENT JX)를 위한 상기 작업 데이터베이스(가령, WORK AGENTX)로 추가하며, 그리고 상기 플랫폼이 파일을 동기화하기 위해 필요한 모든 작업을 에이전트를 위한 작업 데이터베이스로 기록한다.
상기 라이브러리 LIBRARY_X 는 AGENTJX 에 의해 접근할 수 있는 마운트 상에 있는 파일들에 대한 메타데이터를 담고 있으며, 라이브러리 식별자 또는 필터에 의해 파일의 서브셋을 정의하는 메타데이터를 포함한다. 따라서, 상기 라이브러니는 한 마운트 상에 존재하는 한 세트의 파일들의 메타데이터를 포함한다. 상기 스캔은 플랫폼으로 제공되는 메타데이터를 발생시키는 일정하게 실행되는 잡(job)이며, 여기서 상기 메타데이터는 "스캔된" 라이브러리 각각에 대하여 그 같은 라이브러리(가령, LIBRARY_X) 콘텐츠를 대표한다. 결과적으로, 일반적으로, 에이전트 각 각에서 라이브러리 각각의 미러가 발생되며 상기 플랫폼의 라이브러리 데이터베이스 내에 놓여서 상기 라이브러리 데이터베이스가 에이전트 각각에 의해 액세스 가능한 마운트로 특정 필터의 적용에 기초한 상기 필터된 메타데이터를 포함하도록 한다.
상기 플랫폼에 의해 액세스 가능한 모든 에이전트로 적용된 상기 동작의 결과로서, 상기 플랫폼이 이것이 접근하는 에이전트의 모든 파일들 콘텐츠의 메타데이터를 포함한다. 상기 플랫폼은 또한 이 같은 예의 목적으로 목표 데이터베이스 내에 또 다른 에이전트(도시되지 않음)의 LIBRARY_X 및 LIBRARY_Y를 위한 "동기화(sync)" 목적을 포함한다. 이 같은 동작은 동기화 문서를 발생시키며, 그리고 상기 동기화 문서는 모든 파일에 대응하는 엔트리를 사용하여 이들 라이브러리 각각에서 모든 파일의 현재 서명 또는 목표 상태를 추적하며, 라이브러리 파일 또는 아이템들이 이들 각각의 라이브러리에서 변경하는 때 목표 상태를 갱신한다. 이 같은 예를 사용하여, 상기 동기화 문서가 LIBRARY_X 및 LIBRARY_Y의 현재 목표 상태를 추적하며, 어느 파일도 현재의 목표 상태에 있지 않다면, 그러면 작업이 발생되고 상기 플랫폼에 의해 할당되어 LIBRARY_X 및 LIBRARY_Y를 올바른 (동일한) 목표 상태에 있도록 한다. 이 같은 예에서, 상기 목표 상태는 마지막 그리고 가정 현재 상태에 의해 결정되며, LIBRARY_Y 의 문서는 가장 현재의 파일 버전이어서 작업이 AGENT X로 할당되어서 LIBRARY_X의 파일들을 LIBRARY_Y의 파일들과 같은 상태로 갱신하도록 한다. 다음에 상기 시스템은 적절한 엔티티(가령, 피어 에이전트(들), 원격 기억 저장장치, 등등)을 포함하는 한 세션을 개시하며, 필요한 정보가 복구되어 데이터를 교환하고 상기 라이브러리를 동기화하도록 한다.
에이전트들 사이의 파일 동기화와 관련된 또 다른 예시는 도 5에 도시되는데, 이는 실시예에서, 플랫폼과 에이전트 사이의 파일 동기화와 관련된 예시의 블록도이다. 이 같은 예는 세개의 에이전트(A 502, B 504, 및 C 506)를 포함하며, 각 에이전트가 대응하는 라이브러리(LIB_A 508, LIB B 510, 및 LIB C 512)를 갖지만 이들로 제한되지는 않는다. 상기 플랫폼은 목표 데이터베이스에서 한 목적(514)을 포함하여, 이들 세 라이브러리를 동기화하도록 한다. 상기 플랫폼은 다수의 레코드(516)를 포함하는 라이브러리 데이터베이스를 포함하며, 이들 레코드 각각은 상기 플랫폼에 의해 관리되는 싱글 파일에 대응한다. 레코드 각각은 파일의 각 경우에 대한 엔트리의 형태로 정보를 포함하며, 이 같은 엔트리는 파일 및 파일 경로(P)의 해시를 포함하는 라이브러리의 정보를 포함한다.
이 같은 예의 목적을 위해 특정 파일을 위해 에이전트 B 및 C(가령, H)가 아닌 다른 해시(가령, H2)를 보고한다. 상기 플랫폼은 라이브러리 데이터베이스의 정보로부터 에이전트 A가 에이전트 B 및 C의 파일이 아닌 파일에 대한 다른 해시 정보를 보고하고 그리고 에이전트 A의 파일은 파일의 가장 최근 버전임을 결정한다. 이에 응답하여, 상기 플랫폼은 이들 파일들을 에이전트 A에 의해 소유되는 가장 최근 버전으로 갱신하기 위해 에이전트(B 518 및 C 520 (가령, WORK_B 및 WORK_C))에 대한 작업을 발생시키며 이들 파일들을 에이전트 A에 의해 소유되는 가장 최근 버전으로 갱신하도록 한다. 발생된 작업은 대응하는 파일을 찾고 펫칭(fetch)하며 복구된 정보를 사용하여 이들의 파일을 갱신하는 것이며 상기 작업 태스크는 상기 플랫폼에 의해 플랫폼의 작업 데이터베이스 내로 놓인다. 한 실시예의 플랫폼에 의해 발생된 상기 작업 태스크는 파일의 가장 최근 버전이 저장되는 시스템에서 위치의 정보(가령, 에이전트 A)를 포함하며, 그러나 이에 한정되지 않는다. 상기 작업 태스크는 적절한 위치(가령, 상기 파일의 블로브를 제어하는 하나 이상의 에이전트)로부터 대응하는 파일을 펫칭하기 위한 정보를 포함하며 상기 복구된 정보를 사용하여 파일들을 갱신하도록 한다. 상기 작업 태스크는 상기 플랫폼에 의해 플랫폼의 작업 데이터베이스 내로 위치된다.
이 같은 예에서, 에이전트 B 그리고 C는 이들 각각의 작업(가령, WORK_B 및 WORK_C 각각)을 상기 플랫폼의 작업 데이터베이스로부터 복구한다. 상기 작업을 완성하자 마자, 에이전트 A, B, 및 C 각각은 에이전트 A, B, 및 C(미도시)의 라이브러리 내 해시(H2)에 의해 표시되는 바와 같이, 파일의 가장 최근 버전을 포함한다. 또한, 에이전트 B 및 C 각각은 작업 태스크의 완성을 상기 플랫폼으로 보고한다.
좀 더 구체적으로, 도 6은 실시예에서, 에이전트, 플랫폼 및 데이터베이스와 관련된 예시적인 순서도이다. 이 같은 실시예에서, 새로운 에이전트 A는 플랫폼에 등록되며(602) 새로운 에이전트 A에 대응하는 에이전트 데이터베이스에서 한 엔트리가 생성된다. 상기 에이전트 데이터베이스에 추가되는 에이전트 A에 응답하는 플랫폼이 상기 새로운 에이전트 A를 위한 작업 데이터베이스 WORK_A를 생성한다(604). 상기 작업 데이터베이스 WORK_A는 대응하는 에이전트 A를 위한 작업 또는 태스크를 포함하도록 발생된다. 또한, 한 새로운 라이브러리 엔트리가 상기 새로운 에이전트 A에 대응하는 라이브러리 데이터베이스로 추가되며, 이에 응답하여, 새로운 데이터베이스(LIB_LA, 608)가 에이전트 A의 라이브러리 정보를 위해 생성된다. 또한, 새로운 동기화 목적(SYNC(LA), 610)이 발생되며 목표 데이터베이스로 추가되고, 그리고 상기 새로운 동기화 목적은 정보를 포함하는 데, 이 같은 정보에 의해 새로운 에이전트 A의 파일들 그리고 상기 플랫폼이 액세스하는 다른 에이전트의 파일들 가운데에서 동기화를 지시하다.
새로운 에이전트 A의 등록에 응답하여서, 상기 플랫폼이 라이브러리 A의 콘텐츠 정보를 처음 요구하며, 다음에 라이브러리 A의 콘텐츠 변화에 대한 정보를 요구한다. 도 7은 실시예에서, 라이브러리를 스캔하고 동기화하기 위한 동기화 목표(sync goal)의 사용과 관련된 예시적인 순서도이다. 에이전트 A의 등록 프로세싱(702)에 뒤이어, 상기 동기화 목표 SYNC(LA)가 동작하여, 작업 태스크를 발생시키고, 에이전트 A의 상기 작업 데이터베이스(WORK_A)로 추가시킨다(704). 에이전트 A는 본원 명세서에서 상세히 설명되는 바와 같이, 라이브러리의 최초 콘텐츠를 결정하거나 알기 위해 라이브러리 A의 모든 콘텐츠를 스캔함에 의해 작업 태스크에 응답한다. 라이브러리 A 모든 콘텐츠의 메타데이터를 플랫폼으로 전달함에 추가하여, 라이브러리 A의 콘텐츠가 뒤에 가서 사용되어 언제 라이브러리 A의 콘텐츠로 변화가 발생하는가를 결정하도록 한다.
라이브러리 A 콘텐츠의 정보를 사용하여, 에이전트 A가 뒤에가서 콘텐츠에 어떠한 변화가 있었는지에 대해 라이브러리 A를 모니터한다. 이 같은 변화는 새로운 파일 추가, 한 파일의 삭제, 어떤 파일 콘텐츠에 대한 변경, 그리고 파일의 명칭 새로이 명명하기 등등을 포함할 수 있다. 라이브러리 A의 콘텐츠에 대한 변화를 검출함에 추가하여, 에이전트 A가 변경(706)을 라이브러리 데이터베이스 LIB_LA 내로 한 변경(706)을 포스트한다. 또한, 에이전트 A가 상기 플랫폼으로 상기 라이브러리 A의 콘텐츠 변경에 대응하는 메타데이터를 상기 플랫폼으로 보낸다.
한 실시예의 플랫폼은 동기화 데이터베이스를 포함한다. 상기 플랫폼은 상기 동기화 데이터베이스를 발생시키며 에이전트와 파일 상태의 레코드를 포함하고 유지시키도록 하며, 특히 파일 및/또는 에이전트에 대응하는 콘텐츠 해시를 포함하는 각 파일 및/또는 각 에이전트에 대한 엔트리를 포함한다. 상기 데이터베이스 라이브러리 LIB_LA 내 변경의 포스팅을 플랫폼이 검출하는 때, 상기 플랫폼이 라이브러리A 내 그 같은 변경을 반영하기 위해 상기 동기화 데이터베이스를 갱신한다(708). 라이브러리 A에 대한 이 같은 변경은 다른 라이브러리(가령, B 및 C)가 더 이상 라이브러리 A와 동기화되지 않음을 의미한다. 결과적으로, 상기 플랫폼은 다른 라이브러리의 에이전트(710)에 대한 작업을 발생시켜서 라이브러리 A의 콘텐츠과 동기화되도록 라이브러리를 갱신하도록 한다. 따라서, 이 같은 실시예에서, 작업 태스크가 에이전트 B 및 C에 대하여 발생되어 이들의 라이브러리를 동기화하도록 한다.
또 다른 실시예로서, 한 실시예의 플랫폼 및 에이전트가 모든 데이터를 네트워크 기억 저장장치에서 저장하는 대신, 이때 데이터가 기억 저장장치로 전달될 것을 필요로 하는 것인데, 가상의 NAS. So를 형성하며, 상기 플랫폼 그리고 에이전트가 데이터 그리고 플랫폼의 대응하는 메타데이터의 인덱스를 사용하여 가상의 NAS를 발생시키도록 사용될 수 있다. 이 같은 방식으로, 상기 NAS는 그리드를 형성하는 계산 장치의 수집을 사용하여 형성되며 따라서 사이트상에 있으며 상기 자신의 에이전시에 의해 제어된다.
한 실시예에서, 작은 오피스 환경이 오피스 내 모든 컴퓨터를 백업하는 데 사용하기 위한 네트워크 결합 스토리지(Network- Attached Storage)(NAS)를 포함한다. 그러나 일정 기간이 지난 뒤에, 오피스 컴퓨터의 데이터는 NAS 장치의 모든 메모리를 소모하며 상기 네트워크의 컴퓨터를 백업하기 위해 추가의 기억 저장장치가 필요하다. 종래의 기술을 사용하여, 제1 NAS가 더욱 큰 메모리를 갖는 NAS로 대체될 것이 필요할 것이며, 또는 오피스 내 각 컴퓨터는 NAS에 할당될 것을 필요로 하고 따라서 모든 컴퓨터가 같은 NAS에서 백업 되지 않도록 할 것이다. 그러나, 한 실시예의 플랫폼 사용은 이 같은 문제를 제거하는 데, 이는 상기 플랫폼이 메모리 장치 각각에서 호스트된 에이전트 또는 선택적으로 오피스 내 컴퓨터 각각에서 호스트된 에이전트와 통신하도록 사용되기 때문이며, 이때 에이전트 각각은 NAS 각각으로 기록하는 능력을 갖는다. 이와 같이 함에 있어서, 상기 플랫폼은 상기 에이전트를 통하여 형성된 그리드의 모든 멤버와 통신하며, 이 같은 통신에 의하여 상기 플랫폼이 오피스의 모든 데이터 위치에 대한 정보를 갖는다. 오피스 데이터의 메타데이터를 사용하여, 플랫폼은 에이전트가 백업 데이터를 저장하는 위치에 대하여 또는 에이전트가 프로세싱 동작을 완성하기 위해 그 같은 에이전트에 의해 필요한 데이터를 복구하거나 판독하기 위한 위치에 대하여 에이전트 각각으로 지시할 수 있다.
한 실시예의 플랫폼과 관련된 또 다른 예시적인 애플리케이션으로서, 사용자는 디지털 픽쳐를 폴더 내에 위치시키며, 뒤이어서 트위터 애플리케이션을 사용하여 상기 폴더 내에 담긴 모든 픽쳐들을 트위트하고자 한다. 한 실시예에서, 한 트위터 API에서 한 에이전트가 설치되며, 상기 플랫폼은 상기 폴더 내로 위치하는 모든 픽쳐가 트위터로 제공되는 목적을 포함한다. 이 같은 목적을 사용하여, 상기 플랫폼은 픽쳐를 트위터로 제공하도록 그 같은 에이전트에 지시하며, 다음에 상기 트위터 에이전트가 상기 포토를 사용하여 한 트위트를 발생시키도록 지시받을 수 있다. 또 다른 실시예로서, 상기 트위터 에이전트는 NAS 에서의 한 특정 위치에 있는 계좌에 수신된 모든 트위트를 저장하도록 플랫폼에 의해 지시를 받을 수 있다.
또 다른 실시예에서, 한 실시예의 플랫폼은 파일 전달 대신 콘텐츠 트랜스코딩 및 스트림잉을 제공한다. 이 같은 경우, 한 장치로 다운로드 될 상대적으로 큰 파일이 완전한 파일을 상기 장치로 다운로드 하는 대신 하나 이상의 피어 에이전트로부터 상기 장치로 트랜스코드 및 스트리밍 될 수 있다.
민감한 데이터를 사업상 보호하기 위하여, 일 실시예의 플랫폼은, 본 명세서의 상세한 설명에 기술된 바와 같이, 모바일 장치, 데스크톱 및 공공, 개인 또는 로컬 클라우드에 걸쳐 사업 콘텐츠를 위한 가시성, 분석, 관리 및 보안을 제공하는, 서비스로서의 소프트웨어(software-as-a service, SaaS)-기반의 데이터 동기화 및 콘텐츠 관리 플랫폼을 포함한다. 플랫폼은 장치, 사용자 및 지리적 분포에 걸친 콘텐츠를 찾고, 추적하며 관리할 수 있는 클라우드-기반의 분산형 데이터 시스템을 포함한다. 플랫폼은 피어-투-피어(P2P) 시스템의 강도와 좀 더 전형적인 클라우드 데이터 저장 플랫폼의 중심화 및 제어를 결합시키도록 구성된다. 이러한 신규의 하이브리드 접근법은 단호한 제어 및 보안을 가져온다.
일 실시예의 플랫폼은 플랫폼의 클라우드-기반의 정책 엔진, 불가지론 파일(agnostic file) 저장 환경, 높은 효율의 데이터 전송, 자동화된 데이터-발견 및 세그멘테이션 및 멀티-레이어된 기업 등급 보안의 결과처럼, 다른 클라우드-기반의 동기화 및 콘텐츠 관리 플랫폼과 상이하다. 종래의 클라우드 서비스 환경에서, 클라우드는 "덤 저장(dumb storage)"으로 역할하는 반면, 대부분의 플랫폼 인텔리전스는 모바일 및 데스크톱 클라이언트에 호스트된다. 일 실시예의 플랫폼은 좀 더 유연하고, 강력하며 안전한 접근법을 취한다. "덤 저장"에 접근하는 "스마트 클라이언트" 대신에, 플랫폼은 "덤 클라이언트"를 안내하는 "스마트 클라우드"를 가진다. 이러한 접근법을 가지고, 플랫폼은 클라이언트(모바일 및 데스크톱 장치)로 커맨드를 발생시키고, 기능 및 보안성을 개선시킨다.
도 8은 실시예에서, 정책 데이터베이스 및 규칙 엔진을 포함하는 플랫폼의 블록도이다. 플랫폼은 정책 데이터베이스(policy database) 내의 클라우드 레벨에서 모든 서비스 정책을 포함하고, 정책 데이터베이스는 플랫폼 규칙 엔징에 연결된다. 예를 들어, 정책은 "폴더 X 내의 새로운 파일을 사용자 A, B 및 C의 장치로 복사하기"일 수 있다. 정책 데이터베이스의 정책에 더하여, 플랫폼은 파일 메타데이터, 사용자, 장치 그룹 및 조직의 완성된 데이터베이스를 유지하여, 플랫폼에게 환경의 완전한 이해를 제공한다. 플랫폼의 컨피규레이션은 장치 특징, 파일 메타데이터 및 허락(가령, 사용자 허락, 그룹 허락, 조직 허락등)을 수신하기 위해 연결된다.
클라이언트 레벨에서, 로컬 에이전트는 (i) 이벤트(가령, 폴더 X로 추가되는 새로운 파일)를 모니터링하고, (ii) 파일의 인덱싱(파일은 다음의 핵심어를 포함함)을 수행하며, (iii) 파일 메타데이터, 장치 상태 및 새로운 이벤트를 플랫폼으로 업로드하고, (iv) 플랫폼으로부터 발생된 작업(가령, 데이터 이동, 폴더 스캔, 파일 생성, 피어로 연결 등)을 프로세스한다. 에이전트는 네트워크 주위에 이동하는 각각의 조각의 데이터를 클라우드 내의 정책 엔진으로 보고하여, 데이터가 위치되고, 위치될 필요가 있는 곳을 알기 위해 플랫폼을 활성화시킨다.
새로운 정책이 추가되거나, 새로운 이벤트가 에이전트 레벨에서 발생되면, 플랫폼은 디렉터 또는 "교통 경찰"의 역할을 하여, 무슨 액션이 취해져야 하는지를 결정한다. 정책 엔진에 기초하여, 플랫폼은 로컬 에이전트로 커맨드를 발생시켜서, 이들의 태스크를 수행한다. 에이전트(들)는 정책 엔진으로부터 발생된 작업을 수행하기만 한다. 이러한 접근법은 용이하게 달성될 서비스의 다른 중요한 구성의 추출 및 클라우드 내에 있는 인텔리전스 때문에, 새로운 사용 사건(가령, 데이터 백업, 정보 통치)의 빠른 반복을 활성화시키고, 메타데이터가 파일 데이터로부터 분리된 보안 모델을 개선시킨다.
전통적인 클라우드 서비스 제공자는 고객이 그들의 클라우드 인프라스트럭처내의 데이터를 파일 저장 액세스 포인트로서 업로드하고 저장하도록 한다. 이들 제공자는 저장소에 대한 청구 고객에 의해, 그리고 단일 저장 시스템 내의 모든 사용자 데이터를 결합함에 의해, 이러한 아키텍처로부터 이익을 얻는데, 이는 서비스 제공자가 콘텐츠의 중복 제거하고, 실제로 사용되지 않는 저장소에 대해 청구할 수 있다. 회사가 그들의 저장 위치를 선택할 수 없어서, 그들의 데이터에 대해 제어할 수 없고, 회사는 중복 데이터를 정확하게 제거하는 것, 그들의 민감한 사업 콘텐츠과 시스템상의 다른 사용자와 혼합되지 않는 것에 대해 그들의 서비스 제공자를 신뢰해야만 하며, 이러한 공유, 더 나아가 잠재적인 틈으로 데이터를 노출하는 것과 같은 특징을 사용하기 위해 서비스 제공자에게 그들의 암호화키를 공유해야만 한다는 것을 포함하여, 이러한 접근법은 많은 보안 문제점이 있다.
전통적인 클라우드 서비스와 달리, 일 실시예의 플랫폼은 다양한 공공, 개인 및 로컬 클라우드를 팡리 저장 액세스 포인트로 사용한다. 이러한 불가지론 파일 저장 액세스 포인트를 전달하기 위해, 플롯폼은 파일 콘텐츠를 메타데이터로부터 분리하고, 두 개를 매우 상이하게 다룬다. 도 9는 실시예에서, 다른 플랫폼 구성과 분리된 메타데이터를 나타내는 블록도이다. 좀 더 구체적으로, 실제 파일이나 파일 데이터가 하나 이상의 저장 액세스 포인트상에 고객에 의해 결정된 대로 저장되는 반면, 메타데이터는 해당 서버를 가진 클라우드 내에 중심화되고 저장된다. 또한, 플랫폼에 의해 제어되는 진보된 데이터 핑거프린팅 및 해싱에 의해, 파일 데이터는 복수의 데이터 저장소에 걸쳐 안전하게 저장된다. 이러한 접근법하에서, 고객은 파일이 저장되는 위치를 선택할 수 있고, 이는 보안을 개선시키고, 기존 인프라스트락처를 활용하며, 정책이 지역적으로 데이터를 저장할 수 있도록 하며, Safe Harbor 요구사항을 충족한다.
전통적인 클라우드 서비스 제공자는 일반적으로, 클라이언트로부터의 모든 데이터를 그들의 중심된 클라우드로 업로딩하고, 그리고 나서 연결된 클라이언트로 다시 다운함에 의해 데이터 전송을 위한 비효율적인 2-단계 프로세스를 수행한다. 데이터 중복 제거 레벨, 해싱 및 P2P 능력에 의존하여, 이러한 데이터 전송 프로세스는 시간 소요되고 현저한 데이터 전송 비용을 발생시킨다.
이와 대비하여, 실시예의 플랫폼은 데이터를 전송하기 위한 일련의 기술을 사용한다. 예를 들어, 실시예의 플랫폼은 전체 파일 대신에 데이터의 블록을 이동시킴에 의해 블록 레벨 파일 전송을 수행한다. 예로서, 1GB 파일이 수정되면, 전체 1GB 파일이 아니라 수정된 파일의 해시된 블록(가령, 10MB 블록)이 전송된다.
플랫폼은 데이터 저장 인덱스를 포함하는데, 이는 전체 시스템에 걸쳐 데이터 블록을 인덱스하여, 벽장 포인트로부터 데이터를 요청하는 에이전트로 데이터 블록을 전송하도록 한다. 예를 들어, 파일이 이미 하나의 에이전트로부터 클라우드로 업로드되었다면, 요청하는 에이전트는, 다운로드를 위해 클라우드로 파일을 재-업로드하도록 원래의 에이전트에게 요청하는 대신에, 이를 클라우드로부터 직접 다운로드한다.
도 10은 실시예에서, 플랫폼의 연결 타입을 도시한다. 실시예의 플랫폼은 두 개의 연결 타입을 사용한다. 제1 연결 타입은 다양한 로컬 구성과 온라인 서버들과 서비스 사이에 HTTP/TLS를 포함한다. 이는 웹 브라우저와 등가이고, 동일한 기계상에 브라우저로서 동일한 방화벽 행동을 가진다. 실시예의 제2 연결 타입은 피어-투-피어(P2P) 프로토콜이다. 도 11은 실시예에서, P2P 연결 타입을 도시한다. 플랫폼은 P2P 통신을 사용하여, 에이전트들 사이에 데이터를 효율적으로 이동시킨다. 예를 들어, 동일한 LAN상의 두 개의 에이전트는, 이들이 클라우드 저장 제공자를 통해 하는 것 보다 훨씬 더 효율적으로 직접적으로 데이터를 이동할 수 있다.
실시예의 플랫폼은 사용자 데이터그램 프로토콜("UDP")를 사용하여 P2P 통신하는데, 이에 제한되지 않는다. 서비스로부터의 정보를 사용하여, 에이전트는 서로 UDP 세션을 구축하도록 시도할 것이다. 두 에이전트가 동일한 방화벽 뒤에 있다면, 이는 성공적이다. 방화벽 외부의 피어에 대해서, 통신은 좀 더 복잡해진다. 일부 기업 방화벽은 이러한 트래픽을 허용하지 않을 것이고, 이들 경우에, 플랫폼은 HTTP/TLS를 통해 피어들 사이에 데이터를 "릴레이"할 것이다.
플랫폼은 복수의 에이전트가 이들의 업스트림 대역폭을 폴링하여서, 단일 에이전트가 단독으로 할 수 있는 것보다 더 빠르게 조각으로 대량 파일을 이동시킬 수 있는 상호동작적인 파일 전송을 수행한다. 이러한 기술은 클라우드 저장 릴레이 및 P2P 데이터 전송 모두에서 사용되나, 이에 제한되지 않는다.
실시예의 플랫폼은 비-순차적/동시적 전송을 수행하는데, 순서없는 데이터 전송은 동시적인 파일 업로드 및 다운로드로 지원된다. 이러한 방법을 사용하여, 데이터의 모든 블록이 도착하면, 이들이 전송된 순서에 무관하게, 데이터는 에이전트에서 재조립된다.
종래의 클라우드 서비스의 제공자는 이들의 플랫폼 내의 최소의 데이터 가시성을 제공한다. 사용자는 이들의 파일에 액세스할 수 있으나, 정보 기술(IT) 관리자는 시스템 내의 데이터내로 비가시성을 조금 가진다. 일부 서비스 제공자는 IT 관리자가 시스템에 걸친 파일 이름의 리스팅을 볼 수 있도록 하는 반면, 다른 이는 누구든지 시스템 내의 파일상의 세부사항을 제공하지 않는다.
실시예의 플랫폼은 IT 관리자에게 시스템 내의 조직의 파일의 완전한 리스팅을 제공할 뿐만 아니라, 각각의 파일의 콘텐츠를 분석하여 각각의 문서가 얼마나 민감한지, 또는 비밀인지를 결정할 수 있다. 이를 달성하기 위해, 플랫폼은 2-단계 프로세스를 수행하는데, 하나는 개인 콘텐츠와 사업 콘텐츠를 구분하는 단계와, 다음에 식별된 사업 데이터의 민감도를 결정하는 단계이다.
개인 콘텐츠와 사업 콘텐츠를 구분하기 위해, 에이전트는 로컬 데이터 저장소에 걸친 문서를 스캔하고, 이들 문서로부터 핵심어(key term)를 추출한다. 그리고 나서, 이들 핵심어는 전체 조직에 걸쳐 비교되어서, 회사 특정 핵심어의 리스트를 생성한다. 조직적인 핵심어와 다른 소유주 방법론을 사용하여, 플랫폼은 로컬 저장소에 걸친 사업 데이터와 개인 데이터를 분리하여, IT 관리자가 오로지 회사 데이터에 초첨을 맞출 수 있도록 한다.
사업 데이터의 민감도를 결정하기 위해, 플랫폼은 특정 핵심어(가령, "회사 기밀")의 존재를 검색하고, 데이터(가령, 신용 카드 번호, 이-메일 주소, 전화 번호등)의 특정 문법을 분석하며, 다른 소유주 분석을 수행한다. 이러한 세그멘테이션은 IT 관리자가 사업 내의 가장 민감한 콘텐츠를 식별할 수 있도록 한다. 문서의 민감도가 메타데이터의 일부가 되면, 플랫폼은 IT 관리자가 데이터에 걸쳐 특정한 제어를 제정하여, 데이터가 어디에서 어떻게 액세스되는지, 그리고 공유되는지를 제한할 수 있다.
자동화된 데이터-발견 및 콘텐츠의 세그멘테이션은 IT 관리자가 말단 사용자 태깅이나 분류에 의존하지 않으면서 민감한 사업 콘텐츠를 식별하고, 개인 또는 중요하지 않은 사업 파일을 검색하지 않으면서도 중요한 콘텐츠를 찾고, 민감한 콘텐츠를 보호하기 위해 특정한 제어를 생성할 수 있도록 한다.
종래의 클라우드 서비스 플랫폼에서, 각 개개의 사용자 데이터는 함께 저장되고, 전체 데이터 세트에 걸쳐 중복 제거된다(가령, 클라우드 서비스 제공자를 사용하여 저장된 모든 사용자의 데이터). 이러한 혼합적인 접근법은 파일이 정확하게 인덱스되지 않는다면, 잠재적인 데이터 유출로 이어질 수 있다.
실시예의 플랫폼은, 액세스, 애플리케이션, 인프라스트럭처, 네트워크, 전송 및 데이터 레벨에서 보안을 제공하는 프레임워크 주변에서, 제어되고 보안적인 방식으로 데이터를 관리하도록 구성된다. 이러한 접근법은 각 사용자로부터의 데이터 및 "보안 사일로(security silo)"에서 관리될 조직이, 본 명세서의 상세한 설명에 기술된 바와 같은 보안 정보의 자체 고유한 세트로 가능하게 한다.
플랫폼은 공유 저장소나 클라우드 내에 데이터를 암호화하는데 사용되는 고유한 조직적인 암호화 키를 각 조직에게 제공한다. 또한, 데이터 상에 컴퓨팅된 모든 해시는 조직에 고유한 가치로 솔트(salted with)된다. 기저 데이터가 동일하더라도, 두 개의 조직이 동일한 해시를 공유하지 않을 것이다. 이는 플랫폼이 고객들 사이에 데이터 중복 제거, 보안 취약하는 것을 방지하고, 반면에, 조직 레벨에서 데이터 중복 제거를 가능하게 하는데, 이는 저장 공간을 아끼고, 불필요한 데이터 전송을 최소로 한다. 권한없는 사용자가 말미 서비스 또는 데이터 저장소에 액세스하는 경우에, 그 사용자는 사용할 수 없는 암호화된 블록만 볼 수 있도록 제한될 것이다.
플랫폼은 권한 있는 자들 사이에서 파일 공유를 가능하도록 구성된다. 모든 권한 있는 에이전트와 클라이언트는 조직의 데이터에 균일하게 액세스하고 기여할 수 있다. 데이터가 사용자 레벨에서 암호화되지 않아서, 데이터는 조직에 귀속된다. 새로운 사용자가 조직에 추가될 때, 새로운 사용자는 그 조직에 대한 데이터를 생성하고 액세스하기 위해 요구되는 키를 받아서, 다른 사용자와 상호작업할 수 있도록 한다. 사용자에 의해 생성된 데이터는, 사용자가 회사를 떠난 이후라도, 조직 내의 다른 사용자에게 사용 가능하다.
계정이 제공되고, 조직의 IT 관리자와 사용자로부터의 패스워드를 사용하여 암호화되면, 조직의 암호 키는 플랫폼에 의해 생성된다. 키는 사용자 또는 관리자의 패스워드 없이 액세스될 수 없는데, 이는 플랫폼에 의해 절대로 저장되지 않는다. 그 사용자가 활성화 세션에 있고, 그 또는 그녀의 제공된 신임장을 가지지 않고, 마스터 키가 없다면, 플랫폼이 고객 데이터를 해독하는 것은 불가능하다. 그러나, 플랫폼은, 잃어버린다면, 새로운 패스워드를 계정에 적용하는데 사용될 수 있는 복구 키를 저장하지 않는다.
장치 레벨 데이터는 그 로컬 파일 시스템상에 저장되고, 플랫폼은 로컬 장치 파일 시스템 데이터를 암호화하거나 인코딩하지 않으나, 이에 제한되지 않는다. 그러나, 장치를 떠난 임의의 데이터나 메타데이터는 (장치에서 웹으로) SSL, (장치에서 장치로) 말단-투-말단 암호화 또는 (장치에서 클라우드나 공유된 저장소로) dot레스트 암호화를 사용하여 암호화된다
장치상의 각각의 에이전트는 일 실시예에서 두 개의 2048-비트 RSA 공공/사유 키 페어를 가진다. 하나가 말단-투-말단 암호화를 보안하는데 사용되고, 다른 하나가 메세지를 사인하고, 메세지 소스를 유효화하는데 사용된다. 이들 키는 사전 생성되고, 플랫폼에 의해 할당되나, 이들이 할당되면, 클라우드내에 저장되지 않는다. 키와 증명서는 운영 시스템에 의해 제공된 보안 키 저장소내에 항상 저장된다. 종래의 P2P와 달리, 플랫폼 내에 "익명 피어(anonymous peers)"가 없는데, 에이전트들 사이의 각각 및 모든 연결은, 중앙 클라우드가 이들 중 가장 효율적인 경로라고 결정되기 때문에 발생한다. 데이터 전송의 소스 및 목적지의 실체는, 연결에 앞서 알려지고, 모든 에이전트에 의해 독립적으로 확인된다. 에이전트는 이들이 예상하지 않는 연결을 허용할 수 없다.
에이전트들이 데이터를 교환하기 위해 서로 결합되거나 연결될 때, 이들은 공공 키 암호술을 사용하여, 이들 사이에 전송된 모든 데이터의 말단-투-말단 암호를 제공한다. 플랫폼은 모든 에이전트를 위한 공공 키를 가지고, 이들에게 임의의 P2P 요청의 두 말단을 제공한다. 플랫폼은 사유 키를 가지지 않는데, 이는 에이전트 레벨에서만 가지나, 본 실시예는 이에 제한되지 않는다. 에이전트는 이들 사유 키를 사용하여, 정부-등급 AES-256 알고리즘을 사용하여 피어들간의 데이터를 암호화하는데 사용되는 대칭 암호 키를 안전하게 구축한다. 이는 권한 없는 사용자가 피어들 사이에 전송된 메세지의 콘텐츠를 해석할 수 없도록 보장한다. 에이전트 사이의 세션은 일시적이고, 이들이 만료되면, 새로운 연결이 설정되는데, 이는 교환될 새로운 키를 요구한다.
SSL은 웹 서버로 그리고 웹서로부터의 보안 통신을 위한 널리 허용되는 표준이다. 클라이언트나 브라우저가 플랫폼에 연결될 때마다, 이는 SSL를 사용하여 트래픽을 보안한다. 메타데이터와 에이전트 명령어도 이러한 방식으로 보안된다.
플랫폼은 모든 데이터가 앳-레스트(at-rest)에 있고, 클라우드나 공유된 저장 장치에서 암호화되는 것을 보장한다. 에이전트가 데이터를 저장하도록 요구되면, 이들은 조직 암호 키를 사용하여 데이터를 암호화한다. 권한 있는 에이전트만 이러한 방식으로 저장된 데이터를 해독할 수 있다. 앳-레스트 데이터도 AES-256 알고리즘을 사용하여 암호화된다.
실시예의 데이터 및 메타데이터의 분리는 추가적인 보안과 완전한 제어를 제공하는 반면, 비용을 최소로 한다. 모든 데이터는 그 고객에 고유한 키로 해시되고 암호화되며, 메타데이터는 데이터로부터 분리되어 저장된다.
플랫폼은 모바일 장치, 데스크톱 및 웹에 걸쳐 중요한 사업 데이터에 액세스하고, 업데이트하며 공유하는 쉬운 방법을 제공한다. 사용자는 iOS 및 Android 스마트폰과 태블릿, Window 및 Apple 컴퓨터와 웹 브라우저에 걸쳐 파일에 액세스할 수 있다. 장치상에서 수정된 파일은 모든 다른 권한 있고 연결된 장치에 자동으로 동기화된다. 사용자는 양방향 공유된 폴더나 단방향 웹 링크를 통해 조직의 외부의 상호-작업자나 개인과 파일을 공유할 수도 있다.
좀 더 구체적으로, 실시예의 플랫폼은, 다양한 환경(가령, 데스크톱, 모바일 장치, 서버, 클라우드 서비스 등)에 걸친 데이터, 애플리케이션 및 운영 시스템을 보호하는 백업 및 복구를 제공한다. 이는 사용자가 설치된 백업 애플리케이션을 모니터링하고, 키 백업 메트릭(metric)을 관리 코드로 통합시키며, 민감한 파일이 위험에 있다고 사용자에게 경고할 수 있도록 한다.
플랫폼은, 모든 민감한 문서가 백업 플랜에 포함되는 것을 보장하고, 이들 문서가 현재 백업된다고 확인한다. 임의의 민감한 문서가 시간 주기내에 보호되지 않는다면 관리자가 바뀌고, 조직에 걸쳐 민감한 문서의 위치를 찾아낸다. 또한, 플랫폼은, 백업이 실패하면, 대안적인 위치로부터 저장하고, 민감한 문서가 사용자의 중복에 의한 복수의 위치 또는 중복 백업 위치내에 백업되는 것을 보장한다. 파일의 백업은 특정 보유 정책에 따라 삭제되고, 민감한 문서는 좀 더 안전한 저장 위치 오프사이트에 백업된다. 또한, 플랫폼은 원격 컨피규레이션 및 백업 동작의 전개를 허용하는 백업 서비스를 제공한다.
플랫폼에 의해 제공된 백업과 복구는 데스크톱, 서버, 공유된 저장소, 모바일 장치 및 몇 몇 온라인 저장소의 파일 소스 백업을 포함한다. 백업 및 복구 동작과 관련된 파일 타입은 데이터 파일(가령, 문서, 비디오, 음악, 이미지 등) 및 애플리케이션 특정 파일(가령, 아웃룩, PST, MS Exchange, 데이터베이스등)을 포함한다. 파일 선택은 파일 타입 및/또는 폴더 위치에 기초하여 백업할 파일을 선택하거나, 전체 장치 또는 컴퓨터 시스템(가령, 시스템 이미지)의 백업을 대안적으로 수행한다. 파일 저장소는 외부 하드 드라이버, NAS 또는 온라인상에서 선택된 파일을 저장하거나, 중복을 위해 복수의 위치를 선택한다. 저장 장치가 삭제될 때마다, 또한 스케쥴이 스케쥴에 기초하여 백업될 때마다, 자동화되거나 스케쥴된 백업은 새롭거나 변경된 파일을 백업에 자동으로 추가한다.
실시예의 파일 복구는 선택된 파일을 쉽게 저장하도록 구성되고, 컴퓨터가 고장거나 파일이 의도치 않게 삭제되면 모든 파일을 완전히 저장하도록 구성된다. 데이터 손실 방지는, 사용중(가령, 종점 액션), 모션 중(가령, 네트워크 트래픽) 및 앳-레스트(가령, 데이터 저장) 동안에, 데이터를 모니터링함에 의해 데이터 손실을 방지한다. 파일-레벨 DLP 소프트웨어는 민감한 파일을 식별하고, 그리고 나서 파일 내에 정보 보안 정책을 내장한다. 플랫폼의 상시적, 어디에서나의 접근은 사용자 콘솔을 통해 모든 파일 및 폴더에 온라인 액세스를 제공한다. 버젼 히스토리는 파일의 이전 버젼을 저장하여, 사용자가 이들 버전으로 되돌릴 수 있도록 한다. 삭제된 파일은 시간의 주기 동안에 저장되어서, 삭제가 우연이라면, 사용자가 삭제된 파일을 재저장할 수 있도록 한다. 파일 시스템 및 구조화되지 않은 콘텐츠는 회사 정책에 기초하여 달성되어서, 비용을 줄이고, 위험을 완화시킨다.
실시예의 플랫폼은 파일 공유와 액세스를 제공하는데, 이는 사용자가 다양한 환경(가령, 컴퓨터, 모바일 장치, 서버, 클라우드 서비스 등)과 웹에 걸친 파일과 다른 콘텐츠를 접근 및 공유할 수 있도록 한다. 파일은 양방향 폴더 공유 및 웹 링크 공유를 통해 공유될 수 있고, 키 메트릭과 제어는 관리 콘솔내로 통합될 수 있다.
플랫폼은 회사의 특정 사용자, 그룹 또는 외부와의 공유를 방지함에 의해 민감한 문서를 제한 또는 제어한다. 민감한 문서는 플랫폼을 통해 모바일 장치로 액세스 및/또는 다운로드될 수 없고, 그 보다는, 제어를 유지하기 위해 온라인으로 볼 수 있으며, 문서 다운로드는 일시적 복사만으로 제한되어서, 이들이 연결되지 않으면 제거된다. 파일은 플랫폼-관련된 폴더의 외부 또는 외부 저장 장치나 위치로 복사될 수 없다. 또한, 파일은 첨부물로서 이메일로, 문자 전자 메세징으로 보내질 수 없고, 또한, 소셜 미디어로 업로드될 수 없다. 실시예는 단 한번의 요청을 허용하는 예외 프로세스를 포함한다. 문서로의 액세스를 가지고 수정 및 히스토리에 액세스하는 문서의 위치에 대한 상세한 보고도 가능하다.
실시예의 플랫폼의 파일 공유와 액세스는 장치 및 시스템에 걸친 파일을 생성, 관리, 편집 및 저장하는 콘텐츠 관리를 제공한다. 실시예의 동기화는 임의의 장치로부터 사용가능하게 하기 위하여, 장치에 걸쳐 동기화될 파일을 선택한다. 또한, 변경된 사항은 자동으로 동기화된다. 상시적, 어느 곳에서의 액세스는 임의의 장치(가령, 데스크톱, 랩톱, 폰, 태블릿, 온라인 등)로부터 임의의 파일에 액세스할 수 있도록 한다. 공유된 폴더는 내부 및 때때로는 외부 사용자가 볼 수 있고, 폴더 내에 포함된 파일을 편집할 수 있으며, 모든 사용자에게 동기화되는 변경을 할 수 있는 폴더에 액세스를 부여한다. 좀 더 과립의 허용이 포함(가령, 관리자, 편집자, 시청자 등)하나, 이에 제한되지 않는다.
플랫폼은 공공 링크를 포함하는데, 이에 의해 파일은 어떠한 사용자에 의해 액세스될 수 없는 링크를 통해 공유될 수 있다. 파일은 편집을 방지하기 위해 리드-온리이나, 사용자는 파일을 볼 수 있고, 다운로딩은 때때로 제한된다. 외부 문서 관리 및 보안은, 파일을 잠궈서 인쇄되거나 편집될 수 없게 함에 의해 외부적으로 공유된 이후에 파일에게 발생하는것을 제어한다. 공동 감사는 포괄적인 감사 및 추적 도구를 제공하여서, 콘텐츠 공유의 더 나은 시청 및 파일 다운로드 활동을 부여한다. 사용자는 관련 파일을 누가 다운로드하지 않았는지를 알 수 있다. 대량 파일 전달은 공공 링크를 공유하는 것과 같은 온라인으로 대량 파일을 전송에 대한 이메일의 대안적인 방법이다. 이메일 통합은 사용자가 파일을 우클릭함에 의해 또는 이메일 선택사항을 선택함에 의해 임의의 장치로부터 직접 임의의 파일을 이메일 보낼 수 있도록 한다. 모바일 미리보기는 사용자가 임의의 모바일 장치상에서 임의의 파일을 보 수 있도록 한다. 모바일 문서 편집하기는 모바일 장치상의 파일을 편집하기 위한 능력을 제공한다. 모바일 인쇄는 사용자가 디폴트된 원격 프린터를 지정함에 의해 임의의 모바일 장치상의 임의의 파일을 인쇄할 수 있도록 한다. 모바일 스캐닝은 장치에 걸쳐 액세스하기 위해, 사용자가 모바일 장치로부터 이미지 또는 종이 문서를 스캔하도록 한다. 격리 시스템은 감염된 파일을 호스팅 시스템으로부터 격리시키기 위해 안티바이러스 능력을 사용한다. 규율 준수는 말하자면, SOX, HIPPA, PII, PCI, FINRA, FDIC, SAS70, Basel II, Dodd-Frank 및 FCPA를 준수하는 단계를 취한다.
실시예의 플랫폼은 다양한 환경(가령, 데스크톱, 모바일 장치, 서버, 클라우드 서비스 등)에 걸친 문서의 동시적 편집(가령, 워드 프로세싱, 스프레드시트, 프리젠테이션, 프로젝트 플랜 등)을 포함하는 공동 작업을 제공한다. 사용 중인 파일은 공유된 문서에 대해 경고하고, 수정된 문서에 대해 통지하며, 수정 및 액세스 히스토리가 가능하다 따라서, 플랫폼은, 문서가 사용 중이어서 충돌을 방지한다면, 통지를 사용자에게 제공하고, 문서가 사용 중이면, 사용자를 잠궈서, 누군가 공유된 폴더나 파일을 편집 또는 추가할 때 경고를 전송하며, 발표된 문서의 사용자에게 통지한다. 플랫폼은 동시적 편집을 통해서만 온라인 공동 작업하도록 하고, 수정 화해 및 합병 툴, 수정 및 액세스 히스토리, 체크-인/체크-아웃 시스템 및 사무실 통합을 제공한다.
실시예의 공동 작업은 많은 중요한 특징을 제공한다. 복수의 사람들이 동일한 파일을 보고 편집할 수 있다. 동일한 파일을 편집하기 위해 복수의 사람들(가령, 관리자, 편집자, 시청자)에 대한 과립 공유 권리를 허여한다. 공동 작업 감사는 포괄적인 감사 및 추적 툴을 제공하여서, 콘텐츠 공유와 파일 다운로드 활동의 더 나은 시각을 부여한다. 사용자는 관련 파일을 누가 다운로드하지 않았는지 알 수 있다. 활동 히스토리는, 파일 변경이 언제, 누구에 의해 이루어진 것인지와 같은 모든 파일 활동을 추적한다. 누군가 공유된 폴더나 파일을 편집하거나 콘텐츠를 추가하면, 이메일 통지는 경고를 전송한다. 코멘팅은, 피드백을 추가하거나 변경 사항을 논의하기 위해, 파일 및/또는 논의 영역에 코멘트를 할 수 있다. 공동 작업 및 논의를 위해, 주석(annotation)은 노트를 기존 파일에 추가한다. 사업 프로세스 관리는 좀 더 효율적이고, 효과적이며 변경 가능한, 정보 기술의 사용으로 사업 프로세스의 자동화를 제공한다. 이는 작업플로우 또는 태스크 관리와 같은 아이템을 포함한다.
작업플로우/태스크 관리는 태스크와 데드라인을 리뷰 프로세스의 일부로서 할당하고, 업데이트, 리뷰 또는 승인을 요청하기 위한 파일-특정 태스크를 할당한다. 프로젝트 관리는 목표를 개별 데드라인이 있는 마일스톤으로 부숴서, 최종 목표를 향해 전진하고, 다양한 마일스톤에 기초하여 태스크를 할당한다. 온라인 문서 편집하기는 사용자의 로컬 컴퓨터로 이들을 우선 다운로드하지 않고, 다양한 파일 타입을 온라인에서 편집한다. 모바일 문서 편집하기는 모바일 장치상에서 파일을 편집한다. 모바일 미리보기는 임의의 모바일 장치상에서 임의의 파일을 볼 수 있는 능력을 제공한다. 모바일 인쇄하기는 디폴트된 원격 프린터를 지정함에 의해 임의의 모바일 장치상의 임의의 파일을 프린트한다. 모바일 스캐닝은 모바일 장치로부터의 이미지나 종이 문서를 스캔하여 장치에 걸쳐 액세스한다. 종이 문서를 계속하여 디지털화한다.
실시예의 플랫폼은 문서 관리를 제공하는데, 이는 사용자 특권, 문서 사용가능성 및 문서 상태에 기초하여 문서로의 액세스를 제어한다. 실시예의 문서 관리는 제3자 애플리케이션(가령, Office)와 통합되어서, 작업플로우를 유지하고, 문서에 대한 버저닝 및 감사 트레일을 활성화하고, 문서에 대한 보안 요구사항을 강화한다. 그러므로, 플랫폼은 사용자가 사업 파일을 인덱스, 추적 및 카탈로그하고, 파일 민감도를 분류하며, 개인이나 그룹에 파일 액세스를 주는 제한된 권리 관리를 허여할 수 있다.
플랫폼은 파일에 대한 권리를 사용자(가령, 관리자, 편집자, 시청자)에게 할당하고, 많은 방식으로 민감한 문서를 제한한다. 파일은 수정될 수 없고, 특정 사용자에 대해서 리드온리이며, 다른 요청이 없다면, 시간의 주기 이후에 파괴되고, 이미지 캡쳐링 소프트웨어로 캡쳐될 수 없다. 파일 포맷은, 분산(가령, 리드-온리)되기 전에, (가령, PDF 등으로) 전환되어서, 문서의 콘텐츠는 복사될 수 없고, 또 다른 문서로 붙이기될 수 없다. 또한, 파일은 회사 서버상에만 저장될 수 있어서, 공공 클라우드상에 저장될 수 없고, 파일 및 파일 파생물은 저장 장치(들)에 걸쳐 추적된다. 또한, 플랫폼은 콘텐츠(가령, Wikis, Evernote, 소셜 미디어 등)에 기반한 파일 및 비-파일을 포함하고, 한번 요청을 허용하기 위한 예외 프로세스가 있다. 플랫폼은 문서의 위치, 누가 문서에 액세스하는지, 누가 실제로 문서를 보았는지, 무슨 장치와 무슨 위치에서 보았는지에 대한 상세한 보고를 제공한다. 수정 및 액세스 히스토리도 플랫폼을 통해 사용 가능하다.
플랫폼은 사업 정보를 식별하는 것을 사용하여 기밀 저장된 데이터를 발견한다. 플랫폼은 키 워드를 추출하고 조직에 걸쳐 추출된 용어를 비교한다. 플랫폼은 예를 들어, 하나 이상의 문서 이름, 문서 크기, 근접성(폴더 내의 문서의 90%가 사업이면 100% 가정함), 키 워드 비교 및 해시 비교를 사용하여, 복수의 소스에 걸쳐 사업 문서를 식별할 수 있다.
또한, 플랫폼은 민감한 데이터를 분류한다. 표시된 문서는 수동으로 민감한 것으로 태그된다. 선택된 핵심어의 예시는 "회사 기밀의", "손익계산서", "파트너 파이프라인", "패스워드" 및 "신용 카드"를 포함한다. 학습된 핵심어는 "기밀"로 표시된 문서에서 가장 관련 있는 핵심어이다. 플랫폼은 검출된 콘텐츠(가령, 회사 이름의 5가지 예시 등)에 기초하여 추론한다. 또한, 플랫폼은 문법(syntax)(가령, "###-##-####", "3767-######-#####", aaaaaaaa@aaa.com, "###-###-####")에 기초하여 데이터를 분류한다. 플랫폼은 누가 주인이고, 파일이 어디에 있으며, 허락이 무엇이고, 누가 액세스했는지와 같은 문서 특성을 기록한다.
또한, 플랫폼은 지적 재산권, 고객 정보, 사원 정보, 판매 정보, 마케팅 정보 및 금융 정보를 포함하는 민감한 데이터를 분류하고, 가령, 지적 재산권은 소유주 엔지니어링 디자인, 과학적 공식, 소스 코드, 무역 비밀 및 새로운(비공지된) 제품 정보를 포함한다. 고객 정보는 이름, 이메일 주소, 고객 패스워드, 전화 번호, 사회 보장 번호, 주소, 신용 카드 번호(마지막 4 자리) 및 생년월일을 포함한다. 사원 정보는 사회 보장 번호, 생년월일, 및 주소를 포함한다. 판매 및 마케팅 정보는 고객 리스트, 견적, 마케팅 및 판매 플랜, 재료 비용 및 이윤 마진 및 프로젝트 플랜 및 소비 플랜을 포함한다. 금융 정보는 금융 기록 및 전략적 사업 플랜을 포함한다.
플랫폼 내에 포함된 문서 관리는 검색/추적 인덱싱을 포함하고, 고유한 문서 식별자, 메타데이터를 인덱싱함에 의해, 또는 문서의 콘텐츠로부터 추출된 워드 인덱스를 통해 전자 문서를 검색 및 복구하기를 포함한다. 권리 관리는 관리자가 특정 사람 또는 그룹의 사람의 타입에 기초하여 문서에 액세스를 부여할 수 있다.
실시예의 플랫폼에 의해 제공된 공동 작업은 권한 있는 사용자에 의해, 문서가 복구되고 수정되거나 편집될 수 있다. 복수의 사용자는 공동 작업 세션에서 동시에 문서를 보고 수정할 수 있고, 공동 작업 세션 동안에, 플랫폼은 각 개별 사용자에 의해 행해진 마크업을 저장한다. 그러나, 문서가 사용자에 의해 수정되거나 편집되는 동안, 다른 사용자로의 액세스는 차단되어야 한다. 또한, 플랫폼은 문서 사용 가능성에 대한 경고 및 통지를 전송하나, 이에 제한되지 않는다.
실시예의 플랫폼의 버저닝은 문서의 이전 버전을 복구하고, 사용자가 선택된 포인트로부터 작업을 계속하도록 한다. 제3자 통합부는 제3자 애플리케이션과 통합하여서, 사용자가 기존 문서를 문서 관리 시스템 보관소로부터 복구할 수 있고, 변경할 수 있고, 변경된 문서를 다시 보관소로 새로운 버전으로 저장할 수 있으며, 이러한 모두는 애플리케이션을 떠나지 않는다. 플랫폼을 통한 문서의 공개와 분산은 교정, 피어 또는 공공 리뷰, 권한 부여, 프린팅 및 승인을 포함한다. 보안은 특정 문서에 대한 준수 요구사항을 포함하는데, 이는 문서의 유형(가령, SOX, HIPPA, PII, PCI, FINRA, FDIC, SAS70, Basel II, Dodd-Frank, FCPA 등)에 의존하여, 비교적 복잡할 수 있다. 플랫폼은 문서에 워터마크나 지움(wipe) 능력은 물론, 프린팅, 복사 및 포워딩과 같은 과립형 능력을 포함한다. 작업플로우는 개별 문서의 자동 라우팅을 제공하거나, 스케쥴링, 체크리스트, 리뷰 노트 관리 등과 같은 연결 관리 특징과 결합된다. 외부 분서 관리와 보안은 파일이 어떻게 공유되는지를 제어하고, 다른 모듈이나 제3자 시스템과 통합한다.
실시예의 플랫폼은 데이터 인텔리전스(data intelligence)와 정보 거버넌스(information governance)를 제공하는데, 이는 데스크톱, 모바일 서비스, 로컬 저장소, 네트워크된 저장소 및 클라우드 서비스에 걸친 데이터(가령, 문서, Evernote, Wikis 등)를 식별한다. 이러한 데이터 인텔리전스와 정보 거버넌스는 관리, 보유 및 사업 데이터의 성향에 대해 좀 더 알려진 결정을 생성하고, 준수 위반을 식별하며, 인프라스트럭처 플래닝 결정을 한다. 플랫폼은 위치, 소유주 및 사업 날짜의 사용 분석을 결정하고, 제한된 정보 준수(기록 보유 등)는 물론 제한된 정보 거버넌스(가령, SS 번호, 신용 카드등)를 포함한다.
플랫폼은 사용자가 모든 민감한 파일의 위치를 결정하고, 데이터에 대한 특정 정보를 이해하도록 한다. 또한, 사용자는 보안되지 않은 임의의 위치(가령, 모바일 장치, 공공 클라우드, 집 컴퓨터)로부터 파일을 제거할 수 있다. 선택 정책은 기록 보유, 방어가능한 삭제 및 준수 강제를 위해, 파일 메타데이터(가령, 보유, 기한, 액세스 등)에 적용될 수 있다. 전체 문서 검색은 파일 이름, 문서 핵심어 또는 전체 문서 검색을 통해 모든 데이터 소스에 걸쳐 수행될 수 있다.
플랫폼의 데이터 인텔리전스와 정보 거버넌스는, 얼마나 많은 데이터가 사용자에게 속하는지, 데이터가 어디에 위치하는지, 누가 데이터를 소유하는지, 데이터가 어디에 있는지, 데이터의 나이, 얼마나 많은 데이터가 사용자의 사업과 관련되는지를 결정하는 차원의 맵과 사업 분석 또는 규칙을 포함한다. 플랫폼은, 파일 분류를 제공함에 의해 호스트되고, 콘텐츠 검색하며, 준수 및 규칙 위반을 발견하고, 나이를 밝히며, 비-사업성 관련 데이터되는 콘텐츠에 걸쳐 가시성을 얻는다. 정보 계보학은 기록의 보안-관련 연대기적 세트, 및 활동의 순서를 제공하는 기록의 목적지와 소스를 제공한다. 플랫폼은 모든 파일 관계 및 이들이 어디에 있는지를 추적하고, 정보 거버넌스는, 기록 보유, 방어가능한 삭제 및 규칙 강제를 포함하는 정책 관리를 제공하고, 계좌 번호, 사회 보장 번호, 신용 카드 번호, 무역 비밀, 금융 기록, 전략적 사업 플랫 및 IP/소스 코드와 같은 사업-중요 정보 자산을 보호한다. 노출된 민감한 데이터가 식별되면, 자동화된 정책은 파일의 보안 속성을 수정하고, 데이터를 기업 내의 좀 더 안전한 시스템으로 이동하거나 위험 아이템을 삭제한다.
플랫폼에 의해 실행되는 기록 관리는 주도적이고 지속적인 기록 보유 및 성향 전략을 실행하고 자동화한다. 파일 공유 클린업은 사용자가 사용자의 환경을 이해함에 의해 사업 데이터 스프롤(sprawl)의 제어를 얻도록 한다. 플랫폼은 데이터를 분류하고, 데이터 속성을 업데이트하며, 허락을 할당한다. 인텔리전트 e-디스커버리는 증거 보존(legal hold) 통지, 트루 얼리 케이스 어세스먼트(true early case assessment) 및 인텔리전트 콜렉션을 제공한다. 플랫폼의 데이터 삭제 및 클린업은 데이터 토폴로지 맵과 분류를 사용하여, 비-사업 데이터를 식별하고, 저장/데이터 이동, e-디스커버리, 기록 관리 또는 준수 의무와 같은 정보 관리 개시이전에, 방어가능한 데이터 클린업을 수행한다. 저장 최적화는 기존 저장 자원의 사용을 최적화하고, 저장 비용을 줄이며, 데이터 토폴로지 맵 및 분류를 사용하여 모니터링하고, 미래의 저장 요구에 대해 계획한다.
실시예의 플랫폼은 모바일 장치 관리를 제공하는데, 이는 모바일 장치를 모니터하고 지원하여, 조직을 활성화시켜서 정책을 시행함은 물론, 복수의 플랫폼과 애플리케이션에 걸친 IT 제어의 원하는 레벨을 유지하기 위해 데이터를 제어하고 보호한다. 플랫폼은 단일 모바일 장치 소프트웨어 제품을 통해 모바일 장치의 중앙 관리를 통해 말단-투-말단 보안을 제공한다. 또한, 플랫폼은 GPS 자산 추적, 패스워드 준수/SSO, 원격 락/와이핑, 추적 앱과 업로드되고, 볼 수 있고, 편집되는 데이터와 같은 장치 사용 추적, 장치 애플리케이션 관리를 포함한다.
플랫폼은 사용자가 모든 소스에 걸쳐 원격 지움을 수행하고, 원래의 파일과 파생물, 원격 락을 제거하고, 탈옥한(jail-broken)장치를 검출하고 보호하도록 한다. 단일 사인-온 및 장치 컨피규레이션이 있는 패스워드 준수 및 네트워크, 이-메일 컨피규레이션 및 배터리 수명에 대한 모니터링이 있다. 애플리케이션 관리는 애플리케이션을 제한하고, 의무 애플리케이션을 푸쉬하고, 애플리케이션 모니터링(가령, 업로드되고, 보여지는 데이터 등)을 제한하고, 모든 애플리케이션이 최신이고 적절히 기능하도록 보장한다. 또한, 플랫폼은 GPS 추적 및 준수하지 않는 장치의 보고/실시간 통지를 포함한다.
실시예의 모바일 장치 관리는 관련된 자원에 연결된 모든 모바일 장치에 실시간 가시성을 제공하는 모바일 위험 관리를 포함하고, 사원 선택을 포용하는 것(가령, 너의 자체 장치를 가지고 와라)과 회사 데이터를 보호하는 것 사이의 균형을 달성한다. 모바일 보안은 안티바이러스 기술, 진보된 방화벽 및 안티-스팸 특징을 제공한다. GPS 자산 추적은 중앙 콘솔 내의 모바일 장치의 좌표를 찾고 추적한다. 원격 락/와이핑은 사용자의 장치 및 권한없는 액세스의 경우 그 데이터를 보호한다. 플랫폼의 장치 목록 추적은 장치상의 업로드되고, 보여지고, 편집되는 파일과 데이터를 추적하고, (분류, 최근 보기/편집 등을 통해) 파일을 분류하기 위한 검색 기능을 통해 관리자에게 더 큰 가시성을 제공한다.
플랫폼의 장치 애플리케이션 관리는 그룹 설정에 기초하여 애플리케이션을 분산시키고, 지정된 공공 시장 앱을 제한하거나 허용하고, 의무 애플리케이션을 푸시한다. 또한, 플랫폼은 비-준수 장치로 경고하고 액세스할 수 없고, 사유 애플리케이션을 관리하며, 이들을 공공 애플리케이션 스토어에 노출시키지 않으면서, 사용자에게 전달한다. 또한, 플랫폼은 장치에 업데이트를 집행한다. 실시예의 보안 정책 관리는 푸시 증명, 이메일 서버 설정, 제한 및 장치에 대한 카메라 설정(가령, Android 장치, iOS 장치 등)을 포함한다. 플랫폼은 프로세스 실행, 설치된 애플리케이션, 배터리 수명 및 네트워크 정보를 나열한다. 사용자는 실시간 통지를 얻을 수 있고, 예외 사항에 대해 관리부에 경고한다.
플랫폼은 사용자 활동(가령, 파일 업로드, 파일 다운로드, 애플리케이션 사용, 활동 공유 등)의 감사 보고를 완성시킴에 의해 사용자 보고를 생성한다. 플랫폼은, 기업 문서와 민감한 파일을 보안 방식으로 데이터 손실 방지하면서 모바일 장치로 푸시함에 의해 모바일 콘텐츠를 관리하고, 원격 업데이트를 파일로 전송하고 말단 사용자 개입없이 콘텐츠를 제거하도록 구성된다. 순간적인 복구와 백업은, 파일이 잃어버리거나 변질되면, 모든 파일을 장치로 한 번에 재저장하기 위한 능력을 제공한다. 플랫폼은 원격으로 장치를 지우나, 정책 및 애플리케이션을 장치, 블랙 또는 화이트 리스트 애플리케이션에 제공 및 탈옥한 장치에 대한 검출 및 보호를 할 수 있다.
실시예의 플랫폼은 자원 사용 및 보안을 제공하는데, 이는 상황과 관련된 정보를 통합하고, 가시성을 다양한 환경(가령, 모바일 장치, 데스크톱, 서버 등)에 제공하여 데이터, 애플리케이션 및 장치를 모니터, 최적화 및 보호한다. 플랫폼은 하드웨어, 소프트웨어 및 애플리케이션 사용, 저장을 위한 자원 소비, RAM 및 네트워크 모니터링을 위한 애플리케이션 정보 추적 및 저장소, 데이터 클린업 및 아키브 최적화를 포함한다.
실시예의 데이터 삭제 및 클린업은 데이터 토폴로지 맵과 분류를 사용하여, 비-사업 데이터를 식별한다. 플랫폼은 저장/데이터 이동, e-디스커버리, 기록 관리, 또는 준수 의무와 같은 정보 관리 개시 이전에, 방어가능한 데이터 클린업을 수행하고, 또한, 유지될 필요가 있는 스테일 데이터(stale data)를 보관한다. 저장 최적화는 기존 저장 자원의 사용을 최적화하고, 저장 비용을 줄이며(가령, 데이터 중복 제거), 또한, 데이터 토폴로지 맵과 분류를 사용하여, 모니터링하고, 미래의 저장 요구에 대해 계획하며, 자원 소비를 추적한다(가령, 저장소, RAM, 네트워크 모니터링).
플랫폼의 자원 사용과 보안은 하드웨어, 소프트웨어 및 애플링케이션이 어떻게 사용되는지에 대한 정보를 수지하는 애플리케이션 및 정보 추적을 포함한다. 사용자는 가장 사용되는 프로그램, 웹사이트 및 파일 타입을 추적할 수 있다. 자원 소비 보고는 얼마나 많은 RAM, 대역폭 및 저장 공간을 사용자가 사용하는지를 나타낸다. 최적화를 위한 상황 인식 소프트웨어는 시간에 걸쳐 상이한 사용율의 패턴을 추적하고 구축하여서, 애플리케이션 사용과 데이터의 이동으로 가시성을 증가시킴에 의해 예측불가능성을 줄인다. 플랫폼은 가치있는 자원을 키 사용자, 애플리케이션 및/또는 프로그램으로 재안내한다. 개선된 가시성은 계획되고 실시간 할당을 할 수 있게 한다.
플랫폼 클라이언트 보안은 안티바이러스 기술, 진보된 방화벽 및 안티-맬웨어를 제공한다. 플랫폼 활동 보안은 장치 및/또는 클라이언트에 대한 이상 행동의 관리자를 모니터하고 경고한다. 플랫폼의 클라우드 보안은 정책, 기술 및 클라우드 내의 데이터와 애플리케이션을 보호하는 제어를 포함한다. 전개 및 이미징은 중앙 위치로부터 컴퓨터를 전개 및 관리한다. 안드로이드 코드 사이닝은 인증 키 및 Google Play에서 용이한 애플리케이션 버전 업데이트를 위한 애플리케이션을 관리한다. 장치 컨피규레이션 관리는 그룹 설정에 기초하여 애플리케이션/소프트웨어를 분배하고, 지정된 애플리케이션/소프트웨어를 제한 또는 허용하며, 의무 프로그램을 푸시한다. 플랫폼은 비-준수 장치로의 액세스를 경고하고 불능하게 한다. 플랫폼은 사유 애플리케이션/소프트웨어를 관리하고, 이들을 외부 노출 없이 사용자에게 전달하며, 또한, 장치에 업데이트를 집행한다. 엔드포인트 보안은 운영 시스템, 웹 브라우저를 보장하고, 다른 애플리케이션은 액세스를 허락하기 전에 최신이 된다.
실시예의 플랫폼은, 사업 데이터가 액세스되고, 보여지고, 수정되고 공유되는 방식에 걸친 제어와 이에 대한 비할데 없는 가시성을 IT 관리자에게 주는 관리 콘솔을 포함한다. 도 12는 실시예에서, 관리 콘솔의 예시적인 스크린을 도시한다. 온라인 관리 콘솔은, 사용자가 얼마나 활성화되는지, 이들은 서비스에 연결된 무슨 장치를 가지고 있는지, 이들이 동기화하려는 파일이 무엇인지, 이들이 누구와 데이터를 공유하는지를 포함하여, 서비스의 모든 면에 실시간 가시성을 제공한다. 또한, 관리 콘솔은 IT 관리자가, 사용자 허락, 파일 액세스 제한, 공유 제어 및 원격 데이터 지움을 포함하는 서비스의 중요 특징을 주도적으로 관리하도록 한다.
관리 콘솔은 파일 동기화 프로세스의 다양한 면을 제어하기 위한 능력을 포함한다. 플랫폼이 자동으로 민감한 문서를 식별하기 때문에, IT 관리자는 중요한 사업 문서가 서비스에 걸쳐 동기화되거나 내부적 또는 외부적으로 공유되는 것을 제한할 수 있다. 또한, IT 관리자는 제어 저장소와 동기화될 수 있는 파일을 위한 최대 크기 및 대역폭 소비를 설정할 수 있거나, 어느 파일 분류(가령, 음악 및 비디오)가 네트워크상에 있는 것을 방해하는지를 지정할 수 있다. 또한, IT 관리자는 파일이 액세스될 수 있는지 사용자 웹 포털로부터 다운로드될 수 있는지를 정의할 수 있다. 도 13은 실시예에서, 파일 동기화 제어를 포함하는 예시적인 실시예를 도시한다.
플랫폼은 실시간 자동화된 활동 모니터링, 감사 및 보고를 IT 관리자에게 전달하는데, 이는 날짜, 시간, 사용자, 장치, 파일 및 다른 요소에 의해 중요한 시스템 활동을 상세히 알린다. 보안 정책을 강제하기 위해, IT 관리자는 인식 불가능한 로그인, 패스워드 리셋 시도, 이벤트와 다른 활동을 공유하는 민감한 파일의 수를 볼 수 있다. 도 14는 실시예에서, 보안 활성화 모니터링 및 통지를 포함하는 예시적인 스크린을 도시한다. 이러한 예시에서, IT 관리자는 잠재적 보안 문제로 경고되는데, 왜냐하면, IT 관리자의 계좌로 5개의 인식 불가능한 로그인 시도는 Cluj, Romania에 알려지지 않은 위치로 이루어지기 때문이다. 보안 이벤트가 시스템내에서 발생하면, IT 관리자는 예를 들어, 관리 콘솔, IOS/Android 앱, 문자 또는 이메일을 통해 경고 통지를 수신할 수 있다.
도 15는 실시예에서, 문서 감사 추적을 포함하는 예시적인 스크린을 도시한다. 플랫폼은 문서의 완전한 파일 히스토리를 서비스 내에 기록한다. 각각의 문서에 대해, IT 관리자는 파일이 추가되거나 수정되거나 삭제될 때, 볼 수 있다. 또한, IT 관리자는 어느 장치가 문서에 액세스되고, 그 장치의 지리적 위치를 결정할 수 있다. 이러한 기능은 여러 장치에 걸쳐 복수의 사용자에 의해 수정되는 공유된 문서에게 필수적이다. 문서 감사 추적을 편집하는 것에 더하여, 각 파일의 완전한 수정 히스토리도 IT 관리자나 사용자가 파일의 이전 버전으로 되돌리기 원할 경우에, 저장된다.
도 16은 실시예에서, 파일 검색과 분류를 포함하는 예시적인 스크린을 도시한다. 자동 데이터 디스커버리와 세그멘테이션 기능을 사용하여, IT 관리자는 깊은 콘텐츠 검색과 핵심어 추출에 기초하여 민감한 사업 파일을 식별할 수 있다. 그리고 나서, IT 관리자는 소유주 정보(가령, 고객, 사원 및 금융 정보)를 포함하는 특정 문서를 검색하고 볼 수 있음은 물론, 이러한 정보를 제어하기 위한 특정 제한을 설정할 수 있다. 민감한 문서를 밀접하게 관리함에 더하여, IT 관리자는 파일 이름에 의해 조직에 걸쳐 파일을 검색할 수 있다. IT 관리자는 조직에 걸쳐 동기화된 전체 파일을 볼 수 있어서, 파일 타입 고장(문서, 음악, 비디오 등) 또는 크기에 기초한 파일의 분배를 이해한다. 이러한 정보는 사람 콘텐츠를 서비스에 추가하거나 아니면, 솔루션을 오용할 수 있는 IT 관리자 스포트 사용자를 도울 수 있다.
플랫폼은 IT 관리자가 어느 사용자가 조직 내에서 문서를 공유할 수 있는지를 특정 공동 작업자와 공유된 폴더를 설정함에 의해 결정할 수 있다. 권한 없는 사용자는 IT 관리자 또는 신뢰있는 사용자의 허락 없이 공유된 폴더에 액세스하는 능력을 가질 수 없다. IT 관리자는 어느 사용자가 일방향 웹 링크를 통해 공유하는지를 제어할 수도 있다. 또한, 웹 링크와 공유된 폴더 모두에 대해, IT 관리자는 모든 공유 활동(사용자에 의한 파일 추가, 수정 또는 삭제, 장치, 위치 등)의 완전한 히스토리를 가진다. 도 17은 실시예에서, 제어된 사용자 공유를 포함하는 예시적인 스크린을 도시한다.
도 18은 실시예에서, 원격 장치 관리 및 지오로케이션(geolocation) 서비스를 포함하는 예시적인 스크린을 도시한다. IT 관리자는 관리 콘솔을 통해 모바일 장치와 데스크톱을 원격으로 관리할 수 있다. 예를 들어, 사원이 조직에서 종료되면, IT 관리자는 임의의 공유 활동에서 사용자를 원격으로 제거할 수 있고, 사용자의 계정으로부터 장치를 링크 뺄 수 있으며, 장치에 대한 서비스를 중지할 수 있다. IT 관리자는 특정 장치의 원격 지움을 수행할 수 있고, 즉각적으로 민감한 사업 콘텐츠를 제거할 수 있다. 플랫폼은 지오로케이션 서비스를 관리 콘솔에 통합하여 시스템 이벤트에 대한 특정 위치를 식별하고, 모바일 장치와 컴퓨터의 위치를 모니터할 수 있다. 이는, IT 관리자가 집 컴퓨터와 다른 개인용 장치로부터 사업 콘텐츠를 제한하기 원한다면, 특히 유용하다.
플랫폼은 IT 관리자가 이들의 핵심 사업 파일의 저장 위치를 선택할 수 있도록 한다. IT 관리자는 또 다른 클라우드 저장소 제공자(가령, HP 또는 Amazon) 또는 서버나 NAS 환경(가령, NETGEAR) 내의 사내 설치로, Memeo 데이터 센터에 파일을 저장하도록 선택할 수 있다. 도 19는 실시예에서, 저장 위치의 선택을 포함하는 예시적인 스크린을 도시한다. 유연한 저장 모델은 고객들이 이미 경험했던 클라우드 제공자와 또는 로컬하게 파일을 저장할 수 있도록 함에 의해, 고객을 위한 보안을 향상시킨다. 또한, 이러한 접근법은 IT 관리자가 운영 비용을 감소시키는 기존 저장 인프라스트럭처를 사용할 수 있도록 한다.
본 명세서에 기술된 실시예는 복수의 데이터베이스에 연결된 프로세서를 포함한 플랫폼을 포함하는 시스템을 포함한다. 시스템은 플랫폼에 연결된 복수의 에이전트를 포함하는 그리드를 포함한다. 복수의 에이전트의 각각의 에이전트는 클라이언트 장치상에서 실행되는 플랫폼의 에이전트이다. 시스템은 복수의 에이전트에 대응하는 복수의 클라이언트 장치에 의해 액세스 가능한 메모리의 콘텐츠의 메타데이터를 포함한다. 각각의 클라이언트 장치의 각 에이전트는 메타데이터를 생성하여 플랫폼으로 제공한다. 플랫폼은 콘텐츠 대신에 메타데이터를 포함하고, 메타데이터를 사용하여 콘텐츠의 위치를 결정하고, 콘텐츠의 상태를 유지하기 위해 작업을 나타내는 목표를 생성하며, 목표에 대응하는 복수의 태스크를 생성하고, 각각의 태스크를 태스크에 대응하는 콘텐츠에 액세스하는 에이전트에 할당한다. 각각의 태스크는 에이전트에 의해 수행될 플랫폼에 의해 안내되는 에이전트에 의해 액세스 가능한 콘텐츠에 대한 프로세싱 작업이다.
본 명세서에 기술된 실시예는, 복수의 데이터에 연결된 프로세서를 포함하는 플랫폼과; 플랫폼에 연결된 복수의 에이전트를 포함하는 그리드 - 복수의 에이전트의 각 에이전트는 클라이언트 장치상에서 실행되는 플랫폼의 에이전트임 - 와; 및 복수의 에이전트에 대응하는 복수의 클라이언트 장치에 의해 액세스 가능한 메모리의 콘텐츠의 메타데이터 - 각각의 클라이언트 장치의 각 에이전트는 메타데이터를 생성하여 플랫폼으로 제공하고, 플랫폼은 콘텐츠 대신에 메타데이터를 포함하고, 메타데이터를 사용하여 콘텐츠의 위치를 결정하고, 콘텐츠의 상태를 유지하기 위해 작업을 나타내는 목표를 생성하며, 목표에 대응하는 복수의 태스크를 생성하고, 각각의 태스크를 태스크에 대응하는 콘텐츠에 액세스하는 에이전트에 할당한다. 각각의 태스크는 에이전트에 의해 수행될 플랫폼에 의해 안내되는 에이전트에 의해 액세스 가능한 콘텐츠에 대한 프로세싱 작업임 - 를 포함하는 시스템을 포함한다.
실시예의 플랫폼은 복수의 에이전트를 위한 마스터 제어기인데, 복수의 에이전트는 복수의 태스크에 의해 제어되는 것과 같이 플랫폼과 상호 작동한다.
실시예의 복수의 에이전트의 각 에이전트는 플랫폼 및 복수의 에이전트의 다른 에이전트와 독립적으로 기능한다.
실시예의 플랫폼은 콘텐츠를 수신하는 대신에, 콘텐츠의 메타데이터를 수신하는데, 복수의 에이전트를 호스팅하는 복수의 클라이언트 장치는 상기 콘텐츠를 포함하는 분배 저장 장치를 포함한다.
실시예의 플랫폼은 복수의 에이전트의 콘텐츠의 마스터 인덱스를 복수의 데이터베이스에서 유지하기 위해 메타데이터를 사용한다.
실시예의 메타데이터는 상기 콘텐츠의 위치에 대한 데이터를 포함한다.
실시예의 메타데이터는 상기 콘텐츠의 상태에 대한 데이터를 포함한다.
실시예의 메타데이터는 복수의 에이전트의 신원에 대한 데이터를 포함한다.
실시예의 메타데이터는 각 에이전트가 액세스하는 콘텐츠에 대한 데이터를 포함한다.
실시예의 메타데이터는 복수의 에이전트에 의해 수행된 복수의 태스크의 정보를 포함한다.
실시예의 태스크는 상기 그리드에 걸쳐상기 콘텐츠의 위치를 추적하는 것과 관련된다.
실시예의 태스크는 상기 그리드에서 상기 콘텐츠의 저장을 관리하는 것과 관련된다.
실시예의 태스크는 상기 그리드에서 상기 콘텐츠의 이동을 관리하는 것과 관련된다.
실시예의 태스크는 그리드에서 상기 콘텐츠를 프로세스하는 것과 관련된다.
실시예의 태스크 각각은 태스크에 대한 완성의 조건을 포함한다.
실시예의 복수의 에이전트는 플랫폼에 의해 지시된 대로 콘텐츠를 집합적으로 모니터링한다.
실시예의 복수의 에이전트는 플랫폼에 의해 지시된 대로 콘텐츠를 집합적으로 저장한다.
실시예의 복수의 에이전트는 플랫폼에 의해 지시된 대로 콘텐츠를 집합적으로 전송한다.
실시예의 복수의 에이전트는 플랫폼에 의해 지신된 대로 콘텐츠에 대한 프로세싱 작업을 집합적으로 수행한다.
실시예의 각 클라이언트 장치의 각 에이전트는 클라이언트 장치에 의해 액세스 가능한 메모리의 콘텐츠를 인덱스한다.
실시예의 복수의 데이터베이스는 플랫폼에 사용가능한 에이전트 및 각 에이전트의 정보를 포함하는 에이전트 데이터베이스를포함한다.
실시예의 각 에이전트는 적어도 하나의 라이브러리를 포함하는데, 라이브러리는 에이전트가 적어도 판독 액세스와 기재 액세스를 포함하는 액세스를 가지는 장치를 나타낸다.
실시예의 복수의 데이터베이스는 복수의 에이전트에 대응하는 라이브러리의 리스트를 포함하는 라이브러리 데이터베이스를 포함하는데, 그리드의 각 라이브러리는 라이브러리 데이터베이스 내에 별도로 나타낸다.
실시예의 각 에이전트는 에이전트에 대응하는 각 라이브러리에 액세스한다.
실시예의 복수의 데이터베이스는 목표의 리스트를 포함하는 목표 데이터베이스를 포함하는데, 목표의 리스트의 각 목표는 플랫폼에 의해 생성되고, 적어도 하나의 라이브러리에 해당하며, 목표는 해당 라이브러리 콘텐츠에 작업을 실행하는데 사용된다.
실시예의 목표의 리스트는 태스크가 수행될 라이브러리의 집합체(collection)를 포함한다.
실시예의 각 목표는 적어도 하나의 라이브러리에 해당하고, 에이전트에 의해 사용되어서, 해당 라이브러리의 콘텐츠에 적어도 하나의 태스크를 실행한다.
실시예의 플랫폼은 복수의 에이전트의 복수의 라이브러리를 판독하기 위해 목표를 사용한다.
실시예의 플랫폼은 목표를 사용하여, 복수의 에이전트에 의해 액세스 가능한 콘텐츠에서, 불일치와 차이 중 적어도 하나를 식별한다.
실시예의 플랫폼은 목표를 사용하여, 콘텐츠에서 식별된 불일치와 차이 중 적어도 하나를 제거하기 위해 적어도 하나의 태스크를 생성한다.
실시예의 복수의 데이터베이스는 작업 데이터베이스를 포함한다.
실시예의 플랫폼은 각 에이전트에 대응하는 작업 데이터베이스를 생성하고, 작업 데이터베이스는 해당 에이전트에 의해 수행될 태스크를 포함한다.
실시예의 작업 데이터베이스는 해당 에이전트에 의해 수행될 각 태스크의 설명 및 에이전트가 태스크를 수행하기 위해 필요한 정보를 포함한다.
실시예의 복수의 데이터베이스는 복수의 에이전트의 능력에 대한 정보를 포함하는 능력 데이터베이스를 포함한다.
실시예의 복수의 데이터베이스는 복수의 에이전트의 기록을 포함하고 유지하는 동기화 데이터베이스를 포함한다.
실시예의 동기화 데이터베이스는 복수의 에이전트의 콘텐츠의 파일 상태의 기록을 포함한다.
실시예의 동기화 데이터베이스는 각 파일에 대한 엔트리를포함하는데, 상기 엔트리는 파일에 대응하는 콘텐츠 해시를 포함하고, 상기 콘텐츠 해시는 파일의 콘텐츠를 나타내는 블로브의 리스트의 해시를 포함하고, 블로브의 리스트의 각 블로브는 콘텐츠내의 파일의 단편의 표시(representation)를 포함하고, 단편은 파일의 구성이다.
실시예의 동기화 데이터베이스는 각 에이전트에 대한 엔트리를 포함하는데, 상기 엔트리는 에이전트의 파일에 대응하는 콘텐츠 해시를 포함하고, 상기 콘텐츠 해시는 파일의 콘텐츠를 나타내는 블로브의 리스트의 해시를 포함하고, 블로브의 리스트의 각 블로브는 콘텐츠내의 파일의 단편을 나타냄을 포함하고, 단편은 파일의 구성이다.
실시예의 플랫폼은 복수의 에이전트를 사용하여 클라이언트 장치들 중에서 콘텐츠의 전송을 제어한다.
실시예의 플랫폼은 복수의 에이전트를 사용하여 클라이언트 장치들중에서 콘텐츠의 동기화를 제어하는데, 상기 콘텐츠의 동기화는 콘텐츠에서의 변경에 응답하여 콘텐츠를 동기화하는 것을 포함한다.
실시예의 콘텐츠의 전송은 블록-레벨, 콘텐츠의 비-순차적 전송을 포함한다.
실시예의 콘텐츠의 전송은 콘텐츠의 제1 블록을 제2 클라이언트 장치에서 제1 클라이언트 장치로 전송하는 것 및 콘텐츠의 제2 블록을 제3 클라이언트 장치에서 제1 클라이언트 장치로 전송하는 것을 포함한다.
실시예의 복수의 태스크는 스캔 태스크를 포함한다.
실시예의 스캔 태스크는 에이전트에 대응하는 라이브러리를 회귀적으로 모니터링하고, 라이브러리에서 임의의 변경을 플랫폼으로 보고하는 에이전트를 포함한다.
실시예의 보고는 에이전트를 호스팅하는 클라이언트 장치의 로컬 데이터베이스에서의 변경을 포함하는 라이브러리의 파일을 위치시키는 것 및 로컬 데이터베이스의 메타데이터를 플랫폼에 제공하는 것을 포함한다.
실시예의 복수의 태스크는 기재 태스크를 포함한다.
실시예의 기재 태스크는 파일의 적어도 하나의 블로브를 제1 위치에서 제2 위치로 복사하는 에이전트를 포함하는데, 제1 위치와 제2 위치의 각각은 그리드와 연결된 클라이언트 장치들에 대응한다.
실시예의 적어도 하나의 블로브는 콘텐츠에서의 파일의 단편에 대한 표시를 포함하는데, 단편은 파일의 구성이다.
실시예의 기재 태스크는 완성의 조건을 포함한다.
실시예의 완성의 조건은 기재 태스크에 대응하는 블로브를 복구하는 것과 정확한 파일에 대응하는 기재 태스크 동안 중복기재되될 블로브를 식별하는 것 중 적어도 하나를 포함한다.
실시예의 복수의 태스크는 에이전트에 의해 액세스 가능한 장치로부터 콘텐츠의 표시를 원격 저장 장치로 복사하는 것을 포함하는 업로드 태스크를 포함한다.
실시예의 에이전트는 파일의 에이전트에 의해 액세스 가능한 콘텐츠에 추가하는 것을 플랫폼에 보고하고, 이에 응답하여, 플랫폼은 태스크를 에이전트에 할당하여 파일을 업로드한다.
태스크에 응답하여, 실시예의 에이전트는, 파일이 원격 저장 장치에 존재하는지를 결정하고, 파일이 존재하지 않다고 결정되면, 파일의 표시를 원격 저장 장치에 업로드한다.
실시예의 업로드 태스크는 파일의 적어도 하나의 블로브를 에이전트에 의해 액세스 가능한 장치에서 원격 저장 장치로 복사하는 에이전트를 포함한다.
실시예의 적어도 하나의 블로브는 파일의 단편의표시를 포함하는데, 단편은 파일의 구성이다.
실시예의 복수의 태스크는 삭제 태스크를 포함한다.
실시예의 태스크는 대기, 펜딩 및 완성 중 하나를 포함하는 복수의 상태를 포함하는데, 플랫폼은 복수의 태스크의 각 태스크의 상태를 추적한다.
실시예의 각 에이전트는 에이전트에 할당된 클라이언트 장치 태스크에서 로컬하게 유지한다.
실시예의 에이전트는 할당된 태스크를 식별하기 위해 플랫폼을 주기적으로 폴링한다.
실시예의 에이전트는 태스크를 완성하는데 필요하고, 원격 장치에 위치된 태스크 정보를 찾기 위한 계층(hierarchy)를 포함한다.
실시예의 계층은 에이전트를 호스팅하는 클라이언트 장치의 로컬 데이터베이스를 검색하는 에이전트를 포함한다.
실시예의 계층은 태스크 정보를 찾기 위해, 복수의 에이전트의 적어도 하나의 피어 에이전트와 통신하는 에이전트를 포함한다.
실시예의 에이전트는 태스크 정보를 소유한 피어 에이전트의 신원을 포함한다.
실시예의 계층은 원격 저장 장치로부터 태스크 정보를 복구하는 에이전트를 포함한다.
실시예의 에이전트는 순서화된 리스트 내의 피어 에이전트의 신원을 플랫폼으로부터 복구하고, 순서화된 리스트에 따라 태스크 정보를 검색한다.
실시예의 각 에이전트는 병렬로 실행하는 복수의 구성을 포함한다.
실시예의 복수의 구성은 상기 플랫폼으로부터 상기 에이전트에 대해 지정된 태스크를 복구하고 에이전트를 호스팅하는 클라이언트 장치에 국한된 태스크 데이터베이스에 불러와진 태스크를 저장하는 제공자 구성을 포함한다.
실시예의 복수의 구성은 태스크 실행 구성을 포함한다.
실시예의 복수의 구성은 태스크 데이터베이스를 모니터하고, 상기 태스크 데이터베이스로부터 각 태스크를 복구하며, 불러와진 태스크를 태스크 실행 구성으로 제공하며, 상기 불러와진 태스크를 지정하여 계류 상태를 갖도록 하는 러너(runner) 구성을 포함한다.
실시예의 태스크 실행 구성은 태스크를 실행하고, 태스크 실행 상태를 상기 러너 구성에 보고한다.
실시예의 러너 구성은 상태를 태스크 데이터베이스에 보고한다.
실시예의 복수의 구성은 완료 상태를 갖는 태스크에 대한 태스크 데이터베이스를 모니터하고, 완성된 태스크의 상태 정보를 상기 플랫폼으로 보고하는 업데이트 구성을 포함한다.
실시예의 플랫폼은 상태 정보에 응답하여 복수의 데이터베이스를 업데이트한다.
실시예의 메타데이터는 복수의 에이전트에 의해 생성되는데, 에이전트에 의해 생성된 메타데이터는 에이전트가 액세스한 콘텐츠에 대응한다.
실시예의 에이전트는 에이전트가 액세스한 각 파일의 콘텐츠를 스캐닝함에 의해 메타데이터를 생성한다.
실시예의 에이전트는 파일의 콘텐츠를 복수의 단편으로 분할함에 의해 메타데이터를 생성하는데, 각 단편은 파일의 가변 크기 구성을 포함한다.
실시예의 가변 크기 단편은 미리-특정된 최소 길이와 최대 길이 사이에 있다.
실시예의 에이전트는 복수의 단편을 나타내는 복수의 블로브를 생성함에 의해 메타데이터를 생성하는데, 각 블로브는 단편을 나타낸다.
실시예의 에이전트는, 콘텐츠의 각 바이트에 대해 콘텐츠의 구성에 걸쳐 해시 알고리즘을 실행하는 데이터 핑거프린팅 알고리즘을 사용하여 복수의 블로브를 생성하는데, 해시 알고리즘은 데이터의 특정 패턴을 식별하도록 설정된다.
실시예의 블로브를 생성하는 것은 포인트에서 해시의 값을 포함하는 블로브의 설명을 생성하는 것을 포함하는데, 블로브에 의해 나타난 단편은 파일의 나머지 부분으로부터 분리되었다.
실시예의 블로브를 생성하는 것은 블로브에 의해 나타난 단편의 브레이크 포인트에 기초하여 오프셋 값을 생성하는 것을 포함한다.
실시예의 블로브의 생성하는 것은 블로브의 완료 콘텐츠의 해시를 생성하는 것을 포함하는데, 블로브의 완료 콘텐츠의 해시는 블로브의 식별자이다.
실시예의 블로브의 생성은 파일의 콘텐츠를 나타내는 블로브의 리스트를 생성하는 것을 포함한다.
실시예의 블로브의 생성하는 것은 파일의 콘텐츠를 나타내는 블로브의 리스트의 해시를 포함하는 콘텐츠 해시를 생성하는 것을 포함하는데, 콘텐츠 해시는 파일에 대한 식별자이다.
실시예의 블로브의 생성하는 것은 파일에 대응하는 파일 이름의 해시를 포함하는 이름 해시를 생성하는 것을 포함한다.
실시예의 블로브의 생성하는 것은 콘텐츠 해시와 이름 해시의 조합의 해시를 포함하는 파일 해시를 생성하는 것을 포함한다.
실시예의 블로브의 생성하는 것은 파일 이름의 해시 및 파일의 콘텐츠에 대응하는 파일 경로를 포함하는 경로 해시를 생성하는 것을 포함한다.
실시예의 블로브의 생성하는 것은 파일의 파일 메타데이터의해시를 포함하는 메타데이터 해시를 생성하는 것을 포함한다.
실시예의 플랫폼은 파일에 대한 기록을 생성하고, 기록은 파일의 블로브 해시, 콘텐츠 해시,파일 해시, 경로 해시 및 메타데이터 해시를 포함한다.
실시예의 복수의 데이터베이스는 라이브러리 데이터베이스를 포함하는데, 라이브러리 데이터베이스는 기록을 포함한다.
실시예의 블로브를 생성하는 것은 블로브의 크기를 생성하는 것을 포함한다.
실시예의 파일은 파일을 포함하는 블로브의 리스트로서 기술된다.
실시예의 각 에이전트는 에이전트를 호스팅하는 클라이언트 장치에서 로컬하게 블로브를 저장하고, 이전에 보고되지 않은 블로브를 플랫폼의 중앙 저장소로 전송한다.
본 명세서에 기술된 실시예는 복수의 데이터와 연결된 프로세서를 포함하는 플랫폼을 포함하는 시스템을 포함한다. 시스템은 플랫폼에 연결된 복수의 에이전트를 포함하는 그리드를 포함한다. 복수의 에이전트의 각 에이전트는 클라이언트 장치에서 실행되는 플랫폼의 에이전트이다. 시스템은 복수의 에이전트에 대응하는 복수의 클라이언트 장치에 의해 액세스 가능한 메모리의 콘텐츠의 메타데이터이다. 에이전트는 콘텐츠의 복수의 단편을 해싱함에 의해콘텐츠에 대응하는 메타데이터를 생성하고, 플랫폼에 제공한다. 플랫폼은 콘텐츠 대신에 메타데이터를 사용하여 콘텐츠의 저장, 전송 및 프로세싱 중 적어도 하나를 제어하는 태스크를 포함하는 복수의 태스크를 생성하고, 복수의 에이전트에 할당한다. 태스크는 태스크를 담당하는 에이전트에 의해 액세스 가능한 콘텐츠에 수행된 프로세싱 작업이다.
본 명세서에 기술된 실시예는, q고수의 데이터베이스에 연결된 프로세서를 포함하는 플랫폼과, 플랫폼에 연결된 복수의 에이전트를 포함하는 그리드 - 복수의 에이전트의 각 에이전트느 클라이언트 장치상에서 실행되는 플랫폼의 에이전트 - 와, 복수의 에이전트에 대응하는 복수의 클라이언트 장치에 의해 액세스 가능한 메모리의 콘텐츠의 메타데이터 - 에이전트는 콘텐츠의 복수의 단편을 해싱함에 의해 콘텐츠에 대응하는 메타데이터를 생성하고 플랫폼에 제공하고, 플랫폼은 콘텐츠 대신에 메타데이터를 사용하여 콘텐츠의 저장, 전송 및 프로세싱 중 적어도 하나를 제어하는 태스크를 포함하는 복수의 태스크를 생성하고 복수의 에이전트에 할당하며, 태스크는 태스크를 담당하는 에이전트에 의해 액세스 가능한 콘텐츠에 수행된 프로세싱 작업임 - 를 포함하는 시스템을 포함한다.
본 명세서에 기술된 실시예는 복수의 데이터베이스에 연결된 프로세스를 포함하는 플랫폼을 포함하는 시스템을 포함한다. 시스템은 플랫폼에 연결된 복수의 에이전트를 포함하는 그리드를 포함한다. 복수의 에이전트의 각 에이전트는 클라이언트 장치상에서 실행되는 플랫폼의 에이전트이다. 각 클라이언트 장치의 각 에이전트는 클라이언트 장치에 의해 액세스 가능한 메모리의 콘텐츠의 메타데이터를 플랫폼에 제공한다. 플랫폼은 메타데이터를 사용하여, 콘텐츠의 위치를 결정하고, 콘텐츠의 상태를 유지하기 위해 작업을 나타내는 목표를 생성하고, 목표에 대응하는 복수의 태스크를 생성하며, 태스크에 대응하는 콘텐츠에 액세스하는 에이전트에 각 태스크를 할당한다. 태스크는 에이전트에 의해 액세스 가능한 콘텐츠에, 에이전트에 의해 수행될 플랫폼에 의해 지시된 프로세싱 작업이다. 복수의 에이전트에 의해 제공되는 메타데이터는 복수의 에이전트에 의해 수행되는 복수의 태스크의 정보를 포함한다.
본 명세서에 기술된 실시예는, 복수의 데이터베이스에 연결된 프로세스를 포함하는 플랫폼과, 플랫폼에 연결된 복수의 에이전트를 포함하는 그리드 - 복수의 에이전트의 각 에이전트는 클라이언트 장치상에서 실행되는 플랫폼의 에이전트이고, 각 클라이언트 장치의 각 에이전트는 클라이언트 장치에 의해 액세스 가능한 메모리의 콘텐츠의 메타데이터를 플랫폼에 제공하며, 플랫폼은 메타데이터를 사용하여, 콘텐츠의 위치를 결정하고, 콘텐츠의 상태를 유지하기 위해 작업을 나타내는 목표를 생성하고, 목표에 대응하는 복수의 태스크를 생성하며, 태스크에 대응하는 콘텐츠에 액세스하는 에이전트에 각 태스크를 할당하고, 태스크는 에이전트에 의해 액세스 가능한 콘텐츠에, 에이전트에 의해 수행될 플랫폼에 의해 지시된 프로세싱 작업이며, 복수의 에이전트에 의해 제공되는 메타데이터는 복수의 에이전트에 의해 수행되는 복수의 태스크의 정보를 포함함 - 를 포함하는 시스템을 포함한다.
본 명세서에 기술된 실시예는 복수의 데이터베이스에 연결된 프로세서를 포함하는 플랫폼을 포함하는 시스템을 포함한다. 시스템은 플랫폼에 연결된 복수의 에이전트를 포함하는 그리드를 포함한다. 복수의 에이전트의 각 에이전트는 클라이언트 장치상에서 실행되는 플랫폼의 에이전트이다. 시스템은 복수의 에이전트에 대응하는 복수의 클라이언트 장치에 의해 액세스 가능한 메모리의 콘텐츠의 메타데이터를 포함한다. 각 에이전트는 에이전트가 액세스한 콘텐츠에 대응하는 메타데이터를 생성하고 플랫폼에 제공한다. 각 에이전트는 콘텐츠의 복수의 단편을 해싱함에 의해 메타데이터를 생성하여, 복수의 단편을 나타내는 복수의 블로브를 생성한다. 플랫폼은 콘텐츠 대신에 메타데이터를 사용하여, 복수의 태스크를 생성하고 복수의 에이전트에 할당한다. 태스크는 태스크를 담당하는 에이전트에 의해 액세스 가능한 콘텐츠에 수행된 프로세싱 작업이다. 복수의 태스크는 콘텐츠를 모니터, 저장, 전송 및 프로세스 중 적어도 하나를 하는 태스크를 포함한다.
본 명세서에 기술된 실시에는, 복수의 데이터베이스에 연결된 프로세서를 포함하는 플랫폼과, 플랫폼에 연결된 복수의 에이전트를 포함하는 그리드 - 복수의 에이전트의 각 에이전트는 클라이언트 장치상에서 실행되는 플랫폼의 에이전트이고, 복수의 에이전트에 대응하는 복수의 클라이언트 장치에 의해 액세스 가능한 메모리의 콘텐츠의 메타데이터를 포함하며, 각 에이전트는 에이전트가 액세스한 콘텐츠에 대응하는 메타데이터를 생성하고 플랫폼에 제공하고, 각 에이전트는 콘텐츠의 복수의 단편을 해싱함에 의해 메타데이터를 생성하여, 복수의 단편을 나타내는 복수의 블로브를 생성하고, 플랫폼은 콘텐츠 대신에 메타데이터를 사용하여, 복수의 태스크를 생성하고 복수의 에이전트에 할당하며, 태스크는 태스크를 담당하는 에이전트에 의해 액세스 가능한 콘텐츠에 수행된 프로세싱 작업이고, 복수의 태스크는 콘텐츠를 모니터, 저장, 전송 및 프로세스 중 적어도 하나를 하는 태스크를 포함 - 를 포함하는 시스템을 포함한다.
본 명세서에 기술된 실시예는 프로세서를 포함하는 플랫폼을 복수의 데이터베이스에 연결하는 단계를 포함한다. 본 방법은 복수의 에이전트를 플랫폼에 연결함에 의해 그리드를 형성하는 단계를 포함한다. 복수의 에이전트의 각 에이전트는 클라이언트 장치상에서 실행되는 플랫폼의 에이전트이다. 본 방법은 각 에이전트에서 메타데이터를 생성하고, 콘텐츠 대신에 메타데이터를 플랫폼에 제공하는 단계를 포함한다. 메타데이터는 복수의 에이전트에 대응하는 복수의 클라이언트 장치에 의해 액세스 가능한 메모리의 콘텐츠에 대응한다. 본 방법은 메타데이터로 콘텐츠의 위치를 결정하는 단계를 포함한다. 본 방법은 콘텐츠의 상태를 유지하기 위한 작업을 나타내는 메타데이터를 가진 목표를 생성하는 단계를 포함한다. 본 방법은 메타데이터로 목표에 대응하는 복수의 태스크를 생성하는 단계를 포함한다. 본 방법은 태스크에 대응하는 콘텐츠에 액세스하는 에이전트에 각 태스크를 할당하는 단계를 포함한다. 각 태스크는 에이전트에 의해 액세스 가능한 콘텐츠에, 플랫폼에 의해 지시되어 에이전트에 의해 수행되는 프로세싱 작업이다.
본 명세서에 기술된 실시예는 프로세서를 포함하는 플랫폼을 복수의 데이터베이스에 연결하는 단계와, 복수의 에이전트를 플랫폼에 연결함에 의해 그리드를 형성하는 단계 - 복수의 에이전트의 각 에이전트는 클라이언트 장치상에서 실행되는 플랫폼의 에이전트 임 - 와, 각 에이전트에서 메타데이터를 생성하고, 콘텐츠 대신에 메타데이터를 플랫폼에 제공하는 단계 - 메타데이터는 복수의 에이전트에 대응하는 복수의 클라이언트 장치에 의해 액세스 가능한 메모리의 콘텐츠에 대응함 - 와, 메타데이터로 콘텐츠의 위치를 결정하는 단계와, 콘텐츠의 상태를 유지하기 위한 작업을 나타내는 메타데이터를 가진 목표를 생성하는 단계와, 메타데이터로 목표에 대응하는 복수의 태스크를 생성하는 단계와, 및 태스크에 대응하는 콘텐츠에 액세스하는 에이전트에 각 태스크를 할당하는 단계 - 각 태스크는 에이전트에 의해 액세스 가능한 콘텐츠에, 플랫폼에 의해 지시되어 에이전트에 의해 수행되는 프로세싱 작업임 - 를 포함하는 방법을 포함한다.
본 방법은 복수의 에이전트에 대한 마스터 제어기로서 작동하는 플랫폼을 포함하되, 복수의 에이전트는 복수의 태스크에 의해 제어되는 대로, 플랫폼과 상호 동작한다.
본 방법은 플랫폼 및 복수의 에이전트의 다른 에이전트와 독립적으로 기능하는 복수의 에이전트의 각 에이전트를 포함한다.
본 방법은 콘텐츠를 수신하는 대신에, 콘텐츠의 메타데이터를 수신하는 플랫폼을 포함하되, 복수의 에이전트를 호스팅하는 복수의 클라이언트 장치는 콘텐츠를 포함하는 분산형 저장 장치를 포함한다.
본 방법은 복수의 데이터베이스에서 메타데이터를 사용하여, 복수의 에이전트의 콘텐츠의 마스터 인덱스를 유지시키는 플랫폼을 포함한다.
실시예의 메타데이터는 콘텐츠의 위치에 대한 데이터를 포함한다.
실시예의 메타데이터는 콘텐츠의 상태에 대한 데이터를 포함한다.
실시예의 메타데이터는 복수의 에이전트의 신원에 대한 데이터를 포함한다.
실시예의 메타데이터는 각 에이전트가 액세스하는 콘텐츠에 대한 데이터를 포함한다.
실시예의 메타데이터는 복수의 에이전트에 의해 수행된 복수의 태스크의 정보를 포함한다.
실시예의 태스크는 그리드에 걸쳐 콘텐츠의 위치를 추적하는 것과 관련된다.
실시예의 태스크는 그리드에 걸쳐 콘텐츠의 저장을 관리하는 것과 관련된다.
실시예의 태스크는 그리드에 걸쳐 콘텐츠의 이동을 관리하는 것과 관련된다.
실시예의 태스크는 그리드에 걸쳐 콘텐츠의 프로세싱을 관리하는 것과 관련된다.
실시예의 각 태스크는 태스크에 대한 완성의 조건을 포함한다.
본 방법은 플랫폼에 의해 지시된 대로, 콘텐츠를 집합적으로 모니터링하는 복수의 에이전트를 포함한다.
본 방법은 플랫폼에 의해 지시된 대로, 콘텐츠를 집합적으로 저장하는 복수의 에이전트를 포함한다.
본 방법은 플랫폼에 의해 지시된 대로, 콘텐츠를 집합적으로 전송하는 복수의 에이전트를 포함한다.
본 방법은 플랫폼에 의해 지시된 대로, 콘텐츠에 대해 프로세싱 작업을 집합적으로 수행하는 복수의 에이전트를 포함한다.
본 방법은 클라이언트 장치에 의해 액세스 가능한 메모리의 콘텐츠를 인덱싱하는 각 클라이언트 장치의 각 에이전트를 포함한다.
실시예의 복수의 데이터베이스는 플랫폼에 사용가능한 에이전트와 각 에이전트의 정보를 포함하는 에이전트 데이터베이스를 포함한다.
실시예의 각 에이전트는 적어도 하나의 라이브러리를 포함하되, 라이브러리는 에이전트가 판독 액세스와 기재 액세스 중 적어도 하나를 포함하는 액세스하는 장치를 나타낸다.
실시예의 복수의 데이터베이스는 복수의 에이전트에 대응하는 라이브러리의 리스트를 포함하는 라이브러리 데이터베이스를 포함하되, 그리드의 각 라이브러리는 라이브러리 데이터베이스에 별도로 나타낸다.
본 방법은 에이전트에 대응하는 각 라이브러리에 액세스하는 각 에이전트를 포함한다.
실시예의 복수의 데이터베이스는 목표의 리스트를 포함하는 목표 데이터베이스를 포함하되, 목표의 리스트의 각 목표는 플랫폼에 의해 생성되고, 적어도 하나의 라이브러리에 대응하며, 목표는 대응하는 라이브러리 콘텐츠에 대해 작업을 실행하는데 사용된다.
본 방법은 태스크가 수행되는 라이브러리의 집합체를 포함하기 위해 목표의 리스트를 생성하는 단계를 포함한다.
실시예의 각 목표는 적어도 하나의 라이브러리에 대응하고, 에이전트에 의해 사용되어서, 대응하는 라이브러리의 콘텐츠에 대해 적어도 하나의 태스크를 실행한다.
본 방법은 목표를 사용하여 복수의 에이전트의 복수의 라이브러리를 판독하는 플랫폼을 포함한다.
본 방법은 목표를 사용하여 복수의 에이전트에 의해 액세스 가능한 콘텐츠에서의 불일치와 차이 중 적어도 하나를 식별하는 플랫폼을 포함한다.
본 방법은 목표를 사용하여 콘텐츠에서 식별된 불일치와 차이 중 적어도 하나를 제거하기 위한 적어도 하나의 태스크를 생성하는플랫폼을 포함한다.
실시예의 복수의 데이터베이스는 작업 데이터베이스를 포함한다.
본 방법은 각 에이전트에 대응하는 작업 데이터베이스를 생성하는 플랫폼을 포함하고, 작업 데이터베이스는 대응하는 에이전트에 의해 수행될 태스크를 포함한다.
실시예의 작업 데이터베이스는 대응하는 에이전트에 의해 수행될 각 태스크의 설명 및 에이전트가 태스크를 수행하기 위해 필요한 정보를 포함한다.
실시예의 복수의 데이터베이스는 복수의 에이전트의 능력의 정보를 포함하는 능력 데이터베이스를 포함한다.
실시예의 복수의 데이터베이스는 복수의 에이전트의 기록를 포함하고 유지하는 동기화 데이터베이스를 포함한다.
실시예의 동기화 데이터베이스는 복수의 에이전트의 콘텐츠의 파일 상태의 기록을 포함한다.
실시예의 동기화 데이터베이스는 각 파일에 대한 엔트리를 포함하는데, 엔트리는 파일에 대응하는 콘텐츠 해시를 포함하고, 콘텐츠 해시는 파일의 콘텐츠를 나타내는 블로브의 리스트의 해시를 포함하며, 블로브의 리스트의 각 블로브는 콘텐츠 내의 파일의 단편의 해시를 포함하며, 단편은 파일의 구성이다.
실시예의 동기화 데이터베이스는 각 에이전트에 대한 엔트리를 포함하고, 엔트리는 에이전트의 파일에 대응하는 콘텐츠 해시를 포함하며, 콘텐츠 해시는 파일의 콘텐츠를 나타내는 블로브의 리스트의 해시를 포함하고, 블로브의 리스트의 각 블로브는 콘텐츠 내의 파일의 단편의 해시를 포함하고, 단편은 파일의 구성이다.
본 방법은 복수의 에이전트를 사용하여 클라이언트 장치 중에 콘텐츠의 전송을 제어하는 플랫폼을 포함한다.
본 방법은 복수의 에이전트를 사용하여 클라이언트 장치 중에 콘텐츠의 동기화를 제어하는 플랫폼을 포함하고, 콘텐츠의 동기화는 콘텐츠 내의 변경에 응답하여 콘텐츠를 동기화하는 것을 포함한다.
콘텐츠의 전송은 블록-레벨, 콘텐츠의 비-순차적 전송을 포함한다.
콘텐츠의 전송은 제2 클라이언트 장치에서 제1 클라이언트 장치로 제1 블록의 콘텐츠를 전송하는 단계 및 제3 클라이언트 장치에서 제1 클라이언트 장치로 제2 블록의 콘텐츠를 전송하는 단계를 포함한다.
복수의 태스크는 스캔 태스크를 포함한다.
실시예의 스캔 태스크는 에이전트에 대응하는 라이브러리를 회귀적으로 모니터링하고, 라이브러리에서의 변경을 플랫폼으로 보고하는 에이전트를 포함한다.
보고하는 것은 변경을 포함하는 라이브러리의 파일을 에이전트를 호스팅하는 클라이언트 장치의 로컬 데이터베이스에 위치시키고, 로컬 데이터베이스의 메타데이터를 플랫폼에 제공하는 것을 포함한다.
복수의 태스크는 기재 태스크를 포함한다.
기재 태스크는 파일의 적어도 하나의 블로브를 제1 위치에서 제2 위치로 복사하는 에이전트를 포함하는데, 제1 위치와 제2 위치 각각은 그리드와 연결된 클라이언트 장치에 대응한다.
실시예의 적어도 하나의 블로브는 콘텐츠 내의 파일의 단편의 해시를 포함하되, 단편은 파일의 구성이다.
실시예의 기재 태스크는 완성의 조건을 포함한다.
실시예의 완성의 조건은 기재 태스크에 대응하는 블로브를 수신하는 것 및 정확한 파일에 대응하는 기재 태스크 동안에 중복 기재될 블로브를 식별하는 것 중 적어도 하나를 포함한다.
실시예의 복수의 태스크는 콘텐츠의 파일을 에이전트에 의해 액세스 가능한 장치에서 원격 저장 장치로 복사하는 것을 포함하는 업로드 태스크를 포함한다.
본 방법은 에이전트에 의해 액세스 가능한 콘텐츠로의 파일의 추가를 플랫폼에 보고하는 에이전트를 포함하고, 플랫폼은 보고에 응답하여, 에이전트에 태스크를 할당하여 파일을 업로드한다.
본 방법은 파일이 원격 저장 장치에 존재하는지를 에이전트가 결정하는 것에 응답하여, 파일이 없는 것으로 결정되면, 파일을 원격 저장 장치에 업로드한다.
실시예의 업로드 태스크는, 파일의 적어도 하나의 블로브를 에이전트에 의해 액세스 가능한 장치에서 원격 저장 장치로 복사하는 에이전트를 포함한다.
실시예의 적어도 하나의 블로브는 파일의 단편의 해시를 포함하되, 단편은 파일의 구성이다.
실시예의 복수의 태스크는 삭제 태스크를 포함한다.
실시예의 대기, 펜딩 및 완성 중 적어도 하나를 포함하는 복수의 상태를 포함하는 태스크를 포함하고, 플랫폼은 복수의 태스크의 각 태스크의 상태를 추적한다.
본 방법은 클라이언트 장치에서, 에이전트에 할당된 태스크를 로컬하게 유지시키는 각 에이전트를 포함한다.
본 방법은 플랫폼을 주기적으로 폴링하여 할당된 태스크를 식별하는 에이전트를 포함한다.
실시예의 에이전트는 태스크를 완성하기에 필요하고, 원격 장치에 위치된 태스크 정보를 찾기 위한 계층을 포함한다.
실시예의 계층은 에이전트를 호스팅하는 클라이언트 장치의 로컬 데이터베이스를 검색하는 에이전트를 포함한다.
실시예의 계층은 태스크 정보를 찾기 위해, 복수의 에이전트의 적어도 하나의 피어 에이전트와 통신하는 에이전트를 포함한다.
실시예의 에이전트는 태스크 정보를 소유하는 피어 에이전트의 신원을 포함한다.
실시예의 계층은 원격 저장 장치로부터 태스크 정보를 복구하는 에이전트를 포함한다.
본 방법은 순서화된 리스트 내의 피어 에이전트의 신원을 플랫폼으로부터 수신하고, 순서화된 리스트에 따라 태스크 정보를 검색하는 에이전트를 포함한다.
실시예의 각 에이전트는 병렬로 실행되는 복수의 구성을 포함한다.
실시예의 복수의 구성은, 에이전트를 위해 지정된 태스크를 플랫폼으로부터 복구하고, 테스크 데이터베이스 내의 불러와진 태스크를, 에이전트를 호스팅하는 클라이언트 장치로 저장하는 제공자 구성을 포함한다.
실시예의 복수의 구성은 태스크 실행 구성을 포함한다.
실시예의 복수의 구성은 태스크 데이터베이스를 모니터하고, 각 태스크를 태스크 데이터베이스로부터 복구하며, 불러와진 태스크를 태스크 실행 구성으로 제공하고, 불러와진 태스크를 계류 상태를 갖도록 지정하는 러너 구성을 포함한다.
본 방법은 태스크를 실행하고, 태스크 실행의 상태를 러너 구성에 보고하는 태스크 실행 굿어을 포함한다.
본 방법은 상태를 테스크 데이터베이스에 보고하는 러너 구성을 포함한다.
실시예의 복수의 구성은, 태스크가 완료 상태를 가지는지 태스크 데이터베이스를 모니터하고, 완성된 태스크의 상태 정보를 플랫폼에 보고하는 업데이트 구성을 포함한다.
본 방법은 상태 정보에 응답하여 복수의 데이터베이스를 업데이트하는 플랫폼을 포함한다.
본 방법은 메타데이터를 생성하는 복수의 에이전트를 포함하고, 에이전트에 의해 생성된 메타데이터는 에이전트가 액세스한 콘텐츠에 대응한다.
본 방법은 에이전트가 액세스한 각 파일의 스캐닝 콘텐츠에 의해 메타데이터를 생성하는 에이전트를 포함한다.
본 방법은 파일의 콘텐츠를 복수의 단편으로 분할함에 의해 메타데이터를 생성하는 에이전트를 포함하고, 각 단편은 파일의 가변 크기 구성을 포함한다.
실시예의 가변 크기의 단편은 사전-특정된 최소 길이와 최대 길이 사이에 있다.
본 방법은 복수의 단편을 나타내는 복수의 블로브를 생성함에 의해 메타데이터를 생성하는 에이전트를 포함하고, 각 블로브는 단편을 나타낸다.
본 방법은 블로브 해시를 사용하여 복수의 블로브를 생성하는 에이전트를 포함하고, 블로브 해시는, 콘텐츠내의 각 바이트에 대해, 콘텐츠의 구성에 걸쳐 해시 알고리즘을 실행하고, 해시 알고리즘은 데이터의 특정된 패턴을 식별하도록 설정된다.
실시예의 블로브를 생성하는 것은, 블로브에 의해 표현된 단편이 파일의 나머지 부분으로부터 분리되었던 포인트에서 해시의 값을 포함하는 블로브의 설명을 생성하는 것을 포함한다.
실시예의 블로브를 생성하는 것은 블로브에 의해 나타난 단편의 브레이크 포인트에 기초하여 오프셋 값을 생성하는 것을 포함한다.
실시예의 블로브를 생성하는 것은 블로브의 완료 콘텐츠의 해시를 생성하는 것을 포함하고, 블로브의 완료 콘텐츠의 해시는 블로브를 위한 식별자이다.
실시예의 블로브를 생성하는 것은 파일의 콘텐츠를 나타내는 블로브의 리스트를 생성하는 것을 포함한다.
실시예의 블로브를 생성하는 것은 파일의 콘텐츠를 나타내는 블로브의 리스트의 해시를 포함하는 콘텐츠 해시를 생성하는 것을 포함하되, 콘텐츠 해시는 파일을 위한 식별자이다.
실시예의 블로브를 생성하는 것은 파일에 대응하는 파일 이름의 해시를 포함하는 이름 해시를 생성하는 것을 포함한다.
실시예의 블로브를 생성하는 것은 콘텐츠 해시와 이름 해시의 조합의 해시를 포함하는 파일 해시를 생성하는 것을 포함한다.
실시예의 블로브를 생성하는 것은 파일 이름의 해시와 파일의 콘텐츠에 대응하는 파일 경로를 포함하는 경로 해시를 생성하는 것을 포함한다.
실시예의 블로브를 생성하는 것은 파일의 파일 메타데이터의 해시를 포함하는 메타데이터 해시를 생성하는 것을 포함한다.
본 방법은 파일에 대힌 기록을 생성하는 플랫폼을 포함하고, 기록은 파일의 블로브 해시, 콘텐츠 해시, 파일 해시, 경로 해시 및 메타데이터 해시를 포함한다.
실시예의 복수의 데이터베이스는 라이브러리 데이터베이스를 포함하되, 라이브러리 데이터베이스는 기록을 포함한다.
실시예의 블로브를 생성하는 것은 블로브의 크기를 생성하는 것을 포함한다.
실시예의 파일은 파일을 포함하는 블로브의 리스트대로 설명된다.
본 방법은 에이전트를 호스팅하는 클라이언트 장치에 로컬하게 블로브를 저장하고, 이전에 보고되지 않은 블로브를 플랫폼의 중앙 저장소에 전송하는 각 에이전트를 포함한다.
플랫폼은 정책 데이터베이스와 규칙 엔진을 포함한다.
본 방법은 콘텐츠의 각 파일을 분석하는 것을 포함한다.
본 방법은 콘텐츠의 각 파일을 사업 콘텐츠과 개인 콘텐츠 중 적어도 하나로 구분하는 것을 포함한다.
본 방법은 사업 콘텐츠에 대해 콘텐츠의 각 파일의 기밀 레벨를 결정하는 것을 포함한다.
본 방법은 콘텐츠의 각 파일로부터 핵심어를 스캐닝하고 추출하는 것을 포함한다.
본 발명은 핵심어를 기업에 걸쳐 비교하고, 기업-특정된 핵심어의 리스트를 생성하는 것을 포함한다.
기밀 레벨을 결정하는 것은 핵심어들 중 특정 핵심어를 식별하는 것을 포함한다.
메타데이터를 생성하는 것은 대응하는 콘텐츠의 기밀 레벨을 포함하기 위한 메타데이터를 생성하는 것을 포함한다.
본 방법은 기밀 레벨에 기초하여 콘텐츠의 각 파일로의 액세스를 제어하는 것을 포함한다.
액세스를 제어하는 것은 콘텐츠의 각 파일을 보는 것을 제어하는 것을 포함한다.
액세스를 제어하는 것은 콘텐츠의 각 파일의 다운로딩을 제어하는 것을 포함한다.
액세스를 제어하는 것은 콘텐츠의 각 파일의 엑세스를 제어하는 것을 포함한다.
액세스를 제어하는 것은 콘텐츠의 각 파일의 복사하는 것을 제어하는 것을 포함한다.
액세스를 제어하는 것은 콘텐츠의 각 파일의 분산하는 것을 제어하는 것을 포함한다.
본 방법은 콘텐츠로부터 만들어진 추론에 기초하여, 콘텐츠의 각 파일을 구분하는 것을 포함한다.
본 방법은 콘텐츠의 문법에 기초하여, 콘텐츠의 각 파일을 구분하는 것을 포함한다.
본 방법은 위치와 복수의 에이전트 중 적어도 하나에 걸친 콘텐츠의 사업 콘텐츠를 식별하는 것을 포함하되, 사업 콘텐츠를 식별하는 것은 문서 이름, 문서 크기, 근접성, 키 워드 비교 및 해시 비교 중 적어도 하나를 사용하는 것을 포함한다.
본 방법은 콘텐츠의 파일을 액세스하는 복수의 장치들에서의 공동작업을 제어하는 것을 포함한다.
본 방법은 콘텐츠의 파일을 동시에 편집하는 복수의 장치들에서의 콘텐츠의 편집을 제어하는 것을 포함한다.
본 방법은 콘텐츠의 파일과 관련 있는 활동을 추적하는 것을 포함한다.
본 방법은 콘텐츠의 파일의 수정 히스토리를 추적하는 것을 포함한다.
본 방법은 모바일 장치를 통해 콘텐츠에 접근하고 모니터링하는 것을 포함하는 모바일 장치 관리를 포함한다.
모바일 장치 관리는 모바일 장치의 위치를 추적하는 것을 포함한다.
모바일 장치 관리는 위치에 기초하여 콘텐츠로의 액세스를 제어하는 것을 포함한다.
모바일 장치 관리는 모바일 자치의 추적 데이터를 포함하는 것을 포함한다.
본 방법은 콘솔을 플랫폼에 연결하는 것을 포함하고, 콘솔은 자동화된 활동 모니터링, 감사 및 콘텐츠과 관련된 보고하는 것을 포함한다.
본 방법은 콘텐츠과 관련된 콘솔 활동을 통해 제어하는 것을 포함한다.
본 방법은 콘솔을 통해 위치를 제어하는 것을 포함
활동을 제어하는 것은 콘텐츠의 각 파일을 보는 것을 제어하는 것, 콘텐츠의 각 파일의 다운로딩을 제어하는 것, 콘텐츠의 각 파일의 액세스를 제어하는 것, 콘텐츠의 각 파일을 복사하는 것을 제어하는 것, 및 콘텐츠의 각 파일을 분산시키는 것을 제어하는 것 중 적어도 하나를 포함한다.
본 명세서에 기술된 실시예는 프로세서를 포함하는 플랫폼을 복수의 데이터베이스에 연결하는 단계를 포함한다. 본 방법은 플랫폼에 연결된 복수의 에이전트를 포함하는 그리드를 형성하는 단계를 포함한다. 각 에이전트는 클라이언트 장치상에서 실행되는 플랫폼의 에이전트이다. 본 방법은 각 에이전트에서, 에이전트에 의해 액세스 가능한 콘텐츠의 복수의 단편을 해싱함에 의해 메타데이터를 생성하는 단계를 포함한다.메타데이터는 복수의 에이전트에 대응하는 복수의 클라이언트 장치에 의해 액세스 가능한 메모리의 콘텐츠에 대응한다. 본 발명은 콘텐츠 대신에 메타데이터를 플랫폼에 제공하는 단계를 포함한다. 본 발명은 메타데이터로, 콘텐츠의 저장, 전송 및 프로세싱 중 적어도 하나를 제어하는 태스크를 포함하는 복수의 태스크를 생성하는 단계를 포함한다. 태스크는 스크를 담당하는 에이전트에 의해 액세스 가능한 콘텐츠에 수행된 프로세싱 작업이다. 본 발명은 복수의 태스크를 복수의 에이전트에 할당하는 단계를 포함한다.
본 명세서에 기술된 실시예는 프로세서를 포함하는 플랫폼을 복수의 데이터베이스에 연결하는 단계와, 플랫폼에 연결된 복수의 에이전트를 포함하는 그리드를 형성하는 단계 - 각 에이전트는 클라이언트 장치상에서 실행되는 플랫폼의 에이전트 임 - 와, 각 에이전트에서, 에이전트에 의해 액세스 가능한 콘텐츠의 복수의 단편을 해싱함에 의해 메타데이터를 생성하는 단계 - 메타데이터는 복수의 에이전트에 대응하는 복수의 클라이언트 장치에 의해 액세스 가능한 메모리의 콘텐츠에 대응함 - 와, 콘텐츠 대신에 메타데이터를 플랫폼에 제공하는 단계와, 메타데이터로, 콘텐츠의 저장, 전송 및 프로세싱 중 적어도 하나를 제어하는 태스크를 포함하는 복수의 태스크를 생성하는 단계 - 태스크는 스크를 담당하는 에이전트에 의해 액세스 가능한 콘텐츠에 수행된 프로세싱 작업임 - 와, 및 복수의 태스크를 복수의 에이전트에 할당하는 단계를 포함한다.
본 명세서에 기술된 실시예는 프로세서를 포함하는 플랫폼을 복수의 데이터베이스에 연결하는 단계를 포함한다. 본 방법은 플랫폼에 연결된 복수의 에이전트를 포함하는 그리드를 형성하는 단계를 포함한다. 각 에이전트는 클라이언트 장치상에서 실행되는 플랫폼의 에이전트이다. 본 방법은 각 클라이언트 장치의 각 에이전트에 의해, 클라이언트 장치에 의해 액세스 가능한 메모리의 콘텐츠의 메타데이터를 플랫폼에 제공하는 단계를 포함한다. 본 방법은 메타데이터로 콘텐츠의 위치를 결정하는 단계를 포함한다. 본 방법은 메타데이터로 콘텐츠의 상태를 유지하기 위한 작업을 나타내는 목표를 생성하는 단계를 포함한다. 본 방법은 메타데이터로 목표에 대응하는 복수의 태스크를 생성하는 단계를 포함한다. 본 방법은 각 태스크를 태스크에 대응하는 콘텐츠에 액세스하는 에이전트에 할당하는 단계를 포함한다. 태스크는, 에이전트에 의해 액세스 가능한 콘텐츠에 대해 플랫폼에 의해 지시되고 에이전트에 의해 수행된 프로세싱 작업이다. 복수의 에이전트에의해 제공된 메타데이터는 복수의 에이전트에 의해 수행된 복수의 태스크의 정보를 포함한다.
본 명세서에 기술된 실시예는 프로세서를 포함하는 플랫폼을 복수의 데이터베이스에 연결하는 단계와, 플랫폼에 연결된 복수의 에이전트를 포함하는 그리드를 형성하는 단계 - 각 에이전트는 클라이언트 장치상에서 실행되는 플랫폼의 에이전트 임 - 와, 각 클라이언트 장치의 각 에이전트에 의해, 클라이언트 장치에 의해 액세스 가능한 메모리의 콘텐츠의 메타데이터를 플랫폼에 제공하는 단계와, 메타데이터로 콘텐츠의 위치를 결정하는 단계와, 메타데이터로 콘텐츠의 상태를 유지하기 위한 작업을 나타내는 목표를 생성하는 단계와, 메타데이터로 목표에 대응하는 복수의 태스크를 생성하는 단계와, 및 각 태스크를 태스크에 대응하는 콘텐츠에 액세스하는 에이전트에 할당하는 단계 - 태스크는, 에이전트에 의해 액세스 가능한 콘텐츠에 대해 플랫폼에 의해 지시되고 에이전트에 의해 수행된 프로세싱 작업이고, 복수의 에이전트에의해 제공된 메타데이터는 복수의 에이전트에 의해 수행된 복수의 태스크의 정보를 포함함 - 를 포함한다.
본 명세서에 기술된 실시예는 프로세서를 포함하는 플랫폼과 복수의 데이터베이스 사이에 연결을 구축하는 단계를 포함한다. 본 방법은 복수의 에이전트를 플랫폼에 연결함에 의해 그리드를 형성하는 단계를 포함한다. 복수의 에이전트의 각 에이전트는 클라이언트 장치상에서 실행되는 플랫폼의 에이전트이다. 본 방법은 복수의 에이전트에 대응하는 복수의 클라이언트 장치에 의해 액세스 가능한 메모리의 콘텐츠를 나타내는 각 에이전트에서 메타데이터를 생성하는 단계를 포함한다. 상기 생성하는 단계는 콘텐츠의 복수의 단편을 해싱하여, 복수의 단편을 나타내는 복수의 블로브를 생성하는 단계를 포함한다. 본 방법은 콘텐츠 대신에 메타데이터를 플랫폼에 제공하는 단계를 포함한다. 본 방법은 메타데이터로 복수의 태스크를 생성하는 단계를 포함한다. 태스크는 태스크를 담당하는 에이전트에 의해 액세스 가능한 콘텐츠에 수행된 프로세싱 작업이다. 복수의 태스크는 콘텐츠를 모니터, 저장, 전송 및 프로세싱 중 적어도 하나의 태스크를 포함한다. 복수의 태스크를 복수의 에이전트에 할당하는 단계를 포함한다.
프로세서를 포함하는 플랫폼과 복수의 데이터베이스 사이에 연결을 구축하는 단계와, 복수의 에이전트를 플랫폼에 연결함에 의해 그리드를 형성하는 단계 - 복수의 에이전트의 각 에이전트는 클라이언트 장치상에서 실행되는 플랫폼의 에이전트임 - 와, 복수의 에이전트에 대응하는 복수의 클라이언트 장치에 의해 액세스 가능한 메모리의 콘텐츠를 나타내는 각 에이전트에서 메타데이터를 생성하는 단계 - 상기 생성하는 단계는 콘텐츠의 복수의 단편을 해싱하여, 복수의 단편을 나타내는 복수의 블로브를 생성하는 단계를 포함함 - 와, 콘텐츠 대신에 메타데이터를 플랫폼에 제공하는 단계와, 메타데이터로 복수의 태스크를 생성하는 단계 - 태스크는 태스크를 담당하는 에이전트에 의해 액세스 가능한 콘텐츠에 수행된 프로세싱 작업이고, 복수의 태스크는 콘텐츠를 모니터, 저장, 전송 및 프로세싱 중 적어도 하나의 태스크를 포함함 - 와, 및 복수의 태스크를 복수의 에이전트에 할당하는 단계를 포함한다.
상기 기술된 바와 같이, 본원 명세서에서 기술된 실시예와 함께 사용하기 위해 적합한 컴퓨터 네트워크는 로컬 네트워크(LAN), 광역 네트워크(WAN), 인터넷, 또는 월드 와이드 웹, 공중 인터넷, 사설 인터넷, 사설 컴퓨터 네트워크, 공중 네트워크, 모바일 네트워크, 셀룰러 네트워크, 부가 가치 통신망(VAD) 등과 같은 다른 연결 서비스 및 네트워크 변경을 포함한다. 상기 네트워크에 연결되거나 결합된 컴퓨팅 장치는 개인 컴퓨터, 워크스테이션 서버, 미니 컴퓨터, 메인-프레임 컴퓨터, 랩톱 컴퓨터, 모바일 컴퓨터, 팜 톱 컴퓨터, 휴대용 컴퓨터, 모바일 폰, TV 셋-톱 박스, 또는 이들의 조합과 같은 단말 장치를 포함하여, 네트워크로의 접근을 허용하는 모든 마이크로프로세서 제어 장치일 수 있다. 컴퓨터 네트워크는 하나 또는 둘 이상의 LAN, WAN, 인터넷, 그리고 컴퓨터를 포함할 수 있다. 상기 컴퓨터는 서버, 클라이언트 또는 이들의 조합으로 사용될 수 있다.
상기 기술된 구성은 싱글 시스템, 멀티플 시스템, 및/또는 지리적으로 분리된 시스템의 구성 일 수 있다. 상기 설명된 구성은 또한 싱글 시스템, 멀티플 시스템, 및/또는 지리적으로 분리된 시스템의 서브 구성 또는 서브 시스템일 수 있다. 상기 기술된 구성은 호스트 시스템 또는 호스트 시스템에 결합된 시스템의 하나 또는 둘 이상의 구성(도시되지 않음)에 연결될 수 있다.
본원 명세서에서 기술된 구성은 프로세싱 시스템을 포함하거나, 이와 연합하여 실행한다. 상기 프로세싱 시스템은 당업자에게 알려진 바와 같이, 프로세서-기반의 장치 또는 함께 동작하는 컴퓨팅 장치, 또는 프로세싱 시스템 또는 장치의 구성의 집합체를 포함할 수 있다. 예를 들면, 상기 프로세싱 시스템은 하나 이상의 휴대용 컴퓨터, 통신 네트워크에서 동작하는 휴대용 통신 장치, 및/또는 네트워크 서버 중 하나 이상을 포함할 수 있다. 상기 휴대용 컴퓨터는 개인 컴퓨터, 개인용 디지털 어시스턴스, 휴대용 컴퓨팅 장치 그리고 휴대용 통신 장치에서 선택된 다수의 또는 조합의 어느 것일 수 있으나 이에 제한되지 않는다. 상기 프로세싱 시스템은 대용량 컴퓨터 시스템 내의 구성을 포함할 수 있다.
일 실시예의 프로세싱 시스템은 적어도 하나의 프로세서 그리고 적어도 하나의 메모리 장치 또는 시스템을 포함한다. 또한, 상기 프로세싱 시스템은 하나 이상의 데이터베이스를 포함하거나 이에 연결된다. 여기서, 용어 "프로세서"는 일반적으로 하나 또는 둘 이상의 중앙 프로세싱 유닛(CPU), 디지털 신호 프로세서(DSP), 주문형 반도체(ASIC) 등등과 같은 논리 프로세싱 유닛을 의미하는 것이다.
상세한 설명 및 청구범위의 전후 문맥이 명확하지 않은 경우에는, "포함한다", "포함하는" 등은 배타적인 의미를 갖는 것이 아니며, 포괄하는 의미를 갖는 것으로 이해되어야 한다. 즉 "포함하는, 그러나 제한하지 않는"으로 이해되어야 한다. 단일의 또는 복수의 의미를 사용하는 단어 또한 복수의 또는 단일의 의미를 각각 포함한다. 또한, 단어 "본원 명세서에서", "하기에서", "상기에서", "아래에서", 그리고 유사한 개념으로 사용되는 단어는 본원 명세서 전체를 의미하는 것이며 본원 명세서의 특정 부분을 의미하는 것이 아니다. 단어 "또는"이 둘 또는 그 이상의 아이템과 관련하여 사용되는 때, 이 같은 단어는 단어의 다음 해석 모두를 포함한다. 리스트 내 어떠한 아이템, 리스트 내 모든 아이템, 그리고 리스트 내 아이템의 어떠한 조합. 실시 예 그리고 상응하는 시스템 그리고 방법에 대한 상기 설명은 모두 포함하는 것으로 해석되지 않으며, 본 발명의 시스템과 방법을 설명된 정확한 형태로 제한하는 것이 아니다.
본원 명세서에서는 시스템 및 방법에 대한 특정 실시 예가 설명의 목적으로 설명되었으며, 다양한 수정이 당업자가 이해할 수 있는 바와 같이, 본 발명의 시스템 및 방법의 범위 내에서 가능하다. 시스템과 벙법의 특정 실시예와 예시는 설명적인 목적으로 기술되는 반면, 기술 분야에서의 당업자가 인식할 수 있는 바와 같이, 본 시스템과 방법의 범위 내에서 다양한 등가적인 수정예가 가능하다.본원 명세서에 제공된 시스템과 방법은 상기 기술된 시스템과 방법뿐만아니라 다른 시스템 및 방법으로 적용될 수 있기도 하다.
본원 명세서 기술된 다양한 실시예의 요소 및 동작은 또 다른 실시 예를 제공하도록 결합 될 수 있다. 이들 및 다른 변경은 상기 상세한 설명 비추어 상기 시스템 및 방법에 가해 질 수 있다.

Claims (125)

  1. 프로세서를 포함하는 플랫폼을 복수의 데이터베이스에 연결하는 단계와,
    복수의 에이전트를 플랫폼에 연결함에 의해 그리드를 형성하는 단계 - 복수의 에이전트의 각 에이전트는 클라이언트 장치상에서 실행되는 플랫폼의 에이전트 임 - 와,
    각 에이전트에서 메타데이터를 생성하고, 콘텐츠 대신에 메타데이터를 플랫폼에 제공하는 단계 - 메타데이터는 복수의 에이전트에 대응하는 복수의 클라이언트 장치에 의해 액세스 가능한 메모리의 콘텐츠에 대응함 - 와,
    플랫폼에서 메타데이터를 이용해 콘텐츠의 위치를 추적하고 복수의 에이전트 간 콘텐츠의 분산 저장, 이동 및 프로세싱을 관리하는 단계와,
    콘텐츠의 상태를 유지하기 위한 작업을 나타내는 목표를 생성하는 단계 - 상기 목표는 메타데이터의 정보를 이용해 플랫폼에 의해 생성됨 - 와,
    목표에 대응하는 복수의 태스크를 생성하는 단계 - 복수의 태스크는 메타데이터의 정보를 이용해 플랫폼에 의해 생성됨 - 와,
    콘텐츠의 각각의 파일로부터 핵심어(key term)를 추출하고, 콘텐츠에 걸쳐 추출된 핵심어를 비교하여 사업 콘텐츠를 식별하는 사업 용어의 리스트를 생성함으로써 사업 콘텐츠(business content)를 식별하고, 핵심 사업 용어를 식별하고 핵심 사업 용어의 문법(syntax)을 분석함으로써 사업 콘텐츠의 기밀 레벨(confidentiality level)을 결정하는 단계와,
    기밀 레벨에 따라, 태스크에 대응하는 콘텐츠에 액세스하는 에이전트에 각 태스크를 할당하는 단계 - 각각의 태스크는 에이전트에 의해 액세스 가능한 콘텐츠에 대한, 에이전트에 의해 수행되도록 플랫폼에 의해 지시된 프로세싱 작업임 - 와,
    태스크에 대응하는 콘텐츠를 태스크에 할당된 에이전트로 전송하는 단계 - 전송하는 단계는 콘텐츠의 각각의 데이터 블록을, 데이터 블록을 포함하는 할당된 에이전트와 가장 가까운 위치에서 상기 태스크에 할당된 에이전트로 전송하는 단계를 포함함 -
    를 포함하는 방법.
  2. 제 1 항에 있어서, 플랫폼이 복수의 에이전트에 대한 마스터 제어기로서 동작하되, 상기 복수의 에이전트는 복수의 태스크(task)에 의해 제어될 때 플랫폼과 협력하고,
    상기 복수의 에이전트의 각각의 에이전트가 플랫폼 및 상기 복수의 에이전트의 타 에이전트들과 독립적으로 동작하는, 방법.
  3. 제 1 항에 있어서, 플랫폼이 콘텐츠를 수신하는 대신 콘텐츠의 메타데이터를 수신하되, 복수의 에이전트를 호스팅하는 복수의 클라이언트 장치가 상기 콘텐츠를 포함하는 분산형 저장 장치를 포함하며,
    플랫폼이 메타데이터를 이용해 복수의 데이터베이스에서 복수의 에이전트의 콘텐츠의 마스터 인덱스를 유지하는, 방법.
  4. 제 1 항에 있어서, 메타데이터는 콘텐츠의 위치에 대한 데이터, 콘텐츠의 상태에 대한 데이터, 복수의 에이전트의 신원에 대한 데이터, 각 에이전트가 액세스할 수 있는 콘텐츠에 대한 데이터, 및 복수의 에이전트에 의해 수행된 복수의 태스크의 정보 중 적어도 하나를 포함하는 방법.
  5. 제 1 항에 있어서, 태스크는 그리드에 걸쳐 콘텐츠의 위치를 추적하는 것, 그리드에 걸쳐 콘텐츠의 저장을 관리하는 것, 그리드에 걸쳐 콘텐츠의 이동을 관리하는 것, 및 그리드에 걸쳐 콘텐츠의 프로세싱을 관리하는 것 중 적어도 하나와 관련되는 방법.
  6. 제 1 항에 있어서, 복수의 에이전트는, 플랫폼에 의해 지시된 대로, 콘텐츠를 집합적으로 모니터링하는 것, 콘텐츠를 집합적으로 저장하는 것, 콘텐츠를 집합적으로 전송하는 것, 및 콘텐츠에 대해 프로세싱 작업을 집합적으로 수행하는 것 중 적어도 하나를 수행하는 방법.
  7. 제 1 항에 있어서, 각각의 클라이언트 장치의 각각의 에이전트가 클라이언트 장치에 의해 액세스 가능한 메모리의 콘텐츠를 인덱싱하는, 방법.
  8. 제 1 항에 있어서, 복수의 데이터베이스는, 플랫폼에 의해 사용가능한 에이전트와 각 에이전트의 정보를 포함하는 에이전트 데이터베이스를 포함하는, 방법.
  9. 제 1 항에 있어서, 각각의 에이전트는 적어도 하나의 라이브러리를 포함하되, 라이브러리는 에이전트가 판독 액세스와 기재 액세스 중 적어도 하나를 포함하는 액세스하는 장치를 나타내는, 방법.
  10. 제 9 항에 있어서, 복수의 데이터베이스는 복수의 에이전트에 대응하는 라이브러리의 리스트를 포함하는 라이브러리 데이터베이스를 포함하되, 그리드의 각 라이브러리는 라이브러리 데이터베이스에서 개별적으로로 나타나며,
    각각의 에이전트가 에이전트에 대응하는 각각의 라이브러리를 액세스하는, 방법.
  11. 제 9 항에 있어서, 복수의 데이터베이스는 목표의 리스트를 포함하는 목표 데이터베이스를 포함하되, 목표의 리스트의 각 목표는 플랫폼에 의해 생성되고, 적어도 하나의 라이브러리에 대응하며, 목표는 대응하는 라이브러리 콘텐츠에 대해 작업을 실행하는데 사용되는 것을 특징으로 하는 방법.
  12. 제 11 항에 있어서, 태스크가 수행되는 라이브러리의 집합체를 포함하기 위해 목표의 리스트를 생성하되,
    각 목표는 적어도 하나의 라이브러리에 대응하고, 에이전트에 의해 사용되어서, 대응하는 라이브러리의 콘텐츠에 대해 적어도 하나의 태스크를 실행시키는 것을 특징으로 하는 방법.
  13. 제 11 항에 있어서, 플랫폼이 목표를 사용하여, 복수의 에이전트의 복수의 라이브러리를 판독하는 것, 복수의 에이전트에 의해 액세스 가능한 콘텐츠에서의 불일치와 차이 중 적어도 하나를 식별하는 것, 및 콘텐츠에서 식별된 불일치와 차이 중 적어도 하나를 제거하기 위한 적어도 하나의 태스크를 생성하는 것 중 적어도 하나를 수행하는, 방법.
  14. 제 1 항에 있어서, 복수의 데이터베이스는 작업 데이터베이스를 포함하며, 플랫폼은 각 에이전트에 대응하는 작업 데이터베이스를 생성하되, 작업 데이터베이스는 대응하는 에이전트에 의해 수행될 태스크를 포함하며, 작업 데이터베이스는 대응하는 에이전트에 의해 수행될 각 태스크의 설명 및 에이전트가 태스크를 수행하기 위해 필요한 정보를 포함하는, 방법.
  15. 제 1 항에 있어서, 복수의 데이터베이스는 복수의 에이전트의 능력의 정보를 포함하는 능력 데이터베이스를 포함하는 것을 특징으로 하는 방법.
  16. 제 1 항에 있어서, 복수의 데이터베이스는 복수의 에이전트의 기록를 포함하고 유지하는 동기화 데이터베이스를 포함하며, 동기화 데이터베이스는 복수의 에이전트의 콘텐츠의 파일 상태의 기록을 포함하는, 방법.
  17. 제 16 항에 있어서, 동기화 데이터베이스는 각 파일에 대한 엔트리를 포함하는데, 엔트리는 파일에 대응하는 콘텐츠 해시를 포함하고, 콘텐츠 해시는 파일의 콘텐츠를 나타내는 블로브의 리스트의 해시를 포함하며, 블로브의 리스트의 각 블로브는 콘텐츠 내의 파일의 단편의 해시를 포함하며, 단편은 파일의 구성인 것을 특징으로 하는 방법.
  18. 제 16 항에 있어서, 동기화 데이터베이스는 각 에이전트에 대한 엔트리를 포함하고, 엔트리는 에이전트의 파일에 대응하는 콘텐츠 해시를 포함하며, 콘텐츠 해시는 파일의 콘텐츠를 나타내는 블로브의 리스트의 해시를 포함하고, 블로브의 리스트의 각 블로브는 콘텐츠 내의 파일의 단편의 해시를 포함하고, 단편은 파일의 구성인 것을 특징으로 하는 방법.
  19. 제 1 항에 있어서, 플랫폼이 복수의 에이전트를 사용하여 클라이언트 장치들 간 콘텐츠의 전송을 제어하고, 복수의 에이전트를 사용하여 클라이언트 장치들 간 콘텐츠의 동기화를 제어하되, 콘텐츠의 동기화는 콘텐츠의 변경에 응답하여 콘텐츠를 동기화하는 것을 포함하며, 콘텐츠의 전송은 블록-레벨, 콘텐츠의 비-순차적 전송을 포함하는 것을 특징으로 하는 방법.
  20. 제 1 항에 있어서, 복수의 태스크는 스캔 태스크(scan task)를 포함하고, 스캔 태스크는 에이전트가 자신에 대응하는 라이브러리를 재귀적으로 모니터링하고 라이브러리의 변경을 플랫폼에 보고하는 것을 포함하며, 보고하는 것은 변경을 포함하는 라이브러리의 파일을 에이전트를 호스팅하는 클라이언트 장치의 로컬 데이터베이스에 위치시키고, 로컬 데이터베이스의 메타데이터를 플랫폼으로 제공하는 것을 포함하는, 방법.
  21. 제 1 항에 있어서, 복수의 태스크는 기재 태스크(write task)를 포함하고, 기재 태스크는 에이전트가 파일의 적어도 하나의 블로브를 제1 위치에서 제2 위치로 복사하는 것을 포함하는데, 제1 위치와 제2 위치 각각은 그리드와 연결된 클라이언트 장치에 대응하며, 적어도 하나의 블로브는 콘텐츠 내의 파일의 단편의 해시를 포함하되, 단편은 파일의 구성이고, 기재 태스크는 완성의 조건을 포함하며, 완성의 조건은 기재 태스크에 대응하는 블로브를 수신하는 것 및 정확한 파일에 대응하는 기재 태스크 동안에 중복 기재될 블로브를 식별하는 것 중 적어도 하나를 포함하는 것을 특징으로 하는 방법.
  22. 제 1 항에 있어서, 복수의 태스크는 콘텐츠의 파일을 에이전트에 의해 액세스 가능한 장치에서 원격 저장 장치로 복사하는 것을 포함하는 업로드 태스크를 포함하고, 에이전트가 에이전트에 의해 액세스 가능한 콘텐츠로의 파일의 추가를 플랫폼에 보고하고, 이에 응답하여, 플랫폼이 파일을 업로드하기 위한 태스크를 에이전트에 할당하고, 태스크에 응답하여 에이전트가 파일이 원격 저장 장치에 존재하는지 여부를 결정하며, 파일이 없다고 결정되면 원격 저장 장치로 파일을 업로드하고, 업로드 태스크는, 에이전트가 파일의 적어도 하나의 블로브를 에이전트에 의해 액세스 가능한 장치로부터 원격 저장 장치로 복사하는 것을 포함하며, 적어도 하나의 블로브는 파일의 단편의 해시를 포함하고, 상기 단편은 파일의 구성요소인, 방법.
  23. 제 1 항에 있어서, 각 에이전트가 에이전트에 할당된 태스크를 클라이언트 장치에서 로컬하게 유지하고 에이전트가 할당된 태스크를 식별하도록 플랫폼에 주기적으로 폴링(polling)하는, 방법.
  24. 제 1 항에 있어서, 에이전트는 태스크 정보를 갖는 피어 에이전트(peer agent)의 신원을 포함하며, 상기 에이전트는 태스크를 완성하기 위해 필요하고 원격 장치에 위치된 태스크 정보를 찾기 위한 계층(hierarchy)을 포함하고, 계층은 에이전트가 자신을 호스팅하는 클라이언트 장치의 로컬 데이터베이스를 검색하는 것을 포함하며, 상기 계층은 에이전트가 태스크 정보를 찾기 위해 복수의 에이전트 중 적어도 하나의 피어 에이전트와 통신하는 것을 포함하는, 방법.
  25. 제 24 항에 있어서, 계층은 에이전트가 원격 저장 장치로부터 태스크 정보를 불러오는 것을 포함하며, 에이전트가 플랫폼으로부터 피어 에이전트의 신원을 순서화된 리스트(ordered list)로 수신하고 순서화된 리스트에 따라 태스크 정보를 검색하는, 방법.
  26. 제 1 항에 있어서, 각 에이전트는 병렬 실행되는 복수의 구성요소를 포함하며, 복수의 구성요소는, 에이전트에 대해 지정된 태스크를 플랫폼으로부터 불러오고, 불러와진 태스크를 에이전트를 호스팅하는 클라이언트 장치에 로컬인 태스크 데이터베이스에 저장하는 제공자 구성요소를 포함하고, 복수의 구성요소는 태스크 실행 구성요소를 포함하는 방법.
  27. 제 26 항에 있어서, 복수의 구성요소는 태스크 데이터베이스를 모니터하고, 각 태스크를 태스크 데이터베이스로부터 불러오며, 불러와진 태스크를 태스크 실행 구성요소로 제공하고, 불러와진 태스크를 계류 상태를 갖도록 지정하는 러너 구성요소(runner component)를 포함하고, 태스크 실행 구성요소가 태스크를 실행하고 태스크 실행의 상태를 러너 구성요소를 보고하며, 러너 구성요소가 상태를 태스크 데이터베이스로 보고하는, 방법.
  28. 제 27 항에 있어서, 복수의 구성요소는, 태스크 데이터베이스에서 완료 상태를 갖는 작업을 모니터링하고 완료 상태의 상태 정보를 플랫폼으로 보고하는 업데이트 구성요소를 포함하고, 플랫폼은 상태 정보에 응답하여 복수의 데이터베이스를 업데이트하며 플랫폼은 상태 정보에 응답하여 복수의 데이터베이스를 업데이트하는 방법.
  29. 제 1 항에 있어서, 복수의 에이전트가 메타데이터를 생성하되, 에이전트에 의해 생성된 메타데이터는 에이전트가 액세스할 수 있는 콘텐츠에 대응하고, 에이전트가 에이전트가 액세스할 수 있는 각각의 파일의 콘텐츠를 스캐닝함으로써 메타데이터를 생성하는, 방법.
  30. 제 29 항에 있어서, 에이전트가 파일의 콘텐츠를 복수의 단편으로 분할함으로써 메타데이터를 생성하되, 각각의 단편은 파일의 가변 크기 구성요소를 포함하며, 가변 크기 단편은 지정 최소 길이와 최대 길이 사이에 있고, 에이전트가 복수의 단편을 나타내는 복수의 블로브를 생성함으로써 메타데이터를 생성하되, 각각의 블로브는 단편을 나타내는, 방법.
  31. 제 30 항에 있어서, 에이전트는 블로브 해시(blob hash)를 이용해 복수의 블로브를 생성하되, 상기 블로브 해시는, 콘텐츠의 각각의 바이트에 대해, 콘텐츠의 구성요소에 대해 해시 알고리즘을 실행시키는 것을 포함하고, 상기 해시 알고리즘은 데이터의 특정된 패턴을 식별하도록 설정되며, 블로브를 생성하는 것은 블로브에 의해 나타나는 단면이 파일의 나머지 부분과 분리되는 포인트에서의 해시의 값을 포함하는 블로브의 설명(description)을 생성하는 것 및 블로브에 의해 나타나는 단편의 브레이크 포인트를 기초로 오프셋 값을 생성하는 것을 포함하는, 방법.
  32. 제 31 항에 있어서, 블로브를 생성하는 것은 블로브의 완료 콘텐츠의 해시를 생성하는 것을 포함하며, 블로브의 완료 콘텐츠의 해시는 블로브에 대한 식별자이며, 블로브를 생성하는 것은 파일의 콘텐츠를 나타내는 블로브의 리스트를 생성하는 것을 포함하는, 방법.
  33. 제 32 항에 있어서, 블로브를 생성하는 것은 파일의 콘텐츠를 나타내는 블로브의 리스트의 해시를 포함하는 콘텐츠 해시 - 상기 콘텐츠 해시는 파일에 대한 식별자임 - , 파일에 대응하는 파일 이름의 해시를 포함하는 이름 해시, 콘텐츠 해시와 이름 해시의 조합의 해시를 포함하는 파일 해시, 파일의 콘텐츠에 대응하는 파일 이름 및 파일 경로의 해시를 포함하는 경로 해시, 및 파일의 파일 메타데이터의 해시를 포함하는 메타데이터 해시 중 적어도 하나를 생성하는 것을 포함하는, 방법.
  34. 제 33 항에 있어서, 플랫폼은 파일에 대한 기록(record)을 생성하되, 상기 기록은 파일의 블로브 해시, 콘텐츠 해시, 파일 해시, 경로 해시 및 메타데이터 해시를 포함하는, 방법.
  35. 제 31 항에 있어서, 각각의 에이전트가 에이전트를 호스팅하는 클라이언트 장치에 로컬하게 블로브를 저장하고 이전에 보고되지 않은 블로브를 플랫폼의 중앙 저장소로 전송하는, 방법.
  36. 제 1 항에 있어서, 콘텐츠의 각각의 파일을 분석하고 콘텐츠의 각각의 파일을 사업 콘텐츠 및 개인 콘텐츠 중 적어도 하나로서 구분하는(delineating), 방법.
  37. 제 36 항에 있어서, 사업 콘텐츠에 대해 콘텐츠의 각각의 파일의 기밀 레벨을 결정하되, 기밀 레벨을 결정하는 것은 핵심어(key term) 중 특정 핵심어를 식별하는 것을 포함하고, 메타데이터를 생성하는 것은 대응하는 콘텐츠의 기밀 레벨을 포함하도록 메타데이터를 생성하는 것을 포함하는, 방법.
  38. 제 37 항에 있어서, 콘텐츠의 각각의 파일로부터 핵심어를 스캔 및 추출하고, 기업 간 핵심어를 비교하고 기업 특정적 핵심어의 리스트를 생성하는, 방법.
  39. 제 37 항에 있어서, 기밀 레벨에 기초하여 콘텐츠의 각각의 파일로의 액세스를 제어하며, 액세스를 제어하는 것은 콘텐츠의 각각의 파일의 조회를 제어하는 것, 콘텐츠의 각각의 파일의 다운로드를 제어하는 것, 콘텐츠의 각각의 파일의 액세스를 제어하는 것, 콘텐츠의 각각의 파일의 복사를 제어하는 것, 콘텐츠의 각각의 파일의 분산을 제어하는 것 중 적어도 하나를 포함하는, 방법.
  40. 제 36 항에 있어서, 콘텐츠로부터 만들어진 추론 및 콘텐츠의 문법(syntax) 중 적어도 하나를 기초로 콘텐츠의 각각의 파일을 구분하는 것(delineating)을 특징으로 하는 방법.
  41. 제 36 항에 있어서, 위치와 복수의 에이전트 중 적어도 하나에 걸친 콘텐츠의 사업 콘텐츠를 식별하는 것을 포함하되, 사업 콘텐츠를 식별하는 것은 문서 이름, 문서 크기, 근접성, 키 워드 비교 및 해시 비교 중 적어도 하나를 사용하는 것을 특징으로 하는 방법.
  42. 제 1 항에 있어서, 콘텐츠의 파일을 액세스하는 복수의 장치 간 공동작업을 제어하는 것을 특징으로 하는 방법.
  43. 제 42 항에 있어서, 콘텐츠의 파일을 동시에 편집하는 복수의 장치 간 콘텐츠의 편집을 제어하는 것, 콘텐츠의 파일과 관련된 활동을 추적하는 것, 및 콘텐츠의 파일의 수정 히스토리를 추적하는 것 중 적어도 하나를 포함하는, 방법.
  44. 제 1 항에 있어서, 모바일 장치 관리가 모바일 장치를 통해 콘텐츠의 액세스를 모니터링 및 제어하는 것을 포함하며, 모바일 장치 관리는 모바일 장치의 위치 및 모바일 장치의 데이터 중 적어도 하나를 추적하고 위치를 기초로 콘텐츠로의 액세스를 제어하는 것을 포함하는, 방법.
  45. 제 1 항에 있어서, 콘솔을 플랫폼에 연결하는 것을 포함하며, 상기 콘솔은 자동화된 활동 모니터링, 감사 및 콘텐츠와 관련된 보고를 포함하고, 콘솔을 통해 콘텐츠와 관련된 활동 및 위치 중 적어도 하나를 제어하는 것을 포함하며, 활동을 제어하는 것은 콘텐츠의 각각의 파일의 조회, 콘텐츠의 각각의 파일의 다운로드, 콘텐츠의 각각의 파일의 액세스, 콘텐츠의 각각의 파일의 복사, 및 콘텐츠의 각각의 파일의 분산 중 적어도 하나를 제어하는 것을 포함하는, 방법.
  46. 삭제
  47. 삭제
  48. 삭제
  49. 삭제
  50. 삭제
  51. 삭제
  52. 삭제
  53. 삭제
  54. 삭제
  55. 삭제
  56. 삭제
  57. 삭제
  58. 삭제
  59. 삭제
  60. 삭제
  61. 삭제
  62. 삭제
  63. 삭제
  64. 삭제
  65. 삭제
  66. 삭제
  67. 삭제
  68. 삭제
  69. 삭제
  70. 삭제
  71. 삭제
  72. 삭제
  73. 삭제
  74. 삭제
  75. 삭제
  76. 삭제
  77. 삭제
  78. 삭제
  79. 삭제
  80. 삭제
  81. 삭제
  82. 삭제
  83. 삭제
  84. 삭제
  85. 삭제
  86. 삭제
  87. 삭제
  88. 삭제
  89. 삭제
  90. 삭제
  91. 삭제
  92. 삭제
  93. 삭제
  94. 삭제
  95. 삭제
  96. 삭제
  97. 삭제
  98. 삭제
  99. 삭제
  100. 삭제
  101. 삭제
  102. 삭제
  103. 삭제
  104. 삭제
  105. 삭제
  106. 삭제
  107. 삭제
  108. 삭제
  109. 삭제
  110. 삭제
  111. 삭제
  112. 삭제
  113. 삭제
  114. 삭제
  115. 삭제
  116. 삭제
  117. 삭제
  118. 삭제
  119. 삭제
  120. 삭제
  121. 삭제
  122. 삭제
  123. 삭제
  124. 삭제
  125. 삭제
KR1020167009349A 2013-09-13 2014-09-15 문서 관리와 액세스 제어가 있는 분산형 데이터 시스템 KR102267132B1 (ko)

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 KR20160064128A (ko) 2016-06-07
KR102267132B1 true KR102267132B1 (ko) 2021-06-21

Family

ID=52666376

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020167009349A KR102267132B1 (ko) 2013-09-13 2014-09-15 문서 관리와 액세스 제어가 있는 분산형 데이터 시스템

Country Status (4)

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

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9910968B2 (en) 2015-12-30 2018-03-06 Dropbox, Inc. Automatic notifications for inadvertent file events
JP6597314B2 (ja) * 2016-01-05 2019-10-30 株式会社バッファロー ファイル共有支援システム、ネットワークストレージ装置、ファイル共有支援方法、及び、ファイル共有支援プログラム
US10481781B2 (en) 2016-12-30 2019-11-19 Dropbox, Inc. Presence, access, and seen state for local copies of shared content items
US10778768B2 (en) 2017-08-02 2020-09-15 Electronics And Telecommunications Research Institute Method and system for optimizing cloud storage services
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
US10949388B2 (en) * 2018-11-16 2021-03-16 Advanced Messaging Technologies, Inc. Systems and methods for distributed data storage and delivery using blockchain
US10795670B2 (en) * 2018-12-20 2020-10-06 Roblox Corporation Developer collaboration control system
EP4007982A4 (en) 2019-08-01 2023-05-03 Prefect Technologies, Inc SYSTEM AND METHOD FOR REMOTE EXECUTION OF ONE OR MORE ARBITRARILY DEFINED WORKFLOWS
CN110737918B (zh) * 2019-10-15 2023-08-08 重庆远见信息产业集团股份有限公司 外部数据共享管理平台
JP7316204B2 (ja) 2019-12-16 2023-07-27 株式会社ソニー・インタラクティブエンタテインメント 情報処理装置およびファイルアクセス方法
JP7321917B2 (ja) * 2019-12-16 2023-08-07 株式会社ソニー・インタラクティブエンタテインメント 情報処理装置およびファイルアクセス方法
KR102225577B1 (ko) * 2020-08-21 2021-03-09 (주)테온 하이브리드 스토리지를 이용한 데이터 분산 저장 방법 및 장치
JP7083973B1 (ja) 2021-03-04 2022-06-14 株式会社ストラテジット データ連携システム及びデータ連携方法

Citations (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2001345850A (ja) 2000-06-02 2001-12-14 Nec Corp コールエージェント用呼制御データの集中管理方法及びシステム
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
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
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 (ko) * 2009-09-03 2012-04-09 한국과학기술원 멀티미디어 컨텐츠와 메타데이터를 분리하여 저장하는 웹스토리지 서비스 제공방법 및 장치
JP2012118710A (ja) * 2010-11-30 2012-06-21 Brother Ind Ltd ノード装置、通信システム、通信方法および情報処理装置用プログラム
WO2013106590A2 (en) * 2012-01-10 2013-07-18 Memeo, Inc. Cloud-based distributed data system

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1828936A2 (en) * 2004-11-17 2007-09-05 Iron Mountain Incorporated Systems and methods for managing digital assets
WO2007030305A2 (en) * 2005-09-02 2007-03-15 Avvenu, Inc. Data communication with remote network node
KR101527058B1 (ko) * 2010-07-29 2015-06-09 에스케이텔레콤 주식회사 분산 파일 관리 장치 및 방법

Patent Citations (15)

* Cited by examiner, † Cited by third party
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 (ja) 2000-06-02 2001-12-14 Nec Corp コールエージェント用呼制御データの集中管理方法及びシステム
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 (ko) * 2009-09-03 2012-04-09 한국과학기술원 멀티미디어 컨텐츠와 메타데이터를 분리하여 저장하는 웹스토리지 서비스 제공방법 및 장치
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
JP2012118710A (ja) * 2010-11-30 2012-06-21 Brother Ind Ltd ノード装置、通信システム、通信方法および情報処理装置用プログラム
WO2013106590A2 (en) * 2012-01-10 2013-07-18 Memeo, Inc. Cloud-based distributed data system

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
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)

Also Published As

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

Similar Documents

Publication Publication Date Title
KR102267132B1 (ko) 문서 관리와 액세스 제어가 있는 분산형 데이터 시스템
US20150127607A1 (en) Distributed data system with document management and access control
US20230361988A1 (en) Sharing Encrypted Documents Within and Outside an Organization
US10762229B2 (en) Secure searchable and shareable remote storage system and method
US9262643B2 (en) Encrypting files within a cloud computing environment
US8977661B2 (en) System, method and computer readable medium for file management
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
US7809699B2 (en) Systems and methods for automatically categorizing digital assets
US7757270B2 (en) Systems and methods for exception handling
US7958087B2 (en) Systems and methods for cross-system digital asset tag propagation
US20140019497A1 (en) Modification of files within a cloud computing environment
US9847994B1 (en) System and method for providing a secure network
US9268964B1 (en) Techniques for multimedia metadata security
US20160156631A1 (en) Methods and systems for shared file storage
US20070208685A1 (en) Systems and Methods for Infinite Information Organization
US20070266032A1 (en) Systems and Methods for Risk Based Information Management
US20070113288A1 (en) Systems and Methods for Digital Asset Policy Reconciliation
US20070130218A1 (en) Systems and Methods for Roll-Up of Asset Digital Signatures
US11936716B2 (en) System and method for providing a secure network
WO2022072624A1 (en) System and method for providing a secure network

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