JavaTM Remote Method Invocation Specification
Java Remote Method Invocation (Java RMI) is a distributed object model for the Java programming language that retains the semantics of the Java platform's object model, making distributed objects easy to implement and to use. The system combines aspects of the Modula-3 Network Objects system and Spring's subcontract and includes some novel features made possible by the Java SE platform.
Table of Contents
1 Introduction
- 1.1 Background
 - 1.2 System Goals
 
2 Java Distributed Object Model
- 2.1 Distributed Object Applications
 - 2.2 Definition of Terms
 - 2.3 The Distributed and Nondistributed Models Contrasted
 - 2.4 Overview of RMI Interfaces and Classes
 - 2.5 Implementing a Remote Interface
 - 2.6 Parameter Passing in Remote Method Invocation
 - 2.7 Locating Remote Objects
 
3 RMI System Overview
- 3.1 Stubs and Skeletons
 - 3.2 Thread Usage in Remote Method Invocations
 - 3.3 Garbage Collection of Remote Objects
 - 3.4 Dynamic Class Loading
 - 3.5 RMI Through Firewalls Via Proxies
 
4 Client Interfaces
5 Server Interfaces
- 5.1 The 
RemoteObjectClass - 5.2 The 
RemoteServerClass - 5.3 The 
UnicastRemoteObjectClass - 5.4 The 
UnreferencedInterface - 5.5 The 
RMISecurityManagerClass - 5.6 The 
RMIClassLoaderClass - 5.7 The 
LoaderHandlerInterface - 5.8 RMI Socket Factories
 - 5.9 The 
RMIFailureHandlerInterface - 5.10 The 
LogStreamClass - 5.11 Stub and Skeleton Compiler
 
6 Registry Interfaces
7 Remote Object Activation
- 7.1 Overview
 - 7.2 Activation Protocol
 - 7.3 Implementation Model for an "Activatable" Remote Object
 - 7.4 Activation Interfaces
 
8 Stub/Skeleton Interfaces
- 8.1 The 
RemoteStubClass - 8.2 The 
RemoteCallInterface - 8.3 The 
RemoteRefInterface - 8.4 The 
ServerRefInterface - 8.5 The 
SkeletonInterface - 8.6 The 
OperationClass 
9 Garbage Collector Interfaces
- 9.1 The 
DGCInterface - 9.2 The 
LeaseClass - 9.3 The 
ObjIDClass - 9.4 The 
UIDClass - 9.5 The 
VMIDClass 
10 RMI Wire Protocol
- 10.1 Overview
 - 10.2 RMI Transport Protocol
 - 10.3 RMI's Use of Object Serialization Protocol
 - 10.4 RMI's Use of HTTP POST Protocol
 - 10.5 Application-Specific Values for RMI
 - 10.6 RMI's Multiplexing Protocol
 
A Exceptions In RMI
- A.1 Exceptions During Remote Object Export
 - A.2 Exceptions During RMI Call
 - A.3 Exceptions or Errors During Return
 - A.4 Naming Exceptions
 - A.5 Activation Exceptions
 - A.6 Other Exceptions
 
B Properties In RMI
- B.1 Server Properties
 - B.2 Activation Properties
 - B.3 Other Properties