Collaboration
aus Nomads, der freien Wissensdatenbank
Begriffsbestimmung und -kategorisierung siehe WikiPedia
Inhaltsverzeichnis |
Ziel
Man unterscheidet asynchrone gegenüber synchroner Collaboration (auch Echtzeit-Collaboration). Bei der synchronen Collaboration benötigen mehrere Nutzer zu unterschiedlichen Zeitpunkten effizienten Zugriff auf Daten, beispielsweise Word- oder Excel-Dokumente. Ein Problem ist die Verwaltung konkurrierender Zugriffe sowie die Reduzierung des übertragenen Datenvolumens. Bei der synchronen Collaboration geht es um gleichzeitiges Arbeiten. Dazu gehört das gemeinsame Editierten solcher Dokumente oder auch die Übertragung von Audio- und Video-Streams (Conferencing Lösungen) sowie von Desktop-Inhalten (Remote Desktop Lösungen) und das parallele Steuern von Anwendungen (Application Sharing). Spezielles Interesse gilt dem gemeinsamen Editieren von Dokumenten (Joint Editing) sowie dem gemeinsame Navigieren im Internet (Cobrowsing).
Problemstellung
Wichtiges Problem bei der Collaboration an verteilten Daten ist die effiziente und konsistente Synchronisation ggf. konkurrierender Schreib-/Lese-Zugriffe. Typischer Weise muß man dabei mit geringer Kommunikationsbandbreite im Verhältnis zur Rechenleistung sowie mit temporären Verbindungsunterbrechungen umgehen können.
Gelöst wird dies i.d.R. durch lokales Caching der Daten sowie bandbreitenschonende Updates der Caches.
Grundlegend sind dazu Differentielle Updates: Seien Dateien A auf Knoten K und A' auf K'. A sei neuer. Der naive Ansatz würde A von K zu K' übertragen und dort A' überschreiben. Zur Synchronisation großer Dateien bei geringer Bandbreite liefert dieser naive Ansatz schlechte Performance. Es würde ja auch ausreichen, nur die Unterschiede zwischen A und A' zu übertragen.
Der rsync-Algorythmus ist eine ausgereifte Alternative, um ohne Zwischenspeicherung von Vorversionen oder Zuständen die zu übertragenden Datenmenge zu reduzieren. Dazu weren Hashcodes der Blöcke zunachst vom Empfänger zum Sender zurückgeschickt, die unterschiedlichen Blöcke auf dem Sender identifiziert und nur diese übertragen. Rsync erreicht bei kleinen Änderunge auf großen Dateien etwa eine Reduzierung des Netztraffics auf 3-5%.
Kollisionen und Merge: Seien A* und A' beides Updates von A. Wenn A* auf A' kopiert werden soll, liegt eine Kollision vor, da keine Version implzit neuer ist. Es muss ein Merge ausgeführt werden. Dies geht manchmal automatisch, meist ist manuelle Kontrolle nötig.
Versionierung: Rsync kann keine Kollisionen erkennen, da keine Versionen und keine Statusinformation vorliegen. Versionsverwaltungssystemen speichern Zwischenstände. Das Senden von Hashcodes ist dann überflüssig, die können aus den Vorversionen lokal generiert werden. Auch Überschneidungen zwischen Dateien, wie sie durch Umbenennen und Kopieren ständig vorkommen, kann rsync nicht komprimieren.
Push/Pull Protokolle: Typischerweise sind Synchronizationsverfahren so wie rsync nur Client-iniziert. Änderungen von anderen Quellen werden dann nur zum Server, nicht automatisch zu weiteren Clients propagiert.
Client/Server oder Peer2Peer?: Eine zentralisierte Kommunikation reduziert den Taffic an den Clients. Denn bei einer echten Peer-to-Peer Lösung würden alle Peers Update-Polls erhalten. Und neue Peer-Knoten müssten sich ihren Workspace komplett von den Peer-Knoten holen. Das kosten Bandbreite am Client. Zentralisierte Architekturen skalieren aber nur begrenzt, irgendwann wird der zentrale Server zum Bottleneck und Single Point of Failiure. Lösungen sind Lastbalancierer mit mehreren zentralen Servern, Failover-Funktionen oder "Supernodes" in Peer2Peer-Systemen.
Collaboration Tools
Umfangreiche Liste bei SVPAL und bei Free KMunity
- Groove: Habe ganzes Projekt mit Groove gearbeitet und war sehr zufrieden. Groove ist z.Zt. das am weitesten fortgeschrittene und integrierteste Tool für "Swarm Computing". Nach ca 5 Min. Einarbeitung kommt man mit den Grundfunktionen gut klar und kann loslegen. Sehr effizientes Delta-Protokoll, einfache Einladung neuer Mitglieder (ein Mausklick reicht), vollautomatisierte Synchronization und trotzdem volle manuelle Kontrolle bei Bedarf, voll Peer-2-Peer, Firewall Traversal und Offenheit durch Web Services, gesamter Traffic verschlüsselt mit Pufferung über Server, dadurch Synchronisation auch möglich, wenn Peers offline. Groove macht Kommunikation über einen kostenlos zur Vefügung gestellten Server. Der Server puffert aber nur die letzten Änderunge. Kommt z.B. jemand neu in den Workspace, muss der erneut von mindestens einem Client geholt werden. Anscheinend wird immer der Umweg über den Server genommen. Wenn der Groove-Server down ist funktioniert Groove hoffentlich trotzdem (habs natürlich nicht getestet). Die Software für einen eigenen Enterprise-Groove-Server liegt jedenfalls im 5-stelligen Euro Bereich. Weitere Nachteile: Groove erfordert Client-Software Download von 20 MB, 60-Tage Preview danach schaltet diese Version auf 56 KByte Bandbreite um (was allerdings keine Einschränkung ist, wenn man sowieso nur über Modem arbeitet), Installation dauert ein paar Minuten und die Software läuft bislang nur unter Windows. Manche mögen die integrierte Lösung (Chat mit Bodyliste, Discussion Board etc sind dabei) - ich habe es lieber, diese Tools einzeln zusammenstellen zu können. Großer Nachteil bei Groove ist die fehlende Versionskontrolle. DAS etwas geändert wurde meldet Groove. Meistens sieht man es auf einen Blick. Manchmal hätte man aber gerne explizite Anzeige, WAS geändert wurde. Und Änderungen zurücknehmen geht natürlich auch nicht.
- FolderShare: Eine ganz ähnliche Windows Lösung ist FolderShare. Vorteil: Freeware. Aussserdem transparent in Windows Explorer eingebettet. Ein Deamon überwacht einfach Änderungen eines entsprechend freigegebenen Verzeichnisses. Dadurch volle Integration in alle Anwendungen. Tolles User Interface mit Unterschiedlichen Zugriffsrechten. Praktisch 0 Einarbeitungszeit auch für Novizen. Nachteil: Anders als bei Groove gibt es keine gepufferte Kommunikation (bei Groove über den kostenlos zur Verfügung gestellten Server). Es muß also immer mindestens ein weiterer Knoten online sein, sonst kein Abgleich möglich. Auch die Client-Bandbreite (s.o.) ist wieder ein Problem. Man müsste also selbst einen dedizierten Server aufsetzen und hat wieder Hürden, die man bei Ad-hoc Collaboration eigentlich überwinden wollte.
- Sonstige Synch-Tools: Die Firma Foldermatch führt eine der umfangreichsten Listen mit gut 100 Tools zum Synchronisieren verteilter Daten. Allerdings: Die meisten sind kommerziell, unterstützen kein differenzielles Update oder sind aus anderen Gründen nicht für ad-hoc Collaboration geeignet.
- BSCW: Das von der Fraunhofer GMD entwickelte BSCW taugt als Versionsverwaltung, die Server-Software ist in Basisversion kostenlos, ist über Browser zugreifbar und daher auch ohne speziellen Client zugreifbar und das Beste: das Frauhofer Institut hostet kostenlos den Content. Das Frauhofer Institut bietet tatsächlich für jeden kostenlos Workspace an. (BSCW/FIT: From the Terms of Use: The maximum space per user is 10MB.) Hübsch ist auch die Möglichkeit, dass man bestimmte Events sieht, z.B. wer welche Inhalte gelesen hat. Allerdings kann BSCW kein Long-Term Locking (muss man manuell simulieren), kann keine Kollisionserkennung und erlaubt deshalb kein paralleles Bearbeiten. Die Arbeit mit BSCW ist daher gegenüber Groove oder einem entsprechend konfigurierten CVS deutlich umständlicher. Eventuell lassen sich diese Nachteile aber durch kleine Erweiterungen ausbügeln. Es gibt bereits ein Java Frontend. Dieser "Uploader" bringt aber nicht viel. Doch seit der Version 4.2 unterstützt BSCW WebDav. Damit kann man den BSCW Worskspace transparent in den Windows Explorer einbinden. Leider kann WebDav nicht wie CVS oder Unison differenzielles Update. BSCW bietet zwar eine neue Synchronizationsfunktionen über "Aktenkoffer". Soweit ich das bisher erkennen konnte kann die aber auch kein differentielles Update. Auch die Windows Aktenkoffer synchronisieren nicht über WebDav (klar, das geht nur, wenn auf der anderen Seite ein entsprechender Prozess die Deltas einbauen kann). Haufenweise Funktionen des BSCW Systems halte ich alle eher für überflüssig. Wegen fehlendem differenziellen Update ist das System nicht wirklich zur Ad-hoc Collaboration geeignet. Der WebDav Zugang ist aber toll - wenn man breitbandig verbunden ist und nicht wirklich parallel ständig lesend und schreibend an MB-großen Word-Dokumenten arbeitet. Über die WebDav Erweiterung Delta-V soll Versionierung und vermutlich auch differntielles Update möglich sein. Konnte das bisher nicht rauskriegen. Wenn ja wäre das sicher die beste Lösung. Delta-V soll auch zu Subversion, dem CVS-Nachfolger (s.u.) kompatibel sein. Soweit ich das bisher rausfinden konnte kann BSCW abr nicht die Delta-V Erweiterung. Wenn ich mit dem DAV-Explorer zugreife meldet er "Unsupported Method".
- WebDAV/Delta-V: Für diesen Standard gibt es eine Menge kommerzieller WebSpace Anbieter, siehe WebDAV Liste. Habe Xythos ausprobiert. Das kostenlose Quota: "5M storage quota and a 5M / 3 hours bandwidth quota". Xythos hat komfortable Weboberfläche. Das funtioniert sehr schön, sieht aus wie BSCW-"light". Als Client soll angeblich Windows Explorer gehen, wenn man Delta-V nutzen möchte braucht man z.B. den DAV-Explorer. Hat beides nicht gekappt. Der Dienst ist offenbar noch unfertig. Keinen anderen frei verfügbaren zum Testen gefunden. Lange liste der Implementationen hier. Gibts welche wo auch das Delta-V klappt?
- CVS: Unison und CVS sind beides Open Source Lösungen zum "Sychronisieren" verteilter Dateien, letzteres mit leistungsfähiger Versionsverwaltung. Zu Unison siehe auch PDF zum Thema File-Synchronization. Beide können parallele Änderungen in ASCII Files (z.B. C++ oder LaTeX) automatisch verschmelzen, indem sie externe Tools aufrufen. Nur selten ist eine manuelle Kollisionsauflösung nötig. Echtes Swarm Computing ist damit aber vergleichsweise holperig. Allerdings reduzieren sich diese Hürden durch GUI Frontends wie WinCVS oder Tortoise, externe Programme wie WinMerge oder Word können als Conflict Resolution Tool eingebunden werden und es existieren auch Hosting-Dienstleister. Durch Erweiterungen ließen sich Word- oder OpenOffice-Files auch auf der XML-Ebene automatisch mergen. Es existieren hunderte von Tools für CVS, z.B. Web-Betrachter (CVSviev) uvm. Leider ist das Differentielle Update nicht sehr weitgehend. Unison nutz den rsync-Algorythmus. CVS macht differenzielles Update nur beim Checkout, nicht beim Commit - warum weiß ich nicht, scheint einfach ein fehlendes Feature zu sein. Anders als bei Lösungen mit einem bereits aufgesetzten und frei nutzbaren Server (siehe BSCW oder Groove) ist ein großes Hindernis in der praktischen Nutzung, dass neue Accouts aufwendig auf einem CVS Server administriert werden müssen. Für Informatiker mit Root-Zugang zu einem Server sicher kaum Nachteil, aber für interdisziplinäre Collaboration doch etwas holprig. Abhilfe schaffen hierbei freie Hosting Dienstleister (siehe nachfolgend).
- Freepository: Es gibt diverse CVS Open Source Project-Hoster mit vielen Features, weit bekannt ist z.B. Sourceforge. Projekte sind dort aber immer "public readable". Closed Group-Repositories kosten. Einzige Ausnahmen, die ich gefunden habe: freepository und CVSdude. Ich habe Frepository mal über das Web Interface ausprobiert. Man kann tatsächlich in wenigen Sekunden CVS-Repository anlegen, kriegt 150 MB (kostenlos!) Quota, alles voll über Browser bedienbar, Invitations einfach per Link+Repository Name+Passwort möglich, die gesamte Software ist Open Source und anscheinend kann man auch Tortoise als GUI Client verwenden. Man muss allerdings einmal Tortoise entsprechend konfigurieren, da freepository nur sserver-Protokol unterstützt. Hab noch mal den CVS Zugang über cygwin+commandozeile und auch über Tortoise genau unter die Lupe genommen. Mit der speziellen sserver Erweiterung von cvs, die man von frepository runterladen kann geht es mit cygwin ohne Probleme. Tortoise scheint allerdings nicht ohne weiteres zu funktionieren, man muss spezielle Optionen setzen und offenbar diese spezielle cvs nutzen. Das Windows cvs.exe kann offenbar kein sserver (es werden dynamische ports gebraucht, vielleicht liegts daran). Bisher hab ich das noch nicht hingekriegt. In cvs-ext, ein 500k kompakter Tortoise-ähnlicher Client mit etwas weniger Funktionen, der sich auch in Explorer einbindet, liefs auf Anhieb. Damit kann ich prima Arbeiten. Man muß nur in den Einstellungen das Windows-Programm cvs.exe auf c:\Programme\cygwin\bin\cvs-1.11.1p1.perm13.i386-win32.exe umstellen. Das Programm muß man natürlich von Freepository runterladen und in c:\Programme\cygwin\bin ablegen. Allerdings: Bislang leider kein Delta-Protoll beim Upload, stattdessen werden ganze Files übertragen. Scheint generelles CVS-Problem zu sein, siehe Subversion unten.
- CVSdude: Es gibt 2 MBye kostenlos. Habe es ausprobiert mit Tortoise und funktionierte auf Anhieb. In 1 Minunte hat man alles ready for work. Schöne Lösung für 1 User der Backup haben möchte oder von verschiedenen Orten und Rechnern auf seine Daten zugreifen will. Allerding: Nur ein Account, man kann niemanden einladen, weitere accounts auf das gleiche Repository kosten, alle weiteren Features wie ViewCVS oder Notification kosten.
- Ausblick: Ideal wäre kostenloser Delta-V-hosting-Dienst mit Browser Interface und One-Click Invitation. Wer eingeladen wird müsste dann direkt auf dem entsprechenden Workspace landen, ohne noch irgendwas tippen zu müssen. Ein Weiterer Click würde einen Delta-V-Java-Client starten, mit dem man auch offline arbeiten kann. Eine intelligente Garbage Collection müsste den Webspace auf dem Server periodisch aufräumen. Wer kennt eine ausgereifte Delta-V Client und Server Lösung, am besten Open Source, die wir auf unserem Equippment aufsetzen können?
- Medienportal der Humboldt-Universität: universitätsweit nutzbares Instrument, um multimediale Objekte per Web-Browser abzulegen und für die Zwecke von Forschung und Lehre zusammenzustellen, siehe CMS-Journal Mai 2004
- Delta-V Gateway: Eine Möglichkeit den Missbrauch von Webspace zu limitieren wäre eine Gateway-Lösung. D.h. Delta-V Protokol wird z.B. auf FTP umgelenkt, dass auf einen standard FTP Webspace zugreift. Das Gateway müsste dann nur Zustände speichern. Gibt es sowas schon?
- Subversion: Ist als CVS-Ersatz gedacht und sieht auch recht gut aus. Hier ist es zu finden. Kostenloses Subversion-Hosting, auch Closed Group, gibt's hier. Gegenüber CVS kann es differenzielle Update in beide Richtungen: "Subversion client/server protocol sends diffs in both directions (CVS sends diffs from server to client, but not client to server)". Subversion hat seit Version 1.2 auch Locking. Es gibt einen grafischen Subversion Client für den Windows Datei-Explorer TortoiseSVN. Die Client/Server Protokolle von Delta-V und Subversion sollen voll zueinander kompatibel sein.
- mit dem Open Source Content Management System Plone ist mehr möglich, als man auf den ersten Blick vermutet. Es hat WebDav Interface, man kann es also an Explorer (oder andere Tools) direkt koppeln. Es gibt auch interessante andere Frontends. Auch Terminverwaltung. Und man kann auch externe Editoren nutzen (über WebDav). Es kann auch Kommentieren, um gemeinsam an Dokumenten zu arbeiten. Siehe: Kollaboratives Arbeiten mit Plone ([http://zope.dokumentation.hu-berlin.de/plonehandbuch/kollaboratives_arbeiten/kollaboratives-arbeiten-mit-plone.pdf PDF)
- conduit - Daten unter Gnome mit diversen Geräten synchronisieren
- Hamachi - VPN Lösung, über den Mediation Server kann man "Netzen" beitreten, dadurch lassen sich sehr einfach P2P Netze aufbauen
- docverse - an Word Dokumenten online zusammenarbeiten
Tools zur Echtzeit-Collaboration
- Convenos Meeting Center
- unyte - überträgt Desktop Inhalte. Die kostenlose Variante beherrscht keine Auswahlmöglichkeit der zu übertragenden Fenster, dies geht nur in der Bezahlversion.
- DimDim - Free Desktop Sharing über MS Internet Explorer
- Comparison_of_remote_desktop_software von Wikipedia
- LogMeIn - Browser-basierte Einwahl auf einem remote Rechner, u.a. mit Unterstützung für Nokia n810 Internet Tablet
- http://www.symantec.com/norton/symantec-pcanywhere
- vyew
- wiziq
- yuuguu
- mikogo
- ginzawalk Firefox Plugin zum gemeinsamen Co-Browsen
- AbiCollab Multiuser Editiing für Abiword. Es gibt auch die Initioative GOCollab als Collaboration for GNOME Office.
- synchroedit Multi User Edititing Tool
- Zeroconf - Technik zur konfigurationsfreien Vernetzung von Geräten in lokalen Rechnernetzen.
- Jarnal - Inking Software für tabletPCs, enthält ach Client/Server Kommunikation, um damit ein Distributed Whiteboard zu realisieren. Es können Backgrounds (z.B. PDF) als Annotationshintergrud geladen werden. Open Source. In Java implementiert.
- Windows_Meeting_Space
- Microsoft_SharedView
- o3spaces - Framework zur Office Collaboration, unterstützt u.a. Open Office und Word
- Ausführliche Liste von Screen sharing Tools, zusammengestellt von kolabora in 2006. Genaue Zuordnung von Features erleichtert Übersicht.
VNC-basierte Varianten für Application Sharing
- alkit vnc - VNC Anpaasung, um Anwendungen gemeinsam zu nutzen (statt den gesamten Bildschirm zu übertragen)
- shared-app-vnc
- metavnc
Collaboration Communities
- crossloop Marktplatz mit integriertem Desktop Sharing/Remote Control, um gegen Bezahlung Hilfe von Experten zu erhalten.
Synchronisieren von Emails über IMAP
- [1] - empfehlenswertes How-to mit Workarounds für Outlook 2003
Konferenzen
- MKWI 2010 - Teilkonferenz: 5. Konferenz Mobile und Ubiquitäre Informationssysteme (MMS 2010): "Technologien, Anwendungen und Dienste zur Unterstützung von mobiler Kollaboration"
- Teilkonferenz zu Kooperation
Links
- ToolsCollaboration Liste von Tools
- free-remote-desktop-sharing-applications ausführliche Liste mit Beschreibungen
- Computer_Supported_Cooperative_Work auf Wikipedia
- cobrowsing_tools_and_technology_a.htm
- kolabora Collaboration Plattform
- NOMADS Seminararbeit zum Thema Classroom Collaboration/EeePC als Wireles Beamer Adapter
