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