Top Banner
OPSN OPSN Open Portable Social Network Open Portable Social Network Version 0.0.1 Version 0.0.1 2008-1-8 2008-1-8 http://opsn.net/ http://opsn.net/ Robert Mao ([email protected]) Robert Mao ([email protected])
34

OPSN: Open Portable Social Network

Dec 24, 2014

Download

Business

Robert Mao

OPSN: Open Portable Social Network
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: OPSN: Open Portable Social Network

OPSN OPSN Open Portable Social NetworkOpen Portable Social Network

Version 0.0.1 Version 0.0.1

2008-1-82008-1-8

http://opsn.net/http://opsn.net/

Robert Mao ([email protected])Robert Mao ([email protected])

Page 2: OPSN: Open Portable Social Network

TOCTOC

What is OPSNWhat is OPSN

OPSN user casesOPSN user cases

OPSN explained OPSN explained

OPSN APIsOPSN APIs

OPSN prototypeOPSN prototype

Page 3: OPSN: Open Portable Social Network

What is OPSN?What is OPSN?

OPSN is an open, decentralized, free OPSN is an open, decentralized, free framework for user centric social network framework for user centric social network data management and service providingdata management and service providing

OPSN stands for “OPSN stands for “OOpen pen PPortable ortable SSocial ocial NNetwork”etwork” Openness Openness Data portabilityData portability DecentralizedDecentralized

Page 4: OPSN: Open Portable Social Network

Why portability matter?Why portability matter?

Best refer to: Best refer to: http://microformats.org/wiki/social-network-http://microformats.org/wiki/social-network-portabilityportability

OPSN is a solution that follow the above OPSN is a solution that follow the above social network portability movementsocial network portability movement

OPSN try the best not to reinvent wheels, OPSN try the best not to reinvent wheels, it adopt work together with many current it adopt work together with many current standards and data formatsstandards and data formats

Page 5: OPSN: Open Portable Social Network

What OPSN is notWhat OPSN is not

OPSN ONLY provide the data related to thOPSN ONLY provide the data related to the contacts, it e contacts, it Is NOT anything related on user authenticatioIs NOT anything related on user authenticatio

n (OpenID is focused on user authentication, n (OpenID is focused on user authentication, OPSN works well with OpenID)OPSN works well with OpenID)

Is NOT a social aggregator or other social appIs NOT a social aggregator or other social application, though we may implement a simple slication, though we may implement a simple social aggregator in the prototype to demonstraocial aggregator in the prototype to demonstrate an application build on top of OPSN servicete an application build on top of OPSN service

Page 6: OPSN: Open Portable Social Network

OPSN user casesOPSN user cases

Page 7: OPSN: Open Portable Social Network

User cases #1User cases #1

Mary have a blog, a flickr account, a linkedin account, a twitter accoMary have a blog, a flickr account, a linkedin account, a twitter account … She have too many “friends” in different places, she has been unt … She have too many “friends” in different places, she has been tired of invite “friends” and approve “friends” requests from time to titired of invite “friends” and approve “friends” requests from time to time, she wish to manage all her contacts in one place that she can vime, she wish to manage all her contacts in one place that she can view, modify, control, backup them with no hassleew, modify, control, backup them with no hassleMary decide to add a OPSN module in her personal website, she imMary decide to add a OPSN module in her personal website, she import all her friends list into her own OPSN service, so she can rule alport all her friends list into her own OPSN service, so she can rule all of them in one placesl of them in one placesMary can easily import contacts from hCard enabled sites, such as tMary can easily import contacts from hCard enabled sites, such as twitter, flickr, she have some difficulty to import from some social netwitter, flickr, she have some difficulty to import from some social networks such as facebookworks such as facebookDuring Mary import the contacts, her OPSN module scan all contactDuring Mary import the contacts, her OPSN module scan all contacts she added to see if it also support OPSN, if it does support OPSN s she added to see if it also support OPSN, if it does support OPSN a notification will be sent automatically to notify that contact he/she ha notification will be sent automatically to notify that contact he/she has been added into Mary’s OPSN module. as been added into Mary’s OPSN module.

Page 8: OPSN: Open Portable Social Network

User cases #2User cases #2

