What is middleware? Definition of middleware
Middleware (English: Middleware) is a kind of computer software that connects software components and applications. It includes a group of services. In order to facilitate the interaction of multiple software running on one or more machines through the network. The interoperability provided by this technology has promoted the evolution of the consistent distributed architecture, which is usually used to support and simplify those complex distributed applications, including web servers, transaction monitors and message queue software.
Middleware is a major category of basic software and belongs to the category of reusable software. As the name implies, middleware is between the operating system software and the user’s application software.
Middleware is above the operating system, network and database, and the lower layer of application software. The overall role of middleware is to provide a running and development environment for the application software in its upper layer, and help users develop and integrate complex application software flexibly and efficiently.

Among many definitions of middleware, IDC is generally accepted:
Middleware is an independent system software or service program. Distributed application software uses this software to share resources among different technologies. Middleware is located on the operating system of client server to manage computing resources and network communication.
The definition of middleware shows that middleware is a kind of software, not a kind of software; Middleware not only realizes interconnection, but also interoperability between applications; Middleware is software based on distributed processing, and its most prominent feature is its network communication function.
Middleware is a common service between platform (hardware and operating system) and application. As shown in Figure 1, these services have standard program interfaces and protocols. For different operating systems and hardware platforms, they can have multiple implementations that conform to the interface and protocol specifications.