JXTA – Is it Important or Just Cool?

    March 30, 2004

Software can be a bit boring. So where do we get our jollies? What is exciting in the software world? Well, we can all take up skydiving while doing code reviews** or we can use a new technology. Its hard to say why ‘new’ holds such a fascination for most of us. When a new technology saves us time or money it has a lot of pull. But something that can save time and/or money “and” be cool, well it just warms our hearts.

JXTA is new, gives us access to both the technology and to resources to use it at a price as good as free beer. JXTA is also a brain teaser. If you move away from the comfortable home of the application server to the edgy resources of the personal computer, most ideas don’t survive. JXTA requires intelligence, creativity, and invention. Now that’s exciting.

Application servers change things a bit, but they can’t be used to develop for fun, research, small business, or even a charity. There is too much to pay for between hosting, bandwidth, support, and the hardware. Yes, you can do some web apps on the cheap, but not easily and often not easily scalable. JXTA goes the other way, so it is at least more accessible.

I don’t want to learn another damned API. Really? Are you dead? Lazy? A traditionalist? Or are you 100% sure that what you are doing is going to be a marketable skill in five years? About the only legitimate excuse for not learning a new technology is time and resources. Since JXTA does not require that you have anything more than just your PC and perhaps those of your friends, it has no barrier to entry. That leaves time. The only way you get time is to make a priority and put something else off for a while. I think JXTA is important enough, but you need to make that choice for yourself.

I have called JXTA a revolutionary technology. It is like the first personal computer (mine was an Apple II). Before the personal computer appeared, software was written by only a small and privileged few. The reason was that computers at the time cost as much as a house. But with the personal computer, the number of programmers exploded. Compare JXTA to web and application servers. JXTA needs little or no investment to create useful applications. Web an application servers need hosting, hardware, bandwidth, and the costs increase as you scale (it is much cheaper to do so, but the average hobbyist can’t afford a simple site).

Some architects recommend that you should develop with the least complex technology possible. Others recommend minimalist designs or least complicated methods too. How would JXTA fall into this?

JXTA is less complex then web apps because it removes or reduce the complexity of multiple languages(Java, html, JavaScript, etc), browser incompatibility, and the web infrastructure of servers and data centers. JXTA can use a real GUI (Swing, SWT, or AWT), which can save a lot of development time. There are also many more resources because of other computers in the P2P network. The downside is increased latency for some types of data and in many cases a more complex distributed design. Counteracting the bad is reduced equipment and reduced interactions between the pieces (like interfaces between html, srcipts, XML, and Java).

Sounds like JXTA uses less technology and reduces the touchpoints between them. But is there less code and a simpler design? Jury is out on that one because complex applications have not really been analyses. For simple applications it seems like there is less code.

New technology is sometimes a moving target. JXTA is no exception. The direction of change is toward less complex and easier to use. Some of the churn is also in how we design with JXTA. Turning any paradigm on its head is going to keep you on your toes for a while.

JXTA developers also need a lot more than the API. JXTA at is core is just a protocol. It is not a turnkey business solution. But that’s another reason to lust after JXTA. There are a lot of important things to do, from crafting unique frameworks to modifying existing ones to fit a JXTA and P2P environment. Building a business solution with JXTA is still a job for a fabricator. It takes a craftsman to make his own scaffold when things get complex. What really makes this fun is that the solutions are like no other.

So, is JXTA fun? Yes! Is it hard work, yes again for some things. Is it good for your business? Yes, because despite some extra time developing, the benefits of P2P, and the reduced costs are enormous and they add up over the lifetime of a product.

**Most companies don’t do code reviews so life is already exciting.

Daniel Brookshier is the lead author and editor of JXTA: Java P2P Programming. He is a hands-on Java architect concentrating on JXTA, J2EE, Swing, and mentoring. Daniel is an independent consultant with clients in multiple industries, including such well known companies as Boeing, Ericsson, and Wal-Mart. His two personal Web sites are http://people.jxta.org/turbogeek/ and www.cluck.com