WO2000067119A9 - Methods and apparatuses for file synchronization and updating using a signature list - Google Patents

Methods and apparatuses for file synchronization and updating using a signature list

Info

Publication number
WO2000067119A9
WO2000067119A9 PCT/US2000/012048 US0012048W WO0067119A9 WO 2000067119 A9 WO2000067119 A9 WO 2000067119A9 US 0012048 W US0012048 W US 0012048W WO 0067119 A9 WO0067119 A9 WO 0067119A9
Authority
WO
WIPO (PCT)
Prior art keywords
file
segment
computer
subscription file
current version
Prior art date
Application number
PCT/US2000/012048
Other languages
French (fr)
Other versions
WO2000067119A3 (en
WO2000067119A2 (en
Inventor
Peter Dickinson
Original Assignee
Symantec Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=23174433&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=WO2000067119(A9) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Symantec Corp filed Critical Symantec Corp
Publication of WO2000067119A2 publication Critical patent/WO2000067119A2/en
Publication of WO2000067119A3 publication Critical patent/WO2000067119A3/en
Publication of WO2000067119A9 publication Critical patent/WO2000067119A9/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • G06F8/658Incremental updates; Differential updates
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99953Recoverability

Definitions

  • the present invention relates to the field of personal computers which access files on network drives and which utilize electronic mail systems.
  • the present invention involves the synchronization of the local copies of files on user's client computer hard disk to the current versions of the files on a network drive.
  • push is the process of automatically delivering user-requested information electronically. It is not an application, but merely a function or feature in a product. There are clear distinctions between the three different categories of push-based application: content, software, and document.
  • ESL Software Distribution
  • software push as a way of addressing the need to seamlessly deliver software updates across the network with the goal of directly impacting the total cost of ownership.
  • the requirements for software distribution are dramatically different from content distribution.
  • the "content” in software delivery is, by its very nature, deemed critical.
  • Companies that do not use some form of software push technologies require dedicated individuals to make the rounds updating software by remstalling or applying patches for each personal computer and laptop.
  • the Next Phase is Electronic Document Delivery.
  • the final frontier in digital push is "electronic document delivery'Or EDD. It deals with dehvering changes or "updates" to the same physical files (like software push), but the files themselves are highly personalized (like content push). Different from content push, these files exist in the form of sales presentations (PowerPoint), spreadsheets (Excel and Lotus 1,2,3), and reports and plans (Word or WordPerfect). These are the types of documents for which companies currently invest millions of dollars in file servers and intranet technologies in order to share among respective workgroups.
  • the important distinction here between content and document push is the fact that EDD delivers data that currently exists in its native format within corporations and whose value is clearly understood by the company, MIS, and the end-user.
  • An object of the present invention is to provide a mechanism by which a user can be automatically provided with a current version of a file to which he subscribes.
  • Another object of the present invention is to communicate the current version of the file in an efficient manner.
  • a server computer monitors network files and folders stored on the network for changes and then sends the user email notifications and updates when monitored items change.
  • a server computer generates an update file for transmission to a client computer that permits the client computer to generate a copy of a current version of a subscription file from a copy of an earlier version of the subscription file.
  • the server computer periodically reads the subscription file from the network drive and divides the subscription file into variable-length segments based upon a segment delimiter.
  • the server computer computes a signature for each segment and stores the segment signature along with the beginning position and length of each segment in a current version of the signature list.
  • the server computer also maintains the earlier version of the signature list.
  • the server computer For each segment of the current version of the subscription file, the server computer searches an earlier version of a signature list for an old segment signature which matches a new segment signature corresponding to the segment. When a match is detected, the server computer writes a command in the update file for the client computer to copy an old segment of the client computer's copy of the earlier version of the subscription file into the client computer's copy of the current version of the subscription file, where the old segment corresponds to the segment for which a match was detected.
  • the command need only specify the location within the earlier version of the file where the old segment is stored, rather than the actual data that is stored at this position. This information is found in the signature list in the beginning location and size fields.
  • the beginning location field is preferably expressed as a number of bytes from the beginning of the file.
  • the correct old segment can be copied into the client computer's copy of the current version of the subscription file.
  • the size of the copy command is negligible in comparison to the size of the segment to which it pertains. This savings reduces the size of the update file, and thus reduces the connection time in communicating the update file to the client computer.
  • the server computer When no match is detected in the earlier version of the signature list, the server computer writes a command into the update file for the client computer to insert a new segment of the current version of the subscription file into the chent computer's copy of the current version of the subscription file, where the new segment of the current version of the subscription file is written into the update file. Because the new segment of the current version of the subscription file contains the actual data of the new segment, the new segment of the current version of the subscription file may be compressed to reduce the size, encrypted for security, or both, by the server computer before being written into the update file.
  • the server computer transmits the update file to the chent computer as an executable attachment via electronic mail.
  • the update file is only generated when the server computer determines that the subscription file has changed.
  • the server computer periodically monitors the subscription file to determine if it has been altered before generating an update file.
  • the user determines the periodicity of the checks to determine if the file has been altered, and if so, to generate the update file and send it as an electronic mail.
  • Figure 1 illustrates a general purpose computer architecture suitable for implementing the methods according to the present invention.
  • Figure 2 illustrates a network of computers suitable for implementing the methods according to the present invention.
  • Figure 3 illustrates an earlier version of a subscription file broken into six segments and the signatures corresponding to the six segments suitable for use with the methods according to the present invention.
  • Figure 4 illustrates an earlier version of a signature list according to the present invention corresponding to the earlier version of the subscription file shown in Figure 3.
  • Figure 5 is a flow chart illustrating a method according to the present invention of building a signature list corresponding to a subscription file.
  • Figure 6 illustrates a current version of the subscription file shown in Figure 3 broken into seven segments and the signatures corresponding to the seven segments suitable for use with the methods according to the present invention.
  • Figure 7 illustrates a current version of a signature list according to the present invention corresponding to the current version of the subscription file shown in Figure 6.
  • Figure 8 illustrates the correspondence of the current version of the subscription file to the earlier version of the subscription file and the segments which are communicated to the client computer from the server computer in an update file according to the present invention.
  • Figure 9 illustrates the creation of a current copy on the client computer of the current subscription file from a copy of the earlier version of the subscription file on the client computer using the update file.
  • Figure 10 is a flow chart illustrating a method according to the present invention of generating an update file from the current version of the subscription file and the current and earlier versions of the signature list.
  • FIG 11 illustrates an update file generated by the method according to the present invention illustrated in Figure 10 applied to the earlier and current versions of the signature list illustrated in Figures 4 and 7, respectively.
  • Figure 12 illustrates a large and diverse network of computers suitable for implementing the methods according to the present invention.
  • Symantec Mobile UpdateTM (Symantec Mobile Update is a trademark of Symantec Corporation and its subsidiaries) according to the present invention, through a combination of server-based "delta technology" and client-based “update agent technology", adds "intelligence" to document delivery by automatically offering a seamless way of receiving changes to corporate documents.
  • the next section discusses the technology used by Mobile Update according to the present invention to bring "intelligence" to document delivery.
  • Mobile Update according to the present invention is designed primarily to serve the mobile professional as the target user, who relies on copies of the most up-to-date documents to be effective, but who is not always connected to the network to access changes.
  • the Mobile Update solution is comprised of a server portion (for tracking files on the network and processing changes) and a client portion (for managing document "subscriptions" and for incorporating changes into existing documents).
  • the Mobile Update Client portion is used to create and manage subscriptions to network documents.
  • the process of selecting files to be monitored is referred to as "subscribing”. Users browse to the network directory where the desired files are stored and select either individual files or folders (excluding sub-folders).
  • the user determines the polling or monitoring interval for the server to check for changes and also what to do when changes occur, i.e., package and send file changes or simple notification.
  • the information is passed to the server and stored in its database.
  • the Mobile Update Server acts as an "electronic assistant" on the network, tracking documents for changes. It polls files or subfolders at either user-defined intervals for any changes to date, time stamps. When it detects a change, it checks the integrity of the file, then decides whether it needs to deliver the actual changes or simply notify send notice of a file change.
  • Figure 1 illustrates a general purpose computer system 100 suitable for implementing the methods according to the present invention.
  • the general purpose computer system 100 includes at least a microprocessor 104.
  • the general purpose computer may also include random access memory 102, ROM memory 103, a keyboard 107, and a modem 108.
  • All of the elements of the general purpose computer 100 are optionally tied together by a common bus 101 for transporting data between the various elements.
  • the bus 101 typically includes data, address, and control signals.
  • the general purpose computer 100 illustrated in Figure 1 includes a single data bus 101 which ties together all of the elements of the general purpose computer 100, there is no requirement that there be a single communication bus 101 which connects the various elements of the general purpose computer 100.
  • the microprocessor 104, RAM 102, and ROM 103 are alternatively tied together with a data bus while the hard disk 105, modem 108, keyboard 107, display monitor 106, and network interface 109 are connected together with a second data bus (not shown).
  • the first data bus 101 and the second data bus are linked by a bidirectional bus interface (not shown).
  • some of the elements, such as the microprocessor 102 and RAM 102 are connected to both the first data bus 101 and the second data bus (not shown), and communication between the first and second data bus occurs through the microprocessor 102 and RAM 102.
  • the network interface 109 provides communication capability to a local area network LAN using an ethernet connection, for example.
  • the modem 108 allows the computer 100 to communicate through the telephone system.
  • the methods of the present invention are executable on any general purpose computer system such as the 100 illustrated in Figure 1, but there is clearly no limitation that this computer system is the only one which can execute the methods of the present invention.
  • FIG. 2 illustrates a network of computers suitable for implementing the methods according to the present invention.
  • a client computer 201 is connected to a network drive 202 through link 205.
  • a server computer 203 is connected to a network drive 202 through a link 206.
  • the client computer 201 and server computer 203 are logically connected by a link 207 for communication between them.
  • the server computer 203 is logically connected to an electronic mail facihty 204 through link 209.
  • Chent computer 201 is logically connected to the electronic mail facihty 204 through link 208.
  • the logical connections 207, 208, and 209 are not necessarily physical connections.
  • the chent computer 201 is alternatively a remote computer which periodically connects to the network drive 202 through a modem. In this event, the modem (not shown) provides the physical connection through which the logical connections 205, 207, and 208 are implemented.
  • Figure 2 illustrates the interaction between client, server, and network according to the present invention.
  • the user browses the network through link
  • the chent computer 201 sends the subscription information to the server computer 203 through logical link 207.
  • the server computer 203 polls the network 202 through link 206 for changes to the subscription files.
  • the server sends update files to the chent computer 201 through the email facility 204 through logical link 209.
  • the chent computer receives update files through the logical link 208.
  • Symantec's Delta Technology has been optimized to detect and process changes quickly and efficiently, while concurrently mamtainrng the integrity of the file.
  • the server takes a "digital snapshot” that forms the basis for determining changes made to the file in the future.
  • the server reads the file from the network and determines the most efficient "delimiter” or "dividing point” to break the file into segments as shown in Figure 3.
  • a digital 'snapshot' is comprised of a series of segments which define the overall contents and structure of a file.
  • a file can be segmented into hundreds, if not thousands, of segments depending on the file size and type.
  • Figure 3 illustrates an earher version of a subscription file broken into six segments and the signatures corresponding to the six segments suitable for use with the methods according to the present invention.
  • Segments Al through A6 represent variable length portions of the earher version of the subscription file.
  • the ends of each of the segments (Al through A6) are determined by segment delimiters 301 through 306.
  • the segment delimiters 301 through 306 are specific portions of data, perhaps bytes, that are statistically determined to be an optimal, or at least acceptable, division point for the variable length segments Al through A6 for the earher version of the subscription file.
  • Signatures 311 through 316 are fixed length values derived from the variable length segments
  • the signatures 311 through 316 may be determined by any one of a variety of hashing methods or signature algorithms.
  • the signatures Al through A6 are computed using the cyclic redundancy check (CRC).
  • CRC cyclic redundancy check
  • any signature algorithms may be used according to the present invention.
  • MD5 can be used to derive a fixed length digital signature from the variable length segments.
  • Figure 4 illustrates an earher version of a signature list according to the present invention corresponding to the earher version of the subscription file shown in Figure 3.
  • the signature list 400 shown in Figure 4 further includes the starting locations 401 through 406 of each of the segments Al through A6 shown in Figure 3.
  • the starting locations 401 through 406 are preferably represented as byte address locations relative to the beginning of the earher version of the subscription file.
  • an offset representing the location of the beginning of the earher version of the subscription list is combined with each of the segment location values 401 through 406 to determine the address of the begirning of each of the segments within the address space within which the segments Al through A6 are stored.
  • the signature list 400 also includes a segment size field which stores the size of each of the variable length segments Al through A6 as a number of bytes within the variable length segment to which it corresponds.
  • the segment location and segment size allow the addresses of all of the data within the segment to be computed.
  • the information necessary to compute the addresses of the pieces of data within each segment could be represented in some alternative manner. For example, instead of attaching the segment size within the signature hst, the ending location of each segment could alternatively be stored according to the present invention.
  • FIG. 5 is a flowchart illustrating a method according to the present invention of building a signature hst corresponding to a subscription file.
  • the method starts at step 501.
  • the subscription file is read from the network drive 202. If the subscription file read from the network drive is a new subscription file, test 503 delivers the method to step 504 where the most efficient segment delimiter is determined for that new subscription file.
  • the byte value which represents the segment delimiters 301 through 306 shown in Figure 3 are computed at step 504 the first time that the subscription file is read.
  • step 503 delivers the message to step 505, where the delimiter corresponding to the subscription file is retrieved from a table (not shown) which stores the values of the segment delimiters which correspond to each of the subscription files that the server computer 203 monitors.
  • the method scans the file from the beginning for the delimiter in order to determine the first variable length segment corresponding to that subscription file. If the end of the file is reached before the delimiter is found, then step 506 marks that as a segment, and that will be the last segment corresponding to the subscription file.
  • the segment delimiter 306, which pertains to the last segment A6, is the last byte in the file, and is not necessarily the same value as the other segment delimiters 301 through 305.
  • the signature for the variable length segment is computed.
  • the signature is added to the signature list along with the beginning location and segment size corresponding to the segment.
  • Test 509 determines whether or not the segment ends with the delimiter. If the segment ends with the delimiter, then it is not the last segment in the subscription file, and therefore the test 509 returns the message to step 506 so that the next variable length segment can be determined. If the segment does not end with the delimiter, then it is assumed that it is the end of the file, and the method 500 is completed.
  • the signature list corresponding to the subscription file has been computed and stored.
  • a second "snapshot" is generated using the same process as the first snapshot as shown in Figure 7.
  • the new or changed segments are accompanied by unchanged segments, depending on the number and severity of the changes made to the file.
  • the Delta Engine according to the present invention then compares the two sets of segments to determine which segments have been altered, which ones are new and which ones have remained unchanged, as illustrated in Figure 8.
  • Figure 6 illustrates a current version of the subscription file shown in Figure 3 broken into seven segments and the signatures corresponding to the seven segments suitable for use with the methods according to the present invention.
  • Segment delimiters 601 through 607 represent byte codes which were determined for this subscription file to indicate the end of each of the segments Bl through B7.
  • Signatures 611 through 617 represent fixed length signatures computed from each of the seven segments Bl through B7.
  • Figure 7 illustrates a current version of a signature list according to the present invention corresponding to the current version of the subscription file shown in Figure 6.
  • the signature list 700 includes the segment signatures 701 through 707 corresponding to the variable length segments Bl through B7 shown in Figure 6 and the corresponding segment locations 721 through 727 representing the beginning position of each of the segments Bl through B7 as well as the segment sizes 711 through 717 corresponding to each of the segments Bl through B7.
  • the engine according to the present invention extracts new or changed segments and bundles these into a file, called an Update File. This file is then optionally compressed to reduce its size even further.
  • an Update File contains just the changes made to a file, in a compressed state, as shown in Figure 8.
  • Figure 8 illustrates the correspondence of the current version of the subscription file to the earher version of the subscription file and the segments which are communicated to the chent computer from the server computer in an update file according to the present invention.
  • the earher version of the subscription file shown in Figure 3 and the current version of the subscription file shown in Figure 6 pertain to the same file name. They are different versions of the same file.
  • Figure 8 shows the current version of the subscription file.
  • Figure 8 is annotated to show which segments within the current version of the subscription file are the same or identical to a segment within the earher version of the subscription file.
  • each of the segments Bl, B3, B6, and B7 are the same as a corresponding segment within the earher version of the subscription file shown as segments Al through A6 in Figure 3.
  • segments B2, B4, and B5 are each different from any of the segments Al through A6 shown in Figure 3.
  • the new or changed segments B2, B4 and B5 are extracted from the current version of the subscription file stored on the network drive 202 by the server computer 203, and are packaged in an update file 801 for transmission to the chent computer 201 shown in Figure 2 so that the chent computer 201 can build a copy of the current version of the subscription file from its copy of the earlier version of the subscription file.
  • Figure 9 illustrates the creation of a current copy on the chent computer of the current subscription file from a copy of the earher version of the subscription file on the chent computer using the update file 801 shown in Figure
  • Figure 9 shows the copy of the earher version of the subscription file 901 as well as the data contents of the update file 902 as it corresponds to the chent computer's copy of the current version of the subscription file 903.
  • Figure 9 shows arrows 910 through 913 which indicate segments which the chent computer 201 can copy from its earher version of the subscription file into the current version of the subscription file.
  • segment Al is illustrated by arrow 910 as being copied into segment CI of the copy of the current version.
  • segment A3 may be copied into segment C3
  • segment A5 may be copied into segment C6
  • segment A6 may be copied into segment C7.
  • Arrows 920 through 922 show segments which are inserted from the update file
  • segment B2 is inserted from the update file 902 into the copy of the current version of the subscription file at segment C2.
  • Segment B4 is inserted from the update file 902 into the copy of the current version 903 at segment C4.
  • Segment B5 is inserted from the update file 902 into the copy of the current version 903 at segment C5.
  • Dotted rectangle 950 illustrates data that is resident on the chent computer 201.
  • Update file 902 is communicated to the chent computer 201 through an electronic mail facihty 204.
  • the update file 902 must be transmitted to the chent computer 201 through whatever communication link the chent computer 201 uses to access its electronic mail 204.
  • This link 208 shown in Figure 2 may be a modem, an ethernet connection, or some other communication device.
  • the present invention maximizes the information already stored on the chent computer 201 and minimizes the information needed to be transmitted to the chent computer 201 in order to create the copy of the current version of the subscription file. Specifically because segments Al, A3, A5, and A6 are identical to corresponding segments in the current version of the subscription file, they need not be transmitted to the chent computer 201 through the electronic mail facihty
  • Figure 10 is a flowchart illustrating a method according to the present invention of generating an update file from the current version of the subscription field and the current and earher versions of the signature list.
  • the method starts at step 1001.
  • the method compares the new segment signature to an old segment signature.
  • the new segment refers to segments within the current version of the subscription file;
  • the old segment signature refers to segment signatures within the earher version of the subscription file.
  • Step 1002 begins with the first new segment signature in the current version of the subscription file. For example, step 1002 begins with the segment signature 701 pertaining to segment Bl . Step 1002 compares the new segment signature to the old segment signature. Step 1002 begins with the first old segment signature, for example the segment signature 311 corresponding to segment Al shown in Figure 4.
  • step 1002 determines that there is a match between the new segment signature and the old segment signature
  • the method 1000 writes a command in the update file to copy the old segment into the chent computer' s copy of the current version of the subscription file at step 1003.
  • step 1007 determines if the last new segment signature in the new signature list has been processed and if so, the method is done at step 1009. For example, when the method gets to the new segment signature 707 corresponding to segment B7, step 1007 will indicate that the method is done. However, if there are more new segment signatures to be processed, step 1007 delivers the message to step 1008 which retrieves the next new segment signature, and then returns the method to step 1002.
  • step 1002 dehvers the method to step 1004, where it is determined whether or not the last old segment signature in the old signature list has been compared to the new segment signature. If test 1004 determines that there are no more old segment signatures in the old signature hst, for example the segment signature 316 corresponding to segment A6 shown in Figure 4, then test 1004 delivers the method to step 1006 where the server computer writes a command in the update file to insert the new segment into the chent computer's copy of the current version of the subscription file. In other words, if step 1006 is reached, then there were no matches for the new segment signature in the old segment signature list. Then the method reverts to test 1007.
  • FIG 11 shows the update file which is communicated to the chent computer 202 via electronic mail. Although the preferred embodiment of the present invention involves electronic mail transmission of the update file to the chent computer 201, there is no requirement that an electronic mail facihty be used.
  • Figure 11 illustrates an update file generated by the method according to the present invention illustrated in Figure 10 apphed to the earher and current versions of the signature hst illustrated in Figures 4 and 7, respectively.
  • the update file 1100 shown in Figure 11 is preferable an executable attachment to an electronic mail that is received by the client computer 201.
  • the command 1101 implements the copy of segment Al into segment CI illustrated by the arrow 910 shown in Figure 9.
  • the insert command 1102 implements the insertion of the segment B2 into segment C2 by arrow 920 shown in Figure 9.
  • the copy command 1103 implements the copying of segment A3 into segment C3 shown by arrow 911 in Figure 9.
  • the command 1104 implements the copying of segment B4 into segment C4 illustrated by arrow 921 shown in Figure 9.
  • the command 1105 implements the copying of segment B5 into segment C5 illustrated by the arrow 922 shown in Figure 9.
  • the command 1106 implements the copying of the segment A5 into segment C6 illustrated by arrow 912 shown in Figure 9.
  • the copy command 1107 implements the copying of segment A6 into segment C7 illustrated by arrow 913 in Figure 9.
  • Each of the copy commands 1101, 1103, 1106, and 1107 must specify for the chent computer 201 where the segments to which they pertain are actually stored on the chent computer. Because the chent computer does not store the signature hsts or have any knowledge of the fact that the subscription files are broken into segments by the server computer, the update file must include address information necessary to effectuate the copying of the correct bytes into the copy of the current version of the subscription file.
  • each segment is included as arguments to each of the copy commands so that the chent computer can compute the address of the correct bytes.
  • the chent computer stores the copies of the subscription files as standard files within its operating system and only knows the beginning location and size of the entire file.
  • the location and size information included in each copy command by the server computer 203 is combined with the file offset value at the chent computer in order for the chent computer to calculate the range of addresses to be copied.
  • the server computer 203 has no way of knowing where exactly on the chent computer's hard disk that the chent computer stored the earher version of the subscription file.
  • the insert commands 1102, 1104, and 1105 include the actual contents of the segments B2, B4, and B5, respectively.
  • the segment size is variable, the inclusion of the actual contents of the new or changed segments B2, B4, and B5 represent the vast bulk of the update file 1100.
  • the copy commands 1101, 1103, 1106, and 1107 are negligible in size in comparison to the contents of the actual new or changed segments which must be transmitted.
  • the update file 902 and in Figure 8, the update file 801 are illustrated solely by the contents of the segments B2, B4, and B5 and omit illustrating the actual copy and insert commands because they are neghgible in size to the actual content of the transmitted segments.
  • the segments are transmitted via electronic mail, they may be further compressed to reduce their size and thereby minimize connection time in receiving the electronic mail.
  • the update file 902 is optionally encrypted for security purposes according to the present invention.
  • the server creates an email message and sends the Update File as a simple binary attachment to the user.
  • the user receives updates through the user's standard email chent. For mobile professionals, this means making one connection to the network to receive all messages and document updates. It also means that the size of the attachment is a fraction of the full file, containing only the changes to be apphed. In other words, the user performs the standard task of checking email — i.e. a task that is familiar, secure, and, for the most part, reliable.
  • the user simply launches or opens the attachment (again, in a way they are most familiar with) and the Mobile Update
  • Agent processes the changes automatically. It does this by substituting the new and modified segments in the Update File with the segments in the existing file, as illustrated in Figure 9.
  • segment B2 is a replacement segment for A2 in the current file. A2 is removed and B2 takes its place.
  • Segment B4 is a brand new segment that fits in after A3, and the files to the right of it (i.e., A4, A5, and A6) are moved over by one segment.
  • segment B5 replaces A4 as it is the modified segment for A4.
  • the Mobile Update Server preferably runs as a service under Windows NT 4.0 (Workstation or Server) and can run across virtually any network operating system that supports Windows NT. However, it should be noted that the server according to the present is alternatively implemented so as to run under any operating system.
  • the server according to the present invention requires its own mail chent (account) that is capable of sending and receiving email messages through the corporate mail server.
  • the server uses the mail chent to receive and process email-based subscription changes and requests automatically generated by clients when they are in off-hne mode (i.e. , not connected to the network). It also uses the mail chent to create and send notification and update requests to its users. In addition, the server requires a network account with access rights that encompass those of its users, i.e. it should at least share the same profile as its users. This allows the server to access network files on the user's behalf to check for changes.
  • the adrrrinistrator When installing the server, the adrrrinistrator specifies where chent install files should be located on the network for easy install access by users. Once the server is set up, the user installs the client from the network drive. Each chent is registered with the server and writes its user name, email address, etc. , to the server's database. The chent can now subscribe to any network-based files located on a shared directory.
  • Figure 12 illustrates a large and diverse network of computers suitable for implementing the methods according to the present invention.
  • the server computer 1201 accesses subscription files stored on any of the file servers
  • the personal computers 1210 through 1212 are connected to local area network 1216.
  • Remote personal computers 1213 through 1215 dial in to modems 1218 through 1220 respectively in order to receive their electronic maU from the electronic maU facihty 1221 and receive update files corresponding to the subscription files to which they subscribe.
  • Figure 12 iUustrates a sample deployment for MobUe Update according to the present invention.
  • the chents runs in both on-line mode and off-line mode.
  • the chent runs in on-line mode when it is on the network where it can communicate directly with the server's database.
  • the chent runs in off-line mode when the user is mobile and not connected to the network.
  • the user communicates with the server through email messaging. If changes are made to the properties of a subscription, such as a change in polling frequency or a re- sync request is made, the Mobile Update chent automatically generates an email message to the server which is then placed in the outbox of the user's mail client. These messages are then sent when the user logs on to check or send e-mail. The messages are then received by the server's mail chent and parsed and processed accordingly.
  • the Mobile Update Server according to the present invention can access virtually any WAN-based server, providing it has the necessary network access rights, as illustrated in Figure 12.
  • Symantec Mobile Update is the first solution in the document delivery or "push" category in which currently existing data like reports, spreadsheets, presentations, etc., are dehvered to the desk-top 'intelligently'. It does this by watching the network files of folders for changes, dehvering "just the changes” or notifies of changes, uses one famihar and reliable connection to deliver those changes (email), and provides seamless functionality, thereby leveraging the way users currently work (in email).
  • Document push like software push, is only compelling if it can deliver clear value to end-users and corporate IS.
  • Mobile Update according to the present invention offers two tiers of benefits to corporations. For the mobile user, it receives updates anywhere, anytime (location-independent), it stays up-to-date on changes to key documents, it reduces download time for email attachments, and it reduces the hassle of accessing changes to key documents.

Abstract

A server computer generates an update file for transmission to a client computer that permits the client computer to generate a copy of a current version of a subscription file from a copy of an earlier version of the subscription file. For each segment of the current version of the subscription file, the server computer searches an earlier version of a signature list for an old segment signature which matches a new segment signature corresponding to the segment. When a match is detected, the server computer writes a command in the update file for the client computer to copy an old segment of the client's computer's copy of the earlier version of the subscriptionfile into the client computer's copy of the current version of the subscription file, where the old segment corresponds to the segment for which a match was detected.

Description

METHODS AND APPARATUSES FOR FILE
SYNCHRONIZATION AND UPDATING
USING A SIGNATURE LIST
CROSS-REFERENCE TO RELATED APPLICATION
This Application is related to the following Application, which is filed of even date herewith, and is incorporated herein by reference:
"Methods and Apparatuses for Single Connection File Synchronization and Workgroup File Update", Attorney Docket No. SYMA-1041 MCF/SES.
BACKGROUND OF THE INVENTION
1. Field of the Invention
The present invention relates to the field of personal computers which access files on network drives and which utilize electronic mail systems.
Specifically, the present invention involves the synchronization of the local copies of files on user's client computer hard disk to the current versions of the files on a network drive.
2. Discussion of the Related Art
As more and more business information moves from analog to digital formats, the relatively newfound ability to create, amend, and revise information spontaneously and frequently has brought with it challenges for corporate users. Revenue results can now be easily aggregated and updated in near real time, sales presentations can be amended regularly, and changes made to business documents. However, causing these changes to effectively trickle down through the organization without causing a digital flood is a challenge.
Companies have responded to the threat by carefully creating structures for organizing, storing, and sharing these electronic files. Organizations have moved from file servers to intranet sites to combinations of both to meet the need of the corporate user. While these structures are clearly effective means of storing, sharing, and organizing information, they do not address the fact that users have very individual information needs. They also do not resolve the obstacle users face who do not have the time to spend looking for changes. An effective paradigm for addressing the problem of individual needs and delivering changes to documents can be found in the emerging category of "Push Technology. "
As its simplest definition, push is the process of automatically delivering user-requested information electronically. It is not an application, but merely a function or feature in a product. There are clear distinctions between the three different categories of push-based application: content, software, and document.
Content push is the first mover. Conventional products focus on delivering breaking news and information to user desktops automatically. Instead of the user constantly surfing multiple Web sites for stock quotes, news, weather, etc. , conventional products aggregate and broadcast information automatically according to individual user preferences. Many companies incorporate "push" functionality into their products.
Following acceptance by hundreds of thousands of early adopters, many push-based applications started the move into the corporate world. For IS
Managers, "push-based technologies" were seen as an uncontrollable avenue for terabytes of graphics and HTML to come through the corporate firewall and network, filling local hard drives.
Microsoft and Netscape entered the fray with their own "push" clients femdash; IE 4.0 Active Desktop and Communicator's Netcaster, respectively.
Rather than spurring the growth of content delivery, however, the effect of the push entries has been to call into question the value of delivering Web content to user hard drives. The value is questioned not only in terms of relevance, but also its effects and load on corporate networks. The automated information flow becomes a flood through the Internet gate-ways of corporations threatening the stability and reliability of the network infrastructure itself.
Within the corporate world, the future of content push remains in limbo. Uncertainty over standards and overall value have caused the market to trip on the initial momentum and slow to a crawl. However, what is questioned here is not the value of automating delivery or "push," but rather the value of what is being pushed.
Software Push is another important objective. Microsoft and Marimba, among others, have recognized the importance and potential of "Electronic
Software Distribution" (ESL) or "software push" as a way of addressing the need to seamlessly deliver software updates across the network with the goal of directly impacting the total cost of ownership. The requirements for software distribution are dramatically different from content distribution. For one, the "content" in software delivery is, by its very nature, deemed critical. To reduce the impact of supporting multiple versions of products across the corporate network, near-simultaneous deployment is imperative. Companies that do not use some form of software push technologies require dedicated individuals to make the rounds updating software by remstalling or applying patches for each personal computer and laptop.
Rather than aggregating and displaying information, software push transparently delivers one specific piece of information and applies it to user systems or applications. Files tend to be very large and the delivery of these files must be well-managed. Incremental downloading becomes important to reduce frustration and bandwidth associated with broken and lost connections.
Management of software updating also needs to be centralized and MIS -controlled. In addition, the primary value of the application is to IS personnel and only indirectly to for the end-users. A good example of software push is Marimba's Castanet, which allows Java applications to be distributed and updated seamlessly and automatically without user intervention. This same approach to Java programming can be, and is being, applied to C-language programs as well. The case of content push vs. software push makes it clear that the importance lies in the distinction between the data being delivered — and not the delivery mechanism itself.
The Next Phase is Electronic Document Delivery. The final frontier in digital push is "electronic document delivery'Or EDD. It deals with dehvering changes or "updates" to the same physical files (like software push), but the files themselves are highly personalized (like content push). Different from content push, these files exist in the form of sales presentations (PowerPoint), spreadsheets (Excel and Lotus 1,2,3), and reports and plans (Word or WordPerfect). These are the types of documents for which companies currently invest millions of dollars in file servers and intranet technologies in order to share among respective workgroups. The important distinction here between content and document push is the fact that EDD delivers data that currently exists in its native format within corporations and whose value is clearly understood by the company, MIS, and the end-user. With the recognized features, the willingness to invest in infrastructure is more likely. Within conventional environments, users have access to files and can download or copy them on-demand, whenever they are aware that the network file document changes. File servers and intranet servers act as document repositories waiting passively to be accessed. The reality is that these files change erratically and the user can never really know when a file has changed. As a result, those who need to have the most current documents are required to perform hit-and-miss network browsing and checking which is time-consuming, unproductive, and frustrating. Even if the changes are scheduled, the user is still required to manually access, retrieve and manage those changes. For mobile users, the problem of knowing about and accessing changes to network-based files is compounded by infrequent access to the corporate network. In addition, when remote from the office, users need to establish connections to the network via dial-up networking technologies, then search and browse the network over an often slow, unreUable connection. The productivity losses and frustrations are simply multiplied.
As is apparent from the above discussion, a need exists for an efficient and effective mechanism for allowing a computer user to have copies of the current versions of network files on his client computer.
SUMMARY OF THE INVENTION
Conventionally, those who need to have the most current versions of computer files are required to perform hit-and-miss network browsing and checking which is time-consuming, unproductive, and frustrating. An object of the present invention is to provide a mechanism by which a user can be automatically provided with a current version of a file to which he subscribes.
Another object of the present invention is to communicate the current version of the file in an efficient manner. According to the present invention, a server computer monitors network files and folders stored on the network for changes and then sends the user email notifications and updates when monitored items change.
According to the present invention, a server computer generates an update file for transmission to a client computer that permits the client computer to generate a copy of a current version of a subscription file from a copy of an earlier version of the subscription file. The server computer periodically reads the subscription file from the network drive and divides the subscription file into variable-length segments based upon a segment delimiter. The server computer computes a signature for each segment and stores the segment signature along with the beginning position and length of each segment in a current version of the signature list. The server computer also maintains the earlier version of the signature list.
For each segment of the current version of the subscription file, the server computer searches an earlier version of a signature list for an old segment signature which matches a new segment signature corresponding to the segment. When a match is detected, the server computer writes a command in the update file for the client computer to copy an old segment of the client computer's copy of the earlier version of the subscription file into the client computer's copy of the current version of the subscription file, where the old segment corresponds to the segment for which a match was detected. The command need only specify the location within the earlier version of the file where the old segment is stored, rather than the actual data that is stored at this position. This information is found in the signature list in the beginning location and size fields. The beginning location field is preferably expressed as a number of bytes from the beginning of the file. At the client computer, when this location information is combined with the offset of the beginning of the client computer's copy of the earlier version of the subscription file, the correct old segment can be copied into the client computer's copy of the current version of the subscription file. The size of the copy command is negligible in comparison to the size of the segment to which it pertains. This savings reduces the size of the update file, and thus reduces the connection time in communicating the update file to the client computer.
When no match is detected in the earlier version of the signature list, the server computer writes a command into the update file for the client computer to insert a new segment of the current version of the subscription file into the chent computer's copy of the current version of the subscription file, where the new segment of the current version of the subscription file is written into the update file. Because the new segment of the current version of the subscription file contains the actual data of the new segment, the new segment of the current version of the subscription file may be compressed to reduce the size, encrypted for security, or both, by the server computer before being written into the update file.
When the update file is completed, the server computer transmits the update file to the chent computer as an executable attachment via electronic mail.
The update file is only generated when the server computer determines that the subscription file has changed. The server computer periodically monitors the subscription file to determine if it has been altered before generating an update file. The user determines the periodicity of the checks to determine if the file has been altered, and if so, to generate the update file and send it as an electronic mail.
These and other features of the present invention are apparent from the Drawings which are described in narrative form in the Detailed Description of the Invention.
BRIEF DESCRIPTION OF THE DRAWINGS Figure 1 illustrates a general purpose computer architecture suitable for implementing the methods according to the present invention.
Figure 2 illustrates a network of computers suitable for implementing the methods according to the present invention.
Figure 3 illustrates an earlier version of a subscription file broken into six segments and the signatures corresponding to the six segments suitable for use with the methods according to the present invention.
Figure 4 illustrates an earlier version of a signature list according to the present invention corresponding to the earlier version of the subscription file shown in Figure 3.
Figure 5 is a flow chart illustrating a method according to the present invention of building a signature list corresponding to a subscription file.
Figure 6 illustrates a current version of the subscription file shown in Figure 3 broken into seven segments and the signatures corresponding to the seven segments suitable for use with the methods according to the present invention.
Figure 7 illustrates a current version of a signature list according to the present invention corresponding to the current version of the subscription file shown in Figure 6.
Figure 8 illustrates the correspondence of the current version of the subscription file to the earlier version of the subscription file and the segments which are communicated to the client computer from the server computer in an update file according to the present invention. Figure 9 illustrates the creation of a current copy on the client computer of the current subscription file from a copy of the earlier version of the subscription file on the client computer using the update file. Figure 10 is a flow chart illustrating a method according to the present invention of generating an update file from the current version of the subscription file and the current and earlier versions of the signature list.
Figure 11 illustrates an update file generated by the method according to the present invention illustrated in Figure 10 applied to the earlier and current versions of the signature list illustrated in Figures 4 and 7, respectively.
Figure 12 illustrates a large and diverse network of computers suitable for implementing the methods according to the present invention.
The Figures are more thoroughly described in narrative form in the Detailed Description of the Invention.
DETAILED DESCRIPTION OF THE INVENTION Although intranets are growing in popularity, they are not likely to replace file servers any time soon. File servers are one of the primary ways to store and share data on corporate networks due to their sheer simplicity for posting and retrieving files. Users have grown accustomed to working with network drives, even to the extent where in which data is actually stored directly on the network, rather than on their own hard drives. The intranet, on the other hand, requires that documents be "posted" or "uploaded" to a web server, usually by a select group of individuals. Thus, making documents available to others goes from the simple task of copying a file onto a network directory to submitting a file to be processed by others. On the recipient end, it involves activating a browser, going to the appropriate URL or IP address, finding the document on a page and downloading it (as opposed to a simple drag-and-drop file copy to the hard drive). In spite of the varying degrees of complexity, there is value in both methods of file sharing. Since virtually all Intranet documents are converted forms of some other type of document file, the most current information is often found in native files on the LAN, rather than information posted to a web page. In addition, not all changing files used in the day-to-day life of the mobile professional are found on the intranet, whereas all intranet-based files can typically be found on the network. Thus, browser-access alone is not always adequate to serve the needs of document delivery.
According to research, the most popular method of connecting to the corporate network is through electronic mail. Not surprisingly, electronic mail is treated as a mission critical application. For remote or mobile professionals, it is the one connection they do make to the network on a recurrent basis. This familiar, reliable system is well-suited for electronic document delivery (EDD). So well-suited, in fact, that many departments and users currently rely on electronic mail as a primary way to send documents to other users. Even with existing network and Intranet infrastructures, a typical response to the suggestion, "It's now posted on the site, you can download it" is "I know, but could you send it to me by email? It's easier". The simplicity of using electronic mail as a single connection to a wide variety of information sources is very compelling to both users and corporations, with the caveat that the files being sent must not impede the network, the mail server, or the end-user's experience. This means, for truly effective document push, file size has to be addressed, first and foremost. Electronic Document Delivery involves more than just the physical process of sending out documents automatically. The indiscriminate sending or downloading of full-size files places a heavy burden on network bandwidth, IS, and the mobile professional. Intelligence needs to be built into the entire process of delivery to be truly effective and valuable to both MIS and users. For truly effective Document Delivery, server-based intelligence is required. It is needed for detecting and sending changed files, but also as well as for detecting what changes have been made and packaging only those changes as efficiently as possible. If only 50 cells of 5000 have changed in a spread-sheet, it does not make sense to send the entire file again. If only a single slide in a 50-slide presentation changes, it does not make sense to re- send the entire 2 MB file.
Symantec Mobile Update™ (Symantec Mobile Update is a trademark of Symantec Corporation and its subsidiaries) according to the present invention, through a combination of server-based "delta technology" and client-based "update agent technology", adds "intelligence" to document delivery by automatically offering a seamless way of receiving changes to corporate documents. The next section discusses the technology used by Mobile Update according to the present invention to bring "intelligence" to document delivery. Mobile Update according to the present invention is designed primarily to serve the mobile professional as the target user, who relies on copies of the most up-to-date documents to be effective, but who is not always connected to the network to access changes. In addition, the mobile user is challenged with both slow connection speeds to the network (typically 28.8 Kb/ sec modem), as well as the hassles of getting and staying connected. The Mobile Update solution according to the present invention is comprised of a server portion (for tracking files on the network and processing changes) and a client portion (for managing document "subscriptions" and for incorporating changes into existing documents). The Mobile Update Client portion is used to create and manage subscriptions to network documents. The process of selecting files to be monitored is referred to as "subscribing". Users browse to the network directory where the desired files are stored and select either individual files or folders (excluding sub-folders). Once selected, the user then determines the polling or monitoring interval for the server to check for changes and also what to do when changes occur, i.e., package and send file changes or simple notification. Once the subscription is set up, the information is passed to the server and stored in its database.
The Mobile Update Server according to the present invention acts as an "electronic assistant" on the network, tracking documents for changes. It polls files or subfolders at either user-defined intervals for any changes to date, time stamps. When it detects a change, it checks the integrity of the file, then decides whether it needs to deliver the actual changes or simply notify send notice of a file change. Figure 1 illustrates a general purpose computer system 100 suitable for implementing the methods according to the present invention. The general purpose computer system 100 includes at least a microprocessor 104. The general purpose computer may also include random access memory 102, ROM memory 103, a keyboard 107, and a modem 108. All of the elements of the general purpose computer 100 are optionally tied together by a common bus 101 for transporting data between the various elements. The bus 101 typically includes data, address, and control signals. Although the general purpose computer 100 illustrated in Figure 1 includes a single data bus 101 which ties together all of the elements of the general purpose computer 100, there is no requirement that there be a single communication bus 101 which connects the various elements of the general purpose computer 100. For example, the microprocessor 104, RAM 102, and ROM 103, are alternatively tied together with a data bus while the hard disk 105, modem 108, keyboard 107, display monitor 106, and network interface 109 are connected together with a second data bus (not shown). In this case, the first data bus 101 and the second data bus (not shown) are linked by a bidirectional bus interface (not shown). Alternatively, some of the elements, such as the microprocessor 102 and RAM 102 are connected to both the first data bus 101 and the second data bus (not shown), and communication between the first and second data bus occurs through the microprocessor 102 and RAM 102. The network interface 109 provides communication capability to a local area network LAN using an ethernet connection, for example. The modem 108 allows the computer 100 to communicate through the telephone system. The methods of the present invention are executable on any general purpose computer system such as the 100 illustrated in Figure 1, but there is clearly no limitation that this computer system is the only one which can execute the methods of the present invention.
Figure 2 illustrates a network of computers suitable for implementing the methods according to the present invention. A client computer 201 is connected to a network drive 202 through link 205. A server computer 203 is connected to a network drive 202 through a link 206. The client computer 201 and server computer 203 are logically connected by a link 207 for communication between them. The server computer 203 is logically connected to an electronic mail facihty 204 through link 209. Chent computer 201 is logically connected to the electronic mail facihty 204 through link 208. The logical connections 207, 208, and 209 are not necessarily physical connections. For example, the chent computer 201 is alternatively a remote computer which periodically connects to the network drive 202 through a modem. In this event, the modem (not shown) provides the physical connection through which the logical connections 205, 207, and 208 are implemented.
Figure 2 illustrates the interaction between client, server, and network according to the present invention. The user browses the network through link
205 from his client computer 201 to determine the files to which he wishes to subscribe. The chent computer 201 sends the subscription information to the server computer 203 through logical link 207. The server computer 203 polls the network 202 through link 206 for changes to the subscription files. The server sends update files to the chent computer 201 through the email facility 204 through logical link 209. The chent computer receives update files through the logical link 208.
Symantec's Delta Technology according to the present invention has been optimized to detect and process changes quickly and efficiently, while concurrently mamtainrng the integrity of the file. When a user first "subscribes" to a file, the server takes a "digital snapshot" that forms the basis for determining changes made to the file in the future. The server reads the file from the network and determines the most efficient "delimiter" or "dividing point" to break the file into segments as shown in Figure 3. A digital 'snapshot' is comprised of a series of segments which define the overall contents and structure of a file.
A file can be segmented into hundreds, if not thousands, of segments depending on the file size and type. Figure 3 illustrates an earher version of a subscription file broken into six segments and the signatures corresponding to the six segments suitable for use with the methods according to the present invention. Segments Al through A6 represent variable length portions of the earher version of the subscription file. The ends of each of the segments (Al through A6) are determined by segment delimiters 301 through 306. The segment delimiters 301 through 306 are specific portions of data, perhaps bytes, that are statistically determined to be an optimal, or at least acceptable, division point for the variable length segments Al through A6 for the earher version of the subscription file. Signatures 311 through 316 are fixed length values derived from the variable length segments
Al through A6. The signatures 311 through 316 may be determined by any one of a variety of hashing methods or signature algorithms. In the presently preferred embodiment, the signatures Al through A6 are computed using the cyclic redundancy check (CRC). However, any signature algorithms may be used according to the present invention. For example, MD5 can be used to derive a fixed length digital signature from the variable length segments.
Figure 4 illustrates an earher version of a signature list according to the present invention corresponding to the earher version of the subscription file shown in Figure 3. The signature list 400 shown in Figure 4 further includes the starting locations 401 through 406 of each of the segments Al through A6 shown in Figure 3. The starting locations 401 through 406 are preferably represented as byte address locations relative to the beginning of the earher version of the subscription file. Thus, an offset representing the location of the beginning of the earher version of the subscription list is combined with each of the segment location values 401 through 406 to determine the address of the begirning of each of the segments within the address space within which the segments Al through A6 are stored. The signature list 400 also includes a segment size field which stores the size of each of the variable length segments Al through A6 as a number of bytes within the variable length segment to which it corresponds. The segment location and segment size allow the addresses of all of the data within the segment to be computed. However, it should be noted that the information necessary to compute the addresses of the pieces of data within each segment could be represented in some alternative manner. For example, instead of attaching the segment size within the signature hst, the ending location of each segment could alternatively be stored according to the present invention.
Figure 5 is a flowchart illustrating a method according to the present invention of building a signature hst corresponding to a subscription file. The method starts at step 501. At step 502, the subscription file is read from the network drive 202. If the subscription file read from the network drive is a new subscription file, test 503 delivers the method to step 504 where the most efficient segment delimiter is determined for that new subscription file. Thus, the byte value which represents the segment delimiters 301 through 306 shown in Figure 3 are computed at step 504 the first time that the subscription file is read. If the subscription file read from the network drive in step 502 is not a new subscription file, then the task 503 delivers the message to step 505, where the delimiter corresponding to the subscription file is retrieved from a table (not shown) which stores the values of the segment delimiters which correspond to each of the subscription files that the server computer 203 monitors. After the segment delimiter corresponding to the subscription file is retrieved at step 505, the method scans the file from the beginning for the delimiter in order to determine the first variable length segment corresponding to that subscription file. If the end of the file is reached before the delimiter is found, then step 506 marks that as a segment, and that will be the last segment corresponding to the subscription file. Thus, the segment delimiter 306, which pertains to the last segment A6, is the last byte in the file, and is not necessarily the same value as the other segment delimiters 301 through 305. At step 507, the signature for the variable length segment is computed. At step 508, the signature is added to the signature list along with the beginning location and segment size corresponding to the segment. Test 509 determines whether or not the segment ends with the delimiter. If the segment ends with the delimiter, then it is not the last segment in the subscription file, and therefore the test 509 returns the message to step 506 so that the next variable length segment can be determined. If the segment does not end with the delimiter, then it is assumed that it is the end of the file, and the method 500 is completed. At this point, the signature list corresponding to the subscription file has been computed and stored. When the server 203 polls the subscription file at a future time and detects a change, a second "snapshot" is generated using the same process as the first snapshot as shown in Figure 7. As shown in Figure 8, the new or changed segments are accompanied by unchanged segments, depending on the number and severity of the changes made to the file. The Delta Engine according to the present invention then compares the two sets of segments to determine which segments have been altered, which ones are new and which ones have remained unchanged, as illustrated in Figure 8.
Figure 6 illustrates a current version of the subscription file shown in Figure 3 broken into seven segments and the signatures corresponding to the seven segments suitable for use with the methods according to the present invention. Segment delimiters 601 through 607 represent byte codes which were determined for this subscription file to indicate the end of each of the segments Bl through B7. Signatures 611 through 617 represent fixed length signatures computed from each of the seven segments Bl through B7. Figure 7 illustrates a current version of a signature list according to the present invention corresponding to the current version of the subscription file shown in Figure 6. The signature list 700 includes the segment signatures 701 through 707 corresponding to the variable length segments Bl through B7 shown in Figure 6 and the corresponding segment locations 721 through 727 representing the beginning position of each of the segments Bl through B7 as well as the segment sizes 711 through 717 corresponding to each of the segments Bl through B7. The engine according to the present invention extracts new or changed segments and bundles these into a file, called an Update File. This file is then optionally compressed to reduce its size even further. At its simplest, an Update File contains just the changes made to a file, in a compressed state, as shown in Figure 8. Figure 8 illustrates the correspondence of the current version of the subscription file to the earher version of the subscription file and the segments which are communicated to the chent computer from the server computer in an update file according to the present invention. As discussed above, the earher version of the subscription file shown in Figure 3 and the current version of the subscription file shown in Figure 6 pertain to the same file name. They are different versions of the same file. Figure 8 shows the current version of the subscription file. Figure 8 is annotated to show which segments within the current version of the subscription file are the same or identical to a segment within the earher version of the subscription file. As shown in Figure 8, each of the segments Bl, B3, B6, and B7 are the same as a corresponding segment within the earher version of the subscription file shown as segments Al through A6 in Figure 3. However, segments B2, B4, and B5 are each different from any of the segments Al through A6 shown in Figure 3.
According to the present invention, the new or changed segments B2, B4 and B5 are extracted from the current version of the subscription file stored on the network drive 202 by the server computer 203, and are packaged in an update file 801 for transmission to the chent computer 201 shown in Figure 2 so that the chent computer 201 can build a copy of the current version of the subscription file from its copy of the earlier version of the subscription file.
Figure 9 illustrates the creation of a current copy on the chent computer of the current subscription file from a copy of the earher version of the subscription file on the chent computer using the update file 801 shown in Figure
8. Figure 9 shows the copy of the earher version of the subscription file 901 as well as the data contents of the update file 902 as it corresponds to the chent computer's copy of the current version of the subscription file 903. Figure 9 shows arrows 910 through 913 which indicate segments which the chent computer 201 can copy from its earher version of the subscription file into the current version of the subscription file. Specifically, segment Al is illustrated by arrow 910 as being copied into segment CI of the copy of the current version. Similarly, segment A3 may be copied into segment C3, segment A5 may be copied into segment C6 and segment A6 may be copied into segment C7. Arrows 920 through 922 show segments which are inserted from the update file
902 into the copy of the current version of the subscription file 903. SpecificaUy, segment B2 is inserted from the update file 902 into the copy of the current version of the subscription file at segment C2. Segment B4 is inserted from the update file 902 into the copy of the current version 903 at segment C4. Segment B5 is inserted from the update file 902 into the copy of the current version 903 at segment C5. Dotted rectangle 950 illustrates data that is resident on the chent computer 201. Update file 902 is communicated to the chent computer 201 through an electronic mail facihty 204. Thus, the update file 902 must be transmitted to the chent computer 201 through whatever communication link the chent computer 201 uses to access its electronic mail 204. This link 208 shown in Figure 2 may be a modem, an ethernet connection, or some other communication device. As is illustrated in Figure 9, the present invention maximizes the information already stored on the chent computer 201 and minimizes the information needed to be transmitted to the chent computer 201 in order to create the copy of the current version of the subscription file. Specifically because segments Al, A3, A5, and A6 are identical to corresponding segments in the current version of the subscription file, they need not be transmitted to the chent computer 201 through the electronic mail facihty
204. Only the changes B2, B4, and B5 are communicated to the chent computer 201.
Figure 10 is a flowchart illustrating a method according to the present invention of generating an update file from the current version of the subscription field and the current and earher versions of the signature list. The method starts at step 1001. At step 1002, the method compares the new segment signature to an old segment signature. Here, the new segment refers to segments within the current version of the subscription file; the old segment signature refers to segment signatures within the earher version of the subscription file. For example, each of the segment signatures 311 through 316 shown in Figures 3 and
4 are old segment signatures, while each of the signatures 701 through 707 shown in Figure 7 represent new segment signatures. Step 1002 begins with the first new segment signature in the current version of the subscription file. For example, step 1002 begins with the segment signature 701 pertaining to segment Bl . Step 1002 compares the new segment signature to the old segment signature. Step 1002 begins with the first old segment signature, for example the segment signature 311 corresponding to segment Al shown in Figure 4.
If step 1002 determines that there is a match between the new segment signature and the old segment signature, then the method 1000 writes a command in the update file to copy the old segment into the chent computer' s copy of the current version of the subscription file at step 1003. Then step 1007 determines if the last new segment signature in the new signature list has been processed and if so, the method is done at step 1009. For example, when the method gets to the new segment signature 707 corresponding to segment B7, step 1007 will indicate that the method is done. However, if there are more new segment signatures to be processed, step 1007 delivers the message to step 1008 which retrieves the next new segment signature, and then returns the method to step 1002. If there is not a match between the new segment signature and the old segment signature, then step 1002 dehvers the method to step 1004, where it is determined whether or not the last old segment signature in the old signature list has been compared to the new segment signature. If test 1004 determines that there are no more old segment signatures in the old signature hst, for example the segment signature 316 corresponding to segment A6 shown in Figure 4, then test 1004 delivers the method to step 1006 where the server computer writes a command in the update file to insert the new segment into the chent computer's copy of the current version of the subscription file. In other words, if step 1006 is reached, then there were no matches for the new segment signature in the old segment signature list. Then the method reverts to test 1007. If test 1004 determines that there are more old segment signatures in the old signature hst, then the next old segment signature is considered at step 1006 and the method reverts to step 1002 for comparison of the new segment signature to the old segment signature. Figure 11 shows the update file which is communicated to the chent computer 202 via electronic mail. Although the preferred embodiment of the present invention involves electronic mail transmission of the update file to the chent computer 201, there is no requirement that an electronic mail facihty be used. Figure 11 illustrates an update file generated by the method according to the present invention illustrated in Figure 10 apphed to the earher and current versions of the signature hst illustrated in Figures 4 and 7, respectively. The update file 1100 shown in Figure 11 is preferable an executable attachment to an electronic mail that is received by the client computer 201. The command 1101 implements the copy of segment Al into segment CI illustrated by the arrow 910 shown in Figure 9. The insert command 1102 implements the insertion of the segment B2 into segment C2 by arrow 920 shown in Figure 9. The copy command 1103 implements the copying of segment A3 into segment C3 shown by arrow 911 in Figure 9. The command 1104 implements the copying of segment B4 into segment C4 illustrated by arrow 921 shown in Figure 9. The command 1105 implements the copying of segment B5 into segment C5 illustrated by the arrow 922 shown in Figure 9. The command 1106 implements the copying of the segment A5 into segment C6 illustrated by arrow 912 shown in Figure 9. The copy command 1107 implements the copying of segment A6 into segment C7 illustrated by arrow 913 in Figure 9. Each of the copy commands 1101, 1103, 1106, and 1107 must specify for the chent computer 201 where the segments to which they pertain are actually stored on the chent computer. Because the chent computer does not store the signature hsts or have any knowledge of the fact that the subscription files are broken into segments by the server computer, the update file must include address information necessary to effectuate the copying of the correct bytes into the copy of the current version of the subscription file. Thus, the location and size of each segment are included as arguments to each of the copy commands so that the chent computer can compute the address of the correct bytes. The chent computer stores the copies of the subscription files as standard files within its operating system and only knows the beginning location and size of the entire file. The location and size information included in each copy command by the server computer 203 is combined with the file offset value at the chent computer in order for the chent computer to calculate the range of addresses to be copied. In addition, the server computer 203 has no way of knowing where exactly on the chent computer's hard disk that the chent computer stored the earher version of the subscription file. The insert commands 1102, 1104, and 1105 include the actual contents of the segments B2, B4, and B5, respectively. Although the segment size is variable, the inclusion of the actual contents of the new or changed segments B2, B4, and B5 represent the vast bulk of the update file 1100. In other words, the copy commands 1101, 1103, 1106, and 1107 are negligible in size in comparison to the contents of the actual new or changed segments which must be transmitted. In fact, in Figure 9, the update file 902 and in Figure 8, the update file 801 , are illustrated solely by the contents of the segments B2, B4, and B5 and omit illustrating the actual copy and insert commands because they are neghgible in size to the actual content of the transmitted segments. Because the segments are transmitted via electronic mail, they may be further compressed to reduce their size and thereby minimize connection time in receiving the electronic mail. Because the update file is often transmitted over an insecure communication medium, such as the internet, the update file 902 is optionally encrypted for security purposes according to the present invention.
Once a delta or Update File has been generated, the server creates an email message and sends the Update File as a simple binary attachment to the user. The user then receives updates through the user's standard email chent. For mobile professionals, this means making one connection to the network to receive all messages and document updates. It also means that the size of the attachment is a fraction of the full file, containing only the changes to be apphed. In other words, the user performs the standard task of checking email — i.e. a task that is familiar, secure, and, for the most part, reliable. Once an Update Message arrives, the user simply launches or opens the attachment (again, in a way they are most familiar with) and the Mobile Update
Agent processes the changes automatically. It does this by substituting the new and modified segments in the Update File with the segments in the existing file, as illustrated in Figure 9. As shown in Figure 9, segment B2 is a replacement segment for A2 in the current file. A2 is removed and B2 takes its place. Segment B4 is a brand new segment that fits in after A3, and the files to the right of it (i.e., A4, A5, and A6) are moved over by one segment. Finally, segment B5 replaces A4 as it is the modified segment for A4. The last two segments in the original file (A5 and
A6) are reused. The updated file on the hard drive now has an identical "binary profile" or "snapshot" to the second snapshot taken by the server. For the next file change, the server will take yet another snapshot and compare it against the latest snapshot and so on. The Mobile Update Server according to the present invention preferably runs as a service under Windows NT 4.0 (Workstation or Server) and can run across virtually any network operating system that supports Windows NT. However, it should be noted that the server according to the present is alternatively implemented so as to run under any operating system. The server according to the present invention requires its own mail chent (account) that is capable of sending and receiving email messages through the corporate mail server. The server uses the mail chent to receive and process email-based subscription changes and requests automatically generated by clients when they are in off-hne mode (i.e. , not connected to the network). It also uses the mail chent to create and send notification and update requests to its users. In addition, the server requires a network account with access rights that encompass those of its users, i.e. it should at least share the same profile as its users. This allows the server to access network files on the user's behalf to check for changes.
When installing the server, the adrrrinistrator specifies where chent install files should be located on the network for easy install access by users. Once the server is set up, the user installs the client from the network drive. Each chent is registered with the server and writes its user name, email address, etc. , to the server's database. The chent can now subscribe to any network-based files located on a shared directory.
Figure 12 illustrates a large and diverse network of computers suitable for implementing the methods according to the present invention. SpecificaUy, the server computer 1201 accesses subscription files stored on any of the file servers
1202 through 1209. The personal computers 1210 through 1212 are connected to local area network 1216. Remote personal computers 1213 through 1215 dial in to modems 1218 through 1220 respectively in order to receive their electronic maU from the electronic maU facihty 1221 and receive update files corresponding to the subscription files to which they subscribe.
Figure 12 iUustrates a sample deployment for MobUe Update according to the present invention. The chents runs in both on-line mode and off-line mode. The chent runs in on-line mode when it is on the network where it can communicate directly with the server's database. The chent runs in off-line mode when the user is mobile and not connected to the network.
In the off-line mode according to the present invention, the user communicates with the server through email messaging. If changes are made to the properties of a subscription, such as a change in polling frequency or a re- sync request is made, the Mobile Update chent automatically generates an email message to the server which is then placed in the outbox of the user's mail client. These messages are then sent when the user logs on to check or send e-mail. The messages are then received by the server's mail chent and parsed and processed accordingly. The Mobile Update Server according to the present invention can access virtually any WAN-based server, providing it has the necessary network access rights, as illustrated in Figure 12.
Symantec Mobile Update (SMU) according to the present invention is the first solution in the document delivery or "push" category in which currently existing data like reports, spreadsheets, presentations, etc., are dehvered to the desk-top 'intelligently'. It does this by watching the network files of folders for changes, dehvering "just the changes" or notifies of changes, uses one famihar and reliable connection to deliver those changes (email), and provides seamless functionality, thereby leveraging the way users currently work (in email). Document push, like software push, is only compelling if it can deliver clear value to end-users and corporate IS. Mobile Update according to the present invention offers two tiers of benefits to corporations. For the mobile user, it receives updates anywhere, anytime (location-independent), it stays up-to-date on changes to key documents, it reduces download time for email attachments, and it reduces the hassle of accessing changes to key documents.
For MIS personnel, it easily and effectively keeps mobile employees connected to corporate, LAN-based files, it reduces the length of connection times (quicker email downloads), it reduces the number of connections made (leverages email connection), and it reduce the size of email attachments (delta technology). Although the present invention has been described with respect to its preferred embodiment, that embodiment is offered by way of example, not by way of limitation. It is to be understood that various additions and modifications can be made without departing from the spirit and scope of the present invention. Accordingly, all such additions and modifications are deemed to lie with the spirit and scope of the present invention as set out in the appended claims.

Claims

What Is Claimed is:
1. A method for a server computer to generate an update file for transmission to a chent computer that permits the chent computer to generate a copy of a current version of a subscription file from a copy of an earher version of the subscription file, the method comprising the steps of: for each segment of the current version of the subscription file, (a) searching an earher version of a signature hst corresponding to an earher version of the subscription file for an old segment signature which matches a new segment signature corresponding to the segment; and (b) if step (a) results in a match, writing a command in the update file for the chent computer to copy an old segment of the chent computer's copy of the earher version of the subscription file into the chent computer's copy of the current version of the subscription file, wherein the old segment corresponds to the segment for which a match was detected in step (a).
2. A method as in claim 1, further comprising the step of: for each segment of the current version of the subscription file,
(c) if step (a) results in no match, writing a command in the update file for the chent computer to insert a new segment of the current version of the subscription file into the chent computer's copy of the current version of the subscription file.
3. A method as in claim 2, wherein the new segment of the current version of the subscription file is written into the update file.
4. A method as in claim 3, wherein the new segment of the current version of the subscription file is compressed.
5. A method as in claim 3, wherein the new segment of the current version of the subscription file is encrypted.
6. A method as in claim 2, wherein the new segment of the current version of the subscription file is retrieved by the server computer from a network drive.
7. A method as in claim 2, further comprising the step of: (d) transmitting the update file to the chent computer as an executable attachment by electronic mail.
8. A method as in claim 7, further comprising the step of: prior to step (a), performing a check on the current version of the subscription file to determine if the subscription file has been altered since a previous check and continuing to perform the remaining steps only if the check determines that the current version of the subscription file has been altered.
9. A method as in claim 8, wherein the step of performing a check is performed at periodic intervals.
10. A method as in claim 8, wherein the step of performing a check on the current version of the subscription file comprises checking a current time stamp of the current version of the subscription file to determine whether it differs from an earher time stamp of the subscription file.
11. A computer readable storage medium, comprising: computer readable program code embodied on said computer readable storage medium, said computer readable program code for programming a computer to perform a method for a server computer to generate an update file for transmission to a chent computer that permits the chent computer to generate a copy of a current version of a subscription file from a copy of an earher version of the subscription file, the method comprising the steps of: for each segment of the current version of the subscription file, (a) searching an earher version of a signature hst corresponding to an earher version of the subscription file for an old segment signature which matches a new segment signature corresponding to the segment; and (b) if step (a) results in a match, writing a command in the update file for the chent computer to copy an old segment of the chent computer's copy of the earher version of the subscription file into the chent computer's copy of the current version of the subscription file, wherein the old segment corresponds to the segment for which a match was detected in step (a).
12. A computer readable storage medium as in claim 11, the method further comprising the step of: for each segment of the current version of the subscription file, (c) if step (a) results in no match, writing a command in the update file for the chent computer to insert a new segment of the current version of the subscription file into the chent computer's copy of the current version of the subscription file.
13. A computer readable storage medium as in claim 12, wherein the new segment of the current version of the subscription file is written into the update file.
14. A computer readable storage medium as in claim 13, wherein the new segment of the current version of the subscription file is compressed.
15. A computer readable storage medium as in claim 13, wherein the new segment of the current version of the subscription file is encrypted.
16. A computer readable storage medium as in claim 12, wherein the new segment of the current version of the subscription file is retrieved by the server computer from a network drive.
17. A computer readable storage medium as in claim 12, further comprising the step of:
(d) transmitting the update file to the chent computer as an executable attachment by electronic mail.
18. A computer readable storage medium as in claim 17, the method further comprising the step of: prior to step (a), performing a check on the current version of the subscription file to determine if the subscription file has been altered since a previous check and continuing to perform the remaining steps only if the check determines that the current version of the subscription file has been altered.
19. A computer readable storage medium as in claim 18, wherein the step of performing a check is performed at periodic intervals.
20. A computer readable storage medium as in claim 18, wherein the step of performing a check on the current version of the subscription file comprises checking a current time stamp of the current version of the subscription file to determine whether it differs from an earher time stamp of the subscription file.
21. A computer system, comprising: a processor; and a processor readable storage medium having processor readable program code embodied on said processor readable storage medium, said processor readable program code for programming a computer to perform a method for a server computer to generate an update file for transmission to a chent computer that permits the chent computer to generate a copy of a current version of a subscription file from a copy of an earher version of the subscription file, the method comprising the steps of: for each segment of the current version of the subscription file,
(a) searching an earher version of a signature hst corresponding to an earher version of the subscription file for an old segment signature which matches a new segment signature corresponding to the segment; and
(b) if step (a) results in a match, writing a command in the update file for the chent computer to copy an old segment of the chent computer's copy of the earher version of the subscription file into the chent computer's copy of the current version of the subscription file, wherein the old segment corresponds to the segment for which a match was detected in step (a).
22. A computer system as in claim 21, the method further comprising the step of: for each segment of the current version of the subscription file,
(c) if step (a) results in no match, writing a command in the update file for the chent computer to insert a new segment of the current version of the subscription file into the chent computer's copy of the current version of the subscription file.
23. A computer system as in claim 22, wherein the new segment of the current version of the subscription file is written into the update file.
24. A computer system as in claim 23, wherein the new segment of the current version of the subscription file is compressed.
25. A computer system as in claim 23, wherein the new segment of the current version of the subscription file is encrypted.
26. A computer system as in claim 22, wherein the new segment of the current version of the subscription file is retrieved by the server computer from a network drive.
27. A computer system as in claim 22, further comprising the step of:
(d) transmitting the update file to the chent computer as an executable attachment by electronic mail.
28. A computer system as in claim 27, the method further comprising the step of: prior to step (a), performing a check on the current version of the subscription file to determine if the subscription file has been altered since a previous check and continuing to perform the remaining steps only if the check determines that the current version of the subscription file has been altered.
29. A computer system as in claim 28, wherein the step of performing a check is performed at periodic intervals.
30. A computer system as in claim 28, wherein the step of performing a check on the current version of the subscription file comprises checking a current time stamp of the current version of the subscription file to determine whether it differs from an earher time stamp of the subscription file.
PCT/US2000/012048 1999-05-03 2000-05-02 Methods and apparatuses for file synchronization and updating using a signature list WO2000067119A2 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US09/303,958 1999-05-03
US09/303,958 US6574657B1 (en) 1999-05-03 1999-05-03 Methods and apparatuses for file synchronization and updating using a signature list

Publications (3)

Publication Number Publication Date
WO2000067119A2 WO2000067119A2 (en) 2000-11-09
WO2000067119A3 WO2000067119A3 (en) 2001-04-26
WO2000067119A9 true WO2000067119A9 (en) 2002-04-04

Family

ID=23174433

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US2000/012048 WO2000067119A2 (en) 1999-05-03 2000-05-02 Methods and apparatuses for file synchronization and updating using a signature list

Country Status (2)

Country Link
US (2) US6574657B1 (en)
WO (1) WO2000067119A2 (en)

Families Citing this family (220)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2000034891A2 (en) * 1998-12-04 2000-06-15 Koninklijke Philips Electronics N.V. System for supporting activities
US6986134B1 (en) * 1999-03-16 2006-01-10 Sun Microsystems, Inc. Lightweight global distribution mechanism
US6574657B1 (en) * 1999-05-03 2003-06-03 Symantec Corporation Methods and apparatuses for file synchronization and updating using a signature list
US6996627B1 (en) * 1999-05-25 2006-02-07 Realnetworks, Inc. System and method for providing update information
EP1094411A1 (en) * 1999-10-20 2001-04-25 Sun Microsystems, Inc. Handling of different versions of a document
US6983365B1 (en) * 2000-05-05 2006-01-03 Microsoft Corporation Encryption systems and methods for identifying and coalescing identical objects encrypted with different keys
JP3852269B2 (en) * 2000-05-29 2006-11-29 セイコーエプソン株式会社 A system that automatically collects content that exists on the network
US6990631B2 (en) * 2000-07-14 2006-01-24 Ricoh Company, Ltd. Document management apparatus, related document extracting method, and document processing assist method
WO2002006920A2 (en) * 2000-07-17 2002-01-24 Modelwire, Inc. Streamlined data distribution system for commercial applications
US8479189B2 (en) 2000-11-17 2013-07-02 Hewlett-Packard Development Company, L.P. Pattern detection preprocessor in an electronic device update generation system
US7409685B2 (en) 2002-04-12 2008-08-05 Hewlett-Packard Development Company, L.P. Initialization and update of software and/or firmware in electronic devices
GB2374163B (en) * 2000-11-27 2004-12-01 Gordano Ltd Maintaining software and data
US20020073312A1 (en) * 2000-12-08 2002-06-13 International Business Machines Corporation Secure electronic software distribution
US7512635B1 (en) * 2000-12-18 2009-03-31 Bmc Software, Inc. System and method for updating information on a computer system using a limited amount of space
US7574481B2 (en) * 2000-12-20 2009-08-11 Microsoft Corporation Method and system for enabling offline detection of software updates
US6658423B1 (en) * 2001-01-24 2003-12-02 Google, Inc. Detecting duplicate and near-duplicate files
US7035847B2 (en) * 2001-03-16 2006-04-25 Novell, Inc. Server for synchronization of files
US7072908B2 (en) * 2001-03-26 2006-07-04 Microsoft Corporation Methods and systems for synchronizing visualizations with audio streams
US7409424B2 (en) 2001-04-24 2008-08-05 Parker James A Electronic mail file access system
US20020184350A1 (en) * 2001-06-05 2002-12-05 Ko-Meng Chen Method for updating firmware by e-mail
US7069594B1 (en) * 2001-06-15 2006-06-27 Mcafee, Inc. File system level integrity verification and validation
US7159036B2 (en) * 2001-12-10 2007-01-02 Mcafee, Inc. Updating data from a source computer to groups of destination computers
US7631184B2 (en) * 2002-05-14 2009-12-08 Nicholas Ryan System and method for imposing security on copies of secured items
AU2003214624A1 (en) * 2002-04-25 2003-11-10 Kashya Israel Ltd. An apparatus for continuous compression of large volumes of data
US6925467B2 (en) 2002-05-13 2005-08-02 Innopath Software, Inc. Byte-level file differencing and updating algorithms
US6948130B2 (en) * 2002-05-31 2005-09-20 Motorola, Inc. Appending signature to size limited message
US7472380B1 (en) * 2002-09-23 2008-12-30 Hewlett-Packard Development Company, L.P. Processing system with component architecture platform support
US6836657B2 (en) * 2002-11-12 2004-12-28 Innopath Software, Inc. Upgrading of electronic files including automatic recovery from failures and errors occurring during the upgrade
US7051053B2 (en) * 2002-09-30 2006-05-23 Dinesh Sinha Method of lazily replicating files and monitoring log in backup file system
US7096311B2 (en) 2002-09-30 2006-08-22 Innopath Software, Inc. Updating electronic files using byte-level file differencing and updating algorithms
US7007049B2 (en) 2002-11-18 2006-02-28 Innopath Software, Inc. Device memory management during electronic file updating
US7320010B2 (en) * 2002-11-18 2008-01-15 Innopath Software, Inc. Controlling updates of electronic files
US7003534B2 (en) 2002-11-18 2006-02-21 Innopath Software, Inc. Generating difference files using module information of embedded software components
US7844734B2 (en) * 2002-11-18 2010-11-30 Innopath Software, Inc. Dynamic addressing (DA) using a centralized DA manager
US20040098421A1 (en) * 2002-11-18 2004-05-20 Luosheng Peng Scheduling updates of electronic files
US20040098361A1 (en) * 2002-11-18 2004-05-20 Luosheng Peng Managing electronic file updates on client devices
US7099884B2 (en) 2002-12-06 2006-08-29 Innopath Software System and method for data compression and decompression
US7386590B2 (en) * 2003-01-03 2008-06-10 Microsoft Corporation System and method for improved synchronization between a server and a client
US20040139111A1 (en) * 2003-01-14 2004-07-15 Schoettger Chad A. Methods and apparatus for data validation and transformation
US9678967B2 (en) 2003-05-22 2017-06-13 Callahan Cellular L.L.C. Information source agent systems and methods for distributed data storage and management using content signatures
US7146361B2 (en) * 2003-05-30 2006-12-05 International Business Machines Corporation System, method and computer program product for performing unstructured information management and automatic text analysis, including a search operator functioning as a Weighted AND (WAND)
US20040243554A1 (en) * 2003-05-30 2004-12-02 International Business Machines Corporation System, method and computer program product for performing unstructured information management and automatic text analysis
US20040243556A1 (en) * 2003-05-30 2004-12-02 International Business Machines Corporation System, method and computer program product for performing unstructured information management and automatic text analysis, and including a document common analysis system (CAS)
US20040243560A1 (en) * 2003-05-30 2004-12-02 International Business Machines Corporation System, method and computer program product for performing unstructured information management and automatic text analysis, including an annotation inverted file system facilitating indexing and searching
US7139752B2 (en) * 2003-05-30 2006-11-21 International Business Machines Corporation System, method and computer program product for performing unstructured information management and automatic text analysis, and providing multiple document views derived from different document tokenizations
JPWO2005001688A1 (en) * 2003-06-27 2006-07-27 富士通株式会社 Java applet update device, Java applet execution processing device, Java applet update program, and Java applet execution processing program
US7277901B2 (en) 2003-07-10 2007-10-02 Tacit Networks, Inc. Collaborative file update system
US7031972B2 (en) * 2003-07-21 2006-04-18 Innopath Software, Inc. Algorithms for block-level code alignment of software binary files
US20050020308A1 (en) * 2003-07-23 2005-01-27 David Lai Dynamically binding Subscriber Identity Modules (SIMs)/User Identity Modules (UIMs) with portable communication devices
JP4306365B2 (en) * 2003-08-07 2009-07-29 ソニー株式会社 Server and content receiving apparatus
US7529775B2 (en) * 2003-08-20 2009-05-05 Microsoft Corporation Method and system for collecting information about applications on a computer system
US8555273B1 (en) 2003-09-17 2013-10-08 Palm. Inc. Network for updating electronic devices
WO2005040988A2 (en) * 2003-10-23 2005-05-06 Innopath Software, Inc. Dynamic addressing (da) using a centralized da manager
US7478381B2 (en) * 2003-12-15 2009-01-13 Microsoft Corporation Managing software updates and a software distribution service
US7574706B2 (en) * 2003-12-15 2009-08-11 Microsoft Corporation System and method for managing and communicating software updates
US7949726B2 (en) * 2004-03-12 2011-05-24 Ocean And Coastal Environmental Sensing, Inc. System and method for delivering information on demand
US7100008B2 (en) 2004-03-15 2006-08-29 Hitachi, Ltd. Long term data protection system and method
US20060047855A1 (en) * 2004-05-13 2006-03-02 Microsoft Corporation Efficient chunking algorithm
US7555531B2 (en) * 2004-04-15 2009-06-30 Microsoft Corporation Efficient algorithm and protocol for remote differential compression
US7904895B1 (en) 2004-04-21 2011-03-08 Hewlett-Packard Develpment Company, L.P. Firmware update in electronic devices employing update agent in a flash memory card
US20050262167A1 (en) * 2004-05-13 2005-11-24 Microsoft Corporation Efficient algorithm and protocol for remote differential compression on a local device
US20050256974A1 (en) * 2004-05-13 2005-11-17 Microsoft Corporation Efficient algorithm and protocol for remote differential compression on a remote device
US7363327B2 (en) * 2004-05-28 2008-04-22 International Business Machines Corporation Change log handler for synchronizing data sources
US8526940B1 (en) 2004-08-17 2013-09-03 Palm, Inc. Centralized rules repository for smart phone customer care
US7516451B2 (en) 2004-08-31 2009-04-07 Innopath Software, Inc. Maintaining mobile device electronic files including using difference files when upgrading
US7613787B2 (en) * 2004-09-24 2009-11-03 Microsoft Corporation Efficient algorithm for finding candidate objects for remote differential compression
US20060095520A1 (en) * 2004-10-27 2006-05-04 Berg Douglass J Method and apparatus for managing computer systmes in multiple remote devices
US7853562B2 (en) * 2004-11-02 2010-12-14 Sap Ag System and method for obtaining information from a data management system
US7707165B1 (en) * 2004-12-09 2010-04-27 Netapp, Inc. System and method for managing data versions in a file system
US8073926B2 (en) * 2005-01-07 2011-12-06 Microsoft Corporation Virtual machine image server
US7849462B2 (en) * 2005-01-07 2010-12-07 Microsoft Corporation Image server
US20070094348A1 (en) * 2005-01-07 2007-04-26 Microsoft Corporation BITS/RDC integration and BITS enhancements
CN101040552B (en) * 2005-04-18 2010-12-01 捷讯研究有限公司 Method and system for controlling software version updates
US7725727B2 (en) * 2005-06-01 2010-05-25 International Business Machines Corporation Automatic signature generation for content recognition
WO2006129654A1 (en) * 2005-06-01 2006-12-07 Matsushita Electric Industrial Co., Ltd. Electronic device, update server device, key update device
US7895651B2 (en) 2005-07-29 2011-02-22 Bit 9, Inc. Content tracking in a network security system
US8984636B2 (en) 2005-07-29 2015-03-17 Bit9, Inc. Content extractor and analysis system
US8272058B2 (en) 2005-07-29 2012-09-18 Bit 9, Inc. Centralized timed analysis in a network security system
US8812558B1 (en) * 2005-11-14 2014-08-19 Trend Micro Incorporated Push notification of updates to antivirus programs
US8036346B2 (en) * 2005-12-13 2011-10-11 Cisco Technology, Inc. Method and system for testing audio server
US8060713B1 (en) 2005-12-21 2011-11-15 Emc (Benelux) B.V., S.A.R.L. Consolidating snapshots in a continuous data protection system using journaling
US7774565B2 (en) * 2005-12-21 2010-08-10 Emc Israel Development Center, Ltd. Methods and apparatus for point in time data access and recovery
US7849361B2 (en) * 2005-12-22 2010-12-07 Emc Corporation Methods and apparatus for multiple point in time data access
US7934104B2 (en) * 2006-01-25 2011-04-26 International Business Machines Corporation Systems and methods for verifying a licensed installation at time of update
US7962125B2 (en) * 2006-03-27 2011-06-14 Research In Motion Limited Wireless email communications system providing resource updating features and related methods
US7665081B1 (en) * 2006-05-06 2010-02-16 Kaspersky Lab, Zao System and method for difference-based software updating
US20070283050A1 (en) * 2006-06-05 2007-12-06 Seagate Technology, Llc Scheduling reporting of synchronization states
EP2025095A2 (en) 2006-06-08 2009-02-18 Hewlett-Packard Development Company, L.P. Device management in a network
WO2008014454A2 (en) 2006-07-27 2008-01-31 Hewlett-Packard Development Company, L.P. User experience and dependency management in a mobile device
JP4961606B2 (en) * 2006-08-29 2012-06-27 アイシン・エィ・ダブリュ株式会社 Data management system, update file generation system, and data update method
US7627612B2 (en) * 2006-09-28 2009-12-01 Emc Israel Development Center, Ltd. Methods and apparatus for optimal journaling for continuous data replication
US7627687B2 (en) * 2006-09-28 2009-12-01 Emc Israel Development Center, Ltd. Methods and apparatus for managing data flow in a continuous data replication system having journaling
US20080098383A1 (en) * 2006-10-20 2008-04-24 Phonak Ag Method for installing a new version of a hearing-device fitting-software package on a computer system
US7841010B2 (en) * 2007-01-08 2010-11-23 Apple Inc. Software or other information integrity verification using variable block length and selection
US7834784B1 (en) * 2007-01-18 2010-11-16 Cisco Technology, Inc. Data redundancy elimination mechanism including fast lookup of data patterns exhibiting spatial locality
US8768898B1 (en) * 2007-04-26 2014-07-01 Netapp, Inc. Performing direct data manipulation on a storage device
WO2008147973A2 (en) 2007-05-25 2008-12-04 Attune Systems, Inc. Remote file virtualization in a switched file system
US8281298B2 (en) 2007-08-27 2012-10-02 International Business Machines Corporation Evaluating computer driver update compliance
US8548953B2 (en) 2007-11-12 2013-10-01 F5 Networks, Inc. File deduplication using storage tiers
US7958372B1 (en) 2007-12-26 2011-06-07 Emc (Benelux) B.V., S.A.R.L. Method and apparatus to convert a logical unit from a first encryption state to a second encryption state using a journal in a continuous data protection environment
US8041940B1 (en) 2007-12-26 2011-10-18 Emc Corporation Offloading encryption processing in a storage area network
US7840536B1 (en) 2007-12-26 2010-11-23 Emc (Benelux) B.V., S.A.R.L. Methods and apparatus for dynamic journal expansion
US7860836B1 (en) 2007-12-26 2010-12-28 Emc (Benelux) B.V., S.A.R.L. Method and apparatus to recover data in a continuous data protection environment using a journal
US9501542B1 (en) 2008-03-11 2016-11-22 Emc Corporation Methods and apparatus for volume synchronization
US8661428B2 (en) 2008-04-25 2014-02-25 Vmware, Inc. Updating a file using differences and file format therefor
US8738573B2 (en) * 2008-05-23 2014-05-27 Microsoft Corporation Optimistic versioning concurrency scheme for database streams
US7719443B1 (en) 2008-06-27 2010-05-18 Emc Corporation Compressing data in a continuous data protection environment
US8108634B1 (en) 2008-06-27 2012-01-31 Emc B.V., S.A.R.L. Replicating a thin logical unit
US8549582B1 (en) 2008-07-11 2013-10-01 F5 Networks, Inc. Methods for handling a multi-protocol content name and systems thereof
US7882286B1 (en) 2008-09-26 2011-02-01 EMC (Benelux)B.V., S.A.R.L. Synchronizing volumes for replication
US8060714B1 (en) 2008-09-26 2011-11-15 Emc (Benelux) B.V., S.A.R.L. Initializing volumes in a replication system
US8438558B1 (en) 2009-03-27 2013-05-07 Google Inc. System and method of updating programs and data
US9195500B1 (en) 2010-02-09 2015-11-24 F5 Networks, Inc. Methods for seamless storage importing and devices thereof
US8959054B1 (en) * 2010-03-25 2015-02-17 Emc Corporation Methods and apparatus for optimal journaling for continuous data replication
US8392680B1 (en) 2010-03-30 2013-03-05 Emc International Company Accessing a volume in a distributed environment
GB2479916A (en) * 2010-04-29 2011-11-02 Nec Corp Access rights management of locally held data based on network connection status of mobile device
US20110289424A1 (en) * 2010-05-21 2011-11-24 Microsoft Corporation Secure application of custom resources in multi-tier systems
US8332687B1 (en) 2010-06-23 2012-12-11 Emc Corporation Splitter used in a continuous data protection environment
US9672198B2 (en) * 2010-07-02 2017-06-06 M-Files Oy Method, a client device, a server, a computer system and a computer readable medium for reloading an object from a folder arrangement
US8478955B1 (en) 2010-09-27 2013-07-02 Emc International Company Virtualized consistency group using more than one data protection appliance
US8433869B1 (en) 2010-09-27 2013-04-30 Emc International Company Virtualized consistency group using an enhanced splitter
US8335771B1 (en) 2010-09-29 2012-12-18 Emc Corporation Storage array snapshots for logged access replication in a continuous data protection system
US8694700B1 (en) 2010-09-29 2014-04-08 Emc Corporation Using I/O track information for continuous push with splitter for storage device
US9286298B1 (en) 2010-10-14 2016-03-15 F5 Networks, Inc. Methods for enhancing management of backup data sets and devices thereof
US8751656B2 (en) 2010-10-20 2014-06-10 Microsoft Corporation Machine manager for deploying and managing machines
US9075661B2 (en) 2010-10-20 2015-07-07 Microsoft Technology Licensing, Llc Placing objects on hosts using hard and soft constraints
US8799453B2 (en) 2010-10-20 2014-08-05 Microsoft Corporation Managing networks and machines for an online service
US8417737B2 (en) 2010-10-20 2013-04-09 Microsoft Corporation Online database availability during upgrade
US8386501B2 (en) 2010-10-20 2013-02-26 Microsoft Corporation Dynamically splitting multi-tenant databases
US8850550B2 (en) 2010-11-23 2014-09-30 Microsoft Corporation Using cached security tokens in an online service
US8335761B1 (en) 2010-12-02 2012-12-18 Emc International Company Replicating in a multi-copy environment
US9721030B2 (en) 2010-12-09 2017-08-01 Microsoft Technology Licensing, Llc Codeless sharing of spreadsheet objects
CN102053853A (en) * 2010-12-30 2011-05-11 北京像素软件科技股份有限公司 Version updating method of online game
US9280550B1 (en) 2010-12-31 2016-03-08 Emc Corporation Efficient storage tiering
US8886901B1 (en) 2010-12-31 2014-11-11 Emc Corporation Policy based storage tiering
US8244831B1 (en) * 2011-05-23 2012-08-14 Ilesfay Technology Group, LLC Method for the preemptive creation of binary delta information within a computer network
US8843915B2 (en) * 2011-07-28 2014-09-23 Hewlett-Packard Development Company, L.P. Signature-based update management
US9256605B1 (en) 2011-08-03 2016-02-09 Emc Corporation Reading and writing to an unexposed device
GB201115083D0 (en) * 2011-08-31 2011-10-19 Data Connection Ltd Identifying data items
US8898112B1 (en) 2011-09-07 2014-11-25 Emc Corporation Write signature command
US10437678B2 (en) 2011-11-01 2019-10-08 Pure Storage, Inc. Updating an encoded data slice
US11329830B1 (en) 2011-11-01 2022-05-10 Pure Storage, Inc. Dispersed credentials
US10496500B2 (en) 2011-11-01 2019-12-03 Pure Storage, Inc. Preemptively reading extra encoded data slices
US8683286B2 (en) * 2011-11-01 2014-03-25 Cleversafe, Inc. Storing data in a dispersed storage network
CN102404338B (en) * 2011-12-13 2014-08-20 华为技术有限公司 File synchronization method and device
US20130151468A1 (en) * 2011-12-13 2013-06-13 Huawei Technologies Co., Ltd. File synchronization method and device
US9020912B1 (en) 2012-02-20 2015-04-28 F5 Networks, Inc. Methods for accessing data in a compressed file system and devices thereof
EP2820564B1 (en) * 2012-02-29 2019-04-10 Global File Systems Holdings, LLC Stream recognition and filtering
US9223659B1 (en) 2012-06-28 2015-12-29 Emc International Company Generating and accessing a virtual volume snapshot in a continuous data protection system
US10235145B1 (en) 2012-09-13 2019-03-19 Emc International Company Distributed scale-out replication
US9336094B1 (en) 2012-09-13 2016-05-10 Emc International Company Scaleout replication of an application
US9519501B1 (en) 2012-09-30 2016-12-13 F5 Networks, Inc. Hardware assisted flow acceleration and L2 SMAC management in a heterogeneous distributed multi-tenant virtualized clustered system
US9152686B2 (en) * 2012-12-21 2015-10-06 Zetta Inc. Asynchronous replication correctness validation
US9152643B2 (en) * 2012-12-21 2015-10-06 Zetta Inc. Distributed data store
US9152642B2 (en) * 2012-12-21 2015-10-06 Zetta, Inc. Systems and methods for on-demand data storage
US10375155B1 (en) 2013-02-19 2019-08-06 F5 Networks, Inc. System and method for achieving hardware acceleration for asymmetric flow connections
US9554418B1 (en) 2013-02-28 2017-01-24 F5 Networks, Inc. Device for topology hiding of a visited network
US9110914B1 (en) 2013-03-14 2015-08-18 Emc Corporation Continuous data protection using deduplication-based storage
US8996460B1 (en) 2013-03-14 2015-03-31 Emc Corporation Accessing an image in a continuous data protection using deduplication-based storage
US9383937B1 (en) 2013-03-14 2016-07-05 Emc Corporation Journal tiering in a continuous data protection system using deduplication-based storage
US9696939B1 (en) 2013-03-14 2017-07-04 EMC IP Holding Company LLC Replicating data using deduplication-based arrays using network-based replication
US9244997B1 (en) 2013-03-15 2016-01-26 Emc Corporation Asymmetric active-active access of asynchronously-protected data storage
US9081842B1 (en) 2013-03-15 2015-07-14 Emc Corporation Synchronous and asymmetric asynchronous active-active-active data access
US9152339B1 (en) 2013-03-15 2015-10-06 Emc Corporation Synchronization of asymmetric active-active, asynchronously-protected storage
JP5954738B2 (en) * 2013-03-19 2016-07-20 インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation Computer, system, method and program for performing file backup processing
US9069709B1 (en) 2013-06-24 2015-06-30 Emc International Company Dynamic granularity in data replication
US9087112B1 (en) 2013-06-24 2015-07-21 Emc International Company Consistency across snapshot shipping and continuous replication
US9146878B1 (en) 2013-06-25 2015-09-29 Emc Corporation Storage recovery from total cache loss using journal-based replication
CN104639510B (en) * 2013-11-13 2019-02-01 腾讯科技(深圳)有限公司 Import the method and system of data
US9367260B1 (en) 2013-12-13 2016-06-14 Emc Corporation Dynamic replication system
US9405765B1 (en) 2013-12-17 2016-08-02 Emc Corporation Replication of virtual machines
US9158630B1 (en) 2013-12-19 2015-10-13 Emc Corporation Testing integrity of replicated storage
US9189339B1 (en) 2014-03-28 2015-11-17 Emc Corporation Replication of a virtual distributed volume with virtual machine granualarity
US10613789B1 (en) * 2014-03-31 2020-04-07 EMC IP Holding Company LLC Analytics engine using consistent replication on distributed sites
US10082980B1 (en) 2014-06-20 2018-09-25 EMC IP Holding Company LLC Migration of snapshot in replication system using a log
US9274718B1 (en) 2014-06-20 2016-03-01 Emc Corporation Migration in replication system
US9619543B1 (en) 2014-06-23 2017-04-11 EMC IP Holding Company LLC Replicating in virtual desktop infrastructure
US10324798B1 (en) 2014-09-25 2019-06-18 EMC IP Holding Company LLC Restoring active areas of a logical unit
US10101943B1 (en) 2014-09-25 2018-10-16 EMC IP Holding Company LLC Realigning data in replication system
US10437783B1 (en) 2014-09-25 2019-10-08 EMC IP Holding Company LLC Recover storage array using remote deduplication device
US9529885B1 (en) 2014-09-29 2016-12-27 EMC IP Holding Company LLC Maintaining consistent point-in-time in asynchronous replication during virtual machine relocation
US9910621B1 (en) 2014-09-29 2018-03-06 EMC IP Holding Company LLC Backlogging I/O metadata utilizing counters to monitor write acknowledgements and no acknowledgements
US10268698B2 (en) * 2014-11-21 2019-04-23 Adobe Inc. Synchronizing different representations of content
US9600377B1 (en) 2014-12-03 2017-03-21 EMC IP Holding Company LLC Providing data protection using point-in-time images from multiple types of storage devices
US10496487B1 (en) 2014-12-03 2019-12-03 EMC IP Holding Company LLC Storing snapshot changes with snapshots
US9405481B1 (en) 2014-12-17 2016-08-02 Emc Corporation Replicating using volume multiplexing with consistency group file
US10146752B2 (en) 2014-12-31 2018-12-04 Quantum Metric, LLC Accurate and efficient recording of user experience, GUI changes and user interaction events on a remote web document
US9632881B1 (en) 2015-03-24 2017-04-25 EMC IP Holding Company LLC Replication of a virtual distributed volume
US10296419B1 (en) 2015-03-27 2019-05-21 EMC IP Holding Company LLC Accessing a virtual device using a kernel
US9411535B1 (en) 2015-03-27 2016-08-09 Emc Corporation Accessing multiple virtual devices
US9678680B1 (en) 2015-03-30 2017-06-13 EMC IP Holding Company LLC Forming a protection domain in a storage architecture
US10834065B1 (en) 2015-03-31 2020-11-10 F5 Networks, Inc. Methods for SSL protected NTLM re-authentication and devices thereof
US10484179B1 (en) * 2015-03-31 2019-11-19 EMC IP Holding Company LLC Data consistency in an encrypted replication environment
US10853181B1 (en) 2015-06-29 2020-12-01 EMC IP Holding Company LLC Backing up volumes using fragment files
EP3323053B1 (en) * 2015-07-16 2021-10-20 Quantum Metric, Inc. Document capture using client-based delta encoding with server
US9448893B1 (en) * 2015-08-26 2016-09-20 Zetta, Inc. Asynchronous replication correctness validation
US9959061B1 (en) * 2015-09-30 2018-05-01 EMC IP Holding Company LLC Data synchronization
US10860310B2 (en) 2015-09-30 2020-12-08 Apple Inc. Software updating
CN105426398A (en) * 2015-10-29 2016-03-23 小米科技有限责任公司 Information processing method and apparatus
US9684576B1 (en) 2015-12-21 2017-06-20 EMC IP Holding Company LLC Replication using a virtual distributed volume
US10235196B1 (en) 2015-12-28 2019-03-19 EMC IP Holding Company LLC Virtual machine joining or separating
US10067837B1 (en) 2015-12-28 2018-09-04 EMC IP Holding Company LLC Continuous data protection with cloud resources
US10133874B1 (en) 2015-12-28 2018-11-20 EMC IP Holding Company LLC Performing snapshot replication on a storage system not configured to support snapshot replication
US10404698B1 (en) 2016-01-15 2019-09-03 F5 Networks, Inc. Methods for adaptive organization of web application access points in webtops and devices thereof
US10235087B1 (en) 2016-03-30 2019-03-19 EMC IP Holding Company LLC Distributing journal data over multiple journals
US10579282B1 (en) 2016-03-30 2020-03-03 EMC IP Holding Company LLC Distributed copy in multi-copy replication where offset and size of I/O requests to replication site is half offset and size of I/O request to production volume
US10152267B1 (en) 2016-03-30 2018-12-11 Emc Corporation Replication data pull
US10235060B1 (en) 2016-04-14 2019-03-19 EMC IP Holding Company, LLC Multilevel snapshot replication for hot and cold regions of a storage system
US10572245B1 (en) 2016-08-30 2020-02-25 Amazon Technologies, Inc. Identifying versions of running programs using signatures derived from object files
US10235090B1 (en) 2016-09-23 2019-03-19 EMC IP Holding Company LLC Validating replication copy consistency using a hash function in a storage system
US10146961B1 (en) 2016-09-23 2018-12-04 EMC IP Holding Company LLC Encrypting replication journals in a storage system
US10019194B1 (en) 2016-09-23 2018-07-10 EMC IP Holding Company LLC Eventually consistent synchronous data replication in a storage system
US10235091B1 (en) 2016-09-23 2019-03-19 EMC IP Holding Company LLC Full sweep disk synchronization in a storage system
US10210073B1 (en) 2016-09-23 2019-02-19 EMC IP Holding Company, LLC Real time debugging of production replicated data with data obfuscation in a storage system
US10412198B1 (en) 2016-10-27 2019-09-10 F5 Networks, Inc. Methods for improved transmission control protocol (TCP) performance visibility and devices thereof
US10567492B1 (en) 2017-05-11 2020-02-18 F5 Networks, Inc. Methods for load balancing in a federated identity environment and devices thereof
US11223689B1 (en) 2018-01-05 2022-01-11 F5 Networks, Inc. Methods for multipath transmission control protocol (MPTCP) based session migration and devices thereof
US10833943B1 (en) 2018-03-01 2020-11-10 F5 Networks, Inc. Methods for service chaining and devices thereof
US11290253B2 (en) * 2020-02-14 2022-03-29 Gideon Samid Document management cryptography
WO2023051573A1 (en) * 2021-09-28 2023-04-06 潍柴动力股份有限公司 Method and apparatus for generating ini file, computer device, and medium

Family Cites Families (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5008853A (en) 1987-12-02 1991-04-16 Xerox Corporation Representation of collaborative multi-user activities relative to shared structured data objects in a networked workstation environment
US5479654A (en) * 1990-04-26 1995-12-26 Squibb Data Systems, Inc. Apparatus and method for reconstructing a file from a difference signature and an original file
JPH06274384A (en) 1993-03-22 1994-09-30 N T T Data Tsushin Kk Extracting/updating device of execution file difference and extracting method for execution file difference
US5502817A (en) 1993-04-02 1996-03-26 University Research Foundation, Inc. Ultra high speed data collection, processing and distribution ring with parallel data paths between nodes
WO1994025913A2 (en) 1993-04-30 1994-11-10 Novadigm, Inc. Method and apparatus for enterprise desktop management
US5835911A (en) 1994-02-08 1998-11-10 Fujitsu Limited Software distribution and maintenance system and method
US5913032A (en) 1994-04-04 1999-06-15 Inprise Corporation System and methods for automatically distributing a particular shared data object through electronic mail
WO1996004606A1 (en) 1994-07-29 1996-02-15 Tokyo Gas Co., Ltd. Figure data transmission system
US5664207A (en) 1994-12-16 1997-09-02 Xcellenet, Inc. Systems and methods for automatically sharing information among remote/mobile nodes
US5729735A (en) 1995-02-08 1998-03-17 Meyering; Samuel C. Remote database file synchronizer
US5694596A (en) 1995-05-25 1997-12-02 Kangaroo, Inc. On-line database updating network system and method
US5845077A (en) * 1995-11-27 1998-12-01 Microsoft Corporation Method and system for identifying and obtaining computer software from a remote computer
US5864837A (en) * 1996-06-12 1999-01-26 Unisys Corporation Methods and apparatus for efficient caching in a distributed environment
US5890164A (en) * 1996-06-24 1999-03-30 Sun Microsystems, Inc. Estimating the degree of change of web pages
US5787247A (en) * 1996-07-12 1998-07-28 Microsoft Corporation Replica administration without data loss in a store and forward replication enterprise
US6012087A (en) * 1997-01-14 2000-01-04 Netmind Technologies, Inc. Unique-change detection of dynamic web pages using history tables of signatures
AU6151598A (en) * 1997-02-11 1998-08-26 Connected Corporation File comparison for data backup and file synchronization
US6014135A (en) 1997-04-04 2000-01-11 Netscape Communications Corp. Collaboration centric document processing environment using an information centric visual user interface and information presentation method
US6073007A (en) 1997-07-24 2000-06-06 Qualcomm Incorporated Wireless fleet communications system for providing separable communications services
US6058428A (en) * 1997-12-05 2000-05-02 Pictra, Inc. Method and apparatus for transferring digital images on a network
US6151708A (en) * 1997-12-19 2000-11-21 Microsoft Corporation Determining program update availability via set intersection over a sub-optical pathway
US6161125A (en) * 1998-05-14 2000-12-12 Sun Microsystems, Inc. Generic schema for storing configuration information on a client computer
US6574657B1 (en) * 1999-05-03 2003-06-03 Symantec Corporation Methods and apparatuses for file synchronization and updating using a signature list

Also Published As

Publication number Publication date
WO2000067119A3 (en) 2001-04-26
US6574657B1 (en) 2003-06-03
WO2000067119A2 (en) 2000-11-09
US20030200207A1 (en) 2003-10-23
US6738799B2 (en) 2004-05-18

Similar Documents

Publication Publication Date Title
US6574657B1 (en) Methods and apparatuses for file synchronization and updating using a signature list
US6654746B1 (en) Methods and apparatuses for single-connection file synchronization workgroup file update
US10331755B2 (en) Transport and administration model for offline browsing
US6694335B1 (en) Method, computer readable medium, and system for monitoring the state of a collection of resources
KR100994139B1 (en) Method and apparatus for synchronizing how data is stored in different data stores
US6596030B2 (en) Identifying changes in on-line data repositories
US7519726B2 (en) Methods, apparatus and computer programs for enhanced access to resources within a network
US6029164A (en) Method and apparatus for organizing and accessing electronic mail messages using labels and full text and label indexing
CA2457511C (en) Method, apparatus, and user interface for managing electronic mail and alert messages
US6615405B1 (en) Method and system for distributing and maintaining software across a computer network
US6189026B1 (en) Technique for dynamically generating an address book in a distributed electronic mail system
US6675205B2 (en) Peer-to-peer automated anonymous asynchronous file sharing
US7873353B2 (en) Method and system for accessing applications and data, and for tracking of key indicators on mobile handheld devices
US6944658B1 (en) Content notification method, product, and apparatus
US20040133629A1 (en) Methods, systems and devices for automated web publishing and distribution
US20020078102A1 (en) Method and system for customized modification and presentation of remotely saved web content
US20060248129A1 (en) Method and device for managing unstructured data
EP0886227B1 (en) Full-text indexed mail repository
US20030065786A1 (en) Method and system to access address books
US20060168325A1 (en) Control of a copy of an original document cached on a remote client computer
EP1407372A2 (en) Method for distributing large files to multiple recipients
WO2002065359A1 (en) Electronic information management system
US20050071754A1 (en) Pushing information to distributed display screens
WO2002088909A2 (en) Methods, systems and devices for automated web publishing and distribution
Williams Application delivery on a grand scale

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A2

Designated state(s): CA

AL Designated countries for regional patents

Kind code of ref document: A2

Designated state(s): AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE

121 Ep: the epo has been informed by wipo that ep was designated in this application
DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
AK Designated states

Kind code of ref document: A3

Designated state(s): CA

AL Designated countries for regional patents

Kind code of ref document: A3

Designated state(s): AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE

AK Designated states

Kind code of ref document: C2

Designated state(s): CA

AL Designated countries for regional patents

Kind code of ref document: C2

Designated state(s): AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE

COP Corrected version of pamphlet

Free format text: PAGES 1/12-12/12, DRAWINGS, REPLACED BY NEW PAGES 1/12-12/12; DUE TO LATE TRANSMITTAL BY THE RECEIVING OFFICE

122 Ep: pct application non-entry in european phase