distributed (operating) systems -architectures-

29
Distributed (Operating) Systems -Architectures- Fall 2011 Kocaeli University Computer Engineering Department

Upload: zelig

Post on 22-Mar-2016

67 views

Category:

Documents


3 download

DESCRIPTION

Distributed (Operating) Systems -Architectures-. Fall 2011 Kocaeli University Computer Engineering Department. Outline. Software architecture Layered architectures Object-based architectures Data-centered architectures Event-based architectures System Architecture - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Distributed (Operating) Systems  -Architectures-

Distributed (Operating) Systems -Architectures-

Fall 2011Kocaeli University Computer

Engineering Department

Page 2: Distributed (Operating) Systems  -Architectures-

Outline• Software architecture

– Layered architectures– Object-based architectures– Data-centered architectures– Event-based architectures

• System Architecture– Centralized, decentralized, hybrid– Middleware (aim is distribution transparency)– Self-managing systems (autonomic systems)

• System Monitoring• Taking appropriate measures

Page 3: Distributed (Operating) Systems  -Architectures-

A. Software Architectures

• Important styles of architecture for distributed systems1. Layered architectures2. Object-based architectures3. Data-centered architectures4. Event-based architectures

Page 4: Distributed (Operating) Systems  -Architectures-

1. Layered Design

• Each layer uses previous layer to implement new functionality that is exported to the layer above

• Example: Multi-tier web apps

Page 5: Distributed (Operating) Systems  -Architectures-

2. Object-based Style

• Each object corresponds to a components• Components interact via remote procedure calls

– Popular in client-server systems

Page 6: Distributed (Operating) Systems  -Architectures-

3. Shared data-space (combination of event-based and data-centered)

• “Bulletin-board” architecture– Decoupled in space and time– Post items to shared space; consumers pick up at a later time

Page 7: Distributed (Operating) Systems  -Architectures-

4. Event-based architecture

• Communicate via a common repository– Use a publish-subscribe paradigm– Consumers subscribe to types of events– Events are delivered once published by any publisher

Page 8: Distributed (Operating) Systems  -Architectures-

B. System Architectures

• Centralized, decentralized, hybrid• Middleware (aim is distribution transparency)• Self-managing systems (autonomic systems)– System Monitoring– Taking appropriate measures

Page 9: Distributed (Operating) Systems  -Architectures-

Centralized

Page 10: Distributed (Operating) Systems  -Architectures-

Client-Server Architectures

• Most common style: client-server architecture• Application layering

– User-interface level– Processing level– Data level

Page 11: Distributed (Operating) Systems  -Architectures-

Search Engine Example• Search engine architecture with 3 layers

Page 12: Distributed (Operating) Systems  -Architectures-

Multitiered Architectures

• The simplest organization is to have only two types of machines:

– A client machine containing only the programs • implementing (part of) the user interface level

– A server machine containing the rest,• the programs implementing the processing and data level

– Everything is handled by the server while the client is essentially no more than a dumb terminal, possibly with a graphical interface

Page 13: Distributed (Operating) Systems  -Architectures-

A Spectrum of Choices

Page 14: Distributed (Operating) Systems  -Architectures-

Three-tier Web Applications

• Server itself uses a “client-server” architecture• 3 tiers: HTTP, J2EE and database

– Very common in most web-based applications

Page 15: Distributed (Operating) Systems  -Architectures-

Decentralized

Page 16: Distributed (Operating) Systems  -Architectures-

Distribution

1. Vertical Distribution– Multi-tiered arch: different tiers assigned to different

distributed machines– Logically different components on different machines– Centralized or decentralized

2. Horizontal Distribution– Example is peer to peer systems– Decentralized– Client or server may be physically split up into logically

equivalent parts. But each part is operating on its own share of the complete data set, thus balancing the load.

Page 17: Distributed (Operating) Systems  -Architectures-

Peer-to-peer systems

• Removes distinction between a client and a server

• Each process will act as a client and a server at the same time

• Overlay network of nodes• Structured peer-to-peer system

1. Chord System 2. CAN System

Page 18: Distributed (Operating) Systems  -Architectures-

1. Chord system• Use a distributed hash table to

locate objects– Data item with key k -> smallest node

with id >= k• Pears are located logically on the

ring• Assume there are 16 nodes• 1,4,7,12 and 15 are given the

responsibility– They serve the data items whose ids

are lower than their ids• Each node has two-responsibility

– Lookup– Serving the content

Page 19: Distributed (Operating) Systems  -Architectures-

2. Content Addressable Network (CAN)

• CAN: d-dimensional coordinate system– Partitioned among all nodes in the system– Example: [0,1] x [0,1] space across 6 nodes

• Every data item maps to a point• Join: pick a random point, split with node for that point• Leave: harder, since a merge may not give symmetric partitions

Page 20: Distributed (Operating) Systems  -Architectures-

Unstructured P2P Systems

• Topology based on randomized algorithms– Each node pick a random set of nodes and becomes their

neighbors• Gnutella

– Choice of degree impacts network dynamics

Page 21: Distributed (Operating) Systems  -Architectures-

Structured and Unstructured P2P

• Can move from one to another– Carefully exchange and select entries from partial views

Page 22: Distributed (Operating) Systems  -Architectures-

SuperPeers

• Some nodes become “distinguished”– Take on more responsibilities (need to have or be willing to

donate more resources)– Example: Skype super-peer

Page 23: Distributed (Operating) Systems  -Architectures-

Hybrid Systems

• Client-server solutions are combined with decentralized architectures.

• Examples are1. Edge-Server Systems2. Collaborative Distributed Systems

Page 24: Distributed (Operating) Systems  -Architectures-

1.Edge-Server Systems

• Edge servers: from client-server to client-proxy-server• Content distribution networks: proxies cache web content near the edge

Page 25: Distributed (Operating) Systems  -Architectures-

2.Collaborative Distributed Systems

• BitTorrent: Collaborative P2P downloads• Download chunks of a file from multiple peers

– Reassemble file after downloading• Use a global directory (web-site) and download a .torrent

– torrent contains info about the file– Tracker: server that maintains active nodes that have requested chunks– Force altruism:

• If P sees Q downloads more than uploads, reduce rate of sending to Q

Page 26: Distributed (Operating) Systems  -Architectures-

Middleware

• Forms a layer between applications and distributed platforms

• Aim is distribution transparency• specific solutions should be adaptable to

application requirements• Best approach: easy to configure, adapt, and

customize as needed by an application– This is the result of separation of policies from

mechanisms

Page 27: Distributed (Operating) Systems  -Architectures-

Middleware: General Approaches• Interceptors

– Nothing but a software construct. That will break the usual flow and allow other code to be executed.

– Generality or simplicity (ad-hoc)

• Adaptive software– Environments in which dist applications are executed changes continuously– Mobility, failing hardware etc– Rather than making applications responsible for reacting to changes, this

task is placed in the middleware

1. Separation of concerns (Aspect-oriented software)2. Computational Reflection3. Component-based design

Page 28: Distributed (Operating) Systems  -Architectures-

Self-Managing Systems• System is adaptive

– Monitors itself and takes action autonomously when needed• Autonomic computing, self-managing systems• Self-*: self-managing, self-healing• Example: automatic capacity provisioning

– Vary capacity of a web server based on demand

Page 29: Distributed (Operating) Systems  -Architectures-

Feedback Control Model

• Use feedback and control theory to design a self-managing system