<html>
<head>
<title>
Jan Newmarch's Guide to Jini Technologies
</title>
</head>
<body>

<a>
<h1 align="center">Jan Newmarch's Guide to Jini Technologies</h1></a>

<h2 align="center">Jan Newmarch</h2>

<h3 align="center">Version  4.03 </h3>

<h3 align="center"> 23 March 2006 </h3>

<!--
<center>
<a  href = "http://jan.netcomp.monash.edu.au/java/jini/tutorial/Jini.html">
http://jan.netcomp.monash.edu.au/java/jini/tutorial/Jini.xml
</a>
</center>
-->


<a>
<h2> 1. Contents</h2>
</a>


<p>
This version uses Jini 2.1.
 For a version using Jini 2.0, see
<a  href = "http://jan.netcomp.monash.edu.au/java/jini/tutorial.3.06/Jini.html">
http://jan.netcomp.monash.edu.au/java/jini/tutorial.2.08/Jini.html
</a>
 For a version using Jini 1.1 or 1.2, see
<a  href = "http://jan.netcomp.monash.edu.au/java/jini/tutorial.2.08/Jini.html">
http://jan.netcomp.monash.edu.au/java/jini/tutorial.2.08/Jini.html
</a>
 For a version using Jini 1.0, see
<a  href = "http://jan.netcomp.monash.edu.au/java/jini/tutorial.1.03/Jini.html">
http://jan.netcomp.monash.edu.au/java/jini/tutorial.1.03/Jini.html
</a>.
</p>


<p>
This book is being revised to use Jini 2.1. So far many chapters have
been revised and checked (against Jini 2.1)
and there are several new chapters (Jeri,Config, Logging, ServiceStarter, Advanced Security).
In time, the remaining chapters
will be converted. The new Jeri stuff is covered and the new security.
</p>


<p>
As an aid to the reader, there are additional tags
<br></br>
<new>
New material is in a different colour
</new>
<br></br>
<changed change = "change reason">
and changed material is also in a different colour
</changed>
<br></br>
Chapter versions labelled "4.00" contain changes usually related to Jini 2.1.
</p>



<a>
<h3> 1.1 
Chapters
</h3>
</a>

<p>
This material has been adapted/checked against Jini 2.1:
<ol>

<li>
  <a  href = "Overview.html"> Overview </a>
  (Last modified: version 4.01)
  <ol>

    <li> <a  href = "Overview.html#Jini"> Jini </a> </li>

    <li> <a  href = "Overview.html#Eight Fallacies of Distributed Computing"> Eight Fallacies of Distributed Computing </a> </li>

    <li> <a  href = "Overview.html#Success Stories"> Success Stories </a> </li>

    <li> <a  href = "Overview.html#Jini in One Hour"> Jini in One Hour </a> </li>

    <li> <a  href = "Overview.html#Components"> Components </a> </li>

    <li> <a  href = "Overview.html#Service Registration"> Service Registration </a> </li>

    <li> <a  href = "Overview.html#Client Lookup"> Client Lookup </a> </li>

    <li> <a  href = "Overview.html#Proxies"> Proxies </a> </li>

    <li> <a  href = "Overview.html#Client Structure"> Client Structure </a> </li>

    <li> <a  href = "Overview.html#Server Structure"> Server Structure </a> </li>

    <li> <a  href = "Overview.html#Partitioning an Application"> Partitioning an Application </a> </li>

    <li> <a  href = "Overview.html#Support Services"> Support Services </a> </li>

    <li> <a  href = "Overview.html#The End of Protocols"> The End of Protocols </a> </li>

    <li> <a  href = "Overview.html#Summary"> Summary </a> </li>

  </ol>

</li>

<li>
  <changed>
  <a  href = "TroubleShooting.html"> TroubleShooting Jini </a>
   (Last modified: version 4.01)
  </changed>
  <ol>

    <li> <a  href = "TroubleShooting.html#The Chapter that Shouldn't Exist"> The Chapter that Shouldn't Exist </a> </li>

    <li> <a  href = "TroubleShooting.html#Java Packages"> Java Packages </a> </li>

    <li> <a  href = "TroubleShooting.html#Jini and Java Versions"> Jini and Java Versions </a> </li>

    <li> <a  href = "TroubleShooting.html#Jini Packages"> Jini Packages </a> </li>

    <li> <a  href = "TroubleShooting.html#HTTP Server"> HTTP Server </a> </li>

    <li> <a  href = "TroubleShooting.html#Network Configuration"> Network Configuration </a> </li>

    <li> <a  href = "TroubleShooting.html#Could not obtain preferred value for..."> Could not obtain preferred value for... </a> </li>

    <li> <a  href = "TroubleShooting.html#Lookup Service"> Lookup Service </a> </li>

    <li> <a  href = "TroubleShooting.html#RMI Stubs"> RMI Stubs </a> </li>

    <li> <a  href = "TroubleShooting.html#Garbage Collection"> Garbage Collection </a> </li>

    <li> <a  href = "TroubleShooting.html#Debugging"> Debugging </a> </li>

    <li> <a  href = "TroubleShooting.html#Logging"> Logging </a> </li>

  </ol>

