`Dickenson
`
`METHODS AND APPARATUSES FOR FILE
`SYNCHRONIZATION AND UPDATING
`USING A SIGNATURE LIST
`
`Inventor: Peter Dickenson, Williamsburg, VA
`(US)
`
`Assignee: Symantec Corporation, Cupertino, CA
`(US)
`
`1111111111111110111111111111111111,11111111111111111111111110111111
`
`(to) Patent No.: (cid:9)
`(45) Date of Patent: (cid:9)
`
`US 6,738,799 B2
`*May 18, 2004
`
`5,794,258 A
`5,819,274 A
`
`8/1998 Ishikawa et al. (cid:9)
`10/1998 Jackson, Jr. (cid:9)
`
` 345/751
` 707/10
`
`(List continued on next page.)
`
`FOREIGN PATENT DOCUMENTS
`
`WO (cid:9)
`WO (cid:9)
`
`94/23377 Al 10/1994
`94/25923 Al 11/1994
`
`OTHER PUBLICATIONS
`
`Notice: (cid:9)
`
`Subject to any disclaimer, the term of this
`patent is extended or adjusted under 35
`U.S.C. 154(b) by 0 days.
`
`Schneier, B., "One–Way Hash Functions," Dr. Dobb's Jour-
`nal, vol. 16, No. 9, pp. 148-151 (Sept. 1991).
`
`(List continued on next page.)
`
`This patent is subject to a terminal dis-
`claimer.
`
`Primary Examiner----Bharat Barot
`(74) Attorney, Agent, or Firm—Fliesler Meyer LLP
`
`(cid:9) (cid:9)
`
`(21) Appl. No.: 10/452,156
`
`(22) Filed: (cid:9)
`
`(65) (cid:9)
`
`Jun. 2, 2003
`
`Prior Publication Data
`
`US 2003/0200207 Al Oct. 23, 2003
`
`Related U.S. Application Data
`
`(63) Continuation of application No. 09/303,958, filed on May 3,
`1999, now Pat. No. 6,574,657.
`
`(51) Int. C1.7 (cid:9)
`(52) U.S. Cl.
`
` GO6F 15/16
` 709/203; 709/217; 709/219;
`709/229; 707/1; 707/203
` 709/200-203,
`(58) Field of Search (cid:9)
`709/216-219, 229, 231-232, 235-237;
`717/10-12; 714/6-7; 707/1, 8-10, 200-204
`
`(56)
`
`References Cited
`
`U.S. PATENT DOCUMENTS
`
`5,008,853 A (cid:9)
`5,694,596 A (cid:9)
`5,729,735 A (cid:9)
`5,752,039 A (cid:9)
`5,787,247 A (cid:9)
`
`4/1991 Bly et al. (cid:9)
`12/1997 Campbell (cid:9)
`3/1998 Meyering (cid:9)
`5/1998 Tanimura (cid:9)
`7/1998 NorM et al. (cid:9)
`
` 345/751
` 709/215
` 707/10
` 717/11
` 709/220
`
`(57) (cid:9)
`
`ABSTRACT
`
`A server 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 for 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
`client's copy of the earlier version of the subscription file
`into the client's copy of the current version of the subscrip-
`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
`
`START)-/ 1001
`
`COMPARE NEW SEGMENT SIGNATURE
`TO OLD SEGMENT SIGNATURE
`
`1' (cid:9)
`
`MATCH
`
`NO MATCH
`
`1002
`
`WRITE COMMAND IN UPDATE FILE (cid:9)
`TO COPY OLD SEGMENT
`
`i 1003
`
`YES
`
`LAST OLD SEGMENT SIGNATURE
`IN OLD SIGNATURE LIST?
`
`NO
`
`NEXT OLD SEGMENT SIGNATURE
`
`1004
`
`1005
`
`WRITE COMMAND IN UPDATE FILE
`TO INSERT NEW SEGMENT (cid:9)
`
`1006
`
`LAST NEW SEGMENT SIGNATURE
`IN NEW SIGNATURE LIST?
`
`NO
`
`1009
`
`YES, ( DONE
`
`1007
`
`NEXT NEW SEGMENT SIGNATURE
`
`- 1008
`
`1000
`
`Oracle Exhibit 1001, pg. 1
`
`(cid:9)
`(cid:9)
`(cid:9)
`(cid:9)
`(cid:9)
`(cid:9)
`(cid:9)
`
`
`US 6,738,799 B2
`Page 2
`
`U.S. PATENT DOCUMENTS
`
`OTHER PUBLICATIONS
`
`11/1998 Nakagawa et al. (cid:9)
`5,835,911 A
`1/1999 Maimone (cid:9)
`5,864,837 A
`3/1999 Nielsen (cid:9)
`5,890,164 A
`6/1999 Schwartz et al. (cid:9)
`5,913,032 A
`1/2000
`Freivald et al. (cid:9)
`6,012,087 A
`1/2000
`Fernandes (cid:9)
`6,014,135 A
`5/2000 Wang et al. (cid:9)
`6,058,428 A
`6/2000 Doyle (cid:9)
`6,073,007 A
`8/2000 Cane et al. (cid:9)
`6,101,507 A
`11/2000 Pedrizetti et al. (cid:9)
`6,151,708 A
`12/2000 Traversat et al. (cid:9)
`6,161,125 A
`6,327,617 B1 * 12/2001 Fawcett (cid:9)
`6,574,657 B1 * 6/2003 Dickinson (cid:9)
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`
`707/203
`707/1
`707/201
`709/213
`709/218
`709/203
`709/232
`709/203
`707/204
`717/11
`709/203
`709/219
`709/203
`
`Diem, D., "Wireless Data and Minimum Airtime Software,"
`Dr. Dobb's Journal, pp. 1-14 (Dec. 1993).
`Coppieters, K., "A Cross—Platform Binary Diff," Dr. Dobb's
`Journal, pp. 1-7 (May 1995).
`"Keeping Road Warriors on Track," Mind Your Own Busi-
`ness, Market Place Publishing, UK, vol. 21, No. 6, p. 49
`(Jun. 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
`
`Oracle Exhibit 1001, pg. 2
`
`
`
`U.S. Patent (cid:9)
`
`May 18, 2004
`
`Sheet 1 of 12 (cid:9)
`
`US 6,738,799 B2
`
`(cid:9)< DATA
`(cid:9)< ADDRESS
`(cid:9)< CONTROL
`
`r 106
`
`DISPLAY
`MONITOR
`
`102
`
`RAM
`
`(cid:9)•
`
`t (cid:9)
`101 -\_c., (cid:9) D
`
`(cid:9)•
`
`103
`
`ROM
`
`0-
`
`KEYBOARD
`
`•(cid:9)
`
`•(cid:9)
`
`(cid:9)•
`
`±_: 1 1:2___
`
`MODEM
`
`NETWORK
`INTERFACE
`
`K-109
`
`100
`
`104
`
`MICRO
`PROCESSOR
`
`105
`
`HARD
`DISK .......,
`
`FIG. 1
`
`Oracle Exhibit 1001, pg. 3
`
`
`
`U.S. Patent (cid:9)
`
`May 18, 2004
`
`Sheet 2 of 12 (cid:9)
`
`US 6,738,799 B2
`
`1
`1
`1
`1
`1
`1
`
`CC
`uJ
`I-
`=
`0...
`I
`CO
`L ---CD
` C \I
`0 I
`
`C)
`CC
`L_J 1
`CC
`L1.1 I
`C/D
`
`I
`
`(
`CO
`CD
`CV
`
`1"--
`CD
`C\J
`
`.."--, t=1
`
`v:1-
`CV
`
`CV
`---- CD
`CV
`
`NETWORK DRIVE
`
`1
`1
`1
`1
`1
`1
`1
`L
`
`Oracle Exhibit 1001, pg. 4
`
`
`
`U.S. Patent (cid:9)
`
`May 18, 2004
`
`Sheet 3 of 12 (cid:9)
`
`US 6,738,799 B2
`
`b
`
`CD
`C:)
`CO
`
`L---
`
`LC)
`C)
`CO
`
`L
`
`L
`
`LT
`
`L.
`
`T—
`
`CO
`
`cr) <
`
`,L,,2
`
`.1-
`
`czt`n
`
`<"
`
`Tc
`
`CC)
`
`Cf")
`
`n•••••••n
`< (cid:9)
`.f"
`"!--
`CD
` O
`C
`Cl)
`
`Cr)
`
`C....
`—
`
`c-76- (cid:9)
`
`0
`cn
`
`cn
`
`...--..
`-- Q (cid:9)
`
`c...0 -----
`
`"1—
`'1"--
`CO
`
`Cl)
`
`Oracle Exhibit 1001, pg. 5
`
`(cid:9)
`
`
`U.S. Patent (cid:9)
`
`May 18, 2004
`
`Sheet 4 of 12 (cid:9)
`
`US 6,738,799 B2
`
`.zt- LC) CD
`Cn1 Cr)
`
`1
`
`1
`
`1
`
`1
`
`....._,
`7r
`CD
`C/)
`
`C O
`
`..a
`...u,..).
`&I.,
`...._,
`.„7...
`«
`«
`‹
`CD
`CD
`CD
`CD
`CD
`Cl)
`C/)
`C/)
`C/)
`C/)
`
`SEGMENT SIGNATURE
`
`Ce) (cid:9)
`
`-r—LCD
`
`-r—
`
`c\I
`c) co c)
`
`(,,
`
`LI-
`
`cc)
`'.1-•
`< <
`w
`w
`NJ
`r-...i Z
`c75
`(7/5
`
`E(
`
`ZE(
`ZE(
`ZE(
`
`AEI\
`
`LOC(A6)
`LOC(A5)
`LOC(A4)
`LOC(A3)
`LOC(A2)
`LOC(A1)
`
`\
`
`SEGMENT LOCATION
`
`A6
`
`IC)
`
`tv
`A3
`A2
`Al
`
`Oracle Exhibit 1001, pg. 6
`
`(cid:9)
`
`
`U.S. Patent (cid:9)
`
`May 18, 2004
`
`Sheet 5 of 12 (cid:9)
`
`US 6,738,799 B2
`
`START ) (cid:9)
`
` 501
`
`READ SUBSCRIPTION FILE
`FROM NETWORK DRIVE
`
`NEW SUBSCRIPTION FILE?
`
`YES
`
`DETERMINE MOST EFFICIENT SEGMENT
`DELIMITER
`
`RETRIEVE DELIMITER
`
`SCAN FILE FOR DELIMITER OR END OF FILE
`TO DETERMINE NEXT SEGMENT
`
`502
`
`503
`
`NO
`
` 504
`
`505
`
`r- 506
`
`507
`COMPUTE SIGNATURE FOR SEGMENT /-/
`
`ADD SIGNATURE TO SIGNATURE LIST
`
`SEGMENT ENDS WITH DELIMITER?
`
`508
`
`509
`YES
`
`NO
`
`DONE
`
`510
`
`500
`
`FIG. 5
`
`Oracle Exhibit 1001, pg. 7
`
`(cid:9)
`
`
`U.S. Patent (cid:9)
`
`May 18, 2004
`
`Sheet 6 of 12 (cid:9)
`
`US 6,738,799 B2
`
`L
`
`LI-
`
`Li--
`
`L
`
`C:)
`C.0
`
`LA.
`
`O
`Cr)
`
`Cfl
`
`N- co
`
`co
`co
`
`Lc) cc)
`
`.1- cc)
`
`co
`co
`
`CV
`CO
`
`7-
`CO
`
`r--
`CO
`
`(i)
`
`Cl)
`
`L.r)
`
`Cr)
`
`C./)
`
`CNJ
`CO
`
`ETD
`
`ci)
`
`1.r)
`
`4n1"
`
`CO
`
`ci
`
`CV
`
`Oracle Exhibit 1001, pg. 8
`
`
`
`U.S. Patent (cid:9)
`
`May 18, 2004
`
`Sheet 7 of 12 (cid:9)
`
`US 6,738,799 B2
`
`0,..)
`.c=7.sir LC)
`co
`
`LL
`
`1-- CV
`C=I C:)
`N-
`
`LCD 0
`Co
`cY
`0 CD
`
`O O
`ti N-
`ti
`N-
`
`O
`N-
`
`)\li
`
`11
`
`(
`
`....;-_,
`CCI
`CD
`CO
`
`---
`CO
`CD
`C/D
`
`.--..
`CC)
`C-0
`C/)
`
`—
`CO
`CD
`C/)
`
`ci.).-
`CO
`C D
`CID
`
`
`
`CO
`CCI
`C-D
`CJ)
`
`R.
`CC1
`C.D
`UD
`
`...—...
`CCI
`..-........
`NJ
`C/D
`
`R.
`CO
`--...-
`NI
`C/D
`
`SIZE(B5)
`IZE(B4) --/,
`
`ED
`CCI
`.......-.
`NJ
`C/) S
`
`SIZE(B2) -J)
` SIZE(B1)
`
`LOC(B7)
`LOC(B6) -\\\\\
`LOC(B5) -\\\\
`LOC(B4)
`LOC(B3)
`LOC(B2)
`LOC(B1)
`
`N- ca
`
`B6
`
`"zr co LC) ca
`
`-r-
`C7]
`
`C \ I
`CO
`
`0,
`CO
`
`I (cid:9)
`
`SEGMENT SIGNATURE
`
`SEGMENT SIZE]]
`
`SEGMENT LOCATION
`
`CO "1" ``) cc'
`17_
`
`Oracle Exhibit 1001, pg. 9
`
`(cid:9)
`(cid:9)
`
`
`U.S. Patent (cid:9)
`
`May 18, 2004
`
`Sheet 8 of 12 (cid:9)
`
`US 6,738,799 B2
`
`1"*""'
`
`CO
`
`03 I CO
`
`L
`
`L
`
`L
`
`L
`
`L
`
`L
`
`LL!
`
`C/D
`
`LLJ
`
`< C
`
`CI
`LL1
`LO
`<
`=
`(-)
`
`L..1
`
`< VD
`
`C)
`LLI
`C.D
`a
`<
`=
`c-)
`
`I_J
`
`< C/D
`
`r---
`CO
`
`CD
`CO
`
`Lo co
`
`co
`
`CO
`CC1
`
`c\J
`co
`
`1:i-0
`
`Oracle Exhibit 1001, pg. 10
`
`(cid:9)
`
`
`U.S. Patent (cid:9)
`
`May 18, 2004
`
`Sheet 9 of 12 (cid:9)
`
`US 6,738,799 B2
`
`CDc} I
`CY)
`
`LU
`
`C/)
`
`LU
`<
`C/)
`
`CI u_l
`CD
`=
`<
`=
`C-)
`
`1
`
`1....1 n
`=
`
`w
`
`<
`C/)
`
`r
`
`/
`
`r--
`C.D
`
`C f:)
`C_D
`
`Lc,
`C_)
`
`cr
`C_D
`
`Cr)
`CD
`
`M
`LU
`CD
`=
`<
`CV =
`C)
`C_D
`
`"1-
`C-)
`
`<
`C/)
`
`ce)
`C)
`C3)
`
`CO
`<
`
`IC)
`
`cr
`
`CO
`<
`
`C \ I
`<
`
`1—
`
`L
`
`Oracle Exhibit 1001, pg. 11
`
`
`
`U.S. Patent (cid:9)
`
`May 18, 2004
`
`Sheet 10 of 12 (cid:9)
`
`US 6,738,799 B2
`
`( START )--7 1001
`
`COMPARE NEW SEGMENT SIGNATURE
`TO OLD SEGMENT SIGNATURE
`
`MATCH
`
`NO MATCH
`
`1002
`
`WRITE COMMAND IN UPDATE FILE
`TO COPY OLD SEGMENT
`
`.-- 1003
`
`YES
`
`LAST OLD SEGMENT SIGNATURE
`IN OLD SIGNATURE
`LIST?
`
`NO
`
`NEXT OLD SEGMENT SIGNATURE
`
`1004
`
`/
`
`1005
`
`WRITE COMMAND IN UPDATE FILE
`TO INSERT NEW SEGMENT
`
`•--- 1006
`
`LAST NEW SEGMENT SIGNATURE
`LIST?
`IN NEW SIGNATURE
`
`NO
`
`( 1009
`\
`
`i YES ,
`DONE
`
`4- 1007
`
`NEXT NEW SEGMENT SIGNATURE
`
`1008
`
`FIG. 10
`
`1000
`
`Oracle Exhibit 1001, pg. 12
`
`(cid:9)
`
`
`U.S. Patent (cid:9)
`
`May 18, 2004 (cid:9)
`
`Sheet 11 of 12 (cid:9)
`
`US 6,738,799 B2
`
`UPDATE FILE FOR <FILENAME>
`
`SIZE(A1)
`LOC(A1) (cid:9)
`COPY
`INSERT <CONTENTS OF B2>
`COPY
`LOC(A3) (cid:9)
`SIZE(A3)
`INSERT <CONTENTS OF B4>
`INSERT <CONTENTS OF B5>
`LOC(A5)
`SIZE(A5)
`COPY
`SIZE(A6)
`LOC(A6) (cid:9)
`COPY
`
`FIG. 11
`
`1101
`1102
`1103
`1104
`1105
`1106
`1107
`
`1100
`
`Oracle Exhibit 1001, pg. 13
`
`
`
`U.S. Patent (cid:9)
`
`May 18, 2004
`
`Sheet 12 of 12 (cid:9)
`
`US 6,738,799 B2
`
`O
`C•J
`C`.1
`
`N
`
`LU
`
`Lu
`CC
`r
`CO
`
`SO
`
`LU
`
`7--
`CO
`C71
`
`C
`
`C
`
`C \
`
`(cid:9)7
`
`0") O
`
`CNJ
`C
`
`CD
`
`-J
`
`CO O
`(\I
`LC) (cid:9)
`O
`
`CC
`L1J I-U CT)
`ry->
`F
`LL ri
`C
`CO
`CZ,
`Cs.1
`
`C/) (cid:9)
`
`FO
`
`CO
`CD
`C
`-r-
`
`ti
`C:)
`
`CD
`CZ)
`C
`.r-
`
`LLI
`
`CC
`I-U
`>
`LL W
`
`Cr
`
`LLI
`
`LI Ff.!
`Cl)
`
`CC
`LLI I-U
`Et FE
`
`
`
`CC
`LU
`—J >
`LuCC
`IL
`U.)
`
`CC
`U-I
`
`—J
`u _ (cid:9)
`
`Oracle Exhibit 1001, pg. 14
`
`(cid:9)
`(cid:9)
`
`
`US 6,738,799 B2
`
`1
`METHODS AND APPARATUSES FOR FILE
`SYNCHRONIZATION AND UPDATING
`USING A SIGNATURE LIST
`
`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"
`(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 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 deliv-
`ery"or 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 WordPerfect).
`These are the types of documents for which companies
`currently invest millions of dollars in file servers and intra-
`net technologies in order to share among respective work-
`groups. The important distinction here between content and
`
`PRIORITY CLAIMS (cid:9)
`
`This application is a continuation of U.S. patent applica-
`tion Ser. No. 09/303,958, filed May 3, 1999 (now U.S. Pat.
`No. 6,574,657).
`
`CROSS-REFERENCE TO RELATED (cid:9)
`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, 1999 (now U.S.
`Pat. No. 6,654,746).
`
`BACKGROUND OF THE INVENTION
`
`5
`
`10
`
`15
`
`20
`
`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 25
`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
`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 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. (cid:9)
`Following acceptance by hundreds of thousands of early
`adopters, many push-based applications started the move
`
`30
`
`35
`
`40
`
`45
`
`50
`
`55
`
`60
`
`65
`
`Oracle Exhibit 1001, pg. 15
`
`
`
`US 6,738,799 B2
`
`3
`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 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.
`
`5
`
`10
`
`15
`
`20
`
`25
`
`30
`
`SUMMARY OF THE INVENTION
`
`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 the
`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 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 client
`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 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.
`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
`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.
`
`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 45
`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 55
`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 60
`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 65
`copy of the current version of the subscription file, where the
`old segment corresponds to the segment for which a match
`
`50 (cid:9)
`
`Oracle Exhibit 1001, pg. 16
`
`
`
`US 6,738,799 B2
`
`5
`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.
`
`5
`
`10
`
`15
`
`20
`
`30
`
`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
`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 intel-
`ligence 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 TM (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.
`Mobile Update according to the present invention is
`designed primarily to serve the mobile professional as the
`35 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 "subscrib-
`ing". 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 notifi-
`cation. 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 inven-
`tion 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.
`FIG. 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
`
`25
`
`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 con-
`necting to the corporate network is through electronic mail. 55
`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 60
`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 65
`could you send it to me by email? It's easier".