Sockets wären in Hinblick auf LAN/WAN Unterstützung mein Favorit, und sind lokal ausreichend schnell (bis zu mehreren 100.000 Nachrichten pro Sekunde). RPC ist erst mal nur ein Kommunikationsmodel (Remote Procedure Calls sind Request/Response Kommunikation).
Als Microsoft-spezifische Lösung nenne ich nur mal so MSMQ, Microsoft Message Queuing. Damit können Prozesse Nachrichten austauschen, was sogar "transaktional" geht (d.h. wenn eine Reihe von Nachrichten empfangen wurde und der Empfänger kein "Acknowledge" sendet, sondern abstürzt, erhält er die Nachrichten nach dem Neustart noch einmal).
http://msdn.microsoft.com/en-us/library/ms978430.aspx