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]