软件架构风格(非设计模式)
阅读数:223 评论数:0
跳转到新版页面分类
架构学
正文
Garlan和Shaw将软件架构风格为分下面五类。
一、独立构件
1、进程通信
构件:独立进程
连接件:消息传递(点对点、同步或异步、rpc)
2、事件系统
(1)基本思想
不直接调用一个过程,而是发布或广播一个或多外事件。
其他构件通过注册与事件关联的进程来表示对该事件的兴趣。
事件发生时,系统会调用所有注册了该事件的过程。
构件不能对事件的处理顺序或者事件发生后的处理结果做任何假设。
(2)显示调用
(3)隐式调用风格
事件的触发者并不知道哪些构件会被这些事件影响,不能假定构件的处理顺序,甚至不知道哪些过程会被调用。
二、调用/返回
1、主程序-子程序风格
主程序-子程序风格是结构化程序设计的一种典型风格,从功能观点设计系统,通过逐步分解和缰化,形成整个系统的体系结构。
2、面向对象风格
构件:对象
连接件:通过函数和过程的调用。
(1)主要特点
对现象世界的自然建模方法,使用封装和继承。
3、分层的架构风格
构件:组织为层次结构,每一层给外层提供服务,又作为它内层的客户;某些系统中,内层只对相邻的层可见。
连接件:层间的协议,定义了层次间的交互方式。
三、数据流
1、管道-过滤器风格
构件:过滤器。它对输入流进行处理、转换。处理后的结果在输出端流出。
过滤器之间是相互独立的,无需进行状态信息的交互。用不同的组合方式连接过滤器可以提供处理数据流的不同方式。
1、可以解决的问题
(1)处理数据流,自然的分为几个步骤。
(2)可能需要重组步骤。
(3)不连续的步骤不共享信息/状态。
四、以数据为中心
1、仓库风格
构件:
(1)中央数据单元,代表系统当前的各种状态。
(2)相对独立的构件集合,对中央数据单元进行操作。
两种控制策略的选取产生两个主要的子类:
(1)输入数据流中的事务指令触发系统相应进程的执行,则仓库是传统数据库体系结构。
(2)中央数据结构的当前状态触发系统相应进程的执行,则仓库是一个黑板体系统结构,黑板体系结构是仓库体系结构的特殊化。
2、黑板风格
三大组成元素:
(1)知识源
包含独立的、与应用程序相关的知识。
知识源之间不直接通信,它们之间的交互通过黑板完成。
它们可以读当前的不完全解决方案。
它们可以建议对该方案进行修改。
(2)黑板数据结构
一个黑板的数据结构用来描述对一个问题的不完全解决方案,知识源通过不断的改变黑板数据来解决问题。
(3)控制组件
监视黑板状态,安排知识源活动进程。
五、虚拟机风格
基本思想:
人为构建一个运行环境,在这个环境里可以解析与运行自定义的一些语言。
1、解释器风格
一个解释器通常包括完成解释工作的解释引擎,一个包含将被解释的代码的存储区,一个记录解释引擎当前工作状态的数据结构,以及一个记录源代码被解释执行进度的数据结构。
具有解释器风格的软件中含有一个虚拟机,可以仿真硬件的执行过程和一些关键应用。解释器通常被用来建立一种虚拟机以弥合程序语义与硬件语义之间的差异。其缺点是执行效率较低。典型的例子是专家系统