RealTime IT News

Apache 2.0: What's New and Who'll Benefit?

Apache, the freely available Web server software, has become as ubiquitous as the Windows operating system. Whether you ask auditing services like Security Space or poll reporting sites like Netcraft, you still get the same answer: more than half of all Web sites use Apache to serve up Web pages. And this has been true since April 1996, no matter what the domain: .com, .org, .gov, etc.

In fact, the only competition Apache has ever really faced comes from that omnipresent behemoth in Redmond, Wash. However, most Apache fanatics would scoff at that notion because of the several well-publicized flaws ... (in fact, way too many links for me to link to them all) ... that have been discovered in Microsoft's Internet Information Services (IIS). With such dominance in market share and quality, what new features could Apache's developers possibly add to entice even more users to adopt the Web server -- already the world's most popular?

"One of the main things is improved scalability," explained Ken Coar, a senior software engineer at IBM and vice president of the Apache Software Foundation. "You're not stuck with a single way of doing things. With [the current version of Apache] 1.3, it was one size fits all. But what works well on small sites didn't necessarily work well on large sites."

To fully understand the scope of Coar's comments, a little history and background is, of course, helpful.

1.3: 'a bit of a hack'
(A full overview of the new features in Apache 2.0 is available on the Foundation's Web site but if you want the layman's version, read on.)

Apache gets its name from the string of patches that were used to create the original version in 1995 -- "a patchy" server. Originally written for Unix, the current version of Apache first supported Windows in 1997 after Microsoft put its marketing muscle behind Windows NT and Windows 95. IIS came bundled with NT and later versions have been included in Windows 2000 and now XP. Prior to all of that, network administrators either used the Netscape server or IIS in Windows or ran Apache on Unix. With 1.3, admins first had the option of using modules that were specially designed for Windows to get the application to perform the necessary tasks in the Windows environment.

It goes without saying that Windows and Unix environments operate in completely different ways but for the sake of the task performed by Apache, let's separate the platforms into two distinct camps: multiple processes and multiple threads. Unix was capable of performing tasks in multiple processes. However, fearful of "the blue screen of death," NT users were relegated to doing things (as one developer explained) "in the Windows way" with one process operating with multiple threads.

In other words, multiple processes is like having several copies of Excel running concurrently on your desktop, each performing a specific calculation. Multiple threading, by contrast, is analogous to having only one copy of Excel running on your desktop but having several macros running within Excel, each performing a specific calculation. There are arguments for which method performs better but no one knows for sure.

The release of 1.3 meant that administrators who were forced to Windows NT (because, say, the OS was needed to run another mission critical application) now had the ability to install Apache on the same machine. But even its developers and others representatives of the Apache Software Foundation admit that the Windows modules were shoddy.

"In 1.3, the Windows version was a bit of a hack," Coar said.

Bill Rowe, senior software engineer at Covalent Technologies Inc. and an active member of the Apache Software Foundation, agreed with Coar's assessment. "Apache's apparent weakness is its lack of Microsoft proprietary language support...[With 2.0,] we have removed a number of assumptions about UNIX and forked-server behavior in order to better support any platform," Rowe explained.

For those reasons, anyone familiar with Apache generally cites the Multi-Processing Modules (MPMs) as the most significant new features to the 2.0 upgrade. Now, administrators have the option of managing traffic requests either through the Windows method on a Unix environment or vice versa.

"There are a number of different MPMs that lets you choose how to handle traffic," Coar said. "Apache can be threaded if you choose to set it up that way."

"It abstracted the way the server handles requests into one specific module that is responsible for all the discrepancies," Covalent's Rowe added.

In addition, both Rowe and Coar believed the new Apache Portable Runtime (APR) was a significant achievement with version 2.0. The APR is a library of blocks for portability issues that will help smooth the transition between platforms whether Windows, Unix or Mac.

As for other significant features, Coar chose to also highlight version 2.0's filtering mechanism, which lets you now run the output of a Common Gateway Interface (CGI) script through a series of processing modules, if so desired. Meanwhile Rowe believes that compatibility with NT's unicode file names are a big deal, meaning file requests can now access file names in Arabic, Hebrew or Chinese, if needed.

Who can benefit?
Ironically, all of the developments mean the biggest beneficiary of the release of Apache 2.0 could be Microsoft. Until last fall, the company had been trying to get its Windows NT users to upgrade to Windows 2000. Now the latest marketing efforts are currently behind Windows XP. And with the release of 2.0, Windows users now have a Web server that is specifically designed to support their platform, yet, is more reliable and secure. Microsoft could even gain users if portability and compatibility between platforms were improved to the point that confidence grows in the Windows OS.

"The Microsoft user is a big winner in the move from 1.3 to 2.0," Rowe explained.

Microsoft's only downside exposure would be the potential demise of IIS, which has no financial impact because the Web server is bundled as part of the OS. And, here, Microsoft has seemingly acknowledged defeat: IIS is not available on the Home edition of XP and the Professional edition, by default, is installed without IIS.

Officials from Microsoft declined to comment on this article.

The only issue now is when will the final version of Apache 2.0 arrive.

Apache 2.0 was first previewed in March 2000 but the Foundation waited more than a year before releasing the first beta version in April 2001. The second beta came out in November.

Developers are still working out compatibility issues with the newly released XP as well as other questions such as FreeBSD's thread implementation, compatibility with Netware and OS/2. In addition, the Foundation is aware of a bug in v1.3.22 that intermittently corrupts output that hasn't yet been identified. The bug is expected to be fixed in v1.3.23 as well as the Gold code of v2.0.

"The mantra of most open-sourced projects is it's released when it's released. Each new version is an improvement over the previous version. We won't release 2.0 until we believe it is of equal or better quality to Apache 1.3," Rowe said.

Coar warned not to expect to see the final version released before March.