The evolution of modern computing is from client-server to web-based computing, to, now, peer-to-peer. That's a trajectory Sun Microsystems wants to follow, said JXTA engineering director Li Gong at a "Birds of a Feather" session held at JavaOne, but Sun wants help.
As if to prove the community nature of Sun's Project JXTA, Gong without warning pulled five surprised members of the JXTA community from the audience and asked them to help him lead the discussion from the podium -- Bernard Traversat, engineering manager of the JXTA Core; Juan Carlos Soto, jxta.org community manager and group product manager for Project JXTA; Mohamed Abdelaziz, an early JXTA developer at Sun; Andrew Chien, CTO of Entropia; and Ziad El Kurjie, Director of Engineering at Clip2.
With the five former-audience members on the podium, Gong skipped past the arguments for P2P -- "I don't want to talk too much about P2P and the benefit of P2P because 90% of people talking about P2P get stuck on what is P2P" -- and addressed the problems with current P2P systems development that JXTA attacks:
Join Raffi in a technical discussion of JXTA here. Ask questions, report findings, develop strategies.
Get cracking on your JXTA code
Announcing the OpenP2P.com Project JXTA Developer Contest. Enter your hot JXTA code and win a pass to the O'Reilly P2P and Web Services Conference in Washington, D.C., this September, and a Yopy PDA. Deadline is July 15.
Showing a diagram of most P2P infrastructure architectures, Gong illustrated that a protocol sits at the bottom, while services and applications reside above it. "This is how many companies already build their computing silos," he continued. JXTA is about the bottom layer -- the core set of protocols.
Not wanting to deliver a technical talk at this event, Gong opened the floor. The first question was concerned with a familiar issue to most involved with JXTA: "What is the relationship between Jini and JXTA?" Gong indicated that Jini had strong assumptions, namely that every node in the network would be running a Java VM capable of making RMI calls. On the other hand, JXTA comes with the opposite assumptions: each node does not require Java (although he said that Sun can make an argument that Java would be the best platform). No specific execution environment is assumed, and actually each JXTA device needs to implement only a subset of the protocols that it feels are pertinent to itself.
Question: "Is there a reference implementation available?" Yes, said community manager Soto, there is a learning implementation written in Java hosted on jxta.org. He also noted that the community has started to do a C port, but it was not yet checked into CVS. There is also a project to move the platform over to the Personal Java Profile in J2ME.
Question: "Can it work from a MIDP (Mobile Information Device Profile) device?" The real problem is the CLDC (Connected Limited Device Configuration) versus the CDC (Connected Device Configuration), chimed in Traversat. The server side of the platform has to be somehow enabled on the resource-sparse CLDC device so that the device can function truly as a peer.
Question: "How do you identify a peer and what is a mechanism for finding other peers?" Abdelaziz took the microphone on this question and responded that each peer is described by an XML advertisement and a peer ID. There are also several mechanisms for discovery -- there are multiple rendezvous points on the Internet for JXTA that cache advertisements, and as an optimization the platform can use IP multicast to find other peers on the same physical subnet. "So, is there a global rendezvous that every peer knows about?" continued the questioner. El Kurjie noted that yes, the platform has a few rendezvous points hard-coded into it. If the platform comes across another rendezvous during discovery, it caches its location and makes use of that peer also.
Question: "What are the security implications of JXTA?" As, the designer of the Java 2 security framework, Gong responded simply that "JXTA is not Java." Java has objects and permission sets while JXTA has no clear definition of what an object is, or even what a security subject is -- the community will have to discuss what this really means. But moving his response away from Java, "Security is core to any P2P system." JXTA is designed as a set of protocols, and JXTA itself does not have access to anything dangerous as it is "operating at a more primitive layer than most P2P systems." For more high-level security requirements, like end-to-end encryption, JXTA will be relying on a security framework to be built on top of JXTA (the security project on jxta.org).
Gong at P2P Conference
Li Gong will present a session called "Project JXTA: A Technology Overview" at the O'Reilly P2P and Web Services Conference on September 20.
Question: "Has anybody built an interesting peer-to-peer application in JXTA? What features make it helpful?" The microphone ended up at El Kurjie, who answered that Clip2 has built the Remote Rendezvous Service for JXTA. That service is not really an application to be used in JXTA, however, but more of a service to help maintain the JXTA net.
Question: "Is there any reason that JXTA protocols were invented instead of using existing ones, like SOAP?" Gong replied simply, "We couldn't find a set of protocols that did what we wanted to do." JXTA has a few basic primitives and it did not want anything more. "If the community wants SOAP, then it's open to debate," he continued, referring to the community process of jxta.org and the constant evolving state of the protocols and platform. "It's too early to standardize on a common set of protocols. We push out some ideas, and get the community to agree on them." jxta.org opened itself up when it had its first prototype -- this allows market forces to drive it. Chien continued that the Intel P2P Working Group, the W3C, and the IETF are all in the business of making standards -- but echoing his previous response, "JXTA is a good way to deal with programs; it's too early to get in on standards."
People are bringing their experience from everywhere and are applying it to JXTA, Gong concluded. "jxta.org is a fluid community ... we want to see where that community takes us."
Raffi Krikorian makes a career of hacking everything and anything. Professionally, he is the founding partner at Synthesis Studios: a technological design and consulting firm that orchestrates his disjointed train of thought.
Return to OpenP2p.com.
Copyright © 2009 O'Reilly Media, Inc.