Verteilte Anwendung und Schreibzugriff auf Datei

java12

Grünschnabel
Hallo Forum,

momentan bin ich an der Entwicklung eines verteilten Systems bei dem einzelne Berechnungen auf verschiedenen Clients ausgelagert werden. Die Ergebnisse sollen dann auf dem Server in einer Datei gespeichert werden.

Konkret bin ich noch am überlegen welche Technologie sich dafür am besten eignet:
-Java RMI
-Sockets
-HTTP Requests
-(CORBA)
-weitere?
Meines Erachtens eignet sich RMI am Besten. Mit in die Betrachtung sollte einfliessen, das die Agenten Daten auf dem Server speichern sollen. Das Hauptproblem liegt in der Kommunikation die recht häufig hin und hergehen wird.
Welche Möglichkeiten gibt es in Java um die Datei vor mehrfachem Dateizugriff über remote zu schützen? Bin ich bei den nio Packages richtig?

Grüße java12
 
Funkioniert das dann auch wenn von verschiedenen Rechnern aus zugegriffen wird?

Bei Randomaccessfile hab ich gelesen das erlaubt mehrere lesezugriffe zu realisieren und wenn schreibzugriffe kommen diese dann über synch geschützt werden. hängt das dann vom verwendeten OS ab?
 
Zuletzt bearbeitet:
Also ich bin ja kein Freund von RMI,... aber unabhängig vom Übertragungsprotokoll, die Logik wird ein und die selbe sein.

Wie kann man den Zugriff schützen? Es wurde vorgeschlagen, mit synchronized-locks zu arbeiten. Das geht solange gut, bis Thread 1-99 auf Thread 0 warten, bis der Client sein 100 Megabyte File geschrieben hat. Am besten noch mit einer 50kb/s-Leitung des Clients.

Vorschlag: Die Ergebnisse werden in ein separates File gespeichert: [client-id][laufnummer][whatever]. Ein Thread auf dem Server läuft periodisch, liest das File, speichert sie ins "Hauptfile", löscht/moved das alte File.

Anderer Vorschlag: Evtl. anstatt Filesystem eine Datenbank verwenden. Stichwort Stromausfall, Backup, Recovery und: Sync-Problem haste da nicht (es sei denn du "updatest" ergebnisse und "insertest" sie nicht). Ausserdem: Ein zweiter Server ist dann relativ schnell, oder schneller, dazugeschaltet.

Gruss
slowy
 
Hallo,

was sind den dass für Daten / Dateien?! Für mich klingt das auch eher so als würde man
hier eigentlich eine Datenbank einsetzen wollen... ;-)

Gruß Tom
 
Zurück