semi合集-English.pdf - 第2707页
SEMI E97-0200A © SEMI 2000 27 Table 4 Job State Transitions # Cur rent State Trigge r New State Action Comm ent 1 Non Existent Job crea tion. QUEUE D JobStateCha nged Event publishe d by the instance of Job None. 2 QUEUE…

SEMI E97-0200A © SEMI 2000 26
Table 3 Job State Definitions and Query Table
State Definition Query for State via
ABORTED In this state the Job has aborted execution. This is a
substate of Finished.
boolean isAborted(); sent to an instance of
Job; returns TRUE
JobSequence allFinishedJobs (); sent to
instance of JobSupervisor will provide some
indication.
ABORTING ABORTING represents an immediate termination of the
Job and activities not completed before the aborting will
be terminated. After ABORTING, execution is not
intended to continue.
boolean isAborting(); sent to an instance of
Job; returns TRUE
ACTIVE This is a parent state representing that the Job is
ACTIVE for the JobSupervisor; i.e., the current status of
the Job is tracked by the JobSupervisor when the Job is
in the ACTIVE state.
boolean isActive(); sent to an instance of Job;
returns TRUE.
JobSequence allActiveJobs (); or Job
findActiveJobNamed (in string jobName);
sent to instance of JobSupervisor.
CANCELED In this state the Job has been removed from the Queue
and will never become Active. This is a substate of
Finished.
boolean isCanceled(); sent to an instance of
Job; returns TRUE
COMPLETED This state represents that the Job has successfully
completed execution. This is a substate of Finished.
boolean isCompleted(); sent to an instance of
Job; returns TRUE.
Job findCompletedJobNamed (in string
jobName); sent to instance of JobSupervisor
JobSequence allFinishedJobs (); sent to
instance of JobSupervisor will provide some
indication.
EXECUTING This state represents that the Job is EXECUTING.
Specializations of Job will normally develop substates
representing the specialized Job execution behavior.
boolean isExecuting(); sent to an instance of
Job; returns TRUE.
PAUSE Parent state of PAUSING, PAUSED None.
PAUSED In this state the Job has paused execution. boolean isPaused(); sent to an instance of Job;
returns TRUE.
PAUSING In this state the Job is being paused by the executor of
the Job. Execution is intended to continue.
boolean isPausing(); sent to an instance of
Job; returns TRUE.
QUEUED In this state the Job is waiting to become active. boolean isQueued(); sent to an instance of
Job; returns TRUE. JobSequence
allQueuedJobs (); or Job
findQueuedJobNamed (in string jobName);
sent to instance of JobSupervisor.
STOPPED In this state the Job has stopped execution. This is a
substate of Finished.
boolean isStopped(); sent to an instance of
Job; returns TRUE.
JobSequence allFinishedManagedJobs (); sent
to instance of JobSupervisor will provide
some indication.
STOPPING In this state the Job is being stopped. Execution is not
intended to continue.
STOPPING represents an ordered termination of the Job
Activities. Job Activities not completed before stopping
may or may not be performed, depending on the
implementation.
boolean isStopping(); sent to an instance of
Job; returns TRUE.
FINISHED This is a parent state representing that the Job has
finished execution, through either successful execution,
abort, or stop. This is the superstate of Completed,
Aborted, Stopped, and Canceled.
boolean isFinished(); sent to an instance of
Job; returns TRUE.
JobSequence allFinishedJobs (); sent to
instance of JobSupervisor.

SEMI E97-0200A © SEMI 200027
Table 4 Job State Transitions
# Current State Trigger New State Action Comment
1 Non Existent Job creation. QUEUED JobStateChanged Event
published by the instance of Job
None.
2 QUEUED Internal to component. EXECUTING JobStateChanged Event
published by the instance of Job
Job has started.
3 EXECUTING void makePaused ( );
sent to the Job; or void
PauseAllJobs ( ); sent to
an instance of
JobSupervisor.
PAUSING JobStateChanged Event
published by the instance of Job
Job has been told to
pause.
4 PAUSING Internal to component PAUSED JobStateChanged Event
published by the instance of Job
Job has completed
PAUSING activities.
Wait for resume.
5 PAUSED void makeExecuting ( );
sent to the Job or void
resumeAllJobs (); sent
to an instance of
JobSupervisor.
EXECUTING JobStateChanged Event
published by the instance of Job
Restart EXECUTING
from the point
PAUSED at.
6 EXECUTING Internal to component COMPLETED Execution of the Job was
successful or completed
normally.
None.
7 EXECUTING void makeAborted ( );
sent the Job or void
abortAllJobs ( ); sent to
the JobSupervisor.
ABORTING Execution of the Job stops
immediately. Product or Job
will be unfinished.
None.
8 PAUSE void makeAborted ( );
sent the Job or void
abortAllJobs ( ); sent to
the JobSupervisor.
ABORTING Active Job is aborted
immediately.
None.
9 ABORTING Internal to component ABORTED JobStateChanged Event
published by the instance of Job
Job has completed
aborting activities.
10 STOPPING void makeAborted ( );
sent the Job or void
abortAllJobs ( ); sent to
the JobSupervisor.
ABORTING JobStateChanged Event
published by the instance of Job
None.
11 PAUSE void makeStopped( );
sent to the Job or void
stopAllJobs( ); sent to
the JobSupervisor.
STOPPING JobStateChanged Event
published by the instance of Job
None.
12 STOPPING Internal to component STOPPED JobStateChanged Event
published by the instance of Job
Job has completed
stopping activities.
13 EXECUTING void makeStopped( );
sent to the Job or void
stopAllJobs( ); sent to
the JobSupervisor.
STOPPING JobStateChanged Event
published by the instance of Job
None.
14 QUEUED void makeCanceled( );
sent to the Job.
CANCELED JobStateChanged Event
published by the instance of Job
Job has been canceled
before starting
execution. It cannot
be restarted.
15 FINISHED void removeFinished-
Job (in Job aJob); sent
to an instance of
JobSupervisor.
Non Existent JobStateChanged Event
published by the instance of Job
Job has been removed
from the finished
queue.

SEMI E97-0200A © SEMI 2000 28
6.6.4 JobRequestor Interface
Module: AbstractIF
Interface: JobRequestor
Inherited Interface: Implementation Dependent
Description: In order to request work of a JobSupervisor using the requestJob operation, a component
must implement the JobRequestor interface. This is a companion interface to
JobSupervisor. The JobRequestor may also subscribe to the state change events of the
Job, if more detail is required.
interface JobRequestor {
Exceptions: None.
Published Events: None.
Provided Services:
/* The Job has transitioned to a new state. Required for transition to Executing from Queued and for any transition
to a Finished sub-state. This operation is in addition to the required JobStateChangedEvent notifications. */
void informJobStateChange (
in Job aJob,
in Job::JobState previousState,
in Job::JobState newState)
raises (Global::FrameworkErrorSignal);
}; // JobRequestor
Contracted Services: None.
Dynamic Model: None.
Scenario:
aJobRequestor:
JobRequestor
aJobSupervisor:
JobSupervisor
aJob :Job
1: requestJob (Properties, JobRequestor)
2: Return Job
3: informJobStateChange (Job, Queued, Executing)
4: informJobStateChange (Job, Active, Finished)
Create Job Here
Figure 6
Job Supervision Scenario
6.6.4.1 Figure 6 shows the most basic of scenarios for Job Supervision interactions. It proceeds in this fashion:
6.6.4.1.1 The JobRequestor populates a JobSpecification then requests a Job according to that specification.