What is Middleware ?

Integration with middleware
Integration with middleware

Middleware is software that connects other software together. The name makes its meaning obvious: software that sits in the middle. This is shown in the diagram below.

Point to Point integration

Point to Point integration

 As shown in figure 1, software Application 1 can connect directly to software Application 2. Connecting Application 1 and Application 2 directly is called point to point integration. Or Application1 and Application 2 can be connected together via middleware. Integration using a middleware is shown in Figure 2.

Integration using middleware

Integration using middleware

Why

If Application 1 and Application 2 can connect directly with each other, why is middleware needed at all ? The answer has to do with creating reliable and long-lived designs and architectures.

Why do we need connection between applications(apps) ? So that they can communicate with each other. This communication normally happens using messages. A message is a unit of communication between apps.  Messages can be exchanged in either direction over a connection.

Let us take an example: Integration between CRM(Customer Relationship Management) and Billing in a Telecom scenario. The CRM app stores all the customer information: his address, contact details, his interactions with the customer service rep. etc. Now suppose the customer service rep(CSR) using the CRM needs to look at a customer’s bill payment history ? The CSR will need to get this information from the Billing system. This is where integration is useful. If the CRM app is connected to the Billing app, the CRM app can fetch the customer’s billing history from the Billing System and show it to the customer service rep(CSR).

If there is no connection between the CRM and the Billing apps, the CSR will have to log in to the Billing System and get the billing history of the customer. This may sound simple: why doesn’t the CRS just log into the Billing app ? Consider that the CSR now wants to get some details of the customer’s phone call. These details are not available in the Billing app. The CSR will  then need to log into yet another application. The need for integration increases as the number of application in the technology landscape increases. Diagrams 3 and 4 compare the differences in complexity when we integrate a large number of apps.

Many applications to integrate

Many applications to integrate

 

Integration with middleware

Integration with middleware

Challenges in integration and how middleware helps:

Integration challenge How middleware helps
Message reliability Messages can be persisted at the middleware layer, to avoid loss of messages
Application availability Even if the receiving app is not available the middleware can persist the message and deliver it later
Orchestrating multi-step integrations Only possible in middleware based integrations
Impedance matching: matching the speeds of the sending and receiving apps If the sending app is too fast, the middleware can: 1) persist the messages till the receiver is ready 2) throttle the sending application
Handle too many message formats and message transformations. If there are N apps, we need N2-N transformations, and (N2-N)/2 connections If there are N apps, we need only 2N transformations and N connections. This makes design and development much simpler, thus reducing costs.
Handling heavy message load Middleware can be clustered and load balanced based on the expected load
Understand the function of the apps’ exposed interfaces Needs to be done only for the first integration with that app. For point to point integration, we have to do this each new integration with that app.

 

1 Response

  1. Merlin says:

    Very well Explained. Thanks.

Leave a Reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>