Sie sind auf Seite 1von 44

Distributed Systems Architectures

Architectural design for software 
that executes on more than one 
processor

©Ian Sommerville 2000  Software Engineering, 6th edition. Chapter 11 Slide 1


Objectives
● To explain the advantages and disadvantages of 
distributed systems architectures
● To describe different approaches to the 
development of client­server systems
● To explain the differences between client­server 
and distributed object architectures
● To describe object request brokers and the 
principles underlying the CORBA standards

©Ian Sommerville 2000  Software Engineering, 6th edition. Chapter 11 Slide 2


Topics covered
● Multiprocessor architectures  
● Client­server architectures
● Distributed object architectures
● CORBA

©Ian Sommerville 2000  Software Engineering, 6th edition. Chapter 11 Slide 3


Distributed systems
● Virtually all large computer­based systems are 
now distributed systems
● Information processing is distributed over several 
computers rather than confined to a single 
machine
● Distributed software engineering is now very 
important

©Ian Sommerville 2000  Software Engineering, 6th edition. Chapter 11 Slide 4


System types
● Personal systems that are not distributed and that 
are  designed  to  run  on  a  personal  computer  or 
workstation. 
● Embedded systems that run on a single processor 
or on an integrated group of processors. 
● Distributed  systems  where  the  system  software 
runs on a loosely integrated group of cooperating 
processors linked by a network.  

©Ian Sommerville 2000  Software Engineering, 6th edition. Chapter 11 Slide 5


Distributed system characteristics
● Resource sharing
● Openness
● Concurrency
● Scalability
● Fault tolerance
● Transparency

©Ian Sommerville 2000  Software Engineering, 6th edition. Chapter 11 Slide 6


Distributed system disadvantages
● Complexity
● Security
● Manageability
● Unpredictability

©Ian Sommerville 2000  Software Engineering, 6th edition. Chapter 11 Slide 7


Design issue Description
Resource The resources in a distributed system are spread across different
identification computers and a naming scheme has to be devised so that users can
discover and refer to the resources that they need. An example of
such a naming scheme is the URL (Uniform Resource Locator) that
is used to identify WWW pages. If a meaningful and universally
understood identification scheme is not used then many of these
resources will be inaccessible to system users.
Communications The universal availability of the Internet and the efficient
implementation of Internet TCP/IP communication protocols means
that, for most distributed systems, these are the most effective way
for the computers to communicate. However, where there are
specific requirements for performance, reliability etc. alternative
approaches to communications may be used.
Quality of service The quality of service offered by a system reflects its performance,
availability and reliability. It is affected by a number of factors such
as the allocation of processes to processes in the system, the
distribution of resources across the system, the network and the
system hardware and the adaptability of the system.
Software The software architecture describes how the application
architectures functionality is distributed over a number of logical components and
how these components are distributed across processors. Choosing
the right architecture for an application is essential to achieve the
desired quality of service.

Issues in distributed system design
Distributed systems archiectures
● Client­server architectures
• Distributed services which are called on by clients. Servers that 
provide services are treated differently from clients that use 
services
● Distributed object architectures
• No distinction between clients and servers. Any object on the 
system may provide and use services from other objects

©Ian Sommerville 2000  Software Engineering, 6th edition. Chapter 11 Slide 9


Middleware
● Software that manages and supports the different 
components of a distributed system. In essence, it 
sits in the middle of the system
● Middleware is usually off­the­shelf rather than 
specially written software
● Examples
• Transaction processing monitors
• Data convertors
• Communication controllers

©Ian Sommerville 2000  Software Engineering, 6th edition. Chapter 11 Slide 10


Multiprocessor architectures
● Simplest distributed system model
● System composed of multiple processes which 
may (but need not) execute on different 
processors
● Architectural model of many large real­time 
systems
● Distribution of process to processor may be pre­
ordered or may be under the control of a 
despatcher

©Ian Sommerville 2000  Software Engineering, 6th edition. Chapter 11 Slide 11


p
rcpS S
oen
c sor T r
pa f
o ice f
sl
o
w
r T
r
a
f
i
c
 
p
r
o
Ll
g
h
e
s
i
g
h
tt
 
c
o
n
tr
o
l
A multiprocessor traffic control system

