收藏 分享(赏)

探讨:分布式系统、异步传输原理及应用.ppt

上传人:saw518 文档编号:7247152 上传时间:2019-05-10 格式:PPT 页数:57 大小:848.50KB
下载 相关 举报
探讨:分布式系统、异步传输原理及应用.ppt_第1页
第1页 / 共57页
探讨:分布式系统、异步传输原理及应用.ppt_第2页
第2页 / 共57页
探讨:分布式系统、异步传输原理及应用.ppt_第3页
第3页 / 共57页
探讨:分布式系统、异步传输原理及应用.ppt_第4页
第4页 / 共57页
探讨:分布式系统、异步传输原理及应用.ppt_第5页
第5页 / 共57页
点击查看更多>>
资源描述

1、,探讨: 分布式系统、异步传输原理及应用,1、分布式计算系统概念 2、分布式系统结构 3、分布式系统架构的应用 4、Web异步通信(Ajax),主要内容:,了解分布式计算What is Distributed Computing?,定义:分布式计算是近年提出的一种新的计算方式。所谓分布式计算就是在两个或多个软件互相共享信息,这些软件既可以在同一台计算机上运行,也可以在通过网络连接起来的多台计算机上运行。,了解分布式计算What is Distributed Computing?,所谓分布式计算是一门计算机科学,它研究如何把一个需要非常巨大的计算能力才能解决的问题分成许多小的部分,然后把这些部分

2、分配给许多计算机进行处理,最后把这些计算结果综合起来得到最终的结果。 最近的分布式计算项目已经被用于使用世界各地成千上万位志愿者的计算机的闲置计算能力,通过因特网,您可以分析来自外太空的电讯号,寻找隐蔽的黑洞,并探索可能存在的外星智慧生命;您可以寻找超过1000万位数字的梅森质数;您也可以寻找并发现对抗艾滋病病毒的更为有效的药物。这些项目都很庞大,需要惊人的计算量,仅仅由单个的电脑或是个人在一个能让人接受的时间内计算完成是决不可能的。,进行分布式计算的现实需求,分布式计算是利用互联网上的计算机的 CPU 的闲置处理能力来解决大型计算问题的一种计算科学。首先, 要发现一个需要非常巨大的计算能力才

3、能解决的问题。这类问题一般是跨学科的、极富挑战性的、人类急待解决的科研课题。其中较为著名的是:1.解决较为复杂的数学问题。2.研究寻找最为安全的密码系统(密码破解)。3.生物病理研究(研究蛋白质折叠,误解,聚合及由此引起的相关疾病)。4.各种各样疾病的药物研究。5.信号处理(在家寻找地外文明)。,进行分布式计算的现实需求,从这些实际的例子可以看出,这些项目都很庞大,需要惊人的计算量,仅仅由单个的电脑或是个人在一个能让人接受的时间内计算完成是决不可能的。在以前,这些问题都应该由超级计算机来解决。但是, 超级计算机的造价和维护非常的昂贵,这不是一个普通的科研组织所能承受的。随着科学的发展,一种廉价

4、的、高效的、维护方便的计算方法应运而生分布式计算!,进行分布式计算的现实需求,随着计算机的普及,个人电脑开始进入千家万户。与之伴随产生的是电脑的利用问题。越来越多的电脑处于闲置状态,即使在开机状态下CPU的潜力也远远不能被完全利用。我们可以想象,一台家用的计算机将大多数的时间花费在“等待”上面。即便是使用者实际使用他们的计算机时,处理器依然是寂静的消费,依然是不计其数的等待(等待输入,但实际上并没有做什么)。互联网的出现, 使得连接调用所有这些拥有限制计算资源的计算机系统成为了现实。,进行分布式计算的现实需求,随着计算机的普及,个人电脑开始进入千家万户。与之伴随产生的是电脑的利用问题。越来越多

