Search Images Maps Play YouTube News Gmail Drive More »
Sign in
Screen reader users: click this link for accessible mode. Accessible mode has the same essential features but works better with your reader.

Patents

  1. Advanced Patent Search
Publication numberUS20050144614 A1
Publication typeApplication
Application numberUS 11/000,324
Publication dateJun 30, 2005
Filing dateNov 30, 2004
Priority dateDec 6, 2000
Also published asUS6826581, US20020069213
Publication number000324, 11000324, US 2005/0144614 A1, US 2005/144614 A1, US 20050144614 A1, US 20050144614A1, US 2005144614 A1, US 2005144614A1, US-A1-20050144614, US-A1-2005144614, US2005/0144614A1, US2005/144614A1, US20050144614 A1, US20050144614A1, US2005144614 A1, US2005144614A1
InventorsJoseph Moslander, Steven Bateman
Original AssigneeIntel Corporation, A California Corporation
Export CitationBiBTeX, EndNote, RefMan
External Links: USPTO, USPTO Assignment, Espacenet
Upgrading a device over a network
US 20050144614 A1
Abstract
Upgrading a device over a network includes receiving a configurable script file, the script file containing data and commands, identifying a target device on a network using the data, and upgrading the target device using the commands. The script file is downloaded from a network device along with a computer program. The computer program is run to execute the commands and upgrade the device.
Images(7)
Previous page
Next page
Claims(30)
1. A method comprising:
receiving a configurable script file, the script file containing data and commands;
identifying a target device on a network using the data; and
upgrading the target device using the commands.
2. The method of claim 1, wherein upgrading comprises upgrading software and/or a database on the target device.
3. The method of claim 1, wherein:
receiving comprises downloading the script file from a network device along with a computer program; and
upgrading comprises running the computer program to execute the commands.
4. The method of claim 3, wherein the commands comprise instructions for upgrading software and/or a database on the target device.
5. The method of claim 3, wherein:
the script file contains graphics data; and
the method further comprises generating a user interface using the graphics data, the user interface providing information for devices on the network that correspond to the data in the script file, the devices including the target device.
6. The method of claim 5, further comprising:
selecting upgrading for the target device.
7. The method of claim 1, wherein identifying comprises:
issuing a query over the network for devices that correspond to the data in the script file; and
receiving a response to the query from the target device.
8. The method of claim 7, wherein the response comprises a code that identifies the target device as corresponding to the data in the script file.
9. The method of claim 1, further comprising:
establishing a connection with the target device prior to upgrading the device;
storing information for establishing the connection; and
re-establishing the connection with the target device using the stored information after the device is upgraded.
10. The method of claim 1, further comprising:
maintaining a log file that contains a record of the upgrading process.
11. An article comprising:
a readable medium that stores executable instructions that cause a machine to:
receive a configurable script file, the script file containing data and commands;
identify a target device on a network using the data; and
upgrade the target device using the commands.
12. The article of claim 11, wherein upgrading comprises upgrading software and/or a database on the target device.
13. The article of claim 11, wherein:
receiving comprises downloading the script file from a network device along with a computer program; and
upgrading comprises running the computer program to execute the commands.
14. The article of claim 13, wherein the commands comprise instructions for upgrading software and/or a database on the target device.
15. The article of claim 13, wherein:
the script file contains graphics data; and
the article further comprises instructions to generate a user interface using the graphics data, the user interface providing information for devices on the network that correspond to the data in the script file, the devices including the target device.
16. The article of claim 15, further comprising instructions that cause the machine to:
select upgrading for the target device.
17. The article of claim 11, wherein identifying comprises:
issuing a query over the network for devices that correspond to the data in the script file; and
receiving a response to the query from the target device.
18. The article of claim 17, wherein the response comprises a code that identifies the target device as corresponding to the data in the script file.
19. The article of claim 11, further comprising instructions that cause the machine to:
establish a connection with the target device prior to upgrading the device;
store information for establishing the connection; and
re-establish the connection with the target device using the stored information after the device is upgraded.
20. The article of claim 11, further comprising instructions that cause the machine to:
maintain a log file that contains a record of the upgrading process.
21. An apparatus comprising:
a memory that stores executable instructions; and
a processor that executes the instructions to:
receive a configurable script file, the script file containing data and commands;
identify a target device on a network using the data; and
upgrade the target device using the commands.
22. The apparatus of claim 21, wherein upgrading comprises upgrading software and/or a database on the target device.
23. The apparatus of claim 21, wherein:
receiving comprises downloading the script file from a network device along with a computer program; and
upgrading comprises running the computer program to execute the commands.
24. The apparatus of claim 23, wherein the commands comprise instructions for upgrading software and/or a database on the target device.
25. The apparatus of claim 23, wherein:
the script file contains graphics data; and
the processor executes instructions to generate a user interface using the graphics data, the user interface providing information for devices on the network that correspond to the data in the script file, the devices including the target device.
26. The apparatus of claim 25, wherein the processor executes instructions to:
select upgrading for the target device.
27. The apparatus of claim 21 wherein identifying comprises:
issuing a query over the network for devices that correspond to the data in the script file; and
receiving a response to the query from the target device.
28. The apparatus of claim 27, wherein the response comprises a code that identifies the target device as corresponding to the data in the script file.
29. The apparatus of claim 21, wherein the processor executes instructions to:
establish a connection with the target device prior to upgrading the device;
store information for establishing the connection; and
re-establish the connection with the target device using the stored information after the device is upgraded.
30. The apparatus of claim 21, wherein the processor executes instructions to:
maintain a log file that contains a record of the upgrading process.
Description
    TECHNICAL FIELD
  • [0001]
    This invention relates generally to upgrading a device over a network.
  • BACKGROUND
  • [0002]
    In a network context, an appliance is a network device, such as an electronic mail (e-mail) station or World Wide Web (Web) terminal, that executes software using a simple operating system to perform specific functions. From time-to-time, it may be necessary to upgrade information, such as the software or database, in an appliance in order to improve its functionality or to maintain its compatability with other network upgrades.
  • DESCRIPTION OF THE DRAWINGS
  • [0003]
    FIG. 1 is block diagram of a network.
  • [0004]
    FIG. 2 is a flowchart showing a process for upgrading devices on the network.
  • [0005]
    FIGS. 3 to 6 are screen shots of graphical user interfaces generated during the upgrading process.
  • DETAILED DESCRIPTION
  • [0006]
    Referring to FIG. 1, local network 10 connects client 11 to one or more appliances 12 and 14. Local network 10 may be a local area network (LAN), a wide area network (WAN), or any other type of network. Client 11 is also connected to a remote network 15, such as the Internet, which gives client 11 access to data stored on a server 16.
  • [0007]
    Client 11 is a computer, such as a personal computer (PC), mainframe and terminal, or the like. As shown in view 17, client 11 contains a processor 19, a memory 20, and a storage medium 21. Memory 20 is a random access memory (RAM) or other storage device. Storage medium 21 is a non-volatile memory, such as a computer hard disk.
  • [0008]
    Storage medium 21 stores an operating system (OS) 22, such as Microsoft® Windows98® and a Web browser, such as Microsoft® Internet Explorer® or Netscape Navigator®. Processor 19 runs OS 22 and Web browser 24 to access data stored on server 16 of remote network 15.
  • [0009]
    Server 16 is a computer, which includes a processor 25 and storage medium 26 that are similar to those of client 11 (see view 27). Storage medium 26 contains computer programs and associated script files (e.g., computer program 29 and script file 30) for use in updating appliances, such as appliances 12 and/or 14 on local network 10. Script file 30 is a textual file that contains identification data 31, commands 32, and graphics data 34. Other data may be included in the script file as well.
  • [0010]
    Identification data 31 identifies a type of appliance that is to be upgraded. For example, the identification data might specify that an Intel® e-mail station is to be upgraded. Commands 32 are computer-executable instructions for upgrading software and/or a database on the appliance(s) specified by identification data 31. The commands are run by corresponding computer program 29 to upgrade the appliance identified by identification data 31. Graphics data 34 defines a graphic representation, such as a bitmap image, of the appliance specified by the identification data. The graphics data is displayed to a user when computer program 29 is run by client 11 to upgrade an appliance. In some embodiments, graphics data 34 is omitted from script file 30.
  • [0011]
    Script file 30 is configurable in the sense that identification data 31, commands 32, and graphics data 34 can be changed at will without requiring a change in the corresponding computer program 29 that runs the script file. This simplifies the upgrade process, since upgrades can be changed without having to rewrite or recompile the computer program 29 that executes the commands.
  • [0012]
    To upgrade an appliance or set of appliances, a user (not shown) at client 11 activates Web browser 24 to connect to server 16. Client 11 downloads computer program 29 and associated script file 30 for upgrading an appliance. These may be identified, e.g., on a Web site maintained by the manufacturer of the appliance or a manufacturer of software for the appliance. In any case, computer program 29 and script file 30 are downloaded to storage medium 21 (or any other storage location) in client 11, as shown in FIG. 1. A process for upgrading appliances from client 11 using computer program 29 and script file 30 is described in FIG. 2 below.
  • [0013]
    As noted above, an appliance may be any type of device that includes a database and/or software for use in its operation. Shown in view 36 is a general architecture for appliance 12. This architecture may apply for any appliance on local network 10. The architecture includes a processor 37 and a memory 39. Memory 39 stores a database 40, software 41, and a system file 42. Other information that requires upgrading may also be stored; likewise, some of the information shown in FIG. 1 may be omitted. System file 42 includes executable instructions, data and parameters for configuring, initializing, and operating appliance 12. Processor 37 executes software 41 and/or system file 42 and uses database 40 to run appliance 12. Software 41, system file 42 and/or database 40 require periodic upgrades. They are upgraded by client 11, which runs process 45 (FIG. 2) to effect the upgrades.
  • [0014]
    Process 45 connects to server 16 and downloads (201) computer program 29 and associated script file 30 for upgrading a specific type of appliance. In some embodiments, the script file alone can be downloaded, e.g., if computer program 29 is already on client 11 and has not changed since it was previously downloaded. Client 11 receives computer program 29 and script file 30 and stores them on storage medium 21, as shown in FIG. 1. When program 29 is executed, program 29 and script file 30 are loaded into memory 20. Client 11 executes computer program 29 to perform the remainder of the upgrading process 45.
  • [0015]
    Process 45 reads (202) identification data 31 and graphics data 34 from script file 30 and generates (203) a graphical-user interface based on that data. An example of a user interface 46 generated by process 45 is shown in FIG. 3. User interface 46 includes information such as the name 47 of the appliance being upgraded, the version number 49 of software of the upgrade, and an image 50 of the appliance. Name 47 and version number 49 are generated from identification data 31 in script file 30 and image 50 is generated from graphics data 34 in script file 30. FIG. 4 shows an alternative user interface 51 that was generated using different graphics data than user interface 46.
  • [0016]
    In FIG. 3, a user selects upgrade option 52 to upgrade the software, database and/or system file in all appliances of the type identified by user interface 46. Exit option 54 ends the upgrading process. Process 45 receives (204) the user's selection to upgrade the target appliance. In response, process 45 identifies (205) appliance(s) on local network 10 that correspond to those specified by identification data 31. To do this, process 45 issues (206) a query over local network 10 for such appliances. Appliances on local network 10 receive the query and determine whether they match criteria specified in the query, such as the name, version, or type of appliance that is to be upgraded. One or more target appliance(s) that match the criteria issue a response over local network 10, which process 45 receives (207). The response includes a code or the like identifying the target device as one that matches the criteria.
  • [0017]
    Along with the response, a target appliance 12 provides information about itself. This information includes the local network address of the appliance. The information may also include the current version number of the software installed on target appliance 12 and/or any other available identifying information. Process 45 generates another user interface 55 (FIG. 5) and displays that user interface on client 11. User interface 55 includes the information 56 provided by the target appliance 12, an option 57 to upgrade the target appliance to a new version of, e.g., software, and an option 59 to cancel the upgrading process.
  • [0018]
    If the user selects upgrade option 57, process 45 prompts the user for information necessary to establish a connection with target appliance 12. This information may include, for example, a username and password that enable access to the appliance. Process 45 receives this information and stores (208) it in memory. Process 45 also uses the information to establish (209) and maintain connections with target appliance 12. The connections are an FTP (File Transfer Protocol) and Windows® socket connections that are set up using the network address provided by the appliance in response to the query (206). The FTP connection is used-to transfer files to (or from) the client 11. The socket connection is used to send commands to the client 11 or get information (such as the current version number) from the appliance 12.
  • [0019]
    Once the connections have been established, process 45 upgrades (210) the target appliance. Any feature of the target appliance, e.g., software, system file, database, operational parameters, etc. may be upgraded, depending upon the commands stored in script file 30. Process 45 upgrades the target device by executing (211) the commands in the script file. These commands may include instructions for changing database values 40 on the appliance 12 and/or transferring a new version of a system file 42 from the client 11 to the appliance 12.
  • [0020]
    During the upgrading process, user interface 60 (FIG. 6), containing status bars 61 and 62, is displayed on client 11. Status bar 61 shows the progress of the upgrade as a whole and status bar 62 shows the progress of individual upgrade tasks (i.e., software, system file, database, operational parameters) on appliance 12. Thus, status bar 62 changes for each new task that is being upgraded.
  • [0021]
    During upgrading, it is often necessary to re-boot (212) the target appliance 12 and to re-establish (213) connections with that appliance. Process 45 reboots target appliance 12 and re-establishes connections (FTP and socket) using the stored information, e.g., the username and password. As a result, connection can be re-established automatically, without requiring any additional input from the user at client 11.
  • [0022]
    Process 45 also keeps track of errors that occur during the upgrading process and stores information relating to the upgrading process in a log file 70, e.g., in storage medium 21. For example, the log file contains information relating to errors in the upgrading process, such as unexecutable commands and the inability to find a file to send to the appliance.
  • [0023]
    If multiple devices are upgraded using process 45, the devices may be upgraded serially or in parallel. For serial upgrades, the appliances may be upgraded in the order that they respond to the query (206) or according to pre-specified criteria, such as an order of priority stored on client 11.
  • [0024]
    Although a personal computer is shown in FIG. 1, process 45 is not limited to use with any particular hardware or software configuration; it may find applicability in any computing or processing environment. For example, process 45 can be used with a personal digital assistant (PDA) or other hand-held computer. Process 45 may be implemented in hardware, software, or a combination of the two. For example, process 45 may be implemented using logic gates such as NAND and NOR gates, programmable logic such as a field programmable gate array (FPGA), and/or application-specific integrated circuits (ASICs).
  • [0025]
    Process 45 may be implemented in one or more computer programs executing on programmable computers that each include a processor, a storage medium readable by the processor (including volatile and non-volatile memory and/or storage elements), at least one input device, and one or more output devices. Program code may be applied to data entered using an input device to perform process 45 and to generate output information. The output information may be applied to one or more output devices.
  • [0026]
    Each such program may be implemented in a high level procedural or object-oriented programming language to communicate with a computer system. However, the programs can be implemented in assembly or machine language. The language may be a compiled or an interpreted language.
  • [0027]
    Each computer program may be stored on a storage medium or device (e.g., CD-ROM, hard disk, or magnetic diskette) that is readable by a general or special purpose programmable computer for configuring and operating the computer when the storage medium or device is read by the computer to perform process 45. Process 45 may also be implemented as a computer-readable storage medium, configured with a computer program, where, upon execution, instructions in the computer program cause the computer to operate in accordance with process 45.
  • [0028]
    Other embodiments not described herein are also within the scope of the following claims.
