title: Should I make and implement a network protocol by hand or use a middleware (if so which)?
body: <p>I have some data that I need to share between multiple services on multiple machines.  Stuffing the data into a database or shuffling it over http won't work in this situation and ideally the different pieces of software will need to communicate with each other directly (or through one central coordinator that can send and receive).</p>
  
  <p>Is it recommended to create and implement a network protocol or use some tool to do the communication?  </p>
  
  <p>If I did go the route of creating a protocol myself, it wouldn't have to be very complex.  Under 10 different message types, but it would have to be re-implemented in a few different languages for this project, and support unicode. I have read plenty (and done some) with handling sockets, but don't have much knowledge in handling a protocol I create.  Are there any good resources on this?</p>
  
  <p>There are also things like ICE and RPC that look intresting.  The limit of my experience is using ICE and XMLRPC for a few days each.  Is this the better route to go? If so what tools are out there?</p>