Middleware
From Wikipedia, the free encyclopedia
| This article may require cleanup to meet Wikipedia's quality standards. Please improve this article if you can. (April 2006) |
Middleware is the software that sits 'in the middle' between applications (e.g. a word processing program) working on different operating systems (Unix, Windows, z/OS, etc.). It is similar to the middle layer of a three tier single system architecture, except 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 of course can only be provided by the operating system itself, some functionality previously provided by separately sold middleware is now integrated in operating systems. The typical example is the TCP/IP stack for telecommunications, nowadays included in virtually every operating system.
Middleware is computer software that connects software components or applications. The software consists of a set of enabling services that allow multiple processes running on one or more machines to interact across a network. This technology evolved to provide for interoperability in support of the move to client/server architecture. It is used most often to support complex, distributed applications. It includes web servers, application servers, content management systems, 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.
The term middleware is sometimes considered a buzzword.
Middleware in Simulation Technology. In Simulation, "middleware" is a term 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 (RTI), hence `middle' in its title. 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
Contents |
Middleware is the enabling technology of Enterprise application integration. It describes a piece of software that connects two or more software applications so that they can exchange data.
ObjectWeb defines middleware as: "The software layer that lies between the operating system and the applications on each side of a distributed computing system in a network."[1]
Middleware is a relatively new addition to the computing landscape. It gained popularity in the 1980s as a solution to the problem of how to link new applications to older legacy systems, although the term had been in use since 1968.[2] It also facilitated distributed processing – the connection of multiple applications to create a larger application, usually over a network.
IBM and BEA are the most important vendors in the middleware software. In addition to the existing vendors updating their wares to address the newly expanded vision, vendors such as TIBCO, Mercator Software, Crossflo, Vitria and webMethods were specifically founded to provide Web-oriented middleware tools. Groups such as the Apache Software Foundation and the ObjectWeb Consortium encourage the development of open source middleware.
Middleware services provide a more functional set of Application Programming Interface(API) to allow an application to:
- Locate transparently across the network thus providing interaction with another service or application
- Be independent from network services
- Be reliable and available always
when compared to the operating system and network services.
Hurwitz's classification system organizes the many types of middleware that are currently available.[citation needed] These classifications are based on scalability and recoverability:
- Remote Procedure Call (RPCs) — Client makes calls to procedures running on remote systems. Can be asynchronous or synchronous.
- Message Oriented Middleware (MOM) — Messages sent to the client are collected and stored until they are acted upon, while the client continues with other processing.
- Object Request Broker (ORB) — This type of middleware makes it possible for applications to send objects and request services in an object-oriented system.
- SQL-oriented Data Access — middleware between applications and database servers.
Other sources include these additional classifications:
- Transaction processing (TP) monitors — Provides tools and an environment to develop and deploy distributed applications.[3]
- Application servers — software installed on a computer to facilitate the serving (running) of other applications.
- Enterprise Service Bus — An abstraction layer on top of an Enterprise Messaging System.
- ^ Krakowiak, Sacha. What's middleware?. ObjectWeb.org. Retrieved on 2005-05-06.
- ^ Gall, Nick (July 30, 2005). Origin of the term middleware.
- ^ Definition of middleware. Carnegie Mellon: Software Engineering Institute.