United States Patent (10) Patent No.: US 7,143,405 B2 Liu Et Al
Total Page:16
File Type:pdf, Size:1020Kb
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: Microsoft 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.