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