Comments (0)

Transcript of Distributed social networks with XMPP and ejabberd

The social networkproblem MySpace LinkedIn Facebook Twitter StudiVZ Hive Friendster Google Buzz Orkut Viadeo Instagram Projects OneSocialWeb Solutions ? Aggregation Federation Web "curated"experience github Flickr youtube Foursquare Toward a web ofSocial Networks ? Distributed social networks with XMPP and ejabberd Mickaël Rémond - ProcessOne Erlang Factory - March 2011 People Diana Cheng Laurent Eschenauer Alard Weisscher Vodafone ProcessOne Mickael Rémond Christophe Romain Karim Gemayel A collaborative initiative around OneSocialWeb Fragmentation Lack of interoperability Walled garden Privacy issues + = Yes, you are trapped! Yes, you are spyed! It's dead simple But it's a monopoly A single user experience... ... across the whole web Facebookintegrated Web Connect Share Discuss Identify your friends taste Putting all your accounts in a single UI That was the goal of Jabber / XMPP at creation Already possible with ejabberd Twitter gatewayidentica gatewayMSN, Yahoo!, ICQ, AOL gatewaysFacebook connect gateway Problem: this is a dead end You still need an account on all social networks If no or limited API, you need reverse engineering This is unofficial and can be banned That's also what XMPP is about Based on domains and server-to-server (s2s) We need the tools to make federated social networks a reality 6dAmpifyCouchAppSporaDiasporaGNU SocialMr. PrivacyOneSocialWebProject DanubeSocialriverStatusNet (ostatus)... Many others Make social communications as simple and universal as email Friending and following across networks One identity and yet multiple communities Data portability A protocol based on open standards XMPP: Identity, discovery and communicationActivitystreams: Data model for social objectsVCard: Data model for profilesXFN: Data model for relationships A lot of activity but no platform yet Challenge: Federate with existing initiatives Demo ejabberd modules Platform working with federation (read)No posting to other platform yetImprovements and optimisation to pubsub serviceWill be open source in the standard ejabberd version to spread it Community Why XMPP for OneSocialWeb ? One technology to achieve such federation seamlessly Identity (user@domain)Security (persistent connection, SSL, TLS, dialback)Discovery for feature and services (XMPP disco, Caps)Useful extensions (Roster, privacy, pubsub) Doing the same in web world requires to assemble OpenID (identity)Oauth (authentication and authorization)Webfinger (discovery and openID on email addressPubsubhubbub (server to server federation)Salmon (messaging and commenting)... and to address lot of other issues (like privacy) Existing clients Reuse of Activitystreams data format provides a common language to describe social interactions...actor verb object targetmickael posted a notemickael posted a picture to an albummickael liked a video… building upon existing Atom elements: title + link + summary + author + id + updated + verb + object-type + target Reusing content from Diana Chen presentation at Sea Beyond 2011 Demonstrated compliance OnesocialWeb reference implementation with: ostatus with identica ejabberd implementation Web client Android client More on the work Luca Faggioli Daniel Appelquist Many others The future Work in progress Stay tuned onhttp://www.onesocialweb.org Protocol should be improved to make it more XMPP friendlyimpact on XMPP and ejabberd pubsubImpact on storageParticipation to IETF for building a standardClean-up and release implementationMore clients for more mobiles Erlang tools ejabberd and its nice API ejabberd 2.x, porting to ejabberd 3.x Webmachine for HTTP protocol compliance (Pubsubhubbub) ejabberd implementation: posting to Twitter High-level architecture mochiweb, lhttpc