Application-Sharing – Übersicht und

Transcription

Application-Sharing – Übersicht und
Hochschule für Technik, Wirtschaft und Kultur Leipzig (FH)
Fachbereich Informatik, Mathematik, Naturwissenschaften
Mario Wenzel
10MIB2
Application-Sharing
Übersicht und Beispielanwendung
Juli 2011
Inhaltsverzeichnis
I. Einleitung..........................................................................................................................................2
II. Entferntes, kollaboratives Arbeiten mit Gobby/Infinote..................................................................3
III. Entferntes, kollaboratives Arbeiten mit Google Docs....................................................................5
IV. Kollaboratives und unabhängiges Arbeiten an einer Arbeitsstation mit MPX...............................7
V. Screen-Sharing per VNC..................................................................................................................8
VI. Möglichkeiten des Broadway-Interface in GTK+3.2...................................................................10
VII. Zusammenfassung und Beispielanwendung...............................................................................11
VIII. Abbildungsverzeichnis...............................................................................................................13
IV. Quellen..........................................................................................................................................13
I. Einleitung
Kollaboratives und entferntes Arbeiten sind unerlässlich in der modernen wissenschaftlichen Welt
und in modernen Wirtschaftsprozessen.
Von 1990 bis zum Jahr 2005 hat die Zahl der wissenschaftlichen Arbeiten mit über 50, 100, 200 und
500 beteiligten Autoren stetig zugenommen[drgs]. Diese Forscher kommen nicht selten aus
unterschiedlichen Instituten, Ländern oder Kontinenten. Die Kommunikation kann nicht
ausschließlich von Angesicht-zu-Angesicht erfolgen. Regelmäßige Treffen internationaler Gruppen
von Forschern, zum Beispiel zum Austausch von Ideen oder Ergebnissen, sprengen auf Dauer jedes
Forschungsbudget. Auch per Telefon lassen sich Forschungsergebnisse schlecht austauschen.
Digitale Kommunikationsmittel sind für die Planung und den Austausch von
Forschungsergebnissen unabdingbar. Daraus ergibt sich ein erhöhter Kommunikationsbedarf über
das Internet und ein Bedarf für neue Werkzeuge und Methoden zum kollaborativen Arbeiten.
Aber nicht nur das kollaborative Arbeiten hat an Wichtigkeit gewonnen, auch das entfernte
Arbeiten. War es bis Ende der 80er Jahre noch üblich, Berechnungen und Simulationen auf
Großrechnern ausführen zu lassen, ist ein großer Teil dieser Rechenleistung heute von DesktopSystem aufbringbar. Trotzdem sind Cloud Services (entfernt bereitgestellte Dienste) in den letzten
Jahren enorm gewachsen. Amazons EC2-Service [aws] generierte für das Unternehmen im Jahr
2010 über 500 Mio. USD Umsatz, im Jahr 2011 geht man von 750 Mio USD aus, 2014, wenn der
Trend sich fortsetzt, 2,5 Mrd. USD [crn1]. Amazons Kunden können über die EC2-Cloud-Plattform
die unterschiedlichsten Dienste anbieten. Hierbei ist es denkbar, dass auch Desktop-Applikationen
der verschiedensten Art für mobile Endgeräte (bzw. den mobilen Nutzer auf verschiedenen
Endgeräten) bereitgestellt werden, denen es selbst an Speicher und Rechenleistung, jedoch nicht an
Bandbreite mangelt.
Seite 2
Diese Arbeit beschäftigt sich mit den Möglichkeiten des entfernten, kollaborativen Editierens von
Textdateien mit der freien Software „Gobby“ (Kapitel II) und dem entfernten, kollaborativen
Bearbeiten von Dokumenten mit Google Docs (Kapitel III). Außerdem werden VNC (Kapitel IV)
und MPX (Kapitel V) auf deren Tauglichkeit zum kollaborativen Arbeiten geprüft, sowie das
Broadway-Interface für GTK+ vorgestellt (Kapitel VI).
II. Entferntes, kollaboratives Arbeiten mit Gobby/Infinote
Gobby [gby] ist eine OpenSource
Software um kollaborativ in Echtzeit
über eine LAN oder WAN-Verbindung
Textdateien zu bearbeiten. Das GobbyProjekt steht unter der GPL-Lizenz. Es
stehen Binärpakete für Windows und
Linux bereit, kann jedoch auf auf Mac
OS X und anderen Unix-Systemen
kompiliert und genutzt werden [gbydwn].
Abb. 1: Gobby unter Ubuntu/Gnome3 - Editieren einer
php-Datei mit entspr. Syntax-Highlighting
(Oktober 2008) das Protokoll „obby“ und seitdem die projekteigene Infinote-Bibliothek (libinfinity)
Gobby benutzte bis zur Version 0.4.90
[gby1].
Gobby arbeitet mit einem Client-Server-Modell, wobei kein dedizierter Server notwendig ist, da
jeder Client die Server-Funktionalitäten beinhaltet. Es ist jedoch auch möglich, einen dedizierten
Server1 zu nutzen.
Ein Nutzer eröffnet eine sog. Sitzung, die auch Passwort-geschützt sein kann. Andere Nutzer
können dieser Sitzung beitreten, in dem sie die IP-Adresse und Port des Serverdienstes in die
entsprechende Verbindungsmaske eingeben. Im LAN nutzt Gobby aber auch Zeroconfig (zum
Beispiel avahi [avahi]), um Sitzungen bekannt zu machen. Durch die Verwendung von Zeroconfig,
einer automatischen Konfigurationsmethode für Netzwerkdienste, kann ein Nutzer auch ohne die
Kenntnis der IP-Adresse des Servers einer Sitzung beitreten (im lokalen Netzwerk verfügbare
Sitzungen werden in einer separaten Liste angezeigt und können dort ausgewählt werden). Beim
Eintreten in eine Sitzung wählt der Eintretende seinen Nutzernamen und eine Farbe, in der seine
1 „Sobby“ für das obby-Protokoll und „infinoted“ für infinote
Seite 3
Änderungen in den Dokumenten der Sitzung dargestellt werden (Siehe Abb. 1, mitte) sollen. Diese
Farbe kann jedoch im Verlauf der Sitzung vom Nutzer selbst sowie dem Sitzungseröffner oder
berechtigten Nutzern geändert werden.
Die Änderungen, welche die Nutzer am Dokument durchführen, werden von allen anderen Nutzern
sofort gesehen. Die eingebrachten Änderungen werden hierbei zeichenweise übertragen. Die
Verzögerung, die die Nutzer hierbei erfahren, ist nur durch die entsprechenden Latenzzeiten zum
Server begrenzt (i.d.R. wenige 10 Millisekunden).
Nun können alle Teilnehmer der Sitzung Textdateien in die Sitzung hineinladen (entsprechendes
Syntax-Highlighting, also das kontextsensitive farbliche Auszeichnen von zum Beispiel
Programmcode kann clientseitig aktiviert werden). Die geladenen Dateien befinden sich nun als
temporäre Dateien auf dem Server. Alle Teilnehmer, auch der Sitzungseröffner und der Teilnehmer,
der die Datei zur Bearbeitung eingebracht hat, müssen die Sitzungsdateien wieder auf ihren lokalen
Computer abspeichern, um Änderungen über die Sitzung hinaus zu sichern.
Um die Kommunikation zwischen den Teilnehmern zu gewährleisten, bietet Gobby einen IRCartigen Chat (Siehe Abb. 1, unten). Der Chat ist jedoch nicht nach Dateien getrennt und so kann es
schon bei wenigen aktiven Nutzern (ab 5) für die einzelnen Teilnehmer schwierig werden, die
Übersicht zu behalten. Ebenso gibt es keine Möglichkeit zu sehen, an welcher Stelle (bzw. in
welcher Datei) die anderen Teilnehmer ihre Änderungen zu einem bestimmten Zeitpunkt
vornehmen. So ist es bereits bei kleineren Dateien (100 Zeilen) kompliziert, alle Änderungen der
anderen Teilnehmer zu verfolgen, wenn diese Änderungen an mehreren Stellen im Dokument
vornehmen.
Wenn die Dateien der Sitzung auf die Computer der Teilnehmer zurückgespeichert werden, gehen
alle Informationen darüber, welcher Teilnehmer welche Änderungen eingebracht hat, verloren.
Werden die Dateien dann in ein Versionsverwaltungssystem (Subversion, Git, Bazaar o.Ä.)
eingebracht, können entsprechende Quelltextzeilen nicht mehr den eigentlichen Erstellern
zugeordnet werden. Bei Projekten, bei denen (zum Beispiel durch die Menge an Quelltext, den
Workflow oder das Projektmanagement o.Ä.) eine rigorose Versionskontrolle unerlässlich ist, stößt
Gobby hier an seine Grenzen [gby2].
Gobby bietet sich zum Rapid Prototyping (schnelles entwickeln von Prototypen) in kleinen
Gruppen an, wobei die Kommunikation der Teilnehmer über einen externen Kanal abgewickelt
werden muss, denn das integrierte IRC-artige Chatsystem ist nicht ausreichend für komplexe und
ausführliche Kommunikation zwischen den Teilnehmern. Die Beschränkung auf Textdateien
Seite 4
reduziert Gobbys Nützlichkeit auf den Bereich der kollaborativen Arbeit an Programmcode o.Ä.
(wo es durch das Vorhandensein integrierten clientseitigen Syntax-Highlightings aber seine Stärken
zeigt).
Gobby kann in jedem TCP/IP basierten Netzwerk, auch ohne WAN-Anbindung, verwendet werden.
Der Client arbeitet sehr ressourcensparend (weniger als 5MB Arbeitsspeicher) und ist für Windows
und Linux verfügbar. Auch der Server arbeitet sehr ressourcensparend (weniger als 10MB
Arbeitsspeicher, selbst bei mehr als 5 Nutzern, sowie geringe CPU-Auslastung). Es ist kein
dedizierter Server notwendig, um den Gobby-Dienst bereitzustellen und so kann bei Bedarf auch
auf einer Desktop-Arbeitsstation eine Sitzung eröffnet werden, ohne dass diese Arbeitsstation
ausgelastet ist.
III. Entferntes, kollaboratives Arbeiten mit Google Docs
„Docs“ ist eine von Google kostenlos2
bereitgestellte Office-Suite, die im
Webbrowser lauffähig ist, wobei alle
Dokumente in den Google Rechenzentren
und nicht auf den Client-PCs gespeichert
werden. Diese Office-Suite beinhaltet eine
Möglichkeit zum Bearbeiten von
Textdokumenten (ähnlich „OOo3 Writer“
oder „Microsoft Word“) , Zeichnungen
(ähnlich „OOo Draw“ oder „Microsoft
Publisher“), Tabellen (ähnlich „OOo Calc“ Abb. 2: Google Docs Dokumentenliste in Firefox 5.0
unter Ubuntu/Gnome3 mit einer Reihe von
oder „Microsoft Excel“) und Präsentationen Dokumenten, Präsentationen und importierten pdf(ähnlich „OOo Impress“ oder „Microsoft Quellen.
PowerPoint“) [glgd1]. Die Funktionalität der im Webbrowser lauffähigen Office-Suite ist bei
Weitem nicht so umfangreich, wie die der anderen etablierteren Suiten, aber durch die Ausführung
und Darstellung im Browser sind die technischen Grenzen auch wesentlich enger gesteckt, als bei
einer klassischem Systemanwendung [glgd2].
2 Zur Verwendung ist der Besitz eines Google-Accounts notwendig
3 OpenOffice.org
Seite 5
Bei Google Docs kann ein Nutzer ein Textdokument erstellen und wie in anderen
Textverarbeitungsprogrammen bearbeiten, exportieren (u.A. pdf) und drucken. Ebenso kann der
Eigentümer dieses Dokuments (ähnlich wie bei Google Maps) andere Google-Nutzer zur
Kollaboration einladen, sowie Dokumentengruppen (ähnlich „Ordner“, siehe Abb. 2 mit mehreren
Dateien, einige mit der Dokumentengruppe „HTWK“) anlegen, Dokumente diesen Gruppen
hinzufügen andere Google-Nutzer für diese Gruppen freigeben.
Nun können der Besitzer und Mitnutzer gleichzeitig oder, da die Sitzung vom GoogleRechenzentrum aus verwaltet wird, unabhängig voneinander ein für sie freigegebenes Dokument
öffnen und das Dokument bearbeiten. Auch wenn der Besitzer selbst nicht an der Sitzung teilnimmt,
kann kollaborativ gearbeitet werden.
Die Nutzer können, ähnlich wie bei Gobby, den Inhalt live bearbeiten. Welche Inhalte von welchem
Nutzer eingebracht und bearbeitet werden, wird jedoch nicht farblich hinterlegt und ist, gerade
wenn die Nutzer nicht gleichzeitig an dem Dokument arbeiten, nicht direkt nachzuvollziehen. Da es
sich jedoch (anders als bei Gobby) um Dokumente an Stelle einfacher Textdateien handelt, besteht
bei Textfärbung oder farblicher Hinterlegung (als Hinweis auf den Ersteller) durchaus
Verwechslungsgefahr mit wirklicher Textgestaltung.
Die Verzögerung in der Sichtbarkeit der Änderungen innerhalb der Dokumente ist für alle
gleichzeitig arbeitenden Nutzer, abhängig von der spezifischen Verbindung, gering. Wenige 100
Millisekunden, oft weniger, sind für Google Docs übliche Verzögerungen.
Beim Bearbeiten der Dokumente ist für alle Nutzer stets der Viewport4 der anderen Nutzer sichtbar,
so ist es überschaubar, welcher Nutzer auf welcher Seite des Dokuments arbeitet. Es gibt einen
eigenen Chat für jedes aktive Dokument, so ist eine übersichtliche Kommunikation gewährleistet,
im Gegensatz zu Gobby, wo es nur einen Chat für eine Sitzung gibt, unabhängig davon, wie viele
Nutzer an wie vielen Dokumenten arbeiten. Wenn diese dokumentenbezogene n:n-Kommunikation
jedoch nicht ausreicht, kann für eine 1:1-Kommunikation auf Google Talk zurückgegriffen werden.
Zur Kontrolle aller Änderungen an den Dokumenten ist außerdem eine vollständige
Revisionshistorie, also eine Liste aller Änderungen, vorhanden und der Besitzer kann das
Dokument auf jeden bisherigen Zustand zurücksetzen.
4 Der für einen Nutzer eines Programms sichtbare Teil des Dokuments oder (allg.) der zu bearbeitenden Datenstruktur.
Dies umfasst nicht die Bedienelemente. Im Webbrowser zum Beispiel der sichtbare Teil der Internetseite.
Seite 6
Google Docs benötigt einen modernen Browser (IE 8, Firefox 4 usw.) und eine Internetverbindung
mit mind. 200kbit/s (EDGE und schneller) Datenrate. Google Docs ist damit nicht von einem
speziellen Betriebssystem abhängig. Browser mit entsprechenden Funktionen sind auf allen
aktuellen, etablierten Betriebssystemen verfügbar.
Google Docs eignet sich aufgrund von fehlendem Syntax-Highlighting5 nicht für kollaboratives
Programmieren sondern nur für übliche Office-Anwendung. Dabei ist Google Docs nicht so
mächtig, wie andere etablierte Office-Suiten, aber eine durchaus brauchbare Alternative für den
Heimgebrauch. Das Fehlen erweiterter Diagrammfunktionen, Import- und Exportfunktionen,
Makros, Datenbankanbindungen und das Fehlen der Möglichkeit zur Einbindung spezieller Fonts
machen Google Docs für den Gebrauch im professionellen Bereich ungeeignet. Die
Kollaborationsfunktionen sind trotzdem zukunftsweisend und es ist davon auszugehen, dass auch
die klassischen Office-Suiten in naher Zukunft mit ähnlichen Funktionen aufwarten werden6.
IV. Kollaboratives und unabhängiges Arbeiten an einer
Arbeitsstation mit MPX
Multi-Pointer X [mpx1] ist eine Erweiterung des X-Servers X.Org. In der normalen7 Version des XServers gibt es jeweils nur einen Kanal für die Eingabe durch ein Zeigegerät (Maus, Trackpad,
Touchpad, Touchscreen usw.) und einen Kanal für die Eingabe durch eine Tastatur. An einen
Computer können zwar mehrere der genannten Eingabegeräte angeschlossen werden, aber so lange
diese Geräte die selbe Sitzung ansteuern, überlagern sich die Eingaben der Geräte. Bei zwei
vorhandenen Mäusen, die sich in entgegengesetzte Richtungen bewegen, würde der Mauscursor
also nur wackeln, aber keine signifikante Bewegung in eine Richtung machen. Da es auch nur einen
Cursor gibt, kann auch immer nur ein Objekt der graphischen Oberfläche den Eingabefokus
besitzen und somit würde das Anschließen einer weiteren Tastatur nur bewirken, dass Nutzer
gleichzeitig nur ein und das selbe Eingabefeld benutzen können.
Es können durch die Verwendung mehrerer Monitore mit separaten X-Session auch separate
Gruppen von Eingabegeräten verwendet werden. Da es sich um unabhängige X-Sessions handelt
(die nur „zufällig“ auf der selben Maschine ausgeführt werden), können die Nutzer jedoch nicht
5 Siehe Kapitel II
6 Microsoft SharePoint Server beinhaltet bereits ähnliche Funktionalität [mssp]
7 Mit den als Voreinstellung gesetzten Compilerflags kompiliert bzw. von bekannten Distributionen wie Ubuntu,
Debian, Fedora usw. ausgelieferten Binärpaketen
Seite 7
wesentlich besser interagieren, als an separaten Arbeitsstationen, da sich die Nutzer nur ein
gemeinsames Dateisystem teilen (dies ist aber auch, abhängig von der Konfiguration, bei der
Verwendung von Thin Clients der Fall).
Durch die Verwendung von MPX können mehrere Eingabegeräte (z.Bsp. eine Maus und eine
Tastatur) zu einer Gruppe zusammengefasst werden. Diese Gruppe von Eingabegeräten teilt sich
jeweils einen Eingabecursor, damit sich die Eingaben der Eingabegeräte, wie bei der Verwendung
eines Cursors, nicht überlagern [mpx2]. Diese verschiedenen Cursor, die sich zum Beispiel durch
Farbe unterscheiden8 (die exakte abhängig vom Fenstermanager [mcwm]), können unterschiedliche
Applikationen in der selben X-Session (auf einem oder mehreren Ausgabegeräten) bedienen.
Applikationen deren Funktionalität oder Umsetzung nicht auf der Annahme beruht, dass es nur
einen Cursor gibt, funktionieren hierbei problemlos auch ohne Änderungen.
Die Konfiguration eines solchen Systems ist umfangreich, da die komplexen X-ServerKonfigurationsdateien von Hand geschrieben werden müssen (übliche Desktop-Konfigurationen
mit einem Monitor und einem Satz Eingabegeräte, wie Maus u. Tastatur, werden durch diverse
Werkzeuge zur automatischen Konfiguration erstellt). Außerdem muss das System einen X-Server
verwenden, was die Anwendbarkeit auf Unix-Systeme beschränkt.
V. Screen-Sharing per VNC
VNC (Virtual Network Computing) ist eine graphische Desktop-Sharing-Technologie. VNC benutzt
hierbei das remote framebuffer-protocol, welches auf dem sog. „Pixel-Level“ (hierbei wird der
Bildschirminhalt als eine Bitmap-Grafik übertragen) arbeitet [vnc1].
Der VNC-Server stellt hierbei für die Clients ein Interface bereit, um schreibend auf die
Schnittstellen der Eingabegeräte Maus und Tastatur des Servers zuzugreifen. Außerdem sendet der
VNC-Server das ausgerenderte, also von der Grafikkarte erstellte, Monitorbild an die Clients zurück
(siehe Abb. 3, Monitorbild des Windows 7 Hosts im VNC-Client sichtbar).
Da das Monitorbild als Bitmap (je nach Konfiguration komprimiert und nur in Teilbildern) an die
Clients gesendet wird, ist das Datenaufkommen im Vergleich zu anderen Systemen zum DesktopSharing höher. RDP9 zum Beispiel sendet an die verbundenen Clients auch Grafikprimitive
8 Die Art der Darstellung des Unterschieds der Cursor ist Sache des Fenstermanagers. Der projekteigene
experimentelle Fenstermanager MPWM (Multi-Pointer Window-Manager) unterscheidet die Eingabecursor durch
verschiedene Farben und färbt die Fenster, in denen der Eingabecursor Eingabefokus besitzt, in der Farbe des
Cursors.
9 Remote Desktop Protocol, [msdn1]
Seite 8
(Bitmap-Cache-Objekte, Textobjekte), um das Datenaufkommen zu verringern. Durch das hohe
Datenaufkommen sind Frameraten auch in 100Mbit-Lan-Bereich niedrig (teilw. weniger als 5
Bilder pro Sekunde) und für Multimedia-Anwendungen völlig ungeeignet.
Da das Monitorbild als PixelObjekt (Bitmap) übertragen wird,
skaliert dieses System auch
schlecht auf Darstellungsgeräte mit
hoher Auflösung (1080p, 2k, 4k
und mehr), da das
Datenaufkommen mit der Anzahl
der Pixel im Darstellungsbereich
(in Abhängigkeit von der
Komprimierung) entsprechend
zunimmt.
Abb. 3: Windows 7-Desktop (1080p) mit TightVNC als Server
auf Ubuntu Linux mit Vinagre [gnmvnc] als VNC Client
dargestellt
Ein weiteres Problem beim Screen-Sharing mit VNC ist, dass sich alle Nutzereingaben gegenseitig
überlagern. Das System ist dann ähnlich problembehaftet gleichzeitig gemeinsam nutzbar, wie
wenn mehrere Eingabegeräte an die selbe Arbeitsstation angeschlossen werden (ohne MPX oder
ähnliche Konfiguration).
Es besteht jedoch die Möglichkeit, VNC und MPX zu verbinden [printf1]. x11vnc-multiptr ist ein
VNC-Server für X-Server mit aktiviertem Multi-Pointer-Support. Hierbei bekommen alle mit dem
Server verbundenen VNC-Nutzer eine eigene Gruppe von virtuellen Eingabegeräten (Maus,
Tastatur) am MPX-gestützten System zugeordnet. Jeder Nutzer kontrolliert so einen eigenen Cursor
auf dem gemeinsamen Bildschirm.
So können mehrere Nutzer gleichzeitig auf verschiedene Applikationen des Servers zugreifen, die
Framerate nimmt hierbei im Gegensatz zur Einzelnutzung noch weiter ab, da das Monitorbild an
mehrere Nutzer gleichzeitig versendet werden muss. Da viele Nutzer gleichzeitig Applikationen auf
dem selben Display nutzen und dafür der entsprechende Platz nötig ist, muss das verwendete
Display in der Regel sehr groß (1080p und größer) sein. Das Datenaufkommen nimmt durch die
höhere Displaygröße, im Gegensatz zur Einzelplatznutzung, entsprechend zu.
MPX über VNC ist in seiner Nutzbarkeit vornehmlich durch die Nachteile von VNC beschränkt
und durch die niedrige Framerate und hohes Datenaufkommen für langsame Netze (weniger als
3Mbit Upstream beim Server) kaum geeignet. Da der Server ein ausgerendertes Monitorbild zur
Seite 9
Verfügung stellt, muss er auch eine Grafikkarte (und ein entsprechendes Anzeigegerät in der
Zielauflösung) besitzen und es muss eine graphische Oberfläche mit allen ihren Komponenten
bereit gestellt werden. Dies ist in einer Server-Umgebung in der Regel nicht vorgesehen und daher
schwer realisierbar.
VI. Möglichkeiten des Broadway-Interface in GTK+3.2
GTK+ ist eine Komponentenbibliothek
zum Erstellen von graphischen
Oberflächen. GTK+ ist für X-Server
unter Linux/Unix verfügbar, aber auch
für Windows und Mac OS X. Dieses
Kapitel beschäftigt sich mit dem neuen
Broadway-Interface, welches
Abb. 4: Gnome Taschenrechner per Broadway in Firefox
5 unter Debian/Gnome3 – Quelle: Alexander Larsson
verfügbar sein wird (Windows und Mac
[gnmelrssn]
OS X wird hierbei außer Acht gelassen). Das Broadway-Interface ist noch in einer Phase der
voraussichtlich in GTK+3.2 für Linux
Entwicklung und so sind einige Features instabil.
In der Regel wird GTK+ nur mit der Option --enable-x11-backend kompiliert [gtk1]. Dies
ermöglicht es GTK+-Anwendungen über das gemeinsame GTK+-Interface mit dem X-Server zu
kommunizieren und entsprechende graphische Oberflächen darstellen zu lassen. Kompiliert man die
aktuelle10 git-master-branch (der experimentelle Entwicklungszweig) mit der Option --enablebroadway-backend (das X11-Backend muss auch aktiviert sein) besteht die Möglichkeit, eine
Applikation mit GDK_BACKEND=broadway anwendung& mit Broadway als Backend zu
starten [gnme1]. Damit wird nicht der X-Server angesteuert, sondern ein Webserver gestartet, der
eine HTML5-Seite generiert, die genau die gestartete Applikation enthält. Die Anwendung lässt sich
dann wie gewohnt steuern, nur, dass sie sich im Browser befindet (siehe Abb. 4, Gnome
Taschenrechner im Browser).
Zur Kommunikation zwischen Server und Client wird die HTML5-Technologie Websockets
genutzt. Die Websockets-Funktionalität muss zur Zeit auf Grund von möglichen Sicherheitslücken
in Firefox manuell aktiviert werden [hse1]. So können, auch ohne X-Server (mit X-Forwarding)
graphische Applikationen auf einem entfernten Server ausgeführt und lokal angezeigt werden. Die
Verbindung ist in der aktuell verfügbaren Version eine 1:1-Verbindung, sodass eine Anwendung nur
10 Stand Juli 2011
Seite 10
von einem Client gesteuert werden kann. Es gibt jedoch in der Websockets-Technologie keine
grundlegende Einschränkung, die Gegen die Umsetzung einer 1:n-Verbindung sprechen, sodass
mehrere Clients zur gleichen Zeit eine Anwendung steuern können.
Da für die entfernten Nutzer kein ssh-Zugang notwendig ist, gibt es potentiell einen Angriffsvektor
weniger, da die Nutzer der Applikation keinen User-Account auf dem Serversystem haben müssen.
Ein Passwortschutz kann über http-Authentifikation bereit gestellt werden. Durch die Verwendung
des Broadway-Interface können auch verschiedenste Applikationen „on Demand“ bereit gestellt
werden. Verschiedene Geschäftsmodelle und Anwendungen sind an dieser Stelle denkbar.
VII. Zusammenfassung und Beispielanwendung
Die Betrachtung hat gezeigt, dass es verschiedene spezialisierte Möglichkeiten zum kollaborativen
Arbeiten gibt, die alle ihre Grenzen und Limitierungen haben. Keines der Programme kann für alle
möglichen Nutzungsfälle eine ganzheitliche Lösung bieten. Gobby (Kapitel II) ist stark auf das Feld
der Softwareentwicklung und Programmierung beschränkt, hat dort aber einen festen Platz. Google
Docs (Kapitel III) ist für den Gebrauch im professionellen Bereich – im Gegensatz zu anderen
Office-Suiten – bei Weitem nicht mächtig genug, kann aber, durch das von Google durchgeführte
Hosting, mit minimalen technischen Voraussetzungen eingesetzt werden. VNC (Kapitel V) ist durch
die hohe benötigte Datenrate (trotz niedriger Framerate) für viele Anwendungsgebiete nicht nutzbar.
Dadurch, dass vollständige Monitorbilder übertragen werden, eignet sich VNC auch mit MPX
(Kapitel IV) nicht für effektives kollaboratives Arbeiten. Mit Broadway-Interface (Kapitel VI) sind
jedoch verschiedene weitere Anwendungsmöglichkeiten für bestehende Software denkbar.
Zum Beispiel: Diverse Application-Server stellen über das Broadway-Backend verschiedene (teils
stark rechenintensive) Anwendungen bereit. Diese Application-Server können sich gemeinsame
Netzwerkfestplatten und Laufwerke teilen, um die Interoperabilität und Datenverfügbarkeit der
verschiedenen Systeme zu gewährleisten.
Nutzer können von zu Hause oder unterwegs mit einem Endgerät mit einem HTML5-fähigen
Browser auf Daten und Applikationen zugreifen und so zum Beispiel auch unterwegs vollwertige
Desktop-Applikationen nutzen. Die Art des darunterliegenden Geräts oder das Betriebssystem
spielen hier nur eine untergeordnete Rolle. Im Desktop-Bereich ist außerdem Verwendung von
minimalen Systemumgebungen, wie ASUS Express Gate [asusexp], denkbar, welche nur die
Browserfunktionalität besitzen und in weniger als 10 Sekunden gebootet sind. Wenn nur die
Browserfunktionalität benötigt wird, gibt es keine Notwendigkeit, in ein vollwertiges
Betriebssystem zu booten.
Seite 11
Neben individuellen Arbeitsstationen (oder Thin Clients) sind Gruppenarbeitsstationen mit
mehreren Bildschirmen und Eingabegeräten (z.Bsp. Jeweils 4) in separaten X-Sessions denkbar.
Diese Gruppenarbeitsstationen müssen nur die Netzwerkverbindung zu den Application-Servern
halten und entsprechende HTML5-fähige Browser zur Verfügung stellen. Rechenzeit wird an diesen
Stationen, bis auf das Bereitstellen der Browser und der graphischen Oberflächen nicht benötigt. Da
der Browser das gemeinsame universelle Interface ist, wird außerdem die Konfiguration und
Administration erleichtert.
Durch die Verwendung des Browsers als universelle Schnittstelle, kann die darunterliegende Ebene
(Betriebssystem, Hardware) heterogener sein, als bisher. Auch die automatische Softwaresteuerung
kann durch den Zugriff auf Steuerelemente über den von Broadway erstellten DOM11-Baum
vorgenommen werden. Dies lässt sich leicht mit JavaScript implementieren und benötigt keine
vertieften Betriebssystemkenntnisse, um Zugriff auf die Komponenten der graphischen Oberfläche
zu erhalten.
Viele Desktop-Applikationen können so auf neue Art und Weise auf verschiedene Arten und Weisen
zugänglich gemacht werden.
11 Document Object Model
Seite 12
VIII. Abbildungsverzeichnis
Abb. 1: Gobby unter Ubuntu/Gnome3 - Editieren einer php-Datei mit entspr. Syntax-Highlighting. 3
Abb. 2: Google Docs Dokumentenliste in Firefox 5.0 unter Ubuntu/Gnome3 mit einer Reihe von
Dokumenten, Präsentationen und importierten pdf-Quellen................................................................5
Abb. 3: Windows 7-Desktop (1080p) mit TightVNC als Server auf Ubuntu Linux mit Vinagre
[gnmvnc] als VNC Client dargestellt...................................................................................................9
Abb. 4: Gnome Taschenrechner per Broadway in Firefox 5 unter Debian/Gnome3 – Quelle:
Alexander Larsson [gnmelrssn]..........................................................................................................10
IV. Quellen
•
[asusexp] - “ASUS Express Gate”, ASUSTeK Computer Inc., Juli 2011,
http://expressgate.asus.com/
•
[avahi] - “AboutAvahi”, Avahi Project Group, Juli 2010,
http://avahi.org/wiki/AboutAvahi#Details
•
[aws] - “Amazon Elastic Compute Cloud (Amazon EC2)”, Amazon.com Inc., 2011,
http://aws.amazon.com/de/ec2/
•
[crn1] - “Amazon Cloud Revenue Could Exceed $500 Million In 2010: Report”, Andrew R
Hickey, August 2010, http://www.crn.com/news/applications-os/226500204/amazon-cloudrevenue-could-exceed-500-million-in-2010-report.htm
•
[drgs] - “Thomson Scientific Takes a Fresh Look at Multiauthor Papers”, drugs.com,
November 2007, http://www.drugs.com/clinical_trials/thomson-scientific-takes-fresh-lookmultiauthor-papers-2810.html
•
[gby] - “Gobby”, 0x539 dev group, März 2011, http://gobby.0x539.de
•
[gby1] - “[Release] Gobby 0.4.90, libinfinity 0.1.0”, Armin Burgmeier, Oktober 2008,
http://article.gmane.org/gmane.network.obby.user/284
•
[gby2] - “Testimonials”, Jamey Sharp u. Josh Triplett, Mai 2007,
http://gobby.0x539.de/trac/wiki/Testimonials
•
[gbydwn] - “Download – Gobby”, 0x539 dev group, März 2011,
http://gobby.0x539.de/trac/wiki/Download
•
[glgd1], „Google Docs Tour“, Google Inc., 2011, http://www.google.com/google-ds/tour1.html
•
[glgd2], „How Google Docs Works“, Jonathan Strickland, 2008
http://communication.howstuffworks.com/google-docs.htm
Seite 13
•
[gnme1] - “Gtk+ HTML backend update”, Alexander Larsson, März 2011,
http://blogs.gnome.org/alexl/2011/03/15/gtk-html-backend-update/
•
[gnmelrssn] – GTK+ Broadway screencast, Alexander Larsson, März 2011,
http://www.gnome.org/~alexl/broadway-screencast.webm
•
[gnmvnc] - “Vinagre”, David King, Juli 2011, http://projects.gnome.org/vinagre/
•
[gtk1] - “Compiling the GTK+ libraries”, The GNOME Project, 2011,
http://developer.gnome.org/gtk3/unstable/gtk-building.html
•
[hse1] - “WebSockets in Firefox 4 wegen Lücke im Protokolldesign deaktiviert”, Daniel
Bachfeld, Dezember 2010, http://www.heise.de/security/meldung/WebSockets-in-Firefox-4wegen-Luecke-im-Protokolldesign-deaktiviert-Update-1150157.html
•
[mcwm] - “Multi-Cursor Window Manager”, Kai Li research group, März 2006,
http://multicursor-wm.sourceforge.net/
•
[mpx1] - “MPX: Multi-pointer X”, Wearable Computer Lab, 2010,
http://wearables.unisa.edu.au/projects/mpx/
•
[mpx2] - “compiz with mpx support”, Peter Hutterer, Juli 2008, http://who-t.blogspot.com/
•
[msdn1] - “Remote Desktop Protocol”, Microsoft Developer Network, Juli 2011,
http://msdn.microsoft.com/en-us/library/aa383015.aspx
•
[mssp] - “Leistungsvermögen”, Microsoft Corporation, 2011,
http://sharepoint.microsoft.com/de-at/product/capabilities/Seiten/default.aspx
•
[printf1] - “Multi-pointer Remote Desktop”, Chris Ball, Januar 2009,
http://blog.printf.net/articles/2009/01/26/multi-pointer-remote-desktop
•
[vnc1] - “Introduction to TightVNC”, TightVNC, 2010, http://www.tightvnc.com/intro.php
Seite 14