What is middleware software? How to use it?

What is middleware? Middleware is a software to connect other softwares

Share This Post

If you work in IT, you must know about middleware. In fact, this simple concept is at the foundation of our fast-paced world. Even if it isn’t the most appealing thing ever, it is a pillar for almost any application. Why is that, and how? In this post, we will see what is middleware software and how to use it in your application.

Middleware Software

What is a middleware software?

In short, middleware is the fusion of two words: middle and software. And, guess what, middleware is a software that stays in the middle. To be more specific, it is a software that stays in between two other software components, like a hamburger in a sandwich.

What is middleware software? Like an hamburger between two slices of breads, middleware stays between two other softwares
Middleware stays between two other software and enables them to communicate.

It is part of a pipeline of information. In fact, the main goal of any software is to elaborate information, and to do that information must move around. Thus, information has to move from one software to another, and middleware facilitates that. If you are confused a little don’t worry, we will address everything now.

Why can’t a single software do all the processing?

It can, but modern tasks are no joke. In fact, modern application requires the interaction of multiple parties and components. For example, think about buying something on Amazon.com. As soon as you submit the order, several parties come to play:

  • Amazon’s website handles your order
  • Your bank must provide authorization for the payment
  • The card company (e.g. VISA, MasterCard) relay the request to your bank
  • Amazon’s logistics software takes charge of your shipment
  • The shipping company gets your order

And probably much more. In this case, you clearly see that no single entity manages the entire process. Instead, many entities play different roles. Thus, you need interaction to connect with software from other companies. But that’s what APIs are for, you don’t necessarily need a middleware.

Sometimes, your application is huge. So huge you may want to split it into different applications, each doing only a part of the job. However, data needs to flow between those application fragments. That’s another reason you need multiple software: modern challenges are too big for a single one.

The shape of middleware

Middlewares come in many forms. They can be software running on a server, containers or even standalone appliances. Sometimes, you create your own middleware software. Instead, other times you purchase a preconfigured middleware application (e.g. Mulesoft).

How to use middleware

If we answer how to use middleware, we will also see why you should use it. We already know more or less the way to use it: put it between two other software. But what does this mean?

You have one software that needs to engage another, for example, the webserver wanting to send an order to the logistics application. You can engage directly that application, but you have some compatibility problems. For example, the logistics application may want to receive a file in FTP, but the webserver cannot support FTP, it only supports REST.

With middleware, you make an additional software that receives a file with REST and then sends it to the logistics software with FTP. In other words, you translate technologies. This is the main goal of middleware, and also the difference from an API.

What is middleware? In this use case, middleware translates between REST and FTP
In this example, the middleware translates a REST call into an FTP action.

In fact, an API simply is a way for another software to engage your software. Instead, middleware is an additional software that translates between different technologies.

Typical use case

In the ideal world, you don’t need middleware at all. That’s just utopia because the real world is hungry for middleware. Normally, middleware comes to play when you have legacy applications. Or, even better, when you want to integrate applications from different eras or with different technology designs.

Complex use cases of middleware

Imagine you have a legacy application that reads data from a disk to process orders (e.g. shipments). However, your company grew and you added more sites. While the database is one in the HQ, each distribution center has its own application that wants to write in the disk when an order is shipped.

At first, you map on all servers the disk in HQ as a network disk and this works for your national branches. But you expand overseas, say from the US to Australia. You try the same approach, but your application starts to timeout because of latency.

You need a better approach. The option here is to have an active middleware, that moves data between applications on its own, not waiting for either of the two to do an action. So, you set up a middleware to fetch with FTP data from the server in HQ, and copy it to the server in Australia every hour, and then copy the differences back. This is something you may do with Mulesoft, in fact.

In conclusion

In conclusion, middleware software is something that stays in the back but that makes the complex interactions possible. These complex interactions, in turn, make the modern world possible. Middleware is all about integration and enablement.

Do you ever use middleware software? Let me know in the comments.

Picture of Alessandro Maggio

Alessandro Maggio

Project manager, critical-thinker, passionate about networking & coding. I believe that time is the most precious resource we have, and that technology can help us not to waste it. I founded ICTShore.com with the same principle: I share what I learn so that you get value from it faster than I did.
Picture of Alessandro Maggio

Alessandro Maggio

Project manager, critical-thinker, passionate about networking & coding. I believe that time is the most precious resource we have, and that technology can help us not to waste it. I founded ICTShore.com with the same principle: I share what I learn so that you get value from it faster than I did.

Alessandro Maggio

2020-04-23T16:30:41+00:00

Unspecified

Dev

Unspecified