Re: Physical Component Defintion

2007-02-08 Thread Jim Marino


On Feb 7, 2007, at 2:49 PM, Meeraj Kunnumpurath wrote:


Jim,

I have been looking at the work you have been doing with component  
manager and URIs and figuring out how this would fit in with  
federated deployment model I have been working on. Currently, the  
master creates the physical component defintion to get the  
component running on the slave. This gets marshalled and sent to  
the slave through the discovery service. On the slave this is  
picked up by the federated deployer to be umarshalled using the  
marshaller framework. The component gets built from the physical  
component definition by the new builder framework. The XML fragment  
for Java components looks as follows,


componentJava componentId=uri xmlns=http://tuscany.apache.org/ 
xmlns/1.0-SNAPSHOT
 instanceFactoryByteCodeBase 64 Encoded byte code/ 
instanceFactoryByteCode

/component-java


I was thinking about wrapping the loaded instance factory into the  
JavaAtomicComponent in the javaPhysicalComponentBuilder and expect  
the wires to be resolved when createInstance is called on the  
component. Would you need any additional information on top of the  
instance factory to create the wires, interceptors, policies etc on  
the slave.


Yes, I think we will eventually need information to constitute  
interceptor chains on the slave. I was thinking the policy builders  
would be run on the master and serialize wire information as part of  
the portable component definition. On the slave, a series of  
interceptor builders would be used to add interceptors to a wire as  
it is created by the WireService on a slave. This would effectively  
split our single-VM wire construction process across VMs and enable  
our federated design. All of the wire processing, normalization, and  
optimization would be done on the master. On the slave, the  
interceptor builders could be dispatched to based on a QName and  
would just be responsible for providing portable interceptors. We  
will also need to allow for extensible interceptor information but  
the serialization/deserialization process should work similar to the  
way Marshallers work.


Wires could then be handed to the instance factory for use in  
injection. This give us a completely distributed wiring engine that  
is very fast :-)




Also, where do you expect the autowire aspects resolved?


I would expect autowire to be resolved as the model is processed on  
the master. This will allow us to remove autowire specializations  
from the slave. I plan to do this in steps. First, move autowire from  
CompositeComponent to ComponentManager. Then, move it from  
ComponentManager to the resolve step during loading. As we move it to  
loading, I also plan to implement it according to the recent 1.0 spec  
changes.


Jim



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



Re: Physical Component Defintion

2007-02-08 Thread Meeraj Kunnumpurath

Thanks Jim.

Based on what you said, this is how plan to have the on the wire XML 
representation of the Java Physical component definition.


componentJava componentId=uri 
xmlns=http://tuscany.apache.org/xmlns/1.0-SNAPSHOT;
 instanceFactoryByteCodeBase 64 Encoded byte 
code/instanceFactoryByteCode

 inBoundWires
   wire uri=wire1
 interceptor uri=int1/
 interceptor uri=int2/
   /wire
   wire uri=wire2
 interceptor uri=int1/
   /wire
 /inBoundWires
 outBoundWires
   wire uri=wire3
 interceptor uri=int3/
 interceptor uri=int4/
   /wire
 /outBoundWires
/component-java

The wire and policy metadata will be defined in the base class 
PhysicalComponentDefinition, since they are applicable for all component 
types and not just the Java component type. This will get unmarshalled on 
the slave and passed into the builder. The builder would create the 
InboundWireImpl and OutboundWireImpl instances and add them to the 
component. Would we need anything more than the URI when the wire instances 
are created by the builder. If yes, would that be part of the physical 
component definition as well?


Also, for the JavaAtomicComponent, I am planning to pass in the instance 
factory into the component from the builder, so that it can be used later 
when createInstance is called. I am also wondering with all these changes, 
is it worth simplifying the PojoAtomicComponent and JavaAtomicComponent , 
since most of the stuff in PojoConfiguration is going to be encapsulated in 
the dynamically generated byte code for the instance factory. Maybe, Jeremy 
has a view on this as well.


Ta
Meeraj





From: Jim Marino [EMAIL PROTECTED]
Reply-To: tuscany-dev@ws.apache.org
To: tuscany-dev@ws.apache.org
Subject: Re: Physical Component Defintion
Date: Thu, 8 Feb 2007 14:43:40 -0800


On Feb 7, 2007, at 2:49 PM, Meeraj Kunnumpurath wrote:


Jim,

