D-Bus je docela užitečný a velmi stabilní pro práci s ipc na stejném hostiteli. http://www.freedesktop.org/wiki/Software/dbus
Jak jste viděli, pro komunikaci mezi procesy můžete použít:
- Sdílená paměť
- Pojmenované kanály
- Sokety TCP/UDP (eventuálně místní)
Sdílená paměť má výhodu výkonu, protože při odesílání/příjmu zpráv nemáte žádnou vyrovnávací paměť. Musíte však synchronizovat výměnu dat s jiným IPC. Mohou to být semafory IPC nebo ... pojmenované roury nebo zásuvky.
Když výkon není hlavním cílem, dávám přednost socketům, protože jejich použití je jednoduché a lze je rozšířit na mezipočítačovou komunikaci.
Nejlepším způsobem je abstrahovat vaši komunikaci s třídou, která může používat sdílenou paměť, když jsou dva procesy na stejném počítači a sokety, pokud ne. Pak si musíte vybrat mezi UDP a TCP;-)
Pro synchronizaci / výměnu vyrovnávací paměti preferujte protokol TCP, protože je spolehlivější.
Nepoužívám pojmenované pipes, protože preferuji socket pro možnost využití mezipočítačové komunikace a samozřejmě můžete najít spoustu portable socket knihoven...
my2cents
EDIT:
Pro synchronizaci možná sdílená paměť není nejlepším nástrojem. Ve vašem případě jej lze použít sdílením malého paměťového prostoru s prostorem pro každý proces, který čeká na příkazy. Můžete se buď dotazovat na jakýkoli příchozí příkaz, nebo použít sdílený semafor. Nejrychlejším způsobem jsou vaše procesy čekající na pojmenované semafory a čtení sdíleného mem prostoru pro jejich příkazy/parametry. Použití pojmenovaných rour je jistě jednodušší, ale ne tak rychlé. Určitě nemusíte být tak rychlí? Každopádně abstrahujte to ve třídě, která modeluje váš protokol výměny a vyzkoušejte dva způsoby :-)
Dobrou volbou je použití socketpair, velmi rychlé a efektivní.
Boost má pěknou knihovnu InterProcess, která je multiplatformní a docela intuitivní.
I když jsem si s tím jen hrál, takže možná existují lepší alternativy.
Pokud však sdílenou paměť opravdu nepotřebujete, zůstal bych u přístupu zasílání zpráv. Vyhnete se patovým situacím a závodním podmínkám. Princip potrubí je opravdu skvělý a dokonce umožňuje líné chování, což vám může ušetřit spoustu zpracování v závislosti na dané záležitosti!