Implementing Collaborative Applications - PowerPoint PPT Presentation

About This Presentation
Title:

Implementing Collaborative Applications

Description:

Grove Outline IBIS Arguments GroupDraw Drawing Notes Document Prep Document Sharing ... read access delete replication old data replication replication schedule ... – PowerPoint PPT presentation

Number of Views:23
Avg rating:3.0/5.0
Slides: 87
Provided by: jonatha149
Learn more at: http://www.cs.unc.edu
Category:

less

Transcript and Presenter's Notes

Title: Implementing Collaborative Applications


1
Implementing Collaborative Applications
Prasun Dewan
Department of Computer Science University of
North Carolina CB 3175 Sitterson Hall Chapel
Hill, NC 27599-3175 dewan_at_cs.unc.edu http/www.c
s.unc.edu/dewan
2
Infrastructures
Applications
Infrastructures
Applications
3
(No Transcript)
4
Automation vs Flexibility Tradeoff
Programmer
User
5
Favouring the Programmer
Programmer
User
6
Favouring the User
Programmer
User
7
Shared Window System
Application
Stefik 87
Tightly-Coupled Meetings
Easy to Understand
Application-Independent
Automatable
Window
Window
WYSIWIS
Coupling
Audio/Video
User 1
User 2
8
Centralized Architecture
XTV (88) VConf (87) Rapport (88) NetMeeting
X Client
Pseudo Server
Pseudo Server
X Server
X Server
User 1
User 2
9
Replicated Architecture
Rapport VConf
X Client
X Client
Pseudo Server
Pseudo Server
X Server
X Server
User 1
User 2
10
Synchronization in Replicated Architecture
X Client
X Client
Insert e,2
Insert d,1
Pseudo Server
Pseudo Server
X Server
X Server
User 1
User 2
11
Migrate Central Client
X Client
Pseudo Server
Pseudo Server
X Server
X Server
User 1
User 2
12
Migrate Central Client
Chung Dewan 96
X Client
Pseudo Server
Pseudo Server
X Server
X Server
User 1
User 2
13
Shared Window System
Application
- Scroll Wars
Tightly-Coupled Meetings
- Window Wars
Easy to Understand
- No Flexibility
Application-Independent
- Performance
Automatable
- Consistency
Window
Window
WYSIWIS
Coupling
Audio/Video
User 1
User 2
14
File System
File
lrwx
Read/Write
Process 1
Process 1
User 1
User 2
15
Relational DBMS
M
IDS
L
Fine-Grained Query Language
Database
Insert/Delete/Select
Process 1
Process 1
User 1
User 2
16
Replicated Disconnected Databases
Replica
Replica
source determines
read access
delete replication old data replication
replication schedule
IDS
M
IDS
M
destination determines
write access type replication record
replication ACL rep. rep. param. rep.
immediate rep.
Process 1
Process 1
User 2
User 1
17
Coda Connection Degree
Data
Server
send update cache
send update
get uncached
Client 1
Client 2
Cache
Cache
User 1
User 2
18
Interprocess Communication
Session Manager
register, get peers
Process 1
Process 1
Absolute Flexibility
- No Automation
User 1
User 2
19
ISIS Causal and Atomic Broadcast
create_group, join_group, leave_group
P2
P1
ISIS
ISIS
P3
ISIS
20
Multiple Views
Model
request
View
View
Window
Window
User
21
Multiple Threads in Rendezvous
Model
Multi Views
Prevent starvation
-Two-Phase Comm.
View
View
-Central Arch.
Window
Window
Host 1
Host 2
User 1
User 2
22
2-Phase Model-View Protocol
Figure originally appears in 22
23
Clock Optimized MVC
Figure originally appears in 22
24
Xeroxs Colab. Broadcast Methods
Model
Model
View
View
Window
Window
User 1
User 2
25
GroupKit Environment Replication
K1, V1
K1, V1
Environment
Active Environments
P
Q
Multicast Session-based Calls
S
Procedures
U
26
GroupKit Open Session Management
K1, V1
K1, V1
K2, V2
K2, V2
I
I
P
R
Q
updateEntrant
userReqNewConf
newUserApproved
Registrar
27
(No Transcript)
28
(No Transcript)
29
Suite Parameterized Generator
Active Variables
C Application
bool validateElem V1(int newVal)
void updateV1 (int newVal)
void updateElemV1 (int index, newVal)
Attributed Interaction Variables
transmit
edit v12
commit
validate
30
Text Editor
31
Text Editor
32
Multiuser Outline
33
Outline
34
Talk
35
Talk Program
36
Command Interpreter
37
Command Interpreter
38
Web
Wide-Area Naming and Sharing
HTTP Server
Form 1
High-level Local UI
Cgi scripts
-Async
-Jittery
Web Browsers
Rendered HTML Document
User 2
User 1
39
Implementation Taxonomy
40
Single-User Architecture
Model
View
Windows
PC
User 1
41
Layered Interaction with an Object
Abstraction
Interactor Absrtraction Representation
Syntactic Sugar
Interactor/Abstraction
  • John Smith
  • John Smith

