Presentation is loading. Please wait.

Presentation is loading. Please wait.

Storing and Accessing Live Mashup Content in the Cloud Krzysztof Ostrowski, Ken Birman Cornell University

Similar presentations


Presentation on theme: "Storing and Accessing Live Mashup Content in the Cloud Krzysztof Ostrowski, Ken Birman Cornell University"— Presentation transcript:

1 Storing and Accessing Live Mashup Content in the Cloud Krzysztof Ostrowski, Ken Birman Cornell University {krzys|ken}@cs.cornell.edu

2 Agenda

3 1.A new, versatile storage abstraction: Checkpointed Channel (CC) 2.A new web application architecture: A web of (hyperlinked) CCs Agenda

4 Introduction

5 Storing Content in the Cloud server in a data center client-server interactions cloud content edge

6 Storing Content in the Cloud server in a data center client-server interactions cloud content edge

7 server in a data center client-server interactions cloud Storing Content in the Cloud content edge

8 server in a data center client-server interactions cloud Storing Content in the Cloud content edge

9 server in a data center client-server interactions cloud Storing Content in the Cloud content edge

10 server in a data center client-server interactions cloud Storing Content in the Cloud content edge

11 server in a data center client-server interactions cloud Storing Content in the Cloud content edge

12 Storing Content in the Cloud content client-server interactions server in a data center update relayed through the server

13 server in a data center Storing Content in the Cloud explicit request, e.g. HTTP GET content cloud edge

14 http://liveobjects.cs.cornell.edu

15 server in a data center Storing Content at the Edge edge content replica content replica content replica peer-to-peer interactions

16 server in a data center Storing Content at the Edge edge peer-to-peer interactions content replica content replica content replica

17 server in a data center Storing Content at the Edge edge peer-to-peer interactions content replica content replica content replica

18 server in a data center Storing Content at the Edge edge peer-to-peer interactions content replica content replica content replica

19 server in a data center Storing Content at the Edge edge peer-to-peer interactions content replica content replica content replica updated

20 server in a data center Storing Content at the Edge edge peer-to-peer interactions content replica content replica content replica updated multicast

21 server in a data center Storing Content at the Edge edge content replica content replica content replica updated

22 server in a data center Storing Content at the Edge edge content replica content replica content replica replicated state machine

23 server in a data center Storing Content at the Edge edge content replica content replica content replica manage membership

24 server in a data center Storing Content at the Edge edge data control

25 server in a data center Storing Content at the Edge edge data control

26 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

27 server in a data center Cloud vs. Edge? edge

28 server in a data center Cloud vs. Edge? edge

29 server in a data center Cloud vs. Edge? edge

30 server in a data center Cloud vs. Edge? edge no replicas left

31 Cloud vs. Edge? server in a data center client-server interactions cloud content edge flow of updates bottleneck

32 Cloud vs. Edge? server in a data center client-server interactions cloud content edge flow of updates bottleneck

33 Cloud vs. Edge? server in a data center client-server interactions cloud content edge flow of updates bottleneck

34 Cloud vs. Edge? server in a data center client-server interactions cloud content edge flow of updates bottleneck

35 Cloud vs. Edge? server in a data center client-server interactions cloud content edge flow of updates bottleneck

36 Cloud vs. Edge? Server capacity: SecondLife: ~40 clients/server Second Life and the New Generation of Virtual Worlds. S. Kumar et al. 2008. IEEE Computer, 41(9):46-53

37 Cloud vs. Edge? Server capacity: SecondLife: ~40 clients/server virtual island

38 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

39 Extending Cloud to the Edge server edge cloud

40 Extending Cloud to the Edge cloud server edge

41 peer-to-peer interactions client-server interactions Extending Cloud to the Edge cloud server content

42 peer-to-peer interactions client-server interactions Extending Cloud to the Edge cloud server content distributed protocol (client-server, peer-to-peer, etc.) content

43 Extending Cloud to the Edge cloud server edge

44 There are: 40+ times more PCs than servers (billions today, to double in five years) 2000+ 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

45 There are: 40+ times more PCs than servers (billions today, to double in five years) 2000+ 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

46 There are: 40+ times more PCs than servers (billions today, to double in five years) 2000+ 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

47 There are: 40+ times more PCs than servers (billions today, to double in five years) 2000+ 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

48 There are: 40+ times more PCs than servers (billions today, to double in five years) 2000+ 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

49 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

50 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

51 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

52 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

53 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

54 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

55 http://liveobjects.cs.cornell.edu

56 Checkpointed Channels (CC)

57 Architecture

58

59

60

61

62 network messages

63 the edge may “cut through” the channel content physically resides outside the channel… …but it could also be cached in it

64 the edge may “cut through” the channel content physically resides outside the channel… …but it could also be cached in it

