<?xml version="1.0" encoding="ISO-8859-1"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<title>Designing RMI Applications</title>
<meta name="AUTHOR" content="Jose M Vidal"></meta>
<meta name="GENERATOR" content="xslides.el, written by J.M. Vidal"></meta>
<link rel="stylesheet" type="text/css" href="../xslides-medwhite.css" title="White" media="all" />
 	    <link rel="alternate stylesheet" type="text/css" href="../xslides-medblue.css" title="Blue" media="all" />
 	    <link rel="alternate stylesheet" type="text/css" href="../xslides-usc.css" title="USCTheme" media="all" />
<script type="text/javascript" src="../scripts/stylehelper.js"></script>
</head>
<body>
<h1 class="slide">Designing RMI Applications</h1><div>
      We present some of the ideas from:
    <ul>
      <li>William Grosso, <a href="http://www.amazon.com/exec/obidos/ASIN/1565924525/multiagentcom/">Java
      RMI</a>, 2002. Chapters 5-10, 12-17, 19-20, 22.</li>
    </ul> 

      Code examples were downloaded from and belong to <a href="http://www.oreilly.com/catalog/javarmi/">O'Reilly</a>.
    </div>
<hr class="separator"/> <div><ol>
<li class="menu">1 <a href="sketch.xml" onclick="javascript:this.href=getURL('sketch.xml');return true;">Sketch a Rough Architecture</a></li>
<li class="menu">2 <a href="bankex.xml" onclick="javascript:this.href=getURL('bankex.xml');return true;">Bank Example</a></li>
<li class="menu">3 <a href="choices.xml" onclick="javascript:this.href=getURL('choices.xml');return true;">Two Choices</a></li>
<li class="menu">4 <a href="deciding.1.xml" onclick="javascript:this.href=getURL('deciding.1.xml');return true;">Choosing</a><a href="deciding.xml" onclick="javascript:this.href=getURL('deciding.xml');return true;">*</a>
<ol><li class="menu">4.1 <a href="c1.xml" onclick="javascript:this.href=getURL('c1.xml');return true;">Does Each Instance Require Shared Resource?</a></li>
<li class="menu">4.2 <a href="c2.xml" onclick="javascript:this.href=getURL('c2.xml');return true;">How Well Server Scales or Replicates to Multiple Machines?</a></li>
<li class="menu">4.3 <a href="c3.xml" onclick="javascript:this.href=getURL('c3.xml');return true;">Is Single Server Enough?</a></li>
<li class="menu">4.4 <a href="c4.xml" onclick="javascript:this.href=getURL('c4.xml');return true;">How to Handle Multiple Simultaneous Clients?</a></li>
<li class="menu">4.5 <a href="c5.xml" onclick="javascript:this.href=getURL('c5.xml');return true;">Is Code Correct?</a></li>
<li class="menu">4.6 <a href="c6.xml" onclick="javascript:this.href=getURL('c6.xml');return true;">How Fatal is Server Crash?</a></li>
<li class="menu">4.7 <a href="c7.xml" onclick="javascript:this.href=getURL('c7.xml');return true;">How Easy Adding Functionality?</a></li>
</ol>
</li>
<li class="menu">5 <a href="interface.xml" onclick="javascript:this.href=getURL('interface.xml');return true;">Writing the Interface</a>
<ol><li class="menu">5.1 <a href="i1.xml" onclick="javascript:this.href=getURL('i1.xml');return true;">Should We Pass Method Objects?</a></li>
<li class="menu">5.2 <a href="i2.xml" onclick="javascript:this.href=getURL('i2.xml');return true;">Pass Objects As Arguments or Use Primitive Values?</a></li>
<li class="menu">5.3 <a href="i3.xml" onclick="javascript:this.href=getURL('i3.xml');return true;">Return Values: Objects or Primitive Values?</a></li>
<li class="menu">5.4 <a href="i4.xml" onclick="javascript:this.href=getURL('i4.xml');return true;">Do Individual Method Calls Waste Bandwidth?</a></li>
<li class="menu">5.5 <a href="i5.xml" onclick="javascript:this.href=getURL('i5.xml');return true;">Is Each Conceptual Operation A Single Method Call? </a></li>
<li class="menu">5.6 <a href="i6.xml" onclick="javascript:this.href=getURL('i6.xml');return true;">Does The Interface Expose The Right Amount Of Metadata? </a></li>
<li class="menu">5.7 <a href="i7.xml" onclick="javascript:this.href=getURL('i7.xml');return true;">Have We Identified A Reasonable Set Of Distributed Exceptions?</a></li>
</ol>
</li>
<li class="menu">6 <a href="dataobjects.xml" onclick="javascript:this.href=getURL('dataobjects.xml');return true;">Building Data Objects</a></li>
<li class="menu">7 <a href="serverimp.xml" onclick="javascript:this.href=getURL('serverimp.xml');return true;">Server Implementation</a></li>
<li class="menu">8 <a href="serverimp2.xml" onclick="javascript:this.href=getURL('serverimp2.xml');return true;">Server Implementation 2</a></li>
<li class="menu">9 <a href="launch.xml" onclick="javascript:this.href=getURL('launch.xml');return true;">Launch Code</a></li>
<li class="menu">10 <a href="client.xml" onclick="javascript:this.href=getURL('client.xml');return true;">Building the Client</a></li>
<li class="menu">11 <a href="serialization.xml" onclick="javascript:this.href=getURL('serialization.xml');return true;">Serialization</a>
<ol><li class="menu">11.1 <a href="usingserialization.xml" onclick="javascript:this.href=getURL('usingserialization.xml');return true;">Using Serialization</a></li>
<li class="menu">11.2 <a href="makingaclassserializable.xml" onclick="javascript:this.href=getURL('makingaclassserializable.xml');return true;">Making a Class Serializable</a>
<ol><li class="menu">11.2.1 <a href="serializationofinstance.xml" onclick="javascript:this.href=getURL('serializationofinstance.xml');return true;">Ensure Serialization of Instance-Level State</a></li>
<li class="menu">11.2.2 <a href="ensuresuperclassstateishandledcorrectly.xml" onclick="javascript:this.href=getURL('ensuresuperclassstateishandledcorrectly.xml');return true;">Ensure Superclass State is Handled Correctly</a></li>
<li class="menu">11.2.3 <a href="overrideequalsandhashcode.xml" onclick="javascript:this.href=getURL('overrideequalsandhashcode.xml');return true;">Override equals() and hashCode()</a></li>
</ol>
</li>
</ol>
</li>
<li class="menu">12 <a href="threading.xml" onclick="javascript:this.href=getURL('threading.xml');return true;">Threading</a>
<ol><li class="menu">12.1 <a href="syncall.xml" onclick="javascript:this.href=getURL('syncall.xml');return true;">Ensure Data Integrity</a></li>
<li class="menu">12.2 <a href="clientlock.xml" onclick="javascript:this.href=getURL('clientlock.xml');return true;">Client Maintains Lock</a></li>
<li class="menu">12.3 <a href="expirythread.xml" onclick="javascript:this.href=getURL('expirythread.xml');return true;">Using a Lock Expiry Thread</a></li>
<li class="menu">12.4 <a href="mintime.xml" onclick="javascript:this.href=getURL('mintime.xml');return true;">Minimize Time in Synchronized Blocks.</a></li>
<li class="menu">12.5 <a href="container.1.xml" onclick="javascript:this.href=getURL('container.1.xml');return true;">Be Careful When Using Container Classes.</a><a href="container.xml" onclick="javascript:this.href=getURL('container.xml');return true;">*</a></li>
<li class="menu">12.6 <a href="usecontainer.xml" onclick="javascript:this.href=getURL('usecontainer.xml');return true;">Use Containers To Mediate Inter-thread Communication.</a></li>
</ol>
</li>
<li class="menu">13 <a href="testing.xml" onclick="javascript:this.href=getURL('testing.xml');return true;">Testing</a>
<ol><li class="menu">13.1 <a href="teststrategy.xml" onclick="javascript:this.href=getURL('teststrategy.xml');return true;">Test Strategy</a></li>
</ol>
</li>
<li class="menu">14 <a href="namingservices.xml" onclick="javascript:this.href=getURL('namingservices.xml');return true;">Naming Services</a></li>
<li class="menu">15 <a href="rmigarbagecollection.xml" onclick="javascript:this.href=getURL('rmigarbagecollection.xml');return true;">RMI Garbage Collection</a></li>
<li class="menu">16 <a href="rmilogging.xml" onclick="javascript:this.href=getURL('rmilogging.xml');return true;">RMI Logging</a>
<ol><li class="menu">16.1 <a href="specializedlogs.xml" onclick="javascript:this.href=getURL('specializedlogs.xml');return true;">Specialized Logs</a></li>
</ol>
</li>
<li class="menu">17 <a href="securitypolicy.xml" onclick="javascript:this.href=getURL('securitypolicy.xml');return true;">Security Policy</a>
<ol><li class="menu">17.1 <a href="securitymanagerpermissions.xml" onclick="javascript:this.href=getURL('securitymanagerpermissions.xml');return true;">Security Manager Permissions</a></li>
<li class="menu">17.2 <a href="thesecuritymanager.xml" onclick="javascript:this.href=getURL('thesecuritymanager.xml');return true;">The Security Manager</a></li>
</ol>
</li>
<li class="menu">18 <a href="httptunneling.xml" onclick="javascript:this.href=getURL('httptunneling.xml');return true;">HTTP Tunneling</a></li>
</ol>

<a href="allslides.xml">Entire Presentation with Notes</a> (<a href="allslides.pdf">PDF</a>)<br/><a href="frameindex.xml">Index on left</a>
<hr class="bottom" />
<p class="author">Copyright &copy; 2004 <a href="../../index.html">Jos&eacute; M. Vidal</a>
<a href=" http://validator.w3.org/check?uri=http://jmvidal.cse.sc.edu/talks/rmidesign/index.xml">.</a>
 All rights reserved.</p>
<p class="pagenumber">17 March 2004, 09:43AM</p>
</div>
</body>
</html>