XMPP and the Social Web


Laurent Eschenauer & Alard Weisscher        C1 – Public
FOSDEM, Feb 6 2010
               th
                                       © 2010 Vodafone Group
@eschnou                                                                @alardw
Laurent Eschenauer                                                      Alard Weisscher
Software Engineer                                              User Experience Designer




Laurent Eschenauer & Alard Weisscher        C1 – Public
FOSDEM, Feb 6 2010
               th
                                       © 2010 Vodafone Group
social web noun :




Laurent Eschenauer & Alard Weisscher        C1 – Public
FOSDEM, Feb 6 2010
               th
                                       © 2010 Vodafone Group
social web noun :
An open global distributed data sharing 
network linking people, organizations, 
and  concepts.
                                                               Unknown author, Wikipedia




Laurent Eschenauer & Alard Weisscher        C1 – Public
FOSDEM, Feb 6 2010
               th
                                       © 2010 Vodafone Group
social web noun :
An open global distributed data sharing 
network linking people, organizations, 
and concepts.
                                                               Unknown author, Wikipedia




A free, open, decentralized social 
networking platform supporting an 
ecosystem of social applications.
                                                               Our interpretation

Laurent Eschenauer & Alard Weisscher        C1 – Public
FOSDEM, Feb 6 2010
               th
                                       © 2010 Vodafone Group
many activities related to the Social Web...




Laurent Eschenauer & Alard Weisscher        C1 – Public
FOSDEM, Feb 6 2010
               th
                                       © 2010 Vodafone Group
many activities related to the Social Web...


                                                          activitystrea.ms


         portable contacts




Laurent Eschenauer & Alard Weisscher        C1 – Public
FOSDEM, Feb 6 2010
               th
                                       © 2010 Vodafone Group
many activities related to the Social Web...


                                                          activitystrea.ms


         portable contacts




                                              … yet no global solution


Laurent Eschenauer & Alard Weisscher        C1 – Public
FOSDEM, Feb 6 2010
               th
                                       © 2010 Vodafone Group
Are you sure ?


Laurent Eschenauer & Alard Weisscher        C1 – Public
FOSDEM, Feb 6 2010
               th
                                       © 2010 Vodafone Group
What about XMPP ?


Laurent Eschenauer & Alard Weisscher        C1 – Public
FOSDEM, Feb 6 2010
               th
                                       © 2010 Vodafone Group
identity: user@domain


Laurent Eschenauer & Alard Weisscher        C1 – Public
FOSDEM, Feb 6 2010
               th
                                       © 2010 Vodafone Group
profile: vcard, avatar


Laurent Eschenauer & Alard Weisscher        C1 – Public
FOSDEM, Feb 6 2010
               th
                                       © 2010 Vodafone Group
friends: roster


Laurent Eschenauer & Alard Weisscher        C1 – Public
FOSDEM, Feb 6 2010
               th
                                       © 2010 Vodafone Group
activities : presence


Laurent Eschenauer & Alard Weisscher        C1 – Public
FOSDEM, Feb 6 2010
               th
                                       © 2010 Vodafone Group
activities : IM


Laurent Eschenauer & Alard Weisscher        C1 – Public
FOSDEM, Feb 6 2010
               th
                                       © 2010 Vodafone Group
activities : PEP

PEP: Personal Eventing Protocol (a special PubSub node linked to a JID)

Laurent Eschenauer & Alard Weisscher        C1 – Public
FOSDEM, Feb 6 2010
               th
                                       © 2010 Vodafone Group
is it enough ?


Laurent Eschenauer & Alard Weisscher        C1 – Public
FOSDEM, Feb 6 2010
               th
                                       © 2010 Vodafone Group
