Java auf Client-Server-Architektur mit Fortran

Snape

Erfahrenes Mitglied
Moin,
diesmal ich, und natürlich auch gleich mit einer Spezialanforderung. :)
Ist es möglich, wenn ja, wie, auf einem beliebigen Server ein Fortran-Programm ausführen zu lassen, welches mit mehreren Java-GUIs auf verschiedenen OS kommuniziert?
Hintergrundinformationen:
- Es ist in Fortran möglich, jegliche Kommandozeilenaufrufe ausführen zu lassen. Über irgendwelche Sockets weiß ich (noch) nichts.
- Der Ablauf auf einer Uraltkiste ist derzeit:
1. User meldet sich an seinem Client an
2. User startet von seinem Client aus ein (Fortran-)Programm auf dem Server.
3. Das Server-Programm läuft und ruft bei Notwendigkeit eine Eingabemaske beim User auf.
4. Der User tätigt seine Eingaben und beendet sie mit ENTER
5. Das Server-Programm liest die Eingabedaten aus, berechnet und zeigt Ergebnisse auf dem Bildschirm des Users an.

Hat jemand eine Idee, wie man das mit Java realisieren kann - einzige Voraussetzung: das Fortran-Serverprogramm muss erhalten bleiben, weil dort viele Berechnungen enthalten sind, deren Portierung auf Java bei weitem zu aufwändig (=teuer) ist.
 
Hallo!

Was du im Prinzip brauchst ist eine Art Wrapper um die Legacy Fortran-Anwendung. Auf diesen Wrapper könntest du dann verschiedene Kommunikationsdienste wie etwa RMI / JMS / Webservices / CORBA oder Plain Sockets aufsetzen welche dann von den Clients entsprechende Kommandos empfangen und diese über den Wrapper an die Legacy Anwendung weitergeben. Diese führt dann die Geschäftslogik aus und übergibt das Ergebnis an den Wrapper. Der Wrapper kümmert sich nun wiederum darum das Ergebnis an den passenden Client zu übermitteln.

Ist es möglich, wenn ja, wie, auf einem beliebigen Server ein Fortran-Programm ausführen zu lassen, welches mit mehreren Java-GUIs auf verschiedenen OS kommuniziert?
ja.

Gruß Tom
 
Hallo Tom,
ich nehme an, mit Wrapper meinst Du eine Java-Anwendung?
Also in der Form, dass auf dem Client eine Java-Anwendung läuft, ebenso auf dem Server, beide miteinander kommunizieren und die Java-Anwendung auf dem Server die Fortran-Anwendung aufruft?
 
OK, aber was mir immer noch nicht so recht klar ist:
snape hat gesagt.:
2. User startet von seinem Client aus ein (Fortran-)Programm auf dem Server.

Angenommen, auf dem Client benutzt der User zukünftig ein Java Programm. Wie kann er vom Client aus das Fortran-Programm auf dem Server (!) starten?
Meine Lösungsidee wäre, dass bereits vorher auf dem Server ein Javaprogramm läuft, welches dann vom Client-Javaprogramm per Socket, RMI oder was weiß ich entsprechende Aufrufkommandos mitgeteilt bekommt und das Server-Javaprogramm meinetwegen per System.getRuntime().exec("fortranprogramm.exe"); das Fortran-Programm startet.
Wieder richtig geraten oder geht nicht oder geht einfacher?
 
Hallo!

Meine Lösungsidee wäre, dass bereits vorher auf dem Server ein Javaprogramm läuft, welches dann vom Client-Javaprogramm per Socket, RMI oder was weiß ich entsprechende Aufrufkommandos mitgeteilt bekommt und das Server-Javaprogramm meinetwegen per System.getRuntime().exec("fortranprogramm.exe"); das Fortran-Programm startet.
Wieder richtig geraten oder geht nicht oder geht einfacher?
...das schrieb ich doch bereits... und ja so könntest du es machen. Wobei es wahrscheinlich nicht gerade super schnell sein wird für jede Anfrage vom Client über den Java Wrapper einen Prozess zu starten...

Gruß Tom
 
Zurück