Mary found a new interesting vertical social network named doppr.cMary found a new interesting vertical social network named doppr.com which support OPSN and oAuth, after she sign in the new servicom which support OPSN and oAuth, after she sign in the new service, she simply fill in her own OPSN URI and ask it import contacts froe, she simply fill in her own OPSN URI and ask it import contacts from OPSNm OPSNThe site redirect her browser to Mary’s own site, Mary’s own site proThe site redirect her browser to Mary’s own site, Mary’s own site prompt mary to enter her credential to sign in, after she sign in, a prommpt mary to enter her credential to sign in, after she sign in, a prompt message ask her if she authorize dopper.com to import some of hpt message ask her if she authorize dopper.com to import some of her data. er data. Mary select part of her profile data, and two groups of her contacts Mary select part of her profile data, and two groups of her contacts which tagged as “friends” and “classmates” and the click “authorize” which tagged as “friends” and “classmates” and the click “authorize” Mary site redirect back her to doppr.com, doppr.com show a progreMary site redirect back her to doppr.com, doppr.com show a progress bar of importing her data, after a few minutes, mary found her pross bar of importing her data, after a few minutes, mary found her profiles data and friends lists she decided to select appeared in doppr.cfiles data and friends lists she decided to select appeared in doppr.com’s service, she even found some of her friends are already in dopom’s service, she even found some of her friends are already in dopper.com and she connected with them automatically. per.com and she connected with them automatically.

Page 9: OPSN: Open Portable Social Network

User cases #3User cases #3

Mary feel it’s boring to maintain her own web server, she decided to Mary feel it’s boring to maintain her own web server, she decided to host everything outside but keep her own personal URI. host everything outside but keep her own personal URI. Mary found a OPSN service provider named MyOPSN.com, it can hMary found a OPSN service provider named MyOPSN.com, it can host OPSN service for any one for free. Mary sign in MyOPSN with host OPSN service for any one for free. Mary sign in MyOPSN with her OpenID, and then she entered her OPSN URI to ask MyOPSN imer OpenID, and then she entered her OPSN URI to ask MyOPSN import all data from her original OPSN module. port all data from her original OPSN module. Mary was redirect to her own site to authorize, after she authorized tMary was redirect to her own site to authorize, after she authorized the operation, all her previous social network data was migrated to Mhe operation, all her previous social network data was migrated to MyOPSN.com.yOPSN.com.Mary add a delegate link to her personal URI’s output, all her previoMary add a delegate link to her personal URI’s output, all her previous connection which established by her previous OPSN module remus connection which established by her previous OPSN module remain exactly the same with the new OPSN provider. Mary know she cain exactly the same with the new OPSN provider. Mary know she can switch the OPSN service from myOPSN.com at any time without an switch the OPSN service from myOPSN.com at any time without any data loss. any data loss.

Page 10: OPSN: Open Portable Social Network

OPSN explainedOPSN explained

Page 11: OPSN: Open Portable Social Network

OPSN OverviewOPSN Overview

DataData User’s contact dataUser’s contact data Contact listContact list

Use tags to group Use tags to group contactscontacts

Not all contacts should Not all contacts should represent a OPSN represent a OPSN endpointendpoint

ServiceService Publish data (based on Publish data (based on

authorization) authorization) Auto synchronize contact Auto synchronize contact

list’s updatelist’s update

User A

• User B• User C• …

OPSN endpoint

Page 12: OPSN: Open Portable Social Network

Basic concepts and assumptionsBasic concepts and assumptions

OPSN EndpointOPSN Endpoint An URI which contain the Implementation of OPSN An URI which contain the Implementation of OPSN

APIsAPIs An URI which contain the delegate link to a OPSN An URI which contain the delegate link to a OPSN

endpointendpoint

Contact in OPSNContact in OPSN OPSN contact is a single-direction link to the contact OPSN contact is a single-direction link to the contact When a new contact is added, OPSN service will When a new contact is added, OPSN service will

scan if this contact contain an OPSN endpoint, if so, a scan if this contact contain an OPSN endpoint, if so, a notify will send to that endpoint (unless user don’t notify will send to that endpoint (unless user don’t wish to send) wish to send)

Page 13: OPSN: Open Portable Social Network

OPSN Building blocksOPSN Building blocks

Data formatData format MicroformatsMicroformats

hCardhCard

XFNXFN APMLAPML OPMLOPML

AuthenticationAuthentication oAuthoAuth

Page 14: OPSN: Open Portable Social Network

OPSN may use…OPSN may use…

