JXTA Advantages and Disadvantages
JXTA provides a far more abstract language for peer communication than previous P2P protocols, enabling a wider variety of services, devices, and network transports to be used in P2P networks. The employment of XML provides a standards-based format for structured data that is well understood, well supported, and easily adapted to a variety of transports. XML also has the advantage that it's a human-readable format, making it easy for developers to debug and comprehend. So far, JXTA seems to have done everything right. Well, maybe not.
One important element that JXTA does not attempt to address is how services (other than the core services that implement the JXTA protocols) are invoked. Several standards exist for defining service invocation, such as the Web Services Description Language (WSDL), but none has been specifically chosen by the JXTA Protocols Specification. JXTA provides a generic framework for exchanging information between peers, so any mechanism, such as WSDL, could potentially be used via JXTA to exchange the information required to invoke services.
Several other arguments have been raised against the flexibility that the designers of JXTA infused throughout the JXTA Protocols Specification. Although JXTA's use of XML specifies all aspects of P2P communication for any generic P2P application, JXTA might not be suited to a specific standalone P2P application. In an individual application, the network overhead of XML messaging might be more trouble than it's worth, especially if the application developer has no intention of taking advantage of JXTA's capabilities to incorporate other P2P services into the application.
Critics of JXTA point out that the platform's abstraction of the network transport is another potential area of excess. If most P2P applications today rely on the Transport Control Protocol (TCP) to provide a network transport, why does JXTA go to such lengths to avoid tying the protocols to a specific network transport? Why not specify TCP as the assumed network transport and eliminate the overhead?
All these points highlight the need for developers to balance flexibility with performance when implementing their P2P applications. JXTA might not be the best or most efficient solution for implementing a particular P2P application; however, JXTA provides the most well-rounded platform for producing P2P applications that have the flexibility required to grow in the future. The capability to leverage other P2P services and enable widespread development of P2P communities is the core value of the JXTA platform.