<!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">
I'm just trying to collect architectural requirements for now.&nbsp; I
assume that MINA will play a big role in Remoting 3.0.<br>
<br>
Tim Fox wrote:
<blockquote cite="mid46769929.5070405@jboss.com" type="cite">Tim Fox
wrote:
  <br>
  <blockquote 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;&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>
  </blockquote>
  <br>
Instead of trying to write your own, have you looked at other
frameworks, which have already done the hard work? (MINA is the obvious
one, there is also Grizzly but I don't know much about that).
  <br>
  <br>
  <blockquote type="cite"><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;
        <br>
        <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;
          <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>
_______________________________________________
  <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>