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

分布式系统的特征

graph LR
A[Node 1] -->|Communication| B[Node 2]
B -->|Communication| A
  • No assumptions on global clock for sync
  • 互相连通(可以通信)
  • 通过 open-group/close-group 策略管理节点

Collection of Autonomous Computing Elements

  • 由各种节点构成
  • 每个节点可以独立运行 act independently
  • 拥有共同的目标 common goals

Coherent Collective of Nodes

  • appear as a single coherent system
  • the collection of nodes operates as one entity for end users
  • users may not even notice the existence of multiple nodes

分布式系统的 Design Goals

Distribution Transparency

Distributed systems aim at making the distribution of processes and resources (objects) transparent (invisible) to the end users and their applications.

Transparency of … Meaning
Access Hides how an object is accessed
Location Hides where an object is located
Migration Hides if an object is relocated/moved
Replication Hides that an object is replicated
Concurrency Hides concurrent access/sharing
Failure Hides the failure/recovery of an object

Resource Sharing

内涵:to make it easy for the users and their applications to access and share remote resources.

  • Ease of collaboration and information exchange
  • Collaborative work, meetings, contributions, etc.
  • Peer-to-peer file-sharing networks like BitTorrent
  • Backup services and data synchronization tools

Be Open

An open distributed system offers components that can easily be used by or can easily be integrated into other systems (vice versa in most systems).

Be Scalable

Scalability of Meaning
Size Handling computational and storage issues with more users, nodes or resources
Geography Handling communication issues with physically distant nodes and resources
Administration Handling issues of managing systems spanning independent organizations

System Architecture

Placement of components and deciding on their mutual interactions lead to designing the overall software architecture in case of distributed systems.

Centralized

Simple Client-Server

Multi-tiered

De-centralized

Structured P2P

Unstructured P2P

Hierarchical P2P


P2P Communication

大多数的 P2P 网络都依赖 Multicast Communication