PrPlrhan/MCS/MCS10-PrPl.pdfPrPl (Private-Public) • Decentralized across independent administrave...
Transcript of PrPlrhan/MCS/MCS10-PrPl.pdfPrPl (Private-Public) • Decentralized across independent administrave...
![Page 1: PrPlrhan/MCS/MCS10-PrPl.pdfPrPl (Private-Public) • Decentralized across independent administrave domains – Keep data privately and sll can interact with each other – Choose the](https://reader035.fdocument.pub/reader035/viewer/2022071419/6117464cb08da27046215cf2/html5/thumbnails/1.jpg)
PrPl A Decentralized Social Networking Infrastructure
Seok‐Won Seong
Jiwon Seo, Ma=hew Nasielski, Debangsu Sengupta, Sudheendra Hangal, Seng Keat Teh, Ruven Chu, Ben Dodson,
Monica S. Lam
Stanford University 06/15/2010
![Page 2: PrPlrhan/MCS/MCS10-PrPl.pdfPrPl (Private-Public) • Decentralized across independent administrave domains – Keep data privately and sll can interact with each other – Choose the](https://reader035.fdocument.pub/reader035/viewer/2022071419/6117464cb08da27046215cf2/html5/thumbnails/2.jpg)
Outline
• MoSvaSon • PrPl plaUorm
– Personal Cloud Butler – Federated ID management – SemanSc index – SociaLite
• ImplementaSon • Preliminary evaluaSon • Conclusion
![Page 3: PrPlrhan/MCS/MCS10-PrPl.pdfPrPl (Private-Public) • Decentralized across independent administrave domains – Keep data privately and sll can interact with each other – Choose the](https://reader035.fdocument.pub/reader035/viewer/2022071419/6117464cb08da27046215cf2/html5/thumbnails/3.jpg)
Social Networking Today
![Page 4: PrPlrhan/MCS/MCS10-PrPl.pdfPrPl (Private-Public) • Decentralized across independent administrave domains – Keep data privately and sll can interact with each other – Choose the](https://reader035.fdocument.pub/reader035/viewer/2022071419/6117464cb08da27046215cf2/html5/thumbnails/4.jpg)
Profit Driven Social Networking
• Loss of data ownership – Privacy – Data locked‐in – No interoperability
• Inconvenience – Upload for each service – Slow uplink – Can only share within users in the same service – Confusing access control
• Scaling cost – Close group of friends and family – Storage grows faster than bandwidth
![Page 5: PrPlrhan/MCS/MCS10-PrPl.pdfPrPl (Private-Public) • Decentralized across independent administrave domains – Keep data privately and sll can interact with each other – Choose the](https://reader035.fdocument.pub/reader035/viewer/2022071419/6117464cb08da27046215cf2/html5/thumbnails/5.jpg)
PrPl (Private-Public)
• Decentralized across independent administraSve domains – Keep data privately and sSll can interact with each other – Choose the service to host personal data at home (in a setup box) or
free ad‐supported services (in the cloud) – Take advantage of a myriad of storage services available
• Open API for distributed applicaSons – Programming interfaces to write and run a social applicaSons that run
across different administraSve domains • Trustworthy interacSons
– Safe haven for individuals to keep all the personal data without reservaSon
– Share items with selected friends without uploading to different websites
– Enable new applicaSons as all data available in one place
![Page 6: PrPlrhan/MCS/MCS10-PrPl.pdfPrPl (Private-Public) • Decentralized across independent administrave domains – Keep data privately and sll can interact with each other – Choose the](https://reader035.fdocument.pub/reader035/viewer/2022071419/6117464cb08da27046215cf2/html5/thumbnails/6.jpg)
Personal Cloud Butler (Network) Iden66es
My Personal Cloud Butler
GPS Trace Credit card history Email Phone record
Social Topology Calendar
Social Network of Personal Clouds
![Page 7: PrPlrhan/MCS/MCS10-PrPl.pdfPrPl (Private-Public) • Decentralized across independent administrave domains – Keep data privately and sll can interact with each other – Choose the](https://reader035.fdocument.pub/reader035/viewer/2022071419/6117464cb08da27046215cf2/html5/thumbnails/7.jpg)
Friend’s Butlers
Friend’s Butlers
Friends’ Butlers
IMAP Facebook Home Server
$
Personal‐Cloud Butler
SemanSc Index
OpenID Manager
Data Steward API
Data Manager
Pocket Butler
AuthorizaSon AuthenScaSon CommunicaSon
Access Control
SociaLite Database Query Language
PrPl Architecture
![Page 8: PrPlrhan/MCS/MCS10-PrPl.pdfPrPl (Private-Public) • Decentralized across independent administrave domains – Keep data privately and sll can interact with each other – Choose the](https://reader035.fdocument.pub/reader035/viewer/2022071419/6117464cb08da27046215cf2/html5/thumbnails/8.jpg)
PrPl Semantic Index
• Unified view of all personal resources (metadata and blob) • All resource metadata are stored in the index and blobs are
stored in federated storages called Data Stewards • Unstructured database
– Diverse set of user data – Described in RDF (Resource DescripSon Framework) – CollecSon of (sub, pred, obj) triples
• Common ontologies – Databases in mulSple administraSve domains – Metadata restricSon on resource properSes – Reasoning and inference – Described in Web Ontology Language (OWL)
![Page 9: PrPlrhan/MCS/MCS10-PrPl.pdfPrPl (Private-Public) • Decentralized across independent administrave domains – Keep data privately and sll can interact with each other – Choose the](https://reader035.fdocument.pub/reader035/viewer/2022071419/6117464cb08da27046215cf2/html5/thumbnails/9.jpg)
Data Stewards
• Federated stores that host blobs • Maps a virtual PrPl resource URI to a physical URI • At startup, registers with the owner Butler • Sends heartbeats periodically with device informaSon and data updates
• Serves blobs directly to applicaSons – Butler issues a blob Scket acer checking user permission – Blob Scket contains resource URI, user ID, expiraSon Sme, authorized operaSons, locaSons of Data Stewards, and signature
– ApplicaSon can cache Sll the expiraSon Sme – Blob Scket is not renewable
![Page 10: PrPlrhan/MCS/MCS10-PrPl.pdfPrPl (Private-Public) • Decentralized across independent administrave domains – Keep data privately and sll can interact with each other – Choose the](https://reader035.fdocument.pub/reader035/viewer/2022071419/6117464cb08da27046215cf2/html5/thumbnails/10.jpg)
Pocket Butler
• Proxy service running on the client device – Provides single sign‐on for all the applicaSons running on the same device
– Handles the underlying authenScaSon and communicaSons with the Butler
– Caches blobs and query results
![Page 11: PrPlrhan/MCS/MCS10-PrPl.pdfPrPl (Private-Public) • Decentralized across independent administrave domains – Keep data privately and sll can interact with each other – Choose the](https://reader035.fdocument.pub/reader035/viewer/2022071419/6117464cb08da27046215cf2/html5/thumbnails/11.jpg)
Butler Home + Management Console
• A Butler owner can add and host services • Friends even without a Butler can access shared services and data
• Management console to administer user’s cloud informaSon – Generic resource browser, add, and edit metadata – Download blob – Manage friends and group membership – Specify access control – View registered devices and services – View and revoke Sckets – Run simple queries directly
![Page 12: PrPlrhan/MCS/MCS10-PrPl.pdfPrPl (Private-Public) • Decentralized across independent administrave domains – Keep data privately and sll can interact with each other – Choose the](https://reader035.fdocument.pub/reader035/viewer/2022071419/6117464cb08da27046215cf2/html5/thumbnails/12.jpg)
Federated ID Management
• Decentralized idenSty management • Single sign‐on • Reuse exisSng credenSals • OpenID
– Open, decentralized, single sign‐on standard for ID management
– Unique URL (h=p://bob.openid‐provider.org)
– OpenID provider (OP): Service provider offering registering OpenID and authenScaSon
– Relying party (RP): Site/service wants to verify the user's idenSficaSon.
– End‐user
![Page 13: PrPlrhan/MCS/MCS10-PrPl.pdfPrPl (Private-Public) • Decentralized across independent administrave domains – Keep data privately and sll can interact with each other – Choose the](https://reader035.fdocument.pub/reader035/viewer/2022071419/6117464cb08da27046215cf2/html5/thumbnails/13.jpg)
Federated ID Management
• Directory – User to Butler lookup, provided by OpenID providers – CerSficate Authority (CA) in PKI
• AuthenScaSon 1. User authenScaSon at the Butler 2. Between Butlers to propagate distributed queries – A session Scket issued by a Butler as a credenSal – Session Scket includes an issuer ID, requester ID, session ID, expiraSon Sme, and signature
– Session Scket is renewable
![Page 14: PrPlrhan/MCS/MCS10-PrPl.pdfPrPl (Private-Public) • Decentralized across independent administrave domains – Keep data privately and sll can interact with each other – Choose the](https://reader035.fdocument.pub/reader035/viewer/2022071419/6117464cb08da27046215cf2/html5/thumbnails/14.jpg)
User and Butler Authentication
Personal Cloud Butler
Friends’ Butlers
Directory
Data Stewards
App directly fetches blob from a Steward.
1. Butler self‐issues a session Scket 2. Friend verifies with public key
1. OpenID login 2. Get a session Scket from Butler.
Butler grants a blob Scket per resource.
![Page 15: PrPlrhan/MCS/MCS10-PrPl.pdfPrPl (Private-Public) • Decentralized across independent administrave domains – Keep data privately and sll can interact with each other – Choose the](https://reader035.fdocument.pub/reader035/viewer/2022071419/6117464cb08da27046215cf2/html5/thumbnails/15.jpg)
SociaLite
• Measure of success – Ease of programming – Number of applicaSons
• Difficult to write distributed applicaSons • LocaSon‐agnosSc query language for social mulS databases • Based on Datalog, a rule and query language for deducSve
databases – GrandMother(w,y) :‐ Mother(w,x), Father(x,y). – ComposiSon and recursion
• Hides away the complexiSes associated with databases in mulSple administraSve domains
![Page 16: PrPlrhan/MCS/MCS10-PrPl.pdfPrPl (Private-Public) • Decentralized across independent administrave domains – Keep data privately and sll can interact with each other – Choose the](https://reader035.fdocument.pub/reader035/viewer/2022071419/6117464cb08da27046215cf2/html5/thumbnails/16.jpg)
SociaLite Extensions
• RDF‐Based Database
• Remote Query – According‐To operator
• FuncSons – Tuple‐wise funcSon
– RelaSon‐wise funcSon
Personal Cloud Butler
Personal Cloud Butler
Personal Cloud Butler
Personal Cloud Butler
Top10(s) :‐ RankedSongs(s), @HEAD(s, 10).
Friend(u) :‐ (u, type, prpl:IdenSty)
RecentSongs(s) :‐ (s, type, prpl:Song), (s , lastPlayed, date),
$WITHIN(date, “5 days”).
FStar(p) :‐ Friend(p) FStar(p) :‐ Friend(x), FStar[x] (p) FStar‐CurrLoc (p,l) :‐ FStar(p), CurrLoc [p] (l)
![Page 17: PrPlrhan/MCS/MCS10-PrPl.pdfPrPl (Private-Public) • Decentralized across independent administrave domains – Keep data privately and sll can interact with each other – Choose the](https://reader035.fdocument.pub/reader035/viewer/2022071419/6117464cb08da27046215cf2/html5/thumbnails/17.jpg)
Outline
• MoSvaSon • PrPl plaUorm
– Personal Cloud Butler – Federated ID management – SemanSc index – SociaLite
• ImplementaSon • Preliminary evaluaSon • Conclusion
![Page 18: PrPlrhan/MCS/MCS10-PrPl.pdfPrPl (Private-Public) • Decentralized across independent administrave domains – Keep data privately and sll can interact with each other – Choose the](https://reader035.fdocument.pub/reader035/viewer/2022071419/6117464cb08da27046215cf2/html5/thumbnails/18.jpg)
Prototype Implementation
• Fully funcSonal prototype of PrPl wri=en in Java (and JSP/Struts web components)
• 34,000 source lines of code (SLOC ) including 8,800 SLOC for SociaLite
• XML‐RPC and REST APIs over HTTP/HTTPS • Client API libraries on Java, Android, and iPhone. • Data Stewards for filesystems, IMAP, Facebook, Google
contacts & Picasa photos • Third‐party libraries: HP Jena, OpenID4Java, Apache XML‐
RPC, Jersey Rest API, JDBM • PKI: Sun cryptography libraries, Keystore, and OpenSSL • PrPl HosSng: A run‐Sme plaUorm for applicaSon
developers
![Page 19: PrPlrhan/MCS/MCS10-PrPl.pdfPrPl (Private-Public) • Decentralized across independent administrave domains – Keep data privately and sll can interact with each other – Choose the](https://reader035.fdocument.pub/reader035/viewer/2022071419/6117464cb08da27046215cf2/html5/thumbnails/19.jpg)
Preliminary Evaluation Performance on a single Butler
• Experimental prototype with no performance opSmizaSon • Setup
– 4 indices ranging from 50,000 to 500,000 triples – Client and Butler on the same machine – Intel Core 2 Duo 2.4 GHz and 4GB of memory
• Queries – Find photos that match one and two given tags
• Results − First result in less than 1.5s => pipeline − Two tag query is uniformly faster => the communicaSon
overhead of sending results dominates execuSon Sme
− Commensurate with the results reported for the underlying Jena library
![Page 20: PrPlrhan/MCS/MCS10-PrPl.pdfPrPl (Private-Public) • Decentralized across independent administrave domains – Keep data privately and sll can interact with each other – Choose the](https://reader035.fdocument.pub/reader035/viewer/2022071419/6117464cb08da27046215cf2/html5/thumbnails/20.jpg)
Preliminary Evaluation Performance on a Network of Butlers
• Setup – 100 Personal Cloud Butlers on Amazon EC2 – 10 to 100 friends, 30 friends for Home Butler – Tie strength from [0,1) and consider 0.7 or higher as close friends – 50 to 350 photos and 1,000 locaSon data – Up to 1,500 songs using a Gaussian dist over the syntheScally
generated 100,000 song libraries • Queries
– 4 distributed queries emulaSng typical social networking applicaSons
![Page 21: PrPlrhan/MCS/MCS10-PrPl.pdfPrPl (Private-Public) • Decentralized across independent administrave domains – Keep data privately and sll can interact with each other – Choose the](https://reader035.fdocument.pub/reader035/viewer/2022071419/6117464cb08da27046215cf2/html5/thumbnails/21.jpg)
Preliminary Evaluation Performance on a Network of Butlers
• Results
– First result within 1.5 seconds – All queries finish in 5 seconds – Each query concisely represented in 2 to 6 SociaLite rules
!"
#!"
$!"
%!"
&!"
'!!"
!" '" #" (" $" )"
!"#$%&'"()*)
+,#&-./)
*+,,+-"./01-23" 4/01-23"356/" *7+31"./01-238"90:5;/13" <+9"'!"3+-=3"
![Page 22: PrPlrhan/MCS/MCS10-PrPl.pdfPrPl (Private-Public) • Decentralized across independent administrave domains – Keep data privately and sll can interact with each other – Choose the](https://reader035.fdocument.pub/reader035/viewer/2022071419/6117464cb08da27046215cf2/html5/thumbnails/22.jpg)
Applications
Friends list
Friends’ photos
LocaSon history Music play history
![Page 23: PrPlrhan/MCS/MCS10-PrPl.pdfPrPl (Private-Public) • Decentralized across independent administrave domains – Keep data privately and sll can interact with each other – Choose the](https://reader035.fdocument.pub/reader035/viewer/2022071419/6117464cb08da27046215cf2/html5/thumbnails/23.jpg)
Seok‐Won Soeng’s PrPl
Applications Butler home showing photo wall app and management interface
Seok‐Won Seong’s PrPl
![Page 24: PrPlrhan/MCS/MCS10-PrPl.pdfPrPl (Private-Public) • Decentralized across independent administrave domains – Keep data privately and sll can interact with each other – Choose the](https://reader035.fdocument.pub/reader035/viewer/2022071419/6117464cb08da27046215cf2/html5/thumbnails/24.jpg)
Applications
SemanSc Photo Browser on TV
![Page 25: PrPlrhan/MCS/MCS10-PrPl.pdfPrPl (Private-Public) • Decentralized across independent administrave domains – Keep data privately and sll can interact with each other – Choose the](https://reader035.fdocument.pub/reader035/viewer/2022071419/6117464cb08da27046215cf2/html5/thumbnails/25.jpg)
Applications
PrPl makes wriSng programs simple by hiding the complexity
![Page 26: PrPlrhan/MCS/MCS10-PrPl.pdfPrPl (Private-Public) • Decentralized across independent administrave domains – Keep data privately and sll can interact with each other – Choose the](https://reader035.fdocument.pub/reader035/viewer/2022071419/6117464cb08da27046215cf2/html5/thumbnails/26.jpg)
Conclusion
• PrPl: a decentralized, open and, trustworthy social networking plaUorm – Personal Cloud Butler as a safe haven for personal data – Unified view with the PrPl semanSc index – Federated ID management based on OpenID – PocketButler and SociaLite API hide the complexity of decentralizaSon from applicaSon developers
• Fully funcSonal infrastructure prototype and number of social applicaSons
• Preliminary results on Amazon EC2 with 100 Butlers
![Page 27: PrPlrhan/MCS/MCS10-PrPl.pdfPrPl (Private-Public) • Decentralized across independent administrave domains – Keep data privately and sll can interact with each other – Choose the](https://reader035.fdocument.pub/reader035/viewer/2022071419/6117464cb08da27046215cf2/html5/thumbnails/27.jpg)
Questions ?
• Thank you.