Top Banner
Distributed Systems Principles and Paradigms Maarten van Steen VU Amsterdam, Dept. Computer Science Room R4.20, [email protected] Chapter 02: Architectures Version: October 25, 2009
32

slides.02

Jul 21, 2016

Download

Documents

David Barrett
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: slides.02

Distributed SystemsPrinciples and Paradigms

Maarten van Steen

VU Amsterdam, Dept. Computer ScienceRoom R4.20, [email protected]

Chapter 02: ArchitecturesVersion: October 25, 2009

Page 2: slides.02

Contents

Chapter01: Introduction02: Architectures03: Processes04: Communication05: Naming06: Synchronization07: Consistency & Replication08: Fault Tolerance09: Security10: Distributed Object-Based Systems11: Distributed File Systems12: Distributed Web-Based Systems13: Distributed Coordination-Based Systems

2 / 25

Page 3: slides.02

Architectures

Architectures

Architectural stylesSoftware architecturesArchitectures versus middlewareSelf-management in distributed systems

3 / 25

Page 4: slides.02

Architectures 2.1 Architectural styles

Architectural styles

Basic ideaOrganize into logically different components, and distribute thosecomponents over the various machines.

Layer N

Layer N-1

Layer 1

Layer 2

Request flow

Response flow

(a) (b)

Object

Object

Object

Object

Object

Method call

(a) Layered style is used for client-server system(b) Object-based style for distributed object systems.

4 / 25

Page 5: slides.02

Architectures 2.1 Architectural styles

Architectural Styles

ObservationDecoupling processes in space (“anonymous”) and also time(“asynchronous”) has led to alternative styles.

(a) (b)

Component Component

Component

Event bus

Publish

PublishEvent delivery

Component Component

Data delivery

Shared (persistent) data space

(a) Publish/subscribe [decoupled in space](b) Shared dataspace [decoupled in space and time]

5 / 25

Page 6: slides.02

Architectures 2.2 System Architectures

Centralized Architectures

Basic Client–Server ModelCharacteristics:

There are processes offering services (servers)There are processes that use services (clients)Clients and servers can be on different machinesClients follow request/reply model wrt to using services

Client

Request Reply

ServerProvide service Time

Wait for result

6 / 25

Page 7: slides.02

Architectures 2.2 System Architectures

Application Layering

Traditional three-layered viewUser-interface layer contains units for an application’s userinterfaceProcessing layer contains the functions of an application, i.e.without specific dataData layer contains the data that a client wants to manipulatethrough the application components

ObservationThis layering is found in many distributed information systems, usingtraditional database technology and accompanying applications.

7 / 25

Page 8: slides.02

Architectures 2.2 System Architectures

Application Layering

Traditional three-layered viewUser-interface layer contains units for an application’s userinterfaceProcessing layer contains the functions of an application, i.e.without specific dataData layer contains the data that a client wants to manipulatethrough the application components

ObservationThis layering is found in many distributed information systems, usingtraditional database technology and accompanying applications.

7 / 25

Page 9: slides.02

Architectures 2.2 System Architectures

Application Layering

Databasewith Web pages

Querygenerator

Rankingalgorithm

HTMLgenerator

User interface

Keyword expression

Database queries

Web page titleswith meta-information

Ranked listof page titles

HTML pagecontaining list

Processinglevel

User-interfacelevel

Data level

8 / 25

Page 10: slides.02

Architectures 2.2 System Architectures

Multi-Tiered Architectures

Single-tiered: dumb terminal/mainframe configurationTwo-tiered: client/single server configurationThree-tiered: each layer on separate machine

Traditional two-tiered configurations:

User interface User interface User interface

Application

User interface

Application

User interface

Application

Database

ApplicationApplication Application

Database Database Database Database Database

User interface

(a) (b) (c) (d) (e)

Client machine

Server machine

9 / 25

Page 11: slides.02

Architectures 2.2 System Architectures

Decentralized Architectures

ObservationIn the last couple of years we have been seeing a tremendous growthin peer-to-peer systems.

Structured P2P: nodes are organized following a specificdistributed data structureUnstructured P2P: nodes have randomly selected neighborsHybrid P2P: some nodes are appointed special functions in awell-organized fashion

NoteIn virtually all cases, we are dealing with overlay networks: data isrouted over connections setup between the nodes (cf. application-levelmulticasting)

10 / 25

Page 12: slides.02

Architectures 2.2 System Architectures

Decentralized Architectures

ObservationIn the last couple of years we have been seeing a tremendous growthin peer-to-peer systems.

Structured P2P: nodes are organized following a specificdistributed data structureUnstructured P2P: nodes have randomly selected neighborsHybrid P2P: some nodes are appointed special functions in awell-organized fashion

