Hallo,
ich schlage mich gedanklich mit einem Problem herum.
Ich denke über eine Softwarearchitektur nach, die einen
ThinClient mit Anbindung an einen Server und einer
Datenverbindungsschicht hat.
Die Datenverbindungschicht ist universell einsetzbar und
stellt grundlegende Datenbankkommunikation zur Verfügung
(Mit Insert - Update - und was es alles so nützliches
gibt). Ausserdem hat diese Schicht keine Kenntnis über die Datenbankstruktur
(daher universell)
Überhaupt holt diese SChicht nur auf Anweisung in eine Collection von
Feldern die Informationen, die sie aus der Datenbank erhält.
über eine Objektreferenz kann der Server dann auf diese Felder zugreifen.
Im Prinzip gibt es für jede Tabelle eine zugehörige Klasse, in der die
Informationen für Server/Client zugänglich gemacht sind.
So... soweit so gut...
Jetzt kommt ein Benutzer daher, und ich möchte irgendwie verhindern,
das der Datensatz (der aus mehreren Tabellen besteht) den der Benutzer
geladen hat, von einem anderen Benutzer geändert werden kann.
Immer unter der Annahme das es unter Umständen sehr viele Tabellen sein
können, die hier unter die Bezeichnung "ein Datensatz" fallen.
Zu beachten ist:
- Der Benutzer kann den Datensatz laden und unter Umständen erst
Stunden später den "speichern" Knopf betätigen.
- Ein anderer Benutzer darf auch nicht einen Teil der geladenen Daten
ändern oder der Benutzer der den DS geladen hat, sollte darauf hingewiesen werden,
das seine Daten veraltet sind, wenn er nach stunden speichern will.
Das ganze läuft über RMI
Jetzt zu meiner Frage:
Wo oder in welcher Weise findet ihr es sinvoll eine Kontrolle einzubauen...
Das einzige was feststeht, ist die Grundstruktur, das es zu jeder Tabelle eine Klasse gibt
und das die Datenverbindungsschicht damit überhaupt nichts am Hut hat.
Ich hab mir schon ein "bisschen" den Kopf zerbrochen, bin aber noch
zu keinem befriedigenden Ergebnis gekommen.
Vielleicht habt ihr Bock mit mir ein bisschen zu philosophieren...
vielleicht auch nicht. Auf jeden Fall würd ich mich freuen zu hören
was ihr so dazu meint. Das Thema ist IMHO nicht so trivial, wenn man ein
bissl drüber nachdenkt...
vielleicht hat auch schon einer den Stein der Weisen gefunden ;-)
gruß
apfelsine
ich schlage mich gedanklich mit einem Problem herum.
Ich denke über eine Softwarearchitektur nach, die einen
ThinClient mit Anbindung an einen Server und einer
Datenverbindungsschicht hat.
Die Datenverbindungschicht ist universell einsetzbar und
stellt grundlegende Datenbankkommunikation zur Verfügung
(Mit Insert - Update - und was es alles so nützliches
gibt). Ausserdem hat diese Schicht keine Kenntnis über die Datenbankstruktur
(daher universell)
Überhaupt holt diese SChicht nur auf Anweisung in eine Collection von
Feldern die Informationen, die sie aus der Datenbank erhält.
über eine Objektreferenz kann der Server dann auf diese Felder zugreifen.
Im Prinzip gibt es für jede Tabelle eine zugehörige Klasse, in der die
Informationen für Server/Client zugänglich gemacht sind.
So... soweit so gut...
Jetzt kommt ein Benutzer daher, und ich möchte irgendwie verhindern,
das der Datensatz (der aus mehreren Tabellen besteht) den der Benutzer
geladen hat, von einem anderen Benutzer geändert werden kann.
Immer unter der Annahme das es unter Umständen sehr viele Tabellen sein
können, die hier unter die Bezeichnung "ein Datensatz" fallen.
Zu beachten ist:
- Der Benutzer kann den Datensatz laden und unter Umständen erst
Stunden später den "speichern" Knopf betätigen.
- Ein anderer Benutzer darf auch nicht einen Teil der geladenen Daten
ändern oder der Benutzer der den DS geladen hat, sollte darauf hingewiesen werden,
das seine Daten veraltet sind, wenn er nach stunden speichern will.
Das ganze läuft über RMI
Jetzt zu meiner Frage:
Wo oder in welcher Weise findet ihr es sinvoll eine Kontrolle einzubauen...
Das einzige was feststeht, ist die Grundstruktur, das es zu jeder Tabelle eine Klasse gibt
und das die Datenverbindungsschicht damit überhaupt nichts am Hut hat.
Ich hab mir schon ein "bisschen" den Kopf zerbrochen, bin aber noch
zu keinem befriedigenden Ergebnis gekommen.
Vielleicht habt ihr Bock mit mir ein bisschen zu philosophieren...
vielleicht auch nicht. Auf jeden Fall würd ich mich freuen zu hören
was ihr so dazu meint. Das Thema ist IMHO nicht so trivial, wenn man ein
bissl drüber nachdenkt...
vielleicht hat auch schon einer den Stein der Weisen gefunden ;-)
gruß
apfelsine