5、的电脑处于闲置状态,即使在开机状态下CPU的潜力也远远不能被完全利用。我们可以想象,一台家用的计算机将大多数的时间花费在“等待”上面。即便是使用者实际使用他们的计算机时,处理器依然是寂静的消费,依然是不计其数的等待(等待输入,但实际上并没有做什么)。互联网的出现, 使得连接调用所有这些拥有限制计算资源的计算机系统成为了现实。,分布式系统运行机制,那么,一些本身非常复杂的但是却很适合于划分为大量的更小的计算片断的问题被提出来,然后由某个研究机构通过大量艰辛的工作开发出计算用服务端和客户端。服务端负责将计算问题分成许多小的计算部分,然后把这些部分分配给许多联网参与计算的计算机进行并行处理,最后将这

6、些计算结果综合起来得到最终的结果。,分布式计算算法优越性,分布式计算比起其它算法具有以下几个优点:1、稀有资源可以共享、资源分享2、通过分布式计算可以在多台计算机上平衡计算负载3、可以把程序放在最适合运行它的计算机上,其中,共享稀有资源和平衡负载是计算机分布式计算的核心思想之一。,分布式计算算法优越性,实际上,网格计算就是分布式计算的一种。如果我们说某项工作是分布式的,那么,参与这项工作的一定不只是一台计算机,而是一个计算机网络,显然这种“蚂蚁搬山”的方式将具有很强的数据处理能力。网格计算的实质就是组合与共享资源并确保系统安全。,分布式系统应用举例,所谓分布式就是指数据和程序可以不位于一个服务

7、器上,而是分散到多个服务器,以网络上分散分布的地理信息数据及受其影响的数据库操作为研究对象的一种理论计算模型。分布式有利于任务在整个计算机系统上进行分配与优化,克服了传统集中式系统会导致中心主机资源紧张与响应瓶颈的缺陷,解决了网络GIS 中存在的数据异构、数据共享、运算复杂等问题,是地理信息系统技术的一大进步。,分布式系统应用举例,传统的集中式GIS 起码对两大类地理信息系统难以适用,需用分布式计算模型。第一类是大范围的专业地理信息系统、专题地理信息系统或区域地理信息系统。这些信息系统的时空数据来源、类型、结构多种多样,只有靠分布式才能实现数据资源共享和数据处理的分工合作。,分布式系统应用举例

8、,比如综合市政地下管网系统,自来水、燃气、污水的数据都分布在各自的管理机构,要对这些数据进行采集、编辑、入库、提取、分析等计算处理就必须采用分布式,让这些工作都在各自机构中进行,并建立各自的管理系统作为综合系统的子系统去完成管理工作。而传统的集中式提供不了这种工作上的必要性的分工。,分布式系统应用举例,第二类是在一个范围内的综合信息管理系统。城市地理信息系统就是这种系统中一个很有代表性的例子。世界各国管理工作城市市政管理占很大比例,城市信息的分布特性及城市信息管理部门在地域上的分散性决定了多层次、多成份、多内容的城市信息必须采用分布式的处理模式。,分布式系统应用举例,很明显,传统的集中式地理信

9、息系统不能满足分工明确的现代社会的需求,分布式地理信息系统的进一步发展具有不可阻挡的势头。而且,分布式GIS 与网络GIS 、客户/服务器GIS计算模型、WWW计算模型的关系都很密切。分布式GIS 是实现网络GIS 的途径,是实现NGIS的一种重要计算模型;CIS模型实际上是分布式GIS 可供采用的一种具体化计算模型;WWW模型实际上也是分布式GIS模型可采用的一种具体化模型,而且也是具有相当发展前途的分布式GIS模型。分布式GIS 与当今主导地理信息系统发展方向的技术的紧密联系使分布式GIS相应地成为地理信息系统的主要发展趋势。,分布式系统结构与特征,分布式系统是一个软件系统,分布式系统(d

10、istributed system)是建立在网络之上的软件系统。正是因为软件的特性,所以分布式系统具有高度的内聚性和透明性。因此,网络和分布式系统之间的区别更多的在于高层软件(特别是操作系统),而不是硬件。与顺序计算相比、并行的、并发的和分布式的计算包括多个 P E间的集体协同动作。,一个分布式系统是一个对用户看起来像普通系统,然而运行在一系列自治处理单元( P E)上的系统,每个P E有各自的物理存储器空间并且信息传输延迟不能忽略不计。在这些 P E间有紧密的合作。系统必须支持任意数量的进程和P E的动态扩展。,“分布式的”意味着计算的成本或性能取决于数据和控制的通信。,Enslow建议分布

