what is a distributed system
Download
Skip this Video
Download Presentation
What is a Distributed System?

Loading in 2 Seconds...

play fullscreen
1 / 23

What is a Distributed System - PowerPoint PPT Presentation


  • 105 Views
  • Uploaded on

What is a Distributed System?. You know when you have one … … when the failure of a computer you’ve never heard of stops you from getting any work done ( L.Lamport, ‘84 ). What is a Distributed System?.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'What is a Distributed System' - kelvin


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
what is a distributed system
What is a Distributed System?
  • You know when you have one …

… when the failure of a computer you’ve never heard of stops you from getting any work done

(L.Lamport, ‘84)

EECE 411: Design of Distributed Software Applications

what is a distributed system2
What is a Distributed System?

A collection of independent computers that appears to its users as a single coherent system

1.1

  • Independent hardware installations
  • Uniform software layer (middleware)

EECE 411: Design of Distributed Software Applications

main goals of a distributed system
Main goals of a distributed system
  • Connect users and resources
  • Distribution transparency
  • Openness
  • Scalability

EECE 411: Design of Distributed Software Applications

goal ii transparency
Goal II: Transparency

Note: transparency may be set as a goal, but achieving it is a different story.

EECE 411: Design of Distributed Software Applications

transparency discussion
Transparency – discussion

Observation: Aiming at full transparency may be too much:

  • Full transparency will cost performance
    • Keeping Web caches exactly up-to-date with the master copy
    • Immediately flushing write operations to disk for fault tolerance
  • Completely hiding failures of networks and nodes may be impossible (depending on assumptions and/or requirements
    • You cannot distinguish a slow computer from a failing one
  • Sometimes full transparency is not desirable from an application perspective
    • Users may be located in different continents; distribution is apparent and not something you want to hide

EECE 411: Design of Distributed Software Applications

goal iii openness
Goal III: Openness

Openness ability to interact with or integrate services from other open systems, irrespective of the underlying environment:

Achieving openness: Standard rules (protocols/interfaces) to describe services/components

  • Interface definitions should be:
    • Complete
    • Neutral
  • These help making system/services interoperable & portable

At least make the distributed system independent from heterogeneityof the underlying environment:

  • Hardware
  • Platforms
  • Languages

EECE 411: Design of Distributed Software Applications

separating policy and mechanism
Separating policy and mechanism

Managing complexity: split the systems in smaller components.

  • Components controlled by policies specified by applications and users
  • Example – web browser caching;
    • Mechanism: caching infrastructure
    • Policy: what to cache, how large the cache is, cache replacement algorithms

Other examples:

    • What operations do we allow downloaded code to perform?
    • What level of secrecy do we require for communication?

Achieving openness:Ideally, the (distributed) system provides only the mechanisms (and a way to specify policies)

EECE 411: Design of Distributed Software Applications

middleware and interoperability
Middleware and Interoperability

Interoperability provided by:

  • Protocols used by each middleware layer
  • Interfaces offered to applications
  • Independent hardware installations
  • Uniform software layer (middleware)

EECE 411: Design of Distributed Software Applications

goal iv scalability
Goal IV: Scalability

Observation: Many developers easily use the adjective “scalable” without making clear whytheir system actually scales.

  • System should be able to grow over multiple axes:
    • size (#user, #resources), geographical distribution, maintainability

EECE 411: Design of Distributed Software Applications

scaling techniques 1
Scaling Techniques (1)

1.4

Technique: Offload work to clients

EECE 411: Design of Distributed Software Applications

scaling techniques 2
Scaling Techniques (2)

Technique: Hide communication latency

  • Make use of asynchronous communication
  • Have separate handler for incoming response

Problem: not every application fits this model

EECE 411: Design of Distributed Software Applications

scaling techniques 3
Scaling Techniques (3)

1.5

Technique: Divide the problem space.

  • example: the way DNS divides the name space into zones.

EECE 411: Design of Distributed Software Applications

scaling techniques 4
Scaling Techniques (4)

Replication/caching: Make copies of data available at different machines:

  • Replicated file servers and databases
  • Mirrored Web sites
  • Web caches (in browsers and proxies)
  • File caching (at server and client)

EECE 411: Design of Distributed Software Applications

scaling the problem
Scaling: The problem

Applying scaling techniques is easy, except for one thing:

  • Having multiple copies (cached or replicated), leads to inconsistencies: modifying one copy makes that copy different from the rest.
  • Always keeping copies consistent (and in a generic way) requires global synchronizationon each modification.
    • This precludes large-scale solutions.

EECE 411: Design of Distributed Software Applications

summary so far primary goals of a distributed system
Summary so far: (primary) goals of a distributed system
  • Connect users and resources
  • Distribution transparency
  • Openness
  • Scalability

EECE 411: Design of Distributed Software Applications

developing distributed systems pitfalls
Developing distributed systems: Pitfalls

Observation: Many distributed systems are needlessly

complex

    • caused by mistakes that required patching later on.

Many possible false assumptions:

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

EECE 411: Design of Distributed Software Applications

middleware
Middleware

1-22

EECE 411: Design of Distributed Software Applications

architecture styles client server
Architecture styles: Client/server

Model:

  • Server: process implementing a certain service
  • Client: uses the service buy sending a request and waiting for the reply

Main problem to deal with: unreliable communication

Note: often both roles simultaneously for different services

EECE 411: Design of Distributed Software Applications

architectural styles layered style
Architectural styles: Layered style

EECE 411: Design of Distributed Software Applications

architectural styles layered style example
Architectural styles: Layered style example
  • Layered style: three-layer (tier) architecture commonly used in many internet based applications today

General organization of an Internet search engine into three different layers

1-28

EECE 411: Design of Distributed Software Applications

architectural styles object based
Architectural styles: Object based

Idea: Organize into logically differentcomponents, and subsequently distribute those components over the various machines.

object-based style

EECE 411: Design of Distributed Software Applications

more architectural styles
More architectural styles

Alternatives:Decouple processes in space(“anonymous”) and/or time(“asynchronous”)

Event-based Data-centered architectures

EECE 411: Design of Distributed Software Applications

slide23
Summary so far:
  • Definition of distributed systems
    • collection of independent components that appears to its users as a single coherent system
  • Goals, pitfalls, scalability techniques, architecture styles

Requirement: Components need to communicate

    • Shared memory
    • Message exchange
  • need to agree on many things
    • Protocols: data formats, exception handling, naming, …

EECE 411: Design of Distributed Software Applications

ad