Patent Citations
Cited PatentFiling datePublication dateApplicantTitle
US4807086 *Jul 6, 1987Feb 21, 1989Whirlpool CorporationStatic discharger for refrigerator external actuator lever
US5163130 *May 5, 1992Nov 10, 1992Next Computer, Inc.System and method for configuring a graphic interface
US5784563 *May 23, 1996Jul 21, 1998Electronic Data Systems CorporationMethod and system for automated reconfiguration of a client computer or user profile in a computer network
US5860012 *May 19, 1997Jan 12, 1999Intel CorporationInstallation of application software through a network from a source computer system on to a target computer system
US6008805 *Jul 19, 1996Dec 28, 1999Cisco Technology, Inc.Method and apparatus for providing multiple management interfaces to a network device
US6009274 *Jun 24, 1997Dec 28, 19993Com CorporationMethod and apparatus for automatically updating software components on end systems over a network
US6012100 *Jul 14, 1997Jan 4, 2000Freegate CorporationSystem and method of configuring a remotely managed secure network interface
US6049892 *Feb 24, 1997Apr 11, 2000Ethos Software CorporationProcess and apparatus for downloading data from a server computer to a client computer
US6256635 *May 8, 1998Jul 3, 2001Apple Computer, Inc.Method and apparatus for configuring a computer using scripting
US6324654 *Mar 30, 1998Nov 27, 2001Legato Systems, Inc.Computer network remote data mirroring system
US6324692 *Jul 28, 1999Nov 27, 2001Data General CorporationUpgrade of a program
US6360366 *Oct 15, 1999Mar 19, 2002Managesoft CorporationSystems and methods for automatic application version upgrading and maintenance
US6370646 *Feb 16, 2000Apr 9, 2002Miramar SystemsMethod and apparatus for multiplatform migration
US6442706 *Oct 30, 2000Aug 27, 2002Legato Systems, Inc.Resource allocation throttle for remote data mirroring system
US6473788 *Nov 15, 1996Oct 29, 2002Canon Kabushiki KaishaRemote maintenance and servicing of a network peripheral device over the world wide web
US6498871 *Sep 15, 2000Dec 24, 2002Hitachi, Ltd.Wavelength stabilized light source
US6609127 *Jun 9, 1999Aug 19, 2003Amx CorporationMethod for dynamically updating master controllers in a control system
US6681392 *Dec 15, 1999Jan 20, 2004Lexmark International, Inc.Method and apparatus for remote peripheral software installation
US6725453 *Aug 23, 2000Apr 20, 2004Microsoft CorporationRemote software installation and maintenance
US6826581 *Dec 6, 2000Nov 30, 2004Intel CorporationUpgrading a device over a network by downloading results of command execution from script file
US20020069213 *Dec 6, 2000Jun 6, 2002Moslander Joseph P.Upgrading a device over a network
US20030019236 *Jul 15, 2002Jan 30, 2003Heims Doug A.Water bottle fill button for refrigerators
US20040187516 *Mar 25, 2004Sep 30, 2004Jeong-Youl LeeDispenser of refrigerator
Referenced by
Citing PatentFiling datePublication dateApplicantTitle
US7328434 *Sep 24, 2002Feb 5, 2008Alcatel Canada Inc.System and method for managing configurable elements of devices in a network element and a network
US7857222Aug 16, 2007Dec 28, 2010Hand Held Products, Inc.Data collection system having EIR terminal interface node
US8025233Sep 27, 2011Hand Held Products, Inc.Data collection system having EIR terminal interface node
US8245215 *Oct 9, 2008Aug 14, 2012Siemens AktiengesellschaftMethod for automatically modifying a program and automation system
US8297508Sep 15, 2011Oct 30, 2012Hand Held Products, Inc.Data collection system having EIR terminal interface node
US8539123Oct 6, 2011Sep 17, 2013Honeywell International, Inc.Device management using a dedicated management interface
US8556174Oct 29, 2012Oct 15, 2013Hand Held Products, Inc.Data collection system having EIR terminal interface node
US8621123Oct 6, 2011Dec 31, 2013Honeywell International Inc.Device management using virtual interfaces
US8769522 *Aug 21, 2006Jul 1, 2014Citrix Systems, Inc.Systems and methods of installing an application without rebooting
US8848710Jul 25, 2012Sep 30, 2014Citrix Systems, Inc.System and method for performing flash caching of dynamically generated objects in a data communication network
US8856777Sep 2, 2010Oct 7, 2014Citrix Systems, Inc.Systems and methods for automatic installation and execution of a client-side acceleration program
US8868803Aug 28, 2013Oct 21, 2014Honeywell Internation Inc.Managing data communication between a peripheral device and a host
US8892778Sep 14, 2012Nov 18, 2014Citrix Systems, Inc.Method and systems for securing remote access to private networks
US8914522Jul 22, 2005Dec 16, 2014Citrix Systems, Inc.Systems and methods for facilitating a peer to peer route via a gateway
US8918564Dec 30, 2013Dec 23, 2014Honeywell International Inc.Device management using virtual interfaces
US8954595Dec 30, 2005Feb 10, 2015Citrix Systems, Inc.Systems and methods for providing client-side accelerated access to remote applications via TCP buffering
US9053055Dec 11, 2014Jun 9, 2015Honeywell InternationalDevice management using virtual interfaces cross-reference to related applications
US9069549Oct 10, 2012Jun 30, 2015Google Technology Holdings LLCMachine processor
US9081641Jun 12, 2012Jul 14, 2015Ricoh Company, LimitedCommunication device, update method, and computer-readable storage medium
US9219579Jul 22, 2005Dec 22, 2015Citrix Systems, Inc.Systems and methods for client-side application-aware prioritization of network communications
US9298667Jun 2, 2015Mar 29, 2016Honeywell International, IncDevice management using virtual interfaces cross-reference to related applications
US20030140134 *Sep 24, 2002Jul 24, 2003Swanson Sheldon Keith JohnSystem and method for managing configurable elements of devices in a network element and a network
US20080046371 *Aug 21, 2006Feb 21, 2008Citrix Systems, Inc.Systems and Methods of Installing An Application Without Rebooting
US20090100159 *Oct 9, 2008Apr 16, 2009Siemens AktiengesellschaftMethod for automatically modifying a program and automation system
US20100332594 *Sep 2, 2010Dec 30, 2010Prabakar SundarrajanSystems and methods for automatic installation and execution of a client-side acceleration program
US20130176320 *Oct 10, 2012Jul 11, 2013Motorola Mobility LlcMachine processor
US20130191442 *Oct 10, 2012Jul 25, 2013Motorola Mobility LlcProvision of a download script
US20130275957 *Apr 12, 2012Oct 17, 2013Microsoft CorporationCustomizing appliances
Classifications
U.S. Classification717/168
International ClassificationG06F9/445
Cooperative ClassificationY10S707/99954, G06F8/65
European ClassificationG06F8/65
Legal Events
DateCodeEventDescription
Nov 16, 2006ASAssignment
Owner name: INTEL CORPORATION, CALIFORNIA
Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:MOSLANDER, JOSEPH P.;BATEMAN, STEVEN S.;REEL/FRAME:018543/0273;SIGNING DATES FROM 20001129 TO 20001204