Last week I went to the Mozilla Labs October meetup at Twitter HQ. Employees of Mozilla and Google presented their latest projects, which were very interesting for those involved in engineering the future of the Web. I intend to turn my notes from the gathering into two or three blog entries. This is the first of those.
To kick off the evening, Brad Fitzpatrick and Brett Slatkin (both of Google) presented on WebFinger and PubSubHubub, respectively. Brad stated that he “would like to totally decentralize social networking,” which is a common link between the two efforts. This post will outline Brad’s talk on WebFinger; PubSubHubbub will follow separately.
WebFinger attempts to solve the problem that we don’t have good identifiers for people. Over time, people have become accustomed to identifying themselves by an email address. They sign into websites with this as their ID and print it on their business cards. People instinctively recognize anything with an @ sign in it as an email address.
From an engineering standpoint, however, this is a rather stupid heuristic. Something that looks like an email address may, in fact, not be one at all. A Jabber ID is a common example. To distinguish between the two in a computer program, a URL must be formed with either a
xmpp: scheme to represent email and IM addresses, respectively.
However, it would run counter to usability to avoid “email address-like” identifiers, so a solution to this problem is necessary.
For its part, WebFinger has minted the new URI scheme
acct: to denote a generic account. From this generic concept, the WebFinger protocol can be used to determine the capabilities of the account. For example, whether it can be sent email or instant messages (or both), or where that person’s address book is located.
It is important to note that this new
acct: scheme imposes no burden on the user. Ideally, people will remain completely unaware of its existence. They will continue to use email address-looking strings as usual, and applications will simply treat them as account identifiers internally.
Of course, any new protocol hinges its hopes on adoption by other parties. Both Google and Yahoo! have deployed experimental endpoints. With the support of two of the big-cos, as well as independent implementations, WebFinger’s potential to become a key piece of enabling infrastructure is promising.
WebFinger derives its name from Finger, a protocol from the dawn of the Internet which was used to look up information about people on a network. One slide in Brad’s deck contrasting the two illustrated that Finger ran over TCP, whereas WebFinger uses HTTP (”the new TCP”, sigh), an aside which I found amusing.