</li>

<li>
  <a  href = "Ant.html"> Ant </a>
  (Last modified: version 4.01)
  <ol>

    <li> <a  href = "Ant.html#Introduction"> Introduction </a> </li>

    <li> <a  href = "Ant.html#Toplevel build file"> Toplevel build file </a> </li>

    <li> <a  href = "Ant.html#Project files"> Project files </a> </li>

  </ol>

</li>

<li>
  <a  href = "LookupDiscovery.html"> Discovering a Lookup Service </a>
  (Last modified: version 4.01) 
  <ol>

    <li> <a  href = "LookupDiscovery.html#Lookup Service"> Lookup Service </a> </li>

    <li> <a  href = "LookupDiscovery.html#Unicast discovery"> Unicast discovery </a> </li>

    <li> <a  href = "LookupDiscovery.html#Broadcast discovery"> Broadcast discovery </a> </li>

    <li> <a  href = "LookupDiscovery.html#ServiceRegistrar"> ServiceRegistrar </a> </li>

    <li> <a  href = "LookupDiscovery.html#Summary"> Summary </a> </li>

  </ol>

</li>

<li>
  <a  href = "Entry.html"> Entry Objects </a>
  (Last modified: version 2.02)
  <ol>

    <li> <a  href = "Entry.html#Entry class"> Entry class </a> </li>

    <li> <a  href = "Entry.html#Restrictions on entries"> Restrictions on entries </a> </li>

    <li> <a  href = "Entry.html#Convenience Classes"> Convenience Classes </a> </li>

    <li> <a  href = "Entry.html#Further Uses of Entries"> Further Uses of Entries </a> </li>

    <li> <a  href = "Entry.html#Summary"> Summary </a> </li>

  </ol>

</li>

<li>
  <a  href = "ServiceRegistration.html"> Service Registration  </a>
  (Last modified: version 4.01)
  <ol>

    <li> <a  href = "ServiceRegistration.html#ServiceRegistrar"> ServiceRegistrar </a> </li>

    <li> <a  href = "ServiceRegistration.html#ServiceItem"> ServiceItem </a> </li>

    <li> <a  href = "ServiceRegistration.html#Registration"> Registration </a> </li>

    <li> <a  href = "ServiceRegistration.html#ServiceRegistration"> ServiceRegistration </a> </li>

    <li> <a  href = "ServiceRegistration.html#Entries"> Entries </a> </li>

    <li> <a  href = "ServiceRegistration.html#Summary"> Summary </a> </li>

  </ol>

</li>

<li>
  <a  href = "ClientSearch.html"> Client Search </a>
  (Last modified: version 4.01)
  <ol>

    <li> <a  href = "ClientSearch.html#ServiceRegistrar"> ServiceRegistrar </a> </li>

    <li> <a  href = "ClientSearch.html#ServiceMatches"> ServiceMatches </a> </li>

    <li> <a  href = "ClientSearch.html#Matching"> Matching </a> </li>

    <li> <a  href = "ClientSearch.html#Summary"> Summary </a> </li>

  </ol>

</li>

<li>
  <changed>
  <a  href = "Lease.html"> Leasing </a>
  (Last modified: version 4.01)
  </changed>
  <ol>

    <li> <a  href = "Lease.html#Leases"> Leases </a> </li>

    <li> <a  href = "Lease.html#Granting and handling leases"> Granting and handling leases </a> </li>

    <li> <a  href = "Lease.html#Summary"> Summary </a> </li>

  </ol>

</li>

<li>
  <a  href = "SimpleExample.html"> Simple Example </a>
  (Last modified: version 4.01)
  <ol>

    <li> <a  href = "SimpleExample.html#Problem Description"> Problem Description </a> </li>

    <li> <a  href = "SimpleExample.html#Service Specification"> Service Specification </a> </li>

    <li> <a  href = "SimpleExample.html#Common Classes"> Common Classes </a> </li>

    <li> <a  href = "SimpleExample.html#Client"> Client </a> </li>

    <li> <a  href = "SimpleExample.html#Service Proxy"> Service Proxy </a> </li>

    <li> <a  href = "SimpleExample.html#Uploading a Complete Service"> Uploading a Complete Service </a> </li>

    <li> <a  href = "SimpleExample.html#Summary"> Summary </a> </li>

  </ol>

</li>

<li>
  <changed>
  <a  href = "Jeri.html"> Jini Extensible Remote Invocation </a>
  (Last modified: version 3.04)
  </changed>
  <ol>

    <li> <a  href = "Jeri.html#Jeri"> Jeri </a> </li>

    <li> <a  href = "Jeri.html#Traditional RMI"> Traditional RMI </a> </li>

    <li> <a  href = "Jeri.html#Exporter"> Exporter </a> </li>

    <li> <a  href = "Jeri.html#Jeri"> Jeri </a> </li>

    <li> <a  href = "Jeri.html#Exported interfaces"> Exported interfaces </a> </li>

    <li> <a  href = "Jeri.html#Configuration"> Configuration </a> </li>

    <li> <a  href = "Jeri.html#JRMP Proxies"> JRMP Proxies </a> </li>

    <li> <a  href = "Jeri.html#Basic Jeri Exporter"> Basic Jeri Exporter </a> </li>

    <li> <a  href = "Jeri.html#Garbage Collection"> Garbage Collection </a> </li>

    <li> <a  href = "Jeri.html#Proxy Accessor"> Proxy Accessor </a> </li>

    <li> <a  href = "Jeri.html#More Information"> More Information </a> </li>

  </ol>

