ETH Zurich :
Computer Science :
Pervasive Computing :
Distributed Systems :
Education :
DS WS 2006/2007
Verteilte Systeme
Hinweise zur Linux-Installation im Studentenpool
IP-PORTS: Generell ist auf Rechnern des Departements nur SSH nach aussen freigeschalten. Als Ausnahme sind die Ports oberhalb von 50000 für andere Rechner im gleichen Gebäude zugänglich (also IFW -> IFW, CAB -> CAB). Auf dem gleichen Rechner gibt es keinerlei Beschränkungen.
Sowohl die RMI- als auch die CORBA-Übung können deshalb auf einem einzigen Rechner gemacht und vorgeführt werden.
Hinweise zur Benutzung von RMI und CORBA auf einem selbstdefinierten Port:
Hinweise zum RMI-Teil der Übung 2
- Ein minimales RMI-Beispiel ähnlich dem in der Übung besprochenen findet sich hier: rmi-example.zip.
- Seit der Java Version 1.5 ist es nicht mehr nötig, Stubs mittels rmic zu erzeugen, da diese zur Laufzeit per Reflection aus den Interfaces generiert werden. Aus diesem Grund ist es für die Übung auch nicht notwendig, dass Java-Code per RMI nachgeladen wird, da alle Operation auf dem Server stattfinden.
- Falls Sie die nachfolgende Fehlermeldung erhalten, kann der Client resp. der Server die rmiregistry nicht erreichen, z.B. weil diese nicht gestartet wurde, weil die URL nicht korrekt angeben wurde oder eine Firewall den Zugriff verhindert. Versichern Sie sich in diesen Fällen, dass die rmiregistry läuft und probieren Sie das ganze auf nur einem Rechner aus.
java.rmi.ConnectException: Connection refused to host: 127.0.0.1; nested exception is:
java.net.ConnectException: Connection refused
at sun.rmi.transport.tcp.TCPEndpoint.newSocket(TCPEndpoint.java:574)
at sun.rmi.transport.tcp.TCPChannel.createConnection(TCPChannel.java:185)
at sun.rmi.transport.tcp.TCPChannel.newConnection(TCPChannel.java:171)
at sun.rmi.server.UnicastRef.newCall(UnicastRef.java:306)
at sun.rmi.registry.RegistryImpl_Stub.rebind(Unknown Source)
at java.rmi.Naming.rebind(Naming.java:160)
...
- Falls Sie die nachfolgende Fehlermeldung erhalten, so kann es sein, dass
rmiregistry die entsprechende Klasse auf Grund eines falsch gesetzten CLASSPATHs nicht findet. Am einfachsten starten sie rmiregistry direkt im Verzeichnis mit den Class-Files und setzen dabei den CLASSPATH mit dem Kommando: rmiregistry -Jcp -J.
Server exception: java.rmi.ServerException: RemoteException occurred in server thread; nested exception is:
java.rmi.UnmarshalException: error unmarshalling arguments; nested exception is:
java.lang.ClassNotFoundException: Banking.Bank
...
- Falls normale Java-Objekte und deren Class-Files per RMI übertragen werden sollen ist jedoch folgendes zu beachten:
Dynamisches Nachladen von Java-Klassen
Beim dynamischen Nachladen von Java-Klassen zeigt sich die Mächtigkeit von RMI. Damit dies funktioniert müssen jedoch ein paar Dinge beachtet werden und zum Teil anders als in der RMI-Einführung gemacht werden. Speziell muss ein Security Manager gesetzt werden und diesem das dynamische Laden von Bytecode erlaubt werden.
Hinweise zum MICO-Teil der Übung 2
Warnung beim Kompilieren der generierten Java POAs
Der vom aktuellen idl-to-java-Compiler von Sun erzeugte Source-Code
für die POAs nutzt die neuen generischen Collection-Klassen nicht, was den
Java-Compiler dazu veranlasst, die folgende Warnnung auszugeben:
Note: Some input files use unchecked or unsafe operations.
Note: Recompile with -Xlint:unchecked for details.
Daran lässt sich nichts ändern - der erzeugte Code ist trotzdem korrekt. :)
Installation
MICO ist auf den Linux-Rechner im IFW installiert, wie
auch in der Übung besprochen.
Für Leute, die MICO Zuhause auf ihrem Heimrechner/Laptop benutzen wollen
hier unsere Resultat, geordnet nach Betriebssystem:
Linux
Unter einer aktuellen Linux-Distribution lässt sich MICO ohne Mühen mit der üblichen Sequenz nach /usr/local/ installieren:
configure
make
sudo make install
FreeBSD
Es gibt ein MICO-Paket in der FreeBSD Ports-Collection.
Mac OS X
Für Mac OS X haben wir die Fink-Pakete
mico & mico-dev bereitgestellt, welche in Fink CVS Unstable verfügbar sind. Wie man Fink installiert
bzw. zum Fink CVS Unstable Repository kommt ist hier erläutert:
Ausserdem ist MICO dank eines Teilnehmers der Vorlesung jetzt auch im macports, der Mac Version der BSD Port Collection, vefügbar. Installation dort durch
port install mico
Windows
Unter Windows stehen mehrere Varianten zur Verfügung.
|