Finally kicking the door open to widespread corporate Windows deployment and dramatically boosting Unix scalability via threads, The Apache Software Foundation has released the first beta of Apache HTTP Server 2.0.
Four years in development, this more-or-less-stable build boasts an entirely new server design based on an operating-system-independent layer called Apache Portable Runtime, along with new multiprocessing modules for specific operating systems.
Apache 2.0 implements new module design. Unlike Apache 1.3 modules, Apache 2.0 modules can be layered so they can modify one anothers output—a Common Gateway Interface program can now have its output processed by another module, for example. (Of course, this means current Apache 1.3 modules will have to be redesigned to work with Apache 2.0.)
Because of the new run-time layer, Apache is no longer coded directly to POSIX interfaces; the use of buggy, poorly performing POSIX libraries is why Apache currently doesnt run as well on non-Unix operating systems as it does on Unix-based operating systems. Apache 2.0 takes advantage of native system calls on all its platforms and so will be more stable and faster than previous releases.
eWeek Labs tested Beta 1 code, which became available earlier this month at www.apache.org, and was able to run the server on Windows NT Server 4.0 and Red Hat Inc.s Red Hat Linux 7.0.
We did have a few problems with the beta code but, in general, the software is quite usable. Its only available in source-code form, so a compiler is a requisite.
Unfortunately, this build still lacks any official administration tools, our biggest complaint with the earlier versions. Although several independent products exist (a list is at gui.apache.org), there are no compatibility, completeness or timeliness guarantees for these products. Wed like to see the foundation back one of the Web-based efforts and include it with the server; it would make Apache easier to learn, plus simplify remote administration.
Apache.org has been running this code for a couple of weeks now, but its still six months to a year away from final code, according to Ryan Bloom, vice president of the Apache Portable Runtime project, judging from his experience with past releases.
Apache has also been redesigned to use threads instead of processes. Apache 1.3 could only use processes on Unix operating systems—a very resource-intensive design. Users of Solaris, AIX, HP-UX and other Unix operating systems should see a big scalability increase with the new design. However, Linux and Windows users wont see this benefit. On Linux (where threads and processes are the same to the kernel), threads dont offer any CPU gains; on Windows, Apache 1.3 already uses threads.
Finally, an SSL (Secure Sockets Layer) module will ship with the server; this will be a new effort designed to replace mod_ssl and other third-party SSL Apache modules.