CN101589386B - 增加透明的文件更新 - Google Patents

增加透明的文件更新 Download PDF

Info

Publication number
CN101589386B
CN101589386B CN200780044443.9A CN200780044443A CN101589386B CN 101589386 B CN101589386 B CN 101589386B CN 200780044443 A CN200780044443 A CN 200780044443A CN 101589386 B CN101589386 B CN 101589386B
Authority
CN
China
Prior art keywords
file
destination
file destination
data
command
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.)
Expired - Fee Related
Application number
CN200780044443.9A
Other languages
English (en)
Other versions
CN101589386A (zh
Inventor
伊塔·戈尔德
奥龙·韦克斯勒
科比·本兹维
伊扎克·波梅兰茨
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.)
Western Digital Israel Ltd
Original Assignee
SanDisk IL Ltd
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
Priority claimed from US11/944,639 external-priority patent/US8589341B2/en
Application filed by SanDisk IL Ltd filed Critical SanDisk IL Ltd
Publication of CN101589386A publication Critical patent/CN101589386A/zh
Application granted granted Critical
Publication of CN101589386B publication Critical patent/CN101589386B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

本发明提供一种用以保护目标文件免受数据损坏的系统和方法,其中包装应用程序透明地截取操作以影响所述目标文件的写入调用且将有关数据存储于增量文件中。偶尔将所述目标文件备份于临时文件中且接着进行更新。所述包装应用程序还截取操作以存取所述目标文件的读取调用且将更新信息与来自所述目标文件的数据合并于临时文件中。返回所得的合并数据以作为读取结果数据。

Description

