Middleware is a distributed software needed to support interaction between clients and servers. In short, it is the software that is in the middle of the Client/Server systems and it acts as a bridge between the clients and servers. It starts with the API set on the client side that is used to invoke a service and it covers the transmission of the request over the network and the resulting response.
It neither includes the software that provides the actual service - that is in the servers domain nor the user interface or the application login - that's in clients domain.
It waits for client-initiated requests. Executes many requests at the same time. Takes care of VIP clients first. Initiates and runs background task activity. Keeps running. Grown bigger and faster.
It treats all processors as equal. Any processor can do the work of any other processor. Applications are divided into threads that can run concurrently on any available processor. Any processor in the pool can run the OS kernel and execute user-written threads.
It is needed to accomplish a particular Client/Server type of services which includes:-
Database specific middleware
OLTP specific middleware
Groupware specific middleware
Object specific middleware
Internet specific middleware and
System management specific middleware.
It includes the communication stacks, distributed directories, authentication services, network time, RPC, Queuing services along with the network OS extensions such as the distributed file and print services.