CN102737205A - 保护包括可编辑元数据的文件 - Google Patents

保护包括可编辑元数据的文件 Download PDF

Info

Publication number
CN102737205A
CN102737205A CN2011103949857A CN201110394985A CN102737205A CN 102737205 A CN102737205 A CN 102737205A CN 2011103949857 A CN2011103949857 A CN 2011103949857A CN 201110394985 A CN201110394985 A CN 201110394985A CN 102737205 A CN102737205 A CN 102737205A
Authority
CN
China
Prior art keywords
hash
file
content
metadata
head
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN2011103949857A
Other languages
English (en)
Other versions
CN102737205B (zh
Inventor
A.A.多施
G.B.利亚霍维特斯基
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Corp
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 Microsoft Corp filed Critical Microsoft Corp
Publication of CN102737205A publication Critical patent/CN102737205A/zh
Application granted granted Critical
Publication of CN102737205B publication Critical patent/CN102737205B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • 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
    • 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)
  • Databases & Information Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Human Computer Interaction (AREA)
  • Quality & Reliability (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Bioethics (AREA)
  • Health & Medical Sciences (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)

Abstract

这里描述的主题内容的方面涉及对可以包括内容和嵌入的元数据这二者的文件的数据保护。在各方面中,接收文件已经改变的指示。如果内容已经改变,则可以备份整个文件或者仅备份内容。如果仅元数据已经改变,则根据实施方式可以备份或者可以不备份元数据。替代解析文件以确定文件内的元数据的确切大小和定位,可以将文件划分成头部分、中间部分和尾部分这三个部分。这些部分的散列然后可以用来确定文件的元数据和/或内容是否已经改变。

Description

保护包括可编辑元数据的文件
背景技术
文件经常包括元数据。对文件的包括元数据的任何部分的改变可以触发备份系统向备份设备复制文件。就如今的多媒体和其它文件的大小而言,响应于对文件的改变来创建文件的多个副本可能快速填满备份设备。
这里要求保护的主题内容并不限于仅在例如上文描述的环境的环境中解决弊端或者操作的实施例。而是,提供这个背景技术仅为了说明一个其中可以实现这里描述的一些实施例的示例性技术领域。
发明内容
简而言之,这里描述的主题内容的方面涉及对包括内容和嵌入的元数据的文件的数据保护。在各方面中,接收文件已经改变的指示。如果内容已经改变,则可以备份整个文件或者仅备份所述内容。如果仅元数据已经改变,则根据实施方式可以备份或者可以不备份元数据。可以将文件划分成头部分、中间部分和尾部分这三个部分而不是解析文件以确定文件内元数据的确切大小和定位。这些部分的散列(hash)然后可以用来确定文件的元数据和/或内容是否已经改变。
提供这一发明内容以简洁地标识下文在具体实施方式中进一步描述的主题内容的一些方面。这一发明内容并非为了标识要求保护的主题内容的关键或者必要特征,也并非为了用来限制要求保护的主题内容的范围。
除非上下文另有明示,短语“这里描述的主题内容”是指在具体实施方式中描述的主题内容。术语“方面”将理解为“至少一个方面”。标识在具体实施方式中描述的主题内容的各方面并非为了标识要求保护的主题内容的关键或者必要特征。
这里描述的主题内容的上述方面和其它方面以实例的方式说明,并且不限于同样的标号表示相似元素的附图中。
附图说明
图1是代表这里描述的主题内容的方面可以并入于其中的示例通用计算环境的框图;
图2是一般性地代表根据这里描述的主题内容的方面的如下文件的框图,该文件包括嵌入于其中的元数据和内容;
图3是图示了根据这里描述的主题内容的方面的如下文件的框图,该文件具有在头部的元数据和随后的若干压缩块;
图4是代表根据这里描述的主题内容的方面配置的装置的框图;并且
图5是一般性地代表根据这里描述的主题内容的方面发生的示例动作的流程图。
具体实施方式
如这里所用,术语“包括”及其变体将理解为意味着“包括但是并不限于”的开放式术语。除非上下文另有指明,术语“或者”将理解为“和/或”。术语“基于”将理解为“至少部分基于”。术语“一个实施例”和“实施例”将理解为“至少一个实施例”。术语“另一实施例”将理解为“至少一个其它实施例”。
如这里所用,例如“一个/一种”和“该”这样的术语包括所言项目或者动作中的一个或者多个。具体而言,在权利要求中,提及项目一般意味着存在至少一个这样的项目,而提及动作意味着执行该动作的至少一个实例。
术语数据将广义地理解为包括一个或者多个计算机存储元件可以表示的任何事物。逻辑上可以在易失性或者非易失性存储器中将数据表示为连串的1和0。在具有非二进制存储介质的计算机中,可以根据存储介质的能力来表示数据。可以将数据组织成不同类型的数据结构(包括诸如数字、字母等简单数据类型、分级的、链接的或者其它相关数据类型、包括多个其它数据结构或者简单数据类型的数据结构等)。一些数据例子包括信息、程序代码、程序状态、程序数据、其它数据等。
标题仅为了方便;可以在标题指示给定主题的章节以外发现关于该给定的主题的信息。
下文可以包括其它明确和隐含定义。
示例操作环境
图1图示了本文描述的主题内容的方面可以实施于其上的适当计算系统环境100的例子。计算系统环境100仅为适当计算环境的一个例子而并非为了暗示与这里描述的主题内容的方面的使用或者功能范围有关的任何限制。计算环境100也不应解释为具有与在示例操作环境100中图示的部件中的任一部件或者组合有关的任何依赖或者要求。
这里描述的主题内容的方面与诸多其它通用或者专用计算系统环境或者配置一起操作。可以适合于与这里描述的主题内容的方面一起使用的公知计算系统、环境或者配置的例子包括个人计算机、服务器计算机、手持或者膝上型设备、多处理器系统、基于微控制器的系统、机顶盒、可编程消费电子设备、网络PC、微型计算机、大型计算机、个人数字助理(PDA)、游戏设备、打印机、包括机顶盒、媒体中心或者其它设备的设备、汽车嵌入或者附着的计算设备、其它移动设备、包括任何上述系统或者设备的分布式计算环境等。
可以在计算机执行的计算机可执行指令(例如程序模块)的一般背景中描述这里描述的主题内容的方面。一般而言,程序模块包括执行特定任务或者实施特定抽象数据类型的例程、程序、对象、组件、数据结构等。也可以在任务由通过通信网络来链接的远程处理设备执行的分布式计算环境中实现这里描述的主题内容的方面。在分布式计算环境中,程序模块可以位于包括存储器存储设备的本地和远程计算机存储介质中。
参照图1,用于实施这里描述的主题内容的方面的示例系统包括形式为计算机110的通用计算设备。计算机可以包括能够执行指令的任何电子设备。计算机110的部件可以包括处理单元120、系统存储器130和将包括系统存储器的各种系统部件耦合到处理单元120的系统总线121。系统总线121可以是若干总线结构类型(包括存储器总线或者存储器控制器、外围总线和使用各种总线架构中的任何总线架构的本地总线)中的任何总线结构类型。举例而言而非限制,这样的架构包括工业标准架构(ISA)总线、微通道架构(MCA)总线、增强型ISA(EISA)总线、视频电子标准协会(VESA)本地总线、外围部件互连(PCI)总线(也称为Mezzanine总线)、外围部件互连扩展(PCI-X)总线、高级图形端口(AGP)和PCI快速(PCIe)。
计算机110通常包括各种计算机可读介质。计算机可读介质可以是计算机110可以访问的任何可用介质并且包括易失性和非易失性介质以及可拆卸和不可拆卸介质。举例而言而非限制,计算机可读介质可以包括计算机存储介质和通信介质。
计算机存储介质包括用任何用于存储信息(例如计算机可读指令、数据结构、程序模块或者其它数据)的方法或者技术实施的易失性和非易失性、可拆卸和不可拆卸介质。计算机存储介质包括RAM、ROM、EEPROM、闪存或者其它存储器技术、CD-ROM、数字万用盘(DVD)或者其它光盘储存器、磁盒、磁带、磁盘储存器或者其它磁存储设备或者任何可以用来存储所需信息并且可以由计算机110访问的其它介质。
通信介质通常在调制的数据信号(例如载波或者其它传送机制)中具体化计算机可读指令、数据结构、程序模块或者其它数据并且包括任何信息递送介质。术语“调制的数据信号”意味着如下信号,该信号以这样的方式改变其特征集的一个或多个以便在该信号中编码信息。举例而言而非限制,通信介质包括有线介质(例如有线网络或者直接有线连接)和无线介质(例如声学、RF、红外线和其它无线介质)。也应当在计算机可读介质的范围内包括任何上述通信介质的组合。
系统存储器130包括形式为易失性和/或非易失性存储器(例如只读存储器(ROM)131和随机存取存储器(RAM)132)的计算机存储介质。基本输入/输出系统133(BIOS)通常存储于ROM 131中,该基本输入/输出系统133包含有助于例如在启动期间在计算机110内的单元之间传送信息的基本例程。RAM 132通常包含处理单元120立即可访问和/或处理单元120目前操作的数据和/或程序模块。举例而言而非限制,图1图示了操作系统134、应用程序135、其它程序模块136和程序数据137。
计算机110也可以包括其它可拆卸/不可拆卸、易失性/非易失性计算机存储介质。仅举例而言,图1图示了从不可拆卸、非易失性磁介质读取或者向其中写入的硬盘驱动器141、从可拆卸、非易失性磁盘152读取或者向其中写入的磁盘驱动器151和从可拆卸、非易失性光盘156(例如CD ROM或者其它光学介质)读取或者向其中写入的光盘驱动器155。可以在示例性操作环境中使用的其它可拆卸/不可拆卸、易失性/非易失性计算机存储介质包括磁带盒、闪存卡、数字万用盘、其它光盘、数字视频带、固态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)(惯称为鼠标、跟踪球或者触垫)向计算机110中录入命令和信息。其它输入设备(未示出)可以包括麦克风、操纵杆、游戏垫、碟形卫星天线、扫描仪、触敏屏幕、写字板等。这些和其它输入设备经常通过用户输入接口160(该用户输入接口耦合到系统总线)连接到处理单元120、但是可以由其它接口和总线结构(例如并行端口、游戏端口或者通用串行总线(USB))连接。
监视器191或者其它类型的显示设备也经由接口(例如视频接口190)连接到系统总线121。除了监视器之外,计算机也可以包括可以通过输出外围接口195连接的其它外围输出设备,例如扬声器197和指示器198。
计算机110可以使用到一个或者多个远程计算机(例如远程计算机180)的逻辑连接在联网环境中操作。远程计算机180可以是个人计算机、服务器、路由器、网络PC、对等设备或者其它常见网络节点并且通常包括上文相对于计算机110描述的元件中的多个或者全部,尽管在图1中仅已经图示存储器存储设备181。图1中描绘的逻辑连接包括局域网(LAN)171和广域网(WAN)173、但是也可以包括其它网络。这样的联网环境在办公室、企业范围计算机网络、内部网和因特网中司空见惯。
当使用于LAN联网环境中时,计算机110通过网络接口或者适配器170连接到LAN 171。当使用于WAN联网环境中时,计算机110可以包括调制解调器172或者用于通过WAN 173(例如因特网)建立通信的其它装置。可以是内部或者外部的调制器解调器172可以经由用户输入接口160或者其它适当机构连接到系统总线121。在联网的环境中,相对于计算机110描绘的程序模块或者其部分可以存储于远程存储器存储设备中。举例而言而非限制,图1将远程应用程序185图示为驻留于存储器设备181上。将理解所示网络连接为示例性的,并且可以使用其它在计算机之间建立通信链路的装置。
保护文件
如先前提到的那样,创建大型文件的多个副本可能快速填充备份设备。图2是一般性地表示根据这里描述的主题内容的方面的如下文件的框图,该文件具有嵌入于其中的元数据和内容。如图所示,文件200可以划分成头部分205、中间部分206和尾部分207。未按比例绘出这些部分205-207。
许多文件包括元数据或者与元数据关联。元数据是关于文件的数据而不是文件的实际内容。例如元数据可以包括作者、创建时间和日期、大小、用途、编码方案、色深度、图像分辨率、文件内容摘要或者关于文件的其它数据。
有时,在文件外部维护元数据。例如,文件系统可以维护与文件系统的文件有关的元数据。可以在文件系统数据结构中维护而不是在文件本身中嵌入这个元数据。
对于一些文件类型,向文件本身中嵌入(例如在文件本身以内放置)元数据。另外,不同文件类型(例如.mp3、.wav、.pdf、.GIFf、.bmp、.mov等)可以具有不同数量的元数据。相同文件类型可以具有不同数量的元数据用于该文件类型的文件的不同实例。
当元数据嵌入于文件中而不是存储于单独地方时,元数据经常放置于文件的开头或者末尾。检测是否仅元数据已经改变可以用来确定文件是否需要备份并且如果是这样则确定将针对该文件备份什么。
例如,为了节约备份空间,一些用户可能希望在仅文件的元数据改变时不创建文件的备份副本。例如多媒体文件的元数据“星”等级尽管有用但是可能对于用户而言不如文件内容的改变那样重要。
如这里描述的那样,一种用于确定文件的元数据是否已经改变的机制包括针对文件计算两个散列。具体而言,可以针对文件200的头部分205计算头部散列,并且可以针对文件200的尾部分207计算尾部散列。如果头部散列等于文件的先前计算的头部散列并且尾部散列等于文件的先前计算的尾部散列,则认为文件200的元数据尚未改变。
另一种用于确定文件的元数据是否已经改变的机制包括针对文件的头部分或者尾部分但是并非二者计算散列。具体而言,在一种实施方式中,仅针对文件200的头部分205计算头部散列。如果头部散列等于文件200的先前计算的头部散列,则认为文件200的元数据尚未改变。在这一实施方式中,可以在包括中间部分206和尾部分207的内容部分中包括文件200的尾部分207。这一实施方式可以例如在预期元数据在文件头部的情况下使用。
在另一实施方式中,仅针对文件200的尾部分207计算尾部散列。如果尾部散列等于文件200的先前计算的尾部散列,则认为文件200的元数据尚未改变。在这一实施方式中,可以在包括头部分205和中间部分206的内容部分中包括文件200的头部分205。这一实施方式可以例如使用于预计元数据在文件尾部的情况下。
在可以计算头部散列和尾部散列这二者的实施方式中,文件200的内容部分仅包括文件200的中间部分206。内容散列是针对被指定为内容部分的部分计算的散列,并且可以仅包括中间部分206、包括中间部分206和头部分205或者包括中间部分206和尾部分207。
散列是可以通过向输入数据应用一组运算(例如加法、乘法、除法、减法、移位等)来产生的输出数据。计算散列与向输入数据应用这组运算以获得输出数据同义。通常,输入数据比输出数据大得多。另外,输入数据大小可变,而输出数据可以是固定大小。产生散列的函数(有时称为散列函数)是确定性的:对于给定的输入数据而言意味着散列函数将生成相同输出数据。虽然散列函数可以向相同输出数据映射两个或者更多不同输入数据,但是可以选择散列函数以保证这一情况的出现概率相对小。利用这些性质,散列可以用来通过比较文件的数据的两个单独散列来检测文件(或者其部分)是否已经改变而无需比较文件的每个字节与它在文件的先前版本中的对应字节。
如果头部散列或者尾部散列不等于它的对应的先前计算的散列,则可以执行附加校验以确定是否仅元数据改变或者是否文件的元数据和内容改变。这一附加校验涉及针对文件200的中间部分206计算散列并且比较这一散列与针对文件200的中间部分206先前计算的散列。
如果中间散列等于先前计算的中间散列,则认为仅元数据已经改变。如果中间散列不等于先前计算的中间散列,则认为除了元数据之外或者替代元数据还改变了内容。
可以用各种方式执行选择视为文件200的头部分205的长度并且选择视为文件200的尾部分的长度。这里描述的一种示例方式是如下文描述的那样基于压缩块大小来选择长度。
为了节约空间,多媒体和其它文件可以具有压缩的内容。可以使用一种使用压缩块大小的压缩算法来压缩内容。为了查看和编辑内容,可以解压内容或者一个或者多个块。如果任何这一解压内容改变,则压缩算法可以压缩改变的内容,从而原压缩内容和新压缩内容明显或者完全不同——即使很少解压的内容改变。另外,对一个块中的内容进行的改变可以在压缩期间对整个文件内的其它块具有影响。
对具有嵌入的元数据的多媒体文件的这一压缩可以用于选择视为文件200的头部分205的长度和视为文件200的尾部分207的长度。为了检测仅元数据已经改变,可以选择等于元数据的长度。然而,因为元数据的长度可能随文件类型的改变而改变,或者甚至在同一文件类型内随文件的改变而改变,所以选择与元数据的长度确切相等的长度可以涉及具有关于元数据结构的理解并且能够解析元数据以确定它的长度。
选择经常或者总是比元数据的长度更小的长度可以触发备份机构以甚至针对元数据的改变来创建备份副本。作为极端例子,如果选择的长度为一个字节,则在头部分205的第一字节之后或者在尾部分207的最后字节之前的任何改变将视为文件的内容而不是元数据的改变。对内容的改变可以触发备份机构以创建文件的备份副本。
选择预期经常或者总是比元数据的长度更大、但是比压缩块大小更小的长度具有检测元数据的改变而未频繁地(或者从未)将对内容的改变归于对元数据的改变这样的效果。根据关于压缩算法的上述观察得出这一结论:甚至内容的最小改变也可以改变盘上的整个块的压缩内容或者甚至改变盘上的文件的全部压缩内容。
图3是图示了根据这里描述的主题内容的方面的如下文件的框图,该文件具有在头部的元数据和随后若干压缩块。如图所示,文件300包括嵌入的元数据305和已经在压缩块310-314中压缩的内容。已经选择长度320作为文件300的头部分的大小。如图所示的长度320略少于压缩块大小。
如果仅元数据305改变,则在文件300的头部的具有长度320的数据的散列检测到这一改变,但是可能不足以确定文件300的元数据305或者内容中是否出现改变。例如在点325之前的任一处的数据的改变可能使头部分的散列不同于头部分的先前计算的散列。头部分具有从文件的开头起的长度320并且大于元数据305。在这一情况下,为了检测元数据305或者元数据305之后的内容中是否出现改变,也可以计算中间部分(包括点325之后的数据)的另一散列。
计算中间部分的散列在确定元数据或者内容是否因为压缩算法的性质而改变时有效。具体而言,如果在压缩期间在元数据305之后、但是在点325之前的数据改变,则这可能引起对压缩块310中的甚至在点325之后的数据的改变。然而仅元数据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可以是如结合图1描述的网络接口或者适配器170、调制解调器172、USB或者其它端口或者用于建立通信的任何其它机构。
储存器435是能够存储数据的任何存储介质。储存器435可以实施为文件系统、数据库、易失性存储器(例如RAM)、其它储存器、上述储存器的一些组合等并且可跨多个设备而分布。储存器435可以在装置405外部、内部或者包括在装置405外部和内部的部件。
数据保护部件410可以包括改变检测器415、散列器420、散列管理器425、数据保护引擎430和其它部件(未示出)。如这里所用,术语部件将理解为包括硬件(例如设备的全部或者部分)、一个或者多个软件模块或者其部分的集合、一个或者多个软件模块或者其部分与一个或者多个设备或者其部分的一些组合等。
改变检测器415是检测保护的命名空间的文件是否已经出现改变。例如,改变检测器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到块515的线指示这一类型的实施方式。例如,起初可以针对文件的头部计算散列。如果散列不等于先前计算的头部散列,则这指示至少元数据已经改变。在这一点,可以计算文件中间部分的中间散列。如果这一中间散列不等同于先前计算的中间散列,则这指示文件的元数据和内容均已经改变。
另一方面,如果头部散列等于先前计算的头部散列,则可以计算尾部散列。如果尾部散列不等同于先前生成的尾部散列,则这意味着至少元数据已经改变并且可以执行进一步校验以确定内容是否也已经改变。
然而,如果头部散列等同于先前计算的头部散列并且尾部散列等同于先前计算的尾部散列并且文件已经改变(如改变检测器指示的那样),则这意味着文件的内容已经改变。在这一情况下,可以无需生成中间散列,因为其它条件可以用来推知内容已经改变。在这一情况下,在一个实施例中,可以备份包括内容和元数据的整个文件。在另一实施例中,可以仅备份内容。
替代首先计算头部散列,可以根据比较散列与先前生成的散列的结果用以下类似动作首先计算尾部散列。
在块520,确定文件的什么部分(一个或多个)已经改变。例如,使用由散列器420返回的散列,散列管理器425可以确定文件的内容、元数据或者内容和元数据是否已经改变。例如校验头部散列是否等于文件的先前计算的头部散列并且尾部散列是否等于文件的先前计算的尾部散列可以指示是否仅文件的内容已经改变。例如,如果这些条件均为真(并且文件已经改变),则可以确定文件的内容已经改变。
如果这些条件中的任一条件不为真,则认为至少元数据已经改变并且可以执行附加动作以确定内容是否也已经改变。
在块525,可以创建内容和/或元数据的备份副本。例如,参照图4,数据保护引擎430可以制作储存器435上的文件的已经改变的内容和/或元数据的备份副本。如果仅文件的元数据已经改变,则数据保护引擎430根据实施方式可以仅备份元数据或者避免创建文件的任何部分的备份副本。这可以涉及根据指示仅文件的头部分或者尾部分是否已经改变的散列而仅备份文件的头部分或者仅备份文件的尾部分。
在块530可以执行其它动作(如果有)。
如根据前文具体实施方式可见,已经描述了与数据保护有关的方面。尽管这里描述的主题内容的方面容许各种修改和替代构造,但是在附图中示出并且上文已经具体描述了其某些所示实施例。然而应当理解,不旨在将要求保护的主题内容的方面限于公开的具体形式,而是相反,旨在覆盖落入这里描述的主题内容的各种方面的精神和范围内的所有修改、替代结构和等效物。

