This document summarizes remote procedure calls (RPC), remote method invocation (RMI), and event-based distributed programming models. It discusses RPC and RMI architectures including client stubs, server skeletons, and dispatchers. Middleware provides location and protocol transparency. Interfaces specify accessible methods. The document also covers a Java RMI case study of a shared whiteboard application that uses callbacks to notify clients of updates.