# RMI: Server vom Client aus in eigener JVM starten?



## Novanic (27. Okt 2007)

Hi Leute,

ich würde gerne den RMI-Server + Registry von meinem Client aus starten. Das funktioniert auch soweit, allerdings läuft der Server in der gleichen JVM wie der Client, da sich Client und Server zum Testen und Entwickeln auf dem gleichen Rechner befinden.

Momentan ist es so aufgebaut:

- client-Modul (benutzt das connection-Modul)
- connection-Modul (benutzt das server-Modul)
- server-Modul

Im Connection-Modul befindet sich eine Klasse die, eine Instanz des RMI-Servers erzeugt, die Registry startet und den Server in der Registry registriert. Diese Methode wird vom Client angestoßen. Da sich aber alle Module in meiner Entwicklungsumgebung befinden (wie gesagt zum Test und zum Entwickeln) möchte ich den Server in einer eigenen JVM starten.
Hat jemand eine Idee wie ich das hinbekomme?

Danke schonmal im Voraus! 

Gruß Nova


----------



## Wildcard (27. Okt 2007)

Wie hast du dir denn vorgestellt das es funktionieren soll wenn es sich nicht um den selben Rechner handelt? 
Wenn du dich mit einem entfernten System verbinden willst, muss auch immer ein Dienst vorhanden sein, der deine Verbindung akzeptiert. Sprich: Ein Server.
Wie soll also der Client den Server starten ohne einen zweiten Server der den ersten startet?  :bahnhof:


----------



## Novanic (27. Okt 2007)

Hm, versteh ich jetzt nicht. Wieso brauch ich zwei Server? Welcher Dienst muss denn vorhanden sein?


----------



## cypher (28. Okt 2007)

Nun. Das Problem ist ja das Du auf dem entfernten Rechner, auf dem Du Deinen Server starten willst, ein Server laufen muß der 

a) nach Deinen Clientconnections lauscht und
b) den von Dir gewünschten Server startet wenn er vom Client dazu aufgefordert wird

Das geht ja nicht aus dem Nichts.


----------



## Guest (29. Okt 2007)

Ja, das stimmt natürlich.
Aber wäre es nicht möglich die Librarys auf ein öffentliches Laufwerk zu legen und der Server-JVM mitzuteilen, dass es etwas ausführen soll? Oder etwas vergleichbares?

Gruß Nova


----------



## Wildcard (29. Okt 2007)

Weißt du denn was die Server JVM ist?
Das ist eine VM mit anderen Einstellungen bezüglich des JIT Compilers.
Kurze Erklärung der Begrifflichkeiten:
Host: Ein Rechner auf dem Server laufen
Server: Dienstprogramme die Verbindungen von Clients akzeptieren
Client: Programme die sich zu einem Server verbinden

Wie soll also ein Client einen Server starten, ohne das auf dem Host bereits ein Server läuft, der die Verbindung des Clients akzeptiert?


----------

