6. 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
11. 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
12. 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
13.
14. 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
15. 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”/>
16. 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
17. User authentication
OpenID
LiveID
Data authentication
oAuth
Data
RSS, Atom, …
APML, OPML, …
Social applications
Social aggregators
…
18. 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)
19. OPSN adopt oAuth (http://oAuth.net) 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.
20. 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)
24. 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
25. 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!
26. Restful simple API
API Format:
/API/version_number/method[.data_format]
.XML (default)
.JSON
APIs:
Me
Friend
Friends
Notify