This document discusses distributed objects and remote invocation. It covers communication between distributed objects, remote procedure calls (RPC), events and notifications, and a case study using Java RMI. The key topics covered include remote interfaces that specify which methods can be invoked remotely, remote object references that allow objects to invoke methods on remote objects, and middleware that provides programming abstractions like remote invocation and events using message passing between processes. Design issues for remote method invocation include ensuring methods are invoked exactly once and providing location transparency.