Download
implementing collaborative applications n.
Skip this Video
Loading SlideShow in 5 Seconds..
Implementing Collaborative Applications PowerPoint Presentation
Download Presentation
Implementing Collaborative Applications

Implementing Collaborative Applications

98 Views Download Presentation
Download Presentation

Implementing Collaborative Applications

- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

  1. 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

  2. Infrastructures Applications Infrastructures Applications CS 290-063

  3. CS 290-063

  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 CS 290-063

  8. 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

  9. Replicated Architecture Rapport VConf X Client X Client Pseudo Server Pseudo Server X Server X Server User 1 User 2 CS 290-063

  10. 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

  11. Migrate Central Client X Client Pseudo Server Pseudo Server X Server X Server User 1 User 2 CS 290-063

  12. Migrate Central Client Chung & Dewan ‘96 X Client Pseudo Server Pseudo Server X Server X Server User 1 User 2 CS 290-063

  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 CS 290-063

  14. 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

  15. 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

  16. 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

  17. 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

  18. Interprocess Communication Session Manager register, get peers Process 1 Process 1 + Absolute Flexibility - No Automation User 1 User 2 CS 290-063

  19. 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

  20. Host 1 notify notify Multiple Views Model request View View Window Window User CS 290-063

  21. 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

  22. 2-Phase Model-View Protocol Figure originally appears in [22] CS 290-063

  23. Clock: Optimized MVC Figure originally appears in [22] CS 290-063

  24. 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

  25. 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

  26. +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

  27. CS 290-063

  28. CS 290-063

  29. 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

  30. Text Editor CS 290-063

  31. Text Editor CS 290-063

  32. Multiuser Outline CS 290-063

  33. Outline CS 290-063

  34. Talk CS 290-063

  35. Talk Program CS 290-063

  36. Command Interpreter CS 290-063

  37. Command Interpreter CS 290-063

  38. 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

  39. 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

  40. Toolkit Single-User Architecture Model View Windows PC User 1 CS 290-063

  41. {“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

  42. Interactor Single-User Architecture Abstraction Interactor Interactor Interactor User 1 CS 290-063

  43. 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

  44. Toolkit Toolkit Windows PC Example Layers Model View Windows PC User 1 User 2 CS 290-063

  45. Toolkit PC Varying Replication Degree Model Team Workstation View Pure Centralized Windows Degree 0 PC User 1 User 2 CS 290-063

  46. 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

  47. Toolkit Toolkit Windows PC Varying Replication Degree Model View Degree 2 Windows PC User 1 User 2 CS 290-063

  48. View View Toolkit Toolkit Windows PC Varying Replication Degree Model Degree 3 Hybrid Windows PC User 1 User 2 CS 290-063

  49. 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

  50. View View Toolkit Toolkit Windows PC Varying Concurrency Degree Model Windows Serial Degree 0 PC User 1 User 2 CS 290-063