I have been looking at the work you have been doing with component  
manager and URIs and figuring out how this would fit in with  federated 
deployment model I have been working on. Currently, the  master creates 
the physical component defintion to get the  component running on the 
slave. This gets marshalled and sent to  the slave through the discovery 
service. On the slave this is  picked up by the federated deployer to be 
umarshalled using the  marshaller framework. The component gets built from 
the physical  component definition by the new builder framework. The XML 
fragment  for Java components looks as follows,


componentJava componentId=uri xmlns=http://tuscany.apache.org/ 
xmlns/1.0-SNAPSHOT
 instanceFactoryByteCodeBase 64 Encoded byte code/ 
instanceFactoryByteCode

/component-java


I was thinking about wrapping the loaded instance factory into the  
JavaAtomicComponent in the javaPhysicalComponentBuilder and expect  the 
wires to be resolved when createInstance is called on the  component. 
Would you need any additional information on top of the  instance factory 
to create the wires, interceptors, policies etc on  the slave.


Yes, I think we will eventually need information to constitute  interceptor 
chains on the slave. I was thinking the policy builders  would be run on 
the master and serialize wire information as part of  the portable 
component definition. On the slave, a series of  interceptor builders would 
be used to add interceptors to a wire as  it is created by the WireService 
on a slave. This would effectively  split our single-VM wire construction 
process across VMs and enable  our federated design. All of the wire 
processing, normalization, and  optimization would be done on the master. 
On the slave, the  interceptor builders could be dispatched to based on a 
QName and  would just be responsible for providing portable interceptors. 
We  will also need to allow for extensible interceptor information but  the 
serialization/deserialization process should work similar to the  way 
Marshallers work.


Wires could then be handed to the instance factory for use in  injection. 
This give us a completely distributed wiring engine that  is very fast :-)




Also, where do you expect the autowire aspects resolved?


I would expect autowire to be resolved as the model is processed on  the 
master. This will allow us to remove autowire specializations  from the 
slave. I plan to do this in steps. First, move autowire from  
CompositeComponent to ComponentManager. Then, move it from  
ComponentManager to the resolve step during loading. As we move it to  
loading, I also plan to implement it according to the recent 1.0 spec  
changes.


Jim



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



_
Laugh, share and connect with Windows Live Messenger 
http://clk.atdmt.com/MSN/go/msnnkwme002001msn/direct/01/?href=http://imagine-msn.com/messenger/launch80/default.aspx

Re: Physical Component Defintion

2007-02-08 Thread Jeremy Boynes

I think there are a couple of extra things needed here:

Firstly, just a list of interceptor's is not going to be enough. We  
really need each one to be configurable, something like:


  inBoundWires
wire uri=wire1
  int:cloner ... params .../
/wire

where the int:cloner element identifies the appropriate clone  
interceptor.


We also need to be able to define physical bindings, so the wire may  
not be one that connects the component to another component in that  
runtime, but to a transport binding used to call another node:


  outBoundWires
 wire uri=wire3
transport:axis2 .. binding params ... /
 /wire

On the last note, it might be easier for now to add a new Component  
implementation that was created by the PCB rather than trying to  
retrofit PojoAtomicComponent.


--
Jeremy

On Feb 8, 2007, at 3:26 PM, Meeraj Kunnumpurath wrote:


Thanks Jim.

Based on what you said, this is how plan to have the on the wire  
XML representation of the Java Physical component definition.


componentJava componentId=uri xmlns=http://tuscany.apache.org/ 
xmlns/1.0-SNAPSHOT
 instanceFactoryByteCodeBase 64 Encoded byte code/ 
instanceFactoryByteCode

 inBoundWires
   wire uri=wire1
 interceptor uri=int1/
 interceptor uri=int2/
   /wire
   wire uri=wire2
 interceptor uri=int1/
   /wire
 /inBoundWires
 outBoundWires
   wire uri=wire3
 interceptor uri=int3/
 interceptor uri=int4/
   /wire
 /outBoundWires
/component-java

The wire and policy metadata will be defined in the base class  
PhysicalComponentDefinition, since they are applicable for all  
component types and not just the Java component type. This will get  
unmarshalled on the slave and passed into the builder. The builder  
would create the InboundWireImpl and OutboundWireImpl instances and  
add them to the component. Would we need anything more than the URI  
when the wire instances are created by the builder. If yes, would  
that be part of the physical component definition as well?


Also, for the JavaAtomicComponent, I am planning to pass in the  
instance factory into the component from the builder, so that it  
can be used later when createInstance is called. I am also  
wondering with all these changes, is it worth simplifying the  
PojoAtomicComponent and JavaAtomicComponent , since most of the  
stuff in PojoConfiguration is going to be encapsulated in the  
dynamically generated byte code for the instance factory. Maybe,  
Jeremy has a view on this as well.


