1 / 189

Systems Supporting Distributed Collaboration

Systems Supporting Distributed Collaboration. 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. Definition. Oxford: Work jointly esp at literary or artistic production

schapman
Télécharger la présentation

Systems Supporting Distributed Collaboration

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. Systems Supporting Distributed Collaboration 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 790-63:Overview

  2. Definition • Oxford: Work jointly esp at literary or artistic production • Malone: helps people work together more effectively • Lynch et al: makes users aware they are part of a group • Wells: software and hardware for shared interactive environment • Ellis: supports groups engaged in a common task and provides an interface to shared environment • Peter & Johnson-Lenz: computer-mediated culture, intentional group processes plus supporting software • Johansen: specialized computer aids for collaborative work groups • Winograd: state of mind 790-63:Overview

  3. Definition Collaborative Application • Same output? • Symmetric? • N-User? I/O I/O Coupling User 2 User 1 Potentially Real-Time 790-63:Overview

  4. send receive hi hello hi hello save load User 1 User 2 User 1 User 2 User 1 User 2 Traditional Collaborative Applications File Mail Talk 790-63:Overview

  5. Benefits: Towards Being There Face-to-Face Interaction Computer-Supported Interaction Network 790-63:Overview

  6. Gesture Cam: Remote Surrogate 790-63:Overview

  7. Benefits: Beyond Being There Face-to-Face Hollan & Stornetta ‘92 Interaction Computer-Supported Interaction Network 790-63:Overview

  8. Schedule Interview Manager Director 2 3 1 4 10 5 7 6 9 8 Technical Directors Manager Director Manager Declare Assessment Submit Evaluation Form Action Workflow Status By Candidate Workflow Step Manage Review Manager Director 790-63:Overview

  9. Combining Both Goals? • IM • Feel transported to a common abstract world • Can specify mood • Collaborative nanoManipulator 790-63:Overview

  10. View controls manipulated concurrently Phantom controls associated with concurrency and access control View Divergence Magnified View 790-63:Overview

  11. Shared Whiteboard Nanomanipulator Remote VE Collaborative Applications Immersive VE Asynchronous/ Face-to-face Collaboration Colab. Nanomanipulator Telepresence Collaboration vs. Virtual Environments VE 790-63:Overview

  12. Collaboration vs. Real-Time & Distributed Apps. Factoring Prime Numbers Audio/Video Conferencing Multi-Mouse Whiteboard Distributed Applications Real-Time Applications Lotus Notes Embedded Systems Shared Whiteboard Colab VE Collaborative Applications 790-63:Overview

  13. Collaboration vs. Mobile Apps. Disconnected Shared Editing with Syncing Disconnected Editing with Syncing Connected Shared Interaction Connected Interaction Collaborative Applications Mobile Applications 790-63:Overview

  14. Relationship with Object-Oriented and User Interface- Technology Collaborative Applications Beans Collaborative Beans Model-View-Controller Model-View-Controller-Coupler, Jitter Manager, ... Interactive Applications O-O Applications 790-63:Overview

  15. Existing Traditional System Aspects Applications Shared Screen FC vs. CC Interoperability Extensibility/Composability Applications Telepointer Jitter Performance/Resource Management Functionality/Abstraction Coupling System Support 790-63:Overview

  16. Problems Issues Disciplines Systems : Applications and Infrastructures Ensure actual needs met. Conceptual depth, avoid duplication. Build on existing knowledge. See integrated sets of features Views of Collaboration Systems 790-63:Overview

  17. Business Management National Collaboratory Software Engineering Engineering/Design Writing Decision making, business processes, monitor state. Connected labs. Team development, pair programming Just in time VR-based Distributed co-authoring. Problems: Application Areas 790-63:Overview

  18. Education Medicine Air Traffic Control Command and Control Games/Casual Interaction Any complex task! Distance presentation, remote lab., colab projects Remote consult, workflow Coordinate controllers Coordination Sharing of information/actions Is collaborative Problems: Application Areas 790-63:Overview

  19. Generic Tasks • Social Interaction • Information Exchange • Presentation • Consulting • Comment/Discuss • Compose Artifact 790-63:Overview

  20. Generic Tasks: Product Life Cycle • Design • Implementation • Debugging/Testing • Inspection/Review 790-63:Overview

  21. Specific Experimental Tasks • Annotate/discuss research article/software specs/video • Present lecture to remote and local audience • Rank job candidates • Choose videos to rent, take on road trip • Get status report on action items and feedback from each participant • Choose name for new game • Search for shopping list online 790-63:Overview

  22. Views of Collaboration Systems • Problems • Issues • Disciplines • Systems: Applications and Infrastructures 790-63:Overview

  23. Issues: Semantics • Session Management: How do distributed users create, destroy, join, and leave collaborative sessions? • Single-User Interface: What are the application semantics if there is a single user in the session? • Coupling: what feedback does a user receive in response to the input of another user? • Access Control: How do we ensure that users do not execute unauthorized commands? • Concurrency Control: How do we ensure that concurrent users do not enter inconsistent commands? 790-63:Overview

  24. Issues: Semantics (Contd.) • Process Control: How do we ensure that users follow prescribed group processes? • Merging: How do we merge concurrent commands entered by different users? • Undo/Redo: What are the semantics of undo/redo in a collaborative session? • Awareness: How are users made aware of ``out of band'' activities of their collaborator? 790-63:Overview

  25. Issues: Implementation • Objects: What kind of objects are composed in a collaborative application? • Collaboration Awareness: Which of these objects are collaboration aware and how are these objects integrated with existing, collaboration-unaware objects? • Layers: How are these objects arranged in layers? • Concurrency: How is the application decomposed into concurrent threads? • Distribution: How are the application objects placed in different address spaces and hosts? 790-63:Overview

  26. Issues: Implementation (Contd.) • Replication/Migration: Which of these objects are centralized and which are replicated? Which of the centralized objects can migrate? • Display Consistency: How to ensure actions are executed in the same order on computers that share them? • Real-Time Support: What kind of services are provided to ensure real-time interaction with tolerable jitter and latency? 790-63:Overview

  27. Views of Collaboration Systems • Problems • Issues • Disciplines • Systems: Applications and Infrastructures 790-63:Overview

  28. Operating Systems Database Management Systems Programming Languages User Interface Systems Software Engineering Distributed file, memory, scheduling, “OS-based” IM Concurrency Control, Recovery Shared object constructs I/O distribution of window systems, toolkits Application area, process control, patterns Computer Science Disciplines 790-63:Overview

  29. Views of Collaboration Systems • Problems • Issues • Disciplines • Systems: Applications and Infrastructures 790-63:Overview

  30. RTCALendering Cognoter whiteboard CES (Transaction-based Collaborative Editing System) Grove Outline Editor Information Lens Typed Email Coordinator Speech-Act Workflow Quilt Editor Annotations IBIS Discussions Video Walls Hydra GroupDraw optimistic CC PREP Diff-based Editor MUDs (Multiuser Dungeons) DIVE (Distributed Interactive Virtual Environment)/ MASSIVE MIT (Sarin & Greif) Xerox (Stefik et al) MIT (Liskov) MCC (Ellis) MIT (Malone ) Stanford (Winograd ‘88) Bellcore (Leland) MCC (Ellis) Xerox (Abel) U. Toronto (Buxton) U. Calgary (Greenberg) CMU (Neuwirth) Xerox (Curtis) Sweden (Fahlen)/ Nottingham (Benford) Systems: Applications 790-63:Overview

  31. Groove Apps OneNote Spreadsheet Word Processor IM Microsoft Microsoft Google Google/Writely Everyone Applications: Products 790-63:Overview

  32. NLS (Engelbart ’68) Colab (Stefik ’85) VConf (Lantz ‘86) Rapport (Ahuja ’89) XTV (Abdel-Wahab, Jeffay & Feit ‘91) Rendezvous (Patterson ‘90) Suite (Dewan & Choudhary ‘92) TeamWorkstation (Ishii ’92) Weasel (Graham ’95) Habanero (Chabert et al ‘ 98) JCE (Abdel-Wahab ‘99) Disciple (Marsic ‘01) Sync (Munson & Dewan ’96) App-Sharer (Chung, Junuzovic, Dewan ’06) Post Xerox Xerox Stanford Bell Labs UNC/ODU Bellcore Purdue Japan Queens U. Illinois ODU Rutgers UNC Systems: Infrastructures 790-63:Overview

  33. VNC (Li, Stafford-Fraser, Hopper ’01) NetMeeting (MSFT) Groove (MSFT) Advanced Reality LiveMeeting -Pay by minute service model (MSFT) Webex (service model) MeetingPlace (Cisco) CollaborateNow (IBM) Infrastructure: Products 790-63:Overview

  34. Issue Application Discipline Infrastructure App. Area Task Multiple Views Coupling Cognoter WYSIWIS Interaction Database Transactions NetMeeting Software Engineering Design 790-63:Overview

  35. Course Goals • Study State-of-the-art • Applications • Shared Word, Browser • Infrastructure • Groove, Shared Objects • Project • Survey • Writing • Integrate with Survey Paper • Programming • Integrate with 243/Program Product • Presentation • Research • Assignments • Using applications and infrastructures collaboratively 790-63:Overview

  36. Projects • Infrastructure-based • Application-/usage- based • Something usable as this area is • Practical (probably) • Unexplored • Build on top of existing infrastructure • Sync • Asynchronous and synchronous • Application Sharer • Synchronous existing and new applications 790-63:Overview

  37. Application-based • Make familiar apps collaborative • Microsoft Office • Open Office • Basics implemented • Make it really work, efficiently • Eclipse • Jazz provides some asynchronous support • Sangam some synchronous support • Can provide semi-synchronous support • Loosely coupled pair programming • Probably remain a prototype 790-63:Overview

  38. Application-based • Custom application for data shared through Wikis/Google spreadsheet • Shared shopping list • Recreation activities • Organizing pot-luck parties (custom Evite) • Departmental activities • Organizing study groups • Scheduling departmental picnics • Signup sheet for demos in 242 • Creating groups in 790-063 790-63:Overview

  39. Application-based • Teaching and TA Award • Currently nominations requested and then some magic happens. • Allow entry of data and voting and linking of teaching evaluations and other data. • Departmental calendar • Every week mail sent to coordinator by a certain time. • Calendar emailed and updated by a central person. • Make this distributed and allow people to enter data way in advance. • Same with Systems Tea 790-63:Overview

  40. Application-based • Qual scheduler • Automatic did not work. • Semi-automatic, collaborative. • Students enter courses and time constraints • Faculty members enter expertise and time constraints • Schedulers form committees and assign times based. • System checks qual constraints met. • TA/RA Matcher • Students and faculty enter preferences. • Administrators can see all data. • Students and faculty can see filtered data. • E.g. one on one matches. 790-63:Overview

  41. Application-based • Undergrad Advising • filling a form. • Looking up requirements • Scheduling a meeting • Some initial work done by a 145 team 790-63:Overview

  42. Infrastructure-based • Shared layer • VNC and NetMeeting share different user-interface layers • Benefits of different sharing different layers. • Can we dynamically change shared layer? • Dynamic policies, performance model • Work on application sharer 790-63:Overview

  43. Infrastructure-based • Scheduling • Feedback vs. Feedthrough processing • Give sufficient time to both using proportional scheduling. • Energy-aware collaboration • Energy dissipation a function of amount and rate of information communication • Can study and adjust the coupling (send summary information in batches) 790-63:Overview

  44. Infrastructure-based • Locking • Many locking schemes • Lock whole spreadsheet vs. individual cell. • Provide one comprehensive mechanism. • Partly designed but not implemented. • Lock-free Consistency management • Locking ensures displays are consistent – no race conditions. • Consistency without locks – operation transformation • Called optimistic CC – misnomer • For the mathematically inclined 790-63:Overview

  45. Infrastructure-based • Context-specific presence • Can synchronously monitor idle time. • Can synchronously monitor every input in shared apps. • Synchronously summarize application-specific information • E.g. whose mail are you reading? • Access control • Needed because we collaborate • But it is a pain • Let us collaborate on setting access control. • An implementation exists • User studies 790-63:Overview

  46. Example collaborative application 790-63:Overview

  47. Example collaborative application 790-63:Overview

  48. Example collaborative application 790-63:Overview

  49. Example collaborative application 790-63:Overview

  50. Example collaborative application 790-63:Overview

More Related