Middleware in the context of distributed applications is software that provides
services beyond those provided by the operating system to enable the various
components of a distributed system to communicate and manage data. Middleware
supports and simplifies complex distributed applications. It includes
web servers, application servers, messaging and similar tools that support
application development and delivery. Middleware is especially integral to
modern information technology based on XML, SOAP, Web services, and
service-oriented architecture. Middleware often enables
interoperability between applications that run on different operating systems,
by supplying services so the application can exchange data in a standards-based
way. Middleware sits "in the middle" between application software that may be
working on different operating systems. It is similar to the middle layer of a
three-tier single system architecture, except that it is stretched across
multiple systems or applications. Examples include EAI software,
telecommunications software, transaction monitors, and messaging-and-queueing
software. 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.
Definitions Software that provides a link between
separate software applications. Middleware is sometimes called plumbing
because it connects two applications and passes data between them. Middleware
allows data contained in one database to be accessed through another. This
definition would fit enterprise application integration and data
integration software. 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."
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. Use of middleware
Middleware services provide a more functional set of application
programming interfaces to allow an application to:
Locate transparently across the network, thus providing interaction with another
service or application Filter data to make them friendly usable
or public via anonymization process for privacy protection
Be independent from network services Be reliable and always available
Add complementary attributes like semantics
when compared to the operating system and network services.
Middleware offers some unique technological advantages for business
and industry. For example, traditional database systems are usually deployed in
closed environments where users access the system only via a restricted network
or intranet. With the phenomenal growth of the World Wide Web, users can access
virtually any database for which they have proper access rights from anywhere
in the world. Middleware addresses the problem of varying levels of
interoperability among different database structures. Middleware
facilitates transparent access to legacy database management systems or
applications via a web server without regard to database-specific
characteristics. Businesses frequently use middleware
applications to link information from departmental databases, such as payroll,
sales, and accounting, or databases housed in multiple geographic locations.
In the highly competitive healthcare community, laboratories make extensive
use of middleware applications for data mining, laboratory information system
backup, and to combine systems during hospital mergers. Middleware helps
bridge the gap between separate LISs in a newly formed healthcare network
following a hospital buyout. Middleware can help software developers
avoid having to write application programming interfaces for every control
program, by serving as an independent programming interface for their
applications. For Future Internet network operation through traffic
monitoring in multi-domain scenarios, using mediator tools is a powerful help
since they allow operators, searchers and service providers to supervise
Quality of service and analyse eventual failures in telecommunication services.
Finally, e-commerce uses middleware to assist in handling rapid and secure
transactions over many different types of computer environments. In short,
middleware has become a critical element across a broad range of industries,
thanks to its ability to bring together resources across dissimilar networks or
computing platforms. In 2004 members of the European
Broadcasting Union carried out a study of Middleware with respect to system
integration in broadcast environments. This involved system design engineering
experts from 10 major European broadcasters working over a 12-month
period to understand the effect of predominantly software-based products to
media production and broadcasting system design techniques. The resulting reports
Tech 3300 and Tech 3300s were published and are freely available from the EBU
web site. Types
= Message-oriented middleware = Message-oriented middleware is
middleware where transactions or event notifications are delivered between
disparate systems or components by way of messages, often via an enterprise
messaging system. With MOM, messages sent to the client are collected and
stored until they are acted upon, while the client continues with other
processing. Enterprise messaging system
An enterprise messaging system is a type of middleware that facilitates message
passing between disparate systems or components in standard formats, often
using XML, SOAP or web services. As part of an enterprise messaging system,
message broker software may queue, duplicate, translate and deliver
messages to disparate systems or components in a messaging system.
Enterprise service bus Enterprise service bus is defined by the
Burton Group as "some type of integration middleware product that
supports both message-oriented middleware and Web services".
= Intelligent middleware = Intelligent Middleware provides
real-time intelligence and event management through intelligent agents.
The IMW manages the real-time processing of high volume sensor signals and turns
these signals into intelligent and actionable business information. The
actionable information is then delivered in end-user power dashboards to
individual users or is pushed to systems within or outside the enterprise. It is
able to support various heterogeneous types of hardware and software and
provides an API for interfacing with external systems. It should have a
highly scalable, distributed architecture which embeds intelligence
throughout the network to transform raw data systematically into actionable and
relevant knowledge. It can also be packaged with tools to view and manage
operations and build advanced network applications most effectively.
= Content-centric middleware = Content-centric middleware offers a
simple provider-consumer abstraction through which applications can issue
requests for uniquely identified content, without worrying about where or
how it is obtained. Juno is one example, which allows applications to generate
content requests associated with high-level delivery requirements. The
middleware then adapts the underlying delivery to access the content from
sources that are best suited to matching the requirements. This is therefore
similar to Publish/subscribe middleware, as well as the Content-centric
networking paradigm. Remote procedure call
Remote procedure call middleware enables a client to use services running on
remote systems. The process can be synchronous or asynchronous.
Object request broker With object request broker middleware,
it is possible for applications to send objects and request services in an
object-oriented system. SQL-oriented data access
SQL-oriented Data Access is middleware between applications and database
servers. Embedded middleware
Embedded middleware provides communication services and
software/firmware integration interface that operates between embedded
applications, the embedded operating system, and external applications.
= Other = Other sources include these additional
classifications: Transaction processing monitors –
provides tools and an environment to develop and deploy distributed
applications. Application servers – software
installed on a computer to facilitate the serving of other applications.
Vendors IBM, Red Hat, Oracle Corporation and
Microsoft are some of the vendors that provide middleware software. Vendors
such as Axway, SAP, TIBCO, Informatica, Objective Interface Systems, Pervasive
and webMethods were specifically founded to provide more niche middleware
solutions. Groups such as the Apache Software Foundation, OpenSAF, the
ObjectWeb Consortium and OASIS' AMQP encourage the development of open source
middleware. Microsoft .NET "Framework" architecture is essentially "Middleware"
with typical middleware functions distributed between the various
products, with most inter-computer interaction by industry standards, open
APIs or RAND software licence. Solace Systems provides middleware in
purpose-built hardware for implementations that may experience
scale. StormMQ provides Message Oriented Middleware as a service.
See also Comparison of business integration
software Middleware Analysts
Service-oriented architecture Enterprise Service Bus
Event-driven SOA ObjectWeb
References External links
Internet2 Middleware Initiative SWAMI - Swedish Alliance for Middleware
Infrastructure Open Middleware Infrastructure Institute
European Broadcasting Union Middleware report.
More detailed supplement to the European Broadcasting Union Middleware report.
ObjectWeb - international community developing open-source middleware