65 content physically resides outside the channel… …but it could also be cached in it the edge may “cut through” the channel

66 Interfaces Checkpointed Communication Channel (CC) a writable stream of checkpoints and updates

67 Interfaces Checkpointed Communication Channel (CC) a writable stream of checkpoints and updates

68 Interfaces Checkpointed Communication Channel (CC) a writable stream of checkpoints and updates

69 Interfaces Checkpointed Communication Channel (CC) a writable stream of checkpoints and updates

70 Interfaces Checkpointed Communication Channel (CC) a writable stream of checkpoints and updates

71 Interfaces Checkpointed Communication Channel (CC) a writable stream of checkpoints and updates

72 Dynamics (local) Checkpointed Communication Channel (CC) U C UU U initial checkpoint

73 Dynamics (local) Checkpointed Communication Channel (CC) C initial checkpointmultiple updates UUU U

74 Dynamics (local) Checkpointed Communication Channel (CC) C initial checkpointmultiple updates UUU U

75 Interfaces Checkpointed Communication Channel (CC) a writable stream of checkpoints and updates

76 Dynamics (local) Checkpointed Communication Channel (CC) U updates UU

77 Dynamics (local) Checkpointed Communication Channel (CC) U updates UU

78 Interfaces Checkpointed Communication Channel (CC) a writable stream of checkpoints and updates

79 Interfaces Checkpointed Communication Channel (CC) a writable stream of checkpoints and updates

80 Interfaces Checkpointed Communication Channel (CC) a writable stream of checkpoints and updates

81 Dynamics (local) Checkpointed Communication Channel (CC) request checkpoint R

82 Dynamics (local) Checkpointed Communication Channel (CC) request checkpoint R

83 Dynamics (local) Checkpointed Communication Channel (CC) C checkpoint

84 Dynamics (local) Checkpointed Communication Channel (CC) C checkpoint

85 Dynamics (global) Checkpointed Channel (CC)

86 Dynamics (global) Checkpointed Channel (CC) connect

87 Dynamics (global) Checkpointed Channel (CC) connect initialize

88 Dynamics (global) connect initialize need checkpoint

89 Dynamics (global) initialize need checkpoint R

90 Dynamics (global) request checkpoint need checkpoint

91 Dynamics (global) request checkpoint R

92 Dynamics (global) initialize request checkpoint need checkpoint R

93 Dynamics (global) request checkpoint need checkpoint provide checkpoint

94 Dynamics (global) request checkpoint provide checkpoint C

95 Dynamics (global) provide checkpoint C

96 Dynamics (global) C transfer checkpoint

97 Dynamics (global) transfer checkpoint C

98 Dynamics (global) C checkpoint transfer checkpoint

99 Dynamics (global) C checkpoint deliver checkpoint

100 Dynamics (global) deliver checkpoint C

101 Dynamics (global) consume checkpoint C deliver checkpoint

102 Dynamics (global) consume checkpoint C wants to update

103 Dynamics (global) consume checkpoint C wants to update U

104 Dynamics (global) wants to update U request update

105 Dynamics (global) update request update U

106 Dynamics (global) U propagate update

107 Dynamics (global) propagate update UUU

108 Dynamics (global) propagate update U UU U

109 Dynamics (global) U UU update U deliver update

110 Dynamics (global) U UU U deliver update

111 Dynamics (global) deliver update U UU U

112 Dynamics (global) U UU U consume update

113 Semantics UCC'C' + = earlier checkpoint or state new checkpoint or state incremental update

114 Semantics UCC'C' + = earlier checkpoint or state new checkpoint or state incremental update

115 Semantics UCC'C' + = earlier checkpoint or state new checkpoint or state incremental update

116 Semantics CkCk checkpoint multiple updates U1U1 U2U2 UnUn

117 Semantics CkCk U1U1 U2U2 UnUn

118 CkCk U1U1 U2U2 UnUn C k+1 += CkCk U1U1

119 Semantics CkCk U1U1 U2U2 UnUn C k+1 C k+2 += C k+1 U2U2

120 Semantics CkCk U1U1 U2U2 UnUn C k+1 C k+2 C k+n + = C k+n-1 UnUn

121 Semantics CkCk U1U1 U2U2 UnUn C k+1 C k+2 C k+n

122 Semantics CkCk U1U1 U2U2 UnUn C k+1 C k+2 C k+n

123 Semantics C1C1 U2U2 U3U3 U5U5 C4C4 C6C6

124 C1C1 U2U2 U3U3 U5U5 C4C4 C6C6 C2C2 C3C3 C5C5

125 C1C1 U2U2 U3U3 U5U5 C4C4 C6C6 C2C2 C3C3 C5C5

