collaboration systems l.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Collaboration Systems PowerPoint Presentation
Download Presentation
Collaboration Systems

Loading in 2 Seconds...

play fullscreen
1 / 66

Collaboration Systems - PowerPoint PPT Presentation


  • 146 Views
  • Uploaded on

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

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

Collaboration Systems


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
collaboration systems
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
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
Overview
  • Why Collaborative Applications?
  • Related Areas
  • Nature of System Support
  • Concrete Examples
  • Lessons

290-63:Overview

benefits towards being there
Benefits: Towards Being There

Face-to-Face

Interaction

Computer-Supported

Interaction

Network

290-63:Overview

benefits beyond being there
Benefits: Beyond Being There

Face-to-Face

Hollan & Stornetta ‘92

Interaction

Computer-Supported

Interaction

Network

290-63:Overview

action workflow

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
Dual Collaboration Goals
  • Towards Being There
  • Beyond Being There

290-63:Overview

collaboration vs virtual environments

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
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
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
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

system support

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 support14
System Support

Applications

Existing

Interoperability

Extensibility/Composability

Applications

Performance/Resource Management

Functionality

System Support

X, Windows, Java Apps.

290-63:Overview

shared window system
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
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 system17
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 support18
System Support

Applications

Existing

Interoperability

Extensibility/Composability

Applications

Performance/Resource Management

Functionality

System Support

X, Windows, Java Apps.

290-63:Overview

system support19

Existing

System Support

Applications

Interoperability

Extensibility/Composability

Applications

Performance/Resource Management

Functionality

System Support

Beyond WYSIWIS

290-63:Overview

flexible model of collaboration

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

system support21

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

system support22

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
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
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

migration25
Migration

X Client

Pseudo Server

Pseudo Server

X Server

X Server

User 3

User 4

Handheld

Handheld

290-63:Overview

centralized replicated
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
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

system support28

Existing

System Support

Applications

Interoperability

Extensibility/Composability

Applications

Performance/Resource Management

Functionality

System Support

Distributed Architecture, Jitter & Latency Control

290-63:Overview

system support29

Existing

System Support

Applications

Interoperability

Extensibility/Composability

Applications

Performance/Resource Management

Functionality

System Support

290-63:Overview

monolithic system
Monolithic System

Pseudo Server

Suite

Shared Windows

Merging

Logging

Coupling

Replication

User-Interface

290-63:Overview

component based system
Component-based System

Pseudo Server

Suite

Shared Windows

Merging

Logging

Coupling

Replication

User-Interface

Logging

290-63:Overview

composability
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
Genericity
  • A logger can compose with different loggables at different levels of abstraction.

XTV

Logging

Service

Suite

290-63:Overview

generic api
Generic API

290-63:Overview

ease of programming

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
Connection Bus

Collaboration Bus

Connection Facets

Pseudo Server

Suite

Shared Windows

Merging

Logging

Coupling

Replication

User-Interface

290-63:Overview

proxy support
Proxy Support

Model

Out

Model

In

290-63:Overview

system support38

Existing

System Support

Applications

Interoperability

Extensibility/Composability

Applications

Performance/Resource Management

Functionality

System Support

Generic Interfaces, Design Patterns, Connection Managers

290-63:Overview

system support39

Existing

System Support

Applications

Interoperability

Extensibility/Composability

Applications

Performance/Resource Management

Functionality

System Support

Coupling, Concurrency Control, Merging, Access Control

290-63:Overview

interoperation
Interoperation

Inter-operation

Our Organization’s Collaborative Spreadsheet

Your Organization’s Collaborative Spreadsheet

User 1

User 2

User 3

User 4

interoperation example

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

interoperating coupling

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

system support43

Existing

System Support

Applications

Interoperability

Extensibility/Composability

Applications

Performance/Resource Management

Functionality

System Support

Coupling, Concurrency Control, Merging, Access Control

290-63:Overview

system support44

Existing

System Support

Applications

Interoperability

Extensibility/Composability

Applications

Performance/Resource Management

Functionality

System Support

290-63:Overview

lessons
Lessons
  • NetMeeting, Shared whiteboards, video-conferencing successful
  • Being there
  • Communication
    • Software Inspection Review
  • Control
    • Workflow
  • Beyond Being there

Flexibility Needed

290-63:Overview

life cycle

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

lessons47
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

lessons48
Lessons
  • Infrastructure
    • XTV
    • Suite
    • Rendezvous Constraint-based languages
    • Lotus Notes
    • GroupKit
    • Java Enterprise Beans
    • Java Shared Data API
  • Make different tradeoffs

290-63:Overview

lessons51
Lessons
  • NetMeeting, X
  • Reuse Importance
  • Flexibility Importance
  • Shared Whiteboards, Chat, Lotus Notes

290-63:Overview

composibility of generic interfaces is useful

Spreadsheet User Interface

Composibility of Generic Interfaces is Useful

Generic User Interface

Access Control

Spreadsheet

Bus Agent

Coupler

usefulness of interoperation
Usefulness of Interoperation?

Inter-operation

Our Organization’s Collaborative Spreadsheet

Your Organization’s Collaborative Spreadsheet

User 1

User 2

User 3

User 4

composition interoperation related

Translator

Specific to Generic

Composition, Interoperation Related

Habanero Spreadsheet

Bus Spreadsheet

Interoperation uses Composition

Interoperation example

Specific

Logging

Client

Generic Logging Server

Composition Uses Interoperation

Composition Example

java experience
Java Experience
  • Portability
  • Introspection Support
  • Interfaces
  • JSDA
  • Swing
  • RMI
  • Version Evolution
  • Existing Colab Systems

Powerful but slow!

lessons56
Lessons
  • Infrastructure is Important
    • ICICLE built from scratch
    • CIS, CAIS built using Suite

290-63:Overview

combining benefits

Server-defined Protocol

Traditional Approach

introspects

Client

Server

App.-defined Protocol

Combining Benefits

Server

Client

Bean Approach

composition and interoperation related

Lock to Floor

Floor to Lock

Specific to Generic

Composition and Interoperation Related

Bus

Spreadsheet

Habanero

Spreadsheet

Interoperation Example

Specific

Logging

Client

Generic Logging Server

Composition Example

concurrency control policy 1
Concurrency Control Policy 1

FloorControlSystem

User 1

User 2

False User 3

LockConrolSystem

User 4

User 5

User 6

290-63:Overview

concurrency control policy 2
Concurrency Control Policy 2

LockControlSystem

False User 1

User 2

User 3

FloorConrolSystem

User 4

User 5

User 6

290-63:Overview

proxies
Proxies

Events Generated: LockRequestedEvent

LockAcquiredEvent

LockReleasedEvent

LockToFloor

Proxy

Invoke methods:

AcquireFloor

ReleaseFloor

Lock Manager

Floor Controller

System 1

(Spreadsheet)

System 2

(Spreadsheet)

Events Generated: FloorRequestedEvent

FloorAcquiredEvent

FloorReleasedEvent

FloorToLock

Proxy

Invoke Methods:

AcquireLock

ReleaseLock

Lock Manager

Floor Controller

System 1

(Spreadsheet)

System 2

(Spreadsheet)

290-63:Overview