30
Based on last years lecture notes, used by Juha Takkinen

Based on last years lecture notes, used by Juha Takkinen

  • View
    220

  • Download
    0

Embed Size (px)

Citation preview

Based on last years lecture notes, used by Juha Takkinen

Definition of a Distributed System (1)

A distributed system is:

A collection of independent computers that appears to its users

as a single coherent system.

Definition of a Distributed System (2)

Figure 1-1. A distributed system organized as middleware. The middleware layer extends over multiple machines, and offers

each application the same interface.

Examples of Distributed Systems

• Network of workstations at a university

• Workflow information system supporting automatic order processing

• World Wide Web

Goals of Distributed Systems

What makes it worth the effort?

• Connecting Users and Resources• Transparency• Openness• Scalability

Transparency in a Distributed System

Different forms of transparency in a distributed system.

Hide whether a (software) resource is in memory or on disk

Persistence

Hide the failure and recovery of a resourceFailure

Hide that a resource may be shared by several competitive users

Concurrency

Hide that a ,ultiple copies of a resource existReplication

Hide that a resource may be moved to another location while in use

Relocation

Hide that a resource may move to another location

Migration

Hide where a resource is locatedLocation

Hide differences in data representation and how a resource is accessed

Access

DescriptionTransparency

Openness

• Services are offered according to standard rules that describe syntax and semantics

• E.g., Interface Definition Language• Interoperability and portability • Separating Policy from Mechanism!

Scalability (Problems)

Examples of scalability limitations.

Doing routing based on complete information

Centralized algorithms

A single on-line telephone bookCentralized data

A single server for all usersCentralized services

ExampleConcept

Scaling Techniques

• Scalability problems appear as performance problems

• Three basic techniques:– hiding communication latency– distribution– replication

• Asynchronous communication• Divide and conquer• Caching (consistency!)

Scaling Techniques (1)

1.4

The difference between letting:

a) a server or

b) a client check forms as they are being filled

Scaling Techniques (2)

1.5

An example of dividing the DNS name space into zones.

More Scaling

• CDN (e.g., akamai)• Youtube, Facebook• VoD• Google

Common Pitfalls

• The network is reliable• The network is secure• The network is homogenous• The topology does not change• Latency is zero• Bandwidth is infinite• Transport cost is zero• There is one administrator

Example types of systems

• Distributed computing• Cluster vs grid computing

• Distributed information systems• Transactions (incl. nested)

• Distributed pervasive systems• Home: plug and play• eHealth (BAN)• Sensor networks

Networked software:Architectural Styles (1)

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

Architectural Styles (2)

Figure 2-1. The (a) layered architectural style and …

Architectural Styles (3)

Figure 2-1. (b) The object-based architectural style.

Architectural styles (4)

data-centric: e.g. web-based distributed systems• shared distributed file system• communication through files

Architectural Styles (5)Figure 2-2. (a) The event-based architectural style

and …

Architectural Styles (6) Figure 2-2. (b) The shared data-space architectural

style.

Event-based and data-centric!

Centralized Architectures

Figure 2-3. General interaction between a client and a server.

Application Layering

• The user-interface level• The processing level• The data level

Processing Level

The general organization of an Internet search engine into three different layers

1-28

Multitiered Architectures (1)

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

Physical two-tired Architectures

Alternative client-server organizations (a) – (e).

1-29

Multitiered Architectures (2)

An example of a server acting as a client.

1-30

Modern Architectures

An example of horizontal distribution of a Web service.

1-31

Decentralized Architectures

• Vertical distribution

• Horizontal distribution

• Peer-to-peer distribution

Overlays and p2p

• Distributed Hash tables (DHT)• Chord• CAN

• Unstructured• Gnutella• Super peers

• Hybrid

Hybrid of client-server and p2p

• Edge-server system• CDN

• Collaborative• BitTorrent