660 likes | 849 Views
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. Issues. Advanced? Writing Integrated with 291 Programming Careful Vs Bulk
E N D
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 290-63:Overview
Issues • Advanced? • Writing • Integrated with 291 • Programming • Careful Vs Bulk • Combined with 243 • Presentation • Pick a Project Quickly • Nature of Area • Look at Web Page 290-63:Overview
Overview • Why Collaborative Applications? • Related Areas • Nature of System Support • Concrete Examples • Lessons 290-63:Overview
Benefits: Towards Being There Face-to-Face Interaction Computer-Supported Interaction Network 290-63:Overview
Gesture Cam: Remote Surrogate 290-63:Overview
Benefits: Beyond Being There Face-to-Face Hollan & Stornetta ‘92 Interaction Computer-Supported Interaction Network 290-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 290-63:Overview
Dual Collaboration Goals • Towards Being There • Beyond Being There 290-63:Overview
Shared Whiteboard Nanomanipulator Remote VE Collaborative Applications Immersive VE Asynchronous/ Face-to-face Collaboration Colab. Nanomanipulator Telepresence Collaboration Vs Virtual Environments VE 290-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 290-63:Overview
Collaboration Vs Mobile Apps. Disconnected Shared Editing with Syncing Disconnected Editing with Syncing Shared Notebook Electronic Notebook Collaborative Applications Mobile Applications 290-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 290-63:Overview
Existing User Interface System Support Applications Windows Apps Competing Systems Interoperability Extensibility/Composability Applications Distribution Performance/Resource Management Functionality Coupling System Support 290-63:Overview
System Support Applications Existing Interoperability Extensibility/Composability Applications Performance/Resource Management Functionality System Support X, Windows, Java Apps. 290-63:Overview
Shared Window System Application + Tightly-Coupled Meetings + Easy to Understand + Application-Independent + Automatable Window Window WYSIWIS Coupling Audio/Video User 1 User 2 290-63:Overview
Centralized Architecture XTV (‘88) VConf (‘87) Rapport (‘88) NetMeeting X Client Pseudo Server Pseudo Server X Server X Server User 1 User 2 290-63:Overview
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 290-63:Overview
System Support Applications Existing Interoperability Extensibility/Composability Applications Performance/Resource Management Functionality System Support X, Windows, Java Apps. 290-63:Overview
Existing System Support Applications Interoperability Extensibility/Composability Applications Performance/Resource Management Functionality System Support Beyond WYSIWIS 290-63:Overview
User Session Management Coupling Merging Undo/Redo Awareness CC/AC Flexible Model of Collaboration Application Window Version 1 Window Version 1 290-63:Overview User 1 User 2
Existing System Support Applications Interoperability Extensibility/Composability Applications Performance/Resource Management Functionality System Support Coupling, Merging, Diffing, Undo, User Interface, Security, Concurrency Control 290-63:Overview
Existing System Support Applications Interoperability Extensibility/Composability Applications Performance/Resource Management Functionality System Support Distributed Architecture, Jitter & Latency Control 290-63:Overview
XTV Centralized Architecture Pseudo Server Pseudo Server Pseudo Server Pseudo Server Laptop++ Laptop Handheld Handheld X Client X Server X Server X Server X Server User 1 User 2 User 3 User 4 290-63:Overview
Migration X Client Pseudo Server Pseudo Server Pseudo Server X Server X Server X Server User 2 User 3 User 4 Laptop Handheld Handheld 290-63:Overview
Migration X Client Pseudo Server Pseudo Server X Server X Server User 3 User 4 Handheld Handheld 290-63:Overview
Centralized -> Replicated X Client X Client Pseudo Server Pseudo Server X Server X Server User 3 User 4 Handheld Handheld 290-63:Overview
Replication -> Centralized X Client Pseudo Server Pseudo Server Pseudo Server Pseudo Server X Server X Server X Server X Server User 1 User 2 User 3 User 4 Laptop++ Laptop Handheld Handheld 290-63:Overview
Existing System Support Applications Interoperability Extensibility/Composability Applications Performance/Resource Management Functionality System Support Distributed Architecture, Jitter & Latency Control 290-63:Overview
Existing System Support Applications Interoperability Extensibility/Composability Applications Performance/Resource Management Functionality System Support 290-63:Overview
Monolithic System Pseudo Server Suite Shared Windows Merging Logging Coupling Replication User-Interface 290-63:Overview
Component-based System Pseudo Server Suite Shared Windows Merging Logging Coupling Replication User-Interface Logging 290-63:Overview
Composability • A logging service can dynamically compose with different instances of a client. • A client can dynamically compose with different instances of a server. Logging Service XTV 1 XTV 2 Logging Service XTV Logging Service 290-63:Overview
Genericity • A logger can compose with different loggables at different levels of abstraction. XTV Logging Service Suite 290-63:Overview
Generic API 290-63:Overview
Generic UI Protocol Interface to Logger (Translation) Ease of Programming X Client XTV X UI Protocol Specialized Logging Service Other Services X UI Protocol X Servers (a) XTV Implementing Latecomer Service X Client XTV X UI Protocol Generic Logging Service Other Services X UI Protocol X Servers (b) XTV Using Logger for Latecomer Service 290-63:Overview
Connection Bus Collaboration Bus Connection Facets Pseudo Server Suite Shared Windows Merging Logging Coupling Replication User-Interface 290-63:Overview
Proxy Support Model Out Model In 290-63:Overview
Existing System Support Applications Interoperability Extensibility/Composability Applications Performance/Resource Management Functionality System Support Generic Interfaces, Design Patterns, Connection Managers 290-63:Overview
Existing System Support Applications Interoperability Extensibility/Composability Applications Performance/Resource Management Functionality System Support Coupling, Concurrency Control, Merging, Access Control 290-63:Overview
Interoperation Inter-operation Our Organization’s Collaborative Spreadsheet Your Organization’s Collaborative Spreadsheet User 1 User 2 User 3 User 4
Lock Controller Spreadsheet Model WYSIWIS Coupler Floor Controller Spreadsheet Replica Spreadsheet Replica Spreadsheet View Spreadsheet View Interoperation Example Habanero Spreadsheet Custom Spreadsheet Flexible Coupler User 1 User 2 User 3 User 4
Spreadsheet Replica/View Dummy User Interoperating Coupling Dynamic Composition Local Semantics Preserved Spreadsheet Model WYSIWIS Coupler Flexible Coupler Spreadsheet Replica Spreadsheet Replica Spreadsheet View Spreadsheet View User 1 User 2 User 3 User 4
Existing System Support Applications Interoperability Extensibility/Composability Applications Performance/Resource Management Functionality System Support Coupling, Concurrency Control, Merging, Access Control 290-63:Overview
Existing System Support Applications Interoperability Extensibility/Composability Applications Performance/Resource Management Functionality System Support 290-63:Overview
Lessons • NetMeeting, Shared whiteboards, video-conferencing successful • Being there • Communication • Software Inspection Review • Control • Workflow • Beyond Being there Flexibility Needed 290-63:Overview
Mostly Asynchronous Mostly Synchronous Life Cycle • Requirements • Design • Programming • Debugging • Testing • Review • Maintenance Integration of Sync and Async Integration of Life Cycle Steps 290-63:Overview
Lessons • Flexibility • New area explored faster • Training needed • Exploratory Environment • How to see effects on other users • textual descriptions • animations • network simulations? 290-63:Overview
Lessons • Infrastructure • XTV • Suite • Rendezvous Constraint-based languages • Lotus Notes • GroupKit • Java Enterprise Beans • Java Shared Data API • Make different tradeoffs 290-63:Overview
Favoring Automation/Reusability XTV Programmer User
Favoring Performance/Flexibility Suite Programmer User