FORSCHUNGSGRUPPE DEZENTRALE SYSTEME UND NETZDIENSTE
FOSPTowards a Federated Object Sharing Protocol that Unifies Operations on Social Content
Felix Maurer | June 16, 2014
KIT – University of the State of Baden-Wuerttemberg and
National Laboratory of the Helmholtz Association
www.kit.edu
Outline
1 Introduction
2 Analysis
3 Related work
4 Federated Object SharingProtocol
5 Implementation
6 Discussion
7 Conclusion
Introduction Analysis Related work Federated Object Sharing Protocol Implementation Discussion Conclusion
Felix Maurer – Federated Object Sharing Protocol June 16, 2014 2/19
Motivation
Nowadays, online socialnetworks (OSNs) makeup a large part of theWorld Wide Web(WWW) 1.
HTTP was designed forthe early WWW.
Functionalities for socialnetworks areimplemented as HTTPAPIs.
Social networks32%
Portals28%
Search engines24%
E-commerce12%
Wikipedia4%
Top 25
1http://www.alexa.com/topsitesIntroduction Analysis Related work Federated Object Sharing Protocol Implementation Discussion Conclusion
Felix Maurer – Federated Object Sharing Protocol June 16, 2014 3/19
Problem Statement
“Existing social networkingservices are centralized andthe companies providing theservices have the sole authorityto control all the data of theusers. It is not a trivial taskfor a user to reuse his owndata, including his socialnetwork, messages with friendsand photos among otherapplications, as there are notmany robust mechanisms toport all the data from oneplatform to another.” [11]
Figure: by Simonds David, The Economist 19March 2008
Introduction Analysis Related work Federated Object Sharing Protocol Implementation Discussion Conclusion
Felix Maurer – Federated Object Sharing Protocol June 16, 2014 4/19
Goal
Extract common functionalities of OSNs and define protocol or API ...
that supports common functionalities
allows global federation of multiple networks
is simple and deployable
Enable the creation of softwarethat forms a federated social network.
Introduction Analysis Related work Federated Object Sharing Protocol Implementation Discussion Conclusion
Felix Maurer – Federated Object Sharing Protocol June 16, 2014 5/19
Analysis: Common Scenarios
Use cases we want to support and are commonly found in existing OSNs.
Sharing Sharing message, pictures, videos, documents, etc.
Commenting on existing content.
Subscribing to a stream of content and receiving notifications.
Profiles Sharing information about a person.
Private messaging Sending a message to a single person.
Federation Sharing content with people of other networks.
Introduction Analysis Related work Federated Object Sharing Protocol Implementation Discussion Conclusion
Felix Maurer – Federated Object Sharing Protocol June 16, 2014 6/19
Requirements Engineering
ContentSharing
AccessControl
PublishSubscribe
DuplexConnection
Meta-data
Authenti-cation
Federation
GlobalNamespace
GlobalIdentifi-cation
Introduction Analysis Related work Federated Object Sharing Protocol Implementation Discussion Conclusion
Felix Maurer – Federated Object Sharing Protocol June 16, 2014 7/19
Related work: Existing Protocols
Data-storage
Accesscontrol
PublishSubscribe Federation
HTTP/-WebDAV/-HTTP2.0: [5,
3, 2]
X X 7 –
NFS and Glamor:[7]
X X 7 7
XMPP: [8] 7 – X X
Wave: [10] – – X X
Introduction Analysis Related work Federated Object Sharing Protocol Implementation Discussion Conclusion
Felix Maurer – Federated Object Sharing Protocol June 16, 2014 8/19
Projects
Diaspora2 Buddycloud3
Architecture Federated Federated
Protocols HTTP (Salmon, Webfinger) HTTP, XMPP
Content Posts, Comments, Pictures,extensible
Posts, Pictures, Files, ex-tensible
Format ActivityStreams JSON/XML
Limitations Lacking documentation→ unclear
Coarse access control
→ Complex interaction of multiple protocols
→ Prioritize working software
2https://diasporafoundation.org/3https://buddycloud.org/wiki/Main Page
Introduction Analysis Related work Federated Object Sharing Protocol Implementation Discussion Conclusion
Felix Maurer – Federated Object Sharing Protocol June 16, 2014 9/19
Scientific Work
Distributed SemanticSocial Network: [9]
X Global content sharing, federation
7 Access control notdescribed/defined, no push to theclient.
Distributed Platform forMultimedia Communities: [6]
X Decentralized content sharing, userto user communication
7 Complex P2P architecture,cryptography for access control
SODESSON: [1]
X Decentralized content sharing (P2P)
7 Focus on providing services directlyfrom (mobile) devices→ difficult to deploy.
Safebook: [4]
X Content Sharing (P2P)
7 Publish subscribe
7 Requires additional trustedidentification service (TIS).
Introduction Analysis Related work Federated Object Sharing Protocol Implementation Discussion Conclusion
Felix Maurer – Federated Object Sharing Protocol June 16, 2014 10/19
FOSP: Network Architecture
Federated Object Sharing Protocol
wonderland.lit
[email protected] [email protected]
realworld.lit
[email protected] [email protected]
Introduction Analysis Related work Federated Object Sharing Protocol Implementation Discussion Conclusion
Felix Maurer – Federated Object Sharing Protocol June 16, 2014 11/19
FOSP: Data Structures
config
groups buddies
social
me
avatar
010100100100110101010101001010011011001010100101001010010010011010101010100101001101100101010010100101001001001101010101010010100110110010101001010010101111110101001001111010101001101010101101101010100100001010101111010101010101101001010101010100100100110101010101001010011011001010100101001010010010011010101010100101001101100101010010100101001001001101010101010010100110110010101001010010100100100110101010101001010011011001010100101001010111111010100100111101010100110101010110110101010010000101010111101010101010110100101010101010010010011010101010100101001101100101010010100101001001001101010101010010100110110010101001010010100100100110101010101001010011011001010100101001010010010011010101010100101001101100101010010100101011111101010010011110101010011010101011011010101001000010101011110101010101011010010101010101001001001101010101010010100110110010101001010010100100100110101010101001010011011001010100101001010010010011010101010100101001101100101010010100101001001001101010101010010100110110010101001010010101111110101001001111010101001101010101101101010100100001010101111010101010101101001010101010100100100110101
{ btime: "2007-03-01T13:00:00Z", mtime: "2008-05-11T15:30:00Z", owner: "[email protected]", acl: { owner: [ "read-data", "write-data", "read-acl", "write-acl"], users: { ... }, others: [ "read-data", "read-attachment" ] }, subscriptions: { users: { [email protected]: { events: [ "created", "updated" ], depth: 1 } } }, attachment: { type: "image/jpeg", name: "avatar.jpeg", size: 112879 }, type: "text/plain", data: "A picture of me"}
Object + Attachment Tree
Introduction Analysis Related work Federated Object Sharing Protocol Implementation Discussion Conclusion
Felix Maurer – Federated Object Sharing Protocol June 16, 2014 12/19
Messages
Request,Response orNotification
Headers andbody
UTF-8 text andbinary
Sent overWebSockets
Introduction Analysis Related work Federated Object Sharing Protocol Implementation Discussion Conclusion
Felix Maurer – Federated Object Sharing Protocol June 16, 2014 13/19
Policies
Define how the content of objects is interpreted“acl” field contains access control lists and is read by the server toenforce access control.“subscriptions” field contains publish-subscribe configurations and isread by the server to notify users about changes....
Also restrict how messages should be forwardedA server must only forward requests of users that belong to its domain.A server must never forward notifications for resources that do notbelong to the domain of the sending server....
Introduction Analysis Related work Federated Object Sharing Protocol Implementation Discussion Conclusion
Felix Maurer – Federated Object Sharing Protocol June 16, 2014 14/19
Implementation: Server
Prototype Work in progress
Language JavaScript (Node.js) Go
Database RethinkDB Postgresql
Concurrency single threaded multi threading possible
can share code withbrowser clients, doesn’tscale with number of con-current users, databaseis slow for updates
faster, allowsmulti threading
Introduction Analysis Related work Federated Object Sharing Protocol Implementation Discussion Conclusion
Felix Maurer – Federated Object Sharing Protocol June 16, 2014 15/19
Browser Client and CLI Client
PrototypesCommand Line Interface (CLI) client for testingBrowser client as single page JavaScript applicationReuses core modules of the server and the CLIExposes the tree structure of FOSP and allows basic manipulation
Clients in developmentGo CLI client, similar to the JavaScript CLI cient“Coeo”, a single page JavaScript application that uses FOSP toprovide OSN services like profiles and posts
Introduction Analysis Related work Federated Object Sharing Protocol Implementation Discussion Conclusion
Felix Maurer – Federated Object Sharing Protocol June 16, 2014 16/19
Discussion: Performance Evaluation
0
1000
2000
3000
4000
5000
6000
7000
8000
9000
0 100 200 300 400 500 600 700 800
Resp
onse
tim
e in m
sNotifications sent
Prototype
Shortresponse time for single,consecutive request
Response timesgrows when sendinglots of notificationsor processingmultiple requests
Databasedid not perform well
Work in progress
First tests produce better results
Not yet as extensively tested
Introduction Analysis Related work Federated Object Sharing Protocol Implementation Discussion Conclusion
Felix Maurer – Federated Object Sharing Protocol June 16, 2014 17/19
Scenario and Requirements Evaluation
Described scenarios can beimplemented.
X Sharing
X Commenting
X Subscribing
X Profiles
X Private messaging
X Federation
Requirements are fulfilled.
X Federation
X Content Sharing
X Access Control
X Publish Subscribe
Introduction Analysis Related work Federated Object Sharing Protocol Implementation Discussion Conclusion
Felix Maurer – Federated Object Sharing Protocol June 16, 2014 18/19
ConclusionFOSP
allows federated storing of data and supports access control andpublish-subscribe.
enables compatible OSN server and clients.
→ no more walled gardens!
Limitations
Server to server authentication is difficult
Users have to trust providers
Future work
Content encryption
Versioning
Locking
Introduction Analysis Related work Federated Object Sharing Protocol Implementation Discussion Conclusion
Felix Maurer – Federated Object Sharing Protocol June 16, 2014 19/19
References I
I. Baumgart and F. Hartmann. “User-centric networking powered bySODESSON”. In: PIK - Praxis der Informationsverarbeitung undKommunikation 36.2 (May 2013), pp. 147–148. ISSN: 0930-5157.
M. Belshe et al. Hypertext Transfer Protocol version 2.0. HTTPbisWorking Group, Aug. 2013. URL: http://tools.ietf.org/html/draft-ietf-httpbis-http2-06.
G. Clemm et al. Web Distributed Authoring and Versioning(WebDAV) Access Control Protocol. RFC 3744 (ProposedStandard). Internet Engineering Task Force, May 2004. URL:http://www.ietf.org/rfc/rfc3744.txt.
References
Felix Maurer – Federated Object Sharing Protocol June 16, 2014 20/19
References II
L.A. Cutillo, R. Molva, and T. Strufe. “Safebook: Aprivacy-preserving online social network leveraging on real-lifetrust”. In: Communications Magazine, IEEE 47.12 (2009),pp. 94–101. ISSN: 0163-6804. DOI:10.1109/MCOM.2009.5350374.
R. Fielding et al. Hypertext Transfer Protocol – HTTP/1.1. RFC2616 (Draft Standard). Updated by RFCs 2817, 5785, 6266, 6585.Internet Engineering Task Force, June 1999. URL:http://www.ietf.org/rfc/rfc2616.txt.
K. Graffi et al. “A Distributed Platform for Multimedia Communities”.In: Multimedia, 2008. ISM 2008. Tenth IEEE InternationalSymposium on. 2008, pp. 208–213. DOI: 10.1109/ISM.2008.11.
References
Felix Maurer – Federated Object Sharing Protocol June 16, 2014 21/19
References IIIU. Lanjewar, M. Naik, and R. Tewari. “Glamor: An architecture forfile system federation”. In: IBM Journal of Research andDevelopment 52.4.5 (2008), pp. 329–339. ISSN: 0018-8646. DOI:10.1147/rd.524.0329.
P. Saint-Andre. Extensible Messaging and Presence Protocol(XMPP): Core. RFC 6120 (Proposed Standard). InternetEngineering Task Force, Mar. 2011. URL:http://www.ietf.org/rfc/rfc6120.txt.
Sebastian Tramp et al. “An Architecture of a Distributed SemanticSocial Network”. In: Semantic Web 5.2 (2014). to appear. ISSN:1570-0844.
T. Weis and A. Wacker. “Federating Websites with the Google WaveProtocol”. In: Internet Computing, IEEE 15.3 (2011), pp. 51–58.ISSN: 1089-7801. DOI: 10.1109/MIC.2011.28.
References
Felix Maurer – Federated Object Sharing Protocol June 16, 2014 22/19
References IV
Ching-man Au Yeung et al. “Decentralization: The future of onlinesocial networking”. In: 2 (2009).
References
Felix Maurer – Federated Object Sharing Protocol June 16, 2014 23/19
0
50
100
150
200
0 60 120 180 240 300 360
Resp
onse
tim
e in m
s
Time in minutes
SELECTCREATEUPDATEDELETE
References
Felix Maurer – Federated Object Sharing Protocol June 16, 2014 24/19
0
1000
2000
3000
4000
5000
6000
7000
8000
9000
0 100 200 300 400 500 600 700 800
Resp
onse
tim
e in m
s
Notifications sent
References
Felix Maurer – Federated Object Sharing Protocol June 16, 2014 25/19
0
1000
2000
3000
4000
5000
6000
7000
8000
9000
0 100 200 300 400 500 600 700 800
Resp
onse
tim
e in m
s
Notifications sent
References
Felix Maurer – Federated Object Sharing Protocol June 16, 2014 26/19
0
1000
2000
3000
4000
5000
6000
7000
8000
9000
0 100 200 300 400 500 600 700 800
Run t
ime o
f D
B u
pdate
in m
s
Notifications sent
References
Felix Maurer – Federated Object Sharing Protocol June 16, 2014 27/19