Powerpoint-Beispiel2

Werbung
4. Replikation und Synchronisation
4-1
4. Replikation und Synchronisation
Gliederung
4.1
4.2
4.3
4.4
4.5
4.6
4.7
Motivation
Replikation
Synchronisation
Klassische Verfahren
Neue mobile Verfahren
SyncML (Synchronization Markup Language)
Zusammenfassung
4-2
4.1 Motivation
• Was ist Replikation?
– Ziel: Daten sollen in Offline-Phasen unabhängig auf einem Client
bearbeitet werden können
– Replikation bezeichnet das Anlegen einer Kopie
und damit die Einführung von Datenredundanz
– Daten werden dadurch auf mobilen Clients verfügbar
oft auch nur Teile (Selektion, Projektion) der urspüngl. Relation
(-> Nachforderungen, schwieriger Wiederabgleich)
Projektion
Relation
Selektion
4-3
Motivation
• Was ist Synchronisation?
– Auf den Clients geänderte Daten sollen wieder auf den Server
rückübertragen werden
– Probleme entstehen, wenn auch dort die Daten zwischenzeitlich geändert
wurden
– Ziel: Datenkonsistenz innerhalb einer Replikationsumgebung, da
Inkonsistenzen zu schwerwiegenden Fehlern führen können
– Bei der Synchronisation werden die geänderten Daten nach bestimmten
Verfahren (meistens konventionell, zeitstempelbasiert oder semantisch)
abgeglichen
 Replikation und Synchronisation sind wichtige Grundlagen für Offline-Szenarien
4-4
4.2 Replikation
4.2.1 Ursprung
• Ursprung der Replikation:
– Ursprung in den verteilten Systemen und in den verteilten
Datenbanksystemen
– Verteilte, nichtreplizierende (DB-)Systeme sind wesentlich
anfälliger für Ausfälle im Gegensatz zu zentralistisch ausgelegten
Systemen
– Um Ausfall von einem Knoten zu kompensieren, werden wichtige
Daten redundant auf mehreren Knoten abgespeichert
– Auch Daten mit hohen Zugriffsraten werden auf mehrere Knoten
verteilt
– Alle Knoten die replizierte Daten enthalten bilden zusammen die
Replikationsumgebung
4-5
4.2.2 Vorteile von Replikation
• Vorteile:
–
–
–
–
–
Höhere Verfügbarkeit durch Verteilung der Daten auf mehrere Knoten
Niedrigere Kommunikationskosten
Bessere Performanz durch lokalen Zugriff
Ermöglicht Lastverteilung (Zugriff auf Knoten mit geringster Last)
Vorbeugung gegenüber Datenverlust
– Replikation ist Grundlage für das Arbeiten mit Clients, die sich im
Disconnected Mode befinden
 Suche nach intelligenten Verfahren zur Auswahl der zu
