Abstract:
A system and method for managing firmware on network devices wherein a computer program operates a plurality of executables for determining firmware versions, obtaining firmware updates from remote locations over an Internet connection, and updating or installing new firmware on network devices monitored by the computer program.

Description:
FIELD OF THE INVENTION  
         [0001]    The present invention relates to monitoring firmware for computing devices. More particularly, the present invention relates to monitoring firmware installed on printing devices and document management devices across a network computer system.  
         BACKGROUND OF THE INVENTION  
         [0002]    The use and management of printing devices in enterprise environments is well known. As fast as new printing devices are becoming available, so to are new methods and systems for managing the printing devices added to network computing systems. However, with new features and capabilities being added to printing devices on a daily basis, new management methods and tools are needed to keep pace with the rapidly changing technologies.  
           [0003]    One well-known printer management system is the Web JetAdmin program offered by Hewlett-Packard®. Web JetAdmin provides a platform for a network administrator to manage network components from a central location or through a single computer capable of communicating with the network being controlled. Once installed on a network computer system, Web JetAdmin may be accessed from anywhere in the world through a web-browser having communication capabilities with the network computer system upon which Web JetAdmin is installed. The Web JetAdmin program therefore allows a network administrator to control and configure the printing devices of a network computer system from any location.  
           [0004]    The Web JetAdmin program offers many features that may be used to set-up printing devices or monitor the status of printing devices connected to a network computer system. New printers may be installed on a network computer system and configured with the desired user settings using the Web JetAdmin program. The Web JetAdmin program also serves as a monitor for active printing devices and is capable of warning a network administrator of problems associated with the network printing devices. For instance, error messages associated with one or more printers in a network system may be broadcast to a network administrator through the Web JetAdmin program or interface. Common error messages include messages that may also be broadcast on a printing device, such as low-toner messages, empty paper tray messages, or paper jam messages. Web JetAdmin may also be used to search and organize the printing devices on a network into groups based upon criteria set by the network administrator. This provides the capability to monitor various printing devices according to usage variables, or configure user preferences according to printing device location or size.  
           [0005]    The use of device management programs such as Web JetAdmin provide efficient solutions for monitoring and operating multiple devices in enterprise environments. Furthermore, device management programs allow for the optimization of services across a network computer system because the operations of all of the network devices may be monitored and altered in real-time, by one individual, from a central location.  
           [0006]    Besides the standard user configurations and options associated with network devices that may be monitored and altered by device management programs, many network devices also include integrated programming that defines or controls the available functions and options of a network device. For instance, many network printing devices include firmware programmed into a read-only memory (ROM) of the printing device. Firmware is essentially a computer program in a printing device memory that provides functionality to the printing device. Various functions may be programmed into the firmware of a printing device to provide additional options, tools and functionality to the printing device. Although many network devices in use today use on variation or another of firmware, device management programs do not provide methods for updating such firmware. Rather, individual programs specific to the firmware for individual network devices must be used to update firmware.  
           [0007]    Typically, firmware versions are periodically updated for various printing devices. When the manufacturer updates firmware, new versions of the firmware are provided to users for installation on any devices using the old firmware. To install the firmware on a printing device, a user generally uses a special user interface or program to install the firmware in the ROM of the printing device. Alternatively, firmware may be updated by flashing the new version of the firmware into a flashable memory chip associated with a printing device. Installation of the new firmware version effectively replaces the old firmware, providing the device with the new features associated with the updated firmware. Methods for updating firmware are known and are frequently used to update network devices.  
           [0008]    With the advent of the Internet and proliferation of Internet usage more companies are beginning to post firmware updates on Internet web sites so that updated versions of firmware may be downloaded by users for installation on various devices. The Internet provides an efficient and cost effective method for distributing firmware updates.  
           [0009]    Although firmware updates may be posted over the Internet it is time consuming for a network administrator to check individual web sites for firmware updates on a regular basis. Additionally, it may be cumbersome to install firmware updates on multiple devices in an enterprise environment where the firmware updates must be done on individual devices one at a time. Thus, automatically checking the Internet for the availability of firmware updates for multiple devices on a network computer system may be desirable. Additionally, it is desirable to update the firmware of multiple network devices at one time, from a central location.  
         SUMMARY OF THE INVENTION  
         [0010]    In one embodiment of the present invention a computer program, or diagnostic tool, is executed on a computer in communication with a network system for monitoring and updating firmware of network devices. The diagnostic tool may be used to identify and monitor those devices on a network system that use, or are controlled in some manner, by firmware. The diagnostic tool may create a database of information about each individual network device and the version of firmware operating on the respective devices. In addition, the diagnostic tool may automatically scour the Internet for updated versions of firmware that may be installed on the network devices monitored by the diagnostic tool. Typically, the network devices may include an embedded Internet address for obtaining firmware updates that may be retrieved and used by the diagnostic tool. In this manner, the diagnostic tool may focus on those Internet locations that may have a firmware upgrade available.  
           [0011]    Using the information stored in the databases available to the diagnostic tool, the diagnostic tool may periodically automatically check for firmware updates for certain network devices. If a firmware update is available, the diagnostic tool may automatically update the firmware on a particular device. Alternatively, the diagnostic tool may inform a network administrator of the update through an e-mail or other message, thereby allowing the network administrator to manually update the firmware if an update is desired. Once informed of the possibility of an update, the network administrator may also instruct the diagnostic tool to execute an update, thereby freeing the administrator for other tasks.  
           [0012]    In another embodiment of the present invention, the functionality of the diagnostic tool may be incorporated with a network management program such as Web JetAdmin by Hewlett-Packard®. When incorporated with a network management program, the present invention adds additional functionality to the network management program—namely the ability of the network management program to monitor the firmware status of network devices associated with a network being monitored. In addition, the various embodiments of the present invention allow a network management program to access the Internet to automatically search for firmware upgrades. If found, upgrades may be downloaded to the network or automatically installed on the appropriate network devices.  
           [0013]    In another embodiment of the present invention, the diagnostic tool, or executables associated therewith, may be used to monitor programs stored in a flash memory of a network device. The flash memory may also be altered or updated with new versions of the programs which may be obtained over the Internet or through other sources.  
       
    
    
     DESCRIPTION OF THE DRAWINGS  
       [0014]    While the specification concludes with claims particularly pointing out and distinctly claiming that which is regarded as the present invention, the present invention can be more readily ascertained from the following description of embodiments of the invention when read in conjunction with the accompanying drawings in which:  
         [0015]    [0015]FIG. 1 illustrates a diagram of a network computer system that may be used to carry out the various embodiments of the present invention; and  
         [0016]    [0016]FIG. 2 illustrates a block diagram of various components that may be used for monitoring and updating firmware according to embodiments of the present invention. 
     
    
     DETAILED DESCRIPTION OF THE INVENTION  
       [0017]    A network computer system  100  that may be used to carry out the various embodiments of the present invention is illustrated in FIG. 1. Multiple network devices, including printing devices  110 , workstations  150  and a network administrator computer system  160 , may communicate over an intranet or network. The intranet, and hence the network devices, may also be capable of communicating with remote devices through an Internet  900  communication link. Remote computers  190  may also be capable of communicating through the Internet  900 .  
         [0018]    Printing devices  110  may include devices such as printers, copiers, multifunction printing devices, and the like. Typically, printing devices  110  include one or memories (not shown) for storing information. Most printing devices  110  may also include programmable read-only memory (ROM) for storing firmware. Firmware programmed into the programmable ROM may be used by the printing device  110  to perform various tasks or functions and facilitate the operations of the printing device  110 .  
         [0019]    Workstations  150  may include computers or other computing devices used by individuals across the network. Typically, a workstation  150  may include a computer system including one or more central processing units, memories, input devices, output devices, and storage devices, as known.  
         [0020]    The network administrator computer system  160  may also include a computer system including one or more central processing units, memories, input devices, output devices, and storage devices. In most instances, the network administrator computer system  160  also includes one or more network device management programs  162  operating on the network administrator computer system  160 . The network device management program  162  may be used to monitor, control, and analyze the various network devices and components that make up the network system  100 . For instance, Hewlett-Packard&#39;s® Web JetAdmin program may operate on the network administrator computer system  160  for monitoring and controlling the printing devices  110  associated with the network system  100 .  
         [0021]    Remote computers  190  may be any type of computer, computing device, or network computing system. Remote computers  190  may host firmware updates in a memory for printing devices  110 . Copies of the firmware updates may be downloaded over the Internet  900  from the remote computers  190  to the network administrator computer system  160  or other workstation  150  associated with the network system  100 .  
         [0022]    In one embodiment of the present invention a diagnostic tool for managing the firmware resident on printing devices  110  is provided. The diagnostic tool may comprise a stand-alone computer program or a plug-in or other extendable program that may be incorporated or associated with a network device management program  162 . The diagnostic tool of the present invention allows a network administrator to monitor and update firmware versions on printing devices  110 . In addition, the diagnostic tool may provide the capability to monitor the Internet  900  for firmware updates that may be used with the printing devices  110  of the network system  100 .  
         [0023]    As a stand-alone program, the diagnostic tool of the present invention may reside in a memory of the network administrator computer system  160 , or be operated from a storage media accessible to the network administrator computer system  160 . For instance, the diagnostic tool may be stored on a hard disk drive of the network administrator computer system  160  and accessed as needed during execution of the diagnostic tool. Once accessed, the diagnostic tool may be used to monitor the firmware versions operating on the various network devices of the network system  100 .  
         [0024]    One feature of the diagnostic tool of this embodiment is the ability to detect and monitor the various devices using firmware and operating with the network system  100 . Any device operating firmware may be detected and monitored by the diagnostic tool. Alternatively, a network administrator, or other user, may add a network device to a list of devices monitored by the diagnostic tool. For example, if a new printing device  110  is added to network system  100  while the diagnostic tool is executing on the network administrator computer system  160 , the diagnostic tool may automatically detect the addition of the new printing device  110  and add the printing device  110  to a list of printing devices  110  that are monitored by the diagnostic tool. Alternatively, the network administrator may inform the diagnostic tool of the new printing device by selecting an executable for the addition of a printing device to a list of printing devices  110  being monitored by the diagnostic tool. A list of the printing devices  110  monitored by the diagnostic tool may be stored in a memory or on a storage device accessible to the diagnostic tool.  
         [0025]    Once a printing device  110 , or other network device, has been added to a list of monitored devices, the diagnostic tool may monitor the firmware of the device. Monitoring the firmware of a particular device may consist of determining the version of the firmware operating on the device and determining if any updated versions of the particular firmware exist that may be used to update the device firmware.  
         [0026]    The diagnostic tool may be used to surf the Internet  900  to determine whether or not updated versions of firmware are available for the various devices being monitored by the diagnostic tool. If an updated version of firmware is available, the diagnostic tool may automatically download the updated firmware from a remote computer  190  to a storage location on the network system  100 . Once downloaded, the updated firmware may be downloaded or written to the programmable ROM of the network devices.  
         [0027]    Representative executables and data that may be carried out or used with the various embodiments of the present invention are further illustrated in the block diagram of FIG. 2 as components of a diagnostic tool  200  program. The diagnostic tool  200  may include one or more databases  210  for storing information about the devices attached to a network system  100 . The diagnostic tool  200  may also include a set of executables for carrying out the various functions associated with the various embodiments of the present invention.  
         [0028]    The databases  210  accessible to and created by the diagnostic tool  200  may include a database  212  for storing a list of monitored devices. Each network device associated with the network computer system that utilizes firmware may be included in database  212 . A second database  214  may store a list of the various firmware versions associated with the network devices listed in database  212 . In other words, the current firmware version operating on the monitored devices of database  212  are stored in the second database  214 . Optionally, database  212  and second database  214  may be combined into a single database.  
         [0029]    A third database  216  may store a list of Internet addresses associated with a particular device for retrieving updated versions of firmware. The diagnostic tool  200  may use the Internet addresses stored in the third database  216  to obtain updated versions of firmware. The third database  216  may also be combined with database  212 , second database  214 , or both databases in a single database.  
         [0030]    The executables  220  associated with the diagnostic tool  200  carry the various functions and procedures associated with the present invention. An add/delete executable  221  may be employed to add or delete a network device to a database  212  storing the list of devices for monitoring. When a new device is added to a network system  100 , a network administrator may execute the add/delete executable  221  of the diagnostic tool  200  for adding the device to a list of devices that need to be monitored. The add/delete executable  221  may add the device name to the database  212  as well as record the firmware version in the second database  214  and record any embedded Internet addresses for updating the firmware in the third database  216 . Internet addresses for firmware updates may be embedded in a device memory or functionality and may be obtained using PML, Perl or Parsed Markup Language. Once added, a device may be monitored and controlled by the diagnostic tool  200 .  
         [0031]    An executable for monitoring firmware versions  222  may also be invoked by a user or carried out automatically by the diagnostic tool  200 . The executable for monitoring firmware versions  222  may query the network devices of the network system  100  on a periodic basis to ascertain the version of the firmware being operated on those devices. When monitoring the firmware versions, the diagnostic tool  200  may compare the current version of the firmware to the most recent version of available firmware. If the current version of firmware is outdated, the diagnostic tool  200  may prompt the network administrator with a notification of the updated firmware availability, or the firmware may be automatically updated.  
         [0032]    In those instances where the firmware of a device may be updated, the diagnostic tool  200  may automatically execute the update firmware executable  224 . Alternatively, a network administrator or other user may execute the update firmware executable  224 . Upon execution, the update firmware executable  224  may retrieve the most recent version of firmware from a remote location via an Internet connection or from a storage device or memory associated with the network system  100 . Once retrieved, the updated firmware may be installed on a selected network device by the diagnostic tool  200 .  
         [0033]    The diagnostic tool  200  may also provide an executable for grouping devices to allow for simultaneous firmware updates for multiple devices or simultaneous monitoring of certain groups of network devices. The group devices executable  223  allows a user or network administrator to choose and group various network devices that are monitored by the diagnostic tool  200 . Usually, the devices that may be grouped are selected from the list of monitored devices from database  212 . Devices may be grouped according to different variables, such as functionality, size, performance, output, or other variable that may be monitored by the diagnostic tool  200  or a network management program  162 .  
         [0034]    An Internet search executable  225  for searching the Internet  900  for firmware updates may also be configured with the diagnostic tool  200 . The Internet search executable  225  may be manually executed by a user or configured by a user or network administrator to execute automatically on a set time schedule. Once executed, the Internet search executable  225  retrieves the list of Internet addresses for updating firmware from the third database  216  and begins to check the retrieved addresses for updated firmware versions. The existing version of firmware hosted by a particular web site may be compared to the list of firmware versions stored in the second database  214 . If a more recent, or updated, firmware version is found, the Internet search executable  225  may download the updated firmware and save it to a storage device associated with the network system  100 . The downloaded firmware may then be automatically installed on an associated network device or stored until the update firmware executable  224  is executed.  
         [0035]    Using the diagnostic tool  200 , a network administrator may maintain updated firmware and software versions across an entire network system  100 . The process may also be automated, freeing up the valuable time of the network administrator to perform other necessary tasks. In addition, the diagnostic tool  200  allows a network administrator to group devices so that different versions of firmware may be operated on different groups of devices across a network system  100 . For instance, it may be desirable to maintain an older firmware version on one or two printing devices in the network system  100  to avoid configuration errors with other devices. Using the diagnostic tool  200  of the present invention, a network administrator could group all but the two printing devices for a firmware upgrade. Thus, the two printing devices not in the group would not be updated.  
         [0036]    In another embodiment of the present invention, the diagnostic tool for monitoring and updating firmware on network devices associated with a network system  100  may be incorporated with a network management program  162 . Typically, network management programs  162  monitor the various devices of a network system  100  for different actions, occurrences, or errors. The incorporation of the diagnostic tool of the present invention with a network management program  162  allows the network management program  162  to also monitor and update the firmware associated with the network devices of the network system  100 . Heretofore, network management programs were not configured to monitor and update the firmware of network devices.  
         [0037]    For example, the diagnostic tool of the present invention may be incorporated with the Web JetAdmin network management program  162  distributed by Hewlett-Packard®. In addition to performing the functions associated with monitoring the status of printing devices in the network system  100 , the integration of the diagnostic tool would provide the Web JetAdmin program the capability for monitoring and updating the firmware of the printing devices associated with the network system  100 . A network administrator could use the combination of the Web JetAdmin program and the diagnostic tool of the present invention to more thoroughly control and manage the printing devices, or other devices, connected to network system  100 . In addition, the diagnostic tool may provide Web JetAdmin the ability to surf the Internet  900  to locate remote computers  190  hosting firmware updates that could be automatically downloaded. The ability of the diagnostic tool to allow the automation of firmware updating may ultimately save a network administrator time and provide a more efficient process for updating firmware across enterprise or network systems  100 .  
         [0038]    In another embodiment of the present invention, the diagnostic tool may be configured to monitor and manage programs installed in a memory of a network device, such as a flash memory. For instance, embedded web servers, such as Hewlett-Packard&#39;s® ChaiVM, may be monitored and the version of the software determined. Using the diagnostic tool  200 , updated versions of software or patches may be found and downloaded from a remote location via the Internet. The software may then be updated. Other programs stored in flash memory or duel inline memory modules (DIMM) that may also be monitored include Digital Sender software and Mopier Firmware, also by Hewlett-Packard®.  
         [0039]    Although the examples and descriptions herein include descriptions of Hewlett-Packard® devices and programs, it is understood that the diagnostic tool of the present invention, and the various described embodiments thereof, may be used to configure any device having firmware stored in a memory. In addition, firmware from any remote computer may be available over the Internet and downloadable by the present invention.  
         [0040]    Having thus described certain preferred embodiments of the present invention, it is to be understood that the invention defined by the appended claims is not to be limited by particular details set forth in the above description, as many apparent variations thereof are possible without departing from the spirit or scope thereof as hereinafter claimed.