Reputation: 1961
I'm wondering how to distinguish what software is message-oriented middleware and what is message queue?
Going futher - does service bus use queue or message-oriented middleware? Or maybe service bus is message-oriented middleware itself?
For example is RabbitMQ just message queue or does it contain also message-oriented middleware features?
This terms seems to be buzzy and blurry. Please advice. Thank you :)
Upvotes: 1
Views: 1983
Reputation: 12859
According to wikipedia:
Message-oriented middleware (MOM) is software or hardware infrastructure supporting sending and receiving messages between distributed systems.
and
In computer science, message queues and mailboxes are software-engineering components used for inter-process communication (IPC), or for inter-thread communication within the same process.
I would describe message queues as lower abstraction, say just as concept of how messages are organized, stored and delivered.
For message-oriented middleware, message queue is not a must. Say, you can have MOM that broadcasting any message and doesn't care about network or any other delays or potential failures and messages loss. In this case message delivery and delivery order is not guaranteed. Sure, it is very specific use case, but such software (or hardware) can be called MOM.
So by itself RabbitMQ is Message-oriented middleware. And internally it utilize FIFO queues for message storing. Wikipedia also says the same:
RabbitMQ is open source message broker software (sometimes called message-oriented middleware) that implements the Advanced Message Queuing Protocol (AMQP). The
As to NServiceBus it uses MOM (by default MSMQ, but you can also enable other transport support , like RabbitMQ or others) as its transport, so yes, it utilizes message queuing concept and MOM itself. And according to definition NServiceBus is the MOM itself (higher level than most of it transport MOMs).
So NServiceBus is more like architectural concept, abstraction on top of various MOM. For further reading see Specific advantages of NServiceBus over plan RabbitMQ question here on SO which helps to get the NServiceBus idea.
Upvotes: 2