incubator-cvs mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From hamm...@apache.org
Subject cvs commit: incubator-site/build/site/projects/altrmi test1.html test2.html tests.html tests.pdf todo.html todo.pdf transports.html transports.pdf
Date Sun, 16 Feb 2003 22:03:54 GMT
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>>
  
  

Mime
View raw message