Patent Publication Number: US-8527612-B2

Title: Methods, devices and computer program products for configuring network-enabled devices

Description:
BACKGROUND OF THE INVENTION 
     The present invention relates generally to network-enabled devices, and more particularly, configuration of network-enabled devices. 
     Devices, such as uninterruptable power supplies (UPSs), meters, trip units or breakers, are typically configured using a front panel of the device, if the device has a front panel, or by a software configuration package. Configuring a device via the front panel may be problematic when the number of devices in a location becomes excessive, for example, as few as 10 devices. Typically there is no other way to configure the device if the device has no built-in communications. Some devices may be configured using a software package or via the web, which may only be applicable to the firmware update portion of device configuration. 
     Having devices use the Internet for automatic updates may be problematic in that many local networks do not have access to the Internet and, therefore, cannot determine if their configuration, firmware flash or device repertoire, or other configuration data, is out of date. Furthermore, configuring devices using the Internet may also be limited to “updates” and not standardized configuration needs of the customer. 
     Software has also been a typical solution, but this may be problematic for several reasons as well. For example, keeping the software up-to-date with how to flash multiple devices and teaching it how to configure each device adds significant time to the development cycle of the software and typically requires continual updating of the software for newly introduced devices in the field. A change in the device&#39;s firmware to add configuration parameters typically requires corresponding changes in the software creating a lag, and frustration on the part of the customer. 
     SUMMARY OF EMBODIMENTS OF THE INVENTION 
     Some embodiments of the present invention provide methods, devices and computer program products for configuring network-enabled devices. One or more additional network-enabled devices containing configuration parameters relevant to a first network-enabled device are discovered. The relevant configuration parameters are obtained from the one or more additional network-enabled device by the first network-enabled device and the first network-enabled device is configured using the obtained configuration parameters. 
     In further embodiments of the present invention, the relevant configuration parameters may be requested from the at least one additional network-enabled device and the requested configuration parameters may be received at the first network device. The requested configuration parameters may be provided as an extended Markup Language (XML) formatted file including the relevant configuration parameters. In some embodiments, a rejection of the request for configuration parameters may be received at the first network-enabled device from one or more additional network-enabled devices. 
     In still further embodiments, the first network-enabled device and the one or more additional network-enabled devices may be peer devices. 
     In some embodiments of the present invention, configuring the first network-enabled device may include updating the configuration parameters at the first network-enabled device based on the configuration parameters obtained from the at least one additional network-enabled device. 
     In further embodiments of the present invention, the first network-enabled device may be a newly added network-enabled device and the one or more additional network-enabled devices may be one or more existing network-enabled devices. 
     In still further embodiments of the present invention, the first network-enabled device may be an existing network-enabled device and the one or more additional network-enabled devices may one or more newly added network-enabled devices. 
     In some embodiments of the present invention, the network-enabled device may be an uninterruptible power supply (UPS), an electricity meter, a feeder protector, a software program, or any network-enabled device. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         FIG. 1  is a block diagram of a data processing system suitable for use in some embodiments of the present invention. 
         FIG. 2  is a block diagram of a system including a network-enabled device according to further embodiments of the present invention. 
         FIG. 3  is a block diagram illustrating still further embodiments of the present invention in an exemplary network environment. 
         FIGS. 4 and 5  are flowcharts illustrating exemplary operations of devices according to various embodiments of the present invention. 
     
    
    
     DETAILED DESCRIPTION OF EMBODIMENTS OF THE INVENTION 
     The invention now will be described more fully hereinafter with reference to the accompanying drawings, in which illustrative embodiments of the invention are shown. This invention may, however, be embodied in many different forms and should not be construed as limited to the embodiments set forth herein; rather, these embodiments are provided so that this disclosure will be thorough and complete, and will fully convey the scope of the invention to those skilled in the art. Like numbers refer to like elements throughout. As used herein, the teen “and/or” includes any and all combinations of one or more of the associated listed items. 
     The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the invention. As used herein, the singular forms “a”, “an” and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will be further understood that the terms “comprises” and/or “comprising,” when used in this specification, specify the presence of stated features, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and/or groups thereof. 
     Unless otherwise defined, all taints (including technical and scientific terms) used herein have the same meaning as commonly understood by one of ordinary skill in the art to which this invention belongs. It will be further understood that terms, such as those defined in commonly used dictionaries, should be interpreted as having a meaning that is consistent with their meaning in the context of the relevant art and this specification and will not be interpreted in an idealized or overly formal sense unless expressly so defined herein. 
     As will be appreciated by one of skill in the art, the invention may be embodied as a method, device, or computer program product. Accordingly, the present invention may take the form of an entirely hardware embodiment or an embodiment combining software and hardware aspects all generally referred to herein as a “circuit” or “module.” Furthermore, the present invention may take the form of a computer program product on a computer-usable storage medium having computer-usable program code embodied in the medium. Any suitable computer readable medium may be utilized including hard disks, CD-ROMs, optical storage devices, or magnetic storage devices. 
     Computer program code for carrying out operations of the present invention may be written in an object oriented programming language such as Java®, Smalltalk or C++. However, the computer program code for carrying out operations of the present invention may also be written in conventional procedural programming languages, such as the “C” programming language or in a visually oriented programming environment, such as VisualBasic. 
     The program code may execute entirely on the user&#39;s computer, partly on the user&#39;s computer, as a stand-alone software package, partly on the user&#39;s computer and partly on a remote computer or entirely on the remote computer. In the latter scenario, the remote computer may be connected to the user&#39;s computer through a local area network (LAN) or a wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider). 
     The invention is described in part below with reference to a flowchart illustration and/or block diagrams of methods, devices and computer program products according to embodiments of the invention. It will be understood that each block of the illustrations, and combinations of blocks, can be implemented by computer program instructions. These computer program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified in the block or blocks. 
     These computer program instructions may also be stored in a computer-readable memory that can direct a computer or other programmable data processing apparatus to function in a particular manner, such that the instructions stored in the computer-readable memory produce an article of manufacture including instruction means which implement the function/act specified in the block or blocks. 
     The computer program instructions may also be loaded onto a computer or other programmable data processing apparatus to cause a series of operational steps to be performed on the computer or other programmable apparatus to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide steps for implementing the functions/acts specified in the block or blocks. 
     As discussed above, configuration and updating of network devices can be time consuming. Thus, according to some embodiments of the present invention, methods, devices and computer program products are provided that place the onus of the device configuration setting onto the device itself (or its proxy). In particular, since individual devices know how they are configured and what they can be configured for, i.e., the firmware engineer/designer knows which parameters need to be set, according to some embodiments of the present invention devices, the entities that best know how to configure themselves, are used to configure like-type devices. It will be understood that devices do not have to be of “like-type” if the device performing the configuration has access to the device configuration parameters of the device being configured. 
     In other words, with the introduction of networked devices, for example, Power Xpert Architecture from Eaton Corporation of Cleveland, Ohio, devices according to some embodiments of the present invention can use a peer-to-peer mechanism for configuring and updating themselves in viral form if deemed acceptable by the customer/security/permissions settings. In some embodiments of the present invention, Gateways can act as proxies for this function. 
     Some embodiments of the present invention will now be described with respect to  FIGS. 1 through 5 . As discussed herein, some embodiments of the present invention provide methods, devices and computer program products for configuring network-enabled devices. In particular, a first network-enabled device may be configured to discover at least one additional device and obtain configuration parameters relevant to the first network-enabled device from the at least one additional network-enabled device. As used herein, “configuration parameters” refer to details of how to configure a particular device. In particular, “configuration parameters ” may not only imply the concept that both new and old devices can exchange configuration details, but may also exchange entire firmware. The first network-enabled device may be configured/updated using the configuration parameters obtained from the at least one additional network-enabled device. Accordingly, development time may become very efficient using devices, methods and computer program products in accordance with some embodiments of the present invention, as will be discussed further below with respect to  FIGS. 1 through 5 . 
     Referring first to  FIG. 1 , an exemplary embodiment of a data processing system  130  configured in accordance with embodiments of the present invention will be discussed. The data processing system  130 , which may be incorporated in a network-enabled device, such as a personal computer, server, power supply, an uninterruptible power supply (UPS) or the like, may include a user interface  144 , for example, input or output device(s), such as a keyboard or keypad, a display, a speaker and/or microphone, and a memory  136  that communicate with a processor  138 . The data processing system  130  may further include an I/O data port(s)  146  that also communicates with the processor  138 . The I/ 0  data ports  146  can be used to transfer information between the data processing system  130  and another computer system or a network using an Internet protocol (IP) connection. These components may be conventional components such as those used in many conventional data processing systems, which may be configured to operate as described herein. 
     Referring now to  FIG. 2 , a more detailed block diagram of data processing system  200  of  FIG. 1  according to some embodiments of the present invention will be discussed. The data processing system  200  of  FIG. 2  may be included in any network-enabled device in accordance with some embodiments of the present invention. As used herein, “network-enabled device” refers to a UPS, an electricity meter, a feeder protector, a software program, or any network-enabled device capable of operating in accordance with some embodiments of the present invention. Referring again to  FIG. 2 , the processor  138  communicates with the memory  136  via an address/data bus  248 . The processor  138  can be any commercially available or custom microprocessor, microcontroller, digital signal processor or the like. The memory  136  may include any memory devices containing the software and data used to implement the functionality of the data processing system  130 . The memory  136  can include, but is not limited to, the following types of devices: cache, ROM, PROM, EPROM, EEPROM, flash memory, SRAM, and DRAM. 
     As shown in  FIG. 2 , the memory  136  may include several categories of software and data used in the status information module  268 : an operating system or kernel  252 ; application programs  254 ; input/output (I/O) device drivers  258 ; and data  256 . As will be appreciated by those of skill in the art, the operating system  252  may be any operating system suitable for use with a data processing system or embedded device, such as OS/2, AIX or zOS from International Business Machines Corporation, Armonk, N.Y., Windows95, Windows98, Windows2000 or WindowsXP from Microsoft Corporation, Redmond, Wash., Unix , Linux, embedded Linux, embedded XP, QNX or VxWorks. The I/O device drivers  258  typically include software routines accessed through the operating system  252  by the application programs  254  to communicate with devices such as the I/O data port(s)  146  and certain memory  136  components. The application programs  254  are illustrative of the programs that implement the various features of the data processing system  200  and preferably include at least one application that supports operations according to some embodiments of the present invention. Finally, the data  256  represents the static and dynamic data used by the application programs  254 , the operating system  252 , the I/O device drivers  258 , and other software programs that may reside in the memory  136 . 
     As illustrated in  FIG. 2 , the data  256  includes configuration parameters for peer devices  260  and configuration parameters for non-peer devices  261  according to some embodiments of the present invention. As discussed above, configuration parameters include not only information that can be used to configure or update a device, but may also include entire firmware. It will be understood that although only two configuration parameter files  260  and  261  are illustrated in  FIG. 2 , embodiments of the present invention are not limited to this configuration. For example, one or more than two configuration parameter files may be present without departing from the scope of the present invention. 
     As further illustrated in  FIG. 2 , according to some embodiments of the present invention the application programs  254  include a discovery module  265 , a communication module  266  and a configuration module  267 . While the present invention is illustrated with reference to the discovery module  265 , the communication module  266  and the configuration module  267  being application programs in  FIG. 2 , as will be appreciated by those of skill in the art, other configurations fall within the scope of the present invention. For example, rather than being application programs the discovery module  265 , the communication module  266  and the configuration module  267  may also be incorporated into the operating system  252  or other such logical division of the data processing system  130 . Furthermore, while the discovery module  265 , the communication module  266  and/or the configuration module  267  are illustrated in a single data processing system, as will be appreciated by those of skill in the art, such functionality may be distributed across one or more data processing systems. Thus, the present invention should not be construed as limited to the configuration illustrated in  FIGS. 1 and 2 , but may be provided by other arrangements and/or divisions of function between data processing systems. 
     Referring again to  FIG. 2 , in some embodiments of the present invention, the discovery module  265  may be configured to discover, from a first network-enabled device, at least one additional network-enabled device containing configuration parameters relevant to the network-enabled device. As discussed above, in some embodiments of the present invention, the ability to discover other devices may be provided in the Power Xpert Architecture. Alternatively, discovery can be accomplished by another method, for example, by the Power Xpert Software as a general inquiry without departing from the scope of the present invention. In some embodiments of the present invention, the first network-enabled and the at least one additional network-enabled device may be peer devices. However, embodiments of the present invention are not limited to this configuration. For example, if a standardized “file” and protocol exchange format were established, devices of one type could also act as proxies for devices of another type without departing from the scope of the present invention. For example, there is nothing restricting the UPS, if it knows about a meter that is out of date from a configuration perspective, from accepting an update for the meter and pass it on. 
     The communication module  266  may be configured to obtain, at the first network-enabled device, the relevant configuration parameters from the at least one additional network-enabled device. In particular, the communication module  266  may be configured to request the relevant configuration parameters from the at least one additional network-enabled device and receive the requested configuration parameters at the network-enabled device. In some embodiments of the present invention, the communication module  266  is configured to receive the configuration parameters as an extended Markup Language (XML) formatted file including the relevant configuration parameters. It will be understood that embodiments of the present invention are not limited to receiving the configuration information as XML formatted files, any format may be used without departing from the scope of the present invention. 
     The configuration module  267  may be configured to configure the network-enabled device using the obtained configuration parameters. It will be understood that the obtained configuration parameters may be used to both fully configure or update the configuration information associated with the network-enabled device without departing from the scope of the present invention. Furthermore, the configuration parameters may include entire device firmware without departing from the scope of the present invention. 
     It will be understood that the first network-enabled device configured to discover at least one additional network-enabled device can be an existing network-enabled device or a newly added network-enabled device without departing from the scope of the present invention. If the first network-enabled device is an existing network-enabled device, the at least one additional network-enabled device may provide configuration updates to the first network-enabled device. If, on the other hand, the first network-enabled device is a newly added network-enabled device, the newly added network-enabled device may receive all of the configuration parameters/firmware from the at least one additional network-enabled device. In some embodiments, existing network-enabled devices may be configured to discover newly added network-enabled devices as the newly added network-enabled devices may have access to the most up to date configuration information. 
     It will be understood that whether the device discovering the other devices is a newly added device or an existing device does not determine which device receives the configuration parameters. In other words, the discovering device may receive configuration information, provide configuration information or both. Similar, the discovered device or devices may receive configuration information, provide configuration information or both without departing from the scope of the present invention. 
     It will be further understood that the data processing system  200  of  FIG. 2  may be included in both the network-enabled devices discovering other devices and network-enabled devices providing configuration information. It will be further understood that the more than one device may provide configuration parameters responsive to the request. As discussed above, devices according to some embodiments of the present invention may be, for example, uninterruptible power supplies (UPSs), electricity meters, software program, feeder protectors, network attached storage or any network-enabled device without departing from the scope of the present invention. 
       FIG. 3  illustrates a network environment  300  according to some embodiments of the present invention. As illustrated in  FIG. 3 , the network environment  300  may include a terminal  310 , a network  320 , one or more network-enabled devices  340 ,  341  and  342 , for example, uninterruptible power supplies (UPSs), switches, routers, meters and the like. The terminal  310  may be, for example, a laptop computer, a desktop computer, a personal data assistant (PDA), a web capable mobile terminal or any device capable of communicating with the network  320 . As illustrated, the terminal  310  may be configured to run a web browser  315 , which may be used by, for example, a system administrator to monitor remote devices  340 ,  341  and  342 . The terminal  310  may communicate over the network  320 , for example, the internet, through a telephone line, a digital subscriber link (DSL), a broadband cable link, a wireless link or the like, with the one or more network-enabled devices  340 ,  341  and  342 . 
     As further illustrated, the network-enabled devices  340 ,  341  and  342  may include network cards  366 ,  367  and  368  that communicate with the network  320 . In some embodiments of the present invention, the network cards  366 ,  367  and  368  may be ConnectUPS Web/SNMP Card offered by Eaton Power Quality Corporation, the assignee of the present application. The ConnectUPS Web/SNMP Card is configured to install in a device to provide simple network management protocol (SNMP), hypertext transfer protocol (HTTP), simple mail transfer protocol (SMTP), wireless application protocol (WAP) and Telnet compatibility and advanced RS-232 communications. The network card may allow monitoring and management of devices, for example, servers, routers, hubs, UPSs and other key inter-networking devices. ConnectUPS Web/SNMP cards provide a link between the device and, for example, the Ethernet local area/wide area network (LAN/WAN), allowing the device to be remotely monitored and controlled. 
     Exemplary operations according to some embodiments of the present invention will now be discussed with respect to  FIGS. 2 and 3 . The discovery module  266  of a first network-enabled device  340 , for example, a meter on a communications network  320 , such as a local area network (LAN), may discover at least one additional network-enabled device  341 ,  342  on the communications network  320 . The communication module  266  of the first network-enabled device  340  may request relevant configuration parameters from the at least one additional network-enabled device  341 ,  342  and receive the requested configuration parameters at the first network device. In some embodiments of the present invention, the configuration parameters may be received as an XML formatted file including the relevant configuration parameters. It will be understood that the at least one additional device  341 ,  342  does not have to provide the configuration parameters responsive to the request and may send a rejection of the request for configuration parameters to the first network-enabled device  340  from at least one of the at least one additional network-enabled device  341 ,  342 . 
     In particular, network-enabled devices in accordance with some embodiments of the present invention can optionally perform peer-to-peer synchronization of any other network-enabled device. Once configured, the newly configured network-enabled device can then provide the configuration parameters to other devices or perform configuration through a Gateway proxy. Any network-enabled device of like type can accept or reject an attempt from a peer to establish a like configuration as discussed above. As further discussed above, the configuration parameters transferred between network-enabled devices can be used to update devices, for example, firmware updates, in addition to configuration of the device. 
     The configuration module  267  of the first network-enabled device  340  may be configured to configure and/or update the first network-enabled device  340  based on the configuration parameters received from the at least one additional network-enabled device  341 ,  342 . 
     Thus, according to some embodiments of the present invention, an administrator can physically set-up one network-enabled device in a traditional manner, for example, using the device&#39;s local web page, physically via the device&#39;s front panel or by specific software if the device is headless. Then, the remaining network-enabled devices may be configured and/or updated by obtaining the configuration parameters from the traditionally configured device in a viral-like manner throughout the network. It will be understood that effective and practical use of configuration methods discussed herein may require appropriate password/accessibility/security and the like. This level of security may be provided by, for example, established protocols, such as Remote Authentication Dial In User Service (RADIUS) without departing from the scope of the present invention. Devices according to embodiments of the present invention discussed herein have true peer relationships. Accordingly, any network-enabled device learning of an updated configuration can notify and transfer updated information to any other network-enabled device assuming their permissions allow such a transfer. 
     Management of the network-enabled devices capable of performing operations in accordance with some embodiments of the present invention can be performed either locally at the device(s) or centrally through the software using terminal  310 . If the management of the devices is handled centrally using software, a mechanism may be established once and then managed, avoiding possible lagging update software time. 
     Using software for this function becomes acceptable. For example, specific devices can be ‘frozen’ at version 1.1 instead of optimally updating the latest version the system knows about. For example, consider a tree view in the software which can set these master parameters. Or, specific devices can be individually configured (or ‘frozen’) with a specific set of configuration parameters based upon the need for such specifics. This protocol manages the management which is much easier than managing the configuration of multiple of devices. 
     Operations for configuring network-enabled devices will now be discussed with respect to  FIGS. 4 and 5 . Referring first to  FIG. 4 , operations begin at block  400  by discovering, at a first network-enabled device, at least one additional network-enabled device containing configuration parameters relevant to the first network-enabled device. The relevant configuration parameters are obtained from the at least one additional network-enabled device (block  420 ) and the first network-enabled device is configured using the obtained configuration parameters (block  440 ). In some embodiments of the present invention, the first network-enabled device and the at least one additional network-enabled device are peer devices. 
     Referring now to  FIG. 6 , operations begins at block  500  by discovering, at a first network-enabled device, at least one additional network-enabled device containing configuration parameters relevant to the first network-enabled device. The relevant configuration parameters are requested from the at least one additional network-enabled device (block  520 ). It is determined if the configuration parameters have been received from at least one network-enabled device (block  530 ). If the requested configuration parameters are received (block  530 ), the first network-enabled device is configured and/or updated using the received configuration parameters. In some embodiments of the present invention, the requested configuration parameters are received as an extended Markup Language (XML) formatted file including the relevant configuration parameters. 
     If, on the other hand, the configuration parameters are not received (block  530 ), it is determined if a rejection of the request for configuration parameters was received at the first network-enabled device from at least one of the at least one additional network-enabled device (block  545 ). If the rejection was received (block  545 ), the first network-enabled device waits to receive configuration parameters from another device. 
     As discussed briefly above with respect to  FIGS. 1 through 5 , according to some embodiments of the present invention, network-enabled devices may discover other devices on the network and obtain relevant configuration parameters therefrom. The obtained relevant configuration parameters may be used to configure the network-enabled device. Thus, some embodiments of the present invention may simplify the configuration of network-enabled devices as discussed herein. 
     In the drawings and specification, there have been disclosed exemplary embodiments of the invention. Although specific terms are employed, they are used in a generic and descriptive sense only and not for purposes of limitation, the scope of the invention being defined by the following claims.