Beruflich Dokumente
Kultur Dokumente
Integration
Systems Integration
Methodologies
Nov/2009
Paulo Marques
Informatics Engineering Department
University of Coimbra
pmarques@dei.uc.pt
What’s this about?
Network
Business Logic
App Server
2
Motivating Example
Warehouse
2 (Amazon)
7 5
1
3
How the Software Engineering world should look like…
4
The ugly reality…
Spaghetti Code
5
Ball-of-Mud Enterprise Application Integration
6
Why Structured Enterprise Application Integration?
Constantly Evolving
Today’s systems are stressed beyond their limits. People want more and
more functionality of the infrastructure in place. Thus, the size of systems
continues to increase. Centralized monolithic solutions are no longer viable:
cooperation among systems is paramount. Nevertheless, heterogeneity
complicates things (e.g. J2EE, .NET, SAP)
8
Issues that need to be addressed
Any means used for Enterprise Application Integration must address,
at least, the following issues:
How is Data Represented – Each application has its own data model
and information schema. There may be shared concepts between
applications but, typically, they are represented in different ways. It’s
essential to have ways of mapping and transforming data.
Localization of Services – Each application was developed as a
“software silo”. Thus, it can unexpectedly change localization. It’s
essential to have ways of localizing and remotely accessing applications
that are executing autonomously.
Time and Synchronicity – The RPC model is synchronous. This means
that both parties have to be present when a call is made. Such constraint
is not viable when communicating among autonomous independent
systems. Typically, it’s necessary to use an asynchronous and robust
communication model between systems.
Fault Tolerance – Networks are inherently fallible. Simplistic
approaches like re-trying operations do not work. It’s necessary to have
robust mechanisms for tolerating faults and, in many cases, distributed
transactions (ACID or not).
9
SOA
Enterprise
Service Bus
Process Service
Orchestrator Directory
A Service Oriented
Architecture
11
Process Orchestrator?
12
Why use a SOA?
If systems are not thought from the beginning for integration, the
solutions found for doing so will be ad-hoc, without possibility
of evolution, and with high development and maintenance
costs
13
IMPORTANT CONCEPT: Evolving Systems!
14
Progressive Deployment
Enterprise
Service Bus
17
Problems associated to the Client/Server model
18
Faults affecting the synchronous model (Client/Server)
If a fault occurs, the session context
is lost
Re-synchronizing systems can be
EXTREMELY complicated!
Especially so when nested calls are
performed.
Some examples of faults:
If a fault occurs before (1), “having
has actually happen”.
If the fault takes place between (1)
and (2) – server fault – the request
is lost
If the fault takes place between (2)
Possible Solution:
and (3) – subsystems fault – data 2PC
inconsistencies may occur
If the fault happens after (3),
corresponding to a lost response, But it’s so
the client will retry the operation SLOW
19
Motivating Example
widraw(5000, #4598)
20
How to address this?
(DB Server)
deposit(5000, #7653)
“Transfer 5000€ from the
CGD account to the MG
account”
21
Bank Transfer using a Two-Phase Commit
Bank A Bank B
Start
Transaction
Withdraw from
acct. A
Transfer
Credit on
account B
Two-Phase Commit
22
A more realistic solution
Bank A Bank B
First transaction
Start
Transaction
Write Msg
Start
Commit Transaction
Read Msg
Credit on
account B
Commit
Second Transaction
23
SOA Revisited
Enterprise
Service Bus
Process Service
Orchestrator Directory
24
Things we haven’t talked about
26
Questions?
27