第9章 软件开发体系结构.ppt
《第9章 软件开发体系结构.ppt》由会员分享,可在线阅读,更多相关《第9章 软件开发体系结构.ppt(52页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第9章章 软件开发体系结软件开发体系结构构数据库系统及应用数据库系统及应用第九章第九章 软件开发体系结构软件开发体系结构 9.1软件开发体系结构概述9.2C/S体系结构9.3B/S体系结构9.4常用开发体系结构本章小结2数据库系统及应用数据库系统及应用第九章第九章 软件开发体系结构软件开发体系结构 9.1软件开发体系结构概述软件开发体系结构概述九十年代之前,开发人员通过集成本地系统服务来构建九十年代之前,开发人员通过集成本地系统服务来构建应用程序。在这种模式下:应用程序。在这种模式下:通过嵌入式或自含式语言访问后台数据库。通过嵌入式或自含式语言访问后台数据库。如嵌入式如嵌入式C或或COBOL
2、开发访问开发访问ORACLE数据库的应用程序系统;数据库的应用程序系统;使用使用Foxpro开发访问开发访问Foxpro数据库的应用程序系统。数据库的应用程序系统。如今开发人员摆脱了这种模式的束缚,致力于构建如今开发人员摆脱了这种模式的束缚,致力于构建具有具有N层复杂结构的系统层复杂结构的系统,将分散在网络中各处的应用程序,将分散在网络中各处的应用程序集成,极大提升应用程序的价值。在这种开发模式下:集成,极大提升应用程序的价值。在这种开发模式下:不必为构建基本结构花费过多精力不必为构建基本结构花费过多精力有利于集中精力挖掘软件独特的商业价值有利于集中精力挖掘软件独特的商业价值缩短软件投放市场的
3、时间缩短软件投放市场的时间编程效率明显提高,软件质量得到了相应的保证。编程效率明显提高,软件质量得到了相应的保证。3数据库系统及应用数据库系统及应用第九章第九章 软件开发体系结构软件开发体系结构 9.1软件开发体系结构概述软件开发体系结构概述随着软件系统的规模和复杂程度的增加,软件体系随着软件系统的规模和复杂程度的增加,软件体系结构的选择比数据结构和算法的选择更为重要。结构的选择比数据结构和算法的选择更为重要。软件体系结构是构件的集合,包括处理构件、数据软件体系结构是构件的集合,包括处理构件、数据构件和连接构件。构件和连接构件。处理构件负责对数据进行加工处理构件负责对数据进行加工数据构件是被加
4、工的信息数据构件是被加工的信息连接构件把体系结构的不同部分组合连接起来连接构件把体系结构的不同部分组合连接起来最初的软件体系结构是客户表示、数据和程序集中最初的软件体系结构是客户表示、数据和程序集中放在主机上,主机负责处理所有的业务,客户通过放在主机上,主机负责处理所有的业务,客户通过终端完成对远程数据库的访问终端完成对远程数据库的访问该体系结构要求主机具有很高的性能该体系结构要求主机具有很高的性能随着随着PC机的广泛应用,该结构逐渐被淘汰机的广泛应用,该结构逐渐被淘汰4数据库系统及应用数据库系统及应用第九章第九章 软件开发体系结构软件开发体系结构 9.1软件开发体系结构概述软件开发体系结构概
5、述在在80年代中期出现了年代中期出现了Client/Server分布式计算分布式计算结构,客户机发出结构,客户机发出SQL请求,被数据库服务器请求,被数据库服务器响应并进行处理,客户机在接收到被处理的数响应并进行处理,客户机在接收到被处理的数据后实现显示和业务逻辑。据后实现显示和业务逻辑。Client/Server结构因其灵活性得到广泛的应用结构因其灵活性得到广泛的应用当越来越多的用户访问数据库中的数据时,该模式当越来越多的用户访问数据库中的数据时,该模式暴露出它的弊端暴露出它的弊端由于客户端包含业务逻辑且应用程序必须安装在客户端由于客户端包含业务逻辑且应用程序必须安装在客户端一旦业务逻辑发生
6、变化必须更改所有客户端程序,给系一旦业务逻辑发生变化必须更改所有客户端程序,给系统维护带来很大的困难。统维护带来很大的困难。5数据库系统及应用数据库系统及应用第九章第九章 软件开发体系结构软件开发体系结构 9.1软件开发体系结构概述软件开发体系结构概述Client/Server结构其特点是将用户的界面操作、业结构其特点是将用户的界面操作、业务逻辑放在客户端操作,而将数据操作放在服务器务逻辑放在客户端操作,而将数据操作放在服务器端处理。在这种体系结构中:端处理。在这种体系结构中:无法确保数据访问的安全(从客户程序中可以得到数无法确保数据访问的安全(从客户程序中可以得到数据库密码)据库密码)网络资
7、源消耗较大(因为要保持数据库联接、数据频网络资源消耗较大(因为要保持数据库联接、数据频繁在网络中传递)繁在网络中传递)服务器负担过重(因为它要处理所有客户机的请求)服务器负担过重(因为它要处理所有客户机的请求)升级不够方便(一旦用户的业务逻辑发生变化,必须升级不够方便(一旦用户的业务逻辑发生变化,必须更改所有客户机的软件)。更改所有客户机的软件)。Internet的发展给传统应用软件的开发带来了深刻的的发展给传统应用软件的开发带来了深刻的影响。一种新的、更具生命力的体系结构被广泛采影响。一种新的、更具生命力的体系结构被广泛采用,这就是用,这就是“三层三层/多层计算多层计算”框架框架6数据库系统
8、及应用数据库系统及应用第九章第九章 软件开发体系结构软件开发体系结构 9.1软件开发体系结构概述软件开发体系结构概述9.1.1三层三层/多层结构多层结构9.1.2组件技术组件技术9.1.3数据库技术数据库技术7数据库系统及应用数据库系统及应用第九章第九章 软件开发体系结构软件开发体系结构 9.1.1三层三层/多层结构多层结构表现层表现层信息浏览,服务定位信息浏览,服务定位主要实现用户界面,保证用户界面的友好主要实现用户界面,保证用户界面的友好性、统一性,也叫性、统一性,也叫GUI层层总是与业务处理层打交道,不直接与数据总是与业务处理层打交道,不直接与数据服务层打交道,为客户提供输入服务层打交道
9、,为客户提供输入输出数据输出数据的界面的界面典型应用是网络浏览器和胖客户(如典型应用是网络浏览器和胖客户(如Java程程序、序、Delphi程序)程序)8数据库系统及应用数据库系统及应用第九章第九章 软件开发体系结构软件开发体系结构 9.1.1三层三层/多层结构多层结构业务逻辑层业务逻辑层负责从数据层获取适当格式的数据并执行最后的合法负责从数据层获取适当格式的数据并执行最后的合法性检查性检查(也叫执行业务规则也叫执行业务规则)实现客户的全部业务逻辑实现客户的全部业务逻辑典型应用是典型应用是Web服务器和运行业务代码的应用程序服务服务器和运行业务代码的应用程序服务器。器。数据层数据层实现数据定义
10、、存储、备份、检索等功能实现数据定义、存储、备份、检索等功能主要由数据库系统实现主要由数据库系统实现典型应用是关系型数据库和其他后端(典型应用是关系型数据库和其他后端(back-end)数据)数据资源资源,如如Oracle、Sybase、Sql-Server数据库和数据文件数据库和数据文件等等9数据库系统及应用数据库系统及应用第九章第九章 软件开发体系结构软件开发体系结构 9.1.1三层三层/多层结构多层结构n在三层体系结构中在三层体系结构中n客户(请求信息)、程序(处理请求)和数据(被操作)被物理地隔离。客户(请求信息)、程序(处理请求)和数据(被操作)被物理地隔离。n把显示逻辑从业务逻辑中
11、分离出来,业务逻辑层处于中间层,不需关心由哪把显示逻辑从业务逻辑中分离出来,业务逻辑层处于中间层,不需关心由哪种类型的客户来显示数据,也与后端系统保持相对独立性,有利于系统扩展。种类型的客户来显示数据,也与后端系统保持相对独立性,有利于系统扩展。n具有更好的移植性,可以跨平台工作。安全性更易于实现。具有更好的移植性,可以跨平台工作。安全性更易于实现。n三层体系结构将组件作为中间层,其作用相当于分担了三层体系结构将组件作为中间层,其作用相当于分担了C/S结构中结构中C(客(客户)和户)和S(服务器)的部分工作,跟(服务器)的部分工作,跟C/S结构相比结构相比n在安全性、并发度方面有了明显的改善,
12、软件的升级也容易实现在安全性、并发度方面有了明显的改善,软件的升级也容易实现n实现组件的方法有实现组件的方法有COM(只用于(只用于Window平台)、平台)、Corba(用于跨平台,主要(用于跨平台,主要用于用于Unix平台)和平台)和Internet网络中基于网络中基于Java环境的环境的EnterpriseJavaBean10数据库系统及应用数据库系统及应用第九章第九章 软件开发体系结构软件开发体系结构 9.1.1三层三层/多层结构多层结构n三层体系结构是多层体系结构的基础三层体系结构是多层体系结构的基础n层是一个逻辑的概念,将层是一个逻辑的概念,将“客户客户/服务器服务器”的关系用的关
13、系用“请求请求/服务于该服务于该请求请求”的关系来描述的关系来描述n将网络上发出请求的机器认为是客户机,将响应该请求的机器认为是将网络上发出请求的机器认为是客户机,将响应该请求的机器认为是服务器,网络上有的机器既是客户机又是服务器。服务器,网络上有的机器既是客户机又是服务器。n使用多层体系构架模型,可将系统需求划分成可以明确定义的服务使用多层体系构架模型,可将系统需求划分成可以明确定义的服务n例如事务服务、名字服务等,将这些服务以组件的形式实现例如事务服务、名字服务等,将这些服务以组件的形式实现n一个组件可以实现系统中的一种或者多种服务,是这些服务的物理封一个组件可以实现系统中的一种或者多种服
14、务,是这些服务的物理封装。装。n根据系统的功能、性能等各方面的需求,系统管理员可以在网络上灵根据系统的功能、性能等各方面的需求,系统管理员可以在网络上灵活的部署这些组件,并且根据业务的改动灵活地对这些服务组件进行活的部署这些组件,并且根据业务的改动灵活地对这些服务组件进行修改,而不影响其它的组件,从而降低维护的费用修改,而不影响其它的组件,从而降低维护的费用11数据库系统及应用数据库系统及应用第九章第九章 软件开发体系结构软件开发体系结构 9.1.1三层三层/多层结构多层结构n多层应用程序的体系结构的优点:多层应用程序的体系结构的优点:n业务规则集中、瘦客户体系结构业务规则集中、瘦客户体系结构
15、n自动错误调和、负载平衡自动错误调和、负载平衡n可重用性、灵活性可重用性、灵活性n可管理性、易维护性一系列优良的特性可管理性、易维护性一系列优良的特性12数据库系统及应用数据库系统及应用第九章第九章 软件开发体系结构软件开发体系结构 9.1.2组件技术组件技术组件是指在采用组件技术开发的软件中,为实现一定的组件是指在采用组件技术开发的软件中,为实现一定的功能而独立编译的模块或类。功能而独立编译的模块或类。基于组件化的程序设计思想基于组件化的程序设计思想将复杂的应用程序分解为一些小的、功能单一的组件模块将复杂的应用程序分解为一些小的、功能单一的组件模块这些模块可运行在同一台计算机上,也可分散运行
16、在网络这些模块可运行在同一台计算机上,也可分散运行在网络中的任何一台计算机上中的任何一台计算机上组件技术是构造多层体系结构的基础组件技术是构造多层体系结构的基础组件不同于传统的模块或类,它具有依照组件不同于传统的模块或类,它具有依照COM、CORBA或或Javabean特征所规定的接口。特征所规定的接口。独立于语言,在组建应用程序时仅通过接口访问组件,不独立于语言,在组建应用程序时仅通过接口访问组件,不涉及组件的内部细节,是保障软件安全和升级的最好手段涉及组件的内部细节,是保障软件安全和升级的最好手段13数据库系统及应用数据库系统及应用第九章第九章 软件开发体系结构软件开发体系结构 9.1.2
17、组件技术组件技术企业在构建管理信息系统时必须要考虑安企业在构建管理信息系统时必须要考虑安全问题、升级问题、投入问题、服务器负全问题、升级问题、投入问题、服务器负担问题等。担问题等。组件服务器在客户和数据库服务器之间起组件服务器在客户和数据库服务器之间起了一个桥梁作用了一个桥梁作用通常它定义了一个完整的逻辑接口通常它定义了一个完整的逻辑接口客户程序只是简单地访问这些接口客户程序只是简单地访问这些接口创建和维护数据库提供了极大的便利创建和维护数据库提供了极大的便利14数据库系统及应用数据库系统及应用第九章第九章 软件开发体系结构软件开发体系结构 9.1.2组件技术组件技术小应用程序小应用程序app
18、let定义简单的容器组件接口,使得定义简单的容器组件接口,使得java代码可以嵌入代码可以嵌入web浏览器的浏览器的applet中运行。中运行。JavaBean定义编写定义编写java代码的标准模型,对外提供组件属性和事件以及与代码的标准模型,对外提供组件属性和事件以及与JavaBean容器的接口。容器一般嵌入到一个集成的开发环境中,如容器的接口。容器一般嵌入到一个集成的开发环境中,如tomcat、weblogic等。等。corba定义分布式访问用任何语言实现的组件标准模型。通过标准通信定义分布式访问用任何语言实现的组件标准模型。通过标准通信容器环境容器环境orb,把从分布式客户机发出的调用传
19、至服务器端容器代,把从分布式客户机发出的调用传至服务器端容器代码,该代码激活分布式对象方法。码,该代码激活分布式对象方法。RMI远程方法调用远程方法调用RMI为分布式访问组件提供可能。为分布式访问组件提供可能。RMI容器环境装备容器环境装备了了java平台,并扩展支持使用相同底层通信协议,如平台,并扩展支持使用相同底层通信协议,如CORBA的标准的标准通信协议。通信协议。15数据库系统及应用数据库系统及应用第九章第九章 软件开发体系结构软件开发体系结构 9.1.2组件技术组件技术COM在微软平台上实现组件交互的标准模型,分布式组件对象模型在微软平台上实现组件交互的标准模型,分布式组件对象模型D
20、COM是是COM的分布式通信版本。的分布式通信版本。J2EEWeb组件组件javaservlet和和javaseverpage表示服务端的组件,它处理表示服务端的组件,它处理web请求和生请求和生成成WEB内容。内容。WEB组件运行和操作在基于组件运行和操作在基于J2EE的的WEB容器环境内部。容器环境内部。J2EE企业企业javabean企业企业javabean(EJB)是服务器端的遵守标准模型的应用组件,在是服务器端的遵守标准模型的应用组件,在EJB容器容器和服务器内操作,这样的服务器能够为和服务器内操作,这样的服务器能够为EJB提供一组标准的服务框架,提供一组标准的服务框架,如事务、安全
21、和可扩展性等。如事务、安全和可扩展性等。CORBAcomponentCORBAcomponent是基于是基于corba的应用服务模型,与的应用服务模型,与EJB模型非常相似。模型非常相似。微软的微软的DNA(分布式网络体系结构)(分布式网络体系结构)DNA是微软的集成式分布应用服务体系结构环境,该环境仅适合微软是微软的集成式分布应用服务体系结构环境,该环境仅适合微软平台。平台。DNA结合许多微软的标准组件并在微软平台上运行企业应用。结合许多微软的标准组件并在微软平台上运行企业应用。16数据库系统及应用数据库系统及应用第九章第九章 软件开发体系结构软件开发体系结构 9.1.3数据库技术数据库技术
22、数据库技术用于存储、维护企业经营活动中所产生的数据,并为数据库技术用于存储、维护企业经营活动中所产生的数据,并为企业决策提供数据支持。企业管理信息系统必须使用数据库技术。企业决策提供数据支持。企业管理信息系统必须使用数据库技术。目前成熟的数据库技术很多,如目前成熟的数据库技术很多,如Oracle、Sybase、MSSql-Server、Access、DB2等。等。Oracle数据库适合于大中型企业的信息管理系统数据库适合于大中型企业的信息管理系统Sybase和和DB2数据库适合于中型企业的信息管理系统数据库适合于中型企业的信息管理系统MSSql-Server数据库适合于中小型企业的信息管理系统
23、数据库适合于中小型企业的信息管理系统Access数据库仅适合于个人系统。数据库仅适合于个人系统。17数据库系统及应用数据库系统及应用第九章第九章 软件开发体系结构软件开发体系结构 9.2C/S体系结构体系结构9.2.1两层两层C/S体系结构体系结构9.2.2三层三层/多层多层C/S体系结构体系结构18数据库系统及应用数据库系统及应用第九章第九章 软件开发体系结构软件开发体系结构 9.2.1两层两层C/S体系结构体系结构两层结构将应用一分为二,服务器(后台)负责数据管理,两层结构将应用一分为二,服务器(后台)负责数据管理,客户机(前台)完成与用户的交互任务。客户机(前台)完成与用户的交互任务。把
24、存储企业数据的数据库放在远程的服务器上,每台客户机上只把存储企业数据的数据库放在远程的服务器上,每台客户机上只安装相应软件安装相应软件客户机,其用户界面结合了表示层和业务逻辑层,接收用户的请客户机,其用户界面结合了表示层和业务逻辑层,接收用户的请求,并向数据库服务器提出请求求,并向数据库服务器提出请求数据库服务器,响应客户的请求,并将数据提交给客户端,客户数据库服务器,响应客户的请求,并将数据提交给客户端,客户端再将数据进行计算并将结果呈现给用户。端再将数据进行计算并将结果呈现给用户。两层结构提供完善的安全保护及完整性处理等操作,允许两层结构提供完善的安全保护及完整性处理等操作,允许多个客户同
25、时访问同一个数据库。多个客户同时访问同一个数据库。19数据库系统及应用数据库系统及应用第九章第九章 软件开发体系结构软件开发体系结构 9.2.1两层两层C/S体系结构体系结构CS在技术上非常成熟,模型简单,易于在技术上非常成熟,模型简单,易于理解和接受。主要特点理解和接受。主要特点交互性强、具有安全的存取模式、网络通信量交互性强、具有安全的存取模式、网络通信量低、响应速度快、利于处理大量数据。但随着低、响应速度快、利于处理大量数据。但随着企业规模的日益扩大,软件的复杂程度不断提企业规模的日益扩大,软件的复杂程度不断提高高该结构存在以下局限:该结构存在以下局限:程序是针对性开发,变更不够灵活,维
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第9章 软件开发体系结构 软件 开发 体系结构
限制150内