2017-11-17 1 views
-3

Ich habe ein Problem, das ich von Zeit zu Zeit versuche zu lösen. Angenommen, es gibt eine Webanwendung mit einer Seite, die viele Eingabefelder enthält. Angenommen, es gibt viele gleichzeitige Benutzer, die auf diese Seite zugreifen und Daten in diese Eingaben eingeben. Wenn ein Benutzer ein Feld bearbeitet, sollte sich diese Änderung in allen anderen Benutzerschnittstellen widerspiegeln. Kann mir jemand in die richtige Richtung zeigen oder irgendwelche Web-Ressourcen, um das zu erledigen? Momentan gibt es zwei Load-Balanced-Tomcat-Knoten, die die Web-Anwendung hosten, und ich habe die Idee, ein gemeinsames dynamisches Objekt zu erstellen, um die Daten zu speichern. Irgendwelche Vorschläge wären hilfreich.Was ist der beste Weg, um dynamische Objekte zu entwerfen, die in Echtzeit aktualisiert werden?

+0

"Echtzeit" hat eine bestimmte Bedeutung in der EDV, und das ist es nicht. Die Standardterminologie nicht missbrauchen. – EJP

+0

Danke EJP, könnten Sie mir helfen, dies zu korrigieren. Was ist der korrekte Ausdruck für dieses Szenario? – StO

Antwort

0

Ihre Frage ist mehr eine architektonische. Wie aktualisiert man automatisch eine zweite GUI bei Aktionen in GUI # 1?

Sie wissen wahrscheinlich, wie Sie die Aktion an eine Ihrer Tomcat-Instanzen weiterleiten. Das erste Problem besteht darin, wie diese Aktion an alle Serverinstanzen gesendet wird. Sie könnten es in eine Datenbank schreiben und jede Instanz regelmäßig abfragen lassen, aber das wäre ein schlechtes Design. Wahrscheinlich müssen Sie Ihre Daten persistieren, aber wenn Sie alle Instanzen über Updates informieren müssen, empfehle ich die Verwendung einer Nachrichtenwarteschlange (https://de.wikipedia.org/wiki/Java_Message_Service#JMS-Provider).

Teil zwei Ihres Problems ist, wie Sie die Updates zurück zu allen Browsern schieben. Es gab einige Rahmenbedingungen, um dies zu erreichen. Beispiel: https://en.wikipedia.org/wiki/Comet_(programming). Java 9 unterstützt eine brandneue Technologie, die Sie verwenden könnten: https://en.wikipedia.org/wiki/WebSocket. Die schnell und schmutzig Lösung wäre eine regelmäßige Javascript-Abfrage.

Grundsätzlich müssen Sie sich zwischen der einfachen Abfrage und den fortgeschrittenen Push-Technologien sowohl auf der Server- als auch auf der Client-Seite entscheiden.

Sie können auch wählen, es NICHT selbst zu implementieren und verwenden Sie so etwas: https://firebase.googleblog.com/2017/10/introducing-cloud-firestore.html.

Verwandte Themen