ccidnet????

出版日期:1999-08-09 总期号:847 本年期号:57

本期导读
要闻综合
电脑工作室
市场
硬件
软件
infotimes
web 开发新工具:coldfusion

张萍

  对于在网上建立动态web应用和交互web站点的开发者,allaire 公司的cold fusion应是你可以选择的一个很好的开发工具。它提供集浏览器、服务器和数据库技术于一体的强大的web应用。


  cold fusion与asp的比较


  作为web信息发布的技术开发人员,对于这一技术领域内流行和新兴的技术都会比较敏感和关注。目前比较流行的是asp,但cold fusion是一个新兴的web开发技术。下面对这两种技术做一个简单的比较:

  asp是微软公司1997年10月推出的web应用制作软件包,而cold fusion是在1999年4月才在国内进行全面推广的,所以目前对于一些开发者来说,asp是熟悉的,cold fusion则相对陌生。

  cold fusion和asp都是由一个集成开发环境和一个应用服务器组成,两部分合作生成由服务器解析的html。在集成开发环境中创建的网页由html、专有标记和脚本代码混合组成。当用户有请求时,专用的服务器对代码进行解析并予以执行,然后再将产生的标准html页发送给用户。

  asp是一个以nt为中心的环境,而cold fusion在nt和solaris上都能运行,不久将出linux的版本,它的适用领域更广泛。

  使用过asp的用户都会感觉到,由于asp使用的是vbscript或javascript 脚本语言来编写脚本,不使用专用标记,所以编写起来较为复杂。cold fusion则提供了一套简单专用的标记来执行任务,此外cold fusion也通过〈cfscript〉标记来提供编写脚本的能力。所以有时在执行同一项任务时,cold fusion只需要几个标记,而asp则需要编写较多的代码。

  在数据库连接方面,cold fusion支持查询缓存,企业版的cold fusion不光支持odbc数据库、ole数据库和存储过程,还支持内置的数据库,提高了数据库的访问速度。

  此外cold fusion服务器的企业版提供负载均衡的能力,可以很方便地建立cold fusion群集。而asp服务器不带有此功能。

  以上的比较并不是要在cold fusion和asp之间分出孰优孰劣,而是给广大开发者提供另外一种可供选择的技术开发手段。


  cold fusion工作原理


  cold fusion应用服务器是后台服务器,它的工作是建立在一个具体的web服务器(如iis)之上的。它的具体工作原理如下图所示。

  * 用户点击提交键或超级链,用户的web浏览器通过internet或intranet发送http请求到web服务器。

  * web服务器通过服务器的应用程序接口将用户请求和相应的页交给cold fusion服务器。

  * cold fusion从用户端读取用户数据并处理其中的cfml(cold fusion标记语言),基于cfml,code fusion服务器可以通过cold fusion 应用程序接口或通过 com/dcom建立与数据库服务器、文件系统、smtp系统等的联系。

  * cold fusion 动态地建立一个web页,并将此页返回给web服务器。

  * web服务器返回标准的html页给用户浏览器。



  cold fusion技术特色


  前面已经讲到了cold fusion的一些特点,这里结合用户在实际应用中所关心的几个方面,对cold fusion的特点作一个总结和概括。

  快速开发性 利用cold fusion强大的可视化工具、直接编程环境和便于管理的应用服务器,可以快速、简单地建立复杂的应用程序。

  技术综合性 cold fusion提供对数据库、邮件服务器、文件目录、xml、com、corba等服务器系统的支持。

  安全性 对服务器的开发和管理进行访问控制,利用高级安全特性避免运行时的其它侵入。使用ssl对远程文件、数据传输进行加密。所具有的源代码加密程序,可以对源代码进行加密。

  高效率 程序员可指定在多次调用数据库时,数据库保持打开状态多长时间。缓存经常使用的查询结果,在保证数据一致性的同时减少数据库通信量。

  出错处理 当cold fusion不能找到模板文件中指定的变量时,它能够提供详细的错误信息和原因。

  输入合法性检查 在输入表格中用一隐含域实现输入数据的合法性检查。cold fusion提供的一些标准的合法性检查涉及数据类型、数据范围的检查等。

  可扩展性 利用cfml、c/c++、com、corba、javascript、vbscript建立自己的部件和标识。通过把〈cfx_xxx〉调入页中,利用〈cfscript〉标记提供编写脚本的能力。

  多种数据源 cold fusion本身带有oracle 和sybase的连接驱动,可以和任何odbc兼容的数据库连接,通过ole-db可以与exchange、 lotus notes等连接。

  全文索引 利用内嵌的verity search 97可以全文索引非结构化的数据和标准文本。

  源代码重用 可将经常使用的代码保存为cfml模块或cfx ,供日后重复应用于其他应用和界面中。

  支持e-mail 数据库的输出不仅能送至web浏览器,还能作为e-mail发给客户。

  支持cookies cookies是web服务器在客户机上存储的一个数据项,它提供一种可在客户端存储信息以作将来检索用的途径。cold fusion提供对cookies的支持。

  支持多种网络应用协议 cold fusion本身支持多种网络协议,如ftp、http、mail、pop、ldap等。这样通过浏览器就可实现文件下载、邮件收发等网络应用。

  在cold fusion中对于这些协议的支持是通过几个简单的tag来实现的,下表列出这些与网络协议有关的常用cold fusion tag:

cfftp 执行文件传输协议,建立与ftp服务器的连接
cfldap 提供和ldap目录服务器的接口
cfhttp 允许执行get或post操作
cfmail 建立mail信息并发送
cfpop 从pop mail服务器上接收和删除mail信息

  cfml语言

  cfml语言是一种标记语言,它是cold fusion特有的一种语言,也是cold fusion的重要组成部分。由cfml语言或结合标准html语言组成的cfm文件,由cfml tags、cfml functions和wddx javascript objects组成。cfml tags十分简单,语法类似于html的元素语法。cfml提供了大量有用的函数,如动态赋值函数、队列函数、串函数、查询函数等。当执行web分布式交换时可使用javascript objects。


  cfml语言特点


  * 可以对处理过程进行封装 即可以用〈cfxxx〉、〈/cfxxx〉来封装一个cf处理过程。

  * 支持变量处理功能 cold fusion可以在动态页中处理变量,并可以在页与页之间进行传递,管理服务器、应用程序、会话层和用户层数据。

  * 具有可扩展性 通过cfx_xxx,可以将自己开发的应用程序导入web应用中。


  cfml对html功能的扩展


  * 可以读取表格提交的数据,修改数据库和表格中的数据。

  * 可以建立基于数据驱动的动态页,页面内容随数据的变化而变化。

  * 可以执行条件处理,即通过cfif cfelse cfelseif、cfcase等tag来支持条件处理。

  * 可以通过cfmail支持邮件收发。

  * 可以通过cffile对本地文件进行各种操作。

  * 可以通过cfhttp和cfftp执行http和ftp操作

  * 可以通过cfauthenticate和isauthenticated函数对加密信息(如信用卡信息)进行认证和授权。

  * 可以读写用户端的cookies变量。

  目前网上已经有不少的有关cold fusion的站点。有整个网站是由cold fusion编写的,也有关于cold fusion的论坛。还有不少cold fusion爱好者将自己编写的cfml tags发布在网上供大家免费使用。下面列举几个:

  allaire公司

  http://www.allaire.com

cold fusion论坛

  http://forums.allaire.com/devconf/

tags gallery

  http://www.allaire.com/developer/taggallery