TW200839568A - Incremental transparent file updating - Google Patents

Incremental transparent file updating Download PDF

Info

Publication number
TW200839568A
TW200839568A TW96145944A TW96145944A TW200839568A TW 200839568 A TW200839568 A TW 200839568A TW 96145944 A TW96145944 A TW 96145944A TW 96145944 A TW96145944 A TW 96145944A TW 200839568 A TW200839568 A TW 200839568A
Authority
TW
Taiwan
Prior art keywords
file
application
target
command
target file
Prior art date
Application number
TW96145944A
Other languages
Chinese (zh)
Other versions
TWI420391B (en
Inventor
Ittai Golde
Tzvi Kobi Ben
Oron Vexler
Itzhak Pomerantz
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
Application filed by Sandisk Il Ltd filed Critical Sandisk Il Ltd
Publication of TW200839568A publication Critical patent/TW200839568A/en
Application granted granted Critical
Publication of TWI420391B publication Critical patent/TWI420391B/en

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

A system and method to protect a target file from data damage wherein a wrapper application transparently intercepts a write call operative to affect the target file and stores the pertinent data in a delta file. Occasionally the target file is backed up in a temporary file and then updated. The wrapper application also intercepts a read call operative to access the target file and merges the update information with data from the target file in a temporary file. The resulting merged data is returned as read results data.

Description

200839568 九、發明說明: 【發明所屬之技術領域】 用以保護目標檔案免受損壞之各種方法及系統係可能 的,且特定言之,方法及系統可防止在目標播案打開以供 寫入時歸因於干擾而發生之資料損壞。 【先前技術】 快閃記憶體裝置在電腦工程技術中為眾所周知的。 將資訊儲存於此等記憶體中之普通方式係在由作業系統 所管理之資料檔案中。 ...... 快閃儲存系統之已知特性為:若在檔案打開以供寫人時 發生諸如電力故障或軟體崩潰之特定意外事件,則資料檔 案易受資料損壞。此造成一嚴重問題,因為至檔案内之; 入為常規地必要的’且檔案必須打開以供寫入,以便使其 更新。 一 已開發出用於使軟體應隸式以減少風險之特殊 處理標案的解決辦法。可在許多文字處理應用程式中相 此等解決辦法,此週期性地產生打開的播案之備份複本。 或者,當已偵測到檔案之損壞時,修正公用 j ut山ty)執行後㈣ '然而,此等解決辦法為應用程式依 性的k而減& 了應用程式之開發,且此等解決辦法於 因於程式設計錯誤之其他類型之問題的來源。此外,心 :應用私式保護檔案之原始版本且亦保持經更新臨時太 枯出現存取衝突之問題(若不同應用程式調用 其將存取哪-檔案?)。此需要播案之不便㈣1護= I27085.doc 200839568 法亦可用於全系統檔案保護機制,其經常地更新整個資料 儲存裝置或特定重要資料之永久備份複本。保持永久備份 需要大量資料儲存空間及系統資源以經常地檢查及更新槽 案。 田 因此,廣泛地認為需要且將高度有利的是具有允許任何 應用程式使用任何資料檔案而無將歸因於上述原因而損壞 才田案之風險且不保持永久備份複本的解決辦法。 【發明内容】200839568 IX. Description of the invention: [Technical field of the invention] Various methods and systems for protecting a target file from damage are possible, and in particular, the method and system prevent the target broadcast from being opened for writing Data corruption due to interference. [Prior Art] Flash memory devices are well known in computer engineering. The usual way of storing information in such memory is in the data file managed by the operating system. ... The known feature of flash storage systems is that data files are vulnerable to data corruption if a specific incident such as a power failure or a software crash occurs while the file is open for writing. This creates a serious problem because it is routinely required; and the file must be opened for writing to be updated. A solution has been developed for special handling of the software to remedy the risk. This solution can be implemented in many word processing applications, which periodically generate backup copies of open broadcasts. Or, when the damage of the file has been detected, the public j ut ty) is executed (4). However, these solutions reduce the development of the application for the k of the application, and the solution is solved. Approach the source of other types of problems due to programming errors. In addition, the heart: Apply the original version of the private protection file and keep the access violations too late (if different applications call which files they will access?). The inconvenience of this need to broadcast the case (4) 1 protection = I27085.doc 200839568 The law can also be used for the system-wide file protection mechanism, which constantly updates the entire data storage device or a permanent backup copy of specific important data. Keeping a permanent backup requires a large amount of data storage and system resources to check and update the schedule frequently. Therefore, it is widely believed that it is highly desirable to have a solution that allows any application to use any data file without the risk of damaging the talented case due to the above reasons and does not maintain a permanent backup copy. [Summary of the Invention]

处用以保言蒦目標;f當案免受資料損敎各種方法及系統係可 能的’且特定言之’方法及系統可防止在目標檔案打開以 供寫入日卞歸因於干擾而發生之資料損壞。 -用於儲存目標檔案且保護目標檔案免受資料損壞之系 統的一實施例可包括:a)-處理器,其經組態以類取及執 仃包裝應用程式的程式碼’該程式碼包括以下各項 於截取由第二應用程式所發出之至少一構案命令的程式 f ’至少—檔案命令可操作以影響目標檔案,Π)用於儲存 與至少—播案命令有關之更新資訊的程式碼,及出)用於 利用更新資訊來更新目標播宰 案的私式碼,W 一第一記憶體 玉間,其用於儲存目標檔案; 用於儲存更新資訊。包褒應 猶—己憶體空間,其 之第二應用程式。%私式可獨立於發出檔案命令 在一實施電腦可讀程式碼 例中,電腦可讀程式碼用於保心:爾媒體的-實施 ψ ^ , 、/、濩目拓檔案免受資料損壞, 式碼可包括:用於截取由應用程式所發出且 127085.doc 200839568 可操作以影響目標檔案之至少一檔案命令的程式碼;㈡用 於储存與至少-檔案命令有關之更新資訊而不修改目標槽 案的程式碍;及e)用㈣】用更新f訊來更新目標檔案^ 式碼。電腦可讀程式碼可獨立於發出命令之應用程式。 一採用包裝程式來保護目標檔案免受資料損壞之方法的 -實施例可包括以下步驟:a)藉由包裝程式來截取可操作 以影響目標標案且由應用程式所發出之至少—權案命令, 截取步驟對於應用程式為透通式的;b)儲存與至少一檔案 叩令有關之更新育訊而不修改目標檔案;及e)利用更新資 訊來更新目標檔案。 ' 一用於自文保護目標檔案讀取資料之系統的一實施例可 包括一經組態以擷取及執行包裝應用程式之程式碼的處理 器,該程式碼包括以下各項:用於截取由一獨立於包裝應 用程式之應用程式所發出之至少—播案命令的程式碼,檐 案印々可操作以存取文保護目標檔案;及用於讀取與檔案 命令有關之更新資訊的程式碼。該系統亦可包括一用於儲 存文保濩目標檔案之第一記憶體空間及一用於儲存更新資 訊之弟'"""己憶體空間。 一採用包裝程式來讀取受保護目標檔案之方法的一實施 例可包括以下步驟:藉由包裝程式來截取由應用程式所發 出之至少一檑案命令,檔案命令可操作以存取受保護目標 檔案。截取步驟對於應用程式可為透通式的。該方法亦可 包括自增量檔案讀取與至少一檔案命令有關之更新資訊的 步驟。增量檔案可獨立於受保護目標檔案。該方法可進一 127085.doc 200839568 步包括合併來自目標權案之資料與更新資訊及傳回合併資 料以作為對檔案命令之回應的步驟。 、 一用於儲存目標檔案且保護目標檔案免受資料損壞之系 統的一實施例可包括一用於儲存目標檔案之第一記憶體空 間。該糸統亦可包括一用於儲存與可操作以影響目標播案 之至少一檔案命令有關之更新資訊的第二記憶體空間。該 糸統亦可包括-經組態以類取及執行包裝應用程式之程式 器,該程式碼包括以下各項:用於截取可操作以 之至少一檔案命令的程式碼;用於將更新資 來:*一記憶體空間的程式碼;及用於利用更新資訊 來更新目標檔案的程式碼。包 令之應用程式。 L衣知式可獨立於發出檔案命 :用於儲存目標檔案之系統中,第一記憶體空間可駐存 於資料處理裝置之非揮發性 例中,第二記憶體空間;=第中。在::之-些實施 非揮發性記憶體中,其牛目二二二 間相同的 體中之猶Μ Μ 與更新資訊館存於記憶 駐存;在其他實施例令,第二記憶體空間可 中置之揮發性記憶體中。在其他實施例 甲弟一 §己體空間可駐存於資料儲在驻吳* 發性或非揮發性)中。 科儲存裝置之記憶體(揮 在用於儲存目標檔案之系 j 於攜帶型資料儲存#晉” 一兄憶體空間可駐存 儲存果置之會發性記憶體中。攜帶型資料 儲存裝置之實例包括抽取式媒體(例如,磁性 碟片)或攜帶型磁碟(例如,伊 、或光子 κ閃碟片、外部硬磁碟或智慧 127085.doc 200839568 卡)在一些實施例中,第二記憶體空間可駐存於與第— 記憶體空間相同的記憶體中’其中目標檔案與更新資訊儲 存:記憶體中之獨立位置中。在其他實施例中,第二記憶 體空間可駐存於f料處理裝置之記憶體(揮發性或非揮發 性)中。在其他實施例中,第二記憶體空間可駐存於攜帶 型貧料儲存裝置之揮發性記憶體中。 在用於儲存目標檔案之系統中,更新資訊可僅包括與至 少一檔案命令有關之資料。特定言之,更新資料、第二記 憶體空間及增量檔案可能不含有自目標檔案所複製之資 料口此,即使在已儲存由應用程式所發出且可操作以影 響目標檔案之命令之後,仍將僅保持目標檔案中之資料的 個複本(目標檜案之資料的複本僅儲存於第一記憶體空 間中)及與所儲存檔案命令有關之更新資訊的一個複本(與 所儲存檔案命令有關之資料僅儲存於第二記憶體空間 中)。僅在合併事件之後才將來自目標檔案之資料的第二 複本置放於臨時播案内。 一用於儲存目標檔案之系統的一實施例可進一步包括一 用於儲存臨時檔案之第三記憶體空間,且包裝應用程式可 進步包括用於將目標檔案之至少一部分複製至臨時檔案 内的程式碼。在替代實施例中,臨時檔案為獨立檔案或現 有檔案中之臨時分配位置或揮發性記憶體中之臨時分配位 置包裝應用程式亦可進一步包括用於將所儲存更新資訊 應用於臨時檔案以產生目標檔案之經更新版本的程式碼。 包裝應用程式亦可進一步包括用於利用臨時檔案來替換目 127085.doc -11- 200839568 才示檔案之一部分的程式碼。根據一替代實施例,第三記憶 體空間可駐存於與第一記憶體空間相同的記憶體中。在另 一替代實施例中,第三記憶體空間可駐存於與第二記憶體 玉間相同的纪憶體中。在另一替代實施例中,第三記憶體 空間可駐存於上文所列出之記憶體中之任一者中。因此, 應理解,第二記憶體空間可駐存於資料處理裝置或資料儲 存裝置之揮發性或非揮發性記憶體中,且第三記憶體空間Used to protect against the target; to prevent the data from being damaged by various methods and systems. The 'and specific' methods and systems prevent the target file from being opened for writing due to interference. The data is damaged. An embodiment of a system for storing a target file and protecting the target file from data corruption may comprise: a) a processor configured to retrieve and execute a code of the packaged application 'the code includes The following program f 'at least the file command intercepting the at least one configuration command issued by the second application is operable to affect the target file, Π) a program for storing update information related to at least the broadcast command The code, and the private code for updating the target broadcast case by using the update information, the first memory jade, which is used for storing the target file; and for storing the update information. The package should be the second application. % private can be independent of the issue of file commands in a computer readable code example, computer readable code for the care: the media - implementation ψ ^, , /, 拓 拓 file to protect against data damage, The code may include: a code for intercepting at least one file command issued by the application and 127085.doc 200839568 operable to affect the target file; (2) for storing update information related to at least the file command without modifying the target slot The procedure of the case; and e) use (4) to update the target file with the update message. The computer readable code can be independent of the application that issued the command. A method of using a wrapper to protect a target file from data corruption - the embodiment may include the following steps: a) intercepting at least the right command issued by the application by the wrapper to affect the target target The interception step is transparent to the application; b) storing the update information related to at least one file command without modifying the target file; and e) updating the target file with the update information. An embodiment of a system for reading data from a text protection target file can include a processor configured to retrieve and execute a code of a packaged application, the code including the following: A code that is independent of at least the broadcast command issued by the application that wraps the application, the file print is operable to access the text protection target file; and the code for reading the update information related to the file command . The system may also include a first memory space for storing the text file of the text file and a '"""" memory space for storing updated information. An embodiment of a method for using a wrapper to read a protected object file can include the steps of: intercepting at least one file command issued by the application by a wrapper program operable to access the protected object file. The interception step can be transparent to the application. The method can also include the step of reading the updated information associated with the at least one file command from the incremental file. The incremental file can be independent of the protected target file. The method can be further advanced as 127085.doc 200839568 includes the steps of merging the information and update information from the target rights and returning the combined information as a response to the file order. An embodiment of a system for storing a target file and protecting the target file from data corruption can include a first memory space for storing the target file. The system can also include a second memory space for storing updated information relating to at least one file command operable to affect the target broadcast. The system can also include a program configured to fetch and execute a packaged application, the code comprising the following: a code for intercepting at least one file command operable; Comes with: * a code for the memory space; and a code for updating the target file with the update information. The application of the package. The L-clothing formula can be independent of the issuing file: in the system for storing the target file, the first memory space can be resident in the non-volatile example of the data processing device, the second memory space; = the middle. In:: some of the non-volatile memory, the same in the same body as the 222, and the updated information library in the memory; in other embodiments, the second memory space Neutral volatile memory. In other embodiments, the singular space may be resident in the data stored in the non-volatile or non-volatile. The memory of the storage device (the system used to store the target file is stored in the portable data storage #晋). A brother's memory space can be stored in the memory of the storage device. The portable data storage device Examples include removable media (eg, magnetic disks) or portable disks (eg, Iraq, or photon κ discs, external hard disks, or Wisdom 127085.doc 200839568 cards). In some embodiments, the second memory The volume space can reside in the same memory as the first memory space, where the target file and the update information are stored in separate locations in the memory. In other embodiments, the second memory space can reside in f In the memory (volatile or non-volatile) of the material processing device. In other embodiments, the second memory space may reside in the volatile memory of the portable lean storage device. In the system, the update information may only include information related to at least one file command. In particular, the update data, the second memory space, and the incremental file may not contain the copy from the target file. The data port, even after the command issued by the application and operable to affect the target file has been stored, only a copy of the data in the target file will be kept (the copy of the target file is only stored in the first memory) a copy of the updated information relating to the stored file order (the data related to the stored file command is only stored in the second memory space). The data from the target file is only used after the merge event. The second copy is placed in the temporary broadcast. An embodiment of the system for storing the target file may further include a third memory space for storing the temporary file, and the package application may be improved to include the target file At least a portion of the code is copied to the temporary file. In an alternative embodiment, the temporary file is a temporary file or a temporary allocation location in an existing file or a temporary allocation location in a volatile memory package application may further include Applying the stored update information to a temporary file to generate an updated version of the target file The packaging application may further include a code for replacing a portion of the file with the temporary file 127085.doc -11- 200839568. According to an alternative embodiment, the third memory space may reside in the same In a memory having the same memory space, in another alternative embodiment, the third memory space may reside in the same memory as the second memory jade. In another alternative embodiment, The three memory spaces may reside in any of the memory devices listed above. Therefore, it should be understood that the second memory space may be resident in a data processing device or a data storage device that is volatile or non-volatile. Memory and third memory space

