《软件工程——理论、方法与实践》课件第8章.ppt

上传人(卖家):momomo 文档编号:7924357 上传时间:2024-09-04 格式:PPT 页数:59 大小:399.50KB
下载 相关 举报
《软件工程——理论、方法与实践》课件第8章.ppt_第1页
第1页 / 共59页
《软件工程——理论、方法与实践》课件第8章.ppt_第2页
第2页 / 共59页
《软件工程——理论、方法与实践》课件第8章.ppt_第3页
第3页 / 共59页
《软件工程——理论、方法与实践》课件第8章.ppt_第4页
第4页 / 共59页
《软件工程——理论、方法与实践》课件第8章.ppt_第5页
第5页 / 共59页
点击查看更多>>
资源描述

1、1 1第8章 分布式系统体系结构第8章 分布式系统体系结构8.1 分布式系统体系结构概述8.2 Client/Sever 结构8.3 分布式对象体系结构8.4 Peer-to-Peer体系结构8.5 基于Web的应用程序体系结构8.6 J2EE框架本章小结习题2 2第8章 分布式系统体系结构8.1 分布式系统体系结构概述Coulouris等人在研究分布式系统的基础上,指出了使用分布式进行系统开发的一些主要优点:一是共享性,分布式系统可以让各个子系统共享硬、软件资源;二是开放性,分布式系统通常采用规范、标准的协议来设计以允许来自不同开发者的硬、软件组合工作;三是并发性,跨越不同网络、不同节点的进

2、程同时运行体现了分布式系统的并发特性,进程之间存在着通信;四是可扩展性,通过增加新的处理资源可以很方便地扩展系统的能力;五是容错性,多节点可以使得系统具备一定的软、硬件容错能力。3 3第8章 分布式系统体系结构相对于集中式系统来说,分布式系统较为复杂。由于软件分布在多个节点上,给软件需求的定义、软件设计及测试均会带来一定的困难。如软件设计要考虑节点间通信的开销,对软件性能测试时也要考虑带宽的影响等。分布式系统的安全性也会受到挑战,网络环境使得系统和数据更容易受到攻击,特别是Internet环境下。4 4第8章 分布式系统体系结构分布式体系结构可分为Client/Server结构、分布式对象结构

3、及Peer-to-Peer结构等。Client/Server中,系统由一系列可提供服务的服务器及使用服务的客户机组成;分布式对象系统则是由分布在网络节点中的一系列协作的对象组成;Peer-to-Peer结构的系统则是由对等的服务节点构成,节点之间完全是等价的。5 5第8章 分布式系统体系结构8.2 Client/Sever结构大部分应用软件逻辑一般可被表示为三层模型:表示层、应用处理层和数据管理层,如图8.1所示。6 6第8章 分布式系统体系结构图8.1 应用软件逻辑7 7第8章 分布式系统体系结构在分布式系统中,这些处理被分布在不同的节点上,根据节点所承担的处理任务的类型,我们将节点分成两大

4、类,即客户机和服务器。最基本的C/S结构是两层Client/Server结构,即客户层和服务器,如图8.2(a)所示,而C/S结构也可以是多层的,如图8.2(b)所示。同时根据客户机处理业务量的多少,又将客户机分成胖客户机结构(Fat-Client)和瘦客户机结构(Thin-Client)。8 8第8章 分布式系统体系结构图8.2 两种客户服务器模式9 9第8章 分布式系统体系结构8.2.1 胖客户机和瘦客户机模型在胖客户机模型中,服务器通常只负责数据管理层的处理,业务逻辑和用户接口均在客户机方实现,服务器实际是一个处理数据库事务的服务器。图8.3是一个银行金融业务系统的示意。1010第8章

5、分布式系统体系结构图8.3 金融业务系统的客户服务器模式1111第8章 分布式系统体系结构8.2.2 B/S模型和多层C/S模型由于两层的瘦客户机模式主要的处理负载由服务器承担,会使得服务器的负载过重,仅有一层的服务器较难承担复杂系统的逻辑,因此一种三层的瘦客户C/S结构得到广泛推广,如图8.4所示。三层C/S结构与一般应用软件的层次逻辑有着直接的映射关系。1212第8章 分布式系统体系结构基于Web的应用程序体系结构模式一般为三层C/S模式,亦被称为B/S模型(Browser/Server),见图8.5。其客户端为浏览器程序,支持标准的表示语言,如HTML等。Web服务器通过HTTP协议与浏