eorntsorl D iproscpelay
s pesl
c
on
r
o
T
rafnicd flow
 sreanors O
am perator consoles T
r
a
f
i
c
 l
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

©Ian Sommerville 2000  Software Engineering, 6th edition. Chapter 11 Slide 13


c
2 c
3 c
4 c1
2c
1 S
e
r
v
c1c5s1s2s4s3c1c09C 
p
r
o
ce
s
A client­server system

c6c7 c8 l
i
e
n
t
 p
r
o
c
es
©Ian Sommerville 2000  Software Engineering, 6th edition. Chapter 11 Slide 14
sS  s2 N
1,C Cc
1
1 C 2
etw c
2 c
3
,
 
c
C
34
ork sS
Computers in a C/S network

 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

©Ian Sommerville 2000  Software Engineering, 6th edition. Chapter 11 Slide 16


Application layers
P
rA
pD e s
laictat mn
io t
n a
 llayn pi
o
ryeg
o n 
l
cremayer
esnin
g
©Ian Sommerville 2000 
t
Software Engineering, 6th edition. Chapter 11 Slide 17
Thin and fat clients
● Thin­client model 
• In a thin­client model, all of the application processing and data 
management  is  carried  out  on  the  server.  The  client  is  simply 
responsible for running the presentation software.
● Fat­client model 
• In  this  model,  the  server  is  only  responsible  for  data 
management.  The  software  on  the  client  implements  the 
application logic and the interactions with the system user.

©Ian Sommerville 2000  Software Engineering, 6th edition. Chapter 11 Slide 18


T
him
n ­ocdlien
tC P
r
e
s
n
t
a
lientPi
o
n
Thin and fat clients

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 m 
p
r
o
ce
s
in
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

©Ian Sommerville 2000  Software Engineering, 6th edition. Chapter 11 Slide 20


Fat client model
● More processing is delegated to the client as the 
application processing is locally executed
● Most suitable for new C/S systems where the 
capabilities of the client system are known in 
advance
● More complex than a thin client model especially 
for management. New versions of the application 
have to be installed on all clients

©Ian Sommerville 2000  Software Engineering, 6th edition. Chapter 11 Slide 21


A
A
T
M
A
T
MT
Mp
r
o
mA
c
o
T
e
l
­
c
s
i
n
g
t
o
ru
n
t
 
s
C
u
a
de
r
v
t
o
m
e
c
u
n
t
b
a
sr
A client­server ATM system

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

©Ian Sommerville 2000  Software Engineering, 6th edition. Chapter 11 Slide 23


C P
r
e
sn
t
a
i
o
n
lient A Se r v S
D
proliecsatiogn m e
r
av
tangem
nt
A 3­tier C/S architecture

©Ian Sommerville 2000  Software Engineering, 6th edition. Chapter 11 Slide 24


C
lCilieennttH
T
P
 interactionA
An internet banking system

W
e
b
 
s
e
c
o
u
n
t
 
s
p
r
v
ir
v
e
r
v
i
c
e
o
n S
Q
L
 
q
u
e
ryD
a
t
b
a
s
C
u
S
Q
L
a
c
de
 
r
v
t
o
m
u
n
t
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

©Ian Sommerville 2000  Software Engineering, 6th edition. Chapter 11 Slide 26


Distributed object architectures
● There is no distinction in a distributed object 
architectures between clients and servers
● Each distributable entity is an object that provides 
services to other objects and receives services 
from other objects
● Object communication is through a middleware 
system called an object request broker (software 
bus)
● However, more complex to design than C/S 
systems
©Ian Sommerville 2000  Software Engineering, 6th edition. Chapter 11 Slide 27
So1 o
 (o1) S 2
 (o2)S o
3
S
 
(
o3
) So
4
 
(
o
4
)
Distributed object architecture

o 5 o
f
t
w
a
r

b
u
s
 (o5) S
S o
6
 ()
©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

©Ian Sommerville 2000  Software Engineering, 6th edition. Chapter 11 Slide 29


Uses of distributed object architecture
● As a logical model that allows you to structure 
and organise the system. In this case, you think 
about how to provide application functionality 
solely in terms of services and combinations of 
services
● As a flexible approach to the implementation of 
client­server systems. The logical model of the 
system is a client­server model but both clients 
and servers are realised as distributed objects 
communicating through a software bus

