1. (firmware) Products that in some sense occupy a position between hardware and software. It is usually system software held in ROM. In particular where microcoded systems are used, the actual microcode is sometimes spoken of as middleware.
2. Software that occupies a position between the operating system and applications programs, particularly in a distributed system. The term is often used for a library of infrastructure routines that provide services for application developers.