throbber
(12) United States Patent
`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 &mdash; 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
`&mdash; 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".

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket