So I've been tasked with using JBoss ESB on my project. One of the questions I was asked is if you can open a port on the ESB so that a client (a COTS package that can be configured to open socket connection to external server but not to be one itself) can create a socket connection to the ESB, and if a connection appears we start routing data to it from another software component.
I know how to have JBoss ESB listen to a port and do some action when it sees data on that port, but I've never made an ESB expose a port itself and have clients connect to it.
I've read about JBR, and how you can set up a gateway connection in JBoss ESB. I haven't had the time to actually play with it, but does a jbr-provider cause the ESB to open a connection port itself, or is it just like any other provider, where the esb connects to the provider but isn't the provider itself?
Hopefully this makes sense. The only other way I can think of implementing this is having a service start up when the ESB starts, and that service opens a port and the COTS package connects to that. Then I'd just configure the ESB to use that service as just another endpoint, which would receive the appropriate messages and forward them to the exposed port (which the COTS package would then read in and do what it needs).
It might make sense to just have our in-house software allow for socket connections itself and bypass the ESB, but it is already publishing the needed data to other endpoints via JMS and we wanted to leverage the ESB as much as possible.