之每一替代位置可與第一及第二記憶體空間之每一替代位 置組合。 一實施用於保護目標檔案免受資料損壞之電腦可讀程 碼之電腦可讀儲存媒體的—實施例可包括用於截取由應 权j所發丨之至少—檔案命令的料碼,程式碼獨立於〗 出杈案命令之應用程式。纟下文所描述之實施例中,程: 1可獨立於任何特定應用程式而被執行且自任意應用程: 截取檔案命令。檔案命令可操作以影響目標㈣。亦引 括用於儲存與檔案命令有關之更新資訊而不修改目標檔丨 + 用更新資訊來更新目標檔案的程式碼。在替代1 中私式瑪可指^:將根據一固定時間排程來執行』 新二或將回應於—或多個終止事件來執行更新;將根據_ 固定時間排程與—❹個終止事件之組合來執行更新。, :可讀媒體之實例可包括攜帶型儲存裝置中所含有之⑽ 裝置而鎖售之封裝中所包括之抽取式卿 或者’電腦可讀媒體可為安裝料經由網際缔 子之飼服器上的硬碟。程式碼可充當單機程式以待 127085.doc -12· 200839568 邊-或多個任意儲存裝置上之資料。或者,程式喝可包括 ==式中以^在資料處理裝置上執行,驅動程式充 田貝枓處理裝置與資㈣存裝置之間的介面。或者, 碼可併入作業系統内或檔案伺服器應用程式内。在另一可 月匕曰代貝⑯例中’冑由f料儲存裝置内部之處理器來執行 程式碼。Each of the alternate locations can be combined with each of the alternate locations of the first and second memory spaces. A computer readable storage medium embodying a computer readable program code for protecting a target file from data corruption - an embodiment may include a code for intercepting at least the file command issued by the right j, the code An application that is independent of the command of the file. In the embodiments described below, the process: 1 can be executed independently of any particular application and from any application: intercept file commands. The file command is operable to affect the target (4). It also includes the option to store update information related to the file command without modifying the target file. + Update the target file with the update information. In the alternative 1 private horse can mean ^: will be executed according to a fixed time schedule "new two or will respond to - or multiple termination events to perform the update; will be based on _ fixed time schedule and - a termination event The combination to perform the update. An example of a readable medium may include a removable device included in a package that is included in a portable storage device, and a removable computer or a computer readable medium included in the package may be installed on the feeding device via the Internet. Hard drive. The code can be used as a stand-alone program to wait for information on 127085.doc -12· 200839568 side-by-side or on any storage device. Alternatively, the program drink may include the implementation of the == in the data processing device, and the interface between the driver and the device. Alternatively, the code can be incorporated into the operating system or within the file server application. In another 16 cases, the code is executed by a processor inside the f-storage device.

、《截取檔案命令且健存更新資訊之程式瑪的—實施例 可視-或多個條件而進行截取及館存。舉例而言,僅當發 ^命令之應用程式為複數個”所包括的ft應用程式中之= 柑才可執仃截取及儲存。在本文之描述的内容中,可將 ”所包括的”應用程式界定為已被指定為包裝程式將自其中 截取:以修改目標擋案之檔案命令之應用程式的應用程式 (通吊戶斤包括的應用程式為儲存重要標案而無電力輸出 保護之應用程式[例如,Mic_ft 如⑴。⑧])。在一 替代只例中,若才當案命令係由不為,,被排除的”應用程式之 應用程式發出,則可截取檔案命令且儲存更新資訊。在本 ft描述的内容中,可將”被排除的”應用程式界定為已被 I曰疋為包裝耘式將不自其中截取用以修改目標檔案之檔案 中々之應用f王式的應用程式(例如,Mi⑽so行Word⑧可為 :、排除的應用•王式,因為其具有其自己的自動檔案保護; 或Microsoft lnternet EXpi〇rer⑧可為被排除的,因為其儲存 大量臨時檔案,但通常不儲存使用者修改檔案)。在一替 代m例中,若檔案命令可操作以影響不為臨時檔案之檔 案則可截取檔案命令且儲存更新資訊。在一替代實例 127085.doc •13- 200839568 中,若檔案命令可操作以影響屬於,,所包括的”檔案類型之 檔案’則可截取檔案命令且儲存更新資訊。在本文之描述 的内容中,"所包括的”檔案類型可為已被指定為受包二 用程式保護之檔案類型[例如,.txt檔案可為所包括的播^ 類型]。在-替代實例中,若檔案命令可操作以影響不屬 於”被排除的”檔案類型之檔案,則可截取檔案命令且儲存 更新資訊。在本文之描述的内容中,”被排除的”檔案類型 可為已被指定為不受包裝應用程式保護之檔案類型[例 如,·doc及·tmp檔案類型可為被排除的],且在一替代實例 中’若檔案命令可操作以影響儲存於所包括的儲存裝置中 之檔案’則可截取檔案命令且儲存更新資訊。在本文之描 述的内谷中’可將所包括的裝置界定為經指定用於保護使 得將保護所包括的裝置上之檔案之裝置。 電腦可讀程式碼之__實施例可進—步包括用以在執行用 於儲存之程式碼之後且在執行用於更新之程式碼之前截取 可操作以衫響目標檔案之每一寫入命令的程式碼。 電細可碩程式碼之一實施例可進一步包括用於偵測終止 事件且用於在仙㈣終止事件後即利用更新資訊來更新目 =檔案的程式碼。終止事件之-些實例可包括用以關閉目 丁檔案之np 7的發出、存取目標檔案之應用程式的關閉、 依賴於與複數個檔案命令有關之統計之條件的出現[例 如’若被發出至目標檔案之百分之八十的檔案命令改變小 :1〇千位元組的資料,則可在檔案命令被發出,從而在目 標檔案中&變大於10千位元組的資料時觸發終止事件], 127085.doc -14- 200839568 及自目標檔案之先前更新以來之最大時間臨限值的超過。 電腦可讀程式碼之一實施例可進—步包括:用於將目標 檔案之-部分複製至臨時檔案㈣程式媽,及用於將所儲 存更新資訊應用於臨時檔案的程式碼。在一替代實施例 中’可提供用於打開臨時檔案且緊鄰儲存更新資訊之後複 製資料的程式碼。在第二替代實施例中,可提供用於打開 臨時播案且緊鄰更新目標檔案之前複製資料的程式碼。 電腦可讀程式碼之—實施例可進—步包括用於在出現合 併事件後即將所儲存更新f訊制於臨時檔案的程式碼。 根據所描述較佳實施例之其他特徵,合併事件之一些實 例包括:i)用以關閉目標檔案之命令的發出、π)存取= 篇案之應用%式的關閉、U1)依賴於與複數個檔案命令有 關之統計之條件的㈣[例如,若被發出至目標檔案之百 分之八十的檔案命令改變小於1〇千位元組的資料,則在檔, "Intercepting the file command and storing the information of the update information" - the embodiment can be intercepted and stored in a visible or multiple conditions. For example, the application can be intercepted and stored only when the application of the command is "multiple" included in the ft application. In the content described in this article, the "included" application can be used. The program is defined as an application that has been designated as a package program from which the package program will be modified to modify the file file of the target file. The application included in the package is an application that stores important standards without power output protection. [For example, Mic_ft is (1). 8]). In an alternative example, if the command is not issued, the excluded application of the application can intercept the file command and store the update information. In the content described in this ft, the "excluded" application can be defined as an application that has been intercepted by the file to modify the target file. For example, Mi(10)so line Word8 can be:, the excluded application • Wang style, because it has its own automatic file protection; or Microsoft lnternet EXpi〇rer8 can be excluded because it stores a large number of temporary files, but usually does not store Modify the file). In an alternative m example, if the file command is operable to affect a file that is not a temporary file, the file command can be intercepted and the update information stored. In an alternative example 127085.doc •13-200839568, if the file command is operable to affect the belonging, the included "file type file" can intercept the file command and store the update information. In the content described herein, The "included" file type can be a file type that has been designated as protected by a packaged application [for example, a .txt file can be a included broadcast type]. In the alternative example, if the file command is operable to affect a file that is not of the "excluded" file type, the file command can be intercepted and the update information stored. In the context of the description herein, the "excluded" file type may be a file type that has been designated as not protected by the packaged application [eg, the .doc and .tmp file types may be excluded], and in one In the alternative example, if the file command is operable to affect the file stored in the included storage device, the file command can be intercepted and the update information stored. The included device may be defined in the context of the description herein as a device designated to protect a file on a device that will be protected. The computer readable code can further include, for example, executing each of the write commands operable to record the target file after executing the code for storage and before executing the code for updating The code. An embodiment of the fine code can further include a code for detecting a termination event and for updating the destination file with updated information after the termination event. Some examples of termination events may include the issuance of np 7 to close the target file, the closing of the application accessing the target file, and the occurrence of conditions depending on the statistics associated with the plurality of file commands [eg, if issued Eighty-eight percent of the file orders to the target file change small: 1 kilobytes of data can be triggered when the file command is issued, and when the target file & becomes greater than 10 kilobytes of data Termination event], 127085.doc -14- 200839568 and the maximum time threshold since the previous update of the target file. An embodiment of the computer readable code can further include: copying the - part of the target file to the temporary file (4) the program mother, and the code for applying the stored update information to the temporary file. In an alternate embodiment, a code for opening a temporary file and copying the material immediately after storing the updated information may be provided. In a second alternative embodiment, a code for copying the temporary broadcast and immediately copying the material prior to updating the target file may be provided. The computer readable code - the embodiment may include a code for notifying the stored update to the temporary file after the occurrence of the merge event. According to other features of the described preferred embodiment, some examples of merge events include: i) issue of a command to close a target file, π) access = application of a file % closed, U1) dependent on and plural (4) of the conditions of the statistics related to the file order [for example, if 80% of the file orders issued to the target file change the information of less than 1 〇 , ,

案印令被發出5從而太日拆 ^ I 而在目払檔案中改變大於10千位元組的 資料時觸發終止事件]、iv)含有更新資訊之增量槽案之大 小對最大大小臨限值的超 ’、 、 )作菓系統之活動級至最小 活動臨限值以下的鐘播 ·、A山 I換、V1)自先前合併事件以來之最大時 間臨限值的超過,戎丨彳、 士 、 次VU)用以頃取目標檔案之命令的發 兄下’所儲存更新資訊至臨時檔案之應用將緊 取:令之執行仿真之前。因&,臨時檔案中所含有之 、、、工更新資料將作為讀 貝取貝訊而傳回至發出讀取命令之應用 二宏5 ’’所儲存檔案命令至臨時檔案之應用可緊鄰目 標檔案之更新之前。 ?州曰 127085.doc -15- 200839568 、根據所描述較佳實施例之其他特徵,電腦 進-步包括用於偵測終止事件的 Λ ; 4.、可 事件後即用於利用所健存更新資訊=新及:偵測到終止 用於刪除目標檔荦 < 臨_ ;^ 八’目軚檔案且接著 量播案的程式碼 ㈣或含有所储存更新資訊之增 :使用包裝程式來保護目標播索免受 一實施例可包括包裝程式透 方法的 檔案之至少-伊荦人八的牛驟截取可操作以影響目標 命令之庫用_ 4 ^ 匕衣私式獨立於發出檔案 2之應仏式包括包裝程式儲存與至少—檔案命令 有關之更新資訊而不改變目八 褚案的步驟。更新資訊可含 有為執灯至少-擋案命令所必要之資訊。該方法亦可包括 利用更新資訊來更新目標檔案的步驟。 根據所描述較佳實施例之其他特徵’在儲存更新資訊之 開始直至利用所儲存更新資訊來更新目標檔案之結束之間 ^時間間隔中’可截取及儲存由複數個所包括的應用程式 中之應用程式所起始且可操作以影響目標檔案的每 命令。 根據所描述較佳實施例之其他特徵,更新目標檔案可包 括以下子步驟:將目標檔案之至少一部分複製至臨時檔宰 内且將所儲存更新資訊應用於臨時檔案,及利用臨時檔案 ,全部或-部分來替換目標檔案之全部或一部分,因此有 效地更新目標槽案且刪除臨時標案。 一根據所描述較佳實施例之其他特徵,可在將所儲存更新 賁訊應用於臨時檔案的步驟之後刪除含有更新資訊之增量 127085.doc -16- 200839568 槽案。 根據所描述較佳實施例之其他特徵,可在出現一或多個 終止事件後即執行更新步驟。終止事件之實例包括:i)用 .1"關閉目標檔案之命令的發出、H)存取目標權案之應用程 式的關閉、iii)依賴於與複數個檔案命令有關之統計之條 . #的出現[例如’若在半小時之週期内應用程式每隔五分 鐘對目標播案存取至少-次,則在十分鐘週期内不存取目 φ 標檔案之應用程式為觸發目標檔案之更新的終止事件]、 1V:業系統之活動級至最小活動臨限值以下的轉換、v)自 先前所儲存檔案命令之發出以來之最大時間臨限值的超 過,及自先前合併事件以來之最大時間臨限值的超過。 根據所描述較佳實施例之其他特徵,截取權案命令且儲 存更新資訊的步驟可視條件而定。舉例而言,僅可在以下 月兄下發生截取及儲存:當檔案命令係由複數個所包括的 應用私式中之應用程式發出時、當權案命令係由除了被排 • ㈣應用程式以外之應用程式發出時、當檔案命令可操作 以影響不同於臨時檔案之檔案時、當擋案命令可操作以影 曰斤匕括的‘案類型時、當檔案命令不可操作以影響被排 '、、g案類尘之私案時,或當檔案命令可操作以影響儲存 - 於所包括的儲存裝置中之檔案時。 用於自文保護目標棺案讀取資料之系統的一實施例可 5括:經組態以自儲存媒體擷取包I應用程式之程式碼且 經組態以執行程式碼的處理器。包裝應用程式可包括用於 截取由獨立於包裝應用程式之應用程式所發出之至少一檀 127085.doc -17- 200839568 案命令的程式碼’檔案命令可操作以存取受保護目標槽 案。包裝應用程式亦可包括用於讀取與檔案命令有關之更 新資訊的程式碼。统亦可包括—用於儲存受保護目桿 檔案之第-記憶體㈣及-用於儲存更新資訊之第二記情 體空間。 ~ 根據所描述較佳實關之其他特徵,用於自受保護目標 檔案讀取之系統的包裝㈣程式亦可包括用於將來自受: 護目標檔案之資料與更新資訊合併至臨時檔案内的程式 碼。臨時檔案可為含有更新資訊之檔案,或臨時檔案可為 獨立臨時檔案。臨時檔案與更新資訊可儲存於與目標檔案 相同的記憶體裝置上或獨立記憶體裳置上。 一採用包裝帛式來讀取受保護目標樓案之方法的一實施 例可包括以下步驟:藉由包裝程式來截取由應用程式所發 出之至少-槽案命令,播案命令可操作以存取受保護目標 檔案。截取步驟對於發出命令之應用程式可為透通式的。 該方法亦可包括讀取與至少-檔案命令有關且儲存於增量 檔案中之更新資訊的步驟。增量檔案可獨立於受保護目標 檔案。該方法進一步含有合併來自目標檔案之資料與該更 新資訊及傳回合併資料以作為對檔案命令之回應(回應為 讀取結果資料)的步驟。 術語 以下術語在本申請案中係根據其明顯意義而加以使用, s亥等意義被理解成為一般熟習有關技術者所知。然而,為 了雲於本巾請案之主題的進-步闡明,以下解釋、推敲及 127085.doc -18 - 200839568 例示係關於此等術語在本文中可如何被使用或應用而被給 出。應理解,以下解釋、推敲及例示應被視為例示的或代 表性的,且不應被視為獨佔式的或限制性的。更確切而 a ’下文所論述之術語應被儘可能廣泛地解釋為與其普通 意義及以下論述一致。 〇合併:(例如)將储存於增量檔案中之更新資訊應用於自 目&槽案複製至臨B寺槽案(例如,臨時標案可為增量播 案或獨立臨時檔案)内之内容的過程。 〇合併事件:觸發合併過程之事件。事件可基闕業系統 事件,諸如,時基、_查$ 检案糸統刼作或來自包裝應用程式 之指示。 〇更新目標檔案:將更新資訊應用於目標檔案之過程(見 上文)在車又佳實施例(下文)中,更新目標楷案係藉由 將目標檔案之一部分複_ $ 稷1至l時檔案、將更新資訊應用 於臨時檔案且利用臨時檔荦中 系T之對應經更新資料來替換 目標檔案之該部分而加以執行。 、 〇增量擋案:可用於(例如)葶 ;系積/、目軚檔案之所欲改變有 關之更新資訊的臨時檔案。 〇目標檑案··為某一動作、操作、 紅 卜 呆邗過.專之所欲物件的檔 ” ’不管檔案是否實際上被作用、影響等。本文中, "目標權案,,可用以指代待保護免受資料損壞之檔案。 〇截取·監測、檢查、改變及/戋 於安“ m义重疋向(例如)應用程式與 搞累糸統之間或應用程式盥作 加 /、作菜糸統之間的通信之過 柱0 127085.doc -19- 200839568 〇獨立應用程式:“—應用程式不視第二應用程式而定 (亦即,不需要第二應用程式來根據所意欲的而起作 用)’則稱第一應用程式獨立於第二應用程式。 • ο包裝:監測、截取及/或控制(例如)另-應用程式與電腦 系統之間或一或多個應用程式與裝置之間的通信之應用 ,程式。 〜 〇貧料儲存裝置:(例如)由資料處理裝置用以儲存資料且 Φ 可自其中擷取資料之機構。資料儲存裝置可為安裝式的 (例如,硬碟)或抽取式的(例如,快閃碟片)或為抽取式 媒體(例如,緊密碟片或磁帶)。 〇儲存命令:為了本中請案,”將命令儲存於增量檔案中” 可用以指代將與命令有關之更新資訊儲存於增量檔案中 的操作,更新資訊含有在將來時間應用命令所必要 料。 貝 【實施方式】 • 、可參看圖式及隨附描述來更好地理解根據各種實施例之 增加透通式檔案更新的原理及操作。 , ±各種較佳實施例例示—藉由使檔案保持打開以供寫入之 ' _間最小化、因此使將在檔案打開時發生意外事件之風險 • 最小化來使損壞資料檔案之風險最小化的系統。 双 根據較佳實施例,應用程式實施可操作以存取受保護資 料檔案(目標檔案)之讀取及寫入命令,而目標檔案保持二 開以僅供讀取一不會將檔案置於風險中之過程。較小服務 儲存區域(在下文中被稱作增量檔案)保持打開且用以儲^ 127085.doc -20- 200839568The order is issued 5 so that the day is removed and the termination event is triggered when the data in the directory is changed by more than 10 kilobytes], iv) the size of the incremental slot containing the updated information is the maximum size threshold. The value of the super ', , ) performance of the system to the minimum activity threshold below the clockcast ·, A Shan I change, V1) the maximum time threshold since the previous merger event, 戎丨彳, The application of the updated information to the temporary file of the commander of the order of the target file will be taken immediately before the simulation is executed. Because &, the temporary update file contains the information, and the work update data will be sent back to the application that issued the read command. The application of the file file to the temporary file can be next to the target file. Before the update. ?曰 127085.doc -15- 200839568, according to other features of the described preferred embodiment, the computer step-by-step includes detecting 终止 for the termination event; 4. after the event is used to utilize the stored update information =New and: detected the termination of the target file for deleting the target file 临< _ _ 八 八 目 目 且 且 且 且 且 且 且 且 且 且 且 或 或 或 或 或 或 或 或 或 或 或 或 或 或 或 或 或 或 或 或 或 或 或 或 或For example, at least one of the files of the packaged program can be included in the file. The file is operative to affect the target command. _ 4 ^ 私 私 独立 独立 独立 独立 独立 独立The wrapper stores the updated information related to at least the file command without changing the steps of the project. The update information may contain the information necessary to perform at least the command. The method can also include the step of updating the target file with the update information. According to other features of the described preferred embodiment, the application in the plurality of included applications can be intercepted and stored in the time interval between the end of storing the update information and the end of updating the target file using the stored update information. Each command initiated by the program and operable to affect the target file. According to still further features in the described preferred embodiments, updating the target file may include the sub-step of copying at least a portion of the target file into the temporary file and applying the stored update information to the temporary file, and utilizing the temporary file, all or - Partially replaces all or part of the target file, thus effectively updating the target slot and deleting the temporary file. According to still further features of the described preferred embodiment, the increment 127085.doc -16-200839568 slot containing the update information can be deleted after the step of applying the stored update message to the temporary file. In accordance with other features of the described preferred embodiment, the updating step can be performed upon occurrence of one or more termination events. Examples of termination events include: i) the issuance of a command to close a target file with H.1), the closing of an application to access a target rights, and iii) the statistics related to a plurality of file commands. Appears [for example, if the application accesses the target broadcast at least once every five minutes in a half-hour period, the application that does not access the target file in the ten-minute period is the update of the trigger target file. Termination event], 1V: transition from the activity level of the industry system to the minimum activity threshold, v) the maximum time threshold since the issuance of the previously stored file command, and the maximum time since the previous merge event Exceeded the threshold. In accordance with other features of the described preferred embodiment, the steps of intercepting the rights command and storing the updated information may be conditional. For example, interception and storage can only occur in the following months: when the file command is issued by a plurality of applications included in the application private, the command is issued by the application other than the (4) application. When the program is issued, when the file command is operable to affect the file different from the temporary file, when the file command is operable to affect the type of case, when the file command is inoperable to affect the arrangement, ', g In the case of a case of dust, or when the file order is operable to affect the storage - in the file in the storage device included. An embodiment of a system for reading data from a text protection target file can include: a processor configured to retrieve a code of a package I application from a storage medium and configured to execute the code. The packaged application can include a code for intercepting at least one of the commands issued by the application independent of the packaged application 127085.doc -17-200839568. The file command is operable to access the protected target slot. The wrapper application can also include code for reading update information related to the file command. The system may also include - a first memory for storing the protected target file (4) and a second physical space for storing updated information. ~ According to other features described in the preferred implementation, the package (4) program for the system for reading from the protected target file may also include the purpose of incorporating the information from the protected target file and the updated information into the temporary file. Code. The temporary file can be a file containing updated information, or the temporary file can be a separate temporary file. Temporary files and update information can be stored on the same memory device as the target file or on a separate memory shelf. An embodiment of a method for reading a protected target building using a package type may include the steps of: intercepting at least a slot command issued by the application by a wrapper program, the play command being operable to access Protected target file. The interception step can be transparent to the application that issued the command. The method can also include the step of reading updated information associated with at least the archive command and stored in the incremental file. Incremental files can be independent of protected target files. The method further includes the step of merging the data from the target file with the update information and returning the merged data as a response to the file command (responding to reading the result data). Terminology The following terms are used in the present application in light of their obvious meaning, and the meanings such as shai are understood to be known to those skilled in the art. However, for the further clarification of the subject matter of the present invention, the following explanations, scrutiny and 127085.doc -18 - 200839568 examples are given as to how such terms may be used or applied herein. The following explanations, explanations, and illustrations should be considered as illustrative or representative and should not be considered as exclusive or limiting. Rather, the terms discussed below should be interpreted as broadly as possible consistent with their general meaning and the following discussion. 〇 Merging: (for example) applying the updated information stored in the incremental file to the self-targeting & copying case to the Pro B Temple (for example, the temporary standard can be an incremental broadcast or a separate temporary file) The process of content. 〇 Merge event: An event that triggers the merge process. Events can be based on system events, such as time bases, _checks, or system instructions. 〇Update target file: The process of applying update information to the target file (see above) In the car-friendly embodiment (below), updating the target file is done by copying one part of the target file _$ 稷1 to l The file is applied to the temporary file and the replacement portion of the target file is replaced by the corresponding updated data of the temporary file T. , 〇 Incremental file: can be used for (for example) 系; 系 /, the temporary file of the file to be changed to update the relevant information. 〇Target ································································································· Refers to the files that are protected from data damage. 〇 Intercepting, monitoring, inspecting, changing, and/or 戋 “ “ ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( 或 或 或 或 或 或Communication between the dishes and the cooking system 0 127085.doc -19- 200839568 〇 Standalone application: “—The application does not depend on the second application (ie, no second application is required) Intended to work) 'The first application is said to be independent of the second application. · ο Packaging: monitoring, intercepting and/or controlling (for example) another application and computer system or one or more applications Application of communication with the device, program. 〇 〇 料 储存 : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : : 〜 〜 〜 〜 〜 〜 〜 , hard drive) or Removable (for example, flash disc) or removable media (for example, compact disc or tape) 〇 Save command: For the case, "Save the command in the incremental file" can be used to refer to The operation of storing the update information related to the command in the incremental file, the update information contains the necessary materials to apply the command in the future. [Embodiment] • , can refer to the schema and accompanying description to better understand according to various The principle and operation of the addition of the transmissive file update of the embodiment. ± Various preferred embodiment examples - by keeping the file open for minimization of the write, thus causing an accident to occur when the file is opened Risks • Minimize the system to minimize the risk of damaging data files. Also according to a preferred embodiment, the application implements a read and write command operable to access a protected data file (target file), and the target The file is kept open for reading purposes only. The file is not put in risk. The smaller service storage area (hereinafter referred to as the incremental file) remains open and used. Storage ^ 127085.doc -20- 200839568

