On 7/16/07, Raymond Feng <[EMAIL PROTECTED]> wrote:
Hi, As captured at http://cwiki.apache.org/TUSCANYWIKI/multiple-bindings-and-reference-multiplicity.html, a reference can use "target" attribute or binding uri to declare the outbound endpoints. Multiplicity and promotion complicate the picture even more. I suggest that we internally (for example, in CompositeBuilderImpl) normalize the reference bindings as illustrated by column 4 of the tables in the wiki page. Then the runtime can follow the two simple rules: Rule #1. Binding with a specified endpoint = a wire Rule #2. Multiplicity is about the number of wires allowed for the reference It might require we add something such as "resolvedEndpoint" to the Binding interface (leaving the "uri" attribute to host the value from SCDL). For SCA reference binding, the resolvedEndpoint could be the Component/ComponentService. What do you guys think? Thanks, Raymond --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED] Hi Raymond
This subject seems sufficiently complex that resolving the binding/wire target to a resolved endpoint seems like a good idea. Just testing my understanding of what you are proposing your two rules imply once the endpoints have been resolved; there are as many reference wires as there are reference bindings (#1) but limited by the reference multiplicity (#2) Is that right? Some more general questions come to mind but I'm afraid they are a bit random at the moment. Am just getting up the curve on the ins and outs of wiring multiplicities (your table is a great help b.t.w) In the case where you have a multiplicity greater than one and a single binding won't you need a collection of resolved endpoints? If you don't specify binding.sca is it only assumed to be there is you don't specify anything else (currently the code puts it in regardless). This will have an impact on the multiplicity calculation What happens on the service side? This is a question about the "Rule #1. Binding with a specified endpoint = a wire". The binding with a specified end point (as derived from binding information such as WSDL) will give rise to a wire in the service side also so in the grand scheme of things there is technically more than one wire. Or are these just assumed to be separate parts of the same wire. I'm a little lacking in detail about the end to end piece here so need to investigate in more detail. What happens if the target derived from the binding and from the reference disagree. Is this an error or multiple wires. In you table you reference on the wiki where is the multiplicity being defined in the promotion cases (it's just included as a comment in the table)? A spec question. What's the implication of promoting multiple references at once? I assume that some sort of composite reference results which will have an impact on multiplicity. Simon