[prev in list] [next in list] [prev in thread] [next in thread] 

List:       incubator-cvs
Subject:    cvs commit: incubator-site/build/site/projects/altrmi test1.html test2.html tests.html tests.pdf tod
From:       hammant () apache ! org
Date:       2003-02-16 22:03:54
[Download RAW message or body]

hammant     2003/02/16 14:03:54

  Added:       build/site/projects/altrmi/skin/images chapter_open.gif
                        current.gif favicon.ico label.gif menu-left.gif
                        menu-right.gif page.gif printer.gif search-left.gif
                        search-right.gif singlepage.gif spacer.gif
                        tab-left.gif tab-right.gif tabSel-left.gif
                        tabSel-right.gif valid-html401.png vcss.png
               build/site/projects/altrmi/skin page.css
               build/site/projects/altrmi test1.html test2.html tests.html
                        tests.pdf todo.html todo.pdf transports.html
                        transports.pdf
  Log:
  AltRMI site for first time.
  
  Revision  Changes    Path
  1.1                  \
incubator-site/build/site/projects/altrmi/skin/images/chapter_open.gif  
  	<<Binary file>>
  
  
  1.1                  \
incubator-site/build/site/projects/altrmi/skin/images/current.gif  
  	<<Binary file>>
  
  
  1.1                  \
incubator-site/build/site/projects/altrmi/skin/images/favicon.ico  
  	<<Binary file>>
  
  
  1.1                  \
incubator-site/build/site/projects/altrmi/skin/images/label.gif  
  	<<Binary file>>
  
  
  1.1                  \
incubator-site/build/site/projects/altrmi/skin/images/menu-left.gif  
  	<<Binary file>>
  
  
  1.1                  \
incubator-site/build/site/projects/altrmi/skin/images/menu-right.gif  
  	<<Binary file>>
  
  
  1.1                  incubator-site/build/site/projects/altrmi/skin/images/page.gif
  
  	<<Binary file>>
  
  
  1.1                  \
incubator-site/build/site/projects/altrmi/skin/images/printer.gif  
  	<<Binary file>>
  
  
  1.1                  \
incubator-site/build/site/projects/altrmi/skin/images/search-left.gif  
  	<<Binary file>>
  
  
  1.1                  \
incubator-site/build/site/projects/altrmi/skin/images/search-right.gif  
  	<<Binary file>>
  
  
  1.1                  \
incubator-site/build/site/projects/altrmi/skin/images/singlepage.gif  
  	<<Binary file>>
  
  
  1.1                  \
incubator-site/build/site/projects/altrmi/skin/images/spacer.gif  
  	<<Binary file>>
  
  
  1.1                  \
incubator-site/build/site/projects/altrmi/skin/images/tab-left.gif  
  	<<Binary file>>
  
  
  1.1                  \
incubator-site/build/site/projects/altrmi/skin/images/tab-right.gif  
  	<<Binary file>>
  
  
  1.1                  \
incubator-site/build/site/projects/altrmi/skin/images/tabSel-left.gif  
  	<<Binary file>>
  
  
  1.1                  \
incubator-site/build/site/projects/altrmi/skin/images/tabSel-right.gif  
  	<<Binary file>>
  
  
  1.1                  \
