Roughly, a layer of software between the network and the applications; middleware is also known as "glue". Middleware is notoriously hard to define. One of the most popular definitions is "the intersection of what network designers and application developers each do not want to do."
Software that mediates between an applications program and a network. It manages the interaction between disparate applications across the heterogeneous computing platforms. The Object Request Broker (ORB), software that manages communication between objects, is an example of a middleware program.
Middleware is a generic term for software which is situated between the server and the client in the traditional client/server architecture. In the CORBA world, such software is known as an "ORB." The client software can be a browser or another application. The application would be many times simpler and smaller, because most of the business "smarts" would be in objects in the ORB. This makes code changes easier to deploy because they would be deployed to the ORB and every client would start using the new application immediately.
Everything that lies between the client computer (e.g. a Windows workstation running web browser) and the server (e.g. a UNIX server running Oracle). The original Internet middleware was a Web Server and some CGI programs (often written in Perl).