semi合集-English.pdf - 第1812页
SEMI E42-0704 © SEMI 1995, 2004 81 11.2.10.5 Change Notificatio n — If ExecChgCtrl re quires that the originating namespace be notified of changes, the notification service RMECha nge is sent to the specified nam espace …

SEMI E42-0704 © SEMI 1995, 2004 80
11.2.10 Change Control — It is important to the user
to be able to control change for execution recipes. In
addition, it may be important to store recipes that were
originated by the recipe executor in the managed
environment of a recipe namespace. The recipe
attribute ExecChgCtrl
is used to accomplish both
purposes.
The ExecChgCtl
attribute allows the user to control the
modification of an existing execution recipe and its
subsequent use. ExecChgCtrl
is a binary value that
specifies permission for behavior related to changes.
ExecChgCtrl
uses bit settings to indicate permission in
order to facilitate the different possible combinations.
Values given below are in decimal:
1 = permission to change the body of the execution
recipe
2 = requirement to notify the originating namespace of
permitted changes
4 = permission to select (including re-selection of an
already selected recipe) a changed recipe
8 = permission to save the last values of variable
parameters in the ExecParam
attribute
11.2.10.1 Changing Existing Recipes — Whenever the
body is changed, the attributes ExecAttrLength
,
ExecChgTime
, BodyLength, and EditTime shall be
updated. The attribute ChangedBody
shall be set to
TRUE and remain set until the recipe is uploaded
successfully to the originating recipe namespace. The
ChangedBody attribute is reset when the upload request
is received. It is not included in the uploaded attributes.
Note that the attributes ExecAttrLength
and
ExecChgTime
are not kept in the managed recipe
stored in the namespace, and that the attributes
AttrLength
and AttrChgTime are not maintained by the
recipe executor and are recalculated for the managed
recipe when stored.
If the ExecChgCtrl attribute permits both change and
subsequent selection or re-selection (as for a currently
selected recipe changed by the execution process itself),
then the recipe's Linked attribute is not affected.
Otherwise, if change is permitted but subsequent
selection is not permitted, then the Linked
attribute of
the main recipe shall be cleared (set to FALSE) to
prevent any subsequent selection, and the recipe shall
be automatically de-selected at the end of any current
processing cycle. It shall not be available for selection
until it has been uploaded, re-linked, and downloaded
again, with its changes, by the originating namespace.
11.2.10.2 Creating New Recipes — A new execution
recipe may be created by various mechanisms. Such
mechanisms are beyond the scope of RMS. However,
all such recipes shall be assigned an identifier that is not
already in use by an execution recipe. It is not required
that an originating namespace be assigned immediately
in all cases. However, it must be provided before the
recipe can be uploaded and placed in the management
system. New identifiers assigned automatically by the
recipe executor shall use the next available numeric
version, in conformance with Section 3.2.3.3.
A newly created recipe may not be executed. Its
ChangedBody
attribute shall be set to TRUE, and
BodyFormat
shall be set TRUE for non-text recipes.
The attribute ExecChgCtrl
shall be set to a value of 3 (1
plus 2) or higher. Other non-mandatory attributes shall
be set to their default value. Since the Linked
attribute
is set to FALSE, the new recipe may not be executed as
a main recipe. New recipes must be uploaded to a
designated originating namespace for management
purposes and subsequently downloaded after they have
been linked.
11.2.10.3 Building Derived Form Recipes — A new
recipe, with a new identifier, is also originated if recipe
executor builds a derived object form recipe from an
existing source form recipe. Requirements for the
derived object form recipe are defined in Section
11.2.2.1.
The manager of the originating namespace shall be
notified when a derived object form recipe is built from
a source form recipe where ExecChgCtrl
requires
notification of change for the original source form
recipe.
11.2.10.4 Saving Last Value — Saving the most recent
settings specified by the user in the attribute ExecLink-
Param is a protected activity requiring explicit
permission in ExecChgCtrl
. A change notification
requirement in ExecChgCtrl
applies to the change of
this attribute.
Parameter values in ExecLinkParam
are overridden by
any parameter settings specified by the user at the time
a recipe is selected. In this case, the last value of each
parameter is stored in the appropriate parameter
definition in the ExecLinkParam
attribute. If change
notification is specified, the originating namespace
shall be notified of this change. The attributes
ExecLength and ExecChgTime shall be updated
whenever this change is made. The body of the recipe
in execution recipe storage shall not be changed for this
purpose.

