For definitions of each just google them but for relationships ...
JMS is an API that specifies how to send messages between one or more clients. MQ is an implementation of messages which could be accessed via JMS and JMS could be implemented on top of MQ. MDB message driven beans , are Java enterprise objects that are created in response to Java messages.
"Eagles may soar but weasels don't get sucked into jet engines" SCJP 1.6, SCWCD 1.4, SCJD 1.5,SCBCD 5
posted 8 years ago
All can be used for both "Asynchronous and Synchronous" Communication. Mainly used at the integration layer.