软件架构样式的概念课件

上传人:痛*** 文档编号:241809923 上传时间:2024-07-26 格式:PPT 页数:37 大小:221KB
返回 下载 相关 举报
软件架构样式的概念课件_第1页
第1页 / 共37页
软件架构样式的概念课件_第2页
第2页 / 共37页
软件架构样式的概念课件_第3页
第3页 / 共37页
点击查看更多>>
资源描述
3.1软件架构样式的概念3.2软件架构样式的种类3.3参考模型3.4软件架构、框架和设计模式3.5小结第3章软件架构的样式与框架3.1软件架构样式的概念构架样式是对各组件类型和运行控制/数据传送模式的描述。可以把构架样式看作是对构架的一组制约条件,即对各组件类型及其交互模式的限制条件,而这些制约条件就确定了一组或一系列能满足它们的构架。可以从四个方面理解构架样式:一组在系统运行时执行一定功能的组件类型。能够表明在系统运行时组件的相互关系的拓扑结构。一组语义约束条件的集合。一组连接件的集合,这些连接件为组件之间的通信提供中介。构架样式是预先定义好的,稍加修改即可在给定环境下使用的“组块”,样式代表了一组已经做出并可重用的设计决策,而且这些决策构成了一个整体。样式对系统功能的要求总是模糊的,出现的形式经常变化。以数据为中心的构架SharedDataClientClientClientClientClientClient仓库式3.2软件架构样式的种类SharedDataClientClientClientClientClientClient主动仓库式(黑板式)以数据为中心的构架样式为我们提供了一个解决可集成性问题的结构解决方案。这种方式的优点是客户端相对独立,缺点是数据中心的性能要高,响应速度要快,并且要有灾难备份等。数据流构架数据流构架的目标是实现可重用性和可更改性,它的特点是把系统看作是对相继输入数据的一系列变换。它可分成两个子样式:成批顺序式等到一个步骤全部处理完后才能开始下一个步骤,每个处理步骤(组件)是独立的程序,在各个步骤之间,数据是作为一个整体传送的。如传统的磁带处理。管道过滤式管道负责数据传递,过滤器对数据进行渐进的转换。如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工作站作为业务层的专用服务器,另外追加一台专用于数据层的服务器。若业务进一步扩大,用户数进一步增加,则可以继续增加业务层的服务器数目,用以分割数据库。清晰、合理地分割三层结构并使其独立,可以使系统构成的变更非常简单。因此,被分成三层的应用基本上不需要修正。(3)三层C/S结构中,应用的各层可以并行开发,各层也可以选择各自最适合的开发语言。使之能并行地而且是高效地进行开发,达到较高的性能价格比;对每一层的处理逻辑的开发和维护也会更容易些。(4)允许充分利用业务层有效地隔离开表示层与数据层,未授权的用户难以绕过业务层而利用数据库工具或黑客手段去非法地访问数据层,这就为严格的安全管理奠定了坚实的基础;整个系统的管理层次也更加合理和可控制。C2风格C2是一种基于构件和消息的体系结构模式,用于构建灵活的、可伸缩的软件系统。它的结构是一个层次型的网络,网络中的交互由一组相互协作的构件和负责将它们链接在一起的连接件按照一套风格规则来实现C2体系结构示例C2模式的体系结构有两方面的设计规则。组成规则规定了C2以构件和连接件为基础,每一个构件和连接件都设有一个“顶域”和“底域”;构件的“顶域”与连接件的“底域”相连接;构件的“顶域”与连接件的“底域”相连接;对连接到某一个连接件上的构件数量没有限制,但构件与构件之间不能直接相连。C2的通信规则规定所有构件间的通信必须通过消息来实现。构件的“顶域”定义了构件可以对哪些通知作出响应,以及可以发出哪些请求;构件的“底域”设置了可以向下层发送哪些通知,以及可以响应下层的哪些请求。每个构件只能感知层次高于自己的构件提供的服务,而不能感知层次低于自己的构件服务。C2构架模式最重要的特征就是“底层无关性”,这在构件的可替代性和可重用性方面具有显著的作用,即使软件构件的语言方式不同,通过一个构架,它们之间也可以方便、快捷地进行交互,这是通过以连接件为中介的异步消息交换机制来实现的。C2模式对于伸缩性的影响是正面的。包装后的C2构件中包括了内部对象,提供业务构件实际的处理功能。内部对象外层的包装器每收到请求时,负责实际调用并根据返回值生成通知,最后把这个通知发送到该构件下层的联机器。对话和约束管理器则负责接受所有发送给这个构件的通知和请求,并把它们映射为对内部对象的操作。这些内部模块的交互操作可以实现三种处理功能:处理从构件之上的连接器收到的通知;处理从构件之下的连接器收到的请求;维持某些预定义的约束。另外,在C2构件中还会包含一个域转换器,它可以辅助解决构件之间的不兼容性,例如消息的名称、参数类型、参数顺序的不匹配问题。构件的调用是基于消息驱动的,区别于传统应用程序包调用的形式,C2模式中的构件组是松耦合的关联,这是伸缩性的表现。C2构件内部结构C2体系结构风格可以概括为:通过连接件绑定在一起的按照一组规则运作的并行构件网络。C2风格具有以下特点:(1)系统中的构件可实现应用需求,并能将任意复杂度的功能封装在一起;(2)所有构件之间的通讯是通过以连接件为中介的异步消息交换机制来实现的;(3)构件相对独立,构件之间依赖性较少。系统中不存在某些构件将在同一地址空间内执行,或某些构件共享特定控制线程之类的相关性假设。正交体系结构正交软件体系结构由层和线索的构件构成。层是由一组具有相同抽象级别的构件构成。线索是子系统的特例,它是由完成不同层次功能的构件组成(通过相互调用来关联),每一条线索完成整个系统中相对独立的一部分功能。每一条线索的实现与其他线索的实现无关或关联很少,在同一层中的构件之间是不存在相互调用的。如果线索是相互独立的,即不同线索中的构件之间没有相互调用,那么这个结构就是完全正交的。从以上定义,我们可以看出,正交软件体系结构是一种以垂直线索构件族为基础的层次化结构,其基本思想是把应用系统的结构按功能的正交相关性,垂直分割为若干个线索(子系统),线索又分为几个层次,每个线索由多个具有不同层次功能和不同抽象级别的构件构成。各线索的相同层次的构件具有相同的抽象级别。因此,我们可以归纳正交软件体系结构的主要特征如下:(1)正交软件体系结构由完成不同功能的n(n1)个线索(子系统)组成;(2)系统具有m(m1)个不同抽象级别的层;(3)线索之间是相互独立的(正交的);(4)系统有一个公共驱动层(一般为最高层)和公共数据结构(一般为最低层)。对于大型的和复杂的软件系统,其子线索(一级子线索)还可以划分为更低一级的子线索(二级子线索),形成多级正交结构。正交软件体系结构的框架如图所示。图是一个三级线索、五层结构的正交软件体系结构框架图,在该图中,ABDFK组成了一条线索,ACEJK也是一条线索。因为B、C处于同一层次中,所以不允许进行互相调用;H、J处于同一层次中,也不允许进行互相调用。一般来讲,第五层是一个物理数据库连接构件或设备构件,供整个系统公用。在软件进化过程中,系统需求会不断发生变化。在正交软件体系结构中,因线索的正交性,每一个需求变动仅影响某一条线索,而不会涉及到其他线索。这样,就把软件需求的变动局部化了,产生的影响也被限制在一定范围内,因此实现容易。正交软件体系结构具有以下优点:(1)结构清晰,易于理解。正交软件体系结构的形式有利于理解。由于线索功能相互独立,不进行互相调用,结构简单、清晰,构件在结构图中的位置已经说明它所实现的是哪一级抽象,担负的是什么功能。(2)易修改,可维护性强。由于线索之间是相互独立的,所以对一个线索的修改不会影响到其他线索。因此,当软件需求发生变化时,可以将新需求分解为独立的子需求,然后以线索和其中的构件为主要对象分别对各个子需求进行处理,这样软件修改就很容易实现。系统功能的增加或减少,只需相应的增删线索构件族,而不影响整个正交体系结构,因此能方便地实现结构调整。(3)可移植性强,重用粒度大。因为正交结构可以为一个领域内的所有应用程序所共享,这些软件有着相同或类似的层次和线索,可以实现体系结构级的重用。异质构架实际系统的构架是异质的,既是多种样式的综合,这种异质可以分为3类:1局部异质2层次异质3并行异质3.3参考模型参考模型是一种考虑数据流的功能划分,是对已知问题的标准分解,分解所得的各个部分相互协作,构成问题的解决方案。参考构架是映射到软件组件及组件之间数据流上的参考模型。数据库管理系统的参考模型外模式1外模式2外模式n应用A1应用A2应用B应用C模式内模式数据库n21SA的角度DBA的角度现实世界信息世界计算机世界PMLMEU&AP的角度编译器的参考模型应用层表示层会话层传输层网络层数据链路层物理层ISO/OSI七层参考模型参考模型构架样式参照构架软件构架参考模型、构架样式、参考构架和软件构架之间的相互关系3.4软件架构、框架和设计模式框架的定义:设计模式中对框架的定义是框架就是一组相互协作的类,对于特定的一类软件,框架构成了一种可重用的设计。软件框架是提取特定领域软件的共性部分形成的体系结构,不同领域的软件项目有着不同的框架类型。框架的作用在于:由于提取了特定领域软件的共性部分,因此在此领域内新项目的开发过程中代码不需要从头编写,只需要在框架的基础上进行一些开发和调整便可满足要求;对于开发过程而言,这样做会提高软件的质量,降低成本,缩短开发时间,形成良性循环。框架和平台的关系:框架不是现成可用的应用系统。是一个半成品,需要后来的开发人员进行二次开发,实现应用系统的具体功能。框架不是“平台”,平台概念比较广泛,可以是一种操作系统,一种应用服务器,一种数据库软件,一种通讯中间件等,因此平台在应用层面主要指提供特定服务的系统软件,而框架更侧重设计和开发过程,框架可通过调用平台提供的服务而起的作用。框架和类库的关系:框架不是工具包或者类库,调用API并不就是在使用框架开发,仅仅使用API是开发者完成系统的主题部分,并不时地调用类库实现特定任务。而框架构成了通用的、具有一般性的系统主体部分,二次开发人员只是像做填空一样,根据具体业务,完成特定应用系统中与众不同的特殊部分。框架和架构的关系:框架不是构架(即软件体系机构)。体系结构确定了系统整体结构、层次划分,不同部分之间的协作等设计考虑。框架比架构更具体,更偏重于技术。确定框架后,软件体系结构也随之确定,而对于同一软件体系结构(比如Web开发中的MVC),可以通过多种框架来实现。框架和设计模式的关系:设计模式和框架在软件设计中是两个不同的研究领域。设计模式研究的是一个设计问题的解决方法,一个模式可应用于不同的框架和被不同的语言所实现;而框架则是一个应用的体系结构,是一种或多种设计模式和代码的混合体虽然它们有所不同,但却共同致力于使人们的设计可以被重用,在思想上存在着统一性的特点,因而设计模式的思想可以在框架设计中进行应用。1)从应用领域上分,框架给出的是整个应用的体系结构;而设计模式则给出了单一设计问题的解决方案,并且这个方案可在不同的应用程序或者框架中进行应用。2)从内容上分,设计模式仅是一个单纯的设计,这个设计可被不同语言以不用方式来实现;而框架则是设计和代码的一个混合体,编程者可以用各种方式对框架进行扩展,进而形成完整的不同的应用。3)设计模式比框架更容易移植;框架一旦设计成形,虽然还没有构成完整的一个应用,但是以其为基础进行应用的开发显然要受制于框架的实现环境;而设计模式是与语言无关的,所以可以在更广泛的异构环境中进行应用。总之,框架是软件,而设计模式是软件的知识体,提升框架的设计水平。3.5小结
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 管理文书 > 施工组织


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!