©Ian Sommerville 2000  Software Engineering, 6th edition. Chapter 11 Slide 30


D
aD
tatbbaassee 1
A data mining system

 
2 I
n
t
e
g
r
at
o
r
 
1 R
e
p
o
V
i
s
urt
 
a
lg
ise
n
.
e
r
Datbase 3 D I
n
t
e
g
ra
t
o
r
 
2 isplay
©Ian Sommerville 2000  Software Engineering, 6th edition. Chapter 11 Slide 31
Data mining system
● The logical model of the system is not one of 
service provision where there are distinguished 
data management services
● It allows the number of databases that are 
accessed to be increased without disrupting the 
system
● It allows new types of relationship to be mined by 
adding new integrator objects

©Ian Sommerville 2000  Software Engineering, 6th edition. Chapter 11 Slide 32


CORBA
● CORBA is an international standard for an Object 
Request Broker ­ middleware to manage 
communications between distributed objects
● Several implementation of CORBA are available
● DCOM is an alternative approach by Microsoft to 
object request brokers
● CORBA has been defined by the Object 
Management Group

©Ian Sommerville 2000  Software Engineering, 6th edition. Chapter 11 Slide 33


Application structure
● Application objects
● Standard objects, defined by the OMG, for a 
specific domain e.g. insurance
● Fundamental CORBA services such as directories 
and security management
● Horizontal (i.e. cutting across applications) 
facilities such as user interface facilities

©Ian Sommerville 2000  Software Engineering, 6th edition. Chapter 11 Slide 34


A
pobljiecatsionO
bject C
reO
CORBA application structure

quD
f
eRa
sBo
c
tA ml a
i
t
e
 b sro
k ns
e
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

©Ian Sommerville 2000  Software Engineering, 6th edition. Chapter 11 Slide 36


CORBA objects
● CORBA objects are comparable, in principle, to 
objects in C++ and Java
● They MUST have a separate interface definition 
that is expressed using a common language (IDL) 
similar to C++
● There is a mapping from this IDL to 
programming languages (C++, Java, etc.)
● Therefore, objects written in different languages 
can communicate with each other

©Ian Sommerville 2000  Software Engineering, 6th edition. Chapter 11 Slide 37


Object request broker (ORB)
●  The ORB handles object communications. It 
knows of all objects in the system and their 
interfaces
● Using an ORB, the calling object binds an IDL 
stub that defines the interface of the called object
● Calling this stub results in calls to the ORB which 
then calls the required object through a published 
IDL skeleton that links the interface to the service 
implementation

©Ian Sommerville 2000  Software Engineering, 6th edition. Chapter 11 Slide 38


So 1
 (Iso1
)D
L So
2
 
(
o
2
)
tO ub sI
k
eD
L
l
t
o
n
ORB­based object communications

©Ian Sommerville 2000 
bject R
equest B
ror
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
©Ian Sommerville 2000  Software Engineering, 6th edition. Chapter 11 Slide 40
S o 1
 I(D
o1
)LS
Inter­ORB communications

o
 ID 2
2) S
(oL o 3
 I(D
)LS o4
 I(D
oL
4)
O
bject R
equest B
rokerN etw
orkO
bj e
c

R
e
qu
e
s
t
 B
r
o
k 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

©Ian Sommerville 2000  Software Engineering, 6th edition. Chapter 11 Slide 42


Key points
● Almost all new large systems are distributed 
systems
● Distributed systems support resource sharing, 
openness, concurrency, scalability, fault tolerance 
and transparency
● Client­server architectures involve services being 
delivered by servers to programs operating on 
clients
● User interface software always runs on the client 
and data management on the server
©Ian Sommerville 2000  Software Engineering, 6th edition. Chapter 11 Slide 43
Key points
● In a distributed object architecture, there is no 
distinction between clients and servers
● Distributed object systems require middleware to 
handle object communications
● The CORBA standards are a set of middleware 
standards that support distributed object 
architectures

©Ian Sommerville 2000  Software Engineering, 6th edition. Chapter 11 Slide 44

Das könnte Ihnen auch gefallen