is it enough ? No :-(


Laurent Eschenauer & Alard Weisscher        C1 – Public
FOSDEM, Feb 6 2010
               th
                                       © 2010 Vodafone Group
profile
  activities
          relations



Laurent Eschenauer & Alard Weisscher        C1 – Public
FOSDEM, Feb 6 2010
               th
                                       © 2010 Vodafone Group
profile
  activities
          relations
      richer semantics




Laurent Eschenauer & Alard Weisscher        C1 – Public
FOSDEM, Feb 6 2010
               th
                                       © 2010 Vodafone Group
profile
  activities
          relations
      richer semantics
      extensible




Laurent Eschenauer & Alard Weisscher        C1 – Public
FOSDEM, Feb 6 2010
               th
                                       © 2010 Vodafone Group
profile
  activities
          relations
      richer semantics
      extensible
      fine grained access control


Laurent Eschenauer & Alard Weisscher        C1 – Public
FOSDEM, Feb 6 2010
               th
                                       © 2010 Vodafone Group
profile
  activities
          relations
      richer semantics
      extensible
      fine grained access control
      offline

Laurent Eschenauer & Alard Weisscher        C1 – Public
FOSDEM, Feb 6 2010
               th
                                       © 2010 Vodafone Group
how do we do this ?


Laurent Eschenauer & Alard Weisscher        C1 – Public
FOSDEM, Feb 6 2010
               th
                                       © 2010 Vodafone Group
eXtensible MPP


Laurent Eschenauer & Alard Weisscher        C1 – Public
FOSDEM, Feb 6 2010
               th
                                       © 2010 Vodafone Group
Laurent Eschenauer & Alard Weisscher        C1 – Public
FOSDEM, Feb 6 2010
               th
                                       © 2010 Vodafone Group
4 extensions (very early drafts)




Laurent Eschenauer & Alard Weisscher        C1 – Public
FOSDEM, Feb 6 2010
               th
                                       © 2010 Vodafone Group
4 extensions (very early drafts)
                     Social activities
                     Social profile

                     Social relations

                     Social interactions




Laurent Eschenauer & Alard Weisscher        C1 – Public
FOSDEM, Feb 6 2010
               th
                                       © 2010 Vodafone Group
4 extensions (very early drafts)
                     Social activities
                     Social profile

                     Social relations

                     Social interactions




               Both server-server and client-server

Laurent Eschenauer & Alard Weisscher        C1 – Public
FOSDEM, Feb 6 2010
               th
                                       © 2010 Vodafone Group
“dwarf on the shoulders of 
         giants”
                                                               Bernard of Chartres, 1200




Laurent Eschenauer & Alard Weisscher        C1 – Public
FOSDEM, Feb 6 2010
               th
                                       © 2010 Vodafone Group
profile:
Portable Contacts

http://wiki.portablecontacts.net/
Laurent Eschenauer & Alard Weisscher        C1 – Public
FOSDEM, Feb 6 2010
               th
                                       © 2010 Vodafone Group
friends:
XHTML Friends Network

http://gmpg.org/xfn/
Laurent Eschenauer & Alard Weisscher        C1 – Public
FOSDEM, Feb 6 2010
               th
                                       © 2010 Vodafone Group
activities:
activitystrea.ms

http://activitystrea.ms/
Laurent Eschenauer & Alard Weisscher        C1 – Public
FOSDEM, Feb 6 2010
               th
                                       © 2010 Vodafone Group
an example ?


Laurent Eschenauer & Alard Weisscher        C1 – Public
FOSDEM, Feb 6 2010
               th
                                       © 2010 Vodafone Group
Hamlet updates his status


Laurent Eschenauer & Alard Weisscher        C1 – Public
FOSDEM, Feb 6 2010
               th
                                       © 2010 Vodafone Group
Hamlet updates his status
  “to be or not to be...”

Laurent Eschenauer & Alard Weisscher        C1 – Public
FOSDEM, Feb 6 2010
               th
                                       © 2010 Vodafone Group
<iq type='set'from='hamlet@denmark.lit/snsclient'to='denmark.lit'id='osw1'>




</iq>


Laurent Eschenauer & Alard Weisscher        C1 – Public
FOSDEM, Feb 6 2010
               th
                                       © 2010 Vodafone Group
<iq type='set'from='hamlet@denmark.lit/snsclient'to='denmark.lit'id='osw1'>
  <publish xmlns='http://onesocialweb.org/protocol/0.1/activities#publish'>




  </publish>
</iq>


Laurent Eschenauer & Alard Weisscher        C1 – Public
FOSDEM, Feb 6 2010
               th
                                       © 2010 Vodafone Group
<iq type='set'from='hamlet@denmark.lit/snsclient'to='denmark.lit'id='osw1'>
  <publish xmlns='http://onesocialweb.org/protocol/0.1/activities#publish'>
    <entry xmlns='http://www.w3.org/2005/Atom' 
           xmlns:activity='http://activitystrea.ms/spec/1.0/' 
           xmlns:osw='http://onesocialweb.org/spec/1.0/'>
      <title>to be or not to be ?</title>
      <activity:verb>http://activitystrea.ms/schema/1.0/post</activity:verb>
      <activity:object>
        <activity:object­type>
          http://onesocialweb.org/spec/1.0/object/status
        </activity:object­type>
        <content type='text/plain'>to be or not to be ?</content>
      </activity:object>
      <osw:acl­rule>
        <osw:acl­action 
              permission='http://onesocialweb.org/spec/1.0/acl/permission/grant'>
          http://onesocialweb.org/spec/1.0/acl/action/view
        </osw:acl­action>
        <osw:acl­subject 
             type='http://onesocialweb.org/spec/1.0/acl/subject/everyone'/>
      </osw:acl­rule>
    </entry>
  </publish>
</iq>


Laurent Eschenauer & Alard Weisscher        C1 – Public
FOSDEM, Feb 6 2010
               th
                                       © 2010 Vodafone Group
server not a dumb router




Laurent Eschenauer & Alard Weisscher        C1 – Public
FOSDEM, Feb 6 2010
               th
                                       © 2010 Vodafone Group
server not a dumb router
   archive (off-line access)




Laurent Eschenauer & Alard Weisscher        C1 – Public
FOSDEM, Feb 6 2010
               th
                                       © 2010 Vodafone Group
server not a dumb router
   archive (off-line access)
   query, search, filter




Laurent Eschenauer & Alard Weisscher        C1 – Public
FOSDEM, Feb 6 2010
               th
                                       © 2010 Vodafone Group
server not a dumb router
   archive (off-line access)
   query, search, filter
   push notifications




Laurent Eschenauer & Alard Weisscher        C1 – Public
FOSDEM, Feb 6 2010
               th
                                       © 2010 Vodafone Group
server not a dumb router
   archive (off-line access)
   query, search, filter
   push notifications
   manage relationships



Laurent Eschenauer & Alard Weisscher        C1 – Public
FOSDEM, Feb 6 2010
               th
                                       © 2010 Vodafone Group
server not a dumb router
   archive (off-line access)
   query, search, filter
   push notifications
   manage relationships
   enforce access control at item level


Laurent Eschenauer & Alard Weisscher        C1 – Public
FOSDEM, Feb 6 2010
               th
                                       © 2010 Vodafone Group
“practice makes perfect”
                                                               Periander, 600bc




Laurent Eschenauer & Alard Weisscher        C1 – Public
FOSDEM, Feb 6 2010
               th
                                       © 2010 Vodafone Group
server:
Openfire plugin


Open source XMPP server, written in Java, licensed under GPL 2


Laurent Eschenauer & Alard Weisscher        C1 – Public
FOSDEM, Feb 6 2010
               th
                                       © 2010 Vodafone Group
web client:
Google Web Toolkit +
Emite

Emite is a BOSH library ported to Google Web Toolkit


Laurent Eschenauer & Alard Weisscher        C1 – Public
FOSDEM, Feb 6 2010
               th
                                       © 2010 Vodafone Group
mobile:
Android application with
aSmack + custom code

aSmack is a port of Smack to Android, in addition we changed the keep-alive strategy
http://code.google.com/p/asmack/
Laurent Eschenauer & Alard Weisscher        C1 – Public
FOSDEM, Feb 6 2010
               th
                                       © 2010 Vodafone Group
language:
100% Java
30% code reuse

Google Web Toolkit compiles Java code to a Javascript Web Application

Laurent Eschenauer & Alard Weisscher        C1 – Public
FOSDEM, Feb 6 2010
               th
                                       © 2010 Vodafone Group
license:
Apache License 2.0
github.com/onesocialweb

Well.. we are not ready, you'll have to wait end of march to get the code


Laurent Eschenauer & Alard Weisscher        C1 – Public
FOSDEM, Feb 6 2010
               th
                                       © 2010 Vodafone Group
coming up:




Laurent Eschenauer & Alard Weisscher        C1 – Public
FOSDEM, Feb 6 2010
               th
                                       © 2010 Vodafone Group
coming up:
     engage with XMPP community over the extensions




Laurent Eschenauer & Alard Weisscher        C1 – Public
FOSDEM, Feb 6 2010
               th
                                       © 2010 Vodafone Group
coming up:
     engage with XMPP community over the extensions
     engage with servers and clients developers




Laurent Eschenauer & Alard Weisscher        C1 – Public
FOSDEM, Feb 6 2010
               th
                                       © 2010 Vodafone Group
coming up:
     engage with XMPP community over the extensions
     engage with servers and clients developers
     open source the code




Laurent Eschenauer & Alard Weisscher        C1 – Public
FOSDEM, Feb 6 2010
               th
                                       © 2010 Vodafone Group
coming up:
     engage with XMPP community over the extensions
     engage with servers and clients developers
     open source the code
     setup a trial server – open federation




Laurent Eschenauer & Alard Weisscher        C1 – Public
FOSDEM, Feb 6 2010
               th
                                       © 2010 Vodafone Group
coming up:
     engage with XMPP community over the extensions
     engage with servers and clients developers
     open source the code
     setup a trial server – open federation
     develop features, features and more features




Laurent Eschenauer & Alard Weisscher        C1 – Public
FOSDEM, Feb 6 2010
               th
                                       © 2010 Vodafone Group
“We need you, we need your youth, 
    your strength, and your idealism, to 
    help us make right what is wrong.”
                                                               Ronald Reagan




Laurent Eschenauer & Alard Weisscher        C1 – Public
FOSDEM, Feb 6 2010
               th
                                       © 2010 Vodafone Group
info:
http://onesocialweb.org
http://twitter.com/onesocialweb
http://github.com/onesocialweb



Laurent Eschenauer & Alard Weisscher        C1 – Public
FOSDEM, Feb 6 2010
               th
                                       © 2010 Vodafone Group

OneSocialWeb presentation at FOSDEM 2010