`UNIFIED PATENTS
`
`EXHIBIT 1001
`
`Unified Patents Exhibit 1001
`Pg. 1
`
`
`
`(12) United States Patent
`(10) Patent N0.:
`US 6,738,799 132
`
`Dickenson
`(45) Date of Patent:
`*May 18, 2004
`
`U8006738799B2
`
`(54) METHODS AND APPARATUSES FOR FILE
`SYNCHRONIZATION AND UPDATING
`
`(75)
`
`USING A SIGNATURE LIST
`Inventor: Peter Dickensnn, Williamsburg, VA
`US
`(
`)
`(73) Assignee: Symantee Corporation, Cupertino, CA
`(U5)
`
`( * )
`
`NOIiCCZ
`
`Subject t0 any disclaimer, the term 0f IhiS
`patent is extended or adjusted under 35
`U.S.C. 154(b) by 0 days.
`
`5,794,258 A
`5,819,274 /\
`
`8/1998 Ishikawa et a1.
`10/1998 JflCkS‘m; JR
`
`.
`
`
`(List continued on next page.)
`FOREIGN PATENT DOCUMENTS
`94/23377 A1
`10/1994
`94/23923 A1
`11/1994
`OTHER PUBLICATIONS
`
`WO
`WO
`
`Schneier, B., “OneiWay Hash Functions,” Dr. Dobb’s Jour—
`nal, vol, 16, N0. 9, pp. 148—151 (Sept. 1991),
`.
`.
`(List continued on next page.)
`
`This patent is 51113.19“ to a terminal dis-
`claimer.
`
`Primary Exanliru?r4Bharat Barot
`(74) Attorney, Agent, or Firm—Fliesler Meyer LLP
`
`(63)
`
`(21) Appl, No.: 10/452,156
`(22) Filed:
`Jun. 2, 2003
`.
`.
`.
`PFIOI‘ Publication Data
`US 2003/0200207 A1 Oct 23 2003
`.
`’
`Related US. Application Data
`
`(63) Continuation ofapplication No. 09/303,958, filed on May 3,
`1999, now Pat. No. 6,574,657.
`1111. (:17 ................................................ G06F 15/16
`(51)
`(52) U'S' (’1' """""""""""" 70943375079033$7£7354/2315;
`/“‘ ’
`_
`’
`’
`7‘
`
`"‘77(,))9'/,2)00_‘037
`(58) Fleld Of Search 7
`(709/‘16—‘1/9’ 2'29’ 231—3" 35—2331
`717/10712’ 714/677’ 707/1’ 8710’ 20(L204
`References Cited
`US. PATENT DOCUMENTS
`
`4/1991 Bly et a].
`345/751
`......
`
`12/1997 Campbell
`.....
`709/215
`
`3/1998 Meyering .....
`707/10
`
`.. 717/11
`5/1998 Tanimura
`
`709/220
`7/1998 Norin et al.
`
`5,008,853 A
`5,694,596 A
`5,729,735 A
`5,752,039 A
`5,787,247 A
`
`(56)
`
`ABSTRACT
`(57)
`Aserver generates an update file for transmission to a client
`that permits the client 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 searches an earlier version of
`a signature list [or an old segment signature which matches
`a new segment signature corresponding to the segment.
`When a match is detected, the server writes a command in
`the update file for the client to copy an old segment of the
`$121,: 3333 9331;133:113: 3:311 first-11511531151333:g:
`tion file, where the old segment corresponds to the segment
`for which a match was detected. When no match is detected,
`the server writes a command into the update file for the
`client to insert a new segment of the current version of the
`subscription file into the client’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. The update file is only generated when the server
`determines the subscription file has changed. The server
`periodically monitors the subscription file to determine if it
`has been altered before generating an update file,
`
`46 Claims, 12 Drawing Sheets
`
`
`
`N0 MATCH
`" :oMPARE NEW SEGMEM siemruFE
`
`TU 0L] SEGMENT SiGNATURE
`T
` “ 1002
`
`
`
`MATCH
`v
`fi WFITI COMMAND 1N U°DATE i'iLE
`,7 1003
`TD COPY OLD SEGMENT
`
`——.-— (71004
`LASi ULD Sill/Ht! SluNA/LRE
`1N 0L: SIGNATURE HST.
`
`
`
`
`
`NEXT ULD SEGMENT SiGNATURE
`
`
`
`
`
`
`
`"
`
`,
`
`WRITE CUMMAND iN UPDATE :iLE
`T0 IASIHTNEWSIGii/ENT
`
`,_\
`
`_
`
`‘
`
`““3
`
`N NEW SiGVATURE usu
`LAST 115w SEGMEM SIGNATURE
`m
`,
`7L
`\iEKT NEW SEGMEN' summit
`
`was
`«r
`’ mm
`9 b
`_ mm
`
`I / ma
`
`Unified Patents Exhibit 1001
`
`Pg. 2
`
`Unified Patents Exhibit 1001
`Pg. 2
`
`
`
`US 6,738,799 B2
`
`Page 2
`
`US. PATENT DOCUMENTS
`
`OTHER PURUCATTONS
`
`
`
`11/1998 Nakagawa et a].
`.
`.. 707/203
`5,835,911 A
`1/1909 Maimone ~~~~~~~~~~~~~~~~ 707/1
`5,864,837 A
`“ 70//:201
`3/1999 Nielsen
`5’8?Q*1§4 A
`
`.. 709/213
`0/1999 Sch‘vxvlartz et a1.
`5,913,032 A
`
`.....
`.. 709,218
`1/2000 FieiVald et a1.
`0,012,087 A
`.
`,. 709/203
`1/2000 Fernandes
`6,014,133 A
`5/2000 Wang Ct 211.
`709/232
`6,058,428 A
`6/2000 Doyle ......
`.. 709/203
`6,073,007 A
`8/2000 Cane et a].
`.. 707/204
`6,101,507 A
`
`11/2000 Pedrizelti et a .
`. 717/11
`6,151,708 A
`12/2000 Traversal ct al.
`709/203
`6,161,125 A
`6,327,617 B1 * 12/2001 Fawcett
`709/219
`6,574,657 B1 *
`6/2003 Dickinson .. 709/203
`
`
`
`Diem, D., “Wireless Data and Minimum Airtime Software,”
`Dr. Dobb’s Journal, pp. 1714 (Dec. 1993).
`Cnppieters, K, “A Cross—Platform Binary Diff,” Dr. Dobb’s
`Journal, PP. 1_7 (May 1995).
`“K .
`.
`,,
`.
`.
`ceplng Road Warrlors on Track, Mlnd Your Own Bu31-
`M M‘
`1’ 131.111
`UK
`49
`1
`Pl‘
`_
`1 71 N
`6
`Ems
`“w u 15 mg,
`> V” ~ ~ ,
`“‘61
`0‘
`, P‘
`(Jljll 1998)
`Freed, Les “Symantec Mobile Update," First Looks section
`of PC Magazine Online, http://WWW.Zdnet.com/pcmag/first—
`looks,/9806/f980610a.htm (Jun. 10, 1998)
`
`* cited by examiner
`
`Unified Patents Exhibit 1001
`
`Pg. 3
`
`Unified Patents Exhibit 1001
`Pg. 3
`
`
`
`US. Patent
`
`May 18, 2004
`
`Sheet 1 0f 12
`
`US 6,738,799 B2
`
`DATA
`
`ADDRESS
`
`CONTROL
`
`102
`
`103
`
`105
`
`RAM =.
`/
`l!_ DlSPLAY
`101 ll— MONITOR
`ROM =!
`
`(II.
`
`106
`
`
`
`107
`
`KEYBOARD
`
`
`
`_
`
`I—
`
`108
`
`II
`ll
`I — INTERFACE
`
`.—
`
`NETWORK
`
`.
`
`—
`HARD —-
`DISK
`
`109
`
`100
`
`FIG.1
`
`Unified Patents Exhibit 1001
`
`Pg. 4
`
`Unified Patents Exhibit 1001
`Pg. 4
`
`
`
`US. Patent
`
`May 18, 2004
`
`Sheet 2 0f 12
`
`US 6,738,799 B2
`
`new
`
`
`
`£32200mm>mmm
`
`iiipiiil
`
`am
`
`
`
`mamaxmogfiz
`
`
`
`mmfiszooF7530
`
`SN
`
`Iliulill
`
`Unified Patents Exhibit 1001
`
`Pg. 5
`
`Unified Patents Exhibit 1001
`Pg. 5
`
`
`
`
`US. Patent
`
`May 18, 2004
`
`Sheet 3 0f 12
`
`US 6,738,799 B2
`
`301302303304305306
`311
`312313314315313
`
`FIG.3
`
`Unified Patents Exhibit 1001
`
`Pg. 6
`
`Unified Patents Exhibit 1001
`Pg. 6
`
`
`
`US. Patent
`
`May 18, 2004
`
`Sheet 4 0f 12
`
`US 6,738,799 B2
`
`
`
`Unified Patents Exhibit 1001
`
`Pg. 7
`
`Unified Patents Exhibit 1001
`Pg. 7
`
`
`
`US. Patent
`
`May 18, 2004
`
`Sheet 5 0f 12
`
`US 6,738,799 B2
`
`START
`
`501
`
`READ SUBSCRIPTION FILE
`FROM NETWORK DRIVE
`
`NEW SUBSCRIPTION FILE?
`
`EY S
`DETERMINE MOST EFFICIENT SEGMENT
`DELIMITER
`
`RETRIEVE DELIMITER
`
`SCAN FILE FOR DELIMITER OR END OF FILE
`TO DETERMINE NEXT SEGMENT
`
`COMPUTE SIGNATURE FOR SEGMENT
`
`ADD SIGNATURE TO SIGNATURE LIST
`
`SEGMENT ENDS WITH DELIMITER?
`
`NO
`
`DONE
`
`510
`
`FIG. 5
`
`502
`
`50
`
`3
`
`NO
`
`504
`
`505
`
`065
`
`507
`
`508
`
`509
`YES
`
`500
`—
`
`Unified Patents Exhibit 1001
`
`Pg. 8
`
`Unified Patents Exhibit 1001
`Pg. 8
`
`
`
`ILSIhmnt
`
`Mwmam4
`
`%%MOH2
`
`IB6J%J%B2
`
`601602603604605606607
`611
`612613614615616617
`
`Unified Patents Exhibit 1001
`
`Pg. 9
`
`Unified Patents Exhibit 1001
`Pg. 9
`
`
`
`E22205ENE/Gum
`
`mumEEEm
`
`Emma
`
`Ammvmfiw
`
`55295
`
`
`
`
` Ammvmflm
`
`US. Patent
`
`May 18, 2004
`
`Sheet 7 0f 12
`
`US 6,738,799 B2
`
`
`
`29203
`
`Unified Patents Exhibit 1001
`
`Pg. 10
`
`Unified Patents Exhibit 1001
`Pg. 10
`
`
`
`US. Patent
`
`May 18, 2004
`
`Sheet 8 0f 12
`
`US 6,738,799 B2
`
`800
`
`FIG.8
`
`Unified Patents Exhibit 1001
`
`Pg. 11
`
`Unified Patents Exhibit 1001
`Pg. 11
`
`
`
`US. Patent
`
`May 18, 2004
`
`Sheet 9 0f 12
`
`US 6,738,799 B2
`
`m_2<m
`
`mo
`
`mo
`
`9.0:
`
`m:>_<m
`
`$07310
`
`Sm
`
`mom
`
`Unified Patents Exhibit 1001
`
`Pg. 12
`
`Unified Patents Exhibit 1001
`Pg. 12
`
`
`
`US. Patent
`
`May 18, 2004
`
`Sheet 10 0f 12
`
`US 6,738,799 B2
`
`START
`
`1001
`
`COMPARE NEW SEGMENT SIGNATURE
`T0 OLD SEGMENT SIGNATURE
`
`NO MATCH
`
`1002
`
`MATCH
`
`
`WRITE COMMAND IN UPDATE FILE
`TO COPY DLD SEGMENT
`
`YES
`
`LAST OLD SEGMENT SIGNATURE
`IN OLD SIGNATURE LIST?
`
`N0
`
`NEXT OLD SEGMENT SIGNATURE
`
`1003
`
`1004
`
`1005
`
`WRITE COMMAND IN UPDATE FILE
`T0 INSERT NEW SEGMENT
`
`1005
`
`YES
`1009
`LAST NEW SEGMENT SIGNATURE b
`DONE
`N0
`1007
`
`IN NEW SIGNATURE LIST?
`
`NEXT NEW SEGMENT SIGNATURE
`
`1008
`
`FIG. 10
`
`m
`
`Unified Patents Exhibit 1001
`
`Pg. 13
`
`Unified Patents Exhibit 1001
`Pg. 13
`
`
`
`US. Patent
`
`May 18, 2004
`
`Sheet 11 0f 12
`
`US 6,738,799 B2
`
`UPDATE FILE FOR <F|LENAME>
`
`COPY
`INSERT
`
`SIZEA1
`LOC(A1)
`<CONTENTSOFBZ>
`
`“01
`“02
`
`1103
`
`1104
`.1105
`1106
`
`
`
`COPY
`
`INSERT
`INSERT
`COPY
`COPY
`
`LOC(A3)
`
`SIZE(A3)
`
`<CONTENTSOFB4>
`<CONTENTSOFB5>
`LOC(A5)
`SIZE A5
`LOC( A6)
`SIZE(/-\)6
`
`1107
`
`FIG. 11
`
`Unified Patents Exhibit 1001
`
`Pg. 14
`
`Unified Patents Exhibit 1001
`Pg. 14
`
`
`
`US. Patent
`
`m.
`
`76,
`
`2
`
`m,52%E>EwwE:5:Mtfiz<>>\
`
`m8?33
`
`2EMa?SS25xuEcaézéageaE>Em$>Ew$25mmoNFKa:3:m3:
`
`mofimofi
`
`mom?New?momw
`
`
`
`m3:m3:m.__u_
`
`
`
`
`
`mm>mmmmm>mmmmm>mmm
`
`B.wIllNFGE7I'llmwas?
`EosmmBOSE8%
`
`
`
`mnew?warmrmwmwlwflflm—moNFNP:NFDar
`
`
`
`
`
`Unified Patents Exhibit 1001
`
`Pg. 15
`
`Unified Patents Exhibit 1001
`Pg. 15
`
`
`
`
`US 6,738,799 BZ
`
`1
`METHODS AND APPARATUSES FOR FILE
`SYNCHRONIZATION AND UPDATING
`USING A SIGNATURE LIST
`
`PRIORITY CLAIMS
`
`This application is a continuation of US. patent applica-
`tion Ser. No. 09/303,958, filed May 3, 1999 (now US. Pat.
`No. 6,574,657).
`CROSS-REFERENCE TO RELATED
`APPLICATION
`
`This Application is related to the following application,
`which is incorporated herein by reference: U.S. patent
`application Ser. No. 09/304,295, entitled “Methods and
`Apparatuses for Single Connection File Synchronization
`and Workgroup File Update”, filed May 3, [999 (now US.
`Pat. No. 6,654,746).
`BACKGROUND OF THE INVENTION
`
`1. Field of the Invention
`
`invention relates to the field of personal
`The present
`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 effec-
`tive 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 auto—
`matically delivering user-requested information electroni-
`cally. It is not an application, but merely a function or feature
`in a product. There are clear distinctions between the three
`ditferent 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 surf-
`ing 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
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`40
`
`anan
`
`60
`
`65
`
`2
`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 — IE 4.0 Active Desktop and Com-
`municator’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 corpora—
`tions 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 momen-
`tum 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 impor-
`tance and potential of “Electronic Software Distribution”
`(ESI) 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
`ditferent 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 prod—
`ucts across the corporate network, near-simultaneous
`deployment is imperative. Companies that do not use some
`form of software push technologies require dedicated indi-
`viduals to make the rounds updating software by reinstalling
`or applying patches for each personal computer and laptop.
`Rather than aggregating and displaying information, soft-
`ware push transparently delivers one specific piece of infor-
`mation 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 impor—
`tant 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 deli ’—
`ery”0r EDD. It deals with delivering 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 WordPerfeet).
`These are the types of documents for which companies
`currently invest millions of dollars in file servers and intra-
`net technologjes in order to share among respective work—
`groups. The important distinction here between content and
`
`Unified Patents Exhibit 1001
`
`Pg. 16
`
`Unified Patents Exhibit 1001
`Pg. 16
`
`
`
`US 6,738,799 BZ
`
`3
`that EDD delivers data that
`document push is the fact
`currently exists in its native format within corporations and
`whose value is clearly understood by the company, M18, 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 con—
`nections to the network via dial-up networking technologies,
`then search and browse the network over an often slow,
`unreliable connection. The productivity losses and frustra-
`tions are simply multiplied.
`As is apparent from the above discussion, a need exists for
`an efficient and effective mechanism for allowing a com—
`puter user to have copies of the current versions of network
`files on his client computer.
`SUMMARY OF THE INVENTION
`
`10
`
`15
`
`20
`
`25
`
`30
`
`4
`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 com—
`mand is negligible in comparison to the size of the segment
`to which it pertains. This savings reduces the size of he
`update file, and thus reduces the connection time in com—
`municating the update file to the client computer.
`When no match is detected in the earlier version of he
`signature list, the server computer writes a command into he
`update file for the client computer to insert a new segment
`of the current version of the subscription file into the client
`computer's copy of the current version of the subscription
`file, where the new segment of the current version of he
`subscription file is written into the update file. Because he
`new segment of the current version of the subscription 11c
`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 he
`update file.
`When the update file is completed, the server computer
`transmits the update file to the client computer as an execut—
`able attachment via electronic mail. The update file is only
`generated when the server computer determines that the
`subscription file has changed. The server computer periodi-
`cally 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.
`invention are
`These and other features of the present
`apparent from the Drawings which are described in narrative
`form in the Detailed Description of the Invention.
`BRIEF DESCRIPTION OF THE DRAWINGS
`
`
`
`FIG. 1 illustrates a general purpose computer architecture
`suitable for implementing the methods according to the
`present invention.
`FIG. 2 illustrates a network of computers suitable for
`implementing the methods according to the present inven-
`tion.
`FIG. 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.
`FIG. 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 FIG. 3.
`FIG. 5 is a flow chart illustrating a method according to
`the present invention of building a signature list correspond-
`ing to a subscription file,
`FIG. 6 illustrates a current version of the subscription file
`shown in FIG. 3 broken into seven segments and the
`signatures corresponding to the seven segments suitable for
`use with the methods according to the present invention.
`FIG. 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 FIG, 6.
`
`Unified Patents Exhibit 1001
`
`Pg. 17
`
`35
`
`40
`
`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 inven-
`tion 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 notifi—
`cations 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 com—
`puter 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 subscrip-
`tion 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 computers
`copy of the current version of the subscription file, where the
`old segment corresponds to the segment for which a match
`
`anan
`
`60
`
`65
`
`Unified Patents Exhibit 1001
`Pg. 17
`
`
`
`US 6,738,799 BZ
`
`.-
`3
`FIG. 8 illustrates the correspondence of the current ver—
`sion 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.
`FIG. 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.
`FIG. 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 FIG. 10
`applied to the earlier and current versions of the signature
`list illustrated in FIGS. 4 and 7, respectively.
`FIG. 12 illustrates a large and diverse network of com-
`puters 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 h¢ve 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 con-
`necting 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). S0 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‘.7 It’s easier”. The simplicity
`of using electronic mail as a single connection to a Wide
`
`
`
`6
`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 docu-
`ment push, file size has to be addressed, first and foremost.
`Electronic Document Delivery involves more than just the
`)hysical process of sending out documents automatically.
`The indiscriminate sending or downloading of full-size files
`alaces 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
`0 both MIS and users.
`
`For truly effective Document Delivery, server-based intel-
`igence is required. It is needed for detecting and sending
`changed files, but also as well as for detecting what changes
`iave 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
`ile again. If only a single slide in a 50-slide presentation
`changes, it does not make sense to re-send the entire 2 MB
`ile.
`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 deliv-
`ery.
`invention is
`Mobile Update according to the present
`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/see 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 referrer] to as “subscrib—
`ing”. Users browse to the network directory where the
`desired files are stored and select either individual files or
`‘olders (excluding sub-folders). Once selected, the user then
`determines the polling or monitoring interval for the server
`0 check for changes and also what to do when changes
`occur, i.e., package and send file changes or simple notifi—
`cation. Once the subseription is set up, the information is
`aassed to the server and stored in its database.
`The Mobile Update Server according to the present inven-
`ion acts as an “electronic assistant” 011 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,
`hen decides whether it needs to deliver the actual changes
`or simply notify send notice of a file change.
`FIG. 1 illustrates a general purpose computer system 100
`suitable for implementing the methods according to the
`aresent
`invention, The general purpose computer system
`100 includes at least a microprocessor 104. The general
`
`
`
`10
`
`15
`
`20
`
`25
`
`30
`
`35
`
`40
`
`‘J\‘J\
`
`60
`
`65
`
`Unified Patents Exhibit 1001
`
`Pg. 18
`
`Unified Patents Exhibit 1001
`Pg. 18
`
`
`
`US 6,738,799 BZ
`
`7
`purpose computer may also include random access memory
`102, ROM memory 103, a keyboard 107, and a modern 108.
`All of the elements of the general purpose computer 100 are
`optionally tied together by a common bus 101 for transport-
`ing data between the various elements. The bus 101 typically
`includes data, address, and control signals. Although the
`general purpose computer 100 illustrated in FIG. 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 con—
`nects 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 micropro—
`cessor 102 and RAM 102 are connected to both the first data
`bus 101 and the second data bus (not shown), and commu-
`nication 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 FIG. 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 inven—
`tion. A client computer 201 is connected to a network drive
`202 through link 205. Aserver 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
`facility 204 through link 209. Client computer 201 is logi-
`cally connected to the electronic mail facility 204 through
`link 208. The logical connections 207, 208, and 209 are not
`necessarily physical connections, For example, the client
`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 connec