lecturer: sebastian coope ashton building, room g.18 e-mail: coopes@liverpool.ac.uk comp 201...

Post on 14-Dec-2015

215 Views

Category:

Documents

1 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Software EngineeringCOMP 201

Lecturer: Sebastian CoopeAshton 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

l 2l COMP201 - Software Engineering

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

l 3l COMP201 - Software Engineering

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.

l 4l COMP201 - Software Engineering

Distributed System Characteristics

Resource sharingOpennessConcurrencyScalabilityFault toleranceTransparency

Distributed system disadvantages :

l Complexityl Securityl Manageabilityl Unpredictability

l 5l COMP201 - Software Engineering

Distributed Systems Architectures

Client-server architecturesDistributed services which are called on by clients. Servers

that provide services are treated differently from clients that use services

Distributed object architecturesNo distinction between clients and servers. Any object on

the system may provide and use services from other objects

l 6l COMP201 - Software Engineering

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

ExamplesTransaction processing monitorsData convertersCommunication controllers

l 7l COMP201 - Software Engineering

1. Multiprocessor Architectures

Simplest distributed system modelSystem composed of multiple processes which may (but

need not) execute on different processorsArchitectural model of many large real-time systemsDistribution of process to processor may be pre-ordered

or may be under the control of a dispatcher

l 8l COMP201 - Software Engineering

A Multiprocessor Traffic Control System

Traffic lights

Lightcontrolprocess

Traffic light controlprocessor

Traffic flowprocessor

Operator consolesTraffic flow sensors

and cameras

Sensorprocessor

Sensorcontrolprocess

Displayprocess

l 9l COMP201 - Software Engineering

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

l 10l COMP201 - Software Engineering

A Client-Server System

s1

s2 s3

s4c1

c2 c3 c4

c5

c6c7 c8

c9

c10

c11

c12

Client process

Server process

l 11l COMP201 - Software Engineering

Computers in a C/S Network

Network

SC1SC2

CC1 CC2 CC3

CC5 CC6CC4

Servercomputer

Clientcomputer

s1, s2 s3, s4

c5, c6, c7

c1 c2 c3, c4

c8, c9 c10, c11, c12

l 12l COMP201 - Software Engineering

Layered Application Architecture

Presentation layerConcerned with presenting the results of a computation to

system users and with collecting user inputsApplication 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 layerConcerned with managing the system databases

l 13l COMP201 - Software Engineering

Application Layers

Presentation layer

Application processinglayer

Data managementlayer

l 14l COMP201 - Software Engineering

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.

l 15l COMP201 - Software Engineering

Thin and Fat Clients

Thin-clientmodel

Fat-clientmodel Client

Client

Server

Data managementApplicationprocessing

Presentation

Server

Datamanagement

PresentationApplication processing

l 16l COMP201 - Software Engineering

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 clientA major disadvantage is that it places a heavy processing

load on both the server and the network

l 17l COMP201 - Software Engineering

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

l 18l COMP201 - Software Engineering

A Client-Server ATM System

Account server

Customeraccountdatabase

Tele-processing

monitor

ATM

ATM

ATM

ATM

l 19l COMP201 - Software Engineering

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.

l 20l COMP201 - Software Engineering

A 3-Tier Client-Server Architecture

Client

Server

Datamanagement

PresentationServer

Applicationprocessing

l 21l COMP201 - Software Engineering

An Internet Banking System

Database server

Customeraccountdatabase

Web server

Client

Client

Client

Client

Account serviceprovision

SQLSQL query

HTTP interaction

l 22l COMP201 - Software Engineering

Use of Client-Server Architectures

l COMP201 - Software Engineering l 23

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.

3. Distributed Object ArchitecturesThere is no distinction in a distributed object

architectures between clients and serversEach 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 client-server systems

l 24l COMP201 - Software Engineering

Distributed Object Architecture

Software bus

o1 o2 o3 o4

o5 o6

S (o1) S (o2) S (o3) S (o4)

S (o5) S (o6)

l 25l COMP201 - Software Engineering

Advantages of Distributed Object Architecture

It allows the system designer to delay decisions on where and how services should be providedService-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 requiredObject communication standards have been developed

allowing objects written in different languages to communicate with each other.

l 26l COMP201 - Software Engineering

Advantages of Distributed Object Architecture

The system is flexible and scalableNew 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 requiredThis 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.

l 27l COMP201 - Software Engineering

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.

l COMP201 - Software Engineering l 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.

l COMP201 - Software Engineering l 29

top related