Ta
Meeraj





From: Jim Marino [EMAIL PROTECTED]
Reply-To: tuscany-dev@ws.apache.org
To: tuscany-dev@ws.apache.org
Subject: Re: Physical Component Defintion
Date: Thu, 8 Feb 2007 14:43:40 -0800


On Feb 7, 2007, at 2:49 PM, Meeraj Kunnumpurath wrote:


Jim,

I have been looking at the work you have been doing with  
component  manager and URIs and figuring out how this would fit  
in with  federated deployment model I have been working on.  
Currently, the  master creates the physical component defintion  
to get the  component running on the slave. This gets marshalled  
and sent to  the slave through the discovery service. On the  
slave this is  picked up by the federated deployer to be  
umarshalled using the  marshaller framework. The component gets  
built from the physical  component definition by the new builder  
framework. The XML fragment  for Java components looks as follows,


componentJava componentId=uri xmlns=http:// 
tuscany.apache.org/ xmlns/1.0-SNAPSHOT
 instanceFactoryByteCodeBase 64 Encoded byte code/  
instanceFactoryByteCode

/component-java


I was thinking about wrapping the loaded instance factory into  
the  JavaAtomicComponent in the javaPhysicalComponentBuilder and  
expect  the wires to be resolved when createInstance is called on  
the  component. Would you need any additional information on top  
of the  instance factory to create the wires, interceptors,  
policies etc on  the slave.


Yes, I think we will eventually need information to constitute   
interceptor chains on the slave. I was thinking the policy  
builders  would be run on the master and serialize wire  
information as part of  the portable component definition. On the  
slave, a series of  interceptor builders would be used to add  
interceptors to a wire as  it is created by the WireService on a  
slave. This would effectively  split our single-VM wire  
construction process across VMs and enable  our federated design.  
All of the wire processing, normalization, and  optimization would  
be done on the master. On the slave, the  interceptor builders  
could be dispatched to based on a QName and  would just be  
responsible for providing portable interceptors. We  will also  
need to allow for extensible interceptor information but  the  
serialization/deserialization process should work similar to the   
way Marshallers work.


Wires could then be handed to the instance factory for use in   
injection. This give us a completely distributed

Re: Physical Component Defintion

2007-02-08 Thread Jim Marino


On Feb 8, 2007, at 3:26 PM, Meeraj Kunnumpurath wrote:


Thanks Jim.

Based on what you said, this is how plan to have the on the wire  
XML representation of the Java Physical component definition.


componentJava componentId=uri xmlns=http://tuscany.apache.org/ 
xmlns/1.0-SNAPSHOT
 instanceFactoryByteCodeBase 64 Encoded byte code/ 
instanceFactoryByteCode

 inBoundWires
   wire uri=wire1
 interceptor uri=int1/
 interceptor uri=int2/
   /wire
   wire uri=wire2
 interceptor uri=int1/
   /wire
 /inBoundWires
 outBoundWires
   wire uri=wire3
 interceptor uri=int3/
 interceptor uri=int4/
   /wire
 /outBoundWires
/component-java

The wire and policy metadata will be defined in the base class  
PhysicalComponentDefinition, since they are applicable for all  
component types and not just the Java component type. This will get  
unmarshalled on the slave and passed into the builder. The builder  
would create the InboundWireImpl and OutboundWireImpl instances and  
add them to the component.
We'll need to refactor the wire signatures. I think we'll be able to  
remove ServiceContract and Operation. I think we can stage this by  
creating parallel classes for wires and then changing over.


Would we need anything more than the URI when the wire instances  
are created by the builder. If yes, would that be part of the  
physical component definition as well?
We will need additional data per operation such as the callback name.  
We can add this in as we go.


Also, for the JavaAtomicComponent, I am planning to pass in the  
instance factory into the component from the builder, so that it  
can be used later when createInstance is called. I am also  
wondering with all these changes, is it worth simplifying the  
PojoAtomicComponent and JavaAtomicComponent , since most of the  
stuff in PojoConfiguration is going to be encapsulated in the  
dynamically generated byte code for the instance factory. Maybe,  
Jeremy has a view on this as well.


Ta
Meeraj