replizierenden Daten
4-6
4.2.3 Was ist ein Replikat?
• Definition
– Ein Replikat ist eine Kopie, also eine redundante Speicherung
eines bereits existierenden Datenelements
– Datenelement kann ein Tupel, eine Relation, Teile einer Relation
oder eine ganze Datenpartition sein
– Per se gibt es kein Originalelement, dieses kann aber bei Bedarf
festgelegt werden
– Es können beliebig viele Kopien existieren
4-7
4.2.4 Zentrale Strategien beim Einsatz
der Replikation
Übersicht:
• Kopie-Update-Strategien
• Fehlerbehandlungs-Strategien
• Synchronisations-Strategien konkurrierender Zugriffe
• Konsistenz-Strategien bei Lesetransaktionen
4-8
Zentrale Strategien beim Einsatz
der Replikation
• Kopie-Update-Strategien:
– Datenoperationen werden auf einem einzelnen Replikat ausgeführt
– Die daraus resultierenden Änderungen werden auf 2 verschiedene
Arten an die anderen Kopien weitergegeben
• Wenn alle Replikate gleichzeitig aktualisiert werden, spricht
man von Eager Replication
• Wenn die Änderung asynchron an die anderen Replikate
weitergegeben wird, spricht man von Lazy Replication
– Die Erlaubnis zur Änderung ist oft an spezifische Bedingungen
geknüpft und hängt oft von den anderen Kopien des Replikats ab
(z.B. Quorum-Verfahren)
4-9
Zentrale Strategien beim Einsatz
der Replikation
• Fehlerbehandlungsstrategien:
– Enthält Methoden, mit denen auf Fehlersituationen während der
Replikation reagiert wird
– Repräsentiert den Ausnahmefall gegenüber den durch die KopieUpdate-Strategien abgedeckten Normalfall
– Häufigste Fehlersituation sind typische Netzpartitionierungen,
wenn also Clients dauerhaft vom Gesamtsystem getrennt werden
– In mobilen Umgebungen aber Netzpartitionierungen Normalfall,
deshalb hat die „Fehlerbehandlung“ eine wichtige Rolle
(Begriff „Fehlerbehandlung“ in diesem Zusammenhang fraglich)
4-10
Zentrale Strategien beim Einsatz
der Replikation
• Synchronisation konkurrierender Zugriffe
– Wichtig sind Methoden zur Konsistenzsicherung innerhalb einer
Replikationsumgebung
– Aufgabe: Eine geeignete Serialisierbarkeitsreihenfolge (Schedule)
finden, damit bei allen Replikaten während allen Transaktionen
keine Konsistenzkonflikte entstehen
– 3 Synchronisationsverfahren:
• konventionell (mit Einsatz von Sperren),
• optimistisch (zeitstempelbasiert, read-set, write-set)
• semantisch (Einbeziehung von speziellem Anwendungswissen)
4-11
Zentrale Strategien beim Einsatz
der Replikation
• Konsistenzstrategien:
3 verschiedene Konsistenzgrade bei Lese-TAs:
Replikate sind
• aktuell und konsistent
negativ für Gesamtdurchsatz, kein disconnected Mode
• Konsistent, aber dürfen etwas veraltet sein. Durch Versionskonzept
können Lese- und Änderungstransaktionen parallel ablaufen
• innerhalb bestimmter Toleranzgrenzen inkonsistent. Die Toleranzgrenze
bestimmt die maximal erlaubte Abweichung vom aktuellen,
konsistenten Datenbankzustand
4-12
4.2.5 Replikationsdefinition
• Wichtigste Aufgabe der Replikation ist die Replikationsdefinition.
Sie wird in 2 Subaufgaben gegliedert:
– Replikationsschemadefinition:
• Definiert den Ausschnitt des Datenbankschemas auf der
Replikationsquelle, der für die Datenreplikation genutzt wird, und
• die Operationen, die auf den replizierten Daten ausgeführt werden
dürfen,
• sowie zusätzliche Integritätsbedingungen
– Replikatdefinition:
• Wählt die zu replizierenden Daten aus (Selektionsbedingungen)
• Ausgewählt werden können alle Daten, die dem Replikationsschema
genügen
• Neben Daten werden auch Integritätsbedingungen auf die Senke
übertragen
4-13
4.2.6 Forderungen
• Weitere Forderungen in der Replikationsumgebung:
– Replikationstransparenz: Der Benutzer merkt von unterschiedlichen Kopien nichts
– 1-Kopie-Serialisierbarkeit: Es gibt mind. einen Schedule, welcher
mit seriellen Transaktionen auf einer Datenbank ohne Replikate
den gleichen Endzustand erzeugt
– Replikationskorrektheit: Änderungen auf einer Kopie sind auf
allen anderen Kopien nachziehbar: alle redundanten Kopien sind
konsistent. Entweder streng korrekt (Identität) oder innerhalb
bestimmter Grenzen ( Konsistenzgrade)
4-14
4.2.7 Zielkonflikt der Replikation
• 3 verschiedene Forderungen an die Replikation
1. Erhöhung der Verfügbarkeit
2. Konsistenz aller Kopien
3. Niedrige Kosten der Replikation
• Konflikt:
Verfügbarkeit
Zielkonflikt der
Replikation
Konsistenz
Kosten
– Replikation wird oft eingesetzt um die Verfügbarkeit zu erhöhen
– Je mehr Senken, desto mehr Daten müssen konsistent gehalten
werden
– Dadurch steigen mit der Zahl der Senken die Kosten
• Konsequenz:
– Alle 3 Forderung sind nie zu erreichen
– Je näher man 2 Forderungen kommt, desto mehr entfernt man sich
von der 3.
4-15
4.3 Synchronisation
•
Ziel: konsistenter Zustand aller Kopien innerhalb einer
Replikationsumgebung
•
Bei Synchronisation müssen Änderungen von der Replikationssenke
auf die Quelle und umgekehrt übertragen werden
- Reintegration: Abgleich der geänderten Daten von Senke auf
Quelle
- Rückübertragung: Quelle überträgt aktuellen + konsistenten
Datenzustand auf die Senke
- Beide Phasen: Bidirektionale Synchronisation
- Eine Phase: unidirektionale Synchronisation
4-16
4.4 Klassische Replikations- und
Synchronisationsverfahren
•
Die wichtigsten Replikations- und
Synchronisationsverfahren:
1. Konsistenzerhaltende Verfahren
•
•
Pessimistische Verfahren (ROWA, Primary-Copy-Verfahren, Quorum, ...)
Optimistische Verfahren (Log-Transformation, Data-Patch-Verfahren)
2. Verfügbarkeitserhaltende Verfahren
•
•
Epsilon-Serialisierbarkeit
Quasi-Copy-Verfahren
3. Data Caching (Replikation innerhalb der Speicherhierarchie)
4. Data Hoarding (gezieltes Nachladen vom Server)
4-17
4.4.1 Konsistenzerhaltende Verfahren
• Eigenschaften der konsistenzerhaltenden Verfahren
– Hauptziel: Strikte Durchsetzung der Konsistenz
(oft auf Kosten der Verfügbarkeit)
– Unterteilt in pessimistische und optimistische Verfahren
– Pessimistische Verfahren:
• verwenden Sperren um von vorneherein alle möglichen Inkonsistenzen
zu verhindern
• Änderungen können gleichzeitig (2-Phasen-Commit-Protokoll) (eager
Repl.) oder asynchron (lazy Repl.) mit gesonderten Update-Aktionen
durchgeführt werden
• Vorteil bei asynchronen Updates: keine systemübergreifende Sperren
– Optimistische Verfahren:
• Gehen von seltenen Inkonsistenzen aus und verwenden deshalb keine
Sperren
• Nach jeder Transaktion findet Validierung statt, ob ein inkonsistenter
Zustand vorliegt
4-18
Pessimistische Verfahren
- ROWA • ROWA (Read One Write All):
– Innerhalb einer Änderungstransaktion alle Kopien updaten
(verwendet 2-Phasen-Commit-Protokoll)
– Alle Kopien eines Replikats sind deshalb stets konsistent
– Lesetransaktionen bekommen so auch keine veralteten Daten
– Erreichbarkeit aller Kopien muss gegeben sein
• deshalb in mobiler Umgebung so nicht einsetzbar, da viele mobile
Clients sich im Disconnected Mode befinden
• Es exisiteren Varianten des ROWA-Verfahrens, die aber keine sinnvolle
Lösungen für den Einsatz in mobilen Umgebungen sind,
z.b. Write-All-Available oder Missing-Update
4-19
Pessimistische Verfahren
- Primary-Copy Verfahren • Primary-Copy-Verfahren:
– Änderungstransaktion wird erst auf einer Masterkopie durchgeführt
– Für die asynchrone Aktualisierung ist nun nicht mehr die
Änderungstransaktion selbst, sondern die Masterkopie zuständig
– Stark zentralistisches Verfahren (Gleichheit aller Knoten wird aufgegeben)
– Vorteil:
• In mobiler Umgebung möglich, dann darf sich aber die Masterkopie nicht auf
einem Client befinden, sondern auf stationärem Knoten
– Nachteil:
• Bei Änderungstransaktionen muss eine Netzwerkverbindung bestehen
• Bei Transaktionen mit vielen Updates kann der Knoten der Masterkopie zu einem
Hot-Spot werden
• Die Wahrscheinlichkeit, dass keine Netzwerkverbindung für eine
Änderungstransaktion besteht, steigt mit jedem Knoten
 Abhilfe: Virtual-Primary-Copy-Verfahren (siehe später)
