MIDDLEWARES The applications are dependent on the
middleware to process one or more functions
Middleware is any type of software that facilitates calls at a remote application.
communication between two or more software Calling application must halt processing to
systems. wait for the remote application to respond.
o Can be simple communication connection Asynchronous is preferred over synchronous
between applications. application integration solution.
o Can be as sophisticated as information
sharing and logic execution mechanisms. Synchronous middleware faces problems
Middleware is a technology that allows us to move such as network or remote server problems.
information between multiple enterprises. o Therefore, application has to stop
Middleware Models processing.
Synchronous middleware eats up bandwidth
There two types of middleware models: because several calls must be made across the
1. Logical network in support of a synchronous function
o Depicts how information moves throughout call.
the enterprise conceptually. Communication Models
2. Physical Connection-oriented communication
o Depicts both the actual method of o Two parties connect, exchange messages
information movement and the technology and then disconnect.
employed. o Typically, synchronous process, but it can
Point-to-Point Middleware be asynchronous.
Connectionless communication
Point-to-point middleware uses a simple pipe to allow one o Calling program does not enter into a
application to link to another application. connection with the target process.
o Receiving application simply acts on the
Provides point-to-point connection between a source
request, respond if required.
and a target application.
Direct communication
Disadvantages
o Middleware layer accepts the message
Inability to bind more than two applications from the calling program and passes it
Lacks ability to house application logic directly to the remote program.
Lacks ability to change messages as they Usually synchronous in nature
flow through the pipe Fire and forget
o This model allows the middleware user to
“fire off” a message and then “forget”
about it,
Without worrying about who
receives it or even if the message
Many-to-Many Middleware is ever received.
o The purpose of this model is to allow a
Links many applications to many other applications. source or target application to broad cast
specific type of messages to multiple
Can deal with more than two source or recipients.
target applications.
This capability makes it the best option for Communication Model: Queued communication
application integration. Generally, requires a queue manager to place a
It provides flexibility and applicability to the message in a queue.
application integration problem domain. The remote application then retrieves the message,
Synchronous vs Asynchronous either shortly after it has been sent, or at any time in
Asynchronous middleware moves information between one the future.
or many applications in an asynchronous mode. Receiving application need not to be active when
calling application sends the message
● i.e., the middleware software is decoupled from the Does not block neither remote nor calling application
source or target applications from proceeding with processing.
● Applications are not dependent on other connected
applications for processing.
● Application can always continue processing,
regardless of the state of the other applications.
Synchronous middleware is tightly coupled to
applications.
o Direct coupling with the middleware
mechanism and the application is not
required
MOM relies on asynchronous paradigm
Communication Model: Publish/Subscribe o This allows application to function
Frees an application from the need to understand independently
anything about the target application. i.e., continue processing after
Publisher is the provider of the information about a making a middleware service
topic. request.
Publisher sends information it desires to share to any o Message is dispatched to a queue message,
interested applications (subscribers). which ascertains that message is delivered to
Publisher does not need to understand anything about its final destination.
applications that are interested in the information. o Messages returning to the calling application
Communication Model: Request response are handled when the calling application
As name implies, a request is made to an application finds the time.
using request response middleware, and it responds to Managing are easy to manage using MOM as it has
the request. structure (schema) and content (data).
Includes any middleware that can facilitate a response o MOM can be thought as one-record database
from a request between applications, such as integration that move between applications through
servers or application servers. message-passing mechanisms.
MOM supports two communication models
o Point-to-point
o Message queuing (MQ)
3. Distributed Objects
Small application programs that use standard
interfaces and protocols to communicate with one
Types of Middleware another.
1. RPC
Provide mechanisms for application development,
2. Message-oriented middleware (MOM)
providing enabling technology for enterprise, or
3. Distributed objects
enterprise wide method sharing.
4. Database-oriented middleware
There are two types of distributed objects in market
5. Transactional middleware
today.
6. Integration servers
o Common Object Request Broker
1. Remote Procedure Calls (RPC) Architecture (CORBA)
o Component Object Model (COM)
Oldest type of middleware
Provide ability to invoke a function within one program
and have that function execute within another program
on a remote machine.
RPC is synchronous
o i.e., RPC must stop the execution of the
program
They also require more bandwidth than other types of
middleware. 4. Database-Oriented Middleware
Advantage of RPC is its simplicity for mechanism and Facilitates communication with a database, whether from
programming. an application or between databases.
Disadvantage is are its huge performance cost and Can be used as mechanism to extract information to
inability to scale. extract from either local or remote databases.
Works with two basic database types
o Call-level interfaces (CLI)
Common APIs that span several types of databases,
providing access to any number of databases through a
well-defined common interface.
Open Database Connectivity (ODBC)
o Native database middleware
2. Message-Oriented Middleware (MOM)
MOM is queuing software that uses is message as a
mechanism to move information from point to point.
MOM uses the notion of messages to communicate
between applications,
5. Transaction-Oriented Middleware Facilitates information movement between two or more
Provides mechanism for coordination information resources and can account for differences in application
movement and method sharing between many different semantics and platforms.
resources. o Without any application necessarily understand
o Provides tightly coupled integration anything about other.
Requires changes with source and target applications it shares information with
applications Can also join many applications by using common rules
Based on concept of transaction and routing engines.
o A unit of work with a beginning and an end o Can transform the schema and content of the
o Application logic is encapsulated within a information as it flows between various
transaction applications and databases
Transaction either completes or is rolled Can broker messages between two or more source or
back completely target systems.
Two types of transaction-oriented middleware
o TP monitors
o Application servers
TP Monitors
● Provide mechanism to facilitate the communication
between two or more applications as well as a
location for application logic.
● Provides scalability by sharing and processing
transactions among other connected TP monitors.
● Provide connectors to databases, other applications
and queues.
o These connectors require some application
● Once connected these resources are integrated into
the transaction and leveraged as part of the
transaction.
o As a result, can recover, if failure occurs
● Provides two services Tough Choices
o Guarantee the integrity of transactions RPCs are slow, but their blocking nature provides best
o Resource management and run-time data integrity control.
management services. o Updates are always applied in the correct order
● TP monitors greatest performance value is in their Asynchronous layer to access data may seem to be the
load-balancing feature. best solution, as it does not block processing.
o Allows them to respond gracefully to a o But there is no way to guarantee that an
barrage of transactions. update will occur in a timely manner.
o As demand increases, the transaction Messaging could provide better performance because
manager launches more server processes to the queue manager offers sophisticated performance-
handle the load even as it kills processes that enhancing features as such as load balancing.
are no longer required. Presence of easy-to-use interface will take the power of
middleware and place it in hands of the business user.
Application servers
Provide application logic sharing and processing and for
connections to back-end resources.
o Resources such as databases, ERP applications
and even traditional mainframe applications
o Provide user interface mechanisms
o To deploy applications to the web platform
6. Integration Servers