Implementing Collaborative Applications
860 likes | 997 Views
This presentation focuses on the implementation of collaborative applications within the context of computer science. It explores the fundamental trade-offs between automation and user flexibility, discussing the implications for programmers and end-users alike. Various architectural frameworks, including centralized and replicated systems, are examined alongside synchronization strategies. Key technologies such as WYSIWIS (What You See Is What I See) and interprocess communication are highlighted for their roles in facilitating effective collaboration. This presentation serves as an essential resource for students and professionals interested in collaborative software design.
Implementing Collaborative Applications
E N D
Presentation Transcript
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