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