Information & Communication
Architecture 2 [BINF 405]
GUC - Spring 2024 – Lecture 2
Distributed Computing Systems –
Architectures
Dr. Ayman Al-Serafi
TAs: Ghada Ahmed, Tameem Alghazaly, Youssef Ihab, Mohab Gehad
Outline
1. Distributed Computing System
2. Tight Coupling Architecture
3. Loose Coupling Architecture
4. Conclusion
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
ICA II - GUC - Dr. Ayman Alserafi 2-3
Distributed Computing
• A distributed system is characterized as a collection of
heterogeneous networked computers, which
communicate and coordinate their actions by passing
messages.
Distribution is transparent to the user so that the system
appears as a single integrated facility.
• One important characteristic of a distributed system is that
processes are not executed on a single processor
(computer), but rather span a number of processors.
This requires inter-process communication mechanisms.
ICA II - GUC - Dr. Ayman Alserafi 2-4
Single powerful Dumb terminals
mainframe have no
computer providing application logic.
all application logic
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
A server: a powerful computer with
more memory, more CPUs >8 cores,
etc. that serves requests from other
computer machines called “clients”,
using applications and data stored on
it
ICA II - GUC - Dr. Ayman Alserafi 2-5
Local Area
Network (LAN) Server-client
hosted inside LAN inside
company company
Gateway to the Wide
Area Network (WAN) of
Internet. Makes local
applications available to
external and public
“clients” over Internet.
All applications hosted on
the Internet (web servers)
and accessible by any
computing device! No
hardware / software hosted
on-premise inside company.
Companies rent computing
power as a service from 3rd
party service providers.
ICA II - GUC - Dr. Ayman Alserafi 2-6
Distributed Networking (vs. Mainframe Network)
ICA II - GUC - Dr. Ayman Alserafi 2-7
Internet Protocols
• Internet protocols are essentially methods of data transport
across the Internet. They define the standards by which the
different components in a distributed system communicate
across the Internet with each other & with remote components.
• The most prominent of the Internet protocols is transport control
protocol over Internet protocol (or TCP/IP), which provide for
the reliable delivery of streams of data from one host to another
across the Internet:
The Internet protocol (IP) enables the unreliable delivery of
individual packets from one host to another.
IP makes no guarantees as to whether the packet will be delivered, how
long it will take, or if multiple packets will arrive in the order they were
sent.
The transport control protocol (TCP) adds the notions of connection
and reliability.
ICA II - GUC - Dr. Ayman Alserafi 2-8
ICA II - GUC - Dr. Ayman Alserafi 2-9
ICA II - GUC - Dr. Ayman Alserafi 2-10
ICA II - GUC - Dr. Ayman Alserafi 2-11
ICA II - GUC - Dr. Ayman Alserafi 2-12
Client–server model
• A client/server architecture is an architecture in which processing and storage
tasks are divided between two classes of network members, clients & servers.
• Client/server architecture involves client processes (service consumers)
requesting service from server processes (service providers). Servers may
in turn be clients of other servers.
The client machine runs software and applications that are stored locally. The client
makes requests to servers and is also responsible for the user interface.
Some of the applications may be stored and executed on the server.
The server also provides the data for the application.
Source: From M. P. Papazoglou and P. M. A. Ribbers, e-Business: Organizational and Technical Foundations, J. Wiley & Sons, 2006. Reproduced with permission
ICA II - GUC - Dr. Ayman Alserafi 2-13
Types of Client/Server Computing
Thick
powerful
server Thin
Server
Thick /
Thin
“rich”
client
client
ICA II - GUC - Dr. Ayman Alserafi 2-14
Client-Server
Thick Client Thick
Client
SQL
Data
server
ICA II - GUC - Dr. Ayman Alserafi 2-15
First Middle Tiers
Thin Client Thin Client Thin Client
Distributed Objects Messaging
Middle tier Middle Tier
eliminates the
need for multiple Transactions
one-to-one
connections
between
application
servers from Database Connectivity Applications
n(n-1)/2 to n
where n=number
of apps
ICA II - GUC - Dr. Ayman Alserafi 2-16
Middle Tier for Web Applications
The web server manages requests
from a web client and forwards the
requests to further servers in a multi-
Browsers tier client-server architecture
Application
Server(s)
Middle
Web Tier
Server(s)
Prepackaged
Components
Much Larger
Demand
ICA II - GUC - Dr. Ayman Alserafi 2-17
Application Server Design
Web Server
call component
Application Server Make component distributed object
Maintain transaction state
Resource pooling
Resource pooling is Check security access
allocating specific & limited
computing resources from call component
the server like RAM and
processing power per each
client request
Component
ICA II - GUC - Dr. Ayman Alserafi 2-18
Application Server Features
Distribute objects
Applications are not all stored on a single computing machine,
but rather on multiple machines allowing for scalability
Monitor transactions
Ability to keep track of transactions and updates to a database to
guarantee transaction completion
Impose security
Check privileges and grant access to privileged users
Load balancing
Distribute requests over multiple computing resources based on
a balanced load per each resource
High availability/fail over
Servers are switchable; meaning they have mirrored applications
and whenever one server fails, the other backup server can take
its place
ICA II - GUC - Dr. Ayman Alserafi 2-19
Cloud Computing
• All clients are thin clients
• All applications stored on
application servers
connected to the Internet
• Client gets application logic
and data stored remotely on
a distributed computing
network over the Internet
ICA II - GUC - Dr. Ayman Alserafi 2-20
Outline
1. Distributed Computing System
2. Tight Coupling Architecture
3. Loose Coupling Architecture
4. Conclusion
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
ICA II - GUC - Dr. Ayman Alserafi 2-25
Remote procedure call
ICA II - GUC - Dr. Ayman Alserafi 2-26
Remote procedure calls
• RPC is a basic mechanism
for inter-program
communication, where the
application elements use a
request/wait-for-reply
(synchronous) model of
communication.
RPC links applications
at the lowest-level and
detailed programmatic
interface
Source: From M. P. Papazoglou and P. M. A. Ribbers, e-Business: Organizational and Technical Foundations, J. Wiley & Sons, 2006. Reproduced with permission
ICA II - GUC - Dr. Ayman Alserafi 2-27
Distributed Objects
Code sees server object as if it existed on the
client.
Client Middle Tier
ICA II - GUC - Dr. Ayman Alserafi 2-28
Distributed Objects
Example method interface signature : Double getStockPrice (String stockName) { … }
Specific output data
type for stock price Specific method Specific input data
name to be invoked type and variable
name
Client Server
Distributed
Object
method call
method call
Stub method call encoded data translated
as string of data
(Serialisation) into method call Skeleton
data data
TCP/IP
ORB ORB
ICA II - GUC - Dr. Ayman Alserafi 2-29
Stub and Skeleton
Stub and skeleton classes are generated
automatically at compile time from interface
Some tools use a) native language interface,
some use b) language independent IDL
Stub and skeleton carry method call, return
value, and exceptions (errors)
ICA II - GUC - Dr. Ayman Alserafi 2-30
Types of RPC: Distributed Object
Vendors
OMG CORBA
Common Object Request Broker Architecture
Most sophisticated (complex) solution
Cross platform, cross language
IDL interfaces
Java RMI
Java remote method invocation
Simple solution
Works only with Java (and CORBA bridge) – platform
dependent
Uses Java programmatic interfaces
ICA II - GUC - Dr. Ayman Alserafi 2-31
Connecting to Distributed
Objects
Traditionally, distributed objects are found via
Naming (specific object names)
Very static – objects and their signatures
(interface) must be known at development
time
The signature of the methods are: the
method name, the input parameter(s)
data type and name, and output data
type(s) and names(s)
ICA II - GUC - Dr. Ayman Alserafi 2-32
Tightly coupled RPC point-to-point
integrations
• RPC-style programming leads to tight coupling of interfaces and
applications.
• In an RPC environment each application needs to know the
intimate details of the interface of every other application – the
number of methods it exposes and the details of each method
signature it exposes.
ICA II - GUC - Dr. Ayman Alserafi 2-33
Running Example: Stock Price
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
JAVA 73 Euros C++
ICA II - GUC - Dr. Ayman Alserafi 2-35
Outline
1. Distributed Computing System
2. Tight Coupling Architecture
3. Loose Coupling Architecture
4. Conclusion
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.
ICA II - GUC - Dr. Ayman Alserafi 2-37
Middleware
Software that connects other software
components or applications
used most often to support complex,
distributed applications in a scalable
approach
Modern approaches based on:
Web services, Service-oriented architecture, etc.
can be found in IT solutions
based on messages like: XML, SOAP (Simple
Object Access Protocol), Web REST APIs, etc.
ICA II - GUC - Dr. Ayman Alserafi 2-38
Today, enterprise architects believe that…
Service Oriented Architecture (SOA) can
help businesses respond more quickly and
cost-effectively to the changing market
conditions
This style of architecture promotes reuse at
the macro (service) level rather than micro
levels (e.g. objects in Java / C++ program)
It can also simplify interconnection to and
usage of existing IT (legacy) assets
Just encapsulate the functionality of old legacy
system in a web-service, without the need of
each client software using legacy
communication protocols.
ICA II - GUC - Dr. Ayman Alserafi 2-39
Service-oriented Architecture (SOA)
Perspective of software architecture that defines the use of loosely
coupled software services to support the requirements of the
business processes and software users
In an SOA environment, resources on a network are made
available as independent services that can be accessed without
knowledge of their underlying platform implementation
(e.g., no tight-coupling of method / function calls between software, so no
need to replace function name in each client software with every change or
update, instead, the communication messages have an independent standard
/ fixed format that never changes!)
Expose an Application Programming Interface (API) that doesn’t
change if provides the same functionality
Hides application logic / processing inside software as blackbox (machine-to-
machine communication don’t care or consider specific internal
implementation of logic / processing, just considers input required and final
output expected.)
Expose the data and functions inside software / applications in a
way that other systems can easily use (e.g., XML and web
services)
ICA II - GUC - Dr. Ayman Alserafi 2-40
Details to come in
future lectures, stay UDDI (Universal Description, Discovery, and Integration)
tuned! is an XML-based registry for businesses worldwide to list
themselves and their web services on the Internet. Its ultimate
goal is to streamline online transactions by enabling
Web service The
companies to find one another on the Web and make their
systems interoperable for e-commerce.
directory
Software system
designed to support
interoperable machine-
to-machine interaction
over a network
The Web Services Description
Language (WSDL) is an XML-
based interface description
language that is used for
describing the functionality
offered by a web service. SOAP is a messaging protocol
specification based on XML
and HTTP for exchanging
structured information in the
implementation of web services
in computer networks.
ICA II - GUC - Dr. Ayman Alserafi 2-41
Web Services Standards
Three description (“software”) standards
XML
WSDL
UDDI
Details to
Three communication protocols come in
future
SOAP lectures,
HTTP stay
tuned!
TCP/IP
ICA II - GUC - Dr. Ayman Alserafi 2-42
DISTRIBUTED COMMUNICATION
ARCHITECTURE A standard message
Details to come in
format! REST APIs
future lectures, (WEB HTTP protocol)
stay tuned!
ICA II - GUC - Dr. Ayman Alserafi 2-43
DISTRIBUTED SYSTEMS
COMMUNICATION ARCHITECTURE
Standard Communication messages
Messaging
Protocols:
SOAP, REST API,
JAVA Enterprise Service Bus,
Middleware, etc.
C++
C#
PYTHON
PHP
ICA II - GUC - Dr. Ayman Alserafi 2-44
SOAP Example
Details to
come in
future
lectures,
stay
tuned!
ICA II - GUC - Dr. Ayman Alserafi 2-45
Middleware Technology choice
Middleware supports and uses a combination of messaging
protocols, e.g., supports RPC and SOAP + other techniques
in one middle-tier server software to integrate different
heterogeneous applications
ICA II - GUC - Dr. Ayman Alserafi 2-46
Outline
1. Distributed Computing System
2. Tight Coupling Architecture
3. Loose Coupling Architecture
4. Conclusion
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
ICA II - GUC - Dr. Ayman Alserafi 2-48
We focus
Information Integration Tree on this in
this
Covered in course
Postgrad / Masters
level courses
ICA II - GUC - Dr. Ayman Alserafi 2-49
Date Lecture (Saturdays) Tutorials (in same week)
Week 1 Introduction to Information & Communication Architecture II
Intro + XML Lab
Week 2 Distributed Systems
Web APIs + HTTP Protocols Lab
Week 3 XML Intro + HTML + HTTP Protocol (Intro to VS and Webforms + XML Binding)
HTTP API Methods + Practical for HTTP methods
Week 4 Cloud Computing Assignment 1
Mini-Project 1
HTTP API Methods + Practical for HTTP methods
Week 5 Virtualisation
Quiz 1
Week 6 Middleware Overview and components Cloud Computing Case Study
16 March –
Mid-Term Exam
1 April
Virtualization Case Study
Week 7 Middleware Overview and Components Assignment 1 submission
Mini-Project 1 submission
SOA, Web Services and SOAP
Week 8 The Organizational SOA Roadmap
Assignment 2
Week 9 Registering and Discovering Web Services SOAP + WSDL + UDDI Lab
REST API Lab 1 +JSON
Week 10 REST API Assignment 2 submission
Quiz 2
Middleware Messaging, Enterprise Service Bus, REST API Lab 2
Week 11 Final Project submission
Transaction Processing
Final Course Lab
Middleware Messaging, Enterprise Service Bus,
Week 12 Quiz 3
Transaction Processing
Assignment 2 submission
Week 13 Revision
28 May - 13 June
Final Exam
Course Material
CMS
ICA II - GUC - Dr. Ayman Alserafi 1-51
DOs in the Lecture
Raise your hand if you have an urgent question
you think will be important for everybody
Discuss with the instructor and interact (don’t be shy!)
Ask questions during section breaks
DON’T DOs in the Lecture
1. Come more than 5 minutes late to the lecture
2. Chat with your friends in side-talks
3. Eat during the lecture
4. Play with your mobile phone or use it for texting during the lecture (put on
silent-mode please!)
5. Show disrespect, sarcasm, discrimination or do any violent act to your
colleagues
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
NEXT TUTORIAL: XML and
HTTP API Methods