Downloading software from a server to a client
First Claim
1. In a computer system that includes a plurality of client systems and a plurality of server systems, all interconnected by a network infrastructure, wherein the plurality of server systems provide access to sites storing Web pages or other data, and wherein one or more of the client systems comprises a conventional television monitor and set-top box having a processing system that includes program instructions used in the operation of the one or more client systems, such as in retrieving data from said sites, a method of restoring a corrupted portion of the program instructions at the client system, wherein the restoring occurs automatically and without user intervention, the method comprising the client system performing the following steps:
- during initialization, checking the validity of system program instructions at the client system and thereafter checking the validity of application program instructions at the client system;
determining that a corrupted state exists in at least a portion of any of the checked program instructions;
in response to determining that the corrupted state exists, connecting the client system to one of the server systems or sites that contains a replacement for the corrupted portion of the program instructions;
receiving the replacement from said one of the server systems or sites; and
replacing the corrupted portion of the program instructions with the replacement.
4 Assignments
0 Petitions
Accused Products
Abstract
Systems and methods for obtaining and maintaining operable and updated versions of software on a client, which may be a set-top box or a personal computer. A server automatically downloads software updates over a satellite link to a client after such upgrades become available at the server without requiring interaction with a user. Similarly, corrupted software is automatically replaced by the client first automatically detecting if a corrupted state exists in local software or data using a checksum technique. If such corruption is found, the client automatically connects over the Internet to a server that contains a replacement for the corrupted program or data. The client then automatically receives a download of the program or data from the server.
-
Citations
29 Claims
-
1. In a computer system that includes a plurality of client systems and a plurality of server systems, all interconnected by a network infrastructure, wherein the plurality of server systems provide access to sites storing Web pages or other data, and wherein one or more of the client systems comprises a conventional television monitor and set-top box having a processing system that includes program instructions used in the operation of the one or more client systems, such as in retrieving data from said sites, a method of restoring a corrupted portion of the program instructions at the client system, wherein the restoring occurs automatically and without user intervention, the method comprising the client system performing the following steps:
-
during initialization, checking the validity of system program instructions at the client system and thereafter checking the validity of application program instructions at the client system;
determining that a corrupted state exists in at least a portion of any of the checked program instructions;
in response to determining that the corrupted state exists, connecting the client system to one of the server systems or sites that contains a replacement for the corrupted portion of the program instructions;
receiving the replacement from said one of the server systems or sites; and
replacing the corrupted portion of the program instructions with the replacement. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10)
the client system selecting a local connection script associated with said one of the server systems or sites that contains the replacement; and
the client system connecting to said one of the server systems or sites using the local connection script.
-
-
4. The method according to claim 3, wherein the act of the client system selecting a local connection script comprises the acts of:
-
the client system reading a default local connection script from a memory;
the client system using the default local connection script to connect to a server system that contains the selected local connection script; and
the act of the client system downloading the selected local connection script from the server system that contains the selected local connection script.
-
-
5. The method according to claim 1, wherein receiving the replacement comprises the acts of:
-
the client system automatically requesting the replacement from said one of the server systems or sites after connecting to said one of the server system or sites; and
the replacement being downloaded from said one of the server systems or sites over the network infrastructure.
-
-
6. The method according to claim 5, wherein the act of the replacement being downloaded comprises the act of the replacement being downloaded over a satellite link that is included in the network infrastructure.
-
7. The method according to claim 5, further comprising the acts of:
-
writing the replacement to a random access memory associated with the client system;
decompressing the replacement; and
writing the decompressed replacement to a flash memory.
-
-
8. The method according to claim 1, wherein the network infrastructure comprises the Internet.
-
9. The method according to claim 8, wherein the stored program instructions comprise an Internet browser.
-
10. The method according to claim 1, wherein the replacement comprises a Java applet.
-
11. A computer program product for implementing, in a computer system that includes a plurality of client systems and a plurality of server systems, all interconnected by a network infrastructure, wherein the plurality of server systems provide access to sites storing Web pages or other data, and wherein one or more of the client systems comprises a conventional television monitor and set-top box having processing system that includes program instructions used in the operation of the one or more client systems, such as in retrieving data from said sites, a method of restoring a corrupted portion of the program instructions at the client system, wherein the restoring occurs automatically and without user intervention, the computer program product comprising:
-
a computer-readable medium carrying computer-executable instructions for implementing the invention, the computer-executable instructions comprising;
program code means for checking, during initialization, the validity of system program instructions at the client system and thereafter checking the validity of application program instructions at the client system;
program code means for determining whether a corrupted state exists in any portion of the checked program instructions;
program code means for connecting the client system to one of the server systems or sites that contains a replacement for the corrupted portion of the program instructions if it has been determined that the corrupted state exists;
program code means for receiving the replacement from said one of the server systems or sites; and
program code means for replacing the corrupted portion of the program instructions with the replacement for the corrupted portion of the program instructions. - View Dependent Claims (12, 13, 14, 15)
program code means for writing the replacement to a random access memory associated with the client system;
program code means for decompressing the replacement; and
program code means for writing the decompressed replacement to a flash memory.
-
-
14. A computer program product as defined in claim 11, wherein the program code means for automatically determining whether a corrupted state exists in the stored program instructions operate upon the client being powered up.
-
15. A computer program product as defined in claim 11, wherein the program code means for automatically determining whether a corrupted state exists in the stored program instructions operate upon the client establishing communication with one of the servers.
-
16. In a computer system that includes a plurality of client systems and a plurality of server systems, all interconnected by a network infrastructure, wherein the plurality of server systems provide access to sites storing Web pages or other data, and wherein one or more of the client systems comprises a conventional television monitor and set-top box having a processing system that includes one or more blocks of program instructions used in the operation of the one or more client systems, such as in retrieving data from said sites, each of the one or more blocks of program instructions being identified by a specific storage address at the client system, a method of restoring a corrupted block of program instructions at the client system, wherein the restoring occurs automatically and without user intervention, the method comprising the client system performing the following steps:
-
checking the validity of the one or more blocks of program instructions at the client system, wherein any particular block of program instructions may include system program instructions, application program instructions, or both system and application program instructions, and wherein the checking may occur at any time, including after initialization;
determining that a corrupted state exists in at least one block of program instructions and identifying a specific block of program instructions that is corrupted;
in response to determining that the corrupted state exists, connecting the client system to one of the server systems or sites that contains a replacement block for the specific block of program instructions that is corrupted;
requesting the replacement block of program instructions from said one of the server systems or site;
receiving the replacement block of program instructions from said one of the server systems or sites; and
replacing the specific block or program instructions that is corrupted with the replacement block. - View Dependent Claims (17, 18, 19, 20, 21, 22, 23, 24)
the client system selecting a local connection script associated with said one of the server systems or sites that contains the replacement; and
the client system connecting to said one of the server systems or sites using the local connection script.
-
-
19. The method according to claim 18, wherein the act of the client system selecting a local connection script comprised the acts of:
-
the client system reading a default local connection script from a memory;
the client system using the default local connection script to connect to a server system that contains the selected local connection script; and
the act of the client system downloading the selected local connection script from the server system that contains the local connection script.
-
-
20. The method according to claim 16, wherein the client system receives the replacement block over a satellite link that is included in the network infrastructure.
-
21. The method according to claim 16, further comprising the acts of:
-
writing the replacement block to a random access memory associated with the client system;
decompressing the replacement block; and
writing the decompressed replacement block to a flash memory.
-
-
22. The method according to claim 16, wherein the network infrastructure comprises the Internet.
-
23. The method according to claim 22, wherein the one or more blocks of program instructions comprise at least a portion an Internet browser.
-
24. The method according to claim 16, wherein the replacement block comprises at least a portion of a Java applet.
-
25. A computer program product for implementing, in a computer system that includes a plurality of client systems and a plurality of server systems, all interconnected by a network infrastructure, wherein the plurality of server systems provide access to sites storing Web pages or other data, and wherein one or more of the client systems comprises a conventional television monitor and set-top box having a processing system that includes one or more blocks of program instructions used in the operation of the one or more client systems, such as in retrieving data from said sites, each of the one or more blocks of program instructions being identified by a specific storage address at the client system, a method of restoring a corrupted block of program instructions at the client system, wherein the restoring occurs automatically and without user intervention, the computer program product comprising:
-
a computer-readable medium carrying computer-executable instructions for implementing the invention, the computer-executable instructions comprising;
program code means for checking the validity of the one or more blocks of program instructions at the client system, wherein any particular block of program instructions may include system program instructions, application program instructions, or both system and application program instructions, and wherein the checking may occur at any time, including after initialization;
program code means for determining that a corrupted state exists in at least one block of program instructions and identifying a specific block of program instructions that is corrupted;
program code means for, in response to determining that the corrupted state exists, connecting the client system to one of the server systems or sites that contains a replacement block for the specific block or program instructions that is corrupted;
program code means for requesting the replacement block of program instructions from said one of the server systems or site;
program code means for receiving the replacement block of program instructions from said one of the server systems or sites; and
program code means for replacing the specific block or program instructions that is corrupted with the replacement block. - View Dependent Claims (26, 27, 28, 29)
program code means writing the replacement block to a random access memory associated with the client system;
program code means for decompressing the replacement block; and
program code means for writing the decompressed replacement block to a flash memory.
-
-
28. A computer program product as defined in claim 25, wherein the program code means for determining whether a corrupted state exists operate upon the client system being powered up.
-
29. A computer program product as defined in claim 25, wherein the program code means for determining whether a corrupted state exists operate upon the client system establishing communication with one of the server systems or sites.
Specification