动机

我们有很多理由去编写分布式应用,比如:

速度

我们可以把我们的程序切分成能够分别运行于多个不同节点的几个部分。比如,某个编译器可以将一个模块里的各个函数分发到不同节点分别编译,编译器本身则负责协调各节点的活动。

在例如一个具备一个节点池的实时系统,作业以round-robin的方式指派给不同的节点,以此降低系统的响应延迟。

可靠性和容错

为了增加系统的可靠性,我们可以部署多个互相协作的节点,以求一个或多个节点的失败不致影响整个系统的运作。

访问其他节点上的资源

某些软硬件资源可能只可被特定的计算机访问。

秉承应用固有的分布式特质

会议系统、订票系统以及许多多计算机实时系统都属于这类应用。

可扩展性

系统可以被设计成能够通过添加额外节点来增加系统的容量的形式。如果系统太慢,购买更多的处理器便可提高性能。