separating web applications from user data storage with bstorewebapps10-slides.pdf · search(fs,...

115
SEPARATING WEB APPLICATIONS FROM USER DATA STORAGE WITH BSTORE Ramesh Chandra Priya Gupta Nickolai Zeldovich MIT CSAIL

Upload: others

Post on 26-Aug-2020

0 views

Category:

Documents


0 download

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

FS ORGANIZATION WITH TAGS

BROWSER

flickr FS

FS Manager

PhotoEditor

SuperRedEyeRemover

PhotoViewer

Shutterfly

Shutterflyparis newyork

print

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

FS ORGANIZATION WITH TAGS

BROWSER

flickr FS

FS Manager

PhotoEditor

SuperRedEyeRemover

PhotoViewer

Shutterfly

Shutterflyparis newyork

print

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

FS ORGANIZATION WITH TAGS

BROWSER

flickr FS

FS Manager

PhotoEditor

SuperRedEyeRemover

PhotoViewer

Shutterfly

Shutterflyparis newyork

print

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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!