Java Standalone Prog zu Webapplikation umwandeln

Status
Nicht offen für weitere Antworten.

rodion311

Mitglied
Hallo,

ich würde gerne wissen, wie man generell ein Java Standalone Programm umwandeln muss, damit man es per Browser und Server verwenden kann.

Ich habe ein Java Programm geschrieben (>10000 Zeilen Code), welches für den Standalonebetrieb gedacht ist. Dabei gibt es ein paar Fenster, in denen man Sachen machen kann, zB. Dateien einlesen, ein bisschen malen ... . Die Software liest die eingegebene Daten ein verarbeitet sie und stellt die Ergebnisse grafisch dar, wobei man in den Ergebnissen noch was ändern kann, indem man zB. Symbole verschiebt.

Nun soll mein Programm aber von einer Standalone Anwendung zu einer Webapplikation überführt werden und in ein php-System integriert werden. Ich will also in einer Webseite integriert meine Java-Anwendung benutzen können. Dabei wäre es prinzipiell ok, wenn für jeden Benutzer eine neue Instanz des Programmes auf dem Server ausgeführt würde.

Teilt man da das Programm in ein Applet für die Darstellung und einen Webservice für die Verarbeitung der Daten?
Also JSP alleine schreiben doch nur html, da kann man manipulation von Grafiken nicht so einfach realisieren, oder?

Es wäre echt supernett, wenn mir jemand einfach in ein paar Sätzen darlegen könnte, wie man so etwas am Besten angeht bzw. in Stichpunkten die Technologien für Gui und logik erwähnt!

Vielen Dank für die Hilfe
 

The_S

Top Contributor
Eine Standalone Applikation sollte sich wesentlich einfach in Form eines Applets umwandeln lassen, da dieses grafische Benutzeroberflächen bereits unterstützt und du somit vermutlich nur ein paar Vererbungen und Verzeichnisstrukturen ändern musst und die Applikation ansonsten großteils erhalten bleiben kann. Außerdem müsstest du das Applet vermutilch signieren (jenachdem was du machst), was zur Folge hat, dass der User bei jedem Aufruf ein Popup bekommt, ob er der Signatur vertraut. Applets werden vom Server heruntergeladen und auf dem Client ausgeführt.

Eine andere Möglichkeit wäre (wie du schon erwähnt hast) eine JSP. Auch ist richtig, dass die JSP nur fürs Anzeigen der Daten gedacht ist und nicht für die Manipulation selbiger (MVC Prinzip). Hierfür wäre dann das Servlet (eine ganz normale Java-Klasse) zuständig. Dieses verarbeitet auch alle Anfragen etc.. Eine JSP bzw. ein Servlet muss nicht signiert werden. Allerdings müsstest du deine GUI komplett neu schreiben und schauen inwieweit du die Logik in dein Servlet bringen kannst.

Dritte Möglichkeit wäre Webstart. D. h. deine Anwendung wird so wie sie ist einfach übers Internet gestartet.
 

Yzebär

Bekanntes Mitglied
Hobbit_Im_Blutrausch hat gesagt.:
Auch ist richtig, dass die JSP nur fürs Anzeigen der Daten gedacht ist und nicht für die Manipulation selbiger (MVC Prinzip).

Das ist nicht ganz richtig. Eine JSP wird benutzt um Daten anzuzeigen oder eingeben zu können. Oder wie sollte sonst ein Online-Shop funktionieren?
 

The_S

Top Contributor
Mit "Anzeigen" meinte ich die GUI als Ganzes, also Eingabe und Ausgabe ...

Sry falls es missverständlich war :oops:
 

SnooP

Top Contributor
Trotzdem Manipuliert man in JSP nicht die Daten - sondern schickt über Eingabefelder der View entsprechende Vorschläge für eine Änderung an einen Controller, der diese überprüft und dann tatsächlich im Model Änderungen vornimmt ;) ..

eine JSP macht also wirklich nur Anzeige - selbst wenn man in einem HTML-Textfeld einen Wert ändert... davon wird automatisch das Modell nicht verändert - und wenn man das dann doch macht (z.B. SQL in einer JSP), dann ist das unheimlichst falsch ;)

