SlideShare ist ein Scribd-Unternehmen logo
1 von 70
Downloaden Sie, um offline zu lesen
A platform to build real-time social applications

                  Diana Cheng
 (formerly also: Laurent Eschenauer and Alard
                   Weisscher)
           SeaBeyond - Paris, February 3, 2011
Diana Cheng
Vodafone Group R&D


    @daianacheng
    dcheng@vodafonernd.com
    diana.cheng@vodafone.com
Onesocialweb: a free, open and
decentralized social networking platform
The menu for today


High level overview
Demo
Protocol and data models
OSW on Mobile
Hands on with the API
The Federated Social Web
Q&A
The menu for today


High level overview
Demo
Protocol and data models
OSW on Mobile
Hands on with the API
The Federated Social Web
Q&A
Can we make social communications as simple
and universal as email ?



  Facebook
                             MySpace
                                        Friending and following
             whatever.com
                                         across networks
                                        One identity and yet multiple
                                         communities
                                        Data portability
      360                   Google
A lot of activities in this field...




         … but no such platform yet
protocol   platform   user experience
protocol
A protocol based on open standards




    XMPP          Identity, discovery & communication
Activitystreams   Data model for social objects
    VCard         Data model for profiles
     XFN          Data model for relationships
protocol
Architecture: federated client-server
e.g. Alice updates her status

    wonderland.lit                  realworld.com




               Post a new item
               to her stream




   alice@wonderland.lit            bob@realworld.com
protocol
Architecture: federated client-server
e.g. Alice updates her status

    wonderland.lit                                            realworld.com


                          Push notifications to recipients




   alice@wonderland.lit                                      bob@realworld.com
protocol
Architecture: federated client-server
e.g. Alice updates her status

    wonderland.lit                  realworld.com




                                              Real-time
                                              notifications




   alice@wonderland.lit            bob@realworld.com
protocol
Architecture: federated client-server
e.g. Alice looks up Bob's profile

     wonderland.lit                 realworld.com




               Request profile of
               bob@realworld.com




   alice@wonderland.lit
protocol
Architecture: federated client-server
e.g. Alice looks up Bob's profile

     wonderland.lit                                              realworld.com


                          Request is forwarded to Bob's domain
                          on alice@wonderland.lit behalf.




   alice@wonderland.lit
protocol
Architecture: federated client-server
e.g. Alice looks up Bob's profile

     wonderland.lit                                                 realworld.com


                          Bob's provider replies with the profile
                          data that alice is allowed to see.




   alice@wonderland.lit
protocol
Architecture: federated client-server
e.g. Alice looks up Bob's profile

     wonderland.lit                     realworld.com




               Result is sent back to
               the requesting client




   alice@wonderland.lit
platform
An open source platform

End to end platform
  server backend, client libraries for desktop and mobile


Open source
  Apache 2 license
  http://github.com/onesocialweb

Java
  30% code reuse between components
  Web client written in GWT (Java compiled to Javascript)



       Already available. Easy to setup. Join our growing community to experiment with us
                              and get involved via our mailing list !
user experience
A social network user experience




            web client (HTML + JS)                                Android client


    This is just one implementation of a social networking experience. Keep in mind that
             Onesocialweb is a platform enabling any kind of social applications.
user experience
Community implementations




      HTML5 client                             iPhone client



                     And others in progress!
The menu for today


High level overview
Demo
Protocol and data models
OSW on Mobile
Hands on with the API
The Federated Social Web
Q&A
The menu for today


High level overview
Demo
Protocol and data models
Hands on with the API
OSW on Mobile
Q&A
XMPP
XMPP
Why XMPP for Onesocialweb ?

Web world is synchronous
     - send request
     - wait for answer
     - receive response

XMPP is asynchronous
     - long lived connections
     - event based messaging




From: XMPP 101 by Peter Saint-Andre and Remko Tronco, FOSDEM 2009
XMPP
Why XMPP for Onesocialweb ?

Only technology to achieve such a federation seamlessly:
   Identity (user@domain)
   Security (TLS and S2S with dialback)
   Discovery (XMPP Disco)
   Useful extensions (Roster, PubSub, …)

Doing the same in the web world requires to assemble:
   OpenID (identity)
   Oauth (authentication and authorization)
   Webfinger (discovery and openid on en email)
   Pubsubhubbub (server to server push notifications)
   Salmon (messaging and commenting)
   … and to address a lot of other issues (e.g. Privacy, NAT clients)
Activitystrea.ms
Activitystreams
References

http://activitystrea.ms

The Open and Social Web
Chris Messina
Google I/O 2010
http://code.google.com/events/io/2010/sessions/open-and-social-web.html
The need for machine readable data
1999 – Introduction of RSS
<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0">
 <channel>
   <item>
     <title>When Will Location-Based Coupons Take Off?</title>
     <link>http://bits.blogs.nytimes.com/2010/03/12/when-will-
       location-based-mobile-coupons-take-off/</link>
     <pubDate>Fri, 12 Mar 2010 21:38:26 +0000</pubDate>
     <creator>By CLAIRE CAIN MILLER</creator>
     <description>
       People want to receive location-based cellphone coupons,
       but most have not, according to a Web analytics firm.
     </description>
   </item>
 </channel>
</rss>


                                        title + link + description
From: The Open and Social web, Chris Messina, Google I/O 2010
The need for machine readable data
2005 – Atom addresses some of the shortcomings
<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
 <entry>
    <title>When Will Location-Based Coupons Take Off?</title>
    <link rel=”alternate”>http://bits.blogs.nytimes.com/2010/03/12/when-will-
     location-based-mobile-coupons-take-off/</link>
    <id>urn:uuid:60a76c80-d399-11d9-b91C-0003939e0af6</id>
    <updated>Fri, 12 Mar 2010 21:38:26 +0000</updated>
    <author>
     <name>By CLAIRE CAIN MILLER</name>
    </author>
    <summary>
     People want to receive location-based cellphone coupons,
     but most have not, according to a Web analytics firm.
    </summary>
 </entry>
