In short
Message Oriented Middleware (MOM):
The purpose of Message Oriented Middleware (MOM) is to make incompatible or otherwise very different applications/systems/platforms (endpoints) able to communicate in a shared format.
The primary components used for messaging
How does the applications on the systems talk to the middleware software?
Message Queue Interface (MQI):
This is an API that have different function (calls) that makes the business application able to communicate with a queue manager (QM).
How does the systems send messages between them?:
Message Queueing (MQ):
Communication is done by sending/recieving messages (data) to queues rather than directly to the sending/recieving application/system.
Note: There a multiple types of queues that serves different operations before/after a message can be sent/recieved.
Broker:
The broker translates these messages between the application/system.
Queue Manager (QM):
This manages the queues and communicates with other queue managers on different systems, so that a message from queue(A) on system A will be sent and put on queue(B) on system B.
Message Channels:
The queue manager communicates with the other queue managers through a message channel.
Check out the technical explanations from IBM's version of MOM:
https://www.ibm.com/support/knowledgecenter/SSFKSJ_8.0.0/com.ibm.mq.pro.doc/q002620_.htm
Check out this channel - It has solid concise down to earth explanations about this subject.
https://www.youtube.com/watch?v=5-0sv-sRmGw&list=PLqnWYrfCqvm5ZdT4je7vjdyLf9_dPK6Kc&index=33