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