Abstract:
A network management protocol can be used to enable a user to determine what features, functions and other characteristics are supported by a networked device and to extend the capabilities of the device without having to modify the existing software. While available systems and methods use the generic profiles that are provided with each client application, present systems and methods can be used to tailor client applications for use by a specific device. Accordingly, subsequent versions of a client application can provide new functionality to devices that have already been connected to the network.

Description:
TECHNOLOGY  
       [0001]     Present systems and methods relate to identifying and extending the features that are supported by a specified device that is connected to a computer network.  
       BACKGROUND  
       [0002]     A network generally includes a number of devices connected to allow inter-device communication. Networked devices are often provided by multiple manufactures that have expertise in providing different types of devices. Networks and networked devices have become increasingly complex and thus, it has become increasingly important to be able to monitor the status and performance of all of the devices that are connected to the network. Accordingly, networks typically include at least one network management station that can be used to monitor and manage the network.  
         [0003]     Generally, networks manage the transmission of data among the devices using a network protocol. While network communications take place in many ways, many networks use one of a few widely known standards that are known to facilitate efficient communication among unrelated devices. For example, networks throughout Europe commonly operate under the Common Management Information Protocol (CMIP), while use of the Simple Network Management Protocol (SNMP) is more common in the United States. The capabilities of a given network will typically be limited by the functionality that is supported by its communication protocol.  
         [0004]     SNMP is a network communication standard that provides a data transmission protocol, a structure for an object-oriented management information database (MIB) and a set of well defined data objects. SNMP objects define the status and characteristics for a selected network device. They are identified by an object identifier (OID) that defines the path through the database structure that leads to the object. Each target device on the network runs a network agent that maintains a MIB for the objects that are supported by that device.  
         [0005]     To obtain device information, the network manager typically identifies the network agent running on the target device, determines the type of information that can be exported by the identified network agent and sends the network agent a request for the desired information, which includes the OID for the related object and an instruction to either get or modify the value of the object. The network agent responds by accessing its MIB and retrieving/modifying the value of the object corresponding to OID or if the OID is not recognized, sending the network manager an error message indicating that the requested information is not available.  
         [0006]     To identify the all of information that can be exported from a target device, a network manager would have to walk through the objects in the MIB one-by-one using a string of “get-next” requests. More specifically, the network manager could send the network agent a “get” request that includes the first OID, then send repeated “get-next” requests to obtain all of information that can be exported by the target device. There is currently no way to obtain a list of all of the OIDs for the objects that can be exported by a specified networked device.  
         [0007]     Further, the MIB for each device is typically configured solely by the device manufacturer. Thus, while it may be possible for a device to export a significant amount of information, the network manager cannot obtain any information that does not correspond to an object that the manufacturer has included in the MIB for the device.  
         [0008]     It would be advantageous to provide a way for a network manager to obtain a list of all of the objects that are supported by a specified target device and to be able to access information that is not originally associated with objects that are initially contained in the MIB for the device.  
       REFERENCES  
       [0009]     U.S. Pat. No. 6,694,304 discloses systems and methods for retrieving table entries within a network management system are provided. A method includes receiving a request for table entries which are identified by an object identifier having a plurality of elements. The request includes at least one table entry object identifier and an index identifying at least one element of the object identifier. The method further includes varying the index element in the table entry object identifier and sending a response to the management station. The response includes the table entries obtained by varying the index element.  
         [0010]     U.S. Pat. No. 6,360,258 discloses a method of providing multiple variable retrievals and setting within one SNMP request. The method forms packet data units with object identifiers (OIDs). The OIDs are packet specific for a particular request in an object management system using SNMP (simple network management protocol) attributes, the object management system including a plurality of objects and procedures for accessing the objects. The object management system is accessible over a network and associated with a network-attached device. The method includes providing the object management system with a plurality of classes providing descriptions of things that can be accessed.  
         [0011]     U.S. Pat. No. 6,055,063 discloses a utility that defines additional attributes that would cater to the needs of a user, which provides dynamically extended printing capabilities. The system architecture allows the information to be pushed down transparently to the receiving end, which understands the semantics of the given information. One possible function of the system administrators can be to define information to monitor for accounting purposes. The utility allows additional printer features to be incorporated without disrupting the existing system.  
         [0012]     U.S. Pat. No. 5,913,037 discloses a MIB manager including set of software interfaces, semantics, procedures and data structures that work together as a system to dynamically manage a tree of SNMP data objects identified by a standard object identifier (OID) along with each object&#39;s value. An agent uses the interface of the MIB manager to add and delete MIB objects by OID. When one or more new objects are added to the MIB tree, the agent provides the MIB manager with references to subroutines within the agent and external to the MIB manager, which subroutines operate to manage the identified objects by monitoring and controlling the objects&#39; values.  
       SUMMARY  
       [0013]     Aspects of present systems and methods provide a method that includes receiving, at a target device on a computer network, a request for a list of identifiers that are associated with a plurality of objects that are available for export from the target device; using a database managed by the target device, generating a list of identifiers for the plurality of export available objects; and sending the generated list to a remote device on the computer network.  
         [0014]     In one aspect, an object-oriented database includes a plurality of objects that are available for export from an electronic device; and a plurality of object identifiers, each of which corresponds to one of the plurality of objects, wherein at least one of the plurality of object identifiers can be used to export a list of object identifiers corresponding to a plurality of the objects.  
         [0015]     In another aspect, a computer network includes a network management station configured to run a network manager that is arranged to transmit and receive object identifiers over the computer network; a target device in electronic communication with the network management station, the target device running a network agent that is configured to receive the object identifiers from the network manager and to transmit objects associated with the object identifiers to the network manager, the network agent being further configured to maintain an object oriented database of the objects and associated object identifiers, wherein each of the objects provides management information relating to the target device.  
         [0016]     In yet another aspect, an electronic device includes electronic circuitry configured to communicate with a remote device; a processor; and a memory having an object-oriented database and a network agent stored therein, the object-oriented database containing a plurality of objects, each of which is associated with a unique object identifier, the network agent being configured to export the objects from the object-oriented database, wherein at least one of the plurality of object identifiers can be used by the network agent to export a list of object identifiers corresponding to a plurality of the database objects. 
     
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0017]      FIG. 1  is a general illustration of a computer network with several target devices linked for electronic communication.  
         [0018]      FIG. 2  is a block diagram showing a MIB formatted as a tree structure  
         [0019]      FIG. 3  is a flow diagram showing aspects of a network management system using database objects that are included in present systems and methods.  
         [0020]      FIG. 4  is a flow diagram illustrating generally, one way to obtain information about a target device on a network.  
         [0021]      FIG. 5  is a flow diagram showing an example of how a network manager can obtain a list of identifiers for objects that are supported by target devices on a network.  
         [0022]      FIG. 6  is a flow diagram showing an example of how a network manager can add identifiers for objects that can be supported by target devices on a network. 
     
    
     DETAILED DESCRIPTION  
       [0023]     For a general understanding of the present systems and methods, reference is made to the drawings. In the drawings, like reference numerals have been used throughout to designate identical elements. In describing the present systems and methods, the following term(s) have been used in the description:  
         [0024]     A “protocol” refers to a pre-defined method used by networked devices to used by networked devices to exchange information.  
         [0025]     A “network management station” refers to a computer that is operated by a human user to monitoring the status of the devices on a computer network.  
         [0026]     A “target device” is a managed node, such as a printer, computer, scanner, etc., that is linked to a computer network.  
         [0027]     A “network agent” is a software program running as a background process on a target device that receives and responds to requests for information about the target device.  
         [0028]     A “network manager” is a software program available on a network management station that is capable of setting objects in a network agent running on a target device.  
         [0029]     An “object” is an item of data with associated methods for modifying it.  
         [0030]     An “object identifier (OID) is a sequence of non-negative integer values that signifies the path through a database structure that leads to a selected object.  
         [0031]     An object is “available for export” when is stored in the management information database for a target device with an associated object identifier when it is requested by a network manager. An object is “not available for export” when it relates to information about a device that can be obtained but it is not present in the management information database with an associated object identifier at the time it is requested by the network manager.  
         [0032]     An “object identifier list” is a register of object identifiers. Accordingly, “available object list object” is an object that provides a register of object identifiers that are available for export from the management information database of a target device. An “available object list OID” is the object identifier associated with an available object list object.  
         [0033]     An “add exportable object” is an object used to add a new object to a management information database. An “add exportable OID” is the object identifier associated with an add exportable object.  
         [0034]     Referring now to  FIG. 1 , a block diagram is shown of a network  10  with a plurality of electronic devices that are linked for electronic communication. In the example shown, the devices that are linked to network  10  include a network management station (NMS)  100  and a plurality of target devices  200 , which may be, for example, printers, plotters, fax machines, computer workstations, file and print servers and/or networking resources and devices, such as, repeaters, switches, routers, routers hubs, concentrators, nodes, etc. NMS  100  and each of the target devices  200  has a network interface  20  and is configured to communicate with network  10  using the Simple Network Management Protocol (SNMP). While present systems and methods are illustrated herein using SNMP, it is understood, that other network protocols may be used and that systems and methods that are described are not limited use with to network systems and that in fact, they may be applied to any type of device to be managed.  
         [0035]     NMS  100  includes a processor  110  that is capable of executing one or more software programs that are stored in memory  120 . One such program is a client application known as a network manager (NM)  122 , which manages objects  123  that are supported by the networked target devices  200 . In the example shown, NMS  100  also has a user interface (UI)  130  where data can be entered by and displayed to a user at NMS  100 .  
         [0036]     Each target device  200  on the network runs a network agent (NA)  222  that maintains an object oriented management information base (MIB)  225  of objects that are supported by that target device  200 . NM  122  monitors and manages network devices by sending SNMP requests, each of which includes one or more OIDs  127 , to the NA  222  running on target devices  200 . NA  222  responds by accessing the associated MIB  225  and reading or modifying the object  123  corresponding to OID  127 .  
         [0037]     In the example shown, MIB  225  is implemented as a tree structure and each object  123  is associated with an object identifier (OID)  127  that defines the path that leads to the associated object  123 . However, it is understood that MIB  225  could be formatted in other ways.  
         [0038]     For example, an object  123  associated with a first component of a first subsystem of a first target device  200  may be identified by OID 1.1.1, which means it will be located by following top level path  310  to the device identified by ID #1, then following branch  311  at the next level to the subsystem identified by ID #1 and finally, following branch  314  at the last level to the component identified by ID #1. Similarly, OID 2.4.3 that identifies an object  123  associated with a third component of a fourth subsystem of a second target device  200  may be located by following top level path  320  to the device identified by ID #2, then following branch  324  at the next level to the subsystem identified by ID #4, then following branch  327  at the next level to the component identified by ID #3. As shown, all of the OIDs  127  that relate to a single device begin with an identical series of numbers and branch out to address different functions.  
         [0039]     Objects in MIB  225  relate to the functions that are supported by target devices  200 . The structure of a MIB  225  is typically established by the device manufacturer. Thus, while it may be possible to obtain numerous types of information about a device, the network manager cannot obtain any information relating to features, functions, etc. unless the manufacturer has provided a corresponding object in MIB  225 . Thus, while NM  122  continuously monitors and modifies the values that are assigned to objects  123 , objects are not automatically added to, removed from or modified in MIB  225  as target devices  200  are upgraded or reconfigured to provide modified features.  
         [0040]     Turning to  FIG. 3 , an OID  127  will typically begin with a series of numbers that identifies the type of device being managed and its manufacturer. For example, a typical OID  127  begins with several standard SNMP identifiers that are followed by a series of digits that identifies the manufacturer of the respective target device  200 . In the case of a digital printer, OID  127  will often include identifiers that are used to access objects that relate to paper trays, staplers and other components, xerographic and other subsystems, network settings, job settings, etc. In the example shown, all the OIDs  127  for the selected printer begin with the same series of numbers (e.g., 1.3.6.1.4.1.253.2.12) and different printer functions are addressed by the remaining identifiers. More specifically, all objects relating to printer network settings end in “1.X,” with TCP/IP settings ending in “1.1” and Novell settings end in “1.2,” while all objects relating to paper trays end in “2.X,” all objects relating to job settings end in “3.X” and all objects relating to the components of the Xerographic subsystem end in “4.X.” 
         [0041]     Turning to  FIG. 4 , to obtain information for a target device  200 , an operator will launch NM  122  by entering commands at NMS  110  as shown at block  22 . As shown in block  24 , NM  122  forwards a request for the desired object to NA  222  running on the selected printer using the appropriate OID  127 . NA  222  then retrieves the associated object as shown in block  26  and sends it to NM  110  as shown in block  28 .  
         [0042]     Present systems and methods allow NM  122  to tailor itself to a specific target device  200 . In one aspect, present systems and methods provide a first customized object  128  that causes NA  222  to provide a list of the OIDs  127  for a plurality of objects that are supported by the associated target device  200 . In one aspect, customized object  128  causes NA  222  to list the OID  127  for every object that is supported by the device. Accordingly, the user operating NM  122  can determine whether the selected target device  200  is currently capable of exporting the required objects  123 . In another aspect, present systems and methods provide a second customized object  129  that enables NM  122  to enter the sequence of identifiers that provide the OID  127  for a desired object  123 .  
         [0043]     In one aspect, present systems and methods can be used to determine all of the information that can be exported by an existing target device. In another aspect, present systems and methods can be used to enable a NM to extend the set of information that can be exported by a target device. In this aspect, the ability to extend the set of exported device information can be limited to NMs that have appropriate access tights.  
         [0044]     Generally, present systems and methods provide one or more additional OIDs  127  that will be supported by all target devices on the network  
         [0045]     In one aspect, present systems and methods provide an Available Object List OID  127 A, which NM  122  can use to obtain a list of all of the OIDs that can be exported by target device  200 . Turning to  FIG. 5 , the operator launches NM  122  as shown at block  31  and NM  122  submits a request to NA  222  running on the selected printer that includes Available Object List OID  127 A as shown in block  33 . When NA  222  receives the request, it accesses its Lmib  225  and retrieves Available Object List Object  123 A as shown in block  35 . Available Object List Object  123 A retrieves the OID  127  for each object in MIB  225  that is available for export from target device  200  and produces a list of all of the available OIDs  127  as shown in block  37 . NA  222  then sends the list to NM  110  as shown in block  39 . Accordingly, use of Available Object List OID  127 A enables NM  122  to determine whether target device  200  is currently capable of exporting the data it needs.  
         [0046]     It is noted that if targeted device  200  is upgraded or modified, the OIDs  127  for any new objects  123  will be added to the local database. Accordingly, if NM  122  re-sends Available Object List OID  127 A to NM  222 , the list that is generated and sent to NM  122  will include the new OIDs. It is also noted that while present systems and methods are described as being used to obtain a list of all of the OIDs that can be exported by a target device  200 , they could also be used to provide one or more subsets of OIDs that are selected by a user operating NM  122 .  
         [0047]     In another aspect, present systems and methods provide an Add Exportable Object OID  127 B, which can be used to enable NM  122  to add an OID  127  for an object  123  relating to information that is available to a target device and thus, could be made available for export by target device  200  by adding its OID  127  to the local database. For example, in the context of a digital printer, present systems and methods may be used to allow NA  222  to export network settings for a printer that was previously used only locally.  
         [0048]     Turning to  FIG. 6 , an operator can launch NM  122  as shown at block  41  and submit a request to NA  222  running on the selected printer that includes Add Exportable Object OID  127 B as shown in block  42 . When NA  222  receives the request, it accesses MIB  225  and retrieves Add Exportable Object  123 B as shown in block  43  and returns it to NM  122  as shown in block  44 . In one aspect, object  123 B causes a message to be displayed at NMS  110  that prompts the user to enter the OID  127  that is to be added to MIB  225  with the desired information.  
         [0049]     In one aspect, the OID  127  that has been entered by the user is recognized by NA  222  and it is stored it in the local database with the associated object  123 . If the OID  127  entered by the user is not recognized by target device  200 , NA  222  can respond by sending an error message to NM  122 .  
         [0050]     In another aspect, the request submitted by the user at block  42  includes Add Exportable Object OID  127 B and also includes a semantic definition of the information that is to be exported from target device  200  when the newly added OID  127  is sent to NA  222 . This semantic information can be encoded, for example, in a simple language (e.g. XML-based) that is understood by target device  200 .  
         [0051]     A single network  10  will often include several NMs  122 , to distribute the workload among available operators to enable operators in different locations to manage target devices  200 . Accordingly, NA  222  must typically perform some form of security validation to guarantee that NM  122  has the authority to modify its local database. In another aspect, present systems and methods can be used to enable a target device to classify each OID in the local database and fulfill only those requests that are submitted by a NM  122  that has the appropriate access rights.  
         [0052]     For example, OIDs  127  could be placed in one of two categories: Category Public, which is accessible to all clients or Category Privileged, which is only accessible to clients with extended access rights. Accordingly, only select clients (with the necessary access rights) could use the extended set of OIDs. For example, it may be desirable to place Add Exportable Object OID  127 B in Category Privileged so only certain operators have the ability to add new OIDs to MIBs  225 .  
         [0053]     In another aspect, it may be desirable to provide an Available Public Object List OID  127 C and an Available Private Object List OID  127 D, rather than a single Available Object List OID  127 A so when a user requests a list of OIDs  127  that can be exported by target device  200 , users with partial access rights will only receive a list of OIDs  127  that they can actually use, while users with full access rights will receive the entire list of OIDs  127 .  
         [0054]     It will be appreciated that various of the above-disclosed and other features and functions, or alternatives thereof, may be desirably combined into many other different systems or applications. Also that various presently unforeseen or unanticipated alternatives, modifications, variations or improvements therein may be subsequently made by those skilled in the art which are also intended to be encompassed by the following claims.