- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
软件设计;体系结构的风格;体系结构(Architecture)的定义;◇ 软件体系结构的发展史 ;软件体系结构研究的问题; ;Garlan和Shaw(1996)对体系结构的分类如下:
? 数据流风格:
批处理序列;管道/过滤器
? 调用/返回风格:
主程序/子程序;面向对象系统;层次结构
? 仓库风格:
数据库系统;超文本系统;黑板系统
? 虚拟机风格:
解释器
? 独立构件风格:
通信进程;事件系统
;介绍几种主要的体系结构风格:
(1)仓库风格
基于一个共享数据库的系统模型。(见下图)
;传统数据库系统:
由输入流中的事物出发系统相应进程,这种仓库风格就是传统数据库型系统;
中心数据存储是被动的数据库,系统由输入流的事务指令触发相应进程执行。
黑板系统:
中心数据结构的当前状态出发系统相应的进程执行,这种库系统称为黑板系统。
中心数据存储的状态控制了进程的触发,即控制完全由黑板的状态驱动,当有特别的数据可用时,会主动通报外部构件(人工智能技术)。 ;典型应用;应用示例1; ; ; ; ; ;
; ;该风格的特点:
过滤器是独立的,不与其他过滤器共享数据;无需知道其他过滤器的存在或功能。
系统输出的正确性不取决于所用过滤器的顺序。
; ; ;该模式常见的变种;应用示例2; ; ; ;应用示例3; ;(3)调用-返回风格
是一种集中式控制模型。自上而下的调用,控制始于结构层次的顶层,往往只有一个控制线程。
优点是容易分析与理解系统的控制流,但不适合并发执行的系统。
;(4)基于事件的隐式调用风格
基于事件的隐式调用风格的基本思想:
构件不直接调用一个过程,而是触发或广播(broadcast)一个或多个事件(在“源对象”和“监听者对象”之间,某种状态发生变化的传递机制)。
其它构件中的过程在一个或多个事件中注册,当一个事件被触发,系统自动调用在这个事件中注册的所有过程,这样,一个事件的触发就导致了另一模块中的过程的调用。
; ;基于事件的隐式调用风格的主要特点是:
事件的触发者并不知道哪些构件会被这些事件影响。
这样就不能假定构件的处理顺序,甚至不知道哪些过程会被调用,
因此,许多隐式调用的系统也包含显式调用作为构件交互的补充形式。
; ; ; 缺点:
? 构件放弃了对系统计算的控制。
一个构件触发一个事件时,不能确定其它构件是否会响应它。而且即使它知道事件注册了哪些构件的构成,它也不能保证这些过程被调用的顺序。
数据共享的问题。
有时数据被一个事件传递,基于事件的系统必须依靠一个共享的数据库来解决各个对象进行数据交换,如何保证共享数据能够得到合理的访问是一个关键问题。
;(5)面向对象风格
面向对象模式集数据抽象、抽象数据类型、类继承为一体,根本出发点是追求问题空间和软件系统空间结构的一致性。
它将自己的数据结构定义和功能实现封装起来,实现了信息隐藏和数据抽象,可作为基本构件单元被不同软件系统重用。
; ;? 灵活性。
对象的功能执行是在消息传递时确定的,支持对象的主体特征,使得对象可以根据自身的特点进行功能实现。
? 易维护性。
对象实现了抽象和封装功能,使其中可能出现的错误限制在自身,不会向外传播,易于检错和修改。
? 可扩充性。
面向对象系统可通过继承机制不断扩充功能。 ; ; ;应用示例5; ;解决方案1-面向对象风格; ; ;解决方案2-事件隐式调用风格; ; ;(6)层次式风格
系统采用层次化的组织方式构建,系统中的每一层都要承担两个角色:
为结构中的上层提供服务;
作为结构中下层的客户,调用下层提供的功能函数。
最内层完成最基本的公用操作,向外各层逐渐进行功能扩展。; ;一个概念上的分层模型如下图所示:
;优点:
? 支持基于抽象程度递增的系统设计,可将一个复杂的系统按功能递增的步骤进行分解。
? 具有较好的可扩展性。每一层功能的改变最多影响相邻上下层。
? 支持软件复用。只要提供的服务接口不变,同一层的不同实现可以交换使用。因此可定义一组标准接口,允许有多种不同的实现方法。
; ;(7)客户机-服务器体系结构
客户机-服务器系统(client-server system)是至少包含一个服务器和一个客户机的分布式系统。
在分布式系统中(distributed
文档评论(0)