與可操作間由—或多個應用程絲料-❹個資料檔 案(目標檔案)之檔案命令有關的更新資訊。同時,藉由包 裝應用程式來仿真對目標檔案之讀取及寫人。包裝應用程 式起動、監測、截取及仿真功能應用程式與裝置之間或功 能應用程式與作㈣統之間的通信巾之基本要素。特定言 之所有更新資訊累積於一或多個增量標案中。必要時 (二列如4 了仿真經更新目標播案之讀取或準備更新目標 虽案時)’將所儲存更新資訊與自目標檔案所讀取之資料 。併至臨時檔案内。在合併過程中,打開臨時檔案以供寫 入,且將目標檔案之-部分或全部複製至臨時檔案。包芽 ^用程式接著基於儲存於増量㈣中之更新f 時檔案。 偶爾地’亦更新目標檔案。當更新目標檔案時,首先關 ,及檢查臨時檔案。接著由臨時檔案來替換目標檔案之一 :分。此過程藉由使目標檔案打開且易受資料損壞之時間 :小:來保護目標檔案免受資料損壞。此外,若在將目標 :案:製至臨時檔案時、發生電力故障,則目標檔案保持完 二。若在更新目標檔案之—部分時發生電力故障,則臨時 檔案保持完整。 檔案系統及功能應用程式兩者皆看不見此包裝過程,苴 對於兩者為透衫的。魏應靠^恰好在衫在包裝= =程式時起作用。檔案系統處理恰好在不存在包裝應用程 式時到達擋案系統之所有檔案命令。 因此,功能應用程式設計員根據作㈣統標準來寫入其 127085.doc 200839568 式而',、、而使程式適應於或甚至意識到檔案保護常式。 同樣地,程式設古+畐 、 ° 、不罱要設計應用程式依賴性常式來防 止在為儲存而寫入時歸因於中斷的資料損壞。 ,為包裝程式之功能對於功能應用程^及檔案系統為透 通式的’所以包裝程式可獨立於任何特定功能應用程式而 起:用°因此’包裝程式可作為用於保護由任意功能應用 程式所存取之檔案的單機程式而被獨立地銷f。由於包裝 f式獨立於任何特疋功能應用程式,所以包裝程式可包括 於裝置驅動程式中或必_應於來自使用者可安裝之任何 程式之命令的作業系統中。 圖1八展示先前技術之資料處理裝置120a(諸如,個人電 腦),其具有處理器l2la。處理器ma執行應用程式 122a(諸如,Micr〇s〇ft Wind〇ws⑧文字編輯器)及檔 案官理系統124a(諸如,FAT324NTFS)。應用程式以以及 檔案管理系統124a被說明為在處理器121&内部以指示處理 器121a執行應用程式〗22a及檔案管理系統124a。 應用程式122a發出檔案命令,例如,可操作以存取檔案 130a之讀取調用134a。檔案13〇a儲存於攜帶型資料儲存裝 置126a中。讀取調用134a直接由檔案管理系統12乜處理。 樓案管理系統124a打開檔案130a以供讀取,且自槽案13〇a 讀取135a資料且將資料發送137a至應用程式l22a。在稍後 4間,應用私式122a發出弟二稽案命令(可操作以影變樓 案130a之寫入調用136a)。如熟習此項技術者所知,檔案 通常不駐存於單一連續記憶體位址集合中,而由位址藉由 127085.doc -22- 200839568 記憶體位址指標集合相關聯之部分串組成。特定言之,产 案UOa由三個區段13_、13(^及13()_構成、“ 檔案時,可能有必要添加不適合當前經配置給檔案之記憶 體:資訊。在此狀況下’沒有必要將整個檔案移至新記憶 體fc圍t確切而5,使新位址與播案相關聯且將新資料 寫入至新記憶體空間中。檔案管理线ma接收寫入調用 136a、打開檔案130&以供寫入且將資料直接寫入13%至檔 案13Oa。此為目前技術水平。 眾所周知,當在寫入至諸如攜帶型資料儲存裝置12仏之 裝置時發生干擾(例如,電力故障,或攜帶型資料儲存裝 置126a自插槽之移除,或軟體故障)時,有價值的資料可 能自打開的檔案中丟失。因此,無論何時諸如應用程式 122a之應用程式發出諸如寫入命令13仏之寫入命令時,圖 1A之系統的檔案i30a皆處於嚴重的資料損失危險中。 圖1B展示用於增加透通式檔案更新之系統的第一實施 例,包括資料處理裝置120b(諸如,個人電腦),其含有執 行應用程式122b(諸如,Microsoft Windows Notepad文字編 輯斋)、包裝應用程式150(亦被執行於處理器i2ib上)及權 案管理糸統124b(諸如,FAT32或NTFS)之處理器121b。應 用程式122b及包裝應用程式150在圖1B中被呈現為在處理 器121b内部以指示處理琴121b執行應用程式i22b及包裝應 用程式150。 ’ 應用程式122b發出檔案命令,例如,可操作以影響儲存 於行動儲存裝置126b上之檔案130b的寫入調用136b。應用 127085.doc -23 - 200839568 程式122b為標準應用程式,且所有檔案命令(包括寫入調 用13 6b)係根據標準作業系統協定而發出。 目標檔案130b由被標記為130b-i、13〇b-ii及130b_iii之二 個部分組成。每一部分13〇b-i、130b-ii及130b-iii佔用一連 續記憶體位址串。每一部分13〇1^及13〇1)4之最後位元組 為指向目標檔案13〇b之下一部分之第一位址的指標。部分 130b-iii之最後位元為代表檔案13〇b之結束的停止位元。 寫入調用136b由包裝應用程式150截取。在此實例中,寫 入調用136b可操作以影響部分13〇νΗ。當包裝應用程式 150偵測到寫入調用i36b時,則包裝應用程式15〇檢查以判 定是否截取及重定向寫入調用136b。在圖1B之實施例的實 例中,截取及重定向寫入調用13讣視達到所有以下條件而 定:儲存裝置126b為待保護之儲存裝置類型當中所包括的 類型’且檔案130b之類型包括於待保護之檔案類型當中。 在此實例中,由於在包裝應用程式15〇之設置期間使用者 指定所有攜帶型儲存裝置應受保護,且由於攜帶型儲存裝 置126b之驅動常式將攜帶型儲存裝置12讣界定為攜帶型儲 存裝置,因此,攜帶型儲存裝置126b為所包括的儲存裝 置。類似地,檔案13〇b為所包括的檔案類型( txt檔案),因 此,包裝應用程式150截取及重定向寫入調用13讣。 系統調用之截取可以熟習程式設計技術者所知之許多方 式來完成,如諸如Nitesh Dhanjani及Gustavo R〇drigUez-Rivera 在 Linux Journal 2006 中出版之"Loadable Keme!Update information relating to the file order of the operationally------------------------------------------------------------------------------------- At the same time, the application file is used to simulate the reading and writing of the target file. Packaging application start-up, monitoring, interception and emulation of the basic elements of the communication towel between the application and the device or between the functional application and the system. All update information for a particular statement is accumulated in one or more incremental criteria. If necessary (the second column is 4 if the simulation is updated to read the target broadcast or when the target is updated), the stored update information and the information read from the target file. And to the temporary file. During the merge process, the temporary file is opened for writing and some or all of the target file is copied to the temporary file. The package is then based on the file stored in the quantity (4) of the update f. Occasionally, the target file is also updated. When updating the target file, first close and check the temporary file. Then replace one of the target files with a temporary file: points. This process protects the target file from data corruption by opening the target file and being vulnerable to data corruption: Small: In addition, if the power failure occurs when the target: case: system is made to the temporary file, the target file is kept complete. If a power failure occurs while updating the part of the target file, the temporary file remains intact. Both the file system and the functional application cannot see the packaging process, 苴 for both. Wei should rely on ^ when the shirt works in the package == program. The file system handles all file commands that arrive at the file system just in the absence of a packaged application. Therefore, the functional application designer writes its program according to the (4) system standard, so that the program adapts or even becomes aware of the file protection routine. Similarly, the program sets the ancient +畐, °, and does not want to design an application-dependent routine to prevent data corruption due to interruptions when writing for storage. The function of the wrapper is for the function application and the file system is 'transparent' so that the wrapper can be independent of any specific function application: so the 'package program can be used as a protection for any function application The stand-alone program of the accessed file is independently sold f. Since the package f is independent of any special function application, the package program can be included in the device driver or in an operating system that must be commanded from any program that the user can install. Figure 18 shows a prior art data processing device 120a (such as a personal computer) having a processor 111a. The processor ma executes an application 122a (such as the Micr〇s〇ft Wind〇ws8 text editor) and a file manager system 124a (such as FAT324NTFS). The application and file management system 124a is illustrated as executing the application 22a and the file management system 124a with the instruction processor 121a within the processor 121 & The application 122a issues an archive command, for example, operable to access the read call 134a of the archive 130a. The file 13A is stored in the portable data storage device 126a. The read call 134a is processed directly by the file management system 12A. The building management system 124a opens the file 130a for reading, and reads 135a data from the slot 13A and sends 137a to the application 12a. In the next four, the application private 122a issues the second instance command (which can be operated to change the write call 136a of the building 130a). As is known to those skilled in the art, archives typically do not reside in a single contiguous memory address set, but are composed of a partial string associated with a set of memory address metrics by the 127085.doc -22-200839568. Specifically, the production case UOa consists of three sections 13_, 13 (^ and 13 () _, "When archiving, it may be necessary to add memory that is not suitable for the current configuration to the file: information. Under this condition, 'no It is necessary to move the entire file to the new memory fc t exactly and 5, so that the new address is associated with the broadcast and the new data is written into the new memory space. The file management line ma receives the write call 136a, opens the file 130& for writing and writing data directly to 13% to file 13Oa. This is the state of the art. It is well known that when writing to a device such as portable data storage device 12 (eg, power failure, When the portable data storage device 126a is removed from the slot, or the software fails, valuable information may be lost from the opened file. Therefore, whenever an application such as the application 122a issues a write command, for example. At the time of the write command, the file i30a of the system of Figure 1A is in serious data loss risk. Figure 1B shows a first embodiment of a system for adding a transmissive file update, including data processing. A 120b (such as a personal computer) containing an execution application 122b (such as Microsoft Windows Notepad text editing), a packaging application 150 (also executed on processor i2ib), and a rights management system 124b (such as The processor 121b of the FAT32 or NTFS). The application 122b and the wrapper application 150 are presented in FIG. 1B as executing the application i22b and the wrapper application 150 inside the processor 121b with the instruction processing instrument 121b. 'Application 122b issues the file The command, for example, is operable to affect the write call 136b of the file 130b stored on the mobile storage device 126b. The application 127085.doc -23 - 200839568 program 122b is a standard application, and all file commands (including write calls 13 6b) ) is issued in accordance with the standard operating system agreement. The target file 130b consists of two parts labeled 130b-i, 13〇b-ii and 130b_iii. Each part 13〇bi, 130b-ii and 130b-iii occupy a continuous The memory address string. The last byte of each part 13〇1^ and 13〇1)4 is an indicator pointing to the first address of a part of the target file 13〇b. Part 1 The last bit of 30b-iii is the stop bit representing the end of the file 13〇b. The write call 136b is intercepted by the wrapper application 150. In this example, the write call 136b is operable to affect the portion 13〇νΗ. When the wrapper application 150 detects a write call to i36b, the wrapper application 15 checks to determine whether to intercept and redirect the write call 136b. In the example of the embodiment of FIG. 1B, the intercept and redirect write call 13 The contempt depends on all of the following conditions: the storage device 126b is of the type included in the type of storage device to be protected and the type of the file 130b is included in the file type to be protected. In this example, since the user specifies that all portable storage devices should be protected during the setting of the packaging application 15b, and the portable storage device 12b is defined as portable storage due to the driving routine of the portable storage device 126b The device, therefore, the portable storage device 126b is the included storage device. Similarly, the file 13〇b is the included file type (txt file), so the wrapper application 150 intercepts and redirects the write call 13讣. The interception of system calls can be done in many ways known to the programmer, such as, for example, Nitesh Dhanjani and Gustavo R〇drigUez-Rivera published in Linux Journal 2006 "Loadable Keme!

Module Pr〇gramming and System Call 加⑽咖仙&quot;的電腦 I27085.doc • 24 - 200839568 程式設計教材中詳細所描述。特定言之,包裝應用程式 150防止寫入調用136b至檔案管理系統匕仆之直接傳輸。 實情為’包裝應用程式15〇指示152b檑案管理系統_將 ^寫入調用136b有關之更新資訊儲存於增量槽案158中。 檔案管理系統124b將為更新目標檔案130b所必要之更新資 訊寫入139b至增量檔案158。在圖⑺之實例中,更新資訊 包括用以添加至目標檔案13〇b之資料。將理解,更新資訊 可為編輯資訊(例&gt;,用以將資料土鬼自目標檔案i3Gb内之 :位置移至另一位置的指令,或用以自目標檔^爲移除 資料塊之指令),在此狀況下,其更新資訊可能不包括目 標檔案130b之新資料。或者,若不存在增量檔案158,則 擋案管理系統將首先在寫入139b資料之前建立增量檔案 158。包裝應用程式15〇報告回至執行應用程式,仿佛 目標擋案130b已被更新一般,因此仿真了對目標檔案13价 之寫入。在仿真寫入過程期間,所有寫入已到達增量播案 158。目標檔案130b尚未被修改,且目標檔案13〇b尚未被 打開以供寫入。應強調,包裝應用程式15〇根據標準作業 系統協定來接收檔案命令,且將回應及資料傳回至應用程 式122b ’從而精確地仿真作業系統回應及資料。因此,包 裝應用程式150之活動對於應用程式122b為透通式的,且 因此’應用程式122b之活動係根據操作標準且歸因於存在 包裝應用程式15 0而不需要修改。 在圖1B之實例中,包裝應用程式150及應用程式匕以皆 由單一處理器12 lb執行。因此,為了有助於命令截取,包 127085.doc -25- 200839568 裝應用程式包裝應用程式i 22b。11包裝&quot;應用程式122b意指 應用程式⑽不獨立地執行。更確切而言,當使用者請求 開始應用程式122b時,使請求通過包裝應用程式15〇。包 裝應用程式150調用在包裝應用程式15〇&quot;内部”執行(由包裝 應用程式150包裝)之應用程式122b(亦即,至及來自應用程 3 式122b之所有輸入及輸出係經由包裝應用程式150)。 在稍後時間,應用程式122b發出第二檔案命令(讀取調 φ 用134b)。讀取調用134b存取目標檔案130b;且特別在部分 130b-ii處存取。包裝應用程式15〇接著重定向讀取調用 13仆,且藉由發出存取目標檔案130b之第一讀取調用134c 來仿真自目標擋案l30b讀取資料。讀取調用13軋由檔案管 理系統124b處理。檔案管理系統12仆打開檔案13补以供讀 取,且自檔案130b之部分130b-ii讀取l35e資料且將讀取結 果資料發送137c至包裝應用程式15〇。 包裝應用程式150接著檢查是否存在與目標檔案13补相 • 關聯之增量檔案158且增量檔案158中之更新資訊是否應用 於靖取凋用134b之範圍。在圖丨丑之實例中,存在增量權案 158且檔案i3〇b之部分13〇ι^π中含有讀取調用13仆之範 圍,且增量檔案158確實含有讀取調用134b之範圍的更新 • 貝訊。因此,為了實行讀取調用134b且將最新讀取結果資 料(仿真讀取資訊)傳回至應用程式122b,有必要合併與儲 存於增量檔案158中之檔案命令152b有關的更新資訊與來 自目標檔案130b之資料。因此,讀:取調用13仆構成觸發儲 存於增量檔案158中之命令與儲存於目標檔案n〇b中之資 127085.doc -26- 200839568 料之合併的合併事件。為了執行合併,包裝應用程式i5〇 發出存取增量檔案158之第二讀取調用134d。讀取調用 134d由檔案管理系統12仆處理。檔案管理系統〗2仆打開增 里桮案158以供讀取,且自增量檔案158讀取13%資料且將 讀取結果資料發送137d至包裝應用程式15〇。 來自喂取135c-d之讀取結果資料由包裝應用程式15〇藉 由將來自碩取135d之更新資訊應用於來自讀取135c之資料 而。併,且將合併資料發送137b至執行應用程式122b,從 而仿真回應於讀取請求13仆之讀取結果資料之傳回。因 此,包裝應用程式已仿真了自目標檔案13〇讀取經更新資 料。應用程式122b未意識到其尚未直接與檔案管理系統 124b通信。 在此點上,來自讀取l35c_d之合併資料構成目標檔案 130b之部分13〇ιπ的經更新版本。因為在此實例中資料處 理裝置120b上之活動當前為低的(存在許多自由處理能 力’使得更新目標檔案130將不干擾任何其他過程),所以 包裝應用程式150更新目標檔案i30b。將理解,沒有必要 在每次將資料合併至臨時檔案内時更新目標檔案丨3〇b。為 了更新目標檔案130b,包裝應用程式15〇首先指示15以楷 案系統124b將合併資料寫入139c至增量檔案158内(因此替 換先前儲存於增量檔案158中之命令資訊)。接著,包裝麻 用程式150指示檔案系統124b藉由利用現在儲存於增量播 案158中之合併資料來替換193部分130b-ii而更新目標標案 130b。由於目標檔案130b及增量檔案158兩者皆已經存在 127085.doc -27- 200839568 於同—儲存裝置126b上,所以接著僅藉由改變位址指標以 將k里4田案158併入目標檔案i3〇b内以代替部分130b-ii來 實現替換193。特別在圖1]8之實例中,將增量檔案158之結 束處之扣k的位址設定成指向檔案之部分I30b-iii的 開始處,且接著關閉增量檔案158。在包裝應用程式15〇驗 證已關閉增量檔案158時]τ開目標檔案職以供寫入, 且將目日標檔案mb之部分而]之結束處的指標設定成指 向增篁檔案158之開始的位址處,且接著關閉目標檔案 u〇b。最終,使目標檔案130b之部分i3〇b_H的記憶體空間 自由以供將來寫入命令使用。由於已將增量檔案158完全 重新配置給目標檔案隱,因此,自健存裝置⑽之目錄 移除增量檔案158之開始的記憶體指#,從而有效地刪除 了增量檔案158。當存在將來寫入命令時,包裝應用程式 15 0將需要建立新增量檔案。 在圖㈣實例中,合併自目標檔案1所複製之資料鱼 儲存於增量檔案158中之命令料由讀取調们鳩來觸 發。合併亦在無論何時存在使有必要更新目標㈣咖之 終止事件時被觸發。在更新目標檔案i鳩之前,將儲存於 〜里4田案158中之更新資訊與儲存^目標檔案13的中之資 料合併至臨時權案内(如上文,增量權案158可充當臨時槽 案)。以此方式,臨時檔案充當目標檔案拠之備份,若 在更新目標檔案隱時發生電力故障,藉此損壞目標㈣ 邊,則可自臨時檔案中恢復目標檔案隱之資料。人併 亦可在自最後合併以來已超過時間臨限值之後存在可用資 127085.doc -28- 200839568 源[記憶體空間及處理器時間]時的任何時間被觸發。 許多事件可觸發目標檔案之更新。更新可被週期性地觸 發(例如,目標檔案130b可每隔15分鐘被更新一次),或更 新可藉由終止事件來觸發。終止事件之實例包括已存取目 標檔案之應用程式122b的關閉、或增量檔案158變得太大 (超過大小臨限值),或組合事件(組合事件之一實例為在自Module Pr〇gramming and System Call Plus (10) Coffee Fair's computer I27085.doc • 24 - 200839568 The programming textbook is described in detail. In particular, the wrapper application 150 prevents the direct transfer of the write call 136b to the file management system. The fact is that the 'packaging application 15' indicates that the 152b file management system _ stores the update information associated with the call 136b in the incremental slot 158. The file management system 124b writes 139b to the incremental file 158 for the update information necessary to update the target file 130b. In the example of Fig. (7), the update information includes the material to be added to the target file 13〇b. It will be appreciated that the update information may be an edit message (eg, an instruction to move the data ghost from the target file i3Gb: position to another location, or an instruction to remove the data block from the target file) In this case, the update information may not include the new data of the target file 130b. Alternatively, if there is no incremental file 158, the file management system will first create an incremental file 158 before writing the 139b data. The wrapper application 15 reports back to the execution application as if the target file 130b has been updated, thus emulating the 13-value write to the target file. During the emulation write process, all writes have reached the incremental play 158. The target file 130b has not been modified, and the target file 13〇b has not been opened for writing. It should be emphasized that the packaging application 15 receives the file command in accordance with the standard operating system protocol and passes the response and data back to the application 122b' to accurately simulate the operating system response and data. Thus, the activity of the packaged application 150 is transmissive to the application 122b, and thus the activity of the application 122b is based on operational criteria and is due to the presence of the packaged application 150 without modification. In the example of Figure IB, the wrapper application 150 and the application are both executed by a single processor 12 lb. Therefore, to facilitate command interception, package 127085.doc -25- 200839568 installs the application wrapper application i 22b. The 11 package &quot;application 122b means that the application (10) is not executed independently. More specifically, when the user requests to start the application 122b, the request is passed through the package application 15. The wrapper application 150 invokes the application 122b (which is packaged by the wrapper application 150) in the wrapper application 15&quot; (i.e., all input and output to and from the application mode 122b via the wrapper application) 150) At a later time, the application 122b issues a second file command (read φ for 134b). The read call 134b accesses the target file 130b; and specifically accesses at portions 130b-ii. The wrapper application 15 Then, the read call 13 servant is redirected, and the data is read from the target file l30b by issuing the first read call 134c of the access target file 130b. The read call 13 is processed by the file management system 124b. The management system 12 opens the file 13 for reading, and reads the l35e data from the portion 130b-ii of the file 130b and sends the read result data 137c to the packaging application 15〇. The packaging application 150 then checks for the presence and absence. The target file 13 is complemented by the associated incremental file 158 and the updated information in the incremental file 158 is applied to the range of 134b. In the example of the figure, there is an incremental right. 158 and the portion of the file i3〇b, 13〇ι^π, contains the range of the read call 13 servant, and the incremental file 158 does contain the update of the range of the read call 134b. • Therefore, in order to implement the read call 134b And the latest read result data (simulation read information) is transmitted back to the application program 122b, it is necessary to merge the update information related to the file command 152b stored in the incremental file 158 with the data from the target file 130b. Therefore, read The fetch 13 servant constitutes a merge event that triggers the merge of the command stored in the delta file 158 with the 127085.doc -26-200839568 stored in the target file n〇b. To perform the merge, the wrap application i5〇 A second read call 134d is issued to access the delta file 158. The read call 134d is processed by the file management system 12. The file management system </ br> opens the Zengli Cup case 158 for reading, and the self-increment file 158 Read 13% of the data and send the read result data to 137d to the packaging application 15〇. The reading result data from the feeding 135c-d is applied by the packaging application 15〇 by applying the updated information from the 135d From the data of the read 135c, and the merged data is sent 137b to the execution application 122b, so that the simulation returns in response to the read result data of the read request 13. Therefore, the packaged application has been simulated from the target. The file 13b reads the updated data. The application 122b is unaware that it has not yet communicated directly with the file management system 124b. At this point, the merged material from the read l35c_d constitutes an updated version of the 13 〇ι of the target file 130b. . Since the activity on data processing device 120b is currently low (there is a lot of free processing capability) such that update target archive 130 will not interfere with any other process in this example, wrapper application 150 updates target archive i30b. It will be appreciated that it is not necessary to update the target file 每次3〇b each time the data is merged into the temporary file. In order to update the target file 130b, the wrapper application 15 first instructs 15 to write the merged data to 139c into the delta file 158 by the file system 124b (and thus replace the command information previously stored in the delta file 158). Next, the package utility 150 instructs the file system 124b to update the target target 130b by replacing the 193 portion 130b-ii with the merged material now stored in the incremental broadcast 158. Since both the target file 130b and the incremental file 158 already exist on 127085.doc -27-200839568 on the same storage device 126b, the kili 4 field case 158 is then merged into the target file only by changing the address index. Substitution 193 is implemented in i3〇b instead of part 130b-ii. In particular, in the example of Figure 1-8, the address of the deduction k at the end of the delta file 158 is set to point to the beginning of the portion I30b-iii of the archive, and then the delta file 158 is closed. When the packaging application 15 verifies that the incremental file 158 has been closed] τ opens the target file for writing, and sets the indicator at the end of the target file mb to point to the beginning of the enhanced file 158 At the address, and then close the target file u〇b. Finally, the memory space of part i3〇b_H of the target file 130b is free for future write commands. Since the incremental file 158 has been completely reconfigured to the target file, the memory index # at the beginning of the incremental file 158 is removed from the directory of the health storage device (10), thereby effectively deleting the incremental file 158. When there is a future write command, the wrapper application 150 will need to create a new volume file. In the example of Fig. 4, the command to merge the data fish copied from the target file 1 into the incremental file 158 is triggered by the read tone. The merger is also triggered whenever there is a need to update the target (4) coffee termination event. Before updating the target file i, the update information stored in the ~Li 4 Tian case 158 and the data stored in the target file 13 are merged into the temporary rights (as in the above, the incremental rights case 158 can serve as a temporary slot case) ). In this way, the temporary file serves as a backup of the target file. If a power failure occurs while updating the target file, thereby destroying the target (4) side, the hidden data of the target file can be restored from the temporary file. The person may also be triggered any time after the time limit has expired since the last merge. 127085.doc -28- 200839568 Source [Memory Space and Processor Time] is triggered. Many events can trigger an update of the target file. Updates may be triggered periodically (e.g., target archive 130b may be updated every 15 minutes), or may be triggered by a termination event. Examples of termination events include the closing of the application 122b that has accessed the target file, or the incremental file 158 becoming too large (beyond the size threshold), or a combined event (one instance of the combined event is at

