One of the main needs of computer applications has always been exchanging data across different machines. The old way of processing this have been the terminal-host server model. In this model the platform would receive a user invoked method and then process and return the result to a terminal screen. During this process the server would connect to the database and execute commands to either get, insert, update or remove data.
This can be considered an exchange of data between two applications, which is an example of middleware. Middleware is a piece of software that handles transfer of information from one application to one or many other applications. MOM stands for Message Oriented Middleware and allows developers to focus on developing applications by managing the message parsing between operating systems, hardware and various communication protocols. The applications that use MOM follow a very simple architecture. They implement a messaging client and a messaging API. Clients can be applications or system components. The messaging API is used to send messages to MOM.
MOM then distributes the message to other clients. One of the big advantages of this system is that it does not rely on the transport layer. It solves the issues in the communication layer and uses it instead. In the modern world the distributed computing model has gained a lot of popularity. In this environment different operating systems communicate with different hardware using different applications. The network structure and protocols are also often different.
All this makes the communication complicated and developers up until MOM was introduced had to solve these networking issues themselves. The applications they wrote would use very low-level communication layers (RPCs, sockets and shared memory). The disadvantage of these applications is that they can only run well in a local network.