Introduction to Distributed Systems Material adapted from Distributed - - PowerPoint PPT Presentation

introduction to distributed systems
SMART_READER_LITE
LIVE PREVIEW

Introduction to Distributed Systems Material adapted from Distributed - - PowerPoint PPT Presentation

Introduction to Distributed Systems Material adapted from Distributed Systems: Concepts & Design , George Coulouris, et al. and Engineering Distributed Objects , Wolfgang Emmerich Outline What is a Distributed System? Examples of


slide-1
SLIDE 1

Introduction to Distributed Systems

Material adapted from Distributed Systems: Concepts & Design, George Coulouris, et al. and Engineering Distributed Objects, Wolfgang Emmerich

slide-2
SLIDE 2

SWEN-342 Engineering of Concurrent & Distributed Software Systems

Outline

 What is a Distributed System?  Examples of Distributed Systems  Distributed System Requirements  Transparency in Distributed System

slide-3
SLIDE 3

What is a Distributed System?

slide-4
SLIDE 4

SWEN-342 Engineering of Concurrent & Distributed Software Systems

What is a Distributed System?

 A system in which hardware or software components

located at networked computers communicate and coordinate their actions only by passing messages. (Coulouris)

 A distributed system is a collection of autonomous hosts

that that are connected through a computer network. Each host executes components and operates a distribution middleware, which enables the components to coordinate their activities in such a way that users perceive the system as a single, integrated computing facility. (Emmerich)

slide-5
SLIDE 5

SWEN-342 Engineering of Concurrent & Distributed Software Systems

Hostn-1 Hostn Host2 Host1

What is a Distributed System?

Middleware Middleware Middleware Middleware Network Operating System Network Operating System Network Operating System Network Operating System Hardware Hardware Hardware Hardware Component1 Componentn Component1 Componentn Component1 Componentn Component1 Componentn

Network

slide-6
SLIDE 6

SWEN-342 Engineering of Concurrent & Distributed Software Systems

Centralized System Characteristics

 One component with non-autonomous parts  Component shared by users all the time  All resources accessible  Software runs in a single process  Single Point of control  Single Point of failure

slide-7
SLIDE 7

SWEN-342 Engineering of Concurrent & Distributed Software Systems

Distributed System Characteristics

 Multiple autonomous components  Components are not shared by all users  Resources may not be accessible  Software runs in concurrent processes on different

processors

 Multiple Points of control  Multiple Points of failure

slide-8
SLIDE 8

SWEN-342 Engineering of Concurrent & Distributed Software Systems

Key Terms

 Resources – things shared in a distributed system

 hardware (disks, printers)  software (files, databases, data objects)

 Server – program or process that performs services in

response to requests from other processes.

 Client – process that makes requests of a server by

invoking an operation.

 Remote Invocation – complete send and response

sequence

 Servers & Clients are software processes

slide-9
SLIDE 9

Examples of Distributed Systems

slide-10
SLIDE 10

SWEN-342 Engineering of Concurrent & Distributed Software Systems

Boeing 777 Configuration Management

slide-11
SLIDE 11

SWEN-342 Engineering of Concurrent & Distributed Software Systems

Problems to be solved

Scale

 3,000,000 parts per aircraft  Configuration of every aircraft is different  CAA regulations demand that records are kept for every single part

  • f aircraft

 Aircraft evolve during maintenance  Boeing produce 500 aircraft per year  Configuration database grows by 1.5 billion parts each year  Projected life of each aircraft 30 years  45,000 engineers need on-line access to engineering data

slide-12
SLIDE 12

SWEN-342 Engineering of Concurrent & Distributed Software Systems

Problems to be solved (cont’d)

 COTS Integration

 Existing IT infrastructure was no longer appropriate  Boeing could not afford to build required IT

infrastructure from scratch

 Components were purchased from several different

specialized vendors

 relational database technology  enterprise resource planning  computer aided project planning

 Components needed to be integrated

slide-13
SLIDE 13

SWEN-342 Engineering of Concurrent & Distributed Software Systems

Problems to be solved (cont’d)

Heterogeneity 20 Sequent database machines as servers for the engineering data 200 UNIX application servers NT and UNIX workstations for engineers

slide-14
SLIDE 14

SWEN-342 Engineering of Concurrent & Distributed Software Systems

Why distributed object technology

 Object wrapping of COTS  Resolution of distribution at high level of abstraction  Resolution of heterogeneity  Scalability

slide-15
SLIDE 15

Distributed System Requirements

slide-16
SLIDE 16

SWEN-342 Engineering of Concurrent & Distributed Software Systems

Requirements

 Integration of new, legacy and components off-the-shelf

 Legacy components might not need to be re-engineered  COTS cannot be modified

 Heterogeneity of

 hardware platforms  operating systems  networks  programming languages

 Construction of distributed systems

slide-17
SLIDE 17

SWEN-342 Engineering of Concurrent & Distributed Software Systems

Common Requirements/Challenges

What are we trying to achieve when we construct a distributed system?

Certain requirements are common to many distributed systems

 Heterogeneity  Resource Sharing  Openness  Security  Concurrency  Scalability  Fault Tolerance  Transparency

slide-18
SLIDE 18

SWEN-342 Engineering of Concurrent & Distributed Software Systems

