semi合集-English.pdf - 第2697页

SEMI E97-0200A © SEMI 2000 17 Description: The JobSupervisor m a nages all the Jobs being performed by the component which implements it. It receives t he requests for w ork, facilitates the creatio n of a Job for the ta…

100%1 / 7923
SEMI E97-0200A © SEMI 2000 16
Resource
(from Resource AIG)
OwnedEntity
(from Resource AIG)
Job Supervision Abstract Interface Group
JobSupervisor Job
0..*
1..1
0..*
1..1
supervises
JobRequestor
1..*
0..*
1..*
0..*
contracts
work
from
1..*
1
1..*
1
tracks
progress via
JobSpecification
<<typedef>>
Figure 4
Job Supervision Abstract Interface Group Information Model
6.6.1.1 The basic Job Supervision Abstract Interface Group does not interact with other components, except to the
extent that other components instantiate its interfaces. Figure 4 shows how the interfaces of Job Supervision relate to
one another.
6.6.1.2 A Job Specification is a sequence of properties containing the parameters required to sufficiently define the
work to be done. This sequence is passed by the JobRequestor to the JobSupervisor in the Job request message. See
the JobSupervisor interface for more details.
6.6.1.3 JobSupervision levels are hierarchical. One level may accept a Job and delegate portions of that Job to
lower levels. Jobs, however, are not purely hierarchical. A Job accepted by one JobSupervisor may be broken down,
along with other Jobs of that component and reconstituted as needed to optimize the activities of the factory.
6.6.1.4 For example, a ProductRequest may ask for 15 wafers of a particular product. The ProductRequestManager
may delegate a LotJob to Factory Operations with a Lot containing those 15 wafers and 10 more from a different
ProductRequest. In the factory, this Lot may be split up and processed in smaller groups at various stages or, as
scrap reduces the wafer count, combined with another small lot to create a more optimal process group. The Job
Supervision implementation is allowed great latitude to optimize performance. Its only requirement is to fulfill the
specification of the Job.
6.6.2 JobSupervisor Interface
Module: AbstractIF
Interface: JobSupervisor
Inherited Interface: Resource
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. */