分布式系统概论
[TOC]
分布式系统概论
分布式系统是若干独立计算机的集合,这些计算机对于用户来说就像是单个相关系统.
分布式系统的本质
硬件: 机器本身是独立的
软件: 对用户来说他们就像在与单个系统打交道
两个方面共同阐明了分布式系统的本质.
分布式系统的特性
各种计算机之间的差别以及计算机之间的通信方式的差别对用户是隐藏的, 用户看不到分布式系统的内部组织结构
用户和应用程序能够以一种一致和统一的方式与分布式系统进行交互
中间件
为了使种类各异的计算机和网络都呈现为单个系统,分布式系统常常通过一个"软件层"组织起来,该"软件层"在逻辑上位于由用户和应用程序组成的高层与由操作系统组成的低层之间.这样的分布式系统有时又称为中间件.
目标
分布式系统的四个关键目标:
分布式系统必须能够让用户方便地访问资源(资源可访问)
必须隐藏资源在一个网络上分布这样一个事实(隐藏细节)(透明性)
必须是开放的(开放性)
必须是可扩展的(可扩展性)
透明性
如果一个分布式系统能够在用户和应用程序面前呈现为单个计算机系统,这样的分布式系统就称为是透明的.
透明性的几个方面
方面
说明
访问透明性
隐藏数据表示形式的不同以及资源访问方式的不同
位置透明性
隐藏资源所在位置
迁移透明性
隐藏资源是否移动到另一个位置
重定位透明性
隐藏资源是否在使用过程中移动到另一个位置
复制透明性
隐藏是否对资源进行复制
并发透明性
隐藏资源是否由若干相互竞争的用户共享
故障透明性
隐藏资源的故障和恢复
开放性
一个开放的分布式系统是这样的系统:它根据一系列准则来提供服务,这些准则描述了所提供服务的语法和语义.例如,在计算机网络中,其准则规定了发送和接受的消息的格式,内容及含义.对这些准则进行形式化,就产生了协议.
在分布式系统中,服务通常是通过接口指定的,而接口一般是通过接口定义语言(interface definition language, IDL)来描述的.
开放的分布式系统的另一个重要目标是,它必须是灵活的,要能够方便地把由不同开发人员开发的不同组件组合到整个系统.同时,还必须能够方便地添加新组件,替换现有的组件而不会对那些无须改动的组件造成影响, 即开放的分布式系统应该是可扩展的.
将策略与机制分离
要在开放的分布式系统中获得灵活性,关键是要把系统组织成规模相对较小而且容易替换或修改的组件的集合.这意味着我们应该不只是提供最高层的接口定义,还应该提供系统内部各部分间的接口定义,并且描述它们的交互方式.
可扩展性
度量系统可扩展性的三个方面:
系统要能在规模上扩展.也就是说可以方便地把更多的用户和资源加入到系统中去
系统中的用户和资源可以相隔遥远
系统在管理上是可扩展的,即使该分布式系统是跨区域/机构,仍然可以方便地对其进行管理
最后更新于
这有帮助吗?