JXTA is a standard (and accompanying reference implementation in Java) for P2P nodes to connect, form groups and ‘advertise services’. I’m currently looking at JXTA for the core networking technology in my project. Several things have struck me about JXTA’s design as overly presumptuous and are deal breakers for me.
All peers belong to the “World Peer Group”. I presume this means that all peers can communicate with each other because they belong to this group. Furthermore all peers are encouraged to rout traffic for each other. As a peer I would not be inclined to rout traffic unless it directly benefited me or other peers in my group. The last thing I want to be doing is routing traffic for some file sharing service when I’m trying to commit to changes to the group. My traffic comes first, preferable exclusively. The only thing I would agree to route for other peers would be discovery messages. Using the network at large to help people find each other is a fair exchange in value for traffic.
I’m aiming for a secure network. It seams peers can join my group without authenticating with one of the group members first. I want to have a custom authentication protocol with public key encryption.
There dost seam to be clear answers to these questions on the JXTA website either. I guess its time to dig into the protocol spec to find out.