@perks
It all depends what the application is for.
If it is just for in house, or a server, TCP is way to go.
Actually you could find a small webserver, embed it into the application, then fuk the gui and make a web gui, and use that to control the application.
If it is an actual application for users, they might get upset with extra socket being open, if u know what i mean

You could start out with TCP.
If you do ur code properly abstract the actual TCP socket as in wrap it so that the send and recv are in class for each connection.
Then if u decide to go the pipe route then you could pull that part out and use a pipe.
That is the method used by
http://rpyc.wikidot.com/tutorialAnother question is, does it actually need to be a service ?
as u said services run under a different user space. so for debugging it is a nightmare.
so if possible develop as a regular app then convert to service latter.