Geeignetes Verzeichnis

TM69

Bekanntes Mitglied
Bezugnehmend auf den Beitrag von @Schuriko https://www.java-forum.org/thema/pfad-zu-ressourcen.188450/#post-1222298 hätte ich auch mal eine Frage an euch.

Ich erstelle gerad ein webbasiertes Zeichenwerkzeug. An dieses Zeichenwerkzeug können sich beliebig viele Benutzer anmelden und ihre eigene Zeichnung erstellen.
Später soll es auch Teambasiert noch arbeiten.

Jeder Benutzer kann z.B. u.a. auch eigene Paletten mit selbstdefinierten Farben erzeugen, diese soll im Backend auf einem Server gespeichert werden.
Wo würdet ihr diese Dateien speichern? Ich persönlich bin mir dabei noch etwas unschlüssig.
 

httpdigest

Top Contributor
Auch, wenn man das sicherlich erstmal per irgendeiner Java File API als Datei auf dem lokalen Dateisystem speichern könnte, wirst du damit später Skalierungs- und Portierungsprobleme bekommen. Normalerweise sollte man immer den eigentlichen Server von der Datenhaltung entkoppeln, so dass im besten Fall beides auf unterschiedlichen Maschinen laufen kann und die Daten per Netzwerkprotokoll ausgetauscht werden können. Das ist aber nur dann wirklich notwendig, wenn du irgendwann einmal horizontale Skalierung etwa zwecks Lastverteilung oder Redundanz/Verfügbarkeit/Failover benötigst: Nur, weil du deinen Server ein zweites oder drittes Mal auf einer neuen Maschine startest, sollen ja nicht alle Daten aller Nutzer dort nicht mehr erreichbar sein, weil sie auf dem lokalen Dateisystem einer anderen Maschine gespeichert sind.
Natürlich kann man hier auch z.B. Netzwerkdateisysteme nutzen. Das Problem dabei ist aber, dass du die Atomarität und die Sichtbarkeit von konkurrierenden Änderungen durch mehrere Server selbst handeln musst. Du hast also ein verteiltes System mit einer nicht-transaktionalen Datenhaltung.
Gerade für das Stichwort "Transaktionalität" und "Ausfallsicherheit" bieten sich dann z.B. Systeme an, die das implementieren, wie eben OLTP Datenbanken wie etwa relationale Datenbanksysteme (MySQL, PostgreSQL, ...) oder auch viele dokumentbasierte oder Schlüssel-/Wert-basierte Datenbanken (MongoDB z.B.).
Letztlich hängt also die zu wählende Lösung von den Faktoren Verfügbarkeit, Ausfallsicherheit, Backupfähigkeit, Lastverteilung deiner Anwendung ab.
 

TM69

Bekanntes Mitglied
Ja,
Auch, wenn man das sicherlich erstmal per irgendeiner Java File API als Datei auf dem lokalen Dateisystem speichern könnte, wirst du damit später Skalierungs- und Portierungsprobleme bekommen. Normalerweise sollte man immer den eigentlichen Server von der Datenhaltung entkoppeln, so dass im besten Fall beides auf unterschiedlichen Maschinen laufen kann und die Daten per Netzwerkprotokoll ausgetauscht werden können. Das ist aber nur dann wirklich notwendig, wenn du irgendwann einmal horizontale Skalierung etwa zwecks Lastverteilung oder Redundanz/Verfügbarkeit/Failover benötigst: Nur, weil du deinen Server ein zweites oder drittes Mal auf einer neuen Maschine startest, sollen ja nicht alle Daten aller Nutzer dort nicht mehr erreichbar sein, weil sie auf dem lokalen Dateisystem einer anderen Maschine gespeichert sind.
Natürlich kann man hier auch z.B. Netzwerkdateisysteme nutzen. Das Problem dabei ist aber, dass du die Atomarität und die Sichtbarkeit von konkurrierenden Änderungen durch mehrere Server selbst handeln musst. Du hast also ein verteiltes System mit einer nicht-transaktionalen Datenhaltung.
Gerade für das Stichwort "Transaktionalität" und "Ausfallsicherheit" bieten sich dann z.B. Systeme an, die das implementieren, wie eben OLTP Datenbanken wie etwa relationale Datenbanksysteme (MySQL, PostgreSQL, ...) oder auch viele dokumentbasierte oder Schlüssel-/Wert-basierte Datenbanken (MongoDB z.B.).
Letztlich hängt also die zu wählende Lösung von den Faktoren Verfügbarkeit, Ausfallsicherheit, Backupfähigkeit, Lastverteilung deiner Anwendung ab.
Ja da gebe ich dir voll ganz recht. Deshalb fällt es mir momentan schwer eine optimale Technik zu finden. Was würdest du denn bevorzugen?
 

LimDul

Top Contributor
Standard ist in der Regel eine Datenbank. Allerdings setzt die voraus, dass man auch entsprechend strukturierte Daten hat, die man in einer Datenbank ablegen kann. Mit einer Datenbank bekommt man halt schon viel von dem was @httpdigest erwähnt hat geschenkt - zu dem Preis, dass man ein OR-Mapping braucht.
 

httpdigest