incubator-site/build/site/projects/altrmi/skin/images/valid-html401.png  
  	<<Binary file>>
  
  
  1.1                  incubator-site/build/site/projects/altrmi/skin/images/vcss.png
  
  	<<Binary file>>
  
  
  1.1                  incubator-site/build/site/projects/altrmi/skin/page.css
  
  Index: page.css
  ===================================================================
  body {  background-color: #FFFFFF; margin: 0px 0px 0px 0px; font-family: Verdana, \
Helvetica, sans-serif;  font-size : 100%;  }  
  a:link { color: #0F3660; }
  a:visited { color: #009999; }
  a:active { color: #000066; }
  a:hover { color: #000066; }
  
  .menu { background-color: #4C6C8F; margin: 0px; padding: 3px 8px 5px 3px;  \
                font-size : 90%;  }
  .menu a:link { color: #FFFFFF;  text-decoration : none;  }
  .menu a:visited { color: #FFFFFF; text-decoration : none; }
  .menu a:hover { color: #FFCC00; text-decoration : none; }
  .menu ul { margin: 0px 0px 0px 20px; padding: 0px; }
  .menu li  { list-style-image: url('images/label.gif'); font-weight : bold; }
  .menu ul ul li .sel { list-style-image: url('images/current.gif'); font-weight : \
                normal; }
  .menu ul ul li  { list-style-image: url('images/page.gif'); font-weight : normal; }
  
  .tab { font-size : 85%; border: 0 }
  .tab a:link {   text-decoration : none;  }
  .tab a:visited { text-decoration : none; color: #2A4A6D }
  .tab a:hover { color: #000066; }
  
  table .title { background-color: #FFFFFF; width:100%; border: 0px; }
  .dida { font-size: 80%; }
  
  .pre { white-space: pre;}
  
  .content { padding: 5px 5px 5px 10px; font : small Verdana, Helvetica, sans-serif;  \
                font-size : 90%; }
  .content .ForrestTable { width: 100%; background-color: #7099C5; color: #ffffff; \
                font-size : 90%;}
  .content .ForrestTable caption { text-align: left; color: black; font-weight: bold; \
                }
  .content .ForrestTable th { text-align: center; }
  .content .ForrestTable td { background-color: #f0f0ff; color: black; }
  
  .frame { margin: 5px 20px 5px 20px; font-size: 90%; }
  .frame .content { margin: 0px; }
  
  .note { border: solid 1px #7099C5; background-color: #f0f0ff; }
  .note .label { background-color: #7099C5; color: #ffffff; }
  
  .warning { border: solid 1px #D00000; background-color: #fff0f0; }
  .warning .label { background-color: #D00000; color: #ffffff; }
  
  .fixme { border: solid 1px #C6C600; background-color: #FAF9C3; }
  .fixme .label { background-color: #C6C600; color: #ffffff; }
  
  .code { border-color: #CFDCED; border-style: solid; border-width: 1px; }
  .codefrag {	font-family: "Courier New", Courier, monospace; }
  
  .highlight { background-color: yellow; }
  
  .minitoc {margin: 5px 5px 5px 40px;}
  
  .dtdElement { width: 100%;	font-size: 90%; background-color : #ffffff; }
  
  .dtdTag {    color: #990000; text-transform : uppercase;  font-style : normal;  \
font-size : 120%;  font-weight : bold; }  
  
  @media print {
     .menu {
       display: none;
     }
  }
  
  
  
  1.1                  incubator-site/build/site/projects/altrmi/test1.html
  
  Index: test1.html
  ===================================================================
  <html>
  	<body>
  		<h1>Test HTML page</h1>
  		<p>
  		This raw HTML page is linked to from xdocs/sample2.xml.
  		</p>
  		<p>All linked-to pages, like <a href="test2.html">this one</a>, are
  		also available.
  		<hr />
  		[<a href="index.html">Index</a>]
  	</body>
  </html>
  
  
  
  1.1                  incubator-site/build/site/projects/altrmi/test2.html
  
  Index: test2.html
  ===================================================================
  <html>
  	<h1>Test 2</h1>
  	<p>
  	A linked-to-from-HTML page.
  	<hr />
  	[<a href="index.html">Index</a>] [<a href="test1.html">test1.html</a>]
  	</p>
  </html>
  
  
  
  1.1                  incubator-site/build/site/projects/altrmi/tests.html
  
  Index: tests.html
  ===================================================================
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" \
"http://www.w3.org/TR/html4/loose.dtd">  <html>
  <head>
  <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
  <title>AltRMI / Tests</title>
  <link type="text/css" href="skin/page.css" rel="stylesheet">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
  <!--================= start Navigation Path ==================-->
  <table summary="navigation path" width="100%" border="0" cellpadding="0" \
cellspacing="0">  <tr>
  <td nowrap="nowrap" valign="middle" bgcolor="#CFDCED" height="20"><img height="1" \
width="5" alt="" border="0" src="skin/images/spacer.gif"><!--===== breadcrumb trail \
(javascript-generated) ====--><font size="2" face="Arial, Helvetica, \
Sans-serif"><script src="skin/breadcrumbs.js" language="JavaScript" \
type="text/javascript"></script></font></td>  </tr>
  <tr>
  <td bgcolor="#4C6C8F" height="2"><img height="2" width="2" alt="" border="0" \
src="skin/images/spacer.gif"></td>  </tr>
  </table>
  <!--================= end Navigation Path ==================-->
  <!--================= start Banner ==================-->
  <table summary="header with logos" width="100%" border="0" cellpadding="0" \
cellspacing="0">  <tr>
  <!--================= start Group Logo ==================-->
  <td bgcolor="#294563"><a href="http://incubator.apache.org"><img border="0" \
class="logoImage" alt="Incubator" \
src="http://incubator.apache.org/images/group-logo.gif"></a></td>  \
<!--================= end Group Logo ==================-->  <!--================= \
start Project Logo ==================--><td width="100%" align="center" \
bgcolor="#294563"><a href="http://incubator.apache.org/projects/altrmi"><img \
border="0" class="logoImage" alt="AltRMI" src="images/altrmi_logo.gif"></a></td>  \
<!--================= end Project Logo ==================-->  <!--================= \
start Search ==================--><td valign="top" rowspan="2" bgcolor="#294563">  \
<form target="_blank" action="http://www.google.com/search" method="get">  <table \
summary="search" border="0" cellspacing="0" cellpadding="0" bgcolor="#4C6C8F">  <tr>
  <td colspan="3"><img height="10" width="1" alt="" \
src="skin/images/spacer.gif"></td>  </tr>
  <tr>
  <td><img height="1" width="1" alt="" src="skin/images/spacer.gif"></td><td \
nowrap="nowrap"><input value="incubator.apache.org" name="sitesearch" \
type="hidden"><input size="15" name="q" id="query" type="text"><img height="1" \
width="5" alt="" src="skin/images/spacer.gif"><input name="Search" value="Search" \
type="submit">  <br>
  <font face="Arial, Helvetica, Sans-serif" size="2" color="white">
                        the Incubator site
                        
                        
                      </font></td><td><img height="1" width="1" alt="" \
src="skin/images/spacer.gif"></td>  </tr>
  <tr>
  <td><img alt="" border="0" height="10" width="9" \
src="skin/images/search-left.gif"></td><td><img height="1" width="1" alt="" \
src="skin/images/spacer.gif"></td><td><img alt="" border="0" height="10" width="9" \
src="skin/images/search-right.gif"></td>  </tr>
  </table>
  </form>
  </td>
  <!--================= start Search ==================--><td bgcolor="#294563"><img \
height="10" width="10" alt="" src="skin/images/spacer.gif"></td>  </tr>
  <tr>
  <td valign="bottom" bgcolor="#294563" colspan="2">
  <!--================= start Tabs ==================-->
  <div class="tab">
  <table summary="tab bar" border="0" cellpadding="0" cellspacing="0">
  <tr>
  <td width="8"><img alt="" height="8" width="8" \
src="skin/images/spacer.gif"></td><td valign="bottom">  <table summary="selected tab" \
style="height: 1.7em" border="0" cellpadding="0" cellspacing="0">  <tr>
  <td valign="top" width="5" bgcolor="#4C6C8F"><img height="5" width="5" alt="" \
src="skin/images/tabSel-left.gif"></td><td valign="middle" bgcolor="#4C6C8F"><font \
color="#ffffff" size="2" face="Arial, Helvetica, Sans-serif"><b><a \
href="index.html"><font color="#000000">Home</font></a></b></font></td><td \
valign="top" width="5" bgcolor="#4C6C8F"><img height="5" width="5" alt="" \
src="skin/images/tabSel-right.gif"></td>  </tr>
  </table>
  </td>
  </tr>
  </table>
  </div>
  <!--================= end Tabs ==================-->
  </td><td bgcolor="#294563"><img alt="" width="1" height="1" \
src="skin/images/spacer.gif"></td>  </tr>
  <tr>
  <td bgcolor="#4C6C8F" colspan="4"><img width="1" height="10" alt="" \
src="skin/images/spacer.gif"></td>  </tr>
  </table>
  <!--================= end Banner ==================-->
  <!--================= start Menu, NavBar, Content ==================-->
  <table summary="page content" bgcolor="#ffffff" width="100%" border="0" \
cellpadding="0" cellspacing="0">  <tr>
  <td valign="top">
  <table summary="menu" border="0" cellspacing="0" cellpadding="0">
  <tr>
  <!--================= start left top NavBar ==================-->
  <td rowspan="3" valign="top">
  <table summary="blue line" border="0" cellpadding="0" cellspacing="0">
  <tr>
  <td bgcolor="#294563"><img width="10" height="1" alt="" \
src="skin/images/spacer.gif"></td>  </tr>
  <tr>
  <td bgcolor="#CFDCED"><font color="#4C6C8F" size="4" face="Arial, Helvetica, \
Sans-serif">&nbsp;</font></td>  </tr>
  <tr>
  <td bgcolor="#294563"><img width="10" height="1" alt="" \
src="skin/images/spacer.gif"></td>  </tr>
  </table>
  </td>
  <!--================= end left top NavBar ==================--><td \
bgcolor="#294563"><img width="1" height="1" alt="" \
src="skin/images/spacer.gif"></td><td valign="bottom" bgcolor="#4C6C8F"><img \
width="10" height="10" alt="" src="skin/images/spacer.gif"></td><td nowrap="nowrap" \
valign="top" bgcolor="#4C6C8F">  <!--================= start Menu items \
==================-->  <div class="menu">
  <ul>
  <li>
  <font color="#CFDCED">About</font>
  <ul>
      
  <li>
  <a href="index.html">Index</a>
  </li>
      
  <li>
  <a href="otherfeatures.html">Other Features</a>
  </li>
      
  <li>
  <a href="transports.html">Transports</a>
  </li>    
      
  <li>
  <a href="faq.html">FAQ</a>
  </li>
      
  <li>
  <a href="changes.html">Changes</a>
  </li>
      
  <li>
  <a href="todo.html">Todo</a>
  </li>
    
  </ul>
  </li>
  <li>
  <font color="#CFDCED">Using</font>
  <ul> 
      
  <li>
  <a href="facades.html">Facade Design</a>
  </li>
      
  <li>
  <a href="generating-proxies.html">Generating proxies</a>
  </li>
      
  <li>
  <a href="publishing.html">Publishing</a>
  </li>
      
  <li>
  <a href="client-usage.html">Client usage</a>
  </li>
      
  <li>
  <a href="pingers.html">Pingers</a>
  </li>
      
  <li>
  <a href="connection-listeners.html">Connection Listeners</a>
  </li>
      
  <li>
  <span class="sel"><font color="#ffcc00">Tests</font></span>
  </li>  
    
  </ul>
  </li>
  </ul>
  </div>
  <!--================= end Menu items ==================-->
  </td><td valign="bottom" bgcolor="#4C6C8F"><img width="10" height="10" alt="" \
src="skin/images/spacer.gif"></td><td bgcolor="#294563"><img width="1" height="1" \
alt="" src="skin/images/spacer.gif"></td>  </tr>
  <tr>
  <td valign="bottom" align="left" colspan="2" rowspan="2" bgcolor="#4C6C8F"><img \
height="10" width="10" border="0" alt="" src="skin/images/menu-left.gif"></td><td \
bgcolor="#4C6C8F"><img height="10" width="10" border="0" alt="" \
src="skin/images/spacer.gif"></td><td valign="bottom" align="right" colspan="2" \
rowspan="2" bgcolor="#4C6C8F"><img height="10" width="10" border="0" alt="" \
src="skin/images/menu-right.gif"></td>  </tr>
  <tr>
  <td height="1" bgcolor="#294563"><img width="1" height="1" alt="" \
src="skin/images/spacer.gif"></td>  </tr>
  </table>
  </td><td valign="top" width="100%">
  <table summary="content" width="100%" border="0" cellpadding="0" cellspacing="0">
  <!--================= start middle NavBar ==================-->
  <tr>
  <td colspan="4" bgcolor="#294563"><img width="10" height="1" alt="" \
src="skin/images/spacer.gif"></td>  </tr>
  <tr>
  <td align="left" width="10" bgcolor="#CFDCED"><img width="10" height="1" alt="" \
src="skin/images/spacer.gif"></td><td align="left" width="50%" \
bgcolor="#CFDCED"><font color="#4C6C8F" size="3" face="Arial, Helvetica, Sans-serif"> \
&nbsp;  
                  </font><img width="10" height="8" alt="" \
src="skin/images/spacer.gif"></td><td align="right" width="50%" \
bgcolor="#CFDCED"><font color="#4C6C8F" size="3" face="Arial, Helvetica, Sans-serif"> \
&nbsp;  
                  </font><img width="10" height="8" alt="" \
src="skin/images/spacer.gif"></td><td width="10" bgcolor="#CFDCED"><img width="10" \
height="1" alt="" src="skin/images/spacer.gif"></td>  </tr>
  <tr>
  <td colspan="4" bgcolor="#294563"><img width="10" height="1" alt="" \
src="skin/images/spacer.gif"></td>  </tr>
  <!--================= end middle NavBar ==================-->
  <!--================= start Content==================-->
  <tr>
  <td align="left" width="10"><img width="10" height="1" alt="" \
src="skin/images/spacer.gif"></td><td align="left" width="100%">  <div \
class="content">  <table class="title" summary="">
  <tr>
  <td valign="middle">
  <h1>AltRMI / Tests</h1>
  </td><td nowrap="nowrap" width="80" align="center"><a class="dida" \
href="tests.pdf"><img alt="printer" src="skin/images/printer.gif" border="0"><br>  \
print-friendly<br>  PDF</a></td>
  </tr>
  </table>
  <p>
  <font size="-2">by&nbsp;Paul Hammant</font>
  </p>
  <ul class="minitoc">
  <li>
  <a href="#Introduction">Introduction</a>
  </li>
  <li>
  <a href="#Tests+using+AltRMI">Tests using AltRMI</a>
  <ul class="minitoc">
  <li>
  <a href="#ObjectStream+Over+Plain+Sockets">ObjectStream Over Plain Sockets</a>
  </li>
  <li>
  <a href="#CustomStream+Over+Plain+Sockets">CustomStream Over Plain Sockets</a>
  </li>
  <li>
  <a href="#CustomStream+Over+Plain+Sockets%2C+using+callback+handlers">CustomStream \
Over Plain Sockets, using callback handlers</a>  </li>
  <li>
  <a href="#RMI">RMI</a>
  </li>
  <li>
  <a href="#Piped">Piped</a>
  </li>
  <li>
  <a href="#Direct">Direct</a>
  </li>
  </ul>
  </li>
  <li>
  <a href="#Tests+not+using+AltRMI">Tests not using AltRMI</a>
  <ul class="minitoc">
  <li>
  <a href="#Dynamic+Proxy">Dynamic Proxy</a>
  </li>
  <li>
  <a href="#Coded+Proxy">Coded Proxy</a>
  </li>
  <li>
  <a href="#Non+Proxy">Non Proxy</a>
  </li>
  </ul>
  </li>
  </ul>
      
  <a name="N101C5"></a><a name="Introduction"></a>
  <h3>Introduction</h3>
  <div style="margin-left: 0 ; border: 2px">
  <p>
          There are a number of examples that come with AltRMI.  They are only \
                present in the source
          download or the CVS depot, so we will assume that you have one or the other \
of these.  </p>
  <p>
          TODO: This entire page is out of date.
        </p>
  </div>
      
  <a name="N101D2"></a><a name="Tests+using+AltRMI"></a>
  <h3>Tests using AltRMI</h3>
  <div style="margin-left: 0 ; border: 2px">
  <p>
          The tests all run under Ant control.  Some tests are client and server, \
                others are in a
          single VM. You may need two command shells for the client/server tests.
        </p>
  <p>
          The majority of the tests transfer a primary interface, TestInterface, \
                between server and
          client.  It has a number of methods that test the passing of primatives and \
                objects as
          parameters and return types.  Apart from this testing of features, the \
                speed of the transport
          type is tested.  This is simply the counting of as many repetetive \
                invocations of the same
          method in ten seconds as possible. It is used for an statistically \
incorrect comparison of  transports.
        </p>
  <a name="N101DE"></a><a name="ObjectStream+Over+Plain+Sockets"></a>
  <h4>ObjectStream Over Plain Sockets</h4>
  <div style="margin-left: 0 ; border: 2px">
  <p>
            The ObjectStream over plain sockets tests are launched from a build file \
called socketa.xml.  You need two command shells.  In the first
            launch <strong>ant -buildfile socketa.xml server</strong>, and in the \
                second <strong>ant
            -buildfile socketa.xml client</strong>
          
  </p>
  </div>
  <a name="N101EE"></a><a name="CustomStream+Over+Plain+Sockets"></a>
  <h4>CustomStream Over Plain Sockets</h4>
  <div style="margin-left: 0 ; border: 2px">
  <p>
            The CustomStream over plain sockets tests are launched from a build file \
called socketb.xml.  You need two command shells.  In the first
            launch <strong>ant -buildfile socketb.xml server</strong>, and in the \
                second <strong>ant
            -buildfile socketb.xml client</strong>
          
  </p>
  </div>
  <a name="N101FE"></a><a \
name="CustomStream+Over+Plain+Sockets%2C+using+callback+handlers"></a>  \
<h4>CustomStream Over Plain Sockets, using callback handlers</h4>  <div \
style="margin-left: 0 ; border: 2px">  <p>
            The CustomStream over plain sockets tests are launched from a build file \
called socketc.xml.  You need two command shells.  In the first
            launch <strong>ant -buildfile socketc.xml server</strong>, and in the \
                second <strong>ant
            -buildfile socketc.xml client</strong>. The callback capable layer is not \
                used to its
            fullest capacity, in that no callbacks ae setup.  This is most useful for \
a comparative  speed test.
          </p>
  </div>
  <a name="N1020E"></a><a name="RMI"></a>
  <h4>RMI</h4>
  <div style="margin-left: 0 ; border: 2px">
  <p>
            The RMI tests are launched from a build file called rmi.xml.
            You need two command shells.  In the first
            launch <strong>ant -buildfile rmi.xml server</strong>, and in the second \
                <strong>ant
            -buildfile rmi.xml client</strong>.
          </p>
  </div>
  <a name="N1021E"></a><a name="Piped"></a>
  <h4>Piped</h4>
  <div style="margin-left: 0 ; border: 2px">
  <p>
            The Piped tests are launched from a build file called piped.xml.
            You need a single shell. To test the piped transport with generated
            proxies already in the client's classloader,
            launch <strong>ant -buildfile piped.xml clientclasses</strong>. To test \
                the piped
            transport with generated proxies retrieved from the server by the client,
            launch <strong>ant -buildfile piped.xml serverclasses</strong>. To test \
                the piped
            transport with generated proxies generated on demand by the server for \
                the client,
            launch <strong>ant -buildfile piped.xml dynamicclasses</strong>.
          </p>
  </div>
  <a name="N10231"></a><a name="Direct"></a>
  <h4>Direct</h4>
  <div style="margin-left: 0 ; border: 2px">
  <p>
            The Direct tests are launched from a build file called direct.xml.
            You need a single shell.  To test the direct connection of client and \
                server
            launch <strong>ant -buildfile direct.xml direct</strong>. To test the \
                direct
            connection of client and server with marshalling of communications
            launch <strong>ant -buildfile direct.xml direct-marshalled</strong>.
          </p>
  </div>
  </div>
      
  <a name="N10242"></a><a name="Tests+not+using+AltRMI"></a>
  <h3>Tests not using AltRMI</h3>
  <div style="margin-left: 0 ; border: 2px">
  <p>
          These tests are used for a speed comparison of native Java techniques. This \
                type of testing
          is possible because AltRMI uses normal Java interfaces. All are run from \
the proxies.xml Ant  script in a single command shell.
        </p>
  <a name="N1024B"></a><a name="Dynamic+Proxy"></a>
  <h4>Dynamic Proxy</h4>
  <div style="margin-left: 0 ; border: 2px">
  <p>
            This test uses dynamically generated proxies, which are normally used \
when you want to  do implemetation hiding.  To test, launch
            <strong>ant -buildfile proxies.xml dynamic-proxy</strong>.
          </p>
  </div>
  <a name="N10258"></a><a name="Coded+Proxy"></a>
  <h4>Coded Proxy</h4>
  <div style="margin-left: 0 ; border: 2px">
  <p>
            This test uses human crafted proxy. To test, launch
            <strong>ant -buildfile proxies.xml coded-proxy</strong>.
          </p>
  </div>
  <a name="N10265"></a><a name="Non+Proxy"></a>
  <h4>Non Proxy</h4>
  <div style="margin-left: 0 ; border: 2px">
  <p>
            This test directly wires the server to the clint via TestInterface.  To \
                test, launch
            <strong>ant -buildfile proxies.xml un-proxy</strong>.  This, of course, \
is the fastest  possible connection of client and server.
          </p>
  </div>
  </div>
    
  </div>
  </td><td width="10"><img width="10" height="1" alt="" \
src="skin/images/spacer.gif"></td>  </tr>
  <!--================= end Content==================-->
  </table>
  </td>
  </tr>
  </table>
  <!--================= end Menu, NavBar, Content ==================-->
  <!--================= start Footer ==================-->
  <table summary="footer" cellspacing="0" cellpadding="0" width="100%" border="0">
  <tr>
  <td colspan="2" height="1" bgcolor="#4C6C8F"><img height="1" width="1" alt="" \
src="skin/images/spacer.gif"><a href="skin/images/label.gif"></a><a \
href="skin/images/page.gif"></a><a href="skin/images/chapter.gif"></a><a \
href="skin/images/chapter_open.gif"></a><a href="skin/images/current.gif"></a><a \
href="/favicon.ico"></a></td>  </tr>
  <tr>
  <td colspan="2" bgcolor="#CFDCED" class="copyright" align="center"><font size="2" \
                face="Arial, Helvetica, Sans-Serif">Copyright &copy;
            2003&nbsp;The Apache Software Foundation. All rights reserved.<script \
                type="text/javascript" language="JavaScript"><!--
                document.write(" - "+"Last Published: " + document.lastModified);
              //  --></script></font></td>
  </tr>
  <tr>
  <td colspan="2" align="left" bgcolor="#CFDCED" class="logos"></td>
  </tr>
  </table>
  <!--================= end Footer ==================-->
  </body>
  </html>
  
  
  
  1.1                  incubator-site/build/site/projects/altrmi/tests.pdf
  
  	<<Binary file>>
  
  
  1.1                  incubator-site/build/site/projects/altrmi/todo.html
  
  Index: todo.html
  ===================================================================
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" \
"http://www.w3.org/TR/html4/loose.dtd">  <html>
  <head>
  <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
  <title>Todo List</title>
  <link type="text/css" href="skin/page.css" rel="stylesheet">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
  <!--================= start Navigation Path ==================-->
  <table summary="navigation path" width="100%" border="0" cellpadding="0" \
cellspacing="0">  <tr>
  <td nowrap="nowrap" valign="middle" bgcolor="#CFDCED" height="20"><img height="1" \
width="5" alt="" border="0" src="skin/images/spacer.gif"><!--===== breadcrumb trail \
(javascript-generated) ====--><font size="2" face="Arial, Helvetica, \
Sans-serif"><script src="skin/breadcrumbs.js" language="JavaScript" \
type="text/javascript"></script></font></td>  </tr>
  <tr>
  <td bgcolor="#4C6C8F" height="2"><img height="2" width="2" alt="" border="0" \
src="skin/images/spacer.gif"></td>  </tr>
  </table>
  <!--================= end Navigation Path ==================-->
  <!--================= start Banner ==================-->
  <table summary="header with logos" width="100%" border="0" cellpadding="0" \
cellspacing="0">  <tr>
  <!--================= start Group Logo ==================-->
  <td bgcolor="#294563"><a href="http://incubator.apache.org"><img border="0" \
class="logoImage" alt="Incubator" \
src="http://incubator.apache.org/images/group-logo.gif"></a></td>  \
<!--================= end Group Logo ==================-->  <!--================= \
start Project Logo ==================--><td width="100%" align="center" \
bgcolor="#294563"><a href="http://incubator.apache.org/projects/altrmi"><img \
border="0" class="logoImage" alt="AltRMI" src="images/altrmi_logo.gif"></a></td>  \
<!--================= end Project Logo ==================-->  <!--================= \
start Search ==================--><td valign="top" rowspan="2" bgcolor="#294563">  \
<form target="_blank" action="http://www.google.com/search" method="get">  <table \
summary="search" border="0" cellspacing="0" cellpadding="0" bgcolor="#4C6C8F">  <tr>
  <td colspan="3"><img height="10" width="1" alt="" \
src="skin/images/spacer.gif"></td>  </tr>
  <tr>
  <td><img height="1" width="1" alt="" src="skin/images/spacer.gif"></td><td \
nowrap="nowrap"><input value="incubator.apache.org" name="sitesearch" \
type="hidden"><input size="15" name="q" id="query" type="text"><img height="1" \
width="5" alt="" src="skin/images/spacer.gif"><input name="Search" value="Search" \
type="submit">  <br>
  <font face="Arial, Helvetica, Sans-serif" size="2" color="white">
                        the Incubator site
                        
                        
                      </font></td><td><img height="1" width="1" alt="" \
src="skin/images/spacer.gif"></td>  </tr>
  <tr>
  <td><img alt="" border="0" height="10" width="9" \
src="skin/images/search-left.gif"></td><td><img height="1" width="1" alt="" \
src="skin/images/spacer.gif"></td><td><img alt="" border="0" height="10" width="9" \
src="skin/images/search-right.gif"></td>  </tr>
  </table>
  </form>
  </td>
  <!--================= start Search ==================--><td bgcolor="#294563"><img \
height="10" width="10" alt="" src="skin/images/spacer.gif"></td>  </tr>
  <tr>
  <td valign="bottom" bgcolor="#294563" colspan="2">
  <!--================= start Tabs ==================-->
  <div class="tab">
  <table summary="tab bar" border="0" cellpadding="0" cellspacing="0">
  <tr>
  <td width="8"><img alt="" height="8" width="8" \
src="skin/images/spacer.gif"></td><td valign="bottom">  <table summary="selected tab" \
style="height: 1.7em" border="0" cellpadding="0" cellspacing="0">  <tr>
  <td valign="top" width="5" bgcolor="#4C6C8F"><img height="5" width="5" alt="" \
src="skin/images/tabSel-left.gif"></td><td valign="middle" bgcolor="#4C6C8F"><font \
color="#ffffff" size="2" face="Arial, Helvetica, Sans-serif"><b><a \
href="index.html"><font color="#000000">Home</font></a></b></font></td><td \
valign="top" width="5" bgcolor="#4C6C8F"><img height="5" width="5" alt="" \
src="skin/images/tabSel-right.gif"></td>  </tr>
  </table>
  </td>
  </tr>
  </table>
  </div>
  <!--================= end Tabs ==================-->
  </td><td bgcolor="#294563"><img alt="" width="1" height="1" \
src="skin/images/spacer.gif"></td>  </tr>
  <tr>
  <td bgcolor="#4C6C8F" colspan="4"><img width="1" height="10" alt="" \
src="skin/images/spacer.gif"></td>  </tr>
  </table>
  <!--================= end Banner ==================-->
  <!--================= start Menu, NavBar, Content ==================-->
  <table summary="page content" bgcolor="#ffffff" width="100%" border="0" \
cellpadding="0" cellspacing="0">  <tr>
  <td valign="top">
  <table summary="menu" border="0" cellspacing="0" cellpadding="0">
  <tr>
  <!--================= start left top NavBar ==================-->
  <td rowspan="3" valign="top">
  <table summary="blue line" border="0" cellpadding="0" cellspacing="0">
  <tr>
  <td bgcolor="#294563"><img width="10" height="1" alt="" \
src="skin/images/spacer.gif"></td>  </tr>
  <tr>
  <td bgcolor="#CFDCED"><font color="#4C6C8F" size="4" face="Arial, Helvetica, \
Sans-serif">&nbsp;</font></td>  </tr>
  <tr>
  <td bgcolor="#294563"><img width="10" height="1" alt="" \
src="skin/images/spacer.gif"></td>  </tr>
  </table>
  </td>
  <!--================= end left top NavBar ==================--><td \
bgcolor="#294563"><img width="1" height="1" alt="" \
src="skin/images/spacer.gif"></td><td valign="bottom" bgcolor="#4C6C8F"><img \
width="10" height="10" alt="" src="skin/images/spacer.gif"></td><td nowrap="nowrap" \
valign="top" bgcolor="#4C6C8F">  <!--================= start Menu items \
==================-->  <div class="menu">
  <ul>
  <li>
  <font color="#CFDCED">About</font>
  <ul>
      
  <li>
  <a href="index.html">Index</a>
  </li>
      
  <li>
  <a href="otherfeatures.html">Other Features</a>
  </li>
      
  <li>
  <a href="transports.html">Transports</a>
  </li>    
      
  <li>
  <a href="faq.html">FAQ</a>
  </li>
      
  <li>
  <a href="changes.html">Changes</a>
  </li>
      
  <li>
  <span class="sel"><font color="#ffcc00">Todo</font></span>
  </li>
    
  </ul>
  </li>
  <li>
  <font color="#CFDCED">Using</font>
  <ul> 
      
  <li>
  <a href="facades.html">Facade Design</a>
  </li>
      
  <li>
  <a href="generating-proxies.html">Generating proxies</a>
  </li>
      
  <li>
  <a href="publishing.html">Publishing</a>
  </li>
      
  <li>
  <a href="client-usage.html">Client usage</a>
  </li>
      
  <li>
  <a href="pingers.html">Pingers</a>
  </li>
      
  <li>
  <a href="connection-listeners.html">Connection Listeners</a>
  </li>
      
  <li>
  <a href="tests.html">Tests</a>
  </li>  
    
  </ul>
  </li>
  </ul>
  </div>
  <!--================= end Menu items ==================-->
  </td><td valign="bottom" bgcolor="#4C6C8F"><img width="10" height="10" alt="" \
src="skin/images/spacer.gif"></td><td bgcolor="#294563"><img width="1" height="1" \
alt="" src="skin/images/spacer.gif"></td>  </tr>
  <tr>
  <td valign="bottom" align="left" colspan="2" rowspan="2" bgcolor="#4C6C8F"><img \
height="10" width="10" border="0" alt="" src="skin/images/menu-left.gif"></td><td \
bgcolor="#4C6C8F"><img height="10" width="10" border="0" alt="" \
src="skin/images/spacer.gif"></td><td valign="bottom" align="right" colspan="2" \
rowspan="2" bgcolor="#4C6C8F"><img height="10" width="10" border="0" alt="" \
src="skin/images/menu-right.gif"></td>  </tr>
  <tr>
  <td height="1" bgcolor="#294563"><img width="1" height="1" alt="" \
src="skin/images/spacer.gif"></td>  </tr>
  </table>
  </td><td valign="top" width="100%">
  <table summary="content" width="100%" border="0" cellpadding="0" cellspacing="0">
  <!--================= start middle NavBar ==================-->
  <tr>
  <td colspan="4" bgcolor="#294563"><img width="10" height="1" alt="" \
src="skin/images/spacer.gif"></td>  </tr>
  <tr>
  <td align="left" width="10" bgcolor="#CFDCED"><img width="10" height="1" alt="" \
src="skin/images/spacer.gif"></td><td align="left" width="50%" \
bgcolor="#CFDCED"><font color="#4C6C8F" size="3" face="Arial, Helvetica, Sans-serif"> \
&nbsp;  
                  </font><img width="10" height="8" alt="" \
src="skin/images/spacer.gif"></td><td align="right" width="50%" \
bgcolor="#CFDCED"><font color="#4C6C8F" size="3" face="Arial, Helvetica, Sans-serif"> \
&nbsp;  
                  </font><img width="10" height="8" alt="" \
src="skin/images/spacer.gif"></td><td width="10" bgcolor="#CFDCED"><img width="10" \
height="1" alt="" src="skin/images/spacer.gif"></td>  </tr>
  <tr>
  <td colspan="4" bgcolor="#294563"><img width="10" height="1" alt="" \
src="skin/images/spacer.gif"></td>  </tr>
  <!--================= end middle NavBar ==================-->
  <!--================= start Content==================-->
  <tr>
  <td align="left" width="10"><img width="10" height="1" alt="" \
src="skin/images/spacer.gif"></td><td align="left" width="100%">  <div \
class="content">  <table class="title" summary="">
  <tr>
  <td valign="middle">
  <h1>Todo List</h1>
  </td><td nowrap="nowrap" width="80" align="center"><a class="dida" \
href="todo.pdf"><img alt="printer" src="skin/images/printer.gif" border="0"><br>  \
print-friendly<br>  PDF</a></td>
  </tr>
  </table>
  <ul class="minitoc">
  <li>
  <a href="#">high</a>
  </li>
  </ul>
      
  <a name="N10008"></a>
  <h3>high</h3>
  <div style="margin-left: 0 ; border: 2px">
  <ul>
  <li>
  <strong>[docs]</strong> 
          More of them.
         &rarr; PH</li>
  <li>
  <strong>[feedback]</strong> 
          Mail <a href="mailto:projects.at.incubator.apache.org">projects@incubator.apache.org</a>
  with feedback. Please specify a subject starting with '[AltRMI]'
         &rarr; PH</li>
  </ul>
  </div>
    
  </div>
  </td><td width="10"><img width="10" height="1" alt="" \
src="skin/images/spacer.gif"></td>  </tr>
  <!--================= end Content==================-->
  </table>
  </td>
  </tr>
  </table>
  <!--================= end Menu, NavBar, Content ==================-->
  <!--================= start Footer ==================-->
  <table summary="footer" cellspacing="0" cellpadding="0" width="100%" border="0">
  <tr>
  <td colspan="2" height="1" bgcolor="#4C6C8F"><img height="1" width="1" alt="" \
src="skin/images/spacer.gif"><a href="skin/images/label.gif"></a><a \
href="skin/images/page.gif"></a><a href="skin/images/chapter.gif"></a><a \
href="skin/images/chapter_open.gif"></a><a href="skin/images/current.gif"></a><a \
href="/favicon.ico"></a></td>  </tr>
  <tr>
  <td colspan="2" bgcolor="#CFDCED" class="copyright" align="center"><font size="2" \
                face="Arial, Helvetica, Sans-Serif">Copyright &copy;
            2003&nbsp;The Apache Software Foundation. All rights reserved.<script \
                type="text/javascript" language="JavaScript"><!--
                document.write(" - "+"Last Published: " + document.lastModified);
              //  --></script></font></td>
  </tr>
  <tr>
  <td colspan="2" align="left" bgcolor="#CFDCED" class="logos"></td>
  </tr>
  </table>
  <!--================= end Footer ==================-->
  </body>
  </html>
  
  
  
  1.1                  incubator-site/build/site/projects/altrmi/todo.pdf
  
  	<<Binary file>>
  
  
  1.1                  incubator-site/build/site/projects/altrmi/transports.html
  
  Index: transports.html
  ===================================================================
  <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" \
"http://www.w3.org/TR/html4/loose.dtd">  <html>
  <head>
  <META http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
  <title>AltRMI / Transports</title>
  <link type="text/css" href="skin/page.css" rel="stylesheet">
  </head>
  <body text="#000000" bgcolor="#FFFFFF">
  <!--================= start Navigation Path ==================-->
  <table summary="navigation path" width="100%" border="0" cellpadding="0" \
cellspacing="0">  <tr>
  <td nowrap="nowrap" valign="middle" bgcolor="#CFDCED" height="20"><img height="1" \
width="5" alt="" border="0" src="skin/images/spacer.gif"><!--===== breadcrumb trail \
(javascript-generated) ====--><font size="2" face="Arial, Helvetica, \
Sans-serif"><script src="skin/breadcrumbs.js" language="JavaScript" \
type="text/javascript"></script></font></td>  </tr>
  <tr>
  <td bgcolor="#4C6C8F" height="2"><img height="2" width="2" alt="" border="0" \
src="skin/images/spacer.gif"></td>  </tr>
  </table>
  <!--================= end Navigation Path ==================-->
  <!--================= start Banner ==================-->
  <table summary="header with logos" width="100%" border="0" cellpadding="0" \
cellspacing="0">  <tr>
  <!--================= start Group Logo ==================-->
  <td bgcolor="#294563"><a href="http://incubator.apache.org"><img border="0" \
class="logoImage" alt="Incubator" \
src="http://incubator.apache.org/images/group-logo.gif"></a></td>  \
<!--================= end Group Logo ==================-->  <!--================= \
start Project Logo ==================--><td width="100%" align="center" \
bgcolor="#294563"><a href="http://incubator.apache.org/projects/altrmi"><img \
border="0" class="logoImage" alt="AltRMI" src="images/altrmi_logo.gif"></a></td>  \
<!--================= end Project Logo ==================-->  <!--================= \
start Search ==================--><td valign="top" rowspan="2" bgcolor="#294563">  \
<form target="_blank" action="http://www.google.com/search" method="get">  <table \
summary="search" border="0" cellspacing="0" cellpadding="0" bgcolor="#4C6C8F">  <tr>
  <td colspan="3"><img height="10" width="1" alt="" \
src="skin/images/spacer.gif"></td>  </tr>
  <tr>
  <td><img height="1" width="1" alt="" src="skin/images/spacer.gif"></td><td \
nowrap="nowrap"><input value="incubator.apache.org" name="sitesearch" \
type="hidden"><input size="15" name="q" id="query" type="text"><img height="1" \
width="5" alt="" src="skin/images/spacer.gif"><input name="Search" value="Search" \
type="submit">  <br>
  <font face="Arial, Helvetica, Sans-serif" size="2" color="white">
                        the Incubator site
                        
                        
                      </font></td><td><img height="1" width="1" alt="" \
src="skin/images/spacer.gif"></td>  </tr>
  <tr>
  <td><img alt="" border="0" height="10" width="9" \
src="skin/images/search-left.gif"></td><td><img height="1" width="1" alt="" \
src="skin/images/spacer.gif"></td><td><img alt="" border="0" height="10" width="9" \
src="skin/images/search-right.gif"></td>  </tr>
  </table>
  </form>
  </td>
  <!--================= start Search ==================--><td bgcolor="#294563"><img \
height="10" width="10" alt="" src="skin/images/spacer.gif"></td>  </tr>
  <tr>
  <td valign="bottom" bgcolor="#294563" colspan="2">
  <!--================= start Tabs ==================-->
  <div class="tab">
  <table summary="tab bar" border="0" cellpadding="0" cellspacing="0">
  <tr>
  <td width="8"><img alt="" height="8" width="8" \
src="skin/images/spacer.gif"></td><td valign="bottom">  <table summary="selected tab" \
style="height: 1.7em" border="0" cellpadding="0" cellspacing="0">  <tr>
  <td valign="top" width="5" bgcolor="#4C6C8F"><img height="5" width="5" alt="" \
src="skin/images/tabSel-left.gif"></td><td valign="middle" bgcolor="#4C6C8F"><font \
color="#ffffff" size="2" face="Arial, Helvetica, Sans-serif"><b><a \
href="index.html"><font color="#000000">Home</font></a></b></font></td><td \
valign="top" width="5" bgcolor="#4C6C8F"><img height="5" width="5" alt="" \
src="skin/images/tabSel-right.gif"></td>  </tr>
  </table>
  </td>
  </tr>
  </table>
  </div>
  <!--================= end Tabs ==================-->
  </td><td bgcolor="#294563"><img alt="" width="1" height="1" \
src="skin/images/spacer.gif"></td>  </tr>
  <tr>
  <td bgcolor="#4C6C8F" colspan="4"><img width="1" height="10" alt="" \
src="skin/images/spacer.gif"></td>  </tr>
  </table>
  <!--================= end Banner ==================-->
  <!--================= start Menu, NavBar, Content ==================-->
  <table summary="page content" bgcolor="#ffffff" width="100%" border="0" \
cellpadding="0" cellspacing="0">  <tr>
  <td valign="top">
  <table summary="menu" border="0" cellspacing="0" cellpadding="0">
  <tr>
  <!--================= start left top NavBar ==================-->
  <td rowspan="3" valign="top">
  <table summary="blue line" border="0" cellpadding="0" cellspacing="0">
  <tr>
  <td bgcolor="#294563"><img width="10" height="1" alt="" \
src="skin/images/spacer.gif"></td>  </tr>
  <tr>
  <td bgcolor="#CFDCED"><font color="#4C6C8F" size="4" face="Arial, Helvetica, \
Sans-serif">&nbsp;</font></td>  </tr>
  <tr>
  <td bgcolor="#294563"><img width="10" height="1" alt="" \
src="skin/images/spacer.gif"></td>  </tr>
  </table>
  </td>
  <!--================= end left top NavBar ==================--><td \
bgcolor="#294563"><img width="1" height="1" alt="" \
src="skin/images/spacer.gif"></td><td valign="bottom" bgcolor="#4C6C8F"><img \
width="10" height="10" alt="" src="skin/images/spacer.gif"></td><td nowrap="nowrap" \
valign="top" bgcolor="#4C6C8F">  <!--================= start Menu items \
==================-->  <div class="menu">
  <ul>
  <li>
  <font color="#CFDCED">About</font>
  <ul>
      
  <li>
  <a href="index.html">Index</a>
  </li>
      
  <li>
  <a href="otherfeatures.html">Other Features</a>
  </li>
      
  <li>
  <span class="sel"><font color="#ffcc00">Transports</font></span>
  </li>    
      
  <li>
  <a href="faq.html">FAQ</a>
  </li>
      
  <li>
  <a href="changes.html">Changes</a>
  </li>
      
  <li>
  <a href="todo.html">Todo</a>
  </li>
    
  </ul>
  </li>
  <li>
  <font color="#CFDCED">Using</font>
  <ul> 
      
  <li>
  <a href="facades.html">Facade Design</a>
  </li>
      
  <li>
  <a href="generating-proxies.html">Generating proxies</a>
  </li>
      
  <li>
  <a href="publishing.html">Publishing</a>
  </li>
      
  <li>
  <a href="client-usage.html">Client usage</a>
  </li>
      
  <li>
  <a href="pingers.html">Pingers</a>
  </li>
      
  <li>
  <a href="connection-listeners.html">Connection Listeners</a>
  </li>
      
  <li>
  <a href="tests.html">Tests</a>
  </li>  
    
  </ul>
  </li>
  </ul>
  </div>
  <!--================= end Menu items ==================-->
  </td><td valign="bottom" bgcolor="#4C6C8F"><img width="10" height="10" alt="" \
src="skin/images/spacer.gif"></td><td bgcolor="#294563"><img width="1" height="1" \
alt="" src="skin/images/spacer.gif"></td>  </tr>
  <tr>
  <td valign="bottom" align="left" colspan="2" rowspan="2" bgcolor="#4C6C8F"><img \
height="10" width="10" border="0" alt="" src="skin/images/menu-left.gif"></td><td \
bgcolor="#4C6C8F"><img height="10" width="10" border="0" alt="" \
src="skin/images/spacer.gif"></td><td valign="bottom" align="right" colspan="2" \
rowspan="2" bgcolor="#4C6C8F"><img height="10" width="10" border="0" alt="" \
src="skin/images/menu-right.gif"></td>  </tr>
  <tr>
  <td height="1" bgcolor="#294563"><img width="1" height="1" alt="" \
src="skin/images/spacer.gif"></td>  </tr>
  </table>
  </td><td valign="top" width="100%">
  <table summary="content" width="100%" border="0" cellpadding="0" cellspacing="0">
  <!--================= start middle NavBar ==================-->
  <tr>
  <td colspan="4" bgcolor="#294563"><img width="10" height="1" alt="" \
src="skin/images/spacer.gif"></td>  </tr>
  <tr>
  <td align="left" width="10" bgcolor="#CFDCED"><img width="10" height="1" alt="" \
src="skin/images/spacer.gif"></td><td align="left" width="50%" \
bgcolor="#CFDCED"><font color="#4C6C8F" size="3" face="Arial, Helvetica, Sans-serif"> \
&nbsp;  
                  </font><img width="10" height="8" alt="" \
src="skin/images/spacer.gif"></td><td align="right" width="50%" \
bgcolor="#CFDCED"><font color="#4C6C8F" size="3" face="Arial, Helvetica, Sans-serif"> \
&nbsp;  
                  </font><img width="10" height="8" alt="" \
src="skin/images/spacer.gif"></td><td width="10" bgcolor="#CFDCED"><img width="10" \
height="1" alt="" src="skin/images/spacer.gif"></td>  </tr>
  <tr>
  <td colspan="4" bgcolor="#294563"><img width="10" height="1" alt="" \
src="skin/images/spacer.gif"></td>  </tr>
  <!--================= end middle NavBar ==================-->
  <!--================= start Content==================-->
  <tr>
  <td align="left" width="10"><img width="10" height="1" alt="" \
src="skin/images/spacer.gif"></td><td align="left" width="100%">  <div \
class="content">  <table class="title" summary="">
  <tr>
  <td valign="middle">
  <h1>AltRMI / Transports</h1>
  </td><td nowrap="nowrap" width="80" align="center"><a class="dida" \
href="transports.pdf"><img alt="printer" src="skin/images/printer.gif" \
border="0"><br>  print-friendly<br>
            PDF</a></td>
  </tr>
  </table>
  <p>
  <font size="-2">by&nbsp;Paul Hammant</font>
  </p>
  <ul class="minitoc">
  <li>
  <a href="#Introduction">Introduction</a>
  </li>
  <li>
  <a href="#Supplied+Request%2FResponse+Transports">Supplied Request/Response \
Transports</a>  <ul class="minitoc">
  <li>
  <a href="#Plain+Sockets+%2F+ObjectStream+%26+CustomStream+varients">Plain Sockets / \
ObjectStream &amp; CustomStream varients</a>  </li>
  <li>
  <a href="#Over+RMI">Over RMI</a>
  </li>
  <li>
  <a href="#Piped+with+same+VM+%2F+ObjectStream+%26+CustomStream+varients">Piped with \
same VM / ObjectStream &amp; CustomStream varients</a>  </li>
  <li>
  <a href="#Direct+within+same+VM">Direct within same VM</a>
  </li>
  <li>
  <a href="#JNDI">JNDI</a>
  </li>
  </ul>
  </li>
  <li>
  <a href="#Supplied+Callback+capable+Transports">Supplied Callback capable \
Transports</a>  <ul class="minitoc">
  <li>
  <a href="#xxx">xxx</a>
  </li>
  </ul>
  </li>
  <li>
  <a href="#Future+Transports">Future Transports</a>
  </li>
  <li>
  <a href="#Speed">Speed</a>
  <ul class="minitoc">
  <li>
  <a href="#AltRMI+types+over+TCP%2FIP">AltRMI types over TCP/IP</a>
  </li>
  <li>
  <a href="#AltRMI+types+in+the+same+VM">AltRMI types in the same VM</a>
  </li>
  <li>
  <a href="#Non+AltRMI+types">Non AltRMI types</a>
  </li>
  </ul>
  </li>
  <li>
  <a href="#Secrets+of+classloading">Secrets of classloading</a>
  </li>
  </ul>
      
  <a name="N101C5"></a><a name="Introduction"></a>
  <h3>Introduction</h3>
  <div style="margin-left: 0 ; border: 2px">
  <p>
          AltRMI has pluggable and reimplementable transports.  They differ in terms \
                of speed and layers of transport.
          Some are in VM, others between VMs using sockets and various Java concepts.
        </p>
  </div>
      
  <a name="N101CF"></a><a name="Supplied+Request%2FResponse+Transports"></a>
  <h3>Supplied Request/Response Transports</h3>
  <div style="margin-left: 0 ; border: 2px">
  <p>
          The supplied transports fall into two categories - Intra-JVM and Inter-JVM. \
                The Inter-JVM types are for
          bridging a network divide over TCP/IP.  This can also mean two JVMs in the \
                same physical machine, using
          local-loop TCP/IP. The Intra-JVM types are for situations where normal \
                dynamic proxy will not work.  For
          example when the client and the server both have a definition of the same \
                interface in different
          classloaders.  Most Java projects do not involve trees of classloaders, but \
                writing frameworks like
          Avalon-Phoenix or or an implementation of the EJB specification will.
        </p>
  <p>
          All of these transports are synchronous too.  That means that an invocation \
                across their connection
          will wait until it is completed server side before the next invocation is \
allowed through.  </p>
  <a name="N101DB"></a><a \
name="Plain+Sockets+%2F+ObjectStream+%26+CustomStream+varients"></a>  <h4>Plain \
Sockets / ObjectStream &amp; CustomStream varients</h4>  <div style="margin-left: 0 ; \
border: 2px">  <p>
            This transport is a streaming type that uses serialization of objects \
                over a TCP/IP connection.  There
            are two variations. The first uses java.io.ObjectInputStream &amp; \
                java.io.ObjectOutputStream (AKA
            'ObjectStream', the second uses what we call 'CustomStream'. CustomStream \
                came into being because of this
            bug <a href="http://developer.java.sun.com/developer/bugParade/bugs/4499841.html">
                
            http://developer.java.sun.com/developer/bugParade/bugs/4499841.html</a>
            which seriously restricts the usefulness of ObjectStream as a transport
            (and the same java.io classes for other uses). Custom Stream is slower by \
                20%, but we recommend it's use
            over ObjectStream.  At least until the bug at Sun is fixed (please vote \
for it).  </p>
  </div>
  <a name="N101E9"></a><a name="Over+RMI"></a>
  <h4>Over RMI</h4>
  <div style="margin-left: 0 ; border: 2px">
  <p>
            This is another transport that bridges two different JVMs using TCP/IP.  \
                It is actually the fastest of all the
            TCP/IP using transports. and takes advantage of RMI as it's transport \
while hiding RMI from the AltRMI  client and server.
          </p>
  </div>
  <a name="N101F3"></a><a \
name="Piped+with+same+VM+%2F+ObjectStream+%26+CustomStream+varients"></a>  <h4>Piped \
with same VM / ObjectStream &amp; CustomStream varients</h4>  <div \
style="margin-left: 0 ; border: 2px">  <p>
            In a similar way to the ObjectStream and CustomStream implementations of \
                the plain sockets transport, these
            offer transport using a pipe inside the JVM.  Not needed for most users \
                of AltRMI these prove useful for
            developers making complex trees of classloaders with high separation from \
                each other. As a Pipe is being
            used there is is some opportunity for buffering of invocations.  This \
might slow the throughput down but  this may relieve other parts of a particular \
design.  </p>
  </div>
  <a name="N101FD"></a><a name="Direct+within+same+VM"></a>
  <h4>Direct within same VM</h4>
  <div style="margin-left: 0 ; border: 2px">
  <p>
            There are 'Direct' and 'DirectMarshalled' transports.  These are use \
                useful in the same scenarios as
            the Piped one, but with some small differences.  Principally, there is no \
                pipe - the invocation is
            immediately handled on the server side.  With Direct there is also the \
                fact that all mutually visible
            classes and interfaces would have to be in a commonly visible \
                classloader.  With DirectMarshalled,
            there can be duplicate interfaces and class definitions as in the \
streamed types of transport.  </p>
  </div>
  <a name="N10207"></a><a name="JNDI"></a>
  <h4>JNDI</h4>
  <div style="margin-left: 0 ; border: 2px">
  <p>
            Many of the basic transport types are accessible client side through \
                JNDI.  This makes the client side usage
            more standards compliant, but these is no need to choose it over the \
bespoke AltRMI client usage at all.  </p>
  </div>
  </div>
      
  <a name="N10212"></a><a name="Supplied+Callback+capable+Transports"></a>
  <h3>Supplied Callback capable Transports</h3>
  <div style="margin-left: 0 ; border: 2px">
  <p>
          All of these transports are asynchronous.  Thais means that an invocation \
                across the connection
          does not wait until the reply is ready before it allows another request \
                though.  This allows
          two things - excpetionally lengthy requests (that might ordinarily affect \
                timeouts) to be performed and
          callbacks (server invoking requests on the client).  There is a small (15%) \
cost to using this transport for  simple cases, but its benefits outweigh its \
deficiencies.  </p>
  <p>
          Whilst the Callback enabled transports are better from the point of view of \
asynchronous behaviour  </p>
  <a name="N1021E"></a><a name="xxx"></a>
  <h4>xxx</h4>
  <div style="margin-left: 0 ; border: 2px"></div>
  </div>
      
  <a name="N10226"></a><a name="Future+Transports"></a>
  <h3>Future Transports</h3>
  <div style="margin-left: 0 ; border: 2px">
  <p>
        
  </p>
  <ul>
            
  <li>SOAP - Might require additional undynamic "toWSDL()" step.</li>
  	  
  <li>CORBA - Might require additional undynamic "toIDL()" step.</li>
  	  
  <li>JMS</li>
  	  
  <li>UDP</li>
  	  
  <li>Over RMI over IIOP</li>
  	  
  <li>Over JMS</li>
  	  
  <li>Over RMI over HTTP</li>
  	  
  <li>Over HTTP (custom impl)</li>
  	  
  <li>TLS enabled versions of many of the above.</li>
          
  </ul>
  </div>
      
  <a name="N1024E"></a><a name="Speed"></a>
  <h3>Speed</h3>
  <div style="margin-left: 0 ; border: 2px">
  <p>
          Counting the number of 'void testSpeed()' invocations in 10 seconds,
          we can guage the differences (Paul's Athlon900/Win2K machine)
  
        </p>
  <a name="N10257"></a><a name="AltRMI+types+over+TCP%2FIP"></a>
  <h4>AltRMI types over TCP/IP</h4>
  <div style="margin-left: 0 ; border: 2px">
  <p>
  	    For remote publication<br>
  	    
  <br>
  	    Speed Test type                   Count Relative<br>
  	    ------------------------------- ------- --------<br>
  	    a) ObjectStream over sockets #2    2702     1.00<br>
  	    b) Over RMI                        4359	1.61<br>
  	    c) CustomStream over sockets       6069     2.25<br>
  	    d) ObjectStream over sockets #1   10088     3.73<br>
  
              
  </p>
  </div>
  <a name="N10271"></a><a name="AltRMI+types+in+the+same+VM"></a>
  <h4>AltRMI types in the same VM</h4>
  <div style="margin-left: 0 ; border: 2px">
  <p>
  
  	    These are useful for complete classloader separation of interface &amp; \
                implementation using
  	    different classloaders. The implementation and 'remote' proxy do not need to \
see the same  interfaces etc..<br>
              
  <br>
  	    Speed Test type                   Count Relative<br>
  	    ------------------------------- ------- --------<br>
  	    e) ObjectStream over Pipe #2      12095     4.48<br>
  	    f) Direct Marshalled #3           20759     7.68<br>
  	    g) ObjectStream over Pipe #1      61166    22.64<br>
  	    h) Direct Unmarshalled #4        2391498   885.08<br>
  
  	    #1 Without calling reset() as workaround to the ObjectStream bug
  	    #2 With calling reset() as workaround to the ObjectStream bug
  	    #3 Completely separates classloaders of client and server. Requires
  	       a thread for each though.
  	    #4 Good as DynamicProxy for separation. Does not separate classloaders
  	       of client and server.
  	    </p>
  </div>
  <a name="N1028B"></a><a name="Non+AltRMI+types"></a>
  <h4>Non AltRMI types</h4>
  <div style="margin-left: 0 ; border: 2px">
  <p>
  
  	    - In VM, without using AltRMI - for comparison.
  	    - The inteface, implementation and proxy cannot be separated in terms of
  	      branches of classloader for these three. The same interfaces
  	      etc must be visible to both implementation and proxy.
  	      <br>
  	    Speed Test type                   Count Relative<br>
  	    ------------------------------- ------- --------<br>
  	    i) DyanmicProxy #5<br>
  	       (copied from Excalibur)     20282070  7506.32<br>
  	    j) Hand-coded proxy #5         41214422 15253.30<br>
  	    k) No Proxy #5                 42384804 15686.46<br>
  	    
  <br>
  	    #4 - For all of these three, the actual timing may slow down the test.<br>
             
  </p>
  </div>
  </div>
       
  <a name="N102A8"></a><a name="Secrets+of+classloading"></a>
  <h3>Secrets of classloading</h3>
  <div style="margin-left: 0 ; border: 2px">
  <p>
          There is a feature of classloading that affects the way that the an AltRMI \
                using client and server interoperte
          when it comes to resolving classes and interfaces for a given object.  As \
                is widely known, the JVM resolves
          depended on classes for a being-instantiated object at runtime. The issue \
                concerns a class definition existing
          twice in a tree of classloaders and whther the JVM considers an instance of \
each to be of the same type.  </p>
  <p>
          Consider a tree of three classloaders - A, B and C.  Consider that A is the \
                parent classloader of B &amp; C.
          This means that B can access all the classes mounted by itself and by A.  \
                Similarly C can access all the
          classes mounted by itself and A.  Now if A had a singleton that stored a \
                single object via
          <strong>void setObject(object o);</strong> and <strong>Object \
                getObject();</strong>, and clases in
          B amp; C could invoke those methods freely, the you might consider that B \
                has a way of taking to C.  if B
          called (essentially) <strong>A.setObject("Hello")</strong>, then C could \
                indeed call <strong>String
          s = A.getObject()</strong> without any problem.  Say a class being passed \
                were called 'Thing' and was in the
          classloader of B and duplicated in the classloader of C, but not in A at \
                all, then it would not be passable
          by the setter/getter mechanism outlined above.  Why?  The JVM considers \
                then different classes because they
          are mounted in different classloaders (even though from the same source).  \
That is a secret  of classloading (at least as it pertains to RPC in one VM).
        </p>
  <p>
          The issue is relevent to AltRMI mostly if it is being used to connect two \
                nodes of a single classloader tree.
          If the transport chosen is 'Direct' then you will get ClassCastExceptions \
                thrown by the JVM if you had been
          passed an Object you wanted to cast up to something, and that something \
                were represented by a class definition
          in both the server and client nodes of the classloader tree.  If the \
                something class were in a mutualy
          visible parent class loader then no issue would be apparent.  IF the client \
                and server were in separate VMs,
          then no issue would be apparent, principally because the marchalling to \
                serialized form neatly hides the
          two class definitions from the JVM.  This is the clue to the solving of the \
                issue for a particular
          client/server (in one JVM) configuration you may be cooking up.  If you \
                choose Piped or DirectMarshalled as
          trasnports, then you can have the same class definition in multiple \
                classloader nodes.  Of couse, both Piped
          and DirectMarshalled are slower than Direct as transports.  Configuration \
choices for the developer/deployer.  </p>
  </div>
    
  </div>
  </td><td width="10"><img width="10" height="1" alt="" \
src="skin/images/spacer.gif"></td>  </tr>
  <!--================= end Content==================-->
  </table>
  </td>
  </tr>
  </table>
  <!--================= end Menu, NavBar, Content ==================-->
  <!--================= start Footer ==================-->
  <table summary="footer" cellspacing="0" cellpadding="0" width="100%" border="0">
  <tr>
  <td colspan="2" height="1" bgcolor="#4C6C8F"><img height="1" width="1" alt="" \
src="skin/images/spacer.gif"><a href="skin/images/label.gif"></a><a \
href="skin/images/page.gif"></a><a href="skin/images/chapter.gif"></a><a \
href="skin/images/chapter_open.gif"></a><a href="skin/images/current.gif"></a><a \
href="/favicon.ico"></a></td>  </tr>
  <tr>
  <td colspan="2" bgcolor="#CFDCED" class="copyright" align="center"><font size="2" \
                face="Arial, Helvetica, Sans-Serif">Copyright &copy;
            2003&nbsp;The Apache Software Foundation. All rights reserved.<script \
                type="text/javascript" language="JavaScript"><!--
                document.write(" - "+"Last Published: " + document.lastModified);
              //  --></script></font></td>
  </tr>
  <tr>
  <td colspan="2" align="left" bgcolor="#CFDCED" class="logos"></td>
  </tr>
  </table>
  <!--================= end Footer ==================-->
  </body>
  </html>
  
  
  
  1.1                  incubator-site/build/site/projects/altrmi/transports.pdf
  
  	<<Binary file>>
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: cvs-unsubscribe@incubator.apache.org
For additional commands, e-mail: cvs-help@incubator.apache.org


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic