Interoperable P2P: Jxta
Troy writes: "This article went up today (on developerWorks) about the Open Source project called Jxta, which is a community-run attempt to build a utility application substrate for peer-to-peer applications. Anything with an electronic heartbeat can become a Jxta peer." A nice high-level overview of how Jxta is supposed to work.
no, what would be better... Instead of your alarm clock waking both parties up. The preferred party (woman) should be woken up and instructed to wake you in your preferred way :-P ;-)
Now that's a fucking invention.
Ok. i'll take a dare and assert that i'm not the only one puzzled by wether or not we even need such a thing.
Anybody with an hour or two and a good book on Perl can write a client/server package, complete with a crude protocol that allows both sides to talk. I guess what i'm getting at is, what good is an "application substrate" in this situation? If peer-to-peer sharing is by definition a specialized application meant only to communicate (and deal with) an equally specialized scorresponding part, then why bother building a "one size fits all" version in the first place? Perhaps a common protocol for P2P would be a good idea, but then again, we already have that. Its called TFTP. Or NFS, for that mattter. I've always thought that publically exported NFS shares make the best platform-independant P2P solution.
Sometimes, especially for experienced coders, it becomes tempting to want to reinvent the wheel. If you're going to set out to make something as complicated into something thats now easier to handle, cool..Go for it. But don't try and over-do something that is already simple by its very design.
By the way, if you're one of the guys building such an app, feel free to swing by System 26 when you're ready and have a look around. You might find something useful to include in your code to make it a little more asthetically pleasing. Plus, its free.
Cheers,
Bowie J. Poag
Jxta seems to be a bit better at being a true P2P network without having to know the address of a node before-hand, but Freenet seems to handle bandwidth better by distributing popular files across multiple nodes as needed.
Sun is apparently trying to keep a "hands-off" posture with IP security on Jxta, while Freenet carries it one step further by making it difficult to find who posted or holds "bad" information at any given time.
So... which will ultimately be the better/prefered choice of users?
Keys being that most P2P apps need some of the same basic things. in my simplistic terms:
Authentication, Security & Trust, a Capacity for dealing with a changing and non-stable network, some sort of common messaging format, etc. There's more, but I'm tired of typing.
if Jxta can provide these types of services in a useable way, then it can be very powerful...
anyway... a can of soup can be very powerful too if used properly... it all comes in the implementation. but that's my .02c
No man is an island, but Gary is a city in Indiana.
Isn't this JXTA thing just a rip-off of the Jabber project, with no actual implementation, and no actual apps?
Thats what it looks like to me, anyway.
I gots ta ding a ding dang my dang a long ling long
Sun are a strange bunch, a company where the vi v emacs wars can really kick off as two of the developers are there (Gosling for emacs, Joy for vi). JXTA is another of Bill Joy's babies, its meant to be a language/protocol independent offering for peer to peer solutions, which was originially what http://www.jini.org said they would do (Jim Waldo).
JXTA is a nice idea, and there are some good papers from JavaOne on the subject. But given that Sun's marketing might is behind J2EE will JXTA really be given a chance ?
IMO the answer is probably yes, JXTA and Java are part of a two pronged attack at next generation devices, this isn't really PC to PC type applications but device to device, most of the next generation mobiles will be running Java, some will not and most service provider cells will not, JXTA enables the bridge between the Java world of the device and the big bad world of networking to interact.
Strange how the best ideas come without marketing strategies. Java was an inhouse project which aimed for 10,000 downloads. Will the same explosion happen with JXTA in a wireless world ?
PCs suck, time to distribute.
An Eye for an Eye will make the whole world blind - Gandhi
Although J2EE decided to go a different route by specifying a comprehensive list of minimum requirements it is sizable enough that no two vendors currently completely implement all of the same functionality (or at least not the last time I checked).
Jxta seems to be taking the generic-ness route which from experience leads to incompatible implementations and vendor lock-in. Particularly telling where the following excerpts from the article Sounds like a journey that is starting with the wrong step to me.
Are there any P2P methods in the Internet2 that work better than the IPv4 world?
I hope Jxta will solve that problem when both clients are behind firewalls.
Vilk, from the ranks of the freaks
Yes the jini could give you these capabilities, but a programming language doesn't magically do this.. C can do this as well. It 's the underlying technology that gives you these "neato" inventions. I wear a Java Machine on my finger, it's a java ring I got for free back in 1998. Extending that same idea got us the jini and can go farther... But in the same breath almost every embedded processor or even PIC can do this same thing.
Why dont we see it? there is no demand for it... and manufacturers do not want to cooperate in any way.
I highly doubt that Timex will gladly reveal to Black and Decker how to talk to their alarmclock and vicea-versa.
the only way to get this it to make it yourself... and it really isnt that hard.
Do not look at laser with remaining good eye.
I've been participating in JXTA since the beginning and have been impressed that Sun has truly made JXTA open source. With all the good and bad that entails.
There have been numerous JXTA articles over at O'Reilly's openp2p.com site. Ob Karma Whore :)
Do you even know anything about perl? -- AC Replying to Tom Christiansen post.
And no, your employer doesn't want to pay to route and transmit the bits coming out of the compute cycles you are "donating" to crypto cracking or searching for ET.
In The Trouble with JXTA Adam Langley, a Freenet developer, gives his not so rose-tinted view of JXTA.
The closeness operator sounds a bit like sorting, and anything that can be sorted can also have a closeness operator, however not everything that can have a closeness operator can be sorted. There is no reason why a more general query couldn't conform to these requirements. Generally speaking it would probably require some form of "fuzzy matching" of metadata to an SQL-style query. Of course this would require some constraints on the nature of the query, but it could still be much more flexible than Freenet's current lexographic search.
Anything with an electronic heartbeat can become a Jxta peer
Finally my grandfather can become a Jxta peer. Ever since we implanted that pacemaker, that's been his dearest dream. Bless his artificially stimulated heart.
Maybe now he can send messages to the microwave ovens at 7-11 that used to terrify him so.
A man without a God is like a fish without a bicycle.
The Video Toaster!
What, it's already been done?
"Mind, as manifested by the capacity to make choices, is to some extent present in every electron." -Freeman Dyson
My point is that Jxta is making development decisions that are best left up to implementers. For instance, the Freenet developers are never going to allow broadcast anything, but if Freenet were made within the Jxta framework, they would have to live with broadcast node announcement (despite the fact that the experimental 0.4 Freenet is getting support for a uber-efficent node announcement that scales linearly).
Not a typewriter
For those who don't get what Jxta is good for, don't worry, it took me a while too, but I think I have it.
Jxta is an attempt to combine XML, Java, and Gnutella. Obviously, this unholy hybrid can have only one purpose - to make a computer program so slow time runs backwards!
Jxta was created by Sun to be a "framework" for P2P networks. What exactly that means is rather vague. It appears to make basic development decisions that are better left up to indiviual projects (such as broadcast seaches). TCP/IP is really the only thing most P2P networks have in common, and even that could often be easily replaced with a diffrent underlieing protocol if it was necessary.
There are several other assumptions that Jxta makes that it shouldn't. See this article for more information.
Not a typewriter
You could have your coffee pot programmed to start by itself every morning, and then have it send a signal to your alarm clock when it's ready! Now that would be some useful technology!
If an author wants to limit the distribution of his or her work then it within their entitlement.
Sure information wants to be free, but the interpretation of information is, rightly so, very private.
How many contradictions and paradoxes can arise from these thoughts?