USOO7143405B2

(12) United States Patent (10) Patent No.: US 7,143,405 B2 Liu et al. (45) Date of Patent: Nov. 28, 2006

(54) METHODS AND ARRANGEMENTS FOR 6,457,175 B1* 9/2002 Lerche ...... 717/172 MANAGING DEVICES FOREIGN PATENT DOCUMENTS (75) Inventors: Jun Liu, Bellevue, WA (US); EP 11 SO 207 10, 2001 Sureshkumar Natarajan, Redmond, WA (US); Vladimir Rovinsky, OTHER PUBLICATIONS Redmond, WA (US); John M. Hollingsworth et al. “Using Content Derived Names for Configu Parchen, Seattle, WA (US); Soemin ration Management'; 1997: ACM; pp. 104-109. Tjong, Redmond, WA (US) Stuart, Linda; 'NetWare Mobile Extends Network to off-line Users' Info Canada v21, Novell's Remote Access Software Product (73) Assignee: Corporation, Redmond, WA Announcement, Feb. 1996, p. 13. (US)US (Continued) (*) Notice: Subject to any disclaimer, the term of this Primary Examiner Tuan Dam patent is extended or adjusted under 35 Assistant Examiner Chuck Kendall U.S.C. 154(b) by 905 days. (74) Attorney, Agent, or Firm—Lee & Hayes, PLLC (21) Appl. No.: 09/755,874 (57) ABSTRACT (22) Filed: Jan. 5, 2001 Improved methods and arrangements are provided for updat O O ing Software and other data in managed devices. The meth (65) Prior Publication Data ods and arrangements provide for a failsafe upgrade to all of US 2002/0092O11 A1 Jul. 11, 2002 the code and any data in the managed device, including any code or data used to provide Such upgrades. For example, a (51) Int. Cl. method for providing software to a device is provided that G06F 9/44 (2006.01) includes identifying essential software within the device: G06F 15/177 (2006.01) essential Software including Software necessary to operate (52) U.S. Cl...... 717/173; 717/169; 717/170; the device and provide external communications. The 717/171; 709/220; 709/221 method further includes identifying remaining portions of (58) Field of Classification Search ...... 717/168–178; Software within the device as non-essential software, and 709/220 221 downloading new essential Software from an external Source See application file for complete search history. to the device and storing the new essential software in memory by overwriting at least a portion of the non (56) References Cited essential software. After downloading the new essential U.S. PATENT DOCUMENTS Software, the method further includes attempting to operate the device and provide external communications using the 5,519,869 A * 5/1996 Payne et al...... 713/2 new essential Software, and upon Successfully operating the 5,649,196 A 7, 1997 Woodhill et al. device and providing external communications, using the 5,752,042 A * 5/1998 Cole et al...... 717/173 new essential software to selectively download new non 5,765,173 A 6, 1998 Cane et al. essential software and store the new non-essential software 5,848,064 A 12/1998 Cowan in memory by overwriting at least a portion of the old 6,269,396 B1* 7/2001 Shah et al...... 709,223 essential software. 6,314,565 B1 1 1/2001 Kenner et al. 6,438,606 B1 8/2002 Ward ...... TO9,238 27 Claims, 5 Drawing Sheets o 402-N Using existing E.device and

403 Determine which codeidata to download

44- Deoristical rivate

406- "Fairficies

408- Versity.

4. 'Y. Using new essential software, download needed portions of new Revertto using existing software non-essential software, overwriting oldessential softwaTeas needed US 7,143.405 B2 Page 2

OTHER PUBLICATIONS Kerstetter, J.; “netDeploy 3.0 Packs lots of ESD Power” PC Week, v14, na6, Nov. 1997, p. 33. Spanbauer, Scott; "Happy 2000 or 1900. Qwerty Versus Dvorak. & & Stop a Hard Disk from Churning” PC World vol. 14, No. 1, Nov. Hollingsworth et al.: "Binary Version Management for Computa 1996, p. 286+. tional Grids”, 1999; Parallel Procesing Letters v9 n2 1999 p. Millar, E. L., Akala, K. Hollingsworth, J. K.: “Using Content- 215-225; issn 0219-6264. Derived Names for Package Management in Tci” USENIX Assoc. Berkeley, CA, Sep. 1998, pp. 171-179. * cited by examiner U.S. Patent Nov. 28, 2006 Sheet 1 of 5 US 7,143,405 B2

