以下内容来自 wikipedia
分布式计算: 计算机科学中研究分布式系统的领域。
分布式系统: 位于网络计算机上的各成分通过传递信息来通讯和协作它们的行为。 这些成分相互作用以达到一个共同的目的。
其3个显著特征为: 1. 成分的并发(concurrency) 2 缺少一个全局时钟(global clock) 3. 各成分相互独立的失败
不同的例子:SOA-based systems, MMO game , 点对点应用。
在分布式系统中运行的程序称为分布式程序。‘ 信息传递机制有很多可选方法’ ,如:pure HTTP, RPC-like connectors, message queues.
分布式系统里的一个目标和挑战是‘ 位置透明性(location transparency)’, 然而这个目标在工业界由受欢迎变得不受欢迎。
分布式计算也指使用分布式系统解决计算问题。在分布式计算中,一个问题被分解成很多任务,每一个都由一个或多个计算机解决,(它们)通过信息传递彼此通讯。
Introduction
‘ 分布式’ 这个词最初指这样的计算机网络:独立的计算机物理上分布于一些地理区域。
现在这个词有了更广泛的含义,甚至指在同一个计算机上运行并且通过信息传递相互作用的‘ 自治进程(autonomous processes) ’ 。
关于分布式系统没有唯一的定义,下面几种定义性质通常被使用:
1. 有一些计算实体(计算机或节点),每一个都有局域内存。
2. 实体通过信息传递彼此通讯。
一个分布式系统可能有一个共同的目标,例如解决一个大的计算问题, 使用者将‘ 自治处理路’ 理解为一个单元。
或者,每个计算机有其自身具有独立需求的使用者,分布式系统的目的是协调共享资源或者给使用者提供通讯服务。
其它典型性质:
1. 系统需要容忍独立计算机中的错误;
2. 系统的结构(网络拓扑,网络潜在因素,计算机数量)预先不知道,系统可能包含不同种类的计算机和网络连接,且系统可能在执行分布式程序时改变。
3. 每个计算机对于系统都是有限的,不完全的。每个计算机可能只知道输入的一部分。
parallel and distributed computing
术语 “ 并发计算(cocurrent computing)” " parallel computing (并行计算)" 和“ 分布式计算 ” 有许多重叠,它们之间没有清晰的区别。
同一个系统可能可以同时用“并行” 和“分布” 来表征;
一个典型分布式系统中的处理器 以并行的方式并发地运行(run concurrently in parallel).
并行计算可看作分布式计算的一个特别的紧联结形式;
分布式计算可以看作是并行计算的松联结形式;
尽管如此,有可能粗略地将并发系统分类为“并行的” 或“分布式” ,按照下面的标准:
1. 并行计算中,所有处理器可能访问一个共享内存来交换彼此的信息;
2. 在分布式计算中,每个处理器有自身的私有内存(分布内存),通过在处理器之间传递信息来完成信息交换。
(a) 为典型的分布式系统,系统用一个网络拓扑表示,每个节点是一个计算机,每条连接节点的线是一个通讯 link
(c) 分布式系统,每个处理器可以直接访问一个共享内存。
As a rule of thumb,
共享内存多处理器中的高性能并行计算使用并行算法;
大规模分布式系统的协作使用分布式算法。
架构 Architectures
各种硬件和软件架构被用于分布式计算。
低层次地,需要用某类网络互联多个 CPU,而不考虑这个网络印刷到线路板或由松连接设备构成。
高层次地,需要用某种通讯系统互联在哪些CPU上运行的进程。
分布式编程有以下几种基本架构:
1. client-server
2. three-tier
3. n-tier
4. peer-to-peer
5. 并发进程之间的通讯和协调工作
6. database-centric
参考资料:
1. Coulouris, George; Jean Dollimore; Tim Kindberg; Gordon Blair (2011).Distributed Systems: Concepts and Design (5th Edition). Boston: Addison-Wesley. ISBN 0-132-14301-1.
2. Lynch, Nancy A. (1996), Distributed Algorithms, Morgan Kaufmann, ISBN 1-55860-348-4.
3. Ghosh, Sukumar (2007), Distributed Systems – An Algorithmic Approach, Chapman & Hall/CRC, ISBN 978-1-58488-564-1.
4.