Claims (10)

1.一种至少部分由计算机实施的方法,该方法包括:
接收(510)文件的数据已经改变的指示,所述文件包括嵌入其中的元数据和内容;
响应于所述指示,计算(515)至少两个散列,包括计算所述文件的头部分的头部散列和所述文件的尾部分的尾部散列;并且
至少部分地通过校验是否所述头部散列等于所述文件的先前计算的头部散列并且所述尾部散列等于所述文件的先前计算的尾部散列来确定(520)所述文件的所述元数据是否已经改变。
2.根据权利要求1所述的方法,还包括计算所述文件的中间部分的中间散列以便在与所述文件的先前计算的中间散列比较时使用。
3.根据权利要求2所述的方法,还包括如果所述头部散列不等于所述先前计算的头部散列并且如果所述中间散列等于所述先前计算的中间散列并且所述尾部散列等于所述先前计算的尾部散列,则创建仅所述文件的所述头部分的备份副本。
4.根据权利要求2所述的方法,还包括如果所述头部散列不等于所述先前计算的头部散列或者所述尾部散列不等于所述先前计算的尾部散列,则创建至少所述文件的所述头部分和所述文件的所述尾部分的备份副本。
5.根据权利要求2所述的方法,还包括如果所述中间散列不等于所述文件的所述先前计算的中间散列,则创建整个所述文件的备份副本。
6.一种在计算环境中的系统,包括:
改变检测器(415),其可操作地确定包括内容和嵌入的元数据的文件已经改变;
散列器(420),其可操作地接收数据并且通过对所述数据执行一组运算来基于所述数据产生散列;
散列管理器(425),其可操作地使用所述散列器来计算所述文件的内容部分的内容散列并且计算所述文件的头部分的头部散列和所述文件的尾部分的尾部散列中的一个或者多个,所述散列管理器还可操作地进行对散列的一个或者多个比较,包括比较所述头部散列与所述文件的先前计算的头部散列、比较所述尾部散列与所述文件的先前计算的尾部散列以及比较所述内容散列与所述文件的先前计算的内容散列,所述散列管理器还可操作地基于所述一个或者多个比较来指示所述文件的内容和/或元数据是否已经改变;以及
数据保护引擎(430),可操作地基于所述散列管理器指示什么已经改变来创建所述内容和/或所述元数据的备份副本。
7.根据权利要求6所述的系统,其中所述散列管理器可操作地在所述中间散列等于所述先前计算的中间散列的情况下指示仅所述元数据已经改变。
8.根据权利要求7所述的系统,其中可操作地基于所述散列管理器指示什么已经改变来创建所述内容和/或所述元数据的备份副本的数据保护引擎包括可操作地在所述散列管理器指示仅所述元数据已经改变的情况下避免创建所述备份副本的数据保护引擎。
9.根据权利要求7所述的系统,其中可操作地基于所述散列管理器指示什么已经改变来创建所述内容管理器和/或所述元数据的备份副本的所述数据保护管理器包括可操作地在所述散列管理器指示仅所述元数据已经改变的情况下创建仅所述元数据的备份副本的所述数据保护引擎。
10.一种具有计算机可执行指令的计算机存储介质,所述计算机可执行指令在执行时执行包括以下的动作:
接收(510)文件的数据已经改变的指示,所述文件包括嵌入其中的内容和元数据;
计算(515)所述文件的头部分的头部散列、所述文件的尾部分的尾部散列和所述文件的内容部分的内容散列中的一个或者多个;
如果所述头部散列不等同于所述文件的先前计算的头部散列或者如果所述尾部散列不等同于所述文件的先前计算的尾部散列,则比较(520)所述内容散列与所述文件的先前计算的内容散列;并且
如果所述内容散列不等同于所述先前计算的内容散列,则创建(525)至少所述文件的所述内容的备份副本。
CN201110394985.7A 2010-12-02 2011-12-02 保护包括可编辑元数据的文件 Expired - Fee Related CN102737205B (zh)

