Anwendungseinstellungen ohne Datei übertragen?

Teetasse601

Mitglied
Hallo zusammen,

ich bin leider in Sachen Netzwerkprogrammierung nicht so bewandert
und wollte daher fragen, ob es eine Methode gibt, Anwendungseinstellungen
plattformunabhängig ohne Speichern in eine Datei in alle Instanzen meiner
Anwendung zu übertragen. Dateioperationen versuche ich zu vermeiden, da es
dort immer wieder zu Schreibsperrungen & co. kommt. Ich dachte mir,
es gibt bestimmt eine Klasse dafür, aber sicher bin ich mir da leider nicht.

Kennt jemand eine Lösung ?

Eure
Teetasse601
 

Teetasse601

Mitglied
Hallo turtle,

meine Frage war, wie man, wenn man sein Programm mehrfach
geöffnet hat, und in einem der offenen Fenster etwas ändert,
die geänderten Einstellungen mit den anderen offenen Fenstern (den
anderen Prozessen der eigenen Anwendung) synchronisieren kann.
Und ob es einen Weg gibt, dies ohne das Speichern in einer Datei zu tun.

Es geht hier also um das Übermitteln von Einstellungen
von einem Prozess meiner Anwendung an alle anderen Prozesse
meiner Anwendung, nur weiß ich nicht, wie genau ich das
angehen sollte. Wahrscheinlich braucht man dafür ein
Protokoll wie TCIP/IP ( oder braucht man Sockets ? ) .

Hat jemand eine Idee ?

Teetasse601
 
Zuletzt bearbeitet:

Androbin

Bekanntes Mitglied
Du kannst dir doch einfach deine "Programm-Instanzen" in einer ArrayList speichern und diese dann darüber synchronisieren :bloed:
Funktioniert natürlich nur, wenn du diese von einem zentralen Ort aus instanziierst, da du sonst keine Referenzen mehr auf deine Programme hast, über die du operieren kannst :toll:
 

turtle

Top Contributor
Ah, jetzt verstehe ich dein Problem;)

Und nein man braucht dafür keine Sockets...

Nehmen wir an, das deine Applikation auf einer Datenbank basiert. Dann können alle Applikations-Instanzen ja die geänderten Einstellungen aus der DB lesen und bemerken,das "jemand" diese geändert hat.

Nun würde ich nicht unbedingt zu einer DB raten, aber stattdessen zu java.util.Preferences raten.

Ich vermute deine nächste Frage wird sein, wie denn alle anderen Applikations-Instanzen "sofort" informiert werden, wenn Einstellungen geändert werden?

Dies ist in der Tat eine weitreichende Frage und ich kann wieder nur auf das DB-Modell zurückkommen.

Nehmen wir wieder an, deine Applikation ist der Server-Teil an dem mehrere hundert Clients angemeldet sind. Nun ändert ein Client Daten in der DB. Möchtest du wirklich an die anderen hunderte Clients die Information schicken, das da was passiert ist? Dies hat zumindest miserable Performance zur Folge. Daneben kann es ja durchaus passieren, das ein Client gerade Dinge tut, wo ein Update nicht geht. Und in der Tat benötigst du, wenn du meinst, das zu benötigen eine Art der Synchronisation von Server (Client der ändert) zu Clients (die auf Änderungen horchen).

Ich sehe nicht, warum beim Start die Einstellungen gelesen werden und wenn ein Client sie ändern möchte, feststellt, das jemand andere hier schon Änderungen vorgenommen hat und dann entscheidet den Benutzer zu informieren, ob er A überschreiben oder B abbrechen und mit den geänderten Daten weiter arbeiten möchte.

Solange der Client X arbeiten kann, verstehe ich nicht, warum er "sofort" informiert werden muss?

Wenn das doch der Fall sein muss, (Beispiel?), gibt es natürlich noch die Möglichkeit des Einsatzes eines WatchService. Damit kannst du überwachen, ob sich ein Directory/Datei geändert hat und deine Applikations-Instanz wird informiert. Dann wirst du wahrscheinlich auf eine "normale" Properties Datei zurückgreifen und diese überwachen wollen.
 

