title: JMS client behind a firewall
body: <p>I have following scenario:
  Messages containing commands have to be send to a consumer / client which is connected to the internet using consumer Internet connections. So this means that the system running the client is not directly accessible from the Internet. The command server is located on an Internet facing server.</p>
  
  <p>As a reliable connection is needed I thought about using JMS queues. The command server would be hosting the messaging component and will offer the necessary queues. Here's my question. Does the client need to be accessible from the Internet, e.g. will it open ports which are used to push messages from the server to the client? </p>
  
  <p>If that's the case, are there any other models which avoid this behavior? E.g. I can think of opening a long lasting HTTP connection from the client to the server which is used in case of messages being pushed (COMET). However, I would really like to keep the abstraction JMS provides.</p>
  
  <p>As a plan B could you recommend any good alternatives?</p>