Top Banner
Laurent Eschenauer June 17 th 2010 C1 – Public ©2010 Vodafone Group Services Ltd. A platform to build real-time social applications Laurent Eschenauer Mobile 2.0 Europe June 17 th - Barcelona
70

Introduction to onesocialweb protocol and API

May 11, 2015

Download

Technology

Slides of the workshop given at Mobile 2 Europe in Barcelona on June 17th.
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Introduction to onesocialweb protocol and API

Laurent EschenauerJune 17th 2010

C1 – Public©2010 Vodafone Group Services Ltd.

A platform to build real-time social applications

Laurent Eschenauer

Mobile 2.0 EuropeJune 17th - Barcelona

Page 2: Introduction to onesocialweb protocol and API

Laurent EschenauerJune 17th 2010

C1 – Public©2010 Vodafone Group Services Ltd.

@eschnou

[email protected]

[email protected]

Laurent EschenauerSenior Research EngineerVodafone Group R&D

Page 3: Introduction to onesocialweb protocol and API

Laurent EschenauerJune 17th 2010

C1 – Public©2010 Vodafone Group Services Ltd.

Ask questions !

Page 4: Introduction to onesocialweb protocol and API

Laurent EschenauerJune 17th 2010

C1 – Public©2010 Vodafone Group Services Ltd.

Page 5: Introduction to onesocialweb protocol and API

Laurent EschenauerJune 17th 2010

C1 – Public©2010 Vodafone Group Services Ltd.

Page 6: Introduction to onesocialweb protocol and API

Laurent EschenauerJune 17th 2010

C1 – Public©2010 Vodafone Group Services Ltd.

Page 7: Introduction to onesocialweb protocol and API

Laurent EschenauerJune 17th 2010

C1 – Public©2010 Vodafone Group Services Ltd.

Page 8: Introduction to onesocialweb protocol and API

Laurent EschenauerJune 17th 2010

C1 – Public©2010 Vodafone Group Services Ltd.

Page 9: Introduction to onesocialweb protocol and API

Laurent EschenauerJune 17th 2010

C1 – Public©2010 Vodafone Group Services Ltd.

Page 10: Introduction to onesocialweb protocol and API

Laurent EschenauerJune 17th 2010

C1 – Public©2010 Vodafone Group Services Ltd.

Page 11: Introduction to onesocialweb protocol and API

Laurent EschenauerJune 17th 2010

C1 – Public©2010 Vodafone Group Services Ltd.

Onesocialweb: a free, open and decentralized social networking platform

Page 12: Introduction to onesocialweb protocol and API

Laurent EschenauerJune 17th 2010

C1 – Public©2010 Vodafone Group Services Ltd.

The menu for today

High level overviewDemoProtocol and data modelsHands on with the APIQ&A

Page 13: Introduction to onesocialweb protocol and API

Laurent EschenauerJune 17th 2010

C1 – Public©2010 Vodafone Group Services Ltd.

The menu for today

High level overviewDemoProtocol and data modelsHands on with the APIQ&A

Page 14: Introduction to onesocialweb protocol and API

Laurent EschenauerJune 17th 2010

C1 – Public©2010 Vodafone Group Services Ltd.

Can we make social communications as simple and universal as email ?

Facebook

360

MySpace

Google

whatever.com

Friending and following across networks

One identity and yet multiple communities

Data portability

Page 15: Introduction to onesocialweb protocol and API

Laurent EschenauerJune 17th 2010

C1 – Public©2010 Vodafone Group Services Ltd.

A lot of activities in this field...

… but no such platform yet

Page 16: Introduction to onesocialweb protocol and API

Laurent EschenauerJune 17th 2010

C1 – Public©2010 Vodafone Group Services Ltd.

protocol platform user experience

Page 17: Introduction to onesocialweb protocol and API

Laurent EschenauerJune 17th 2010

C1 – Public©2010 Vodafone Group Services Ltd.

protocol

A protocol based on open standards

Identity, discovery & communication

Data model for social objects

Data model for profiles

Data model for relationships

XMPP

Activitystreams

VCard

XFN

Page 18: Introduction to onesocialweb protocol and API

Laurent EschenauerJune 17th 2010

C1 – Public©2010 Vodafone Group Services Ltd.

[email protected] [email protected]

wonderland.lit realworld.com

Post a new item to her stream

