Folgende Situation:
Für eine neu zu erstellende Anwendung suche ich einen Weg den Datentopf (eine SQL-Datenbank) und die aus den Daten generierten Instanzen in einer Anwendung zu synchronisieren. D.h. Änderungen an den Instanzen führt zu INSERT/UPDATE/DELETE in der DB und die Anwendung muss nach INSERT/UPDATE/DELETE in der DB seine Datenstrukturen und Instanzen entsprechend abändern.
Die Daten selber werden nicht mit JDBC hin- und hergeschoben, sondern über einen Webservice (XML-RPC).
Ansatz:
1. Jede Tabelle der DB bekommt ein Feld mit einem Timestamp, der bei INSERT/UPDATE mit dem aktuellen Wert belegt wird.
2. Vor einem UPDATE wird geprüft, ob die vorhandene Zeile keinen neueren Timestamp hat / überhaupt noch vorhanden ist.
3. (Un-)Regelmäßig wird der aktuellste Timestamp der Tabellen gelesen und abgeglichen. Differenzen führen zur Synchronisierung der Instanzen.
Derzeit frage ich mich noch wie ich das Ganze in der Anwendung möglichst vorausschauend umsetze. Soll ich meine Daten-Objekt-Instanzen zentral observieren lassen, so dass Änderungen an ihnen zentral registriert und an die DB weitergereicht werden können? Speichere ich den Timestamp dann in den Instanzen, oder ebenfalls zentral in einer Map? Detektiere ich Änderungen an der DB mit nem Thread und nem Timer im Hintergrund, oder erst beim nächsten nötigen Zugriff auf die Datenbank?
Irgendwie finde ich im Netz nichts richtiges zum Thema, mglw. kommt bei den Suchbegriffen auch erst alles andere, aber nicht das, was ich speziell suche. Die Problematik als solche kann aber nicht neu sein, d.h. es muss irgendwo Erfahrungswerte geben..
Für eine neu zu erstellende Anwendung suche ich einen Weg den Datentopf (eine SQL-Datenbank) und die aus den Daten generierten Instanzen in einer Anwendung zu synchronisieren. D.h. Änderungen an den Instanzen führt zu INSERT/UPDATE/DELETE in der DB und die Anwendung muss nach INSERT/UPDATE/DELETE in der DB seine Datenstrukturen und Instanzen entsprechend abändern.
Die Daten selber werden nicht mit JDBC hin- und hergeschoben, sondern über einen Webservice (XML-RPC).
Ansatz:
1. Jede Tabelle der DB bekommt ein Feld mit einem Timestamp, der bei INSERT/UPDATE mit dem aktuellen Wert belegt wird.
2. Vor einem UPDATE wird geprüft, ob die vorhandene Zeile keinen neueren Timestamp hat / überhaupt noch vorhanden ist.
3. (Un-)Regelmäßig wird der aktuellste Timestamp der Tabellen gelesen und abgeglichen. Differenzen führen zur Synchronisierung der Instanzen.
Derzeit frage ich mich noch wie ich das Ganze in der Anwendung möglichst vorausschauend umsetze. Soll ich meine Daten-Objekt-Instanzen zentral observieren lassen, so dass Änderungen an ihnen zentral registriert und an die DB weitergereicht werden können? Speichere ich den Timestamp dann in den Instanzen, oder ebenfalls zentral in einer Map? Detektiere ich Änderungen an der DB mit nem Thread und nem Timer im Hintergrund, oder erst beim nächsten nötigen Zugriff auf die Datenbank?
Irgendwie finde ich im Netz nichts richtiges zum Thema, mglw. kommt bei den Suchbegriffen auch erst alles andere, aber nicht das, was ich speziell suche. Die Problematik als solche kann aber nicht neu sein, d.h. es muss irgendwo Erfahrungswerte geben..