CSI ZG524 Middleware Comprehensive 1635583280833
CSI ZG524 Middleware Comprehensive 1635583280833
Middleware Technologies
BITS Pilani Ravi Kiran MALLIDI
Pilani|Dubai|Goa|Hyderabad Enterprise Architect
1
BITS Pilani
Pilani|Dubai|Goa|Hyderabad
Raise of
Machines
Raise of (REST, Cloud
Services (SOA, Services, MSA,
SOAP, REST, Serverless
Raise of ESB, BPM) Technologies)
Middleware’s
(MOM, EAI)
Raise Of
Frameworks
(RPC/RMI,
CORBA,
DCOM, EJB’s)
Raise Of
The Web
(TCP/IP,
IPC)
Middleware Concepts
CSI ZG524 Middleware Technologies 4
Types Middleware
Here are some of the most widely used types of middleware
• Remote Procedure Call (RPC) middleware provides a protocol that allows a program to
request a service from another program located on another computer or network.
• Object or ORB (Object Request Broker) middleware enables software components or
objects to communicate and interact with a programs, such as containers, across
distributed systems.
• Messaging (JMS) middleware facilitates communications between distributed
applications and services
• Data or database middleware enables direct access to, and interaction with, databases;
it typically includes SQL database software
• Transaction or transactional middleware ensures transactions move from one phase
to the next via transaction process monitoring.
• Content-centric middleware allows client-side requests for specific content and
abstracts and delivers it; it's similar to publish / subscribe middleware like Apache
Kafka.
• Embedded middleware facilitates communication and integration between embedded
apps and real-time operating systems 5
They may be deployed on a variety of platforms across corporate networks, intranets, or the
Internet.
They are data-centric, user-friendly, and must meet stringent requirements for security,
administration, and maintenance. In short, they are highly complex systems.
According to Martin Fowler - Enterprise applications are about the display, manipulation,
and storage of large amounts of often complex data and the support or automation of
business processes with that data.
Many types of business software such as - supply chain management applications, ERP
systems, CRM applications for managing customers, business intelligence applications,
payroll and human resources systems typically cannot communicate with one another in
order to share data or business rules. For this reason, such applications are sometimes
referred to as islands of automation or information silos. This lack of communication leads
to inefficiencies, wherein identical data are stored in multiple locations, or straightforward
processes are unable to be automated.
Enterprise application integration is the process of linking such applications within a single
organization together in order to simplify and automate business processes to the greatest
extent possible. Applications can be linked either at the back-end via APIs or the front-end
GUI
• Integration Drivers
o Increase reuse and reduce duplication of effort
o Need to be agile & flexible
o Real-time operational awareness
o Integration and Interoperability - Internal and External
• Enabling technologies
o ESB – Enterprise Service Bus
o MQ - Message Oriented Middleware, Message Broker
o Web Services – SOAP, REST, WSDL, WS*
o JBI – Java Business Integration
o BPEL – Business Process Execution Language
o SCA – Service Component Architecture 10
o Grid – Java Spaces, Distributed Caching
BITS Pilani, Deemed to be University under Section 3 of UGC Act, 1956
Communication Architectures
Currently, there are many variations of thought on what constitutes the best infrastructure,
component model, and standards structure for Enterprise Application Integration. There
seems to be consensus that four components are essential for a modern enterprise
application integration architecture:
• A centralized broker that handles security, access, and communication. This can
be accomplished through integration servers (like the School Interoperability
Framework (SIF) Zone Integration Servers) or through similar software like the
enterprise service bus (ESB) model that acts as a services manager.
• An independent data model based on a standard data structure, also known as a
canonical data model. It appears that XML and the use of XML style sheets has
become the de facto and in some cases de jure standard for this uniform business
language.
• A connector, or agent model where each vendor, application, or interface can build
a single component that can speak natively to that application and communicate
with the centralized broker.
• A system model that defines the APIs, data flow and rules of engagement to the
system such that components can be built to interface with it in a standardized way.
11
EAI Patterns
12
EAI Patterns
Bobby Woolf and Addison-Wesley documented a pattern language consisting of 65
integration patterns to establish a technology-independent vocabulary and a visual notation
to design and document integration solutions, ranging from
• connecting applications to a messaging system
• routing messages to the proper destination and
• monitoring the health of a messaging system.
The patterns are brought to life with examples implemented in messaging technologies,
such as JMS, SOAP, MSMQ, .NET, and other EAI Tools.
The solutions are relevant for a wide range of integration tools and platforms, such as IBM
WebSphere MQ, TIBCO, Vitria, WebMethods (Software AG), or Microsoft BizTalk,
messaging systems, such as JMS, WCF, Rabbit MQ, or MSMQ, ESB's such as Apache
Camel, Mule, WSO2, Oracle Service Bus, Open ESB, SonicMQ, Fiorano or Fuse
ServiceMix.
13
End Point
Application A Application B
Message Channel Patterns (9 Patterns) - describe how messages are transported across
a Message Channel. These patterns are implemented by most commercial and open
source messaging systems.
Message Construction Patterns (9 Patterns) - describe the intent, form and content of
the messages that travel across the messaging system. The base pattern for this section is
the Message pattern.
15
BITS Pilani, Deemed to be University under Section 3 of UGC Act, 1956
EAI Patterns - Overview
Message Routing Patterns (12 Patterns) - discuss how messages are routed from a
sender to the correct receiver. Message routing patterns consume a message from one
channel and republish it message, usually without modification, to another channel based
on a set of conditions. The patterns presented in this section are specializations of the
Message Router pattern.
Message Endpoint Patterns (11 Patterns) - describe how messaging system clients
produce or consume messages.
Note: All diagrams and content in below slides are from EAI patterns website
https://www.enterpriseintegrationpatterns.com
16
BITS Pilani, Deemed to be University under Section 3 of UGC Act, 1956
BITS Pilani
Pilani|Dubai|Goa|Hyderabad
Integration Styles
17
Integration Style – File
Transfer
Have each application produce files containing information that other applications need to
consume. Integrators take the responsibility of transforming files into different formats.
Produce the files at regular intervals according to the nature of the business.
Messaging Styles
22
Messaging Style – Message
Channel
Connect the applications using a Message Channel, where one application writes
information to the channel and the other one reads that information from the channel.
When an application has information to communicate, it doesn't just fling the information
into the messaging system, it adds the information to a particular Message Channel
Related Patterns: Canonical Data Model, Command Message, Document Message, Event
Message, Message Channel, Message Expiration, Message Sequence, Messaging,
Request-Reply
24
BITS Pilani, Deemed to be University under Section 3 of UGC Act, 1956
Messaging Style – Pipes &
Filters
Use the Pipes and Filters architectural style to divide a larger processing task into a
sequence of smaller, independent processing steps (Filters) that are connected by channels
(Pipes).
Each filter exposes a very simple interface: it receives messages on the inbound pipe,
processes the message, and publishes the results to the outbound pipe. The pipe connects
one filter to the next, sending output messages from one filter to the next
The Message Translator is the messaging equivalent of the Adapter pattern. An adapter
converts the interface of a component into a another interface so it can be used in a
different context.
Related Patterns: Canonical Data Model, Channel Adapter, Content Filter, Content
Enricher, Message Channel, Message Endpoint, Message Router, Message Translator,
Messaging Bridge, Normalizer, Pipes and Filters, Shared Database, Claim Check
26
BITS Pilani, Deemed to be University under Section 3 of UGC Act, 1956
BITS Pilani
Pilani|Dubai|Goa|Hyderabad
Messaging Channels
27
Messaging Channels – Point
to Point
Send the message on a Point-to-Point Channel, which ensures that only one receiver will
receive a particular message.
A Point-to-Point Channel ensures that only one receiver consumes any given message. If
the channel has multiple receivers, only one of them can successfully consume a particular
message. The channel can still have multiple receivers to consume multiple messages
concurrently, but only a single receiver consumes any one message
It has one input channel that splits into multiple output channels, one for each subscriber.
When an event is published into the channel, the Publish-Subscribe Channel delivers a
copy of the message to each of the output channels..
Messaging Construction
30
Messaging Construction –
Command Message
Command Message is use to reliably invoke a procedure in another application.
Message Routing
33
Messaging Routing – Content
Based Routing
Content-Based Router is used to route each message to the correct recipient based on
message content.
The Content-Based Router examines the message content and routes the message onto a
different channel based on data contained in the message. The Content-Based Router can
take on the form of a configurable rules engine that computes the destination channel
based on a set of configurable rules
Related Patterns: Dynamic Router, Message Filter, Invalid Message Channel, Message
Router, Pipes and Filters, Publish-Subscribe Channel, Routing Slip, Transactional Client
34
BITS Pilani, Deemed to be University under Section 3 of UGC Act, 1956
Messaging Routing – Message
Filter
Message Filter is used to eliminate undesired messages from a channel based on a set of
criteria.
The Message Filter has only a single output channel. If the message content matches the
criteria specified by the Message Filter, the message is routed to the output channel. If the
message content does not match the criteria, the message is discarded
The Dynamic Router stores the 'preferences' for each participant in a rule base. When a
message arrives, the Dynamic Router evaluates all rules and routes the message to the
recipient whose rules are fulfilled. This allows for efficient, predictive routing without the
maintenance dependency of the Dynamic Router on each potential recipient
The logic embedded in a Recipient List can be pictured as two separate parts even though
the implementation is often coupled together. The first part computes a list of recipients. The
second part simply traverses the list and sends a copy of the received message to each
recipient. Just like a Content-Based Router, the Recipient List usually does not modify the
message contents
Splitter is used to consumes one message containing a list of repeating elements, each of
which can be processed individually. The Splitter publishes a one message for each single
element (or a subset of elements) from the original message
The Resequencer can receive a stream of messages that may not arrive in order. The
Resequencer contains in internal buffer to store out-of-sequence messages until a complete
sequence is obtained. The in-sequence messages are then published to the output channel
Message Transformation
42
Messaging Transformation –
Content Filter
Content Filter is used to remove unimportant data items from a message leaving only
important items.
The Content Filter does not necessarily just remove data elements. A Content Filter is also
useful to simplify the structure of the message. Often times, messages are represented as
tree structures. Many messages originating from external systems or packaged applications
contain many levels of nested, repeating groups because they are modeled after generic,
normalized database structures
The Content Enricher uses information inside the incoming message (e.g. key fields) to
retrieve data from an external source. After the Content Enricher retrieves the required data
from the resource, it appends the data to the message. The original information from the
incoming message may be carried over into the resulting message or may no longer be
needed, depending on the specific needs of the receiving application
Related Patterns: Content Filter, Event Message, Message Channel, Message Translator,
Claim Check 44
BITS Pilani, Deemed to be University under Section 3 of UGC Act, 1956
BITS Pilani
Pilani|Dubai|Goa|Hyderabad
46
BITS Pilani, Deemed to be University under Section 3 of UGC Act, 1956
ESB Overview
• ESB is fundamentally an architecture
• ESB is a set of rules and principals for integrating applications together over a bus-
like infrastructure
• The concept of the ESB architecture is that you integrate different applications by putting
a communication bus between them and then enable each application to talk to the bus
• This decouples systems from each other, allowing systems to communicate without
having a dependency or knowledge of other systems on the bus
• The concept of ESB was born out of the need to move away from point-to-point
integration, which becomes brittle and hard to manage over time
CRM CRM
Commun HR
HR Reports
ication
EAI
Supply
Reports Commu
Chain Finance
nication
Supply
chain
Finance
48
BITS Pilani, Deemed to be University under Section 3 of UGC Act, 1956
ESB Capabilities
49
BITS Pilani, Deemed to be University under Section 3 of UGC Act, 1956
ESB Capabilities
• Invocation - support for synchronous and asynchronous transport protocols, service
mapping (locating and binding)
• Routing - addressability, static/deterministic routing, content-based routing, rules-based
routing, policy-based routing
• Mediation - adapters, protocol transformation, service mapping
• Messaging - message-processing, message transformation and message enhancement
• Process choreography - implementation of complex business processes
• Service orchestration - coordination of multiple implementation services exposed as a
single, aggregate service
• Complex event processing - event-interpretation, correlation, pattern-matching
• Management - monitoring, audit, logging, metering, admin console, BAM (BAM is not a
management capability in other words the ESB doesn't react to a specific threshold. It is
a business service capability surfaced to end users.)
• Agnosticism - general agnosticism to operating-systems and programming-
languages; for example, it should enable interoperability between Java and .NET
applications
• Protocol Conversion - comprehensive support for topical communication protocols
service standards
50
BITS Pilani, Deemed to be University under Section 3 of UGC Act, 1956
ESB Capabilities
• Message Exchange Patterns - support for various MEPs (Message Exchange
Patterns) (for example: synchronous request/response, asynchronous request/response,
send-and-forget, publish/subscribe)
• Adapters - adapters for supporting integration with legacy systems, possibly based on
standards such as JCA
• Security - a standardized security-model to authorize, authenticate and audit use of the
ESB
• Transformation - facilitation of the transformation of data formats and values, including
transformation services (often via XSLT or XQuery) between the formats of the sending
application and the receiving application
• Validation - validation against schemas for sending and receiving messages
• Governance - the ability to apply business rules uniformly
• Enrichment - enriching messages from other sources
• Split and Merge - the splitting and combining of multiple messages and the handling of
exceptions
• Abstraction - the provision of a unified abstraction across multiple layers
• Routing and Transformation - routing or transforming messages conditionally, based
on a non-centralized policy (without the need for a central rules-engine)
• Commodity Services - provisioning of commonly used functionality as shared services
depending on context
51
BITS Pilani, Deemed to be University under Section 3 of UGC Act, 1956
ESB Vs MOM Vs Web
Services
Feature ESB MOM Web Services
JMS provider, SOAP provider,
Transport Layer WSDL provider, Stream provider, JMS SOAP over HTTP
File provider, and more
Requires
Maximum level of flexibility for Requires
Deployment recompiling client
dynamic configuration recompiling stubs
code
52
BITS Pilani, Deemed to be University under Section 3 of UGC Act, 1956
BITS Pilani
Pilani|Dubai|Goa|Hyderabad
In 1996 the first report was published on SOA by the analysts Roy W.Schulte and Yefim
V.Natis
54
A manifesto was published for service-oriented architecture in October, 2009. This came up
with six core values which are listed as follows
• Business value is given more importance than technical strategy.
• Strategic goals are given more importance than project-specific benefits.
• Intrinsic inter-operability is given more importance than custom integration.
• Shared services are given more importance than specific-purpose implementations.
• Flexibility is given more importance than optimization.
• Evolutionary refinement is given more importance than pursuit of initial perfection.
SOA can be seen as part of the continuum which ranges from the older concept of
distributed computing and modular programming, through SOA, and on to current practices
of mashups, SaaS, and cloud computing. 55
57
Features:
• Uses interfaces which solves the difficult integration problems in large systems.
• Communicates customers, providers and suppliers with messages by using the
XML schema.
• Uses the message monitoring to improve the performance measurement and
detects the security attacks.
• Reuses the service, there will be lower software development and management
costs.
58
59
60
View Layer
P Application Layer
r
o Work Flow Rules CEP B
g
A
r
M
a
Enterprise Service Bus (ESB)
m
s
61
62
65
66
67
69
71
72
74
SOA MSA
“share-as-much-as-possible” architecture approach “share-as-little-as-possible” architecture approach
Common governance and standards People, collaboration and freedom of other options
Multi-threaded with more overheads to handle I/O Single-threaded usually with the use of Event Loop
Traditional Relational Databases are more often Modern Relational Databases are more often used
used
A systematic change requires modifying the A systematic change is to create a new service
monolith
DevOps / Continuous Delivery is not a mainstream Strong focus on DevOps / Continuous Delivery
75
Services / API’s
Application Server
OS OS
Storage Storage
Network Network
76
DB DB
78
Java Script Frameworks (AngularJS etc.,) SPAs use JavaScript frameworks and HTML5 to create
fluid and responsive Web apps, without constant page
reloads. This means much of the work happens on the
REST / SOAP Service Layer
client side, in JavaScript.
Persistence Layer – JDBC, Hibernate etc., The REST services interact with Business layer for
business operations
Storage Layer (Database) The Storage Layer retains important data into relational
database system like MySQL, Oracle, or SQL Server
DB DB
79
80
Cloud
81
Cloud Basics
Cloud computing is shared pools of configurable computer system resources and higher-
level services that can be rapidly provisioned with minimal management effort, often over
the Internet.
Cloud computing relies on sharing of resources to achieve coherence and economies of
scale, similar to a public utility
Cloud Computing refers to manipulating, configuring, and accessing the hardware and
software resources remotely. Offers online data storage, infrastructure, and application.
Cloud computing offers platform independency, as the software is not required to be
installed locally on the PC. Hence, the Cloud Computing is making our business
applications mobile and collaborative
Following are the working models for cloud computing:
• Deployment Models
• Service Models
82
PUBLIC CLOUD - The public cloud allows systems and services to be easily accessible to
the general public. Public cloud may be less secure because of its openness.
PRIVATE CLOUD - The private cloud allows systems and services to be accessible within
an organization. It is more secured because of its private nature.
COMMUNITY CLOUD - The community cloud allows systems and services to be accessible
by a group of organizations.
HYBRID CLOUD - The hybrid cloud is a mixture of public and private cloud, in which the
critical activities are performed using private cloud while the non-critical activities are
performed using public cloud.
83
IaaS
INFRASTRUCTURE-AS-A-SERVICE (IAAS) - IaaS provides
access to fundamental resources such as physical machines,
virtual machines, virtual storage, etc. Service
Models
Cloud
Computing
85
86
Technical - Cloud service providers offer services to number of clients each day,
Sometimes the system can have some serious issues leading to business processes
temporarily being suspended. Additionally, if the internet connection is offline then we will
not be able to access any of the applications, server, or data from the cloud.
Not Easy to Switch Service Providers - Cloud service providers promises vendors that
the cloud will be flexible to use and integrate, however switching cloud services is not easy.
Most organizations may find it difficult to host and integrate current cloud applications on
another platform. Interoperability and support issues may arise such as applications
developed on Linux platform may not work properly on Microsoft Development Framework
88
Integration Platform
90
Utility Computing - Utility computing is the process of providing service through an on-
demand, pay per use billing method. It offers computational resources on demand as a
metered service. Cloud computing, grid computing, and managed IT services are based on
the concept of utility computing.
91
93
94
Benefit from massive economies of scale - By using cloud computing, Organizations can achieve a
lower variable cost than can get on Organizations own. Because usage from hundreds of thousands of
customers is aggregated in the cloud, providers such as AWS can achieve higher economies of scale,
which translates into lower pay as-you-go prices.
Stop guessing about capacity - Eliminate guessing on infrastructure capacity needs. When you make a
capacity decision prior to deploying an application, often end up either sitting on expensive idle resources
or dealing with limited capacity. With cloud computing, these problems go away. Organizations can
access as much or as little capacity as need, and scale up and down as required with only a few minutes’
notice.
Increase speed and agility - In a cloud computing environment, new IT resources are only a click away,
which means that reduce the time to make those resources available to developers from weeks to just
minutes. This results in a dramatic increase in agility for the organization, since the cost and time it takes
to experiment and develop is significantly lower.
Stop spending money running and maintaining data centers - Focus on projects that differentiate
your business, not the infrastructure.
Go global in minutes - Easily deploy application in multiple regions around the world with just a few 95
clicks.
BITS Pilani, Deemed to be University under Section 3 of UGC Act, 1956
AWS Cloud Platform
Amazon Web Services offers a broad set of global cloud-based products including compute,
storage, databases, analytics, networking, mobile, developer tools, management tools, IoT,
security and enterprise applications.
These services help organizations move faster, lower IT costs, and scale. AWS is trusted by
the largest enterprises and the hottest start-ups to power a wide variety of workloads
including: web and mobile applications, game development, data processing and
warehousing, storage, archive, and many others.
Following are Platforms / Products in Amazon Web Services:
• AWS Management Console • Security, Identity, and Compliance
• AWS Command Line Interface • Analytics
• Software Development Kits • Artificial Intelligence
• Compute • Mobile Services
• Storage • Application Services
• Database • Messaging
• Migration • Business Productivity
• Networking and Content Delivery • Desktop & App Streaming
• Developer Tools • Internet of Things
• Management Tools • Game Development 96
NoSQL Databases
97
NoSQL Database
NoSQL databases are built for specific data models and have flexible schemas for building
modern applications.
NoSQL databases are widely recognized for their ease of development, functionality, and
performance at scale.
They use a variety of data models, including document, graph, key-value, in-memory, and
search. This page includes resources to help you better understand NoSQL databases and
to get started.
The predominant data model that was used for application development was the relational
data model used by relational databases such as Oracle, DB2, SQL Server, MySQL, and
PostgreSQL. It wasn’t until the mid to late 2000s that other data models began to gain
significant adoption and usage. To differentiate and categorize these new classes of
databases and data models, the term “NoSQL” was coined. Often the term “NoSQL” is used
interchangeably with “nonrelational.”
98
99
101
102
103
104
CAP Theorem
105
CAP Theorem (Brewer’s
Theorem)
CAP theorem states that there are three basic requirements which exist in a special relation
when designing applications for a distributed architecture.
• Consistency – The data in the database remains consistent after the execution of
an operation. For example after an update operation all clients see the same data.
• Availability - The system is always on (service guarantee availability), no
downtime.
• Partition Tolerance - The system continues to function even the communication
among the servers is unreliable, i.e. the servers may be partitioned into multiple
groups that cannot communicate with one another.
In theoretically it is impossible to fulfill all 3 requirements. CAP provides the basic
requirements for a distributed system to follow 2 of the 3 requirements. Therefore all the
current NoSQL database follow the different combinations of the C, A, P from the CAP
theorem. Here is the brief description of three combinations CA, CP, AP :
• CA - Single site cluster, therefore all nodes are always in contact. When a partition
occurs, the system blocks.
• CP -Some data may not be accessible, but the rest is still consistent/accurate.
• AP - System is still available under partitioning, but some of the data returned may
be inaccurate. 106
107
Caching
108
Caching
In computing, a cache is a high-speed data storage layer which stores a subset of data,
typically transient in nature, so that future requests for that data are served up faster than is
possible by accessing the data’s primary storage location. Caching allows you to efficiently
reuse previously retrieved or computed data.
The data in a cache is generally stored in fast access hardware such as RAM (Random-
access memory) and may also be used in correlation with a software component. A cache's
primary purpose is to increase data retrieval performance by reducing the need to access
the underlying slower storage layer.
Trading off capacity for speed, a cache typically stores a subset of data transiently, in
contrast to databases whose data is usually complete and durable.
109
110
Mobile / Desktops
112
Reduce Database Cost - A single cache instance can provide hundreds of thousands of
IOPS (Input/output operations per second), potentially replacing a number of database
instances, thus driving the total cost down. This is especially significant if the primary
database charges per throughput. In those cases the price savings could be dozens of
percentage points.
113
Reduce the Load on the Backend - By redirecting significant parts of the read load from
the backend database to the in-memory layer, caching can reduce the load on your
database, and protect it from slower performance under load, or even from crashing at
times of spikes
Increase Read Throughput (IOPS) - Lower latency, in-memory systems offer much higher
request rates (IOPS) relative to a comparable disk-based database. A single instance used
as a distributed side-cache can serve hundreds of thousands of requests per second
114
115
Memcached:
When an object is added to cache, the
Memcached client will take that object,
serialize it, and send a byte array to the
Memcached server for storage
if application is running on more than one
application server, all of them can point to
the same Memcached server and use it for
getting and setting cache entries
116
Disadvantages:
• Applications need to be designed with Memcached support in mind
• It’s volatile memory and shouldn’t be used to store anything that you can’t repopulate from
a persistent source (like the file system or a database)
• It’s yet another process running on the server.
• No means of authentication making data insecure
• Memcached works as an external service which means that externally needs to be
117
installed / run in production environment
BITS Pilani, Deemed to be University under Section 3 of UGC Act, 1956
BITS Pilani
Pilani|Dubai|Goa|Hyderabad
119
120
Solution
• A loan broker is typically not affiliated with any one bank but has access to many lending
institutions
• The broker gathers the customer data once and contacts the credit agency to obtain the
customer's credit history
• Based on the credit score and history, the broker presents the request to a number of
banks that are best suited to meet the customer’s criteria.
• The broker gathers the resulting quotes from the banks and selects the best offer (i.e.
the lowest interest rate) to pass back to the consumer.
Insurance
Customer Insurance
Insurance broker collates
requests Broker
broker sends the quotes,
insurance requests
customer info provides the
broker for Insurance Org
to get profile customer the
quote for quotes
lowest quote
121
Insurance Broker
4. Get Bank
2. Get Customer
Quote
Profile
Credit
Agency( Bank Bank
JMS) 1(JMS Bank 3(JMS
service) 2(JMS service)
service)
122
Bank Bank 1
Http Services
Client
Bank 2
Bank
1. Receive Agency
Loan
Request 3. Get Banks List
Loan
Broker Bank 3
123
125
Build
You will need to compile this example first:
mvn compile
Run
mvn exec:java -PWS.LoanBroker
mvn exec:java -PWS.Client
126
Overview
• Recommends a Middleware solution which is cost effective, maintainable and future
ready
• Utilizes existing Service s exposed by the existing application can be consumed in
middleware
Scope
• A total of 08 interfaces have been identified for the current scope between PO,
ECC, CRM, SAP-BW and iPrice
• Using Apache Camel as the Middleware solution for integration between systems 128
129
AS - IS TO - BE
CRM iPrice
Middleware
(Apache Connectivity Services
Component Services
Routing Orchestration
Business Services
Provisioning Mapping
ECC SAP-BW
130
131
132
Below are the functions / components / systems involved in Health Care Management
System (HMS).
• Front End Registration Desk (Registration of Patients and Appointments)
• Doctors Clinic (Clinical Preparation, Prescriptions etc.,)
• Laboratories (lab test information, Results storage etc.,)
• Pharmacy (Prescription Data integration with HMS System)
• Insurance Companies Integration
• Payments (Insurance, Card / Cash payments)
Design the system architecture with the above details using Point-to-Point and SOA (ESB)
based approaches. Elaborate usage of EAI design patterns in the HMS context
133
134