SEMI E42-0704 © SEMI 1995, 2004 81
11.2.10.5 Change Notification — If ExecChgCtrl requires that the originating namespace be notified of changes,
the notification service RMEChange is sent to the specified namespace indicating the type of change that has
occurred.
Figure 11.3
RMEChange Message Flow
The recipe executor may or may not have direct communication links with the namespace itself. However, in this
case, the necessary links may be assumed to exist with the supervisor or other owner of the recipe executor, or it
would not be possible for recipes to be downloaded in the first place.
The originating namespace, on receipt of a change notification, is responsible for uploading the changed recipe and
for synchronizing through the service RMERename any change in identifier that might result from changing a write-
protected recipe.
11.3 Table of Operations — Table 11.1 lists all the operations defined for recipes and namespaces.
The column labeled "Rqmt" indicates those operations that are required for fundamental compliance to the RMS
recipe execution resource.
Table 11.1 Recipe Executor Operations
Operation Description Rqmt
Recipe download and verify Transfer execution recipe to local storage. If the recipe is unverified, then verify it
at this time.
Y
Recipe verify Verify a stored execution recipe. Y
Recipe unload Transfer a recipe from local storage. Required if the execution process modifies an
executed recipe or if the recipe executor is able to create recipes.
N
Recipe rename Change the recipe’s identifier. Y
Get available storage Calculate the amount of storage available for a single execution recipe, exclusive
of formatting overhead.
Y
Recipe delete Delete a recipe from local storage. Y
Recipe select Select recipes for execution. Y
Recipe deselect Deselect one or more recipes. Y
Get recipe descriptor Get the descriptors of a specified execution recipe. Y
Change notification Inform the originating recipe that a recipe has been originated or changed.
Required if the recipe executor is able to make a change protected by
ExecChgCtrl
or to originate a recipe.
N

SEMI E42-0704 © SEMI 1995, 2004 82
11.4 Recipe Executor Events — The recipe executor shall provide the Recipe Select and Recipe Deselect events.
Recipe executors that are capable of originating a new execution recipe shall provide the New Execution Recipe
event. Recipe executors that are capable of changing the body of an existing recipe shall provide an Execution
Recipe Change Event. These events allow service users other than the originating namespace to receive notification
whenever a new recipe is created or an existing recipe body is modified.
12 Recipe Namespace Services
This section defines recipe management and namespace services (see Table 12.1), which begin with a prefix of
RMN. RMS services used by distributed recipe namespaces and by the recipe executor are defined in later sections.
Recipe management and recipe namespace services request that an operation be performed on a recipe within a
namespace or on a namespace.
Recipe management operations that change recipe attributes are invoked with the RMNAction or RMNVarPar
requests.
Certain activities that require extended time to complete may indicate the intent to comply in the response message
and then provide confirmation with the RMNComplete message at the completion of each individual operation
specified.
Table 12.1 Recipe Namespace Services
Message Service
Name
Type Description
RMNCreateNS R Create a new namespace.
RMNDeleteNS R Delete a namespace.
RMNRenameNS R Rename a namespace (assign
a new identifier).
RMNSpaceInquire R Determine the available space
for recipe storage.
RMNRcpStatInquire R Determine a recipe's read-only
status.
RMNVersionInquire R Determine the best version of
a recipe.
RMNCreate R Initialize new recipe with the
specified body.
RMNUpdate R Transfer new recipe body.
RMNStore R Store a recipe.
RMNRetrieve R Retrieve a recipe and give to
the requestor.
RMNCopy R Copy a recipe to a new recipe
(originated).
RMNRename R Rename a recipe.
RMNAction R Perform an operation on a
recipe (verify, link, unlink, …)
RMNVarPar N Modify agent-
s
pecific variable
parameter definition.
RMNGetDescriptor R Get recipe descriptors.
RMNComplete N Notification that a requested
action has completed.
12.1 Recipe Management Message Parameter
Dictionary — Table 12.2 contains the definitions for
message parameters, and their components, used by
namespace services.
For purposes of transferring a recipe with its
components, it is regarded as having three types of
sections: a section containing the generic attributes, a
section consisting of the body, and a section containing
the attributes of the agent-specific dataset. The generic
section is always transferred first, and the attributes
AttrLength
, AttrTimestamp, BodyLength, and
EditTime
are always sent first, in that order. This
allows the length information to be immediately
determined by the receiver. Agent-specific dataset
sections are sent last, since the number of agent-specific
datasets will vary.
Descriptors are also regarded as consisting of sections
for the generic descriptor, the body descriptor, and zero
or more agent-specific descriptors.
Each start of each section is identified with a text string
reserved for that section type.