增加透明的文件更新
技术领域
用以保护目标文件免受损坏的各种方法和系统均是可能的,且特定来说,方法和系统可防止在目标文件打开以供写入时由于干扰而发生的数据损坏。
背景技术
快闪存储器装置在计算机工程技术中是众所周知的。
将信息存储于此些存储器中的普通方式是在由操作系统管理的数据文件中。
快闪存储系统的已知特性为:如果在文件打开以供写入时发生例如电力故障或软件崩溃等某些意外事件,则数据文件易遭到数据损坏。此造成严重问题,因为进入文件内的写入是常规上必要的,且文件必须打开以供写入,以便将其更新。
已开发布用于使软件应用程序以减少风险的特殊方式来处置文件的解决方案。可在许多文字处理应用程序中看到此些解决方案,且周期性地产生打开的文件的备份复本。或者,当已检测到文件的破坏时,修正公用程序(fix utility)运行后效应。然而,此些解决方案是应用程序相依的,从而减慢了应用程序的开发,且此些解决方案是由于编程错误而引起的其它类型的问题的来源。此外,当运行的应用程序保护文件的原始版本且也保持经更新的临时复本时,出现存取冲突的问题(如果不同应用程序调用文件,则其将存取哪一文件?)。此需要文件的不便锁定。保护方法还可用于整个系统文件保护机制,其始终更新整个数据存储装置或特定重要数据的永久备份复本。保持永久备份需要大量数据存储空间和系统资源以始终检查和更新文件。
因此,广泛地认为需要且将高度有利的是具有允许任何应用程序使用任何数据文件而无将由于上述原因而损坏文件的风险且不保持永久备份复本的解决方案。
发明内容
用以保护目标文件免受数据损坏的各种方法和系统均是可能的,且特定来说,方法和系统可防止在目标文件打开以供写入时由于干扰而发生的数据损坏。
用于存储目标文件且保护目标文件免受数据损坏的系统的一实施例可包括:a)处理器,其经配置以检索和执行包装应用程序的程序代码,所述程序代码包括:i)用于截取由第二应用程序发布的至少一个文件命令的代码,所述至少一个文件命令操作以影响目标文件,ii)用于保存与至少一个文件命令有关的更新信息的代码,和iii)用于使用更新信息来更新目标文件的代码;b)第一存储器空间,其用于存储目标文件;以及c)第二存储器空间,其用于存储更新信息。包装应用程序可独立于发布文件命令的第二应用程序。
在其上包含计算机可读代码的计算机可读存储媒体的一实施例中,所述计算机可读代码用于保护目标文件免受数据损坏,所述计算机可读代码可包括:a)用于截取由应用程序发布且操作以影响目标文件的至少一个文件命令的程序代码;b)用于存储与至少一个文件命令有关的更新信息而不修改目标文件的程序代码;以及c)用于使用更新信息来更新目标文件的程序代码。计算机可读程序代码可独立于发布命令的应用程序。
采用包装程序来保护目标文件免受数据损坏的方法的一实施例可包括以下步骤:a)通过包装程序来截取操作以影响目标文件且由应用程序发布的至少一个文件命令,截取步骤对于应用程序是透明的;b)保存与至少一个文件命令有关的更新信息而不修改目标文件;以及c)使用更新信息来更新目标文件。
用于从受保护目标文件读取数据的系统的一实施例可包括经配置以检索和执行包装应用程序的程序代码的处理器,所述程序代码包括:用于截取由独立于包装应用程序的应用程序发布的至少一个文件命令的代码,所述文件命令操作以存取受保护目标文件;以及用于读取与文件命令有关的更新信息的代码。所述系统还可包括用于存储受保护目标文件的第一存储器空间和用于存储更新信息的第二存储器空间。
采用包装程序来读取受保护目标文件的方法的一实施例可包括以下步骤:通过包装程序来截取由应用程序发布的至少一个文件命令,所述文件命令操作以存取受保护目标文件。截取步骤对于应用程序可以是透明的。所述方法还可包括从增量文件读取与至少一个文件命令有关的更新信息的步骤。增量文件可与受保护目标文件分离。所述方法可进一步包括将来自目标文件的数据与更新信息合并和返回合并数据以作为对文件命令的响应的步骤。
用于存储目标文件且保护目标文件免受数据损坏的系统的一实施例可包括用于存储目标文件的第一存储器空间。所述系统还可包括用于存储与操作以影响目标文件的至少一个文件命令有关的更新信息的第二存储器空间。所述系统还可包括经配置以检索和执行包装应用程序的程序代码的处理器,所述程序代码包括:用于截取操作以影响目标文件的至少一个文件命令的代码;用于将更新信息保存到第二存储器空间的代码;以及用于使用更新信息来更新目标文件的代码。包装程序可独立于发布文件命令的应用程序。
在用于存储目标文件的系统中,第一存储器空间可驻存于数据处理装置的非易失性存储器中。在系统的一些实施例中,第二存储器空间可驻存于与第一存储器空间相同的非易失性存储器中,其中目标文件与更新信息存储于存储器中的单独位置中。在其它实施例中,第二存储器空间可驻存于数据处理装置的易失性存储器中。在其它实施例中,第二存储器空间可驻存于数据存储装置的存储器(易失性或非易失性)中。
在用于存储目标文件的系统中,第一存储器空间可驻存于便携式数据存储装置的非易失性存储器中。便携式数据存储装置的实例包括可移除媒体(例如,磁盘或光盘)或便携式驱动器(例如,快闪磁盘、外部硬盘或智能卡)。在一些实施例中,第二存储器空间可驻存于与第一存储器空间相同的存储器中,其中目标文件和更新信息存储于存储器中的单独位置中。在其它实施例中,第二存储器空间可驻存于数据处理装置的存储器(易失性或非易失性)中。在其它实施例中,第二存储器空间可驻存于便携式数据存储装置的易失性存储器中。
在用于存储目标文件的系统中,更新信息可仅包括与至少一个文件命令有关的数据。特定来说,更新数据、第二存储器空间和增量文件可能不含有从目标文件复制的数据。因此,即使在已存储由应用程序发布且操作以影响目标文件的命令后,将仅保留目标文件中的数据的一个复本(目标文件的数据的复本仅存储于第一存储器空间中)和与所存储文件命令有关的更新信息的一个复本(与所存储文件命令有关的数据仅存储于第二存储器空间中)。仅在合并事件后才将来自目标文件的数据的第二复本放置于临时文件内。
用于存储目标文件的系统的一实施例可进一步包括用于存储临时文件的第三存储器空间,且包装应用程序可进一步包括用于将目标文件的至少部分复制到临时文件内的代码。在替代实施例中,临时文件为独立文件或现有文件中的临时分配的位置或易失性存储器中的临时分配的位置。包装应用程序还可进一步包括用于将所存储的更新信息应用于临时文件以产生目标文件的经更新版本的代码。包装应用程序还可进一步包括用于使用临时文件来替换目标文件的一部分的代码。根据一替代实施例,第三存储器空间可驻存于与第一存储器空间相同的存储器中。在另一替代实施例中,第三存储器空间可驻存于与第二存储器空间相同的存储器中。在另一替代实施例中,第三存储器空间可驻存于上文所列举的存储器中的任一者中。因此,应理解,第三存储器空间可驻存于数据处理装置或数据存储装置的易失性或非易失性存储器中,且第三存储器空间的每一替代位置可与第一和第二存储器空间的每一替代位置组合。
其上包含用于保护目标文件免受数据损坏的计算机可读代码的计算机可读存储媒体的一实施例可包括用于截取由应用程序发布的至少一个文件命令的程序代码,程序代码独立于发布文件命令的应用程序。在下文所描述的实施例中,程序代码可独立于任何特定应用程序而被执行且从任意应用程序截取文件命令。文件命令操作以影响目标文件。还可包括用于保存与文件命令有关的更新信息而不修改目标文件且用于使用更新信息来更新目标文件的程序代码。在替代实施例中,代码可指定:将根据固定时间表来实行更新;或将响应于一个或一个以上终止事件来实行更新;或将根据固定时间表与一个或一个以上终止事件的组合来实行更新。计算机可读媒体的实例可包括便携式存储装置中所含有的ROM或以存储装置出售的封装中所包括的可移除媒体(例如,CD)。或者,计算机可读媒体可为安装于可经由因特网而存取的服务器上的硬盘。程序代码可充当独立程序以保护一个或一个以上任意存储装置上的数据。或者,代码可包括于驱动程序中以用于在数据处理装置上执行,驱动程序充当数据处理装置与数据存储装置之间的接口。或者,程序代码可并入操作系统内或文件服务器应用程序内。在另一可能的替代实施例中,通过数据存储装置内部的处理器来执行代码。
用于截取文件命令且保存更新信息的程序代码的一实施例可视一个或一个以上条件而进行截取和保存。举例来说,仅当发布命令的应用程序为多个“所包括的”应用程序中的一者时才可执行截取和保存。在本文描述的上下文中,可将“所包括的”应用程序界定为已被指定为包装程序将从其中截取用以修改目标文件的文件命令的应用程序(一般来说,所包括的应用程序为存储重要文件而无断电保护的应用程序[例如,MicrosoftVisual
Figure G2007800444439D00041
])。在一替代实例中,如果文件命令由不是“被排除的”应用程序的应用程序发布,则可截取文件命令且保存更新信息。在本文描述的上下文中,可将“被排除的”应用程序界定为已被指定为包装程序将不从其中截取用以修改目标文件的文件命令的应用程序(例如,Microsoft可为被排除的应用程序,因为其具有其自身的自动文件保护;或Microsoft Internet
Figure G2007800444439D00043
可被排除,因为其保存大量临时文件,但一般不保存用户修改的文件)。在一替代实例中,如果文件命令操作以影响不是临时文件的文件,则可截取文件命令且保存更新信息。在一替代实例中,如果文件命令操作以影响属于“所包括的”文件类型的文件,则可截取文件命令且保存更新信息。在本文的描述的上下文中,“所包括的”文件类型可为已被指定为受包装应用程序保护的文件类型[例如,.txt文件可为所包括的文件类型]。在一替代实例中,如果文件命令操作以影响不属于“被排除的”文件类型的文件,则可截取文件命令且保存更新信息。在本文描述的上下文中,“被排除的”文件类型可为已被指定为不受包装应用程序保护的文件类型[例如,.doc和.tmp文件类型可被排除],且在一替代实例中,如果文件命令操作以影响存储于所包括的存储装置中的文件,则可截取文件命令且保存更新信息。在本文描述的上下文中,可将所包括的装置界定为经指定用于保护以使得将保护所包括的装置上的文件的装置。
计算机可读代码的一实施例可进一步包括用以在执行用于保存的代码后且在执行用于更新的代码前截取操作以影响目标文件的每一写入命令的代码。
计算机可读程序代码的一实施例可进一步包括用于检测终止事件且用于在检测到终止事件后便使用更新信息来更新目标文件的代码。终止事件的一些实例可包括用以关闭目标文件的命令的发布、存取目标文件的应用程序的关闭、取决于与多个文件命令有关的统计的条件的出现[例如,如果被发布到目标文件的百分之八十的文件命令改变小于10千字节的数据,则可在发布文件命令以在目标文件中改变大于10千字节的数据时触发终止事件],和从目标文件的先前更新以来超过最大时间阈值。
计算机可读代码的一实施例可进一步包括:用于将目标文件的一部分复制到临时文件内的程序代码,和用于将所保存的更新信息应用于临时文件的程序代码。在一个替代实施例中,所述代码可提供用于打开临时文件且紧接在保存更新信息后复制数据。在第二替代实施例中,所述代码可提供用于打开临时文件且紧接在更新目标文件前复制数据。
计算机可读代码的一实施例可进一步包括用于在出现合并事件后便将所保存的更新信息应用于临时文件的程序代码。
根据所描述优选实施例的其它特征,合并事件的一些实例包括:i)用以关闭目标文件的命令的发布、ii)存取目标文件的应用程序的关闭、iii)取决于与多个文件命令有关的统计的条件的出现[例如,如果被发布到目标文件的百分之八十的文件命令改变小于10千字节的数据,则在发布文件命令以在目标文件中改变大于10千字节的数据时触发终止事件]、iv)含有更新信息的增量文件的大小超过最大大小阈值、v)操作系统的活动等级进入最小活动阈值以下、vi)从先前合并事件以来超过最大时间阈值,或vii)用以读取目标文件的命令的发布,在此情况下,将所保存的更新信息应用到临时文件将紧接在读取命令的执行仿真之前。因此,临时文件中所含有的经更新数据将作为读取信息而返回到发布读取命令的应用程序。或者,将所保存的文件命令应用到临时文件可紧接在目标文件的更新之前。
根据所描述优选实施例中的其它特征,计算机可读代码可进一步包括用于检测终止事件的程序代码,和在检测到终止事件后便使用所保存的更新信息来更新目标文件且接着删除目标文件或临时文件或含有所保存的更新信息的增量文件的程序代码。
使用包装程序来保护目标文件免受数据损坏的方法的一实施例可包括包装程序透明地截取操作以影响目标文件的至少一个文件命令的步骤,包装程序独立于发布文件命令的应用程序,且包括包装程序保存与至少一个文件命令有关的更新信息而不改变目标文件的步骤。更新信息可含有为执行至少一个文件命令所必需的信息。所述方法还可包括使用更新信息来更新目标文件的步骤。
根据所描述优选实施例中的其它特征,在保存更新信息的开始直到使用所保存的更新信息来更新目标文件的结束之间的时间间隔中,可截取和保存由多个所包括的应用程序中的应用程序所起始且操作以影响目标文件的每一写入命令。
根据所描述优选实施例中的其它特征,更新目标文件可包括以下子步骤:将目标文件的至少部分复制到临时文件内且将所保存的更新信息应用于临时文件,和使用临时文件的全部或部分来替换目标文件的全部或部分,因此有效地更新目标文件且删除临时文件。
根据所描述优选实施例中的其它特征,可在将所存储的更新信息应用于临时文件的步骤后删除含有更新信息的增量文件。
根据所描述优选实施例中的其它特征,可在出现一个或一个以上终止事件后便执行更新步骤。终止事件的实例包括以下内容:i)用以关闭目标文件的命令的发布、ii)存取目标文件的应用程序的关闭、iii)取决于与多个文件命令有关的统计的条件的出现[例如,如果在半小时的周期内应用程序每隔五分钟对目标文件存取至少一次,则在十分钟周期内不存取目标文件的应用程序为触发目标文件的更新的终止事件]、iv)操作系统的活动等级进入最小活动阈值以下、v)从先前所保存的文件命令的发布以来超过最大时间阈值,和vi)从先前合并事件以来超过最大时间阈值。
根据所描述优选实施例中的其它特征,截取文件命令且保存更新信息的步骤可视条件而定。举例来说,仅可在以下情况下发生截取和存储:当由多个所包括的应用程序中的应用程序发布文件命令时、当由除了被排除的应用程序以外的应用程序发布文件命令时、当文件命令操作以影响除临时文件以外的文件时、当文件命令操作以影响所包括的文件类型时、当文件命令不操作以影响被排除的文件类型的文件时,或当文件命令操作以影响存储于所包括的存储装置中的文件时。
用于从受保护目标文件读取数据的系统的一实施例可包括经配置以从存储媒体检索包装应用程序的代码且经配置以执行所述代码的处理器。包装应用程序可包括用于截取由独立于包装应用程序的应用程序所发布的至少一个文件命令的代码,文件命令操作以存取受保护目标文件。包装应用程序还可包括用于读取与文件命令有关的更新信息的代码。所述系统还可包括用于存储受保护目标文件的第一存储器空间和用于存储更新信息的第二存储器空间。
根据所描述优选实施例中的其它特征,用于从受保护目标文件进行读取的系统的包装应用程序还可包括用于将来自受保护目标文件的数据与更新信息合并到临时文件内的代码。临时文件可为含有更新信息的文件,或临时文件可为单独的临时文件。临时文件和更新信息可存储于与目标文件相同的存储器装置上或单独的存储器装置上。
采用包装程序来读取受保护目标文件的方法的一实施例可包括以下步骤:通过包装程序来截取由应用程序发布的至少一个文件命令,文件命令操作以存取受保护目标文件。截取步骤对于发布命令的应用程序可以是透明的。所述方法还可包括读取与至少一个文件命令有关且存储于增量文件中的更新信息的步骤。增量文件可与受保护目标文件分离。所述方法进一步含有将来自目标文件的数据与所述更新信息合并和返回合并数据以作为对文件命令的响应(响应为读取结果数据)的步骤。
术语
在本申请案中根据其普通意义而使用以下术语,所述意义被理解成为所属领域的技术人员所知道的。然而,为了鉴于本申请案的标的物的进一步阐明,以下解释、推敲和示范是关于这些术语在本文中可如何被使用或应用而被给出。应理解,以下解释、推敲和示范应被视为示范性的或代表性的,且不应被视为独占式的或限制性的。而是,下文所论述的术语应被尽可能广泛地解释为与其普通意义和以下论述一致。
○合并:(例如)将保存在增量文件中的更新信息应用于从目标文件复制到临时文件(例如,临时文件可为增量文件或单独的临时文件)内的内容的过程。
○合并事件:触发合并过程的事件。事件可基于操作系统事件,例如,时基、文件系统操作或来自包装应用程序的指示。
○更新目标文件:将更新信息应用于目标文件的过程(见上文)。在一优选实施例(下文)中,通过将目标文件的一部分复制到临时文件、将更新信息应用于临时文件且使用临时文件中的对应经更新数据来替换目标文件的所述部分而执行更新目标文件。
○增量文件:可用于(例如)累积与目标文件的既定改变有关的更新信息的临时文件。
○目标文件:作为某一动作、操作、过程等的既定对象的文件,不管文件是否实际上被作用、影响等。本文中,“目标文件”可用以指代将被保护免受数据损坏的文件。
○截取:监视、检查、改变和/或重新引导(例如)应用程序与文件系统之间或应用程序与操作系统之间的通信的过程。
○独立应用程序:如果第一应用程序不视第二应用程序而定(即,不需要第二应用程序来起既定作用),则称第一应用程序独立于第二应用程序。
○包装:监视、截取和/或控制(例如)另一应用程序与计算机系统之间或一个或一个以上应用程序与装置之间的通信的应用程序。
○数据存储装置:(例如)由数据处理装置用以存储数据且可从其中检索数据的机构。数据存储装置可为可安装的(例如,硬盘)或可移除的(例如,快闪磁盘)或为可移除媒体(例如,压缩磁盘或磁带)。
○存储命令:出于本申请案对目的,“将命令存储于增量文件中”可用以指代将与命令有关的更新信息存储于增量文件中的操作,更新信息含有在将来时间应用命令所必需的数据。
附图说明
在本文中参考附图仅以实例的方式描述用于保护文件免受数据损坏的系统和方法的各种实施例,附图中:
图1A为现有技术的文件存储系统的示意性说明;
图1B为用于存储和保护目标文件的系统的第一实施例的示意性说明;
图2为用于存储和保护目标文件的系统的第二实施例的示意性说明;
图3为说明读取命令的截取和重新引导以及读取目标文件的仿真的流程图;
图4为说明将更新信息应用于临时文件的流程图;以及
图5为说明截取和重新引导对目标文件的写入调用的过程的流程图。
具体实施方式
可参看图式和随附描述来更好地理解根据各种实施例的增加透明的文件更新的原理和操作。
各种优选实施例示范通过使文件保持打开以供写入的时间最小化、因此使将在文件打开时发生意外事件的风险最小化来使损坏数据文件的风险最小化的系统。
根据优选实施例,应用程序实施操作以存取受保护数据文件(目标文件)的读取和写入命令,而目标文件保持打开以仅供读取——不会将文件置于风险中的过程。较小服务存储区域(在下文中称作增量文件)保持打开且用于存储与操作以通过一个或一个以上应用程序来影响一个或一个以上数据文件(目标文件)的文件命令有关的更新信息。同时,通过包装应用程序来仿真对目标文件的读取和写入。包装应用程序启动、监视、截取和仿真功能应用程序与装置之间或功能应用程序与操作系统之间的通信中的基本要素。特定来说,所有更新信息累积于一个或一个以上增量文件中。必要时(例如,为了仿真经更新目标文件的读取或准备更新目标文件时),将所存储的更新信息和从目标文件所读取的数据合并到临时文件内。在合并过程中,打开临时文件以供写入,且将目标文件的部分或全部复制到临时文件。包装应用程序接着基于存储于增量文件中的更新信息来更新临时文件。
偶尔也更新目标文件。当更新目标文件时,首先关闭和检查临时文件。接着由临时文件替换目标文件的一部分。此过程通过使目标文件打开且易受数据损坏的时间最小化来保护目标文件免受数据损坏。此外,如果在将目标文件复制到临时文件时发生电力故障,则目标文件保持完整。如果在更新目标文件的一部分时发生电力故障,则临时文件保持完整。
文件系统和功能应用程序两者均看不到此包装过程,其对于两者是透明的。功能应用程序恰好在不存在包装应用程序时起作用。文件系统处置恰好在不存在包装应用程序时到达文件系统的所有文件命令。
因此,功能应用程序员根据操作系统标准来写入其程序,而无需使程序适应于或甚至意识到文件保护例行程序。同样,程序员不需要设计应用程序相依例行程序来防止在为存储而写入时归因于中断的数据损坏。
因为包装程序的功能对于功能应用程序和文件系统是透明的,所以包装程序可独立于任何特定功能应用程序而起作用。因此,包装程序可作为用于保护由任意功能应用程序存取的文件的独立程序而被单独出售。由于包装程序独立于任何特定功能应用程序,所以包装程序可包括在装置驱动程序中或必须响应于来自用户可安装的任何程序的命令的操作系统中。
图1A展示现有技术的数据处理装置120a(例如,个人计算机),其具有处理器121a。处理器121a执行应用程序122a(例如,Microsoft
Figure G2007800444439D00091
Notepad文本编辑器)和文件管理系统124a(例如,FAT32或NTFS)。应用程序122a和文件管理系统124a被说明为在处理器121a内部以指示处理器121a执行应用程序122a和文件管理系统124a。
应用程序122a发布文件命令,例如,操作以存取文件130a的读取调用134a。文件130a存储于便携式数据存储装置126a中。读取调用134a直接由文件管理系统124a处理。文件管理系统124a打开文件130a以供读取,且从文件130a读取135a数据且将数据发送137a到应用程序122a。在稍后时间,应用程序122a发布第二文件命令(操作以影响文件130a的写入调用136a)。如所属领域的技术人员已知的,文件一般不驻存于单一连续存储器地址集合中,而是由其地址通过存储器地址指针集合而进行关联的部分串组成。特定来说,文件130a由三个区段130a-i、130a-ii和130a-iii构成。当修改文件时,可能有必要添加不配合当前分配给文件的存储器的信息。在此情况下,没有必要将整个文件移到新存储器范围,而是,使新地址与文件相关联且将新数据写入到新存储器空间中。文件管理系统124a接收写入调用136a、打开文件130a以供写入且将数据直接写入139a到文件130a。此为现有技术。
众所周知,当在写入到例如便携式数据存储装置126a等装置时发生干扰(例如,电力故障,或便携式数据存储装置126a从插槽的移除,或软件故障)时,有价值的数据可能从打开的文件中丢失。因此,每当例如应用程序122a等应用程序发布例如写入命令136a的写入命令时,图1A的系统的文件130a均处于严重的数据损失危险中。
图1B展示用于增加透明的文件更新的系统的第一实施例,其包括数据处理装置120b(例如,个人计算机),其含有运行应用程序122b(例如,MicrosoftWindows Notepad文本编辑器)、包装应用程序150(也在处理器121b上执行)和文件管理系统124b(例如,FAT32或NTFS)的处理器121b。应用程序122b和包装应用程序150在图1B中被呈现为在处理器121b内部,以指示处理器121b执行应用程序122b和包装应用程序150。
应用程序122b发布文件命令,例如,操作以影响存储于行动存储装置126b上的文件130b的写入调用136b。应用程序122b为标准应用程序,且所有文件命令(包括写入调用136b)是根据标准操作系统协议而发布。
目标文件130b由被标记为130b-i、130b-ii和130b-iii的三个部分组成。每一部分130b-i、130b-ii和130b-iii占用连续的存储器地址串。每一部分130b-i和130b-ii的最后一个字节为指向目标文件130b的下一部分的第一地址的指针。部分130b-iii的最后一位为代表文件130b的结束的停止位。写入调用136b由包装应用程序150截取。在此实例中,写入调用136b操作以影响部分130b-ii。当包装应用程序150检测到写入调用136b时,则包装应用程序150检查以确定是否截取和重新引导写入调用136b。在图1B的实施例的实例中,截取和重新引导写入调用136b视达到所有以下条件而定:存储装置126b为将被保护的存储装置类型中所包括的类型,且文件130b的类型包括在将被保护的文件类型中。在此实例中,由于在包装应用程序150的设置期间用户指定所有便携式存储装置应受保护,且由于便携式存储装置126b的驱动例行程序将便携式存储装置126b界定为便携式存储装置,因此,便携式存储装置126b为所包括的存储装置。类似地,文件130b为所包括的文件类型(.txt文件),因此,包装应用程序150截取和重新引导写入调用136b。
系统调用的截取可以编程领域中的技术人员已知的许多方式来完成,如例如尼太什·汉贾尼(Nitesh Dhanjani)和古斯塔沃·罗德里格兹·里维拉(Gustavo Rodriguez-Rivera)在里纳克斯杂志(Linux Journal)2006中出版的“可加载的核心模块编程和系统调用截取(Loadable Kernel Module Programming and System Call Interception)”的计算机编程教材中详细所描述。特定来说,包装应用程序150防止写入调用136b直接传输到文件管理系统124b。作为替代,包装应用程序150指令152b文件管理系统124b将与写入调用136b有关的更新信息保存在增量文件158中。文件管理系统124b将更新目标文件130b所必需的更新信息写入139b到增量文件158。在图1B的实例中,更新信息包括用以添加到目标文件130b的数据。将理解,更新信息可为编辑信息(例如,用以将数据块从目标文件130b内的一个位置移到另一位置的指令,或用以从目标文件130b移除数据块的指令),在此情况下,其更新信息可能不包括目标文件130b的新数据。或者,如果不存在增量文件158,则文件管理系统将首先在写入139b数据前创建增量文件158。包装应用程序150报告回运行的应用程序122b,如同目标文件130b已被更新一样,因此仿真对目标文件130b的写入。在仿真的写入过程期间,所有写入已到达增量文件158。目标文件130b尚未被修改,且目标文件130b尚未被打开以供写入。应强调的是,包装应用程序150根据标准操作系统协议而接收文件命令,且将响应和数据返回到应用程序122b,从而精确地仿真操作系统响应和数据。因此,包装应用程序150的活动对于应用程序122b是透明的,且因此,应用程序122b的活动是根据操作标准且由于存在包装应用程序150而不需要修改。
在图1B的实例中,包装应用程序150和应用程序122b均由单一处理器121b执行。因此,为了促进命令截取,包装应用程序包装应用程序122b。“包装”应用程序122b意味着应用程序122b不独立地运行。而是,当用户请求开始应用程序122b时,使请求通过包装应用程序150。包装应用程序150调用在包装应用程序150“内部”运行(由包装应用程序150包装)的应用程序122b(即,去往和来自应用程序122b的所有输入和输出均经由包装应用程序150)。
在稍后时间,应用程序122b发布第二文件命令(读取调用134b)。读取调用134b存取目标文件130b且尤其在部分130b-ii处存取。包装应用程序150接着重新引导读取调用134b,且通过发布存取目标文件130b的第一读取调用134c来仿真从目标文件130b读取数据。读取调用134c由文件管理系统124b处理。文件管理系统124b打开文件130b以供读取,且从文件130b的部分130b-ii读取135c数据且将读取结果数据发送137c到包装应用程序150。
包装应用程序150接着检查是否存在与目标文件130b相关联的增量文件158且增量文件158中的更新信息是否适用于读取调用134b的范围。在图1B的实例中,存在增量文件158且文件130b的部分130b-ii中含有读取调用134b的范围,且增量文件158确实含有读取调用134b的范围的更新信息。因此,为了实行读取调用134b且将最新读取结果数据(仿真的读取信息)返回到应用程序122b,有必要将与存储于增量文件158中的文件命令152b有关的更新信息与来自目标文件130b的数据合并。因此,读取调用134b构成触发存储于增量文件158中的命令与存储于目标文件130b中的数据的合并的合并事件。为了执行合并,包装应用程序150发布存取增量文件158的第二读取调用134d。读取调用134d由文件管理系统124b处理。文件管理系统124b打开增量文件158以供读取,且从增量文件158读取135d数据且将读取结果数据发送137d到包装应用程序150。
来自读取135c-d的读取结果数据由包装应用程序150通过将来自读取135d的更新信息应用于来自读取135c的数据而被合并,且合并数据被发送137b到运行的应用程序122b,从而仿真响应于读取请求134b返回读取结果数据。因此,包装应用程序已仿真从目标文件130读取经更新的数据。应用程序122b未意识到其尚未直接与文件管理系统124b通信。
在此点上,来自读取135c-d的合并数据构成目标文件130b的部分130b-ii的经更新版本。因为在此实例中数据处理装置120b上的活动当前为低(存在许多自由处理能力,使得更新目标文件130将不干扰任何其它过程),所以包装应用程序150更新目标文件130b。将理解,没有必要在每次将数据合并到临时文件内时更新目标文件130b。为了更新目标文件130b,包装应用程序150首先指令152c文件系统124b将合并数据写入139c到增量文件158内(因此替换先前存储于增量文件158中的命令信息)。接着,包装应用程序150指令文件系统124b通过使用现在存储于增量文件158中的合并数据来替换193部分130b-ii而更新目标文件130b。由于目标文件130b和增量文件158两者均已经存在于同一存储装置126b上,所以接着仅通过改变地址指针以将增量文件158并入目标文件130b内以代替部分130b-ii来实现替换193。尤其在图1B的实例中,将增量文件158的结束处的指针的地址设置成指向文件130b的部分130b-iii的开始处,且接着关闭增量文件158。在包装应用程序150核实已关闭增量文件130b时,打开目标文件130b以供写入,且将目标文件130b的部分130b-i的结束处的指针设置成指向增量文件158的开始的地址处,且接着关闭目标文件130b。最终,释放增量文件130b的部分130b-ii的存储器空间以供将来写入命令使用。由于已将增量文件158完全重新分配给目标文件130b,因此,从存储装置126b的目录移除增量文件158的开始的存储器指针,从而有效地删除了增量文件158。当存在将来写入命令时,包装应用程序150将需要创建新增量文件。
在图1B的实例中,通过读取调用134b来触发将从目标文件130b复制的数据与存储于增量文件158中的命令合并。还在每当存在使得有必要更新目标文件130b的终止事件时触发合并。在更新目标文件130b前,将存储于增量文件158中的更新信息与存储于目标文件1 30b中的数据合并到临时文件内(如上文,增量文件158可充当临时文件)。以此方式,临时文件充当目标文件130b的备份,如果在更新目标文件130b时发生电力故障,进而损坏目标文件130b,则可从临时文件恢复目标文件130b的数据。还可在从最后合并以来已超过时间阈值后存在可用资源[存储器空间和处理器时间]时的任何时间触发合并。
许多事件可触发目标文件的更新。更新可被周期性地触发(例如,目标文件130b可每隔15分钟被更新一次),或更新可通过终止事件来触发。终止事件的实例包括已存取目标文件的应用程序122b的关闭、或增量文件158变得太大(超过大小阈值),或组合事件(组合事件的一实例为在从最后更新以来已超过时间阈值后存在可用资源(存储器空间和处理器时间)的组合)。
所属领域的技术人员将理解,增量文件158还可由若干部分组成,增量文件158的第一部分可包括部分130b-ii的文件命令,而增量文件158的第二部分含有部分130b-iii的文件命令。在此情况下,有可能将部分130b-ii与增量文件130b的第一部分合并且接着更新部分130b-ii,从而使文件130b的部分130b-iii保持于其原始状态,从而使增量文件158仅含有第二部分。类似地,将理解,可通过改变文件目录地址指针或停止位而改变文件的第一或最后部分。所属领域的技术人员将理解交换文件的部分的其它现有手段。
在图1B的实施例中,增量文件158存储于与目标文件130b相同的存储器(便携式存储器装置126b)上。应理解,增量文件158可为驻存于数据处理装置120b的快速易失性存储器中或硬盘中或数据处理装置120b的非易失性存储器中或另一便携式存储装置中或可移除媒体(例如,可写入到压缩磁盘)中的临时文件的一部分。类似地,在图1B的实施例中,包装应用程序150将读取135c-d的数据合并到空间(计算装置120b的易失性存储器)内,因此有效地将读取调用134b重新引导到含有合并数据的空间。应理解,合并信息可存储于任何存储器装置上,例如,存储于硬盘中或数据处理装置120b的非易失性存储器中或另一便携式存储装置中或可移除媒体(例如,可写入的压缩磁盘)中。
图2展示数据处理装置220(例如,并行处理器的网络),其运行应用程序222(例如,Microsoft Visual
Figure G2007800444439D00141
)、包装应用程序250和文件管理系统224(例如,FAT32或NTFS)。
应用程序222发布文件命令(操作以影响存储于存储装置226中的文件230的写入调用236)。写入调用236由包装应用程序250截取。在图2的实施例中,由处理器221b执行包装应用程序250,而在单独的处理器221a(数据处理装置220的网络中的处理器)上执行应用程序222。包装应用程序250通过指令252文件管理系统224将与写入调用236有关的更新信息保存在增量文件258中来重新引导写入调用236。文件管理系统224仅将更新目标文件230所需的更新信息写入239到增量文件258。将与写入调用236有关的更新信息保存到增量文件258,而目标文件230保持不变。包装应用程序250报告回到运行的应用程序222,如同目标文件230已被更新一样,因此仿真对文件230的写入。在图2的实例中,增量文件258存储于数据处理装置220的易失性存储器中。
稍后在检测到“终止事件”288的出现后(在图2的实例中,终止事件288为应用程序222的关闭,所述应用程序222已发布操作以影响目标文件230的写入调用236),包装应用程序250便更新目标文件230。因为增量文件258不存储于与文件230相同的存储装置226上,所以不可能通过将数据复制到增量文件258内以及将更新信息应用于增量文件258中的复制数据并改变指针(如在图1B的实例中)来更新目标文件230。为了更新目标文件230,包装应用程序250必须首先将来自增量文件258的所存储的更新信息与来自目标文件230的数据合并到存储装置226上的临时文件292内。因此,包装应用程序250指令290文件系统224创建294临时文件292、将来自目标文件230的内容复制296到临时文件292内且将存储于增量文件258中的文件命令(与写入调用236有关的更新信息)应用298于临时文件292。一旦合并成功地结束,包装应用程序250便指令文件系统224关闭临时文件292且使用临时文件292来替换293目标文件230。因为目标文件230和临时文件292两者均已经存在于同一存储装置226上,所以仅通过从文件目录移除去往临时文件292的指针且将目标文件230的指针(所存储的地址)改变为临时文件292的地址来实现替换293(因此有效地更新目标文件230且删除临时文件292)。
在图2的实例中,因为应用程序222不由与执行包装应用程序250相同的处理器221执行,所以包装应用程序250不能包装应用程序222(控制应用程序222的所有输入和输出)。因此,包装应用程序250包装文件系统224,使得对文件系统224的所有调用均通过包装应用程序250。因此,包装应用程序250有效地包装存储装置226。
应理解,文件230可由多个应用程序存取。因此,来自每一应用程序的写入命令由包装应用程序250截取且被重新引导到增量文件258。类似地,任何应用程序读取文件230的尝试将被截取且触发合并事件。所属领域的技术人员将理解,不同于必须锁定对受保护文件的存取的现有技术的单一应用程序文件保护机制(例如,由
Figure G2007800444439D00151
Word所使用的机制),包装应用程序250准许多个应用程序对目标文件230进行同时读写存取。
所属领域的技术人员也将理解锁定文件存取和文件存取冲突的可能性。尤其在图1的实施例(其中,包装应用程序150仅包装一个或一个以上特定应用程序(例如,应用程序222),而不包装文件系统124b)中,有可能单独的应用程序(不由包装应用程序150包装)不经由包装应用程序150而存取文件130b。在此些情况下,存在现有技术的解决方案(例如,锁定文件130b)(例如,如杰弗里·里切特(Jeffery Richter)在1997年在华盛顿州里德蒙特市的微软出版社(Microsoft Press,Redmond Washington)出版的第3版高级视窗(Advanced Windows 3rd Edition)且特别在第711到715页中所描述)。
应理解,在一替代实施例中,可将数据从目标文件230复制296到临时文件292以作为截取第一写入调用236的一部分。在此实施例中,临时文件292将为目标文件230的始终更新的版本,且更新目标文件230将仅由关闭临时文件292和将目标文件230的地址指针移到临时文件292的地址组成。
在图2的实例中,处理器221a-b为数据处理装置220的多处理器网络的组件。所属领域的技术人员应理解,存在替代的处理器配置且其与用以保护文件的系统和方法的各种实施例兼容。举例来说,处理器221b可为数据存储装置226的内部组件,或处理器221b可为网络上的专用文件系统服务器的组件。
图3展示图2的实施例的读取过程的简化流程图。包装应用程序250截取301来自应用程序222的读取命令。包装应用程序250首先测试302是否存在含有读取命令被引导到的文件230的更新信息的增量文件。如果不存在增量文件,则将控制返回到文件管理系统224,文件管理系统224通常根据现有技术来处理读取命令:通过直接从目标文件230读取306所请求的范围且将读取结果数据返回309到请求的应用程序222。
如果测试302返回正结果(即,存在含有将要读取的文件230的更新信息的增量文件258),则包装应用程序250进一步检查304增量文件258的更新信息是否操作以影响读取命令的范围。如果不存在所请求的范围的更新信息,则将控制返回到文件管理系统224,文件管理系统224通常根据现有技术来处理读取命令:通过直接从目标文件230读取306所请求的范围且将数据返回309到请求的应用程序222。
如果测试304返回正结果(增量文件258含有将要读取的数据范围的更新信息),则包装应用程序250合并308将要从增量文件读取的范围的数据与来自目标文件的更新信息(通过把将要从目标文件230读取的范围复制到临时文件292且将来自增量文件258的更新信息应用于临时文件292中的复制数据),且将来自所请求的范围的合并数据返回309到请求的应用程序222。
图4展示根据图2的实施例的合并过程的简化流程图。包装应用程序250检测410指示需要开始合并过程(在更新目标文件230之前)的终止事件288的出现。尤其在图4的实例中,用户关闭应用程序222,应用程序222在当前会话中已发布用以修改目标文件230的至少一个命令。当包装应用程序250检测到装置220的操作系统关闭应用程序222时,包装应用程序250命令290文件系统224打开294空的临时文件292且将来自目标文件230的内容复制296到临时文件292内。尤其在图4的实例中,将要复制到临时文件292的数据为将要在写入调用236中存取的数据范围。包装应用程序250进一步命令文件系统224将存储于增量文件258中的更新信息应用298于临时文件292。尤其在图4的实例中,增量文件258含有与写入调用236有关的更新信息。一旦已将存储于增量文件258中的更新信息应用298于临时文件292,包装应用程序250便发布用以关闭411临时文件292的命令和用以通过将目标文件230的一部分的指针中的地址改变为临时文件292的地址而使用临时文件292来替换293目标文件230的所述部分的命令。包装应用程序250接着继续进行,以通过指令文件系统224将目标文件230的经替换部分和增量文件258的存储器空间报告为自由空间来丢弃413目标文件230的经替换部分和增量文件258,因为不再需要其。
如果在单独的应用程序正写入到增量文件258时触发合并事件,则在完成写入操作前中止合并过程。如果在完成合并过程后存在对目标文件230的新写入调用,则将打开414新的增量文件。或者,可紧接在合并过程后自动地打开414新增量文件。
替代地或除了应用程序222的关闭之外,被解释为合并事件的其它实例出现包括:(1)发布用以关闭目标文件230的命令;(2)出现取决于与多个文件命令有关的统计的条件,例如,当应用程序在一小时的预定周期内平均每分钟一次地一直存取存储装置226上的数据且然后经过其中应用程序不存取存储装置226的是平均存取时间间隔三十倍的时间间隔(1分钟的30倍等于30分钟)时,自动地触发合并过程;(3)增量文件258的大小超过最大大小阈值(例如,如果增量文件258中的所存储的更新信息超过100千字节的信息);(4)操作系统的活动等级进入最小活动阈值以下(例如,当存储器和处理器在10秒周期内被占用小于50%时);或(5)从先前合并事件以来超过最大时间阈值(例如,包装应用程序250可具有以下规则:每当任何文件从先前合并事件以来经过15分钟周期时,则开始新的合并过程)。可触发合并事件的另一出现为发布用以读取目标文件230的命令(如图3的描述中所阐释,为了读取经更新数据,有必要将来自目标文件230的数据与增量文件258的更新信息合并)。
图5展示写入过程的简化流程图。应用程序222发布对文件系统224的写入调用236。包装应用程序检测540写入调用236且检查542以确定文件230(写入命令被引导到的文件230)是否为将要保护的文件。具体来说,在图5的实例中,存储装置226是受保护存储装置。更特定来说,目标文件230将受保护,因为目标文件230达到以下条件。目标文件230存储于装置226上,装置226为经受归因于过早移除的突发性不可预测干扰的可移除便携式存储装置。因此,包装应用程序250保护存储装置226中的所有永久不受保护的用户文件。更具体来说,通过预设来截取和重新引导对存储装置226的所有写入命令,除非发布写入命令的应用程序是被排除的应用程序(例如,
Figure G2007800444439D00171
Word是被排除的应用程序,因为Word具有内部文件保护和备份;Adobe
Figure G2007800444439D00172
阅读器也被排除,因为Adobe
Figure G2007800444439D00173
阅读器不存储任何经修改的用户文件),或除非写入命令操作以影响被排除的文件类型(例如,类型.tmp的临时文件被排除,因为来自临时文件的数据损失很少是严重的)。当应用程序222是被排除的应用程序或写入命令被引导到的文件是被排除的文件类型或写入命令被引导到的文件不处于存储装置226中时,则文件系统224直接写入549到文件。
或者,用于截取和重新引导文件命令的条件可包括以下条件中的一者或一者以上:文件命令由所包括的应用程序发布(所包括的应用程序为其文件命令将要由包装应用程序250截取的应用程序列表或群组上所包括的应用程序);文件命令由非被排除的应用程序的应用程序发布(被排除的应用程序是属于其文件命令将不被截取的应用程序列表或群组的应用程序);文件命令操作以影响不是临时文件的文件;文件命令操作以影响所包括的文件类型(所包括的文件类型为具有将要保护的文件类型列表或群组中所包括的类型的文件);文件命令操作以影响非被排除的文件类型的文件(被排除的文件类型是具有在将不受保护的文件类型列表或群组中的类型的文件);以及文件命令操作以影响存储于受保护存储装置中的文件。视达到以上条件中的一者或一者以上而定,包装应用程序将截取501和重新引导548写入调用,或包装应用程序250将允许文件系统直接写入549到文件,如上文针对图1A的现有技术的文件系统所描述。
在图5的实例中,文件230为存储装置226(其为所包括的存储装置)中的.txt文件(其不是被排除的类型),且应用程序222为Microsoft Visual
Figure G2007800444439D00174
(其不是被排除的应用程序)。因此,包装应用程序截取501写入调用236。包装应用程序250接着检查544用于文件230的合并操作是否在进行中。如果合并操作在进行中,则在完成合并操作之前中止546写入命令过程。当合并操作完成时,重新开始经中止的写入操作,且通过将与写入调用236有关的更新信息保存到增量文件258来重新引导548写入命令的内容。如果合并操作不在进行中,则包装应用程序250重新引导548写入调用236且将更新信息保存到增量文件258。如果在写入到增量文件258时触发合并事件,则在完成写入操作之前中止合并事件。
总之,尽管已相当详细地描述了各种实施例和其优选版本,但其它版本也是可能的。因此,所附权利要求书的精神和范围应不限于本文中所含有的优选版本的描述。

Claims (15)

1.一种在存储装置中执行的存储目标文件的方法,所述存储装置包含:处理器,其用于检索和执行包装应用程序的程序代码,所述应用程序经配置以保护所述目标文件的数据不会损坏;第一存储器空间,其用于存储所述目标文件;以及第二存储器空间,所述方法包括:
截取由另一应用程序发布的至少一个文件命令,所截取的至少一个文件命令操作以更新所述目标文件,且所述包装应用程序独立于所述另一应用程序;
保存与所截取的至少一个文件命令有关的更新信息;以及
指示文件系统将所述目标文件的至少部分复制到临时文件内,以在所述临时文件内存储所述目标文件的所述部分的复本,通过将所述更新信息应用于所述临时文件内的所述目标文件的经复制的部分而更新所述临时文件,及用所修改的临时文件来替换所述目标文件的经复制的部分;
其中所述第二存储器空间用于存储所述更新信息。
2.根据权利要求1所述的方法,其中所述存储装置进一步包含非易失性存储器且其中所述第一存储器空间驻存于所述非易失性存储器中。
3.根据权利要求2所述的方法,其中所述第二存储器空间驻存于:所述存储装置的所述非易失性存储器、所述存储装置的单独非易失性存储器和所述存储装置的易失性存储器中的一个或多个。
4.根据权利要求1所述的方法,其中所述存储装置进一步包含易失性存储器,其中所述第二存储器空间驻存于所述易失性存储器中。
5.根据权利要求1所述的方法,其中所述更新信息仅包括与所述至少一个文件命令有关的数据。
6.根据权利要求1所述的方法,其中所述存储装置进一步包含:
第三存储器空间,其用于存储临时文件,且
其中所述处理器检索和执行所述包装应用程序的所述程序代码,并经配置以:
通过使用所更新的临时文件来替换所述目标文件的所述至少部分而根据所更新的临时文件来更新所述目标文件。
7.一种由处理器执行的、采用包装应用程序来保护目标文件免受数据损坏的方法,所述方法包含:
通过所述包装应用程序截取由应用程序发布的至少一个文件命令,所述至少一个文件命令操作以更新所述目标文件,所述截取对于所述应用程序是透明的;其中所述文件命令包含将数据写入所述目标文件的写命令;
指示文件系统将与所述至少一个文件命令有关的更新信息保存在增量文件中而不改变所述目标文件;
指示所述文件系统将经保存的所述更新信息与来自所述目标文件的数据合并以产生合并数据;
指示所述文件系统将所述合并数据写入临时文件;以及
使用所述临时文件的合并数据来更新所述目标文件。
8.根据权利要求7所述的方法,进一步包含:
确定所述文件命令是写命令;以及
确定所述写命令被截取和重新引导。
9.根据权利要求7所述的方法,其中替换所述目标文件包括:
将所述目标文件的至少部分复制到临时文件内;
将所述更新信息应用于所述临时文件内所述目标文件的经复制的部分,以修改所述临时文件;以及
使用经修改的所述临时文件的至少部分来替换所述目标文件的所述至少部分。
10.根据权利要求9所述的方法,其进一步包含在将所述更新信息应用于所述临时文件之后删除含有所述更新信息的所述增量文件。
11.根据权利要求7所述的方法,其中在发生选自由以下一个或多个后便执行所述更新:
发布用以关闭所述目标文件的命令;
关闭所述应用程序;
关闭存取所述目标文件的应用程序;
出现取决于与多个文件命令有关的统计的条件;
操作系统的活动等级进入最小活动阈值以下;
从所述至少一个文件命令的发布以来超过最大时间阈值;以及
从先前合并事件以来超过最大时间阈值。
12.根据权利要求7所述的方法,其中所述截取和所述保存视以下一个或多个而定:所述应用程序为多个所包括的应用程序中的一者;所述应用程序不同于被排除的应用程序;所述至少一个文件命令操作以更新除临时文件以外的文件;所述至少一个文件命令操作以更新所包括的文件类型;所述至少一个文件命令操作以更新除被排除的文件类型以外的文件;以及所述至少一个文件命令操作以更新存储于所包括的存储装置中的文件。
13.一种在存储装置中执行的用于从受保护目标文件读取数据的方法,所述存储装置包含:处理器,其用于检索和执行包装应用程序的程序代码;第一存储器空间,其用于存储所述受保护目标文件;以及第二存储器空间,所述方法包括:
截取由独立于所述包装应用程序的应用程序发布的至少一个文件命令,所截取的至少一个文件命令操作以存取所述受保护目标文件,
读取与所截取的至少一个文件命令有关的更新信息,
将所述受保护目标文件的至少部分复制到临时文件内,并且
通过将所述更新信息应用于所述临时文件内的所述受保护目标文件的经复制部分而修改所述临时文件,以产生更新的临时文件;
其中所述第二存储器空间用于存储所述更新信息。
14.根据权利要求13所述的方法,其中所述处理器经进一步配置以根据所更新的临时文件更新所述受保护目标文件。
15.一种由处理器执行的、采用包装应用程序来读取受保护目标文件的方法,所述方法包含:
通过所述包装应用程序截取由应用程序发布的至少一个文件命令,所截取的至少一个文件命令操作以存取所述受保护目标文件,所述截取对于所述应用程序是透明的;
读取与存储于增量文件中的所截取的至少一个文件命令有关的更新信息,所述增量文件与所述受保护目标文件分离;
响应合并事件,将来自所述受保护目标文件的数据与存储于所述增量文件中的所述更新信息合并,以产生合并的数据;以及
在使用所述合并的数据来更新所述受保护目标文件之前,返回所述合并的结果以作为对所述至少一个文件命令的响应。
CN200780044443.9A 2006-12-04 2007-11-29 增加透明的文件更新 Expired - Fee Related CN101589386B (zh)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US86836106P 2006-12-04 2006-12-04
US60/868,361 2006-12-04
US11/944,639 2007-11-26
US11/944,639 US8589341B2 (en) 2006-12-04 2007-11-26 Incremental transparent file updating
PCT/IL2007/001479 WO2008068742A2 (en) 2006-12-04 2007-11-29 Incremental transparent file updating

