Monday 11 May 2009

Next Stop: JXTA - An Open Platform for P2P

While I was researching on different P2P technologies, JXTA came to my attention. "JXTA (Juxtapose) is an open source peer-to-peer protocol specification begun by Sun Microsystems in 2001. Sun remains actively involved in the development and promotion of JXTA. 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. JXTA is the most mature[citation needed] general purpose P2P framework currently available and was designed to allow a wide range of devices - PCs, mainframes, cell phones, PDAs - to communicate in a decentralized manner." (Quoted from Wikipedia http://en.wikipedia.org/wiki/JXTA)

JXTA is indeed language-independent. There are C/C++, J2SE and J2ME implementation available for now. JXTA is also platform-independent. It can be implemented on different OS platforms. Simply speaking, it is an open technology just like TCP/IP. It sounds perfect, doesn't it? I think it fits into my project because:

  • It is an open and generic purpose P2P technology - It defines a set of protocols that developers can use to build almost any P2P application. At the same time, these protocols are flexible enough to be easily adapted to application-specific requirements.
  • It is platform-independent - This is one of my project's goal.
  • It is open sourced - Sweet and smile.

However, some concerns and uncertainties still exist.

  • Is JXTA going to be improved over a long time?
  • Is JXTA going to be surviving given that Sun will be purchased by Oracle?

I've checked JXTA's developers list and list of projects which are using JXTA. I didn't find one significant enough to attract public attention. Is it still too early to adopt an new technology as JXTA? I don't know. I'm not worry about Java, but I'm worry about those guys who are contributing to JXTA project. Without the major supporter Sun, is JXTA able to grow?

Any ways, I know what I'm going to do now. I was inspired by P2P technology. I have decided that my system should be easily integrated with P2P, or should not be tied to a single architecture, e.g. client/server technology, at least when it comes to design phase. A new design class diagram is done. An abstract network/message layer, which will be implemented according to actual underline network, was added. Hopefully this design is flexible enough to be implemented in the future.

No comments: