noun: (computing) Software that functions at an intermediate layer between applications and operating system or database management system, or between client and server.
noun: (computing) Networking software or hardware that is deployed in the middle of, as opposed to serviced by, a packet network to enhance or provide some network function, such as caching, filtering, or firewall functionality.