Verteilte Anwendungen benötigen Kommunikation zwischen den Komponenten, um in Rechnernetzen verteilt arbeiten zu können. Java bietet zwei Mechanismen, die die Kommunikation ermöglichen: RMI (Remote Method Invocation) und JavaIDL über die Common Object Request Broker Architecture (CORBA).