Java 2.0 RMI Development
This module provides an introduction to distributed computing using Java’s Remote Method Invocation API. Upon completion the student will be able to apply RMI fundamentals to practical distributed computing applications.
There is a brief overview of distributed computing concepts and terms, which helps to motivate the ensuing study of RMI itself. The architecture is then presented first from the client side (how does an application use an RMI-aware object?), and second from the server side (how is such an object implemented and served?). From both perspectives there is a thorough treatment of RMI’s layered architecture, from application code through generated stubs and skeletons to remote-reference and transport layers.
Once the basic RMI interactions are understood, the module moves into more advanced and more practical issues, looking at topics including RMI system design, threading, distributed garbage collection, and automatic object activation. We look at the nuts and bolts of using RMI in applets as well as applications, HTTP tunneling to work through firewalls, and configuring an RMI system to enable automatic distribution (and update) of stub class files. A final case study completes the module.
Course Duration: 2 Days
Prerequisites: Experience with threading, syntax, client/server concepts, and I/O.
1. Introduction
Distributed Computing
Available Technologies
CORBA
The RMI Client API
Designing an RMI Client
Implementing an RMI Client
Deploying an RMI Client
The RMI Server API
Designing an RMI Server
Implementing an RMI Server
Generating Stubs and Skeletons
The RMI Naming Service
Deploying an RMI Server
Advanced RMI APIs
Designing RMI Client/Server Systems
Designing RMI Peer-to-Peer Systems
Establishing Peer Connections
Implementing an RMI Peer-to-Peer System
Internals RMI Mechanisms
Naming Service Details
RMI and Garbage Collection
Java Activation Framework
JDK 1.2 Additions
5.
Real-World IssuesGood Remote Interface Design
RMI and Applets
Peer-to-Peer RMI and Applets
RMI and Firewalls
Automatic Classfile Distribution
Efficiency Issues
Design the Remote Interface
Implement the Client
Implement the Server
Deploy the Server