1 karl 1.1 // ===================================================================
2 // Title: System Processing 2.7
3 // Filename: System27_Processing.mof
4 // Version: 2.7.0
5 // Release: Preliminary
6 // Date: 09/20/02
7 // ===================================================================
8 // Copyright 2002 Distributed Management Task Force, Inc. (DMTF).
9 // All rights reserved.
10 // DMTF is a not-for-profit association of industry members dedicated
11 // to promoting enterprise and systems management and interoperability.
12 // DMTF specifications and documents may be reproduced for uses
13 // consistent with this purpose by members and non-members,
14 // provided that correct attribution is given.
15 // As DMTF specifications may be revised from time to time,
16 // the particular version and release date should always be noted.
17 //
18 // Implementation of certain elements of this standard or proposed
19 // standard may be subject to third party patent rights, including
20 // provisional patent rights (herein "patent rights"). DMTF makes
21 // no representations to users of the standard as to the existence
22 karl 1.1 // of such rights, and is not responsible to recognize, disclose, or
23 // identify any or all such third party patent right, owners or
24 // claimants, nor for any incomplete or inaccurate identification or
25 // disclosure of such rights, owners or claimants. DMTF shall have no
26 // liability to any party, in any manner or circumstance, under any
27 // legal theory whatsoever, for failure to recognize, disclose, or
28 // identify any such third party patent rights, or for such party's
29 // reliance on the standard or incorporation thereof in its product,
30 // protocols or testing procedures. DMTF shall have no liability to
31 // any party implementing such standard, whether such implementation
32 // is foreseeable or not, nor to any patent owner or claimant, and shall
33 // have no liability or responsibility for costs or losses incurred if
34 // a standard is withdrawn or modified after publication, and shall be
35 // indemnified and held harmless by any party implementing the
36 // standard from any and all claims of infringement by a patent owner
37 // for such implementations.
38 //
39 // For information about patents held by third-parties which have
40 // notified the DMTF that, in their opinion, such patent may relate to
41 // or impact implementations of DMTF standards, visit
42 // http://www.dmtf.org/about/policies/disclosures.php.
43 karl 1.1 // ===================================================================
44 // Description: The System Model defines system related management
45 // concepts. This file defines the specific concepts to
46 // manage processes, threads, and jobs.
47 //
48 // The object classes below are listed in an order that
49 // avoids forward references. Required objects, defined
50 // by other working groups, are omitted.
51 // ==================================================================
52 // Change Log for v2.7
53 // CR757 - Change the subclassing of Process, Thread and Job from
54 // LogicalElement to EnabledLogicalElement
55 // CR767 - Add the Compostion qualifer to OSProcess and ProcessThread
56 // CR768 - Add ScheduledJob
57 // - Update class description and all property descriptions of
58 // Job, and Add a new property ScheduledStartTime to Job
59 // - Add OwningJobElement
60 // - Add AffectedJobElement
61 // - Add ConcreteJob
62 // - Add ProcessOfJob
63 // CR875 - Clarify description of Process .KernelModeTime and
64 karl 1.1 // .UserModeTime
65 // ==================================================================
66
67 #pragma locale ("en_US")
68
69
70 // ===================================================================
71 // Process
72 // ===================================================================
73 [Version ("2.7.0"), Description (
74 "Each instance of the CIM_Process class represents a single "
75 "instance of a running program. A user of the OperatingSystem "
76 "will typically see a Process as an application or task. Within "
77 "an OperatingSystem, a Process is defined by a workspace of "
78 "memory resources and environmental settings that are allocated "
79 "to it. On a multitasking System, this workspace prevents "
80 "intrusion of resources by other Processes. Additionally, a "
81 "Process can execute as multiple Threads, all which run within "
82 "the same workspace.") ]
83 class CIM_Process : CIM_EnabledLogicalElement {
84 [Propagated("CIM_OperatingSystem.CSCreationClassName"),
85 karl 1.1 Key, MaxLen (256), Description (
86 "The scoping ComputerSystem's ""CreationClassName.") ]
87 string CSCreationClassName;
88
89 [Propagated("CIM_OperatingSystem.CSName"),
90 Key, MaxLen (256), Description (
91 "The scoping ComputerSystem's Name.") ]
92 string CSName;
93
94 [Propagated("CIM_OperatingSystem.CreationClassName"),
95 Key, MaxLen (256), Description (
96 "The scoping OperatingSystem's CreationClassName.") ]
97 string OSCreationClassName;
98
99 [Propagated("CIM_OperatingSystem.Name"),
100 Key, MaxLen (256), Description (
101 "The scoping OperatingSystem's Name.") ]
102 string OSName;
103
104 [Key, MaxLen (256), Description (
105 "CreationClassName indicates the name of the class or the "
106 karl 1.1 "subclass used in the creation of an instance. When used "
107 "with the other key properties of this class, this property "
108 "allows all instances of this class and its subclasses to "
109 "be uniquely identified.") ]
110 string CreationClassName;
111
112 [Key, MaxLen (256), Description (
113 "A string used to identify the Process. A Process ID is a "
114 "kind of Process Handle."),
115 MappingStrings {"MIF.DMTF|Process Information|001.1"} ]
116 string Handle;
117
118 [Override ("Name"), Description (
119 "The name of the process."),
120 MappingStrings {"MIF.DMTF|Process Information|001.6"} ]
121 string Name;
122
123 [Description (
124 "Priority indicates the urgency or importance of execution "
125 "of a Process. If a priority is not defined for a Process, "
126 "a value of 0 should be used."),
127 karl 1.1 MappingStrings {"MIF.DMTF|Process Information|001.10"} ]
128 uint32 Priority;
129
130 [Description (
131 "Indicates the current operating condition of the Process. "
132 "Values include ready (2), running (3), and blocked (4), "
133 "among others."),
134 ValueMap {"0", "1", "2", "3", "4", "5", "6", "7", "8", "9"},
135 Values {"Unknown", "Other", "Ready", "Running",
136 "Blocked", "Suspended Blocked", "Suspended Ready",
137 "Terminated", "Stopped", "Growing" },
138 MappingStrings {"MIF.DMTF|Process Information|001.9",
139 "MIF.UNIX|Process Information|13.9"} ]
140 uint16 ExecutionState;
141
142 [Description (
143 "A string describing the state - used when the instance's "
144 "ExecutionState property is set to 1 (\"Other\"). Other"
145 "ExecutionDescription should be set to NULL when the Execution"
146 "State property is any value other than 1.") ]
147 string OtherExecutionDescription;
148 karl 1.1
149 [Description (
150 "Time that the Process began executing.") ]
151 datetime CreationDate;
152
153 [Description (
154 "Time that the Process was stopped or terminated.") ]
155 datetime TerminationDate;
156
157 [Description (
158 "Time in kernel mode, in milliseconds. If this information "
159 "is not available, or if the operating system does not "
160 "distinguish between time in kernel and in user mode, "
161 "a value of 0 should be used."),
162 Units("MilliSeconds"),
163 MappingStrings {"MIF.DMTF|Process Information|001.13"} ]
164 uint64 KernelModeTime;
165
166 [Description (
167 "Time in user mode, in milliseconds. If this information "
168 "is not available, a value of 0 should be used. "
169 karl 1.1 "If the operating system does not distinguish between "
170 "time in kernel mode and user mode, the time should be "
171 "returned in this property."),
172 Units("MilliSeconds"),
173 MappingStrings {"MIF.DMTF|Process Information|001.14"} ]
174 uint64 UserModeTime;
175
176 [Gauge, Description (
177 "The amount of memory in bytes that a Process needs to "
178 "execute efficiently, for an OperatingSystem that uses "
179 "page-based memory management. If an insufficient amount "
180 "of memory is available (< working set size), thrashing "
181 "will occur. If this information is not known, NULL or 0 "
182 "should be entered. If this data is provided, it could be "
183 "monitored to understand a Process' changing memory "
184 "requirements as execution proceeds."),
185 Units ("Bytes") ]
186 uint64 WorkingSetSize;
187 };
188
189
190 karl 1.1 // ===================================================================
191 // OSProcess
192 // ===================================================================
193 [Association, Aggregation, Composition, Version ("2.7.0"), Description (
194 "A link between the OperatingSystem and Process(es) running "
195 "in the context of this OperatingSystem.") ]
196 class CIM_OSProcess : CIM_Component {
197
198 [Override ("GroupComponent"), Aggregate, Min (1), Max (1),
199 Description ("The OperatingSystem.") ]
200 CIM_OperatingSystem REF GroupComponent;
201
202 [Override ("PartComponent"), Weak, Description (
203 "The Process running in the context of the "
204 "OperatingSystem.") ]
205 CIM_Process REF PartComponent;
206 };
207
208
209 // ===================================================================
210 // ProcessExecutable
211 karl 1.1 // ===================================================================
212 [Association, Version ("2.6.0"), Description (
213 "A link between a Process and a DataFile indicating that the "
214 "File participates in the execution of the Process.") ]
215 class CIM_ProcessExecutable : CIM_Dependency {
216
217 [Override ("Antecedent"), Description (
218 "The DataFile participating in the execution of the Process.") ]
219 CIM_DataFile REF Antecedent;
220
221 [Override ("Dependent"), Description (
222 "The Process.") ]
223 CIM_Process REF Dependent;
224 };
225
226
227 // ==================================================================
228 // ServiceProcess
229 // ==================================================================
230 [Association, Version ("2.6.0"), Description (
231 "CIM_ServiceProcess is an association used to establish "
232 karl 1.1 "relationships between Services and Processes. "
233 "It is used to indicate if a Service is running in a particular "
234 "Process. It is also used to indicate, via the ExecutionType "
235 "property, if the Service started and is wholly responsible for "
236 "the Process, or if the Service is running in an existing "
237 "Process, perhaps with other unrelated Services, which is owned "
238 "or started by a different entity. This association relates "
239 "a Service with an externally visible system signature. ") ]
240 class CIM_ServiceProcess {
241
242 [Key, Description (
243 "The Service whose Process is described by this "
244 "association.") ]
245 CIM_Service REF Service;
246
247 [Key, Description (
248 "The Process which represents or hosts the executing "
249 "Service. " ) ]
250 CIM_Process REF Process;
251
252 [Description (
253 karl 1.1 "Enumeration indicating how the Service runs in the context "
254 "of, or owns the Process. \"Unknown\" indicates that the "
255 "ExecutionType is not known. \"Other\" indicates that the "
256 "ExecutionType does not match any of the values in the "
257 "ExecutionType enumeration. \"Executes in Existing Process\" "
258 "indicates that the Service is hosted in a Process that "
259 "already exists in the system. The lifecycle of the "
260 "Service is separate from that of the Process. "
261 "\"Exeutes as Independent Process\" indicates that the "
262 "Service is responsible for the lifecycle of the Process. "
263 "When the Service is started, the Process is created. "
264 "For example, ServletEngines can run \"InProcess\" "
265 "within the existing Apache processes or \"OutOfProcess\" in "
266 "its own servlet engine process. In this case the Apache "
267 "process would communicate with the servlet engine process "
268 "based on the content of the request. The association may "
269 "be many to many." ),
270 ValueMap {"0", "1", "2", "3"},
271 Values {"Unknown", "Other", "Executes in Existing Process",
272 "Executes as Independent Process" } ]
273 uint16 ExecutionType;
274 karl 1.1 };
275
276 // ===================================================================
277 // Thread
278 // ===================================================================
279 [Version ("2.7.0"), Description (
280 "Threads represent the ability to execute units of a Process "
281 "or task in parallel. A Process can have many Threads, each "
282 "of which is weak to the Process.") ]
283 class CIM_Thread : CIM_EnabledLogicalElement {
284
285 [Propagated("CIM_Process.CSCreationClassName"),
286 Key, MaxLen (256), Description (
287 "The scoping ComputerSystem's CreationClassName.") ]
288 string CSCreationClassName;
289
290 [Propagated("CIM_Process.CSName"),
291 Key, MaxLen (256), Description (
292 "The scoping ComputerSystem's Name.") ]
293 string CSName;
294
295 karl 1.1 [Propagated("CIM_Process.OSCreationClassName"),
296 Key, MaxLen (256), Description (
297 "The scoping OperatingSystem's CreationClassName.") ]
298 string OSCreationClassName;
299
300 [Propagated("CIM_Process.OSName"),
301 Key, MaxLen (256), Description (
302 "The scoping OperatingSystem's Name.") ]
303 string OSName;
304
305 [Propagated("CIM_Process.CreationClassName"),
306 Key, MaxLen (256), Description (
307 "The scoping Process' CreationClassName.") ]
308 string ProcessCreationClassName;
309
310 [Propagated("CIM_Process.Handle"),
311 Key, MaxLen (256), Description (
312 "The scoping Process' Handle.") ]
313 string ProcessHandle;
314
315 [Key, MaxLen(256), Description (
316 karl 1.1 "CreationClassName indicates the name of the class or the "
317 "subclass used in the creation of an instance. When used "
318 "with the other key properties of this class, this property "
319 "allow all instances of this class and its subclasses to "
320 "be uniquely identified.") ]
321 string CreationClassName;
322
323 [Key, MaxLen(256),
324 Description ("A string used to identify the Thread.") ]
325 string Handle;
326
327 [Description (
328 "Priority indicates the urgency or importance of execution "
329 "of a Thread. A Thread may have a different priority than "
330 "its owning Process. If this information is not available "
331 "for a Thread, a value of 0 should be used.") ]
332 uint32 Priority;
333
334 [Description (
335 "Indicates the current operating condition of the Thread. "
336 "Values include ready (2), running (3), and blocked (4), "
337 karl 1.1 "among others."),
338 ValueMap {"0", "1", "2", "3", "4", "5", "6"},
339 Values {"Unknown", "Other", "Ready", "Running",
340 "Blocked", "Suspended Blocked", "Suspended Ready"} ]
341 uint16 ExecutionState;
342
343 [Description (
344 "Time in kernel mode, in milliseconds. If this information "
345 "is not available, a value of 0 should be used."),
346 Units("MilliSeconds") ]
347 uint64 KernelModeTime;
348
349 [Description (
350 "Time in user mode, in milliseconds. If this information is "
351 "not available, a value of 0 should be used."),
352 Units("MilliSeconds") ]
353 uint64 UserModeTime;
354 };
355
356
357 // ===================================================================
358 karl 1.1 // ProcessThread
359 // ===================================================================
360 [Association, Aggregation, Composition, Version ("2.7.0"), Description (
361 "A link between a Process and the Thread(s) running in the "
362 "context of this Process.") ]
363 class CIM_ProcessThread : CIM_Component {
364
365 [Override ("GroupComponent"), Aggregate, Min (1), Max (1),
366 Description ("The Process.") ]
367 CIM_Process REF GroupComponent;
368
369 [Override ("PartComponent"), Weak,
370 Description (
371 "The Thread running in the context of the Process.") ]
372 CIM_Thread REF PartComponent;
373 };
374
375
376 // ===================================================================
377 // ScheduledJob
378 // ===================================================================
379 karl 1.1 [Abstract, Experimental, Version ("2.7.0"), Description (
380 "A ScheduledJob is a subclass of ScopedSettingData, representing "
381 "the scheduling information for a recurring CIM_Job. This is a "
382 "subclass of ScopedSettingData since the context for the scheduler "
383 "is important. The setting information should be defined in the "
384 "context of a System - for example, a ComputerSystem or "
385 "AdminDomain. This provides context for how the scheduling data "
386 "is evaluated and acted upon. Note that when the Job is "
387 "executed, CIM_Job should be related to its scheduling data using "
388 "the association, ElementSettingData. When instantiating the "
389 "association, the IsCurrent property MUST be set to 1 "
390 "\"Is Current\".") ]
391 class CIM_ScheduledJob : CIM_ScopedSettingData {
392
393 [Write, Description (
394 "The time that the ScheduledJob should start. This may "
395 "be represented by an actual date and time, or an interval "
396 "relative to the time that this property is requested. A value "
397 "of all zeroes indicates that the Job should not be scheduled."),
398 ModelCorrespondence {"CIM_Job.ScheduledStartTime"} ]
399 datetime ScheduledStartTime;
400 karl 1.1
401 [Write, Description (
402 "The length (represented as a time interval) of "
403 "time between scheduled starts. For example, if Scheduled"
404 "StartTime indicates 8 pm, this property defines the intervals "
405 "between executions - once (value of all zeroes), daily, "
406 "weekly, monthly, etc.") ]
407 datetime ReoccuringElapsedTime;
408
409 [Write, Description (
410 "The setting for a Job's UntilTime - the time after which an "
411 "executing Job should be stopped or not be allowed to proceed. "
412 "This may be represented by an actual date and time, or an "
413 "interval relative to the ScheduledStartTime."),
414 ModelCorrespondence {"CIM_Job.UntilTime"} ]
415 datetime UntilTime;
416
417 [Write, Description (
418 "The setting for a Job's Notify property - the user/email "
419 "to be notified upon a scheduled Job's completion or failure."),
420 ModelCorrespondence {"CIM_Job.Notify"} ]
421 karl 1.1 string Notify;
422
423 [Write, Description (
424 "The setting for a Job's Owner property - the user, service "
425 "method, etc. that defined this setting data and causes the "
426 "Job to be created."),
427 ModelCorrespondence {"CIM_Job.Owner"} ]
428 string Owner;
429
430 [Write, Description (
431 "Indicates the urgency or importance of execution of the "
432 "Job, when it is scheduled. The lower the number, the "
433 "higher the priority."),
434 ModelCorrespondence {"CIM_Job.Priority"} ]
435 uint32 Priority;
436
437 [Write, Description (
438 "Indicates whether or not the scheduled Job should be "
439 "automatically deleted upon completion."),
440 ModelCorrespondence {"CIM_Job.DeleteOnCompletion"} ]
441 boolean DeleteOnCompletion;
442 karl 1.1 };
443
444
445 // ===================================================================
446 // Job
447 // ===================================================================
448 [Abstract, Version ("2.7.0"), Description (
449 "A Job is a LogicalElement representing an executing unit of work, "
450 "such as a script or a print job. A Job is distinct from a Process "
451 "in that a Job can be scheduled, queued, and its execution is not "
452 "limited to a single system.") ]
453 class CIM_Job : CIM_LogicalElement {
454
455 [Description (
456 "A free form string representing the Job's status. "
457 "The primary status is reflected in the inherited "
458 "OperationalStatus property. JobStatus provides additional, "
459 "implementation-specific details."),
460 ModelCorrespondence {
461 "ManagedSystemElement.OperationalStatus"} ]
462 string JobStatus;
463 karl 1.1
464 [Description (
465 "The time that the Job was submitted to execute. A value of all "
466 "zeroes indicates that the owning element is not capable of "
467 "reporting a date and time. Therefore, the ScheduledStartTime "
468 "and StartTime are reported as intervals relative to the time "
469 "their values are requested.") ]
470 datetime TimeSubmitted;
471
472 [Experimental, Write, Description (
473 "The time that the current Job is scheduled to start. This may "
474 "be represented by the actual date and time, or an interval "
475 "relative to the time that this property is requested. A value "
476 "of all zeroes indicates that the Job is already executing.") ]
477 datetime ScheduledStartTime;
478
479 [Description (
480 "The time that the Job was actually started. This "
481 "may be represented by an actual date and time, or by an "
482 "interval relative to the time that this property is requested.") ]
483 datetime StartTime;
484 karl 1.1
485 [Description (
486 "The time interval that the Job has been executing or the "
487 "total execution time if the Job is complete.") ]
488 datetime ElapsedTime;
489
490 [Write, Description (
491 "The time after which the Job is invalid or should be "
492 "stopped. This may be represented by an actual date and time, "
493 "or by an interval relative to the time that this property is "
494 "requested. A value of all nines indicates that the Job "
495 "can run indefinitely.") ]
496 datetime UntilTime;
497
498 [Write, Description (
499 "User to be notified upon the Job completion or failure.") ]
500 string Notify;
501
502 [Description (
503 "The User that submitted the Job or the Service/method name/etc. "
504 "that caused the job to be created."),
505 karl 1.1 ModelCorrespondence {"CIM_OwningJobElement"} ]
506 string Owner;
507
508 [Write, Description (
509 "Indicates the urgency or importance of execution of the "
510 "Job. The lower the number, the higher the priority.") ]
511 uint32 Priority;
512
513 [Experimental, Description (
514 "The percentage of the job that has completed at the time "
515 "that this value is requested. "),
516 MaxValue (101), MinValue (0), Units ("Percent") ]
517 uint16 PercentComplete;
518
519 [Experimental, Write, Description (
520 "Indicates whether or not the job should be automatically "
521 "deleted upon completion. If this property is set to false"
522 "and the job completes, then the extrinsic method DeleteInstance"
523 "MUST be used to delete the job versus updating this property.") ]
524 boolean DeleteOnCompletion;
525
526 karl 1.1 [Experimental, Description (
527 "A vendor specific error code. This will be set to zero "
528 "if the job completed without error."),
529 ModelCorrespondence {"CIM_Job.ErrorDescription"} ]
530 uint16 ErrorCode;
531
532 [Experimental, Description (
533 "A free form string containing the vendor error "
534 "description."),
535 ModelCorrespondence {"CIM_Job.ErrorCode"} ]
536 string ErrorDescription;
537
538 [Experimental, Description (
539 "A method to kill this job and any underlying processes, and "
540 "to remove any 'dangling' associations."),
541 ValueMap {"0", "1", "2", "3", "4", "6", "7",
542 "0x0008..0x7777", "0x8000.."},
543 Values {"Success", "Not Supported", "Unknown", "Timeout",
544 "Failed", "Access Denied", "Not Found", "DMTF Reserved",
545 "Vendor Specific"} ]
546 uint32 KillJob(
547 karl 1.1 [IN, Description ("Indicates whether or not the Job "
548 "should be automatically deleted upon termination. "
549 "This parameter takes precedence over the property, "
550 "DeleteOnCompletion.") ]
551 boolean DeleteOnKill);
552 };
553
554
555 // ===================================================================
556 // OwningJobElement
557 // ===================================================================
558 [Association, Experimental, Version ("2.7.0"), Description (
559 "OwningJobElement represents an association between a Job and the "
560 "ManagedElement responsible for the creation of the Job. This "
561 "association may not be possible, given that the execution of "
562 "jobs can move between systems and that the lifecycle of the "
563 "creating entity may not persist for the total duration of the "
564 "job. However, this can be very useful information when "
565 "available. This association defines a more specific 'owner' "
566 "than is provided by the CIM_Job.Owner string." ),
567 ModelCorrespondence {"CIM_Job.Owner"} ]
568 karl 1.1 class CIM_OwningJobElement {
569
570 [Key, Max(1), Description (
571 "The ManagedElement responsible for the creation of the "
572 "Job.") ]
573 CIM_ManagedElement REF OwningElement;
574
575 [Key, Description (
576 "The Job created by the ManagedElement.") ]
577 CIM_Job REF OwnedElement;
578 };
579
580
581 // ===================================================================
582 // AffectedJobElement
583 // ===================================================================
584 [Association, Experimental, Version ("2.7.0"), Description (
585 "AffectedJobElement represents an association between a Job and "
586 "the ManagedElement(s) that may be affected by its execution. "
587 "It may not be feasible for the Job to describe all of "
588 "the affected elements. The main purpose of this association is "
589 karl 1.1 "to provide information when a Job requires exclusive use "
590 "of the 'affected' ManagedElment(s) or when describing that side "
591 "effects may result. ") ]
592 class CIM_AffectedJobElement {
593
594 [Key, Description (
595 "The ManagedElement affected by the execution of the Job.") ]
596 CIM_ManagedElement REF AffectedElement;
597
598 [Key, Description (
599 "The Job that is affecting the ManagedElement.") ]
600 CIM_Job REF AffectingElement;
601
602 [Description (
603 "An enumeration describing the 'effect' on the "
604 "ManagedElement. This array corresponds to the "
605 "OtherElementEffectsDescriptions array, where the "
606 "latter provides details related to the high-level "
607 "'effects' enumerated by this property. Additional "
608 "detail is required if the ElementEffects array contains "
609 "the value 1, \"Other\"."),
610 karl 1.1 ArrayType ("Indexed"),
611 ValueMap {"0", "1", "2", "3", "4"},
612 Values {"Unknown", "Other", "Exclusive Use", "Performance Impact",
613 "Element Integrity"},
614 ModelCorrespondence {
615 "CIM_AffectedJobElement.OtherElementEffectsDescriptions"}]
616 uint16 ElementEffects[];
617
618 [Description (
619 "Provides details for the 'effect' at the corresponding array "
620 "position in ElementEffects. This information is required "
621 "whenever ElementEffects contains the value 1 (\"Other\")."),
622 ArrayType ("Indexed"),
623 ModelCorrespondence {"CIM_AffectedJobElement.ElementEffects"}]
624 string OtherElementEffectsDescriptions[];
625 };
626
627
628 // ===================================================================
629 // ConcreteJob
630 // ===================================================================
631 karl 1.1 [Experimental, Version("2.7.0"), Description (
632 "A concrete version of Job. This class represents a generic and "
633 "instantiable unit of work, such as a batch or a print job.") ]
634 class CIM_ConcreteJob : CIM_Job {
635
636 [Key, Description (
637 "InstanceID opaquely identifies a unique instance of "
638 "ConcreteJob. The InstanceID must be unique within a "
639 "namespace. In order to ensure uniqueness, the value of "
640 "InstanceID SHOULD be constructed in the following manner: \n"
641 "<Vendor ID><ID> \n"
642 " <Vendor ID> MUST include a copyrighted, trademarked "
643 "or otherwise unique name that is owned by the business "
644 "entity or a registered ID that is assigned to the business "
645 "entity that is defining the InstanceID. (This is similar to "
646 "the <Schema Name>_<Class Name> structure of Schema class "
647 "names.) The purpose of <Vendor ID> is to ensure that <ID> "
648 "is truly unique across multiple vendor implementations. "
649 "If such a name is not used, the defining entity MUST assure "
650 "that the <ID> portion of the Instance ID is unique when "
651 "compared with other instance providers. For DMTF defined "
652 karl 1.1 "instances, the <Vendor ID> is 'CIM'. \n"
653 " <ID> MUST include a vendor specified unique "
654 "identifier.") ]
655 string InstanceID;
656
657 [Override ("Name"), Required, Description (
658 "The user friendly name for this instance of Job. "
659 "In addition, the user friendly name can be used as a "
660 "property for a search or query. (Note: Name "
661 "does not have to be unique within a namespace.)") ]
662 string Name;
663 };
664
665
666 // ===================================================================
667 // ProcessOfJob
668 // ===================================================================
669 [Association, Aggregation, Composition, Experimental,
670 Version ("2.7.0"), Description (
671 "ProcessOfJob describes that the referenced Process is the "
672 "result of the execution of the Job. A Job may cause "
673 karl 1.1 "multiple Processes to run, perhaps on different operating "
674 "systems. This is allowed by the '*' cardinality of the "
675 "Process reference. Note that a Process can result from "
676 "only one Job - hence, the '0..1' cardinality on Job.") ]
677 class CIM_ProcessOfJob : CIM_Component {
678
679 [Override ("GroupComponent"), Aggregate, Description (
680 "Execution of the Job results in the creation of the Process "
681 "referenced as PartComponent. The Job aggregates the "
682 "Process(es) that are created when it is executed.") ]
683 CIM_Job REF GroupComponent;
684
685 [Override ("PartComponent"), Description (
686 "The Process that results from the execution of the Job.") ]
687 CIM_Process REF PartComponent;
688 };
689
690
691 // ===================================================================
692 // JobDestination
693 // ===================================================================
694 karl 1.1 [Version ("2.6.0"), Description (
695 "JobDestination is a LogicalElement representing where a Job "
696 "is submitted for processing. It can refer to a queue that "
697 "contains zero or more Jobs, such as a print queue containing "
698 "print Jobs. JobDestinations are hosted on Systems, similar to "
699 "the way that Services are hosted on Systems.") ]
700 class CIM_JobDestination : CIM_LogicalElement {
701
702 [Propagated ("CIM_System.CreationClassName"),
703 Key, MaxLen (256), Description (
704 "The scoping System's CreationClassName.") ]
705 string SystemCreationClassName;
706
707 [Propagated ("CIM_System.Name"),
708 Key, MaxLen (256), Description (
709 "The scoping System's Name.") ]
710 string SystemName;
711
712 [Key, MaxLen (256), Description (
713 "CreationClassName indicates the name of the class or the "
714 "subclass used in the creation of an instance. When used "
715 karl 1.1 "with the other key properties of this class, this property "
716 "allows all instances of this class and its subclasses to "
717 "be uniquely identified.") ]
718 string CreationClassName;
719
720 [Override ("Name"), Key, MaxLen (256), Description (
721 "The inherited Name serves as key of a JobDestination "
722 "instance in a System.") ]
723 string Name;
724 };
725
726
727 // ===================================================================
728 // HostedJobDestination
729 // ===================================================================
730 [Association, Version ("2.6.0"), Description (
731 "An association between a JobDestination and a System on "
732 "which it resides. The cardinality of this association is "
733 "1-to-many. A System may host many Job queues. Job"
734 "Destinations are weak with respect to their hosting System. "
735 "Heuristic: A JobDestination is hosted on the System where the "
736 karl 1.1 "LogicalDevices, SoftwareFeatures or Services that implement/"
737 "provide the JobDestination are located.") ]
738 class CIM_HostedJobDestination : CIM_Dependency {
739
740 [Override ("Antecedent"), Min (1), Max (1), Description (
741 "The hosting System.") ]
742 CIM_System REF Antecedent;
743
744 [Override ("Dependent"), Weak, Description (
745 "The JobDestination hosted on the System.") ]
746 CIM_JobDestination REF Dependent;
747 };
748
749
750 // ===================================================================
751 // JobDestinationJobs
752 // ===================================================================
753 [Association, Version ("2.6.0"), Description (
754 "An association describing where a Job is submitted for "
755 "processing, ie to which JobDestination.") ]
756 class CIM_JobDestinationJobs : CIM_Dependency {
757 karl 1.1
758 [Override ("Antecedent"), Max (1), Description (
759 "The JobDestination, possibly a queue.") ]
760 CIM_JobDestination REF Antecedent;
761
762 [Override ("Dependent"),
763 Description ("The Job that is in the Job queue/Destination.") ]
764 CIM_Job REF Dependent;
765 };
766
767
768 // ===================================================================
769 // end of file
770 // ===================================================================
|