· Computer software that connects software components or some people and their applications.
· Sometimes called plumbing because it connects two applications and passes data between them.
· The software consists of a set of services that allows multiple processes running on one or more machines to interact.
· This technology evolved to provide for interoperability in support of the move to coherent distributed architectures, which are most often used to support and simplify complex distributed applications.
· Includes web servers, application servers, and similar tools that support application development and delivery.
· Especially integral to modern information technology based on XML, SOAP, Web services, and service-oriented architecture.
· Middleware sits "in the middle" between application software that may be working on different operating systems.
· Examples include EAI software, telecommunications software, transaction monitors, and messaging-and-queuing software.
· Distinction between operating system and middleware functionality is, to some extent, arbitrary.
· 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.
· 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.
· A layer of software that lies between the application code and the run-time infrastructure.
Use of middleware
Middleware services provide a more functional set of application programming interfaces to allow an application to:- Locate transparently across the network, thus providing interaction with another service or application
- Filter data to make them friendly usable or public via anonymization process for privacy protection (for example)
- Be independent from network services
- Be reliable and always available
- Add complementary attributes like semantics
Types of middleware
· Message-oriented Middleware
- Message-oriented middleware is middleware where transactions or event notifications are delivered between disparate systems or components by way of messages, often via an enterprise messaging system.
· Enterprise messaging system
- An enterprise messaging system is a type of middleware that facilitates message passing between disparate systems or components in standard formats, often using XML, SOAP or web services.
· Message broker
- Part of an enterprise messaging system, message broker software may queue, duplicate, translate and deliver messages to disparate systems or components in a messaging system.
· Enterprise service bus
- Enterprise Service Bus (ESB) is defined by the Burton Group as "some type of integration middleware product that supports both MOM and Web services".
· Content-centric Middleware
- Content-centric middleware provides a simple provide/consume abstraction through which applications can issue requests for uniquely identified content, without worrying about where or how it is obtained. Juno is one example, which allows applications to generate content requests associated with high-level delivery requirements. The middleware then adapts the underlying delivery to access the content from the source that is best suited to matching the requirements. This is therefore similar to Publish/subscribe middleware, as well as the Content-centric networking paradigm.
· Hurwitz classification system
- Judith Hurwitz created a classification system for middleware in her article Sorting Out Middleware.
· Remote procedure call
- With Remote Procedure Call middleware, a client makes calls to procedures running on remote systems. Can be asynchronous or synchronous.
· Message oriented Middleware
- With Message Oriented Middleware, messages sent to the client are collected and stored until they are acted upon, while the client continues with other processing.
· Object Request Broker
- With Object Request Broker middleware, it is possible for applications to send objects and request services in an object-oriented system.
· SQL-Oriented Data Access
- SQL-oriented Data Access is middleware between applications and database servers.
· Embedded middleware
- Embedded middleware provides communication services and integration interface software/firmware that operates between embedded applications and the real time op.
· Other
- Transaction processing monitors — Provides tools and an environment to develop and deploy distributed applications.
- Application servers — software installed on a computer to facilitate the serving (running) of other applications.
References:
http://en.wikipedia.org/wiki/Middleware