Software that provides support for interactive applications.

Middleware is a general term for software that mediates between two systems.

In the case of interactive services, middleware provides a software environment and a defined interface between an interactive application and the underlying functions of the set-top box.

Essentially, middleware defines a ‘virtual’ set-top box that shields applications from the specific details of particular hardware.

Middleware enables interactive applications to run on set-top boxes from different manufacturers, potentially using different chip sets or operating systems, by providing a software abstraction layer that is independent of the underlying hardware. This provides a degree of application portability and enables an application to run on mixed networks with a variety of compatible receivers.

Middleware may support open or proprietary standards or a combination of both.

The middleware generally provides a virtual machine in which the interactive application executes with a runtime interpreter that translates the application code into machine code instructions that can be performed by the set-top box. Middleware software libraries encapsulate the hardware specific services provided by the receiver and communicate with the hardware through the underlying realtime operating system and device drivers.

Middleware is typically resident in the set-top box and is stored in non-volatile flash memory as part of the firmware of the system. The version of middleware installed may determine the capabilities of the set-top box. In some cases it is possible for the operator of the service or the manufacturer of the device to update the middleware remotely.