最後更新以來已超過時間臨限值之後存在可用資源(記憶 體空間及處理裔時間)的組合)。 熟習此項技術者將理解,增量檔案158亦可由若干部分 組成,增ΐ檔案158之第一部分可包括部分13〇ι&gt;_ϋ之檔案 命令,而增S檔案158之第二部分含有部分13〇ΐ3_ίη之檔案 命令。在此狀況下,有可能合併部分13此七與增量檔案 158之第一部分且接著更新部分13〇1)七,使檔案13补之部 分130b-iii保持於原始狀態,從而使增量㈣158僅含有第 二部分。類似地’將理解’㈣之第_或最後部分可藉由 改變檔案目錄位址指標或停止位元而改變。熟習此項技術 者將理解交換檔案之部分的其他現有方式。 在圖1B之實施例中,增量權案158儲存於與目標標案 屬相同的記憶體(攜帶型記憶體裝置咖)上。應理解, 增量檔案158可為駐存於f料處理裝置丨鳥之快速揮發性 記憶體中或硬碟中或資料虛@ I MM …… 裝置⑽之非揮發性記憶體 :或另一攜帶型儲存裝置中或抽取式媒體(例如,可寫緊 袷碟片)中之臨時檔宰的一 &quot; 一 彳分。類似地,在圖1B之實施 例中,包裝應用程式15〇將读兩 式150將項取135c_d之資料合併至空間 127085.doc -29· 200839568 (計算裝置120b之揮發性記憶體)内’因此有效地將讀取調 用mb重定向至含有合併資料之空間。應理解,合併資訊 可儲存於任何記憶體裝置上,例如,儲存於硬碟中或資料 處理裝置120b之非揮發性記憶體中或另一攜帶型儲存裝置 中或抽取式媒體(例如,可寫緊密碟片)中。 圖2展示資料處理裝置22〇(諸如,並行處理器之網路), 其執行應用程式222(諸如,Micr〇s〇ft 滅〇⑧)、包 裝應用程式250及檔案管理系統以(諸如,fat NTFS) 〇 〆 應用程式222發出檔案命令(可操作以影響儲存於儲存裝 置226中之檔案23()的寫人則236)i人調用咖由包裝 應用程式25峨取。在圖2之實施财,包裝應用程式⑽ 由處理11221b執行,而應用,程式⑵執行於獨立處理哭 資料處理裝置220之網路中的處理器)上。包裝應用程 式250猎由指示252_ f理系統似將與寫人調用236有關 之錢資訊儲存於增量檔案258中來重定向寫人調用咖。 檔案管理系統224僅將為更新目標檔案23〇所需要之更新資 訊寫入239至增量㈣258。將與寫人調用咖有關之更新 資訊儲存至增量檔案258,而目標檔案咖保持不變。包裝 應用程式250報告回至執行應用程式如,仿佛目標播案 230已被更新-般’因此仿真了對檔案23()之寫人。在圖2 之只例申,增1檔案258儲存於資料處理裝置之揮發性 記憶體中。 稍後在搞測到”終止事件&quot;288之出現後(在圖2之實例中, 127085.doc 200839568 終止事件288為應用程式222之關閉,應用程式222已發出 可操作以影響目標檔案230之寫入調用236),包裝應用程 式250即更新目標檔案230。因為增量檔案258不儲存於與 播案230相同的儲存裝置226上,所以不可能藉由將資料複 製至增量檔案258内及將更新資訊應用於增量擋案258中之 複製資料且改變指標(如在圖1B之實例中)來更新目標檔案 230。為了更新目標檔案230,包裝應用程式250必須首先 將來自增量檔案258之所儲存更新資訊與來自目標標案23〇 之資料合併至儲存裝置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(因此有效地更新了目標檔案23〇且 刪除了臨時檔案292)。: 在圖2之實例中,因為應用程式222不由與包裝應用程式 250相同的處理器221執行,所以包裝應用程式25〇不能包 裝應用程式222(控制應用程式222之所有輸入及輸出)。因 此’包裝應用程式250包裝檔案系統224,使得對檔案系統 127085.doc -31- 200839568 224之所有调用通過包裝應用程式25〇。因此,包裝應用程 式250有效地包裝儲存裝置226。 應理解,檔案230可由多個應用程式存取。因此,來自 每一應用程式之寫入命令由包裝應用程式25〇截取且重定 向至增里檔案258。類似地,藉由任何應用程式來讀取檔 案230之嘗試將被截取且觸發合併事件。熟習此項技術者 將理解,不同於必須鎖定對受保護檔案之存取的先前技術 之單應用程式構案保濩機制(諸如,由Microsoft⑧Word所 使用之機制),包裝應用程式250允許多個應用程式對目標 檔案230進行同時讀寫存取。 热習先前技術者亦將理解鎖定檔案存取及檔案存取衝突 之可能性。特別在圖i之實施例(其中,包裝應用程式15〇 僅包裝一或多個特定應用程式(例如,應用程式222),而不 包裝檔案系統124b)中,有可能使獨立應用程式(不由包裝 應用程式150包裝)不經由包裝應用程式15〇而存取檔案 130b。在此等狀況下,存在先前技術之解決辦法(諸如, 鎖定檔案 130b)(例如,如 1997 年 Jeffery Richter 在 MicrosoftThere is a combination of available resources (memory space and processing time) after the time limit has been exceeded since the last update. Those skilled in the art will appreciate that the delta file 158 may also be comprised of a number of portions, the first portion of the enhanced file 158 may include a portion of the file order of 13 〇&gt;_ϋ, and the second portion of the additional S file 158 contains a portion of the file 〇 Ϊ́3_ίη file command. In this case, it is possible to merge the portion 13 of the seventh and the first portion of the delta file 158 and then update the portion 13〇1) seven, so that the portion 13b-iii of the file 13 is maintained in the original state, thereby making the increment (four) 158 only Contains the second part. Similarly, it will be understood that the _th or last part of (4) can be changed by changing the archive directory address indicator or the stop bit. Those skilled in the art will understand other existing ways of exchanging portions of the archive. In the embodiment of Fig. 1B, the incremental weight 158 is stored on the same memory (portable memory device) as the target standard. It should be understood that the incremental file 158 may be a non-volatile memory that resides in the fast volatile memory of the ostrich of the f-processing device or in the hard disk or in the virtual memory of the device (10): or another portable device A type of temporary storage in a type of storage device or removable media (for example, a writeable compact disc). Similarly, in the embodiment of FIG. 1B, the packaging application 15 will merge the data of the item 135c_d into the space 127085.doc -29. 200839568 (volatile memory of the computing device 120b). Effectively redirects the read call mb to the space containing the merged data. It should be understood that the combined information can be stored on any memory device, for example, in a non-volatile memory stored in a hard disk or data processing device 120b or in another portable storage device or in removable media (eg, writable) Tight disc). 2 shows a data processing device 22 (such as a network of parallel processors) that executes an application 222 (such as Micr〇s〇 〇 〇 8), a wrapper application 250, and an archive management system (such as fat NTFS) The application 222 issues a file command (a writer 236 operable to affect the file 23() stored in the storage device 226). The person invokes the coffee package by the package application 25. In the implementation of Figure 2, the package application (10) is executed by process 11221b, and the application (2) is executed on the processor in the network that independently processes the data processing device 220. The wrapper application 250 is hunted by the indication 252 to store the money information associated with the caller 236 in the delta file 258 to redirect the caller to invoke the coffee. The file management system 224 only writes 239 to the increment (four) 258 for the update information needed to update the target file. The update information related to the caller's call to the coffee is stored in the incremental file 258, and the target file remains unchanged. The wrapper application 250 reports back to the execution application as if the target broadcast 230 has been updated - thus emulating the writer of the file 23(). In the example of Figure 2, the additional file 258 is stored in the volatile memory of the data processing device. Later, after detecting the occurrence of the "terminating event" 288 (in the example of FIG. 2, 127085.doc 200839568 termination event 288 is the closing of the application 222, the application 222 has issued an action to affect the target file 230. Write call 236), the wrapper application 250 updates the target file 230. Since the delta file 258 is not stored on the same storage device 226 as the play case 230, it is not possible to copy the data into the delta file 258 and The update information is applied to the replicated material in the incremental file 258 and the indicator is changed (as in the example of Figure IB) to update the target file 230. In order to update the target file 230, the package application 250 must first come from the incremental file 258. The stored update information and the data from the target file 23 are merged into the temporary file 292 on the storage device 226. Thus, the package application 250 instructs 290 the file system 224 to create 294 temporary slots 292, which will be from the target file 230. The content is copied 296 into the temporary file 292 and the file command stored in the incremental file 258 (the update information related to the call 236 is applied) is applied to the temporary file 298. File 292. Once the merge successfully ends the 'packaging application 250, the file system 224 is instructed to close the temporary rights 292 and replace the 293 target file 230 with the temporary file 292. Because both the target case 230 and the temporary file 292 have been Existing on the same storage device 226' so the replacement is performed only by the self-posting directory to remove the indicator to the temporary building 292 and the target file 230 (the stored address) is changed to the address of the temporary broadcast 292. 293 (thus effectively updating the target file 23 and deleting the temporary file 292). In the example of FIG. 2, since the application 222 is not executed by the same processor 221 as the package application 250, the package application 25〇 The application 222 (which controls all input and output of the application 222) cannot be wrapped. Thus the 'packaging application 250 wraps the file system 224 so that all calls to the file system 127085.doc -31 - 200839568 224 pass the wrapper application 25 . Thus, the wrapper application 250 effectively wraps the storage device 226. It should be understood that the archive 230 can be accessed by multiple applications. Each application's write command is intercepted by the wrapper application 25 and redirected to the Zengli file 258. Similarly, attempts to read the file 230 by any application will be intercepted and trigger the merge event. The skilled artisan will appreciate that unlike prior art single application composition assurance mechanisms (such as those used by Microsoft 8 Word) that must lock access to protected files, the wrapper application 250 allows multiple applications to target The file 230 performs simultaneous read and write access. Those skilled in the art will also understand the possibility of locking file access and file access conflicts. In particular, in the embodiment of FIG. 1 (wherein the packaging application 15 is only packaging one or more specific applications (eg, application 222), but not the packaging file system 124b), it is possible to make a standalone application (not packaged) The application 150 wraps the file 130b without going through the wrapper application 15〇. Under these conditions, there are prior art solutions (such as locking file 130b) (for example, such as 1997 Jeffery Richter at Microsoft

