Chapter5-Solving Integration Problems Using Patterns
Chapter5-Solving Integration Problems Using Patterns
502510-3/Systems-Integration
Week 7
Middleware - Recap
• Middleware is any type of software that facilitates
communication between two or more software systems
– Can be simple communication connection between applications
– Can be as sophisticated as information sharing and logic execution
mechanisms
• Middleware is a technology that allows us to move
information between multiple systems that may reside within
and outside an organization
• Message-Oriented Middleware (MOM) is queuing software
that uses is messages as a mechanism to move information
from point to point
– MOM uses the notion of messages to communicate between
applications,
– MOM resolves the problem of tight coupling between applications
Tight Coupling
• A great example of tight coupling is a local method invocation.
• Invoking a local method inside an application is based on a lot of
assumptions between the called and the calling routine.
– Both methods have to run in the same process (e.g. a virtual machine) and be written in
the same language (or at least use a common intermediate language or byte code).
– The calling method has to pass the exact number of expected parameters, each using
the correct type.
• The call is immediate, i.e. the called method starts processing
immediately after the calling method makes the call.
• Meanwhile, the calling method will only resume processing when the
called method completes (meaning the invocation is synchronous).
• The communication between the methods is immediate and
instantaneous, so neither the caller nor the called method have to worry
about security in the form of eavesdropping 3rd parties.
• All these assumptions make it very easy to write well structured
applications that break functionality into individual methods to be called by
other methods.
Tight Coupling Example Problem
• Assume we are building an on-line banking system that
allows customers to deposit money into their account from
another bank.
• Let’s assume that the remote function that deposits money
into a person’s account takes only the person’s name and the
Dollar amount as arguments.
• To perform this function, the front-end Web application has to
be integrated with the back-end financial system that
manages fund transfers.
• The easiest way to connect the two systems is through the
TCP/IP protocol.
– Operating system or programming library include a TCP/IP stack. TCP/IP is
the ubiquitous communications protocol that transports data between the
millions of computers connected to the Internet and local networks.
Tight Coupling Example Solution
Code to call such a function over TCP/IP:
String hostName = "www.boa.com";
int port = 80;
Identified Requirements:
• Interactions between
– 1 and 4
– 2 and 5
– 3 and 6
– 4, 5, 6 and 7
Message
Channel
Router
Integration Solution – Set of Patterns for the requirements:
• Message
– Document Message or Event Message Transformation
– Document message would be best fit
• Channel
– Point-to-Point Channel
Endpoint
• Endpoint
– Messaging Gateway
System Management
Second Requirement
Message
Channel
Router
Integration Solution – Set of Patterns for the requirements:
• Message
– Document Message
Transformation
• Channel
– Point-to-Point Channel
– Channel Adapter
Endpoint
System Management
Third Requirement
Message
Channel
Router
Integration Solution – Set of Patterns for the requirements:
• Message
– Document Message Transformation
• Channel
– Point-to-Point Channel
– Channel Adapter
Endpoint
System Management
Fourth Requirement
Message
Channel
Router
Transformation