软件工程第讲数据库应用技术进化.ppt
《软件工程第讲数据库应用技术进化.ppt》由会员分享,可在线阅读,更多相关《软件工程第讲数据库应用技术进化.ppt(79页珍藏版)》请在三一办公上搜索。
1、数据库应用模式与存取技术,主要内容,数据库应用模式的进化单层模式两层模式多层模式常用开发技术常用接口技术未来发展方向,数据库应用模型的进化,单层模式一种基于主机终端模式的计算模型,即H/T(Host/Terminal)模式在20世纪80年代以前比较流行,几乎所有的计算和处理都由主机来完成,终端只是作为一种显示、输入和输出设备。其结构如下图所示。,这种模式结构简单、管理方便、安全性好,但是这种系统的缺点也是明显的。主要表现在:(1)由于用户界面都是字符型终端设备,以完全的“黑白脸”面目呈现给使用者,所以用户难以接受;(2)可用的开发工具少,一般只能使用字符化开发工具,没有集成化的开发环境;(3)
2、主机负担重;(4)程序移植性、扩展性差等。,两层模式,20世纪80年代后期,针对H/T体系结构存在的问题,人们提出了客户服务器(Client/Server)结构,这种模型也是目前基于局域网应用开发中使用较多的设计方法。这种C/S模式是一种二层结构,即系统分成客户端和服务器端两部分,其逻辑结构如下图所示。,这种模式可由两种方法实现:(1)一种是“客户中心论”,由客户来完成表示逻辑和业务逻辑部分,由服务器完成数据服务部分。这时,表示逻辑和业务逻辑部分合二为一,所有的与数据库服务器的接口API都在客户端定义,数据库服务器只是处理来自客户的SQL语句,这时的客户就是我们所说的“胖客户”。这种情况适用于
3、客户较少(100)、应用相对简单、数据访问量不大的情况。随着系统越来越复杂,客户端应用程序变得越来越庞大,对客户机的处理能力要求越来越高,“胖客户”必定越来越胖。,(2)为了降低客户的肥胖度,就必须转移客户的逻辑实现,于是人们提出了另一种解决方案。在此种方案中,把一些重要的业务逻辑部分地放到服务器上,为客户“减肥”,也称为客户“瘦化”。采取的办法是编写一些在数据库服务器端执行的“存储过程(或函数)”以及触发器程序(可以简化客户端的某些部分数据逻辑检查)等,存储过程使得用户能够一次执行存储在远端数据库服务器中的一组SQL语句。客户端的应用程序可以直接调用这些存储过程,将参数传递给它,然后由数据库
4、服务器解释并返回执行结果,客户机再对结果进行处理。存储过程大大降低了网络通信的开销,提高了安全性和系统代码的可重用性。较之完全把表示层与业务逻辑层组合在一起的两层模型,这种方式提高了系统的性能,但并未从根本上解决问题。,通过对两层C/S模式的特点进行分析,我们可以发现它有以下不可克服的缺点:(1)安全性差,因为客户机直接与数据库服务器交互,所有的连接实现(包括数据库服务器地址、用户名、口令等)对客户来说是非透明的,这不可避免地造成安全隐患。(2)对客户端机器性能要求高,客户机不但实现表示逻辑,而且实现业务逻辑。(3)客户端维护代价大,代码重用性差。由于没有采用面向对象的设计方法,使得对于当今多
5、变的应用需求来说,每次的需求变化或数据库逻辑结构的更改,客户端都必须更新其实现(4)几乎所有的数据库产品都需要购买使用许可,每增加一个客户访问,都需要购买使用权,从而造成资金浪费。,三层模式三层C/S结构将数据库应用的三部分:表示逻辑、业务逻辑、数据访问逻辑清晰的映射为实现上的三层,分别称之为客户(表示层)、应用服务器(业务逻辑层)、数据库服务器(数据服务层)。与二层C/S结构相比,其最大的区别是将业务逻辑部分明确地划分出来。逻辑结构图如下,(1)客户客户是应用的用户接口部分,通常以图形用户界面(GUI)展现给用户,它负责用户与应用程序的交互,接受用户的输入、请求,并把请求通过客户端组件传递给
6、应用逻辑层,同时接收应用层返回的数据包并以用户期望的形式显示在客户终端上。,(2)应用服务器应用层的组件执行具体的业务逻辑,并通过SQL、API等方式向数据服务层提出数据或其他资源请求,然后接收数据服务层的返回结果,打包后返回给表示层。应用服务器是应用逻辑处理的核心,负责具体业务逻辑的实现。,应用服务器的主要功能有:接收来自客户的请求信息包;将SQL信息请求发送给数据库服务器;接收数据库服务器返回数据和结果;将结果数据包返回给客户。,应用服务器一般和数据库服务器有密集数据交往,应用服务器向数据库服务器发送SQL请求,数据库服务器将数据访问结果返回给应用服务器。应用逻辑变得复杂或增加新的应用时,
7、可增加新的应用服务器,它可与原应用服务器驻留于同一主机或是不同主机上。,(3)数据库服务器数据库服务器以传统的基于SQL的RDBMS实现,完成数据的存储、数据的完整性约束,并处理应用层的数据请求和访问,将返回结果包传给应用服务器。,与两层C/S结构相比三层模式有以下优点:增强了系统的安全性。安全性应用逻辑和最终访问数据库大多由应用服务器实现,对用户来说是透明的,客户端不存在与数据服务层的逻辑关联。这样就保证了系统的安全性,并且减少了网络上的数据流量。客户成为真正的“瘦客户”。客户仅仅实现表示层逻辑,大大降低了对客户机的性能要求。降低系统的维护代价,实现真正的层次化设计。与两层结构相比,此时如果
8、发生数据库逻辑结构的改动,我们只要在应用端进行相应处理即可,而对于客户端的实现可以不做任何改动。在增加新的应用逻辑时,可以追加新的应用服务器。系统规模越大时,这种方式的优点越显著。,应用程序组件可以共享与数据库的连接,降低许可费用。此时只有应用服务器与数据库服务器打交道,数据库服务器不再是为每个活动的用户保持一个连接,客户可以共享数据库连接,从而降低了数据库服务器的负担,降低购买许可的数量。在应用逻辑层,开发人员可以利用Vc+等常用的开发工具开发可重用的二进制组件,而不是编写存储过程。而且这些组件可以镜像到多台机器上同时运行,从而分担多用户的负载。,目前,三层模式主要应用于Internet上,
9、其中占优势的三层客户/服务器模型是通过通用网关接口CGI/Cookie、SAPI、ASP以及PHP等技术实现的。,通用网关接口CGI/Cookie CGI(Common Gateway Interface)规定了浏览器、Web服务器和外部应用程序之间数据交换的标准接口。通过这个接口,客户端利用HTTP的GET或POST方法向Web服务器提出请求,Web服务器运行对应的CGI程序,CGI程序向数据库服务器提出请求及完成相应处理后,返回结果给浏览器。CGI应用程序可以实时产生动态的HTML文件,能根据用户的需求输出动态信息,将数据库服务器中的信息作为数据源对外提供服务,从而将Web服务和数据库服务
10、结合起来。其结构如图所示。,CGI应用程序可由任何一种程序语言编写,比如C/C+、Perl、VB等。目前,几乎所有的Web 服务器软件均支持CGI。但是,CGI的应用程序不能由多个客户的请求共享,这样每一个客户请求就会增加一个CGI进程(见图),当客户请求数量相当多时会大量挤占系统资源,影响资源的使用效率,导致性能的降低和等待时间的增加。,在CGI方式中,Web服务器通过CGI接口创建网关进程,并将用户的请求传递给网关;接着应用网关处理CGI请求,并通过应用接口访问具体应用,然后将结果转换为HTML格式并回送给服务器。但是CGI的基础HTTP是一个低速、脆弱和无状态的协议,所以在利用CGI进行
11、应用集成时存在一些问题。当一个HTML文件中包含了大量的数据库访问请求,这种基于CGI的Web网关的性能将十分低下,且服务器很快会达到饱和状态,难以支持更多的用户请求。同时Cookie技术始终就是一个具有广泛争议的技术,它的潜在的安全漏洞早就遭到人们的质疑。,另外,CGI也无法适应于广泛流行且迅速发展着的Java等新兴技术,无法利用这些技术所带来的巨大优越性。,服务器端应用编程接口SAPI 针对CGI的局限,Web服务器厂商开发出Web服务器与外部扩展程序交互的SAPI(Server Application Programming Interface)。这是在20世纪90年代流行的一种技术。S
12、API随Web服务器的不同而不同,最流行的两种SAPI是Netscape的NSAPI(Netscape Server API)和Microsoft的ISAPI(Internet Server API)。SAPI与CGI最大的区别在于:前者是以动态链接库的形式存在,而后者一般都是可执行程序。一个SAPI应用程序是一个DLL,在被用户请求激活后并不生成进程,而是在服务器的进程空间中运行,当其他客户机请求到达时,可以共享同一个DLL,从而减少了内存开销和启动时间。,ISAPI有两个主要的部件:Internet数据库连接器(IDC)和OLE ISAPI。IDC可以在HTML页和注册的ODBC数据源之间
13、建立通信,其通信机制如图。,OLE ISAPI是DLL文件,通常存在于IIS脚本文件中,可使用户访问Web页上的软件部件,其工作流程如图,但是,SAPI应用程序开发难度较高,因为SAPI应用程序与Web服务器结合得太紧密,SAPI应用程序实际上成了Web服务器内核的一部分。另外,SAPI应用程序移植性差,开发出的应用程序往往只能在相应的Web 服务器上运行。,ASP、PHP、JSP技术比较,一、ASP技术鉴于SAPI的这种弊端,Microsoft公司于1997年10月推出了一种Web应用程序开发技术Active 服务器页ASP(Active Server Page)。ASP是服务器端的脚本文件
14、,它可以是HTML,也可以是VBScript或JavaScript,ASP的目的是提供可编程HTML页来响应Web页,满足用户的要求。ASP文件只能运行在服务器上,不能在浏览器上运行。像OLE ISAPI一样,ASP页面也可以使用服务器端的ActiveX部件,这些部件通常是EXE部件,返回的信息在ASP得到解释。ASP数据流动如图,使用ASP时,应用程序是在server端运行而不是在Client端。当用户访问一个ASP页面时,首先,Web Server调用ASP文件,在读取ASP文件的全部内容后开始解释执行所有的Script命令,生成标准HTML页,再把这些HTML页传到用户端的浏览器上,并完
15、成操作。这样,我们就不用担心用户所使用的浏览器的类型了,Web Server端已经处理了一切。ASP提供了一种浏览器中枢方案来完成应用程序的设计工作。因为用于生成动态内容的脚本可以在服务器上执行,所以开发者不必担心客户用什么浏览器来浏览网点,实现了浏览器的无关性。,ASP基于DCOM(Distributed Component Object Model,分布式组件对象模型)构架,让程序构件可在本地或网络上以分布方式执行,使得基于客户机/服务器体系结构的应用程序更具效率。HTTP浏览器由于本身具有跨多种软硬件平台的优势,所以是一种极好的客户端操作平台。有了ASP,程序与外观得到分离,通过使用脚本
16、和组件,Active Server Pages允许用户将编程工作与一个网页的设计和其他工作分离开来。这就可以确保开发者能够将主要的精力用来考虑编写程序的逻辑,而不必担心外观是怎样的。同时,它也使那些从事外观设计的人员可以利用一些工具如Frontpage,InterDev来对网页进行修改,而不用过于关心编程问题。,在应用范围方面:ASP是Microsoft开发的动态网页语言,也继承了微软产品的一贯传统只能运行于微软的服务器产品IIS(Internet Information Server)(Windows NT)和PWS(PersonalWeb Server)(Windows 98)上。在 Un
17、ix下虽然有 Chili Soft的插件来支持ASP,但是ASP本身的功能有限,必须通过 ASP+COM的组合来扩充,Unix下的COM实现起来非常困难。,在数据库连接方面,ASP可以接收来自远程客户的传入参数,实现在Internet应用中与ODBC数据库互连,也可以通过ADO、OLE DB Provider等方式访问数据库。另外,使用ASP访问数据库比较清楚简明,简单的ASP脚本即可实现非常复杂的数据库的连接、查询与修改。,ASP具有如下的优缺点:优点:由于简单易学,再加上微软公司的强有力支持,借助于该公司所提供的 Com+技术,几乎可以实现在 C/S能够实现的所有功能,所以受到广大 Web
18、开发人员的喜欢。另外,ASP克服了CGI脚本的某些缺点,使得客户可以共享服务端进程,从而降低了系统开销。缺点:只能在 Windows平台下使用,虽然它可以通过增加控件而在Linux下使用,但是其功能最强大的DCOM控件却不能使用,限制了系统的跨平台性能。,PHP技术 PHP全名 Hypertext Preprocessor,是一种跨平台的基于服务器端的嵌入式脚本语言。PHP是基于Unix/Linux平台的服务器端嵌入式脚本技术。它秉承了Linux的GNU风格,借助于源码公开,大量地借用C、Java和 Perl语言的语法,引用类的概念,使得代码的可重复性应用变的异常简单,它在普通的HTML页面中
19、嵌入PHP脚本语句,并耦合PHP自己的特性,使Web开发者能够快速地写出动态生成页面。在页面执行过程中,PHP由服务器解释和翻译成普通的HTML文件,然后传送回客户端浏览器。同时,它内置了对数据库的支持,使得与数据库的连接变得容易。,优点:它支持目前绝大多数数据库;PHP是完全免费的,可以从PHP官方站点(http:/www.P)自由下载,而且可以不受限制地获得源码,甚至可以从中加进自己需要的特色。由于它与Linux、Apache和My Sql的配合很紧密,从而使得关键性的应用也没有问题。PHP可以运行在Unix/Linux+Apache、Win9X+PWS、WinNT+IIS等平台上。,缺点
20、:PHP缺乏规模支持和多层结构支持;PHP提供的数据库接口支持不统一,这使得它不适合应用于大型电子商务站点,而更适合一些小型的商业站点。此外,由于没有一个非常有实力的公司专门给它做支持,因此相关的学习资料比较少,目前在国内使用它的站点比较多,但是专门讲解它的站点就比较少,这给初学者带来了很多的麻烦。另外,由于PHP是纯粹的解释性语言,所以运行性能比较低下;同时PHP缺乏对面向对象技术的广泛支持。,目前被广泛应用的页面开发技术JSP JSP全名Java Server Pages,是Sun公司推出的新一代站点开发语言,它完全解决了目前ASP和PHP的一个通病脚本级执行。特点:JSP是在ASP之后定
21、义的,它借用了ASP的许多优点,如Session和 Application等对象;同时JSP使用灵活而强大的Java语言,而不是低效的Script语言。,JSP的特点:(1)JSP的效率和安全性更高。JSP在执行以前先被编译成字节码(Byte code),字节码由Java虚拟机(Java Virtual Machine)解释执行,比源码解释的效率高;服务器上还有字节码的 Cache机制,能提高字节码的访问效率。第一次调用 JSP网页可能稍慢,因为它被编译成Cache,以后就快得多了;同时,JSP源程序不大可能被下载,特别是Java Bean程序完全可以放到不对外的目录中。,(2)JSP的组件(
22、Component)方式更方便。ASP通过COM来扩充复杂的功能,如文件上载、发送 E-mail以及将业务处理或者复杂计算分离出来成为独立可重复利用的模块。JSP通过Java Bean实现了同样的功能扩充。在开发方面,COM的开发远比Java Bean复杂和繁琐,学会ASP不难,但学会开发COM则比较困难;而Java Bean则相对简单。在维护方面,COM必须在服务器上注册,如果修改了COM程序,就必须重新注册,甚至必须关机和重新启动。Java Bean则不需要注册,放在CLASSPATH包含的目录中就行了。另外Java Bean是完全的 OOP,可以针对不同的业务处理功能方便地建立一整套可重
23、复利用的对象库,例如用户权限控制、E-mail自动回复等。,JSP 与ASP和PHP的比较,在国内 PHP与 ASP应用最为广泛;由于JSP是一种较新的技术,国内刚刚兴起,但在国外,JSP已经是比较流行的一种技术。它们之间既存在很多共同特点,也存在很多不同。,JSP与ASP的比较,JSP也提供了在HTML代码中混合程序代码,由语言引擎进行解释执行的能力。不同的是,ASP用的是Vbscript、JScript等之类的脚本语言,而JSP使用的是成熟强大的Java代码。客户端请求JSP编写的页面时,代码首先被转换成Java源文件,再编译成支持HTTP、FTP等网络协议的Class文件(即Servle
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 数据库 应用技术 进化

链接地址:https://www.31ppt.com/p-5641066.html