In deinem Fall wäre die Integration in die Seite als Applett vermutlich am sinnigsten, wenn es lediglich darum geht eine Art Web-Look zu generieren... - persönlich halte ich von sowas aber nix ;) - sinnvollerweise sollte die GUI in die Webschicht transportiert werden und die eigentliche Anwendung auf einem Server laufen - meinetwegen könnte man dann die relevanten Funktionen (die tatsächlich die eigentlichen Berechnungen durchführen) via Webservice vom Client (der jsp-seite) starten... muss man aber auch nicht, man kann alternativ auch sehr schön entsprechende Business-Delegates verwenden, die von den Controllern hinter der JSP-Seite aufgerufen werden.

Aber wie gesagt - wenn schon fertig und du nicht mehr allzuviel Arbeit reinstecken willst - mach's halt als applett.
 

The_S

Top Contributor
SnooP hat gesagt.:
Trotzdem Manipuliert man in JSP nicht die Daten - sondern schickt über Eingabefelder der View entsprechende Vorschläge für eine Änderung an einen Controller, der diese überprüft und dann tatsächlich im Model Änderungen vornimmt ;) ..

eine JSP macht also wirklich nur Anzeige - selbst wenn man in einem HTML-Textfeld einen Wert ändert... davon wird automatisch das Modell nicht verändert - und wenn man das dann doch macht (z.B. SQL in einer JSP), dann ist das unheimlichst falsch ;)

Besser hät ichs nicht erklären können! :applaus:
 

rodion311

Mitglied
Vielen Dank für die Antworten!

Ich glaube, Applets alleine sind ein Problem, da ich evtl mehr als 64 MB Hauptspeicher für die VM brauche. Als Standalone App konnte ich einfach mein jar über eine batch-Datei starten, die der VM mehr speicher gegeben hat. Es geht mir auch gar nicht darum, dass ich mich scheue, Aufwand zu betreiben, ich weiß nur nicht wie ich es angehen soll. Meine Software muss meiner Meinung nach geteilt werden in einen Server teil (Model und Controller) und in einen Client Teil (View).
Allerdings kann die View meiner Meinung nach schlecht mit JSPs gemacht werden, da ich da was mit interaktiven Grafiken mache.
Ich stelle mir das optimaler Weise so vor:
ich hab eine php Seite oder jsp, in der ein Bereich durch Java funtkioniert (wie z.B. bei map24, da hat man doch auch html, bzw jetzt ajax und da eingebaut ist ein grafischer Java-Bereich, oder versteh ich da was total falsch?).
Der java-Bereich auf der Webseite muss halt mit dem front-controller auf dem Server kommunizieren.

Kann ich also ein applet in die Seite einbetten (bzw eine WebstartApp), welches mit dem Server kommuniziert? Und was liegt dann auf dem Server? EJB, JavaBeans?

Sorry dass ich so ins Blaue fragen muss, aber ich steh halt noch am Anfang meiner Reise, was das angeht und J2EE ist so umfangreich, dass ich gerne erstmal wissen muss, in welche Richtung ich genau recherchieren muss.

Vielen Dank

Rodion
 

robertpic71

Bekanntes Mitglied
Wie schon oben gesagt: Am wenigsten Aufwand wahrscheinlich ein Applet bzw. die Webstartlösung. Wobei man da unter Umständen schlechter/gar nicht an die Serverdaten rankommt (z.B. Datenbank) und die Serverkommunikation via Webservice machen muss.

Wie du schon erkannt hast, wäre auch eine gemischt Applet/Html-Lösung ala map24 möglich.

Eine weitere Möglichkeit wäre HTML + Javascript/Ajax für den Browser zu verwenden. Ein Drag&Drop ist mit Ajax drinnen. Ich kenne deine Anwendung nicht - aber möglicherweise kommt man auch mit Ajax ans Ziel. Je nach Anforderung muss man nicht zwingend Javascript erlernen - es gibt ja auch schon einige fertige Ajax-Componenten (wie z.B. Goolge Maps, FCKEditor...) und Java-Ajax-Frameworks (z.B. ZK).

Ob das wirklich eine Option für dich ist, hängt aber stark von dem ab, was deine Anwendung tun soll.
 

rodion311