</li>

<li>
  <a  href = "Choices.html"> Choices for Service Architecture </a>
  (Last modified: version 3.03)
  <ol>

    <li> <a  href = "Choices.html#Proxy Choices"> Proxy Choices </a> </li>

    <li> <a  href = "Choices.html#RMI Proxy for FileClassifier"> RMI Proxy for FileClassifier </a> </li>

    <li> <a  href = "Choices.html#Non-RMI Proxy for FileClassifier"> Non-RMI Proxy for FileClassifier </a> </li>

    <li> <a  href = "Choices.html#RMI and non-RMI Proxies for FileClassifier"> RMI and non-RMI Proxies for FileClassifier </a> </li>

    <li> <a  href = "Choices.html#Using the Naming service"> Using the Naming service </a> </li>

    <li> <a  href = "Choices.html#Using Other Services"> Using Other Services </a> </li>

  </ol>

</li>


<li>
  <a  href = "DiscoveryMgt.html"> Discovery Management </a>
  (Last modified: version 3.00)
  <ol>

    <li> <a  href = "DiscoveryMgt.html#Management Interfaces"> Management Interfaces </a> </li>

    <li> <a  href = "DiscoveryMgt.html#LookupLocatorDiscovery"> LookupLocatorDiscovery </a> </li>

    <li> <a  href = "DiscoveryMgt.html#LookupDiscoveryManager"> LookupDiscoveryManager </a> </li>

    <li> <a  href = "DiscoveryMgt.html#Conclusion"> Conclusion </a> </li>

  </ol>

</li>

<li>
  <a  href = "JoinManager.html"> Join Manager </a>
  (Last modified: version 3.03)
  <ol>

    <li> <a  href = "JoinManager.html#Join Manager"> Join Manager </a> </li>

    <li> <a  href = "JoinManager.html#Summary"> Summary </a> </li>

  </ol>

</li>

<li>
  <a  href = "Security.html"> Basic Security </a>
  (Last modified: version 2.06)
  <ol>

    <li> <a  href = "Security.html#Quick Fix"> Quick Fix </a> </li>

    <li> <a  href = "Security.html#Why AllPermission is Bad"> Why AllPermission is Bad </a> </li>

    <li> <a  href = "Security.html#Removing AllPermission"> Removing AllPermission </a> </li>

    <li> <a  href = "Security.html#Jini with Protection"> Jini with Protection </a> </li>

    <li> <a  href = "Security.html#Service Requirements"> Service Requirements </a> </li>

    <li> <a  href = "Security.html#Client Requirements"> Client Requirements </a> </li>

    <li> <a  href = "Security.html#RMI Parameters"> RMI Parameters </a> </li>

    <li> <a  href = "Security.html#ServiceRegistrar"> ServiceRegistrar </a> </li>

    <li> <a  href = "Security.html#Transaction Manager and other Activatable Services"> Transaction Manager and other Activatable Services </a> </li>

    <li> <a  href = "Security.html#Phoenix"> Phoenix </a> </li>

    <li> <a  href = "Security.html#rmid1.3"> rmid1.3 </a> </li>

    <li> <a  href = "Security.html#Being Paranoic"> Being Paranoic </a> </li>

  </ol>

</li>

<li>
  <a  href = "MoreComplex.html"> More Complex Examples </a>
  (Last modified: version 4.01)
  <ol>

    <li> <a  href = "MoreComplex.html#Where is the Code"> Where is the Code </a> </li>

    <li> <a  href = "MoreComplex.html#Running threads from discovery"> Running threads from discovery </a> </li>

    <li> <a  href = "MoreComplex.html#Inexact Service Matching"> Inexact Service Matching </a> </li>

    <li> <a  href = "MoreComplex.html#Matching using Local Services"> Matching using Local Services </a> </li>

    <li> <a  href = "MoreComplex.html#Finding a Service Once Only"> Finding a Service Once Only </a> </li>

    <li> <a  href = "MoreComplex.html#Leased Changes to a Service"> Leased Changes to a Service </a> </li>

  </ol>

</li>

<li>
  <a  href = "Event.html"> Remote Events </a>
  (Last modified: version 4.01)
  <ol>

    <li> <a  href = "Event.html#Event Models"> Event Models </a> </li>

    <li> <a  href = "Event.html#Remote Events"> Remote Events </a> </li>

    <li> <a  href = "Event.html#Event Registration"> Event Registration </a> </li>

    <li> <a  href = "Event.html#Listener List"> Listener List </a> </li>

    <li> <a  href = "Event.html#Listener Source"> Listener Source </a> </li>

    <li> <a  href = "Event.html#File Classifier with Events"> File Classifier with Events </a> </li>

    <li> <a  href = "Event.html#Leasing Event Listeners"> Leasing Event Listeners </a> </li>

    <li> <a  href = "Event.html#Monitoring  Changes in Services"> Monitoring  Changes in Services </a> </li>

    <li> <a  href = "Event.html#Summary"> Summary </a> </li>

  </ol>