Press,Redmond Washington 出版之 Advanced Windows 3rdPress, Advanced Windows 3rd by Redmond Washington

Edition且特別在第711至715頁中所描述)。 應理解,在一替代實施例中,可將資料自目標檔案23〇 複製296至臨時檔案292以作為截取第一寫入調用236之一 部分。在此實施例中,臨時檔案292將為目標檔案23〇之經 常經更新版本,且更新目標檔案230將僅由關閉臨時檔案 292及將目標樓案230之位址指標移至臨時樓案292之位址 127085.doc -32- 200839568 組成。 在圖2之實例中,處理器221a-b為資料處理裝置22〇之多 處理器網路的組件。熟習此項技術者應理解,存在替代處 理器組態且其與用則呆護檔案之系統及方法的各種;施: &quot; 相容。舉例而言,處理器221b可為資料儲存裝置226之内 . 部組件,或處理器221b可為網路上之專用檔案系統伺服器 的組件。 圖3展示圖2之實施例之讀取過程的簡化流程圖。包裝應 用程式250截取301來自應用程式222之讀取命令。包裝應 用程式250首先測試302是否存在含有讀取命令被定向之檔 案230之更新資訊的增量檔案。若不存在增量檔案,則將 控制傳回至檔案管理系統224,檔案管理系統224通常根據 先前技術來處理讀取命令:藉由直接自目標檔案23〇讀取 3〇6所請求範圍且將讀取結果資料傳回3〇9至請求應用程式 222 〇 φ 右測試302傳回正結果(即,存在含有待讀取之檔案23〇 之更新資訊的增量檔案258),則包裝應用程式25〇進一步 檢查304增量檔案258之更新資訊是否可操作以影響讀取命 令之範圍。若不存在所請求範圍之更新資訊,則將控制傳 • 回至檔案管理系統224,檔案管理系統224通常根據先前技 術來處理讀取命令:藉由直接自目標檔案23〇讀取3〇6所請 求範圍且將資料傳回309至請求應用程式222。 若測試304傳回正結果(增量檔案258含有待讀取之資料 範圍的更新資訊),則包裝應用程式250合併308待自增量 127085.doc -33- 200839568 檔案讀取之範圍的資料與來自目標檔案之更新資訊(藉由 將待自目標檔案230讀取之範圍複製至臨時檔案292且將來 自乓i檔案25 8之更新資訊應用於臨時播案292中之複製資 料)’且將來自所請求範圍之合併資料傳回3〇9至請求應用 程式222。 圖4展不根據圖2之實施例之合併過程的簡化流程圖。包 裝應用程式250偵測410指示需要開始合併過程(在更新目 軚檔案23 0之前)之終止事件288的出現。特別在圖4之實例 中,使用者關閉應用程式222,應用程式222在當前會話中 已發出用以修改目標檔案230之至少一命令。當包裝應用 私式250偵測到裝置220之作業系統關閉應用程式222時, 則包裝應用程式250命令290檔案系統224打開294空臨時檔 案292且將來自目標檔案23 〇之内容複製296至臨時檔案292 内。特別在圖4之實例中,待複製至臨時'檔案292之資料為 待在寫入調用236中存取之資料範圍。包裝應用程式25〇進 一步命令檔案系統224將儲存於增量檔案258中之更新資訊 應用298於臨時檔案292。特別在圖4之實例中,增量檔案 25 8含有與寫入調用236有關之更新資訊。一旦已將儲存於 增量檔案258中之更新資訊應用298於臨時檔案292,包裝 應用程式250就發出用以關閉411臨時檔案292之命令及用 以藉由將目標檔案230之一部分之指標中的位址改變至臨 時檔案292之位址而利用臨時檔案292來替換293目標樓案 230之該部分的命令。包裝應用程式25〇接著繼續進行,以 精由指不權案糸統2 2 4將目1標播案2 3 0之經替換部分及增量 127085.doc -34- 200839568 播案258的記憶體空間報告為自由空間來廢除413目標檔案 230之、、二曰換邠分及增量檔案258,因為其不再被需要。 若在獨立應用程式寫人至增量播案258時觸發合併事 件貝j在疋成寫入操作之前暫時中止合併過程。若在完成 口併匕私之後存在對目標播案23g之新寫人調用,則將打 開414新增1權案。或者’彳緊鄰合併過程之後自動地打 開414新增量擋案。Edition and especially as described on pages 711 to 715). It should be understood that in an alternate embodiment, the data may be copied 296 from the target file 23 to the temporary file 292 as part of intercepting the first write call 236. In this embodiment, the temporary file 292 will be a frequently updated version of the target file 23, and the update target file 230 will only be moved by closing the temporary file 292 and moving the address of the target building 230 to the temporary building 292. The address is 127085.doc -32- 200839568. In the example of FIG. 2, processors 221a-b are components of a multiprocessor network of data processing devices 22. Those skilled in the art will appreciate that there are various alternatives to the processor configuration and that are compatible with the systems and methods used to protect the files; For example, the processor 221b can be within the data storage device 226. The component, or the processor 221b can be a component of a dedicated file system server on the network. 3 shows a simplified flow chart of the reading process of the embodiment of FIG. 2. The wrapper application 250 intercepts 301 a read command from the application 222. The wrapper application 250 first tests 302 if there is an incremental file containing updated information for the file 230 to which the read command is directed. If there is no incremental file, then control is passed back to the file management system 224, which typically processes the read command according to prior art: by reading the 3-6 request range directly from the target file 23〇 and The read result data is returned to 3〇9 to the request application 222 〇φ The right test 302 returns the positive result (ie, there is an incremental file 258 containing the update information of the file to be read 23), then the package application 25 Further checking whether the update information of the 304 incremental file 258 is operational to affect the extent of the read command. If there is no update information for the requested range, then control is passed back to the file management system 224, which typically processes the read command according to prior art: by reading 3〇6 directly from the target file 23〇 The scope is requested and the data is passed back 309 to the requesting application 222. If test 304 returns a positive result (incremental file 258 contains updated information for the range of data to be read), then wrapper application 250 merges 308 the data to be read from the range of 127085.doc -33 - 200839568 file read and Update information from the target file (by copying the range to be read from the target file 230 to the temporary file 292 and applying the updated information from the Pong i file 25 8 to the copy material in the temporary broadcast 292)' and will come from The merged data of the requested range is passed back to the requesting application 222. Figure 4 shows a simplified flow chart of the merging process not according to the embodiment of Figure 2. The package application 250 detects 410 the occurrence of a termination event 288 indicating the need to begin the merge process (before updating the directory file 203). In particular, in the example of FIG. 4, the user closes the application 222, and the application 222 has issued at least one command to modify the target file 230 in the current session. When the wrapper application private 250 detects that the operating system of the device 220 closes the application 222, the wrapper application 250 instructs the 290 file system 224 to open the 294 empty temporary file 292 and copy 296 the content from the target file to the temporary file. Within 292. Particularly in the example of Figure 4, the data to be copied to the temporary 'archive 292' is the range of data to be accessed in the write call 236. The wrapper application 25 further commands the file system 224 to apply 298 the update information stored in the delta file 258 to the temporary file 292. In particular, in the example of FIG. 4, the delta file 25 8 contains updated information related to the write call 236. Once the update information stored in the delta file 258 has been applied 298 to the temporary file 292, the wrapper application 250 issues an order to close the 411 temporary file 292 and is used in the indicator of the portion of the target file 230. The address is changed to the address of the temporary file 292 and the temporary file 292 is used to replace the command of the portion of the 293 target building 230. The packaging application 25〇 then proceeds to the memory of the replacement part of the target 2 2 0 and the increment of the 127085.doc -34- 200839568 broadcast case 258. The space report is free space to abolish the 413 target file 230, the second file, and the incremental file 258 because it is no longer needed. If the separate application writes the human-to-incremental broadcast 258, the merge event is triggered to temporarily suspend the merge process before the write operation. If there is a new call to the target broadcast 23g after completing the port and smuggling, then 414 will be opened. Or '彳 automatically open the 414 new volume file immediately after the merge process.

