Computer-supported real-time collaboration systems offer functionality to let two or more users work together at the same time, allowing them to jointly create, modify and exchange electronic documents, use applications, and share information location-independently and in real-time.
For these reasons, such collaboration systems are often used in professional and academic contexts by teams of knowledge workers located in different places. But also when used as computer-supported learning environments – electronic classrooms – these systems prove useful by offering interactive multi-media teaching possibilities
and allowing for location-independent collaborative learning.
Commonly, computer-supported real-time collaboration systems are realised using remote desktop technology or are implemented as web applications. However, none of the examined existing commercial and academic solutions were found to support concurrent multi-user interaction in an application-independent manner. When used in low-throughput shared-medium computer networks such as WLANs or cellular
networks, most of the investigated systems furthermore do not scale well with an increasing number of users, making them unsuitable for multi-user collaboration of a high number of participants in such environments.
For these reasons this work focuses on the design of a collaboration system that supports concurrent multi-user interaction with standard desktop applications and is able to serve a high number of users on low-throughput shared-medium computer networks by making use of multicast data transmission. The developed multi-user multicast collaboration system named CollabKit, realised by integrating and extending existing technologies, was compared against a conventional unicast remote desktop system and found to significantly outperform it when several clients needed to be served. Regarding the functionality requirements and performance metrics defined in this work, CollabKit could achieve the expected results.
This work shows that it is possible to create a computer-supported real-time collaboration system with multi-user and multicast support by integrating existing technologies and extending them with custom implementations where needed: The developed system supports application-independent concurrent operation by multiple users, per-user graphical annotations and window sharing and scales well with an increasing number of users.
Inhaltsverzeichnis
- 1 Introduction
- 1.1 Problem Statement
- 1.2 Approach
- 1.3 Structure of this Work
- 2 Real-Time Collaboration Use Cases and Requirements
- 2.1 Use Cases
- 2.1.1 Presentations
- 2.1.2 Electronic Teaching
- 2.1.3 Professional Collaboration
- 2.2 Requirements Analysis
- 2.2.1 Non-Functional Requirements
- 2.2.2 Functional Requirements
- 2.2.3 Summary
- 3 State of the Art
- 3.1 Basic Principles regarding Real-Time Collaboration Systems
- 3.1.1 Classification
- 3.1.2 Common Technical Realisation
- 3.2 Survey of Existing Real-Time Collaboration Systems
- 3.2.1 Based on the X Window System
- 3.2.2 Based on VNC
- 3.2.3 Based on RDP
- 3.2.4 Others
- 3.3 Conclusion – Motivation for CollabKit
- 4 Design of a Multi-User Multicast Collaboration System
- 4.1 CollabKit Needed Functionality
- 4.2 Multi-User Support
- 4.2.1 Concurrent Multi-User Operation
- 4.2.2 Multi-User Graphical Annotations
- 4.2.3 Cross-Platform Client Application
- 4.2.4 Client-to-Server Window Sharing
- 4.3 Multicast Transmission of Image Data
- 4.3.1 Delivery of Multicast Group Address to Clients
- 4.3.2 Different VNC Pixel-Formats and Encodings
- 4.3.3 Accumulation of Update Requests
- 4.3.4 Datagrams Instead of Byte Streams
- 4.3.5 Multicast Flow Control
- 4.3.6 Introduction of New Message Types
- 4.3.7 Overall Resulting Design
- 5 CollabKit Implementation
- 5.1 Multi-User Functionality
- 5.1.1 VNC Server MPX Extension
- 5.1.2 Annotation Tool MPX Extension
- 5.1.3 Client Application
- 5.1.4 Client-to-Server Window Sharing
- 5.2 Multicast Extension of VNC
- 5.2.1 Declaration of Message Types
- 5.2.2 Implementation of Session Setup
- 5.2.3 Implementation of Message Handling
- 5.2.4 Implementation of the NACK mechanism
- 5.2.5 Implementation of Multicast Flow Control
- 5.2.6 Use with LibVNCServer
- 6 CollabKit Evaluation
- 6.1 Evaluation of Multi-User Functionality
- 6.1.1 Concurrent Multi-User View and Control
- 6.1.2 Multi-User Graphical Annotations
- 6.1.3 Cross-Platform Client
- 6.1.4 Client-to-Server Window Sharing
- 6.2 Evaluation of the MulticastVNC Extension
- 6.2.1 Throughput Properties
- 6.2.2 Latency Properties
- 6.2.3 Effectiveness of Multicast Flow Control
- 7 Summary and Future Prospects
Zielsetzung und Themenschwerpunkte
Diese Arbeit verfolgt zwei Hauptziele: die Entwicklung eines echtzeitfähigen Kollaborationssystems mit vollständiger, paralleler Mehrbenutzerunterstützung und die Implementierung von Multicast-Datenübertragung für dieses System, genannt CollabKit. Die Arbeit analysiert verschiedene Anwendungsfälle und die daraus resultierenden Anforderungen, untersucht den Stand der Technik und präsentiert das Design und die Implementierung von CollabKit.
- Parallele Mehrbenutzerinteraktion
- Multicast-Datenübertragung für verbesserte Skalierbarkeit
- Integration bestehender Technologien (VNC, MPX)
- Anwendungsfallanalyse (Präsentationen, elektronisches Lernen, professionelle Kollaboration)
- Leistungsevaluation (Durchsatz, Latenz, Verlustrate)
Zusammenfassung der Kapitel
Kapitel 1 beschreibt das Problem der fehlenden parallelen Mehrbenutzerunterstützung und schlechten Skalierbarkeit in bestehenden Kollaborationssystemen. Kapitel 2 analysiert verschiedene Anwendungsfälle (Präsentationen, elektronisches Lernen, professionelle Kollaboration) und die daraus resultierenden Anforderungen an das System. Kapitel 3 gibt einen Überblick über den Stand der Technik, einschließlich X Window System, VNC und RDP, und begründet die Wahl des Ansatzes für CollabKit. Kapitel 4 präsentiert das Design von CollabKit, einschließlich der Multicast-VNC-Erweiterung.
Kapitel 5 dokumentiert die Implementierung von CollabKit, einschließlich der Erweiterung von x11vnc und Gromit für Mehrbenutzerunterstützung und die Entwicklung einer plattformübergreifenden Client-Anwendung. Kapitel 6 evaluiert die Leistung von CollabKit, sowohl die Multi-User-Funktionalität als auch die Multicast-VNC-Erweiterung, anhand von verschiedenen Messungen (Durchsatz, Latenz, Verlustrate).
Schlüsselwörter
Echtzeit-Kollaboration, Mehrbenutzerunterstützung, Multicast, VNC, MPX, Skalierbarkeit, Durchsatz, Latenz, CollabKit, X Window System, RDP, Anwendungsfälle, Leistungsevaluation.
- Quote paper
- Christian Beier (Author), 2011, CollabKit – A Multi-User Multicast Collaboration System based on VNC, Munich, GRIN Verlag, https://www.grin.com/document/182165