Middleware

Middleware is considered anything between the kernel and the user applications. Functionality such as gesture recognition or speech recognition is usually processed by some middleware, and the results are transmitted to user applications.

Middleware is a computer software that provides services to software applications beyond those available from the operating system. It can be described as "software glues".[1] Middleware makes it easier for software developers to perform communication and input/output, so they can focus on the specific purpose of their application. Middleware is the software that connects software components or enterprise applications. Middleware is the software layer that lies between the operating system and the applications on each side of a distributed computer network. Typically, it supports complex, distributed business software applications.

Middleware is the infrastructure which facilitates creation of business applications, and provides core services like concurrency, transactions, threading, messaging, and the SCA framework for service-oriented architecture (SOA) applications. It also provides security and enables high availability functionality to the enterprise.

Middleware includes Web servers, application servers, content management systems, and similar tools that support application development and delivery. It is especially integral to information technology based on Extensible Markup Language (XML), Simple Object Access Protocol (SOAP), Web services, SOA, Web 2.0 infrastructure, and Light weight directory access protocol(LDAP)

Middleware in distributed applications

Software architecture: Middleware

The term is most commonly used for software that enables communication and management of data in distributed applications. In this more specific sense middleware can be described as the dash in client-server, or the -to- in peer-to-peer.

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."[2] Services that can be regarded as middleware include enterprise application integration, data integration, message oriented middleware (MOM), object request brokers (ORBs), and the enterprise service bus (ESB).

Distributed computing system middleware can loosely be divided into two categories – those that provide human-time services (such as web request servicing) and those that perform in machine-time. This latter middleware is somewhat standardized through the Service Availability Forum and is commonly used in complex, embedded systems within telecom, defense and aerospace industries.

Other examples of middleware

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.

Boundaries

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. At the other end of the scale, the boundary between middleware and application has also moved. Digital TV middleware for example usually provides enough functionality so that no "application" is needed for end-users to be able to use the TV services.

Origins

Middleware 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.[5] It also facilitated distributed processing, the connection of multiple applications to create a larger application, usually over a network.

See also

Look up middleware in Wiktionary, the free dictionary.

References

  1. "What is Middleware?". Middleware.org. Defining Technology. 2008. Retrieved 2013-08-11.
  2. Krakowiak, Sacha. "What's middleware?". ObjectWeb.org. Retrieved 2005-05-06.
  3. Charlie Collins, Michael Galpin and Matthias Kaeppler, Android in Practice, Manning Publications, 2011
  4. Hadim, S. and Mohamed, N. (2006). Middleware challenges and approaches for wireless sensor networks. IEEE Distributed Systems Online vol 7. Issue 3. Retrieved March 4, 2009 from iEEE Distributed Systems Online
  5. Gall, Nick (July 30, 2005). "Origin of the term middleware".