That which is hidden from the user.
Middleware is the middle-man that sits between two or more hulking systems which are used to being the center of attention. The middleware takes data from one system, and gives it to the other system in a way it likes.
This is more complicated than it first appears.
Middleware can follow many different models. You can have MessageOrientedMiddleware, ObjectBroker, InterfaceEngine?...
The leading middleware solution are TransactionProcessingMonitors, with BigBlue CustomerInformationControlSystem taking up a third of that market share, followed by number 2 TuxedoMonitor (12%), and Oracle is in the third place. See http://www.theinquirer.net/?article=24939
Due to quick changing scene in matters related to DistributedComputing, some analysts are saying it is cheaper to throw away existing products (TooOld) and adopt more recent solutions. See http://www.computerweekly.com/articles/article.asp?liArticleID=131351&liArticleTypeID=1&liCategoryID=6&liChannelID=9&liFlavourID=1&sSearch=&nPage=1
Battleground between the Titans
JavaPlatform Vs MicrosoftWindowsPlatform
In an article on EclipseIde at http://www.eweek.com/article2/0,1895,1818211,00.asp, BigBlue the top MiddleWare vendor commented on a piece of history for the Eclipse name like this:
MiddleWare in game development
In game development, MiddleWare refers to third party software libraries and modules which sit between the hardware's OS and the game programmers code. Until recently, MiddleWare was a dirty word in game development. But the popularity of MiddleWare libraries such as RenderWare, MathEngine?, Havok, and so on have changed things. MiddleWare usually includes tool sets that enable cross platform conversions from source data. MiddleWare is not usually used to describe operating system extensions such as DirectX for Windows or OpenGL for other operating systems.
I am not sure whether it is really DistributedComputing. Probably a more appropriate term is CollaborativeComputing?? The first term to me means designing a single application system that is distributed in implementation, but the MiddleWare as I know it is there more to get value from integrating information from existing applications that may be on different platforms and technologies. An example is BizTalk which is part of MicroSoft DistributedInternetArchitecture, but as a product it was delivered later. PleaseComment
-- DavidLiu