KR102231976B1 - 피접속 장치에 대한 데이터 관리 기법 - Google Patents

피접속 장치에 대한 데이터 관리 기법 Download PDF

Info

Publication number
KR102231976B1
KR102231976B1 KR1020167011423A KR20167011423A KR102231976B1 KR 102231976 B1 KR102231976 B1 KR 102231976B1 KR 1020167011423 A KR1020167011423 A KR 1020167011423A KR 20167011423 A KR20167011423 A KR 20167011423A KR 102231976 B1 KR102231976 B1 KR 102231976B1
Authority
KR
South Korea
Prior art keywords
record
tag
index
chunk
timestamp
Prior art date
Application number
KR1020167011423A
Other languages
English (en)
Other versions
KR20160077080A (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 KR20160077080A publication Critical patent/KR20160077080A/ko
Application granted granted Critical
Publication of KR102231976B1 publication Critical patent/KR102231976B1/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/22Indexing; Data structures therefor; Storage structures
    • G06F16/2228Indexing structures
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/02Editing, e.g. varying the order of information signals recorded on, or reproduced from, record carriers
    • G11B27/031Electronic editing of digitised analogue information signals, e.g. audio or video signals
    • G11B27/034Electronic editing of digitised analogue information signals, e.g. audio or video signals on discs
    • 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/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24553Query execution of query operations
    • G06F16/24562Pointer or reference processing operations
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11BINFORMATION STORAGE BASED ON RELATIVE MOVEMENT BETWEEN RECORD CARRIER AND TRANSDUCER
    • G11B27/00Editing; Indexing; Addressing; Timing or synchronising; Monitoring; Measuring tape travel
    • G11B27/10Indexing; Addressing; Timing or synchronising; Measuring tape travel
    • G11B27/11Indexing; Addressing; Timing or synchronising; Measuring tape travel by using information not detectable on the record carrier

Abstract

데이터 관리를 용이하게 하기 위한 기술 및 구조는 예로서 피접속 장치로부터의 시계열 데이터에 대한 개선된 응답 시간 및 공간 효율을 제공한다. 구조는 복수의 객체 및 객체 각각과 관련된 시간 식별자를 포함하는 시계열 데이터의 스트림의 수신을 가능하게 할 수 있다. 하나 이상의 태그가 객체와 관련된다. 구조는 또한 스트림을 복수의 연속 청크로 청킹하고 - 각각의 청크는 복수의 객체를 포함함 -, 시간 식별자와 하나 이상의 태그를 관련시키는 인덱스를 생성하고, 청크를 제1 원격 저장소로 전송하고, 이어서 인덱스를 저장할 수 있다.

Description

피접속 장치에 대한 데이터 관리 기법{DATA MANAGEMENT FOR CONNECTED DEVICES}
관련 출원의 상호 참조
본 출원은 2013년 10월 30일자로 출원된 미국 가출원 제61/897,755호의 이익을 주장하는 2014년 7월 24일자로 출원된 미국 출원 제14/340,514호의 이익을 주장하며, 이들 양 출원의 전체 개시 내용은 본 명세서에서 참조로서 통합된다.
기술 분야
본 발명은 데이터 관리의 기술 분야에 관한 것이다.
집, 창고 및 사무실과 같은 빌딩은 점점 피접속 장치로 채워지고 있다. 예를 들어, 감시 카메라, 온도 센서 및/또는 모션 센서가 더 일반화되었다. 따라서, 그러한 장치로부터의 데이터를 처리하는 애플리케이션도 더 널리 보급되었다. 그러나, 그러한 애플리케이션에서 데이터 저장, 검색(retrieval) 및 공유를 위해 이전에 구현되었거나 제안된 시스템은 불충분하고 비효율적일 수 있다.
본 출원은 피접속 장치 시스템에서 데이터를 관리, 예를 들어, 저장, 처리 및/또는 검색하기 위한 개선된 프레임워크 및 방법을 설명한다. 적어도 일례에서, 본 명세서에서 설명되는 기술은 감시 카메라, 모션 센서, 온도 센서 등을 포함할 수 있는 홈 모니터링 시스템으로부터 수신되는 데이터를 포맷팅 및 저장한다. 일부 예에서, 방법은 데이터를 태깅(tagging)하고, 태그/데이터의 인덱스를 생성할 수 있다. 인덱스 및 데이터는 원격적으로, 예컨대 클라우드 기반 저장소에 저장될 수 있다. 일부 구현에서, 인덱스는 로컬로 페치(fetch)되며, 데이터의 관련 부분을 페치하기 전에 인덱스에 대한 질의(query)가 이루어진다. 아래의 설명은 피접속 모니터링 장치 시스템 전반에서의 데이터 처리의 이들 및 다른 비한정적인 예를 설명한다. 일부 구현은 애플리케이션 설계 유연성, 사용자 간의 정보의 공유 및/또는 데이터의 개선된 보호를 가능하게 할 수 있다.
이 요약은 아래의 상세한 설명에서 더 설명되는 개념의 발췌를 간단한 형태로 소개하기 위해 제공된다. 이 요약은 청구 발명의 중요한 특징 또는 본질적인 특징을 식별하는 것을 의도하지 않으며, 청구 발명의 범위를 한정하는 데 사용되는 것도 의도하지 않는다.
상세한 설명은 첨부 도면을 참조하여 설명된다. 도면에서, 참조 번호의 가장 좌측 숫자(들)는 참조 번호가 처음 나오는 도면을 식별한다. 상이한 도면 내의 동일한 참조 번호는 유사하거나 동일한 아이템을 나타낸다.
도 1은 본 명세서에서 설명되는 접속 장치에 대한 데이터 관리를 구현하기 위한 예시적인 환경을 나타내는 블록도이다.
도 2는 도 1의 환경 내에 도시된 컴퓨팅 장치와 같은 예시적인 컴퓨팅 장치를 나타내는 블록도이다.
도 3은 피접속 장치에 대한 데이터 관리를 수행할 수 있는 예시적인 프로세스 아키텍처를 나타내는 블록도이다.
도 4는 피접속 장치에 대한 데이터 검색을 수행할 수 있는 예시적인 프로세스 아키텍처를 나타내는 블록도이다.
도 5는 본 명세서에서 설명되는 피접속 장치에 대한 데이터 관리를 구현하기 위한 예시적인 데이터 레이아웃을 나타내는 블록도이다.
도 6은 본 명세서에서 설명되는 피접속 장치에 대한 데이터 관리를 구현하기 위한 예시적인 데이터 레이아웃을 나타내는 블록도이다.
본 명세서에서 설명되는 예는, 예를 들어 처리 유닛 및 가속기를 포함하는 자원을 이용하여 피접속 장치로부터의 데이터와 같은 데이터를 관리하기 위한 기술 및 구조를 제공한다. 그러한 자원은 지정된 기능을 구현하기 위한 특정 명령어로 프로그래밍된 특수 프로그래밍 및/또는 하드웨어를 이용하여 구현될 수 있다. 예를 들어, 자원은 그래픽 처리 유닛(GPU) 및 컴퓨터 처리 유닛(CPU)에서와 같이 상이한 실행 모델을 가질 수 있다.
본 발명의 구현에서, 정보를 저장하는 방법은 복수의 장치로부터 복수의 객체 및 객체의 각각과 관련된 시간 식별자를 포함하는 시계열 데이터의 스트림을 수신하는 단계를 포함한다. 객체는 예로서 값(예로서, 온도 값), (예로서, 감시 카메라로부터의) 이미지 및/또는 이진 표시(예로서, 모션 검출기로부터의 존재/부재)일 수 있다.
이 방법은 또한 하나 이상의 태그를 객체의 각각과 관련시키는 단계를 포함할 수 있다. 일부 구현에서, 태그는 객체의 속성을 설명할 수 있으며, 예로서 태깅된 객체(tagged object)를 후속 날짜 또는 시간에 검색하기 위해 검색 가능할 수 있다. 태그는, 예를 들어, 장치/센서 상에서 실행되는 애플리케이션에 의해 장치/센서에서 적용될 수 있다. 다른 구현에서는, 사용자가 태그를 수동 입력할 수도 있고, 아니면 태그가 장치/센서가 아니라 데이터 스트림과 관련될 수도 있다. 이 방법은 또한 태깅된 객체의 스트림을 복수의 연속 청크(연속 청크의 각각은 복수의 객체를 포함함)로 청킹(chunking)하는 단계를 포함할 수 있다. 본 발명에 따른 기술은 청크를 압축하고/하거나 암호화하고, 청크를 저장할 수 있다. 일부 구현에서, 이 방법은 또한 데이터 스트림에 대한 인덱스를 생성하는 단계를 포함한다. 인덱스는 시간 식별자와 태그 간의 관련성을 포함할 수 있으며, 본 발명의 방법은 청크와 별개로 인덱스를 저장할 수 있다. 일례에서, 청크는 원격적으로 저장될 수 있는 반면, 인덱스는 로컬로 검색된다. 다른 구현 예에서, 사용자는 인덱스의 로컬 질의를 행할 수 있으며, 방법은 질의를 충족시키는 객체(들)를 갖는 청크(들)를 검색할 수 있다.
본 명세서에서 설명되는 기술은 또한 사용자 선호를 이용하여 데이터를 저장할 수 있다. 예로서, 사용자는 자신의 관련 장치에서 생성되는 데이터가 다른 사용자에 의해 이용 가능한지를 결정할 수 있다. 즉, 사용자는 자신의 장치에서 생성되는 정보에 대한 액세스를 허가할 것이다. 사용자는 또한, 예컨대 데이터를 사용자의 장치 및/또는 저장 제약에 맞추기 위해 정보의 저장 타입을 선택할 수 있다. 다른 양태에서, 본 명세서에서 설명되는 프레임워크에 따라 저장되는 데이터는 신뢰할 수 있고, 봉인(tamper-evident)되고/되거나, 최신의(fresh) 것일 수 있다.
데이터 관리 프레임워크의 예는 아래의 설명 및 첨부 도면에서 더 상세히 제시된다.
본 명세서에서 설명되는 예는 장치/센서로부터의 데이터를 유지 및 처리하는 데 적용 가능한 기술 및 구조를 제공한다. 다양한 예에서, 본 명세서에서 설명되는 바와 같은 기술을 수행하도록 모듈 또는 API로부터의 프로그래밍을 통해 구성되는 처리 유닛은 GPU, 필드 프로그래머블 게이트 어레이(FPGA), 다른 클래스의 디지털 신호 프로세서(DSP), 또는 일부 예에서 CPU에 의해 구동될 수 있는 다른 하드웨어 로직 컴포넌트 중 하나 이상을 포함할 수 있다. 한정이 아니라 예로서, 사용될 수 있는 하드웨어 로직 컴포넌트의 예시적인 타입은 주문형 집적 회로(ASIC), 주문형 표준 제품(ASSP), 시스템-온-칩 시스템(SOC), 복합 프로그래밍 가능 로직 장치(CPLD) 등을 포함한다.
다양한 예, 시나리오 및 양태가 도 1-6을 참조하여 더 설명된다.
도 1은 데이터 저장 및 검색을 포함하는, 감시 시스템에서의 데이터 관리 및 처리를 구현하는 데 사용될 수 있는 예시적인 환경(100)을 나타낸다. 환경(100)은 감시될 위치에 배치된 다수의 모니터링 장치(102)를 포함한다. 도시된 예에서는, 2개의 위치가 감시되며, 따라서 2 세트의 모니터링 장치(102)가 존재한다. 모니터링 장치(102)는 개별적으로 센서(104), 및 센서(104)에 의해 감지되는 객체 및 객체와 관련된 타임스탬프를 포함하는 시계열 데이터의 스트림을 출력하기 위한 통신 인터페이스(106)를 포함한다. 예시적인 모니터링 장치(102)는 카메라, 모션 센서, 온도 센서 등을 포함할 수 있지만, 이에 한정되지 않는다.
환경(100)은 또한 하나 이상의 모니터링 장치와 각자 관련된 복수의 컴퓨팅 장치(108)를 포함한다. 일 구현에서, 각각의 컴퓨팅 장치(108)는 상이한 사용자 또는 상이한 위치와 관련된다. 예로서, 모니터링 장치(102)가 홈 감시 장치인 경우에, 각각의 홈은 그 자신의 컴퓨팅 장치(108)를 갖는다. 다른 예에서, 예를 들어 다수의 홈 및/또는 감시 장치에 대해 단일 컴퓨팅 장치(108)가 사용될 수도 있다. 일례에서, 컴퓨팅 장치(108)는 홈 보안 또는 감시 회사와 같은 제삼자 서비스 제공자에 존재하거나 그에 의해 제어될 수 있다.
컴퓨팅 장치(들)(108)는 전통적인 클라이언트 타입 장치, 데스크탑 컴퓨터 타입 장치, 이동 타입 장치, 특수 목적 타입 장치, 내장 타입 장치 및/또는 착용 타입 장치와 같은 다양한 장치 카테고리 또는 클래스에 속할 수 있다. 컴퓨팅 장치(들)(108)는 다양한 장치 타입을 포함할 수 있으며, 임의의 특정 장치 타입으로 한정되지 않는다. 컴퓨팅 장치(들)(108)는 이동 전화와 같은 통신 장치, 태블릿 컴퓨터, 이동 전화/태블릿 하이브리드 장치, 개인 휴대 단말기(personal data assistant: PDA), 랩탑 컴퓨터, 다른 이동 컴퓨터, 착용식 컴퓨터, 이식형 컴퓨팅 장치, 데스크탑 컴퓨터, 개인용 (예로서, 데스크탑) 컴퓨터, 자동차용 컴퓨터, 네트워크 인에이블드 텔레비전, 씬 클라이언트(thin client), 단말기, 게임 콘솔, 게이밍 장치, 워크스테이션, 미디어 플레이어, 개인용 비디오 레코더(PVR), 셋톱 박스, 카메라, 컴퓨팅 장치 내의 포함을 위한 통합 컴포넌트, 기구 또는 임의의 다른 유형의 컴퓨팅 장치를 포함할 수 있지만, 이에 한정되지 않는다.
컴퓨팅 장치(108) 각각은 적어도 하나의 프로세서(110) 및 메모리(112)를 갖는다. 하나의 프로세서(110) 및 하나의 메모리(112)만이 도시되지만, 다수의 프로세서(110), 다수의 메모리 장치(112) 또는 이들 양자가 존재할 수 있다. 프로세서(들)(110)는 단일 처리 유닛, 또는 다수의 상이한 처리 유닛을 각자 포함할 수 있는 다수의 유닛일 수 있다. 프로세서(들)(110)는 마이크로프로세서, 마이크로컴퓨터, 마이크로컨트롤러, 디지털 신호 프로세서, 중앙 처리 유닛(CPU), 그래픽 처리 유닛(GPU), 보안 프로세서 등을 포함할 수 있다. 대안으로서 또는 추가로, 본 명세서에서 설명되는 기술 중 일부 또는 전부는 하나 이상의 하드웨어 로직 컴포넌트에 의해 적어도 부분적으로 수행될 수 있다. 한정이 아니라 예로서, 사용될 수 있는 예시적인 타입의 하드웨어 로직 컴포넌트는 필드 프로그래머블 게이트 어레이(FPGA), 주문형 집적 회로(ASIC), 주문형 표준 제품(ASSP), 상태 기계, 복합 프로그래밍 가능 로직 장치(CPLD), 다른 로직 회로, 시스템 온 칩(SoC) 및/또는 명령에 기초하여 동작을 수행하는 임의의 다른 장치를 포함한다. 많은 능력 중에서 특히, 프로세서(들)(110)는 메모리(112) 내에 저장된 컴퓨터 판독 가능 명령을 페치하고/하거나 실행하도록 구성될 수 있다.
메모리는 하나의 컴퓨터 판독 가능 매체 또는 컴퓨터 판독 가능 매체 조합을 포함할 수 있다. 본 명세서에서 사용되는 바와 같이, "컴퓨터 판독 가능 매체"는 컴퓨터 저장 매체 및 통신 매체를 포함한다.
컴퓨터 저장 매체는 컴퓨터 판독 가능 명령, 데이터 구조, 프로그램 모듈 또는 다른 데이터와 같은 정보의 저장을 위해 임의의 방법 또는 기술로 구현된 휘발성 및 비휘발성, 이동식 및 비이동식 매체를 포함한다. 컴퓨터 저장 매체는 상변화 메모리(PRAM), 정적 랜덤 액세스 메모리(SRAM), 동적 랜덤 액세스 메모리(DRAM), 다른 타입의 랜덤 액세스 메모리(RAM), 판독 전용 메모리(ROM), 전기적으로 소거 및 프로그래밍 가능한 ROM(EEPROM), 플래시 메모리 또는 다른 메모리 기술, 컴팩트 디스크 ROM(CD-ROM), 디지털 다기능 디스크(DVD) 또는 다른 광학 저장소, 자기 카세트, 자기 테이프, 자기 디스크 저장소 또는 다른 자기 저장 장치, 또는 컴퓨팅 장치에 의한 액세스를 위해 정보를 저장하는 데 사용될 수 있는 임의의 다른 매체를 포함하지만, 이에 한정되지 않는다.
이와 달리, 통신 매체는 반송파와 같은 피변조 데이터 신호 내에 컴퓨터 판독 가능 명령, 데이터 구조, 프로그램 모듈 또는 다른 데이터를 포함한다. 본 명세서에서 정의되는 바와 같이, 컴퓨터 저장 매체는 통신 매체를 포함하지 않는다.
메모리(112)의 컴퓨터 판독 가능 매체 상에 저장되는 실행 가능 명령은 예로서 운영 체제, 데이터 관리 프레임워크(114), 및/또는 처리 유닛(들)(110)에 의해 로딩 및 실행될 수 있는 다른 모듈, 프로그램 또는 애플리케이션을 포함할 수 있다. 대안으로서 또는 추가로, 본 명세서에서 설명되는 기능은 가속기와 같은 하나 이상의 하드웨어 로직 컴포넌트에 의해 적어도 부분적으로 수행될 수 있다. 한정이 아니라 예로서, 사용될 수 있는 예시적인 타입의 하드웨어 로직 컴포넌트는 FPGA, ASIC, ASSP, SOC, CPLD 등을 포함한다. 예로서, 가속기는 FPGA 패브릭 내에 내장된 CPU 코스를 포함하는 ZYLEX 또는 ALTERA로부터의 하이브리드 장치와 같은 하이브리드 장치를 나타낼 수 있다.
도 1에 또한 도시된 바와 같이, 컴퓨팅 장치(108)는 서로에게 통신가능하게 결합될 뿐만 아니라, 예로서 네트워크(120)를 통해 로컬 저장소(116) 및 원격 저장소(118)에 또한 통신가능하게 결합된다.
예로서, 네트워크(들)(120)는 인터넷과 같은 공개 네트워크, 단체 및/또는 개인 인트라넷과 같은 비공개 네트워크, 또는 비공개 및 공개 네트워크의 소정 조합을 포함할 수 있다. 네트워크(들)(120)는 근거리 네트워크(LAN), 광역 네트워크(WAN), 위성 네트워크, 케이블 네트워크, 와이파이 네트워크, WiMAX 네트워크, 이동 통신 네트워크(예로서, 3G, 4G 등) 또는 이들의 임의 조합을 포함하지만 이에 한정되지 않는 임의 타입의 유선 및/또는 무선 네트워크도 포함할 수 있다. 네트워크(들)(120)는 인터넷 프로토콜(IP), 송신 제어 프로토콜(TCP), 사용자 데이터그램 프로토콜(UDP) 또는 다른 타입의 프로토콜과 같은 패킷 기반 및/또는 데이터그램 기반 프로토콜을 포함하는 통신 프로토콜을 이용할 수 있다. 더욱이, 네트워크(들)(120)는 네트워크 통신을 촉진하고/하거나 스위치, 라우터, 게이트웨이, 액세스 포인트, 방화벽, 기지국, 중계기, 백본 장치 등과 같은 네트워크용 하드웨어 기초를 형성하는 다수의 장치도 포함할 수 있다.
일부 예에서, 네트워크(들)(120)는 무선 액세스 포인트(WAP)와 같이 무선 네트워크에 대한 접속을 가능하게 하는 장치를 더 포함할 수 있다. 네트워크(들)는 IEEE(Institute of Electrical and Electronics Engineers) 802.11 표준(예로서, 802.11g, 802.11n 등) 및 다른 표준을 지원하는 WAP를 포함해서 다양한 전자기 주파수(예로서, 무선 주파수)를 통해 데이터를 송신 및 수신하는 WAP를 통한 접속을 지원할 수 있다.
로컬 저장소(116)는 일반적으로 컴퓨팅 장치(들)(108)와 관련된 데이터베이스와 같은 메모리 및/또는 데이터 저장소를 지칭한다. 일례에서, 로컬 저장소는 컴퓨팅 장치(들)(108)의 하드 드라이브 상에 저장된 메모리를 지칭할 수 있다. 소정의 다른 구현에서, 로컬 저장소(116)는 컴퓨팅 장치(들)(108) 중 하나 이상과 네트워크를 공유하는 데이터베이스 및/또는 메모리를 지칭할 수 있다. 로컬 저장소(116)는 컴퓨팅 장치(들)(108)와 동일한 방화벽 측에 존재할 수 있다.
원격 저장소(118)는 일반적으로 컴퓨팅 장치(들)(108)로부터 떨어진 메모리 및/또는 데이터 저장소를 지칭한다. 원격 저장소(118)는 개별 위치의 저장소 또는 클라우드 기반 저장소를 포함할 수 있다.
도시된 바와 같이, 양 컴퓨팅 장치(108-1, 108-2)는 동일 저장소(116, 118)에 액세스할 수 있다. 본 발명의 일부 구현에서, 하나의 컴퓨팅 장치(108-1)와 관련된 사용자는 제2 컴퓨팅 장치(108-2)로부터 생성되는 정보에 액세스하는 것이 허가될 수 있다. 예로서, 각각의 컴퓨팅 장치(108)가 소정의 이웃의 집과 관련되고, 모니터링 장치(102)가 감시 카메라를 포함하는 경우, 이웃의 하나의 집이 이웃의 감시 카메라로부터 감시 장면을 다운로드 및 관찰하는 것이 가능할 수 있다. 물론, 각각의 장치(108-1, 108-2)의 소유자/사용자는 이웃에 의한 그러한 액세스를 허가해야 할 것이다.
도 2는 컴퓨팅 장치(108)를 더 상세히 나타낸다. 도시된 바와 같이, 프로세서(110) 및 메모리(112)에 더하여, 컴퓨팅 장치(108)는 통신 인터페이스(202)도 포함한다. 통신 인터페이스(202)는 장치(102, 108)는 물론, 로컬 저장소(114) 및 원격 저장소(116)와도 통신한다. 인터페이스(202)는 유선 또는 무선 인터페이스와 같은 다수의 상이한 인터페이스를 포함할 수 있다. 더욱이, 인터페이스(202)는 컴퓨팅 장치(108)가 주변 입력 장치(예로서, 키보드, 마우스, 펜, 게임 제어기, 음성 입력 장치, 터치 입력 장치, 제스처 입력 장치 등)를 포함하는 사용자 입력 장치 및/또는 주변 출력 장치(예로서, 디스플레이, 프린터, 오디오 스피커, 햅틱 출력 등)를 포함하는 출력 장치와 같은 입출력 장치와 통신하는 것을 가능하게 하기 위한 하나 이상의 입출력(I/O) 인터페이스를 포함할 수 있다. 인터페이스(202)는 예를 들어 네트워크를 통해 통신을 송신 및 수신하기 위한 네트워크 인터페이스 제어기(NIC) 또는 다른 타입의 송수신기 장치를 나타낼 수 있는 하나 이상의 네트워크 인터페이스(들)도 포함할 수 있다.
도 2에 또한 도시된 바와 같이, 메모리(112)는 다른 모듈, 컴포넌트 및 장치의 이점을 위해 장치 내의 그리고 장치에 결합되는 하드웨어 및 서비스를 관리하도록 구성되는 운영 체제(204)를 포함한다.
메모리(112)는 데이터 관리 프레임워크(114)도 포함한다. 프레임워크(114)는 본 명세서에서 설명되는 데이터 관리 기능 및 기술을 포함하는 다양한 기능을 구현하기 위해 프로세서(들)(110) 상에서 실행될 수 있는 하나 이상의 소프트웨어 및/또는 펌웨어 모듈(들) 및/또는 API를 포함할 수 있다. 모듈 및/또는 API는 블록(206, 208, 210, 212, 214)으로서 도시되지만, 이는 일례일 뿐이며, 블록의 수는 더 많거나 적게 변할 수 있다. 블록(206, 208, 210, 212, 214)과 관련하여 설명되는 기능은 더 적은 수의 모듈 및/또는 API에 의해 수행되도록 결합될 수 있거나, 기능이 분할되어 더 많은 수의 모듈 및/또는 API에 의해 수행될 수 있다. 모듈/API는 프로세서 상에서 실행될 수 있는 소프트웨어 및/또는 펌웨어인 것으로 설명되지만, 다른 예에서 임의의 또는 모든 모듈은 설명되는 기능을 실행하기 위해 (예를 들어, ASIC, 특수 처리 유닛 등으로서) 하드웨어에 의해 전부 또는 일부 구현될 수 있다.
도 2의 예에서, 블록 206은 일반적으로 모니터링 장치(102)와 같은 센서 또는 감지 장치로부터 수신되는 데이터 스트림을 태깅하도록 프로세서(110)를 프로그래밍하기 위한 로직을 갖는 태깅 모듈을 나타낸다. 예로서, 태그는 데이터 스트림 내의 정보의 텍스트 설명을 포함할 수 있다. 태그는 애플리케이션에 고유할 수 있다. 예로서, 데이터 스트림이 감시 카메라와 같은 카메라로부터의 이미지를 포함할 때, 태깅 모듈은 이미지 내의 객체에 대응하는 하나 이상의 태그를 첨부할 수 있다. 예로서, "자동차", "동물" 및/또는 "사람"과 같은 태그가 그러한 특징을 포함하는 데이터 스트림 내의 이미지에 첨부될 수 있다. 일부 구현에서, 태깅 모듈은 모니터링 장치(102) 또는 센서(104)에서 동작할 수 있다. 그러한 구현에서, 장치(108)는 이미 태깅된 데이터 스트림을 수신할 수 있다.
블록 208은 일반적으로 태깅된 데이터 스트림의 인덱스를 생성하도록 처리 유닛(110)을 프로그래밍하기 위한 로직을 갖는 인덱싱 모듈을 나타낸다. 인덱스는 데이터 상의 타임스탬프와 데이터 내의 객체와 관련된 태그 간의 관련성을 포함할 수 있다. 인덱스는 검색 가능하며, 데이터 스트림과 별개로 유지될 수 있다. 일 구현에서, 데이터 스트림은 원격적으로, 예로서 클라우드 기반 저장소 내에 저장될 수 있는 반면, 인덱스는 로컬로 존재한다.
블록 210은 데이터 스트림을 복수의 연속 청크로 분할하도록 프로세서(110)를 프로그래밍하기 위한 로직을 갖는 청킹 모듈을 나타낸다. 청크 각각은 연속 시간 동안의 객체/태그 쌍을 포함한다. 청크의 크기는 예로서 애플리케이션 개발자에 의해 구성 가능할 수 있다. 크기는 데이터 객체의 크기를 포함하지만 이에 한정되지 않는 다양한 팩터에 기초할 수 있다. 청크는 저장 전에 달리 처리될 수 있다. 예로서, 청크는 더 효율적인 저장을 위해 압축될 수 있다. 청크는 특히 도 4를 참조하여 더 상세히 후술된다.
블록 212는 청크를 암호화하도록 처리 유닛(110)을 프로그래밍하기 위한 로직을 갖는 암호화 모듈을 나타낸다. 일부 예에서, 청크는 원격적으로 저장되도록 의도되며, 암호화 모듈은 저장 전에 청크를 암호화할 수 있다. 도시되지 않지만, 암호화 모듈은 신뢰되는 키 서버(도시되지 않음) 등과 통신하여, 청크를 암호화/복호화하기 위한 스킴을 수립할 수 있다. 예시적인 스킴이 아래에서 더 상세히 설명된다.
블록 214는 사용자가 본 명세서에서 설명되는 시스템과 상호작용하게 하기 위한 하나 이상의 인터페이스의 디스플레이를 지시하도록 처리 유닛(110)을 프로그래밍하기 위한 로직을 갖는 사용자 인터페이스 모듈을 나타낸다. 예로서, 모듈은 디스플레이 또는 다른 사용자 인터페이스와 연계하여 사용자가 데이터 스트림에 관한 규칙을 설정하는 것을 가능하게 하는 인터페이스를 제공할 수 있다. 예로서, 인터페이스를 통해, 사용자는 청크 크기를 정의하거나, 청크에 대해 사용될 저장의 타입을 지시하거나, 데이터 스트림에 관한 다른 특성 또는 정책을 입력할 수 있다.
다른 구현에서, 사용자 인터페이스 모듈은 사용자가 전술한 인덱싱 모듈에 의해 생성되는 인덱스와 같은 인덱스를 질의할 수 있는 인터페이스를 용이하게 할 수도 있다. 일부 구현에서 인덱스는 사용자의 장치로부터의 데이터 스트림과 관련될 수 있는 반면, 다른 구현에서 인덱스는 다른, 즉 사용자에 의한 소유/조작되지 않는 모니터링 장치로부터의 데이터 스트림과 관련될 수 있다. 예로서, 집 소유자는 이웃의 다른 집으로부터의 감시 장면의 인덱스를 질의할 수 있다. 물론, 사용자 및 이웃은 그들의 장면이 액세스되거나 비공개로 유지되는 것을 가능하게 하기 위한 옵션을 가질 것이다. 그러한 옵션은 사용자 인터페이스 모듈에 의해 가능한 제어를 통해 행사될 수 있다. 더욱이, 청크는 암호화될 수 있으며, 사용자는 예로서 키의 수신을 통해 데이터에 액세스하는 것이 허가될 수 있다.
모듈이 컴퓨팅 장치(108)의 메모리(112) 내에 존재하는 것으로 도시되지만, 이것이 요구되지는 않는다. 모듈의 일부 또는 전부가 컴퓨팅 장치(108)가 아닌 다른 곳에 존재할 수도 있다. 예로서, 태깅 모듈 또는 유사한 태깅 스킴을 수행하는 모듈이 모니터링 장치(102)에서 구현될 수 있으며, 따라서 모니터링 장치(102)로부터 출력되는 스트림은 이미 태그를 포함한다. 유사하게, 태깅은 모니터링 장치(102)와 컴퓨팅 장치(108) 사이에서 동작하는 애플리케이션에 의해 행해질 수 있다. 본 발명에 의해 유사한 변형들이 이 분야의 통상의 기술자에게 명백할 것이다.
도시된 바와 같은 컴퓨팅 장치(108)는 일부 예에서 시스템 버스, 데이터 버스, 어드레스 버스, PCI 버스, 미니 PCI 버스 및 임의의 다양한 로컬, 주변 및/또는 독립 버스 중 하나 이상을 포함할 수 있는 버스(216)도 포함한다. 버스(216)는 컴퓨터 판독 가능 매체(112)를 처리 유닛(들)(112)에 동작 가능하게 접속할 수 있다.
도 3은 데이터 관리 프레임워크가 데이터 관리를 가능하게 하기 위해 수행할 수 있는 프로세스의 예시적인 아키텍처(300)를 나타내는 블록도이다. 일부 예에서, 데이터 관리 프레임워크(114)는 모든 처리를 수행할 것이다. 다른 구현에서, 아키텍처(300)의 일부 또는 전부가 장치(들)(102)에서 또는 다른 곳에서 수행될 수 있다.
아키텍처(300)는 일반적으로 전술한 감지 장치(102)로부터 수신되는 바와 같은 센서 데이터(302)를 포함한다. 예시적인 구현에서, 센서 데이터(302)는 그 안의 각각의 레코드가 타임스탬프 및 하나 이상의 태그-값 쌍을 갖는 데이터 스트림이다. 예로서, 데이터 스트림은 <timestamp, <value1>, [<value2>, ...]>의 형태를 취할 수 있다. 이러한 타입의 데이터는 단일 기록자, 예로서 모니터링 장치(102)에 의해 기록될 수 있으며, 단일 기록자는 새로운 데이터만을 생성할 수 있는데, 예로서 기록자는 랜덤 액세스 갱신 또는 삭제를 수행하지 못할 수 있다.
아키텍처(300)는 304에서 센서 데이터(302)를 태깅하는 단계를 포함한다. 태그는 일반적으로 데이터 스트림 내의 데이터의 객체 타입에 대한 정보를 포함할 수 있다. 예로서, 감시 카메라로부터의 데이터 스트림에 대해, 태그는 "동물", "사람", "자동차" 등을 포함할 수 있다. 에너지 데이터 분석 시스템에서, 태그는 "열 소비", "물 소비" 등을 포함할 수 있다. 따라서, 태그는 애플리케이션에 고유할 수 있다. 센서 데이터를 태깅하는 애플리케이션은 모니터링 장치(102) 상에서, 컴퓨팅 장치(108) 상에서 또는 다른 어딘가에서 실행될 수 있다.
308에서, 아키텍처(300)는 태깅된 센서 데이터를 수신한다. 본 발명의 예시적인 구현에서, 태그를 갖는 데이터 스트림은 <timestamp, <tag1, value1>, [<tag2, value2>, ...]>의 형태를 갖는다. 개별 스트림은 다수의 상이한 기준에 의해 식별될 수 있다. 예로서, 스트림은 3-튜플: <HomeID, AppID, StreamID>에 의해 고유하게 식별될 수 있다. 전술한 바와 같이, 아키텍처(300)는 장치(108)에서 센서 데이터를 태깅하는 단계(304)를 포함할 수 있다.
아키텍처(300)는 306에서 데이터 관리 정보를 수신하는 단계도 포함한다. 데이터 관리 정보는 일반적으로 감지 장치(102)로부터 수신되는 데이터 스트림이 처리되는 방식을 제어하는 임의의 정보를 포함한다. 데이터 관리 정보는 프로그래머에 의해, 사용자에 의해 그리고/또는 소정의 다른 사람 또는 수단에 의해 결정될 수 있다.
일부 예에서, 데이터 관리 정보는 데이터 스트림의 타입을 식별할 수 있다. 일부 구현에서, 데이터 스트림의 타입은 데이터 스트림 내에 포함된 데이터 값의 크기에 기초하여 구별될 수 있다. 예로서, 온도 값 및 존재/부재 표시는 일반적으로 이미지 및 비디오 스트림보다 훨씬 작다. 따라서, 일부 구현은 작은 데이터 값과 큰 데이터 값을 구별할 것이다.
데이터 관리 정보는 대안으로서 또는 추가로 데이터 스트림이 저장될 곳을 지정할 수 있다. 예로서, 데이터 스트림, 데이터 스트림의 부분 또는 (인덱스, 태그 등과 같은) 데이터 스트림과 관련된 정보는 로컬로 그리고/또는 원격적으로 저장될 수 있다. 더욱이, 데이터의 일부 또는 전부가 복제될 수 있다.
데이터 관리 정보는 대안으로서 또는 추가로 데이터 스트림 등과 같은 데이터가 보호되어야 하는지를 지정할 수 있다. 예로서, 데이터는 암호화될 수 있거나, 보호되지 않을 수 있다. 더욱이, 다양한 암호화 스킴 중 하나 이상이 데이터 관리 정보에 의해 지정될 수 있다.
데이터 관리 정보는 또한 또는 대안으로서 데이터 액세스에 대한 정보를 포함할 수 있다. 일례에서, 사용자는 데이터 스트림 또는 관련 정보에 대한 판독 액세스를 다른 애플리케이션 또는 사용자에게 허락하거나 취소할 수 있다. 예로서, 정보는 하나의 사용자와 관련된 장치(102)로부터의 데이터가 다른 사용자와 공유되어야 하는지를 지시할 수 있다. 방금 설명된 데이터 관리 정보는 예시를 제공하고자 하는 것일 뿐이다. 데이터의 다른 특성이 데이터 관리 정보 내에 저장될 수 있다.
310에서, 아키텍처(300)는 태깅된 센서 데이터를 청킹한다. 전술한 바와 같이, 데이터는 연속적인 타임스탬핑된 객체 엔트리의 데이터 스트림을 포함한다. 데이터 레코드는 스트림마다 하나의 로그 내에 기록될 수 있으며, 이는 효율적인 첨부-전용 기록을 가능하게 할 수 있다. 본 명세서에서 사용되는 바와 같이, 청크는 연속 레코드 시퀀스 또는 소정 길이로 형성된다. 본 발명의 양태에 따르면, 청크는 저장 및 검색을 위한 데이터의 전송의 기본 단위이다. 예로서, 데이터 기록자는 개별 레코드 대신에 청크를 업로딩하며, 판독자는 청크를 페치한다. 일부 예에서는 예를 들어 단일의 공지된 레코드만이 관련하기 때문에 청크의 검색이 비효율적일 수 있지만, 실험은 시간 윈도로부터의 모든 레코드가 더 자주 관련되고, 청크가 시간 로컬리티(temporal locality)를 갖는 공통 질의를 더 효율적이게 한다는 것을 보여준다.
312에서, 청크는 압축되고/되거나 암호화될 수 있다. 압축 및/또는 암호화에 관한 명령은 306에서 수신된 데이터 관리 정보 내에 포함될 수 있다. 일반적으로, 청크의 압축은 전송 및 저장 효율을 향상시킨다. 하나의 예시적인 암호화 스킴에서, 소유자(즉, 장치(102) 또는 장치(108)의 소유자)에 의해 생성된 비밀 키가 청크를 암호화하는 데 사용된다. 이것은 인덱스를 암호화하는 데에도 사용될 수 있다. 이 예는 느린 취소(lazy revocation)를 이용하여 암호화 동작의 계산 오버헤드를 줄인다. 느린 취소는 퇴출된 판독자가 미래의 콘텐츠에 액세스하는 것을 방지할 뿐인데, 이는 취소 전의 콘텐츠가 이미 이러한 판독자에 의해 액세스 및 캐싱되었을 수 있기 때문이다. 또한, 이 예에서는, 해시 기반 키 회귀(hash-based key regression)가 키 관리 스킴으로서 이용된다. 이 스킴은 소유자가 허가된 판독자와 가장 최근의 키만을 공유하는 것을 가능하게 하며, 이 키에 기초하여 판독자는 모든 이전의 키를 도출하여 콘텐츠를 복호화할 수 있다. 이 예에서는 신뢰되는 키 서버를 이용하여 키를 배포할 수 있다. 이러한 방식으로, 스트림이 개방되면, 모든 후속 판독 및 기록이 저장 서버와 애플리케이션 사이에서 직접 발생한다. 또한, 이 예에서, 소유자는 판독자에 의해 검증될 수 있는 스트림 콘텐츠의 해시를 생성할 수 있다. 스트림 메타데이터의 일부로서 신선도 시간 윈도를 포함시킴으로써 신선도가 검사될 수 있다. 이 윈도는 데이터가 신선한 것으로 간주될 수 있을 때까지의 시간을 나타낼 수 있으며, 그러한 시간은 소유자가 새로운 데이터를 생성할 것으로 예상하는 주기성에 기초할 수 있다. 시간 윈도는 306에서 수신된 데이터 관리 정보의 일부일 수 있다. 소유자는 시간 윈도를 주기적으로 갱신 및 서명할 수 있으며, 판독자는 스트림이 개방될 때 시간 윈도를 검사할 수 있다.
314에서, 아키텍처(300)는 스트림 내의 청크의 인덱스를 생성한다. 인덱스는 예로서 시간 및/또는 태그에 의해 검색될 수 있다.
316 및 318에서, 청크 및 인덱스가 각각 저장된다. 본 발명의 구현에서, 청크는 원격적으로, 예로서 원격 저장소(118)에 저장되며, 인덱스는 로컬로, 예로서 로컬 저장소(116)에 저장되거나 달리 이용 가능하다. 일부 구현에서, 인덱스는 원격 저장소로부터 페치되며, 사본이 판독자 및 기록자에 로컬로 저장된다. 데이터는 여전히 원격적으로 존재할 수 있다. 인덱스를 로컬로 저장함으로써, 엔드포인트에서의 질의가 로컬 인덱스에 대하여 수행될 수 있다. 청크의 식별이 로컬로 행해질 수 있으므로, 원격 저장소에서 어떠한 계산(질의 엔진)도 필요하지 않다. 이러한 구현에서, 저장 서버는 데이터 판독/기록 API만을 제공할 수 있다. 이는 저장 시스템의 비용을 줄일 수 있다.
더욱이, 인덱스 및 청크의 개별 저장은 데이터 관리 프레임워크(114)가 저장 서버에 대한 그의 신뢰 추정을 완화하는 것을 가능하게 할 수 있다. 예로서, 청크를 암호화함으로써, 일부 구현은 데이터 기밀성의 손상 없이도 신뢰되지 않는 원격, 예로서 클라우드 제공자를 지원할 수 있다. 청크는 업로드 시에 암호화되고, 다운로드 후에 복호화될 수 있다. 탐색이 원격 저장소에서 수행될 수 있지만, 그러한 배열은 아마도 저장소 제공자가 더 많은 정보를 가질 것을 요구할 것이며, 이는 잠재적으로 청크의 보안성을 낮출 것이다.
일부 구현에서는 기록되는 유일한 데이터가 기존 스트림에 첨부되는 새로운 데이터이므로, 스트림은 매우 커질 수 있다. 전술한 청킹 및 저장 기술은 스트림의 연속 부분을 세그먼트로서 보관하면서도 효율적인 질의를 가능하게 하는 것을 지원한다. 각각의 청크의 저장 위치가 구성되어, 동일 스트림 내의 데이터가 상이한 저장소 제공자에 걸쳐 저장되는 것을 가능하게 할 수 있다. 따라서, 본 발명의 다양한 구현에서, 스트림은 로컬로, 신뢰되지 않는 서버에 원격적으로 저장되고, 신뢰성을 위해 복제되고/되거나, 비용 효과를 위해 다수의 저장소 제공자에 걸쳐 스트라이핑(striping)될 수 있다. 프레임워크를 이용하는 애플리케이션은 공간, 성능, 비용 및 신뢰성의 저장 요구를 우선 순위화할 수 있다.
도 4는 데이터 관리 프레임워크에서의 데이터의 검색을 촉진하기 위해 데이터 관리 프레임워크가 수행할 수 있는 프로세스의 예시적인 아키텍처(400)를 나타내는 블록도이다. 일부 예에서, 데이터 관리 프레임워크(114)는 모든 처리를 수행할 것이다. 다른 구현에서, 아키텍처(300)의 일부 또는 전부가 장치(들)(102) 또는 다른 곳에서 수행될 수 있다.
402에서, 아키텍처(400)는 인덱스의 질의를 수신한다. 일부 예에서, 질의는 314에서 생성된 인덱스와 같은 로컬 인덱스에 대하여 수행된다. 대안으로서 또는 추가로, 질의는 다수의 인덱스에 대하여 수행될 수 있다. 인덱스는 적절한 허가를 가정할 경우에 질의 사용자가 아닌 다른 사용자와 관련된 장치와 관련된 스트림을 포함하는 임의 수의 모니터링 장치(102)로부터의 스트림에 대한 것일 수 있다. 402에 대한 도시되지 않은 전 단계는 인덱스를 로컬로 수신하는 단계일 수 있다. 예로서, 인덱스 또는 인덱스의 더 새로운 버전이 원격적으로 저장된다. 다른 구현에서, 하나의 인덱스는 모든 센서로부터의 모든 데이터 스트림에 대한 정보를 포함할 수 있으며, 검색이 그러한 인덱스에 대해 수행된다.
인덱스는 적어도 인덱싱된 데이터에 대한 시간 및 태그 정보를 포함할 수 있다. 따라서, 질의는 소정 기간으로부터의 엔트리 또는 소정 태그로 태깅된 엔트리 또는 이들 양자를 요청할 수 있다. 인덱스는 질의를 통해 검색될 수 있는 추가 정보도 저장할 수 있다.
404에서, 아키텍처(400)는 질의를 충족시키는 정보를 포함하는 청크 또는 청크들을 결정한다. 일부 예에서는, 질의에 응답하여 개별 레코드가 검색되지 않는다. 대신, 다수의 레코드를 포함하는 청크가 반환된다. 청크의 특성으로 인해, 결정된 청크는 질의를 충족시키는 레코드 외에도 검색 질의와 매칭되지 않는 하나 이상의 레코드를 포함할 수 있다.
406에서, 아키텍처(400)는 402에서 수행된 질의를 충족시키는 레코드를 포함시키기 위해 404에서 결정된 하나 이상의 청크를 요청한다. 일부 예에서, 청크는 원격적으로, 예로서 클라우드 기반 저장 시스템에 저장되며, 따라서 청크는 원격 저장 시스템으로부터 요청된다. 다른 구현에서, 청크(들)는 저장소로부터 달리 검색될 수 있다.
408에서, 요청된 청크가 아키텍처(400)에 의해 수신되며, 필요한 경우에 410에서 청크가 복호화된다. 전술한 바와 같이, 청크의 암호화는 특히 인덱스가 저장되고 모든 질의가 로컬로 수행될 때 원격 저장소에서의 더 완화된 보안 표준을 촉진할 수 있다.
아키텍처(300, 400)의 예시적인 구현은 복수의 스트림 API를 이용하여 실행될 수 있다. 일 구현에 따른 그러한 스트림 API는 다음을 포함한다.
Figure 112016041199386-pct00001
이러한 예시적인 구현에서, 애플리케이션은 <HomeID, AppID> 쌍에 의해 식별되며, 판독 또는 기록하는 주역이다. 애플리케이션은 예로서 장치(108) 상에 저장되고/되거나 실행될 수 있다. 이 예에서, 생성 및 개방 시에, 애플리케이션은 스트림의 타입, 저장 위치, 및 보호 및 공유 요구를 포함할 수 있는 정책을 지정한다. 다른 예에서, 추가 또는 다른 정책도 애플리케이션에 의해 지정될 수 있다. 더욱이, 예는 애플리케이션이 정책을 지정하는 것을 설명하지만, 소유자와 같은 사용자가 정책을 지정할 수도 있다. 이 예에서, 2개의 타입의 스트림: ValueStream 또는 FileStream이 지정될 수 있다. 이러한 구현에서, ValueStream은 온도 판독치와 같은 작은 데이터 값에 대해 유용하고, FileStream은 이미지 또는 비디오와 같은 더 큰 값에 대해 유용하다. 2개의 스트림은 상이하게 저장될 수 있다.
이러한 예시적인 구현에서, 각각의 스트림은 하나의 기록자(예로서, 소유자) 및 하나 이상의 판독자를 갖는다. 기록자는 첨부를 이용하여 스트림에 시간-태그-값 레코드를 추가한다. 레코드는 다수의 태그-값 쌍 및 값에 대한 다수의 태그를 가질 수 있다. 태그 및 값은 예시적인 구현에서 IKey 및 IValue 인터페이스를 구현하여 해싱, 비교 및/또는 직렬화를 가능하게 하는 애플리케이션 정의 타입이다. 또한, 이러한 구현에서, 기록자는 다른 애플리케이션에 판독 액세스를 허가하고, 다른 애플리케이션으로부터 판독 액세스를 취소할 수 있다. 판독자는 태그 및 시간 (get*)을 이용하여 데이터를 필터링 및 질의할 수 있다. 위에서 열거되고 설명된 API는 최종 레코드에 대한 질의, 태그에 대한 최종 레코드, 시간 범위 및 샘플링 질의, 및 태그에 대한 범위 질의를 지원한다. 이러한 프레임워크에서, 범위 질의는 액세스될 때 주문에 따라 데이터를 페치하는 반복기를 반환한다.
이러한 예시적인 구현에서, 소유자는 먼저 새로운 데이터 스트림을 생성하고, 그것에 데이터 레코드를 첨부한다. 도 5는 스트림에 대한 데이터 레이아웃(500)을 나타낸다. 이 스트림은 집 또는 다른 빌딩의 외부에 설치될 수 있는 보안 카메라와 같은 감시 카메라로부터의 정보에 대한 ValueStream에 관한 이미지 데이터를 포함한다. 도시된 바와 같이, 500은 데이터 레코드의 로그(502) 및 태그(506)를 데이터 아이템 식별자(508)의 리스트에 맵핑하는 인덱스(504)를 포함한다. 이 예에서, 아이템 식별자(508)는 고정 크기 엔트리이며, 인덱스 내의 아이템 식별자의 리스트는 시간(예로서, 타임스탬프, ts)에 의해 분류된다. 이러한 배열은 범위 및 샘플링 질의에 대한 효율적인 이진 검색을 가능하게 할 수 있다. 예시적인 배열에서, 인덱스는 메모리에 상주하며, 파일에 의해 백킹(backing)될 수 있다. 로그(502) 내의 레코드는 디스크 상에, 예로서 원격적으로 저장되고, 애플리케이션에 의해 참조될 때 검색될 수 있다. 로그(502)는 연속 데이터 레코드(512)의 청크(510)로 분할된다. 청크(510)는 크기가 고정될 수 있다.
시간 경과에 따라 커질 수 있는 인덱스의 메모리 점유 공간을 줄이기 위해, 스트림이 보관될 수 있다. 일부 예에서, 스트림은 세그먼팅되며, 각각의 세그먼트는 그 자신의 로그 및 대응하는 인덱스를 갖는다. 따라서, 스트림은 세그먼트의 시간 순서 리스트로 간주될 수 있다. 이 예에서, 메모리 내의 인덱스의 크기가 구성 가능 임계치(indextresh)를 초과할 경우, 최종 세그먼트가 봉인되고, 그의 인덱스가 디스크로 플러시(flush)되며, 메모리 상주 인덱스를 갖는 새로운 세그먼트가 생성된다. 이러한 프레임워크에서, 스트림에 대한 기록은 최종 세그먼트로 가며, 스트림의 모든 다른 세그먼트는 판독 전용 엔티티이다. 스트림의 최종 세그먼트에 대한 인덱스는 메모리에 상주하며, 파일에 의해 백킹, 예로서 원격적으로 저장될 수 있다.
봉인된 세그먼트의 레이아웃이 도 6에 도시된다. 도 6은 컴팩트 인덱스(602)가 로컬 저장소에 대해 생성되었다는 점 외에는 도 5와 유사하다. 컴팩트 인덱스(602)는 태그(506) 및 각각의 태그에 대해, 대응하는 아이템 식별자 리스트 내의 최초 및 최종 식별자에 대한 타임스탬프(ts)는 물론, 인덱스 내의 이 리스트의 위치도 포함한다. 이 예에서, 인덱스(504)는 디스크 상에도 저장될 수 있으며, 컴팩트 인덱스는 로컬로 저장될 수 있다. 일부 구현에서, 인덱스는 또한 원격적으로 저장될 수 있지만, 로컬 질의를 위해 로컬로 페치될 수 있다.
이제, 일례에 따른 스트림 데이터의 업로딩이 설명된다. 설명되는 예에서, 각각의 주역(예로서, <HomeID, AppID> 쌍)은 비공개-공개 쌍과 관련될 수 있고, 각각의 스트림은 비밀 키(Kcon)를 이용하여 암호화될 수 있다. 비밀 키는 소유자에 의해 생성될 수 있다. 스트림이 동기화되거나 닫힐 때, 프레임워크는 인덱스를 디스크로 플러시하고, 세그먼트 로그를 청킹하고, 청크를 압축 및 암호화하고, 청크의 리스트, 여기서는 ChunkList를 생성할 수 있다. ChunkList는 각각의 세그먼트에 대해 세그먼트 내의 모든 청크의 순서화된 리스트 및 그들에 대응하는 해시(도 6에 Hash(Chunk #1), Hash(Chunk #2) 등으로 표시됨)이다. 이들 함수는 데이터 첨부로 인해 변경되었을 수 있는 모든 새로운 세그먼트에 대해 바람직하게 실행된다.
본 예에서, 프레임워크는 스트림 데이터와 함께 업로딩할 스트림의 무결성 메타데이터(MDint)를 생성한다. n이 스트림 내의 세그먼트의 수일 때, MDint는 다음과 같이 식 1에 따라 계산된다.
Figure 112016041199386-pct00002
TTL은 데이터 신선도에 대한 보증을 제공하며, 따라서 저장 서버로부터 페치된 데이터가 구성 가능 기록자 지정 일관성 기간보다 오래되지 않고 어떠한 이전에 검색된 데이터보다 오래되지 않은 것을 보증할 수 있다. MDint는 소유자가 데이터 신선도(TTL)를 보증하는 기간의 서명된 해시 및 세그먼트별 인덱스 및 ChunkList 해시이다. 청크, 갱신된 ChunkList 및 변경된 인덱스가 저장 서버에 업로딩될 수 있다. 이어서, MDint가 업로딩될 수 있다. 이어서, 스트림 메타데이터가 메타데이터 서버에 업로딩될 수 있다. 메타데이터 서버는 무허가 갱신을 방지하기 위한 신뢰되는 키 서버일 수 있다. 메타데이터/키 서버는 키 및 스트림의 메타데이터를 배포할 수 있다. 다른 구현에서, 메타데이터 서버 상에 저장될 정보는 최대 f개의 악성 서버를 견뎌내기 위해 2f+1개의 서버 상에 복제될 수 있다. 대안으로서, 비잔틴 정족수 시스템(Byzantine quorum system)이 이용될 수 있다.
사용시에, 메타데이터/키 서버는 주역 대 공개 키 맵핑은 물론, 데이터를 암호화 및 복호화하기 위한 대칭 콘텐츠 키(Kcon), 데이터에 대한 액세스를 갖는 주역(소유자를 포함함), MDint의 위치, 및 세그먼트별 위치 및 키 버전을 유지할 수 있다. Kcon은 자신의 공개 키를 이용하여 스트림에 대한 액세스를 갖는 각각의 주역에 대한 하나의 엔트리와 함께 저장을 위해 암호화될 수 있다.
애플리케이션 판독 액세스를 허가하기 위해, 일 구현에서, 소유자는 판독자의 공개 키로 암호화된 Kcon을 이용하여 스트림 메타데이터를 갱신한다. 판독 액세스의 취소는 전술한 API를 이용하여 스트림 메타데이터를 갱신하는 것을 포함한다. 일 구현에서, 소유자는 액세서의 리스트로부터 적절한 주역을 제거하고, 암호화된 콘텐츠 키를 제거하고, 모든 유효 주역에 대한 콘텐츠 키 및 키 버전을 만기 연장한다. 이 예에서, 세그먼트 내의 모든 청크는 콘텐츠 키의 동일 버전을 이용하여 암호화된다.
청크로부터 스트림 데이터를 판독하기 위해, 프레임워크는 스트림을 열고 스트림 메타데이터를 페치할 수 있다. 이어서, 이러한 정보를 이용하여, 스트림의 무결성 메타데이터(MDint)가 예로서 신뢰되지 않는 저장소로부터 페치될 수 있다. 무결성 메타데이터는 소유자의 공개 키를 이용하여 검증될 수 있고, 신선도는 MDint 내의 TTL을 이용하여 검증될 수 있다. 이어서, 판독자는 스트림의 모든 세그먼트에 대한 인덱스 및 ChunkList를 페치하고, MDint를 이용하여 그들의 무결성을 검증한다.
소유자는 인덱스 데이터의 무결성을 검증할 때 스트림 내에 새로운 데이터 레코드를 저장할 수 있다. 판독자에 대해, 모든 세그먼트에 대한 인덱스 및 ChunkList 무결정 검증이 완료되면, 인덱스는 페치되어야 하는 청크를 식별하는 데 사용된다. 전술한 바와 같이, 이 예에서는, 청크 레벨 무결성이 느리게, 예로서 청크를 다운로드하고 세그먼트의 ChunkList를 이용하여 그의 무결성을 검증함으로써 검사된다. 검증된 청크는 이 예에서 복호화 및/또는 압축 해제될 수 있으며, 청크는 후속 판독을 위해 로컬로, 예로서 캐시 내에 저장될 수 있다. 전술한 바와 같이, 검색된 청크(들)는 질의에 의해 실제로 요청된 정보에 추가적인 정보를 가질 수 있다. 더 구체적으로, 각각의 청크는 복수의 레코드를 가질 수 있고, 이들 중 일부는 질의를 충족시키고, 일부는 충족시키지 못할 수 있다. 따라서, 청크가 캐시 내에 저장될 때, 후속적인 상이한 질의도 캐싱된 청크에 의해 충족될 수 있으며, 결과적으로 요청된 정보의 검색이 더 효율화된다.
방금 설명된 것과 같은 예시적인 시스템은 .NET 프레임워크 v4.5를 통해 C#을 이용하여 구현될 수 있다. 예시적인 구현은 HomeOS 플랫폼 내에 통합될 수 있지만, 독립 라이브러리로도 사용될 수 있다. 클라이언트 라이브러리는 데이터 직렬화를 위해 프로토콜 버퍼를 이용할 수 있으며, 원격 저장을 위해 윈도 아주르(Windows Azure) 및 아마존 S3를 이용할 수 있다. 구현은 데이터를 원격적으로 판독 및 기록하기 위해 각각의 라이브러리를 이용할 수 있다. 일부 타입의 원격 저장소 상에서, 각각의 세그먼트는 컨테이너에 맵핑될 수 있고, 데이터의 인덱스 및 로그는 블롭에 맵핑되었고, 개별 청크는 데이터의 로그를 포함하는 블롭의 일부에 맵핑되었다. 다른 타입의 원격 저장소 상에서, 각각의 세그먼트는 버킷에 맵핑되었고, 인덱스는 객체에 맵핑되었고, 로그의 청크는 개별 객체에 맵핑되었다.
예시적인 조항
A: 복수의 레코드 및 상기 레코드 각각과 관련된 시간 식별자를 포함하는 시계열 데이터의 스트림을 복수의 장치로부터 수신하는 단계; 하나 이상의 태그를 상기 레코드 중 개별 레코드와 관련시키는 단계; 상기 스트림을 복수의 연속 청크로 청킹하는 단계 - 상기 연속 청크 각각은 복수의 레코드를 포함함 -; 상기 시간 식별자와 상기 하나 이상의 태그를 관련시키는 인덱스를 생성하는 단계; 상기 청크 각각을 제1 원격 저장 위치로 전송하는 단계; 및 상기 인덱스를 제2 로컬 저장 위치에 저장하는 단계를 포함하는 방법.
B: 단락 A에 있어서, 상기 복수의 장치는 제1 사용자와 관련된 제1 물리 위치와 관련되고, 상기 방법은 상기 인덱스의 질의를 수신하는 단계; 상기 질의를 충족시키는 하나 이상의 레코드를 결정하는 단계; 및 상기 질의를 충족시키는 상기 하나 이상의 레코드를 포함하는 상기 하나 이상의 청크를 상기 제1 원격 저장 위치로부터 검색하는 단계를 더 포함하는 방법.
C: 단락 A 또는 B에 있어서, 상기 질의는 시간 요구 또는 태그 식별자 중 적어도 하나를 포함하는 방법.
D: 단락 A-C 중 어느 하나에 있어서, 검색되는 상기 청크는 상기 질의를 충족시키는 상기 하나 이상의 레코드에 추가적인 레코드를 포함하는 방법.
E: 단락 A-D 중 어느 하나에 있어서, 사용자가 상기 인덱스를 질의할 수 있는 사용자 인터페이스의 표시를 지시하는 단계를 더 포함하고, 상기 인덱스의 질의를 수신하는 단계는 상기 사용자 인터페이스와의 사용자 상호작용에 기초하는 방법.
F: 단락 B-E 중 어느 하나에 있어서, 상기 제1 물리 위치는 제1 집이고, 상기 복수의 장치는 상기 제1 집에 있는 감시 장치이고, 제2 물리 위치는 제2 집인 방법.
G: 단락 A-F 중 어느 하나에 있어서, 상기 인덱스는 상기 레코드를 갖지 않는 방법.
H: 단락 A-G 중 어느 하나의 방법을 수행하도록 컴퓨터를 구성하기 위한 컴퓨터 실행 가능 명령을 갖는 컴퓨터 판독 가능 매체.
I: 단락 A-G 중 어느 하나의 방법을 수행하도록 컴퓨터를 구성하기 위한 컴퓨터 실행 가능 명령을 갖는 컴퓨터 판독 가능 매체를 포함하고, 처리 유닛이 단락 A-G 중 어느 하나의 상기 방법을 수행하기 위해 상기 명령을 실행하도록 적응되는 장치.
J: 하나 이상의 모니터링 장치에 통신가능하게 결합되는 하나 이상의 컴퓨팅 장치를 포함하고, 상기 모니터링 장치의 각각은 하나 이상의 센서를 갖고, 상기 하나 이상의 컴퓨팅 장치는 상기 센서로부터 데이터 레코드의 스트림을 수신하기 위한 통신 인터페이스, 하나 이상의 태그를 상기 데이터 레코드 내의 객체와 관련시켜, 태깅된 데이터 레코드를 생성하기 위한 태깅 모듈, 상기 태그와 상기 태깅된 데이터 레코드 내의 타임스탬프 간의 관련성을 포함하는 검색 가능 인덱스를 생성하기 위한 인덱싱 모듈, 및 상기 태깅된 데이터 레코드를 복수의 연속 청크로 분리하기 위한 청킹 모듈 - 각각의 청크는 복수의 상기 태깅된 데이터 레코드를 포함함 -을 포함하는 시스템.
K: 단락 J에 있어서, 상기 하나 이상의 컴퓨팅 장치에 통신가능하게 결합되는 질의 인터페이스를 더 포함하고, 상기 질의 인터페이스를 통해 상기 검색 가능 인덱스가 질의되는 시스템.
L: 단락 J 또는 단락 K에 있어서, 상기 복수의 청크를 저장하기 위해 상기 하나 이상의 컴퓨팅 장치에 통신가능하게 결합되는 제1 저장소; 및 상기 검색 가능 인덱스를 질의하기 위해 상기 하나 이상의 컴퓨팅 장치에 통신가능하게 결합되는 제2 저장소를 더 포함하는 시스템.
M: 단락 J-L 중 어느 하나에 있어서, 상기 하나 이상의 컴퓨팅 장치는 상기 청크를 암호화하기 위한 암호화 모듈을 더 포함하는 장치.
N: 컴퓨터 실행 가능 명령을 갖는 하나 이상의 컴퓨터 판독 가능 매체로서, 상기 컴퓨터 실행 가능 명령은 실행시에, 제1 사용자와 관련된 제1 위치를 감시하는 감시 장치로부터 시계열 데이터의 스트림을 수신하는 동작 - 상기 시계열 데이터는 상기 감시 장치에 의해 감지된 하나 이상의 레코드 및 상기 하나 이상의 레코드 중 개별 레코드에 대한 하나 이상의 타임스탬프를 포함함 -; 상기 하나 이상의 타임스탬프 중 개별 타임스탬프를 하나 이상의 태그와 관련시키는 인덱스를 상기 제1 위치에 로컬 저장 장치 상에 저장하는 동작 - 상기 태그 각각은 상기 하나 이상의 객체의 하나 이상의 특징을 식별함 -; 시계열 데이터의 상기 스트림의 적어도 일부가 원격 저장 장치에 저장되게 하는 동작; 상기 제1 위치와 다른 제2 위치와 관련된 제2 사용자로부터 상기 인덱스의 질의를 수신하는 동작; 상기 질의에 응답하여, 상기 질의를 충족시키는 상기 시계열 데이터의 하나 이상의 세그먼트를 식별하는 동작; 및 상기 질의를 충족시키는 상기 시계열 데이터의 상기 하나 이상의 세그먼트를 상기 원격 저장 장치로부터 검색하는 동작을 포함하는 동작을 수행하도록 컴퓨터를 구성하는 매체.
O: 단락 N에 있어서, 상기 감시 장치는 카메라를 포함하고, 상기 레코드는 상기 카메라에 의해 캡처된 이미지를 포함하는 매체.
P: 단락 N 또는 O에 있어서, 상기 태그는 상기 카메라에 의해 캡처된 상기 이미지 내의 객체의 텍스트 식별자인 매체.
Q: 단락 N에 있어서, 상기 감시 장치는 온도계, 근접 검출기 또는 유틸리티 미터 중 적어도 하나를 포함하는 매체.
R: 단락 N-Q 중 어느 하나에 있어서, 상기 태그는 시계열 데이터의 상기 스트림과 함께 수신되는 매체.
S: 단락 N-R 중 어느 하나에 있어서, 상기 스트림의 상기 적어도 일부가 저장되게 하는 상기 동작은 상기 스트림을 청킹하고 청크를 저장 장치로 전송하는 동작을 포함하는 매체.
T: 단락 S에 있어서, 상기 청크를 압축하는 동작을 더 포함하는 매체.
U: 단락 S 또는 단락 T에 있어서, 상기 청크를 암호화하는 동작을 더 포함하는 매체.
V: 단락 S-U 중 어느 하나에 있어서, 상기 인덱스는 상기 청크의 인덱스를 포함하는 매체.
결론
기술은 구조적 특징 및/또는 방법적 액트에 고유한 언어로 설명되었지만, 첨부된 청구항은 설명된 특징 또는 액트로 반드시 한정되지는 않는다는 것을 이해해야 한다. 오히려, 특징 및 액트는 그러한 기술의 예시적인 구현으로서 설명된다.
예시적인 프로세스의 동작은 개별 블록 내에 예시되며, 그러한 블록을 참조하여 요약된다. 프로세스는 블록의 논리적 흐름으로서 예시되며, 각각의 블록은 하드웨어, 소프트웨어 또는 이들의 조합에서 구현될 수 있는 하나 이상의 동작을 나타낼 수 있다. 소프트웨어와 관련하여, 동작은 하나 이상의 프로세서에 의해 실행될 때 하나 이상의 프로세서가 설명된 동작을 수행하는 것을 가능하게 하는, 하나 이상의 컴퓨터 판독 가능 매체 상에 저장된 컴퓨터 실행 가능 명령을 나타낸다. 일반적으로, 컴퓨터 실행 가능 명령은 특정 기능을 수행하거나 특정 추상 데이터 타입을 구현하는 루틴, 프로그램, 객체, 모듈, 컴포넌트, 데이터 구조 등을 포함한다. 동작이 설명되는 순서는 한정으로서 해석되는 것을 의도하지 않으며, 임의 수의 설명된 동작이 설명된 프로세스를 구현하기 위해 임의 순서로 실행되고, 임의 순서로 결합되고, 다수의 하위 동작으로 세분되고/되거나, 병렬로 실행될 수 있다. 설명된 프로세스는 하나 이상의 내부 또는 외부 CPU 또는 GPU와 같은 하나 이상의 장치(들) 및/또는 FPGA, DSP 또는 다른 타입의 가속기와 같은 하나 이상의 하드웨어 로직과 관련된 자원에 의해 수행될 수 있다.
전술한 모든 방법 및 프로세스는 하나 이상의 범용 컴퓨터 또는 프로세서에 의해 실행되는 소프트웨어 코드 모듈 내에 구현되고, 그를 통해 완전히 자동화될 수 있다. 코드 모듈은 임의 타입의 컴퓨터 판독 가능 저장 매체 또는 다른 컴퓨터 저장 장치 내에 저장될 수 있다. 방법 중 일부 또는 전부는 대안으로서 특수 컴퓨터 하드웨어에서 구현될 수 있다.
'할 수 있다'거나 '할 수도 있다'와 같은 가정어구들은, 특별히 달리 언급되지 않는 한, 소정 예들은 소정 특징, 요소 및/또는 단계를 포함하는 반면에 다른 예들은 포함하지 않는다는 것을 설명하기 위한 상황 내에서 이해된다. 따라서, 이러한 가정어구들은 일반적으로, 소정 특징, 요소 및/또는 단계가 하나 이상의 예에 대해 어떠한 식으로든 요구된다거나 또는 하나 이상의 예가 사용자 입력 또는 프롬프팅을 갖거나 갖지 않고서 소정 특징, 요소 및/또는 단계가 임의의 특정 예에 포함되거나 그 안에서 수행되어야 하는지를 결정하기 위한 로직을 반드시 포함한다는 것을 암시하고자 하는 것은 아니다. 표현 "X, Y 또는 Z 중 적어도 하나"와 같은 접속 언어는 특별히 달리 언급되지 않는 한, 아이템, 용어 등이 X, Y 또는 Z 또는 이들의 조합 또는 하위 조합 중 어느 하나일 수 있다는 것을 설명하는 것으로 이해되어야 한다.
본 명세서에서 설명되고/되거나 첨부 도면에 도시된 흐름도 내의 임의의 루틴 설명, 요소 또는 블록은 루틴에서 특정 로직 기능 또는 요소를 구현하기 위한 하나 이상의 실행 가능 명령을 포함하는 코드의 모듈, 세그먼트 또는 부분을 잠재적으로 나타내는 것으로 이해되어야 한다. 이 분야의 기술자에 의해 이해되는 바와 같이, 필요한 기능에 따라 요소 또는 기능이 삭제되거나 실질적으로 동시 또는 역순을 포함하는 도시 또는 설명된 것과 다른 순서로 실행될 수 있는 대안적 구현이 본 명세서에서 설명된 예의 범위 내에 포함된다. 전술한 예에 대해 많은 변경 및 수정이 이루어질 수 있고, 그러한 예의 요소는 다른 허용 가능 예 사이에 존재하는 것으로 이해되어야 한다는 것을 강조한다. 모든 그러한 수정 및 변경은 본 발명의 범위 내에 포함되고 아래의 청구범위에 의해 보호되는 것을 의도한다.

Claims (17)

  1. 제1 물리 위치와 연관된 장치로부터 하나 이상의 감시 카메라의 시계열 데이터의 스트림(a stream of time-series data)을 수신하는 단계 - 상기 스트림은 시간적으로 순서화된 복수의 레코드를 포함하고, 각각의 레코드는 타임스탬프 및 하나 이상의 태그를 가지며, 상기 복수의 레코드는 제1 타임스탬프 및 제1 태그를 가진 제1 레코드, 제2 타임스탬프 및 제2 태그를 가진 제2 레코드, 및 제3 타임스탬프 및 상기 제1 태그를 가진 제3 레코드를 포함하고, 상기 제1 태그와 상기 제2 태그는 상이한 태그이며, 상기 제1 레코드와 상기 제2 레코드는 시간적으로 연속적이고 상기 제3 레코드는 시간적으로 상기 제1 레코드 및 상기 제2 레코드 이후임 - 와,
    상기 스트림을 제1 청크(chunk) 및 제2 청크로 청킹(chunking)하는 단계 - 상기 제1 청크는 상기 제1 레코드 및 상기 제2 레코드를 포함하고, 상기 제2 청크는 상기 제3 레코드를 포함함 - 와,
    상기 제1 태그를 상기 제1 타임스탬프 및 상기 제3 타임스탬프와 연관시키고 상기 제2 태그를 상기 제2 타임스탬프와 연관시키는 인덱스를 생성하는 단계 - 상기 인덱스는 상기 하나 이상의 태그를 데이터 아이템 식별자의 리스트에 맵핑하고, 각각의 데이터 아이템 식별자는 대응하는 태그에 대한 타임스탬프를 포함하며, 상기 데이터 아이템 식별자의 리스트는 효율적인 이진 검색을 가능하게 하기 위해 시간별로 분류됨 - 와,
    상기 하나 이상의 태그를 포함하는 컴팩트 인덱스를 생성하는 단계 - 상기 하나 이상의 태그의 각각의 태그는 대응하는 데이터 아이템 식별자의 리스트 내의 최초 식별자 및 최종 식별자에 대한 타임스탬프 및 상기 인덱스 내의 상기 대응하는 데이터 아이템 식별자의 리스트의 위치를 포함함 - 와,
    로컬 저장소에 상기 컴팩트 인덱스를 저장하는 단계와,
    적어도 하나의 제1 원격 저장 위치로 상기 제1 청크 및 상기 제2 청크를 송신하는 단계와,
    제2 저장 위치에 상기 인덱스를 저장하는 단계와,
    제2 물리 위치와 연관된 제2 사용자 장치로부터의 상기 인덱스의 질의를 수신하는 단계 - 상기 질의는 상기 제1 태그와 연관된 레코드를 리턴하기 위한 요청을 포함함- 와,
    상기 컴팩트 인덱스에 액세스하여 상기 질의에 기초하여 상기 인덱스 내의 상기 대응하는 데이터 아이템 식별자의 리스트의 위치를 결정하는 단계와,
    상기 인덱스로부터 상기 제1 청크 및 상기 제2 청크가 상기 제1 태그와 연관되어 있는지를 판정하는 단계와,
    상기 제1 원격 저장 위치로부터 상기 제1 청크 및 상기 제2 청크를 검색하는 단계를 포함하는
    방법.
  2. 제1항에 있어서,
    상기 질의는 시간 요구 또는 태그 식별자 중 적어도 하나를 포함하는
    방법.
  3. 제2항에 있어서,
    검색된 상기 하나 이상의 청크는 상기 질의를 충족시키는 상기 하나 이상의 레코드에 추가적인 레코드를 포함하는
    방법.
  4. 제1항에 있어서,
    사용자가 상기 인덱스에 대해 질의할 수 있는 사용자 인터페이스의 표시를 지시하는 단계를 더 포함하되,
    상기 인덱스의 질의를 수신하는 단계는 상기 사용자 인터페이스와의 사용자 상호작용에 기초하는
    방법.
  5. 제1항에 있어서,
    상기 제1 물리 위치는 제1 집이고, 상기 복수의 장치는 상기 제1 집에 있는 감시 장치이고, 상기 제2 물리 위치는 제2 집인
    방법.
  6. 제1항에 있어서,
    상기 인덱스는 상기 레코드를 갖지 않는
    방법.
  7. 시스템으로서,
    하나 이상의 모니터링 장치에 통신가능하게 결합되는 하나 이상의 컴퓨팅 장치를 포함하되,
    상기 모니터링 장치의 각각은 하나 이상의 센서를 갖고, 상기 하나 이상의 컴퓨팅 장치는 컴퓨터 실행가능 명령어가 저장된 하나 이상의 비일시적 컴퓨터 저장 매체를 포함하며, 상기 컴퓨터 실행가능 명령어는 상기 컴퓨팅 장치에 의해 실행될 때 동작들을 수행하며,
    상기 동작들은,
    제1 물리 위치와 연관된 상기 하나 이상의 컴퓨팅 장치 중 제1 컴퓨팅 장치로부터 하나 이상의 감시 카메라의 센서로부터 데이터 레코드의 스트림을 수신하는 것 - 상기 스트림은 시간적으로 순서화된 복수의 데이터 레코드를 포함하고, 각각의 데이터 레코드는 타임스탬프 및 하나 이상의 태그를 가지며, 상기 복수의 데이터 레코드는 제1 타임스탬프 및 제1 태그를 가진 제1 레코드, 제2 타임스탬프 및 제2 태그를 가진 제2 레코드, 및 제3 타임스탬프 및 상기 제1 태그를 가진 제3 레코드를 포함하고, 상기 제1 레코드와 상기 제2 레코드는 시간적으로 연속적이고 상기 제3 레코드는 시간적으로 상기 제1 레코드 및 상기 제2 레코드 이후임 - 과,
    상기 제1 태그를 상기 제1 타임스탬프 및 상기 제3 타임스탬프와 연관시키고 상기 제2 태그를 상기 제2 타임스탬프와 연관시키는 검색 가능 인덱스를 생성하는 것 - 상기 검색 가능 인덱스는 상기 하나 이상의 태그를 데이터 아이템 식별자의 리스트에 맵핑하고, 각각의 데이터 아이템 식별자는 대응하는 태그에 대한 타임스탬프를 포함하며, 상기 데이터 아이템 식별자의 리스트는 효율적인 이진 검색을 가능하게 하기 위해 시간별로 분류됨 - 과,
    상기 스트림을 복수의 연속 청크로 분리하는 것 - 상기 복수의 연속 청크는 상기 제1 레코드 및 상기 제2 레코드를 포함하는 제1 청크 및 상기 제3 레코드를 포함하는 제2 청크를 포함함 - 과,
    상기 하나 이상의 태그를 포함하는 컴팩트 인덱스를 생성하는 것 - 상기 하나 이상의 태그의 각각의 태그는 대응하는 데이터 아이템 식별자의 리스트 내의 최초 식별자 및 최종 식별자에 대한 타임스탬프 및 상기 인덱스 내의 상기 대응하는 데이터 아이템 식별자의 리스트의 위치를 포함함 - 과,
    로컬 저장소에 상기 컴팩트 인덱스를 저장하는 것과,
    적어도 하나의 제1 원격 저장 위치로 상기 제1 청크 및 상기 제2 청크를 송신하는 것과,
    제2 저장 위치에 상기 인덱스를 저장하는 것과,
    제2 물리 위치와 연관된 상기 하나 이상의 컴퓨팅 장치 중 제2 컴퓨팅 장치로부터의 상기 인덱스의 질의를 수신하는 것 - 상기 질의는 상기 제1 태그와 연관된 레코드를 리턴하기 위한 요청을 포함함- 과,
    상기 컴팩트 인덱스에 액세스하여 상기 질의에 기초하여 상기 인덱스 내의 상기 대응하는 데이터 아이템 식별자의 리스트의 위치를 결정하는 것과,
    상기 인덱스로부터 상기 제1 청크 및 상기 제2 청크가 상기 제1 태그와 연관되어 있는지를 판정하는 것과,
    상기 제1 원격 저장 위치로부터 상기 제1 청크 및 상기 제2 청크를 검색하는 것을 포함하는
    시스템.
  8. 제7항에 있어서,
    상기 동작들은 상기 청크를 암호화하는 것을 더 포함하는
    시스템.
  9. 컴퓨터 실행가능 명령어가 저장된 하나 이상의 컴퓨터 판독가능 저장 매체로서,
    상기 컴퓨터 실행가능 명령어는, 실행시에, 컴퓨터가 동작들을 수행하도록 구성하되,
    상기 동작들은,
    제1 사용자와 연관된 제1 위치를 감시하는 하나 이상의 감시 장치의 시계열 데이터의 스트림을 수신하는 것 - 상기 시계열 데이터의 스트림은 시간적으로 순서화되며 상기 하나 이상의 감시 장치에 의해 감지된 복수의 레코드를 포함하고, 각각의 레코드는 타임스탬프 및 하나 이상의 태그를 가지며, 상기 복수의 레코드는 연관된 제1 타임스탬프 및 제1 태그를 가진 제1 레코드, 연관된 제2 타임스탬프 및 제2 태그를 가진 제2 레코드, 및 연관된 제3 타임스탬프 및 상기 제1 태그를 가진 제3 레코드를 포함하고, 상기 제1 위치의 제1 특징을 식별하는 상기 제1 태그는 상기 제1 레코드 및 상기 제3 레코드와 연관되고, 상기 제1 위치의 제2 특징을 식별하는 상기 제2 태그는 상기 제2 레코드와 연관되며, 상기 제2 특징은 상기 제1 특징과 상이하며, 상기 제1 레코드와 상기 제2 레코드는 시간적으로 연속적이고 상기 제3 레코드는 시간적으로 상기 제1 레코드 및 상기 제2 레코드 이후임 - 와,
    상기 제1 태그를 상기 제1 타임스탬프 및 상기 제3 타임스탬프와 연관시키고 상기 제2 태그를 상기 제2 타임스탬프와 연관시키는 인덱스를 상기 제1 위치에 로컬인 저장 장치에 저장하는 것 - 상기 인덱스는 상기 하나 이상의 태그를 데이터 아이템 식별자의 리스트에 맵핑하고, 각각의 데이터 아이템 식별자는 대응하는 태그에 대한 타임스탬프를 포함하며, 상기 데이터 아이템 식별자의 리스트는 효율적인 이진 검색을 가능하게 하기 위해 시간별로 분류됨 - 과,
    상기 하나 이상의 태그를 포함하는 컴팩트 인덱스를 생성하는 것 - 상기 하나 이상의 태그의 각각의 태그는 대응하는 데이터 아이템 식별자의 리스트 내의 최초 식별자 및 최종 식별자에 대한 타임스탬프 및 상기 인덱스 내의 상기 대응하는 데이터 아이템 식별자의 리스트의 위치를 포함함 - 과,
    로컬 저장소에 상기 컴팩트 인덱스를 저장하는 것과,
    상기 시계열 데이터의 스트림의 적어도 일부가 상기 제1 레코드 및 상기 제2 레코드를 포함하는 제1 청크 및 상기 제3 레코드를 포함하는 제2 청크로서 원격 저장 장치에 저장되게 하는 것과,
    상기 제1 위치와는 다른 제2 위치와 연관된 제2 사용자로부터의 상기 인덱스의 질의를 수신하는 것 - 상기 질의는 상기 제1 태그 또는 상기 제2 태그 중 적어도 하나와 연관된 레코드를 요청함 - 과,
    상기 컴팩트 인덱스에 액세스하여 상기 질의에 기초하여 상기 인덱스 내의 상기 대응하는 데이터 아이템 식별자의 리스트의 위치를 결정하는 것과,
    상기 레코드를 요청하는 질의가 상기 제1 태그와 연관된다는 것에 응답하여 상기 제1 청크 및 상기 제2 청크를 식별하는 것과,
    상기 원격 저장 장치로부터 상기 제1 청크 및 상기 제2 청크를 검색하는 것을 포함하는
    컴퓨터 판독가능 저장 매체.
  10. 제9항에 있어서,
    상기 하나 이상의 감시 장치의 각각은 카메라를 포함하고, 상기 레코드는 상기 카메라에 의해 캡처된 이미지를 포함하는
    컴퓨터 판독가능 저장 매체.
  11. 제10항에 있어서,
    상기 태그는 상기 카메라에 의해 캡처된 상기 이미지 내의 객체의 텍스트 식별자인
    컴퓨터 판독가능 저장 매체.
  12. 제9항에 있어서,
    상기 감시 장치는 온도계, 근접 검출기(proximity detector) 또는 유틸리티 미터(utility meter) 중 적어도 하나를 포함하는
    컴퓨터 판독가능 저장 매체.
  13. 제12항에 있어서,
    상기 태그는 상기 시계열 데이터의 스트림과 함께 수신되는
    컴퓨터 판독가능 저장 매체.
  14. 제12항에 있어서,
    상기 스트림의 적어도 일부가 저장되게 하는 것은 상기 스트림을 청킹하고 상기 청크를 저장 장치로 전송하는 것을 포함하는
    컴퓨터 판독가능 저장 매체.
  15. 제14항에 있어서,
    상기 청크를 압축하는 것을 더 포함하는
    컴퓨터 판독가능 저장 매체.
  16. 제14항에 있어서,
    상기 청크를 암호화하는 것을 더 포함하는
    컴퓨터 판독가능 저장 매체.
  17. 제14항에 있어서,
    상기 인덱스는 상기 청크의 인덱스를 포함하는
    컴퓨터 판독가능 저장 매체.
KR1020167011423A 2013-10-30 2014-10-29 피접속 장치에 대한 데이터 관리 기법 KR102231976B1 (ko)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US201361897755P 2013-10-30 2013-10-30
US61/897,755 2013-10-30
US14/340,514 US10061791B2 (en) 2013-10-30 2014-07-24 Data management for connected devices
US14/340,514 2014-07-24
PCT/US2014/062760 WO2015066101A1 (en) 2013-10-30 2014-10-29 Data management for connected devices

Publications (2)

Publication Number Publication Date
KR20160077080A KR20160077080A (ko) 2016-07-01
KR102231976B1 true KR102231976B1 (ko) 2021-03-24

Family

ID=52996657

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020167011423A KR102231976B1 (ko) 2013-10-30 2014-10-29 피접속 장치에 대한 데이터 관리 기법

Country Status (17)

Country Link
US (1) US10061791B2 (ko)
EP (1) EP3063764B1 (ko)
JP (1) JP6426174B2 (ko)
KR (1) KR102231976B1 (ko)
CN (1) CN105765659B (ko)
AU (1) AU2014342430B2 (ko)
BR (1) BR112016007138A2 (ko)
CA (1) CA2924997C (ko)
CL (1) CL2016001022A1 (ko)
HK (1) HK1223729A1 (ko)
IL (1) IL244460B (ko)
MX (1) MX361303B (ko)
MY (1) MY182085A (ko)
PH (1) PH12016500957A1 (ko)
RU (1) RU2670573C2 (ko)
SG (2) SG10201803174XA (ko)
WO (1) WO2015066101A1 (ko)

Families Citing this family (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10324942B2 (en) * 2013-07-26 2019-06-18 Snap Inc. Segment data visibility and management in a distributed database of time stamped records
US10417258B2 (en) 2013-12-19 2019-09-17 Exposit Labs, Inc. Interactive multi-dimensional nested table supporting scalable real-time querying of large data volumes
US10019591B1 (en) * 2014-12-23 2018-07-10 Amazon Technologies, Inc. Low-latency media sharing
US10430441B1 (en) * 2015-08-19 2019-10-01 Amazon Technologies, Inc. Tagging resources of a remote computing service based on locality
JP2018511841A (ja) * 2015-09-11 2018-04-26 株式会社東芝 情報をユーザに伝達するための方法およびシステム
EP3353669A4 (en) * 2015-09-23 2019-04-24 Sensoriant, Inc. METHOD AND SYSTEM FOR USING DEVICE STATES AND USER PREFERENCES TO CREATE FRIENDLY ENVIRONMENTS
US11137980B1 (en) * 2016-09-27 2021-10-05 Amazon Technologies, Inc. Monotonic time-based data storage
CN107919970A (zh) * 2016-10-08 2018-04-17 南京联成科技发展股份有限公司 一种安全运维服务云平台的日志管理实现方法及系统
US10268417B1 (en) * 2017-10-24 2019-04-23 EMC IP Holding Company LLC Batch mode object creation in an elastic cloud data storage environment
CN111316279A (zh) * 2017-11-02 2020-06-19 区块链控股有限公司 用于连接区块链与数字孪生集合的计算机实现的系统和方法
CN111989661A (zh) * 2018-01-26 2020-11-24 威盖特技术美国有限合伙人公司 实时多变量时间序列搜索
CN108280015B (zh) * 2018-02-07 2022-10-14 福建星瑞格软件有限公司 基于大数据的集群服务器日志实时处理方法及计算机设备
US11314779B1 (en) * 2018-05-31 2022-04-26 Amazon Technologies, Inc. Managing timestamps in a sequential update stream recording changes to a database partition
KR102177489B1 (ko) * 2018-08-17 2020-11-11 주식회사 마크베이스 센서 태그 데이터를 위한 색인 검색 방법 및 장치
RU2714219C1 (ru) 2018-09-14 2020-02-13 Общество С Ограниченной Ответственностью "Яндекс" Способ и система для планирования передачи операций ввода/вывода
RU2731321C2 (ru) 2018-09-14 2020-09-01 Общество С Ограниченной Ответственностью "Яндекс" Способ определения потенциальной неисправности запоминающего устройства
RU2718215C2 (ru) 2018-09-14 2020-03-31 Общество С Ограниченной Ответственностью "Яндекс" Система обработки данных и способ обнаружения затора в системе обработки данных
RU2714602C1 (ru) * 2018-10-09 2020-02-18 Общество С Ограниченной Ответственностью "Яндекс" Способ и система для обработки данных
RU2721235C2 (ru) 2018-10-09 2020-05-18 Общество С Ограниченной Ответственностью "Яндекс" Способ и система для маршрутизации и выполнения транзакций
RU2711348C1 (ru) 2018-10-15 2020-01-16 Общество С Ограниченной Ответственностью "Яндекс" Способ и система для обработки запросов в распределенной базе данных
CN111143113B (zh) 2018-11-02 2023-07-07 伊姆西Ip控股有限责任公司 复制元数据的方法、电子设备和计算机程序产品
RU2695499C1 (ru) * 2018-12-03 2019-07-23 Общество с ограниченной ответственностью "СМАРТЛАЙН" Способ и устройство для удаленного наблюдения за соблюдением правил техники безопасности сотрудниками
RU2714373C1 (ru) 2018-12-13 2020-02-14 Общество С Ограниченной Ответственностью "Яндекс" Способ и система для планирования выполнения операций ввода/вывода
RU2749649C2 (ru) 2018-12-21 2021-06-16 Общество С Ограниченной Ответственностью "Яндекс" Способ и система для планирования обработки операций ввода/вывода
RU2720951C1 (ru) 2018-12-29 2020-05-15 Общество С Ограниченной Ответственностью "Яндекс" Способ и распределенная компьютерная система для обработки данных
WO2020159397A1 (en) * 2019-01-30 2020-08-06 Siemens Aktiengesellschaft Method and computerized device for processing numeric time series data
RU2746042C1 (ru) 2019-02-06 2021-04-06 Общество С Ограниченной Ответственностью "Яндекс" Способ и система для передачи сообщения
CN112015729B (zh) * 2019-05-29 2024-04-02 核桃运算股份有限公司 数据管理装置、方法及其计算机存储介质
CN111104457A (zh) * 2019-10-30 2020-05-05 武汉大学 基于分布式数据库的海量时空数据管理方法
CN112732700B (zh) * 2021-01-25 2023-03-14 中冶赛迪信息技术(重庆)有限公司 一种轧钢生产数据切片方法、系统、介质及电子终端
US11496232B1 (en) * 2021-05-03 2022-11-08 Nihon Kohden Digital Health Solutions, Inc. Waveform synchronization system for data received from a network
US11899671B1 (en) * 2023-09-05 2024-02-13 Armada Systems Inc. Real-time search and retrieval of streaming sensor data
US11960515B1 (en) 2023-10-06 2024-04-16 Armada Systems, Inc. Edge computing units for operating conversational tools at local sites

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007074338A (ja) 2005-09-07 2007-03-22 Matsushita Electric Ind Co Ltd ネットワークカメラ防犯システム及びそのネットワークカメラ選択方法
JP2008092279A (ja) 2006-10-02 2008-04-17 Fuji Electric Systems Co Ltd 監視システム及び監視方法
US20080133561A1 (en) 2006-12-01 2008-06-05 Nec Laboratories America, Inc. Methods and systems for quick and efficient data management and/or processing
US20080246841A1 (en) 2007-04-03 2008-10-09 Taiming Chen Method and system for automatically generating personalized media collection for participants
US20090089845A1 (en) 2007-09-28 2009-04-02 William Rex Akers Video storage and retrieval system
JP2013008295A (ja) 2011-06-27 2013-01-10 Nippon Telegr & Teleph Corp <Ntt> 情報記録装置、情報記録方法およびプログラム
US20130080267A1 (en) 2011-09-26 2013-03-28 Unicorn Media, Inc. Single-url content delivery

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5689442A (en) 1995-03-22 1997-11-18 Witness Systems, Inc. Event surveillance system
JP4099973B2 (ja) * 2001-10-30 2008-06-11 松下電器産業株式会社 映像データ送信方法及び映像データ受信方法、並びに映像監視システム
EP1508862A1 (en) * 2003-08-21 2005-02-23 Deutsche Thomson-Brandt GmbH Method for seamless real-time splitting and concatenating of a data stream
US20080042830A1 (en) 2005-12-30 2008-02-21 Skyetek, Inc. Virtual rfid-based tag sensor
JP2008016896A (ja) * 2006-06-30 2008-01-24 Sony Corp 監視装置及び監視方法
US7930559B1 (en) * 2006-06-30 2011-04-19 Emc Corporation Decoupled data stream and access structures
US7504969B2 (en) * 2006-07-11 2009-03-17 Data Domain, Inc. Locality-based stream segmentation for data deduplication
US20090136208A1 (en) * 2007-11-28 2009-05-28 Flora Gilboa-Solomon Virtual Video Clipping and Ranking Based on Spatio-Temporal Metadata
US8290427B2 (en) * 2008-07-16 2012-10-16 Centurylink Intellectual Property Llc System and method for providing wireless security surveillance services accessible via a telecommunications device
US8401771B2 (en) * 2008-07-22 2013-03-19 Microsoft Corporation Discovering points of interest from users map annotations
US8925001B2 (en) * 2008-09-12 2014-12-30 At&T Intellectual Property I, L.P. Media stream generation based on a category of user expression
US8447740B1 (en) * 2008-11-14 2013-05-21 Emc Corporation Stream locality delta compression
US8458136B2 (en) * 2009-07-27 2013-06-04 International Business Machines Corporation Scheduling highly parallel jobs having global interdependencies
JP4992945B2 (ja) 2009-09-10 2012-08-08 株式会社日立製作所 ストリームデータ生成方法、ストリームデータ生成装置及びストリームデータ生成プログラム
KR101172586B1 (ko) * 2010-05-19 2012-08-08 한국과학기술원 미디어 클립 생성 방법 및 시스템
CN102446184B (zh) 2010-10-12 2013-06-19 上海可鲁系统软件有限公司 一种基于时间序列的工业数据存储及索引方法
US10394757B2 (en) 2010-11-18 2019-08-27 Microsoft Technology Licensing, Llc Scalable chunk store for data deduplication
US9225793B2 (en) 2011-01-28 2015-12-29 Cisco Technology, Inc. Aggregating sensor data
KR20120119790A (ko) * 2011-04-22 2012-10-31 삼성전자주식회사 미디어 데이터 전송 방법 및 장치와 미디어 데이터 수신 방법 및 장치
US8825626B1 (en) * 2011-08-23 2014-09-02 Emc Corporation Method and system for detecting unwanted content of files
US9143563B2 (en) 2011-11-11 2015-09-22 Rockwell Automation Technologies, Inc. Integrated and scalable architecture for accessing and delivering data
US8909641B2 (en) 2011-11-16 2014-12-09 Ptc Inc. Method for analyzing time series activity streams and devices thereof

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007074338A (ja) 2005-09-07 2007-03-22 Matsushita Electric Ind Co Ltd ネットワークカメラ防犯システム及びそのネットワークカメラ選択方法
JP2008092279A (ja) 2006-10-02 2008-04-17 Fuji Electric Systems Co Ltd 監視システム及び監視方法
US20080133561A1 (en) 2006-12-01 2008-06-05 Nec Laboratories America, Inc. Methods and systems for quick and efficient data management and/or processing
US20080246841A1 (en) 2007-04-03 2008-10-09 Taiming Chen Method and system for automatically generating personalized media collection for participants
US20090089845A1 (en) 2007-09-28 2009-04-02 William Rex Akers Video storage and retrieval system
JP2013008295A (ja) 2011-06-27 2013-01-10 Nippon Telegr & Teleph Corp <Ntt> 情報記録装置、情報記録方法およびプログラム
US20130080267A1 (en) 2011-09-26 2013-03-28 Unicorn Media, Inc. Single-url content delivery

Also Published As

Publication number Publication date
WO2015066101A1 (en) 2015-05-07
RU2016116811A3 (ko) 2018-05-04
US20150120749A1 (en) 2015-04-30
CN105765659A (zh) 2016-07-13
AU2014342430B2 (en) 2019-08-15
CL2016001022A1 (es) 2016-11-11
JP6426174B2 (ja) 2018-11-21
IL244460B (en) 2021-03-25
SG11201603009QA (en) 2016-05-30
MX2016005426A (es) 2016-08-11
RU2016116811A (ru) 2017-11-02
MY182085A (en) 2021-01-18
EP3063764B1 (en) 2021-01-06
MX361303B (es) 2018-12-03
US10061791B2 (en) 2018-08-28
CA2924997A1 (en) 2015-05-07
CA2924997C (en) 2021-06-08
AU2014342430A1 (en) 2016-03-31
BR112016007138A2 (pt) 2017-08-01
PH12016500957A1 (en) 2016-07-11
EP3063764A1 (en) 2016-09-07
IL244460A0 (en) 2016-04-21
KR20160077080A (ko) 2016-07-01
RU2670573C2 (ru) 2018-10-23
SG10201803174XA (en) 2018-06-28
HK1223729A1 (zh) 2017-08-04
JP2017504850A (ja) 2017-02-09
CN105765659B (zh) 2019-07-12

Similar Documents

Publication Publication Date Title
KR102231976B1 (ko) 피접속 장치에 대한 데이터 관리 기법
US20220188028A1 (en) Computational data storage systems
US10019180B1 (en) Snapshot data operation request processing
US8983967B2 (en) Data storage system having mutable objects incorporating time
CA2977025C (en) Automated integration of video evidence with data records
KR20150032193A (ko) 이벤트 타임라인 생성
US11099939B2 (en) Snapshot clustering techniques for multipart volumes
US10509767B2 (en) Systems and methods for managing snapshots of a file system volume
US20180121503A1 (en) Systems and methods for viewing and accessing data using tagging
US10423495B1 (en) Deduplication grouping
US9575680B1 (en) Deduplication rehydration
US10289493B1 (en) Data snapshot analysis systems and techniques
US10956373B1 (en) Page-based metadata system for distributed filesystem
US20220075769A1 (en) Logfile collection and consolidation
Breitinger et al. DFRWS EU 10-year review and future directions in Digital Forensic Research
US20240073224A1 (en) Systems and methods for deduplicating malware scan attempts in a network
US9842115B2 (en) Media asset proxies
CN112181975A (zh) 用于在数据仓库中创建数据库的方法和装置
EP3265930A1 (en) Automated integration of video evidence with data records

Legal Events

Date Code Title Description
E701 Decision to grant or registration of patent right
GRNT Written decision to grant