6、览器客户交互,当Web服务器的处理需要数据库数据支持时,可通过SQL语言完成对数据库服务器的访问。1313第8章 分布式系统体系结构图8.5 B/S模型1414第8章 分布式系统体系结构8.3 分布式对象体系结构分布式对象体系结构如图8.6所示,对象分布在通过中间件进行通信的网络上。分布式中间件是一种对象请求代理,为对象间的引用提供一系列的服务接口,包括对象的请求处理、对象定位、访问请求的编排(Marshal)传输、返回结果的处理等。Sun公司RMI(Remote Method Invocation)、OMG组织的CORBA和Microsoft的DCOM是典型且广泛被采用的分布式对象体系结构。

7、1515第8章 分布式系统体系结构图8.6 分布式对象体系结构1616第8章 分布式系统体系结构8.3.1 RMI当服务器端想向客户端提供基于RMI的服务时,它需要将一个或多个远程对象注册到本地的RMI注册表中,Java提供这样的API接口java.rmi.registry.Registry API。客户程序通过命名服务java.rmi.Naming API,获得指向远程对象的远程引用,在发现远程对象所在的主机后,检索该主机上的RMI注册表,生成一个对该远程对象的远程引用,并将其调用结果返回给客户端。图8.7为RMI体系结构。1717第8章 分布式系统体系结构图8.7 RMI体系结构1818第

8、8章 分布式系统体系结构8.3.2 CORBACORBA(Common Object Request Broker)是一种分布式中间件标准,由OMG(Object Management Group)发布,用于处理分布式对象间的通信,是分布式系统构建的基础。CORBA提供允许跨越不同平台的计算机节点上的对象交换数据和控制信息的功能。基于CORBA的分布式系统体系结构如图8.8所示。1919第8章 分布式系统体系结构图8.8 CORBA体系结构2020第8章 分布式系统体系结构在CORBA体系结构模型中,主要包含CORBA应用程序对象、域对象、Horizontal CORBA部件、对象请求代理OR

9、B和对象服务。应用程序对象是目标系统所要设计和实现的,也是分布式系统分布于各节点的分布单元。CORBA对象是封装的、语言独立的,采用接口定义语言IDL(Interface Definition Language)来描述接口,每个对象都有一个唯一的标识IOR(Interoperable Object Reference),由对象请求者请求对象服务时使用。2121第8章 分布式系统体系结构域对象是OMG为特定应用域定义的规范的对象,这些对象覆盖金融、电子商务等领域;Horizontal CORBA部件则对应用程序提供一些公共的服务;域对象和Horizontal CORBA部件是CORBA的公共组件

10、,可以为不同的应用程序服务。ORB为对象服务管理请求,ORB负责定位提供服务的对象,为对象请求做准备,传送服务请求并返回请求的结果。ORB屏蔽了分布式对象间的通信、控制过程,使得对象间的调用本地化。CORBA Services则为系统提供分布式计算服务,如目录、安全、事务服务等。2222第8章 分布式系统体系结构8.3.3 DCOM 图8.9示意了DCOM的体系结构,它可以划分为三个层次,上层为应用组件层,中层提供远程访问处理,下层提供通信机制。DCOM提供位置透明的组件访问服务,上层的客户程序不必知道服务组件运行于本地或远程机器上,只需在配置的组件信息中加入或在程序代码中指定远程组件所在服务

11、器的名字。当客户创建组件对象时,COM运行库就会根据组件配置信息中提供的远程服务器名字,在远程服务组件中完成创建。2323第8章 分布式系统体系结构图8.9 DCOM体系结构2424第8章 分布式系统体系结构8.4 Peer-to-Peer体系结构理论上,在P2P系统中,每个节点都应该知道与它连接的其他节点,并可以和它们互相交换数据。而实际上,这不太可能做到,因为网络节点数是巨大的,分布于不同的地域、属于不同的机构。因此采用将一些节点局域化,其中用一些节点作为与其他局域节点的桥。如图8.10所示,N1N5、N6N11为局域节点,N4、N6为桥节点。2525第8章 分布式系统体系结构图8.10

