Distributed Systems Architectures: Architectural Design For Software That Executes On More Than One Processor
Distributed Systems Architectures: Architectural Design For Software That Executes On More Than One Processor
eorntsorl D iproscpelay Li
g
ht
s pesl
c
on
ro
T
rafnicdflow
sreanors O
am peratorconsoles T
r
a
f
i
cl
g
h
t
s
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 11 Slide 12
Client-server architectures
The application is modelled as a set of services
that are provided by servers and a set of clients
that use these services
Clients know of servers but servers need not
know of clients
Clients and servers are logical processes
The mapping of processors to processes is not
necessarily 1 : 1
c1c5s1s2s4s3c1c09C
c6c7 c8 l
i
e
n
tp
r
o
c
es
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 11 Slide 14
Cc
1
1 C 2 c
2 c
3
,
c
C
34
Computers in a C/S network
sS s2 N
1,C etw
ork sS s14coS
3,C eC
rm
tcomv
p
u e
rlipeuntr
c5,c6,c7C
4C 5Cc
8
,
c
9 c
1
0
,
c
61
,
c12
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 11 Slide 15
Layered application architecture
Presentation layer
• Concerned with presenting the results of a computation to
system users and with collecting user inputs
Application processing layer
• Concerned with providing application specific functionality
e.g., in a banking system, banking functions such as open
account, close account, etc.
Data management layer
• Concerned with managing the system databases
S
e
D
a
t
m
a
A
p
l
r
o r
v
n
i
c
e
s g
e
m
t
i
on
t
F
amt-ocdlientC r
e
s
n
A
p
l
i
ct
a
i
o
n
lient mp
r
o
ce
s
i
n
g S
e
D r
v
a
tangem
nt
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 11 Slide 19
Thin client model
Used when legacy systems are migrated to client
server architectures.
• The legacy system acts as a server in its own right with a
graphical interface implemented on a client
A major disadvantage is that it places a heavy
processing load on both the server and the
network
A
T
M
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 11 Slide 22
Three-tier architectures
In a three-tier architecture, each of the
application architecture layers may execute on a
separate processor
Allows for better performance than a thin-client
approach and is simpler to manage than a fat-
client approach
A more scalable architecture - as demands
increase, extra servers can be added
C
lient A D
proliecsatiogn m a
tangem
nt
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 11 Slide 24
C
lCilieennttH
T
P
interactionA
W
e
b
s
e
An internet banking system
c
o
u
n
t
p
r
v
i
sr
v
i
c
e
o
n S
Q
L
q
u
e
r
yD
a
t
S
Q
Lb
a
s
e
r
v
C
u
t
o
m
c
u
n
t
d
a
b
a
s
ee
r
C
lC
ilieenntt
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 11 Slide 25
Use of C/S architectures
Architecture Applications
Two-tier C/S Legacy system applications where separating application
architecture with processing and data management is impractical
thin clients Computationally-intensive applications such as compilers with
little or no data management
Data-intensive applications (browsing and querying) with little
or no application processing.
Two-tier C/S Applications where application processing is provided by
architecture with COTS (e.g. Microsoft Excel) on the client
fat clients Applications where computationally-intensive processing of
data (e.g. data visualisation) is required.
Applications with relatively stable end-user functionality used
in an environment with well-established system management
Three-tier or Large scale applications with hundreds or thousands of clients
multi-tier C/S Applications where both the data and the application are
architecture volatile.
Applications where data from multiple sources are integrated
o5 o
f
t
w
a
r
eb
u
s
(o5) S
S o6
()
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 11 Slide 28
Advantages of distributed object architecture
It allows the system designer to delay decisions
on where and how services should be provided
It is a very open system architecture that allows
new resources to be added to it as required
The system is flexible and scaleable
It is possible to reconfigure the system
dynamically with objects migrating across the
network as required
bjectC
reO
qu
eRD
f
a
sBo
m
c
tAl a
i
t
e
bsro
k n
es
rervicesCH
o
r
i
z
o
n
t
O
R
B
A
f
c
ia
l
e
s
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 11 Slide 35
CORBA standards
An object model for application objects
• A CORBA object is an encapsulation of state with a well-defined,
language-neutral interface defined in an IDL (interface definition
language)
An object request broker that manages requests for
object services
A set of general object services of use to many
distributed applications
A set of common components built on top of these
services
tO u
bjectRb s
equestBI
k
eD
L
l
t
o
n
ror
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 11 Slide 39
Inter-ORB communications
ORBs are not usually separate programs but are a
set of objects in a library that are linked with an
application when it is developed
ORBs handle communications between objects
executing on the sane machine
Several ORBS may be available and each computer
in a distributed system will have its own ORB
Inter-ORB communications are used for distributed
object calls
2) S
oL o 3
(ID
)LS o
4
(ID
oL
4)
O
bjectR
equestB
rokerN etw
orkO
b
j e
c
tR
e
q
ue
s
t
B
r
ok e
r
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 11 Slide 41
CORBA services
Naming and trading services
• These allow objects to discover and refer to other objects on the
network
Notification services
• These allow objects to notify other objects that an event has
occurred
Transaction services
• These support atomic transactions and rollback on failure