第1篇 信息系统基础知识
第3章 信息系统集成专业技术知识
管道/过滤器模式的优点如下:
(1)体现了各功能模块的“黑盘”特性及高内聚、低耦合的特点。
(2)可以将整个系统的输入,输出行为看成是多个过滤器行为的简单合成。
(3)支持软件功能模块的重用。
(4)便于系统维护:新的过滤器可以添加到现有系统中来,旧的可以由改进的过滤器替换。
(5)支持某些特定的分析,如吞吐量计算、死锁检测等。
(6)支持并行操作,每个过滤器可以作为一个单独的任务完成。
管道,过滤器模式的缺点如下:
(1)通常导致系统处理过程的成批操作。
(2)需要设计者协调两个相对独立但又存在关系的数据流。
(3)可能需要每个过滤器自己完成数据解析和合成工作(如加密和解密),从而导
(4)致系统性能下降,并增加了过滤器具体实现的复杂性。
面向对象模式。
面向对象模式的典型应用是基于构件的软件开发(Component-Based Development,CBD)。
面向对象模式的优点如下。
(1)高度模块化。
(2)封装功能实现了数据隐藏。
(3)继承性提供了一种实现代码共享的手段。
(4)提供了系统的灵活性,便于维护及扩充。
面向对象系统的缺点在于:对象之间的调用需要知道所调用对象的标识。如果对象的标识发生改变,就必须通知所有调用该对象的对象。否则系统将可能无法正常运行。
事件驱动模式。
事件驱动模式的主要特点是事件的触发者并不知道哪些构件会受到事件的影响,且不能假定构件的处理顺序,甚至不知道会调用哪些过程,使用事件驱动模式的典型系统包括各种图形界面工具。
事件驱动模式的优点如下:
(1)支持软件重用,容易实现并发处理。
(2)具有良好的可扩展性,通过注册可引入新的构件,而不影响现有构件。
(3)可以简化客户代码。
事件驱动模式的缺点如下。
(1)构件削弱了自身对系统的控制能力。一个构件触及事件时,并不能确定响应该事件的其他构件及各构件的执行顺序。
(2)不能很好地解决数据交换问题。
(3)使系统中各构件的逻辑关系变得更加复杂。
分层模式。
分层模式的典型应用是分层通信协议,如ISO/OSI的七层网络模型。
分层模式的优点如下。
(1)有助把复杂的问题按功能分解,使整体设计更为清晰。
(2)支持系统设计的逐级抽象。
(3)具有较好的可扩展性。
(4)支持复用。
分层模式的缺点如下。
(1)并不是每个系统都可以很容易地划分出层次来;同时,各层功能的划分也没有一个统一的、正确的抽象方法。
(2)层次的个数过多,系统性能可能会下降。
知识库模式。
知识库模式采用两种不同的构件:中央数据结构构件说明当前状态,独立构件在中央数据存储上执行,中央数据构件与独立的外部构件间的相互作用是系统中的主要问题。
知识库模式有两种不同的控制策略:如果输入流触发进程执行韵选择,则为基于传统数据库型的知识库模式;如果中央数据结构的当前状态触发进程执行的选择,则为基于黑板系统的知识库模式。
下图是黑板系统的示意图。黑板系统的典型应周是信号处理领域,如语音和模式识别。
黑板系统主要由以下三部分组成。
(1)知识源:包含独立的、与应用程序相关的知识,知识源之间不直接进行通讯,它们之间的交互只通过黑板来完成。
(2)黑板数据结构:按照与应用程序相关的层次来组织并解决问题的数据,知识源通过不断地改变黑板数据来解决问题。
(3)控制:完全由黑板的状态驱动,黑板状态的改变决定了需要使用的特定知识。
客户机/服务器模式
C/S模式的优点如下:
(1)客户机与服务器分离,允许网络分布操作:二者的开发也可分开同时进行。
(2)一个服务器可以服务于多个客户机。
随着企业规模的日益扩大,软件的复杂程度不断提高,传统的二层c/s模式的缺点日益突出。
(1)客户机与服务器的通讯依赖于网络,可能成为整个系统运作的瓶颈;客户机的负荷过重,难以管理大量的客户机,系统的性能受到很大影响。
(2)如果服务器及其界面定义有改变,则客户机也要做相应改变。
(3)二层c/s模式采用单一服务器且以局域网为中心,难以扩展至广域网或Internet。
(4)数据安全性不好。客户端程序可以直接访问数据库服务器,使数据库的安全性受到威胁。
c/s模式适用于分布式系统,得到了广泛的应用。为了解决as模式中客户端的问题,发展形成了浏览器和服务器( Browser/Server,B/S)模式;为了解决c/s模式中服务器端的问题,发展形成了三层(多层)c/s模式,即多层应用架构。
软件体系结构设计方法
总体目标可以概括如下:
(1)最大化复用:复用包括构件的复用和设计模式的使用等多个方面。
(2)复杂问题简单化:这也是中间件或多层技术的根本目标。在设计过程中,如果需要多个类协调完成某些功能时,应能正确使用适当的设计模式。
(3)灵活的扩展性:具备灵活的扩展性使得用户可以在架构上进行二次开发或更加具体的开发。
软件体系结构分析与评估
软件架构设计需要考虑如下问题:
(1)关系数据库与对象数据库的选择问题——应尽量采用关系数据库。
(2)用户界面选择使用HTML——HTML界面的开发和维护比其他图形界面应用程序更容易。此外,HTML使用的HTTP (S)协议可以穿越防火墙,解决了Internet应用中的一个重要问题。
(3)灵活性和性能的考虑——在开发系统之前,需要权衡独立于厂商抽象定义所提供的灵活性和特定厂商产品带来的性能。
(4)技术的选择——选择成熟的技术可以规避项目风险。掌握技术不仅需要理解技术是什么及如何运用,还需要理解技术的适用范围和局限性。
(5)聘请经验丰富的架构设计师:可以有效地保证项目的成功。
软件中间件
中间件是位于硬件、操作系统等平台和应用之间的通用服务,如图3-10所示,这些服务具有标准的程序接口和协议。不同的硬件及操作系统平台,可以有符合接口和协议规范的多种实现。
几种主要的中间件
(1)数据库访问中间件。数据库访问中间件通过一个抽象层访问数据库,从而允许使用相同或相似的代码访问不同的数据库资源。典型的技术如Windows平台的ODBC和Java平台的JDBC等。
(2)远程过程调用(Remote Procedure Call,RPC)是一种广泛使用的分布式应用程序处理方法。一个应用程序使用RPC来“远程”执行一个位于不同地址空间内的过程,从效果上看和执行本地调用相同。
(3)面向消息中间件( Message-Oriented Middleware,MOM)利用高效可靠的消息传递机制进行平台无关的数据交流,并可基于数据通信进行分布系统的集成。
(4)分布式对象中间件。随着对象技术与分布式计算技术的发展,两者相互结合形成了分布式对象技术,并发展成为当今软件技术的主流方向。典型的产品如OMG的CORBA、Sun的RIVU/EJB、Microsoft的DCOM等。
(5)事务中间件,也称事务处理监控器(Transaction Processing Monitor,TPM)最早出现在大型机上,为其提供支持大规模事务处理的可靠运行环境。随事务处理监控程序位于客户和服务器之问,完成事务管理与协调、负载平衡、失效恢复等任务,并提高系统的整体性能。典型产品如BEA的Tuxedo。随着对象技术与事务技术的结合,近年还出现了一类新产品,即对象事务监控器( Object Transaction Monitor,OTM),可以保证分布式对象的事务完整性,支持EJB的J2EE应用服务器就属于该类产品。
各省软考办 | ||||||||||