Middleware is the software component that acts as a interface between Operating Systems and Applications. This software consists of a set of enabling services that allow multiple processes running on one or more machines to interact across a network. This software actually hides the heterogeneity of the underlying architecture such as Operating Systems and Other Low level Applications as well as hardware of a computer system. This technology evolved to provide for interoperability in support of the move to coherent distributed architectures, which are used most often to support and simplify complex, distributed applications. The Middleware technology includes web servers, application servers, and similar tools that support application development and delivery. Middleware is especially integral to modern information technology based on XML, SOAP, Web services, and service-oriented architecture.

Middleware software sits between an application software(s) and the underlying different operating systems. It is similar to the middle layer of a three-tier single system architecture, except that it is stretched across multiple systems or applications. Examples include database systems, telecommunications software, transaction monitors, and messaging-and-queueing software.

The distinction between operating system and middleware functionality is, to some extent, arbitrary. While core kernel functionality can only be provided by the operating system itself, some functionality previously provided by separately sold middleware is now integrated in operating systems. A typical example is the TCP/IP stack for telecommunications, nowadays included in virtually every operating system.

In simulation technology, middleware is generally used in the context of the high level architecture (HLA) that applies to many distributed simulations. It is a layer of software that lies between the application code and the run-time infrastructure. Middleware generally consists of a library of functions, and enables a number of applications – simulations or federates in HLA terminology – to page these functions from the common library rather than re-create them for each application.

Different Types of Middleware edit

Remote Procedure Call edit

Client makes calls to procedures running on remote systems. Can be asynchronous or synchronous.

Message Oriented Middleware edit

Messages sent to the client are collected and stored until they are acted upon, while the client continues with other processing.

Object Request Broker edit

This type of middleware makes it possible for applications to send objects and request services in an object-oriented system.

SQL-oriented Data Access edit

middleware between applications and database servers. it can be also acts like broker for networking connections

Embedded Middleware edit

communication services and integration interface software/firmware that operates between embedded applications and the real time operating system.