Architecture: federated client-servere.g. Alice updates her status

protocol

Page 19: Introduction to onesocialweb protocol and API

Laurent EschenauerJune 17th 2010

C1 – Public©2010 Vodafone Group Services Ltd.

[email protected] [email protected]

wonderland.lit realworld.com

Push notifications to recipients

Architecture: federated client-servere.g. Alice updates her status

protocol

Page 20: Introduction to onesocialweb protocol and API

Laurent EschenauerJune 17th 2010

C1 – Public©2010 Vodafone Group Services Ltd.

[email protected] [email protected]

wonderland.lit realworld.com

Real-time notifications

Architecture: federated client-servere.g. Alice updates her status

protocol

Page 21: Introduction to onesocialweb protocol and API

Laurent EschenauerJune 17th 2010

C1 – Public©2010 Vodafone Group Services Ltd.

[email protected]

wonderland.lit realworld.com

Request profile of [email protected]

Architecture: federated client-servere.g. Alice looks up Bob's profile

protocol

Page 22: Introduction to onesocialweb protocol and API

Laurent EschenauerJune 17th 2010

C1 – Public©2010 Vodafone Group Services Ltd.

[email protected]

wonderland.lit realworld.com

Request is forwarded to Bob's domainon [email protected] behalf.

Architecture: federated client-servere.g. Alice looks up Bob's profile

protocol

Page 23: Introduction to onesocialweb protocol and API

Laurent EschenauerJune 17th 2010

C1 – Public©2010 Vodafone Group Services Ltd.

[email protected]

wonderland.lit realworld.com

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

Architecture: federated client-servere.g. Alice looks up Bob's profile

protocol

Page 24: Introduction to onesocialweb protocol and API

Laurent EschenauerJune 17th 2010

C1 – Public©2010 Vodafone Group Services Ltd.

[email protected]

wonderland.lit realworld.com

Result is sent back to the requesting client

Architecture: federated client-servere.g. Alice looks up Bob's profile

protocol

Page 25: Introduction to onesocialweb protocol and API

Laurent EschenauerJune 17th 2010

C1 – Public©2010 Vodafone Group Services Ltd.

An open source platform

End to end platformserver backend, client libraries for desktop and mobile

Open sourceApache 2 licensehttp://github.com/onesocialweb

Java30% code reuse between componentsWeb client written in GWT (Java compiled to Javascript)

platform

Already available. Easy to setup. Join our growing community to experiment with us

and get involved via our mailing list !

Page 26: Introduction to onesocialweb protocol and API

Laurent EschenauerJune 17th 2010

C1 – Public©2010 Vodafone Group Services Ltd.

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.

Page 27: Introduction to onesocialweb protocol and API

Laurent EschenauerJune 17th 2010

C1 – Public©2010 Vodafone Group Services Ltd.

The menu for today

High level overviewDemoProtocol and data modelsHands on with the APIQ&A

Page 28: Introduction to onesocialweb protocol and API

Laurent EschenauerJune 17th 2010

C1 – Public©2010 Vodafone Group Services Ltd.

The menu for today

High level overviewDemoProtocol and data modelsHands on with the APIQ&A

Page 29: Introduction to onesocialweb protocol and API

Laurent EschenauerJune 17th 2010

C1 – Public©2010 Vodafone Group Services Ltd.

XMPP

Page 30: Introduction to onesocialweb protocol and API

Laurent EschenauerJune 17th 2010

C1 – Public©2010 Vodafone Group Services Ltd.

References

XMPP: The definitive guidePeter Saint-Andre, Remko Troncon, Kevin SmithO'Reilly 1999ISBN: 978-0-596-52126-4

XMPP 101Peter Saint-Andre & Remko TronconFOSDEM 2009http://el-tramo.be/blog/xmpp-101-fosdem

XMPP

Page 31: Introduction to onesocialweb protocol and API

Laurent EschenauerJune 17th 2010

C1 – Public©2010 Vodafone Group Services Ltd.

Architecture

Web is a browser (thin client) – server architecture

wonderland.litweb server

realworld.comweb server

browser

From: XMPP 101 by Peter Saint-Andre and Remko Tronco, FOSDEM 2009

XMPP

Page 32: Introduction to onesocialweb protocol and API

Laurent EschenauerJune 17th 2010

C1 – Public©2010 Vodafone Group Services Ltd.

