ASP跨平台技术的两种方法论述
详细内容
0引言
ASP(Active Server Page)由Microsoft开发,是一个Web服务器端的开发环境,使用VBScript、JavaScript等脚本语言,通过Microsoft提供的COM/DCOM可以拓宽ASP的 应 用 范 围,使 用ODBC通 过ADO连 接 数 据 库,ASP+COM+SQL Server是非常好的搭配。ASP技术可以产生和执行动态、互动、高性能的Web服务应用程序,而且简单、易学,在国内非常流行[1],也因此积累了大量的基于ASP的数字学习资源。为了防止Microsoft在我国操作系统市场上的垄断,政府正大力倡导使用Linux操作系统。然而,ASP只能运行于Microsoft的服务器产品IIS(Windows NT)和PWS(Windows 98)上,跨平台性不佳。为了使已有的ASP资源继续得到利用,可以运行在Linux平台上,关于ASP的跨平台技术早已开始,并且不断在发展,取得的成果也较丰富,大致可分为两类:一类是不改变ASP代码,通过虚拟机或第三方软件,在Linux平台上创建ASP的运行环境;另一类是ASP代码重构,即将ASP转换成能够运行在Linux平台上的语言。本文将从这两个方面分别介绍ASP的跨平台技术。
1运行环境创建
在Linux平台上创建ASP的运行环境,可以利用虚拟机(Virtual Machine,VM)或第三方软件。虚拟机是指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统,可以在虚拟机上安装操作系统及应用程序、访问网络资源等[2]。一般地,物理存在的计算机称为主机,安装虚拟机软件的计算机称为宿主机,物理机上安装的操作系统称为宿主操作系统,虚拟机上的操 作 系 统 称 为 客 户 操 作 系 统。要 使ASP运 行 在Linux上,必须以Linux为宿主机,在虚拟机上安装客户操作系统———Windows系 统,并 在 客 户 操 作 系 统 上 配 置ASP的运行环境。虚拟机可以采用VirtualBox for Linux、VMware Workstation for Linux hosts等。VM VirtualBox是一款免费的开源虚拟机,简单易用,支持Windows、Linux和Mac宿主操作系统,可虚拟的系统包括所有的Windows系统、Mac OS X(32bit和64bit都支持)、Linux(2.4和2.6)、OpenBSD、Solaris等。VMwareWorkstation支持Windows、Linux宿主操作系统,可以在一台机器上同时运行两个或多个Windows、DOS、Linux系统。使用虚拟机技术可以使依赖Windows平台的很多产品能够在Linux上运行,具有普遍使用性。
除了虚拟机,还可以通过第三方软件创建中间环境,使ASP直接运行在Linux平台上。Linux系统的Web服务器 软 件 较 多,包 括Apache、Netscape Enterprise Fast-track、Netscape iPlanet Web Server、Xitami等,其 中A-pache应用较为广泛[3]。Apache是模块化的服务器,核心只包含实现最基本功能的模块,但扩展功能可以作为模块动态加载。Apache本身没有内置ASP功能,因此,要使Apache服务器能支持ASP,需要在Apache环境中支持ASP的模块。目前,已经存在一些具有此功能的模块,例如:Instant ASP(简 称iASP)、Apache::ASP、Sun oneASP、Chili!soft ASP、OpenASP等。其中,关于iASP和Apache::ASP的应用和研究较多。
(1)iASP。用Java语 言 写 成,需 要 系 统 预 先 安 装JDK1.1.X或以上版本,iASP原则上可运行在所有的Ja-va平台上,可自动配置服务器软件,使之能使用iASP解释和转换ASP页面。iASP使ASP不仅可以在Windows操作系统平台上使用,还可以在其它操作系统如Unix、Linux、Netware平台上使用。iASP与ASP相比,不仅在支持的操作系统平台上具有优势,而且在使用第三方组件构建ASP应用系统上也具有明显优势。iASP支持流行的ActiveX组件、Enterprise JavaBeans组件和CORBA兼容组件,从而使ASP应用系统更为强大[4]。
(2)Apache::ASP。为Apache提供了一个基于Perl语言的ASP接口,可以使用交互式管理和嵌入Perl代码的方式开发动态的Web应用程序,还提供了许多强大的扩展功能,包括XML标记语言、XSLT的解释和对ASP接口非原始部分新事件的解析。在安装Apache::ASP组件前,需要先安装mod_perl模块,为Apache提供支持Perl语言的功能[5]。
这种实现ASP跨平台的方法与虚拟机相比对ASP来说更有针对性,而且摆脱了对Windows平台的依赖性,真正实现了ASP的跨平台。但是,使用效果并不理想,还有待进一步完善。
2代码重构
代码重构就是把该软件的代码转换为能在目标平台上运行的语言。要使ASP所制作的网页能够在Linux平台上运行,就要把ASP转换为能在Linux上运行的语言。
PHP、JSP与ASP都是比较常用的动态网页开发技术,面向Web服务器,客户端浏览器不需要任何附加的软件支持,但是PHP、JSP比ASP具有更好的性能、安全性和跨平台性,如果能将ASP语言转换成PHP语言或JSP语言,实现跨平台,就能彻底摆脱Microsoft平台的束缚。
2.1 ASP转PHP
PHP(HypertextPreprocessor)是完全免费的开源产品,所有应用程序都是通过Web服务器和PHP引擎程序解释执行完成,具有以下技术特点:①大量地借用C,Java和Perl语 言 的 语 法,用 类 的 概 念;②面 向 对 象 编 程;③PHP支持的数据库极其广泛,可直接与Infomix、Oracle、Sybase、Solid、PostgreSQL、MySQL、Access等连接,完全支持ODBC接口的数据库,但PHP提供的数据库接口支持彼此不统一,这也是PHP的一个弱点;④PHP3可在Windows、Unix、Linux的Web服务器上正常运行。由于Linux Web服务器软件、Apache和数据库MySQL都是开源的,所 以 它 们 与PHP开 源 的 特 性 能 够 很 好 地 结 合,Linux+Apache+PHP+MYSQL被很多开发人员认为是最 佳 组 合[6]。如 果 能 将ASP转 换 成PHP,就 可 以 利 用PHP的相关特性使ASP资源在Linux上得到很好的运用。目前,已存在一些ASP转PHP的软件。
(1)软件ASPToPHP是一个将ASP语言转换成PHP语言的工具,可运行在Win2000、WinXP、Win2003、Win-dowsVista、Win7系统上,运行界面如图1所示。首先选择需要转换的ASP文件,然后点击“开始”按钮开始转换,转换后的PHP文件将出现在软件窗口中,文件名与ASP文件名相同。该工具能把简单的ASP代码转换成PHP代码,但对于较为复杂的ASP文件,如含有数据库的操作语句,转换时间较长,而且不能完美转换,若存在没有转换或转换错误的语句,需要后期手动修改。
(2)软 件ASP2PHP能 将asp/vbscrip快 速 地 转 换 为PHP。该 软 件 有WINDOWS 95/98/2000/XP、MacOSX、Linux几个版本,下载地址:asp2php.naken.cc/。在Windows平台上使用ASP2PHP转换一个asp文件的方法如下:设testfile.asp为要转换的asp文件。首先下载Win-dows版本的ASP2PHP,然后将下载的文件解压缩,得到一个文件夹,命名为asp2php,将testfile.asp文件放在asp2php文件夹下,与asp2php.exe同一级目录,打开Windows命令提示符,进入asp2php文件夹,使用asp2php testfile.asp命令即可实现转换,在asp2php文件夹下产生testfile.php文件。操作过程如图2所示。Linux版本的ASP2PHP安装方法是在Linux系统中,首先使用命令tar xvzf asp2php.tgz解压缩,然后用命令进行编译、安装。
2.2 ASP转JSP
JSP(Java ServerPages)是Sun公司推出的一种动态网页技术,JSP本身虽然也是脚本语言,但和PHP、ASP有着本质区别。PHP和ASP都是由语言引擎解释执行程序代码,而JSP代码却被编译成Servlet并由Java虚拟机执行,这种编译操作仅在对JSP页面的第一次请求时发生。因此普遍认为JSP的执行效率比PHP和ASP都高。JSP具有以下技术特点:①使用Java语言作为其脚本语言;②实现了生成和显示的相互分离,即使用JSP实现显示功能,而将应用的逻辑封装在Java Bean中;③生成可重用的组 件,JSP页 面 依 赖 于 可 重 用 的 跨 平 台 组 件 (JavaBean)来执行应用程序所需要的复杂处理;④强大的数据库支持,JSP可以和任何与JDBC兼容的数据库相连,访问数据库,而且还可以使用JDBC-ODBC Bridge访问基于ODBC的数据库;⑤跨平台性能好[8]。JSP可应用在Win-dows、Linux、Unix等诸多操作系统上。
JSP与ASP在很多方面是相似的,例如:在结构上都是以“<%”和“%>”作为标记符;ASP使用Application对象,JSP使用ServletContext对象;ASP使用Session对象管理用户的状态信息,JSP使用HttpSession对象等[9]。正是由于JSP与ASP的这些相似性以及JSP自身的平台无关性,使得ASP转JSP成为研究热点。
J-ASP是一个转换ASP到JSP/Servlet的工具,使用方便,可批量转换,转换错误较少,生成的代码可读性好、易维护。该软件可以运行在WinXP、Vista、Win7、Win8等Windows平台上,界面如图3所示。
以上这些转换软件目前的功能还不完善,对于简单的ASP网页可以很好的转换,但对于比较复杂的ASP网页转换效果不理想,可能会产生一些错误,所以转换后还需要测试,如存在错误,需要人工修正。这些转换软件可以作为Web页面开发的辅助工具,为程序员节约很多时间和精力,而且这种转换思想是研究ASP跨平台技术的一个重要思路,值得深入研究与借鉴。
3结语
本文对目前的ASP跨平台技术进行了总结,并将其分为两类分别进行了介绍。虽然没有一种方法能够非常完美地使ASP正常运行在Linux上,但为今后深入研究ASP跨平台技术及其它Windows应用软件跨平台技术提供了解决问题的思路。希望随着技术的发展,能研究出既能摆脱Windows平台的束缚,效率和准确率又高的ASP跨平台技术。
参考文献:
[1]董风鸾.浅析JSP、ASP与PHP技术[J].广西师范学院学报:哲学社会科学版,2010,31(7):120-121.
[2]张凯龙,谷建华,盖玲兴,等.Win32应用到 Linux的跨平台移植技术研究[J].微电子学与计算机,2004,21(11):102-106.
[3]李禹生,严华.Linux Apache Web服务器上的 ASP实现方案[J].南昌航空工业学院学报:自然科学版,2002,16(1):62-65.
[4]王发军.让 ASP应用系统成为跨平台的应用系统[J].电子与电脑,1999(12):125-127.
[5]黄成泉.基于 Asianux的 Apache+Asp的服务器的构建与实现[J].科技信息:科学教研,2008(17):81,104.
[6]李程.JSP技术及其在动态网页制作中的优势[J].青年文学家,2011(24):327.