middleware anything between the kernel and user applications is considered middleware middleware is computer software that provides services to software applications beyond those available from the operating system it can be described as software glue middleware makes it easier for software developers to implement communication and inputoutput so they can focus on the specific purpose of their application it gained popularity in the 1980s as a solution to the problem of how to link newer applications to older legacy systems although the term had been in use since 1968 in distributed applications middleware distributed applications software architecture middleware the term is most commonly used for software that enables communication and management of data in distributed applications an ietf workshop in 2000 defined middleware as those services found above the transport ie over tcpip layer set of services but below the application environment ie below applicationlevel apis objectweb defines middleware as the software layer that lies between the operating system and applications on each side of a distributed computing system in a network database access services are often characterised as middleware some of them are language specific implementations and support heterogeneous features and other related communication features distributed computing system middleware can loosely be divided into two categoriesthose that provide humantime services such as web request servicing and those that perform in machinetime this latter middleware is somewhat standardized through the service availability forum other examples the term middleware is used in other contexts as well middleware is sometimes used in a similar sense to a software driver an abstraction layer that hides detail about hardware devices or other software from an application the android operating system uses the linux kernel at its core and also provides an application framework that developers incorporate into their applications in addition android provides a middleware layer including libraries that provide services such as data storage screen display multimedia and web browsing because the middleware libraries are compiled to machine language services execute quickly middleware libraries also implement devicespecific functions so applications and the application framework need not concern themselves with variations between various android devices androids middleware layer also contains the art virtual machine and its core java application libraries game engine software such as gamebryo and renderware are sometimes described as middleware because they provide many services to simplify game development 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 runtime infrastructure middleware generally consists of a library of functions and enables a number of applicationssimulations or federates in hla terminologyto page these functions from the common library rather than recreate them for each application wireless networking developers can use middleware to meet the challenges associated with a wireless sensor network wsn implementing a middleware application allows wsn developers to integrate operating systems and hardware with the wide variety of various applications that are currently available the qnx operating system offers middleware for providing multimedia services for use in automobiles aircraft and other environments radiofrequency identification rfid software toolkits provide middleware to filter noisy and redundant raw data look up middleware in wiktionary the free dictionary languageagnostic third party software component vtemajor fields of computer sciencenote this template roughly follows the 2012 acm computing classification systemhardware printed circuit board peripheral integrated circuit very large scale integration systems on chip socs energy consumption green computing electronic design automation hardware acceleration computer systemsorganization computer architecture embedded system realtime computing dependability networks network architecture network protocol network components network scheduler network performance evaluation network service software organization interpreter middleware virtual machine operating system software quality software notationsand tools programming paradigm programming language compiler domainspecific language modeling language software framework integrated development environment software configuration management software library software repository software development software development process requirements analysis software design software construction software deployment software maintenance programming team opensource model theory of computation model of computation formal language automata theory computational complexity theory logic semantics algorithms algorithm design analysis of algorithms algorithmic efficiency randomized algorithm computational geometry mathematicsof computing discrete mathematics probability statistics mathematical software information theory mathematical analysis numerical analysis informationsystems database management system information storage systems enterprise information system social information systems geographic information system decision support system process control system multimedia information system data mining digital library computing platform digital marketing world wide web information retrieval security cryptography formal methods security services intrusion detection system hardware security network security information security application security humancomputerinteraction interaction design social computing ubiquitous computing visualization accessibility concurrency concurrent computing parallel computing distributed computing multithreading multiprocessing artificialintelligence natural language processing knowledge representation and reasoning computer vision automated planning and scheduling search methodology control method philosophy of artificial intelligence distributed artificial intelligence machine learning supervised learning unsupervised learning reinforcement learning multitask learning crossvalidation graphics animation rendering image manipulation graphics processing unit mixed reality virtual reality image compression solid modeling appliedcomputing ecommerce enterprise software computational mathematics computational physics computational chemistry computational biology computational social science computational engineering computational healthcare digital art electronic publishing cyberwarfare electronic voting video games word processing operations research educational technology document management book category portal wikiproject commons authority control gnd 44260672 