Entwurf, Implementierung und Evaluation einer erweiterbaren, netzwerktransparenten Zwischenablage

Hintergrund

Bei der Zwischenablage bzw. dem Clipboard handelt es sich um ein weitverbreitetes System bei Computern, welches dazu dient, Informationen kurzzeitig zu speichern, zwischen Programmen zu transferieren, zu vervielfältigen et cetera. Hierbei handelt es sich um ein etabliertes und altes Verfahren, welches in allen gängigen Betriebssystemen zu finden ist. Ursprünglich war die Zwischenablage für die Arbeit mit Texten gedacht, wurde aber im Laufe der Zeit auf verschiedenste Formate und Dateioperationen erweitert. Dies führte aber auch dazu, dass für jedes Betriebssystem ein eigener Clipboardmechanismus entwickelt wurde, die sich hinsichtlich in ihrer Funktionsweise und Möglichkeiten zum Teil stark unterscheiden. In der jüngeren Geschichte gab es allerdings nur noch wenig explizite Weiterentwicklung dieses Systems und es wurde weitgehend den Anwendungsentwicklern überlassen, innerhalb dieser engen Grenzen zu arbeiten, etwas durch die privaten Formate des Windows-Clipboards. Diese Stagnation mag sich vor allem aus der zentralen Rolle begründen, die die Zwischenablage für das System an sich, aber auch die darauf laufenden Anwendungen (insbesondere auch deren Verhalten untereinander) sowie die Arbeitsabläufe der Nutzer hat. Die alles führt zu einem simplen, aber auch starren System, das kaum bis nur wenige Möglichkeiten zu seiner Erweiterung auf Systemebene bietet.

In den letzten Jahren gewannen allerdings Multi-User- und Multi-Device-Prozesse zunehmend an Bedeutung und in diesem Kontext wird die Eingeschränktheit der aktuellen Zwischenablagen besonders deutlich, die per definitionem auf ein Gerät und einen Nutzer beschränkt sind. Aufgrund dieser Unzulänglichkeiten ist es die Zielsetzung dieser Arbeit, ein neuartiges, genenrisches Konzept für die Arbeit mit der Zwischenablage zu entwickeln. Besonderer Fokus soll auf der Erweiterbarkeit des Systemes und auf der Netzwerktransparenz liegen. Außerdem soll eine prototypische Implementierung des Konzeptes erfolgen.

Zielsetzung der Arbeit

Zuerst sollen hierfür typische Nutzungsmuster und -bedürfnisse analysiert werden, wobei dies nicht der Fokus der Arbeit ist und hier eher auf bereits vorhandene Erkenntnisse zurückgegriffen wird. Das System soll darüberhinaus nicht abhängig von der konkreten Interaktionsform mit dem Gerät sein, also soll es einen generischen Ansatz bieten, der unabhängig von konkreten Geräten lauffähig ist. Hauptziel ist hier die Entwicklung einer erweiterbaren, benutzbaren API, welche die neuartigen Aufgaben zur Synchronisierung und Kommunikation mit anderen Geräten kapselt und es so anderen Programmierern ermöglicht, diese Funktionalitäten für deren eigene Bedürfnisse zu nutzen. Sehr wichtig soll hierbei die Erweiterungsmöglichkeiten sein, welche die API bieten soll. Dieser Erweiterbarkeit lässt sich über verschiedene Möglichkeiten gewährleisten, insbesondere Erwähnung finden sollen hier Techniken wie Hooks (vgl. Web-Hooks bei Github), die das eventbasierte Ausführen von selbst definierten Aktionen ermöglichen und die Möglichkeit der Erstellung eigener Formate für den Clipboardinhalt. Weitere Ansatzmöglichkeiten wären der Aufbau nach einer Layer-Modell und der Verwendbarkeit der API etwas auch für Plugins etablierter Programme. Darüber hinaus soll das Clipboard auch auf mehreren Geräten funktionierten. Hierfür muss die Kommunikation zwischen den Geräten über ein geeignetes Verfahren sichergestellt werden. Technisch soll die Umsetzung auf etablierten Technologien basieren und es sollen möglichst keine grundsätzlich neuen Verfahren wie etwa ein eigenes Kommunikationsprotokoll entwickelt werden. Für die Kommunikation im Netzwerk, die wie oben dargestellt ein wichtier Teil des Programmes sein soll, würde sie zum Beispiel die Verwendung von HTTP anbieten und für den Austausch von Inhalten zwischen Anwendungen etwa MIME. Verwendet wird wohl auch das QT-Framework, welches es ermöglicht, Differenzen zwischen den einzelnen Betriebssystemen weitgehend zu eliminieren.

Explizit nicht Fokus der Arbeit sollen eine ausführliche Erhebung der Nutzeranforderungen an die Fähigkeiten einer neuen Zwischenablage sein und, aufgrund der Unabhängigkeit der verwendeten Interaktionstechnik soll sich die Arbeit auch nicht mit der Entwicklung oder Erforschung dieser im Kontext von neuartigen Geräten beschäftigen.

Konkrete Aufgaben

Konkrete Teilaufgaben sind:

Analyse der Literatur zu Zwischenablagen (1 Woche)

Einarbeitung in zu verwendende Technologien (HTTP/MIME/REST) (1 Woche)

Anforderungserhebung durch geeignete Maßnahmen (2 Wochen)

Implementierung von Benchmarks und Test-Cases (2 Wochen)

prototypische, iterative Implementierung (4 Wochen)

Implementierung von Plugins für mindestens zwei Anwendungen (z.B. LibreOffice, Browser) (3 Wochen)

Implementierung von mindestens zwei Plugins/Hooks für die Zwischenablage (3 Wochen)

Erstellen einer schriftlichen Ausarbeitung (4 Wochen)

Erwartete Vorkenntnisse

Grundlagen Interaktionstechniken

Grundlagen Python

Grundlagen Netzwerktechnik

Weiterführende Quellen

Zotero: Clipboards

python3-hug

AOSA books