Slashdot is powered by your submissions, so send in your scoop

 



Forgot your password?
typodupeerror
×
News

Interoperable P2P: Jxta 75

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.
This discussion has been archived. No new comments can be posted.

Interoperable P2P: Jxta

Comments Filter:


  • 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 [system26.com] 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,
    • it's not just about file sharing! That's a common P2P myth and misconception. File systems and sharing are about the least of where P2P becomes useful. That can be a component, but the distribution of resources across a heterogeneous network, and the ability to free an application from a central authority are much more interesting side-effects of P2P architectures.

      In any event, building some sort of framework can be useful. If you take this logic and extrapolate it, there was really no reason to advance at all... once there is a critical mass of need for a given set of functionality, it's useful to build a abstracted service to provide it...



      • You raise a good point, but I think my argument still holds. The infrastructure already exists to handle this sort of thing. Distribution of resources across hetero networks isnt really a new idea anyway. Maybe new to people who grew up on Windows, but not for the rest of us.

        Wanna share applications? No problem, add an NFS filesystem and include it in your $PATH... Want to share storage? Same answer. Wanna add available memory to your stem without a RAM upgrade? Same answer. Nothing stops me from assigning swap on my system to an NFS-mounted filesystem half a world away if I choose to. man swapon. :) Sure, it wont be the speediest thing in the world, but its already there, and no more a kludge than a separate P2P infrastructure would be.

        Cheers,
  • Jxta vs. Freenet (Score:3, Interesting)

    by Guppy06 ( 410832 ) on Tuesday August 14, 2001 @12:25PM (#2112080)
    Well?

    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?

    • Re:Jxta vs. Freenet (Score:3, Informative)

      by Hobbex ( 41473 )

      They are not comparable. With Freenet, we are trying to achieve a very specific task - publishing data and making it available in a manner that disassociates with any physical location. The Freenet protocol works for this task, and this task only - it would not be possible to implement anything like jxta over Freenet, and nor would it be (regardless of what people who do not understand the technology may say) possible to implement Freenet, or anything like it, within jxta.
      From what I understand, and while I'll disclaim that I could be wrong I did read through the specifications, jxta is basically a generalized Gnutella. To begin with, the idea seems nice enough: Why is Gnutella limited to searching for string matches, wouldn't it be nicer if messages could carry arbitrary queries so that one could use the same network to ask for "Porn jpgs matching \BIG BOOBIES\" and "2 billion computer cycles to render BIG_BOOBIES.3ds"?

      Yes, it would be nicer, but then, the limitation of searches is not really Gnutella biggest problem , is it? Gnutella's biggest problem is scalability and performance, and - this is what people don't seem to want to hear - by generalizing the queries completely, you have closed the door on trying to make this any better (for searching to work without broadcast you need either sorting or (centralized) indexing - arbitrary queries are neither sortable nor indexable). And for that reason you cannot implement and network like Freenet, or Oceanstore, or Chord, or anything that even attempts to optimize routing beyond the everybody-screams-at-the-top-of-their-voice approach, on top of Jxta.

      The interoperability bug that has caught certain people in regards to the group of programs called "P2" is misguided. It is like "standards" and "interoperability" has become such a holy cow in many circles that people will simply not hear the physical arguments for why interoperable fire and water simply isn't a very good idea for either.Not that it really matters - all the people I have met who are actually doing anything worthwhile in this are seem to understand this very well.
      • by Sanity ( 1431 ) on Tuesday August 14, 2001 @02:32PM (#2140747) Homepage Journal
        Agreed, agreed, agreed. One minor quibble though:
        for searching to work without broadcast you need either sorting or (centralized) indexing - arbitrary queries are neither sortable nor indexable
        I don't think this is nescessarily true. The minimum requirement for being about to do a Freenet-style best-first search for something is that you can define an equality operator, and a closeness operator (ie. "A is closer to B than C is").

        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.

    • by trix_e ( 202696 )
      Freenet seems to be *much* more about anonymous and safe dissemination of information without the fear of censorship or forgery. While it *can* be used as a general P2P service layer, it's not exactly designed to be the pipes under any old P2P app.

      Jxta, on the other hand is shooting to be just that, a general services layer.

      Big difference. Both may flourish but for different reasons. (IMHO Freenet is a very specific demonstration of a concept, but won't take off as anything much more than that...)

    • Jxta seems to be a bit better at being a true P2P network without having to know the address of a node before-hand,

      Only because of broadcast node announcement. That'll make the ghosts of Gnutella come back to haunt Jxta.

  • This may sound like a troll and get modded down, but who cares? Since Java is OOP, wouldn't it be easy for Sun to just change the implementation of the JXTA framework to "backdoor" oar peer to peer architecture. Not that Sun would do something like that, only M1cr0$0ft would do something that evil *(and we all know M$ doesn't use OOP since they don't use Java, although they're oracle db is OOP, IIRC). Anyone have an idea how a truly free version of this and Java [jos.org] could help us circumvent this dastardly tactic of the Coprporate Republic?
  • 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.
  • Java, JINI, JXTA... (Score:5, Interesting)

    by MosesJones ( 55544 ) on Tuesday August 14, 2001 @12:02PM (#2117495) Homepage

    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.

    • The problem I have with distributed computing technologies from Sun and the other Unix companies is that they are typically never fully standardized by vendors. CORBA suffered from the fact that the spec was too generic and yet to complex and thus didn't enforce that ORBs should provide enough default services which lead to all sorts of interesting vendor lock in as its almost impossible to find two ORBs that implement the same exact set of services.

      Although J2EE decided to go a different route by specifying a comprehensive list of minimum requirements [advisor.com] 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
      In other words, a Jxta application that meets the minimum specified interoperable requirements superficially and does not interoperate in any meaningful way with others can still be in accord with the Jxta specification. However, it is anticipated that the viral growth of P2P applications and services will force vendors to embrace interoperability as a key product feature. The consequences of this design decision are left to be tested by the trials and tribulations of open market forces.
      Sounds like a journey that is starting with the wrong step to me.
      • I don't know when the last time you checked was, but there are seomthing like 6-10 J2EE certified app servers available now. Of course they all have value-added features to try and make you stick with their product, but basically, follow the spec, and there's a nice pool of other vendors you could always jump to...
    • by jeffy124 ( 453342 ) on Tuesday August 14, 2001 @12:51PM (#2142802) Homepage Journal
      I beg to differ on some of your comments. Jini is a means of building ad-hoc networks for devices and services, while Jxta could be built on top of Jini to build a quick network of shared resources. Jini originally started out as a wireless or other device thing, but has found uses in software. J2EE is not really related to Jini/Jxta, but it can build itself off of the services they provide. J2EE is intended for large-scale enterprise applications like databases, and it's possible to do that using traditional methods or utilizing ideas offered by Jxta and/or Jini.

      However, I do agree with that this is a way of attacking and going after the wireless market. Sun needs a marketing dept like that of MS, one that is aggressive and sees oppurtunity in tying things together. Let's just hope that un doesn't go too far with that ; )

      • As long as we're begging to differ... Jini did not start out as a "wireless or other device thing". It just happened the first demo was on a device and Sun marketing took that and ran. It was always about distributed services, of which devices are just one type.

  • 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.

  • by Vilk ( 131239 ) on Tuesday August 14, 2001 @11:57AM (#2127485)
    Imagine, pirating music from the comfort of your couch. Can a toaster play MP3s yet? I bet they'll be able to soon.

  • The author writes: "Much has been written already in popular and trade press. Sun's decision to not dictate policy in its Jxta implementation allows it to sail free and clear of this controversy -- leaving the onus on the shoulders of the pioneering early adopter of Jxta technology when working on content distribution. However, the community-based evolution of Jxta technology in this arena has the potential of ensuring a smooth balance of control between the IP owners and the public at large. The open Jxta community can serve as a forum where IP owners and technologists can work out their differences."

    In other words, to hell with it. We know all the users are just using it for pr0n and mp3s, so why not just go with the flow and hope someone else figures out a happy medium? :)

  • 1) They come up with these projects like JXTA, give you a philosophy, framework, whitepapers and tons of other stuff to read, and give you zero examples of useful code. My clever idea for embedding base-64 encoded binary data within XML files for file sharing (to facilitate streaming, reduce stupid filenames, allow files to store md5 hash and content length, allow public-key sigs and/or crypto, versioning, and basically any other metadata you could possibly want while still allowing network portability (smtp in particular), XML compliance and still be able to go 'uudecode file.xme' and get useful output) won't get any play whatsoever unless somebody (I suppose me) writes a 'reference implementation' that resembles something useful.
    2. They have problems playing nice with de facto standards. The one that pissed me off the most was their deprecation with a vengeance of get/setenv. Any OS worth its salt supports some sort of environment variable, and those that don't could have get/setenv emulated by the jre. They left people trying to deal with bizzare command lines to pass in system properties, which is very nearly a waste of time. Anywho, the cgi-bin crowd read that as "java servlets or no java" and said "no java." Java servlets/jsp are often as good a choice or better for many types of web apps, but Sun doesn't do much to cater to people who think more in perl or ssi's (php).
  • There have been numerous JXTA articles over at O'Reilly's openp2p.com [openp2p.com] site. Ob Karma Whore :)
  • Computers suck in general, the more people hype all this stuff the worse they get. Java was going to revolutionize the PC. The only thing it manages to do secessfully is crash my browser or make annoying porn web pop-ups constantly happen.

    Jini was going to connect every device, ya.. right, and now jxta, what's that going to do make my toaster talk to my fridge. Do i really need that?

    As for P2P, the only sort of half usable system was Napster (thanks RIAA for messing that up) as you could connect to people about 50% of the time, and the server based indices made searching for something so much faster. Using Gnutella sucks ass.. no one ever seems to connect properly, searching is painfully slow, data rates even though they say are fast come in at insanely slow speeds. Getting 1k/s is a good rate, Got to love getting 14.4 modems speeds on my 1mb dsl connection. Are we going backwards or forwards with this stuff ??

    Try hooking up some simple pc's on a network with MS's SMB, and that just sucks too. What's that waiting 15mins if you take the server down without logging off clients, how come you can sometimes see computers and domains, and not other times. How easy is it to hack the network.

    The only thing that really seems to preform is TCP/IP, your packet will get routed.. anythning build on top of that well.. we know how well stuff works now days. Any app or protocal for networking created before 1986 is pretty much garbabe.
  • P2P is the "push" of 2000. Its 2001 now, so you can safely move on to your next fad.

    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 [openp2p.com] Adam Langley, a Freenet developer, gives his not so rose-tinted view of JXTA.
  • 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.

  • by Anonymous Coward
    It's my ball - you can play with it, but then you have to give it back to 'cause I own it. And another thing - you can't bounce the ball or look at it.
  • One thing that most people haven't noticed is that JXTA isn't specifically a Java system, unlike Jini which uses Java classes. Jxta is a protocol, which can be implemented in whatever language is desired. Naturally the first implementation is in Java, but it doesn't depend on it.
  • by Hobbex ( 41473 ) on Tuesday August 14, 2001 @12:32PM (#2143703)

    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!
  • by hardburn ( 141468 ) <hardburn@nosPaM.wumpus-cave.net> on Tuesday August 14, 2001 @12:09PM (#2144356)

    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 [openp2p.com] for more information.

    • by trix_e ( 202696 )
      That's not neccesarily the case... true that things are a bit vague at this point, but what P2P frameworks are all about is providing some basic level of services to build upon.

      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

      • 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).

  • 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!
    • 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.
    • 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.
    • one problem - the human factor is introduced. you have to actually wake up when that alarm sounds

      not to mention, i think this can already be done. Some coffee pot machines can be set to start brewing a particular time. Simply figure out how long it takes for the coffee to brew, and set the clock on the pot and alarm clock appropriately.

    • All you have to do is time how long it takes for your coffee maker to make coffee.

      6:30 Time coffee starts brewing (Set this on coffee maker)
      + 5 minutes brewing time
      = 6:35 Time to wake up (Set this on alarm clock)

      who need Jxta for that.... :-)
    • Please...Pee Wee Herman [geocities.com] did that years ago. His even made him breakfast!
  • I know that being Open Source fanatics we are supposed to love plain ASCII text and all, but when it comes to High-Level overviews how about a frickin' diagram.

    I have played around with Dia, and despite some pretty big limitations, it is still possible to create a good looking pic.

    I'm sorry to rant (is it just me?) but why is Linux and Open Source documentation so devoid of pretty pictures. If they can add to a persons understanding of a product or concept I would say they are not such a waste of bandwidth, as everyone in the OSS community tends to believe.

  • 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?

  • The question which most often comes up when JXTA is mentioned is always the same, "What is JXTA for?" The answer is simple but unintuitive: JXTA is so that Sun can break into the P2P mindshare. It can't do this with Jini because Jini has already ridden the hype rollercoaster, so Sun had to come up with a new product. They took their bag of buzzwords and came up with a buzzword compliant P2P product.

    Now, seeing as how are you probably a developer who does not work for Sun, what is the point of JXTA for *you*? What does it give you that you will find useful. Very little. If you happen to want to write a P2P app that uses the JXTA network model (basically Gnutella, but let's not quibble about that particular point) then JXTA has some code that you can use as a base for your application. You can also hack up an appropriately licensed Gnutella, Freenet, or MojoNation client if you like their arhictecture.

    Chances are, however, you want a custom network architecture. If you read Sun's marketing hype, they will tell you that JXTA can be any architecture and it's open source, so it's up to you to add the components to make JXTA-Freenet or JXTA-MojoNation or JXTA-your-custom-network-architecture-here. This is technically true because JXTA doesn't actually do anything. It's basically a bunch of webservers that open connections to each other. The only thing that JXTA adds over a webserver with CGI or some form of RPC such as XML-RPC or SOAP is that it provides a few services that create a Gnutella-like network. If you're not going to use the JXTA services then JXTA adds nothing over an XML-RPC module in Apache or any of the small XML-RPC servers such as Helma.

    People ask me for advice on their P2P applications all the time and never have I found it prudent to recommend JXTA for a project. However, JXTA does have one benefit, which is that if you use it in your project then Sun will give you free advertising announcing "yet another" JXTA-based project.
  • If JXTA is a P2p "framework", what stopping someone from writing a Gnutella client using JXTA? Or am I missing something?

"An entire fraternity of strapping Wall-Street-bound youth. Hell - this is going to be a blood bath!" -- Post Bros. Comics

Working...