HOME

TheInfoList



OR:

Middleware is a type of computer
software Software is a set of computer programs and associated software documentation, documentation and data (computing), data. This is in contrast to Computer hardware, hardware, from which the system is built and which actually performs the work. ...
that provides services to software applications beyond those available from the operating system. It can be described as "software glue". Middleware makes it easier for software developers 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 A distributed system is a system whose components are located on different networked computers, which communicate and coordinate their actions by passing messages to one another from any system. Distributed computing is a field of computer sci ...
s. An IETF workshop in 2000 defined middleware as "those services found above the
transport Transport (in British English), or transportation (in American English), is the intentional movement of humans, animals, and goods from one location to another. Modes of transport include air, land ( rail and road), water, cable, pipelin ...
(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 dash ("-") in '' client-server'', or the ''-to-'' in '' peer-to-peer''. Middleware includes web servers, application servers, content management systems, 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, software resources, and provides common services for computer programs. Time-sharing operating systems schedule tasks for efficient use of the system and may also i ...
and applications on each side of a distributed computing system in a network." Services that can be regarded as middleware include
enterprise application integration Enterprise application integration (EAI) is the use of software and computer systems' architectural principles to integrate a set of enterprise computer applications. Overview Enterprise application integration is an integration framework comp ...
,
data integration Data integration involves combining data residing in different sources and providing users with a unified view of them. This process becomes significant in a variety of situations, which include both commercial (such as when two similar companies ...
,
message oriented middleware Message-oriented middleware (MOM) is software or hardware infrastructure supporting sending and receiving messages between distributed systems. MOM allows application modules to be distributed over heterogeneous platforms and reduces the comple ...
(MOM),
object request broker In distributed computing, an object request broker (ORB) is a middleware which allows program calls to be made from one computer to another via a computer network, providing location transparency through remote procedure calls. ORBs promote interop ...
s (ORBs), and the
enterprise service bus An enterprise service bus (ESB) implements a communication system between mutually interacting software applications in a service-oriented architecture (SOA). It represents a software architecture for distributed computing, and is a special varia ...
(ESB).
Database In computing, a database is an organized collection of data stored and accessed electronically. Small databases can be stored on a file system, while large databases are hosted on computer clusters or cloud storage. The design of databases s ...
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,
JDBC Java Database Connectivity (JDBC) is an application programming interface (API) for the programming language Java, which defines how a client may access a database. It is a Java-based data access technology used for Java database connectivity. I ...
and
transaction processing Transaction processing is information processing in computer science 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 compl ...
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 The Service Availability Forum (SAF or SA Forum) is a consortium that develops, publishes, educates on and promotes open specifications for carrier-grade and mission-critical systems. Formed in 2001, it promotes development and deployment of com ...
and is commonly used in complex,
embedded systems An embedded system is a 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 ''embedded'' ...
within telecom, defence and aerospace industries.


Types of middleware

Many definitions exist regarding the categorization of middleware specifying either on the field that it is used or the application module it serves. In recent bibliography, the main categories of middleware are the following: *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, which 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, however, this type of middleware 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, an abstraction layer that hides detail about hardware devices or other software from an application. * The Android operating system uses the
Linux Linux ( or ) is a family of open-source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991, by Linus Torvalds. Linux is typically packaged as a Linux distribution, w ...
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 inter ...
that developers incorporate into their applications. In addition, Android provides a middleware layer including
libraries A library is a collection of Document, materials, books or media that are accessible for use and not just for display purposes. A library provides physical (hard copies) or electronic media, digital access (soft copies) materials, and may be a ...
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, audio, images, animations, or video into a single interactive presentation, in contrast to tradit ...
, 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 various Android devices. Android's middleware layer also contains the
ART Art is a diverse range of human activity, and resulting product, that involves creative or imaginative talent expressive of technical proficiency, beauty, emotional power, or conceptual ideas. There is no generally agreed definition of wha ...
virtual machine and its core Java 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 software such as
Gamebryo Gamebryo (; ; formerly NetImmerse until 2003) is a game engine developed by Gamebase Co., Ltd. and Gamebase USA, that incorporates a set of tools and plugins including run-time libraries, supporting video game developers for numerous cross-pl ...
and
RenderWare RenderWare is a video game engine developed by British game developer Criterion Software. Overview Released in 1993, RenderWare is a 3D computer graphics, 3D Application programming interface, API and graphics rendering Game engine#Game middlewa ...
are sometimes described as middleware, because they provide many 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 re-create them for each application. * Wireless networking developers can use middleware to meet the challenges associated with a wireless sensor network (WSN). Implementing a middleware application allows WSN developers to integrate operating systems and hardware with the wide variety of various applications that are currently available.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 automobile is a motor vehicle with wheels. Most definitions of ''cars'' say that they run primarily on roads, seat one to eight people, have four wheels, and mainly transport people instead of goods. The year 1886 is regarde ...
s, aircraft and other environments. * Radio-frequency identification (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 Systems engineering