JXTA

JXTA (Juxtapose) is an open source peer-to-peer protocol specification begun by Sun Microsystems in 2001. The JXTA protocols are defined as a set of XML messages which allow any device connected to a network to exchange messages and collaborate independently of the underlying network topology.

As JXTA is based upon a set of open XML protocols, it can be implemented in any modern computer language. Implementations are currently available for Java SE, C/C++, C# and Java ME. The C# Version uses the C++/C native bindings and is not a complete re-implementation in its own right.

JXTA peers create a virtual overlay network which allows a peer to interact with other peers even when some of the peers and resources are behind firewalls and NATs or use different network transports. In addition, each resource is identified by a unique ID, a 160 bit SHA-1 URN in the Java binding, so that a peer can change its localization address while keeping a constant identification number.

JXTA strongly resembles Tapestry.

Read more about JXTA:  Protocols in JXTA, Categories of Peers, Advertisements, Pipes, Peer Groups, Rendezvous Network, Applications, Status