You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tuscany.apache.org by Jean-Sebastien Delfino <js...@apache.org> on 2008/02/03 08:03:43 UTC

Re: Bypassing unnecessary transforms by Tuscany databinding framework

Scott Kurz wrote:
> Some examples of what I meant..
> 
>  For the service instance I'm invoking I'd like to know:
>   * target JVM is it the same as the client instance?  (is this a
> "Node" in Tuscany terms?, sorry of my ignorance)
>   * target classloader  (if it's not the same or a child I can't do PBR)
>   * target DB (if it's the same maybe I can do PBR)
>   * is target annotated with @AllowsPBR
> 

It looks like these are things that a binding knows about.

So, is it fair to say that it would be better to not have a magic 
databinding interceptor added automatically to the invocation chain and 
instead let the binding decide to copy or not or transform or not based 
on its knowledge of the target that it's talking to?
-- 
Jean-Sebastien

---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-dev-help@ws.apache.org


Re: Bypassing unnecessary transforms by Tuscany databinding framework

Posted by Raymond Feng <en...@gmail.com>.
Hi,

I think we should further understand what roles the core, binding and 
implementation can play to enforce the pass-by-value semantics.

Implementation extension: knows the setting of @AllowsPassByReference, might 
know if the implement code would modify the input data and if the output 
data could be changed by the client side (for example, implementation.bpel 
and implementation.xquery probably never mutate the client data).

Binding extension: knows if the underlying protocol copies the input/output 
data so that the target implementation would be isolated from direct data 
references to the client side (for example, the binding.ws, binding.jms or 
binding.rmi will always marshal/unmarshal the data accross the transport and 
pass-by-value is naturally achieved). knows the context (such as 
classloader) to copy/transform the data if necessary.

Core: knows if the interface is remote (pass-by-value only applies to 
remotable interfaces), can interact with the binding/implementation to 
decide if it should add a pass-by-value interceptor to enforce the 
semantics. knows if the data would be transformed by databinding layer (the 
data will be copied if it happens).

If we agree on the above, we can then reflect these roles in the different 
layers (maybe SPI as well).

Thanks,
Raymond

----- Original Message ----- 
From: "Jean-Sebastien Delfino" <js...@apache.org>
To: <tu...@ws.apache.org>
Sent: Saturday, February 02, 2008 11:03 PM
Subject: Re: Bypassing unnecessary transforms by Tuscany databinding 
framework


> Scott Kurz wrote:
>> Some examples of what I meant..
>>
>>  For the service instance I'm invoking I'd like to know:
>>   * target JVM is it the same as the client instance?  (is this a
>> "Node" in Tuscany terms?, sorry of my ignorance)
>>   * target classloader  (if it's not the same or a child I can't do PBR)
>>   * target DB (if it's the same maybe I can do PBR)
>>   * is target annotated with @AllowsPBR
>>
>
> It looks like these are things that a binding knows about.
>
> So, is it fair to say that it would be better to not have a magic 
> databinding interceptor added automatically to the invocation chain and 
> instead let the binding decide to copy or not or transform or not based on 
> its knowledge of the target that it's talking to?
> -- 
> Jean-Sebastien
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: tuscany-dev-unsubscribe@ws.apache.org
> For additional commands, e-mail: tuscany-dev-help@ws.apache.org
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: tuscany-dev-unsubscribe@ws.apache.org
For additional commands, e-mail: tuscany-dev-help@ws.apache.org