Title: Overview of CIM Operations
1Overview of CIM Operations
- Karl Schopmeyer
- 19 September 2002
- Oasis TC
2Operations
- Types of Operations
- Data
- Meta Data
- Queries
- Methods
- Operations control the type and amount of data
transfered - All Operations against a single namespace
- Operations are conceptionally binding
independent but today both the CIM Operations
Spec and the XML spec required to get to
primitive values in operations.
3CIM Operations (CIM-XML)
- Intrinsic Operations
- Create, Modify, Delete
- Qualifiers
- Classes
- Instances
- Properties
- Invoke Query
- Extrinsic Operations
- Execute Methods
CIM Clients
CIM Operation Requests
CIM Operation Responses
CIM Server
ltinstancegt GetInstance ( IN
ltinstanceNamegt InstanceName,
IN,OPTIONAL boolean LocalOnly true,
IN,OPTIONAL boolean IncludeQualifiers false,
IN,OPTIONAL boolean IncludeClassOrigin
false, IN,OPTIONAL,NULL string
PropertyList NULL )
Providers
4The CIM Operations
- GetClass
- GetInstance
- DeleteClass
- DeleteInstance
- CreateClass
- CreateInstance
- ModifyClass
- ModifyInstance
- EnumerateClasses
- EnumerateClassNames
- EnumerateInstances
- EnumerateInstanceNames
- ExecQuery
- Associators
- AssociatorNames
- References
- ReferenceNames
- GetProperty
- SetProperty
- GetQualifier
- SetQualifier
- InvokeMethod
5Control Parameters
- Many of the operations include the optional
controls - boolean IncludeQualifiers
- include or remove the qualifiers in the response
- boolean LocalOnly
- If true, this specifies that only CIM Elements
defined or overridden within the definition of
the Class are returned else all elements are
returned. - boolean IncludeClassOrigin
- include or remove the class origin attribute in
the response - String PropertyList
- if not null, the action will only effect the
properties in the list. - NOTE Read each operations description as some
options may have effect on others.
6Data Operations
- Get get a single entity
- Delete Delete a single entity
- Modify Modify a single entity
- Enumerate / Enumerate Names -
- Entities Instance, property
- List
- GetInstance
- DeleteInstance
- CreateInstance
- ModifyInstance
- EnumerateInstances
- EnumerateInstanceNames
- GetProperty
- SetProperty
7Metadata Operations
- Get Get one object
- Delete Delete one object
- Modify Modify one object
- Enumerate / Enumerate Names Get filtered set of
objects - Objects
- Class
- Qualifier
- List of Operations
- GetClass
- DeleteClass
- CreateClass
- ModifyClass
- EnumerateClasses
- EnumerateClassNames
- GetQualifier
- SetQualifier
- DeleteQualifier
- EnumerateQualifiers
8Query Operations
- ExecQuery
- Associators
- References
- Enumerators
9Associators Operation
- 2.3.2.14. Associators
- This operation is used to enumerate CIM Objects
(Classes or Instances) that are associated to a
particular source CIM Object. - Associators
- ltobjectWithPathgtAssociators (
- IN ltobjectNamegt ObjectName,
- IN,OPTIONAL,NULL ltclassNamegt AssocClass
NULL, - IN,OPTIONAL,NULL ltclassNamegt
ResultClass NULL, - IN,OPTIONAL,NULL string Role NULL,
- IN,OPTIONAL,NULL string ResultRole
NULL, - IN,OPTIONAL boolean IncludeQualifiers
false, - IN,OPTIONAL boolean IncludeClassOrigin
false, - IN,OPTIONAL,NULL string PropertyList
NULL - )
- The ObjectName input parameter defines the source
CIM Object whose associated Objects are to be
returned. This may be either a Class name or
Instance name (model path). - The AssocClass input parameter, if not NULL, MUST
be a valid CIM Association Class name. It acts as
a filter on the returned set of Objects by
mandating that each returned Object MUST be
associated to the source Object via an Instance
of this Class or one of its subclasses.
10References Operation
- 2.3.2.16. References
- This operation is used to enumerate the
association objects that refer to a particular
target CIM Object (Class or Instance). - References
- ltobjectWithPathgtReferences (
- IN ltobjectNamegt ObjectName,
- IN,OPTIONAL,NULL ltclassNamegt
ResultClass NULL, - IN,OPTIONAL,NULL string Role NULL,
- IN,OPTIONAL boolean IncludeQualifiers
false, - IN,OPTIONAL boolean IncludeClassOrigin
false, - IN,OPTIONAL,NULL string PropertyList
NULL - )
- The ObjectName input parameter defines the target
CIM Object whose referring Objects are to be
returned. This is either a Class name or Instance
name (model path). - The ResultClass input parameter, if not NULL,
MUST be a valid CIM Class name. It acts as a
filter on the returned set of Objects by
mandating that each returned Object MUST be an
Instance of this Class (or one of its
subclasses), or this Class (or one of its
subclasses). - The Role input parameter, if not NULL, MUST be a
valid Property name. It acts as a filter on the
returned set of Objects by mandating that each
returned Objects MUST refer to the target Object
via a Property whose name matches the value of
this parameter. - If the IncludeQualifiers input parameter is true,
this specifies that all Qualifiers for each
Object (including Qualifiers on the Object and on
any returned Properties) MUST be included as
ltQUALIFIERgt elements in the response. If false no
ltQUALIFIERgt elements are present in each returned
Object.
11Method Operations
- Intrinsic
- CIM Operation
- Extrinsic
- Method on a CIM Class
12CIM Operation Example
ltinstancegt GetInstance ( IN
ltinstanceNamegt InstanceName,
IN,OPTIONAL boolean LocalOnly true,
IN,OPTIONAL boolean IncludeQualifiers false,
IN,OPTIONAL boolean IncludeClassOrigin
false, IN,OPTIONAL,NULL string
PropertyList NULL )
CIM Operations Specification
virtual CIMInstance getInstance( const
String nameSpace, const CIMReference
instanceName, Boolean localOnly true,
Boolean includeQualifiers false, Boolean
includeClassOrigin false, const
ArrayltStringgt propertyList NULL_PROPERTY_L
IST)
Pegasus Class Method
13The Provider Interface
Client
- Many Providers, few CIMOMs
- Providers dynamically added, upgraded, deleted in
the environment
Client
CIM Clients
Repository
CIM Server
- Defined by the C CIMProvider class.
- Method for each CIM operation in the CIM
Operations over HTTP, V1.0 specification. - Methods for Provider control (start, stop,
status, etc.) - CIMProvider is a base provider interface (more
refined provider interfaces are being developed).
Client
Client
CIM Providers
14CIMProvider Methods
- getClass()
- getInstance()
- deleteClass()
- deleteInstance()
- createClass()
- createInstance()
- modifyClass()
- modifyInstance()
- enumerateClasses()
- enumerateClassNames()
- enumerateInstances()
- enumerateInstanceNames()
- execQuery()
- Associators()
- associatorNames()
- references()
- referenceNames()
- getProperty()
- setProperty()
- getQualifier()
- setQualifier()
- invokeMethod()
15Example from Spec
- 2.3.2.1. GetClass
- This operation is used to return a single CIM
Class from the target Namespace. -
- GetClass
- ltclassgtGetClass (
- IN ltclassNamegt ClassName,
- IN,OPTIONAL boolean LocalOnly true,
- IN,OPTIONAL boolean IncludeQualifiers
true, - IN,OPTIONAL boolean IncludeClassOrigin
false, - IN,OPTIONAL,NULL string PropertyList
NULL - )
- The ClassName input parameter defines the name of
the Class to be retrieved. - If the LocalOnly input parameter is true, this
specifies that only CIM Elements (properties,
methods and qualifiers) defined or overridden
within the definition of the Class (as specified
in the classname input parameter) are returned.
If false, all elements are returned. - If the IncludeQualifiers input parameter is true,
this specifies that all Qualifiers for that Class
(including Qualifiers on the Class and on any
returned Properties, Methods or Method
Parameters) MUST be included as ltQUALIFIERgt
elements in the response. If false no ltQUALIFIERgt
elements are present in the returned Class.
16Operation Params to XML
-
- Type XML Element
- ltobjectgt (VALUE.OBJECTVALUE.OBJECTWITHLOCALPATH
VALUE.OBJECTWITHPATH) - ltclassgt CLASS
- ltinstancegt INSTANCE
- ltclassNamegt CLASSNAME
- ltnamedInstancegt VALUE.NAMEDINSTANCE
- ltinstanceNamegt INSTANCENAME
- ltobjectWithPathgt VALUE.OBJECTWITHPATH
- ltobjectNamegt (CLASSNAMEINSTANCENAME)
17DTD Example
- Class
- Must have name
- May contain properties, qualifiers and methods
- Distinguish Association classes
- ---------------------------------------
- ltCLASS NAMECIM_LogicalDisk
- SUPERCLASSCIM_StorageExtentgt
- ltPROPERTY NAMEAccess ...gt...lt/PROPERTYgt
- ...
- lt/CLASSgt
18- 3.2.5.1. CLASS
- The CLASS element defines a single CIM Class.
- lt!ELEMENT CLASS (QUALIFIER,(PROPERTYPROPERTY.ARR
AY - PROPERTY.REFERENCE),METHOD)gt
- lt!ATTLIST CLASS
- CIMName
- SuperClassgt
- The NAME attribute defines the name of the Class.
- The SUPERCLASS attribute, if present, defines the
name of the superclass of this class. If absent,
it should be inferred that the class in question
has no superclass.