11、式系统可以用硬件、控制、数据这三个维度加以检验。,A distributed system organized as middleware. Note that then middleware layer extends over mulitple machines.,An example of dividing the DNS name space into zones,分布式系统与计算机网络,共同点:多数分布式系统是建立在计算机网络之上的,所以分布式系统与计算机网络在物理结构上是基本相同的。,分布式系统与计算机网络,二者区别:设计思想和网络操作系统是不同的,这决定了他们在结构、工作方式和功

12、能上也不同。网络操作系统要求网络用户在使用网络资源时首先必须了解网络资源,网络用户必须知道网络中各个计算机的功能与配置、软件资源、网络文件结构等情况,在网络中如果用户要读一个共享文件时,用户必须知道这个文件放在哪一台计算机的哪一个目录下;,分布式系统与计算机网络,二者区别:分布式操作系统是以全局方式管理系统资源的,它可以为用户任意调度网络资源,并且调度过程是“透明”的。当用户提交一个作业时,分布式操作系统能够根据需要在系统中选择最合适的处理器,将用户的作业提交到该处理程序,在处理器完成作业后,将结果传给用户。在这个过程中,用户并不会意识到有多个处理器的存在,这个系统就像是一个处理器一样。,分布

13、式系统组成,分布式软件系统(Distributed Software Systems)是支持分布式处理的软件系统,是在由通信网络互联的多处理机体系结构上执行任务的系统。它包括:分布式操作系统、分布式程序设计语言及其编译(解释)系统、分布式文件系统分布式数据库系统等。,分布式系统组成,分布式操作系统负责管理分布式处理系统资源和控制分布式程序运行。它和集中式操作系统的区别在于资源管理、进程通信和系统结构等方面。分布式程序设计语言用于编写运行于分布式计算机系统上的分布式程序。一个分布式程序由若干个可以独立执行的程序模块组成,它们分布于一个分布式处理系统的多台计算机上被同时执行。它与集中式的程序设计语

14、言相比有三个特点:分布性、通信性和稳健性。,分布式系统组成,分布式文件系统具有执行远程文件存取的能力,并以透明方式对分布在网络上的文件进行管理和存取。分布式数据库系统它是由分布于多个计算机结点上的若干个数据库系统组成,它提供有效的存取手段来操纵这些结点上的子数据库。分布式数据库在使用上可视为一个完整的数据库,而实际上它是分布在地理分散的各个结点上。当然,分布在各个结点上的子数据库在逻辑上是相关的。,分布式系统架构的应用,提到分布式计算技术的应用和工具,目前成熟的技术包括J2EE, CORBA和.NET(DCOM),这些技术牵扯的内容非常广,相关的书籍也非常多,我们不讨论这些技术的内容,也没有涉

15、及这些技术的细节,只是从各种分布式系统平台产生的背景和在软件开发中应用的情况来探讨它们的主要异同。,一、分布式计算技术的形成,CORBA (Common Object Request Broker Architecture) 是在1992年由OMG(Open Management Group) 组织提出的。那时的分布式应用环境都采用Client/Server架构,CORBA的应用很大程度的提高了分布式应用软件的开发效率。,当时的另一种分布式系统开发工具是Microsoft的DCOM(Distributed Common Object Model)。Microsoft为了使在Windows平台上