12、P2P结构2626第8章 分布式系统体系结构8.5 基于Web的应用程序体系结构随着Internet的发展,面向Internet的业务模式已被各种组织和商业实体广泛采用。然而,目前多数电子商务的应用和基于Web的商业服务系统在处理方式上存在着开发语言、部署平台、通信协议、对外交换的数据格式的差异。因此,解决语言、平台、协议、数据差异,实现大范围的跨企业实体的应用系统的集成,是目前Web应用开发的关键问题。Web Services则是在现有的各种异构平台的基础上构筑一个通用的与平台无关、语言无关的技术层,各种不同平台之上的应用可依靠这个技术层来实施彼此的连接和集成。2727第8章 分布式系统体系

13、结构8.5.1 Web Services体系从功能的角度看,Web Services的体系结构是基于Web服务提供者、Web服务请求者、Web服务注册代理的不同操作来建立的。以角色来表示的Web Services体系结构模型可以用图8.11表示。2828第8章 分布式系统体系结构图8.11 Web Services的体系结构模型2929第8章 分布式系统体系结构组成Web Services体系的组件必须具有上述一种或多种角色。这些不同的角色之间通过发布(Publish)、查找(Find)和绑定(Bind)三种操作提供完整的Web Services功能。3030第8章 分布式系统体系结构每个We

14、b服务有其完整的开发生命周期,其中规定了各角色的设计、实现、部署和运行的需求,主要包括以下步骤:(1)服务提供者设计并实现Web服务。(2)服务提供者将所实现的Web服务通过服务注册代理进行发布(在UDDI注册中心注册)。(3)服务请求者向服务注册代理请求特定的服务。(4)服务注册代理根据请求内容查询UDDI注册中心,为请求者查找特定的服务。(5)服务注册代理向服务请求者返回满足条件的以WSDL形式描述的Web服务信息。3131第8章 分布式系统体系结构(6)服务请求者利用从服务注册代理返回的描述信息产生相应的消息(SOAP消息)并发送给服务提供者。(7)服务提供者接收到消息后执行相应的Web

15、服务,并将结果以SOAP消息形式返回给服务请求者,完成一次Web服务。3232第8章 分布式系统体系结构8.5.2 Web Services协议栈Web Services使用通用的标准和技术进行服务的描述、服务消息通信以及数据格式的定义,这些标准和技术由一系列分层协议组成,构成了一个Web Services协议栈,如表8.1所示。3333第8章 分布式系统体系结构3434第8章 分布式系统体系结构通常一个典型的Web Services结构由图8.12所示的协议模型构成。一般来说Web Services的传输层较多采用HTTP,当然也可以运行在其他传输协议上,如FTP和SMTP。建立在传输层上的

16、是XML格式文档的消息。虽然 XML 定义了消息编码,但是它并没有涉及文档本身的结构和格式,所以采用SOAP协议定义建立在XML(XSD 版本 2)和标准 Internet协议(如HTTP和SMTP)上的关于消息的协议。SOAP协议规范给出了消息(SOAP封包)、数据类型定义和实现远程过程调用的一套约定及返回数据的格式(SOAP正文)。3535第8章 分布式系统体系结构图8.12 一个Web服务的典型架构3636第8章 分布式系统体系结构8.6 J2EE框架J2EE是基于Java技术的一系列企业级应用构建标准,Sun公司将其定义为:基于开放和标准的平台,开发、实施和管理n层、Web形式的、以服

17、务器为中心的企业应用程序。3737第8章 分布式系统体系结构J2EE使用多层的分布式应用模型,应用逻辑按功能划分为组件,各个组件根据它们所在的层分布在不同的机器上。事实上,Sun设计J2EE的初衷是为了解决Client/Server两层模式的弊端。在传统模式中,客户端担当了过多的角色而显得臃肿,虽然第一次部署的时候比较容易,但难于升级或改进,可扩展性也不理想,而且经常基于某种专有的协议如数据库协议,使得重用业务逻辑和界面逻辑非常困难。现在J2EE的多层企业级应用模型将两层模型中的不同层面切分成许多层。一个多层化应用能够为不同的各种服务提供一个独立的层。3838第8章 分布式系统体系结构从图8.

