Middleware is computer software 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 perform communication and input/output,
so they can focus on the specific purpose of their application.
Middleware is the software that connects software components or enterprise applications.
Middleware is the software layer that lies between the operating system and the applications
on each side of a distributed computer network.
Typically, it supports complex, distributed business software applications.
Middleware is the infrastructure which facilitates creation of business applications, and provides
core services like concurrency, transactions, threading, messaging, and the SCA framework
for service-oriented architecture applications.
It also provides security and enables high availability functionality to your enterprise.
Middleware includes Web servers, application servers, content management systems, and similar
tools that support application development and delivery.
It is especially integral to information technology based on Extensible Markup Language, Simple
Object Access Protocol, Web services, SOA, Web 2.0 infrastructure, and Light weight directory
access protocol(LDAP)
Middleware in distributed applications
The term is most commonly used for software that enables communication and management
of data in distributed applications.
In this more specific sense middleware can be described as the dash in client-server,
or the -to- in peer-to-peer.
ObjectWeb defines middleware as: "The software layer that lies between the operating system
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, message oriented middleware, object request brokers, and the enterprise
service bus.
Distributed computing system middleware can loosely be divided into two categories – those
that provide human-time services 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 within telecom, defense and aerospace industries.
Other examples of middleware 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 mer software distribution is a middleware: it lacks the Linux kernel and it also lacks
a UI.
Mer is targeted at hardware vendors' mobile-oriented operating systems.
The Android operating system uses the Linux kernel at its core, and also provides an application
framework that developers incorporate into their applications.
In addition, Android provides a middleware layer including libraries that provide services
such as data storage, screen display, multimedia, 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 Dalvik virtual machine and its core Java application
libraries.
Game engine software such as Gamebryo and Renderware 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
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 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 wireless
sensor network, or WSN technologies.
Implementing a middleware application allows WSN developers to integrate operating systems
and hardware with the wide variety of various applications that are currently available.
The QNX operating system offers middleware for providing multimedia services for use
in automobiles, aircraft and other envien middleware system standard designed by the
DVB project for interactive digital television.
The MHP enables the reception and execution of interactive, Java-based applications on
a television set.
Universal Home API, or UHAPI, is an application programming interface for consumer electronics
appliances, created by the UHAPI Forum.
The objective of UHAPI is to enable standard middleware to run on audio/video streaming
platforms via a hardware-independent industry standard API.
The Miles Sound System provided a middleware software driver allowing developers to build
software that worked with a range of different sound cards, without concerning themselves
with the details of each card.
Radio-frequency identification software toolkits provide middleware to filter noisy and redundant
raw data.
ILAND is a service-based middleware dedicated to real-time applications.
It offers deterministic reconfiguration support in bounded time.
Television, media and set-top-box software often refers to middleware.
For instance, OpenTV 5 middleware is a Linux and HTML5 distribution for set-top-box including
a default TV navigation guide and provides open APIs to tailored TV user experience that
can leverage the home cloud, broadcast video and web services for Pay-TV operators.
Boundaries The distinction between operating system and
middleware functionality is, to some extent, arbitrary.
While core kernel functionality can only be provided by the operating system itself, some
functionality previously provided by separately sold middleware is now integrated in operating
systems.
A typical example is the TCP/IP stack for telecommunications, nowadays included in virtually
every operating system.
At the other end of the scale, the boundary between middleware and application has also
moved.
Digital TV middleware for example usually provides enough functionality so that no "application"
is needed for end-users to be able to use the TV services.
Origins Middleware is a relatively new addition to
the computing landscape.
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.
It also facilitated distributed processing, the connection of multiple applications to
create a larger application, usually over a network.
See also Cross-language
References