Slashdot Mirror


IETF Publishes Jabber/XMPP RFCs

stpeter writes "The Internet Engineering Task Force has published the XMPP specifications as RFCs. These documents formalize the core protocols developed within the Jabber open-source community, and publication as RFCs represents a major milestone in acceptance of Jabber technologies. Read on for details."

248 comments

  1. Market Penetration by The+Snowman · · Score: 4, Insightful

    Good, now hopefully someone with some market clout will pick this up and market an IM program using these protocols to the masses. Jabber may be cool, but it is no MSN or AIM. Both of those have immense market penetration. I have high hopes for this protocol, hopefully someone like IBM will make this happen.

    --
    24 beers in a case, 24 hours in a day. Coincidence? I think not!
    1. Re:Market Penetration by LnxAddct · · Score: 2, Interesting

      or Google? :) I really hope they come out with a GIM.
      -Steve

    2. Re:Market Penetration by mo · · Score: 5, Interesting

      Actually, Jabber has found a very good niche doing behind the scenes work in lots of commercial software. For example, we were using it in my last job writing console video games. We're also looking to use it in a current voip product at my new company. The thing is, most of this work uses LGPL/BSD licensed libraries like iksemel so you'd never know that the underlying protocol driving that video game chat lobby is jabber unless you ran tcpdump on it.

    3. Re:Market Penetration by The+Snowman · · Score: 4, Interesting

      Google makes a great search engine, I do appreciate their Usenet archives, but they do not have the Midas touch. If they made a GIM I am sure they would have a hardcore following, probably the same people using orkut and GMail, but I doubt they could market it to enough people.

      Jabber is much more than a simple IM protocol, but that is where it needs to take root. I doubt even Google can see beyond IM here, but someone needs to (hence the IBM reference). A wise man (the Linux nerd who converted me) once told me (while drunk) that "Perl is the glue that holds Unix together." Jabber could be the glue that holds networks together at the application level (I am not drunk but I wish I was). Cross-platform, standards based (XML), extensible, versatile...

      --
      24 beers in a case, 24 hours in a day. Coincidence? I think not!
    4. Re:Market Penetration by Short+Circuit · · Score: 0, Offtopic

      GMail is cool. Dunno about Orkut, though.

    5. Re:Market Penetration by Sheepdot · · Score: 5, Insightful

      Actually, the ease of use and portability is what will eventually make Jabber the new thing. Don't get me wrong, Yahoo, AIM, and Microsoft's alternative have a lot more functionality, but that same functionality can be easily integrated into Jabber. In fact, many have done so already.

    6. Re:Market Penetration by InfiniteWisdom · · Score: 4, Funny

      He did say market clout not a small, but vocal group of followers :)

    7. Re:Market Penetration by vr · · Score: 4, Informative

      If they made a GIM I am sure they would have a hardcore following, probably the same people using orkut and GMail, but I doubt they could market it to enough people.
      It's Google. Sure they could.

      And the cool thing is that with IE, Mozilla, _and_ Opera (in the upcoming 7.60 release) supporting XMLHTTPRequest, they could make a web-based IM, without using such nasty stuff as Java or Flash.

    8. Re:Market Penetration by jeif1k · · Score: 2, Interesting

      The thing is, most of this work uses LGPL/BSD licensed libraries like iksemel so you'd never know that the underlying protocol driving that video game chat lobby is jabber unless you ran tcpdump on it.

      In both cases, you are required to acknowledge inclusion of the software. Furthermore, in the case of the LGPL, you are required to offer redistribution of the library to your users (which means that they must know that you are using it).

      In fact, if you want to behave decently, you should (1) acknowledge use of the library in the "About" box, in the game's credits, and in the printed documentation, (2) include the library source on the CD (no reason not to), and (3) let the developers know about your use of their code. This isn't strictly speaking legally required, but it shows that you are a good citizen, and it helps ensure that there will be improvements for you to include in the next game.

    9. Re:Market Penetration by Schreckgestalt · · Score: 2, Interesting
      hopefully someone like IBM will make this happen

      HP do that for us. Not only are they sponsoring various Jabber-related projects, but they also use Jabber for internal IM. I can reach any HP employee using the internal Jabber system (Yes, I work at HP).

    10. Re:Market Penetration by Trejkaz · · Score: 3, Insightful

      The other thing people are always forgetting about XMPP is that it's not just an IM protocol. If someone devises a killer app for it which isn't IM, then we might find everyone using XMPP whether they know it or not. :-)

      --
      Karma: It's all a bunch of tree-huggin' hippy crap!
    11. Re:Market Penetration by helmutjd · · Score: 4, Informative

      Already been done without Java or Flash. (demo).

      Disclaimer: I'm one of the developers for this product.

    12. Re:Market Penetration by jonwil · · Score: 1

      Dont know about the "put the source on the CD" thing if its a console game...

    13. Re:Market Penetration by Anonymous Coward · · Score: 0

      It would be really cool to use jabber for a computer game metaserver.

    14. Re:Market Penetration by chrish · · Score: 1

      How about hosting a Google Jabber server (being a standard now and all) instead of coming up with yet another proprietary IM system?

      I'd happily switch off Messenger in favour of a unifying protocol. I'd use a unifying client (like Trillian or Gaim) but I don't want to create/maintain accounts on 3-4 different networks. And I hated the UI in both of those when I gave them a try.

      --
      - chrish
    15. Re:Market Penetration by JFitzsimmons · · Score: 1

      GPL code doesn't need to be included in the same medium as the binary machine code.

      GPL Section 3:
      3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.)

      (all formatting mine)

      As you can see, even for a commercial distribution, you only need to provide a means for interested parties to contact you so they may obtain the source from you, for a fee that covers only media and shipping. You don't need to put the code on the CD, especially if it were a console game, where that would just be a waste of space and inaccessable in any meaningful way.

      --
      Beware he who would deny you access to information, for in his heart he dreams himself your master. -Anonymous
    16. Re:Market Penetration by jeif1k · · Score: 1

      GPL code doesn't need to be included in the same medium as the binary machine code.

      Yes, and I was careful to make that distinction. Go back and read my posting. Putting source on the medium is just a "good citizen" kind of thing to do and is usually easy. It's also less hassle.

      My point was that, under either license, you cannot hide the fact that you are using BSD or LGPL'ed code, as the original poster suggested.

    17. Re:Market Penetration by Anonymous Coward · · Score: 0

      I see! So iTunes and the iPod and QuickTime are what exactly?

      Think about this scenario then. Using this tech, Apple develops iChat into a cross-platform chat client that allows people to stream their iTunes playlists to their buddies.

      How much clout were we talking about again?

    18. Re:Market Penetration by Anonymous Coward · · Score: 0

      Warning: fopen(/tmp/cache.log): failed to open stream: Permission denied in /www/phplib/directemplate/class_Template.php on line 1308

      Warning: fwrite(): supplied argument is not a valid stream resource in /www/phplib/directemplate/class_Template.php on line 1313

      Warning: fclose(): supplied argument is not a valid stream resource in /www/phplib/directemplate/class_Template.php on line 1314

    19. Re:Market Penetration by pixelcort · · Score: 2, Informative

      I'm trying to recreate the entire web through XMPP:

      nuWeb.org

      Yeah, using a IM standard and some P2P apps. Unlikely, but solves polling and distribution problems.

      I may be out of my mind, but HTTP sucks.

      --
      http://pixelcort.com/
    20. Re:Market Penetration by mattyrobinson69 · · Score: 2, Interesting

      How about this

    21. Re:Market Penetration by vr · · Score: 1

      Neat. Have you tested it with Opera 7.60p1?

  2. This is good by Anonymous Coward · · Score: 0

    I for one welcome our new Jabber/XMPP RPC overlords!

  3. Re:wooo by kgbspy · · Score: 5, Insightful

    What chance one of the big four (aim/icq/msn/yahoo) adopting these standards? Sorry, I did say standards, so you can discount msn. But if any of the other three did, and there was a greater level of interchangability between those, and jabber because of it, the takeup would be much higher.

    But that's the thing about standards - unfortunately it's always the big players that seem to set the ones that have any major sway.

    --
    ~
    ~
    ~
    -- INSERT --
  4. So how does jabber work then? by B747SP · · Score: 5, Interesting
    OK, I know, I should RTFRFC, but in a nutshell maybe? I tinkered with jabber for a bit, couldn't get my head around how it worked in a big-picture sense (servers, networks thereof, how to find a server with lots of like-minded folks on it, etc, etc). I'm ashamed to say that I've always ended up traipsing back to IRC/ICQ/Yahoo despite that my client and my other client both speak jabber fluently...

    Does someone wanna give a quick HOWTO and/or a pointer to a suitably high-level explanation? Thanks.

    --
    I find your ideas intriguing and I wish to subscribe to your newsletter.
    1. Re:So how does jabber work then? by jcr · · Score: 1

      Who modded the parent a troll? It's a perfectly legitimate, on-topic question.

      -jcr

      --
      The only title of honor that a tyrant can grant is "Enemy of the State."
    2. Re:So how does jabber work then? by Anonymous Coward · · Score: 0

      Parent is not a troll you stupid fascist mods "any criticism is a troll"

      these are the same people who are like "command line install is a easy" - yeah it's possible, people can do it, but why can't it be easier?
      Why is is *bad* that things be made easy?

      It goes back to the old saying; Yeah, everyone should be allowed to recompile their kernel, but bobody should *have* to do it.

      It's sad I have to post AC in fear of the slashdot police.

    3. Re:So how does jabber work then? by Hawke666 · · Score: 5, Informative

      In a nutshell, it's pretty similar to e-mail, only without indirect routing between servers, and (partly therefore) less store-and-forward, and definitely less latency. It also includes presence information. See also http://www.jabber.org/oscon/2004/jabber-bootcamp.p pt
      and http://en.wikipedia.org/wiki/Jabber

    4. Re:So how does jabber work then? by Hawke666 · · Score: 2, Informative
    5. Re:So how does jabber work then? by mindstrm · · Score: 5, Informative

      The glossed over version:

      jabber is multi-site, like mail. You don't need a server with like-minded people... all jabber users globally can chat with each other (unless, you know, you set up a private jabber server, etc.. same with email)

      The protocol is open and extensible, and supports the idea of extended transports.. so the jabber server can act as a gateway for msn/icq/aol/foo/bar/baz. My jabber server deals with all of this... my yahoo/aim/icq/msn contacts are all stored on my jabber server.. I just sign in with whatever jabber client I want, and it all just works.

    6. Re:So how does jabber work then? by Feztaa · · Score: 1

      I'm not sure exactly what you're asking when you want a "HOWTO"... are you trying to set up a server?

      Because if you just want to figure out how to use jabber as a client, just use gaim (or any other multi-protocol client), and then register a jabber account at jabber.org, and start looking for other people with jabber accounts. Not sure what you mean by "a server with lots of like-minded folks on it", any jabber server can talk to any other jabber server.

      Jabber is basically the same as email, except that it uses XML instead of RFC822, and it's much, much faster.

    7. Re:So how does jabber work then? by Anonymous Coward · · Score: 0

      Parent is not a troll you stupid fascist mods "any criticism is a troll"

      MOD PARENT -1 TROLL!! for criticism.

    8. Re:So how does jabber work then? by Anonymous Coward · · Score: 0

      Many years ago Jabber had some problems with transports that weren't up to date. How are things now? Are the transports stable?

    9. Re:So how does jabber work then? by mindstrm · · Score: 1

      I don't know about the community at large.. in my case, they have been very stable. I think I've updated maybe one of the transports in the last six months due to protocol changes for MSN.. I'm not even sure about that (I believe apt took care of it).

      I use them basically 24/7 during that time.

    10. Re:So how does jabber work then? by outcast36 · · Score: 1

      great explanation, but I wanted to highlight one part

      ...so the jabber server can act as a gateway for msn/icq/aol/foo/bar/baz. ....

      cheap XML based EDI??? Possible replacement for MS BizServer ???

  5. took long enough by js7a · · Score: 3, Insightful

    I remember when IETF drafts took less than six years to make it through to RFC status.

    1. Re:took long enough by Trejkaz · · Score: 1

      Hopefully this means it's better thought out than some of the previous efforts. Half joking, and half not. ;-)

      --
      Karma: It's all a bunch of tree-huggin' hippy crap!
    2. Re:took long enough by Anonymous Coward · · Score: 0

      The XMPP BoF session (the precurser to the IETF working group on jabber) was at 54th IETF meeting (Yokohama, Japan) in July 2002. Two years isn't particularly quick, but it's not taken six years...

    3. Re:took long enough by js7a · · Score: 1
      "The Jabber/XMPP protocols have evolved through an open design process within the Jabber and broader Internet communities since 1999." -- www.jabber.org/protocol

      Sorry, five years, my mistake.

  6. That's cool and stuff, but by melted · · Score: 1, Troll

    It's WAY too late. For me the main feature in an IM client these days is not whether it's decentralized or XML based. It's whether or not it supports audio and video conferencing. I'm saving hundreds of dollars in long distance (including international) charges by using MSN Messenger. I can not migrate to a client that doesn't support audioconferencing at the very least.

    1. Re:That's cool and stuff, but by Anonymous Coward · · Score: 5, Informative

      It's not a IM client, it's a protocol that can be easily extended to do just about anything. I'm pretty sure there's something out there that can use video/audio conferencing, if not, then one will soon appear if there's enough demand.

    2. Re:That's cool and stuff, but by mindstrm · · Score: 1

      Maybe not for you.. for the majority of people, it's still text messaging, plain and simple.

      You can save just as much in long distance with good phone-integrated voip services...

    3. Re:That's cool and stuff, but by spikerini · · Score: 3, Informative

      Don't worry. Audio/Video chat is currently being implemented in the Psi jabber client using Jabber/Helix. It shouldn't take too long before it's finished.

    4. Re:That's cool and stuff, but by JThundley · · Score: 3, Funny

      And you could be saving hundreds of dollars on car insurance by switching to voip! I mean! FUCK!

    5. Re:That's cool and stuff, but by Henk+Poley · · Score: 1

      Please call it what it is then. It's a message passing protocol.

      It could be (and is) used in about anything that needs to flip messages over to something else without thinking about how (addressable IP numbers, ports, etc.) and where (mobile systems, systems behind a firewall).

    6. Re:That's cool and stuff, but by Anonymous Coward · · Score: 0
      I looked at Jabber a few years ago, and there was a lot of nice protocols, but sadly each of the protocols was only implemented in a few clients. This meant that I had to choose a different Jabber clients for each task.

      Has this changed?

    7. Re:That's cool and stuff, but by am+2k · · Score: 1

      Actually, iChat does exactly that when you're using VoIP via Rendezvous (iChat uses XMPP when talking to each other via the local network).

    8. Re:That's cool and stuff, but by Anonymous Coward · · Score: 0

      Damn, I forgot to rant. Now I get no answers :)

    9. Re:That's cool and stuff, but by Anonymous Coward · · Score: 0

      Audio/Video chat is currently being implemented

      Good because then as more and more people start using it I won't need to get the "Approved by The Man" VoIP service with "enhanced 911 service".

  7. Commoditisation by Colin+Smith · · Score: 2, Insightful

    "What chance one of the big four (aim/icq/msn/yahoo) adopting these standards?"

    Immediately? Very slim.

    However, like almost all of the other standardised protocols they will eventually have to be able to interoperate to survive. In the long term they will adopt a standard protocol or they will vanish.

    --
    Deleted
  8. Propogation by Guidlib · · Score: 4, Interesting

    I don't think Jabber/XMPP will truly propogate until every ISP hands you out an IM address on their XMPP compliant server along with the email they hand out. Hopefully this standardisation process will go a long way to see this happening.

    1. Re:Propogation by Anonymous Coward · · Score: 0

      The point is that your email address is your Jabber address.

    2. Re:Propogation by Anonymous Coward · · Score: 0

      Not quite an ISP, but they're getting close...

    3. Re:Propogation by Anonymous Coward · · Score: 0

      Actually It would be nice to have a mail to Jabber gateway, but i don't think that they have done this yet.

  9. From an ex-Jabber Inc. guy by Erbo · · Score: 5, Insightful
    I know that this represents the culmination of many years of effort on the part of many people, both at Jabber Inc. and in the open-source community, especially Peter Saint-Andre, Jabber architect and evangelist extraordinaire. And, of course, without Jeremie Miller, none of this would even exist.

    To all my former colleagues: this is an historic day for Jabber, for instant messaging, and for the Internet. Congratulations!

    Erbo - Former employee, Jabber Inc., Denver, CO

    --
    Be who you are...and be it in style!
    1. Re:From an ex-Jabber Inc. guy by mabinogi · · Score: 1

      I don't get it..

      is someone just wandering around randomly moderating things troll?

      This is the second completely on topic and reasonable post I've seen marked troll...

      Has moderation lowered to the point where you just flip a coin these days?

      --
      Advanced users are users too!
    2. Re:From an ex-Jabber Inc. guy by B747SP · · Score: 1
      I don't get it..
      is someone just wandering around randomly moderating things troll?

      I wouldn't worry too much about it... he's only got three mod points left... :-)

      --
      I find your ideas intriguing and I wish to subscribe to your newsletter.
    3. Re:From an ex-Jabber Inc. guy by erick99 · · Score: 0, Offtopic

      There seems to be more modding down then up lately or so it seems. I don't get mod points very often so I have, so far, only used my points to mod people up. When I do have mod points and I am looking at posts for a new topic, the "mod downs" come so fast that it makes my head spin. Anyway, it's a lot more fun to look for posts that really contribute something to a topic and mod those up then to find the "trolls," "off-topics," "flamebaits," etc.

      --
      http://www.busyweather.com/
    4. Re:From an ex-Jabber Inc. guy by Erbo · · Score: 1

      Good strategy. I don't mod down very often myself; most frequently, I look for posts scored 3 that are deserving of being tipped "over the edge" to make them always-visible, and give them the little push they need.

      --
      Be who you are...and be it in style!
    5. Re:From an ex-Jabber Inc. guy by Feztaa · · Score: 1

      metamods must be doing their jobs, because this is the second time I've seen somebody complain about a +5 post being modded as a troll. Relax.

    6. Re:From an ex-Jabber Inc. guy by Anonymous Coward · · Score: 0

      not even meta mods - just regular moderating.
      but it's a shame that they have to waste the extra points to upmod something that some twerp has moderated down for no particular reason.

  10. How about G-Chat by StormyWeather · · Score: 1, Redundant

    Do any of you think that google could with financial reason build a chat program using Jabber? It would be kind of cool to have a google chat program, and gmail client integrated into plugins in Mozilla. I just don't know if Google would want to be another blip on the chat program landscape. How would they make money? I don't know if I would want them scanning my chat for text adds. Although I have a gmail account and I guess I don't mind it for that, so why not :).

    1. Re:How about G-Chat by BicycloHexane · · Score: 2, Funny

      Real Time Ads! Next time I cyber I will get distracted by hardcore pr0n text ads!

  11. Re:Yay! by DrEasy · · Score: 5, Interesting

    Well, nobody in this thread seems to care so far, but the question is indeed valid: does this mean that Jabber just beat SIMPLE? How will the IETF accommodate these two competing standards?

    --
    "In our tactical decisions, we are operating contrary to our strategic interest."
  12. what has happened to the ietf lately? by Triumph+The+Insult+C · · Score: 1

    i thought their mo was to standardize on technology that is owned by a company that encumbers said technology with unfree terms? say, like vrrp and sender-id?

    i mean, i think it's good they're going back to making standards with nice licenses, but was there a change in personnel there recently?

    --
    vodka, straight up, thank you!
  13. Needed... bad by SnprBoB86 · · Score: 2, Informative

    Does anyone here actually use the official AIM?

    It gets significantly more bloated and less usable with each version. I have stopped upgrading it and only continue to use it because coupled with Dead AIM it is bareable and neccessary as everyone I know uses AIM for IMs. I understand GAIM or Trillian will also connect with AIM, but my point is that AOL is butchering what was once a simple and elequent program.

    --
    http://brandonbloom.name
    1. Re:Needed... bad by runderwo · · Score: 1
      AOL's pretty good at that sort of thing. After all, look what happened to ICQ after they bought it in 1998.

    2. Re:Needed... bad by irc.goatse.cx+troll · · Score: 1

      The problem with any third party client is directims are more likely to crash you than they are to work. Sure, gaim can usually get a connection going, but once someone pastes a bitmap or a large jpeg or whatever, there goes your client.

      WinAIM breaks compatability with itself pretty much every version, but atleast if it fails it fails gracefully.

      --
      Pain lasts, kid. Its how you know you're alive. Sometimes I think this growing up thing is just pain management-TheMaxx
    3. Re:Needed... bad by Anonymous Coward · · Score: 0

      I've been using Miranda (with ICQ, not AIM though) for about a year now, and it has not crashed ONCE. A better track record than the official client, that's for sure.

    4. Re:Needed... bad by irc.goatse.cx+troll · · Score: 1

      If you're just normally imming, sure. The problems i mentioned were with direct ims(a feature limited to AIM, afaik)

      --
      Pain lasts, kid. Its how you know you're alive. Sometimes I think this growing up thing is just pain management-TheMaxx
    5. Re:Needed... bad by jshriverWVU · · Score: 1

      I agree, personally I like iChat and hear Trillian is really good as well.

    6. Re:Needed... bad by Rinikusu · · Score: 1

      I use it. mainly because I was having connectivity issues in various hotels with iChat, so i moved to the official AIM client and no longer have those issues.

      I also use the official client on windows. I like it better than Trillian, which always felt "odd" to me.

      GAIM is the only game in town for Linux worth mentioning that I've found, though.

      --
      If you were me, you'd be good lookin'. - six string samurai
    7. Re:Needed... bad by Anonymous Coward · · Score: 0

      >> AOL is butchering what was once a simple and elequent program.

      OMG AIM talks!!! What does it say? KILL ME KILL ME KILL ME over and over again?

      Voices In Head: Your just being pedantic.

      Alpha Male Geek responsibilites ya know.

  14. Industry Support by Guidlib · · Score: 2, Interesting

    It's interesting to note that Apple will be supporting this protocol. Perhaps that will be the start of some big industry backing.

    1. Re:Industry Support by Erbo · · Score: 2, Insightful

      Actually, Apple has been supporting this protocol, in their iChat software. It uses Rendezvous to get two nodes connected, but the message traffic between them is XMPP.

      --
      Be who you are...and be it in style!
  15. google by Anonymous Coward · · Score: 1, Insightful

    Would be a great business proposition for google or novell or redhat to follow up on.... A novell branded IM client ... businesses would like that.

    1. Re:google by JFitzsimmons · · Score: 1

      Well, if you think about it, it would be good for everyone. If your company bought Novell's new 'XMPP Solution', it interestingly enough can communicate just fine with RedHat's, and Google's, and... Microsoft's? That's how email pretty much works these days (even though I get the impression that it is MS' fault we have HTML email...).

      --
      Beware he who would deny you access to information, for in his heart he dreams himself your master. -Anonymous
  16. Open Source Reference Implementation by augustz · · Score: 4, Insightful

    What Jabber struggles with is a high quality open source reference server implementation that can serve as the center of gravity for server side jabber development.

    Whether it is hgiher level C# / Java or lowerlevel C++ / C there isn't (yet) a body of software with a lot of developer momentum behind it.

    Jive just released some of their stuff, will be interesting to see how that unwinds.

    If Jabber could get to that gravity producing mass on an open source implementation, I think you'd start to see Jabber expand into reliable messaging, higher volume messaging, presense, communication, BPM and lots of others apps.

    1. Re:Open Source Reference Implementation by ari_j · · Score: 2, Informative

      One problem I had when using Jabber for my honors thesis project was that it doesn't make fully-standard use of XML. The way the protocol assumes namespaces work is incorrect, and a fully-compliant XML parser will not work with Jabber, in my experience.

    2. Re:Open Source Reference Implementation by Anonymous Coward · · Score: 0

      The soon to be Open-Source Jive Messenger XMPP server is at http://www.jivesoftware.org

    3. Re:Open Source Reference Implementation by Anonymous Coward · · Score: 0

      Most XMPP server implementions don't have *full* namespace support, but there are no problems going the other way around. An XMPP stream has no problem being parsed by a compliant XML parser.

    4. Re:Open Source Reference Implementation by borud · · Score: 1
      Indeed, it is my observation as well that Jabber is somewhat of bastard protocol in that it uses XML, then doesn't want to be compliant with the spec and then fails to add needed mechanisms for making implementation easier.

      As mentioned earlier, I looked at what is today known as XMPP a few years ago, and decided it wasn't really worth the hassle because the protocol didn't really solve the problem at hand well.

      Jabber has some good design decisions; the sloppy use of XML and its failure to identify important aspects of protocol design are not among them.

      I think a revised spec is called for. Jabber has not built up sufficient industrial momentum for it to have reached a point of no return and if they don't fix the issues now they will never be fixed.

      A more easily implementable protocol will help adoption, it will encourage more and better implementations and it will make the threshold for inventing your own protocol higher.

      Right now: I would not use XMPP.

    5. Re:Open Source Reference Implementation by Anonymous Coward · · Score: 0

      Yes. I think XMPP is a lot more than Instant Messaging.

      We think that for example XMPP is a very valid standard to develop EAI (Enterprise Application Integration platform. This is what we are doing in the J-EAI project and we thought that XMPP should become the based standard for EAI and ESB platform as this is the only true standard that does exist. Some implementation are based on JMS, which is not a standard in my opinion as a Java only implementation (Yes there are bridges but this is a kludge)

      See J-EAI Objectweb presentation for more details on features.

      --
      Mickaël Rémond
      Erlang-projects

    6. Re:Open Source Reference Implementation by ari_j · · Score: 2, Informative

      That's a false statement. You have to shut off any kind of even minimal validation for it to parse. The assumptions XMPP makes about namespaces are false.

      The Jabber protocol isn't bad. It's got its quirks, but overall it's okay. The problem is that it relies on a broken version of XML to be useful. Anyone who's written a validating XML parser with the intent of using it to speak Jabber (as I did 3 years ago) can tell you just how bad it is. Things like treating "xmlns" as a regular attribute instead of a namespace declaration, not including subnodes in the correct namespace, barfing if you send a subnode with the correct namespace specified, etc.

      It's for that reason that my relationship with Jabber is love-hate. I love the "presence-aware XML router" nature of it, but I hate that it operates on bad assumptions about XML.

    7. Re:Open Source Reference Implementation by infiniti99 · · Score: 1

      These are implementation problems, not protocol problems. For example, the 'xmlns' should NOT be treated like an attribute, even though some implementations do, like jabberd (as well as Psi (*hangs head in shame*)). Can you point out anything that is wrong in the actual RFC 3920 specification?

  17. GJabber by shodson · · Score: 1

    I think Google should, and perhaps may, use Jabber for an IM client. I'm sure they are working on an IM client/network...

    1. Re:GJabber by timealterer · · Score: 4, Informative

      Right from the Google corporate philosophy: "Google does search. Google does not do horoscopes, financial advice or chat."

      While it'd be wonderful for Google to come along in its shining armour and rescue us from the oppression of closed IM protocols, I think the fact that not doing chat is right in their official philosophy is worth noting. Of course Apple's iChat will have support for it, in OS X 10.4, and others may well follow... just maybe not Google.

      --
      - Allen Pike
      Altering time, one time at a time.
    2. Re:GJabber by Feztaa · · Score: 1

      I dunno, they could adopt chat and then focus on searching the chat logs... just like they did for email. I never delete my gaim logs, but hell if I can ever find anything in it (grep only goes so far).

    3. Re:GJabber by Trejkaz · · Score: 1

      From that philosphy, Google does not do email either. Oh, wait a second...

      --
      Karma: It's all a bunch of tree-huggin' hippy crap!
    4. Re:GJabber by Anonymous Coward · · Score: 0

      "Google does search. Google does not do horoscopes, financial advice or chat."

      Frankly, I'd rather have a Google IM client (with a Google searchable archive of logs) than a broken social networking service.

      Orkut was mentioned in Google's pre-IPO presentation to prospective investors. Google is obviously proud enough of it to showcase it to investors, but from a usability standpoint it is absolute garbage.

    5. Re:GJabber by hey · · Score: 1
      Sure, there are nice ways to improve the chat logs.
      Right now they are just:

      User: stuff
      User2: stuff

      There is no idea of a conversation. Also they might be a 2 day gap between items in the log and this isn't shown graphically. A smart searcher could see who started the conversation. How long it was. Who you talk to most (yukes privacy). Of course, understand emoticons and other short forms. Would be cool and useful. CU.
  18. Office Use by samurai182 · · Score: 1

    From what I know of using jabber, you connect to a server and have nicks and users within that server chatting with each other.

    This sounds like a perfect implementation for the workplace. I know that businesses have now started to implement messaging programs for their internal networks. With jabber now "official", could we end up seeing this used as a productivity tool? I don't see competition with AIM/ICQ or MSN happening soon.

    For those MSN bashers out there, I happen to know many people who use MSN that live outside the US. Don't know if this is a standard thing, but MSN does seem to be a force to be reckoned with as well.

    1. Re:Office Use by Erbo · · Score: 1
      I know that businesses have now started to implement messaging programs for their internal networks.

      Uh-huh. At the place I work now, we implemented this not long ago. (Ironically, I had to help one of the network guys fix up the jabberd config file so everything worked.) With IM plus a "chat room" for the company, it saves a lot of time E-mailing, telephoning, or walking around.

      --
      Be who you are...and be it in style!
    2. Re:Office Use by mindstrm · · Score: 2, Interesting

      Not quite.. jabber is multi-site too.. moreso than any of teh other IM clients which require a central server farm to work.

      user@foo.com can message user@bar.com. you can set up your own jabber server and join the global jabber community.

      it works like email.. DNS looks up the domain, finds the appropriate record for the server to use, and then delivers.
      Ultimately, all the other IM systems (msn, aim, etc) are centralized... we rely on one provider. Jabber is completely internet-scale.. infinitely more scalable than the others.. that's one large long-term advantage.

  19. Re:wooo by mrchaotica · · Score: 1

    Well, Apple's putting it in Tiger, so at least there's some hope it could go the way of USB...

    BTW, AIM and ICQ are the same thing now.

    --

    "[Regarding the 'cloud,'] ownership was what made America different than Russia." -- Woz

  20. Gim Here we come. Powered by Jabber. by jeffskyrunner · · Score: 1

    I personally can not wait until we get off the AIM standard. 90% of my friends use AIM. It is bloated, outdated, and down right obtrusive. If people switch to an open source protocol, I think that companies would make more, even though it means giving up their proprietary protocols. I use Trillian, as I hate how AIM treats me. I do not want bright ads flashing, or a "AOL TODAY" pop up. Is Jabber the Linux of Instant Messaging? Should it become? Everybody has their own 'distro' but the core is the same...

    --
    Jeff
  21. Not just instant messaging by jgarzik · · Score: 5, Informative

    It's worth pointing out that XMPP is not just for instant messaging.

    XMPP standardizes a method for exchanging structured information streams between autonomous entities -- by they human or automated agent.

    Thus, when you (as an engineer) need to set up a network of programs that all communicate with each other, you don't have to roll your own protocol, XMPP can do it for you.

    Although IRC "botnets" have existed for quite some time, they are typically very primitive and exist mostly in the realm of script kiddies. Further, IRC is unformatted, unstructured, un-standardized text, making it very difficult to parse reliably.

    XMPP allows networks programs to communicate with each other in a "native" language -- data structures -- rather than attempting to glean information from a line of IRC ASCII.

    I'm currently using XMPP for several local applications: backup agents communicating with each other, sending and receiving mon monitors and alerts, an improved (RSS-like) syndication system, and more.

    This ain't your grandfather's IM protocol.

    1. Re:Not just instant messaging by jgarzik · · Score: 3, Insightful

      To elaborate a bit further...

      The reason why XML is so darned handy is that is captures the essence of what makes a computer useful: data structures. XML standardizes parsing (never write a text parser again), leaving only the task of grok'ing data structures to the programmer.

      XMPP takes that a step further: a standardized way two programs may exchange data structures.

      To me, this has all sorts of useful implications, particularly in enterprise installations. Now engineers can stop rolling their own TCP protocols just to get two custom applications to communicate with each other; they can now use XMPP, and exchange data structures.

    2. Re:Not just instant messaging by ari_j · · Score: 1

      As I stated elsewhere, I consider XMPP to be a "presence-aware XML router". If you need XML to get from point A to point B in a presence-aware fashion, Jabber is the protocol to use. And if your data can be at all sanely represented* as XML, it qualifies to use Jabber as a presence-aware router.

      * - <wtf-data href="http://server.com/manymegs.dat" /> is a valid representation of data - no excuses!

    3. Re:Not just instant messaging by Unordained · · Score: 1

      Yup, this would have been good to know a couple years ago when I wrote our client/server tcp stuff for our database app. (Initial revision had used samba 'mailslots' -- serverless-ish, damned slow, damned annoying across subnets, and did I mention really slow?) It was (is) responsible for forwarding refresh information from each client to other connected clients, to keep listviews refreshing with the data (callbacks to decide if the updates are relevant, etc.) It works, it's messy, it was a good learning experience, and it's going to be a pain to extend when that becomes necessary ... I wish I had known I could just use this. (Oh, and we eventually gave our users a chat program embedded in our software, using the same protocol. From looking at the logs, they don't use it for anything work-related. Go figure.)

    4. Re:Not just instant messaging by noselasd · · Score: 2, Insightful

      Ok. What have they done to prevent spam here. email/smtp had some design
      flaws when it comes to identifying senders. Does Jabber "solve" this.

    5. Re:Not just instant messaging by sw155kn1f3 · · Score: 2, Interesting

      Sheesh..
      It's what XMLRPC and SOAP are for. Look ma, RPC over XML via any medium (http, e-mail, ftp etc etc). And it's _widely_ supported.
      Would you please enlighten me why XMPP is better than SOAP?

      --
      - Arwen, I'm your father, Agent Smith.
      - Well, you're just Smith, but my father is Aerosmith!
    6. Re:Not just instant messaging by HyperCash · · Score: 2, Funny

      You know you're getting old when your grandfather has an IM protocol.

      --HC

      --
      So I'm jump'n up and down screaming show me the money.
    7. Re:Not just instant messaging by Anonymous Coward · · Score: 0

      And how exactly is this different from the other thousands of presentation layer protocols?

    8. Re:Not just instant messaging by Colin+Smith · · Score: 1

      Been there, felt the pain.

      --
      Deleted
    9. Re:Not just instant messaging by Thomas+Charron · · Score: 1

      XMPP isn't comparible to SOAP unless your having an anal conversation. It's an XML routing and presence protocol.

      For crying out loud, look at what your talking about before you decide to open your fat trap..

      --
      -- I'm the root of all that's evil, but you can call me cookie..
    10. Re:Not just instant messaging by sw155kn1f3 · · Score: 1

      Look at how my message's parent is using XMPP, then shut up. Read before you post, please.

      --
      - Arwen, I'm your father, Agent Smith.
      - Well, you're just Smith, but my father is Aerosmith!
    11. Re:Not just instant messaging by infiniti99 · · Score: 1

      email/smtp had some design flaws when it comes to identifying senders. Does Jabber "solve" this.

      Yes. A client cannot fake the username part of an address, and the server cannot fake the domain part.

    12. Re:Not just instant messaging by Anonymous Coward · · Score: 0

      A "couple" years ago? Mailslots are some 80s OS/2 thing.

    13. Re:Not just instant messaging by Unordained · · Score: 1

      ... and they're still supported, and still work (as far as I know -- that code is now quite disabled.) At the time at least, mailslots were listed in the MSDN alongside shared-memory as good, valid ways of doing interprocess communication. Nothing was marked as deprecated, none of the issues I experienced were discussed, and ... well, I was in a hurry. D'oh.

  22. Propogation-Pope-chat. by Anonymous Coward · · Score: 0

    Look up Intranets. Good things don't always need an "Internet" blessing to succeed.

  23. Re:Your help in Quiz please by Blingin'+AMD · · Score: 0, Offtopic

    1: Both are in space (HAL from 2001 and the ISS, or both are from the year 2001, IIRC)

    2: That is an IMI Galil, the Jewish makeover of the AK-47 (No, really, Jewish... as in Israel)

    3: One of the Daimler/Benz guys' daughter, Mercedes, I think.

    4: ??? Dunno.

    --
    Now watch this drive.
  24. Re:Gim Here we come. Powered by Jabber. by Anonymous Coward · · Score: 1, Interesting

    Jabber is that little jem in the back of everyone's minds, it's great, yet nobody notices it. Very much the Linux of instant messaging.

    It's open, easy to understand (if you were so inclined you could type the raw XML yourself) simple yet scalable, and improved by JEPs (Jabber Enhancement Proposals) so even though there may be new features (such as vcards, buddy icons, user tunes), the underlying protocol remains the same.

    I love Jabber, it's the greatest IM protocol out there. All it needs is users.

  25. Fix AIM & Promote Jabber by seancallaway · · Score: 1

    I totally agree! I "upgraded" to the new version of AIM recently and it doesn't work correctly. The preferences page that lets you select whether or not to show the AIM.com window on startup doesn't actually stop the window from popping up. The problem is, however, that gaim doesn't work well on Windows with the AIM protocol. I haven't tried it with jabber, though, because no one that I know uses it.

    1. Re:Fix AIM & Promote Jabber by jonwil · · Score: 1

      Try Miranda IM.
      I use it and I can talk to all my AIM contacts no problems.

    2. Re:Fix AIM & Promote Jabber by seancallaway · · Score: 1

      Thanks! I'll have to try that.

  26. Great start! by pyrrhonist · · Score: 4, Informative
    This is a great news! After years of being an Internet Draft, Jabber finally entered the Internet Standards Track. This is good news for end-users, as a standard IM protocol with a standard presence protocol is exactly what we need to integrate disparate messenging devices like cell phones, VOIP phones, and IM clients. I am totally thrilled about this.

    Since XMPP has been in development for a while, hopefully it shouldn't take too much time for it to climb the Standards Track to full Internet Standard. Right now, XMPP is in the Proposed Standard category, which is the first step (look at the bottom of the list).

    The next level up is Draft Standard. To become a Draft Standard, the RFC has to be a Proposed Standard for at least six months, have two independently developed interoperable implementations, and have had "sufficient" successful use. I think that Jabber is pretty much a shoe-in for this category. Several servers been in operation for years from which a large amount of experience with the protocol has been gained, so there shouldn't be any contention about XMPP not being mature. There are many independent implementations, so that shouldn't be an issue either. I don't think there will be any problems getting to Draft Standard in six months.

    The final step in the Standards Process is Internet Standard, where the RFC retains its RFC number, and gets the all important STD series number. A standard needs to be in the Draft Standard category at least four months (or until at least one IETF meeting has occurred, whichever comes later). On the technical side, there needs to be a significant implementation of the protocol and much more experience using it needs to be gained. The level of maturity for Standards is such that the protocol is believed to be beneficial to the community. Again, since XMPP has been in the works for over two years now and there are now commercial implementations, I don't think there is a problem with the usage requirements. Furthermore, as the only open messaging protocol, it has a large value to the Internet. Thus, I think getting Jabber to full standard easily is not out of the question.

    In about a year, we'll have an Internet Standard for IM and prescence (and an open one, at that)!

    --
    Show me on the doll where his noodly appendage touched you.
    1. Re:Great start! by JacobKreutzfeld · · Score: 1
      > In about a year, we'll have an Internet Standard for IM and prescence (and an open one, at that)!

      Yeah, and in 6 months, Microsoft will roll out an IM system which steals all its ideas from the Standard, except that it will break one small but critical thing. This will be rolled into the next XP security update, thus exploiting their monopoly further -- everyone with have MSJabber and not be able to talk to "real" Jabber. Just like Kerberos, Just like DNS, Just like HTML... Vomit.

  27. Don't you just love 90 page RFC ? by Anonymous Coward · · Score: 2, Interesting

    90 pages.
    As excessively verbose as XML streams it describes.
    Yuck.

    1. Re:Don't you just love 90 page RFC ? by Anonymous Coward · · Score: 1, Insightful

      unlike say the http 1.1 RFC http://www.ietf.org/rfc/rfc2616.txt which weighs in a trim 176 pages?

    2. Re:Don't you just love 90 page RFC ? by Anonymous Coward · · Score: 0

      Indeed, it has very little substance and a lot of filler.

  28. Simple Explanation by ari_j · · Score: 2, Insightful

    Jabber is a presence-aware XML router. Beyond that, it's imagination-bound.

    1. Re:Simple Explanation by ari_j · · Score: 2, Informative

      I should note that I used Jabber as the network layer of my honors thesis project, a general-purpose distributed computing architecture. If my web server weren't dead this week, I'd share a link with you, but rest assured that Jabber makes things simple that would otherwise not be.

  29. Is there people using Orkut? by gallir · · Score: 0, Offtopic

    same people using orkut and GMail

    I couldn't access to my orkut account for several weeks. It stalls at "Logging in..." while google and gmail work nicely Oh wait! I see the difference, the last two are running on ... while Orkut is running on ...

    It's coherent.

    --
    sgis ddo ekil t'nod i
    1. Re:Is there people using Orkut? by Anonymous Coward · · Score: 0

      Orkut simply doesn't work. Timeouts and server errors are standard behavior with it.

      Of course, it's in beta as all the Google zealots will point out. If Google News (which is still beta) is any indication, we can expect Orkut 1.0 to be released around June 2007.

  30. Good for Jabber by marktaw.com · · Score: 4, Insightful

    AIM/ICQ, Yahoo and MSN have no need to adopt open standards, and never will. Yahoo does so much stuff that Jabber doesn't do - Imvironments, Audibles, etc., and more importantly, they want to be proprietary so they can decide whether or not to allow third party clients to connect to their service. Twice in the past year I've been locked out of Trillian because of Yahoo, and once they even caused Trillian to crash completely. I had to wait for an update to Trillian, which was available within 24 hours. Supporting open standards wouldn't let them do that. Remember, running a massive IM server and developing a client doesn't make you money, but showing ads does, and Yahoo brilliantly works these in as Imvironments.

    Imvironments and Audibles, proprietary smilies, etc. are also strong arguments for using Yahoo's client rather than Gaim or Trillian. I don't get any of those things, and someone with Yahoo will inevitibly complain that I'm not in Yahoo, so I have to launch it. Very clever and "viral" of them.

    Jabber will probably never reach the same market penetration as the other IM clients, but that's ok, it's not really competition for them. You use AOL if you want to talk to your friends no matter where they are. You ues Jabber because you want complete control over your chat network - who can connect, whether or not you log chats centrally on the server, and who can eavesdrop.

    Jabber can work entirely behind a firewall, so your employees can talk to each other and not worry about revealing trade secrets to someone else sniffing their conversation, or talking to their friends and wasting company time. Or you use Jabber because you're conducting business you don't want someone else to find out about. For example, Google might want to use Jabber to communicate because MSN, Yahoo and AOL are their direct competitors and could listen in to their conversations.

    You also use Jabber because you deal with clients and need an audit trail. By logging conversations centrally on a server, you can produce an audit trail superior to even email. Being centrally located, if you trust that nobody's tampered with it, you get chat logs that prove what was said when to who, and what the response was. This is similar to centralied web-based trouble ticket systems.

    So, while Jabber may have many mechanical similarities to the other IM clients, the actual uses and needs it fulfils are somewhat different.

    1. Re:Good for Jabber by kyhwana · · Score: 2, Insightful

      Maybe you like all that flashy crap, but I use IM (gaim in windows in this case) for just IM and (sometimes) file transfer. I don't want imvironments "smilies", "audibles" and all that other crap.
      (It also lets you ignore all the fonts/colours/etc that other people have set, which a godsend, so I don't have try to read red text on a purple background or something equally hideous)

      For me, all the crap is a strong argument for NOT using yahoo's client.

      --
      My email addy? should be easy enough.
    2. Re:Good for Jabber by Mr_Silver · · Score: 1
      Twice in the past year I've been locked out of Trillian because of Yahoo, and once they even caused Trillian to crash completely.

      Your post implies that Yahoo made Trillian crash when I would prefer to think that poor programming on Trillian's behalf caused it to crash.

      If the data your application accepts causes it to crash, then its the applications fault, not the data.

      --
      Avantslash - View Slashdot cleanly on your mobile phone.
    3. Re:Good for Jabber by Frank+T.+Lofaro+Jr. · · Score: 1

      Or you use Jabber because you're conducting business you don't want someone else to find out about.

      Just wait until someone claims it is used by criminals and terrorists.

      --
      Just because it CAN be done, doesn't mean it should!
    4. Re:Good for Jabber by marktaw.com · · Score: 1

      Perhaps. I suspect reverse engineering someone else's protocol is a difficult task, and that I'm never going to know the real cause of the crash.

      All I know is news articles at the time said that Yahoo! told reporter they didn't do it intentionally.

  31. Re:Yay! by Anonymous Coward · · Score: 0

    They exist alongside each other for a while. IETF lets them battle for the users. The winning protocol ... wins.

  32. XMPP Still Broken by Anonymous Coward · · Score: 5, Interesting
    XMPP has a serious design flaw in that it does not implement a framing protocol that helps the software that parses the protocol to separate messages. This might not be an obvious problem to the casual programmer, but if you are going to make scalable implementations that can multiplex thousands of connections, this is a very serious problem indeed.

    I'll give an example:

    Imagine the HTTP protocol for persistent connections. Let's imagine for a moment that all HTML instances are well formed and that the only other file type to be transferred is JPEG images. Now imagine that responses came without HTTP headers describing the nature of the response as well as the size. Content-length is really important. It dictates the amount of processing the software needs to do to determine when it has read a whole element of the protocol. This is an _IO_ operation and you snould NOT have to parse during pure IO.

    You might say "well, if it is HTML, then just parse it and see where it ends, and if it is a JPEG, heck you just parse that and see where it ends".

    No proper framing.

    Now imagine you are writing an HTTP Cache server which needs to do this for tens of thousands of connections simultaneously. Hard? Of course it is. Hard to do right at least. (We leave the kindergarten solutions to freshman students).

    The problem hinges on the fact that in most scalable implementations, you do not follow the one-thread-per-connection paradigm, hence you need to be able to process input in chunks. Given that you are processing many connections at the same time, you want to minimize context for each connection; ie. the amount of state you have to keep around to make sense of the data.

    The only way to securely know that the data you've read so far contains a valid element is to try and parse it. If you were able to consume an element, fine, if not, you have to read more data and try to parse the entire thing all over again. (Also, now you need to figure out how much you consumed, and thus, how much of the input buffer you can throw away).

    Of course, you could make your own primitive XML parser which can infer stanza boundaries, but everyone who has written an XML parser that is reasonably standards compliant knows that this is not easy. In fact, it is a significant project unto itself.

    It is not like this is a new problem. Just look at BEEP (or whatever it is called now). The designers of BEEP quickly realized just how incredibly clumsy a protocol that does not do proper framing is, so they added framing to an XML protocol, and hey presto, you have a protocol that is a lot easier to implement correctly AND efficiently. Or HTTP for that sake.

    I feel that the Jabber team didn't do their homework, and I am incredibly disappointed that IETF didn't have someone flag these problems. The fact that it has been so many years since they started working on this, and that they have not stumbled across this themselves does not bode well for the Jabber team.

    Let's hope they do the right thing now and add proper framing to their protocol. This way it becomes much easier to implement correct and really scalable servers, and we might be able to get a usable standard that can be used for large-scale IM.

    1. Re:XMPP Still Broken by am+2k · · Score: 1

      You're 100% right. I stumbled upon the same problem when I was trying to implement a simple Jabber client some time ago (b/c all currently existing for Mac OS X suck pretty badly), and I had a pretty simple solution: I wrote a parser that only balanced the tags (look for <, check for / as the first or last non-whitespace character of the tag, look for ? or ! as the first or last non-whitespace character, etc), that took only a few lines of code and worked fine.

      It's more complicated than it's supposed to be, yes.

    2. Re:XMPP Still Broken by borud · · Score: 1
      Exactly, what you ended up doing is what I've seen a lot of other people do (for XMPP and similar protocols) and what most people suggest when presented with the problem.

      This is not a problem that is likely to be of much concern in trivial or naive implementations, but it becomes a major pain in the neck if you try to juggle with more than a few connections.

      The problem with the solution you had to resort to is:

      • It is a complex solution. The point of using XML is to not have to write a parser, yet writing a parser is what you end up doing
      • It is a fragile solution. XMPP is already on thin ice with regard to XML compliance (problems shining through...), and having multiple ways of finding message boundaries (with different parsers and parser instances) is really, really bad.

      It is not likely that you would consider the entire XML spec (or whatever subset of it XMPP professes to use) when you write your protocol tokenizer, so the likelyhood of making a mistake is pretty high.

      And of course, it is ugly.

      In proper protocols you can tokenize frames simply by counting bytes. Then when you have a frame you parse it and it is either correct or wrong, but at least you know you're done with that frame.

    3. Re:XMPP Still Broken by Trejkaz · · Score: 1

      There are probably a few things to say.

      The XMPP spec everyone has now read describes a method for mapping XMPP over TCP. It also says that TCP is only one example of a transport for the protocol. A further JEP, JEP-0124, describes binding XMPP to HTTP... thereby HTTP becomes the transport for XMPP.

      Of course, they could then invent XMPP over UDP, with one stanza (or frame) per UDP packet. Since UDP already tells you how big the frame is, your requirements are satisfied. But in all honesty, you'd have to layer the reliability stuff on top of UDP to make it usable in any real applications. :-)

      Also, even in the case of the TCP binding, you don't really have to write a parser if you start with an existing parser which doesn't provide full functionality. XPP2 is an example of this kind of parser, where you can incrementally chew through and ignore tokens until you hit something you care about. All you would keep a counter for "depth", and accumulate the raw text until you hit depth 1. During the processing, you could take note of anything you care about (e.g. if you are a server, you primarily care about the attributes on the stanza itself, which say who the message has to go to.)

      Since I've done this before, it can't be too hard. Harder than should be necessary, perhaps, but it isn't rocket science, either. And no, I didn't need to write my own parser, so I didn't have to worry about violating the XML spec in any way. :-)

      --
      Karma: It's all a bunch of tree-huggin' hippy crap!
    4. Re:XMPP Still Broken by vidarh · · Score: 4, Insightful
      You're assuming that parser state is going to be larger than keeping an input buffer large enough to keep a complete message.

      In the real world, XML is a very verbose protocol, and in most cases it is trivial to store the incoming data in a less space consuming format. Using a SAX parser that is reasonably efficient, the only state you will need to keep track of is namespace declarations and open tags - that is highly unlikely to be much data, and certainly unlikely to get anywhere close to closing the gap between the maximum size of a well parsed data set and the maximum allowed size of a message. As a consequence, a well written server should REDUCE state by parsing as you go, not increase it, and only a complete moron would keep trying to parse the message over and over again from the beginning each time.

      Even if this wasn't the case, a well written system would run into bandwidth limitations and IO limitations of the server long before memory limitations in any sane configuration - memory and CPU is cheap, good IO subsystems aren't.

      As a benefit of this approach, by the time all the data has arrived from the client, you have the message in a much more efficient representation. In fact, in many cases you might have enough information even before you have received the complete message that you may not even need to store the rest of the message as it comes in.

      The idea that you need the complete message before you start doing work on it is flawed - it implies that during sudden bursts of activity, your system will sit mostly idle until complete messages have been received, and then suddenly be swamped with processing, instead of spreading the processing cost over the whole time it takes to receive a message, which could potentially be a "long time" for many clients on slow connections.

    5. Re:XMPP Still Broken by hta · · Score: 1
      AC said:

      I feel that the Jabber team didn't do their homework, and I am incredibly disappointed that IETF didn't have someone flag these problems. The fact that it has been so many years since they started working on this, and that they have not stumbled across this themselves does not bode well for the Jabber team.

      In fact the designer of BEEP, Marshall Rose, has been active in the XMPP area (he took the minutes for the Jabber BOF in Yokohama, summer 2002). So it's not that they had nobody around with a clue - I guess they decided something else was more important.
    6. Re:XMPP Still Broken by borud · · Score: 1
      First off: the only interesting transport for XMPP is the one actually being widely used, so using UDP, HTTP or something else which does provide framing (albeit at the cost of their own set of new problems) is somewhat academic.

      Second: just because something is possible or doable doesn't mean it is as simple as it should be. Parsing content for discovering stanza boundaries is inelegant and it is more error prone than it should be and it is more work.

      The whole point of using XML in the first place is to make it easier to write software -- not to complicate matters even more.

      In this case it ends up making everything more complicated.

    7. Re:XMPP Still Broken by borud · · Score: 1
      The idea that you need the complete message before you start doing work on it is flawed - it implies that during sudden bursts of activity, your system will sit mostly idle until complete messages have been received, and then suddenly be swamped with processing, instead of spreading the processing cost over the whole time it takes to receive a message, which could potentially be a "long time" for many clients on slow connections.

      Hmm, I can't say that I've seen that happen a lot in practice. I've written a fair share of software that needs to multiplex a large number of simultaneous connections (on the order of 1.000-10.000 per server) and what is usually the killer is "useless context switches" -- either in the OS or locally in within an execution context. I've never seen your theoretical scenario crop up in anything bug degenerate cases (ie. tests).

      I'm a bit curious: have you observed that this should be a problem in practical systems? If so, what did they do?

    8. Re:XMPP Still Broken by borud · · Score: 1
      In the real world, XML is a very verbose protocol, and in most cases it is trivial to store the incoming data in a less space consuming format. Using a SAX parser that is reasonably efficient, the only state you will need to keep track of is namespace declarations and open tags - that is highly unlikely to be much data, and certainly unlikely to get anywhere close to closing the gap between the maximum size of a well parsed data set and the maximum allowed size of a message. As a consequence, a well written server should REDUCE state by parsing as you go, not increase it, and only a complete moron would keep trying to parse the message over and over again from the beginning each time.

      Just out of curiosity, do yu have some code which demonstrates this? Just something that shows that for instance a SAX parser in Java ends up consuming less memory than the actual XML would take to buffer for tokenizing a reasonably long stream of Jabber messages (say 100Mb) and fed in buffer-fulls of random lengths with messages spread across buffer boundaries to your XML parser instance. (To emulate network traffic).

      (And not with one thread per context. I'd like to see an example of this that can be applied to multiplexing IO)

    9. Re:XMPP Still Broken by Anonymous Coward · · Score: 0

      The essence of XML is this: the problem it solves is not hard, and it does not
      solve the problem well.

      -- Phil Wadler, POPL 2003

    10. Re:XMPP Still Broken by vidarh · · Score: 1
      I agree that useless context switches are painful, which is another good argument for not just fulfilling a read and immediately going to sleep again waiting for more IO when you have useful work you can do on the read data.

      However reducing context switches is often quite straightforward. I'm shocked at how often I see network code where read() is called with ridiculously small buffers because people can't be bothered to maintain userspace buffers to do read()'s across frame boundaries in stream oriented applications and end up only read()'ing whatever amount of data they happen to know belongs to the current frame, for instance. Once an application is well structured with respect to use of system calls etc., I rarely see applications where context switches are much of an issue on a well tuned system.

      You're right that the case I suggested in what you quoted above is unlikely to be a problem in many ordinary scenarios, but one case where it can be an issue is for instance if you're on the receiving end of massive mailing list blasts from badly set up mail servers (or spammers). Many other services that have potentially "hostily users" as clients have patterns where sudden surges of traffic may occur, and where there may be "considerable" (compared to the cost of parsing the message stream itself) costs to process the message.

      For mail servers in particular, which are usually almost entirely dominated by disk IO (typical CPU usage on the MX's of a system I worked on connected to an IBM Enterprise Storage System was around 10-15%) being able to start filtering as soon as you've received the first byte of a message allow you to very quickly take actions to determine whether to keep storing the message or not. Given spam volumes these days, NOT writing a significant percentage of messages to disk can have a massive impact even when handling a "low" number of concurrent sessions (100-200 should be more than enough to see a difference, though that implies at least a few tens of thousands of active mail users)

      Protocols like XMPP can also benefit in terms of memory for any case where the server is acting mainly like a router, as a decision can be made while messages are still incoming to stop storing the message contents and just start pushing the message down the recipient connection. It's a cheap and reasonably simple optimization to make, that if implemented "right" will at the same time throttle the sender to whatever speed the recipient is ready to accept data at, reducing the rate the server needs to process the message with.

      Guessing that XMPP won't have much that's computationally costly to do on receipt of a complete message, I agree that you're unlikely to see a huge amount of impact from parsing before a message is complete in normal scenarios.

    11. Re:XMPP Still Broken by Anonymous Coward · · Score: 0

      Framing will only help you consume more memory. That's because you shouldn't put your entire "frame" into a buffer in the first place. You can parse XML streams right as they come in.

      Perhaps you were trying to use an XML parser that doesn't properly support streaming XML or something. Well be glad then, the fact that this is a standard will hopefully encourge XML implementors to make their parsers suitable for streaming (that is, for the ones that aren't already)

    12. Re:XMPP Still Broken by vidarh · · Score: 2, Informative
      I don't use Java unless I'm forced to :-) And I don't have any code that I could share without violating past employment contracts, no, but I can describe the approach - there's nothing novel in it, it is simply a combination of two techniques: 1) Doing buffered multiplexing IO by maintaining a buffer per connection and doing non blocking reads of as much data as possible in a single syscall and 2) throwing away redundant information during a parse to "compress" the read information to only what your application actually need. I don't even remember where I picked up these techniques - I consider them blindingly obvious, and it's how I've been writing networking code for the last ten years at least.

      First of all, a long stream of Jabber messages is irrelevant - you won't be handling more than the greater of your IO buffer (and don't try to tell me 100MB would be a sensible size) or one XML stanza and parts of another at most - so unless you're leaking memory the length of the stream have absolutely no bearing. The IO buffer size is a tradeoff between performance and memory usage, but can be fairly large since in a multiplexed environment it will be shared between all the connections when you are parsing the message as you go.

      If you want to parse the message at the end, however, you'd need to retain a copy of the message.

      Second, a SAX parser needs to maintain only very limited state between calls - it needs the XML namespace declarations and a list of open tags, and enough space to hold a single incomplete token. I'm sure you can find implementations that keep all kinds of extra around, but I've both used and written parsers that have made do with just the above.

      The general approach then is to maintain a fixed size IO buffer, fill it as much as possible with a single non blocking read (which btw. is another reason to consider interspersing processing with the reads, as you for some workloads otherwise end up context switching to fill up only small parts of the buffer at a time), feed it to the SAX parser. If any events are fired, your code looks at the data and throw away any parts it doesn't need, or stores it in whatever more compact form is convenient for you. If the message is complete, process whatever stored data you have gathered from it, and throw away afterwards. Repeat as long as the connection remains active.

      Since XML usually is extremely redundant, it is normally trivial to come up with an internal representation that is more space efficient than raw XML, but many applications (including XMPP) don't even need all the data from many messages - often you only need to store parts of the data you are receiving. If space is really important for you, and you're dealing with limited XML vocabularies, this is particularly true, as "compressing" the XML can be very efficient.

      Applying this to multiplexed IO is exactly the same as for the single connection case. You maintain the state required per socket. Each time the socket becomes readable, you fill the buffer as much as possible, and feed the SAX parser.

      No, it's not guaranteed to always save space - if you NEED to do processing on the raw XML for whatever reason, or NEED all the data before you can do processing that allow you to throw some of it away (after passing it on to another client or server for instance), you could apply compression techniques to your IO buffer without parsing the XML and might end up doing better, but I've yet to come across a single real life application where that would have been a useful approach.

      That said, I'd not usually spend time doing any of this except as a side effect of the convenience of storing the data in a more useful form than raw XML, as memory is cheap and developer time isn't. Given relative component costs it's almost always IO performance that is the most cost effective to optimize in the kind of systems I've dealt with.

    13. Re:XMPP Still Broken by Thomas+Charron · · Score: 1

      You've not provided any technical reasonings why you need a framing protocol. Nearly ever existing widely used protocol has NO framing protocol associated..

      SMTP? NEWP..
      HTTP? NEWP..

      Let me explain further. The amount of content provided over an HTTP connection doesn't always correlate directly with the size reported in the HTTP headers. Not only THAT, but it doesn't reflect the fact that sure, my document is, say, 10k, but includes links to 2000 external images, turning the once simple 10k file into a 1 meg whopper. And guess what. You don't have ANY idea untill you actually parse the HTML.

      The only reason you've stated is 'it's hard'.

      There are benifits of parsing data without stanza. It means you can process it real time instead of waiting for the entire message to DO something.

      --
      -- I'm the root of all that's evil, but you can call me cookie..
    14. Re:XMPP Still Broken by MassacrE · · Score: 1

      Unfortunately, there is also no way to split a message (stanza) apart multiple frames, and no way to cancel a stanza halfway through because that would be non-well-formed xml.

      So sending of a message as it comes in is a huge DoS vulnerability against a client: picture a remote client written to send just enough for the server to know there is an IM message, going to a certain user's client, and then stalls. if you are event-based and broadcasting immediately, the client has gotten the opening tag for the message now.. but the remote client now just disconnects.

      Mission accomplished, there is nothing that can be done for the user receiving the message but to consider that xml document, and thus the user's whole session as being unrecoverable.

      With framing, you could have partial stanzas, you could have size limitations, and you could cancel partial stanzas before they ever hit an xml parser. You could also consider xml errors to be a message error, not a connection-level error. And if you made routing part of the framing, a server could relay the information as straight bytes rather than putting them through an xml parser at all.

    15. Re:XMPP Still Broken by BillEGoat · · Score: 1
      That's because you shouldn't put your entire "frame" into a buffer in the first place.

      Declaring the size of a frame (i.e. Content-Length) doesn't force you to consume the frame as a whole. You still have the choice to stream in the data. However, it does allow you to consume the frame as a whole if it makes sense for your application.

      By not including a Content-Length equivalent (and a Content-Type equivalent for that matter), XMPP cannot become a de facto standard protocol for message oriented applications. These two features are exactly why people use HTTP in all sorts of bass-akward ways that it wasn't designed for (::cough:: SOAP ::cough::). Content-Length allows for efficient message delineation no matter the message body format, and Content-Type allows the IO layer to delegate the handling of a message body to an appropriate parser (SAX, DOM, JPEG, .doc, whatever).

      I've looked into BEEP, which suffers from feature overload and lack of uptake; XMPP which is XML only and not useful for passing mixed media messages (e.g. JPEGs); HTTP which imposes a strict client/server mapping to request/response; and SCTP which is attractive but also suffers from a lack of uptake.

      I need a protocol stack with these features:

      • Connection oriented
      • Message oriented
      • Encrypted and authenticated (SSL is easy, and therefore TCP)
      • Easily extensible into multiple "application messages suites"
      • Allows for a peer-to-peer relationship at the application level (either side can initiate message exchanges over the connection).
      • Out of order responses to requests.

      What I want can be described as HTTP syntax, on a long term connection with both sides able to submit a request; the responses to multiple requests can be sent in any order; and the body of a message can by any binary data.

    16. Re:XMPP Still Broken by cos(0) · · Score: 1

      Let me explain further. The amount of content provided over an HTTP connection doesn't always correlate directly with the size reported in the HTTP headers. Not only THAT, but it doesn't reflect the fact that sure, my document is, say, 10k, but includes links to 2000 external images, turning the once simple 10k file into a 1 meg whopper. And guess what. You don't have ANY idea untill you actually parse the HTML.

      This example is far from being analogous. With images embedded in HTML, a webserver does not send them to a web browser them as one continuous stream of data -- the browser gets the HTML, makes itself a list of the image URLs to retrieve, then makes separate independent connections to the web browser, one per image. Recent versions of Mozilla support pipelining which allows decent webservers to return multiple files in one network connection, but the requests are still separate.

      Here's a sample session, with > indicating a client and < indicating a server:
      > GET /index.html
      < HTTP 200 OK
      { The browser realizes that it needs two other images }
      > GET /image1.jpg
      < HTTP 200 OK
      > GET /blah.gif
      < HTTP 200 OK

    17. Re:XMPP Still Broken by vidarh · · Score: 1

      I just for my bare life can't see why you think it would be inelegant, more error prone or more work. Pseudocode to illustrate:

      Main loop:
      while (not shutdown) {
      select(sockets)
      for (each socket that is readable) {
      read(socket, buffer, sizeof buffer);
      mySaxParser.parse(buffer)
      }
      ... handle pending writes...
      }

      Start tag handler:
      openTags.push();
      if (openTags.size() >= 1) pickDataToStoreForProcessing();

      End tag handler:
      poppedTag = openTags.pop();
      if (poppedTag != closed tag) error();
      If (openTags.size() == 1) processMessage(...) (document tag for XMPP is the "stream" tag, which encloses all the messages, so 1 open tag means an enclosed message was just closed)

      Care to explain how different framing would make the above so much better?
      You're stuck with an XML parser since the documents you are dealing with are XML anyway, so what little overhead you're dealing with in terms of matching up tags and checking for the end of a message is completely trivial compared to the amount of code handling the parsed data will take regardless of framing, and shouldn't even show up in profiling.

      If storage and performance is really a concern, you might gain a tiny little bit by using an XML tokenization library directly instead, to make 100% sure there is no duplication of state, but most of the time there won't be any point.

      Once you've done this kind of thing a couple of times, you'd write this kind of basic infrastructure in your sleep, or reuse a generic template.

      It's also a structure that scales very well, because many operations can be started before a message is complete. For instance if you're routing messages you might start pushing them to the recipient as soon as you know where to send it, throwing away state as soon as it's been successfully written. The effect on latency can be quite dramatic for very little additional work.

    18. Re:XMPP Still Broken by Nevyn · · Score: 1

      Protocols like XMPP can also benefit in terms of memory for any case where the server is acting mainly like a router, as a decision can be made while messages are still incoming to stop storing the message contents and just start pushing the message down the recipient connection. It's a cheap and reasonably simple optimization to make, that if implemented "right" will at the same time throttle the sender to whatever speed the recipient is ready to accept data at, reducing the rate the server needs to process the message with.

      Which can't be done with XMPP, because there's no terminator and no length. So, even after you've decided that message X just needs to be resent to connection Y through Z you still need to parse the rest of the message a byte at a time through the XML parser.

      In contrast to web caches, where you can either search for \r\n\r\n or the end of the content length.

      --
      ustr: Managed string API with ave. 44% overhead over strdup(), for 0-20B
    19. Re:XMPP Still Broken by Nevyn · · Score: 1

      Nearly ever existing widely used protocol has NO framing protocol associated..

      This is not true. SMTP, HTTP, NNTP, and DNS all have an obvious "frame" that you can parse out without knowing what is inside it. SMTP, NNTP and HTTP headers all have a terminator. HTTP content and DNS have length's that are sent before content. AIUI XMPP just has, parse this XML document, and it ends when it ends.

      Let me explain further. The amount of content provided over an HTTP connection doesn't always correlate directly with the size reported in the HTTP headers. Not only THAT, but it doesn't reflect the fact that sure, my document is, say, 10k

      You are confused. The protcol talks about Entities, and the framing encompasses those entities. Those entities can be displayed on their own, however you might want multiple entities to display a full document. But each entity can be downloaded via. a completely seperate process (Ie. "wget -r examples.com/foo.html; browser foo.html").

      There are benifits of parsing data without stanza. It means you can process it real time instead of waiting for the entire message to DO something.

      This is not true, XML does not have content ordering, so you can parse your input ... but the part of the XML you need first might well at the end of the XML document sent to you.

      --
      ustr: Managed string API with ave. 44% overhead over strdup(), for 0-20B
    20. Re:XMPP Still Broken by Anonymous Coward · · Score: 0
      Just out of curiosity, do yu have some code which demonstrates this? Just something that shows that for instance a SAX parser in Java ends up consuming less memory than the actual XML would take to

      (I'm not the original author... but have written my share of XML parser code).

      Since SAX parsers really keep pretty much absolutely minimal state (input element stack essentially), it's kind of given that it uses very little memory.

      HOWEVER: that just means that whatever code uses SAX model needs to do its own buffering, SAX parser won't do it for you. That doesn't mean that no one has to do it: it's just that any data application code needs, it needs to either process or store until needed.

      It all depends on what kind of processing that code does, though -- if it need not use most of it (or can calculate results), it can end up using less memory; if it just has to blindly store most of it, mem usage difference shouldn't be big, and serialized XML might be more compact.

      That's all to say that there's no general answer or proof. It is however possible to reduce amount of state needed if parser is fully streaming, as well as actual application code that reads in message.

    21. Re:XMPP Still Broken by borud · · Score: 1
      Uhm, correct me if I am wrong, but this would only work for one socket since you have only one parser instance which you feed intermingled fragments of XML from different sockets.

      Also, there's a problem in your design in that the events generated by the SAX parser have no association with a session (or their originating socket), which means you'll just have a bunch of events that cannot be explicitly associated and you have to rely on the contents of the events for guessing (which is bad if you are writing a server).

      At the very least you need one parser instance per connection.

      The main problem is that you really have to parse everything. If your only business is to route messages (as would be the case in a server), that is bad because the majority of your work will be parsing information you do not need. With framing XML is still verbose, but you could do much more shallow parsing of the message.

      For instance you could terminate parsing once you've determined the destination. Then the rest is a trivial IO. In the above example you can't, and in general you can't. You have to analyze every remaining character to determine when a message ends.

    22. Re:XMPP Still Broken by vidarh · · Score: 1
      Reread what I wrote: "a decision can be made while messages are still incoming to stop storing the message". It can trivially be done with XMPP. Yes, you still need to push it through the parser to determine the message boundary, but you don't need to store the result until the message is complete - just shove it down the recipient socket as fast as it can take it.

      I've implemented this approach for various protocols several times, and it does wonders for latency, and can save quite a bit of memory as well if messages are potentially large.

    23. Re:XMPP Still Broken by vidarh · · Score: 1
      Sigh. Why are you assuming I'd only have one parser instance? What part of "pseudo" code was it you blatantly decided to ignore? So imagine an array subscript in the call to the sax parser. And as for associating the events to a session, that's why any parser worth anything would let you associate user data to the parser instance, such as for instance the setProperty() method of the XMLReader interface in SAX 2.0 parsers. Are you going to complain that my pseudo code wouldn't run because I called undefined functions too?

      As for your claim it's a "problem" that you have to parse everything, if your server is CPU bound and the SAX parser is dominating your profiling output you're doing something seriously wrong.

      You're assuming that the cheap tokenization work a SAX parser has to do is massively more expensive than handling other types of framing, and enough for it to become a problem. In my work it's never even showed up in profiling runs as a factor worth optimizing. Tuning the system to maximize IO throughput and minimize the frequency of system calls (to reduce context switches) is generally much more worthwhile.

    24. Re:XMPP Still Broken by vidarh · · Score: 1
      All the server would need to do would be to close the tags. Seeing as a server using this approach would likely be maintaining a list of open tags, closing them and leaving the recipient with well formed XML but possibly semantic errors is trivial.

      This is no different than a protocol using size indicators, such as HTTP with Content-Length: or using chunked transfer, or SMTP or any protocol using a special end marker - if you pass on data before it is completely received, you ALWAYS need to be prepared to either clean things up or break off the connection to the recipient on the other side if the sender doesn't send the complete message.

      Sometimes that is a problem, and you will need to keep the message until it is complete before you pass it on, but in most cases where the recipient is a human it's an acceptable trade off and you'll just choose whatever mechanism is suitable to terminate the message as cleanly as possible. The choice of whether to break the connection or terminate depends on the importance of the integrity of the data, and the cost of reestablishing the connection, but is usually a fairly trivial assessment to make.

      And if you, as you suggest, start complicating the framing etc. with routing information, you're just increasing the cost of handling the framing - SAX parsing is cheap, and it will take very little extra overhead added from additional framing before any saving from reduced XML parsing will be lost.

    25. Re:XMPP Still Broken by borud · · Score: 1
      As for your claim it's a "problem" that you have to parse everything, if your server is CPU bound and the SAX parser is dominating your profiling output you're doing something seriously wrong.

      My point exactly. This should be an IO problem. You're assuming that the cheap tokenization work a SAX parser has to do is massively more expensive than handling other types of framing, [...]

      It is, but the worst part is that it is unecessarily complex for what you want to do. If you want to route messages you should not be required to parse the entire message to determine its boundaries. Why is this hard to understand? Would you argue that it would make sense to transform IP to an XML protocol (people actually have suggested this in earnest. No kidding)

      [...] and enough for it to become a problem. In my work it's never even showed up in profiling runs as a factor worth optimizing. Tuning the system to maximize IO throughput and minimize the frequency of system calls (to reduce context switches) is generally much more worthwhile.

      Minimizing the number of system calls and doing efficient IO is usually not a problem. Most network code miserably fails to do so, but if you keep at it for a while, clues will emerge. We're not disagreeing there.

      Where we disagree is probably that while you think it is a good solution to require *everything* to go through the XML parser, I would prefer not having to do so. Both because it requires you to process *every* byte in the XML parser and it increases the implementation complexity.

  33. The Future of IM by Scott+Robinson · · Score: 2, Insightful

    I'm suprised everyone thinks Jabber is DOA. It's no MSN, AIM, or Yahoo. However, it's not supposed to be.

    Currently, Jabber is an open IM standard with tools available now. It has been receiving large rollouts for corporate use, and plenty of people use it exclusively for IM. (Myself, recently, included.)

    It the future, instant messaging will become more important. Be it text, audio, video, or something new Jabber (with its XML base) can theoretically support it nicely.

    And the worry about numbers isn't something I have. It's fairly simple scalability math. For example, if every cellphone/mobile device comes online and even a quarter of them use instant messaging, the AIM/MSN/Yahoo userspace will be completely swamped.

    1. Re:The Future of IM by borud · · Score: 2, Insightful
      It has to have more going for it than being free.

      It has to be good as well.

      Free is pointless if it is not good as well, and I am not convinced that from a technical point of view, Jabber is quite what everybody was/is hoping for.

    2. Re:The Future of IM by Trejkaz · · Score: 1

      Maybe you replied to the wrong message. :-)

      --
      Karma: It's all a bunch of tree-huggin' hippy crap!
    3. Re:The Future of IM by Just+Some+Guy · · Score: 1
      It has been receiving large rollouts for corporate use

      That seems to be Jabber's killer app. My office uses Jabber as its exclusive IM system. We operate our private internal server, and there's never even the possibility of our intra-office messages leaving our own LAN. Honestly, selling our boss on Jabber and one of the Free clients was one of the easiest projects I've had.

      We're now looking at implementing Jabber into our website so that customers can submit a support request and get a flashing "New Message!" icon at the bottom of the page whenever our employees send a reply. This doesn't require any change to our Jabber server or client programs at all - it's completely transparent to all entities involved except me (the web developer). I guess we could use email instead of IM as the transport layer but that lacks the interactivity we're hoping to achieve. I don't know if such a solution exists (especially for Unix server platforms) at any price from the proprietary vendors.

      --
      Dewey, what part of this looks like authorities should be involved?
  34. Botched XML, back to the drawing board guys by Anonymous Coward · · Score: 1, Interesting
    First they smear XML all over this standard without any regard for ease of achieving implementation correctness where it counts (proper framing to support efficient multiplexed IO), then the standard is full of pushbacks for XML features they have chosen to require that you do not use.

    Hey, if you didn't want to use XML then don't and if you were going to compromise anyway, you should have built a hybrid protocol with proper framing. Like BEEP.

    This is the sloppiest, ugliest, most naive piece of protocol design I have seen in many years. The protocol bears witness to the fact that the designers can't possibly have had much experience with building scalable IO-intensive systems.

    And it really pains me to say so, because I badly want a proper, open IM protocol.

    Guys, go back to the drawing board and don't come back until you've at least remedied the most obvious problem: lack of proper, non-XML-parser dependent framing. This is NOT good enough.

    1. Re:Botched XML, back to the drawing board guys by vidarh · · Score: 1
      Protocols with XML based framing has been in heavy production use for other purposes for years now. Look at EPP for instance (the protocol used for communications between most domain registries and the registrars). EPP over TCP is framed purely in XML. In practice this is a limited problem, since the document level tag "epp" can only occur surrounding a legal document, and the tag isn't used in any other namespaces that would make sense in an EPP document. Hence you read up to the first thing that looks like a valid end tag, and you either have a valid message, or the client botched something.

      I haven't read the XMPP RFC, so there might be bigger issues in XMPP, but in real life people tend to find simple solutions to these things.

      Cleaner framing might be desirable, but it's not a big issue. Compared to all the junk in various well established protocols (I have a long standing hate for FTP in particular...), XML based framing is trivial.

  35. XMPP Framing problem fixed or not by borud · · Score: 2, Informative
    I just threw a cursory glance at the XMPP specification and I still can't see any fixes for the framing problem.

    I had a look at Jabber years ago, but what put me off what is now known as XMPP was that it didn't solve the problem of framing stanzas. The only way to determine the borders of a stanza, and thus when you have read enough to successfully parse it, was by parsing the content.

    When you write a high-performance multiplexing server (for any protocol) you wish to minimize the state associated with each session or connection. I am not sure this is necessarily easy for Jabber. Its lack of proper framing dictates that you need to do some serious thinking about how to end up not wasting a lot of memory and CPU. Not really important if your server has ~100 clients, but when you want to accomodate millions of clients (as must be the goal for any large ISP when choosing an IM architecture), these things translate into dollars.

    As someone else pointed out: BEEP solves the framing problem, as does HTTP.

    How do you solve the framing problem in XMPP? How would you go about designing a multiplexing implementation that can handle, say, 1000 connections on a 800Mhz P3 without burning a lot of CPU?

    (The figure was chosen because I've observed a hub IRC server handle 7-800 client connections and 4 servers on IRCNet while only consuming about 10% CPU in steady state)

    1. Re:XMPP Framing problem fixed or not by Anonymous Coward · · Score: 1, Interesting

      How do you solve the framing problem in XMPP? How would you go about designing a multiplexing implementation that can handle, say, 1000 connections on a 800Mhz P3 without burning a lot of CPU?
      Erlang is an Open source developping environent that does properly support concurrent development thanks to its light threading model.
      Jabber implementation in Erlang (called ejabberd) does this without any problem. -- Mickaël Rémond http://www.erlang-projects.org/

    2. Re:XMPP Framing problem fixed or not by HyperCash · · Score: 1

      Could you elaborate a little bit for me. Aren't you going to have to parse the content one way or the other?

      Yes, I know I don't have a great grasp of what you're saying but I'm trying to obtain one.

      --HC

      --
      So I'm jump'n up and down screaming show me the money.
    3. Re:XMPP Framing problem fixed or not by borud · · Score: 1
      Yes, you have to parse the content in any case, but lack of proper framing makes the IO system depend to a greater degree on understanding what it is transporting because it has to understand when it has a complete message.

      The IO code will have to use the parser to figure out if it has 0, 1 or more stanzas that can be consumed.

      This results in inelegant, inefficient and ultimately fragile code.

      (Which is OK for most people since most people are going to be writing simple applications that only concern themselves with one or just a handful of connections, but it represents a pain in the neck if you want to create a clean and scalable design)

    4. Re:XMPP Framing problem fixed or not by Thomas+Charron · · Score: 1

      What exactly is the difference between passing messages off to be incrementally parsed versus blindly storing it untill it's ready to actually be fully parsed?

      If anything, this leads too a 'bursting' situation, where the processing required too 'spool' the message while waiting for it is nill, and then the bulk of the processing happens AFTER you have the message.

      Basically, we're talking SAX versus DOM parsing. And in large scale systems as you've described, DOM isn't typically used, specifically do to the 'here's my message', 'parseparseparse', 'here's your 10 meg DOM tree.

      --
      -- I'm the root of all that's evil, but you can call me cookie..
    5. Re:XMPP Framing problem fixed or not by Anonymous Coward · · Score: 0
      This may be a naive question, but wouldn't it be next to impossible to efficiently write framed XML? (independent of whether said framing is done within XML or outside of it).

      I mean, adding simple length information would allow proper de-multiplexing of messages, but would also effectively prevent any chance of writing such a message without having to first built serialized XML in memory? This because of XML quoting affects the actual length of output, as well as char encoding (at least with UTF-8).

      Maybe I should go ahead and read the specs, I must be missing something.

    6. Re:XMPP Framing problem fixed or not by fce2 · · Score: 1

      I had a look at Jabber years ago, but what put me off what is now known as XMPP was that it didn't solve the problem of framing stanzas. The only way to determine the borders of a stanza, and thus when you have read enough to successfully parse it, was by parsing the content.

      The bulk of the discussion we had about framing Thes links constitute the bulk of the discussion we had about framing a couple of years ago:

      http://mail.jabber.org/pipermail/standards-jig/200 2-January/000201.html
      http://mail.jabber.org/pipermail/standards-jig/200 2-February/000215.html

      A good summary of the discussion is here:

      http://mail.jabber.org/pipermail/standards-jig/200 2-February/000311.html

      Basically, the simple framing we were considering (for backwards-compatibility reasons) might have made implementations easier under certain circumstances but also introduced issues (misframing).

      How would you go about designing a multiplexing implementation that can handle, say, 1000 connections on a 800Mhz P3 without burning a lot of CPU?

      As it stands, its quite straightforward to design a high-performance Jabber server that can handle many connections. Several folks (including myself) have done it.

      Most implementations use an off-the-shelf callback-based XML parser (eg Expat or a SAX-based parser). When you get a read event on a connection, you read as much is there, and feed it into the parser. The parser fires callbacks, and you process the data contained in the XML. This all runs out of a normal descriptor readiness loop (select(), poll(), that sort of thing).

      CPU time is kept as minimal is possible. We are parsing XML, so its always going to take a little more effort than a binary protocol (though modern parsers are pretty efficient, and there's ways to improve it if we're willing to write a custom parser that binds tightly to the network layer - zero-copy tricks, etc).

      On the memory side, Expat in particular is pretty efficient - once its finished with an element, it gets cleaned up. So while its idling, the only state its holding is the top element and its namespaces.

      Obviously, there's all the other session state thats being held for the connection (and the user attached to it), but this is unrelated to framing.

      So a XMPP server implementation is no better or worse performance-wise than any other type of network server. Its constructed using the same principles, and suffers the same issues.

    7. Re:XMPP Framing problem fixed or not by borud · · Score: 1
      The point isn't really the difference in processing overhead: the point is making the IO subsystem as simple as possible. If you have a trivial way of determining boundaries this will lead to more elegant designs.

      Compare the implementational complexity of SMTP versus XMPP for instance. (Only the protocol parts -- now mail is actually stored is a whole other debate).

    8. Re:XMPP Framing problem fixed or not by Thomas+Charron · · Score: 1

      How XMPP makes the IO subsystem harder doesn't make much sense too me.

      It's a streamed protocol. With SMTP, HTTP, etc, you're in a stateless environment. IM conversations are statefull. It's a constant stream of data. Your client isn't connecting too any random number of servers. It's *ONE* connection.

      I guess I simply dont understand why SAX based parsing leads too a more complicated IO system. You get data, you pass it along to be parsed somewhere by a SAX parser.

      IF anything, by taking out the logic of dealing with a 'delivery unit', you make the IO system even SIMPLER.

      --
      -- I'm the root of all that's evil, but you can call me cookie..
  36. Crypto by daserver · · Score: 2, Informative

    Was really excited seing RFC 3923: End-to-End Signing and Object Encryption for the Extensible Messaging and Presence Protocol. I only thought the jabber people were making rfc's for the basic protocol.

    Sadly I don't think there is any clients supporting it yet?

    1. Re:Crypto by Trejkaz · · Score: 1

      It's sad to see that the End-to-End Encryption spec which made it in uses S/MIME.

      Pretty much nobody in the community has expressed interest in implementing S/MIME-based encryption in clients, partially because the existing OpenPGP-based implementations work, but also because S/MIME is a dog to deal with, both as a developer, and as a user.

      So no. I don't think you'll see any clients supporting it for quite some time. But Psi and Gabber still support OpenPGP, right?

      --
      Karma: It's all a bunch of tree-huggin' hippy crap!
    2. Re:Crypto by daserver · · Score: 1

      Thank you for the informative post. I really would have liked pgp support also. Gaim has an encryption plugin it says it uses NSS 1.0 (never heard of it before) as protocol.

    3. Re:Crypto by daserver · · Score: 1

      More info here: http://gaim-encryption.sourceforge.net/FAQ.html

    4. Re:Crypto by geggibus · · Score: 1

      I would say it's a good thing.

      PGP is dying.. (not to sound like the FreeBSD is dying troll though.. ;).
      Have you heard about any PGP advancements during the last years?
      Have a look at the S/MIME Working groups homepage..

      The negative side of S/MIME is that it's so damn hard to get a certificate.. (that will hopefully change soon)

      -K

      PS.
      JEP-027 is about OpenPGP, though the only clients that follows it that I'm aware of is PSI and Kopete.

    5. Re:Crypto by Trejkaz · · Score: 1

      The certificate side of things is exactly what hurts, as a user. Either you pay bucks, or you use CAcert. But either way, the steps are far, far more complicated than "gpg --gen-key".

      Also, to illustrate what hurts as a developer, compare the current OpenPGP protocol to the new End to End spec.

      A good summary of the new E2E spec would be "wrap the XML which made things so simple into another format which will require you to write a new parser, then encrypt that, wrap it in S/MIME, and put it back into the XML."

      --
      Karma: It's all a bunch of tree-huggin' hippy crap!
    6. Re:Crypto by Trejkaz · · Score: 1

      Oh, yeah... I forgot to mention.

      Gabber does the OpenPGP JEP too, incidentally. I think they were actually the first ones to implement it. A few less popular clients do also, and I have a bot which can converse in it as a result of work on my failed JabberStudio project. :-)

      I suppose that in order to maintain my project, I now have to do a whole lot of research into S/MIME. Otherwise whatever crypto I use won't be "compliant."

      Honestly though, the difference between OpenPGP and S/MIME should just be the formats. Couldn't the same message encrypted with the same key be formatted in both OpenPGP and S/MIME formats? Perhaps the key problem doesn't have to be a problem at all. :-/

      --
      Karma: It's all a bunch of tree-huggin' hippy crap!
    7. Re:Crypto by geggibus · · Score: 1

      I predict that in a few years, certificates will be more spread. I have a couple of certificates already, from various banks. Though none are usable for me (they are in a non-standard format). Hopefully this will change.

      I have read both JEP-027 and rfc3923, and you have right when you say it's harder for a developer (I'm one too..).
      But in the long run I think s/mime is better. (smart card readers, certificate tied to real persons...)

      But there's nothing that says we can't use both pgp and s/mime?
      I'm actually considering to write a plugin for a friends IM-client to support JEP-027. At the moment we have to use ICQ :(

    8. Re:Crypto by Trejkaz · · Score: 1

      Certificates tied to real people would certainly be an improvement from the current S/MIME system, where they are all tied to faceless corporations who I don't even trust.

      I like OpenPGP simply because the keys are tied to real people. Real people who I have to meet to get the signatures. Real people with names, unlike the faceless corporations who deal out things like SSL certificates. When was the last time anyone trusted a corporation over their friends?

      But yeah. We can implement both, it will just take 10 times longer to implement the S/MIME E2E spec as it does to implement the OpenPGP one.

      --
      Karma: It's all a bunch of tree-huggin' hippy crap!
  37. Re:Propogation (not gonna happen) by Anonymous Coward · · Score: 0
    This is not going to happen.

    Large ISPs have to think about cost and Jabber is just too expensive to use because the protocol is surprisingly hard to implement correctly and efficiently.

    Providers that have their own IM systems will stick to them because they are easier to scale in a cost-effective manner. Providers that do not have their own IM systems will either not bother with the cost or buy (access to) one of the more scalable systems.

    Just look at how long Jabber has been around. Now look at the number of efficient implementations that would be a candidate for large-scale (millions) deployment in datacenters.

    Exactly.

    Jabber is a dud. It is a toy for small scale deployment.

  38. All kinds of office by JavaPriest · · Score: 2, Interesting

    IM is even used in warfare.

    A good example of this is the CTF-50 Case Study done by OFT. The types of capabilities they used to increase Mission Effectiveness (i.e. Instant Messenger, Web-logs, basic Portal) would be available directly from Core Information Services.

    The study doesn't say which IM protocol/client was used. The value of IM over phone/radio was having a history of what was communicated.

  39. Re:Yay! by lordpi · · Score: 3, Interesting

    I was thinking the exact same thing. My only guess is that SIP/SIMPLE doesn't have the same amount of 'corporate' backing to push it through the standards process? Although, from other, recent articles, I was lead to believe that SIP had made some inroads in VoIP and P2P... So it is a suprising development.

  40. Re:Your help in Quiz please by C0rinthian · · Score: 0, Offtopic

    I could be wrong, as I can't see the picture from work, but #4 is most likely the Black Widow. It's black, and has a red hourglass shape on it's abdomen.

  41. IRC by RAMMS+EIN · · Score: 1

    I still wish they would have just improved on IRC. IRC has been around since the late 1980s, and was a significant improvement over talk. It is open and extensible, and can do everything the popular instant messenging protocols can do, and could before these protocols existed. It can even act as a bridge to instant messenging protocols.

    How does it compare to Jabber? Well, IRC is much simpler (try to write IRC with netcat, then try XMPP). Many stable and featureful IRC clients exist for various environments; this is only beginning to happen for Jabber. On the other hand, IRC nicknames have a global namespace, which leads to immense scalability problems. However, the solution to this is obvious and easy to implement.

    --
    Please correct me if I got my facts wrong.
    1. Re:IRC by pyrrhonist · · Score: 3, Informative
      I still wish they would have just improved on IRC. IRC has been around since the late 1980s, and was a significant improvement over talk.

      Yeah, IRC has some nice features, and it was the way to do IM before there was such a thing as IM (talk and write be damned). All the cool kids were using it.

      Unfortunately, its adoption as a standard ran into some issues:

      • RFC 1459, the Internet Relay Chat Protocol RFC was placed into the "Experimental" category.
      • Many programs implemented special improvements that were eventually collectively released as RFCs 2810 through 2813. These RFCs, though, were marked as "Informational".
      • The IRC Client-To-Client Protocol (CTCP) for sending structured data between clients was released as an Internet Draft, but was never made an RFC.
      I think the real killer of IRC as a standard, was the release of RFC 2779, "Instant Messaging / Presence Protocol Requirements". IRC just wouldn't fit this model without a major overhaul, and at that point, you have to question whether it would be worth trying to do that without sacrificing compatibility. It was probably easier to just write a new standard.

      How does it compare to Jabber? Well, IRC is much simpler (try to write IRC with netcat, then try XMPP).

      At it's base level, yes, it's definitely easier. You can do most of what you need for IRC with just a Telnet client. This is kind of fun actually.

      --
      Show me on the doll where his noodly appendage touched you.
  42. Re:Yay! by Trejkaz · · Score: 2, Interesting

    As far as I understand it, both standards are attempting to map themselves to CPIM (RFC-3862). And I'm pretty sure there is already at least one working gateway from Jabber to SIMPLE, so the two can co-exist in practice anyway.

    In the end I hope it's the developers who get the say over which one stays and which one goes. If they get intimidated by the ironic nature of SIMPLE (it's not simple!), and every developer decides to use Jabber/XMPP instead, then all the best apps should inevitably be based on Jabber. That would pull in the most users, and they would win.

    About the worst thing that could happen would be for Microsoft to back SIMPLE, write some shitty apps for it, and force them down the throats of the users of their OS. Which... is probably what's going to happen, since Microsoft have been supporting SIP for some time now.

    --
    Karma: It's all a bunch of tree-huggin' hippy crap!
  43. Maybe Google can do it for us... by Trejkaz · · Score: 1

    There have always been rumours and speculations that someone like Google would get into the instant messaging space. I suppose people think of this as retaliation... Microsoft tried to infringe on the search space, which Google is pretty much the king of right now. So to get back, they really should make an instant messenger which everyone wants to use, just like they made a web mail service which it seems everyone wants to use.

    If they ran such an IM system on XMPP, you would see quite a few new users accumulate in a rapid fashion, even if they didn't know they were using the protocol. Think web messenger. :-)

    --
    Karma: It's all a bunch of tree-huggin' hippy crap!
  44. Doesnt matter to 90% of the IM users by jonwil · · Score: 1

    AOL, ICQ, Yahoo and MSN will continue to rule the roost and people will continue to be forced to use the crappy lame official clients or risk having their third party client locked out because the protocol was changed for the umpteenth time.

    1. Re:Doesnt matter to 90% of the IM users by onosendai · · Score: 1

      This may be true *now*, but sooner-or-later enough people in positions where their influence is important will realise that an open, IETF support, XML-based messaging client makes more sense for their business than tying themselves into a proprietry networks that will eventually be questioned by organisations like the FCC.

      Failing that, check out the Jabber Components and MSN/AOL/ICQ/Yahoo!/SMS/E-Mail gateways, your clients need not worry about 'crappy lame official clients'

      --
      <? include ('signature.inc'); ?>
  45. Thanks!! by quizboy · · Score: 1
    Thanks a lot guys!!
    :-)
    What do these really mean?
    HAL from 2001 and the ISS, or both are from the year 2001, IIRC

    Could you elaborate on the short forms....(the only thing i know is the intl space station - ISS).
    Also the spider has a resemblence to humam face in the abodomen - not hour glass..

    You could consider posting as AC - I dont want to your karma to be burnt!

  46. hello dave by quizboy · · Score: 1
    what is " hello dave " anyway? looks ike video game!

    this is the guy who posted parent.SD doesnt allow more than 10 posts per day!

  47. fal? by quizboy · · Score: 1

    I Also got another explanatin from another guy....

    so is that IMI galil or FAL?

    The proper name is: Fusil Automatique Leger which translates to light automatic rifle. The rifle is sometimes called "the right arm of the free world". Not sure how much more famous a rifle can get...

    Perhaps AK's and M16's are more ingrained in the American psyche, but this is twice the rifle they'll ever be. It has been adopted by 70+ countries and various South American freedom-fighters and drug cartels. The true compliment to its design is that these 70 nations PAID for the FAL (10 of them bought manufacture rights), where as M16's and AKs were typically given away by the US and USSR respectively.

    The FAL is gas operated with a op-rod to cycle the bolt, unlike its biggest competitor the Heckler&Koch G3 which uses a roller locked delayed blow-back design. Both are very robust and incredibly fun to shoot. I highly suggest trying it out. Head over here for more info:

    http://falfiles.com

    I own a G3 variant and plan on getting an FAL soon.

    As for famous in another context? hmm. I think I saw it used in the movie Heat by Val Kilmer's character. But hollywierd's fiction doesnt hold a candle to the real thing.

  48. Penetration? Uncle Sam? Ewwwww by Lord+Prox · · Score: 2, Interesting

    Also, I seem to remember something about NASA and FEMA choosing Jabber for their needs, and IBM's CapWIN law enforcement / first response flash network using Jabber.

  49. IRC? by Trejkaz · · Score: 1

    It's interesting that you should bring up IRC. IRC has no means for determining the content length of a message without "parsing" it to wait for the newline. But parsing is grossly inefficient, apparently, so obviously it can't attain the sort of throughputs of which you speak. :-)

    --
    Karma: It's all a bunch of tree-huggin' hippy crap!
    1. Re:IRC? by borud · · Score: 1
      Well, IRC employs "the other efficient means for framing": trivial boundary separators.

      An IRC message cannot contain a CRLF sequence because this is the sequence used to delimit messages.

      I am not saying that this is a fantastic way to do things, but it is significantly easier to implement correctly. (Note that easy to implement correctly is what we are after -- not simply easy to implement).

      Consider the differences in implementation complexity between a correct parser that can:

      • Recognize a CRLF sequence
      • Parse a significant subset of well formed XML documents.

      I have written a *lot* of protocol implementations for various protocols, usually with scalability in mind, abd believe me: it is significantly harder to write an XMPP stanza tokenizer usable for multiplexed IO than the equivalent for IRC.

    2. Re:IRC? by Trejkaz · · Score: 1

      Neither the CRLF parser, nor the XML parser have to be written by me, since they have both already been done and I can re-use other people's existing parsers. Why write a new one? Boredom?

      --
      Karma: It's all a bunch of tree-huggin' hippy crap!
    3. Re:IRC? by borud · · Score: 1
      Indeed, why implement IRC or the Jabber protocol when it has been done before? (Yet people still keep doing it so from this one might conclude they have good reason to do so).

      But you are sidestepping the issue. The issue is not why one would reimplement something that already exists, the issue is how the choice affects software quality. To understand how it affects software quality one has to consider what it takes to write correct software.

    4. Re:IRC? by Trejkaz · · Score: 1

      Maybe if 99.9% of the people were running servers, I would buy the difficulty angle. But most users are running clients, and clients don't see any problem with the frame rubbish you keep going on about. Implementing a server is going to be hard regardless... the argument on scalability is hardly going to lie somewhere in the realm of XML parsing, since XML parsing is trivial if you re-use someone else's code.

      Once again... who has to worry about "writing correct software", if the software is already written? Only the person who wrote the library you use.

      --
      Karma: It's all a bunch of tree-huggin' hippy crap!
    5. Re:IRC? by borud · · Score: 1
      99.9% of the people don't write applications. Only developers do.

      You do see the difference between developing software and using it, right?

    6. Re:IRC? by Trejkaz · · Score: 1

      "Nah. I'm just a clueless user."

      --
      Karma: It's all a bunch of tree-huggin' hippy crap!
    7. Re:IRC? by Anonymous Coward · · Score: 0

      +5 informative

  50. Indeed. Using an XML based protocol is a farce. by Viol8 · · Score: 0, Flamebait

    WHy the hell do they use an XML based protocol? XML is when something has to be human readable and unless its for the benefit of some line tapping hacker who the hell is going to read IM packets? Not only is XML bloated and so sucks up bandwidth (important if you're still on dial up) but its slow to parse and generally ugly. "But its for developers!" someone shouts. I'm sorry? Just how dumb a developer do you have to be to not be able to grok some efficient binary protocol? "But its a standard" someone else shouts. No it isn't. XML is a shell , you can fill it with any old shit and just because something else is "XML based" doesn't mean it will understand it. Using XML for IM is a clear case of jumping on the bandwagon for no reason other than the sheep mentality coming to the fore.

    1. Re:Indeed. Using an XML based protocol is a farce. by Anonymous Coward · · Score: 0

      Funny? Looks pretty damn insightful from here...

    2. Re:Indeed. Using an XML based protocol is a farce. by MattRog · · Score: 1

      The really funny thing is that XML promised "automatic" communication via machines. Namely that the schema would be used to (magically, some would say) divine knowledge from the stream.

      Having a standard XML format is an oxymoron!

      --

      Thanks,
      --
      Matt
    3. Re:Indeed. Using an XML based protocol is a farce. by dangermouse · · Score: 4, Informative
      XML is when something has to be human readable and unless its for the benefit of some line tapping hacker who the hell is going to read IM packets?

      No, it's not. If you'd ever developed with XML, you'd know human-readability is not a major reason to use it.

      Not only is XML bloated and so sucks up bandwidth (important if you're still on dial up) but its slow to parse and generally ugly.

      XML compresses amazingly well. I have an OpenOffice spreadsheet that's 25MB in uncompressed XML. Zipped up, as OpenOffice files are, it's about 150k. That's an extreme example, but grab any xhtml web page and gzip it.

      "But its for developers!" someone shouts. I'm sorry? Just how dumb a developer do you have to be to not be able to grok some efficient binary protocol? "But its a standard" someone else shouts. No it isn't. XML is a shell , you can fill it with any old shit and just because something else is "XML based" doesn't mean it will understand it.

      Yes, but XML is a standard shell. Data encoded in XML can be parsed, looked up, accessed, transformed, and represented in code using off-the-shelf toolkits which are extremely good at doing all of those things. You don't have to fuck about writing a parser and a lexer, you can just grab some stuff off Jakarta and go to work on your application instead of its IO format. Furthermore, XML is extensible (that's what the X is for)... if your format requires additional information in the future, or needs to act as a carrier for another format's info, that's already taken care of. Probably a good thing for a message-passing protocol, don't you think?

      Using XML for IM is a clear case of jumping on the bandwagon for no reason other than the sheep mentality coming to the fore.

      Funny, my first thought when I saw your post was "oh look, another cynical-but-wise wrong-tool-for-the-job anti-XML post".

    4. Re:Indeed. Using an XML based protocol is a farce. by Viol8 · · Score: 0

      "you'd know human-readability is not a major reason to use it. "

      Then what is? Because I can't think of any other good reasons.

      "XML compresses amazingly well. "

      Thats a bit like saying you can make a go-kart go really fast if you try. Yeah great , but why not just buy a car in the first place then?

      "Yes, but XML is a standard shell."

      So what , its still just a shell! So you can download some parser to parse it. Oh well great, that saves a weeks development time. And slows down the whole product whenever its run. Hmm , great tradeoff. Not.

      "Probably a good thing for a message-passing protocol, don't you think?"

      No , theres nothing special about "messages" that means they all have to use a standard format. Why shoehorn everything into the same dumb standard? Horses for courses...

    5. Re:Indeed. Using an XML based protocol is a farce. by Just+Some+Guy · · Score: 2, Informative
      XML is a shell

      Full stop, end of story. XML is nothing more or less than a structured way to store data. What would they get by not using XML, other than having to write their own container format, their own parser, their own editors, their own portable libraries to deal with it, and their their own inevitable screwups that happen every single time someone decides to reinvent the wheel?

      Since it's pretty clear that writing ad-hoc parses for structured data is an obsolete practice, what else could they have used? EDI?

      No, they chose to use the established standard that can take advantage of the optimized and field-tested libraries that are already in widespread use. Frankly, inventing their own representational language would've been the naive alternative that would have resulted in Yet Another Unused Instant Messaging Protocol. They were fortunately more far-sighted than yourself and we now have something useful to show for it.

      --
      Dewey, what part of this looks like authorities should be involved?
    6. Re:Indeed. Using an XML based protocol is a farce. by dangermouse · · Score: 2, Insightful
      Then what is? Because I can't think of any other good reasons.

      Fortunately, you don't have to. I provided you with a brief list later in my reply.

      Thats a bit like saying you can make a go-kart go really fast if you try. Yeah great , but why not just buy a car in the first place then?

      You've got your comparison backward. Your whole argument was that a car (XML), which is larger but is more versatile, wasn't as small as a go-kart (compact, binary format). My point was that if you want, you can negate the size difference while retaining the versatility of the car, so your argument is moot.

      So what , its still just a shell! So you can download some parser to parse it. Oh well great, that saves a weeks development time. And slows down the whole product whenever its run. Hmm , great tradeoff. Not.

      It's again clear that you've never actually developed with XML. If you really care about speed (or need to reduce memory use), you work with SAX streams instead of DOM or other object models. You might take a speed hit compared to working with byte-delimited chunks of binary data, but it will be of a scale you're certainly not going to care about in message-passing, which tends to be a sparsely executed operation anyway.

      I'm also beginning to wonder whether you've actually got a job, as saving a week's development time is often the difference between whether the project gets done or not. In the context of XMPP, this could be a major factor in adoption of the protocol-- bear in mind that's a week's development time saved for every implementation of the protocol.

      No , theres nothing special about "messages" that means they all have to use a standard format. Why shoehorn everything into the same dumb standard? Horses for courses...

      Bear in mind that I'm talking about the messaging protocol (carrier format), not the payload. If your protocol requires changes, isn't it good to be able to add information without necessarily breaking older implementations of the protocol? Wouldn't it be good if they could simply ignore information relating to features they don't support? You can't do that in a byte-delimited binary format without careful and specific pre-planning, the effort of which may be wasted if you're not sufficiently prescient.

      Absolute fastest speed and optimum compactness are not everything, and are usually pretty far down on the list of requirements even for an application-level network protocol. They are almost always trumped by minimizing development effort, maximizing extensibility and maintainability, and standards compliance (yes, even of "shells"). If this weren't the case, we'd all be writing everything in C and doing pointer math on arrays of gobbledygook all the time.

    7. Re:Indeed. Using an XML based protocol is a farce. by Thomas+Charron · · Score: 1

      Actually, it's been worked on for years..

      I suppose you'd also like to rewrite SMTP and HTTP becouse it's text based..

      --
      -- I'm the root of all that's evil, but you can call me cookie..
    8. Re:Indeed. Using an XML based protocol is a farce. by Anonymous Coward · · Score: 0
      • Not only is XML bloated and so sucks up bandwidth (important if you're still on dial up) but its slow to parse and generally ugly.
      XML compresses amazingly well.

      Yes, and on top of that parsing is nowadays VERY FAST, esp. if you do not need to do expensive validations (using XML Schema, ids etc); which usually is true for messaging (SOAP, IM). It's getting reasonably close to wire speed, ie. parsing overhead is less than actual I/O time.

      And yes, I have written a (fully compliant) XML-parser and tested its performance; this using "slow" language (Java). And yet it's plenty fast; so in cases where XML itself has benefits (passing structured information that's human-debuggable; has lots of tool support etc), performance need not be the reason for not using it.

    9. Re:Indeed. Using an XML based protocol is a farce. by Viol8 · · Score: 1

      "I'm also beginning to wonder whether you've actually got a job, as saving a week's development time is often the difference between whether the project gets done or not. In the context of XMPP, this could be a major factor in adoption of the protocol-- bear in mind that's a week's development time saved for every implementation of the protocol. "

      Funnily enough I do. I'm working on a telco project and strangely enough data throughput is the most (MOST!) important parameter of the whole thing. XML was considered and binned for exactly the reasons I gave. Considering the whole project has so far taken 3 years using up a week or 2s developement time to implement a packet tx/rx system was irrelevant. Seems to me like you've only ever worked on mickey mouse projects where 1 week is a significant proportion of the total time.

      "You can't do that in a byte-delimited binary format without careful and specific pre-planning, the effort of which may be wasted if you're not sufficiently prescient. "

      Wtf are you talking about? That rubbish. You've never worked with memory mapping data structures have you.

      "If this weren't the case, we'd all be writing everything in C and doing pointer math on arrays"

      Those of us who do real network programming as opposed to high level toy coding , do.

    10. Re:Indeed. Using an XML based protocol is a farce. by Viol8 · · Score: 1

      "They were fortunately more far-sighted than yourself and we now have something useful to show for it."

      And its people who think like you who we have to thank for the slow bloatware we suffer today. "Everyone else is using it , it must be good , baaa baaa baaa".

    11. Re:Indeed. Using an XML based protocol is a farce. by vidarh · · Score: 1
      So what , its still just a shell! So you can download some parser to parse it. Oh well great, that saves a weeks development time. And slows down the whole product whenever its run. Hmm , great tradeoff. Not.

      Even making the assumtion that what you say above is true (saving a week of development time and slows down the whole product whenever it's run), it still makes a lot of sense for many cases:

      As an example, a typical senior developer in the UK will cost their company somewhere between a USD 8k and USD 12k a month (salary + benefits + national insurance contributions + office costs and others). Assuming 8k a month, saving about a week and allowing that developer to go on to other projects means that unless the servers needs an upgrade worth more than 2k because of being slowed down by the XML parsing, it's a net benefit.

      However for typical business applications that are processing transaction volumes large enough that performance is much of an issue, the savings in development time over using proprietary formats and having someone write parsers for it are likely to be more on the order of months.

      And given how bad most software developers are at writing parsers, if you go with proprietary formats, however, they're more likely than not to write something slow, brittle and difficult to extend...

    12. Re:Indeed. Using an XML based protocol is a farce. by dangermouse · · Score: 1
      Funnily enough I do. I'm working on a telco project and strangely enough data throughput is the most (MOST!) important parameter of the whole thing. XML was considered and binned for exactly the reasons I gave. Considering the whole project has so far taken 3 years using up a week or 2s developement time to implement a packet tx/rx system was irrelevant. Seems to me like you've only ever worked on mickey mouse projects where 1 week is a significant proportion of the total time.

      Ah, it all becomes clear. Look, not everyone is working on telco projects "where data throughput is the most (MOST!) important parameter of the whole thing". Obviously if you're working on a project where speed trumps all, you don't want XML. My point is that such projects are in the minority, that projects which would use a message-passing protocol like XMPP are not in that minority, and that you cannot base an assessment of XML in the context of XMPP on whether or not XML is a suitable format for a low-level network protocol. XML is a suitable and very advantageous format for something like XMPP, for the reasons I've given in previous replies to your pigheaded, myopic posts.

      The fact that a screwdriver didn't work for banging your nail does not mean that nobody uses screws and the screwdriver is useless in all contexts.

      Those of us who do real network programming as opposed to high level toy coding , do.

      Bully! That's the right tool for that job. But it is not the right tool for most jobs, and it's not necessarily the right tool for something like XMPP. Which was my whole point when you think about it, right?

      This is descending into farce. I think my previous refutations of your posts are scored highly enough that people will see them, and I'm not all that interested to see whether you actually believe that all software development is throughput-centric telco software development, so I'm done. Thanks for the good times.

  51. Jabber... by m1chael · · Score: 0

    Do you still need a unique username or does it assign an id?

    I could see the advantage of say using your email address as the username, but I'm blind.

    --
    I know you are psychotic, but please make an effort.
  52. Re:Gim Here we come. Powered by Jabber. by Anonymous Coward · · Score: 0

    I have several Jabber buddies on my gaim-buddy list, but for some reason I always use icq to communicate with them. It would be really nice to implement some of those fancy Jabber protocols in gaim. If Jabber got an edge over icq, then I would have a reason to start using it :)

  53. Gateway by Midnight+Thunder · · Score: 1

    I must admit I have never heard of simple, but a quick search (terms: Jabber SIMPLE) reveals that there is a gateway in development: see article.

    --
    Jumpstart the tartan drive.
  54. IRC by metamatic · · Score: 1

    Nicknames aren't the only problem with IRC, though. It also has fundamental scalability and reliability problems. (Speaking as someone who's deployed servers and written client code for IRC.)

    The scalability problem comes from the fact that every IRC server must carry all IRC traffic, not just the traffic for the users it is serving.

    The reliability problem comes from the fact that the IRC protocol is based on a tree topology with a single point of failure at the root.

    Then there's the fact that a lot of the basic functionality (e.g. presence information) is just a hack, implemented via CTCP rather than being part of the IRC protocol. As a result, it's often not implemented by clients, and is so unreliable that it ends up being useless. Don't believe me? Watch how many people feel the need to announce that they are away with messages, rather than using the standard "away" mechanism.

    I'm no big fan of Jabber; I think it's a horrendous protocol, in fact. But it's a carefully thought out, complete and scaleable protocol, which is not the case for IRC.

    --
    GCHQ Quantum Insert installed. If only our tongues were made of glass, how much more careful we would be when we speak
  55. Re:IM is a 2nd rate re-invention of the wheel by Anonymous Coward · · Score: 0

    Sure, I'll mod you down. But not because you asked for it. It's because you are trolling.

  56. Re:IM is a 2nd rate re-invention of the wheel by Anonymous Coward · · Score: 0

    Of course. I just give anybody I want to talk to an account on my system? Or what about presence? shall I go around and log into 30+ systems just to see if my contacts are availabe? There many reasons why simple telne/ssh/talk are not sufficient for IM.

  57. A business nervous system by Colin+Smith · · Score: 2, Interesting

    You're absolutely right. Jabber could be the nervous system of future businesses. I've been putting inter application communication systems together using NNTP servers given the costs of traditional middlware systems, quite a lot of work and the data formats are simple, but it works fairly well but Jabber would be faster and could be more standardised, more ubiquitous.

    e.g.
    http://www.archeus.plus.com/colin/middlewa re/

    --
    Deleted
  58. actually, sh is the glue that holds Unix together by hruntrung · · Score: 1

    Go take a look at the initialization subsystem of any modern Unix (or Linux). Go take a look at how you start X. It's startling how much of Unix is driven by Borne (or Korn or C) shell scripts. Perl's ok, I guess, but it's very definitely not the glue that holds Unix together.

  59. Re:Yay! by Anonymous Coward · · Score: 0

    The problem is SIMPLE is a great non-standard. IBM and Microsoft both talk about SIP (Session Initiation Protocol). They have non-interoperable implementations. No one talks about SIMPLE (IM using SIP), they say they are standards based because they use SIP.

    SIMPLE is extremely weak and dead ended.

    XMPP integration with SIP as a SESSION INITIATION PROTOCOL has some promise.

    XMPP is very rich and has lots of potential for data exchange. The vendors all want to market voice and video integration, but I think it misses the point.

    There is a lot to be said for text and structured data? Could you imagine slashdot threads occuring over audio????

    HTTP and SMTP as ubiquitious protocols are nice but we need something more real time / asynchronous.

  60. Google, why not Slashdot? why not your ISP? by Anonymous Coward · · Score: 0

    The idea behind Jabber/XMPP is you don't need a monolithic server. Anyone can have a server as they do with Email (SMTP).

    There are some companies offering Jabber/XMPP services like telco's. Check out Jabber.com and Antepo.com for their customer lists.

    Yes, ISPs should offer Jabber/XMPP servers to their users. It would allow them to wrestle back some of their user base from AOL/MSN/Yahoo.

    What's needed to get people off of the proprietary IM platform is good public servers that you could move your non-so-technical friends and relatives to.

    It would be fantastic if Google became a serious player in IM and beyond.

    However, what about Slashdot (and it's parent company)? Why couldn't they offer an IM service based upon Jabber/XMPP?

    Think about the possibilities of integrating Jabber/XMPP conference rooms (mult-user chat) (JEP-0045) into slashdot discussions.

    Slashdot is already a great community. Why not make it more real time than just RSS feeds?

  61. Re:Market Penetration (Enterprise to Enterprise IM by Anonymous Coward · · Score: 0

    Instant Messaging is turning out to be a vital business tool. Take a look at The Financial Instant Messaging Association, (aka FIMA) http://www.financialim.org/membership_financial.ht m

    Financial Services run on messaging. In the past it was all very proprietary home grown solutions. A number of firms have seen the potential for Jabber/XMPP and deployed Enterprise Instant Messaging solutions with external connectivity to clients and counter parties.

    Reuters is getting very serious about IM. However they've been a Microsoft shop for a long time and hired away the LCS team from Microsoft. They are still trying to own the whole network and keep things under their control.

    Another company offering XMPP based solutions for Financial Services is Communicator, Inc. http://www.communicator.com/HubConnex_Features.htm l

    EBS is building a Foreign Exchange trading platform with Jabber/XMPP. http://www.instantmessagingplanet.com/enterprise/a rticle.php/3345961

    IBM has SIP/SIMPLE based products, but when IBM Global Services needed to build a solution for 911 Emergency Services, they built a system on top of Jabber.

    Remember this all started with Jabber the open source product. It's available for you to use freely for IM, or better yet for application messaging. Slashdot users can make a serious difference. Get the companies you work for to try Jabber. Try to avoid Micro$oft's LCS

    Cheers to Mandrake for including Jabber RPMs in it's linux distro. (I'm not saying other distro's don't include it as well, but it's the one I use).

  62. Re:IM is a 2nd rate re-invention of the wheel by Viol8 · · Score: 1

    Actually I wasn't trolling. But thanks for proving my initial point anyway. Theres always one of you around.

  63. Re:Yay! by Anonymous Coward · · Score: 0

    Microsoft IS trying to push it's version of SIP/SIMPLE down everyone's throat. It's called LCS. It will be integrated in to M$Office and others. It will become the dominant IM platform and it's basically just 1-to-1 IM, no group chat.

    Developers are the only ones who could make a difference.

    URL:http://www.antepo.com/ has working commercial SIP/SIMPLE gateways to both LCS and IBM's sametime.

  64. This is....complicated by Anonymous Coward · · Score: 0

    Is it just me, or is this stuff needlessly complicated? This is the first time I've read it, so I'm not really familiar with it, but did I see them recreating the concept of a URL...poorly? And why the emphasis on using this with TCP? Is there some reason that the transport protocol is that important? What if I want to use this with multi-casting, or skip the transport entirely and use a plain old serial cable? Is there any particular reason I shouldn't be able to?

    It's a neat idea regardless. I'm just glad I don't have to implement it.

  65. G-chat is nothing by apankrat · · Score: 1

    G-chat is nothing compared to G-spot.

    --
    3.243F6A8885A308D313
  66. Nice Technology... by John+Hasler · · Score: 1

    Too bad about the hideous name.

    --
    Warning: this article may contain humor, sarcasm, parody, and perhaps even irony. Read at your own risk.
  67. Internet Citizens Band by TTK+Ciar · · Score: 1

    IRC always seemed overflowing with juvenile h4xx0r wannabes. All the "cool kids" (the FreeBSD development group, UNM geeks, Santa Cruz geeks, etc) hung out on Internet Citizen Band servers. ICB was also developed in the 1980's, but never took off like IRC did. ICB geeks generally agree that this is a good thing -- a high quality clientele makes for a more pleasant experience than high quantity.

    ICB's ease-of-use and relative simplicity was also a huge win, over IRC's poorly-implemented oodles of features, IMO.

    The folks developing the next-generation ICB have also been going with an XML-based protocol. I guess that's the trend these days; people seem to think this syntactic sugar is the best thing since sliced bread.

    -- TTK

  68. ubergroups.com by jimmyp9999 · · Score: 1

    At our startup we're working on a new take on the instant-messaging space. Our new product ubergroups.com is currently in beta. It's a team based, on demand IM service for users who need security and want to get past the limitations and consumer-oriented nature of AIM/Yahoo.

    We've based it on XMPP so you can use whatever client you want to send IMs... including iChat in the next OS X release!

    We picked XMPP because of the wide array of client software available that implements it, and because it can handles complexity and additional (optional) protocol features well. It's a good basis for a first-class IM service.

    If you're curious please give it a shot and send us any feedback or ideas you have! Thanks.

  69. Re:Yay! by Trejkaz · · Score: 1

    That's basically what I just said, isn't it?

    --
    Karma: It's all a bunch of tree-huggin' hippy crap!
  70. Bellsouth is working on this by halr9000 · · Score: 1

    Bellsouth (a baby bell operating in the Southeast US) has a large Jabber server implementation. Press release. FAQ. One thing I wish they would do is provision the account and provide that info to new users as signup. You have to search their website or ask support to find out about it now.

  71. Isn't it nice by rayk_sland · · Score: 1

    When technological advances end up in RFC's and not patents...

    --
    Jedis are stupid. If they were so powerful, why couldn't they handle counseling for a kid who missed his mom?
  72. Off the point by polin8 · · Score: 1

    I don't think the parent intended to get into a legal argument. I think the idea was that if you use existing open source libraries, you can build XMPP chat into an application with know the ins and outs of the XMPP-IM standard.