An application or process that produces and/or receives messages.
A JMS client that creates and sends messages.
A JMS client that receives messages.
An object that contains the data being transferred between JMS clients.
A staging area that contains messages that have been sent and are waiting to be read. Note that, contrary to what the name queue suggests, messages don't have to be delivered in the order sent. If the message driven bean pool contains more than one instance then messages can be processed concurrently and thus it is possible that a later message is processed sooner than an earlier one. A JMS queue guarantees only that each message is processed only once.