《第三章软件体系结构风格要点课件.ppt》由会员分享,可在线阅读,更多相关《第三章软件体系结构风格要点课件.ppt(98页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第三章第三章 软件体系结构风格软件体系结构风格分布式体系结构分布式体系结构1分布式软件体系结构产生背景产生背景在集中式计算技术时代广泛使用的是大型机在集中式计算技术时代广泛使用的是大型机/小小型机计算模型。它是通过一台物理上与宿主机相型机计算模型。它是通过一台物理上与宿主机相连接的非智能终端来实现宿主机上的应用程序。连接的非智能终端来实现宿主机上的应用程序。20世纪世纪80年代以后,集中式结构逐渐被以年代以后,集中式结构逐渐被以PC机机为主的微机网络所取代。个人计算机和工作站的为主的微机网络所取代。个人计算机和工作站的采用,永远改变了协作计算模型,从而导致了分采用,永远改变了协作计算模型,从而
2、导致了分散的个人计算模型的产生。散的个人计算模型的产生。2分布式软件体系结构产生背景产生背景它们构建在大的或小的网络环境及某种组合上,它们构建在大的或小的网络环境及某种组合上,形成了分布式系统。形成了分布式系统。在分布式系统中,数据、过程、接口等构件被分在分布式系统中,数据、过程、接口等构件被分布到网络的多个端点,支持这些构件所需的计算布到网络的多个端点,支持这些构件所需的计算也部署到分布环境的计算机上。也部署到分布环境的计算机上。3分布式系统是当前软件开发的重要方向分布式软件系统直接反映了现实世界中的分别性,例如当前许多业务处理流程通常呈现一种分布式运作方式。改进某些应用程序的运行性能,使它
3、们比单进程的集中式更具有效率。软件的分别性能充分利用额外的计算资源分布式系统增强了信息的互联互通和各主体之间的协作关系,增强了整个系统的计算能力4分布式系统是当前软件开发的重要方向增强了系统的可伸缩性和容错能力分布式系统,尤其是基于网络的体系结构,可共享异地昂贵的外部设备,把一些应用构件和服务委托在具有处理属性的主机上运行5三类分布式系统局域网文件服务器结构客户/服务器体系结构(2层和N层)基于Web的计算6一般系统的主要层次数据存储层数据处理层应用逻辑层表现逻辑层表现层7局域网文件服务器体系结构服务器仅装载了数据层,系统应用的其他层都在客户端实现例如,Access数据库存储在服务器上,但每台
4、使用数据库的计算机必须安装Access应用程序,并从那里执行。8局域网文件服务器体系结构当用户发送一个请求给文件服务器时,文件服务器会从数据库中找到相应的表,传送给客户端,同时对所选表加锁,直到客户端返回表为止。客户端采用本地程序对表进行修改、读取或其他处理,然后再把表返回文件服务器。9文件服务器体系结构的适用领域文件服务器体系结构仅对较少的小型数据库应用是可行的。10文件服务器体系结构缺点客户端和服务器之间需要移动大量不必要的数据,降低了应用性能客户端必须相当健壮。客户端做了几乎所有的工作,而且必须有足够的磁盘空间来存储下载的表容易破坏数据的完整性对环境的变化及用户需求变革的适应性差,一旦发
5、生变化,客户端和服务器端的应用程序都必须修改,增加了维护的工作量11客户机/服务器体系结构客户机/服务器(Client/Server)是一种广泛流行的分布计算软件体系结构,经历了三种结构的演化,两层分布式表现结构、两层分布式数据结构和N层分布式数据和应用结构12分布式表现结构为了克服文件服务器结构中的客户端的超量负载和网络间大数据量传输,同时改进结构的动态适应性,把应用逻辑层和数据处理层从客户端剥离出来,配置在服务器端,构成了分布式表现的C/S体系结构。应用逻辑或数据发生变化时,应修改服务器端的应用程序13分布式表现结构利于基于文件服务器体系结构的现存系统的改造利用易于使这些系统的有效生命期得
6、到延长14两层分布式数据结构数据和数据处理放在服务器上,应用逻辑、表现逻辑和表现层放在客户端。是经典的两层C/S体系结构。充分挖掘使用了客户端的计算能力,并使得数据库维护方便。15C/S的基本概念的基本概念C/S软件体系结构是基于资源不对等,且为实现共享而提出来的,是20世纪90年代成熟起来的技术,C/S体系结构定义了工作站如何与服务器相连,以实现数据和应用分布到多个处理机上。C/S体系结构有三个主要组成部分:数据库服务器、客户应用程序和网络。16C/S的体系结构的体系结构17服务器的任务分配服务器的任务分配数据库安全性的要求;数据库安全性的要求;数据库访问并发性的控制;数据库访问并发性的控制
7、;数据库前端的客户应用程序的全局数数据库前端的客户应用程序的全局数据完整性规则;据完整性规则;数据库的备份与恢复。数据库的备份与恢复。18客户端的任务分配客户端的任务分配提供用户与数据库交互的界面;提供用户与数据库交互的界面;向数据库服务器提交用户请求并接收来自向数据库服务器提交用户请求并接收来自数据库服务器的信息;数据库服务器的信息;利用客户应用程序对存在于客户端的数据利用客户应用程序对存在于客户端的数据执行应用逻辑要求。执行应用逻辑要求。19C/SC/S的处理流程的处理流程20C/SC/S体系结构的优点体系结构的优点C/S 体系结构具有强大的数据操作和事务处理能体系结构具有强大的数据操作和
8、事务处理能力,模型思想简单,易于人们理解和接受。力,模型思想简单,易于人们理解和接受。系统的客户应用程序和服务器构件分别运行在不系统的客户应用程序和服务器构件分别运行在不同的计算机上,系统中每台服务器都可以适合各同的计算机上,系统中每台服务器都可以适合各构件的要求,这对于硬件和软件的变化显示出极构件的要求,这对于硬件和软件的变化显示出极大的适应性和灵活性,而且易于对系统进行扩充大的适应性和灵活性,而且易于对系统进行扩充和缩小。和缩小。21C/SC/S体系结构的优点体系结构的优点系统中的功能构件充分隔离系统中的功能构件充分隔离客户应用程序的开发集中于数据的显示和分析客户应用程序的开发集中于数据的
9、显示和分析数据库服务器的开发则集中于数据的管理数据库服务器的开发则集中于数据的管理不必在每一个新的应用程序中都要对一个不必在每一个新的应用程序中都要对一个DBMS进行编码。进行编码。将大的应用处理任务分布到许多通过网络连将大的应用处理任务分布到许多通过网络连接的低成本计算机上,以节约大量费用。接的低成本计算机上,以节约大量费用。22C/SC/S体系结构的体系结构的缺点缺点开发成本较高开发成本较高客户端程序设计复杂客户端程序设计复杂信息内容和形式单一信息内容和形式单一用户界面风格不一,使用繁杂,不利于推广使用用户界面风格不一,使用繁杂,不利于推广使用软件移植困难软件移植困难软件维护和升级困难软件
10、维护和升级困难新技术不能轻易应用新技术不能轻易应用23C/S N层体系结构在客户端和服务器之间加入一层或多层服务器。24第三章第三章 软件体系结构风格软件体系结构风格三层客户三层客户/服务器风格服务器风格25三层三层C/S风格的体系结构风格的体系结构26三层三层C/S的处理流程的处理流程处理流程处理流程27C/SC/S的处理流程的处理流程28三层三层C/S的物理结构的物理结构29三层三层C/S的优点的优点应用的各层可以并行开发,可以选择各自最适合应用的各层可以并行开发,可以选择各自最适合的开发语言。的开发语言。利用功能层有效地隔离开表示层与数据层,未授利用功能层有效地隔离开表示层与数据层,未授
11、权的用户难以绕过功能层而利用数据库工具或黑权的用户难以绕过功能层而利用数据库工具或黑客手段去非法地访问数据层,为严格的安全管理客手段去非法地访问数据层,为严格的安全管理奠定了坚实的基础。奠定了坚实的基础。30三层三层C/S的优点的优点允许合理地划分三层结构的功能,使之在逻辑上允许合理地划分三层结构的功能,使之在逻辑上保持相对独立性,能提高系统和软件的可维护性保持相对独立性,能提高系统和软件的可维护性和可扩展性。和可扩展性。允许更灵活有效地选用相应的平台和硬件系统,允许更灵活有效地选用相应的平台和硬件系统,使之在处理负荷能力上与处理特性上分别适应于使之在处理负荷能力上与处理特性上分别适应于结构清
12、晰的三层;并且这些平台和各个组成部分结构清晰的三层;并且这些平台和各个组成部分可以具有良好的可升级性和开放性。可以具有良好的可升级性和开放性。31三层三层C/S的优点的优点把应用的业务逻辑与用户界面分开,将商业逻辑放在经过合理任务划分与物理部署后的中间层应用服务器上,从而客户程序通过中间层简介访问数据库,客户端修改不影响服务器客户数可以充分扩展,如果需要修改应用程序代码,只需对中间层应用服务器进行修改,而不用修改成千上万的客户端应用程序。32三层三层C/S要注意的问题要注意的问题三层三层C/S结构各层间的通信效率若不高,即结构各层间的通信效率若不高,即使分配给各层的硬件能力很强,其作为整使分配
13、给各层的硬件能力很强,其作为整体来说也达不到所要求的性能。体来说也达不到所要求的性能。设计时必须慎重考虑三层间的通信方法、设计时必须慎重考虑三层间的通信方法、通信频度及数据量。这和提高各层的独立通信频度及数据量。这和提高各层的独立性一样是三层性一样是三层C/S结构的关键问题。结构的关键问题。33浏览器浏览器/服务器风格服务器风格浏览器浏览器/服务器(服务器(B/S)风格就是上述三层应用结)风格就是上述三层应用结构的一种实现方式,其具体结构为:浏览器构的一种实现方式,其具体结构为:浏览器/Web服务器服务器/数据库服务器。数据库服务器。34浏览器浏览器/服务器风格服务器风格B/S体系结构主要是利
14、用不断成熟的体系结构主要是利用不断成熟的WWW浏览浏览器技术,结合浏览器的多种脚本语言,用通用浏器技术,结合浏览器的多种脚本语言,用通用浏览器就实现了原来需要复杂的专用软件才能实现览器就实现了原来需要复杂的专用软件才能实现的强大功能,并节约了开发成本。的强大功能,并节约了开发成本。从某种程度上来说,从某种程度上来说,B/S结构是一种全新的软件结构是一种全新的软件体系结构。体系结构。35浏览器浏览器/服务器风格的体系结构服务器风格的体系结构36浏览器浏览器/服务器风格的优点服务器风格的优点基于基于B/S体系结构的软件,系统安装、修改体系结构的软件,系统安装、修改和维护全在服务器端解决。和维护全在
15、服务器端解决。用户在使用系统时,仅仅需要一个浏览器用户在使用系统时,仅仅需要一个浏览器就可运行全部的模块,真正达到了就可运行全部的模块,真正达到了“零客零客户端户端”的功能,很容易在运行时自动升级。的功能,很容易在运行时自动升级。37浏览器浏览器/服务器风格的优点服务器风格的优点B/S体系结构还提供了异种机、异种网、异体系结构还提供了异种机、异种网、异种应用服务的联机、联网、统一服务的最种应用服务的联机、联网、统一服务的最现实的开放性基础。现实的开放性基础。38浏览器浏览器/服务器风格的缺点服务器风格的缺点B/S体系结构缺乏对动态页面的支持能力,体系结构缺乏对动态页面的支持能力,没有集成有效的
16、数据库处理功能。没有集成有效的数据库处理功能。B/S体系结构的系统扩展能力差,安全性难体系结构的系统扩展能力差,安全性难以控制。以控制。39浏览器浏览器/服务器风格的缺点服务器风格的缺点采用采用B/S体系结构的应用系统,在数据查询等响体系结构的应用系统,在数据查询等响应速度上,要远远地低于应速度上,要远远地低于C/S体系结构。体系结构。B/S体系结构的数据提交一般以页面为单位,数体系结构的数据提交一般以页面为单位,数据的动态交互性不强,不利于在线事务处理据的动态交互性不强,不利于在线事务处理(OLTP)应用。应用。OLTP是在线事务处理。比如收银台就像是是在线事务处理。比如收银台就像是OLTP
17、,因为不断有数据的录入(或是修改);因为不断有数据的录入(或是修改);OLTP就是数据库数据一直在变动、更新的就是数据库数据一直在变动、更新的40第三章第三章 软件体系结构风格软件体系结构风格公共对象请求代理结构公共对象请求代理结构41对象管理结构对象管理结构公共对象请求代理结构公共对象请求代理结构CORBA(Common Object Request Broker Architecture)是一种独立于语言)是一种独立于语言和软件和软件/硬件平台的软件构件模型。硬件平台的软件构件模型。42CORBA的构成的构成CORBA主要由对象请求代理、公共对象服主要由对象请求代理、公共对象服务、通用设施
18、和应用接口组成。务、通用设施和应用接口组成。43对象请求代理对象请求代理ORB请求代理是建立基于分布式对象的应用程序的基础,使请求代理是建立基于分布式对象的应用程序的基础,使得分布式对象之间能够透明的发送请求或接受响应得分布式对象之间能够透明的发送请求或接受响应在在CORBA中,所有的通信都通过中,所有的通信都通过ORB进行,因而无论进行,因而无论一个对象是本地的还是远程的,对于与之进行通信的其一个对象是本地的还是远程的,对于与之进行通信的其他对象来说都是等价的他对象来说都是等价的CORBA保证了异构和同构环境中对象的可移植性和可保证了异构和同构环境中对象的可移植性和可互操作性互操作性ORB独
19、立于实现对象的特定平台与技术,客户程序无需独立于实现对象的特定平台与技术,客户程序无需知道如何与对象通信、如何激活对象、对象如何实现、知道如何与对象通信、如何激活对象、对象如何实现、如何查找对象如何查找对象44对象请求代理对象请求代理ORB请求代理是建立基于分布式对象的应用程序的基础,使请求代理是建立基于分布式对象的应用程序的基础,使得分布式对象之间能够透明的发送请求或接受响应得分布式对象之间能够透明的发送请求或接受响应对象请求代理对象请求代理ORB规定了分布对象的接口定义和语言映规定了分布对象的接口定义和语言映射、实现了对象间的透明通信和互操作,是分布对象的射、实现了对象间的透明通信和互操作
20、,是分布对象的“软总线软总线”在在ORB上定义了并发服务、命名服务、时间服务、安全上定义了并发服务、命名服务、时间服务、安全服务等多样公共服务;服务等多样公共服务;通用设施定义了构件框架,为领域对象提供可使用的共通用设施定义了构件框架,为领域对象提供可使用的共享服务,规定领域对象有效协作所需的规则。享服务,规定领域对象有效协作所需的规则。45CORBA对象服务对象服务是对象管理体系结构对象服务是对象管理体系结构OMA定义的一系定义的一系列独立于应用领域的服务列独立于应用领域的服务CORBA服务是开发分布式应用所必需的模块,服务是开发分布式应用所必需的模块,用来提供基本用来提供基本ORB功能之上
21、的更高系统级服务。功能之上的更高系统级服务。主要处理核心系统级功能,如异步事件管理、持主要处理核心系统级功能,如异步事件管理、持久性和事务、安全性、并发、命名、消息接发以久性和事务、安全性、并发、命名、消息接发以及目录服务,这些服务要么是基于及目录服务,这些服务要么是基于CORBA的应的应用程序的基础,要么用于为应用程序提供可互操用程序的基础,要么用于为应用程序提供可互操作性,形成了构件高级工具和业务功能的框架作性,形成了构件高级工具和业务功能的框架46CORBA对象服务对象服务的本职是将覆盖对象整个生存期的对象对象服务的本职是将覆盖对象整个生存期的对象管理任务标准化,例如对象服务提供的功能包
22、括管理任务标准化,例如对象服务提供的功能包括了创建对象、对象访问控制、查找对象、维持对了创建对象、对象访问控制、查找对象、维持对象间关系等象间关系等这种标准化可导致不同应用程序的一致性,并提这种标准化可导致不同应用程序的一致性,并提高软件开发者的生产率高软件开发者的生产率47CORBA对象服务对象服务规范包含在对象服务规范包含在CORBA服务的公共服务规服务的公共服务规范中,服务规范主要处理各种服务,并定义范中,服务规范主要处理各种服务,并定义IDL接口,以及非形式化的描述这些接口的语义接口,以及非形式化的描述这些接口的语义这些服务独立于应用领域,包括:命名服务、事这些服务独立于应用领域,包括
23、:命名服务、事件服务、持久对象、并发控制、外表化、许可机件服务、持久对象、并发控制、外表化、许可机制、查询、属性、安全性、时间、对象收集、交制、查询、属性、安全性、时间、对象收集、交易服务等服务的规范易服务等服务的规范48CORBA通用设施通用设施(通用设施(Common Facilities)是)是IDL定义的、定义的、向终端用户应用程序提供的一组服务接口的集合。向终端用户应用程序提供的一组服务接口的集合。通用设施可用于大多数应用领域,包括分布式文通用设施可用于大多数应用领域,包括分布式文档设施、打印设施、数据库设施、电子邮件设施档设施、打印设施、数据库设施、电子邮件设施等。等。49CORB
24、A应用程序接口应用程序对象位于整个应用程序对象位于整个OMA参考模型的最高层。参考模型的最高层。它们不是由它们不是由OMG来标准化的,而是符合传统上来标准化的,而是符合传统上对应用程序的认识。对应用程序的认识。应用程序对象为终端用户执行特定的任务,主要应用程序对象为终端用户执行特定的任务,主要为某一类应用或一个特定的应用提供服务为某一类应用或一个特定的应用提供服务50对象管理结构对象管理结构51CORBA的特点CORBA在基于网络的分布式应用环境下实现应用软件的集成。CORBA采用并吸收了面向对象技术、分布式计算技术和多层体系结构技术,实现了在分布式应用环境中软件的可复用性、可移植性和互操作性
25、。52CORBA的特点提供“软件总线”机制“软件总线”机制简化了分布式应用系统的复杂性。任何应用只要提供按照CORBA规范定义的一组接口,就可以方便的集成到CORBA系统中。接口规范独立于任何实现语言和环境。因此,客户应用和服务对象之间可以透明的交互运行,实现应用程序在“软件总线”上的即插即用。53CORBA的特点使用代理扩展了客户/服务器的计算模型代理的作用是:完成对客户发出的抽象服务请求的映射,自动发现并找到服务器,自动设定路由,实现服务器程序的执行客户和服务器完全分离。这和传统的客户/服务器方式有很大的不同客户不再与服务器直接联系,而是与代理发生联系。这样,客户和服务器都易于维护、修改5
26、4CORBA的特点使用IDL定义接口通过从IDL到具体编程语言映射的方式,CORBA对象可以用任何一种CORBA软件开发商所支持的语言,如C,C+,Java,Ada和Smalltalk等55CORBA的特点引入中间件作为事务代理,用于传递客户提出的服务请求及得到的服务结果。实现客户程序与对象实现之间的完全分离,客户端程序不需要了解对象的具体实现、操作平台和位置信息。提供“软总线”功能,对于任何环境、任何程序设计语言,只要遵循接口规范,就可以集成到已有的分布式系统中来。56CORBA的特点采用接口技术,使得软件总体设计、详细设计、代码编写以及维护等方面可以独立进行,同时又可以保证代码的一致性。采
27、用面向对象技术,使得在软件开发中能很好的实现信息封装、代码复用。57基于Java平台的分布式计算Sun公司于1995年正式推出Java技术。由于Java在网络计算领域中的跨平台优势,Java已从一种编程语言逐渐发展成一个软件开发平台,被计算机业界广泛接受,并被越来越多的标准化组织采纳为国际标准或行业标准Sun于1996年发布了JDK1.0,1997年发布了JDK1.1,1998年发布了JDK1.2(Java 2),2000年JDK1.3,目前是JDK1.658基于Java平台的分布式计算Java 2的出现改变了Personal Java和Embedded Java的分法,改分为Java 2 P
28、latform Enterprise Edition(J2EE),企业级计算、电子商务等领域的服务器应用Java 2 Platform Standard Edition(J2SE),一般的个人计算机Java 2 Platform Micro Edition(J2ME),消费性电子产品Sun ONE(Sun OpenNetwork Environment)是Sun公司2001年发布的,用于实现异构网络环境下的分布式计算的软件体系结构,用用于实现Web Service的平台59Java RMI在进行本地或远程机器上的进程间通信、远程执行代码时,有多种技术可用。最早且最常用的方法是在进程之间建立通信
29、链路。通过这条链路,一个进程可以把某些操作和数据按照约定的格式发送给另一个进程接收进程在解码后,执行响应的操作,并用同样的方法将结果返回给发起进程套接字编程就采用了这种方法60Java RMI但是,采用这种方法时,程序员必须给每个应用程序创建一个表示操作和数据的编码方式。这种做法还将引入两种不同的典型编程方法程序设计语言的过程调用/参数传递模型用于套接字的编程的命令模型 加大了开发难度远程机器之间的数据格式和字节排序顺序都可能不同,这种数据格式的平台相关性增大了通信的复杂性61Java RMI另一种方法是远程过程调用(Remote Procedure Call)使用这种方法,远程进程间的通信和
30、调用能够以一种类似于本地过程调用和参数传递那样的方式进行,这使得程序设计中能使用统一的编程风格。但是数据格式和字节排列顺序的问题仍然存在,而且RPC是一种面向处理的程序风格,不适用于面向对象的系统设计方案62Java RMIJava 远程方法调用,Java RMI(Java Remote Method Invocation)是以同构的Java虚拟机环境为基础的一种解决方案Java RMI利用Java对象模型的优点,是一种纯Java的分布式应用核心解决方案63Java语言支持分布式对象的目标在保留大部分Java语言对象语义的同时,用较为自然的方式将分布式对象模型集成到Java语言中在不同的虚拟机
31、上支持对象的无缝远程调用支持从服务器到applet的回调使分布式对象模型和本地Java对象模型的差异明朗化为远程对象提供各种引用语义,例如非持久引用、持久引用和惰性激活实现安全管理器和类加载器提供的安全可靠的Java环境64Java RMI概述RMI是JSDK的一部分,是一个支持分布式计算应用程序的远程方法调用和返回的API在RMI中,任何一个可以被其他Java虚拟机调用其方法的对象称为远程对象(Remote Object)。远程对象是网络对象,调用它们的客户或其他远程对象的地理位置是透明的。既可能是位于同一个地址空间内,也可能是跨越互联网的调用RMI在处理本地调用和分布式对象的方法调用时,使
32、用几乎相同的编程模型,并假设调用方法和被调用方法均使用Java语言65Java RMI的编组和解组RMI允许通过网络传递参数,包括Java基本元和对象编组和解组是使参数在被请求机器上可以使用的处理方法,它将参数打包、拆包,从而使得它们可应用于不同的环境66Java RMI参数传递RMI允许两种方法传递参数:值传递和引用传递值传递时,在远程主机上的另一个进程创建新对象,并将参数复制到新对象中。引用传递时,远程主机收到的是原对象的一个引用,而不是具体拷贝。所以它不在另一个进程中创建对象,对象仍留在原地,并进行远程操作。这些远程操作所做出的修改会影响原始数据67Java RMI远程对象和远程接口RM
33、I就是调用远程对象上远程接口的方法的动作。远程对象由一种或多种远程接口描述。客户可以向位于另一台机器的远程对象发送一条消息,并获得返回结果,就像那些对象位于本地机器一样。远程对象的方法调用与本地对象的方法调用语法相同68Java RMI安全性RMI使用Java内置的安全机制保证下载执行的程序时用户系统的安全RMI使用专门为保护系统免遭恶意Java Applet侵害而设计的安全管理程序,可保护系统和网络免遭潜在的恶意下载程序的破坏。在情况严重时,服务器可拒绝下载任何执行程序69Java RMI兼容性RMI可通过Java的本机方法接口JNI与现有系统进行交互。利用RMI和JNI,就能用Java编写
34、客户端程序,还能使用现有的服务器端程序。使用RMI/JNI与现有服务器连接时,可以有选择的用Java重新编写服务程序的任何部分,并使新的程序充分发挥Java功能。RMI可以利用JDBC,在不修改使用数据库的现有非Java源代码的前提下与现有数据库进行交互70Java RMI分布式垃圾收集71Java RMI72Java RMI73Java RMI74Java RMI75Java RMI76Java RMI77基于Java平台的分布式计算78第三章第三章 软件体系结构风格软件体系结构风格正交软件体系结构正交软件体系结构79正交软件体系结构的概念正交软件体系结构由组织层和线索的构件构成。正交软件体
35、系结构由组织层和线索的构件构成。层是由一组具有相同抽象级别的构件构成。层是由一组具有相同抽象级别的构件构成。线线索索是是子子系系统统的的特特例例,它它是是由由完完成成不不同同层层次次功功能能的的构构件件组组成成(通通过过相相互互调调用用来来关关联联),每每一一条条线线索完成整个系统中相对独立的一部分功能。索完成整个系统中相对独立的一部分功能。80正交软件体系结构的线索每每一一条条线线索索的的实实现现与与其其他他线线索索的的实实现现无无关关或或关关联联很很少少,在在同同一一层层中中的的构构件件之之间间是是不不存存在在相相互互调调用用的。的。如如果果线线索索是是相相互互独独立立的的,即即不不同同线
36、线索索中中的的构构件件之之间没有相互调用,那么这个结构就是完全正交的。间没有相互调用,那么这个结构就是完全正交的。81正交软件体系结构的框架框架82大型和复杂的软件系统,其子线索可以划分为更低一级的子线索,形成多级正交结构同一层次的构件不允许互相调用83系统演化对体系结构的影响在系统演化过程中,系统需求不断发生变化。在正交软件体系结构中,因线索的正交性,每个需求的变动仅影响某一条线索,不会影响其他线索。这样,把软件需求的变动局部化了,产生的影响也被限制在一定的范围内,容易实现84系统演化对体系结构的影响多级正交结构对于降低软件演化更新的开销是行之有效的适合大型软件开发,特别是MIS领域85正交
37、软件体系结构的特征特征正交软件体系结构由完成不同功能的正交软件体系结构由完成不同功能的n(n 1)个线索(子系统)组成;)个线索(子系统)组成;系统具有系统具有m(m 1)个不同抽象级别的层;)个不同抽象级别的层;线索之间是相互独立的(正交的);线索之间是相互独立的(正交的);系统有一个公共驱动层(一般为最高层)和系统有一个公共驱动层(一般为最高层)和公共数据结构(一般为最低层)。公共数据结构(一般为最低层)。86正交软件体系结构的特点结构清晰,易于理解。结构清晰,易于理解。由于线索功能相互独立,不进行互相调用,结由于线索功能相互独立,不进行互相调用,结构简单、清晰,构件在结构图中的位置已经说
38、构简单、清晰,构件在结构图中的位置已经说明它所实现的是哪一级抽象,担负的是什么功明它所实现的是哪一级抽象,担负的是什么功能。能。87正交软件体系结构的特点易修改,可维护性强。易修改,可维护性强。由于线索之间是相互独立的,所以对一个线索由于线索之间是相互独立的,所以对一个线索的修改不会影响到其他线索。的修改不会影响到其他线索。系统功能的增加或减少,只需相应的增删线索系统功能的增加或减少,只需相应的增删线索构件族,而不影响整个正交体系结构,因此能构件族,而不影响整个正交体系结构,因此能方便地实现结构调整。方便地实现结构调整。88正交软件体系结构的特点可移植性强,重用粒度大。可移植性强,重用粒度大。
39、因为正交结构可以为一个领域内的所有应用程因为正交结构可以为一个领域内的所有应用程序所共享,这些软件有着相同或类似的层次和序所共享,这些软件有着相同或类似的层次和线索,可以实现体系结构级的重用。线索,可以实现体系结构级的重用。89第三章第三章 软件体系结构风格软件体系结构风格异构结构风格异构结构风格90体系结构的风格没有定式软件体系结构风格为大粒度的软件重用提供了机会,然而,体系结构风格的使用却没有一个定式。91具体问题,具体分析对于应用体系结构风格来说,由于观察和考虑问题的角度不同,系统设计师可以有很大的选择余地。而且,不同的软件体系结构具有不同的处理能力的强项和弱点。因此,一个系统的体系结构
40、应该根据实际需要进行选择,要为系统选择或设计某一个体系结构风格,必须根据特定项目的具体特点,进行分析和比较后才能确定。92异构软件体系结构事实上存在一些系统,它们是由这些纯体系结构组合而成,即采用了异构软件体系结构。93异构体系结构的组合方式异构体系结构的组合方式有很多种,例如,可以采用平行的方式,即根据软件各个子系统的结构、功能和性能,为每个类子系统选择相应的体系结构。例如:设计某省工商行政管理系统时,根据子系统的功能把所有子系统划分为两大类,分别是数据处理类和查询类。然后根据子系统的功能选择相应的体系结构,为数据处理类子系统选择了CS结构,为查询类子系统选择了BS结构94为什么要使用异构结
41、构为什么要使用异构结构不同的结构有不同的处理能力的强项和弱点,一不同的结构有不同的处理能力的强项和弱点,一个系统的体系结构应该根据实际需要进行选择,个系统的体系结构应该根据实际需要进行选择,以解决实际问题。以解决实际问题。关于软件包、框架、通信以及其他一些体系结构关于软件包、框架、通信以及其他一些体系结构上的问题,目前存在多种标准。即使在某段时间上的问题,目前存在多种标准。即使在某段时间内某一种标准占统治地位,但变动最终是绝对的。内某一种标准占统治地位,但变动最终是绝对的。95为什么要使用异构结构为什么要使用异构结构实际工作中,我们总会遇到一些遗留下来的代码,实际工作中,我们总会遇到一些遗留下来的代码,它们仍有效用,但是却与新系统有某种程度上的它们仍有效用,但是却与新系统有某种程度上的不协调。然而在许多场合,将技术与经济综合进不协调。然而在许多场合,将技术与经济综合进行考虑时,总是决定不再重写它们。行考虑时,总是决定不再重写它们。即使在某一单位中,规定了共享共同的软件包或即使在某一单位中,规定了共享共同的软件包或相互关系的一些标准,仍会存在解释或表示习惯相互关系的一些标准,仍会存在解释或表示习惯上的不同。上的不同。96C/S与与B/S混合之内外有别模型混合之内外有别模型97C/S与与B/S混合之查改有别模型混合之查改有别模型98