Posted by Jim at October 20th, 2005

Originally when I started doing my master’s project, I wanted to do something that included peer to peer capabilities. One way of doing this was jxta. Jxta is a platform/protocol for doing peer to peer. Making use of XML, it is implemented in multiple programming languages (Java, C, Perl…) for multiple platforms (Linux, Mac OS X, Windows).

I spent a couple weeks trying to understand the Java version of the library. Then I spent a couple more trying to implement something with it.

Last night I gave up and decided to write my own system (in Java) for filesharing among groups.

I probably should have known better than to even try Jxta, but I’m big into the idea of code reuse and the Jxta project is doing exactly what I need. In retrospect, however, there were a number of warning signs that should have scared me off earlier than they did.

1. Some other guys in a class I took tried to use Jxta and then gave up. From the questions they’d asked in previous classes, it had always seemed to me that I knew more about networks than they did and so I thought I mgiht be able to make things work. What I managed to conveniently forget is that it was also apparent that they were better programmers than I am.

2. Jxta focuses on creating a flexible combination of tools as opposed to solutions. Thus, there is no “share_files()” method. There are, however, many different types of pipes–and many ways to configure them. Again, this fits into Java’s way of doing things, but personally I’d rather have some standard solutions and then come up with strange configurations only if I need to rather than by default.

3. There’s a project based on Jxta called JAL. It does exactly what I just described I wanted out of Jxta. Unfortunately, the project was abandoned last year. I gather that the developers (who work at Sun) were frustrated with Jxta as a platform.

So now I’m reinventing the wheel. Hopefully my wheel will be less elaborate, but give a smoother ride.