U.S. Patent Nov. 28, 2006 Sheet 2 of 5 US 7,143,405 B2

99€

–+–

G7Z#7ZZ

U.S. Patent Nov. 28, 2006 Sheet 4 of 5 US 7,143,405 B2

400 \

402 Using existing software, boot client device and Connect to server device

403 Determine which Codefodata to download

404 Determine which code/data is essential software and which is non-essential Software

Using essential software, download new essential 406 Software, Overwriting non-essential Software as needed

408 Using new essential software, attempt to reboot client device and reconnect to server device

Succes Failure 411

410 Using new essential software, download needed portions of new Revert to using existing software non-essential software, overwriting Old essential Software as needed U.S. Patent Nov. 28, 2006 Sheet 5 of 5 US 7,143,405 B2

502 Assign data files to groups

504 Compress each group to form a corresponding compressed image

506 Associate each compressed image with a unique identifier

508 Generate a listing of unique identifiers

510 Store compressed images and listing unique identifiers to client device

512 During an upgrade process, Compare listing of unique identifiers with downloaded latest listing of unique identifiers from server device

514 Selectively download missing compressed images from server device to client device US 7,143,405 B2 1. 2 METHODS AND ARRANGEMENTS FOR essential Software and storing the new non-essential soft MANAGING DEVICES ware in persistent memory by overwriting at least a portion of the old essential software or old non-essential software. RELATED APPLICATIONS The above stated needs and others are also met by a claimed apparatus that is operated using software and opera This patent application is related to co-pending U.S. tively configured to identify as essential software that soft patent application Ser. No. 09/756,052, filed Jan. 5, 2001, ware which is necessary to operate the apparatus and pro entitled “Methods and Arrangements for Providing vide for external communications. The apparatus is further Improved Software Version Control in Managed Devices.” configured to identify remaining portions of Software as 10 being non-essential Software, download new essential soft TECHNICAL FIELD ware from an external source, and store the new essential Software in memory by overwriting at least a portion of the This invention relates to managed devices, and more non-essential Software. particularly to improved methods and arrangements for use In accordance with still further aspects of the present in managing Software on the devices. 15 invention, a system is claimed as having a network, a server device and a client device. The server device and client BACKGROUND devices are each operatively coupled to the network. The client device is configured to selectively download data from Managed devices, such as computers, set-top boxes, the server client via the network, and operate substantially as entertainment centers, communication devices, and the like, the apparatus described above. often require periodic updates to their software suite. Such updates are typically carried out via another computer or BRIEF DESCRIPTION OF THE DRAWINGS device that is coupled to the managed device and arranged to download the updated software or other data to the A more complete understanding of the various methods managed device. For example, a server computer can be 25 and arrangements of the present invention may be had by configured to provide downloadable updates to client reference to the following detailed description when taken in devices over a communication link. conjunction with the accompanying drawings wherein: Conventional updating techniques tend to rely upon down FIG. 1 is a block diagram depicting an exemplary arrange loader code within the managed device to handle the ment having a server device and a (managed) client device. upgrades and to prevent upgrade failures, which might 30 FIG. 2 is a block diagram of a computer environment otherwise render the managed device useless. As such, the having certain elements that are Suitable for use in a server downloader code, which can be significant in size, is usually device and/or in a (managed) client device, e.g., as in FIG. permanently stored in the managed device. Consequently, 1. the down loader code cannot usually be upgraded itself FIG. 3 is an illustrative diagram depicting a data storage using conventional methods. 35 element within a (managed) client device, e.g., as in FIG. 1, It would be beneficial to be able to upgrade the down having certain types of Software (code/data) therein. loader code within a managed device. Hence, there is a need FIG. 4 is a flow diagram depicting a method for upgrading for improved methods and arrangements for updating the Software within a (managed) client device, e.g., as in FIG. 1. software in such managed devices. Preferably, the methods FIG. 5 is a flow diagram depicting a method for control and arrangements will allow for a failsafe upgrade to all of 40 ling versions of Software within a (managed) client device, the code in the managed device, including any code used to e.g., as in FIG. 1. provide Such upgrades. DETAILED DESCRIPTION SUMMARY 45 An effective upgrade systems design should be fail proof. Improved methods and arrangements are provided for provide revision control and be sufficiently fast at down updating Software and other data in managed devices. The loading the updated code/data. The upgrade process for methods and arrangements provide for a failsafe upgrade to certain conventional appliances, such as, e.g., an MSN all of the code and any data in the managed device, including Companion device, needs to meet all three of these require any code or data used to provide Such upgrades. 50 ments to be effective, because such appliance class devices By way of example, in accordance with certain aspects of do not typically have the processing and/or data storage the present invention, a method for providing software to a capabilities as do regular personal computers (PCs). Here, if device is claimed. Here, the method includes identifying an upgrade fails in the middle of the process, it could essential software within the device, the essential software potentially render the device totally useless. including software necessary to operate the device and 55 Therefore, the goal of an upgrade process design is to provide external communications. The method further ensure that there is always a way to download new upgrades includes identifying remaining portions of Software within even if the last upgrade failed. The conventional approach to the device as non-essential Software, and downloading new this problem is to reserve some of the data storage space, and essential Software from an external source to the device and place a permanent down loading Software (hereinafter, storing the new essential software in memory by overwriting 60 referred to generally as a “down loader') in it. Here, the at least a portion of the non-essential Software. In certain down loader is a separate piece of Software that is not used implementations the method further includes after down during the normal operation of the managed device. loading the new essential software, attempting to operate the There are several drawbacks with this technique, how device and provide external communications using the new ever. First, the down loader code can be quite significant in essential Software and upon Successfully operating the 65 size. In the MSN Companion, for example, the downloader device and providing external communications using the includes kernel code, file system drivers, TCP/IP stack new essential Software, selectively downloading new non code, communication device drivers, WinINET code, secu US 7,143,405 B2 3 4 rity, and display drivers. Adding more storage to Such tures including a memory bus or memory controller, a devices can be prohibitively expensive, since it would likely peripheral bus, and a local bus using any of a variety of bus require additional persistent memory (e.g., FLASH architectures. System memory 222 typically includes read memory). Secondly, the down loader itself in Such a con only memory (ROM) 224 and random access memory figuration cannot be upgraded. This could present a problem 5 (RAM) 225. A basic input/output system 226 (BIOS), con in the long run since, for example, the communication taining the basic routine that helps to transfer information protocols, which the down loader uses, may need to change between elements within computing system 200. Such as over time to keep up with the evolving communications during start-up, is stored in ROM 224. Computing system technology and/or infrastructure. Thus, keeping the down 200 further includes a hard disk drive 227 for reading from loader fixed forever would be troublesome. For managed 10 and writing to a hard disk, not shown, a magnetic disk drive devices connected to the Internet, it may also be desirable to 228 for reading from or writing to a removable magnetic change Internet service providers (ISPs) from time to time. disk 229, and an optical disk drive 30 for reading from or A fixed down loader, however, could make changing ISPs writing to a removable optical disk 231 such as a CD ROM difficult, if not impossible. Thirdly, a fixed down loader or other optical media. Hard disk drive 227, magnetic disk simply cannot provide newer and potentially richer user 15 drive 228, and optical disk drive 230 are connected to interactivity features that enhance the upgrade process. To system bus 223 by a hard disk drive interface 232, a keep the downloader's size to a minimum, designers usually magnetic disk drive interface 233, and an optical drive have to reduce the number and variety of such user features. interface 234, respectively. These drives and their associated For example, for certain managed devices it would be nice computer-readable media provide nonvolatile storage of to show the user information about any new enhancements 20 computer readable instructions, data structures, computer during the often long upgrade download. The code required programs and other data for computing system 200. to provide this and other capabilities tends to be too large in A number of computer programs may be stored on the size to provide in a typical fixed down loader. hard disk, magnetic disk 229, optical disk 231, ROM 224 or The following detailed description presents exemplary RAM 225, including an 235, one or more improved methods and arrangements that overcome the 25 application programs 236, other programs 237, and program above-mentioned and other drawbacks associated with con data 238. ventional down loaders. Before describing the methods and A user may enter commands and information into com arrangements in greater detail, exemplary block diagrams puting system 200 through various input devices such as a are presented as depicting an exemplary client-server man keyboard 240 and pointing device 242 (Such as a mouse). A aged device arrangement (FIG. 1) and an exemplary client 30 camera/microphone 255 or other like media device capable and/or server device (FIG. 2). of capturing or otherwise outputting real-time data 256 can With reference to FIG. 1, an arrangement 100 is depicted also be included as an input device to computing system as having a server device 102, a network 104 and a (man 200. The real-time data 256 can be input into computing aged) client device 106. Server device 102 and client device system 200 via an appropriate interface 257. Interface 257 106 are each configured to communicate with one another, 35 can be connected to the system bus 223, thereby allowing via network 104. Thus, for example, client device 106 may real-time data 256 to be stored in RAM 225, or one of the from time-to-time check with server device 102 to determine other data storage devices, or otherwise processed. if any updates to the code/data stored within client device As shown, a monitor 247 or other type of display device 106 exist and are available from server device 102. If so, is also connected to the system bus 223 via an interface. Such then client device 106 and server device 102 may immedi- 40 as a video adapter 248. In addition to the monitor, computing ately begin an updating process, or otherwise selectively system 200 may also include other peripheral output devices establish a time in the future to begin Such an updating (not shown), Such as speakers, printers, etc. process. Computing system 200 may operate in a networked As depicted herein, server device 102 can be any type of environment using logical connections to one or more computer or like machine that is capable of communicating 45 remote computers, such as a remote computer 249. Remote updated code and/or data to client device 106. Likewise, computer 249 may be another , a server, client device 106 can be any type of computer or like a router, a network PC, a peer device or other common machine capable of receiving the updated code and/or data network node, and typically includes many or all of the from server device 102. By way of example, client device elements described above relative to computing system 200, 106 may be a computer, an appliance, a mobile communi- 50 although only a memory storage device 250 has been cation device, etc. Server device 102 may, for example, illustrated in FIG. 2. include a general-purpose or special-purpose computer, or The logical connections depicted in FIG. 2 include a local like device. area network (LAN) 251 and a wide area network (WAN) With these alternatives in mind, attention is now drawn to 252. Such networking environments are commonplace in FIG. 2, which is a block diagram depicting an exemplary 55 offices, enterprise-wide computer networks, Intranets and computing system 200 having all or portions thereof suitable the Internet. for use in either a server device 102 and/or client device 106. When used in a LAN networking environment, comput Computing system 200 is, in this example, in the form of ing system 200 is connected to the local network 251 a PC, however, in other examples computing system may through a network interface or adapter 253. When used in a take the form of a dedicated server(s), a special-purpose 60 WAN networking environment, computing system 200 typi device, an appliance, a handheld computing device, a mobile cally includes a modem 254 or other means for establishing telephone device, a pager device, etc. communications over the wide area network 252, such as the As shown, computing system 200 includes a processing Internet. Modem 254, which may be internal or external, is unit 221, a system memory 222, and a system bus 223. connected to system bus 223 via the serial port interface 246. System bus 223 links together various system components 65 In a networked environment, computer programs depicted including system memory 222 and the processing unit 221. relative to the computing system 200, or portions thereof, System bus 223 may be any of several types of bus struc may be stored in the remote memory storage device. It will US 7,143,405 B2 5 6 be appreciated that the network connections shown are device 106 will never lose the capability to provide for exemplary and other means of establishing a communica further downloading of code/data, both essential and non tions link between the computers may be used. essential. With this introduction into certain exemplary arrange Reference is now made to FIG. 3, which illustratively ments being completed, the remaining detailed description depicts an exemplary data storage space 300 within a (managed) client device 106, at various times during an will focus on exemplary improved methods for updating upgrade. As illustrated, at time equals t (immediately prior code/data therein. to beginning the upgrade process), data storage space 300 As will be seen, with the improved methods and arrange includes an operating system 302, user applications 304a–b, ments the operating system of client device 106 is further 10 and free space 306. Next, at the beginning of the upgrade configured to determine which existing code/data is essential process, i.e., at time to a determination is made as to what to the device's operation during upgrade and which code/ code/data is essential software 310 and what is non-essential data is not essential to the device's operation during software 312. Here, in this illustrative example, operating upgrade. For example, the TCP/IP code would be designated system 302 has been included in essential software 310, by the operating system as being essential code, while a 15 while user applications 304a–b have been included along word processor (user) application would be designated as with free space 306 in non-essential software 312. During being non-essential code. During an upgrade to the operat the upgrade process, essential Software 310 remains intact, ing system (which in this example includes only essential while all or part of non-essential software 312 is overwritten code/data), the newly downloaded essential code/data will by new essential software 320, as depicted at time t. At time be written into memory. If there is not enough free memory t, new essential software 320 is used to reboot client device in the data storage space, then the newly downloaded 106 and if successful to then reconnect client device 106 to essential code/data will overwrite non-essential code/data in server device 102. Assuming that the reboot and reconnect the memory, as required. Following the download, client are successful, then any new non-essential Software 322 is device 106 will attempt to reboot and reconnect to server downloaded, as needed, to replace overwritten portions of device 102 using the newly downloaded code/data, i.e., the 25 non-essential Software 312 and/or provide upgrades to non upgraded operating system. If the reboot and reconnection essential Software 312. The upgrade process ends at time ts, work correctly, then any non-essential code/data that was wherein new non-essential software 322 has overwritten a overwritten, is downloaded from server 102 and written to portion of the old essential software 310. The subsequent free memory including that previously used by the old illustration, at time t, shows the resulting new operating version of the operating system. 30 system 302, user applications 304a–b', and new free space Should the reboot or reconnection fail, then client device 306. 106, will revert back to the previously used operating system FIG. 4 is a flow diagram depicting a method 400 for updating client device 106. In step 402, the client device is during a Subsequent reboot and reconnect. made to operate using existing code/data. In step 403, a As such, there is no need for a separate, permanent down 35 determination is made as to what code/data is to be down loader. Furthermore, provided that each downloaded oper loaded form the server device. Next, in step 404, all portions ating system is no larger than half the data storage capability, of the existing code/data, along with new code/data at the there is no need to expand the size of the data storage within server device, are determined to be either essential software client device 106. or non-essential software. In step 406, the essential software In a more specific MSN Companion design example, the 40 is used to connect to server device 106 and download new operation software was configured to handle the upgrade in essential Software, overwriting all or part of non-essential this manner, without compromising safety and requiring software, as needed. Then, in step 408, client device 106 additional temporary storage space. Here, the operation attempts to reboot and reconnect to server device 102, using Software was divided into two groups. The first group the new essential software. If the attempts in step 408 are consisted of all the Software necessary to do an upgrade, i.e., 45 successful, then method 400 continues to step 410, wherein essential software. This essential software included the full new non-essential Software is downloaded, as needed and operating system, file system, drivers, full overwriting any old software too. If the attempts in step 408 (IE) browser, graphics and upgrade application. The second fail, then method 400 proceeds to step 411, wherein client group contained code/data that is not required during the device 102 is booted and subsequently connected to server upgrade process, i.e., the non-essential Software. The 50 device 106 using the old essential software. samples of these files are: Java VM, an email program, and To manage different revisions of Software is always a a word processor. As noted, the essential Software must difficult task, especially when there is a partial upgrade of occupy less than half of the total data storage space. This is the software. An effective software version control system usually true, since user applications are typically larger in should exhibit the following three characteristics. First, the size than the OS. During a full upgrade, client device 106 55 version control system needs to be able to tell whether two first downloads all the essential files and saves them. If there Software images have the same version. Secondly, the Ver is no space left for storing the essential files, then old sion control system needs to be able to Support incremental non-essential files can be deleted to make room for the new upgrades. Thirdly, the version control system needs to be download. After the download, the system will reboot to use able to provide an upgrade path from multiple older ver the new essential software. Although it has only downloaded 60 sions. essential parts of the new software, client device 106, in this In accordance with certain aspects of the present inven example, has enough code/data to connect to server 102 tion, an improved software version control technique has again and continue to transfer any non-essential files. been developed. Therefore, if the transferring of the non-essential files is To better understand how the revision control technique successful, one can safely delete the old the essential files. 65 works, however, there is a need understand how a com If the new software failed to do the downloading, then one pressed file system may be implemented within client device can revert back to the old essential code. Either way, client 106. To demonstrate this, an exemplary client device 106 in US 7,143,405 B2 7 8 the form of an MSN Web Companion will be described. implementations disclosed, but is capable of numerous Here, the file system is essentially a compressed file system rearrangements, modifications and Substitutions without running on top a regular file system, such as FAT. Multiple departing from the spirit of the invention as set forth and uncompressed files are packed into a compressed image file, defined by the following claims. which carries the arbitrary extension *.cim. The *.cim files 5 What is claimed is: are then stored on the FAT file system directly. 1. A computer-implemented method for providing soft Each image preferably contains files that are functionally ware to a device, the method comprising: related. For example, all IE browser files, such as msht identifying essential software within a device, the essen ml.dll, shdocvw.dll and WinINET.dll are preferably com tial Software including Software necessary to operate pressed into one image whose name maybe 10 the device and provide external communications; “ao945tv451ktc909btes01mv2.cim”. identifying remaining portions of Software within the A search of the regular FAT file system only reveals many device as non-essential software; *.cim files. Unfortunately, this search result is of little use to downloading new essential software from an external regular applications, which do not understand the inter Source to the device and storing the new essential workings of the compressed *.cim files. 15 Software in memory by overwriting at least a portion of To solve this problem, a new file system mounting port the non-essential Software; and has been developed. When an application accesses the files upon Successfully operating the device and providing through the new path, the compressed file system driver is external communications using the new essential Soft invoked and used to open the *.cim on the FAT drive and ware, selectively downloading new non-essential soft read out the file. Since the driver understands the compres ware and storing the new non-essential Software in sion scheme used in the *.cim, it will be able the feed the memory by overwriting at least a portion of either the correct data to the application. essential software or the non-essential software. With the help of a compressed file system, client device 2. The method as recited in claim 1, further comprising: 106 uses a system of unique files to ease the control of after downloading the new essential Software, attempting software revisions. Here, the client software consists of 25 to operate the device and provide external communi multiple compressed files and a list file that contains the list cations using the new essential software. of all the names of the compressed files (*.cim). Every time 3. The method as recited in claim 2, further comprising: the Software is built, the compressed image file name is upon unsuccessfully operating the device or unsuccess changed, and the resulting names are always globally fully providing external communications, reverting unique. Therefore, if two compressed images share the same 30 back to the essential software. name, every file inside each of these is identical. In other 4. The method as recited in claim 1, wherein the device is words, they have the same revision. If the names are a managed device. different, then the versions are not the same. 5. The method as recited in claim 1, wherein the external This feature makes version comparison and incremental Source includes a server device. upgrading extremely easy. To decide which files need to be 35 6. The method as recited in claim 1, wherein the external upgraded, client device 106 only needs to check with server Source includes a network. device 102 and compare the server's most up-to-date list 7. The method as recited in claim 6, wherein the network with its own list of file names. If a file name from the includes the Internet. server's list does not show up on the local driver, client 8. The method as recited in claim 1, wherein the essential device 106 needs to download that particular file. Since the 40 Software includes Software selected from a group compris files are preferably grouped by functionality when being ing an operating system, a file system, at least one driver, a compressed into *.cim files, usually only a small portion of communication program, an Internet browser, and an *.cim files needs to be download and updated. upgrade application. FIG. 5 is a flow diagram depicting a method 500 for 9. A computer-readable medium having computer-execut providing software version control in a client device 106. In 45 able instructions for performing steps comprising: step 502, one or more files are determined to make up a identifying essential software within a device, the essen group, wherein the Software is divided as Such into a tial Software including Software necessary to operate plurality of groups. In step 504, each of the groups of files the device and provide external communications; is compressed to form corresponding compressed images. identifying remaining portions of Software within the Next in step 506, each compressed image is associated with 50 device as non-essential software; a unique identifier. The unique identifier can be derived from downloading new essential software from an external a portion of the compressed image, for example. Then, in Source to the device and storing the new essential step 508, a listing of unique identifiers is generated. In step Software in memory by overwriting at least a portion of 510, each of the compressed images is stored with the the non-essential Software; and memory of client device 106. Next, in step 512, during an 55 upon Successfully operating the device and providing upgrade process, the listing of unique identifiers within external communications using the new essential Soft client device 106 is compared with the latest listing of ware, selectively downloading new non-essential soft unique identifiers as provided by server device 102. The ware and storing the new non-essential Software in compressed images that are missing from the client’s listing memory by overwriting at least a portion of either the of unique identifiers as determined from the comparison in 60 essential software or the non-essential software. step 512 are then selectively downloaded in step 514 from 10. The computer-readable medium as recited in claim 9. server device 102 to client device 106. having further computer-executable instructions for: Although some preferred implementations of the various after downloading the new essential Software, attempting methods and arrangements of the present invention have to operate the device and provide external communi been illustrated in the accompanying Drawings and 65 cations using the new essential software. described in the foregoing Detailed Description, it will be 11. The computer-readable medium as recited in claim 10, understood that the invention is not limited to the exemplary having further computer-executable instructions for: US 7,143,405 B2 10 upon unsuccessfully operating the device or unsuccess 22. A system comprising: fully providing external communications, reverting a network; back to the essential software. 12. The computer-readable medium as recited in claim 9. a server device operatively coupled to the network; and wherein the device is a managed device. a client device operatively coupled to the network and 13. The computer-readable medium as recited in claim 9. configured to selectively download data from the server wherein the external source includes a server device. client via the network, and wherein the client device 14. The computer-readable medium as recited in claim 9. includes memory and is further operatively configured wherein the external source includes a network. to identify as essential software that software which is 15. The computer-readable medium as recited in claim 14, 10 necessary to operate the client device and provide for wherein the network includes the Internet. external communications via the network, identify 16. The computer-readable medium as recited in claim 9. remaining portions of Software as being non-essential wherein the essential software includes software selected software, download new essential software from the from a group comprising an operating system, a file system, server device over the network and store the new at least one driver, a communication program, an Internet 15 browser, and an upgrade application. essential Software in the memory by overwriting at 17. An apparatus that is operated using software and least a portion of the non-essential Software, and upon operatively configured to identify as essential software that Successfully operating and providing external commu Software which is necessary to operate the apparatus and nications using the new essential Software, is further provide for external communications, identify remaining configured to selectively download new non-essential portions of Software as being non-essential Software, down Software and store the new non-essential software in load new essential Software from an external source and the memory by overwriting at least a portion of either store the new essential Software in memory by overwriting the essential software or the non-essential software. at least a portion of the non-essential software; and upon 23. The system as recited in claim 22, wherein the client Successfully operating and providing external communica 25 device, after downloading the new essential Software, is tions using the new essential Software, selectively download further configured to attempt to operate and provide external new non-essential software and store the new non-essential Software in the memory by overwriting at least a portion of communications using the new essential Software. either the essential software or the non-essential software. 24. The system as recited in claim 23, wherein the client 18. The apparatus as recited in claim 17, wherein the 30 device is further configured to, upon unsuccessfully operat apparatus is further configured to, after downloading the ing the client device or unsuccessfully providing external new essential software, attempt to operate and provide communications, reverting back to the essential software. external communications using the new essential software. 25. The system as recited in claim 22, wherein the client 19. The apparatus as recited in claim 18, wherein the device is a managed device. apparatus is further configured to, upon unsuccessfully 35 26. The system as recited in claim 22, wherein the operating the apparatus or unsuccessfully providing external network includes the Internet. communications, reverting back to the essential Software. 20. The apparatus as recited in claim 17, wherein the 27. The system as recited in claim 22, wherein the apparatus is a managed device. essential Software includes Software selected from a group 21. The apparatus as recited in claim 17, wherein the 40 comprising an operating system, a file system, at least one essential Software includes Software selected from a group driver, a communication program, an Internet browser, and comprising an operating system, a file system, at least one an upgrade application. driver, a communication program, an Internet browser, and an upgrade application.