OPSN may use or work together with folloOPSN may use or work together with following standard/protocol/format, however thwing standard/protocol/format, however they are not the building blocks of OPSN, aney are not the building blocks of OPSN, and OPSN will not depend on themd OPSN will not depend on them OpenIDOpenID RSSRSS

Page 15: OPSN: Open Portable Social Network

OPSN is user centricOPSN is user centric

Each user have their own OPSN data, there is nEach user have their own OPSN data, there is no single shared information between different uso single shared information between different usersers

OPSN maintains the user’s own information as a OPSN maintains the user’s own information as a “master copy” and publish them to others“master copy” and publish them to others

OPSN maintains all the contacts data as a local OPSN maintains all the contacts data as a local copy, even if those data was synchronized from copy, even if those data was synchronized from other locationother location

OPSN’s contact data can also be published OPSN’s contact data can also be published

Page 16: OPSN: Open Portable Social Network

OPSN is decentralizedOPSN is decentralized

OPSN is completely decentralized OPSN is completely decentralized

Special OPSN service can serve for many Special OPSN service can serve for many users, however users, however each users in such service is still individual each users in such service is still individual

logicallylogically Users hosted in same service provider should Users hosted in same service provider should

interact to each other in same manner interact to each other in same manner

Page 17: OPSN: Open Portable Social Network

Inter-op through OPSNInter-op through OPSN

User A

User B

User C

• User B• User C• …

• User A• User C• …

• …• …• …

OPSN endpoint

OPSN endpoint

OPSN endpoint

Page 18: OPSN: Open Portable Social Network

How about data out of sync?How about data out of sync?

Since contact data are “local copy”, they can be Since contact data are “local copy”, they can be out of syncout of syncOut of sync data doesn’t really matter too much, Out of sync data doesn’t really matter too much, think about the real life, your contact data could think about the real life, your contact data could be out of sync toobe out of sync tooOPSN to rescue: OPSN to rescue: OPSN service support “automatic synchronize” by OPSN service support “automatic synchronize” by

subscribe to another OPSN endpointsubscribe to another OPSN endpoint An endpoint can control if it allow another endpoint to An endpoint can control if it allow another endpoint to

subscribe to its change (and the policy can be subscribe to its change (and the policy can be changed any time) changed any time)

Page 19: OPSN: Open Portable Social Network

OPSN and Real lifeOPSN and Real life

The way OPSN organize data is very The way OPSN organize data is very similar to the real lifesimilar to the real life User User own all of their contact dataown all of their contact data (e.g. in an (e.g. in an

address book, name card holders ) address book, name card holders ) All contact data is a piece of All contact data is a piece of local datalocal data, the , the

local data could be out of synchronizedlocal data could be out of synchronized User have User have full controlfull control of their contact data of their contact data

(delete it, save it, update it, put in different (delete it, save it, update it, put in different groups, even groups, even publish to otherspublish to others, etc) , etc)

Page 20: OPSN: Open Portable Social Network

Whose data?Whose data?

Does the data in your contact list belong to Does the data in your contact list belong to you?you? OPSN’s answer is YES, absolutely!OPSN’s answer is YES, absolutely! In real life, it’s also YES! You can tell anyone In real life, it’s also YES! You can tell anyone

what ever you have in your address book! (thwhat ever you have in your address book! (though rare people may do that) ough rare people may do that)

Once some one shared their contact data to yOnce some one shared their contact data to you, it’s ou, it’s your local copy of datayour local copy of data!!

Page 21: OPSN: Open Portable Social Network

So how about the privacy?So how about the privacy?

