KR101852219B1 - 편집 가능 메타데이터를 포함하는 파일들을 보호하는 기법 - Google Patents

편집 가능 메타데이터를 포함하는 파일들을 보호하는 기법 Download PDF

Info

Publication number
KR101852219B1
KR101852219B1 KR1020137014151A KR20137014151A KR101852219B1 KR 101852219 B1 KR101852219 B1 KR 101852219B1 KR 1020137014151 A KR1020137014151 A KR 1020137014151A KR 20137014151 A KR20137014151 A KR 20137014151A KR 101852219 B1 KR101852219 B1 KR 101852219B1
Authority
KR
South Korea
Prior art keywords
file
content
metadata
changed
segment
Prior art date
Application number
KR1020137014151A
Other languages
English (en)
Other versions
KR20140047570A (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 KR20140047570A publication Critical patent/KR20140047570A/ko
Application granted granted Critical
Publication of KR101852219B1 publication Critical patent/KR101852219B1/ko

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/16Protection against loss of memory contents
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/14Error detection or correction of the data by redundancy in operation
    • G06F11/1402Saving, restoring, recovering or retrying
    • G06F11/1446Point-in-time backing up or restoration of persistent data
    • G06F11/1448Management of the data involved in backup or backup restore
    • G06F11/1451Management of the data involved in backup or backup restore by selection of backup contents
    • 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/13File access structures, e.g. distributed indices
    • G06F16/137Hash-based
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/10File systems; File servers
    • G06F16/16File or folder operations, e.g. details of user interfaces specifically adapted to file systems
    • G06F16/164File meta data generation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/83Indexing scheme relating to error detection, to error correction, and to monitoring the solution involving signatures

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Quality & Reliability (AREA)
  • Human Computer Interaction (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Bioethics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)

Abstract

본 명세서에 기술된 발명 대상의 양태는 콘텐츠 및 내장된 메타데이터 둘 모두를 포함할 수 있는 파일들의 데이터 보호에 관한 것이다. 양태들에 있어서, 파일이 변경되었다는 표시가 수신된다. 콘텐츠가 변경되었으면, 전체 파일 또는 단지 그 콘텐츠가 백업될 수 있다. 메타데이터만이 변경되었다면, 구현예에 따라 해당 메타데이터가 백업되거나 되지 않을 수 있다. 파일 내 메타데이터의 정확한 크기 및 위치를 판단하기 위해 파일을 파싱하는 대신, 파일이 헤드부, 중간부 및 테일부의 세 부분으로 분할될 수 있다. 그런 다음 파일의 메타데이터 및/또는 콘텐츠가 변경되었는지 여부를 판단하기 위해 이 부분들의 해시들이 사용될 수 있다.

Description

편집 가능 메타데이터를 포함하는 파일들을 보호하는 기법{PROTECTING FILES THAT INCLUDE EDITABLE METADATA}
파일들은 종종 메타데이터를 포함한다. 메타데이터를 포함하는 파일의 임의의 부분에 대한 변경은 백업 시스템이 그 파일을 백업 장치로 복사하도록 할 수 있다. 오늘날의 멀티미디어 및 기타 파일들의 크기로 인해, 파일에 대한 변경에 대응하여 그 파일의 여러 사본들을 생성하는 것은 백업 장치를 빠르게 채울 수 있다.
본 명세서에서 청구된 본 발명 대상은 위에서 기술된 것과 같은 환경들에서만 어떤 단점들을 해결하거나 동작하는 실시예들에 국한되지 않는다. 오히려, 이 배경 기술은 단지 본 명세서에 기술된 일부 실시예들이 실시될 수 있는 하나의 예시적 기술 영역을 예시하기 위해 제공된다.
요약하면, 본 명세서에 기술된 발명 대상의 양태들은 콘텐츠 및 내장된 메타데이터 둘 모두를 포함할 수 있는 파일들의 데이터 보호에 관한 것이다. 양태들에 있어서, 파일이 변경되었다는 표시가 수신된다. 콘텐츠가 변경되었으면, 파일 전체 또는 단지 그 콘텐츠만이 백업될 수 있다. 메타데이터만이 변경되었다면, 구현예에 따라 해당 메타데이터가 백업되거나 되지 않을 수 있다. 파일 내 메타데이터의 정확한 크기 및 위치를 판단하기 위해 파일을 파싱하는 대신, 파일이 헤드부, 중간부 및 테일부의 세 부분으로 분할될 수 있다. 그런 다음, 파일의 메타데이터 및/또는 콘텐츠가 변경되었는지 여부를 판단하기 위해 이 부분들의 해시들이 사용될 수 있다.
이 요약은 이하의 상세한 설명에 추가적으로 기술되는 본 발명의 일부 양태들을 간략히 식별하기 위해 제시된다. 이 요약내용은 청구된 주제의 주요하고 필수적 특징을 확인하도록 의도되거나 청구된 주제의 범위를 한정하는 데 사용되도록 의도된 것이 아니다.
"본 명세서에 기술된 본 발명(subject matter described herein)"이라는 문구는 문맥이 명백히 다르게 표시하지 않는다면 상세한 설명에 기술된 발명 대상을 표시한다. "양태들(aspets)"이라는 용어는 "적어도 하나의 양태(at least one aspect)"로서 해석되어야 한다. 상세한 설명에 기술된 발명 대상의 양태들에 대한 식별은 청구된 발명 대상의 주요 또는 필수적 특성들을 식별하도록 의도되는 것이 아니다.
본 명세서에 기술된 본 발명의 상술한 양태들 및 기타 양태들은 유사 참조 부호가 비슷한 구성요소들을 가리키는 첨부된 도면 안에서 예로서 도시되며 한정되는 것이 아니다.
도 1은 본 명세서에 기술된 본 발명의 양태들이 통합될 수 있는 범용 컴퓨팅 환경의 예를 나타낸 블록도이다.
도 2는 본 명세서에 기술된 본 발명의 양태들에 따라 메타데이터 및 그 안에 내장된 메타데이터를 가지는 파일을 일반적으로 나타낸 블록도이다.
도 3은 본 명세서에 기술된 본 발명의 양태들에 따라 헤드에 있는 메타데이터 및 그 뒤에 몇몇 압축 블록들을 가진 파일을 예시한 블록도이다.
도 4는 본 명세서에 기술된 본 발명의 양태들에 따라 구성된 장치를 나타낸 블록도이다.
도 5는 본 명세서에 기술된 본 발명의 양태들에 따라 일어날 수 있는 활동의 예들을 일반적으로 나타낸 흐름도이다.
정의
본 명세서에 사용된 바와 같이 "포함한다(includes)"는 용어 및 그 파생어들은 "포함하지만 국한되지 않는다(includes, but is not limited to)"는 것을 의미하는 개방 어미의 용어들로서 해석되어야 한다. "또는(or)"이라는 용어는 맥락이 명백히 다르게 지시하지 않는 한 "및/또는(and/or)"으로서 해석되어야 한다. "에 기반한(based on)"이라는 용어는 "에 적어도 부분적으로 기반한(at least in part on)"으로 해석되어야 한다. "일 실시예(one embodiment)"라는 용어는 "적어도 하나의 실시예(at least one embodiment)"로서 해석되어야 한다. "또 다른 실시예(another embodiment)"라는 용어는 "적어도 하나의 다른 실시예들(at least one other embodiment)"로서 해석되어야 한다.
본 명세서에 사용된 바와 같이, "a", "an" 및 "the"라는 용어는 지시된 항목이나 동작의 하나 이상을 포함한다. 특히, 청구범위에서 항목에 대한 참조는 일반적으로 적어도 하나의 그러한 항목이 존재한다는 것을 의미하며, 동작에 대한 참조는 해당 동작의 적어도 하나의 경우가 수행된다는 것을 의미한다.
데이터(data)라는 용어는 하나 이상의 컴퓨터 저장 요소들로 표현될 수 있는 어떤 것을 포함한다고 넓게 해석되어야 한다. 논리적으로, 데이터는 휘발성 또는 비휘발성 메모리 내에서 일련의 1들과 0들로서 표현될 수 있다. 비이진 저장 매체를 가지는 컴퓨터들에서, 데이터는 저장 매체의 기능에 따라 표현될 수 있다. 데이터는 숫자, 문자 등과 같은 단순 데이터 타입들, 계층형, 링크형, 또는 기타 관련 데이터 타입들, 여러 다른 데이터 구조들이나 단순 데이터 타입들을 포함하는 데이터 구조들, 및 유사한 것을 포함하는 다양한 유형의 데이터 구조들로 체계화될 수 있다. 데이터의 일부 예들은 정보, 프로그램, 코드, 프로그램 상태, 프로그램 데이터, 다른 데이터 및 유사한 것을 포함한다.
소제목들은 단지 편의를 위한 것이다; 주어진 주제에 대한 정보는 해당 주제를 표시하는 소제목의 절 외부에서 발견될 수 있다.
명시적이고 내재적인 다른 정의들이 이하에 포함될 수 있다.
예시적 동작 환경
도 1은 본 명세서에 기술된 본 발명의 양태들이 구현될 수 있는 적절한 컴퓨팅 시스템 환경(100)의 예를 도시한다. 컴퓨팅 시스템 환경(100)은 단지 적절한 컴퓨팅 환경의 예이며 본 명세서에 기술된 발명 대상의 양태들의 사용이나 기능의 범위에 대한 어떠한 한계를 제시하도록 의도되지 않는다. 컴퓨팅 환경(100)이 예시적 컴퓨팅 환경(100)에 예시된 구성요소들 중 어느 하나나 그 조합에 관한 어떠한 종속성이나 필요조건을 가지는 것으로 해석되지 않아야 한다.
본 명세서에 기술된 발명 대상의 양태들은 수많은 다른 범용 또는 특별한 목적의 컴퓨팅 시스템 환경들이나 구성들을 이용해 동작될 수 있다. 본 명세서에 기술된 발명 대상의 양태들과 사용하기 적합할 수 있는 공지된 컴퓨팅 시스템들, 환경들, 또는 구성들은 퍼스널 컴퓨터, 서버 컴퓨터, 핸드헬드 또는 랩탑 장치, 멀티프로세서 시스템, 마이크로콘트롤러 기반 시스템, 셋톱 박스, 프로그래머블 가전기기, 네트워크 PC, 미니컴퓨터, 메인프레임 컴퓨터, PDA(personal digital assistants), 게임기, 프린터, 셋톱, 미디어 센터 또는 다른 가전기기들을 포함하는 가전기기, 자동차 내장형 또는 부착형 컴퓨팅 장치, 기타 모바일 기기, 상기 시스템 또는 장치들 중 어느 하나를 포함하는 분산형 컴퓨팅 환경, 및 유사한 것을 포함한다.
본 명세서에 기술된 발명 대상의 양태들은 컴퓨터에 의해 실행되는 프로그램 모듈 같은 컴퓨터 실행 가능 명령어들의 일반적 맥락에서 기술될 수 있다. 일반적으로 프로그램 모듈은 특정 작업을 수행하거나 특정한 추상적 데이터 유형들을 구현하는 루틴, 프로그램, 오브젝트, 컴포넌트, 데이터 구조 등을 포함한다. 본 명세서에 기술된 발명 대상의 양태들은 또한, 작업들이 통신 네트워크를 통해 링크되는 원격 프로세싱 장치들에 의해 수행되는 분산형 컴퓨팅 환경에서 실시될 수도 있다. 분산형 컴퓨팅 환경에서 프로그램 모듈들은 메모리 저장 장치를 포함하는 로컬 및 원격 컴퓨터 저장 매체 안에 위치될 수 있다.
도 1을 참조하면, 본 명세서에 기술된 발명 대상의 양태들을 구현하기 위한 예시적 시스템은 컴퓨터(110)의 형태로 된 범용 컴퓨팅 장치를 포함한다. 컴퓨터는 명령어를 실행할 수 있는 어떤 전자 장치를 포함할 수 있다. 컴퓨터(110)의 구성요소들은 프로세싱 유닛(120), 시스템 메모리(130), 및 시스템 메모리를 포함하는 다양한 시스템 구성요소들을 프로세싱 유닛(120)에 연결시키는 시스템 버스(121)를 포함할 수 있다. 시스템 버스(121)는 다양한 버스 구조들 중 어느 하나를 이용하는 메모리 버스나 메모리 제어기, 주변기기 버스, 및 로컬 버스를 포함하는 여러 유형의 버스 구조들 중 어느 하나일 수 있다. 한정이 아닌 예로서, 그러한 구조는 ISA(Industry Standard Architecture) 버스, MCA(Micro Channel Architecture) 버스, EISA(Enhanced ISA) 버스, VESA(Video Electronics Standards Association) 로컬 버스, 및 메자닌(Mezzanine) 버스, PCI-X(Peripheral Component Interconnect Extended) 버스, AGP(Advanced Graphics Port), 및 PCIe(PCI express)로도 알려진 PCI(Peripheral Component Interconnect)를 포함한다.
컴퓨터(110)는 통상적으로 다양한 컴퓨터 판독 가능 매체를 포함한다. 컴퓨터 판독 가능 매체는 컴퓨터(110)에 의해 액세스될 수 있는 어떤 가용 매체일 수 있으며, 휘발성 및 비휘발성 매체와 착탈형 및 비착탈형 매체를 포함한다. 한정이 아닌 예로서, 컴퓨터 판독 가능 매체는 컴퓨터 저장 매체 및 통신 매체를 포함할 수 있다.
컴퓨터 저장 매체는 컴퓨터 판독 가능 명령어, 데이터 구조, 프로그램 모듈이나 기타 데이터 같은 정보의 저장을 위해 어떤 방법 또는 기술로 구현된 휘발성 및 비휘발성, 착탈형 및 비착탈형 매체를 포함한다. 컴퓨터 저장 매체는 RAM, ROM, EEPROM, 플래시 메모리 또는 다른 메모리 기술, CD-ROM, DVD(digital versatile discs) 또는 다른 광학 디스크 저장, 마그네틱 카세트, 마그네틱 테이프, 마그네틱 디스크 저장부 또는 다른 마그네틱 저장기, 또는 원하는 정보를 저장하는데 사용될 수 있고 컴퓨터(110)에 의해 액세스될 수 있는 어떤 다른 매체를 포함한다.
통신 매체는 통상적으로 반송파나 다른 전송 메커니즘 같은 변조된 데이터 신호를 통해 컴퓨터 판독 가능 명령어, 데이터 구조, 프로그램 모듈 또는 다른 데이터를 구현하며 어떤 정보 전달 매체를 포함한다. "변조된 데이터 신호(modulated data signal)"라는 용어는 신호 내에 정보를 인코딩하는 방식으로 세팅되거나 변경된 신호의 특성들 중 한 개 이상을 가지는 신호를 의미한다. 한정이 아닌 예로서, 통신 매체는 유선 네트워크나 직접 유선 연결 같은 유선 매체, 및 청각, RF, 적외선 및 다른 무선 매체 같은 무선 매체를 포함한다. 위의 것 중 어느 조합 역시 컴퓨터 판독 가능 매체의 범위 안에 포함될 수 있을 것이다.
시스템 메모리(130)는 ROM(read only memory)(131) 및 RAM(random access memory)(132) 같은 휘발성 및/또는 비휘발성 메모리의 형식으로 된 컴퓨터 저장 매체를 포함한다. 시동 중에서와 같이 컴퓨터(110) 내 구성요소들 사이에서 정보를 전달하는 것을 돕는 기본 루틴들을 포함하는 기본 입출력 시스템(133)(BIOS)은 통상적으로 ROM(131)에 저장된다. RAM(132)은 통상적으로 즉시 액세스가능하며/하거나 프로세싱 유닛(120)에 의해 현재 운영되고 있는 데이터 및/또는 프로그램 모듈들을 포함한다. 한정이 아닌 예로서, 도 1은 운영체계(134), 애플리케이션 프로그램(135), 기타 프로그램 모듈(136), 및 프로그램 데이터(137)를 예시한다.
컴퓨터(110)는 또한 다른 착탈형/비착탈형, 휘발성/비휘발성 컴퓨터 저장 매체를 포함할 수 있다. 다만 예로서, 도 1은 비착탈형, 비휘발성 마그네틱 매체로부터/로 읽기/쓰기를 하는 하드 디스크 드라이브(141), 착탈형 비휘발성 마그네틱 디스크(152)로부터/로 읽기/쓰기를 하는 마그네틱 디스크 드라이브(151), 및 CD ROM 또는 다른 광 매체 같은 착탈형, 비휘발성 광 디스크(156)로부터/로 읽기/쓰기를 하는 광 디스크 드라이브(155)를 예시한다. 예시적인 동작 환경에 사용될 수 있는 다른 착탈형/비착탈형, 휘발성/비휘발성 컴퓨터 저장 매체로는 마그네틱 테이프 카세트, 플래시 메모리 카드, DVD(digital versatile disks), 기타 광 디스크, 디지털 비디오 테이프, 고체 상태 RAM, 고체 상태 ROM 등이 포함된다. 하드 디스크 드라이브(141)는 인터페이스(140)를 통해 시스템 버스(121)에 연결될 수 있으며, 마그네틱 디스크 드라이브(151) 및 광 디스크 드라이브(155)는 인터페이스(150)와 같은 착탈형 비휘발성 메모리에 대한 인터페이스를 통해 시스템 버스(121)에 연결될 수 있다.
위에서 논의되고 도 1에서 예시된 그러한 드라이브들 및 그 관련 컴퓨터 저장 매체는 컴퓨터(110)에 컴퓨터 판독 가능 명령어, 데이터 구조, 프로그램 모듈 및 기타 데이터의 저장을 지원한다. 도 1에서, 예를 들어 하드 디스크 드라이브(141)는 운영체계(144), 애플리케이션 프로그램(145), 기타 프로그램 모듈(146), 및 프로그램 데이터(147)를 저장하는 것으로 예시되어 있다. 이 구성요소들은 운영체계(134), 애플리케이션 프로그램(135), 기타 프로그램 모듈(136), 및 프로그램 데이터(137)와 같을 수도 다를 수도 있다는 것을 알아야 한다. 운영체계(144), 애플리케이션 프로그램(145), 기타 프로그램 모듈(146), 및 프로그램 데이터(147)에는 여기서 그들이 다른 사본임을 나타내기 위해 다른 부호들이 주어진다.
사용자는 키보드(162) 및 통상적으로 마우스, 트랙볼 또는 터치 패드라 지칭되는 포인팅 장치(161) 같은 입력 장치들을 통해 컴퓨터(10) 안에 명령과 정보를 입력할 수 있다. 다른 입력 장치들(미도시)에는 마이크로폰, 조이스틱, 게임 패드, 위성 접시, 스캐너, 터치 감지 스크린, 쓰기 태블릿 등이 포함될 수 있다. 이들 및 기타 입력 장치들은 흔히 시스템 버스에 연결된 사용자 입력 인터페이스(160)를 통해 프로세싱 유닛(120)에 연결되나, 병렬 포트나 게임 포트 또는 유니버설 시리얼 버스(USB) 같은 다른 인터페이스 및 버스 구조에 의해 연결될 수도 있다.
모니터(191) 또는 다른 유형의 디스플레이 장치 역시 비디오 인터페이스(190) 같은 인터페이스를 통해 시스템 버스(121)에 연결된다. 모니터 외에, 컴퓨터들은 출력 주변기기 인터페이스(195)를 통해 연결될 수 있는 스피커(197) 및 프린터(196) 같은 다른 주변기기 출력 장치들을 포함할 수도 있다.
컴퓨터(110)는 원격 컴퓨터(180)와 같은 한 개 이상의 원격 컴퓨터로의 로직 연결을 이용하여, 네트워킹 환경 안에서 동작할 수 있다. 원격 컴퓨터(180)는 퍼스널 컴퓨터, 서버, 라우터, 네트워크 PC, 피어 장치 또는 다른 예시적 네트워크 노드일 수 있으며, 도 1에는 메모리 저장 장치(181) 만이 예시되었지만 통상적으로 컴퓨터(110)와 관련해 위에서 기술된 구성요소들 중 다수나 전부를 포함한다. 도 1에 도시된 논리 접속들은 LAN(local area network)(171) 및 WAN(wide area network)(173)을 포함하지만, 다른 네트워크들 역시 포함할 수 있다. 그러한 네트워킹 환경은 사무소, 기업 전체의 컴퓨터 네트워크, 인트라넷 및 인터넷에서 일반적이다.
LAN 네트워킹 환경에서 사용될 때, 컴퓨터(110)는 네트워크 인터페이스나 어댑터(170)를 통해 LAN(171)에 연결된다. WAN 네트워킹 환경에서 사용될 때, 컴퓨터(110)는 인터넷 같은 WAN(173)을 통한 통신을 설정하기 위한 모뎀(172) 또는 다른 수단을 포함할 수 있다. 내장형 또는 외장형일 수 있는 모뎀(172)이 사용자 입력 인터페이스(160)나 다른 알맞은 메커니즘을 통해 시스템 버스(121)에 연결될 수 있다. 네트워킹 환경에서, 컴퓨터(110)와 관련해 묘사된 프로그램 모듈들이나 그 일부는 원격 메모리 저장 장치에 저장될 수 있다. 한정이 아닌 예로서, 도 1은 원격 애플리케이션 프로그램(185)을 메모리 장치(181) 상에 상주하는 것으로서 도시한다. 도시된 네트워크 접속은 본보기적인 것이며 컴퓨터들 사이에 통신 링크를 설정하는 다른 수단 역시 사용될 수 있다는 것을 알 수 있을 것이다.
파일 보호
앞서 언급한 바와 같이, 대형 파일들의 여러 사본들을 생성하는 것은 백업 장치를 빠르게 채울 수 있다. 도 2는 본 명세서에 기술된 발명 대상의 양태들에 따라 메타데이터 및 그 안에 내장된 콘텐츠를 가지는 파일을 일반적으로 나타낸 블록도이다. 기술된 바와 같이, 파일(200)은 헤드부(205), 중간부(206), 및 테일부(207)로 나누어질 수 있다. 이 부분들(205-207)은 그려진 축척에 따라 도시되지 않는다.
많은 파일들이 메타데이터를 포함하거나 그와 연관된다. 메타데이터는 파일의 실제 콘텐츠가 아닌 파일에 대한 데이터이다. 예를 들어 메타데이터는 파일 콘텐츠의 생성 작자, 시간 및 날짜, 크기, 용도, 인코딩 방식, 컬러 깊이, 이미지 해상도, 요약, 또는 파일에 대한 기타 데이터를 포함할 수 있다.
종종 메타데이터는 파일 외부에서 관리된다. 예를 들어 파일 시스템이 파일 시스템의 파일들에 대한 메타데이터를 관리할 수 있다. 메타데이터는 파일들 자체에 내장되지 않고 파일 시스템 데이터 구조들로서 관리될 수 있다.
일부 파일 타입들에 있어서 메타데이터는 파일 자체에 내장된다(가령, 파일 내부에 위치된다). 또한 서로 다른 파일 타입들(가령, mp3, wav, pdf, tiff, bmp, mov 등)은 서로 다른 양의 메타데이터를 가질 수 있다. 동일한 파일 타입이 그 파일 타입의 파일들의 서로 다른 경우들마다 서로 다른 양의 메타데이터를 가질 수 있다.
메타데이터가 별도의 장소에 저장되는 대신 파일 안에 내장될 때, 메타데이터는 보통 파일 시작부나 종료 지점에 위치된다. 메타데이터가 변경되었는지 여부만을 검출하여 파일이 백업되어야 하는지 여부 및 백업되어야 하는 경우 해당 파일에 대해 무엇이 백업되어야 하는지를 판단하는 데 사용될 수 있다.
예를 들어, 백업 공간을 아끼기 위해 일부 사용자들은 단지 파일의 메타데이터가 변경될 때에 파일의 백업 사본을 생성하지 않는 것을 원할 수 있다. 예를 들어, 유용한 동안 멀티미디어 파일의 메타데이터 "별(star)" 등급은 파일의 콘텐츠에 대한 변경만큼 사용자에게 중요하지 않을 수 있다.
여기 기술된 바와 같이, 파일의 메타데이터가 변경되었는지 여부를 판단하는 하나의 메커니즘은 파일에 대한 두 개의 해시(hashes)를 산출하는 동작을 포함한다. 특히, 헤드 해시는 파일(200)의 헤드부(205)에 대해 산출될 수 있으며, 테일 해시는 파일(200)의 테일부(207)에 대해 산출될 수 있다. 헤드 해시가 이전에 산출된 파일의 헤드 해시와 동일하고 테일 해시가 이전에 산출된 파일의 테일 해시와 동일하다면, 파일(200)의 메타데이터는 변경되지 않았다고 언급된다.
파일의 메타데이터가 변경되었는지 여부를 판단하기 위한 또 다른 메커니즘은 파일의 헤드부나 테일부, 그러나 그 둘 다가 아닌 것에 대한 해시를 산출하는 것을 포함한다. 특히, 한 구현예에서 헤드 해시는 파일(200)의 헤드부(205)에 대해서만 산출된다. 헤드 해시가 이전에 산출된 파일의 헤드 해시와 동일하면, 파일(200)의 메타데이터는 변경되지 않았다고 언급된다. 이 구현예에서 파일(200)의 테일부(207)는 중간부(206) 및 테일부(207)를 포함하는 콘텐츠 부분에 포함될 수 있다. 이 구현예는 예컨대 메타데이터가 파일의 헤드에 있다고 예상되는 경우에 사용될 수 있다.
또 다른 구현예에서 테일 해시는 파일(200)의 테일부(207)에 대해서만 산출된다. 테일 해시가 이전에 산출된 파일의 테일 해시와 동일하면, 파일(200)의 메타데이터는 변경되지 않았다고 언급된다. 이 구현예에서 파일(200)의 헤드부(205)는 헤드부(205) 및 중간부(206) 모두를 포함하는 콘텐츠 부분에 포함될 수 있다. 이 구현예는 예컨대 메타데이터가 파일의 테일에 있다고 예상되는 경우에 사용될 수 있다.
헤드 해시 및 테일 해시 둘 모두가 산출될 수 있는 구현예들에서 파일(200)의 콘텐츠 부분은 파일(200)의 중간부(206)만을 포함한다. 콘텐츠 해시는 콘텐츠 부분이라고 지정된 것에 대해 산출되는 해시이며, 중간부(206)만, 중간부(206)와 헤드부(205), 또는 중간부(206) 및 테일부(207)를 포함할 수 있다.
해시는 데이터를 입력하기 위한 일련의 연산(가령, 가산, 승산, 제산, 감산, 비트 쉬프트 등)을 적용함으로써 생성될 수 있는 출력 데이터이다. 해시 산출은 출력 데이터를 얻기 위해 입력 데이터에 일련의 연산들을 적용하는 것을 의미한다. 보통 입력 데이터는 출력 데이터보다 훨씬 크다. 또한 입력 데이터는 가변 크기를 가질 수 있고 출력 데이터는 고정 크기일 수 있다. 해시를 생성하는 함수(종종 해시 함수라 불림)는 결정론적인데, 이는 주어진 입력 데이터에 대해 해시 함수가 동일한 출력 데이터를 생성할 것임을 의미한다. 해시 함수들은 둘 이상의 서로 다른 입력 데이터를 동일한 출력 데이터에 매핑할 수 있지만, 이러한 것이 일어날 확률이 상대적으로 적도록 보장하는 해시 함수가 선택될 수 있다. 이러한 특성들을 이용하여, 해시는 파일의 각각의 바이트를 이전 버전의 파일에 있는 상응하는 바이트와 비교하지 않고 파일의 데이터의 두 개의 서로 다른 해시들을 비교함으로써 파일(또는 그 일부)이 변경되었는지 여부를 검출하는 데 사용될 수 있다.
헤드 해시나 테일 해시 어느 것도 상응하는 이전에 산출된 해시와 동일하지 않는다면, 메타데이터 만이 변경되었는지 파일의 메타데이터 및 콘텐츠가 변경되었는지를 판단하기 위한 추가 검사가 수행될 수 있다. 이러한 추가 검사는 파일(200)의 중간부(206)에 대한 해시를 산출하는 동작 및 이 해시를 파일(200)의 중간부(206)에 대해 이전에 산출된 해시와 비교하는 동작을 수반한다.
중간 해시가 이전에 산출된 중간 해시와 동일하다면 메타데이터만이 변경된 것으로 간주된다. 중간 해시가 이전에 산출된 중간 해시와 동일하지 않다면, 메타데이터에 더하여, 혹은 메타데이터 대신 콘텐츠가 변경되었다고 간주된다.
파일(200)의 헤드부(205)라고 간주되는 길이를 선택하고 파일(200)의 테일부라고 간주되는 길이를 선택하는 동작이 다양한 방식으로 수행될 수 있다. 본 명세서에 기술되는 한 방식의 예가 이하에 기술되는 바와 같이 압축 블록 사이즈에 기반하여 길이를 선택하는 것이다.
공간을 절약하기 위해 멀티미디어 및 기타 파일들은 압축된 콘텐츠를 가질 수 있다. 콘텐츠는 압축 블록 사이즈를 이용하는 압축 알고리즘을 이용하여 압축될 수 있다. 콘텐츠를 보이고 편집하기 위해, 콘텐츠 또는 블록들의 하나 이상이 압축해제될 수 있다. 이렇게 압축해제된 콘텐츠의 어느 것이 변경되면, 압축 알고리즘은-아주 약간의 압축해제된 콘텐츠가 변경되었다고 하더라도- 최초의 압축 콘텐츠 및 새 압축 콘텐츠가 상당히 혹은 완전히 상이하도록 상기 변경된 콘텐츠를 압축할 수 있다. 또한 압축 도중에 한 블록의 콘텐츠에 대해 이루어진 변경이 전체 파일을 통해 다른 블록들에 영향을 미칠 수 있다.
내장된 메타데이터를 가진 멀티미디어 파일들의 이러한 압축은 헤드부(205)라고 간주된 길이 및 파일(200)의 테일부(207)라고 간주된 길이의 선택을 위해 사용될 수 있다. 메타데이터만이 변경되었다는 것을 검출하기 위해, 메타데이터에 해당하는 길이가 선택될 수 있다. 그러나 메타데이터의 길이는 파일 타입별로, 또는 심지어 동일한 파일 타입 내의 파일별로도 변경될 수 있기 때문에, 메타데이터의 길이에 해당하는 길이를 선택하는 것은 메타데이터의 구조에 관한 이해를 가지고 그 길이를 판단하기 위해 메타데이터를 파싱할 수 있는 능력을 수반할 수 있다.
메타데이터의 길이보다 보통 혹은 늘상 적은 길이를 선택하는 것은 백업 메커니즘이 메타데이터의 변경에 대해서도 백업 사본을 생성하도록 유발할 수 있다. 하나의 극단적 예로서, 선택된 길이가 1 바이트였다면 헤드부(205)의 최초 바이트를 지나서, 혹은 테일부(207)의 마지막 바이트 이전의 어떤 변경은 메타데이터가 아닌 파일의 콘텐츠의 변경이라고 간주될 할 것이다. 콘텐츠에 대한 변경은 백업 메커니즘이 파일의 백업 사본을 생성하도록 유발할 수 있다.
메타데이터의 길이보다 보통 혹은 늘상 크지만 압축 블록 사이즈보다는 적다고 예상되는 길이를 선택하는 것은 어떤 변경을 콘텐츠로 빈번히 (또는 계속해서) 돌리지 않고 메타데이터 내 변경을 메타데이터에 대한 변경으로서 검출하는 효과를 가진다. 이러한 결론은 압축 알고리즘들과 관련하여 콘텐츠에서의 최소의 변경이라도 디스크 상의 전체 블록의 압축 콘텐츠 또는 디스크 상의 파일의 전체 압축 콘텐츠까지 변경할 수 있다는 상기 고찰로부터 도출된다.
도 3은 본 명세서에 기술된 발명 대상의 양태들에 따라 헤드에 있는 메타데이터 및 그 뒤에 몇몇 압축 블록들을 가진 파일을 예시한 블록도이다. 예시된 바와 같이, 파일(300)은 내장된 메타데이터(305) 및 압축 블록들(310-314)로 압축되어 있는 콘텐츠를 포함한다. 파일(300)의 헤드부 사이즈로서 길이(320)가 선택되었다. 예시된 길이(320)는 압축 블록 사이즈보다 약간 짧다.
메타데이터(305)만 변경되면, 파일(300)의 헤드에서의 길이(320)를 가진 데이터의 해시가 이러한 변경을 검출하지만, 변경이 메타데이터(305)에서 발행했는지 파일(300)의 콘텐츠에서 발생했는지 여부를 판단하기에는 충분하지 않을 수 있다. 예를 들어 325 지점 이전의 어느 곳에서의 데이터의 변경은 헤드부의 해시가 이전에 산출된 헤드부의 해시와 상이하도록 할 수 있다. 헤드부는 파일 시작부분으로부터의 길이(320)를 가지며 메타데이터(305)보다 크다. 이 경우, 변경이 메타데이터(305)에서 발생했는지 메타데이터(305)를 지나 콘텐츠에서 발생했는지 여부를 검출하기 위해, 중간부(325 지점 너머에 데이터를 포함함)의 또 다른 해시 역시 산출될 수 있다.
중간부의 해시를 산출하는 것은 압축 알고리즘들의 특성으로 인해 메타데이터가 변경되었는지 콘텐츠가 변경되었는지 여부를 판단함에 있어서 효율적이다. 특히 압축 중에 메타데이터(305)를 지나서 325 지점 이전의 데이터가 변경되는 경우, 이것은 325 지점을 지나서도 압축 블록(310) 내 데이터에 대한 상당한 변경이 일어나게 할 수 있다. 그러나 메타데이터(305) 만의 변경은 메타데이터가 보통 압축 블록 내에 있지 않기 때문에 일반적으로 압축 블록(310)의 데이터에 어떤 영향도 미치지 않을 것이다. 따라서, 메타데이터(305) 만이 변경되는 경우, 압축 블록(310)은 변경되지 않을 것이며 중간 해시는 이전에 산출된 중간 해시와 동일할 것이다.
다른 한편으로 메타데이터(305)를 지나 325 지점 이전의 어느 곳에 있는 데이터가 압축 중에 변경되면, 이것은 압축 블록(310) 전체적으로 데이터에 대한 상당한 변경이 일어날게 할 것이다. 따라서 헤드부(325 지점 이전의 부분)의 해시 및 중간부(325 지점 이후의 부분)의 해시 모두 이러한 변경을 검출할 것이다. 두 해시들 모두 변경된 데이터를 보이는 경우, 데이터 보호 엔진은 적어도 파일의 콘텐츠가 변경되었으며 아마도 파일의 콘텐츠 및 메타데이터 역시 변경되었다고 결론내릴 수 있다. 콘텐츠가 변경되었으므로 파일이 백업되어야 한다.
아래는 길이(320)를 선택하는 몇 가지 예시적 방법들이다:
1. 대용량 멀티미디어 파일들 사이에 일반적인 압축 블록 사이즈와 같거나 작은 길이를 선택한다. 예를 들어 어떤 멀티미디어 파일들의 경우, 64 킬로 바이트, 128 킬로 바이트, 256 킬로 바이트, 또는 어떤 다른 사이즈가 일반적인 압축 블록 사이즈일 수 있다.
2. 파일 확장자들을 길이와 연관시키는 데이터 구조(표 같은 것)를 이용하여 길이를 선택한다. 데이터 구조는 하나 이상의 파일 확장자들을 각각의 길이와 연관시킬 수 있다. 예를 들어 소정 확장자들을 가지는 비디오 파일들은 하나의 길이와 연관될 수 있고, 소정 확장자들을 가지는 오디오 파일들은 또 다른 길이와 연관될 수 있으며, 소정 확장자들을 가지는 비디오 파일들 및 오디오 파일들은 또 다른 길이와 연관될 수 있는 등의 방식으로 연관이 이루어질 수 있다. 주어진 파일 확장자에 대해 데이터 구조가 특정 길이를 가지지 않은 경우, 데이터 구조가 사용할 디폴트 길이를 특정할 수도 있다.
3. 메타데이터 자체를 읽고 그로부터 메타데이터의 길이를 판단함으로써 길이를 선택한다. 이것은 서로 다른 타입의 파일들에 대해 메타데이터를 읽을 수 있는 하나 이상의 구성요소들을 포함할 수 있다.
도 2로 돌아가면, 일부 파일 포맷들은 새롭거나 변경된 데이터를 파일 끝(가령, 테일부(207) 뒤)에 추가할 수 있다. 이러한 경우들에서, 데이터 보호 엔진은 테일부(207)가 어디에서 시작하고 테일부(207)가 얼마나 긴지를 표시하는 데이터를 관리할 수 있으며 이러한 정보를 이용하여 테일부(207)에 대한 해시를 수행할 수 있다. 즉, 테일부(207)를 파일 끝부분으로부터의 어떤 길이로서 규정하는 대신 원래 테일부의 위치에 기반하여 해시가 산출될 수 있다. 테일부(207) 뒤에 추가된 데이터의 양이 구성가능한 문턱치를 초과하면, 테일부(207)는 다시 파일 끝부분으로부터 측정될 수 있다.
파일에 대해 산출되었던 해시들은 그 파일에 대해 산출되는 후속 해시들과 비교할 때 사용하기 위해 레코드에 저장될 수 있다. 일 실시예에서 데이터 보호 엔진은 파일의 콘텐츠가 변경되었으면 파일의 백업 사본을 생성할 수 있고, 파일의 메타데이터만이 변경되었으면(해시들에 의해 지시됨) 파일의 백업 사본을 생성하지 않을 수 있다.
또 다른 실시예에서 데이터 보호 엔진은 변경된 파일의 각 부분에 대한 백업 사본을 생성할 수 있다. 예를 들어 메타데이터가 변경되었으면, 데이터 보호 엔진은 메타데이터의 백업 사본을 생성할 수 있다. 파일의 콘텐츠가 변경되었으면, 데이터 보호 엔진은 파일의 콘텐츠의 백업 사본을 만들 수 있다. 이 실시예에서 파일은 백업 목적의 세 개의 파일들로서 처리될 수 있다. 파일의 어떤 "부분"이 변경되면, 그 부분이 백업된다. 블록 리스트는 파일의 다양한 버전들에 포함되는 파일의 부분들에 대한 식별자들을 포함할 수 있다. 이 실시예에서 헤드 및 테일의 길이는 적어도 가장 크다고 예상되는 메타데이터 길이만큼 크도록 선택될 수 있다.
메타데이터 및 콘텐츠가 독립적으로 백업될 경우, 백업 관리자는 사용자 인터페이스에 메타데이터에 대한 변경들을 보여줄 수 있다. 예를 들어 백업 관리자는 메타데이터의 두 버전들을 보여주는 나란히 놓인 윈도우들 또는 다른 사용자 인터페이스 요소들을 디스플레이할 수 있다.
도 4는 본 명세서에 기술된 발명 대상의 양태들에 따라 구성된 장치를 나타낸 블록도이다. 도 4에 도시된 구성요소들은 예로든 것으로 필요로 되거나 포함될 수 있는 구성요소들을 모두 포함하는 것으로 되어 있지 않다. 일 실시예에서 도 4와 관련하여 기술되는 구성요소들은 본 명세서에 기술된 발명 대상의 양태들의 사상이나 범위로부터 벗어남이 없이 다른 구성요소들(도시되거나 도시되지 않음)에 포함되거나 부구성요소들 안에 배치될 수 있다. 어떤 실시예들에서 도 4와 관련하여 기술되는 구성요소들 및/또는 기능들이 여러 장치들에 걸쳐 분산될 수 있다.
도 4를 참조할 때, 장치(405)는 데이터 보호 구성요소들(410), 저장부(435), 통신 메커니즘(440) 및 다른 구성요소들(미도시)을 포함할 수 있다. 장치(405)는 컴퓨터(가령, 도 1의 컴퓨터(110) 상이나 그 자체로서 구현될 수 있다.
통신 메커니즘(440)은 장치(405)가 다른 개체들과 통신할 수 있게 한다. 예를 들어 통신 메커니즘(440)은 이 장치가 저장부(435) 상에 저장된 파일들의 백업 사본들을 저장하는 하나 이상의 장치들(가령 네트워크 부가 저장부, 저장 영역 네트워크 장치, 파일 서버 등)과 통신하게 할 수 있다. 통신 메커니즘(440)은 네트워크 인터페이스나 어댑터(170), 모뎀(172), USB 또는 다른 포트, 또는 도 1과 관련하여 기술된 바와 같이 통신을 설정하기 위한 어떤 다른 메커니즘일 수 있다.
저장부(435)는 데이터를 저장할 수 있는 어떤 저장 매체이다. 저장부(435)는 파일 시스템, 데이터베이스, RAM과 같은 휘발성 메모리, 기타 저장부, 이들의 어떤 조합 등으로서 구현될 수 있으며 여러 장치들에 걸쳐 분산될 수 있다. 저장부(435)는 내부적이거나 외부적일 수 있거나, 장치(405) 내부나 외부 양측에 있는 구성요소들을 포함할 수 있다.
데이터 보호 구성요소들(410)은 변경 검출기(415), 해셔(hasher)(420), 해싱 관리자(425), 데이터 보호 엔진(430), 및 기타 구성요소들(미도시)을 포함할 수 있다. 여기 사용되는 바와 같이 구성요소라는 용어는 장치 전체나 일부와 같은 하드웨어, 하나 이상의 소프트웨어 모듈들이나 이들의 일부분들의 집합, 하나 이상의 소프트웨어 모듈들이나 이들의 일부분들의 어떤 조합 및 하나 이상의 장치들이나 이들의 일부분들 등을 포함하는 것으로 파악되어야 한다.
변경 검출기(415)는 보호된 이름 공간(namespace)의 파일들에 변경이 발생했는지 여부를 검출하는 구성요소이다. 예를 들어 변경 검출기(415)는 타임스탬프들을 이용하거나, 파일 시스템에 이루어진 변경들을 모니터링하거나, 변경이 일어났는지 여부를 판단하는 다른 메커니즘들을 이용할 수 있다. 여기에서의 가르침에 기반하여, 당업자는 본 명세서에 기술된 발명 대상의 양태들의 사상 또는 범위로부터 벗어나지 않고, 사용될 수 있는 파일들에 변경이 일어났는지 여부를 검출하기 위한 다른 방식들을 인지할 수 있다.
변경 검출기(415)가 파일이 변경되었다고 판단할 때, 변경 검출기(415)는 데이터 보호 엔진에 파일이 변경되었음을 알릴 수 있다. 파일의 메타데이터 및/또는 콘텐츠가 변경되었는지 여부를 판단하기 위해, 데이터 보호 엔진(430)은 해시 관리자(425)를 이용할 수 있다.
해시 관리자(425)는 파일 내에서 무엇이 변경되었는지를 판단하기 위한 해시들을 생성하기 위해 해셔(420)를 이용하도록 사용될 수 있다. 해시 관리자(425)는 해셔(420)에 입력할 파일의 일부를 제공할 수 있으며, 입력에 해당하는 여러 해시들을 출력으로서 획득할 수 있다. 예를 들어 해셔(420)는 해셔(420)에 파일의 헤드부, 테일부 및 중간부의 데이터를 제공할 수 있으며 그에 대한 응답으로 헤드 해시, 테일 해시, 및 중간 해시를 획득할 수 있다.
해시 관리자(425)는 파일 안에서 무엇이 변경되었는지를 판단하도록 후속 산출되는 해스들과 비교하기 위해 이전에 산출된 해시들을 저장할 수 있다. 예를 들어 헤드 해시가 이전에 산출된 파일의 헤드 해시와 같고, 파일의 테일 해시가 이전에 산출된 파일의 테일 해시와 같으면, 해시 관리자(425)는 파일의 콘텐츠가 변경되었다고 판단하며 이것을 데이터 보호 엔진(430)에 표시할 수 있다.
파일의 헤드 해시나 테일 해시가 변경되었으면, 해시 관리 관리자(425)는 적어도 파일의 메타데이터가 변경되었다고 판단할 수 있으며, 파일의 중간부의 중간 해시를 획득하며 그 중간 해시를 이전에 산출된 파일의 중간 해시와 비교하도록 더 동작할 수 있다. 중간 해시가 이전에 산출된 중간 해시와 동일하면, 해시 관리자(425)는 메타데이터만이 변경되었다는 것을 나타낼 수 있다; 그렇지 않은 경우, 해시 관리자(425)는 파일의 메타데이터 및 콘텐츠 둘 모두가 변경되었다는 것을 나타낼 수 있다.
일 실시예에서 해시 관리자(425)는 파일의 헤드부 및 테일부에 대해 미리 선택된 고정 길이를 이용할 수 있다. 고정 길이는 파일의 메타데이터의 크기와 무관할 수 있고, 파일들의 콘텐츠에 대해 사용되는 압축 알고리즘의 예상되는 압축 블록 사이즈들에 기반하여 (개발자 등에 의해) 선택될 수 있다.
다른 실시예에서, 해시 관리자(425)는 파일 확장자들을 길이들과 연관시키는 데이터 구조로부터 길이를 획득하도록 파일의 확장자를 이용함으로써 헤드부 및/또는 테일부의 길이를 획득할 수 있다.
테일부의 시작 위치를 선택할 때, 해시 관리자(425)는 파일의 테일부의 이전 시작 위치를 이용할 수 있다. 앞서 언급한 바와 같이, 이것은 데이터가 파일의 마지막 부분에 추가된 경우에 유용할 수 있다.
해셔(420)는 데이터를 수신하고 데이터에 대해 일련의 연산을 수행함으로써 그에 기반하는 해시를 생성하도록 동작되는 어떤 구성요소이다. 연산을 수행함에 있어 해셔(420)는 해셔(420)라는 변수를 데이터의 다양한 부분들에 대한 연산 결과들로 업데이트할 수 있다. 앞서 언급한 바와 같이, 일 실시예에서 해시 함수는 가변 길이의 데이터를 수신하며 그로부터 상기 가변 길이와 무관한 고정 사이즈의 출력 데이터를 도출할 수 있다.
데이터 보호 엔진(430)은 해시 관리자가 무엇이 변경되었는지를 가리키는지에 기반하여 콘텐츠 및/또는 메타데이터의 백업 사본을 생성하도록 동작할 수 있다. 예를 들어, 일 실시예에서 데이터 보호 엔진(430)은 해시 관리자가 파일의 콘텐츠가 변경되었다는 것을 표시하면 콘텐츠 및 내장된 메타데이터 둘 모두의 백업 사본을 생성할 수 있다. 또 다른 실시예에서 메타데이터 백업 엔진(430)은 메타데이터만 변경된 경우 메타데이터의 백업 사본을 생성할 수 있다. 또 다른 실시예에서 데이터 보호 엔진(430)은 파일을 세 개의 개별 파일들(백업용)로서 다룰 수 있고 파일의 변경된 부분들만을 백업할 수 있다.
도 5는 본 명세서에 기술된 발명 대상의 양태들에 따라 일어날 수 있는 활동의 예들을 일반적으로 나타낸 흐름도이다. 설명의 단순성을 위해, 도 5와 관련하여 기술되는 방법은 일련의 동작들로서 묘사 및 기술된다. 본 명세서에 기술되는 발명 대상의 양태들이 예시된 동작들 및/또는 동작들의 순서에 한정되는 것이 아니라는 것을 알고 예상해야 한다. 일 실시예에서 동작들은 이하에 기술되는 순서로 일어난다. 그러나 다른 실시예들에서는 동작들이 병렬로, 다른 순서로, 그리고/또는 본 명세서에 제시 및 기술되지 않은 다른 동작들과 함께 일어날 수 있다. 또한, 예시된 동작들 전부 다가 본 명세서에 기술된 발명 대상의 양태들에 따른 방법을 구현하는 데 필요로되지 않을 수 있다. 또한, 당업자는 방법이 대안적으로, 상태도를 통한 일련의 상호관련된 상태들 또는 이벤트들로서 표현될 수도 있다는 것을 이해하고 예상할 것이다.
도 5를 참조하면, 블록 505에서 동작이 시작된다. 블록 510에서 파일 변경 표시가 수신된다. 예를 들어 도 4를 참조할 때, 변경 검출기(415)가 저장부(435) 상의 파일에 변경이 발생하였음을 검출할 수 있다.
블록 515에서 그 파일에 대한 해시들이 산출된다. 예를 들어 도 4를 참조하면, 해시 관리자(425)가 해셔(420)에 지시하여 파일의 헤드부, 테일부 및/또는 중간부에 대한 해시들을 산출하게 할 수 있다. 앞서 언급한 바와 같이, 일 실시예에서 파일의 헤드부 및 테일부를 표시하는 길이가 런타임 이전에 개발자 등에 의해 선택될 수 있으며, 파일의 타입과 무관할 수 있다(가령, 파일의 타입과 무관하게 사용됨). 또 다른 실시예에서, 길이는 파일 확장자들을 길이들과 연관시키는 데이터 구조로부터 길이를 획득하기 위해 파일의 확장자를 이용함으로써 얻어질 수 있다.
해시들의 산출은 단계적으로 이루어질 수 있다. 블록 520에서 블록 525까지의 라인은 이러한 타입의 구현을 표시한다. 예를 들어, 초기에, 파일의 헤드에 대한 해시가 산출될 수 있다. 해시가 이전에 산출된 헤드 해시와 동일하지 않으면, 이는 적어도 메타데이터가 변경되었다는 것을 표시한다. 이 시점에서 파일의 중간부에 대한 중간 해시가 산출될 수 있다. 이 중간 해시가 이전에 산출된 중간 해시와 동일하지 않으면, 이는 파일의 메타데이터 및 콘텐츠 둘 모두가 변경되었음을 표시한다.
한편 헤드 해시가 이전에 산출된 헤드 해시와 동일하면, 테일 해시가 산출될 수 있다. 테일 해시가 앞서 생성된 테일 해시와 동일하지 않으면, 이는 적어도 메타데이터가 변경되었음을 의미하며 콘텐츠 또한 변경되었는지 여부를 판단하기 위해 추가 체크가 수행될 수 있다.
그러나 헤드 해시가 이전에 산출된 헤드 해시와 동일하고 테일 해시가 이전에 산출된 테일 해시와 동일하며 파일이 변경되었다면(변경 검출기에 의해 지시된 바와 같이), 이는 파일의 콘텐츠가 변경되었음을 의미한다. 이 경우, 콘텐츠가 변경되었는지를 추론하기 위해 다른 조건들이 사용될 수 있으므로 중간 해시를 생성할 필요가 없을 수 있다. 이 경우, 일 실시예에서 콘텐츠 및 메타데이터를 포함한 전체 파일이 백업될 수 있다. 또 다른 실시예에서 콘텐츠만이 백업될 수도 있다.
헤드 해시를 먼저 산출하는 대신, 해시들을 앞서 생성된 해시들과 비교한 결과들에 좌우되어 유사한 동작들이 따르는 테일 해시가 먼저 산출될 수 있다.
블록 520에서, 파일의 어느 부분(들)이 변경되었는지에 대한 판단이 이루어진다. 예를 들어 해셔(420)에 의해 반환된 해시들을 이용하여 해시 관리자(425)가 파일의 콘텐, 메타데이터, 또는 콘텐츠 및 메타데이터 둘 모두가 변경되었는지의 여부를 판단할 수 있다. 예를 들어, 헤드 해시가 이전에 산출된 파일의 헤드 해시와 동일하고 테일 해시가 이전에 산출된 파일의 테일 해시와 동일하지 여부를 체크하여 파일(200)의 콘텐츠만이 변경되었는지 여부를 가리킬 수 있다. 예를 들어, 그러한 조건들 모두가 참이(그리고 파일이 변경되었다)면, 파일의 콘텐츠가 변경되었다고 판단될 수 있다.
그러한 조건들 중 어느 하나가 참이 아니면, 적어도 메타데이터가 변경되었다고 간주되며 콘텐츠 역시 변경되었는지 여부를 판단하기 위한 추가 동작들이 수행될 수 있다.
블록 525에서 콘텐츠 및/또는 메타데이터의 백업 사본이 생성될 수 있다. 예를 들어, 도 4를 참조하면, 데이터 보호 엔진(430)은 변경된 저장부(435) 상의 파일의 콘텐츠 및/또는 메타데이터의 백업 사본을 만들 수 있다. 파일의 메타데이터만이 변경되었다면, 데이터 보호 엔진(430)은 구현예에 따라 메타데이터만을 백업하거나 파일의 어느 부분에 대한 백업 사본을 생성하는 것을 억제할 수 있다. 이것은 파일의 헤드부만이나 파일의 테일부만을 그러한 부분들이 변경되었는지 여부를 표시하는 해시들에 따라 백업하는 것을 수반할 수 있다.
블록 530에서 존재하는 경우에 다른 동작들이 수행될 수 있다.
상술한 상세한 설명으로부터 알 수 있듯이, 양태들은 데이터 보호와 관련하여 기술되었다. 본 명세서에 기술된 발명 대상의 양태들은 다양한 변경 및 대안적 구성을 받아들일 수 있으며, 그에 대한 소정의 예시된 실시예들이 도면에 도시되어 위에서 상세히 기술되었다. 그러나, 청구된 발명 대상의 양태들을 개시된 특정 형태로 한정하려는 의도는 없으며, 그와 달리 본 명세서에 기술된 발명 대상의 다양한 양태들의 사상 및 범위에 속하는 모든 변형, 대안적 구성 및 균등물을 포괄하도록 의도하고 있음을 이해해야 한다.

Claims (20)

  1. 컴퓨터에 의해 적어도 부분적으로 구현되는 방법으로서,
    상기 방법은
    파일을 백업할지 여부를 결정하는 단계 -상기 파일은 적어도, 콘텐츠 데이터를 갖는 콘텐츠 세그먼트와 상기 콘텐츠 데이터의 주관적인 평가를 정량화하는 값(value)을 적어도 갖는 메타데이터 세그먼트를 포함함- 와,
    상기 파일의 백업을 선택적으로 개시하는 단계를 포함하되,
    상기 결정하는 단계는,
    상기 파일의 상기 메타데이터 세그먼트의 적어도 일부의 메타데이터 해쉬를 산출하는 동작과
    상기 파일의 상기 콘텐츠 세그먼트의 적어도 일부의 콘텐츠 해쉬를 산출하는 동작과
    상기 메타데이터 해쉬가 종전에 산출된 메타데이터 해쉬와 동일한지 여부에 적어도 부분적으로 기초하여 상기 메타데이터가 변경되었는지 여부를 결정하는 동작과,
    상기 콘텐츠 해쉬가 종전에 산출된 콘텐츠 해쉬와 동일한지 여부에 적어도 부분적으로 기초하여 상기 콘텐츠 데이터가 변경되었는지 여부를 결정 하는 동작을 포함하고,
    상기 선택적으로 개시하는 단계는,
    상기 콘텐츠 세그먼트가 변경되지 않았고 상기 메타데이터 세그먼트가 변경되었다는 결정에 응답하여 상기 파일의 백업을 개시하지 않는 동작과
    상기 콘텐츠 세그먼트가 변경되었고 상기 메타데이터 세그먼트가 변경되지 않았다는 결정에 응답하여 상기 파일의 백업을 개시하는 동작을 포함하는
    방법.
  2. 제1항에 있어서,
    상기 파일의 상기 콘텐츠 세그먼트의 적어도 일부의 콘텐츠 해쉬를 산출하는 동작은, 데이터의 선택된 양(selected quantity)에 기초하여 상기 콘텐츠 해쉬를 산출하는 동작을 포함하되, 상기 선택된 양은 상기 백업을 위하여 사용될 압축 알고리즘의 압축 블록 사이즈보다 작고, 상기 선택된 양은 상기 파일의 타입에 독립적인,
    방법.
  3. 제1항에 있어서,
    상기 파일의 상기 콘텐츠 세그먼트의 적어도 일부의 콘텐츠 해쉬를 산출하는 동작은, 데이터의 선택된 양(selected quantity)에 기초하여 상기 콘텐츠 해쉬를 산출하는 동작을 포함하되, 상기 선택된 양은 상기 파일의 확장자에 기초하는,
    방법.
  4. 제1항에 있어서,
    상기 메타데이터는 작성자(author), 크기(size), 시간, 날짜, 인코딩 방식, 해상도(resolution), 용도 또는 사용자 순위에 관한 정보를 포함하는
    방법.
  5. 제1항에 있어서,
    상기 메타데이터 세그먼트는 상기 파일의 시작부 또는 종료 지점에 위치하는
    방법.
  6. 제1항에 있어서,
    상기 파일의 백업을 선택적으로 개시하는 단계는, 상기 파일의 부분적인 백업을 개시하는 단계를 포함하는
    방법.
  7. 제1항에 있어서,
    상기 파일의 백업을 선택적으로 개시하는 단계는, 상기 콘텐츠 세그먼트가 변경되었다는 결정에 응답하여 상기 파일 전체에 대한 백업을 개시하는 단계를 더 포함하는
    방법.
  8. 제1항에 있어서,
    상기 파일의 백업을 선택적으로 개시하는 단계는,
    상기 콘텐츠 세그먼트가 변경되지 않았고 상기 메타데이터 세그먼트가 변경되지 않았다는 결정에 응답하여, 상기 파일의 백업을 개시하지 않는 동작과
    상기 콘텐츠 세그먼트가 변경되었고 상기 메타데이터 세그먼트가 변경되었다는 결정에 응답하여 상기 파일의 백업을 개시하는 동작을
    더 포함하는
    방법.
  9. 파일의 백업을 제어하는 장치로서,
    상기 장치는
    메모리 및 프로세서를 포함하되,
    상기 메모리 및 상기 프로세서는, 상기 장치로 하여금 상기 파일의 백업을 제어하는 작업을 수행하도록 하는 명령어를 각각 저장하고 수행하도록 구성되며,
    상기 작업은
    상기 파일을 백업할지 여부를 결정하는 단계 -상기 파일은 적어도, 콘텐츠 데이터를 갖는 콘텐츠 세그먼트와 상기 콘텐츠 데이터의 주관적인 품질(quality)을 기술(describe)하는 메타데이터를 갖는 메타데이터 세그먼트를 포함함- 와,
    상기 파일의 백업을 선택적으로 개시하는 단계를 포함하되,
    상기 결정하는 단계는,
    상기 파일의 상기 메타데이터 세그먼트의 적어도 일부의 메타데이터 해쉬를 산출하는 동작과
    상기 파일의 상기 콘텐츠 세그먼트의 적어도 일부의 콘텐츠 해쉬를 산출하는 동작과
    상기 메타데이터 해쉬와 종전에 산출된 메타데이터 해쉬의 비교 및 상기 콘텐츠 해쉬와 종전에 산출된 콘텐츠 해쉬의 비교에 기초하여 상기 파일을 백업할지 여부를 결정하는 동작을 포함하고,
    상기 선택적으로 개시하는 단계는,
    상기 콘텐츠 세그먼트가 변경되지 않고 상기 메타데이터 세그먼트가 변경된 경우, 상기 파일의 백업을 개시하지 않는 동작과
    상기 콘텐츠 세그먼트가 변경되고 상기 메타데이터 세그먼트가 변경되지 않은 경우, 상기 파일의 백업을 개시하는 동작을 포함하는
    장치.
  10. 제9항에 있어서,
    상기 파일의 백업을 저장하는 데이터 저장부를 더 포함하는
    장치.
  11. 제9항에 있어서,
    상기 파일의 상기 콘텐츠 세그먼트의 적어도 일부의 콘텐츠 해쉬를 산출하는 동작은, 데이터의 선택된 양(selected quantity)에 기초하여 상기 콘텐츠 해쉬를 산출하는 동작을 포함하되, 상기 선택된 양은 상기 백업을 위하여 사용될 압축 알고리즘의 압축 블록 사이즈보다 작고, 상기 선택된 양은 상기 파일의 타입에 독립적인,
    장치.
  12. 제9항에 있어서,
    상기 파일의 백업을 선택적으로 개시하는 단계는, 상기 메타데이터 세그먼트가 변경되었는지 여부에 관계없이 상기 콘텐츠 세그먼트가 변경되면 상기 파일 전체에 대한 백업을 개시하는 단계를 더 포함하는
    장치.
  13. 제9항에 있어서,
    상기 파일의 백업을 선택적으로 개시하는 단계는,
    상기 콘텐츠 세그먼트가 변경되지 않고 상기 메타데이터 세그먼트가 변경되지 않은 경우, 상기 파일의 백업을 개시하지 않는 동작과
    상기 콘텐츠 세그먼트가 변경되고 상기 메타데이터 세그먼트가 변경된 경우, 상기 파일의 백업을 개시하는 동작을
    더 포함하는
    장치.
  14. 제9항에 있어서,
    상기 파일의 상기 콘텐츠 세그먼트의 적어도 일부의 콘텐츠 해쉬를 산출하는 동작은, 상기 콘텐츠 세그먼트의 데이터의 선택된 양(selected quantity)에 기초하여 상기 콘텐츠 해쉬를 산출하는 동작을 포함하되, 상기 선택된 양은 상기 파일의 확장자에 기초하는,
    장치.
  15. 내부 저장된 컴퓨터 실행가능 인스트럭션을 포함하는 컴퓨터 저장 디바이스로서,
    상기 컴퓨터 실행가능 인스트럭션은 파일의 백업을 관리하는 작업을 수행하기 위한 것이며,
    상기 작업은
    상기 파일을 백업할지 여부를 결정하는 단계 -상기 파일은 적어도, 콘텐츠 데이터를 갖는 콘텐츠 세그먼트와 상기 콘텐츠 데이터를 주관적으로 기술(describing)하는 메타데이터를 갖는 메타데이터 세그먼트를 포함함- 와,
    상기 파일의 백업을 선택적으로 개시하는 단계를 포함하되,
    상기 결정하는 단계는,
    상기 파일의 상기 메타데이터 세그먼트가, 상기 파일의 백업된 버전의 백업된 메타데이터 세그먼트에 대해서 변경되었는지 여부를 결정하는 동작과,
    상기 파일의 상기 콘텐츠 세그먼트가, 상기 파일의 상기 백업된 버전의 백업된 콘텐츠 세그먼트에 대해서 변경되었는지 여부를 결정하는 동작을 포함하고,
    상기 선택적으로 개시하는 단계는,
    상기 콘텐츠 세그먼트가 변경되었고 상기 메타데이터 세그먼트가 변경 되지 않았다는 결정에 응답하여 상기 파일의 백업을 개시하는 동작을 포함하는
    컴퓨터 저장 디바이스.
  16. 제15항에 있어서,
    상기 파일의 백업을 선택적으로 개시하는 단계는,
    상기 콘텐츠 세그먼트가 변경되지 않았고 상기 메타데이터 세그먼트가 변경되지 않았다는 결정에 응답하여, 상기 파일의 백업을 개시하지 않는 동작과
    상기 콘텐츠 세그먼트가 변경되었고 상기 메타데이터 세그먼트가 변경되었다는 결정에 응답하여 상기 파일의 백업을 개시하는 동작을
    더 포함하는
    컴퓨터 저장 디바이스.
  17. 제15항에 있어서,
    상기 파일의 백업을 선택적으로 개시하는 단계는,
    상기 콘텐츠 세그먼트가 변경되지 않았고 상기 메타데이터 세그먼트가 변경되었다는 결정에 응답하여 상기 파일의 백업을 개시하지 않는 동작을
    더 포함하는
    컴퓨터 저장 디바이스.
  18. 제15항에 있어서,
    상기 메타데이터 세그먼트는 상기 파일의 종료 지점에 위치하는
    컴퓨터 저장 디바이스.
  19. 제15항에 있어서,
    상기 파일의 상기 메타데이터 세그먼트가 변경되었는지 여부의 결정은, 상기 파일의 상기 메타데이터 세그먼트의 해쉬와 상기 파일의 백업된 버전의 백업된 메타데이터 세그먼트의 해쉬의 비교에 기초하고,
    상기 파일의 상기 콘텐츠 세그먼트가 변경되었는지 여부의 결정은, 상기 파일의 상기 콘텐츠 세그먼트의 해쉬와 상기 파일의 백업된 버전의 백업된 콘텐츠 세그먼트의 해쉬의 비교에 기초하는
    컴퓨터 저장 디바이스.
  20. 제15항에 있어서,
    상기 메타데이터는 작성자(author), 크기(size), 시간, 날짜, 인코딩 방식, 해상도(resolution), 용도 또는 사용자 순위에 관한 정보를 포함하는
    컴퓨터 저장 디바이스.
KR1020137014151A 2010-12-02 2011-12-02 편집 가능 메타데이터를 포함하는 파일들을 보호하는 기법 KR101852219B1 (ko)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US12/958,412 US20120143824A1 (en) 2010-12-02 2010-12-02 Protecting files that include editable metadata
US12/958,412 2010-12-02
PCT/US2011/063050 WO2012075385A2 (en) 2010-12-02 2011-12-02 Protecting files that include editable metadata

Publications (2)

Publication Number Publication Date
KR20140047570A KR20140047570A (ko) 2014-04-22
KR101852219B1 true KR101852219B1 (ko) 2018-04-25

Family

ID=46163198

Family Applications (1)

Application Number Title Priority Date Filing Date
KR1020137014151A KR101852219B1 (ko) 2010-12-02 2011-12-02 편집 가능 메타데이터를 포함하는 파일들을 보호하는 기법

Country Status (5)

Country Link
US (1) US20120143824A1 (ko)
EP (1) EP2646943B1 (ko)
KR (1) KR101852219B1 (ko)
CN (1) CN102737205B (ko)
WO (1) WO2012075385A2 (ko)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9824091B2 (en) 2010-12-03 2017-11-21 Microsoft Technology Licensing, Llc File system backup using change journal
US8620894B2 (en) 2010-12-21 2013-12-31 Microsoft Corporation Searching files
US8566336B2 (en) * 2011-03-30 2013-10-22 Splunk Inc. File identification management and tracking
US8548961B2 (en) 2011-03-30 2013-10-01 Splunk Inc. System and method for fast file tracking and change monitoring
CN104090829A (zh) * 2014-08-06 2014-10-08 浪潮电子信息产业股份有限公司 一种实现逻辑卷元数据备份存储的方法
CN105740303B (zh) 2014-12-12 2019-09-06 国际商业机器公司 改进的对象存储的方法及装置
CN105119995A (zh) * 2015-08-27 2015-12-02 北京恒华伟业科技股份有限公司 一种文件云保存方法、终端设备及备份服务器
CN107305582B (zh) * 2016-04-25 2020-05-08 华为技术有限公司 一种元数据处理方法及装置

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050091271A1 (en) 2003-10-23 2005-04-28 Kasy Srinivas Systems and methods that schematize audio/video data
US20070208918A1 (en) 2006-03-01 2007-09-06 Kenneth Harbin Method and apparatus for providing virtual machine backup
US20080034268A1 (en) * 2006-04-07 2008-02-07 Brian Dodd Data compression and storage techniques
US20090199199A1 (en) 2008-01-31 2009-08-06 Pooni Subramaniyam V Backup procedure with transparent load balancing
US20090228533A1 (en) 2008-03-05 2009-09-10 Ca, Inc. File change detection

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7346586B1 (en) * 1997-07-15 2008-03-18 Silverbrook Research Pty Ltd Validation protocol and system
US6625623B1 (en) * 1999-12-16 2003-09-23 Livevault Corporation Systems and methods for backing up data files
US20040010524A1 (en) * 2002-07-12 2004-01-15 Wallace Michael W. Efficient method and system for delivering resources in broadcast environment
US8417678B2 (en) * 2002-07-30 2013-04-09 Storediq, Inc. System, method and apparatus for enterprise policy management
US6934822B2 (en) * 2002-08-06 2005-08-23 Emc Corporation Organization of multiple snapshot copies in a data storage system
US6823493B2 (en) * 2003-01-23 2004-11-23 Aurilab, Llc Word recognition consistency check and error correction system and method
US7852343B2 (en) 2004-04-15 2010-12-14 Panasonic Corporation Burst memory access method to rectangular area
US20060106812A1 (en) * 2004-11-17 2006-05-18 Steven Blumenau Systems and methods for expiring digital assets using encryption key
JP4759574B2 (ja) * 2004-12-23 2011-08-31 ソレラ ネットワークス インコーポレイテッド ネットワークパケットキャプチャ分散ストレージシステムの方法及び機器
US7464126B2 (en) * 2005-07-21 2008-12-09 International Business Machines Corporation Method for creating an application-consistent remote copy of data using remote mirroring
CA2618135C (en) * 2005-08-09 2014-10-28 Nexsan Technologies Canada Inc. Data archiving system
US7831789B1 (en) * 2005-10-06 2010-11-09 Acronis Inc. Method and system for fast incremental backup using comparison of descriptors
US8015441B2 (en) * 2006-02-03 2011-09-06 Emc Corporation Verification of computer backup data
US7441092B2 (en) * 2006-04-20 2008-10-21 Microsoft Corporation Multi-client cluster-based backup and restore
US7809685B2 (en) * 2006-04-21 2010-10-05 Ricoh Co., Ltd. Secure and efficient methods for logging and synchronizing data exchanges
US20090048860A1 (en) * 2006-05-08 2009-02-19 Corbis Corporation Providing a rating for digital media based on reviews and customer behavior
US7882064B2 (en) * 2006-07-06 2011-02-01 Emc Corporation File system replication
US7797323B1 (en) * 2006-10-11 2010-09-14 Hewlett-Packard Development Company, L.P. Producing representative hashes for segments of a file
US20080263103A1 (en) * 2007-03-02 2008-10-23 Mcgregor Lucas Digital asset management system (DAMS)
US7822927B1 (en) * 2007-05-14 2010-10-26 Emc Corporation Dynamically configurable reverse DNLC lookup
US8271996B1 (en) * 2008-09-29 2012-09-18 Emc Corporation Event queues
US8595188B2 (en) * 2009-11-06 2013-11-26 International Business Machines Corporation Operating system and file system independent incremental data backup

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050091271A1 (en) 2003-10-23 2005-04-28 Kasy Srinivas Systems and methods that schematize audio/video data
US20070208918A1 (en) 2006-03-01 2007-09-06 Kenneth Harbin Method and apparatus for providing virtual machine backup
US20080034268A1 (en) * 2006-04-07 2008-02-07 Brian Dodd Data compression and storage techniques
US20090199199A1 (en) 2008-01-31 2009-08-06 Pooni Subramaniyam V Backup procedure with transparent load balancing
US20090228533A1 (en) 2008-03-05 2009-09-10 Ca, Inc. File change detection

Also Published As

Publication number Publication date
EP2646943B1 (en) 2015-11-04
CN102737205A (zh) 2012-10-17
CN102737205B (zh) 2016-01-06
WO2012075385A3 (en) 2012-09-13
WO2012075385A2 (en) 2012-06-07
EP2646943A4 (en) 2014-10-15
KR20140047570A (ko) 2014-04-22
US20120143824A1 (en) 2012-06-07
EP2646943A2 (en) 2013-10-09

Similar Documents

Publication Publication Date Title
KR101852219B1 (ko) 편집 가능 메타데이터를 포함하는 파일들을 보호하는 기법
US10503897B1 (en) Detecting and stopping ransomware
US8055633B2 (en) Method, system and computer program product for duplicate detection
US9645892B1 (en) Recording file events in change logs while incrementally backing up file systems
Kruus et al. Bimodal content defined chunking for backup streams.
US9715521B2 (en) Data scrubbing in cluster-based storage systems
US8676770B2 (en) Displaying changes to versioned files
US8627025B2 (en) Protecting data during different connectivity states
US20130067237A1 (en) Providing random access to archives with block maps
GB2511674B (en) Tracking changes related to a collection of documents
US20060036939A1 (en) Support for user-specified spreadsheet functions
US10204016B1 (en) Incrementally backing up file system hard links based on change logs
US8806062B1 (en) Adaptive compression using a sampling based heuristic
WO2011089864A1 (ja) ファイル群整合性検証システム、ファイル群整合性検証方法およびファイル群整合性検証用プログラム
JP2017107586A (ja) サーバーからのドキュメントの部分的なロードおよび編集
US8443178B2 (en) Operating system image shrinking apparatus and method and computer readable tangible medium storing a program for operating system image shrinking
WO2018006587A1 (zh) 一种文件存储方法、终端及存储介质
WO2019184218A1 (zh) 日志归档方法、电子装置及可读存储介质
WO2015196981A1 (zh) 一种鉴别图片垃圾文件的方法及装置
US9910857B2 (en) Data management
JP2006178964A (ja) 電子文書を検査し保存するための方法およびコンピュータ読取り可能記録媒体
US9158493B2 (en) Page description language package file preview
US20160378772A1 (en) Data storage system with fixity end-to-end data protection during data archiving
US8407187B2 (en) Validating files using a sliding window to access and correlate records in an arbitrarily large dataset
KR101889222B1 (ko) 악성코드탐지를 수행하는 이동식저장장치 및 이를 위한 방법

Legal Events

Date Code Title Description
N231 Notification of change of applicant
A201 Request for examination
E902 Notification of reason for refusal
E701 Decision to grant or registration of patent right
GRNT Written decision to grant