Middleware is a type of
computer software
Software consists of computer programs that instruct the Execution (computing), execution of a computer. Software also includes design documents and specifications.
The history of software is closely tied to the development of digital comput ...
program that provides services to software applications beyond those available from the
operating system
An operating system (OS) is system software that manages computer hardware and software resources, and provides common daemon (computing), services for computer programs.
Time-sharing operating systems scheduler (computing), schedule tasks for ...
. It can be described as "software glue".
Middleware makes it easier for
software developer
Software development is the process of designing and Implementation, implementing a software solution to Computer user satisfaction, satisfy a User (computing), user. The process is more encompassing than Computer programming, programming, wri ...
s to implement communication and input/output, so they can focus on the specific purpose of their application. It gained popularity in the 1980s as a solution to the problem of how to link newer applications to older legacy systems, although the term had been in use since 1968.
In distributed applications

The term is most commonly used for software that enables communication and management of data in
distributed application
Distributed computing is a field of computer science that studies distributed systems, defined as computer systems whose inter-communicating components are located on different computer network, networked computers.
The components of a distribu ...
s. An
IETF
The Internet Engineering Task Force (IETF) is a standards organization for the Internet standard, Internet and is responsible for the technical standards that make up the Internet protocol suite (TCP/IP). It has no formal membership roster ...
workshop in 2000 defined middleware as "those services found above the
transport
Transport (in British English) or transportation (in American English) is the intentional Motion, movement of humans, animals, and cargo, goods from one location to another. Mode of transport, Modes of transport include aviation, air, land tr ...
(i.e. over TCP/IP) layer set of services but below the application environment" (i.e. below application-level
APIs). In this more specific sense ''middleware'' can be described as the hyphen ("-") in ''
client-server'', or the ''-to-'' in ''
peer-to-peer
Peer-to-peer (P2P) computing or networking is a distributed application architecture that partitions tasks or workloads between peers. Peers are equally privileged, equipotent participants in the network, forming a peer-to-peer network of Node ...
''. Middleware includes
web server
A web server is computer software and underlying Computer hardware, hardware that accepts requests via Hypertext Transfer Protocol, HTTP (the network protocol created to distribute web content) or its secure variant HTTPS. A user agent, co ...
s,
application servers,
content management system
A content management system (CMS) is computer software used to manage the creation and modification of digital content ( content management).''Managing Enterprise Content: A Unified Content Strategy''. Ann Rockley, Pamela Kostur, Steve Manning. New ...
s, and similar tools that support application development and delivery.
ObjectWeb defines middleware as: "The software layer that lies between the
operating system
An operating system (OS) is system software that manages computer hardware and software resources, and provides common daemon (computing), services for computer programs.
Time-sharing operating systems scheduler (computing), schedule tasks for ...
and applications on each side of a distributed computing system in a network." Services that can be regarded as middleware include
enterprise application integration,
data integration
Data integration refers to the process of combining, sharing, or synchronizing data from multiple sources to provide users with a unified view.
There are a wide range of possible applications for data integration, from commercial (such as when a ...
,
message oriented middleware (MOM),
object request brokers (ORBs), and the
enterprise service bus (ESB).
Database
In computing, a database is an organized collection of data or a type of data store based on the use of a database management system (DBMS), the software that interacts with end users, applications, and the database itself to capture and a ...
access services are often characterised as middleware. Some of them are language specific implementations and support heterogeneous features and other related communication features.
Examples of database-oriented middleware include
ODBC
In computing, Open Database Connectivity (ODBC) is a standard application programming interface (API) for accessing database management systems (DBMS). The designers of ODBC aimed to make it independent of database systems and operating systems. An ...
,
JDBC
Java Database Connectivity (JDBC) is an application programming interface (API) for the Java (programming language), Java programming language which defines how a client may access a database. It is a Java-based data access technology used for Java ...
, and
transaction processing
In computer science, transaction processing is information processing that is divided into individual, indivisible operations called ''transactions''. Each transaction must succeed or fail as a complete unit; it can never be only partially c ...
monitors.
Distributed computing system middleware can loosely be divided into two categories—those that provide human-time services (such as web request servicing) and those that perform in machine-time. This latter middleware is somewhat standardized through the
Service Availability Forum and is commonly used in complex,
embedded systems
An embedded system is a specialized computer system—a combination of a computer processor, computer memory, and input/output peripheral devices—that has a dedicated function within a larger mechanical or electronic system. It is em ...
within the telecom, defence, and
aerospace
Aerospace is a term used to collectively refer to the atmosphere and outer space. Aerospace activity is very diverse, with a multitude of commercial, industrial, and military applications. Aerospace engineering consists of aeronautics and astron ...
industries.
Usage of middleware
Many categories of middleware have been defined, based on the field in which it is used or the application module it serves. A recent bibliography identified the main categories of middleware as follows:
*Transactional: Processing of multiple synchronous/asynchronous transactions, serving as a cluster of associated requests from distributed systems such as bank transactions or credit card payments.
*Message-oriented: Message queue and message passing architectures that support synchronous/asynchronous communication.
*Procedural: Remote and local architectures to connect, pass, and retrieve software responses of asynchronous systems communications such as a call operation.
*Object-oriented: Similar to procedural middleware, but incorporates object-oriented programming design principles. Analytically, its software component encompasses object references, exceptions, and inheritance of properties via distributed object requests.
Other examples
The term ''middleware'' is used in other contexts as well. ''Middleware'' is sometimes used in a similar sense to a
software driver
In the context of an operating system, a device driver is a computer program that operates or controls a particular type of device that is attached to a computer or automaton. A driver provides a software interface to hardware devices, enabli ...
, an abstraction layer that hides detail about hardware devices or other software from an application.
* The
Android operating system uses the
Linux
Linux ( ) is a family of open source Unix-like operating systems based on the Linux kernel, an kernel (operating system), operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically package manager, pac ...
kernel at its core, and also provides an
application framework
In computer programming, an application framework consists of a software framework used by software developers to implement the standard structure of application software.
Application frameworks became popular with the rise of graphical user inte ...
that developers incorporate into their applications. In addition,
Android provides a middleware layer including
libraries
A library is a collection of Book, books, and possibly other Document, materials and Media (communication), media, that is accessible for use by its members and members of allied institutions. Libraries provide physical (hard copies) or electron ...
that provide services such as data storage, screen display,
multimedia
Multimedia is a form of communication that uses a combination of different content forms, such as Text (literary theory), writing, Sound, audio, images, animations, or video, into a single presentation. T ...
, and web browsing. Because the middleware libraries are
compiled to
machine language, services execute quickly. Middleware libraries also implement device-specific functions, so applications and the application framework need not concern themselves with variations between Android devices. Android's middleware layer also contains the
ART virtual machine
In computing, a virtual machine (VM) is the virtualization or emulator, emulation of a computer system. Virtual machines are based on computer architectures and provide the functionality of a physical computer. Their implementations may involve ...
and its core
Java
Java is one of the Greater Sunda Islands in Indonesia. It is bordered by the Indian Ocean to the south and the Java Sea (a part of Pacific Ocean) to the north. With a population of 156.9 million people (including Madura) in mid 2024, proje ...
application libraries.
* Middleware also refers to the software that separates two or more APIs and provides services such as rate-limiting, authentication, and logging.
*
Game engine
A game engine is a software framework primarily designed for the development of video games which generally includes relevant libraries and support programs such as a level editor. The "engine" terminology is akin to the term " software engine" u ...
software such as
Gamebryo and
RenderWare are sometimes described as middleware because they provide services to simplify game development.
* In simulation technology, ''middleware'' is generally used in the context of the
high level architecture (HLA) that applies to many distributed simulations. It is a layer of software that lies between the
application code and the
run-time infrastructure. Middleware generally consists of a library of functions, and enables a number of applications—simulations or federates in HLA terminology—to
page
Page most commonly refers to:
* Page (paper), one side of a leaf of paper, as in a book
Page, PAGE, pages, or paging may also refer to:
Roles
* Page (assistance occupation), a professional occupation
* Page (servant), traditionally a young m ...
these functions from the common library rather than recreate them for each application.
* Wireless networking developers can use middleware to meet the challenges associated with a
wireless sensor network
Wireless sensor networks (WSNs) refer to networks of spatially dispersed and dedicated sensors that monitor and record the physical conditions of the environment and forward the collected data to a central location. WSNs can measure environmental ...
(WSN). Implementing a middleware application allows WSN
developers to integrate operating systems and hardware with the wide variety of currently available applications.
[Hadim, S. and Mohamed, N. (2006). Middleware challenges and approaches for wireless sensor networks. IEEE Distributed Systems Online vol 7. Issue 3. Retrieved March 4, 2009 fro]
iEEE Distributed Systems Online
* The
QNX operating system offers middleware for providing multimedia services for use in
automobile
A car, or an automobile, is a motor vehicle with wheels. Most definitions of cars state that they run primarily on roads, Car seat, seat one to eight people, have four wheels, and mainly transport private transport#Personal transport, peopl ...
s,
aircraft
An aircraft ( aircraft) is a vehicle that is able to flight, fly by gaining support from the Atmosphere of Earth, air. It counters the force of gravity by using either Buoyancy, static lift or the Lift (force), dynamic lift of an airfoil, or, i ...
, and other environments.
*
Radio-frequency identification
Radio-frequency identification (RFID) uses electromagnetic fields to automatically Automatic identification system, identify and Tracking system, track tags attached to objects. An RFID system consists of a tiny radio transponder called a tag, ...
(RFID) software toolkits provide middleware to filter noisy and redundant raw data.
See also
*
Language-agnostic
*
Third-party software component In computer programming, a third-party software component is a reusable software component developed to be either freely distributed or sold by an entity other than the original vendor of the development platform. The third-party software component ...
References
External links
*
{{Authority control