# Framework mehrere Clients/ Server-Broadcast/oracle XE/ XML



## Jeffieboy (3. Mrz 2015)

Hallo zusammen,

bin ein Anfänger und bräuchte Denk- bzw. Suchanstöße.
Ich habe eine Software, mit welcher Benutzer aktuell Modelle erstellen können, die als XML in der Oracle XE Datenbank auf dem Server gespeichert werden. Momentan funktioniert das mit den Locks, das heißt nur ein schreibender Benutzer pro Modell, alle andere können lesend zugreifen, bekommen aber die Aktualisierungen des Schreibers nach ihrem Zugriff nicht mit. Außerdem soll in die Software eine Chatfunktion eingebaut werden.
Dies soll jetzt geändert werden.
Ziel 1: ein Framework zu schreiben, welches alle Änderungen eines Benutzers an den Server sendet und dieser die Änderungen (nach dem erfolgreichen Speichern in DB) sofort an alle Benutzer weiterleitet. Das Framework soll nur mit ByteInputStreams arbeiten, damit sowohl Chat-Nachrichten wie auch XML-Dateien behandelt werden können.
Wenn das Framework dann feststeht, werden an den Server von einzelnen Clients XML-Diffs mit der Versionsnummer gesendet. Server gleicht ab, ob die Version der DB um 1 kleiner ist. Falls ja--> Update und alle Clients per Server-Broadcast aktualisieren. Falls nein-->verwerfen. Also eine ganz einfache Konfliktlösung first come, first served.
Momentan habe ich als Prototyp folgende Lösung umgesetzt: jeder Client hat einen DB-Listener, bekommt Updates von der DB mit und holt sich neue Dateien von der DB. Ist umständlich da Aktualisierungsintervalle bei mindestens einer Sekunde liegen müssen, da sonst die DB abschmiert, und bei vielen Usern schmiert sie auch ab.
Die Frage: wo soll ich bei der Umsetzung des Frameworks anfangen? Also welche bekannte Klassen/Frameworks gibt es da, welche ich dafür nutzen kann? Bin da gerade eh auf der google-Suche, glaube aber, dass ich von euch sinnvollere Antworten kriegen kann 

Danke und Grüße,
Jeff


----------



## Jeffieboy (3. Mrz 2015)

Habe vergessen, dazuzuschreiben, dass die Clients selbst über keine Datenbanken verfügen, sondern nur auf die zentrale Server-DB zugreifen


----------

