Oltre a ciò che @razethestray ha detto, le applicazioni possono anche comunicare tra loro tramite le cosiddette interfacce RPC, che sta per Chiamate di procedure remote .
Tuttavia, RPC è di per sé un termine generico. In realtà ci sono molti modi in cui un RPC potrebbe essere implementato. Ad esempio, DCOM di Microsoft fa molto affidamento su RPC. D'altra parte, una chiamata al server SOAP (web) è considerata anche una RPC. l'unica cosa che tutti hanno in comune è che un client chiama un pezzo di codice in un processo remoto (server) attraverso un'API ben definita per ottenere qualcosa.
Come potete immaginare, è una buona idea e raccomandiamo vivamente l'uso di framework esistenti per tale compito, semplicemente per nascondere e gestire la complessità che viene fornita con l'infrastruttura necessaria per questo. Questi framework e in alcuni casi il supporto IDE integrato (ad esempio per SOAP) rendono un RPC essenzialmente simile a una normale chiamata di funzione / metodo. In realtà, dietro le quinte ci possono essere molte cose, specialmente quando l'altro processo è su una macchina remota.
PS: questo è un argomento abbastanza sofisticato per i principianti.