Moin zusammen,
ich habe vor ein Client-Server-Programm mit dieser Struktur zu bauen:
Ich suche gerade nach einer geeigneten Weise, Nachrichten zwischen Threads und Netzwerkteilnehmer auszutauschen. Der Einfachheit halber sollten die Nachrichten zwischen Threads mehr oder weniger identisch zu den Nachrichten zwischen den Netzwerkteilnehmern sein.
- Mehrere Clienten sind mit einem Server verbunden.
- Der Server(-Thread) koordiniert das Weiterleiten der Nachrichten zwischen Clienten und einer Datenbank.
- Aus Teilen der Daten in der Datenbank werden Objekte erzeugt.
- Gibt es Änderungen in der Datenbank oder bei den Objekten, soll das jeweils andere ebenfalls die Änderung mitbekommen.
- Wenn die Clients auf die Objekte zugreifen, werden je nach Aktion weitere Threads gestartet, die im Hintergrund irgendwas verarbeiten. Diese generierten Threads greifen nur auf die Objekte zu.
- Die Nachrichten sollen beinhalten: Herkunft (bestimmtes Objekt oder Thread), Ziel (Objekt oder Thread) und Inhalt (Statuscode + manchmal Text).
- Es wird 0 bis ~10 Clients geben.
- Es gibt nur einen Server und nur eine Datenbank.
- Es gibt ~100 bis 300 Objekte.
- Pro Objekt werden 0 bis 3*Number_of_Clients Worker gestartet.
Irgendwie habe ich gerade ein Brett vor dem Kopf. Ich weiß nicht genau, wie ich die Kommunikation, die hier nötig ist, koordinieren und umsetzen soll.
Semaphoren verwenden? Das wären ziemlich viele, vielleicht etwas zu aufwendig.
Pipes? Erscheint mir irgendwie auch nicht so das passende.
Listener? Das könnte das beste sein.
Hierzu würde ich gerne eure Meinung hören. Vielleicht gibt es da ja etwas viel besseres.
Gruß, Laurin
ich habe vor ein Client-Server-Programm mit dieser Struktur zu bauen:
Ich suche gerade nach einer geeigneten Weise, Nachrichten zwischen Threads und Netzwerkteilnehmer auszutauschen. Der Einfachheit halber sollten die Nachrichten zwischen Threads mehr oder weniger identisch zu den Nachrichten zwischen den Netzwerkteilnehmern sein.
- Mehrere Clienten sind mit einem Server verbunden.
- Der Server(-Thread) koordiniert das Weiterleiten der Nachrichten zwischen Clienten und einer Datenbank.
- Aus Teilen der Daten in der Datenbank werden Objekte erzeugt.
- Gibt es Änderungen in der Datenbank oder bei den Objekten, soll das jeweils andere ebenfalls die Änderung mitbekommen.
- Wenn die Clients auf die Objekte zugreifen, werden je nach Aktion weitere Threads gestartet, die im Hintergrund irgendwas verarbeiten. Diese generierten Threads greifen nur auf die Objekte zu.
- Die Nachrichten sollen beinhalten: Herkunft (bestimmtes Objekt oder Thread), Ziel (Objekt oder Thread) und Inhalt (Statuscode + manchmal Text).
- Es wird 0 bis ~10 Clients geben.
- Es gibt nur einen Server und nur eine Datenbank.
- Es gibt ~100 bis 300 Objekte.
- Pro Objekt werden 0 bis 3*Number_of_Clients Worker gestartet.
Irgendwie habe ich gerade ein Brett vor dem Kopf. Ich weiß nicht genau, wie ich die Kommunikation, die hier nötig ist, koordinieren und umsetzen soll.
Semaphoren verwenden? Das wären ziemlich viele, vielleicht etwas zu aufwendig.
Pipes? Erscheint mir irgendwie auch nicht so das passende.
Listener? Das könnte das beste sein.
Hierzu würde ich gerne eure Meinung hören. Vielleicht gibt es da ja etwas viel besseres.
Gruß, Laurin