Connecting Social Networks
using open standards
Ralph Meijer
Mediamatic Lab
Ralph Meijer
- Based in Eindhoven, The Netherlands
- Formerly at Jaiku: backend developer, open standards
- At Mediamatic Lab since November 2007
- Active in the Jabber/XMPP community since 2000
- XMPP Council Member
- Co-author of the XMPP Publish-Subscribe Extension
Social Networking Service
anyMeta
-
Things
- Person
- Article
- Event
- Picture
-
Edges
- Knows / friend of
- Author of
- Participant
Federating Social Networks
Open-CI
- Network of known sites (not fully connected)
- One account
- Cross site interaction
- Shared search facilities
- Outside participation great-to-have
- Open standards
-
User interface:
- Easier dialogs
- Less confirmation
- Smart defaults
- Currently 5 sites
Federating anyMeta using Open-CI
- Cross-site logins using OpenID
- Local non-authoritative copies of things
- Edges to non-local subject: edges to local copies
- Edges from non-local objects passed along with object
- XMPP Publish-Subscribe subscription to thing
- Notifications on changes
- Discovery via <link/> elements in HTML
- OAuth for authorizing new edges from remote sites
Cross-site connections
Exchanging social objects
- Atom
- Selected edges as <link/> elements
- Richer representations can be pulled in later
-
HTTP based feeds:
- Unnecessary polling
- Latency
- XMPP publish-subscribe
XMPP
- Generic XML routing platform
- Most known application is IM: Jabber/GTalk/LiveJournal/...
- RFC 3920 (XMPP Core), RFC 3921 (XMPP IM)
- Mesh of servers, clients connect to one server
- JIDs: ik.nu, ralphm@ik.nu, ralphm@ik.nu/Home
- XML Streams, Stanzas
- SASL, TLS
- Numerous extensions: disco, forms, vcard, pubsub, jingle
XMPP publish-subscribe (XEP-0060)
- Topic: node
- Opaque node identifier
- Nodes hold items with (again) opaque identifiers
- Publishers
- Subscribers
- Notifications
- Personal eventing: nodes associated to a user's JID
XMPP in FSN
Integrated XMPP, pubsub service
No XMPP
- Limited web application model or restricted environment
- CGI model execution
- No long-running processes
- Not able to initiate sockets
- Blocked ports
HTTP Gateway into XMPP Publish-Subscribe
- HTTP binding for XMPP over BOSH (XEP-0124)?
- Atom Publishing Protocol
- Limited, dedicated functionality
- Allow site to create (local) nodes, publish data
- Allow site to subscribe, unsubscribe, get items from remote sites
- Notifications
- HTTP Interface into Idavoll
XMPP in FSN
Separate XMPP, pubsub service
Receiving a notification
<message from="ralphm@jaiku.com" to="stpeter@twitter.com">
<event xmlns="http://jabber.org/protocol/pubsub#event">
<items node='b4a50f3a-6a85-4c8a-b359-7d41d52c99be'>
<item id='ab7704b8-cb17-4eab-965c-1f434ef5a95d'>
...
</item>
<items>
<event>
<message>
Receiving a Jaiku
<item id='ab7704b8-cb17-4eab-965c-1f434ef5a95d'>
<entry xmlns='http://www.w3.org/2005/Atom'>
<title>Explaining connecting social networks
at Web 2.0 Expo Berlin 2008</title>
<id>tag:jaiku.com,2006:presence/18111517<id>
<link>http://ralphm.jaiku.com/presence/18111517</link>
<updated>2008-10-22T09:25:09+01:00</updated>
</entry>
</item>
More information
<atom:content/>
- Enclosures (Flickr)
- Location (Plazes, Dopplr): georss, XEP-0080
- Music: XEP-0118
-
Comments
- Node per social object
- Item per comment
- Atom Threading Extensions
Moving, merging people
- Moving the account
- Keeping social objects where they are
- Account overview
- Identity discovery
- Drag and drop
Moving people
- Full access to profile (OAuth)
- Making a non-authoritative copy authoritative
- Changing edges
- Delete node + redirect to new node
- Local data outside thing/edge data model
Merging profiles
- Provide authentication
- Choosing between profiles
- No per datum choosing
- Making an authoritative thing non-authoritative
- Changing edges
Future
- Launch of moving/merging of accounts
- Agreements on best-practices
- Exchange of non-public things
- Closer integration for better access control
- Distributed discovery of identities
Thanks
Ralph Meijer
Mediamatic Lab
http://ralphm.net/
xmpp:ralphm@ik.nu
mailto:ralphm@ik.nu