FOSP Towards a Federated Object Sharing Protocol that Unifies Operations on Social Content Felix Maurer | June 16, 2014 FORSCHUNGSGRUPPE DEZENTRALE SYSTEME UND NETZDIENSTE www.kit.edu KIT – University of the State of Baden-Wuerttemberg and National Laboratory of the Helmholtz Association
Outline Federated Object Sharing 4 Protocol Introduction 1 Implementation 5 2 Analysis Discussion 6 Related work 3 Conclusion 7 Introduction Analysis Related work Federated Object Sharing Protocol Implementation Discussion Conclusion June 16, 2014 2/19 Felix Maurer – Federated Object Sharing Protocol
Motivation Nowadays, online social networks (OSNs) make Portals up a large part of the 28% World Wide Web E-commerce (WWW) 1 . 12% HTTP was designed for Social networks Wikipedia 32% the early WWW. Search engines 4% 24% Functionalities for social networks are Top 25 implemented as HTTP APIs. 1 http://www.alexa.com/topsites Introduction Analysis Related work Federated Object Sharing Protocol Implementation Discussion Conclusion June 16, 2014 3/19 Felix Maurer – Federated Object Sharing Protocol
Problem Statement “ Existing social networking services are centralized and the companies providing the services have the sole authority to control all the data of the users. It is not a trivial task for a user to reuse his own data , including his social network, messages with friends and photos among other applications, as there are not many robust mechanisms to port all the data from one platform to another.” [11] Figure: by Simonds David, The Economist 19 March 2008 Introduction Analysis Related work Federated Object Sharing Protocol Implementation Discussion Conclusion June 16, 2014 4/19 Felix Maurer – Federated Object Sharing Protocol
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 software that forms a federated social network. Introduction Analysis Related work Federated Object Sharing Protocol Implementation Discussion Conclusion June 16, 2014 5/19 Felix Maurer – Federated Object Sharing Protocol
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 June 16, 2014 6/19 Felix Maurer – Federated Object Sharing Protocol
Requirements Engineering Content Sharing Access Publish Federation Control Subscribe Global Global Authenti Meta- Duplex Identifi Namespace Connection -cation data -cation Introduction Analysis Related work Federated Object Sharing Protocol Implementation Discussion Conclusion June 16, 2014 7/19 Felix Maurer – Federated Object Sharing Protocol
Related work: Existing Protocols Data- Access PublishSubscribe Federation storage control � � HTTP/- ✗ – WebDAV/- HTTP2.0: [5, 3, 2] NFS and Glamor: � � ✗ ✗ [7] XMPP: [8] – � � ✗ Wave: [10] – – � � Introduction Analysis Related work Federated Object Sharing Protocol Implementation Discussion Conclusion June 16, 2014 8/19 Felix Maurer – Federated Object Sharing Protocol
Projects Diaspora 2 Buddycloud 3 Architecture Federated Federated Protocols HTTP (Salmon, Webfinger) HTTP , XMPP Content Posts, Comments, Pictures, Posts, Pictures, Files, ex- extensible tensible Format ActivityStreams JSON/XML Limitations Lacking documentation Coarse access control → unclear → Complex interaction of multiple protocols → Prioritize working software 2 https://diasporafoundation.org/ 3 https://buddycloud.org/wiki/Main Page Introduction Analysis Related work Federated Object Sharing Protocol Implementation Discussion Conclusion June 16, 2014 9/19 Felix Maurer – Federated Object Sharing Protocol
Scientific Work Distributed Semantic SODESSON: [1] Social Network: [9] � Decentralized content sharing (P2P) � Global content sharing, federation ✗ Focus on providing services directly ✗ Access control not from (mobile) devices described/defined, no push to the → difficult to deploy. client. Safebook: [4] Distributed Platform for Multimedia Communities: [6] � Content Sharing (P2P) � Decentralized content sharing, user ✗ Publish subscribe to user communication ✗ Complex P2P architecture, ✗ Requires additional trusted cryptography for access control identification service (TIS). Introduction Analysis Related work Federated Object Sharing Protocol Implementation Discussion Conclusion June 16, 2014 10/19 Felix Maurer – Federated Object Sharing Protocol
FOSP: Network Architecture Federated Object Sharing Protocol wonderland.lit realworld.lit queen@wonderland.lit alice@wonderland.lit hatter@wonderland.lit sister@realworld.lit mother@realworld.lit Introduction Analysis Related work Federated Object Sharing Protocol Implementation Discussion Conclusion June 16, 2014 11/19 Felix Maurer – Federated Object Sharing Protocol
FOSP: Data Structures Object + Attachment Tree 010100100100110101010101001010011011001010100 101001010010010011010101010100101001101100101 { 010010100101001001001101010101010010100110110 btime: "2007-03-01T13:00:00Z", alice@wonderland.lit 010101001010010101111110101001001111010101001 mtime: "2008-05-11T15:30:00Z", 101010101101101010100100001010101111010101010 owner: "alice@wonderland.lit", 101101001010101010100100100110101010101001010 acl: { 011011001010100101001010010010011010101010100 owner: [ "read-data", "write-data", 101001101100101010010100101001001001101010101 "read-acl", "write-acl"], 010010100110110010101001010010100100100110101 users: { ... }, 010101001010011011001010100101001010111111010 others: [ "read-data", "read-attachment" ] config social 100100111101010100110101010110110101010010000 }, 101010111101010101010110100101010101010010010 subscriptions: { 011010101010100101001101100101010010100101001 users: { alice@wonderland.lit: { 001001101010101010010100110110010101001010010 events: [ "created", "updated" ], 100100100110101010101001010011011001010100101 depth: 1 001010010010011010101010100101001101100101010 } 010100101011111101010010011110101010011010101 me groups buddies } 011011010101001000010101011110101010101011010 }, 010101010101001001001101010101010010100110110 attachment: { 010101001010010100100100110101010101001010011 type: "image/jpeg", 011001010100101001010010010011010101010100101 name: "avatar.jpeg", 001101100101010010100101001001001101010101010 size: 112879 010100110110010101001010010101111110101001001 }, 111010101001101010101101101010100100001010101 avatar type: "text/plain", 111010101010101101001010101010100100100110101 data: "A picture of me" } Introduction Analysis Related work Federated Object Sharing Protocol Implementation Discussion Conclusion June 16, 2014 12/19 Felix Maurer – Federated Object Sharing Protocol
Messages Request, Response or Notification Headers and body UTF-8 text and binary Sent over WebSockets Introduction Analysis Related work Federated Object Sharing Protocol Implementation Discussion Conclusion June 16, 2014 13/19 Felix Maurer – Federated Object Sharing Protocol
Policies Define how the content of objects is interpreted “acl” field contains access control lists and is read by the server to enforce access control. “subscriptions” field contains publish-subscribe configurations and is read by the server to notify users about changes. ... Also restrict how messages should be forwarded A server must only forward requests of users that belong to its domain. A server must never forward notifications for resources that do not belong to the domain of the sending server. ... Introduction Analysis Related work Federated Object Sharing Protocol Implementation Discussion Conclusion June 16, 2014 14/19 Felix Maurer – Federated Object Sharing Protocol
Implementation: Server Prototype Work in progress Language JavaScript (Node.js) Go Database RethinkDB Postgresql Concurrency single threaded multi threading possible can share code with faster, allows browser clients, doesn’t multi threading scale with number of con- current users, database is slow for updates Introduction Analysis Related work Federated Object Sharing Protocol Implementation Discussion Conclusion June 16, 2014 15/19 Felix Maurer – Federated Object Sharing Protocol
Recommend
More recommend