How Xmpp Could Change The Wold

16
How XMPP Could Change the World Adam Fortuna

Transcript of How Xmpp Could Change The Wold

How XMPP Could Change the World

Adam Fortuna

Not an expert

I’m not an expert, just someone who thinks realtime apps are extremely cool. Someone at my job came up with a really cool use for XMPP, and I started researching it more and more and was just fascinated by uses -- both the current and the possible.

What’s this XMPP stuff?

How many here are familiar with XMPP in some form?

If you’re going to learn how it’s going to change the world, going to need a bit of background on what it is first...

An open, XML based protocol designed around near-realtime use.Most known for instant messaging -- started a decade ago as “jabber”. Google Talk uses it.Similar to email - open protocol, anyone can implement it and talk to users on other servers.

XMPP doesn’t use polling. You can send message or receive them.If you think Ajax changed things for the web experience, imagine a web with a decentralized, realtime communications center at its core.Lots more it can do: Contact lists, multi-part messaging, notifications (publish/subscribe), peer-to-peer media (voip, video chat, file transfer). Payload can be anything!

What can use it?

Must be connected -- but don’t have to be always on. I’m going to talk about 3 different uses for XMPP that are happening, and might happen in the future.

Devices

Devices that are connected to the internet are prime candidates for using XMPP. No phone/pc, but other kinds of things. Right now we don’t have much else that’s connected. Maybe a security system, maybe a voip phone, big one is the cable box.

Tivo. With Tivo you can schedule recordings on the Tivo website.

Each Tivo would poll the Tivo servers every 15 minutes to check for new scheduled recordings - nearly all for nothing. Doesn’t scale.

Switched to XMPP. Tivo’s get notifications instantly. XMPP commands can tell the Tivo what to do.

Added bonus: built in presence. You call up Tivo and they can tell if your box is online, and even send specialized commands directly to it to get info. new tv shows to download infomation on? tivo servers will let each tivo know.

Devihttp://www.muskiemarket.co

m/images/gal-skim.jpgces

What other devices might use this? You might’ve heard about refrigerators that place orders for food when you’re out -- could be done with XMPP. Maybe your devices could subscribe to updates, so you know when there’s an update or a defect, or a patch you need to do. Maybe Your AC needs maintenance and it’ll send out a notice to your XMPP monitoring company? Hell, security systems companies could become home monitoring companies and handle all of it.

Phones

Andoid, Palm, iPhones push service. Defacto messaging service for apps on the phone

Uses xmpp for push contacts, email and calendars through MobileMe.

XMPP, the Extensible Messaging and Presence Protocol, is an open XML-inspired protocol on which the Jabber Instant Messaging and Presence technology is based. Originally created as an instant messaging protocol, it is being expanded into message-oriented middleware.

Phones

Developers will use the Mojo Messaging Service to publish live content to their applications or services via the Palm cloud.

Palm declined to offer further details. "We have the press release and the Palm blog," Palm spokesperson Jennifer Donahue told TechNewsWorld. "We're not doing any interviews."

Web

http://www.chesspark.com

Chess moves are broadcast to your opponent in realtime. You can chat with other players (multi-user chat).Even record the moves made in a chessgame and play them back (just an xml file).Live listing of active games you can join (list is updated for you when someone else changes it), based on filters you’re searching for (opponent rating, include bots, time).Uses XMPP status to denote if you’re looking for a game or not.

XEP-0124(BOSH)

Follow me on Twitter: http://twitter.com/adamfortuna

My Blog: http://www.adamfortuna.com

Read XMPP: The Definitive Guide

Strophe.js library - awesome BOSH javascript library

Ejabberd, OpenFire, Tigase, lots more...

http://xmpp.org/

Thanks!