Thanks Dittmer for your response. Now I would like to go little more, please let me know if my understanding is correct.
Let us consider this example.
// The appserver connects to the the JMS provider/server using the jms configuration. Then the JMS server returns a QueueConnection, back to the Java client. ??
// Here appserver acts as an interface between the JMS client and server.
QueueConnectionFactory queueConnectionFactory = (QueueConnectionFactory) context.lookup("jms/SampleQCF");
//The appserver identifies the implementation for this method, on the JMS server and makes a call??
queueConnection = queueConnectionFactory.createQueueConnection();