The need for and benefits of interactive, two-way web
applications became apparent a few years ago with HTML browsers,
and one of the earliest web application servers to arrive was
Allaire's ColdFusion. In fact, despite the ubiquity of Microsoft
ASP in the Windows world, ColdFusion is the leading cross-platform
web application server.
Running on both Windows and several versions of UNIX (including
Linux), and with nearly every web server (including Apache), CF has
continued to thrive due to its integrated security, scalability,
broad integration with other technologies, and, perhaps most
important, its ease of use. It doesn't hurt that it's inexpensive
compared to other similar web application servers, ranging from
free (for a limited version) to between $2,000 and $5,000 for its
professional and enterprise versions, respectively.
ColdFusion's Ease of Use
As a demonstration of the ease of using ColdFusion, take a look
at the following sample code fragment that shows a ColdFusion
program (also referred to generically as a 'template') generating
WML:
<card>
<CFQUERY NAME="GetDepts" ...>
Select DeptName from Depts
</CFQUERY>
<p>Depts Found:<br/>
<CFOUTPUT
QUERY="GetDepts">
#DeptName#
<br/>
</CFOUTPUT>
</p>
</card>
Although CF was originally designed and intended for creating
HTML, there's absolutely nothing to stop it from creating WML code
for display in wireless browsers and simulators.
ColdFusion's Flexibility
I mentioned previously CF's ability to run on multiple operating
systems and web servers. One thing I didn't point out was that the
exact same code written on one OS for a particular web
server can be moved to another OS against another web server, with
high probability that no changes will be required to the code.
(Apart from some minor alterations such as case sensitivity on
links when moving from, say, a Windows environment to a UNIX
environment, if you've not programmed for that concern in
advance.)
In fact, the flexibility is even more substantial than that. CF
can run against many different database servers, including
any ODBC-compliant database (typically desktop databases such as
Access and Visual FoxPro), as well as enterprise-class databases
such as SQL Server, Sybase, Oracle, Informix, and DB2.
Again, an extension of this flexibility is that a ColdFusion
program written against one DBMS could easily be migrated to run
against an entirely different database (going from, say, a test
version of the database in Access to a production version in
Oracle) without changing the ColdFusion code. As long as the
database table and column names are the same, the CF code (and
underlying SQL) often need not change. This is a powerful
benefit.
The final element of this flexibility refers to the integration
mentioned earlier, whereby a ColdFusion template can request
information from another application on the server, including
communication via COM/DCOM, CORBA, EJB, etc. ColdFusion supports
gathering data from other web sites through its <CFHTTP>
tag.
ColdFusion's Scalability
When people begin to consider dynamically generated content, a
first concern is often whether a dynamic site can perform well
under large loads, when thousands or even millions of visitors
arrive at the site each day.
Allaire has refined each successive release of ColdFusion (now
in version 4.5) to address scalability concerns. The enterprise
version incorporates integrated clustering, load balancing, and
failover support, so that visitors to the site are spread over
multiple (sometimes dozens of) servers in a seamless way, which
makes it transparent if their session is swapped among servers in
order to balance server load.
Even in the free and professional versions, there is built-in
support for scalability by way of such things as web server
integration, template code caching, and state management
capabilities.
ColdFusion is used by several leading web sites, including
ToysRUs.com, the Wall Street Journal's SmartMoney.com site,
AutoByTel, and many more. (Even the SQL Server Magazine and Windows
NT/2000 Magazine sites are ColdFusion sites, rather than ASP
sites!)