4-20
Pessimistische Verfahren
- Quorum Verfahren • Quorum-Verfahren:
– Abstimmung entscheiden ob Aktualisierung durchgeführt wird
– Jede Kopie besitzt eine Anzahl von Stimmen (meistens 1)
– Um Aktualisierung durchzuführen muss die Transaktion die
Mehrheit der Stimmen gewinnen (Majority Consensus)
– Transaktion gewinnt eine Stimme wenn eine Kopie durch diese
Transaktion gesperrt werden kann
– Konkurrierendes Schreiben wird verhindert wenn
Schreibquorum > n/2 (Anzahl der Stimmen)
– Konkurrierendes Lesen und Schreiben wird verhindert, wenn
Lese- + Schreibquorum > n
– Randfall: Schreibquorum=n und Lesequ=1 dann ROWA-Verfahren
4-21
Pessimistische Verfahren
- Quorum Verfahren • Quorum-Verfahren Teil II:
– Variante: Einführung von Stimmgewichten
– Variante: Einführung von Zeugen (Stellvertreter-Knoten)
– Wenn Mehrheiten fest vergeben, dann spricht man von
statischem Quorum-Verfahren
– Wenn zur Laufzeit vergeben, spricht man von dynamischen QuorumVerfahren (z.B. zum Zeitpunkt verfügbarer Stimmen)
– (nur bedingt) in der mobilen Umgebung einsetzbar:
• Für Änderungstransaktion muss Verbindung zur Basisstation verfügbar
sein. Diese muss dann das Quorum der anderen Kopien einholen
• Nur mindestens |Qw| Knoten müssen während Abstimmung online sein.
• Für Commit eigentlich alle, Nachziehen auf offline Knoten? Sperren
halten? (Unwahrscheinlich, dass kein Client im Disconnected Mode)
4-22
Optimistische Verfahren
• Eigenschaften:
– Keine Sperren, dafür wird am Ende jeder Transaktion validiert, ob
konsistenter Zustand vorliegt (mittels Zeitstempel)
– Propagation durchgeführter Änderungen erfolgt dann asynchron
– Späteres Wiedereinbringen von Daten kann zu Konflikte führen
(z.B. Änderungen auf einen bereits alten Datensatz)
– Häufig werden diese Konflikte durch semantisches Wissen
aufgelöst (z.B. summierende Verfahren, „neueste Info zählt“…)
– Die 2 wichtigsten Verfahren sind
• Log-Transformation und das
• Data-Patch-Verfahren
4-23
Optimistische Verfahren
- Log-Transformation • Log-Transformation:
– Änderungen einer (mobilen) Kopie werden
zuerst auf der zentralen Datenbank nachgezogen,
dann an die anderen Kopien asynchron weitergegeben
– Alle Transaktionen werden in Logbuch-Einträgen protokolliert
– Bei Konflikten wird die konfliktauslösende Transaktion
zurückgesetzt
– Einfaches Auflösen von Konflikten, aber umfangreiches oder
kaskadierendes Zurücksetzten kompletter Transaktionen möglich
4-24
Optimistische Verfahren
- Data Patch • Data-Patch Verfahren
– Es gibt kein Zurücksetzen von TAs
denn bereits beim Datenbankentwurf werden
anwendungsbezogene Regeln festgelegt
– Diese Regeln legen fest, wie aus 2 verschiedenen Versionen ein
neuer konsistenter Zustand wird
(z.B. neueste Info zählt, Aufaddieren, Chef hat immer recht, ...)
– Data-Patch-Verfahren kann gut in mobilen Umgebungen eingesetzt
werden
– Dieses Verfahren kann sowohl den konsistenz- als auch den
verfügbarkeitserhaltenden Verfahren zugeordnet werden
4-25
4.4.2 Verfügbarkeitserhaltende Verfahren
• Eigenschaften verfügbarkeitserhaltender Verfahren
– Im Gegensatz zu den konsistenzerhaltenden Verfahren steht hier
die höhere (Lese-) Verfügbarkeit von Daten im Mittelpunkt
– Dies wird dadurch erreicht, dass in bestimmten Situationen
inkonsistente Daten geduldet werden
– Konflikte werden oft durch semantisches Wissen aufgelöst
(z.B. summierende Verfahren, Prioritätsverfahren oder
„neueste-Info-zählt“-Verfahren)
– Werden keine Abweichungen toleriert, kann wieder von
konsistenzerhaltenden Verfahren gesprochen werden
4-26
Verfügbarkeitserhaltende Verfahren
• Beispiele für verfügbarkeitserhaltende Verfahren:
– Epsilon-Serialisierbarkeit:
• globaler Faktor Epsilon bestimmt tolerierbare Abweichung gegenüber
bestimmten Konsistenzzustand
• Jedes Replikat hält selbst sein aktuelles Epsilon fest
• Lesezugriff auch auf epsilon-inkonsistente Replikate möglich
 höhere Verfügbarkeit
