On Aug 10, 2006, at 8:37 AM, Ignacio Silva-Lepe wrote:

Sure, I want to make sure I understand what local callbacks (or plain invocations for that matter) via references means.

I was defining a local callback as being a bidirectional wire to a target component, which (by definition) is in the same composite. A wire whose target is a reference would be a "remote callback" since the invocation flows outside a composite. For local callbacks, we don't need to persist ids and have more "control" of things (lifecycle, thread dispatching, by-ref, etc.). For remote callbacks, I don't think we should allow direct wiring to a child component in another composite as that breaks visibility rules for composites. Rather, I was thinking we would need to design for a durable store to be able to map back to the callback wire and target instance (target instance id may be able to be calculated using an FQN of its component name in the composite hierarchy). On the outbound leg, the reference target invoker would persist the id to wire chain mapping. The binding would be responsible for flowing the ids. In this case, references act as services and services act as references during a callback and would have to re-associate the ids with invocation chains.

A ReferenceExtension is built wrt a binding, e.g., Axis2Reference. So for 'local' we treat the binding as a (dummy) special case and wire directly to a component's or a composite's service, as in EchoReference but more fleshed out. Similarly, for service, which for local could be wired from a component's or a composite's reference. If this makes sense, then it means we need new JavaReference, JavaService and JavaBindingBuilder implementations that don't currently exist and that use a dummy JavaBinding similar to EchoBinding.
I may be misunderstanding but for the local case, I think things are conceptually the same but there are some optimizations and implementation differences that do not require us to have JavaReference or JavaService. References on composites are just representations of some external service and are responsible for dispatching an invocation to it over a binding. Similarly, a reference on a Java component is just a representation of the target service and the binding can be considered something like "pass-by- reference" or "vm". However, implementations vary with the composite reference being realized as a Reference and a Java component reference being just a proxy. I don't think we need the extra step of creating JavaService or JavaReference for local wires as they are never used (i.e. Java implementations always use the proxy representation).

I may be missing your point though so let me know if this makes any sense.

Jim

I am working on this assumption. Let me know if I'm missing something, e.g., some currently existing classes that should be used.

Thanks
----- Original Message ----- From: "Jim Marino" <[EMAIL PROTECTED]>
To: <tuscany-dev@ws.apache.org>
Sent: Thursday, August 10, 2006 11:13 AM
Subject: Re: [jira] Updated: (TUSCANY-585) Initial support for callbacks


Hi Ignacio,

I'm out today and tomorrow. Could you maybe post to he list and I'll try and respond as soon as I have a chance to pick up email?

Jim


On Aug 10, 2006, at 7:12 AM, Ignacio Silva-Lepe wrote:

Hi Jim,

When you have some time to chat, I have a few questions about references.

Thanks



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



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

Reply via email to