</feed>
                                        title + link + summary +
                                        author + id + updated
From: The Open and Social web, Chris Messina, Google I/O 2010
Yet, no common way to describe rich social
interactions... leading to proprietary data models




                title + link + summary +
                author + id + updated
Activitystreams provides a common language to
describe social interactions...




            actor verb object target
Activitystreams provides a common language to
describe social interactions...




            eschnou posted a note
Activitystreams provides a common language to
describe social interactions...




     eschnou posted a picture to an album
Activitystreams provides a common language to
describe social interactions...




             eschnou liked a video
… building upon existing Atom elements



            title + link + summary +
            author + id + updated +
            verb + object-type + target
… building upon existing Atom elements

<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:activity="http://activitystrea.ms/spec/1.0/">
 <entry>
    <title>...</title>
    <link rel=”alternate”>...</link>
    <id>...</id>
    <updated>...</updated>
    <author>
     <activity:object-type>person</activity:object-type>
     <name>...</name>
    </author>
    <activity:verb>post</activity:verb>
    <activity:object>
     <activity:object-type>note</activity:object-type>
     <content type=”html”>
       ...
     </content>
    </activity:object>
 </entry>
</feed>



From: The Open and Social web, Chris Messina, Google I/O 2010
Onesocialweb extends this further with context
data and access control rules




 actor verb object target context access-control
Onesocialweb extends it further with context
data and access control rules




      eschnou took a picture in Barcelona,
        it can be seen visible by 'friends'
Putting it all together
Juliet updates her status
“O Romeo, Romeo, wherefore 
     art thou Romeo ?”
<iq type='set' from='juliet@capulet.lit/mobile' to='capulet.lit' id='osw1'>
 <pubsub xmlns="http://jabber.org/protocol/pubsub">
  <publish node=”urn:xmpp:microblog:0”>
   <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>O Romeo, Romeo, wherefore art thou Romeo?</title>
    <activity:verb>http://activitystrea.ms/schema/1.0/post</activity:verb>
    <activity:object>
      <activity:object-type>http://activitystrea.ms/schema/1.0/status</activity:object-type>
      <content>O Romeo, Romeo, wherefore art thou Romeo?</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>http://onesocialweb.org/spec/1.0/acl/subject/everyone</osw:acl-subject>
    </osw:acl-rule>
   </entry>
 </publish>
</pubsub>
</iq>
<iq type='set' from='juliet@capulet.lit/mobile' to='capulet.lit' id='osw1'>
 <pubsub xmlns="http://jabber.org/protocol/pubsub">
  <publish node=”urn:xmpp:microblog:0”>
   <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>O Romeo, Romeo, wherefore art thou Romeo?</title>
    <activity:verb>http://activitystrea.ms/schema/1.0/post</activity:verb>
    <activity:object>
      <activity:object-type>http://activitystrea.ms/schema/1.0/status</activity:object-type>
      <content>O Romeo, Romeo, wherefore art thou Romeo?</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>http://onesocialweb.org/spec/1.0/acl/subject/everyone</osw:acl-subject>
    </osw:acl-rule>
   </entry>
 </publish>
</pubsub>
</iq>
<iq type='set' from='juliet@capulet.lit/mobile' to='capulet.lit' id='osw1'>
 <pubsub xmlns="http://jabber.org/protocol/pubsub">
  <publish node=”urn:xmpp:microblog:0”>
   <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>O Romeo, Romeo, wherefore art thou Romeo?</title>
    <activity:verb>http://activitystrea.ms/schema/1.0/post</activity:verb>
    <activity:object>
      <activity:object-type>http://activitystrea.ms/schema/1.0/status</activity:object-type>
      <content>O Romeo, Romeo, wherefore art thou Romeo?</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>http://onesocialweb.org/spec/1.0/acl/subject/everyone</osw:acl-subject>
    </osw:acl-rule>
   </entry>
 </publish>
</pubsub>
</iq>
<iq type='set' from='juliet@capulet.lit/mobile' to='capulet.lit' id='osw1'>
 <pubsub xmlns="http://jabber.org/protocol/pubsub">
  <publish node=”urn:xmpp:microblog:0”>
   <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>O Romeo, Romeo, wherefore art thou Romeo?</title>
    <activity:verb>http://activitystrea.ms/schema/1.0/post</activity:verb>
    <activity:object>
      <activity:object-type>http://activitystrea.ms/schema/1.0/status</activity:object-type>
      <content>O Romeo, Romeo, wherefore art thou Romeo?</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>http://onesocialweb.org/spec/1.0/acl/subject/everyone</osw:acl-subject>
    </osw:acl-rule>
   </entry>
 </publish>
</pubsub>
</iq>
Evolving spec, but ...

Already been adopted by:

- Facebook
- MySpace
- Windows Live
- Google Buzz
- BBC
- Opera
- Superfeedr

 and many others...
Fine grained access control


- Both public-oriented (Twitter-like) social nodes
  as well as private-oriented Facebook-like social
  nodes
- For activities on a per activity basis
- For profiles on a field per field basis
- for relations, etc
Fine grained access control

- Public
<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>

- Roster-groups
<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/group">
        Family
      </osw:acl-subject>
</osw:acl-rule>
The menu for today


High level overview
Demo
Protocol and data models
OSW on Mobile
Hands on with the API
The Federated Social Web
Q&A
XMPP on Mobile – OSW Android Client

- Reference Implementation
- Android provides background threads necessary for
   real-time notification
- Understand connectivity issues when switching
   bearers or reconnecting (2G/3G/WIFI/No network)
- Impact on battery life
- Network traffic implications
Our implementation

Using some great open source libraries:

- Smack library
- Asmack library
- JZLib library
The menu for today