– Quasi-Copy-Verfahren:
• Ähnlich zur Epsilon-Serialisierbarkeit aber jetzt
– Anzahl Änderungen auf lokaler Kopie
– oder Zeitspanne ausschlaggebend,
nicht eine bestimmte Abweichung
4-27
Was bisher war
• Definition der Begriffe Replikation und Synchronisation
– Ursprung und die Vorteile der Replikation
– 4 Zentralen Strategien beim Einsatz der Replikation
– Zielkonflikt der Replikation
• Beispiele für konstistenzerhaltende Verfahren
– 3 pessimistische Verfahren
– 2 optimistische Verfahren
• 2 Beispiele für verfügbarkeitserhaltende Verfahren
4-28
Was kommt
• Data Caching und Data Hoarding Verfahren
• Verzicht auf Replikation
• Beispiele für neue mobile Verfahren
• Synchronization Markup Language (SyncML)
4-29
4.4.3 Data Caching
• Data Caching: (Replikation innerhalb der Speicherhierarchie)
– Zugriff auf Daten wird stark beschleunigt, wenn die Daten schon im
Cache sind. Deshalb bevorzugte Speicherung im Cache
– Intelligente und vorrausschauende Verfahren gesucht, damit Daten
mit hohen Zugriffsraten im Cache sind oder/und bleiben
– Da bei mobilen Clients der Cache bisher recht klein ist, sind solche
intelligenten Verfahren sehr wichtig
– Eine Variante ist das semantische Cachen. Es werden zusätzlich
Beschreibungen der Daten gespeichert, damit intelligente
Einlagerungsstrategien implementiert werden können
(Nachteil: Speicherplatzbedarf steigt)
4-30
Data Caching
– Cachen heißt zusätzliche Redundanzebene:
– Bei Synchronisation: Cache-Kohärenz sicherstellen!
Damit nicht mit alten Cache-Werten weitergearbeitet wird.
– Mobile Endgeräte:
Vorab-Cache-Einlagerungen (Prefetching)
• Nicht nur zugriffs- und zeitabhängig
• auch ortsabhängig (bei Standortwechsel des Nutzers)
4-31
4.4.4 Data Hoarding
•
Data Hoarding: (gezieltes, vorausschauendes Nachladen
vom Server)
– Besondere Variante des Prefetchings bei Caches, speziell für die
mobile Umgebung
– Datenaustausch zwischen Server und Client nur an speziellen
Infostationen
– Die Infostationen sind mit WLANs ausgestattete Terminals, die
untereinander mit Hochgeschwindigkeitsnetzwerk verbunden sind
– Gerade dort eingesetzt, wo Benutzer keine eigenen Clients,
sondern nur anwendungsspezifische Clients haben (z.B. Museum)
4-32
Data Hoarding
– Spezieller Proxy-Server koordiniert sämtliche Hoarding-Prozesse:
• Schritt 1: Drahtloser Download der wahrscheinlich benötigten
Informationen
• Schritt 2: Trennung der Verbindung zur Infostation
• Schritt 3: Gelegentliche Übertragung des protokollierten
Nutzerverhaltens an erreichbare Infostationen
bei Bedarf: Nachladen
4-33
4.4.5 Verzicht auf Replikation
• Verzicht auf Replikation:
– Nur möglich, wenn eine zuverlässige und hochverfügbare
Infrastruktur drahtloser Netzwerktechnologien vorhanden ist
(z.B. firmeninternes WLAN)
– Zentrale Datenhaltung und eine Schnittstelle für drahtlosen OnlineZugriff anzubieten kann einfacher sein als Offline-Szenarien mit
komplizierter Replikation und Synchronisation
4-34
4.5 Neue mobile Verfahren
• Eigenschaften:
– Pessimistische Verfahren sind schlecht einsetzbar, da sie auf dem
Einsatz von Sperren basieren.
Sperren können aber sehr kritisch sein, falls ein Client eine Sperre
setzt und in den Disconnected Mode wechselt und dort lange bleibt
– Grundlage sind die optimistischen Verfahren
– Trotzdem wurden auch pessimistische Verfahren entwickelt,
Beispiel dafür ist das Virtual-Primary-Copy-Verfahren
4-35
Neue mobile Verfahren
1. Virtual-Primary-Copy
• Virtual Primary Copy:
– Virtual-Primary-Copy ist eine Variante des Primary-Copy Verfahren
– Basiert auf den konsistenzerhaltenden, pessimistischen Verfahren
– Masterkopie jetzt immer auf dem mobilen Client (!), zusätzlich noch
eine virtuelle Masterkopie (Position frei wählbar, meist im Festnetz)
– Falls nun Masterkopie für andere Clients nicht erreichbar ist,
können die anderen Clients ihre Änderungstransaktion auf der
virtuellen Masterkopie durchführen
– Sobald wieder online muss ein Abgleich beider Kopien erfolgen,
damit ein konsistenter Zustand vorliegt
4-36
Neue mobile Verfahren
2. Snapshot-Verfahren
• Snapshot-Verfahren:
– Sehr gut einsetzbar in mobilen Umgebungen
– Snapshots sind materialisierte Sichten nichtlokaler Datenbestände
– Snapshots basiert auf einer Originaltabelle, auch Mastertabelle
genannt
– Snapshots können einzelnen Tupel bis hin zu kompletten
Relationen sein
– Replikationsserver werden als Master-Sites, mobile Clients als
Snapshot-Sites bezeichnet
– Kommunikation kann synchron (verbindungsorientiert)
oder asynchron (dateibasiert) erfolgen
– Synchronisation kann als Abgleich von Snapshots aufgefasst
werden
4-37
Neue mobile Verfahren
- Snapshot-Verfahren • Publish & Subscribe-Modell:
Der Server bietet Publikationen an,
der Client subscribiert sie
– Publikationen = { Publikationsartikel* }
– Publikationsartikel = Snapshot beliebiger Granularität,
z.b. durch SQL-Anweisung definiert
– Zuordnung von Publikationen (Snapshots) zu mobilen Clients
erfolgt anhand von Subskriptionen (auch parametrisierbar)
 Subskription = Zuordnung Replikationsquelle zu Senke
