distributed

Subdecks (3)

Cards (263)

  • Distributed system
    A collection of independent computers that appears to its users as a single coherent system
  • Distributed system
    • Consists of autonomous components (computers)
    • Users think they are dealing with a single system
    • Components need to collaborate
  • No assumptions are made concerning the type of computers in a distributed system
  • Characteristics of distributed systems
    • Differences between computers and communication are hidden from users
    • Internal organization is hidden from users
    • Users and applications can interact in a consistent and uniform way
    • Relatively easy to expand or scale
    • Continuously available, with parts being replaced or fixed without users noticing
  • Middleware
    A layer of software that is logically placed between users/applications and operating systems/communication facilities
  • Distributed systems are sometimes called middleware
  • Making resources accessible
    The main goal of a distributed system is to make it easy for users and applications to access remote resources and share them in a controlled and efficient way
  • Resources can include printers, computers, storage, data, files, web pages, networks, etc.
  • Connectivity of the Internet is leading to virtual organizations where geographically dispersed groups collaborate using groupware
  • Increased connectivity can also lead to security and privacy issues, such as tracking user preferences and unwanted communication (spam)
  • Distribution transparency
    Hiding the fact that a distributed system's processes and resources are physically distributed across multiple computers
  • Types of transparency in distributed systems
    • Access transparency
    • Location transparency
    • Migration transparency
    • Relocation transparency
    • Replication transparency
    • Concurrency transparency
  • Attempting to completely hide all distribution aspects from users is not always a good idea
  • There is a trade-off between transparency and performance, consistency, and comprehensibility
  • Openness
    A distributed system offers services according to standard rules that describe the syntax and semantics of those services
  • Interface definitions in an IDL capture the syntax but not the semantics of services
  • Extensibility
    An open distributed system should be easy to configure out of different components, and easy to add new components or replace existing ones
  • Scalability
    A distributed system can scale in size (more users/resources), geography (users/resources far apart), and administration (spanning multiple organizations)
  • Unfortunately, a system that is scalable in one dimension may not be scalable in another
  • Attaining flexibility in distributed systems is easier said than done
  • Scalability
    • Scalable with respect to size
    • Geographically scalable
    • Administratively scalable
  • A system that is scalable in one or more dimensions often exhibits some loss of performance as the system scales up
  • Centralized services
    Services implemented by means of only a single server running on a specific machine in the distributed system
  • Centralized services can become a bottleneck as the number of users and applications grows
  • Centralized data

    Data stored in a single database
  • Centralized data can saturate communication lines
  • Centralized algorithms

    Algorithms that operate by collecting information from all the sites, sends it to a single machine for processing, and then distributes the results
  • Decentralized algorithms
    • Operate without collecting information from all sites
    • Do not send information to a single machine for processing
    • Do not distribute results from a single machine
    • Take into account lack of exact clock synchronization
  • Communication in wide-area networks is inherently unreliable and virtually always point-to-point, unlike local-area networks which provide highly reliable communication facilities based on broadcasting
  • Geographical scalability is limited by centralized components due to performance and reliability problems resulting from wide-area communication
  • Scaling a distributed system across multiple, independent administrative domains is a difficult and often open question due to conflicting policies with respect to resource usage, management, and security
  • Scaling techniques
    • Hiding communication latencies
    • Distribution
    • Replication
  • Hiding communication latencies
    Avoiding waiting for responses to remote service requests as much as possible, e.g. using asynchronous communication or moving computation to the client
  • Distribution
    Taking a component, splitting it into smaller parts, and spreading those parts across the system
  • Examples of distribution
    • Internet Domain Name System (DNS)
    • World Wide Web
  • Replication
    Making copies of a component across a distributed system to increase availability and balance load
  • Caching
    Making a copy of a resource in the proximity of the client, decided by the client rather than the owner
  • Replication and caching lead to consistency problems as multiple copies of a resource need to be kept in sync
  • Strong consistency guarantees are extremely hard or even impossible to implement in a scalable way
  • Size scalability is the least problematic from a technical point of view, geographical scalability is more difficult, and administrative scalability is the most difficult