CIMCIM--XMLXML
Jim DavisSun Microsystems, Inc.
June 11, 2002
DMTF 2002 Developers' Conference June 10-13, 2002 Page 2
AgendaAgenda• Overview• CIM-XML
– xmlCIM– CIM Operations– HTTP Encapsulation
• What’s New• What’s Next• Q & A
DMTF 2002 Developers' Conference June 10-13, 2002 Page 3
WBEMWBEM
• Web-Based Enterprise Management• A set of management and Internet standard
technologies developed to unify the management of enterprise computing environments
• The goal is to provide customers with the ability to manage all systems regardless of their instrumentation type, using a common standard
DMTF 2002 Developers' Conference June 10-13, 2002 Page 4
WBEM EnvironmentWBEM EnvironmentData Description
xmlCIMTransport Encoding
HTTP HTTP Access
CIM
DMTF 2002 Developers' Conference June 10-13, 2002 Page 5
OverviewOverview• CIM Client
– interacts with a CIM Server by issuing CIM Operation Message Requests and receives and processes CIM Operation Message Responses
• CIM Server – a server that receives and processes
CIM Operation Message Requests and issues CIM Operation Message Responses
• CIM Object Manager (CIMOM)– The central component of the CIM
Server responsible for the communication between the CIM Server components
• Provider– instruments one or more aspects of
the CIM SchemaManaged Element
Provider(s)
CIM Object Manager(CIMOM)
CIM Server
CIM-XMLProtocolAdapter
CIM-XMLIndication
Handler
Provider(s)
Client
CIM-XML
DMTF 2002 Developers' Conference June 10-13, 2002 Page 6
CIMCIM--XMLXML• CIM-XML is the standard protocol for
exchanging CIM Information.• CIM-XML is based on the following:
– xmlCIM• Representation of CIM in XML Specification• CIM DTD
– CIM Operations• CIM Operations over HTTP Specification
– HTTP Encapsulation (CIM-XML)• CIM Operations over HTTP Specification
DMTF 2002 Developers' Conference June 10-13, 2002 Page 7
xmlCIMxmlCIM• Standard way to represent CIM
information using XML• CIM DTD (Document Type Definition)• Meta-Schema mapping
– Simple & Straight forward– Requires only one DTD
• CIM Messages• Protocol independent!
DMTF 2002 Developers' Conference June 10-13, 2002 Page 8
xmlCIMxmlCIM DTDDTD• Root Element•• ValuesValues•• Qualifiers Qualifiers •• Properties Properties •• Methods Methods •• Classes and InstancesClasses and Instances•• MessagesMessages
DMTF 2002 Developers' Conference June 10-13, 2002 Page 9
DTD: Root ElementDTD: Root Element• Every XML Document is either a set of object
declarations or a CIM Message
<!ELEMENT CIM (MESSAGE|DECLARATION)><!ATTLIST CIM
CIMVERSION CDATA #REQUIREDDTDVERSION CDATA #REQUIRED>
<CIM CIMVERSION=“2.3” DTDVERSION=“2.1”><DECLARATION>...</DECLARATION></CIM>
DMTF 2002 Developers' Conference June 10-13, 2002 Page 10
DTD: ValuesDTD: Values• Qualifier and Property values can be:
– simple: <VALUE> element– array: <VALUE.ARRAY> element– reference: <VALUE.REFERENCE> element
<VALUE>CIM-XML is the standard protocol for WBEM</VALUE>
DMTF 2002 Developers' Conference June 10-13, 2002 Page 11
DTD: QualifiersDTD: Qualifiers
• Describes the name, type, flavor and value
<QUALIFIER NAME=“KEY” TYPE=“boolean”><VALUE>true</VALUE></QUALIFIER>
<!ELEMENT QUALIFIER (VALUE|VALUE.ARRAY)><!ATTLIST QUALIFIER
NAME CDATA #REQUIREDTYPE (boolean|uint32…) #REQUIREDLOCAL (true|false) ‘true’TOSUBCLASS (true|false) ‘true’>
DMTF 2002 Developers' Conference June 10-13, 2002 Page 12
DTD: Properties DTD: Properties • Properties are characterized by their value type
– simple: <PROPERTY>– array: <PROPERTY.ARRAY>– reference: <PROPERTY.REFERENCE>
<PROPERTY NAME=“FreeSpace” TYPE=“uint64”><QUALIFIER NAME=“read” ...>...</QUALIFIER><VALUE>6873264</VALUE>
</PROPERTY>
DMTF 2002 Developers' Conference June 10-13, 2002 Page 13
DTD: MethodsDTD: Methods
• Describe name and return type• May include Qualifiers• May include Parameter declarations
<METHOD NAME=“SetPowerState” TYPE=“uint32”><METHODPARAMETER NAME=“PowerState”><QUALIFIER NAME=“IN” ...>...</QUALIFIER><PARAMETER TYPE=“uint16”/></METHODPARAMETER>...</METHOD>
DMTF 2002 Developers' Conference June 10-13, 2002 Page 14
DTD: ClassDTD: Class• Must have name• May contain properties, qualifiers and methods• Distinguish Association classes
<CLASS NAME=“CIM_LogicalDisk”SUPERCLASS=“CIM_StorageExtent”>
<PROPERTY NAME=“Access” ...>...</PROPERTY>...</CLASS>
DMTF 2002 Developers' Conference June 10-13, 2002 Page 15
DTD: InstanceDTD: Instance• Must have class name• May contain properties and qualifiers• Distinguish Association instances
<INSTANCE CLASSNAME=“My_LogicalDisk”><PROPERTY NAME=“Access” ...><VALUE>0</VALUE>
</PROPERTY>...</INSTANCE>
DMTF 2002 Developers' Conference June 10-13, 2002 Page 16
DTD: MessagesDTD: Messages• CIM Operation Message or CIM Export Message• Describes requests and responses
– SIMPLEREQ, MULTIREQ, SIMPLERSP, MULTIRSPSIMPLEEXPREQ, MULTIEXPREQ, SIMPLEEXPRSP, MULTIEXPRSP
• Can be single or multiple
<MESSAGE ID=“MyMessage” PROTOCOLVERSION=“1.0”><SIMPLEREQ><METHODCALL Name=“SetPowerState”>...</METHODCALL>
</SIMPLEREQ></MESSAGE>
DMTF 2002 Developers' Conference June 10-13, 2002 Page 17
xmlCIM xmlCIM ExampleExample<CLASS NAME="CIM_LogicalPort" SUPERCLASS="CIM_LogicalDevice">
<QUALIFIER TRANSLATABLE="true" NAME="Description" TYPE="string"><VALUE>The abstraction of a port or connection point of a Device. This object
should be instantiated when the Port has independent management characteristics from the Device that includes it. Examples are a Fibre Channel Port and a USB Port. This class would not be instantiated for an Ethernet Port which is not managed independently of the EthernetAdapter.</VALUE>
</QUALIFIER><PROPERTY NAME="Speed" TYPE="uint64">
<QUALIFIER TRANSLATABLE="true" NAME="Description" TYPE="string"><VALUE>The speed of the Port in Bits per Second.</VALUE>
</QUALIFIER><QUALIFIER TRANSLATABLE="true" NAME="Units" TYPE="string">
<VALUE>Bits per Second</VALUE></QUALIFIER>
</PROPERTY><PROPERTY NAME="MaxSpeed" TYPE="uint64">
<QUALIFIER TRANSLATABLE="true" NAME="Description" TYPE="string"><VALUE>The max speed of the Port in Bits per Second.</VALUE>
</QUALIFIER><QUALIFIER TRANSLATABLE="true" NAME="Units" TYPE="string">
<VALUE>Bits per Second</VALUE></QUALIFIER>
</PROPERTY></CLASS>
DMTF 2002 Developers' Conference June 10-13, 2002 Page 18
CIM OperationsCIM Operations• Protocol Independent!• Support for single or multiple operations• Types of Operations:
– Data– Meta Data– Queries– Methods
• Control the amount/type of data sent
DMTF 2002 Developers' Conference June 10-13, 2002 Page 19
Data OperationsData Operations•• DataData• Meta Data• Queries• Methods
• GetInstance• DeleteInstance• CreateInstance• ModifyInstance• EnumerateInstances• EnumerateInstanceNames• GetProperty• SetProperty
DMTF 2002 Developers' Conference June 10-13, 2002 Page 20
Meta Meta Data OperationsData Operations• Data•• Meta DataMeta Data• Queries• Methods
• GetClass• DeleteClass• CreateClass• ModifyClass• EnumerateClasses• EnumerateClassNames
DMTF 2002 Developers' Conference June 10-13, 2002 Page 21
Meta Meta Data OperationsData Operations• Data•• Meta DataMeta Data• Queries• Methods
• GetQualifier• SetQualifier• DeleteQualifier• EnumerateQualifiers
DMTF 2002 Developers' Conference June 10-13, 2002 Page 22
Query OperationsQuery Operations• Data• Meta Data•• QueriesQueries• Methods
• ExecQuery• Associators• References• Enumerators
DMTF 2002 Developers' Conference June 10-13, 2002 Page 23
Method OperationsMethod Operations• Data• Meta Data• Queries•• MethodsMethods
• IntrinsicCIM Operation
• ExtrinsicMethod on a CIM Class
DMTF 2002 Developers' Conference June 10-13, 2002 Page 24
ControlsControlsMany 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.
DMTF 2002 Developers' Conference June 10-13, 2002 Page 25
Functional ProfilesFunctional ProfilesFunc tional Group De pe nde nc y Me thods
Bas ic Re ad None
Ge t Clas sEnume rate Clas s e sEnume rate Clas s NameGe tIns tanceEnume rate Ins tance sEnume rate Ins tance Name
Bas ic Write Bas ic Re ad S e tP rope rty
Ins tance Manipulation Bas ic WriteCre ate Ins tanceModifyIns tanceDe le te Ins tance
S che ma manipulation Ins tance ManipulationCre ate Clas sModifyClas sDe le te Clas s
As s ociation Trave rs al Bas ic Re ad
As s ociatorsAs s ociatorName sRe fe re nce sRe fe re nce Name s
Que ry Exe cution Bas ic Re ad Exe cQue ry
Qualifie r De claration S che ma Manipultation
Ge tQualifie rS e tQualifie rDe le te Qualifie rEnume rate Qualifie rs
DMTF 2002 Developers' Conference June 10-13, 2002 Page 26
CIMCIM--XMLXML• Encapsulated
Messages/Operations• HTTP Headers• Errors• Security• Discovery• Internationalization
HTTP headerHTTP header
Xml/Cimpayload
DMTF 2002 Developers' Conference June 10-13, 2002 Page 27
HTTP UtilizationHTTP Utilization•• Encapsulated Encapsulated
OperationsOperations• HTTP Headers• Errors• Security• Discovery• Internationalization
• xmlCIM Message Payload
• straightforwardly usable over the Internet
• No additional functions needed
DMTF 2002 Developers' Conference June 10-13, 2002 Page 28
HTTP UtilizationHTTP Utilization• Encapsulated
Operations•• HTTP HeadersHTTP Headers• Errors• Security• Discovery• Internationalization
• V1.0 POST• V1.1 POST/M-POST• Extension headers
– CIMProtocolVersion – CIMOperation– CIMMethod– CIMObject– CIMBatch
DMTF 2002 Developers' Conference June 10-13, 2002 Page 29
HTTP UtilizationHTTP Utilization• Encapsulated
Operations• HTTP Headers•• ErrorsErrors• Security• Discovery• Internationalization
• 501 Not Implemented• 401 Unauthorized• 403 Forbidden• 407 Proxy Authentication
Required• 400 Bad Request• 200 OK• 207 Multistatus
DMTF 2002 Developers' Conference June 10-13, 2002 Page 30
HTTP UtilizationHTTP Utilization• Encapsulated
Operations• HTTP Headers• Errors•• SecuritySecurity• Discovery• Internationalization
• access to CIM Server • Digest Authentication• Basic Authentication• SSL/SHTTP
DMTF 2002 Developers' Conference June 10-13, 2002 Page 31
HTTP UtilizationHTTP Utilization• Encapsulated
Operations• HTTP Headers• Errors• Security•• DiscoveryDiscovery• Internationalization
• OPTIONS Request– CIMOM header
• CIMOM relative URI
• Being addressed for next release of specification
DMTF 2002 Developers' Conference June 10-13, 2002 Page 32
HTTP UtilizationHTTP Utilization• Encapsulated
Operations• HTTP Headers• Errors• Security•• DiscoveryDiscovery• Internationalization
• OPTIONS– CIMProtocolVersion– CIMFunctionalGroups– CIMSupportsMultipleOperations– CIMSupportedQuery Languages– CIMOM header
DMTF 2002 Developers' Conference June 10-13, 2002 Page 33
HTTP UtilizationHTTP Utilization• Encapsulated
Operations• HTTP Headers• Errors• Security• Discovery•• InternationalizationInternationalization
• Character set encoding– Accept-Charset header– <?XML> instruction
• Language– Accept-Language– Content-Language
DMTF 2002 Developers' Conference June 10-13, 2002 Page 34
CIMCIM--XML ExampleXML ExampleM-POST /cimom HTTP/1.0Content-Type: text/xml;charset=UTF-8Accept: text/xml, application/xmlMan: http://www.dmtf.org/cim/mapping/http/v1.0;ns=4848-CIMProtocolVersion: 1.048-CIMOperation: MethodCall48-CIMMethod: GetClass48-CIMObject: root%2Fcimv2User-Agent: Java1.2.1Host: edoc5-pcContent-length: 445<?xml version="1.0" encoding="UTF-8"?>
<CIM DTDVERSION="2.0" CIMVERSION="2.0"><MESSAGE ID="2000:1:24:11:0:44:58:1" PROTOCOLVERSION="1.0">
<SIMPLEREQ><IMETHODCALL NAME="GetClass">
<LOCALNAMESPACEPATH><NAMESPACE NAME="root" />
<NAMESPACE NAME="cimv2" /></LOCALNAMESPACEPATH><IPARAMVALUE NAME="ClassName">
<CLASSNAME NAME="cim_logicalport" /></IPARAMVALUE>
</IMETHODCALL></SIMPLEREQ>
</MESSAGE></CIM>
DMTF 2002 Developers' Conference June 10-13, 2002 Page 35
What’s New!What’s New!• CIM Operations over HTTP 1.1
– Indication Delivery and Subscription– Well Known Ports – Namespace– Clarification of Operations & More Examples!
• Representation of CIM in XML 2.1CIM DTD 2.1– Indication Delivery Support– Clarification in various areas– Minor bug fixes
DMTF 2002 Developers' Conference June 10-13, 2002 Page 36
What’s New!What’s New!• CIM_Interop Model 2.6
– WBEM Service– Object Manager– Communication Mechanism– Namespace
• CIM_Interop Model 2.7 Preliminary– Provider Registration– CIM Server Statistics
DMTF 2002 Developers' Conference June 10-13, 2002 Page 37
What’s Next!What’s Next!• Q3-Q4 ‘02
– Discovery, Error Handling– Asynchronous Operations– CIM Query Specification
• Q4 ‘02/Q1 ‘03– CIM Operations 2.0
• Client & Provider Operations– Representation of CIM in XML 2.3– CIM-XML 2.0– CIM-SOAP 1.0
• New Models, Transactions, Locking, ...
DMTF 2002 Developers' Conference June 10-13, 2002 Page 38
Further InformationFurther Information• Other Sessions
– CIM Events Wednesday 1:30 - 2:45
– Managing WBEM/CIM InfrastructureWednesday 3:00 - 4:15
• DMTF Standards– Specifications, Presentations and white papers
http://www.dmtf.org/• XML, XSL and related technologies
– http://www.w3.org/XML/
DMTF 2002 Developers' Conference June 10-13, 2002 Page 39
Q & AQ & A