separating web applications from user data storage with bstorewebapps10-slides.pdf · search(fs,...
TRANSCRIPT
![Page 1: Separating Web Applications from User Data Storage with BSTOREwebapps10-slides.pdf · search(fs, tag_expr) -> handle_list flickr.com #print viewer.com #print fsmgr.com #christmas](https://reader036.vdocuments.mx/reader036/viewer/2022071102/5fdb8c5604101f481d24070c/html5/thumbnails/1.jpg)
SEPARATING WEB
APPLICATIONS FROM USER
DATA STORAGE WITH BSTORERamesh Chandra
Priya Gupta
Nickolai Zeldovich
MIT CSAIL
![Page 2: Separating Web Applications from User Data Storage with BSTOREwebapps10-slides.pdf · search(fs, tag_expr) -> handle_list flickr.com #print viewer.com #print fsmgr.com #christmas](https://reader036.vdocuments.mx/reader036/viewer/2022071102/5fdb8c5604101f481d24070c/html5/thumbnails/2.jpg)
MOTIVATING EXAMPLE
Alice manages her photos online.
![Page 3: Separating Web Applications from User Data Storage with BSTOREwebapps10-slides.pdf · search(fs, tag_expr) -> handle_list flickr.com #print viewer.com #print fsmgr.com #christmas](https://reader036.vdocuments.mx/reader036/viewer/2022071102/5fdb8c5604101f481d24070c/html5/thumbnails/3.jpg)
MOTIVATING EXAMPLE
Alice manages her photos online.
Snaps family photos
Uploads to Flickr
![Page 4: Separating Web Applications from User Data Storage with BSTOREwebapps10-slides.pdf · search(fs, tag_expr) -> handle_list flickr.com #print viewer.com #print fsmgr.com #christmas](https://reader036.vdocuments.mx/reader036/viewer/2022071102/5fdb8c5604101f481d24070c/html5/thumbnails/4.jpg)
MOTIVATING EXAMPLE
Alice manages her photos online.
Snaps family photos
Uploads to Flickr
Edits them with PhotoEditor
PhotoEditor uses SuperRedEyeRemover
![Page 5: Separating Web Applications from User Data Storage with BSTOREwebapps10-slides.pdf · search(fs, tag_expr) -> handle_list flickr.com #print viewer.com #print fsmgr.com #christmas](https://reader036.vdocuments.mx/reader036/viewer/2022071102/5fdb8c5604101f481d24070c/html5/thumbnails/5.jpg)
MOTIVATING EXAMPLE
Alice manages her photos online.
Snaps family photos
Uploads to Flickr
Edits them with PhotoEditor
PhotoEditor uses SuperRedEyeRemover
Uses PhotoViewer to view photos as wallpaper
![Page 6: Separating Web Applications from User Data Storage with BSTOREwebapps10-slides.pdf · search(fs, tag_expr) -> handle_list flickr.com #print viewer.com #print fsmgr.com #christmas](https://reader036.vdocuments.mx/reader036/viewer/2022071102/5fdb8c5604101f481d24070c/html5/thumbnails/6.jpg)
MOTIVATING EXAMPLE
Alice manages her photos online.
Snaps family photos
Uploads to Flickr
Edits them with PhotoEditor
PhotoEditor uses SuperRedEyeRemover
Uses PhotoViewer to view photos as wallpaper
Uses Shutterfly to print photos
![Page 7: Separating Web Applications from User Data Storage with BSTOREwebapps10-slides.pdf · search(fs, tag_expr) -> handle_list flickr.com #print viewer.com #print fsmgr.com #christmas](https://reader036.vdocuments.mx/reader036/viewer/2022071102/5fdb8c5604101f481d24070c/html5/thumbnails/7.jpg)
STRAWMAN – MANUAL MANAGEMENT
BROWSER
BACKEND SERVERS
PhotoEditor
SuperRedEyeRemover
PhotoViewer
Shutterfly
![Page 8: Separating Web Applications from User Data Storage with BSTOREwebapps10-slides.pdf · search(fs, tag_expr) -> handle_list flickr.com #print viewer.com #print fsmgr.com #christmas](https://reader036.vdocuments.mx/reader036/viewer/2022071102/5fdb8c5604101f481d24070c/html5/thumbnails/8.jpg)
STRAWMAN – MANUAL MANAGEMENT
BROWSER
BACKEND SERVERS
PhotoEditor
SuperRedEyeRemover
PhotoViewer
Shutterfly
![Page 9: Separating Web Applications from User Data Storage with BSTOREwebapps10-slides.pdf · search(fs, tag_expr) -> handle_list flickr.com #print viewer.com #print fsmgr.com #christmas](https://reader036.vdocuments.mx/reader036/viewer/2022071102/5fdb8c5604101f481d24070c/html5/thumbnails/9.jpg)
STRAWMAN – MANUAL MANAGEMENT
BROWSER
BACKEND SERVERS
PhotoEditor
SuperRedEyeRemover
PhotoViewer
Shutterfly
![Page 10: Separating Web Applications from User Data Storage with BSTOREwebapps10-slides.pdf · search(fs, tag_expr) -> handle_list flickr.com #print viewer.com #print fsmgr.com #christmas](https://reader036.vdocuments.mx/reader036/viewer/2022071102/5fdb8c5604101f481d24070c/html5/thumbnails/10.jpg)
STRAWMAN – MANUAL MANAGEMENT
BROWSER
BACKEND SERVERS
PhotoEditor
SuperRedEyeRemover
PhotoViewer
Shutterfly
![Page 11: Separating Web Applications from User Data Storage with BSTOREwebapps10-slides.pdf · search(fs, tag_expr) -> handle_list flickr.com #print viewer.com #print fsmgr.com #christmas](https://reader036.vdocuments.mx/reader036/viewer/2022071102/5fdb8c5604101f481d24070c/html5/thumbnails/11.jpg)
STRAWMAN – MANUAL MANAGEMENT
BROWSER
BACKEND SERVERS
PhotoEditor
SuperRedEyeRemover
PhotoViewer
Shutterfly
![Page 12: Separating Web Applications from User Data Storage with BSTOREwebapps10-slides.pdf · search(fs, tag_expr) -> handle_list flickr.com #print viewer.com #print fsmgr.com #christmas](https://reader036.vdocuments.mx/reader036/viewer/2022071102/5fdb8c5604101f481d24070c/html5/thumbnails/12.jpg)
STRAWMAN – MANUAL MANAGEMENT
BROWSER
BACKEND SERVERS
PhotoEditor
SuperRedEyeRemover
PhotoViewer
Shutterfly
![Page 13: Separating Web Applications from User Data Storage with BSTOREwebapps10-slides.pdf · search(fs, tag_expr) -> handle_list flickr.com #print viewer.com #print fsmgr.com #christmas](https://reader036.vdocuments.mx/reader036/viewer/2022071102/5fdb8c5604101f481d24070c/html5/thumbnails/13.jpg)
STRAWMAN – MANUAL MANAGEMENT
BROWSER
BACKEND SERVERS
PhotoEditor
SuperRedEyeRemover
PhotoViewer
Shutterfly
![Page 14: Separating Web Applications from User Data Storage with BSTOREwebapps10-slides.pdf · search(fs, tag_expr) -> handle_list flickr.com #print viewer.com #print fsmgr.com #christmas](https://reader036.vdocuments.mx/reader036/viewer/2022071102/5fdb8c5604101f481d24070c/html5/thumbnails/14.jpg)
STRAWMAN – MANUAL MANAGEMENT
BROWSER
BACKEND SERVERS
PhotoEditor
SuperRedEyeRemover
PhotoViewer
Shutterfly
![Page 15: Separating Web Applications from User Data Storage with BSTOREwebapps10-slides.pdf · search(fs, tag_expr) -> handle_list flickr.com #print viewer.com #print fsmgr.com #christmas](https://reader036.vdocuments.mx/reader036/viewer/2022071102/5fdb8c5604101f481d24070c/html5/thumbnails/15.jpg)
STRAWMAN – MANUAL MANAGEMENT
BROWSER
BACKEND SERVERS
PhotoEditor
SuperRedEyeRemover
PhotoViewer
Shutterfly
![Page 16: Separating Web Applications from User Data Storage with BSTOREwebapps10-slides.pdf · search(fs, tag_expr) -> handle_list flickr.com #print viewer.com #print fsmgr.com #christmas](https://reader036.vdocuments.mx/reader036/viewer/2022071102/5fdb8c5604101f481d24070c/html5/thumbnails/16.jpg)
STRAWMAN – MANUAL MANAGEMENT
BROWSER
BACKEND SERVERS
PhotoEditor
SuperRedEyeRemover
PhotoViewer
Shutterfly
![Page 17: Separating Web Applications from User Data Storage with BSTOREwebapps10-slides.pdf · search(fs, tag_expr) -> handle_list flickr.com #print viewer.com #print fsmgr.com #christmas](https://reader036.vdocuments.mx/reader036/viewer/2022071102/5fdb8c5604101f481d24070c/html5/thumbnails/17.jpg)
STRAWMAN – MANUAL MANAGEMENT
BROWSER
BACKEND SERVERS
PhotoEditor
SuperRedEyeRemover
PhotoViewer
Shutterfly
![Page 18: Separating Web Applications from User Data Storage with BSTOREwebapps10-slides.pdf · search(fs, tag_expr) -> handle_list flickr.com #print viewer.com #print fsmgr.com #christmas](https://reader036.vdocuments.mx/reader036/viewer/2022071102/5fdb8c5604101f481d24070c/html5/thumbnails/18.jpg)
STRAWMAN – MANUAL MANAGEMENT
BROWSER
BACKEND SERVERS
PhotoEditor
SuperRedEyeRemover
PhotoViewer
Shutterfly
![Page 19: Separating Web Applications from User Data Storage with BSTOREwebapps10-slides.pdf · search(fs, tag_expr) -> handle_list flickr.com #print viewer.com #print fsmgr.com #christmas](https://reader036.vdocuments.mx/reader036/viewer/2022071102/5fdb8c5604101f481d24070c/html5/thumbnails/19.jpg)
STRAWMAN – MANUAL MANAGEMENT
BROWSER
BACKEND SERVERS
PhotoEditor
SuperRedEyeRemover
PhotoViewer
Shutterfly
![Page 20: Separating Web Applications from User Data Storage with BSTOREwebapps10-slides.pdf · search(fs, tag_expr) -> handle_list flickr.com #print viewer.com #print fsmgr.com #christmas](https://reader036.vdocuments.mx/reader036/viewer/2022071102/5fdb8c5604101f481d24070c/html5/thumbnails/20.jpg)
STRAWMAN – MANUAL MANAGEMENT
BROWSER
BACKEND SERVERS
PhotoEditor
SuperRedEyeRemover
PhotoViewer
Shutterfly
![Page 21: Separating Web Applications from User Data Storage with BSTOREwebapps10-slides.pdf · search(fs, tag_expr) -> handle_list flickr.com #print viewer.com #print fsmgr.com #christmas](https://reader036.vdocuments.mx/reader036/viewer/2022071102/5fdb8c5604101f481d24070c/html5/thumbnails/21.jpg)
STRAWMAN – MANUAL MANAGEMENT
BROWSER
BACKEND SERVERS
PhotoEditor
SuperRedEyeRemover
PhotoViewer
Shutterfly
![Page 22: Separating Web Applications from User Data Storage with BSTOREwebapps10-slides.pdf · search(fs, tag_expr) -> handle_list flickr.com #print viewer.com #print fsmgr.com #christmas](https://reader036.vdocuments.mx/reader036/viewer/2022071102/5fdb8c5604101f481d24070c/html5/thumbnails/22.jpg)
STRAWMAN – MANUAL MANAGEMENT
BROWSER
BACKEND SERVERS
PhotoEditor
SuperRedEyeRemover
PhotoViewer
Shutterfly
![Page 23: Separating Web Applications from User Data Storage with BSTOREwebapps10-slides.pdf · search(fs, tag_expr) -> handle_list flickr.com #print viewer.com #print fsmgr.com #christmas](https://reader036.vdocuments.mx/reader036/viewer/2022071102/5fdb8c5604101f481d24070c/html5/thumbnails/23.jpg)
STRAWMAN – MANUAL MANAGEMENT
BROWSER
BACKEND SERVERS
PhotoEditor
SuperRedEyeRemover
PhotoViewer
Shutterfly
![Page 24: Separating Web Applications from User Data Storage with BSTOREwebapps10-slides.pdf · search(fs, tag_expr) -> handle_list flickr.com #print viewer.com #print fsmgr.com #christmas](https://reader036.vdocuments.mx/reader036/viewer/2022071102/5fdb8c5604101f481d24070c/html5/thumbnails/24.jpg)
STRAWMAN – MANUAL MANAGEMENT
BROWSER
BACKEND SERVERS
PhotoEditor
SuperRedEyeRemover
PhotoViewer
Shutterfly
o User must manually upload / download
o User must manually sync – error prone
o Web app developer must provision storage servers
o Redundant network transfers
![Page 25: Separating Web Applications from User Data Storage with BSTOREwebapps10-slides.pdf · search(fs, tag_expr) -> handle_list flickr.com #print viewer.com #print fsmgr.com #christmas](https://reader036.vdocuments.mx/reader036/viewer/2022071102/5fdb8c5604101f481d24070c/html5/thumbnails/25.jpg)
CURRENT SOLN – WEB SERVICES AND OAUTH
BROWSER
BACKEND SERVERS
PhotoEditor
SuperRedEyeRemover
PhotoViewer
Shutterfly
![Page 26: Separating Web Applications from User Data Storage with BSTOREwebapps10-slides.pdf · search(fs, tag_expr) -> handle_list flickr.com #print viewer.com #print fsmgr.com #christmas](https://reader036.vdocuments.mx/reader036/viewer/2022071102/5fdb8c5604101f481d24070c/html5/thumbnails/26.jpg)
CURRENT SOLN – WEB SERVICES AND OAUTH
BROWSER
BACKEND SERVERS
PhotoEditor
SuperRedEyeRemover
PhotoViewer
Shutterfly
![Page 27: Separating Web Applications from User Data Storage with BSTOREwebapps10-slides.pdf · search(fs, tag_expr) -> handle_list flickr.com #print viewer.com #print fsmgr.com #christmas](https://reader036.vdocuments.mx/reader036/viewer/2022071102/5fdb8c5604101f481d24070c/html5/thumbnails/27.jpg)
CURRENT SOLN – WEB SERVICES AND OAUTH
BROWSER
BACKEND SERVERS
PhotoEditor
SuperRedEyeRemover
PhotoViewer
Shutterfly
![Page 28: Separating Web Applications from User Data Storage with BSTOREwebapps10-slides.pdf · search(fs, tag_expr) -> handle_list flickr.com #print viewer.com #print fsmgr.com #christmas](https://reader036.vdocuments.mx/reader036/viewer/2022071102/5fdb8c5604101f481d24070c/html5/thumbnails/28.jpg)
CURRENT SOLN – WEB SERVICES AND OAUTH
BROWSER
BACKEND SERVERS
PhotoEditor
SuperRedEyeRemover
PhotoViewer
Shutterfly
![Page 29: Separating Web Applications from User Data Storage with BSTOREwebapps10-slides.pdf · search(fs, tag_expr) -> handle_list flickr.com #print viewer.com #print fsmgr.com #christmas](https://reader036.vdocuments.mx/reader036/viewer/2022071102/5fdb8c5604101f481d24070c/html5/thumbnails/29.jpg)
CURRENT SOLN – WEB SERVICES AND OAUTH
BROWSER
BACKEND SERVERS
PhotoEditor
SuperRedEyeRemover
PhotoViewer
Shutterfly
![Page 30: Separating Web Applications from User Data Storage with BSTOREwebapps10-slides.pdf · search(fs, tag_expr) -> handle_list flickr.com #print viewer.com #print fsmgr.com #christmas](https://reader036.vdocuments.mx/reader036/viewer/2022071102/5fdb8c5604101f481d24070c/html5/thumbnails/30.jpg)
CURRENT SOLN – WEB SERVICES AND OAUTH
BROWSER
BACKEND SERVERS
PhotoEditor
SuperRedEyeRemover
PhotoViewer
Shutterfly
![Page 31: Separating Web Applications from User Data Storage with BSTOREwebapps10-slides.pdf · search(fs, tag_expr) -> handle_list flickr.com #print viewer.com #print fsmgr.com #christmas](https://reader036.vdocuments.mx/reader036/viewer/2022071102/5fdb8c5604101f481d24070c/html5/thumbnails/31.jpg)
CURRENT SOLN – WEB SERVICES AND OAUTH
BROWSER
BACKEND SERVERS
PhotoEditor
SuperRedEyeRemover
PhotoViewer
Shutterfly
![Page 32: Separating Web Applications from User Data Storage with BSTOREwebapps10-slides.pdf · search(fs, tag_expr) -> handle_list flickr.com #print viewer.com #print fsmgr.com #christmas](https://reader036.vdocuments.mx/reader036/viewer/2022071102/5fdb8c5604101f481d24070c/html5/thumbnails/32.jpg)
CURRENT SOLN – WEB SERVICES AND OAUTH
BROWSER
BACKEND SERVERS
PhotoEditor
SuperRedEyeRemover
PhotoViewer
Shutterfly
![Page 33: Separating Web Applications from User Data Storage with BSTOREwebapps10-slides.pdf · search(fs, tag_expr) -> handle_list flickr.com #print viewer.com #print fsmgr.com #christmas](https://reader036.vdocuments.mx/reader036/viewer/2022071102/5fdb8c5604101f481d24070c/html5/thumbnails/33.jpg)
CURRENT SOLN – WEB SERVICES AND OAUTH
BROWSER
BACKEND SERVERS
PhotoEditor
SuperRedEyeRemover
PhotoViewer
Shutterfly
![Page 34: Separating Web Applications from User Data Storage with BSTOREwebapps10-slides.pdf · search(fs, tag_expr) -> handle_list flickr.com #print viewer.com #print fsmgr.com #christmas](https://reader036.vdocuments.mx/reader036/viewer/2022071102/5fdb8c5604101f481d24070c/html5/thumbnails/34.jpg)
CURRENT SOLN – WEB SERVICES AND OAUTH
BROWSER
BACKEND SERVERS
PhotoEditor
SuperRedEyeRemover
PhotoViewer
Shutterfly
![Page 35: Separating Web Applications from User Data Storage with BSTOREwebapps10-slides.pdf · search(fs, tag_expr) -> handle_list flickr.com #print viewer.com #print fsmgr.com #christmas](https://reader036.vdocuments.mx/reader036/viewer/2022071102/5fdb8c5604101f481d24070c/html5/thumbnails/35.jpg)
CURRENT SOLN – WEB SERVICES AND OAUTH
BROWSER
BACKEND SERVERS
PhotoEditor
SuperRedEyeRemover
PhotoViewer
Shutterfly
Advantages:
o Solves manual upload / download
o Apps can automatically sync
o Avoids redundant network transfers
![Page 36: Separating Web Applications from User Data Storage with BSTOREwebapps10-slides.pdf · search(fs, tag_expr) -> handle_list flickr.com #print viewer.com #print fsmgr.com #christmas](https://reader036.vdocuments.mx/reader036/viewer/2022071102/5fdb8c5604101f481d24070c/html5/thumbnails/36.jpg)
CURRENT SOLN – WEB SERVICES AND OAUTH
BROWSER
BACKEND SERVERS
PhotoEditor
SuperRedEyeRemover
PhotoViewer
Shutterfly
Problems:
o Needs servers to relay data
o Coarse-grained access control
o Two-party sharing
o Apps cannot further delegate
Advantages:
o Solves manual upload / download
o Apps can automatically sync
o Avoids redundant network transfers
![Page 37: Separating Web Applications from User Data Storage with BSTOREwebapps10-slides.pdf · search(fs, tag_expr) -> handle_list flickr.com #print viewer.com #print fsmgr.com #christmas](https://reader036.vdocuments.mx/reader036/viewer/2022071102/5fdb8c5604101f481d24070c/html5/thumbnails/37.jpg)
OUR SOLUTION – BSTORE
![Page 38: Separating Web Applications from User Data Storage with BSTOREwebapps10-slides.pdf · search(fs, tag_expr) -> handle_list flickr.com #print viewer.com #print fsmgr.com #christmas](https://reader036.vdocuments.mx/reader036/viewer/2022071102/5fdb8c5604101f481d24070c/html5/thumbnails/38.jpg)
OUR SOLUTION – BSTORE
Key ideas:
Data sharing in the browser:
App developers don’t need servers for data access
Support for offline sharing
Avoid redundant network transfers
![Page 39: Separating Web Applications from User Data Storage with BSTOREwebapps10-slides.pdf · search(fs, tag_expr) -> handle_list flickr.com #print viewer.com #print fsmgr.com #christmas](https://reader036.vdocuments.mx/reader036/viewer/2022071102/5fdb8c5604101f481d24070c/html5/thumbnails/39.jpg)
OUR SOLUTION – BSTORE
Key ideas:
Data sharing in the browser:
App developers don’t need servers for data access
Support for offline sharing
Avoid redundant network transfers
Common storage mechanisms:
Unified namespace
Data access API
Delegation of access rights
![Page 40: Separating Web Applications from User Data Storage with BSTOREwebapps10-slides.pdf · search(fs, tag_expr) -> handle_list flickr.com #print viewer.com #print fsmgr.com #christmas](https://reader036.vdocuments.mx/reader036/viewer/2022071102/5fdb8c5604101f481d24070c/html5/thumbnails/40.jpg)
BSTORE OVERVIEW
![Page 41: Separating Web Applications from User Data Storage with BSTOREwebapps10-slides.pdf · search(fs, tag_expr) -> handle_list flickr.com #print viewer.com #print fsmgr.com #christmas](https://reader036.vdocuments.mx/reader036/viewer/2022071102/5fdb8c5604101f481d24070c/html5/thumbnails/41.jpg)
BSTORE OVERVIEW
BACKEND SERVERS
![Page 42: Separating Web Applications from User Data Storage with BSTOREwebapps10-slides.pdf · search(fs, tag_expr) -> handle_list flickr.com #print viewer.com #print fsmgr.com #christmas](https://reader036.vdocuments.mx/reader036/viewer/2022071102/5fdb8c5604101f481d24070c/html5/thumbnails/42.jpg)
BSTORE OVERVIEW
BROWSER
BACKEND SERVERS
PhotoEditor
SuperRedEyeRemover
PhotoViewer
Shutterfly
![Page 43: Separating Web Applications from User Data Storage with BSTOREwebapps10-slides.pdf · search(fs, tag_expr) -> handle_list flickr.com #print viewer.com #print fsmgr.com #christmas](https://reader036.vdocuments.mx/reader036/viewer/2022071102/5fdb8c5604101f481d24070c/html5/thumbnails/43.jpg)
BSTORE OVERVIEW
BROWSER
flickr FS
BACKEND SERVERS
PhotoEditor
SuperRedEyeRemover
PhotoViewer
Shutterfly
![Page 44: Separating Web Applications from User Data Storage with BSTOREwebapps10-slides.pdf · search(fs, tag_expr) -> handle_list flickr.com #print viewer.com #print fsmgr.com #christmas](https://reader036.vdocuments.mx/reader036/viewer/2022071102/5fdb8c5604101f481d24070c/html5/thumbnails/44.jpg)
BSTORE OVERVIEW
BROWSER
flickr FS
FS Manager
BACKEND SERVERS
PhotoEditor
SuperRedEyeRemover
PhotoViewer
Shutterfly
![Page 45: Separating Web Applications from User Data Storage with BSTOREwebapps10-slides.pdf · search(fs, tag_expr) -> handle_list flickr.com #print viewer.com #print fsmgr.com #christmas](https://reader036.vdocuments.mx/reader036/viewer/2022071102/5fdb8c5604101f481d24070c/html5/thumbnails/45.jpg)
BSTORE OVERVIEW
BROWSER
flickr FS
FS Manager
BACKEND SERVERS
PhotoEditor
SuperRedEyeRemover
PhotoViewer
Shutterfly
Shutterfly
![Page 46: Separating Web Applications from User Data Storage with BSTOREwebapps10-slides.pdf · search(fs, tag_expr) -> handle_list flickr.com #print viewer.com #print fsmgr.com #christmas](https://reader036.vdocuments.mx/reader036/viewer/2022071102/5fdb8c5604101f481d24070c/html5/thumbnails/46.jpg)
BSTORE OVERVIEW
BROWSER
flickr FS
FS Manager
BACKEND SERVERS
PhotoEditor
SuperRedEyeRemover
PhotoViewer
Shutterfly
Shutterfly
![Page 47: Separating Web Applications from User Data Storage with BSTOREwebapps10-slides.pdf · search(fs, tag_expr) -> handle_list flickr.com #print viewer.com #print fsmgr.com #christmas](https://reader036.vdocuments.mx/reader036/viewer/2022071102/5fdb8c5604101f481d24070c/html5/thumbnails/47.jpg)
BSTORE OVERVIEW
BROWSER
flickr FS
FS Manager
BACKEND SERVERS
PhotoEditor
SuperRedEyeRemover
PhotoViewer
Shutterfly
Shutterfly
![Page 48: Separating Web Applications from User Data Storage with BSTOREwebapps10-slides.pdf · search(fs, tag_expr) -> handle_list flickr.com #print viewer.com #print fsmgr.com #christmas](https://reader036.vdocuments.mx/reader036/viewer/2022071102/5fdb8c5604101f481d24070c/html5/thumbnails/48.jpg)
BSTORE OVERVIEW
BROWSER
flickr FS
FS Manager
BACKEND SERVERS
PhotoEditor
SuperRedEyeRemover
PhotoViewer
Shutterfly
Shutterfly
![Page 49: Separating Web Applications from User Data Storage with BSTOREwebapps10-slides.pdf · search(fs, tag_expr) -> handle_list flickr.com #print viewer.com #print fsmgr.com #christmas](https://reader036.vdocuments.mx/reader036/viewer/2022071102/5fdb8c5604101f481d24070c/html5/thumbnails/49.jpg)
BSTORE OVERVIEW
BROWSER
flickr FS
FS Manager
BACKEND SERVERS
PhotoEditor
SuperRedEyeRemover
PhotoViewer
Shutterfly
Shutterfly
![Page 50: Separating Web Applications from User Data Storage with BSTOREwebapps10-slides.pdf · search(fs, tag_expr) -> handle_list flickr.com #print viewer.com #print fsmgr.com #christmas](https://reader036.vdocuments.mx/reader036/viewer/2022071102/5fdb8c5604101f481d24070c/html5/thumbnails/50.jpg)
BSTORE OVERVIEW
BROWSER
flickr FS
FS Manager
BACKEND SERVERS
PhotoEditor
SuperRedEyeRemover
PhotoViewer
Shutterfly
Shutterfly
![Page 51: Separating Web Applications from User Data Storage with BSTOREwebapps10-slides.pdf · search(fs, tag_expr) -> handle_list flickr.com #print viewer.com #print fsmgr.com #christmas](https://reader036.vdocuments.mx/reader036/viewer/2022071102/5fdb8c5604101f481d24070c/html5/thumbnails/51.jpg)
BSTORE OVERVIEW
BROWSER
flickr FS
FS Manager
BACKEND SERVERS
PhotoEditor
SuperRedEyeRemover
PhotoViewer
Shutterfly
Shutterfly
![Page 52: Separating Web Applications from User Data Storage with BSTOREwebapps10-slides.pdf · search(fs, tag_expr) -> handle_list flickr.com #print viewer.com #print fsmgr.com #christmas](https://reader036.vdocuments.mx/reader036/viewer/2022071102/5fdb8c5604101f481d24070c/html5/thumbnails/52.jpg)
BSTORE OVERVIEW
BROWSER
flickr FS
FS Manager
BACKEND SERVERS
PhotoEditor
SuperRedEyeRemover
PhotoViewer
Shutterfly
Shutterfly
![Page 53: Separating Web Applications from User Data Storage with BSTOREwebapps10-slides.pdf · search(fs, tag_expr) -> handle_list flickr.com #print viewer.com #print fsmgr.com #christmas](https://reader036.vdocuments.mx/reader036/viewer/2022071102/5fdb8c5604101f481d24070c/html5/thumbnails/53.jpg)
BSTORE OVERVIEW
BROWSER
flickr FS
FS Manager
BACKEND SERVERS
PhotoEditor
SuperRedEyeRemover
PhotoViewer
Shutterfly
Shutterfly
![Page 54: Separating Web Applications from User Data Storage with BSTOREwebapps10-slides.pdf · search(fs, tag_expr) -> handle_list flickr.com #print viewer.com #print fsmgr.com #christmas](https://reader036.vdocuments.mx/reader036/viewer/2022071102/5fdb8c5604101f481d24070c/html5/thumbnails/54.jpg)
BSTORE OVERVIEW
BROWSER
flickr FS
FS Manager
BACKEND SERVERS
PhotoEditor
SuperRedEyeRemover
PhotoViewer
Shutterfly
Shutterfly
![Page 55: Separating Web Applications from User Data Storage with BSTOREwebapps10-slides.pdf · search(fs, tag_expr) -> handle_list flickr.com #print viewer.com #print fsmgr.com #christmas](https://reader036.vdocuments.mx/reader036/viewer/2022071102/5fdb8c5604101f481d24070c/html5/thumbnails/55.jpg)
BSTORE OVERVIEW
BROWSER
flickr FS
FS Manager
BACKEND SERVERS
PhotoEditor
SuperRedEyeRemover
PhotoViewer
Shutterfly
Shutterfly
![Page 56: Separating Web Applications from User Data Storage with BSTOREwebapps10-slides.pdf · search(fs, tag_expr) -> handle_list flickr.com #print viewer.com #print fsmgr.com #christmas](https://reader036.vdocuments.mx/reader036/viewer/2022071102/5fdb8c5604101f481d24070c/html5/thumbnails/56.jpg)
BSTORE API
BSTORE OVERVIEW
BROWSER
flickr FS
FS Manager
BACKEND SERVERS
PhotoEditor
SuperRedEyeRemover
PhotoViewer
Shutterfly
Shutterfly
FS-specific API
BSTORE API
![Page 57: Separating Web Applications from User Data Storage with BSTOREwebapps10-slides.pdf · search(fs, tag_expr) -> handle_list flickr.com #print viewer.com #print fsmgr.com #christmas](https://reader036.vdocuments.mx/reader036/viewer/2022071102/5fdb8c5604101f481d24070c/html5/thumbnails/57.jpg)
BSTORE API
BSTORE OVERVIEW
BROWSER
flickr FS
FS Manager
BACKEND SERVERS
PhotoEditor
SuperRedEyeRemover
PhotoViewer
Shutterfly
Shutterfly
FS-specific API
BSTORE API
Benefits to User: User-centric storage
o User’s data available to all her apps
o User controls which apps get access
o Doesn’t require browser changes
![Page 58: Separating Web Applications from User Data Storage with BSTOREwebapps10-slides.pdf · search(fs, tag_expr) -> handle_list flickr.com #print viewer.com #print fsmgr.com #christmas](https://reader036.vdocuments.mx/reader036/viewer/2022071102/5fdb8c5604101f481d24070c/html5/thumbnails/58.jpg)
BSTORE API
BSTORE OVERVIEW
BROWSER
flickr FS
FS Manager
BACKEND SERVERS
PhotoEditor
SuperRedEyeRemover
PhotoViewer
Shutterfly
Shutterfly
FS-specific API
BSTORE API
Benefits to User: User-centric storage
o User’s data available to all her apps
o User controls which apps get access
o Doesn’t require browser changes
Benefits to Apps:
o Can share data using a common API
o Do not need server for storing or processing data
o Enables offline sharing
o Egalitarian: Apps are first-class citizens
o Can export existing data via BSTORE
o Can delegate rights to other apps
![Page 59: Separating Web Applications from User Data Storage with BSTOREwebapps10-slides.pdf · search(fs, tag_expr) -> handle_list flickr.com #print viewer.com #print fsmgr.com #christmas](https://reader036.vdocuments.mx/reader036/viewer/2022071102/5fdb8c5604101f481d24070c/html5/thumbnails/59.jpg)
TALK OUTLINE
Motivation
Current solutions
BSTORE overview
Design details:
Filesystem API
FS organization with tags
Tag-based access control
Filesystem setup
Implementation
Evaluation
Related work
![Page 60: Separating Web Applications from User Data Storage with BSTOREwebapps10-slides.pdf · search(fs, tag_expr) -> handle_list flickr.com #print viewer.com #print fsmgr.com #christmas](https://reader036.vdocuments.mx/reader036/viewer/2022071102/5fdb8c5604101f481d24070c/html5/thumbnails/60.jpg)
FILESYSTEM API
Each FS has a flat file structure
BSTORE FS API: create(fs, init_tags) -> handle
set (handle, data) ->
get (handle) -> data
delete(handle) ->
Fits data model for most web apps
![Page 61: Separating Web Applications from User Data Storage with BSTOREwebapps10-slides.pdf · search(fs, tag_expr) -> handle_list flickr.com #print viewer.com #print fsmgr.com #christmas](https://reader036.vdocuments.mx/reader036/viewer/2022071102/5fdb8c5604101f481d24070c/html5/thumbnails/61.jpg)
All files are versioned
Most API calls return current version
VERSIONING
![Page 62: Separating Web Applications from User Data Storage with BSTOREwebapps10-slides.pdf · search(fs, tag_expr) -> handle_list flickr.com #print viewer.com #print fsmgr.com #christmas](https://reader036.vdocuments.mx/reader036/viewer/2022071102/5fdb8c5604101f481d24070c/html5/thumbnails/62.jpg)
All files are versioned
Most API calls return current version create(fs, init_tags) -> ver, handle
set (handle, data) -> ver
get (handle) -> ver, data
delete(handle) ->
VERSIONING
![Page 63: Separating Web Applications from User Data Storage with BSTOREwebapps10-slides.pdf · search(fs, tag_expr) -> handle_list flickr.com #print viewer.com #print fsmgr.com #christmas](https://reader036.vdocuments.mx/reader036/viewer/2022071102/5fdb8c5604101f481d24070c/html5/thumbnails/63.jpg)
All files are versioned
Most API calls return current version create(fs, init_tags) -> ver, handle
set (handle, data) -> ver
get (handle) -> ver, data
delete(handle) ->
set increments version number
VERSIONING
![Page 64: Separating Web Applications from User Data Storage with BSTOREwebapps10-slides.pdf · search(fs, tag_expr) -> handle_list flickr.com #print viewer.com #print fsmgr.com #christmas](https://reader036.vdocuments.mx/reader036/viewer/2022071102/5fdb8c5604101f481d24070c/html5/thumbnails/64.jpg)
All files are versioned
Most API calls return current version create(fs, init_tags) -> ver, handle
set (handle, data, [match_ver]) -> ver
get (handle) -> ver, data
delete(handle, [match_ver]) ->
set increments version number
Compare and swap-like functionality to detect
concurrent modifications
set and delete fail if current ver != match_ver
VERSIONING
![Page 65: Separating Web Applications from User Data Storage with BSTOREwebapps10-slides.pdf · search(fs, tag_expr) -> handle_list flickr.com #print viewer.com #print fsmgr.com #christmas](https://reader036.vdocuments.mx/reader036/viewer/2022071102/5fdb8c5604101f481d24070c/html5/thumbnails/65.jpg)
PRINCIPALS
BROWSER
flickr FS
FS Manager
BACKEND SERVERS
PhotoEditor
SuperRedEyeRemover
PhotoViewer
Shutterfly
Shutterfly
![Page 66: Separating Web Applications from User Data Storage with BSTOREwebapps10-slides.pdf · search(fs, tag_expr) -> handle_list flickr.com #print viewer.com #print fsmgr.com #christmas](https://reader036.vdocuments.mx/reader036/viewer/2022071102/5fdb8c5604101f481d24070c/html5/thumbnails/66.jpg)
flickr.com
PRINCIPALS
BROWSER
flickr.com
fsmgr.com
BACKEND SERVERS
editor.com redeye.com viewer.com sfly.com
Shutterfly
![Page 67: Separating Web Applications from User Data Storage with BSTOREwebapps10-slides.pdf · search(fs, tag_expr) -> handle_list flickr.com #print viewer.com #print fsmgr.com #christmas](https://reader036.vdocuments.mx/reader036/viewer/2022071102/5fdb8c5604101f481d24070c/html5/thumbnails/67.jpg)
FS ORGANIZATION WITH TAGS
BROWSER
flickr FS
FS Manager
PhotoEditor
SuperRedEyeRemover
PhotoViewer
Shutterfly
Shutterfly
![Page 68: Separating Web Applications from User Data Storage with BSTOREwebapps10-slides.pdf · search(fs, tag_expr) -> handle_list flickr.com #print viewer.com #print fsmgr.com #christmas](https://reader036.vdocuments.mx/reader036/viewer/2022071102/5fdb8c5604101f481d24070c/html5/thumbnails/68.jpg)
FS ORGANIZATION WITH TAGS
BROWSER
flickr FS
FS Manager
PhotoEditor
SuperRedEyeRemover
PhotoViewer
Shutterfly
Shutterfly
![Page 69: Separating Web Applications from User Data Storage with BSTOREwebapps10-slides.pdf · search(fs, tag_expr) -> handle_list flickr.com #print viewer.com #print fsmgr.com #christmas](https://reader036.vdocuments.mx/reader036/viewer/2022071102/5fdb8c5604101f481d24070c/html5/thumbnails/69.jpg)
FS ORGANIZATION WITH TAGS
BROWSER
flickr FS
FS Manager
PhotoEditor
SuperRedEyeRemover
PhotoViewer
Shutterfly
Shutterflyparis newyork
![Page 70: Separating Web Applications from User Data Storage with BSTOREwebapps10-slides.pdf · search(fs, tag_expr) -> handle_list flickr.com #print viewer.com #print fsmgr.com #christmas](https://reader036.vdocuments.mx/reader036/viewer/2022071102/5fdb8c5604101f481d24070c/html5/thumbnails/70.jpg)
FS ORGANIZATION WITH TAGS
BROWSER
flickr FS
FS Manager
PhotoEditor
SuperRedEyeRemover
PhotoViewer
Shutterfly
Shutterflyparis newyork
![Page 71: Separating Web Applications from User Data Storage with BSTOREwebapps10-slides.pdf · search(fs, tag_expr) -> handle_list flickr.com #print viewer.com #print fsmgr.com #christmas](https://reader036.vdocuments.mx/reader036/viewer/2022071102/5fdb8c5604101f481d24070c/html5/thumbnails/71.jpg)
FS ORGANIZATION WITH TAGS
BROWSER
flickr FS
FS Manager
PhotoEditor
SuperRedEyeRemover
PhotoViewer
Shutterfly
Shutterflyparis newyork
![Page 72: Separating Web Applications from User Data Storage with BSTOREwebapps10-slides.pdf · search(fs, tag_expr) -> handle_list flickr.com #print viewer.com #print fsmgr.com #christmas](https://reader036.vdocuments.mx/reader036/viewer/2022071102/5fdb8c5604101f481d24070c/html5/thumbnails/72.jpg)
FS ORGANIZATION WITH TAGS
BROWSER
flickr FS
FS Manager
PhotoEditor
SuperRedEyeRemover
PhotoViewer
Shutterfly
Shutterflyparis newyork
![Page 73: Separating Web Applications from User Data Storage with BSTOREwebapps10-slides.pdf · search(fs, tag_expr) -> handle_list flickr.com #print viewer.com #print fsmgr.com #christmas](https://reader036.vdocuments.mx/reader036/viewer/2022071102/5fdb8c5604101f481d24070c/html5/thumbnails/73.jpg)
FS ORGANIZATION WITH TAGS
BROWSER
flickr FS
FS Manager
PhotoEditor
SuperRedEyeRemover
PhotoViewer
Shutterfly
Shutterflyparis newyork
printprint
![Page 74: Separating Web Applications from User Data Storage with BSTOREwebapps10-slides.pdf · search(fs, tag_expr) -> handle_list flickr.com #print viewer.com #print fsmgr.com #christmas](https://reader036.vdocuments.mx/reader036/viewer/2022071102/5fdb8c5604101f481d24070c/html5/thumbnails/74.jpg)
FS ORGANIZATION WITH TAGS
BROWSER
flickr FS
FS Manager
PhotoEditor
SuperRedEyeRemover
PhotoViewer
Shutterfly
Shutterflyflickr.com#paris
flickr.com#newyork
flickr.com#print
viewer.com#print
![Page 75: Separating Web Applications from User Data Storage with BSTOREwebapps10-slides.pdf · search(fs, tag_expr) -> handle_list flickr.com #print viewer.com #print fsmgr.com #christmas](https://reader036.vdocuments.mx/reader036/viewer/2022071102/5fdb8c5604101f481d24070c/html5/thumbnails/75.jpg)
FS ORGANIZATION WITH TAGS
BROWSER
flickr FS
FS Manager
PhotoEditor
SuperRedEyeRemover
PhotoViewer
Shutterfly
Shutterfly
File Manager
flickr.com#paris
flickr.com#newyork
flickr.com#print
viewer.com#print
![Page 76: Separating Web Applications from User Data Storage with BSTOREwebapps10-slides.pdf · search(fs, tag_expr) -> handle_list flickr.com #print viewer.com #print fsmgr.com #christmas](https://reader036.vdocuments.mx/reader036/viewer/2022071102/5fdb8c5604101f481d24070c/html5/thumbnails/76.jpg)
FS ORGANIZATION WITH TAGS
BROWSER
flickr FS
FS Manager
PhotoEditor
SuperRedEyeRemover
PhotoViewer
Shutterfly
Shutterfly
File Manager
flickr.com#paris
flickr.com#newyork
flickr.com#print
viewer.com#print
![Page 77: Separating Web Applications from User Data Storage with BSTOREwebapps10-slides.pdf · search(fs, tag_expr) -> handle_list flickr.com #print viewer.com #print fsmgr.com #christmas](https://reader036.vdocuments.mx/reader036/viewer/2022071102/5fdb8c5604101f481d24070c/html5/thumbnails/77.jpg)
FS ORGANIZATION WITH TAGS
BROWSER
flickr FS
FS Manager
PhotoEditor
SuperRedEyeRemover
PhotoViewer
Shutterfly
Shutterfly
File Manager
flickr.com#paris
flickr.com#newyork
fsmgr.com#christmas
flickr.com#print
viewer.com#print
fsmgr.com#christmas
![Page 78: Separating Web Applications from User Data Storage with BSTOREwebapps10-slides.pdf · search(fs, tag_expr) -> handle_list flickr.com #print viewer.com #print fsmgr.com #christmas](https://reader036.vdocuments.mx/reader036/viewer/2022071102/5fdb8c5604101f481d24070c/html5/thumbnails/78.jpg)
FS ORGANIZATION WITH TAGS
BROWSER
flickr FS
FS Manager
PhotoEditor
SuperRedEyeRemover
PhotoViewer
Shutterfly
Shutterfly
File Manager
flickr.com#paris
flickr.com#newyork
fsmgr.com#christmas
Tags API
settag(handle, tag) -> verrmtag (handle, tag) -> vergettag(handle) -> ver, tag_listsearch(fs, tag_expr) -> handle_list
flickr.com#print
viewer.com#print
fsmgr.com#christmas
![Page 79: Separating Web Applications from User Data Storage with BSTOREwebapps10-slides.pdf · search(fs, tag_expr) -> handle_list flickr.com #print viewer.com #print fsmgr.com #christmas](https://reader036.vdocuments.mx/reader036/viewer/2022071102/5fdb8c5604101f481d24070c/html5/thumbnails/79.jpg)
ACCESS CONTROL
BROWSER
flickr FS
FS Manager
PhotoEditor
SuperRedEyeRemover
PhotoViewer
Shutterfly
Shutterfly
File Manager
fsmgr.com#christmas
viewer.com#print
fsmgr.com#christmas
fsmgr.com#private
![Page 80: Separating Web Applications from User Data Storage with BSTOREwebapps10-slides.pdf · search(fs, tag_expr) -> handle_list flickr.com #print viewer.com #print fsmgr.com #christmas](https://reader036.vdocuments.mx/reader036/viewer/2022071102/5fdb8c5604101f481d24070c/html5/thumbnails/80.jpg)
ACCESS CONTROL
BROWSER
flickr FS
FS Manager
PhotoEditor
SuperRedEyeRemover
PhotoViewer
Shutterfly
Shutterfly
File Manager
fsmgr.com#christmas
viewer.com#print
fsmgr.com#christmas
from to tags rights
fsmgr.com#private
![Page 81: Separating Web Applications from User Data Storage with BSTOREwebapps10-slides.pdf · search(fs, tag_expr) -> handle_list flickr.com #print viewer.com #print fsmgr.com #christmas](https://reader036.vdocuments.mx/reader036/viewer/2022071102/5fdb8c5604101f481d24070c/html5/thumbnails/81.jpg)
ACCESS CONTROL
BROWSER
flickr FS
FS Manager
PhotoEditor
SuperRedEyeRemover
PhotoViewer
Shutterfly
Shutterfly
File Manager
fsmgr.com#christmas
viewer.com#print
fsmgr.com#christmas
from to tags rights
fsmgr.com#private
![Page 82: Separating Web Applications from User Data Storage with BSTOREwebapps10-slides.pdf · search(fs, tag_expr) -> handle_list flickr.com #print viewer.com #print fsmgr.com #christmas](https://reader036.vdocuments.mx/reader036/viewer/2022071102/5fdb8c5604101f481d24070c/html5/thumbnails/82.jpg)
ACCESS CONTROL
BROWSER
flickr FS
FS Manager
PhotoEditor
SuperRedEyeRemover
PhotoViewer
Shutterfly
Shutterfly
File Manager
fsmgr.com#christmas
viewer.com#print
fsmgr.com#christmas
from to tags rights
fsmgr.com viewer.com fsmgr.com#christmas
read
fsmgr.com#private
![Page 83: Separating Web Applications from User Data Storage with BSTOREwebapps10-slides.pdf · search(fs, tag_expr) -> handle_list flickr.com #print viewer.com #print fsmgr.com #christmas](https://reader036.vdocuments.mx/reader036/viewer/2022071102/5fdb8c5604101f481d24070c/html5/thumbnails/83.jpg)
ACCESS CONTROL
BROWSER
flickr FS
FS Manager
PhotoEditor
SuperRedEyeRemover
PhotoViewer
Shutterfly
Shutterfly
File Manager
fsmgr.com#christmas
viewer.com#print
fsmgr.com#christmas
from to tags rights
fsmgr.com viewer.com fsmgr.com#christmas
read
PhotoViewer
fsmgr.com#private
![Page 84: Separating Web Applications from User Data Storage with BSTOREwebapps10-slides.pdf · search(fs, tag_expr) -> handle_list flickr.com #print viewer.com #print fsmgr.com #christmas](https://reader036.vdocuments.mx/reader036/viewer/2022071102/5fdb8c5604101f481d24070c/html5/thumbnails/84.jpg)
ACCESS CONTROL
BROWSER
flickr FS
FS Manager
PhotoEditor
SuperRedEyeRemover
PhotoViewer
Shutterfly
Shutterfly
File Manager
fsmgr.com#christmas
viewer.com#print
fsmgr.com#christmas
from to tags rights
fsmgr.com viewer.com fsmgr.com#christmas
read
fsmgr.com#private
![Page 85: Separating Web Applications from User Data Storage with BSTOREwebapps10-slides.pdf · search(fs, tag_expr) -> handle_list flickr.com #print viewer.com #print fsmgr.com #christmas](https://reader036.vdocuments.mx/reader036/viewer/2022071102/5fdb8c5604101f481d24070c/html5/thumbnails/85.jpg)
ACCESS CONTROL
BROWSER
flickr FS
FS Manager
PhotoEditor
SuperRedEyeRemover
PhotoViewer
Shutterfly
Shutterfly
File Manager
fsmgr.com#christmas
viewer.com#print
fsmgr.com#christmas
from to tags rights
fsmgr.com viewer.com fsmgr.com#christmas
read
viewer.com sfly.com viewer.com#print
read
fsmgr.com#private
![Page 86: Separating Web Applications from User Data Storage with BSTOREwebapps10-slides.pdf · search(fs, tag_expr) -> handle_list flickr.com #print viewer.com #print fsmgr.com #christmas](https://reader036.vdocuments.mx/reader036/viewer/2022071102/5fdb8c5604101f481d24070c/html5/thumbnails/86.jpg)
ACCESS CONTROL
BROWSER
flickr FS
FS Manager
PhotoEditor
SuperRedEyeRemover
PhotoViewer
Shutterfly
Shutterfly
File Manager
fsmgr.com#christmas
viewer.com#print
fsmgr.com#christmas
from to tags rights
fsmgr.com viewer.com fsmgr.com#christmas
read
viewer.com sfly.com viewer.com#print
read
Shutterfly
fsmgr.com#private
![Page 87: Separating Web Applications from User Data Storage with BSTOREwebapps10-slides.pdf · search(fs, tag_expr) -> handle_list flickr.com #print viewer.com #print fsmgr.com #christmas](https://reader036.vdocuments.mx/reader036/viewer/2022071102/5fdb8c5604101f481d24070c/html5/thumbnails/87.jpg)
ACCESS CONTROL
BROWSER
flickr FS
FS Manager
PhotoEditor
SuperRedEyeRemover
PhotoViewer
Shutterfly
Shutterfly
File Manager
fsmgr.com#christmas
viewer.com#print
fsmgr.com#christmas
from to tags rights
fsmgr.com viewer.com fsmgr.com#christmas
read
viewer.com sfly.com viewer.com#print
read
Shutterfly
fsmgr.com#private
![Page 88: Separating Web Applications from User Data Storage with BSTOREwebapps10-slides.pdf · search(fs, tag_expr) -> handle_list flickr.com #print viewer.com #print fsmgr.com #christmas](https://reader036.vdocuments.mx/reader036/viewer/2022071102/5fdb8c5604101f481d24070c/html5/thumbnails/88.jpg)
ACCESS CONTROL
BROWSER
flickr FS
FS Manager
PhotoEditor
SuperRedEyeRemover
PhotoViewer
Shutterfly
Shutterfly
File Manager
fsmgr.com#christmas
viewer.com#print
fsmgr.com#christmas
from to tags rights
fsmgr.com viewer.com fsmgr.com#christmas
read
viewer.com sfly.com viewer.com#print
read
viewer.com sfly.com fsmgr.com#private
read
Shutterfly
fsmgr.com#private
![Page 89: Separating Web Applications from User Data Storage with BSTOREwebapps10-slides.pdf · search(fs, tag_expr) -> handle_list flickr.com #print viewer.com #print fsmgr.com #christmas](https://reader036.vdocuments.mx/reader036/viewer/2022071102/5fdb8c5604101f481d24070c/html5/thumbnails/89.jpg)
ACCESS CONTROL
BROWSER
flickr FS
FS Manager
PhotoEditor
SuperRedEyeRemover
PhotoViewer
Shutterfly
Shutterfly
File Manager
fsmgr.com#christmas
viewer.com#print
fsmgr.com#christmas
from to tags rights
fsmgr.com viewer.com fsmgr.com#christmas
read
viewer.com sfly.com viewer.com#print
read
viewer.com sfly.com fsmgr.com#private
read
Access Control API
add_dlg(to, tags, rights) -> rm_dlg (to, tags, rights) ->get_dlg(to) -> <tags,rights>
fsmgr.com#private
![Page 90: Separating Web Applications from User Data Storage with BSTOREwebapps10-slides.pdf · search(fs, tag_expr) -> handle_list flickr.com #print viewer.com #print fsmgr.com #christmas](https://reader036.vdocuments.mx/reader036/viewer/2022071102/5fdb8c5604101f481d24070c/html5/thumbnails/90.jpg)
FILESYSTEM SETUP
FS manager needs FS info to mount the FS
FS info stored in a mountpoint file
Example:
<mountpoint>
<url src="http://flickr.com/fs.html"/>
<params username="ramesh" password="pass"/>
</mountpoint>
Any principal can add a mountpoint as long as it
can create the mountpoint file
Mountpoint file contents encrypted by FS
manager encrypt(mntpoint_plaintext) -> mntpoint_ciphertext
![Page 91: Separating Web Applications from User Data Storage with BSTOREwebapps10-slides.pdf · search(fs, tag_expr) -> handle_list flickr.com #print viewer.com #print fsmgr.com #christmas](https://reader036.vdocuments.mx/reader036/viewer/2022071102/5fdb8c5604101f481d24070c/html5/thumbnails/91.jpg)
FILESYSTEM EXAMPLES
BROWSER
flickr FS
FS Manager
BACKEND SERVERS
PhotoEditor
SuperRedEyeRemover
PhotoViewer
Shutterfly
Shutterfly
![Page 92: Separating Web Applications from User Data Storage with BSTOREwebapps10-slides.pdf · search(fs, tag_expr) -> handle_list flickr.com #print viewer.com #print fsmgr.com #christmas](https://reader036.vdocuments.mx/reader036/viewer/2022071102/5fdb8c5604101f481d24070c/html5/thumbnails/92.jpg)
FILESYSTEM EXAMPLES
BROWSER
flickr FS
FS Manager
BACKEND SERVERS
PhotoEditor
SuperRedEyeRemover
PhotoViewer
Shutterfly
Shutterfly
amazon FS
![Page 93: Separating Web Applications from User Data Storage with BSTOREwebapps10-slides.pdf · search(fs, tag_expr) -> handle_list flickr.com #print viewer.com #print fsmgr.com #christmas](https://reader036.vdocuments.mx/reader036/viewer/2022071102/5fdb8c5604101f481d24070c/html5/thumbnails/93.jpg)
FILESYSTEM EXAMPLES
BROWSER
flickr FS
FS Manager
BACKEND SERVERS
PhotoEditor
SuperRedEyeRemover
PhotoViewer
Shutterfly
Shutterfly
amazon FS
Storage FS
![Page 94: Separating Web Applications from User Data Storage with BSTOREwebapps10-slides.pdf · search(fs, tag_expr) -> handle_list flickr.com #print viewer.com #print fsmgr.com #christmas](https://reader036.vdocuments.mx/reader036/viewer/2022071102/5fdb8c5604101f481d24070c/html5/thumbnails/94.jpg)
FILESYSTEM EXAMPLES
BROWSER
flickr FS
FS Manager
BACKEND SERVERS
PhotoEditor
SuperRedEyeRemover
PhotoViewer
Shutterfly
Shutterfly
amazon FS
Storage FS
encrypt FS
![Page 95: Separating Web Applications from User Data Storage with BSTOREwebapps10-slides.pdf · search(fs, tag_expr) -> handle_list flickr.com #print viewer.com #print fsmgr.com #christmas](https://reader036.vdocuments.mx/reader036/viewer/2022071102/5fdb8c5604101f481d24070c/html5/thumbnails/95.jpg)
FILESYSTEM EXAMPLES
BROWSER
flickr FS
FS Manager
BACKEND SERVERS
PhotoEditor
SuperRedEyeRemover
PhotoViewer
Shutterfly
Shutterfly
amazon FS
Storage FS
encrypt FS
Layered FS
![Page 96: Separating Web Applications from User Data Storage with BSTOREwebapps10-slides.pdf · search(fs, tag_expr) -> handle_list flickr.com #print viewer.com #print fsmgr.com #christmas](https://reader036.vdocuments.mx/reader036/viewer/2022071102/5fdb8c5604101f481d24070c/html5/thumbnails/96.jpg)
FILESYSTEM EXAMPLES
BROWSER
flickr FS
FS Manager
BACKEND SERVERS
PhotoEditor
SuperRedEyeRemover
PhotoViewer
Shutterfly
Shutterfly
amazon FS
Storage FS
encrypt FS
Layered FS
![Page 97: Separating Web Applications from User Data Storage with BSTOREwebapps10-slides.pdf · search(fs, tag_expr) -> handle_list flickr.com #print viewer.com #print fsmgr.com #christmas](https://reader036.vdocuments.mx/reader036/viewer/2022071102/5fdb8c5604101f481d24070c/html5/thumbnails/97.jpg)
FILESYSTEM EXAMPLES
BROWSER
flickr FS
FS Manager
BACKEND SERVERS
PhotoEditor
SuperRedEyeRemover
PhotoViewer
Shutterfly
Shutterfly
amazon FS
Storage FS
encrypt FS
Layered FS
![Page 98: Separating Web Applications from User Data Storage with BSTOREwebapps10-slides.pdf · search(fs, tag_expr) -> handle_list flickr.com #print viewer.com #print fsmgr.com #christmas](https://reader036.vdocuments.mx/reader036/viewer/2022071102/5fdb8c5604101f481d24070c/html5/thumbnails/98.jpg)
FILESYSTEM EXAMPLES
BROWSER
flickr FS
FS Manager
BACKEND SERVERS
PhotoEditor
SuperRedEyeRemover
PhotoViewer
Shutterfly
Shutterfly
amazon FS
Storage FS
encrypt FS
Layered FS
![Page 99: Separating Web Applications from User Data Storage with BSTOREwebapps10-slides.pdf · search(fs, tag_expr) -> handle_list flickr.com #print viewer.com #print fsmgr.com #christmas](https://reader036.vdocuments.mx/reader036/viewer/2022071102/5fdb8c5604101f481d24070c/html5/thumbnails/99.jpg)
FILESYSTEM EXAMPLES
BROWSER
flickr FS
FS Manager
BACKEND SERVERS
PhotoEditor
SuperRedEyeRemover
PhotoViewer
Shutterfly
Shutterfly
amazon FS
Storage FS
encrypt FS
Layered FS
![Page 100: Separating Web Applications from User Data Storage with BSTOREwebapps10-slides.pdf · search(fs, tag_expr) -> handle_list flickr.com #print viewer.com #print fsmgr.com #christmas](https://reader036.vdocuments.mx/reader036/viewer/2022071102/5fdb8c5604101f481d24070c/html5/thumbnails/100.jpg)
FILESYSTEM EXAMPLES
BROWSER
flickr FS
FS Manager
BACKEND SERVERS
PhotoEditor
SuperRedEyeRemover
PhotoViewer
Shutterfly
Shutterfly
amazon FS
Storage FS
encrypt FS
Layered FS
![Page 101: Separating Web Applications from User Data Storage with BSTOREwebapps10-slides.pdf · search(fs, tag_expr) -> handle_list flickr.com #print viewer.com #print fsmgr.com #christmas](https://reader036.vdocuments.mx/reader036/viewer/2022071102/5fdb8c5604101f481d24070c/html5/thumbnails/101.jpg)
FILESYSTEM EXAMPLES
BROWSER
flickr FS
FS Manager
BACKEND SERVERS
PhotoEditor
SuperRedEyeRemover
PhotoViewer
Shutterfly
Shutterfly
amazon FS
Storage FS
encrypt FS
Layered FS
![Page 102: Separating Web Applications from User Data Storage with BSTOREwebapps10-slides.pdf · search(fs, tag_expr) -> handle_list flickr.com #print viewer.com #print fsmgr.com #christmas](https://reader036.vdocuments.mx/reader036/viewer/2022071102/5fdb8c5604101f481d24070c/html5/thumbnails/102.jpg)
FILESYSTEM EXAMPLES
BROWSER
flickr FS
FS Manager
BACKEND SERVERS
PhotoEditor
SuperRedEyeRemover
PhotoViewer
Shutterfly
Shutterfly
amazon FS
Storage FS
encrypt FS
Layered FS
![Page 103: Separating Web Applications from User Data Storage with BSTOREwebapps10-slides.pdf · search(fs, tag_expr) -> handle_list flickr.com #print viewer.com #print fsmgr.com #christmas](https://reader036.vdocuments.mx/reader036/viewer/2022071102/5fdb8c5604101f481d24070c/html5/thumbnails/103.jpg)
FILESYSTEM EXAMPLES
BROWSER
flickr FS
FS Manager
BACKEND SERVERS
PhotoEditor
SuperRedEyeRemover
PhotoViewer
Shutterfly
Shutterfly
amazon FS
Storage FS
encrypt FS Local FS
Layered FS
![Page 104: Separating Web Applications from User Data Storage with BSTOREwebapps10-slides.pdf · search(fs, tag_expr) -> handle_list flickr.com #print viewer.com #print fsmgr.com #christmas](https://reader036.vdocuments.mx/reader036/viewer/2022071102/5fdb8c5604101f481d24070c/html5/thumbnails/104.jpg)
TALK OUTLINE
Motivation
Current solutions
BSTORE overview
Design details:
Filesystem API
FS organization with tags
Tag-based access control
Filesystem setup
Implementation
Evaluation
Related work
![Page 105: Separating Web Applications from User Data Storage with BSTOREwebapps10-slides.pdf · search(fs, tag_expr) -> handle_list flickr.com #print viewer.com #print fsmgr.com #christmas](https://reader036.vdocuments.mx/reader036/viewer/2022071102/5fdb8c5604101f481d24070c/html5/thumbnails/105.jpg)
IMPLEMENTATION
ComponentLOC
JavaScript PHP
Core
Components
Util Library 1348 -
FS Manager 617 -
File Manager 337 -
Filesystems StorageFS 58 712
EncryptFS 239 -
CheckPointFS 595 -
![Page 106: Separating Web Applications from User Data Storage with BSTOREwebapps10-slides.pdf · search(fs, tag_expr) -> handle_list flickr.com #print viewer.com #print fsmgr.com #christmas](https://reader036.vdocuments.mx/reader036/viewer/2022071102/5fdb8c5604101f481d24070c/html5/thumbnails/106.jpg)
IMPLEMENTATION
ComponentLOC
JavaScript PHP
Core
Components
Util Library 1348 -
FS Manager 617 -
File Manager 337 -
Filesystems StorageFS 58 712
EncryptFS 239 -
CheckPointFS 595 -
Browser-side Javascript components:
Communication between browser windows: postMessage
Supports Firefox and Google Chrome browsers
No browser modifications
Storage FS:
PHP backend on Linux / Apache
Communication between JS and PHP: XMLHttpRequest POST
![Page 107: Separating Web Applications from User Data Storage with BSTOREwebapps10-slides.pdf · search(fs, tag_expr) -> handle_list flickr.com #print viewer.com #print fsmgr.com #christmas](https://reader036.vdocuments.mx/reader036/viewer/2022071102/5fdb8c5604101f481d24070c/html5/thumbnails/107.jpg)
EVALUATION
What is the effort to port apps to BSTORE?
What is BSTORE’s performance overhead?
![Page 108: Separating Web Applications from User Data Storage with BSTOREwebapps10-slides.pdf · search(fs, tag_expr) -> handle_list flickr.com #print viewer.com #print fsmgr.com #christmas](https://reader036.vdocuments.mx/reader036/viewer/2022071102/5fdb8c5604101f481d24070c/html5/thumbnails/108.jpg)
EFFORT TO PORT APPS
Less than a day per app
Modifications are localized
Application Original
LOC
Modified
LOC
% Modified
Pixastic 4245 81 1.9%
vi 3471 74 2.1%
TrimSpreadsheet 1293 66 5.1%
![Page 109: Separating Web Applications from User Data Storage with BSTOREwebapps10-slides.pdf · search(fs, tag_expr) -> handle_list flickr.com #print viewer.com #print fsmgr.com #christmas](https://reader036.vdocuments.mx/reader036/viewer/2022071102/5fdb8c5604101f481d24070c/html5/thumbnails/109.jpg)
PERFORMANCE EVALUATION
Compare BSTORE get with XMLHttpRequest(XHR) GET
Experimental setup:
Firefox browser on Intel Core i7 950 3.07GHz
Storage FS on Intel Xeon 3.06GHz
Network configurations:
Local network: 100Mbps Ethernet
Simulated wide area networks: 10Mbps/10ms, 1Mbps/100ms
File size: 1MB
![Page 110: Separating Web Applications from User Data Storage with BSTOREwebapps10-slides.pdf · search(fs, tag_expr) -> handle_list flickr.com #print viewer.com #print fsmgr.com #christmas](https://reader036.vdocuments.mx/reader036/viewer/2022071102/5fdb8c5604101f481d24070c/html5/thumbnails/110.jpg)
LOW OVERHEAD FOR REMOTE SERVERS
BSTORE overhead primarily in browser:
Encoding and decoding data postMessage
0%
20%
40%
60%
80%
100%
120%
140%
160%
180%
Local
Network
10 Mbps,
10 ms
1 Mbps,
100 ms
Tim
e
XHR GET
BSTORE get
![Page 111: Separating Web Applications from User Data Storage with BSTOREwebapps10-slides.pdf · search(fs, tag_expr) -> handle_list flickr.com #print viewer.com #print fsmgr.com #christmas](https://reader036.vdocuments.mx/reader036/viewer/2022071102/5fdb8c5604101f481d24070c/html5/thumbnails/111.jpg)
LOW OVERHEAD FOR REMOTE SERVERS
BSTORE overhead primarily in browser:
Encoding and decoding data postMessage
0%
20%
40%
60%
80%
100%
120%
140%
160%
180%
Local
Network
10 Mbps,
10 ms
1 Mbps,
100 ms
Tim
e
XHR GET
BSTORE get
More evaluations – in the paper
o BSTORE set vs. XMLHttpRequest POST
o Overhead of Layered FS
o Firefox vs. Google Chrome
![Page 112: Separating Web Applications from User Data Storage with BSTOREwebapps10-slides.pdf · search(fs, tag_expr) -> handle_list flickr.com #print viewer.com #print fsmgr.com #christmas](https://reader036.vdocuments.mx/reader036/viewer/2022071102/5fdb8c5604101f481d24070c/html5/thumbnails/112.jpg)
LIMITATIONS
No support for cross-user sharing
Principals are limited by SOP to URL origin
Don't support apps that:
Need a DB interface
Need server-side computation
![Page 113: Separating Web Applications from User Data Storage with BSTOREwebapps10-slides.pdf · search(fs, tag_expr) -> handle_list flickr.com #print viewer.com #print fsmgr.com #christmas](https://reader036.vdocuments.mx/reader036/viewer/2022071102/5fdb8c5604101f481d24070c/html5/thumbnails/113.jpg)
RELATED WORK
Server-side sharing:
Cannot support browser-only apps or offline usage
Pair-wise sharing
E.g: OAuth, REST APIs, Menagerie
Client-side sharing:
Position paper by Hsu and Chen, with vision similar
to BSTORE
Tag-based file organization in other domains:
E.g: Semantic file systems, Presto
![Page 114: Separating Web Applications from User Data Storage with BSTOREwebapps10-slides.pdf · search(fs, tag_expr) -> handle_list flickr.com #print viewer.com #print fsmgr.com #christmas](https://reader036.vdocuments.mx/reader036/viewer/2022071102/5fdb8c5604101f481d24070c/html5/thumbnails/114.jpg)
CONCLUSIONS
Current web app storage model constrains users
and app developers
BSTORE solves these issues with:
Browser-based sharing
Common API
Tag-based rights delegation
BSTORE works on unmodified browsers and has
low overhead
![Page 115: Separating Web Applications from User Data Storage with BSTOREwebapps10-slides.pdf · search(fs, tag_expr) -> handle_list flickr.com #print viewer.com #print fsmgr.com #christmas](https://reader036.vdocuments.mx/reader036/viewer/2022071102/5fdb8c5604101f481d24070c/html5/thumbnails/115.jpg)
CONCLUSIONS
Current web app storage model constrains users
and app developers
BSTORE solves these issues with:
Browser-based sharing
Common API
Tag-based rights delegation
BSTORE works on unmodified browsers and has
low overhead
Thank you!