Unlike the Client-Server case, there is no commonly used protocol for peer-to-peer communication. So we created our own for use in Chorus. Peers on the network communicate using Chorus messages, which are simple XML messages.
The Chorus Networking Layer is repsonsible for sending and receiving all messages. It has a few reserved messageTypes for maintenance, but forwards all other messages up teh protocol stack to the Chorus Document Manager.
The Chorus Document Manager interprets messages depending on their messageType. Certain messageTypes (e.g. Document) may have a complicated XML payload, while others (e.g. LENS_REQUEST) may have a plain-text payload. Please see the writeup for more information about the message types and formats used in Chorus.
Extremely simple to setup and use.
Reliance on Bonjour limites network to a LAN.
Scalability issue (every updated document must be sent to each peer)