I am trying to understand what JMS and how it is connected to AMQP terminology. I know JMS is an API and AMQP is a protocol.
Here are my assumptions (and questions as well)
Some of the above may be dumb. :-) But trying to wrap my head around it.
Your question is a bit messy and resembles a tough question in a question paper :) (As teachers always try to ask simple questions making complex :D I hope you are not a teacher :) ) Let's see all of these one by one.
As you know:
The Java Message Service (JMS) API is a Java Message Oriented Middleware (MOM) API for sending messages between two or more clients. JMS is a part of the Java Platform, Enterprise Edition, and is defined by a specification developed under the Java Community Process as JSR 914. It is a messaging standard that allows application components based on the Java Enterprise Edition (Java EE) to create, send, receive, and read messages. It allows the communication between different components of a distributed application to be loosely coupled, reliable, and asynchronous.
Now (from Wikipedia):
The Advanced Message Queuing Protocol (AMQP) is an open standard application layer protocol for message-oriented middleware. The defining features of AMQP are message orientation, queuing, routing (including point-to-point and publish-and-subscribe), reliability and security.
And the most important thing (again from Wikipedia):
Unlike JMS, which merely defines an API, AMQP is a wire-level protocol. A wire-level protocol is a description of the format of the data that is sent across the network as a stream of octets. Consequently any tool that can create and interpret messages that conform to this data format can interoperate with any other compliant tool irrespective of implementation language
Some important things you should know:
Good Luck :)
I am not sure but I believe that AMQP also uses HTTP/S protocol but AMQP is enhacement is messaging protocol over HTTP
: No. That is not correct.JMS uses simple HTTP but for RabbitMQ/ActiveMq, they uses enhanced protocol.
: No. That is not correct. JMS is only a API spec. It doesnt use any protocol. A JMS provider (like ActiveMQ) could be using any underlying protocol to realize the JMS API. For ex: Apache ActiveMQ can use any of the following protocols: AMQP, MQTT, OpenWire, REST(HTTP), RSS and Atom, Stomp, WSIF, WS Notification, XMPP.I have edited the answer.Now The controversial portion has replaced.
@brainOverflow I dont know who edited my answer and gave this improper point which was at num 3.. because I have asked the thing which you are saying at point 2.Always read carefully before down voting or making suggestions
i already added stuff from that PDF so you can go to some other links too