Resource Sharing

 Ability to use any hardware, software or data anywhere in

the system.

 Resource manager controls access, provides naming

scheme and controls concurrency.

 Resource sharing model (e.g. client/ server or object-

based) describing how

 resources are provided,  they are used and  provider and user interact with each other.

slide-19
SLIDE 19

SWEN-342 Engineering of Concurrent & Distributed Software Systems

Openness

 Openness is concerned with extensions and improvements

  • f distributed systems.

 Detailed interfaces of components need to be published.  New components have to be integrated with existing

components.

 Differences in data representation of interface types on

different processors (of different vendors) have to be resolved.

slide-20
SLIDE 20

SWEN-342 Engineering of Concurrent & Distributed Software Systems

Concurrency

 Components in distributed systems are executed in

concurrent processes.

 Components access and update shared resources (e.g.

variables, databases, device drivers).

 Integrity of the system may be violated if concurrent

updates are not coordinated.

 Lost updates  Inconsistent analysis

slide-21
SLIDE 21

SWEN-342 Engineering of Concurrent & Distributed Software Systems

Fault Tolerance

 Hardware, software and networks fail!  Distributed systems must maintain availability even at low

levels of hardware/software/network reliability.

 Fault tolerance is achieved by

 recovery  redundancy

slide-22
SLIDE 22

SWEN-342 Engineering of Concurrent & Distributed Software Systems

Scalability

 Adoption of distributed systems to

 accommodate more users  respond faster (this is the hard one)

 Usually done by adding more and/or faster processors.  Components should not need to be changed when scale of

a system increases.

 Design components to be scalable!

slide-23
SLIDE 23

Transparency in Distributed Systems

slide-24
SLIDE 24

SWEN-342 Engineering of Concurrent & Distributed Software Systems

Transparency

 Distributed systems should be perceived by users and

application programmers as a whole rather than as a collection of cooperating components.

 Transparency has different dimensions that represent

various properties distributed systems should have.

slide-25
SLIDE 25

SWEN-342 Engineering of Concurrent & Distributed Software Systems

Location Transparency

 Enables information objects to be accessed without

knowledge of their location.

 Example: File system operations in NFS  Example: Pages in the Web  Example: Tables in distributed databases

slide-26
SLIDE 26

SWEN-342 Engineering of Concurrent & Distributed Software Systems

Access Transparency Location Transparency Concurrency Transparency Migration Transparency Performance Transparency Scalability Transparency Replication Transparency Failure Transparency

Distribution Transparency

slide-27
SLIDE 27

SWEN-342 Engineering of Concurrent & Distributed Software Systems

Access Transparency

 Enables local and remote information objects to be

accessed using identical operations.

 Example: File system operations in NFS.  Example: Navigation in the Web.  Example: SQL Queries

slide-28
SLIDE 28

SWEN-342 Engineering of Concurrent & Distributed Software Systems

Concurrency Transparency

 Enables several processes to operate concurrently using

shared information objects without interference between them.

 Example: NFS  Example: Automatic teller machine network  Example: Database management system

slide-29
SLIDE 29

SWEN-342 Engineering of Concurrent & Distributed Software Systems

Replication Transparency

 Enables multiple instances of information objects to be

used to increase reliability and performance without knowledge of the replicas by users or application programs

 Example: Distributed DBMS  Example: Mirroring Web Pages.

slide-30
SLIDE 30

SWEN-342 Engineering of Concurrent & Distributed Software Systems

Failure Transparency

 Enables the concealment of faults  Allows users and applications to complete their tasks

despite the failure of other components.

 Example: Database Management System

slide-31
SLIDE 31

SWEN-342 Engineering of Concurrent & Distributed Software Systems

Migration Transparency

 Allows the movement of information objects within a

system without affecting the operations of users or application programs

 Example: NFS  Example: Web Pages

slide-32
SLIDE 32

SWEN-342 Engineering of Concurrent & Distributed Software Systems

Performance Transparency

 Allows the system to be reconfigured to improve

performance as loads vary.

 Example: Distributed make.

slide-33
SLIDE 33

SWEN-342 Engineering of Concurrent & Distributed Software Systems

Scaling Transparency

 Allows the system and applications to expand in scale

without change to the system structure or the application algorithms.

 Example: World-Wide-Web  Example: Distributed Database

slide-34
SLIDE 34

SWEN-342 Engineering of Concurrent & Distributed Software Systems

Access Transparency Location Transparency Concurrency Transparency Migration Transparency Performance Transparency Scalability Transparency Replication Transparency Failure Transparency

Distribution Transparency

slide-35
SLIDE 35

SWEN-342 Engineering of Concurrent & Distributed Software Systems

Two Views of Transparency

 The system should hide its distributed nature, programs

running on a multiple-computer system appear no different from a single-computer system.

 The system should not hide its distributed nature. The

programs are aware of the multiple computers in the system.

 When designing distributed applications we need to favor

the second view.

(see: “A Note on Distributed Computing”, Jim Waldo, et al.)

slide-36
SLIDE 36

SWEN-342 Engineering of Concurrent & Distributed Software Systems

Key Points

 What is a Distributed System  Adoption of Distributed Systems is driven by Non-

Functional Requirements

 Distribution needs to be transparent to users and

application designers

 Transparency has several dimensions  Transparency dimensions depend on each other