1.89k likes | 1.9k Views
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
E N D
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
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
Definition Collaborative Application • Same output? • Symmetric? • N-User? I/O I/O Coupling User 2 User 1 Potentially Real-Time 790-63:Overview
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
Benefits: Towards Being There Face-to-Face Interaction Computer-Supported Interaction Network 790-63:Overview
Gesture Cam: Remote Surrogate 790-63:Overview
Benefits: Beyond Being There Face-to-Face Hollan & Stornetta ‘92 Interaction Computer-Supported Interaction Network 790-63:Overview
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
Combining Both Goals? • IM • Feel transported to a common abstract world • Can specify mood • Collaborative nanoManipulator 790-63:Overview
View controls manipulated concurrently Phantom controls associated with concurrency and access control View Divergence Magnified View 790-63:Overview
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
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
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
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
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
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
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
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
Generic Tasks • Social Interaction • Information Exchange • Presentation • Consulting • Comment/Discuss • Compose Artifact 790-63:Overview
Generic Tasks: Product Life Cycle • Design • Implementation • Debugging/Testing • Inspection/Review 790-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 790-63:Overview
Views of Collaboration Systems • Problems • Issues • Disciplines • Systems: Applications and Infrastructures 790-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? 790-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? 790-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? 790-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? 790-63:Overview
Views of Collaboration Systems • Problems • Issues • Disciplines • Systems: Applications and Infrastructures 790-63:Overview
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
Views of Collaboration Systems • Problems • Issues • Disciplines • Systems: Applications and Infrastructures 790-63:Overview
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
Groove Apps OneNote Spreadsheet Word Processor IM Microsoft Microsoft Google Google/Writely Everyone Applications: Products 790-63:Overview
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
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
Issue Application Discipline Infrastructure App. Area Task Multiple Views Coupling Cognoter WYSIWIS Interaction Database Transactions NetMeeting Software Engineering Design 790-63:Overview
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
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
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
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
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
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
Application-based • Undergrad Advising • filling a form. • Looking up requirements • Scheduling a meeting • Some initial work done by a 145 team 790-63:Overview
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
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
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
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
Example collaborative application 790-63:Overview
Example collaborative application 790-63:Overview
Example collaborative application 790-63:Overview
Example collaborative application 790-63:Overview
Example collaborative application 790-63:Overview