126 C1C1 U2U2 U3U3 U5U5 C4C4 C6C6 C2C2 C3C3 C5C5

127 C1C1 CnCn C2C2 C3C3 “master sequence”

128 Semantics C1C1 CnCn C2C2 C3C3 “master sequence” C1C1 U n-1 U1U1 U2U2 submitted updates

129 Semantics C1C1 CnCn C2C2 C3C3 “master sequence” C1C1 C5C5 C8C8 C9C9 C 15 every application observes a subset of the master sequence

130 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

131 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)

132 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)

133 Types C U XML documents standardized edits on XML documents XML Channel (XC)

134 Types C U XML documents standardized edits on XML documents XML Channel (XC)

135 Types C U standardized edits on XML documents XML Channel (XC) XML documents

136 Types C U XML Channel (XC) XML documents standardized edits on XML documents

137 Types Checkpointed Channel (CC) Text ChannelBinary Channel XML Channel (XC) RSS Channel XHTML Channel XAML Channel Reference Channel Collection

138 Types Checkpointed Channel (CC) Text ChannelBinary Channel XML Channel (XC) RSS Channel XHTML Channel XAML Channel Reference Channel Collection

139 Types Checkpointed Channel (CC) Text ChannelBinary Channel XML Channel (XC) RSS Channel XHTML Channel XAML Channel Reference Channel Collection

140 Types Checkpointed Channel (CC) Text ChannelBinary Channel XML Channel (XC) RSS Channel XHTML Channel XAML Channel Reference Channel Collection

141 http://liveobjects.cs.cornell.edu

142 Live Distributed Objects (LO)

143 Ordinary Web Applications displayUI components

144 Ordinary Web Applications displayUI components

145 Ordinary Web Applications displayUI components

146 Ordinary Web Applications displayUI components

147 Ordinary Web Applications displayUI components

148 Ordinary Web Applications displayUI components

149 Ordinary Web Applications side by side nested

150 Ordinary Web Applications

151 Live Objects Applications side by side nested front-end to back-end

152 Live Objects Applications side by side nested front-end to back-end data pipeline

153 Live Objects Applications side by side nested front-end to back-end data pipeline UI component

154 Live Objects Applications side by side nested front-end to back-end data pipeline UI component MPEG-2 decoder

155 Live Objects Applications side by side nested front-end to back-end data pipeline UI component MPEG-2 decoder AES decryptor

156 Live Objects Applications side by side nested front-end to back-end data pipeline UI component MPEG-2 decoder AES decryptor reliable transport

157 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

158 … side by side nested front-end to back-end data pipeline

159 … side by side nested front-end to back-end

160 … side by side nested front-end to back-end

161 … side by side nested front-end to back-end

162 … side by side nested front-end to back-end

163 … side by side nested front-end to back-end

164 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

165 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

166 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

167 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

168 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

169 Live Objects Applications data “pipeline”

170 Live Objects Applications data pipeline data pipeline

171 Live Objects Applications data pipeline data pipeline data pipeline

172 Live Objects Applications XML

173 References XML activate channel reference channel proxy

174 References XML activate channel reference channel proxy

175 References XML activate channel reference channel proxy

176 References XML channel reference channel proxy points to

177 References XML channel reference channel proxy points to channel content XML

178 References XML points to XML

179 References XML points to XML

180 References XML

181 Ordinary Web Applications side by side nested XML markup

182 Live Objects Applications XML

183 Live Objects Applications

184 space

185 Live Objects Applications space plane 1 XML

186 Live Objects Applications space plane 1 plane 2 XML

187 Live Objects Applications space plane 1 plane 2 building 1 XML

188 Live Objects Applications space plane 1 plane 2 building 1 map XML

189 Live Objects Applications tile 1 XML

190 Live Objects Applications tile 1 XML tile 2 XML

191 Live Objects Applications

192 desktop

193 Live Objects Applications desktop text 2 XML

194 Live Objects Applications desktop text 2 XML image 1 XML

195 Live Objects Applications desktop text 2 XML image 1 XML desktop 2 XML

196 Live Objects Applications desktop text 2 XML image 1 XML desktop 2 XML text 3 XML

197 Live Objects Applications desktop 1

198 Live Objects Applications desktop 1 XML desktop 2

199 Live Objects Applications desktop 1 XML desktop 2 desktop 3 XML

200 Live Objects Applications desktop 1 XML desktop 2 desktop 3 XML text 1 XML

201 Live Objects Applications desktop 1 XML desktop 2 desktop 3 XML text 1 XML

202 Conclusions

203 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

204 Thanks


Download ppt "Storing and Accessing Live Mashup Content in the Cloud Krzysztof Ostrowski, Ken Birman Cornell University"

Similar presentations


Ads by Google