1、单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,软件体系结构,面向对象的,高等教育出版社,高等教育电子音像出版社,从一般意义上说,体系结构包括两个层面,:,硬件体系结构(,Hardware Architecture,),软件体系结构(,Software Architecture,),面向对象体系结构,硬件体系结构指系统的硬件组织模式;而软件体系结构则描述软件的组织模式。这里我们主要关注软件体系结构的问题。,体系结构反映了系统的总体结构,是从全局上描述系统。,一、什么是体系结构,体系结构建模(,architecture modeling,),首先要建立系统
2、的基本模型,并将该模型映射到软硬件单元上。主要讨论以,UML,为基础的体系结构建模。,面向对象体系结构,面向对象的体系结构与传统的体系结构不同,它强调的是分布式对象的分配、部件及其界面、面向对象的通信方法。,三、什么是面向对象的,体系结构?,二、体系结构建模,软件技术研究的主要方面:软件理论、编程和软件设计方法、软件工程环境、软件体系结构和中间件中,软件体系结构最重要。,四、建立软件体系结构的重要性,软件开发首先要解决高层问题的决策,再逐步细化。,系统能否适应用户初期需求的模糊性和需求的变化,主要取决于软件体系结构。,软件体系结构是软件质量的保证。,面向对象体系结构,1.,用包图或构件图描述的
3、静态结构,2.,基于配置图的软件体系结构,一个合理、健全、内在一致的体系结构,是建立高水平软件系统的基础,即软件系统的体系结构,决定了软件的质量。,基于,UML,的体系结构设计,2.1,用包图,描述系统的体系结构,一、包是系统的一种分组机制,包由关系密切的一组模型元素构成,包还可以由其他包构成(嵌套)。图中描述了体系结构的包图。,表示,领 域,服 务,数据库,表示层,应用逻辑层,存储层,图,6.1 UML,包表达的体系结构单元,包图是维护和控制系统总体结构的重要建模工具。,二、,应用包图要解决的问题,表示,领 域,服 务,数据库,表示层,应用逻辑层,存储层,UML,包表达的体系结构单元,如何组
4、织包?,应将概念或语义相近的模型元素,(,对象类,),纳入一个包。即包具有高内聚性,包中的类具有功能相关性。,如何确定包之间的关系?,包之间的联系主要有两种:依赖和泛化。,2.1,用包图,描述系统的体系结构,2.2,用配置图描述系统结构,配置图是一个架构,用来详细说明技术单元和它们之间的链接。又可分为硬件环境的配置图和软件环境的配置图。,三、设计样式,UserStation,:,Personal,Computer,deptServer,:,Fileserver,opStation,:,WorkStation,corpServer,:,MainFrame,ONE DESKTOP,ONE DEPA
5、RTMENT,THE CORPORATION,interDeptLink,:,LAN,deptCorpLink,:,TCP/IP,opCorpLink,:,TCP/IP,1,.,*,1,.,*,1,.,*,1,1,1,1,1,三层,C/S,商业系统的配置图,医院诊疗系统的配置图,(C/S),:Object,Database,:Health Care,Domain,Database Unit Server,(,数据库服务器),a Windows PC,(,客户机,),:Object,Database,:Health Care,Domain,Heart Unit Server,(,心血管病服务器,
6、Configure,Knowledge,:Configure users,Heart Unit Configuration,Communication,TCP/IP,TCP/IP,:Heart Unit UI,:Heart Unit,Client Facade,:Heart Unit,Server,Application,2.2,用配置图描述系统结构,并不是所有的系统都需要建立配置图,一个单机系统只需建立包图或构件图。配置图主要用于在网络环境下运行的分布式系统或嵌入式系统的建模。,数据库服务器,DB:,数据库,打印机,打印机,应用,服务器,系统管理,(执行码),通用应用,(执行码),资源
7、管理,桌面,客户,资源管理,(执行码,),项目管理,桌面,客户,项目管理,(执行码),项目与资源管理系统的配置图,2.2,用配置图描述系统结构,2.3,用构件图来描述系统软件环境的配置,image.java,构件图又称为组件图,组件(,Component,),是系统的物理可替换的单位,代表系统的一个物理组件及其联系,表达的是系统代码本身的结构。,.,简单组件与扩充组件,Mailer,+Mailbox,+,RoutingList,MailQueue,2.,组件的实例,表示运行期间可执行的软件模块。只有可执行的组件才有实例。,my,mailer,:Mailer,:Mailbox,:,Routing
8、List,:,MailQueue,构件图实例,窗口控制,(,whnd.cpp,),通信控制,(,comhnd.cpp,),主控模块,(,main.cpp,),窗口控制,(,whnd.obj,),通信控制,(,comhnd.obj,),主控模块,(,main.obj,),图形库,(,graphic.dll,),客户程序,(client.exe),构件,关系,2.3,用构件图来描述系统软件环境的配置,基于模式的软件体系结构,2.,设计模式,(design pattern),由一些更基本的成分构成,是进行设计的“砖头”,可以用于同类的其他设计,也称为模型架构,(model framework),。它
9、用于细化软件系统的子系统或组件。,1.,体系结构模式,(,architecrul,pattern,),体系结构模式表示软件系统的基本结构化组织图式。体系结构模式可以作为具体软件体系结构的模板。,一、什么是软件体系结构的通用模式,流程处理系统,层状系统,客户服务器系统,三级和多级系统,代理,二、常用的通用模式,三、体系结构图的标记法,通常采用一组简单的工程式样标记来构造体系结构图(,architecture diagram,),这组标记是以,UML,的,配置图为基础的。,配置图由多个结点(,node),、连接器(,connector,),构成。,Client Node(,客户机结点,),Ser
10、ver Node,(,服务器,结点,),Component,A,配置图,流程处理系统(,procedural processing system,),以算法、数据结构为中心,按照,-,-,过程进行处理。,3.1,流程处理系统,User,Inteface,/Controller,(,用户界面控制器),System Services,(,系统服务),预处理器,1,解题器,2,后处理器,3,系统的主要特色是:三,个,处理部件之间是单向连接的,可能安装在不同的计算机上,。,常用于数据与图像处理、计算机模拟、数值解题等。,流程处理系统,优点:,系统由各处理部件简单组合,易于扩充处理,部件易于复用。适合于
11、在大规模并行计算机中,(massively parallel computer),运行,解决复杂的工程技术问题。,限制:,主要以批处理方式执行,不适合交互方式。不易管理大量的不同格式的输入、输出数据。,3.1,流程处理系统,层,(layer),是一个部件或结点中的一组对象或函数,共同协作提供服务。如服务器中里层给外层提供服务。,层状体系结构适用于应用服务器、数据库系统及操作系统等。,3.2,层状系统,持久服务,核心函数,界面函数,界面函数,核心函数,持久服务,层状系统,优点:,1.,按照功能层次划分,降低系统复杂度,系统设计更加清晰。,2.,内层与外界隔离,可有效控制内层的函数和服务。,.,新
12、的及常用运算(查询)可在界面层中引入,由内层服务支持,可提高系统性能。,.,独立的层,可以作为构件或结点使用。,限制,:,1.,层数过多,系统性能下降。,2.,标准化的层界面可能变得臃肿,使函数调用性能下降。,3.2,层状系统,ISO/OSI,开放系统互连参考模型,应用层协议,表示层协议,会话层协议,传输层协议,物 理 介 质,应用层,表示层,会话层,传输层,网络层,数据链路层,物理层,应用层,表示层,会话层,传输层,网络层,数据链路层,物理层,网络层,数据链路层,物理层,网络层,数据链路层,物理层,中继系统 中继系统,主机系统,主机系统,Open System,Interconnection
13、 Reference Mode,NOS,依靠在各网络层次上(,OSI,七层参考模型)的协议实现通信。,层状系统举例,3.2,层状系统,在,c/s,模式下,客户机负责用户输入和展示,服务器处理低层的功能。,3.3,客户机,/,服务器系统,优点:,1.,客户机与服务器分离,两者开发可同时进行。,2.,一个服务器可服务于多个客户机。,限制:,1.,客户机与服务器的通信依赖于网络,可能出现网络阻塞的瓶颈,(bottleneck),现象。,2.,服务器及界面的改变将引起客户机的相应改变。,Client B,Client C,Client A,Client D,Server(,服务器,),客户机,/,服务
14、器系统,C/S,结构的数据库,客户,(Client),服务器,(Server),服务请求,结果,网络,典型的客户服务器,(C/S),结构,数据库,DBMS,应用程序,一、如何解决客户服务器系统的限制?,.,针对网络瓶颈问题,尽量减少客户机作远程调用,如把一组运算组合起来,在一个远程调用中处理。,为了解决服务器的变动引起客户机的改变,采用“轻型客户机”,(thin,cilent,),。如,Web,浏览器,/,服务器模式,简称,B/S(Browser/Server,),模式,。,它无须在不同的客户机上安装不同的客户应用程序,而只需安装通用的浏览器软件。,简化了系统的开发和维护。系统的开发者无须再为
15、不同级别的用户设计开发不同的客户应用程序了,只需把所有的功能都实现在,Web,服务器上,并就不同的功能为各个组别的用户设置权限就可以了。,B/S,结构的数据库,浏览器,WEB,服务器,服务请求,最终结果,网络,图,6.15,基于,Web,的浏览器,/,服务器,(B/S),结构,数据库服务器,数据请求,结果集,数据访问引擎,二、如何提高服务器的效率,.,把部分工作转移到客户机中执行,如查证输入数据的正确性,可在客户端进行。,.,将数据库的处理事项组合起来执行,可提高数据库的吞吐量,(throughput),。,3.4,三级和多级系统,Database management node,(,数据库管
16、理结点),business logic node,(,商业逻辑结点),Security,(安全),Event,(,事件),Search,(,搜索),ClientA,ClientD,ClientB,ClientC,服务器,客户机,第一级是数据库管理结点,(database management node),。,第二级或中间级是“商业逻辑结点”,(business logic node),是指,具体应用中实施的,程序逻辑和法则。,第三级是用户界面级,强调高效、方便易用的用户界面。,三,级体系结构,第一级,第二级,第三级,可,由三级,系统的概念推广到多级系统,(,multi-tier system,
17、),即由多个,C/S,对组成。,四,级体系结构,Thin Clients,Database management node,(,数据库管理结点),business logic node,(,商业逻辑结点),Security,(,保安),Event,(,事件),Search,(,搜索),ClientA,ClientB,Thin Clients,Web Server,(服务器),(轻型客户机),(客户机),SQL,HTTP,CORBA/IIOP,含商业逻辑对象,3.4,三级和多级系统,多级系统的特点,优点:,.,系统功能分布在多级或服务器上,系统易于维护和扩充。,.,进行分级控制,可对不同级的客户
18、机提供不同水平的服务。,.,可方便地将中间级与企业的其他系统连接起来。,.,多级系统可以对同时使用系统的客户机提供服务。,限制:,.,各对客户机与服务器之间有多种不同的通信协议,要求熟悉不同协议的专业人员。,.,数据行经的多级结点,分布在不同的计算机系统中,因此系统的整体运作困难。,从部件的角度看,代理(,agent,)是服务器。,从体系结构的角度看,代理是模拟企业工作流程中的行动者。在代理的体系结构中,需要一个控制器。,3.5,代理,信息总线,(Message Bus),代理,代理,数据库,数据库,客户机,代理,客户机,客户机,客户机,控制结点,(Controller Node),一个有代理的,体系结构,代理可以是一个结点,也可是一多级系统。,优点:对复杂任务的处理,代理体系结构具有高度灵活性,,各组功能分布在不同的代理,系统易修改、扩充、伸缩性强,便于与企业级水平的软件整合。系统可采用渐进方式建立。,限制,:使用公共消息总线,需解决系统安全性问题。要求有统一的通信协议。系统性能调试困难。,代理,代理,数据库,数据库,客户机,代理,客户机,客户机,客户机,控制结点,(Controller Node),信息总线,(Message Bus),有代理的,体系结构描述,






