Clouding IP LLC v. Google Inc.
Filing
1
COMPLAINT FOR PATENT INFRINGEMENT filed with Jury Demand against Google Inc. - Magistrate Consent Notice to Pltf. ( Filing fee $ 350, receipt number 0311-1078446.) - filed by STEC IP LLC. (Attachments: # 1 Exhibit A part 1, # 2 Exhibit A part 2, # 3 Exhibit A part 3, # 4 Exhibit B, # 5 Exhibit C, # 6 Exhibit D, # 7 Exhibit E part 1, # 8 Exhibit E part 2, # 9 Exhibit F, # 10 Exhibit G, # 11 Exhibit H, # 12 Exhibit I part 1, # 13 Exhibit I part 2, # 14 Exhibit I part 3, # 15 Civil Cover Sheet)(els)
EXHIBIT D
United States Patent
(10)
Dickenson
(12)
(45)
METHODS AND APPARATUSES FOR FILE
SYNCHRONIZATION AND UPDATING
USING A SIGNATURE LIST
Inventor:
Patent NO.:
US 6,738,799 B2
Date of Patent:
*May 18,2004
5,794,258 A
5,819,274 A
811998 Ishikawa et al. ............ 3451751
1011998 Jackson, Jr. ................. 707110
(List continued on next page.)
Peter Dickenson, Williamsburg, VA
FOREIGN PATENT DOCUMENTS
(US)
Assignee: Symantec Corporation, Cupertino, CA
(US)
Notice:
OTHER PUBLICATIONS
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 Journal, vol. 16, No. 9, pp. 148-151 (Sept. 1991).
This patent is subject to a terminal disclaimer.
Primary Examineraharat Barot
(74) Attorney, Agent, or Firmqliesler Meyer LLP
Jun. 2, 2003
Prior Publication Data
US 200310200207 A1 Oct. 23, 2003
Related U.S. Application Data
Continuation of application No. 091303,958, filed on May 3,
1999, now Pat. No. 6,574,657.
Int. CL7 ................................................ G06F 15/16
U.S. C1. ....................... 7091203; 7091217; 7091219;
7091229; 70711; 7071203
Field of Search ................................. 7091200-203,
7091216-219, 229, 231-232, 235-237;
717110-12; 71416-7; 70711, 8-10, 2 0 e 2 0 4
References Cited
(56)
U.S. PATENT DOCUMENTS
5,008,853
5,694,596
5,729,735
5,752,039
5,787,247
A
A
A
A
A
411991
1211997
311998
511998
711998
ABSTRACT
(57)
Appl. No.: 101452,156
Filed:
(List continued on next page.)
B ~ et al. ................... 3451751
Y
Campbell ................... 7091215
Meyering .................... 707110
Tanimura ..................... 717111
Norin et al. ................ 7091220
__
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 subscription 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 subscrivtion 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
WRITE COMMAND IN UPDATE FILE
TO COPY OLD SEGMENT
KJA
IN OLD SIGNATURE LIST?
L/
WRITE COMMAND IN UPDATE FILE
TO INSERT NEW SEGMENT
1006
US 6,738,799 B2
Page 2
U.S. PATENT DOCUMENTS
5,835,911
5,864,837
5,890,164
5,913,032
6,012,087
6,014,135
6,058,428
6,073,007
6,101,507
6,151,708
6,161,125
6,327,617
6,574,657
A
A
A
A
A
A
A
A
A
A
A
B1
B1
1111998
111999
311999
611999
112000
112000
512000
612000
812000
1112000
1212000
* 1212001
* 612003
Nakagawa et al. ......... 7071203
Maimone ....................... 70711
Nielsen ...................... 7071201
Schwartz et al. ........... 7091213
Freivald et al. ............. 7091218
Fernandes ................... 7091203
Wang et al. ................ 7091232
Doyle ........................ 7091203
Cane et al. ................. 7071204
Pedrizetti et al. ............. 717111
Traversat et al. ........... 7091203
Fawcett ...................... 7091219
Dickinson ................... 7091203
OTHER PUBLICATIONS
Diem, D., "Wireless Data and Minimum Airtime Software,"
Dr. Dobb's Journal, pp. 1-14 (Dec. 1993).
Coppieters, K., "Across-Platform Binary Diff," Dr. Dobb's
Journal, pp. 1-7 (May 1995).
"Keeping Road Warriors on Track," Mind Your Own Business, 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/firstlooks/9806/f980610a.htm (Jun. 10, 1998).
* cited by examiner
U.S. Patent
May 18,2004
Sheet 1 of 12
/;4
1 I
102 \
DATA
ADDRESS
CONTROL
106
41
RAM
o
\
41
DISPLAY
MONITOR
0
4)
4b
J
\
41
1 0 3 ~
ROM
41
4
b
1
4I
4
P
L
-
-
A
41
MICRO
PROCESSOR
41
0
--
4I
MODEM
4I
I l f
4b
4b
4b
41
105 J
'
-
KEYBOARD
0
104
(I07
HARD
DISK 1
FIG. 1
4)
4b
NETWORK
INTERFACE
I
'.S. Patent
May 18,2004
Sheet 2 of 12
U.S. Patent
May 18,2004
Sheet 3 of 12
41 1
412
413
414
41 5
c 416
SEGMENT LOCATION
A1
A2
A3
A4
A5
A6
LOC(A1)
,
SIZE(A1) / I /
SIZE(A2) 1
)
SIZE(A3) I / ,
SIZE(A4)
1
SIZE(A5) I
SIZE (A6) 1
/I
\,
-,\ \
,\\\
LOC(A2)
LOC(A3)
LOC(A4)
LOC(A5)
LOC(A6)\,
I
,\\I
I
SEGMENT SIGNATURE
SEGMENT SIZE
/I
401
402
403
404
405
406
'
FIG. 4
SIG(A1)
S IG (A2)
SIG(A3)
S IG (A4)
SIG(A5)
SIG(A6)
/ 311
/
-,312
-+--
313
--314
-
-
-
315
316
U.S. Patent
May 18,2004
Sheet 5 of 12
READ SUBSCRIPTION FlLE
FROM NETWORK DRIVE
/
\
NO
NEW SUBSCRIPTION FILE?
/
\
DETERMINE MOST EFFICIENT SEGMENT
7~
505
RETRIEVE DELIMITER
v
SCAN FlLE FOR DELIMITER OR END OF FlLE
TO DETERMINE NEXT SEGMENT
F
506
7
COMPUTE SIGNATURE FOR SEGMENT
S
8
ADD SIGNATURE TO SIGNATURE LIST
v
SEGMENT ENDS WITH DELIMITER?
\'
FIG. 5
DONE
U.S. Patent
May 18,2004
Sheet 6 of 12
U.S. Patent
May 18,2004
Sheet 7 of 12
U.S. Patent
May 18,2004
Sheet 8 of 12
U.S. Patent
May 18,2004
Sheet 9 of 12
U.S. Patent
May 18,2004
Sheet 11 of 12
UPDATE FILE FOR
-
COPY
INSERT
COPY
INSERT
INSERT
COPY
COPY
LOC(A1) SIZE(A1)
LOC(A3) SIZE(A3)
LOC(A5) SIZE(A5)
LOC(A6) SIZE(A6)
FIG. 11
-
-
U.S. Patent
May 18,2004
Sheet 12 of 12
US 6,738,799 B2
1
2
METHODS AND APPARATUSES FOR FILE
SYNCHRONIZATION AND UPDATING
USING A SIGNATURE LIST
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 Communicator's Netcaster, respectively. Rather than spurring the
growth of content delivery, however, the effect of the push
entries has been to call into question the value of delivering
Web content to user hard drives. The value is questioned not
only in terms of relevance, but also its effects and load on
corporate networks. The automated information flow
becomes a flood through the Internet gate-ways of corporations threatening the stability and reliability of the network
infrastructure itself.
Within the corporate world, the future of content push
remains in limbo. Uncertainty over standards and overall
value have caused the market to trip on the initial momentum and slow to a crawl. However, what is questioned here
is not the value of automating delivery or "push," but rather
the value of what is being pushed.
Software Push is another important objective. Microsoft
and Marimba, among others, have recognized the importance and potential of "Electronic Software Distribution"
(ESL) or "software push" as a way of addressing the need to
seamlessly deliver software updates across the network with
the goal of directly impacting the total cost of ownership.
The reauirements for software distribution are dramatically
different from content distribution. For one, the "content" in
software delivery is, by its very nature, deemed critical. To
reduce the impact of supporting multiple versions of products across the corporate network, near-simultaneous
deployment is imperative. Companies that do not use some
form of software push technologies require dedicated individuals to make the rounds updating software by reinstalling
or applying patches for each personal computer and laptop.
~~~h~~
than aggregating and displaying information, software push transparently delivers one specific piece of information and applies it to user systems or applications. Files
tend to be very large and the delivery of these files must be
well-managed, Incremental downloading becomes important t~ 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, hi^
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
&rndash; and not the delivery mechanism itself.
The Next Phase is Electronic Document Delivery. The
final frontier in digital push is "electronic document delivery"or EDD. It deals with 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 intranet technologies in order to share among respective workgroups. The important distinction here between content and
PRIORITY CLAIMS
5
This application is a continuation of U,S, patent application Ser. No. 09/303,958, filed May 3, 1999 (now U.S. Pat.
No. 6,574,657).
CROSS-REFERENCE TO RELATED
APPLICATION
10
This Application is related to the following application,
which is incorporated herein by reference: U.S. patent
application Ser. No. 091304,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
1. Field of the Invention
The present invention relates to the field of personal
computers which access files on network drives and which
utilize electronic mail systems. Specifically, the present
invention involves the synchronization of the local copies of
files on user's client computer hard disk to the current
versions of the files on a network drive.
2. Discussion of the Related Art
As more and more business information moves from
analog to digital formats, the relatively newfound ability to
create, amend, and revise information spontaneously and
frequently has brought with it challenges for corporate users.
Revenue results can now be easily aggregated and updated
in near real time, sales presentations can be amended
regularly, and changes made to business documents.
However, causing these changes to effectively trickle down
through the organization without causing a digital flood is a
challenge.
Companies have responded to the threat by carefully
creating structures for organizing, storing, and sharing these
electronic files. Organizations have moved from file servers
to intranet sites to combinations of both to meet the need of
the corporate user. While these structures are clearly effective means of storing, sharing, and organizing information,
they do not address the fact that users have very individual
information needs. They also do not resolve the obstacle
users face who do not have the time to spend looking for
changes. An effective paradigm for addressing the problem
of individual needs and delivering changes to documents can
be found in the emerging category of ''Push techno log^."
As its simplest definition, push is the process of automatically delivering user-requested information electronically. It is not an application, but merely a function or feature
in a product. There are clear distinctions between the three
different categories of push-based application: content,
software, and document.
Content push is the first mover. Conventional products
focus on delivering breaking news and information to user
desktops automatically. Instead of the user constantly surfing multiple Web sites for stock quotes, news, weather, etc.,
conventional products aggregate and broadcast information
automatically according to individual user preferences.
Many companies incorporate "push" functionality into their
products.
Following acceptance by hundreds of thousands of early
adopters, many push-based applications started the move
30
35
40
45
55
60
65
US 6,738,799 B2
3
4
document push is the fact that EDD delivers data that
was detected. The command need only specify the location
within the earlier version of the file where the old segment
currently exists in its native format within corporations and
is stored, rather than the actual data that is stored at this
whose value is clearly understood by the company, MIS, and
position. This information is found in the signature list in the
the end-user, With the recognized features, the willingness to
5 beginning location and size fields. The beginning location
invest in infrastructure is more likely.
field is preferably expressed as a number of bytes from the
Within conventional environments, users have access to
beginning of the file. At the client computer, when this
and can
Or
them
whenever
location information is combined with the offset of the
they are aware that the network file document changes. File
beginning of the client computer,s copy of the earlier
servers and intranet servers act as document repositories
version of the subscription file, the correct old segment can
waiting passively to be accessed. The reality is that these 10 be copied into the client computer~scopy of the current
files change erratically and the user can never really know
version of the subscription file, The size of the copy cornwhen a file has changed. As a result, those who need to have
mand is negligible in comparison to the size of the segment
to which it pertains, This savings reduces the size of the
the most current documents are required to perform hit-andmiss network browsing and checking which is timeupdate file, and thus reduces the connection time in cornconsuming, unproductive, and frustrating. Even if the 15 rnUnicating the update file to the client computer,
changes are scheduled, the user is still required to manually
When no match is detected in the earlier version of the
access, retrieve and manage those changes.
signature list, the server computer writes a command into the
For mobile users, the problem of knowing about and
update file for the client computer to insert a new segment
accessing changes to network-based files is compounded by
of the current version of the subscription file into the client
infrequent access to the corporate network. In addition, 20 computer's copy of the current version of the subscription
file, where the new segment of the current version of the
when remote from the ofice, users need to establish connections to the networkvia dial-up networking technologies,
subscription file is written into the update file. Because the
then search and browse the network over an often slow,
new segment of the current version of the subscription file
contains the actual data of the new segment, the new
unreliable connection. The productivity losses and fmstrations are simply multiplied.
25 segment of the current version of the subscription file may
As is apparent from the above discussion, a need exists for
be compressed to reduce the size, encrypted for security, or
both, by the server computer before being written into the
an
and effective mechanism for allowing a cornupdate file.
puter user to have copies of the current versions of network
When the update file is completed, the server computer
files on his client computer.
30
transmits the update file to the client computer as an executSUMMARY OF THE INVENTION
able attachment via electronic mail. The update file is only
generated when the server computer determines that the
Conventionally, those who need to have the most current
subscription file has changed. The server computer periodiversions of computer files are required to perform hit-andmiss network browsing and checking which is time- 35 cally monitors the subscription file to determine if it has
been altered before generating an update file. The user
consuming, unproductive, and frustrating. An object of the
present invention is to provide a mechanism by which a user
determines the periodicity of the checks to determine if the
can be automatically provided with a current version of a file
file has been altered, and if so, to generate the update file and
to which he subscribes. Another object of the present invensend it as an electronic mail.
tion is to communicate the current version of the file in an 40
These and other features of the present invention are
efficient manner. According to the present invention, a server
apparent from the Drawings which are described in narrative
form in the Detailed Description of the Invention.
computer monitors network files and folders stored on the
network for changes and then sends the user email notifiBRIEF DESCRIPTION OF THE DRAWINGS
cations and updates when monitored items change.
FIG. 1illustrates a general purpose computer architecture
According to the present invention, a server computer 45
suitable for implementing the methods according to the
generates an update file for transmission to a client computer
present invention.
that permits the client computer to generate a copy of a
FIG. 2 illustrates a network of computers suitable for
current version of a subscription file from a copy of an
the
the present invenearlier version of the subscription file, The server computer
periodically reads the subscription file from the network so tion.
FIG. 3 illustrates an earlier version of a subscription file
drive and divides the subscription file into variable-length
broken into six segments and the signatures corresponding
segments based upon a segment delimiter, The server cornthe six segments
for use with the methods
puter computes a signature for each segment and stores the
according
the present
segment signature along with the beginning position and
FIG. 4 illustrates an earlier version of a signature list
length of each segment in a current version of the signature 55
according to the Present invention corresponding to the
list. The server computer also maintains the earlier version
earlier version of the subscription file shown in FIG. 3.
of the signature list.
FIG. 5 is a flow chart illustrating a method according to
For each segment of the current version of the subscripthe present invention of building a signature list correspondtion file, the server computer searches an earlier version of
a signature list for an old segment signature which matches 60 ing to a subscription file.
FIG. 6 illustrates a current version of the subscription file
a new segment signature corresponding to the segment.
shown in FIG. 3 broken into seven segments and the
When a match is detected, the server computer writes a
signatures corresponding to the seven segments suitable for
command in the update file for the client computer to copy
use with the methods according to the present invention.
an old segment of the client computer's copy of the earlier
FIG. 7 illustrates a current version of a signature list
version of the subscription file into the client computer's 65
copy of the current version of the subscription file, where the
according to the present invention corresponding to the
old segment corresponds to the segment for which a match
current version of the subscription file shown in FIG. 6.
US 6,738,799 B2
5
6
variety of information sources is very compelling to both
FIG. 8 illustrates the correspondence of the current version of the subscription file to the earlier version of the
users and corporations, with the caveat that the files being
sent must not impede the network, the mail server, or the
subscription file and the segments which are communicated
end-user's experience. This means, for truly effective docuto the client computer from the server computer in an update
s ment push, file size has to be addressed, first and foremost.
file according to the present invention.
FIG. 9 illustrates the creation of a current copy on the
Electronic Document Delivery involves more than just the
client computer of the current subscription file from a copy
physical process of sending out documents automatically.
The indiscriminate sending or downloading of full-size files
of the earlier version of the subscription file on the client
computer using the update file.
places a heavy burden on network bandwidth, IS, and the
FIG. 10 is a flow chart illustrating a method according to 10 mobile professional. Intelligence needs to be built into the
entire process of delivery to be truly effective and valuable
the present invention of generating an update file from the
to both MIS and users.
current version of the subscription file and the current and
earlier versions of the signature list.
For truly effective Document Delivery, server-based intelligence is required. It is needed for detecting and sending
FIG. 11 illustrates an update file generated by the method
changed files, but also as well as for detecting what changes
according to the present invention illustrated in FIG. 10
have been made and packaging only those changes as
applied to the earlier and current versions of the signature
efficiently as possible. If only 50 cells of 5000 have changed
list illustrated in FIGS. 4 and 7, respectively.
in a spread-sheet, it does not make sense to send the entire
FIG, 12 illustrates a large and diverse network of
file again. If only a single slide in a 50-slide presentation
puters suitable for implementing the methods according to
20 changes, it does not make sense to re-send the entire 2 MB
the present invention.
file.
The Figures are more thoroughly described in narrative
Symantec Mobile UpdateTM
(Symantec Mobile Update is
form in the Detailed Description of the Invention.
a trademark of Symantec Corporation and its subsidiaries)
DETAILED DESCRIPTION OF THE
according to the present invention, through a combination of
INVENTION
25 server-based "delta technology" and client-based "update
agent technology", adds "intelligence" to document delivery
~ l ~ intranets are growing in popularity, they are not
h ~ ~ ~ h
likely to replace file servers any time soon. File servers are
a
way
receiving
changes to corporate documents. he next section discusses
one of the primary ways to store and share data on corporate
according to the
used
networks due to their sheer simplicity for posting and 30 the
present invention to bring "intelligence" to document delivretrieving files, usershave grown accustomed to working
ery.
with network drives, even to the extent where in which data
Mobile Update according to the present invention is
is actually stored directly on the network, rather than on their
designed primarily to serve the mobile professional as the
own hard drives. The intranet, on the other hand, requires
that documents be "posted" or "uploaded" to a web server, 35 target user, who relies on copies of the most up-to-date
usually by a select group of individuals, Thus, making
documents to be effective, but who is not always connected
to the network to access changes. In addition, the mobile
documents available to others goes from the simple task of
user is challenged with both slow connection speeds to the
copying a file onto a network directory to submitting a file
network (typically 28.8 Kblsec modem), as well as the
to be processed by others. On the recipient end, it involves
activating a browser, going to the appropriate URL or IP 40 hassles of getting and staying connected. The Mobile Update
solution according to the present invention is comprised of
address, finding the document on a page and downloading it
a server portion (for tracking files on the network and
(as opposed to a simple drag-and-drop file copy to the hard
processing changes) and a client portion (for managing
drive).
document "subscriptions" and for incorporating changes
spite of the varying degrees of complexity, there is
value in both methods of file sharing. Since virtually all 45 into existing
The Mobile Update Client portion is used to create and
Intranet documents are converted forms of some other type
manage subscriptions to network documents. The process of
of document file, the most current information is often found
selecting files to be monitored is referred to as "subscribin native files on the LAN, rather than information posted to
ing". Users browse to the network directory where the
a web page. In addition, not all changing files used in the
day-to-day life of the mobile professional are found on the so desired files are stored and select either individual files or
folders (excluding sub-folders). Once selected, the user then
intranet, whereas all intranet-based files can typically be
found on the network. Thus, browser-access alone is not
determines the polling or monitoring interval for the server
to check for changes and also what to do when changes
always adequate to serve the needs of document delivery.
According to research, the most popular method of conO C , i.e.9 package and send file changes or simple notifiCU
'
netting to the corporate network is through electronic mail. 5s cation. Once the subscription is set up, the information is
in its database.
Not surprisingly, electronic mail is treated as a mission
passed to the server and
The Mobile Update Server according to the present invencritical application. For remote or mobile professionals, it is
tion acts as an "electronic assistant" on the network, tracking
the one connection they do make to the network on a
documents for changes. It polls files or subfolders at either
recurrent basis. This familiar, reliable system is well-suited
for electronic document delivery (EDD). So well-suited, in 60 user-defined intervals for any changes to date, time stamps.
fact, that many departments and users currently rely on
When it detects a change, it checks the integrity of the file,
electronic mail as a primary way to send documents to other
then decides whether it needs to deliver the actual changes
or simply notify send notice of a file change.
users. Even with existing network and Intranet
infrastructures, a typical response to the suggestion, "It's
FIG. 1 illustrates a general purpose computer system 100
now posted on the site, you can download it" is "I know, but 65 suitable for implementing the methods according to the
could you send it to me by email? It's easier". The simplicity
present invention. The general purpose computer system
100 includes at least a microprocessor 104. The general
of using electronic mail as a single connection to a wide
US 6,738,799 B2
7
8
purpose computer may also include random access memory
most efficient "delimiter" or "dividing point" to break the
102, ROM memory 103, a keyboard 107, and a modem 108.
file into segments as shown in FIG. 3. Adigital 'snapshot' is
All of the elements of the general purpose computer 100 are
comprised of a series of segments which define the overall
optionally tied together by a common bus 101 for transportcontents and structure of a file. A file can be segmented into
ing data between the various elements. The bus 101 typically 5 hundreds, if not thousands, of segments depending on the
includes data, address, and control signals. Although the
file size and type.
general purpose computer 100 illustrated in FIG. 1includes
FIG. 3 illustrates an earlier version of a subscription file
a single data bus 101 which ties together all of the elements
broken into six segments and the signatures corresponding
of the general purpose computer 100, there is no requirement
to the six segments suitable for use with the methods
that there be a single communication bus 101 which con- lo according to the present invention. SegmentsAl throughA6
nects the various elements of the general purpose computer
represent variable length portions of the earlier version of
the subscription file. The ends of each of the segments (A1
100. For example, the microprocessor 104, RAM 102, and
ROM 103, are alternatively tied together with a data bus
through A6) are determined by segment delimiters 301
while the hard disk 105, modem 108, keyboard 107, display
through 306. The segment delimiters 301 through 306 are
specific portions of data, perhaps bytes, that are statistically
monitor 106, and network interface 109 are connected
together with a second data bus (not shown). In this case, the
determined to be an optimal, or at least acceptable, division
point for the variable length segments A1 throughA6 for the
first data bus 101 and the second data bus (not shown) are
linked by a bidirectional bus interface (not shown).
earlier version of the subscription file. Signatures 311
Alternatively, some of the elements, such as the microprothrough 316 are fixed length values derived from the varicessor 102 and RAM 102 are connected to both the first data 20 able length segments A1 through A6. The signatures 311
bus 101 and the second data bus (not shown), and commuthrough 316 may be determined by any one of a variety of
hashing methods or signature algorithms. In the presently
nication between the first and second data bus occurs
preferred embodiment, the signatures A1 through A6 are
through the microprocessor 102 and RAM 102. The network
interface 109 provides communication capability to a local
computed using the cyclic redundancy check (CRC).
area network LAN using an ethernet connection, for 2s However, any signature algorithms may be used according
example. The modem 108 allows the computer 100 to
to the present invention. For example, MD5 can be used to
communicate through the telephone system. The methods of
derive a fixed length digital signature from the variable
the present invention are executable on any general purpose
length segments.
computer system such as the 100 illustrated in FIG. 1, but
FIG. 4 illustrates an earlier version of a signature list
there is clearly no limitation that this computer system is the 30 according to the present invention corresponding to the
only one which can execute the methods of the Present
earlier version of the subscription file shown in FIG. 3. The
invention.
signature list 400 shown in FIG. 4 further includes the
FIG. 2 illustrates a network of computers suitable for
starting locations 401 through 406 of each of the segments
A1 through A6 shown in FIG. 3. The starting locations 401
implementing the methods according to the present invention. A client computer 201 is connected to a network drive 35 through 406 are preferably represented as byte address
202 through link 205. Aserver computer 203 is connected to
locations relative to the beginning of the earlier version of
a network drive 202 through a link 206. The client computer
the subscription file. Thus, an offset representing the loca201 and server computer 203 are logically connected by a
tion of the beginning of the earlier version of the subscriplink 207 for communication between them. The server
tion list is combined with each of the segment location
computer 203 is logically connected to an electronic mail 40 values 401 through 406 to determine the address of the
beginning of each of the segments within the address space
facility 204 through link 209. Client computer 201 is logically connected to the electronic mail facility 204 through
within which the segments A1 through A6 are stored. The
link 208. The logical connections 207,208, and 209 are not
signature list 400 also includes a segment size field which
necessarily physical connections. For example, the client
stores the size of each of the variable length segments A1
computer 201 is alternatively a remote computer which 45 through A6 as a number of bytes within the variable length
periodically connects to the network drive 202 through a
segment to which it corresponds. The segment location and
modem. In this event, the modem (not shown) provides the
segment size allow the addresses of all of the data within the
physical connection through which the logical connections
segment to be computed. However, it should be noted that
205, 207, and 208 are implemented.
the information necessary to compute the addresses of the
FIG. 2 illustrates the interaction between client, server, so pieces of data within each segment could be represented in
and network according to the present invention. The user
some alternative manner. For example, instead of attaching
browses the network through link 205 from his client
the segment size within the signature list, the ending location
computer 201 to determine the files to which he wishes to
of each segment could alternatively be stored according to
subscribe. The client computer 201 sends the subscription
the present invention.
information to the server computer 203 through logical link ss
FIG. 5 is a flowchart illustrating a method according to the
207. The server computer 203 polls the network 202 through
present invention of building a signature list corresponding
link 206 for changes to the subscription files. The server
to a subscription file. The method starts at step 501. At step
sends update files to the client computer 201 through the
502, the subscription file is read from the network drive 202.
email facility 204 through logical link 209. The client
If the subscription file read from the network drive is a new
computer receives update files through the logical link 208. 60 subscription file, test 503 delivers the method to step 504
Symantec's Delta Technology according to the present
where the most efficient segment delimiter is determined for
invention has been optimized to detect and process changes
that new subscription file. Thus, the byte value which
quickly and efficiently, while concurrently maintaining the
represents the segment delimiters 301 through 306 shown in
integrity of the file. When a user first "subscribes" to a file,
FIG. 3 are computed at step 504 the first time that the
the server takes a "digital snapshot" that forms the basis for 65 subscription file is read. If the subscription file read from the
determining changes made to the file in the future. The
network drive in step 502 is not a new subscription file, then
server reads the file from the network and determines the
the task 503 delivers the message to step 505, where the
US 6,738,799 B2
9
10
delimiter corresponding to the subscription file is retrieved
file according to the present invention. As discussed above,
the earlier version of the subscription file shown in FIG. 3
from a table (not shown) which stores the values of the
and the current version of the subscription file shown in FIG.
segment delimiters which correspond to each of the sub6 pertain to the same file name. They are different versions
scription files that the server computer 203 monitors. After
the segment delimiter corresponding to the subscription file s of the same file. FIG. 8 shows the current version of the
subscription file. FIG. 8 is annotated to show which segis retrieved at step 505, the method scans the file from the
ments within the current version of the subscription file are
beginning for the delimiter in order to determine the first
the same or identical to a segment within the earlier version
variable length segment corresponding to that subscription
of the subscription file. As shown in FIG. 8, each of the
file. If the end of the file is reached before the delimiter is
found, then step 506 marks that as a segment, and that will 10 Segments B1,
B6, and B7 are the same as a
ing segment within the earlier version of the subscription file
be the last segment corresponding to the subscription file,
Thus, the segment delimiter 306, which pertains to the last
as segments A1
in
3.
Segments B2,
and B5 are each different from any of the
segment A6, is the last byte in the file, and is not necessarily
the same value as the other segment delimiters 301 through
Segments A1
in
3.
According to the Present invention, the new or changed
305. At step 507, the signature for the variable length IS
Segments B2, B4 and B5 are extracted from the current
segment is computed. At step 508, the signature is added to
version of the subscription file stored on the network drive
the signature list along with the beginning location and
202 by the server computer 203, and are packaged in an
segment size corresponding to the segment. Test 509 deterupdate file 801 for transmission to the client computer 201
mines whether or not the segment ends with the delimiter, ~f
the segment ends with the delimiter, then it is not the last 20 shown in FIG. 2 so that the client computer 201 can build a
C P of the current version of the subscription file from its
OY
segment in the subscription file, and therefore the test 509
returns the message to step 506 so that the next variable
C P of the earlier version of the subscription file.
OY
FIG. 9 illustrates the creation of a current copy on the
length segment can be determined. If the segment does not
client computer of the current subscription file from a copy
end with the delimiter, then it is assumed that it is the end
of the file, and the method 500 is completed. At this point, 25 of the earlier version of the subscription file on the client
the signature list corresponding to the subscription file has
computer using the update file 801 shown in FIG. 8. FIG. 9
shows the copy of the earlier version of the subscription file
been computed and stored.
when the server 203 polls the subscription file at a future
901 as well as the data contents of the update file 902 as it
~0"es~o"ds to the client computer's copy of the current
time and detects a change, a second "snapshot" is generated
using the same process as the first snapshot as shown in FIG, 30 version of the subscription file 903. FIG. 9 shows arrows 910
through 913 which indicate segments which the client
7,
shown in FIG, 8, the new or changed segments are
accompanied by unchanged segments, depending on the
201 can
its
the
subscription file into the current version of the subscription
number and severity of the changes made to the file, ~h~
Delta Engine according to the present invention then cornfile. Specifically, segment A1 is illustrated by arrow 910 as
segment C1
the
the current
pares the two sets of segments to determine which segments 35 being
version. Similarly, segment A3 may be copied into segment
have been altered, which ones are new and which ones have
C3, segment A5 may be copied into segment C6 and
remained unchanged, as illustrated in FIG. 8.
segment A6 may be copied into segment C7. Arrows 920
FIG. 6 illustrates a current version of the subscription file
through 922 show segments which are inserted from the
shown in FIG. 3 broken into seven segments and the
40 update file 902 into the copy of the current version of the
signatures corresponding to the seven segments suitable for
subscription file 903. Specifically, segment B2 is inserted
use with the methods according to the present invention.
from the update file 902 into the copy of the current version
Segment delimiters 601 through 607 represent byte codes
of the subscription file at segment C2. Segment B4 is
which were determined for this subscription file to indicate
inserted from the update file 902 into the copy of the current
the end of each of the segments B1 through B7. Signatures
45 version 903 at segment C4. Segment B5 is inserted from the
611 through 617 represent fixed length signatures computed
update file 902 into the copy of the current version 903 at
from each of the seven segments B1 through B7.
segment C5. Dotted rectangle 950 illustrates data that is
FIG. 7 illustrates a current version of a signature list
resident on the client computer 201, update file 902 is
according to the Present invention corresponding to the
communicated to the client computer 201 through an eleccurrent version of the subscription file shown in FIG. 6. The
h the ~
update file 902 must be
~
,
tronic mail facility 204, ~
signature list 700 includes the segment signatures 701
transmitted to the client computer 201 through whatever
707
the
length segments
communication link the client computer 201 uses to access
B1
B7
in
and the
its electronic mail 204. This link 208 shown in FIG. 2 may
segment locations 721 through 727 representing the beginbe a modem, an ethernet connection, or some other cornning position each the segments B1
B7 as
5 s munication device. A is illustrated in FIG. 9, the present
s
as the segment sizes 711 through 717 corresponding to each
invention maximizes the information already stored on the
of the segments B1 through B7.
client computer 201 and minimizes the information needed
The engine according to the present invention extracts
to be transmitted to the client computer 201 in order to create
new or changed segments and bundles these into a file,
the copy of the current version of the subscription file.
called an Update File. This file is then optionally corn- 60 Specifically because segments Al, A3, AS, and A6 are
identical to corresponding segments in the current version of
pressed to reduce its size even further. At its simplest, an
the subscription file, they need not be transmitted to the
Update File contains just the changes made to a file, in a
compressed state, as shown in FIG. 8.
client computer 201 through the electronic mail facility 204.
FIG. 8 illustrates the correspondence of the current verOnly the changes B2, B4, and B5 are communicated to the
sion of the subscription file to the earlier version of the 65 client computer 201.
subscription file and the segments which are communicated
FIG. 10 is a flowchart illustrating a method according to
to the client computer from the server computer in an update
the present invention of generating an update file from the
B33
B43
US 6,738,799 B2
11
12
current version of the subscription field and the current and
the copying of segmentA3 into segment C3 shown by arrow
earlier versions of the signature list. The method starts at
911 in FIG. 9. The command 1104 implements the copying
step 1001. At step 1002, the method compares the new
of segment B4 into segment C4 illustrated by arrow 921
segment signature to an old segment signature. Here, the
shown in FIG. 9. The command 1105 implements the
new segment refers to segments within the current version of 5 copying of segment B5 into segment C5 illustrated by the
arrow 922 shown in FIG. 9. The command 1106 implements
the subscription file; the old segment signature refers to
the copying of the segment A5 into segment C6 illustrated
segment signatures within the earlier version of the subby arrow 912 shown in FIG. 9. The COPY command 1107
scription file. For example, each of the segment signatures
implements the copying of segment A6 into segment C7
311 through 316 shown in FIGS. 3 and 4 are old segment
signatures, while each of the signatures 701 through 707 lo illustrated by arrow 913 in FIG. 9. Each of the copy
shown in FIG. 7 represent new segment signatures. Step
commands 1101,1103,1106, and 1107 must specify for the
1002 begins with the first new segment signature in the
client computer 201 where the segments to which they
current version of the subscription file. For example, step
pertain are actually stored on the client computer.
1002 begins with the segment signature 701 pertaining to
Because the client computer does not store the signature
segment B1. Step 1002 compares the new segment signature
lists or have any knowledge of the fact that the subscription
to the old segment signature. Step 1002 begins with the first
files are broken into segments by the server computer, the
old segment signature, for example the segment signature
update file must include address information necessary to
311 corresponding to segment A 1 shown in FIG. 4.
effectuate the copying of the correct bytes into the copy of
If step 1002 determines that there is a match between the
the current version of the subscription file. Thus, the location
new segment signature and the old segment signature, then 20 and size of each segment are included as arguments to each
the method 1000 writes a command in the update file to copy
of the copy commands so that the client computer can
the old segment into the client computer's copy of the
compute the address of the correct bytes. The client comcurrent version of the subscription file at step 1003. Then
puter stores the copies of the subscription files as standard
step 1007 determines if the last new segment signature in the
files within its operating system and only knows the beginnew signature list has been processed and if so, the method 25 ning location and size of the entire file. The location and size
is done at step 1009. For example, when the method gets to
information included in each copy command by the server
the new segment signature 707 corresponding to segment
computer 203 is combined with the file offset value at the
client computer in order for the client computer to calculate
B7, step 1007 will indicate that the method is done.
However, if there are more new segment signatures to be
the range of addresses to be copied. In addition, the server
processed, step 1007 delivers the message to step 1008 30 computer 203 has no way of knowing where exactly on the
client computer's hard disk that the client computer stored
which retrieves the next new segment signature, and then
the earlier version of the subscription file. The insert comreturns the method to step 1002. If there is not a match
mands 1102, 1104, and 1105 include the actual contents of
between the new segment signature and the old segment
the segments B2, B4, and B5, respectively. Although the
signature, then step 1002 delivers the method to step 1004,
where it is determined whether or not the last old segment 35 segment size is variable, the inclusion of the actual contents
of the new or changed segments B2, B4, and B5 represent
signature in the old signature list has been compared to the
the vast bulk of the update file 1100. In other words, the copy
new segment signature. If test 1004 determines that there are
commands 1101,1103,1106, and 1107 are negligible in size
no more old segment signatures in the old signature list, for
in comparison to the contents of the actual new or changed
example the segment signature 316 corresponding to segmentA6 shown in FIG. 4, then test 1004 delivers the method 40 segments which must be transmitted. In fact, in FIG. 9, the
update file 902 and in FIG. 8, the update file 801, are
to step 1006 where the server computer writes a command
in the update file to insert the new segment into the client
illustrated solely by the contents of the segments B2, B4, and
B5 and omit illustrating the actual copy and insert comcomputer's copy of the current version of the subscription
file. In other words, if step 1006 is reached, then there were
mands because they are negligible in size to the actual
no matches for the new segment signature in the old segment 45 content of the transmitted segments. Because the segments
are transmitted via electronic mail, they may be further
signature list. Then the method reverts to test 1007. If test
compressed to reduce their size and thereby minimize con1004 determines that there are more old segment signatures
nection time in receiving the electronic mail. Because the
in the old signature list, then the next old segment signature
update file is often transmitted over an insecure communiis considered at step 1006 and the method reverts to step
1002 for comparison of the new segment signature to the old so cation medium, such as the internet, the update file 902 is
optionally encrypted for security purposes according to the
segment signature.
Present invention.
FIG. 1 shows the update file which is communicated to
1
Once a delta or Update File has been generated, the server
the client computer 202 via electronic mail. Although the
creates an email message and sends the Update File as a
preferred embodiment of the present invention involves
electronic mail transmission of the update file to the client 5s simple binary attachment to the user. The user then receives
updates through the user's standard email client.
computer 201, there is no requirement that an electronic mail
1
For mobile professionals, this means making one connecfacility be used. FIG. 1 illustrates an update file generated
by the method according to the present invention illustrated
tion to the network to receive all messages and document
in FIG. 10 applied to the earlier and current versions of the
updates. It also means that the size of the attachment is a
signature list illustrated in FIGS. 4 and 7, respectively. The 60 fraction of the full file, containing only the changes to be
update file 1100 shown in FIG. 1 is preferable an execut1
applied. In other words, the user performs the standard task
able attachment to an electronic mail that is received by the
of checking email — i.e. a task that is familiar, secure,
client computer 201. The command 1101 implements the
and, for the most part, reliable. Once an Update Message
copy of segment A 1 into segment C1 illustrated by the arrow
arrives, the user simply launches or opens the attachment
910 shown in FIG. 9. The insert command 1102 implements 65 (again, in a way they are most familiar with) and the Mobile
the insertion of the segment B2 into segment C2 by arrow
Update Agent processes the changes automatically. It does
920 shown in FIG. 9. The copy command 1103 implements
this by substituting the new and modified segments in the
US 6,738,799 B2
13
14
Update File with the segments in the existing file, as
sages are then sent when the user logs on to check or send
e-mail. The messages are then received by the server's mail
illustrated in FIG. 9.
and parsed and processed
The
As shown in FIG. 9, segment B2 is a replacement segment
Update Server according to the present invention can access
for A2 in the current file, A2 is removed and B2 takes its
any WAN-based server, providing it has the Ilecplace, Segment B4 is a brand new segment that fits in after 5
essary network access rights, as illustrated in FIG. 12.
A3, and the files to the right of it (i.e., A4, AS, and A6) are
'ymantec
according to the present
moved over by one segment, Finally, segment B5 replaces
invention is the first solution in the document delivery or
A4 as it is the modified segment for A4, The last two
"push" category in which currently existing data like
segments in the
and A6) are reused' The lo reports, spreadsheets, presentations, etc., are delivered to the
updated file on the hard drive now has an identical "binary
desk-top 'intelligently,, It does this by watching the network
profile" Or
the
taken
the
files of folders for changes, delivering "just the changes" or
server. For the next
change, the server
take yet
notifies of changes, uses one familiar and reliable connecand
it against the latest
tion to deliver those changes (email), and provides seamless
and so on.
functionality, thereby leveraging the way users currently
The Mobile Update Server according to the present invenwork (in email),
tion preferably runs as a service under
NT 4.0
Document push, like software push, is only compelling if
(Workstation or Server) and can run across virtually any
it can deliver clear value to end-users and corporate IS.
network 'peratink? 'ystem that supports Windows NT.
Mobile Update according to the present invention offers two
However, it should be noted that the server according to the
tiers of benefits to corporations, F~~ the mobile user, it
present is
as
under any O receives updates anywhere, anytime (location-independent),
'
operating system. The server according to the Present invenit stays up-to-date on changes to key documents, it reduces
tion requires its own mail client (account) that is capable of
download time for email attachments, and it reduces the
sending and receiving email messages
the
hassle of accessing changes to key documents. For MIS
mail server. The server uses the mail client to receive and 25 personnel, it easily and effectively keeps mobile employees
process email-based subscription changes and requests autoconnected to corporate, L A N - files, it reduces the
~ ~ ~ ~ ~
matically generated by clients when they are in off-line
length of connection times (quicker email downloads), it
(i.e.,
the
It
uses the
reduces the number of connections made (leverages email
mail client to create and send notification and update
connection), and it reduce the size of email attachments
requests to its users. In addition, the server requires a
(delta technology),
network account with access rights that encompass those of 30
Although the present invention has been described with
its users, i.e. it should at least share the same profile as its
respect to its preferred embodiment, that embodiment is
users. This allows the server to access network files on the
offered by way of example, not by way of limitation, It is to
user's behalf to check for changes.
be understood that various additions and modifications can
When installing the server, the administrator specifies 35 be made without departing from the spirit and scope of the
where client install files should be located on the network for
present invention,~ ~ ~ all such additions ~ modi~ ~ d i and ~ l
easy install access by users. Once the server is set UP, the
fications are deemed to lie with the spirit and scope of the
user installs the client from the network drive. Each client is
present invention as set out in the appended claims,
registered with the server and writes its user name, email
What is claimed is:
address, etc., to the server's database. The client can now 40
1. Amethod for a first computer to generate an update for
subscribe to any network-based files located on a shared
transmission to a second computer that permits the second
directory.
computer to generate a copy of a current version of a file
FIG. 12 illustrates a large and diverse network of corncomprised of a first plurality of file segments from a copy of
puters suitable for implementing the methods according to
an earlier version of the file comprised of a second plurality
the present invention. Specifically, the server computer 1201 45 of file segments, such that each file segment corresponds to
accesses subscription files stored on any of the file servers
a portion of its respective file, the method comprising the
1202 through 1209. The personal computers 1210 through
steps of:
1212 are connected to local area network 1216. Remote
for each segment of the current version of the file,
personal computers 1213 through 1215 dial in to modems
(a) searching an earlier version of a signature list
1218 through 1220 respectively in order to receive their
corresponding to an earlier version of the file for an
electronic mail from the electronic mail facility 1221 and
old segment signature which matches a new segment
receive update files corresponding to the subscription files to
signature corresponding to the segment;
which they subscribe.
(b) if step (a) results in a match, writing a command in
FIG. 12 illustrates a sample deployment for Mobile
the update for the second computer to copy an old
Update according to the present invention. The clients runs 55
segment of the second computer's copy of the earlier
in both on-line mode and off-line mode. The client runs in
version of the file into the second computer's copy of
on-line mode when it is on the network where it can
the current version of the file, wherein the old
communicate directly with the server's database. The client
segment corresponds to the segment for which a
runs in off-line mode when the user is mobile and not
match was detected in step (a); and
connected to the network.
(c) if step (a) results in no match, writing a command
60
in the update for the second computer to insert a new
In the off-line mode according to the present invention,
segment of the current version of the file into the
the user communicates with the server through email messecond computer's copy of the current version of the
saging. If changes are made to the properties of a
file;
subscription, such as a change in polling frequency or a
wherein the new segment of the current version of the
re-sync request is made, the Mobile Update client automati- 65
cally generates an email message to the server which is then
file is written into the update and the unchanged
segment is excluded from the update; and
placed in the outbox of the user's mail client. These mes-
~
,
wherein steps (a) through (c) are performed by the first
computer, without interaction with the second
computer, in response to the first computer detecting a
change between the current version of the file and the
earlier version of the file.
2. The method of claim 1, wherein the new segment of the
current version of the file is compressed.
3. The method of claim 1, wherein the new segment of the
current version of the file is encrypted.
4. The method of claim 1, wherein the new segment of the
current version of the file is retrieved by the first computer
from a network drive.
5. The method of claim 1. further comarisinn:
a
(d) transmitting the update to the second computer as an
executable attachment by electronic mail, wherein the
executable attachment will cause the second computer
to generate a copy of the current version of the file from
the copy of the earlier version of the file, in response to
the second computer executing the attachment.
6. The method of claim 5, further comprising:
prior to step (a), performing a check on the current version
of the file to determine if the file has been altered since
a previous check and continuing to perform the remaining steps only if the check determines that the current
version of the file has been altered.
7. The method of claim 6, wherein the step of performing
a check is performed at periodic intervals.
8. The method of claim 6, wherein the step of performing
a check on the current version of the file comprises checking
a current time stamp of the current version of the file to
determine whether it differs from an earlier time stamp of the
file.
9. The method of claim 1, wherein the update comprises
a software update.
10. The method of claim 1, wherein the update comprises
a document update.
11. The method of claim 1, wherein the update comprises
a content uadate.
12. A computer readable storage medium, comprising
computer readable program code embodied on said computer readable storage medium, said computer readable
program code for programming a first computer to generate
an update for transmission to a second computer that permits
the second computer to generate a copy of a current version
of a file comprised of a first plurality of file segments from
a copy of an earlier version of the file comprised of a second
plurality of file segments, such that each file segment
corresponds to a portion of its respective file, the computer
readable program code causing the first computer to perform
the following steps:
for each segment of the current version of the file,
(a) searching an earlier version of a signature list
corresponding to an earlier version of the file for an
old segment signature which matches a new segment
signature corresponding to the segment;
(b) if step (a) results in a match, writing a command in
the update for the second computer to copy an old
segment of the second computer's copy of the earlier
version of the file into the second computer's copy of
the current version of the file, wherein the old
segment corresponds to the segment for which a
match was detected in step (a); and
(c) if step (a) results in no match, writing a command
in the update for the second computer to insert a new
segment of the current version of the file into the
second computer's copy of the current version of the
file;
s
lo
L
2s
30
35
wherein the new segment of the current version of the
file is written into the update and the unchanged
segment is excluded from the update; and
wherein steps (a) through (c) are performed by the first
computer, without interaction with the second
computer, in response to the first computer detecting a
change between the current version of the file and the
earlier version of the file.
13. The computer readable storage medium of claim 12,
wherein the new segment of the current version of the file is
compressed.
14. The computer readable storage medium of claim 12,
wherein the new segment of the current version of the file is
encrypted.
15. The computer readable storage medium of claim 12,
wherein the new segment of the current version of the file is
retrieved by the first computer from a network drive.
16. The computer readable storage medium of claim 12,
further comprising computer readable program code causing
the first computer to perform the following step:
(d) transmitting the update to the second computer as an
executable attachment by electronic mail, wherein the
executable attachment will cause the second comauter
to generate a copy of the current version of the file from
the copy of the earlier version of the file, in response to
the second computer executing the attachment.
17. The computer readable storage medium of claim 16,
further comprising computer readable program code causing
the first computer to perform the following step:
prior to step (a), performing a check on the current version
of the file to determine if the file has been altered since
a previous check and continuing to perform the remaining steps only if the check determines that the current
version of the file has been altered.
18. The computer readable storage medium of 17,
wherein the step of performing a check is performed at
periodic intervals.
19. The computer readable storage medium of claim 17,
wherein the stea of aerforminn a check on the current
a
version of the file comprises checking a current time stamp
of the current version of the file to determine whether it
differs from an earlier time stamp of the file.
20. The computer readable storage medium of claim 12,
wherein the update comprises a software update.
21. The computer readable storage medium of claim 12,
wherein the update comprises a document update.
22. The computer readable storage medium of claim 12,
wherein the update comprises a content update.
23. Amethod for a first computer to generate an update for
transmission to a second computer that permits the second
computer to generate a copy of a current version of a file
comprised of a first plurality of file segments from a copy of
an earlier version of the file comprised of a second plurality
of file segments, such that each file segment corresponds to
a portion of its respective file, the method comprising the
steps of:
for each segment of the current version of the file,
(a) searching an earlier version of a signature list
corresponding to an earlier version of the file for an
old segment signature which matches a new segment
signature corresponding to the segment;
(b) if step (a) results in a match, writing a command in
the update for the second computer to copy an old
segment of the second computer's copy of the earlier
version of the file into the second computer's copy of
the current version of the file, wherein the old
segment corresponds to the segment for which a
match was detected in step (a); and
L
40
45
so
5s
60
65
L
US 6,738,799 B2
17
(c) if step (a) results in no match, writing a command
in the update for the second computer to insert a new
segment of the current version of the file into the
second computer's copy of the current version of the
file;
wherein steps (a) through (c) are performed by the first
computer, without interaction with the second
computer, in response to the first computer detecting a
change between the current version of the file and the
earlier version of the file.
24. The method of claim 23, wherein the new segment of
the current version of the file is written into the update and
the unchanged segment is excluded from the update.
25. The method of claim 23, further comprising:
(d) transmitting the update to the second computer as an
executable attachment by electronic mail, wherein the
executable attachment will cause the second computer
to generate a copy of the current version of the file from
the copy of the earlier version of the file, in response to
the second computer executing the attachment.
26. The method of claim 25, further comprising:
prior to step (a), performing a check on the current version
of the file to determine if the file has been altered since
a previous check and continuing to perform the remaining steps only if the check determines that the current
version of the file has been altered.
27. The method of claim 23, wherein the update comprises a software update.
28, ~h~ method of claim 23, wherein the update
prises a document update.
29. The method of claim 23, wherein the update comprises a content update.
30. A computer readable storage medium, comprising
computer readable program code embodied on said computer readable storage medium, said computer readable
program code for programming a first computer to generate
an update for transmission to a second computer that permits
the second computer to generate a copy of a current version
of a file comprised of a first plurality of file segments from
a copy of an earlier version of the file comprised of a second
plurality of file segments, such that each file segment
corresponds to a portion of its respective file, the computer
readable Program code causing the first computer to perform
the following steps:
for each segment of the current version of the file,
(a) searching an earlier version of a signature list
corresponding to an earlier version of the file for an
old segment signature which matches a new segment
signature corresponding to the segment;
(b) if step (a) results in a match, writing a command in
the update for the second computer to copy an old
segment of the second computer's copy of the earlier
version of the file into the second computer's copy of
the current version of the file, wherein the old
segment corresponds to the segment for which a
match was detected in step (a); and
(c) if step (a) results in no match, writing a command
in the update for the second computer to insert a new
segment of the current version of the file into the
second computer's copy of the current version of the
file;
wherein steps (a) through (c) are performed by the first
computer, without interaction with the second
computer, in response to the first computer detecting a
change between the current version of the file and the
earlier version of the file.
18
31. The computer readable storage medium of claim 30,
wherein the new segment of the current version of the file is
written into the update and the unchanged segment is
excluded from the update.
s
32. The computer readable storage medium of claim 30,
further comprising computer readable Program code causing
the first computer to perform the following step:
(d) transmitting the update to the second computer as an
executable attachment by electronic mail, wherein the
10
executable attachment will cause the second computer
to generate a copy of the current version of the file from
the copy of the earlier version of the file, in response to
the second computer executing the attachment.
33. The computer readable storage medium of claim 32,
further comprising computer readable Program code causing
the first computer to perform the following step:
prior to step (a), performing a check on the current version
of the file to determine if the file has been altered since
a previous check and continuing to perform the remain20
ing steps only if the check determines that the current
version of the file has been altered.
34. The computer readable storage medium of claim 30,
wherein the update comprises a software update.
3 5 The computer readable storage medium of claim 30,
25 wherein the update comprises a document update.
36. The computer readable storage medium of claim 30,
wherein the update comprises a content update.
37. A method for a first computer to provide updates for
transmission to a second computer that permits the second
30 computer to obtain most recent versions of files, the method
comprising the steps of:
(a) determining whether the second computer has a latest
version of a file, wherein said determining is performed
by the first computer without interaction with the
35
second computer;
(b) generating an update, if the second computer does not
have a latest version of the file, wherein said generating
is performed by the first computer without interaction
40
with the second computer; and
(c) transmitting the update from the first computer to the
second computer.
38, me method of claim 37, wherein step (c) comprises
transmitting the update from the first computer to the second
45 computer as an executable attachment by electronic mail,
wherein the executable attachment will cause the second
computer to generate a copy of the current version of the file
from the copy of the earlier version of the file, in response
to the second computer executing the attachment.
39. The method of claim 37, wherein the update comso
prises a software update.
40. The method of claim 37, wherein the update comprises a document update.
41. The method of claim 37, wherein the update com55 prises a content update.
42. A computer readable storage medium, comprising
computer readable program code embodied on said computer readable storage medium, said computer readable
program code for programming a first computer to provide
60 updates for transmission to a second computer that permits
the second computer to obtain most recent versions of files,
the computer readable program code causing the first computer to perform the following steps:
(a) determining whether the second computer has a latest
65
version of a file, wherein said determining is performed
by the first computer without interaction with the
second computer;
US 6,738,799 B2
19
20
(b) generating an update, if the second computer does not
copy of the current version of the file from the copy of the
have a latest version of the file, wherein said generating
earlier version of the file, in response to the second computer
is performed by the first computer without interaction
executing the attachment.
with the second computer; and
44. The computer readable storage medium of claim 42,
(c) transmitting the update from the first computer to the 5 wherein the update comprises a software update.
45. The computer readable storage medium of claim 42,
second computer.
43. The computer readable storage medium of claim 42,
wherein the update comprises a document update.
46. The computer readable storage medium of claim 42,
wherein step (c) comprises transmitting the update from the
first computer to the second computer as an executable
wherein the update comprises a content update.
attachment by electronic mail, wherein the executable 10
* * * * *
attachment will cause the second computer to generate a
UNITED STATES PATENT AND TRADEMARK OFFICE
CERTIFICATE OF CORRECTION
PATENT NO.
APPLICATION NO.
DATED
INVENTOR(S)
: 6,738,799 B2
: 101452156
: May 18,2004
: Peter Dickinson
Page 1 of 1
It is certified that error appears in the above-identified patent and that said Letters Patent is
hereby corrected as shown below:
On the Title page, at Item (12), change the inventor name "Dickenson" to --Dickinson--;
On the Title page, at Item ( 7 3 , change the inventor name "Dickenson" to --Dickinson--;
Signed and Sealed this
Tenth Day of February, 2009
yAaa
JOHN DOLL
Acting Director of the United States Patent and Trademark Ofice
Disclaimer: Justia Dockets & Filings provides public litigation records from the federal appellate and district courts. These filings and docket sheets should not be considered findings of fact or liability, nor do they necessarily reflect the view of Justia.
Why Is My Information Online?