Hallo Gemeinde,
bisher sieht meine Architektur so aus:
In der init-Methode eines Servlets wird meine Applikation gestartet.
Das ist alles.
Ich möchte jetzt aber, dass die Applikation außerhalb des Servlets lebt, weil ich über verschiedene Servlets die Applikation ansprechen möchte.
Ein Servlet ist für Reads zuständig, das nächste für Updates, ein anderer für das Erzeugen neuer Einträge etc.
Ich könnte das alles auch in einem Servlet unterbringen, möchte diese Logiken aber voneinander trennen.
Was mich auch schon immer gestört hat, war, das die Applikation erst dann startet, wenn tatsächlich auch jemand eine Anfrage an das Servlet sendet (könnte ich umgehen, in dem ich die Application im Servlet-Konstruktor initialisiere).
Meine Vorstellung von der Architektur des Ganzen sah auch immer wie eine Pyramide aus:
Die Spitze ist die Schnittstelle nach Außen hin (View). In diesem View wird die Applikation initialisiert.
Der View bereitet dann die Daten so auf, dass die Applikation sie verarbeiten kann. Der Rest der Business-Logik findet in der App statt.
Die App gab dann einen Response in Form eines Strings zurück, den der View dann ausgeben konnte bzw. weiterverarbeiten kann.
Zielsetzung war, dass die App in einer Desktopumgebung, aber auch in einem Webservice sinnvoll einsetzbar ist.
Das Problem an diesem pyramidenhaften Aufbau ist nun, dass ich nicht nur einen View haben will, sondern den View aufsplitten will (einen für Updates, einen für Reads etc.).
Mir fehlt jetzt ein Lösungsansatz oder Stichwort unter dem ich mich mal informieren kann, wie ich ein und das selbe Objekt mit mehreren Servlets parallel ansprechen kann.
Btw.: Ich denke das "View" das falsche Wort ist, weil der "View" in meinem Modell auch Aufgaben des Controllers übernimmt. Ich hoffe das schadet dem Verständnis aber nicht.
Danke!
Beste Grüße
EDIT:
Folgende Idee kam mir gerade:
Ich könnte ja ein Servlet erzeugen, dass die Applikation initialisiert.
Das Servlet beantwortet jedoch keine HTTP-Requests.
Stattdessen wird es über den ServletContext von anderen Servlets (z.b. dem Update-Servlet) aufgerufen und man holt sich dann über die Methode getApp() die App-Instanz.
Was haltet ihr davon?
bisher sieht meine Architektur so aus:
In der init-Methode eines Servlets wird meine Applikation gestartet.
Java:
Application app = new Application();
Ich möchte jetzt aber, dass die Applikation außerhalb des Servlets lebt, weil ich über verschiedene Servlets die Applikation ansprechen möchte.
Ein Servlet ist für Reads zuständig, das nächste für Updates, ein anderer für das Erzeugen neuer Einträge etc.
Ich könnte das alles auch in einem Servlet unterbringen, möchte diese Logiken aber voneinander trennen.
Was mich auch schon immer gestört hat, war, das die Applikation erst dann startet, wenn tatsächlich auch jemand eine Anfrage an das Servlet sendet (könnte ich umgehen, in dem ich die Application im Servlet-Konstruktor initialisiere).
Meine Vorstellung von der Architektur des Ganzen sah auch immer wie eine Pyramide aus:
Die Spitze ist die Schnittstelle nach Außen hin (View). In diesem View wird die Applikation initialisiert.
Der View bereitet dann die Daten so auf, dass die Applikation sie verarbeiten kann. Der Rest der Business-Logik findet in der App statt.
Die App gab dann einen Response in Form eines Strings zurück, den der View dann ausgeben konnte bzw. weiterverarbeiten kann.
Zielsetzung war, dass die App in einer Desktopumgebung, aber auch in einem Webservice sinnvoll einsetzbar ist.
Das Problem an diesem pyramidenhaften Aufbau ist nun, dass ich nicht nur einen View haben will, sondern den View aufsplitten will (einen für Updates, einen für Reads etc.).
Mir fehlt jetzt ein Lösungsansatz oder Stichwort unter dem ich mich mal informieren kann, wie ich ein und das selbe Objekt mit mehreren Servlets parallel ansprechen kann.
Btw.: Ich denke das "View" das falsche Wort ist, weil der "View" in meinem Modell auch Aufgaben des Controllers übernimmt. Ich hoffe das schadet dem Verständnis aber nicht.
Danke!
Beste Grüße
EDIT:
Folgende Idee kam mir gerade:
Ich könnte ja ein Servlet erzeugen, dass die Applikation initialisiert.
Das Servlet beantwortet jedoch keine HTTP-Requests.
Stattdessen wird es über den ServletContext von anderen Servlets (z.b. dem Update-Servlet) aufgerufen und man holt sich dann über die Methode getApp() die App-Instanz.
Was haltet ihr davon?
Zuletzt bearbeitet: