Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What application protocol does JMS use?

I've learned a respectable amount about networking protocols in Grad School and in professional experience and sent HTTP requests programmatically using AJAX and such.

The project on which I work professionally uses JMS to communicate and I'm curious about how it works.

When using REST (for instance) one makes an HTTP request with parameters in either the URI or the message header in order to invoke a service and further describe its needs.

A mentor of mine at work and I were discussing how JMS works and I'm struggling to understand at an application level how messages are actually sent. As far as I understand JMS in general (I realize there are many implementations of JMS) it is a specification for how to format data being sent.

Is the message itself still sent via HTTP(S)? Could it be SMTP?

Without going excruciatingly deep I would like to understand how one would, at a code level, send a JMS message from one service to another?

Am I even thinking about this correctly? Can it be done any number of different ways? Is there a convention that's used in the industry?

If someone could shed some light on JMS for me I would appreciate it.

Thanks!

like image 668
John Carrell Avatar asked Sep 22 '15 14:09

John Carrell


People also ask

Is JMS based on HTTP protocol?

JMS is not a protocol, it's an API specification. It's not something like TCP or HTTP protocol. Simply put the JMS specification defines signature of messaging APIs.

What is JMS application?

The Java Message Service (JMS) API is a messaging standard that allows application components based on the Java Platform Enterprise Edition (Java EE) to create, send, receive, and read messages. It enables distributed communication that is loosely coupled, reliable, and asynchronous.

Does JMS support AMQP?

A JMS client can use AMQP as the protocol to communicate with the messaging server.

Is JMS a transport protocol?

This section describes the support for the Java™ Message Service transport protocol using SOAP and non-SOAP message formats. For additional information about limitations of the JMS protocol, see Limitations of the JMS Transport protocol.


1 Answers

JMS is not a protocol, it's an API specification. It's not something like TCP or HTTP protocol. Simply put the JMS specification defines signature of messaging APIs. How the APIs are internally implemented and what protocols they use to communicate with the messaging provider is vendor specific.

The vendor specific JMS implementations know how to communicate with their own messaging provider, but not with any other vendors messaging providers. For example IBM's MQ JMS implementation uses it's own protocol to communicate with IBM MQ Queue Manager, similarly Oracle JMS, Active MQ implementations with their own messaging provider.

Hope this helped.

like image 150
Shashi Avatar answered Oct 29 '22 18:10

Shashi