Storing and Accessing Live Mashup Content in the Cloud Krzysztof Ostrowski, Ken Birman Cornell University
Agenda
1.A new, versatile storage abstraction: Checkpointed Channel (CC) 2.A new web application architecture: A web of (hyperlinked) CCs Agenda
Introduction
Storing Content in the Cloud server in a data center client-server interactions cloud content edge
Storing Content in the Cloud server in a data center client-server interactions cloud content edge
server in a data center client-server interactions cloud Storing Content in the Cloud content edge
server in a data center client-server interactions cloud Storing Content in the Cloud content edge
server in a data center client-server interactions cloud Storing Content in the Cloud content edge
server in a data center client-server interactions cloud Storing Content in the Cloud content edge
server in a data center client-server interactions cloud Storing Content in the Cloud content edge
Storing Content in the Cloud content client-server interactions server in a data center update relayed through the server
server in a data center Storing Content in the Cloud explicit request, e.g. HTTP GET content cloud edge
server in a data center Storing Content at the Edge edge content replica content replica content replica peer-to-peer interactions
server in a data center Storing Content at the Edge edge peer-to-peer interactions content replica content replica content replica
server in a data center Storing Content at the Edge edge peer-to-peer interactions content replica content replica content replica
server in a data center Storing Content at the Edge edge peer-to-peer interactions content replica content replica content replica
server in a data center Storing Content at the Edge edge peer-to-peer interactions content replica content replica content replica updated
server in a data center Storing Content at the Edge edge peer-to-peer interactions content replica content replica content replica updated multicast
server in a data center Storing Content at the Edge edge content replica content replica content replica updated
server in a data center Storing Content at the Edge edge content replica content replica content replica replicated state machine
server in a data center Storing Content at the Edge edge content replica content replica content replica manage membership
server in a data center Storing Content at the Edge edge data control
server in a data center Storing Content at the Edge edge data control
Cloud vs. Edge? server in a data center edge peer-to-peer interactions content replica content replica content replica server in a data center client- server interactions cloud content edge
server in a data center Cloud vs. Edge? edge
server in a data center Cloud vs. Edge? edge
server in a data center Cloud vs. Edge? edge
server in a data center Cloud vs. Edge? edge no replicas left
Cloud vs. Edge? server in a data center client-server interactions cloud content edge flow of updates bottleneck
Cloud vs. Edge? server in a data center client-server interactions cloud content edge flow of updates bottleneck
Cloud vs. Edge? server in a data center client-server interactions cloud content edge flow of updates bottleneck
Cloud vs. Edge? server in a data center client-server interactions cloud content edge flow of updates bottleneck
Cloud vs. Edge? server in a data center client-server interactions cloud content edge flow of updates bottleneck
Cloud vs. Edge? Server capacity: SecondLife: ~40 clients/server Second Life and the New Generation of Virtual Worlds. S. Kumar et al IEEE Computer, 41(9):46-53
Cloud vs. Edge? Server capacity: SecondLife: ~40 clients/server virtual island
Cloud Edge? server in a data center edge peer-to-peer interactions content replica content replica content replica server in a data center client- server interactions cloud content edge persistencescalability + and
Extending Cloud to the Edge server edge cloud
Extending Cloud to the Edge cloud server edge
peer-to-peer interactions client-server interactions Extending Cloud to the Edge cloud server content
peer-to-peer interactions client-server interactions Extending Cloud to the Edge cloud server content distributed protocol (client-server, peer-to-peer, etc.) content
Extending Cloud to the Edge cloud server edge
There are: 40+ times more PCs than servers (billions today, to double in five years) client PCs per Google server 40,000+ times more client PCs purchased each year by home users than new servers purchased each year by Microsoft => a lot of computational power and resources at the edge that are greatly underutilized Edge is Larger than the Cloud
There are: 40+ times more PCs than servers (billions today, to double in five years) client PCs per Google server 40,000+ times more client PCs purchased each year by home users than new servers purchased each year by Microsoft => a lot of computational power and resources at the edge that are greatly underutilized Edge is Larger than the Cloud
There are: 40+ times more PCs than servers (billions today, to double in five years) client PCs per Google server 40,000+ times more client PCs purchased each year by home users than new servers purchased each year by Microsoft => a lot of computational power and resources at the edge that are greatly underutilized Edge is Larger than the Cloud
There are: 40+ times more PCs than servers (billions today, to double in five years) client PCs per Google server 40,000+ times more client PCs purchased each year by home users than new servers purchased each year by Microsoft => a lot of computational power and resources at the edge that are greatly underutilized Edge is Larger than the Cloud
There are: 40+ times more PCs than servers (billions today, to double in five years) client PCs per Google server 40,000+ times more client PCs purchased each year by home users than new servers purchased each year by Microsoft => a lot of computational power and resources at the edge that are greatly underutilized Edge is Larger than the Cloud
Unify different content access models: Centralized vs. replicated Centralized: web service, database Replicated: distributed P2P replication protocols Persistent vs. temporary Persistent: server in a data center Temporary: collaboration session formed ad hoc Server-side vs. client-side Shared public vs. shared private Public: web service or collaboration session Private: session state, cookies, etc. Stateful vs. stateless Stateful: variables, files, objects, database tables Stateless: video or notification streams New Storage Abstraction
Unify different content access models: Centralized vs. replicated Centralized: web service, database Replicated: distributed P2P replication protocols Persistent vs. temporary Persistent: server in a data center Temporary: collaboration session formed ad hoc Server-side vs. client-side Shared public vs. shared private Public: web service or collaboration session Private: session state, cookies, etc. Stateful vs. stateless Stateful: variables, files, objects, database tables Stateless: video or notification streams New Storage Abstraction
Unify different content access models: Centralized vs. replicated Centralized: web service, database Replicated: distributed P2P replication protocols Persistent vs. temporary Persistent: server in a data center Temporary: collaboration session formed ad hoc Server-side vs. client-side Shared public vs. shared private Public: web service or collaboration session Private: session state, cookies, etc. Stateful vs. stateless Stateful: variables, files, objects, database tables Stateless: video or notification streams New Storage Abstraction
Unify different content access models: Centralized vs. replicated Centralized: web service, database Replicated: distributed P2P replication protocols Persistent vs. temporary Persistent: server in a data center Temporary: collaboration session formed ad hoc Server-side vs. client-side Shared public vs. shared private Public: web service or collaboration session Private: session state, cookies, etc. Stateful vs. stateless Stateful: variables, files, objects, database tables Stateless: video or notification streams New Storage Abstraction
Unify different content access models: Centralized vs. replicated Centralized: web service, database Replicated: distributed P2P replication protocols Persistent vs. temporary Persistent: server in a data center Temporary: collaboration session formed ad hoc Server-side vs. client-side Shared public vs. shared private Public: web service or collaboration session Private: session state, cookies, etc. Stateful vs. stateless Stateful: variables, files, objects, database tables Stateless: video or notification streams New Storage Abstraction
Unify different content access models: Centralized vs. replicated Centralized: web service, database Replicated: distributed P2P replication protocols Persistent vs. temporary Persistent: server in a data center Temporary: collaboration session formed ad hoc Server-side vs. client-side Shared public vs. shared private Public: web service or collaboration session Private: session state, cookies, etc. Stateful vs. stateless Stateful: variables, files, objects, database tables Stateless: video or notification streams New Storage Abstraction
Checkpointed Channels (CC)
Architecture
network messages
the edge may “cut through” the channel content physically resides outside the channel… …but it could also be cached in it
the edge may “cut through” the channel content physically resides outside the channel… …but it could also be cached in it
content physically resides outside the channel… …but it could also be cached in it the edge may “cut through” the channel
Interfaces Checkpointed Communication Channel (CC) a writable stream of checkpoints and updates
Interfaces Checkpointed Communication Channel (CC) a writable stream of checkpoints and updates
Interfaces Checkpointed Communication Channel (CC) a writable stream of checkpoints and updates
Interfaces Checkpointed Communication Channel (CC) a writable stream of checkpoints and updates
Interfaces Checkpointed Communication Channel (CC) a writable stream of checkpoints and updates
Interfaces Checkpointed Communication Channel (CC) a writable stream of checkpoints and updates
Dynamics (local) Checkpointed Communication Channel (CC) U C UU U initial checkpoint
Dynamics (local) Checkpointed Communication Channel (CC) C initial checkpointmultiple updates UUU U
Dynamics (local) Checkpointed Communication Channel (CC) C initial checkpointmultiple updates UUU U
Interfaces Checkpointed Communication Channel (CC) a writable stream of checkpoints and updates
Dynamics (local) Checkpointed Communication Channel (CC) U updates UU
Dynamics (local) Checkpointed Communication Channel (CC) U updates UU
Interfaces Checkpointed Communication Channel (CC) a writable stream of checkpoints and updates
Interfaces Checkpointed Communication Channel (CC) a writable stream of checkpoints and updates
Interfaces Checkpointed Communication Channel (CC) a writable stream of checkpoints and updates
Dynamics (local) Checkpointed Communication Channel (CC) request checkpoint R
Dynamics (local) Checkpointed Communication Channel (CC) request checkpoint R
Dynamics (local) Checkpointed Communication Channel (CC) C checkpoint
Dynamics (local) Checkpointed Communication Channel (CC) C checkpoint
Dynamics (global) Checkpointed Channel (CC)
Dynamics (global) Checkpointed Channel (CC) connect
Dynamics (global) Checkpointed Channel (CC) connect initialize
Dynamics (global) connect initialize need checkpoint
Dynamics (global) initialize need checkpoint R
Dynamics (global) request checkpoint need checkpoint
Dynamics (global) request checkpoint R
Dynamics (global) initialize request checkpoint need checkpoint R
Dynamics (global) request checkpoint need checkpoint provide checkpoint
Dynamics (global) request checkpoint provide checkpoint C
Dynamics (global) provide checkpoint C
Dynamics (global) C transfer checkpoint
Dynamics (global) transfer checkpoint C
Dynamics (global) C checkpoint transfer checkpoint
Dynamics (global) C checkpoint deliver checkpoint
Dynamics (global) deliver checkpoint C
Dynamics (global) consume checkpoint C deliver checkpoint
Dynamics (global) consume checkpoint C wants to update
Dynamics (global) consume checkpoint C wants to update U
Dynamics (global) wants to update U request update
Dynamics (global) update request update U
Dynamics (global) U propagate update
Dynamics (global) propagate update UUU
Dynamics (global) propagate update U UU U
Dynamics (global) U UU update U deliver update
Dynamics (global) U UU U deliver update
Dynamics (global) deliver update U UU U
Dynamics (global) U UU U consume update
Semantics UCC'C' + = earlier checkpoint or state new checkpoint or state incremental update
Semantics UCC'C' + = earlier checkpoint or state new checkpoint or state incremental update
Semantics UCC'C' + = earlier checkpoint or state new checkpoint or state incremental update
Semantics CkCk checkpoint multiple updates U1U1 U2U2 UnUn
Semantics CkCk U1U1 U2U2 UnUn
CkCk U1U1 U2U2 UnUn C k+1 += CkCk U1U1
Semantics CkCk U1U1 U2U2 UnUn C k+1 C k+2 += C k+1 U2U2
Semantics CkCk U1U1 U2U2 UnUn C k+1 C k+2 C k+n + = C k+n-1 UnUn
Semantics CkCk U1U1 U2U2 UnUn C k+1 C k+2 C k+n
Semantics CkCk U1U1 U2U2 UnUn C k+1 C k+2 C k+n
Semantics C1C1 U2U2 U3U3 U5U5 C4C4 C6C6
C1C1 U2U2 U3U3 U5U5 C4C4 C6C6 C2C2 C3C3 C5C5
C1C1 U2U2 U3U3 U5U5 C4C4 C6C6 C2C2 C3C3 C5C5
C1C1 U2U2 U3U3 U5U5 C4C4 C6C6 C2C2 C3C3 C5C5
C1C1 CnCn C2C2 C3C3 “master sequence”
Semantics C1C1 CnCn C2C2 C3C3 “master sequence” C1C1 U n-1 U1U1 U2U2 submitted updates
Semantics C1C1 CnCn C2C2 C3C3 “master sequence” C1C1 C5C5 C8C8 C9C9 C 15 every application observes a subset of the master sequence
Semantics C1C1 CnCn C2C2 C3C3 “master sequence” C1C1 C5C5 C8C8 C9C9 C 15 every application observes a subset of the master sequence …and nobody lags behind
Types Checkpointed Communication Channel (CC) can be classified based on: the type of checkpoints, the type of updates, (and many other factors we won’t dicuss)
Types Checkpointed Communication Channel (CC) can be classified based on: the type of checkpoints, the type of updates, (and many other factors we won’t dicuss)
Types C U XML documents standardized edits on XML documents XML Channel (XC)
Types C U XML documents standardized edits on XML documents XML Channel (XC)
Types C U standardized edits on XML documents XML Channel (XC) XML documents
Types C U XML Channel (XC) XML documents standardized edits on XML documents
Types Checkpointed Channel (CC) Text ChannelBinary Channel XML Channel (XC) RSS Channel XHTML Channel XAML Channel Reference Channel Collection
Types Checkpointed Channel (CC) Text ChannelBinary Channel XML Channel (XC) RSS Channel XHTML Channel XAML Channel Reference Channel Collection
Types Checkpointed Channel (CC) Text ChannelBinary Channel XML Channel (XC) RSS Channel XHTML Channel XAML Channel Reference Channel Collection
Types Checkpointed Channel (CC) Text ChannelBinary Channel XML Channel (XC) RSS Channel XHTML Channel XAML Channel Reference Channel Collection
Live Distributed Objects (LO)
Ordinary Web Applications displayUI components
Ordinary Web Applications displayUI components
Ordinary Web Applications displayUI components
Ordinary Web Applications displayUI components
Ordinary Web Applications displayUI components
Ordinary Web Applications displayUI components
Ordinary Web Applications side by side nested
Ordinary Web Applications
Live Objects Applications side by side nested front-end to back-end
Live Objects Applications side by side nested front-end to back-end data pipeline
Live Objects Applications side by side nested front-end to back-end data pipeline UI component
Live Objects Applications side by side nested front-end to back-end data pipeline UI component MPEG-2 decoder
Live Objects Applications side by side nested front-end to back-end data pipeline UI component MPEG-2 decoder AES decryptor
Live Objects Applications side by side nested front-end to back-end data pipeline UI component MPEG-2 decoder AES decryptor reliable transport
Live Objects Applications side by side nested front-end to back-end data pipeline UI component MPEG-2 decoder AES decryptor reliable transport unreliable transport
… side by side nested front-end to back-end data pipeline
… side by side nested front-end to back-end
… side by side nested front-end to back-end
… side by side nested front-end to back-end
… side by side nested front-end to back-end
… side by side nested front-end to back-end
Live Objects Applications UI component MPEG-2 decoder AES decryptor reliable multicast IP multicast recovery protocol hole-punching UDP transport TCP transport membership client web service proxy
Live Objects Applications UI component MPEG-2 decoder AES decryptor reliable multicast IP multicast recovery protocol hole-punching UDP transport TCP transport membership client web service proxy
Live Objects Applications UI component MPEG-2 decoder AES decryptor reliable multicast IP multicast recovery protocol hole-punching UDP transport TCP transport membership client web service proxy
Live Objects Applications UI component MPEG-2 decoder AES decryptor reliable multicast IP multicast recovery protocol hole-punching UDP transport TCP transport membership client web service proxy
Live Objects Applications UI component MPEG-2 decoder AES decryptor reliable multicast IP multicast recovery protocol hole-punching UDP transport TCP transport membership client web service proxy
Live Objects Applications data “pipeline”
Live Objects Applications data pipeline data pipeline
Live Objects Applications data pipeline data pipeline data pipeline
Live Objects Applications XML
References XML activate channel reference channel proxy
References XML activate channel reference channel proxy
References XML activate channel reference channel proxy
References XML channel reference channel proxy points to
References XML channel reference channel proxy points to channel content XML
References XML points to XML
References XML points to XML
References XML
Ordinary Web Applications side by side nested XML markup
Live Objects Applications XML
Live Objects Applications
space
Live Objects Applications space plane 1 XML
Live Objects Applications space plane 1 plane 2 XML
Live Objects Applications space plane 1 plane 2 building 1 XML
Live Objects Applications space plane 1 plane 2 building 1 map XML
Live Objects Applications tile 1 XML
Live Objects Applications tile 1 XML tile 2 XML
Live Objects Applications
desktop
Live Objects Applications desktop text 2 XML
Live Objects Applications desktop text 2 XML image 1 XML
Live Objects Applications desktop text 2 XML image 1 XML desktop 2 XML
Live Objects Applications desktop text 2 XML image 1 XML desktop 2 XML text 3 XML
Live Objects Applications desktop 1
Live Objects Applications desktop 1 XML desktop 2
Live Objects Applications desktop 1 XML desktop 2 desktop 3 XML
Live Objects Applications desktop 1 XML desktop 2 desktop 3 XML text 1 XML
Live Objects Applications desktop 1 XML desktop 2 desktop 3 XML text 1 XML
Conclusions
1.Cloud and edge technologies can work together… …but we need a new storage abstraction. 2.Checkpointed Channels (CCs) a)Support a variety of protocols: client-server, P2P, distributed replication, append log files, etc., b)Can be used at any level of the protocol stack, at the fronted and at the backend, c)Can efficiently store structured mashup content, d)Can be hyperlinked into webs of CCs; these could serve as a basis for a new Web architecture. Conclusions
Thanks