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