On Sep 25, 2006, at 6:47 PM, scabooz wrote:

Sebastien did a good job enumerating the rationale for why the <binding.sca> exists in the specifications. Perhaps your concern is over the name of the
binding, and not the specific reason for its existence?  I could be
convinced that "default" is a bad name, but we'd need a suggestion for
an improvement.

It wasn't really but now that you mention it default does tend to imply a well-known value. I would be concerned users may assume a specific protocol will always be the default (e.g. the original proposal on this thread about making WS the default for the C++ runtime) whereas the goal of the spec is to allow the container to choose which protocol it considers optimal. The semantic is "unspecified" rather than "default" but that is not a good description.


<binding.sca> differs from a wire in the fact that a wire only denotes
a relationship between two components. A binding specifies the message format/transport-protocol to be used when the given components interact. A wire is only valid if both ends of the wire are using the same (or compatible) binding. The definition of compatible is under construction at the moment.

"Only"? I think a wire is more emphatic than that - it /defines/ a relationship between two components. As you say, a binding specifies the message format/transport protocol which is essential for non-SCA interactions but which is also the very thing we are trying to abstract away in the assembly model for SCA-to-SCA relationships.

Validity is also true for <binding.sca> but unlike a wire a binding is only attached to one party in the relationship making compatibility and validity harder to achieve. With the ability to decompose a composite to different address spaces potentially implemented by different SCA runtimes, use of a _default_ binding is insufficient as the platforms hosting the related components may have different _defaults_ with no guarantee of interop. However, the presence of a wire in the assembly is a clear contract that the SCA system must obey or default on [sorry, couldn't resist]


When two components are related via a reference-value or via a wire, the <binding.sca> capability (I'm trying hard not to say default binding) is automatically associated with the relationship. IMHO, the <binding.sca> element need not be
specified.

I agree - in fact I would go further and say that <binding.sca> need / never/ be specified, making it a redundant concept that could be removed from the spec.

I would expect that the vast majority of SCA services will be wired and
composed using the _default_ binding, without explicitly stating it.

There are several known issues in the Assembly spec that relate to the
_default_ binding, especially in the context of recursive composition, and
with binding overrides in general.  Proposals are being discussed.

--
Jeremy


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to