Applications Claiming Priority (2)

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/958412 2010-12-02

Publications (2)

Publication Number Publication Date
CN102737205A true CN102737205A (zh) 2012-10-17
CN102737205B CN102737205B (zh) 2016-01-06

Family

ID=46163198

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201110394985.7A Expired - Fee Related CN102737205B (zh) 2010-12-02 2011-12-02 保护包括可编辑元数据的文件

Country Status (5)

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

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104090829A (zh) * 2014-08-06 2014-10-08 浪潮电子信息产业股份有限公司 一种实现逻辑卷元数据备份存储的方法

Families Citing this family (7)

* 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
US8548961B2 (en) 2011-03-30 2013-10-01 Splunk Inc. System and method for fast file tracking and change monitoring
US8566336B2 (en) 2011-03-30 2013-10-22 Splunk Inc. File identification management and tracking
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 (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6625623B1 (en) * 1999-12-16 2003-09-23 Livevault Corporation Systems and methods for backing up data files
US20040030727A1 (en) * 2002-08-06 2004-02-12 Philippe Armangau Organization of multiple snapshot copies in a data storage system
US20070186127A1 (en) * 2006-02-03 2007-08-09 Emc Corporation Verification of computer backup data
US7831789B1 (en) * 2005-10-06 2010-11-09 Acronis Inc. Method and system for fast incremental backup using comparison of descriptors

Family Cites Families (23)

* 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
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
US6823493B2 (en) * 2003-01-23 2004-11-23 Aurilab, Llc Word recognition consistency check and error correction system and method
US20050091271A1 (en) * 2003-10-23 2005-04-28 Kasy Srinivas Systems and methods that schematize audio/video data
WO2005109205A1 (ja) 2004-04-15 2005-11-17 Matsushita Electric Industrial Co., Ltd. 矩形領域に対するバーストメモリアクセス方法
EP1828936A2 (en) * 2004-11-17 2007-09-05 Iron Mountain Incorporated Systems and methods for managing digital assets
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
US7801871B2 (en) * 2005-08-09 2010-09-21 Nexsan Technologies Canada Inc. Data archiving system
US20070208918A1 (en) 2006-03-01 2007-09-06 Kenneth Harbin Method and apparatus for providing virtual machine backup
WO2007118243A2 (en) * 2006-04-07 2007-10-18 Data Storage Group Data compression and storage techniques
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
US8375396B2 (en) * 2008-01-31 2013-02-12 Hewlett-Packard Development Company, L.P. Backup procedure with transparent load balancing
US8452736B2 (en) * 2008-03-05 2013-05-28 Ca, Inc. File change detection
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 (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6625623B1 (en) * 1999-12-16 2003-09-23 Livevault Corporation Systems and methods for backing up data files
US20040030727A1 (en) * 2002-08-06 2004-02-12 Philippe Armangau Organization of multiple snapshot copies in a data storage system
US7831789B1 (en) * 2005-10-06 2010-11-09 Acronis Inc. Method and system for fast incremental backup using comparison of descriptors
US20070186127A1 (en) * 2006-02-03 2007-08-09 Emc Corporation Verification of computer backup data

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
季靓等: "素材交换格式MXF文件的播放插件开发", 《电视技术》 *
崔兴华等: "重复数据检测在多版本数据备份中的应用", 《计算机应用研究》 *
徐旭等: "基于内容地址存储的文件级备份系统", 《计算机工程》 *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104090829A (zh) * 2014-08-06 2014-10-08 浪潮电子信息产业股份有限公司 一种实现逻辑卷元数据备份存储的方法

Also Published As

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

Similar Documents

Publication Publication Date Title
CN102737205A (zh) 保护包括可编辑元数据的文件
TWI258945B (en) Installing software on a mobile computing device using the rollback and security features of a configuration manager
US20080320387A1 (en) Information displaying device and information displaying method
CN102693280A (zh) 网页浏览方法、WebApp框架、执行JavaScript方法及装置、移动终端
CN106095261B (zh) 一种在电子设备上添加笔记的方法和装置
CN105049486A (zh) 静态文件的版本管理、文件拉取控制方法、装置及系统
CN112765271A (zh) 区块链交易索引的存储方法、装置、计算机设备及介质
US9355250B2 (en) Method and system for rapidly scanning files
CN104137057A (zh) 生成和高速缓存软件代码
CN102831001A (zh) 软件升级包的制作方法及装置、程序的升级方法及设备
CN110989937B (zh) 一种数据存储方法、装置、设备及计算机可读存储介质
US9633062B1 (en) Document fingerprints and templates
CN102331920B (zh) 一种数据处理方法及装置
CN102236698A (zh) 可嵌入的项目数据
CN112506941B (zh) 核查点的处理方法和装置、电子设备和存储介质
CN106484691B (zh) 移动终端的数据存储方法和装置
TW200713051A (en) Method for fast starting functional item of computer device by loading application program image file
KR101111400B1 (ko) 임베디드 시스템의 데이터 복원 장치 및 방법
KR20150122534A (ko) 전자 장치의 프로그램 코드 분석 방법 및 전자 장치
CN111562940B (zh) 项目数据构建方法以及装置
CN111831620B (zh) 用于存储管理的方法、设备和计算机程序产品
CN113792013B (zh) 基于邮件中附件内容的检索方法、计算设备及存储介质
CN109582638B (zh) 快照卷数据拷贝方法、装置及计算机可读存储介质
KR100948415B1 (ko) 임베디드 데이터 복구 장치 및 그 방법
JP6717152B2 (ja) インデックス生成プログラム、インデックス生成装置、インデックス生成方法、検索プログラム、検索装置および検索方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
ASS Succession or assignment of patent right

Owner name: MICROSOFT TECHNOLOGY LICENSING LLC

Free format text: FORMER OWNER: MICROSOFT CORP.

Effective date: 20150616

C41 Transfer of patent application or patent right or utility model
TA01 Transfer of patent application right

Effective date of registration: 20150616

Address after: Washington State

Applicant after: Micro soft technique license Co., Ltd

Address before: Washington State

Applicant before: Microsoft Corp.

C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20160106

Termination date: 20191202