Docsity
Docsity

Prepare for your exams
Prepare for your exams

Study with the several resources on Docsity


Earn points to download
Earn points to download

Earn points by helping other students or get them with a premium plan


Guidelines and tips
Guidelines and tips

Distributed Systems Architectures-Software Engineering-Lecture Slides, Slides of Software Engineering

This lecture is part of lecture series for Software Engineering course. Prof. Prateek Aron delivered this lecture at Allahabad University. Its main points are: Distributed, System, Architecture, Execute, Processor, Information, Personal, Embedded, Scalability, Concurrency, Security

Typology: Slides

2011/2012

Uploaded on 07/16/2012

sanaka
sanaka 🇮🇳

4.6

(21)

72 documents

1 / 28

Toggle sidebar

Related documents


Partial preview of the text

Download Distributed Systems Architectures-Software Engineering-Lecture Slides and more Slides Software Engineering in PDF only on Docsity!

Distributed Systems Architectures

Architectural design for software that

executes on more than one processor

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

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.

Distributed System Characteristics

 Resource sharing

 Openness

 Concurrency

 Scalability

 Fault tolerance

 Transparency

Distributed system

disadvantages :

 Complexity

 Security

 Manageability

 Unpredictability

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

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

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

A Multiprocessor Traffic Control System

Traffic lights

controlLight process

Traffic flowprocessor Traffic light controlprocessor

Traffic flow sensorsand cameras Operator consoles

processorSensor

controlSensor process

Displayprocess

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

A Client-Server System

Client process

 - s - s2 s 
  • c1 s
    • c2 c3 c
      • c
        • c6 c7 c - c - c - c - c

Computers in a C/S Network

Network SC2^ SC

CC1 CC2 CC

CC4 CC5 CC

computerServer

computerClient

s1, s2 s3, s

c5, c6, c

c1 c2 (^) c3, c

c8, c9 c10, c11, c

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

Application Layers

Presentation layer

Application processing layer

Data management layer

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.

Thin and Fat Clients

Thin-client model

Fat-client model Client

Client

Server Data management Application processing

Presentation

Server Data management

Presentation Application processing

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

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

A Client-Server ATM System

Account server

Customer account database

Tele- processing monitor

ATM

ATM

ATM

ATM

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.

A 3-Tier Client-Server Architecture

Client

Server Data management

Presentation Server Application processing

An Internet Banking System

Datab ase server Customer account database

Web server Client

Client

Client

Client

Account service provision SQL

SQL query

HTTP interaction

Use of Client-Server Architectures

COMP201 - Software Engineering  22

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. docsity.com

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 client- server systems

Distributed Object Architecture

Software bus

o1 o2 o3 o4

o5 o6

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

S (o5) S (o6)

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.