1 / 86

Implementing Collaborative Applications

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.

irisa
Télécharger la présentation

Implementing Collaborative Applications

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

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

More Related