The closest you could get to cross-platform portability with ASP was to place NT on a Digital Alpha processor. While IIS is NT-centric, at least Digital is nonwintel hardware. Microsoft has dragged its feet on porting Visual Basic (VB) off NT. VB is one reason Windows is so entrenched today, so Microsoft wasn't motivated to help enemy developers. That didn't stop developers from asking Microsoft to port its popular Visual Basic for Applications (VBA) to UNIX and Macintosh. We have long needed to parse and execute Visual Basic® Scripting Edition (VBScript) on those platforms. At least VBA has been extended to all of the Macintosh Office applications. ADO has allowed Vbers to "reach out" beyond the Microsoft universe to ODBC-compliant databases, some of these on UNIX.
Many ActiveX interfaces are hitting the marketplace. For example, http://www.sequencia.com/home.htm has tools (i.e., OpenBatch) to interface with SAP R/3. There are many others who enable integration between a COM-based front end, such as Microsoft Office or the ASP with, say, an ERP system such as http://www.sap.com/, http://www.siebel.com/ and http://www1.baan.com/cgi-bin/bvisapi.dll. Significantly, PC Week recently reported that Microsoft is negotiating licensing deals with major ERP vendors to include VBA with their respective products. Details are sketchy, but this is a sign that VBA is encroaching on the big iron universe, and ASP will hopefully tag along.
The only way to deploy ASP is to place it in IIS - until now. A start-up company with the fun name Chili!Soft has produced a product called Chili!ASP that emulates ASP on the UNIX platform. The example in this article was an ASP registration application I deployed using Netscape Enterprise, Solaris, and a Sun Ultra Five box. They are continually adding combinations of Web server and UNIX flavors, so I look forward to using their soon-to-be-released Apache version.
There is little difference between IIS ASP and Chili!ASP, including support for objects like my favorite ADO. The prospect of developing ASP-based Web applications for deploying on the UNIX platform is tantalizing. The successful integration is grabbing significant mindshare with high-profile customers like Boeing and Gateway.
The mix of snappy VBScript development cycles with bedrock Solaris reliability places Chili!ASP on the winner's podium. While the company admitted it has a good relationship with Microsoft and Sun, it wouldn't comment on my speculation that Microsoft and Sun are eying the company for future deepening of relationships (read buyout). This ASP crier also noticed how Chili!Soft's timely arrival gives Microsoft another option to impress the Department of Justice.
A portion of my company's Web site is using Chili!ASP. I'm an early adopter when the merits far exceed the perils. Chili!Soft ASP is an excellent product. The ability to deploy ASP applications onto a UNIX platform is one of those genuinely fun experiences as a programmer. The UNIX administrator likes it too because it has minimal impact on backup and security schemes.
This article describes my experience with the product and folks at Chili!Soft. I didn't want to highlight a specific company, but I would be remiss if I didn't laud Chili!Soft's achievement. When you try to sell your company on Chili!Soft remember that the primary benefit is a development gain. It comes down to ASP vs. CGI, Perl, and other UNIX scripting languages. If you focus your debate on quick turnaround you will avoid the political blunder of lobbying for NT where UNIX clearly belongs.
Anecdote
Marketing wanted an application that allowed customers to register their Web site on ours to speed processing. The Marketing Department specified an improvement over the old way that forced a support representation to manually capture the Web site’s profile by phone. My problem was the Internet Web server was Netscape on Solaris. I had no quick way to develop the application because the UNIX fans evil-eyed me when I suggested throwing an NT box in the DMZ for “special” projects. Chili!Soft came to the rescue. It was a fairy tale until this happened: "HTTP ERROR: 405." When I saw this error my back shot straight. The application I deployed was live, and marketing invited the world. I was looking at the operations manager’s monitor as he showed me the problem. "It was working fine yesterday," we told each other. Neither of us could figure it out. We called Chili!Soft. Their engineer discovered the installation program had a snarl, so it didn't correctly update the license file (LICENSE.LIC). The Web server saw an outdated license and was kicking up the 405 error. We resolved it, but that hour aged me days.
Evaluation
One approach to evaluating the ASP on UNIX option is to divide the merits of this approach into two halves. The first half is the language (ASP) itself and the other involves comparing platforms (UNIX to NT). Choosing ASP over CGI, Perl, JavaScript, Java, and others was straightforward for the author. If your shop has a good command of the language (VBScript) and the objects it supports (i.e., ADO) then ASP 2.0 is a legitimate choice to encapsulate business applications. The second half targets platform. There are plenty of UNIX vs. NT papers out (i.e., comparison between http://www.sunworld.com/sunworldonline/swol-08-1998/swol-08-linuxvnt.html). While the following configurations are my doing and are not necessarily supported by Chili!Soft, I would say Chili!ASP for Apache on Linux would produce the best performance, and Netscape on Solaris would give the most scalability and reliability.
Chili!ASP Product Evaluation Table
Deployment Metric
Grade
Comment
Scalability
High
Much better than NT
Development
High
Same on UNIX as NT
Installation
Medium
Minor problem, but was fixed.
Support
High
Five-star treatment
Performance
Medium
While not really Chili!Soft's fault, it still could use tweaking.
Resources
High
Uses minimal CPU, RAM, HD
Documentation
Low
Weakest part of the purchase. Many customers who try to port their ASP- based applications to UNIX will be Microsoft heads and will need strong documentation to help them understand UNIX issues. For example, I never heard of chmod until we changed permissions to 777 for the ASP files to execute.
Price
Medium
Chili!ASP for UNIX is $1,995 per CPU until 12/31/98.
Bugs
High
Haven't found any yet.
Integration
High
The UNIX administrator never got mad at me when I placed Microsoft stuff in his kingdom.
Architecture
The Web server architecture of Netscape Enterprise Web Server is similar to Microsoft Internet Information Server. They both use server extensions to dynamically implement functionality outside the native web server. Chili!Soft was able to model their ASP product directly after Microsoft. In fact, Chili!Soft licenses the VBScript source from Microsoft and wraps it in a Netscape extension (http://developer.netscape.com/docs/manuals/enterprise/nsapi/) also called a shared object in Solaris speak. Microsoft does the same thing, except ASP is VBScript wrapped in a Windows DLL. Actually, you can find the file asp.dll in your system32\inetsrv directory.
Performance
I spoke to Chili!Soft's VP of engineering about performance. He said his company conducts a suite of tests that represent a typical application. One focus is load simulation where they vary the number of simultaneous users. Another is testing for a theoretical maximum throughput (responses/second). We do the same test on our systems at Adforce so I understood him here. The most interesting test he told me about was placing Chili!Soft ASP on an NT machine. The performance was similar to native IIS/ASP, according to him. That would be a solid result, but I was not able to check this claim for myself.
What I wanted to know was how does an ASP application on Solaris compare in speed to the same one on NT. Before I talked to Chili!Soft I conducted my own tests. One hammer I threw at it used a simple script-intensive test (see Appendix A). I found that it took 4 seconds for IIS/ASP on a Gateway 233 MHz and 10 seconds for Chili!Soft/ASP on a Solaris Ultra Five 277 MHz. This test uncovered the biggest difference between NT and Solaris - compilers.
My investigation revealed that the performance of NT compilation versus Solaris compilation differs. For the same code and machine strength, some applications compiled for NT are faster than for Solaris. Microsoft has made performance their top priority for several years now, while Sun focused on scalability/reliability. Furthermore, Microsoft gains speed by entrenching ASP closer to the heart of the OS, actually in the same memory space as the IIS 3.0 server. Watch it, while processing is faster, if something goes awry in ASP, the entire Web server could potentially stop. Not until IIS 4 could you configure ASP for “out of process” operation. This will slow performance, but eases crash protection and recovery headaches. For my full registration application the performance was comparable using the same code base (i.e., exactly the same except ADO connection string and URLs) between ASP on NT and Chili!ASP on Solaris. I mirrored the application between an NT server and a Solaris server. Honestly, I couldn't tell the difference in speed of my database-driven registration application during casual use. Any difference in script execution speed was overshadowed by HTTP server overhead and database connectivity/activity.
Customer Support
The product works well, but we had minor trouble with the installation. Some of the steps were not clearly explained in the documentation. I talked to Chili!Soft about this and they say documentation will be emphasized in the next release. They plan to focus on cross-platform issues. Specifically, we stumbled setting up the ODBC DNSs. Also, since we downloaded the free evaluation version from Chili!Soft's Web site, the license file had to be upgraded once they received our payment (~$1500/CPU). The upgrade script didn't work properly. When we called their support line they were responsive. The director of marketing told me that "When our support team works with a customer to solve a problem like this, an incident report goes directly into our bug-tracking system so that the fix appears in our next version." It sounds nice, but the real test was how I was treated. When I called I felt as though my business was very important to them.
VBScript Version 5
Since Chili!Soft licenses the VBScript binary, I though it would be helpful to mention some highlights of what to expect in Microsoft's next release of VBScript. With NT 5.0 Microsoft will release Version 5.0 of the Visual Basic® Scripting Edition (VBScript). The developers concentrated on three major areas:
Language features
Performance
Script encoding
The biggest performance boost will come from an "early bind" for the response.write and response.writeblock methods. Early binding means that the script engine already has a connection to the object at run time, so there is no need to requery the object at every method call. Reponse.write and response.writeblock are good choices because these methods are called in nearly every ASP file, so speeding up these calls will have an impact on a high proportion of ASP code. They added some key words as well. An interesting new capability will be script encoding on the client side. Script encoding allows you to encode the script in your HTML, ASP, Scriptlet or Windows Scripting Host file so that if a user looks at the source, he will see something like this:
It’s no surprise, but only IE 5.0 will be able to decode and make use of the encrypted code. I checked a http://www.microsoft.com/sitebuilder/magazine/classenc.htm with both IE 4 and Netscape® Communicator 4 and neither could execute the code, but I got the idea.
As the value of business solutions written in VBScript become more complex and valuable, developers will need a way to protect their investment. Version 5.0 script encoding is targeted to browsers, but I suspect there will be a need for it in ASP also.
ASP vs. JSP
Since scripting on UNIX is the subject of the article, we need to mention Java Server Pages. One article more informed on the subject than me is worth a jump: ASP vs. JSP. While the JSP specification continues to evolve, competition will put pressure on Microsoft to improve ASP. Like ASP, JSP has the ability to use commands embedded in pages in order to tie together components containing complex business logic.
Currently the JSP specification uses Java initially as the only language that works with JSP. Due to many ASP-based development tools and third-party components it is easy to be productive with ASP. These factors have combined to make ASP an incredibly fast-growing community, with forecasts predicting well over 1 million ASP developers by 1999. These developers are benefiting from a wide variety of RAD tools, such as Microsoft Visual Interdev, Elemental Drumbeat, and NetObjects ScriptBuilder, and over 1,000 third-party components. The developer community, development tools, and third-party components are combining to give ASP a tremendous lead that JSP will not overcome anytime soon.
Chili!Soft is watching. They already have technology they call Chili!Beans that allows Chili!ASP developers to treat JavaBeans and Enterprise JavaBeans as COM objects, making them easy to script to and totally portable across platforms. Because of this, Chili!ASP developers stand to benefit from the efforts of Sun and its partners to create Java-based components, as these components will be immediately usable in Chili!ASP applications.
I expect the ASP vs. JSP debate to get nasty by next summer.
Conclusion
All things considered, I prefer to run an Intranet Web site on IIS/ASP/MS SQL Server/NT. However, due to Chili!ASP I now prefer to run an Internet Web site on Chili!Soft ASP/Apache/Sybase SQL Server/Solaris. The Intranet here screams, is easy to administer and, when things go bump in the night, is painless to recover. The Internet site has to be rock solid so I like Solaris for it. While the small Solaris machine's overall performance is mediocre I rarely have to ask the UNIX admin to reboot the OS. Significantly, there is a new scale path. With Chili!Soft you can go all the way to a SunTM Enterprise TM 10000 (also known as Starfire TM server) for a true high-performance single-Web server ASP solution.
Being able to run ASP applications in UNIX is a tremendous milestone in Web application evolution. I tip my hat to Chili!Soft for its nearly flawless delivery on Chili!ASP. I am using it and am excited about the new options it has given my company. I strongly recommend you download the evaluation version and try it yourself.
Vendor Benchmarks (for Alpha, Pentium II, SGI, H-P, and Ultra SPARC II)
About the Author
Mr. Alain Trottier is the Webmaster at AdForce, Inc. a leading provider of
centralized advertising management services. The Company serves well over one
billion ads each month to websites. He focuses on consolidating and organizing
the Company's data into a true knowledge system. He is also a Adjunct Professor, California State University at Fullerton. The pace can cause head trauma,
but he likes it. While his wife and son out-smart him routinely, he loves them
and asks Jesus to help him catch up.
Appendix A - Speed Test Script
<!-- Script Start----------------------------->
<HTML>
<TITLE>testing port 7001, Page 1</TITLE>
<BODY>
<%
dim stime,numloops
numloops=1000000
stime = now()
for i=0 to numloops
a=i
next
dtime = datediff("s",stime,now())
response.write ("time to run for next loop " & numloops & " times= " & dtime)
%>
</BODY>
</HTML>
<!-- Script End----------------------------->
,
Chili!ASP for Solaris Specifications
Requirements
Operating System:
Solaris 2.51, 2.6 (Sparc processor)
Web Server:
Netscape Enterprise 3.51 or FastTrack 3.01 Apache 1.3 (Beta release available November ’98)
Disk space:
50 MB
Included Software:
Chili!ASP with following supported Objects:
Request
Response
Session
Application
Server
FileSystem
ActiveX Data Objects (ADO)
BrowseCap Component
Scripting Languages supported:
VBScript
JScript
ODBC Drivers for:
Oracle
Sybase
Informix
DB2
OpenIngres
dBase
Text file
Support for COM Objects:
Support for Java Objects (via Chili!Beans):
Install
Installation of Chili!ASP for Solaris takes 15-20 minutes. Additional Web server configuration may be required depending on the complexity of the Web site and the Web server used.
Quick Installation Steps
Copy the Chili!ASP archive file to a temporary directory on your Web server.
Extract the archive file and run the install script named "./caspi".
When prompted, enter the directory in which to install the Chili!ASP components.
When prompted, enter the system path of your existing Web server(s). The install script will enable you to choose which Web server(s) you want Chili!ASP to be installed with.
If you plan to use Chili!ASP with a database, when prompted, enter the system path and system library path for the database client(s) you have installed on your Web server.
When installation is complete, restart your Web server.
Installation Tips & Tricks
Make sure that you have stopped all of the Web servers running on the target machine.
For Windows NT installations, make sure you have stopped or closed all applications that make use of ODBC.
If at all possible, use the defaults during the initial installation to get the system up and running. Then go back and alter settings to best suit your environment.
If you are not certain of the required settings for the X server, select “No” and we will install and configure a simple copy of xvfb. (The X server is not used by Chili!ASP, but is required by the COM implementation used to build ASP on Unix. This will be removed in future versions of Chili!ASP.)
Chili!ASP Tips & Tricks
ODBC setup information may be found in the /odbc/doc/odbchelp.pdf document placed in the Chili!ASP install path. This document contains important information regarding database client requirements.
When developing objects containing complex business logic, using C++ or Java will enhance the portability of your applications.
Objects developed in C++ may be moved between NT and Solaris, but a recompilation is necessary.
Objects developed in Java are totally portable across NT and Solaris, requiring no recompilation, when used in conjunction with Chili!Soft’s Chili!Beans.
When developing applications on NT for deployment on Chili!ASP for Solaris (or when moving an existing application to Solaris) be extra careful of case sensitivity in URLs. Unix is case sensitive; NT is not.
Use of the FrontPage Server Extensions for Netscape on Solaris lets you develop ASP-based applications directly on the Web server using tools like Microsoft Visual Interdev.
Appendix B - Chili!ASP Information
<!-- Script Start----------------------------->
<HTML>
<TITLE>testing port 7001, Page 1</TITLE>
<BODY>
<%
dim stime,numloops
numloops=1000000
stime = now()
for i=0 to numloops
a=i
next
dtime = datediff("s",stime,now())
response.write ("time to run for next loop " & numloops & " times= " & dtime)
%>
</BODY>
</HTML>
<!-- Script End----------------------------->
,
Chili!ASP for Solaris Specifications
Requirements
Operating System:
Solaris 2.51, 2.6 (Sparc processor)
Web Server:
Netscape Enterprise 3.51 or FastTrack 3.01 Apache 1.3 (Beta release available November ’98)
Disk space:
50 MB
Included Software:
Chili!ASP with following supported Objects:
Request
Response
Session
Application
Server
FileSystem
ActiveX Data Objects (ADO)
BrowseCap Component
Scripting Languages supported:
VBScript
JScript
ODBC Drivers for:
Oracle
Sybase
Informix
DB2
OpenIngres
dBase
Text file
Support for COM Objects:
Support for Java Objects (via Chili!Beans):
Install
Installation of Chili!ASP for Solaris takes 15-20 minutes. Additional Web server configuration may be required depending on the complexity of the Web site and the Web server used.
Quick Installation Steps
Copy the Chili!ASP archive file to a temporary directory on your Web server.
Extract the archive file and run the install script named "./caspi".
When prompted, enter the directory in which to install the Chili!ASP components.
When prompted, enter the system path of your existing Web server(s). The install script will enable you to choose which Web server(s) you want Chili!ASP to be installed with.
If you plan to use Chili!ASP with a database, when prompted, enter the system path and system library path for the database client(s) you have installed on your Web server.
When installation is complete, restart your Web server.
Installation Tips & Tricks
Make sure that you have stopped all of the Web servers running on the target machine.
For Windows NT installations, make sure you have stopped or closed all applications that make use of ODBC.
If at all possible, use the defaults during the initial installation to get the system up and running. Then go back and alter settings to best suit your environment.
If you are not certain of the required settings for the X server, select “No” and we will install and configure a simple copy of xvfb. (The X server is not used by Chili!ASP, but is required by the COM implementation used to build ASP on Unix. This will be removed in future versions of Chili!ASP.)
Chili!ASP Tips & Tricks
ODBC setup information may be found in the /odbc/doc/odbchelp.pdf document placed in the Chili!ASP install path. This document contains important information regarding database client requirements.
When developing objects containing complex business logic, using C++ or Java will enhance the portability of your applications.
Objects developed in C++ may be moved between NT and Solaris, but a recompilation is necessary.
Objects developed in Java are totally portable across NT and Solaris, requiring no recompilation, when used in conjunction with Chili!Soft’s Chili!Beans.
When developing applications on NT for deployment on Chili!ASP for Solaris (or when moving an existing application to Solaris) be extra careful of case sensitivity in URLs. Unix is case sensitive; NT is not.
Use of the FrontPage Server Extensions for Netscape on Solaris lets you develop ASP-based applications directly on the Web server using tools like Microsoft Visual Interdev.
Mailing List
Want to receive email when the next article is published? Just Click Here to sign up.