18、13可以看出J2EE 规范分为四个层次,分别是运行在客户端机器上的客户端层(Client Tier)、运行在Web 服务器上的Web 层(Web Tier)、运行在EJB 服务器上的业务层(Business Tier)和运行在EIS 服务器上企业信息系统层(Enterprise Information System Tier)。3939第8章 分布式系统体系结构图8.13 J2EE多层模型4040第8章 分布式系统体系结构(1)客户端层组件。应用客户端程序和浏览器是客户端层组件。客户端层组件可以是基于Web方式的浏览器,也可以是基于传统方式的(非基于Web 方式)独立的应用程序,以完成瘦客户机

19、无法完成的任务。4141第8章 分布式系统体系结构(2)Web层组件。Web层组件主要指Java Servlet 和Java Server Pages(JSP)。如图8.14所示,Web 层可能包含某些 JavaBean 对象来处理用户输入,并把输入发送给运行在业务层上的Enterprise Bean来进行处理。按照J2EE规范,静态的HTML页面和Applets不算是Web 层组件。这里的JavaBean 和EJB(Enterprise JavaBean)除了共用“JavaBean”这个名字外,两种组件模式完全没有关系。EJB 并不是原始的“JavaBean”的扩展。4242第8章 分布式系

20、统体系结构图8.14 客户端层、Web层及业务层4343第8章 分布式系统体系结构(3)业务层组件。Enterprise JavaBeans(EJB)是业务层组件。业务层代码的逻辑用来满足应用领域的需要,如银行、零售、金融等特殊业务领域,由运行在业务层上的EJB 进行处理。图8.15说明一个EJB从客户端程序接收数据,进行处理,并发送到企业信息系统层(EIS)进行存储的过程及其逆向的过程。4444第8章 分布式系统体系结构图8.15 客户端层、Web层、业务层和EIS层4545第8章 分布式系统体系结构(4)企业信息系统层组件。该层组件是处理企业信息的软件。企业资源计划(ERP)、大型机事务处

21、理、数据库系统和其他的遗留信息系统构成的系统被认为是该层的体现。例如,一个J2EE应用程序可能需要企业信息系统数据库中的数据,它通过访问该层的信息系统获取数据。图8.15是四层访问模式的示意。4646第8章 分布式系统体系结构1J2EE客户方系统J2EE应用程序可以有多种类型的客户方系统,如桌面或便携式计算机、个人数字助理PDA、移动电话等系统。J2EE客户方程序为最终用户提供一个本地GUI,最终用户可以根据需要与远程服务器方应用组件进行交互。客户方程序在客户的计算机系统上本地执行,运行客户软件的系统都被认为是客户层的一部分。4747第8章 分布式系统体系结构通常J2EE应用的客户方系统类型可

22、被分为以下几种:(1)应用程序类型。应用客户是标准的Java桌面应用程序,使用Java编程语言编写,在标准的Java虚拟机上运行。(2)Web程序类型。Web形式的客户方程序有两个主要的组成部分:Web浏览器和Web页面(HTML页面或XML文档)。Web页面向最终用户提供进入企业应用程序的界面。Web客户程序的各种Web页面是通过驻留在Web层的Web组件动态创建的,典型情况下,由Web组件Java Servlet和JSP来实现。4848第8章 分布式系统体系结构(3)Applet程序类型。由Web层组件产生的Web页面可以随意包含嵌入式Java applet。Java applet是使用J

23、ava语言编写的轻量级客户程序,典型情况下是在Web浏览器上下文中执行。与Web客户方程序类似,在Web浏览器中执行的applet程序通过HTTP协议与Web层进行通信,但applet程序不能访问业务层,必须通过Web层来访问业务层,图8.16描述了这一访问上的限制。4949第8章 分布式系统体系结构图8.16 Applet客户程序的访问业务层组件示意5050第8章 分布式系统体系结构(4)其他程序类型。J2EE灵活的应用开发模型使得任何能够通过HTTP协议同J2EE Web层进行交互的客户方程序都可以成为J2EE客户,如无线客户、C+客户、.NET客户、Visual Basic客户、本地CO

