A Figura (Tanenbaum e Van Steen; 2007) mostra quatro computadores em rede e três aplicativos, dos quais o aplicativo B é distribuído entre os computadores 2 e 3.
Para cada aplicativo é oferecida a mesma interface. O sistema distribuído fornece os meios para os componentes de um único aplicativo distribuído se comunicarem entre si, mas também para permitir que diferentes aplicativos se comuniquem. Ao mesmo tempo, ele oculta, da melhor forma e razoavelmente possível, as diferenças de hardware e sistemas operacionais de cada aplicativo. Esse mecanismo de abstração, organizado como uma camada de um sistema distribuído, que se estende por várias máquinas e oferece a cada aplicação a mesma interface, é chamado:
Socket
Middleware
API
HTTP
RPC