Publications (2)

Publication Number Publication Date
CN101589386A CN101589386A (zh) 2009-11-25
CN101589386B true CN101589386B (zh) 2013-03-27

Family

ID=41372750

Family Applications (1)

Application Number Title Priority Date Filing Date
CN200780044443.9A Expired - Fee Related CN101589386B (zh) 2006-12-04 2007-11-29 增加透明的文件更新

Country Status (2)

Country Link
CN (1) CN101589386B (zh)
TW (1) TWI420391B (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9104690B2 (en) 2011-01-27 2015-08-11 Micron Technology, Inc. Transactional memory
GB2507935B (en) * 2011-10-12 2014-07-30 Ibm Method, system, mediation server, client, and computer program for deleting information in order to maintain security level
CN104679532B (zh) * 2013-11-27 2018-12-11 腾讯科技(深圳)有限公司 内核模块加载方法和装置
CN110233851B (zh) * 2019-06-21 2022-03-22 绿盟科技集团股份有限公司 一种数据传输方法和装置
CN112596954A (zh) * 2020-12-25 2021-04-02 深圳市科力锐科技有限公司 数据备份及重建方法、装置、设备及存储介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040260898A1 (en) * 2003-06-18 2004-12-23 Stanley Warren K. Method, system, and program for incremental virtual copy
US20040267899A1 (en) * 2003-06-27 2004-12-30 Microsoft Corporation Incorporating interactive media into a playlist
US20060075004A1 (en) * 2004-10-04 2006-04-06 Stakutis Christopher J Method, system, and program for replicating a file

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6732111B2 (en) * 1998-03-03 2004-05-04 Siebel Systems, Inc. Method, apparatus, system, and program product for attaching files and other objects to a partially replicated database
WO2001027768A1 (en) * 1999-10-12 2001-04-19 Cms Peripherals, Inc. Automatic backup system
US6957367B2 (en) * 2002-08-30 2005-10-18 Hewlett-Packard Development Company L.P. System and method for controlling activity of temporary files in a computer system
TWI221967B (en) * 2003-04-25 2004-10-11 Taiwan Semiconductor Mfg High efficiency redundancy architecture
US7600225B2 (en) * 2003-07-21 2009-10-06 Microsoft Corporation System and method for intra-package delta compression of data
US20050114672A1 (en) * 2003-11-20 2005-05-26 Encryptx Corporation Data rights management of digital information in a portable software permission wrapper

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20040260898A1 (en) * 2003-06-18 2004-12-23 Stanley Warren K. Method, system, and program for incremental virtual copy
US20040267899A1 (en) * 2003-06-27 2004-12-30 Microsoft Corporation Incorporating interactive media into a playlist
US20060075004A1 (en) * 2004-10-04 2006-04-06 Stakutis Christopher J Method, system, and program for replicating a file

Also Published As

Publication number Publication date
CN101589386A (zh) 2009-11-25
TWI420391B (zh) 2013-12-21
TW200839568A (en) 2008-10-01

Similar Documents

Publication Publication Date Title
US8589341B2 (en) Incremental transparent file updating
Chen et al. The Rio file cache: Surviving operating system crashes
US10241873B2 (en) Headstart restore of first volume to a second volume
US7774636B2 (en) Method and system for kernel panic recovery
US7395394B2 (en) Computer operating system with selective restriction of memory write operations
AU710755B2 (en) Storage of computer data
US7185071B2 (en) Self-healing version and configuration model for an application server
US7174420B2 (en) Transaction-safe FAT file system
CN101981550B (zh) 数据库系统、数据库更新方法、数据库以及数据库更新程序
CN101589386B (zh) 增加透明的文件更新
WO2000020971A1 (en) Recovery of file systems after modification failure
CN101853275A (zh) 一种fat文件系统的数据管理方法和系统
Scargall et al. Persistent memory architecture
CN101271430B (zh) 一种对存储设备中的数据进行保护的方法和装置
KR20050032902A (ko) 데이타 저장 및 복구 방법
US10977208B2 (en) Setup file system without editing kernel code
Malcher et al. Managing Control Files, Online Redo Logs, and Archivelogs
GB2540179A (en) An integrated system for the transactional management of main memory and data storage
Gwatking An efficient application of disk storage at the DRCS data migration scheme.
CN116382785A (zh) 用于数据处理的方法及装置、计算设备及存储介质
KR100978533B1 (ko) 램을 이용한 컴퓨터용 정보저장장치 자료보호 시스템 및 그방법
Schagaev et al. Recovery Preparation
Kuhn et al. Managing Control Files, Online Redo Logs, and Archiving
Gwatking DEPARTMENT OF DEFENCE DEFENCE SCIENCE AND TECHNOLOGY ORGANISATION ELECTRONICS RESEARCH LABORATORY

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
C17 Cessation of patent right
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20130327

Termination date: 20131129