分布式系统概念:一个硬件或软件组件分布在连网的计算机上,组件之间通过传递消息进行通信和动作协调的系统
分布式系统的特征:
构造和使用分布式系统的主要动力来源于对共享资源的期望。
(1)Web搜索:Google
(2)大型多人在线游戏
(3)金融交易
(4)分布式多媒体系统
Google用于支持搜索的分布式系统基础设施的亮点:
(1)一个底层物理设施:由位于全世界的多个数据中心的联网计算机组成
(2)一个分布式文件系统
(3)一个相关的结构化分布式存储系统:提供对超大数据集的快速访问
(4)一个锁服务:提供分布式加锁和协定等功能
(5)一个编程模式:支持对超大并行和分布式计算的管理
复杂事件处理(Complex Event Processing, CEP):提供一种方法来将一起发生的事件组成逻辑的、时序的或空间的模式。
防火墙:保护企业内部网,防止未授权的消息进出网络。防火墙是通过过滤到达消息和外发消息来实现的,可在源或目的地进行过滤。
移动计算:指用户在移动或访问某个非常规环境时执行计算任务的性能。
云被定义成一组基于互联网的应用,并且足以满足大多数用户需求的存储和计算服务的集合,这使得用户能大部分或全部免除本地数据存储和应用软件的使用。
通常,云实现在集群计算机上,从而提供每个服务所要求的必要的伸缩性和性能。集群计算机(cluster computer)是互连的计算机集合,它们紧密协作提供单一的、集成的高性能计算能力。集群服务器的总目的是提供一系列的云服务,包括高性能计算能力、大容量存储,丰富的应用服务。
服务:表示计算机系统中管理相关资源并提供功能给用户和应用的一个单独的部分。服务将资源访问限制为一组定义良好的操作。
客户-服务器计算:指在连网的计算机上的一个运行程序,这个程序接收来自其他计算机上正在运行的程序的请求,这执行一个服务并适当地做出响应。发出请求的称为客户,响应请求的程序服务器。
异构性,即存在多样性和差别。以下几个方面均存在异构性:
中间件:指一个软件层,它提供一个编程抽象,同时屏蔽了底层网络、硬件、操作系统和编程语言的异构性。
移动代码:指能从一台计算机发送到另一台计算机,并在目的计算机上运行的代码。适合在一种计算机上运行的代码未必适合在另一种计算机上运行,因为可执行程序通常依赖于计算机的指令集和操作系统(例如Windows和Linux)
分布式系统的开放性主要取决于新的资源共享服务能被增加和供多种客户程序使用的程度。
开放的分布式系统特征总结:
信息资源的安全性包括三个方面:
加密技术可解决的问题:
尚未圆满解决的安全问题:
如果资源数量和用户数量激增,系统仍能保持其有效性,那么该系统就被称为可伸缩的。
可伸缩分布式系统的设计面临的挑战:
分布式系统的故障是部分的,即有些组件出了故障而有些组件运行正常。因此故障的处理相当困难。
故障处理技术:
检测故障:有些故障通过一定的手段是可以被检测的。
掩盖故障:有些被检测到的故障能被隐藏起来或降低它的严重程度。例如:
(1)消息在不能到达时进行重传
(2)将文件数据写入两个磁盘,如果一个磁盘损坏,另一个磁盘的数据仍是正确的。
容错:试图检测并隐藏所有的故障是不实际的,服务的客户应该能被设计成容错的。例如:浏览器不会一直等待与它的服务器建立连接,如果不能连接,则通知用户尝试稍后进行连接。
故障恢复:在服务器崩溃后,永久数据的状态能被恢复或“回滚”。
冗余:利用同于组件,服务可以实现容错。
面对硬件故障,分布式系统提供高可用性。系统的可用性是对系统可用时间的比例的一个度量指标。当分布式系统中的一个组件出现故障时,仅仅是使用受损组件的那部分工作受到影响。如果用户正在使用的计算机出现故障,用户可以转移到另一台计算机上,并且服务器进程能在另一台计算机上启动。
服务和应用通常运行并发地处理多个客户请求。为了使对象在并发环境中能安全使用,它的操作必须在数据保持一致的基础上同步。这可通过标准的技术(信号量或锁等等)来实现。
定义:对用户和应用程序员屏蔽分布式系统的组件的分离性,使系统被认为是一个整体,而不是独立组件的集合。
访问透明性:用相同的操作访问本地资源和远程资源。
位置透明性:不需要知道资源的物理或网络位置就能够访问它们。
并发透明性:几个进程能并发地使用共享资源进行操作而互不干扰。
故障透明性:屏蔽错误,无论是硬件还是软件故障,用户都能够完成它们的任务。
性能透明性:当负载变换,系统能被重新配置以提高性能。
伸缩透明性:系统和应用能够进行扩展而不改变系统结构或应用算法。
访问透明性:例如具有文件夹的图形界面,无论是本地资源还是远程资源,文件夹的图形用户界面都是一样的。
位置透明性:例如Web资源名或URL就是位置透明的,不需要知道资源的物理或网络位置即可进行访问。
网络透明性(访问透明性和位置透明性的统称):例如电子邮件地址的使用。给用户发送邮件不需要知道他们的物理位置或网络位置,发送邮件信息的过程也不依赖于接收者的位置。
影响客户和用户体验的服务质量是可靠性、安全性和性能。
Web基于以下三个主要的标准技术组件:
(1)超文本标记语言(HTML) :页面在浏览器上显示时指定其内容和布局的语言。
(2)统一资源定位器(URL):用于识别文档和保存成Web一部分的其他资源。
(3)具有标准交互规则(超文本传输协议,HTTP)的客户-服务器体系结构。
HTTP URL有两项主要的工作:
HTTP的主要特征:
Web服务器上运行的为客户生成内容的程序通常称为公共网关接口(Common Gateway Interface, CGI)程序。一个CGI程序可以具有任何特定应用的功能,只要它分析客户提供给它的参数,产生所要求类型的内容。
可扩展标记语言(Extensible Markup Language, XML)是一种以标准的、结构化的、特定于应用的格式表示数据的方式。从原理上看,用XML表示的数据在不同的应用间是可移植的,因为它是自描述的:它包含数据元素的名字、类型和结构。
第一章完,谢谢阅读。