[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"> </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"> \
</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"> \
</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 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 ©
2003 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"> </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"> \
</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"> \
</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.
→ 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]'
→ 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 ©
2003 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"> </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"> \
</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"> \
</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 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 & 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 & 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 & 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 & \
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 & 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 & \
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 & 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 ©
2003 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