RMI Guide

Werbung
RMI Guide
1 Checkliste
1.1 Infrastruktur:
Um einen gewissen Überblick bei der Programmierung und bei der Installation zu
behalten sollte die RMI Applikation zumindest in 3 Packages unterteilt werden:
• INTERFACES: Dieses Paket sollte alle Interfaces beinhalten, auch jene, die
durch die Server Klasse implementiert werden. Dabei verwenden zumindest
eine Server und eine Client Klasse später dieses Interface.
• SERVER: In diesem Paket befindet sich die RMI-Server Klasse, welche das
Interface implementiert und das RMI-Objekt an der RMI-Registry anmeldet.
• CLIENT: In diesem Paket befindet sich die Klasse, die letztendlich bei der RMIRegistry anfragt und sich das Interface zu dem RMI-Objekt holt.
Abbildung 1-1: HelloWorld Package Struktur
Hat man sich seine Struktur angelegt kann man nun leicht die entsprechenden
Batchdateien erstellen:
1.2 Vorbereitung
•
compile-Script: Common Package zuerst, da hier das Hello Interface
enthalten ist, welches vom Client und Server Package verwendet wird.
javac Common\*java
javac ClientServer\*java
javac Client\*java
javac ClientApplet\*java
•
Stub und Skeleton Script:
rmic Server.HelloServer
•
JAR-Script: Damit kann nun eine jar-Datei erzeugt werden, die den
Serverteil, also alle Classfiles und Stubs beinhaltet. Um dieses jar zu
verwenden muss es allerdings erst per http zugängig gemacht werden.
jar -cvf server.jar Server\*.class
1.3 Ausführung
Das Beispiel beinhaltet auch Skripten für UNIX (*.sh) und Windows (*.bat)
zum Starten von rmiregistry, Server und Client. Die Skripten müssen aber
vorher angepaßt werden (Kennung und Portnummer) !!!
1. RMI-Registry starten:
<port> ist dabei durch eine Zahl zwischen 1024 und 65535 zu ersetzen.
(Durch diese Angabe eines eigenen Ports soll sichergestellt werden, dass jeder
Benutzer seine private RMI-Registry nutzt)
ACHTUNG: rmiregistry NICHT im Verzeichnis Server starten, sondern aus dem
Root-Verzeichnis heraus!!!
rmiregistry <port>
2. Serverstart:
a. OHNE jar: Der Classpath wird automatisch mit “.”, also dem aktuellen
Verzeichnis ergänzt.
<host> z.B. hanibal.ifs.univie.ac.at
<port> z.B. 1234
java -Djava.security.policy=policy Server.HelloServer <host>:<port>
b. MIT jar: Dem Classpath wird nun der Inhalt des jar-Files hinzugefügt.
<host> z.B. hanibal.ifs.univie.ac.at
<port> z.B. 1234
java -Djava.rmi.server.codebase=http://hanibal.ifs.univie.ac.at/~a<matrnr>/server.jar
-Djava.security.policy=policy Server.HelloServer <host>:<port>
3. Clientstart:
<port> z.B. 1234
java -Djava.security.policy=policy Client.HelloClient <host>:<port>
Herunterladen