Top Contributor
Korrekt, wobei Datenbank nicht gleich RDBMS heisst. Für unstrukturierte/schemalose und auch BLOB Daten, würde ich z.B. einfach ein dokumenten-basiertes Datenbankmanagementsystem wie MongoDB nehmen.
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
F Funktionsplotter komplexe Zahlen: geeignetes 3D-Koordinatensystem Allgemeine Java-Themen 16
F Typüberprüfung in Superklasse - geeignetes Pattern? Allgemeine Java-Themen 11
G geeignetes Thema für Kurzreferat? Allgemeine Java-Themen 3
S Verzeichnis schreibzugriffe erlaubt unabhängig von ACL und Posix Allgemeine Java-Themen 11
P Wofür ist das Verzeichnis $HOME/.oracle_jre_usage? Allgemeine Java-Themen 3
M Dateien aus einem Verzeichnis auf einem Server auflisten Allgemeine Java-Themen 5
K NetBeans Ordner bei 'Clean&Build' automatisch in dist Verzeichnis kopieren Allgemeine Java-Themen 0
C Verzeichnis ins JMenu einlesen Allgemeine Java-Themen 2
A Class Datei aus Verzeichnis über URLClassLoader laden Allgemeine Java-Themen 2
C Umgebungsvariable Java-Datei in anderem Verzeichnis ausführen Allgemeine Java-Themen 2
K [Refactoring] ClassLoader Verzeichnis durchsuchen lassen Allgemeine Java-Themen 7
R Welches User-Verzeichnis wählen für Configurationsdateien - Windows Allgemeine Java-Themen 2
R Änderungen in einem Verzeichnis beobachten - Windows Allgemeine Java-Themen 3
S Aus executable jar Verzeichnis erstellen Allgemeine Java-Themen 8
reibi Leeres Verzeichnis in ein Zipfile einfügen Allgemeine Java-Themen 12
reibi Schreibrechte auf ein Verzeichnis Allgemeine Java-Themen 3
G Log4J Verzeichnis der Log-Datei konfigurieren Allgemeine Java-Themen 8
A Drucken ändert aktuelles Verzeichnis Allgemeine Java-Themen 2
reibi Aktuelles Verzeichnis in den Klassenpfad nehmen Allgemeine Java-Themen 9
T Eclipse Dateien einzeln aus einem Verzeichnis laden! Allgemeine Java-Themen 6
B ObjectOutputStream verzeichnis wählen Allgemeine Java-Themen 8
Benji0815 Verzeichnis wie im Windows Explorer in einem JTree anzeigen Allgemeine Java-Themen 6
L Applet Verzeichnis lesen Allgemeine Java-Themen 3
B Verzeichnis durchsuchen geschwindigkeit optimieren Allgemeine Java-Themen 6
B in welchem verzeichnis liegen alle installierten klassen? Allgemeine Java-Themen 6
G Klassen aus Verzeichnis laden Allgemeine Java-Themen 13
S Aktuelles Verzeichnis - CMD/Kommandozeilenproblem Allgemeine Java-Themen 9
G Zwischen Datei und Verzeichnis unterscheiden. Allgemeine Java-Themen 11
C Velocity liest template-Dateien nicht aus einem Verzeichnis Allgemeine Java-Themen 3
heart_disease Verzeichnis-Probleme mit ZIP Allgemeine Java-Themen 4
M Verzeichnis durchlaufen und Dateien umbennen Allgemeine Java-Themen 2
P Verzeichnis in JAR-Datei durchgehen Allgemeine Java-Themen 2
G Dateien und Verzeichnisse in einem Verzeichnis zählen Allgemeine Java-Themen 9
W Verzeichnis für Benutzerfiles Allgemeine Java-Themen 7
S Ist File ein root-Verzeichnis? Allgemeine Java-Themen 2
J Herangehensweise: FTP-Transfer von Verzeichnis Allgemeine Java-Themen 8
G Java Klasse in einem anderen Verzeichnis aufrufen Allgemeine Java-Themen 3
H mit javac Verzeichnis kompilieren Allgemeine Java-Themen 2
E Existierendes Verzeichnis nicht gefunden Allgemeine Java-Themen 4
M Verzeichnis auslesen - Fehler in isDirectory()? Allgemeine Java-Themen 4
F Verzeichnis, in dem sich die ausführende jar Datei befindet Allgemeine Java-Themen 9
K Verzeichnis rekursiv aus JAR-Datei extrahieren Allgemeine Java-Themen 6
O Ein Verzeichnis aus der Root ablesen/Dateitypen registrieren Allgemeine Java-Themen 5
P Verzeichnis auwählen Allgemeine Java-Themen 2
S Starten einer Anwendung von einem anderen Verzeichnis Allgemeine Java-Themen 3
P Mit getResource() ein ganzes Verzeichnis laden Allgemeine Java-Themen 5
T Verzeichnis der Klasse Allgemeine Java-Themen 7
J Verzeichnis aus meinem JAR auslesen und abspeichern. Allgemeine Java-Themen 2
G Verzeichnis löschen? Allgemeine Java-Themen 3
W Aktuelles Verzeichnis rausfinden Allgemeine Java-Themen 13
S Probleme mit dem Compilieren von Dateien in Verzeichnis Allgemeine Java-Themen 4
G Dateien zählen im Verzeichnis Allgemeine Java-Themen 11
G aktuelles Verzeichnis Allgemeine Java-Themen 2
A Verzeichnis auflisten - auch innerhalb eines Jars Allgemeine Java-Themen 6
G Verzeichnis überwachen Allgemeine Java-Themen 13
S Temporäres Verzeichnis anlegen? Allgemeine Java-Themen 4
G Java Runtime Verzeichnis ermitteln Allgemeine Java-Themen 3
S dringend-verzeichnis von festplatte einlesen Allgemeine Java-Themen 9
P Dateinamen testen? Schreibrechte auf Verzeichnis testen? Allgemeine Java-Themen 8
M Verzeichnis verschieben? Allgemeine Java-Themen 2
G Bestimmte Dateien aus Verzeichnis löschen Allgemeine Java-Themen 5
S Programm starten mit Runtime aktuelles Verzeichnis wechseln Allgemeine Java-Themen 7

Ähnliche Java Themen

Neue Themen


Oben