I am spliting my soft real-time application into two processes, one is the gui and the other is the hardware communications. I would like to to have both processes monitor each other as they send data back and forth. When one detects that the other has crashed it will launch it again and continue normal operation. Would it be wise to set this up as a Peer-to-Peer style communications so that the one that crashes now becomes the client and the other other becomes the server. I was thinking of using tcp/ip locally as my interprocess communications, is this a good idea, is there something better? My Target OS is Minimal Ubuntu.