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
1Introduction
- 1.1Background
- 1.2System Goals
2Java Distributed Object Model
- 2.1Distributed Object Applications
- 2.2Definition of Terms
- 2.3The Distributed and Nondistributed Models Contrasted
- 2.4Overview of RMI Interfaces and Classes
- 2.5Implementing a Remote Interface
- 2.6Parameter Passing in Remote Method Invocation
- 2.7Locating Remote Objects
3RMI System Overview
- 3.1Stubs and Skeletons
- 3.2Thread Usage in Remote Method Invocations
- 3.3Garbage Collection of Remote Objects
- 3.4Dynamic Class Loading
- 3.5RMI Through Firewalls Via Proxies
4Client Interfaces
5Server Interfaces
- 5.1The
RemoteObjectClass - 5.2The
RemoteServerClass - 5.3The
UnicastRemoteObjectClass - 5.4The
UnreferencedInterface - 5.5The
RMISecurityManagerClass - 5.6The
RMIClassLoaderClass - 5.7The
LoaderHandlerInterface - 5.8RMI Socket Factories
- 5.9The
RMIFailureHandlerInterface - 5.10The
LogStreamClass - 5.11Stub and Skeleton Compiler
6Registry Interfaces
7Remote Object Activation
8Stub/Skeleton Interfaces
- 8.1The
RemoteStubClass - 8.2The
RemoteCallInterface - 8.3The
RemoteRefInterface - 8.4The
ServerRefInterface - 8.5The
SkeletonInterface - 8.6The
OperationClass
9Garbage Collector Interfaces
10RMI Wire Protocol
- 10.1Overview
- 10.2RMI Transport Protocol
- 10.3RMI's Use of Object Serialization Protocol
- 10.4RMI's Use of HTTP POST Protocol
- 10.5Application-Specific Values for RMI
- 10.6RMI's Multiplexing Protocol
AExceptions In RMI
- A.1Exceptions During Remote Object Export
- A.2Exceptions During RMI Call
- A.3Exceptions or Errors During Return
- A.4Naming Exceptions
- A.5Activation Exceptions
- A.6Other Exceptions