1 karl 1.2 // ==================================================================
2 // Title: Metrics MOF Specification 2.6
3 // Filename: CIM_Metrics26.MOF
4 // Version 2.6.0
5 // Status: Final
6 // Date: 06/04/2002
7 // ===================================================================
8 // Copyright 2001-2002 Distributed Management Task Force, Inc. (DMTF).
9 // All rights reserved.
10 // DMTF is a not-for-profit association of industry members dedicated
11 // to promoting enterprise and systems management and interoperability.
12 // DMTF specifications and documents may be reproduced for uses
13 // consistent with this purpose by members and non-members,
14 // provided that correct attribution is given.
15 // As DMTF specifications may be revised from time to time,
16 // the particular version and release date should always be noted.
17 //
18 // Implementation of certain elements of this standard or proposed
19 // standard may be subject to third party patent rights, including
20 // provisional patent rights (herein "patent rights"). DMTF makes
21 // no representations to users of the standard as to the existence
22 karl 1.2 // of such rights, and is not responsible to recognize, disclose, or
23 // identify any or all such third party patent right, owners or
24 // claimants, nor for any incomplete or inaccurate identification or
25 // disclosure of such rights, owners or claimants. DMTF shall have no
26 // liability to any party, in any manner or circumstance, under any
27 // legal theory whatsoever, for failure to recognize, disclose, or
28 // identify any such third party patent rights, or for such party’s
29 // reliance on the standard or incorporation thereof in its product,
30 // protocols or testing procedures. DMTF shall have no liability to
31 // any party implementing such standard, whether such implementation
32 // is foreseeable or not, nor to any patent owner or claimant, and shall
33 // have no liability or responsibility for costs or losses incurred if
34 // a standard is withdrawn or modified after publication, and shall be
35 // indemnified and held harmless by any party implementing the
36 // standard from any and all claims of infringement by a patent owner
37 // for such implementations.
38 //
39 // For information about patents held by third-parties which have
40 // notified the DMTF that, in their opinion, such patent may relate to
41 // or impact implementations of DMTF standards, visit
42 // http://www.dmtf.org/about/policies/disclosures.php.
43 karl 1.2 // ===================================================================
44 // Description: This Schema includes the object classes required to model
45 // the CIM Metrics Schema, specifically the concepts of
46 // UnitOfWork (executing and definitional), the metrics
47 // associated with UnitsOfWork, and the relationships necessary
48 // to associate defintions and metrics to an executing
49 // UnitOfWork and to associate UnitsOfWork to
50 // LogicalElements.
51 //
52 // The object classes below are listed in an order that
53 // avoids forward references. Required objects, defined
54 // by other working groups, are omitted.
55 // ===================================================================
56 // CIM 2.6.0 (Final) Feb 15 2002
57 // CR636 - Replaced the Weak Qualifier from the association
58 // StartedUoW that was removed in error in Version 2.5
59 // CR746- Add Version Qualifier to all classes with version 2.6.0
60 // per TC agreement to start versioning in 2.6 Final.
61 // CIM 2.6.0 Preliminary and earlier change definitions (May 2001)
62 // Fixed UnitOfWork.UoWDefId Propagated qualifier class name
63 // Removed the Weak qualifier from the association StartedUoW
64 karl 1.2 // Fixed some descriptions
65 // Removed Required qualifier from MetricDefinition.Name,
66 // UnitOfWorkDefinition.Name, UnitOfWorkDefinition.Context
67 // --> (the rest of this list were changes made 01 Feb 2000 but
68 // --> not incorporated into DAP24.MOF due to an oversight)
69 // Fixed pragma Locale string
70 // Corrected subclassing of CIM_MetricDefinition and
71 // CIM_UnitOfWork (now subclassed from CIM_ManagedElement)
72 // Fixed grammatical and formatting errors in Descriptions
73 // Provided information in Descriptions on why associations
74 // were defined as Dependencies
75 // Provided Descriptions where they were missing
76 // Added MaxLen (16) to String Id in UnitOfWorkDefinition
77 // and in MetricDefinition, to enforce the semantics of
78 // the Description
79 // Also added MaxLen (16) to UoWDefId, where the UnitOf
80 // WorkDefinition Id property is propagated to UnitOfWork
81 // Removed the Weak qualifier from the association,
82 // UoWMetricDefinition, and also the Max (1) restriction
83 // (the latter allows reuse of Metrics)
84 // Removed Min (0) from the association, SubUoW, since this
85 karl 1.2 // is the default definition
86 // ==================================================================
87
88 // ==================================================================
89 // Pragmas
90 // ==================================================================
91 #pragma Locale ("en_US")
92
93 // ==================================================================
94 // UnitOfWorkDefinition
95 // ==================================================================
96 [Version("2.6.0"), Description (
97 "A LogicalElement that describes units of work (e.g. "
98 "transactions). This class represents the definitional "
99 "components of a unit of work, and not the unit itself.") ]
100 class CIM_UnitOfWorkDefinition : CIM_LogicalElement {
101 [Override ("Name"),
102 Description (
103 "The name of the Definition. This name does not have to "
104 "be unique, but should be descriptive. It may "
105 "contain blanks.") ]
106 karl 1.2 string Name;
107 [Description (
108 "A free format string describing the context of the "
109 "defined UnitOfWork. For example an 'Add Order' Unit could "
110 "be defined in the context of a book ordering application, "
111 "whereas another 'Add Order' UnitOfWork could be defined for "
112 "a computer ordering application. It may contain blanks.") ]
113 string Context;
114 [Key, MaxLen (16),
115 Description (
116 "A 16 byte value that uniquely identifies the UnitOfWork"
117 "Definition. The use of OSF UUID/GUIDs is recommended.") ]
118 string Id;
119 };
120
121
122 // ==================================================================
123 // MetricDefinition
124 // ==================================================================
125 [Version("2.6.0"), Description (
126 "The metrics that are associated with a UnitOfWork. These "
127 karl 1.2 "metrics usually describe some aspect of a UnitOfWork such "
128 "as how much work was done, or the size of the UnitOfWork. "
129 "For example, the size of a print job or the number of pages "
130 "printed could be metrics of a 'print' UnitOfWork.") ]
131 class CIM_MetricDefinition : CIM_ManagedElement {
132 [Key, MaxLen (16),
133 Description (
134 "A 16 byte value that uniquely identifies the Metric"
135 "Definition. The use of OSF UUID/GUIDs is recommended.") ]
136 string Id;
137 [Description (
138 "The name of the Definition. This name does not have to "
139 "be unique, but should be descriptive. It may "
140 "contain blanks.") ]
141 string Name;
142 [Description (
143 "The Metric's data type. For example, \"boolean\" (value=1) "
144 "or \"datetime\" (=3) may be specified."),
145 ValueMap {"1", "2", "3", "4", "5", "6", "7", "8", "9", "10",
146 "11", "12", "13", "14"},
147 Values {"boolean", "char16", "datetime", "real32", "real64",
148 karl 1.2 "sint16", "sint32", "sint64", "sint8", "string", "uint16",
149 "uint32", "uint64", "uint8"} ]
150 uint16 DataType;
151 [Description (
152 "An enumerated value that describes the characteristics "
153 "of the Metric, for purposes of performing calculations. "
154 "The property can take one of the following values: \n"
155 "1=\"Non-calculable\" -> a string. Arithmetic makes no "
156 "sense. \n"
157 "2=\"Summable\" -> It is reasonable to sum this value over "
158 "many instances of UnitOfWork, such as the number of files "
159 "processed in a backup job. For example, if each backup "
160 "job is a UnitOfWork, and each job backs up 27,000 files on "
161 "average, then it makes sense to say that 100 backup jobs "
162 "processed 2,700,000 files. \n"
163 "3=\"Non-summable\" -> It does not make sense to sum this "
164 "value over many instances of UnitOfWork. An example would be "
165 "a metric that measures the queue length when a job arrives "
166 "at a server. If each job is a UnitOfWork, and the average "
167 "queue length when each job arrives is 33, it does not make "
168 "sense to say that the queue length for 100 jobs is 3300. It "
169 karl 1.2 "does make sense to say that the mean is 33."),
170 ValueMap {"1", "2", "3"},
171 Values {"Non-calculable", "Summable", "Non-summable"} ]
172 uint16 Calculable;
173 [Description (
174 "Identifies the specific units of the Metric. Examples are "
175 "Bytes, Packets, Jobs, Files, Milliseconds and Amps.") ]
176 string Units;
177 [Description (
178 "An enumerated value describing when the Metric may be "
179 "considered valid. Some metrics are valid only at the "
180 "beginning of a transaction (e.g., bytes to print), while "
181 "the transaction is running (e.g., percent complete), or "
182 "when the transaction is finished (e.g., pages printed). "
183 "If a metric is valid at more than one of the enumerated "
184 "values, such as both when the unit of work starts and "
185 "when it stops, it is recommended to not use Validity."),
186 ValueMap {"1", "2", "3"},
187 Values {"AtStart", "InMiddle", "AtStop"} ]
188 uint16 Validity;
189 };
190 karl 1.2
191
192 // ==================================================================
193 // UoWMetricDefinition
194 // ==================================================================
195 [Association, Version("2.6.0"),
196 Description (
197 "An association that describes the Metrics related to a "
198 "UnitOfWorkDefinition. This is a Dependency "
199 "relationship since the MetricDefinition relies on the "
200 "UnitOfWorkDefinition for context. At least one context must "
201 "be defined for a MetricDefinition, hence the Min (1) "
202 "qualifier is placed on the UnitOfWorkDefinition reference.") ]
203 class CIM_UoWMetricDefinition : CIM_Dependency {
204 [Override ("Antecedent"), Min (1),
205 Description (
206 "The UnitOfWorkDefinition where the Metric applies.") ]
207 CIM_UnitOfWorkDefinition REF Antecedent;
208 [Override ("Dependent"),
209 Description (
210 "The MetricDefinition for a particular UnitOfWork.") ]
211 karl 1.2 CIM_MetricDefinition REF Dependent;
212 };
213
214
215 // ==================================================================
216 // UnitOfWork
217 // ==================================================================
218 [Version("2.6.0"), Description (
219 "Each instance of UnitOfWork identifies a transaction that is "
220 "either in-process or already completed. Because instances of "
221 "'in-process' UnitsOfWork can be very short-lived and there can "
222 "be a great number of active ones, use of this class as an "
223 "instrumentation source for determining response time may be "
224 "incorrect or inefficient, unless the rate and duration of the "
225 "UnitsOfWork are known. The intended use is to respond to queries "
226 "about currently active or recently completed UnitsOfWork. "
227 "The length of time that a UnitOfWork instance exists after the "
228 "UnitOfWork completes is not defined and should be assumed to be "
229 "implementation-dependent. This class is weak to its "
230 "definition (CIM_UnitOfWorkDefintion).") ]
231 class CIM_UnitOfWork : CIM_ManagedElement {
232 karl 1.2 [Override ("Description"),
233 Description (
234 "Since UnitOfWork is designed to be an extremely lightweight "
235 "object, it is recommended that this property not be used. "
236 "The Description specified for the instance's associated "
237 "CIM_UnitOfWorkDefintion should apply.") ]
238 string Description;
239 [Key, Description (
240 "The identifier of the UnitOfWork, within the context of the "
241 "UnitOfWorkDefinition.") ]
242 sint64 Id;
243 [Key, MaxLen (16),
244 Propagated ("CIM_UnitOfWorkDefinition.Id"),
245 Description (
246 "A 16 byte value that uniquely identifies the UnitOfWork"
247 "Definition. The use of OSF UUID/GUIDs is recommended.") ]
248 string UoWDefId;
249 [Description (
250 "The name of the user who initiated the UnitOfWork. This "
251 "may be a real user's login name or a logical name representing "
252 "an application.") ]
253 karl 1.2 string UserName;
254 [Description ("The time that the UnitOfWork was started.") ]
255 datetime StartTime;
256 [Description (
257 "The elapsed time since the UnitOfWork was started. "
258 "Upon completion of the UnitOfWork, this property contains "
259 "the total amount of time taken in processing the entire "
260 "UnitOfWork.") ]
261 datetime ElapsedTime;
262 [Description (
263 "An enumeration identifing the status of the UnitOfWork. "
264 "Most of the property values are self-explanatory. A few need "
265 "additional text: \n"
266 "3=\"Completed\" - Should be used to represent a 'completed' "
267 "transaction whose status ('good', 'failed' or 'aborted') is "
268 "unknown. \n"
269 "6=\"Completed Aborted\" - Should be used when a UnitOfWork "
270 "has completed but was not allowed to end normally. An example "
271 "would be when the Stop or Back buttons are selected from a web "
272 "browser, before a page is fully loaded."),
273 ValueMap {"1", "2", "3", "4", "5", "6"},
274 karl 1.2 Values {"Active", "Suspended", "Completed", "Completed Good",
275 "Completed Failed", "Completed Aborted"} ]
276 uint16 Status;
277 };
278
279
280 // ==================================================================
281 // UoWMetric
282 // ==================================================================
283 [Association, Version("2.6.0"),
284 Description (
285 "This association ties a MetricDefinition to an instance of a "
286 "UnitOfWork. Its primary purpose is to specify the value of "
287 "the Metric for the instance of UnitOfWork. It is defined as a "
288 "Dependency since the Metric value relies on the specific "
289 "UnitOfWork for context.") ]
290 class CIM_UoWMetric : CIM_Dependency {
291 [Override ("Antecedent"),
292 Description (
293 "The UnitOfWork whose Metric value is specified.") ]
294 CIM_UnitOfWork REF Antecedent;
295 karl 1.2 [Override ("Dependent"),
296 Description (
297 "The MetricDefinition for this particular UnitOfWork and "
298 "value. Note that the MetricDefinition must be associated "
299 "(via UoWMetricDefinition) to the same UnitOfWorkDefinition "
300 "to which the UnitOfWork is weakly associated.") ]
301 CIM_MetricDefinition REF Dependent;
302 [Description (
303 "The value of the Metric for the referenced UnitOfWork. "
304 "Note that the type of the data and other information are "
305 "defined by the properties of MetricDefinition.") ]
306 string Value;
307 };
308
309
310 // ==================================================================
311 // StartedUoW
312 // ==================================================================
313 [Association, Version("2.6.0"),
314 Description (
315 "This association links a UnitOfWork (which is a 'started' "
316 karl 1.2 "transaction) to its Definition.") ]
317 class CIM_StartedUoW : CIM_Dependency {
318 [Override ("Antecedent"),
319 Min (1), Max (1),
320 Description ("The Definition object for the UnitOfWork.") ]
321 CIM_UnitOfWorkDefinition REF Antecedent;
322 [Override ("Dependent"),
323 Weak, Description (
324 "An instance of a UnitOfWork that has started executing.") ]
325 CIM_UnitOfWork REF Dependent;
326 };
327
328
329 // ==================================================================
330 // LogicalElementUnitOfWorkDef
331 // ==================================================================
332 [Association, Version("2.6.0"),
333 Description (
334 "This association links a LogicalElement to the UnitsOfWork "
335 "that it can perform. For example, a Printer Device may have "
336 "associated UnitOfWorkDefinitions representing PrintJobs. "
337 karl 1.2 "This is a Dependency relationship since the Definitions are "
338 "given context by the LogicalElement.") ]
339 class CIM_LogicalElementUnitOfWorkDef : CIM_Dependency {
340 [Override ("Antecedent"),
341 Description (
342 "The LogicalElement that is providing the UnitOfWork.") ]
343 CIM_LogicalElement REF Antecedent;
344 [Override ("Dependent"),
345 Description (
346 "The UnitOfWorkDefinition associated with the "
347 "LogicalElement.") ]
348 CIM_UnitOfWorkDefinition REF Dependent;
349 };
350
351
352 // ==================================================================
353 // SubUoWDef
354 // ==================================================================
355 [Association, Version("2.6.0"),
356 Description (
357 "This association defines the sub-UnitsOfWork (the sub-"
358 karl 1.2 "transactions) for a particular UnitOfWorkDefinition. For "
359 "example, an 'AddOrder' UnitOfWork could have sub-Units of "
360 "'ValidateCustomer', 'ValidatePartNumber', 'UpdateDatabase', "
361 "etc. This is a Dependency relationship since the sub-UnitsOf"
362 "Work are put in context relative to the parent Unit. It is "
363 "not an aggregation relationship - since (using another example) "
364 "a 'DatabaseWrite' transaction is likely to be dependent upon a "
365 "'DiskWrite', but the two transactions are separate concepts "
366 "and one is not 'contained' by the other.") ]
367 class CIM_SubUoWDef : CIM_Dependency {
368 [Override ("Antecedent"),
369 Description ("The parent UnitOfWorkDefinition.") ]
370 CIM_UnitOfWorkDefinition REF Antecedent;
371 [Override ("Dependent"),
372 Description ("The sub-UnitOfWorkDefinition.") ]
373 CIM_UnitOfWorkDefinition REF Dependent;
374 };
375
376
377 // ==================================================================
378 // LogicalElementPerformsUoW
379 karl 1.2 // ==================================================================
380 [Association, Version("2.6.0"),
381 Description (
382 "This association identifies a specific execution of a UnitOf"
383 "Work with the specific LogicalElement that is performing/"
384 "has performed it. Where the LogicalElementUnitOfWorkDef "
385 "association describes what an Element can do, this relationship "
386 "describes what a particular Element is doing or has done.") ]
387 class CIM_LogicalElementPerformsUoW : CIM_Dependency {
388 [Override ("Antecedent"),
389 Description (
390 "The LogicalElement performing the UnitOfWork.") ]
391 CIM_LogicalElement REF Antecedent;
392 [Override ("Dependent"),
393 Description ("The UnitOfWork being performed.") ]
394 CIM_UnitOfWork REF Dependent;
395 };
396
397 // ==================================================================
398 // SubUoW
399 // ==================================================================
400 karl 1.2 [Association, Version("2.6.0"),
401 Description (
402 "Similar to the SubUoWDef association (which describes the "
403 "relationship between definitional UnitsOfWork), this "
404 "association identifies the executional UnitOfWork "
405 "Dependencies. It associates executing/executed UnitsOfWork "
406 "with their parent Units. In most cases, the SubUoW reflects "
407 "the execution side of the relationship defined in SubUoWDef. "
408 "However, there may be cases where the SubUoWDef is not defined, "
409 "but for a particular UnitOfWork, the SubUoW relationship is "
410 "valid. Therefore, it is not a requirement (but it is "
411 "desirable) that there be a corresponding SubUoWDef for each "
412 "instance of SubUoW.") ]
413 class CIM_SubUoW : CIM_Dependency {
414 [Override ("Antecedent"), Max (1),
415 Description (
416 "The parent executing/executed UnitOfWork. On the execution "
417 "side, it is expected that a sub-Unit is associated with only "
418 "one parent UnitOfWork.") ]
419 CIM_UnitOfWork REF Antecedent;
420 [Override ("Dependent"),
421 karl 1.2 Description (
422 "The sub-UnitOfWork. On the execution side, it is expected "
423 "that a sub-Unit is associated with only one parent "
424 "UnitOfWork.") ]
425 CIM_UnitOfWork REF Dependent;
426 };
427
428 // ===================================================================
429 // end of file
430 // ===================================================================
|