Collaboration Systems

Slides:



Advertisements
Similar presentations
ICS 434 Advanced Database Systems
Advertisements

Database Architectures and the Web
DESIGNING COLLABORATIVE APPLICATIONS Modeling Single and Multi-User Interactions Design Dimensions Coupling Concurrency Control Undo/Redo.
A component- and message-based architectural style for GUI software
Department of Computer Science and Engineering University of Washington Brian N. Bershad, Stefan Savage, Przemyslaw Pardyak, Emin Gun Sirer, Marc E. Fiuczynski,
Dewan290-F991 Taxonomies of Collaborative Applications Prasun Dewan Department of Computer Science University of North Carolina CB 3175 Sitterson Hall.
The road to reliable, autonomous distributed systems
0 General information Rate of acceptance 37% Papers from 15 Countries and 5 Geographical Areas –North America 5 –South America 2 –Europe 20 –Asia 2 –Australia.
Cracow Grid Workshop, November 5-6, 2001 Towards the CrossGrid Architecture Marian Bubak, Marek Garbacz, Maciej Malawski, and Katarzyna Zając.
Saul Greenberg Groupware Infrastructures Saul Greenberg Professor Department of Computer Science University of Calgary.
Notes to the presenter. I would like to thank Jim Waldo, Jon Bostrom, and Dennis Govoni. They helped me put this presentation together for the field.
1 Discussion of AIDS Collaboratory Prasun Dewan UNC Chapel Hill/Microsoft.
Virtual Meetings Increasing Collaboration While Reducing Costs and Ensuring Business Continuity Ram Narayanaswamy CTO 8x8, Inc.
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
INTRODUCTION TO CLOUD COMPUTING Cs 595 Lecture 5 2/11/2015.
Understanding and Managing WebSphere V5
Enterprise Java Beans Part I Kyungmin Cho 2001/04/10.
Logistics and Systems Rabby Q. Lavilles. Supply chain is a system of organizations, people, technology, activities, information and resources involved.
Enterprise JavaBeans. What is EJB? l An EJB is a specialized, non-visual JavaBean that runs on a server. l EJB technology supports application development.
ANSTO E-Science workshop Romain Quilici University of Sydney CIMA CIMA Instrument Remote Control Instrument Remote Control Integration with GridSphere.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 09. Review Introduction to architectural styles Distributed architectures – Client Server Architecture – Multi-tier.
Evaluation of a Publish/Subscribe System for Collaboration and Mobile Working Collaborative Advertising over Internet with Agents Independent Study: Wireless.
1 Advanced Software Architecture Muhammad Bilal Bashir PhD Scholar (Computer Science) Mohammad Ali Jinnah University.
GRID Overview Internet2 Member Meeting Spring 2003 Sandra Redman Information Technology and Systems Center and Information Technology Research Center National.
Computer supported cooperative work -Basic concepts
1 Object Oriented Logic Programming as an Agent Building Infrastructure Oct 12, 2002 Copyright © 2002, Paul Tarau Paul Tarau University of North Texas.
CSI 3125, Preliminaries, page 1 SERVLET. CSI 3125, Preliminaries, page 2 SERVLET A servlet is a server-side software program, written in Java code, that.
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved DISTRIBUTED SYSTEMS.
Database Systems: Design, Implementation, and Management Eighth Edition Chapter 14 Database Connectivity and Web Technologies.
A service Oriented Architecture & Web Service Technology.
Unit 3 Virtualization.
Discovering Computers 2010: Living in a Digital World Chapter 14
Design and realization of Payload Operation and Application system of China’s Space Station Wang HongFei 首页.
Joseph JaJa, Mike Smorul, and Sangchul Song
Distribution and components
Leveraging Operational Transformation in Collaborative Object Groups
The Client/Server Database Environment
EIN 6133 Enterprise Engineering
Chapter 18 MobileApp Design
Alternativ 1 – Core services
The Power Of Generic Infrastructure
XML Based Interoperability Components
Collaboration Systems
Advanced Operating Systems
IT Infrastructure: Hardware and Software
Inventory of Distributed Computing Concepts and Web services
Component-Based Software Engineering: Technologies, Development Frameworks, and Quality Assurance Schemes X. Cai, M. R. Lyu, K.F. Wong, R. Ko.
Enterprise Service Bus (ESB) (Chapter 9)
Service-centric Software Engineering 1
Inventory of Distributed Computing Concepts
CSSSPEC6 SOFTWARE DEVELOPMENT WITH QUALITY ASSURANCE
Distribuerte Systemer Viktigere enn vi tror, vanskeligere enn det høres Komponenttorget ‘99 Trondheim Trygve Reenskaug Numerica Taskon Distaribuerte.
Component--based development
Service Oriented Architecture (SOA)
Architectures of distributed systems Fundamental Models
Software models - Software Architecture Design Patterns
Architectures of distributed systems Fundamental Models
IT Infrastructure: Hardware and Software
Web Application Server 2001/3/27 Kang, Seungwoo. Web Application Server A class of middleware Speeding application development Strategic platform for.
Scott Thorne & Chuck Shubert
Component-based Applications
AIMS Equipment & Automation monitoring solution
강의 내용 및 방법 접근방법 리포트 시험 Lambda Calculus, Proof of Correctness
Implementation support
Architectures of distributed systems
Design Yaodong Bi.
Architectures of distributed systems Fundamental Models
Part I: Service Oriented Architecture
New Tools In Education Minjun Wang
Implementation support
Presentation transcript:

Collaboration Systems 11/10/2018 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 11/10/2018 290-63:Overview

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

Overview Why Collaborative Applications? Related Areas Nature of System Support Concrete Examples Lessons 11/10/2018 290-63:Overview

Benefits: Towards Being There Face-to-Face Interaction Computer-Supported Interaction Network 11/10/2018 290-63:Overview

Gesture Cam: Remote Surrogate 11/10/2018 290-63:Overview

Benefits: Beyond Being There Face-to-Face Hollan & Stornetta ‘92 Interaction Computer-Supported Interaction Network 11/10/2018 290-63:Overview

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

Dual Collaboration Goals Towards Being There Beyond Being There 11/10/2018 290-63:Overview

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Migration X Client Pseudo Server Pseudo Server X Server X Server User 3 User 4 Handheld Handheld 11/10/2018 290-63:Overview

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

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

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

Extensibility/Composability System Support Applications Existing Interoperability Extensibility/Composability Applications Performance/Resource Management Functionality System Support 11/10/2018 290-63:Overview

Monolithic System Pseudo Server Suite Shared Windows Merging Logging Coupling Replication User-Interface 11/10/2018 290-63:Overview

Component-based System Pseudo Server Suite Shared Windows Merging Logging Coupling Replication User-Interface Logging 11/10/2018 290-63:Overview

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

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

Generic API 11/10/2018 290-63:Overview

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

Connection Bus Pseudo Server Suite Shared Windows Merging Connection Facets Collaboration Bus Merging Logging Coupling Replication User-Interface 11/10/2018 290-63:Overview

Proxy Support Model Out In Model 11/10/2018 290-63:Overview

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

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

Interoperation Inter-operation Our Organization’s Collaborative Spreadsheet Your Organization’s Collaborative Spreadsheet User 1 User 2 User 3 User 4

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

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

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

System Support Applications Applications System Support Existing Interoperability Extensibility/Composability Applications Performance/Resource Management Functionality System Support 11/10/2018 290-63:Overview

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

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

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

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

Favoring Automation/Reusability XTV Programmer User

Favoring Performance/Flexibility Suite Programmer User

Lessons Reuse Importance Flexibility Importance NetMeeting, X Shared Whiteboards, Chat, Lotus Notes Flexibility Importance 11/10/2018 290-63:Overview

Composibility of Generic Interfaces is Useful Generic User Interface Spreadsheet User Interface Access Control Spreadsheet Bus Agent Coupler

Usefulness of Interoperation? Our Organization’s Collaborative Spreadsheet Your Organization’s Collaborative Spreadsheet User 1 User 2 User 3 User 4

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

Java Experience Portability Introspection Support Interfaces JSDA Swing RMI Version Evolution Existing Colab Systems Powerful but slow!

Lessons Infrastructure is Important ICICLE built from scratch CIS, CAIS built using Suite 11/10/2018 290-63:Overview

11/10/2018 290-63:Overview

11/10/2018 290-63:Overview

11/10/2018 290-63:Overview

11/10/2018 290-63:Overview

11/10/2018 290-63:Overview

Server-defined Protocol Combining Benefits Server Client Server-defined Protocol Traditional Approach introspects Client Server App.-defined Protocol Bean Approach

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

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

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

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