Mitglied
wie gesagt, meine ganze App als Applet umzuschreiben oder als webstart-app auszuliefern funktioniert glaube ich nicht, wegen dem Speicherbedarf von >64 MB

ich glaube dann muss ich irgendsoetwas wie folgt machen:

applet+ rmi+ serverkram?
webstart + rmi+ serverkram? (wenn das geht)

wie sieht denn dann die Serverapplikation aus?

meine grapfiksachen sind flussdiagramme, die man verändern kann, die sachen habe ich mit jgraph gemacht, was ich gerne weiter verwenden würde.

beste Grüße
 

SnooP

Top Contributor
als webstart-app ... würde ich schon sagen wegen speicher, da kann man doch auch ganz gut konfigurieren, oder?... - aber wenn du interaktive grafiken generierst... dann würde ich doch eher in richtung applet - sprich hybride lösung gehen...
RMI kann man dann natürlich verwenden... evtl. wären webservices aber sogar schöner an der Stelle... - die Serverapplikation - naja ;) ... das ist halt dann das Backend, ich weiß ja nicht, wie das bei dir aussieht, was da gemacht werden muss etc. - wie doll die Berechnungen tatsächlich sind - ober ob das ganze primär GUI ist, veränderbare Flussdiagramme z.B. ist ja GUI-pur was man natürlich auch mit AJAX und Co. schwer nachbauen könnte... - also geht sicher alles, aber ich bezweifel mal ganz stark, dass das so ne einfache Geschichte werden könnte - zumal du dich ja dann auch erstmal in zich sachen einarbeiten müsstest...
 

rodion311

Mitglied
naja mein prog ist schon etwas mehr als gui, also da gibt es schon ein wenig zu tun für den Server, bis die diagramme in der gui auftauchen.

Das es nicht trivial werden würde, hatte ich schon gedacht. Mir ist auch klar, dass das sehr zeitaufwändig wird, gerade weil ich mich extremst in das ganze J2EE Universum einarbeiten muss. Deshalb hab ich hier auch so ins Blaue gefragt, damit ich Tips bekommen kann, auf was ich mich bei der Einarbeitung stürzen muss.

Also was ich bisher gelesen habe, was glaub ich möglich wäre:

applet + sockets + serverApp
appplet + rmi + serverApp
applet + rpc+ serverApp
applet + soap + serverApp
applet + xml(jax-ws) + web services
applet+ jakarta httpClient+ irgendwas

was ist denn da zu empfehlen?
ich würde ja fast denken, dass variante 1 und 2 am ehesten sinn machen, damit es für mich nicht der overkill ist.

Und ach ja, es geht um keine anwendung, bei der 1000 leute gleichzeitig arbeiten können müssen (ca 30 gleichzeitig). Webservices können ja von allen clients in allen Sprachen angesprochen werden, das brauch ich auch nicht unbedingt, ich will nur, dass meine java applets oder apps mit dem Server kommunizieren.

Vielen Dank für die unermüdlichen Antworten

rod
 
Status
Nicht offen für weitere Antworten.
Ähnliche Java Themen
  Titel Forum Antworten Datum