Interactor/Abstraction
X
  • John Smith

Interactor
42
Single-User Architecture
Abstraction
Interactor
Interactor
Interactor
User 1
43
Generic Architecture
Abstraction
Semantics
Stem
Version
Version
Branch
Branch
Interactor
Hardware
Interactor
Hardware
User 1
User 2
44
Example Layers
Model
View
Windows
PC
User 1
User 2
45
Varying Replication Degree
Model
Team Workstation
View
Pure Centralized
Windows
PC
Degree 0
User 1
User 2
46
Varying Replication Degree
Model
Shared Window Systems
View
XTV
Rapport
NetMeeting
Centralized
Windows
Windows
Degree 1
PC
User 1
User 2
47
Varying Replication Degree
Model
View
Degree 2
Windows
PC
User 1
User 2
48
Varying Replication Degree
Model
Degree 3
Hybrid
Windows
PC
User 1
User 2
49
Varying Replication Degree
Replicated
Divergence Concurrency Distribution -
Duplication - Non-
Idempotent Operations
Windows
PC
User 1
User 2
50
Varying Concurrency Degree
Model
Windows
Serial
PC
Degree 0
User 1
User 2
51
Varying Concurrency Degree
Model
Semi-concurrent
Degree 1 lt R
Windows
PC
User 1
User 2
52
Varying Concurrency Degree
Model
Concurrent
Suite Rendezvous Weasel Clock
Degree Replication Degree
Fairness Concurrency Distribution -
Scheduling Overhead - Programming Overhead
Windows
PC
User 1
User 2
53
Varying Distribution Degree
Model
Windows
Single-Site
PC
Degree 0
User 1
User 2
54
Varying Distribution Degree
Model
Rendezvous
Semi-Distributed
Degree 1 lt Concurrency Degree
Windows
PC
User 1
User 2
55
Varying Distribution Degree
Distributed
Model
Degree Concurrency Degree
Suite Weasel Clock
Local Response Compact
Communication - Programming Overhead - Pointers
Windows
PC
User 1
User 2
56
Varying Collaboration Awareness
Model
Team Workstation
Windows
Hardware-support
PC
Degree 0
User 1
User 2
57
Varying Collaboration Awareness
Model
Shared Window Systems
XTV
Rapport
NetMeeting
Window-support
Windows
Degree 1
PC
User 1
User 2
58
Varying Collaboration Awareness
Model
Suite Weasel Clock
Sharing Flexibility - Interaction Flexibility
Windows
PC
User 1
User 2
59
Partitioned Support
Model
Separation of Concerns - Duplication -
Coordination
Windows
PC
User 1
User 2
60
Adding Collaboration Awareness
61
Colab. Transparent Delegate
62
Replication Granularity
Coarse Grained
XTV
Fine-Grained
Suite, DistView
63
Replica Naming
Efficient
Reusable
XTV
64
Peer-Peer Coupling
65
Peer-Peer Coupling
66
Peer-to-Peer Coupling
67
Display Consistency
68
Algorithm
69
Algorithm
t (Ii, pi, Ij, pj) if Pi gt Pj t
Ii(Ci, Pi1) elsif Pi lt Pj t Ii(Ci,
Pi) elsif Ci Cj t null
elseif pi gt pj t Ii(Ci, Pi)) else t
Ii(Ci, Pi1)
70
Inserting at Same Position
Site 3
Site 1
Site 2
O2 Insert (B, 1)
O3 Insert (C, 1)
O1 Insert (A, 1)
O2 Insert (B, 1)
O3 Insert (C, 1)
A
C
A
B
C
71
Tricky Case
Site 3
Site 1
Site 2
O3 Insert (C, 1)
O3 Insert (C, 1)
O1 Insert (A, 1)
O1 Insert (A, 1)
O1 Insert (A, 1)
C
A
C
A
B
C
72
Implementing Undo
Full Check Point
Check Point C1s Effects
C1
C1
Full Check Point
Check Point C2s Effects
C2
C2
Full Check Point
Partial Check Point
73
Implementing Undo
Full Check Point
Inverse(C1)
C1
C1
Partial Check Point
Inverse(C2)
C2
C2
Partial Check Point
Inverse Commands
C3
Hybrid Approach
74
Selective Undo
Ins 1, C
Del 1, C
Del 1, C
Ins 1, A
Ins 1, B
75
Multi-Layered Undo
76
History Command Object
History
77
Distributed Undo
5.0
5.0
6.0
6.0
5.0
5.0
5
6
5
78
Collaborative Undo
5.0
5.0
6.0
6.0
5
6
Requesting Object
Originating Object
79
Composable Support
Model
Collaboration Bus
Composable Logger
Separation of Concerns - Coordination
Windows
PC
User 1
User 2
80
Coupling Awareness
81
Collaboration Bus
82
(No Transcript)
83
(No Transcript)
84
(No Transcript)
85
(No Transcript)
86
(No Transcript)
Write a Comment
User Comments (0)
About PowerShow.com