Lecture 2 Slides
Lecture 2 Slides
Q&A breaks
between sections
Urgent Qs only in
between!
ICA II - GUC - Dr. Ayman Alserafi 2-2
Outline
1. Distributed Computing System
2. Tight Coupling Architecture
3. Loose Coupling Architecture
4. Conclusion
Each terminal
(personal
computer) has
mini-computer with
application logic
support on local
machine.
Popularity with rise
of Operating
systems like MS
DOS and Mac OS
and Unix.
A computer
network
Source: From M. P. Papazoglou and P. M. A. Ribbers, e-Business: Organizational and Technical Foundations, J. Wiley & Sons, 2006. Reproduced with permission
Thick /
Thin
“rich”
client
client
SQL
Data
server
Application
Server(s)
Middle
Web Tier
Server(s)
Prepackaged
Components
Much Larger
Demand
Web Server
call component
Q&A
ICA II - GUC - Dr. Ayman Alserafi 2-21
Enterprise Information Integration
(EII)
Data integration was earliest form of integration, but
batch ETL (Extract, Transform, Load) solutions of the
past were not capable of meeting today’s real-time
Option 1
integration (e.g., with RFID)
Enterprise Application Integration (EAI) solved data
latency problem by synchronizing changes across
systems in real time, but
EAI can effectively move data among systems in real
time, but does not define an aggregated view of the data
Option 2 objects or business entities
We focus
on EAI in
this course!
ICA II - GUC - Dr. Ayman Alserafi 1-22
Running Example: Stock Price
What is the
JAVA price of
stock XYZ?
PHP
73 Euros C#
ICA II - GUC - Dr. Ayman Alserafi 2-23
Synchronous and asynchronous
messaging
• There are two basic modes of
message communication:
• Synchronous communication –
synchronized between two
communicating application systems,
which must both be up and running.
Execution flow at the client’s side is
interrupted to execute the call.
• Asynchronous communication – the
caller employs a send and forget
approach that allows it to continue to
execute after it sends the message.
Here an application sends a request to
another while it continues its own
processing activities. In such asynchronous scenarios, we can put timeout
time limit which is the maximum time (usually
milliseconds) a client waits before considering the
response from the server as unavailable and
handling this as an error to proceed.
ICA II - GUC - Dr. Ayman Alserafi 2-24
Remote procedure call
(program-to-program)
Syntax remain the same in client (caller) and
server (the called) as if on the same machine
Interface Description Language creates
stubs at client, and
skeleton at server
for communication, i.e. (re-)converting
parameters into messages
Source: From M. P. Papazoglou and P. M. A. Ribbers, e-Business: Organizational and Technical Foundations, J. Wiley & Sons, 2006. Reproduced with permission
data data
TCP/IP
ORB ORB
Java RMI
Java remote method invocation
Simple solution
Works only with Java (and CORBA bridge) – platform
dependent
Uses Java programmatic interfaces
What is the
price of
stock XYZ?
RMI
JAVA 73 Euros
JAVA
ICA II - GUC - Dr. Ayman Alserafi 2-34
Running Example: Stock Price
Common Object Request Broker
Architecture: a standard protocol for
RPC defined by Object Management
Group organisation
What is the
price of
stock XYZ?
CORBA
Q&A
ICA II - GUC - Dr. Ayman Alserafi 2-36
Asynchronous communication
• Asynchronous communication promotes loose coupling in
which an application does not need to know the intimate
details of how to reach and interface with other applications.
• Each participant in a multi-step business process flow needs
only be concerned with ensuring that it can send a message
to the messaging system.
Software system
designed to support
interoperable machine-
to-machine interaction
over a network
C++
C#
PYTHON
PHP
ICA II - GUC - Dr. Ayman Alserafi 2-44
SOAP Example
Details to
come in
future
lectures,
stay
tuned!
Q&A
ICA II - GUC - Dr. Ayman Alserafi 2-47
Tight Coupling Vs Loose Coupling
Architectures
TIGHT COUPLING LOOSE COUPLING
Traditional approach Modern approach
Static Dynamic
• Cannot easily change or replace underlying • Can easily replace underlying code and
code, whenever one program changes, all components
other programs must be reprogrammed. • Independent programming interfaces without
• Tight binding between programming binding at the low-level programmatic details.
interfaces • Promotes code reuse
• Does not promote code reuse
Technology dependent (except CORBA) Technology independent
Main techniques: Main techniques:
• RPC, RMI, etc. • XML messaging (e.g., SOAP), JSON
messaging, web REST APIs, Middleware
messaging, semantic data modelling, etc.
Synchronous communication Asynchronous communication
• Each distributed computing component is • Messaging protocols based on send-and-
blocked until the other computer responds forget
CMS
4. Play with your mobile phone or use it for texting during the lecture (put on
silent-mode please!)
6. Don’t expect me to give you exam questions and don’t ask if something is
coming in the exam (YES!) Will have revision!
ICA II - GUC - Dr. Ayman Alserafi 1-52
THANK YOU FOR
YOUR ATTENTION
NEXT WEEK: XML Introduction
and HTTP Protocol