网站首页 | 网站维护 | 标志设计 | 平面设计 | 网站设计 | 技术文章 | 企业早知道 | 网站优化 | 客服案例 | VI设计 |画册设计
革新设计理念 和谐和简单造就不同凡响:商务万维理念 我们一直在努力 卓越塑造成功!
用心服务 携手进步 · 首 页 · 包装设计 · 海报设计 · 广告设计 · 网站推广 · WEB技术 ·行业新闻
 专业设计团队 网站建设专家 革新设计理念 构建和谐网络生活 携手客户 共求发展

访问Web数据库的应用技术

作者:佚名    文章来源:本站原创    点击数:    更新时间:2007-5-23

 

 摘要 本文主要介绍几种访问Web数据库的应用技术以及对它们的分析,并着重介绍了Delphi语言提供的ActiveX技术。

 

一、 引言
   在Internet上的数据库访问最终能够做些什么或者说它有多么重要的意义是很难叙述得清楚的,它完全取决于用户的想象力。但是,绝大多数的应用都是日常性的,只要用户能够在网络上很方便地检索到他所需要的共享信息,网络能不断更新维护Web内容,也是一种较好的应用。数据库技术是非常适用下类任务的网上服务的。
例如:一个仲裁委员会为了方便开展业务需要在网上发布它所拥有的所有仲裁员个人资料。这些个人资料(如姓名、照片、单位、专长、联系电话等)是提供给客户挑选的。客户不必访问包含了所有仲裁员的主页(当然我们也不会提供这样的主页),只要能够进行结构化条件查询,找到符合要求的仲裁员资料就可以了。
此类任务通常有两个特点:1、共享信息会经常变动;2、共享信息较多。这类任务在应用中也是常见的,如网上图书馆、网上购物等。

 

   访问Internet上数据库而产生动态HTML的全部信息处理可以都是在服务器上完成的。此时服务器不再回送静态文件的内容,而是当客户发生动态请求时,服务程序将在服务器上处理用户请求并决定向客户端回送什么内容。处理客户请求可以采用多种技术,但最常用的有两种:一种方法是派生一个可执行过程,告诉服务器回送什么内容。如CGI等;另二种方法是调用一个DLL执行用户码并告诉服务器回送什么内容,如ISAPI、NSAPI等 。

 

   现在许多Web浏览器允许客户在客户机上执行代码,而与过去把所有的处理都留给服务器正相反。使之成为现实的主要技术有两种。即Java和ActiveX。

 

二、 CGI和NSAPI、ISAPI应用
   CGI(Commom Gateway Interface,即公共网关接口)提供了在程序和(相对)静止Web世界之间,创建网关的统一或公共的方法。它为外部应用程序与Web服务器的交互提供了一个公共的环境和一组协议。当Web服务器收到一个处理CGI的请求时,它让来自客户端的所有信息通过环境变量和标准输入传递到CGI应用程序。CGI应用程序基本上是通过标准输出应当送达客户端的HTML。这个过程实际上比传输标题和命令集要复杂得多,但是这是一个通用的概念。CGI应用曾是产生动态HTML应用的首选类型。选择在ISAPI(Internet服务器API)或NSAPI(Netscape服务器API)上开发CGI 应用程序的最充分的理由之一,是几乎每个基于Windows的Web服务器能够使用相同的编译后的可执行代序。但如果需要特别关注性能的话,最好不要选择CGI 。每当一个客户应用调用一个CGI程序时,Web服务器需要创建一个新的进程,执行这个CGI程序,回送执行结果到客户,最后清理使用的所有资源。如何服务器正受到许多客户请求的冲击。上述过程无疑要求Web服务器执行大量的工作任务。如果Web 服务器能够在其进程空间中执行你的用户逻辑,并在每一个动态请求发生时无需派生新的执行程序,这是对ISAPI(和NSAPI)应用动作的精确说明。

 

   NSAPI与ISAPI应用程序十分类似,下面仅介绍ISAPI,一个ISAPI应用程序是运行在Web服务器进程空间中的一个线程级安全的DLL(a thread-safe DLL)。当发生HTTP请求调用这个在ISAPI DLL时,Web服务器从它的线程池( a thread pool)中取得一个线程,并起动这个在DLL中执行的线程。线程池是一个由Web服务器管理的工作线程(Worker threads)的集合。该线程可随服务器的负载情况动态地增大或缩小。在执行结果回送到客户端后,则线程也将送回线程池。这是一个比派生新进程的方法利用系统资源更为有效的方法。使用ISAPI的一个缺点是线程级安全代码难以编写和测试。另一个缺点是,一但DLL被服务器加载,如果想替换这个DLL需要停止服务器。

 

三、JAVA和ACTIVEX
   Java语言是一种面向对象的,非常类似C++的语言,它的设计目的是利用C++最好的一些功能,但是简化C++以便使编写程序更加容易。
   Java程序是独立于平台的,它被编译成一种字节码序列,并将被一种Java解释器翻译。被翻译后的Java程序就可以在具有java解释器的任意系统下运行,而不需要重新编译。这种能力使Java成为在Internet上编程的一种理想语言。共同网络有许多不同的系统,创建能够在所有系统下运行的程序是非常困难的。程序将不在被限定在一种平台下运行,它可以在java已经移植到到的任意平台上运行。

 

   能够嵌入到WWW页中的Java程序被称为Java Applet,为了能在Web页中运行Applet,你必须有一种能支持Java的浏览器。一段Java代码在运行前必须先编译,而且每次修改程序后,你都得重新编译,每次编译都花费一段时间。目前仍没有什么好的Java编辑/开发包能有效地简化Jave的创建过程。这些都导致Java的美中不足。
