Skip to main content

Mobomo webinars-now on demand! | learn more.

Along with the launch of Presently.com, we quietly revamped the backend architecture of Present.ly to better use the eXtensible Messaging and Presence Protocol (XMPP) as the standard message delivery system. You may have noticed near-instant updates on the new web interface — this is primarily due to the super-fast messaging features of eJabberd, the XMPP server that Present.ly runs on.

We believe that XMPP will play a bigger role powering dynamic, real-time web applications in the coming years and have previously blogged as such. While most people in the industry know of XMPP only in its instant messaging role, the fact that there are fully fleshed out specifications for most common enterprise messaging problems as subsets of the XMPP specification is often sadly overlooked.

So what does this mean for Present.ly? In the short term, as you may have already noticed, you will see a major speed improvement posting and receiving updates. In the long term, we are planning on making our user interface a lot more dynamic — details are top-secret at the moment. We are also working on moving over our notification systems completely to XMPP, which will result in you receiving update notifications more rapidly over all your devices. As we grow, we’ll be leveraging eJabberd’s high scalability (due to it being written in Erlang) to provide a seamless, quick user experience.

We are also actively contributing back to the open-source XMPP community. Read about ruby_bosh, the first Ruby library to handle BOSH sessioning in your Ruby applications. We have also made various stability and speed fixes to the stropheruby library, which is based on the libstrophe C library (announcement soon). Both are available on Github for general use. Intridea’s proud to be a part of the XMPP community, and will be heavily using and promoting the technology with both our products and services.

Categories
Author

Hot on the heels of my post on why XMPP will be huge, here’s a ruby library to pre-initialize BOSH sessions in your Ruby web applications. This feature allows you to by-pass exposing your user’s XMPP credentials in your HTML views.

The process follows as such:

There are many XMPP servers and BOSH connection managers out there, but as of now this library has only been tested with eJabberd 1.2+. Please feel free to fork and submit a pull request if you’d like to contribute.

The plugins and documentation can be found at: http://www.github.com/skyfallsin/ruby_bosh

Jack Moffit’s written a Django/Python example here.

Categories
Author

Here's why, in no particular order, we think the Extensible Messaging and Presence Protocol (XMPP) will rock your world soon:

  • Real-time web applications are in high demand, and XMPP fits the requirements perfectly -- it excels in rapid peer-to-peer or broadcast messaging.
  • Response times are crucial for the new breed of web applications, and polling-based solutions are very suboptimal. Enter XMPP and BOSH.
  • The maturing of the BOSH protocol, coupled with the resurgence of excellent Javascript libraries have, IMHO, opened up extremely cool new worlds via the browser. Strophe, in itself, is a treasure.
  • XMPP servers, which are essentially make or break an XMPP application, are rapidly maturing beyond instant messaging. Especially eJabberd.
  • It's possible to deploy a custom eJabberd module based on the XMPP protocol but tailored specifically for your application in a matter of hours. The initial learning curve is offset by the rapid development speed of the Erlang language (thanks to its immutability) afterwards.
  • While there's a lot of focus on developing pure web applications, as of now nobody has figured out a great way to make money off the Instant Messaging protocol. This will be a boon for XMPP development very soon as new startups try to tap into that market.
  • The web framework wars are slowly winding down, and in the end developers are left with the classic problems -- many will now be turning to alternative tech for the problems that most web frameworks don't even attempt to solve; XMPP is the solution for many of these problems.
  • The community, albeit small, is growing and passionate. Extremely passionate. Search for XMPP on Twitter. The mailing lists are very active as well.

Apart from all of these, as a developer I find writing XMPP applications to be a very engaging and enjoyable activity. Word will spread, and there will be new converts. At Intridea, we've been actively developing and integrating XMPP into our products, and we will be leveraging it on a case-by-case basis for our client work. You'll be hearing more about that shortly.

Categories
Author
1
Subscribe to Bosh