Hi,

The in-vm invocations we talk about here is for the optimizations over remotable interfaces between components co-located on the same JVM.

In 1.6, we do the following for components running within the same node with binding.sca.

1) For local interfaces, we always do local in-vm invocation without copying data. 2) For remotable interfaces, if "allowsPassByReference" flag is true, we do local in-vm invocations without copying data. 3) For remotable interfaces, if "allowsPassByReference" flag is false (default), we do local in-vm invocations by copying data to enforce pass-by-value.

For cross-node invocations, we use a protocol stack (web service in Tuscany).

Thanks,
Raymond

--------------------------------------------------
From: "Albert Tsang" <[email protected]>
Sent: Monday, February 22, 2010 2:22 PM
To: <[email protected]>
Subject: Re: [2.x] In-VM invocation between components

Raymond,

We're piloting 1.6 right now and from what I read from your book...

The default sca binding for components that are Java implementations will
use method invocation against a Java proxy since it doesn't know whether or
not the component is within the same JVM.
We're worried about the overhead for this.  Can you comment on detailing
what it's doing exactly? Ideally we would like in-JVM invocations be to as
seamless as possible once dependencies and runtime are loaded at startup.

-a-


On 2/22/10 9:44 AM, "Raymond Feng" <[email protected]> wrote:

Yes, I'm thinking of adding a few methods to InterfaceContractMapper to tell if "pass-by-reference" is supported (no data copy is required) between the
source and target operation.

Thanks,
Raymond
--------------------------------------------------
From: "Simon Laws" <[email protected]>
Sent: Monday, February 22, 2010 5:10 AM
To: <[email protected]>
Subject: Re: [2.x] In-VM invocation between components

Assuming that you have established that the endpoint and endpoint
reference are in the same JVM and the interface is remotable we still
need to establish whether the message is passing across a classloader
boundary don't we? In which case and extra bit of work is required.

Simon


Reply via email to