Architecture

Email is client – server with multi-hop federation

wonderland.litemail server

realworld.comemail server

email [email protected]

between.orgemail server

email [email protected]

From: XMPP 101 by Peter Saint-Andre and Remko Tronco, FOSDEM 2009

XMPP

Page 33: Introduction to onesocialweb protocol and API

Laurent EschenauerJune 17th 2010

C1 – Public©2010 Vodafone Group Services Ltd.

Architecture

XMPP is a client – server with single hop federation

wonderland.litxmpp server

realworld.comxmpp server

xmpp [email protected]

xmpp [email protected]

From: XMPP 101 by Peter Saint-Andre and Remko Tronco, FOSDEM 2009

XMPP

Page 34: Introduction to onesocialweb protocol and API

Laurent EschenauerJune 17th 2010

C1 – Public©2010 Vodafone Group Services Ltd.

Similar to email

Addressing

User Domain

[email protected]

Bare JID (Jabber ID)

From: XMPP 101 by Peter Saint-Andre and Remko Tronco, FOSDEM 2009

XMPP

Page 35: Introduction to onesocialweb protocol and API

Laurent EschenauerJune 17th 2010

C1 – Public©2010 Vodafone Group Services Ltd.

Similar to email – with an added resource

Addressing

User Domain Resource

[email protected]/rabbithole

Full JID (Jabber ID)

From: XMPP 101 by Peter Saint-Andre and Remko Tronco, FOSDEM 2009

XMPP

Page 36: Introduction to onesocialweb protocol and API

Laurent EschenauerJune 17th 2010

C1 – Public©2010 Vodafone Group Services Ltd.

Streaming XML <stream: stream> <presence/>

<iq type="get"> <query xmlns="jabber:iq:roster"/> </iq>

<iq type="result"> <query xmlns="jabber:iq:roster"> <item jid="[email protected]"/> <item jid="[email protected]"/> <item jid="[email protected]"/> </query> </iq>

<message from="[email protected]" to="[email protected]"> <body>Off with his head!</body> </message>

<message from="[email protected]" to="[email protected]"> <body>You are all pardoned.</body> </message>

<presence type="unavailable"/></stream: stream>

From: XMPP 101 by Peter Saint-Andre and Remko Tronco, FOSDEM 2009

XMPP

Page 37: Introduction to onesocialweb protocol and API

Laurent EschenauerJune 17th 2010

C1 – Public©2010 Vodafone Group Services Ltd.

Communication based on three “stanzas”

<message />

<presence />

<iq />

XMPP

From: XMPP 101 by Peter Saint-Andre and Remko Tronco, FOSDEM 2009

Page 38: Introduction to onesocialweb protocol and API

Laurent EschenauerJune 17th 2010

C1 – Public©2010 Vodafone Group Services Ltd.

Message stanza

<message from="[email protected]" to="[email protected]"> <body>Off with his head!</body></message>

One to one messaging (from & to addresses)Different types of messages (chat, headline, error, …)Basic payload of subject and body

XMPP

From: XMPP 101 by Peter Saint-Andre and Remko Tronco, FOSDEM 2009

Page 39: Introduction to onesocialweb protocol and API

Laurent EschenauerJune 17th 2010

C1 – Public©2010 Vodafone Group Services Ltd.

Presence stanza

<presence from="[email protected]"><show>xa</show>

<status>down the rabbit hole !</status></presence>

Advertise network availabilityRich presence (away, available for chat...)Rich status (a free text entry)Typically used for rosters in IM use cases

XMPP

From: XMPP 101 by Peter Saint-Andre and Remko Tronco, FOSDEM 2009

Page 40: Introduction to onesocialweb protocol and API

Laurent EschenauerJune 17th 2010

C1 – Public©2010 Vodafone Group Services Ltd.

IQ stanza

<iq type="get"> <query xmlns="jabber:iq:roster"/></iq>

<iq type="result"> <query xmlns="jabber:iq:roster"> <item jid="[email protected]"/> <item jid="[email protected]"/> <item jid="[email protected]"/> </query></iq>

Request/responseEnable querying and editing of resourcesSimilar to HTTP GET & HTTP POST

XMPP

From: XMPP 101 by Peter Saint-Andre and Remko Tronco, FOSDEM 2009

Page 41: Introduction to onesocialweb protocol and API

Laurent EschenauerJune 17th 2010

