Middleware is a required component of true distributed systems--systems that go beyond client/server to three or more (n-tier) environments.
One short definition of middleware (from the whitepaper below) is:
Middleware is an enabling layer of software that resides between the business application and the networked layer of heterogeneous platforms and protocols. It decouples business applications from any dependencies on the plumbing layer, which consists of heterogeneous operating systems, hardware platforms and communication protocols.
This project examines only middleware products used with the WWW--many articles and examples of middleware are not specific to the web. However, the web, because of the current poor security and reliability is not appropriate for all middleware solutions, though it is attractive otherwise (see article or whitepaper summary from Ovum, where you can purchase the complete whitepaper for only $2,775).
Middleware is designed to be invisible to the end-user--the purpose of using middleware products is to separate the client from the data, and to maintain business rules and logic in the middle layer, between the user and the data store. Another function is to ensure communication and translation between multiple operating environments, allowing each functional unit of an application to reside in the environment best suited to its tasks.
Middleware--The Essential Component for Enterprise Client/Server Applications - a good whitepaper from Digital OpenVMS Systems
Three-tier Client/server Architecture - another good whitepaper from Digital OpenVMS Systems
OpenVMS and Three-Tier Client/Server Computing - another whitepaper from Digital OpenVMS Systems (includes comparisons of products from major vendors)
The simplest n-tier system includes three layers: 1) a web client with GUI for best input/output for user; 2) middleware applications housing business rules and logic; and 3) database(s) housing business information (this could be a group of databases of different types--of particular interest is a combination of legacy systems and newer systems).
3-tier article above describes the three logical (not necessarily phyical) layers as:
Benefits of n-tier layout/important points
The advantages and disadvantages of the following approaches for middleware products are the same as the advantages and disadvantages of each product/protocol in general. For instance, Java is good because of its portability and relatively quick development time. A disadvantage might be speed. Because CORBA is only a set of specifications, both the advantage and disadvantage is that implementation is up to the user, so it may be a lot of work up front, but in the end it may be worth the effort. Microsoft's products based on OLE/DCOM are easy to get up and running, but are less flexible than a CORBA implementation. Likewise, the multitude of third-party products allow systems to be developed more quickly, but may not provide all of the functionality desired.
Links to more information about these approaches:
Why mainframes are still important (NY Times, 5/18/98)
Client/Server applications on IBM mainframe presentation from TDC531 last quarter
Middleware articles from CMPNet
Middleware articles from Network Computing Online including:
Netscape's CORBA/IIOP Developer Central
Microsoft Access (using Active Server Pages and ActiveX)
Lotus Notes
DB2
Kevin Crosby, 5/27/98