4-38
Neue mobile Verfahren
- Snapshot-Verfahren • Einfache vs. Komplexe Snapshots
(vgl. View-Update Problem)
– Einfache Snapshots basieren auf einer einzelnen Tabelle. Zwischen
Originaltabelle und Snapshot muss eine bijektive Abbildung existieren
– Komplexe Snapshots beziehen sich auf mehrere Tabellen oder enthalten
GROUP BY oder Aggregatfkt oder weitere Snapshots
– Bei komplexen Snapshots ist keine Reintegration möglich,
deshalb nur lesender Zugriff auf den mobilen Clients
• Zusammenfassung
– Snapshots unterstützen den Disconnected Mode mobiler Clients
– In Offline-Phasen können beliebig viele Update-Operationen ausgeführt
werden
– Abgleich der Daten danach durch Synchronisation und gegebenenfalls
durch Konfliktauflösungsroutinen
4-39
Neue mobile Verfahren
3. Replikationsserver-Verfahren
• Motivation:
– Beobachtung: Replikation und Synchronisation erzeugt erhebl. Last
auf stationärem DBS, besonders bei sehr vielen mobilen Clients
– Idee: Um den Datenbankserver von der Koordination der
Replikation und Synchronisation zu entlasten, kann man die
klassische Client/Server-Architektur erweitern um einen
Replikationsserver (Replication Proxy Server)
– Dann auch anwendungsgesteuerte, dynamische Auswahl der
Replikate
– SQL-ähnliche Schnittstelle, um eine solche dynamische Auswahl
treffen zu können
4-40
Neue mobile Verfahren
- Replikationsserver-Verfahren • 3-stufige Architektur:
– Replikationsanforderungen des mobilen Clients werden dann über
den Replikationsserver an den Datenbankserver übertragen
– Replikationsserver hat eine Kopie der Daten vom Datenbankserver
– Aufgabe des Replikationsserver:
• Pflege von Daten- und Schemaelementen
• Bestimmung der zu replizierenden Daten unter der Berücksichtigung
der bereits replizierten Daten
– Der Datenaustausch zwischen mobilen Client und Datenbankserver
ist nur noch indirekt möglich
– Replikationsserver auf eigenem Rechner, z.B. auf Basisstation
4-41
Neue mobile Verfahren
- Replikationsserver-Verfahren • Architektur:
Mobiler Client
Anwendung
Replikationsserver
Quellserver
Daten und
Updates
DBMS
Dienstaufrufe
DBMS
DBMS
Kommunikation
zu anderen RPS
– Vorteil: Skalierbarkeit bei sehr vielen mobilen Clients
(sync erzeugt erhebl. Last auf stationärem DBS)
– Ebenso können Lastspitzen vom Datenbankserver weg verteilt
werden
4-42
Neue mobile Verfahren
- Replikationsserver-Verfahren • Anforderungen und Ablauf nutzerdefinierter Replikation:
– Heute meist traditioneller Szenarien:
z.B. Zugriff auf einen gemeinsamen Informationspool
– Zukünftig: Location Based Services
– Dabei: Benutzer soll dann Daten nicht nur verwenden, sondern
auch aktualisieren oder ergänzen
– Def.: nutzerdefinierte Replikation:
Dienst, der dynamisch die zu replizierenden Daten abhängig von
Position und Zeit bestimmt, damit diese Daten dann im
Disconnected Mode weiterverarbeitet werden können
4-43
Neue mobile Verfahren
- Nutzerdefinierte Replikation • 5 Anforderungen an die Implementierung nutzerdefinierter Replikation:
– Replikation: Anwendung soll nach den Vorgaben des Nutzer die Daten
aus einer zentralen Datenbank lokal replizieren
– Replikationseffizienz: Nur Daten replizieren, die noch nicht lokal
vorhanden sind
– Speicherplatzbeschränkung: Wenn für neue Daten kein Speicherplatz
auf Client ist, müssen alte, nicht mehr
benötigte Daten gelöscht werden
– Zugriff: jeder Nutzer soll über die notwendigen Änderungs- und
Einfügerechte verfügen
– Konsistenz: Um Konsistenz der Daten zu garantieren, müssen
Routinen für Konflikterkennung und –behandlung
implementiert werden
4-44
Neue mobile Verfahren
- Nutzerdefinierte Replikation • Anforderungen und Ablauf:
– Weitere Punkte:
• Schnittstelle muss implementiert werden für Anwendungen, die
dynamische Replikation von Daten anfordern,
• Replikate müssen mit Zusicherungen ergänzt werden
(z.B. einem garantierten Einfügerecht)
– Der Abgleich der Daten zwischen Replikations- und Quellserver
erfolgt asynchron
– Primärziel der Einführung eines Replikationsservers ist die
Entkopplung der mobilen Nutzer vom Quellserver
4-45
4.6 Synchronization Markup Language
(SyncML)
• SyncML:
– Definiert eine herstellerunabhängige Technologie für die
Synchronisation von Daten in einem mobilen Client/Server-Szenario
(Open Mobile Alliance: Nokia, IBM, Panasonic, Ericson, Motorola, ...)
– Als plattenformunabhängiges Datenformat der zu übertragenden
Synchronisationsnachrichten wurde XML bestimmt
– Um die Abhängigkeit von bestimmten Netzwerkprotokollen zu
umgehen, wurde der physikalische Transport aus SyncML
ausgeklammert
– Welches Transportprotokoll benutzt wird, hängt von der jeweiligen
Implementierung ab
– Ziel: alle anfallenden Synchronisationsvorgänge sollen über einen
einzelnen Mechanismus abgewickelt werden
– Beispiel: Nokia Communicator 9210
4-46
Synchronization Markup Language
• 7 Synchronisationsszenarien:
– Zwei-Wege-Synchronisation (bidirektionale Synchronisation):
• Client und Server teilen sich nacheinander gegenseitig alle
angefallenen Änderungen mit
– Langsame Synchronisation:
• Client übermittelt seine Änderungen an den Server, dort werden die
empfangenen Änderungen feldweise mit dem Datenbestand verglichen
– Einweg-Synchronisation (Client):
• Client übermittelt seine Änderungen an den Server. Eventuelle
zwischenzeitl. Änderungen auf dem Server werden ohne Nachfrage
überschrieben
– Einweg-Synchronisation (Server):
• Wie beim Client, nur Übertragung von Server auf Client
4-47
Synchronization Markup Language
• 7 Synchronisationsszenarien:
– Erneuerungs-Synchronisation (Client):
• Der Client überträgt seinen kompletten Datenbestand an den Server.
Auf dem Server werden alle entsprechenden Daten überschrieben
– Erneuerungs-Synchronisation (Server):
• Wie beim Client, nur Übertragung von Server auf Client.
D.h. Server überschreibt alle Client-Daten komplett
– Serverinitiierte Synchronisation:
• Server stellt die Forderung an den Client, einen Synchronisationsvorgang, der einer der ersten sechs Typen sein muss, zu
initialisieren
4-48
Synchronization Markup Language
• Anforderungen für die Synchronisation:
– Datensätze müssen separierbar sein
– Jeder Datensatz muss eindeutig identifizierbar sein
– Identifikatoren werden serverseitig als Global Unique Identifier
(GUID), clientseitig als Local Unique Identifier (LUID) bezeichnet
– Wenn auf Server und Client verschiedene Identifikatoren verwendet
werden, muss der Server eine korrekte Zuordnung vornehmen
können (Mapping-Tabelle)
– Datenveränderungen werden immer in Log-Dateien protokolliert
(dienen als Grundlage für spätere Sync-Vorgänge)
4-49
Synchronization Markup Language
SyncEngine
Anwendung
SyncServer
Agent
SyncClient
Agent
SyncMLAdapter
SyncML
XML-Objekte
SyncMLAdapter
SyncMLInterface
– Um Daten synchronisieren zu können,
müssen alle beteiligten Anwendungen
das SyncML Sync Protokoll implementieren
– SyncEngine auf Clientseite nicht abgebildet,
da diese nur eingeschränkte Funktionen hat
– SyncML-Interface + -Adapter transformieren
Originaldaten ins XML-Format
– Kommunikation aller beteiligten Instanzen
erfolgt nur über diese Adapter
– Für das globale Management aller
Synchronisationsprozesse wird ein
Synchronisationsserver eingesetzt
Anwendung
SyncMLInterface
• SyncML-Framework:
Transport (z.B. HTTP)
4-50
Synchronization Markup Language
• Synchronisationskonflikte:
– Können natürlich auch hier auftreten
– Konfliktlösung ist Aufgabe des Servers bzw. der SyncEngine
– Wenn SyncEngine Konflikt feststellt, wird dies an den konfliktauslösenden
Client mitgeteilt
– SyncML legt aber nicht fest, welche Konfliktauflösungsroutinen in welchem
Konfliktfall konkret angewandt werden sollen
4-51
Synchronization Markup Language
• Synchronisationskonflikte
– Beispiele für Konfliktauflösungsmethoden:
• Kapitulation: Synchronisation wird nicht durchgeführt.
• Duplikat: Von dem Datensatz, der einen Konflikt ausgelöst hat, wird ein
Duplikat angelegt. Beide Änderungen werden dann
unabhängig voneinander auf jeweils einem der verfügbaren
Datensätze ausgeführt.
• Priorität: Im Konfliktfall kann eine höhere priorisierte Operation
bevorzugt werden.
• Gewinner: Dabei gewinnt immer eine der beiden Konfliktparteien. So
kann z.B. immer der Client gewinnen.
4-52
4.7 Zusammenfassung
•
•
•
•
•
Definition der Begriffe Replikation und Synchronisation
Ursprung und die Vorteile der Replikation
4 Zentralen Strategien beim Einsatz der Replikation
Zielkonflikt der Replikation
Beispiele für konsistenz- und verfügbarkeitserhaltende
Verfahren
• Data-Caching und Data-Hoarding-Verfahren
• Beispiele für neue mobile Verfahren
• Synchronization Markup Language (SyncML)
4-53
Herunterladen