<!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.&nbsp; This is just the kind of feedback I was hoping for.&nbsp; We
definitely want Remoting 3.0 to satisfy the needs of JBM.&nbsp; 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. &nbsp; </blockquote>
    <br>
Actually, a "base asynch message oriented architecture" was just what I
was trying to get at.&nbsp; 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).&nbsp; In Remoting, for example, callbacks (in push mode) are
handled by clients on the server side talking to servers on the client
side.&nbsp; 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>
&nbsp; </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.&nbsp; I'm thinking that's where the layered message handling will
live.&nbsp; 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.&nbsp; As you say, we need to understand how MINA and Remoting will
work together.
    <br>
    <br>
    <blockquote type="cite">Anil Saldhana wrote:
      <br>
&nbsp;
      <blockquote type="cite">Ron,
        <br>
&nbsp;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>
&nbsp;&nbsp;&nbsp;
        <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.&nbsp; 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.&nbsp; Of course, I could just go ahead and
          <br>
write fun stuff.&nbsp; :-)
          <br>
          <br>
-Ron
          <br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </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>
&nbsp;&nbsp;&nbsp; </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>
&nbsp; </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>
&nbsp; </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>