Software that functions as a conversion or translation layer. Middleware is also a consolidator and integrator. Custom-programmed middleware solutions have been developed for decades to enable one application to interface with another, which either runs on a different platform or comes from a different vendor. Today, there is a diverse group of middleware products as outlined in the following examples. See
application integration.
TP Monitors
The TP monitor (transaction processing monitor) was perhaps the first product to be called middleware. Sitting between the requesting client program and the databases, it ensured that all databases are updated properly (see
TP monitor).
Messaging Middleware
Messaging middleware provides a common interface and transport between applications. If the target machine is down or overloaded, it stores the data in a message queue until it becomes available. The messaging system may contain business logic that routes messages to the appropriate destinations and reformats the data as well. Messaging middleware is similar to an email messaging system, except that it is used to send data between applications. (see
messaging middleware).
Distributed Processing
Distributed object systems such as CORBA, DCOM and EJB enable processes to be run anywhere in the network. They differ from messaging middleware in that they cause processes (components/objects) to be executed in real time rather than sending data.
Database Middleware
Middleware provides a common interface between a query and multiple, distributed databases. Using either a hub and spoke architecture (top) or a distributed architecture (bottom), it enables data to be consolidated from a variety of disparate data sources (see
EDA and
DQbroker).
Common Interfaces
Common programming interfaces between applications are considered middleware. For example, Open Database Connectivity (ODBC) enables applications to make a standard call to all the databases that support the ODBC interface.
Application Server Middleware
A Web-based application server that provides interfaces to a wide variety of applications is used as middleware between the browser and legacy systems. The browser can be used at desktops or on laptops when traveling. A wide range of server-side processing has been supported by appservers (see
Java EE).
Universal Computing
One of the Holy Grails of computing, these examples link an application to an operating environment. They enable the same program to run on any hardware platform without modification. HTML pages can execute on any Web browser running under any operating system. Java applications and applets are executed by a Java Virtual Machine, which can be created for any operating system. Thus, the browser and Java negate the requirement for only one operating system and hardware environment.
Network Logon
Middleware for networks includes a common approach for identifying users and network resources, authorizing and authenticating users and setting up standardized directory schemas. Using middleware in this fashion avoids the problems that occur when applications are responsible for these tasks and incompatible versions arise. The Internet2 project was designed to make advancements in this area. For more information, visit http://middleware.internet2.edu.
Enterprise Integration
ActiveWorks software was designed solely as an integration solution. Brokering messages between a wide range of enterprise applications, it added processing where required. ActiveWorks was later acquired by webMethods and folded into its BPM suite. (Image courtesy of Active Software, Inc.)