- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
4.2. 经典软件体系结构风格 (3)基于事件的系统 这种风格的主要特点是事件的触发者并不知道哪些构件会被这些事件影响。这样不能假定构件的处理顺序,甚至不知道哪些过程会被调用,因此,许多隐式调用的系统也包含显式调用作为构件交互的补充形式。 构件不直接调用一个过程,而是触发或广播一个或多个事件,系统中其它构件中的过程在一个或者多个事件中注册 当一个事件被触发,系统自动调用这个事件中注册的所有过程,这样,一个事件的触发就导致了另一个模块中过程的调用 4.2. 经典软件体系结构风格 ◇ 基于事件的系统的特点 系统是由若干子系统或元素所组成的一个整体; 系统有一定的目标,各子系统在某一种消息机制的控制下,为了这个目标而协调行动; 在某一种消息机制的控制下,系统作为一个整体与环境相适应和协调; 在一个系统的若干子系统中,必定有一个子系统起着主导作用,而其他子系统则处于从属地位; 任一系统和系统内的任一元素,都有1个事件收集机制和1个事件处理机制,通过这种机制与周围环境发生作用和联系; 4.2. 经典软件体系结构风格 ◇ 基于事件的隐式调用的优点 构件之间松耦合 事件发布者不必知道哪些构件会被事件影响,事件的接收者也可以不关心事件是由谁发出的 有助于软件复用 允许任何构件注册其相关事件 演化、升级简单 可以在不影响其余构件的情况下替换某个构件,因而系统的演化、升级变得简单 4.2. 经典软件体系结构风格 ◇ 基于事件的隐式调用的缺点 构件对系统进行的计算放弃了主动控制 一个构件不能假设其它构件将会对它的请求作出响应,也不能得知事件处理的先后顺序。 数据交换问题 有时,数据可能被一个事件传递,但在另一些情况下,基于事件的系统必须依靠一个共享的仓库中进行交互。这样全局性能和资源管理器成为十分关键的因素。 正确性推理存在问题 过程的语义必须依赖于被触发事件的上下文约束 4.2. 经典软件体系结构风格 (4)分层系统 分层风格将任务分解为多个子项目组,其中某个子任务组处于某个特定的抽象层次上 每一层只能与相邻层交互:为上层提供服务和调用下层提供的服务 适当时候(必不得已的时候),可以允许一定的越层操作 4.2. 经典软件体系结构风格 ◇分层风格实例:计算机网络的设计 网络协议设计者将计算机网络中的各个部分按其功能划分为若干个层次(Layer),其中的每一个层次都可以看成是一个相对独立的黑箱、一个封闭的系统。用户只关心每一层的外部特性,只需要定义每一层的输入、数据处理和输出等外部特性。 两台计算机通过网络进行通信时,只有两物理层之间能够通过媒体进行真正的数据通信,其余各对等层之间均不存在直接的通信关系,各对等层之间只能通过各对等层的协议来进行虚拟通信。 4.2. 经典软件体系结构风格 ◇ 分层系统的优点 支持抽象程度递增的系统设计 设计者可以把一个复杂系统按照递增的步骤进行分解 支持功能扩充和修改 因为每一层至多和相邻的上下层交互,因此功能的改变最多影响相邻的上下层。 支持灵活的实现和重用 只要提供的服务接口定义不变,同一层的不同实现可以交换使用。这样,就可以定义一组标准的接口,而允许各种不同的实现方法。 4.2. 经典软件体系结构风格 ◇ 分层系统的缺点 并不是每个系统都可以很容易地划分为层次结构 甚至即使一个系统的逻辑结构是层次化的,设计者出于对于系统性能的考虑,往往把一些低级和高级的功能综合起来。 效率的降低 由分层风格构成的系统,运行效率往往低于整体结构。在上层中的服务如果有很多依赖于最底层,则相关的数据必须通过中间层的若干次转化,才能传到。 难于认可合适的、正确的层次抽象方法: 层次太少,分层不能完全发挥这种风格的可重用性、可更改性、可移植性上的潜力。 层次过多,则引入不必要的复杂性和层间隔离冗余以及层间传输的开销 目前,没有可行的广为人们认可的层次粒度的确定和层任务的分配方法。 4.2. 经典软件体系结构风格 (5) 仓库系统及知识库 采用数据共享风格构建的系统中通常有两个截然不同的功能构件; 中央数据结构说明当前状态,独立构件在中央数据存贮上执行; 仓库与外构件间的相互作用在系统中会有大的变化。 信息交互方式的差异导致了控制策略的不同, 基于控制策略的选取不同形成两个主要的子类: 基于传统数据库型数据共享风格的应用系统 基于黑板型数据共享风格的应用系统 4.2. 经典软件体系结构风格 基于黑板型数据共享风格的应用系统 知识源:知识源中包含独立的、与应用程序相关的知识,知识源之间不直接进行通讯,它们之间的交互只通过黑板来完成。 黑板数据结构:黑板数据是按照与应用程序相关的层次来组织的解决问题的数据,知识源通过不断地改变黑板数据来解决问题。 控制:
文档评论(0)