Java Java Programm + Weboberfläche (Client-Server)

XHotSniperX

Lt. Junior Grade
Registriert
Jan. 2008
Beiträge
472
Hallo Leute

Ich möchte ein Projekt weiterentwickeln und eine Weboberfläche machen, wo man mit dem Java Programm kommunizieren und dieses steuern kann. Das Programm ist momentan bereits als ein normales Java Programm vorhanden. In einem ersten Versuch, dieses Programm mit dem Browser steuern zu können, wurde Jetty eingesetzt.

Im Moment startet also das Java Programm den Jetty Server und zusätzlich läuft noch ein Webserver für die PHP-Dateien. So verbindet man sich dann mit dem Browser mit dem Webserver und dann über Jetty zum Java Programm. Das ist aber keine gute Architektur, da zwei Server laufen (Apache und Jetty), was unnötig ist.

Wisst ihr, mit welcher Architektur man am besten das Java Programm mit einer Weboberfläche steuern kann? Also es soll eine Client-Server Architektur sein. Man soll einfach als Client via Browser mit dem Server (mit dem Java Programm) kommunizieren können. Kann man das mit Jetty irgendwie gut machen? Oder gibt es andere Möglichkeiten?

PS.: Es wäre z.B. toll, wenn der Jetty Server selbst direkt die PHP Dateien ausführen könnte als Server und der Browser sich mit dem Jetty Server direkt verbindet.
 
Nur mal eine Frage: ist jetty ein HTTP Server? Wenn nein, wirst du immer einen brauchen. Du kannst natürlich einen schreiben in deinem Javaprogramm, dann ist dein Programm eben auch ein HTTP Server.
Aber das ist garantiert keine "gute Architektur"

PS: nach etwas googlen: Jetty
"Jetty provides a Web server and javax.servlet container, plus support for SPDY, WebSocket, OSGi, JMX, JNDI, JAAS "
Also kannst du doch alles via jetty machen und brauchst kein apache.
 
Du verwendest eben Java und PHP gleichzeitig. muss das zwingend so sein? Wenn PHP nur für die Weboberfläche gedacht ist und du mit dieser gerade erst anfängst, dann schreib die Oberfläche (also das Backend) eben stattdessen mit Java. Dann reicht dir auch der Jetty, der sehr oft als embedded Webserver eingesetzt wird und für dein Vorhaben eigentlich sehr gut passt.

edit: du kannst mit etwas basteln natürlich auch Jetty PHP ausliefern lassen, aber dann ist da immer noch die Abhängigeit zur PHP-Runtime.
 
Zuletzt bearbeitet:
Wie kommst du denn darauf, dass es schlecht sei, dass du Apache und einen Java-Appserver hast? Ist bei größeren Plattformen ganz normal. Bei uns z.B. geht ein Request durch 3-4 Reverse-Proxys, bevor er auf Anwendungen trifft.

Wenn du die Resourcen sparen willst oder eben die Komplexität verringern willst (wobei ein Apache immer nett ist schon wegen rewrites), dann pack die ganze Anwendung in Spring Boot und portiere deine Weboberfläche von PHP nach Spring MVC mit JSP oder wenn es eine umfangreichere Oberfläche ist, meinetwegen Thymeleaf.

edit: @crvn075: ah richtig, an die Möglichkeit habe ich gar nicht gedacht. Zu hoher Tellerrand. :)
 
Zuletzt bearbeitet:
Tumbleweed schrieb:
Wie kommst du denn darauf, dass es schlecht sei, dass du Apache und einen Java-Appserver hast? Ist bei größeren Plattformen ganz normal. Bei uns z.B. geht ein Request durch 3-4 Reverse-Proxys, bevor er auf Anwendungen trifft.

Völlig richtig, aber sein Projekt klingt mir nach einem Desktop-Programm mit Web-Oberfläche a la atom.io (bitte korrigieren, sollte dies nicht so sein).
 
Danke für eure Antworten :)

Also zur Zeit läuft alles lokal auf einem Computer aber in Zukunft sollte man den Server mit dem Java Programm auch auf einem externen Computer laufen lassen können und dann sollten sich auch mehrere Clients via Browser mit dem Server verbinden können. Geht das dann nur mit Jetty?

Die PHP-Files brauche ich nicht unbedingt, nein.

Edit: Falls aber die bestehende Architektur so gar nicht schlecht ist, dann belasse ich es lieber so :)
 
Zuletzt bearbeitet:
Zurück
Oben