Jake is a client application for collaboratively working on a folder.
Here is an indepth explanation of how Jake works.
Jake connects to the XMPP/Google talk server where your account is and behaves similar to a IM client (but does not try to replace it).
The smack library helps us with that.
File transfers between clients occur peer-to-peer (with the negotiation of IP addresses over XMPP), or, as a last resort.
The ice4j library helps us with that.