U.S. patent application number 09/738389 was filed with the patent office on 2002-06-20 for updating information in network devices.
Invention is credited to Compas, Jeffrey C., Stockwell, Travis M..
Application Number | 20020078222 09/738389 |
Document ID | / |
Family ID | 24967788 |
Filed Date | 2002-06-20 |
United States Patent
Application |
20020078222 |
Kind Code |
A1 |
Compas, Jeffrey C. ; et
al. |
June 20, 2002 |
Updating information in network devices
Abstract
A method for obtaining information includes retrieving in a
network device a listing of available information update packages
and automatically updating the network device based on the listing.
Transferring information update packages can include determining
whether a network device is using a computer network connection and
transferring portions of the package to the network device only
while the network device is not using the network connection.
Inventors: |
Compas, Jeffrey C.; (East
Lehi, UT) ; Stockwell, Travis M.; (Riverton,
UT) |
Correspondence
Address: |
FISH & RICHARDSON, PC
4350 LA JOLLA VILLAGE DRIVE
SUITE 500
SAN DIEGO
CA
92122
US
|
Family ID: |
24967788 |
Appl. No.: |
09/738389 |
Filed: |
December 14, 2000 |
Current U.S.
Class: |
709/232 ;
717/172 |
Current CPC
Class: |
H04L 9/40 20220501; H04L
67/34 20130101; H04L 69/329 20130101; H04L 41/0893 20130101 |
Class at
Publication: |
709/232 ;
717/172 |
International
Class: |
G06F 015/16 |
Claims
What is claimed is:
1. A method comprising: retrieving in a network device a listing
containing information about available information update packages;
and automatically updating the network device based on the
listing.
2. The method of claim 1 wherein information update packages can
contain software, data or document files.
3. The method of claim 1 wherein automatically updating the listing
includes retrieving specified update packages based on the
listing.
4. The method of claim 1 wherein the listing associates update
packages with network devices to which they apply.
5. The method of claim 1 wherein updating the network device
includes: removing old versions of information; and installing new
versions of information.
6. A method comprising: determining whether a network device is
using a computer network connection; and transferring portions of a
package to the network device in a manner based on the determined
usage of the network connection by the network device.
7. The method of claim 6 including adjusting the sizes of different
portions of the package to be downloaded based on the determined
usage of the network connection by the network device.
8. The method of claim 7 wherein if the network connection is
determined to be in use, the portion size is reset to an original
state.
9. A computer system comprising: a computer network; a network
device coupled to the network; a file server coupled to the network
and containing information update packages; a managing server
coupled to the network and containing a listing about information
update packages located on the file servers; and wherein the
network device is configured to obtain the listing and
automatically update the network device based on the listing.
10. The system of claim 9 wherein the information in the listing
includes the locations of servers on which the packages are
stored.
11. The system of claim 9 wherein the listing associates update
packages with network devices and groups of network devices to
which they apply.
12. The system of claim 9 wherein the downloader is configured to
obtain the packages by transferring the packages in portions.
13. The system of claim 12 wherein the downloader increases the
size of the packages when the network device is not using its
connection to the network.
14. An article comprising a computer-readable medium that stores
computer-executable instruction for causing a computer system to:
obtain a listing containing information about available information
update packages from a managing server; and automatically update
the network device based on the listing.
15. The article of claim 14 wherein the listing contains
information about where the available packages can be obtained by
the network device.
16. The article of claim 14 wherein the listing specifies specific
packages corresponding to particular network devices.
17. The article of claim 14 wherein updating the network device
includes: removing old versions of information; and installing new
versions of information.
18. The article of claim 17 wherein the new information update
packages are obtained over the network by: checking if the network
device is using a computer network connection; and retrieving
portions of the package to the network device only while the device
is not using the network connection.
19. The article of claim 18 wherein before portions of the packages
are downloaded the size of the portion is increased.
20. The article of claim 19 wherein if the network is found busy
the portion size is reset to its original state.
21. A device comprising: a downloader component in a network device
configured to retrieve a listing stored on a managing server
containing information about information update packages located on
file servers, obtain those packages over a computer network
connection, and install them on the network device.
22. The device of claim 21 wherein the downloader comprises a
software component stored in the network device's memory.
23. The device of claim 21 wherein the downloader comprises a
hardware component of the network device.
24. The device of claim 21 wherein the listing contains information
about where available packages can be obtained by the downloader
component.
25. The device of claim 21 wherein the listing specifies specific
packages corresponding to particular network devices.
26. The device of claim 21 wherein the downloader obtains the
packages by transferring them in portions over the computer network
connection.
27. The device of claim 21 wherein the downloader increases the
size of the packages when the network device is not using its
computer network connection.
28. The device of claim 21 wherein the computer network connection
is a connection to the Internet.
29 The device of claim 21 where the listing contains information
encoded using eXtensible Markup Language (XML).
30. The device of claim 21 wherein the downloader transfers the
packages over the computer network connection using the HyperText
Transfer Protocal (HTTP) GET command.
Description
BACKGROUND
[0001] This invention relates to updating information in network
devices.
[0002] In push-based methods to update information (such as
software, data or documents) in network devices file servers that
store the information initiate the transfer of update packages to
the network devices when the network devices become available.
[0003] In pull-based methods of distribution, the copying of an
update package from the server is initiated by the network device.
Typically, the network device requests an update package from the
server, downloads the package, and installs it.
[0004] In both of these methods, the communication bandwidth
available to the user diminishes for other applications running on
the network device while the transfer is in progress.
BRIEF DESCRIPTION OF THE DRAWINGS
[0005] FIG. 1 shows a computer network system.
[0006] FIG. 2 shows a listing file.
[0007] FIG. 3 is a flow chart.
[0008] FIG. 4 is a flow chart.
[0009] FIG. 5 shows an example of transferring information update
packages over a computer network.
[0010] FIG. 6 shows a set of rules associated with conflicting
client computer instructions.
DETAILED DESCRIPTION
[0011] As shown in FIG. 1, a computer system 2 includes network
devices 3 and file servers 4, 5 that can communicate over a network
6. Each network device 3 has a downloader component 7 that controls
the automatic updating of information on that machine. A managing
server 5 stores a listing 8 that contains information about
available updates for the network devices. Update packages 9 can be
stored on one or more servers 4.
[0012] In one such system, the Internet is the network 6, web
servers are the file servers 4, 5, and Internet appliances or
personal computers with connections to the Internet act as the
network devices 3.
[0013] An example of the listing 8 kept on the managing server is
shown in FIG. 2. In general, the listing 8 contains network device
targeting information as well as descriptions of the available
update packages 9. One section 30 in the listing 8 can list update
packages that apply to all network devices. Other sections 32, 34
can list information applicable to individual network devices or
groups of network devices that are defined (by listing) in another
section 36 of the listing. The information about the update
packages 9 includes the name 38, version 40, and location 42 of
each package. extensible Markup Language (XML) can be used as the
encoding language for the listing file. Files expressed in XML can
be stored as readable text files, are easily transported over
existing networks through HyperText Transfer Protocol ("HTTP"),
work well within existing networks, and are compatible with many
languages and development environments. Also, using XML, new
information about update packages 9 can be added without affecting
the downloader components 7 already in place. Newer versions of the
downloader component 7 easily can be implemented to operate on
older versions of the listing 8.
[0014] As indicated by FIG. 3, to update information, the
downloader component 7 in a particular network device 3 obtains 11
the listing 8 of available updates 9 from the managing server 5
through the network 6. This occurs automatically at at times that
can be set by the user or preset in the factory during
manufacturing. The downloader 7 parses 12 the listing 8 for install
and uninstall instructions for that particular network device
3.
[0015] The downloader 7 determines 13 whether any information
stored on the network device 3 has to be removed to permit the
update to occur. The downloader 7 then removes 14 any such
information. Next, the downloader 7 identifies 15 what, if any,
packages 9 are to be installed on the device 3 and on which servers
4 they are located. That information can be obtained from the
listing file 8. The downloader 7 then downloads 16 the packages 9
and installs 17 the packages 9 on the network device 3.
[0016] After the packages 9 have been downloaded and installed, the
downloader 7 sends 18 a status report to the managing server 5 so
that, if there were any problems with the transfer or installation,
the system's administrator can correct them.
[0017] FIG. 4 illustrates an implementation of an automatic
downloading process in which each package 9 is transferred from the
server 4 to the network device 3 in portions. Before each portion
is transferred, the downloader component 7 initially checks 21 if
the network device 3 is using the network 6 connection 10. If the
connection 10 is not in use, the downloader 7 increases 23 the size
of the portion to be transferred and retrieves 24 the next portion
of the package 9 from the server 4. If the connection 10 is being
used, the downloader 7 resets 26 the portion size to its original
state and enters 27 a sleep mode for a period of time before
checking 21 again. After transferring 23 each portion, the
downloader 7 determines 25 whether the entire package 9 has been
transferred. If transfer of the package 9 is still incomplete, the
downloader 7 returns to block 21 and repeats the process of
checking 21 the connection 10, increasing 23 the portion size, and
retrieving 24 the next portion.
[0018] During the process of automatically downloading the package,
if the downloader 7 finds the connection 10 in use by the network
device at any point, it will revert to the beginning of the process
so as not to decrease the bandwidth available to the user.
[0019] An example of how such a process may occur is shown by FIG.
5. The package 9 in this example is thirteen kilobytes in size, and
the downloader component 7 is configured to have an initial portion
size of zero and to increase the portion size by one kilobyte (kB)
each time it retrieves a portion of the package.
[0020] Assuming that the downloader 7 initially determines that the
connection 10 is unused by the network device 3, the downloader
increases the portion size from zero to one kilobyte and transfers
a copy of the first kilobyte 60 of the package 9 from the server to
a storage 62 associated with the network device 3. The downloader 7
then determines that the transfer is unfinished and checks whether
the connection 10 is in use. Assuming that the connection still is
unused, the downloader 7 increases the portion size to two
kilobytes and transfers the next portion 64 of the package 9.
[0021] Transfer of the package 9 is still unfinished, and again the
downloader 7 checks if the network device 3 is using the connection
10. Assuming that the connection 10 is now in use by the device 3,
the downloader 7 resets the portion size to its original size of
zero and enters the sleep mode for a predetermined period of time.
The downloader 7 subsequently checks the connection 10, finds that
it is unused, increases the portion size from zero to one kilobyte,
and retrieves the next portion 66 of the package 9. It then repeats
the process of checking the connection 10, increasing the portion
size by one kilobyte, and transferring 23 the portions 68, 70 and
72 until the entire package 9 has been transferred.
[0022] In some other implementations, the increase in size of
transfer can vary. The increases can be in different units than
kilobytes, and can increase by some formula such as twice or three
times the previous portion size.
[0023] In some situations, a network device 3 may be instructed to
perform conflicting operations by the listing 8. For example, a
specific device might be instructed to install a package that all
devices are instructed to uninstall. FIG. 6 shows a set of rules
that can be used to resolve such conflicts and can be implemented
by the individual downloaders 7.
[0024] The automatic downloading process described above can be
implemented, for example, in Internet or Web appliances, such as
the Intel.RTM. Dot.Station.TM. Web appliance or other personal
computers functioning as network devices connected to the Internet.
The downloader component 7 can use, for example, the HTTP GET
command to obtain the listing 8 and apportioned update packages 9.
Other transfer methods such as File Transfer Protocol ("FTP") or
NFS also can be used. However, by using the HTTP byte range
protocols with the transfer method described above, the size of the
downloaded byte chunks can be throttled by the downloader 7. This
allows the user to have uninterrupted use of the network during the
update process. Also, if the connection 10 is interrupted, HTTP
allows the downloader 7 to resume the transfer from where it left
off, rather than having to restart the transfer from the
beginning.
[0025] Advantages of these techniques may include the ability for
updates to be made over the course of several user network sessions
so as not to impinge on the network connection 10 bandwidth
available to the user. In addition, the automation of the
distribution can greatly reduce the amount of user participation
required for the updating process. All of these factors could
create a higher probability of success in updating information on
network devices.
[0026] Various features of the system can be implemented in
hardware, software, or a combination of hardware and software. For
example, some aspects of the system can be implemented in computer
programs executing on programmable computers. Each program can be
implemented in a high level procedural or object-oriented
programming language to communicate with a computer system.
Furthermore, each such computer program can be stored on a storage
medium, such as read-only-memory (ROM) readable by a general or
special purpose programmable computer, for configuring and
operating the computer when the storage medium is read by the
computer to perform the functions described above.
[0027] Other implementations are within the scope of the following
claims.
* * * * *