fischefr

Aktives Mitglied
Also beim Logging gibt es häufig die gleiche Problemstellung: Man möchte das Logging Level ändern ohne die Anwendung neu zu starten. Daher wird hier oft von der Anwendung in regelmäßigen Intervallen das Änderungsdatum der Konfigurationsdatei geprüft. Wenn eine Änderung festgestellt wird, wir das Logging neu initialisiert und die Konfigurationsdatei neu gelesen.
Das ist natürlich nur bei relativ wenigen Instanzen und relativ seltenen Änderungen praktikabel - aber sehr einfach umzusetzen.
 

mjustin

Aktives Mitglied
Es geht hier also um das Übermitteln von Einstellungen
von einem Prozess meiner Anwendung an alle anderen Prozesse
meiner Anwendung, nur weiß ich nicht, wie genau ich das
angehen sollte. Wahrscheinlich braucht man dafür ein
Protokoll wie TCIP/IP ( oder braucht man Sockets ? ) .

TCP/IP basiert auf Sockets :)

Gibt es einen Prozess, der als ein "Boss" allen anderen Prozessen
geänderte Einstellungen zufunken soll, ist neben Eigenkreationen
zum Beispiel das neue WebSockets Protokoll geeignet.

Die anderen Prozesse verbinden sich dabei mit dem "Boss"
und dieser kann dann per Socket Daten an einen oder alle anderen
Prozesse senden.

Es komplett selber zu erstellen ist sicher auch möglich, der Server
muss dazu einen Port öffnen, die Clients verbinden sich, und lesen
(blockierend) aus dem InputStream des Sockets. Dies natürlich ein
einem Thread.
 

turtle

Top Contributor
Ich weiß nich, ob dem TO bekannt ist, welche Implikationen dieses alles nach sich zieht.;)

Beispielsweise musst du als Erstes ein Boss-Programm starten,damit sich alle Client-Applikationen bei ihm registrieren können. Daneben muss eine Bibliothek beim Boss und den Clients installiert sein, damit ein Push-Service gemacht werden kann. Weiterhin muss die Kommunikation multi-threaded programmiert sein. Schlussendlich ist nicht gewährleistet, das eine Änderung vom Boss überhaupt in dem was ein Client gerade macht überhaupt in den Client-Ablauf reinpasst.

Alles zusammengenommen tendiere ich dann doch dazu, eine Datenbank ins Spiel zu bringen. Diese Technik ist ausgereift, sofort einsetzbar und alles was gelernt wird kann man in weiteren Projekte nutzen. Gibt es mal DB-Probleme findet man sicher tausende von Ideen, was gemacht werden kann.

Eine Client-Applikation wird dann nicht informiert, sondern holt sich selbst die neusten Einstellungen von der DB. Datenbank ausgelegt auf viele Benutzer und multi-threaded.

