Joint Editing / Application Sharing

Slides:



Advertisements
Ähnliche Präsentationen
Object Relational Mapping
Advertisements

/The Anti-Mac Interface, Gentner, Nielson ’96/ WIMP-Prinzipien
Seminar Textmining WS 06/07 Themen Übung 8 Stemming Crawling.
Peter Marwedel TU Dortmund, Informatik 12
Ruby on Rails im Überblick
Seminar: Verteilte Datenbanken
Joint Editing Vorlesung 23. Mai 2002 Gabriele Kunau
Was ist neu in VFX 9.5 im 2. Quartal 2006? Uwe Habermann Visual Extend Product Manager
Tino Reindanz - FSU Jena Seminar Aktive Datenbanken – SS 2007 Folie 1 Seminar Aktive Datenbanken Rule Development Rule Development for Active Database.
12a Produktkonfigurator
Kundenspezifische Anpassungen - Ändern von Objekten
Entwicklung verteilter Anwendungen I, WS 13/14 Prof. Dr. Herrad Schmidt WS 13/14 Kapitel 4 Folie 2 Message Passing mittels Sockets (1) s.a.
Don`t make me think! A Common Sense Approach to Web Usability
Geschäftsprozesse: Workgroup-Computing.
What do you see? Looks like President Clinton and Vice President Gore, right? Wrong... It's Clinton's face twice, with two different haircuts.
You need to use your mouse to see this presentation © Heidi Behrens.
Replikation und Synchronisation
Context-awareness Andreas Bossard, Matthias Hert.
Thread Synchronisation in JAVA
Vorlesung: 1 Workgroup Computing 2003 Prof. Dr. G. Hellberg Studiengang WI FHDW Vorlesung: Workgroup Computing 2. Quartal 2003.
ICT – Modul Dokumentenverwaltung
Negation is when you dont have or dont do something.
Content Management System
Parallelisierung für Multiprozessor-Maschinen
Der formelle Imperativ – the Imperative
Coordinating Conjunctions Why we need them & how to use them deutschdrang.com.
Windows Interface Guidelines for Software Design1 The Windows Interface Guidelines for Software Design.
Die Kunst des Programmierens...
Präsentiert von Riccardo Fuda.  Klassische (symmetrische) Kryptographie  Der weg zur modernen Kryptographie  Message Authentification Codes  Asymmetrische.
Linking sentences or phrases together
Synchronization: Multiversion Concurrency Control
SiPass standalone.
Stephanie Müller, Rechtswissenschaftliches Institut, Universität Zürich, Rämistrasse 74/17, 8001 Zürich, Criminal liability.
Literary Machines, zusammengestellt für ::COLLABOR:: von H. Mittendorfer Literary MACHINES 1980 bis 1987, by Theodor Holm NELSON ISBN
Arbeiten in einem agilen Team mit VS & TFS 11
Alltagsleben Treffpunkt Deutsch Sixth Edition
Name: ___________________________________________ Hör verstehen: (______/10) Mark whether you hear a “du”, an “ihr” or a “Sie” command Wer sagt.
Rules of Play - Game Design Fundamentals by Katie Salen and Eric Zimmerman Universität zu Köln Historisch-Kulturwissenschaftliche Informationsverarbeitung.
1 Konica Minolta IT Solutions Prinzip Partnerschaft MANAGED MONITORING ÜBERWACHJUNG DER SERVERINFRASTRUKTUR UND ANWENDUNGEN DIREKT AUS DER CLOUD.
Gregor Graf Oracle Portal (Part of the Oracle Application Server 9i) Gregor Graf (2001,2002)
Berliner Elektronenspeicherring-Gesellschaft für Synchrotronstrahlung m.b.H., Albert-Einstein-Straße 15, Berlin frontend control at BESSY R. Fleischhauer.
Algorithmen und Datenstrukturen Prof. Dr. Ralf Möller Universität zu Lübeck Institut für Informationssysteme Stefan Werner (Übungen) sowie viele Tutoren.
Kapitel 2 Grammar INDEX 1.Subjects & Verbs 2.Conjugation of Verbs 3.Subject Verb Agreement 4.Person and Number 5.Present Tense 6.Word Order: Position of.
Kapitel 8 Grammar INDEX 1.Command Forms: The Du-Command Form & Ihr- Command 2.Sentences & Clauses.
Quiz: modal verbs Note which sentence is correct: a, b or c.
Das Wetter Lernziele: Heute: The „Wenn“ clause! - To describe and report the weather - To discuss activities done in different types of weather - To compare.
Sven Koerber-Abe, 2015 Grammatik: müssen, dürfen Grammatik: müssen, dürfen.
Oracle IFS Die Brücke zwischen Content Management System und einer Produktpräsentation im Internet.
Word order: 1.In a main clause the VERB is the second idea: Helgakommteben aus der Bäckerei This may not be the second word Meiner Meinung nachsind Hobbys.
On the case of German has 4 cases NOMINATIVE ACCUSATIVE GENITIVE DATIVE.
Indico Meeting Dennis Klein 4. August Übersicht  Korrespondenz CERN  Trouble Ticket Queue  Integration GSI-Accounts  Subversion & Wiki  Todo.
1Crypto AG / P_M_HC-2650-Course-Notes-d_0833_rd.PPT Training and Education HC-2650 Kursunterlagen.
© 2008 TravelTainment The Amadeus Leisure Group Thread-Programmierung im Qt-Framework Von: Simon Lubberich Erstbetreuer:
Sven Koerber-Abe, 2016 Grammatik: Artikel (Zusammenfassung) Grammatik: Artikel (Zusammenfassung)
What’s the weather like?. Look at the question above Turn it around and you have Das Wetter ist.... The phrase Das Wetter ist.... or Es ist.... can be.
Interrogatives and Verbs
Sentence Structure Questions
Apache Camel Christian Schneider
Premiere Conferencing GmbH
Grundlagen Englisch Passive voice HFW Bern.
Vorlesung Völkerrecht Diplomatischer Schutz
Synonyms are two or more words belonging to the same part of speech and possessing one or more identical or nearly identical denotational meanings, interchangeable.
IETF 80 Prague DISPATCH WG
Say What? We put the flowers on the Tisch.
eSciDoc als Plattform für die Wissenschaft Anwendungen und Szenarien
Was ist die Verbindung hier?
OFFICE 365 FOCUS SESSION SHAREPOINT ONLINE 101:LERNE DIE BASICS 19. März 2018 Höhr-Grenzhausen.
School supplies.
- moodle – a internet based learning platform
 Präsentation transkript:

Joint Editing / Application Sharing Dr. Wolfgang Prinz GMD-FIT

Übersicht Grundkonzept Architekturen Konsistenzsicherung asynchrones gemeinsames Editieren

Begriffe Joint Editing: zwei oder mehrere Benutzer bearbeiten gemeinsam ein Dokument - synchron oder asynchron. Application Sharing ermöglicht zwei oder mehreren Benutzern die synchrone Benutzung einer beliebigen Anwendung. Session: eine Periode der synchronen Interaktion unterstützt durch ein Groupware System

Anwendungsszenarien Face-to-face Sitzungen verteilte Sitzungen ... verteilte Sitzungen gemischte Sitzungen: face-to-face und verteilt

Besonderheiten Konsistenzsicherung Antwortzeiten Eingabekoordination Awareness

Was wird gemeinsam genutzt? Telepointer Cursor Scrollbar

Eingabekontrolle - Spektrum single multiple Cursor Jeder darf alles Kontrolle über “Floor” Eingabekontrolle Aspekte: Freiheit <-> Kontrolle Konsistenzsicherung: explizit <-> implizit

Eingabekontrolle

Eingabekontrolle

Referenz Modelle Patterson’s Taxonomy “the primary challenge for synchronous groupware applications is to maintain shared state” (Patterson, 1995) 4 Zustandsebenen Display-Zustand: realisiert in der Video Hardware View-Zustand: logische, visuelle Representation der unterliegenden Daten Model-Zustand: die unterliegenden Daten File-Zustand: die persistente Repräsentation des Models

Single User Anwendung file model view display

Shared State file model view view display display

Synchronized State file file model model view view display display

Hybrider Ansatz file model view view display display

Verteilungsarchitekturen Interlace Framework (Phillips, 1999) physical input devices connected to an input process, which transforms input into logical interface events a chain of more update processes, which transform interface events into updates on state a chain of one or more view processes, which collectively compute an interactive view from the state elements a rendering process, which represents the view to the user on physical output devices

Interlace Architekturelemente Shared State (s) Consistence Maintenance Process (cm) Lautsprecher Monitor Rendering Process (r) Tastatur Maus Input Process (i) Update Process (u) View Process (v) Private state (p) Lautsprecher Monitor Rendering Process (r) Tastatur Maus Input Process (i) Update Process (u) View Process (v) Private state (p)

Zentralisierte Verteilungsarchitektur Anwendung residiert auf einem Server Displaydienste sind verteilt Kommunikation über Interface-level Events X-Window events Varianten Collaboration transparent Collaboration aware

Zentralisierte Verteilungsarchitektur Vorteile Einfachheit Unterstützung von Nachzüglern Nachteile hohes Kommunikationsaufkommen Anfällig bei unterschiedlicher Connectivity Scalability Beispiele: XTV, Netmeeting

Replizierte Verteilungsarchitektur Vollständige Replikation aller Komponenten Varianten collaboration transparent Synchronisation der Eingabe collaboration aware Synchronisation des Zustands relaxed WYSIWIS

Replizierte Verteilungsarchitektur Vorteile evt. geringerer Bandbreitenbedarf (Input vs. Output) verbesserte Antwortzeiten Nachteile Verfügbarkeit der Anwendung bei allen Teilnehmern Konsistenzproblematik Unterstützung von Nachzüglern was wird ausgetauscht? Beispiele: DreamTeam, GINA, COAST

Zentral koordinierte Verteilungsarchitektur ahnlich der vollständig replizierten Architektur jedoch mit zentraler Koordination Varianten collaboration transparent Synchronisation der Eingabe collaboration aware Synchronisation des Updates Synchronisation des Zustands?

Zentral koordinierte Verteilungsarchitektur Vorteile ähnlich der vollständig verteilten Arch. Zentraler Konsistenzalgorithmus vs. verteilter Nachteile zentrale Koordination als Flaschenhals für Performanz und Verfügbarkeit Beispiele: COAST, Habanero

Konsistenzsicherung optimistische Ansätze Responsivität The aim of concurreny control mechanisms is to allow for maximum concurrency while trying to restrict the system from becoming inconsistent or irrecoverable pessimistische Ansätze Vorhersagbarkeit Konsistenz

Designaspekte Locking Transaktionen Turn-Taking Protokolle zentralisierte Kontrolle Abhängigkeits-Erkennung Reversible Ausführung Operations-Transformation

Locking Sperrung von edititierten Bereichen Visuelle Anzeige des gesperrten Bereichs Probleme Overhead: Anforderung und Freigabe explizit implizit Granularität Lock-Typen Simple locks explizite Anforderung / Freigabe Tickle locks idle Zeit bestimmt Lockfreigabe Soft locks überschreibbare locks

Transaktionen Transaktionsablauf: Problem öffnen & sperren ändern commit & freigeben sichtbar für andere Problem verteilte Transaktionen sind schwierig zu implementieren Granularität: Absatz: langsame Antwortzeiten behindern die Interaktion Zeichen: schnelle Antwortzeiten aber teure Realisierung

Transaktionen und der philosophische Unterschied “philosophischer” Unterschied zwischen Datenbanken und Groupware Systemen Datenbank: multi-user System, das ein single- user System simuliert Groupware:multi-user System, das die anderen Benutzer sichtbar macht.

Turn-Taking Protokolle Floor Control mechanische FIFO priorisiert moderiert soziale Einsatzmöglichkeit abhängig von der Anwendung editing voting

Zentrale Kontrolle Zentraler Server empfängt und verteilt alle Benutzereingaben Vorteil: einfache zentrale Konsistenzsicherung Probleme: Ausfallproblematik Flaschenhals Antwortzeiten Eingabe -> Server -> Anzeige

Abhängigkeits-Erkennung sofortige lokale Ausführung von Eingaben Markierung der Eingaben per Zeitstempel erkannte Konflikte werden signalisiert und gekennzeichnet Konfliktauflösung ist Aufgabe der Benutzer Vorteil: schnelle Antwortzeiten wg. lokaler Ausführung Problem: Verlagerung der Konsistenzsicherung auf den Benutzer

Reversible Ausführung sofortige lokale Ausführung von Eingaben Markierung der Eingaben per Zeitstempel Eingaben werden gespeichert und bei einem Konflikt erfolgt eine automatische Konfliktauflösung Problem: Irritation des Benutzers durch nachträgliche automatische Textänderungen.

Operationstransformation sofortige lokale Ausführung von Eingaben Markierung der Eingaben per Zustandsvektor Verteilung der Eingabe an alle inkl. des eigenen und der anderen Zustandsvektoren Transformation der Eingabe abhängig vom lokalen und empfangenen Zustandsvektor.

Beispiel Site 0 Site 1 Site 2 O1 O2 O3 O4

Konsistenzmodell (Lamport, 1978) Definition: Causal ordering relation “->” Given two operations Oa and Ob, generated at sites i and j, then Oa -> Ob, iff: 1. i = j and the generation of Oa happened before the generation of Ob, or 2. i  j and the execution of Oa at site j happened before the generation of Ob, or 3. there exists an operation Ox, such that Oa -> Ox and Ox -> Ob.

Konsistenzmodell (Lamport, 1978) Definition: Dependent and independent operations Given any two operations Oa and Ob. 1. Ob is said to be dependent on Oa iff Oa -> Ob. 2. Oa and Ob are said to be independent ( or concurrent) iff neither Oa -> Ob, nor Ob -> Oa, which is expressed Oa || Ob.

Konsistenzmodell (Lamport, 1978) Definition: Intention of an operation Given an operation O, the intention of O is the execution effect which could be achieved by applying O on the document state from which O was generated. Intention kann nicht erreicht werden, wenn der Dokumentzustand zwischen Generierung und Ausführung geändert wird.

Konsistenzmodell (Lamport, 1978) Definition: A consistency model A cooperative editing system is said to be consistent if it always maintains the following properties: 1. Convergence: when all sites have executed the same set of operations, the copies of the shared document at all sites are identical 2. Causality-preservation: for any pair of operations Oa and Ob, of Oa -> Ob, the Oa is executed before Ob at all sites. 3. Intention-preservation: for any operation O, (a) both the local and remote execution effects of O equal to the intention of O, and (b) if there exists an operation Ox such that Ox || O, then the execution effect of Ox does not interfere with the execution effect, and vice versa.

State Vector (Ellis, 1991) N = Anzahl der kooperierenden Sites Jede Site verwaltet einen State Vector (SV) mit N Komponenten. Initiierung: SV[i]=0 für alle i  {0, ..., N-1} Nach Ausführung (execution) einer Operation, die von der Site i generiert wurde, gilt: SV[i] := SV[i] + 1

Causality-preservation Definition: Conditions for executing remote operations Let O be an operation generated at site s and timestamped by SVo. O is causally-ready for execution at site D (d  s) with a state vector SVd only if the following conditions are satisfied: 1. SVo[s] = SVd[s] + 1, and 2. SVo[i]  SVd[i], for all i  {o,1, ..., N-1} and i  s.

Total ordering Definition: Total ordering relation “=>” Given two operations Oa and Ob, generated at sites i and j and timestamped by SVOa and SVOb, respectivly, then Oa => Ob, iff: 1. sum(SVOa) < sum (SVOb), or 2. i < j when sum (SVOa) = sum (SVOb), where sum(SV) = i=0N-1 SV[i].

Algorithmus Algorithm: The undo/do/redo scheme When a new operation Onew is causally-ready, the following steps are executed: 1. Undo all operations in history buffer (HB) which totally follow Onew to restore the document to the state before their execution. 2. Do Onew and save it in HB. 3. Redo all operations that were undone from HB.

? Interoperabilität file file file model model model view view view display display display display

Interoperabilität (Dewan 1999) file file file file model model model model view view view view view view display display display display display display Interoperation Module

Problem Wie verheiratet man Systeme mit unterschiedlichen Methoden zur Konsistenzsicherung? Turn-taking Protokoll bzw. Floor Kontrolle, d.h. nur ein Benutzer kann die gesamte Objektmenge editieren Locking, d.h. Benutzer können Einzelobjekte sperren, die gesamte Objektmenge kann von mehreren Benutzern aber gleichzeitig bearbeitet werden.

Floor Control als Master Floor Control System User 1 User 2 Dummy User 3 LockControlSystem User 4 User 5 User 6 Jeder Lock fordert den Floor Bei einem Floor Queue können Lock User weiterhin Locks setzen: Lock User (4-6) sind damit im Vorteil, da jeder Lock die Anforderung in die Floor-Queue einreiht, während Floor User nur einen Request absetzen können.

Erweiterte Lösung Floor Control System User 1 User 2 Dummy User 3 Floor Listener User 1 User 2 Dummy User 3 LockControlSystem Wenn ein Floor Control User den Floor anfordert, werden alle Lock Anforderungen zurückgewiesen, d.h. es können über zusätzliche Locks keine zusätzlichen Floor Anforderungen in den Floor-Queue eingestellt werden. User 4 User 5 User 6

Lock Control als Master Lock Control System User 1 User 2 Dummy User 3 FloorControlSystem User 4 User 5 User 6 Jede Floor Anforderung führt zu einer Reservierung aller Locks im Master Jede Floor Freigabe führt zu einer Freigabe aller Locks im Master Problem: Ein Floor User kommt nicht zum Zuge, weil ständig neue Locks angefordert werden.

Erweiterte Lösung Lock Control System User 1 User 2 Dummy User 3 Lock Listener User 1 User 2 Dummy User 3 FloorControlSystem User 4 User 5 User 6 Lock Listener sorgt dafür, dass keine weiteren Locks gesetzt werden, wenn eine Floor Anforderung vorliegt

Awareness in shared applications Telepointer Multi-User Scroll bars Miniaturansicht Radaranssicht What you see is what I do Teleport

Asynchrones Joint-Editing Grundidee: Mehrere Personen editieren ein Dokument asynchron. Welche Eigenschaften sollte das Dokument haben: • Das Dokument ist zerlegbar • Teile des Dokumentes können einzelnen Bearbeitern zugeordnet werden • Änderungen sind leicht nachvollziehbar • Änderungen sind leicht revidierbar bzw. nachträglich zu verabschieden • Änderungshistorien. • Mechanismen zum Verteilen von Dokumenten

Probleme beim gemeinsamen Ändern von Texten Möglich sind Weglassen, Hinzufügen, Hervorheben, Modifizieren Man muss verstehen können, warum jemand Änderungen macht Problem: - Welche Änderungen werden dargestellt? - Wie werden sie dargestellt? - Layout- vs. Inhaltsänderung Die Antwort hängt ab: - von der Rolle der Bearbeiter - von den Zielen des gemeinsamen Erstellens von Dokumenten - von der Art der Aufgabe Wahrnehmungsproblem: Die Aufmerksamkeit muss ständig zwischen dem Inhalt und dem Nachvollziehen von Änderungen hin- und herschalten.

Änderungen beim Joint-Editing nachvollziehbar machen unterschiedliche Autoren • Streichungen und Einfügungen • wählbare Granularität bzgl. Bedeutung der Änderung, bzgl. des Umfangs etc. • Markierung am Rand • Vergleich von Dokumenten • Kommentare

Literatur