In network architecture, a middleware is a layer of software that creates a network for exchanging information between different computer applications. The network is implemented by using the same technique for exchanging information in all applications involved using software components.
The middleware software is a component for communications between applications regardless of the computers involved and whatever the hardware and software characteristics of computer networks, network protocols, and operating systems involved. The most common techniques for exchanging information are exchanging messages, calling remote procedures and manipulation of distant objects.
The middleware is typically used as cement to connect disparate applications of information systems of enterprises and institutions.
The exchange of messages, the call handling procedures and third objects are three techniques supported by the middleware, which enables computer applications to interact, cooperate and share information.
In a middleware message (message-oriented middleware), computer applications communicate by exchanging messages in a manner similar to email: a computer application sends a message that is then transmitted to the destination application by the middleware software components while the sending application performs other treatments (asynchrony).
The content of the message is formatted by the issuer under an agreement pre-determined and analyzed automatically by the destination application in accordance with this Convention. The XML data format is often used for messages.
The message can be sent to an application chosen by the sender, a list of subscribed applications or all applications that exploit the middleware. Messages are sorted by priority and placed in queue (tail) by the middleware software components.
WebSphere MQ, IBM, is a middleware software component to the message.
WHD is a programming interface for middleware message. OW2 JORAM is a software that implement this interface.
Middleware Remote procedure call
With a middleware-based remote procedure calls (remote procedure call), functions (procedures) that exist in a given computer application can be run on demand by other applications. The procedure call within an application is a software mechanism that can usually be achieved with any procedural programming language. It is different when the call is made between two applications.
In the mechanism of remote procedure call, the middleware software components created in the calling application software component strain (stub) whose functions are identical to those of the computer application called. Then the procedure calls made by the calling application on the stump are deflected by the middleware software components to the application called in which the components of the middleware has created another similar strain to the caller.
The result of the execution of the function is then transmitted from the caller to the caller by the same mechanisms. The middleware component uses the method of serialization (marshalling). The network protocol RPC of Sun Microsystems used to make calls remotely.
SOAP is a technique call remotely on web servers based on XML and HTTP – protocol web servers. Technical liaison between procedure calls and remote manipulation of objects, RMI is a software component to perform remote procedure calls on objects in the Java programming language.
Middleware – Manipulating objects
With middleware objects, a given computer application can manipulate objects – object-oriented programming – another application. These manipulations induce changes in treatment and information in the application that owns the object.
The manipulation of objects by the application to which they belong is a regular operation of object oriented programming. Necessary mechanisms exist in all object-oriented programming languages. It is different from handling an object belonging to another application.
The mechanism of object manipulation third is similar to the mechanism of remote procedure call: middleware components created in the computer application that uses the object (client) strain (stub) thereof. Then the operations performed on the strain components are deflected by the middleware to the application that owns the object (the supplier).
The middleware components created in the application provider object that contains the object being manipulated and instructions necessary to receive the exhibits – the skeleton. The skeleton is achieved using the mechanisms of inheritance of object-oriented programming.
Microsoft DCOM is a technique for manipulating remote objects based on the RPC network protocol. DCE is a middleware for object manipulation, the Object Management Group based on CORBA, a technology standardized by the same author.
By computer, a transaction is an indivisible sequence of operations – which must be executed entirely or not at all. Various components of middleware allow execution of transactions. They allow in particular the total cancellation of the transaction in case of failure. IBM CICS and MSDTC are middleware that enable execution of transactions.