On 03/05/2013 12:58 AM, John Dennis wrote:
Hi John,
Several related questions here:
As a CIM newbie I've been able to find the specs, the schemas, the
tutorials, existing implementations, etc. Many of these resources have
tremendous detail but usually it's on entities in isolation (e.g. the
classes) or discussions at a very abstract level with no practical
examples. What I've had a heck of a time finding is "patterns of
usage". In other words given the existing model and it's available
classes how do you assemble the disparate pieces according to best
practice to arrive at a solution that is consistent with how CIM
experts expect CIM to be used? I'm wondering if there are resources
that discuss the "practical how-to of CIM modeling", if so could
someone point me that information?
Here is a good example of where I have a hole in my understanding.
I need to model a service. That service has configuration parameters.
My understanding is I need to do the following:
* Derive a class from CIM_Service (or one if it's subclasses)
* Derive a class from CIM_SettingData that encapsulates the
configuration parameters for the service.
* Derive a class from CIM_Capabilities that enumerates what can be set
in the matching SettingData class.
The service will instantiate a SettingData instance and set an
association between the service and SettingData, this represents the
current configuration parameters. Is this correct?
From my point of view, yes,
Now lets say someone wants to modify the configuration parameters for
the service. How do they do it? It seems as if one needs to
instantiate a SettingData instance with the desired parameters and
pass that to the service. Is that correct?
I will just modify instance of such
settings.
If so it would seem there are two ways to accomplish that.
1) Define a method on the service which accepts a reference to a
SettingData instance.
a. Does the provider examine the SettingData and only update
the non-null parameters?
b. Does the provider replace the existing association between
the service and it's SettingData with the new reference?
Both depends on
how you will write your provider. Anyway, I will just
write modify instance method on SettingData.
2) Define an association class that binds the SettingData to the
service (but how would the service provider know this association was
formed?)
You have to have such association. Service will know it from model. And
there are methods you can use in provider to get references and
associations.
For example, you will model service named foo and classes can look like:
John_ServiceFoo, John_FooSettingData. And will do association between
them e.g. John_ServiceFooSettingData.
Summary:
How does one set the configuration parameters for a service? Is it via
an instance of a SettingData class and if so how?
I will say yes, but I'm not
an expert ;)
You want to know how to set up parameters from provider view or from
client view? Or if model, I described it above.
Addendum:
I found numerous SettingData classes and a number of Capability
classes in various schemas but what I couldn't find was any mention of
these classes get used in practice. It also seems as if SettingData
can be used in a variety of different ways (e.g. patterns) but I
wasn't able to figure out what those patterns were. Can somebody
elucidate those patterns or point me to resources that explain them?
Maybe there is something in Simple Identity Management Profile [1].
Thanks so much for your help,
John
[1]
http://www.dmtf.org/sites/default/files/standards/documents/DSP1034_1.1.0...
RR