This section is a guide to the assumptions that can be made while implementing the JXTA protocols. There are two types of assumptions stated here: those that describe the requirements of JXTA implementations and those that describe the expected behavior of the JXTA protocols. The following format specification uses the ABNF syntax as defined in IETF RFC 2234, and the meanings of bold keywords are established in IETF RFC 2119.
A peer shall not make assumptions about the runtime environments or programming languages in use by another peer.
The network of peers reachable by any peer may contain many peers with very heterogeneous implementations and capabilities.
You should assume that the capabilities and complexities of the network peers supporting these protocols can range from a single light switch to a highly available, supercomputer cluster.
A peer must implement the JXTA protocols such that all interactions with other peers are correct and compliant.
A peer may implement only the JXTA protocols it requires for correct and compliant interaction with other peers.
A peer may implement only a portion (sender-side or receiver-side only, for example) of a protocol.
Peers wishing to interact with other peers within the JXTA network should be willing to participate fully in the protocols. In particular, peers should cache advertisements and forward messages for other peers in the JXTA network. But this participation is optional.
The JXTA protocols may be implemented ...