分布式开发的优点

      绝大部分传统软件是运行于单机系统之上的,它们的用户界面、应用的业务流程以及持久化数据都会驻留于同一台使用总线或电缆来连接外部设备的计算机 上。不过,现今备受关注的系统中,几乎没有哪个还保有这种设计。如今,大多数计算机软件都运行在分布式系统中,其交互界面、应用的业务流程以及数据资源存 储于松耦合的计算节点和分层的服务中,再由网络将它们连接起来。图2-1描述了一个仓库管理控制系统的三层分布式架构,我们会在本书的第二部分详细描述该基于模式的设计,示例中的三层是通过Broker (137) 架构连接起来的。

以下特性是分布式系统之所以成为信息和控制系统[Tran 92]基础的关键。

协作与互联

分布式系统的重要作用之一就是能够为我们整合大量地理上分散于各地的信息和服务,如地图、电子商务网站、多媒体、大百科全书等。互联网上即时通讯系统和聊天室的流行凸显了分布式系统的另一个重要作用:与家庭、朋友、同事乃至客户保持联系。

经济性

包括PDA、笔记本、台式机和服务器在内的计算机网络通常比集中式的大型机具有更高的性价比。例如,它们支持非集中式的、模块化的应用,这 使得共享像大容量的文件服务器、高清晰度的打印机等昂贵的外设成为可能。相应地,我们可以将选定的应用组件和服务分配到具有特殊处理属性的计算机节点上执 行,如具有高性能磁盘控制器、大容量内存或增强的浮点运算能力的节点,而那些简易的程序就可以运行在相对廉价的硬件上。

 
(点击查看大图)图 2-1

性能与可伸缩性

成功的软件通常会随着时间推移而拥有更多的用户和需求,因此分布式系统的性能能否扩展以处理不断增加的负荷至关重要。我们可以将已 联网计算节点的处理能力组合起来以获得性能的极大提升,此外,至少理论上来说,多处理器和网络更容易扩展。例如,多个计算和通信处理任务可以并行运行在数 据中心的不同节点上,或运行在同一服务器的不同虚拟机上。

容错性

分布式系统的关键目标之一是允许系统发生部分故障。例如,尽管网络中的所有节点都运转正常,但网络本身可能会出现故障。类似地,网络中的某 个终端系统,或多处理器系统中的某个中央处理器可能崩溃。这些故障应当能被很好地处理而不影响其他不相关的部分或整个系统。一种常见的容错实现方式是在多 个节点或网络上提供重复的服务。冗余性有助于将单节点失败的影响控制在最小范围内,它可以显著提高系统在出现部分故障时的可靠性。

内在的分布性

某些应用天生就是分布式的,如电信管理网络(TMN)系统、跨区域部门的企业级业务系统、对等网络(P2P)的内容共享系统、企业之间(B2B)的供应链管理系统等。分布式在这些系统中已经不再是一个可选项,而是满足客户需求至关重要的部分。

posted @ 2012-04-19 00:44  王宏磊@中国  阅读(12765)  评论(0编辑  收藏  举报