Slashdot Mirror


Is XMPP the 'Next Big Thing'

Open Standard Lover writes "XMPP (eXtensible Messaging and Presence Protocol) has been getting a lot of attention during the last month and it seems that the protocol is finally taking off as a general purpose glue to build distributed web applications. It has been covered that AOL was experimenting with an XMPP gateway for its instant messaging platform. XMPP has been designed since the beginning as an open technology for generalized XML routing. However, the idea of an XMPP application server is taking shape and getting supporters. A recent example shows that ejabberd XMPP server can be used to develop a distributed Twitter-like system."

14 of 162 comments (clear)

  1. Field test of XMPP based system by Sique · · Score: 3, Informative

    My next project is a field test of a XMPP based Single-Number-Service-System for Siemens phone system, the OpenScape 3.0. Seems that there is really some XMPP around right now.

    --
    .sig: Sique *sigh*
  2. Re:Am I too late... by Bogtha · · Score: 4, Informative

    A lot of people pronounce it "Jabber". The name "XMPP" arose when they were moving it through the IETF standardisation process.

    --
    Bogtha Bogtha Bogtha
  3. A brief explanation by samael · · Score: 3, Informative

    XMPP is what Jabber is based on. Jabber, for those that don't know, is a chat protocol. It's used by Google Chat, Livejournal Chat, and vast numbers of other chat systems - all of which are interoperable, because built in to the underlying system is the idea of message passing from server to server.

    If someone connected to a gmail jabber server sends a message to andrewducker@livejournal.com then google chat automatically connects to the livejournal jabber server and passes the message over.

    You can see how this could be extended to allow federations of application servers to communicate. Heck, you could reimplement email over this without massive difficulty.

    1. Re:A brief explanation by wertigon · · Score: 2, Informative

      Actually... Yes you can. There's this newfangled thing called the <data> element. But, it got pushed into a XEP like two months ago, so client support is rather limited, and it's only good for 8k for now... :(

      If people starts using this much however, I can't see why the XMPP server wouldn't be able to store the file temporarily and then push it once the user is online. But, I think this is better for an xmpp/http hybrid.

      --
      systemd is not an init system. It's a GNU replacement.
  4. Re:Performance by mremond · · Score: 3, Informative

    Actually, ejabberd is probably one of the highest performing XMPP server. It can supports tens of thousands of simultaneous connections on a single node and can work in a cluster. That's for a single domain, but with distribution as described in the protocol, each web site is his own domain. As you see, the scalability is handled. And on the raw message performance, it can handle hundreds if not thousands of messages per second in a cluster.

    --
    Mickael Remond http://www.process-one.net/
  5. Re:Am I too late... by TheRaven64 · · Score: 4, Informative

    Speaking as someone whose frustrated with having to implement two code paths in a Jabber client - one for the standard and one for the compatibility with Pidgin - I'd be very happy for Pidgin users to stop connecting to the XMPP network.

    --
    I am TheRaven on Soylent News
  6. Re:XMPP as a silver bullet? by rindeee · · Score: 4, Informative

    Bzzzt...wrong. All IM in Gov/DoD is IRC based but moving to Jabber. This is public knowledge (not even U/FOUO). Lot's of commercial development going on around this if you Google around a bit. Some really cool stuff in the pipeline, especially where XMPP is concerned.

  7. Re:Just what we (didn't) need !! by Enleth · · Score: 4, Informative

    Have you ever actually SEEN this protocol in action, its specifications, functionality and security features? This is one of the few cases where XML is actually a proper, well-implemented technology suitable for the job. I've been using Jabber as my IM of choice for a few years already, and XMPP as a communication platform for a few non-IM projects and all I can say is that the people involved in its design got it right and created a really flexible, adaptable and secure technology.

    Yeah, I know, this is Slashdot, where people like to spew completely uninformed pseudo-opinions, but this one is just too obvious. Well, happy IMing on unencrypted, stone-age, propertiary networks that force-feed you with ads and censor your messages, if that's what you want.

    --
    This is Slashdot. Common sense is futile. You will be modded down.
  8. Re:XMPP is a PITA by Enleth · · Score: 5, Informative

    That's just this library. For example, the Smack API for Java is literally five lines of actual code to connect, announce the presence, load the roster and send a message. PyXMPP is quite low-level for a Python network library. Try XMPPy, much easier to work with if you need Python.

    --
    This is Slashdot. Common sense is futile. You will be modded down.
  9. Re:XMPP is a PITA by AceJohnny · · Score: 2, Informative

    Didn't understand how to use the library? The problem is, there are a ton of XMPP libraries out there for every language (the one you used is for javascript) and there must be an unwritten agreement that it's no use for each library to re-explain the workings of XMPP...

    The best way, I'm afraid, is to read the RFCs (mostly 3920 and 3921. There are updated, clearer drafts, 3920bis and 3921bis, a link away from that page) and XEPs (XMPP Extension Proposal). There's also a book, but I heard that it's a bit outdated.

    --
    Misleading titles? Inflammatory blurbs? Keep in mind that Slashdot is a tabloid.
  10. Re:XMPP is a PITA by Jerf · · Score: 2, Informative
    There are a lot of very crappy (IMHO) libraries that do nothing but wrap the XML and present it to you in some form, leaving it entirely up to you to do, well, everything else.

    If you are enough of a programmer to deal with Jabber, which means being comfortable with XML, this is by far the easiest bit of working with Jabber. All the tricky bits like connecting and stuff are the harder bits worth writing a library for.

    Look for a library that handles:
    • Connecting to a server, with encryption (SSL or STARTTLS upgrade), with just the JID, password, and an optional hostname/ip override
    • Some decent story about how to create an account if login fails
    • Callbacks for message and presence that A: Give you the relevant information about the presence packets and messages in a nice format but also B: gives you direct access to the full XML stanza in case you want to pull other stuff out of it. (In fact, you should always have the XML in some parsed format.)
    • The ability to register callbacks for IQ stuff so that you aren't implementing an event loop yourself. (Bonus points if it integrates with the event loop of your GUI toolkit.) Closures in your language are awesome here.
    • Some code in the library to work with rosters.
    • Some way to extend the library in a principled manner to support other XMPP functionality, since no library is going to have everything.
    That's really a bare minimum, IMHO.

    Libraries that just give me parsed XML hunks piss me off, but unfortunately this seems to be the standard definition of "an XMPP library". Connecting to a known account and sending a message to a known JID ought to be a two-four line task at most.
  11. Re:buzzwords are my favorite by Anonymous Coward · · Score: 1, Informative

    ...except that you're ignoring the fact that "Internet" and "Web" are proper nouns, and they stand for discrete ideas. The Internet is the realization of TCP/IP. The Web is a subset of protocols served over the Internet. You use a Web browser, not an Internet browser. The Internet is a worldwide, publicly accessible series of interconnected computer networks that transmit data by packet switching using the standard Internet Protocol (IP). It was created by the US Department of Defense's DARPA agency. World Wide Web: The World Wide Web (commonly shortened to the Web) is a system of interlinked hypertext documents accessed via the Internet. It was created by Tim Berners-Lee.

  12. Re:XMPP is a PITA by Just+Some+Guy · · Score: 2, Informative

    We use jabber.py. It hasn't changed in years, but our needs are pretty simple and it meets all of them easily. For example

    import jabber

    node = jabber.Message()
    node.setSubject('Getting hungry')
    node.setBody('Hi there. Lunch?')

    server = jabber.Client('ourserver.example.com')
    server.connect()
    server.auth('me', 'mypassword', 'Python Jabber client')

    for dest in recipients: node.setTo(dest); server.send(node)
    server.disconnect()

    Honestly, I don't know how you could make that a whole lot simpler.

    --
    Dewey, what part of this looks like authorities should be involved?
  13. Re:buzzwords are my favorite by Niten · · Score: 3, Informative

    Minus two points for not managing to cram the phrases "AJAX" or "Web 2.0" into this writeup.

    Huh?

    • AJAX = Any technique for combining the XmlHTTPRequest object (or sometimes just an iframe) with JavaScript and XML methodologies to create a more dynamic web page = buzzword
    • Web 2.0 = Anything with a smooth logo, whose name is missing some vowels, and that looks like it might possibly be using AJAX methodologies = buzzword
    • XMPP = A very specific set of protocols, currently being formalized by the IETF, that form the basis for an extensible messaging or presence system and happen to be based on XML = not a buzzword