Abstract:
A mechanism is provided for registering a Common Information Model (CIM) provider to at least one Common Information Model Object Manager (CIMOM). The CIMOM pre-stores at least one class definition. The CIMOM sends information to the Common Information Model (CIM) provider in order for the CIM provider to determine the at least one CIMOM existing in a network. The CIMOM sends thee at least one class definition stored in the CIMOM in order for the CIM provider to determine if the CIMOM comprises a class definition suitable for the CIM provider to operate. Responsive to the CIM provider determining that the CIMOM comprises a suitable class definition, the CMOM registers the CIM provider by recording an identifier of the CIM provider under the name of the class definition suitable to the CIM provider in the at least one CIMOM .

Description:
BACKGROUND 
       [0001]    The present invention generally relates to the computer field. More particularly, the present invention relates to a method of registering a CIM provider to a CIMOM and corresponding apparatuses. 
         [0002]    Common Information Model (CIM) is an industry standard model defined by Distributed Management Task Force (DMTF), which enables administrators or software management programs to control applications and devices on different platforms in the same way. Due to the generic architecture of CIM, it has been widely used in management software which manages various kinds of storage and network devices. 
         [0003]      FIG. 1  shows a schematic view of the architecture of management software based on CIM standards in the prior art. 
         [0004]    As shown in  FIG. 1 , management application  110  (also called CIM client) is connected to CIMOMs (CIM Object Manager)  121 ,  131  and  141 , and CIMOMs  121 ,  131  and  141  are connected to devices  120 ,  130  and  140 , respectively, via CIM providers  122 ,  132  and  142 . 
         [0005]    Additionally, CIMOMs  121 ,  131  and  141  can have CIM repositories  123 ,  133  and  143  respectively connected thereto. 
         [0006]    Management application  110  sends a request for management information to CIMOMs  121 ,  131  and  141 . Preferably, management application  110  communicates with CIMOMs  121 ,  131  and  141  using the Distributed Component Object Model (DCOM). Alternatively, management application  110  communicates with CIMOMs  121 ,  131  and  141  using the HyperMedia Management Protocol (HMMP). Of course, it can be understood by those skilled in the art that any protocol capable of passing object information between management application  110  and CIMOMs  121 ,  131  and  141  can be used. 
         [0007]    Each of CIMOMs  121 ,  131  and  141  acts as a server (with respect to management application  110 ) and can switches role so as to act on behalf of request of management application  110 . 
         [0008]    After management application  110  sends a request to CIMOMs  121 ,  131  and  141 , CIMOMs  121 ,  131  and  141  first access their respective CIM repositories  123 ,  133  and  143  so as to determine whether they can satisfy the request directly or need to switch role from a server to a client and forward the request to CIM providers  122 ,  132  and  142 , respectively. 
         [0009]    For example, CIM repositories  123 ,  133  and  143  have static information stored therein, such as object property values. If what is requested by management application  110  to CIMOMs  121 ,  131  and  141  is static information, CIMOMs  121 ,  131  and  141  can satisfy the request directly without needing to forward the request to CIM providers  122 ,  132  and  142 , respectively. Otherwise, CIMOMs  121 ,  131  and  141  transfer the request of management application  110  to CIM providers  122 ,  132  and  142 , respectively. 
         [0010]    Upon receipt of the request from CIMOMs  121 ,  131  and  141 , CIM providers  122 ,  132  and  142  perform corresponding operation and provide corresponding result to CIMOMs  121 ,  131  and  141 . By way of example, CIM providers  122 ,  132  and  142  are software drivers supplied by manufacturers of devices  120 ,  130  and  140 . 
         [0011]    Note that CIM providers  122 ,  132  and  142  hosted on the same machine as CIMOMs  121 ,  131  and  141  need not use DCOM or HMMP, but may instead use a private interprocess communication mechanism appropriate to the operating system. 
         [0012]    According to the prior art, a user should manually register a CIM provider to a corresponding CIMOM before using the CIM provider. Where registering a CIM provider to a CIMOM includes providing the CIMOM with Managed Object Format (MOF) file that discloses CIM classes implemented by the CIM provider. 
         [0013]    For multiple devices, even though they are of the same type, their CIM providers need to respectively register to a CIMOM. And in the CIMOM there will be multiple CIM classes used for respective CIM providers of the multiple same devices. That is to say, one CIM class is allowed to have only one CIM provider. 
         [0014]    According to the prior art, it is impossible to register a CIM provider to a CIMOM without restarting the CIMOM to make the registration valid. Therefore, the management ability of the CIMOM cannot be extended. 
         [0015]    Therefore, there is a need for a solution to overcome the defects outlined above. 
       SUMMARY 
       [0016]    In one illustrative embodiment, a mechanism is provided for registering a Common Information Model (CIM) provider to at least one Common Information Model Object Manager (CIMOM). The illustrative embodiment pre-stores in the at least one Common Information Model Object Manager (CIMOM) at least one class definition. The illustrative embodiment sends, by the at least one CIMOM, information to the Common Information Model (CIM) provider in order for the CIM provider to determine the at least one CIMOM existing in a network. The illustrative embodiment sends, by the at least one CIMOM, the at least one class definition stored in the CIMOM in order for the CIM provider to determine if the CIMOM comprises a class definition suitable for the CIM provider to operate. The illustrative embodiment registers, by the at least one CIMOM, the CIM provider by recording an identifier of the CIM provider under the name of the class definition suitable to the CIM provider in the at least one CIMOM in response to the CIM provider determining that the CIMOM comprises a suitable class definition. 
         [0017]    In another aspect of the invention, a computer program product comprising a computer useable or readable medium having a computer readable program is provided. The computer readable program, when executed on a computing device, causes the computing device to perform various ones, and combinations of, the operations outlined above with regard to the method illustrative embodiment. 
         [0018]    These and other features and advantages of the present invention will be described in, or will become apparent to those of ordinary skill in the art in view of, the following detailed description of the example embodiments of the present invention. 
     
    
     
       BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS 
         [0019]    Other objects and effects of the present invention will become more apparent and easy to understand as the present invention is better understood and from the following description, taken in conjunction with the accompanying drawings wherein: 
           [0020]      FIG. 1  shows a schematic view of the architecture of management software based on CIM standards in the prior art; 
           [0021]      FIG. 2  shows a schematic view of the architecture of management software based on CIM standard according to an embodiment of the present invention; 
           [0022]      FIG. 3  shows an automatic registration procedure of a CIM provider according to an embodiment of the present invention; 
           [0023]      FIG. 4  shows a block diagram of a CIM provider  400  according to an embodiment of the present invention; 
           [0024]      FIG. 5  shows steps performed by a CIMOM during/after the automatic registration procedure of a CIM provider according to an embodiment of the present invention; and 
           [0025]      FIG. 6  shows a block diagram of a CIMOM  600  according to an embodiment of the present invention. 
       
    
    
       [0026]    Like reference numerals designate the same, similar, or corresponding features or functions throughout the drawings. 
       DETAILED DESCRIPTION 
       [0027]      FIG. 2  shows a schematic view of the architecture of management software based on CIM standards according to an embodiment of the present invention. 
         [0028]    As shown in  FIG. 2 , management application  201  (also called CIM client) is connected to CIMOM  202 , and CIMOM  202  is connected to devices  220 ,  230  and  240  via CIM providers  222 ,  232  and  242 , respectively. Additionally, CIMOM  202  has a CIM repository  223  connected thereto. 
         [0029]    That is to say, compared with  FIG. 1 , in  FIG. 2 , there is only one CIMOM that manages all CIM providers. 
         [0030]    In the present invention, the CIM providers and the CIMOM can be installed on separate machines. 
         [0031]    Moreover, in the present application, one CIM provider can register to multiple CIMOMs in the network. In this case, if one of CIMOMs crashes, the CIM provider that registers to multiple CIMOMs still can be accessed by a user via another CIMOM. 
         [0032]    In the present invention, CIM providers  222 ,  232  and  242  are self-managed programs and can discover the existing CIMOMs in the network when plugged into the network. 
         [0033]    When they discover a CIMOM, they will check whether they can register to the discovered CIMOM, i.e., check whether the discovered CIMOM has class definitions suitable to them. 
         [0034]    When the CIM providers are compliant to the CIMOM, i.e., the CIMOM has class definitions suitable to the CIM providers, the CIM providers will register to the CIMOM. 
         [0035]      FIG. 3  shows an automatic registration procedure of a CIM provider according to an embodiment of the present invention, which CIM provider is CIM provider  222  for example. 
         [0036]    First, the CIM provider is plugged into the network in step S 301 . 
         [0037]    Then, in step S 302 , the CIM provider automatically discovers the existing CIMOM in the network. 
         [0038]    More specifically, this step can comprise: 
         [0039]    sending by the CIM provider an SLP broadcast to the network; and 
         [0040]    receiving by the CIM provider a response to the SLP broadcast from the CIMOM. 
         [0041]    Next, in step S 303 , the CIM provider determines whether it can register to the discovered CIMOM. For example, if the discovered CIMOM has a class definition suitable to the CIM provider, then the CIM provider determines that it can register to the CIMOM. If the discovered CIMOM does not have a class definition suitable to the CIM provider, then the CIM provider determines that it cannot register to the CIMOM. 
         [0042]    Additionally, determining whether the CIM provider can register to the CIMOM can further comprise: 
         [0043]    determining whether the CIM provider conforms to the CIMOM&#39;s requirements in the security aspect. 
         [0044]    The class definition can include, without limitation, a property, a method, etc. 
         [0045]    The security aspect includes, without limitation, whether the CIM provider is authorized to register to the CIMOM, whether the CIM provider carries virus code, etc. 
         [0046]    If the CIM provider determines that it cannot register to the CIMOM, then the flow ends. 
         [0047]    If the CIM provider determines that it can register to the CIMOM, then the flow goes to step S 304 . 
         [0048]    In step S 304 , the CIM provider registers to the CIMOM. 
         [0049]    The CIM provider registers to the CIMOM by recording itself under the name of the class suitable to it. 
         [0050]    Then, the flow ends. 
         [0051]    In the CIMOM, and more specifically, in CIM repository  223 , there is a form that records CIM providers registered under each class, as shown in  FIG. 2 . 
         [0052]    It can be understood by those killed in the art if the CIM provider discovers multiple CIMOMs in step S 302 , then steps S 303 -S 304  are performed for each of the discovered CIMOMs. Moreover, if the CIM provider does not discover one CIMOM in step S 302 , then steps S 303 -S 304  will not be performed. 
         [0053]    Specifically, the registration to the CIMOM mentioned here means recording the CIM provider under the name of the class suitable to it in the CIMOM. For example, the identifier Provider Unique ID capable of uniquely identifying one CIM provider can be recorded to a class-CIM provider table. 
         [0054]    More specifically, assuming there are one CIMOM and two PC devices in the network and the CIM provider corresponding to each PC device has registered to the CIMOM. At this point, there are two CIM providers under the class CIM_ComputerSystem in the CIMOM. 
         [0055]    After the third PC device to be added is connected to the network where the PC devices are located, the CIM provider of the newly added PC device will find the CIMOM in the network, check the compliance, and register itself to the CIMOM if the check is ok. Thus, there are three CIM providers under the class CIM_ComputerSystem in the CIMOM. 
         [0056]    After the CIM provider has registered to the CIMOM, the management application can operate the device. 
         [0057]    More specifically, assuming there are one CIMOM and three PC devices in the network and the CIM provider corresponding to each PC device has registered to the CIMOM. At this point, there are three CIM providers under the class CIM_ComputerSystem in the CIMOM. 
         [0058]    The management application sends a request to the CIMOM for invoking the restart ( ) method on a certain PC device. At this point, the management application needs to specify the PC device. 
         [0059]    Upon receipt of such a request, the CIMOM looks up the CIM provider corresponding to the PC device and accomplishes the restart operation on the PC device by invoking this CIM provider. 
         [0060]    If the request sent to the CIMOM by the management application fails to specify a device but specifies a certain class, then the CIMOM will invoke all CIM providers under the name of this class. 
         [0061]    Of course, the CIM provider can be deregistered from the CIMOM after registering to the CIMOM. 
         [0062]    More specifically, assuming there are one CIMOM and three PC devices in the network and the CIM provider corresponding to each PC device has registered to the CIMOM. At this point, there are three CIM providers under the class CIM_ComputerSystem in the CIMOM. 
         [0063]    The management application sends a request to the CIMOM for deregistering the CIM provider of a certain PC device. At this point, the management application needs to specify the PC device. 
         [0064]    Upon receipt of such a request, the CIMOM deregisters the corresponding CIM provider according to the specified information. This procedure is implemented by simply cancelling the CIM provider from the name of the class suitable to it in the CIMOM, whereas this class still exists in the CIMOM because CIM providers of other two PC devices registers to the class. 
         [0065]    The management application can no more operate, via the CIMOM, the PC device whose CIM provider was just deregistered. 
         [0066]      FIG. 4  shows a block diagram of a CIM provider  400  according to an embodiment of the present invention. CIM provider  400  is, for example, a CIM provider in  FIG. 2 . 
         [0067]    CIM provider  400  comprises: a discovering module  410  for, when the CIM provider  400  is plugged into the network, discovering whether there is a CIMOM in the network; a determining module  420  for determining whether the CIM provider can register to the CIMOM, by determining whether the CIMOM discovered by the discovering module has a class definition suitable to the CIM provider pre-stored therein; and a registering module  430  for registering, by recording the CIM provider under the name of the class suitable to it in the CIMOM, the CIM provider to the CIMOM to which the CIM provider can register as determined by the determining module. 
         [0068]    In an embodiment of the present invention, the determining module is further for determining whether the CIM provider can register to the CIMOM, by determining whether the CIM provider conforms to the CIMOM&#39;s requirements in the security aspect. 
         [0069]    In an embodiment of the present invention, the discovering module discovers whether the CIMOM exists in the network by sending an SLP broadcast to the network and judging whether a response to the SLP broadcast is received from the CIMOM. 
         [0070]      FIG. 5  shows steps performed by the CIMOM during/after the automatic registration procedure of a CIM provider according to an embodiment of the present invention. 
         [0071]    First, a class definition suitable to the CIM provider is pre-stored in the CIMOM in step S 501 . 
         [0072]    Then, in step S 502 , the CIMOM sends to the CIM provider information that can enable the CIM provider to determine at least one CIMOM existing in the network. 
         [0073]    In an embodiment of the present invention, information sent by the CIMOM to the CIM provider, which can enable the CIM provider to determine the CIMOM existing in the network, comprises a response, which is sent by the CIMOM to the CIM provider, to a received SLP broadcast. 
         [0074]    Then, in step S 503 , the CIMOM assists the CIM provider to determine that the CIM provider can register to the CIMOM, by assisting the CIM provider to determine the CIMOM includes the class definition suitable to it. 
         [0075]    For example, the CIMOM can provide information on the definition of classes pre-stored therein to the CIM provider according to the CIM provider&#39;s request. 
         [0076]    In an embodiment of the present invention, the CIMOM assists the CIM provider to determine that the CIM provider can register to the CIMOM further comprises that the CIMOM assists the CIM provider to determine that the CIM provider conforms to the CIMOM&#39;s requirements in the security aspect. 
         [0077]    Then, in step S 504 , the CIMOM assists the CIM provider to register to the CIMOM, wherein the CIM provider registers to the CIMOM by recording itself under the name of the class suitable to it in the CIMOM. 
         [0078]    For example, the CIMOM can provide the CIM provider with a list of CIM providers that have registered to it, so as to prevent the CIM provider to register repeatedly. 
         [0079]    Then, in step S 505 , after the CIMOM receives from the management application a request for invoking a CIM provider under the name of a class, it invokes the CIM provider under the name of the class. 
         [0080]    Then, in step S 506 , after the CIMOM receives from the management application a request for deregistering the CIM provider, it deregisters the CIM provider by cancelling the CIM provider from the name of the class suitable to it. 
         [0081]    Of course, it can be understood by those skilled in the art that step S 505  may not take place. That is to say, the flow goes to step S 506  from step S 504 . 
         [0082]      FIG. 6  shows a block diagram of a CIMOM  600  according to an embodiment of the present invention. CIMOM  600  is, for example, CIMOM  202  in  FIG. 2 . 
         [0083]    As shown in  FIG. 6 , the CIMOM comprises: a storage module  610  for pre-storing in the CIMOM a class definition suitable to a CIM provider; a sending module  620  for sending to the CIM provider information that can enable the CIM provider to determine the CIMOM existing in the network; a first assisting module  630  for assisting the CIM provider to determine whether the CIM provider can register to the CIMOM, by assisting the CIM provider to determine whether the CIMOM has the class definition suitable to it; and a second assisting module  640  for assisting the CIM provider, which can register to the CIMOM as determined, to register to the CIMOM, wherein the CIM provider registers to the CIMOM by recording itself under the name of the class suitable to it in the CIMOM. 
         [0084]    In an embodiment of the present invention, the first assisting module  630  is further for assisting the CIM provider to determine whether the CIM provider conforms to the CIMOM&#39;s requirements in the security aspect. 
         [0085]    In an embodiment of the present invention, information that can enable the CIM provider to determine the CIMOM existing in the network includes a response of the CIMOM to a received SLP broadcast. 
         [0086]    In an embodiment of the present invention, the CIMOM further comprises: an invoking module  650  for, upon receipt from the management application of a request for invoking a CIM provider under the name of a class, invoking the CIM provider under the name of the class; and a deregistering module  660  for deregistering the CIM provider by cancelling the CIM provider from the name of the class suitable to it in the CIMOM. 
         [0087]    Note, in order to facilitate easier understanding of the present invention, the foregoing description omits more detailed technical details that are well known to those skilled in the art and might be indispensable to the implementation of the present invention. 
         [0088]    The specification of the present invention has been presented for purposes of illustration and description, and is not intended to be exhaustive or to limit the invention in the form disclosed. Many modifications and variations will be apparent to those of ordinary skill in the art. It can be understood by those skilled in the art that the method and apparatus in the embodiments of the present invention can be implemented in software, hardware, firmware or a combination thereof. For example, the present invention can be implemented as a computer program product, which contains program code stored on a computer readable medium and carrying out the method described in the embodiments of the present invention when executed by a computer. 
         [0089]    Therefore, the embodiments were chosen and described in order to better explain the principles of the invention, the practical application, and to enable others of ordinary skill in the art to understand that all modifications and alterations made without departing from the spirit of the present invention fall into the protection scope of the present invention as defined in the appended claims.