NoteIn virtually all cases, we are dealing with overlay networks: data isrouted over connections setup between the nodes (cf. application-levelmulticasting)

10 / 25

Page 13: slides.02

Architectures 2.2 System Architectures

Structured P2P Systems

Basic ideaOrganize the nodes in a structured overlay network such as a logicalring, and make specific nodes responsible for services based only ontheir ID.

015

214

313

412

879

610

511

1

Actual node

{2,3,4}

{5,6,7}

{8,9,10,11,12}

{13,14,15} {0,1}

Associated data keys

NoteThe system provides an operationLOOKUP(key) that will efficientlyroute the lookup request to theassociated node.

11 / 25

Page 14: slides.02

Architectures 2.2 System Architectures

Structured P2P Systems

Other exampleOrganize nodes in a d-dimensional space and let every node take theresponsibility for data in a specific region. When a node joins⇒ split aregion.

(0.2,0.8)

(0.6,0.7)

(0.9,0.9)

(0.2,0.3)

(0.7,0.2)

(0.9,0.6)

(0,0)

Keys associated with node at (0.6,0.7)

(0.2,0.8)

(0.6,0.7)

(0.9,0.9)

(0.2,0.45)

(0.7,0.2)

(0.9,0.6)

(0.2,0.15)

(1,0)

(0,1) (1,1)

Actual node

(a) (b)

12 / 25

Page 15: slides.02

Architectures 2.2 System Architectures

Unstructured P2P Systems

ObservationMany unstructured P2P systems attempt to maintain a random graph.

Basic principle

Each node is required to contact a randomly selected other node:

Let each peer maintain a partial view of the network, consisting of cother nodesEach node P periodically selects a node Q from its partial viewP and Q exchange information and exchange members from theirrespective partial views

NoteIt turns out that, depending on the exchange, randomness, but alsorobustness of the network can be maintained.

13 / 25

Page 16: slides.02

Architectures 2.2 System Architectures

Topology Management of Overlay Networks

Basic ideaDistinguish two layers: (1) maintain random partial views in lowest layer;(2) be selective on who you keep in higher-layer partial view.

Protocol for randomized

view

Protocol for specific overlay

Random peer

Links to randomly chosen other nodes

Links to topology- specific other nodes

Random overlay

Structured overlay

NoteLower layer feeds upper layer with random nodes; upper layer is selectivewhen it comes to keeping references.

14 / 25

Page 17: slides.02

Architectures 2.2 System Architectures

Topology Management of Overlay Networks

Constructing a torus

Consider a N×N grid. Keep only references to nearest neighbors:

‖ (a1,a2)− (b1,b2) ‖= d1 +d2

di = min{N−|ai −bi |, |ai −bi |}

Time

15 / 25

Page 18: slides.02

Architectures 2.2 System Architectures

Superpeers

ObservationSometimes it helps to select a few nodes to do specific work:superpeer.

Superpeer

Regular peer

Superpeer network

Examples

Peers maintaining anindex (for search)Peers monitoring thestate of the networkPeers being able to setupconnections

16 / 25

Page 19: slides.02

Architectures 2.2 System Architectures

Hybrid Architectures: Client-server combined with P2P

ExampleEdge-server architectures, which are often used for Content DeliveryNetworks

Edge server

Core Internet

Enterprise network

ISPISP

Client Content provider

17 / 25

Page 20: slides.02

Architectures 2.2 System Architectures

Hybrid Architectures: C/S with P2P – BitTorrent

Node 1

Node 2

Node N

.torrent file for F

A BitTorrent Web page

List of nodes storing F

Web server File server Tracker

Client nodeK out of N nodes

Lookup(F)

Ref. to file

server

Ref. to tracker

Basic ideaOnce a node has identified where to download a file from, it joins aswarm of downloaders who in parallel get file chunks from the source,but also distribute these chunks amongst each other.

18 / 25

Page 21: slides.02

Architectures 2.3 Architectures versus Middleware

Architectures versus Middleware

ProblemIn many cases, distributed systems/applications are developedaccording to a specific architectural style. The chosen style may not beoptimal in all cases⇒ need to (dynamically) adapt the behavior of themiddleware.

InterceptorsIntercept the usual flow of control when invoking a remote object.

19 / 25

Page 22: slides.02

Architectures 2.3 Architectures versus Middleware

Interceptors

Client application

B.do_something(value)

invoke(B, &do_something, value)

send([B, "do_something", value])

Request-level interceptor

Message-level interceptor

Object middleware

Local OS

Application stub

To object B

Nonintercepted call

Intercepted call

20 / 25

Page 23: slides.02

Architectures 2.3 Architectures versus Middleware

Adaptive Middleware