ActiveX代表Microsoft由于起动World Wide Web的技术集合,目标是把微机的最好部分和Internet的最好部分结合起来创造最令人注目的平台,目前可在所有的Windows平台上使用。作为ActiveX核心元素之一的ActiveX控件,以前被称为OLE控件或OCX(Ole Custom Controls),是可以在单独的应用程序和Web页中使用的可重利用组件。

 

   ActiveX和Java Applet两者都允许你创建比静态HTML所能创建的更为引人注目和动态的Web,然而,也有一些不同,ActiveX不像Java,它是独立于语言的,可以用Visual C++、Delphi、Borland、C++、Visual Basic和其他开发语言开发。
一个ActiveX代码,必须先利用来编译后,才能在页中使用,在使用页必须用<Object>元素来描素。
下面是一个〈object〉标记的示例:
-----------------------------------------------
<OBJECT id="cttest"
CLASSID="clsid:771E4B23-F346-11D2-BA3A-0080C83F43AE"
CODEBASE="http://www.zcw.com/zcygl.ocx#version=1,0,0,0"
WIDTH=675
HEIGHT=441
ALIGN=center
HSPACE=0
VSPACE=0>
<PARAM NAME="nam"VALUE="xie">
</OBJECT>
---------------------------------------------
其中〈object〉标记的语法为:
-----------------------------------------------
CLASSID 以clsid为前缀的64位OLE类标识号
CODECASE指示用户的计算机没有控件的代码可以从哪里获得以及控件代码的版本。
HEIGHT 控件以像素计的高度
WIDTH 控件以像素计的宽度
<PARAM> 用于给控件传送参数值
-----------------------------------------------
   目前世界最流行且最有发展前景的开发工具Delphi使你能够创建ActiveX构件用于建立Web窗体,提供活动窗体。ActivX构件可以用于能够嵌入ActiveX构件的任何应用程序,而不仅仅是基于Web的客户程序。在客户程序嵌入构件后,其执行情况就像应用程序中的任何Delphi窗体一样。
首先,按下列步骤创建一个活动窗体:
1、关闭所有打开的项目,然后选择File/New;
2、在NEW的条目对话框中选择ActiveX页,然后再选择ActiveX Form 图标;
3、这时出现活动窗体向导(The Active Form Wizard),并提示你输入一个新ActiveX名,以及实现后的部件名字;
4、这样创建的结果看起来像是个新的应用程序,但是显示出的窗体事实上只是一个ActiveX构件的开始。现在你可以想编写一个Windows 应用程序一样把相关构件置入窗体,并为窗体添加一些代码。

 

   此应用程序将编译为一个Activex OCX。 Activc OCX将作为一个ActiveX构件用于创建窗体的代码基(the code base)。当Web应用程序查询到你创建的构件类别ID(CLSID),就把活动窗体嵌入到客户的Web页中。Delphi提供一个强有力的特性,叫做"Web调度(Web deploy),它使你能够快速地建立一个Web页面去测试构件,并将ActiveX OCX放置到你的Web服务器上。在使用"Web调度"之前,必须配置Web调度选项,方法是从主菜单选择Project/Web Deployment选项。
在采用此程序创建活动窗口时,需注意:如果因为构件没有打上数字标志Web浏览器拒绝接受构件,你可能需要改变浏览器的安全设置激活非认证ActiveX构件。在Internet Explore 4.0中,你可以通过设置安全级为中等来完成这个工作。如果你更新了OCX的版本并想浏览器重新安装这个构件,必须关掉浏览器并重新启动。

 

   由于Delpi具有面向对象的设计方法和快速、高效的数据库访问技术,所以开发一个这样的应用程序易如反掌,不必花费太多的时间和精力。而且由于目前客户端的应用平台大多为基于Windows的等系列,安装系统时均带有浏览器Internet Explore工具,此工具支持OCX技术,使得用ActiveX控件技术开发出的Web服务得以较好应用。笔者对此方法犹为推祟,并在广州市仲裁委设计时采用此方法。

 

四、 小节
   以上几种访问Internet数据库的主要技术均各有利弊,用户可以根据它们的特点加以选择。服务器处理方式由于不用考虑客户端的浏览器属性,所以能得到较多客用户的支持。而由于目前Windows应用平台使用的广泛性,产生许多Windows应用程序。客户浏览器技术凭借能把一个Windows应用程序制成Web工具接口,所以它也能拥有不小的市场份额。

 

参考文献:
1、《Special Edition Using INTRANET HTML》,机械工业出版社
2、《delphi 3.0 使用手册》,四川大学出版社。

广州市政府办公厅决策中心 谢利平

 
  • 上一篇文章:

  • 下一篇文章:

  • 联系我们 | 关于商维 | 友情链接 | 网站地图 商务万维:网站设计|名片设计|VI设计|包装设计|广告设计|画册设计|广告设计|海报设计
    Email:info@35www.net 商务万维理念