Portbeschränkungen für RMI?

kobi67

Grünschnabel
Hallo,

ich habe einen RMI-Server der Standardmaessig auf Port 1099 lauscht. Meine Clients sind alles Applets, welche auch problemlos ihre Verbindung dorhin aufbauen. Sowohl Server also auch Clients laufen auf Windows-Rechnern.
Fuer Callback-Nachrichten an alle oder bestimmt Clients werden von RMI unterschiedliche Socket-Verbindungen auf Ports (IMHO) > 1024 aufgebaut.

Gibt es eine Möglichkeit die RMI-Anwendung auf bestimmte Port-Bereiche zu beschränken bzw. benutzt RMI nur einen bestimmten Bereich, da ich hierfuer bei einer Firewall nur bestimmte Ports oeffnen moechte. Leider habe ich hinsichtlich meines Problemes keine Infos ueber die RMI-Funktionalitaet gefunden :(

Bin fuer jede Info dankbar.
 
Hallo!

Eine möglichkeit wäre es RMI Aufrufe über HTTP zu tunneln
schau mal hier:
http://java.sun.com/developer/onlineTraining/rmi/RMI.html#FirewallIssues
http://jguru.com/faq/view.jsp?EID=525738

http://ca.geocities.com/rmi_doves/
https://lists.xcf.berkeley.edu/lists/advanced-java/2001-May/016564.html

Wie man sieht ist die Problematik "RMI und Firewall" nicht neu ;-).
Na ja, "normalerweise" sollte man "extenere" Komponenten eher mit Webservices bzw. anderen HTTP basierten RPC Technologien anbinden. Man muss dann nur aufpassen, dass die Systemperformance nicht total in den Keller geht...

Muss es unbedingt RMI sein?
Eine einfache Alternative dazu bietet das Springframework mit seinem HTTP Remoting:
http://www.springframework.org/
damit sind auch die Firewallprobleme Geschichte...

Gruß Tom
 
Hallo,

vielen Dank fuer die Vorschlaege.

Mit CGI-Skript ueber HTTP-Tunneln kostet warscheinlich zu viel Performance?!
Meine Applet sind Visualisierungsobjekte, welche sich von einem Server - der wiederrum ueber JNI an eine C-Engine angeschlossen ist und diese wieder an einen OPC-Server mit SPS-Anbindung - den aktuellen Anlagenstatus einer Foerderanlage geben lassen. Bisher wurde die Kommunikation mit JSObject und JavaScript und anschl. mit DCOM realisiert. RMI wegen eventl. Plattformunabhaengigkeit des Client und noch ausreichender Performance, außerdem soll der "DCOM-Schlunz" weg :).

Springframework waere komplett neu fuer mich, von daher weiss ich nicht ob es eine Alternative sein koennte.

RMISocketFactory scheint mir im Augenblick die schnellste Lösung zu sein!? Bei Erfolg werde ich den entsprechenden Code-Abschnitt noch einmal posten.

Gruß kobi
 
Zurück