anyMeta 4.19.3 - Atom module 0.3.2 2012-02-16T16:46:39+01:00 http://www.mediamatic.net/feed/atom/26902/en Federated Social Networks (FSN) http://www.mediamatic.net/id/26903 2012-01-19T12:41:23+01:00 FSN blog Blog for developers working on/ around federated social networks - LISTPUBLISH blog 1 http://www.mediamatic.net/id/26386 2009-12-16T14:54:18+01:00 Federating Social Networks - The Technology <p>We are proposing a range of existing technologies to enable the federation of social networks. Some are quite new, some are well established. Here I give a short overview of the technologies and how to work together in creating a personal network.</p> <p>We are not the only ones interested in integrating our content. So far, we've started looking at various possibilities- for users and servers signing on to (federated) social networks, for publishing, aggregating, exchanging and subscription to content, and for better ways to describe content and meta-content on the social networks.</p> <h3>Authenticating People: OpenID</h3> <p>To avoid having to create a separate login and password for each social network, we have been integrating the decentralized log-in system provided by OpenID for user authentication into our CMS anyMeta.</p> <h3>Servers Communicating With Other Servers: OAuth</h3> <p>Once we have users signed into one social network, we want to allow them to move their data from one network to another. For this we are looking at the open protocol OAuth, which will standardize server to server communication, i.e. the passing of authentication tokens through APIs. This will help make our server-side communication more robust and streamlined.</p> <h3>Representing Information: Atom + RDF</h3> <p>After authenticating, but before we can move content from one place to another, we also need a way to define our content. We're starting to use RDF as a standard formatting method for our content. We see users and their contacts as another form of content, and are using FOAF to describe their networks. Other forms of content, such as events or projects, allow other standard formatting techniques permissible in RDF- such as DOAF, SOAF and MicroFormats.</p> <h3>Finding Information In The Network: OpenSearch</h3> <p>Since our implementation of RDF will be done in XML, it could be pretty easy to search through the various pages' content and meta-content. To do this, we're looking into OpenSearch, which should standardize the presentation of information as well as allow auto-discovery, for instance of things like OpenIDs. We're still looking into ways to keep our website scalable while using OpenSearch.</p> <h3>Staying Up To Date With Changes: XMPP Publish &amp; Subscribe</h3> <p>Once we have our content properly labeled, we can use standards like Atom1.0 to exchange parts of our content. Specifically, we can use Atom to format newsfeeds and other time-sensitive content, and then use XMPP to announce it. By using XMPP instead of HTTP, we can have persistant connections which will allow the networks to propagate changes as fast as possible.</p> Nadya Peek http://www.mediamatic.net/id/8275 Marc Worrell http://www.mediamatic.net/id/14269 ARTICLE 1 http://www.mediamatic.net/id/26605 2008-02-14T10:13:07+01:00 Federating Social Networks on XMPP <p>When you decide to visit a website in your favorite browser, you type an http address. That address points to a server, and your browser opens a connection to pull the site off that server. Once the site is fully loaded, the connection closes.</p> <p>When you decide to fire up google talk and talk to a friend, your XMPP server finds the address associated with your friend's (jabber) ID and opens a connection to him. This connection stays open, so when you type something, you don't have to wait for his chat client to decide to check whether you posted something. You send it to him directly.</p> <p>HTTP can also do some kind of persistent connection, but it's hacky. HTTP servers are not made for persistent connections, and they don't scale. HTTP persistent connections also lack addressability: it is unclear which user is connected to an http connection, while users connected to an XMPP server need to authenticate with their jabber IDs.</p> <h2>PubSub: don't pull, push!</h2> <p>Using XMPP, we don't only have to send chat messages. In fact, we can send whatever we want: vcards, audio, flickr enclosures. We want to use XMPP to send XML stanzas containing our anyMeta <em>things</em> from server to server. To do this, will use a publication and subscribe method (PubSub). We can have publishers and subscribers, where a publisher sends a notification to a subscriber each time there is a new stanza to transmit.</p> <p><span class="inline-image-wrapper ui_animateFigureCaption"><a href="http://www.mediamatic.net/26691/en/fsn-xmpps2s"> <img src="http://fast.mediamatic.nl/f/sjnh/image/490/26691-400-221.png" height="221" width="400" alt="" title="fsn xmpps2s" playable="1"/> </a><span class="caption-inline"><span class="title"><a title="Click to get a larger image - fsn xmpps2s - Mediamatic.net" href="/26691/en/fsn-xmpps2s">fsn xmpps2s</a></span></span></span></p> <h2>What does an XMPP message look like?</h2> <p>There are three types of of XMPP messages: a <em>message</em>, an <em>i.q.</em> or identification query (for subscribing, unsubscribing and error messages) and a <em>presence</em> {online, offline, busy}. A message will be what we use to move data from website to website. A message contained in a node, which is what you subscribe to to receive the message. The message is then one of the node items, with its own ID, title and content. It can also contain audio, flickr enclosures or location, whatever you want. Besides containing node items, the node itself also has a node ID and to and from IDs.</p> <h2>What if I don't have my own XMPP server?</h2> <p><span class="inline-image-wrapper ui_animateFigureCaption"><a href="http://www.mediamatic.net/26689/en/fsn-xmpp2http"> <img src="http://fast.mediamatic.nl/f/sjnh/image/513/26689-400-154.png" height="154" width="400" alt="" title="fsn xmpp2http" playable="1"/> </a><span class="caption-inline"><span class="title"><a title="Click to get a larger image - fsn xmpp2http - Mediamatic.net" href="/26689/en/fsn-xmpp2http">fsn xmpp2http</a></span></span></span></p> <p>You could also use PubSub as an external service for people who do not have access to an XMPP server.</p> Nadya Peek http://www.mediamatic.net/id/8275 ARTICLE 1 http://www.mediamatic.net/id/26604 2008-02-14T10:13:50+01:00 Federating Social Networks What was it for? <p>I'm pretty tired of the fact that every time a new social network shows up on the internet, I end up picking a new user name, a new password, having to reconnect with all my friends, having to write a new profile description and having to upload a new profile picture. I'm pretty tired of copying my content from site to site, and I'm pretty tired of having to look at 5 different places to find out where, when, what, with who and what did it look like.</p> <p>Don't get me wrong, I &lt;3 the internet. I love all social objects and am completely addicted to all the services that dish them out to me. But still, somehow this should should be able to be made better.</p> <p>Luckily, I'm not the only one who thinks this. People have been working on bringing all kinds of things together, by working on things like OpenID for cross-platform authentication, OAuth for server to server authentication and OpenSocial for finding common ways to talk to social networks. At Mediamatic last weekend, we organized a workshop on Federating Social Networks, especially to exchange thoughts on how we can better use technology to share our online resources.</p> <p>At Mediamatic, we develop the content management system anyMeta, where any resource (photograph, article, event, person) is a thing. Any thing can have multiple relations such as author of, featured in, picture of, located in, etc. to other things. This ontological structure is now being converted from a custom made representation to standard XML-implemented RDF.</p> <p><span class="inline-image-wrapper ui_animateFigureCaption"><a href="http://www.mediamatic.net/26692/en/fsn-anymeta-bla"> <img src="http://fast.mediamatic.nl/f/sjnh/image/957/26692-400-316.png" height="316" width="400" alt="" title="fsn anymeta bla" playable="1"/> </a><span class="caption-inline"><span class="title"><a title="Click to get a larger image - fsn anymeta bla - Mediamatic.net" href="/26692/en/fsn-anymeta-bla">fsn anymeta bla</a></span></span></span></p> <h2>What is it exactly that we want to do?</h2> <p>We have our life streams, which consist of works like photographs on flickr, presence from twitter or jaiku, articles from our blogs, etc. Then we have our personal websites, our work websites, websites of clubs or groups we belong to.</p> <h3>Share</h3> <p><span class="inline-image-wrapper ui_animateFigureCaption"><a href="http://www.mediamatic.net/26685/en/fsn-share"> <img src="http://fast.mediamatic.nl/f/sjnh/image/203/26685-400-296.png" height="296" width="400" alt="" title="fsn share" playable="1"/> </a><span class="caption-inline"><span class="title"><a title="Click to get a larger image - fsn share - Mediamatic.net" href="/26685/en/fsn-share">fsn share</a></span></span></span></p> <p>We would like share articles, profiles and photographs with other sites. Not just the article itself, but also the tags and author relations.</p> <h3>Migrate</h3> <p>Sometimes we would like to just pack up and make a move from MySpace to Facebook without having to remake all those friends, comments and zombiebites. We want better data portability!</p> <h3>Search</h3> <p><span class="inline-image-wrapper ui_animateFigureCaption"><a href="http://www.mediamatic.net/26694/en/fsn-search"> <img src="http://fast.mediamatic.nl/f/sjnh/image/160/26694-281-400.png" height="400" width="281" alt="" title="fsn search" playable="1"/> </a><span class="caption-inline"><span class="title"><a title="Click to get a larger image - fsn search - Mediamatic.net" href="/26694/en/fsn-search">fsn search</a></span></span></span> <br/> We don't want to have to look in flickr, smugmug and zooomr to be able to find the right photograph to feature in a blogpost. We want to search through sites sharing with us without visiting each separately.</p> <h3>Consolidate</h3> <p>If I update my address on my homepage, it would be nice if those changes propagated to all other places featuring my contact information. </p> <p>There are some difficulties with doing all of this. Once we start sharing social objects all over the web, how do we know who owns them? And what about not the social objects, but the relations to the social objects?</p> <h2>How are we going to do it?</h2> <p>Searching through data which is comprised of different things makes a pretty heavy load- if each time you searched you would also be searching on other servers, the load would get pretty unfriendly. How can you make the searching possible and scalable?</p> <p>Consolidation of data requires knowing whether the data has been updated. Right now, knowing whether the data has been updated requires constant polling. If the data then has been updated, we can pull the data in. This causes a lot of latency and doesn't scale very well.</p> <p>At Federated Social Networks, we considered more use cases. We think that XMPP will solve a lot of our latency and scaling problems, <a href="http://www.mediamatic.net/26605">read more about PubSub here.</a> Finally, we would like to put up a protocol for how to talk to us so that we can talk to you, too!</p> Nadya Peek http://www.mediamatic.net/id/8275 ARTICLE 1