Successfully reported this slideshow.
Your SlideShare is downloading. ×

More Related Content

Mao Blogtalk 2008

  1. 1. Version 0.0.7 2008-2-10 Robert Mao (
  2. 2. Social network portability: network-portability Social network portability is all about breaking the garden wall!
  3. 3. What is OPSN? Demo, show me something real! OPSN explained Discussions
  4. 4. OPSN stands for “Open Portable Social Network” Open Portable Decentralized Does NOT re-invent the wheel Turn your blog (or any site) into a decentralized social network with very little effort! What OPSN is NOT: It is NOT related to user authentication It is NOT a social aggregator or other social application
  5. 5. Linkedin Flickr Facebook … twitter …
  6. 6. Service B Service A … …     
  7. 7. We demoed an OPSN server which: Can host multiple users Allows for easy blog integration (via JavaScript) Uses OpenID authentication Built on the latest C# 3.0, ASP.NET MVC OPSN can be implemented with any other language & technology
  8. 8. Basic social network / contact management Add contacts Edit contacts Delete contacts List contacts Import from other social network Support import hCard from any social network Flexible pluggable architecture to allow implement import from none-microformats social networks in the future OPSN Service endpoint APIs Delegate support Automatic synchronize Blog widgets My widgets Friends list
  9. 9. OPSN Endpoint My An URI which contains the profile implementation of OPSN APIs An URI which contains the delegate link to a OPSN OPSN endpoint Contact in OPSN APIs My contacts OPSN contact is a single- direction link to the contact When a new contact is added, OPSN service check if this contact is an OPSN endpoint, if so, a notification will be sent to that endpoint
  10. 10. Does every user need to “install” OPSN their own OPSN? URI No Inspired by the design of OpenID, OPSN support delegation: You can delegate your OPSN service point to another OPSN service, it could be an OPSN My server which is designed to host profile many users Delegation is simple: just add a few lines in your html page OPSN <link rel=“OPSN:delegate” My APIs type=“application/xml+OPSN” contacts href=http://some_opsn_server/someuser title=“OPSN delegate”/>
  11. 11. Each user has his/her own My OPSN data, there is no single profile shared information between OPSN different users APIs My contacts OPSN maintains user’s My profile information as a “master copy” and publishes it to the OPSN others APIs My contacts OPSN maintains all contact My data as a local copy, even if profile this data is synchronized OPSN from other locations My APIs OPSN’s contact data can also contacts be published
  12. 12. User authentication OpenID LiveID Data authentication oAuth Data RSS, Atom, … APML, OPML, … Social applications Social aggregators …
  13. 13. Since contact data is a “local copy”, it can be out of sync Out of sync data doesn’t really matter too much, think about real life, your contact data could be out of sync too OPSN comes to the rescue: OPSN service supports “auto sync” by subscribing to another OPSN endpoint An endpoint can have access control for the subscribing to its changes (The policy can be changed at any time)
  14. 14. OPSN adopt oAuth ( to authorize what part of the data allow to be accessed You can control the privacy of your own data, but you can NOT control others, you can not stop some irresponsible people publishing your data once you give your data to them In the real life, it’s exactly the same.
  15. 15. The way OPSN organizes data is very similar to real life Users own all of their contact data (e.g. in an address book, name card holders) All contact data is a piece of local data, the local data could be out of synch Users have full control of their contact data (delete it, save it, update it, put in different groups, even publish to others, etc)
  16. 16. Robert Mao (
  17. 17. Robert’s site Mary’s own site Mary clicks “add me” and Mary’s site contains OPSN input her OPSN URI endpoint meta info Robert’s site redirects browser to Mary’s own site Robert’s public profile was Robert’s OPSN endpoint grabbed and displayed, provide Robert’s public Mary adds some of her hCard notes and click “save” A notification from Mary was send to Robert, so Robert was added as Mary’s Robert will know he has contact and redirects back been added by Mary to Robert’s site Mary continue her surf on Robert’s site Browser flow Data flow
  18. 18. A new social network site Mary’s own site Mary signs in the new Mary’s site contain sOPSN service and enter her OPSN endpoint meta info to import her social data The site discovered Mary's OPSN endpoint and prepared an oAuth request and redirects Mary to her Mary signs on her own site own site Mary authorizes the request and select the The site requests the social data she permit for import network data from Mary’s OPSN endpoint, and import Mary’s OPSN service it into it’s own database. provides data as Mary approved Mary continue use the service, all her friends has been added!
  19. 19. Restful simple API API Format: /API/version_number/method[.data_format] .XML (default) .JSON APIs: Me Friend Friends Notify