High level overview
Demo
Protocol and data models
OSW on Mobile
Hands on with the API
The Federated Social Web
Q&A
How would you create a social shopping list
application ?



Create shopping lists
Share them with friends
Collaborate on shopping items
Receive real-time notifications



                                    e.g. Shopulator on Android
Today you need a lot more than a mobile app


We need a back-end                            … and a solution for push
server...                                     notifications
 User registration                            Custom TCP sockets
 Social graph management                      Web sockets


    (e.g. inviting friends)                    Comet (HTTP Long polling)

 Data storage for the shopping list           SMS

 Web API                                      Apple Push Notifications

    (to communicate with the mobile client)    Android C2DM
With Onesocialweb, you focus on your
application and let the protocol do the rest
Create a shopping list object and a user as a collaborator
   ShoppingList list = new ShoppingList();
   list.setTitle(“BBQ on Sunday”);
   list.addItem(“bread”);
   list.addCollaborator(“alice@betavine.net”);
With Onesocialweb, you focus on your
application and let the protocol do the rest
Create a shopping list object and a user as a collaborator
   ShoppingList list = new ShoppingList();
   list.setTitle(“BBQ on Sunday”);
   list.addItem(“bread”);
   list.addCollaborator(“alice@betavine.net”);

Connect to the user account and post the new shopping list
   service.connect(“vodafonernd.com”, 5222, null);
   service.login(“eschnou”, “******”, “shoplist”);
   service.post(list);
With Onesocialweb, you focus on your
application and let the protocol do the rest
Create a shopping list object and a user as a collaborator
   ShoppingList list = new ShoppingList();
   list.setTitle(“BBQ on Sunday”);
   list.addItem(“bread”);
   list.addCollaborator(“alice@betavine.net”);

Connect to the user account and post the new shopping list
   service.connect(“vodafonernd.com”, 5222, null);
   service.login(“eschnou”, “******”, “shoplist”);
   service.post(list);

