The present invention comprises a system, as well as a method for monitoring a network and for configuring a device, such as a printer, which is operatively linked to the network or a computer. The system is also for establishing communication between the network and the device in a format understandable by a human operator of the network. The present system and method is capable of communicating with virtually any type of operatively linked device utilizing any available device configured protocol and can generate a user interface in any supported human understandable language. The system can also automatically update itself with respect to newly developed devices or changes to device protocols by downloading any needed data from a central location using an existing communication network, such as the Internet.
Devices, such as printers are typically described by various configuration variables using a variety of different system protocols and languages including SNMP, PJL, HTTP, etc. machine languages which are not easily understood by humans. However, in each language there is a code or series of codes or characters which describe or identify a commonly performed task, instruction or characteristic. For example, all printers have a characteristic which in English is “Paper Tray Source”. The same characteristic in a PJL variable would be “OKIPAPERFEED” and in a SNMP variable would be “1.3.6.1.4.1.2001.1.1.1.1.1.40”. The present invention communicates with connected devices utilizing the system protocol or language of the device and “translates” information/data from the connected device into a selected human understandable format for presentation to a human operator.
The present invention reduces development and maintenance time and cost by building generic applications that are modular, data driven and utilize dynamic graphical user interface (GUI) generation instead of integral programs with hard-coded mapping of data to GUI. Using this approach the same software program can operate with any type of device and can present a user interface in any human understandable language. If a device of a previously unknown type is discovered by a system or network, the system or network can dynamically and automatically update itself to permit communication with the newly discovered device or to generate a user interface in a new language. Many network management applications have “knowledge” about device variables coded into the management program. With the present invention description of devices are stored externally so that a generic program can be used making different network protocols, system and human languages and device types and can obtain needed device configurations and variables from the external source as needed.
Briefly stated, the present invention comprises a method of monitoring a network for communicating with a device operably connected to the network. The network employs a data engine for interfacing with a data agent connected to the device. The method comprises detecting the presence of the device through the data agent interfacing the data engine; communicating with a first external repository, the repository for storing device information about the device; selecting information corresponding to the device from information stored at the first repository; and transferring the selected information from the first repository to the data engine for use in communicating with the device, whereby the network is dynamically upgraded as devices are operatively linked thereto.
The foregoing summary, as well as the following detailed description of preferred embodiments of the invention will be better understood when read in conjunction with the appended drawings. For the purpose of illustrating the invention, there are shown in the drawings, embodiments which are presently preferred. It should be understood, however, that the present invention is not limited to the precise arrangements and instrumentality shown. In the drawings:
The system 10 in the present embodiment is specifically directed to peripheral devices, particularly printers, which are connected or otherwise operatively linked to a network or computer. It should be understood that the present invention is equally applicable with respect to devices other than printers, which may be connected or otherwise operatively linked to a network or computer. The system 10 operates under the assumption that every device may be “described” by a set of property variables that are NAME-VALUE pairs. To find out a device configuration, the system can “GET” variable and to change a device configuration, the system can “SET” the values of the device variables.
As illustrated in
The system 10 also includes a plurality of network agents or data agents 20 which are operatively connected to the data engine 12 to collect and to present data. Each data agent 20 is a software module that communicates with a device, in the present embodiment, printers 22a, 22b, 22c, which are operatively connected to the network. As previously mentioned, any other suitable type of device could alternatively be operatively connected to a data agent 20, if desired. Each data agent 20 “discovers” and communicates with a connected device, such as one of the printers 22a, 22b, 22c, using the specific system protocol and/or language (such as SNMP, PJL, etc.) which is used by the particular device. For example, in connection with the present embodiment, a first data agent 20 communicates with a parallel port printer 22a, utilizing a first standard printer language such as, PJL another data agent 20 communicates with a first network printer 22b utilizing a second standard printer language such as SNMP, etc. The data engine 12 selects a particular data agent 20 that is associated with a selected device. By communicating with the attached device in the system protocol or language used by the device a data agent 20 can obtain from the device information concerning the identity of the device, as well as the language of the attached device and necessary configuration variables. The data agent 20 provides data in the form of NAME=VALUE arrays as well as additional flags like READ ONLY and a listing of allowed values from the device. The obtained data concerning the device is presented by the data agent 20 to the data engine 12. The communication between the data agent 20 and the connected device is preferably bi-directional to facilitate changing the value of configuration variables of the device as selected by a user or as needed.
The system 10 further includes a data dictionary 24 in the form of a local description cache, preferably in XML format. The data dictionary 24 stores information to facilitate translations between the various system protocol or languages used within the devices 22a, 22b, 22c and provides such translation information to the data engine 12 to assist and facilitate the data engine 12 in translating data from the various devices into the selected human understandable form. The data engine 12 thus uses the data dictionary 24 to obtain variable names in the language of a selected data agent 20. For some devices which communicate with the system 10, the data dictionary 24 initially contains in its memory sufficient information to facilitate the translation of the data by the data engine 12. In the case of a new or unknown device connected to the network or an updated device detected by a data agent 20, for which no data or insufficient date is stored within the data dictionary 24, it may be necessary to dynamically update the data dictionary 24 with the requisite information. The data dictionary 24 may be dynamically updated by accessing a central repository of information or data.
The central data repository, referred to in the present embodiment as data central 26 is preferably at a centralized location and is accessible by a variety of communications systems or networks. If necessary, the data central 26 may obtain data which it does not already have from a second repository or source, such as from a vendor's website or the like. In the present embodiment, the data central 26 is accessible by way of the Internet. As shown in
From the foregoing, it can be seen that the present invention comprises a novel system and method for communicating, monitoring and configuring a device operatively connected to a network. It will be appreciated by those skilled in the art that changes could be made to the embodiments described above without departing from the broad inventive concept thereof. It is understood, therefore, that this invention is not limited to the particular embodiments disclosed, but it is intended to cover modifications within the spirit and scope of the present invention as defined by the appended claims.
Number | Name | Date | Kind |
---|---|---|---|
4974191 | Amirghodsi et al. | Nov 1990 | A |
5003472 | Perrill et al. | Mar 1991 | A |
5109484 | Hughes et al. | Apr 1992 | A |
5181163 | Nakajima et al. | Jan 1993 | A |
5491796 | Wanderer et al. | Feb 1996 | A |
5701497 | Yamauchi et al. | Dec 1997 | A |
5726979 | Henderson et al. | Mar 1998 | A |
5768119 | Havekost et al. | Jun 1998 | A |
5822520 | Parker | Oct 1998 | A |
5826077 | Blakeley et al. | Oct 1998 | A |
5903568 | Tanaka et al. | May 1999 | A |
5905779 | Steinmetz | May 1999 | A |
5913037 | Spofford et al. | Jun 1999 | A |
5935209 | Budhraja et al. | Aug 1999 | A |
5955946 | Beheshti et al. | Sep 1999 | A |
5960176 | Kuroki et al. | Sep 1999 | A |
6003078 | Kodimer et al. | Dec 1999 | A |
6008805 | Land et al. | Dec 1999 | A |
6009274 | Fletcher et al. | Dec 1999 | A |
6092099 | Irie et al. | Jul 2000 | A |
6094649 | Bowen et al. | Jul 2000 | A |
6161103 | Rauer et al. | Dec 2000 | A |
6219708 | Martenson | Apr 2001 | B1 |
6233611 | Ludtke et al. | May 2001 | B1 |
6237033 | Doeberl et al. | May 2001 | B1 |
6253240 | Axberg et al. | Jun 2001 | B1 |
6256668 | Slivka et al. | Jul 2001 | B1 |
6282508 | Kimura et al. | Aug 2001 | B1 |
6321262 | Springer | Nov 2001 | B1 |
6321372 | Poirier et al. | Nov 2001 | B1 |
6336124 | Alam et al. | Jan 2002 | B1 |
6345245 | Sugiyama et al. | Feb 2002 | B1 |
6373841 | Goh et al. | Apr 2002 | B1 |
6385615 | Haeri et al. | May 2002 | B1 |
6389464 | Krishnamurthy et al. | May 2002 | B1 |
6393389 | Chanod et al. | May 2002 | B1 |
6418448 | Sarkar | Jul 2002 | B1 |
6418467 | Schweitzer et al. | Jul 2002 | B1 |
6421730 | Narad et al. | Jul 2002 | B1 |
6466971 | Humpleman et al. | Oct 2002 | B1 |
6466974 | Nelson et al. | Oct 2002 | B1 |
6532446 | King | Mar 2003 | B1 |
6535855 | Cahill et al. | Mar 2003 | B1 |
6539378 | Gupta et al. | Mar 2003 | B2 |
6557026 | Stephens, Jr. | Apr 2003 | B1 |
6564243 | Yedidia et al. | May 2003 | B1 |
6573907 | Madrane | Jun 2003 | B1 |
6628314 | Hoyle | Sep 2003 | B1 |
6628965 | LaRosa et al. | Sep 2003 | B1 |
6652169 | Parry | Nov 2003 | B2 |
6678674 | Saeki | Jan 2004 | B1 |
6704874 | Porras et al. | Mar 2004 | B1 |
6707581 | Browning | Mar 2004 | B1 |
6718332 | Sitaraman et al. | Apr 2004 | B1 |
6742015 | Bowman-Amuah | May 2004 | B1 |
6763499 | Friedman et al. | Jul 2004 | B1 |
6772216 | Ankireddipally et al. | Aug 2004 | B1 |
6782420 | Barrett et al. | Aug 2004 | B1 |
6785015 | Smith et al. | Aug 2004 | B1 |
6795854 | Parker et al. | Sep 2004 | B1 |
6874018 | Wu | Mar 2005 | B2 |
6886044 | Miles et al. | Apr 2005 | B1 |
7058626 | Pan et al. | Jun 2006 | B1 |
20020077805 | Hecht et al. | Jun 2002 | A1 |
20030120760 | Fortin et al. | Jun 2003 | A1 |
20040015714 | Abraham et al. | Jan 2004 | A1 |
20050044148 | Son et al. | Feb 2005 | A1 |
20060136545 | Reistad et al. | Jun 2006 | A1 |