Presentation is loading. Please wait.

Presentation is loading. Please wait.

Collaboration Systems

Similar presentations


Presentation on theme: "Collaboration Systems"— Presentation transcript:

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


Download ppt "Collaboration Systems"

Similar presentations


Ads by Google