Distributed Systems: Introduction

Distributed Systems: Introduction

Distributed Systems Serie

What is a distributed system?

Definition

A distributed system is a collection of autonomous computing elements that appears to its users as a single coherent system.

Characteristic features

  1. Autonomous computing elements are also referred to as nodes.

  2. Single coherent system: users or applications perceive a single system: nodes need to collaborate. The collection of nodes as a whole operates the same, no matter where, when, and how the interaction between a user and the system takes place.

Organization

  • Each node in the collection communicates only with other nodes in the system, its neighbors. The set of neighbors may be dynamic, or may even be known only implicitly (i.e., requires a lookup).

  • A well-known example of overlay networks: is peer-to-peer systems.

    1. Structured: each node has a well-defined set of neighbors with whom it can communicate (tree, ring).

    2. Unstructured: each node has references to randomly selected other nodes from the system.

Middleware: the OS of distributed systems

It contains commonly used components and functions that need not be implemented by applications separately.

Typical middleware services

  • Communication

  • Transactions

  • Service composition

  • Reliability

Design Goals

  • Support sharing of resources

Cloud-based shared storage and files, Peer-to-peer assisted multimedia streaming, etc..

  • Distribution transparency

    Distribution Transparency Types

    Access: Hide differences in data representation and how an object is accessed.

    Location: Hide where an object is located.

    Relocation: Hide that an object may be moved to another location while in use.

    Concurrency: Hide that an object may be shared by several independent users.

    Replication: Hide that an object is replicated.

    Failure: Hide the failure and recovery of an object.

  • Openness

    it means conforming to well-defined interfaces, being easily interoperable, supporting the portability of applications, and being easily extensible.

  • Scalability

It has 3 types:

  • Size scalability: it includes the number of users and/or processes.

  • Geographical scalability: maximum distance between nodes.

  • Administrative scalability: number of administrative domains.

Pitfalls of Developing Distributed Systems

False (and often hidden) assumptions:

  • The network is reliable.

  • The network is secure.

  • Latency is zero.

  • Bandwidth is infinite.

  • Transport cost is zero.

  • There is one administrator.

Types of Distributed Systems

High-performance distributed computing

It is the use of parallel processing for running advanced application programs efficiently, and quickly.

Systems Distributed information systems

Distributed systems for pervasive computing

  • Ubiquitous systems: devices are networked, distributed, and accessible in a transparent manner, interaction between users and devices is highly unobtrusive, the system is aware of a user’s context to optimize interaction, devices operate autonomously without human intervention and are thus highly self-managed, and the system as a whole can handle a wide range of dynamic actions and interactions.

  • Mobile computing: smartphones, tablets, GPS devices, remote controls, active badges. It implies that a device’s location is expected to change over time.

  • Sensor networks: The nodes to which sensors are attached are many (10s-1000s), simple (small memory/compute/communication capacity), and often battery-powered (or even battery-less).

Thank you, and goodbye!