Separation of concerns: Try to separate extra functionalities and laterweave them together into a single implementation⇒ only toyexamples so far.

Computational reflection: Let a program inspect itself at runtime andadapt/change its settings dynamically if necessary⇒ mostly atlanguage level and applicability unclear.

Component-based design: Organize a distributed application throughcomponents that can be dynamically replaced when needed⇒highly complex, also many intercomponent dependencies.

Fundamental questionDo we need adaptive software at all, or is the issue adaptive systems?

21 / 25

Page 24: slides.02

Architectures 2.3 Architectures versus Middleware

Adaptive Middleware

Separation of concerns: Try to separate extra functionalities and laterweave them together into a single implementation⇒ only toyexamples so far.

Computational reflection: Let a program inspect itself at runtime andadapt/change its settings dynamically if necessary⇒ mostly atlanguage level and applicability unclear.

Component-based design: Organize a distributed application throughcomponents that can be dynamically replaced when needed⇒highly complex, also many intercomponent dependencies.

Fundamental questionDo we need adaptive software at all, or is the issue adaptive systems?

21 / 25

Page 25: slides.02

Architectures 2.3 Architectures versus Middleware

Adaptive Middleware

Separation of concerns: Try to separate extra functionalities and laterweave them together into a single implementation⇒ only toyexamples so far.

Computational reflection: Let a program inspect itself at runtime andadapt/change its settings dynamically if necessary⇒ mostly atlanguage level and applicability unclear.

Component-based design: Organize a distributed application throughcomponents that can be dynamically replaced when needed⇒highly complex, also many intercomponent dependencies.

Fundamental questionDo we need adaptive software at all, or is the issue adaptive systems?

21 / 25

Page 26: slides.02

Architectures 2.3 Architectures versus Middleware

Adaptive Middleware

Separation of concerns: Try to separate extra functionalities and laterweave them together into a single implementation⇒ only toyexamples so far.

Computational reflection: Let a program inspect itself at runtime andadapt/change its settings dynamically if necessary⇒ mostly atlanguage level and applicability unclear.

Component-based design: Organize a distributed application throughcomponents that can be dynamically replaced when needed⇒highly complex, also many intercomponent dependencies.

Fundamental questionDo we need adaptive software at all, or is the issue adaptive systems?

21 / 25

Page 27: slides.02

Architectures 2.3 Architectures versus Middleware

Adaptive Middleware

Separation of concerns: Try to separate extra functionalities and laterweave them together into a single implementation⇒ only toyexamples so far.

Computational reflection: Let a program inspect itself at runtime andadapt/change its settings dynamically if necessary⇒ mostly atlanguage level and applicability unclear.

Component-based design: Organize a distributed application throughcomponents that can be dynamically replaced when needed⇒highly complex, also many intercomponent dependencies.

Fundamental questionDo we need adaptive software at all, or is the issue adaptive systems?

21 / 25

Page 28: slides.02

Architectures 2.4 Self-management in Distributed Systems

Self-managing Distributed Systems

ObservationDistinction between system and software architectures blurs whenautomatic adaptivity needs to be taken into account:

Self-configurationSelf-managingSelf-healingSelf-optimizingSelf-*

WarningThere is a lot of hype going on in this field of autonomic computing.

22 / 25

Page 29: slides.02

Architectures 2.4 Self-management in Distributed Systems

Self-managing Distributed Systems

ObservationDistinction between system and software architectures blurs whenautomatic adaptivity needs to be taken into account:

Self-configurationSelf-managingSelf-healingSelf-optimizingSelf-*

WarningThere is a lot of hype going on in this field of autonomic computing.

22 / 25

Page 30: slides.02

Architectures 2.4 Self-management in Distributed Systems

Feedback Control Model

ObservationIn many cases, self-* systems are organized as a feedback controlsystem.

Core of distributed system

Metric estimation

Analysis

Adjustment measures

+/-+/-

+/-

Reference input

Initial configuration

Uncontrollable parameters (disturbance / noise)

Observed output

Measured outputAdjustment triggers

Corrections

23 / 25

Page 31: slides.02

Architectures 2.4 Self-management in Distributed Systems

Example: Globule

GlobuleCollaborative CDN that analyzes traces to decide where replicas ofWeb content should be placed. Decisions are driven by a general costmodel:

cost = (w1×m1)+(w2×m2)+ · · ·+(wn×mn)

24 / 25

Page 32: slides.02

Architectures 2.4 Self-management in Distributed Systems

Example: Globule

Replica server

Core Internet

Enterprise network

ISPISP

Client

Origin server

Client Client

Globule origin server collects traces and does what-if analysis bychecking what would have happened if page P would have beenplaced at edge server S.Many strategies are evaluated, and the best one is chosen.

25 / 25