Last week, we talked about

◻Definition and features of indirect communication,

◻Paradigms of indirect communication,

◻Compared publish-subscribe, message queues, distributed shared memory and tuple spaces,

◻A case study with Java Messaging Service.

Today we talk about

◻P2P (Peer to Peer) computing

🞑Characteristics

🞑Benefits

🞑Disadvantages

🞑Various P2P network implementations

◻Cloud Computing

◻Fog Computing

P2P (Peer-to-Peer) 计算

1. 概述

P2P(Peer-to-Peer)计算是一种分布式系统模型,其中各个节点(称为“对等体”或“Peer”)既是客户端,也是服务器。每个节点可以直接与其他节点通信,而不依赖于集中式服务器。

2. 特点(Characteristics)

  1. 去中心化:P2P 系统没有中心服务器,每个节点都可以共享资源、数据或服务。

  2. 对等关系:每个节点(Peer)角色对等,既是资源的消费者,也是资源的提供者。

  3. 动态拓扑:节点可以随时加入或退出系统,P2P 网络的结构动态变化。

  4. 自组织性:网络中的节点可以自发连接和维护网络拓扑结构。

  5. 分布式资源共享:节点之间共享存储、计算能力、文件等资源。

3. 优点(Benefits)

  1. 可扩展性:P2P 网络可以轻松扩展,随着节点的增加,整体的资源容量和计算能力提升。

  2. 资源利用最大化:网络中的每个节点都可以提供资源,充分利用分布式资源。

  3. 容错性和可靠性:由于没有单一故障点,系统更具容错能力,部分节点失败不会导致整个网络瘫痪。

  4. 成本低廉:不需要昂贵的集中服务器,节点可以使用现有的资源参与网络。

  5. 动态适应性:节点可以自由加入或离开,网络可以根据需求动态重组。

4. 缺点(Disadvantages)

  1. 管理难度高:由于网络去中心化,难以对节点进行集中管理。

  2. 安全性问题

• 节点可能传播恶意代码或病毒。

• 身份验证和数据安全较难保障。

  1. 节点不稳定:节点随时可以离开,导致资源访问不稳定。

  2. 搜索效率低:在无结构化 P2P 网络中,查找资源可能需要大量时间和带宽。

  3. 带宽消耗大:节点之间的频繁数据交换可能导致网络带宽压力大。

5. 不同的 P2P 网络实现(Various P2P Implementations)

1. 结构化 P2P 网络(Structured P2P)

• 节点之间按照某种拓扑结构组织,通常使用分布式哈希表(DHT) 进行资源定位。

特点:高效查找资源,时间复杂度低。

示例:Chord、Pastry、CAN(Content Addressable Network)。

2. 非结构化 P2P 网络(Unstructured P2P)

• 节点之间没有固定的拓扑结构,资源查找通过泛洪(Flooding)或随机游走等方式。

特点:实现简单,但资源搜索效率较低。

示例:Gnutella、KaZaA。

3. 混合 P2P 网络(Hybrid P2P)

• 结合了集中式服务器与去中心化节点的优点。中心服务器帮助节点查找资源,而实际的数据传输在节点之间进行。

特点:查找效率高,部分去中心化。

示例:Napster、Skype。

6. 应用场景

  1. 文件共享:如 BitTorrent 和 Gnutella。

  2. 分布式计算:如 SETI@home、Folding@home。

  3. 实时通信:如 Skype。

  4. 加密货币:如 Bitcoin,去中心化的区块链技术依赖 P2P 网络。

Cloud Computing(云计算)

1. 定义

云计算是一种通过互联网按需提供计算资源和服务(如存储、处理能力、应用程序)的模型。用户无需购买硬件或软件,可以按需租用资源。

2. 特点

按需服务:用户根据需要获取资源。

资源池化:多个用户共享资源池,提高资源利用率。

弹性扩展:资源可以根据需求动态扩展或收缩。

按使用计费:用户只需为实际使用的资源付费。

3. 应用

• 存储服务:如 Amazon S3、Google Drive。

• 计算服务:如 AWS EC2、Microsoft Azure。

• 应用服务:如 SaaS(软件即服务)平台。

Fog Computing(雾计算)

1. 定义

雾计算是一种扩展云计算的技术,将计算、存储和网络服务部署在靠近数据源的边缘设备上,而不是在远程数据中心中。

2. 特点

低延迟:数据处理在靠近设备的边缘完成,减少了数据传输的延迟。

边缘计算:分散计算负载到多个边缘节点,减轻云端压力。

实时响应:适用于对时间敏感的应用,如物联网(IoT)和自动驾驶。

3. 应用场景

• 智能城市:通过边缘设备实时处理传感器数据。

• 物联网:支持大量设备产生的实时数据处理。

• 工业自动化:设备间的数据交换与实时控制。

总结

今天讨论了三种分布式技术的核心内容和应用场景:

  1. P2P 计算:强调去中心化、节点的对等性,适合分布式资源共享和文件传输。

  2. 云计算:集中化的资源管理和按需服务,适用于大规模计算和存储。

  3. 雾计算:将计算移到边缘设备,更适合实时数据处理和低延迟需求。

每种技术都有各自的优势和应用领域,开发者可以根据不同的系统需求选择合适的分布式架构。

Problems of Client/Server architecture

◻Client/Server architecture is a main architecture for distributed systems.

◻If too many users access the server/s at the same time, such architecture can suffer from network overload problem.

🞑Slow down,

🞑Long queues (排队),