24、RBA客户和其他形式的客户软件等。5151第8章 分布式系统体系结构2组件和模块J2EE以基于组件的结构为中心,应用软件由组件构成,这些软件组件在逻辑上分布在客户层、Web层和EIS层。J2EE中的组件实际上是标准的Java类,由平台无关的字节码组成。传统的Java类与J2EE组件之间的差别在于:组件是可重用的、独立的程序单元,可以和其他组件进行组装来形成J2EE应用。因此,组件在部署之前需要进行验证,表明其组成是良好的,并且与J2EE的需求一致。5252第8章 分布式系统体系结构3容器与服务J2EE组件由执行它们的容器来管理。组件最终都部署到合适的层上,在层上所对应的容器中执行,容器为这些组

25、件提供访问特定的、标准化的服务和API的能力。所有的J2EE组件都是在容器的Java虚拟机中进行初始化的,组件通过调用容器提供的标准服务来与外界交互。5353第8章 分布式系统体系结构图8.17是J2EE下应用程序的组件和彼此间的协议(交互)关系。软件系统组件可以包括跨越网络分布Web客户端软件、Java应用程序、C+应用程序、各类可共享的JavaBean或EJB。J2EE平台为此采用了多种分布式技术和标准以及协议,如RMI、CORBA、SOAP等,使得分布式环境下的软件系统的构成成为可能。在第9章中,我们将从组件复用的角度讨论企业应用系统的集成。5454第8章 分布式系统体系结构图8.17

26、J2EE架构下的软件体系5555第8章 分布式系统体系结构本 章 小 结绝大多数的软件系统为跨越网络平台的分布式系统。但由于软件分布于网络中不同区域的多个节点,因此将给软件设计带来新的挑战。5656第8章 分布式系统体系结构分布式体系结构可分为Client/Server结构、分布式对象结构及Peer-to-Peer结构。Client/Server结构中,系统由一系列可提供服务的服务器及使用服务的客户机组成,这其中B/S模式是多层C/S模型在Internet环境下的典型的应用程序模式。分布式对象系统则是由分布在网络节点中的一系列协作的对象组成,RMI、CORBA、DCOM是分布式对象系统的重要基

27、础设施。Peer-to-Peer结构的系统则是由对等的服务节点构成,节点之间完全是等价的。5757第8章 分布式系统体系结构Web Services和J2EE是由大型应用系统构建集成的平台。Web Services是由应用程序通过使用分布于不同节点的Web服务(Services)构造而成的。J2EE 是基于Java技术的一系列企业级应用构建标准,使用多层的分布式应用模型、应用逻辑按功能划分为组件,各个组件根据它们所在的层分布在不同的节点上。5858第8章 分布式系统体系结构习 题1在客户机/服务器系统开发中,胖客户机和瘦客户机方法的根本区别在哪里?为什么用Java作为实现语言时这两种方法之间的

28、界限变得较为模糊。2B/S模型是怎样一种模型?3名词解释:(1)RMI(2)CORBA(3)DCOM(4)分布式体系结构5959第8章 分布式系统体系结构4简述Web Services体系结构是怎样一种结构?5请比较Web Services体系结构与J2EE框架,说明其异同。6假设要开发一个股票信息系统(如华泰证券的网上交易分析系统),给客户提供对公司信息的访问并能够利用仿真系统对各种投资情形做出评估。不同的客户会根据他们的经验而采取不同的投资方式,而且购买的股票类型也是不同的。为系统提出一个客户机/服务器体系结构,指出各个功能是在哪里实现的,并对该模型做出一些判断。7基于客户机/服务器模型的分布式系统早在20世纪80年代就已经出现,但是基于分布式对象的系统体系结构只是最近几年才得以实现,说明这种情况的3个原因。

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

当前位置:首页 > 大学
版权提示 | 免责声明

1,本文(《软件工程——理论、方法与实践》课件第8章.ppt)为本站会员(momomo)主动上传,163文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。
2,用户下载本文档,所消耗的文币(积分)将全额增加到上传者的账号。
3, 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(发送邮件至3464097650@qq.com或直接QQ联系客服),我们立即给予删除!


侵权处理QQ:3464097650--上传资料QQ:3464097650

【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。


163文库-Www.163Wenku.Com |网站地图|