</li>

<li>
  <a  href = "ServiceDiscoveryManager.html"> ServiceDiscoveryManager </a>
  (Last modified: version 4.02)
  <ol>

    <li> <a  href = "ServiceDiscoveryManager.html#Introduction"> Introduction </a> </li>

    <li> <a  href = "ServiceDiscoveryManager.html#ServiceItemFilter"> ServiceItemFilter </a> </li>

    <li> <a  href = "ServiceDiscoveryManager.html#Finding a Service Immediately"> Finding a Service Immediately </a> </li>

    <li> <a  href = "ServiceDiscoveryManager.html#Using a Filter"> Using a Filter </a> </li>

    <li> <a  href = "ServiceDiscoveryManager.html#Building a Cache of Services"> Building a Cache of Services </a> </li>

    <li> <a  href = "ServiceDiscoveryManager.html#Monitoring Changes to the Cache"> Monitoring Changes to the Cache </a> </li>

    <li> <a  href = "ServiceDiscoveryManager.html#Summary"> Summary </a> </li>

  </ol>

</li>

<li>
  <new>
  <a  href = "FlashingClocks.html"> Example: Flashing Clocks </a>
  (Last modified: version 3.06)
  </new>
  <ol>

    <li> <a  href = "FlashingClocks.html#Introduction"> Introduction </a> </li>

    <li> <a  href = "FlashingClocks.html#Timer"> Timer </a> </li>

    <li> <a  href = "FlashingClocks.html#TickerTimer"> TickerTimer </a> </li>

    <li> <a  href = "FlashingClocks.html#ComputerTimer"> ComputerTimer </a> </li>

    <li> <a  href = "FlashingClocks.html#ClockFrame"> ClockFrame </a> </li>

    <li> <a  href = "FlashingClocks.html#TickerTimer Driver"> TickerTimer Driver </a> </li>

    <li> <a  href = "FlashingClocks.html#ComputerTimer Driver"> ComputerTimer Driver </a> </li>

    <li> <a  href = "FlashingClocks.html#ClockDevice"> ClockDevice </a> </li>

    <li> <a  href = "FlashingClocks.html#Runtime Behaviour"> Runtime Behaviour </a> </li>

  </ol>

</li>

<li>
  <a  href = "Config.html"> Configuration </a>
  (Last modified: version 3.02)
  <ol>

    <li> <a  href = "Config.html#Localhost"> Localhost </a> </li>

    <li> <a  href = "Config.html#Configuration"> Configuration </a> </li>

    <li> <a  href = "Config.html#Configuration File"> Configuration File </a> </li>

    <li> <a  href = "Config.html#Configuration File"> Configuration File </a> </li>

    <li> <a  href = "Config.html#Specifying the configuration"> Specifying the configuration </a> </li>

    <li> <a  href = "Config.html#Service Id"> Service Id </a> </li>

    <li> <a  href = "Config.html#Specifying codebase"> Specifying codebase </a> </li>

    <li> <a  href = "Config.html#Localhost"> Localhost </a> </li>

    <li> <a  href = "Config.html#A generic server"> A generic server </a> </li>

  </ol>

</li>

<li>
  <a  href = "Logger.html"> Logging </a>
  (Last modified: version 3.01)
  <ol>

    <li> <a  href = "Logger.html#Logging"> Logging </a> </li>

    <li> <a  href = "Logger.html#Logging LookupDiscovery"> Logging LookupDiscovery </a> </li>

  </ol>

</li>

<li>
  <a  href = "ServiceStarter.html"> ServiceStarter </a>
  (Last modified: version 4.02)
  <ol>

    <li> <a  href = "ServiceStarter.html#ServiceDescriptor"> ServiceDescriptor </a> </li>

    <li> <a  href = "ServiceStarter.html#Starting a nonactivatable service"> Starting a nonactivatable service </a> </li>

    <li> <a  href = "ServiceStarter.html#Starting a nonactivatable server"> Starting a nonactivatable server </a> </li>

    <li> <a  href = "ServiceStarter.html#Reggie"> Reggie </a> </li>

    <li> <a  href = "ServiceStarter.html#Conclusion"> Conclusion </a> </li>

  </ol>

</li>

