This document discusses Remote Method Invocation (RMI) in Java. It describes the general RMI architecture involving clients, servers, stubs, and skeletons. It outlines the steps to develop an RMI system, including defining the remote interface, developing the remote object, generating stubs and skeletons, starting the RMI registry, and running the client. Key aspects covered are the stub and skeleton's roles in marshaling and unmarshaling calls and results, as well as using a security policy file to control permissions.