This is the first post in the #elya_studywithme series. Please go to the previous post to learn about why we’re learning what we’re learning right now.
Today we will take a look at middleware, what it is and how it is used.
When I got my first (and current) front end developer job, I noticed one thing: we don’t create bottom-down, we create bottom-up.
What that means is basically that there are always some existing systems that need to be integrated into new systems. That’s the starting point of designing new software – reflecting on how you can combine old and new. And that’s where middleware comes into play.
Middleware is effectively software that provides a method of communication between applications that would otherwise not have any way to exchange data. It bridges the gap between old and new, provides an intermediate layer, a common interface.
We don’t create bottom-down, we create bottom-up.
How does it work?
In order to connect systems written in different languages, middleware has to be cross-language, which means it should be capable of understanding multiple programming languages like Java, C++, PHP etc.
What are other function of middleware?
Hiding the distributed nature of an application – to make an application consisting of different elements appear uniform to the user.
Providing application developers with uniform tools to build applications that can be run on different hardware and operating systems.
Providing a common framework for performing various general purpose functions (logging, recovery etc)
Some of the uses of middleware include:
Application server – middleware can be used to host an API
Security – to authenticate client programs
Message queues – pass messages between different systems.
Web server – accept client requests and channel them to the database and deliver the responses back to the browsers.
Some popular middleware include Amazon Web Services, Apache Camel, IBM WebSphere and Oracle WebLogic. When choosing a middleware solution, you should make the decision based on your organization’s requirements and the type of infrastructure used by your organization.