Ich würde gerne folgendes Erreichen:
In meiner Anwendung muss sich ein nutzer anmelden. Damit bekommt er ein objekt zugewiesen mit dem er dann konkrete Aktionen auf dem Server tätigen kann. Durch dieses Objekt weiss ich welcher Nutzer angemeldet ist. Leider verliere ich ja im Server, nachdem ich das Remote Objekt rausgegeben habe, das Objekt auf Serverseite. Führe ich das Objekt z.B. in einen Vector oder einer Liste auf Serverseite mit. Kann ich nicht mehr genau bestimmen wann ich es nicht mehr brauche (Auf Clientseite freigegeben). Gibt es irgend ein möglichkeit um auf Serverseite zu bestimmen wann ein Objekt freigegeben werden kann damit es aus so einer Liste rauskommt? Finalized wäre mein erster ansatz (in verbindung mit weak_reference) aber so wirklich das wahre ist es wohl auch nicht, da bei finalized ja nicht garantiert wird wann es ausgeführt wird. Alternative wäre eine phantom_reference in verbindung mit einer Reference_queue die in einen Thread immer Removed und Damit herausfindet welcher Nutzer ausgeloggt hat.
Als zweites habe ich eine Frage wegen Threadsicherheit:
Prinzipiell ist ja RMI sowas wie eine Multithreading umgebung. Es wird ja nirgendswo festgelegt wann welcher client was abfragt. Wie hat sich das dann mit einer Login Methode die als allgemeiner Service angeboten wird? Soll ich die allgemein Synchronized machen? Reicht es da nur über bestimmte Variablen zu locken die exklusiv sein sollen?
In meiner Anwendung muss sich ein nutzer anmelden. Damit bekommt er ein objekt zugewiesen mit dem er dann konkrete Aktionen auf dem Server tätigen kann. Durch dieses Objekt weiss ich welcher Nutzer angemeldet ist. Leider verliere ich ja im Server, nachdem ich das Remote Objekt rausgegeben habe, das Objekt auf Serverseite. Führe ich das Objekt z.B. in einen Vector oder einer Liste auf Serverseite mit. Kann ich nicht mehr genau bestimmen wann ich es nicht mehr brauche (Auf Clientseite freigegeben). Gibt es irgend ein möglichkeit um auf Serverseite zu bestimmen wann ein Objekt freigegeben werden kann damit es aus so einer Liste rauskommt? Finalized wäre mein erster ansatz (in verbindung mit weak_reference) aber so wirklich das wahre ist es wohl auch nicht, da bei finalized ja nicht garantiert wird wann es ausgeführt wird. Alternative wäre eine phantom_reference in verbindung mit einer Reference_queue die in einen Thread immer Removed und Damit herausfindet welcher Nutzer ausgeloggt hat.
Als zweites habe ich eine Frage wegen Threadsicherheit:
Prinzipiell ist ja RMI sowas wie eine Multithreading umgebung. Es wird ja nirgendswo festgelegt wann welcher client was abfragt. Wie hat sich das dann mit einer Login Methode die als allgemeiner Service angeboten wird? Soll ich die allgemein Synchronized machen? Reicht es da nur über bestimmte Variablen zu locken die exklusiv sein sollen?