1、管道过滤器风格
(1)特点:①在管道过滤器风格下,每个功能模块都有一组输入和输出。功能模块称作过滤器;功能模块间的连接可以看作输入、输出数据流之间的通路,称作管道。②管道-过滤器风格的特性之一在于过滤器的相对独立性,即过滤器独立完成自身功能,相互之间无需状态交互。③从解耦的角度:每个过滤器之间都是解耦的,每个过滤器都专注于自己的职责。过滤器是独立运行的组件;过滤器对其处理上下连接的过滤器“无知”;结果的正确性不依赖于各个过滤器运行的先后次序。(解耦的好处)解耦能够保持组件之间的自主和独立。它的直接结果就是改动成本低,维护成本低,可读性高。
(2)优点:①由于每个组件行为不受其他组件的影响,整个系统的行为易于理解。②管道-过滤器风格支持功能模块的复用。(任何两个过滤器,只要它们之间传送的数据遵守相同的规约,就可以相连接。)③基于管道-过滤器风格的系统具有较强的可维护性和可扩展性。④支持一些特定的分析,如吞吐量计算和死锁检测等。
(3)缺点:①管道-过滤器风格往往导致系统处理过程的成批操作。②根据实际设计的需要,设计者需要对数据传输进行特定的处理(如加密),导致过滤器必须对输入、输出管道中的数
据流进行解析和反解析,增加了过滤器具体实现的复杂性。③交互式处理能力弱。
(4)实例:①传统的编译器,一个阶段的输入是另一个阶段的输出。②Unix和DOS中的管道操作符‘|’:将符号‘|’之前的命令的输出作为‘|’之后命令的输入。
2、事件驱动风格
(1)基本思想:不直接调用一个过程,而是发布或广播一个或多个事件。系统中的其它组件通过注册与一个事件关联起来的过程,来表示对某一个事件感兴趣。当这个事件发生时,系统本身会调用所有注册了这个事件的过程。这样一个事件的激发会导致其它模块中过程的隐式调用。
(2)从解耦的角度:系统组件松耦合。在系统执行的过程中,可以并行处理不可预期的事件发生。观察者模式:让多个观察者对象同时监听某一主题对象,当该对象状态发生变化时,会通知所有观察者对象,使它们能够自动更新自己。
(3)特点:①事件发布者不知道哪些组件会受到事件的影响;组件不能对事件的处理顺序,或者事件发生后的处理结果做任何假设。 ②从架构上来说,事件驱动系统的组件提供了
一个过程集合和一组事件。③过程可以使用显示的方法进行调用,也可以由组件在系统事件中注册。当触发事件时,会自动引发这些过程的调用。④连接件既可以是显示过程调用,也可以是一种绑定事件声明和过程调用的手段。
(4)优点:①事件声明者不需要知道哪些组件会影响事件,组件之间关联较弱。 ②提高软件复用能力。只要在系统事件中注册组件的过程,就可以将该组件集成到系统中。③系统便于升级。只要组件名和事件中所注册的过程名保持不变,原有组件就可以被新组件替代。
(5)缺点:①组件放弃了对计算的控制权,完全由系统来决定。  ②存在数据交换问题。  ③该风格中,正确性验证成为一个问题。
3、黑板风格
(1)特点:①黑板系统是传统上被用于信号处理方面进行复杂解释的应用程序,以及松散耦合的组件访问共享数据的应用程序。②黑板架构实现的基本出发点是已经存在一个对公共数据结构进行协同操作的独 立程序集合。③黑板系统的命于它反映的是一种信息共享系统——如同教室的黑板一样,有多个人读,也有多个人写。④数据驱动或状态驱动的控制机制。
系统在运行时,每当有新输入、新结果和新状态写入黑板时,中心控制组件就对黑板上的信息进行评价,并据此协调各专门程序进行工作。⑤组成部分:知识源、黑板数据结构、控制器。
(2)优点:①便于多客户共享大量数据,他们不关 心数据何时有的、谁提供的、怎样提供的。 ②既便于添加新的作为知识源代理的应 用程序,也便于扩展共享的黑板数据结构。③知识源可重用。④支持容错性和健壮性。
(3)缺点:①不同的知识源代理对于共享数据结构 要达成一致,而且,这也造成对黑板数据 结构的修改较为困难——要考虑到各个代 理的调用。②需要一定的同步/加锁机制保证数据 结构的完整性和一致性,增大了系统复杂度。
4、C2风格
(1)特点:①是一种层次体系架构风格。②C2架构风格可以概括为:通过连接件 绑定在一起的按照一组规则运作的并行组件网络。该规则规定了所有组件之间 的交互必须通过异步消息机制来实现  ③C2是一种基于组件和消息的架构风格, 适用于GUI软件开发,构建灵活和可扩展的应用系统。(如游戏)④C2架构的内部,通信和处理是分开完成的。
(2)优点:①可使用任何编程语言开发组件,组件重 用和替换易实现;②由于组件之间相对独立,依赖较小,因 而该风格具有一定扩展能力,可支持不同粒度 的组件;③组件不需共享地址空间;④可实现多个用户和多个系统之间的交互;⑤可使用多个工具集和多种媒体类型,动 态更新系统框架结构。
(3)缺点:不太适合大规模流式风格系统,以及对数 据库使用比较频繁的使用。
5、客户机/服务器风格
(1)特点:①主要针对资源不对等问题而提出的一种共享策略。  ②客户机和服务器是两个相互独立的逻辑 系统,为了完成特定的任务而形成一种 协作关系。③一般的,客户机为完成特定的工作向服 务器发出请求;服务器处理客户机的请 求并返回结果。  ④客户机程序和服务器程序配置在同一台 计算机上时:采用消息、共享存储区和 信号量等方法实现通信连接。  ⑤客户机程序和服务器程序配置在分布式 环境中时:通过远程调用(Remote Produce Call,RPC)协议来进行通信。
(2)两层C/S架构
组成:客户机、数据库服务器
优点:①客户机组件和服务器组件分别运行在不同 的计算机上,有利于分布式数据的组织和处理。 ②组件之间的位置是相互透明的 ③客户机程序和服务器程序可运行在不同的 操作系统上,便于实现异构环境和多种不同开 发技术的融合。④软件环境和硬件环境的配置具有极大的灵 活性,易于系统功能的扩展。⑤将大规模的业务逻辑分布到多个通过网络 连接的低成本的计算机上,降低了系统的整体开销。
缺点:①开发成本较高(客户机的软硬件要求高)。②客户机程序的设计复杂度大,客户机负荷 重。③信息内容和形式单一。④C/S架构升级需要开发人员到现场更新客 户机程序,对运行环境进行重新配置,增加了 维护费用。⑤两层C/S结构采用了单一的服务器,同时 以局域网为中心,难以扩展到Internet。⑥数据安全性不高。
(3)三层C/S架构
组成:客户机、应用服务器、数据库服务器
相比于两层C/S架构的优点:①合理地划分三层结构的功能,可以使 系统的逻辑结构更加清
晰,提高软件的可维 护性和可扩充性。②在实现三层C/S架构时,可以更有效地 选择运行平台和硬件环境,从而使每一层都 具有清晰的逻辑结构、良好的负荷处理能力 和较好的开放性。③在C/S架构中,可以分别选择合适的编 程语言并行开发。 ④系统具有较高的安全性。
使用时需要注意的问题:①如果各层之间的通信效率不高,即使 每一层的硬件配置都很高,系统的整体性能 也不会太高。 ②必须慎重考虑三层之间的通信方法、 通信频率和传输数据量,这和提高各层的独 立性一样也是实现三层C/S架构的关键性问 题。
6、浏览器/服务器风格
(1)特点:①组成:浏览器,Web服务器、数据库服务器②与三层C/S结构的解决方案相比,B/S架构在客户机上采用了WWW浏览器, 将Web服务器作为应用服务器。 ③B/S架构核心是Web服务器,数据请求、 网页生成、数据库访问和应用程序执行全部由Web服务器来完成。  ④在B/S架构中,系统安装、修改和维护全在服务器端解决,客户端无任何业务 逻辑。
(2)优点1客户端只需要安装浏览器,操作简单,能够发布动态信息和静态信息。2运用HT
TP标准协议和统一客户端软件,能够实现跨平台通信。3开发成本比较低,只需要维护Web服 务器程序和中心数据库。客户端升级可以通过升级浏览器来实现。
(3)缺点1个性化程度比较低,所有客户端程序的 功能都是一样的。2客户端数据处理能力比较差,加重了 Web服务器的工作负担,影响系统的整体性能。3在B/S架构中,数据提交一般以页面为单位,动态交互性不强,不利于在线事物处理。4 B/S架构的可扩展性比较差,系统安全性难以保障。5 B/S架构的应用系统查询中心数据库,其 速度要远低于C/S架构。
7、面向服务架构风格SOA
页面设计风格(1)特点:1 SOA 是一个组件模型,它将应用程序的不 同功能单元(服务)通过这些服务之间定 义良好的接口和契约联系起来。2基本过程:发布(发布到服务注册中心)->发现->绑定和调用3面向服务软件架构风格在于具有基于标 准、松散耦合、共享服务和粗粒度等优 势,表现为易于集成现有系统、具有标 准化的架构、提升开发效率、降低开发 维护复杂度等。 4通过采用SOA架构,在进行一次开发成 本急剧减少的同时,由于系统具有松散 耦合的特征使得维护成本也大大减少。
(2)优点:1灵活性,根据需求变化,重新编排服 务。 2对IT资产的复用。3使企业的信息化建设真正以业务为核 心。业务人员根据需求编排服务,而不必 考虑技术细节。
(3)缺点:1服务的划分很困难。 2服务的编排是否得当。3如果选择的接口标准有问题,如主流的 Web service之类,会带来系统的额外开销和不 稳定性。 4对IT硬件资产还谈不上复用。 5目前主流实现方式接口很多,很难统一。6目前主流实现方式只局限于不带界面的 服务的共享。
8、模型-视图-控制器风格(MVC)
(1)特点:1主要是针对编程语 言Smalltalk 80所提出的一种软件设计模 式。MVC被广泛的应用于用户交互程序的设 计中。2 MVC结构主要包括模型、视图和控制器三部分。 模型(Model, M):模型是应用程序的 核心,它封装了问题的核心数据、逻辑关 系和计算功能,提供了处理问题的操作过 程。视图(View,V):视图是模型的表示, 提供了交互界面,为用户显示模型信息。控制器(Controller, C):控制器负责处 理用户与系统之间的交互,为用户提供操 作接口。
(2)优点:1多个视图与一个模型相对应。变化——传播机制确保了所有相关视图都能够及时地获 取模型变化信息,从而使所有视图和控制器同 步,便于维护。2具有良好的移植性。由于模型独立于视 图,因此可以方便的实现不同部分的移植。 3系统被分割为三个独立的部分,当功能 发生变化时,改变其中的一个部分就能满足要 求。
(3)缺点:1增加了系统设计和运行复杂性。 2视图与控制器连接过于紧密,妨碍了 二者的独立重用。3视图访问模型的效率比较低。由于模 型具有不同的操作接口,因此视图需要多 次访问模型才能获得足够的数据。4频繁访问未变化的数据,也将降低系统的性能。
9、主程序/子程序风格
(1)特点:1该架构风格从功能的观点设计系统 2通过逐步分解和逐步细化得到系统架构,即将大系统分解为若干模块(模块化),主程序调用这些模块实现完整的系统功能 3主程序的正确性依赖于它所调用的子程序的正确性。4其中,组件为主程序和子程序,连接件为 调用-返回机制,拓扑结构为层次化结构。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。