曰代或除了應用程式222之關閉,被解譯為合併事件之 其他實例出現包括:⑴用以關閉目標檔案23〇之命令的發 出;(2)依賴於與複數個檔案命令有關之統計之條件的出 現’例如’當應用程式已在—小時之預定週期内平均每分 鐘對儲存裝置226上之資料存取—次且然後經過應用程式 不存取儲存裝置226之為平均存取時„隔三十倍的時間 ^隔(1分鐘的3G倍等錢分鐘)時,_自動地觸發合併過 私,(3)增1檔案258之大小對最大大小臨限值的超過(例 如二若増量檔案258中之所儲存更新資訊超過刚千位元組 的資訊),(4)作業系統之活動級至最小活動臨限值以下的 轉換(例b ’當記憶體及處理器在1〇秒週期内被小於5〇%佔 用時);或(5)自先前合併事件以來之最大時間臨限值的超 過(例如,包裝應用程式250可具有以下規則:盔論何 於任何播案自先前合併事件以來經過15分鐘週期時,則開 :新合併過程)。可觸發合併事件之另一出現為發出用以 喝取目標檔案230之命令(如圖3之描述中所解釋,為了讀 取經更新資料’有必要合併來自目標檔案23〇之資料與: 127085.doc •35- 200839568 量檔案258之更新資訊)。 圖5展示寫入過程之簡化流程圖。應用程式如發出對標 案系統224之寫入調用236。&amp;裝應用程式债測_寫入調 用236且檢查542以判定播案23〇(寫入命令被定向至播案 230)是否為待保護之檔案。特定地在圖化實例中,儲存 裝置w為受保護館存裝置。更特^言之,目標檔案23〇將 文保護’因為目標檔案23〇達到以下條件。目標檔案23〇健 存於裝置226上,裝置226為經受歸因於過早移除之突然不 I預測干擾的抽取式攜帶型儲存裝[因此,包裝應用程Other instances of the merged event that are interpreted as merge events, in addition to or in addition to the application 222, include: (1) the issuance of an order to close the target file 23; and (2) the condition of the statistics associated with the plurality of file commands. The occurrence of 'for example, when the application has accessed the data on the storage device 226 every minute for a predetermined period of hours, and then the average access is not accessed by the application without accessing the storage device 226. Ten times the time ^ interval (1 minute 3G times the money minute), _ automatically triggers the merged private, (3) increases the size of the file 258 to the maximum size threshold (for example, the second file 258 The information stored in the store exceeds the information of the kilobytes), (4) the conversion from the activity level of the operating system to the minimum activity threshold (example b' when the memory and processor are within 1 second period When less than 5〇% is occupied); or (5) the maximum time threshold has elapsed since the previous merge event (for example, the wrapper application 250 may have the following rule: the helmet is based on any broadcast since the previous merge event 15 In the minute period, it is opened: the new merge process. Another trigger that can trigger the merge event is to issue a command to grab the target file 230 (as explained in the description of Figure 3, in order to read the updated data) Combine the information from the target file with: 127085.doc • 35- 200839568 Update file 258 update information. Figure 5 shows a simplified flow chart of the write process. The application issues a write call to the target system 224. &amp; application load test _ write call 236 and check 542 to determine whether the broadcast case 23 (the write command is directed to the broadcast case 230) is the file to be protected. Specifically in the graphical example, the storage device w is the protected library device. More specifically, the target file 23〇 will protect the text 'because the target file 23〇 meets the following conditions. The target file 23〇 is stored on the device 226, and the device 226 is subject to the attribution. Early removal of the removable portable storage device that suddenly does not predict interference. [Therefore, packaging application

式250保護儲存裝置226中之餅亡、A 中之所“久不受㈣的使用者播 八更具體吕之’藉由預設來截取及重定向對儲存裝置 226之所有寫入命令,除非蘇 排除的應用程式(例如rMic p々之應用程式為被 招斗 Λ(例如Mlcroso⑽偏為被排除的應用 2式’因為偏具有内部檀案保護及傷份;Adobe 讀取ϋ亦為被排除的,因為AdGbe A⑽ba_取 ==何修改使用者檔案),或除非寫入命令可操作 二被::的檔案類型(例如’類型之臨時檔案為被 排除的’因為來自碑g聋挣安 W自^時樯案之資料損失很 =:222為被排除的應用程式或寫入命令被定向之 :=除的播案類型或寫入命令被定向之擋案不處於 1;用中時,則檔案系統以直接寫入跑播案。 件;之::取及重疋向檔案命令之條件可包括以下條 二一用二Γ檔案命令由所包括的應用程式發出(所 括的應用以為包括於檔案命令待由包裝應用程式250 127085.doc -36 - 200839568The formula 250 protects the cake in the storage device 226, and the user in the A is "not long-term (4) user broadcasts more specific" by default to intercept and redirect all write commands to the storage device 226 unless Ex-excluded applications (for example, rMic p々's application is forbidden (for example, Mlcroso (10) is excluded from the application type 2 because it has internal Tan file protection and injury; Adobe read ϋ is also excluded Because AdGbe A(10)ba_ fetch == how to modify the user profile), or unless the write command can be operated by two:: file type (eg 'type of temporary file for excluded' because it comes from the monument g聋 earning W ^ The data loss of the file is very == 222 is the excluded application or write command is directed: = the type of the broadcast or the write command is not directed at 1; in use, the file The system can be written to the file directly. The conditions for: and the file command can be included in the file. The second file can be issued by the included application (the application included is included in the file). Command to be wrapped by the application 250 127085.doc -36 - 200839568

截取之應用程式清單或M 早次群上的應用程式);檔案命令由不 為被排除的應用程式之廄扭立』a p 7田不 為屬於檔案命令將不被 的應用程式 式);檔案命令可摔作以式々早或群的應用程 冑作以衫響不為臨時檔案之檔案;檔 命令可操作以影變所白虹&amp; u a 系 a所包括的檔案類型(所包括的檔案類型 為具有包括於待保護之標 σ田茱犬員ι ^月早或群中之類型的檔 ρ 7可_作以影響不為被排除的檔案類型之檔 !(:二除的播案類型為具有在將不受保護之標案類型清 早或群中之類型的檔案及㈣命令可 於受保護儲存裝置中之播案。視上述條件中之-或;= 達到而疋,包裝應用程式將截取5〇1及重定向548寫入調 用,或包裝應用程式25〇將允許檔案系統直接寫入549至檔 案’如上文針對圖以之先前技術之檔案系統所描述。田 在圖5之實例中,檔案23〇為儲存裝置226(其為所包括的 儲存裝置)中之.txt檔案(其不為被排除的類型卜且應用程 式222為Micr〇s〇ft Visual Studi〇⑧(其不為被排除的應用程 式)因此,包裝應用程式截取501寫入調用236。包裝應 用程式250接著檢查5蝴於檔案23()之合併操作是否在: 行中。若合併操作是在進行中,則在完成合併操作之前暫 時中止546寫入命令過程。當合併操作完成時,重新開始 、丄暫叫·中止之寫入操作,且藉由將與寫入調用2%有關之 更新資訊儲存至增量檔案258來重定向548寫入命令之内 容。若合併操作不在進行中,則包裝應用程式250重定向 548寫入5周用236且將更新資訊儲存至增量檔案258。若在 127085.doc -37- 200839568 寫入至增量檔案258時觸發合併事件,則在完成寫入操 之前暫時中止合併事件。 總之,儘管已相當詳細地描述了各種實施例及其較佳型 式,但其他型式係可能的。因此,附加申請專利範圍之精 神及範’應不限於本文所含有之較佳型式的描述。 【圖式簡單說明】 圖1A為先前技術之檔案儲存系統的示意性說明; 圖1B為用於儲存及保護目標檔案之系統之第一實施例的 示意性說明; 圖2為用於儲存及保護目標檔案之系統之第二實施例的 示意性說明; 圖3為說明讀取命令之截取與重定向及讀取目標檔案之 仿真的流程圖; 圖4為說明將更新資訊應用於臨時檔案的流程圖;及 圖5為說明截取及重定向對目標檔案之寫入調用之過程 的流程圖。 【主要元件符號說明】 120a 資料處理裝置 120b 資料處理裝置 121a 處理器 121b 處理器 122a 應用程式 122b 應用程式 124a 檔案管理系統 127085.doc -38- 200839568Intercept the list of applications or the application on the M group; the file command is twisted by the application that is not excluded. ap 7 field is not an application that belongs to the file command); file command Can be used as an early or group application to make a file that is not a temporary file; the file command can be operated to change the file type included in the white rainbow &amp; ua system a (the file type included is The file ρ 7 having the type included in the target of the to-be-protected σ 茱 茱 ι ι ι ι 群 可 可 可 可 可 可 可 可 可 影响 ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( ( In the case of an unprotected type of type early or in the group of files and (4) orders can be broadcast in the protected storage device. Depending on the above conditions - or; = reach, the packaged application will intercept 5 〇1 and redirect 548 write calls, or wrapper application 25, will allow the file system to write 549 directly to the file' as described above for the file system of the prior art. Figure 3, in the example of Figure 5, the file 23〇 is the storage device 226 (which is packaged The .txt file in the storage device (which is not the excluded type and the application 222 is Micr〇s〇ft Visual Studi〇8 (which is not the excluded application). Therefore, the wrapper application intercepts 501 Write call 236. The wrapper application 250 then checks if the merge operation of file 23() is in the line. If the merge operation is in progress, the 546 write command process is temporarily aborted before the merge operation is completed. When the merge operation is completed, the write operation of restarting, suspending, and aborting is resumed, and the content of the 548 write command is redirected by storing the update information related to the write call 2% to the delta file 258. If the operation is not in progress, the wrapper application 250 redirects 548 to write 5 weeks with 236 and saves the update information to the delta file 258. If the 127085.doc -37-200839568 is written to the delta file 258, the merge event is triggered. Then, the merge event is temporarily suspended before the write operation is completed. In summary, although various embodiments and their preferred versions have been described in considerable detail, other types are possible. The spirit and scope of the scope should not be limited to the description of the preferred embodiments contained herein. [FIG. 1A is a schematic illustration of a prior art file storage system; FIG. 1B is for storing and protecting a target file. 2 is a schematic illustration of a second embodiment of a system for storing and protecting a target file; FIG. 3 is a diagram illustrating interception and redirection of a read command and reading of a target file Figure 4 is a flow chart illustrating the application of update information to a temporary file; and Figure 5 is a flow chart illustrating the process of intercepting and redirecting a write call to a target file. [Description of main component symbols] 120a Data processing device 120b data processing device 121a processor 121b processor 122a application program 122b application program 124a file management system 127085.doc -38- 200839568

124b 檔案管理系統 126a 攜帶型資料儲存裝置 126b 儲存裝置 130a 檔案 13 Oa-i 區段 130a-ii 區段 130a-iii 區段 130b 檔案 130b-i 部分 130b-ii 部分 130b-iii 部分 134a 讀取調用 134b 讀取調用 134c 第一讀取調用 134d 第二讀取調用 135a 讀取 135c 讀取 135d 讀取 136a 寫入調用 136b 寫入§周用 137a 發送 13 7b 發送 137c 發送 137d 發送 127085.doc -39- 200839568124b file management system 126a portable data storage device 126b storage device 130a file 13 Oa-i segment 130a-ii segment 130a-iii segment 130b file 130b-i portion 130b-ii portion 130b-iii portion 134a read call 134b Read call 134c First read call 134d Second read call 135a Read 135c Read 135d Read 136a Write call 136b Write § Week with 137a Send 13 7b Send 137c Send 137d Send 127085.doc -39- 200839568

139a 寫入 139b 寫入 139c 寫入 150 包裝應用程式 152b 指示 152c 指示 158 增量檔案 193 替換 220 資料處理裝置 221a 處理器 221b 處理器 222 應用程式 224 檔案管理系統 226 儲存裝置 230 目標檔案 236 寫入調用 239 寫入 250 包裝應用程式 252 指不 258 增量檔案 288 終止事件 290 指示/命令 292 臨時檔案 293 替換 127085.doc 200839568 294 建立/打開 296 複製 298 應用139a write 139b write 139c write 150 package application 152b indication 152c indication 158 incremental file 193 replacement 220 data processing device 221a processor 221b processor 222 application 224 file management system 226 storage device 230 target file 236 write call 239 Write 250 Package Application 252 Refers to 258 Incremental File 288 Termination Event 290 Instruction/Command 292 Temporary File 293 Replacement 127085.doc 200839568 294 Create/Open 296 Copy 298 Application

127085.doc -41 -127085.doc -41 -

Claims (1)

200839568 十、申請專利範圍: 一種用於儲存一目標檔案且保護該目標檔案免受資料損 壞之系統,其包含: a) 一處理,甘么- 其經組態以擷取及執行一包裝應用程式之 程式碼,該程式碼包括·· )用於截取由另一應用程式所發出之至少一檔案命 7的程式碼,該至少一檔案命令可操作以影響該 才下標案’且該包裝應用程式獨立於該另一應用 程式; )用於儲存與該至少—稽案命令有關之更新資訊的 程式碼;及 1U)用於根據該更新資訊來更新該目標檔案的程式 碼; )第C憶體空間,其用於儲存該目標檔案;及 )第一圯憶體空間,其用於儲存該更新資訊。 月求項1之系統,其中該第一記憶體空間駐存於一資 料處理裝置之一非揮葵性記憶體中。 3·如明求項2之系統,其中該第二記憶體空間駐存於選自 、下各項組成之清單的至少一記憶體中··該資料處理 裝置之該非揮發性記憶體、該資料處理裝置之一獨立非 揮:性記憶體,及該資料處理裝置之一揮發性記憶體。 •:哨求項1之系統,其中該第一記憶體空間駐存於一攜 帶型資料儲存裝置之一非揮發性記憶體中。 ' 如明求項4之系統,其中該第二記憶體空間駐存於選自 I27085.doc 200839568 由以下各項組成之清單的至 料儲存梦罟夕兮也&gt; °己U體中*該攜帶型資 兩仔衣置之該非揮發性記悟驹 次u上 午愔驊. Γ °己^體、一貧料處理裝置之一 口己U體’及該攜帶型資 6. 如請求項…统::置之一揮發性記憶體。 ,糸統’其中該更新資訊僅包括與該至少一 檔案^卩令有關之資料。 7. 如請求項丨之系統’其進一步包含:200839568 X. Patent Application Scope: A system for storing a target file and protecting the target file from data corruption, comprising: a) a process, which is configured to capture and execute a packaged application a code comprising: ·) for intercepting a code of at least one file 7 issued by another application, the at least one file command operable to affect the subscript "and the packaging application The program is independent of the other application; a program code for storing update information related to the at least one audit command; and 1U) a program code for updating the target file based on the update information; a space for storing the target file; and a first memory space for storing the update information. The system of claim 1, wherein the first memory space resides in a non-volatile memory of a data processing device. 3. The system of claim 2, wherein the second memory space resides in at least one memory selected from the list of the following components: the non-volatile memory of the data processing device, the data One of the processing devices is a non-volatile memory, and one of the data processing devices is a volatile memory. • The system of claim 1, wherein the first memory space resides in a non-volatile memory of a portable data storage device. The system of claim 4, wherein the second memory space resides in a material selected from the list consisting of I27085.doc 200839568 and is stored in the list of the following items: &nbsp; The non-volatile memory of the carrying type of two-piece clothing is 愔骅 愔骅 愔骅 Γ 己 己 己 ^ 、 、 、 、 、 、 、 体 体 体 体 体 体 体 体 体 体 体 体 体 体 体 体 体 体 U U U U U U U U U U : Set one of the volatile memories. , 糸 ’ ', the update information only includes information related to the at least one file. 7. If the system for requesting items' further includes: 二弟三記憶體空間’其用於儲存-臨時檔案,且 八中该包裝應用程式進一步包括: iv)用於將該目標檔案之至少一 芏 &gt; 邛刀稷製至該臨時檔案 内的程式碼; V)用於將該更新資訊應用於該臨時檔案的程式碼;及 vi)用於利用該臨時檔案來替換該目標檔案之該至少一 部分的程式碼。 8· -種採用一包裝程式來保護一目標檔案免受資料損壞之 方法,該方法包含: ^藉由戎包裝程式來截取由一應用程式所發出之至少一 祂案命令,該至少一檔案命令可操作以影響該目標檔 案,該截取步驟對於該應用程式為透通式的; b)儲存與該至少一檔案命令有關之更新資訊而不改變該 目標檔案;及 c)利用該更新資訊來更新該目標檔案。 9·如請求項8之方法,其中該至少一檔案命令包括可操作 以影響該目標檔案且由該應用程式在該儲存之一開始與 該更新之一結束之間所發出的每一寫入命令。 127085.doc 200839568 1 〇·如明求項8之方法,其中該更新步驟包括· 0將該目標檔案之至少一部分複製至一 Π)將該更新資訊應用於該臨時檔案;及、檔索内,· 之 ⑴)利用該臨時檔案之至少一部分來替換 該至少一部分。 、以目軚檔案 η•如請求項10之方法,其進一步包含: d)在該應❹驟之後刪除_含有該 案。 貝訊之增量指 12.如請求項8之方法’其中該更新步驟係在 下各項組成之群的至少一終止事件後即被執行:、自由以 〇 一用以關閉該目標檔案之命令的—發出. π)該應用程式的一關閉; 久, 110 一存取該目標檔案之應用程式的一關閉; IV) -依賴於一與複數個檔案命令有關 一出現; 1〈條件的 V) 二作業系統之活動級至__最小活_ 轉換; 4下的一 二::::*:令之,……時間臨 V11)自-先前合併事件以來之一最大時間臨限值的一超 過。 13 ·如請求項8 : 、’/、中該截取步驟及該儲存步驟視選 … ' 下各項組成之群的至少一條件而定··該應用程式 為硬數個所包括的應用程式中m應用程式不@ 127085.doc 200839568 於被排除的應用程式;該至少一檔案命令可操作以影 響一不同於一臨時檔案之檔案;該至少一檔案命令可操 作以影響一所包括的檔案類型;該至少一檔案命令可操 作以影響一不同於一被排除的檔案類型之檔案;及該至 少一檔案命令可操作以影響-儲存於-所包括的儲存裝 , 置中之檔案。 14· -種用於自—受保護目標播案讀取資料之系統,其包 # 4一處理器,其經組態以榻取及執行-包裝應用程式之 程式碼,該程式碼包括: Ο用於截取由-獨立於該包裝應用程式之應用程式所 Λ出之至 杈案命令的程式碼,該至少一檔案命 令可操作以存取該受保護目標檔案; ⑴用於讀取與該至少―檔案命令有關之更新資訊的程 式碼;及 • b) 一第一記憶體空間,其用於儲存該受保護目標構案; 及 c)第-記憶體空間’其用於儲存該更新資訊。 如請求項14之純,其中該包裝應用程式進-步包括: 於將來自該受保護目標檔案之資料與該更新資訊 5併至一臨時檔案内的程式碼。 采用-包裝程式來讀取一受保護目標檔案之方法, ^ 15 16 a)藉由該包裝程式來絲由m切發出之至少 127085.doc 200839568 檔案命令,該至少一檔案命令可操作以存取該受保護 目標檔案,該截取步驟對於該應用程式為透通式的; b)讀取儲存於一增量檔案中之與該至少一檔案命令有關 的更新資訊,該增量檔案可獨立於該受保護目標檔 ‘ 案;及 * c)合併來自該目標檔案之資料與該更新資訊; d)傳回該合併之一結果以作為對該至少一構案命令之一 回應。The second memory three memory space 'which is used to store the temporary file, and the eight-package application further includes: iv) a program for compressing at least one of the target files into the temporary file a code; V) a code for applying the update information to the temporary file; and vi) a code for replacing the at least a portion of the target file with the temporary file. 8. A method of protecting a target file from data corruption by using a wrapper program, the method comprising: intercepting, by the wrapper, at least one of the commands issued by an application, the at least one file command Operable to affect the target file, the intercepting step is transparent to the application; b) storing updated information related to the at least one file command without changing the target file; and c) updating the updated information The target file. 9. The method of claim 8, wherein the at least one file command includes each write command operable to affect the target file and issued by the application between one of the storage and the end of the update . 127085.doc 200839568 1 The method of claim 8, wherein the updating step comprises: 0 copying at least a portion of the target file to the temporary file; applying the updated information to the temporary file; and, within the file, (1)) replacing at least a portion of the temporary file with at least a portion of the temporary file. To view the file η• as in the method of claim 10, further comprising: d) deleting the _ containing the case after the response. The increment of Beixun refers to 12. The method of claim 8 wherein the update step is performed after at least one termination event of the group consisting of: a free command to close the target file - Issue. π) A close of the application; Long, 110 a close to the application accessing the target file; IV) - Dependent on a file associated with a plurality of file commands; 1 <conditional V) The activity level of the operating system to __minimum live_conversion; 4 under one two::::*: let it, ... time pro V11) one of the maximum time thresholds since the previous merge event. 13 · If the request item 8: , '/, the interception step and the storage step are selected... 'Depending on at least one condition of the group of components, the application is a hard number of included applications. The application is not @127085.doc 200839568 in the excluded application; the at least one file command is operable to affect a file different from a temporary file; the at least one file command is operable to affect an included file type; At least one file command is operative to affect a file that is different from an excluded file type; and the at least one file command is operative to affect - stored in the stored file. 14. A system for reading data from a protected target broadcast, the package #4 a processor configured to acquire and execute a packaged application code, the code comprising: For intercepting a code to a file command issued by an application independent of the package application, the at least one file command operable to access the protected target file; (1) for reading with the at least The code of the update information related to the file command; and • b) a first memory space for storing the protected object structure; and c) a first-memory space for storing the update information. If the request item 14 is pure, the package application further includes: a code for adding the information from the protected target file and the update information to a temporary file. A method of reading a protected target file using a wrapper program, ^ 15 16 a) at least 127085.doc 200839568 file command issued by m by the wrapper program, the at least one file command operable to access The protected target file, the intercepting step is transparent to the application; b) reading the update information stored in an incremental file related to the at least one file command, the incremental file may be independent of the The protected target file&apos; and *c) merge the information from the target file with the updated information; d) return a result of the merge as a response to one of the at least one configuration order. 127085.doc127085.doc
TW96145944A 2006-12-04 2007-12-03 Storage device and method to protect a target file TWI420391B (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US86836106P 2006-12-04 2006-12-04

Publications (2)

Publication Number Publication Date
TW200839568A true TW200839568A (en) 2008-10-01
TWI420391B TWI420391B (en) 2013-12-21

Family

ID=41372750

Family Applications (1)

Application Number Title Priority Date Filing Date
TW96145944A TWI420391B (en) 2006-12-04 2007-12-03 Storage device and method to protect a target file

Country Status (2)

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

Cited By (1)

* 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

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9460295B2 (en) 2011-10-12 2016-10-04 International Business Machines Corporation Deleting information to maintain security level
CN104679532B (en) * 2013-11-27 2018-12-11 腾讯科技(深圳)有限公司 kernel module loading method and device
CN110233851B (en) * 2019-06-21 2022-03-22 绿盟科技集团股份有限公司 Data transmission method and device
CN112596954A (en) * 2020-12-25 2021-04-02 深圳市科力锐科技有限公司 Data backup and reconstruction method, device, equipment and storage medium

Family Cites Families (9)

* 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
US6996586B2 (en) * 2003-06-18 2006-02-07 International Business Machines Corporation Method, system, and article for incremental virtual copy of a data block
US7743329B2 (en) * 2003-06-27 2010-06-22 Microsoft Corporation Incorporating interactive media into a playlist
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
US7401192B2 (en) * 2004-10-04 2008-07-15 International Business Machines Corporation Method of replicating a file using a base, delta, and reference file

Cited By (2)

* 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
US10083122B2 (en) 2011-01-27 2018-09-25 Micron Technology, Inc. Transactional memory

Also Published As

Publication number Publication date
TWI420391B (en) 2013-12-21
CN101589386B (en) 2013-03-27
CN101589386A (en) 2009-11-25

Similar Documents

Publication Publication Date Title
US8589341B2 (en) Incremental transparent file updating
US8074035B1 (en) System and method for using multivolume snapshots for online data backup
US9606875B2 (en) Migration of computer data
US8386428B2 (en) Method and system for fast generation of file system snapshot bitmap in virtual environment
US8005797B1 (en) File-level continuous data protection with access to previous versions
US8732121B1 (en) Method and system for backup to a hidden backup storage
US7953948B1 (en) System and method for data protection on a storage medium
US8296264B1 (en) Method and system for file-level continuous data protection
JP3641183B2 (en) Method and system for providing instantaneous backup in a RAID data storage system
US20030088752A1 (en) Computer system with virtual memory and paging mechanism
US7383466B2 (en) Method and system of previewing a volume revert operation
US20050149683A1 (en) Methods and systems for data backups
PT921467E (en) COMPUTER SAFEGUARD SYSTEM THAT CAN OPERATE WITH OPEN FILES
US20060242381A1 (en) Systems, methods, and computer readable media for computer data protection
TW200839568A (en) Incremental transparent file updating
US20040186971A1 (en) Apparatus and method for protecting data recorded on a storage medium
JP2007141231A (en) Method, system and computer program for data backup
US20050149548A1 (en) One-way data mirror using copy-on-write
US20050149554A1 (en) One-way data mirror using write logging
US10712952B1 (en) Metadata caches in a reliable distributed computing system
KR102145358B1 (en) Method and computer-readable medium emboding program for protecting data integrity of disk in alternate operating system environment
CA2454107C (en) Apparatus and method for protecting data recorded on a storage medium
US10977208B2 (en) Setup file system without editing kernel code
Kim et al. Barrier enabled QEMU
TWI460584B (en) Server, host and method for reading base image through storage area network

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees