semi合集-English.pdf - 第2698页

SEMI E97-0200A © SEMI 2000 18 const string JobLifecycleSubject = “/JobSupervision/JobSupervisor/JobLifecycle”; /* The use of “name” h ere (and i n all other ev e nts) indicates the s tring value for the n a me or identif…

100%1 / 7923
SEMI E97-0200A © SEMI 200017
Description: The JobSupervisor manages all the Jobs being performed by the component which
implements it. It receives the requests for work, facilitates the creation of a Job for the
task and returns (a reference to) that Job.
A JobSupervisor will have a well defined domain which it can call on to perform work.
These may be CIM Framework Resources if it delegates the work, or internal resources if
it performs the work itself. Only activity requests which can be accomplished within the
domain of a JobSupervisor should be issued to/accepted by that JobSupervisor.
Jobs, as subtypes of NamedEntity, are named by the JobSupervisor in such a way that
their name attribute may be used to query for the Job. Jobs from different JobSupervisors
may have the same name.
The definition of the work to be performed is the JobSpecification, a sequence of
name/value pairs (see “Properties” definition). Specializations of Job Supervision may
require certain properties in the JobSpecification. Some commonly useful properties are
defined in the following table. When possible, specializations should reuse these
definitions. Specializations should also document the allowable and mandatory properties
that are supported. See Job definition for more information.
interface JobSupervisor : Resource {
Type Definitions:
/* Type for returning results of Job execution. */
typedef Global::NameValueSequence Results;
JobSpecification Properties:
Name Value Type Description
“JobType” string The kind of Job to run. This is useful when a JobSupervisor can initiate more than one
type of Job. String values reserved for this property are:
ProductRequestJobType,
LotJobType,
AreaJobType,
ProcessMachineJobType,
TransportJobType,
PMJobType,
ControlStrategyJobType,
AlgorithmJobType.
“Priority” long Integer value, ranges from 1 to 99, where 1 is the highest priority and 99 is the lowest.
“Deadline” TimeStamp The Job is expected to be completed no later than the specified value of the Deadline.
Exceptions:
/* Requested Job was rejected. */
exception JobRejectedSignal {
string errorMessage; };
/* Requested Job was not found */
exception JobNotFoundSignal {
string errorMessage;
string missingJobName; };
Published Events:
/* Provide lifecycle event for tracking */
SEMI E97-0200A © SEMI 2000 18
const string JobLifecycleSubject =
“/JobSupervision/JobSupervisor/JobLifecycle”;
/* The use of “name” here (and in all other events) indicates the string value for the name or identifier of the Job to
which the event refers. Since filtering does not support object reference comparisons, the filtering must be on the
“name” of the object. */
struct JobLifecycleFilters {
Global::Property name;
Global::Property lifecycle;
};
JobLifecycleFilters Properties:
Name Value Type Description
“Name” string The name of the Job.
“Lifecycle” Global::LifecycleState New lifecycle state.
struct JobLifecycleEvent {
string eventSubject;
Global::TimeStamp eventTimeStamp;
JobLifecycleFilters eventFilterData;
Global::Properties eventNews;
Job aJob; // on Delete, aJob is nil
};
Provided Services:
/* Request that work be done according to the referred specification. A Job which represents the work is returned for
future reference. The post-condition for this operation is the specified Job successfully created. */
Job requestJob (
in Global::Properties aJobSpecification,
in JobRequestor aJobRequestor)
raises (Global::FrameworkErrorSignal,
JobRejectedSignal);
/* Request that work be done according to the Job specification. This operation blocks until the Job completes.
Results generated by the Job are returned. The post-condition for this operation is a successful execution of the
specified Job. This interface offers a lightweight alternative to requestJob that does not require that requestors
support the JobRequestor interfaces (e.g., informJobStateChange operation). A Job may or may not be created by
runJob, but if created, the Job may be accessed with the Job query operations of JobSupervisor. */
Results runJob (
in Global::Properties aJobSpecification)
raises (Global::FrameworkErrorSignal,
JobRejectedSignal);
/* Ask whether the Job specified by the JobSpecification would be accepted for current or future (queued)
processing if a requestJob or runJob message were issued now. */
boolean canPerform (in Properties aJobSpecification)
raises (Global::FrameworkErrorSignal);
/* Command to begin the pausing of all Jobs of this JobSupervisor which can be paused (e.g. Jobs that have not
reached the Finished state). */
void pauseAllJobs ()
raises (Global::FrameworkErrorSignal);
/* Command to “resume” all Jobs of this JobSupervisor which are currently Paused. */
SEMI E97-0200A © SEMI 200019
void resumeAllJobs ()
raises (Global::FrameworkErrorSignal);
/* This command aborts all the Jobs under the control of the JobSupervisor immediately, without regard to the
impact of abruptly halting the Job. This service should be used with great caution. It may result in irrevocable
change to factory or material state. */
void abortAllJobs ()
raises (Global::FrameworkErrorSignal);
/* This command stops all Jobs under control of the JobSupervisor, as quickly as possible. Stopping Jobs should not
result in damage to the factory or material being processed. */
void stopAllJobs ()
raises (Global::FrameworkErrorSignal);
/* This service removes a Job which is in the terminated state. If required, persistent information about the Job may
be captured in a history entry. Jobs may also be removed based on other archiving rules. */
void removeFinishedJob (in Job aJob)
raises (Global::FrameworkErrorSignal);
/* Find a Job by name. A Job is a NamedEntity */
Job findJobNamed (in string jobName)
raises (Global::FrameworkErrorSignal,
JobNotFoundSignal);
/* Find a queued Job by name. */
Job findQueuedJobNamed (in string jobName)
raises (Global::FrameworkErrorSignal,
JobNotFoundSignal);
/* Find an active Job by name. */
Job findActiveJobNamed (in string jobName)
raises (Global::FrameworkErrorSignal,
JobNotFoundSignal);
/* Find a canceled Job by name. */
Job findCanceledJobNamed (in string jobName)
raises (Global::FrameworkErrorSignal,
JobNotFoundSignal);
/* Find a finished Job by name. */
Job findFinishedJobNamed (in string jobName)
raises (Global::FrameworkErrorSignal,
JobNotFoundSignal);
/* Return all the specified Jobs. The JobSequence may be empty. */
JobSequence allJobs ()
raises (Global::FrameworkErrorSignal);
JobSequence allQueuedJobs ()
raises (Global::FrameworkErrorSignal);
JobSequence allCanceledJobs ()
raises (Global::FrameworkErrorSignal);