Middleware
Middleware (from the English , lehnübersetzt middleware or transferred services layer ) referred to in the computer science generic programs , so between applications across is that the complexity of these applications and their infrastructure are hidden. Middleware can also be used as a distribution platform, i.e. H. as a protocol (or protocol bundle) on a higher layeras that of ordinary computer communication. In contrast to lower level network services, which handle simple communication between computers, middleware supports communication between processes .
In the field of computer game development , on the other hand, subsystems (or so-called subsystems ) for subareas such as game physics are referred to as middleware . This middleware is often produced and offered by third-party developers.
Functionality and use
Middleware represents a platform in a complex software system which, as a "service provider", enables other otherwise decoupled software components to exchange data. This communication usually takes place with the help of a network that is made transparent by the middleware for the software components using it. Middleware works at a high level within the layer model : Your task is therefore not the low-level communication for individual bytes (as is already provided by an operating system , for example ). Middleware organizes the transport of complex data (so-called messaging ), mediates function calls between the components (so-called remote procedure calls ), provides transaction security via otherwise independent subsystems (function as a transaction monitor ), etc.
Middleware software is available as standard software from several manufacturers. Technically, it provides software interfaces or services . A software component A that would like to use the middleware layer in order to communicate with a software component B can use these interfaces. The corresponding calls are passed on by the middleware software component via a network. As a rule, common network standard protocols are used - almost always IP and TCP , usually HTTP based on them, and then based on them. a. SOAP or Web Services - used. On the receiving end, the middleware converts the request into a function call to software B. If necessary, it forwards the “response” from component B to component A via the same route.
The disadvantage of middleware is its size and clumsiness. The programmer can only rarely optimize the performance of these programs.
Middleware categories
A rough subdivision for a better understanding:
- Application-oriented middleware
- In addition to communication, the main focus is on supporting distributed applications . Examples are general architectures such as CORBA , Java EE or .NET , as well as complete operating systems such as B.
- Communication-oriented middleware
- The focus here is on abstraction from network programming. Examples are RPC , RMI , Web Service
- Message-oriented middleware
- Message-oriented middleware is not working with method or function calls , but on the exchange of messages ( messages ) . The message format specifies the middleware used. Message-oriented middleware can work both synchronously and asynchronously . In an asynchronous variant, a queue is used in which the message producer places his messages. A consumer can then consume the messages. Advantages include a. the complete decoupling of the message sender and receiver and that applications can continue to work even if subcomponents have failed. An architecture for message-oriented middleware is z. B. JMS before.
Typical middleware products
- ColdFusion - Adobe ColdFusion
- Application Link Enabling (ALE) from SAP
- Common Object Request Broker Architecture for short CORBA from the Object Management Group (OMG)
- D-Bus from the freedesktop.org project
- Element of ENEA
- EAI products: most of them contain middleware functionality (and additional modeling tools and runtime engines for processes)
- Enterprise Service Bus from Oracle
- E2E Bridge Integration Middleware
- Fusion of Oracle
- WildFly Application Server from RedHat JBoss
- Membrain Real Time Connector (RTC) from Membrain
- MQSeries from IBM
- ObjectBroker from BEA Systems , ( Object Request Broker )
- Orchestra, a Message Oriented Middleware from soffico GmbH
- SAP Process Integration from SAP
- TIBCO from TIBCO
- Transconnect from SQL Projekt AG
- Transparent Inter Process Communication ( Open Source , originally developed by Ericsson )
- VisiBroker from Borland
- BusinessWare from Vitria
- WebSphere Application Server from IBM , ( Java EE Server)
- X-Gen from Swissrisk AG
- xmlBlaster ( open source )
- OPC router from inray (Industry 4.0 Middleware)
See also
- Distributed Computing Environment (DCE)
- Enterprise application integration
- federated information system
- IIOP
- Open Database Connectivity (ODBC)
- Portal (IT)
- System software
- Distributed system
Web links
- ObjectWeb (English)
Individual evidence
- ↑ after: W. Ruh u. a .: Enterprise Application Integration . Wiley, 2001.
- ↑ https://orchestra.soffico.de
- ↑ xmlBlaster (English) - official homepage; As of December 5, 2011
- ↑ https://www.opc-router.de