Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Ansätze für Daten Synchronisation? (keine Threads) (https://www.delphipraxis.net/151779-ansaetze-fuer-daten-synchronisation-keine-threads.html)

blackfin 2. Jun 2010 16:05

Re: Ansätze für Daten Synchronisation? (keine Threads)
 
Zitat:

...denn ganz so trivial ist es dann leider doch nicht
Ok, dann sag uns doch mal bitte, was daran nicht trivial ist bzw. wo das Problem dabei liegt?
Du willst doch Tabellen vom Server mit denen von den Clients syncen, richtig?
Passiert diese Synchronisation der Datensätze nur auf einem Weg (neue Datensätze vom Server => Client) oder auch umgekehrt (neue lokale Datensätze aller Clients => Server).
Dann wird das ganze natürlich komplexer.

Kalfany 2. Jun 2010 16:07

Re: Ansätze für Daten Synchronisation? (keine Threads)
 
Zitat:

Zitat von mkinzler
Es kommt dabei auch darauf an, in welche Richtung und wieviele Pools es gibt (werden Änderungen gemacht, welche in die Datenbasis zurückgeschrieben werden müssen)

Zitat:

Zitat von blackfin
Zitat:

...denn ganz so trivial ist es dann leider doch nicht
Ok, dann sag uns doch mal bitte, was daran nicht trivial ist bzw. wo das Problem dabei liegt?
Du willst doch Tabellen vom Server mit denen von den Clients syncen, richtig?
Passiert diese Synchronisation der Datensätze nur auf einem Weg (neue Datensätze vom Server => Client) oder auch umgekehrt (neue lokale Datensätze aller Clients => Server).
Dann wird das ganze natürlich komplexer.

Alle Richtungen :mrgreen:
Jeder Client soll Daten erzeugen können die er dann zum "Server" synct, die sollen dann nat. auch an die anderen Clients verteilt werden ... kann aber auch sein das der "Server" selber Daten erzeugt die dann an alle Clients müssen.

Zitat:

Zitat von mkinzler
Wenn du ein DBMS verwendest, würde ich eine spezielle DBMS bezogene Lösung verwenden.
SyncML ist theoretisch aucxh geeignet du müsstest dich dann aber um die Kapselung deiner daten kümmern

Genau das wird schwer, denn (z.B) MySQL gibts auf mobilen Clients (Handy ...) nicht wirklich. Bzw. glaub ich nicht das es ein DBMS gibt das wirklich Plattform übergreifend verfügbar ist (und auch was taugt)

mkinzler 2. Jun 2010 16:12

Re: Ansätze für Daten Synchronisation? (keine Threads)
 
Eine Replikation einer Menge an Pools ist natürlich komplexer. Am Besten arbeitet man hier mit verschiedenene Nummerkreisen ( jeder Pool hat eigenen). In welcher Form werden die Daten lokal gespeichert?

Kalfany 2. Jun 2010 16:22

Re: Ansätze für Daten Synchronisation? (keine Threads)
 
Zitat:

Zitat von mkinzler
Eine Replikation einer Menge an Pools ist natürlich komplexer. Am Besten arbeitet man hier mit verschiedenene Nummerkreisen ( jeder Pool hat eigenen). In welcher Form werden die Daten lokal gespeichert?

Meine Idee dazu:
die "Haupt-ID" -> Timestamp+Zufallswert (um sicher zu sein) damit könnte jeder Client (und auch der Server) neue Einträge erzeugen ohne das sich die IDs dann beim Sync überschneiden. (auch lässt sich das ganze dank Timestamp noch sortieren/indizieren) Die Trennung zwischen Server und Client IDs halte ich für weniger Sinnvoll ... dann muss man zum einen die Nummernkreise irgendwo pflegen, und irgendwann kommts dann sicher mal das die Kreise zu klein werden.


Was meinst du mit "Form"? das DBMS oder die Datenstruktur ... wie gesagt DBMS das was für diese Platform gerade verfügbar ist, und zur Struktur ... ka. bisher gibt es noch keine wirklichen Pläne ... daher auch erstmal die Theorie :D

blackfin 2. Jun 2010 16:24

Re: Ansätze für Daten Synchronisation? (keine Threads)
 
Möglicher Ansatz:

Der Server hat die Macht über die ID eines Datensatzes.
Wenn der Server neue Datensätze schreibt, vergibt er eh neue ID's.
Erzeugen die Clients offline neue Datensätze, wird diese globale ID erstmal freigelassen.
Erfolgt dann ein Sync von diesem Client, werden die Datensätze vom Server mit einer ID versehen und diese IDs in die Datensätze des lokalen Clients zurückgeschrieben.
Somit erhält jeder Datensatz eine eindeutige ID und kann identifiziert und verteilt werden.
Problematisch wird es dann jedoch, wenn ein Datensatz, der bereits besteht, sowohl vom Server als auch von einem Client modifiziert wird.
Bei einem Sync gäbe es dann eine Kollision. Trifft das bei deinem Problem überhaupt zu oder gibt es generell nur immer neue Datensätze bzw. werden bestehende immer nur von einem (Server?) geändert?

mkinzler 2. Jun 2010 16:26

Re: Ansätze für Daten Synchronisation? (keine Threads)
 
Zitat:

Erzeugen die Clients offline neue Datensätze, wird diese globale ID erstmal freigelassen.
Oder man verwendet verschiedene Nummernkreise

Alter Mann 2. Jun 2010 17:46

Re: Ansätze für Daten Synchronisation? (keine Threads)
 
Hi,

wenn es nur um dir Theorie geht, dann bitte hier wissend machen.
Es ist eine Möglichkeit und sie funktioniert.

Kalfany 7. Jun 2010 07:09

AW: Re: Ansätze für Daten Synchronisation? (keine Threads)
 
Zitat:

Zitat von Alter Mann (Beitrag 1025402)
Hi,

wenn es nur um dir Theorie geht, dann bitte hier wissend machen.
Es ist eine Möglichkeit und sie funktioniert.

So wirklich viel gibt das jetzt nicht her ...


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:17 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz