Middleware is computer software that connects software components or people and their applications. 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. It includes web servers, application servers, 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.
Middleware sits "in the middle" between application software that may be working on different operating systems. It is similar to the middle layer of a three-tier single system architecture, except that it is stretched across multiple systems or applications. Examples include EAI software, 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 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.
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 run-time infrastructure. 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.
Software that provides a link between separate software applications. Middleware is sometimes called plumbing because it connects two applications and passes data between them. Middleware allows data contained in one database to be accessed through another. This definition would fit enterprise application integration and data integration software.
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 newer applications to older legacy systems, although the term had been in use since 1968. It also facilitated distributed processing, the connection of multiple applications to create a larger application, usually over a network.
IBM, Red Hat, and Oracle Corporation are major vendors providing middleware software. Vendors such as Axway, SAP, TIBCO, Informatica, Pervasive and webMethods were specifically founded to provide Web-oriented middleware tools. Groups such as the Apache Software Foundation, OpenSAF and the ObjectWeb Consortium (now OW2) encourage the development of open source middleware. Microsoft .NET “Framework” architecture is essentially “Middleware” with typical middleware functions distributed between the various products, with most inter-computer interaction by industry standards, open APIs or RAND software licence. Solace Systems provides middleware in purpose-built hardware for implementations that may experience scale or speed limitations when using software.
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
when compared to the operating system and network services.
Middleware offers some unique technological advantages for business and industry. For example, traditional database systems are usually deployed in closed environments where users access the system only via a restricted network or intranet (e.g., an enterprise’s internal network). With the phenomenal growth of the World Wide Web, users can access virtually any database for which they have proper access rights from anywhere in the world. Middleware addresses the problem of varying levels of interoperability among different database structures. Middleware facilitates transparent access to legacy database management systems (DBMSs) or applications via a web server without regard to database-specific characteristics.
Businesses frequently use middleware applications to link information from departmental databases, such as payroll, sales, and accounting, or databases housed in multiple geographic locations. In the highly competitive healthcare community, laboratories make extensive use of middleware applications for data mining, laboratory information system (LIS) backup, and to combine systems during hospital mergers. Middleware helps bridge the gap between separate LISs in a newly formed healthcare network following a hospital buyout.
Wireless networking developers can use middleware to meet the challenges associated with wireless sensor network (WSN), or WSN technologies. Implementing a middleware application allows WSN developers to integrate operating systems and hardware with the wide variety of various applications that are currently available.
Middleware can help software developers avoid having to write application programming interfaces (API) for every control program, by serving as an independent programming interface for their applications. For Future Internet network operation through traffic monitoring in multi-domain scenarios, using mediator tools (middleware) is a powerful help since they allow operators, searchers and service providers to supervise Quality of service and analyse eventual failures in telecommunication services.
Finally, e-commerce uses middleware to assist in handling rapid and secure transactions over many different types of computer environments. In short, middleware has become a critical element across a broad range of industries, thanks to its ability to bring together resources across dissimilar networks or computing platforms.
In 2004 members of the European Broadcasting Union (EBU) carried out a study of Middleware with respect to system integration in broadcast environments. This involved system design engineering experts from 10 major European broadcasters working over a 12 month period to understand the effect of predominantly software based products to media production and broadcasting system design techniques. The resulting reports Tech 3300 and Tech 3300s were published and are freely available from the EBU web site.
Types of middleware
Message Oriented Middleware
Message Oriented Middleware (MOM) is middleware where transactions or event notifications are delivered between disparate systems or components by way of messages, often via an enterprise messaging system. With MOM, messages sent to the client are collected and stored until they are acted upon, while the client continues with other processing.
Enterprise messaging system
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
 Intelligent Middleware (IMW) provides real-time intelligence and event management through intelligent agents. The IMW manages the real-time processing of high volume sensor signals and turns these signals into intelligent and actionable business information. The actionable information is then delivered in end-user power dashboards to individual users or is pushed to systems within or outside the enterprise. It is able to support various heterogeneous types of hardware and software and provides an API for interfacing with external systems. It should have a highly scalable, distributed architecture which embeds intelligence throughout the network to transform raw data systematically into actionable and relevant knowledge. It can also be packaged with tools to view and manage operations and build advanced network applications most effectively.
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(s) that are 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
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 provides communication services and integration interface software/firmware that operates between embedded applications and the real time op.
Other sources include these additional classifications:
- 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.
- Comparison of business integration software
- Middleware Analysts
- Service Oriented Architecture
- Enterprise Service Bus
- Event-driven SOA
- ^ Krakowiak, Sacha. "What's middleware?". ObjectWeb.org. http://middleware.objectweb.org/. Retrieved 2005-05-06.
- ^ Gall, Nick (July 30, 2005). "Origin of the term middleware". http://ironick.typepad.com/ironick/2005/07/update_on_the_o.html.
- ^ Peng, C, Chen, S, Chung, J, Roy-Chowdhury, A, and Srinivasan, V. (1998). Accessing existing business data from the World Wide Web. IBM Systems Journal, 37(1), 115-132. Retrieved March 7, 2009, from ABI/INFORM Global database. (Document ID: 26217517)
- ^ Bougettaya, A, Malik, Z, Rezgui, A, and Korff, L. (2006). A Scalable Middleware for Web Databases. Journal of Database Management, 17(4), 20-39,41-46. Retrieved March 7, 2009, from ABI/INFORM Global database. (Document ID: 1155773301).
- ^ Bagwell, H. (2008). Middleware: providing value beyond autoverification[dead link]. IVDT. Retrieved March 3, 2009.
- ^ 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
- ^ Kai Oswald Seidler. "MOMENT". Fp7-moment.eu. http://www.fp7-moment.eu/. Retrieved 2010-08-19.
- ^ Charles, J. (1999). Middleware moves to the forefront(subscription required). Technology News. Retrieved March 2, 2009.
- ^ "EBU middleware report Tech 3300" (PDF). http://tech.ebu.ch/docs/tech/tech3300.pdf. Retrieved 2010-08-19.
- ^ "EBU middleware reports Tech 3300s" (PDF). http://tech.ebu.ch/docs/tech/tech3300s.pdf. Retrieved 2010-08-19.
- ^ "Microsoft on the Enterprise Service Bus (ESB)". August 2005. http://msdn.microsoft.com/en-us/library/aa475433(BTS.10).aspx. "The ESB label simply implies that a product is some type of integration middleware product that supports both MOM and Web services protocols."
- ^ "Choosing the Right Middleware"
- ^ Gareth Tyson. A Middleware Approach to Building Content-Centric Applications. PhD Thesis, Lancaster University (2010).
- ^ Hurwitz, Judith (January, 1998). "Sorting Out Middleware". DBMS 11.1. Archived from the original on 2006-10-17. http://web.archive.org/web/20061017153344/http://www.dbmsmag.com/9801d04.html. Retrieved 2009-01-20.
- Web Middleware Blog
- Web Middleware Wiki
- Internet2 Middleware Initiative
- Dynamically Self Configuring Automotive Systems
- Middleware Abstraction Layer
- SWAMI - Swedish Alliance for Middleware Infrastructure
- Element (commercial offering from Enea)
- dSPEED (commercial offering from Enea)
- Open Middleware Infrastructure Institute (OMII-UK)
- Common XML Vocabularies
- Specific XML Vocabularies
- European Broadcasting Union (EBU) Middleware report.
- More detailed supplement to the European Broadcasting Union Middleware report.
- ObjectWeb - international community developing open-source middleware
- C++ Middleware Writer - free on line code generation
- LatestBit SmartObjects - Free and Open Source C++/Java Middleware
Wikimedia Foundation. 2010.
Look at other dictionaries:
Middleware — es un software que asiste a una aplicación para interactuar o comunicarse con otras aplicaciones, software, redes, hardware y/o sistemas operativos. Éste simplifica el trabajo de los programadores en la compleja tarea de generar las conexiones… … Wikipedia Español
Middleware — (deutsch „Diensteschicht“ oder „Zwischenanwendung“) bezeichnet in der Informatik anwendungsneutrale Programme, die so zwischen Anwendungen vermitteln, dass die Komplexität dieser Applikationen und ihre Infrastruktur verborgen wird. Man kann… … Deutsch Wikipedia
Middleware — Middleware, Software für den objektorientierten, direkten Datenaustausch zwischen Anwendungsprogrammen, die unter verschiedenen Betriebssystemen oder in heterogenen Netzen arbeiten. Beispiele für Middleware Standards sind Corba, Java RMI oder… … Universal-Lexikon
middleware — The generic term for those software technologies that sit somewhere between operating systems (like Windows) and applications programs (like word processors or web browsers), and that allow the seamless sharing of data, applications and other… … Law dictionary
Middleware — En architecture informatique, un middleware (anglicisme) est un logiciel tiers qui crée un réseau d échange d informations entre différentes applications informatiques. Le réseau est mis en œuvre par l utilisation d une même technique d échange d … Wikipédia en Français
middleware — A category of software that shields an application from the underlying mechanics of a network so that the developers of an application do not have to know in advance which network and communications protocols will be used. Middleware is often… … Dictionary of networking
middleware — tarpinė programinė įranga statusas T sritis informatika apibrėžtis Programinė įranga, atliekanti tarpininko vaidmenį keičiantis duomenimis tarp skirtingų programų, sistemų, platformų, kai tiesioginis keitimasis tarp jų neįmanomas arba nėra… … Enciklopedinis kompiuterijos žodynas
Middleware — … Википедия
middleware — noun a) software that functions at an intermediate layer between applications and operating system or database management system, or between client and server b) Networking software/hardware that is deployed in the middle of, as opposed to… … Wiktionary
Middleware — Software that links big databases to consumer products. For example, a website … Financial and business terms