This document provides an overview of Remote Method Invocation (RMI) in Java. It discusses the architecture of RMI applications including stubs, skeletons, and the transport layer. It describes how RMI allows objects in one JVM to invoke methods on objects in another JVM, enabling the development of distributed applications. The document outlines the steps to implement RMI, including creating remote interfaces, implementation classes, the server, and client. It also discusses marshalling, unmarshalling, and the role of the RMI registry.