Hamish has a very interesting, and thorough post on middleware here.
Here's what he says about middleware:
"essentially it is a series of tools that are designed to link existing information and applications"
And the big guys are deep into middleware of course, again by Hamish:
"IBM with Websphere, Microsoft with .net and in the ERP space, SAP with Netweaver, and now Oracle with Fusion, when it is developed."
Actually IBM software equals more or less middleware, that's their main focus - leave the applications to others. They do not like what SAP and Oracle are doing now, middleware is theirs they say.
Now, what's all this about middleware, why at all?
Essentially because applications historically has information and logic inseparable. Thus to make two or more applications work in unison you need an active layer to coordinate the happenings, and the data.
The interactions between such could look like this:
40 applications means 780 relationships. Nice for the middleware suppliers, bad for the users.
Is that pretty stupid or what?
Yes it is.
Split the logic and information. Then 40 applications (or logic engines if you will) using one set of raw data equals 40 independent relationships. Change any application (or logic) and it will have no effect on anything else. Like this:
Goodbye middleware. Hello simplicity.