Synchronisation von redundanten Datenbeständen
seit 1999
Themenübersicht Mobile Anwendungen Verteilte Datenbanksysteme Synchronisation Lösungsansätze
Mobile Anwendungen Erwartungen der Anwender Der App-Stil Mobiles Datenbank Konzept Herausforderungen
Erwartungen der Anwender Funktioniert immer und überall Einfache und schnelle Bedienung Wenig Texteingaben
Der App-Stil Schlank und auf einzelne Aufgaben fokussiert Funktioniert offline Benutzeroberfläche mit Touch-Eingabe Weniger ist mehr
Mobiles Datenbank Konzept Auf dem Server: Zentrale Haupt-Datenbank Protokoll der Synchronisation Bereitstellung der mobile Anwendung Auf dem mobilen Gerät: Mobile Datenbank Alleinstehende App für die Synchronisation
Herausforderungen Daten zu synchronisieren ist schwierig Erwartungshaltung an mobile Anwendungen ist hoch Verteilte Datenbanken ticken anders als gewohnt
Verteilte Datenbanksysteme Was macht den Unterschied? Vergleich von Replikation und App-Stil Primär Schlüssel Logik des Datenabgleichs Anwendung aktualisieren
Was macht den Unterschied? Daten sind nie auf gleichem Stand Daten werden an mehreren Orten gespeichert und bearbeitet Gleichzeitige Änderung durch mehrere Anwender Unterschiedliche Anwendungen und Geräte Nicht dasselbe wie: icloud gleicht nur die Daten einer Einzelperson ab Dropbox gleicht nur Dateien ab, aber keine Logik
Replikation und App-Stil Replikation Server App und Mobile App sind gleich App-Stil Server App und Mobile App sind unterschiedlich Synchronisation oft Synchronisiert alle Daten Synchronisation wann es geht Synchronisiert nur was benötigt wird Normalerweise immer mit Server verbunden Normalerweise nicht mit Server verbunden Kritische Logik auf beiden Seiten enthalten Kritische Logik wird auf dem Server erledigt
Primär Schlüssel Fortlaufende Nummern sind ungeeignet, da doppelte Werte auftreten können UUID - Universaly Unique Identifier Praktisch eindeutig Hole ( UUID ) 36925B81-D5A7-42A4-9DB4-4A26C8613DBC DEMO
Logik des Datenabgleichs Fragen zum Datenabgleich Datenlogik erfordert mehrere Datensätze für ein Objekt Abgleich auf Feldebene Letzte Synchronisation gewinnt Zuletzt bearbeitete Daten gewinnen (Zeitstempel) Manuell bestimmbar Konflikte vermindern Wenn möglich nur in eine Richtung abgleichen Nur absolut notwendige Datensätze abgleichen Key-Value Datenmodell anwenden (pro Feld ein Datensatz)
Anwendung aktualisieren Funktioniert der Datenabgleich auch nach einem Update? Werden alle Anwender die mobile Anwendung gleichzeitig aktualisieren? FileMaker Go Datenbank automatisch aktualisieren DEMO
Synchronisation Verbindung zum Server Daten-Transaktion mysql Multitasking Fehler abfangen
Datei synchronisieren
Verbindung zum Server Unzuverlässige Verbindung zum Server führt zu Fehlern 3G funktoniert NIE Abgebrochene Verbindung zum Server wird nicht erneut aufgebaut
Daten-Transaktion Vom Server zu FM Go: Daten in einer Variablen zusammenfassen Daten aus Variable auslesen und speichern Von FM Go auf Server: Daten in einer Variablen zusammenfassen In einem Schritt Daten in temporäres Feld schreiben Prüfen ob Daten geschrieben werden konnten Server liest Daten aus temporärem Feld und speichert diese in den entsprechenden Tabellen und Feldern. Rückmeldung zu temporärem Speicherort, dass Daten ausgelesen wurden.
mysql ODBC Setup Spezielle Datentypen beachten Validierung VOR dem schreiben Primärschlüssel von mysql abholen Abgleich über UUID oder zweites externes Schlüsselfeld
Multitasking Wenn FileMaker Go in den Hintergrund gerät: Scripts werden angehalten Der Status wird zwischengespeichert Die Verbindung zum Server wird abgebrochen (nach einer gewissen Zeit) Wenn FileMaker Go wieder in den Vordergrund kommt: Scripts werden fortgesetzt wenn die Verbindung zum Server nicht unterbrochen wurde ODER FM Go bestimmt, dass es sicher ist, das Script fortzusetzen In allen anderen Fällen wird das Script beendet!
Keine Garantie Es gibt keine Sicherheit, dass ein Script komplett ausgeführt wird. Das ist KEIN BUG Unbedingt Fehler einplanen
Fehler abfangen Durch andere Benutzer gesperrte Datensätze Feldwertüberprüfung Zugriffsberechtigung auf Datensätze und Felder Unerlaubte Sonderzeichen oder Formate bei SQL Datenbanken Abgebrochene Serververbindung Geändertes Datenmodell
Lösungsansätze FileMaker intern: Import von Daten Feldwert setzen[] Verschiedene Methoden: Import / Export mit Dropbox Email Lösungen von Drittanbietern: GoZync von SeedCode & geist interactive MirrorSync von 360works SyncDek von WorldSync
Import von Daten Daten vom Server auf mobiles Gerät importieren Vorteile: Relativ einfach zu implementieren Nachteile: Schwierig um Fehlern vorzubeugen Keine sicheren Daten-Transaktionen
Import von Daten DEMO
Feldwert setzen[] FileMaker Scriptschritt Vorteile: Relativ einfach zu implementieren Möglichkeiten Fehler abzufangen Kann Daten-Transaktionen sicher durchführen Nachteile: Viele Scriptschritte notwendig
Feldwert setzen[] Tipps 1. Schritt: Daten temporär sichern Daten vom Server abholen (pull) oder auf Server schreiben (push) in einzelnen Feldern und Tabellen oder mehrere Datensätze in einem Feld [i.d.r. schneller] Daten-Transaktion prüfen 2. Schritt: Daten in reale Tabellen schreiben Fehler abfangen Fehler- und Erfolgsprotokoll anlegen
Feldwert setzen[] DEMO
Vielen Dank unseren Sponsoren Danke für das Bewerten dieses Vortrages