From: Jim Marino [EMAIL PROTECTED]
Reply-To: tuscany-dev@ws.apache.org
To: tuscany-dev@ws.apache.org
Subject: Re: Physical Component Defintion
Date: Thu, 8 Feb 2007 14:43:40 -0800


On Feb 7, 2007, at 2:49 PM, Meeraj Kunnumpurath wrote:


Jim,

I have been looking at the work you have been doing with  
component  manager and URIs and figuring out how this would fit  
in with  federated deployment model I have been working on.  
Currently, the  master creates the physical component defintion  
to get the  component running on the slave. This gets marshalled  
and sent to  the slave through the discovery service. On the  
slave this is  picked up by the federated deployer to be  
umarshalled using the  marshaller framework. The component gets  
built from the physical  component definition by the new builder  
framework. The XML fragment  for Java components looks as follows,


componentJava componentId=uri xmlns=http:// 
tuscany.apache.org/ xmlns/1.0-SNAPSHOT
 instanceFactoryByteCodeBase 64 Encoded byte code/  
instanceFactoryByteCode

/component-java


I was thinking about wrapping the loaded instance factory into  
the  JavaAtomicComponent in the javaPhysicalComponentBuilder and  
expect  the wires to be resolved when createInstance is called on  
the  component. Would you need any additional information on top  
of the  instance factory to create the wires, interceptors,  
policies etc on  the slave.


Yes, I think we will eventually need information to constitute   
interceptor chains on the slave. I was thinking the policy  
builders  would be run on the master and serialize wire  
information as part of  the portable component definition. On the  
slave, a series of  interceptor builders would be used to add  
interceptors to a wire as  it is created by the WireService on a  
slave. This would effectively  split our single-VM wire  
construction process across VMs and enable  our federated design.  
All of the wire processing, normalization, and  optimization would  
be done on the master. On the slave, the  interceptor builders  
could be dispatched to based on a QName and  would just be  
responsible for providing portable interceptors. We  will also  
need to allow for extensible interceptor information but  the  
serialization/deserialization process should work similar to the   
way Marshallers work.


Wires could then be handed to the instance factory for use in   
injection. This give us a completely distributed wiring engine  
that  is very fast :-)




Also, where do you expect the autowire aspects resolved?


I would expect autowire to be resolved as the model is processed  
on  the master. This will allow us to remove autowire  
specializations  from the slave. I plan to do this in steps.  
First, move autowire from  CompositeComponent to ComponentManager.  
Then, move it from  ComponentManager to the resolve step during  
loading. As we move it to  loading, I also plan to implement it  
according to the recent 1.0 spec

Re: Physical Component Defintion

2007-02-08 Thread Meeraj Kunnumpurath





From: Jeremy Boynes [EMAIL PROTECTED]
Reply-To: tuscany-dev@ws.apache.org
To: tuscany-dev@ws.apache.org
Subject: Re: Physical Component Defintion
Date: Thu, 8 Feb 2007 20:13:10 -0800

On Feb 8, 2007, at 4:42 PM, Jeremy Boynes wrote:

On Feb 8, 2007, at 3:26 PM, Meeraj Kunnumpurath wrote:
Also, for the JavaAtomicComponent, I am planning to pass in the  instance 
factory into the component from the builder, so that it  can be used 
later when createInstance is called. I am also  wondering with all these 
changes, is it worth simplifying the  PojoAtomicComponent and 
JavaAtomicComponent , since most of the  stuff in PojoConfiguration is 
going to be encapsulated in the  dynamically generated byte code for the 
instance factory. Maybe,  Jeremy has a view on this as well.
On the last note, it might be easier for now to add a new Component  
implementation that was created by the PCB rather than trying to  retrofit 
PojoAtomicComponent.


I need something like this for the launched implementation type in  the 
client environment. I'll add a new implementation as a peer to  PAC and we 
can work out the builder for creating that.


Cool. Also, on the definition side I was thinking about creating classes 
that encapsulate information on portable wire definitions etc. For example 
..


public class PhycicalComponentDefinition extends ModelObject {

 private URI componentId;

 private SetWireDefinition inboundWires;

 private SetWireDefinition outboundWires;

 

}

public class WireDefinition {

 private URI wireUri;

 private SetInterceptorDefinition interceptors;

 anything eles needed to create the wire on the slave

}

I will start on this before I go on holidays today. I am back Monday 
morning. I can carry on the federated model when I come back, also, I can 
give a hand with stabilizing the runtime.


Ta
Meeraj


--
Jeremy

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



_
MSN Hotmail is evolving – check out the new Windows Live Mail 
http://ideas.live.com



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