What are the different types of Middleware?
Some of the common broad categories of middleware include:
Message-Oriented Middleware (MOM)
Message-Oriented Middleware (MOM) is a software product based on a message-oriented architecture that requires a client/server environment and a message broker program.
When a message is sent to the message broker, it is forwarded to the appropriate server application and the middleware produces a communications layer that overcomes the different operating systems and network protocols.
MOM is used in mobile applications to store and forward data between handheld devices and host applications, as well as between trading partners to securely transmit information such as orders, customer data or information about products between parties. There are many other examples which include being the messaging and information backbone between business systems on corporate networks.
Remote Procedure Call (RPC) Middleware
A client-server interaction that enables the functionality of an application to be distributed across multiple platforms. Local programs can request a service from a program located on a remote commuter without network details. RPC is most often used to execute synchronous data transfers, where the both the client and the server need to be online at the time of the communication.
Application Programming Interface (API)
A set of protocols, tools and definitions for building apps. APIs allow a secondary app or service to communicate with the primary app or service – this is done without the need to know how the primary app or service is implemented.
Controlling the communication between objects in distributed computing, enabling one computer to make program calls to another through a computer network.
Transaction Processing (TP) Middleware
Reinforcing the function of electronic transactions by controlling transaction apps in line with the database and enforcing the business rules and logic of the transaction.
Providing an integration framework to monitor and control operations, executions and runtime services from several apps. A useful option to enable data from multiple sources to be combined into a unified platform that can be accessed and manipulated by users.
Offering the basic structure to build apps for a particular environment, acting as a server for the app and providing the backbone for its development.
Providing a set of tools to build apps to be run in a specific hardware environment.
Most often used in content-oriented web-based apps, it makes it possible for developers to extract a piece of content without knowing how the system obtains the content.