Download presentation
Presentation is loading. Please wait.
1
Collaboration Systems
11/10/2018 Collaboration Systems Prasun Dewan Department of Computer Science University of North Carolina CB 3175 Sitterson Hall Chapel Hill, NC 11/10/2018 290-63:Overview
2
Issues Advanced? Writing Programming Presentation
Integrated with 291 Programming Careful Vs Bulk Combined with 243 Presentation Pick a Project Quickly Nature of Area Look at Web Page 11/10/2018 290-63:Overview
3
Overview Why Collaborative Applications? Related Areas
Nature of System Support Concrete Examples Lessons 11/10/2018 290-63:Overview
4
Benefits: Towards Being There
Face-to-Face Interaction Computer-Supported Interaction Network 11/10/2018 290-63:Overview
5
Gesture Cam: Remote Surrogate
11/10/2018 290-63:Overview
6
Benefits: Beyond Being There
Face-to-Face Hollan & Stornetta ‘92 Interaction Computer-Supported Interaction Network 11/10/2018 290-63:Overview
7
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/10/2018 290-63:Overview
8
Dual Collaboration Goals
Towards Being There Beyond Being There 11/10/2018 290-63:Overview
9
Collaboration Vs Virtual Environments
Shared Whiteboard Nanomanipulator Remote VE Collaborative Applications VE Immersive VE Telepresence Colab. Nanomanipulator Asynchronous/ Face-to-face Collaboration 11/10/2018 290-63:Overview
10
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/10/2018 290-63:Overview
11
Collaboration Vs Mobile Apps.
Disconnected Shared Editing with Syncing Disconnected Editing with Syncing Collaborative Applications Mobile Applications Shared Notebook Electronic Notebook 11/10/2018 290-63:Overview
12
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/10/2018 290-63:Overview
13
System Support Applications Applications System Support Windows Apps
Existing Windows Apps Competing Systems User Interface Interoperability Extensibility/Composability Applications Distribution Performance/Resource Management Functionality Coupling System Support 11/10/2018 290-63:Overview
14
System Support Applications Applications System Support Existing
Interoperability Extensibility/Composability Applications Performance/Resource Management Functionality System Support X, Windows, Java Apps. 11/10/2018 290-63:Overview
15
Shared Window System WYSIWIS Coupling Audio/Video User 1 User 2
Application + Tightly-Coupled Meetings + Easy to Understand + Application-Independent + Automatable Window Window WYSIWIS Coupling Audio/Video User 1 User 2 11/10/2018 290-63:Overview
16
Centralized Architecture
XTV (‘88) VConf (‘87) Rapport (‘88) NetMeeting X Client Pseudo Server Pseudo Server X Server X Server User 1 User 2 11/10/2018 290-63:Overview
17
Shared Window System WYSIWIS Coupling Audio/Video User 1 User 2
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 11/10/2018 290-63:Overview
18
System Support Applications Applications System Support Existing
Interoperability Extensibility/Composability Applications Performance/Resource Management Functionality System Support X, Windows, Java Apps. 11/10/2018 290-63:Overview
19
System Support Applications Applications System Support Existing
Interoperability Extensibility/Composability Applications Performance/Resource Management Functionality System Support Beyond WYSIWIS 11/10/2018 290-63:Overview
20
Flexible Model of Collaboration
Application Session Management User Window Version 1 Window Version 1 Coupling Merging Undo/Redo Awareness CC/AC 11/10/2018 290-63:Overview User 1 User 2
21
System Support Applications Applications System Support Existing
Interoperability Extensibility/Composability Applications Performance/Resource Management Functionality System Support Coupling, Merging, Diffing, Undo, User Interface, Security, Concurrency Control 11/10/2018 290-63:Overview
22
Performance/Resource Management
System Support Applications Existing Interoperability Extensibility/Composability Applications Performance/Resource Management Functionality System Support Distributed Architecture, Jitter & Latency Control 11/10/2018 290-63:Overview
23
XTV Centralized Architecture
X Client Pseudo Server X Server X Server X Server X Server User 1 User 2 User 3 User 4 Laptop++ Laptop Handheld 11/10/2018 290-63:Overview
24
Migration X Client Pseudo Server Pseudo Server Pseudo Server X Server
User 2 User 3 User 4 Laptop Handheld Handheld 11/10/2018 290-63:Overview
25
Migration X Client Pseudo Server Pseudo Server X Server X Server
User 3 User 4 Handheld Handheld 11/10/2018 290-63:Overview
26
Centralized -> Replicated
X Client X Client Pseudo Server Pseudo Server X Server X Server User 3 User 4 Handheld Handheld 11/10/2018 290-63:Overview
27
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 11/10/2018 290-63:Overview
28
Performance/Resource Management
System Support Applications Existing Interoperability Extensibility/Composability Applications Performance/Resource Management Functionality System Support Distributed Architecture, Jitter & Latency Control 11/10/2018 290-63:Overview
29
Extensibility/Composability
System Support Applications Existing Interoperability Extensibility/Composability Applications Performance/Resource Management Functionality System Support 11/10/2018 290-63:Overview
30
Monolithic System Pseudo Server Suite Shared Windows Merging Logging
Coupling Replication User-Interface 11/10/2018 290-63:Overview
31
Component-based System
Pseudo Server Suite Shared Windows Merging Logging Coupling Replication User-Interface Logging 11/10/2018 290-63:Overview
32
Composability XTV 1 Logging Service XTV 2 Logging Service XTV Logging
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 11/10/2018 290-63:Overview
33
Genericity XTV Logging Service Suite
A logger can compose with different loggables at different levels of abstraction. Logging Service XTV Suite 11/10/2018 290-63:Overview
34
Generic API 11/10/2018 290-63:Overview
35
Ease of Programming (a) XTV Implementing Latecomer Service
X Client X UI Protocol XTV Specialized Logging Service Other Services X UI Protocol X Servers (a) XTV Implementing Latecomer Service X Client XTV X UI Protocol Generic UI Protocol Interface to Logger (Translation) Generic Logging Service Other Services X UI Protocol X Servers (b) XTV Using Logger for Latecomer Service 11/10/2018 290-63:Overview
36
Connection Bus Pseudo Server Suite Shared Windows Merging
Connection Facets Collaboration Bus Merging Logging Coupling Replication User-Interface 11/10/2018 290-63:Overview
37
Proxy Support Model Out In Model 11/10/2018 290-63:Overview
38
Extensibility/Composability
System Support Applications Existing Interoperability Extensibility/Composability Applications Performance/Resource Management Functionality System Support Generic Interfaces, Design Patterns, Connection Managers 11/10/2018 290-63:Overview
39
System Support Applications Applications System Support Existing
Interoperability Extensibility/Composability Applications Performance/Resource Management Functionality System Support Coupling, Concurrency Control, Merging, Access Control 11/10/2018 290-63:Overview
40
Interoperation Inter-operation
Our Organization’s Collaborative Spreadsheet Your Organization’s Collaborative Spreadsheet User 1 User 2 User 3 User 4
41
Interoperation Example
Habanero Spreadsheet Custom Spreadsheet Lock Controller Spreadsheet Model Spreadsheet View WYSIWIS Coupler Floor Controller Flexible Coupler Spreadsheet Replica User 1 User 2 User 3 User 4
42
Interoperating Coupling
Dynamic Composition Local Semantics Preserved Spreadsheet Model WYSIWIS Coupler Flexible Coupler Spreadsheet Replica Spreadsheet Replica Dummy User Spreadsheet Replica/View Spreadsheet View Spreadsheet View User 1 User 2 User 3 User 4
43
System Support Applications Applications System Support Existing
Interoperability Extensibility/Composability Applications Performance/Resource Management Functionality System Support Coupling, Concurrency Control, Merging, Access Control 11/10/2018 290-63:Overview
44
System Support Applications Applications System Support Existing
Interoperability Extensibility/Composability Applications Performance/Resource Management Functionality System Support 11/10/2018 290-63:Overview
45
Lessons Being there Beyond Being there
NetMeeting, Shared whiteboards, video-conferencing successful Being there Communication Software Inspection Review Control Workflow Beyond Being there Flexibility Needed 11/10/2018 290-63:Overview
46
Life Cycle Requirements Design Programming Debugging Testing Review
Maintenance Mostly Synchronous Mostly Asynchronous Integration of Sync and Async Integration of Life Cycle Steps 11/10/2018 290-63:Overview
47
Lessons Flexibility New area explored faster Training needed
Exploratory Environment How to see effects on other users textual descriptions animations network simulations? 11/10/2018 290-63:Overview
48
Lessons Infrastructure Make different tradeoffs XTV Suite
Rendezvous Constraint-based languages Lotus Notes GroupKit Java Enterprise Beans Java Shared Data API Make different tradeoffs 11/10/2018 290-63:Overview
49
Favoring Automation/Reusability
XTV Programmer User
50
Favoring Performance/Flexibility
Suite Programmer User
51
Lessons Reuse Importance Flexibility Importance NetMeeting, X
Shared Whiteboards, Chat, Lotus Notes Flexibility Importance 11/10/2018 290-63:Overview
52
Composibility of Generic Interfaces is Useful
Generic User Interface Spreadsheet User Interface Access Control Spreadsheet Bus Agent Coupler
53
Usefulness of Interoperation?
Our Organization’s Collaborative Spreadsheet Your Organization’s Collaborative Spreadsheet User 1 User 2 User 3 User 4
54
Composition, Interoperation Related
Habanero Spreadsheet Bus Spreadsheet Translator Interoperation uses Composition Interoperation example Specific Logging Client Specific to Generic Generic Logging Server Composition Uses Interoperation Composition Example
55
Java Experience Portability Introspection Support Interfaces JSDA
Swing RMI Version Evolution Existing Colab Systems Powerful but slow!
56
Lessons Infrastructure is Important ICICLE built from scratch
CIS, CAIS built using Suite 11/10/2018 290-63:Overview
57
11/10/2018 290-63:Overview
58
11/10/2018 290-63:Overview
59
11/10/2018 290-63:Overview
60
11/10/2018 290-63:Overview
61
11/10/2018 290-63:Overview
62
Server-defined Protocol
Combining Benefits Server Client Server-defined Protocol Traditional Approach introspects Client Server App.-defined Protocol Bean Approach
63
Composition and Interoperation Related
Floor to Lock Lock to Floor Bus Spreadsheet Habanero Spreadsheet Interoperation Example Specific Logging Client Specific to Generic Generic Logging Server Composition Example
64
Concurrency Control Policy 1
FloorControlSystem User 1 User 2 False User 3 LockConrolSystem User 4 User 5 User 6 11/10/2018 290-63:Overview
65
Concurrency Control Policy 2
LockControlSystem False User 1 User 2 User 3 FloorConrolSystem User 4 User 5 User 6 11/10/2018 290-63:Overview
66
Proxies Events Generated: LockRequestedEvent LockAcquiredEvent LockReleasedEvent System 1 (Spreadsheet) System 2 Lock Manager Floor Controller LockToFloor Proxy Invoke methods: AcquireFloor ReleaseFloor System 1 (Spreadsheet) System 2 Lock Manager Floor Controller FloorToLock Proxy Events Generated: FloorRequestedEvent FloorAcquiredEvent FloorReleasedEvent Invoke Methods: AcquireLock ReleaseLock 11/10/2018 290-63:Overview
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.