BestPractice: Hibernate in 3-Tier Anwendungen

Woocash

Grünschnabel
Moin,

ich habe mal eine Frage für ein Vorgehen in Bezug auf die Kommunikation mit der Datenbank bei 3-Tier Anwendungen (hier im Speziellen EJB->Spring->Hibernate).

Ich sende vom Client (Swing) meine ValueObjects (z.B. Rechnungskopf + -positionen) an das EJB, die Daten werden vom EJB auf dem Server in die Datenbank gespeichert. Nun hab ich das Problem, dass auf dem Client ein anderer Stand vorhanden ist, als die persistenten Daten auf dem Server. (z.b. gesetzter PK, Versionsnr des Datensatzes, und weitere Systemfelder).

Wie ich ich da am besten bei der synchronisation der Daten vor? Schicke ich das ganze Objekt (Kopf + Positionen) komplett an den Client zurück und schreibe eine Klasse, die per Reflection alle getter und setter aufruft und somit meine Clientobjekte mit den aktuellen vom Server erhaltenen Objekten synchroniersiert?

Oder gibt es dafür elegantere Lösungen?
Hab bisher im Internet immer nur Beispiele gehen, bei denen nur die ID zurückgeliefert wurde. Aber es gibt ja meistens mehrere Systemfelder und bei größeren Datenstrukturen (Kopf/Positionen) will man ja nicht jede Position einzeln zum Server schicken, zumal es ja in einer eigenen Transaktion gespeichert werden soll.

Besten Dank schonmal.
 
Hi,

Dein Problem ist nicht trivial - hier müsste man über ein Warehousing nachdenken,
da eine Synchronisierung tatsächlich erforderlich wäre. Man könnte so z.B. eine große Datenmenge auf einer separaten Datenbank ablegen und aus dem Livesystem herausnehmen - beispielsweise wenn bestimmte Daten nicht ständig benötigt werden (Stichwort: veraltete Infos bzw. ältere Daten - das System könnte dann prüfen, ob die Inhalte im Live System sind und ansonsten das Warehouse fragen.)

Eine Praxis sieht vor, zu definierten Zeitpunkten eine Synchronisierung vorzunehmen.
Hierbei muss darauf geachtet werden, dass der Live Betrieb nicht gefährdet wird.

Du könntest über einen Batch Prozess nachdenken, der unabhängig von der eigentlichen Anwendung für eine solche Synchronisation sorgt.

Grüße,

Tim
 

Neue Beiträge

Zurück