Ich habe einen Client, der einen lang andauernden Prozess auf dem Server startet. In regelmäßigen Abständen möchte ich dem Benutzer zeigen, was im Hintergrund passiert. Der einfachste Ansatz besteht darin, den Server abzufragen, aber ich frage mich, ob es keine Möglichkeit gibt, das Observer-Muster dafür zu implementieren. Leider benutze ich RMI, um mit dem Server zu sprechen, und ich befürchte, dass ich meinen Client dafür zu einem RMI-Server machen muss.
Gibt es einen anderen Weg, den ich vermisse?
RMI kann im Allgemeinen Zweiwegkommunikation unterstützen. (Und ja, RMI ist eine PITA, die man einrichten und mit der man alles andere machen kann.)
Der HTTP-Transport, der über ein CGI-Skript (!) funktioniert, unterstützt dies jedoch nicht.
Konsolidierung aller Antworten hier, ich implementierte 2-Wege-RMI zwischen Client und Server, wobei der Server seinen Stub mit Registry
freilegtDer folgende Code gibt eine bessere Idee
%Vor%Ich glaube nicht, dass Sie etwas verpassen. Die einzigen beiden Möglichkeiten bestehen darin, den Server entweder regelmäßig aufzurufen und den Status zu überprüfen (Polling) oder einen Rückruf zu registrieren, den der Server regelmäßig aufruft (Ihr Client muss eine Methode verfügbar machen). IMO, Polling ist ein vollkommen vernünftiger Weg, damit umzugehen.
Tags und Links java rmi observer-pattern