I think it is worthwhile providing some information about JMX, since it is very heavily used by all of our Java based entities in Brooklyn. JMX uses the RMI protocol to communicate, this is called JRMP and is implemented by the javax.management.remote.rmi.RMIConnector
in the JVM.
There are a couple of problems with the RMI protocol as used by default in JMX.
- It sends the remote address as data inside its protocol messages, causing problems for machines behind NAT or using split DNS.
- The random port allocation for RMI means incorrect firewall configurations are generated.