Architectural Design

advertisement
Lecturer: Sebastian Coope
Ashton Building, Room G.18
E-mail: coopes@liverpool.ac.uk
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
Download