JBoss - Tunneling

desanocra

Grünschnabel
Hallo,

ich habe eine Rich-Client Applikation die über Java-Webstart gestartet wird.
JBoss (4.2.2.GA) läuft auf einem Rechner hinter einer Firewall.
Per NAT werden die Ports auf den Rechner weitergeleitet.

8080 TCP
1098 TCP RmiPort
1099 TCP Jndi Port
4444 TCP RMIObjectPort
4445 TCP ServerBindPort
8009 TCP port on AJP Connector
8080 TCP port on HTTP Connector
8083 TCP WebService Port
8093 TCP UIL2Service Port
4457 TCP jms port
3873 TCP ejb3 deployer


Alles funktioniert wunderbar. Man kann die Applikation von ausserhalb starten.
Jetzt soll die Applikation aber auf einem Server laufen wo diese ganzen Ports nicht geöffnet werden können. Deshalb habe ich mich nach Tunneling Möglichkeiten umgeschaut, auch einiges probiert aber es hat nichts funktioniert.

Ist es möglich über einen Port alles zu tunnel ? Wie sieht es dabei mit der Performance aus ? Wonach müsste ich suchen ?

Grüße,
desa
 
Ich habe das Problem nicht lösen können. Alle Tutorials die ich gefunden habe, brachten keine Ergebnisse. Weiss denn niemand Rat ?
 
Ich habe das Problem nicht lösen können. Alle Tutorials die ich gefunden habe, brachten keine Ergebnisse. Weiss denn niemand Rat ?

Nö, ich find das ganze mehr als verwirrend ;). Ein Richclient soll auf dem Server laufen? WTF? Wenn der Client (?) plötzlich mit auf den Server soll, sollten gar keine Portprobleme mehr auftreten.

Ansonsten frag ich mich, wer auf die Idee gekommen ist für die Portanforderungen einen Richclient zu implementieren, der scheinbar auf heterogenen Plattformen laufen soll. Wozu braucht ihr denn die ganzen Ports?

Wie du siehst, mehr Fragen als Antworten... ;)

REINHAUN!
 
Ich glaube das ist falsch verstanden worden.
Der Rich-Client läuft auf dem Client-PC. Er wird nur nicht installiert, sondern durch Java-Web-Start herungergeladen und auf dem Client-PC gestartet. So ähnlich wie ein Applet.

Die Ports werden leider von JBoss vorgeschrieben. Siehe http://wiki.jboss.org/wiki/UsingJBossBehindAFirewall.

Das Problem das ich habe, wenn z.B. der Client-PC hinter einer Firewall liegt wo diese Ports nicht geöffnet sind, funktioniert das ganze nicht.

Ich habe verschiedene "overHTTP" JBoss-Wiki Einträge probiert, ohne Erfolg.
Was ich zuletzt ausprobiert habe:
http://wiki.jboss.org/wiki/JNDIOverHTTPWithUnifiedInvoker.

JNDI over HTTP funktioniert, nur beim Aufruf der EJB's will er komischerweise auf dem Client-PC localhost:3873 (ejb3 deployer) verbinden was ja nicht geht.

Irgendwas fehlt mir noch.

So will ich Stück für Stück alles über HTTP tunneln damit ich auf der client Seite keine besonderen JBoss Ports mehr brauche.

Grüße,
desa
 
Das Problem das ich habe, wenn z.B. der Client-PC hinter einer Firewall liegt wo diese Ports nicht geöffnet sind, funktioniert das ganze nicht.

Ja ach, so eine Überraschung aber auch :D. Auch das Tunneln wird dich nicht wirklich weit bringen weil das zum einen Performance kostet und zum anderen ja auch potentiell Proxies in der Leitung klemmen können, die den Client abfragen und mal eben alles was nicht IE oder Firefox heißt blockieren. Für sowas bemüht man dann im allgemeinen WebServices.

Mir ist immernoch nicht klar, wozu ihr all die Ports braucht. Wird das nen JBoss Monitor? Normalweise sollte der HTTP (8080) und einer der 10er Ports (RMI, JNDI) ausreichen für ne normale Anwendung.

Aber ganz ehrlich... sowas überlegt man sich im Allgemeinen besser vorher ;). Bzw. sucht man sich die Ports auf die man sich beschränken kann. Umgedreht (möglichst alle Ports tunneln) ist nie ne gute Idee.

Gruß
Ollie
 
Für sowas bemüht man dann im allgemeinen WebServices.

Wenn ich das jetzt richtig verstanden habe dürfte es doch fast garkein Problem sein die "Stateless Session Beans" in WebServices umzuwandlen und nicht durch JNDI/RMI sondern als WebService aufzurufen. Hier sieht es ja sehr leicht aus http://www.regdeveloper.co.uk/2007/01/23/ejb_web_services/

Da alle Zugriffe (auf ser Client Seite) auf "SSB's" über Factory Methoden erfolgen, bräuchte ich ja eigentlich nur an dieser Stelle Hand anlegen? Und alles andere würde sich nicht ändern?

Aber kann ich denn die Methoden so lassen wie sie sind. Gibt es da Einschränkungen?
 

Neue Beiträge

Zurück