Skip to main content


2 replies [Last post]
Joined: 2007-07-06

Hi all,

I know the code is probably the best documentation (even though the Programmer's Guide is not
all too bad), however, there are still higher level architecture concepts in the functionality of JXTA
that are not easy to figure out through the code. There have always been discussion on how to configure
the super peers or how they really work so I wanted to post this and hopefully get some validation and/or
corrections/feedback from the experts.

One can set up a super peer to be both a rendezvous and a relay. It can be configured to run servers to
listen to TCP or HTTP incoming connections on particular ports. Server peers can use the the public IP
address and port (for the particular transport they want to use) of the super peer as a seeding and
advertise their resources on it (pipes etc.). Client peers use the same public IP address and ports to
discover resources and get back advertisements of let's say server pipes with information on how to
connect to them.
My first question is, what does a server peer send to the super peer when it wants one of its server
pipes to be advertised? What kind of routing information is being sent? What I have seen in the case of
the server peer residing behind a NAT, both the local IP address (192.168.x.x) of the peer and the public
interface IP address of the local router are being sent. What goes on on the client peer side? Let's say again
in the case of the server peer residing behind the NAT, the client peer discovers the server peer pipe
advertisement from the rendezvous/relay and it attempts to create a connection to it. But the server peer
in this case is not reachable. Who has that information? And how does the relay kick in to help out both
with the connection and subsequent routing of messages between the two peers?

If anyone understands this part of the architecture well and can provide some guidance I will appreciate it.
It will help me tremendously as I am surveying the code to solve the jxme to jxme issue I have (when both
peers are behind NAT). Or at least point me to some high level documentation that can help me understand the

I will post this to the forum as well.

Many regards

Reply viewing options

Select your preferred way to display the comments and click "Save settings" to activate your changes.
Joined: 2008-12-03


Do you use JXME proxyless or proxy ?

And the version of JXSE (JXTA for Java SE) is JXTA 2.5 or JXTA 2.6 ?

Thank you Bernard Traversat for these details on the subject, very interesting :

Did you tryed PeerDroid ? (JXTA peers running on Android platform.)


Joined: 2007-07-06

Hey Richard,

I am using the MIDP2 version which according to Mohamed is based on a much later version of JXTA rather than the MIDP or the CDC versions. I think the PeerDroid is a project created by Michele Amoretti who is also the project owner of the jxta-soap. If I am not mistaken it is implemented using the CDC version of the JXME. I didn't test it behind NAT as I have with my code but I will certainly give it a shot and see how they deal with it.

The version of the JXSE is 2.5 (for now)

Thanks for the pointers