OASIS Mailing List ArchivesView the OASIS mailing list archive below
or browse/search using MarkMail.

 


Help: OASIS Mailing Lists Help | MarkMail Help

sca-assembly message

[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]