<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta content="text/html;charset=ISO-8859-1" http-equiv="Content-Type">
</head>
<body bgcolor="#ffffff" text="#000000">
Hi Tim,<br>
<br>
Excellent. This is just the kind of feedback I was hoping for. We
definitely want Remoting 3.0 to satisfy the needs of JBM. You're our
best critics. :-)<br>
<br>
-Ron<br>
<br>
Tim Fox wrote:
<blockquote cite="mid46768194.5010307@jboss.com" type="cite">Ron Sigal
wrote:
<br>
<blockquote type="cite"><br>
<br>
Scott M Stark wrote:
<br>
<blockquote type="cite">The main problem for me with the
TowardsGreaterSymmetryInRemoting page
<br>
is that its not talking about a base asynch message oriented
<br>
architecture. Much of the current asymmetry's is due to the rpc
oriented
<br>
api. If you flip this around to have a base asynch message view, all
<br>
communication is handling of these messages. RPC with callbacks is
<br>
setting up blocking message handlers. Symmetry from a higher level
<br>
Client api is also not a requirement in my view. By definition a
<br>
callback is an unpredictable event/out of band msg with respect to some
<br>
rpc call returning a value. The use of client and server are also by
<br>
definition asymmetric and map to msg senders/receivers. We need to
start
<br>
from the bottom and move back up to the rpc api in order to be able to
<br>
talk about what the 3.0 version of Client should look like. </blockquote>
<br>
Actually, a "base asynch message oriented architecture" was just what I
was trying to get at. While Remoting should continue to support the
rpc model, the Connection.receive() and Connection.send() methods that
I mentioned are intended to support asynchronous message sending and
receiving.
<br>
</blockquote>
Does Connection.receive() block until it receives a message()?
<br>
<br>
Remoting 3.0 needs to support non-blocking semantics too to cope with
very large numbers of connection (We can't have a thread per connection
blocking on receive()).
<br>
<br>
What you probably need is some kind of select() functionality (see the
Java NIO API or unix select() and poll()) where you can register for
events - in this case a single (or small group of) thread(s) would
register for events on multiple "channels" and are woken up when an
evens matches the selector.
<br>
<br>
You probably also want to build in support for aynchronous IO via
callbacks - in this case, you don't even have thread(s) waiting on
select() but register some kind of callback handler and the OS calls
your handler directly - this can occur with less context switching than
select().
<br>
<br>
<blockquote type="cite">Also, while it's true that client and server
roles are inherently asymmetric, actors can play multiple roles (like
Peter Sellers). In Remoting, for example, callbacks (in push mode) are
handled by clients on the server side talking to servers on the client
side. I think the same thing would be conceptually simpler with a
"connection" abstraction that mirrors a real TCP connection: it's true
that there are client and server sockets, but once the connection has
been created, there can be senders and receivers on both sides.
<br>
<br>
<blockquote type="cite">The architecture also needs to be layered
such that you can plug into
<br>
low level message creation for the case of needing to control the on
the
<br>
wire format of these messages.
<br>
<br>
We are brining on the MINA lead, Trustin Lee, so we will need to look
at
<br>
how
<br>
<br>
</blockquote>
<br>
The idea of stacks of marshallers and unmarshallers in Remoting has
been floating around for a while, and Tom did some initial work in that
direction. I'm thinking that's where the layered message handling will
live. I've been meaning to write a second document on the subject,
but, in fact, MINA has a pretty flexible and sophisticated framework
for chains of message handlers, which looks like a good match for what
we want. As you say, we need to understand how MINA and Remoting will
work together.
<br>
<br>
<blockquote type="cite">Anil Saldhana wrote:
<br>
<blockquote type="cite">Ron,
<br>
Most of it may already be present.
<br>
<br>
Here is what I am thinking:
<br>
a) Pluggable mechanism to do authentication at either ends of the pipes
<br>
(SASL)
<br>
b) Pluggable ways to secure the payload that passes through the pipes.
<br>
<br>
Regards,
<br>
Anil
<br>
<br>
Ron Sigal wrote:
<br>
<blockquote type="cite">There have been various attempts to get
some discussion going about
<br>
the features desired for the next generation of Remoting, and so far I
<br>
think the buzz has broken the -80 db level. I'm trying again with the
<br>
wiki page at
<br>
<a class="moz-txt-link-freetext" href="http://wiki.jboss.org/wiki/Wiki.jsp?page=TowardsGreaterSymmetryInRemoting">http://wiki.jboss.org/wiki/Wiki.jsp?page=TowardsGreaterSymmetryInRemoting</a>.
We in the Remoting group (i.e., me in the Remoting group) would like
<br>
to hear from the Remoting stakeholders about what features would make
<br>
Remoting more usable for you. Of course, I could just go ahead and
<br>
write fun stuff. :-)
<br>
<br>
-Ron
<br>
</blockquote>
_______________________________________________
<br>
jboss-development mailing list
<br>
<a class="moz-txt-link-abbreviated" href="mailto:jboss-development@lists.jboss.org">jboss-development@lists.jboss.org</a>
<br>
<a class="moz-txt-link-freetext" href="https://lists.jboss.org/mailman/listinfo/jboss-development">https://lists.jboss.org/mailman/listinfo/jboss-development</a>
<br>
</blockquote>
<br>
_______________________________________________
<br>
jboss-development mailing list
<br>
<a class="moz-txt-link-abbreviated" href="mailto:jboss-development@lists.jboss.org">jboss-development@lists.jboss.org</a>
<br>
<a class="moz-txt-link-freetext" href="https://lists.jboss.org/mailman/listinfo/jboss-development">https://lists.jboss.org/mailman/listinfo/jboss-development</a>
<br>
</blockquote>
------------------------------------------------------------------------
<br>
<br>
_______________________________________________
<br>
jboss-development mailing list
<br>
<a class="moz-txt-link-abbreviated" href="mailto:jboss-development@lists.jboss.org">jboss-development@lists.jboss.org</a>
<br>
<a class="moz-txt-link-freetext" href="https://lists.jboss.org/mailman/listinfo/jboss-development">https://lists.jboss.org/mailman/listinfo/jboss-development</a>
<br>
</blockquote>
<br>
_______________________________________________
<br>
jboss-development mailing list
<br>
<a class="moz-txt-link-abbreviated" href="mailto:jboss-development@lists.jboss.org">jboss-development@lists.jboss.org</a>
<br>
<a class="moz-txt-link-freetext" href="https://lists.jboss.org/mailman/listinfo/jboss-development">https://lists.jboss.org/mailman/listinfo/jboss-development</a>
<br>
</blockquote>
<br>
<div class="moz-signature">-- <br>
<font color="#000000">JBoss, a Division of Red Hat<br>
"My company's smarter than your company."
</font></div>
</body>
</html>