|
Advanced
Middleware is
connectivity software
that consists of a set of enabling
services that allow multiple processes running on one or more machines to
interact across a network. Middleware is essential to migrating mainframe
applications to
client/server applications and to providing for communication
across heterogeneous platforms. This technology has evolved during the 1990s
to provide for
interoperability in support of the move to
client/server architectures (see
Client/Server Software Architectures). The most widely-publicized
middleware initiatives are the Open Software Foundation's
Distributed Computing Environment (DCE) , Object Management
Group's Common Object Request Broker
Architecture (CORBA), and Microsoft's COM/DCOM (see Component Object Model (COM), DCOM, and Related
Capabilities)
[Eckerson 95].
As outlined in Figure 17, middleware
services are sets of distributed
software that exist between the application and the operating system and network services on a system node in the network.

Figure 17: Use of Middleware
[Bernstein 96]
Middleware services provide a more functional set of
Application Programming Interfaces (API) than the operating system and network services to allow an application to
- locate transparently across the network, providing interaction with another application or service
- be independent from network services
- be reliable and available
- scale up in capacity without losing function
[Schreiber 95]
Middleware can take on the following different forms:
- Transaction processing (TP) monitors
(see Transaction Processing Monitor Technology), which provide tools and an environment for developing and deploying distributed applications.
- Remote Procedure Call (RPCs), which enable the logic of an application to be distributed across the network. Program logic on remote systems can be executed as simply as calling a local routine.
- Message-Oriented Middleware (MOM), which provides program-to-program data exchange, enabling the creation of distributed applications. MOM is analogous to email in the sense it is asynchronous and requires the recipients of messages to interpret their meaning and to take appropriate action.
- Object Request Brokers (ORBs) , which enable the objects that comprise an application to be distributed and shared across heterogeneous networks.
The main purpose of middleware services is to help solve many application connectivity and interoperability problems. However, middleware services are not a panacea:
- There is a gap between principles and practice. Many popular middleware services use proprietary implementations (making applications dependent on a single vendor's product).
- The sheer number of middleware services is a barrier to using them. To keep their computing environment manageably simple, developers have to select a small number of services that meet their needs for functionality and platform coverage.
- While middleware services raise the level of abstraction of programming
distributed applications, they still leave the application developer with hard
design choices. For example, the developer must still decide what
functionality to put on the client and server sides of a distributed
application
[Bernstein 96].
The key to overcoming these three problems is to fully understand both the application problem and the value of middleware services that can enable the distributed application. To determine the types of middleware services required, the developer must identify the functions required, which fall into one of three classes:
- Distributed system services, which include critical communications, program-to-program, and data management services. This type of service includes RPCs, MOMs and ORBs.
- Application enabling services, which give applications access to
distributed services and the underlying network. This type of services
includes transaction monitors (see Transaction Processing Monitor Technology) and database services such as Structured Query Language (SQL).
- Middleware management services, which enable applications and system
functions to be continuously monitored to ensure optimum performance of the
distributed environment
[Schreiber 95].
A significant number of middleware services and vendors exist. Middleware
applications will continue to grow with the installation of more heterogeneous
networks. An example of middleware in use is the Delta Airlines Cargo Handling
System, which uses middleware technology to link over 40,000 terminals in 32
countries with UNIX services and IBM mainframes. By 1999, middleware sales are
expected to exceed $6 billion
[Client 95].
The costs of using middleware technology (i.e., license fees) in system development are entirely dependent on the required operating systems and the types of platforms. Middleware product implementations are unique to the vendor. This results in a dependence on the vendor for maintenance support and future enhancements. This reliance could have a negative effect on a system's flexibility and maintainability. However, when evaluated against the cost of developing a unique middleware solution, the system developer and maintainer may view the potential negative effect as acceptable.
This technology is classified under the following categories. Select a
category for a list of related topics.
|
Name of technology
|
Middleware
|
|
Application category
|
Client/Server (AP.2.1.2.1)
Client/Server Communication (AP.2.2.1)
|
|
Quality measures category
|
Interoperability (QM.4.1)
|
|
Computing reviews category
|
Distributed Systems (C.2.4)
Network Architecture and Design (C.2.1)
Database Management Languages (D.3.2)
|
|
[Bernstein 96]
|
Bernstein, Philip A. "Middleware: A Model for Distributed Services."
Communications of the ACM 39, 2 (February 1996): 86-97.
|
|
[Client 95]
|
"Middleware Can Mask the Complexity of your Distributed Environment."
Client/Server Economics Letter 2, 6 (June 1995): 1-5.
|
|
[Eckerson 95]
|
Eckerson, Wayne W. "Three Tier Client/Server Architecture: Achieving
Scalability, Performance, and Efficiency in Client Server Applications."
Open Information Systems 10, 1 (January 1995): 3(20).
|
|
[Schreiber 95]
|
Schreiber, Richard. "Middleware Demystified." Datamation 41, 6 (April
1, 1995): 41-45.
|
Mike Bray, Lockheed-Martin Ground Systems
25 June 97: modified/updated OLE/COM reference to COM/DCOM
10 Jan 97 (original)
The Software
Engineering Institute (SEI) is a federally funded research and
development center sponsored by the U.S. Department of Defense
and operated by Carnegie Mellon University.
Copyright
2007
by Carnegie Mellon University
Terms of Use
URL: http://www.sei.cmu.edu/str/descriptions/middleware_body.html
Last Modified: 11 January 2007
|