[For beginners] What is middleware? Thorough explanation of types, roles, and functions!

table of contents
Hello.
I'm Kita from Beyond and I've just started playing the popular Pokemon card game.
Last time, I wrote a blog
post about how a server starts up This time, I would like to explain in an easy-to-understand way what middleware is.
This may not be a term you hear often in your daily life, but middleware is actually an essential part for systems to function
This time, we will explain the functions and types of middleware, including illustrations, so that even beginners can understand, so please read to the end
What is Middleware?

First of all, the conclusion is that middleware is what is called intermediate software
As the name suggests, middleware is software that acts as a bridge between the OS (operating system) and applications.
There are many types of middleware, each specializing in a specific function and providing support to the OS and applications.
Let's review some terminology here
What is an OS?

OS stands for Operating System, and is the most basic software that controls the basic functions of a computer.
In other words, it can only provide basic functions, so it cannot provide advanced functions on its own.
What is an application?

An application is
software that allows you to perform practical tasks. It is separate from the OS.
Examples include Microsoft's spreadsheet software Excel and word processing software Word
If we focus more on infrastructure operations,
to infrastructure operations include EDISONE, a reservation management system provided by Beyond
Specific roles of middleware

Now, let's take a deeper look at the reservation system we mentioned earlier
When you think of a reservation system, you probably think of a service used to reserve conference rooms or stores, but that doesn't mean that this can be created using just an OS
When you want to create a reservation system, the first thing you need is an application that provides the reservation function,
which is the program code written by a developer.
However, a reservation system cannot be created with just an application (code); it also needs features such as the ability to display the management screen and reservation information in a browser, the ability to save and manage data at the time of reservation, and the ability to send emails when a reservation is made
When you break down a reservation system like this, you will see that it requires multiple functions.
These multiple functions are implemented on the premise that they use middleware specialized for their respective purposes
The specific functions are as follows:
Web Page = Apache
Store/manage data = Database/MySQL
Ability to send email = Postfix
As such, middleware that fulfills each role is required
Representative middleware

The diagram above shows the most common types of middleware.
A commonly used configuration is Linux (OS) + Apache (web pages) + MySQL (database) + PHP (programming language), which is referred to as LAMP , and servers are often created with this configuration.
①Apache

is said to be
the most widely used web server *Currently, it seems to be competing for the top spot with NGINX, which will be discussed later.
This middleware is widely used for everything from large-scale commercial sites to hobbyist servers built at home
There is a lot of information available online, and it is often used as a starting point for building a server
②NGINX

a web server with the same role as Apache and is used all over the world.
It has more functions than Apache, such as reverse proxying, load balancing, and caching of HTTP requests.
③MySQL

It is middleware called
a relational database management system (RDBMS), as the name suggests, it is responsible for storing and managing databases.
This is also the most widely used RDBMS in the world.
In addition, middleware called PostgreSQL is often used in the same role as a database.
④Postfix

Postfix is a middleware that is often used when building a mail server, and its
role is to send and forward emails
Depending on the requirements, if you need to send and receive emails, it is often used in conjunction with Dovecot, which will be described later
⑤Dovecot

Its role is similar to Postfix, but
it is a middleware that has the function of receiving email via IMAP/POP3
To put it simply, it may be easier to remember that Postfix = for sending email and Dovecot = for receiving email
Overall view

Finally, we will use diagrams to explain and review the concepts
The process can be roughly summarized as follows:
- Receives a web page request from the user (Apache)
- The application program runs (PHP)
- The program collates data from reservation management data (MySQL)
- Returning a web page request (Apache)
- Send a reservation completion email (Postfix)
The process goes something like this
lastly
So far, we have provided a detailed explanation of what middleware is, its functions, types, etc
There are many different types of middleware, each specialized for different purposes.
Behind the scenes, middleware acts as an intermediate piece of software to help us with the various systems we use every day. Thank you, middleware.
was created with reference to videos from
Nezumi-san's Infrastructure Engineer Dojo, a channel run by our company where you can learn infrastructure knowledge from scratch , so if you're interested, please subscribe and rate it!
7