当前位置: 主页 > 网站制作 >

技术分析:谈Web数据库访问技术

发布时间:2011-12-31 16:23 阅读次数: 出处/作者:admin 在线投稿



技术分析:谈Web数据库访问技术 2000/04/06 16:20 互联网世界

  一、引言

  随着Internet/Intranet的讯速发展,WEB得到了越来越广泛的应用,WWW页面已由静态网页 逐渐发展为动态的交互式网页,如何更好地实现与用户的交互就成为非常迫切的问题。解决这一问题的方法之一就是实现数据 库与Internet/Intranet应用软件的集成。基于WEB的数据库应用,就是将数据库和WEB技术结合,按 照Browser/Server结构建立的通过浏览器访问数据库的服务系统。目前建立与web数据库交互连接的方法有 主要如下几种:一是网关接口CGI和NSAPI、ISAPI;二是JDBC(JAVA DATABASE CONNE CTIVITY);三是ACTIVEX。

  二、CGI和NSAPI、ISAPI

  CGI是一种在服务器与外部脚本或程序之间进行交互的方法,它通过从Web服务器上接收信息,创建一个子过程 以便为CGI进行脚本处理或存储从服务器上接受的信息。通过CGI,用户可以在Web页面上添加一些程序,向访问者提 供一种方式来存储信息和执行一些外部程序,访问数据库。

  CGI脚本语言分为解释型和编译型两大类。解释型脚本语言不需要预先编译,只由解释器来完成,如Perl、U nix Shell等。其特点是通俗易学,应用广泛,但安全性较差,执行效率低。编译型脚本语言需要预先编译、生成二 进制代码,如VC、C++、Visual Basic、Delphi等。编译型脚本语言需要编译环境,依赖于具体的操 作平台,但执行效率高,安全性较高。

  为实现信息共享和动态服务,必须能够让Web用户通过CGI访问数据库。CGI需要通过一个接口才能访问数据 库,这种接口多种多样,几个大的数据库厂商也对某些CGI脚本语言提供数据库接口。例如,Oracle就提供Perl 对Oracle数据库的接口。

  CGI曾是产生动态WEB页的主要技术,但CGI的灵活性能较差,每当一个客户应用程序调用一个CGI程序时 ,Web服务器需要创建一个新的进程,执行这个CGI程序,回送执行结果给客户,最后清理使用的资源。如果此时服务器 正接受许多客户的请求,Web服务器就要执行大量的任务,从而大大降低了网络的速度。

  而ISAPI(Internet服务器API)或NSAPI(Netscape服务器API)能克服这一问题 ,使Web服务器能够在其进程空间中执行用户逻辑,并在每一个动态请求发生时无需派生新的执行程序。NSAPI与IS API应用程序十分类似,下面仅以ISAPI为例。

  一个ISAPI应用程序是运行在Web服务器进程空间中的一个线程DLL,当发生HTTP请求调用这个ISA PI DLL时,Web服务器从它的线程池(线程池是一个由Web服务器管理的工作线程集合)中取得一个线程,并启动 这个在DLL中执行的线程。而线程可随服务器的负载情况动态地增大或缩小。在执行结果回送到客户端后,则线程也将送回 线程池。这一方法比CGI派生新进程来利用系统资源更为有效。不过,使用ISAPI的缺点是线程级安全代码的编写、测 试和卸载替换较难。

  三、JDBC

  Java是一种面向对象的编程语言。Java程序独立于开发平台,它被编译成一种字节码序列,并被一种Jav a解释器翻译,翻译后的Java程序可以在具有java解释器的任意系统下运行,而不需要重新编译。这种能力使Jav a成为在Internet上编程的一种理想语言。Java程序可以在Java已经移植到的任意平台上运行。嵌入到WW W页中的Java程序称为Java Applet。

  JDBC规范使JAVA实现数据库的连接,JDBC设计是基于X/OPEN SQL CLI(CALL LE VEL INTERFACE)模型,它定义一组API对象和方法,从而与数据库进行交互。JDBC API是一个数据 库接口,用来解释和执行来自应用程序中的SQL语句,并返回结果集。它可以全部用JAVA编写。如SUN和INTER SOLV合作开发的JDBC-ODBCBRIDGE,JDBC-ODBCBRIDEG可以通过在JDBC和ODBC之 间建立一个桥梁,让JAVA程序通过JDBC来访问ODBC中的数据源。但目前要编写一段Java代码确实比较麻烦, 从而影响它的普及。

  四、ACTIVEX

  ActiveX是Microsoft提出的一组使用COM(Component Object Model) 使得软件部件在网络环境中进行交互的技术集。它与具体的编程语言无关。作为针对Internet应用开发的技术,Ac tiveX被广泛应用于WEB服务器以及客户端的各个方面,也被用于创建桌面应用程序。ActiveX目前可在所有的 Windows平台上使用。ActiveX核心元素的ActiveX控制(Custom Controls),可以在 单独的应用程序和Web页中重复使用。

  ActiveX和JavaApplet两者都可用来创建动态的Web,然而,也有一些不同,ActiveX不 像Java,它是独立于语言的,可以用Visual Basic、Visual C++、Delphi、Borlan d C++和其他开发语言开发。一个ActiveX代码,必须先编译后,才能在网页中使用;而调用ActiveX的网 页必须用元素来对之加以描述。与Java的字节码技术相比,ActiveX提供了"代码签名"(Code Signi ng)技术保证其安全性。

  ActiveX控制与其父控制OLE相比,接口更少,并且可以没有窗体,都支持IUnknown接口。目前, 很多第三方开发商编制了超过1000个各式各样的ActiveX控制供用户下载使用。

  编写ActiveX控制时必须考虑以下几个问题:文件尽可能小,解释ActiveX控制持续存储数据,附加说 明如何在Internet上下载和安装,说明如何在客户端注册。所有这些,会给用户使用ActiveX控制产生不便。




上一篇:1.1.1 Web技术的发展 下一篇:CSS常用技巧介绍

联系方式:


ro单机版