860 likes | 989 Views
Implementing Collaborative Applications. Prasun Dewan. Department of Computer Science University of North Carolina CB 3175 Sitterson Hall Chapel Hill, NC 27599-3175 dewan@cs.unc.edu http:/www.cs.unc.edu/~dewan. Infrastructures. Applications. Infrastructures. Applications.
E N D
Implementing Collaborative Applications Prasun Dewan Department of Computer Science University of North Carolina CB 3175 Sitterson Hall Chapel Hill, NC 27599-3175 dewan@cs.unc.edu http:/www.cs.unc.edu/~dewan CS 290-063
Infrastructures Applications Infrastructures Applications CS 290-063
Automation vs Flexibility Tradeoff Programmer User
Favouring the Programmer Programmer User
Favouring the User Programmer User
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 CS 290-063
Centralized Architecture XTV (‘88) VConf (‘87) Rapport (‘88) NetMeeting X Client Pseudo Server Pseudo Server X Server X Server User 1 User 2 CS 290-063
Replicated Architecture Rapport VConf X Client X Client Pseudo Server Pseudo Server X Server X Server User 1 User 2 CS 290-063
Synchronization in Replicated Architecture abc abc dabc aebc deabc daebc Insert d,1 Insert e,2 Insert d,1 Insert e,2 X Client X Client Insert e,2 Insert d,1 Pseudo Server Pseudo Server X Server X Server User 1 User 2 CS 290-063
Migrate Central Client X Client Pseudo Server Pseudo Server X Server X Server User 1 User 2 CS 290-063
Migrate Central Client Chung & Dewan ‘96 X Client Pseudo Server Pseudo Server X Server X Server User 1 User 2 CS 290-063
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 CS 290-063
Grove Outline IBIS Arguments GroupDraw Drawing Notes Document Prep Document - Large-Grained + Sharing + Persistence - Connected + Access, Conc. Control - Async File System lrwx File Read/Write Process 1 Process 1 User 1 User 2 CS 290-063
Author, Category, Status and Awareness Info Relational DBMS M IDS + Fine-Grained + Query Language L Database Insert/Delete/Select Process 1 Process 1 User 1 User 2 CS 290-063
DC -> C rep. schedule Replicated Disconnected Databases “Replica” “Replica” source determines read access delete replication old data replication replication schedule IDS M IDS M write access type replication record replication ACL rep. rep. param. rep. immediate rep. destination determines Process 1 Process 1 User 2 User 1 CS 290-063
SC SC DC -> SC send updates & cache WC SC WC trickle updates WC send updates DC -> SC Coda: Connection Degree Data Server send update & cache send update get uncached Cache Client 1 Client 2 Cache User 1 User 2 CS 290-063
Interprocess Communication Session Manager register, get peers Process 1 Process 1 + Absolute Flexibility - No Automation User 1 User 2 CS 290-063
cbcast_group t( m2) < t (m1) abcast_group t (m1) < t( m1’) t (m1’) < t (m1) m1 m1 m2 m1 m2 m1 m2 non-commuting operations m1 = Insert a, 2 m1’ = Insert b, 1 m1’ m1’ commuting operations m1 = color red m1’ = magnify ISIS: Causal and Atomic Broadcast create_group, join_group, leave_group P2 P1 ISIS ISIS P3 ISIS CS 290-063
Host 1 notify notify Multiple Views Model request View View Window Window User CS 290-063
Multiple threads Multiple Threads in Rendezvous +Multi Views Model Prevent starvation -Two-Phase Comm. View View -Central Arch. Window Window Host 1 Host 2 User 1 User 2 CS 290-063
2-Phase Model-View Protocol Figure originally appears in [22] CS 290-063
Clock: Optimized MVC Figure originally appears in [22] CS 290-063
Associates/Replicas Associates/Replicas Broadcast method Association bm lm lm lm lm lm Xerox’s Colab. Broadcast Methods Model Model View View Window Window User 1 User 2 CS 290-063
I K2, V2 K2, V2 I I T R all T others, usernum V GroupKit: Environment Replication K1, V1 K1, V1 Environment Active Environments P Q Multicast Session-based Calls S Procedures U CS 290-063
+Flexible -Collaboration Aware newUserArrived newUserArrived Session Manager Session Manager User 1 User 2 new new invite invite GroupKit: Open Session Management K1, V1 K1, V1 K2, V2 K2, V2 I I R P Q updateEntrant userReqNewConf newUserApproved Registrar CS 290-063
int[] v1 v1[2] v V1[2] update(v2, newVal) int v1 (widget = w1, valueCpld = true, viewCpld = false, sync = incr, access = “rw”) int v1 (widget = w2, valueCpld = true, viewCpld = true, sync = explicit, access = “r”) Dialogue Managers v1[2] User 2 User 1 Suite: Parameterized Generator Active Variables C Application bool validateElem V1(int newVal) void updateV1 (int[] newVal) void updateElemV1 (int index, newVal) Attributed Interaction Variables edit v1[2] transmit validate commit CS 290-063
Text Editor CS 290-063
Text Editor CS 290-063
Multiuser Outline CS 290-063
Outline CS 290-063
Talk CS 290-063
Talk Program CS 290-063
Command Interpreter CS 290-063
Command Interpreter CS 290-063
update get notify get Form 1 Display Form 1 Display edit form1 commit +Wide-Area Naming and Sharing Web HTTP Server Form 1 +High-level Local UI Cgi scripts -Async -Jittery Web Browsers Rendered HTML Document CS 290-063 User 2 User 1
X Client X Client X Client Pseudo Server Pseudo Server Pseudo Server Pseudo Server lrwx File Model X Server X Server X Server X Server View View User 1 User 2 User 1 User 2 Window Window Host 1 Host 2 Process 1 Process 1 User 1 User 2 User 1 User 2 Implementation Taxonomy CS 290-063
Toolkit Single-User Architecture Model View Windows PC User 1 CS 290-063
{“John Smith”, 2234.57} Layered Interaction with an Object Abstraction Interactor = Absrtraction Representation + Syntactic Sugar Interactor/Abstraction • John Smith • John Smith Interactor/Abstraction X • John Smith Interactor CS 290-063
Interactor Single-User Architecture Abstraction Interactor Interactor Interactor User 1 CS 290-063
Base Interactor Interactor Interactor Interactor Interactor Generic Architecture Abstraction Semantics Stem Version Version Branch Branch Interactor Hardware Interactor Hardware User 1 User 2 CS 290-063
Toolkit Toolkit Windows PC Example Layers Model View Windows PC User 1 User 2 CS 290-063
Toolkit PC Varying Replication Degree Model Team Workstation View Pure Centralized Windows Degree 0 PC User 1 User 2 CS 290-063
Toolkit Windows PC Varying Replication Degree Model Shared Window Systems View XTV Rapport NetMeeting “Centralized” Windows Windows Degree 1 PC User 1 User 2 CS 290-063
Toolkit Toolkit Windows PC Varying Replication Degree Model View Degree 2 Windows PC User 1 User 2 CS 290-063
View View Toolkit Toolkit Windows PC Varying Replication Degree Model Degree 3 Hybrid Windows PC User 1 User 2 CS 290-063
Model Model View View Toolkit Toolkit Windows PC Varying Replication Degree Replicated + Divergence + Concurrency + Distribution - Duplication - Non- Idempotent Operations Windows PC User 1 User 2 CS 290-063
View View Toolkit Toolkit Windows PC Varying Concurrency Degree Model Windows Serial Degree 0 PC User 1 User 2 CS 290-063