浅析动态We b数据库应用
2013-04-13黄金华
黄金华
(龙岩技师学院,福建 龙岩 364000)
随着社会经济的快速发展,企业、机关、社会各单位之间数据交换的日渐频繁,对交换的数据量、交换的速度、交换的安全性等性能的要求也越来越高。目前,只有动态的数据交互才可以满足信息不断变化的时代,随着应用技术的需求变化,静态数据交互技术渐渐的退出了信息技术的舞台。笔者根据多年的教学体会,简要分析几种比较流行的Web动态数据库交互的技术,以及它们的使用方法;共同行们参考。
1 动态Web数据库
网络技术的发展,也使计算机Web系统由以前的静态跨度到动态。程序是否需要在服务器端运行,这是判断一个系统是动态系统还是静态系统的重要标志。我们经常看到的html页面就是个静态页面文件。它的特点是页面的内容不会改变,GIF格式的动画、FLASH、滚动文字等,这些只是视觉上的“动态效果”,与我们这里要涉及的动态Web是不同的概念。
动态Web是指在远程服务器上运行的程序、它们会随客户的不同需求、不同时间返回不同的内容。如果远程服务程序需要的业务数据是专门的数据库来管理,并提供访问、维护的,这种情形就是动态Web数据库。目前比较流行的动态Web技术有ASP、ASPX(ASP的扩展)、PHP、JSP。它们都提供专门的对象或者函数与数据库之间交互。
2 动态Web数据库应用技术
2.1 ASP 网络开发技术
ASP(Active Server Page),即为动态服务器页面。CGI(Common Gateway Interface)是用于定义Web服务器与外部程序之间通信的标准,它能够生成动态网页内容,效率比较高,性能比较好,但是开发的难度很大。为了能够降低开发的难度,微软公司开发了ASP技术,用它代替先前的CGI脚本程序,通过ASP这个中间媒介,其它程序可以很好的与数据库和进行通信,而且它性能高,开发难度低,是一种简单、方便的编程工具。ASP网页是以.asp作为文件后缀名的,由于这种技术简单,方便,所以现在常被用于各种动态网站中。 当客户端浏览器向Web服务器端发送一个.asp页面请求的时候,IIS会根据请求的页面是.asp了,还是其它文件,如果是.asp,IIS会调用相应的组件去解析这个请求的.asp文件,把它通过转换,把它生成浏览器识别的HTML标记。基于上述过程,我们在商业网站中,我们可以在.asp中包含COM组件来处理商业业务,而这样做即安全,也不会降低性能。除了嵌入COM组件外,还可以包含HTML标记、普通文本、脚本命令,通过对这些技术的组合使用,我们可以生成动态的HTML网页,根据业务的变化生成不同的用户界面。ASP网页与HTML相比,它拥有以下特点:
(1)首先ASP技术可以突破静态网页功能限制,比如说动态界面,动态数据填充,实现动态网页技术;
(2)在开发与应用过程中,ASP文件被包含在HTML代码所组成的文件中的,修改和测试都比较方便;
(3)服务器上IIS可以通过.asp后缀名来调用相应的组件去解析ASP文件,并将结果以HTML格式传送到客户端浏览器上,因此各种浏览器都可以正常浏览ASP所产生的网页;
(4)ASP技术提供了一些内置对象,使用这些对象可以访问服务器的信息,比如服务器的IP地址,也可以从web浏览器中得到用户通过HTML表单提交的信息;
(5)ASP技术可以使用服务器端的各种COM组件来完成商务逻辑任务;
(6)ASP技术的安全性高,因为它是二次解析过的程序,源代码不会被泄露。
ASP主要用途是使客户端与服务器端进行动态的交互,而目前的商业数据大多都存储在数据库中。根据实际情况,ASP Web常用的数据库有ACCESS和SQLServer,如果数据量相当大的使用Oracle,通常情况下都使用SQL Server作为服务器端的数据库。
为了能够使客户端与服务器端进行数据交互。ASP技术中提供了DatabaseAccess组件ADO。通过访问ADO组件的七个对象和四个集合来访问数据库。它们分别是:
(1)Connection对象是用于建立与后台数据库的连接,实际开发中需要创建连接池对象。
(2)Command对象是用于执行访问数据库的SQL指令。
(3)Parameters对象和Parameters集合是为Command对象提供数据和参数。
(4)RecordSet对象是为存放访问数据库后的数据信息。
(5)Field对象和Field集合提供对RecordSet中当前记录的各个字段进行访问。
(6)Property对象和Properties集合提供有关信息,供 Connection、Command、RecordSet、Field 对象使用。
(7)Error对象和Errors集合提供访问数据库时的错误信息,这个对象可以为客户提供友好交互体验。
为了能够使用COM组件中的对象,ASP提供了几个内置对象,Application对象,Session对象,Request对象,Response对象还有Sever对象等。通过对这几个内置对象的使用来完成数据的交互功能。由于这些对象提供的功能比较丰富,下面只列举一种通过Server对象访问数据库的方法。
(1)创建连接对象
connObject=Server.CreateObject(“ADODB.Connection”);
connObject.Open(“DataSource”);//DataSource 为数据源
(2)创建 Command 对象
strSql= “DELETE file_Name FROM TABLE_NAME;”;
commObject=Server.CreateCommand(“ADODB.Command”);
commObject.CommandText=strSql;
commObject.ActiveConnection=connObject;
(3)执行命令
commObject.Excute();
(4)关闭连接
connObject.Close();
2.2 JSP 网络开发技术
JSP(Java Server Pages)是由Sun Microsystems公司倡导、许多公司参与一起建立的一种动态网页技术标准。JSP使用Java编程语言编写类XML的tags和scriptlets,来封装产生动态网页的处理逻辑。在客户在浏览器端访问JSP页面时,浏览器会把该请求发送到Web服务器端。Web服务器在遇到访问JSP网页的请求时,首先执行其中的程序段,然后将执行结果连同JSP文件中的HTML代码一起返回给客户。
JSP中的Java程序段可以操作数据库、重新定向网页等,以实现建立动态网页所需要的功能。像ASP一样,JSP也提供了些内置对象,Java程序通过这些内置对象与其它的应用程序交互信息 (比如浏览器、数据库)。request对象,该对象封装了用户提交的信息,通过调用该对象相应的方法可以获取封装的信息,即使用该对象可以获取用户提交信息。
response对象,对客户的请求做出动态的响应,向客户端发送数据。
session对象,标示一个唯一的客户端与服务器端的会话。
除了利用这些对象来管理页面,得到用户登陆数据外,还需要与数据库交互,JSP与数据库交互是利用Java语言提供的类来与数据库交互的,比如数据库的链接是使用Java中的JDBC技术。
2.3 PHP 网络开发技术
PHP(Hypertext Preprocessor)超级文本预处理语言的缩写。PHP是一种HTML内嵌式的语言。它与ASP技术有几分相似,都是为了使客户端与服务器端动态交互而被开发出来的一种技术语言。PHP语言的风格有类似于C语言,跨平台,既可以用于Window平台,也可以用于Linux平台,被很多的网站编程人员所推崇。
PHP是目前最热门的Web开发语言,它简单高效、开源免费、跨平台等特性受到广大Web开发人员的欢迎。与PHP经常搭配的数据库管理器是MySQL。它像WINDOWS API一样提供了很多接口,可以动态的访问数据库。比较常用的几个函数是:mysql_connect():用于连接数据库;mysql_query():用于执行SQL命令;mysql_select_db()用于查询数据库;还有mysql_close():用于关闭连接。PHP使用起来简单,通过这几个函数的使用,就能够很好的于数据库进行交互,实现动态功能。
2.4 动态Web数据库应用设计
2.4.1 动态Web的体系结构设计
在软件开发过程中,在前期除了做好需求分析外,还需要考虑的是整个软件系统的架构。目前比较流行的架构有过滤器风格体系结构、黑板仓库风格体系结构、事件风格体系结构、多层风格的体系结构、瘦客户端风格。动态Web数据库采用瘦客户端与多层体系结构风格相结合的方式。这种结构实际应用比较多、安全、稳定、易扩展。
图1 三层B/S模式Web数据库系统结构
三层B/S模式是从传统胖客户端C/S模式发展起来的新的Web模式。由于采用多层体系结构,B/S结构包括客户层、中间层和数据服务层。三层B/S模式Web数据库系统结构如图1所示。在实际应用中,这种系统结构使得网路传输的负担减轻、使得数据的安全性增加、增强了系统业务的扩展性同时精简了系统的维护。
2.4.2 动态Web数据库应用
在实际的应用中,Web数据库只是一个大型的系统架构中的一个模块,这个模块与其它业务模块关联,它有效的存储数据(一般情况下是对某一个系统的业务模型数据)。它们之间的关系如图2所示:
图2 Web数据库应用架构
这是整个Web数据库应用的核心基础架构。由于业务不同,涉及到的数据也不同,对于比较敏感的数据在实际应用中一般都用安全性比较高的独立服务器,在该服务器上运行的数据库的设置都比较复杂。在该结构中,连接池是为了提升性能(如并发访问)而设计的,如果采用ASP技术,在该连接池中存储的是多个连接对象,也就是Connection对象。业务协议是从业务处理群中发过来的,在一般的系统中,它可能是一个SQL句,但是在大型系统中,为了提升性能,一般把SQL句写成存储过程,而存储在数据库中,而业务协议只是存储过程的标号,并通过业务分发机制去连接相应的数据库,并且把数据返回给业务处理群。业务处理群得到数据后,可以利用系统对象(如果是ASP则为Session、Application对象或其它)作额外的系统业务处理。最终把处理后的结果通过信息服务器返回给客户端浏览器。
3 总结
动态Web数据库技术是目前企业或者是政府机关搭建信息平台时经常用到得技术。在这些技术中,主流的是JSP与ASP。由于Java语言的跨平台性强导致了JSP可以跨平台实现,在这方面ASP技术就显得有些局限性。但是无论选用什么样的技术,动态Web数据库的在实际开发应用中的体系架构是不会改变的,业务逻辑是不会改变的。用软件行业的一句话来说就是“语言只是对程序设计的描述,一种设计可以用多种语言来实现”。只有不断的将应用技术改造、创新、升级,才能满足和适应社会经济发展的需要创造出更多更大的价值。