OPSN adopt oAuth (OPSN adopt oAuth (http://oAuth.nethttp://oAuth.net) to au) to authorize what part of the data allow to be acthorize what part of the data allow to be accessed from outsidecessed from outsideYou can control the privacy of your own daYou can control the privacy of your own data, but you can NOT control others, you cata, but you can NOT control others, you can stop some crazy guys publishing your dan stop some crazy guys publishing your data once you give your data to themta once you give your data to themIn the real life, it’s exactly the same situatiIn the real life, it’s exactly the same situation. on.

Page 22: OPSN: Open Portable Social Network

DelegateDelegate

Inspired by the design of OpenID, OPSN sInspired by the design of OpenID, OPSN support “delegate”:upport “delegate”: You can delegate your OPSN service point to You can delegate your OPSN service point to

another OPSN service, it could be an OPSN sanother OPSN service, it could be an OPSN server which designed to host many userserver which designed to host many users

Delegate is simple, just add a few lines in your Delegate is simple, just add a few lines in your URIURI

<link rel=“OPSN:delegate” type=“application/xml+OPSN” href=http://some_opsn_server/someuser title=“OPSN delegate”/>

Page 23: OPSN: Open Portable Social Network

DelegateDelegate

User A

User B

User B

• User B• User C• …

• User A• …• …

OPSN endpoint

OPSN endpoint

Delegate

<link rel=“OPSN:delegate” type=“application/xml+OPSN” href=http://some_opsn_server/someuser title=“OPSN delegate”/>

Page 24: OPSN: Open Portable Social Network

Process of OPSN operationProcess of OPSN operation

Local operationsLocal operations Add / Edit / Query / DeleteAdd / Edit / Query / Delete

Operations which require inter-opOperations which require inter-op Request for social network dataRequest for social network data

Owner profile Owner profile

Contact listContact list

Contact’s profileContact’s profile Notification of been addedNotification of been added

Page 25: OPSN: Open Portable Social Network

OPSN AddOPSN Add

Mary click “add me” and input her OPSN URI

Robert’s site

Mary’s site contain OPSN endpoint meta info

Mary’s own site

Robert’s site redirect browser to Mary’s own site

Robert’s public profile was grabbed and displayed, Mary add some of her notes and click “save”

Robert’s OPSN endpoint provide Robert’s public hCard

Robert was added as Mary’s contact and redirect

back to Robert’s site

A notify from Mary was send to Robert, so Robert

will know he has been added by mary

Mary continue her surf on Robert’s site

Browser flow Data flow

Page 26: OPSN: Open Portable Social Network

OPSN ImportOPSN ImportMary sign in the new service and enter her

OPSN to import her social data

A new social network site Mary’s own site

Mary’s site contain OPSN endpoint meta info

The site discovered mary’s OPSN endpoint and prepared an oAuth request and redirect mary to her own site Mary sign on her own site

Mary authorize the request and select the data she

permit for importThe site request the social network data from Mary’s

OPSN endpoint, and import it into it’s own database. Mary’s OPSN service

provide data as mary approved

Mary continue use the service, all her friends has

been added!

Page 27: OPSN: Open Portable Social Network

OPSN APIsOPSN APIs

Page 28: OPSN: Open Portable Social Network

(TBD)(TBD)

Page 29: OPSN: Open Portable Social Network

OPSN PrototypeOPSN Prototype

Page 30: OPSN: Open Portable Social Network

PrototypePrototype

An OPSN server An OPSN server Can host many usersCan host many users Provide some additional features for easy blog intergrProvide some additional features for easy blog intergr

ationation

Build on Microsoft ASP.NET MVC technologyBuild on Microsoft ASP.NET MVC technology http://www.codeplex.com/opsnhttp://www.codeplex.com/opsn

With OPSN prototype server, we can very easily With OPSN prototype server, we can very easily turn any blog into a decentralized social networkturn any blog into a decentralized social network

Page 31: OPSN: Open Portable Social Network

FeaturesFeaturesBasic social network / contact managementBasic social network / contact management

Add contactsAdd contacts Edit contactsEdit contacts Delete contactsDelete contacts Query contactsQuery contacts

Import from other social network Import from other social network Support import hCard from any social networkSupport import hCard from any social network Flexible pluggable architect to allow implement import from none-microformats soFlexible pluggable architect to allow implement import from none-microformats so

cial networks in the futurecial networks in the futureOPSN Service endpoint OPSN Service endpoint

APIsAPIs Delegate supportDelegate support Automatic synchronize Automatic synchronize

Blog widgetsBlog widgets My widgetsMy widgets Friends list Friends list Friend life stream Friend life stream

Page 32: OPSN: Open Portable Social Network

OthersOthers

Use OpenID as authenticationUse OpenID as authentication

Use oAuth as authorization framework (to Use oAuth as authorization framework (to be done) be done)

Page 33: OPSN: Open Portable Social Network

Screen shotsScreen shots

Import from any hCard sites Login with OpenID

Page 34: OPSN: Open Portable Social Network

Screen shotsScreen shots

My hCard

Friends list

Turn a blog into a social network by simply add some widgets