<li>
  <new>
  <a  href = "AdvancedSecurity.html"> Advanced Security </a>
  (Last modified: version 3.05)
  </new>
  <ol>

    <li> <a  href = "AdvancedSecurity.html#Introduction"> Introduction </a> </li>

    <li> <a  href = "AdvancedSecurity.html#Invocation constraints"> Invocation constraints </a> </li>

    <li> <a  href = "AdvancedSecurity.html#Method constraints"> Method constraints </a> </li>

    <li> <a  href = "AdvancedSecurity.html#Logging"> Logging </a> </li>

    <li> <a  href = "AdvancedSecurity.html#Protocols"> Protocols </a> </li>

    <li> <a  href = "AdvancedSecurity.html#Proxy preparer"> Proxy preparer </a> </li>

    <li> <a  href = "AdvancedSecurity.html#File classifier server"> File classifier server </a> </li>

    <li> <a  href = "AdvancedSecurity.html#Integrity"> Integrity </a> </li>

    <li> <a  href = "AdvancedSecurity.html#Proxy verification"> Proxy verification </a> </li>

    <li> <a  href = "AdvancedSecurity.html#Confidentiality"> Confidentiality </a> </li>

    <li> <a  href = "AdvancedSecurity.html#Mix 'n Match"> Mix 'n Match </a> </li>

    <li> <a  href = "AdvancedSecurity.html#Identity Management"> Identity Management </a> </li>

  </ol>

</li>

<li>
  <a  href = "Transaction.html"> Transactions </a>
  (Last modified: version 4.02)
  <ol>

    <li> <a  href = "Transaction.html#Introduction"> Introduction </a> </li>

    <li> <a  href = "Transaction.html#Transactions"> Transactions </a> </li>

    <li> <a  href = "Transaction.html#TransactionManager"> TransactionManager </a> </li>

    <li> <a  href = "Transaction.html#TransactionParticipant"> TransactionParticipant </a> </li>

    <li> <a  href = "Transaction.html#Mahalo"> Mahalo </a> </li>

    <li> <a  href = "Transaction.html#Example"> Example </a> </li>

    <li> <a  href = "Transaction.html#Summary"> Summary </a> </li>

  </ol>

</li>

<li>
  <a  href = "UI.html"> User Interfaces for Jini Services </a>
  (Last modified: version 4.02)
  <ol>

    <li> <a  href = "UI.html#User Interfaces as Entries"> User Interfaces as Entries </a> </li>

    <li> <a  href = "UI.html#User Interfaces from Factory Objects"> User Interfaces from Factory Objects </a> </li>

    <li> <a  href = "UI.html#Current Factories"> Current Factories </a> </li>

    <li> <a  href = "UI.html#Marshalling Factories"> Marshalling Factories </a> </li>

    <li> <a  href = "UI.html#UIDEscriptor"> UIDEscriptor </a> </li>

    <li> <a  href = "UI.html#File Classifier Example"> File Classifier Example </a> </li>

    <li> <a  href = "UI.html#Support Classes"> Support Classes </a> </li>

    <li> <a  href = "UI.html#Images"> Images </a> </li>

    <li> <a  href = "UI.html#ServiceType"> ServiceType </a> </li>

    <li> <a  href = "UI.html#MindStorms"> MindStorms </a> </li>

    <li> <a  href = "UI.html#Summary"> Summary </a> </li>

  </ol>

</li>

<li>
  <changed>
  <a  href = "Activation.html"> Activation </a>
  (Last modified: version 3.04)
  </changed>
  <ol>

    <li> <a  href = "Activation.html#Introduction"> Introduction </a> </li>

    <li> <a  href = "Activation.html#Phoenix"> Phoenix </a> </li>

    <li> <a  href = "Activation.html#A Service using Activation"> A Service using Activation </a> </li>

    <li> <a  href = "Activation.html#LeaseRenewalService"> LeaseRenewalService </a> </li>

    <li> <a  href = "Activation.html#LookupDiscoveryService"> LookupDiscoveryService </a> </li>

    <li> <a  href = "Activation.html#Summary"> Summary </a> </li>

  </ol>

</li>

<li>
  <new>
  <a  href = "Introspection.html"> Introspection </a>
  (Last modified: version 3.05)
  </new>
  <ol>

    <li> <a  href = "Introspection.html#Basic Service Lister"> Basic Service Lister </a> </li>

    <li> <a  href = "Introspection.html#Unknown services"> Unknown services </a> </li>

    <li> <a  href = "Introspection.html#Introspection"> Introspection </a> </li>

    <li> <a  href = "Introspection.html#Unknown classes"> Unknown classes </a> </li>

  </ol>

</li>

<li>
  <new>
  <a  href = "Audio.html"> Extended Example: Home Audio </a>
  (Last modified: version 3.06)
  </new>
  <ol>

    <li> <a  href = "Audio.html#Introduction"> Introduction </a> </li>

    <li> <a  href = "Audio.html#Distributed audio"> Distributed audio </a> </li>

    <li> <a  href = "Audio.html#Parameters for A/V"> Parameters for A/V </a> </li>

    <li> <a  href = "Audio.html#Source/sink interfaces"> Source/sink interfaces </a> </li>

    <li> <a  href = "Audio.html#Content interfaces"> Content interfaces </a> </li>

    <li> <a  href = "Audio.html#Transport interfaces"> Transport interfaces </a> </li>

    <li> <a  href = "Audio.html#Linkages"> Linkages </a> </li>

    <li> <a  href = "Audio.html#An HTTP source"> An HTTP source </a> </li>

    <li> <a  href = "Audio.html#An HTTP OggVorbis source"> An HTTP OggVorbis source </a> </li>

    <li> <a  href = "Audio.html#An HTTP sink"> An HTTP sink </a> </li>

    <li> <a  href = "Audio.html#Content sinks"> Content sinks </a> </li>

    <li> <a  href = "Audio.html#Sink implementation"> Sink implementation </a> </li>

    <li> <a  href = "Audio.html#Servers"> Servers </a> </li>

    <li> <a  href = "Audio.html#Clients"> Clients </a> </li>

    <li> <a  href = "Audio.html#A file sink"> A file sink </a> </li>

    <li> <a  href = "Audio.html#A file sink with GUI"> A file sink with GUI </a> </li>

    <li> <a  href = "Audio.html#Conclusion"> Conclusion </a> </li>

  </ol>

