1、局域网的体系结构 一、管道与过滤器 在管道与过滤器风格的软件体系结构中,每个构件,都有一组输入和输出,构件读输入的数据流,经过内部处理,然后产生输出数据流。这种风格的连接件就像是数据流传输的管道,将一个过滤器的输出传到另一过滤器的输入。这种风格特别重要的过滤器必须是独立的实体.它不能与其它的过滤器共享数据,而且一个过滤器不知道它上游和下游的标识。一个管道与过滤器网络输出的正确性并不依赖于过滤器进行增量计算过程的顺序。 管道与过滤器风格的软件体系结构具有许多很好的特点: (1)具有良好的隐蔽性和高内聚、低耦合的特点; (2)允许设计者将整个系统的输入,输出行为看成是多个过滤器的行为的简单合成:
2、(3)支持软件重用。主要提供适合在两个过滤器之间传送的数据,任何两个过滤器都可被连接起来; (4)系统维护和增强系统性能简单: (5)允许对一些如吞吐量、死锁等属性的分析: (6)支持并行执行 但是,这样的系统也存在着一些缺陷: (1)通常导致进程成为批处理的结构: (2)不适合处理交互的应用: (3)因为在数据传输上没有通用的标准,每个过滤器都增加了解析和合成数据的工作,这样又导致了系统性能下降,并增加了编写过滤器的复杂性。(pass理由上已经诉过) 二、数据抽象和面向对象的组织 这种风格建立在数据抽象和面向对象的根底上,数据的表示方法和它们的相应操作被封装在一个抽象数据类型或对象中。这种风
3、格的构件是一种对象,或者说是抽象数据类型的实例。对象是一种被称作管理者的构件,因为它负责保持资源的完整性。对象是通过函数和过程的调用来交互的。 面向对象的系统在编程时有两大优点: (1)因为对象对其它对象隐藏它的表示,所以可以改变一个对象的表示,而不影响其它的对象。 (2)设计者可将一些数据存取操作的问题分解成一些交互的代理程序的集合。 但是,面向对象的系统也存在着一些问题 (1)为了使一个对象和另一个对象通过过程调用等方式进行交互,必须知道对象的标识。只要一个对象的标识改变了.就必须修改所有其他明确调用它的对象。 (2)必须修改所有显式调用它的其它对象,并消除由此带来的一些副作用。例如,如果
4、a使用了对象b.c也使用了对象b,那么,c对b的使用所造成的对a的影响可能是料想不到的。(不适合,2个缺点) 三、基于事件的隐式调用 基于事件的隐式调用风格的思想: 构件不直接调用一个过程,而是触发或播送一个或多个事件。系统中的其它构件中的过程在一个或多个事件中注册,当一个事件被触发,系统自动调用在这个事件中注册的所有过程,这样,一个事件的触发就导致了另一模块中的过程的调用。 基于事件的隐式调用风格的主要特点: (1)事件的触发者并不知道哪些构件会被这些事件影响。这样不能假定构件的处理顺序,甚至不知道哪些过程会被调用,因此,许多隐式调用的系统也包含显式调用作为构件交互的补充形式。 (2)支持重
5、用。在不改变系统中其他接口的情况之下,构件可以非常容易的被其他构件取代。 基于事件的隐式调用风格的主要缺点: (1)构件放弃了自身对系统计算的控制。(哪些构件响应。响应的顺序是怎么样的。) (2)共享区域的数据交换。(正确性的验证)(可行但不适合) 四、层次系统 层次系统组织成一个层次结构,每一层为上层效劳,并作为下层客户。在一些层次系统中,除了一些精心挑选的输出函数外,内部的层只对相邻的层可见。由于每一层最多只影响两层,同时只要给相邻层提供相同的接口,允许每层用不同的方法实现,同样为软件重用提供了强大的支持。在这一应用领域中.每一层提供一个抽象的功能,作为上层通信的根底。较低的层次定义低层的
6、交互,最低层通常只定义硬件物理连接。 层次系统有许多可取的属性: (1)支持基于抽象程度递增的系统设计,使设计者可以把一个复杂系统按递增的步骤进行分解: (2)支持功能增强,因为每一层至多和相邻的上下层交互,因此功能的改变最多影响相邻的上下层: (3)支持重用。 当然,层次系统也有其缺乏之处: (1)并不是每个系统都可以很容易地划分为分层的模式,甚至即使一个系统的逻辑结构是层次化的,出于对系统性能的考虑,系统设计师不得不把一些低级或高级的功能综合起来: (2)很难找到一个通行的、适宜的、正确的层次抽象方法。(可行但有难度) 五、仓库风格 1、黑板系统 黑板系统的传统应用是信号处理领域,如语音和
7、模式识别。另一应用是松耦合代理数据共享存取。黑板系统主要由三局部组成:知识源、黑板数据结构、控制。 2、三层c,s软件体系结构 c/s软件体系结构,即client/server(客户机/效劳器)结构,是基于资源不对等,且为实现共享而提出来的,是20世纪90年代成熟起来的技术,c,s结构将应用系统一分二,效劳器(后台)负责数据管理,客户机(前台)完成与用户的交互任务。c,s体系结构具有强大的数据操作和事务处理能力,模型思想简单,容易被人们理解和接受。 但随着企业规模和应用范围的日益扩大,软件的复杂程度不断提高,传统的c/s结构存在以下几个局限: (1)c/s只分两层结构是单一效劳器且以局域网为中
8、心的,所以难以扩展至大型企业广域网或internet: (2)软、硬件的组合及集成能力有限; (3)客户机的负荷太重,难以管理大量的客户机,系统的性能容易变坏: (4)数据平安性不好。 正是因为二层c/s有这么多缺点,因此,三层c/s结构应运而生。三层c层结构是将应用功能分成表示层、功能层和数据层三个局部。 三层c/s的解决方案是:对这三层进行明确分割,并在逻辑上使其独立。原来的数据层作为数据库管理系统已经独立出来,所以,关键是要将表示层和功能层别离成各自独立的程序,并且还要使这两层问的接口简洁明了。与传统的二层结构相比,三层cs结构具有以下优点: (i)允许合理地划分三层结构的功能,使之在逻
9、辑上保持相对独立性,从而使整个系统的逻辑结构更为清晰,能提高系统和软件的可维护性和可扩展性。 (2)允许更灵活有效地选用相应的平台和硬件系统,使之在处理负荷能力上与处理特性上分别适应于结构清晰的三层;并且这些平台和各个组成局部可以具有良好的可升级性和开放性。 (3)三层c/s结构中.应用的各层可以并行开发,各层也可以选择各自最适合的开发语言。 (4)允许充分利用功能层有效地隔离开表示层与数据层,来授权的用户难以绕过功能层而利用数据库工具或黑客手段去非法地访问数据层,这就为严格的平安管理奠定坚实的根底;整个系统的管理层次也更加合理和可控制。 3、b/s软件体系结构 b/s体系结构.即browse
10、r/server(浏览器效劳)结构,是随着如internet的兴起,对c/s体系结构的一种变化或者改进的结构。在b/s体系结构下。用户界面完全通过www浏览器实现,一局部事务逻辑在前端实现.但是主要事务逻辑在效劳器端实现。 b/s体系结构主要是利用不断成熟的www浏览器技术,结合浏览器的多种脚本语言,用通用浏览器就实现了原来需要复杂的专用软件才能实现的强大功能,并节 约了开发本钱.是一种全新的软件体系结构。基于b/s体系结构的软件,系统安装、修改和维护全在效劳器端解决。用户在使用系统时.仅仅需要1个浏览器就可运行全部的模块,真正到达了“零客户端的功能,很容易在运行时自动升级。b/s体系结构还提供了异种机、异种网、异种应用效劳的联机、联网、统一效劳的最现实的开放性根底。 但是,与c/s体系结构相比,b/s体系结构也有许多缺乏之处,例如: (1)早期b,s体系结构缺乏对动态页面的支持能力, (2)b,s体系结构的系统扩展能力差,平安性也难以控制。 (3)采用bs体系结构的应用系统,在数据查询等响应速度上,要远远地低于c/s体系结构。 (4)b,s体系结构的数据提交一般以页面为单位,数据的动态交互性不强,不利于在线事务处理(oltp)应用。 想法: 考虑到 第7页 共7页