Collaboration Systems 11/9/2018 Collaboration Systems 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 11/9/2018 290-63:Overview
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 11/9/2018 290-63:Overview
Potentially Real-Time Definition Collaborative Application Same output? Symmetric? N-User? I/O I/O Coupling User 2 User 1 Potentially Real-Time 11/9/2018 290-63:Overview
Traditional Collaborative Applications File Mail Talk send User 2 receive User 1 hi hello User 2 User 1 save User 1 User 2 load 11/9/2018 290-63:Overview
Benefits: Towards Being There Face-to-Face Interaction Computer-Supported Interaction Network 11/9/2018 290-63:Overview
Gesture Cam: Remote Surrogate 11/9/2018 290-63:Overview
Benefits: Beyond Being There Face-to-Face Hollan & Stornetta ‘92 Interaction Computer-Supported Interaction Network 11/9/2018 290-63:Overview
Action Workflow Director Manager 2 Schedule Interview Status By Candidate Workflow Step 3 1 4 Manage Review Manager Director 7 10 Manager Technical Directors Submit Evaluation Form 5 6 Director Manager Declare Assessment 9 8 11/9/2018 290-63:Overview
Combining Both Goals? 11/9/2018 290-63:Overview
View controls manipulated concurrently Phantom controls associated with concurrency and access control View Divergence 11/9/2018 290-63:Overview
Collaboration vs. Virtual Environments Shared Whiteboard Nanomanipulator Remote VE Collaborative Applications VE Immersive VE Telepresence Colab. Nanomanipulator Asynchronous/ Face-to-face Collaboration 11/9/2018 290-63:Overview
Collaboration vs. Real-Time & Distributed Apps. Factoring Prime Numbers Audio/Video Conferencing Multi-Mouse Whiteboard Distributed Applications Real-Time Applications Collaborative Applications Shared Whiteboard Colab VE Lotus Notes Embedded Systems 11/9/2018 290-63:Overview
Collaboration vs. Mobile Apps. Disconnected Shared Editing with Syncing Disconnected Editing with Syncing Collaborative Applications Mobile Applications Connected Shared Interaction Connected Interaction 11/9/2018 290-63:Overview
Relationship with Object-Oriented and User Interface- Technology Interactive Applications Collaborative Applications O-O Applications Beans Model-View-Controller-Coupler, Jitter Manager, ... Collaborative Beans Model-View-Controller 11/9/2018 290-63:Overview
Traditional System Aspects Applications Existing Shared Screen Interoperability FC vs. CC Extensibility/Composability Applications Telepointer Jitter Performance/Resource Management Functionality/Abstraction Coupling System Support 11/9/2018 290-63:Overview
Views of Collaboration Systems Ensure actual needs met. Conceptual depth, avoid duplication. Build on existing knowledge. See integrated sets of features Problems Issues Disciplines Systems : Applications and Infrastructures 11/9/2018 290-63:Overview
Problems: Application Areas Business Management National Collaboratory Software Engineering Engineering/Design Writing Decision making, business processes, monitor state. Connected labs. Team development Just in time VR-based Distributed co-authoring. 11/9/2018 290-63:Overview
Problems: Application Areas Education Medicine Air Traffic Control Command and Control Games/Casual Interaction Any complex task! Distance presentation, remote lab., colab projects Distance, sharing, workflow Coordinate controllers Coordination Sharing of information/actions Is collaborative 11/9/2018 290-63:Overview
Generic Tasks Social Interaction Information Exchange Presentation Consulting Comment/Discuss Compose Artifact 11/9/2018 290-63:Overview
Generic Tasks: Product Life Cycle Design Implementation Debugging/Testing Inspection/Review 11/9/2018 290-63:Overview
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 11/9/2018 290-63:Overview
Views of Collaboration Systems Problems Issues Disciplines Systems: Applications and Infrastructures 11/9/2018 290-63:Overview
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? 11/9/2018 290-63:Overview
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? 11/9/2018 290-63:Overview
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? 11/9/2018 290-63:Overview
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? 11/9/2018 290-63:Overview
Views of Collaboration Systems Problems Issues Disciplines Systems: Applications and Infrastructures 11/9/2018 290-63:Overview
Computer Science Disciplines 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 11/9/2018 290-63:Overview
Views of Collaboration Systems Problems Issues Disciplines Systems: Applications and Infrastructures 11/9/2018 290-63:Overview
Systems: Applications 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) Bellcore (Leland) Xerox (Abel) U. Toronto (Buxton) U. Calgary (Greenberg) CMU (Neuwirth) Xerox (Curtis) Sweden (Fahlen)/ Nottingham (Benford) 11/9/2018 290-63:Overview
Systems: Infrastructures 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) Post Xerox Xerox Stanford Bell Labs UNC/ODU Bellcore Purdue Japan Queens U. Illinois ODU Rutgers 11/9/2018 290-63:Overview
Systems: Products VNC (Li, Stafford-Fraser, Hopper ’01) NetMeeting Groove Advanced Reality LiveMeeting (Pay by minute service model) Webex (service model) ATT Research Microsoft 11/9/2018 290-63:Overview
Database Transactions Multiple Views Coupling Issue Cognoter Application WYSIWIS Interaction Database Transactions Discipline Infrastructure App. Area Task NetMeeting Software Engineering Design 11/9/2018 290-63:Overview
Course Goals State-of-the-art Project Applications Infrastructure Shared Word, Browser Infrastructure Groove, Shared Objects Project Writing Integrate with 291 Programming Integrate with 243/RAship Presentation Research 11/9/2018 290-63:Overview
Projects Infrastructure-based Application-/usage- based 11/9/2018 290-63:Overview
Infrastructure-based Replication vs. centralization Existing system can change it dynamically. Hypothesis: Transition to centralized when conference gets less interactive and larger Dynamic policies for transitions Formal performance model 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 11/9/2018 290-63:Overview
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) 11/9/2018 290-63:Overview
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 11/9/2018 290-63:Overview
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. 11/9/2018 290-63:Overview
Application-based Qual scheduler TA/RA Matcher 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. 11/9/2018 290-63:Overview
11/9/2018 290-63:Overview
11/9/2018 290-63:Overview
11/9/2018 290-63:Overview
11/9/2018 290-63:Overview
11/9/2018 290-63:Overview