</li>

<li>
  <new>
  <a  href = "WebServices.html"> Web Services and Jini </a>
  (Last modified: version 4.03)
  </new>
  <ol>

    <li> <a  href = "WebServices.html#Introduction"> Introduction </a> </li>

    <li> <a  href = "WebServices.html#Simple Web Service"> Simple Web Service </a> </li>

    <li> <a  href = "WebServices.html#Bridging between Jini Client and Web Service (1)"> Bridging between Jini Client and Web Service (1) </a> </li>

    <li> <a  href = "WebServices.html#Bridging between Jini Client and Web Service (2)"> Bridging between Jini Client and Web Service (2) </a> </li>

    <li> <a  href = "WebServices.html#Web Service Client to Jini Service"> Web Service Client to Jini Service </a> </li>

    <li> <a  href = "WebServices.html#Summary"> Summary </a> </li>

  </ol>

</li>


</ol>

</p>


<p>
This material still uses Jini 1.2
<ol>



<li>
  <a  href = "MindStorms.html"> Lego MindStorms </a>
  (Last modified: version 2.02)
  <ol>

    <li> <a  href = "MindStorms.html#Making Hardware into Jini Services"> Making Hardware into Jini Services </a> </li>

    <li> <a  href = "MindStorms.html#MindStorms"> MindStorms </a> </li>

    <li> <a  href = "MindStorms.html#MindStorms as a Jini Service"> MindStorms as a Jini Service </a> </li>

    <li> <a  href = "MindStorms.html#RCXPort"> RCXPort </a> </li>

    <li> <a  href = "MindStorms.html#RCX Programs"> RCX Programs </a> </li>

    <li> <a  href = "MindStorms.html#Jini classes"> Jini classes </a> </li>

    <li> <a  href = "MindStorms.html#Getting it running"> Getting it running </a> </li>

    <li> <a  href = "MindStorms.html#Entry objects for a robot"> Entry objects for a robot </a> </li>

    <li> <a  href = "MindStorms.html#A client-side RCX class"> A client-side RCX class </a> </li>

    <li> <a  href = "MindStorms.html#Higher level mechanisms: Not Quite C"> Higher level mechanisms: Not Quite C </a> </li>

    <li> <a  href = "MindStorms.html#Summary"> Summary </a> </li>

  </ol>

</li>

<li>
  <a  href = "Corba.html"> CORBA and Jini </a>
  (Last modified: version 0.12)
  <ol>

    <li> <a  href = "Corba.html#CORBA"> CORBA </a> </li>

    <li> <a  href = "Corba.html#CORBA to Java Mapping"> CORBA to Java Mapping </a> </li>

    <li> <a  href = "Corba.html#Jini Proxies"> Jini Proxies </a> </li>

    <li> <a  href = "Corba.html#Simple Example"> Simple Example </a> </li>

    <li> <a  href = "Corba.html#Room Booking Example"> Room Booking Example </a> </li>

    <li> <a  href = "Corba.html#Migrating a CORBA Client to Jini"> Migrating a CORBA Client to Jini </a> </li>

    <li> <a  href = "Corba.html#Jini Service as a CORBA Object"> Jini Service as a CORBA Object </a> </li>

    <li> <a  href = "Corba.html#Summary"> Summary </a> </li>

  </ol>

</li>


<li>
  <a  href = "Servlet.html"> Servlets </a>
  (Last modified: version 2.08)
  <ol>

    <li> <a  href = "Servlet.html#Dynamic Web pages"> Dynamic Web pages </a> </li>

    <li> <a  href = "Servlet.html#Servlets"> Servlets </a> </li>

    <li> <a  href = "Servlet.html#Jakarta Tomcat Configuration"> Jakarta Tomcat Configuration </a> </li>

    <li> <a  href = "Servlet.html#Servlet as Jini client"> Servlet as Jini client </a> </li>

    <li> <a  href = "Servlet.html#Lookup Service Monitor"> Lookup Service Monitor </a> </li>

    <li> <a  href = "Servlet.html#FileClassifierServlet"> FileClassifierServlet </a> </li>

    <li> <a  href = "Servlet.html#Deploying the Servlet"> Deploying the Servlet </a> </li>

  </ol>

</li>

