Abstract:
Audio visual or other equipment modules in a common enclosure are controlled through an SNMP control agent by interrogating module locations for the presence of an equipment module; determining an equipment type; determining a list of available control objects associated with that equipment type; associating values identified by equipment type and by control parameter with the control objects of equipment modules to be controlled; and communicating said values across a network.

Description:
FIELD OF INVENTION  
       [0001]     This invention concerns control and monitoring of systems, and in particular systems using data networks.  
       RELATED APPLICATIONS  
       [0002]     This application claims the benefit of the priority date of priority GB Application No. 0507678.1, filed on Apr. 15, 2005, the contents of which are incorporated herein by reference.  
       BACKGROUND OF THE INVENTION  
       [0003]     The control of systems via data networks is well known; the Simple Network Management Protocol (SNMP) is a popular example of a standardized system in which a control software program, a “manager” interacts over a network with one or more other software programs, or “agents”, which monitor and/or control apparatus or system elements. Standard software for implementing SNMP agents and managers (or key parts of them) is commercially available so that SNMP-based control systems can be implemented with a minimum of additional programming work.  
         [0004]     In SNMP the values of simple data “objects” are reported from an agent to a manager, or values are set by an agent in response to instructions from a manager. Typical data objects may be parameters characterizing a process, warning messages or the states of switches, controls etc. In the protocol for communication between manger and agent, an object is identified by an object identifier “OID” which comprises a string of numbers separated by dots. These numbers can be interpreted as nodes in a tree, and a sub-tree starting at a particular node can be allocated to a particular company or organization which then determines the meaning of those nodes.  
         [0005]      FIG. 1  shows an example of the definition of a node in this way. If there are several instances of a object corresponding to a particular node it is usual to put them on the same level of the hierarchy. In  FIG. 1  the OIDs:  
         [0006]     1.14.9  
         [0007]     1.14.11  
         [0008]     1.14.12  
         [0000]     could represent the same class of object.  
         [0009]     In the SNMP protocol particular nodes may be addressed by giving the full OID or, alternatively, a “next” node or nodes may be addressed. In  FIG. 1  the next node after 1.7 is 1.14; and, the next node after 1.14 is 1.14.9.  
         [0010]     The interpretation of OIDs is defined in management information databases or “MIBs”. The information in a MIB enables the OID for a particular control data object to be determined and defines the type and format of the data object. SNMP managers and agents generally require access to MIBs characterizing all the objects they deal with. Usually a specific MIB is written for an agent at a particular address on a network.  
         [0011]     Where a range of products is to be designed with SNMP control in mind it is generally necessary for a new MIB to be written and made available every time a new product is added to the range. This is particularly so if commercially available general-purpose SNMP software is to be used. If the products in the range have similar functions and the differences between them are small, it may be possible to write a generic MIB applicable to all of them. However, where the product range may encompass arbitrary functionality, this is impossible.  
         [0012]     In some industries, for example audiovisual content creation, it is common for functional elements to be made available as modules or sub-assemblies, one or more of which can be housed in a general-purpose enclosure, which provides common support functions (such as power and control). If such a general-purpose enclosure provides an SNMP control agent it will typically be necessary for a customized MIB to be available to it and the content of that MIB must depend on the particular functional elements installed in the particular general-purpose enclosure. Thus if the modules of the enclosure are changed, it is typically necessary for a new MIB to be used by that enclosure, or the agent for that enclosure. The flexibility of the modular system is therefore reduced.  
       SUMMARY OF THE INVENTION  
       [0013]     The present invention proposes a novel type of SNMP agent which can monitor and control a number of functional elements without requiring detailed a priori knowledge of those functional elements.  
         [0014]     The invention consists in one aspect of a method for monitoring or controlling a plurality of equipment modules employing a common network agent, said network agent controlling one or more addressable module locations, the method comprising: interrogating the addressable module locations for the presence of an equipment module; for each equipment module identified, determining an equipment type; for each equipment type identified, determining a list of available control objects associated with that equipment type; associating values with the control objects of equipment modules to be controlled; and communicating said values across a network, wherein the values are identified by equipment type and by control parameter.  
         [0015]     Suitably, interrogating module locations is performed periodically. Preferably the list of available control objects has a specified order, and values are identified by position in the list of control objects.  
         [0016]     Preferably a database of said values is compiled, the database structured according to equipment type and control parameter. Advantageously, an SNMP command can then be received and parsed to determine an equipment type and a control parameter. The agent can then return or update the value in said database corresponding to that equipment type and control parameter, according to the command.  
         [0017]     In a further aspect the invention consists of a method for automatically creating or updating an MIB for an agent controlling a plurality of equipment modules, the method comprising determining an equipment type for each module to be controlled by said agent; determining the available control objects associated with each equipment type identified; and creating a data array for storing values for each control parameter for each equipment module to be controlled by said agent, each location of the array addressable by equipment type and by control parameter number.  
         [0018]     The invention extends to methods and/or apparatus substantially as herein described with reference to the accompanying drawings.  
         [0019]     The invention also provides a computer program and a computer program product for carrying out any of the methods described herein and/or for embodying any of the apparatus features described herein, and a computer readable medium having stored thereon a program for carrying out any of the methods described herein and/or for embodying any of the apparatus features described herein.  
         [0020]     An embodiment of the invention will now be described with reference to the drawings in which; 
     
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0021]      FIG. 1  shows how OIDs can be interpreted as nodes of a tree.  
         [0022]      FIG. 2  shows a modular product controlled according to an embodiment of the invention.  
         [0023]      FIG. 3  shows a tabular interpretation of an OID.  
         [0024]      FIG. 4  shows a tree interpretation of an OID. 
     
    
     DETAILED DESCRIPTION OF THE INVENTION  
       [0025]     Referring to  FIG. 2 , an SNMP agent runs on a processor ( 21 ) in a general-purpose module-rack ( 22 ). The rack has a number of slots into which equipment modules ( 23   a ) ( 23   b ) ( 23   c ) ( 23   d ) are plugged. The individual modules have input and output connections ( 24 ) appropriate to their functions. A power unit ( 25 ) is connected ( 26 ) to a source of mains power and converts this power into a form suitable for the modules ( 23 ).  
         [0026]     The processor ( 21 ) has a connection ( 27 ) to a data network, and will typically have its own IP address so that it can be distinguished over the network. The processor ( 21 ) also has connections to the modules ( 23 ) and communicates values of control objects to and from one or more of them. The current values of these objects are stored in the processor ( 21 ) and are made available, via the network connection ( 27 ) to a remote processor ( 28 ) which runs an SNMP manager. Using the SNMP protocol, control objects for particular modules are reported to the processor ( 28 ) and control objects for particular modules are set to specific values.  
         [0027]     The SNMP manager in the remote processor ( 28 ) makes use of a MIB to learn the OIDs and data types and formats of the various items of control data. Typically this MIB would be written by the designer of the installation which includes the module rack ( 22 ). This work is simplified if “generic” MIBs for the modules ( 23 ) are available from their manufacturer and they can easily be combined to make a specific MIB for the rack ( 22 ) as it is configured in its particular installation.  
         [0028]     The SNMP agent in the processor ( 21 ) must associate particular SNMP OIDs with particular control data items relating to the modules ( 23 ). In the case where a new module has been inserted, or modules have been changed, the agent may not have a MIB to fully interpret these OIDs. In the system of the invention the agent does not require knowledge of the MIB used in the remote processor ( 28 ). This is achieved by locating each control object in a storage location which is associated with a position in a two-dimensional table. Particular pairs of numbers in the string of numbers comprising an OID are treated as addresses to the rows and columns of the table.  
         [0029]     The table is structured with an extensible space for module control data objects. In a typical module rack with space for a maximum of 16 modules, the table is structured with space for at least 16 instances of an unlimited number (no more than 16 in any practical example) of different types of module; and, for each module, an extensible space for module data objects.  
         [0030]     The agent periodically interrogates each slot (or interrogates each slot at the time its operation is initiated) to obtain: 
        the identity of the equipment module (if any) in that slot,     the identities, data types and formats of the control data objects for that module; and,     the current values of the control data objects.        
 
         [0034]     The module identities and the data object identities are represented by integers whose interpretation is defined in module-specific, generic MIBs published for each module. These module-specific MIBs can be used by any SNMP manager needing to control the relevant module, regardless of the configuration of the module rack in which the module is installed.  
         [0035]      FIG. 3  shows how the agent running on the processor ( 21 ) stores the results of the interrogation of the modules in the slots of the rack ( 22 ) in the table. The table ( 31 ) has one column for each module ( 23 ). Typically the maximum number of modules which can fit in an enclosure is limited and so the maximum possible number of columns is limited to that number.  
         [0036]     Each column has a header row ( 32 ) and the cells of this row contain equipment-type identifiers which identify the individual equipment modules ( 23   a ) to ( 23   d ). The identifiers are the numbers which are defined in a published MIB for the respective modules and in this example correspond to the number in the OID string defining the particular module type. The order of the columns of the table ( 31 ) is arranged so that the module identifiers are arranged in ascending order. It can be seen that modules having type  19 ,  230  and  250  are present, and that there are two type-230 modules present.  
         [0037]     Each column has a second header row ( 33 ) and the cells of this row contain “slot identifiers” which indicate which position in the enclosure ( 22 ) is occupied by a particular module. It can be seen that the two type-230 modules are in slots  1  and  4 .  
         [0038]     Each column of the table ( 31 ) contains a cell for each of the data object identifiers for the module identified by the header rows. The data object identifiers are sorted into numerical order. Each type of equipment module has a known number of commands. The number of cells in each column therefore depends on the number of commands reported in the previously described interrogation process and defined in the published MIB for that relevant module.  
         [0039]     It can be seen that the type-19 module has only three commands, and that type-230 modules have five commands. The agent need not have prior knowledge of every possible module type, and the associated number of commands. These are provided by the equipment modules themselves, when interrogated by the agent.  
         [0040]     Each of the cells containing a data object identifier is associated with a storage location for the relevant data object that will be reported to, or set by the SNMP manager running on the processor ( 28 ).  
         [0041]     The table ( 31 ) can be interpreted as a tree with nodes numbered according to the header rows and contents of the table as shown in  FIG. 4 .  
         [0042]     It can be seen that the hierarchy of the table in  FIG. 3  is different from that of the tree in  FIG. 4 , but they are logically related so that one may be derived from the other. The tree of  FIG. 4  can be divided into sections ( 401 ) ( 402 ) ( 403 ), each section corresponding to a particular module type. MIBs corresponding to these sections can be published as each relevant module becomes available and used to construct MIBs for SNMP managers controlling racks containing these modules. Where more than one instance of a module is present in a particular rack, its location within the rack (slot number) will be known from system design data and it is only necessary to append the slot number to the OID for a particular data object in order to control or monitor that data object.  
         [0043]     When an OID (forming part of an SNMP message) is received by the agent running in the processor ( 21 ) the agent interprets the OID according to the tree as shown in  FIG. 4  and is able to locate the corresponding cell in the table of  FIG. 3  and so access the corresponding control object.  
         [0044]     The agent examines in turn each constituent number element in the OIDs of SNMP commands received from the network to select data objects relevant to it. It will not have prior knowledge of all of the number elements but the OID is structured so that one of the elements represents module identity, and another represents command parameter identity. The positions of these numbers are the same in all module OIDs and they can be used be the agent to address the table and so identify a particular stored control parameter for reporting or modification (depending on the SNMP message containing the OID).  
         [0045]     It is noted that in the present example, where two type-230 modules are present, these occupy adjacent columns in the data table even though they are not physically located in adjacent slots. The two modules can therefore be addressed distinctly using a “next” node syntax as described above.  
         [0046]     It is intended that the foregoing detailed description be regarded as illustrative rather than limiting and that it be understood that it is the following claims, including all equivalents, that are intended to define the scope of the invention. The embodiment of any figure or described example or any feature thereof may be combined with the embodiment of any other figure or described example. Other features known in the art and not inconsistent with the structure and function of the present invention may be added to an embodiment or example described herein.