# Java-Programm auf einem Server laufen lassen



## Alex_winf01 (29. Okt 2007)

Hallo liebe Forengemeinde:

Ich habe folgende Frage:

Das Programm soll auf einem Server liegen und die Anwender können von verschiedenen Clients auf das Programm zugreifen. Vergleichbar: Microsoft Office ist auf dem Server installiert und die Anwender in einem Unternehmen greifen auf diese Installation zurück. Wie kann ich das in Java realisieren?

Hintergrund: Es sollen mehrere Personen gleichzeitig von unterschiedlichen Rechnern auf das Programm zugreifen können, ohne dass das Programm auf verschiedenen Clients installiert ist. Die Datenhaltung soll mit hsqldb laufen. Wie würdet Ihr das machen? Nur die Datenbank auf dem Server installieren und die Anwendung selber von den Clients ausführen (also installieren) oder die Anwendung und Datenbank auf dem Server installieren? Der Zugriff dann so erfolgt wie Start -> Programme -> eigenes Programm?


----------



## Wildcard (29. Okt 2007)

Die Informationen sind eher dürftig.
Ein gänger Weg ist beispielsweise ein Server der über RMI mit den Clients kommuniziert.
Mit der DB sollten die Clients IMO nichts zu tun haben.


----------



## Alex_winf01 (29. Okt 2007)

Also: Das Programm soll Mehrbenutzerfähig sein, ohne dass die Anwendung selber auf mehreren Rechnern installiert werden muss. Alle Anwnder greifen auf die selbe Datenbank zu (über die Anwendung). Die Anwendung soll auf dem Server liegen und die Anwender greifen von ihrem Rechner auf die Anwendung zu (von verschiedenen Rechnern).

Vielleicht bin ich auch auf dem Holzweg und ich muss die Datenbank (hier hsqldb) auf dem Server installieren und die Anwendung selber läuft als "Client-Anwendung" auf dem Rechner. Wie kann ich sicherstellen, dass die Anwendung auf Client mit der Datenbank auf dem Server kommunizieren können?


EDIT:

Um es vielleicht noch etwas konkreter zu machen: Der Anwender hat eine Anwendung, in der er Eingaben macht (also Textfelder, Checkboxen usw. usw.). Diese Daten müssen in der Datenbank hsqldb gespeichert werden. Es greifen mehrere Anwender GLEICHZEITIG auf die Anwendung und die Datenbank zu.


----------



## Wildcard (29. Okt 2007)

Ich kann dir nichts neues dazu sagen.
Thin Clients als Webstart deployen und mit einem Server über RMI kommunizieren scheint mir sinnvoll.


----------



## Alex_winf01 (29. Okt 2007)

Wo genau hast Du Verständnisprobleme? Die Anwendung soll halt Mehrbenutzer-Fähig sein. Also nicht Standalone auf einem Rechner, sondern viele verschiedene Anwender greifen auf meine programmierte Anwendung zu (und mit der Anwendung natürlich auf die Datenbanke). Grafisch kann man es wohl so darstellen:



      ------------------------------>     Server (hier liegt die Anwendung und die Datenbank) 
      |                                                   ^                                            ^
      |                                                    |                                             |
      |                                                    |                                             |
      |                                                    |                                             |
      Client 1                                    Client 2                                 Client 3


Es soll also eine typische Client-Server-Anwendung werden.


----------



## Wildcard (29. Okt 2007)

Wer sagt das ich Verständnisprobleme habe?
Anders gefragt, was passt dir an der bisherigen Antwort nicht?


----------



## pewex (30. Okt 2007)

Hallo Alex, 
die Lösung von Wildcard mit dem RMI-Server wäre natürlich professionell, aber auch deutlich anspruchsvoll (zumindest für mich).

Ich habe es mir vor kurzem ein bißchen einfacher gemacht.
1) Datenbank auf dem Server installiert
2) Netzwerkfreigabe gemacht
3) Java-Prog in jar gepackt und in die Freigabe gelegt
4) JRE ebenfalls in einem Unterordner in die Freigabe abgelegt
5) eine batch Datei geschrieben, die meine Anwendung unter der Verwendung des abgelegten JRE startet
    (somit kann ich meine Software auch in einem Konsolfenster starten um evtl. Exceptions zu lesen)
6) damit das Konsolfenster nicht mehr sichtbar wird habe ich ein VB-Script geschrieben welches wiederrum die batch-Datei startet
7) auf jedes Desktop habe ich eine andere batch-Datei (bzw. habe diese in eine exe konventiert, damit es schöner aussieht und auch nicht jeder das Passwort auf die Freigabe lesen kann) abgelegt, die zuerst ein Netzwerklaufwerk einbindet und dann dort mein VB-Script startet

Ergebnis --> Dein Programm und die DB liegt auf dem Server ; Jeder der die Batch (bzw. exe ) auf dem Desktop hat kann die Software auch starten ; Man ist von den installierten JRE's auf den Clients unabhängig

So wie ich dich verstanden habe, müsste es dein Problem lösen.

mfg


----------



## maki (30. Okt 2007)

> ch habe es mir vor kurzem ein bißchen einfacher gemacht.
> 1) Datenbank auf dem Server installiert
> 2) Netzwerkfreigabe gemacht
> 3) Java-Prog in jar gepackt und in die Freigabe gelegt
> ...


Für mich klingt das nicht nach "einfacher"..


----------



## Wildcard (30. Okt 2007)

:shock: YMMD :lol:


----------



## tuxedo (30. Okt 2007)

Einfacher ist das nicht, nur schrecklich anders ;-)


----------

