Thank you for your time and feedback. Temporary destinations are a better communication mechanism in a distributed architecture to create 'synchronous' request/reply, as I mentioned in the introduction.
Client receives the response synchronously-make a request and wait for the reply. The way you accomplish it is by passing in the name of the temporary destination as a header field (JMSReplyTo), as part of a message. The value of this header field is later used by the receiving party to send the reply as explained in the ‘Temporary Destinations: An Overview’ section.
Please let me know if I answered your questions.