您的位置:首页 > 其它

分布式系统概念与设计-CH1:分布式系统的特征

2015-09-30 16:52 309 查看
分布式系统

主要动机:资源共享

挑战:

组件的异构性;

开放性、

安全性

可伸缩性

故障处理

并发性

透明性

服务质量

可运维(自己加的)

1.1 简介

分布式系统的定义:硬件和软件分布在在联网的计算机上,组件之间通过传递消息进行通信和动作协调的系统。

主要特性:
组件的并发性:源生特性
缺乏全局时钟:程序需要协作时,通过交换消息来协调它们之间的动作。
组件故障的独立性:
由系统设计者为可能的故障设计结果。

1.2 分布式系统的例子
(1) Web搜索
Web搜索引擎的任务是为万维网的所有内容建立索引
Google的基础设置的最大亮点:
一个底层物理设施: 由超大数量的位于全球各个数据中心的联网计算机组成。
一个分布式文件系统:支持超大文件,并根据搜索和其他google应用的使用方式进行了深度优化(如访问时间的快速和稳定性)
一个相关的结构化分布式存储系统:提供对超大数据集的快速访问
一个锁服务:提供诸如分布式加锁和协定等分布式系统功能
一个编程模式:支持对底层物理基础设置上的超大并行和分布式计算的管理。
(2)大型多人在线游戏MMOG(Massively Multiplayer Online Game)
实时性要求非常高
常见的架构包括集中式的集群和分布式系统两种。
(3)金融交易
此类系统的重点是对感兴趣数据的通信和处理,这些数据项在分布式系统中成为事件,通常采用基于事件的分布式系统。

1.3 分布式系统的趋势
泛在联网:多种多样的无线通信技术,使得联网议程成为一个泛在的资源,设备可以在任何时间和地点被连接。
现代互联网本身也是一个超大的分布式系统。
服务发现:让访问这的设备在访问地的网络上通信,并将设备与合适的本地设备关联的过程。
分布式多媒体系统:应该能对连续类型媒体完成相同的功能,即它应该能存储和定位音视频文件,并通过网络传输他们,从而能向用户展示多种多媒体类型,以及在一组用户中共享多种类型的媒体。连续媒体的重要特点是他们包括一个时间维度。它对底层分布式基础设施提出了大量的要求,包括:
(1)编码和加密格式的支持;
(2)提供一系列机制保障所需的服务质量得到满足
(3)提供相关的资源管理策略
(4)提供适配策略来处理开发系统中不可避免的场景,如柔性服务。

1.4 关注资源共享
资源共享包括硬件共享、数据共享、服务共享等。
服务表示计算机系统中管理相关资源并提供功能给用户和应用的一个单独的部分。
默认情况,客户和服务器是指进程而不是运行客户或服务的计算机。

1.5 挑战
(1)异构性:硬件、OS、编程语言、软件实现...,
中间件: 指一个软件层,提供了一个编程抽象,同时屏蔽了底层网络、硬件、OS和编程语言的异构性
移动代码:能从一台计算机发送到另外一台计算机,并在目的计算机上运行的代码。常见的方式有java虚拟机。
(2)开发性
发布接口仅是分布式系统增加和扩展服务的起点,设计者所面临的挑战是解决由不同人构造的许多组件组成的分布式系统的复杂性。 开放重点强调的是可扩展性。
总结主要特征:
发布系统的关键接口是开放系统的特征
开放的分布式系统是基于一致的通信机制和发布接口访问共享资源
开放的分布式系统能用不同销售商提供的异构硬件和软件构造,但还是必须经过仔细测试和验证每个组件与发布的标准之间的一致性。

(3)安全性:
机密性:防止泄露给未授权的个人
完整性:防止被改变或被破坏
可用性:防止对访问资源的手段的干扰
挑战:DDOS攻击,移动代码的安全性。

(4)可伸缩性:
控制物理资源的开销
控制性能损失
避免性能瓶颈

(5)故障处理
检测故障
掩盖故障
容错
故障恢复
故障恢复
冗余

(6)并发性
(7)透明性:对用户和应用程序屏蔽分布式系统的组件的分离性,使系统被认为是一个整体,而不是独立组件的集合。
(8)服务质量:QoS

1.6 实例研究:万维网

万维网用于发布和访问互联网上的资源与服务。

Web是一个开放的系统,可以被货站,并且在不妨碍已有功能的前提下用新的方法实现扩展。

(1)首先,它的操作时基于被自由发布和广泛实现的通信标准和文档/内容标准的。

(2)其次,相对于能在其上发布和共享的资源的类型而言,web是开放的。

Web的发展已经超越简单的数据资源而开始包含服务。但是其基本的体系结构并没有改变,是基于一下三个主要的标准技术组件:

(1)HTML:用于指定组成Web页面内容的文本和图像,指定他们以何种布局方式和组织方式将这些内容显示给用户。

(2)URL:作用是识别资源

(3)HTTP: 具有标准交互规则的CS系统体系结构, 定义了浏览器和其他类型的客户与Web服务器的交互方式。

重要的概念:

Web服务器上运行的为客户生成内容的程序通常称为公共网管接口(CGI:Common Gataway Interface). 一个CGI程序可以具有任何特定应用的功能,只要它能分析客户给他的参数,生成所要类型的内容(通常是HTML文本)。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: