On 2002.12.09 10:01:05 -0500 Scott M Stark wrote:
> 
> ----- Original Message ----- 
> From: "David Jencks" <[EMAIL PROTECTED]>
> To: "jboss-dev" <[EMAIL PROTECTED]>
> Sent: Sunday, December 08, 2002 6:16 PM
> Subject: [JBoss-dev] Invokers (jboss 4)
> 
> 
> > I've been studying the invokers while working on the xid-based
> transaction
> > propagation and plan to do some refactoring if there are no strong
> > objections.
> > 
> > 1. I plan to make both the client (sending) and server (receiving)
> halves
> > of the invokers layered with aspects or interceptors.  This will enable
> > reuse of everything except the transport layer across most invokers.
> > 
> So do you have a prototype configuration for a stateless session bean
> using RMI as the transport here to demonstrate what this is going to
> entail?

Bean configuration would be unaltered.  You'd set up the invoker as a stack
somehow: I'm not even sure this needs to be configurable, hard coding might
be ok.  So far I'm thinking the typical trunk-like invoker would look like

tx-to-xid converter (ProxyXAResource)
multiplexer
transport send-end

transport receive-end
demultiplexer
WorkManager driver


I don't have even a prototype yet, but I do think this will make a lot of
stuff reusable and simpler.




> 
> > 3. In order to use the work import contracts, I plan to make all the
> > invokers asynchronous, as the trunk invoker is today.  The Work object
> will
> > include both the code to call the mbean target (i.e. ejb) and the
> > information necessary to return the result back through the transport
> > mechanism.  It's possible that separate inbound and outbound
> > interceptor/aspect stacks may be desirable.
> > 
> This would seemingly add a lot of complexity to synchronous
> configuration.
> Can't both synchronous and asynchronous be used? How is this going to
> mesh
> with inherently syncrhonous protocols like http and jrmp?

I need to think about this some more.  Using the WorkManager to insert work
requests into the system tends to introduce some asynchronicity.  I think
there is a way to avoid this by using the doWork method and putting the
return value in the Invocation object, which the layer calling the work
manager can keep a reference to.  Were we planning to do this anyway, put
the return value as an attibute of the invocation object?

> 
> > 4. There has been some discussion about two way transport, as
> implemented
> > in the trunk invoker.  It seems to me that any way of calling an ejb
> has in
> > it 2 communication channels, one in each direction.  If these are based
> on
> > accessible sockets, the channels can be used in the opposite direction
> and
> > order, thus providing two way transport.  I propose to provide this two
> way
> > transport when the underlying transport supports these separable
> transport
> > directions (for instance, my impression is that rmi does not).  If
> there
> > are problems with this approach I'd like to know about them.  If you
> > disagree with this approach please explain why the in and out streams
> from
> > a socket should not be used in both directions for this purpose and
> explain
> > in at least a little detail an alternative approach.
> One thing that you need to be careful of in splitting the return channel
> from the
> request channel is maintaining the thread context class loader for the
> marshalling
> of return values and exceptions that are coming from the deployment jars.

Indeed.

Thanks
david jencks
> 
> 
> 
> -------------------------------------------------------
> This sf.net email is sponsored by:ThinkGeek
> Welcome to geek heaven.
> http://thinkgeek.com/sf
> _______________________________________________
> Jboss-development mailing list
> [EMAIL PROTECTED]
> https://lists.sourceforge.net/lists/listinfo/jboss-development
> 
> 


-------------------------------------------------------
This sf.net email is sponsored by:ThinkGeek
Welcome to geek heaven.
http://thinkgeek.com/sf
_______________________________________________
Jboss-development mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/jboss-development

Reply via email to