<li>
  <a  href = "JNLP.html"> Java Network Launching Protocol </a>
  (Last modified: version 2.08)
  <ol>

    <li> <a  href = "JNLP.html#JNLP"> JNLP </a> </li>

    <li> <a  href = "JNLP.html#JNLP file"> JNLP file </a> </li>

    <li> <a  href = "JNLP.html#Jini and JNLP Comparison"> Jini and JNLP Comparison </a> </li>

    <li> <a  href = "JNLP.html#Combining Jini and JNLP"> Combining Jini and JNLP </a> </li>

    <li> <a  href = "JNLP.html#Configuring the Browser"> Configuring the Browser </a> </li>

    <li> <a  href = "JNLP.html#Non-core Files"> Non-core Files </a> </li>

    <li> <a  href = "JNLP.html#Security"> Security </a> </li>

    <li> <a  href = "JNLP.html#Setting Lookup Service Locations"> Setting Lookup Service Locations </a> </li>

    <li> <a  href = "JNLP.html#Example"> Example </a> </li>

  </ol>

</li>

<li>
  <a  href = "Architecture.html"> Architecture </a>
  (Last modified: version 2.02)
  <ol>

    <li> <a  href = "Architecture.html#Threads"> Threads </a> </li>

  </ol>

</li>

</ol>


</p>




<a>
<h3> 1.2 
Appendices
</h3>
</a>

<p>
<ol>

<li>
  <a  href = "Properties.html"> Properties used in Jini </a>
</li>

</ol>

</p>




<a>
<h2> 2. 
Files
</h2>
</a>

<p>
The source to the programs is available as a zip file
<a  href = "programs.zip"> programs.zip</a>.
The compiled classes are available as a zip file
<a  href = "classes.zip"> classes.zip</a>.
</p>

<!--
<p>
The documentation files are also available as a zip file
<a  href = "docs.zip"> docs.zip</a>.
This includes HTML versions of the files.
I am using XML as document
format, using a mishmash of the DocBook DTD with extra tags
and HTML thrown in. A Perl program, <code>xml_handler.pl</code>, 
is a handler
called by my Apache Web server to deliver XML files as HTML.
</p>


<p>
Postscript versions of the documentation files are in 
<a  href = "postscript.zip">postscript.zip</a>.
These are generated using html2ps, and I know this produces Postscript
that does not print on all printers - in particular, our Kyocera printers.
If you have problems printing these, let me know the solution only.
Please note that the copyright license allows you to make single printed copies for
your own use, but not multiple printed copies.
</p>
-->



<a>
<h2> 3. 
Update Information
</h2>
</a>
This tutorial will be updated on a regular basis, maybe several times
a week. If you want to receive an email announcement of each version
release, send email to <a  href = "mailto:jan.newmarch@infotech.monash.edu.au">
jan.newmarch@infotech.monash.edu.au</a> with subject ``Jini tutorial update''



<a>
<h2> 4. 
Feedback
</h2>
</a>
<p>
I would appreciate any feedback on this tutorial, to ensure that
it is correct and meets the needs of readers. The feedback that
I have already received has been very valuable. Please send
comments/corrections/requests, etc, to
<a  href = "mailto:jan.newmarch@infotech.monash.edu.au">
jan.newmarch@infotech.monash.edu.au
</a>
</p>




<a>
<h2> 5. Other Resources</h2>
</a>

<ol>

<li>
  The Jini FAQ at 
  <a  href = "http://www.artima.com/jini/faq.html">
      http://www.artima.com/jini/faq.html
  </a>
</li>

<li>
  Jini Community Web Site
  <a  href = "http://www.jini.org/">
      http://www.jini.org/
  </a>
</li>

<li>
  Noel Enete's ``Nuggets'' tutorial at
  <a  href = "http://www.enete.com/download/#_nuggets_">
     www.enete.com/download/#_nuggets_
  </a>
</li>

<li>
  Eran Davidov's <code>timeservice</code> example at
  <a  href = "http://www.artima.com/jini/resources/timeservice.html">
     www.artima.com/jini/resources/timeservice.html
  </a>
</li>

<li>
  Roger Whitney's lecture notes on ``Java Distributed Computing'' at
  <a  href = "http://www.eli.sdsu.edu/courses/spring99/cs696/notes/">
    http://www.eli.sdsu.edu/courses/spring99/cs696/notes/
  </a>
</li>

<li>
  Benot Marchal's articles for Digital Cat's Java Resource Center at
  <a  src = "www.javacats.com/US/articles/Ben/Jini1.html">
    www.javacats.com/US/articles/Ben/Jini1.html
  </a>
  (and Jini2.html, Jini3.html, etc)
</li>

<li>
  Jini Home page
  <a  href = "http://www.sun.com/jini/index.html">
    http://www.sun.com/jini/index.html
  </a>
</li>

<li>
  RMI Home page
  <a  href = "http://java.sun.com/products/jdk/rmi/index.html">
    http://java.sun.com/products/jdk/rmi/index.html
  </a>
</li>

<li>
  Jini mailing list
  <a  href = "mailto:jini-users@java.sun.com">
    jini-users@java.sun.com
  </a>