Listen to incoming social events and act on shopping list
   service.registerInboxEventHandler(new InboxEventHandler() {
     public void handleEvent(InboxEvent event) {
         if (event.getObjectType().equals(“http://acme.com/shoppinglist“)) {
               notify();
       }}});
The power of having a common data model in a
federated network

                          Facebook
                                                      MySpace




  eschnou@facebook.com



                               360                   Google




                                                                mysister@gmail.com
           mymother@360.com


      Realtime picture sharing with friends and family, across networks, and without tight
                              coupling of the social applications
The menu for today


High level overview
Demo
Protocol and data models
OSW on Mobile
Hands on with the API
The Federated Social Web
Q&A
Federated Social Web & SWAT

- Federated Social Web Summit, June 2010 in Portland
- June 2011 in Berlin
- SWAT- Social Web Acid Test
The SWAT0 Use Case

1.With his phone, Dave takes a photo of Tantek and
  uploads it using a service
2.Dave tags the photo with Tantek
3.Tantek gets a notification on another service that he's
  been tagged in a photo
4.Evan, who is subscribed to Dave, sees the photo on
  yet another service
5.Evan comments on the photo
6.David and Tantek receive notifications that Evan has
  commented on the photo
SWAT0 Assumptions

- Dave, Tantek, and Evan have accounts on different
  social networks
- These social networks have at least two different
  codebases
W3C Incubator Group

- More SWAT-like test cases and challenges
- Community-driven specifications
- Ostatus and related protocols (PubSubHubbub,
  ActivityStreams, Salmon, Portable Contacts, and
  Webfinger)
- Other architectures: SMOB and XMPP-based
- Best practices for privacy and security for the
  federated social web.
The menu for today


High level overview
Demo
Protocol and data models
OSW on Mobile
Hands on with the API
The Federated Social Web
Q&A
Get started:

http://onesocialweb.org
http://twitter.com/onesocialweb
http://github.com/onesocialweb

contact@onesocialweb.org

Weitere ähnliche Inhalte

Andere mochten auch

Fighting XMPP abuse and spam with ejabberd - ejabberd Workshop #1
Fighting XMPP abuse and spam with ejabberd - ejabberd Workshop #1Fighting XMPP abuse and spam with ejabberd - ejabberd Workshop #1
Fighting XMPP abuse and spam with ejabberd - ejabberd Workshop #1Mickaël Rémond
 
SeaBeyond 2011 ProcessOne - af83: UCengine
SeaBeyond 2011 ProcessOne - af83: UCengineSeaBeyond 2011 ProcessOne - af83: UCengine
SeaBeyond 2011 ProcessOne - af83: UCengineProcessOne
 
La campagne présidentielle sur Twitter : 12 mars au 18 mars 2012
La campagne présidentielle sur Twitter : 12 mars au 18 mars 2012La campagne présidentielle sur Twitter : 12 mars au 18 mars 2012
La campagne présidentielle sur Twitter : 12 mars au 18 mars 2012ProcessOne
 
Messaging temps réel avec Go
Messaging temps réel avec GoMessaging temps réel avec Go
Messaging temps réel avec GoMickaël Rémond
 
Property-based testing of XMPP: generate your tests automatically - ejabberd ...
Property-based testing of XMPP: generate your tests automatically - ejabberd ...Property-based testing of XMPP: generate your tests automatically - ejabberd ...
Property-based testing of XMPP: generate your tests automatically - ejabberd ...Mickaël Rémond
 
Managing ejabberd Platforms with Docker - ejabberd Workshop #1
Managing ejabberd Platforms with Docker - ejabberd Workshop #1Managing ejabberd Platforms with Docker - ejabberd Workshop #1
Managing ejabberd Platforms with Docker - ejabberd Workshop #1Mickaël Rémond
 
ProcessOne Push Platform: XMPP-based Push Solutions
ProcessOne Push Platform: XMPP-based Push SolutionsProcessOne Push Platform: XMPP-based Push Solutions
ProcessOne Push Platform: XMPP-based Push SolutionsProcessOne
 
Audience twitter des candidats du 21 février au 18 mars 2012 upik
Audience twitter des candidats du 21 février au 18 mars 2012   upikAudience twitter des candidats du 21 février au 18 mars 2012   upik
Audience twitter des candidats du 21 février au 18 mars 2012 upikProcessOne
 
SeaBeyond 2011 ProcessOne - Eric Cestari: XMPP over WebSocket
SeaBeyond 2011 ProcessOne - Eric Cestari: XMPP over WebSocketSeaBeyond 2011 ProcessOne - Eric Cestari: XMPP over WebSocket
SeaBeyond 2011 ProcessOne - Eric Cestari: XMPP over WebSocketProcessOne
 
SeaBeyond 2011 ProcessOne - David Banes: Cleartext microblogging
SeaBeyond 2011 ProcessOne - David Banes: Cleartext microbloggingSeaBeyond 2011 ProcessOne - David Banes: Cleartext microblogging
SeaBeyond 2011 ProcessOne - David Banes: Cleartext microbloggingProcessOne
 
WaveOne server and client by ProcessOne
WaveOne server and client by ProcessOneWaveOne server and client by ProcessOne
WaveOne server and client by ProcessOneMickaël Rémond
 
2015: L'année d'Elixir, Code, écosystème et communauté
2015: L'année d'Elixir, Code, écosystème et communauté2015: L'année d'Elixir, Code, écosystème et communauté
2015: L'année d'Elixir, Code, écosystème et communautéMickaël Rémond
 
Archipel Introduction - ejabberd SF Meetup
Archipel Introduction - ejabberd SF MeetupArchipel Introduction - ejabberd SF Meetup
Archipel Introduction - ejabberd SF MeetupMickaël Rémond
 
A vision for ejabberd - ejabberd SF Meetup
A vision for ejabberd - ejabberd SF MeetupA vision for ejabberd - ejabberd SF Meetup
A vision for ejabberd - ejabberd SF MeetupMickaël Rémond
 
Phoenix Presence: Le service temps réel de Phoenix - Paris.ex #8
Phoenix Presence: Le service temps réel de Phoenix - Paris.ex #8 Phoenix Presence: Le service temps réel de Phoenix - Paris.ex #8
Phoenix Presence: Le service temps réel de Phoenix - Paris.ex #8 Mickaël Rémond
 
Deep Dive Into ejabberd Pubsub Implementation
Deep Dive Into ejabberd Pubsub ImplementationDeep Dive Into ejabberd Pubsub Implementation
Deep Dive Into ejabberd Pubsub ImplementationMickaël Rémond
 

Andere mochten auch (20)

Fighting XMPP abuse and spam with ejabberd - ejabberd Workshop #1
Fighting XMPP abuse and spam with ejabberd - ejabberd Workshop #1Fighting XMPP abuse and spam with ejabberd - ejabberd Workshop #1
Fighting XMPP abuse and spam with ejabberd - ejabberd Workshop #1
 
SeaBeyond 2011 ProcessOne - af83: UCengine
SeaBeyond 2011 ProcessOne - af83: UCengineSeaBeyond 2011 ProcessOne - af83: UCengine
SeaBeyond 2011 ProcessOne - af83: UCengine
 
La campagne présidentielle sur Twitter : 12 mars au 18 mars 2012
La campagne présidentielle sur Twitter : 12 mars au 18 mars 2012La campagne présidentielle sur Twitter : 12 mars au 18 mars 2012
La campagne présidentielle sur Twitter : 12 mars au 18 mars 2012
 
Messaging temps réel avec Go
Messaging temps réel avec GoMessaging temps réel avec Go
Messaging temps réel avec Go
 
Property-based testing of XMPP: generate your tests automatically - ejabberd ...
Property-based testing of XMPP: generate your tests automatically - ejabberd ...Property-based testing of XMPP: generate your tests automatically - ejabberd ...
Property-based testing of XMPP: generate your tests automatically - ejabberd ...
 
XMPP Academy #2
XMPP Academy #2XMPP Academy #2
XMPP Academy #2
 
Managing ejabberd Platforms with Docker - ejabberd Workshop #1
Managing ejabberd Platforms with Docker - ejabberd Workshop #1Managing ejabberd Platforms with Docker - ejabberd Workshop #1
Managing ejabberd Platforms with Docker - ejabberd Workshop #1
 
ProcessOne Push Platform: XMPP-based Push Solutions
ProcessOne Push Platform: XMPP-based Push SolutionsProcessOne Push Platform: XMPP-based Push Solutions
ProcessOne Push Platform: XMPP-based Push Solutions
 
Audience twitter des candidats du 21 février au 18 mars 2012 upik
Audience twitter des candidats du 21 février au 18 mars 2012   upikAudience twitter des candidats du 21 février au 18 mars 2012   upik
Audience twitter des candidats du 21 février au 18 mars 2012 upik
 
SeaBeyond 2011 ProcessOne - Eric Cestari: XMPP over WebSocket
SeaBeyond 2011 ProcessOne - Eric Cestari: XMPP over WebSocketSeaBeyond 2011 ProcessOne - Eric Cestari: XMPP over WebSocket
SeaBeyond 2011 ProcessOne - Eric Cestari: XMPP over WebSocket
 
SeaBeyond 2011 ProcessOne - David Banes: Cleartext microblogging
SeaBeyond 2011 ProcessOne - David Banes: Cleartext microbloggingSeaBeyond 2011 ProcessOne - David Banes: Cleartext microblogging
SeaBeyond 2011 ProcessOne - David Banes: Cleartext microblogging
 
WaveOne server and client by ProcessOne
WaveOne server and client by ProcessOneWaveOne server and client by ProcessOne
WaveOne server and client by ProcessOne
 
2015: L'année d'Elixir, Code, écosystème et communauté
2015: L'année d'Elixir, Code, écosystème et communauté2015: L'année d'Elixir, Code, écosystème et communauté
2015: L'année d'Elixir, Code, écosystème et communauté
 
Archipel Introduction - ejabberd SF Meetup
Archipel Introduction - ejabberd SF MeetupArchipel Introduction - ejabberd SF Meetup
Archipel Introduction - ejabberd SF Meetup
 
Multitasking in iOS 7
Multitasking in iOS 7Multitasking in iOS 7
Multitasking in iOS 7
 
A vision for ejabberd - ejabberd SF Meetup
A vision for ejabberd - ejabberd SF MeetupA vision for ejabberd - ejabberd SF Meetup
A vision for ejabberd - ejabberd SF Meetup
 
OneTeam Media Server
OneTeam Media ServerOneTeam Media Server
OneTeam Media Server
 
Phoenix Presence: Le service temps réel de Phoenix - Paris.ex #8
Phoenix Presence: Le service temps réel de Phoenix - Paris.ex #8 Phoenix Presence: Le service temps réel de Phoenix - Paris.ex #8
Phoenix Presence: Le service temps réel de Phoenix - Paris.ex #8
 
Deep Dive Into ejabberd Pubsub Implementation
Deep Dive Into ejabberd Pubsub ImplementationDeep Dive Into ejabberd Pubsub Implementation
Deep Dive Into ejabberd Pubsub Implementation
 
XMPP Academy #3
XMPP Academy #3XMPP Academy #3
XMPP Academy #3
 

Ähnlich wie SeaBeyond 2011 ProcessOne - Diana Cheng: OneSocialWeb

C# Client to Cloud
C# Client to CloudC# Client to Cloud
C# Client to CloudStuart Lodge
 
Lightbend Fast Data Platform
Lightbend Fast Data PlatformLightbend Fast Data Platform
Lightbend Fast Data PlatformLightbend
 
Serverless Applications on AWS
Serverless Applications on AWSServerless Applications on AWS
Serverless Applications on AWSDean Bryen
 
Real World Azure - Dev
Real World Azure - DevReal World Azure - Dev
Real World Azure - DevClint Edmonson
 
O Dell Secure360 Presentation5 12 10b
O Dell Secure360 Presentation5 12 10bO Dell Secure360 Presentation5 12 10b
O Dell Secure360 Presentation5 12 10bBruce O'Dell
 
Report From JavaOne 2009 - part 3
Report From JavaOne 2009 - part 3Report From JavaOne 2009 - part 3
Report From JavaOne 2009 - part 3Lucas Jellema
 
Amazon
AmazonAmazon
Amazoniamzkz
 
Building Highly Scalable Web Applications
Building Highly Scalable Web ApplicationsBuilding Highly Scalable Web Applications
Building Highly Scalable Web ApplicationsIWMW
 
ArcReady - Architecting For The Cloud
ArcReady - Architecting For The CloudArcReady - Architecting For The Cloud
ArcReady - Architecting For The CloudMicrosoft ArcReady
 
Social Photos - My presentation at Microsoft Tech Day
Social Photos - My presentation at Microsoft Tech DaySocial Photos - My presentation at Microsoft Tech Day
Social Photos - My presentation at Microsoft Tech DayTechMaster Vietnam
 
Building Social Enterprise with Ruby and Salesforce
Building Social Enterprise with Ruby and SalesforceBuilding Social Enterprise with Ruby and Salesforce
Building Social Enterprise with Ruby and SalesforceRaymond Gao
 
API Management and OAuth for Web, Mobile and the Cloud: Scott Morrison's Pres...
API Management and OAuth for Web, Mobile and the Cloud: Scott Morrison's Pres...API Management and OAuth for Web, Mobile and the Cloud: Scott Morrison's Pres...
API Management and OAuth for Web, Mobile and the Cloud: Scott Morrison's Pres...CA API Management
 
Onesocialweb Presentation at OTA10
Onesocialweb Presentation at OTA10Onesocialweb Presentation at OTA10
Onesocialweb Presentation at OTA10dianacheng
 
Alex Wade, Digital Library Interoperability
Alex Wade, Digital Library InteroperabilityAlex Wade, Digital Library Interoperability
Alex Wade, Digital Library Interoperabilityparker01
 
Cloud integration and tools
Cloud integration and toolsCloud integration and tools
Cloud integration and toolsI8Cstage
 
Blockchain Beyond Finance - Cronos Groep - Jan 17, 2017
 Blockchain Beyond Finance - Cronos Groep - Jan 17, 2017 Blockchain Beyond Finance - Cronos Groep - Jan 17, 2017
Blockchain Beyond Finance - Cronos Groep - Jan 17, 2017BigchainDB
 
data-mesh-101.pptx
data-mesh-101.pptxdata-mesh-101.pptx
data-mesh-101.pptxTarekHamdi8
 
Node.js Frameworks & Design Patterns Webinar
Node.js Frameworks & Design Patterns WebinarNode.js Frameworks & Design Patterns Webinar
Node.js Frameworks & Design Patterns WebinarShubhra Kar
 

Ähnlich wie SeaBeyond 2011 ProcessOne - Diana Cheng: OneSocialWeb (20)

C# Client to Cloud
C# Client to CloudC# Client to Cloud
C# Client to Cloud
 
Lightbend Fast Data Platform
Lightbend Fast Data PlatformLightbend Fast Data Platform
Lightbend Fast Data Platform
 
Serverless Apps on AWS
Serverless Apps on AWS Serverless Apps on AWS
Serverless Apps on AWS
 
Serverless Applications on AWS
Serverless Applications on AWSServerless Applications on AWS
Serverless Applications on AWS
 
Andy Malone - The new office 365 for it pro's
Andy Malone - The new office 365 for it pro'sAndy Malone - The new office 365 for it pro's
Andy Malone - The new office 365 for it pro's
 
Real World Azure - Dev
Real World Azure - DevReal World Azure - Dev
Real World Azure - Dev
 
O Dell Secure360 Presentation5 12 10b
O Dell Secure360 Presentation5 12 10bO Dell Secure360 Presentation5 12 10b
O Dell Secure360 Presentation5 12 10b
 
Report From JavaOne 2009 - part 3
Report From JavaOne 2009 - part 3Report From JavaOne 2009 - part 3
Report From JavaOne 2009 - part 3
 
Amazon
AmazonAmazon
Amazon
 
Building Highly Scalable Web Applications
Building Highly Scalable Web ApplicationsBuilding Highly Scalable Web Applications
Building Highly Scalable Web Applications
 
ArcReady - Architecting For The Cloud
ArcReady - Architecting For The CloudArcReady - Architecting For The Cloud
ArcReady - Architecting For The Cloud
 
Social Photos - My presentation at Microsoft Tech Day
Social Photos - My presentation at Microsoft Tech DaySocial Photos - My presentation at Microsoft Tech Day
Social Photos - My presentation at Microsoft Tech Day
 
Building Social Enterprise with Ruby and Salesforce
Building Social Enterprise with Ruby and SalesforceBuilding Social Enterprise with Ruby and Salesforce
Building Social Enterprise with Ruby and Salesforce
 
API Management and OAuth for Web, Mobile and the Cloud: Scott Morrison's Pres...
API Management and OAuth for Web, Mobile and the Cloud: Scott Morrison's Pres...API Management and OAuth for Web, Mobile and the Cloud: Scott Morrison's Pres...
API Management and OAuth for Web, Mobile and the Cloud: Scott Morrison's Pres...
 
Onesocialweb Presentation at OTA10
Onesocialweb Presentation at OTA10Onesocialweb Presentation at OTA10
Onesocialweb Presentation at OTA10
 
Alex Wade, Digital Library Interoperability
Alex Wade, Digital Library InteroperabilityAlex Wade, Digital Library Interoperability
Alex Wade, Digital Library Interoperability
 
Cloud integration and tools
Cloud integration and toolsCloud integration and tools
Cloud integration and tools
 
Blockchain Beyond Finance - Cronos Groep - Jan 17, 2017
 Blockchain Beyond Finance - Cronos Groep - Jan 17, 2017 Blockchain Beyond Finance - Cronos Groep - Jan 17, 2017
Blockchain Beyond Finance - Cronos Groep - Jan 17, 2017
 
data-mesh-101.pptx
data-mesh-101.pptxdata-mesh-101.pptx
data-mesh-101.pptx
 
Node.js Frameworks & Design Patterns Webinar
Node.js Frameworks & Design Patterns WebinarNode.js Frameworks & Design Patterns Webinar
Node.js Frameworks & Design Patterns Webinar
 

SeaBeyond 2011 ProcessOne - Diana Cheng: OneSocialWeb

  • 1. A platform to build real-time social applications Diana Cheng (formerly also: Laurent Eschenauer and Alard Weisscher) SeaBeyond - Paris, February 3, 2011
  • 2. Diana Cheng Vodafone Group R&D @daianacheng dcheng@vodafonernd.com diana.cheng@vodafone.com
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10. Onesocialweb: a free, open and decentralized social networking platform
  • 11. The menu for today High level overview Demo Protocol and data models OSW on Mobile Hands on with the API The Federated Social Web Q&A
  • 12. The menu for today High level overview Demo Protocol and data models OSW on Mobile Hands on with the API The Federated Social Web Q&A
  • 13. Can we make social communications as simple and universal as email ? Facebook MySpace  Friending and following whatever.com across networks  One identity and yet multiple communities  Data portability 360 Google
  • 14. A lot of activities in this field... … but no such platform yet
  • 15. protocol platform user experience
  • 16. protocol A protocol based on open standards XMPP Identity, discovery & communication Activitystreams Data model for social objects VCard Data model for profiles XFN Data model for relationships
  • 17. protocol Architecture: federated client-server e.g. Alice updates her status wonderland.lit realworld.com Post a new item to her stream alice@wonderland.lit bob@realworld.com
  • 18. protocol Architecture: federated client-server e.g. Alice updates her status wonderland.lit realworld.com Push notifications to recipients alice@wonderland.lit bob@realworld.com
  • 19. protocol Architecture: federated client-server e.g. Alice updates her status wonderland.lit realworld.com Real-time notifications alice@wonderland.lit bob@realworld.com
  • 20. protocol Architecture: federated client-server e.g. Alice looks up Bob's profile wonderland.lit realworld.com Request profile of bob@realworld.com alice@wonderland.lit
  • 21. protocol Architecture: federated client-server e.g. Alice looks up Bob's profile wonderland.lit realworld.com Request is forwarded to Bob's domain on alice@wonderland.lit behalf. alice@wonderland.lit
  • 22. protocol Architecture: federated client-server e.g. Alice looks up Bob's profile wonderland.lit realworld.com Bob's provider replies with the profile data that alice is allowed to see. alice@wonderland.lit
  • 23. protocol Architecture: federated client-server e.g. Alice looks up Bob's profile wonderland.lit realworld.com Result is sent back to the requesting client alice@wonderland.lit
  • 24. platform An open source platform End to end platform server backend, client libraries for desktop and mobile Open source Apache 2 license http://github.com/onesocialweb Java 30% code reuse between components Web client written in GWT (Java compiled to Javascript) Already available. Easy to setup. Join our growing community to experiment with us and get involved via our mailing list !
  • 25. user experience A social network user experience web client (HTML + JS) Android client This is just one implementation of a social networking experience. Keep in mind that Onesocialweb is a platform enabling any kind of social applications.
  • 26. user experience Community implementations HTML5 client iPhone client And others in progress!
  • 27. The menu for today High level overview Demo Protocol and data models OSW on Mobile Hands on with the API The Federated Social Web Q&A
  • 28. The menu for today High level overview Demo Protocol and data models Hands on with the API OSW on Mobile Q&A
  • 29. XMPP
  • 30. XMPP Why XMPP for Onesocialweb ? Web world is synchronous - send request - wait for answer - receive response XMPP is asynchronous - long lived connections - event based messaging From: XMPP 101 by Peter Saint-Andre and Remko Tronco, FOSDEM 2009
  • 31. XMPP Why XMPP for Onesocialweb ? Only technology to achieve such a federation seamlessly:  Identity (user@domain)  Security (TLS and S2S with dialback)  Discovery (XMPP Disco)  Useful extensions (Roster, PubSub, …) Doing the same in the web world requires to assemble:  OpenID (identity)  Oauth (authentication and authorization)  Webfinger (discovery and openid on en email)  Pubsubhubbub (server to server push notifications)  Salmon (messaging and commenting)  … and to address a lot of other issues (e.g. Privacy, NAT clients)
  • 33. Activitystreams References http://activitystrea.ms The Open and Social Web Chris Messina Google I/O 2010 http://code.google.com/events/io/2010/sessions/open-and-social-web.html
  • 34. The need for machine readable data 1999 – Introduction of RSS <?xml version="1.0" encoding="utf-8"?> <rss version="2.0"> <channel> <item> <title>When Will Location-Based Coupons Take Off?</title> <link>http://bits.blogs.nytimes.com/2010/03/12/when-will- location-based-mobile-coupons-take-off/</link> <pubDate>Fri, 12 Mar 2010 21:38:26 +0000</pubDate> <creator>By CLAIRE CAIN MILLER</creator> <description> People want to receive location-based cellphone coupons, but most have not, according to a Web analytics firm. </description> </item> </channel> </rss> title + link + description From: The Open and Social web, Chris Messina, Google I/O 2010
  • 35. The need for machine readable data 2005 – Atom addresses some of the shortcomings <?xml version="1.0" encoding="utf-8"?> <feed xmlns="http://www.w3.org/2005/Atom"> <entry> <title>When Will Location-Based Coupons Take Off?</title> <link rel=”alternate”>http://bits.blogs.nytimes.com/2010/03/12/when-will- location-based-mobile-coupons-take-off/</link> <id>urn:uuid:60a76c80-d399-11d9-b91C-0003939e0af6</id> <updated>Fri, 12 Mar 2010 21:38:26 +0000</updated> <author> <name>By CLAIRE CAIN MILLER</name> </author> <summary> People want to receive location-based cellphone coupons, but most have not, according to a Web analytics firm. </summary> </entry> </feed> title + link + summary + author + id + updated From: The Open and Social web, Chris Messina, Google I/O 2010
  • 36. Yet, no common way to describe rich social interactions... leading to proprietary data models title + link + summary + author + id + updated
  • 37. Activitystreams provides a common language to describe social interactions... actor verb object target
  • 38. Activitystreams provides a common language to describe social interactions... eschnou posted a note
  • 39. Activitystreams provides a common language to describe social interactions... eschnou posted a picture to an album
  • 40. Activitystreams provides a common language to describe social interactions... eschnou liked a video
  • 41. … building upon existing Atom elements title + link + summary + author + id + updated + verb + object-type + target
  • 42. … building upon existing Atom elements <?xml version="1.0" encoding="utf-8"?> <feed xmlns="http://www.w3.org/2005/Atom" xmlns:activity="http://activitystrea.ms/spec/1.0/"> <entry> <title>...</title> <link rel=”alternate”>...</link> <id>...</id> <updated>...</updated> <author> <activity:object-type>person</activity:object-type> <name>...</name> </author> <activity:verb>post</activity:verb> <activity:object> <activity:object-type>note</activity:object-type> <content type=”html”> ... </content> </activity:object> </entry> </feed> From: The Open and Social web, Chris Messina, Google I/O 2010
  • 43. Onesocialweb extends this further with context data and access control rules actor verb object target context access-control
  • 44. Onesocialweb extends it further with context data and access control rules eschnou took a picture in Barcelona, it can be seen visible by 'friends'
  • 45. Putting it all together
  • 46. Juliet updates her status “O Romeo, Romeo, wherefore  art thou Romeo ?”
  • 47. <iq type='set' from='juliet@capulet.lit/mobile' to='capulet.lit' id='osw1'> <pubsub xmlns="http://jabber.org/protocol/pubsub"> <publish node=”urn:xmpp:microblog:0”> <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>O Romeo, Romeo, wherefore art thou Romeo?</title> <activity:verb>http://activitystrea.ms/schema/1.0/post</activity:verb> <activity:object> <activity:object-type>http://activitystrea.ms/schema/1.0/status</activity:object-type> <content>O Romeo, Romeo, wherefore art thou Romeo?</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>http://onesocialweb.org/spec/1.0/acl/subject/everyone</osw:acl-subject> </osw:acl-rule> </entry> </publish> </pubsub> </iq>
  • 48. <iq type='set' from='juliet@capulet.lit/mobile' to='capulet.lit' id='osw1'> <pubsub xmlns="http://jabber.org/protocol/pubsub"> <publish node=”urn:xmpp:microblog:0”> <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>O Romeo, Romeo, wherefore art thou Romeo?</title> <activity:verb>http://activitystrea.ms/schema/1.0/post</activity:verb> <activity:object> <activity:object-type>http://activitystrea.ms/schema/1.0/status</activity:object-type> <content>O Romeo, Romeo, wherefore art thou Romeo?</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>http://onesocialweb.org/spec/1.0/acl/subject/everyone</osw:acl-subject> </osw:acl-rule> </entry> </publish> </pubsub> </iq>
  • 49. <iq type='set' from='juliet@capulet.lit/mobile' to='capulet.lit' id='osw1'> <pubsub xmlns="http://jabber.org/protocol/pubsub"> <publish node=”urn:xmpp:microblog:0”> <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>O Romeo, Romeo, wherefore art thou Romeo?</title> <activity:verb>http://activitystrea.ms/schema/1.0/post</activity:verb> <activity:object> <activity:object-type>http://activitystrea.ms/schema/1.0/status</activity:object-type> <content>O Romeo, Romeo, wherefore art thou Romeo?</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>http://onesocialweb.org/spec/1.0/acl/subject/everyone</osw:acl-subject> </osw:acl-rule> </entry> </publish> </pubsub> </iq>
  • 50. <iq type='set' from='juliet@capulet.lit/mobile' to='capulet.lit' id='osw1'> <pubsub xmlns="http://jabber.org/protocol/pubsub"> <publish node=”urn:xmpp:microblog:0”> <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>O Romeo, Romeo, wherefore art thou Romeo?</title> <activity:verb>http://activitystrea.ms/schema/1.0/post</activity:verb> <activity:object> <activity:object-type>http://activitystrea.ms/schema/1.0/status</activity:object-type> <content>O Romeo, Romeo, wherefore art thou Romeo?</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>http://onesocialweb.org/spec/1.0/acl/subject/everyone</osw:acl-subject> </osw:acl-rule> </entry> </publish> </pubsub> </iq>
  • 51. Evolving spec, but ... Already been adopted by: - Facebook - MySpace - Windows Live - Google Buzz - BBC - Opera - Superfeedr and many others...
  • 52. Fine grained access control - Both public-oriented (Twitter-like) social nodes as well as private-oriented Facebook-like social nodes - For activities on a per activity basis - For profiles on a field per field basis - for relations, etc
  • 53. Fine grained access control - Public <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> - Roster-groups <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/group"> Family </osw:acl-subject> </osw:acl-rule>
  • 54. The menu for today High level overview Demo Protocol and data models OSW on Mobile Hands on with the API The Federated Social Web Q&A
  • 55. XMPP on Mobile – OSW Android Client - Reference Implementation - Android provides background threads necessary for real-time notification - Understand connectivity issues when switching bearers or reconnecting (2G/3G/WIFI/No network) - Impact on battery life - Network traffic implications
  • 56. Our implementation Using some great open source libraries: - Smack library - Asmack library - JZLib library
  • 57. The menu for today High level overview Demo Protocol and data models OSW on Mobile Hands on with the API The Federated Social Web Q&A
  • 58. How would you create a social shopping list application ? Create shopping lists Share them with friends Collaborate on shopping items Receive real-time notifications e.g. Shopulator on Android
  • 59. Today you need a lot more than a mobile app We need a back-end … and a solution for push server... notifications  User registration  Custom TCP sockets  Social graph management  Web sockets (e.g. inviting friends)  Comet (HTTP Long polling)  Data storage for the shopping list  SMS  Web API  Apple Push Notifications (to communicate with the mobile client)  Android C2DM
  • 60. With Onesocialweb, you focus on your application and let the protocol do the rest Create a shopping list object and a user as a collaborator ShoppingList list = new ShoppingList(); list.setTitle(“BBQ on Sunday”); list.addItem(“bread”); list.addCollaborator(“alice@betavine.net”);
  • 61. With Onesocialweb, you focus on your application and let the protocol do the rest Create a shopping list object and a user as a collaborator ShoppingList list = new ShoppingList(); list.setTitle(“BBQ on Sunday”); list.addItem(“bread”); list.addCollaborator(“alice@betavine.net”); Connect to the user account and post the new shopping list service.connect(“vodafonernd.com”, 5222, null); service.login(“eschnou”, “******”, “shoplist”); service.post(list);
  • 62. With Onesocialweb, you focus on your application and let the protocol do the rest Create a shopping list object and a user as a collaborator ShoppingList list = new ShoppingList(); list.setTitle(“BBQ on Sunday”); list.addItem(“bread”); list.addCollaborator(“alice@betavine.net”); Connect to the user account and post the new shopping list service.connect(“vodafonernd.com”, 5222, null); service.login(“eschnou”, “******”, “shoplist”); service.post(list); Listen to incoming social events and act on shopping list service.registerInboxEventHandler(new InboxEventHandler() { public void handleEvent(InboxEvent event) { if (event.getObjectType().equals(“http://acme.com/shoppinglist“)) { notify(); }}});
  • 63. The power of having a common data model in a federated network Facebook MySpace eschnou@facebook.com 360 Google mysister@gmail.com mymother@360.com Realtime picture sharing with friends and family, across networks, and without tight coupling of the social applications
  • 64. The menu for today High level overview Demo Protocol and data models OSW on Mobile Hands on with the API The Federated Social Web Q&A
  • 65. Federated Social Web & SWAT - Federated Social Web Summit, June 2010 in Portland - June 2011 in Berlin - SWAT- Social Web Acid Test
  • 66. The SWAT0 Use Case 1.With his phone, Dave takes a photo of Tantek and uploads it using a service 2.Dave tags the photo with Tantek 3.Tantek gets a notification on another service that he's been tagged in a photo 4.Evan, who is subscribed to Dave, sees the photo on yet another service 5.Evan comments on the photo 6.David and Tantek receive notifications that Evan has commented on the photo
  • 67. SWAT0 Assumptions - Dave, Tantek, and Evan have accounts on different social networks - These social networks have at least two different codebases
  • 68. W3C Incubator Group - More SWAT-like test cases and challenges - Community-driven specifications - Ostatus and related protocols (PubSubHubbub, ActivityStreams, Salmon, Portable Contacts, and Webfinger) - Other architectures: SMOB and XMPP-based - Best practices for privacy and security for the federated social web.
  • 69. The menu for today High level overview Demo Protocol and data models OSW on Mobile Hands on with the API The Federated Social Web Q&A