C1 – Public©2010 Vodafone Group Services Ltd.

eXtensible MPP

Any child XML element can be used as a payload, using XML namespaces to manage scope<message from="[email protected]" to="[email protected]"> <body>Off with his head!</body> <entry xmlns="http://www.w3.org/2005/Atom"> <published>2010-01-13T12:40:51.292Z</published> <author> <name>The Queen</name> </author> <title>Message from the Queen</title> <content type='html'> Off with his <b>head</b>! </content></message>

XMPP

From: XMPP 101 by Peter Saint-Andre and Remko Tronco, FOSDEM 2009

Page 42: Introduction to onesocialweb protocol and API

Laurent EschenauerJune 17th 2010

C1 – Public©2010 Vodafone Group Services Ltd.

Long-lived connection & asynchronous

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

XMPP is asynchronous- long lived connections- event based messaging

XMPP

From: XMPP 101 by Peter Saint-Andre and Remko Tronco, FOSDEM 2009

Page 43: Introduction to onesocialweb protocol and API

Laurent EschenauerJune 17th 2010

C1 – Public©2010 Vodafone Group Services Ltd.

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)

Page 44: Introduction to onesocialweb protocol and API

Laurent EschenauerJune 17th 2010

C1 – Public©2010 Vodafone Group Services Ltd.

Activitystrea.ms

Page 45: Introduction to onesocialweb protocol and API

Laurent EschenauerJune 17th 2010

C1 – Public©2010 Vodafone Group Services Ltd.

References

http://activitystrea.ms

The Open and Social WebChris MessinaGoogle I/O 2010http://code.google.com/events/io/2010/sessions/open-and-social-web.html

Activitystreams

Page 46: Introduction to onesocialweb protocol and API

Laurent EschenauerJune 17th 2010

C1 – Public©2010 Vodafone Group Services Ltd.

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

Page 47: Introduction to onesocialweb protocol and API

Laurent EschenauerJune 17th 2010

C1 – Public©2010 Vodafone Group Services Ltd.

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

Page 48: Introduction to onesocialweb protocol and API

Laurent EschenauerJune 17th 2010

C1 – Public©2010 Vodafone Group Services Ltd.

Yet, no common way to describe rich social interactions... leading to proprietary data models

title + link + summary +author + id + updated

Page 49: Introduction to onesocialweb protocol and API

Laurent EschenauerJune 17th 2010

C1 – Public©2010 Vodafone Group Services Ltd.

Activitystreams provides a common language to describe social interactions...

actor verb object target

Page 50: Introduction to onesocialweb protocol and API

Laurent EschenauerJune 17th 2010

C1 – Public©2010 Vodafone Group Services Ltd.

Activitystreams provides a common language to describe social interactions...

eschnou posted a note

Page 51: Introduction to onesocialweb protocol and API

Laurent EschenauerJune 17th 2010

C1 – Public©2010 Vodafone Group Services Ltd.

Activitystreams provides a common language to describe social interactions...

eschnou posted a picture to an album

Page 52: Introduction to onesocialweb protocol and API

Laurent EschenauerJune 17th 2010

C1 – Public©2010 Vodafone Group Services Ltd.

Activitystreams provides a common language to describe social interactions...

eschnou liked a video

Page 53: Introduction to onesocialweb protocol and API

Laurent EschenauerJune 17th 2010

C1 – Public©2010 Vodafone Group Services Ltd.

… building upon existing Atom elements

title + link + summary +author + id + updated +verb + object-type + target

Page 54: Introduction to onesocialweb protocol and API

Laurent EschenauerJune 17th 2010

C1 – Public©2010 Vodafone Group Services Ltd.

… 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

Page 55: Introduction to onesocialweb protocol and API

Laurent EschenauerJune 17th 2010

C1 – Public©2010 Vodafone Group Services Ltd.

Onesocialweb extends this further with context data and access control rules

actor verb object target context access-control

Page 56: Introduction to onesocialweb protocol and API

Laurent EschenauerJune 17th 2010

C1 – Public©2010 Vodafone Group Services Ltd.

Onesocialweb extends it further with context data and access control rules

eschnou took a picture in Barcelona,it can be seen visible by 'friends'

Page 57: Introduction to onesocialweb protocol and API

Laurent EschenauerJune 17th 2010

C1 – Public©2010 Vodafone Group Services Ltd.

