体系结构--第3章-架构样式与框架.ppt
上传人:sy****28 上传时间:2024-09-14 格式:PPT 页数:37 大小:223KB 金币:16 举报 版权申诉
预览加载中,请您耐心等待几秒...

体系结构--第3章-架构样式与框架.ppt

体系结构--第3章-架构样式与框架.ppt

预览

免费试读已结束,剩余 27 页请下载文档后查看

16 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

3.1软件架构样式的概念3.2软件架构样式的种类3.3参考模型3.4软件架构、框架和设计模式3.5小结3.1软件架构样式的概念构架样式是预先定义好的,稍加修改即可在给定环境下使用的“组块”,样式代表了一组已经做出并可重用的设计决策,而且这些决策构成了一个整体。样式对系统功能的要求总是模糊的,出现的形式经常变化。•以数据为中心的构架SharedData•数据流构架数据流构架的目标是实现可重用性和可更改性,它的特点是把系统看作是对相继输入数据的一系列变换。它可分成两个子样式:成批顺序式—等到一个步骤全部处理完后才能开始下一个步骤,每个处理步骤(组件)是独立的程序,在各个步骤之间,数据是作为一个整体传送的。如传统的磁带处理。管道—过滤式管道负责数据传递,过滤器对数据进行渐进的转换。如UNIX系统中可以用此方法来过滤文件中一些不需要的字符。•虚拟机构架虚拟机构架的目标是实现可移植性。虚拟机是模拟硬件功能或抽象软件环境的构架样式。虚拟机构架常见的示例有解释程序、基于规则的系统、句法shell程序、命令语言处理器等。虚拟机样式•调用--返回构架调用返回构架一直是大型软件系统的主流构架样式,它的目标是实现系统的可更改性和可扩展性。它有多种子样式:主程序-子程序构架远过程调用构架面向对象构架分层构架•独立组件构架独立组件构架由许多通过发送消息进行通讯的独立进程或对象组成,它的目标是通过解除各运算部分之间的耦合实现可更改性,如股票机、各类短信预定等。它有两类子样式:事件系统样式通讯进程样式发布者•C/S结构及其演变C/S软件体系结构,即Client/Server(客户机/服务器)结构,是基于资源不对等,且为实现共享而提出来的,是20世纪90年代成熟起来的技术,C/S结构将应用一分为二,服务器(后台)负责数据管理,客户机(前台)完成与用户的交互任务。C/S体系结构具有强大的数据操作和事务处理能力,模型思想简单,易于人们理解和接受。但随着企业规模的日益扩大,软件的复杂程度不断提高,传统的二层C/S结构存在以下几个局限:(1)二层C/S结构是单一服务器且以局域网为中心的,所以难以扩展至大型企业广域网或Internet;(2)软、硬件的组合及集成能力有限;(3)服务器的负荷太重,难以管理大量的客户机,系统的性能容易变坏;(4)数据安全性不好。因为客户端程序可以直接访问数据库服务器,那么,在客户端计算机上的其他程序也可想办法访问数据库服务器,从而使数据库的安全性受到威胁。正是因为二层C/S有这么多缺点,因此,三层C/S结构应运而生。三层C/S结构是将应用功能分成表示层、业务层和数据层三个部分,如图所示。表示层是应用的用户接口部分,它担负着用户与应用间的对话功能。它用于检查用户从键盘等输入的数据,显示应用输出的数据。为使用户能直观地进行操作,一般要使用图形用户接口,操作简单、易学易用。在变更用户接口时,只需改写显示控制和数据检查程序,而不影响其他两层。检查的内容也只限于数据的形式和取值范围,不包括有关业务本身的处理逻辑。业务层相当于应用的本体,它是将具体的业务处理逻辑编入程序中。例如,在制作订购合同时要计算合同金额,按照定好的格式配置数据、打印订购合同,而处理所需的数据则要从表示层或数据层取得。表示层和业务层之间的数据交往要尽可能简洁。例如,用户检索数据时,要设法将有关检索要求的信息一次性地传送给业务层,而由业务层处理过的检索结果数据也一次性地传送给表示层。通常,在业务层中包含有确认用户对应用和数据库存取权限的功能以及记录系统处理日志的功能。数据层就是数据库管理系统,负责管理对数据库数据的读写。数据库管理系统必须能迅速执行大量数据的更新和检索。因此,一般从业务层传送到数据层的要求大都使用SQL语言。三层C/S的解决方案是:对这三层进行明确分割,并在逻辑上使其独立。原来的数据层作为数据库管理系统已经独立出来,所以,关键是要将表示层和业务层分离成各自独立的程序,并且还要使这两层间的接口简洁明了。与传统的二层结构相比,三层C/S结构具有以下优点:(1)允许合理地划分三层结构的功能,使之在逻辑上保持相对独立性,从而使整个系统的逻辑结构更为清晰,能提高系统和软件的可维护性和可扩展性。(2)允许更灵活有效地选用相应的平台和硬件系统,使之在处理负荷能力上与处理特性上分别适应于结构清晰的三层;并且这些平台和各个组成部分可以具有良好的可升级性和开放性。例如,最初用一台Unix工作站作为服务器,将数据层和业务层都配置在这台服务器上。随着业务的发展,用户数和数据量逐渐增加,这时,就可以将Unix工作站作为业务层的专用服务器,另外追加一台专用于数据层的服务器。若业务进一步扩大,用户数进一步增加,则可以继续增加业务层的服