16、开发的各种应用软件产品的功能能够在运行时(Runtime)相互调用(比如在Microsoft Word中直接编辑Excel文件),实现了OLE(Linked and Embedded Object)技术,后来这个技术衍生为COM(Common Object Model)。随着Internet的普及和网络服务(Web Services)的广泛应用, Browser/Server架构的模式逐渐体现出它的优势。 于是,Sun公司在其Java技术的基础上推出了应用于B/S架构的J2EE的开发和应用平台;Microsoft也在其DCOM技术的基础上推出了主要面向B/S应用的.NET开发和应用平台。,二、

17、使用的协议,.NET中涵盖的DCOM技术和CORBA一样,在网络传输层都采用TCP/IP协议;也都有自己的IDL规范。所不同的是,在TCP/IP之上,CORBA采用GIOP/IIOP协议,所有CORBA服务器以IIOP通信,形成了ORB软件通道;J2EE的RMI曾经采用独立的通信协议,目前已经改为RMI/IIOP,体现了J2EE的开放性;DCOM也有自己的通信协议(TCP在135端口的服务),但微软没有公开这个协议的规范;同样,CORBA的IDL采用类C+的定义,是公开的规范;DCOM的IDL的文件虽然是文本形式的,微软没有正式公布它的规范,在使用中,.NET的IDL是由开发工具生成的。,三、

18、应用环境,关于.NET,比尔盖茨这样说:“简单地说,.NET是以微软的各种产品为开发工具和应用平台, 实现基于XML的网络服务。”由此也可以看出,.NET在Microsoft的世界里功能强大,但对于Unix和Linux这些在服务器市场占主要份额的系统,.NET显得束手无策。,因此,J2EE显示了它跨平台的优势,为网络服务商提供了很好的面向前端(front-end)的开发和应用平台, 随着网络服务进一步广泛应用和服务集成度的提高, 在网络服务提供商的后台会形成越来越庞大的分布式计算环境, CORBA模块结构更适合后台(back-end)的多种服务, 例如网络服务的计费程序等. 因此可以看出, J

19、2EE和CORBA技术在网络服务(Web Services)这片蓝天下, 各自有自己的海洋和陆地。如果在前端(front-end)使用了.NET开发平台,那么在后端(back-end)的分布式结构中,DCOM就是理想的选择。J2EE是纯Java技术,很多测试显示RMI(Java)服务器的响应速度远远低于非Java的CORBA服务器。因此,在一些对数据处理速度和响应时间要求较高的系统开发中,要对RMI和CORBA的性能进行测试对比后再做选择。,四、应用软件的开发和维护,从应用软件的开发过程的角度看, J2EE是完全开放式的平台, 体现为既面向设计人员, 也面向开发人员的规范; CORBA也是一种

20、规范, 但更多体现为中间产品, CORBA产品的提供商才是这种规范的真正执行者, 对应用开发的程序员而言, 只要了解IDL语言的规范, 不必详细知道ORB/GIOP/IIOP的协议细节。.NET作为Microsoft在网络环境的主打, 体现为一系列产品化的开发工具, 比如C#, C+, 等。这些开发工具是直接针对应用开发人员的。其实Sun公司提供的J2EE也是由许多软件包(应用API)来面对开发人员的。从软件开发成本与周期以及软件的维护角度看,J2EE比CORBA有以上优势。,五、应用前景,对于分布式计算技术的架构,不能绝对地说哪一个更好,只能说哪一个更合适。针对不同的软件项目需求,具体分析才

21、是明智的选择。从宏观市场看,CORBA产品的销售并没有想象那样给CORBA产品提供商带来可观的利润;而J2EE的呼声也高于.NET; 随着J2EE中RMI/IIOP与CORBA接口的完善,再加上开发费用的考虑和使用的方便性,J2EE一揽子开放的环境会是人们首先考虑的选择;但CORBA标准,分布式系统完毕!,基于Ajax的Web异步传输,Web同步数据传输,Browser,Server,Request,Response,Waiting,Waiting,Request,Response,Web同步数据传输,Browser,Server,Ajax XmlRequest,Request,Respons

