[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]
Subject: NEW ISSUE: Definition of compatible superset and subset
Resending with corrected subject line.
Simon
-------- Original Message --------
Subject: [sca-assembly] Definition of compatible superset and subset
Date: Mon, 02 Mar 2009 11:27:27 +0000
From: Simon Nash <oasis@cjnash.com>
To: OASIS Assembly <sca-assembly@lists.oasis-open.org>
TARGET: Java Assembly Model specification
DESCRIPTION: Definition of compatible superset and subset
Assembly uses three terms, "compatible superset", "compatible subset",
and "equivalent".
"Compatible superset" is used in the context of:
1) Setting an interface on a component reference. The interface on the
component reference must be a compatible superset of the interface on
the corresponding reference in the component Type.
2) Setting an interface on a composite reference. The interface on the
composite reference must be a compatible superset of the interface on
the corresponding promoted component reference.
3) In the section on wiring, where this term is currently defined.
4) In autowire, where the interface on the service must be a compatible
superset of the interface on the reference.
Similarly, "compatible subset" is used in the context of component
services and composite services.
The term "equivalent" (as it applies to interfaces) is used when crossing
interface language boundaries: "... are equivalent if the operation(s),
parameter(s), return value(s) and faults/exceptions map to each other."
There are three problems with this:
1) The term "compatible superset" is defined but the term "compatible
subset" is not defined.
2) The term 'equivalent' is unnecessary. The definition of "compatible"
should be extended to address cross-language scenarios.
3) The terms are defined in the wire section and apply only to wires.
This needs to be changed so that there is an independent definition for
the superset/subset that is then used everywhere (including the wires
section and the bindings spec).
PROPOSAL:
a) Add a new section 4.2.1 Interface Subset Compatibility
An interface B is a compatible subset of another interface A if and
only if all of points 1 through 7 in the following list apply.
1. interfaces A and B are either both remotable or else both local
2. the operations in interface B are the same as or a subset of the
operations in interface A
3. compatibility for individual operations of an interface is defined
as compatibility of the signature, i.e., the operation name,
input types, and output types are the same
4. the order of the input and output types for each operation in
interface A is the same as the order of the input and output types
for the corresponding operation in interface B
5. the set of Faults and Exceptions expected by each operation in
interface A is the same as or a subset of those specified by the
corresponding operation in interface B
6. if the source and target interfaces have different SCA interface
types representing different interface languages (e.g., Java interfaces
and WSDL portTypes), interface B is mappable into the interface
language of interface A using mapping rules defined by the
SCA interface type of interface B and/or the SCA interface type
of interface A, and the mapped interface B is a compatible subset
of interface A according to points 1 through 5 above
7. if either interface A or interface B declares a callback interface
then both interface A and interface B declare callback interfaces
and the callback interface declared on interface A is a compatible
subset of the callback interface declared on interface B,
according to points 1 through 6 above
b) Add a new section 4.3.2 Interface Superset Compatibility
An interface B is a compatible superset of another interface A if and
only if all of points 1 through 7 in the following list apply.
1. interfaces A and B are either both remotable or else both local
2. the operations in interface B are the same as or a superset of the
operations in interface A
3. compatibility for individual operations of an interface is defined
as compatibility of the signature, i.e., the operation name,
input types, and output types are the same
4. the order of the input and output types for each operation in
interface B is the same as the order of the input and output types
for the corresponding operation in interface A
5. the set of Faults and Exceptions specified by each operation in
interface B is the same as or a subset of those expected by the
corresponding operation in interface A
6. if the source and target interfaces have different SCA interface
types representing different interface languages (e.g., Java interfaces
and WSDL portTypes), interface B is mappable into the interface
language of interface A using mapping rules defined by the
SCA interface type of interface B and/or the SCA interface type
of interface A, and the mapped interface B is a compatible superset
of interface A according to points 1 through 5 above
7. if either interface A or interface B declares a callback interface
then both interface A and interface B declare callback interfaces
and the callback interface declared on interface A is a compatible
superset of the callback interface declared on interface B,
according to points 1 through 6 above
c) Replace lines 1790 through 1811 in cd02-rev6 (PDF version) by:
"A wire can only connect a source to a target if the target implements
an interface that is compatible with the interface declared by the source.
The source and the target are compatible if the target interface is a
compatible superset of the source interface."
---------------------------------------------------------------------
To unsubscribe from this mail list, you must leave the OASIS TC that
generates this mail. Follow this link to all your TCs in OASIS at:
https://www.oasis-open.org/apps/org/workgroup/portal/my_workgroups.php
[Date Prev] | [Thread Prev] | [Thread Next] | [Date Next] -- [Date Index] | [Thread Index] | [List Home]