Mein Argument ist immer noch gültig, das dies zu schlechter Performance führt, wenn zu oft die DB gefragt wird ob sich Einstellungen geändert haben. Abhilfe vielleicht Caching oder periodische Client-Jobs
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
T TCP mit und ohne Threads Netzwerkprogrammierung 1
V Socket Audio Clip loopen ohne neuen Thread Netzwerkprogrammierung 2
L Socket Wie kann man in Java die Anzahl der Objekte in einem InputStream sehen ohne ihn durchgehen zu müssen Netzwerkprogrammierung 1
Q-bert Link zugang ohne login sperren. Netzwerkprogrammierung 1
L Socket Zwei Computer im gleichen Netwerk ohne Portforwarding ? Netzwerkprogrammierung 12
J HTTP Befehl via HTTP senden ohne Browser öffnen Netzwerkprogrammierung 3
B JSch Filetransfer ohne KnownHosts Datei? Netzwerkprogrammierung 0
D GZIP InputStream lesen ohne zu encoden Netzwerkprogrammierung 1
T UDP Pakete empfangen ohne Programm zu blockieren Netzwerkprogrammierung 3
D Zugriff auf Webinhalte ohne visuelles Öffnen der Website Netzwerkprogrammierung 2
B Socket BufferedImage senden "ohne speichern" Netzwerkprogrammierung 7
N (TCP) Verbindung ohne Portforwarding Netzwerkprogrammierung 12
B Socket BufferedReader.readLine() beenden ohne den Stream zu closen Netzwerkprogrammierung 7
D Mit wsimport erstellte Klassen ohne WSDL nutzen Netzwerkprogrammierung 4
T Datei downloaden ohne den Dateinamen zu kennen Netzwerkprogrammierung 2
D RMI Gui auf client updaten basierend auf den Property Änderung des Models auf dem Server ohne polling Netzwerkprogrammierung 12
B FTP Datei auslesen ohne einloggen möglich? Netzwerkprogrammierung 19
E RMI ohne Portforwarding? Netzwerkprogrammierung 2
M Ping mehrerer Ports aus int[] ohne for-Schleifendurchlauf Netzwerkprogrammierung 11
C Login ohne Erfolg Netzwerkprogrammierung 2
L einfacher server ohne threads Netzwerkprogrammierung 4
P RMI ohne Security Netzwerkprogrammierung 5
J Client ohne Server? Netzwerkprogrammierung 7
K Socket Daten lesen ohne Längenangabe Netzwerkprogrammierung 19
0 soap client ohne WSDL Netzwerkprogrammierung 3
J Connection Speed Test ohne Applet Netzwerkprogrammierung 5
E DatagramSocket rausfinden ob recive möglich ohne zu blocken Netzwerkprogrammierung 10
O Webservice ohne Eclipse laufen lassen Netzwerkprogrammierung 3
T Server ohne Port Netzwerkprogrammierung 4
L RMI Programm beendet ohne Fehler sofort nach Start (Windows 2000) Netzwerkprogrammierung 7
C imap/java emails checken ohne runterzuladen? Netzwerkprogrammierung 3
T ohne Port Freigabe. Netzwerkprogrammierung 6
P P2P ohne Portfreigabe Netzwerkprogrammierung 12
J Client-Client-Chat ohne Serverbeteiligung Netzwerkprogrammierung 2
G Connection zu MySQL ohne ODBC Netzwerkprogrammierung 8
G TCP Verbindung überprüfen OHNE daten zu verschicken Netzwerkprogrammierung 11
T select() ohne NIO - oder wie Worker-Thread sauber beenden? Netzwerkprogrammierung 9
Paule Connection Applet Servlet ohne Socket bzw RMI Netzwerkprogrammierung 2
L http kommunikation mit und ohne multipart Netzwerkprogrammierung 4
R RMI: Remote Object ohne Naming Service benutzen? Netzwerkprogrammierung 2
K RMI ohne Kommandozeileneingabe Netzwerkprogrammierung 9
M Ende des Streams ohne Schließen/Checksumme mitsenden Netzwerkprogrammierung 2
G SSL Verbindung ohne Zertifikat Netzwerkprogrammierung 9
D Timeouts ohne Ende bei SMTP und FTP Netzwerkprogrammierung 3
M Client-Kommunikation ohne Server Netzwerkprogrammierung 7
M schreiben auf geschlossenen Socket ohne Exception Netzwerkprogrammierung 6
A server mit 2 Ports : Mit und ohne SSL Chat system Netzwerkprogrammierung 10
K Applet - Servlet Kommunikation ohne Sockets Netzwerkprogrammierung 5
J Vom BufferedReader lesen -> hängt ohne Fehler,ohne Except Netzwerkprogrammierung 2
A Bei FTP Übertragung wird Datei nicht komplett übertragen Netzwerkprogrammierung 2
J Datei Download vom Server Netzwerkprogrammierung 8
H Datei mit Anhang via http "hochladen" Netzwerkprogrammierung 16
E JCIFS - Smb - Datei kann nur von einem Benutzer bearbeitet werden Netzwerkprogrammierung 1
Aruetiise Socket Datei Endung Netzwerkprogrammierung 6
A FTP wie kann ich von java auf datei in fpt://192.168.178.1 lesen/schreiben? Netzwerkprogrammierung 3
K HTTP Formulare füllen und Datei downloaden Netzwerkprogrammierung 23
A Datei erzeugen und auf der Weboberfläche downloaden (Tomcat) Netzwerkprogrammierung 4
Sogomn HTTP Datei herunterladen Netzwerkprogrammierung 13
C Inhalt einer .JPG Datei in einen OutputStream schreiben? Netzwerkprogrammierung 10
F FTP FTPClient Datei lässt sich nicht öffnen Netzwerkprogrammierung 4
F HTTP Serialisierte Objekte aus Datei von Server Netzwerkprogrammierung 1
F FTP Einzelne Datei von FTP-Server überprüfen Netzwerkprogrammierung 0
L FTP Lesen einer Datei vom Server - Aufgehangen Netzwerkprogrammierung 0
M jsf-seite beim hinzufügen einer csv-datei in einen ordner aktualiseren Netzwerkprogrammierung 0
D Einfache Verbindung zu Linux Server und Datei auslesen Netzwerkprogrammierung 13
S Datei(XML) per RMI an Server schicken Netzwerkprogrammierung 0
V Datei Download Fenster Netzwerkprogrammierung 9
S Datei schreiben über Applet Netzwerkprogrammierung 8
C Socket Datei Übertragung Netzwerkprogrammierung 5
D Datei hochladen zu PHP Server Netzwerkprogrammierung 8
C Datei über Socket schreiben und Ereignis lesen Netzwerkprogrammierung 9
K HTTP Eigener Http Response für Datei-Download Netzwerkprogrammierung 4
D Socket Datei nur stückweise über Socket verschicken Netzwerkprogrammierung 6
H Datei in DropBox schreiben Netzwerkprogrammierung 23
N über Java in eine Text-Datei auf einem Server schreiben Netzwerkprogrammierung 2
V Datei auf Server Schreiben Netzwerkprogrammierung 18
N Einen Server als ausführbare Datei exportieren Netzwerkprogrammierung 15
N Problem über http eine Datei zu senden Netzwerkprogrammierung 4
C Datei auf server speichern Netzwerkprogrammierung 16
P FTP Nochmal wachsende Datei per FTP lesen Netzwerkprogrammierung 9
W Datei automatisiert kopieren! Netzwerkprogrammierung 5
P Wachsende Datei per FTP lesen Netzwerkprogrammierung 2
U Datei über das Netzwerk einlesen und speichern Netzwerkprogrammierung 8
S Servlet - Datei kann nicht gelöscht werden Netzwerkprogrammierung 12
G Txt datei von Website downloaden Netzwerkprogrammierung 8
R HTTP Apache HTTP Client: Request mit angehängter Datei Netzwerkprogrammierung 2
I HTTP Datei Uploaden mit http und Sprache anpassen Netzwerkprogrammierung 7
1 Datei senden/empfangen funzt nicht... Netzwerkprogrammierung 5
S ActiveMQ, JMS und Datei übertragen Netzwerkprogrammierung 25
M Socket Datei über Socket versenden Netzwerkprogrammierung 5
U Web Datei downloaden und bei Änderungen wieder zurückspielen Netzwerkprogrammierung 5
M Class-Datei aus Eclipse mit Xampp Netzwerkprogrammierung 4
A HTTP Download einer Datei mit "Statistiken" Netzwerkprogrammierung 2
B Zugriff auf eine Text- und XML-Datei Netzwerkprogrammierung 4
Dit_ FTP, Datei Hochladen Netzwerkprogrammierung 4
Ollek Download einer Datei durch SFTP mit Java Netzwerkprogrammierung 12
J Datei übertragen ja String + datei übertragen nein Netzwerkprogrammierung 5
P Name der Download-Datei ermitteln Netzwerkprogrammierung 8
N Socket TCP Datei Transfer Netzwerkprogrammierung 2
L Java über php datei lesen? Netzwerkprogrammierung 18

Ähnliche Java Themen

Neue Themen


Oben