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