Architectural Design
Download
Report
Transcript Architectural Design
Lecturer: Sebastian Coope
Ashton Building, Room G.18
E-mail: [email protected]
COMP 201 web-page:
http://www.csc.liv.ac.uk/~coopes/comp201
Lecture 16 – Distributed System Architectures
Distributed Systems Architectures
Architectural design for software that
executes on more than one processor
COMP201 - Software Engineering
2
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
COMP201 - Software Engineering
3
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.
COMP201 - Software Engineering
4
Distributed System Characteristics
Resource sharing
Openness
Concurrency
Scalability
Fault tolerance
Transparency
Distributed system
disadvantages :
Complexity
Security
Manageability
Unpredictability
COMP201 - Software Engineering
5
Distributed Systems Architectures
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
COMP201 - Software Engineering
6
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 converters
Communication controllers
COMP201 - Software Engineering
7
1. 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 dispatcher
COMP201 - Software Engineering
8
A Multiprocessor Traffic Control System
Sensor
processor
Sensor
control
process
Traffic flow
processor
Display
process
Traffic light control
processor
Light
control
process
Traffic lights
Traffic flow sensors
and cameras
Operator consoles
COMP201 - Software Engineering
9
2. 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
COMP201 - Software Engineering
10
A Client-Server System
c3
c2
c4
c12
c11
c1
s1
Server process
s4
c10
c5
Client process
s2
c6
s3
c9
c8
c7
COMP201 - Software Engineering
11
Computers in a C/S Network
c1
c2
CC1
CC2
CC3
Network
s1, s2
c3, c4
s3, s4
Server
computer
SC1
SC2
c5, c6, c7
c8, c9
CC4
CC5
COMP201 - Software Engineering
c10, c11, c12
Client
computer
CC6
12
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
COMP201 - Software Engineering
13
Application Layers
Presentation layer
Application processing
layer
Data management
layer
COMP201 - Software Engineering
14
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.
COMP201 - Software Engineering
15
Thin and Fat Clients
Presentation
Thin-client
model
Data management
Application
processing
Client
Presentation
Application processing
Fat-client
model
Client
Server
COMP201 - Software Engineering
Server
Data
management
16
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
COMP201 - Software Engineering
17
Fat Client Model
More processing is delegated to the client as the
application processing is locally executed
Most suitable for new client-server 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
COMP201 - Software Engineering
18
A Client-Server ATM System
ATM
ATM
Account server
TeleCustomer
processing account
monitor
database
ATM
ATM
COMP201 - Software Engineering
19
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 to the data management or
application processing layers.
COMP201 - Software Engineering
20
A 3-Tier Client-Server Architecture
Presentation
Client
Server
Server
Application
processing
Data
management
COMP201 - Software Engineering
21
An Internet Banking System
Client
HTTP interaction
Datab ase server
Web server
Client
Account service
provision
SQL query
SQL
Customer
account
database
Client
Client
COMP201 - Software Engineering
22
Use of Client-Server Architectures
Architecture
Applications
Two-tier C/S
with thin clients
Legacy system applications where separating application
processing and data management is impractical.
Computationally-intensive applications such as compilers
with little or no data management. Data-intensive
applications (browsing/querying) with little or no
application processing.
Two-tier C/S
with fat clients
Applications where processing uses off-the-shelf software
(eg. Microsoft Excel) on the client. Applications with
relatively stable end-user functionality used in an
environment with well-established system management.
Three-tier or
multi-tier C/S
architecture
Large-scale applications with hundreds or thousands of
clients. Applications where both the data and applications
are volatile.
COMP201 - Software Engineering
23
3. 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, they can be more complex to design than clientserver systems
COMP201 - Software Engineering
24
Distributed Object Architecture
o1
o2
o3
o4
S (o1)
S (o2)
S (o3)
S (o4)
Software bus
o5
o6
S (o5)
S (o6)
COMP201 - Software Engineering
25
Advantages of Distributed Object Architecture
It allows the system designer to delay decisions on where
and how services should be provided
Service-providing objects can execute on any node of the
network and thus the distinction between thin/fat-client
models becomes irrelevant.
It is a very open system architecture that allows new
resources to be added to it as required
Object communication standards have been developed
allowing objects written in different languages to
communicate with each other.
COMP201 - Software Engineering
26
Advantages of Distributed Object Architecture
The system is flexible and scalable
New objects can be added as the load on the system
increases without disrupting the other system objects.
Replicated object can be created to cope with load.
It is possible to reconfigure the system dynamically with
objects migrating across the network as required
This may be important when there is fluctuating patterns of
demand on services. A service-providing object can migrate
to the same processor as service-requesting objects, thus
improving performance.
COMP201 - Software Engineering
27
Lecture Key Points
Client-server systems are distributed systems where the
system is modelled as a set of services provided by
servers to client processes.
In a client-server system, the user interface always runs
on a client and data management is always provided by a
shared server.
Application functionality may be implemented on the
client computer or the server.
COMP201 - Software Engineering
28
Lecture Key Points
In a distributed object architecture, there is no distinction
between clients and servers; objects provide general
services that may be called on by other objects.
Distributed object systems require middleware to handle
object communications and to allow objects to be added
or removed from the system.
COMP201 - Software Engineering
29