M Gibt es eigentlich einen Standalone-Java-ICQ-clone Allgemeine Java-Themen 19
OnDemand Java Deployment Vaadin Allgemeine Java-Themen 3
D Hat Java eine Library um JavaScript auszuwerten? Allgemeine Java-Themen 2
Zrebna Wieso sind eigentlich JUnit-Tests in src/test/java platziert - nur Konvention? Allgemeine Java-Themen 7
N LlaMA, KI, java-llama.cpp Allgemeine Java-Themen 39
V Java-Codierungsherausforderung: Navigieren durch die Macken der Datumsmanipulation Allgemeine Java-Themen 2
E Output Fehler (Java-Programm Kuchen) Allgemeine Java-Themen 11
M java: unexpected type Allgemeine Java-Themen 2
harrytut Java Input/Output Tests Junit Allgemeine Java-Themen 3
B Java Discord bot auf ein Root Server? Allgemeine Java-Themen 1
BetziTheRealOne Java PKIX path building failed as non Admin Allgemeine Java-Themen 15
D Linux, Java-Version wird nicht erkannt bzw. welche Einstellung fehlt noch? Allgemeine Java-Themen 19
KonradN Java 21 Release Allgemeine Java-Themen 5
V Umgang mit fehlenden Daten in einer Java-Datenanalyseanwendung Allgemeine Java-Themen 5
P Fehler: Hauptklasse Main konnte nicht gefunden oder geladen werden Ursache: java.lang.ClassNotFoundException: Main Allgemeine Java-Themen 24
K Java Anwendung machen Anleitung Allgemeine Java-Themen 5
G java.io.listFiles() Allgemeine Java-Themen 3
8u3631984 Frage zu Java Streams min / max Allgemeine Java-Themen 17
S Java Programm lässt sich vom USB-Stick starten, aber nicht von HDD Allgemeine Java-Themen 16
K Java-Projekt Allgemeine Java-Themen 11
K Java-Projekt Allgemeine Java-Themen 0
ruutaiokwu Welcher Browser unterstützt heutzutage noch Java Applets? Allgemeine Java-Themen 5
Jose05 Java-Klasse im extra cmd-Fenster ausführen Allgemeine Java-Themen 3
rode45e Java Threads Allgemeine Java-Themen 4
G java.io.listFiles() Allgemeine Java-Themen 2
N Java Dynamic Proxy Allgemeine Java-Themen 3
N Leichte Java Gegner Ki Allgemeine Java-Themen 10
A Java modul Problem Allgemeine Java-Themen 4
Thomasneuling Java Jar datei erstellen, von Projekt, dass auch Javafx Dateien, FXML Dateien und CSS Dateien, sowie Bilder enthält? Allgemeine Java-Themen 14
V Funktionale Schnittstelle in Java Allgemeine Java-Themen 3
OnDemand Java String in Hashmap als Key NULL Allgemeine Java-Themen 27
urmelausdemeis Exception in thread "main" java.lang.Error: Unresolved compilation problem: Allgemeine Java-Themen 7
berserkerdq2 Wenn ich bei Intelij javafx mit maven importieren will, muss ich das in die pom.xml reintun, aber warum noch in module-info.java? Allgemeine Java-Themen 3
KonradN Java 20 am 21. März Allgemeine Java-Themen 1
O Java Website Stock Bot Allgemeine Java-Themen 3
J Front-/Backend in Java Allgemeine Java-Themen 14
doopexxx JAVA Google Webcrawler Allgemeine Java-Themen 1
J JavaScript innerhalb eines Java Projekts ausführen Allgemeine Java-Themen 2
A Java Programm erstellen hilfe Allgemeine Java-Themen 10
G java.lang.NoClassDefFoundError: org/aspectj/lang/Signature Allgemeine Java-Themen 2
lalex1491 Java Aktienkurse nachfragen Allgemeine Java-Themen 4
J Class to link Java Allgemeine Java-Themen 4
V Wie funktioniert das Schlüsselwort "final" von Java? Allgemeine Java-Themen 19
mrStudent Inferenz JAVA Allgemeine Java-Themen 6
U URI Rechner (Java Script) Allgemeine Java-Themen 7
TheSkyRider Java Geburtsdatum Textfeld Allgemeine Java-Themen 7
mihe7 Java 19 JavaDocs: Browserintegration Allgemeine Java-Themen 0
Encera Gleichzeitiges Ausführen und verbinden von 2 Java-Klassen über die Eingabeaufforderung und Eclipse Allgemeine Java-Themen 21
H Java Rechner Programmierung der Mathematik Allgemeine Java-Themen 33
Lennox Schinkel Java Kara Auf einen Java Host laufen lassen Allgemeine Java-Themen 17
C Fußnoten von DocX mit Java Allgemeine Java-Themen 2
C Fußnoten in DocX mit Java Allgemeine Java-Themen 1
M Aussagenlogik in Java Programmieren Allgemeine Java-Themen 22
B Per Java Word Dokument schreiben? Allgemeine Java-Themen 8
krgewb Java-Bibliothek für ONVIF Allgemeine Java-Themen 1
KonradN Oracle übergibt (Java Teile der) GraalVM Community Edition an OpenJDK Community Allgemeine Java-Themen 2
Momo16 Brauche Hilfe - Java Projekt kann nicht erstellt werden Allgemeine Java-Themen 12
B Java mit command line und jars benutzen? Allgemeine Java-Themen 18
M Java Überprüfen ob .exe-Datei bereits ausgeführt wird Allgemeine Java-Themen 2
B HTTP Allgemeine Fragen über Suchmaschine nutzen mit Java Allgemeine Java-Themen 20
Mick P. F. Wie kriege ich die Fehlermeldung "java: symbol lookup error: ..." weg? Allgemeine Java-Themen 11
K Nachhilfe Java Allgemeine Java-Themen 11
KonradN Java 19 Allgemeine Java-Themen 11
F IDEA IntelliJ Java Songliste erstellen Allgemeine Java-Themen 6
TheSepp Java bestimmtes Array auf den Wert 0 setzen Allgemeine Java-Themen 32
B Java Reflection Probleme beim wehcselseitigen Referenzieren zweier Klassen/Objekte Allgemeine Java-Themen 14
Sachinbhatt Sind alle Methoden in Java implizit virtuell Allgemeine Java-Themen 2
E Java und integrierte Grafikkarten Allgemeine Java-Themen 18
Sachinbhatt Wie wird die Typumwandlung bei Mehrfachvererbung in Java implementiert? Allgemeine Java-Themen 3
Peterw73 Hilfe bei Java gesucht Allgemeine Java-Themen 3
A Java unter Win 10 Allgemeine Java-Themen 1
B Woher kommen die Bildschirmkoordinaten beim java Robot? Allgemeine Java-Themen 14
P9cman java.Lang Klassen fehlen in JRE System Library Allgemeine Java-Themen 1
T Java Robot Class - Bot Allgemeine Java-Themen 3
E Wie Java Heap Space vergrößern? Allgemeine Java-Themen 3
B Java Programm auf virutellem Desktop laufen lassen? Allgemeine Java-Themen 1
D VBA Code mit Java ausführen möglich? Allgemeine Java-Themen 10
berserkerdq2 Threads, wie genau läuft das in Java ab? (Ich kann Threads erstellen und nutzen, nur das Verständnis) Allgemeine Java-Themen 6
izoards Java Home Pfad unabhängig von der Version Allgemeine Java-Themen 7
N JAVA-Code mit Grafikfenster zeichnet in Windows, aber nicht Mac. Allgemeine Java-Themen 4
L Java überprüfen lassen, ob sich ein gegebener Pfad / das Programm an sich auf einer CD oder Festplatte befindet Allgemeine Java-Themen 14
KonradN CVE-2022-21449: Fehler in Java bei Signaturprüfung Allgemeine Java-Themen 20
berserkerdq2 Java sql Allgemeine Java-Themen 15
JordenJost Unverständlicher Java code? Allgemeine Java-Themen 21
LimDul XSD To Java - Überschreiben von Assoziationen Allgemeine Java-Themen 1
Aartiyadav Comparisons and Swapa in Bubble-sort Java Allgemeine Java-Themen 6
KonradN Java 18 Allgemeine Java-Themen 8
N Statistische Auswertung von Logfiles (Einlesen, auswerten und grafische Aufbereitung von logfiles) mit Java Allgemeine Java-Themen 9
ME2002 Fragen aus einer Java Klausur Allgemeine Java-Themen 67
Z Mit Java 8+ Streams Zeilen nummern zu Zeilen hinzufügen Allgemeine Java-Themen 17
M Verständnisfrage java.util.TimerTask Allgemeine Java-Themen 2
V Hilfe mit Java Code Allgemeine Java-Themen 4
S Processing Java Code verstehen Allgemeine Java-Themen 4
O Newton Algorithmus Java Allgemeine Java-Themen 1
P Java Quellen finden Allgemeine Java-Themen 3
M Java Analyse/ SWOT-Analyse Allgemeine Java-Themen 13
J c Programm läuft nicht in compilierter Version des Java Projektes Allgemeine Java-Themen 7
Atten007 Java-Klasse auf macOS entpacken? Allgemeine Java-Themen 2
E java mithilfe url .jar datei öffnen Allgemeine Java-Themen 9
M Warum hat Java dieses und jenes nicht... Allgemeine Java-Themen 8

Ähnliche Java Themen

Neue Themen


Oben