</li>

<li>
  Jini mailing list archives
  <a  href = "http://archives.java.sun.com/archives/jini-users.html">
    http://archives.java.sun.com/archives/jini-users.html
  </a>
</li>

<li>
  RMI mailing list
  <a  href = "mailto:rmi-users@java.sun.com">
    rmi-users@java.sun.com
  </a>
</li>

<li>
  RMI mailing list archives
  <a  href = "http://archives.java.sun.com/archives/rmi-users.html">
    http://archives.java.sun.com/archives/rmi-users.html
  </a>
</li>

<li>
  Jini Interface Repository for standardised service interfaces (empty
  at present)
  <a  href = "http://www.artima.com/jini/interrepo/">
    http://www.artima.com/jini/interrepo/
  </a>
</li>

</ol>




<a>
<h2> 6. 
Changes
</h2>
</a>

See the file <a  href = "Changes.html"> Changes </a> for the list of
version releases and changes made between versions.




<a>
<h2> 7. 
Copyright Information
</h2>
</a>


<p>
This tutorial (and the pages it contains) are covered by the OpenContent
license. This basically gives you freedom to do what you want with the
document in a similar way to the GNU license for software. Any changes or
additions that you make to this set of pages as a Web document 
must be made publically available, and may be folded
into later versions of this tutorial. Any such inclusions will of course
be credited with <em>your</em> copyright, under the
OpenContent license.
</p>


<p>
On the other hand, the <em>programs</em> that this tutorial
references are also available unbundled from the tutorial, and do not
have the restriction that source derived from them must be made publically
available. So you can derive your own source code from them, without having
to make it public. I'm not sure what suitable license will do this...
</p>


<p>
And, of course, there is no warranty...
</p>



<a>
<h2> 8. Acknowledgements</h2>
</a>

<p>
The author is grateful for comments on this tutorial from
<ol>

<li>
  Brian Jeltema, <a  href = "mailto:jeltema@richdist.east.sun.com">
  jeltema@richdist.east.sun.com</a>
</li>

<li>
  Roger Whitney, <a  href = "mailto:whitney@cs.sdsu.edu">
  whitney@cs.sdsu.edu</a>
</li>

<li>
  Robbert van den Beld, <a  href = "mailto:rbe@mms-dresden.de">
  rbe@mms-dresden.de</a>
</li>

<li>
  Chitrarasu Muthaiyan,
  <a  href = "mailto:chitrarasu@cswl.com">
  chitrarasu@cswl.com</a>
</li>

<li>
  Stuart Remphrey,  <a  href = "mailto:Stuart.Remphrey@Aus.Sun.COM">
  Stuart.Remphrey@Aus.Sun.COM</a>
</li>

<li>
  JJ Larrea,  <a  href = "mailto:jlarrea@redtop.com">
  jlarrea@redtop.com</a>
</li>

<li>
  John McClain,  <a  href = "mailto:John.McClain@East.Sun.COM">
  John.McClain@East.Sun.COM</a>
</li>

<li>
  Bob Scheifler, <a  href = "mailto:rws@east.sun.com">
  rws@east.sun.com</a>
</li>

<li>
  Michel, <a  href = "mailto:michel@mailblocks.com">
  michel@mailblocks.com</a>
</li>

</ol>

</p>


<p>
The work reported in this tutorial has been funded in part by the
Co-operative Research Centre Program through the
Department of Industry, Science and Tourism of
the Commonwealth Government of Australia.
</p>





<a>
<h2> 9.  Copyright </h2>
</a>

<p>
If you found this chapter of value, the full book 
"Foundations of Jini 2 Programming"
is available from
<a  href = "http://www.apress.com/book/bookDisplay.html?bID=10171"> APress </a> or
<a  href = "http://www.amazon.com/Foundations-Jini-Programming-Jan-Newmarch/dp/1590597168/sr=8-1/qid=1163213494/ref=pd_bbs_sr_1/103-3228259-3053455"> Amazon </a>.
</p>


<p>
<trademark class = "copyright">
This file is Copyright (&copy;) 1999, 2000, 2001, 2003, 2004, 2005 
by Jan Newmarch

<a  href = "http://jan.netcomp.monash.edu.au/">(http://jan.netcomp.monash.edu.au)</a>
<a  href = "mailto:jan.newmarch@infotech.monash.edu.au">jan.newmarch@infotech.monash.edu.au</a>.

<br></br>
<a  href = "http://creativecommons.org/licenses/by-nc-sa/2.0/"><img alt = "Creative Commons License" src = "http://creativecommons.org/images/public/somerights20.gif" border = "0"></img></a>
This work is licensed under a 
<a  rel = "license" href = "http://creativecommons.org/licenses/by-nc-sa/2.0/">Creative Commons License</a>, the replacement for the earlier Open Content License.



</trademark>
</p>













<br></br>
<table width = "100%">
<tr>
<td> <img src = "images/apache_pb.gif"></img> </td>
<td> <img src = "images/uselx_med.gif"></img> </td>
</tr>
</table>
</body>
</html>

