<HTML><BODY style="word-wrap: break-word; -khtml-nbsp-mode: space; -khtml-line-break: after-white-space; ">I'll try to find the rest of the conversation I had with Tom, but here's something relevant to this bit that he had to say back in February 2007:<DIV><BR class="khtml-block-placeholder"></DIV><DIV>"Using JMS as remoting transport is going to be difficult.  We had thought about it, but since JMS offers a lot more in regards to features (i.e. mainly in terms of quality of service, such as guaranteed delivery, and point-to-multipoint), we decided not not worry about it thinking if a user needed those types of features, could just use JMS directly.<DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; min-height: 14px; "><BR></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">Guess if stripped out the use case to being a more simplistic one where just sending messages using some default configuration, it might work. However, since remoting is currently more a RPC based model, I am not sure how we'd handle it all.</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; min-height: 14px; "><BR></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">As an aside, I did some prototyping a while back for converting remoting to be more messaging based instead of RPC based using a NIO framework. I got some simple things working (such as a very simple amqp example). However, it has been sitting idle for many months since have a lot of other remoting issues to take care of.  This conversion is planned for the remoting 3.0 release, but right now, it looks like that might not be till later this year."</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><BR class="khtml-block-placeholder"></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">Mark.</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><BR class="khtml-block-placeholder"></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><BR class="khtml-block-placeholder"></DIV><DIV><DIV>On 20 Jun 2007, at 02:55, Ron Sigal wrote:</DIV><BR class="Apple-interchange-newline"><BLOCKQUOTE type="cite"> I think a JMS transport would work.  JBossMessaging currently uses the bisocket transport (a descendant of socket) and the http transport.  A Remoting transport that just interfaced with JBossMessaging doesn't sound like a problem.  I'm not sure what the InvokerLocator would look like, but that's a different discussion.<BR> <BR> Remoting has oneway "invocations" and callbacks, which don't wait for a response. I think that corresponds to unreliable delivery.<BR> <BR> Do you remember why Tom thought these were "more transports than ... Remoting could deal with""  Was it for technical reasons, or because of time constraints?<BR> <BR> -Ron <BR> <BR> Mark Little wrote: <BLOCKQUOTE cite="mid43799331-5FED-461F-8DCC-14D548323A11@redhat.com" type="cite">One thing I was discussing with Tom at the start of the year was ESB using Remoting for its transport layer. Unfortunately there isn't a complete solution as it currently stands, because we have asynchronous (one-way) messaging transport requirements that cover more transports than Tom thought Remoting could deal with (then), including: FTP, database, email, JMS (that one is critical for us but causes a circularity with the current implementation if we plug in JBoss Messaging, which is built on Remoting ;-)  <DIV><BR class="khtml-block-placeholder">  </DIV>  <DIV>Oh and reliable delivery is something that should be optional IMO.  <DIV><BR class="khtml-block-placeholder">  </DIV>  <DIV>Mark.</DIV>  <DIV><BR class="khtml-block-placeholder">  </DIV>  <DIV><BR>  <DIV>  <DIV>On 19 Jun 2007, at 00:25, Ron Sigal wrote:</DIV>  <BR class="Apple-interchange-newline">  <BLOCKQUOTE type="cite"> 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>    <DIV style="margin: 0px;">_______________________________________________</DIV>    <DIV style="margin: 0px;">jboss-development mailing list</DIV>    <DIV style="margin: 0px;"><A href="mailto:jboss-development@lists.jboss.org">jboss-development@lists.jboss.org</A></DIV>    <DIV style="margin: 0px;"><A href="https://lists.jboss.org/mailman/listinfo/jboss-development">https://lists.jboss.org/mailman/listinfo/jboss-development</A></DIV>  </BLOCKQUOTE>  </DIV>  <BR>  <DIV> <SPAN class="Apple-style-span" style="border-collapse: separate; border-spacing: 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-indent: 0px; text-transform: none; orphans: 2; white-space: normal; widows: 2; word-spacing: 0px;"><SPAN class="Apple-style-span" style="border-collapse: separate; border-spacing: 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-indent: 0px; text-transform: none; orphans: 2; white-space: normal; widows: 2; word-spacing: 0px;">  <DIV>----</DIV>  <DIV><BR class="khtml-block-placeholder">  </DIV>  <DIV>Mark Little</DIV>  <DIV><A href="mailto:mlittle@redhat.com">mlittle@redhat.com</A></DIV>  <DIV><BR class="khtml-block-placeholder">  </DIV>  <DIV>JBoss, a Division of Red Hat</DIV>  <DIV style="margin: 0px;">Registered Address: Red Hat UK Ltd, Amberley Place, 107-111 Peascod Street, Windsor, Berkshire, </DIV>  <DIV style="margin: 0px;">SI4 1TE, United Kingdom. </DIV>  <DIV style="margin: 0px;">Registered in UK and Wales under Company Registration No. 3798903 </DIV>  <DIV style="margin: 0px;">Directors: Michael Cunningham (USA), Charlie Peters (USA) and David Owens (Ireland)</DIV>  <DIV><BR class="khtml-block-placeholder">  </DIV>  <DIV><BR class="khtml-block-placeholder">  </DIV>  <BR class="Apple-interchange-newline">  </SPAN></SPAN> </DIV>  <BR>  </DIV>  </DIV>  <PRE wrap=""><HR size="4" width="90%">_______________________________________________
jboss-development mailing list
<A class="moz-txt-link-abbreviated" href="mailto:jboss-development@lists.jboss.org">jboss-development@lists.jboss.org</A>
<A class="moz-txt-link-freetext" href="https://lists.jboss.org/mailman/listinfo/jboss-development">https://lists.jboss.org/mailman/listinfo/jboss-development</A>
  </PRE></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><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">_______________________________________________</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">jboss-development mailing list</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><A href="mailto:jboss-development@lists.jboss.org">jboss-development@lists.jboss.org</A></DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; "><A href="https://lists.jboss.org/mailman/listinfo/jboss-development">https://lists.jboss.org/mailman/listinfo/jboss-development</A></DIV> </BLOCKQUOTE></DIV><BR><DIV> <SPAN class="Apple-style-span" style="border-collapse: separate; border-spacing: 0px 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-align: auto; -khtml-text-decorations-in-effect: none; text-indent: 0px; -apple-text-size-adjust: auto; text-transform: none; orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; "><SPAN class="Apple-style-span" style="border-collapse: separate; border-spacing: 0px 0px; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; text-align: auto; -khtml-text-decorations-in-effect: none; text-indent: 0px; -apple-text-size-adjust: auto; text-transform: none; orphans: 2; white-space: normal; widows: 2; word-spacing: 0px; "><DIV>----</DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV>Mark Little</DIV><DIV><A href="mailto:mlittle@redhat.com">mlittle@redhat.com</A></DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV>JBoss, a Division of Red Hat</DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">Registered Address: Red Hat UK Ltd, Amberley Place, 107-111 Peascod Street, Windsor, Berkshire, </DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">SI4 1TE, United Kingdom. </DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">Registered in UK and Wales under Company Registration No. 3798903 </DIV><DIV style="margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: 0px; ">Directors: Michael Cunningham (USA), Charlie Peters (USA) and David Owens (Ireland)</DIV><DIV><BR class="khtml-block-placeholder"></DIV><DIV><BR class="khtml-block-placeholder"></DIV><BR class="Apple-interchange-newline"></SPAN></SPAN> </DIV><BR></DIV></BODY></HTML>