SlideShare a Scribd company logo
1 of 149
Download to read offline
Architecture, Design and Web Informations Systems Engineering Group
DEPLOYING STATEFUL WEB
COMPONENTS ON MULTIPLE DEVICES
WITH LIQUID.JS FOR POLYMER
Andrea Gallidabino
Cesare Pautasso
1
Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions
Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer
2
# Devices
# Users
Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions
Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer
2
# Devices
# Users
Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions
Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer
2
# Devices
# Users
Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions
Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer
2
# Devices
# Users
Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions
Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer
2
# Devices
# Users
Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions
Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer
3
SEQUENTIAL SCREENING
Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions
Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer
3
SEQUENTIAL SCREENING
Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions
Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer
3
SEQUENTIAL SCREENING
Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions
Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer
3
SEQUENTIAL SCREENING
Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions
Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer
3
SEQUENTIAL SCREENING
Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions
Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer
3
SEQUENTIAL SCREENING
APPLE HAND-OFF
4
Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions
Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer
5
SIMULTANEOUS SCREENING
Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions
Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer
5
SIMULTANEOUS SCREENING
Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions
Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer
5
SIMULTANEOUS SCREENING
Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions
Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer
5
SIMULTANEOUS SCREENING
Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions
Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer
5
SIMULTANEOUS SCREENING
Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions
Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer
5
SIMULTANEOUS SCREENING
Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions
Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer
6
COLLABORATIVE SCENARIO
Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions
Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer
6
COLLABORATIVE SCENARIO
Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions
Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer
6
COLLABORATIVE SCENARIO
Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions
Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer
6
COLLABORATIVE SCENARIO
Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions
Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer
6
COLLABORATIVE SCENARIO
Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions
Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer
6
COLLABORATIVE SCENARIO
SYNC
7
Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions
Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer
8
MULTI-DEVICE SOFTWARE
Adapts to a set of heterogeneous devices
Dynamic Migration (sequential scenarios)
State Synchronisation (collaborative scenarios)
Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions
Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer
9
METAPHOR
Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions
Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer
9
METAPHOR
Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions
Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer
9
METAPHOR
Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions
Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer
9
METAPHOR
Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions
Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer
9
METAPHOR
Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions
Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer
9
METAPHOR
Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions
Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer
9
METAPHOR
Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions
Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer
10
LIQUID APPLICATIONS
Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions
Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer
10
LIQUID APPLICATIONS
Roaming from a device to another one
Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions
Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer
10
LIQUID APPLICATIONS
Roaming from a device to another one
following user attention
Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions
Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer
11
LIQUID.JS FOR POLYMER
Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions
Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer
12
COMPONENT-BASED
Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions
Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer
12
COMPONENT-BASED
Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions
Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer
12
COMPONENT-BASED
DATA
UI
LOGIC
DATA
UI
LOGIC
Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions
Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer
12
COMPONENT-BASED
WebComponents Standard
DATA
UI
LOGIC
DATA
UI
LOGIC
Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions
Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer
12
COMPONENT-BASED
WebComponents Standard
Polymer Framework
DATA
UI
LOGIC
DATA
UI
LOGIC
Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions
Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer
12
COMPONENT-BASED
WebComponents Standard
Polymer Framework
Fine-grained decomposition
DATA
UI
LOGIC
DATA
UI
LOGIC
Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions
Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer
13
COMPONENT API
Device 1
Device 2
Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions
Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer
13
COMPONENT API
Device 1
Device 2
Create(component_Type, device)
Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions
Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer
13
COMPONENT API
Device 1
Device 2
Create(component_Type, device)
Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions
Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer
13
COMPONENT API
Device 1
Device 2
Create(component_Type, device)
Delete(component)
Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions
Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer
13
COMPONENT API
Device 1
Device 2
Create(component_Type, device)
Delete(component)
Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions
Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer
13
COMPONENT API
Device 1
Device 2
Create(component_Type, device)
Delete(component)
Move(component, device)
Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions
Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer
13
COMPONENT API
Device 1
Device 2
Create(component_Type, device)
Delete(component)
Move(component, device)
Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions
Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer
13
COMPONENT API
Device 1
Device 2
Create(component_Type, device)
Delete(component)
Move(component, device)
Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions
Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer
14
SEQUENTIAL SCREENING
Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions
Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer
15
COMPONENT API
Device 1
Device 2
Create(component_Type, device)
Delete(component)
Move(component, device)
Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions
Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer
15
COMPONENT API
Device 1
Device 2
Create(component_Type, device)
Delete(component)
Move(component, device)
Fork(component, device)
Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions
Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer
15
COMPONENT API
Device 1
Device 2
Create(component_Type, device)
Delete(component)
Move(component, device)
Fork(component, device)
Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions
Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer
15
COMPONENT API
Device 1
Device 2
Create(component_Type, device)
Delete(component)
Move(component, device)
Fork(component, device)
Pair(component_1, component_2)
Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions
Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer
SYNC
15
COMPONENT API
Device 1
Device 2
Create(component_Type, device)
Delete(component)
Move(component, device)
Fork(component, device)
Pair(component_1, component_2)
Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions
Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer
SYNC
15
COMPONENT API
Device 1
Device 2
Create(component_Type, device)
Delete(component)
Move(component, device)
Fork(component, device)
Pair(component_1, component_2)
Clone(component, device)
Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions
Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer
SYNC
15
COMPONENT API
Device 1
Device 2
Create(component_Type, device)
Delete(component)
Move(component, device)
Fork(component, device)
Pair(component_1, component_2)
Clone(component, device)
Unpair(component_1, component_2)
Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions
Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer
15
COMPONENT API
Device 1
Device 2
Create(component_Type, device)
Delete(component)
Move(component, device)
Fork(component, device)
Pair(component_1, component_2)
Clone(component, device)
Unpair(component_1, component_2)
Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions
Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer
16
SIMULTANEOUS SCREENING
Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions
Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer
17
COLLABORATIVE SCENARIO
SYNC
Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions
Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer
18
STATEFUL COMPONENTS
Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions
Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer
18
STATEFUL COMPONENTS
Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions
Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer
18
STATEFUL COMPONENTS
Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions
Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer
18
STATEFUL COMPONENTS
Var 1 Var 2
Var 3 Var 4
Var 5
Component
Component
Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions
Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer
19
VARIABLE API
Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions
Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer
19
VARIABLE API
Var 1 Var 2
Component
Var 3
Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions
Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer
19
VARIABLE API
Var 1 Var 2
Component
Liquid
Behavior
Var 3
Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions
Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer
19
VARIABLE API
Var 1 Var 2
Liquid
Behavior
Var 3
Liquid Component
Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions
Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer
19
VARIABLE API
Register (variable)
Var 1 Var 2
Liquid
Behavior
Var 3
Liquid Component
Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions
Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer
19
VARIABLE API
Register (variable)
Var 1 Var 2
Liquid
Behavior
Var 3
Liquid Component
Var 1
Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions
Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer
19
VARIABLE API
Register (variable)
Pair (var_1, var_2)
Var 1 Var 2
Liquid
Behavior
Var 3
Liquid Component
Var 1
Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions
Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer
19
VARIABLE API
Register (variable)
Pair (var_1, var_2)
Var 1 Var 2
Liquid
Behavior
Var 3
Liquid Component
Var 1
Liquid Component
Liquid
Behavior
Var 4 Var 5
Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions
Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer
19
VARIABLE API
Register (variable)
Pair (var_1, var_2)
Var 1 Var 2
Liquid
Behavior
Var 3
Liquid Component
Var 1
Liquid Component
Liquid
Behavior
Var 4 Var 5
SYNC
Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions
Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer
20
VARIABLE POLICIES
20
Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions
Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer
20
VARIABLE POLICIES
Sharing
20
Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions
Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer
20
VARIABLE POLICIES
Sharing
Component Scope
20
Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions
Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer
20
VARIABLE POLICIES
Sharing
Component Scope
Device Deployment
20
Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions
Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer
20
VARIABLE POLICIES
Sharing
Component Scope
Device Deployment
Persistence
20
Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions
Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer
21
SHARING POLICY
Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions
Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer
21
SHARING POLICY
Liquid Component
1 2
3
Liquid Component
1 2
3
Liquid Component
1 2
3
Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions
Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer
21
SHARING POLICY
Liquid Component
1 2
3
Liquid Component
1 2
3
Liquid Component
1 2
3
Cloned
Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions
Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer
21
SHARING POLICY
Shared
Liquid Component
1 2
3
Liquid Component
1 2
3
Liquid Component
1 2
3
1 2 3
Cloned
Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions
Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer
21
SHARING POLICY
Shared
Liquid Component
1 2
3
Liquid Component
1 2
3
Liquid Component
1 2
3
1 2 3
Cloned
Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions
Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer
21
SHARING POLICY
Shared
Local
Liquid Component
1 2
3
Liquid Component
1 2
3
Liquid Component
1 2
3
1 2 3
Cloned
Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions
Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer
21
SHARING POLICY
Shared
Local
Liquid Component
1 2
3
Liquid Component
1 2
3
Liquid Component
1 2
3
1
2
3
Cloned
Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions
Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer
21
SHARING POLICY
Shared
Local
Liquid Component
1 2
3
Liquid Component
1 2
3
Liquid Component
1 2
3
1
2
3
Cloned
Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions
Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer
21
SHARING POLICY
Shared
Local
Global
Liquid Component
1 2
3
Liquid Component
1 2
3
Liquid Component
1 2
3
1
2
3
Cloned
Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions
Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer
21
SHARING POLICY
Shared
Local
Global
Liquid Component
1 2
3
Liquid Component
1 2
3
Liquid Component
1 2
3
1
2
3
Cloned
Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions
Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer
21
SHARING POLICY
Shared
Local
Global
Liquid Component
1 2
3
Liquid Component
1 2
3
Liquid Component
1 2
3
1
2
3
Cloned
Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions
Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer
22
COMPONENT SCOPE
Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions
Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer
22
COMPONENT SCOPE
Liquid Component 1
1 2
3
Liquid Component 1
1 2
3
Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions
Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer
22
COMPONENT SCOPE
Liquid Component 1
1 2
3
Liquid Component 2
4 5
Liquid Component 1
1 2
3
Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions
Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer
22
COMPONENT SCOPE
Intra-component
Liquid Component 1
1 2
3
Liquid Component 2
4 5
Liquid Component 1
1 2
3
Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions
Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer
22
COMPONENT SCOPE
Intra-component
Liquid Component 1
1 2
3
Liquid Component 2
4 5
Liquid Component 1
1 2
3
Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions
Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer
22
COMPONENT SCOPE
Intra-component
Liquid Component 1
1 2
3
Liquid Component 2
4 5
Liquid Component 1
1 2
3
Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions
Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer
22
COMPONENT SCOPE
Intra-component
Inter-component
Liquid Component 1
1 2
3
Liquid Component 2
4 5
Liquid Component 1
1 2
3
Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions
Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer
22
COMPONENT SCOPE
Intra-component
Inter-component
Liquid Component 1
1 2
3
Liquid Component 2
4 5
Liquid Component 1
1 2
3
Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions
Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer
23
DEVICE DEPLOYMENT
Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions
Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer
23
DEVICE DEPLOYMENT
LC1
1 2
LC2
3 54
LC3
Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions
Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer
23
DEVICE DEPLOYMENT
One device
LC1
1 2
LC2
3 54
LC3
Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions
Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer
23
DEVICE DEPLOYMENT
One device
LC1
1 2
LC2
3 54
LC3
Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions
Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer
23
DEVICE DEPLOYMENT
One device
LC1
1 2
LC2
3 54
LC3
Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions
Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer
23
DEVICE DEPLOYMENT
One device
Many devices
LC1
1 2
LC2
3 54
LC3
Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions
Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer
23
DEVICE DEPLOYMENT
One device
Many devices
LC1
1 2
LC2
3 54
LC3
Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions
Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer
24
PERSISTENCE POLICY
Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions
Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer
24
PERSISTENCE POLICY
Variable
Value ‘Default’
Liquid Component
Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions
Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer
24
PERSISTENCE POLICY
Volatile
Variable
Value ‘Default’
Liquid Component
Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions
Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer
24
PERSISTENCE POLICY
Volatile
Variable
Value ‘Changed’
Liquid Component
Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions
Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer
24
PERSISTENCE POLICY
Volatile
Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions
Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer
24
PERSISTENCE POLICY
Volatile
Variable
Value ‘Default’
Liquid Component
Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions
Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer
24
PERSISTENCE POLICY
Volatile
SessionVariable
Value ‘Default’
Liquid Component
Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions
Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer
24
PERSISTENCE POLICY
Volatile
SessionVariable
Value ‘Changed’
Liquid Component
Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions
Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer
24
PERSISTENCE POLICY
Volatile
Session
Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions
Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer
24
PERSISTENCE POLICY
Volatile
SessionVariable
Value ‘Changed’
Liquid Component
Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions
Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer
24
PERSISTENCE POLICY
Volatile
Session
Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions
Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer
24
PERSISTENCE POLICY
Volatile
SessionVariable
Value ‘Default’
Liquid Component
Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions
Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer
24
PERSISTENCE POLICY
Volatile
Session
Persistent
Variable
Value ‘Default’
Liquid Component
Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions
Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer
24
PERSISTENCE POLICY
Volatile
Session
Persistent
Liquid Component
Variable
Value ‘Changed’
Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions
Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer
24
PERSISTENCE POLICY
Volatile
Session
Persistent
Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions
Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer
24
PERSISTENCE POLICY
Volatile
Session
Persistent
Variable
Value ‘Changed’
Liquid Component
Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions
Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer
25
DECISION
Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions
Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer
25
DECISION
Persistence Sharing
Scope
Deployment
Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions
Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer
25
DECISION
Persistence Sharing
Intra-Component Inter-Component
1 Device 1 DeviceMany Many
Global
Global
Global
Shared
Shared
Shared
Local
Local
Local
Persistent
Session
Volatile
Scope
Deployment
Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions
Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer
25
DECISION
Persistence Sharing
Intra-Component Inter-Component
1 Device 1 DeviceMany Many
Global
Global
Global
Shared
Shared
Shared
Local
Local
Local
Persistent
Session
Volatile
Browser Memory
Browser Memory
Browser Memory Browser Memory Browser Memory Browser Memory
Browser Memory Browser Memory Browser Memory
Scope
Deployment
Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions
Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer
25
DECISION
Persistence Sharing
Intra-Component Inter-Component
1 Device 1 DeviceMany Many
Global
Global
Global
Shared
Shared
Shared
Local
Local
Local
Persistent
Session
Volatile
Browser Memory
Browser Memory
Browser Memory Browser Memory Browser Memory Browser Memory
Browser Memory Browser Memory Browser Memory
Session Storage
Session Storage
Session Storage
Session Storage
Session Storage
Server
Server
Server
Server
Scope
Deployment
Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions
Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer
25
DECISION
Persistence Sharing
Intra-Component Inter-Component
1 Device 1 DeviceMany Many
Global
Global
Global
Shared
Shared
Shared
Local
Local
Local
Persistent
Session
Volatile
Browser Memory
Browser Memory
Browser Memory Browser Memory Browser Memory Browser Memory
Browser Memory Browser Memory Browser Memory
Session Storage
Session Storage
Session Storage
Session Storage
Session Storage
Local Storage
Local Storage
Local Storage
Local Storage
Local Storage
Server
Server
Server
Server
Server
Server
Server
Server
Scope
Deployment
Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions
Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer
26
WHERE DO WE STORETHE STATE
Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions
Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer
26
WHERE DO WE STORETHE STATE
Device 1 Device 2
Liquid Component
Liquid
Behavior
Liquid Component
Liquid
Behavior
1 2 3 1 2 3
Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions
Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer
26
WHERE DO WE STORETHE STATE
Device 1 Device 2
WebRTC
Liquid Component
Liquid
Behavior
Liquid Component
Liquid
Behavior
1 2 3 1 2 3
Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions
Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer
26
WHERE DO WE STORETHE STATE
Device 1 Device 2
Server
WebRTC
Liquid Component
Liquid
Behavior
Liquid Component
Liquid
Behavior
1 2 3 1 2 3
Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions
Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer
26
WHERE DO WE STORETHE STATE
Device 1 Device 2
Server
WebRTC
WebSockets
Liquid Component
Liquid
Behavior
Liquid Component
Liquid
Behavior
1 2 3 1 2 3
Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions
Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer
26
WHERE DO WE STORETHE STATE
Device 1 Device 2
Server
WebRTC
WebSockets
Liquid Component
Liquid
Behavior
Liquid Component
Liquid
Behavior
1
1 2 3 1 2 3
Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions
Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer
26
WHERE DO WE STORETHE STATE
Device 1 Device 2
Server
WebRTC
WebSockets
Liquid Component
Liquid
Behavior
Liquid Component
Liquid
Behavior
1
1 2 3 1 2 3
Database
Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions
Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer
26
WHERE DO WE STORETHE STATE
Device 1 Device 2
Server
WebRTC
WebSockets
Liquid Component
Liquid
Behavior
Liquid Component
Liquid
Behavior
1
22
1 2 3 1 2 3
Database
Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions
Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer
26
WHERE DO WE STORETHE STATE
Device 1 Device 2
Server
WebRTC
WebSockets
Liquid Component
Liquid
Behavior
Liquid Component
Liquid
Behavior
1
22
1 2 3 1 2 3
Database
Browser
Memory
Browser
Memory
Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions
Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer
26
WHERE DO WE STORETHE STATE
Device 1 Device 2
Server
WebRTC
WebSockets
Liquid Component
Liquid
Behavior
Liquid Component
Liquid
Behavior
1
3
2
43
2
4
1 2 3 1 2 3
Database
Browser
Memory
Browser
Memory
Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions
Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer
26
WHERE DO WE STORETHE STATE
Device 1 Device 2
Server
WebRTC
WebSockets
Liquid Component
Liquid
Behavior
Liquid Component
Liquid
Behavior
1
3
2
43
2
4
1 2 3 1 2 3
Database
Browser
Memory
Browser
Memory
Local
Storage
Local
Storage
Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions
Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer
26
WHERE DO WE STORETHE STATE
Device 1 Device 2
Server
WebRTC
WebSockets
Liquid Component
Liquid
Behavior
Liquid Component
Liquid
Behavior
1
3
2
43
2
4
1 2 3 1 2 3
Database
Browser
Memory
Browser
Memory
Local
Storage
Local
Storage
Session
Storage
Session
Storage
Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions
Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer
27
CONCLUSION
Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions
Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer
27
CONCLUSION
Solution for the three use case scenarios:
Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions
Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer
27
CONCLUSION
Solution for the three use case scenarios:
sequential screening, simultaneous screening,
collaborative
Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions
Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer
27
CONCLUSION
Solution for the three use case scenarios:
sequential screening, simultaneous screening,
collaborative
Transparently synchronise component state
Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions
Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer
27
CONCLUSION
Solution for the three use case scenarios:
sequential screening, simultaneous screening,
collaborative
Transparently synchronise component state
Decentralised environment
Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions
Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer
28
FUTURE WORK
DATA
UI
LOGIC
Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions
Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer
29
WWW’16 (Demo paper)
A. Gallidabino, and C. Pautasso.
The Liquid.js framework for
migrating and cloning stateful
Web components across multiple
devices
WICSA‘16
A.Gallidabino, C. Pautasso, T.
Mikkonen, V. Ilvonen, K. Systä,
J.-P. Voutilainen, and A.
Taivalsaari.
On the architecture of liquid
software: Technology alternatives
and design space
ICWE’15
T. Mikkonen, K. Systä, and C.
Pautasso
Towards liquid web applications
COMPSAC‘14
A. Taivalsaari, T. Mikkonen, and K.
Systä
Liquid Software Manifesto: The Era
of Multiple Device Ownership
and Its Implications for Software
Architecture
Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions
Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer
1st International Workshop on
Liquid Multi-Device Software
for the Web
`
http://icwe2016.inf.usi.ch/liquid

More Related Content

What's hot

Migrate Early, Migrate Often: JDK release cadence strategies
Migrate Early, Migrate Often: JDK release cadence strategiesMigrate Early, Migrate Often: JDK release cadence strategies
Migrate Early, Migrate Often: JDK release cadence strategiesDanHeidinga
 
GlassFish in Production Environments
GlassFish in Production EnvironmentsGlassFish in Production Environments
GlassFish in Production EnvironmentsBruno Borges
 
Weblogic 12c on docker
Weblogic 12c on dockerWeblogic 12c on docker
Weblogic 12c on dockerCK Rai
 
Igalia Focus and Goals 2020 (2019 WebKit Contributors Meeting)
Igalia Focus and Goals 2020 (2019 WebKit Contributors Meeting)Igalia Focus and Goals 2020 (2019 WebKit Contributors Meeting)
Igalia Focus and Goals 2020 (2019 WebKit Contributors Meeting)Igalia
 
Nuxeo WebEngine and GlassFish v3
Nuxeo WebEngine and GlassFish v3Nuxeo WebEngine and GlassFish v3
Nuxeo WebEngine and GlassFish v3Nuxeo
 
Distributed Docker Pipeline Architecture with CloudBees Jenkins Enterprise
Distributed Docker Pipeline Architecture with CloudBees Jenkins EnterpriseDistributed Docker Pipeline Architecture with CloudBees Jenkins Enterprise
Distributed Docker Pipeline Architecture with CloudBees Jenkins EnterpriseKurt Madel
 
Multiplatform Apps with Spring, Kotlin, and RSocket
Multiplatform Apps with Spring, Kotlin, and RSocketMultiplatform Apps with Spring, Kotlin, and RSocket
Multiplatform Apps with Spring, Kotlin, and RSocketVMware Tanzu
 
Introduction to WebMvc.fn
Introduction to WebMvc.fnIntroduction to WebMvc.fn
Introduction to WebMvc.fnVMware Tanzu
 
Refactor your Java EE application using Microservices and Containers - Arun G...
Refactor your Java EE application using Microservices and Containers - Arun G...Refactor your Java EE application using Microservices and Containers - Arun G...
Refactor your Java EE application using Microservices and Containers - Arun G...Codemotion
 
OSGi and Java EE in GlassFish - Tech Days 2010 India
OSGi and Java EE in GlassFish - Tech Days 2010 IndiaOSGi and Java EE in GlassFish - Tech Days 2010 India
OSGi and Java EE in GlassFish - Tech Days 2010 IndiaArun Gupta
 
Busy developer-html5-javaee7
Busy developer-html5-javaee7Busy developer-html5-javaee7
Busy developer-html5-javaee7Geertjan Wielenga
 
Java EE 7 Soup to Nuts at JavaOne 2014
Java EE 7 Soup to Nuts at JavaOne 2014Java EE 7 Soup to Nuts at JavaOne 2014
Java EE 7 Soup to Nuts at JavaOne 2014Arun Gupta
 
Andrei Niculae - glassfish - 24mai2011
Andrei Niculae - glassfish - 24mai2011Andrei Niculae - glassfish - 24mai2011
Andrei Niculae - glassfish - 24mai2011Agora Group
 
Atlanta Jenkins Area Meetup October 22nd 2015
Atlanta Jenkins Area Meetup October 22nd 2015Atlanta Jenkins Area Meetup October 22nd 2015
Atlanta Jenkins Area Meetup October 22nd 2015Kurt Madel
 
7 Habits of Highly Effective Jenkins Users
7 Habits of Highly Effective Jenkins Users7 Habits of Highly Effective Jenkins Users
7 Habits of Highly Effective Jenkins UsersJules Pierre-Louis
 

What's hot (20)

Java EE 6 Aquarium Paris
Java EE 6 Aquarium ParisJava EE 6 Aquarium Paris
Java EE 6 Aquarium Paris
 
Migrate Early, Migrate Often: JDK release cadence strategies
Migrate Early, Migrate Often: JDK release cadence strategiesMigrate Early, Migrate Often: JDK release cadence strategies
Migrate Early, Migrate Often: JDK release cadence strategies
 
GlassFish in Production Environments
GlassFish in Production EnvironmentsGlassFish in Production Environments
GlassFish in Production Environments
 
Weblogic 12c on docker
Weblogic 12c on dockerWeblogic 12c on docker
Weblogic 12c on docker
 
Igalia Focus and Goals 2020 (2019 WebKit Contributors Meeting)
Igalia Focus and Goals 2020 (2019 WebKit Contributors Meeting)Igalia Focus and Goals 2020 (2019 WebKit Contributors Meeting)
Igalia Focus and Goals 2020 (2019 WebKit Contributors Meeting)
 
Nuxeo WebEngine and GlassFish v3
Nuxeo WebEngine and GlassFish v3Nuxeo WebEngine and GlassFish v3
Nuxeo WebEngine and GlassFish v3
 
Distributed Docker Pipeline Architecture with CloudBees Jenkins Enterprise
Distributed Docker Pipeline Architecture with CloudBees Jenkins EnterpriseDistributed Docker Pipeline Architecture with CloudBees Jenkins Enterprise
Distributed Docker Pipeline Architecture with CloudBees Jenkins Enterprise
 
MySQL Aquarium Paris
MySQL Aquarium ParisMySQL Aquarium Paris
MySQL Aquarium Paris
 
Multiplatform Apps with Spring, Kotlin, and RSocket
Multiplatform Apps with Spring, Kotlin, and RSocketMultiplatform Apps with Spring, Kotlin, and RSocket
Multiplatform Apps with Spring, Kotlin, and RSocket
 
Introduction to WebMvc.fn
Introduction to WebMvc.fnIntroduction to WebMvc.fn
Introduction to WebMvc.fn
 
GlassFish v3 : En Route Java EE 6
GlassFish v3 : En Route Java EE 6GlassFish v3 : En Route Java EE 6
GlassFish v3 : En Route Java EE 6
 
Refactor your Java EE application using Microservices and Containers - Arun G...
Refactor your Java EE application using Microservices and Containers - Arun G...Refactor your Java EE application using Microservices and Containers - Arun G...
Refactor your Java EE application using Microservices and Containers - Arun G...
 
OSGi and Java EE in GlassFish - Tech Days 2010 India
OSGi and Java EE in GlassFish - Tech Days 2010 IndiaOSGi and Java EE in GlassFish - Tech Days 2010 India
OSGi and Java EE in GlassFish - Tech Days 2010 India
 
Busy developer-html5-javaee7
Busy developer-html5-javaee7Busy developer-html5-javaee7
Busy developer-html5-javaee7
 
Java EE 7 Soup to Nuts at JavaOne 2014
Java EE 7 Soup to Nuts at JavaOne 2014Java EE 7 Soup to Nuts at JavaOne 2014
Java EE 7 Soup to Nuts at JavaOne 2014
 
XWiki Aquarium Paris
XWiki Aquarium ParisXWiki Aquarium Paris
XWiki Aquarium Paris
 
Andrei Niculae - glassfish - 24mai2011
Andrei Niculae - glassfish - 24mai2011Andrei Niculae - glassfish - 24mai2011
Andrei Niculae - glassfish - 24mai2011
 
Atlanta Jenkins Area Meetup October 22nd 2015
Atlanta Jenkins Area Meetup October 22nd 2015Atlanta Jenkins Area Meetup October 22nd 2015
Atlanta Jenkins Area Meetup October 22nd 2015
 
Gradle
GradleGradle
Gradle
 
7 Habits of Highly Effective Jenkins Users
7 Habits of Highly Effective Jenkins Users7 Habits of Highly Effective Jenkins Users
7 Habits of Highly Effective Jenkins Users
 

Viewers also liked

The Road to Native Web Components
The Road to Native Web ComponentsThe Road to Native Web Components
The Road to Native Web ComponentsMike North
 
Building accessible web components without tears
Building accessible web components without tearsBuilding accessible web components without tears
Building accessible web components without tearsRuss Weakley
 
Web components
Web componentsWeb components
Web componentsGil Fink
 
Web Components v1
Web Components v1Web Components v1
Web Components v1Mike Wilcox
 
Web Components for Java Developers
Web Components for Java DevelopersWeb Components for Java Developers
Web Components for Java DevelopersJoonas Lehtinen
 
Your Future HTML: The Evolution of Site Design with Web Components
Your Future HTML: The Evolution of Site Design with Web ComponentsYour Future HTML: The Evolution of Site Design with Web Components
Your Future HTML: The Evolution of Site Design with Web ComponentsKen Tabor
 

Viewers also liked (6)

The Road to Native Web Components
The Road to Native Web ComponentsThe Road to Native Web Components
The Road to Native Web Components
 
Building accessible web components without tears
Building accessible web components without tearsBuilding accessible web components without tears
Building accessible web components without tears
 
Web components
Web componentsWeb components
Web components
 
Web Components v1
Web Components v1Web Components v1
Web Components v1
 
Web Components for Java Developers
Web Components for Java DevelopersWeb Components for Java Developers
Web Components for Java Developers
 
Your Future HTML: The Evolution of Site Design with Web Components
Your Future HTML: The Evolution of Site Design with Web ComponentsYour Future HTML: The Evolution of Site Design with Web Components
Your Future HTML: The Evolution of Site Design with Web Components
 

Similar to Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer

Web deploy
Web deployWeb deploy
Web deployLarry Nung
 
HTML alchemy: the secrets of mixing JavaScript and Java EE - Matthias Wessendorf
HTML alchemy: the secrets of mixing JavaScript and Java EE - Matthias WessendorfHTML alchemy: the secrets of mixing JavaScript and Java EE - Matthias Wessendorf
HTML alchemy: the secrets of mixing JavaScript and Java EE - Matthias WessendorfJAX London
 
Best of Microsoft Dev Camp 2015
Best of Microsoft Dev Camp 2015Best of Microsoft Dev Camp 2015
Best of Microsoft Dev Camp 2015Bluegrass Digital
 
Learning ASP.NET 5 and MVC 6
Learning ASP.NET 5 and MVC 6Learning ASP.NET 5 and MVC 6
Learning ASP.NET 5 and MVC 6Ido Flatow
 
Integrating React.js Into a PHP Application: Dutch PHP 2019
Integrating React.js Into a PHP Application: Dutch PHP 2019Integrating React.js Into a PHP Application: Dutch PHP 2019
Integrating React.js Into a PHP Application: Dutch PHP 2019Andrew Rota
 
WebLogic im neuen Gewand
WebLogic im neuen GewandWebLogic im neuen Gewand
WebLogic im neuen GewandVolker Linz
 
Building real world cloud apps with azure
Building real world cloud apps with azureBuilding real world cloud apps with azure
Building real world cloud apps with azureIbon Landa
 
Docker presentation
Docker presentationDocker presentation
Docker presentationmhprogramr
 
jdays 2015
jdays 2015jdays 2015
jdays 2015Joe Kutner
 
VueJS Best Practices
VueJS Best PracticesVueJS Best Practices
VueJS Best PracticesFatih Acet
 
SharePoint Development with the SharePoint Framework
SharePoint Development with the SharePoint FrameworkSharePoint Development with the SharePoint Framework
SharePoint Development with the SharePoint FrameworkJoAnna Cheshire
 
vRanger feature overview august 2012 - dell-maxwell
vRanger feature overview   august 2012 - dell-maxwellvRanger feature overview   august 2012 - dell-maxwell
vRanger feature overview august 2012 - dell-maxwellDell_Maxwell
 
HTML5 Comprehensive Guide
HTML5 Comprehensive GuideHTML5 Comprehensive Guide
HTML5 Comprehensive GuideAlexei Skachykhin
 
DevNexus 2017 - Building and Deploying 12 Factor Apps in Scala, Java, Ruby, a...
DevNexus 2017 - Building and Deploying 12 Factor Apps in Scala, Java, Ruby, a...DevNexus 2017 - Building and Deploying 12 Factor Apps in Scala, Java, Ruby, a...
DevNexus 2017 - Building and Deploying 12 Factor Apps in Scala, Java, Ruby, a...Neil Shannon
 
WebLogic Developer Experience and Java EE 6
WebLogic Developer Experience and Java EE 6WebLogic Developer Experience and Java EE 6
WebLogic Developer Experience and Java EE 6Jeffrey West
 
B1 roadmap to cloud platform with oracle web logic server-oracle coherence ...
B1   roadmap to cloud platform with oracle web logic server-oracle coherence ...B1   roadmap to cloud platform with oracle web logic server-oracle coherence ...
B1 roadmap to cloud platform with oracle web logic server-oracle coherence ...Dr. Wilfred Lin (Ph.D.)
 

Similar to Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer (20)

Web deploy
Web deployWeb deploy
Web deploy
 
HTML alchemy: the secrets of mixing JavaScript and Java EE - Matthias Wessendorf
HTML alchemy: the secrets of mixing JavaScript and Java EE - Matthias WessendorfHTML alchemy: the secrets of mixing JavaScript and Java EE - Matthias Wessendorf
HTML alchemy: the secrets of mixing JavaScript and Java EE - Matthias Wessendorf
 
Best of Microsoft Dev Camp 2015
Best of Microsoft Dev Camp 2015Best of Microsoft Dev Camp 2015
Best of Microsoft Dev Camp 2015
 
Learning ASP.NET 5 and MVC 6
Learning ASP.NET 5 and MVC 6Learning ASP.NET 5 and MVC 6
Learning ASP.NET 5 and MVC 6
 
Integrating React.js Into a PHP Application: Dutch PHP 2019
Integrating React.js Into a PHP Application: Dutch PHP 2019Integrating React.js Into a PHP Application: Dutch PHP 2019
Integrating React.js Into a PHP Application: Dutch PHP 2019
 
WebLogic im neuen Gewand
WebLogic im neuen GewandWebLogic im neuen Gewand
WebLogic im neuen Gewand
 
Building real world cloud apps with azure
Building real world cloud apps with azureBuilding real world cloud apps with azure
Building real world cloud apps with azure
 
Docker presentation
Docker presentationDocker presentation
Docker presentation
 
jdays 2015
jdays 2015jdays 2015
jdays 2015
 
VueJS Best Practices
VueJS Best PracticesVueJS Best Practices
VueJS Best Practices
 
SharePoint Development with the SharePoint Framework
SharePoint Development with the SharePoint FrameworkSharePoint Development with the SharePoint Framework
SharePoint Development with the SharePoint Framework
 
vRanger feature overview august 2012 - dell-maxwell
vRanger feature overview   august 2012 - dell-maxwellvRanger feature overview   august 2012 - dell-maxwell
vRanger feature overview august 2012 - dell-maxwell
 
HTML5 Comprehensive Guide
HTML5 Comprehensive GuideHTML5 Comprehensive Guide
HTML5 Comprehensive Guide
 
Prudhvi
PrudhviPrudhvi
Prudhvi
 
Prudhvi
PrudhviPrudhvi
Prudhvi
 
Prudhvi
PrudhviPrudhvi
Prudhvi
 
Prudhvi
PrudhviPrudhvi
Prudhvi
 
DevNexus 2017 - Building and Deploying 12 Factor Apps in Scala, Java, Ruby, a...
DevNexus 2017 - Building and Deploying 12 Factor Apps in Scala, Java, Ruby, a...DevNexus 2017 - Building and Deploying 12 Factor Apps in Scala, Java, Ruby, a...
DevNexus 2017 - Building and Deploying 12 Factor Apps in Scala, Java, Ruby, a...
 
WebLogic Developer Experience and Java EE 6
WebLogic Developer Experience and Java EE 6WebLogic Developer Experience and Java EE 6
WebLogic Developer Experience and Java EE 6
 
B1 roadmap to cloud platform with oracle web logic server-oracle coherence ...
B1   roadmap to cloud platform with oracle web logic server-oracle coherence ...B1   roadmap to cloud platform with oracle web logic server-oracle coherence ...
B1 roadmap to cloud platform with oracle web logic server-oracle coherence ...
 

Recently uploaded

How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...shyamraj55
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Servicegiselly40
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024BookNet Canada
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersThousandEyes
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 

Recently uploaded (20)

How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
Automating Business Process via MuleSoft Composer | Bangalore MuleSoft Meetup...
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
CNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of ServiceCNv6 Instructor Chapter 6 Quality of Service
CNv6 Instructor Chapter 6 Quality of Service
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
#StandardsGoals for 2024: What’s new for BISAC - Tech Forum 2024
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for PartnersEnhancing Worker Digital Experience: A Hands-on Workshop for Partners
Enhancing Worker Digital Experience: A Hands-on Workshop for Partners
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 

Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer

  • 1. Architecture, Design and Web Informations Systems Engineering Group DEPLOYING STATEFUL WEB COMPONENTS ON MULTIPLE DEVICES WITH LIQUID.JS FOR POLYMER Andrea Gallidabino Cesare Pautasso 1
  • 2. Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer 2 # Devices # Users
  • 3. Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer 2 # Devices # Users
  • 4. Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer 2 # Devices # Users
  • 5. Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer 2 # Devices # Users
  • 6. Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer 2 # Devices # Users
  • 7. Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer 3 SEQUENTIAL SCREENING
  • 8. Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer 3 SEQUENTIAL SCREENING
  • 9. Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer 3 SEQUENTIAL SCREENING
  • 10. Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer 3 SEQUENTIAL SCREENING
  • 11. Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer 3 SEQUENTIAL SCREENING
  • 12. Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer 3 SEQUENTIAL SCREENING
  • 14. Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer 5 SIMULTANEOUS SCREENING
  • 15. Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer 5 SIMULTANEOUS SCREENING
  • 16. Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer 5 SIMULTANEOUS SCREENING
  • 17. Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer 5 SIMULTANEOUS SCREENING
  • 18. Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer 5 SIMULTANEOUS SCREENING
  • 19. Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer 5 SIMULTANEOUS SCREENING
  • 20. Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer 6 COLLABORATIVE SCENARIO
  • 21. Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer 6 COLLABORATIVE SCENARIO
  • 22. Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer 6 COLLABORATIVE SCENARIO
  • 23. Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer 6 COLLABORATIVE SCENARIO
  • 24. Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer 6 COLLABORATIVE SCENARIO
  • 25. Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer 6 COLLABORATIVE SCENARIO SYNC
  • 26. 7
  • 27. Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer 8 MULTI-DEVICE SOFTWARE Adapts to a set of heterogeneous devices Dynamic Migration (sequential scenarios) State Synchronisation (collaborative scenarios)
  • 28. Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer 9 METAPHOR
  • 29. Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer 9 METAPHOR
  • 30. Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer 9 METAPHOR
  • 31. Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer 9 METAPHOR
  • 32. Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer 9 METAPHOR
  • 33. Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer 9 METAPHOR
  • 34. Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer 9 METAPHOR
  • 35. Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer 10 LIQUID APPLICATIONS
  • 36. Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer 10 LIQUID APPLICATIONS Roaming from a device to another one
  • 37. Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer 10 LIQUID APPLICATIONS Roaming from a device to another one following user attention
  • 38. Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer 11 LIQUID.JS FOR POLYMER
  • 39. Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer 12 COMPONENT-BASED
  • 40. Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer 12 COMPONENT-BASED
  • 41. Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer 12 COMPONENT-BASED DATA UI LOGIC DATA UI LOGIC
  • 42. Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer 12 COMPONENT-BASED WebComponents Standard DATA UI LOGIC DATA UI LOGIC
  • 43. Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer 12 COMPONENT-BASED WebComponents Standard Polymer Framework DATA UI LOGIC DATA UI LOGIC
  • 44. Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer 12 COMPONENT-BASED WebComponents Standard Polymer Framework Fine-grained decomposition DATA UI LOGIC DATA UI LOGIC
  • 45. Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer 13 COMPONENT API Device 1 Device 2
  • 46. Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer 13 COMPONENT API Device 1 Device 2 Create(component_Type, device)
  • 47. Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer 13 COMPONENT API Device 1 Device 2 Create(component_Type, device)
  • 48. Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer 13 COMPONENT API Device 1 Device 2 Create(component_Type, device) Delete(component)
  • 49. Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer 13 COMPONENT API Device 1 Device 2 Create(component_Type, device) Delete(component)
  • 50. Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer 13 COMPONENT API Device 1 Device 2 Create(component_Type, device) Delete(component) Move(component, device)
  • 51. Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer 13 COMPONENT API Device 1 Device 2 Create(component_Type, device) Delete(component) Move(component, device)
  • 52. Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer 13 COMPONENT API Device 1 Device 2 Create(component_Type, device) Delete(component) Move(component, device)
  • 53. Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer 14 SEQUENTIAL SCREENING
  • 54. Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer 15 COMPONENT API Device 1 Device 2 Create(component_Type, device) Delete(component) Move(component, device)
  • 55. Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer 15 COMPONENT API Device 1 Device 2 Create(component_Type, device) Delete(component) Move(component, device) Fork(component, device)
  • 56. Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer 15 COMPONENT API Device 1 Device 2 Create(component_Type, device) Delete(component) Move(component, device) Fork(component, device)
  • 57. Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer 15 COMPONENT API Device 1 Device 2 Create(component_Type, device) Delete(component) Move(component, device) Fork(component, device) Pair(component_1, component_2)
  • 58. Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer SYNC 15 COMPONENT API Device 1 Device 2 Create(component_Type, device) Delete(component) Move(component, device) Fork(component, device) Pair(component_1, component_2)
  • 59. Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer SYNC 15 COMPONENT API Device 1 Device 2 Create(component_Type, device) Delete(component) Move(component, device) Fork(component, device) Pair(component_1, component_2) Clone(component, device)
  • 60. Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer SYNC 15 COMPONENT API Device 1 Device 2 Create(component_Type, device) Delete(component) Move(component, device) Fork(component, device) Pair(component_1, component_2) Clone(component, device) Unpair(component_1, component_2)
  • 61. Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer 15 COMPONENT API Device 1 Device 2 Create(component_Type, device) Delete(component) Move(component, device) Fork(component, device) Pair(component_1, component_2) Clone(component, device) Unpair(component_1, component_2)
  • 62. Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer 16 SIMULTANEOUS SCREENING
  • 63. Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer 17 COLLABORATIVE SCENARIO SYNC
  • 64. Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer 18 STATEFUL COMPONENTS
  • 65. Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer 18 STATEFUL COMPONENTS
  • 66. Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer 18 STATEFUL COMPONENTS
  • 67. Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer 18 STATEFUL COMPONENTS Var 1 Var 2 Var 3 Var 4 Var 5 Component Component
  • 68. Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer 19 VARIABLE API
  • 69. Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer 19 VARIABLE API Var 1 Var 2 Component Var 3
  • 70. Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer 19 VARIABLE API Var 1 Var 2 Component Liquid Behavior Var 3
  • 71. Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer 19 VARIABLE API Var 1 Var 2 Liquid Behavior Var 3 Liquid Component
  • 72. Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer 19 VARIABLE API Register (variable) Var 1 Var 2 Liquid Behavior Var 3 Liquid Component
  • 73. Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer 19 VARIABLE API Register (variable) Var 1 Var 2 Liquid Behavior Var 3 Liquid Component Var 1
  • 74. Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer 19 VARIABLE API Register (variable) Pair (var_1, var_2) Var 1 Var 2 Liquid Behavior Var 3 Liquid Component Var 1
  • 75. Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer 19 VARIABLE API Register (variable) Pair (var_1, var_2) Var 1 Var 2 Liquid Behavior Var 3 Liquid Component Var 1 Liquid Component Liquid Behavior Var 4 Var 5
  • 76. Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer 19 VARIABLE API Register (variable) Pair (var_1, var_2) Var 1 Var 2 Liquid Behavior Var 3 Liquid Component Var 1 Liquid Component Liquid Behavior Var 4 Var 5 SYNC
  • 77. Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer 20 VARIABLE POLICIES 20
  • 78. Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer 20 VARIABLE POLICIES Sharing 20
  • 79. Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer 20 VARIABLE POLICIES Sharing Component Scope 20
  • 80. Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer 20 VARIABLE POLICIES Sharing Component Scope Device Deployment 20
  • 81. Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer 20 VARIABLE POLICIES Sharing Component Scope Device Deployment Persistence 20
  • 82. Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer 21 SHARING POLICY
  • 83. Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer 21 SHARING POLICY Liquid Component 1 2 3 Liquid Component 1 2 3 Liquid Component 1 2 3
  • 84. Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer 21 SHARING POLICY Liquid Component 1 2 3 Liquid Component 1 2 3 Liquid Component 1 2 3 Cloned
  • 85. Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer 21 SHARING POLICY Shared Liquid Component 1 2 3 Liquid Component 1 2 3 Liquid Component 1 2 3 1 2 3 Cloned
  • 86. Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer 21 SHARING POLICY Shared Liquid Component 1 2 3 Liquid Component 1 2 3 Liquid Component 1 2 3 1 2 3 Cloned
  • 87. Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer 21 SHARING POLICY Shared Local Liquid Component 1 2 3 Liquid Component 1 2 3 Liquid Component 1 2 3 1 2 3 Cloned
  • 88. Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer 21 SHARING POLICY Shared Local Liquid Component 1 2 3 Liquid Component 1 2 3 Liquid Component 1 2 3 1 2 3 Cloned
  • 89. Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer 21 SHARING POLICY Shared Local Liquid Component 1 2 3 Liquid Component 1 2 3 Liquid Component 1 2 3 1 2 3 Cloned
  • 90. Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer 21 SHARING POLICY Shared Local Global Liquid Component 1 2 3 Liquid Component 1 2 3 Liquid Component 1 2 3 1 2 3 Cloned
  • 91. Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer 21 SHARING POLICY Shared Local Global Liquid Component 1 2 3 Liquid Component 1 2 3 Liquid Component 1 2 3 1 2 3 Cloned
  • 92. Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer 21 SHARING POLICY Shared Local Global Liquid Component 1 2 3 Liquid Component 1 2 3 Liquid Component 1 2 3 1 2 3 Cloned
  • 93. Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer 22 COMPONENT SCOPE
  • 94. Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer 22 COMPONENT SCOPE Liquid Component 1 1 2 3 Liquid Component 1 1 2 3
  • 95. Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer 22 COMPONENT SCOPE Liquid Component 1 1 2 3 Liquid Component 2 4 5 Liquid Component 1 1 2 3
  • 96. Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer 22 COMPONENT SCOPE Intra-component Liquid Component 1 1 2 3 Liquid Component 2 4 5 Liquid Component 1 1 2 3
  • 97. Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer 22 COMPONENT SCOPE Intra-component Liquid Component 1 1 2 3 Liquid Component 2 4 5 Liquid Component 1 1 2 3
  • 98. Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer 22 COMPONENT SCOPE Intra-component Liquid Component 1 1 2 3 Liquid Component 2 4 5 Liquid Component 1 1 2 3
  • 99. Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer 22 COMPONENT SCOPE Intra-component Inter-component Liquid Component 1 1 2 3 Liquid Component 2 4 5 Liquid Component 1 1 2 3
  • 100. Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer 22 COMPONENT SCOPE Intra-component Inter-component Liquid Component 1 1 2 3 Liquid Component 2 4 5 Liquid Component 1 1 2 3
  • 101. Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer 23 DEVICE DEPLOYMENT
  • 102. Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer 23 DEVICE DEPLOYMENT LC1 1 2 LC2 3 54 LC3
  • 103. Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer 23 DEVICE DEPLOYMENT One device LC1 1 2 LC2 3 54 LC3
  • 104. Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer 23 DEVICE DEPLOYMENT One device LC1 1 2 LC2 3 54 LC3
  • 105. Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer 23 DEVICE DEPLOYMENT One device LC1 1 2 LC2 3 54 LC3
  • 106. Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer 23 DEVICE DEPLOYMENT One device Many devices LC1 1 2 LC2 3 54 LC3
  • 107. Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer 23 DEVICE DEPLOYMENT One device Many devices LC1 1 2 LC2 3 54 LC3
  • 108. Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer 24 PERSISTENCE POLICY
  • 109. Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer 24 PERSISTENCE POLICY Variable Value ‘Default’ Liquid Component
  • 110. Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer 24 PERSISTENCE POLICY Volatile Variable Value ‘Default’ Liquid Component
  • 111. Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer 24 PERSISTENCE POLICY Volatile Variable Value ‘Changed’ Liquid Component
  • 112. Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer 24 PERSISTENCE POLICY Volatile
  • 113. Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer 24 PERSISTENCE POLICY Volatile Variable Value ‘Default’ Liquid Component
  • 114. Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer 24 PERSISTENCE POLICY Volatile SessionVariable Value ‘Default’ Liquid Component
  • 115. Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer 24 PERSISTENCE POLICY Volatile SessionVariable Value ‘Changed’ Liquid Component
  • 116. Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer 24 PERSISTENCE POLICY Volatile Session
  • 117. Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer 24 PERSISTENCE POLICY Volatile SessionVariable Value ‘Changed’ Liquid Component
  • 118. Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer 24 PERSISTENCE POLICY Volatile Session
  • 119. Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer 24 PERSISTENCE POLICY Volatile SessionVariable Value ‘Default’ Liquid Component
  • 120. Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer 24 PERSISTENCE POLICY Volatile Session Persistent Variable Value ‘Default’ Liquid Component
  • 121. Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer 24 PERSISTENCE POLICY Volatile Session Persistent Liquid Component Variable Value ‘Changed’
  • 122. Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer 24 PERSISTENCE POLICY Volatile Session Persistent
  • 123. Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer 24 PERSISTENCE POLICY Volatile Session Persistent Variable Value ‘Changed’ Liquid Component
  • 124. Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer 25 DECISION
  • 125. Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer 25 DECISION Persistence Sharing Scope Deployment
  • 126. Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer 25 DECISION Persistence Sharing Intra-Component Inter-Component 1 Device 1 DeviceMany Many Global Global Global Shared Shared Shared Local Local Local Persistent Session Volatile Scope Deployment
  • 127. Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer 25 DECISION Persistence Sharing Intra-Component Inter-Component 1 Device 1 DeviceMany Many Global Global Global Shared Shared Shared Local Local Local Persistent Session Volatile Browser Memory Browser Memory Browser Memory Browser Memory Browser Memory Browser Memory Browser Memory Browser Memory Browser Memory Scope Deployment
  • 128. Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer 25 DECISION Persistence Sharing Intra-Component Inter-Component 1 Device 1 DeviceMany Many Global Global Global Shared Shared Shared Local Local Local Persistent Session Volatile Browser Memory Browser Memory Browser Memory Browser Memory Browser Memory Browser Memory Browser Memory Browser Memory Browser Memory Session Storage Session Storage Session Storage Session Storage Session Storage Server Server Server Server Scope Deployment
  • 129. Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer 25 DECISION Persistence Sharing Intra-Component Inter-Component 1 Device 1 DeviceMany Many Global Global Global Shared Shared Shared Local Local Local Persistent Session Volatile Browser Memory Browser Memory Browser Memory Browser Memory Browser Memory Browser Memory Browser Memory Browser Memory Browser Memory Session Storage Session Storage Session Storage Session Storage Session Storage Local Storage Local Storage Local Storage Local Storage Local Storage Server Server Server Server Server Server Server Server Scope Deployment
  • 130. Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer 26 WHERE DO WE STORETHE STATE
  • 131. Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer 26 WHERE DO WE STORETHE STATE Device 1 Device 2 Liquid Component Liquid Behavior Liquid Component Liquid Behavior 1 2 3 1 2 3
  • 132. Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer 26 WHERE DO WE STORETHE STATE Device 1 Device 2 WebRTC Liquid Component Liquid Behavior Liquid Component Liquid Behavior 1 2 3 1 2 3
  • 133. Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer 26 WHERE DO WE STORETHE STATE Device 1 Device 2 Server WebRTC Liquid Component Liquid Behavior Liquid Component Liquid Behavior 1 2 3 1 2 3
  • 134. Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer 26 WHERE DO WE STORETHE STATE Device 1 Device 2 Server WebRTC WebSockets Liquid Component Liquid Behavior Liquid Component Liquid Behavior 1 2 3 1 2 3
  • 135. Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer 26 WHERE DO WE STORETHE STATE Device 1 Device 2 Server WebRTC WebSockets Liquid Component Liquid Behavior Liquid Component Liquid Behavior 1 1 2 3 1 2 3
  • 136. Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer 26 WHERE DO WE STORETHE STATE Device 1 Device 2 Server WebRTC WebSockets Liquid Component Liquid Behavior Liquid Component Liquid Behavior 1 1 2 3 1 2 3 Database
  • 137. Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer 26 WHERE DO WE STORETHE STATE Device 1 Device 2 Server WebRTC WebSockets Liquid Component Liquid Behavior Liquid Component Liquid Behavior 1 22 1 2 3 1 2 3 Database
  • 138. Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer 26 WHERE DO WE STORETHE STATE Device 1 Device 2 Server WebRTC WebSockets Liquid Component Liquid Behavior Liquid Component Liquid Behavior 1 22 1 2 3 1 2 3 Database Browser Memory Browser Memory
  • 139. Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer 26 WHERE DO WE STORETHE STATE Device 1 Device 2 Server WebRTC WebSockets Liquid Component Liquid Behavior Liquid Component Liquid Behavior 1 3 2 43 2 4 1 2 3 1 2 3 Database Browser Memory Browser Memory
  • 140. Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer 26 WHERE DO WE STORETHE STATE Device 1 Device 2 Server WebRTC WebSockets Liquid Component Liquid Behavior Liquid Component Liquid Behavior 1 3 2 43 2 4 1 2 3 1 2 3 Database Browser Memory Browser Memory Local Storage Local Storage
  • 141. Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer 26 WHERE DO WE STORETHE STATE Device 1 Device 2 Server WebRTC WebSockets Liquid Component Liquid Behavior Liquid Component Liquid Behavior 1 3 2 43 2 4 1 2 3 1 2 3 Database Browser Memory Browser Memory Local Storage Local Storage Session Storage Session Storage
  • 142. Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer 27 CONCLUSION
  • 143. Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer 27 CONCLUSION Solution for the three use case scenarios:
  • 144. Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer 27 CONCLUSION Solution for the three use case scenarios: sequential screening, simultaneous screening, collaborative
  • 145. Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer 27 CONCLUSION Solution for the three use case scenarios: sequential screening, simultaneous screening, collaborative Transparently synchronise component state
  • 146. Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer 27 CONCLUSION Solution for the three use case scenarios: sequential screening, simultaneous screening, collaborative Transparently synchronise component state Decentralised environment
  • 147. Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer 28 FUTURE WORK DATA UI LOGIC
  • 148. Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer 29 WWW’16 (Demo paper) A. Gallidabino, and C. Pautasso. The Liquid.js framework for migrating and cloning stateful Web components across multiple devices WICSA‘16 A.Gallidabino, C. Pautasso, T. Mikkonen, V. Ilvonen, K. Systä, J.-P. Voutilainen, and A. Taivalsaari. On the architecture of liquid software: Technology alternatives and design space ICWE’15 T. Mikkonen, K. Systä, and C. Pautasso Towards liquid web applications COMPSAC‘14 A. Taivalsaari, T. Mikkonen, and K. Systä Liquid Software Manifesto: The Era of Multiple Device Ownership and Its Implications for Software Architecture
  • 149. Context Liquid Software Liquid.js Framework Components Variables Storage Conclusions Deploying Stateful Web Components on Multiple Devices with Liquid.js for Polymer 1st International Workshop on Liquid Multi-Device Software for the Web ` http://icwe2016.inf.usi.ch/liquid