22、e,Request,Response,我们可以看见客户端的等待时间将减少,Web2.0,听到 Web 2.0 这个词的时候,应该首先问一问 “Web 1.0 是什么?” 虽然很少听人提到 Web 1.0,实际上它指的就是具有完全不同的请求和响应模型的传统 Web。,Web2.0,比如,到 A 网站上点击一个按钮或者输入搜索项。就会对服务器发送一个请求,然后响应再返回到浏览器。该请求不仅仅是图书和书目列表,而是另一个完整的 HTML 页面。因此当 Web 浏览器用新的 HTML 页面重绘时,可能会看到闪烁或抖动。事实上,通过看到的每个新页面可以清晰地看到请求和响应。,Web2.0,Web 2.0

23、(在很大程度上)消除了这种看得见的往复交互。比如访问 Google Maps 或 Flickr 这样的站点。比如在 Google Maps 上,您可以拖动地图,放大和缩小,只有很少的重绘操作。当然这里仍然有请求和响应,只不过都藏到了幕后。作为用户,体验更加舒适,感觉很像桌面应用程序。这种新的感受和范型就是当有人提到 Web 2.0 时您所体会到的。,Web2.0,需要关心的是如何使这些新的交互成为可能。显然,仍然需要发出请求和接收响应,但正是针对每次请求/响应交互的 HTML 重绘造成了缓慢、笨拙的 Web 交互的感受。因此很清楚,我们需要一种方法使发送的请求和接收的响应只 包含需要的数据而不

24、是整个 HTML 页面。惟一需要获得整个新 HTML 页面的时候就是希望用户看到 新页面的时候。,Web2.0,但多数交互都是在已有页面上增加细节、修改主体文本或者覆盖原有数据。这些情况下,Ajax 和 Web 2.0 方法允许在不 更新整个 HTML 页面的情况下发送和接收数据。对于那些经常上网的人,这种能力可以让您的应用程序感觉更快、响应更及时,让他们不时地光顾您的网站。,XMLHttpRequest,XMLHttpRequest提供客户端同HTTP服务器异步通信的协议通过这个协议,AJAX可以使页面象桌面程序一样同服务器端进行数据层面的交换,而不必每次都刷新页面,也不用每次都将数据处理的

25、工作都交给服务器来做,这样既减轻了服务器负担又加快了响应速度,缩短了用户等待的时间,XMLHttpRequest,要真正实现这种绚丽的奇迹,必须非常熟悉一个 JavaScript 对象,即 XMLHttpRequest。open():建立到服务器的新请求。 send():向服务器发送请求。 abort():退出当前请求。 readyState:提供当前 HTML 的就绪状态。 responseText:服务器返回的请求响应文本。,XMLHttpRequest,DOM是面向HTML和XML文档的一组API,它为文档提供了结构化的表示,并定义了如何通过脚本(JavaScript)来访问文档结构。如

26、果没有DOM,JavaScript根本就不存在Web页面和构成页面元素的概念。文档中的每个元素都是DOM的一部分,可通过JavaScript来访问这些元素的属性和方法,实现动态编辑页面的功能。 这里所说的DOM是符合W3C标准的文档对象模型,它以树型结构表示HTML和XML文档,并定义可操作这个树及其节点的一系列方法和属性。在网络浏览器端,通过JavaScript利用DOM提供的API来操作HTML和XML文档。,Ajax组成,XMLHttpRequest JavaScript XMl HTML/DHML CSS 应用程序(比如:WebService、HttpService),Ajax组成,AJAX的工作原理相当与在用户和服务器之间加了一个中间层,使用户请求与服务器响应异步化。这样还可以把以前的一些服务器负担的工作转交给客户端,利用客户端闲置的处理能力来处理,减轻服务器和宽带的负担。 AJAX是WEB2.0的核心之一AJAX技术运用与浏览器中,使向服务器索取网页的部分信息成为可能,瘦客户与富有客户端应用,Adobe 公司 AIR Microsoft 公司 sliverlight,

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报