Putting it all together

Page 58: Introduction to onesocialweb protocol and API

Laurent EschenauerJune 17th 2010

C1 – Public©2010 Vodafone Group Services Ltd.

Juliet updates her status“O Romeo, Romeo, wherefore 

art thou Romeo ?”

Page 59: Introduction to onesocialweb protocol and API

Laurent EschenauerJune 17th 2010

C1 – Public©2010 Vodafone Group Services Ltd.

<iq type='set' from='[email protected]/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>

Page 60: Introduction to onesocialweb protocol and API

Laurent EschenauerJune 17th 2010

C1 – Public©2010 Vodafone Group Services Ltd.

<iq type='set' from='[email protected]/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>

Page 61: Introduction to onesocialweb protocol and API

Laurent EschenauerJune 17th 2010

C1 – Public©2010 Vodafone Group Services Ltd.

<iq type='set' from='[email protected]/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>

Page 62: Introduction to onesocialweb protocol and API

Laurent EschenauerJune 17th 2010

C1 – Public©2010 Vodafone Group Services Ltd.

<iq type='set' from='[email protected]/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>

Page 63: Introduction to onesocialweb protocol and API

Laurent EschenauerJune 17th 2010

C1 – Public©2010 Vodafone Group Services Ltd.

The menu for today

High level overviewDemoProtocol and data modelsHands on with the APIQ&A

Page 64: Introduction to onesocialweb protocol and API

Laurent EschenauerJune 17th 2010

C1 – Public©2010 Vodafone Group Services Ltd.

e.g. Shopulator on Android

Create shopping listsShare them with friendsCollaborate on shopping itemsReceive real-time notifications

How would you create a social shopping list application ?

Page 65: Introduction to onesocialweb protocol and API

Laurent EschenauerJune 17th 2010

C1 – Public©2010 Vodafone Group Services Ltd.

Today you need a lot more than a mobile app

We need a back-end server...

User registration Social graph management

(e.g. inviting friends) Data storage for the shopping list Web API

(to communicate with the mobile client)

… and a solution for push notifications

Custom TCP sockets Web sockets Comet (HTTP Long polling) SMS Apple Push Notifications Android C2DM

Page 66: Introduction to onesocialweb protocol and API

Laurent EschenauerJune 17th 2010

C1 – Public©2010 Vodafone Group Services Ltd.

With Onesocialweb, you focus on your application and let the protocol do the restCreate a shopping list object and a user as a collaborator

ShoppingList list = new ShoppingList();list.setTitle(“BBQ on Sunday”);list.addItem(“bread”);list.addCollaborator(“[email protected]”);

Page 67: Introduction to onesocialweb protocol and API

Laurent EschenauerJune 17th 2010

C1 – Public©2010 Vodafone Group Services Ltd.

With Onesocialweb, you focus on your application and let the protocol do the restCreate a shopping list object and a user as a collaborator

ShoppingList list = new ShoppingList();list.setTitle(“BBQ on Sunday”);list.addItem(“bread”);list.addCollaborator(“[email protected]”);

Connect to the user account and post the new shopping list

service.connect(“vodafonernd.com”, 5222, null);service.login(“eschnou”, “******”, “shoplist”);service.post(list);

Page 68: Introduction to onesocialweb protocol and API

Laurent EschenauerJune 17th 2010

C1 – Public©2010 Vodafone Group Services Ltd.

With Onesocialweb, you focus on your application and let the protocol do the restCreate a shopping list object and a user as a collaborator

ShoppingList list = new ShoppingList();list.setTitle(“BBQ on Sunday”);list.addItem(“bread”);list.addCollaborator(“[email protected]”);

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(); }}});

Page 69: Introduction to onesocialweb protocol and API

Laurent EschenauerJune 17th 2010

C1 – Public©2010 Vodafone Group Services Ltd.

Facebook

360

MySpace

Google

The power of having a common data model in a federated network

[email protected]

[email protected]

[email protected]

Realtime picture sharing with friends and family, across networks, and without tight

coupling of the social applications

Page 70: Introduction to onesocialweb protocol and API

Laurent EschenauerJune 17th 2010

C1 – Public©2010 Vodafone Group Services Ltd.

Get started:

http://onesocialweb.org

http://twitter.com/onesocialweb

http://github.com/onesocialweb

[email protected]