1 kumpf 1.2 // ==================================================================
2 // Title: Metrics MOF Specification 2.7, Unit of Work Metrics
3 // Author: DMTF Application Working Group
4 // Filename: Metrics27_UnitofWork.MOF
5 // Version 2.7.0
6 // Status: Final
7 // Date: 13 April 2003
8 // ===================================================================
9 // Copyright 2001-2003 Distributed Management Task Force, Inc. (DMTF).
10 // All rights reserved.
11 // DMTF is a not-for-profit association of industry members dedicated
12 // to promoting enterprise and systems management and interoperability.
13 // DMTF specifications and documents may be reproduced for uses
14 // consistent with this purpose by members and non-members,
15 // provided that correct attribution is given.
16 // As DMTF specifications may be revised from time to time,
17 // the particular version and release date should always be noted.
18 //
19 // Implementation of certain elements of this standard or proposed
20 // standard may be subject to third party patent rights, including
21 // provisional patent rights (herein "patent rights"). DMTF makes
22 kumpf 1.2 // no representations to users of the standard as to the existence
23 // of such rights, and is not responsible to recognize, disclose, or
24 // identify any or all such third party patent right, owners or
25 // claimants, nor for any incomplete or inaccurate identification or
26 // disclosure of such rights, owners or claimants. DMTF shall have no
27 // liability to any party, in any manner or circumstance, under any
28 // legal theory whatsoever, for failure to recognize, disclose, or
29 // identify any such third party patent rights, or for such party's
30 // reliance on the standard or incorporation thereof in its product,
31 // protocols or testing procedures. DMTF shall have no liability to
32 // any party implementing such standard, whether such implementation
33 // is foreseeable or not, nor to any patent owner or claimant, and shall
34 // have no liability or responsibility for costs or losses incurred if
35 // a standard is withdrawn or modified after publication, and shall be
36 // indemnified and held harmless by any party implementing the
37 // standard from any and all claims of infringement by a patent owner
38 // for such implementations.
39 //
40 // For information about patents held by third-parties which have
41 // notified the DMTF that, in their opinion, such patent may relate to
42 // or impact implementations of DMTF standards, visit
43 kumpf 1.2 // http://www.dmtf.org/about/policies/disclosures.php.
44 // ===================================================================
45 // Description: This Schema includes the object classes required to model
46 // CIM's Unit of Work Metrics, specifically the concepts
47 // of UnitOfWork (executing and definitional), the metrics
48 // associated with UnitsOfWork, and the relationships necessary
49 // to associate definitions and metrics to an executing
50 // UnitOfWork and to associate UnitsOfWork to
51 // LogicalElements.
52 //
53 // The object classes below are listed in an order that
54 // avoids forward references. Required objects, defined
55 // by other working groups, are omitted.
56 // ===================================================================
57 // CHANGE HISTORY
58 // CIM 2.6.0 Preliminary and earlier change definitions (May 2001)
59 // Fixed UnitOfWork.UoWDefId Propagated qualifier class name
60 // Removed the Weak qualifier from the association StartedUoW
61 // Fixed some descriptions
62 // Removed Required qualifier from MetricDefinition.Name,
63 // UnitOfWorkDefinition.Name, UnitOfWorkDefinition.Context
64 kumpf 1.2 // --> (the rest of this list were changes made 01 Feb 2000 but
65 // --> not incorporated into DAP24.MOF due to an oversight)
66 // Fixed pragma Locale string
67 // Corrected subclassing of CIM_MetricDefinition and
68 // CIM_UnitOfWork (now subclassed from CIM_ManagedElement)
69 // Fixed grammatical and formatting errors in Descriptions
70 // Provided information in Descriptions on why associations
71 // were defined as Dependencies
72 // Provided Descriptions where they were missing
73 // Added MaxLen (16) to String Id in UnitOfWorkDefinition
74 // and in MetricDefinition, to enforce the semantics of
75 // the Description
76 // Also added MaxLen (16) to UoWDefId, where the UnitOf
77 // WorkDefinition Id property is propagated to UnitOfWork
78 // Removed the Weak qualifier from the association,
79 // UoWMetricDefinition, and also the Max (1) restriction
80 // (the latter allows reuse of Metrics)
81 // Removed Min (0) from the association, SubUoW, since this
82 // is the default definition
83 //
84 // CIM 2.6.0 (Final) Feb 15 2002
85 kumpf 1.2 // CR636 - Replaced the Weak Qualifier from the association
86 // StartedUoW that was removed in error in Version 2.5
87 // CR746- Add Version Qualifier to all classes with version 2.6.0
88 // per TC agreement to start versioning in 2.6 Final.
89 //
90 // CIM 2.7.0 Preliminary ( 6 June 2002)
91 // CR 818: Add TraceLevel functionality with following changes:
92 // uint16 CIM_UnitOfWork.TraceLevel
93 // string CIM_UnifOfWorkDefinition.TraceLevelTypeId
94 // class CIM_TraceLevelType
95 // Association between UnitOfWorkDefinition and TraceLevelType
96 // CR 819: Add MutualContextID to UnitOfWork. The context
97 // is defined as an individual action several UnitOfWork
98 // instances participate in.
99 // CR 820: MetricDefinition: inheritance changed to
100 // BaseMetricDefinition, deleted inherited properties and
101 // restricted inherited key to MaxLen(16) for compatibility
102 // CR 864: Change the superclassing and reference names of the
103 // UoWDefTraceLevelType association
104 //
105 // CIM 2.7.1 Preliminary (12 November 2002)
106 kumpf 1.2 // CR 920: Add missing parenthesis to the Description for
107 // TraceLevelType.BaseType
108 //
109 // CIM 2.7.0 Final (12 February 2003)
110 // CR 987: remove experimental qualifier from
111 // -CIM_UnitOfWorkDefinition.TraceLevelTypeId
112 // -CIM_TraceLevelType
113 // -CIM_UnitOfWork.TraceLevel
114 // -CIM_UnitOfWork.MutualContextId
115 // -CIM_UoWDefTraceLevelType
116 // ==================================================================
117
118 #pragma Locale ("en_US")
119
120
121 // ==================================================================
122 // UnitOfWorkDefinition
123 // ==================================================================
124 [Version("2.7.0"), Description (
125 "A LogicalElement that describes units of work (e.g. "
126 "transactions). This class represents the definitional "
127 kumpf 1.2 "components of a unit of work, and not the unit itself.") ]
128 class CIM_UnitOfWorkDefinition : CIM_LogicalElement {
129
130 [Override ("Name"),
131 Description (
132 "The name of the Definition. This name does not have to "
133 "be unique, but should be descriptive. It may "
134 "contain blanks.") ]
135 string Name;
136
137 [Description (
138 "A free format string describing the context of the "
139 "defined UnitOfWork. For example an 'Add Order' Unit could "
140 "be defined in the context of a book ordering application, "
141 "whereas another 'Add Order' UnitOfWork could be defined for "
142 "a computer ordering application. It may contain blanks.") ]
143 string Context;
144
145 [Key, MaxLen (16),
146 Description (
147 "A 16 byte value that uniquely identifies the UnitOfWork"
148 kumpf 1.2 "Definition. The use of OSF UUID/GUIDs is recommended.") ]
149 string Id;
150
151 [MaxLen (16),
152 ModelCorrespondence {"CIM_TraceLevelType.InstanceId"},
153 Description (
154 " A 16 byte value that uniquely identifies the applied "
155 "semantics and format of the trace levels used in the "
156 "instances of UnitOfWork. The use of OSF UUID/GUIDs is "
157 "recommended. \n"
158 " TraceLevelTypeId allows management applications to "
159 "efficiently discriminate between different trace level "
160 "semantics of different UnitOfWorkDefinitions. I.E., "
161 "CIM_UnitOfWork.TraceLevel = 1 may have different semantics "
162 "if TraceLevelTypeId is different for the respective "
163 "instances of UnitOfWork. \n"
164 " It is not assumed that different trace level semantics "
165 "are used within the same UnitOfWorkDefinition in order to "
166 "promote uniform trace level encodings. (Keep in mind: At "
167 "least the developers of the business actions represented by "
168 "the same UnitOfWorkDefinition instance should strive to use "
169 kumpf 1.2 "the same trace level encoding, otherwise the administrator "
170 "will have a hard time to figure out what detailed "
171 "information to expect.) \n"
172 " If the string is empty no traces are expected to be "
173 "produced. If the string is not empty, an associated "
174 "instance of TraceLevelType may be attached to the "
175 "UnitOfWorkDefinition instance. Still, it is useful to "
176 "incorporate TraceLevelTypeId into UnitOfWorkDefinition, "
177 "to relate to an instance of TraceLevelType. The "
178 "management application can more easily detect different "
179 "trace level types.") ]
180 string TraceLevelTypeId;
181 };
182
183
184 // ==================================================================
185 // MetricDefinition
186 // ==================================================================
187 [Version("2.7.0"), Description (
188 "The metrics that are associated with a UnitOfWork. These "
189 "metrics usually describe some aspect of a UnitOfWork such "
190 kumpf 1.2 "as how much work was done, or the size of the UnitOfWork. "
191 "For example, the size of a print job or the number of pages "
192 "printed could be metrics of a 'print' UnitOfWork.") ]
193 class CIM_MetricDefinition : CIM_BaseMetricDefinition {
194
195 [Override("Id"), MaxLen (16),
196 Description (
197 "A 16 byte value that uniquely identifies the Metric"
198 "Definition. The use of OSF UUID/GUIDs is recommended.") ]
199 string Id;
200
201 [Description (
202 "An enumerated value describing when the Metric may be "
203 "considered valid. Some metrics are valid only at the "
204 "beginning of a transaction (e.g., bytes to print), while "
205 "the transaction is running (e.g., percent complete), or "
206 "when the transaction is finished (e.g., pages printed). "
207 "If a metric is valid at more than one of the enumerated "
208 "values, such as both when the unit of work starts and "
209 "when it stops, it is recommended to not use Validity."),
210 ValueMap {"1", "2", "3"},
211 kumpf 1.2 Values {"At Start", "In Middle", "At Stop"} ]
212 uint16 Validity;
213 };
214
215
216 // ==================================================================
217 // TraceLevelType
218 // ==================================================================
219 [Version("2.7.0"), Description (
220 "TraceLevelType defines the encoding and semantics of trace "
221 "levels. A trace is data that is produced during the "
222 "execution of program code in order to provide information on "
223 "the behaviour of the code (e.g. textual data written to "
224 "files). Traces may be used for error detection/analysis or "
225 "debugging. Trace levels define the granularity and/or type of "
226 "the traces that are to be produced by the program code. "
227 "Depending on the program implementation, levels may be "
228 "applied on the fly. The possible levels are also "
229 "implementation dependent, since no general rules or standards "
230 "exist. In consequence, program developers could reuse their "
231 "existing trace level scheme. \n"
232 kumpf 1.2 " Traces are valuable information sources for management "
233 "applications in cases of error detection/analysis. In order "
234 "to correctly set trace levels to the level needed (exciting "
235 "exhaustive tracing by accident may result in significant "
236 "system resources consumption in terms of processing time and "
237 "storage) and to efficiently interpret which level of detail to "
238 "expect from traces already produced by some resource, the "
239 "possible trace level values and their meaning (semantics) must "
240 "be known by the user and/or the management application. The "
241 "type does not define the location or access method of the "
242 "traces, since traces of a particular type can have multiple "
243 "locations as well as multiple access methods.") ]
244 class CIM_TraceLevelType: CIM_ManagedElement {
245
246 [Key, MaxLen (16),
247 ModelCorrespondence {"CIM_UnitOfWorkDefinition.TraceLevelTypeId"},
248 Description (
249 "A 16 byte value that uniquely identifies the trace level "
250 "type. The use of OSF UUID/GUIDs is recommended.") ]
251 string InstanceId;
252
253 kumpf 1.2 [Description(
254 "Describes the technical encoding of the trace level. \n"
255 "0: bit map = switches to turn on/off appropriate trace "
256 "production (e.g. 0x00000010, 0x0000F000); the use of bit "
257 "maps implies that the switches can be or-ed bitwise: "
258 "Values[1] | Values[2] | ... . \n"
259 "1: number = plain numbers that define levels (e.g. 1, 2, 7); "
260 "the recommended and most common encoding scheme \n"
261 "2: any other encoding scheme you could think of (e.g. "
262 "mixture of bit maps and numbers)."),
263 Values{"Other", "Bitmap", "Number"},
264 ValueMap{"1", "2", "3"} ]
265 uint16 BaseType;
266
267 [ArrayType("Indexed"), Required,
268 Description(
269 "Each entry in the array is one possible value of the trace "
270 "level of this type. Depending on the base type, these are "
271 "either switches defined as bit maps (e.g. 0x00000001, "
272 "0x000000F0, ...) or plain numbers (1, 2, 3, ...). In either "
273 "encoding, the value 0 is reserved for the equivalent of "
274 kumpf 1.2 "'no trace'.") ]
275 uint32 TraceValues[];
276
277 [ArrayType("Indexed"), Required,
278 Description(
279 "The index corresponds to TraceLevelType.TraceValues[]. "
280 "The array provides human-readable descriptions of the "
281 "semantics of each value entered in the TraceValues array.") ]
282 string ValueDescriptions[];
283 };
284
285
286 // ==================================================================
287 // UoWMetricDefinition
288 // ==================================================================
289 [Association, Version("2.6.0"),
290 Description (
291 "An association that describes the Metrics related to a "
292 "UnitOfWorkDefinition. This is a Dependency "
293 "relationship since the MetricDefinition relies on the "
294 "UnitOfWorkDefinition for context. At least one context must "
295 kumpf 1.2 "be defined for a MetricDefinition, hence the Min (1) "
296 "qualifier is placed on the UnitOfWorkDefinition reference.") ]
297 class CIM_UoWMetricDefinition : CIM_Dependency {
298
299 [Override ("Antecedent"), Min (1),
300 Description (
301 "The UnitOfWorkDefinition where the Metric applies.") ]
302 CIM_UnitOfWorkDefinition REF Antecedent;
303
304 [Override ("Dependent"),
305 Description (
306 "The MetricDefinition for a particular UnitOfWork.") ]
307 CIM_MetricDefinition REF Dependent;
308 };
309
310
311 // ==================================================================
312 // UnitOfWork
313 // ==================================================================
314 [Version("2.7.0"), Description (
315 "Each instance of UnitOfWork identifies a transaction that is "
316 kumpf 1.2 "either in-process or already completed. Because instances of "
317 "'in-process' UnitsOfWork can be very short-lived and there can "
318 "be a great number of active ones, use of this class as an "
319 "instrumentation source for determining response time may be "
320 "incorrect or inefficient, unless the rate and duration of the "
321 "UnitsOfWork are known. The intended use is to respond to queries "
322 "about currently active or recently completed UnitsOfWork. "
323 "The length of time that a UnitOfWork instance exists after the "
324 "UnitOfWork completes is not defined and should be assumed to be "
325 "implementation-dependent. This class is weak to its "
326 "definition (CIM_UnitOfWorkDefintion).") ]
327 class CIM_UnitOfWork : CIM_ManagedElement {
328
329 [Override ("Description"),
330 Description (
331 "Since UnitOfWork is designed to be an extremely lightweight "
332 "object, it is recommended that this property not be used. "
333 "The Description specified for the instance's associated "
334 "CIM_UnitOfWorkDefintion should apply.") ]
335 string Description;
336
337 kumpf 1.2 [Key, Description (
338 "The identifier of the UnitOfWork, within the context of the "
339 "UnitOfWorkDefinition.") ]
340 sint64 Id;
341
342 [Key, MaxLen (16),
343 Propagated ("CIM_UnitOfWorkDefinition.Id"),
344 Description (
345 "A 16 byte value that uniquely identifies the UnitOfWork"
346 "Definition. The use of OSF UUID/GUIDs is recommended.") ]
347 string UoWDefId;
348
349 [Description (
350 "The name of the user who initiated the UnitOfWork. This "
351 "may be a real user's login name or a logical name "
352 "representing an application.") ]
353 string UserName;
354
355 [Description ("The time that the UnitOfWork was started.") ]
356 datetime StartTime;
357
358 kumpf 1.2 [Description (
359 "The elapsed time since the UnitOfWork was started. "
360 "Upon completion of the UnitOfWork, this property contains "
361 "the total amount of time taken in processing the entire "
362 "UnitOfWork.") ]
363 datetime ElapsedTime;
364
365 [Description (
366 "An enumeration identifing the status of the UnitOfWork. "
367 "Most of the property values are self-explanatory, but a "
368 "few need additional text: \n"
369 "3=\"Completed\" - Should be used to represent a 'completed' "
370 "transaction whose status ('good', 'failed' or 'aborted') is "
371 "unknown. \n"
372 "6=\"Completed Aborted\" - Should be used when a UnitOfWork "
373 "has completed but was not allowed to end normally. An example "
374 "would be when the Stop or Back buttons are selected from a "
375 "web browser, before a page is fully loaded."),
376 ValueMap {"1", "2", "3", "4", "5", "6"},
377 Values {"Active", "Suspended", "Completed", "Completed Good",
378 "Completed Failed", "Completed Aborted"} ]
379 kumpf 1.2 uint16 Status;
380
381 [Description (
382 " Indicates the granularity at which traces are written "
383 "for this particular instance of UnitOfWork. Traces allow "
384 "providing more detailed information on the course of the "
385 "execution of the UnitOfWork than just the status and the "
386 "elapsed time. The trace level does not indicate where the "
387 "traces are found (i.e. in which file or CIM instances). "
388 "TraceLevel cannot be set (i.e. written) since an instance "
389 "of UnitOfWork only publishes information. So, the "
390 "application code that executes the unit of work must "
391 "receive the desired trace level by its caller (e.g. the "
392 "parent module, the user or some remote system that "
393 "initiates the unit of work). \n"
394 " If its value is 0, no traces are available. If its value "
395 "is > 0, traces are available. Except 0, the possible values "
396 "and their semantics are implementation dependent. Two "
397 "instances of UnitOfWork (even with the same definition) may "
398 "have different trace levels since the desired or required "
399 "granularity of traces may be dependent on the execution "
400 kumpf 1.2 "context (detection of an error, analysis of an error, etc.) "
401 "of the unit of work. \n"
402 " The trace level can be encoded as a bit map (each "
403 "individual bit indicates a certain trace type and/or level "
404 "of detail) or numbers (that are further defined by a value "
405 "map). No encoding scheme is imposed since no general rules "
406 "or standards exist and in consequence, application "
407 "developers could reuse their existing trace level "
408 "scheme.") ]
409 uint32 TraceLevel;
410
411 [Description (
412 " A string that uniquely identifies the mutual "
413 "context of UnitOfWork instances. The context is defined "
414 "as an individual action that several UnitOfWork instances "
415 "participate in. The use of Ids such as OSF UUID/GUIDs is "
416 "recommended, although some implementations may require "
417 "longer Ids. (This is the reason why no maxlen(16) qualifier "
418 "has been used.) \n"
419 " MutualContextId explicitly identifies the context for "
420 "instances of UnitOfWork, that is otherwise provided "
421 kumpf 1.2 "implicitly by SubUoW association instances. In addition, "
422 "one can query directly (i.e. without following the "
423 "associations) for UnitOfWork instances that participate in "
424 "some individual action (i.e., the mutual context). If no "
425 "mutual context is needed or if it is not supported by "
426 "the implementation, the value is NULL. \n"
427 " Note that the MutualContextId value is to be transferred "
428 "internally between the participating UnitOfWork "
429 "implementations such that each UnitOfWork instance "
430 "implementation receives its value from its "
431 "predecessor/parent or initially creates the value "
432 "if it is the first instance of the context.") ]
433 string MutualContextId;
434 };
435
436
437 // ==================================================================
438 // UoWMetric
439 // ==================================================================
440 [Association, Version("2.6.0"),
441 Description (
442 kumpf 1.2 "This association ties a MetricDefinition to an instance of a "
443 "UnitOfWork. Its primary purpose is to specify the value of "
444 "the Metric for the instance of UnitOfWork. It is defined as a "
445 "Dependency since the Metric value relies on the specific "
446 "UnitOfWork for context.") ]
447 class CIM_UoWMetric : CIM_Dependency {
448
449 [Override ("Antecedent"),
450 Description (
451 "The UnitOfWork whose Metric value is specified.") ]
452 CIM_UnitOfWork REF Antecedent;
453
454 [Override ("Dependent"),
455 Description (
456 "The MetricDefinition for this particular UnitOfWork and "
457 "value. Note that the MetricDefinition must be associated "
458 "(via UoWMetricDefinition) to the same UnitOfWorkDefinition "
459 "to which the UnitOfWork is weakly associated.") ]
460 CIM_MetricDefinition REF Dependent;
461
462 [Description (
463 kumpf 1.2 "The value of the Metric for the referenced UnitOfWork. "
464 "Note that the type of the data and other information are "
465 "defined by the properties of MetricDefinition.") ]
466 string Value;
467 };
468
469
470 // ==================================================================
471 // StartedUoW
472 // ==================================================================
473 [Association, Version("2.6.0"),
474 Description (
475 "This association links a UnitOfWork (which is a 'started' "
476 "transaction) to its Definition.") ]
477 class CIM_StartedUoW : CIM_Dependency {
478
479 [Override ("Antecedent"),
480 Min (1), Max (1),
481 Description ("The Definition object for the UnitOfWork.") ]
482 CIM_UnitOfWorkDefinition REF Antecedent;
483
484 kumpf 1.2 [Override ("Dependent"),
485 Weak, Description (
486 "An instance of a UnitOfWork that has started executing.") ]
487 CIM_UnitOfWork REF Dependent;
488 };
489
490
491 // ==================================================================
492 // LogicalElementUnitOfWorkDef
493 // ==================================================================
494 [Association, Version("2.6.0"),
495 Description (
496 "This association links a LogicalElement to the UnitsOfWork "
497 "that it can perform. For example, a Printer Device may have "
498 "associated UnitOfWorkDefinitions representing PrintJobs. "
499 "This is a Dependency relationship since the Definitions are "
500 "given context by the LogicalElement.") ]
501 class CIM_LogicalElementUnitOfWorkDef : CIM_Dependency {
502
503 [Override ("Antecedent"),
504 Description (
505 kumpf 1.2 "The LogicalElement that is providing the UnitOfWork.") ]
506 CIM_LogicalElement REF Antecedent;
507
508 [Override ("Dependent"),
509 Description (
510 "The UnitOfWorkDefinition associated with the "
511 "LogicalElement.") ]
512 CIM_UnitOfWorkDefinition REF Dependent;
513 };
514
515
516 // ==================================================================
517 // SubUoWDef
518 // ==================================================================
519 [Association, Version("2.6.0"),
520 Description (
521 "This association defines the sub-UnitsOfWork (the sub-"
522 "transactions) for a particular UnitOfWorkDefinition. For "
523 "example, an 'AddOrder' UnitOfWork could have sub-Units of "
524 "'ValidateCustomer', 'ValidatePartNumber', 'UpdateDatabase', "
525 "etc. This is a Dependency relationship since the sub-UnitsOf"
526 kumpf 1.2 "Work are put in context relative to the parent Unit. It is "
527 "not an aggregation relationship - since (using another "
528 "example) a 'DatabaseWrite' transaction is likely to be "
529 "dependent upon a 'DiskWrite', but the two transactions are "
530 "separate concepts and one is not 'contained' by the "
531 "other.") ]
532 class CIM_SubUoWDef : CIM_Dependency {
533
534 [Override ("Antecedent"),
535 Description ("The parent UnitOfWorkDefinition.") ]
536 CIM_UnitOfWorkDefinition REF Antecedent;
537
538 [Override ("Dependent"),
539 Description ("The sub-UnitOfWorkDefinition.") ]
540 CIM_UnitOfWorkDefinition REF Dependent;
541 };
542
543
544 // ==================================================================
545 // LogicalElementPerformsUoW
546 // ==================================================================
547 kumpf 1.2 [Association, Version("2.6.0"),
548 Description (
549 "This association identifies a specific execution of a UnitOf"
550 "Work with the specific LogicalElement that is performing/"
551 "has performed it. Where the LogicalElementUnitOfWorkDef "
552 "association describes what an Element can do, this "
553 "relationship describes what a particular Element is "
554 "doing or has done.") ]
555 class CIM_LogicalElementPerformsUoW : CIM_Dependency {
556
557 [Override ("Antecedent"),
558 Description (
559 "The LogicalElement performing the UnitOfWork.") ]
560 CIM_LogicalElement REF Antecedent;
561
562 [Override ("Dependent"),
563 Description ("The UnitOfWork being performed.") ]
564 CIM_UnitOfWork REF Dependent;
565 };
566
567 // ==================================================================
568 kumpf 1.2 // SubUoW
569 // ==================================================================
570 [Association, Version("2.6.0"),
571 Description (
572 "Similar to the SubUoWDef association (which describes the "
573 "relationship between definitional UnitsOfWork), this "
574 "association identifies the executional UnitOfWork "
575 "Dependencies. It associates executing/executed UnitsOfWork "
576 "with their parent Units. In most cases, the SubUoW reflects "
577 "the execution side of the relationship defined in SubUoWDef. "
578 "However, there may be cases where the SubUoWDef is not "
579 "defined, but for a particular UnitOfWork, the SubUoW "
580 "relationship is valid. Therefore, it is not a requirement "
581 "(but it is desirable) that there be a corresponding SubUoWDef "
582 "for each instance of SubUoW.") ]
583 class CIM_SubUoW : CIM_Dependency {
584
585 [Override ("Antecedent"), Max (1),
586 Description (
587 "The parent executing/executed UnitOfWork. On the execution "
588 "side, it is expected that a sub-Unit is associated with only "
589 kumpf 1.2 "one parent UnitOfWork.") ]
590 CIM_UnitOfWork REF Antecedent;
591
592 [Override ("Dependent"),
593 Description (
594 "The sub-UnitOfWork. On the execution side, it is expected "
595 "that a sub-Unit is associated with only one parent "
596 "UnitOfWork.") ]
597 CIM_UnitOfWork REF Dependent;
598 };
599
600
601 // ==================================================================
602 // UoWDefTraceLevelType
603 // ==================================================================
604 [Association, Version("2.7.0"),
605 Description (
606 "Refers to the refinement of the UnitOfWorkDefinition: the "
607 "trace level type. It is not required that a UnitOfWork be "
608 "associated to a TraceLevelType. But if it is associated, "
609 "only one Type can be specified for the Definition. In "
610 kumpf 1.2 "contrast, TraceLevelTypes can be reused for multiple "
611 "Definitions.") ]
612 class CIM_UoWDefTraceLevelType {
613
614 [Key, Max (1), Description (
615 "The trace level type description that is implemented by "
616 "the UnitOfWorkDefinition.") ]
617 CIM_TraceLevelType REF TraceLevelType;
618
619 [Key, Description (
620 "The UnitOfWorkDefinition which is refined by the instance "
621 "of TraceLevelType.") ]
622 CIM_UnitOfWorkDefinition REF UoWDefn;
623 };
624
625
626 // ===================================================================
627 // end of file
628 // ===================================================================
|