Issues for Mailing list of the Deployment Revision Task Force
To comment on any of these issues, send email to deployment-rtf@omg.org. (Please include the issue number in the Subject: header, thusly: [Issue ###].) To submit a new issue, send email to issues@omg.org.
List of issues (green=resolved, yellow=pending Board vote, red=unresolved)
Issue 7557: No type safety when external packages are referenced
Issue 7667: Process Collocation Deployment Directive Capability Lacking
Issue 7877: UML 2.0 port issue
Issue 7880: Target Manager Resource Commitment Granularity
Issue 7940: Resource Deployment Description Clarification
Issue 7941: Resource Deployment Description Insufficient
Issue 7945: Requirement Satisfier "name" Attribute is not Optional
Issue 7954: Separation of components during deployment (opposite of collocation).
Issue 7971: Resource Commitment Sequence Diagram Clarification
Issue 8944: Enumerated SatisfierProperties
Issue 8979: Distinguish Node vs. Component Exec Parameters in Deployment Plan
Issue 8983: Deployment Requirements in Deployment Plan
Issue 8984: Information about Port Delegations Lost In Planning
Issue 9239: IDL name clash due to enumeration values defined twice
Issue 7557: No type safety when external packages are referenced (deployment-rtf)
Click here for this issue's archive.
Source: Zuehlke Engineering (Mr. Frank Pilhofer, fpilhofer2008(at)gmail.com)
Nature: Uncategorized Issue
Severity:
Summary:
The ComponentPackageReference element (6.4.8) allows to reference
an external package (to be resolved during planning by searching
repositories), for example to instantiate a subcomponent instance
from, in an assembly.
However, there is no type safety here; an assembly design tool has
no way of validating that the ports (which are referenced by
connections within the assembly) actually exist in the component
interface of the referenced component.
Actually, there is little point in ComponentPackageReference having
an optional "requiredType"; there should always be a mandatory type
that the referenced package must support.
To an assembly design tool, just having the "requiredType" repository
id is insufficient for validation, the full
ComponentInterfaceDescription
is necessary.
Proposed resolution:
In section 6.4.8.2, ComponentPackageReference Attributes, delete the
"requiredType" attribute.
Add a "requiredType" composition association to ComponentInterface-
Description, with multiplicity 1..1.
In section 6.4.8.3, ComponentPackageReference Constraints, delete the
constraints, and replace with "No constraints." (Rationale: when type
conformance is mandatory, the existing constraing will always be met.)
In section 6.4.8.4, ComponentPackageReference Semantics, replace the
existing text
The planner will search one or more repositories for package
configurations that satisfy all requirements.
with
The planner will search one or more repositories for package
configurations that support the requiredType, and that match the
requiredUUID and requiredName attributes, if present.
Resolution:
Revised Text: In section 6.4.8.2, ComponentPackageReference Attributes, delete the "requiredType" attribute.
Add a "requiredType" composition association to ComponentInterface- Description, with multiplicity 1..1.
In section 6.4.8.3, ComponentPackageReference Constraints, delete the constraints, and replace with "No constraints." (Rationale: when type conformance is mandatory, the existing constraing will always be met.)
In section 6.4.8.4, ComponentPackageReference Semantics, replace the existing text
The planner will search one or more repositories for package
configurations that satisfy all requirements.
with
The planner will search one or more repositories for package
configurations that support the requiredType, and that match the
requiredUUID and requiredName attributes, if present.
Actions taken:
July 1, 2004: received issue
May 9, 2005: closed issue
Discussion: Resolution:
Make the type information for references to external packages mandatory by pointing to the respective ComponentInterfaceDescription
Issue 7667: Process Collocation Deployment Directive Capability Lacking (deployment-rtf)
Click here for this issue's archive.
Source: Raytheon (Mr. Gerald Lee Bickle, Gerald.L.Bickle(at)raytheon.com)
Nature: Uncategorized Issue
Severity:
Summary: Problem: The CCM DTD in the assembly descriptor has the
capability to direct deployment of components on the same
processor and the PIM and PSM for SWRadio Components infrastructure
supports the deployment concept of process collocation. The capability is
needed for deployment considerations to direct
which components are to be collocated within the same process. Flexibility
should be given to express how components are to be deployed.
One reason to do this is performance considerations. Another use case is
the components could be an assembly which represents an application service
that is deployed in one process space.
Recommended solution: Is to add an optional zero to many Process
Collocation
element to the ComponentAssemblyDescription.
Resolution:
Revised Text: In section 6.4.9.1 replace the diagram by the following one: Add the following sentence at the end of the paragraph below the figure:
In addition, it may contain locality requirements on subcomponent instances that influence the deployment planning process.
In section 6.4.9.3 add the following bullet for an additional association:
· localityConstraint: Locality [0..*]
Describes locality constraints for subcomponent
instances.
In section 6.4.9.5 add the following sentence at the end:
Locality requirements such as collocation or separation of two or more subcomponents may be specified for the subcomponents of the assembly. These requirements are evaluated during the deployment planning process.
Add a new section 6.4.x after section 6.4.9:
6.4.x Locality
6.4.x.1 Description
The Locality element specifies locality requirements for the subcomponent instances of an assembly. These requirements are evaluated during the deployment planning process and influence the decision where a particular subcomponent instance shall be deployed to.
The Locality element allows for requesting the collocation or separation of two or more subcomponent instances of an assembly. The major reason for separating component instances is to support fault tolerance models. The rationale for requesting the collocation of component instances is often performance reasons.
Collocation constraints should be used very carefully since they limit the possible decisions of the deployment planning process. Collocation constraints are often dedicated to a particular target environment and may thus limit the reuse of component assemblies for other target environments having a different topology and different capabilities. It is often better to put a special requirement on the communication path between two components requesting a high communication bandwidth instead of requesting collocation of those components.
6.4.x.2 Attributes
· constraint: LocalityKind The value of this attribbute
identifies the kind of the
locality constraint.
6.4.x.3 Associations
· constrainedInstance: SubcomponentInstantiationDescription [1..*]
Refers to the description of those subcomponent
instances the locality requirements are dedicated to.
6.4.x.4 Constraints
No constraints.
6.4.x.5 Semantics
See the description of the LocalityKind class for the semantics of
locality constraint options.
At planning time, the planner evaluates node locality constraints,
and assigns constrained instances to the same node
(SameNodeAnyProcess, SameNodeSameProcess, SameNodeDifferentProcess)
or to different nodes (DifferentNode). Process locality constraints
are recorded in the PlanLocality element of the DeploymentPlan, to be
evaluated by the node manager.
Add a new section 6.4.x after the previously added section:
6.4.x LocalityKind
6.4.x.1 Description
See above.
6.4.x.2 Attributes
No attributes.
6.4.x.3 Associations
No constraints.
6.4.x.4 Constraints
No constraints.
6.4.x.5 Semantics
The choices for the locality constraints are:
· SameNodeAnyProcess: This value specifies that the subcomponent instances the locality class refers to shall be deployed onto the same node. They can be started in the same process or in different processes by the deployment engine.
· SameNodeSameProcess: This value specifies that the subcomponent instances the locality element refers to shall be deployed onto the same node. In addition, they shall also be instantiated in the same process by the deployment engine.
· SameNodeDifferentProcess: This value specifies that the subcomponent instances the locality element refers to shall be deployed onto the same node but instantiated in different processes by the deployment engine.
· DifferentNode: This value specifies that the subcomponent instances the locality element refers to shall be deployed onto different nodes. This implies that they will be instantiated in different processes.
· DifferentProcess: This value specifies that the subcomponent instances the locality element refers to shall be instantiated in different processes by the deployment engine. It is not of interest whether the subcomponent instances are deployed onto the same node or onto different nodes.
· NoConstraint: This value specifies that there is no locality constraint defined for the subcomponent instances the locality element is associated with. The purpose of this special value is to enable to switch locality constraints temporarily off without loosing the structure of the ComponentAssemblyDescription, i.e. the Locality element instance with its associations to SubcomponentInstantiationDescriptions can be kept for later reuse but has currently no impact on the deployment planning.
In section 6.8.1.1 replace the diagram by the following one:
Add the following sentence after the first sentence of the first paragraph below the figure:
It also may contain additional locality information (PlanLocality) associated with the InstanceDeploymentDescription.
In section 6.8.1.3 add the following bullet for an additional association:
· localityConstraint: PlanLocality [0..*]
Describes process locality constraints for
component instances.
In section 6.8.1.5 add the following sentence after the single sentence of the third paragraph:
While creating component instances, the deployment engine must consider process collocation or process separation constraints defined by the PlanLocality element.
Add a new section 6.8.x after section 6.8.4:
6.8.x PlanLocality
6.8.x.1 Description
The PlanLocality element allows for defining process collocation or process separation of two or more component instances specified by a DeploymentPlan. The deployment engine must consider these constraints when creating component instances.
The values of the PlanLocality element are extracted from the Locality element of the ComponentAssemblyDescription.
6.8.x.2 Attributes
· Constraint: PlanLocalityKind The value of this attribute
identifies the kind of the
PlanLocality constraint.
6.8.x.3 Associations
· constrainedInstance: InstanceDeploymentDescription [1..*]
Refers to the deployment description of those
subcomponent instances the locality constraints
are dedicated to.
6.8.x.4 Constraints
No constraints.
6.8.x.5 Semantics
See the description of the PlanLocalityKind class for the semantics
of locality constraint options.
At execution time, the node manager evaluates process locality
constraints, and assigns constrained instances to the same process
(SameProcess) or to different processes (DifferentProcess).
Add a new section 6.8.x after the previously added section:
6.8.x PlanLocalityKind
6.8.x.1 Description
See above.
6.8.x.2 Attributes
No attributes.
6.8.x.3 Associations
No associations.
6.8.x.4 Constraints
No constraints.
6.8.x.5 Semantics
The choices for the constraints are:
· SameProcess: This value specifies that the component instances specified by InstanceDeploymentDescription the PlanLocality element refers to shall be started in the same process by the deployment engine.
· DifferentProcess: This value specifies that the component instances specified by InstanceDeploymentDescription the PlanLocality element refers to shall be started in different processes by the deployment engine.
· NoConstraint: This value specifies that there is no locality constraint defined for the deployment of the component instances described by InstanceDeploymentDescription the PlanLocality element refers to. The purpose of this special value is to enable to switch locality constraints temporarily off without loosing the structure of the DeploymentPlan, i.e. the PlanLocality element instance with its associations to InstanceDeploymentDescriptions can be kept for later reuse but has currently no impact on the execution of the DeploymentPlan.
Actions taken:
September 3, 2004: received issue
May 9, 2005: closed issue
Discussion: Resolution:
Introduce an additional class called Locality to the ComponentAssemblyDescription that allows for specifying locality constraints on the deployment process.
Add a new class called PlanLocality to the DeploymentPlan that allows for specifying special process locality constraints for the deployment engine executing the deployment plan.
Issue 7877: UML 2.0 port issue (deployment-rtf)
Click here for this issue's archive.
Source: Mercury Computer Systems (Mr. James E. Kulp, nobody)
Nature: Uncategorized Issue
Severity:
Summary: UML 2.0 allows for ports to have a set of required interfaces and a set
of provided interfaces.
The definition of port interfaces in the PIM should allow for this, even though
the PSM for CCM must constrain this.
Note that change must also be consistently applied to the external reference endpoints
(all other endpoints are for component ports with an associated port interface
definition in the ComponentPortDescription class).
Resolution:
Revised Text:
Actions taken:
October 20, 2004: received issue
May 9, 2005: closewd issue
Discussion: See issue #6602 for disposition Resolution:
As part of the resolution to issue 7953, a constraint has been added that states each port stereotyped as SWRadioPort has a set of 1 required and 1 provided interface at most. Since SWRadioPort is the parent for all Port stereotypes defined in the PIM, by definition, this takes care of the problem addressed in issue 7877. Hence, issue 7877 should be closed with no change required to the specification, per the resolution for issue 7953.
Revised Text:
N/A
Disposition: Closed, no change
Issue 7880: Target Manager Resource Commitment Granularity (deployment-rtf)
Click here for this issue's archive.
Source: Zuehlke Engineering (Mr. Frank Pilhofer, fpilhofer2008(at)gmail.com)
Nature: Uncategorized Issue
Severity:
Summary: At the moment, resources are committed and later released according to
a Deployment Plan -- the Execution Manager just sends over the full
plan, and the Target Manager has to pick it apart. We considered this
a good idea -- after all, the plan contains all information about
resources that will be used by an application. In retrospect, however,
it looks like a design break. The plan contains a lot of information
that the Target Manager is not interested in. So the Target Manager
has to dissect information that it should not need to see in the first
place.
Also, and maybe more importantly, the only way of releasing resources
is by sending the very same plan to the Target Manager all over again,
as the Target Manager does not keep track of allocations.
This does not allow for the early release of resources, in case the
application does not need all that were reserved, or in case part of
the application finishes early.
Therefore I propose to replace the current "commitResources" and
"releaseResources" operations with a per-application "resource
commitment" object that allows to commit and release resources in a
fine-grained manner, and that keeps track of the current commitment,
so that the remaining resources that are in use by an application
can be released by simply destroying the object.
By not sending the full Deployment Plan, that would also dramatically
cut communication between the Execution Manager and the Target Manager.
Resolution:
Revised Text: After section 6.7.1 (TargetManager), add a new "ResourceAllocation" section.
6.7.2 ResourceAllocation
6.7.2.1 Description
A ResourceAllocation element identifies a resource within the
Domain that is allocated from, and the amount that is being
allocated.
6.7.2.2 Attributes
elementName: String [1]
The name of a top-level element in a Domain, i.e., a Node,
Interconnect or Bridge.
resourceName: String [1]
The name of a Resource or SharedResource accessible to the
Node, Interconnect or Bridge that is identified by the
elementName.
6.7.2.3: Associations
properties: Any [1]
The properties of the resource to be allocated or verified
against the Resource's properties. Their values must be of
the appropriate type, according to the SatisfierProperty's
SatisfierPropertyKind attribute. For Quantity, the value must
be the integer value 1. For Capacity, it is the ordinal that
is allocated. For the other kinds, the value must be of the
same type as the SatisfierProperty's value.
6.7.2.4 Constraints
No constraints.
6.7.2.5 Semantics
No semantics.
A new "ResourceCommitmentManager" interface is then added to the same
section.
6.7.3 ResourceCommitmentManager
6.7.3.1 Description
The ResourceCommitmentManager interface manages a set of resources
that are allocated, e.g., for the execution of an application.
Resources can be individually committed and released as necessary.
At the end of its life cycle, all remaining committed resources are
released automatically.
6.7.3.2 Operations
commitResources (resources: ResourceAllocation [*])
Adds a set of resources to the current list of committed
resources. Raises the ResourceCommitmentFailure exception
if a resource can not be committed, e.g., due to resource
exhaustion.
releaseResources (resources: ResourceAllocation [*])
Releases a set of committed resources. Raises the
ResourceCommitmentFailure when trying to release more
resources than were committed.
6.7.3.3 Associations
targetManager: TargetManager [1]
A ResourceCommitmentManager cooperates with a TargetManager
to evaluate and manipulate the set of available resources in
the Domain it manages.
6.7.3.4 Constraints
Each ResourceAllocation that is committed must identify an element
within the Domain, and a Resource available to that element.
6.7.3.5 Semantics
Committing a ResourceAllocation involves comparing the allocated
value against the available value of the Resource's
SatisfierProperty, according to its SatisfierPropertyKind, and
"substracting" the committed value from the available value, if
applicable.
Releasing a ResourceAllocation "adds" the value that is being
Released to the available value, if applicable.
In section 6.7.1.2 (TargetManager operations), remove the commitResources and releaseResources operations.
In the same section 6.7.1.2, add two new operations
createResourceCommitment (resources: ResourceAllocation [*]) :
ResourceCommitmentManager
Creates a new resource commitment management object, with an
initial set of resource commitments. This is equivalent to
creating a ResourceCommitmentManager with an empty initial
set of resource commitments, and then passing the set of
resources to its commitResources operation. Raises the
ResourceCommitmentFailure exception if a resource can not be
committed.
destroyResourceCommitment (manager: resourceCommitmentManager)
Destroys a resource commitment management object, releasing
all remaining resources that were committed but not
previously released.
In section 6.7.1.3 (TargetManager associations), add an association
currentCommitments: ResourceCommitmentManager [*]
The current set of resource commitment management objects.
Now, some of the other parts of the specification need to be updated to
be in sync with this new interface. In particular, the
ResourceCommitmentManager object needs to be passed along from the
ExecutionManager to the NodeManager objects, so that they might release
resources early -- one of the reasons for making this change in
the first place. Also, in order to continue supporting Planner-guided
commitment, the option to pass an "external" ResourceCommitmentManager
to the ExecutionManager's preparePlan operation needs to be supported.
In section 6.9.2.2, (ExecutionManager operations), change the signature
of the preparePlan operation from
preparePlan (plan: DeploymentPlan, commitResources: Boolean):
DomainApplicationManager
to
preparePlan (plan: DeploymentPlan,
resourceCommitment: ResourceCommitmentManager [0..1]):
DomainApplicationManager
Creates an application manager (factory) from a deployment
plan. If the resourceCommitment parameter is present and
non-nil, then it is assumed that resources were already
committed by an online planner, and the ResourceCommitment-
Manager object is "adopted". Otherwise, the resources used
by the plan are committed via the TargetManager; creating
a new ResourceCommitmentManager object in the process.
Raises the ResourceNotAvailable exception if one or more
requested resources are not available. Raises the StartError
exception if a deployment-related error occurs during
preparation. Raises the PlanError exception if there is a
problem with the plan.
In the same section, update the first sentence of the description for
the destroyManager operation to read
Terminates an application manager, and frees all associated resources
by destroying the ResourceCommitmentManager object. [Remaining
description as before.]
In section 6.9.3.2 (NodeManager operations), update the signature of
the preparePlan operation from
preparePlan (plan: DeploymentPlan): NodeApplicationManager
to
preparePlan (plan: DeploymentPlan,
resourceCommitment: ResourceCommitmentManager):
NodeApplicationManager
In section 6.9.4.3 (ApplicationManager associations), add the
following association:
resourceCommitment: ResourceCommitmentManager [1]
The resource commitment management object that manages
information about resources that are currently committed
to the execution of this application.
In section 6.9.5.5 (NodeApplicationManager semantics), add the following paragraph at the end of the section:
A NodeApplicationManager can use the ResourceCommitmentManager object
to release resources that were allocated for the execution of this
application, when it is certain that these resources will not be used
throughout the remainder of the application's lifetime, e.g., when a
component terminates before destroyApplication is called.
Finally, the new ResourceCommitmentFailure exception is introduced into
the Exceptions section.
In section 6.11, add the following exception before ResourceNotAvailable (6.11.4):
6.11.4 ResourceCommitmentFailure
6.11.4.1 Description
The ResourceCommitmentFailure exception is raised by the
TargetManager or ResourceCommitmentManager, if a resource allocation
or deallocation can not be satisfied.
6.11.4.2 Attributes
reason: String
A human-readable message explaining why the allocation
failed.
index: Integer
Identifies the ResourceAllocation element that could not be
satisfied, in a list of resource allocations. This identifies
the top-level element in the Domain and the Resource that
a property was to be committed or released.
propertyName: String
Identifies the specific property that could not be satisfied.
Matches the name of a Property associated with the Resource
Allocation element, and the name of a SatisfierProperty
element associated with the Resource, if it exists.
6.11.4.3 Associations
propertyValue: Any [0..1]
The available value remaining for the property. If
missing, then the Resource does not exist, or does not
have a property by that name.
6.11.4.4 Constraints
No constraints.
6.11.4.5 Semantics
No semantics.
Now that the TargetManager does not raise the ResourceNotAvailable
exception, we need to remove it from its description.
In section 6.4.11.1 (ResourceNotAvailable Description), change the
text from
The ResourceNotAvailable exception is raised by the commitResources
operation of the TargetManager, by the preparePlan operation of the
ExecutionManager or by the startLaunch operation of the Application-
Manager if a resource required by the plan is not available.
to
The ResourceNotAvailable exception is raised by the preparePlan
operation of the ExecutionManager or by the startLaunch operation
of the ApplicationManager if a resource required by the plan is
not available.
Actions taken:
October 25, 2004: received issue
May 9, 2005: closed issue
Discussion: Resolution:
As indicated by the issue, the "commitResources" and "releaseResources" are replaced by a per-application "resource commitment" object. This solution aims to minimize the communication between the Execution Manager and the Target Manager, both in terms of the amount of data and the required roundtrips.
First, a data structure "ResourceAllocation" is introduced into the Target Management Model. It identifies a resource by name, and an amount that is being allocated. An application's total set of allocated resources can be expressed as a sequence of this structure.
Issue 7940: Resource Deployment Description Clarification (deployment-rtf)
Click here for this issue's archive.
Source: Zuehlke Engineering (Mr. Frank Pilhofer, fpilhofer2008(at)gmail.com)
Nature: Clarification
Severity:
Summary: Sections 6.8.9, 6.8.10 and 6.8.11 describe the ResourceDeployment-
Description, InstanceResourceDeploymentDescription and Connection-
ResourceDeploymentDescription elements, which identify the resources
that were chosen to satisfy a requirement.
There are three minor editorial issues here:
(1)
In 6.8.11.2 (ConnectionResourceDeploymentDescription Attributes),
the targetName attribute always identifies an Interconnect or a Bridge,
but never a Node.
Proposed resolution:
Update the description for the targetName attribute; change the text
in parentheses from
(i.e., the name of a Node, Interconnect or Bridge)
to
(i.e., the name of an Interconnect or Bridge)
(2)
Also in 6.8.11.2 (ConnectionResourceDeploymentDescription Attributes),
the targetName provides a scope for the resource, not for a requirement.
Proposed resolution:
Update the description for the targetName attribute; change the
second half of the first sentence (after the comma) from
[...], to provide scope for the requirementName.
to
[...], to provide scope for the resourceName.
(3)
Finally, I'd like to clarify in section 6.8.10 (InstanceResource-
DeploymentDescription) that the resourceName is within the scope of
the node that this instance is deployed on.
Proposed resolution:
In section 6.8.10.5 (InstanceResourceDeploymentDescription semantics),
add the following text:
An InstanceResourceDeploymentDescription is always used in the context
of an InstanceDeploymentDescription, which identifies the node that a
component instance is deployed on. This node provides scope for the
resourceName.
Resolution:
Revised Text: In section 6.8.11.2, update the description for the targetName attribute; change the text in parentheses from
(i.e., the name of a Node, Interconnect or Bridge)
to
(i.e., the name of an Interconnect or Bridge)
Also section in 6.8.11.2, update the description for the targetName attribute; change the second half of the first sentence (after the comma) from
[...], to provide scope for the requirementName.
to
[...], to provide scope for the resource Name.
In section 6.8.10.5, add the following text:
An InstanceResourceDeploymentDescription is always used in the
context of an InstanceDeploymentDescription, which identifies the
node that a component instance is deployed on. This node provides
scope for the resourceName.
Actions taken:
November 19, 2004: received issue
May 9, 2005: closed issue
Discussion: Resolution:
Change the text as proposed.
Issue 7941: Resource Deployment Description Insufficient (deployment-rtf)
Click here for this issue's archive.
Source: Zuehlke Engineering (Mr. Frank Pilhofer, fpilhofer2008(at)gmail.com)
Nature: Uncategorized Issue
Severity:
Summary: In section 6.8.9, the ResourceDeploymentDescription, part of a
DeploymentPlan, contains information about the resources that were
chosen to satisfy a requirement.
It has a "resourceValue" association to an Any value.
However, resources and requirements have not just one value, but a
set of properties; see 6.10.4 (RequirementSatisfier) and 6.10.7
(Requirement).
Therefore, the "resourceValue" must be replaced with a set of
"Properties" elements.
Proposed resolution:
In section 6.8.9.3 (ResourceDeploymentDescription associations),
replace the current association
resourceValue: Any [1]
The aspect of the resource actually allocated, if any, of
the appropriate type of the resource's SatisfierPropertyKind
attribute. For Quantity, it is the ordinal allocated. For
Allocation, it is the allocated capacity, for Selection, it
is the matched string. For others, it is the value of the
matched property.
with
property: Property [*]
The aspects of the resource actually allocated, if any. The
property values are of the appropriate types according to
their matched SatisfierProperty's SatisfierPropertyKind
attribute. For Quantity, it is the ordinal allocated. For
Allocation, it is the allocated capacity, for Selection, it
is the matched string. For others, it is the value of the
matched property
Resolution:
Revised Text: In section 6.8.9.3 (ResourceDeploymentDescription associations), replace the current association
resourceValue: Any [1]
The aspect of the resource actually allocated, if any, of
the appropriate type of the resource's SatisfierPropertyKind
attribute. For Quantity, it is the ordinal allocated. For
Allocation, it is the allocated capacity, for Selection, it
is the matched string. For others, it is the value of the
matched property.
with
property: Property [*]
The aspects of the resource actually allocated, if any. The
property values are of the appropriate types according to
their matched SatisfierProperty's SatisfierPropertyKind
attribute. For Quantity, it is the ordinal allocated. For
Allocation, it is the allocated capacity, for Selection, it
is the matched string. For others, it is the value of the
matched property
Actions taken:
November 19, 2004: received issue
May 9, 2005: closed issue
Discussion: Resolution:
Change the text as proposed
Issue 7945: Requirement Satisfier "name" Attribute is not Optional (deployment-rtf)
Click here for this issue's archive.
Source: Zuehlke Engineering (Mr. Frank Pilhofer, fpilhofer2008(at)gmail.com)
Nature: Uncategorized Issue
Severity:
Summary: In section 6.10.4.2 (RequirementSatisfier attribute), the
description for the "name" attribute reads, "An optional name
for the requirement satisfier."
This is in violation of our convention for "name" attributes
(see section 6.3), and in fact, other parts of the specification
make use of the fact that the name uniquely identifies a
RequirementSatisfier within its parent, e.g., the Resource
Deployment Description element; its resourceName identifies a
resource by the requirement satisfier's name.
Proposed resolution:
In section 6.10.4.2, change the description for the "name"
attribute from
name: String An optional name for the requirement satisfier.
to
name: String The requirement satisfier's name, which uniquely
identifies this requirement satisfier within its
container.
Resolution:
Revised Text: In section 6.10.4.2, change the description for the "name" attribute from
name: String An optional name for the requirement satisfier.
to
name: String The requirement satisfier's name, which uniquely
identifies this requirement satisfier within its
container.
Actions taken:
November 23, 2004: received issue
May 9, 2005: closed issue
Discussion: Resolution:
Change the text as proposed
Issue 7954: Separation of components during deployment (opposite of collocation). (deployment-rtf)
Click here for this issue's archive.
Source: Fraunhofer FOKUS (Mr. Andreas Hoffmann, andreas.hoffmann(at)fokus.fraunhofer.de)
Nature: Uncategorized Issue
Severity:
Summary: The current specification does not support the separation of components during depoyment. It should be possible to specify a such a requirement as input for the deployment planning process. Use cases for this are for instance:
- to request the instantiation of components in different processes for single threaded component implementations
- to request the instantiation of components in different processes or on different hosts for fault tolerance reasons
- to request the instantiation of components on different hosts for performance reasons (with respect to CPU load)
This issue should be resolved together with issue #7666 (host collocation) and issue #7667 (process collocation).
Resolution:
Revised Text:
Actions taken:
November 30, 2004: received issue
May 9, 2005: closed issue
Discussion: See issue #7667 for disposition
Issue 7971: Resource Commitment Sequence Diagram Clarification (deployment-rtf)
Click here for this issue's archive.
Source: Zuehlke Engineering (Mr. Frank Pilhofer, fpilhofer2008(at)gmail.com)
Nature: Clarification
Severity:
Summary: In the latest document, with the resolution to issue 6039 applied,
figure 8-13 on page 123, contains a note attached to the
"commitResource"
operation between the DomainApplicationManager and the TargetManager,
indicating that:
This call could come from either the DomainApplicationManager
or the DomainApplication, as an implementation choice.
It was intended that implementations can also delegate resource
commitment
can also be delegated to nodes.
Proposed resolution:
Change the note identified above to read
Can be delegated to DomainApplication or NodeApplication.
Resolution:
Revised Text: Figure 8-13 on page 123, contains a note attached to the "commitResource" operation between the DomainApplicationManager and the TargetManager.
Change that note from
This call could come from either the DomainApplicationManager
or the DomainApplication, as an implementation choice.
to
This call can be delegated to DomainApplication or NodeApplication,
as an implementation choice.
Actions taken:
December 8, 2004: received issue
May 9, 2005: closed issue
Discussion: Resolution:
Change the text as proposed above
Issue 8944: Enumerated SatisfierProperties (deployment-rtf)
Click here for this issue's archive.
Source: Zuehlke Engineering (Mr. Frank Pilhofer, fpilhofer2008(at)gmail.com)
Nature: Uncategorized Issue
Severity:
Summary: Section 9.3.5, "SatisfierProperty," defines the concrete
data types that a SatisfierProperty's value can assume,
depending on the SatisfierPropertyKind.
For the "Attribute" kind, it allows the value to be of a
(user-defined) enumeration type. It then says, "if the value
of the SatisfierProperty is of enumeration type, the value
of the Property is of type string, containing the enumeration
value that must compare equal to the SatisfierProperty value.
This is straightforward enough. E.g., it allows a
DomainAdministrator to enumerate the kinds of processors
in a domain,
enum Processors { ix86, ppc, sparc };
and then to tag each node with a resource containing a
property of this type, its value specifying the actual
processor type of the node.
It seemed like a good idea. Yet this feature does not buy
much. The DomainAdministrator could just as well use an
attribute of type string to the same effect. The only
advantage is that the enumerated property allows the
DomainAdministrator to constrain the values that a
SatisfierProperty may have. But it's the DomainAdmininstrator
constraining himself, so it's not much of a constraint.
However, this feature does add a dependency on DynamicAny
for both the TargetManager and the Planner, which do not
know about any user-defined enumeration types. All the other
SatisfierPropertyKind options use basic IDL data types (long,
unsigned long, double or string).
So, because of the added complexity, and the low mileage, I
propose to remove enumerated properties from the spec.
Proposed resolution:
In section 9.3.5, "SatisfierProperty," change the fourth
and fifth bullet from:
For the Attribute kind, the value of the SatisfierProperty
is of type long, double, string, or an enumeration type.
In the case of long, double or string, the value of the
Property must be of the same type. If the value of the
SatisfierProperty is of enumeration type, the value of
the Property is of type string, containing the enumeration
value that must compare equal to the SatisfierProperty
value.
For the Selection kind, the value of the SatisfierProperty
is a sequence of type long, double, string, or an
enumeration type. The same rules as for the Attribute kind
apply.
To:
For the Attribute kind, the value of the SatisfierProperty
is of type long, double or string. The value of the
Property must be of the same type and compare equal to
the SatisfierProperty value.
For the Selection kind, the value of the SatisfierProperty
is a sequence of type long, double or string. The same
rules as for the Attribute kind apply.
Resolution:
Revised Text: In section 9.3.5, "SatisfierProperty," change the fourth and fifth bullet from:
For the Attribute kind, the value of the
SatisfierProperty is of type long, double, string, or
an enumeration type.
In the case of long, double or string, the value of the
Property must be of the same type. If the value of the
SatisfierProperty is of enumeration type, the value of
the Property is of type string, containing the
enumeration value that must compare equal to the
SatisfierProperty value.
For the Selection kind, the value of the
SatisfierProperty is a sequence of type long, double,
string, or an enumeration type. The same rules as for
the Attribute kind apply.
To:
For the Attribute kind, the value of the
SatisfierProperty is of type long, double or string.
The value of the Property must be of the same type and
compare equal to the SatisfierProperty value.
For the Selection kind, the value of the
SatisfierProperty is a sequence of type long, double or
string. The same rules as for the Attribute kind apply.
Disposition: Resolved
Actions taken:
August 1, 2005: received issue
June 7, 2006: closed issue
Discussion: Resolution:
Because of the added complexity, and the low mileage, I propose to remove enumerated properties from the spec.
Issue 8979: Distinguish Node vs. Component Exec Parameters in Deployment Plan (deployment-rtf)
Click here for this issue's archive.
Source: Zuehlke Engineering (Mr. Frank Pilhofer, fpilhofer2008(at)gmail.com)
Nature: Uncategorized Issue
Severity:
Summary: The resolution for issue 6435 split the former "execution
parameters" into "node execution parameters" and "component
execution parameters" within the Component Data Model, by
extending the MonolithicImplementationDescription element
to have separate "nodeExecParameter" and "componentExec-
Parameter" property lists.
However, the resolution neglected to make a similar change
to the Execution Data Model -- the MonolithicDeployment-
Description element in the Deployment Plan only has a single
list of "execParameter" properties.
This should be changed to be in sync with the Component
Data Model.
Proposed resolution:
In section 6.8.3.3 (MonoliticDeploymentDescription
associations), remove the "execParameter" association.
Instead, add the following two associations:
nodeExecParameter: Property[*]
Execution parameters that are passed to the target
environment. Copied from the MonoliticImplementation-
Description.
componentExecParameter: Property[*]
Execution parameters that are passed to the primary
artifact. Copied from the MonoliticImplementation-
Description.
Resolution:
Revised Text: In section 6.8.3.3 (MonolithicDeploymentDescription associations), remove the "execParameter" association.
Instead, add the following two associations:
nodeExecParameter: Property[*]
Execution parameters that are passed to the target
environment. Copied from the MonolithicImplementation-
Description.
componentExecParameter: Property[*]
Execution parameters that are passed to the primary
artifact. Copied from the MonolithicImplementation-
Description.
Disposition: Resolved
Actions taken:
August 26, 2005: received issue
June 7, 2006: closed issue
Discussion: Resolution:
Split the "execution parameters" in the Execution Data Model into two sets of parameters to be in sync with the Component Data Model.
Issue 8983: Deployment Requirements in Deployment Plan (deployment-rtf)
Click here for this issue's archive.
Source: Zuehlke Engineering (Mr. Frank Pilhofer, fpilhofer2008(at)gmail.com)
Nature: Uncategorized Issue
Severity:
Summary: The Deployment Plan, in its Artifact Deployment Description
and Monolithic Deployment Description element, copies the
deployment requirements from the component data model, i.e.,
from the Implementation Artifact Description and Monolithic
Implementation Description, respectively.
However, while the deployment requirements for a monolithic
implementation are represented using the Implementation
Requirement element, Monolithic Deployment Description only
allows deployment requirements to be of type Requirement,
and is thus not able to completely capture the original
requirement.
This is an effect of the resolution of issue 6392, which
extended deployment requirements for monolithic
implementations in the component data model from
"Requirement" to "ImplementationRequirement", but neglected
to make a similar change to the Monolitic Deployment
Description.
This information may not be necessary in the deployment plan
in the first place, as an Instance Deployment Description
now, also as a result of this resolution, captures the
resources that were chosen to satisfy the monolithic
implementation's requirements.
As noted in the resolution, an issue to remove the copies
of deployment requirements should be raised separately. Here
it is.
Proposed resolution:
Remove the copies of deployment requirements, in both
Artifact Deployment Description and Monolithic Deployment
Description.
In section 6.8.2.1, "ArtifactDeploymentDescription
Description", change the last sentence from
Execution parameters and deployment requirements are
copied from the ImplementationArtifactDescription.
to
Execution parameters are copied from the
ImplementationArtifactDescription.
In section 6.8.2.3, "ArtifactDeploymentDescription
Associations", remove the "deployRequirement"
association.
In section 6.8.3.1, "MonolithicDeploymentDescription
Description", change the last sentence from
The execution parameters and deployment requirements
are copied from the MonolithicImplementationDescription.
to
The execution parameters are copied from the
MonolithicImplementationDescription.
In section 6.8.3.3, "MonolithicDeploymentDescription
Associations", remove the "deployRequirement"
association.
Resolution:
Revised Text: In section 6.8.2.1, "ArtifactDeploymentDescription Description", change the last sentence from
Execution parameters and deployment requirements are
copied from the ImplementationArtifactDescription.
to
Execution parameters are copied from the
ImplementationArtifactDescription.
In section 6.8.2.3, "ArtifactDeploymentDescription Associations", remove the "deployRequirement" association.
In section 6.8.3.1, "MonolithicDeploymentDescription Description", change the last sentence from
The execution parameters and deployment requirements
are copied from the MonolithicImplementationDescription.
to
The execution parameters are copied from the
MonolithicImplementationDescription.
In section 6.8.3.3, "MonolithicDeploymentDescription Associations", remove the "deployRequirement" association.
Disposition: Resolved
Actions taken:
August 30, 2005: received issue
June 7, 2006: closed issue
Discussion: Remove the copies of deployment requirements, in both ArtifactDeploymentDescription and MonolithicDeploymentDescription.
Issue 8984: Information about Port Delegations Lost In Planning (deployment-rtf)
Click here for this issue's archive.
Source: Zuehlke Engineering (Mr. Frank Pilhofer, fpilhofer2008(at)gmail.com)
Nature: Uncategorized Issue
Severity:
Summary: The resolution for issue 6392 introduced the ability
for a monolithic implementation to delegate some of its
ports to a resource.
To this effect, the ImplementationRequirement element
has three attributes, "resourceUsage", "resourcePort"
and "componentPort" to identify how the component
instance uses the resource.
In the deployment plan, the InstanceResourceDeployment-
Description element captures which resource was chosen
to satisfy the requirement. It has a "resorceUsage",
but neither "resourcePort" and "componentPort"
attributes.
This information is necessary in the deployment plan.
Proposed resolution:
Add "resourcePort" and "componentPort" attributes to
the InstanceResourceDeploymentDescription element, to
carry the information from the original implementation
requirement.
In section 6.8.12.2, add two attributes:
resourcePort [0..1]: The resource port used by the
component instance. Copied from the original
ImplementationRequirement.
componentPort [0..1]: The component port delegated
to or used by the resource. Copied from the
original ImplementationRequirement.
Resolution:
Revised Text: In section 6.8.12.2, add two attributes:
resourcePort [0..1]: The resource port used by the
component instance. Copied from the original
ImplementationRequirement.
componentPort [0..1]: The component port delegated
to or used by the resource. Copied from the
original ImplementationRequirement.
Disposition: Resolved
Actions taken:
August 31, 2005: received issue
June 7, 2006: closed issue
Discussion: Resolution:
Add "resourcePort" and "componentPort" attributes to the InstanceResourceDeploymentDescription element, to carry the information from the original implementation requirement.
Issue 9239: IDL name clash due to enumeration values defined twice (deployment-rtf)
Click here for this issue's archive.
Source: Fraunhofer FOKUS (Mr. Andreas Hoffmann, andreas.hoffmann(at)fokus.fraunhofer.de)
Nature: Uncategorized Issue
Severity:
Summary: In section 6.4.11.5 (Semantics of LocalityKind), different values including "DifferentProcess" and "NoConstraint" are defined for the LocalityKind enumeration of the Component Data Model. In section 6.8.6.5 (Semantics of PlanLocalityKind), the constants for the PlanLocalityKind enumeration are defined for the Execution Data Model, also containg these two names mentioned above. The problem is that enumeration names are introduced into their parent scope. Thus, the definition of the PlanLocalityKind reusing the same names as used in the LocalityKind enumeration causes a name clash in the IDL.
Proposed resolution:
Add a prefix "Plan" to all the constants of the PlanLocalityKind enumeration.
In section 6.8.6.5, change the bullet list from
SameProcess: This value specifies that the component instances that the PlanLocality element referers to shall be started in the same process by the deployment engine.
DifferentProcess: This value specifies that the component instances that the PlanLocality element referers to shall be started in different processes by the deployment engine.
NoConstraint: This value specifies that there is no locality constraint for the component instances that the PlanLocality element refers to. The purpose of this special value is to enable to switch locality constraints temporarily off without loosing the structure of the DeploymentPlan, i.e. the PlanLocality class instance with its associations to InstanceDeploymentDescription can be kept for later reuse but has currently no impact on the execution of the DeploymentPlan.
to
PlanSameProcess: This value specifies that the component instances that the PlanLocality element referers to shall be started in the same process by the deployment engine.
PlanDifferentProcess: This value specifies that the component instances that the PlanLocality element referers to shall be started in different processes by the deployment engine.
PlanNoConstraint: This value specifies that there is no locality constraint for the component instances that the PlanLocality element refers to. The purpose of this special value is to enable to switch locality constraints temporarily off without loosing the structure of the DeploymentPlan, i.e. the PlanLocality class instance with its associations to InstanceDeploymentDescription can be kept for later reuse but has currently no impact on the execution of the DeploymentPlan.
Resolution: Add a prefix "Plan" to all the constants of the PlanLocalityKind enumeration.
Revised Text: In section 6.8.6.5, change the bullet list from
· SameProcess: This value specifies that the component instances that the PlanLocality element refers to shall be started in the same process by the deployment engine.
· DifferentProcess: This value specifies that the component instances that the PlanLocality element refers to shall be started in different processes by the deployment engine.
· NoConstraint: This value specifies that there is no locality constraint for the component instances that the PlanLocality element refers to. The purpose of this special value is to enable to switch locality constraints temporarily off without loosing the structure of the DeploymentPlan, i.e. the PlanLocality class instance with its associations to InstanceDeploymentDescription can be kept for later reuse but has currently no impact on the execution of the DeploymentPlan.
to
· PlanSameProcess: This value specifies that the component instances that the PlanLocality element refers to shall be started in the same process by the deployment engine.
· PlanDifferentProcess: This value specifies that the component instances that the PlanLocality element refers to shall be started in different processes by the deployment engine.
· PlanNoConstraint: This value specifies that there is no locality constraint for the component instances that the PlanLocality element refers to. The purpose of this special value is to enable to switch locality constraints temporarily off without loosing the structure of the DeploymentPlan, i.e. the PlanLocality class instance with its associations to InstanceDeploymentDescription can be kept for later reuse but has currently no impact on the execution of the DeploymentPlan.
Disposition: Resolved
Actions taken:
January 18, 2006: received issue
June 7, 2006: closed issue